Software Setup (User)

_images/ros_foxy.png

The following installation must be done in the Host PC that will communicate with Diablo as Diablo’s Raspberry Pi comes pre-installed with ROS2 Foxy. It is recommended to follow the instructions provide in ROS Foxy Docs for latest info on installation.

Set Up Your Sources List

sudo sh -c 'echo "deb [arch=amd64,arm64] http://packages.ros.org/ros2/ubuntu DISTRO main" > /etc/apt/sources.list.d/ros2-latest.list'

Replace DISTRO with your distribution name (e.g., focal for Ubuntu 20.04).

Set Up Your Keys

curl -fsSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

Update Your Package Index

sudo apt update

Install ROS 2 Foxy Packages

sudo apt install -y ros-foxy-desktop

This command installs the ROS 2 Foxy Fitzroy desktop packages, including common dependencies and tools.

Source the ROS 2 Setup Script

source /opt/ros/foxy/setup.bash

To avoid running this command each time you open a new terminal, consider adding it to your shell’s startup script (e.g., ~/.bashrc).

Install ROS 2 Dependencies

You may need to install additional dependencies based on your specific use case. Common dependencies include:

  • python3-colcon-common-extensions: Useful for building ROS 2 packages.

Install them using apt:

sudo apt install -y python3-colcon-common-extensions

Create a ROS 2 Workspace (Optional)

You can create a workspace to organize your ROS 2 packages and build them:

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build --symlink-install

This step is optional but recommended for working with ROS 2 packages.

Test Your ROS 2 Installation

To verify that your ROS 2 installation is working correctly, open a new terminal and run:

ros2 doctor

This command checks the system and reports any issues or missing dependencies.

You can also try running a basic ROS 2 command like:

ros2 --help

This should display the ROS 2 command-line interface help message.

ROS2 Diablo Domain ID

Finally in your .bashrc put the ROS DOMAIN ID 5 which is the default domain id of diablo.

export ROS_DOMAIN_ID=5

Congratulations! You have successfully installed ROS 2 Foxy Fitzroy on your Linux system. You can now start developing and running ROS 2 applications.

For further documentation and tutorials, refer to the official ROS 2 documentation: https://docs.ros.org/en/foxy/index.html

Software Setup (Diablo)

Connect to WiFi

Connect to Diablo via ethernet lan cable.

Then use sudo nmap -sP 192.168.0.* to find ip. The name diablo in one of thec connections should turn up.

Enter diablo via ssh, enter the command terminal and enter the following:

ssh -X diablo@192.168.0.###

The password is:

diablo123

Connect the Raspberry pi to your local WiFi network via

sudo nmtui

The new ip can be located via

ifconfig

Nav2 Performance

Install and add the export command to your .bashrc file to enable smooth ROS2 nav experience.

sudo apt install ros-foxy-rmw-cyclonedds-cpp
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

Also to perform buffer increase for cyclone (do only once)

echo "net.core.rmem_max=8388608\nnet.core.rmem_default=8388608\n" | sudo tee /etc/sysctl.d/60-cyclonedds.conf

MBS Drivers

Diablo Box Display

The package is designed to work on the Diablo. To install the package request it from MBS Support .

  • Copy the provided ROS2 package into your ros2_ws and build

colcon build --symlink-install

Network Setup

To set up a connection to the Diablo, please follow the provided guidelines:

  1. Connect an Ethernet cable from your Host PC to the Ethernet port of the Diablo (Raspberry pi).

  2. Next in your Host PC, create a static connection from your network manager with an ip of 192.168.0.51. For the netmask, use 255.255.255.0.

  3. Once the static connection is setup correctly, one can ssh into the on-board PC as described below.

To ssh, enter the command terminal and enter the following:

ssh -X diablo@192.168.0.<diablo_ip>

The password is:

diablo123

Network tables

The following table shows Diablo’s networks.

Diablo network devices

Device

Network Address

Users

Password

Diablo

192.168.0.*

diablo

diablo123