• 2.0、ROS与PX4通信详解


    **

    ROS与PX4的通信 引言:

    **
    视频详解链接:ROS与PX4的通信 引言

    本部分主要分为三个部分,主要包括ROS环境的配置、PX4环境的配置,以及MAVROS的安装,学者可以根据以下链接自行配置,以下给出的链接位整套配置,读者可以详细查看整个配置过程,避免在环境配置上花费太多的时间。
    (注意:以下配置过程完成后可以通过仿真实现PX4和ROS的通信,并且完成简单的offboard控制模式,但是在实物连接过程中,仍然与仿真环境稍有差别,请仔细查看本章节内容)

    **

    仿真环境:

    **

    1、ROS安装教程(ROS Melodic + Ubuntu18.04)
    https://www.cnblogs.com/cporoske/p/11612158.html

    2、[Pixhawk/PX4]开发环境搭建(Ubuntu 18.04)
    https://www.cnblogs.com/cporoske/p/11630426.html

    3、[PX4]mavros安装+offboard控制过程记录
    https://www.cnblogs.com/cporoske/p/11641477.html

    实物部分:在配置万上述环境后,可以通过USB先连接笔记本和飞控,在连接的过程中,应该关掉QGC地面站,否则将出现串口连接冲突。

    步骤一:将组装好的实物无人机通过USB线连接主控端,需要注意的是,连接PC的USB口,尽量使用PC自带的USB口,通过一转多板,可能出现连接不上的问题。
    在这里插入图片描述

    步骤二:打开终端,检查是否识别到飞控,输入命令ll /dev/ttyACM*
    在这里插入图片描述

    步骤三:检测到后,添加权限,否则无法启动,终端命令如下:

    sudo chmod 777 /dev/ttyACM0
    
    • 1

    具体权限可以自行配置
    在这里插入图片描述

    步骤四:启动mavros节点,终端命令如下:

    roslaunch mavros px4.launch _fcu_url:=/dev/ttyACM0:57600
    
    • 1

    其中波特率等可以在熟悉后自行配置即可,本文已57600为例,需要与PX4一致。
    在这里插入图片描述

      成功启动节点后,可以看到反馈的版本号等信息,至此,已经通过MAVROS实现了ROS与PX4的通信。
    
    • 1

    在这里插入图片描述

    **

    MAVROS介绍

    **

    引言:

    实现ROS和PX4固件的通信需要一定的协议转换,PX4采用的是MAVLINK协议,为了实现两者的通信,通常使用MAVROS作为桥梁,具体的MAVROS介绍,将在以下给出相关链接,感兴趣的可以深入研究,对于一般使用来说,整体上了解它的功能的注意用即可。

    本部分主要分为三个部分,主要包括ROS环境的配置、PX4环境的配置,以及MAVROS的安装,学者可以根据以下链接自行配置,以下给出的链接位整套配置,读者可以详细查看整个配置过程,避免在环境配置上花费太多的时间。
    (注意:以下配置过程完成后可以通过仿真实现PX4和ROS的通信,并且完成简单的offboard控制模式,但是在实物连接过程中,仍然与仿真环境稍有差别,请仔细查看本章节内容)

    仿真环境:

    1、MAVROS简介
    https://www.ncnynl.com/archives/201709/2077.html

    2、MAVROS官网
    http://wiki.ros.org/mavros

    **

    MAVROS常用话题与服务

    **

    引言
    在进行MAVROS学习之前,请先对ROS做一个简单的学习。在了解了ROS的基础上再进行MAVROS的学习,可以快速的掌握MAVROS通信协议的开发。
    基于ROS+PX4的开发方式,实现两者的通信是不可或缺的,本小结主要介绍常用的一些通过MAVROS控制无人机运动的相关话题和服务。需要详细深入的了解,请参考上一小节中给出的MAVROS官网。
    在下一个小结中,将会选定一个具体的话题进行介绍,其他的话题和服务本质上原理都是一样的,不多说,直接给出链接。

    1、MAVROS常用话题和服务介绍
    https://blog.csdn.net/qq_26550927/article/details/102993703

  • 相关阅读:
    智慧工地云平台源码 人工智能AI+多系统集成+智能预警平台源码
    动态规划总结及套路【4】
    前端如何实现精准的倒计时(排除误差、时间偏差)
    【数学建模】复杂水平井三维轨道设计附论文和matlab代码
    在 Lua 中如何实现高效的内存管理?
    Java性能分析基础(一):常用工具
    Python之第十二章 异常处理
    直接插入排序+希尔排序+冒泡排序+快速排序+选择排序+堆排序+归并排序+基于统计的排序
    STM32(TIM定时器中断)
    开发QQ官方机器人
  • 原文地址:https://blog.csdn.net/qq_38768959/article/details/124911760