Showing posts with label actuator. Show all posts
Showing posts with label actuator. Show all posts

2016-03-17

Water cooled servo

I came over this really innovative solution to a common problem in robotics, namely the lack of power.

The hopelessly American solution as employed by robotics specialist Boston Dynamics as can seen in footage of their legendary big dog robot among others is simply to put a big noisy petroleum engine into the robot capable of driving the hydraulics system with the power they need to make it jump around like a gazelle on steroids.

Now another approach has surfaced that has more intelligence and lateral thinking to it. SCHAFT is a relatively small Japanese robotics company recently purchased by Google. They compete in the DARPA robot challenge, and have won at least one competition.

According to them the reason for their win is simply that they have managed to create "much stronger muscles" in their robots (higher power to weight ratio in servo motors). Their idea boils down to a brilliantly simple concept: Pump too much current into the motors but keep the motor from burning up by applying enough cooling.

SCHAFT robot motor and controller

So how do they provide more power? They solved this simply by raising the voltage of the power source beyond what a normal motor would endure and putting a capacitor bank between the power source_(battery) and the motors capable of delivering enough current even for the "spikes".

And how is cooling solved? They have constructed sealed motors that allows them to circulate non-conductive liquid coolant through the motors. The heated liquid pass through a passive heat exchanger that effectively dissipates the excess heat to the air around the robot.

I will definite look at ways of using this concept once I get the chance!




2015-05-16

Big push for the generator project.

I decided to make a push for the GX25 generator project.

First I removed the clutch from the GX25. I will be crafting some kind of frame for the generator assembly and also a converter plate to go on the shaft of the motor.

Next I prepared to make the optical tachometer circuit for the ECU to judge motor speed precisely. I had some luck pointing my manual tachometer to  black/white tape on the makeshift plate mounted on shaft. Still TODO: I still need a way to pump initial fuel into cold engine (manual pump), and actuating the choke might be handy in cold weather. But after some new intel (se bottom) I think I have found a way to make the generator act as starter motor as well, eliminating the added complexity of a separate engagement mechanism and separately controlled starter motor. Even better, I get to keep the recoil starter for debugging purposes (I already put it back on). Fun fun.

Next I put an ad out where I proclaim that I want any excess generators or alternators that people may have lying around. This resulted in me getting in contact with a fellow who had a 140AMP 12VDC 2005 mod Volvo V75 alternator for cheap, which I bought.





Next, I put an ad out where I proclaim that I want any excess electircal motors, which has resulted in a few emails from people who want to get rid of motors. So far I didn't get any motors though.


Next, I went dumpster diving, or more correctly, electrical appliance recycling plant scavenging. I will keep the location secret because, oh-boy was there a lot to be found!




3.5 HP 180V  7.5 AMP 5200 RPM Threadmill motor
Ditto

Threadmill motor driver circuit


ACME Screw linear actuator from threadmill.



One of 2 washing machine motors.
And last but not least, I put a question on electronics stackexchange asking what motor I would be looking for to make my generator. I got an excellent answer that I am definitely going to pursue next. In the same fell swoop I asked a question about how to measure the torque vs. RPM curve for my motor collection. Turns out there is something called "prony brake".

2014-12-18

Simple IK

I came over this link while looking for a simple IK to drive a simple 3DOF robot arm I am making for work.

There is also this youtube video.

I have shamelessly copied his code here, and I intend to improve upon it for my own project and maybe post an update.

const float cx=2; //coxa
const float fm=6.2; //femur
const float tb=8.3; // tibia
float L, L1;
float alpha, alpha1,alpha2,beta,gama;
void setup()
{
 Serial.begin(9600);
}

void loop()
{
trigono_xyz(2, 4, 6); //contoh x,y,z
Serial.print("gama= ");
Serial.print(gama);
Serial.print(", alpha= ");
Serial.print(alpha);
Serial.print(", beta= ");
Serial.print(beta);
Serial.println();
}

void trigono_xyz(float x, float y, float z)
{
 L1=sqrt(sq(x)+sq(y));
 gama=atan(x/y)/PI*180;
 L=sqrt(sq(L1-cx)+sq(z));
 beta=acos((sq(tb)+sq(fm)-sq(L))/(2*tb*fm))/PI*180;
 alpha1=acos(z/L)/PI*180;
 alpha2=acos((sq(fm)+sq(L)-sq(tb))/(2*fm*L))/PI*180;
 alpha=alpha1+alpha2;
}

2013-08-09

