This is a ROS package interface for the C++ Franka Emika Panda PandaController.
Here is what you need to start with:
- Ubuntu Machine with the Real Time Kernel
- Static IP of 192.168.1.XXX (Ex/ 192.168.1.5) and Netmask of 255.255.255.0 for the ethernet connected to the Panda. For the force torque sensor, the ethernet connected to that needs to be set to a static IP of 192.168.2.XXX (Ex/ 192.168.2.5).
- Docker Engine
- A ROS Workspace with this package clone under
src/
. - The following ROS package also cloned under
src/
in your ROS workspace:
- Franka Emika Panda 7 DOF Robot setup with the FCI and set to static IP of 192.168.1.XXX (Ex/ 192.168.1.3) and Netmask to 255.255.255.0.
- Robot system version: 4.2.X (FER pandas)
- Robot / Gripper Server version: 5 / 3
- Axio80-M20 Force Torque Sensor installed on the Panda's End Effector and connected to the host computer via ethernet with IP 192.168.2.2 (or change the IP in src/PandaController/src/ForceTorqueListener.cpp).
Here is what we are going to install with docker:
- ROS Noetic
- Libfranka version 0.9.2
- Various apt/ROS packages
This should be run in the root of your ROS Workspace (above the /src
folder).
First set up display forwarding:
xhost +local:
Now build the container image and start the container. These commands mount on the current directory as the containers file system so any changes you make to the files on your host machine will be mirrored in the container. These commands also allow the containers display to be forwarded to your host machine so that you can see it.
sudo docker build -f src/panda_ros/Dockerfile -t panda-controller .
sudo docker run --rm -it --privileged --device=/dev/input/event* --cap-add=SYS_NICE --env DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v $(pwd):/workspace --net=host panda-controller
Add necessary environment variables: Replace with your Panda's IP
export PANDA_IP=192.168.1.3
cd src/PandaController/
mkdir -p build
cd build
[ -f Makefile ] || cmake .. # Only initialize if not already
make install
cd ../../..
Compile individually each ros packages:
catkin build
- Use Franka Desktop to unlock the Panda's joints and enable FCI mode.
- Run
source devel/setup.bash
inside the root directory - Start the launch files related to the application:
roslaunch panda_ros mover.launch
- Noetic/Python3 Migration:
- ROS Headers:
- Force Torque Sensor:
- Force Dimension Input:
- To test if the Force/Torque Sensor is properly connected, go to the sensor's IP (ex/ 192.168.1.6) in a webrowser on your computer. If the ATI Configuration page shows up, that means you are properly connected. If not, reference section 4 of the Sensor Guide. Once you can access the ATI site, you can go to Demo and download the Java application to see the values coming from the sensor.