采用伴侣计算机(Companion Computer)的方案,通过使用mavros的obstacle_distance插件订阅/mavros/obstacle/send话题,进而通过local_planner本地轨迹规划器实现局部路径规划。

参考如下链接:

官方说明:

Collision Prevention | PX4 User Guide

知乎上面搜的:

【px4】PX4/avoidance

PX4官方避障策略代码(基于ROS运行):

PX4/PX4-Avoidance

这里需要在mavros外部控制策略条件下,添加障碍物感知节点,并将/scan话题重映射到/mavros/obstacle/send这里

以下issue是关于如何添加LaserScan节点到mavros的(暂时不推荐使用,目前问题还未解决):

mapping LaserScan to obstacle_distance mavlink message · Issue #1082 · mavlink/mavros

注意:查看数据是否成功显示,可以通过查看mavlink数据流中的obstacle_distance对应的内容。

关于地面站是否能获得到障碍物距离信息相关问题:

mavros通过伴侣计算机发送的mavlink数据流传输对应的信息与第三方传感器直接通过串口连接到飞控的原理不完全一样,硬件通过串口连接到飞控是直接发送距离对应的信息,由飞控完成从距离信息到mavlink数据流的转换,而通过伴侣计算机发送的mavlink数据流则可以被飞控直接识别,因此地面站可以通过上述两种方式感知到障碍物距离信息。

关于Offboard模式下的避障策略相关问题:

Obstacle Avoidance | PX4 User Guide

硬件上机测试参考如下链接:

已知相关问题:

  1. 仿真的launch启动文件对应的px4_config.yaml路径不正确,需要手动改到avoidance对应的目录下。(代码更新后该路径已正确)

  2. D435跟官方提供的aeroD415启动文件一样,可以直接用这个D415的启动文件启动。(这个启动脚本不需要手动输入相机的序列号)

  3. 官方声明中提到的generate_launchfile.sh.deprecated这个脚本已经被废弃,但是该脚本生成的启动文件仍然能正常运行(不明白官方为什么要废弃该脚本)。

  4. avoidance避障节点启动的标志是在地面站上看到avoidance node is up信息(新版地面站点击左上角的绿色或黄色标志即可看到avoidance节点是否正常运行)。

  5. 深度相机安装方向为前方,无人机只能往相机视野范围内移动,因此飞机在mission/offboard模式下只能朝前方移动或者是偏航。其他方向无障碍物信息,飞机不可移动,摇杆操作滚转/后退均无效。具体查看障碍物信息可通过查看/mavros/obstacle/send信息。
    参考如下说明:

    it depends on the field of view of your sensors, at which angles do you get sensor coverage? And how is the data reported, e.g do you get one value per sensor at each timestep or do you actually get a range scan per sensor (and what would be the resolution of that).But as an example:
    I assume you have 6 sensors with fov 10deg, which all report one value per timestep. sensor 1 is located to the front of the drone and they are evenly spaced.then you should fill the message as follows:
    msg.frame = MAV_FRAME_BODY_FRD
    msg.increment = 10 (degrees, resolution)
    msg. angle_offset = -5 (degrees to shift, such the the fov of the first sensor is centered to the front of the drone)
    msg.distances = [data1, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX
    data2, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX,
    data3, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX,
    data4, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX,
    data5, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX,
    data6, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX, UINT16_MAX]put UINT16_MAX where you do not have any sensor coverage. The drone will refuse to fly these directions
    msg.
    
  6. 关于TF坐标相关ERROR解决办法
    错误描述如下所示:

    TF Buffer: could not retrieve requested transform from buffer, unregistered
    

    issue链接如下:

    TF Buffer error when launching local_planer · Issue #471 · PX4/PX4-Avoidance

    解决办法如下:默认配置文件对应的fcu_url为127.0.0.1:14550,这里需要修改为/dev/ttyTHS2:921600
    如果该ERROR持续显示,一定要检查机载电脑与飞控连接情况。

  7. realsense t265和d435脚本合并问题
    avoidance节点调用的为rs_rgbd.launch,该脚本包含了realsense相机启动文件和相关的点云信息的调用。vision_to_mavros节点调用的是rs_t265.launch脚本,这两个脚本同时运行的时候会报错realsense_camera_manager,导致一个节点意外终止。
    解决办法:采用tools文件夹下的generate_launchfile.sh.deprecated脚本手动生成对应的配置文件,之后在配置文件中手动添加T265位姿对应的相关内容。(该做法虽然官方不推荐,但到目前为止官方并未说明如何修改已有的配置文件)

  8. USB3.0与GPS等机载设备干扰问题
    使用USB2.0或2.1的HUB或线缆,防止产生干扰。

  9. 飞行器当前视深度相机检测到障碍物时,飞行器只能操作高度、前进,和YAW。

  10. 避障系统提供途中关闭节点的功能,具体怎么做有待进一步查询。

