PX4 与 MAVROS 实现offboard

2023-05-16

目录

一、虚拟机仿真环境

1. 创建工作空间        

2. 创建ROS节点功能包

3. 运行PX4的gazebo仿真

4. 启动PX4与Mavros之间的连接

二、真机控制

1.硬件连接

2.软件设置

3.出现问题


Ubuntu:20.04 ,已安装ROS、MAVROS、PX4,gazebo

机载电脑:jetson nano,已安装ROS、MAVROS

以上软件安装过程不再赘述,网络上都有安装教程。

一、虚拟机仿真环境

1.创建工作空间        

          新建文件夹,并将该文件夹变成工作空间(即catkin_ws 空间

         1)创建源码文件夹(src文件夹

mkdir   -p   ~/catkin_ws/src

cd    ~/catkin_ws/src

catkin_init_workspace  // 初始化文件属性,使之成为源代码文件夹,是在src 文件夹使用该命令

       2)编译工作空间文件夹(catkin_ws文件夹

             回到src文件的上层文件夹进行工作空间编译

cd   ~/catkin_ws  

catkin_make                 //编译工作空间,是在catkin_ws文件夹使用该命令

source devel/setup.bash     //将工作空间的信息添加到环境变量,方便系统寻找

2. 创建ROS节点功能包

        1)在catkin_ws/src目录中(源码文件夹),创建功能包  offboard_pkg,运行命令:

cd src

catkin_create_pkg offboard_pkg  roscpp  std_msgs   geometry_msgs   mavros_msgs

        2)添加功能包的源码文件(C++/Python编写)

                在创建的功能包文件夹(offboard_pkg)的源码文件夹(src文件夹),

             即定位到目录~/catkin_ws/src/offboard_pkg/src/,新建一个文件offboard_node.cpp

                打开官方MAVROS Offboard control example链接,然后复制进去

        3)修改CMakeLists.txt,以编译源码文件

          打开目录~/catkin_ws/src/offboard_pkg/下的CMakeLists.txt   添加下面的两行

                add_executable(offboard_node   src/offboard_node.cpp)

                target_link_libraries( offboard_node ${catkin_LIBRARIES})

        4)进行功能包的编译

                然后到目录~/catkin_ws下,运行命令:

catkin_make   #编译功能包

3.    运行PX4的gazebo仿真

        1)如果你要在gazebo中仿真,打开PX4的固件文件夹(PX4-Auopilot),打开终端运行命令

make  px4_sitl  gazebo_iris   //打开模拟环境  

        2)打开QGroundControl,在地面站上进行观察是否连接上gazebo的无人机,连接则表示正常打开

4.  启动PX4Mavros之间的连接

        1) 在终端下运行命令(新开一个终端):

roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

        2)启动PX4Mavros之间的连接之后,在节点功能包所在的catkin_ws目录下运行命令

rosrun offboard_pkg offboard_node,

                          然后进入gazebo中进行观察。

       若要在任意终端运行节点命令要在终端窗口source一下工作空间的setup.bash 文件,比如我的就是

  source amov_ros/devel/setup.bash   #amov_ros 是我的工作空间

二、真机控制

1.硬件连接

使用飞控的TELEM2和机载电脑的USB

由于飞控TELEM2是串口,所以要使用TTLUSB模块连接

2.软件设置

1)配置Pixhawk上的Telem2作为MAVLINK端口

        MAV_1_CONFIG = TELEM 2

        MAV_1_MODE = Onboard    

        SER_TEL2_BAUD = 921600 8N1    // 这里我设置成230400 8N1

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

2)在机载电脑上启动MAVROS和PX4的连接

roslaunch  mavros px4.launch fcu_url:=/dev/ttyUSB0:230400

        我这里用的是jetson nanoUSB,所以就是dev/ttyUSB0,这个按照自己实际情况写就好了。最后的230400是波特率,就是1)中设置的SER_TEL2_BAUD,改成设置的值就行了。(如果用的是串口的话,应该是dev/ttyTSH**代表序号)

        USB0是指插入的顺序是第一个,所以是USB0,如果是第二个插入机载电脑,则是USB1,系统根据插入顺序分配端口。

3.出现问题

1)报错权限问题

                                 “FCU: DeviceError:serial:open: Permission denied”

解决方法是给对应的串口权限或者USB口权限

