S-Curve Calculation

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
44 postsPage 2 of 31, 2, 3
44 postsPage 2 of 31, 2, 3

Post by cosa » Mon May 26, 2008 11:08 pm

Post by cosa
Mon May 26, 2008 11:08 pm

Did you make it go backwawrd with the same technique used?

Yes, it works but you have to change two parameters (I think it can't be avoided because the original algorithm is used on a (front-back) symmetrical robot what the bioloid is not).
Did you make it go backwawrd with the same technique used?

Yes, it works but you have to change two parameters (I think it can't be avoided because the original algorithm is used on a (front-back) symmetrical robot what the bioloid is not).
cosa offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 40
Joined: Mon Dec 04, 2006 1:00 am

Post by mic2 » Sun Jun 29, 2008 5:29 pm

Post by mic2
Sun Jun 29, 2008 5:29 pm

cosa wrote:Here's the video:
Bioloid Omnidirectional Walking:
1. 6 steps forward (1x speed)
2. 8 steps forward and left (1x speed)
3. 20 steps forward and left (0.5x speed, same curve radius)
4. 6 steps forward (1x speed)


Cosa,
That’s very impressive! Foot off the ground one by one gives very clean walking finishing. It is a kind of walking style I have been looking for a long, is there any chance you could share these walking motion sequences files so that I could somehow translate it into Bioloid Motion file?
I’ve also seen your web, what is the purpose by having the hip servos 7 and 8 to be inverted? to make it walk better?
Cheers
Mic.
cosa wrote:Here's the video:
Bioloid Omnidirectional Walking:
1. 6 steps forward (1x speed)
2. 8 steps forward and left (1x speed)
3. 20 steps forward and left (0.5x speed, same curve radius)
4. 6 steps forward (1x speed)


Cosa,
That’s very impressive! Foot off the ground one by one gives very clean walking finishing. It is a kind of walking style I have been looking for a long, is there any chance you could share these walking motion sequences files so that I could somehow translate it into Bioloid Motion file?
I’ve also seen your web, what is the purpose by having the hip servos 7 and 8 to be inverted? to make it walk better?
Cheers
Mic.
mic2 offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 85
Joined: Thu Mar 01, 2007 6:52 pm

Post by cosa » Mon Jun 30, 2008 8:25 pm

Post by cosa
Mon Jun 30, 2008 8:25 pm

It is a kind of walking style I have been looking for a long, is there any chance you could share these walking motion sequences files so that I could somehow translate it into Bioloid Motion file?

I think you'll have to tweak a few parameters or the joint values to make it work on your robot. If you want to tweak the parameters the best thing would be to use my program and generate the mtn file automatically (which is not in the repository right now but sth I've done before) or I can give you some example files and you tweak it on the joint angle level.

Another possibility is that I give you the motions in my format (better readable):
Code: Select all
<xml>
<MotionSequence>
    <Frame>
        <AX1>89.941406</AX1>
        <AX2>-89.648438</AX2>
        <AX3>64.746094</AX3>
        <AX4>-64.453125</AX4>
        <AX5>39.550781</AX5>
        <AX6>-39.550781</AX6>
        <AX7>-0.585938</AX7>
        <AX8>0.292969</AX8>
        <AX9>4.101563</AX9>
        <AX10>-4.101563</AX10>
        <AX11>7.031250</AX11>
        <AX12>-5.566406</AX12>
        <AX13>15.820313</AX13>
        <AX14>-16.699219</AX14>
        <AX15>-12.890625</AX15>
        <AX16>12.304688</AX16>
        <AX17>5.859375</AX17>
        <AX18>-6.152344</AX18>
    </Frame>
</MotionSequence>



I’ve also seen your web, what is the purpose by having the hip servos 7 and 8 to be inverted? to make it walk better?

In this configuration the axes of the three servos in the hip of each leg intersect at exactly one point so you can treat the 3 joints as one spherical joint which is imho a more common and natural configuration and (important for my 3 months work) it was easier for me to solve the inverse kinematics. ;)
It is a kind of walking style I have been looking for a long, is there any chance you could share these walking motion sequences files so that I could somehow translate it into Bioloid Motion file?

