本页面提供的基于ROS平台开发的SLAMWARE SDK的参考。


本页内容



Get Started

下载和安装SDK

请在思岚科技官方网站上的下载与支持页面下载适合您的平台的ROS SDK并解压至本地。

目录结构

Slamware ROS SDK包含了您开发过程中可能会用到的资源、代码,其目录结构组织如下:

目录说明
docs参考文档
src源码
--slamware_ros_sdkROS SDK源码包
--slamware_sdkSDK相关头文件与库文件

开发环境需求

基于Ubuntu 16.04操作系统,并装有ROS软件包。

硬件需求

为使用ROS SDK,您需要一台基于Slamware的移动机器人,开启并配置合适的IP地址。slamware_ros_sdk_server_node节点启动后将尝试连接该机器人。



Hello World

1.创建工作空间

将存放源码的src放入一个空的工作目录,如:catkin_ws,使用catkin工具初始化工作空间

cd catkin_ws/srccatkin_init_workspace

2.编译

cd ..catkin_make

3.配置工作空间系统环境

source devel/setup.bash

4.启动节点

若移动机器人处于AP模式,连接机器人WIFI,启动节点

roslaunch slamware_ros_sdk slamware_ros_sdk_server_node.launch ip_address:=192.168.11.1

通过rviz查看

roslaunch slamware_ros_sdk view_slamware_ros_sdk_server_node.launch



节点

节点说明
slamware_ros_sdk_server_node节点发布地图、机器人位姿与状态信息,接收控制指令



slamware_ros_sdk_server_node节点

slamware_ros_sdk_server_node节点连接基于Slamware的移动机器人,发布该机器人的地图、位姿与状态信息,并接收指令用于控制设备。

1. 订阅主题

/cmd_vel (geometry_msgs/Twist)

控制机器人线速度和角速度


/move_base_simple/goal (geometry_msgs/PoseStamped)

控制机器人导航至指定地点(带Yaw角,精确到点模式)


sync_map (slamware_ros_sdk/SyncMapRequest)

地图同步

slamware_ros_sdk/SyncMapRequest
文件
slamware_ros_sdk/msg/SyncMapRequest.msg

定义

 空


set_pose (geometry_msgs/Pose)

设置机器人指定位姿


recover_localization (slamware_ros_sdk/RecoverLocalizationRequest)

控制机器人进行重定位

slamware_ros_sdk/RecoverLocalizationRequest

文件

slamware_ros_sdk/msg/RecoverLocalizationRequest.msg

定义  
元素类型 描述 
area slamware_ros_sdk/RectFlt32 置信区域
options slamware_ros_sdk/LocalizationOptions 重定位选项,包括重定位时的行为表现、时长限制等
slamware_ros_sdk/RectFlt32
文件

slamware_ros_sdk/msg/RectFlt32.msg

定义
元素类型描述
xfloat32矩形位置的x坐标
yfloat32矩形位置的y坐标
wfloat32矩形宽度
hfloat32矩形高度
slamware_ros_sdk/LocalizationOptions
文件

slamware_ros_sdk/msg/LocalizationOptions.msg

定义
元素类型描述
max_time_msslamware_ros_sdk/OptionalInt32重定位时长限制
mvmt_typeslamware_ros_sdk/OptionalLocalizationMovement重定位行为表现
slamware_ros_sdk/OptionalInt32
文件

slamware_ros_sdk/msg/OptionalInt32.msg

 定义
元素类型描述
is_validboolvalue是否有效
valueint32

slamware_ros_sdk/OptionalLocalizationMovement

文件

slamware_ros_sdk/msg/OptionalLocalizationMovement.msg

定义
元素类型描述
is_validboolvalue是否有效
valueslamware_ros_sdk/LocalizationMovement行为表现
slamware_ros_sdk/LocalizationMovement
文件

slamware_ros_sdk/msg/LocalizationMovement.msg

定义
元素类型描述
typeint8未知=-1,静止=0, 仅旋转=1,任意=2

clear_map (slamware_ros_sdk/ClearMapRequest)

