Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged ackermann_mux at Robotics Stack Exchange
Package Summary
| Version | 0.0.0 |
| License | Apache 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/WATonomous/wato_monorepo.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-08-25 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- WATonomous
Authors
ackermann_mux
Priority-based multiplexer for Ackermann drive commands (ackermann_msgs/AckermannDriveStamped). Sits between all Ackermann command sources (joystick, action planner, test nodes) and the PID controller, selecting the highest-priority active input at each publish cycle.
Overview
Multiple subsystems may simultaneously want to control the vehicle — a joystick operator, an autonomous planner, or a test signal generator. ackermann_mux arbitrates between them using configurable priority levels, so the joystick always overrides the planner, which overrides test nodes, without any source needing to know about the others.
Architecture
/joystick/ackermann (priority 200) ─┐
/action/ackermann (priority 100) ─┤─► ackermann_mux ─► /ackermann ─► pid_control
/dummy/ackermann (priority 10) ─┘
On each publish tick the node:
- Checks whether any safety-gated input has gone stale — if so, publishes the emergency command immediately.
- Iterates inputs from highest to lowest priority, skipping masked-out inputs.
- Publishes the latest command from the first eligible input, or the emergency command if none qualify.
Safety gating monitors command age on critical inputs (typically the joystick). If the joystick stops sending within safety_threshold seconds, the mux publishes the emergency command (brake) rather than holding the last known command.
Input masking lets a source signal that it is voluntarily idle (e.g., joystick/ackermann_is_idle when the enable trigger is released) so lower-priority inputs can take over without triggering a safety trip.
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake | |
| wato_test | |
| rclcpp | |
| rclcpp_components | |
| rclcpp_lifecycle | |
| lifecycle_msgs | |
| ackermann_msgs | |
| std_msgs |