Legacy Forum: Preserving Nearly 20 Years of Community History - A Time Capsule of Discussions, Memories, and Shared Experiences.

Speed, Motion Speed, and Accel Time question

Bioloid robot kit from Korean company Robotis; CM5 controller block, AX12 servos..
8 postsPage 1 of 1
8 postsPage 1 of 1

Speed, Motion Speed, and Accel Time question

Post by tom_chang79 » Tue Mar 04, 2008 6:56 am

Post by tom_chang79
Tue Mar 04, 2008 6:56 am

I need help with adjusting the variables in the motion editor.

In the right pane of this GUI, what does the "Motion speed" and "Accel time" do? I read the user manual and it's quite cryptic on what the instructions meant. I know that the "speed" underneath each pose is the speed at which that pose is executed from its previous position, wherever it may be. But I don't understand the relationship of the "Motion speed" has to do with "Accel time." The instruction book says that "Motion speed" is the speed at which the page is executed. 32 is the default value for a blank page, and changing it to 64 makes the page move twice as fast.

I was going through all the pages of "forward walk" and "backward walk" motion page that exists in the default humanoid motion file. The values in the default humanoid motion file were:

Motion speed: 14
Accel time: 4

I changed the "Motion speed" of every page of the forward walk and backward walk by following the "next page" until ALL the associated pages were changed. The values I changed it to are:

Motion speed: 7
Accel time:4

Now, the forward walk and the backward walk are unusable. My bot just throws its knees up really fast and just freezes there. The speed at which the motion is played is much much faster then default and I noticed that not all the poses in the pages seems to be played.

What exactly is the relationship of the "speed" underneath each pose, the "motion speed" in the table on the right, and the "accel time" that is also in the table on the right?

:?:
I need help with adjusting the variables in the motion editor.

In the right pane of this GUI, what does the "Motion speed" and "Accel time" do? I read the user manual and it's quite cryptic on what the instructions meant. I know that the "speed" underneath each pose is the speed at which that pose is executed from its previous position, wherever it may be. But I don't understand the relationship of the "Motion speed" has to do with "Accel time." The instruction book says that "Motion speed" is the speed at which the page is executed. 32 is the default value for a blank page, and changing it to 64 makes the page move twice as fast.

I was going through all the pages of "forward walk" and "backward walk" motion page that exists in the default humanoid motion file. The values in the default humanoid motion file were:

Motion speed: 14
Accel time: 4

I changed the "Motion speed" of every page of the forward walk and backward walk by following the "next page" until ALL the associated pages were changed. The values I changed it to are:

Motion speed: 7
Accel time:4

Now, the forward walk and the backward walk are unusable. My bot just throws its knees up really fast and just freezes there. The speed at which the motion is played is much much faster then default and I noticed that not all the poses in the pages seems to be played.

What exactly is the relationship of the "speed" underneath each pose, the "motion speed" in the table on the right, and the "accel time" that is also in the table on the right?

:?:
tom_chang79
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 116
Joined: Sat Jan 12, 2008 2:31 am
Location: California

Post by lnielsen » Tue Mar 04, 2008 2:54 pm

Post by lnielsen
Tue Mar 04, 2008 2:54 pm

I don't have the full answer but I can get you started in the right direction...

Bioloid uses these values to compute their s-curve. Near the bottom of the following thread "Bullit" writes about how acceleration controls the rise time of the s-curve. http://forums.tribotix.info/forum1/76.html
I don't have the full answer but I can get you started in the right direction...

Bioloid uses these values to compute their s-curve. Near the bottom of the following thread "Bullit" writes about how acceleration controls the rise time of the s-curve. http://forums.tribotix.info/forum1/76.html
lnielsen
Robot Builder
Robot Builder
User avatar
Posts: 15
Joined: Thu Jan 18, 2007 1:00 am
Location: Arlington Heights, Illinois

Post by Bullit » Tue Mar 04, 2008 5:55 pm

Post by Bullit
Tue Mar 04, 2008 5:55 pm