清除地图

slamware_ros_sdk/ClearMapRequest

文件

slamware_ros_sdk/msg/ClearMapRequest.msg

定义
元素类型描述
kindslamware_ros_sdk/MapKind地图类型
slamware_ros_sdk/MapKind
文件

slamware_ros_sdk/msg/MapKind.msg

定义
元素类型描述
kindint8未知=-1,EXPLORERMAP=0,...

set_map_update (slamware_ros_sdk/SetMapUpdateRequest)

设置建图开关状态

slamware_ros_sdk/SetMapUpdateRequest

 文件
 slamware_ros_sdk/msg/SetMapUpdateRequest.msg
 定义
元素类型描述
 enabledbool  指定开关状态
 kindslamware_ros_sdk/MapKind  地图类型
slamware_ros_sdk/MapKind
文件

slamware_ros_sdk/msg/MapKind.msg

定义
元素类型描述
kindint8未知=-1,EXPLORERMAP=0,...

set_map_localization (slamware_ros_sdk/SetMapLocalizationRequest)

设置定位开关状态

slamware_ros_sdk/SetMapLocalizationRequest

文件
 slamware_ros_sdk/msg/SetMapLocalizationRequest.msg
定义 
元素类型描述
 enabledbool 指定开关状态 

move_by_direction (slamware_ros_sdk/MoveByDirectionRequest)

控制机器人向指定方向移动

slamware_ros_sdk/MoveByDirectionRequest

 文件
 slamware_ros_sdk/msg/MoveByDirectionRequest.msg
 定义
元素类型描述
 direction slamware_ros_sdk/ActionDirection 指定移动方向
 options slamware_ros_sdk/MoveOptions 移动选项
slamware_ros_sdk/ActionDirection
 文件
 slamware_ros_sdk/msg/ActionDirection.msg
 定义
元素类型描述
 direction int8 未知=-1,前进=0, 后退=1,右转=2,左转=3

slamware_ros_sdk/MoveOptions

 文件
 slamware_ros_sdk/msg/MoveOptions.msg
 定义
元素类型描述
 opt_flags slamware_ros_sdk/MoveOptionFlag 移动选项
 speed_ratio slamware_ros_sdk/OptionalFlt64

 速度调制参数

slamware_ros_sdk/MoveOptionFlag
 文件
 slamware_ros_sdk/msg/MoveOptionFlag.msg
 定义
 元素类型描述 
flagsuint32选项值
枚举
 选项取值说明 
 NONE 0x00000000 不配置任何选项。
 APPENDING 0x00000001 将新目标点追加到当前目标点之后,否则将替换当前目标点。
 MILESTONE 0x00000002 机器人通过路径搜索的方式前往目标点。
 NO_SMOOTH 0x00000004 搜索到的路径不经过平滑处理。
 KEY_POINTS 0x00000008 机器人采用轨道模式导航至目标点。
 PRECISE 0x00000010 机器人将精确地到达目标点。
 WITH_YAW 0x00000020 机器人将精确地转到指定角度。
 RETURN_UNREACHABLE_DIRECTLY 0x00000040 目标点被占用则直接返回失败,否则允许搜索一条到目标点附近的路径。
 KEY_POINTS_WITH_OA 0x00000080 机器人采用轨道优先的模式导航至目标点并自动避障。
slamware_ros_sdk/OptionalFlt64
 文件
 slamware_ros_sdk/msg/OptionalFlt64.msg
 定义
元素类型描述
is_validboolvalue是否有效
 value float64 值

move_by_theta (slamware_ros_sdk/MoveByThetaRequest)

轨迹球模式控制机器人移动

slamware_ros_sdk/MoveByThetaRequest
 文件
 slamware_ros_sdk/msg/MoveByThetaRequest.msg
 定义
元素类型描述
 theta float32 轨迹球角度
 options slamware_ros_sdk/MoveOptions 移动选项

slamware_ros_sdk/MoveOptions

 文件
 slamware_ros_sdk/msg/MoveOptions.msg
 定义
