ROS1
Xvisio SDK 文档主页

Xvisio ROS wrapper 介绍


注意:ROS wrapper目前支持的操作系统为Ubuntu20.04和Ubuntu18.04,支持的ROS系统为ROS1系统。

1. ROS 系统介绍

机器人操作系统 (ROS) 是一组软件库和工具,可帮助您构建机器人应用程序。 从驱动程序到最先进的算法,再加上强大的开发工具,ROS 拥有您下一个机器人项目所需的一切。 而且它都是开源的。
ROS官网

2. ROS 环境安装

ROS wrapper环境安装,编译运行,请参照此网页。

3. ROS wrapper获得

在Xvisio SDK安装目录下:/usr/share/ros-wrapper/xv_sdk

4. ROS wrapper 主要目录介绍

  1. include: 存放ROS wrapper 相关头文件目录
  2. launch:存放ROS launch配置文件,用于批量运行多个可执行文件
  3. msg:存放 ROS topic自定义的通信格式文件
  4. rviz:存放ROS rviz程序所需要的参数配置文件
  5. src:存放源代码文件
  6. srv:存放ROS server 自定义的通信格式文件

5. ROS wrapper 相关功能配置

  1. 在include/xv_sdk/xv_sdk.hpp文件中定义了ROS wrapper相关功能的配置,如下:
    #define NOT_USE_RGB
    #define NOT_USE_TOF
    //#define NOT_USE_SGBM
    #define NOT_USE_FE
    //#define USE_SLAM_PATH
    #define USE_SLAM_POSE
    //#define USE_MAPPING_ON_HOST
    
    #ifdef USE_SLAM_POSE
        #define ENABLE_POSE_WITH_CONFIDENCE
    #endif
    
    //#define ENABLE_SLAM_POSE_FACTOR_CONVERT
    //#define ENABLE_INFO_PRINT
    
    #ifndef NOT_USE_TOF
    #define TOF_QVGA
    #ifndef NOT_USE_RGB
        #define TOF_PC_WITH_RGB
    #endif/*NOT_USE_RGB*/
    #endif/*#ifndef NOT_USE_TOF*/
    
    #ifndef NOT_USE_SGBM
    #define USE_SGBM_POINTCLOUD
    //#define USE_SGBM_IMAGE
    
    #ifdef USE_SGBM_POINTCLOUD
        //#define DISPLAY_POINT_CLOUD_FPS
        #define SGBM_POINTCLOUD_UNIT_M
        //#define CONVERT_TO_WORLD_COORDINATE_SYSTEM
        //#define SGBM_PC_WITH_RGB
        #define SGBM_FIRMWARE_CLOUD
        #define ENABLE_LESS_POINT_CLOUD
    #endif/*#ifndef USE_SGBM_POINTCLOUD*/
    #endif/*#ifndef NOT_USE_SGBM*/
    
  2. 配置介绍
    2.1 NOT_USE_RGB,如果定义了这个宏,则RGB相关功能关闭,如果这个宏被注释,则使能RGB相机相关功能。
    2.2 NOT_USE_TOF,如果定义了这个宏,则TOF相关功能关闭,如果这个宏被注释,则使能TOF相机相关功能。
    2.3 NOT_USE_SGBM,如果定义了这个宏,则SGBM相关功能关闭,如果这个宏被注释,则使能SGBM相关功能。
    2.4 NOT_USE_FE,如果定义了此宏,则Fisheye camera相关功能关闭,如果此宏被注释,则使能Fisheye camera相关功能。
    2.5 USE_SLAM_PATH,如果此宏定义则此节点提供slam 轨迹的topic,如果此宏被注释,则slam的轨迹的topic不对外提供。
    2.6 USE_SLAM_POSE,如果定义了此宏,则此节点提供slam 的pose topic,如果此宏被注释,则slam 的pose topic不对外提供。

6. ROS wrapper Service 和 Topic

