.. _installation: 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 ------------- .. image:: humble.png :height: 200px :target: https://docs.ros.org/en/humble/Installation.html .. image:: rolling.png :height: 200px :target: https://docs.ros.org/en/rolling/Installation.html .. tip:: User will be directed to the installation of the distro by pressing the corresponding image. .. 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. Packages for Robot-PC --------------------- .. tip:: If you have a brand new robot from us, please skip this entire section and go to :ref:`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. #. Open a terminal and clone the robot-setup-tool from the GitHub :: git clone https://github.com/neobotix/robot-setup-tool.git #. Go the `robot-setup-tool` directory: :: cd robot-setup-tool/package-setup #. 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 Robots ###### Please fill the (?) depending on your robot. +--------+-------------------------------------------+ | Robots | mpo_700, mpo_500, mp_400, mp_500, rox | +--------+-------------------------------------------+ Below is an example with neo_mp_400 :: git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_mp_400-2 Kinematics ########## Below are the available kinematics packages for the different robots that we offer. ============== ============================= Robots Kinematics ============== ============================= MPO-700 neo_kinematics_omnidrive2 MPO-500 neo_kinematics_mecanum2 MP-400, MP-500 neo_kinematics_differential2 rox (argo) rox_argo_kinematics ============== ============================= Below is an example with neo_kinematics_omnidrive (for mpo_700) :: git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_kinematics_omnidrive2 Relayboards ########### As mentioned in our hardware documentation, all the MP/MM robots uses the relayboard_v2. Whereas, the new robot generation ROX uses neo_relayboard_v3. For neo_relayboard_v2, Clone :: git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_relayboard_v2-2 For neo_relayboard_v3, Clone :: git clone --branch $ROS_DISTRO https://github.com/neobotix/neo_relayboard_v3 neo_sick_s300 ############# .. note:: If the robot utilize microscan or nanoscan from SICK, then please install the sick_safetyscanners2 from the binaries. Instructions are given below. :: 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 neo_nav2_bringup ################ :: git clone https://github.com/neobotix/neo_nav2_bringup.git neo_ur_moveit_config #################### .. note:: Needed only if you have a UR5/UR10 robot from Universal Robots. :: git clone https://github.com/neobotix/neo_mpo_moveit2.git From Binaries ************* Navigation2 ########### :: sudo apt install ros-$ROS_DISTRO-navigation2 ros-$ROS_DISTRO-nav2-* Slam-Toolbox ############ :: sudo apt install ros-$ROS_DISTRO-slam-toolbox sick_saferyscanners2 #################### .. note:: Needed only if your robot carries microscan or nanoscan from SICK. :: sudo apt-get install ros-$ROS_DISTRO-sick-safetyscanners2 topic_tools ########### :: sudo apt-get install ros-$ROS_DISTRO-topic-tools Universal_Robots_ROS2_Driver ############################ .. note:: Needed only if you have a UR5/UR10 robot from Universal Robots. :: sudo apt-get install ros-$ROS_DISTRO-ur 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 MoveIt2 ####### .. note:: Required only for mobile manipulators :: sudo apt-get install ros-$ROS_DISTRO-ros2-control ros-$ROS_DISTRO-ros2-controllers ros-$ROS_DISTRO-rqt_joint_trajectory_controller ros-$ROS_DISTRO-moveit-* 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: 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 -p ros_workspace/src Downloading the required Neobotix ROS-Packages Neobotix Robots *************** Below is an example with neo_mp_400, please choose the robot from the list below. +--------+-------------------------------------------+ | Robots | mpo_700, mpo_500, mp_400, mp_500, rox | +--------+-------------------------------------------+ :: 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 From the binaries ***************** Navigation2 ########### :: sudo apt install ros-$ROS_DISTRO-navigation2 ros-$ROS_DISTRO-nav2-* MoveIt2 ####### .. note:: Required only for mobile manipulators :: sudo apt-get install ros-$ROS_DISTRO-ros2-control ros-$ROS_DISTRO-ros2-controllers ros-$ROS_DISTRO-rqt_joint_trajectory_controller ros-$ROS_DISTRO-moveit-* Packages for Simulation ----------------------- .. note:: You can safely skip this step for the real robot. .. note:: We do not have support for ROX in simulation yet. Stay tuned. Automated Workspace Setup ************************* .. warning:: Before continuing with this tutorial, make sure you have sourced your corresponding ROS-Distro. .. attention:: Mobile manipulators are not included yet in the installation steps Follow the simple 3 step process, to create your ros-workspace with all the necessary packages. #. Open a terminal and clone the robot-setup-tool from the GitHub :: git clone https://github.com/neobotix/robot-setup-tool.git #. Go the `robot-setup-tool` directory: :: cd robot-setup-tool/package-setup #. 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 ros-$ROS_DISTRO-gazebo-ros2-control MoveIt2 ####### :: sudo apt-get install ros-$ROS_DISTRO-ros2-control ros-$ROS_DISTRO-ros2-controllers ros-$ROS_DISTRO-rqt_joint_trajectory_controller ros-$ROS_DISTRO-moveit-* Install the ROS-2 Navigation Packages ##################################### :: sudo apt install ros-$ROS_DISTRO-navigation2 ros-$ROS_DISTRO-nav2-bringup .. Warning:: Only available for Humble. 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