将 SITL 与莫尔斯系统结合使用

莫尔斯 是一个开放的机器人平台,它使用 python API 和 blender 3D 环境来创建一个完整的机器人平台。

ArduPilot 有一个 Morse SITL 仿真后台,允许 ArduPilot 控制在 Morse 中创建的载具。

警告

Morse 不再维护,因此我们建议开发人员使用 空中模拟Webots.

备注

莫尔斯仅在 Linux/Ubuntu 环境下进行过测试

安装莫尔斯

官方说明请访问 openrobots.com.Morse 使用 Blender 游戏引擎 API 来渲染构建脚本。如果用户在 Ubuntu 20.04 或更高版本上安装 Morse,请按照 Morse 安装页面(如上所述)的说明从源代码安装软件(手动安装)。但对于旧版本的 Ubuntu 安装,您只需要

苏都 适切 安装 马尔斯-模拟器

检查搅拌器版本

如上所述,莫尔斯依靠 Blender 游戏引擎来渲染模拟。鉴于较新版本的 Blender (v2.80 及以上版本)已停止对游戏引擎的支持,请用户确保已安装的 Blender 版本 之间 v2.65v2.73 (官方版本限制由莫尔斯说明)。

备注

搅拌机 v2.74 - v2.79 也是有效的版本,因为这些版本也能访问稳定的 Blender 游戏引擎。下图显示的是使用 Blender 2.76 运行的 ArduPilot 四旋翼飞行器莫尔斯模拟。

../_images/morse-with-blender.jpg

生成器脚本

莫尔斯模拟器具有生成器脚本的概念,即在莫尔斯/Blender 环境中运行的 python 脚本。

中提供了一些与 ArduPilot 配合使用的生成器脚本示例。 ArduPilot/libraries/SITL/examples/Morse 目录.

这些例子包括

  • 防滑车

  • 独立的转向和油门漫游车

  • 简单的四旋翼飞行器

  • 装有扫描激光测距仪的漫游车

这些脚本设置了 ArduPilot 需要的标准传感器套件,并使用套接字应用程序接口导出它们。建议您阅读 rover.py 和 quadcopter.py 示例,以便更好地了解如何将 Morse 与 ArduPilot 连接起来。

运行示例

以下步骤将帮助您运行 Skid Rover 示例。

马尔斯 运行 图书馆/SITL/例子/莫尔斯/路虎防滑.py
  • 打开/ardupilot 目录下的另一个终端,使用摩斯滑行模拟后端启动 ArduPilot SITL

工具/自动测试/模拟载具.py -v 无人车UGV --模型 马尔斯-防滑 --增加-停止-文件=图书馆/SITL/例子/莫尔斯/路虎防滑.调味料 --游戏机 --地图
  • 此时会出现如下窗口:

    ../_images/morse_rover_sitl.jpg
  • 使用 ArduPilot SITL 控制台控制飞行器(例如,使用 "arm throttle "启动飞行器,使用 "rc 3 1800 "将油门升至 80%,等等)

以下步骤将帮助您运行分离式转向和油门漫游器示例。

马尔斯 运行 图书馆/SITL/例子/莫尔斯/无人车UGV.py
  • 打开另一个终端,进入 /ardupilot 目录,使用摩斯漫游模拟后端启动 ArduPilot SITL

工具/自动测试/模拟载具.py -v 无人车UGV --模型 马尔斯-无人车UGV --增加-停止-文件=图书馆/SITL/例子/莫尔斯/无人车UGV.调味料 --游戏机 --地图
  • 使用 ArduPilot SITL 控制台控制飞行器(例如,使用 "arm throttle "启动飞行器,使用 "rc 1 "控制转向,使用 "rc 3 "控制油门等)

运行四旋翼飞行器示例:

  • 打开终端,在 /ardupilot 目录下启动四旋翼飞行器模拟器:

马尔斯 运行 图书馆/SITL/例子/莫尔斯/四旋翼.py
  • 使用摩斯四象限模拟后端启动 ArduPilot SITL

工具/自动测试/模拟载具.py -v ArduCopter --模型 马尔斯-四人 --增加-停止-文件=图书馆/SITL/例子/莫尔斯/四旋翼.调味料 --游戏机 --地图
  • 此时会出现如下窗口:

    ../_images/morse_quad.jpg

请注意,上图显示的是线框视图,而不是渲染后的 3D 视图。这是通过在 quadcopter.py 的 Environment() 声明中设置 fastmode=True 配置的。使用快速模式会大大降低 CPU 占用率,这对速度较慢的机器很有好处。

激光扫描仪支持

Morse SITL 后端支持激光扫描仪传感器。这样,您就可以将 ArduPilot 中的接近规避系统与用 Morse 创建的载具结合使用。

在 rover_scanner.py 脚本中有一个使用激光扫描仪设置漫游车的示例。像这样运行

马尔斯 运行 图书馆/SITL/例子/莫尔斯/漫游扫描仪.py

然后启动 ArduPilot SITL,使用莫尔斯防滑模拟后端

工具/自动测试/模拟载具.py -v 无人车UGV --模型 马尔斯-防滑 --增加-停止-文件=图书馆/SITL/例子/莫尔斯/漫游扫描仪.调味料 --游戏机 --地图

这样就能得到类似的结果:

../_images/morse_rover_scanner.jpg

红色区域显示的是激光扫描仪近距离传感器看到的范围。

蜂群支持

要启动三个UGV无人车蜂群,请打开两个终端并 cd 到 /ardupilot 目录:

  • 运行以下命令,启动三辆漫游车并排行驶的莫尔斯系统

马尔斯 运行 图书馆/SITL/例子/莫尔斯/UGV无人车关注.py
  • 用三个漫游器启动 ArduPilot SITL 环境:

图书馆/SITL/例子/莫尔斯/开始关注.

与任务规划师联系

  • 在 Windows 机器上打开终端(在 Windows 机器上),然后键入 ipconfig 确定机器的 IP 地址

  • 在 Ubuntu 机器上

    • 打开您最喜欢的编辑器并编辑 libraries/SITL/examples/Morse/start_follow.sh

    • 修改脚本第 7 行,设置 Windows 机器的 IP 地址

GCS_IP=192.168.2.48  <-- 顶替  您的 窗口 机械\IP地址
  • 在 Windows 机器上启动 Mission Planner,将连接类型下拉菜单设为 "UDP",然后按 "连接"。

  • 这三辆车应该会出现在地图上。通过更改 "连接 "按钮下方的载具选择器下拉菜单,可以分别控制这三辆车

    ../_images/morse-rover-swarm-with-mp.png