编译
安装 Qt5 的 Core 和 Network 组件。不同 Linux 发行版的安装方式可能不同;以下为 Ubuntu 示例:libzip。从 libzip 下载页 获取源码,并按官方说明编译。
在 /V2-ROS-SDK-service 目录(与 src 同级)编译 ROS 功能包:
运行
在home/username/V2_ROS_SDK 目录中(与 src 同级)执行:
ROS 话题接口
测试接口前,请确认相机已上电并等待约 30 秒,且 ROS SDK 节点已启动。接收定位位姿接口
ROS 持续接收相机发送的定位值x、y、theta,并将定位值及由 theta 转换得到的四元数发布至 LxCamera_LocationPoseResult。该位姿会通过 TF 广播。
接收定位状态接口
ROS 以 1 Hz 接收相机发送的定位状态(true/false),并以 std_msgs::Bool 发布至 LxCamera_LocationResult。
接收当前相机已使用硬盘空间接口
ROS 以 2 Hz 接收相机发送的存储空间使用占比,并以std_msgs::Float32 发布至 LxCamera_Capacity_Status。
接收当前出现故障的模块名
ROS 接收相机发送的故障模块名称,并以std_msgs::String 发布至 LxCamera_Module_Error。
接收建图状态接口
开始建图后,ROS 以std_msgs::Bool 将建图状态发布至 LxCamera_MappingState。
接收建图进度接口
开始建图后,ROS 以std_msgs::Int32 将建图进度(0–100)发布至 LxCamera_Mapping_Progress。
设置参数接口
向LxCamera_SetParam 发布 std_msgs/String 消息。消息包含 9 个以英文逗号分隔的浮点数:x,y,z,yaw,pitch,roll,x,y,yaw。前 6 个为相机位姿,后 3 个为 LiDAR 位姿。设置成功后,会更新 /home/fr1511b/hontai/params/config_install_FL21500HAF.ini 中 [Laser1] 和 [Camera1] 的相关参数。
切换地图接口
向LxCamera_SwitchMap 发布 std_msgs/String 消息,内容为已完成建图的地图名称。刷新相机 Web 前端后,若当前地图名称已更新,则表示切换成功。
上传里程计
- 用户发布
nav_msgs::Odometry类型数据到topic:/sim/odom(可修改)
下载轮廓地图接口
- 用户发布
std_msgs/String类型消息到topic:LxCamera_DownloadMap - 消息格式为一个保存地址和一个地图名称,使用英文逗号“,”分割。地址是上位机中的地址,使用绝对路径;地图名是相机中已经完成建图的“.zip”格式的文件名。
- 成功后,你上位机指定的路径下会有一个指定地图名称的压缩包,解压后得到一个
pgm地图文件和一个yaml配置文件。
上传地图文件zip接口(new)
- 用户发布
std_msgs/String类型消息到topic:LxCamera_UploadMapZip - 消息内容为需要上传的地图压缩包路径, 例如:“/home/fr1511b/map.zip” ,需上传 由下载接口下载下来的压缩包
- 如果找到地图文件则打包后发送到相机,相机接收后会解压到指定的路径:
/home/fr1511b/hontai/map/
重定位接口
- 用户发布
geometry_msgs::PoseWithCovarianceStamped类型的数据到topic:LxCamera_UploadReloc - 数据为激光位姿,包含:
x,y,yaw - 相机网页上显示的本体位置更新为发送的位置则重定位成功。
平面运动且 Roll、Pitch 为零时,将 yaw 以弧度代入:x = 0、y = 0、z = sin(yaw / 2)、w = cos(yaw / 2)。按xyzw顺序传入单位四元数。
ROS 服务接口
建图、切换地图、下载地图和重定位除支持话题方式外,也支持 ROS 服务接口。服务返回true 表示操作成功,返回 false 表示操作失败。对于需要确认执行结果的操作,建议优先使用服务接口。
以下命令均通过
rosservice call 调用。地图名称不得以数字开头,且长度不超过 30 个字符。建图
服务名称:/lx_localization_node/LxCamera_Mapping_srv
服务格式定义:
切换地图
服务名称:/lx_localization_node/LxCamera_SwitchMap_srv
服务格式定义:
下载地图
服务名称:/lx_localization_node/LxCamera_DownloadMap_srv
服务格式定义:
重定位
服务名称:/lx_localization_node/LxCamera_UploadReloc_srv
服务格式定义:
获取当前地图名
服务名称:/lx_localization_node/LxCamera_GetCurMapname_srv
服务格式定义:
获取当前地图列表
服务名称:/lx_localization_node/LxCamera_GetMapList_srv
服务格式定义:
退出建图 (定制接口)
服务名称:/lx_localization_node/LxCamera_ExitMapping_srv
服务格式定义:
删除地图
服务名称:/lx_localization_node/LxCamera_EraseMap_srv
服务格式定义:
下载热力图
服务名称:/lx_localization_node/LxCamera_DownloadMap_srv
服务格式定义:
增量建图
服务名称:/lx_localization_node/LxCamera_IncMapping_srv
服务格式定义: