前言:更多更新文章详见我的个人博客主页【MGodmonkeyの世界】
描述:欢迎来到CERLAB无人机自主框架,这是一个用于自主无人飞行器 (UAV) 的多功能模块化框架。该框架包括不同的组件 (模拟器,感知,映射,规划和控制),以实现自主导航,未知探索和目标检查。
Chatpaper
Basic Information:
- Title: Onboard Dynamic-Object Detection and Tracking for Autonomous Robot Navigation With RGB-D Camera (基于RGB-D相机的机载动态物体检测和跟踪用于自主机器人导航)
- Authors: Zhefan Xu, Xiaoyang Zhan, Yumeng Xiu, Christopher Suzuki, Kenji Shimada
- Affiliation: Department of Mechanical Engineering, Carnegie Mellon University, Pittsburgh, PA 15213 USA (美国卡内基梅隆大学机械工程系)
- Keywords: RGB-D perception, vision-based navigation, visual tracking, 3D object detection, collision avoidance
- URLs: Paper, GitHub
论文简要 :
- 本文提出了一种基于RGB-D相机的轻量级3D动态障碍物检测和跟踪方法,用于具有有限计算能力的小型机器人。该方法采用了新颖的集成检测策略,结合多个计算效率高但准确率较低的检测器,实现实时高准确性的障碍物检测。此外,还引入了一种基于特征的数据关联和跟踪方法,利用点云的统计特征来防止匹配错误。实验结果表明,该方法在小型四旋翼飞行器上实现了最低的位置误差和可比较的速度误差,证明了该方法在导航动态环境中能够有效改变机器人的轨迹。
背景信息:
- 论文背景: 在拥挤的室内环境中部署自主机器人通常需要它们具备准确的动态障碍物感知能力。然而,以往在自动驾驶领域的许多研究都是针对3D物体检测问题进行的,使用了来自重型激光雷达传感器的密集点云数据,而这些基于学习的数据处理方法的高计算成本使得这些方法不适用于小型机器人,例如具有小型机载计算机的基于视觉的无人机。因此,需要针对计算能力有限的小型机器人开发一种轻量级的基于RGB-D相机的动态障碍物检测和跟踪方法。
- 过去方案: 以往的方法中,有些采用了单一的检测器,但这些方法在计算效率和准确性之间存在权衡。另一些方法则使用了深度图像进行障碍物检测,但深度相机的范围和视野有限,使得一些方法只能在短距离范围内进行障碍物跟踪。此外,深度相机的噪声也会影响检测算法的准确性和可靠性。
- 论文的Motivation: 针对上述问题,本文提出了一种基于RGB-D相机的轻量级3D动态障碍物检测和跟踪方法。该方法采用了多个计算效率高但准确率较低的检测器的集成策略,实现了实时高准确性的障碍物检测。此外,还引入了一种基于特征的数据关联和跟踪方法,利用点云的统计特征来防止匹配错误。最后,该系统还引入了一个学习模块,用于增强检测范围和动态障碍物识别。通过在小型四旋翼飞行器上的实验验证,该方法在机器人的机载计算机上实现了最低的位置误差和可比较的速度误差,证明了该方法在导航动态环境中能够有效改变机器人的轨迹。
方法:
- a. 理论背景:
- 介绍了在拥挤的室内环境中,自主机器人需要准确的动态障碍物感知的需求,以及使用轻量级3D动态障碍物检测和跟踪方法的技术路线。
- b. 技术路线:
- 提出了基于RGB-D相机的轻量级3D动态障碍物检测和跟踪方法,利用集成检测策略和基于特征的数据关联和跟踪方法实现实时高精度障碍物检测。
结果:
- a. 详细的实验设置:
- 在动态环境中使用两台定制的四轴飞行器进行实验,搭载Intel NUC和NVIDIA Jetson Xavier NX嵌入式计算机,算法在飞行器的嵌入式计算机上实时运行。
- b. 详细的实验结果:
- DODT方法在基准算法中表现出最低的位置误差和第二低的速度误差,集成检测降低了误报率并提高了障碍物位置和速度估计的准确性。学习模块增强了检测范围。实验结果显示算法在Intel NUC和Xavier NX平台上实现了实时性能,YOLO-MAD检测器占用了大部分处理时间。物理实验展示了成功检测和跟踪动态障碍物在机器人导航任务中的应用。
关于图2的系统框架:
关于U-depth检测器和DBSCAN检测器的定义,方法和作用:
U-depth检测器:
DBSCAN检测器:
说明:如果用到yolo-mad检测器作为辅助,按照下面的教程搭建yolo-mad环境
# 这是ubuntu20-torch-cpu版本的,其余系统或者GPU版本的参考官网教程
# 有缓存指令(网络不好的情况下建议有缓存)
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
# 无缓存指令
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu --no-cache-dir
问题汇总:
网络超时【urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host=‘files.pythonhosted.org’, port=443): Read timed out】:下载过程中经常会遇到timeout的情况,这时候可以通过复制上面的网址,通过各种方法先下载到本地,然后通过
pip3 install ~/torch-2.2.2+cpu-cp38-cp38-linux_x86_64.whl torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu
,哪个超时下载哪个到本地安装,或者头铁一直重试,迟早有一次成功的😉【ERROR: Package ‘networkx’ requires a different Python: 3.8.10 not in ‘>=3.9’】:networkx版本不兼容3.8,需要通过
pip3 install networkx -i https://pypi.tuna.tsinghua.edu.cn/simple
手动安装network3.1版本的库
sudo ln -sf /usr/bin/python3 /usr/local/bin/python
roscore
# 单人运动
rosbag play -l single-object.bag
# 多人运动
rosbag play -l multi-objects.bag
# 运行没有yolo-mad作为辅助的检测器
roslaunch onboard_detector run_detector.launch
# 运行yolo-mad作为辅助(感觉效果比上面的还差)
roslaunch onboard_detector detector_with_learning_module.launch
请调整你的摄像头设备下的配置文件,位于
cfg/detector_param.yaml
。同时,修改scripts/yolo_detector/yolo_detector.py
中的彩色图像话题名称。从参数文件中,你可以看到算法期望从机器人获取以下数据:
深度图像:
/camera/depth/image_rect_raw
机器人姿态:
/mavros/local_position/pose
机器人里程计(可选):
/mavros/local_position/odom
彩色图像(如果应用了YOLO则为可选):
/camera/color/image_rect_raw
对齐深度图像(可选):
/camera/aligned_depth_to_color/image_raw
对齐深度图像默认不生成,因此需要修改launch文件继续修改
roscd realsense2_camera/launch nano rs_camera.launch
- 1
- 2
将
align_depth
参数修改为true
,然后Ctrl+O&Ctrl+X保存退出