PX4避障和轨迹规划(3DVFH*)相关推荐

  1. 机械臂避障与轨迹规划仿真

    本篇目录 一.机械臂模型及参数 二.路径生成 2.1 RRT算法简介 2.2 初始化 2.3 Sample.Steer.Near 2.5 碰撞检测 2.6 退出循环条件 2.7 RRT算法整体代码 三 ...

  2. 【MVO三维路径规划】基于matlab多元宇宙算法多无人机避障三维航迹规划【含Matlab源码 2579期】

    ⛄一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水 ...

  3. 百度 Apollo 轨迹规划技术分享笔记

    老师简介 张雅嘉,百度高级架构师,百度 Apollo 平台规划方向技术负责人.印第安纳大学计算机科学博士,从事机器人运动规划方向.有多年机器人运动规划方向的研发经验,曾带领团队参加 DARPA 机器人 ...

  4. 基于PX4的地面无人车避障系统及路径规划研究

    基于PX4的地面无人车避障系统及路径规划研究 人工智能技术与咨询 来源:<动力系统与控制> ,作者姜琼阁等 关键词: 地面无人车:避障:PX4: 摘要: 地面无人车避障及路径规划是指,无人 ...

  5. PX4使用手册-自主避障-ObstacleAvoidance

    P200的VFH避障是航点避障么? 转载自:https://www.rdplat.com/news/25444.html PX4使用手册-自主避障-ObstacleAvoidance 2018-12- ...

  6. 基于动态窗口法(DWA)的局部避障算法研究及MATALB的实现

    一.动态窗口法基本概念 1.1  速度采样空间 1.2  评价函数 二.基于Matlab的机器人局部避障仿真 一.动态窗口法基本概念 动态窗口方法(DynamicWindowApproach) 是一种 ...

  7. 自动驾驶自主避障概况

    文章目录 前言 1. 自主避障在自动驾驶系统架构中的位置 2. 自主避障算法分类 2.1 人工势场法(APF) 2.1.1引力势场的构建 2.1.2斥力势场的构建 2.1.3人工势场法的改进 2.2 ...

  8. 遨博协作机器人ROS开发 - 机械臂自主避障

    目录 一.简介 二.环境版本 三.学习目标 五.任务实施 六.任务拓展 七.课堂小结 八.课后练习 一.简介 大家好,欢迎关注遨博学院带来的系列技术分享文章(协作机器人ROS开发),今天我们来学习一下 ...

  9. Apollo项目::轨迹规划综述::导航规划、行为规划、动作规划

    轨迹规划分为不同层次:导航规划.行为规划.动作规划.这里一一展开简单来说. 1.导航规划        A*算法一直是一个经典高效的离散空间路径搜索算法,这里导航规划我们就直接等同于A*算法来讲解. ...

  10. ros自己写避障算法_slam导航避障算法,让无人机自主避障教学研究迈向更高处...

    随着消费级无人机技术的不断成熟,不断完善的自动避障系统可以极大的减少因操作失误而带来的各项损失,目前避障能力正逐渐成为了无人机自动化或智能化的关键点所在. 而根据无人机避障技术的原理和发展趋势,可以将 ...

最新文章

  1. 音频编解码器以50%的功耗提供两倍的音频质量
  2. PostgreSQL中的数据库实例、模式、用户(角色)、表空间
  3. 图片缓存之内存缓存技术LruCache,软引用
  4. hadoop关闭安全模式
  5. JS小功能(操作Table--动态添加删除表格及数据)实现代码
  6. 超详细的 Redis Cluster 官方集群搭建指南
  7. python循环for不从零开始_Python-多处理-巨大的for循环
  8. 【BZOJ】【3301】【USACO2011 Feb】Cow Line
  9. 使用GDAL工具对FY3系列卫星数据进行校正
  10. cron 任务执行表达式
  11. ffmpeg编程入门学习笔记(一) -入门
  12. webSSH如何安装?如何使用?解决Web端远程连接终端~~运维篇
  13. matlab怎么计算矩阵的迹,求Matlab中矩阵的秩和迹
  14. 支付宝PC(二维码扫码)支付(Java开发)完整版
  15. DNS服务器分类与bind-chroot服务配置
  16. Java中关于创建文件,Java实现 PDF、Word、Excel、Html、XML互转及与图片互相转化、图片像素调节,待更新整理中
  17. oracle复杂sql 分页,oracle sql 分页
  18. CSDN怎么自动生成目录
  19. java生僻字解决方案
  20. Codeforces Round #777 (Div. 2) 简训

热门文章

  1. 【Pytorch】Pytorch常见的坑汇总
  2. 【工大SCIR笔记】AAAI 2020 故事结局预测任务上的区分性句子建模
  3. 【工大SCIR Lab】AAAI20 基于关键词注意力机制和回复弱监督的医疗对话槽填充研究...
  4. 基于DEAP库的python进化算法--遗传算法实践--背包问题
  5. 基于DEAP库的python进化算法-5.遗传算法求解TSP问题的改进
  6. 深度学习2.0-32.经典卷积网络VGG,GoogleNet,Inception-1
  7. LightGBM参数调优代码详解
  8. [论文笔记]RoBERTa: A Robustly Optimized BERT Pretraining Approach
  9. “对比Excel”系列再添新成员,手把手教你用Python实现报表自动化!
  10. 几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm