-
Notifications
You must be signed in to change notification settings - Fork 16
Setup Ubuntu on Jetson
This is the main page: https://www.intel.com/content/www/us/en/support/articles/000058807/wireless.html This will lead you to this page: https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi You will download the actual driver gzip from here: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Extract the gzip. Then, run this command (where you extracted it):
sudo cp iwlwifi-*.{ucode,pnvm} /lib/firmware/
Then, run this command:
sudo apt-get install --reinstall linux-firmware
Then, reboot.
Intel wifi relies on iwlwifi.ko module which is contained in Jetpack 5 install but NOT in Jetpack 6.
- Install backport-iwlwifi-dkms through apt
- Use modprobe to load iwlwifi
- Add iwlwifi to /etc/modules to automatically load on boot
Instructions from here: https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update && sudo apt upgrade
sudo apt install ros-humble-desktop
sudo apt install ros-dev-tools
Then, add these lines to the bottom of your .bashrc:
source /opt/ros/humble/setup.bash
source /home/nvidia/Programming/robotics-prototype/space-env/bin/activate
source /home/nvidia/Programming/robotics-prototype/robot/rospackages/install/setup.bash
(if the username is not nvidia
, change to the username). Also be aware that the second
line is only necessary if you use a venv with the repo; change the name from space-env
to whatever you called it.
Then, restart your terminal.
Start in your home folder (ie cd ~
). Then:
mkdir Programming
cd Programming
- Then, add an SSH key to the Jetson
git clone [email protected]:space-concordia-robotics/robotics-prototype.git
Follow the instructions in the README.
For canbus stuff, sudo apt install busybox
From the repository root (the robotics-prototype folder) run the following command:
sudo cp robot/rover/systemd/ros-rover-start.service /etc/systemd/system/ros-rover-start.service
Then, enable the service (so it will start on bootup):
sudo systemctl enable ros-rover-start.service
You can use the start
command (instead of enable
) to start it right away.
Clone the repo from here. Instructions are available on the README, the relevant sections are reproduced here.
- From the
~/Programming/robotics-prototype/robot/rospackages
folder, run this command:git clone https://gitlab.kitware.com/keu-computervision/slam.git src/slam --recursive -b feat/ROS2
. - Install nanoflann:
sudo apt-get install -y libnanoflann-dev
- Install pcl-ros:
sudo apt-get install -y ros-$ROS_DISTRO-pcl-ros
- Run the following command to compile:
colcon build --base-paths src/slam/ros2_wrapping --cmake-args -DCMAKE_BUILD_TYPE=Release
You likely need to uninstall BRLTTY for it to work - sudo apt remove brltty
. In addition, on the Jetson
in particular, you will need to manually install it.
In that article, follow the "Github Linux Patched CH340 Drivers" link. Then, compile the driver, then copy the ch34x.ko
file
into the appropriate folder, for instance ./usr/lib/modules/5.15.136-tegra/kernel/drivers/usb/serial/ch34x.ko
. Then,
make it load by default at boot time.