├── .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 |
--------------------------------------------------------------------------------