elevation mapping学习笔记3:使用D435i相机离线或在线订阅点云和tf关系生成高程图
0 引言
elevation mapping学习笔记1已经成功编译安装elevation mapping
高程图工程,并运行示例turtlesim3_waffle_demo
,在仿真环境下,控制带有传感器的机器人生成高程图,简单熟悉了高程图的实际应用。elevation mapping学习笔记2主要熟悉了该工程一些节点和参数的定义和说明,在此基础上,使用D435i相机
发出的点云作为高程图的点云输入,本文主要学习如何离线输入点云生成高程图,进一步学习如何在线订阅点云生成高程图。
👉 elevation mapping github:https://github.com/ANYbotics/elevation_mapping
本文系统环境:
- Ubuntu18.04
- ROS-melodic
- elevation mapping
- D435i相机和驱动
1 数据
elevation mapping
高程图工程主要的输入数据有三部分,topic
类型分别是:点云(相机,雷达等)、协方差位姿(机器人,里程计等)和tf
关系,其中点云和tf
关系是必需的,协方差位姿是非必需的。
/points
( sensor_msgs/PointCloud2 )/pose
( geometry_msgs/PoseWithCovarianceStamped )/tf
(tf/tf消息)
1.1 D435i相机配置
默认已在Ubuntu18.04
系统上安装ROS
版的D435i
相机驱动,比如本文驱动安装目录~/catkin_rs/src/realsense-ros
安装后,默认是没有打开点云的配置,所以需要自行修改配置:
# 激活环境
source /catkin_rs/devel/setup.bash
# roscd 进入到配置文件目录下
roscd realsense2_camera/launch/
# 打开 rs_camera.launch 配置文件进行修改
vim rs_camera.launch
打开后,主要是如下的字段需要修改成 true
,这样就能发出点云topic
:
<arg name="enable_pointcloud" default="true"/>
<arg name="pointcloud_texture_stream" default="RS2_STREAM_COLOR"/>
<arg name="pointcloud_texture_index" default="0"/>
<arg name="allow_no_texture_points" default="false"/>
<arg name="ordered_pc" default="true"/>
修改保存后,执行D435i相机
的启动命令:
# source后执行
roslaunch realsense2_camera rs_camera.launch input:=/camera/depth_registered/points
启动后,rostopic list
查看可知,/camera/depth/color/points
即是D435i相机
的点云topic
.
点云topic
发布频率查看命令:rostopic hz /camera/depth/color/points
subscribed to [/camera/depth/color/points]
average rate: 15.737
min: 0.022s max: 0.092s std dev: 0.01879s window: 14
average rate: 15.158
min: 0.022s max: 0.092s std dev: 0.01637s window: 29
average rate: 15.226
min: 0.022s max: 0.095s std dev: 0.01710s window: 44
...
点云topic
具体信息查看命令:rostopic echo /camera/depth/color/points
,其中camera_color_optical_frame
是点云的frame_id
是后文需要的一个配置参数。
header:
seq: 115
stamp:
secs: 1691134687
nsecs: 843372107
frame_id: "camera_color_optical_frame"
height: 540
width: 960
...
1.2 协方差位姿
协方差位姿是非必需的输入数据,本文暂不使用该数据…
1.3 tf 关系
本文使用D435i
相机传感器生成点云,有一个点云坐标系pc_link
,高程图主要应用在机器人,也有一个机器人坐标系base_link
,输出的高程图也有一个地图坐标系map_link
。
ROS
中描述tf
关系时,一般和数据topic
的frame_id
对应,所以三个坐标系中的点云坐标系定义为camera_color_optical_frame
,其他两个暂定义为 base_link
和map
。
确定了三者坐标系的关系,本文已知D435i
和base
的外参,base
和map
的外参,外参表示形式是四元数(w,x,y,z
)
平移矩阵(x,y,z
),直接写入到下述的tf
关系参考代码中,python
代码命名为tf_map_base_cam_publisher.py
,其中发布频率设为300hz
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgekbge
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01