Welcome to the Macalester Robotics Research group under Susan Fox! 🤖🔥
I will take you through onboarding - ANDRE
This repository currently supports 4 robots in the lab, two Turtlebot2s and two Turtlebot4s.
The Turtlebot2s are Speedy and Cutie. Speedy is the robot with the arm with all those wires and electronics around. Cutie on the other hand is more cute because the it doesn't have all those messy wired around it and it has the picture of the cat.
Both robots are running on the Kobuki roomba base. This is important to know because the Kobuki drivers are not natively developed for ROS2, thus effort was done to upgrade these into ROS2.
The Turtlebot4s are Merry and Pippin. These robots look identical to each other as inspired by the character pair of the same name in the Lord of the Rings. They have a modern look and a big power button. These have more functionalities than the turtlebot2s and future development would use turtlebot4 functionalities.
as of August 2026, tb4 are still being integrated into the codebase
If you are setting up a brand-new machine, use the steps below. If you are working on one of the lab workstations, you can usually skip these setup steps because the expected environment is already installed there:
- Ubuntu Noble
- ROS 2 Jazzy
- TensorFlow 2.18
Follow the official ROS 2 Jazzy installation guide:
After installation, open a new terminal and source ROS:
source /opt/ros/jazzy/setup.bashmkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
git clone <repository-url> foxrobotlab_ros2For Turtlebot2 support, import the additional repositories listed in the workspace manifest:
cd ~/ros2_ws/src
vcs import < foxrobotlab_ros2/thirdparty.reposIf vcs import fails, run it again once more.
sudo apt update
sudo apt install -y libusb-1.0-0-dev libftdi1-dev libuvc-dev ros-dev-toolsWhen you connect hardware to the PC, it may appear as /dev/ttyUSB* without the correct permissions. The following rules create stable device names and grant access:
cd ~/ros2_ws
sudo cp src/ThirdParty/ros_astra_camera/astra_camera/scripts/56-orbbec-usb.rules /etc/udev/rules.d/
sudo cp src/ThirdParty/rplidar_ros/scripts/rplidar.rules /etc/udev/rules.d/
sudo cp src/ThirdParty/kobuki_ros/60-kobuki.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules
sudo udevadm triggersudo rosdep init
rosdep update
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-installAfter the build completes, source the workspace in each new terminal:
source ~/ros2_ws/install/setup.bashInstallation is complete!!
Below are instructions on how to run the main program for Susan's research.
If you are using one of the lab workstations, the environment is usually already configured. If you are on a new machine, make sure the workspace has been built and sourced first.
source .bashrc- Select the robot profile:
choose_robot tb2
# or
choose_robot tb4- In a second terminal, connect to the robot using the lab-specific alias:
# Turtlebot2s
speedy_connect
# or
cutie_connect
# Turtlebot4s
merry_connect
#or
pippin_connect- Start the workstation-side GUI and listener services:
ros2 launch foxrobotlab_ros2 laptop_servers.launch.pyStart the robot-side stack:
ros2 launch foxrobotlab_ros2 robot_system.launch.py- The workstation terminal launches the localizer server and GUI.
- The robot terminal launches the base, camera, and planner-related nodes.
- Once both sides are running, enter a starting cell, yaw, and destination cell in the GUI to have the robot start autonomously navigating.
If the planner cannot connect, confirm that:
- both terminals were sourced
- ROS Discovery Server is turned on
- the workspace was rebuilt after recent changes <- important to be aware of
If needed, rebuild and re-source the workspace:
cd PycharmProjects/turtlebot_ros2_ws
colcon build --packages-select foxrobotlab_ros2 --symlink-install
source install/setup.bashCredit to Intelligent Robotics Lab research group from the Universidad Rey Juan Carlos for the ROS2 Kobuki drivers.
ROS2 Crash Courses by Robotics Back-End