We were again given a Franka Emika Panda robot and a (knock-off) Intel RealSense D435. However, this time the problem setting was significantly more difficult.
While last time we had to pick up and sort some objects that were loosely lying around, this time we had to manipulate a box with rather tight tolerances.
We were given multiple tasks to perform on a box with varying location:
- Push a button
- Solved quickly
- Grasp a key, insert it into a lock and turn
- Grasp an ethernet cable and plug it into another port
- Open a battery box, extract the batteries and insert into holders
- Solved partially
While in the first round it was sufficient to use the default controllers, this time we had to write custom controllers to solve the given tasks, especially for the key and ethernet insertions.
In the previous iteration we used a rather simple single Python program, which was efficent to quickly hack together a working solution. However, in this round we had more time to prepare a more stable solution and decided to use ROS and FlexBE instead. FlexBE as “Behavior Engine” made it easy to combine the different pieces into a complete solution and ROS with its large ecosystem provided lots of resources to rely on. Although some of them could have been better documented.
While we did not end up winning the competition, it was once again a lot of fun and I learned a lot about robot control and ROS.