No version for distro humble showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro kilted showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro lyrical showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro rolling showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro ardent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro bouncy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro crystal showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro eloquent showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro dashing showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro galactic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro foxy showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro iron showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro lunar showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro jade showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro indigo showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro hydro showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro kinetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro melodic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange

No version for distro noetic showing jazzy. Known supported distros are highlighted in the buttons above.
Package symbol

twist_mux_controller package from husarion_controllers repo

husarion_mecanum_drive_controller low_pass_filter twist_mux_controller

ROS Distro
jazzy

Package Summary

Version 0.1.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/husarion/husarion_controllers.git
VCS Type git
VCS Version jazzy
Last Updated 2026-04-22
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

Controller for managing multiple twist inputs

Additional Links

Maintainers

  • Husarion

Authors

  • Dawid Kmak

Twist Mux Controller

The TwistMuxController is a ROS 2 chainable controller designed to process velocity commands from multiple sources and forward them to hardware interfaces or other chainable controllers. The controllers support mobile platform controllers with holonomic and non-holonomic drive type.

Publishers

  • ~/source [std_msgs/msg/String]: Publishes the source of the active velocity command. The source name corresponds to the key names in the cmd_vel_inputs parameter.

Subscribers

  • {cmd_vel_inputs.source_key.topic} [geometry_msgs/msg/TwistStamped]: For each input in cmd_vel_inputs parameter, controller will create subscriber to that command velocity. The topic name depends on the topic parameter. See Example usage for example topics.

Parameters

  • holonomic [bool, default: false]: Whether the robot drive type is holonomic or non-holonomic. This will affect the number of command interfaces.
  • cmd_vel_inputs [dict, default: {}]: List of command velocity inputs. Each key in the dictionary has a unique name and the following parameters:
    • topic [string, default: {source_name}/cmd_vel]: Name of the topic to subscribe to.
    • timeout [double, default: 0.5]: Timeout for command velocity topic in seconds.
    • priority [uint, default: 0]: The priority of the input in range [0, 255], where 0 is the lowest priority and 255 is the highest. Note, if there are multiple inputs with the same priority, the output will be chosen arbitrary.
  • command_interface_linear_x [string, default: linear/x/velocity]: Command interface for linear X velocity.
  • command_interface_linear_y [string, default: linear/y/velocity]: Command interface for linear Y velocity. Available only if holonomic parameter is set to true.
  • command_interface_angular_z [string, default: angular/z/velocity]: Command interface for angular velocity.

Interfaces

Exported Command Interfaces

  • {node_name}/linear/x/velocity: Linear X Velocity
  • {node_name}/linear/y/velocity: Linear Y Velocity. Available only if holonomic parameter is set to true.
  • {node_name}/angular/z/velocity: Angular Velocity

Example Usage

Controller configuration:

  twist_mux_controller:
    ros__parameters:
      holonomic: false
      cmd_vel_inputs:
        manual:
          topic: manual/cmd_vel
          timeout: 0.2
          priority: 100
        autonomous:
          topic: autonomous/cmd_vel
          timeout: 0.2
          priority: 10
        unknown:
          topic: cmd_vel
          timeout: 0.2
          priority: 1
      command_interface_linear_x: drive_controller/linear/velocity
      command_interface_angular_z: drive_controller/angular/velocity

Above configuration will create subscribers for the following topics:

  • /manual/cmd_vel
  • /autonomous/cmd_vel
  • /cmd_vel
CHANGELOG

Changelog for package twist_mux_controller

0.1.0 (2026-04-22)

  • ROS 2 twist mux controller (#14)
    • velocity input controller
    • add low pass filter
    • and and update parameters
    • add multiple cmd_vel inputs
    • add source publisher
    • add zero threshold
    • add docs
    • use priority checking
    • rename to twist_mux_controller
    • clean up
    • add support for holonomic platforms
    • pre-commit
    • review fixes
    • add topic name in warn msgs
  • Contributors: Dawid Kmak

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged twist_mux_controller at Robotics Stack Exchange