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

Using CM5 as a bridge

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

Using CM5 as a bridge

Post by Marmakoide » Fri Mar 02, 2007 7:08 pm

Post by Marmakoide
Fri Mar 02, 2007 7:08 pm

Hi !
I need an advice from advanced users... As a Phd student, I made a nice algorithm to control general articulated robots as hexapods or snakes. It worked well on simulated robots, now time to test that on real one. So we (my team mates and me) bought a Robotis kit. I made the Spider King... I was able to made some simple C programs and play them on the CM5. But my algorithm is too heavy for the CM5, I need more CPU power. A PC

So... Is it possible to do that ?
* My PC sends commands to the CM5, by using the serial connection
* The CM5 provide those commands to the Dynamixels
* The CM5 gather datas from the Dynamixels
* The CM5 sends those datas to my PC
Hi !
I need an advice from advanced users... As a Phd student, I made a nice algorithm to control general articulated robots as hexapods or snakes. It worked well on simulated robots, now time to test that on real one. So we (my team mates and me) bought a Robotis kit. I made the Spider King... I was able to made some simple C programs and play them on the CM5. But my algorithm is too heavy for the CM5, I need more CPU power. A PC

So... Is it possible to do that ?
* My PC sends commands to the CM5, by using the serial connection
* The CM5 provide those commands to the Dynamixels
* The CM5 gather datas from the Dynamixels
* The CM5 sends those datas to my PC
Marmakoide
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Mar 02, 2007 6:57 pm

Post by billyzelsnack » Fri Mar 02, 2007 7:18 pm

Post by billyzelsnack
Fri Mar 02, 2007 7:18 pm

This is exactly what I was doing until I bricked my CM5. Now I just built Arnaud's interface and it runs at 1Mb.
This is exactly what I was doing until I bricked my CM5. Now I just built Arnaud's interface and it runs at 1Mb.
billyzelsnack
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 618
Joined: Sat Dec 30, 2006 1:00 am

Post by Marmakoide » Fri Mar 02, 2007 7:29 pm

Post by Marmakoide
Fri Mar 02, 2007 7:29 pm

So you suggest that such a manipulation is prone to head-on-the-wall-smashing ? Then, could you give me some pointers on this "Arnaud's interface" stuff ? Is it a direct connection to the Dynamixels throught a good old serial port ?
So you suggest that such a manipulation is prone to head-on-the-wall-smashing ? Then, could you give me some pointers on this "Arnaud's interface" stuff ? Is it a direct connection to the Dynamixels throught a good old serial port ?
Marmakoide
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Mar 02, 2007 6:57 pm

Post by JonHylands » Fri Mar 02, 2007 7:39 pm

Post by JonHylands
Fri Mar 02, 2007 7:39 pm

Not quite, but it is pretty simple:

http://robosavvy.com/forum/viewtopic.php?t=990

- Jon
Not quite, but it is pretty simple:

http://robosavvy.com/forum/viewtopic.php?t=990

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Post by Marmakoide » Fri Mar 02, 2007 7:45 pm

Post by Marmakoide
Fri Mar 02, 2007 7:45 pm

Sorry to be that lame, I really sucks in electronics, I'am just a coder. This interface
* Is easy to made even for a totally electronics stuff newbie ?
* Allow to control the dynamixels directly by sending/reading bytes as in the dynamixels docs ?
* Is plugged in the serial port of my PC ?
Sorry to be that lame, I really sucks in electronics, I'am just a coder. This interface
* Is easy to made even for a totally electronics stuff newbie ?
* Allow to control the dynamixels directly by sending/reading bytes as in the dynamixels docs ?
* Is plugged in the serial port of my PC ?
Marmakoide
Robot Builder
Robot Builder
Posts: 13
Joined: Fri Mar 02, 2007 6:57 pm

Post by JonHylands » Fri Mar 02, 2007 8:02 pm

Post by JonHylands
Fri Mar 02, 2007 8:02 pm

I don't know how easy it is to make - I haven't made one. You might try posting your question in that thread.

However, once you have it you will be able to control AX-12 servos directly from your PC.

It does not plug into the serial port - it plugs into a USB port. However, from your code it will look (and act) like a serial port.

- Jon
I don't know how easy it is to make - I haven't made one. You might try posting your question in that thread.

However, once you have it you will be able to control AX-12 servos directly from your PC.

It does not plug into the serial port - it plugs into a USB port. However, from your code it will look (and act) like a serial port.

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada

Post by limor » Fri Mar 02, 2007 10:53 pm

Post by limor
Fri Mar 02, 2007 10:53 pm

Another option is to use Gumstix. (www.gumstix.com)
It will upgrade your Bioloid with 400mhz of processing power.

RoboSavvy has sponsored a research at university of Lisbon Robotics Lab to do sort of what you describe and I've been heavily involved in it the past 5 months.

The objective is to have a configuration that will allow researchers to explore real-time feedback control of the humanoid using the one tool they love most - Matlab and Simulink!

So we are working on the following setup:

1) You create pretty control loop diagrams using Simulink running on PC. You can assume to receive positions/voltage/load from every Bioloid servo (and sensor) 100 times per second and update every servo's direction and speed 100 times per second. ie: Fixed rate control loop at 100hz cycle. [The first step was to use a PC to communicate with the CM5 and to do this control loop at 100hz without the Gumstix. ]