sudo chmod 777 /dev/ttyTHS1   #这是参考别的文章出现的问题,这里作为参考

        虽然这样子mavros就正常运行了,但是节点信息会卡在xxxxxx start xxxxxxx,然后/mavros/state中的connected是false。这个问题卡了我一天,后来我把波特率往下降到460800以下就能正常使用了(有大佬指出是因为数据线太长,导致传输过程中到达不了那么高的波特率,所以不能成功连接,还有个可能是芯片原因,如果用CH340芯片,则最大波特率是115200)。

2)报错timesync的异常:RTT too high for timesync: 19.32 ms.

        解决方法是:

sudo gedit /opt/ros/melodic/share/mavros/launch/px4_config.yaml

        把文件中的第12行改为

timesync_rate: 0.0

3)不带参数的连接命令

        编辑飞控连接  px4.launch文件的命令行是

sudo gedit  /opt/ros/melodic/share/mavros/launch /px4.launch

 然后更改默认的连接端口,即

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

修改成

<arg name="fcu_url" default="/dev/ttyUSB0:230400" />

最后开启时候,直接运行

        roslaunch  mavros  px4.launch

即可

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PX4 与 MAVROS 实现offboard 的相关文章

  • PX4/Pixhawk---uORB深入理解和应用

    The Instructions of uORB PX4 Pixhawk 软件体系结构 uORB 主题发布 主题订阅 1 简介 1 1 PX4 Pixhawk的软件体系结构 PX4 Pixhawk的软件体系结构主要被分为四个层次 xff0c
  • PX4位置控制offboard模式说明

    offboard模式的开发及应用 一 px4固件的模式 px4固件支持10几种飞行模式 xff0c 从代码结构上分析 xff0c 分为基本模式 自定义模式和自定义子模式 1 基本模式 基本模式又分为 xff0c 位置控制模式 自稳模式 手动
  • 飞行机器人(七)仿真平台XTDrone + PX4编译

    0 编译PX4固件 参考仿真平台基础配置教程 xff08 中文详细教程 xff09 仿真平台基础配置 语雀 yuque com https www yuque com xtdrone manual cn basic config 按照教程
  • Ubuntu20.04+MAVROS+PX4+Gazebo保姆级安装教程

    Ubuntu20 04 43 MAVROS 43 PX4 43 Gazebo 安装PX4步骤安装MAVROS安装QGCPX4仿真 安装PX4步骤 从github上clone源码 span class token function git s
  • PX4+Offboard模式+代码控制无人机起飞(Gazebo)

    参考PX4自动驾驶用户指南 https docs px4 io main zh ros mavros offboard cpp html 我的另一篇博客写了 键盘控制PX4无人机飞行 PX4无人机 键盘控制飞行代码 可以先借鉴本篇博客 xf
  • PX4无人机 - 键盘控制飞行代码

    PX4无人机 键盘控制飞行代码 仿真效果 实机效果 由于图片限制5M以内 xff0c 只能上传一小段了 xff0c 整段视频请点击链接 Pixhawk 6c 无人机 键盘控制无人机 Offboard模式 核心 xff1a 发布 mavros
  • px4 avoidance笔记

    最近在用px4官方的avoidance代码跑硬件避障 xff0c 官方介绍了只要生成符合sensor msgs PointCloud2点云信息就能使用 xff0c 因此为了应用长基线双目 xff0c 没有使用realsense的相机 xff
  • PX4 ---- Mixer

    文章目录 Mixer 混合控制 作用输入输出装载混控文件MAVROS代码解析总结示例MAINAUX Mixer 混合控制 作用 经过位置控制和姿态控制后 xff0c 控制量通过 actuator controls发布 xff0c 其中 co
  • PX4模块设计之三十一:ManualControl模块

    PX4模块设计之三十一 xff1a ManualControl模块 1 ManualControl模块简介2 模块入口函数2 1 主入口manual control main2 2 自定义子命令custom command 3 Manual
  • PX4模块设计之三十六:MulticopterPositionControl模块

    PX4模块设计之三十六 xff1a MulticopterPositionControl模块 1 MulticopterPositionControl模块简介2 模块入口函数2 1 主入口mc pos control main2 2 自定义
  • PX4模块设计之四十三:icm20689模块

    PX4模块设计之四十三 xff1a icm20689模块 1 icm20689模块简介2 模块入口函数2 1 主入口icm20689 main2 2 自定义子命令custom command2 3 模块状态print status 重载 3
  • 关于github px4 gps 驱动的开发的总结

    源码编译上边已经写过文章了 遇到的几个问题 1 解决虚拟机不能共享文件夹的问题 一开始虚拟机的更新 vmware tools 是灰色的 xff0c 不能点 xff0c 然后通过关掉虚拟机 xff0c 然后再开启的时候 xff0c 在没有启动
  • Px4源码框架结构图

    此篇blog的目的是对px4工程有一个整体认识 xff0c 对各个信号的流向有个了解 xff0c 以及控制算法采用的控制框架 PX4自动驾驶仪软件 可分为三大部分 xff1a 实时操作系统 中间件和飞行控制栈 1 NuttX实时操作系统 提
  • Mavros Client md5sum Error

    ERROR Client mavros wants topic State to have datatype md5sum mavros msgs State 4048c9de2a16f4ae8e0538085ebf1b97 but our
  • MAVROS +ardupilot +gazebo 无人机集群仿真 (一)

    MAVROS 43 ardupilot 43 gazebo 无人机集群仿真 xff08 一 xff09 无人机仿真环境搭建仿真软件安装仿真环境测试无人机多机仿真apm launch文件修改修改 iris ardupilot world修改
  • PX4中自定义MAVLink消息(记录)

    简单记录一下这个过程 一 自定义uORB消息 这一步比较简单 xff0c 首先在msg 中新建ca trajectory msg文件 uint64 timestamp time since system start span class t
  • 步骤八:PX4使用cartographer与move_base进行自主建图导航

    首先老样子硬件如下 飞控 HOLYBRO PIXHAWK V4 PX4 机载电脑 jetson nano b01 激光雷达 思岚a2 前提 你已经完成了cartographer建图部分 能够正常输出map话题 前言 由于要参加中国机器人大赛
  • PX4项目学习::(七)飞控栈:commander

    PX4的飞行控制程序通过模块来实现 xff0c 与飞控相关的模块主要有commander xff0c navigator xff0c pos control xff0c att control这几个 xff0c 分别可以在src modul
  • mavlink模块中接收offboard模式下的mavlink消息流

  • 大神浅谈无人机飞控软件设计 系统性总结

    写在前面 深感自己对飞控软件 算法的知识点过于杂乱 很久没有进行系统的总结了 因此决定写几篇文章记录一些飞控开发过程的知识点 主要是针对一些软件 算法部分进行讨论 如内容有错误 欢迎指出 1 飞控软件的基本模块 无人机能够飞行主要是依靠传感

