公司刚好有基于8074的无人机主板,虽然与官方snapdragon board有些差异,但也差不多,本文就是自己在此板上跑px4的阶段笔记,写的比较简单粗糙.
快速驱动无人机升空 主要通过PX4+QGroundcontrol+DX9的方式,手机APP+Qgroundcontrol+DX9也类似,只是将遥控器换成了APP(Android版地址: DroneControl ),准备好环境,有问题主要参考如下三个地址:
PX4编译和执行
PX4开发手册
QGroundcontrol开发手册
连接无人机 首先PC通过WiFi连上无人机,通过xshell或者putty ssh远程登录无人机。
运行PX4 执行命令./px4 mainapp.config ,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 root@linaro-developer:/home/linaro sh: 1: cannot create /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor: Directory nonexistent commands file: mainapp.config ______ __ __ ___ | ___ \ \ \ / / / | | |_/ / \ V / / /| | | __/ / \ / /_| | | | / /^\ \ \___ | \_| \/ \/ |_/ px4 starting. INFO [sdlog2] [blackbox] /root/log/sess018 INFO [sdlog2] [blackbox] recording: log001.px4log INFO [dataman] Unkown restart, data manager file '/home/linaro/dataman' size is 47640 bytes INFO [mavlink] mode: Normal, data rate: 1000000 B/s on udp port 14556 remote port 14550 Sleeping for 1 s; (1000000 us). pxh> INFO [mavlink] using network interface wlan0, IP: 192.168.1.1 INFO [mavlink] with broadcast IP: 192.168.1.255 pxh>
运行QGroundcontrol 启动QGroundcontrol 我们使用的Snapdragon板好像只能支持QGroundControl V2.7.1 (QGroundControl-V2.7.1下载 ),启动QGroundcontrol。
连接无人机
File > Settings > CommLinks
点击ADD 添加新的远端连接
点击ADD 添加目标主机
完成,如下
连接无人机,就在上一界面点击connect或者到主界面右上角点击connect连接
连接遥控器
File > Settings > Controllers
Enable controllers, 选择相应遥控器,设为Manual,并进行校准,如下
机身设置及校准 进入setup界面,根据提示进行设置校准,完成后项目将显示绿色小圆点或者边框,我使用的板子POWER部分不能校准成功,如下:
控制起飞
点击 ARM SYSTEM 起桨,可通过遥控器控制
点击 DISARM SYSTEM 停桨
分析 Analyze界面可以实时挂载mavilink数据包等信息
打开自己想要的窗口
快速支持MPU6500 PX4代码默认支持mpu9250,如若想直接支持行空所使用的mpu6500,可对MPU9250.hpp文件做如下修改:
不过这样修改的话需要自己重新移植地磁驱动
如若出现温度异常,需要临时修改可以测试的话,可以做如下类似修改:
1 2 //if (fabsf(temp_c - _last_temp_c) > 2.0f) { if (fabsf(temp_c - _last_temp_c) > 30.0f) { //modified by lihuaqian for debug
测试马达 修改CODE PX4代码中有测试马达的代码,不过需要做如下小小修改:
1 2 3 4 5 6 ... actuators.timestamp = hrt_absolute_time(); + orb_publish(ORB_ID(actuator_armed), arm_pub_ptr, &arm); //added by lihuaqian orb_publish(ORB_ID(actuator_controls_0), actuator_pub_ptr, &actuators); ...
注:同路径下的CMakeLists.txt,添加模块和执行命令
修改CMAKE文件 需要做如下修改:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ... platforms/posix/work_queue examples/px4_simple_app examples/hwtest // 添加马达测试module ) ... platforms/qurt/fc_addon/rc_receiver platforms/qurt/fc_addon/uart_esc // 若没有,需加上
运行马达测试程序 首先运行px4,然后输入ex_hwtest,则测试程序开始循环控制马达工作,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 pxh> ex_hwtest WARN [ex_hwtest] DO NOT FORGET TO STOP THE DEFAULT CONTROL APPS! WARN [ex_hwtest] (run <commander stop>,) WARN [ex_hwtest] ( <mc_att_control stop> and) WARN [ex_hwtest] ( <fw_att_control stop> to do so) WARN [ex_hwtest] usage: http://px4.io/dev/examples/write_output WARN [ex_hwtest] Actuator armed WARN [ex_hwtest] count 0 WARN [ex_hwtest] count 1 WARN [ex_hwtest] count 2 WARN [ex_hwtest] count 3 WARN [ex_hwtest] count 4 WARN [ex_hwtest] count 5 WARN [ex_hwtest] count 6 ...
通过输入“help”, 可以查看支持哪些命令。
附 参考路径:
PX4 Github
PX4编译和执行
PX4开发手册
QGroundcontrol开发手册