元素类型描述
 opt_flags slamware_ros_sdk/MoveOptionFlag 移动选项
 speed_ratio slamware_ros_sdk/OptionalFlt64

 速度调制参数

slamware_ros_sdk/MoveOptionFlag
 文件
 slamware_ros_sdk/msg/MoveOptionFlag.msg
 定义
 元素类型描述 
flagsuint32选项值
枚举
 选项取值说明 
 NONE 0x00000000 不配置任何选项。
 APPENDING 0x00000001 将新目标点追加到当前目标点之后,否则将替换当前目标点。
 MILESTONE 0x00000002 机器人通过路径搜索的方式前往目标点。
 NO_SMOOTH 0x00000004 搜索到的路径不经过平滑处理。
 KEY_POINTS 0x00000008 机器人采用轨道模式导航至目标点。
 PRECISE 0x00000010 机器人将精确地到达目标点。
 WITH_YAW 0x00000020 机器人将精确地转到指定角度。
 RETURN_UNREACHABLE_DIRECTLY 0x00000040 目标点被占用则直接返回失败,否则允许搜索一条到目标点附近的路径。
 KEY_POINTS_WITH_OA 0x00000080 机器人采用轨道优先的模式导航至目标点并自动避障。
slamware_ros_sdk/OptionalFlt64
 文件
 slamware_ros_sdk/msg/OptionalFlt64.msg
 定义
元素类型描述
is_validboolvalue是否有效
 value float64 值

move_to (slamware_ros_sdk/MoveToRequest)

控制机器人导航至指定地点,并旋转指定角度

slamware_ros_sdk/MoveToRequest
 文件
 slamware_ros_sdk/msg/MoveToRequest.msg
 定义
元素类型描述
 location geometry_msgs/Point 指定移动位置
 options slamware_ros_sdk/MoveOptions 移动选项
 yaw float32 设备旋转角度

slamware_ros_sdk/MoveOptions

 文件
 slamware_ros_sdk/msg/MoveOptions.msg
 定义
元素类型描述
 opt_flags slamware_ros_sdk/MoveOptionFlag 移动选项
 speed_ratio slamware_ros_sdk/OptionalFlt64

 速度调制参数

slamware_ros_sdk/MoveOptionFlag
 文件
 slamware_ros_sdk/msg/MoveOptionFlag.msg
 定义
 元素类型描述 
flagsuint32选项值
枚举
 选项取值说明 
 NONE 0x00000000 不配置任何选项。
 APPENDING 0x00000001 将新目标点追加到当前目标点之后,否则将替换当前目标点。
 MILESTONE 0x00000002 机器人通过路径搜索的方式前往目标点。
 NO_SMOOTH 0x00000004 搜索到的路径不经过平滑处理。
 KEY_POINTS 0x00000008 机器人采用轨道模式导航至目标点。
 PRECISE 0x00000010 机器人将精确地到达目标点。
 WITH_YAW 0x00000020 机器人将精确地转到指定角度。
 RETURN_UNREACHABLE_DIRECTLY 0x00000040 目标点被占用则直接返回失败,否则允许搜索一条到目标点附近的路径。
 KEY_POINTS_WITH_OA 0x00000080 机器人采用轨道优先的模式导航至目标点并自动避障。
slamware_ros_sdk/OptionalFlt64
 文件
 slamware_ros_sdk/msg/OptionalFlt64.msg
 定义
元素类型描述
is_validboolvalue是否有效
 value float64 值

move_to_locations (slamware_ros_sdk/MoveToLocationsRequest)

控制机器人沿着指定路径移动

slamware_ros_sdk/MoveToLocationsRequest
 文件
 slamware_ros_sdk/msg/MoveToLocationsRequest.msg
 定义
元素类型描述
 locations geometry_msgs/Point[] 指定路径
 options slamware_ros_sdk/MoveOptions 移动选项
 yaw float32 设备旋转角度

slamware_ros_sdk/MoveOptions

 文件
 slamware_ros_sdk/msg/MoveOptions.msg
 定义
