Closed chongyi-zheng closed 3 years ago
Hi @YeeCY ,
Apologies for the delay -- somehow missed this notification. Unlike all the other robot arms in robosuite, the UR5e robot only has 6DOF -- which means that there's no extra redundancy when trying to control the full 6DOF robot pose (x, y, z, ax, ay, az). So my initial thought is that the agent is easily reaching a pose singularity, resulting in unstable sim behavior (i.e.: the NaNs you're getting).
What is strange though is that this error is occurring after exactly 68 epochs every time -- especially if you randomized the seed.
Can you try the following? UR5e wasn't tuned that much, so it could very well possibly be a modeling problem.
In controllers/osc.py
, change L176-L177 to the following:
self.position_limits = np.array(position_limits) if position_limits is not None else position_limits
self.orientation_limits = np.array(orientation_limits) if orientation_limits is not None else orientation_limits
This fixes a small bug that I've fixed on a separate branch but haven't merged into master yet.
Then, change the position_limits
in controllers/config/osc_pose.py
to [[-0.25, -0.25, 0.8], [0.25, 0.25, 1.1]]
. This will prevent the agent from being able to command the robot arm outside of its workspace and causing a singularity.
Lastly, go to models/assets/robots/ur5e/robot.xml
, and change all damping
values to 0.001
, and also add frictionloss=0.01
for all of these joints. This will improve the actuator stability of the model.
After making these changes, can you try training the agent again? I tested the above configuration and it seems to control a bit better, at least from a teleoperation standpoint.
These issues have been fixed in the master branch of robosuite in v1.1.0
I want to try SAC with UR5e Lift OSC Pose environment, so I modify the variant of Panda like this
The experiment starts normally, but a mujoco error pops up after running to 68 epochs.
I try to use different seeds, but the error stills there after running to exactly 68 epochs. Any idea?