Tools for working with the Pandas using Polymetis from FAIR. This is meant to provide a set of convenience functions that operate between polymetis and the robot, while a separate library provides an OpenAI gym-style interface for imitation/reinforcement learning code on top of this repository's code. Originally developed at Samsung AI Centre -- Montreal, and part of this tactile imitation learning monorepo. For an example of how these tools are used, see panda-rl-envs.
To use this package, you must install polymetis on both a RT computer (often a NUC) that controls the Panda and also on your local computer that will handle vision/policy control. The following sections provide more detail.
- Follow the standard conda instructions for polymetis, unless you're using an FR3 arm, in which case you must replace this step with Installation on FR3 below.
- This currently causes a pytorch issue because of conda, which can be resolved with:
pip install --force-reinstall torch==1.13.1 --index-url https://download.pytorch.org/whl/cpuNote that Ada in the STARS lab already has a functioning install in the polymetis-local conda env.
Replace step 1 in Real-Time Computer with an installation from source, and set the <version_tag_or_commit_hash> for the libfranka build to 0.10.0 (or later, but only 0.10.0 has been tested).
- Follow the standard conda instructions for polymetis.
- To switch to gpu-enabled pytorch:
pip install --force-reinstall torch==1.13.1- Install transform-utils
git clone https://github.com/utiasSTARS/transform-utils && cd transform-utils && bash install.sh- Install this repository:
git clone https://github.com/utiasSTARS/panda-polymetis.git && cd panda-polymetis && pip install -e .cd launch- sim:
bash sim_robot.bash, real:bash real_robot.bash
Simulating grippers in polymetis is not supported.
In sim, panda-polymetis uses a fake gripper client so that you can replicate your real world setup.
On the real robot, you must run a gripper server on the local computer with:
- Robotiq 2F85:
launch_gripper.py gripper=robotiq_2f gripper.comport=/dev/ttyUSB0 - Panda Gripper:
launch_gripper.py
Instructions for use come up on screen.
python -m panda_polymetis.tools.keyboard_interfaceFields of states that are available are in this proto file. This is probably what we'll have to modify to expose things that aren't yet exposed (e.g. F_ext).