Dev
Manipulation

Force-Controlled Wiping with a 6-DoF Telescopic Arm

Hybrid position/force control for cleaning curved A-pillars without leaving streaks or scratching trim.

#04 · Dev14 minFor: Manipulation engineers
01Kinematics

Telescopic Prismatic, Not Just Revolute

Most arm tutorials assume a chain of revolute joints. Adding a long telescopic prismatic joint at the base changes two things: the Jacobian column for that joint is constant in direction but the moment arm to the end-effector grows with extension, and the inertia seen at the wrist depends on how far the prismatic is out.

Practically this means gravity compensation and impedance gains have to be parameterized by extension length. We compute them online from the URDF rather than hard-coding them for a single configuration.

02Control

Cartesian Impedance With ros2_control

We use a Cartesian impedance controller built on `ros2_control`. The controller maps a desired stiffness and damping in task space (translational and rotational) into joint torques via the Jacobian transpose. Translational stiffness is high along the surface tangent (so the wiper tracks a planned path) and low along the surface normal (so the wiper conforms to small irregularities).

For wiping motions specifically we add a small force regulation loop along the normal: a target contact force, a measured force from the wrist F/T sensor, and a slow integral term that keeps the wiper engaged without overshooting on liftoff.

03Material-Aware Gains

Soft on Leather, Firm on Glass

The same wiper, the same arm, two very different materials. Leather wants low normal force and high tangential speed — too much force and you burnish the surface. Glass wants higher normal force and slower speed for a streak-free pass.

Gains come from the material lookup described in the segmentation post. The transition between gain sets is rate-limited so the arm doesn't spike force when the predicted class flickers at a material boundary like a leather-to-vinyl trim seam.

04Tool Changer

Vacuum to Wiper Mid-Cycle

Swapping tools changes the dynamic model: a vacuum head is heavy and offset; a microfiber wiper is light and compact. We re-publish the wrist payload to the controller after each tool change so impedance and gravity comp use the right model. Skipping that step shows up as a small but consistent gravity-driven drift after the first wipe — exactly the kind of bug that takes longer to diagnose than to fix.

05Configuration

URDF, SRDF, and MoveIt 2 Patterns

The URDF carries the prismatic-extension-aware inertias. The SRDF defines a small set of named configurations (stowed, transit, cabin-entry, A-pillar approach) that MoveIt 2 uses as planning targets. Most cleaning motions are not free-space MoveIt plans at all — they are short Cartesian paths under the impedance controller — but the named configurations are how the system gets in and out of the cabin safely.

Topics
impedance controlforce controlmanipulationros2_control
Continue

See the controller config

Visit handybot.ai →
Related from the other side
The Five Cabin Tasks We're Engineering Toward — With Real Examples

Cereal on the floor mat, lipstick on the headliner, sand in the seat tracks. The recurring debris patterns from real cabins, and how we are building toward them.

More Dev posts