随机推荐

  • STM32使用C标准库time.h里面的时间时钟函数

    标准C里面已经定义好时间日期库time h xff0c 在嵌入式里面并没有被限制使用 下面我们看一下怎样在IAR中使用time h库 有四个与时间相关的类型 xff1a clock t time t size t 和 tm 类型 clock
  • ros 学习之计算机视觉资料总结

    ros 学习之计算机视觉 ros高效编程Visual ServoingAugmented Reality xff08 AR xff09 Perception and object recognitionvisual odometry 古月居
  • 数字信号处理 离散时间信号

    1 时域离散信号 xff1a 对模拟信号进行等间隔采样 xff0c 即得到时域离散信号 xff08 时间离散 xff0c 但是幅度没有量化 xff0c 离散 xff09 1 xff09 例如 对连续信号Xa t 以等间隔T对其进行采样 xf
  • 复指数函数

    复指数信号 百度百科 复指数信号是指数信号的指数因子是复数时 xff0c 称之为复指数信号 复指数信号在物理上是不可实现的 xff0c 但是它概括了多种情况 利用复指数信号可以表示常见的普通信号 xff0c 如直流信号 指数信号 正弦信号等
  • Make 详解

    1 windows的IDE中自带Makefile 但是unix和linux需要自己写 2 makefile除了指定文件的编译顺序和规则以外 xff0c 也可以执行操作系统的命令 3 make 是一个命令工具 xff0c 是一个解释makef
  • 四旋翼无人机飞行控制算法H∞控制

    PID控制之所以被广泛应用 xff0c 就是因为它是一个无模型控制器 也就是说 xff0c 不管控制对象是什么 xff0c PID控制器的公式都是现成的 xff0c 然后你去修改三个参数试凑就行了 这对理论基础较差的工程技术人员来说用起来是
  • 【无标题】

    linux常用的压缩格式为 xff1a zip tar gz tar tar bz2等 xff0c 不同的方式消耗的时间和压缩比差异比较大 1 zip zip r test zip test r 表示当前test是个目录 2 解压命令 xf
  • 【无标题】

    如下是读取16bit音频raw文件的程序 xff0c 其中的short就是为了16bit准备的 xff0c 一般的固定频率的单频 xff08 1khz之类 xff09 的音频文件是固定的循环 xff0c 比如1khz是每8个点循环一次 xf
  • select 的使用

    select是在指定时间内 xff08 最后一个参数指定的时间 xff09 轮询指定fd集合的接口 1 需要包含的头文件 include lt sys time h gt select是在指定时间内轮询 xff0c 所以有时间相关的参数 i
  • KEIL修改背景色

    本篇文章借鉴 于旺园先生的 平时在用keil软件比较多 xff0c 看白色背景比较多有点伤眼睛 xff0c 现在我们来设置一下keil的背景 xff0c 来保护我们的眼睛吧 效果图 xff1a 1 打开配置界面 color amp font
  • QT表格的实现

    本文章复制于别人的博客 xff0c 是因为我怕原创者把原著删掉 xff0c 所以就复制下来了 xff0c 如有冒犯 xff0c 请多见谅 xff01 一 简介 QTableWidget是QT对话框设计中常用的显示数据表格的控件 xff0c
  • QT 表格

    在公司公示Qt开发一段时间 xff0c 表格用到不少 xff0c 所以 xff0c 今天在这做个总结 xff0c 防止以后忘记 下面为个人模拟Windows资源管理器的一个表单 xff08 写的比較粗糙 xff0c 谅解一下 xff09 一
  • 格力空调红外编码

    格力空调遥控器红外编码透析 xff08 长码 xff09 2016年11月04日 13 13 19 阅读数 xff1a 5516 格力空调遥控器 xff08 YB0F2 xff09 红外码组成如下 xff0c 按解码顺序排列 起始码 xff
  • android相机Camera.Parameters所有的参数值

    最近两天一直在看android相机的参数设置 xff0c Camera Parameters中属性值非常的多 xff0c 我索性就把就调用的flatten 方法 xff0c 将设置的参数值都打印出来了 xff0c 方便以后查看 xff0c
  • 酒店管理项目

    数据库介绍 user表 xff1a 这是一个管理员的表 xff0c 用于存储可对后台进行操作的人员信息表 xff0c 其中重要的字段包括包括主键ID xff0c 与权限等级 xff0c 密码 room表 xff1a 作为存储房间信息的表 x
  • 无人机——电池、电机、螺旋桨搭配

    1 电机 1 xff09 电机KV值 KV值是每1V的电压下电机每分钟空转的转速 例如KV800 在1V的电压下空转转速是800转每分钟 那么10V的电压下是8000转每分钟的空转转速 KV值越小 xff0c 同等电压下转速越低 xff0c
  • 姿态和位置,四旋翼的控制流程

    xfeff xfeff 姿态和位置计算 xff1a EKF 位置控制 xff1a PID 姿态控制 xff1a 姿态环是直接P控制 xff0c 姿态率是PID控制 主要是滤波算法和姿态算法还有PID算法 滤波算法主要是将获取到的陀螺仪和加速
  • Jetson nano 通过 vnc 实现远程桌面控制(已在nano实现)

    目录 一 linux环境 xff1a Ubuntu 18 04 二 nano设置VNC服务 三 设置开机自启动 四 设置静态IP 一 linux环境 xff1a Ubuntu 18 04 jetson nano用的是ubuntu18 04的
  • make px4_sitl_default gazebo出错

    出现错误时候 xff0c 可以在固件文件夹下先更新下 make clean sudo apt get update sudo apt get upgrade 错误1 xff1a 编译make px4 sitl default gazebo
  • PX4 与 MAVROS 实现offboard

    目录 一 虚拟机仿真环境 1 创建工作空间 2 创建ROS节点功能包 3 运行PX4的gazebo仿真 4 启动PX4与Mavros之间的连接 二 真机控制 1 硬件连接 2 软件设置 3 出现问题 Ubuntu xff1a 20 04 x