15 官方插件介绍

一、gazebo自带插件介绍

gazebo自带的插件可分为4类,分别是

  • 控制器插件(Controller Plugins):这些插件用于添加和控制模型的运动。

  • 传感器插件(Sensor Plugins):Gazebo 支持各种传感器模拟,如摄像头、激光雷达、IMU 等。这些传感器通常由插件驱动。

  • 用户界面插件(User Interface Plugins):这些插件用于自定义 Gazebo 仿真的用户界面。

  • 世界插件(World Plugins):这些插件可以添加到仿真世界中,用于实现全局的行为和效果。

gazebo 11安装时会自动安装相应的插件,gazebo插件so库的目录路径如下:

/usr/lib/x86_64-linux-gnu/gazebo-11/plugins

这些插件共有74个,包括常见的基本插件如差速驱动的插件libDiffDrivePlugin.so,手柄控制的插件libJoyPlugin.so,还有一些第三方插件如libLedPlugin.so

具体插件清单如下:

libActorPlugin.so: 用于模拟角色或演员,通常用于虚拟场景中的人物。
libActuatorPlugin.so: 用于模拟各种类型的执行器或致动器。
libAmbientOcclusionVisualPlugin.so: 用于增强环境光遮蔽的可视效果。
libArduCopterPlugin.so: 用于模拟 ArduCopter 多旋翼飞行器的行为。
libArrangePlugin.so: 用于安排和排列物体或元素的插件。
libAttachLightPlugin.so: 用于将光源附加到物体上,改善物体的照明效果。
libBlinkVisualPlugin.so: 用于模拟物体的闪烁或闪光效果。
libBreakableJointPlugin.so: 用于模拟可以断裂的关节。
libBuoyancyPlugin.so: 用于模拟物体在液体中的浮力和浮动。
libCameraPlugin.so: 用于模拟相机传感器,实现视觉数据的仿真。
libCartDemoPlugin.so: 用于演示购物车或运输车辆的仿真。
libCessnaGUIPlugin.so: 用于 Cessna 飞机的用户界面。
libCessnaPlugin.so: 用于模拟 Cess不na 飞机。
libContactPlugin.so: 用于处理物体之间的碰撞和接触。
libContainPlugin.so: 用于模拟容器和容纳物体的插件。
libDepthCameraPlugin.so: 用于模拟深度相机传感器。
libDiffDrivePlugin.so: 用于模拟差动驱动机器人的运动和控制。
libElevatorPlugin.so: 用于模拟电梯或升降机的行为。
libFiducialCameraPlugin.so: 用于模拟基准相机传感器。
libFlashLightPlugin.so: 用于模拟闪光灯或探照灯的光照效果。
libFollowerPlugin.so: 用于模拟跟随物体或路径的仿真。
libForceTorquePlugin.so: 用于模拟力和扭矩传感器。
libGimbalSmall2dPlugin.so: 用于模拟双轴云台的行为。
libGpuRayPlugin.so: 用于模拟使用 GPU 进行激光线束的仿真。
libGravityCompensationPlugin.so: 用于模拟重力补偿控制。
libHarnessPlugin.so: 用于模拟各种类型的齿轮和支撑装置。
libHeightmapLODPlugin.so: 用于模拟高程图的级别细节。
libHydraDemoPlugin.so: 用于演示 Hydra 设备的仿真。
libHydraPlugin.so: 用于模拟 Hydra 设备的行为。
libImuSensorPlugin.so: 用于模拟惯性测量单元 (IMU) 传感器。
libInitialVelocityPlugin.so: 用于模拟物体的初始速度。
libJointControlPlugin.so: 用于控制物体的关节和连接。
libJointTrajectoryPlugin.so: 用于模拟物体的关节轨迹。
libJoyPlugin.so: 用于处理游戏手柄或遥控器输入的仿真。
libKeyboardGUIPlugin.so: 用于模拟键盘输入的用户界面。
libKeysToCmdVelPlugin.so: 用于将键盘输入映射到速度命令。
libKeysToJointsPlugin.so: 用于将键盘输入映射到关节命令。
libLedPlugin.so: 用于模拟 LED 灯或指示灯的效果。
libLensFlareSensorPlugin.so: 用于模拟透镜耀斑传感器。
libLiftDragPlugin.so: 用于模拟升力和阻力。
libLinearBatteryConsumerPlugin.so: 用于模拟线性电池的消耗。
libLinearBatteryPlugin.so: 用于模拟线性电池。
libLinkPlot3DPlugin.so: 用于模拟三维连接图。
libLookAtDemoPlugin.so: 用于演示注视目标的仿真。
libMisalignmentPlugin.so: 用于模拟连接的误差或不精确性。
libModelPropShop.so: 用于创建和管理物体属性的插件。
libMudPlugin.so: 用于模拟泥浆和泥土效果的插件。
libPlaneDemoPlugin.so: 用于演示飞机的仿真。
libPressurePlugin.so: 用于模拟气压传感器。
libRandomVelocityPlugin.so: 用于模拟物体的随机速度。
libRayPlugin.so: 用于模拟射线传感器。
libRaySensorNoisePlugin.so: 用于模拟射线传感器的噪声效果。
libReflectancePlugin.so: 用于模拟反射性传感器。
libRegionEventBoxPlugin.so: 用于创建事件触发区域的插件。
libRestUiPlugin.so: 用于用户界面的休息和复位。
libRestWebPlugin.so: 用于创建 Web 用户界面的插件。
libRubblePlugin.so: 用于模拟碎石和碎片效果的插件。
libShaderParamVisualPlugin.so: 用于控制着色器参数的可视效果。
libSimEventsPlugin.so: 用于模拟事件和事件触发。
libSimpleTrackedVehiclePlugin.so: 用于模拟简单的履带式车辆。
libSkidSteerDrivePlugin.so: 用于模拟斜摩擦驱动机器人的运动和控制。
libSonarPlugin.so: 用于模拟声纳传感器。
libSphereAtlasDemoPlugin.so: 用于演示球体图集的仿真。
libStaticMapPlugin.so: 用于模拟静态地图的插件。
libStopWorldPlugin.so: 用于停止仿真世界的插件。
libTimerGUIPlugin.so: 用于创建计时器用户界面的插件。
libTouchPlugin.so: 用于模拟触摸传感器。
libTrackedVehiclePlugin.so: 用于模拟履带式车辆。
libTransporterPlugin.so: 用于模拟运输设备的插件。
libVariableGearboxPlugin.so: 用于模拟可变变速器的插件。
libVehiclePlugin.so: 用于模拟车辆的插件。
libWheelSlipPlugin.so: 用于模拟车轮打滑的效果。
libWheelTrackedVehiclePlugin.so: 用于模拟车轮履带式车辆的插件。
libWindPlugin.so: 用于模拟风力和风向的插件。

