├── .gitignore ├── README.md ├── randomizer ├── __init__.py ├── assets │ ├── LICENSE.md │ ├── __init__.py │ ├── fetch │ │ ├── hook.xml │ │ ├── pick_and_place.xml │ │ ├── push.xml │ │ ├── pusher.xml │ │ ├── randomizedfetch.xml │ │ ├── randomizedfetchhook.xml │ │ ├── reach.xml │ │ ├── robot.xml │ │ ├── shared.xml │ │ └── slide.xml │ ├── pusher_3dof.xml │ ├── stls │ │ └── fetch │ │ │ ├── base_link_collision.stl │ │ │ ├── bellows_link_collision.stl │ │ │ ├── elbow_flex_link_collision.stl │ │ │ ├── estop_link.stl │ │ │ ├── forearm_roll_link_collision.stl │ │ │ ├── gripper_link.stl │ │ │ ├── head_pan_link_collision.stl │ │ │ ├── head_tilt_link_collision.stl │ │ │ ├── l_wheel_link_collision.stl │ │ │ ├── laser_link.stl │ │ │ ├── r_wheel_link_collision.stl │ │ │ ├── shoulder_lift_link_collision.stl │ │ │ ├── shoulder_pan_link_collision.stl │ │ │ ├── torso_fixed_link.stl │ │ │ ├── torso_lift_link_collision.stl │ │ │ ├── upperarm_roll_link_collision.stl │ │ │ ├── wrist_flex_link_collision.stl │ │ │ └── wrist_roll_link_collision.stl │ └── textures │ │ ├── block.png │ │ └── block_hidden.png ├── assets_residual │ ├── fetch_complex_objects │ │ ├── LICENSE.md │ │ ├── fetch │ │ │ ├── pick_and_place.xml │ │ │ ├── push.xml │ │ │ ├── reach.xml │ │ │ ├── robot.xml │ │ │ ├── shared.xml │ │ │ ├── slide.xml │ │ │ ├── train_scene_hook_0.xml │ │ │ ├── train_scene_hook_1.xml │ │ │ ├── train_scene_hook_10.xml │ │ │ ├── train_scene_hook_100.xml │ │ │ ├── train_scene_hook_1000.xml │ │ │ ├── train_scene_hook_1001.xml │ │ │ ├── train_scene_hook_1002.xml │ │ │ ├── train_scene_hook_101.xml │ │ │ ├── train_scene_hook_102.xml │ │ │ ├── train_scene_hook_103.xml │ │ │ ├── train_scene_hook_104.xml │ │ │ ├── train_scene_hook_105.xml │ │ │ ├── train_scene_hook_106.xml │ │ │ ├── train_scene_hook_107.xml │ │ │ ├── train_scene_hook_108.xml │ │ │ ├── train_scene_hook_109.xml │ │ │ ├── train_scene_hook_11.xml │ │ │ ├── train_scene_hook_110.xml │ │ │ ├── train_scene_hook_111.xml │ │ │ ├── train_scene_hook_112.xml │ │ │ ├── train_scene_hook_113.xml │ │ │ ├── train_scene_hook_114.xml │ │ │ ├── train_scene_hook_115.xml │ │ │ ├── train_scene_hook_116.xml │ │ │ ├── train_scene_hook_117.xml │ │ │ ├── train_scene_hook_118.xml │ │ │ ├── train_scene_hook_119.xml │ │ │ ├── train_scene_hook_12.xml │ │ │ ├── train_scene_hook_120.xml │ │ │ ├── train_scene_hook_121.xml │ │ │ ├── train_scene_hook_122.xml │ │ │ ├── train_scene_hook_123.xml │ │ │ ├── train_scene_hook_124.xml │ │ │ ├── train_scene_hook_125.xml │ │ │ ├── train_scene_hook_126.xml │ │ │ ├── train_scene_hook_127.xml │ │ │ ├── train_scene_hook_128.xml │ │ │ ├── train_scene_hook_129.xml │ │ │ ├── train_scene_hook_13.xml │ │ │ ├── train_scene_hook_130.xml │ │ │ ├── train_scene_hook_131.xml │ │ │ ├── train_scene_hook_132.xml │ │ │ ├── train_scene_hook_133.xml │ │ │ ├── train_scene_hook_134.xml │ │ │ ├── train_scene_hook_135.xml │ │ │ ├── train_scene_hook_136.xml │ │ │ ├── train_scene_hook_137.xml │ │ │ ├── train_scene_hook_138.xml │ │ │ ├── train_scene_hook_139.xml │ │ │ ├── train_scene_hook_14.xml │ │ │ ├── train_scene_hook_140.xml │ │ │ ├── train_scene_hook_141.xml │ │ │ ├── train_scene_hook_142.xml │ │ │ ├── train_scene_hook_143.xml │ │ │ ├── train_scene_hook_144.xml │ │ │ ├── train_scene_hook_145.xml │ │ │ ├── train_scene_hook_146.xml │ │ │ ├── train_scene_hook_147.xml │ │ │ ├── train_scene_hook_148.xml │ │ │ ├── train_scene_hook_149.xml │ │ │ ├── train_scene_hook_15.xml │ │ │ ├── train_scene_hook_150.xml │ │ │ ├── train_scene_hook_151.xml │ │ │ ├── train_scene_hook_152.xml │ │ │ ├── train_scene_hook_153.xml │ │ │ ├── train_scene_hook_154.xml │ │ │ ├── train_scene_hook_155.xml │ │ │ ├── train_scene_hook_156.xml │ │ │ ├── train_scene_hook_157.xml │ │ │ ├── train_scene_hook_158.xml │ │ │ ├── train_scene_hook_159.xml │ │ │ ├── train_scene_hook_16.xml │ │ │ ├── train_scene_hook_160.xml │ │ │ ├── train_scene_hook_161.xml │ │ │ ├── train_scene_hook_162.xml │ │ │ ├── train_scene_hook_163.xml │ │ │ ├── train_scene_hook_164.xml │ │ │ ├── train_scene_hook_165.xml │ │ │ ├── train_scene_hook_166.xml │ │ │ ├── train_scene_hook_167.xml │ │ │ ├── train_scene_hook_168.xml │ │ │ ├── train_scene_hook_169.xml │ │ │ ├── train_scene_hook_17.xml │ │ │ ├── train_scene_hook_170.xml │ │ │ ├── train_scene_hook_171.xml │ │ │ ├── train_scene_hook_172.xml │ │ │ ├── train_scene_hook_173.xml │ │ │ ├── train_scene_hook_174.xml │ │ │ ├── train_scene_hook_175.xml │ │ │ ├── train_scene_hook_176.xml │ │ │ ├── train_scene_hook_177.xml │ │ │ ├── train_scene_hook_178.xml │ │ │ ├── train_scene_hook_179.xml │ │ │ ├── train_scene_hook_18.xml │ │ │ ├── train_scene_hook_180.xml │ │ │ ├── train_scene_hook_181.xml │ │ │ ├── train_scene_hook_182.xml │ │ │ ├── train_scene_hook_183.xml │ │ │ ├── train_scene_hook_184.xml │ │ │ ├── train_scene_hook_185.xml │ │ │ ├── train_scene_hook_186.xml │ │ │ ├── train_scene_hook_187.xml │ │ │ ├── train_scene_hook_188.xml │ │ │ ├── train_scene_hook_189.xml │ │ │ ├── train_scene_hook_19.xml │ │ │ ├── train_scene_hook_190.xml │ │ │ ├── train_scene_hook_191.xml │ │ │ ├── train_scene_hook_192.xml │ │ │ ├── train_scene_hook_193.xml │ │ │ ├── train_scene_hook_194.xml │ │ │ ├── train_scene_hook_195.xml │ │ │ ├── train_scene_hook_196.xml │ │ │ ├── train_scene_hook_197.xml │ │ │ ├── train_scene_hook_198.xml │ │ │ ├── train_scene_hook_199.xml │ │ │ ├── train_scene_hook_2.xml │ │ │ ├── train_scene_hook_20.xml │ │ │ ├── train_scene_hook_200.xml │ │ │ ├── train_scene_hook_201.xml │ │ │ ├── train_scene_hook_202.xml │ │ │ ├── train_scene_hook_203.xml │ │ │ ├── train_scene_hook_204.xml │ │ │ ├── train_scene_hook_205.xml │ │ │ ├── train_scene_hook_206.xml │ │ │ ├── train_scene_hook_207.xml │ │ │ ├── train_scene_hook_208.xml │ │ │ ├── train_scene_hook_209.xml │ │ │ ├── train_scene_hook_21.xml │ │ │ ├── train_scene_hook_210.xml │ │ │ ├── train_scene_hook_211.xml │ │ │ ├── train_scene_hook_212.xml │ │ │ ├── train_scene_hook_213.xml │ │ │ ├── train_scene_hook_214.xml │ │ │ ├── train_scene_hook_215.xml │ │ │ ├── train_scene_hook_216.xml │ │ │ ├── train_scene_hook_217.xml │ │ │ ├── train_scene_hook_218.xml │ │ │ ├── train_scene_hook_219.xml │ │ │ ├── train_scene_hook_22.xml │ │ │ ├── train_scene_hook_220.xml │ │ │ ├── train_scene_hook_221.xml │ │ │ ├── train_scene_hook_222.xml │ │ │ ├── train_scene_hook_223.xml │ │ │ ├── train_scene_hook_224.xml │ │ │ ├── train_scene_hook_225.xml │ │ │ ├── train_scene_hook_226.xml │ │ │ ├── train_scene_hook_227.xml │ │ │ ├── train_scene_hook_228.xml │ │ │ ├── train_scene_hook_229.xml │ │ │ ├── train_scene_hook_23.xml │ │ │ ├── train_scene_hook_230.xml │ │ │ ├── train_scene_hook_231.xml │ │ │ ├── train_scene_hook_232.xml │ │ │ ├── train_scene_hook_233.xml │ │ │ ├── train_scene_hook_234.xml │ │ │ ├── train_scene_hook_235.xml │ │ │ ├── train_scene_hook_236.xml │ │ │ ├── train_scene_hook_237.xml │ │ │ ├── train_scene_hook_238.xml │ │ │ ├── train_scene_hook_239.xml │ │ │ ├── train_scene_hook_24.xml │ │ │ ├── train_scene_hook_240.xml │ │ │ ├── train_scene_hook_241.xml │ │ │ ├── train_scene_hook_242.xml │ │ │ ├── train_scene_hook_243.xml │ │ │ ├── train_scene_hook_244.xml │ │ │ ├── train_scene_hook_245.xml │ │ │ ├── train_scene_hook_246.xml │ │ │ ├── train_scene_hook_247.xml │ │ │ ├── train_scene_hook_248.xml │ │ │ ├── train_scene_hook_249.xml │ │ │ ├── train_scene_hook_25.xml │ │ │ ├── train_scene_hook_250.xml │ │ │ ├── train_scene_hook_251.xml │ │ │ ├── train_scene_hook_252.xml │ │ │ ├── train_scene_hook_253.xml │ │ │ ├── train_scene_hook_254.xml │ │ │ ├── train_scene_hook_255.xml │ │ │ ├── train_scene_hook_256.xml │ │ │ ├── train_scene_hook_257.xml │ │ │ ├── train_scene_hook_258.xml │ │ │ ├── train_scene_hook_259.xml │ │ │ ├── train_scene_hook_26.xml │ │ │ ├── train_scene_hook_260.xml │ │ │ ├── train_scene_hook_261.xml │ │ │ ├── train_scene_hook_262.xml │ │ │ ├── train_scene_hook_263.xml │ │ │ ├── train_scene_hook_264.xml │ │ │ ├── train_scene_hook_265.xml │ │ │ ├── train_scene_hook_266.xml │ │ │ ├── train_scene_hook_267.xml │ │ │ ├── train_scene_hook_268.xml │ │ │ ├── train_scene_hook_269.xml │ │ │ ├── train_scene_hook_27.xml │ │ │ ├── train_scene_hook_270.xml │ │ │ ├── train_scene_hook_271.xml │ │ │ ├── train_scene_hook_272.xml │ │ │ ├── train_scene_hook_273.xml │ │ │ ├── train_scene_hook_274.xml │ │ │ ├── train_scene_hook_275.xml │ │ │ ├── train_scene_hook_276.xml │ │ │ ├── train_scene_hook_277.xml │ │ │ ├── train_scene_hook_278.xml │ │ │ ├── train_scene_hook_279.xml │ │ │ ├── train_scene_hook_28.xml │ │ │ ├── train_scene_hook_280.xml │ │ │ ├── train_scene_hook_281.xml │ │ │ ├── train_scene_hook_282.xml │ │ │ ├── train_scene_hook_283.xml │ │ │ ├── train_scene_hook_284.xml │ │ │ ├── train_scene_hook_285.xml │ │ │ ├── train_scene_hook_286.xml │ │ │ ├── train_scene_hook_287.xml │ │ │ ├── train_scene_hook_288.xml │ │ │ ├── train_scene_hook_289.xml │ │ │ ├── train_scene_hook_29.xml │ │ │ ├── train_scene_hook_290.xml │ │ │ ├── train_scene_hook_291.xml │ │ │ ├── train_scene_hook_292.xml │ │ │ ├── train_scene_hook_293.xml │ │ │ ├── train_scene_hook_294.xml │ │ │ ├── train_scene_hook_295.xml │ │ │ ├── train_scene_hook_296.xml │ │ │ ├── train_scene_hook_297.xml │ │ │ ├── train_scene_hook_298.xml │ │ │ ├── train_scene_hook_299.xml │ │ │ ├── train_scene_hook_3.xml │ │ │ ├── train_scene_hook_30.xml │ │ │ ├── train_scene_hook_300.xml │ │ │ ├── train_scene_hook_301.xml │ │ │ ├── train_scene_hook_302.xml │ │ │ ├── train_scene_hook_303.xml │ │ │ ├── train_scene_hook_304.xml │ │ │ ├── train_scene_hook_305.xml │ │ │ ├── train_scene_hook_306.xml │ │ │ ├── train_scene_hook_307.xml │ │ │ ├── train_scene_hook_308.xml │ │ │ ├── train_scene_hook_309.xml │ │ │ ├── train_scene_hook_31.xml │ │ │ ├── train_scene_hook_310.xml │ │ │ ├── train_scene_hook_311.xml │ │ │ ├── train_scene_hook_312.xml │ │ │ ├── train_scene_hook_313.xml │ │ │ ├── train_scene_hook_314.xml │ │ │ ├── train_scene_hook_315.xml │ │ │ ├── train_scene_hook_316.xml │ │ │ ├── train_scene_hook_317.xml │ │ │ ├── train_scene_hook_318.xml │ │ │ ├── train_scene_hook_319.xml │ │ │ ├── train_scene_hook_32.xml │ │ │ ├── train_scene_hook_320.xml │ │ │ ├── train_scene_hook_321.xml │ │ │ ├── train_scene_hook_322.xml │ │ │ ├── train_scene_hook_323.xml │ │ │ ├── train_scene_hook_324.xml │ │ │ ├── train_scene_hook_325.xml │ │ │ ├── train_scene_hook_326.xml │ │ │ ├── train_scene_hook_327.xml │ │ │ ├── train_scene_hook_328.xml │ │ │ ├── train_scene_hook_329.xml │ │ │ ├── train_scene_hook_33.xml │ │ │ ├── train_scene_hook_330.xml │ │ │ ├── train_scene_hook_331.xml │ │ │ ├── train_scene_hook_332.xml │ │ │ ├── train_scene_hook_333.xml │ │ │ ├── train_scene_hook_334.xml │ │ │ ├── train_scene_hook_335.xml │ │ │ ├── train_scene_hook_336.xml │ │ │ ├── train_scene_hook_337.xml │ │ │ ├── train_scene_hook_338.xml │ │ │ ├── train_scene_hook_339.xml │ │ │ ├── train_scene_hook_34.xml │ │ │ ├── train_scene_hook_340.xml │ │ │ ├── train_scene_hook_341.xml │ │ │ ├── train_scene_hook_342.xml │ │ │ ├── train_scene_hook_343.xml │ │ │ ├── train_scene_hook_344.xml │ │ │ ├── train_scene_hook_345.xml │ │ │ ├── train_scene_hook_346.xml │ │ │ ├── train_scene_hook_347.xml │ │ │ ├── train_scene_hook_348.xml │ │ │ ├── train_scene_hook_349.xml │ │ │ ├── train_scene_hook_35.xml │ │ │ ├── train_scene_hook_350.xml │ │ │ ├── train_scene_hook_351.xml │ │ │ ├── train_scene_hook_352.xml │ │ │ ├── train_scene_hook_353.xml │ │ │ ├── train_scene_hook_354.xml │ │ │ ├── train_scene_hook_355.xml │ │ │ ├── train_scene_hook_356.xml │ │ │ ├── train_scene_hook_357.xml │ │ │ ├── train_scene_hook_358.xml │ │ │ ├── train_scene_hook_359.xml │ │ │ ├── train_scene_hook_36.xml │ │ │ ├── train_scene_hook_360.xml │ │ │ ├── train_scene_hook_361.xml │ │ │ ├── train_scene_hook_362.xml │ │ │ ├── train_scene_hook_363.xml │ │ │ ├── train_scene_hook_364.xml │ │ │ ├── train_scene_hook_365.xml │ │ │ ├── train_scene_hook_366.xml │ │ │ ├── train_scene_hook_367.xml │ │ │ ├── train_scene_hook_368.xml │ │ │ ├── train_scene_hook_369.xml │ │ │ ├── train_scene_hook_37.xml │ │ │ ├── train_scene_hook_370.xml │ │ │ ├── train_scene_hook_371.xml │ │ │ ├── train_scene_hook_372.xml │ │ │ ├── train_scene_hook_373.xml │ │ │ ├── train_scene_hook_374.xml │ │ │ ├── train_scene_hook_375.xml │ │ │ ├── train_scene_hook_376.xml │ │ │ ├── train_scene_hook_377.xml │ │ │ ├── train_scene_hook_378.xml │ │ │ ├── train_scene_hook_379.xml │ │ │ ├── train_scene_hook_38.xml │ │ │ ├── train_scene_hook_380.xml │ │ │ ├── train_scene_hook_381.xml │ │ │ ├── train_scene_hook_382.xml │ │ │ ├── train_scene_hook_383.xml │ │ │ ├── train_scene_hook_384.xml │ │ │ ├── train_scene_hook_385.xml │ │ │ ├── train_scene_hook_386.xml │ │ │ ├── train_scene_hook_387.xml │ │ │ ├── train_scene_hook_388.xml │ │ │ ├── train_scene_hook_389.xml │ │ │ ├── train_scene_hook_39.xml │ │ │ ├── train_scene_hook_390.xml │ │ │ ├── train_scene_hook_391.xml │ │ │ ├── train_scene_hook_392.xml │ │ │ ├── train_scene_hook_393.xml │ │ │ ├── train_scene_hook_394.xml │ │ │ ├── train_scene_hook_395.xml │ │ │ ├── train_scene_hook_396.xml │ │ │ ├── train_scene_hook_397.xml │ │ │ ├── train_scene_hook_398.xml │ │ │ ├── train_scene_hook_399.xml │ │ │ ├── train_scene_hook_4.xml │ │ │ ├── train_scene_hook_40.xml │ │ │ ├── train_scene_hook_400.xml │ │ │ ├── train_scene_hook_401.xml │ │ │ ├── train_scene_hook_402.xml │ │ │ ├── train_scene_hook_403.xml │ │ │ ├── train_scene_hook_404.xml │ │ │ ├── train_scene_hook_405.xml │ │ │ ├── train_scene_hook_406.xml │ │ │ ├── train_scene_hook_407.xml │ │ │ ├── train_scene_hook_408.xml │ │ │ ├── train_scene_hook_409.xml │ │ │ ├── train_scene_hook_41.xml │ │ │ ├── train_scene_hook_410.xml │ │ │ ├── train_scene_hook_411.xml │ │ │ ├── train_scene_hook_412.xml │ │ │ ├── train_scene_hook_413.xml │ │ │ ├── train_scene_hook_414.xml │ │ │ ├── train_scene_hook_415.xml │ │ │ ├── train_scene_hook_416.xml │ │ │ ├── train_scene_hook_417.xml │ │ │ ├── train_scene_hook_418.xml │ │ │ ├── train_scene_hook_419.xml │ │ │ ├── train_scene_hook_42.xml │ │ │ ├── train_scene_hook_420.xml │ │ │ ├── train_scene_hook_421.xml │ │ │ ├── train_scene_hook_422.xml │ │ │ ├── train_scene_hook_423.xml │ │ │ ├── train_scene_hook_424.xml │ │ │ ├── train_scene_hook_425.xml │ │ │ ├── train_scene_hook_426.xml │ │ │ ├── train_scene_hook_427.xml │ │ │ ├── train_scene_hook_428.xml │ │ │ ├── train_scene_hook_429.xml │ │ │ ├── train_scene_hook_43.xml │ │ │ ├── train_scene_hook_430.xml │ │ │ ├── train_scene_hook_431.xml │ │ │ ├── train_scene_hook_432.xml │ │ │ ├── train_scene_hook_433.xml │ │ │ ├── train_scene_hook_434.xml │ │ │ ├── train_scene_hook_435.xml │ │ │ ├── train_scene_hook_436.xml │ │ │ ├── train_scene_hook_437.xml │ │ │ ├── train_scene_hook_438.xml │ │ │ ├── train_scene_hook_439.xml │ │ │ ├── train_scene_hook_44.xml │ │ │ ├── train_scene_hook_440.xml │ │ │ ├── train_scene_hook_441.xml │ │ │ ├── train_scene_hook_442.xml │ │ │ ├── train_scene_hook_443.xml │ │ │ ├── train_scene_hook_444.xml │ │ │ ├── train_scene_hook_445.xml │ │ │ ├── train_scene_hook_446.xml │ │ │ ├── train_scene_hook_447.xml │ │ │ ├── train_scene_hook_448.xml │ │ │ ├── train_scene_hook_449.xml │ │ │ ├── train_scene_hook_45.xml │ │ │ ├── train_scene_hook_450.xml │ │ │ ├── train_scene_hook_451.xml │ │ │ ├── train_scene_hook_452.xml │ │ │ ├── train_scene_hook_453.xml │ │ │ ├── train_scene_hook_454.xml │ │ │ ├── train_scene_hook_455.xml │ │ │ ├── train_scene_hook_456.xml │ │ │ ├── train_scene_hook_457.xml │ │ │ ├── train_scene_hook_458.xml │ │ │ ├── train_scene_hook_459.xml │ │ │ ├── train_scene_hook_46.xml │ │ │ ├── train_scene_hook_460.xml │ │ │ ├── train_scene_hook_461.xml │ │ │ ├── train_scene_hook_462.xml │ │ │ ├── train_scene_hook_463.xml │ │ │ ├── train_scene_hook_464.xml │ │ │ ├── train_scene_hook_465.xml │ │ │ ├── train_scene_hook_466.xml │ │ │ ├── train_scene_hook_467.xml │ │ │ ├── train_scene_hook_468.xml │ │ │ ├── train_scene_hook_469.xml │ │ │ ├── train_scene_hook_47.xml │ │ │ ├── train_scene_hook_470.xml │ │ │ ├── train_scene_hook_471.xml │ │ │ ├── train_scene_hook_472.xml │ │ │ ├── train_scene_hook_473.xml │ │ │ ├── train_scene_hook_474.xml │ │ │ ├── train_scene_hook_475.xml │ │ │ ├── train_scene_hook_476.xml │ │ │ ├── train_scene_hook_477.xml │ │ │ ├── train_scene_hook_478.xml │ │ │ ├── train_scene_hook_479.xml │ │ │ ├── train_scene_hook_48.xml │ │ │ ├── train_scene_hook_480.xml │ │ │ ├── train_scene_hook_481.xml │ │ │ ├── train_scene_hook_482.xml │ │ │ ├── train_scene_hook_483.xml │ │ │ ├── train_scene_hook_484.xml │ │ │ ├── train_scene_hook_485.xml │ │ │ ├── train_scene_hook_486.xml │ │ │ ├── train_scene_hook_487.xml │ │ │ ├── train_scene_hook_488.xml │ │ │ ├── train_scene_hook_489.xml │ │ │ ├── train_scene_hook_49.xml │ │ │ ├── train_scene_hook_490.xml │ │ │ ├── train_scene_hook_491.xml │ │ │ ├── train_scene_hook_492.xml │ │ │ ├── train_scene_hook_493.xml │ │ │ ├── train_scene_hook_494.xml │ │ │ ├── train_scene_hook_495.xml │ │ │ ├── train_scene_hook_496.xml │ │ │ ├── train_scene_hook_497.xml │ │ │ ├── train_scene_hook_498.xml │ │ │ ├── train_scene_hook_499.xml │ │ │ ├── train_scene_hook_5.xml │ │ │ ├── train_scene_hook_50.xml │ │ │ ├── train_scene_hook_500.xml │ │ │ ├── train_scene_hook_501.xml │ │ │ ├── train_scene_hook_502.xml │ │ │ ├── train_scene_hook_503.xml │ │ │ ├── train_scene_hook_504.xml │ │ │ ├── train_scene_hook_505.xml │ │ │ ├── train_scene_hook_506.xml │ │ │ ├── train_scene_hook_507.xml │ │ │ ├── train_scene_hook_508.xml │ │ │ ├── train_scene_hook_509.xml │ │ │ ├── train_scene_hook_51.xml │ │ │ ├── train_scene_hook_510.xml │ │ │ ├── train_scene_hook_511.xml │ │ │ ├── train_scene_hook_512.xml │ │ │ ├── train_scene_hook_513.xml │ │ │ ├── train_scene_hook_514.xml │ │ │ ├── train_scene_hook_515.xml │ │ │ ├── train_scene_hook_516.xml │ │ │ ├── train_scene_hook_517.xml │ │ │ ├── train_scene_hook_518.xml │ │ │ ├── train_scene_hook_519.xml │ │ │ ├── train_scene_hook_52.xml │ │ │ ├── train_scene_hook_520.xml │ │ │ ├── train_scene_hook_521.xml │ │ │ ├── train_scene_hook_522.xml │ │ │ ├── train_scene_hook_523.xml │ │ │ ├── train_scene_hook_524.xml │ │ │ ├── train_scene_hook_525.xml │ │ │ ├── train_scene_hook_526.xml │ │ │ ├── train_scene_hook_527.xml │ │ │ ├── train_scene_hook_528.xml │ │ │ ├── train_scene_hook_529.xml │ │ │ ├── train_scene_hook_53.xml │ │ │ ├── train_scene_hook_530.xml │ │ │ ├── train_scene_hook_531.xml │ │ │ ├── train_scene_hook_532.xml │ │ │ ├── train_scene_hook_533.xml │ │ │ ├── train_scene_hook_534.xml │ │ │ ├── train_scene_hook_535.xml │ │ │ ├── train_scene_hook_536.xml │ │ │ ├── train_scene_hook_537.xml │ │ │ ├── train_scene_hook_538.xml │ │ │ ├── train_scene_hook_539.xml │ │ │ ├── train_scene_hook_54.xml │ │ │ ├── train_scene_hook_540.xml │ │ │ ├── train_scene_hook_541.xml │ │ │ ├── train_scene_hook_542.xml │ │ │ ├── train_scene_hook_543.xml │ │ │ ├── train_scene_hook_544.xml │ │ │ ├── train_scene_hook_545.xml │ │ │ ├── train_scene_hook_546.xml │ │ │ ├── train_scene_hook_547.xml │ │ │ ├── train_scene_hook_548.xml │ │ │ ├── train_scene_hook_549.xml │ │ │ ├── train_scene_hook_55.xml │ │ │ ├── train_scene_hook_550.xml │ │ │ ├── train_scene_hook_551.xml │ │ │ ├── train_scene_hook_552.xml │ │ │ ├── train_scene_hook_553.xml │ │ │ ├── train_scene_hook_554.xml │ │ │ ├── train_scene_hook_555.xml │ │ │ ├── train_scene_hook_556.xml │ │ │ ├── train_scene_hook_557.xml │ │ │ ├── train_scene_hook_558.xml │ │ │ ├── train_scene_hook_559.xml │ │ │ ├── train_scene_hook_56.xml │ │ │ ├── train_scene_hook_560.xml │ │ │ ├── train_scene_hook_561.xml │ │ │ ├── train_scene_hook_562.xml │ │ │ ├── train_scene_hook_563.xml │ │ │ ├── train_scene_hook_564.xml │ │ │ ├── train_scene_hook_565.xml │ │ │ ├── train_scene_hook_566.xml │ │ │ ├── train_scene_hook_567.xml │ │ │ ├── train_scene_hook_568.xml │ │ │ ├── train_scene_hook_569.xml │ │ │ ├── train_scene_hook_57.xml │ │ │ ├── train_scene_hook_570.xml │ │ │ ├── train_scene_hook_571.xml │ │ │ ├── train_scene_hook_572.xml │ │ │ ├── train_scene_hook_573.xml │ │ │ ├── train_scene_hook_574.xml │ │ │ ├── train_scene_hook_575.xml │ │ │ ├── train_scene_hook_576.xml │ │ │ ├── train_scene_hook_577.xml │ │ │ ├── train_scene_hook_578.xml │ │ │ ├── train_scene_hook_579.xml │ │ │ ├── train_scene_hook_58.xml │ │ │ ├── train_scene_hook_580.xml │ │ │ ├── train_scene_hook_581.xml │ │ │ ├── train_scene_hook_582.xml │ │ │ ├── train_scene_hook_583.xml │ │ │ ├── train_scene_hook_584.xml │ │ │ ├── train_scene_hook_585.xml │ │ │ ├── train_scene_hook_586.xml │ │ │ ├── train_scene_hook_587.xml │ │ │ ├── train_scene_hook_588.xml │ │ │ ├── train_scene_hook_589.xml │ │ │ ├── train_scene_hook_59.xml │ │ │ ├── train_scene_hook_590.xml │ │ │ ├── train_scene_hook_591.xml │ │ │ ├── train_scene_hook_592.xml │ │ │ ├── train_scene_hook_593.xml │ │ │ ├── train_scene_hook_594.xml │ │ │ ├── train_scene_hook_595.xml │ │ │ ├── train_scene_hook_596.xml │ │ │ ├── train_scene_hook_597.xml │ │ │ ├── train_scene_hook_598.xml │ │ │ ├── train_scene_hook_599.xml │ │ │ ├── train_scene_hook_6.xml │ │ │ ├── train_scene_hook_60.xml │ │ │ ├── train_scene_hook_600.xml │ │ │ ├── train_scene_hook_601.xml │ │ │ ├── train_scene_hook_602.xml │ │ │ ├── train_scene_hook_603.xml │ │ │ ├── train_scene_hook_604.xml │ │ │ ├── train_scene_hook_605.xml │ │ │ ├── train_scene_hook_606.xml │ │ │ ├── train_scene_hook_607.xml │ │ │ ├── train_scene_hook_608.xml │ │ │ ├── train_scene_hook_609.xml │ │ │ ├── train_scene_hook_61.xml │ │ │ ├── train_scene_hook_610.xml │ │ │ ├── train_scene_hook_611.xml │ │ │ ├── train_scene_hook_612.xml │ │ │ ├── train_scene_hook_613.xml │ │ │ ├── train_scene_hook_614.xml │ │ │ ├── train_scene_hook_615.xml │ │ │ ├── train_scene_hook_616.xml │ │ │ ├── train_scene_hook_617.xml │ │ │ ├── train_scene_hook_618.xml │ │ │ ├── train_scene_hook_619.xml │ │ │ ├── train_scene_hook_62.xml │ │ │ ├── train_scene_hook_620.xml │ │ │ ├── train_scene_hook_621.xml │ │ │ ├── train_scene_hook_622.xml │ │ │ ├── train_scene_hook_623.xml │ │ │ ├── train_scene_hook_624.xml │ │ │ ├── train_scene_hook_625.xml │ │ │ ├── train_scene_hook_626.xml │ │ │ ├── train_scene_hook_627.xml │ │ │ ├── train_scene_hook_628.xml │ │ │ ├── train_scene_hook_629.xml │ │ │ ├── train_scene_hook_63.xml │ │ │ ├── train_scene_hook_630.xml │ │ │ ├── train_scene_hook_631.xml │ │ │ ├── train_scene_hook_632.xml │ │ │ ├── train_scene_hook_633.xml │ │ │ ├── train_scene_hook_634.xml │ │ │ ├── train_scene_hook_635.xml │ │ │ ├── train_scene_hook_636.xml │ │ │ ├── train_scene_hook_637.xml │ │ │ ├── train_scene_hook_638.xml │ │ │ ├── train_scene_hook_639.xml │ │ │ ├── train_scene_hook_64.xml │ │ │ ├── train_scene_hook_640.xml │ │ │ ├── train_scene_hook_641.xml │ │ │ ├── train_scene_hook_642.xml │ │ │ ├── train_scene_hook_643.xml │ │ │ ├── train_scene_hook_644.xml │ │ │ ├── train_scene_hook_645.xml │ │ │ ├── train_scene_hook_646.xml │ │ │ ├── train_scene_hook_647.xml │ │ │ ├── train_scene_hook_648.xml │ │ │ ├── train_scene_hook_649.xml │ │ │ ├── train_scene_hook_65.xml │ │ │ ├── train_scene_hook_650.xml │ │ │ ├── train_scene_hook_651.xml │ │ │ ├── train_scene_hook_652.xml │ │ │ ├── train_scene_hook_653.xml │ │ │ ├── train_scene_hook_654.xml │ │ │ ├── train_scene_hook_655.xml │ │ │ ├── train_scene_hook_656.xml │ │ │ ├── train_scene_hook_657.xml │ │ │ ├── train_scene_hook_658.xml │ │ │ ├── train_scene_hook_659.xml │ │ │ ├── train_scene_hook_66.xml │ │ │ ├── train_scene_hook_660.xml │ │ │ ├── train_scene_hook_661.xml │ │ │ ├── train_scene_hook_662.xml │ │ │ ├── train_scene_hook_663.xml │ │ │ ├── train_scene_hook_664.xml │ │ │ ├── train_scene_hook_665.xml │ │ │ ├── train_scene_hook_666.xml │ │ │ ├── train_scene_hook_667.xml │ │ │ ├── train_scene_hook_668.xml │ │ │ ├── train_scene_hook_669.xml │ │ │ ├── train_scene_hook_67.xml │ │ │ ├── train_scene_hook_670.xml │ │ │ ├── train_scene_hook_671.xml │ │ │ ├── train_scene_hook_672.xml │ │ │ ├── train_scene_hook_673.xml │ │ │ ├── train_scene_hook_674.xml │ │ │ ├── train_scene_hook_675.xml │ │ │ ├── train_scene_hook_676.xml │ │ │ ├── train_scene_hook_677.xml │ │ │ ├── train_scene_hook_678.xml │ │ │ ├── train_scene_hook_679.xml │ │ │ ├── train_scene_hook_68.xml │ │ │ ├── train_scene_hook_680.xml │ │ │ ├── train_scene_hook_681.xml │ │ │ ├── train_scene_hook_682.xml │ │ │ ├── train_scene_hook_683.xml │ │ │ ├── train_scene_hook_684.xml │ │ │ ├── train_scene_hook_685.xml │ │ │ ├── train_scene_hook_686.xml │ │ │ ├── train_scene_hook_687.xml │ │ │ ├── train_scene_hook_688.xml │ │ │ ├── train_scene_hook_689.xml │ │ │ ├── train_scene_hook_69.xml │ │ │ ├── train_scene_hook_690.xml │ │ │ ├── train_scene_hook_691.xml │ │ │ ├── train_scene_hook_692.xml │ │ │ ├── train_scene_hook_693.xml │ │ │ ├── train_scene_hook_694.xml │ │ │ ├── train_scene_hook_695.xml │ │ │ ├── train_scene_hook_696.xml │ │ │ ├── train_scene_hook_697.xml │ │ │ ├── train_scene_hook_698.xml │ │ │ ├── train_scene_hook_699.xml │ │ │ ├── train_scene_hook_7.xml │ │ │ ├── train_scene_hook_70.xml │ │ │ ├── train_scene_hook_700.xml │ │ │ ├── train_scene_hook_701.xml │ │ │ ├── train_scene_hook_702.xml │ │ │ ├── train_scene_hook_703.xml │ │ │ ├── train_scene_hook_704.xml │ │ │ ├── train_scene_hook_705.xml │ │ │ ├── train_scene_hook_706.xml │ │ │ ├── train_scene_hook_707.xml │ │ │ ├── train_scene_hook_708.xml │ │ │ ├── train_scene_hook_709.xml │ │ │ ├── train_scene_hook_71.xml │ │ │ ├── train_scene_hook_710.xml │ │ │ ├── train_scene_hook_711.xml │ │ │ ├── train_scene_hook_712.xml │ │ │ ├── train_scene_hook_713.xml │ │ │ ├── train_scene_hook_714.xml │ │ │ ├── train_scene_hook_715.xml │ │ │ ├── train_scene_hook_716.xml │ │ │ ├── train_scene_hook_717.xml │ │ │ ├── train_scene_hook_718.xml │ │ │ ├── train_scene_hook_719.xml │ │ │ ├── train_scene_hook_72.xml │ │ │ ├── train_scene_hook_720.xml │ │ │ ├── train_scene_hook_721.xml │ │ │ ├── train_scene_hook_722.xml │ │ │ ├── train_scene_hook_723.xml │ │ │ ├── train_scene_hook_724.xml │ │ │ ├── train_scene_hook_725.xml │ │ │ ├── train_scene_hook_726.xml │ │ │ ├── train_scene_hook_727.xml │ │ │ ├── train_scene_hook_728.xml │ │ │ ├── train_scene_hook_729.xml │ │ │ ├── train_scene_hook_73.xml │ │ │ ├── train_scene_hook_730.xml │ │ │ ├── train_scene_hook_731.xml │ │ │ ├── train_scene_hook_732.xml │ │ │ ├── train_scene_hook_733.xml │ │ │ ├── train_scene_hook_734.xml │ │ │ ├── train_scene_hook_735.xml │ │ │ ├── train_scene_hook_736.xml │ │ │ ├── train_scene_hook_737.xml │ │ │ ├── train_scene_hook_738.xml │ │ │ ├── train_scene_hook_739.xml │ │ │ ├── train_scene_hook_74.xml │ │ │ ├── train_scene_hook_740.xml │ │ │ ├── train_scene_hook_741.xml │ │ │ ├── train_scene_hook_742.xml │ │ │ ├── train_scene_hook_743.xml │ │ │ ├── train_scene_hook_744.xml │ │ │ ├── train_scene_hook_745.xml │ │ │ ├── train_scene_hook_746.xml │ │ │ ├── train_scene_hook_747.xml │ │ │ ├── train_scene_hook_748.xml │ │ │ ├── train_scene_hook_749.xml │ │ │ ├── train_scene_hook_75.xml │ │ │ ├── train_scene_hook_750.xml │ │ │ ├── train_scene_hook_751.xml │ │ │ ├── train_scene_hook_752.xml │ │ │ ├── train_scene_hook_753.xml │ │ │ ├── train_scene_hook_754.xml │ │ │ ├── train_scene_hook_755.xml │ │ │ ├── train_scene_hook_756.xml │ │ │ ├── train_scene_hook_757.xml │ │ │ ├── train_scene_hook_758.xml │ │ │ ├── train_scene_hook_759.xml │ │ │ ├── train_scene_hook_76.xml │ │ │ ├── train_scene_hook_760.xml │ │ │ ├── train_scene_hook_761.xml │ │ │ ├── train_scene_hook_762.xml │ │ │ ├── train_scene_hook_763.xml │ │ │ ├── train_scene_hook_764.xml │ │ │ ├── train_scene_hook_765.xml │ │ │ ├── train_scene_hook_766.xml │ │ │ ├── train_scene_hook_767.xml │ │ │ ├── train_scene_hook_768.xml │ │ │ ├── train_scene_hook_769.xml │ │ │ ├── train_scene_hook_77.xml │ │ │ ├── train_scene_hook_770.xml │ │ │ ├── train_scene_hook_771.xml │ │ │ ├── train_scene_hook_772.xml │ │ │ ├── train_scene_hook_773.xml │ │ │ ├── train_scene_hook_774.xml │ │ │ ├── train_scene_hook_775.xml │ │ │ ├── train_scene_hook_776.xml │ │ │ ├── train_scene_hook_777.xml │ │ │ ├── train_scene_hook_778.xml │ │ │ ├── train_scene_hook_779.xml │ │ │ ├── train_scene_hook_78.xml │ │ │ ├── train_scene_hook_780.xml │ │ │ ├── train_scene_hook_781.xml │ │ │ ├── train_scene_hook_782.xml │ │ │ ├── train_scene_hook_783.xml │ │ │ ├── train_scene_hook_784.xml │ │ │ ├── train_scene_hook_785.xml │ │ │ ├── train_scene_hook_786.xml │ │ │ ├── train_scene_hook_787.xml │ │ │ ├── train_scene_hook_788.xml │ │ │ ├── train_scene_hook_789.xml │ │ │ ├── train_scene_hook_79.xml │ │ │ ├── train_scene_hook_790.xml │ │ │ ├── train_scene_hook_791.xml │ │ │ ├── train_scene_hook_792.xml │ │ │ ├── train_scene_hook_793.xml │ │ │ ├── train_scene_hook_794.xml │ │ │ ├── train_scene_hook_795.xml │ │ │ ├── train_scene_hook_796.xml │ │ │ ├── train_scene_hook_797.xml │ │ │ ├── train_scene_hook_798.xml │ │ │ ├── train_scene_hook_799.xml │ │ │ ├── train_scene_hook_8.xml │ │ │ ├── train_scene_hook_80.xml │ │ │ ├── train_scene_hook_800.xml │ │ │ ├── train_scene_hook_801.xml │ │ │ ├── train_scene_hook_802.xml │ │ │ ├── train_scene_hook_803.xml │ │ │ ├── train_scene_hook_804.xml │ │ │ ├── train_scene_hook_805.xml │ │ │ ├── train_scene_hook_806.xml │ │ │ ├── train_scene_hook_807.xml │ │ │ ├── train_scene_hook_808.xml │ │ │ ├── train_scene_hook_809.xml │ │ │ ├── train_scene_hook_81.xml │ │ │ ├── train_scene_hook_810.xml │ │ │ ├── train_scene_hook_811.xml │ │ │ ├── train_scene_hook_812.xml │ │ │ ├── train_scene_hook_813.xml │ │ │ ├── train_scene_hook_814.xml │ │ │ ├── train_scene_hook_815.xml │ │ │ ├── train_scene_hook_816.xml │ │ │ ├── train_scene_hook_817.xml │ │ │ ├── train_scene_hook_818.xml │ │ │ ├── train_scene_hook_819.xml │ │ │ ├── train_scene_hook_82.xml │ │ │ ├── train_scene_hook_820.xml │ │ │ ├── train_scene_hook_821.xml │ │ │ ├── train_scene_hook_822.xml │ │ │ ├── train_scene_hook_823.xml │ │ │ ├── train_scene_hook_824.xml │ │ │ ├── train_scene_hook_825.xml │ │ │ ├── train_scene_hook_826.xml │ │ │ ├── train_scene_hook_827.xml │ │ │ ├── train_scene_hook_828.xml │ │ │ ├── train_scene_hook_829.xml │ │ │ ├── train_scene_hook_83.xml │ │ │ ├── train_scene_hook_830.xml │ │ │ ├── train_scene_hook_831.xml │ │ │ ├── train_scene_hook_832.xml │ │ │ ├── train_scene_hook_833.xml │ │ │ ├── train_scene_hook_834.xml │ │ │ ├── train_scene_hook_835.xml │ │ │ ├── train_scene_hook_836.xml │ │ │ ├── train_scene_hook_837.xml │ │ │ ├── train_scene_hook_838.xml │ │ │ ├── train_scene_hook_839.xml │ │ │ ├── train_scene_hook_84.xml │ │ │ ├── train_scene_hook_840.xml │ │ │ ├── train_scene_hook_841.xml │ │ │ ├── train_scene_hook_842.xml │ │ │ ├── train_scene_hook_843.xml │ │ │ ├── train_scene_hook_844.xml │ │ │ ├── train_scene_hook_845.xml │ │ │ ├── train_scene_hook_846.xml │ │ │ ├── train_scene_hook_847.xml │ │ │ ├── train_scene_hook_848.xml │ │ │ ├── train_scene_hook_849.xml │ │ │ ├── train_scene_hook_85.xml │ │ │ ├── train_scene_hook_850.xml │ │ │ ├── train_scene_hook_851.xml │ │ │ ├── train_scene_hook_852.xml │ │ │ ├── train_scene_hook_853.xml │ │ │ ├── train_scene_hook_854.xml │ │ │ ├── train_scene_hook_855.xml │ │ │ ├── train_scene_hook_856.xml │ │ │ ├── train_scene_hook_857.xml │ │ │ ├── train_scene_hook_858.xml │ │ │ ├── train_scene_hook_859.xml │ │ │ ├── train_scene_hook_86.xml │ │ │ ├── train_scene_hook_860.xml │ │ │ ├── train_scene_hook_861.xml │ │ │ ├── train_scene_hook_862.xml │ │ │ ├── train_scene_hook_863.xml │ │ │ ├── train_scene_hook_864.xml │ │ │ ├── train_scene_hook_865.xml │ │ │ ├── train_scene_hook_866.xml │ │ │ ├── train_scene_hook_867.xml │ │ │ ├── train_scene_hook_868.xml │ │ │ ├── train_scene_hook_869.xml │ │ │ ├── train_scene_hook_87.xml │ │ │ ├── train_scene_hook_870.xml │ │ │ ├── train_scene_hook_871.xml │ │ │ ├── train_scene_hook_872.xml │ │ │ ├── train_scene_hook_873.xml │ │ │ ├── train_scene_hook_874.xml │ │ │ ├── train_scene_hook_875.xml │ │ │ ├── train_scene_hook_876.xml │ │ │ ├── train_scene_hook_877.xml │ │ │ ├── train_scene_hook_878.xml │ │ │ ├── train_scene_hook_879.xml │ │ │ ├── train_scene_hook_88.xml │ │ │ ├── train_scene_hook_880.xml │ │ │ ├── train_scene_hook_881.xml │ │ │ ├── train_scene_hook_882.xml │ │ │ ├── train_scene_hook_883.xml │ │ │ ├── train_scene_hook_884.xml │ │ │ ├── train_scene_hook_885.xml │ │ │ ├── train_scene_hook_886.xml │ │ │ ├── train_scene_hook_887.xml │ │ │ ├── train_scene_hook_888.xml │ │ │ ├── train_scene_hook_889.xml │ │ │ ├── train_scene_hook_89.xml │ │ │ ├── train_scene_hook_890.xml │ │ │ ├── train_scene_hook_891.xml │ │ │ ├── train_scene_hook_892.xml │ │ │ ├── train_scene_hook_893.xml │ │ │ ├── train_scene_hook_894.xml │ │ │ ├── train_scene_hook_895.xml │ │ │ ├── train_scene_hook_896.xml │ │ │ ├── train_scene_hook_897.xml │ │ │ ├── train_scene_hook_898.xml │ │ │ ├── train_scene_hook_899.xml │ │ │ ├── train_scene_hook_9.xml │ │ │ ├── train_scene_hook_90.xml │ │ │ ├── train_scene_hook_900.xml │ │ │ ├── train_scene_hook_901.xml │ │ │ ├── train_scene_hook_902.xml │ │ │ ├── train_scene_hook_903.xml │ │ │ ├── train_scene_hook_904.xml │ │ │ ├── train_scene_hook_905.xml │ │ │ ├── train_scene_hook_906.xml │ │ │ ├── train_scene_hook_907.xml │ │ │ ├── train_scene_hook_908.xml │ │ │ ├── train_scene_hook_909.xml │ │ │ ├── train_scene_hook_91.xml │ │ │ ├── train_scene_hook_910.xml │ │ │ ├── train_scene_hook_911.xml │ │ │ ├── train_scene_hook_912.xml │ │ │ ├── train_scene_hook_913.xml │ │ │ ├── train_scene_hook_914.xml │ │ │ ├── train_scene_hook_915.xml │ │ │ ├── train_scene_hook_916.xml │ │ │ ├── train_scene_hook_917.xml │ │ │ ├── train_scene_hook_918.xml │ │ │ ├── train_scene_hook_919.xml │ │ │ ├── train_scene_hook_92.xml │ │ │ ├── train_scene_hook_920.xml │ │ │ ├── train_scene_hook_921.xml │ │ │ ├── train_scene_hook_922.xml │ │ │ ├── train_scene_hook_923.xml │ │ │ ├── train_scene_hook_924.xml │ │ │ ├── train_scene_hook_925.xml │ │ │ ├── train_scene_hook_926.xml │ │ │ ├── train_scene_hook_927.xml │ │ │ ├── train_scene_hook_928.xml │ │ │ ├── train_scene_hook_929.xml │ │ │ ├── train_scene_hook_93.xml │ │ │ ├── train_scene_hook_930.xml │ │ │ ├── train_scene_hook_931.xml │ │ │ ├── train_scene_hook_932.xml │ │ │ ├── train_scene_hook_933.xml │ │ │ ├── train_scene_hook_934.xml │ │ │ ├── train_scene_hook_935.xml │ │ │ ├── train_scene_hook_936.xml │ │ │ ├── train_scene_hook_937.xml │ │ │ ├── train_scene_hook_938.xml │ │ │ ├── train_scene_hook_939.xml │ │ │ ├── train_scene_hook_94.xml │ │ │ ├── train_scene_hook_940.xml │ │ │ ├── train_scene_hook_941.xml │ │ │ ├── train_scene_hook_942.xml │ │ │ ├── train_scene_hook_943.xml │ │ │ ├── train_scene_hook_944.xml │ │ │ ├── train_scene_hook_945.xml │ │ │ ├── train_scene_hook_946.xml │ │ │ ├── train_scene_hook_947.xml │ │ │ ├── train_scene_hook_948.xml │ │ │ ├── train_scene_hook_949.xml │ │ │ ├── train_scene_hook_95.xml │ │ │ ├── train_scene_hook_950.xml │ │ │ ├── train_scene_hook_951.xml │ │ │ ├── train_scene_hook_952.xml │ │ │ ├── train_scene_hook_953.xml │ │ │ ├── train_scene_hook_954.xml │ │ │ ├── train_scene_hook_955.xml │ │ │ ├── train_scene_hook_956.xml │ │ │ ├── train_scene_hook_957.xml │ │ │ ├── train_scene_hook_958.xml │ │ │ ├── train_scene_hook_959.xml │ │ │ ├── train_scene_hook_96.xml │ │ │ ├── train_scene_hook_960.xml │ │ │ ├── train_scene_hook_961.xml │ │ │ ├── train_scene_hook_962.xml │ │ │ ├── train_scene_hook_963.xml │ │ │ ├── train_scene_hook_964.xml │ │ │ ├── train_scene_hook_965.xml │ │ │ ├── train_scene_hook_966.xml │ │ │ ├── train_scene_hook_967.xml │ │ │ ├── train_scene_hook_968.xml │ │ │ ├── train_scene_hook_969.xml │ │ │ ├── train_scene_hook_97.xml │ │ │ ├── train_scene_hook_970.xml │ │ │ ├── train_scene_hook_971.xml │ │ │ ├── train_scene_hook_972.xml │ │ │ ├── train_scene_hook_973.xml │ │ │ ├── train_scene_hook_974.xml │ │ │ ├── train_scene_hook_975.xml │ │ │ ├── train_scene_hook_976.xml │ │ │ ├── train_scene_hook_977.xml │ │ │ ├── train_scene_hook_978.xml │ │ │ ├── train_scene_hook_979.xml │ │ │ ├── train_scene_hook_98.xml │ │ │ ├── train_scene_hook_980.xml │ │ │ ├── train_scene_hook_981.xml │ │ │ ├── train_scene_hook_982.xml │ │ │ ├── train_scene_hook_983.xml │ │ │ ├── train_scene_hook_984.xml │ │ │ ├── train_scene_hook_985.xml │ │ │ ├── train_scene_hook_986.xml │ │ │ ├── train_scene_hook_987.xml │ │ │ ├── train_scene_hook_988.xml │ │ │ ├── train_scene_hook_989.xml │ │ │ ├── train_scene_hook_99.xml │ │ │ ├── train_scene_hook_990.xml │ │ │ ├── train_scene_hook_991.xml │ │ │ ├── train_scene_hook_992.xml │ │ │ ├── train_scene_hook_993.xml │ │ │ ├── train_scene_hook_994.xml │ │ │ ├── train_scene_hook_995.xml │ │ │ ├── train_scene_hook_996.xml │ │ │ ├── train_scene_hook_997.xml │ │ │ ├── train_scene_hook_998.xml │ │ │ └── train_scene_hook_999.xml │ │ ├── hand │ │ │ ├── manipulate_block.xml │ │ │ ├── manipulate_egg.xml │ │ │ ├── manipulate_pen.xml │ │ │ ├── reach.xml │ │ │ ├── robot.xml │ │ │ ├── shared.xml │ │ │ └── shared_asset.xml │ │ └── stls │ │ │ ├── fetch │ │ │ ├── base_link_collision.stl │ │ │ ├── bellows_link_collision.stl │ │ │ ├── elbow_flex_link_collision.stl │ │ │ ├── estop_link.stl │ │ │ ├── forearm_roll_link_collision.stl │ │ │ ├── gripper_link.stl │ │ │ ├── head_pan_link_collision.stl │ │ │ ├── head_tilt_link_collision.stl │ │ │ ├── l_wheel_link_collision.stl │ │ │ ├── laser_link.stl │ │ │ ├── mujoco_models │ │ │ │ ├── 1960_corvette.stl │ │ │ │ ├── A_Ribbon.stl │ │ │ │ ├── Banana_Scale.stl │ │ │ │ ├── Bishop.stl │ │ │ │ ├── Body1.stl │ │ │ │ ├── Cherry_MX_Cap.stl │ │ │ │ ├── Cube_Stand.stl │ │ │ │ ├── DiningTableRound.stl │ │ │ │ ├── Dodecagon_Cup2_3D_Aaron_Berg.stl │ │ │ │ ├── Dodecahedron.stl │ │ │ │ ├── Epic_Crift.stl │ │ │ │ ├── Fadenöler.stl │ │ │ │ ├── Filament_Spool_Leveler.stl │ │ │ │ ├── Filtre_filament.stl │ │ │ │ ├── Furnace_block_MC.stl │ │ │ │ ├── Gengar.stl │ │ │ │ ├── Hendecagonal_prism.stl │ │ │ │ ├── Hot_Tub_Drain_Cover.stl │ │ │ │ ├── Incense_Holder_final.stl │ │ │ │ ├── Keysafe.stl │ │ │ │ ├── King.stl │ │ │ │ ├── Lightbulb_Socket.stl │ │ │ │ ├── LotusBowl01.stl │ │ │ │ ├── Love_Box_1.stl │ │ │ │ ├── LowPolySchildkroete.stl │ │ │ │ ├── Low_Poly_Bowl.stl │ │ │ │ ├── Low_poly_bowl_or_cup.stl │ │ │ │ ├── ModernSlipper.stl │ │ │ │ ├── Octahedron.stl │ │ │ │ ├── Planter_Cauldron.stl │ │ │ │ ├── Queen.stl │ │ │ │ ├── Rabbit_Complete.stl │ │ │ │ ├── Recycle_Bin_For_Cans.stl │ │ │ │ ├── Rook.stl │ │ │ │ ├── SEG-JellyFish.stl │ │ │ │ ├── Salty_Body.stl │ │ │ │ ├── Simple_Filament_Guide.stl │ │ │ │ ├── Simplus_FORMA_NapkinRing_mm.stl │ │ │ │ ├── Sponge_Holder.stl │ │ │ │ ├── Stackable_Square_Container.stl │ │ │ │ ├── Stepped_Pencil_Holder.stl │ │ │ │ ├── Sunglasses.stl │ │ │ │ ├── TD_Mushroom_cap.stl │ │ │ │ ├── Thumb_Screw.stl │ │ │ │ ├── Tree_1_pot.stl │ │ │ │ ├── Tree_1_soil.stl │ │ │ │ ├── Tree_2_pot.stl │ │ │ │ ├── Tree_2_tree.stl │ │ │ │ ├── Tree_3_pot_HD_base.stl │ │ │ │ ├── Tree_4_soil.stl │ │ │ │ ├── Tree_4_tree.stl │ │ │ │ ├── Triforce.stl │ │ │ │ ├── Trophy.stl │ │ │ │ ├── VOLCANO.stl │ │ │ │ ├── Vase_Lamp.stl │ │ │ │ ├── Vase_Mode.stl │ │ │ │ ├── WillTankGrey.stl │ │ │ │ ├── adptador_grifo.stl │ │ │ │ ├── apple_watch_stand_1.stl │ │ │ │ ├── ash_tray_with_design.stl │ │ │ │ ├── ball_holder.stl │ │ │ │ ├── banana_print.stl │ │ │ │ ├── boozefighterbottle_actual_bottle.stl │ │ │ │ ├── brilliant_turing4.stl │ │ │ │ ├── candle_holder.stl │ │ │ │ ├── chair_sds2.stl │ │ │ │ ├── charizard_.stl │ │ │ │ ├── circ-sq-tri.stl │ │ │ │ ├── coin_trap_penny.stl │ │ │ │ ├── dodecagonal_prism.stl │ │ │ │ ├── famicon-port-cover.stl │ │ │ │ ├── fox.stl │ │ │ │ ├── galan_trémolet_.stl │ │ │ │ ├── giraffe.stl │ │ │ │ ├── grendae.stl │ │ │ │ ├── heXS34oh3pk.stl │ │ │ │ ├── hexagonal_prism.stl │ │ │ │ ├── hollow_cylinder_20mm.stl │ │ │ │ ├── hubble_model_kit_1.stl │ │ │ │ ├── hubble_model_kit_2.stl │ │ │ │ ├── hubble_model_kit_3.stl │ │ │ │ ├── hubble_model_kit_5.stl │ │ │ │ ├── hubble_model_kit_6.stl │ │ │ │ ├── hubble_model_kit_7.stl │ │ │ │ ├── joshuaoiltankerwhite.stl │ │ │ │ ├── liberty_grille.stl │ │ │ │ ├── lspike2.stl │ │ │ │ ├── mug.stl │ │ │ │ ├── nidoran_01.stl │ │ │ │ ├── nonagonal_pyramid.stl │ │ │ │ ├── omino_lego_head.stl │ │ │ │ ├── pentagonal_prism.stl │ │ │ │ ├── pikachu_dual_body.stl │ │ │ │ ├── pot_of_gold_handles_rev2.stl │ │ │ │ ├── quilava_with_frills.stl │ │ │ │ ├── stormtrooper_pencil_holder.stl │ │ │ │ ├── strainer.stl │ │ │ │ ├── stunning_jarv-turing.stl │ │ │ │ ├── tesaract.stl │ │ │ │ ├── test_objs │ │ │ │ │ ├── Album_Cube.stl │ │ │ │ │ ├── Elephant.stl │ │ │ │ │ ├── Knight.stl │ │ │ │ │ ├── Low_poly_Teddy_bear.stl │ │ │ │ │ ├── Pawn.stl │ │ │ │ │ ├── PufferFull.stl │ │ │ │ │ ├── Recycle_Soda_Can.stl │ │ │ │ │ ├── boat_2.stl │ │ │ │ │ ├── cupcake.stl │ │ │ │ │ ├── octagonal_prism.stl │ │ │ │ │ └── styrofoam_cup.stl │ │ │ │ ├── toy_boat_xyz_with_guns.stl │ │ │ │ ├── train_obj_license.txt │ │ │ │ ├── triangular_prism.stl │ │ │ │ ├── turtle-dock.stl │ │ │ │ ├── vase1.stl │ │ │ │ ├── vaso_5facce_v2_noforo.stl │ │ │ │ └── wacom_intuos_draw_pen_holder.stl │ │ │ ├── r_wheel_link_collision.stl │ │ │ ├── shoulder_lift_link_collision.stl │ │ │ ├── shoulder_pan_link_collision.stl │ │ │ ├── torso_fixed_link.stl │ │ │ ├── torso_lift_link_collision.stl │ │ │ ├── upperarm_roll_link_collision.stl │ │ │ ├── wrist_flex_link_collision.stl │ │ │ └── wrist_roll_link_collision.stl │ │ │ └── hand │ │ │ ├── F1.stl │ │ │ ├── F2.stl │ │ │ ├── F3.stl │ │ │ ├── TH1_z.stl │ │ │ ├── TH2_z.stl │ │ │ ├── TH3_z.stl │ │ │ ├── forearm_electric.stl │ │ │ ├── forearm_electric_cvx.stl │ │ │ ├── knuckle.stl │ │ │ ├── lfmetacarpal.stl │ │ │ ├── palm.stl │ │ │ └── wrist.stl │ ├── hook.xml │ ├── pusher.xml │ ├── robot.xml │ ├── shared.xml │ ├── stls │ │ ├── base_link_collision.stl │ │ ├── bellows_link_collision.stl │ │ ├── elbow_flex_link_collision.stl │ │ ├── estop_link.stl │ │ ├── forearm_roll_link_collision.stl │ │ ├── gripper_link.stl │ │ ├── head_pan_link_collision.stl │ │ ├── head_tilt_link_collision.stl │ │ ├── l_wheel_link_collision.stl │ │ ├── laser_link.stl │ │ ├── r_wheel_link_collision.stl │ │ ├── shoulder_lift_link_collision.stl │ │ ├── shoulder_pan_link_collision.stl │ │ ├── torso_fixed_link.stl │ │ ├── torso_lift_link_collision.stl │ │ ├── upperarm_roll_link_collision.stl │ │ ├── wrist_flex_link_collision.stl │ │ └── wrist_roll_link_collision.stl │ ├── textures │ │ ├── block.png │ │ └── block_hidden.png │ └── tmp.xml ├── config │ ├── FetchPushRandomized │ │ └── default.json │ ├── HalfCheetahRandomized │ │ └── default.json │ ├── HumanoidRandomized │ │ └── default.json │ ├── LunarLanderRandomized │ │ ├── default.json │ │ └── random.json │ ├── Pusher3DOFRandomized │ │ ├── default.json │ │ └── random.json │ ├── ResidualFetchHookRandomized │ │ ├── default.json │ │ └── random.json │ ├── ResidualMPCPushRandomized │ │ ├── default.json │ │ └── random.json │ ├── ResidualPickAndPlaceRandomized │ │ ├── default.json │ │ └── random.json │ ├── ResidualPushRandomized │ │ ├── default.json │ │ └── random.json │ └── __init__.py ├── controllers │ ├── hook_controller.py │ ├── miscalibrated_push_controller.py │ ├── mpc_controller.py │ └── pick_and_place_controller.py ├── dimension.py ├── half_cheetah.py ├── humanoid.py ├── lunar_lander.py ├── pusher3dof.py ├── randomized_fetch.py ├── randomized_fetchpush.py ├── randomized_hook_env.py ├── randomized_locomotion.py ├── randomized_mpc_push.py ├── randomized_pick_and_place.py ├── randomized_residual_hook.py ├── randomized_residual_push.py ├── randomized_vecenv.py ├── residual_envs │ ├── residual_fetch_pick_and_place_env.py │ ├── residual_fetch_push_env.py │ └── residual_mpc_push_env.py ├── residual_mpc_push.py ├── residual_pick_and_place.py ├── residual_push.py └── wrappers.py ├── setup.py └── test.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | .hypothesis/ 51 | .pytest_cache/ 52 | 53 | # Translations 54 | *.mo 55 | *.pot 56 | 57 | # Django stuff: 58 | *.log 59 | local_settings.py 60 | db.sqlite3 61 | 62 | # Flask stuff: 63 | instance/ 64 | .webassets-cache 65 | 66 | # Scrapy stuff: 67 | .scrapy 68 | 69 | # Sphinx documentation 70 | docs/_build/ 71 | 72 | # PyBuilder 73 | target/ 74 | 75 | # Jupyter Notebook 76 | .ipynb_checkpoints 77 | 78 | # IPython 79 | profile_default/ 80 | ipython_config.py 81 | 82 | # pyenv 83 | .python-version 84 | 85 | # celery beat schedule file 86 | celerybeat-schedule 87 | 88 | # SageMath parsed files 89 | *.sage.py 90 | 91 | # Environments 92 | .env 93 | .venv 94 | env/ 95 | venv/ 96 | ENV/ 97 | env.bak/ 98 | venv.bak/ 99 | 100 | # Spyder project settings 101 | .spyderproject 102 | .spyproject 103 | 104 | # Rope project settings 105 | .ropeproject 106 | 107 | # mkdocs documentation 108 | /site 109 | 110 | # mypy 111 | .mypy_cache/ 112 | .dmypy.json 113 | dmypy.json 114 | 115 | # Pyre type checker 116 | .pyre/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # domain-randomizer 2 | A standalone library to randomize various OpenAI Gym Environments. 3 | 4 | [Domain Randomization](https://arxiv.org/abs/1703.06907) is a idea that helps with sim2real transfer, but surprisingly has no general open source implementations. This library hopes to fill in that gap by providing a _standalone_ library that you can use in your own work. 5 | 6 | ## Supported Implementations 7 | Within our library, you can find randomized-environment implementations for: 8 | * `LunarLander-v0` 9 | * `Pusher3DoF-v0` 10 | * `Humanoid-v2` 11 | * `HalfCheetah-v2` 12 | * `FetchPush-v1` 13 | * `ResidualPushEnv-v0` 14 | * `ResidualPickAndPlaceEnv-v0` 15 | 16 | ## Usage 17 | 18 | ```python 19 | 20 | import randomizer 21 | import gym 22 | 23 | from randomizer.wrappers import RandomizedEnvWrapper 24 | 25 | env = RandomizedEnvWrapper(gym.make('ResidualPickAndPlaceRandomizedEnv-v0'), seed=123) 26 | env.randomize() 27 | 28 | ''' 29 | List of the parameters that you wish to randomize. 30 | The elements in the list can either be a string ("default") or a number between 0 and 1. (refer below example) 31 | Important Note : Please maintain the same order as in the corresponding .json file. 32 | ''' 33 | 34 | env.randomize(["default", 0.1]) 35 | env.reset() 36 | ``` 37 | 38 | We also provide an implementation for vectorized environments, which is useful in reinforcement learning for parallel training or evaluation. 39 | 40 | ## Create Your Own Environment 41 | 42 | There are three main file to get your randomized environment to work correctly: environment file, configuration file, and environment registration. 43 | 44 | ### Environment File 45 | 46 | Since the standardized `gym` environments (MuJoCo, Box2D, Pybullet) don't include randomization, we'll need to create our own randomization files. For Box2D, the instructions are quite similar (and you can use [Lunar Lander](https://github.com/montrealrobotics/domain-randomizer/blob/master/randomizer/lunar_lander.py) as a starting example), but in this example, we'll look at MuJoCo. 47 | 48 | For MuJoCo, our library rewrites the XML (some parameters however, can be changed [after the XML is compiled](https://github.com/openai/mujoco-py/issues/148), but we find it inconvenient to do this when some parameters can and can't). We [load the XML](https://github.com/montrealrobotics/domain-randomizer/blob/master/randomizer/pusher3dof.py#L21-L22) and then [locate the randomization parameters we're interested in](https://github.com/montrealrobotics/domain-randomizer/blob/master/randomizer/pusher3dof.py#L24-L32). The main function is called `update_randomized_params()`, which gets called by our library on [reset](https://github.com/montrealrobotics/domain-randomizer/blob/master/randomizer/pusher3dof.py#L34-L54). 49 | 50 | ### Configuration File 51 | 52 | To set the ranges that you can randomize, you'll need a [configuration file](https://github.com/montrealrobotics/domain-randomizer/blob/master/randomizer/config/Pusher3DOFRandomized/default.json), which just is a list of JSON objects that tells us what dimensions to randomize, and the ranges (specified by a default value + min/max multipliers). 53 | 54 | ### Environment Registration 55 | 56 | To use the environment, you'll need to [register the environment](https://github.com/montrealrobotics/domain-randomizer/blob/master/randomizer/__init__.py#L25-L30). While this looks like a normal environment file, you'll want to notice the `kwargs`, which our library uses to find the correct configuration file to pull the randomized values from. 57 | 58 | -------------------------------------------------------------------------------- /randomizer/assets/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | MODEL_PATH = os.path.abspath(os.path.dirname(__file__)) 3 | -------------------------------------------------------------------------------- /randomizer/assets/fetch/hook.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /randomizer/assets/fetch/pick_and_place.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /randomizer/assets/fetch/push.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /randomizer/assets/fetch/pusher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /randomizer/assets/fetch/randomizedfetch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /randomizer/assets/fetch/randomizedfetchhook.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /randomizer/assets/fetch/reach.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /randomizer/assets/fetch/slide.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/base_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/base_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/bellows_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/bellows_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/elbow_flex_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/elbow_flex_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/estop_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/estop_link.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/forearm_roll_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/forearm_roll_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/gripper_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/gripper_link.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/head_pan_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/head_pan_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/head_tilt_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/head_tilt_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/l_wheel_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/l_wheel_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/laser_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/laser_link.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/r_wheel_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/r_wheel_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/shoulder_lift_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/shoulder_lift_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/shoulder_pan_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/shoulder_pan_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/torso_fixed_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/torso_fixed_link.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/torso_lift_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/torso_lift_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/upperarm_roll_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/upperarm_roll_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/wrist_flex_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/wrist_flex_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/stls/fetch/wrist_roll_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/stls/fetch/wrist_roll_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets/textures/block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/textures/block.png -------------------------------------------------------------------------------- /randomizer/assets/textures/block_hidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets/textures/block_hidden.png -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/pick_and_place.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/push.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/reach.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/slide.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_111.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_271.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_330.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_370.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_453.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_470.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_628.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_646.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_703.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_787.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_811.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_830.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_838.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_943.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_948.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_98.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/fetch/train_scene_hook_988.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/hand/manipulate_block.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/hand/manipulate_egg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/hand/manipulate_pen.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/hand/reach.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/hand/shared_asset.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/base_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/base_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/bellows_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/bellows_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/elbow_flex_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/elbow_flex_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/estop_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/estop_link.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/forearm_roll_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/forearm_roll_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/gripper_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/gripper_link.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/head_pan_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/head_pan_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/head_tilt_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/head_tilt_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/l_wheel_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/l_wheel_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/laser_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/laser_link.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/1960_corvette.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/1960_corvette.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/A_Ribbon.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/A_Ribbon.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Banana_Scale.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Banana_Scale.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Bishop.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Bishop.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Body1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Body1.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Cherry_MX_Cap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Cherry_MX_Cap.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Cube_Stand.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Cube_Stand.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/DiningTableRound.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/DiningTableRound.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Dodecagon_Cup2_3D_Aaron_Berg.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Dodecagon_Cup2_3D_Aaron_Berg.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Dodecahedron.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Dodecahedron.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Epic_Crift.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Epic_Crift.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Fadenöler.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Fadenöler.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Filament_Spool_Leveler.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Filament_Spool_Leveler.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Filtre_filament.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Filtre_filament.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Furnace_block_MC.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Furnace_block_MC.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Gengar.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Gengar.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Hendecagonal_prism.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Hendecagonal_prism.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Hot_Tub_Drain_Cover.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Hot_Tub_Drain_Cover.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Incense_Holder_final.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Incense_Holder_final.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Keysafe.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Keysafe.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/King.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/King.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Lightbulb_Socket.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Lightbulb_Socket.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/LotusBowl01.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/LotusBowl01.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Love_Box_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Love_Box_1.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/LowPolySchildkroete.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/LowPolySchildkroete.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Low_Poly_Bowl.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Low_Poly_Bowl.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Low_poly_bowl_or_cup.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Low_poly_bowl_or_cup.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/ModernSlipper.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/ModernSlipper.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Octahedron.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Octahedron.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Planter_Cauldron.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Planter_Cauldron.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Queen.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Queen.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Rabbit_Complete.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Rabbit_Complete.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Recycle_Bin_For_Cans.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Recycle_Bin_For_Cans.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Rook.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Rook.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/SEG-JellyFish.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/SEG-JellyFish.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Salty_Body.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Salty_Body.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Simple_Filament_Guide.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Simple_Filament_Guide.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Simplus_FORMA_NapkinRing_mm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Simplus_FORMA_NapkinRing_mm.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Sponge_Holder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Sponge_Holder.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Stackable_Square_Container.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Stackable_Square_Container.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Stepped_Pencil_Holder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Stepped_Pencil_Holder.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Sunglasses.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Sunglasses.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/TD_Mushroom_cap.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/TD_Mushroom_cap.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Thumb_Screw.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Thumb_Screw.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_1_pot.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_1_pot.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_1_soil.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_1_soil.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_2_pot.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_2_pot.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_2_tree.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_2_tree.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_3_pot_HD_base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_3_pot_HD_base.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_4_soil.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_4_soil.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_4_tree.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Tree_4_tree.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Triforce.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Triforce.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Trophy.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Trophy.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/VOLCANO.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/VOLCANO.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Vase_Lamp.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Vase_Lamp.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Vase_Mode.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/Vase_Mode.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/WillTankGrey.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/WillTankGrey.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/adptador_grifo.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/adptador_grifo.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/apple_watch_stand_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/apple_watch_stand_1.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/ash_tray_with_design.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/ash_tray_with_design.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/ball_holder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/ball_holder.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/banana_print.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/banana_print.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/boozefighterbottle_actual_bottle.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/boozefighterbottle_actual_bottle.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/brilliant_turing4.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/brilliant_turing4.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/candle_holder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/candle_holder.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/chair_sds2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/chair_sds2.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/charizard_.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/charizard_.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/circ-sq-tri.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/circ-sq-tri.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/coin_trap_penny.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/coin_trap_penny.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/dodecagonal_prism.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/dodecagonal_prism.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/famicon-port-cover.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/famicon-port-cover.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/fox.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/fox.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/galan_trémolet_.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/galan_trémolet_.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/giraffe.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/giraffe.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/grendae.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/grendae.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/heXS34oh3pk.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/heXS34oh3pk.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hexagonal_prism.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hexagonal_prism.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hollow_cylinder_20mm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hollow_cylinder_20mm.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_1.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_2.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_3.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_3.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_5.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_5.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_6.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_6.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_7.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/hubble_model_kit_7.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/joshuaoiltankerwhite.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/joshuaoiltankerwhite.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/liberty_grille.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/liberty_grille.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/lspike2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/lspike2.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/mug.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/mug.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/nidoran_01.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/nidoran_01.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/nonagonal_pyramid.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/nonagonal_pyramid.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/omino_lego_head.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/omino_lego_head.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/pentagonal_prism.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/pentagonal_prism.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/pikachu_dual_body.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/pikachu_dual_body.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/pot_of_gold_handles_rev2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/pot_of_gold_handles_rev2.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/quilava_with_frills.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/quilava_with_frills.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/stormtrooper_pencil_holder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/stormtrooper_pencil_holder.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/strainer.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/strainer.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/stunning_jarv-turing.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/stunning_jarv-turing.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/tesaract.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/tesaract.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Album_Cube.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Album_Cube.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Elephant.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Elephant.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Knight.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Knight.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Low_poly_Teddy_bear.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Low_poly_Teddy_bear.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Pawn.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Pawn.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/PufferFull.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/PufferFull.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Recycle_Soda_Can.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/Recycle_Soda_Can.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/boat_2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/boat_2.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/cupcake.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/cupcake.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/octagonal_prism.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/octagonal_prism.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/styrofoam_cup.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/test_objs/styrofoam_cup.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/toy_boat_xyz_with_guns.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/toy_boat_xyz_with_guns.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/train_obj_license.txt: -------------------------------------------------------------------------------- 1 | train_obj_license -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/triangular_prism.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/triangular_prism.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/turtle-dock.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/turtle-dock.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/vase1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/vase1.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/vaso_5facce_v2_noforo.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/vaso_5facce_v2_noforo.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/wacom_intuos_draw_pen_holder.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/mujoco_models/wacom_intuos_draw_pen_holder.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/r_wheel_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/r_wheel_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/shoulder_lift_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/shoulder_lift_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/shoulder_pan_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/shoulder_pan_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/torso_fixed_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/torso_fixed_link.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/torso_lift_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/torso_lift_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/upperarm_roll_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/upperarm_roll_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/wrist_flex_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/wrist_flex_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/fetch/wrist_roll_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/fetch/wrist_roll_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/F1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/F1.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/F2.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/F2.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/F3.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/F3.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/TH1_z.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/TH1_z.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/TH2_z.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/TH2_z.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/TH3_z.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/TH3_z.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/forearm_electric.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/forearm_electric.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/forearm_electric_cvx.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/forearm_electric_cvx.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/knuckle.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/knuckle.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/lfmetacarpal.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/lfmetacarpal.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/palm.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/palm.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/fetch_complex_objects/stls/hand/wrist.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/fetch_complex_objects/stls/hand/wrist.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/hook.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/base_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/base_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/bellows_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/bellows_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/elbow_flex_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/elbow_flex_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/estop_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/estop_link.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/forearm_roll_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/forearm_roll_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/gripper_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/gripper_link.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/head_pan_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/head_pan_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/head_tilt_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/head_tilt_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/l_wheel_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/l_wheel_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/laser_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/laser_link.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/r_wheel_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/r_wheel_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/shoulder_lift_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/shoulder_lift_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/shoulder_pan_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/shoulder_pan_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/torso_fixed_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/torso_fixed_link.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/torso_lift_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/torso_lift_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/upperarm_roll_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/upperarm_roll_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/wrist_flex_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/wrist_flex_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/stls/wrist_roll_link_collision.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/stls/wrist_roll_link_collision.stl -------------------------------------------------------------------------------- /randomizer/assets_residual/textures/block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/textures/block.png -------------------------------------------------------------------------------- /randomizer/assets_residual/textures/block_hidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/montrealrobotics/domain-randomizer/aa21209a846d553575cca18d159a48470eae492a/randomizer/assets_residual/textures/block_hidden.png -------------------------------------------------------------------------------- /randomizer/assets_residual/tmp.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /randomizer/config/FetchPushRandomized/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "FetchPushDefault-v0", 3 | "dimensions": [ 4 | { 5 | "name": "damping", 6 | "default": 0.01, 7 | "multiplier_min": 1.0, 8 | "multiplier_max": 1.0 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /randomizer/config/HalfCheetahRandomized/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "HalfCheetahRandomized-v0", 3 | "dimensions": [ 4 | { 5 | "name": "foot", 6 | "default": 0.046, 7 | "multiplier_min": 1.0, 8 | "multiplier_max": 1.5 9 | }, 10 | { 11 | "name": "shin", 12 | "default": 0.046, 13 | "multiplier_min": 1.0, 14 | "multiplier_max": 1.5 15 | }, 16 | { 17 | "name": "thigh", 18 | "default": 0.046, 19 | "multiplier_min": 1.0, 20 | "multiplier_max": 1.5 21 | }, 22 | { 23 | "name": "torso", 24 | "default": 0.046, 25 | "multiplier_min": 1.0, 26 | "multiplier_max": 1.5 27 | }, 28 | { 29 | "name": "head", 30 | "default": 0.046, 31 | "multiplier_min": 1.0, 32 | "multiplier_max": 1.5 33 | } 34 | ], 35 | "geom_map" : { 36 | "foot": ["bfoot", "ffoot"], 37 | "shin": ["bshin", "fshin"], 38 | "thigh": ["bthigh", "fthigh"], 39 | "torso": ["torso"], 40 | "head": ["head"] 41 | }, 42 | "suffixes": { 43 | "foot": "0.046", 44 | "shin": "0.046", 45 | "thigh": "0.046", 46 | "torso": "0.046", 47 | "head": "0.046" 48 | } 49 | } -------------------------------------------------------------------------------- /randomizer/config/HumanoidRandomized/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "HumanoidRandomized-v0", 3 | "dimensions": [ 4 | { 5 | "name": "foot", 6 | "default": 0.075, 7 | "multiplier_min": 1.0, 8 | "multiplier_max": 1.5 9 | }, 10 | { 11 | "name": "thigh", 12 | "default": 0.06, 13 | "multiplier_min": 1.0, 14 | "multiplier_max": 1.5 15 | }, 16 | { 17 | "name": "shin", 18 | "default": 0.06, 19 | "multiplier_min": 1.0, 20 | "multiplier_max": 1.5 21 | }, 22 | { 23 | "name": "torso", 24 | "default": 0.07, 25 | "multiplier_min": 1.0, 26 | "multiplier_max": 1.5 27 | }, 28 | { 29 | "name": "head", 30 | "default": 0.09, 31 | "multiplier_min": 1.0, 32 | "multiplier_max": 1.5 33 | }, 34 | { 35 | "name": "hand", 36 | "default": 0.04, 37 | "multiplier_min": 1.0, 38 | "multiplier_max": 1.5 39 | } 40 | ], 41 | "geom_map" : { 42 | "head": ["head"], 43 | "thigh": ["right_thigh1", "left_thigh1"], 44 | "shin": ["right_shin1", "left_shin1"], 45 | "foot": ["left_foot", "right_foot"], 46 | "hand": ["left_hand", "right_hand"], 47 | "torso": ["torso1"] 48 | } 49 | } -------------------------------------------------------------------------------- /randomizer/config/LunarLanderRandomized/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "LunarLanderRandomized-v0", 3 | "dimensions": [ 4 | { 5 | "name": "main_engine", 6 | "default": 13.0, 7 | "multiplier_min": 1.0, 8 | "multiplier_max": 1.0 9 | } 10 | ] 11 | } 12 | -------------------------------------------------------------------------------- /randomizer/config/LunarLanderRandomized/random.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "LunarLanderRandomized-v0", 3 | "dimensions": [ 4 | { 5 | "name": "main_engine", 6 | "default": 13.0, 7 | "multiplier_min": 0.615, 8 | "multiplier_max": 1.538 9 | } 10 | ] 11 | } -------------------------------------------------------------------------------- /randomizer/config/Pusher3DOFRandomized/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "Pusher3DOFDefault-v0", 3 | "dimensions": [ 4 | { 5 | "name": "frictionloss", 6 | "default": 0.01, 7 | "multiplier_min": 1.0, 8 | "multiplier_max": 1.0 9 | }, 10 | { 11 | "name": "damping", 12 | "default": 0.025, 13 | "multiplier_min": 1.0, 14 | "multiplier_max": 1.0 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /randomizer/config/Pusher3DOFRandomized/random.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "Pusher3DOFRandomized-v0", 3 | "dimensions": [ 4 | { 5 | "name": "frictionloss", 6 | "default": 0.01, 7 | "multiplier_min": 0.4, 8 | "multiplier_max": 1.0 9 | }, 10 | { 11 | "name": "damping", 12 | "default": 0.025, 13 | "multiplier_min": 0.4, 14 | "multiplier_max": 1.0 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /randomizer/config/ResidualFetchHookRandomized/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "ResidualHookRandomizedEnv-v0", 3 | "dimensions": [ 4 | { 5 | "name": "block_mass", 6 | "default": 2, 7 | "multiplier_min": 1.0, 8 | "multiplier_max": 1.0 9 | }, 10 | { 11 | "name": "hook_mass", 12 | "default": 4, 13 | "multiplier_min": 1.0, 14 | "multiplier_max": 1.0 15 | }, 16 | { 17 | "name": "friction", 18 | "default": 1, 19 | "multiplier_min": 0.2777, 20 | "multiplier_max": 2.222 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /randomizer/config/ResidualFetchHookRandomized/random.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "ResidualHookRandomizedEnv-v0", 3 | "dimensions": [ 4 | { 5 | "name": "block_mass", 6 | "default": 4, 7 | "multiplier_min": 0.3, 8 | "multiplier_max": 3 9 | }, 10 | { 11 | "name": "hook_mass", 12 | "default": 4, 13 | "multiplier_min": 0.6, 14 | "multiplier_max": 4 15 | }, 16 | { 17 | "name": "friction", 18 | "default": 1, 19 | "multiplier_min": 0.8, 20 | "multiplier_max": 2.3 21 | } 22 | ] 23 | } 24 | 25 | -------------------------------------------------------------------------------- /randomizer/config/ResidualMPCPushRandomized/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "ResidualMPCPushDefaultEnv-v0", 3 | "dimensions": [ 4 | { 5 | "name": "damping", 6 | "default": 0.01, 7 | "multiplier_min": 1.0, 8 | "multiplier_max": 1.0 9 | }, 10 | { 11 | "name": "friction", 12 | "default": 0.18, 13 | "multiplier_min": 1.0, 14 | "multiplier_max": 1.0 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /randomizer/config/ResidualMPCPushRandomized/random.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "ResidualMPCPushRandomizedEnv-v0", 3 | "dimensions": [ 4 | { 5 | "name": "damping", 6 | "default": 0.1, 7 | "multiplier_min": 0.1, 8 | "multiplier_max": 3 9 | }, 10 | 11 | { 12 | "name": "friction", 13 | "default": 0.18, 14 | "multiplier_min": 0.2777, 15 | "multiplier_max": 2.222 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /randomizer/config/ResidualPickAndPlaceRandomized/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "ResidualPickAndPlaceDefaultEnv-v0", 3 | "dimensions": [ 4 | { 5 | "name": "damping", 6 | "default": 0.01, 7 | "multiplier_min": 1.0, 8 | "multiplier_max": 1.0 9 | }, 10 | { 11 | "name": "friction", 12 | "default": 0.18, 13 | "multiplier_min": 1.0, 14 | "multiplier_max": 1.0 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /randomizer/config/ResidualPickAndPlaceRandomized/random.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "ResidualPickAndPlaceRandomizedEnv-v0", 3 | "dimensions": [ 4 | { 5 | "name": "damping", 6 | "default": 0.1, 7 | "multiplier_min": 0.1, 8 | "multiplier_max": 3 9 | }, 10 | 11 | { 12 | "name": "friction", 13 | "default": 0.18, 14 | "multiplier_min": 0.2777, 15 | "multiplier_max": 2.222 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /randomizer/config/ResidualPushRandomized/default.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "ResidualPushDefaultEnv-v0", 3 | "dimensions": [ 4 | { 5 | "name": "damping", 6 | "default": 0.01, 7 | "multiplier_min": 1.0, 8 | "multiplier_max": 1.0 9 | }, 10 | { 11 | "name": "friction", 12 | "default": 0.18, 13 | "multiplier_min": 1.0, 14 | "multiplier_max": 1.0 15 | } 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /randomizer/config/ResidualPushRandomized/random.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": "ResidualPushRandomizedEnv-v0", 3 | "dimensions": [ 4 | { 5 | "name": "damping", 6 | "default": 0.1, 7 | "multiplier_min": 0.1, 8 | "multiplier_max": 3 9 | }, 10 | 11 | { 12 | "name": "friction", 13 | "default": 0.18, 14 | "multiplier_min": 0.2777, 15 | "multiplier_max": 2.222 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /randomizer/config/__init__.py: -------------------------------------------------------------------------------- 1 | import os 2 | CONFIG_PATH = os.path.abspath(os.path.dirname(__file__)) 3 | -------------------------------------------------------------------------------- /randomizer/controllers/miscalibrated_push_controller.py: -------------------------------------------------------------------------------- 1 | from .pick_and_place_controller import get_move_action 2 | 3 | import numpy as np 4 | 5 | DEBUG = False 6 | 7 | 8 | def get_push_control(obs, atol=1e-3, block_width=0.15, workspace_height=0.1): 9 | 10 | gripper_position = obs['observation'][:3] 11 | block_position = obs['observation'][3:6] 12 | goal = obs['desired_goal'] 13 | 14 | desired_block_angle = np.arctan2(goal[0] - block_position[0], goal[1] - block_position[1]) 15 | gripper_angle = np.arctan2(goal[0] - gripper_position[0], goal[1] - gripper_position[1]) 16 | 17 | push_position = block_position.copy() 18 | push_position[0] += -1. * np.sin(desired_block_angle) * block_width / 2. 19 | push_position[1] += -1. * np.cos(desired_block_angle) * block_width / 2. 20 | push_position[2] += 0.005 21 | 22 | # If the block is already at the place position, do nothing 23 | if np.sum(np.subtract(block_position, goal)**2) < atol: 24 | if DEBUG: 25 | print("The block is already at the place position; do nothing") 26 | return np.array([0., 0., 0., 0.]) 27 | 28 | # Angle between gripper and goal vs block and goal is roughly the same 29 | angle_diff = abs((desired_block_angle - gripper_angle + np.pi) % (2*np.pi) - np.pi) 30 | 31 | gripper_sq_distance = (gripper_position[0] - goal[0])**2 + (gripper_position[1] - goal[1])**2 32 | block_sq_distance = (block_position[0] - goal[0])**2 + (block_position[1] - goal[1])**2 33 | 34 | if (gripper_position[2] - push_position[2])**2 < atol and angle_diff < np.pi/4 and block_sq_distance < gripper_sq_distance: 35 | 36 | # Push towards the goal 37 | target_position = goal 38 | target_position[2] = gripper_position[2] 39 | if DEBUG: 40 | print("Push") 41 | return get_move_action(obs, target_position, atol=atol, gain=5.0) 42 | 43 | # If the gripper is above the push position 44 | if (gripper_position[0] - push_position[0])**2 + (gripper_position[1] - push_position[1])**2 < atol: 45 | 46 | # Move down to prepare for push 47 | if DEBUG: 48 | print("Move down to prepare for push") 49 | return get_move_action(obs, push_position, atol=atol) 50 | 51 | 52 | # Else move the gripper to above the push 53 | target_position = push_position.copy() 54 | target_position[2] += workspace_height 55 | if DEBUG: 56 | print("Move to above the push position") 57 | 58 | return get_move_action(obs, target_position, atol=atol) 59 | 60 | 61 | -------------------------------------------------------------------------------- /randomizer/controllers/pick_and_place_controller.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | DEBUG = False 4 | 5 | def get_move_action(observation, target_position, atol=1e-3, gain=10., close_gripper=False): 6 | """ 7 | Move an end effector to a position and orientation. 8 | """ 9 | # Get the currents 10 | current_position = observation['observation'][:3] 11 | 12 | action = gain * np.subtract(target_position, current_position) 13 | if close_gripper: 14 | gripper_action = -1. 15 | else: 16 | gripper_action = 0. 17 | action = np.hstack((action, gripper_action)) 18 | 19 | return action 20 | 21 | def block_is_grasped(obs, relative_grasp_position, atol=1e-3): 22 | return block_inside_grippers(obs, relative_grasp_position, atol=atol) and grippers_are_closed(obs, atol=atol) 23 | 24 | def block_inside_grippers(obs, relative_grasp_position, atol=1e-3): 25 | gripper_position = obs['observation'][:3] 26 | block_position = obs['observation'][3:6] 27 | 28 | relative_position = np.subtract(gripper_position, block_position) 29 | 30 | return np.sum(np.subtract(relative_position, relative_grasp_position)**2) < atol 31 | 32 | def grippers_are_closed(obs, atol=1e-3): 33 | gripper_state = obs['observation'][9:11] 34 | return abs(gripper_state[0] - 0.024) < atol 35 | 36 | def grippers_are_open(obs, atol=1e-3): 37 | gripper_state = obs['observation'][9:11] 38 | return abs(gripper_state[0] - 0.05) < atol 39 | 40 | def get_pick_and_place_control(obs, relative_grasp_position=(0., 0., -0.02), workspace_height=0.1, atol=1e-3, gain=10): 41 | """ 42 | Returns 43 | ------- 44 | action : [float] * 4 45 | """ 46 | gripper_position = obs['observation'][:3] 47 | block_position = obs['observation'][3:6] 48 | place_position = obs['desired_goal'] 49 | 50 | # If the gripper is already grasping the block 51 | if block_is_grasped(obs, relative_grasp_position, atol=atol): 52 | 53 | # If the block is already at the place position, do nothing except keep the gripper closed 54 | if np.sum(np.subtract(block_position, place_position)**2) < atol: 55 | if DEBUG: 56 | print("The block is already at the place position; do nothing") 57 | return np.array([0., 0., 0., -1.]) 58 | 59 | # Move to the place position while keeping the gripper closed 60 | target_position = np.add(place_position, relative_grasp_position) 61 | target_position[2] += workspace_height/2. 62 | if DEBUG: 63 | print("Move to above the place position") 64 | return get_move_action(obs, target_position, atol=atol, close_gripper=True, gain=gain) 65 | 66 | # If the block is ready to be grasped 67 | if block_inside_grippers(obs, relative_grasp_position, atol=atol): 68 | 69 | # Close the grippers 70 | if DEBUG: 71 | print("Close the grippers") 72 | return np.array([0., 0., 0., -1.]) 73 | 74 | # If the gripper is above the block 75 | if (gripper_position[0] - block_position[0])**2 + (gripper_position[1] - block_position[1])**2 < atol: 76 | 77 | # If the grippers are closed, open them 78 | if not grippers_are_open(obs, atol=atol): 79 | if DEBUG: 80 | print("Open the grippers") 81 | return np.array([0., 0., 0., 1.]) 82 | 83 | # Move down to grasp 84 | target_position = np.add(block_position, relative_grasp_position) 85 | if DEBUG: 86 | print("Move down to grasp") 87 | return get_move_action(obs, target_position, atol=atol, gain=gain) 88 | 89 | 90 | # Else move the gripper to above the block 91 | target_position = np.add(block_position, relative_grasp_position) 92 | target_position[2] += workspace_height 93 | if DEBUG: 94 | print("Move to above the block") 95 | return get_move_action(obs, target_position, atol=atol, gain=gain) 96 | 97 | 98 | -------------------------------------------------------------------------------- /randomizer/dimension.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | 4 | class Dimension(object): 5 | """Class which handles the machinery of randomizing a particular dimension 6 | """ 7 | def __init__(self, default_value, multiplier_min=0.0, multiplier_max=1.0, name=None): 8 | self.default_value = default_value 9 | self.current_value = default_value 10 | self.multiplier_min = multiplier_min 11 | self.multiplier_max = multiplier_max 12 | self.range_min = self.default_value * self.multiplier_min 13 | self.range_max = self.default_value * self.multiplier_max 14 | self.name = name 15 | 16 | def randomize(self): 17 | self.current_value = np.random.uniform(low=self.range_min, high=self.range_max) 18 | 19 | def rescale(self, value): 20 | return self.range_min + (self.range_max - self.range_min) * value 21 | 22 | def reset(self): 23 | self.current_value = self.default_value 24 | 25 | def set(self, value): 26 | self.current_value = value 27 | 28 | -------------------------------------------------------------------------------- /randomizer/half_cheetah.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from gym import utils 3 | from gym.envs.mujoco import mujoco_env 4 | 5 | from .randomized_locomotion import RandomizedLocomotionEnv 6 | 7 | class HalfCheetahRandomizedEnv(RandomizedLocomotionEnv): 8 | def __init__(self, **kwargs): 9 | RandomizedLocomotionEnv.__init__(self, **kwargs) 10 | 11 | def step(self, action): 12 | xposbefore = self.sim.data.qpos[0] 13 | self.do_simulation(action, self.frame_skip) 14 | xposafter = self.sim.data.qpos[0] 15 | ob = self._get_obs() 16 | reward_ctrl = - 0.1 * np.square(action).sum() 17 | reward_run = (xposafter - xposbefore)/self.dt 18 | reward = reward_ctrl + reward_run 19 | done = False 20 | return ob, reward, done, dict(reward_run=reward_run, reward_ctrl=reward_ctrl) 21 | 22 | def _get_obs(self): 23 | return np.concatenate([ 24 | self.sim.data.qpos.flat[1:], 25 | self.sim.data.qvel.flat, 26 | ]) 27 | 28 | def reset_model(self): 29 | qpos = self.init_qpos + self.np_random.uniform(low=-.1, high=.1, size=self.model.nq) 30 | qvel = self.init_qvel + self.np_random.randn(self.model.nv) * .1 31 | self.set_state(qpos, qvel) 32 | return self._get_obs() 33 | 34 | def viewer_setup(self): 35 | self.viewer.cam.distance = self.model.stat.extent * 0.5 36 | -------------------------------------------------------------------------------- /randomizer/humanoid.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | import numpy as np 4 | from gym import utils 5 | from gym.envs.mujoco import mujoco_env 6 | import xml.etree.ElementTree as et 7 | 8 | import mujoco_py 9 | 10 | from .randomized_locomotion import RandomizedLocomotionEnv 11 | 12 | 13 | def mass_center(model, sim): 14 | mass = np.expand_dims(model.body_mass, 1) 15 | xpos = sim.data.xipos 16 | 17 | return (np.sum(mass * xpos, 0) / np.sum(mass))[0] 18 | 19 | 20 | # TODO: this class is not Thread-Safe 21 | class HumanoidRandomizedEnv(RandomizedLocomotionEnv): 22 | def __init__(self, **kwargs): 23 | RandomizedLocomotionEnv.__init__(self, **kwargs) 24 | 25 | def _get_obs(self): 26 | data = self.sim.data 27 | return np.concatenate([data.qpos.flat[2:], 28 | data.qvel.flat, 29 | data.cinert.flat, 30 | data.cvel.flat, 31 | data.qfrc_actuator.flat, 32 | data.cfrc_ext.flat]) 33 | 34 | def step(self, a): 35 | pos_before = mass_center(self.model, self.sim) 36 | self.do_simulation(a, self.frame_skip) 37 | pos_after = mass_center(self.model, self.sim) 38 | alive_bonus = 5.0 39 | data = self.sim.data 40 | lin_vel_cost = 0.25 * (pos_after - pos_before) / self.model.opt.timestep 41 | quad_ctrl_cost = 0.1 * np.square(data.ctrl).sum() 42 | quad_impact_cost = .5e-6 * np.square(data.cfrc_ext).sum() 43 | quad_impact_cost = min(quad_impact_cost, 10) 44 | reward = lin_vel_cost - quad_ctrl_cost - quad_impact_cost + alive_bonus 45 | qpos = self.sim.data.qpos 46 | done = bool((qpos[2] < 1.0) or (qpos[2] > 2.0)) 47 | return self._get_obs(), reward, done, dict(reward_linvel=lin_vel_cost, reward_quadctrl=-quad_ctrl_cost, 48 | reward_alive=alive_bonus, reward_impact=-quad_impact_cost) 49 | 50 | def reset_model(self): 51 | c = 0.01 52 | self.set_state( 53 | self.init_qpos + self.np_random.uniform(low=-c, high=c, size=self.model.nq), 54 | self.init_qvel + self.np_random.uniform(low=-c, high=c, size=self.model.nv, ) 55 | ) 56 | return self._get_obs() 57 | 58 | def viewer_setup(self): 59 | self.viewer.cam.trackbodyid = 1 60 | self.viewer.cam.distance = self.model.stat.extent * 1.0 61 | self.viewer.cam.lookat[2] = 2.0 62 | 63 | self.viewer.cam.elevation = -20 64 | -------------------------------------------------------------------------------- /randomizer/randomized_fetchpush.py: -------------------------------------------------------------------------------- 1 | import os 2 | import numpy as np 3 | from gym import utils 4 | from gym.envs.mujoco import mujoco_env 5 | 6 | from .randomized_fetch import RandomizedFetchEnv 7 | 8 | # Ensure we get the path separator correct on windows 9 | MODEL_XML_PATH = os.path.join('fetch', 'push.xml') 10 | 11 | class FetchPushRandomizedEnv(RandomizedFetchEnv, utils.EzPickle): 12 | def __init__(self, reward_type='sparse', **kwargs): 13 | initial_qpos = { 14 | 'robot0:slide0': 0.405, 15 | 'robot0:slide1': 0.48, 16 | 'robot0:slide2': 0.0, 17 | 'object0:joint': [1.25, 0.53, 0.4, 1., 0., 0., 0.], 18 | } 19 | 20 | RandomizedFetchEnv.__init__(self, MODEL_XML_PATH, has_object=True, block_gripper=True, n_substeps=20, 21 | gripper_extra_height=0.0, target_in_the_air=False, target_offset=0.0, 22 | obj_range=0.15, target_range=0.15, distance_threshold=0.05, 23 | initial_qpos=initial_qpos, reward_type=reward_type, **kwargs) 24 | 25 | utils.EzPickle.__init__(self) -------------------------------------------------------------------------------- /randomizer/randomized_locomotion.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | import json 4 | import numpy as np 5 | from gym import utils 6 | from gym.envs.mujoco import mujoco_env 7 | import xml.etree.ElementTree as et 8 | 9 | import mujoco_py 10 | 11 | 12 | def mass_center(model, sim): 13 | mass = np.expand_dims(model.body_mass, 1) 14 | xpos = sim.data.xipos 15 | 16 | return (np.sum(mass * xpos, 0) / np.sum(mass))[0] 17 | 18 | 19 | # TODO: this class is not Thread-Safe 20 | class RandomizedLocomotionEnv(mujoco_env.MujocoEnv, utils.EzPickle): 21 | def __init__(self, **kwargs): 22 | utils.EzPickle.__init__(self) 23 | mujoco_env.MujocoEnv.__init__(self, kwargs.get('xml_name'), frame_skip=5) 24 | 25 | # randomization 26 | self.reference_path = os.path.join(os.path.dirname(mujoco_env.__file__), "assets", kwargs.get('xml_name')) 27 | self.reference_xml = et.parse(self.reference_path) 28 | self.config_file = kwargs.get('config') 29 | self.dimensions = [] 30 | self.dimension_map = [] 31 | self.suffixes = [] 32 | self._locate_randomize_parameters() 33 | 34 | def _locate_randomize_parameters(self): 35 | self.root = self.reference_xml.getroot() 36 | with open(self.config_file, mode='r') as f: 37 | config = json.load(f) 38 | 39 | check_suffixes = config.get('suffixes', False) 40 | 41 | for entry in config['dimensions']: 42 | name = entry["name"] 43 | self.dimension_map.append([]) 44 | for geom in config["geom_map"][name]: 45 | self.dimension_map[-1].append(self.root.find(".//geom[@name='{}']".format(geom))) 46 | 47 | if check_suffixes: 48 | suffix = config['suffixes'].get(name, "") 49 | self.suffixes.append(suffix) 50 | else: 51 | self.suffixes.append("") 52 | 53 | def _create_xml(self): 54 | for i, bodypart in enumerate(self.dimensions): 55 | for geom in self.dimension_map[i]: 56 | suffix = self.suffixes[i] 57 | value = "{:3f} {}".format(self.dimensions[i].current_value, suffix) 58 | geom.set('size', '{}'.format(value)) 59 | 60 | return et.tostring(self.root, encoding='unicode', method='xml') 61 | 62 | def update_randomized_params(self): 63 | xml = self._create_xml() 64 | self._re_init(xml) 65 | 66 | def _re_init(self, xml): 67 | self.model = mujoco_py.load_model_from_xml(xml) 68 | self.sim = mujoco_py.MjSim(self.model) 69 | self.data = self.sim.data 70 | self.init_qpos = self.data.qpos.ravel().copy() 71 | self.init_qvel = self.data.qvel.ravel().copy() 72 | observation, _reward, done, _info = self.step(np.zeros(self.model.nu)) 73 | assert not done 74 | if self.viewer: 75 | self.viewer.update_sim(self.sim) -------------------------------------------------------------------------------- /randomizer/randomized_mpc_push.py: -------------------------------------------------------------------------------- 1 | import os 2 | from gym import utils 3 | 4 | from .residual_mpc_push import RandomizedResidualMPCPushEnv 5 | 6 | # Ensure we get the path separator correct on windows 7 | MODEL_XML_PATH = os.path.join('fetch', 'push.xml') 8 | 9 | # RANDOMIZED RESIDUAL PUSH ENVIRONMENT 10 | class ResidualMPCPushRandomizedEnv(RandomizedResidualMPCPushEnv, utils.EzPickle): 11 | def __init__(self, reward_type='sparse', **kwargs): 12 | initial_qpos = { 13 | 'robot0:slide0': 0.405, 14 | 'robot0:slide1': 0.48, 15 | 'robot0:slide2': 0.0, 16 | 'object0:joint': [1.25, 0.53, 0.4, 1., 0., 0., 0.], 17 | } 18 | RandomizedResidualMPCPushEnv.__init__(self, MODEL_XML_PATH, has_object=True, block_gripper=True, n_substeps=20, 19 | gripper_extra_height=0.0, target_in_the_air=False, target_offset=0.0, 20 | obj_range=0.15, target_range=0.15, distance_threshold=0.05, 21 | initial_qpos=initial_qpos, reward_type=reward_type, **kwargs) 22 | 23 | utils.EzPickle.__init__(self) -------------------------------------------------------------------------------- /randomizer/randomized_pick_and_place.py: -------------------------------------------------------------------------------- 1 | import os 2 | from gym import utils 3 | from .residual_pick_and_place import RandomizedResidualPickPlaceEnv 4 | 5 | MODEL_XML_PATH = os.path.join('fetch', 'pick_and_place.xml') 6 | 7 | 8 | # RANDOMIZED RESIDUAL PICK AND PLACE ENVIRONMENT 9 | class ResidualPickAndPlaceRandomizedEnv(RandomizedResidualPickPlaceEnv, utils.EzPickle): 10 | def __init__(self, reward_type='sparse', **kwargs): 11 | initial_qpos = { 12 | 'robot0:slide0': 0.405, 13 | 'robot0:slide1': 0.48, 14 | 'robot0:slide2': 0.0, 15 | 'object0:joint': [1.25, 0.53, 0.4, 1., 0., 0., 0.], 16 | } 17 | RandomizedResidualPickPlaceEnv.__init__(self, MODEL_XML_PATH, has_object=True, block_gripper=True, n_substeps=20, 18 | gripper_extra_height=0.0, target_in_the_air=False, target_offset=0.0, 19 | obj_range=0.15, target_range=0.15, distance_threshold=0.05, 20 | initial_qpos=initial_qpos, reward_type=reward_type, **kwargs) 21 | 22 | utils.EzPickle.__init__(self) 23 | -------------------------------------------------------------------------------- /randomizer/randomized_residual_push.py: -------------------------------------------------------------------------------- 1 | import os 2 | import numpy as np 3 | from gym import utils 4 | from gym.envs.mujoco import mujoco_env 5 | 6 | from .residual_push import RandomizedResidualPushEnv 7 | 8 | # Ensure we get the path separator correct on windows 9 | MODEL_XML_PATH = os.path.join('fetch', 'push.xml') 10 | 11 | # RANDOMIZED RESIDUAL PUSH ENVIRONMENT 12 | class ResidualPushRandomizedEnv(RandomizedResidualPushEnv, utils.EzPickle): 13 | def __init__(self, reward_type='sparse', **kwargs): 14 | initial_qpos = { 15 | 'robot0:slide0': 0.405, 16 | 'robot0:slide1': 0.48, 17 | 'robot0:slide2': 0.0, 18 | 'object0:joint': [1.25, 0.53, 0.4, 1., 0., 0., 0.], 19 | } 20 | RandomizedResidualPushEnv.__init__(self, MODEL_XML_PATH, has_object=True, block_gripper=True, n_substeps=20, 21 | gripper_extra_height=0.0, target_in_the_air=False, target_offset=0.0, 22 | obj_range=0.15, target_range=0.15, distance_threshold=0.05, 23 | initial_qpos=initial_qpos, reward_type=reward_type, **kwargs) 24 | 25 | utils.EzPickle.__init__(self) -------------------------------------------------------------------------------- /randomizer/residual_envs/residual_fetch_pick_and_place_env.py: -------------------------------------------------------------------------------- 1 | from randomizer.controllers.pick_and_place_controller import get_pick_and_place_control 2 | # from .oscillating_pick_and_place_controller import get_pick_and_place_control 3 | 4 | import gym 5 | from gym import error, spaces, utils 6 | from gym.utils import seeding 7 | 8 | import numpy as np 9 | import time 10 | 11 | import pdb 12 | 13 | 14 | class MyFetchPickAndPlaceEnv(gym.Env): 15 | """ 16 | Just to override the broken rendering. 17 | """ 18 | 19 | def __init__(self, *args, **kwargs): 20 | self.fetch_env = gym.make("FetchPickAndPlace-v1") 21 | self.metadata = self.fetch_env.metadata 22 | self.action_space = self.fetch_env.action_space 23 | self.observation_space = self.fetch_env.observation_space 24 | 25 | def step(self, action): 26 | return self.fetch_env.step(action) 27 | 28 | def reset(self): 29 | return self.fetch_env.reset() 30 | 31 | def seed(self, seed=0): 32 | return self.fetch_env.seed(seed=seed) 33 | 34 | def render(self, mode="human", *args, **kwargs): 35 | # See https://github.com/openai/gym/issues/1081 36 | self.fetch_env.env._render_callback() 37 | if mode == 'rgb_array': 38 | self.fetch_env.env._get_viewer().render() 39 | width, height = 3350, 1800 40 | data = self.fetch_env.env._get_viewer().read_pixels(width, height, depth=False) 41 | # original image is upside-down, so flip it 42 | return data[::-1, :, :] 43 | elif mode == 'human': 44 | self.fetch_env.env._get_viewer().render() 45 | 46 | return self.fetch_env.render(*args, **kwargs) 47 | 48 | 49 | class ResidualFetchPickAndPlaceEnv(gym.Env): 50 | 51 | def __init__(self, *args, **kwargs): 52 | self.fetch_env = gym.make("FetchPickAndPlace-v1") 53 | self.metadata = self.fetch_env.metadata 54 | self.hardcoded_controller = None 55 | self.action_space = self.fetch_env.action_space 56 | self.observation_space = self.fetch_env.observation_space 57 | 58 | def step(self, residual_action): 59 | residual_action = 2. * residual_action 60 | action = np.add(residual_action, get_pick_and_place_control(self._last_observation)) 61 | action = np.clip(action, -1, 1) 62 | observation, reward, done, debug_info = self.fetch_env.step(action) 63 | self._last_observation = observation 64 | 65 | return observation, reward, done, debug_info 66 | 67 | def reset(self): 68 | observation = self.fetch_env.reset() 69 | self._last_observation = observation 70 | return observation 71 | 72 | def seed(self, seed=0): 73 | return self.fetch_env.seed(seed=seed) 74 | 75 | def render(self, mode="human", *args, **kwargs): 76 | # See https://github.com/openai/gym/issues/1081 77 | self.fetch_env.env._render_callback() 78 | if mode == 'rgb_array': 79 | self.fetch_env.env._get_viewer().render() 80 | width, height = 3350, 1800 81 | data = self.fetch_env.env._get_viewer().read_pixels(width, height, depth=False) 82 | # original image is upside-down, so flip it 83 | return data[::-1, :, :] 84 | elif mode == 'human': 85 | self.fetch_env.env._get_viewer().render() 86 | 87 | return self.fetch_env.render(*args, **kwargs) 88 | 89 | def compute_reward(self, *args, **kwargs): 90 | return self.fetch_env.compute_reward(*args, **kwargs) 91 | -------------------------------------------------------------------------------- /randomizer/residual_envs/residual_fetch_push_env.py: -------------------------------------------------------------------------------- 1 | from randomizer.controllers.miscalibrated_push_controller import get_push_control 2 | 3 | from gym.envs.robotics import FetchPushEnv 4 | 5 | import gym 6 | from gym import error, spaces, utils 7 | from gym.utils import seeding 8 | 9 | import numpy as np 10 | import time 11 | 12 | 13 | class ResidualSlipperyPushEnv(gym.Env): 14 | 15 | def __init__(self, *args, **kwargs): 16 | self.fetch_env = gym.make("FetchPush-v1") 17 | 18 | for i in range(len(self.fetch_env.env.sim.model.geom_friction)): 19 | self.fetch_env.env.sim.model.geom_friction[i] = [18e-2, 5.e-3, 1e-4] 20 | 21 | self.metadata = self.fetch_env.metadata 22 | self.hardcoded_controller = None 23 | self.action_space = self.fetch_env.action_space 24 | self.observation_space = self.fetch_env.observation_space 25 | 26 | 27 | def step(self, residual_action): 28 | residual_action = 2. * residual_action 29 | 30 | action = np.add(residual_action, get_push_control(self._last_observation)) 31 | action = np.clip(action, -1, 1) 32 | observation, reward, done, debug_info = self.fetch_env.step(action) 33 | self._last_observation = observation 34 | 35 | return observation, reward, done, debug_info 36 | 37 | def reset(self): 38 | observation = self.fetch_env.reset() 39 | self._last_observation = observation 40 | return observation 41 | 42 | def seed(self, seed=0): 43 | return self.fetch_env.seed(seed=seed) 44 | 45 | def render(self, mode="human", *args, **kwargs): 46 | # See https://github.com/openai/gym/issues/1081 47 | self.fetch_env.env._render_callback() 48 | if mode == 'rgb_array': 49 | self.fetch_env.env._get_viewer(mode=mode).render() 50 | width, height = 3350, 1800 51 | data = self.fetch_env.env._get_viewer().read_pixels(width, height, depth=False) 52 | # original image is upside-down, so flip it 53 | return data[::-1, :, :] 54 | elif mode == 'human': 55 | self.fetch_env.env._get_viewer().render() 56 | 57 | return self.fetch_env.render(*args, **kwargs) 58 | 59 | def compute_reward(self, *args, **kwargs): 60 | return self.fetch_env.compute_reward(*args, **kwargs) 61 | 62 | class SlipperyPushEnv(gym.Env): 63 | 64 | def __init__(self, *args, **kwargs): 65 | self.fetch_env = gym.make("FetchPush-v1") 66 | 67 | for i in range(len(self.fetch_env.env.sim.model.geom_friction)): 68 | self.fetch_env.env.sim.model.geom_friction[i] = [18e-2, 5.e-3, 1e-4] 69 | 70 | self.metadata = self.fetch_env.metadata 71 | 72 | self.action_space = self.fetch_env.action_space 73 | self.observation_space = self.fetch_env.observation_space 74 | 75 | def step(self, action): 76 | return self.fetch_env.step(action) 77 | 78 | def reset(self): 79 | return self.fetch_env.reset() 80 | 81 | def seed(self, seed=0): 82 | return self.fetch_env.seed(seed=seed) 83 | 84 | def render(self, mode="human", *args, **kwargs): 85 | # See https://github.com/openai/gym/issues/1081 86 | self.fetch_env.env._render_callback() 87 | if mode == 'rgb_array': 88 | self.fetch_env.env._get_viewer().render() 89 | width, height = 3350, 1800 90 | data = self.fetch_env.env._get_viewer().read_pixels(width, height, depth=False) 91 | # original image is upside-down, so flip it 92 | return data[::-1, :, :] 93 | elif mode == 'human': 94 | self.fetch_env.env._get_viewer().render() 95 | 96 | return self.fetch_env.render(*args, **kwargs) 97 | 98 | def compute_reward(self, *args, **kwargs): 99 | return self.fetch_env.compute_reward(*args, **kwargs) 100 | 101 | -------------------------------------------------------------------------------- /randomizer/wrappers.py: -------------------------------------------------------------------------------- 1 | import gym 2 | import json 3 | import numpy as np 4 | 5 | import gym.spaces as spaces 6 | 7 | from randomizer.dimension import Dimension 8 | 9 | 10 | class RandomizedEnvWrapper(gym.Wrapper): 11 | """Creates a randomization-enabled enviornment, which can change 12 | physics / simulation parameters without relaunching everything 13 | """ 14 | 15 | def __init__(self, env, seed): 16 | super(RandomizedEnvWrapper, self).__init__(env) 17 | self.config_file = self.unwrapped.config_file 18 | 19 | self._load_randomization_dimensions(seed) 20 | self.unwrapped.update_randomized_params() 21 | self.randomized_default = ['random'] * len(self.unwrapped.dimensions) 22 | 23 | def _load_randomization_dimensions(self, seed): 24 | """ Helper function to load environment defaults ranges 25 | """ 26 | self.unwrapped.dimensions = [] 27 | 28 | with open(self.config_file, mode='r') as f: 29 | config = json.load(f) 30 | 31 | for dimension in config['dimensions']: 32 | self.unwrapped.dimensions.append( 33 | Dimension( 34 | default_value=dimension['default'], 35 | multiplier_min=dimension['multiplier_min'], 36 | multiplier_max=dimension['multiplier_max'], 37 | name=dimension['name'] 38 | ) 39 | ) 40 | 41 | nrand = len(self.unwrapped.dimensions) 42 | self.unwrapped.randomization_space = spaces.Box(0, 1, shape=(nrand,), dtype=np.float32) 43 | 44 | def randomize(self, randomized_values=[-1]): 45 | """Sets the parameter values such that a call to`update_randomized_params()` 46 | will generate an environment with those settings. 47 | 48 | Passing a list of 'default' strings will give the default value 49 | Passing a list of 'random' strings will give a purely random value for that dimension 50 | Passing a list of -1 integers will have the same effect. 51 | """ 52 | for dimension, randomized_value in enumerate(randomized_values): 53 | if randomized_value == 'default': 54 | self.unwrapped.dimensions[dimension].current_value = \ 55 | self.unwrapped.dimensions[dimension].default_value 56 | elif randomized_value != 'random' and randomized_value != -1: 57 | assert 0.0 <= randomized_value <= 1.0, "using incorrect: {}".format(randomized_value) 58 | self.unwrapped.dimensions[dimension].current_value = \ 59 | self.unwrapped.dimensions[dimension].rescale(randomized_value) 60 | else: # random 61 | self.unwrapped.dimensions[dimension].randomize() 62 | 63 | self.unwrapped.update_randomized_params() 64 | 65 | def step(self, action): 66 | return self.env.step(action) 67 | 68 | def reset(self, **kwargs): 69 | return self.env.reset(**kwargs) -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | from distutils.core import setup 2 | 3 | setup( 4 | name='domain_randomizer', 5 | version='0.0.1', 6 | packages=['randomizer',], 7 | license='Creative Commons Attribution-Noncommercial-Share Alike license', 8 | long_description=open('README.md').read(), 9 | ) -------------------------------------------------------------------------------- /test.py: -------------------------------------------------------------------------------- 1 | import randomizer 2 | import gym 3 | import numpy as np 4 | from randomizer.wrappers import RandomizedEnvWrapper 5 | import time 6 | 7 | env = RandomizedEnvWrapper(gym.make('ResidualNoisyHookRandomizedEnv-v0'), seed=123) 8 | env.randomize([1, 1, 1]) 9 | obs = env.reset() 10 | for i in range(2000): 11 | obs, _, done, _ = env.step(np.zeros((4))) 12 | env.render() 13 | if i % 100 == 0: 14 | env.randomize([1, 1, 1]) 15 | env.reset() 16 | 17 | --------------------------------------------------------------------------------