STATE-SPACE CONTROL · LQR · MUJOCO MOBILE MANIPULATION
State-Space Analysis of a Stretch3 Robot for Pick and Place
A Hello Robot Stretch3 mobile manipulator: lift and arm extension modeled in state space and formally shown controllable, observable, and stable in MATLAB, then the full 8-DOF robot driven through pick-and-place in MuJoCo with a tuned PD controller and an LQR benchmarked against it.
TYPE
Mobile manipulation · Optimal control
ROLE
Solo: modeling to LQR benchmark · Advanced System Modeling & Control
STACK
MuJoCo · MATLAB · Python · 8 DOF
PD vs LQR closed-loop response on the two modeled axes. The LQR settles faster on both lift and arm extension, with a small undershoot on the lift.The wrist positioning the gripper over the cuboid and cylinder during the MuJoCo pick-and-place run.The MATLAB verdict: every eigenvalue in the left half-plane, and controllability and observability matrices both full rank.
Overview
Fixed-base industrial arms do pick-and-place precisely, but they are locked into fixed workcells and fixed capital. This project explores the flexible-automation alternative: Hello Robot's Stretch3 mobile manipulator, simulated in MuJoCo, picking and placing a cuboid and a cylinder anywhere its base can drive.
Under the simulation sits the control theory. The lift and arm extension were modeled as a six-state state-space system, built symbolically in MATLAB and formally checked for controllability, observability, and stability, then a PD controller drove all eight degrees of freedom and an LQR took on the modeled axes to see how much performance optimal control buys.
Design & Build
Model: Lift and arm extension as mass-spring-damper joints with first-order actuator dynamics: six states, two inputs, with the A, B, C, D matrices constructed symbolically in MATLAB from assumed numerical parameters.
Proof: Controllability and observability matrices both computed at full rank six, every eigenvalue of A with strictly negative real part: the modeled system is controllable, observable, asymptotically stable, and BIBO stable.
Control: A Python PD controller drives all 8 DOF of Hello Robot's Stretch3 MuJoCo model - base x and y, prismatic lift, telescopic extension, three wrist axes, and gripper - with gains tuned iteratively in the model XML.
Benchmark: An LQR designed on the two modeled axes as a proof of concept, its Q and R weights tuned for speed, then compared head-to-head against the PD on the same step response.
Challenges
Tuning eight joints at once: each stiffness-damping pair traded speed against overshoot, and pick-and-place punishes both the slow and the bouncy.
Keeping the analytical model tractable - reducing eight degrees of freedom to the two that carry the pick height and reach without losing the structure worth proving things about.
Grasping under contact: closed-loop feedback at every simulation step so the robot compensates for small disturbances and contact forces instead of fumbling the object.
Result
Complete pick-and-place of both objects in MuJoCo with all eight degrees of freedom driven by the tuned PD controller.
The modeled system formally shown controllable, observable, asymptotically stable, and BIBO stable in MATLAB - the analysis that argues the concept is fit to carry onto Stretch3 hardware.
The LQR settled faster than the tuned PD at higher control aggressiveness, with a small undershoot on the lift - and MPC and hardware validation flagged as the next steps.