二、world场景中测试插件

gazbeo提供world场景文件可以测试这些插件的功能,world场景文件目录路径如下:

/usr/share/gazebo-11/worlds

world场景清单如下:

actor_bvh.world                   nested_model.world
actor.world                       nested_multilink_shape.world
animated_box.world                openal.world
animation_tension.world           ortho.world
attach_lights.world               osrf_elevator.world
blank.world                       pioneer2dx_camera.world
blink_visual.world                pioneer2dx_laser_camera.world
cafe.world                        pioneer2dx_laser.world
camera_intrinsics.world           pioneer2dx.world
camera.world                      plane_demo.world
cart_demo.world                   plane_propeller_demo.world
cessna_demo.world                 plot3d.world
collision_zero.world              plugin.world
contact.world                     point_light_shadows_demo.world
contain_plugin_demo.world         polyline.world
contain_plugin_moving_demo.world  population.world
deform_visual.world               pr2.world
depth_camera2.world               presentation.world
depth_camera.world                pressure_sensor.world
elevator.world                    profiler.world
empty_1_0.world                   projector.world
empty_bullet.world                random_velocity.world
empty_sky.world                   ray_cpu.world
empty.world                       ray_noise_plugin.world
everything.world                  reflectance.world
fiducial.world                    road_textures.world
flash_light_plugin_demo.world     road.world
flocking.world                    robocup09_spl_field.world
force_torque_demo.world           robocup14_spl_field.world
friction_demo.world               robocup_3Dsim.world
friction_pyramid.world            rubble.world
fuel_models.world                 seesaw.world
gravity_compensation.world        shapes_bitmask.world
gripper.world                     shapes_layers.world
harness.world                     shapes_shininess.world
heightmap_dem.world               shapes.world
heightmap.world                   sim_events.world
hydra_demo.world                  simple_arm_teleop.world
imu_demo.world                    simple_arm.world
initial_velocity.world            simple_gripper.world
init_joint_control.world          single_rotor_demo.world
iris_arducopter_demo.world        sonar_demo.world
joint_damping_demo.world          sphere_atlas_demo.world
joint_friction_demo.world         spotlight_shadows_demo.world
joints.world                      ssao_plugin.world
joy_demo.world                    stacks.world
keys_to_cmd_vel.world             static_map_plugin.world
led_plugin_demo.world             timer_gui.world
lensflare_plugin.world            torsional_friction_demo.world
lensflare_wideangle_cam.world     touch_plugin_demo.world
lift_drag_demo.world              tracked_vehicle_simple.world
lights.world                      tracked_vehicle_wheeled.world
linear_battery_demo.world         transporter.world
logical_camera.world              trigger.world
lookat_demo.world                 twin_rotor_demo.world
magnetometer.world                underwater.world
mass_on_rails.world               variable_gearbox_plugin.world
misalignment_plugin_demo.world    willowgarage.world
mud_bitmask.world                 wind_demo.world
mud.world                         wireless_sensors.world
multilink_shape.world             zephyr_demo.world

