PX4飞控学习(五)
来源:互联网 发布:大数据能做什么 编辑:程序博客网 时间:2024/05/22 12:43
PX4的应用
- 程序入口为 程序名_main(int argc, char *argv[])这里实现应用参数。
- 主循环函数在
task_main(int argc, char *argv[])
thread_main(int argc, char *argv[])等函数中。 - 主循环函数通过
orb_subscribe(const struct orb_metadata *meta, const void *data)
orb_check(int handle, bool *updated)
orb_copy(const struct orb_metadata *meta, int handle, void *buffer)
获取系统中的应用消息机身的状态消息。
orb_advertise(const struct orb_metadata *meta, const void *data)
orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data)
发布消息。
控制程序 commander
commander功能:
1. 遥控,地面站(mavlink)对飞机模式的控制。
2. 校准程序启动
3. 报警器和 rgbled灯的控制
src/modules/commander/commander.cpp
- commander_main(int argc, char *argv[])
“start”:通过px4_task_spawn_cmd ()启动 commander_thread_main()。
“stop” :修改thread_should_exit 跳出 commander_thread_main()
“status” :调用print_status()输出飞控状态
“calibrate”:校准程序 ,后面加以下参数:
“mag”(地磁)
“accel”(加速度计)
“gyro”(角速度计)
“level”(不清楚这个)
“esc”(电调)
“airspeed”(风速?)
“check”:检测
“arm”:激活
“disarm”:待机
“takeoff”:起飞(这里需满足一些条件)
“land”:降落(真心不知道这个参数什么时候用)
“transition” :好像是垂直起飞的飞行器才会用到的东西 具体没细看。
“mode” :飞机模式,后面加以下参数:
“manual” 手动模式
“altctl” 高度控制模式
“posctl” 位置控制模式(gps模式)
“auto:mission” 自动驾驶任务模式(地面站下发任务坐标)
“auto:loiter” 自动悬停模式
“auto:rtl” 自动降落(rtl : return to land)
“acro” 杂技模式?
“offboard” 板外控制(控制权交地面站)
“stabilized” 稳定模式(姿态控制模式)
“rattitude” 不明白这个模式请教高手
“auto:takeoff” 自动起飞
“rattitude” 不明白这个模式请教高手
“auto:takeoff” 自动起飞
“auto:land” 自动降落 (和rtl不一样的是否回到home点)
“lockdown” : 后加 “on” 或者 “off” 没试验过 commander_thread_main(int argc, char *argv[])
while (!thread_should_exit) {..........}
无限循环,流程以后补上。
- set_main_state_rc(struct vehicle_status_s *status_local, ……)
遥控器控制飞行器状态,流程图如下: bool handle_command(struct vehicle_status_s *status_local, ……..)
解码mavlink命令,调用main_state_transition()改变飞机状态( set_main_state_rc()也调用该函数 )void set_control_mode()
两个控制飞机的重要参数static struct vehicle_status_s status = {};static struct vehicle_control_mode_s control_mode = {};
通过main_state_transition()改变status参数,通过status参数改变control_mode参数,control_mode传递给pos_ctrl ,att_ctrl 改变飞机的控制模式。
不想使用PX4的控制模式, 就需要更改 与control_mode 有关的函数
阅读全文
0 0
- PX4飞控学习(五)
- PX4飞控学习(一)
- PX4飞控学习(二)
- PX4飞控学习(三)
- PX4飞控学习(四)
- px4学习
- px4源码学习五--固定翼位置控制模块
- px4飞控源码总结
- px4飞控源码总结
- PX4飞控之自主返航(RTL)控制逻辑
- PX4飞控之位置控制(1)整体架构
- px4::init_once();和px4::init(argc, argv, "px4");函数学习
- PX4源码学习二--PX4环境搭建
- 【飞控学习】APM和PX4飞控源码下载及安装
- PX4飞控之PWM输出控制
- 二、编译PX4飞控的Bootloader
- PX4飞控之编译环境搭建
- PX4飞控之添加地面站参数
- java关键字native、static、final详解
- 决策树学习 -- ID3算法和C4.5算法(C++实现)
- python把Excel数组转化为文本
- typeScript入门
- POJ
- PX4飞控学习(五)
- Excel经纬度转Shp
- 四大线程池详解
- An Introduction to Flask 12~15
- MySQL存储引擎---MyISAM与InnoDB区别
- C++栈的用法及栈的实现
- 业余时间决定了你人生的高度
- Java:按值传递还是按引用传递详细解说
- JDBC数据库连接技术