Putting robotics at your service™

Free shipping on orders over $200

give a trajectory to the servo

Print view Share :
Previous topicNext topic

Page 1 of 1 [ 13 posts ]

Rookie ( offline )
Posts: 30
Posted: 2009-05-12 10:49 
Hi,
I work on my master thesis in robotic. I am going to make a 3 axis robot which has ability to write the word for example L. It means, I want to give a trajectory for this word to the controller and then the robot follows this trajectory.
I work with a simulation tools that is named Dymola. And now I have the parameter for this trajectory like position and velocity by Dymola.

Have someone here to do a same project like this?
I have some question,

1-I use the regular servo standard and micro servo.when I give the small change in position in short time the servo has change the position with more vibration. how can avoid this problem.

I also have some more question that I ask later.

thanks in advance


User avatar
Guru ( offline )
Posts: 4106
Posted: 2009-05-12 16:34 
3 axis? That sounds like what I'd call a router. And yes, you can certainly draw (or carve) any letters you want with a router.

For CNC we usually interpret a simple control language called Gcode. It's nothing much more then simple move commands. Linear or arc moves are defined, and a list of these moves can be used to do most anything.

Interpreting the Gcode is relatively simple, even in 3 dimensions! A straight line should be obvious. A line at an angle is basically defined by the starting and ending points. For example, you might have to move the X and Y servo motors at different speeds to arrive at the endpoint at the same time. Arcs are a little more complicated. But easy enough to do with a little trig.

I'll wait for your comment before taking this explanation any further, in case I'm completely off track!

I don't know Dymola. I usually generate Gcode using a CAD/CAM program. There are also little programs (free) that will turn text into Gcode for you.

Alan KM6VV


edsafavi wrote:
Hi,
I work on my master thesis in robotic. I am going to make a 3 axis robot which has ability to write the word for example L. It means, I want to give a trajectory for this word to the controller and then the robot follows this trajectory.
I work with a simulation tools that is named Dymola. And now I have the parameter for this trajectory like position and velocity by Dymola.

Have someone here to do a same project like this?
I have some question,

1-I use the regular servo standard and micro servo.when I give the small change in position in short time the servo has change the position with more vibration. how can avoid this problem.

I also have some more question that I ask later.

thanks in advance

_________________
Visit:
http://groups.yahoo.com/group/SherlineCNC/
http://tech.groups.yahoo.com/group/HexapodRobotIK/


Rookie ( offline )
Posts: 30
Posted: 2009-05-13 04:43 
thanks for your quick responce

the question is that , can we use the reqular servo motors to do the trajectory? because I think this kind of servo can't act in small change in position and velocity ?

I use SSC-32 for controlling the servo, does this kind of controller work with Gcod?

where can i find some more information about writing programe in Gcode?


do you do yourself this kind of job with regular servo?

thanks


Veteran ( offline )
Posts: 139
Posted: 2009-05-13 08:29 
edsafavi wrote:
thanks for your quick responce

the question is that , can we use the reqular servo motors to do the trajectory? because I think this kind of servo can't act in small change in position and velocity ?

I use SSC-32 for controlling the servo, does this kind of controller work with Gcod?

where can i find some more information about writing programe in Gcode?


do you do yourself this kind of job with regular servo?

thanks


I don't see why you are getting vibration from SSC-32 unless you are putting too much stress on the arm.

Servo motors can do trajectory, however the precision of the arm movement highly depends on your model.

The vibration could comes from the rigidity and stiffness of your model. You can evaluate this behaviour via inertia/stiffness/error matrix. The solution will help you to properly quantify this parameters, and hopefully a solution for your case.

Gcode is the most common machine code for CAD/CAM CNC application, however you may need to add converter or something like that to read and convert it into usable code for SSC-32.

For your thesis, servo motors should be good enough to demonstrate your understanding and application, but it should not be compared to industrial standard. 8)


User avatar
Guru ( offline )
Posts: 4106
Posted: 2009-05-13 13:37 
Tnay has already made some good points.

Let me add some. There are basically two types of motors we call servos: DC servo motors, used in commercial applications, and R/C servo motors, most often used for hobby applications.