2) Compile the simulink diagram into C code designed for "Linux Target"

3) Cross Compile the resulting source code on the PC and transfer the binary to Gumstix which is inside the Bioloid CM5 block, has a 400mhz Xscale processor and runs Linux.

4) Gumstix communicates with Simulink over TCP/IP acting as a "Remote Target". Simulink can start/stop/Visualise-data by communicating with the Gumstix (over TCP over BlueTooth).

5) Gumstix needs a daughter board to communicate with the Bioloid bus. We are using with a daughter board called - Robostix - which is similar to the CM5 (same ATMega128 so it runs the same code as CM5) but exposes many of the ATMega128 i/o pins. Robostix communicates with the Bioloid bus and passes messages back and forth between the servos and the Gumstix.

6) The control loop runs at 100hz. Gumstix receives position/voltage/load from each servo. Gumstix updates motor direction and speed (voltage) to each servo.


The current state of things is not very presentable but we've got a semi stable working environment and we'll be happy to share what we have. I tried to convince the students to blog their activity but it is proving to be a challenging request. check out the Blog link in the Robosavvy Main Menu tree (on the left)


Also check out some posts here on the forum by JonHylands who has also connected a Gumstix/Robostix to the Bioloid bus.
Another option is to use Gumstix. (www.gumstix.com)
It will upgrade your Bioloid with 400mhz of processing power.

RoboSavvy has sponsored a research at university of Lisbon Robotics Lab to do sort of what you describe and I've been heavily involved in it the past 5 months.

The objective is to have a configuration that will allow researchers to explore real-time feedback control of the humanoid using the one tool they love most - Matlab and Simulink!

So we are working on the following setup:

1) You create pretty control loop diagrams using Simulink running on PC. You can assume to receive positions/voltage/load from every Bioloid servo (and sensor) 100 times per second and update every servo's direction and speed 100 times per second. ie: Fixed rate control loop at 100hz cycle. [The first step was to use a PC to communicate with the CM5 and to do this control loop at 100hz without the Gumstix. ]

2) Compile the simulink diagram into C code designed for "Linux Target"

3) Cross Compile the resulting source code on the PC and transfer the binary to Gumstix which is inside the Bioloid CM5 block, has a 400mhz Xscale processor and runs Linux.

4) Gumstix communicates with Simulink over TCP/IP acting as a "Remote Target". Simulink can start/stop/Visualise-data by communicating with the Gumstix (over TCP over BlueTooth).

5) Gumstix needs a daughter board to communicate with the Bioloid bus. We are using with a daughter board called - Robostix - which is similar to the CM5 (same ATMega128 so it runs the same code as CM5) but exposes many of the ATMega128 i/o pins. Robostix communicates with the Bioloid bus and passes messages back and forth between the servos and the Gumstix.

6) The control loop runs at 100hz. Gumstix receives position/voltage/load from each servo. Gumstix updates motor direction and speed (voltage) to each servo.


The current state of things is not very presentable but we've got a semi stable working environment and we'll be happy to share what we have. I tried to convince the students to blog their activity but it is proving to be a challenging request. check out the Blog link in the Robosavvy Main Menu tree (on the left)


Also check out some posts here on the forum by JonHylands who has also connected a Gumstix/Robostix to the Bioloid bus.
limor
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by JonHylands » Fri Mar 02, 2007 11:02 pm

Post by JonHylands
Fri Mar 02, 2007 11:02 pm

I have two links dealing with interfacing to the Bioloid bus:

This first one is for talking to the bus using a Robostix, and you can talk to the Robostix either with a gumstix or directly from your PC:

http://www.bioloid.info/tiki/tiki-index.php?page=gumstix

The second link is probably better, and has a very detailed tutorial on how to build and program a direct link using a generic ATmega128 board from Sparkfun.

http://www.bioloid.info/tiki/tiki-index.php?page=pc+serial

Unless you are interesting in using wifi to control your Bioloid, the USB option mentioned early is probably the simplest thing to do.

If you want wifi, then building the board in the second link is the first step. I will be following that up with a new tutorial (one we get all the issues worked out) with hooking the ATmega128 to a wifi module. This will give you a full 1.0 Mbps wireless connection to your Bioloid.

- Jon
I have two links dealing with interfacing to the Bioloid bus:

This first one is for talking to the bus using a Robostix, and you can talk to the Robostix either with a gumstix or directly from your PC:

http://www.bioloid.info/tiki/tiki-index.php?page=gumstix

The second link is probably better, and has a very detailed tutorial on how to build and program a direct link using a generic ATmega128 board from Sparkfun.

http://www.bioloid.info/tiki/tiki-index.php?page=pc+serial

Unless you are interesting in using wifi to control your Bioloid, the USB option mentioned early is probably the simplest thing to do.

If you want wifi, then building the board in the second link is the first step. I will be following that up with a new tutorial (one we get all the issues worked out) with hooking the ATmega128 to a wifi module. This will give you a full 1.0 Mbps wireless connection to your Bioloid.

- Jon
JonHylands
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 512
Joined: Thu Nov 09, 2006 1:00 am
Location: Ontario, Canada


8 postsPage 1 of 1
8 postsPage 1 of 1