元素类型描述
 opt_flags slamware_ros_sdk/MoveOptionFlag 移动选项
 speed_ratio slamware_ros_sdk/OptionalFlt64

 速度调制参数

slamware_ros_sdk/MoveOptionFlag
 文件
 slamware_ros_sdk/msg/MoveOptionFlag.msg
 定义
 元素类型描述 
flagsuint32选项值
枚举
 选项取值说明 
 NONE 0x00000000 不配置任何选项。
 APPENDING 0x00000001 将新目标点追加到当前目标点之后,否则将替换当前目标点。
 MILESTONE 0x00000002 机器人通过路径搜索的方式前往目标点。
 NO_SMOOTH 0x00000004 搜索到的路径不经过平滑处理。
 KEY_POINTS 0x00000008 机器人采用轨道模式导航至目标点。
 PRECISE 0x00000010 机器人将精确地到达目标点。
 WITH_YAW 0x00000020 机器人将精确地转到指定角度。
 RETURN_UNREACHABLE_DIRECTLY 0x00000040 目标点被占用则直接返回失败,否则允许搜索一条到目标点附近的路径。
 KEY_POINTS_WITH_OA 0x00000080 机器人采用轨道优先的模式导航至目标点并自动避障。
slamware_ros_sdk/OptionalFlt64
 文件
 slamware_ros_sdk/msg/OptionalFlt64.msg
 定义
元素类型描述
is_validboolvalue是否有效
 value float64 值

rotate_to (slamware_ros_sdk/RotateToRequest)

控制机器人转动至指定的朝向

slamware_ros_sdk/RotateToRequest
 文件
 slamware_ros_sdk/msg/RotateToRequest.msg
 定义
元素类型描述
 orientation geometry_msgs/Quaternion 指定朝向
 options slamware_ros_sdk/MoveOptions 移动选项

slamware_ros_sdk/MoveOptions

 文件
 slamware_ros_sdk/msg/MoveOptions.msg
 定义
元素类型描述
 opt_flags slamware_ros_sdk/MoveOptionFlag 移动选项
 speed_ratio slamware_ros_sdk/OptionalFlt64

 速度调制参数

slamware_ros_sdk/MoveOptionFlag
 文件
 slamware_ros_sdk/msg/MoveOptionFlag.msg
 定义
 元素类型描述 
flagsuint32选项值
枚举
 选项取值说明 
 NONE 0x00000000 不配置任何选项。
 APPENDING 0x00000001 将新目标点追加到当前目标点之后,否则将替换当前目标点。
 MILESTONE 0x00000002 机器人通过路径搜索的方式前往目标点。
 NO_SMOOTH 0x00000004 搜索到的路径不经过平滑处理。
 KEY_POINTS 0x00000008 机器人采用轨道模式导航至目标点。
 PRECISE 0x00000010 机器人将精确地到达目标点。
 WITH_YAW 0x00000020 机器人将精确地转到指定角度。
 RETURN_UNREACHABLE_DIRECTLY 0x00000040 目标点被占用则直接返回失败,否则允许搜索一条到目标点附近的路径。
 KEY_POINTS_WITH_OA 0x00000080 机器人采用轨道优先的模式导航至目标点并自动避障。
slamware_ros_sdk/OptionalFlt64
 文件
 slamware_ros_sdk/msg/OptionalFlt64.msg
 定义
元素类型描述
is_validboolvalue是否有效
 value float64 值

rotate (slamware_ros_sdk/RotateRequest)

控制机器人旋转指定角度

slamware_ros_sdk/RotateRequest
文件
 slamware_ros_sdk/msg/RotateRequest.msg
定义
元素类型描述
 orientation geometry_msgs/Quaternion 指定朝向
 options slamware_ros_sdk/MoveOptions 移动选项

slamware_ros_sdk/MoveOptions

 文件
 slamware_ros_sdk/msg/MoveOptions.msg
 定义
元素类型描述
 opt_flags slamware_ros_sdk/MoveOptionFlag 移动选项
 speed_ratio slamware_ros_sdk/OptionalFlt64

 速度调制参数

