欢迎!此存储库包含基于 BlueROV 声纳的 SLAM 的代码。该系统使用航位推算源,在我们的示例中,DVL 和 IMU 具有来自成像声纳的环境观测,使用 gtsam 实现的 ISAM2 后端执行基于图形的姿态猛击。此方法采用扫描匹配范式,使用航位推算作为初始猜测来对齐扫描。ICP 的点云是通过将声纳图像转换为平面内云来生成的。请注意,这个系统是 3DOF 的,我们假设是固定深度的运动。
这是王金坤的原创作品。文档、维护和积极开发均由 John McConnell 负责。
我们的车辆记录在此回购 https://github.com/jake3991/Argonaut.git 中。亮点是以下硬件。
Occulus M750d 成像声呐
Occulus M1200 成像声呐(可选)
Rowe SeaPilot DVL
Vectornav 100 MEMS IMU
Bar30压力传感器
KVH-DSP-1760光纤陀螺仪(选配)
cv_bridge gtsam matplotlib message_filters numpy opencv_python rosbag rospy scikit_learn scipy sensor_msgs Shapely tf tqdm pyyaml
ROS-noetic catkin-pybind11 catkin-tools
确保已安装所有 python 依赖项
检查 ros 发行版
将此存储库克隆到您的 Catkin 工作区中
将 Git 克隆 https://github.com/ethz-asl/libnabo.git 克隆到您的 Catkin 工作区
将 https://github.com/ethz-asl/libpointmatcher.git 克隆到您的 Catkin 工作区
请确保在 libpointmatcher 文件夹中使用以下命令来使用我们特定的 libpointmatcher 测试版本
git checkout d478ef2eb33894d5f1fe84d8c62cec2fc6da818f
将 https://github.com/jake3991/Argonaut.git 克隆到您的 Catkin 工作区
使用 catkin build NOT catkin_make 构建您的工作区
我们提供了一个rosbag数据文件来测试和运行SLAM系统。可在此处获得: https://drive.google.com/file/d/1nmiFfyk8mVssLqgac7BOe4_RPBP6Wnc9/view?usp=sharing
这将启动SLAM系统,然后我们将像现在一样回放数据。
源代码catkin_ws/devel/setup.bash
roslaunch bruce_slam slam.launch
rosbag play your_data.bag
这将运行我们的离线模式,非常适合快速测试/调整参数。
源代码catkin_ws/devel/setup.bash
roslaunch bruce_slam slam.launch 文件:=path_to_data/your_data.bag
这个SLAM系统有很多参数,请阅读wiki了解每个参数的解释。但是,我们强烈建议使用 config 文件夹中的默认参数。如果要调整任何内容,它将是 feature.yaml 中的特征提取节点。
增强了 CFAR 的一些 cpp 文档
@inproceedings{ title={Virtual Maps for Autonomous Exploration of Cluttered Underwater Environments}, author={Jinkun Wang, Fanfei Chen, Yewei Huang, John McConnell, Tixiao Shan, and Brendan Englot}, booktitle={IEEE Journal of Oceanic Engineering, year={2022}, organization={IEEE} }
联系客服