Skip to content

ROS Tips

Alexandre Guilbault edited this page Apr 22, 2019 · 7 revisions

Tips

Using your own hardware

You can use your own hardware with the SecurBot framework. Each hardware element is either a base or a sensor. You must provide the matching launchfile in the proper folder.

Base

Bases are located in the launch/includes/bases folder of the securbot_pkg package. The launchfile for the base launch the robot base controller node, which must accept geometry twist messages. Your robot base must also provide odometry data and a geometric transform from the odom frame to the base_footprint frame. We recommend adding a velocity smoother node between the incoming velocity and the velocity sent to your robot base. The following topics are used:

/cmd_vel
/odom

You must also provide the frame launchfile in the launch/includes/frames folder. This file must launch a static_transform_publisher for the base_footprint to camera_link transform and another for the base_footprint to laser transform. Configuration for the ROS navigation stack must be provided in the securbot_pkg/config/YOUR_BASE_NAME folder. You can copy one of the existing folder as a baseline.

Make sure your filenames match your environnement variable value for SECURBOT_BASE!

Sensors

Sensors are located in the launch/includes/sensors folder of the securbot_pkg package. The launchfile for a sensor launch the sensor ROS node which must expose the topics used by RTAB-Map.

For a camera, RTAB-Map requires the RGB and depth image as well as the pointcloud for the obstacle detection. RGB camera info must also be published. Depth image must be registered to the RGB image. The following topics are used:

/camera/depth_registered/image_raw
/camera/rgb/image_rect_color
/camera/rgb/camera_info
/pointcloud

For a lidar, the laserscan message is required on the /scan topic.

Make sure your filenames match your environnement variable value for SECURBOT_CAMERA or SECURBOT_LIDAR!

Navigation tuning tips

The navigation parameters found in the config folder must be tuned to obtain a good navigation and obstacle avoidance from the robot.

To do so, you can follow the instruction from the navigation stack wiki.

You can also look at a test report we produced while tuning the navigation of our Pioneer 2 platform here.

Clone this wiki locally