slamware_ros_sdk/MoveOptionFlag
 文件
 slamware_ros_sdk/msg/MoveOptionFlag.msg
 定义
 元素类型描述 
flagsuint32选项值
枚举
 选项取值说明 
 NONE 0x00000000 不配置任何选项。
 APPENDING 0x00000001 将新目标点追加到当前目标点之后,否则将替换当前目标点。
 MILESTONE 0x00000002 机器人通过路径搜索的方式前往目标点。
 NO_SMOOTH 0x00000004 搜索到的路径不经过平滑处理。
 KEY_POINTS 0x00000008 机器人采用轨道模式导航至目标点。
 PRECISE 0x00000010 机器人将精确地到达目标点。
 WITH_YAW 0x00000020 机器人将精确地转到指定角度。
 RETURN_UNREACHABLE_DIRECTLY 0x00000040 目标点被占用则直接返回失败,否则允许搜索一条到目标点附近的路径。
 KEY_POINTS_WITH_OA 0x00000080 机器人采用轨道优先的模式导航至目标点并自动避障。
slamware_ros_sdk/OptionalFlt64
 文件
 slamware_ros_sdk/msg/OptionalFlt64.msg
 定义
元素类型描述
is_validboolvalue是否有效
 value float64 值

go_home (slamware_ros_sdk/GoHomeRequest)

控制机器人回桩

slamware_ros_sdk/GoHomeRequest
文件

slamware_ros_sdk/msg/GoHomeRequest.msg

定义

cancel_action (slamware_ros_sdk/CancelActionRequest)

取消所有动作

slamware_ros_sdk/CancelActionRequest
文件
slamware_ros_sdk/msg/CancelActionRequest.msg
定义

add_line (slamware_ros_sdk/AddLineRequest)

添加线段

slamware_ros_sdk/AddLineRequest

 文件
 slamware_ros_sdk/msg/AddLineRequest.msg
 定义
元素类型描述
usage  slamware_ros_sdk/ArtifactUsage 线段类型
 line slamware_ros_sdk/Line2DFlt32 添加位置

slamware_ros_sdk/ArtifactUsage

 文件
 slamware_ros_sdk/msg/ArtifactUsage.msg
 定义
元素类型描述
 usage int8 未知=-1,虚拟墙=0, 虚拟轨道=1
slamware_ros_sdk/Line2DFlt32
文件
 slamware_ros_sdk/msg/Line2DFlt32.msg
定义
元素类型描述
 id uint32 线段id
 start slamware_ros_sdk/Vec2DFlt32 线段起点
 end slamware_ros_sdk/Vec2DFlt32 线段终点
slamware_ros_sdk/Vec2DFlt32
文件
 slamware_ros_sdk/msg/Vec2DFlt32.msg
定义
元素类型描述
xfloat32x
yfloat32y

add_lines (slamware_ros_sdk/AddLinesRequest)

添加多条线段

slamware_ros_sdk/AddLinesRequest

文件
 slamware_ros_sdk/msg/AddLinesRequest.msg
定义
元素类型描述
usage  slamware_ros_sdk/ArtifactUsage 线段类型
 line slamware_ros_sdk/Line2DFlt32[] 多条线段位置

slamware_ros_sdk/ArtifactUsage

文件
 slamware_ros_sdk/msg/ArtifactUsage.msg
定义
元素类型描述
 usage int8 未知=-1,虚拟墙=0, 虚拟轨道=1
slamware_ros_sdk/Line2DFlt32
文件
 slamware_ros_sdk/msg/Line2DFlt32.msg
定义
元素类型描述
 id uint32 线段id
 start slamware_ros_sdk/Vec2DFlt32 线段起点
 end slamware_ros_sdk/Vec2DFlt32 线段终点
slamware_ros_sdk/Vec2DFlt32
文件
 slamware_ros_sdk/msg/Vec2DFlt32.msg
定义
元素类型描述
xfloat32x
yfloat32y


remove_line (slamware_ros_sdk/RemoveLineRequest)

移除指定线段

