Well this post is a bit late because yesterday I had to leave in a rush, nevertheless the promised post is here. This is not really my research topic, but it is a topic within my skill set. The fact that I am talking about this is simply because I spent yesterday discussing the matter, and finding solutions for a given problem involving robots.
So lets start how I start my classes on the matter, robots are as dumb as the program that they are running, so for those of you who think robots are intelligent think again. The robot is a piece of hardware which has the potential to execute tasks, some are more complex that others. The key aspect to determine the flexibility of a robot is how many degrees of freedom does it have. What does this mean? Well basically it means in how many axis can the robot move on. A simple example is a Cartesian robot that moves on the "X" axis and "Y" axis, thus having 2 degrees of freedom. If you can rotate on the "X" axis as well then you have 3 degrees of freedom. It seems more complicated that it really is, since normally we don't go above 6 degrees of freedom for articulated robots. These are the robots based on the human arm. A cool exercise is to determine where you have you joints in the arm and determine why you have 6 degrees of freedom, but this is a exercise for geeky people ;P.
Before moving away from the basics I should mention kinematics, robots use kinematics to execute their movement. What this means is that there is a complex mathematical model behind the each movement, however this is not taken into account unless you are planing trajectories. Normally you "tell" the robot to go to a position, and the robot control using kinematics gets the robot to go there. Why do we need kinematics? Well basically when you are moving 6 joints to reach a point, all joints affect each others movements, thus they have to be compensating for it towards reaching the given point. If you are curious to understand more about this you can google it ;P.
Now that we cover the very basics, I can introduce the problems I was handling yesterday. So different robot manufactures use different control algorithms and different ways to interface with the robot. This cases a problem when you are integrating a robot into a assembly line, since there is no guaranty that it will operate with the control structure you are using. In fact all equipment in the line has this problem, thus why integration ends up being more expensive than the actual equipment in the line. To try and tackle this we are using a "plug and produce" concept, which is based on the computer "plug and play". For those who don't know anything about this, basically it is the concept that you plug for example your MP3 player to the computer and it works. The difference is the USB standard interface doesn't really exist. Sounds simple just create an interface, right? Wrong, the problem is that in assembly the equipment has different needs thus requires different and complex interfaces, plus the fact that manufactures want to keep their market share, so the collaboration between competing companies is hard. But I am going of topic here.
For the robots, the suppliers provide little insight on the robots control, and as such makes it hard to do what we are trying to do, which is to create a rapper around the whole unit and provide automatic reprogramming of it. To achieve this we need to interface directly with the robots commands, but the how to extrapolate this into a common control structure? Well mapping is crucial, like the drivers are crucial in your computer, when you don't have the drivers you can plug in all you want because you wont be able to operate it. Drivers come from the mappings and the creation of models, which is part of what we do. Also we want to take this to the next level which is the automatic reprogramming of it. What does this mean, well it means that there would be a generic software that would provide the tools to deal with your MP3 player, but instead of you installing it from your Mp3 player manufacture, you would have a standardize one that would work with any kind of MP3 players. I guess this is enough to give you some insight on the sort of stuff I sometimes have to think about ;P.
I hope it wasn't too boring, thanks for reading ;P...