- Getting started with ROS
- Installing ROS
The Robot Operating System (ROS) is a crucial middleware (a.k.a. collection of software packages) that enables roboticists all over the world to implement their algorithms in a clean and modular fashion and share their work effectively with the community.
In addition, it is at the very core of our class, so we’d better start playing with it!
By now, you should have a working (preferably fresh) install of Ubuntu 20.04 and have become accustomed with the basics of Linux, Git and C++. The most efficient way to install ros is through the Debian (binary) packages.
Let’s add the
packages.ros.org repository to our system
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
and setup the keys (install
curl if you haven’t already via
sudo apt install curl)
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
Before installing ROS we need to update the apt index
sudo apt update
Now let’s install ROS 🤖
sudo apt install ros-noetic-desktop-full
Note: if you encounter the following problem when running the command line above:
Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: ros-noetic-desktop-full : Depends: ros-noetic-perception but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Then a solution is to instead of running
sudo apt install ros-noetic-desktop-full, perform the following:
sudo apt install aptitude sudo aptitude install ros-noetic-desktop-full
It’s convenient if the ROS environment variables are automatically loaded as soon a new shell is launched, let’s edit
~/.bashrc to do so
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc
Keep in mind.
If you use a different shell (such as zsh), make sure you configure your shell to source the correct setup file!
Up to now you have installed what you need to run the core ROS packages. To create and manage your own ROS workspaces, there are various tools and requirements that are distributed separately. For example, rosinstall is a frequently used command-line tool that enables you to easily download many source trees for ROS packages with one command.
To install this tool and other dependencies for building ROS packages, run:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-vcstool build-essential python3-catkin-tools python-is-python3
Before using ROS, we need to initialize
sudo rosdep init rosdep update