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

bioloid daughter board for gumstix and closed-loop control

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

Post by Robo1 » Mon Oct 20, 2008 5:28 pm

Post by Robo1
Mon Oct 20, 2008 5:28 pm

HI Srobot

have a look at the gumstix website it has all the info. but to answer you question in short.

1) the gumstix runs linux so you can program it in what ever language you want, most people do it in C, best to have linux to program in as you can do all the biuld root. have a look at busybox and gcc.

2) the Verdex Pro board.

3) Not sure do some research and figure out if you can use it, are you any good at C and linux would be the obvious thoughts. it took me about a week when I first got one to figure it out and have a program running with the uart. I know linux and C before had, it just took me time to figure out all the registers and stuff.

Bren
HI Srobot

have a look at the gumstix website it has all the info. but to answer you question in short.

1) the gumstix runs linux so you can program it in what ever language you want, most people do it in C, best to have linux to program in as you can do all the biuld root. have a look at busybox and gcc.

2) the Verdex Pro board.

3) Not sure do some research and figure out if you can use it, are you any good at C and linux would be the obvious thoughts. it took me about a week when I first got one to figure it out and have a program running with the uart. I know linux and C before had, it just took me time to figure out all the registers and stuff.

Bren
Robo1
Savvy Roboteer
Savvy Roboteer
Posts: 501
Joined: Fri Jun 30, 2006 1:00 am
Location: UK - Bristol

Post by Robo1 » Mon Oct 20, 2008 5:39 pm

Post by Robo1
Mon Oct 20, 2008 5:39 pm

To get the ball rolling. What I think would be good if we get the usb port up and running with a basic schmatic of the FTDI chip and the drivers in linux running. I think JonHylands has done this already, if you could post what your done would be good.

Also would be good to use the CCD camera connection with a camera like the little ones on sparkfun. I have no experiance with cameras and busy with other things. So anyone want to take this up as a project!

All the schmatics I have with the board only use the uarts so not much use as it's obvious from the eagle libary what there for.

This brings up another important point what are we going to design it in. I would say eagle as it's free and I already use it?

Bren
To get the ball rolling. What I think would be good if we get the usb port up and running with a basic schmatic of the FTDI chip and the drivers in linux running. I think JonHylands has done this already, if you could post what your done would be good.

Also would be good to use the CCD camera connection with a camera like the little ones on sparkfun. I have no experiance with cameras and busy with other things. So anyone want to take this up as a project!

All the schmatics I have with the board only use the uarts so not much use as it's obvious from the eagle libary what there for.

This brings up another important point what are we going to design it in. I would say eagle as it's free and I already use it?

Bren
Robo1
Savvy Roboteer
Savvy Roboteer
Posts: 501
Joined: Fri Jun 30, 2006 1:00 am
Location: UK - Bristol

Post by Robo1 » Mon Oct 20, 2008 5:42 pm

Post by Robo1
Mon Oct 20, 2008 5:42 pm

Also I'm working on dynamic modelling and things at cmu e.g. IK and adjusting for gravity and other forces like friction. Where using SDfast for modelling the dynamics of robots so I could start porting this over to are robo-one style robots and try and make it simpe for people to modify for there own bots.

just a thought Bren
Also I'm working on dynamic modelling and things at cmu e.g. IK and adjusting for gravity and other forces like friction. Where using SDfast for modelling the dynamics of robots so I could start porting this over to are robo-one style robots and try and make it simpe for people to modify for there own bots.

just a thought Bren
Robo1
Savvy Roboteer
Savvy Roboteer
Posts: 501
Joined: Fri Jun 30, 2006 1:00 am
Location: UK - Bristol

Post by srobot » Mon Oct 20, 2008 5:50 pm

Post by srobot
Mon Oct 20, 2008 5:50 pm

Thank you Robo1!

I use a little Ubuntu and Fedora, and understand the folder trees and basic prompts.

Does the board come with docs and samples? What "level" of C is needed? I can write most low to medium level C, and can read/edit most high level C.

I am willing to learn everything I need to know about using GumStix and Linux.

What do you use for a screen? Or do you use a main computer to load the program onto the GumStix?

Could someone post a sample of the code needed to run a Bioloid?

