当前位置: 首页 > news >正文

(3)(3.1) 英特尔Realsense深度摄像头(二)

文章目录

前言

5 配置ArduPilot

6 地面测试:飞行前验证

7 飞行测试

8 实验

9 数据闪存记录


前言

本文介绍如何将英特尔 Realsense 深度摄像头(Intel Realsense Depth Camera)与 ArduPilot 配合使用,以实现避障(obstacle avoidance)。该方法使用在配套计算机上运行的 Python 脚本(非 ROS)向 ArduPilot 发送距离信息。


5 配置ArduPilot

用地面站(如 Mission Planner)连接自动驾驶仪,检查是否设置了以下参数:

  • SERIAL2_PROTOCOL  = 2MAVLink2)。请注意,这是假定配套计算机连接到 AutoPilot "Telem2"端口;
  • SERIAL2_BAUD = 921 (921600 baud)。 

启用你自己选择的任何避障(obstacle avoidance)行为。本 wiki 将以简单的避障行为(Simple avoidance behavior)(停止/滑行)为例:

下面是第一个接近传感器的设置示例:

  • PRX1_TYPE  = 2: for MAVLink
  • AVOID_ENABLE = 7:"全部",使用所有障碍物信息源,包括"接近"传感器。 

LoiterAltHold 模式的具体示例:

  • AVOID_MARGIN  =1.5:飞行器在距离障碍物多少米处会尝试停车或沿障碍物滑行;
  • AVOID_BEHAVE = 1:飞行器应在障碍物前停止 (1),还是绕过障碍物滑行 (0);
  • AVOID_DIST_MAX = 1.5:在 AltHold 状态下,飞行器开始偏离障碍物的距离;
  • AVOID_ANGLE_MAX = 3000:飞行器尽量偏离障碍物的程度。 

可选项:你可以指定一个 RC 开关来启用"避让",而不是默认的始终打开。在 Mission Planner 中设置 RC7 以打开"避让"的示例:

修改参数后,重新启动自动驾驶仪

6 地面测试:飞行前验证

要验证 APSync 映像是否正常工作以及一切配置是否正确,请确保 ArduPilot 接收到 OBSTACLE_DISTANCE 消息,在 Mission Planner 上:按下 Ctrl+F 并单击 "Mavlink Inspector"(Mavlink 检查器),你应该可以看到输入的数据:

  •  如果遥测连接稳定,OBSTACLE_DISTANCE 信息的数据频率应接近 15hz。如果不是,请使用 USB 电缆连接 APGCS,确保 AP 按预期接收到避障数据后再继续操作。 

Mission Planner 中,打开 Proximity view (Ctrl-F > Proximity):

  •  将飞行器/深度摄像头置于一些障碍物前方,检查距离最近的障碍物的距离是否准确,并显示在"接近"视图中; 

  •  近距离视图会将弧度在 45 度以内的所有距离集中在一起(飞行器周围共有 8 个象限),因此在任何时候,近距离窗口上最多只能显示 3 个最近的障碍物(因为摄像机的视场角小于 90 度)。 

7 飞行测试

第一次飞行:

  •  测试过程: 起飞 -> AltHold / Loiter -> 向障碍物移动;
  • 只能轻推飞行器并观察其反应;
  • 预期行为:飞行器应在距离障碍物一定距离(根据飞行模式由 AVOID_MARGIN/AVOID_DIST_MAX 设置)时停止/滑行(由 AVOID_BEHAVE 设置)。 

如果一切正常,下一步就是测试特定传感器/飞行器/环境的安全系数:

  •  由于摄像头的视场角和最小/最大深度范围有限,因此必须测试其极限值,以确保飞行器在实际环境中的安全;
  • 飞行员应该对这些余量有一个粗略的估计,并在飞行任务计划中加入一些开销。 

8 实验

首次手动测试:确认存在障碍物时的预期行为,以及飞行器和摄像机的视场角和安全裕度。飞行在 Loiter 模式下进行:

自主飞行测试:下面的视频短片总结了实际实验中的主要步骤以及工作系统应该如何运行。在此示例中,飞行器将尝试按照方形模式飞行,但会在任何障碍物前停下。

9 数据闪存记录

深度相机的相关信息是 PRX.CAnPRX.CDist,分别代表最近物体的角度和距离。

你还可以查看每个象限(D0D45D315,即 0 度、45 度和 315 度)的距离数据。请注意,CAn 的数值范围是 360 度,而 CDist 和其他 Dangle 的数值范围只有几米,因此你可能需要分别查看。

http://www.lryc.cn/news/334696.html

相关文章:

  • go interface{} 作为函数参数
  • Django之REST Client插件
  • java实现UDP数据交互
  • 护眼台灯怎么选看哪些指标?不踩雷护眼台灯十大排名
  • Web API(六)之正则表达式
  • 304. 前缀和技巧中的边界值处理
  • ios swift5 “Sign in with Apple“(使用苹果登录)怎样接入(第三方登录)集成AppleID登录
  • 时间系列预测总结
  • NineData创始人CEO叶正盛受邀参加『数据技术嘉年华』的技术大会
  • nginx访问路径映射资源目录
  • 数据挖掘|序列模式挖掘及其算法的python实现
  • 3. Django 初探路由
  • 论文笔记:Large Language Models as Analogical Reasoners
  • 第3章 数据定义语言DDL
  • C#操作MySQL从入门到精通(7)——对查询数据进行简单过滤
  • 【CVE复现计划】CVE-2024-0195
  • k8s的ca以及相关证书签发流程
  • 思迈特软件与上海德拓签署战略合作协议,携手赋能企业数字化转型
  • 【快捷部署】015_Minio(latest)
  • <网络安全>《72 微课堂<什么是靶场?>》
  • Golang | Leetcode Golang题解之第18题四数之和
  • 自动驾驶中的传感器融合算法:卡尔曼滤波器和扩展卡尔曼滤波器
  • 基于ssm的星空游戏购买下载平台的设计与实现论文
  • DSOX6004A是德科技DSOX6004A示波器
  • golang 使用 cipher、aes 实现 oauth2 验证
  • LLMs之FreeGPT35:FreeGPT35的简介、安装和使用方法、案例应用之详细攻略
  • 【力扣一刷】代码随想录day32(贪心算法part2:122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II )
  • 安卓远离手机app
  • yolov5旋转目标检测遥感图像检测-无人机旋转目标检测(代码和原理)
  • 云手机提供私域流量变现方案