Introduction: Robotic Arm With Gripper
Harvesting lemon trees is considered hard work, due to the big size of trees and also due to the hot climates of the regions where lemon trees are planted. That's why we need something else to help agricultural workers to complete their work more easily. So, we came up with an idea to ease their job, a robotic arm with gripper that picks the lemon from the tree. The arm is about 50cm long. The working principle is simple: we give a position to the robot, then it will go at the right place, and if there is a lemon, its gripper will cut the peduncle and grap the lemon at the same time. Then, the lemon will be released on the ground and the robot will go back to its initial position. At first, the project might seem complex and hard to be done. However, it is not that complex, yet it needed a lot of hard work and good planning. It just needs to be built one thing over the other. At the beginning, we faced some problems due to covid-19 situation and the working remotely, but then we did it, and it was amazing.
This Instructable aims to guide you through the process of creating a Robotic arm with a grabber. The project was designed and engineered as part of our Bruface Mechatronics project; the work was in done in Fablab Brussels by:
-Inès Castillo Fernandez
-Jayesh Jagadesh Deshmukhe
Step 1: Required Skills
So, here are some skills you need to have in order to do this project:
-Basics of electronics
-Basic knowledge of micro-controllers.
-Coding in C-language (Arduino).
-Be used to CAD software, such as SolidWorks or AutoCAD.
You should also have patience and a generous amount of free time, also we advise you to work in a team as we did, everything will be easier.
Step 2: CAD Design
After trying different samples, we finally decided to design the robot as shown in the figures, the arm is 2 degrees of freedom. The motors are connected to the shaft of each arm by pulleys and belts. There are many advantages of using pulleys, one of the most important on is to increase the torque. The first pulley belt of the first arm has gear ratio of 2, and the second one has a gear ratio of 1.5.
The difficult part for the project was limited time at Fablab. So, most of the designs were adapted to be laser cut parts and just some connecting parts were 3D printed. Here you can find the attached CAD design.
Step 3: List of Components Used
Here are the components we used in our project:
-Arduino Uno: This is a microcontroller board with 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP header, and a reset button. We used this type of micro-controller since it is easy to use and can do the job required.
-Two big servo motor (MG996R): is a closed-loop servomechanism that uses position feedback to control its motion and final position. It is used to rotate the arms It has a good torque, up to 11kg/cm, and thanks to the torque reduction done by the pulleys and the belt we can reach higher torque which is more than enough to hold the arms. And the fact that we don't need more than 180 degrees of rotations, this motor is very well to use.
-One small servo (E3003): is a closed-loop servomechanism that uses position feedback to control its motion and final position. This motor is used to control the gripper, it has a torque of 2.5 kg/cm, and it is used to cut and grab the lemon.
-DC power supply: This type of power supply was available at the fablab, and because our motor doesn't move on the ground, so the power supply doesn't have to be stick to each other. The main advantage of this power supply is that we can adjust the output voltage and current as we like, so no need for a voltage regulator. If this type of power supplies is not available, but it is expensive. A cheap alternative to this would be to use a battery holder 8xAA, coupled with a voltage regulator such as 'MF-6402402' that is dc to dc converter, to get the voltage you need. Their price is shown also in the list of components.
-Breadboard: Plastic board used to hold electronic components. Also, to connect the electronics to the power supply.
-Wires: Used to connect the electronic components to the breadboard.
-Push-button: It is used as the start button, so when we press it the robot works.
-Ultrasonic sensor: Used to measure distance, it generates high-frequency sound and calculates the time interval between the sending of signal and the receiving of echo. It is used to detect if the lemon was held by the gripper or if it slips.
-Plastic for 3d printing
-3mm wood sheets for laser cutting
-Soft material: It is glued to both sides of the gripper, so the gripper compresses the lemon branch while cutting it.
-Belt to connect pulleys, standard 365 T5 belt
-8mm circular bearings, the outer diameter is 22mm.
Step 4: 3D Printing and Laser Cutting
Thanks to the laser cutting and 3d printing machines found at the Fablab, we build the parts we need for our robot.
I- Parts we had to laser cut are:
-Base of the robot
-Supports for the motor of the first arm
-Supports of the first arm
-Plates of the 2 arms
-Base of the gripper
-Connection between the gripper and the arm.
-Two sides of the gripper
-Supports for the bearings, to make sure they don't slip or move from their position, all the bearing fits are of two layers 3mm+4mm, since the thickness of the bearing was 7mm.
Note: you will need a small 4mm sheet of wood, for some little parts that they need to be laser cut. Also, you will find in the CAD design a thickness which is 6mm, or any other thickness which is multiple of 3, then you need multiple layers of laser cut parts at 3mm, that is if there is 6mm thickness, then you need 2 layers 3mm each.
II- Parts we had to 3D print:
-The four pulleys: are used to connect each motor to the arm it is responsible to move.
-Support of the motor of the second arm
-support for the bearing on the basis, that is fixed under the belt to make force on it and increase tension. It is connected to the bearing using a round metallic shaft.
-Two rectangular plates for the gripper, are put on the soft material to hold the branch well and to have friction so the branch will not slip.
-Square shaft with an 8mm round hole, to connect the plates of the first arm, and the hole was to insert an 8mm metallic shaft to make the whole shaft strong and can handle the total torque. The round metallic shafts were connected to bearings and both sides of the arm to complete the rotational part.
-Hexagonal shape shaft with an 8mm round hole for the same reason as the square shaft
-Clamps to support the pulleys and the plates of each arm well in their places.
In the three figures of CAD, you can understand well how the system is assembled, and how the shafts are connected and supported. You can see how the square and hexagonal shafts are connected to the arm and how they are connected to the supports using the metallic shaft. The whole assembly is given in these figures.
Step 5: Mechanical Assembly
The assembly of the whole robot has 3 main steps that have to be explained, first, we assemble the basis and the first arm, then the second arm to the first one, and finally the gripper to the second arm.
Assembly of the base and first arm:
First, the user has to assemble the following parts separately:
-The two sides of the joints with the bearings inside.
-The support of the motor with the motor, and the small pulley.
-The symmetric support for the small pulley.
-The squared shaft, the big pulley, the arm, and the clamps.
-The ”tensioning” bearing supports the supporting plate. Then adding the bearing and the shaft.
Now, every sub-assembly is in place to be connected together.
Note: to make sure that we get the tension in the belt we want, the position of the motor on the basis can be adjusted, we have elongated hole so that the distance between the pulleys can be increased or decreased and when we check that the tension is good, we attach the motor to the base by bolts and fix it well. In addition to this, a bearing was fixed on the basis in a place where it makes a force on the belt to increase tension, so when the belt moves the bearing rotates, and no problems of friction.
Assembly of the second arm to the first:
The parts have to be assembled separately:
-The right arm, with the motor, its support, the pulley, and as well as with the bearing and its support parts. A screw is also put to fix the pulley to the shaft as for the previous section.
-The left arm with the two bearings and their supports.
-The big pulley can be slide on the hexagonal shaft as well as the upper arms, and the clamps designed to fix their position.
Then we have the second arm ready to be placed in its position, the motor of the second arm is placed on the first one, its position also is adjustable to reach the perfect tension and avoid slipping of the belt, then the motor is fixed with belt at this position.
Assembly of the gripper:
The assembly of this gripper is easy and fast. As for the previous assembly, the parts can be assembled alone before being attached to the full arm:
-Attach the moving jaw to the shaft of the motor, with the help of the plastic part that comes with the motor.
-Screw the motor to the support.
-Screw the support of the sensor into the support of the gripper.
-Put the sensor in its support.
-Put the soft material on the gripper, and fix the 3d printed part over them
The gripper can be easily assembled to the second arm, just a laser cutter part support the base of the gripper by the arm.
The most important thing was the tuning of the blades on top of the arm and at what distance the blades where outside the gripper, so it was done by trial and error until we reach the most efficient place we can get for the blades where cutting and gripping have to happen at almost the same time.
Step 6: Connection of Electronic Components
In this circuit, we have three servo motors, one ultrasonic sensor, one push button, Arduino, and a power supply.
The power supply output can be adjusted as we want, and since all the servos and the ultrasonic work on 5 Volts, so no need for a voltage regulator, we can only regulate the output of the power supply to be 5V.
Each servo has to be connected to Vcc(+5V), ground, and signal. The ultrasonic sensor has 4 pins, one is connected to Vcc, one for the ground, and the other two pins are trigger and echo pins, they have to be connected to digital pins. The push-button is connected to the ground and to a digital pin.
For the Arduino, it has to talk its power from the power source, it can't power from the laptop or its cable, it should have the same ground as the electronic components connected to it.
- You should add a power convertor, and power to the Vin with 7V.
-Please make sure that with this connection, you should remove the Arduino port from your pc in order to burn it, else you should not use the 5V output pin as an input.
Step 7: Arduino Code and Flow Chart
The goal of this robotic arm with a gripper is to collect a lemon and put it somewhere else, so when the robot is on, we have to push the start button and then it goes to a certain position where the lemon is found, if it grips the lemon, the gripper will go to a final position to put the lemon in its place, we chose the final position at the horizontal level, where the torque needed is maximum, to prove that the gripper is strong enough.
How can the robot reach the lemon:
In the project we did, we simply ask the robot to move the arms into a certain position where we put the lemon. Well, there is another way to do that, you can use inverse kinematics to move the arm, by giving it the (x,y) coordinates of the lemon, and it calculates how much each motor has to rotate so the gripper reaches the lemon. Where state=0 is when the start button is not pushed so the arm is at the initial position and the robot doesn't move, while state=1 is when we press the start button and the robot starts.
In the figures there is an example of inverse kinematics calculation, you can see three sketches, one for the initial position and the other two for the final position. So as you see, for the final position-no matter where is it- there are two possibilities, elbow up and elbow down, you can choose whatever you want.
Let's take elbow up as an example, to make the robot move to its position, two angles have to be calculated, theta1 and theta2, in the figures also you see the steps and equations to calculate theta1 and theta2.
Note that, if the obstacle is found at a distance less than 10 cm, then the lemon is gripped and held by the gripper, finally we have to deliver it to the final position.
Step 8: Running the Robot
After all that we did before, here are videos of the robot working, with the sensor, push-button, and everything else working as it should. We also did a shaking test on the robot, to make sure it is stable and the wiring is good.
Step 9: Conclusion
This project gave us a good experience in dealing with such projects. Yet, this robot can be modified and have some more added values such as object detection to detect the lemon, or maybe a third degree of freedom so it can move between trees. Also, we can make it controlled by a mobile application or by the keyboard so we move it as we want. We hope you like our project and a special thanks to the supervisors at the Fablab for helping us.