ODE instead of IKFast

After working with IKFast for a while, I realized that the OpenRAVE + IKFast combo is overkill for my purpose, and It might not do what I need/want. I wrote my robot definition in XML based on one of the examples, loaded it in OpenRAVE and all was dany, except that it was really hard to work with. I have instead shifted my effort to creating a custom software in C++ / OpenGL / Qt5 / ODE.

Open Dynamics Engine joint types


The idea is to construct a model of the robot using ODE bodies connected with hinges, and then fit the model with linear motors in place of the linear actuators. The model will be constructed with realistic masses, sizes and motor speeds and torques in an environment with realistic ground friction and gravity. So this model will in many ways simulate a real hardware robot, with quirks and numerical errors in place.

Then the next step is to write a layered stack of controller logic that only receive as input the physical properties of the robot such as the limb sizes, masses and so on plus the robot state in the form of linear actuator position readings and the actual position of the limbs in the simulation.

By carefully crafting the logic in each layer of the stack, I can create a feedback loop that continuously "improves" the simulated state of the robot so that it resembles the desired configuration as much as possible.

Each layer will have its separate well defined set of responsibilities and well defined interfaces to the neighboring layers, allowing for experimentation within each confined layer bu exchanging modules.

This model will most likely make the work of finding good parameters for the robot much easier. Trusting the results will be easier.

2013-08-04

Anatomy of a robot limb

For simplicity I have decided to keep all 6 limbs of Devol identical. Each limb will be interchangeable with any other. This I hope will make building and maintaining the limbs much quicker and cheaper due to reuse, but the design process might take longer because now I have to ensure that the one design i decide upon actually will work for all 6 legs.

I have been thinking a lot, and created a 3d model for simulating the possible limb configurations. I have also managed to install OpenRave, and I have started learning to use it by adapting one of the example robot definition XML files while reading some of its tutorials on-line.

I have also looked at realistic actuators that might fit into the designs on global sourcing sites such as alibaba. For example I have received a quotation at 22USD per piece for 20pieces of this nice little actuator. Since I will need 18 of them, this is good news.

FY011C Linear actuator 12VDC at FOB 22USD/20pcs
The idea is that instead of having geared motors at the joins, I will have linear electro-mechanical actuators in a configuration that is typical for hydraulic and pneumatic systems. The benefits are many:
  • The design is simple
  • The resulting robot will be more solid due to the separation of hinges and force in joints.
  • Reaching higher precision in the actuators is easier than with geared motors due to the available flexibility of mounting positions.
  • The actuators will actually be cheaper due to their outspread use in furniture.
  • The actuators will remain static under load with 0 power drain.
  • The actuators are available with built in position sensors and end switches
  • The actuators are available with IP ratings for dust and water resistance. The one I found was rated IP66
  • The choice of available actuators is huge with all sorts of quality, precision, speed and load requirements.
 But how can I calculate the required dynamic and static forces? I found this great site that appears to be centered around building another hexapod. They have a head start, I better shape up!

Anyhow they made a series of tutorials, one which was very useful for my project, namely the PDF about simple hydraulics joints. I can warmly recommend it due to its simplicity and completeness.

My take-away was this figure with the matching formula:
Shamelessly stolen without permission from http://projecthexapod.com


Linear Piston Force * Moment Arm = Torque @ Joint 


Now I'll just have to find out the value for all my variables...


2011-06-06

I decided to test electromechanical actuators first.

In a previous set of posts I researched alternative ways to move the legs of my robot. Today I decided that I would try to make one prototype leg using electromechanical power, and then try other means later if I feel like it.

The reason I decided to make a prototype leg was simply that it allows me to think more clearly about the solution, and get a feel for the size and power required for such a leg.

The reason I decided to go for electromechanical first was 3-fold:
  • I will have a power train based on electric power no matter what power source I decide to use in the end. I won't need to care about the added complexity of pumps, hosing and valves which is inevitable for pneumatic or hydraulic solutions.
  • Using Electrical power directly will give me the most efficient use of power, instead of wasting it in a power-exchange along the way.
  • Electrical power will probably give me the highest precision due to the fact that pneumatic and hydraulic systems will introduce delay and sluggishness.
So how will I proceed?

I already have geared motors that I can use, so the next step is finding the ideal way to control them. I also need to actually build the body of the foot.