The R/C servo motors can indeed be made to closely follow a trajectory, limited of course by their resolution, which is in the order of 255 points along their travel (often 180 degrees). DC servo motors may have thousands of points of resolution in 360 degrees of revolution.

You get this fine resolution by incrementally (by as small amount as possible) changing position command to the servo.

The SSC-32 does not directly work with Gcode. Gcode is a list of position commands, like "X10 Y20", which would be the X & Y positions of the next point the hardware is to go to. It's a good intermediate language that is easily parsed into move commands. You'll have to scale the numbers into the 500-2500 ms pulse width commands that the SSC32 accepts.

I wrote and use a CNC controller program for my CNC'd Sherline mill and lathe that interprets Gcode programs, and commands DC servo motors or stepper motors. I haven't done that with R/C servos, but I see no reason why it wouldn't be possible.

If your text (?) or drawings are simple enough, you can simply make a list of coordinates for the three axis to travel through.

Code:
0, 0
10, 0
10, 10
0, 10
0,0


Is a list of points that define a square. These would typically be put in an array. Then each pair of coordinates would be retrieved and the program would generate the pulse width commands that the SSC32 expects.

Do you know the old plotter code (HPGL)? that would also be an easily interpreted code.

The reason for working with either Gcode or HPGL is the ability to create complex drawings in a CAD or drawing program, and then interpret (decode) the coordinates from the files. A Google of Gcode will bring up definitions and further examples for you to study.

HTH

Alan KM6VV

tnay wrote:
edsafavi wrote:
thanks for your quick responce

the question is that , can we use the reqular servo motors to do the trajectory? because I think this kind of servo can't act in small change in position and velocity ?

I use SSC-32 for controlling the servo, does this kind of controller work with Gcod?

where can i find some more information about writing programe in Gcode?


do you do yourself this kind of job with regular servo?

thanks


I don't see why you are getting vibration from SSC-32 unless you are putting too much stress on the arm.

Servo motors can do trajectory, however the precision of the arm movement highly depends on your model.

The vibration could comes from the rigidity and stiffness of your model. You can evaluate this behaviour via inertia/stiffness/error matrix. The solution will help you to properly quantify this parameters, and hopefully a solution for your case.

Gcode is the most common machine code for CAD/CAM CNC application, however you may need to add converter or something like that to read and convert it into usable code for SSC-32.

For your thesis, servo motors should be good enough to demonstrate your understanding and application, but it should not be compared to industrial standard. 8)

_________________
Visit:
http://groups.yahoo.com/group/SherlineCNC/
http://tech.groups.yahoo.com/group/HexapodRobotIK/


Guru ( offline )
Posts: 2251
Posted: 2009-05-14 02:18 
Sometime back someone posted a video that might be of interest of their hex bot milling a 3D face in a piece of foam material .


Guru ( offline )
Posts: 2251
Posted: 2009-05-15 02:18 
Below is the video of the hexapod milling machine:

http://www.youtube.com/watch?v=quN37YskoaM


Rookie ( offline )
Posts: 30
Posted: 2009-05-19 13:56 
Hi
I am so sorry for my long time delay to response.
I saw the link that you send me. It was so interesting.

I confuse with R\C motor and DC motor and servo motor.
What is the deference between them? in that link (CNC router) which kind of servos is used? Because the movement is very smooth and the velocity is controled very good .so I look for the servo with this kind of accuracy in control of the position and velocity.
Can you send me the exact link for this kind of servo or DC servo (to buy) because I can’t find it.
regards
edris


User avatar
Guru ( offline )
Posts: 4106
Posted: 2009-05-19 15:37 
the link above (zom) is not really a CNC router. It is not a milling machine either. It is a hexapod robot, and the body is being cleverly positioned to do a raster scan of an object.

Follow Micromagic's posted link for more information.

http://www.hexapodrobot.com/forum/viewtopic.php?f=14&t=12

An R/C servo is a little self-contained hobby motor drive that accepts a PWM signal to position it's output shaft typically over an 180 degree turn.

