Franka Water Pouring System

Franka Emika Pouring based on water weight

Overview

This was a project developed for the course 16-662 Robot Autonomy. The project was presented as a very loose research topic, and freedom of implementation was given to the students. My team decided to investigate pouring liquids with a robot manipulator.

While this task seems simple at first, the complexity arises when trying to predict and control the stream of poured liquids. There is no good pouring model controller in the literature and so we wanted to see what we could come up with during the semester. Intelligent pouring of liquids would be useful in several areas including aerospace, biological sciences, and industrial chemical manufacturing.

My Role

I designed the overall system architecture, and wrote the executive of the system. The system executive took in all the sensor readings from the scales, force sensors, and pumps in order to determine the robot’s next movement and planned accordingly. The implementation was a state machine, that contained different states that implemented the RRT, and the scale/pump interface. Since I wrote the high level planner, I was heavily involved with integrating the Arduino pumps and scales, and the pouring and RRT routines.

Process

Here is a state diagram of the system. We implemented a goal biased RRT for the movement states in order to avoid obstacles in the space.

Results

The resulting video shows the robot detecting the level of water in both cups, navigating autonomously to avoid the obstacles in the environment with an RRT, and then pouring based off of sensed water mass.

Future Work

This project could be improved in the following ways:

  • Adding path shortening to the RRT to run faster
  • Adding a more detailed model of the water pouring so that we could control pour locations precisely
  • Adding a vision based target detection system to allow us to dynamically move the pouring target