本文主要是介绍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的运用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!