I think you'll have to tweak a few parameters or the joint values to make it work on your robot. If you want to tweak the parameters the best thing would be to use my program and generate the mtn file automatically (which is not in the repository right now but sth I've done before) or I can give you some example files and you tweak it on the joint angle level.

Another possibility is that I give you the motions in my format (better readable):
Code: Select all
<xml>
<MotionSequence>
    <Frame>
        <AX1>89.941406</AX1>
        <AX2>-89.648438</AX2>
        <AX3>64.746094</AX3>
        <AX4>-64.453125</AX4>
        <AX5>39.550781</AX5>
        <AX6>-39.550781</AX6>
        <AX7>-0.585938</AX7>
        <AX8>0.292969</AX8>
        <AX9>4.101563</AX9>
        <AX10>-4.101563</AX10>
        <AX11>7.031250</AX11>
        <AX12>-5.566406</AX12>
        <AX13>15.820313</AX13>
        <AX14>-16.699219</AX14>
        <AX15>-12.890625</AX15>
        <AX16>12.304688</AX16>
        <AX17>5.859375</AX17>
        <AX18>-6.152344</AX18>
    </Frame>
</MotionSequence>



I’ve also seen your web, what is the purpose by having the hip servos 7 and 8 to be inverted? to make it walk better?

In this configuration the axes of the three servos in the hip of each leg intersect at exactly one point so you can treat the 3 joints as one spherical joint which is imho a more common and natural configuration and (important for my 3 months work) it was easier for me to solve the inverse kinematics. ;)
cosa offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 40
Joined: Mon Dec 04, 2006 1:00 am

Post by mic2 » Mon Jun 30, 2008 9:06 pm

Post by mic2
Mon Jun 30, 2008 9:06 pm

Code: Select all
<xml>
<MotionSequence>
    <Frame>
        <AX1>89.941406</AX1>
        <AX2>-89.648438</AX2>
        <AX3>64.746094</AX3>
        <AX4>-64.453125</AX4>
        <AX5>39.550781</AX5>
        <AX6>-39.550781</AX6>
        <AX7>-0.585938</AX7>
        <AX8>0.292969</AX8>
        <AX9>4.101563</AX9>
        <AX10>-4.101563</AX10>
        <AX11>7.031250</AX11>
        <AX12>-5.566406</AX12>
        <AX13>15.820313</AX13>
        <AX14>-16.699219</AX14>
        <AX15>-12.890625</AX15>
        <AX16>12.304688</AX16>
        <AX17>5.859375</AX17>
        <AX18>-6.152344</AX18>
    </Frame>
</MotionSequence>

Is this form the human_walk.xml ? The AX-12 range form "0", "512"(Center)and "1024", what is the range in your format?


I can give you some example files and you tweak it on the joint angle level.

Yes, please.

I’ve also tried your program but currently stuck with the load parameters problem, the parameters.txt not exist in your zip file?
Code: Select all
<xml>
<MotionSequence>
    <Frame>
        <AX1>89.941406</AX1>
        <AX2>-89.648438</AX2>
        <AX3>64.746094</AX3>
        <AX4>-64.453125</AX4>
        <AX5>39.550781</AX5>
        <AX6>-39.550781</AX6>
        <AX7>-0.585938</AX7>
        <AX8>0.292969</AX8>
        <AX9>4.101563</AX9>
        <AX10>-4.101563</AX10>
        <AX11>7.031250</AX11>
        <AX12>-5.566406</AX12>
        <AX13>15.820313</AX13>
        <AX14>-16.699219</AX14>
        <AX15>-12.890625</AX15>
        <AX16>12.304688</AX16>
        <AX17>5.859375</AX17>
        <AX18>-6.152344</AX18>
    </Frame>
</MotionSequence>

Is this form the human_walk.xml ? The AX-12 range form "0", "512"(Center)and "1024", what is the range in your format?


I can give you some example files and you tweak it on the joint angle level.

Yes, please.