slamware_ros_sdk/RemoveLineRequest
文件
 slamware_ros_sdk/msg/RemoveLineRequest.msg
定义
元素类型描述
 usage slamware_ros_sdk/ArtifactUsage线段类型
id uint32线段id

slamware_ros_sdk/ArtifactUsage

文件
 slamware_ros_sdk/msg/ArtifactUsage.msg
定义
元素类型描述
 usage int8 未知=-1,虚拟墙=0, 虚拟轨道=1

clear_lines (slamware_ros_sdk/ClearLinesRequest)

清空所有线段

slamware_ros_sdk/ClearLinesRequest
文件
 slamware_ros_sdk/msg/ClearLinesRequest.msg
定义
元素类型描述
 usageslamware_ros_sdk/ArtifactUsage  线段类型

slamware_ros_sdk/ArtifactUsage

文件
 slamware_ros_sdk/msg/ArtifactUsage.msg
定义
元素类型描述
 usage int8 未知=-1,虚拟墙=0, 虚拟轨道=1

move_line (slamware_ros_sdk/MoveLineRequest)

移动线段到指定位置

slamware_ros_sdk/MoveLineRequest
文件
 slamware_ros_sdk/msg/MoveLineRequest.msg
定义
元素类型描述
 usage slamware_ros_sdk/ArtifactUsage  线段类型
 line slamware_ros_sdk/Line2DFlt32 移动线段新位置

slamware_ros_sdk/ArtifactUsage

文件
 slamware_ros_sdk/msg/ArtifactUsage.msg
定义
元素类型描述
 usage int8 未知=-1,虚拟墙=0, 虚拟轨道=1
slamware_ros_sdk/Line2DFlt32
文件
 slamware_ros_sdk/msg/Line2DFlt32.msg
定义
元素类型描述
 id uint32 线段id
 start slamware_ros_sdk/Vec2DFlt32 线段起点
 end slamware_ros_sdk/Vec2DFlt32 线段终点
slamware_ros_sdk/Vec2DFlt32
文件
slamware_ros_sdk/msg/Vec2DFlt32.msg
定义
元素类型描述
xfloat32x
yfloat32y

move_lines (slamware_ros_sdk/MoveLinesRequest)

移动多条线段到指定位置

slamware_ros_sdk/MoveLinesRequest
文件
 slamware_ros_sdk/msg/MoveLinesRequest.msg
定义
元素类型描述
 usage slamware_ros_sdk/ArtifactUsage 线段类型
 line slamware_ros_sdk/Line2DFlt32[]移动多条线段的新位置

slamware_ros_sdk/ArtifactUsage

文件
 slamware_ros_sdk/msg/ArtifactUsage.msg
定义
元素类型描述
 usage int8 未知=-1,虚拟墙=0, 虚拟轨道=1
slamware_ros_sdk/Line2DFlt32
文件
 slamware_ros_sdk/msg/Line2DFlt32.msg
定义
元素类型描述
 id uint32 线段id
 start slamware_ros_sdk/Vec2DFlt32 线段起点
 end slamware_ros_sdk/Vec2DFlt32 线段终点
slamware_ros_sdk/Vec2DFlt32
文件
 slamware_ros_sdk/msg/Vec2DFlt32.msg
定义
元素类型描述
xfloat32x
yfloat32y



2. 发布主题

scan (sensor_msgs/LaserScan)

激光雷达数据,定频发布


odom (nav_msgs/Odometry)

机器人位姿信息,定频发布


map_metadata (nav_msgs/MapMetaData)

地图基本信息(包括分辨率、尺寸、原点位置),定频发布


map (nav_msgs/OccupancyGrid)

地图数据,定频发布


basic_sensors_info (slamware_ros_sdk/BasicSensorInfoArray)

传感器信息(包括id、类型、数字/模拟、安装位置、刷新频率等信息),变化时发布

slamware_ros_sdk/BasicSensorInfoArray
文件
 slamware_ros_sdk/msg/BasicSensorInfoArray.msg
定义
元素类型描述
 sensors_info slamware_ros_sdk/BasicSensorInfo[] 传感器信息