加载附带行人插件world场景文件:

cd /usr/share/gazebo-11/worlds
gazebo actor_bvh.world

三、Gazebo插件源码

Gazebo 11插件的源码可以从gazebo的整个工程目录中寻找,以下为gazebo 11自带的插件源码地址。

https://github.com/gazebosim/gazebo-classic/tree/gazebo11/plugins

三、ROS自带的gazebo插件

ROS自带gazebo的插件,可通过下列命令查看

ls /opt/ros/melodic/lib/libgazebo_ros_*

libgazebo_ros_api_plugin.so
libgazebo_ros_block_laser.so
libgazebo_ros_bumper.so
libgazebo_ros_camera.so
libgazebo_ros_camera_utils.so
libgazebo_ros_control.so
libgazebo_ros_depth_camera.so
libgazebo_ros_diff_drive.so
libgazebo_ros_elevator.so
libgazebo_ros_f3d.so
libgazebo_ros_force.so
libgazebo_ros_ft_sensor.so
libgazebo_ros_gpu_laser.so
libgazebo_ros_hand_of_god.so
libgazebo_ros_harness.so
libgazebo_ros_imu_sensor.so
libgazebo_ros_imu.so
libgazebo_ros_joint_pose_trajectory.so
libgazebo_ros_joint_state_publisher.so
libgazebo_ros_laser.so
libgazebo_ros_multicamera.so
libgazebo_ros_openni_kinect.so
libgazebo_ros_p3d.so
libgazebo_ros_paths_plugin.so
libgazebo_ros_planar_move.so
libgazebo_ros_projector.so
libgazebo_ros_prosilica.so
libgazebo_ros_range.so
libgazebo_ros_skid_steer_drive.so
libgazebo_ros_template.so
libgazebo_ros_tricycle_drive.so
libgazebo_ros_triggered_camera.so
libgazebo_ros_triggered_multicamera.so
libgazebo_ros_utils.so
libgazebo_ros_vacuum_gripper.so
libgazebo_ros_video.so
libgazebo_ros_wheel_slip.so
  • vision_reconfigure:用于重新配置视觉传感器,允许在运行时更改传感器参数。
  • gazebo_ros_utils:提供一些常用的ROS与Gazebo通信功能,用于简化ROS节点与Gazebo的交互。
  • gazebo_ros_camera_utils:包含有关Gazebo相机传感器的实用工具和功能。
  • gazebo_ros_camera:用于在Gazebo中模拟相机传感器,可用于生成图像数据。
  • gazebo_ros_triggered_camera:模拟可触发的相机传感器,以便在需要时捕获图像。
  • gazebo_ros_multicamera:允许在Gazebo中模拟多个相机传感器,用于多视角或多摄像头系统。
  • MultiCameraPlugin:用于配置和管理多摄像头系统的插件。
  • gazebo_ros_triggered_multicamera:模拟可触发的多摄像头系统,可按需捕获图像。
  • gazebo_ros_depth_camera:用于模拟深度相机传感器,可生成深度图像。
  • gazebo_ros_openni_kinect:模拟Microsoft Kinect传感器,可用于深度和RGB图像捕获。
  • gazebo_ros_laser:用于模拟激光雷达传感器,可生成激光扫描数据。
  • gazebo_ros_gpu_laser: 用于模拟GPU加速的激光雷达传感器,提供更高的性能。
  • gazebo_ros_block_laser:模拟块式激光雷达传感器,可用于生成离散障碍物信息。
  • gazebo_ros_p3d:用于模拟3D位置和姿态传感器,可用于获取机器人在空间中的位置和方向。
  • gazebo_ros_imu:模拟惯性测量单元(IMU)传感器,用于获取机器人的加速度和角速度数据。
  • gazebo_ros_imu_sensor:提供IMU传感器的功能,用于模拟姿态和运动。
  • gazebo_ros_f3d:用于模拟3D力传感器,可测量物体对机器人的力。
  • gazebo_ros_ft_sensor:提供力和扭矩传感器的功能,用于模拟机器人的触觉。
  • gazebo_ros_bumper:用于模拟机器人的碰撞传感器,可检测碰撞事件。
  • gazebo_ros_hand_of_god:允许用户通过手动干预将物体移动到新位置的插件。
  • gazebo_ros_template:用于创建自定义插件的模板,可根据需要定制。
  • gazebo_ros_projector: 用于模拟投影仪,可在Gazebo仿真中投射图像或光束。
  • gazebo_ros_prosilica: 用于模拟Prosilica相机,支持高性能相机图像捕获。
  • gazebo_ros_force: 提供力和扭矩控制,允许用户对物体施加力和扭矩。
  • gazebo_ros_joint_state_publisher: 用于发布机器人模型的关节状态信息到ROS,以供其他节点使用。
  • gazebo_ros_joint_pose_trajectory: 允许用户通过ROS消息控制机器人关节的位置轨迹。
  • gazebo_ros_diff_drive: 用于模拟差动驱动机器人,提供ROS接口以控制差分驱动。
  • gazebo_ros_tricycle_drive: 用于模拟三轮车型机器人,可控制三轮车的运动。
  • gazebo_ros_skid_steer_drive: 用于模拟滑移驱动机器人,支持滑移运动的控制。
  • gazebo_ros_video: 用于模拟视频流传感器,可用于在Gazebo中生成模拟视频流。
  • gazebo_ros_planar_move: 允许用户通过ROS消息控制模型的平面运动,用于控制机器人的平移。
  • gazebo_ros_range: 用于模拟测距传感器,可测量物体与传感器之间的距离。
  • gazebo_ros_vacuum_gripper: 用于模拟真空夹具或夹爪,可用于机器人的物体抓取和释放。
  • gazebo_ros_elevator: 电梯插件,可以控制电梯门开关和电梯上下运动。(gazebo>6.0)
  • gazebo_ros_harness: 插件用于模拟物体上的绳索、链条或绳索的行为。它允许你将绳索连接到物体上,并模拟受重力和其他物理效应的影响。这对于模拟吊索、绳索、吊车等应用非常有用。(gazebo>7.3)
  • gazebo_ros_wheel_slip: 插件用于模拟轮胎的打滑行为。它是用于在模拟中实现轮胎与地面之间的附着和打滑行为的插件。轮胎与地面之间的附着和打滑是模拟车辆和机器人移动时至关重要的因素。这个插件允许模拟不同地面条件下的车辆轮胎行为,包括附着和打滑。(gazebo>9.5)

