ROS学习笔记之——使用带有ROS的Gazebo插件

81 篇文章 114 订阅

Gazebo插件为您的URDF模型提供了更强大的功能,可以连接ROS消息和传感器输出和电机输入的服务调用。

对于gazebo模型,如果不加入ROS的插件,是没法发布消息跟ROS进行通信的。

 

目录

Gzebo中插件类型

Adding a ModelPlugin

Adding a SensorPlugin

参考资料


 

Gzebo中插件类型

http://gazebosim.org/tutorials?tut=plugins_hello_world&cat=write_plugin

Gazebo supports several plugin types, and all of them can be connected to ROS, but only a few types can be referenced through a URDF file:

  1. ModelPlugins, to provide access to the physics::Model API
  2. SensorPlugins, to provide access to the sensors::Sensor API
  3. VisualPlugins, to provide access to the rendering::Visual API

 

Adding a ModelPlugin

In short, the ModelPlugin is inserted in the URDF inside the <robot> element. It is wrapped with the <gazebo> pill, to indicate information passed to Gazebo. For example:

<robot>
  ... robot description ...
  <gazebo>
    <plugin name="differential_drive_controller" filename="libdiffdrive_plugin.so">
      ... plugin parameters ...
    </plugin>
  </gazebo>
  ... robot description ...
</robot>

在RRBot中的位置如下图所示

在Gazebo中加载机器人模型时,diffdrive_plugin代码将被赋予对模型本身的引用,允许它对模型进行操作。此外,它还将引用自身的SDF元素,以便读取传递给它的插件参数。

 

Adding a SensorPlugin

Specifying sensor plugins is slightly different. Sensors in Gazebo are meant to be attached (被链接到) to links, so the <gazebo> element describing that sensor must be given a reference to that link. For example:

<robot>
  ... robot description ...
  <link name="sensor_link">
    ... link description ...
  </link>

  <gazebo reference="sensor_link">
    <sensor type="camera" name="camera1">
      ... sensor parameters ...
      <plugin name="camera_controller" filename="libgazebo_ros_camera.so">
        ... plugin parameters ..
      </plugin>
    </sensor>
  </gazebo>

</robot>

在Gazebo内加载机器人模型时,摄像机控制器代码将作为传感器的参考,提供对其API的访问。此外,它还将引用自身的SDF元素,以便读取传递给它的插件参数。

 

 

 

参考资料

http://gazebosim.org/tutorials?cat=connect_ros

http://gazebosim.org/tutorials?tut=ros_gzplugins&cat=connect_ros

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您在运行Gazebo 11时遇到了问题,可能是由于以下原因之一: 1. 您的ROS环境没有正确设置:确保您已经正确设置了ROS环境,并且已经运行了`source /opt/ros/<your_ros_version>/setup.bash`命令。 2. Gazebo 11没有正确安装:如果您在安装Gazebo 11时遇到了问题,可能会导致Gazebo无法运行。请重新安装Gazebo 11并确保安装过程中没有出现错误。 3. 您的系统缺少必要的依赖项:Gazebo 11需要一些系统库和依赖项才能正常运行。请确保您已经安装了所有必要的依赖项,这些依赖项包括但不限于:`libignition-math4 libignition-msgs1 libignition-transport9 libprotobuf-lite10 libprotobuf17 libprotoc17 libqwt-qt5-6 libsdformat9 libtinyxml2-6a libtinyxml2-dev libyaml-cpp0.6 libyaml-cpp-dev protobuf-compiler python3-defusedxml python3-gdcm python3-lxml python3-numpy python3-opencv python3-opencv-apps python3-opencv-python python3-opencv-python-headless python3-pil python3-pydicom python3-pyproj python3-six python3-tk python3-vtk7 python3-vtk7-dev python3-yaml`. 4. Gazebo 11的配置文件出现了问题:如果您手动编辑了Gazebo 11的配置文件,可能会导致Gazebo无法运行。请确保您没有手动编辑或删除任何Gazebo 11的配置文件。 如果您仍然无法解决问题,请尝试重新安装ROSGazebo 11,并确保您的系统满足所有必要的依赖项。如果问题仍然存在,请查看Gazebo 11的日志文件以获取更多信息,并尝试在ROS社区或Gazebo社区中寻求帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值