In the bioloid firmware max velocity achieved between poses is the product of page speed and pose speed. There is a problem in the bioloid firmware when the product of page and pose speed exceeds the maximum servo speed. In this situation I think the pose is simply skipped. The bioloid firmware does updates to the servos at about 8ms so in the motion editor a pose delay of 1 = 8ms, 2 = 16ms, accel time of 1 = 8ms etc... So if you have a very small move from one pose to the next having a long accel time may limit the actual velocity achieved betwen poses. To address this you can reduce the accel time. With shorter accel / decel time, hence greater acceleration I would expect more jerk and overshoot from the system.

Another thing to keep in mind in the bioloid firmware is that a delay setting of 0 implies that there will be a 0 deceleration time to allow continuous motion from one pose to another.
Here is a reference to some old Robotis information about the motion 512 data structure. I believe its evolved a bit since this document was created.
In the bioloid firmware max velocity achieved between poses is the product of page speed and pose speed. There is a problem in the bioloid firmware when the product of page and pose speed exceeds the maximum servo speed. In this situation I think the pose is simply skipped. The bioloid firmware does updates to the servos at about 8ms so in the motion editor a pose delay of 1 = 8ms, 2 = 16ms, accel time of 1 = 8ms etc... So if you have a very small move from one pose to the next having a long accel time may limit the actual velocity achieved betwen poses. To address this you can reduce the accel time. With shorter accel / decel time, hence greater acceleration I would expect more jerk and overshoot from the system.

Another thing to keep in mind in the bioloid firmware is that a delay setting of 0 implies that there will be a 0 deceleration time to allow continuous motion from one pose to another.
Here is a reference to some old Robotis information about the motion 512 data structure. I believe its evolved a bit since this document was created.
Bullit
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 291
Joined: Wed May 31, 2006 1:00 am
Location: Near robot

Post by tom_chang79 » Wed Mar 05, 2008 7:02 am

Post by tom_chang79
Wed Mar 05, 2008 7:02 am

thanks Bullit. Strange thing though, I never touched the default value of the Accel Time (which is four in the default humanoid motion file that came with the software suite/cd), I thought reducing the Motion speed would actually make the walking gait slower. It ended up doing the opposite, it made the poses incomplete and made it jerk around faster then the normal 14/4 for the MotionSpeed/Accel Time setting.

I think the robot terminal section of the user's guide hints at the mathematics. On page 110 of the User's Guide:

Stopping Time = 7.8msec * Pause Time * 32 / Page Speed


Pose Performing Time = 7.8msec * Time * 32 / Page Speed


On Page 78:

Motion Speed Regulates the speed at which a page is played. The initial value...


Perhaps Motion Speed = Page Speed?

I'm going to fiddle around with the values some more to see if the two equations above matches what I'm seeing...
thanks Bullit. Strange thing though, I never touched the default value of the Accel Time (which is four in the default humanoid motion file that came with the software suite/cd), I thought reducing the Motion speed would actually make the walking gait slower. It ended up doing the opposite, it made the poses incomplete and made it jerk around faster then the normal 14/4 for the MotionSpeed/Accel Time setting.

I think the robot terminal section of the user's guide hints at the mathematics. On page 110 of the User's Guide:

Stopping Time = 7.8msec * Pause Time * 32 / Page Speed


Pose Performing Time = 7.8msec * Time * 32 / Page Speed


On Page 78:

Motion Speed Regulates the speed at which a page is played. The initial value...


Perhaps Motion Speed = Page Speed?

I'm going to fiddle around with the values some more to see if the two equations above matches what I'm seeing...
tom_chang79
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 116
Joined: Sat Jan 12, 2008 2:31 am
Location: California

Post by tom_chang79 » Mon Apr 14, 2008 4:10 pm

Post by tom_chang79
Mon Apr 14, 2008 4:10 pm

Lately, I've been using the Robot Terminal to edit some of my motion pages. Yesterday, I've edited the speed of an individual pose across many pages. The results were far from pleasing. My bot looked like it was having some seizures... I'm still struggling to understand the relationship of these parameters:

1) SPEED of an INDIVIDUAL pose (in Robot Terminal, STP1, STP2, ...,)

2) TIME of an INDIVIDUAL pose (in Robot Terminal, STP1, STP2, ...,)

