ARISE-Initiative / robosuite

robosuite: A Modular Simulation Framework and Benchmark for Robot Learning
https://robosuite.ai
Other
1.24k stars 397 forks source link

No-Ops in Demos #188

Closed ryanhoque closed 3 years ago

ryanhoque commented 3 years ago

Hi! I'm planning to do imitation learning in robosuite, but the data collection scripts seem to record actions at fixed time intervals and therefore can have a lot of "no-ops" e.g. when the human is a little slow to demonstrate. It seems like this would erroneously bias a learner toward doing nothing. Is there existing logic to remove these no-ops or should we implement that 'data cleaning' ourselves? Thanks!

amandlek commented 3 years ago

This is a great point! We don't have existing logic for this - you would have to implement this sort of post-processing logic yourself. You might need to tune how you "sense" that nothing is going on in the demonstration depending on the downstream purpose you have in mind - for example, if this is for doing something like Behavioral Cloning, if you exclude too many samples, the agent might suffer more from covariate shift (witnessing states at test-time that are not contained in the training data) because of the excluded samples.

Another alternative is to include an "enabled" signal for your human operators (e.g. an extra key on the keyboard) that can allow the human to temporarily pause the simulation - we have found this to help when doing data collection with other devices like phones, since parts where the operator was disabled can explicitly be filtered out during post-processing.