The requirements of the industrial world grow at an alarming rate. Today, it is entirely possible for some particular process to be automated to speed up the process and improve the safety. Often times, this kind of industrial automation involves robotics. We wanted to explore the potential for a robotic arm module to react accordingly to its environment, so that it will appropriately handle the jobs we gave it without explicitly telling it to do so. By programming the robotic arm to detect the world around it with sensors, the project provides an opportunity to expand on the applications of industrial robotics.

What it does

The robot arm is equipped with a infrared proximity sensor that detects whenever an object is within a specified range of the device. This sensor is specifically searching for boxes that are to be moved "identified" when spotted.

How we built it

The robotic arm itself is constructed from a 3D printed frame connected by a series of servos. These servos are connected to an Arduino UNO, which serves as the primary computer for the arm. The code written is in a modified C to accommodate the Arduino libraries. The process of writing this code involved a long series of equations known as "inverse kinematics", in which we are able to define the specific angles of the servos to a particular location on the X-Y plane.

An auxiliary program is written in C# that allows for a user to interface with the autonomous arm over serial I/O. The program provides a visual representation of how the robot understands the world around it by displaying the locations in which the robot knows where a box is located. The program also provides the user the ability to try the various modes of the robot: shuffle, stack, and scan.

Challenges we ran into

The inverse kinematics for the arm was difficult. We were able to figure the requirements for our arm given the end effector couldn't go below the height of the central servo, but because the robotic arm is mounted on a pedestal, we had to account for the few centimeters of extra height to appropriately reach our destination. This change resulted in numerous additional hours of calculations and testing to ensure our equations were right.

Accomplishments that we're proud of

We were very excited to be able to get the robot to stack the blocks.

What we learned

We learned how to do basic inverse kinematics.

What's next for Autonomous Robot Arm

We would like to include additional sensors to improve the awareness of the device. That way, the robotic arm can be more responsive to various other potential stimuli. An example of this would be a IR Distance sensor, which would be used to determine how far away an object is.

Built With

Share this project: