ROBOTICS 101Concept explainer

Mobile Manipulation

A mobile manipulator has wheels and an arm, so it can reach almost anywhere, but now there are many ways to reach each target. Driving the base is slow and uses a lot of energy, while moving the arm is quick but limited in range. A whole-body controller decides how to split each motion between them.

Click to place a target.

Weighted whole-body motion

Stack the base position \(x_b\) and the arm joints \(\mathbf{q}_a\) into one vector. To move the hand by \(\dot{\mathbf{x}}\), pick the joint velocities with the lowest weighted cost, a weighted pseudoinverse with cost matrix \(W\):

$$\dot{\mathbf{q}} = W^{-1}J^\top\left(J\,W^{-1}J^\top\right)^{-1}\dot{\mathbf{x}}, \qquad W = \operatorname{diag}(w_{\text{base}},\ w_{\text{arm}},\ w_{\text{arm}})$$

What to notice

Make the base expensive and the robot reaches with its arm alone whenever it can, only rolling when the target is out of reach. Make the arm expensive and the robot drives up close and barely moves its arm. A real controller also keeps the arm away from singularities and joint limits and keeps the base clear of obstacles. Mobile manipulators like Stretch, TIAGo, and Spot with an arm all solve this every time they reach.