无人机-mavros控制PX4 offboard
文章平均质量分 57
mavros px4
诗筱涵
邮箱:1372740910@qq.com 微信公众号:诗筱涵 技术交流群:960668018
展开
-
mavros中的gcs_url:=“udp://:14556@192.168.1.106:14551“含义
gcs_url是用来进行mavlink消息的UDP转发的, :14555其实对应的是本地IP和端口,本地IP省略写了,192.168.1.106:14551是QGC所处的远端IP和UDP通信端口,本地端口一般不需要改,或者任意给个端口就行,远端IP和端口需要和QGC保持一致。px4 gazebo仿真时用的,也是这个含义。再看这个图也会清晰得多。原创 2024-07-04 08:25:36 · 140 阅读 · 0 评论 -
mavlink中的base_mode和custom_mode
base_mode和custom_mode是mavlink心跳包中很重要的组成部分,用来反应无人机当前的模式状态。QGC地面站如何知道无人机当前是否解锁,处于什么飞行模式,就是依靠心跳包里的base_mode和custom_mode,/mavros/state话题里的一些状态项的值,也是来自于心跳包里的base_mode和custom_mode。原创 2024-06-16 11:17:47 · 632 阅读 · 0 评论 -
为什么有的新手飞T265指点会偏航转90度?基于mavros源码详解px4-mavros中的ENU NED FLU FRD坐标系及位姿变换
首先介绍两个基本概念,body系和local系,body系指无人机机身,原点在机体上,随无人机移动,常见的有前左上FLU,前右下FRD,local系则是以客观世界中的一个静止的点为原点(一般是无人机起飞点),常见的有东北天坐标系ENU和北东地坐标系NED。这些都是右手系。mavros作为连接飞控端和ros端的程序,有这么四个坐标系,即飞控端的body系和local系及ros端的body系和local系:fcu_body,fcu_local,ros_body,ros_local。其中fcu_body又叫原创 2024-06-09 13:31:04 · 1194 阅读 · 1 评论 -
关于为什么经常出现一些初学者飞T265指点出现无人机起飞后偏航会转90度的情况
正常的T265定点,从飞控层面看,机头初始方向是朝东的,但是最开始的一些早期的功能包,是使得T265定点的机头初始方向是朝北的,也好理解,机体是北东地坐标系,朝北时对机体而言偏航为0,这么飞T265定点没有问题,但是飞T265指点,由于板载端发期望位置和偏航都是基于东北天坐标系发的,一般默认期望偏航就是0了,这个0自然也是板载东北天坐标系下的偏航为0,转到北东地坐标系下,就会变为期望偏航是90度了,而他们原本用的T265定点机头初始方向是正北,现在给了个正东的期望偏航,自然就会转90度。原创 2024-06-07 22:20:57 · 370 阅读 · 0 评论 -
关于哪些地方用东北天坐标系哪些地方用北东地坐标系
关于哪些地方用东北天坐标系哪些地方用北东地坐标系。原创 2024-06-06 09:39:56 · 157 阅读 · 0 评论 -
mavlink中的base_mode和custom_mode含义说明
custom_mode 用于表示自定义的飞行模式,比如px4和apm都有各自的一些定义的飞行模式,不完全相同,具体可以看注意不是网上看到的一些说base_mode是当前模式,custom_mode是目标模式,不是的!!!原创 2024-06-06 00:01:30 · 606 阅读 · 0 评论 -
QGC上传航点到px4飞控 mavlink通信流程
注意QGC返回哪个航点的MISSION_ITEM或者MISSION_ITEM_INT取决于飞控发的MISSION_REQUEST或者MISSION_REQUEST_INT里seq的值,MISSION_ITEM或者MISSION_ITEM_INT里面也有seq这一项,可以用来再确认下是不是对应seq的航点。实际翻译自这里 https://mavlink.io/en/services/mission.html#mission-protocol。原创 2024-06-05 23:06:11 · 497 阅读 · 0 评论 -
mavros中实现东北天坐标系到北东地坐标系转换的代码
【代码】mavros中实现东北天坐标系到北东地坐标系转换的代码。原创 2024-06-05 22:48:37 · 155 阅读 · 0 评论 -
QGC的mavlink inspector显示的是自己接收到的mavlink消息
QGC的mavlink inspector显示的是自己接收到的mavlink消息,不是也不包含自己发送的mavlink消息,所以像这个心跳包mavlink是飞控发出的心跳包,不是QGC发出的心跳包。原创 2024-06-02 12:57:03 · 132 阅读 · 0 评论 -
通过mavros实现无人机航点飞行(mission模式)详细讲解
飞航线本质可以理解为执行一个又一个MAV_CMD命令,每个航点对应一个MAV_CMD命令,第一个都得默认是TAKE OFF(如果飞机没有起飞,则切到mission之后会自动起飞并飞往第一个航点,如果飞机已经起飞也没有关系,切mission后则是直接飞往第一个航点,注意这个点的位置并不需要在无人机当前位置正上方),这里的uint16 command也就是这个意思,值为对应要执行的MAV_CMD的消息ID值,就是每个航点实际对应执行的命令。原创 2024-05-25 18:46:47 · 1556 阅读 · 1 评论 -
ubuntu18.04下起QGC报错 GLIBC_2.29 not found解决过程
ubuntu18.04下起QGC说 GLIBC_2.29 not found解决过程。换成老一点的QGC版本,比如换了个4.0.3版本的QGC,就可以正常启动了。原创 2024-05-25 09:00:46 · 345 阅读 · 0 评论 -
PX4 1.14版本后EKF2_AID_MASK参数已经弃用
改用EKF2_EV_CTRL参数了。原创 2024-05-23 22:40:34 · 315 阅读 · 0 评论 -
mavros的一些可用命令,不基于话题与服务
这个命令可以使无人机起飞到当前位置上方5米。这个命令可以使无人机解锁。原创 2024-05-20 11:03:23 · 283 阅读 · 0 评论 -
现在知道mavros终端有时出现的黄色警告Unexpected command是什么意思了,后面所跟数字就对应的具体的MAV_CMD的ID
现在知道mavros终端有时出现的黄色警告Unexpected command是什么意思了,后面所跟数字就对应的具体的MAV_CMD的ID。可能发的这个MAV_CMD不太符合要求或者哪项的值不太对。原创 2024-05-19 13:19:06 · 249 阅读 · 0 评论 -
通过MAVROS发送command_long类型mavlink消息方式介绍
命令中,long代表发送的command_long类型指令,192指嵌套的具体的MAV_CMD消息ID,也就是对应的MAV_CMD_DO_REPOSITION这个消息,最后跟的7个数字也就是MAV_CMD_DO_REPOSITION消息里7项对应的值,和cmd_long.py里对这7项的赋值一样,最后四项对应的偏航,经度,纬度,高度,我们就赋值对应的偏航,经度,纬度,高度数值,注意单位,没有用到的参数可以赋值为0。MAV_CMD里ID是192的MAV_CMD_DO_REPOSITION消息的结构定义如下。原创 2024-05-16 23:27:41 · 1016 阅读 · 0 评论 -
基于px4ctrl的vins-ego基础上发送/mavros/setpoint_position/local话题给飞控,无人机在offboard模式下不会响应
有人反应基于px4ctrl的vins-ego基础上发送/mavros/setpoint_position/local话题给飞控,无人机在offboard模式下没有反应,这个是正常的,因为基于px4ctrl的vins-ego是发期望姿态+推力给飞控,抛弃了飞控的位置环和速度环,而且没有把vins位姿发给飞控,此时就算通过mavros给飞控发期望位置,也缺少当前位置形成不了位置环,所以也没法执行,所以为什么没有反应。原创 2024-05-14 09:17:18 · 303 阅读 · 1 评论 -
通过mavros实现无人机航点飞行(mission模式)示例代码
通过 mavros/mission/push 这个服务进行航点上传。通过mavros实现无人机航点飞行示例代码。原创 2024-05-12 08:54:40 · 514 阅读 · 0 评论 -
mavlink给的UDP发送接收示例代码,也是基于socket的
mavlink给的UDP发送接收示例代码,也是基于socket的。原创 2024-05-10 14:31:12 · 184 阅读 · 0 评论 -
MAVLink 实战一:通过UDP发送MAVLink消息
UDP是面向无连接的不可靠数据传输,不想TCP那样有三次握手,UDP只负责发送,不负责确认对方是否收到数据,也没有重传机制,这些都需要用户自己实现。为了与QGC建立一个通信,我们创建一个“无人机”,这个“无人机”当然不是一个真实的,但能够模仿无人机发送一些基本数据,最核心的数据就是呼吸包——Heartbeat消息,这个消息包含了无人机基本信息如类型、id、模式等等。这个类是用户必须实现的,它定义了底层数据传输的接口,这里我们选择了UDP传输,故这个类就是实现了UDP连接的初始化以及数据发送接口函数——转载 2024-05-08 15:20:48 · 245 阅读 · 0 评论 -
跑垂起固定翼的gazebo仿真 QGC飞往指定地图点
在无人机飞到地图点的过程中(也可以到达地图点悬停后),我们依旧可以继续左键点击选择新的地图点,确认之后无人机会立马调转航向飞向最新的地图点,不再飞向之前的地图点。想垂起返航我们可以点这里的return,并右滑滑窗确认,垂起会先原地爬升到30米,再往回飞到起飞点上方,然后垂直降落,并自动上锁。此时在QGC地图上选好想让无人机飞到的地图点,并鼠标左键点击,会出现三个选项,选择Go to location。QGC下方会出现个滑窗,让你确认,往右滑动滑窗确认之后,垂起无人机就会转头开始飞往所选择的地图点。原创 2024-05-08 08:30:17 · 289 阅读 · 0 评论 -
PX4可以设置最大偏航角速度
话说这个能限制offboard下的偏航角速度么?感觉可能不是,开头是MC不是MPC...可以看到单位是角度,不是弧度,默认值是最大200度每秒。看到可以设置最大偏航角速度。原创 2024-04-23 15:50:12 · 282 阅读 · 0 评论 -
ROS2下的px4 offboard示例代码变了
ROS 2 Offboard 控制示例 | PX4 自动驾驶用户指南 (main)原创 2024-03-28 19:49:19 · 573 阅读 · 1 评论 -
使/mavros/imu/data_raw话题发出来而且话题频率在200hz左右,给vins订阅使用
启动px4.launch之后imu话题只有/mavros/imu/data发出来,而且话题频率只有15hz,/mavros/imu/data_raw话题没有发出来,可以通过下面命令使得/mavros/imu/data_raw话题发出来而且话题频率在200hz左右。这么做主要是给vins使用。原创 2024-03-25 11:15:10 · 465 阅读 · 0 评论 -
关于PX4飞控为什么也适合做无人车无人船
PX4飞控呢,则是正好和板卡通信有现成的mavlink协议,可以基于串口,PX4飞控,也正好可以输出PWM波控制电机转动,这种情况下用PX4控制小车可能比用普通的STM32控制小车,在开发量上相对小一点,至少不用自己折腾一些串口上的通信协议等等的,还有一些PID量的调节可能也方便许多,不用自己再去专门写相应的PID代码,当然我们不用PX4,清楚上述原理,也是可以自己拿个普通的STM32板子驱动小车的,并且是接收NX的指令控制小车。中间什么PID就不说了。原创 2024-03-19 22:27:23 · 427 阅读 · 0 评论 -
pixhawk(PX4)的串口使用总结
首先pixhawk 4上面只有四个串口,一个给了GPS,一个是TELEM1 一个是TELEM2 一个是UART&I2C B 对应接口可以参照下面holybro的pxihawk4的飞控板。一般TELEM1插wifi数传,TELEM2插板载计算机,PX4的用户指南默认这么设置的https://blog.csdn.net/sinat_16643223/article/details/119535123...原创 2021-08-09 13:28:54 · 8484 阅读 · 27 评论 -
offboard模式下不能通过service直接使飞控上锁
offboard模式下不能通过service直接使飞控上锁,想让无人机落地上锁有两种方式,一是通过代码切出offboard比如切位定点或者自稳,再通过代码上锁是可以的。一种是offboard模式下通过代码切为land模式,这样无人机也会降落,触地后自动上锁。这也是为什么普罗米修斯里面降落有两种方式的原因。原创 2024-03-04 17:12:48 · 469 阅读 · 0 评论 -
切不进offboard的常见原因之一:COM_OF_LOSS_T 参数为0
遇见很多次了,代码等都没有问题的情况下(以前在其他机子上飞得没有问题),仍切不进offboard,很可能是COM_OF_LOSS_T 参数为0。切不进offboard的常见原因之一:COM_OF_LOSS_T 参数为0 ,改为非0即可。看了下PX4官方手册,offboard参数就这几个。原创 2024-03-01 23:24:44 · 573 阅读 · 4 评论 -
QGC通过wifi经过板卡mavros连接px4飞控方法
QGC连接的时候,选择UDP,然后填写上面画红线的端口,就是可以自己任意写的端口。这个画红线的端口可以自己改,IP是自己笔记本的IP。px4.launch是这样的,就改了红框处的内容。然后点确认,然后连接就可以了。原创 2024-02-28 08:51:15 · 1136 阅读 · 0 评论 -
mavros与px4飞控连不上检查方法
2 在用cat命令串口有数据输出的基础上,/mavros/state话题的conneted项为false,此时检查px4.launch里的串口驱动文件名称是否正确,波特兰是否和飞控中对应串口波特率一致。px4.launch中的sys_id和飞控中mavlink口的sys_id是否一致(集群多机时会出现这种情况)1 用cat命令查看串口有没有数据输出,如果没有,说明可能是串口接线不对(如tx和rx接反了等等)或者飞控mavlink口设置不对没有mavlink数据输出。首先检查基本的硬件接线。原创 2024-02-26 12:29:35 · 632 阅读 · 0 评论 -
发了mavros/vision_pose/pose,但是飞控没有接收到,检查步骤
3 检察发布mavros/vision_pose/pose话题时是否给时间戳赋值了。1 mavros/state 检查mavros和飞控是否连接上。2 检查是否安装了mavros_extras功能包。原创 2024-02-26 06:02:47 · 669 阅读 · 0 评论 -
mavros_extras功能包没有装的话,发/mavros/vision_pose/pose话题,是传不到飞控的
mavros_extras功能包没有装的话,发/mavros/vision_pose/pose话题,是传不到飞控的,这个没有转过去,/mavros/local_position/pose也不会发出来。原创 2024-02-26 05:56:46 · 574 阅读 · 1 评论 -
把PX4中横向水平速度垂直速度限制改小
把PX4中横向水平速度垂直速度限制改小 可以修改的参数如下。原创 2024-02-24 11:32:18 · 416 阅读 · 0 评论 -
关于MAVROS话题里面坐标系项coordinate_frame的赋值
关于MAVROS话题里面坐标系项coordinate_frame的赋值 好像一般赋值为1?确实是影响坐标系的,本地系和机体系。原创 2024-02-24 10:37:07 · 425 阅读 · 0 评论 -
ROS2上mavros的安装与使用
二进制安装命令运行install_geographiclib_datasets.sh最后一句sudo ./install_geographiclib_datasets.sh需要根据实际网络环境等待一会儿,运行完终端显示如下。原创 2024-02-18 07:43:54 · 1146 阅读 · 1 评论 -
通过MAVROS让PX4飞控输出pwm控制舵机转动
8个PWM输出理论上可以控制8个舵机,舵机就三根线,电源 地 和PWM信号线。发的这个mavros话题 /mavros/actuator_control。我看了下他们用的这个口,和电机电调输出不是一个口。应该和巡线小车的舵机一个原理!这个口好像就是专门用来控制舵机的。是不是机械臂的控制也是用的这个。控制舵机所用的飞控的口。原创 2024-02-21 20:45:13 · 1943 阅读 · 16 评论 -
mavros操作飞机时方向位置改为机体坐标系下指令(转载)
转载自:mavros操作飞机时方向位置改为机体坐标系下指令_渡之的博客-CSDN博客前面试了很多,看官网里的说明用 /mavros/setpoint_raw/local"里的frame_id改为"base_link" 不行又直接发mavros_msgs/PositionTarget 修改里面的type_mask把忽略的都加上,但还是没用,飞机依然按照全局位置飞行最后搞了好几天,才弄懂,只需要一行代码就搞定了。节点声明ros::NodeHandle node;node.setParam转载 2021-10-30 10:16:23 · 1058 阅读 · 1 评论 -
ubuntu mate 20.04 二进制安装mavros
我现在发现ros noetic上已经有mavros的二进制功能包了所以可以用命令sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras然后运行 git clone 马熙/mavros然后在克隆下来的mavros文件夹里面找到这个红框内的sh脚本把这个 install_geographiclib_datasets.sh 复制放到根目录下面然后打开终端 运行 chmod 777 install_geograp原创 2021-10-21 18:02:07 · 1696 阅读 · 1 评论 -
PX4 offboard模式能接收的mavros指令(转载,如果同时发送期望位置和期望速度,是位置控制,速度作为前馈。现在才真正理清楚)
转载自:PX4 offboard模式能接收的mavros指令_benchuspx的博客-CSDN博客PX4 offboard模式能接收的mavros指令benchuspx 2021-04-16 10:51:52187 正在上传…重新上传取消 收藏分类专栏: px4 无人机开发 ros版权px4 同时被 3 个专栏收录4 篇文章 0 订阅订阅专栏无人机开发15 篇文章 0 订阅订阅专栏ros14 篇文章 0 订阅订阅专栏以...转载 2021-10-13 16:17:54 · 3320 阅读 · 1 评论 -
关于MAVROS版本不对导致的错误。md5sum
关于MAVROS版本不对导致的错误。看到周围人有两次这样的了之前说是MAVROS版本不对,可能升级了或者啥的,但总感觉不对劲。搜了下 have datatype/md5sum 这个报错https://blog.csdn.net/rerryrret/article/details/89267446阿木论坛上也有一些https://bbs.amovlab.com/forum.php?mod=viewthread&tid=27168https...原创 2021-09-01 11:23:12 · 776 阅读 · 0 评论 -
对普罗米修斯的本质的理解和分析
原本是直接对mavros话题进行赋值,普罗米修斯只是做了下封装,变为对类赋值,或者是一个统一的话题?再类把值给对应的mavros话题发出去。本质就是这样。所以用不用普罗米修斯都可以。(可能还需要再回顾讲清楚一点)切模式比如对无人机的控制或者期望指令信息先都统一赋值给这个话题,普罗米修斯的代码再帮你把这些期望指令信息分解到各个对应的mavros话题上面,发给飞控。https://gitee.com/amovlab/Prometheus/blob/master/Modules/common/m..原创 2021-08-28 07:32:23 · 729 阅读 · 1 评论