语义栅格地图(六) realsense实际测试

1.在ros中启动realsense

测试输出话题:
roslaunch realsense2_camera rs_camera.launch

测试输出点云:

roslaunch realsense2_camera rs_camera.launch filters:=pointcloud

2.启动slam

roslaunch semantic_slam slam.launch

这里需要注意的是:

1)slam订阅的相机话题与realsense发布的相机话题不一致,一开始准备更改slam文件,但是试了很久没有成功,后来更改了realsense启动文件,把话题remap了一下,问题解决了(更新于2019.7.15,之前改slam里订阅话题不好使是因为他这个semantc_slam包编译是整个包编译才会生效,所以把这个包catkin_make一下就好了)

nodelet.launch.xlm

    <remap from="/camera/color/image_raw"        to="/camera/rgb/image_raw" />
    <remap from="/camera/depth/image_rect_raw"        to="/camera/depth_registered/image_raw" />

这里注意深度图话题不能remap成经过滤波的/camera/depth/color/points话题,因为和image话题数据类型不同,会导致slam无法识别数据。

2)因为话题改了,所以frame_id也要进行修改

  <arg name="color_optical_frame_id"    default="$(arg tf_prefix)_rgb_optical_frame"/>

3)因为realsense获取点云,原始数据噪音太大,导致点云体积太大,无法进行体素滤波,索引超出范围。

参考链接:https://blog.csdn.net/rocachilles/article/details/88227272

需要对launch文件进行修改,最好是可以使"/camera/depth_registered/image_raw" />即为修整过的数据

  <node pkg="nodelet" type="nodelet" name="$(arg manager)" args="manager" output="screen"/>
  <node pkg="nodelet" type="nodelet" name="realsense2_camera" args="load realsense2_camera/RealSenseNodeFactory $(arg manager)">

这里我们可以看出创建了两个nodelet类型的节点,我们去看一下nodelet的原理

参考链接:https://www.cnblogs.com/21207-iHome/p/8213411.html

根据上边这个博客的讲解,第一行代码创建了nodelet manager,第二行代码给这个manager里添加了realsense2_camera这个功能包里的RealSenseNodeFactory类型(pkg/Type)。

最终在base_realsense_node里发现了pointcloud那个filter,但是代码太复杂了,不好修改,想办法进行外部修改。

realsense发出深度图camera/depth_registered/image_raw,后边semantic_mapping中用的就是这个数据,那个太大的点云是根据这个数据生成的semantic_pcl.

目前排查到semantic_pcl话题在rviz中看到不,但是echo是有数据的,不知道为什么,觉得可能和frame_id有关?

3.启动语义建图

roslaunch semantic_slam semantic_mapping.launch

如果先前没有把semantic_slam所需相关python包安装好,这里需要重新安装一下。

4.这里需要修改代码中一些参数,例如网络模型存放路径

主要是这个文件中的参数

semantic_cloud.yaml

5.保存octomap

路径一定是"/home/s/map.bt"

6.存在的问题

1).这个网络能识别天花板、地面、物体,但是墙是黑色的。

2).用ORB_SLAM做backend会导致在没有视觉特征的时候丢失位置,realsense视角不够大,在走廊的环境中很容易丢失位置,

而切这个是ORB_SLAM的原因,用的共视图,所以没有特征点就无法定位,这个是死穴

3).点云不稳定,只有realsense一米左右的点云才是稳定的平面,远了就会成为“波浪”

4).回过头看原著中分割的也不是很好,单张图片分割的好并不代表连续的视频流分割得好。要想做好这种实时的语义SLAM,一定要建立在视频分割基础上。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值