Closed bycn closed 4 years ago
Could you elaborate? You can interact with CoppeliaSim through PyRep, but that interface was intentionally hidden for the purpose of the benchmark. Could you give me an example of what you would want to do? Best, Stephen
Sure. Let's say I want to identify the position of a block object in the environment and move it upwards by some amount, but do it programmatically. (I feel this would encompass other common use cases, like let's say I want to put a vision sensor in a specific location.)
And just to expand on this use case: would you want demonstrations? (i.e. build your task using the task_builder tool?)
If not, then you would be better off using PyRep
Yeah, demonstrations would probably necessitate the use of a GUI anyways, so, I guess I'd have to use PyRep. Would it be possible for you to demonstrate a barebones script such as, i.e., loading the RLbench reach_target task and using pyrep to moving the boundary box upwards, or something simple like that? It would be helpful, thanks :)
PyRep already gives an example of how you can build a simple reaching environment. See here: https://github.com/stepjam/PyRep/blob/master/examples/example_panda_reach_target.py
I think one important thing to bear in mind is not to confuse what RLBench is. It is a standard set of tasks, where people can add new tasks using the standard scene setup and standard sensors . Also people can easily automatically generate demonstrations when building their tasks. So if you want to start moving/adding sensors, changing the scene, changing the robot, etc, then this should be an indication that RLBench is not what you want, as this moves a way from the purpose of the benchmark.
PyRep on the other (which is what RLBench uses under the hood) is more general and allows modification of the CoppeliaSim scenes. So you can just build you scene using the CoppeliaSim GUI (you are welcome to even use the RLBench ttm as a starting point: https://github.com/stepjam/RLBench/blob/master/rlbench/task_design.ttt) and then you can just add a little programming glue to build your RL env (like in the example I shared in the previous comment)
Hope that help
What's the supported way to edit environments (the task ttms) programmatically?