6.1 Ros wrapper 提供的服务,如下表:

功能 service 说明
SLAM /xv_sdk/xv_dev/slam/start 启动SLAM
/xv_sdk/xv_dev/slam/stop 关闭SLAM
/xv_sdk/xv_dev/slam/get_pose 获取slam pose
/xv_sdk/xv_dev/slam/get_pose_at 获取某个时刻的slam pose
/xv_sdk/xv_dev/slam/load_map_cslam 加载map并切换为cslam功能
/xv_sdk/xv_dev/slam/save_map_cslam 保存map切换为cslam功能
SGBM /xv_sdk/xv_dev/sgbm_camera/start 启动SGBM camera
/xv_sdk/xv_dev/sgbm_camera/stop 关闭SGBM camera
IMU /xv_sdk/xv_dev/imu_sensor/get_orientation 启动IMU 3DOF
/xv_sdk/xv_dev/imu_sensor/get_orientation_at 获取某个时刻的IMU 3DOF
/xv_sdk/xv_dev/imu_sensor/start_orientation 启动IMU 3DOF
/xv_sdk/xv_dev/imu_sensor/stop_orientation 关闭IMU 3DOF
RGB /xv_sdk/xv_dev/color_camera/start 启动RGB camera
/xv_sdk/xv_dev/color_camera/stop 关闭RGB camera
TOF /xv_sdk/xv_dev/tof_camera/start 启动TOF camera
/xv_sdk/xv_dev/tof_camera/stop 关闭TOF camera

6.2 Ros wrapper 提供的话题(Topic),如下表:

功能 Topic 说明
SLAM /xv_sdk/xv_dev/slam/pose slam pose话题
/xv_sdk/xv_dev/slam/stereo_planes slam鱼眼相机平面话题
/xv_sdk/xv_dev/slam/tof_planes slamTOF相机平面话题
/xv_sdk/xv_dev/slam/trajectory slam 路径话题
SGBM /xv_sdk/xv_dev/sgbm_camera/camera_info SGBM 相机消息话题
/xv_sdk/xv_dev/sgbm_camera/image_sgbm SGBM 图像话题
/xv_sdk/xv_dev/sgbm_camera/point_cloud SGBM 点云话题
RGB /xv_sdk/xv_dev/color_camera/camera_info RGB 相机消息话题
/xv_sdk/xv_dev/color_camera/image_color RGB 图像话题
Fisheye camera /xv_sdk/xv_dev/fisheye_cameras/left/camera_info 左鱼眼相机消息话题
/xv_sdk/xv_dev/fisheye_cameras/left/image 左鱼眼相机图像话题
/xv_sdk/xv_dev/fisheye_cameras/right/image 右鱼眼相机图像话题
/xv_sdk/xv_dev/fisheye_cameras/right/camera_info 右鱼眼相机消息话题
IMU /xv_sdk/xv_dev/imu_sensor/data_raw IMU 6DOF 话题
/xv_sdk/xv_dev/imu_sensor/orientation IMU 3DOF话题
TOF /xv_sdk/xv_dev/tof_camera/camera_info TOF相机信息话题
/xv_sdk/xv_dev/tof_camera/image TOF图像话题
/xv_sdk/xv_dev/tof_camera/point_cloud TOF点云话题

7. Rviz显示相关

  1. Rviz sgbm demo显示
    rosrun rviz rviz -d `rospack find xv_sdk`/rviz/sgbmdemo.rviz
    
  2. Rviz demo显示
    rosrun rviz rviz -d `rospack find xv_sdk`/rviz/demo.rviz
    
  3. Rviz slam demo显示
    rosrun rviz rviz -d `rospack find xv_sdk`/rviz/demo-slam.rviz
    
  4. Rviz tof demo显示
    rosrun rviz rviz -d `rospack find xv_sdk`/rviz/tofdemo.rviz
    

ROS1
Xvisio SDK 文档主页