Thank you,
--Scotty
Thank you Robo1!

I use a little Ubuntu and Fedora, and understand the folder trees and basic prompts.

Does the board come with docs and samples? What "level" of C is needed? I can write most low to medium level C, and can read/edit most high level C.

I am willing to learn everything I need to know about using GumStix and Linux.

What do you use for a screen? Or do you use a main computer to load the program onto the GumStix?

Could someone post a sample of the code needed to run a Bioloid?

Thank you,
--Scotty
Dell Latitude D520, Windows XP, 4 GB RAM, 80 GB HDD, Intel Core 2 Duo. The power that's needed!

RIBO Labs, Springing Robotic Development to a New Level
srobot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 401
Joined: Sun Dec 10, 2006 1:00 am
Location: Deep in robot parts

Post by clusher » Tue Oct 21, 2008 12:25 am

Post by clusher
Tue Oct 21, 2008 12:25 am

srobot - The Gumstix verdex can be ordered with the console-vx, which you connect to your computer and you interact with it using HyperTerm on Windows (some program of that sort on Linux, check the wiki about gumstix). I cant post code, I haven't programmed it yet...

Robo1, the Eagle is a good option, since I also have it :p I'm still getting used to it, but seems pretty straightforward.
The idea about using the USB and the FTDI chip seems good because the FT2232D chip makes the conversion USB<=>in this case, dual TTL connections (can also be the Rs485 with the appropriate converters).
I will however investigate about the ATXmega128 limor mencioned, because it also seems a pretty good idea. We can use the UART of the Gumstix to connect with one of the xmega and still have 7UARTs to communicate through the bus. The xmega is very similar to programming the CM5, and most of us already has some experience with it.

About the camera connection... what camera connection?

I'll post the schematics I've done about the USB as soon as they're done... it's going slowly, I never designed a board from scracth :p
srobot - The Gumstix verdex can be ordered with the console-vx, which you connect to your computer and you interact with it using HyperTerm on Windows (some program of that sort on Linux, check the wiki about gumstix). I cant post code, I haven't programmed it yet...

Robo1, the Eagle is a good option, since I also have it :p I'm still getting used to it, but seems pretty straightforward.
The idea about using the USB and the FTDI chip seems good because the FT2232D chip makes the conversion USB<=>in this case, dual TTL connections (can also be the Rs485 with the appropriate converters).
I will however investigate about the ATXmega128 limor mencioned, because it also seems a pretty good idea. We can use the UART of the Gumstix to connect with one of the xmega and still have 7UARTs to communicate through the bus. The xmega is very similar to programming the CM5, and most of us already has some experience with it.

About the camera connection... what camera connection?

I'll post the schematics I've done about the USB as soon as they're done... it's going slowly, I never designed a board from scracth :p
clusher
Savvy Roboteer
Savvy Roboteer
Posts: 57
Joined: Thu Jul 17, 2008 12:27 pm

Post by Robo1 » Tue Oct 21, 2008 3:41 am

Post by Robo1
Tue Oct 21, 2008 3:41 am

Hi clusher

doing a schmatic and board in eagle isn't that diffacult. A little hint put a GND plane on the bottom of the board, will make you life easier and a better design.

When I say CCD camera I refer to this page. It states that the gumstix has a camera connection. haven't done any more research then that.

As regard the atmega I had done a earlier design that had 3, ATMEGA168 connected by a SPI bus each of these did defferent things like PS2 controller and servo and A/D and other stuff work quite well but the SPI was the weak link. It all depends on how fast you want the loop to be. I'm aiming for 1Khz for the closed link so that's why I went the FPGA ruite.

Bren
Hi clusher

doing a schmatic and board in eagle isn't that diffacult. A little hint put a GND plane on the bottom of the board, will make you life easier and a better design.

When I say CCD camera I refer to this page. It states that the gumstix has a camera connection. haven't done any more research then that.

As regard the atmega I had done a earlier design that had 3, ATMEGA168 connected by a SPI bus each of these did defferent things like PS2 controller and servo and A/D and other stuff work quite well but the SPI was the weak link. It all depends on how fast you want the loop to be. I'm aiming for 1Khz for the closed link so that's why I went the FPGA ruite.

