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

news2024/12/25 15:13:56

文章目录

前言

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.coloradmin.cn/o/1579435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux(CentOS7)部署 y-api 接口管理平台

目录 前言 前置环境 mongodb node 安装 y-api 部署页面 启动 y-api 基本使用教程 前言 前后端分离时代,前后端通过接口文档来协作开发项目。一般开发过程中,由后端先编写接口文档,然后交付给前端,这时候前后端都根据这个…

Linux/Lame

Lame 今天随便乱逛发现这台机器貌似是 HackTheBox 平台的第一台机器,而且我还没做过,从简介上来看的话是一台很简单的机器,快快的玩一下 Enumeration nmap 首先用 nmap 扫描一下常见的端口,发现系统对外开放了 21,22,139,445 端…

如何在CentOS安装Nexus容器无公网IP远程管理本地仓库

文章目录 1. Docker安装Nexus2. 本地访问Nexus3. Linux安装Cpolar4. 配置Nexus界面公网地址5. 远程访问 Nexus界面6. 固定Nexus公网地址7. 固定地址访问Nexus Nexus是一个仓库管理工具,用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关,可…

免费专利下载网站(亲测有效!无需注册登录)

1.中国专利全文下载 本数据库收录了自1985年以来的全部中国专利数据摘要及全文,包括中国专利申请公开说明书、授权公告说明书,涵盖全部发明专利、实用新型专利、外观设计专利。药物在线已开发中国专利全文下载极速版!支持专利全文在线浏览,专…

Django交易商场

Hello,我是小恒不会java 最近学习django,写了一个demo,学到了不少东西。 我在GitHub上开源了,提示‘自行查看代码,维护,运行’。 最近有事,先发布代码了,我就随缘维护更新吧 介绍: 定…

计算机的发展趋势

本文 我们来说计算机的发展趋势 目前来讲 计算机是朝着 巨型化 微型化 网络化 智能化发展 巨型化 指功能巨型化 是指其高速运算、大存储容量和强功能的巨型计算机。其运算能力一般在每秒百亿次以上、内存容量在几百兆字节以上。 主要用于航空航天、军事、气象、人工智能、生…

FME学习之旅---day21

我们付出一些成本,时间的或者其他,最终总能收获一些什么。 教程:AutoCAD 变换 相关的文章 为您的 DWG 赋予一些样式:使用 DWGStyler、模板文件、块等 FME数据检查器在显示行的方式上受到限制。它只能显示线条颜色,而…

Linux锁的使用

一、临界资源与临界区 多线程会共享例如全局变量等资源&#xff0c;我们把会被多个执行流访问的资源称为临界资源&#xff0c;我们是通过代码访问临界资源的&#xff0c;而我们访问临界资源的那部分代码称为临界区。 实现一个抢票系统 只有一个线程抢票时 #include <ios…

雷达学习之多普勒频率

一、多普勒频率如何产生&#xff1f; 雷达的原理是发射一些无线电脉冲来探测目标&#xff0c;并通过回波的延时来计算目标与雷达的距离&#xff0c;但当目标为运动物体时&#xff0c;在回波向目标传输的同时&#xff0c;目标也会远离或接近回波&#xff0c;所以会导致回波信号…

CDN加速原理那些事

名词解释 CNAME记录&#xff08;CNAME record&#xff09; CNAME即别名( Canonical Name )&#xff1b;可以用来把一个域名解析到另一个域名&#xff0c;当 DNS 系统在查询 CNAME 左面的名称的时候&#xff0c;都会转向 CNAME 右面的名称再进行查询&#xff0c;一直追踪到最后…

vue 中使 date/time/datetime 类型的 input 支持 placeholder 方法

一般在开发时&#xff0c;设置了 date/time/datetime 等类型的 input 属性 placeholder 提示文本时&#xff0c; 发现实际展示中却并不生效&#xff0c;如图&#xff1a; 处理后效果如图&#xff1a; 处理逻辑 判断表单项未设置值时&#xff0c;则设置其伪类样式&#xff0c;文…

Pillow教程11:九宫格切图的实现方法(安排!!!)

---------------Pillow教程集合--------------- Python项目18&#xff1a;使用Pillow模块&#xff0c;随机生成4位数的图片验证码 Python教程93&#xff1a;初识Pillow模块&#xff08;创建Image对象查看属性图片的保存与缩放&#xff09; Pillow教程02&#xff1a;图片的裁…

ctf_show笔记篇(web入门---SSTI)

前言 模板引擎 模板引擎是为了让用户界面以及业务数据分离开才产生的&#xff0c;模板引擎会生成特定的文档&#xff0c;然后通过模板引擎生成前端html代码&#xff0c;然后再获取用户数据再放到渲染函数里渲染&#xff0c;最后将生成的html代码个渲染好的数据结合拿给浏览器呈…

【Git教程】(十)版本库之间的依赖 —— 项目与子模块之间的依赖、与子树之间的依赖 ~

Git教程 版本库之间的依赖 1️⃣ 与子模块之间的依赖2️⃣ 与子树之间的依赖&#x1f33e; 总结 在 Git 中&#xff0c;版本库是发行单位&#xff0c;代表的是一个版本&#xff0c;而分支或标签则只能被创建在版本库这个整体中。如果一个项目中包含了若干个子项目&#xff0c;…

学习赚钱两不误--全自动挂机软件(网心云)

1、简介 程序员的工作环境程序员的工作环境最多的就是网络资源&#xff0c;所以我们工作中有很多的闲置网络资源&#xff0c;不白嫖有点浪费哈。下面就给大家介绍一下免费分享上行带宽赚钱的平台--网心云 优点&#xff1a; &#xff08;1&#xff09;平台大、靠谱、稳定 &a…

四川易点慧电子商务抖音小店可靠购物

在当下这个信息爆炸的时代&#xff0c;电子商务的崛起不仅改变了人们的购物习惯&#xff0c;也催生了众多新兴的电商平台。四川易点慧电子商务抖音小店便是其中的佼佼者&#xff0c;以其独特的魅力和可靠性&#xff0c;赢得了广大消费者的青睐。 一、平台背景实力雄厚 四川易点…

3、最大池化maxinmum pooling

了解有关最大池化特征提取的更多信息。 简介 在第二课中,我们开始讨论卷积神经网络(convnet)的基础如何进行特征提取。我们了解了这个过程中的前两个操作是在带有 relu 激活的 Conv2D 层中进行的。 在这一课中,我们将看一下这个序列中的第三个(也是最后一个)操作:通过…

(一)基于IDEA的JAVA基础12

一维数组 为什么使用数组: 当我们需要存储一系列数据的时候&#xff0c;就需要用到数组&#xff0c;如果不使用数组&#xff0c;我们就要需要一个一个的去声明变量&#xff0c;这样浪费内存空间&#xff0c;同时效率低下。 什么是数组: 数组本身就是一个变量&#xff0c;只…

蓝桥杯-【二分】分巧克力,跳石头

代码及解析: #include<bits/stdc.h> using namespace std; int n,k; const int N100010; int h[N],w[N]; bool check(int d){int num0;for(int i0;i<n;i) num (h[i]/d)*(w[i]/d);if(num>k) return true; //够分else return false; //不够分 } in…

Linux: 工具: tshark 抓到了收方向的ESP明文包?

根据这个描述&#xff0c;看着是正常的&#xff0c; 抓到包之后&#xff0c;可以方便的分析问题&#xff0c;省去在wireshark里解码的问题。 经过调查发现是内核将ESP解开之后&#xff0c;如果是tunnel模式&#xff0c;内核又重新将skb丢给了interface去做处理。这样tshark/tcp…