I’ve also tried your program but currently stuck with the load parameters problem, the parameters.txt not exist in your zip file?
mic2 offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 85
Joined: Thu Mar 01, 2007 6:52 pm

Post by cosa » Thu Jul 03, 2008 10:49 pm

Post by cosa
Thu Jul 03, 2008 10:49 pm

Hi,

sorry for my late reply.

Is this form the human_walk.xml ? The AX-12 range form "0", "512"(Center)and "1024", what is the range in your format?

It's one keyframe of an arm swinging motion. My angle values are in degrees, -150° .. 150°. You get a 10bit ax12 value by using: 512.0 - angle * 512.0 / 150.0 + 0.5;

I’ve also tried your program but currently stuck with the load parameters problem, the parameters.txt not exist in your zip file?

The parameters.txt will be created the first time you exit the program with 'quit'. It shouldn't be labelled as an error message. I've fixed this a few days/a week ago but can't create a new release zip file because I don't have access to a windows pc at the moment.
Please use the code from the svn repository http://sourceforge.net/svn/?group_id=225495 . If you're using windows, try http://tortoisesvn.tigris.org/ .

I've made you a motion file for testing, it might be possible that a few joint values in the legs have to be inverted..

File: http://robosavvy.com/Builders/cosa/walking.zip
(small,big = rotation angle, 1,5=steps).

If you want it in another format/values inverted, etc. just tell me.
Hi,

sorry for my late reply.

Is this form the human_walk.xml ? The AX-12 range form "0", "512"(Center)and "1024", what is the range in your format?

It's one keyframe of an arm swinging motion. My angle values are in degrees, -150° .. 150°. You get a 10bit ax12 value by using: 512.0 - angle * 512.0 / 150.0 + 0.5;

I’ve also tried your program but currently stuck with the load parameters problem, the parameters.txt not exist in your zip file?

The parameters.txt will be created the first time you exit the program with 'quit'. It shouldn't be labelled as an error message. I've fixed this a few days/a week ago but can't create a new release zip file because I don't have access to a windows pc at the moment.
Please use the code from the svn repository http://sourceforge.net/svn/?group_id=225495 . If you're using windows, try http://tortoisesvn.tigris.org/ .

I've made you a motion file for testing, it might be possible that a few joint values in the legs have to be inverted..

File: http://robosavvy.com/Builders/cosa/walking.zip
(small,big = rotation angle, 1,5=steps).

If you want it in another format/values inverted, etc. just tell me.
cosa offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 40
Joined: Mon Dec 04, 2006 1:00 am

Post by mic2 » Sat Jul 05, 2008 8:54 pm

Post by mic2
Sat Jul 05, 2008 8:54 pm

Thanks very much cosa! I should be able to make a start from this point. :idea: :D
Thanks very much cosa! I should be able to make a start from this point. :idea: :D
mic2 offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 85
Joined: Thu Mar 01, 2007 6:52 pm

Post by cosa » Sat Jul 05, 2008 10:33 pm

Post by cosa
Sat Jul 05, 2008 10:33 pm

No problem. I haven't changed the walking algorithm since I've made the video so you shouldn't expect better results (without changes from your side :) ).

