Franka - penn-figueroa-lab/lab_wiki GitHub Wiki
PC Setup
If you are using one of the lab PCs the realtime kernel is already installed, make sure to select the RT kernel from the GRUB Menu. Otherwise if you are controlling the franka from your own PC follow the RT kernel installation instructions in Real Time Kernel Patch in Ubuntu reference page.
- RT Kernel patch for Ubuntu 20 is already installed in
figueroa-lab1
andfigueroa-lab2
PCs. To check if you are in the RT Kernel patch typeuname -r
and you should see the version similar too5.13.1-rt1
- Make sure the CPU frequency is set to "performance" you can check this with
cpufreq-info
or graphically usingindicator-cpufreq
. Both commands can be install bysudo apt install ***
.
Software Installation
If you are using figueroa-lab1
or figueroa-lab2
PCs, you can skip this section and go directly to How To Use Franka.
Step 1: libfranka
Install libfranka C++ library.
- Recommended installation/compilation from source, follow instructions here.
- Install this library OUTSIDE of your
catkin_workspace
.
Step 2: franka_ros
Install franka_ros which is the ROS wrapper for libfranka.
- Recommended installation from source, follow instructions here
Important: For every new account you create on the lab computer, please add the account to the real-time group for robots to run
sudo usermod -a -G realtime $(whoami)
Reboot
Using Franka
- Make sure PC is booted in Ubuntu 20 RT kernel [5.13.1-rt10] (See PC Setup)
- Make sure CPU Operation Mode is set to “Performance” (See PC Setup)
- Turn on Franka's controller box, and wait until the BLUE light on the robot
- Make sure a 1000MB/S ethernet cable connects the PC and the Franka (On Ubuntu, Settings-Network-). Make sure this Ethernet port IP is set to 172.16.0.1 (click on the settings icon right next to it and check IPv4)
- Login to Desk Web Application 172.16.0.2 with Google Chrome, Look at the right side-panel for the upcoming steps
- Unlock the joints, listen carefully to the "click" sound from the robot
- Click "Activate FCI" in Desk App.
- Depends on your Franka model:
Franka Emika Research
: wait for the BLUE light and “Ready” mode in Desk App (this is activated with a physical button)Franka Research 3
: wait for the GREEN light and "Execution" mode in Desk App
- Test that
libfranka
is working; run one of the libfranka C++ examples incd /home/figueroa/libfranka/build/examples/
. If you encounter any problem, please check the libfranka installation again:- To perform a communication test (robot will move to an initial configuration):
./communication_test 172.16.0.2
. - To move the elbow while keeping a static end-effector pose:
./generate_elbow_motion 172.16.0.2
. - To move the end-effector in a circular motion with joint impedance controller:
./joint_impedance_control 172.16.0.2
.
- To perform a communication test (robot will move to an initial configuration):
- Run your ROS code, for example:
cd <your-catkin-workspace>
catkin_make -DCMAKE_BUILD_TYPE=Release -DFranka_DIR:PATH=/home/figueroa/libfranka/build
source devel/setup.bash
roslaunch franka_example_controllers cartesian_impedance_example_controller.launch robot_ip:=172.16.0.2
Finishing
- Deactivate FCI
- Lock the joints
- Click
Shut down
in the Desk App - Wait until the shut-down process finishes, and turn off the controller box.
Safety
In case you get to joint limits or other incidents that need to move the arm back to its usual position manually, here is how to do free guiding.
Franka Emika Research
:
- Press down the black/dark e-stop button
- On the gripper, find the two buttons located on the opposite sides (front and back) closed to the left side of the gripper
- At the same time, fully press the front button and half press the back button
- Move the robot freely
Franka Research 3
:
- On the web portal, at the bottom of the right panel, select
Programming
mode, the light will turn white - On the gripper, find the two buttons located on the opposite sides (front and back) closed to the left side of the gripper
- At the same time, fully press the front button and half press the back button
- Move the robot freely