Benewake(北醒) TFmini-i-CAN 雷达在Ardupilot (APM)上基于PixHawk的运用

2023-11-20 12:30

本文主要是介绍Benewake(北醒) TFmini-i-CAN 雷达在Ardupilot (APM)上基于PixHawk的运用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

  • 一、前言
  • 二、TFmini-i-CAN 配置
  • 三、接线
  • 四、飞控参数设定
    • 4.1 避障的常用设置
    • 4.2 避障测试
    • 4.3 定高的常用设置
    • 4.4 定高测试
  • 五、常见问题

一、前言

TFmini-i CAN PixHawk1 CAN 端口或任何已刷新 Ardupilot 固件并具有 CAN 接口的飞控连接。
从 Copter 4.1.4 开始,Ardupilot 固件添加了对 CAN 协议的支持,用于避障和高度保持。

二、TFmini-i-CAN 配置

需要注意的是TFmini-i有485和CAN两种不同的硬件版本
所以在购买激光雷达时,请注意购买带CAN接口的激光雷达。
多个 LiDAR 可以连接到单个 CAN 总线。 我们需要为每个 LiDAR 分配不同的 CAN ID。
每个 LiDAR 的波特率需要设置为相同的值。
在 LiDAR 端,我们有两种类型的 CAN ID:

  • Send ID:它在 CAN 总线端成为 Receive ID(如果我们连接多个 LiDAR,我们需要将此 ID 设置为新值。)
  • Receive ID:它成为 Send ID 在 CAN 总线方面,我将考虑三个 LiDAR 示例

但 Ardupilot 最多支持 10 个传感器。
这些命令在 LiDAR 手册中有详细提及,但为了方便起见,我将在此处添加它们。
仍然建议仔细阅读 LiDAR 的手册,其中有一些要点。

5A 0E 51 00 08 03 00 00 00 04 00 00 00 C8 [将发送 ID 更改为 04]
5A 0E 51 00 08 03 00 00 00 05 00 00 00 C9 [将发送 ID 更改为 05]
5A 0E 51 00 08 03 00 00 00 06 00 00 00 CA [将发送 ID 更改为 06]
5A 04 11 6F [保存设置]
5A 05 60 01 C0 [启用 120Ω 终端电阻]
5A 05 60 00 BF [禁用(默认)120Ω 终端电阻]
5A 0E 51 00 08 03 00 00 00 03 00 00 00 C7 [将发送 ID 更改回默认 03]

关于 LiDAR 上的终端电阻的一些细节:
虽然 LiDAR 上的电阻默认禁用并且 LiDAR 在不启用电阻的情况下工作,但添加电阻有助于降低传输的等效电阻,因为并联增加更多的电阻会降低等效电阻。 因此,如果您在数据稳定性方面遇到任何问题,那么您可以通过发送我在上面添加的命令来启用 LiDAR 上的电阻器。
发送上述命令需要CAN分析仪。
如果不太清晰如果使用CAN分析仪发送指令可以参考:
【快速测试】TFmini-i-CAN通过CAN分析仪与电脑通信操作教程
完成上述设置后,就可以进行物理连接和 Ardupilot 固件设置了。

三、接线

下图展示了如何将 TFmini-i CAN 与 PixHawk 飞控连接。 在这里插入图片描述

  • 请注意将正确的线连接到飞控的正确引脚。 看控制器的pinout,pin配置是从左到右开始的

在这里插入图片描述

  • 相关连接器需用户自行购买,LiDAR连接器为1.25mm间距的7针JST。
  • 如果激光雷达朝下,请注意镜头与地面的距离,应大于激光雷达的盲区(10cm)。
  • 如果需要连接更多的激光雷达(可以连接10个激光雷达),方法相同。
  • 电源应满足产品说明书电流电压要求:7V至30V,大于100mA*激光雷达数量。 我用的是 12V 电源

四、飞控参数设定

4.1 避障的常用设置

AVOID_ENABLE= 3
AVOID_MARGIN=4
PRX_TYPE=4

CAN-1 端口设置:

CAN_P1_DRIVER = 1
CAN_D1_PROTOCOL = 11 CAN_P1_BITRATE = [ 波特率:对于 TFmini-i ,它是 250000]