Bren
Robo1
Savvy Roboteer
Savvy Roboteer
Posts: 501
Joined: Fri Jun 30, 2006 1:00 am
Location: UK - Bristol

Post by clusher » Wed Nov 19, 2008 12:18 pm

Post by clusher
Wed Nov 19, 2008 12:18 pm

Hey guys.
I'm needing some suggestions here. So we've decided to connect the gumstix to a ftdi USB<->UART chip (ft232R) and from there to the AtXMega128. This allows a communication up to 3M.

Now, that most circuit is ready to show, I'm having a problem... The atxmega USART's don't seem to have a pin saying wheter itis sending or receiving info. This means that I can't make a half duplex for the AX-12, because I don't have a DIRECTION to feed the circuit shown in the servos manual.

Any ideas on how to solve?
Hey guys.
I'm needing some suggestions here. So we've decided to connect the gumstix to a ftdi USB<->UART chip (ft232R) and from there to the AtXMega128. This allows a communication up to 3M.

Now, that most circuit is ready to show, I'm having a problem... The atxmega USART's don't seem to have a pin saying wheter itis sending or receiving info. This means that I can't make a half duplex for the AX-12, because I don't have a DIRECTION to feed the circuit shown in the servos manual.

Any ideas on how to solve?
clusher
Savvy Roboteer
Savvy Roboteer
Posts: 57
Joined: Thu Jul 17, 2008 12:27 pm

Post by Robo1 » Wed Nov 19, 2008 5:14 pm

Post by Robo1
Wed Nov 19, 2008 5:14 pm

You could just use one of the spare I/O and toggle it when your sending and recieving. This is what I did for the rs485 for my Dx117s.

Once you're got this working would be really keen to see the schematic and the code you use on the gumstix. How are you going to get the usb working on it, what drivers are you using. Are you going to use C. Been meaning to get the usb port working for a while but couldn't find much info on the web plus I've never really tried using usb stuff in linux, just been using the uarts.

Bren
You could just use one of the spare I/O and toggle it when your sending and recieving. This is what I did for the rs485 for my Dx117s.

Once you're got this working would be really keen to see the schematic and the code you use on the gumstix. How are you going to get the usb working on it, what drivers are you using. Are you going to use C. Been meaning to get the usb port working for a while but couldn't find much info on the web plus I've never really tried using usb stuff in linux, just been using the uarts.

Bren
Robo1
Savvy Roboteer
Savvy Roboteer
Posts: 501
Joined: Fri Jun 30, 2006 1:00 am
Location: UK - Bristol

Post by clusher » Wed Nov 19, 2008 5:48 pm

Post by clusher
Wed Nov 19, 2008 5:48 pm

Those are all questions I'm really keen to discover... once I get the filesystem ready. I'll be programming in Python, but right now I still haven't even tried to cross compile a C program... I'm kinda expecting to find a "pyusb" or something like the sort (pyserial is really easy to use).
Besides, getting the python 2.6 cross compiled is taking a really serious share of my time... I'm gonna start sending mails to the mailing lists today, if I don't get it too work bymyself. I'm not

I just had a meeting with my professor, he suggested I simply use the open collectors without the direction bit. The downside is that the atxmega will receive all that it sends, but all we have to do is clean it up :p I'll see about those spare I/O, however.
Those are all questions I'm really keen to discover... once I get the filesystem ready. I'll be programming in Python, but right now I still haven't even tried to cross compile a C program... I'm kinda expecting to find a "pyusb" or something like the sort (pyserial is really easy to use).
Besides, getting the python 2.6 cross compiled is taking a really serious share of my time... I'm gonna start sending mails to the mailing lists today, if I don't get it too work bymyself. I'm not

I just had a meeting with my professor, he suggested I simply use the open collectors without the direction bit. The downside is that the atxmega will receive all that it sends, but all we have to do is clean it up :p I'll see about those spare I/O, however.
clusher
Savvy Roboteer
Savvy Roboteer
Posts: 57
Joined: Thu Jul 17, 2008 12:27 pm

Post by Robo1 » Wed Nov 19, 2008 6:39 pm

Post by Robo1
Wed Nov 19, 2008 6:39 pm