3) Accel Time of the PAGE

4) Speed of the PAGE

All I did yesterday, was change the speed of the various motions on all the related pages of the walking from the default value of "10" to "05" which I thought would halve the speed of the overall gait. My bot looked like it was struggling to go to position, like it was having some seizures.

I've left a few of the motion pages untouched, and left the individual poses to be the default speed of "10" to see the comparison of the motion between the different pages.

Does anyone know of the relationship between these parameters? I've posted the individual effect of these parameters on the last post, but I fail to understand the interaction between them and which parameters get priority over which ones...
Lately, I've been using the Robot Terminal to edit some of my motion pages. Yesterday, I've edited the speed of an individual pose across many pages. The results were far from pleasing. My bot looked like it was having some seizures... I'm still struggling to understand the relationship of these parameters:

1) SPEED of an INDIVIDUAL pose (in Robot Terminal, STP1, STP2, ...,)

2) TIME of an INDIVIDUAL pose (in Robot Terminal, STP1, STP2, ...,)

3) Accel Time of the PAGE

4) Speed of the PAGE

All I did yesterday, was change the speed of the various motions on all the related pages of the walking from the default value of "10" to "05" which I thought would halve the speed of the overall gait. My bot looked like it was struggling to go to position, like it was having some seizures.

I've left a few of the motion pages untouched, and left the individual poses to be the default speed of "10" to see the comparison of the motion between the different pages.

Does anyone know of the relationship between these parameters? I've posted the individual effect of these parameters on the last post, but I fail to understand the interaction between them and which parameters get priority over which ones...
tom_chang79
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 116
Joined: Sat Jan 12, 2008 2:31 am
Location: California

Post by lnielsen » Wed Apr 16, 2008 2:14 pm

Post by lnielsen
Wed Apr 16, 2008 2:14 pm

Tom,

I would suggest using a packet capture tool to see what the controller is sending before and after your changes. I would think you could use one of the USB to Bioloid bus adapters to snoop the communications with a PC and log it to a file. I plan on doing this with my propeller prototype board soon. There is already a working bus and a SD memory card object for this board.
Tom,

I would suggest using a packet capture tool to see what the controller is sending before and after your changes. I would think you could use one of the USB to Bioloid bus adapters to snoop the communications with a PC and log it to a file. I plan on doing this with my propeller prototype board soon. There is already a working bus and a SD memory card object for this board.
lnielsen
Robot Builder
Robot Builder
User avatar
Posts: 15
Joined: Thu Jan 18, 2007 1:00 am
Location: Arlington Heights, Illinois

Post by Bullit » Wed Apr 16, 2008 4:48 pm

Post by Bullit
Wed Apr 16, 2008 4:48 pm

lnielson, when I got started thats almost exactly what I did. I used hhdsoftware's free serial port monitor and an ftdi board wired to connect to the dynamixel bus and I snooped what the bioloid firmware sent down to the dynamixels while playing a page or from one pose to the next. I recorded some traces at different settings, wrote macros in Excel to take them apart and generate graphs in Excel. I learned a tremendous amount from this. I would highly encourange / recommend this exercise.
lnielson, when I got started thats almost exactly what I did. I used hhdsoftware's free serial port monitor and an ftdi board wired to connect to the dynamixel bus and I snooped what the bioloid firmware sent down to the dynamixels while playing a page or from one pose to the next. I recorded some traces at different settings, wrote macros in Excel to take them apart and generate graphs in Excel. I learned a tremendous amount from this. I would highly encourange / recommend this exercise.
Bullit
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 291
Joined: Wed May 31, 2006 1:00 am
Location: Near robot

Post by trey3670 » Wed Apr 16, 2008 6:55 pm

Post by trey3670
Wed Apr 16, 2008 6:55 pm

so can you change the speed of the servos while executing a pose? this confusing me also.
so can you change the speed of the servos while executing a pose? this confusing me also.
trey3670
Savvy Roboteer
Savvy Roboteer
Posts: 115
Joined: Mon Dec 24, 2007 1:03 am


8 postsPage 1 of 1
8 postsPage 1 of 1