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

robobuilder COM libraries[former actionbuilder known issues]

Korean company maker of Robot kits and servos designed for of articulated robots. Re-incarnation of Megarobotics.
12 postsPage 1 of 1
12 postsPage 1 of 1

robobuilder COM libraries[former actionbuilder known issues]

Post by PedroR » Fri Aug 08, 2008 1:14 pm

Post by PedroR
Fri Aug 08, 2008 1:14 pm

Hi

We are trying to compile a list of bugs/known issues you have encoutered with ActionBuilder so we can send it to Robobuilder.
The purpose of this list is also to help other fellow Roboteers deal with the software and understand known bugs and limitations.

From our experience we have found these so far:
- In Distance Sensor conditions the range of numbers accepted is 10~50 cm. If you input a number outside that range the distance sensor will not work. This behaviour is by design but is not documented anywhere !
We have spent several hours trying to figure out what was wrong with our robot when the distance sensor did not work but it was actually this bug from action builder.

- The Distance sensor accuracy is +-10cm.

- In the list of Actions, if you scroll through the list of Actions using the keyboard arrows, the details are not update on the Right Pane.
If you use the mouse to click and select the actions in the list it works correctly.

- The Joyremocon conditions do not work.
When you select Joyremocon the dropdown list is locked and does not allow you to select a remote control button.

What have you found from your experience?
Hi

We are trying to compile a list of bugs/known issues you have encoutered with ActionBuilder so we can send it to Robobuilder.
The purpose of this list is also to help other fellow Roboteers deal with the software and understand known bugs and limitations.

From our experience we have found these so far:
- In Distance Sensor conditions the range of numbers accepted is 10~50 cm. If you input a number outside that range the distance sensor will not work. This behaviour is by design but is not documented anywhere !
We have spent several hours trying to figure out what was wrong with our robot when the distance sensor did not work but it was actually this bug from action builder.

- The Distance sensor accuracy is +-10cm.

- In the list of Actions, if you scroll through the list of Actions using the keyboard arrows, the details are not update on the Right Pane.
If you use the mouse to click and select the actions in the list it works correctly.

- The Joyremocon conditions do not work.
When you select Joyremocon the dropdown list is locked and does not allow you to select a remote control button.

What have you found from your experience?
Last edited by PedroR on Wed Feb 04, 2009 4:31 pm, edited 2 times in total.
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by PedroR » Fri Aug 08, 2008 11:06 pm

Post by PedroR
Fri Aug 08, 2008 11:06 pm

Another annoying issue:

You can't easily change the order of the commands in action builder. If you have statements in am list and want to add a line in the middle of that statement list it is not trivial.

There is a work around using mouse->right click but it's messy.

btw we will soon be posting a lot of robot movies from motions me and Limor have been creating with actionbuilder for both HUNO and DOGGY.
All in all actionbuilder makes it really easy to create if..then conditional programming/states machines.
Another annoying issue:

You can't easily change the order of the commands in action builder. If you have statements in am list and want to add a line in the middle of that statement list it is not trivial.

There is a work around using mouse->right click but it's messy.

btw we will soon be posting a lot of robot movies from motions me and Limor have been creating with actionbuilder for both HUNO and DOGGY.
All in all actionbuilder makes it really easy to create if..then conditional programming/states machines.
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by NovaOne » Wed Aug 20, 2008 3:40 pm

Post by NovaOne
Wed Aug 20, 2008 3:40 pm

It is strange that there is no "End" in the Executions group. and to end a routine you must switch the robot off and on again?

Also unless I am missing something, in both Action Builber and Motion Builder it is the order that you download the routines that determines what buttons they are assigned to? Whats that all about?
Why can't you select the button you wish to press in order to run a motion (1 to *+0) or Action (#+A to #+0).

To add another level to the Action builder environment why not have a config. section in the Conditions group so additional custom sensors can be added?
It is strange that there is no "End" in the Executions group. and to end a routine you must switch the robot off and on again?

Also unless I am missing something, in both Action Builber and Motion Builder it is the order that you download the routines that determines what buttons they are assigned to? Whats that all about?
Why can't you select the button you wish to press in order to run a motion (1 to *+0) or Action (#+A to #+0).

To add another level to the Action builder environment why not have a config. section in the Conditions group so additional custom sensors can be added?
NovaOne
Savvy Roboteer
Savvy Roboteer
Posts: 405
Joined: Thu Jul 05, 2007 7:30 am

