| github_url: | https://github.com/ros-controls/ros2_controllers/blob/{REPOS_FILE_BRANCH}/multi_omni_wheel_drive_controller/doc/userdoc.rst |
|---|
Controller for mobile robots with omnidirectional drive.
Supports using three or more omni wheels spaced at an equal angle from each other in a circular formation. To better understand this, have a look at :ref:`mobile_robot_kinematics`.
The controller uses velocity input, i.e., stamped Twist messages where linear x, y, and angular z components are used.
Values in other components are ignored.
Odometry is computed from hardware feedback and published.
- Realtime-safe implementation.
- Odometry publishing
- Automatic stop after command time-out
When controller is in chained mode, it exposes the following references which can be commanded by the preceding controller:
<controller_name>/linear/x/velocitydouble, in m/s<controller_name>/linear/y/velocitydouble, in m/s<controller_name>/angular/z/velocitydouble, in rad/s
Together, these represent the body twist (which in unchained-mode would be obtained from ~/cmd_vel).
As feedback interface type the joints' position (hardware_interface::HW_IF_POSITION) or velocity (hardware_interface::HW_IF_VELOCITY, if parameter position_feedback=false) are used.
Joints' velocity (hardware_interface::HW_IF_VELOCITY) are used.
- ~/cmd_vel [geometry_msgs/msg/TwistStamped]
- Velocity command for the controller. The controller extracts the x and y component of the linear velocity and the z component of the angular velocity. Velocities on other components are ignored.
- ~/odom [nav_msgs::msg::Odometry]
- This represents an estimate of the robot's position and velocity in free space.
- /tf [tf2_msgs::msg::TFMessage]
- tf tree. Published only if
enable_odom_tf=true
This controller uses the generate_parameter_library to handle its parameters. The parameter definition file located in the src folder contains descriptions for all the parameters used by the controller.
.. generate_parameter_library_details:: ../src/multi_omni_wheel_drive_controller_parameters.yaml
An example parameter file for this controller can be found in the test directory:
.. literalinclude:: ../test/config/test_multi_omni_wheel_drive_controller.yaml :language: yaml