SawYeet

Sawyer Robot

Introduction

Project Goals

The goal of the project was to create a robotic system which would have the ability to return a ball thrown towards it. Based on the hardware constraints that we worked with, our project involved using the Sawyer to intercept a balloon by blocking its path with the end-effector in real time.



Why is this interesting?

The project is interesting because it works in real-time with fast moving projectiles despite the constraints. This means that no computation can be done beforehand, and we had to optimize our nodes to work fast enough to move the sawyer within a very short time frame (0.5-0.8 seconds). Even if the sawyer was not able to “hit” the ball back, simply being able to block the ball in real time with the hardware constraints we were working with would be a challenge. There were many optimization techniques that could be used, ranging from the software optimizations to the construction and positioning of the ball itself. However, simply using one technique to improve the speed of a module wouldn’t be enough for our project to work, and using these techniques in conjunction and tuning various parameters was the real engineering challenge.

There were a lot of problems that we had to solve to be able to make this work. For starters, the Sawyer is inherently a slow robot. We had to solve the IK problem quickly, efficiently and reliably. We had to fix the MoveIt based IK-planning to avoid scenarios where the robot would follow a round-about trajectory for a small net change in end-effector position. Another key issue was to write a prediction algorithm for a projectile. This might seem very straightforward, but it becomes very hard when the jitter from the RealSense and the tracking algorithm is considered. These problems are amplified when a balloon is used to slow down the projectile wherein, sometimes, the ball curves a lot, and if the velocity is slow enough, it simply drops to the ground because of the increased air resistance. This report will discuss each of our challenges in detail.

Real World Applications

Because the initial goal of the project was to build a table tennis bot, with more time and resources, it could be made into a robot that plays against an opponent. This can be used for training, practice and recreation. Apart from the obvious goals, the project ended up being one where a robot can intercept projectiles. This can potentially be a time saver on factory floors, where instead of a robot taking the time to move a tool or any other object from one place to another, it could throw or launch it, and this system could use a net to catch it.