将 SITL 与 Webots C/C++ 结合使用

Webots 是一款主要用于机器人技术的模拟器。使用它可以很容易地制作许多飞行器。ArduPilot 有专门为该模拟器制作的漫游车、四旋翼飞行器和三旋翼飞行器示例。

您可以从以下网址下载 Webots 模拟器 www.cyberbotics.com.要运行 Webots,只需在命令行中输入 webots 即可。

运行示例

  1. 使用命令行打开 Webots。

  2. 载具示例文件夹 例如 webots_quadPlus.wbt.

  3. 使用 Webots 图形用户界面,打开机器人控制器和 WorldInfo 物理插件的源文件 (ardupilot_SITL_QUAD.csitl_physics_env.c)并运行 建设 >; 建设.有关使用 Webots 构建的更多信息,请参见 这里.

  4. 在 Webots GUI 上按 Run(运行)键。现在模拟器正在运行。

  5. 运行 ArduPilot 的 SITL。 示例文件夹.

./图书馆/SITL/例子/Webots/dronePlus.

./工具/自动测试/模拟载具.py -v ArduCopter -w --模型 网点-四人:127.0.0.0.1:5599 --增加-停止-文件=图书馆/SITL/例子/Webots/quadPlus.调味料

警告

必须在 ArduPilot 的 SITL 之前运行 Webots,否则可能无法建立套接字连接。

截至发稿时,这些说明适用于 Webots 2021b。较新版本可能无法正常工作。

模拟参数

有两类参数,第一类传递给 SITL,第二类在 Webots 中配置。

SITL 使用 TCP 套接字与 Webots 通信,因此 SITL 的端口号应与 Webots 相同。通常不需要更改默认端口 5599,但运行多个机器人时,需要为每个模拟实例使用不同的端口。

Webots 的优势

  1. 控制器可以用 c、c++、python 和 MatLab 编写。

  2. 有很多传感器。

  3. 可添加自定义物理功能,模拟风等现象。

  4. 能够添加 OpenStreetMap 并在与现实非常相似的环境中运行模拟器。

如何用 ArduPilot 连接自己的世界

世界信息

在 WorldInfo 中设置以下参数非常重要

  • 现场 "基本时间步骤" = 1 或 2

  • 现场 "物理学" 用于附加物理插件文件 "sitl_physics_env" 用于以非常简单的方式模拟风和阻力。

载具机器人

您可以根据需要多次复制&粘贴载具机器人:

  1. 给新机器人起个新名字。

  2. 现场 "自定义数据" 应等于机器人索引号,即 1、2、3......等。

  3. 现场 "控制器" 应根据所使用的载具进行选择。

  4. 现场 "控制器参数 其中指定了许多重要因素,主要是 TCP 端口,该端口应等于 SITL 的 TCP 端口,以便在模拟器中连接到该机器人。