Interactive demo
Data-driven shape control
Estimate the relation between gripper motion and shape change, then use this local model to drive the object to a target shape.
Try this
Which motions change each feature vector?
Translate and Rotate move the rod as a rigid body; Bend deforms it. Apply each motion and compare which of the three traces change.
The shape servoing loop
The Jacobian is estimated once from test motions, then used and updated at every cycle of the feedback loop.
Δu → ΔsĴ ≈ Δs / Δue = s* − su̇ = λ Ĵ† eSignals in the feedback loop
Each feature component keeps one scale over the whole time window; the error panel shows the three representations on the same normalised axis.
Point coordinates
Edge vectors
Curvature
Robot command u̇
Normalised error
Definitions of the three feature vectors
Point coordinates
The x and y coordinates of each measured point. The vector retains position, orientation and shape, so all three can be controlled, and any rigid motion of the object appears as error.
eₚ = p* − pEdge vectors
The vector from each point to the next. The difference between neighbouring points cancels absolute position, so edge vectors are invariant to translation but change under rotation and bending.
e_d = d* − dCurvature
The turning angle between consecutive edges. The angle difference cancels both position and orientation, so curvature is invariant to rigid motion and depends only on bending.
eκ = κ* − κPoint coordinates retain pose and shape, edge vectors are invariant to translation, and curvature depends only on bending. The choice depends on whether the task specifies the pose of the object.