对于 pixhawk1,我们只有一个 CAN 接口,但如果有多个接口 然后配置CAN-2接口的参数。
CAN-2 端口设置:

CAN_P2_DRIVER = 1
CAN_D2_PROTOCOL = 11
CAN_P2_BITRATE = [波特率:TFmini-i 为 250000]

第一个 TFmini-i :

RNGFND1_RECV_ID = 3 [CAN 发送ID 十进制]
RNGFND1_GNDCLEAR=15 [单位:cm,取决于模块的安装高度,应大于 LiDAR 盲区。]
RNGFND1_MAX_CM = 400 [可根据实际需要更改,但应小于激光雷达的有效测量范围,单位为厘米]
RNGFND1_MIN_CM =30 [可根据实际需要更改,应大于激光雷达非探测区,单位为厘米]
RNGFND1_ORIENT=0 [#1 TFmini-i 真实方向]
RNGFND1_TYPE = 34

第二个 TFmini-i :

RNGFND2_RECV_ID = 4 [CAN 发送ID 十进制]
RNGFND2_MAX_CM=400
RNGFND2_MIN_CM=30
RNGFND2_ORIENT = 6 [#2 TFmini-i 真实方向]
RNGFND2_TYPE = 34

第三个 TFmini-i :

RNGFND3_RECV_ID = 5 [CAN 发送ID 十进制]
RNGFND3_MAX_CM=400
RNGFND3_MIN_CM=30
RNGFND3_ORIENT = 4 [#3 TFmini-i 真实方向]
RNGFND3_TYPE = 34

设置好这些参数后,点击软件右侧的Write Params完成

4.2 避障测试

如何查看激光雷达的目标距离:在键盘上按Ctrl+F键,会弹出如下窗口:
在这里插入图片描述
点击按钮Proximity,会出现如下窗口

在这里插入图片描述
绿色数字表示避障模式下距离激光雷达的距离,当距离变化或窗口打开、关闭、放大或缩小时,该数字会刷新。
编写本教程是 v1.3.72。

4.3 定高的常用设置

假设我们使用第四个激光雷达来保持高度。
将飞控板连接到任务平面,从下栏选择左侧的【完整参数列表】-【CONFIG/TUNING】。 查找并修改以下参数:

PRX_TYPE = 0 [如果 RNGFND4_ORIENT = 25 等于 4 也给出值]
RNGFND4_RECV_ID = 6 [CAN 发送ID 十进制]
RNGFND4_GNDCLEAR = 15 [单位: cm,取决于模块的安装高度, 定高需要此参数。]
RNGFND4_MAX_CM = 400 [可根据实际需要更改,但应小于激光雷达的有效测量范围,单位为厘米]
RNGFND4_MIN_CM = 30 [可根据实际情况更改,应 大于 LiDAR 非探测区域,单位 cm]
RNGFND4_ORIENT = 25 [#4 TFmini-i 真实方向]
RNGFND4_TYPE = 34

4.4 定高测试

选择选项 sonarrange,见下图
在这里插入图片描述
距离 LiDAR 的高度距离会以 Sonar Range(米)显示,见下图
在这里插入图片描述

五、常见问题

如果出现“Bad LiDAR Health”的错误信息,请检查连接是否正确,电源是否正常。
配置好参数后请让飞控完全重新上电,否则不会发生更改。 如果您的电池已连接到您的飞行控制器,请同时断开

这篇关于Benewake(北醒) TFmini-i-CAN 雷达在Ardupilot (APM)上基于PixHawk的运用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/394612

相关文章

poj 2431 poj 3253 优先队列的运用

poj 2431: 题意: 一条路起点为0, 终点为l。 卡车初始时在0点,并且有p升油,假设油箱无限大。 给n个加油站,每个加油站距离终点 l 距离为 x[i],可以加的油量为fuel[i]。 问最少加几次油可以到达终点,若不能到达,输出-1。 解析: 《挑战程序设计竞赛》: “在卡车开往终点的途中,只有在加油站才可以加油。但是,如果认为“在到达加油站i时,就获得了一

ElasticSearch 6.1.1运用代码添加索引及其添加,修改,删除文档

1、新建一个MAVEN项目:ElasticSearchTest 2、修改pom.xml文件内容: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.or

Xiaojie雷达之路---雷达间干扰(二)置零法对干扰抑制

Hello,大家好,我是Xiaojie,欢迎大家能够和Xiaojie来一起学习毫米波雷达知识,本篇文章主要是介绍一下时域置零对雷达间干扰抑制的效果,一起来看看吧!!! 文章目录 前言正文原理性介绍代码 前言 在上一篇文章中介绍了BPM对雷达间干扰抑制的方法,而本篇文章是采用时域置零的方法进行雷达间干扰抑制 效果图: 视频如下: 雷达间干扰 正文

巧妙的运用Floyd算法

题目大概意思:输入n,m,n代表n个点,接着输入n个点之间的距离(n*n的矩阵),接下来m次询问,输入a,b,c如果a,b之间的最短路径中存在c点则输出Yes,否则输出No 比赛的时候没有做出来,赛后帆哥一点播就知道了。。。。我写的时候直接用floy算法求距离并记录路径。。然后TLE到死。。。我就奇怪了数据n,m都小于100,怎么会TLE啊。。。坑爹啊。。。我一直怀疑是不是用别的算法。。。。。帆

【kubernetes】配置管理中心Configmap运用

一,介绍 Configmap(简写 cm)是k8s中的资源对象,用于保存非机密性的配置的,数据可以用key/value键值对的形式保存,也可通过文件的形式保存。 【局限性】:在ConfigMap不是用来保存大量数据的,其数据量不可超过1 MiB。 kubectl get cm 二,功能 Configmap资源对象,可以有一个或者多个Configmap,通过 volume 形式映射到容器

运用WPS快速整理中英混排的网页文字的方法

朋友从网上下载了一篇技术文档,发现文档中每一行的行末都有一个段落符号,而真正要分段的段首则有4个半角空格,还有许多空段。   想重新编排一下,由于文档比较长,手工操作肯定不行,我向他推荐用WPS文字的“智能格式整理”功能。在该文档处于打开状态时,用鼠标点开“工具”菜单下的“文字工具→智能格式整理”,几秒钟后,所有的段首空格全部消失,段与段之间的空段也全部消除,但每一行行末的段落标记却依然

【R语言 可视化】R语言画雷达图

1、安装插件 github网址: https://github.com/ricardo-bion/ggradar devtools::install_github("ricardo-bion/ggradar")install.packages("knitr") 2、效果图 3、源代码 rm(list=ls())gc()library(ggradar)mydata<-ma

智能匹配新高度:相亲交友系统如何运用AI技术提升用户体验

在数字化时代,相亲交友系统正逐渐融入人工智能(AI)技术,以提升用户体验和匹配效率。AI的引入不仅改变了传统的交友方式,还为用户带来了更加个性化和精准的交友体验。以下是一篇关于如何运用AI技术提升相亲交友系统用户体验的文章。 智能匹配新高度:相亲交友系统如何运用AI技术提升用户体验 随着人工智能技术的飞速发展,相亲交友系统正迎来一场革命。AI的引入不仅提高了匹配的精准度,还极大地丰富了

编程技巧--位运算的巧妙运用(1)

作者:yunyu5120                这是我的这一系列文章的第一篇,主要讲述我学习过程中积累的一些编程技巧,由于我也是一个初学者,高手莫笑。这一篇主要讲解位运算的基础知识鱼与其简单应用,我主要以C/C++语言讲述,其他语言可以类推。如果你已经对位运算基础和应用十分熟悉,那么本文并不适合你。              我相信还是有一部分人对位运算还不是很了解,我希望你在

ardupilot 计算悬停油门的方法

#目录 文章目录 摘要1.计算过程1.悬停油门值更新2.更新油门控制输入滤波值 摘要 本节主要记录ardupilot计算悬停油门值的方法,欢迎批评指正。ardupilot计算悬停油门对于进行稳定的高度控制至关重要。 1.计算过程 根据垂直速度PID输出或者垂直加速度PID输出,得到控制电机保持在一定高度的pwm值,根据这个值在一定条件下计算出悬停油门值。 1.悬停油门值更