jrl-umi3218 / mc_rtc

mc_rtc is an interface for simulated and real robotic systems suitable for real-time control
BSD 2-Clause "Simplified" License
122 stars 37 forks source link

Is there something like Joint Velocity Task in FSM tasks? #277

Closed TsuruMasato closed 1 year ago

TsuruMasato commented 2 years ago

Hello, Dr.Gergondet @gergondet and Dr.Tanguy @arntanguy , this is Tsuru in Japan. I got COVID-19 twice, please watch out BA5 variant... (T_T)

My current research topic is about real-time environment recognition and planning. And I want to build my controller with FSM states.

I want a robot to swing his head (camera) right and left slowly. So now I tested a simple OrientationTask, but it doesn't work as I expected at all...

After starting sim_mc.py, the head camera joint moves, then he should climb up stairs.

https://user-images.githubusercontent.com/14979823/180572933-6ea165c0-81e3-4107-8a5a-434a6c003210.mp4

(Originally, the robot could climb up the stairs. But inserting my head original orientation task just before walking, it crashes everything...)

Could you give me some advice for better use of FSM...? And, Is there something like Joint Velocity Task in FSM task types? I have no idea what the target "orientation" in OrientationTask means... Is the orientation in the world frame? Thank you.

gergondet commented 1 year ago

Hi @TsuruMasato

Sorry about not answering this before.

It's possible to do a joint velocity task by setting the stiffness gain on a PostureTask to zero and setting the appropriate refVel.

Another approach in the case you mentioned is to limit the active joints for the head orientation task to those of the neck such that the task does not influence the torso joints and the floating base that are used by other tasks.