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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control 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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange

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

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

TODO: Package description

Maintainers

  • WATonomous

Authors

No additional authors.

pid_control

Low-level vehicle control nodes that close the loop between Ackermann setpoints and ROSCCO actuator commands. Three lifecycle nodes cover different stages of the control pipeline.

Overview

The control chain converts planner outputs (desired steering angle + speed) into hardware torque and throttle commands for the OSCC system:

[planner] ──► ackermann_smoother ──► vel_driven_feedforward_pid ──► [oscc_mux]
                                           ▲              ▲
                              steering_feedback     velocity_feedback

Nodes

ackermann_smoother_node

Rate-limiter between the planner and the PID controller. Prevents abrupt setpoint jumps by clamping the rate of change of steering angle and speed. Produces smoother hardware commands and reduces mechanical stress.

pid_control_node

Basic dual PID controller. Runs independent PID loops for steering (setpoint = desired angle, feedback = current angle) and velocity (setpoint = desired speed, feedback = current speed), and combines their outputs into a single ROSCCO command.

vel_driven_feedforward_pid_node

Extended controller with a velocity-dependent feedforward term on top of steering PID. Improves tracking at speed by pre-compensating for the known steering torque required at a given velocity.

Feedforward model:

T_ff = (c0 + c1·v + c2·v²) · steering_setpoint + friction_offset · sign(steering_setpoint)

Polynomial coefficients are fit from bag data using the scripts in analysis/. D-on-measurement avoids derivative kick when the setpoint changes. An EMA filter smooths noisy velocity feedback.

CHANGELOG
No CHANGELOG found.

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged pid_control at Robotics Stack Exchange