主要内容

在Simulink和凉亭之间进行共同模拟金宝app

此示例显示了如何在Simulink™和Gazebo之间设置同步模拟以发送命令并从凉亭接收数据。金宝app

设置凉亭仿真环境

在此示例中,使用凉亭使用自己的Linux环境或下载提供的带有ROS和凉亭的虚拟机。在虚拟机(VM)中,所需的凉亭插件位于/home/user/src/gazeboplugin。

有关Linux VM的更多信息以及使用凉亭设置自己的Linux环境的要求,请参见凉亭模拟环境要求和局限性

如果使用自己的Linux环境,请按照手动安装凉亭插件。Othwerise,去启动凉亭仿真环境

手动安装凉亭插件

获取插件源代码作为ZIP软件包。此功能创建一个名为的文件夹凉亭在您当前的工作目录中,并将其压缩为凉亭

PackageGazeBoplugin

复制凉亭到满足以下要求的Linux机器:

解压缩您的Linux平台上的包装,在此示例中,我们将包装打开。/home/user/src/gazeboplugin

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

CD/Home/user/src/gazeboplugin

如果是建造文件夹已经存在,将其删除。

RM -R构建

安装插件。

mkdir构建CD构建Cmake ..

插件位置是/home/user/src/gazeboplugin/export/lib/libgazebocosimplugin.so

从主机计算机上删除生成的插件。

如果存在('Gazeboplugin',,,,'dir')rmdir('Gazeboplugin',,,,');结尾如果存在('gazeboplugin.zip',,,,'文件') 删除('gazeboplugin.zip');结尾

启动凉亭仿真环境

在VM或您自己的Linux操作系统中打开终端,运行以下命令以启动凉亭模拟器。

光盘/home/user/src/gazeboplugin/offort出口svga_vgpu10 = 0凉亭../world/multisensorplugintest.world-  verbose

这些命令启动了一个凉亭模拟器:

  • 两个激光射程发现器:Hokuyo0Hokuyo1

  • 两个RGB摄像机:相机0相机1

  • 两个深度摄像机:depth_camera0depth_camera1

  • 两个IMU传感器:IMU0IMU1

  • 单元框型号:unit_box

MultisenSorplugintest.world位于/home/user/src/gazeboplugin/world文件夹。这个世界文件包括使用以下行中的Simulink共同模拟的凉亭插件。金宝appXML身体:

<插件名称=“凉亭”文件名=“ lib/libgazebocosimplugin.so”>  14581  

文件名字段必须指向编译的凉亭插件的位置。此路径可以相对于凉亭本身的位置,也可以通过运行:

出口GAZEBO_PLUGIN_PATH = $ {GAZEBO_PLUGIN_PATH}:/HOME/user/user/src/src/gazeboplugin/export

配置凉亭共模拟

打开perfercoSimulationWithGazebo模型,演示了如何从这些模拟传感器中接收传感器数据以及如何从Simulink启动单元框模型。金宝app

open_system(“ performcosimulationwithgazebo”

在模拟模型之前,请使用凉亭共模拟凉亭起搏器堵塞:

hilite_system(“ PerformCosimulationWithGazebo/凉亭起搏器”

打开块,然后单击配置凉亭网络和仿真设置关联。

open_system(“ PerformCosimulationWithGazebo/凉亭起搏器”

在里面网络地址下拉,选择风俗。输入Linux机器的IP地址。默认值港口因为凉亭是14581。放响应超时到10秒。

点击测试按钮测试连接到运行的凉亭模拟器。

获取传感器数据

使用凉亭阅读从三个传感器中获取有关特定主题的数据的块:

  • IMU,/凉亭/默认/imu0/link/imu/imu

  • 激光扫描,/凉亭/默认/hokuyo0/link/link/laser/scan

  • RGB相机,/凉亭/默认/摄像机0/链接/相机/图像

显示IMU读数并使用MATLAB®功能块可视化激光雷达扫描和RGB图像。

促使凉亭模型

使用凉亭应用命令块以施加恒定力z- 导致加速1的单位箱的方向 m / s 2 。创建一个空白applylinkwrench消息使用凉亭空白消息。指定消息的元素将力应用于unit_box/链接实体使用巴士分配堵塞。采用凉亭阅读输出盒子的地面真相姿势。盒子在1第二周期内的位移应接近0.5米。

执行共模拟

要开始共同模拟,请单击。您也可以使用向前一步退后在共模拟过程中金宝app不支持。

在运行模拟时,请注意凉亭模拟器和Simulink时间已同步。金宝app

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

这是激光扫描图像的快照:

单位箱块位置的时间情节z- 方向可以使用数据检查员。由于随着时间的推移的恒定加速度,该块跟踪抛物线形状。

模拟末端的单元盒的位置为1.001,导致0.5001位移,与预期值略有不同。这是由于凉亭物理引擎的错误。使凉亭物理引擎中的最大步长更小,以减少此错误。

时间同步

在共模拟过程中,您可以随时使用Simulink和凉亭模拟器使用金宝app暂停

笔记:凉亭暂停了一次模拟前一步。

这是由于以下共拟合时间序列:

传感器数据和驱动命令在正确的时间步骤交换。执行选择先踩凉亭,然后使用Simulink。金宝app模拟执行仍在t+1,S金宝appimulink只是停留在上一步,直到您恢复模型。

下一步