Initial state of virtual SAI2 environment with our adapted Panda arm, 2 buns + 1 burger patty, grill top, and plate.
Zoom Chef
“The virtual sous chef”
CS225a: Experimental Robotics
Stanford University - Spring 2020
A continuation of ME320: Introduction to Robotics, this course allows students to apply topics of dynamics and controls to program an interesting task suitable for robotics in a simulation environment. I collaborated with Katerina Marinou and Connor Yako to complete this project over an 8 week period. We initially wanted to design a simulation in the task space of “home robotics” and decided that an “at home cooking robot” would be an interesting and enjoyable project to pursue.
We used an opensource robotics simulation environment developed at Stanford by Professor Oussama Khatib’s lab - Simulation and Active Interfaces (SAI 2.0). The model code for the 7-degree of freedom Panda Arm as well as PD-controller codes were developed by the TAs for the course, which we used as the foundation of our simulation. We coded the tasks and targets of the controllers in order to accomplish this task.
What we specifically coded was the switching between a joint controller and an operational controller and setting of their respective targets to generate the desired motion and object interaction. The joint controller allowed us to directly manipulate the degrees of freedom of the robot i.e. the angles of the robot’s revolute joints and the translations of our mobile base. The joint controller is useful for high level commands such as “move in front of grill” and “close gripper jaws”. The operational controller is useful for careful manipulation of the robot’s end effector - the prismatic gripper jaws. The operational controller was used a majority of the time, specifically for events such as “move spatula under the food item” and “tilt wrist down 20 degrees to drop food onto the grill”.
We also designed the object meshes for the burger buns and patty, spatula tool, grill top, and plate in OnShape. We generated the .xml files for these objects as well to properly import them into our environment.
Video of final successful simulation + Final presentation with details about implementation
Here is a video of our full successful simulation at the end of the Spring quarter. Because of time constraints, we were unable to incorporate components of a hamburger other than the buns and the patty. The trickiest aspect of this entire project is that we are manipulating relatively small objects (the food items) not with the end effector directly, but through a rigid tool (the spatula). Without getting into the details of it, the complexity essentially stems from any target we would program for the end effector would need to take into consideration the spatula’s dimensions and orientation to properly maneuver the food items about the environment.