Skip to content

Setup Ubuntu on Jetson

Marc Scattolin edited this page Oct 26, 2024 · 11 revisions

Wifi

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.

Wifi kernel module

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

Install ROS Humble

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.

Clone Repo

Start in your home folder (ie cd ~). Then:

Setup Repo

Follow the instructions in the README.

Install other dependencies

For canbus stuff, sudo apt install busybox

Setup Daemon

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.

Setup SLAM

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

USB Serial Converter

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.

Clone this wiki locally