无人机算法调试-从SITL到真机

974 阅读2分钟

一、SITL调试

1. 安装软件链

2. 仿真步骤

2.1 make一个仿真环境

  cd /path/to/PX4-Autopilot
  make px4_sitl gazebo

然后打开QGC地面站

2.2 设置飞行任务

image.png

  • 滑动启动任务

image.png

3. 引入ROS

使用OFFBOARD模式,调试验证自己的算法。

3.1 mavros通信

  • 连接无人机
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

3.2 打开地面站

打开地面站,连接SITL的无人机。(注意!必须打开地面站,否则无法切OFFBOARD模式)

在此可能遇到的问题在最后一部分可以看到。

3.3 运行相应的节点(自己算法的代码)

  • 在此尝试一个offboard demo
. devel/setup.bash
rosrun offboard offboard_node 

成功执行定高3m的任务。

image.png

二、部署到无人机

1. 将通过SITL的代码部署编译

1.1 通过ssh传输相关工程文件到机载计算机

  • 将本地文件拷贝到远程
scp 文件名 –用户名@计算机IP或者计算机名称:远程路径
# 例如
scp my_ctrl_pos.cpp g@192.168.1.103:~

image.png

  • 从远程将文件拷回本地
scp –用户名@计算机IP或者计算机名称:文件名 本地路径

1.2 进入工作空间进行编译

2. 室内定位(VIO)

2.1 连接机载电脑(树莓派)与飞控(PX4)

roslaunch mavros px4.launch

 连接成功!

image.png

2.2 打开T265

roslaunch realsense2_camera rs_t265.launch

打开成功

image.png

2.3 t265数据转化到mavros

roslaunch vision_to_mavros t265_tf_to_mavros.launch

image.png

3. 运行算法程序

rosrun offboard offboard_node 

遇到的问题

1. 在切换offboard模式时出现下面错误

no manual control stick input。 解决:把QGC中的虚拟摇杆调出来 image.png

切换成功!

image.png

2. 怎么在VSCODE中调试ROS结点

  • 在VSCODE中安装好ROS插件
  • 点击左侧调试按钮 image.png
  • 会有一个创建launch.json文件的提示 创建文件如下,其中"program":便为调试目标结点。

image.png