Gazebo Sim

API Reference

8.7.0
MecanumDrive Class Reference

Mecanum drive controller which can be attached to a model with any number of front/back left/right wheels. More...

#include <MecanumDrive.hh>

Public Member Functions

 MecanumDrive ()
 Constructor. More...
 
 ~MecanumDrive () override=default
 Destructor. More...
 
void Configure (const Entity &_entity, const std::shared_ptr< const sdf::Element > &_sdf, EntityComponentManager &_ecm, EventManager &_eventMgr) override
 Configure the system. More...
 
void PostUpdate (const UpdateInfo &_info, const EntityComponentManager &_ecm) override
 
void PreUpdate (const UpdateInfo &_info, EntityComponentManager &_ecm) override
 
- Public Member Functions inherited from System
 System ()=default
 Constructor. More...
 
virtual ~System ()=default
 Destructor. More...
 

Additional Inherited Members

- Public Types inherited from System
using PriorityType = int32_t
 Signed integer type used for specifying priority of the execution order of PreUpdate and Update phases. More...
 
- Static Public Attributes inherited from System
constexpr static PriorityType kDefaultPriority = {0}
 Default priority value for execution order of the PreUpdate and Update phases. More...
 
constexpr static std::string_view kPriorityElementName
 Name of the XML element from which the priority value will be parsed. More...
 

Detailed Description

Mecanum drive controller which can be attached to a model with any number of front/back left/right wheels.

System Parameters

  • <front_left_joint>: Name of a joint that controls a front left wheel. This element can appear multiple times, and must appear at least once.
  • <front_right_joint>: Name of a joint that controls a front right wheel. This element can appear multiple times, and must appear at least once.
  • <back_left_joint>: Name of a joint that controls a back left wheel. This element can appear multiple times, and must appear at least once.
  • <back_right_joint>: Name of a joint that controls a back right wheel. This element can appear multiple times, and must appear at least once.
  • <wheelbase>: Longitudinal distance between front and back wheels, in meters. This element is optional, although it is recommended to be included with an appropriate value. The default value is 1.0m.
  • <wheel_separation>: Lateral distance between left and right wheels, in meters. This element is optional, although it is recommended to be included with an appropriate value. The default value is 1.0m.
  • <wheel_radius>: Wheel radius in meters. This element is optional, although it is recommended to be included with an appropriate value. The default value is 0.2m.
  • <odom_publish_frequency>: Odometry publication frequency. This element is optional, and the default value is 50Hz.
  • <topic>: Custom topic that this system will subscribe to in order to receive command velocity messages. This element if optional, and the default value is /model/{name_of_model}/cmd_vel.
  • <odom_topic>: Custom topic on which this system will publish odometry messages. This element if optional, and the default value is /model/{name_of_model}/odometry.
  • <tf_topic>: Custom topic on which this system will publish the transform from frame_id to child_frame_id. This element if optional, and the default value is /model/{name_of_model}/tf.
  • <frame_id>: Custom frame_id field that this system will use as the origin of the odometry transform in both the <tf_topic> gz.msgs.Pose_V message and the <odom_topic> gz.msgs.Odometry message. This element if optional, and the default value is {name_of_model}/odom.
  • <child_frame_id>: Custom child_frame_id that this system will use as the target of the odometry trasnform in both the <tf_topic> gz.msgs.Pose_V message and the <odom_topic> gz.msgs.Odometry message. This element if optional, and the default value is {name_of_model}/{name_of_link}.

Constructor & Destructor Documentation

◆ MecanumDrive()

Constructor.

◆ ~MecanumDrive()

~MecanumDrive ( )
overridedefault

Destructor.

Member Function Documentation

◆ Configure()

void Configure ( const Entity _entity,
const std::shared_ptr< const sdf::Element > &  _sdf,
EntityComponentManager _ecm,
EventManager _eventMgr 
)
overridevirtual

Configure the system.

Parameters
[in]_entityThe entity this plugin is attached to.
[in]_sdfThe SDF Element associated with this system plugin.
[in]_ecmThe EntityComponentManager of the given simulation instance.
[in]_eventMgrThe EventManager of the given simulation instance.

Implements ISystemConfigure.

◆ PostUpdate()

void PostUpdate ( const UpdateInfo _info,
const EntityComponentManager _ecm 
)
overridevirtual

Implements ISystemPostUpdate.

◆ PreUpdate()

void PreUpdate ( const UpdateInfo _info,
EntityComponentManager _ecm 
)
overridevirtual

Implements ISystemPreUpdate.


The documentation for this class was generated from the following file: