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

synchro servo move

Hitec robotics including ROBONOVA humanoid, HSR-8498HB servos, MR C-3024 Controllers and RoboBasic
16 postsPage 1 of 21, 2
16 postsPage 1 of 21, 2

synchro servo move

Post by PeterQ » Fri Mar 14, 2008 12:55 pm

Post by PeterQ
Fri Mar 14, 2008 12:55 pm

Hi
can anyone help my with command EB which should write synchronous servo positions. It works only if I write it without second byte which control PTP on or off and then servos didn't stop at the same time.
this didn't works "EB 01 07 08 64 64"
this works "EB 07 08 64 64" but servos didn't stop at the same time.

Thanks
Hi
can anyone help my with command EB which should write synchronous servo positions. It works only if I write it without second byte which control PTP on or off and then servos didn't stop at the same time.
this didn't works "EB 01 07 08 64 64"
this works "EB 07 08 64 64" but servos didn't stop at the same time.

Thanks
PeterQ
Robot Builder
Robot Builder
User avatar
Posts: 12
Joined: Thu Mar 06, 2008 4:21 pm
Location: Martin, SLOVAKIA

Post by i-Bot » Fri Mar 14, 2008 1:21 pm

Post by i-Bot
Fri Mar 14, 2008 1:21 pm

I need to check the C3024 code on this one.

Did you try setting PTP mode in the seperate command ?
I need to check the C3024 code on this one.

Did you try setting PTP mode in the seperate command ?
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by PeterQ » Fri Mar 14, 2008 2:28 pm

Post by PeterQ
Fri Mar 14, 2008 2:28 pm

but i didn't find command for PTP setting in this pdf
http://web.ukonline.co.uk/r.ibbotson/fi ... Serial.pdf
but i didn't find command for PTP setting in this pdf
http://web.ukonline.co.uk/r.ibbotson/fi ... Serial.pdf
PeterQ
Robot Builder
Robot Builder
User avatar
Posts: 12
Joined: Thu Mar 06, 2008 4:21 pm
Location: Martin, SLOVAKIA

Post by i-Bot » Fri Mar 14, 2008 4:39 pm

Post by i-Bot
Fri Mar 14, 2008 4:39 pm

Sorry, it is command B1, followed by 0 or 1 to set or clear . This is PTP ALL.

I will check the EB command this weekend.
Sorry, it is command B1, followed by 0 or 1 to set or clear . This is PTP ALL.

I will check the EB command this weekend.
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by i-Bot » Fri Mar 14, 2008 4:56 pm

Post by i-Bot
Fri Mar 14, 2008 4:56 pm

I took a quick look, and the B1 is PTP, not PTP ALL, but should work for you.

The correct format of command EB is:

Byte1 = EB
Byte 2 = first servo
Byte3 = count of following servos
Byte4.. = positions

So I think you should have
EB 07 02 64 64
I took a quick look, and the B1 is PTP, not PTP ALL, but should work for you.

The correct format of command EB is:

Byte1 = EB
Byte 2 = first servo
Byte3 = count of following servos
Byte4.. = positions

So I think you should have
EB 07 02 64 64
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by PeterQ » Sat Mar 15, 2008 1:39 pm

Post by PeterQ
Sat Mar 15, 2008 1:39 pm

so i tried B1 but I don't know hot to write it
I tried B1 01 at id didn't work.
command EB is working. only problem is PTP
what is second bit in B1? how to write it for all servo?
so i tried B1 but I don't know hot to write it
I tried B1 01 at id didn't work.
command EB is working. only problem is PTP
what is second bit in B1? how to write it for all servo?
PeterQ
Robot Builder
Robot Builder
User avatar
Posts: 12
Joined: Thu Mar 06, 2008 4:21 pm
Location: Martin, SLOVAKIA

Post by i-Bot » Sat Mar 15, 2008 3:45 pm

Post by i-Bot
Sat Mar 15, 2008 3:45 pm

B1 should be zero for PTP Off and non zero for PTP on.

For command EB the PTP should work over the range of servos specified, so if you do, EB 00 18 xx .. .. .. this should make them work in PTP. Use a 00 for any servo you do not want to change, and it will not be included in the PTP.

Make sure you give time for the move to complete before the next move. There is no automatic wait, like in Robobasic. The B0 command returns 0 or FF depending if the PTP move is complete.
B1 should be zero for PTP Off and non zero for PTP on.

For command EB the PTP should work over the range of servos specified, so if you do, EB 00 18 xx .. .. .. this should make them work in PTP. Use a 00 for any servo you do not want to change, and it will not be included in the PTP.

Make sure you give time for the move to complete before the next move. There is no automatic wait, like in Robobasic. The B0 command returns 0 or FF depending if the PTP move is complete.
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by PeterQ » Sun Mar 16, 2008 11:58 am

Post by PeterQ
Sun Mar 16, 2008 11:58 am

tahnks a lot it works....
now I'm able to control robonova by matlab
tahnks a lot it works....
now I'm able to control robonova by matlab
PeterQ
Robot Builder
Robot Builder
User avatar
Posts: 12
Joined: Thu Mar 06, 2008 4:21 pm
Location: Martin, SLOVAKIA

Post by i-Bot » Sun Mar 16, 2008 12:56 pm

Post by i-Bot
Sun Mar 16, 2008 12:56 pm

I am pleased to hear you are working now.

Please share some of your results with Matlab nere on the forum.

If you found any more errors in my document, let me know, so I can make some updates.