四、ROS插件源码

ROS的Gazebo插件源码也在github上开源了,以下是ROS的Gazebo插件源码开源地址:

https://github.com/ros-simulation/gazebo_ros_pkgs/tree/noetic-devel/gazebo_plugins/src

五、Gazebo和ROS插件的区别

这两个目录下的插件来自不同的源和版本:

  1. /usr/lib/x86_64-linux-gnu/gazebo-11/plugins:

    • 这些插件是直接与 Gazebo 仿真引擎捆绑在一起的。
    • 位于系统的 Gazebo 11 安装目录,提供了 Gazebo 本身的核心功能。
    • 这些插件与特定版本的 Gazebo 直接关联,因此它们可能包含与 Gazebo 11 版本的兼容性。
  2. /opt/ros/melodic/lib/libgazebo_ros_*:

    • 这些插件是由 ROS Noetic 版本的 gazebo_ros_pkgs 包提供的。
    • 针对 ROS Noetic 中的 Gazebo 版本编译和优化的插件。
    • 这些插件通常用于与 ROS 集成,提供 ROS 接口以及其他 ROS 相关功能。

区别主要在于它们的关联版本和提供的功能。/opt/ros/melodic/lib/libgazebo_ros_* 是 ROS 对 Gazebo 的封装,以提供 ROS 用户友好的接口和功能,而 /usr/lib/x86_64-linux-gnu/gazebo-11/plugins 包含 Gazebo 自身的核心插件,用于支持 Gazebo 的基本功能,不包含ROS接口

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容