Post by PedroR » Mon Jan 19, 2009 5:23 am

Post by PedroR
Mon Jan 19, 2009 5:23 am

Hi NovaOne

With regards to your questions I think you already have an answer for some of them but I share the details here:

- The new firmaware (v.2.15) and the new Robobuilder download tool allow you to select into which position you want to download the programs.

- With regards to ending ActionBuilder programs without having to turn off the robot you need to do this:
Create an additional condition that tests if a Button (PF1 or PF2) is pressed. The action for that condition should be set to "NONE". This will exit the ActionBuilder Program.
The RB humanoid we had at BETT had all ActionBuilder programs created with this exit routine.
Hi NovaOne

With regards to your questions I think you already have an answer for some of them but I share the details here:

- The new firmaware (v.2.15) and the new Robobuilder download tool allow you to select into which position you want to download the programs.

- With regards to ending ActionBuilder programs without having to turn off the robot you need to do this:
Create an additional condition that tests if a Button (PF1 or PF2) is pressed. The action for that condition should be set to "NONE". This will exit the ActionBuilder Program.
The RB humanoid we had at BETT had all ActionBuilder programs created with this exit routine.
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by NovaOne » Mon Jan 19, 2009 9:27 am

Post by NovaOne
Mon Jan 19, 2009 9:27 am

Thanks Pedro thats very helpful.

Did you also mention that the Robobuilder Download Tool also had a facility like this?

Could outline how to set RB to communicate directly from the PC to the wCK bus....a method that is used with MDRS?
Thanks Pedro thats very helpful.

Did you also mention that the Robobuilder Download Tool also had a facility like this?

Could outline how to set RB to communicate directly from the PC to the wCK bus....a method that is used with MDRS?
NovaOne
Savvy Roboteer
Savvy Roboteer
Posts: 405
Joined: Thu Jul 05, 2007 7:30 am

Post by PedroR » Tue Jan 20, 2009 1:36 am

Post by PedroR
Tue Jan 20, 2009 1:36 am

Hi Novaone

To set the Rb to communicate directly with the servos, you need to put it in PC control mode.
To do that press and hold button PF2 and then turn on the RBC. Release the button after 2 seconds.
An orange light will appear on the RBC controller.

To return into normal mode, with the RBC already on, press and hold PF1 for 3 seconds.

See page 73 of the Robobuilder Users Guide for more info on this.

iBot told me there is an undocumented command that you can send to Robobuilder to put it into PC control mode without needing to do that trick of press and hold PF2 and then turn on RBC.

However I haven't yet had the time to try and find out what it is.
The way to do it is install a program to spy the COM port and then open Motion Builder and Open the COM port.
When you open the COM port in motion builder, it sends that undocumented command that will put the RBC into PC control mode.
With that program that spies on the COM port we can see what Motionbuilder is sending to the RBC and find out what is the command.

BTW are you still interested in the buying the Robobuilder Beginner's Edition that we were selling at BETT? we still have one for sale for the price we were offering at the show: 150GBP (incl vat)+shipping.
Hi Novaone

To set the Rb to communicate directly with the servos, you need to put it in PC control mode.
To do that press and hold button PF2 and then turn on the RBC. Release the button after 2 seconds.
An orange light will appear on the RBC controller.

To return into normal mode, with the RBC already on, press and hold PF1 for 3 seconds.

See page 73 of the Robobuilder Users Guide for more info on this.

iBot told me there is an undocumented command that you can send to Robobuilder to put it into PC control mode without needing to do that trick of press and hold PF2 and then turn on RBC.

However I haven't yet had the time to try and find out what it is.
The way to do it is install a program to spy the COM port and then open Motion Builder and Open the COM port.
When you open the COM port in motion builder, it sends that undocumented command that will put the RBC into PC control mode.
With that program that spies on the COM port we can see what Motionbuilder is sending to the RBC and find out what is the command.

BTW are you still interested in the buying the Robobuilder Beginner's Edition that we were selling at BETT? we still have one for sale for the price we were offering at the show: 150GBP (incl vat)+shipping.
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by PedroR » Wed Jan 21, 2009 5:13 am

Post by PedroR
Wed Jan 21, 2009 5:13 am