Just a by note, what uni are you at and what are you wroking on. I'm at cmu working on some coll bipeds.

Good luck with the mailing list, I gave up with it. I don't understand why they don't use a forum. You end up getting like 4-5 emails a day and if you don't read them all you can even see if some one replied to you.

What board are you using.

Bren
Just a by note, what uni are you at and what are you wroking on. I'm at cmu working on some coll bipeds.

Good luck with the mailing list, I gave up with it. I don't understand why they don't use a forum. You end up getting like 4-5 emails a day and if you don't read them all you can even see if some one replied to you.

What board are you using.

Bren
Robo1
Savvy Roboteer
Savvy Roboteer
Posts: 501
Joined: Fri Jun 30, 2006 1:00 am
Location: UK - Bristol

Post by clusher » Wed Nov 19, 2008 8:37 pm

Post by clusher
Wed Nov 19, 2008 8:37 pm

I'm at IST, Portugal (we actually have a few Phd programs between out universities), and I'm working on a learning algorithm for the bioloid (or any other bipede) to learn and improve walking, without using rotation matrixes and so.

I'm using the verdex with Bluetooth.
I'm at IST, Portugal (we actually have a few Phd programs between out universities), and I'm working on a learning algorithm for the bioloid (or any other bipede) to learn and improve walking, without using rotation matrixes and so.

I'm using the verdex with Bluetooth.
clusher
Savvy Roboteer
Savvy Roboteer
Posts: 57
Joined: Thu Jul 17, 2008 12:27 pm

Post by i-Bot » Thu Nov 27, 2008 1:35 pm

Post by i-Bot
Thu Nov 27, 2008 1:35 pm

I have put some thought to this and would appreciate some feedback to my early conclusions.

I did some measurements on the AX12 using a propeller object. I found that with a return delay set to 1, I get read and write complete transactions in about 300us + (11us + number of bytes transferred). This seems consistent, even when the AX12 is moving.

Only bothered with read and write because multiple registers must be read/written for closed loop control.

If we write 12 registers and read 8 registers, then we have about 20ms for 24 servos, which is probably too slow.

This also gives us 480 bytes to transfer up/down to the gumstix or other.

For interface to the Gumstix or other, SPI would be preferred due to the higher data rate and higher efficiency. At 4M SPI transfers of 480 bytes for 24 servos would be about 3 ms. UARTS on these devices are fairly large and have DMA so that is possible but has limited speeds. USB has a very large overhead.

Splitting the serial bus to 6 with 4 AX12 each would drop the servo time down to about 3.3 ms. Splitting to 24 individual on a star would drop to less than 1 ms, and the SPI could be increased to 10M.

For device to perform this there are not many. The ATMega and XMega could not perform at these data rates and the buffering is too small. Even ARM, AVR32, PIC32, STM32 would struggle due to limits in their buffers and DMA capability. The prop might be able to do the 6 bus case though probably only with a 1M SPI making an update of about 10 ms.

As Robo1 indicated an FPGA solution could do the 6 and the 24 bus options.

So some feedback on my ideas, also some idea of the update rate needed would be appreciated. And a check on math and assumption is usually needed !

For the hardware confguration, I was thinking of distribution boards with 4 or 6 servo connectors with a servo power battery power feed and any servo specific interface liked back to the mohterboard. Thus keep the motherboard common and keep battery power for the servos off it.
I have put some thought to this and would appreciate some feedback to my early conclusions.

I did some measurements on the AX12 using a propeller object. I found that with a return delay set to 1, I get read and write complete transactions in about 300us + (11us + number of bytes transferred). This seems consistent, even when the AX12 is moving.

Only bothered with read and write because multiple registers must be read/written for closed loop control.

If we write 12 registers and read 8 registers, then we have about 20ms for 24 servos, which is probably too slow.

This also gives us 480 bytes to transfer up/down to the gumstix or other.

For interface to the Gumstix or other, SPI would be preferred due to the higher data rate and higher efficiency. At 4M SPI transfers of 480 bytes for 24 servos would be about 3 ms. UARTS on these devices are fairly large and have DMA so that is possible but has limited speeds. USB has a very large overhead.

