前言
本博客着重讲述如何进行对ardupilot软件仿真和调试,搭建编译环境和vscode的使用教程不再本文的讲述范围。
一、安装vscode
下载地址:Visual Studio Code - Code Editing. Redefined
在安装包所在文件夹中打开终端,输入以下命令,安装vscode
sudo dpkg -i code_1.36.1-1562627527_amd64.deb
二、软件仿真
1.将下面一句根据你的情况修改后添加到~/.profile中,这个路径是ardupilot工程在你电脑中的位置
export PATH=/home/baiyang/src/ardupilot/ardupilot/Tools/autotest:$PATH
2.在ardupilot/ArduCopter文件夹下打开终端,并输入
sim_vehicle.py -v ArduCopter -f quad --console --map -D
提示:增加UDP输出
sim_vehicle.py -v ArduCopter -f quad --console -D --out 192.168.10.182:14555查看插入电脑的USB转串口设备:ls -l /dev/serial/by-id/或dmesg | grep ttyUSB*
使用USB转串口设备:sim_vehicle.py -v ArduCopter -A "--uartE=uart:/dev/ttyUSB0" -D
几分钟后,软件仿真就启动了。
三、调试
提示:
对于Ubuntu用户,默认保护将阻止您从IDE将gdb附加到SITL:请参阅此处。这将导致您第一次尝试附加到本地进程时出现错误消息。ptrace: Operation not permitted
在这种情况下,请执行以下操作之一:
- 要临时禁用此限制,请打开终端输入命令:
echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- 要永久禁用此限制,请打开
/etc/sysctl.d/10-ptrace.conf
文件进行编辑,并将内核kernel.yama.ptrace_scope = 1更改为kernel.yama.ptrace_scope = 0.要立即应用更改,请输入上述命令。或者,运行或只是重新启动系统。sudo service procps restart
1.汉化vscode
打开vscode后,使用快捷键【Ctrl+Shift+P】,然后选择配置显示语言
选择zh-cn,然后重启。
2.点击文件->打开文件夹,选择到ardupilot在你电脑中的位置,然后点击ok
3.点击调试->添加配置,选择"(gdb) Attach"或"(gdb) 附加",
将
"program": "enter program name, for example ${workspaceFolder}/a.out",
改为
"program": "${workspaceFolder}/build/sitl/bin/arducopter",
4. 选择调试菜单栏,点击左上角的开始按钮(绿色三角)
在弹出的命令行中选择ArduCopter,然后进行超级用户的认证。如果选中后,有英文提示的错误,大约意思是需要换"MIMode": "gdb"这个内容,有可能是没有装gdb,执行sudo apt-get install gdb,然后再试下。
提示:在windows使用vscode远程打开wsl中的ardupilot工程,执行调试,点击三角后,有可能出现如下报错。这个是因为没有安装gdb。
现在调试的配置就完成。 到这一步,就可以放置断点进行调试了
打开QGC后,QGC会自动链接到ardupilot的仿真模型。
5.为了更加愉快的调试,可以通过遥控器USB加密狗将fubata遥控器链接到电脑,通过QGC校准后,操作仿真模型
注意:点击start后,一定要油门杆拉到最低,不要像校准界面图这样,要不油门会只有一半起作用。