I am using an KINARM endpoint robot. I am using the position controller demo to move the arm passively (KINARM automatically moves the handle) from one point to another.
After the passive movement, i want the participant to make an active movement manually. But, the arm is locked and cannot make active movement. I tried sending zero as input to force blocks which unlocked the arm after making the passive movement and allowed me to move the arm manually. But, in the next trial, when the passive movement starts again, i start giving actual output from the position controller block to the force block instead of zeros. This leads to sudden jerk in the arm. This jerk is pretty harsh. How do i avoid this jerk?
To sum it up, I want to make the kinarm do a passive movement as i am holding the handle and then allow me to move handle manually after that and repeat that in the next trial without any jerk between the trials.
Could you please let me know how do i get this working?
The problem you have encountered is a tricky one. Please look at the sample task called “Position control – Enable/Disable”.
That sample task is designed to overcome the exact problems you are seeing. the sample task has the ability to work with either a Kinarm Exoskeleton or EP robot. For your purposes you can ignore the Exoskeleton code and remove it. The important parts of the task you will need to copy are:
- The Trajectory subsystem block
- The e_start, e_enable_controller, e_disable_controller signals from Stateflow.
You may need to recompile the sample task to test it depending on the version of MATLAB and Dexterit-E you are using.
All the best,