Background : Basic For Servo Motors
If you want to make an awesome robot, If you want to know how awesome robot physically moves and what motors do they use, you are very welcome to here. You may know what servo motor is.
Today, I am going to talk about Robotis Dynamixel which is basically a servo motor but it is super smarter then other servo motors.
Motors - Rotational or Angular
Basically, there are two kind of motors. rotational and angular. A rotation motors are for just turning something like fan, wheel and blender. We just expect them to run. We only control speed or power. On the other hand, an angular motors are for operating a particular angle for specific purpose such as joints for robots, flap for airplane or so. servo is a kind of angular motor.
Servo Motors - Normal Servo or Smart
In order to use a normal servo motor, we only need to give them power and signal. Normally, we can control motor's angle by sending PWM signal to them. There are so many well made library and instruction for it. I used to use servo motors for making a simple robots. These are the robots.
Hungry Robot (https://youtu.be/KfP_LfUiwdc)
Jibo Homage Robot (https://youtu.be/BpzO2jBOyuI)
Servo motors are originally used for RC planes or cars. That is why they called as RC servo motor.
Smart Servo Motors - Dynamixel
in order to make more complex robots such as humanoid robot which has a lot of joint, you better use a smart actuator. It has a lot of functions you may need. It saves time and effort. One of popular motor manufacturer among smart actuators field is Robotis. There are a lot of lineup from toy size to industrial size. Dynamixel is their product series name.
I have made a lot of robots by using Dynamixel. These are the robots.
5 Reasons why you want to use Robotis Dynamixel
1. Cable
Normally, robot has a lot of motors in serial. Let's think about our body. From a body to a finger, some of them are linked each other. Robot is also linked one frame to another frames.If you use RC servo motors for joint robot, you will meet a problem with a lot of cables. Because RC servo motors have to be connected with a main controller which gives PWM signal to them. So, If you link 5 motors in serial way, motor lines are gathered. Sometimes it occurs problems.
One the other hand, Dynamixel can be connected with each other. in order to make them move, we only give them proper data packet though communication line. It is very similar to I2C communication. Every Dynamixel has programmable address. It reduces cables dramatically. All you have to do is to give each Dynamixel different address.
2. Hardware
In order to use a motor for your purpose, you will need to fix motors to frames firmly and securely. Normally RC servo has only 2 wholes on wings and it is enough for RC car and plane. But 2 wholes are not enough if you want to make a serial joint robot such as humanoid robot. Because the robot need to be lined each other. There will be Internal or external force to the frames. If they are not fixed securely, they are easily broken down. Dynamixel has a lot of holes which can bear nut for screws. It is very handy, useful and secure.
One more thing I want to talk about hardware is that it has one more fix point on the other side. Both RC servo and Dynamixel generates movement and deliver it through the final gear on the surface of it. If you fix your external frame with only this final gear, the robot is easily broken down because the final gear is only designed for rotational movement. If the external frame moves vertically against the axis, it breaks your motor or frame itself. There are two ways to solve this problem. To use a thrust bearing like a excavator or to fix using one more point. Robotis gives 2 solutions altogether, you can either use thrust bearing or use one more fixing point for it. Normal servo doesn't have backside hall but Dynamixel has it. This makes different.
3. Feedback from motor
This is one of the best feature of Dynamixel. RC servo is straightforward and easy to control but we can't read its status. We just can order them to move to specific angle. Sometimes we need to know about current angle, temperature or speed. Reading current angle dramatically helps me to record robot's pose. Let's imagine that we want to make a dog robot. In order to make the dog walk, we need to make some motion sets. With RC servo motors, we have no choice but to try to move each motors one by one and note output values for it. If there are 20 motors for legs, we need to try this work for every single motors. On the other hand, with Dynamixel, we can read current angle status in a very simple way. When the motor gets a reading-value-instruction, they return their status right away. In this way, we can capture every single motor's angle in very short time. All you have to do is just to save the values for your purpose.
4. Controller & SDK
When you want to use a RC servo motor, you must need to use a microcontroller such as an Arduino which can give PWM signal to a servo motor. It is somehow easy to control servos in short time. However, if you want to move the motors beautifully, you will need to calculate a complex math formula. And you will need more powerful computing processor, you will need to develop again.
On the other hand, you can control Dynamixel by using computer through USB device. Your PC can control the motors directly so you can apply this to your another project such as image processing or so. There are so many mini-size computer around the world in these days.
Robotis gives SDK and some example code for Linux, Windows and Mac users. I am going to make my project using Python on Windows by the way.
5. Consistancy
When I made a humanoid robot with RC servo, I got some serious problem with it. Sometimes some motor ran out because they are consumable parts. The problem is that every time I changed the motors, the default angle between old one and new one are way much different. I needed to adjust angle physically logically. This made me frustrated.
Robotis Dynamixel can adjust its default angle offset in logical way. We can send offset instruction with adjust angle value. Then, the motor moves like previous motor. By the way, I've never used this function because there are all same. Actually I didn't know the feature. I just replaced and done!
Conclusion
Dynamixel has a lot of features you may like. As a heavy robot maker, these are the best things that I can say confidently. If you want to make a simple robot with under 10 motors, you may use RC servo motors. If you want to make a joint robot with over 10 motors, I strongly recommend you to use Dynamixel. If you are a beginner, AX12A is the cheapest option. AX12A is a steady seller over 15 years. If you want to try, link is here. https://amzn.to/2Pa6FXk







No comments:
Post a Comment