Robotics / Software
Space Panda.
A force-feedback teleoperation prototype that controls a UR20 using a Franka Emika Panda for hard-surface grinding tasks.

The idea
During my eight-week summer internship at MFI, I explored a different way to control a robot: move one arm by hand, have a second arm follow, and feel the forces it encounters. The goal was to use a Franka Emika Panda as a teleoperation device with force feedback from the UR20’s end effector.
The name
The name combines the Franka Emika Panda with the SpaceMouse, the teleoperation device I was trying to improve on.
Initial challenges
Mounting the Panda was fairly easy: I built a support frame from aluminum extrusion. Integrating it into our ROS 2 environment proved much harder than expected. Since our specific robot was no longer supported by the software, I had to create a custom version of libfranka and my own fork of franka_ros2.
Developing the input method
My first approach mapped the Panda’s estimated end-effector forces to motion, but the result was difficult to guide naturally. Commanding zero joint torque while retaining the robot’s internal gravity compensation gave the operator a much easier way to move the arm.
Linking the robots
I then developed space_panda_link, a ROS 2 node that links the two robots and supports motion scaling.
On the UR20, MoveIt Servo’s Pose Servo follows the Panda’s target pose.

Contact and force feedback
A custom ros2_control controller uses the transpose of the Panda’s Jacobian to translate a desired end-effector force or torque into joint torques that the operator can feel.
Direct force coupling worked during soft contact, but rigid surfaces caused sharp force spikes and overcorrection.
I introduced contact-dependent damping, filtered the sensor data, and tuned the proportional gains to make the prototype usable.
Results and next steps
Multiple users tried the system at the AIDF demo. The prototype demonstrated force-feedback teleoperation, but it did not yet feel like holding the remote tool directly. Still, I was able to demonstrate grinding with the system:
Near the end of the internship, I began exploring an admittance controller for the UR20. It was not yet functional and remains the next step toward more compliant contact.