So this post doesn’t really have anything interesting from a technical perspective, but I should still get another post up soon with more technical stuff. This post is mainly defining my goal with this website and what I hope to learn/teach me/you about over the next few months.
So I want to build a 6 degree of freedom (DoF) robot arm. This will not include a gripper, that will be the next project, but literally just an arm. Think about building up to and including your wrist but not building a hand. 6-DoF was selected because it is the minimum required number in order to hit any pose in its work space. Don’t worry if some of this doesn’t make sense we will go much further into detail in time.
I want this arm to be able to lift 2 kg at max extension, and I would like the max extension to be around 60 cm. This is about 4.5 lbs and 2 ft in freedom units :). This might not sound like a lot, but this lifts most things around your house, and gives a decent amount of reach. Also, keep in mind that at max extension is not the most common use case, anything less would allow for a larger payload.
If you are wondering what do you mean it could lift more at less then max extension look at this diagram:
In this diagram, one pose has the robot arm fully extended. If we placed a weight on the end of the red link the torque the black link would have to lift would be:
Where is the length of the black link, and is the length of the red length. Compared to the other arm in which the torque would be:
Where the values are the angles from the horizon of the different links. In the second case if the angles equal zero it is the same as the first case and otherwise the second torque will be less. Therefore if the arm is bent in we can generally say it will take less motor torque to hold the same weight.
This project will go in a few different steps, and I am going to try to lay them out here, but keep in mind this will be evolving and change as I learn more about the process.
Robotics is a complex field that brings together many different disciplines. It falls most generally under mechanical engineering and computer science. In the M.E. domain it falls under mechatronics. Mechatronics is the design of system that have a mechanical, electrical and computational component. This is obvious because robotic arms are mechnaical, you use motors and electronics to control them, and you then use your computer to control the electronics. Robotics is a specific domain of mechatronics in which the system acts autonomously.
To clarify this a little more, a car made in the 1930s is a mechanical project. There was no electronics and it used only mechanical parts to run. An example of a mechatronic project would be the Prius or really most modern cars. They have electronic sensors to tell you how fast you are going, mechanical motor and computers to create output to the user. Notice the mechatronics component still has a human controlling the car. A robotics project is then the self driving car. There is all the same pieces but no human operator or no teleoperation only autonomous operation.
Now I also said it also fell under computer science. Modern robotics falls under two sub fields of computer science, machine learning and artificial intelligence(AI). Artificial Intelligence is the study of how to make computers think. This involves many sub fields, like game playing and natural language processing, but the hardest applications are in robotics. The problem with robotics is that for many problems you work in a world that has fixed rules and you can see everything that is going on, but in robotics you have noisy sensors, with a agent hard to control trying to accomplish things hard to describe. This is much more complex than even chess, where you know what moves you can do, where the pieces are and what the goal is.
Machine learning is a field dedicated to trying to get computers to learn. This field develops methods that give a mathematical description of what learning is. Often times AI and ML overlap, and really anyone who does work in one is often doing work in the other. ML can involve learning the models of systems, which we will do some of, or it can involve learning how to make decision, like some of the stuff I do research on.
Now we know a little about the field and we want to build an arm it is important to think of what this entails. It is a robotics project so it will have three broad and often overlapping categories of tasks: mechanical design, electrical design and computational design. In order to build an arm that works the most effectively we need to carefully consider each.
Now I am not great at manufacturing parts and pieces so all of my designs will be a combination of parts ordered from Servo City,Robot Shop, or sometimes other places like Amazon. If I can’t buy a part directly I will do everything I can to 3-D print it. I am lucky enough to be at a university that has many of these for free, but the 3-D printed parts should be simply enough that they can be hand made as well. The ease of getting parts doesn’t invalidate the mechanical design it just makes it a lot easier.
The goals of this blog then are not to go into manufacturing but instead to learn how to model and design mechanical and electrical systems relating to the unique requirements of robotics, and to understand and use different types of control strategies on these systems. This will be done with a specific focus on the application of these concepts to the development of a robotic arm.
The pathway to success
Now I have already posted on Serial Communications using USB to Serial Cables and this was not wasted. What I post on in a given week will often depend on what parts I have on hand. I did that post because I had those parts on hand and it will be needed for almost every step from here on out. Furthermore, I am working on a adaptive robotic arm project as well, so when I can I will try to overlap the work on this arm and the design work for that arm, which will be the case with my next two or three posts.
The earliest steps are to build simple 1-DoF link and do modelling and control on this. This modeling will most likely be more complex then what will be used in later steps but understanding the concepts will serve us later when we pick and choose what we model. This will include the electrical and mechanical model and then how we can apply classical control methods to control these.
The obvious limitations of 1-DoF arms is they can’t do much. From here we will move on to more complex subsystems of the robotic arm. You can break a robotic arm into two parts, the wrist and the arm. The arm is used to position the end effector in 3-D space, while the wrist is used to orient the end effector. Since the arm has to lift the wrist starting with the wrist is a good place, and building “down” the arm is often a good practice. We will use the wrist to show how the joints couple together to create the robot’s pose, how to model the statics and dynamics of the robot arm, and how to do some controls on the subsystem.
Finally, we will build the arm part. At this point there will not be any new things to consider. The largest of these will be system identification of the robotic arm. This involves tuning the parameters of the arm so that our model more accurately reflects reality. Most interestingly we will develop many cool control strategies and implement them on a real robot.
I hope this gives you guys a reason to keep coming back to the web page. I know I didn’t go into lots of details here but that is the fun of staying tuned. For those of you worried about cost, I will say my goal is to do this for less that $2000 american dollars.