MAVROS与机载电脑Jetson nano通信

2024-01-14 14:20

本文主要是介绍MAVROS与机载电脑Jetson nano通信,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介: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。

我们的无人机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官网地址如下:

mavros - ROS Wiki

步骤整理如下:

一、配置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

五、添加永久生效的权限

每次要在后面加一堆参数很烦,所以直接修改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" />

这篇关于MAVROS与机载电脑Jetson nano通信的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

电脑蓝牙连不上怎么办? 5 招教你轻松修复Mac蓝牙连接问题的技巧

《电脑蓝牙连不上怎么办?5招教你轻松修复Mac蓝牙连接问题的技巧》蓝牙连接问题是一些Mac用户经常遇到的常见问题之一,在本文章中,我们将提供一些有用的提示和技巧,帮助您解决可能出现的蓝牙连接问... 蓝牙作为一种流行的无线技术,已经成为我们连接各种设备的重要工具。在 MAC 上,你可以根据自己的需求,轻松地