px4源码分析以及思路随笔1

px4源码分析以及思路随笔1

ID:32179395

大小:205.49 KB

页数:30页

时间:2019-02-01

px4源码分析以及思路随笔1_第1页
px4源码分析以及思路随笔1_第2页
px4源码分析以及思路随笔1_第3页
px4源码分析以及思路随笔1_第4页
px4源码分析以及思路随笔1_第5页
资源描述:

《px4源码分析以及思路随笔1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PX4源码分析,以及思路随笔。目录:1.0环境安装1.1rollpitchyaw2.1loop()3.1fastloop()3.1.1read_AHRS()3.1.1.1ins.update()3.1.2rate_controller_run()3.1.2.1_motors.set_roll()(嵌套了rate_bf_to_motor_roll)3.1.3motors_output()3.1.3.1update_throttle_filter()3.1.3.2update_battery_resistance

2、()3.1.3.3update_lift_max_from_batt_voltage()3.1.3.4output_logic()3.1.3.5output_armed_stabilizing()1.0环境安装1.首先安装px4_toolchain_installer_v14_win.exe,并配置好java环境(安装jdk,32位)。2.安装GitHub网站:http://ardupilot.org/dev/docs/building-px4-with-make.html若提示失败,在IE浏览器中打开网页,

3、http变为https,不断尝试。3.克隆程序(需要翻墙),可能多次失败。4.从C:px4toolchainmsys1.0内的eclipse批处理文件打开eclipse。5.按照http://ardupilot.org/dev/docs/editing-the-code-with-eclipse.html从第二张图开始。注:第二张图位置为ardupilot的位置。返回目录1.1ROLLYAWPITCHhttp://blog.csdn.net/yuzhongchun/article/details/22

4、749521在航空中,pitch,yaw,roll如图2所示。pitch是围绕X轴旋转,也叫做俯仰角,如图3所示。yaw是围绕Y轴旋转,也叫偏航角,如图4所示。roll是围绕Z轴旋转,也叫翻滚角,如图5所示。返回目录2.1loop函数:1.Setup各种初始化,先忽略。2.初始定义第一个是函数名,第二个单位为赫兹为过多少时间调用一次,第三个单位为微秒,即为最大花费时间。constAP_Scheduler::TaskCopter::scheduler_tasks[]={SCHED_TASK(rc_loop,10

5、0,130),/*控制角*/SCHED_TASK(throttle_loop,50,75),/*油门控制*/SCHED_TASK(update_GPS,50,200),/*GPS更新*/3.从Loop()开始。(1)等待数据ins.wait_for_sample(); 我认为"ins"是"InertialSensor",也就是指惯性传感器。voidAP_InertialSensor::wait_for_sample(void)uint32_ttimer=micros();(2)计算最大循环时间。perf_in

6、fo_check_loop_time(timer-fast_loopTimer);检查循环时间被PILoops使用??G_Dt=(float)(timer-fast_loopTimer)/1000000.0f;fast_loopTimer=timer;记录当前循环时间mainLoop_count++;主要循环的故障检测(3)快速循环,主要的循环,重要的一步!!!!!!!!!!!!因此首选需主要研究此函数!fast_loop();(4)任务调度scheduler.tick();告诉调度程序,一个流程已经走完??

7、uint32_ttime_available=(timer+MAIN_LOOP_MICROS)-micros();任务周期scheduler.run(time_available);任务调度返回目录3.1fastloop()函数Fastloop,最关键的循环(400hz),下面对每个函数进行工作的分析。1.更新传感器并更新姿态的函数read_AHRS();2.进行角速度PID运算的函数attitude_control.rate_controller_run();3.直升机框架判断(HELI_FRAME)#if

8、FRAME_CONFIG==HELI_FRAMEupdate_heli_control_dynamics();#endif//HELI_FRAME4.输出电机PWM值的函数motors_output();5.惯性导航//InertialNavread_inertia();6.扩展卡尔曼滤波器//checkifekfhasresettargetheadingcheck_ekf_yaw_reset();

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。