
无人机-pixhawk-PX4
文章平均质量分 56
诗筱涵
自主无人机 微信公众号:诗筱涵 技术交流群:960668018 邮箱:1372740910@qq.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
开源飞控PX4姿态控制算法详解(转载,个人觉得写得最详细的一篇)
这里一定要注意我们所得的四元数qe_tilt并不能参与四元数的链式乘法运算,因为他虽然代表了B系到M系的旋转,但是旋转轴却是由N系下的两个向量叉乘计算所得,也就是在N系下,而不在B系或者M系下,解决此问题有两种方法,一种是先将旋转轴通过与旋转矩阵的运算转换到B系后再用来表示四元数。而倾斜和旋转两种运动的原理是不同的,倾斜运动是由不同电机差速运动产生的升力差形成的力矩驱使的,而旋转运动是由不同电机差速运动产生的反扭矩驱使的,前者在数值上往往要比后者大很多。转载 2025-03-29 21:27:12 · 1031 阅读 · 0 评论 -
飞PX4的SLAM定位时查看飞控端ODOMETRY这个mavlink消息需要注意设置MAV_ODOM_LP参数
飞PX4的SLAM定位时,包括飞T265时,想查看飞控端ODOMETRY这个mavlink消息,确认位姿传入正确,注意需要把飞控参数的MAV_ODOM_LP设置为1。现在清楚为什么以前飞T265时,有时有ODOMETRY这个mavlink消息有时没有了。利用视觉或运动捕捉系统进行位置估计 | PX4 自动驾驶用户指南 (v1.14)原创 2025-03-26 17:38:01 · 595 阅读 · 0 评论 -
PX4 InertialNAV Filter 与 EKF2概论
本文是作者于2017年1月8日在长安大学向广大无人机研发从业者、研究人员所开设的课程讲稿。当中有一处错误,即第五页中的DCM微分方程等号右边需添加一负号,详细情况可参考文末相关文献。有谬误之处还望广大从业人员积极指正批评,本人不胜感激!科普 | PX4 InertialNAV Filter 与 EKF2概论。若有相关合作事项请联系吴荩老师。转载 2025-03-08 14:18:24 · 132 阅读 · 0 评论 -
涉及PX4视觉位姿定位的所有相关飞控参数
涉及PX4视觉位姿定位的所有相关飞控参数(应该是),也是无意中在PX4源码里看到这么一个yaml文件。原创 2025-02-25 19:31:19 · 364 阅读 · 0 评论 -
对PX4姿态控制器代码的解读(deepseek分析结果)
姿态控制器的代码在文件Firmware\src\modules\mc_att_control\AttitudeControl\AttitudeControl.cpp的update函数中 ( https://mp.weixin.qq.com/s?这段代码是PX4飞控中姿态控制的核心部分,主要用于计算飞行器从当前姿态调整到期望姿态所需的角速率设定值。这段代码体现了多旋翼无人机姿态控制的典型设计:优先保证飞行稳定性(横滚/俯仰),再兼顾偏航控制,并通过前馈提升动态性能。原创 2025-02-20 13:39:46 · 1616 阅读 · 0 评论 -
PX4代码解析:姿态期望生成
原创 无人机系统技术 无人机系统技术 2019年09月14日 20:00引言关于PX4源码中控制器的设计部分我们前几讲已经对位置控制、姿态控制等核心函数进行了详细分析,逐行解释。今天我们就将剩下的最后一部分内容:位置控制器输出到姿态控制器输入的转换部分做一个解读。转换部分的函数就一个:vehicle_attitude_setpoint_s thrustToAttitude(const Vector3f &thr_sp, const float yaw_sp)在Firmware\src\modules\m转载 2025-02-19 00:03:58 · 137 阅读 · 0 评论 -
借助px4日志简便估计SLAM位姿时延操作方法
为了看清具体时延,可以进一步放大,对比时间戳差值,如下图所示,可以看到横轴的时间相差大概在200ms左右,可以粗略认为是SLAM位姿的时延是200ms左右,如果我们飞PX4的SLAM定位时,想修改PX4飞控中的EKF2_EV_DELAY参数,使得它更为准确,也可以基于此进行填写,EKF2_EV_DELAY参数含义是Vision Position Estimator delay relative to IMU measurements,它的可修改范围是0-300ms。我们理想中的无人机定点应该是纹丝不动的。原创 2025-01-30 00:18:14 · 849 阅读 · 0 评论 -
视觉位姿是通过VISION_POSITION_ESTIMATE或者ODOMETRY消息输入给飞控
从机载端电脑或者其他信息可以得到视觉SLAM输出的位姿,可以通过mavlink 协议的VISION_POSITION_ESTIMATE或者ODOMETRY消息输入给飞控,区别在于VISION_POSITION_ESTIMATE只包含位置信息,而ODOMETRY还可以得到速度、姿态和姿态角速度等。转载 2025-01-25 11:36:23 · 141 阅读 · 0 评论 -
基于px4飞控日志进行SLAM估计位置和GPS经纬度的对比分析
我们平常基于PX4室外实飞SLAM定位时,想评估分析下SLAM估计的位置如何,我们可以借助于GPS数据作为位置真值进行简单对比分析(RTK更好,但是对于很多普通学生而言可能没有RTK,而GPS模块很便宜),这里介绍下,如何基于px4飞控日志进行SLAM估计位置和GPS经纬度的对比分析,这里的前提是无人机上装有GPS模块并接在了PX4飞控上,但是位置来源选择的是来自于视觉,不是GPS,也就是基于SLAM位姿进行定位飞行,而飞控日志会同时也记录下GPS的经纬高信息。10-7经度或纬度。原创 2024-11-03 13:28:07 · 1335 阅读 · 0 评论 -
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 · 767 阅读 · 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 · 1455 阅读 · 2 评论 -
为什么有的新手飞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 · 2157 阅读 · 1 评论 -
关于为什么经常出现一些初学者飞T265指点出现无人机起飞后偏航会转90度的情况
正常的T265定点,从飞控层面看,机头初始方向是朝东的,但是最开始的一些早期的功能包,是使得T265定点的机头初始方向是朝北的,也好理解,机体是北东地坐标系,朝北时对机体而言偏航为0,这么飞T265定点没有问题,但是飞T265指点,由于板载端发期望位置和偏航都是基于东北天坐标系发的,一般默认期望偏航就是0了,这个0自然也是板载东北天坐标系下的偏航为0,转到北东地坐标系下,就会变为期望偏航是90度了,而他们原本用的T265定点机头初始方向是正北,现在给了个正东的期望偏航,自然就会转90度。原创 2024-06-07 22:20:57 · 1048 阅读 · 0 评论 -
PX4给仿真器只会发送一个HIL_ACTUATOR_CONTROLS的MAVLink消息
PX4给仿真器只会发送一个HIL_ACTUATOR_CONTROLS的MAVLink消息,熟悉PX4的应该知道这个对应的uORB消息是actuator_outputs.msg,也就是姿态控制器最后的输出控制量。这里也就意味着,混控是在仿真器中进行的,仿真器中也包含电机的模型。原创 2024-06-06 18:27:20 · 389 阅读 · 0 评论 -
关于哪些地方用东北天坐标系哪些地方用北东地坐标系
关于哪些地方用东北天坐标系哪些地方用北东地坐标系。原创 2024-06-06 09:39:56 · 307 阅读 · 0 评论 -
mavlink中的base_mode和custom_mode含义说明
custom_mode 用于表示自定义的飞行模式,比如px4和apm都有各自的一些定义的飞行模式,不完全相同,具体可以看注意不是网上看到的一些说base_mode是当前模式,custom_mode是目标模式,不是的!!!原创 2024-06-06 00:01:30 · 1126 阅读 · 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 · 1195 阅读 · 0 评论 -
mavros中实现东北天坐标系到北东地坐标系转换的代码
【代码】mavros中实现东北天坐标系到北东地坐标系转换的代码。原创 2024-06-05 22:48:37 · 411 阅读 · 0 评论 -
QGC的mavlink inspector显示的是自己接收到的mavlink消息
QGC的mavlink inspector显示的是自己接收到的mavlink消息,不是也不包含自己发送的mavlink消息,所以像这个心跳包mavlink是飞控发出的心跳包,不是QGC发出的心跳包。原创 2024-06-02 12:57:03 · 462 阅读 · 0 评论 -
通过mavros实现无人机航点飞行(mission模式)详细讲解
飞航线本质可以理解为执行一个又一个MAV_CMD命令,每个航点对应一个MAV_CMD命令,第一个都得默认是TAKE OFF(如果飞机没有起飞,则切到mission之后会自动起飞并飞往第一个航点,如果飞机已经起飞也没有关系,切mission后则是直接飞往第一个航点,注意这个点的位置并不需要在无人机当前位置正上方),这里的uint16 command也就是这个意思,值为对应要执行的MAV_CMD的消息ID值,就是每个航点实际对应执行的命令。原创 2024-05-25 18:46:47 · 4256 阅读 · 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 · 693 阅读 · 0 评论 -
PX4 1.14版本后EKF2_AID_MASK参数已经弃用
改用EKF2_EV_CTRL参数了。原创 2025-01-18 08:49:47 · 1926 阅读 · 8 评论 -
mavros的一些可用命令,不基于话题与服务
这个命令可以使无人机起飞到当前位置上方5米。这个命令可以使无人机解锁。原创 2024-05-20 11:03:23 · 556 阅读 · 0 评论 -
现在知道mavros终端有时出现的黄色警告Unexpected command是什么意思了,后面所跟数字就对应的具体的MAV_CMD的ID
现在知道mavros终端有时出现的黄色警告Unexpected command是什么意思了,后面所跟数字就对应的具体的MAV_CMD的ID。可能发的这个MAV_CMD不太符合要求或者哪项的值不太对。原创 2024-05-19 13:19:06 · 620 阅读 · 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 · 2492 阅读 · 0 评论 -
通过mavros实现无人机航点飞行(mission模式)示例代码
通过 mavros/mission/push 这个服务进行航点上传。通过mavros实现无人机航点飞行示例代码。原创 2024-05-12 08:54:40 · 999 阅读 · 0 评论 -
跑垂起固定翼的gazebo仿真 QGC飞往指定地图点
在无人机飞到地图点的过程中(也可以到达地图点悬停后),我们依旧可以继续左键点击选择新的地图点,确认之后无人机会立马调转航向飞向最新的地图点,不再飞向之前的地图点。想垂起返航我们可以点这里的return,并右滑滑窗确认,垂起会先原地爬升到30米,再往回飞到起飞点上方,然后垂直降落,并自动上锁。此时在QGC地图上选好想让无人机飞到的地图点,并鼠标左键点击,会出现三个选项,选择Go to location。QGC下方会出现个滑窗,让你确认,往右滑动滑窗确认之后,垂起无人机就会转头开始飞往所选择的地图点。原创 2024-05-08 08:30:17 · 935 阅读 · 0 评论 -
PX4可以设置最大偏航角速度
话说这个能限制offboard下的偏航角速度么?感觉可能不是,开头是MC不是MPC...可以看到单位是角度,不是弧度,默认值是最大200度每秒。看到可以设置最大偏航角速度。原创 2024-04-23 15:50:12 · 653 阅读 · 0 评论 -
关于PX4飞控为什么也适合做无人车无人船
PX4飞控呢,则是正好和板卡通信有现成的mavlink协议,可以基于串口,PX4飞控,也正好可以输出PWM波控制电机转动,这种情况下用PX4控制小车可能比用普通的STM32控制小车,在开发量上相对小一点,至少不用自己折腾一些串口上的通信协议等等的,还有一些PID量的调节可能也方便许多,不用自己再去专门写相应的PID代码,当然我们不用PX4,清楚上述原理,也是可以自己拿个普通的STM32板子驱动小车的,并且是接收NX的指令控制小车。中间什么PID就不说了。原创 2024-03-19 22:27:23 · 1210 阅读 · 0 评论 -
offboard模式下不能通过service直接使飞控上锁
offboard模式下不能通过service直接使飞控上锁,想让无人机落地上锁有两种方式,一是通过代码切出offboard比如切位定点或者自稳,再通过代码上锁是可以的。一种是offboard模式下通过代码切为land模式,这样无人机也会降落,触地后自动上锁。这也是为什么普罗米修斯里面降落有两种方式的原因。原创 2024-03-04 17:12:48 · 630 阅读 · 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 · 1101 阅读 · 4 评论 -
QGC通过wifi经过板卡mavros连接px4飞控方法
QGC连接的时候,选择UDP,然后填写上面画红线的端口,就是可以自己任意写的端口。这个画红线的端口可以自己改,IP是自己笔记本的IP。px4.launch是这样的,就改了红框处的内容。然后点确认,然后连接就可以了。原创 2024-02-28 08:51:15 · 3143 阅读 · 0 评论 -
把PX4中横向水平速度垂直速度限制改小
把PX4中横向水平速度垂直速度限制改小 可以修改的参数如下。原创 2024-02-24 11:32:18 · 566 阅读 · 0 评论 -
ROS2上mavros的安装与使用
二进制安装命令运行install_geographiclib_datasets.sh最后一句sudo ./install_geographiclib_datasets.sh需要根据实际网络环境等待一会儿,运行完终端显示如下。原创 2024-02-18 07:43:54 · 3827 阅读 · 4 评论 -
通过MAVROS让PX4飞控输出pwm控制舵机转动
8个PWM输出理论上可以控制8个舵机,舵机就三根线,电源 地 和PWM信号线。发的这个mavros话题 /mavros/actuator_control。我看了下他们用的这个口,和电机电调输出不是一个口。应该和巡线小车的舵机一个原理!这个口好像就是专门用来控制舵机的。是不是机械臂的控制也是用的这个。控制舵机所用的飞控的口。原创 2024-02-21 20:45:13 · 4339 阅读 · 17 评论 -
运行仿真出现 Resource not found: px4
运行仿真出现 Resource not found: px4下图这样的现象参考下面博文,在一个终端运行下面两个命令,再在此终端运行 roslaunch px4 mavros_posix_sitl.launch 就可以正常打开无人机的gazebo仿真了。 Ubuntu18.04下基于ROS和PX4的无人机仿真平台的基础配置搭建(XTDrone的)_TYINY的博客-优快云博客一定注意路径前面的~不要省了,或者写绝对路径。export ROS_PACKAGE_PATH=$R..原创 2021-10-30 07:56:51 · 4799 阅读 · 4 评论 -
PX4 offboard模式能接收的mavros指令(转载,如果同时发送期望位置和期望速度,是位置控制,速度作为前馈。现在才真正理清楚)
转载自:PX4 offboard模式能接收的mavros指令_benchuspx的博客-优快云博客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 · 3817 阅读 · 1 评论 -
关于无人机的悬停油门是否需要设置?
我看了下我的P200的 MPC_THR_HOVER 参数,就是默认的50%那看来是自己会靠PID进行调节了?原创 2021-09-23 14:04:39 · 1026 阅读 · 4 评论 -
把gazebo ROS PX4的关系彻底弄清楚
把gazeboROS PX4的关系彻底弄清楚PX4和ROS之前的关系还是很明晰的,不管真机仿真都是通过MAVROS来的。那么剩下的就是ROS和gazebo PX4和gazebo了。首先参照这里说的,gaxebo是独立于ROS的,ROS的gazebo功能包应该只能算插件。https://blog.youkuaiyun.com/sinat_16643223/article/details/116429085...原创 2021-09-02 11:14:01 · 3400 阅读 · 0 评论 -
gazebo我估计还是得看官网文档,就像PX4去看官方用户指南其实很多已经讲了
gazebo我估计还是得看官网文档,就像PX4去看官方用户指南其实很多已经讲了https://www.bilibili.com/video/BV1uk4y1o7Z1https://www.gazebosim.cn/tutorials.html原创 2021-09-02 10:30:49 · 281 阅读 · 0 评论