I will try to create a series of useful posts related to these two topics in the time to come. Stay tuned!

    2011-05-31

    Hydraulic actuators

    This is a continuation of my previous posts about actuators.

    What about hydraulics? Hydraulics and pneumatics have a lot in common, but instead of using gas to push around pistons, in hydraulics a liquid is used instead. In practice this means two things. For one, the cushioning effect which is due to the compressible nature of gases is gone. Hydraulic actuators will be rigid in comparison. Second, the fluid used as a medium for transporting the force will need to be recycled, so when in pneumatics could just release the "used" air out, in hydraulics you have to guide that stream of liquid back to a tank. So what is the main advantage? The amount of power you can put into one tiny actuator is enormous. It really is the pump that decides the amount of force you can swing around with, the cylinders stay pretty much the same.
    Hydraulic pump with tank
    Double acting hydraulic cylinder








    However there still are some drawbacks. The return hosing I mentioned means alot more hoses everywhere, the rigid nature of hydraulics may not suit your application, and you still have the whole inertia/delay/sluggishenss of the system due to the fact that you are relying on fluid running around in tubes. So hydraulics in my robot? We will have to see...

    This concludes my series on actuators, however I will post more on actuators when I get to test some of them. I need to figure out what I really want to use in my robot.

    --Lennart

    Pneumatic actuators

    This is a continuation of my previous post about actuators.

    Pneumatic actuators have the following benefits over electromechanical actuators: They can be made to require less space, and it is often easier to direct their force where it's actually needed. This is especially so with the Air muscles, which are soft and bendable. They also have natural cushioning that may be desirable when building a robot that needs to be gentle with its surroundings (or in my case, impact and shock resistant).

    Pneumatic cylinder


    Air muscle
    Air compressor
    Solenoid valves on manifoil



























    On the negative side however, controlling the force of pneumatic actuators will be much harder, since you rely on the flow of gases in tubes which will inevitably add some delay to the whole control loop. Also having top precision is also very hard, especially for air muscles due to their very soft nature. And finally, they come with some baggage. You will need an air compressor on board your robot, or a solid supply of gas under pressure, and each actuator will need 1 or 2 dedicated solenoid valves for controlling air flow. With many actuators (36 in my worst case scenario) this ads up to a huge manifoil with a carnage of tubes perturbing in every direction.

    So pneumatic actuators in my project? Possibly...

    My next post will cover hydraulic actuators.

    --Lennart

    Electromagnetic actuators

    This is a continuation of my previous posts about actuators.

    Electromechanical actuators are often very simple to work with. You connect them to a controller chip that feeds it with the right voltage, and apply a gearbox with the correct gear ratio to get the speed/torque needed for your application, simple as that. In most cases you just throw in a servo and you are instantly satisfied. They are fast, efficient and accurate.
    Regular DC Motor
    Stepper motor
    Servo motor










    Rotary motor encoder
    DC Motor with Gearbox
    Solenoid actuator






















    However what bothers me about them is that the motors will continuously pull current from your precious power source. In my project this is a big no-no, since I am aiming for very long power life. One way to avoid this constant power tapping is to use a very high gear ratio or a clutch mechanism that will effectively make the actuator stay locked in place when not active. However this can quickly add complexity and cost to the solution. Another problem with using motors directly is that you need to facilitate the means to get position feedback yourself by either using a rotary encoder or some other 100% reliable sensor. If you use a stepper motor or a servo, you get around this problem, but they are very expensive. Another problem is where to put them. In many small robots, the servos actually make up the limb entirely (as seen in the construction of the excellent A-Pod robot by Zenta), but for my project that is not desirable. I don't want the motors sticking out of the limbs either. I want the limbs to fully contain its actuators in an elegant manner. So electromechanical actuators? Maybe...

    Next post will cover the pneumatic part of the actuator spectrum.

    --Lennart

    What is a good actuator for my robot?

    Deciding which kind of actuator to use has bothered me for quite some time now. I would like to use this post to create a summary of what options are out there with pros and cons.

    But first a definition. What exactly is an actuator? Actuators are used to move stuff. In my case I need actuators to move the legs of my robot. As you can se in the list below, there are a lot of different kinds of actuators to choose from:

    • Electromechanical
      • DC motor
        • Gears
        • Lead screws
        • Servos
      • Stepper motor
      • Solenoid
        • Spring return
        • Single acting 
        • Double acting 
    • Pneumatic
    • Hydraulic
      • Cylinder
        • Spring return
        • Single acting 
        • Double acting
    In my next posts I will cover the pros and cons of each type of actuator in more detail.

    --Lennart