The motions work for me with a time delay of 80ms between two frames (one frame = one set of joint angles). If you need the data sampled at another rate (I don't know what the Motion Editor supports) please tell me. It's no big deal to change the sample rate.
No problem. I haven't changed the walking algorithm since I've made the video so you shouldn't expect better results (without changes from your side :) ).

The motions work for me with a time delay of 80ms between two frames (one frame = one set of joint angles). If you need the data sampled at another rate (I don't know what the Motion Editor supports) please tell me. It's no big deal to change the sample rate.
cosa offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 40
Joined: Mon Dec 04, 2006 1:00 am

Post by mic2 » Sun Jul 06, 2008 7:22 pm

Post by mic2
Sun Jul 06, 2008 7:22 pm

cosa wrote:The motions work for me with a time delay of 80ms between two frames (one frame = one set of joint angles). If you need the data sampled at another rate (I don't know what the Motion Editor supports) please tell me. It's no big deal to change the sample rate.


For the Motion Editor & Robot Terminal it works fine for me between 9600 to 57600, but I don’t see a big deal by changing the sample rate. Because there is always some delay anyway. :wink:
cosa wrote:The motions work for me with a time delay of 80ms between two frames (one frame = one set of joint angles). If you need the data sampled at another rate (I don't know what the Motion Editor supports) please tell me. It's no big deal to change the sample rate.


For the Motion Editor & Robot Terminal it works fine for me between 9600 to 57600, but I don’t see a big deal by changing the sample rate. Because there is always some delay anyway. :wink:
mic2 offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 85
Joined: Thu Mar 01, 2007 6:52 pm

Post by mic2 » Tue Jul 08, 2008 6:39 am

Post by mic2
Tue Jul 08, 2008 6:39 am

cosa,

I’ve done the fist forward1 translation into my motion file, but sill not as stable as compare to your video, may need some more re-adjustment on each servo.

My question is how you made up these walking algorithms form the first place? Did you just modify from the original motion file? or start from scratch by hand?
cosa,

I’ve done the fist forward1 translation into my motion file, but sill not as stable as compare to your video, may need some more re-adjustment on each servo.

My question is how you made up these walking algorithms form the first place? Did you just modify from the original motion file? or start from scratch by hand?
mic2 offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 85
Joined: Thu Mar 01, 2007 6:52 pm

Post by cosa » Wed Jul 09, 2008 11:13 am

Post by cosa
Wed Jul 09, 2008 11:13 am

Oh, I thought this would be clear from my post on the first page of the thread. I'm using the algorithm mentioned in "Online Trajectory Generation for Omnidirectional Biped Walking" http://www.informatik.uni-freiburg.de/~ ... cra06.html (with a few modifications since bioloid and the robot mentioned in the paper are a bit different) to generate the joint values for the legs.
The algorithm has ~40 parameters so you can adjust it easily to your needs.

If you dont want to use bioloid control to control your robot you can use it without a robot to generate the walking gaits (and tune the parameters of the algorithm which should be much easier than adjusting the joint angles).
Oh, I thought this would be clear from my post on the first page of the thread. I'm using the algorithm mentioned in "Online Trajectory Generation for Omnidirectional Biped Walking" http://www.informatik.uni-freiburg.de/~ ... cra06.html (with a few modifications since bioloid and the robot mentioned in the paper are a bit different) to generate the joint values for the legs.
The algorithm has ~40 parameters so you can adjust it easily to your needs.

If you dont want to use bioloid control to control your robot you can use it without a robot to generate the walking gaits (and tune the parameters of the algorithm which should be much easier than adjusting the joint angles).
cosa offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 40
Joined: Mon Dec 04, 2006 1:00 am

Post by mic2 » Sat Jul 12, 2008 5:12 am

Post by mic2
Sat Jul 12, 2008 5:12 am

cosa wrote:
If you dont want to use bioloid control to control your robot you can use it without a robot to generate the walking gaits (and tune the parameters of the algorithm which should be much easier than adjusting the joint angles).


Thanks for reply cosa, I’ve been working on your bioloid control for the last few days but don’t seen I get a hang on it. I am not a good programmer so I think it would be best if you could show me some step- by-step examples on how to generate some walking gaits, tune parameters etc. Many Thanks.
cosa wrote:
If you dont want to use bioloid control to control your robot you can use it without a robot to generate the walking gaits (and tune the parameters of the algorithm which should be much easier than adjusting the joint angles).


Thanks for reply cosa, I’ve been working on your bioloid control for the last few days but don’t seen I get a hang on it. I am not a good programmer so I think it would be best if you could show me some step- by-step examples on how to generate some walking gaits, tune parameters etc. Many Thanks.
mic2 offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 85
Joined: Thu Mar 01, 2007 6:52 pm

Post by cosa » Sat Jul 12, 2008 10:20 pm

Post by cosa
Sat Jul 12, 2008 10:20 pm

Thanks for reply cosa, I’ve been working on your bioloid control for the last few days but don’t seen I get a hang on it. I am not a good programmer so I think it would be best if you could show me some step- by-step examples on how to generate some walking gaits, tune parameters etc. Many Thanks.


This is how you generate walking gaits:
0. Get the newest version (http://sourceforge.net/project/showfile ... _id=225495)
1. Start the viewer.exe and bioloid.exe (you don't have to connect your robot)
# in the bioloid.exe terminal:
2. Type 'setparam' (without the ''), you'll see 200 parameters in the format id: value
3. To change the value of the parameter with id x to the value y use 'setparam x y', f.e. 'setparam 0 0.5' will change the first parameter to 0.5
4. Type 'test 0.05 5 0 0.1 0' to generate a walking gait. The first parameter is the forward/backward speed (examples: 0.06, 0.02), the second is the number of steps / 2, the third is the left/right speed (sidesteps, examples: 0.001, 0.005), the fourth parameter is the rotational speed (curves, examples: 0.2, 0.1, 0.05) and the fifth parameter is the storage number for the walking gait. If you don't supply a storage number the motion will be stored in 0 and played automatically (with interpolation type 13 = linear interpolation in joint space without collision checking and without generation of transition motions. You shouldn't use this with the real robot but it's good to test motions).
5. Play the gait in the visualizer with 'play 0 80 0' (see help, the first parameter is the storage number)
6. If you type 's 0 datei' the motion will be stored in a file named datei.xml in main/motions.

To understand what the parameters do you'll have to read the code and have a look at the paper http://www.informatik.uni-freiburg.de/~ ... cra06.html

The code is very dirty at the moment: You'll find it in main/src/test.cpp. The main function is calcAngles. The parameters (see setparam) can be used via global.parameters[id] (global.parameters[0] is the value of the first parameter). The function will be called for left arm and left leg and right arm and right leg separately (take a look at void CTest::humanoidWalk(float* params, int paramcount)). The calculated joint values will be stored in angles[]. angles[0..5] is the leg starting at the first hip joint ending with the foot tilt joint, angles[6..8] is the arm starting at the first shoulder joint.

calcAngles:
Most of the code (especially the first part) is a direct translation of the algorithm mentioned in the paper. For example the vector aRobot is a_Robot in the paper, so aRobot.y is a_Robot^y.
I've added a few extra parameters to change a bunch of parameters at once.

There's interesting stuff at the end of the algorithm, where the angles[] are calculated. These are tweaks to adapt the kinematic structure used in the paper to the bioloid kinematic structure.

Some interesting parameters (I can remember):
3: determines how far the leg swings away from the center position during swinging
9: modifies the leg shortening during swinging
31: max. shortening length of the leg (in %)
32: leg length (in %)
58: max roll angle of the foot during swinging (if the foot rolls too much it will touch the ground)
56,57: extra pitch angle for the foot during swinging (to lift the heel)
33: global extra pitch angle for the hip (to keep balance)
34: global extra pitch angle for the foot (to keep balance)

Have fun. Please share your results with us and ask if you have any questions.
Thanks for reply cosa, I’ve been working on your bioloid control for the last few days but don’t seen I get a hang on it. I am not a good programmer so I think it would be best if you could show me some step- by-step examples on how to generate some walking gaits, tune parameters etc. Many Thanks.


This is how you generate walking gaits:
0. Get the newest version (http://sourceforge.net/project/showfile ... _id=225495)
1. Start the viewer.exe and bioloid.exe (you don't have to connect your robot)
# in the bioloid.exe terminal:
2. Type 'setparam' (without the ''), you'll see 200 parameters in the format id: value
3. To change the value of the parameter with id x to the value y use 'setparam x y', f.e. 'setparam 0 0.5' will change the first parameter to 0.5
4. Type 'test 0.05 5 0 0.1 0' to generate a walking gait. The first parameter is the forward/backward speed (examples: 0.06, 0.02), the second is the number of steps / 2, the third is the left/right speed (sidesteps, examples: 0.001, 0.005), the fourth parameter is the rotational speed (curves, examples: 0.2, 0.1, 0.05) and the fifth parameter is the storage number for the walking gait. If you don't supply a storage number the motion will be stored in 0 and played automatically (with interpolation type 13 = linear interpolation in joint space without collision checking and without generation of transition motions. You shouldn't use this with the real robot but it's good to test motions).
5. Play the gait in the visualizer with 'play 0 80 0' (see help, the first parameter is the storage number)
6. If you type 's 0 datei' the motion will be stored in a file named datei.xml in main/motions.

To understand what the parameters do you'll have to read the code and have a look at the paper http://www.informatik.uni-freiburg.de/~ ... cra06.html

The code is very dirty at the moment: You'll find it in main/src/test.cpp. The main function is calcAngles. The parameters (see setparam) can be used via global.parameters[id] (global.parameters[0] is the value of the first parameter). The function will be called for left arm and left leg and right arm and right leg separately (take a look at void CTest::humanoidWalk(float* params, int paramcount)). The calculated joint values will be stored in angles[]. angles[0..5] is the leg starting at the first hip joint ending with the foot tilt joint, angles[6..8] is the arm starting at the first shoulder joint.

calcAngles:
Most of the code (especially the first part) is a direct translation of the algorithm mentioned in the paper. For example the vector aRobot is a_Robot in the paper, so aRobot.y is a_Robot^y.
I've added a few extra parameters to change a bunch of parameters at once.

There's interesting stuff at the end of the algorithm, where the angles[] are calculated. These are tweaks to adapt the kinematic structure used in the paper to the bioloid kinematic structure.

Some interesting parameters (I can remember):
3: determines how far the leg swings away from the center position during swinging
9: modifies the leg shortening during swinging
31: max. shortening length of the leg (in %)
32: leg length (in %)
58: max roll angle of the foot during swinging (if the foot rolls too much it will touch the ground)
56,57: extra pitch angle for the foot during swinging (to lift the heel)
33: global extra pitch angle for the hip (to keep balance)
34: global extra pitch angle for the foot (to keep balance)

Have fun. Please share your results with us and ask if you have any questions.
cosa offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 40
Joined: Mon Dec 04, 2006 1:00 am

Post by brijesh » Tue Sep 02, 2008 8:14 pm

Post by brijesh
Tue Sep 02, 2008 8:14 pm

Hello,

Been trying to understand discussion in this thread and other threads involving trajectory calculation and control. I think I am missing some background information because of which I am unable to get a clear picture.

Here is my understanding so far.

1) To perform a certain leg motion one would do fancy math and figure out that
a) Servo 1 has to move from angle x1 to y1.
b) Servo 2 has to move from angle x2 to y2.
etc...

To get smooth motion and to follow a particular trajectory one would compute intermediate points and servo angles. So that all the servos can be programmed to move synchronously follow a particular trajectory.

Question how do you excute the motion?
1) Do you just load the points one after the other at constant rate?
Do you send any other parameter other than Goal Position at each intermediate points to the AX-12?

Thanks
Hello,

Been trying to understand discussion in this thread and other threads involving trajectory calculation and control. I think I am missing some background information because of which I am unable to get a clear picture.

Here is my understanding so far.

1) To perform a certain leg motion one would do fancy math and figure out that
a) Servo 1 has to move from angle x1 to y1.
b) Servo 2 has to move from angle x2 to y2.
etc...

To get smooth motion and to follow a particular trajectory one would compute intermediate points and servo angles. So that all the servos can be programmed to move synchronously follow a particular trajectory.

Question how do you excute the motion?
1) Do you just load the points one after the other at constant rate?
Do you send any other parameter other than Goal Position at each intermediate points to the AX-12?

Thanks
brijesh offline
Newbie
Newbie
Posts: 4
Joined: Tue Sep 02, 2008 7:51 pm

Post by cosa » Thu Sep 11, 2008 10:59 am

Post by cosa
Thu Sep 11, 2008 10:59 am

brijesh wrote:1) To perform a certain leg motion one would do fancy math and figure out that
a) Servo 1 has to move from angle x1 to y1.
b) Servo 2 has to move from angle x2 to y2.
etc...

To get smooth motion and to follow a particular trajectory one would compute intermediate points and servo angles. So that all the servos can be programmed to move synchronously follow a particular trajectory.

Yes, but you have to remember that there are various ways of generating a trajectory: joint space/cartesian space, with/without dynamic constraints for the tcp, do (not) consider the dynamic properties of each joint and so on.
Additionally: there are different ways/types of synchronous motion, f.e. same execution time, same acceleration time, ...
brijesh wrote:Question how do you excute the motion?
1) Do you just load the points one after the other at constant rate?

Yes, I've never done it otherwise but I'm not really experienced in this (although I cant think of a reason why this should be bad). According to bullit, robotis sends data at a rate of 125hz.
If you want a smooth and correct motion you have to consider the dynamic properties of each joint servo and the whole body (dynamics model) when generating the trajectories.
brijesh wrote:Do you send any other parameter other than Goal Position at each intermediate points to the AX-12?

