About the robot
For the past eight weeks we have been working on designing, manufacturing and programming our own six axis robot. During the minor we were forced to work from home. With the limited resources we had during COVID-19, we managed to make this project work. We wanted to use this robot for several pick and place processes, but of course there are loads of possibilities if you have a robot with six degrees of freedom.
We started the design by determining the sizes of the arms we wanted the robot to be, which is around 350 mm for both arms. Then we decided where we wanted the motors to be placed and which pulleys and timing belts we wanted to use. With that info in mind we calculated the needed torque for the motors. We chose to use stepper motors in combination with micro switches, which makes a setup that’s precise enough for our needs.
After calculating all forces and choosing all stepper motors we started with the design process in Autodesk Inventor. The results of this design process can be seen here:
If you’re interested in more details about our design please visit our Github Page.
For the electronics we had to do three tasks to make the robot work for our needs. We needed to wire the teach pendant with the touch screen, the robot itself and the main control box.
We made a teach pendant to control the robot by hand, to teach the robot locations and to start all memorized applications. You can see the teach pendant in the following picture:
We also had to wire the robot arm with all micro switches and stepper motors, which would lead to the main control box. In here there are six stepper drivers, a 24 Volt power supply and two buck converters ( to power the micro controller and the servo for the end effector). You can see a picture of the control box down here:
For the software we used the arduino IDE. We also used two libraries, one for the stepper control called “accelsteppers.h” and the one for the servo control called “servo.h”. The accelsteppers library has some usefull functions like accelerating and de-accelerating to a position of moving with a constant speed. The library also supports relative movement from his current possition wich is really usefull for manual control of the steppers. Because of the use of stepper motors we dont know the start location and therefore we need to set a zeropoint to count steps from. With the use of the micro switches and micro stepping we got a really high accuracy.
At the end of this project we can conlude that we managed to make the robot repeditively reach the exact programmed coördinates, after a lot of hours were invested. At this moment we are limited to a certain speed as a result of the clockspeed of the micro controller. In the future we would have to use a seperate micro controller to control the stepper motors.
Mechanically we would also change axis three by taking a motor with a higher torque, and changing the long timing belt for a chain or a different solution (because the timing belt has too much stretch.
In future versions we are also going to implement backward kinematics to be able to program XYZ-coördinates and move from point A to B in a straight line.
To increase the accuracy of the robot and make it safer and more reliable, we would like to implement absolute encoders. This will turn the robot into a closed loop system.
All in all the Six Axis Robot is a great succes and we will continue to make it even greater!