主要内容

执行模型之间的联合仿真和露台万博1manbetx

这个例子展示了如何设置一个同步仿真模型之间™和露台,从露台发送命令和接收数据。万博1manbetx

设置露台模拟环境

对于这个示例,使用自己的Linux环境与露台或提供下载虚拟机与ROS和露台。在虚拟机(VM),所需的插件位于露台/home/user/src/GazeboPlugin。

有关Linux VM的更多信息和要求建立自己的Linux环境,有露台,明白了露台模拟环境要求和限制

虚拟机中设置禁用加速3 d图形。在虚拟机环境中,虚拟机>设置>硬件>显示,禁用加速3 d图形。

如果使用自己的Linux环境,遵循的步骤手动安装露台插件。否则,去发射露台模拟环境

手动安装露台插件

获得插件源代码压缩包。这个函数创建一个文件夹GazeboPlugin在当前工作目录中,压缩它GazeboPlugin.zip

packageGazeboPlugin

复制GazeboPlugin.zip你的Linux机器符合下列要求:

解压包在Linux平台上,在这个例子中,我们打开/home/user/src/GazeboPlugin

在终端运行这些命令来编译插件。

cd /home/user/src/GazeboPlugin

如果构建文件夹已经存在,删除它。

rm - r构建

安装插件。

mkdir构建cd构建cmake . .使

插件位置/home/user/src/GazeboPlugin /出口/ lib / libGazeboCoSimPlugin.so

从主机删除生成的插件。

如果存在(“GazeboPlugin”,“dir”)删除文件夹(“GazeboPlugin”,“年代”);结束如果存在(“GazeboPlugin.zip”,“文件”删除()“GazeboPlugin.zip”);结束

发射露台模拟环境

打开一个终端在VM或自己的Linux操作系统,运行以下命令启动露台模拟器。

cd/home/user/src/GazeboPlugin /出口出口SVGA_VGPU10 = 0露台. . /世界/ multiSensorPluginTest.world——详细

这些命令启动一个露台模拟器:

  • 两个激光测距仪:hokuyo0hokuyo1

  • 两个RGB相机:camera0camera1

  • 两个深度照相机:depth_camera0depth_camera1

  • 两个IMU传感器:imu0imu1

  • 单元框模型:unit_box

multiSensorPluginTest.world位于/home/user/src/GazeboPlugin /世界文件夹中。这个世界与仿真软件联合仿真文件包括露台插件使用以下线的。万博1manbetxxml身体:

<插件名称=“GazeboPlugin”文件名=“lib / libGazeboCoSimPlugin.so”> < portNumber > 14581 < / portNumber > < /插件>

文件名字段必须是指向露台编译插件的位置。这条路可以相对于位置露台本身启动,或者你可以将其添加到露台插件搜索路径通过运行:

出口GAZEBO_PLUGIN_PATH = $ {GAZEBO_PLUGIN_PATH}: / home / user / src / GazeboPlugin /出口

联合仿真配置露台

打开performCoSimulationWithGazebo模型,它演示了如何从这些模拟传感器接收传感器数据和如何驱动单元框模型仿真软件。万博1manbetx

open_system (“performCoSimulationWithGazebo”)

在模拟模型之前,配置使用联合仿真露台露台Pacer布洛克:

hilite_system (“performCoSimulationWithGazebo /露台Pacer”)

块,然后点击打开配置露台网络和仿真设置链接。

open_system (“performCoSimulationWithGazebo /露台Pacer”)

网络地址下拉列表中,选择自定义。输入您的Linux机器的IP地址。默认的港口露台是14581年。集响应超时到10秒。

单击测试按钮测试连接到正在运行的露台模拟器。

获得传感器数据

使用露台读获取数据块在特定主题从三个传感器:

  • IMU,/露台/违约/ imu / imu / imu0 /链接

  • 激光雷达扫描,/露台/违约/ hokuyo0 /联系/激光/扫描

  • RGB相机,/露台/违约/ camera0 /联系/相机/形象

显示IMU数据和可视化激光雷达扫描和RGB图像使用MATLAB®函数块。

开动露台模型

使用露台使用命令块应用恒力z方向的单元框,导致加速1 / 年代 2 。创建一个空白的ApplyLinkWrench信息使用露台空白信息。指定消息的元素应用的力量unit_box /链接实体使用总线分配块。使用露台读输出地面真理构成。盒子的位移在1秒内应该接近0.5米。

执行联合仿真

联合仿真开始,点击运行。你也可以一步模拟使用一步退一步不支持在联合仿万博1manbetx真。

在模拟运行时,注意露台模拟器和仿真软件时间同步。万博1manbetx

这个模型使用MATLAB可视化露台传感器数据功能块和MATLAB绘图功能。这是一个从露台相机获得的图像数据的快照:

这是一个激光雷达扫描图像的快照:

单位方框的位置块的时间曲线图z方向可以被使用数据检查。块追踪一个抛物线的形状由于恒定的加速度。

单位方框的位置仿真结束时是1.001,导致0.5001位移,从0.5的期望值略有不同。这是由于错误的露台物理引擎。使马克斯步长小露台物理引擎来减少这种错误。

时间同步

在联合仿真,你可以在任何时间暂停在露台模拟器仿真软件和使用万博1manbetx暂停

注意:露台暂停前一个时间步的仿真。

这是由于以下联合仿真时间序列:

传感器数据交换和驱动命令在正确的时间步骤。首先执行选择一步露台,然后仿真软件。万博1manbetx模拟执行仍在t + 1,仿万博1manbetx真软件只是停留在前一步的时间,直到你恢复模型。

下一个步骤