slamware_ros_sdk/BasicSensorInfo
 文件
slamware_ros_sdk/msg/BasicSensorInfo.msg
 定义
元素类型描述
idint32传感器id
sensor_typeslamware_ros_sdk/SensorType传感器类型
impact_typeslamware_ros_sdk/ImpactType数字/模拟类型
install_posegeometry_msgs/Pose安装位姿
refresh_freqfloat32刷新频率
slamware_ros_sdk/SensorType
 文件
 slamware_ros_sdk/msg/SensorType.msg
 定义
 元素类型 描述 
typeint8未知=-1,碰撞=0,跌落=1,超声=2,深度摄像头=3,沿墙=4,磁带=5
slamware_ros_sdk/ImpactType
 文件
 slamware_ros_sdk/msg/ImpactType.msg
 定义
元素类型描述
 type int8 未知=-1,数字量=0,模拟量=1

basic_sensors_values (slamware_ros_sdk/BasicSensorValueDataArray)

传感器数据,定频发布

slamware_ros_sdk/BasicSensorValueDataArray
文件
 slamware_ros_sdk/msg/BasicSensorValueDataArray.msg
定义
元素类型描述
 values_data slamware_ros_sdk/BasicSensorValueData[] 传感器数据
slamware_ros_sdk/BasicSensorValueData
文件
slamware_ros_sdk/msg/BasicSensorValueData.msg
定义
元素类型描述
info  slamware_ros_sdk/BasicSensorInfo传感器信息 
value slamware_ros_sdk/BasicSensorValue传感器值
slamware_ros_sdk/BasicSensorValue
文件
slamware_ros_sdk/msg/BasicSensorValue.msg
定义
元素类型描述
is_in_impactbool传感器是否处于碰撞触发状态
valuefloat32 传感器值
slamware_ros_sdk/BasicSensorInfo
文件
slamware_ros_sdk/msg/BasicSensorInfo.msg
定义
元素类型描述
idint32传感器id
sensor_typeslamware_ros_sdk/SensorType传感器类型
impact_typeslamware_ros_sdk/ImpactType数字/模拟类型
install_posegeometry_msgs/Pose安装位姿
refresh_freqfloat32刷新频率
slamware_ros_sdk/SensorType
 文件
 slamware_ros_sdk/msg/SensorType.msg
 定义
 元素类型 描述 
typeint8未知=-1,碰撞=0,跌落=1,超声=2,深度摄像头=3,沿墙=4,磁带=5
slamware_ros_sdk/ImpactType
 文件
 slamware_ros_sdk/msg/ImpactType.msg
 定义
元素类型描述
 type int8 未知=-1,数字量=0,模拟量=1


global_plan_path (nav_msgs/Path)

规划路径,定频发布


robot_basic_state (slamware_ros_sdk/RobotBasicState)

机器人基本信息(包括建图开关、定位开关、主板温度、充电状态、电量等信息),定频发布

slamware_ros_sdk/RobotBasicState
文件
slamware_ros_sdk/msg/RobotBasicState.msg
定义
元素类型描述
 is_map_building_enabledbool建图开关状态
 is_localization_enabledbool定位开关状态
 localization_qualityint32定位质量
 board_temperatureint32主板温度
 battery_percentageint32电量
 is_dc_inbool直流电源连接状态
 is_chargingbool充电状态


virtual_walls (slamware_ros_sdk/Line2DFlt32Array)

虚拟墙清单,定频发布

slamware_ros_sdk/Line2DFlt32Array
文件
slamware_ros_sdk/msg/Line2DFlt32Array.msg
定义
元素类型描述
linesslamware_ros_sdk/Line2DFlt32[]多条线段 
slamware_ros_sdk/Line2DFlt32
文件
 slamware_ros_sdk/msg/Line2DFlt32.msg
定义
元素类型描述
 id uint32 线段id
 start slamware_ros_sdk/Vec2DFlt32 线段起点
 end slamware_ros_sdk/Vec2DFlt32 线段终点
