Install ROS 2 Humble with Create 3 Messages on an Ubuntu 22.04 Machine
Before you start
These directions should work on a machine natively running Ubuntu1 22.04, as well as in a virtualized container within another operating system. Note that there might be some network setup required if in a virtualized container; for example, RMWs seem to like running in a bridged network configuration rather than a NATted one.
These directions follow Open Robotics' official documentation on Installing ROS 2 on Ubuntu Linux, and more detailed information about what the commands below do can be found there.
Important
Some single board computers may have board specific instructions that differ from the step-by-step process outlined below. These instructions are available for the NavQPlus and Raspberry Pi® 4.
Step-by-step
-
If you haven't already, download and install Ubuntu® 22.04 64-bit onto your machine. You may choose either the desktop (for a GUI) or server (for console-only) install.
-
Once logged in, check to ensure that you are using a UTF-8 locale by typing
echo $LANG
and ensuring "UTF-8" is at the end of the returned string.
-
Ensure that the Ubuntu Universe repository is enabled by checking the output of this command:
apt-cache policy | grep universe
which should output a line like
500 http://us.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages release v=22.04,o=Ubuntu,a=jammy,n=jammy,l=Ubuntu,c=universe,b=amd64
If it does not, execute the following:
sudo apt update && sudo apt install software-properties-common && sudo add-apt-repository universe
-
Add the ROS 22 apt repository, first by installing curl
sudo apt install curl
then authorizing the Open Robotics GPG key
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
and then adding the repository to your computer's sources list
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
-
Make sure your other packages are up to date
sudo apt update && sudo apt upgrade
-
And then install ROS 2. If you have a graphical user environment, use
sudo apt install -y ros-humble-desktop
otherwise just use the base (barebones) install
sudo apt install -y ros-humble-ros-base
-
Next add the Create® 3 messages:
sudo apt install -y ros-humble-irobot-create-msgs
-
We also recommend installing a few other packages:
sudo apt install -y build-essential python3-colcon-common-extensions python3-rosdep ros-humble-rmw-cyclonedds-cpp
-
In order to have your environment ready to go, we recommend auto-running the following when you open a new session:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
-
At this point, we recommend setting your default RMW (ROS 2 middleware). The RMW you set here has to match the RMW on your robot, which can be found from its Application Configuration page. More detail on RMW can be found here. Right now, the Create® 3 robot supports
rmw_cyclonedds_cpp
andrmw_fastrtps_cpp
. The default for Humble isrmw_fastrtps_cpp
. Depending on your robot's RMW implementation, type one of the following:echo "export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp" >> ~/.bashrc
or
echo "export RMW_IMPLEMENTATION=rmw_fastrtps_cpp" >> ~/.bashrc
-
Finally, either log out and log back in, or simply
source ~/.bashrc
-
If both your computer and robot are on the same network, you should now be able to test things out with a
ros2 topic list
. If this does not work, please refer to ROS 2 Network Configuration for further configuration ideas. A full Create® 3 API description can be found here.