![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
px4无人机
文章平均质量分 50
__Vincent_
坐标南京,欢迎px4和嵌入式爱好者线上线下交流。也接px4二次开发
展开
-
五、PX4(v1.14)多旋翼位置控制代码(mc_pos_control)分析
PX4(v1.14)多旋翼位置控制代码(mc_pos_control)分析原创 2024-03-24 11:55:59 · 1104 阅读 · 5 评论 -
PX4代码分析-(一)代码工程结构
PX4代码工程结构分析原创 2023-08-12 17:51:57 · 590 阅读 · 1 评论 -
px4的IO固件升级代码分析
px4的IO固件升级代码分析原创 2022-02-07 20:08:01 · 757 阅读 · 0 评论 -
PX4-Autopilot的串口读写驱动程序开发
最近突然感觉,能把开发程序的流程写清楚比开发程序本身还困难,所以之前写的文章都是毫无章法,想到哪写到哪,努力改变中。。。之前开发了超声波测量距离的驱动,实质是px4的IO口操作。本次的操作很显然是操作px4的串口。首先,介绍下硬件,我用的是Pixhawk2.4.8飞控,常用的串口6个,这六个串口在px4中对应的设备号如下:TELEM1:/dev/ttyS1TELEM2:/dev/ttyS2GPS:/dev/ttyS3SERIAL5/NSH:/dev/ttyS5SERIAL4:/d原创 2021-10-16 14:47:22 · 1156 阅读 · 6 评论 -
Nuttx移植到S5PV210
最近没有分析飞控的代码,转而研究Nuttx实时操作系统的移植。入门一个操作的移植还是挺有难度的,首先代码的框架能理清楚就很不容易了,尤其是Nuttx这种相对小众的操作系统,参考资料比较少,中文资料更少。 因为目的是学习Nuttx的移植,所以不想简单地用pixhawk飞控作为开发板来实验,那样的话总是会局限在现有的代码中。正好手头有块飞凌的开发板,对s5pv210这款mcu又比较熟悉了,避免了学习硬件的麻烦。 从零开始移植到一款新的mcu难度还是挺大的,所以...原创 2021-01-25 23:01:09 · 454 阅读 · 0 评论 -
基于最新版本px4的takeoff代码分析
takeoff是px4的一种飞行模式,跟之前分析的lotier部分是一种类型。 takeoff模式也是由navigator部分进行调用的,所以也就印证了上一篇说navigator相当于一个分发器的说法。 各种飞行模式实际上是根据不同的模式计算出期望的位置点,即sp_setpoint,有了这个基调,可以得出takeoff的基本功能就是获取当前位置的经纬度信息作为期望点的经纬度,然后用设置的起飞高度值作为期望点的高度。下面就看代码吧,看看代码是不是按照这个思路写的(当然是,我就是看完...原创 2020-11-12 23:13:01 · 915 阅读 · 0 评论 -
px4最新版navigation代码分析
navigation部分位于代码Firmware/navigator文件夹中。其中不仅仅包含navigator的代码,最主要的9种不同的飞行模式的代码,它们针对不同的飞行模式计算出不同的期望的位置,即pos_sp_triplet中的数据。navigator模块承担的更是一个调度的功能,它解析commandor模块不同的命令,然后根据现有的条件进行判断,是否能切换到制定的飞行模式,如果不行则切换到当前条件下最安全的飞行模式。 什么都不说了,直接上代码吧...原创 2020-11-10 23:44:00 · 1138 阅读 · 0 评论 -
PX4代码分析-(二)commander代码分析
commander位于Firmware/src/modules/commander文件夹中。该部分主要负责对地面站、遥控器以及其它部分发布的cmd命令,包括vehicle_command::VEHICLE_CMD_DO_SET_MODE、VEHICLE_CMD_DO_SET_HOME和VEHICLE_CMD_NAV_GUIDED_ENABLE、VEHICLE_CMD_NAV_TAKEOFF等命令(从名称差不多就能知道相应的命令对应的功能)。 该部分主要是完成无人机任务模式的切换,比如从loi...原创 2020-10-22 21:48:42 · 3869 阅读 · 5 评论 -
基于px4的hc-sr04-pwm超声波模块的驱动开发
一直想实现无人的避障功能,但是px4源生代码又不支持避障,所以只能自己动手写。避障的基础条件还是获取距离数据,超声波模块就是最熟悉也是最简单的模块了。px4源生代码也支持了几种超声波模块,但是好像支持的几种又比较贵,而且都是用来当做高度使用的,不同的超声波型号都只支持一个模块的连接。总结一下,我写超声波驱动的原因就是1、想实现避障功能;2、现有的支持的超声波模块太贵;3、当前支持的超声波模块不能同时连接多个相同的模块,所以不能实现多个方向的距离探测功能。在淘宝上买了hc-sr04超声波模块,3块...原创 2020-09-25 09:17:38 · 1590 阅读 · 0 评论 -
在Linux Mint 19.3中安装ROS for PX4的开发环境脚本
Linux Mint19.3是基于ubuntu的一个发型版本,PX4官网的给的ROS安装环境是在ubuntu中的自动安装脚本。但是,本人觉得ubuntu系统比较笨重,所以一直用Mint。也就得在官网的安装脚本上进行改动才能安装成功。#!/bin/bash## Bash script for setting up ROS Melodic (with Gazebo 9) development environment for PX4 on Ubuntu LTS (18.04).## It insta原创 2020-08-14 20:27:18 · 240 阅读 · 0 评论 -
px4最新版本的loiter.cpp代码分析
首先,loiter.cpp代码在src/modules/navigator中,也就是说它是一种自动飞行的模式。对应到地面站中,就是hold模式,可以保持位置不动。跟position模式的区别就是这个模式除了切换模式的指令外,不接受其他的指令。如在在loiter模式中拨动遥控器或者地面站中虚拟的拨杆,就会自动切出该模式,变成positon模式。loiter.cpp文件中主要有四个函数Loiter::on_activation(),Loiter::on_active(),Loiter::set_loiter原创 2020-07-30 23:44:16 · 693 阅读 · 0 评论