HassoPlattnerInstituteHCI / dualpantoframework

DualPanto Framework
7 stars 0 forks source link

`movePantoTo` by force based control #107

Open JotaroS opened 6 years ago

JotaroS commented 6 years ago

Current status

At least before #97, the mechanism behind movePanto was based on heuristic pseudo inverse kinematics, which is made by @Lichtso and works very well. This works like this:

It's on panto.h for current code.

Problem

If you want to drag panto after doing movePantoTo, you get asymmetric force feedback along angle direction and radius direction, since it's not Force controlled. In the other words pseudo inverse kinematics does not control force. (@oschneid )

Proposal

We keep movePantoTo functionality but change background mechanism as force based control, eliminating pseudo-inverse kinematics from that operation (we keep code for usual IK calculation i guess....) We just render force F=-ke according to the error to the position send by movePantoTo as e .

@mgjm Is current position-based control based on pseudo-inverse kinematics as before? This might come after once you refactor the code.

mgjm commented 6 years ago

The new position based controller in lib/controller/position.js is still based on inverseKinematics. The algorithm is just ported from the firmware. (But the changed formula in panto.h Line 31 did not work for me, but the comment above worked like a charm)

JotaroS commented 6 years ago

OK, then we need to think about the issue. Let us discuss first

(BTW...but the formula didn't work? I and @Lichtso checked that the commented out code was somehow wrong but sure we need to check this out. This calculates innerangle using Kosinussatz.... (@Lichtso thoughts?)) (・_・;)

boeckhoff commented 4 years ago

@JotaroS whats the status on this ?