ROS2 版本的 lx_camera_ros 接口说明
编译
1. 确保上位机中已经安装好Qt5,编译需要Qt5中的Core、Network等功能包
2. 安装libzip功能包
在libzip官网下载源文件(https://libzip.org/download/),之后按照官网教程编译。3. 编译ros功能包
在/lx_camera_ros 运行./build.sh (适用于ROS2版本)运行
yaml配置文件有改动需要重新编译才可生效 执行./start.shROS2话题接口
测试接口前需将相机本体开机(等待30s让本体程序启动),开启ROS2 SDK节点(见上节)。接收定位位姿接口
- ROS2持续接收从相机发出的定位值x, y, theta
-
发布定位值x, y 和四元数(由theta转换而来)到topic:
LxCamera_LocationPoseResult - 将定位值和四元数通过TF变换广播出去
接收定位状态接口
-
ROS2持续接收(频率:1s)从相机发出的定位定位状态”
true/false”,代表当前是否正常定位 -
ROS2将定位状态(
std_msgs::msg::Bool类型的数据)发布到topic:LxCamera_LocationResult - 可通过订阅Topic来获得定位状态(当前是否定位成功)
接收当前相机已使用空间接口
- ROS2持续接收(频率:2s)从相机发出的存储空间使用占比
-
ROS2将占用状态(
std_msgs::msg::Float32类型的数据)发布到topic:LxCamera_Capacity_Status - 可通过订阅Topic来获得占用状态占比
接收当前出现故障的模块名字
- ROS2持续从相机发出的错误模块名
-
ROS2将占用状态(
std_msgs::msg::String类型的数据)发布到topic:LxCamera_Module_Error - 可通过订阅Topic来获得异常模块名字
接收建图进度接口
- 开始建图后
-
ROS2将定位状态(
std_msgs::msg::Int32类型的数据)发布到topic:LxCamera_Mapping_Progress - 可通过订阅Topic来获得建图进度 (0-100)
接收建图状态接口
- 开始建图后
-
ROS2将建图进度状态(
std_msgs::msg::Bool类型的数据)发布到topic:LxCamera_MappingState - 可通过订阅Topic来获得建图状态的切换
设置参数接口
-
用户发布
std_msgs::msg::String类型消息到topic:LxCamera_SetParam -
消息格式为9个浮点数,使用英文逗号“,”分割,分别代表:
x,y,z,yaw,pitch,roll,x,y,yaw,前6个参数是相机的位姿,后3个是激光雷达的位姿。 -
修改成功后,相机路径
/home/fr1511b/hontai/params/config_install_FL21500HAF.ini文件中[Laser1]和[Camera1]中的相关参数会被设置
切换地图接口
-
用户发布
std_msgs::msg::String类型消息到topic:LxCamera_SwitchMap - 消息格式为字符串,包含一个字段:表示地图名称(前提是在相机中已经建图完成)
- 如果相机的网页中显示的地图已经变化(刷新网页),则切换成功
下载地图接口
-
用户发布
std_msgs::msg::String类型消息到topic:LxCamera_DownloadMap - 消息格式为字符串,包含两个字段:save_path表示保存地址(上位机中的地址,使用绝对路径),mapname表示地图名称(相机中已经完成建图的”.zip”格式的文件名)
-
成功后,你上位机指定的路径下会有一个指定地图名称的压缩包,解压后得到一个
pgm地图文件和一个yaml配置文件
上传里程计接口
- 用户发布
nav_msgs::msg::Odometry类型数据到topic:/sim/odom(可修改)
重定位接口
-
用户发布
geometry_msgs::msg::PoseWithCovarianceStamped类型的数据到topic:LxCamera_UploadReloc -
数据为激光位姿,包含:
x,y,yaw - 相机网页上显示的本体位置更新为发送的位置则重定位成功
测试时四元数有约束要求,不可随意填写。可使用网页工具将欧拉角yaw转换成四元数xyzw
报文类型前缀
上位机使用UDP与相机通信,通信发送的报文前4个字节为类型前缀,用以区分不同接口数据类型:ROS2服务接口
建图、切图、下载地图、重定位四个功能在使用话题实现接口的同时也支持使用服务接口来通信,并通过V2主机返回的结果报文来反馈服务响应结果(操作是否成功)- 通过ros2 service指令订阅服务接口
- 如果返回”true”则代表操作成功,返回”false”代表操作失败
建图
服务名称:/LxCamera_Mapping_srv
服务格式定义:
切图
服务名称:/LxCamera_SwitchMap_srv
服务格式定义:
下载地图
服务名称:/LxCamera_DownloadMap_srv
服务格式定义:
重定位
服务名称:/LxCamera_UploadReloc_srv
服务格式定义:
获取当前地图名
服务名称:/LxCamera_GetCurMapname_srv
服务格式定义:
获取当前地图列表
服务名称:/LxCamera_GetMapList_srv
服务格式定义:
退出建图
服务名称:/LxCamera_ExitMapping_srv
服务格式定义:
删除地图
服务名称:/LxCamera_EraseMap_srv
服务格式定义:
下载热力图
服务名称:/LxCamera_DownloadHeatMap_srv
服务格式定义:
增量建图
服务名称:/LxCamera_IncMapping_srv
服务格式定义: