ROS 与 SITL
ROS 与 SITL¶
将 ArduPilot 连接到 ROS¶
首先,一个好的 ROS 习惯是始终在工作区目录中工作,因此创建一个: 打开终端
mkdir -p ardupilot_ws/src
cd ardupilot_ws
catkin init
cd src好的 ROS 已准备就绪,让我们启动一个 SITL 实例。 请参阅在 Linux 上设置 SITL 以了解如何安装 SITL。 导航到您的 SITL 安装并启动直升机会话:
sim_vehicle.py -v ArduCopter --console --map(–控制台显示 mavproxy 控制台,–地图以在地图上显示直升机)
现在你有一个使用 TCP 和 UDP 访问启动的 SITL 实例,你应该有一些这样的行:
"mavproxy.py" "--master" "tcp:127.0.0.1:5760" "--sitl" "127.0.0.1:5501" "--out" "127.0.0.1:14550" "--out" "127.0.0.1:14551" "--map" "--console"这两个“–out”都是指由MAVProxy创建的UDP连接。我们将使用马夫罗斯的UDP访问。
回到您的 ROS 终端。让我们为启动文件创建一个新目录。
mkdir launch
cd launch提示
编写启动文件比记住 ROS 命令更简单。
让我们复制 ArduPilot 的 MAVROS 默认启动文件:
您的目录中应该有一个名为“apm.launch”的新文件。“roscp”命令只是在ROS包上调用系统命令的助手。 用你最喜欢的编辑器打开它,我的是 gedit。
To connect to SITL we just need to modify the first line to . save you file and launch it with<arg name="fcu_url" default="udp://127.0.0.1:14551@14555" />
You should see some verbose from MAVROS that read its configuration and some line that indicate a connexion:
连接完成!
让我们使用 RQT 来了解 ArduPilot 信息在 ROS 中的显示方式。通常,MAVROS 将完成大部分翻译 MAVLink <–> ROS 打开另一个终端并启动 RQT
转到插件/主题/主题监视器 嘭! !!!!您会看到 mavros 必须从 ArduPilot 信息中创建的所有主题,单击该框以查看当前值。 您可以在插件/机器人工具/运行时监视器中看到一切正常!
让我们尝试使用 mavros 更改模式: 转到插件/服务/服务调用方 将服务设置为 /mavros/set_mode 将custom_mode设置为“引导”,然后单击呼叫按钮 响应应该是真的,你可以在 /mavros/state 主题上查看该模式现在是 GUIDED 的。它应该在您的MAVProxy控制台中相同。
现在,您知道了使用 ArduPilot 的 ROS 的基础!ROS还有很多其他功能,您可以使用,例如绘图,3D可视化等。
Last updated