自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 五、PX4(v1.14)多旋翼位置控制代码(mc_pos_control)分析

PX4(v1.14)多旋翼位置控制代码(mc_pos_control)分析

2024-03-24 11:55:59 653 2

原创 PX4-Bootloader移植及代码分析

PX4-Bootloader移植及代码分析

2023-12-12 23:53:15 258

原创 PX4代码分析-(四) FlightModeManager代码分析

Flight_mode模块从字面意思是飞行模式,但是我觉得可以理解为制导模块。该模块和navigator模块构成了PX4的导航和制导功能。由代码结构可以看出,flight_mode_manager模块是由一个FlightModeManager主函数及多个不同的tasks组成的。跟navigator模块不一样的是,navigator中的多个任务模式之间是独立,功能不复用。而flight_mode中的task之间很多都是重复的,通过继承的方式实现功能的复用。

2023-10-12 23:55:28 308

原创 PX4代码分析-(三)Navigator代码分析

PX4代码分析-Navigator代码分析

2023-08-20 11:19:10 389 1

原创 PX4代码分析-(一)代码工程结构

PX4代码工程结构分析

2023-08-12 17:51:57 409 1

原创 px4的IO固件升级代码分析

px4的IO固件升级代码分析

2022-02-07 20:08:01 725

原创 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 1065 6

原创 基于最新版PX4-Autopilot的follow_target代码分析

follow me模式的代码结构相应代码注释模块功能的开发总结

2021-07-31 16:52:37 741 3

原创 Nuttx移植到S5PV210

最近没有分析飞控的代码,转而研究Nuttx实时操作系统的移植。入门一个操作的移植还是挺有难度的,首先代码的框架能理清楚就很不容易了,尤其是Nuttx这种相对小众的操作系统,参考资料比较少,中文资料更少。 因为目的是学习Nuttx的移植,所以不想简单地用pixhawk飞控作为开发板来实验,那样的话总是会局限在现有的代码中。正好手头有块飞凌的开发板,对s5pv210这款mcu又比较熟悉了,避免了学习硬件的麻烦。 从零开始移植到一款新的mcu难度还是挺大的,所以...

2021-01-25 23:01:09 422

原创 基于最新版本px4的takeoff代码分析

takeoff是px4的一种飞行模式,跟之前分析的lotier部分是一种类型。 takeoff模式也是由navigator部分进行调用的,所以也就印证了上一篇说navigator相当于一个分发器的说法。 各种飞行模式实际上是根据不同的模式计算出期望的位置点,即sp_setpoint,有了这个基调,可以得出takeoff的基本功能就是获取当前位置的经纬度信息作为期望点的经纬度,然后用设置的起飞高度值作为期望点的高度。下面就看代码吧,看看代码是不是按照这个思路写的(当然是,我就是看完...

2020-11-12 23:13:01 866

原创 px4最新版navigation代码分析

navigation部分位于代码Firmware/navigator文件夹中。其中不仅仅包含navigator的代码,最主要的9种不同的飞行模式的代码,它们针对不同的飞行模式计算出不同的期望的位置,即pos_sp_triplet中的数据。navigator模块承担的更是一个调度的功能,它解析commandor模块不同的命令,然后根据现有的条件进行判断,是否能切换到制定的飞行模式,如果不行则切换到当前条件下最安全的飞行模式。 什么都不说了,直接上代码吧...

2020-11-10 23:44:00 1076

原创 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 3541 5

原创 基于px4的hc-sr04-pwm超声波模块的驱动开发

一直想实现无人的避障功能,但是px4源生代码又不支持避障,所以只能自己动手写。避障的基础条件还是获取距离数据,超声波模块就是最熟悉也是最简单的模块了。px4源生代码也支持了几种超声波模块,但是好像支持的几种又比较贵,而且都是用来当做高度使用的,不同的超声波型号都只支持一个模块的连接。总结一下,我写超声波驱动的原因就是1、想实现避障功能;2、现有的支持的超声波模块太贵;3、当前支持的超声波模块不能同时连接多个相同的模块,所以不能实现多个方向的距离探测功能。在淘宝上买了hc-sr04超声波模块,3块...

2020-09-25 09:17:38 1511

原创 在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 233

原创 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 662

原创 基于px4二次开发的断电续飞

第一次写博客,不知道写啥,贴出自己写的一段断电续飞的代码,欢迎大家给出建议。boolMission::set_current_position_as_takeoff_item(){int *mission_index_ptr = &_current_mission_index;mavlink_log_critical(_navigator->get_mavlink_log_pub(), "first item index num: %d.",*mission_index

2020-07-15 09:18:48 410

u-boot-2020.07-rc5.tar.gz

现有的uboot版本都比较老,本人基于最近版本的uboot在飞凌OK210上移植成功,提供一个模板也可以移植到其他开发板。有时间写个博客分析一下代码

2020-08-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除