简介
欧几里德符号距离场(ESDF)可以很方便地对障碍物进行距离和梯度信息的查询,对空中机器人的在线运动规划具有重要意义。如何快速地生成ESDF地图是进行实时运动规划的重点。
苏黎世理工有开源一款构建ESDF工具Voxblox(https://github.com/ethz-asl/voxblox)。
Voxblox的主要流程(如下图所示)
- 将传感器数据(RGBD, 点云)转换为tsdf.
- 根据TSDF使用 propagate的方式 更新ESDF.
港科大也开源一款构建ESDF工具FIESTA(https://github.com/HKUST-Aerial-Robotics/FIESTA ),性能比Voxblox更好。
FIESTA的主要流程
- 使用光线追踪法将点云叠加到占有栅格地图中,然后将所有占用状态发生改变的体素分别添加到insertQueue和deleteQueue两个队列中
- 使用一个名为ESDF更新初始化的过程,将两个队列的内容合并到updateQueue队列中,并使用基于广度优先搜索算法(BFS)的ESDF更新算法更新所有可能更改的体素。
一、FIESTA使用
1.安装依赖
安装教程参考https://github.com/HKUST-Aerial-Robotics/FIESTA
- Eigen3
- PCL 1.7
- OpenCV
- ROS
注意: 运行FIESTA需要C++ 17,确保安配置好C++ 17。
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-7 g++-7
2.下载编译
cd ~/catkin_ws/src
git clone https://github.com/hlx1996/Fiesta.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
3.运行实例
roslaunch fiesta cow_and_lady.launch
rosbag play data.bag
4.可能存在的问题
data.bag数据包播放很慢
解决方法参考http://wiki.ros.org/rosbag/Commandline#compress
rosbag compress --lz4 data.bag
然后再播放bag文件
rosbag play data.bag
二、仿真演示
待补充。
参考资料
【1】泡泡机器人【泡泡航行天下】FIESTA:用于空中机器人在线运动规划的快速增量欧氏距离场 。