Splitting the serial bus to 6 with 4 AX12 each would drop the servo time down to about 3.3 ms. Splitting to 24 individual on a star would drop to less than 1 ms, and the SPI could be increased to 10M.

For device to perform this there are not many. The ATMega and XMega could not perform at these data rates and the buffering is too small. Even ARM, AVR32, PIC32, STM32 would struggle due to limits in their buffers and DMA capability. The prop might be able to do the 6 bus case though probably only with a 1M SPI making an update of about 10 ms.

As Robo1 indicated an FPGA solution could do the 6 and the 24 bus options.

So some feedback on my ideas, also some idea of the update rate needed would be appreciated. And a check on math and assumption is usually needed !

For the hardware confguration, I was thinking of distribution boards with 4 or 6 servo connectors with a servo power battery power feed and any servo specific interface liked back to the mohterboard. Thus keep the motherboard common and keep battery power for the servos off it.
i-Bot
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1142
Joined: Wed May 17, 2006 1:00 am

Post by Robo1 » Thu Nov 27, 2008 8:49 pm

Post by Robo1
Thu Nov 27, 2008 8:49 pm

For the hardware confguration, I was thinking of distribution boards with 4 or 6 servo connectors with a servo power battery power feed and any servo specific interface liked back to the mohterboard. Thus keep the motherboard common and keep battery power for the servos off it.


This is what I already have designed and built. it has a small 20 head connector that goes to the gumstix/fpga.

Should post this schmatic when I go to my main computer with the files on.

Bren
For the hardware confguration, I was thinking of distribution boards with 4 or 6 servo connectors with a servo power battery power feed and any servo specific interface liked back to the mohterboard. Thus keep the motherboard common and keep battery power for the servos off it.


This is what I already have designed and built. it has a small 20 head connector that goes to the gumstix/fpga.

Should post this schmatic when I go to my main computer with the files on.

Bren
Robo1
Savvy Roboteer
Savvy Roboteer
Posts: 501
Joined: Fri Jun 30, 2006 1:00 am
Location: UK - Bristol

i would also be intreseded in such a breakout board.

Post by ksamay » Thu Nov 27, 2008 9:30 pm

Post by ksamay
Thu Nov 27, 2008 9:30 pm

@ Bullit:

Great bot, Can we see some more pics of your 3rd generation robot?

I also dream of implementing the the gumstix board someday!

What do you mean by a voltage monitor?, which one do you use? can you please provide some more info on implementing them.

I have actually spoiled several Lipo becoz of over discharge.
@ Bullit:

Great bot, Can we see some more pics of your 3rd generation robot?

I also dream of implementing the the gumstix board someday!

What do you mean by a voltage monitor?, which one do you use? can you please provide some more info on implementing them.

I have actually spoiled several Lipo becoz of over discharge.
ksamay
Robot Builder
Robot Builder
Posts: 13
Joined: Tue Oct 28, 2008 5:55 am

Post by StuartL » Fri Nov 28, 2008 6:54 pm

Post by StuartL
Fri Nov 28, 2008 6:54 pm

Matt and I have been looking at making an AVR32 MCU board with Linux capability. I didn't realise the Gumstix stuff was so cheap. $129 without BT and $159 with BT is not that much more than we can make one ourselves in 1-2off quantities. In higher quantities we can do things more cheaply but obviously still lacking the Gumstix community.

Has anyone benchmarked the Gumstix running Linux to see whether the OS overhead is enough to prevent running a decent RTOS and polling loop with all the maths?
Matt and I have been looking at making an AVR32 MCU board with Linux capability. I didn't realise the Gumstix stuff was so cheap. $129 without BT and $159 with BT is not that much more than we can make one ourselves in 1-2off quantities. In higher quantities we can do things more cheaply but obviously still lacking the Gumstix community.

Has anyone benchmarked the Gumstix running Linux to see whether the OS overhead is enough to prevent running a decent RTOS and polling loop with all the maths?
StuartL
Savvy Roboteer
Savvy Roboteer
Posts: 350
Joined: Mon Jun 04, 2007 3:46 pm
Location: Thatcham, Berkshire, UK

PreviousNext
32 postsPage 2 of 31, 2, 3
32 postsPage 2 of 31, 2, 3