Hello. We’ve found cartesian space slows down fps. For example on my PC using ‘macro_action’ and ‘joints’ action spaces environment could make around 1000 steps per second. But ‘cartesian’ slows down to 100 steps per second.
The reason is inverse kinematics calculation. Every environment step is simulation step, so to change arm pose in ‘joints’ or ‘cartesian’ spaces you should send the same action for 100-500 steps and the same inverse kinematics calculations are performed 100-500 times. To speed up actions in ‘cartesian’ space action caching can be used (as in ‘macro’ space). Also ‘gripper_command’ is ignored in ‘cartesian_space’.
Dear @ermekaitygulov,
thanks for the bug report.
A new release of real_robots repository will be available before Round 2, which will include a fix so that ‘gripper_command’ is not ignored.
We’ve found cartesian space slows down fps. For example on my PC using ‘macro_action’ and ‘joints’ action spaces environment could make around 1000 steps per second. But ‘cartesian’ slows down to 100 steps per second.
The reason is inverse kinematics calculation. Every environment step is simulation step, so to change arm pose in ‘joints’ or ‘cartesian’ spaces you should send the same action for 100-500 steps and the same inverse kinematics calculations are performed 100-500 times. To speed up actions in ‘cartesian’ space action caching can be used (as in ‘macro’ space)
Good idea!
I will add a caching mechanism so that if you send the same command as the previous one it won’t perform the inverse kynematic again (i.e. it keeps the latest inverse kynematic result saved).
This will also be included in the release before Round 2.