“Scan and Grab” – autonomous robotic arm

Another late night, another hackathon. This time our team came up second on the iNTU Hackathon podium.

We created an autonomous robotic arm designed to detect and pickup simple objects in the area in front of it. The robot firstly performs a fast scan by rotating an IR distance sensor to detect if there is any objects in front of it. If there is an object, the robot will perform another scan to more accurately estimate the Cartesian coordinates of the object. When it has this information it will attempt to pick the object up with its claw and move it to the trash bin.

This is how it works:

 

The arm itself has 5 Dynamixel AX-12 servos and one AX-18 providing for 4 degrees of freedom. At its base it has a Sharp GP2D12 sensor. The servos are commanded directly from a laptop running a python script. The script gets input from the Arduino board which digitizes the analog output of the IR sensor. Outlier detection and averaging are used to make the signal more reliable. Furthermore, the signal is processed into distance by making use of interpolating functions that were determined from a calibration test. Distance data is then processed to estimate the size of the object. Location and size is then used by the program to command the arm to grasp and lift the object. In order to achieve this, firstly, a forward kinematic model was validated, followed by the implementation of the inverse kinematic model in a Python function. The claw is 3D printed and adapted from an open source project.

Try it out: GitHub Repo

SRP rocket

Few days ago I had the amazing opportunity to go to ‘t Harde, at a military base to launch few rockets. Among these was my team’s rocket (John) which was designed and build by Aleksandar Petrov, Chris Niemeijer, Aleksader Parelo, Hardi Njo and myself. The goal was simple, yet challenging: to fire up a rocket up to 1 km with an egg on board and land safely to protect the payload.

And this is what happened (video by Hardi Njo):

Unfortunately, the egg did not survive and that is because the parachute did not deploy, but we did achieve about 800 m of altitude as the rocket was quite stable. That is mostly because of a detailed design in OpenRocket where the CG and the CP were properly placed. Another reason might be the fins that were 3D printed at an accurate angle between each other. The parachute wasn’t supposed to be deployed using pyrotechnics. The cone was meant to be pushed by a spring out of the body. In this way, the airflow had only one job: to open the parachute. This did not happen because of the timing. The spring was released too early, when the rocket was few moments before its apogee and the aerodynamic force was still pressing the cone downwards.

The interesting fact was that the main body of the rocket survived, despite the crash at about 200 km/h with the ground. The conclusion: it was over designed, but it was a fun experience laminating it, layer by layer.

Other rockets taking part to the event: