gazebo仿真之plugin控制

该博客详细介绍了如何在Gazebo中创建和控制插件,从下载支持包到编写C++代码,再到编译生成共享库,最后实现插件动态参数更改。步骤包括创建文件夹、编写插件源代码、编译生成库文件、在world文件中检验效果、运行及动态调整插件参数。此外,还提到了Ubuntu系统中与插件运行相关的环境变量。
摘要由CSDN通过智能技术生成

官网教程:http://gazebosim.org/tutorials?cat=guided_i&tut=guided_i5
官网对plugin的介绍:
A plugin is a C++ library that is loaded by Gazebo at runtime. A plugin has access to Gazebo’s API, which allows a plugin to perform a wide variety of tasks including moving objects, adding/removing objects, and accessing sensor data.

step1:下载gazebo的相关支持包

sudo apt-get  install libgazebo7-dev(7是你的gazebo版本号)

step2:创建一个存放文件的文件夹

mkdir ~/velodyne_plugin
cd ~/velodyne_plugin

step3:创建velodyne_plugin.cc,并将以下内容输入:

#ifndef _VELODYNE_PLUGIN_HH_
#define _VELODYNE_PLUGIN_HH_

#include <gazebo/gazebo.hh>
#include <gazebo/physics/physics.hh>

namespace gazebo
{
  /// \brief A plugin to control a Velodyne sensor.
  class VelodynePlugin : public ModelPlugin
  {
    /// \brief Constructor
    public: VelodynePlugin() {}

    /// \brief The load function is called by Gazebo when the plugin is
    /// inserted into simulation
    /// \param[in] _model A pointer to the model that this plugin is
    /// attached to.
    /// \param[in] _sdf A pointer to the plugin's SDF element.
    public: virtual void Load(physics::ModelPtr _model, sdf::ElementPtr _sdf)
    {
      // Just output a message for now
      std::cerr << "\nThe velodyne plugin is attach to model[" <<
        _model->GetName() << "]\n";
    }
  };

  // Tell Gazebo about this plugin, so that Gazebo can call Load on this plugin.
  GZ_REGISTER_MODEL_PLUGIN(VelodynePlugin)
}
#endif

step4:编写Cmake文件,编译源代码

输入gedit CMakeLists.txt
输入以下内容:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)

# Find Gazebo
find_package(gazebo REQUIRED)
include_directories(${GAZEBO_INCLUDE_DIRS})
link_directories(${GAZEBO_LIBRARY_DIRS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GAZEBO_CXX_FLAGS}")

# Build our plugin
add_library(velodyne_plugin SHARED velodyne_plugin.cc)
target_link_libraries(velodyne_plugin ${GAZEBO_LIBRARIES})

step5 :编译源代码,生成共享库

在velodyne_plugin文件加打开终端:

mkdir build
cd build
cmake ..
make

成功之后在build文件夹下生成一个共享库文件:libvelodyne_plugin.so

step6:采用新的world文件检验plugin的效果

新建world文件gedit velodyne.world并输入以下内容:

<?xml version="1.0" ?>
<sdf version="1.5">
  <world name="default&#
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值