How do you find the performance ? The limits of 9600 and the bit echo, are they a problem ? I found that with a USB-Serial adapter it was very slow. It is possible to increase the baud rate to 115K, but you will still have to ping pong the bytes.
I am pleased to hear you are working now.

Please share some of your results with Matlab nere on the forum.

If you found any more errors in my document, let me know, so I can make some updates.

How do you find the performance ? The limits of 9600 and the bit echo, are they a problem ? I found that with a USB-Serial adapter it was very slow. It is possible to increase the baud rate to 115K, but you will still have to ping pong the bytes.
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by limor » Mon Mar 17, 2008 2:04 am

Post by limor
Mon Mar 17, 2008 2:04 am

PeterQ wrote:tahnks a lot it works....
now I'm able to control robonova by matlab


Please share your experience in connecting the RN1 to Simulink.

I was involved with linking the Bioloid to Simulink (Real-time Windows target) and we ended up writing a serial device driver.

Look for simulink on the Bioloid Wiki
PeterQ wrote:tahnks a lot it works....
now I'm able to control robonova by matlab


Please share your experience in connecting the RN1 to Simulink.

I was involved with linking the Bioloid to Simulink (Real-time Windows target) and we ended up writing a serial device driver.

Look for simulink on the Bioloid Wiki
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by PeterQ » Mon Mar 17, 2008 5:40 pm

Post by PeterQ
Mon Mar 17, 2008 5:40 pm

I control robonova with clasic M- file only sending to it sort of bites.
iand from simulink I call it by S- function.




So I have another problem. After I turn on seros I want to stand up robot so I send this
EB 00 17 65 48 8F 68 64 00 89 26 5A 00 00 00 63 1C 4C 00 00 00 65 45 91 68 64 00
End position is good but left leg starts earlier. PTP is working so all servos stop at the same time. but they dont start at the same time. So robot fall down.
I tried higher speed but only 9600 works. I also tried to remove USB -> COM adapter and the results was the same.
I control robonova with clasic M- file only sending to it sort of bites.
iand from simulink I call it by S- function.




So I have another problem. After I turn on seros I want to stand up robot so I send this
EB 00 17 65 48 8F 68 64 00 89 26 5A 00 00 00 63 1C 4C 00 00 00 65 45 91 68 64 00
End position is good but left leg starts earlier. PTP is working so all servos stop at the same time. but they dont start at the same time. So robot fall down.
I tried higher speed but only 9600 works. I also tried to remove USB -> COM adapter and the results was the same.
PeterQ
Robot Builder
Robot Builder
User avatar
Posts: 12
Joined: Thu Mar 06, 2008 4:21 pm
Location: Martin, SLOVAKIA

Post by i-Bot » Tue Mar 18, 2008 9:11 am

Post by i-Bot
Tue Mar 18, 2008 9:11 am

How big is the time difference in the at the start between the servos ?

Do the lower numbered servos start first ?

Maybe the time transfer 54 bytes plus turnaround time is too long.

To set a different baud rate write to the BAUD rate register (&H99) using the F8 command. Value is 03 for 115K and 2F for 9600.
F8 99 00 03
How big is the time difference in the at the start between the servos ?

Do the lower numbered servos start first ?

Maybe the time transfer 54 bytes plus turnaround time is too long.

To set a different baud rate write to the BAUD rate register (&H99) using the F8 command. Value is 03 for 115K and 2F for 9600.
F8 99 00 03
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by PeterQ » Tue Mar 18, 2008 11:39 am

Post by PeterQ
Tue Mar 18, 2008 11:39 am

so i tried higher spped 115200 it is a bit better but still not workoing.

here is video how it works.
http://www.youtube.com/watch?v=I82n-5TBuVk

isnt there some function where you tell to robonova end position of all servos and then run it by another command?
so i tried higher spped 115200 it is a bit better but still not workoing.

here is video how it works.
http://www.youtube.com/watch?v=I82n-5TBuVk

isnt there some function where you tell to robonova end position of all servos and then run it by another command?
PeterQ
Robot Builder
Robot Builder
User avatar
Posts: 12
Joined: Thu Mar 06, 2008 4:21 pm
Location: Martin, SLOVAKIA

Post by i-Bot » Tue Mar 18, 2008 1:56 pm

Post by i-Bot
Tue Mar 18, 2008 1:56 pm

The new destination positions are written as they are received via the serial link. The new speeds are not calculated until the end.

Therefore the servos not only start to move, but move at their previuos speeds until the entire string is read.

Did you say you were using a C3000, not a C3024. I think the code my be the same, but I am not sure. For a C3024 we could make a new flash version.
The new destination positions are written as they are received via the serial link. The new speeds are not calculated until the end.

Therefore the servos not only start to move, but move at their previuos speeds until the entire string is read.

Did you say you were using a C3000, not a C3024. I think the code my be the same, but I am not sure. For a C3024 we could make a new flash version.
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by PeterQ » Wed Mar 19, 2008 10:52 pm

Post by PeterQ
Wed Mar 19, 2008 10:52 pm

I'm going to try connect servos at another order. it could help because now legs are from #0 to#4 and #18 to #22 then it could start better because leg servos will by one behind another.
I'm going to try connect servos at another order. it could help because now legs are from #0 to#4 and #18 to #22 then it could start better because leg servos will by one behind another.
PeterQ
Robot Builder
Robot Builder
User avatar
Posts: 12
Joined: Thu Mar 06, 2008 4:21 pm
Location: Martin, SLOVAKIA

Next
16 postsPage 1 of 21, 2
16 postsPage 1 of 21, 2