Package: robovat
RoboVatAboutInstallationExamplesCitationAboutRoboVat is a tookit for fast development of robotic task environments in simulation and the real world. It provides unified APIs for robot control and perception to bridge the reality gap. Its name is derived frombrain in a vat.Currently, RoboVat supportsSawyerrobot viaIntera SDK. The simulatied environments run withPyBullet. The codebase is under active development and more environments will be included in the future.InstallationCreate a virtual environment (recommended)Create a new virtual environment in the root directory or anywhere else:virtualenv--system-site-packages-ppython.venvActivate the virtual environment every time before you use the package:source.venv/bin/activateAnd exit the virtual environment when you are done:deactivateInstall the packageUsing pip to install the package:bash pip install robovatThe package can also be installed by running:
```bash
python setup.py install
```Download assetsDownload and unzip the assets folder fromBoxor the FTP link below to the root directory:wgetftp://cs.stanford.edu/cs/cvgl/robovat/assets.zip
wgetftp://cs.stanford.edu/cs/cvgl/robovat/configs.zip
unzipassets.zip
unzipconfigs.zipIf the assets folder is not in the root directory, remember to specify the
argument--assets PATH_TO_ASSETSwhen executing the example scripts.ExamplesCommand Line InterfaceA command line interface (CLI) is provided for debugging purposes. We recommend running the CLI to test the simulation environment after installation and data downloading:pythontools/sawyer_cli.py--modesimDetailed usage of the CLI are explained in the source code oftools/sawyer_cli.py. The simulated and real-world Sawyer robot can be test using these instructions below in the terminal:Visualize the camera images:vMouse click and reach:cReset the robot:rClose and open the gripper:gandoPlanar PushingExecute a planar pushing tasks with a heuristic policy:pythontools/run_env.py--envPushEnv--policyHeuristicPushPolicy--debug1To execute semantic pushing tasks, we can add bindings to the configurations:pythontools/run_env.py--envPushEnv--policyHeuristicPushPolicy--env_configconfigs/envs/push_env.yaml--policy_configconfigs/policies/heuristic_push_policy.yaml--config_bindings"{'TASK_NAME':'crossing','LAYOUT_ID':0}"--debug1To execute the tasks with pretrainedCAVINplanner, please seethis codebase.Process Objects for SimulationMany simulators load bodies in theURDFformat. Given anOBJfile, the corresponding URDF file can be generated by running:pythontools/convert_obj_to_urdf.py--inputPATH_TO_OBJ--outputOUTPUT_DIRTo simulate concave bodies, the OBJ file needs to be processed by convex decomposition. The URDF file of a concave body can be generated usingV-HACDfor convex decomposition by running:pythontools/convert_obj_to_urdf.py--inputPATH_TO_OBJ--outputOUTPUT_DIR--decompose1CitationIf you find this code useful for your research, please cite:@article{fang2019cavin, 
    title={Dynamics Learning with Cascaded Variational Inference for Multi-Step Manipulation},
    author={Kuan Fang and Yuke Zhu and Animesh Garg and Silvio Savarese and Li Fei-Fei}, 
    journal={Conference on Robot Learning (CoRL)}, 
    year={2019} 
}