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/cpu
Note 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_interface
Fields 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).