
Ardupilot4.2.2
文章平均质量分 56
主要以Ardupilot4.2.2版本进行开发,并记录开发过程中的笔记
H2Z20Str
这个作者很懒,什么都没留下…
展开
-
PIXHAWK(ardupilot4.52)新增自定义mavlink消息
mavlink的定义在ardupilot\modules\mavink\message_ defnitions\v1.0\common.xml文件中。在头文件中可以看到mavlink的发送函数。在程序中调用该发送函数即可发送自定义的mavlink消息了。注意自定义的ID不要跟原有的ID冲突了,且定义在255后的ID需要用mavlink2协议才能有输出。可以直接效仿原有的定义新增一个自定义的mavlink消息;原创 2025-04-08 14:04:57 · 127 阅读 · 0 评论 -
PIXHAWK(ardupilot4.52)单ic通道输出pwm
搜索查找后可以找到void AP_MotorsUGV::output(bool armed, float ground_speed, float dt)这个函数,看名称可以判断为输出函数。_throttle在这个函数中使用了,但是最终都汇聚在SRV_Channels::output_ch_all();在这个函数中可以看到形参desired_throttle最终是递给了_throttle这个参数。该函数下,前面的都是验证每个通道分别需要多少的pwm输出,函数的最后才是控制单独通道的单独输出。原创 2024-11-18 09:51:15 · 628 阅读 · 0 评论 -
自动返航策略-电池篇
电池低电量和电池老化以及电池通讯丢失会触发返航。原创 2023-04-12 17:46:11 · 208 阅读 · 0 评论 -
ardupilot4.2.2-定制日志
其中的LOG_PACKET_HEADER_INIT(LOG_SPOS_MSG)中的LOG_SPOS_MSG和LOG_PACKET_HEADER_INIT(LOG_SBAT_MSG)中的LOG_SBAT_MSG需要在define.h中进行定义。电池采用6s电池,每个电芯的使用信息都记录在日志当中,记录的日志体为RCOU,在libraries\AP_Logger\LogFile.cpp当中。(2)、将添加的日志体添加到log_structure[]数组当中。(1)、定义日志结构体。原创 2022-12-27 08:57:34 · 334 阅读 · 0 评论 -
ardupilot4.2.2-定制地面站信息
在地面站上显示数据的文件为GCS_Common.cpp,在此文件中可以发现很多给地面站发送数据的函数,找到void GCS_MAVLINK::send_battery_status(const uint8_t instance) const,在此函数中可以给地面站发送一定的电池数据,应设计要求,需要把电池的电压,电量百分比,电量,温度,循环次数等信息发送到地面站并在地面站上显示出来。将对应的电压,百分比,电流等参数替换成我们已经设定好的数据即可。同样在GCS_Common.cpp文件中,原创 2022-12-26 11:14:05 · 669 阅读 · 0 评论 -
ardupilot4.2.2-雷达CAN通讯
解析到的8个扇区的距离数据都存储到hal.util->mr72_dist[i]数组当中,这些数据将到Proximity库当中运用。在实例识别当中可以发现所有的类型都是采用了串口通讯,而我们的雷达采用的是CAN通讯,因此我们要在实例识别程序中添加CAN通讯。雷达采用的是MR72,其BMS默认为0x21,最远探测距离是80米,通讯过程中会依次传回8个扇区测到的距离。在此函数当中添加CAN雷达通讯,并将我们的读取到的扇区数据传递给实例当中即可。其中最主要的是read_sensor_data();原创 2022-12-26 10:37:37 · 756 阅读 · 0 评论 -
Ardupilot仿真中遇到的问题(持续更新)
其次输入help,可以看到MAVProxy上的所有命令,其中accelcalsimple命令即为3D校准,输入此命令还不能解锁建议重新编译。首先是查看一下地图上是否有飞机的图标,如果没有,查看在初始设置下的必要硬件中的飞控的类型是否选择上了你编译的类型。2、仿真时提示需要3D校准,无法解锁。原创 2022-10-21 09:19:27 · 1838 阅读 · 1 评论