CERLAB无人机自主框架: 2-动态目标检测与跟踪

ops/2024/11/20 8:32:30/

前言:更多更新文章详见我的个人博客主页【MGodmonkeyの世界】

描述:欢迎来到CERLAB无人机自主框架,这是一个用于自主无人飞行器 (UAV) 的多功能模块化框架。该框架包括不同的组件 (模拟器,感知,映射,规划和控制),以实现自主导航,未知探索和目标检查。

本章为框架中的一个检测模块,用于对静态或动态障碍物进行识别。
论文地址:Paper
代码地址:GitHub

1. 论文解析

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检测器占用了大部分处理时间。物理实验展示了成功检测和跟踪动态障碍物在机器人导航任务中的应用。

1.1 问题汇总

  1. 关于图2的系统框架:

    • 系统框架包括三个核心模块:检测模块、跟踪模块和识别模块。
    • 检测模块由非学习和学习两部分组成,非学习部分利用深度图像和两个非学习检测器进行通用障碍物检测。
    • 学习模块使用对齐的RGB-D图像进行直接动态障碍物检测,结果与非学习模块结合。
    • 跟踪模块使用精细化的3D边界框来估计障碍物状态。
    • 识别模块根据状态和跟踪历史将障碍物分类为静态或动态。
    • 系统输出动态障碍物边界框,并在静态地图中清除动态障碍物区域以进行导航。 Pages: [“a. system overview”, “d. data association and tracking”, “e. dynamic obstacle identification”]
  2. 关于U-depth检测器和DBSCAN检测器的定义,方法和作用:

    • U-depth检测器

      • 定义:U-depth检测器是一种基于深度图像的方法,用于检测和跟踪动态障碍物。它通过生成U-depth图和V-depth图,结合深度信息来估计障碍物状态,实现对静态障碍物的安全导航。
      • 方法:利用深度图像生成U-depth图和V-depth图,通过估计障碍物的速度和维度来检测和跟踪动态障碍物,将其表示为3D椭球体。采用YOLO检测器来有效避开快速和小型动态障碍物,结合图像差异来识别RGB图像中的所有动态点。
      • 作用:U-depth检测器的作用在于提高障碍物维度估计的准确性,结合占据地图来导航动态环境,有效避开动态障碍物,从而实现机器人的安全导航。
    • DBSCAN检测器

      • 定义:DBSCAN检测器是一种基于点云的方法,直接利用点云的几何信息来检测3D障碍物。它通过点云聚类方法结合YOLO检测器进行人体检测,提出使用点云特征向量和对象跟踪点来识别正确的对象匹配和估计其状态。
        • 方法:采用点云聚类方法结合YOLO检测器进行室内动态障碍物避让,利用点云特征向量和对象跟踪点来识别正确的对象匹配和估计其状态。
        • 作用:DBSCAN检测器的作用在于提高障碍物跟踪的稳健性,通过点云信息直接检测3D障碍物,从而实现动态障碍物的避让和安全导航。 Pages: [“d. data association and tracking”, “e. dynamic obstacle identification”, “b. 3d-obstacle detectors”]

2.环境搭建

2.1 CERLAB无人机框架搭建

参考教程:CERLAB 无人机自主框架:环境搭建 | MGodmonkey の世界

2.2 yolo-mad环境安装(可选)

说明:如果用到yolo-mad检测器作为辅助,按照下面的教程搭建yolo-mad环境

  • 安装torch
# 这是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

参考:Start Locally | PyTorch

问题汇总

  1. 网络超时【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,哪个超时下载哪个到本地安装,或者头铁一直重试,迟早有一次成功的😉

  2. 【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版本的库

2.3 运行Demo

  1. 下载rosbag包:【夸克网盘:single-object.bag】【夸克网盘:multi-objects.bag】
  2. 将python3设置为系统默认python版本:sudo ln -sf /usr/bin/python3 /usr/local/bin/python
  3. 运行代码
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

2.4 在自己设备上运行(待补充更新)

请调整你的摄像头设备下的配置文件,位于 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

  1. 修改深度相机launch文件

对齐深度图像默认不生成,因此需要修改launch文件继续修改

roscd realsense2_camera/launch
nano rs_camera.launch

align_depth参数修改为true,然后Ctrl+O&Ctrl+X保存退出


http://www.ppmy.cn/ops/17219.html

相关文章

【SAP ME 12】SAP NWDS(eclipse)下载、安装,配置

1、下载 1.1、描述 1.2、下载 2、安装 3、配置 3.1、域名映射

面向初学者的网络安全(二)

原文:annas-archive.org/md5/8570b4b9b47974c7302ce023e1eb9bc8 译者:飞龙 协议:CC BY-NC-SA 4.0 九、攻击和防御方法的演变 当我写下这本书的第一版时,网络安全只是网络安全专家和精明的高管感兴趣的话题。这本书是为了让任何人…

森林消防隔膜泵的应用与前景——恒峰智慧科技

随着全球气候变暖,森林火灾频发,给生态环境和人类安全带来严重威胁。为有效应对这一挑战,森林消防领域不断引入新技术、新装备。其中,隔膜泵作为一种高效、可靠的消防设备,正逐渐受到广泛关注。本文将探讨森林消防隔膜…

使用Elasticsearch映射定义索引结构

在Elasticsearch中,**映射(Mapping)**是用于定义索引中文档字段的结构、类型及属性的重要组成部分。它相当于数据库表结构的设计,决定了如何对文档中的数据进行解析、存储和检索。本文将详细介绍映射的概念、支持的常规字段类型、…

【QT进阶】Qt http编程之websocket的简单介绍

往期回顾 【QT进阶】Qt http编程之用户登录注册功能实现-CSDN博客 【QT进阶】Qt http编程之json解析的简单介绍-CSDN博客 【QT进阶】Qt http编程之nlohmann json库使用的简单介绍-CSDN博客 【QT进阶】Qt http编程之websocket的简单介绍 一、什么是websocket 1、简介 websock…

07.JAVAEE之线程5

与面试相关 1.常见的锁策略 不是一把具体的锁,而是一类锁 1.1 乐观锁 vs 悲观锁 悲观乐观,是对后续锁冲突是否激烈(频繁)给出的预测 如果预测接下来锁冲突的概率不大,就可以少做一些工作. 就称为 乐观锁 如果预测接下来锁冲突的概率很大,就应该多做一些工作. …

ruoyi-cloud-plus添加一个不要认证的公开新页面

文章目录 一、前端1. 组件创建2. src/router/index.ts3. src/permission.ts 二、后端1. 设计思想2. ruoyi-gateway.yml3. 开发Controller 版本RuoYiCloudPlusv2.1.2plus-uiVue3 ts 以新增一个公开的课程搜索页面为例。 一、前端 1. 组件创建 在view目录下创建一个页面的vue…

Kotlin语法快速入门--条件控制和循环语句(2)

Kotlin语法入门–条件控制和循环语句(2) 文章目录 Kotlin语法入门--条件控制和循环语句(2)二、条件控制和循环语句1、if...else2、when2.1、常规用法2.2、特殊用法--并列:2.3、特殊用法--类型判断:2.4、特殊…