As an engineer, I often need to quench my thirst for understanding on how things work. Ask my parents and they will tell you how many things I disassemble, and sometime broke in the process, when I was young! And I still have this craving for disassembling anything new that surround me. But sometimes curiosity is not your best friend, when you have to accomplish a task in an efficient way. Let me explain to you the concept of abstraction, which is pretty much the opposite of curiosity, and how we use it in our products at Robotiq.
The first time I was introduced to the concept of abstraction was at university, in my programming 101 course. I found the explanation quite eloquent and I'll try to transmit it to you in the best way I can.
Let’s take something everyone has in their kitchen; a microwave. Understanding how this machine works can be a big challenge, even for an engineer!
But even if few of us can really explain what is going on in this maze of electronic stuff, almost everyone on the planet can use it. Why? Because its interface is an abstraction of its working principle which gives us an easy way of using it. In its most basic form, using a microwave can be summarized like this:
Because someone took the time to create a simple interface which wraps this technology inside a black box; you don't have to be a PhD in physics to use it. This is the principle of abstraction in engineering.
But the problem with black boxes is that most engineers don't like them. It is counter intuitive to rely on something you don't truly understand. But when you succeed in jumping over this mental hurdle, the opportunity to build something faster and greater opens up to you.
The world is full of abstraction examples. Just think about the Avatar movie by James Cameron. The tools used by the special effects team to create this magnificent world would not have been available if the principle of abstraction had not been applied to the evolution of the computer. From the simple bit flipping inside an electronic processor to the complexity of creating virtual worlds, a multitude of layers are superimposed to abstract stuff that doesn't matter to the special effects creator, but surely matter for the efficient running of the computer. Imagine if, for just a moment, instead of using a 3D visual software with a visual interface on a computer, the special effects team needed to code everything in a programming language. It would have not been possible to achieve the level of realism they reached because they would have needed to spend time of doing stuff unrelated to their main goal: conceiving an awesome movie. And imagine, this is only one layer of abstraction down. I haven’t even spoken about entering 1s and 0s in a processor directly.
Which option would you choose to create a virtual world?
About now you are probably asking “What’s this got to do with robotics?” Well, at Robotiq, we have a mantra that drives our everyday decisions. It’s: Let's free people’s hands. We aim to free the hands of workers from tedious jobs and give them the opportunity to do something more valuable and fulfilling. And to do this, we are taking the knowledge we have in gripping technology and we have embedded it in our Gripper. This way, we have created a tool you can used without having to care about the details that are not related to the task you are automating. Maybe you are thinking “Well, gripping stuff with a gripper is not something that is really complicated”, but let me give you an overview of all the stuff that must go on inside a Robotiq Gripper.
The Gripper relies on an incremental encoder. This is why it needs to be activated after each power up to know where the fingers are located. After this initialization, when you ask the Gripper to go to a specific position, it will drive the brushless motor to move the fingers to the requested position. The system will handle the acceleration, the travel and the deceleration phase that is needed to reach this position. It will also ensure that the motor is not consuming too much current by managing it in a closed controlled loop.
Another thing that the Gripper is establishing is object detection. Wherever you asked the Gripper to go, it will always monitor its speed and current consumption to determine whether or not it has found an object. In the case where it detects a speed change that is not programmed, it will stop according to the force parameter that you have specified. Then, it will raise an object detection flag (a specific bit in the communication register), so you know you've gripped something.
The brushless motor is one of the reasons our Grippers are reliable and compact. These types of motors don't use brushes to transmit the power for the Gripper. Instead, they uses a special power drive, which we have embedded in the electronics of the Gripper.
To transmit the user request to the Gripper, we use an RS-485 physical cable with a Modbus RTU as its protocol. When a request is sent to the Gripper, the control logic takes care of it and activates the motor in the proper way. It also handles the status flag, so the Gripper’s program can be updated about what is going on and react accordingly.
This is roughly what is happening in the Gripper when you use the user interface. And if you were building a custom gripper or using a pneumatic one, you would need to address some of the steps we already manage (remember the concept of abstraction we discussed earlier) in our Gripper. So you might spend all this extra time reaching a level of integration that is already available with a Robotiq Gripper. This is time you won’t get back. It is time that you could be putting towards your main goal of automating your project.
If you are aware of our integration on Universal Robots, you have probably seen the interface we developed for it. It pushes our concept of abstraction even farther since you no longer need to understand the registers of our Gripper or how to setup its protocol. You simply need to follow the basic installation procedure (not harder than installing a program on a computer) to setup your Gripper and then, you are ready to build the program for your robot. The interface that controls the Gripper looks like this:
I think we can called it user friendly because since it is already integrated with UR robots; it will save you a lot of time and this saved time you can spend on the task you are automating. Also hopefully it will mean you can create even greater automation projects, because you can use our work abstraction to advance your work in automation.
What do you think? Leave us a comment if you agree or disagree with the idea that abstraction can really be a time saving concept.