APM代码调试知识点汇总

由于项目的需要,对ardupilot的源码进行二次开发。本文记录在二次开发中遇到的问题以及注意事项:
  1. CUAV V5 实测 apm 串口,对于姿态数据的发送和接收在200Hz的时候,是没有问题的,但是当达到250Hz及以上之后,数据传送会在很大概率出现丢包的现象,而且这还是在有线串口的情况下测试的。
    这点和PX4代码有点相像,尽管PX4当时是采用mavros消息的形式完成对数据的采集,但是PX4姿态环的更新频率(也就是说把mavlink消息相关姿态环的数据提升到unlimited,也就是一收到姿态数据立马更新,也是200多Hz)。但是不管是apm还是px4在角速度环的控制频率都已经在800-1000,甚至更高的频率执行了。
  2. apm设定高度值需要给定高度的参考坐标系
  3. apm guided模式修改: 进入 guided 模式后首先是 init函数,在这里完成guided子模式的设置,一些参数(如最大wp_speed, wp 上升速度,下降速度,wp_accerlate_speed的设置。),获取当前的位置,并作为停止点。然后进入子模式的run函数。子模式的run函数执行频率是400Hz, 在fast_loop 中 flight_mode->run()中被调用。
  4. set_destination为设置目标点,后续还需要通过调用位置PID控制器完成vehicle的控制设计
  5. 发送目标点不能太高的频率,可以采用的策略是“判断给定的目标点是否距离上次给的目标点太远,如果太近则没有必要更新目标点”,用以降低目标点的更新频率。PS:如果给的频率太高,则vehicle的飞行速度起不来,但是可以飞过去。
  6. 给定的高度要指定高度的相对点,采用函数为 Location::set_alt_cm()
  7. 采用 wp_nav:: reached_wp_destiantion()函数来判断是否达到了给定目标点,否则vehicle会一直在目标点附近快速绕圈。该函数是给定一个半径来判断是否达到了目标点。半径参数可以通过GCS设置。
  8. 航点操作一条龙函数 wp_nav->update_wpnav(); pos_control->update_z_controller(); attitude_cotnrol->input_euler_angle_roll_pitch_yaw().
  9. 在apm中使用串口的时候,要先判断下串口的句柄是否为空。
  10. 记得采用astyle 进行apm代码格式的规范化
  11. apm中要求failsafe_throttle_value + 10 >= 油门通道的最小值,或者 failsafe_throttle_value <910 就不会报错 “Check FS_THR_VALUE”
  12. 通过修改mp中的arming_check可以修改解锁检查项目
  13. 模式切换在100Hz循环的rc().read_mode_switch()中进行
  14. apm在调试过程中遇到问题,调试的时候变量是正常的,但是编译下载到单片机中则显示出错。怀疑编译优化造成,最后在源文件上加入编译优化选项解决:
    #pragma GCC optimize(“O0”)
    注:原ardupilot代码中,默认的优化等级为O2,但是可以看到其中很多文件都选择了其他的优化方式。
  15. 类内静态成员变量在类在初始化,在类内不能够初始化静态成员函数不能访问静态成员变量,静态成员函数也是有权限的
  16. ArduPilot中使能GPS对应的参数较多,有GPS_TYPE auto ek2_gps , gps_posNXXX等等, compass_use
  17. 在解锁的时候,经常会提示 PreArm: Pitch (RC2) is not neutral, 可以采用参数设置为 rc2_DZ ,也就是死区来解决,实测好使,但是在程序中没有找到相关代码。
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
APM204C/208C是一种调试工具,主要用于硬件电路的调试和故障排除。 调试是在设计和制造电路过程中非常重要的一步,它可以帮助我们定位和修复电路中存在的问题,确保电路的正常运行。 APM204C/208C调试工具在这个过程中发挥了关键的作用,它具有多种功能和特性,能够帮助工程师们快速准确地找到电路中的问题。 首先,APM204C/208C调试工具具有丰富的接口和连接功能,可以与电路中的各种设备和模块进行连接,如传感器、电机、开关等。这样可以方便地观察和测量电路中的信号和数据,从而找出问题所在。 其次,APM204C/208C调试工具支持多种通信协议,如UART、I2C、SPI等,可以与不同类型的设备进行通信,并进行数据交换和调试。这样可以方便地监测和控制电路中的各种设备,进一步分析和定位问题。 此外,APM204C/208C调试工具还具有强大的数据分析和调试功能。它可以实时捕获和记录电路中的信号波形和数据,通过内置的分析工具和算法,对这些数据进行处理和分析,以找出潜在的问题和异常。 最后,APM204C/208C调试工具还支持扩展和定制,用户可以根据具体的调试需求,选择和添加适合的插件和扩展模块,以满足不同的调试任务。 总之,APM204C/208C调试工具是一种功能强大、易于使用的工具,它可以帮助工程师们快速定位和修复电路中的问题,提高调试效率和准确性。无论是在电子产品研发阶段还是在生产制造过程中,APM204C/208C调试工具都是不可或缺的利器。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值