/raibo-smd_ros

(temporary) launch-file + dependency based implementation for RAIBO's base stack

Primary LanguagePython

source /opt/ros/foxy/setup.zsh
source ../realsense_ws/install/local_setup.zsh  (realsense-ros from source)
source install/local_setup.zsh  (main workspace with sensor streaming)
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu/:$LD_LIBRARY_PATH  (need in local desktop to make rviz2 available)
ros2 launch raibo-smd_ros head_launch.py

raibo-smd_ros

Launch + dependency based implementation for RAIBO's sensor module's ROS2 base stack


Overview

Brief overview and progress of of RAIBO's Sensor Module Development (raibo-smd) is outlined here


Installation

This package is tested on the ROS2 foxy distribution (link)

1. Install Dependencies


1.0. ros2-foxy

You need a base underlay workspace to install this package from source (i.e. "dev_ws folder") Installation Instructions for ROS2 here Instrtuctions for creating your dev_ws is here

1.1. librealsense2 (link)

Note: The release does not have to be v2.41.0 specifically, but make sure that the ros-wrapper is compatible with it.

You can use any method of installation.

Make sure that the installation can detect and retrieve data from both cameras:

rs-enumerate-devices -s

The above command must output each of the connected devices on each line.

realsense-viewer

The above command must start a graphical interface, which connects to one of the Realsense devices.

1.2. realsense-ros (link) (link)

Note: Binary installation is recommended to keep development workspace minimal.

IMPORTANT: The link for installation shows instructions to install for the ros distribution dashing. Change all the dashing statements to either foxy or ${ROS_DISTRO}.

So, the binary installation is as follows:

  • Install ROS2 Dependancies:
sudo apt-get install ros-${ROS_DISTRO}-cv-bridge ros-${ROS_DISTRO}-librealsense2 ros-${ROS_DISTRO}-message-filters ros-${ROS_DISTRO}-image-transport
  • Install non-ROS Dependancies:
sudo apt-get install -y libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install -y libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev
  • Install Package
sudo apt-get install ros-${ROS_DISTRO}-realsense2-camera-msgs ros-${ROS_DISTRO}-realsense2-camera

The validity of the commands above are unstable. If the below commands do not work, use apt-cache search realsense to search for relevant packages. As a last resort, install from source.

  • Check Installation
ros2 pkg list | grep realsense

the above command must include:

realsense2_camera
realsense2_camera_msgs



1.3. velodyne (ROS2 Wrapper) (link)

For the ip and route configuration, use the following IP address (factory default).

 192.168.  1.201
         ^^^ ^^^
(192.168. XX. YY)

If problem about the IP address persists, check out the discussion here

Additionally, since RAIBO uses a usb-c hub for ethernet connection, the adapter alias will be something different than [eth0].

Use sudo ifconfig -a command to see possible internet adapters, and choose the alias with the connected MAC that matches that of the LiDAR. (i.e.: enx00e04c680015)

1.4. perception_pcl (ROS2 library) (link (github)) (link (ROS index))

As of 2022-01-07, building from binaries results in depnedency errors. Build from source instead (ros2 branch). This also results in dependancy errors.

  • Resolution: in both transforms.hpp and transforms.cpp, change one of the #include statements as follows:
from: #include <tf2_geometry_msgs/tf2_geometry_msgs.hpp>
                                                     ^^
to  : #include <tf2_geometry_msgs/tf2_geometry_msgs.h>

2. Install raibo-smd_ros From Source

  • Move to your workspace/src and clone this repo.
cd ~/dev_ws/src
git clone https://github.com/iamchoking/raibo-smd_ros.git
  • Build Package
cd ~/dev_ws
source /opt/ros/${ROS_DISTRO}/setup.bash
colcon build --symlink-install --base-paths src/raibo-smd_ros


Usage

Simple launch commands can manipulate the realsense_ros and velodyne nodes, publish pre-determined tf's and visualise the pointCloud output using rviz2

  • Launch head module only
ros2 launch raibo-smd_ros head_launch.py
  • Launch lidar module only
ros2 launch raibo-smd_ros lidar_launch.py
  • Launch all modules
ros2 launch raibo-smd_ros full_launch.py