π§ Master Computer Setup β Standalone (No Login Server)#
This guide walks through installing Ubuntu Desktop 24.04 LTS, ROS 2 Jazzy, and all dependencies on a standalone desktop computer with a single local Ubuntu account. This computer system is utilized in the United States Air Force Academyβs Electrical and Computer Engineering department in an embedded network with the ground robot, a TurtleBot3 Burger. The master system is used to run ROS GUI tools and create secure connections with the TurtleBot3.
Use this guide for a single master with a local Ubuntu account. If you are setting up the centralized multi-student lab (shared logins across many masters), see login-server.md and login-client.md instead.
This guide is adapted from the TurtleBot3 e-Manual.
Hardware#
For our application, we are using Intel NUC Kits but these instructions will work on any AMD64 architecture.
Software#
Ubuntu 24.04#
For the desktop machine you will first need to download Ubuntu Desktop 24.04 LTS.
Once downloaded, follow the instructions to create a bootable Ubuntu USB stick within Ubuntu. The guide provides links to create USB sticks from Windows and macOS as well.
Once the bootable USB stick is created, follow the guide to Install Ubuntu desktop selecting a useful computer name such as master0. The NUC requires you to press and hold F10 on startup to boot from a USB stick.
Update Alternatives#
Python3 is installed in Ubuntu 24.04 by default. Some packages utilize the python command instead of python3 so we need to create a new executable, /usr/bin/python that will call Python3 (basically use the command python to call Python3):
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
After running this command, /usr/bin/python will point to /usr/bin/python3 with a priority of 10, allowing us to set and manage different versions of Python easily.
ROS2 Jazzy#
At this point, the Ubuntu environment is set up. Now we will install the ROS 2 requirements for the master. All of these instructions are adapted from the ROS 2 Documentation: Jazzy. ROS 2 Jazzy is the ROS 2 release that supports Ubuntu 24.04 LTS (Noble Numbat).
Installation#
Follow the official ROS2 documentation to install ROS2 Jazzy.
For most Linux users, the Debian package installation method is strongly recommended.
Install
ros-jazzy-desktop.
sudo apt install -y software-properties-common curl
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
sudo apt update
sudo apt install -y ros-jazzy-desktop ros-dev-tools
ros-dev-tools (installed below) already bundles colcon, rosdep, and vcstool, so a separate python3-colcon-common-extensions install is no longer needed on Jazzy.
Install ROS dependencies for building packages:
# Gazebo Classic is end-of-life and is not packaged for Jazzy. Jazzy pairs with
# Gazebo Harmonic, integrated through the ros_gz vendor packages.
sudo apt install -y ros-jazzy-turtlebot3*
sudo apt install -y ros-jazzy-dynamixel-sdk
sudo apt install -y ros-jazzy-ros-gz
sudo apt install -y ros-jazzy-tf-transformations
sudo apt install -y ros-jazzy-usb-cam ros-jazzy-image-proc
sudo apt install -y ros-jazzy-v4l2-camera
sudo apt install -y ros-jazzy-camera-calibration
sudo apt install -y ros-jazzy-apriltag ros-jazzy-apriltag-ros libapriltag-dev
sudo apt install -y python3-pip
sudo apt install -y obs-studio qtwayland5
sudo apt install -y tree
sudo apt install -y ros-jazzy-cv-bridge
sudo apt install -y ros-jazzy-joy
sudo apt install -y ros-jazzy-teleop-twist-joy
sudo apt install -y jstest-gtk
Create a ROS workspace:
mkdir -p ~/master_ws/src
cd ~/master_ws/
TurtleBot3 Simulation Package#
cd ~/master_ws/src/
git clone -b jazzy https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/master_ws && colcon build --symlink-install
ROS Environment#
Set up ROS environment variables and setup scripts within the ~/.bashrc file. Open the ~/.bashrc file with your favorite command line editor and add the following to the bottom:
alias gedit='gnome-text-edit'
alias bringup='ssh pi@robotX '\''ros2 launch turtlebot3_bringup robot.launch.py'\'
# Function to build with optional arguments
function ccbuild() {
cd ~/master_ws && colcon build --symlink-install "$@"
source ~/master_ws/install/setup.bash
}
# Export the function to make it available in the shell
export -f ccbuild
source /opt/ros/jazzy/setup.bash
source ~/master_ws/install/setup.bash
export ROS_DOMAIN_ID=0 # For master0 and robot0
export TURTLEBOT3_MODEL=burger
export LDS_MODEL=LDS-01 # replace with LDS-02 if using new LIDAR
source /usr/share/colcon_cd/function/colcon_cd.sh
export _colcon_cd_root=/opt/ros/jazzy/
source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash
Any time you make changes to your ~/.bashrc file you must source it:
source ~/.bashrc
TP-Link AC600 Archer T2U Plus Driver#
Check before installing. The Archer T2U Plus line has shipped with different Realtek chipsets across hardware revisions (RTL8812AU or RTL8821AU), and RTL8812AU only recently gained proper in-kernel support (via the
rtw88driver, merged around Linux 6.14). Ubuntu 24.04 LTS ships kernel 6.8 by default β whether your install already has a new enough kernel depends on which HWE point-release kernel it has picked up. Rather than assume, check first: if the adapter already works out of the box, skip the driver build below.
Ensure the wireless dual-band USB adapter is plugged in.
$ lsusb Bus 005 Device 002: ID 2357:0120 TP-Link 802.11ac WLAN Adapter
Install the driver with these commands:
sudo apt install git dkms git clone https://github.com/aircrack-ng/rtl8812au.git cd rtl8812au sudo make dkms_install
If you donβt have permission try to execute:
chmod 777 rtl8812au
PIP#
For all users:
sudo pip install "pydantic<2" # pip3 install pydantic
sudo pip install dlib
sudo pip install imutils
sudo pip install pupil-apriltags
Note
The dlib package will take quite a while to install.
For each user:
sudo adduser $USER video
Then, reboot the system.