I found a Freeware program to spy on the comm port: http://www.serial-port-monitor.com/free ... loads.html

haven't used it yet though but from the screenshots looks really nice.

There is also Portmon from microsoft here: http://technet.microsoft.com/en-us/sysi ... 96644.aspx but it doesn't seem so user friendly.
I found a Freeware program to spy on the comm port: http://www.serial-port-monitor.com/free ... loads.html

haven't used it yet though but from the screenshots looks really nice.

There is also Portmon from microsoft here: http://technet.microsoft.com/en-us/sysi ... 96644.aspx but it doesn't seem so user friendly.
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by i-Bot » Wed Jan 21, 2009 12:55 pm

Post by i-Bot
Wed Jan 21, 2009 12:55 pm

I have been using the serial port monitor program from HHD which you show. It has helped on work with reverse engineering the protocols on RN, Bioloid and Robobuilder. A very very useful utility.

Though called freeware, I think it is now only for 30 days evaluation. I bought a license for the lite version, it is quite low cost. The previous version 3.31 did not seem to have that restriction and though a bit simpler worked fine.
I have been using the serial port monitor program from HHD which you show. It has helped on work with reverse engineering the protocols on RN, Bioloid and Robobuilder. A very very useful utility.

Though called freeware, I think it is now only for 30 days evaluation. I bought a license for the lite version, it is quite low cost. The previous version 3.31 did not seem to have that restriction and though a bit simpler worked fine.
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by PedroR » Wed Jan 28, 2009 6:15 pm

Post by PedroR
Wed Jan 28, 2009 6:15 pm

Hi

I have document further info on the RBC protocol, using the Comm Port Monitor from HHD:

To put it PC control mode:
Send:
FF FF AA 55 AA 55 37 BA 10 04 00 00 00 01 01 01

To Exit PC Control Mode:
Send:
FF E0 FB 01 00 1A

After having it in PC control mode you should be able to feed commands to the servo's directly.
The servo command protocol is documented in the wCk manual.

I have found this by spying on MotionBuilder.
There is, however a startup string that I don't understand.
Motion Builder send this sequence:

1) FF E0 FB 01 00 1A FF FF AA 55 AA 55 37 BA 12 01 00 00 00 01 01 01
RBC replies with :
FF
FF AA 55 AA 55 37 BA 12 01 00 00 00 02 02 05
07

2) FF FF AA 55 AA 55 37 BA 10 04 00 00 00 01 01 01
(RBC replies with FF FF AA 55 AA 55 37 BA 10 01 00 00 00 01 01 01 - it's the same command that was sent)

It's the 2nd sequence that switches into PC control mode. I've confirmed you don't need to send the first sequence to put it in PC control mode.
I don't understand what is the purpose of the first sequence nor what it does....

I should have further details posted tonight.

Pedro
Hi

I have document further info on the RBC protocol, using the Comm Port Monitor from HHD:

To put it PC control mode:
Send:
FF FF AA 55 AA 55 37 BA 10 04 00 00 00 01 01 01

To Exit PC Control Mode:
Send:
FF E0 FB 01 00 1A

After having it in PC control mode you should be able to feed commands to the servo's directly.
The servo command protocol is documented in the wCk manual.

I have found this by spying on MotionBuilder.
There is, however a startup string that I don't understand.
Motion Builder send this sequence:

1) FF E0 FB 01 00 1A FF FF AA 55 AA 55 37 BA 12 01 00 00 00 01 01 01
RBC replies with :
FF
FF AA 55 AA 55 37 BA 12 01 00 00 00 02 02 05
07

