存在问题
1)仿真里面存在点云,可以避障,但实机没有点云
在run_in_xtdrone.launch
中修改depth_topic
的话题,将之改为
<!-- <arg name="depth_topic" value="realsense/depth_camera/depth/image_raw"/> -->
<arg name="depth_topic" value="camera/depth/image_rect_raw"/>
同时在advanced_param_xtdrone.xml
存在如下映射,对应grid_map.cpp
中如下的订阅代码,可以得知remap这个配置是用于更改在 C++ 代码中订阅的 grid_map/depth 话题的名称,使其变成 /iris_
(
a
r
g
d
r
o
n
e
i
d
)
/
(arg drone_id)/
(argdroneid)/(arg depth_topic)
//advanced_param_xtdrone.xml
<remap from="~grid_map/depth" to = "/iris_$(arg drone_id)/$(arg depth_topic)"/>
//grid_map.cpp
depth_sub_.reset(new message_filters::Subscriber<sensor_msgs::Image>(node_, "grid_map/depth", 50));
extrinsic_sub_ = node_.subscribe<nav_msgs::Odometry>(
"/vins_estimator/extrinsic", 10, &GridMap::extrinsicCallback, this); //sub
2)仿真里面存在点云,避障正常,实机映射点云之后,点云错误
查看各自的深度图像,可以看出仿真里面的远景是黑色的,稍微远一点的树是白的,近的树是灰色的,过远距离没有数值是黑的;
而实际的深度相机近景深,远景浅,但是比较杂
不是深度相机取反的问题
仿真:
实际:
关于仿真
关于点云,仿真深度图像很干净,点云生成很直接
关于实机
前面深度图像有一点值,他就会建立点云当作障碍物
捂住深度相机时,完全黑的,相当于没有数据,就不建立障碍物点云了
结论:目前仿真和实际流程一致,但是仿真环境的深度图像干净,建立障碍物点云直观,真实情况下深度图像很有很多数值,导致前方一直会建立障碍物点云。
设想的解决方案:查看源码建立栅格地图部分,看作者是否有根据深度阈值建立栅格的设定,若有,可以把这个阈值调低,比如深度图2m深度之外就完全先不建图