The ax12 firmware doesn't offer much control possibilities. According to bullit robotis sets the max torque to 1023 and max speed to 0 when executing a motion so they don't control torque and speed. The speed settings in the motion editor are only used to calculate the parameters of the s-curve calculation.
In general, you could use other control mechanism and calculate the torque values of each servo directly (based on a dynamics model of the servos and the whole robot).
brijesh wrote:1) To perform a certain leg motion one would do fancy math and figure out that
a) Servo 1 has to move from angle x1 to y1.
b) Servo 2 has to move from angle x2 to y2.
etc...

To get smooth motion and to follow a particular trajectory one would compute intermediate points and servo angles. So that all the servos can be programmed to move synchronously follow a particular trajectory.

Yes, but you have to remember that there are various ways of generating a trajectory: joint space/cartesian space, with/without dynamic constraints for the tcp, do (not) consider the dynamic properties of each joint and so on.
Additionally: there are different ways/types of synchronous motion, f.e. same execution time, same acceleration time, ...
brijesh wrote:Question how do you excute the motion?
1) Do you just load the points one after the other at constant rate?

Yes, I've never done it otherwise but I'm not really experienced in this (although I cant think of a reason why this should be bad). According to bullit, robotis sends data at a rate of 125hz.
If you want a smooth and correct motion you have to consider the dynamic properties of each joint servo and the whole body (dynamics model) when generating the trajectories.
brijesh wrote:Do you send any other parameter other than Goal Position at each intermediate points to the AX-12?

