ROS 1

Installation (Noetic Ninjemys)

Note

This is being attempted in the Ubuntu 20.04 operating system.

Set up sources.list

Prepare system to accept software from packages.ros.org.

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

Set up keys

sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

Install ROS 1 Packages

Update repository and existing packages first.

sudo apt update
sudo apt upgrade

For the Desktop Install (Recommended) which includes everything in Desktop plus 2D/3D simulators and 2D/3D perception packages .

sudo apt install ros-noetic-desktop-full
Note

For on the ROS-Base Install (Bare Bones) which contains Communication libraries, message packages, command line tools. No GUI tools.

sudo apt install ros-noetic-ros-base

Sourcing the Environment

Referring to the previous section on ROS packages, we can permanently source the ROS installation by running:

echo "source /opt/ros/noetic/setup.bash" >> .bashrc

Dependencies

To create and manage new packages and workspaces, certain tools are required that are distributed separately. These are now going to be installed.

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

To handle package dependencies and install them as needed, the rosdep tool also needs to be initialised.

sudo apt install python3-rosdep
sudo rosdep init
rosdep update

Centralised System

the communication between nodes (the basic units of software in ROS that process data) is primarily facilitated through a combination of TCPROS and UDPROS protocols, along with the ROS Master.

These protocols operate in a peer-to-peer fashion, meaning that once nodes are aware of each other (through the ROS Master), they communicate directly without routing messages through the Master. This setup allows for flexible and scalable communication between nodes in a ROS network.