在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
这些命令启动了一个凉亭模拟器:
两个激光射程发现器:
Hokuyo0
和Hokuyo1
两个RGB摄像机:
相机0
和相机1
两个深度摄像机:
depth_camera0
和depth_camera1
两个IMU传感器:
IMU0
和IMU1
单元框型号:
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的单位箱的方向
。创建一个空白applylinkwrench
消息使用凉亭空白消息。指定消息的元素将力应用于unit_box/链接
实体使用巴士分配堵塞。采用凉亭阅读输出盒子的地面真相姿势。盒子在1第二周期内的位移应接近0.5米。
执行共模拟
要开始共同模拟,请单击跑。您也可以使用向前一步。退后在共模拟过程中金宝app不支持。
在运行模拟时,请注意凉亭模拟器和Simulink时间已同步。金宝app
该模型使用MATLAB功能块和MATLAB绘图功能可视化凉亭传感器数据。这是从凉亭相机获得的图像数据的快照:
这是激光扫描图像的快照:
单位箱块位置的时间情节z- 方向可以使用数据检查员。由于随着时间的推移的恒定加速度,该块跟踪抛物线形状。
模拟末端的单元盒的位置为1.001,导致0.5001位移,与预期值略有不同。这是由于凉亭物理引擎的错误。使凉亭物理引擎中的最大步长更小,以减少此错误。
时间同步
在共模拟过程中,您可以随时使用Simulink和凉亭模拟器使用金宝app暂停
笔记:凉亭暂停了一次模拟前一步。
这是由于以下共拟合时间序列:
传感器数据和驱动命令在正确的时间步骤交换。执行选择先踩凉亭,然后使用Simulink。金宝app模拟执行仍在t+1,S金宝appimulink只是停留在上一步,直到您恢复模型。