slamware_ros_sdk/Vec2DFlt32
文件
 slamware_ros_sdk/msg/Vec2DFlt32.msg
定义
元素类型描述
xfloat32x
yfloat32y


virtual_tracks (slamware_ros_sdk/Line2DFlt32Array)

虚拟轨道清单,定频发布

slamware_ros_sdk/Line2DFlt32Array
文件
slamware_ros_sdk/msg/Line2DFlt32Array.msg
定义
元素类型描述
linesslamware_ros_sdk/Line2DFlt32[]多条线段 
slamware_ros_sdk/Line2DFlt32
文件
 slamware_ros_sdk/msg/Line2DFlt32.msg
定义
元素类型描述
 id uint32 线段id
 start slamware_ros_sdk/Vec2DFlt32 线段起点
 end slamware_ros_sdk/Vec2DFlt32 线段终点
slamware_ros_sdk/Vec2DFlt32
文件
 slamware_ros_sdk/msg/Vec2DFlt32.msg
定义
元素类型描述
xfloat32x
yfloat32y



3. 服务

sync_get_stcm (slamware_ros_sdk/SyncGetStcm)

获取stcm地图

slamware_ros_sdk/SyncGetStcm
文件
slamware_ros_sdk/srv/SyncGetStcm.srv
请求
响应
元素类型描述
raw_stcmint8[]stcm地图数据

sync_set_stcm (slamware_ros_sdk/SyncSetStcm)

上传stcm地图

slamware_ros_sdk/SyncSetStcm
文件
slamware_ros_sdk/srv/SyncGetStcm.srv
请求
元素类型描述
raw_stcmint8[]上传的stcm地图数据
robot_posegeometry_msgs/Pose上传的机器人位姿
响应



4. 参数

参数类型默认描述
ip_addressstring"192.168.11.1"连接机器人的IP地址
robot_portint1445连接机器人的端口
reconn_wait_msuint3000重连等待时间,单位:毫秒
angle_compensatebooltrue角度补偿开关
fixed_odom_map_tfbooltrue固定机器人里程计信息
robot_framestring"/base_link"机器人基参考系
laser_framestring"/laser"激光参考系
odom_framestring"/odom"里程信息参考系
map_framestring"/map"地图参考系
robot_pose_pub_periodfloat0.05机器人位姿发布周期,单位:秒
scan_pub_periodfloat0.1激光数据发布周期,单位:秒
map_update_periodfloat0.2地图更新周期,单位:秒
map_pub_periodfloat0.2地图数据发布周期,单位:秒
basic_sensors_info_update_periodfloat7.0传感器信息更新周期,单位:秒
basic_sensors_values_pub_periodfloat0.05传感器数据发布周期,单位:秒
path_pub_periodfloat0.05路径规划发布周期,单位:秒
robot_basic_state_pub_periodfloat1.0机器人状态信息发布周期,单位:秒
virtual_walls_pub_periodfloat0.5虚拟墙数据发布周期,单位:秒
virtual_tracks_pub_periodfloat0.5虚拟轨道数据发布周期,单位:秒
map_sync_once_get_max_whfloat100.0地图同步最大尺寸
map_update_near_robot_half_whfloat8.0地图更新以机器人为中心的长宽尺寸
scan_topicstring"scan"激光数据发布主题
odom_topicstring"odom"机器人位姿发布主题
map_topicstring"map"地图发布主题
map_info_topicstring"map_metadata"地图信息发布主题
basic_sensors_info_topicstring"basic_sensors_info"传感器信息发布主题
basic_sensors_values_topicstring"basic_sensors_values"传感器数据发布主题
path_topicstring"global_plan_path"路径规划发布主题
vel_control_topicstring"/cmd_vel"控制机器人进行方向移动的订阅主题
goal_topicstring"/move_base_simple/goal"控制机器人导航到指定地点的订阅主题



5. 监听tf变换



6. 广播tf变换

laser -> map

激光雷达在地图中的位姿

base_link -> odom

当前机器人在地图中的位姿估计

odom -> map

机器人里程计信息(根据配置固定或不广播)