The ax12 firmware doesn't offer much control possibilities. According to bullit robotis sets the max torque to 1023 and max speed to 0 when executing a motion so they don't control torque and speed. The speed settings in the motion editor are only used to calculate the parameters of the s-curve calculation.
In general, you could use other control mechanism and calculate the torque values of each servo directly (based on a dynamics model of the servos and the whole robot).
cosa offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 40
Joined: Mon Dec 04, 2006 1:00 am

Post by Stephanie » Fri Jan 02, 2009 4:04 pm

Post by Stephanie
Fri Jan 02, 2009 4:04 pm

Hello everyone,

I am a newbie.. and wanted to apply s curve through my own program.. I have to write motion control program for ex-106 and rx-64 and for applying the s-curves, i need the values for maximum speed and maximum acceleration at different voltages and i am clueless as to where to find them.. If anybody could help????

Thanks in advance

Cheers
Steph
Hello everyone,

I am a newbie.. and wanted to apply s curve through my own program.. I have to write motion control program for ex-106 and rx-64 and for applying the s-curves, i need the values for maximum speed and maximum acceleration at different voltages and i am clueless as to where to find them.. If anybody could help????

Thanks in advance

Cheers
Steph
Stephanie offline
Newbie
Newbie
Posts: 3
Joined: Sat Nov 15, 2008 6:40 am

PreviousNext
PreviousNext
44 postsPage 2 of 31, 2, 3
44 postsPage 2 of 31, 2, 3
cron