hinf_controller

Output-feedback controller for an H∞ artifact (hinf or hinf_mixsyn).

Law. H∞ synthesis produces a dynamic controller structurally identical to LQG — a compensator ctrl_A/ctrl_B/ctrl_C/ctrl_D driven by the measured output deviation — so it runs on the same OutputFeedbackController base and the same Tustin discretization. The package only widens the accepted controller_type to {hinf, hinf_mixsyn}.

Measurements. The demo artifact was synthesized with position and velocity outputs (cart_joint.q, joint1.q, cart_joint.qd, joint1.qd), so the controller claims velocity state too and the validity guard enforces both position and velocity bounds. Whether velocities are used is read from the artifact’s output_names, not fixed in the plugin.

Synthesis note (design-time). On this plant the γ-optimal central controller carries ultra-fast modes (~1e9 rad/s) that no 100 Hz loop can realize; the exported artifact comes from a suboptimal design at a backed-off γ, whose discrete closed loop is verifiably stable. This is a design-side concern — documented here because it explains why the H∞ artifact’s matrices are modest in magnitude and the controller is deployable. See the parent repo’s H∞ design docs.

Discretization rate. As with LQG, set update_rate equal to controller_manager.update_rate.

Demo

ros2 launch hinf_controller hinf_demo.launch.py