超维小课堂 | 6、MAVROS与机载电脑Jetson nano通信

MAVROS与机载电脑Jetson nano通信

ROS系统镜像——Jetson nano b01 4G

链接: 百度云镜像链接

链接:https://pan.baidu.com/s/1NoIEvVdsiYLPvVOWM98hjQ
提取码:cwkj

简介:MAVROS和Jetson nano通信,设置飞控参数和MAVROS文件,实现飞控和机载电脑的通信。MAVROS相当于PX4飞控中的MAVLINK模块。MAVROS将话题转为MAVLINK格式消息发送给飞控,飞控中的MAVLINK模块将MAVLINK格式消息转化为uORB消息给PX4各模块间传递消息使用,也可以反过来从uORB消息一直到ROS话题。

MAVROS简介

ROS结合PX4的或者APM的开发方式,关键在于实现ROS和他们之间的通信,这里我们使用ROS官方提供的MAVROS功能包实现飞控Pixhawk和ROS主控间的通信。
简单的来说,mavros的作用是实现ROS和PX4间的通信,mavros功能包起到了实现上层ROS和底层PX4固件的双向通信。基于此,在一般的开发应用中,我们通常在ROS层面进行功能开发,并发布相关控制指令给底层即可。同时底层会实时的把无人机的相关状态通过mavros上传给ROS。
在这里插入图片描述

注意:此处仅以Pixhawk2.4.8飞控为例,其他飞控原理一致,皆可参考。
我们的无人机ROS主控Jetson nano通过串口ttyTHS1和飞控的telem2口进行通信。需要的硬件包括安装了系统镜像的Jetson nano和下载了固件的飞控pixhawk2.4.8,另外需要一根连接线。如图中所示标注所示:

在这里插入图片描述

Jetson nano引脚按序号排列如下:上述图片则是通过telem2连接6,8,10一脚。其中telem2中的GND连接6-GND,telem2中的TX连接10-RX,RX连接8-TX。Telem2中只需要此三根线连接即可,其余不用管。

在这里插入图片描述

打开QGC地面站,设置如下:

①、选中MAVlink设置参数如下,设置telem2通信

在这里插入图片描述

②、紧接着设置Serial,波特率设置为921600。

在这里插入图片描述

③、找到启动mavros的px4.launch文件,设置通信的串口为/dev/ttyTHS1:921600即可

在这里插入图片描述

④、确保硬件和参数设置完成后,启动mavros

在这里插入图片描述

⑤、出现以下内容表示MAVROS实现双向通信

在这里插入图片描述

总结:MAVROS在ROS+PX4/APM的开发方式中属于重点中的重点,一定要深刻理解MAVROS的功能和作用,在此基础上进行开发,可以极大的提高开发效率。基于此,我们推荐采用这种开发方式的朋友静下心研究一番MAVROS,可以参考网上相关博客资料等,也可以直接查看官网介绍。推荐MAVROS官网地址如下:

http://wiki.ros.org/mavros

步骤整理如下:

一、配置Pixhawk上的Telem2作为MAVLINK端口

MAV_1_CONFIG  = TELEM 2
MAV_1_MODE = Onboard
SER_TEL2_BAUD = 921600 8N1

注:一开始参数里可能只有MAV_1_CONFIG,搜不到其他的参数,只需要先把MAV_1_CONFIG设置为TELEM 2,然后把飞控重启后就有了。

二、在机载电脑上启动MAVROS

这里用的是Jetson nano的串口2,也就是dev/ttyTHS1。最后的921600是波特率,就是1.1中设置的SER_TEL2_BAUD,改成设置的值就行了。

roslaunch mavros px4.launch fcu_url:=serial:///dev/ttyTHS1:921600 gcs_url:=udp://@192.168.0.0

gcs_url为运行QGC的主机的IP

三、设置为以下参数表示自动寻址,直到连上QGC

roslaunch mavros px4.launch fcu_url:=serial:///dev/ttyTHS1:921600 gcs_url:=udp-b://@

可能会报错

FCU: DeviceError:serial:open: Permission denied

四、解决方法是给对应的串口权限

sudo chmod 777 /dev/ttyTHS1

补充:绑定串口权限,确保开机能自动识别,可以参考我们提供的详细教程

链接: 串口绑定教程
https://blog.csdn.net/qq_35598561/article/details/116295689

五、添加永久生效的权限

每次要在后面加一堆参数很烦,所以直接修改launch文件,使用sudo权限打开/opt/ros/melodic/share/mavros/launch/px4.launch,将

<arg name="fcu_url" default="/dev/ttyACM0:57600" />

修改为自己的端口和波特率

<arg name="fcu_url" default="/dev/ttyTHS1:921600" />
  • 29
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

流浪者1015

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值