Bi-Manual Franka 3 robot setup.
- Install Ubuntu 22.04 and a real-time kernel
- Make sure the NUC is booted with the real-time kernel [link].
todo: how to setup network, etc.
- Setup deoxys_control. NOTE: When doing
./InstallPackage
, select0.13.3
for installing libfranka:
git clone git@github.com:NYU-robot-learning/deoxys_control.git
mamba create -n "franka_teach" python=3.10
conda activate franka_teach
cd deoxys_control/deoxys
# Instructions from deoxys repo (this takes a while to build everything)
./InstallPackage
make -j build_deoxys=1
pip install -U -r requirements.txt
- Install the Franka-Teach requirements:
cd /path/to/Franka-Teach
pip install -r requirements.txt
- Install ReSkin sensor library:
git clone git@github.com:NYU-robot-learning/reskin_sensor.git
cd reskin_sensor
pip install -e .
- Install FoxyProxy extension on Chrome or Firefox. Set up the proxy like this:
- Setup NUC as an ssh host like this:
Host nuc
HostName 10.19.248.70
User robot-lab
LogLevel ERROR
DynamicForward 1337
- Ssh into the nuc:
ssh nuc
- Go to
172.16.0.4/desk
for the Franka Desk interface for the right robot and172.16.1.4/desk
for the left robot.
The following credentials are used for the Franka Desk interface:
Username: GRAIL
Password: grail1234
NOTE: Franka Desk is cursed. You might face all sorts of issues with it. General troubleshooting:
- If it doesn't seem to connect, keep refreshing. If you lose all hope, reboot the robot.
- If end-effector doesn't show as active, you can go to the settings page and do a power off/on for the end-effector. You need to re-initialize the gripper in the same page after doing a power cycle.
- Two desk pages (for two robots) cannot be open at the same time. Close one tab and connect to the other one.
- Open the brakes for the robot:
- Enable FCI mode:
- Start the deoxys control process on the NUC:
cd /home/robot-lab/work/deoxys_control/deoxys
./auto_scripts/auto_arm.sh config/franka_left.yml # franka_right.yml for the right robot
./auto_scripts/auto_gripper.sh config/franka_left.yml # in a different terminal, if you want to use the gripper
- From the Lambda, start servers:
cd /path/to/Franka-Teach/
python3 franka_server.py
python3 camera_server.py # in a different terminal
- TODO: run franka_env test script:
cd /path/to/Franka-Teach/
python3 test_franka_env.py
-
Do the steps until 6 in the "How to run the Franka-Teach environment" section.
-
Also, start the teleoperation script. Set the teleop mode based on if you are collecting human or robot demonstrations.:
python3 teleop.py teleop_mode=<human/robot>
- You can start the data collection by running the
collect_data.py
script. Set thedemo_num
to the number of demonstrations you want to collect andcollect_depth
toTrue
if you want to collect depth data from the Intel realsense cameras.
python3 collect_data.py demo_num=0 collect_depth=<True/False>
- For robot teleoperation, use the VR controllers to control the robot. When collecting human data, use the VR controller to start and stop the data collection while performing the actions with the human hand.