Search the web
Sign In
New User? Sign Up
webots-users · Webots Users
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want your group to be featured on the Yahoo! Groups website? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
servo with gravity   Message List  
Reply | Forward Message #3172 of 3400 |
Re: servo with gravity

Hello,

> I am curious about how does servo really work...
> For example, if I have a robot lifting left leg to the front at initial state
and
> in controller, I use command " wb_servo_set_motor_force(joint[2], 0); " which
will turn off the left hip servo of robot.

Just like a real motor, the Servo works by applying a torque to a axis. Indeed,
calling wb_servo_set_motor_force(joint[2], 0) turns off the motor torque for
joint[2], so this Servo becomes passive. It's a bit like turning off the power
in a electrical motor, only that with the Servo there is no simulation of the
gearbox and therefore it becomes completely loose like a rag doll.

> What i understand is that after press run, the left leg of robot should
automatically rotating around the hip rotation axis by gravity, and finally,
robot will be in the two legs standing post.

Each Servo which has a Physics node, will be pulled downwards by the action of
the simulated gravity force. Now if and how the robot should move depends on
many things.

> But in simulation, after i press run, the leg is just stay where it is,
nothing moved. what happen here?

I don't know how your robot model looks like, so it is difficult for me to tell
you if the Servo should move or not at this point ...

In principle it should move if the axis of the (now passive) Servo is not
exactly vertically aligned and if the centerOfMass (Physics) is slightly off the
axis. Note that by default the centerOfMass of the Physics is [0 0 0] and hence
the center of mass is placed exactly on the Servo's hinge axis, hence the torque
generated by the gravity is zero in this case, hence the Servo does not move. So
try maybe to move the centerOfMass slightly away from the Servo's axis.

> After that, i tried to understand and I noticed that the servo will be able to
rotate only when some part of robot touch ground, for example, when foot is
touching the flat floor and upper body of robot twists, then hip can rotate side
way automatically. (but not when foot is not touching the floor)
> Is this correct ?

Again because I don't know what your robot look like I cannot answer this
question. Maybe you can post a snapshot ?

> Are there any configuration so that the leg of robot can rotate by gravity?

Yes, like in a real mechanical system the gravity applies forces to each "body"
of the simulation. But each Servo needs to have a Physics for the gravity force
to be applied on it, otherwise it will be simulated in "kinmmatics" mode only,
in this case no gravity force is simulated with this particular Servo. Then as I
explained above, the centerOfMass needs to be moved away from the rotation axis,
as it would usually be in a real robot. So if modelled correctly every
configuration will simulate a passive rotation caused by gravity.

> And would "control_p" help about this? because I saw it said to control gain
of motor, just set the "control_p" , which i also tried by setting "control_p" =
0 but it also doesn't work.

No, the controlP parameter won't help you: it is only used in the position
control algorithm. It does not affect the how the torque is applied to the
joint. So you should leave this parameter to its default value.

If my explanation did not help you to solve the problem, you can send us a
"Support Ticket", using Webots Help menu.

Best regards,

Yvan





Thu Jul 9, 2009 8:01 am

yvanix
Offline Offline
Send Email Send Email

Forward
Message #3172 of 3400 |
Expand Messages Author Sort by Date

Hello, I am curious about how does servo really work... For example, if I have a robot lifting left leg to the front at initial state and in controller, I use...
di_second_yh
Offline Send Email
Jul 8, 2009
11:17 pm

Hello, ... Just like a real motor, the Servo works by applying a torque to a axis. Indeed, calling wb_servo_set_motor_force(joint[2], 0) turns off the motor...
Yvan Bourquin
yvanix
Offline Send Email
Jul 9, 2009
8:01 am

thanks a lot, it's very helpful, and make me realise the fact of center of mass. Cheers, di_second...
di_second_yh
Offline Send Email
Jul 11, 2009
12:09 am
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help