A DC servo motor is a commercial precision motor with a shaft encoder. Used with a servo motor driver, the shaft of the servo can be positioned accurately to any number of revolutions, and to a very fine resolution of revolution, often in excess of 2024 steps per revolution.

Alan KM6VV

edsafavi wrote:
Hi
I am so sorry for my long time delay to response.
I saw the link that you send me. It was so interesting.

I confuse with R\C motor and DC motor and servo motor.
What is the deference between them? in that link (CNC router) which kind of servos is used? Because the movement is very smooth and the velocity is controled very good .so I look for the servo with this kind of accuracy in control of the position and velocity.
Can you send me the exact link for this kind of servo or DC servo (to buy) because I can’t find it.
regards
edris

_________________
Visit:
http://groups.yahoo.com/group/SherlineCNC/
http://tech.groups.yahoo.com/group/HexapodRobotIK/


Rookie ( offline )
Posts: 30
Posted: 2009-05-20 07:05 
thanks for your useful information

Is the input signal of dc in PWM or it is some thing else?

According to your information, I get taht we haven't shaft encoder in RC servo. my question is that how RC servos can controll the position of the shaft?.

By SSC-32 controller i can also control the velocity of RC servo. how can do it, and which equipment in RC servos mesure the velocity?

I am realy apologizing if my question is basic.

thanks in advance
edris


Veteran ( offline )
Posts: 139
Posted: 2009-05-20 07:26 
RC servo do have a shaft encoder, actually its a potentiometer. RC works by reading the input from user, direct the servo to the location, at the same time receive and check the position from encoder (potentiometer).

In simpler term, RC servo feedback is internal, while DC servo provide feedback and demand us to control. Therefore, we have no means of intercepting the RC servo control system, while in DC servo, we literally need to build the control system in order for the DC servo to work.

We don't have any means of controlling the speed of RC servo. Command it to a location, and it will move as fast as possible. Although the manufacturer could design it the other way round, but that would not met the requirement of RC player. How we do it here is by sending many little position at every cycle (50hz).

I'm no expert of DC servo, and don't know what type of information it generates. But generally, DC servo has advantage of controlling the speed, i.e. to start slow, increase speed, then as it approach the destination, it slow down until it reach it, or any other way you like. This prevent high moment reaction, and improve electric power stability.

If the arm is holding something, say a cup of water, this would prevent spills :wink:


edsafavi wrote:
thanks for your useful information

Is the input signal of dc in PWM or it is some thing else?

According to your information, I get taht we haven't shaft encoder in RC servo. my question is that how RC servos can controll the position of the shaft?.

By SSC-32 controller i can also control the velocity of RC servo. how can do it, and which equipment in RC servos mesure the velocity?

I am realy apologizing if my question is basic.

thanks in advance
edris


User avatar
Guru ( offline )
Posts: 4106
Posted: 2009-05-20 13:13 
Just a little more on the DC servo, The feedback is usually from a shaft encoder, sometimes a tach.

The movements of a DC servo are controlled by an acceleration/deceleration profile. This profile is set up by the commands given to the controller software. Accelerations are calculated, distances to move, points to change from acceleration to slew, etc. are all controlled by this profile. On top of this, a PID (Proportional, Integral, Derivative) algorithm modifies the commands sent to the servo amp in response to the error command and the commanded position. This insures fast response, without overshooting the desired position.

For our hobby uses, as has been described, we use an R/C servo, which contains a miniature "servo system" in a package. we issue PWM commands to it representing position, and it does it's best to get there as fast as it can. If we want to control its speed, and say, move two R/C servos to arrive at the same time (CNC), then we only update the position on an incremental basis, thus giving us closer control of the "speed" of the servo. Digital servos might have other facilities for controlling the speed of the servo.

Stepper motors might be something to look into if you really want to draw with an XYZ table (CNC).

Alan KM6VV

_________________
Visit:
http://groups.yahoo.com/group/SherlineCNC/
http://tech.groups.yahoo.com/group/HexapodRobotIK/


Rookie ( offline )
Posts: 30
Posted: 2009-05-22 04:34 
thaks for your useful information.


 

All times are UTC - 5 hours [ DST ]. It is currently 2014-07-30 17:15
Feedback Form
Feedback Form