从simulink到gazbeo的联合仿真

需求:使用simulink建立算法模型在gazebo中联合控制。

在研究ros、gazebo的过程中不可避免要涉及算法、模型设计、调参数的问题,使用simulink可以专注于建立控制模型。本方法使用Ubuntu18.04系统,ROS melodic版本。
本方法基于matlab simulink的一个示例,performCoSimulationWithGazebo。可以在matlab帮助文档中搜索到。
按照帮助文档中的方法选择一个工作目录后在matlab命令行输入
packageGazeboPlugin
可以看到一个对应的zip包和解压后的文件夹
接下来在ubuntu的终端输入

cd /home/user/src/GazeboPlugin
mkdir build
cd build
cmake ..
make

如果想要卸载插件重装,则在matlab中执行

if exist('GazeboPlugin', 'dir')
    rmdir('GazeboPlugin', 's');
end

if exist('GazeboPlugin.zip', 'file')
    delete('GazeboPlugin.zip');
end

可以直接在建立动态脚本运行,脚本不需要保存。
在ubuntu终端执行

cd /home/user/src/GazeboPlugin/export
export SVGA_VGPU10=0
gazebo ../world/multiSensorPluginTest.world --verbose

我为了省事直接把export SVGA_VGPU10=0写入.bashrc文件中:切换到home

cd
echo 'export SVGA_VGPU10=0' >> .bashrc

接下来就是关键的地方了:在home目录下

cd
echo 'export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:<your path>/GazeboPlugin/export' >> .bashrc

注意替换文件路径到GazeboPlugin下
比如我在~/matlab_ws建立GazeboPlugin目录
在这里插入图片描述写入.bashrc的语句应该为

echo 'export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:/home/$USER/matlab_ws/GazeboPlugin/export' >>.bashrc

然后就简单多了。
在ros的包(哪一个都行)中建立一个worlds文件夹然后建立simulink.world文件,文件名任意。
world文件长这样:

<?xml version="1.0"?>
<sdf version='1.6'>
  <world name="default">
    <include>
      <uri>model://ground_plane</uri>
    </include>

    <include>
      <uri>model://sun</uri>
    </include>
    
    <plugin name='GazeboPlugin' filename='lib/libGazeboCoSimPlugin.so'>
      <portNumber>14581</portNumber>
    </plugin>
  </world>
</sdf>

接下来就简单多了,在启动gazebo的launch文件中替换empty.world就行了。启动之后可以在gazebo pacer中测试连接情况。不出意外是可以连接的。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值