2) FF FF AA 55 AA 55 37 BA 10 04 00 00 00 01 01 01
(RBC replies with FF FF AA 55 AA 55 37 BA 10 01 00 00 00 01 01 01 - it's the same command that was sent)

It's the 2nd sequence that switches into PC control mode. I've confirmed you don't need to send the first sequence to put it in PC control mode.
I don't understand what is the purpose of the first sequence nor what it does....

I should have further details posted tonight.

Pedro
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by PedroR » Thu Jan 29, 2009 3:13 am

Post by PedroR
Thu Jan 29, 2009 3:13 am

hi

i've been studying the wCk manual and protocol with carefull attention and this is what I found out:

- The protocol is in general designed to deal with up to 32 servos (0~31) although the theoretical maximum on the bus is 254 (0~253).

This happens because with almost all protocol instructions you can only address the servos using 5 bits for the ID.

There are however, two extra/special commands that let you address the servo's ID using 8 bits (address servos with id >31):
- One to set the position
- One to read the position
These are marked as "high resolution" as they will also allow you to set wider angles (> 254 deg).

There is also a very good C sample that implements all the supported functions so I will be posting a DLL library implementing all these functions from the PC, as well as a function to change the RBC into pc control mode.

I'll post further details as I get along.

Pedro
hi

i've been studying the wCk manual and protocol with carefull attention and this is what I found out:

- The protocol is in general designed to deal with up to 32 servos (0~31) although the theoretical maximum on the bus is 254 (0~253).

This happens because with almost all protocol instructions you can only address the servos using 5 bits for the ID.

There are however, two extra/special commands that let you address the servo's ID using 8 bits (address servos with id >31):
- One to set the position
- One to read the position
These are marked as "high resolution" as they will also allow you to set wider angles (> 254 deg).

There is also a very good C sample that implements all the supported functions so I will be posting a DLL library implementing all these functions from the PC, as well as a function to change the RBC into pc control mode.

I'll post further details as I get along.

Pedro
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by PedroR » Thu Feb 05, 2009 5:16 am

Post by PedroR
Thu Feb 05, 2009 5:16 am

hi

to keep the forum threads organized, I have started a new thread with the evolution of this DLL, that now implements the wCK protocol directly.

The thread is here: http://robosavvy.com/forum/viewtopic.php?p=19030#19030

It includes my latest findings on the servos, protocol, etc.
hi

to keep the forum threads organized, I have started a new thread with the evolution of this DLL, that now implements the wCK protocol directly.

The thread is here: http://robosavvy.com/forum/viewtopic.php?p=19030#19030

It includes my latest findings on the servos, protocol, etc.
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by PedroR » Tue Jun 02, 2009 3:55 pm

Post by PedroR
Tue Jun 02, 2009 3:55 pm

Just understood something from one of the above posts.

In this post here http://robosavvy.com/forum/viewtopic.php?t=2772#18984 I documented the sequence of commands that motion builder sends when it starts. I did not understand what it was doing. Now with the new documentation here is what it does:

1) FF E0 FB 01 00 1A FF FF AA 55 AA 55 37 BA 12 01 00 00 00 01 01 01
RBC replies with :
FF
FF AA 55 AA 55 37 BA 12 01 00 00 00 02 02 05
07

2) FF FF AA 55 AA 55 37 BA 10 04 00 00 00 01 01 01
(RBC replies with FF FF AA 55 AA 55 37 BA 10 01 00 00 00 01 01 01 - it's the same command that was sent)


1) FF E0 FB 01 00 1A Sends a command to EXIT PC control mode (just in acse it was left in PC control mode previouslly).

2) FF FF AA 55 AA 55 37 BA 12 01 00 00 00 01 01 01 Sends a command to read the serial number

3) FF FF AA 55 AA 55 37 BA 10 04 00 00 00 01 01 01 Sends a command to switch into PC control mode.

I don't know why it needs the serial number though...
Just understood something from one of the above posts.

In this post here http://robosavvy.com/forum/viewtopic.php?t=2772#18984 I documented the sequence of commands that motion builder sends when it starts. I did not understand what it was doing. Now with the new documentation here is what it does:

1) FF E0 FB 01 00 1A FF FF AA 55 AA 55 37 BA 12 01 00 00 00 01 01 01
RBC replies with :
FF
FF AA 55 AA 55 37 BA 12 01 00 00 00 02 02 05
07

2) FF FF AA 55 AA 55 37 BA 10 04 00 00 00 01 01 01
(RBC replies with FF FF AA 55 AA 55 37 BA 10 01 00 00 00 01 01 01 - it's the same command that was sent)


1) FF E0 FB 01 00 1A Sends a command to EXIT PC control mode (just in acse it was left in PC control mode previouslly).

2) FF FF AA 55 AA 55 37 BA 12 01 00 00 00 01 01 01 Sends a command to read the serial number

3) FF FF AA 55 AA 55 37 BA 10 04 00 00 00 01 01 01 Sends a command to switch into PC control mode.

I don't know why it needs the serial number though...
PedroR
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm


12 postsPage 1 of 1
12 postsPage 1 of 1