Installation

An overview on the installation process of both the real and the simulated robot are discussed here.

Note

As a prerequiste, we suggest you to go through the tutorial on creating and building a ros2 package.

Distributions

../_images/foxy.png ../_images/galactic.png ../_images/humble.png ../_images/rolling.png

Warning

Rolling distro is specific for the developers and there are chances to find code that breaks your process or your hardware. Using Rolling distro is encouraged, only if you are developing a package based on the robot, else use other distros.

Tip

We encourage the users to use the Galactic or Humble Distro, because of the fact that all navigation2 stack is much more mature in these distros.

Warning

We will be soon dropping the support for Foxy distro, as a lot of developments related to navigation stack cannot be back-ported. Please contact us, if there are any special requirements

Packages for Robot-PC

Tip

If you have a brand new robot from us, please skip this entire section and go to Packages for Client-PC

ROS-2 does not use catkin for building the package unlike ROS-1, rather it employes ament_cmake as the default.

Automated Workspace Setup

Warning

Before continuing with this tutorial, make sure you have sourced your corresponding ROS-Distro.

Follow the simple 3 step process, to create your ros-workspace with all the necessary packages.

  1. Open a terminal and clone the robot-setup-tool from the GitHub

    git clone https://github.com/neobotix/robot-setup-tool.git
    
  2. Go the robot-setup-tool directory:

    cd robot-setup-tool/package-setup
    
  3. Run the bash file:

    ./setup-mp(?)_(?)00.sh
    

Please fill the (?) depending on your robot.

Robots mpo_700, mpo_500, mp_400, mp_500

Manual workspace setup

All the packages from Neobotix must be cloned from GitHub and must be built under a colcon_workspace.

Once the workspace is created, start cloning the packages under your_catkin_workspace/src

neo_mp(?)_(?)00

Please fill the (?) depending on your robot.

Robots mpo_700, mpo_500, mp_400, mp_500

Below is an example with neo_mp_400

git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_mp_400-2

neo_kinematics_(?)

Please fill the (?) depending on your robot as shown below.

Robots Kinematics
MPO-700 neo_kinematics_omnidrive2
MPO-500 neo_kinematics_mecanum2
MP-400, MP-500 neo_kinematics_differential2

Below is an example with neo_kinematics_omnidrive (for mpo_700)

git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_kinematics_omnidrive2

neo_relayboard_v2

git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_relayboard_v2-2

neo_sick_s300

git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_sick_s300-2.git

neo_teleop

git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_teleop2.git

neo_msgs

git clone https://github.com/neobotix/neo_msgs2.git

neo_srvs

git clone https://github.com/neobotix/neo_srvs2.git

neo_common

git clone https://github.com/neobotix/neo_common2.git

neo_local_planner

git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_local_planner2.git

neo_localization

git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_localization2.git

Clone the neo_nav2_bringup Packages

git clone https://github.com/neobotix/neo_nav2_bringup.git

topic_tools

git clone git@github.com:ros-tooling/topic_tools.git

From Binaries

Slam-Toolbox

sudo apt install ros-$ROS_DISTRO-slam-toolbox

Once all the packages are installed, build the workspace from the terminal as follows:

cd your_colcon_workspace
colcon build --symlink-install
. install/setup.bash

Sourcing the workspace

Note

. install/setup.bash does not need to be done each time after a package has been built, if the following step as been done.

echo "source your_colcon_workspace/install/setup.bash" >> ~/.bashrc

Packages for Client-PC

Creating a ROS workspace

The ROS workspace contains the packages needed on your Client PC. See below on how to initialize it from a terminal:

mkdir ~/ros_workspace/src

Downloading the required Neobotix ROS-Packages

neo_mp(?)_(?)00

Please fill the (?) depending on your robot. Below is an example with neo_mp_400

Robots mpo_700, mpo_500, mp_400, mp_500
git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_mp_400-2

neo_msgs

git clone https://github.com/neobotix/neo_msgs2.git

neo_srvs

git clone https://github.com/neobotix/neo_srvs2.git

Once all the packages are installed:

cd your_colcon_workspace
colcon build --symlink-install
. install/setup.bash

Sourcing the workspace

Note

. install/setup.bash does not need to be done each time after a package has been built, if the following step as been done.

echo "source your_colcon_workspace/install/setup.bash" >> ~/.bashrc

Packages for Simulation

Note

You can safely skip this step for the real robot.

Automated Workspace Setup

Warning

Before continuing with this tutorial, make sure you have sourced your corresponding ROS-Distro.

Follow the simple 3 step process, to create your ros-workspace with all the necessary packages.

  1. Open a terminal and clone the robot-setup-tool from the GitHub

    git clone https://github.com/neobotix/robot-setup-tool.git
    
  2. Go the robot-setup-tool directory:

    cd robot-setup-tool/package-setup
    
  3. Run the bash file:

    ./setup-simulation.sh
    

Manual Workspace Setup

Clone the simulation package

git clone https://github.com/neobotix/neo_simulation2.git

Sourcing the workspace

Note

. install/setup.bash does not need to be done each time after a package has been built, if the following step as been done.

echo "source your_colcon_workspace/install/setup.bash" >> ~/.bashrc

Install the relevant ROS2 Gazebo Packages

sudo apt-get install ros-$ROS_DISTRO-gazebo-ros ros-$ROS_DISTRO-gazebo-plugins ros-$ROS_DISTRO-gazebo-ros-pkgs

Install the ROS-2 Navigation Packages

sudo apt install ros-$ROS_DISTRO-navigation2 ros-$ROS_DISTRO-nav2-bringup

Warning

Only available for Foxy and Galactic. For Rolling, follow the steps shown in the link: https://navigation.ros.org/build_instructions/index.html (section: For main branch development)

Install xterm

sudo apt install xterm

Clone the neo_nav2_bringup Packages

git clone https://github.com/neobotix/neo_nav2_bringup.git

Clone the neo_local_planner, neo_localization

Note

Please checkout to your $ROS_DISTRO branch – We provide support to all the currently active ROS2 distribution.

cd to_your_workspace/src
git clone https://github.com/neobotix/neo_local_planner2.git
git clone https://github.com/neobotix/neo_localization2.git

Build the clones

cd ..
colcon build --symlink-install

Install the ROS-2 SLAM Toolbox

sudo apt install ros-$ROS_DISTRO-slam-toolbox