PDA

View Full Version : Bioloid-Based Bot-Brains



DresnerRobotics
07-08-2008, 02:05 PM
Well to be honest, I probably won't be developing my gaits on the CM-5. First of all unless you have a 7dof biped like the MicroRaptor (and my own copycat, Hagetaka) the gaits wont do you any good. I dont mind sharing my motion files, but they likely wont do anyone any good unless they have the same config, and most bipeds are 6dof.

Secondly, the CM-5 isn't going to be up to snuff for Mech Wars most likely. You might be able to rig something with the way that Alpha did, using the Robot Console, bluesmirf and a gamepad (which was just emulating a keyboard punching in commands) but your control overall will be limited.

I'm looking into the Gumstix Verdex running Windows CE 6.0 Embedded, which in turn will run C#. C# interface on the host PC will read the joystick and relays commands to the Gumstix.

I'd suggest anyone going the Bioloid route to look into alternate controllers, or start learning URBI (documentation on it is subpar though, and its practically a proprietary language)

ScuD
07-08-2008, 02:11 PM
It would be the perfect excuse to finally slap those ARM7 controllers i have laying around on a pcb...

But I need some more experience with the C coding to give me that little nudge...

How's the CM-5 perform with C btw? anyone an idea on that?

DresnerRobotics
07-08-2008, 02:13 PM
Nope, havent looked into it. CM-5 is only an Atmega128, pretty limited. I somehow doubt it will be able to handle everything I have planned for my mech...

A-Bot
07-08-2008, 02:16 PM
I'm looking into the Gumstix Verdex running Windows CE 6.0 Embedded, which in turn will run C#. C# interface on the host PC will read the joystick and relays commands to the Gumstix.


I'm also leaning towards using C#. I won't have a host PC though. I have this crazy idea that robots should have all their brains onboard. I'll probably transmit video to a small LCD TV for "pilot mode." Nothing's 100% firm for me right now though.

DresnerRobotics
07-08-2008, 02:21 PM
I'm also leaning towards using C#. I won't have a host PC though. I have this crazy idea that robots should have all their brains onboard. I'll probably transmit video to a small LCD TV for "pilot mode." Nothing's 100% firm for me right now though.

What would you use for a controller? I was planning on using a host PC mostly just to interface the joystick to the Gumstix over wifi, and also to view the wifi camera. All the gaits, motor control and balancing would be done onboard.

Adrenalynn
07-08-2008, 02:22 PM
The Gumstix should be able to run Mono just fine, right? So you could run your C# under Linux...

Adrenalynn
07-08-2008, 02:25 PM
Nope, havent looked into it. CM-5 is only an Atmega128, pretty limited. I somehow doubt it will be able to handle everything I have planned for my mech...

The ATMega128 can be programmed with AVRgcc and a programmer, so it's C programmable.

That said - there's just not that much "there" there with the little 128... I agree that it'd be pretty limited.

JonHylands
07-08-2008, 02:28 PM
Theoretically, the gumstix can run mono, but I don't know if anyone has actually gotten it to work.

Neither Tyb nor I are much in the way of linux experts, so getting stuff like that going is way past our collective abilities.

ScuD
07-08-2008, 02:34 PM
Nope, havent looked into it. CM-5 is only an Atmega128, pretty limited. I somehow doubt it will be able to handle everything I have planned for my mech...

So far I've only struck the limit of a controller when trying my hand at inverse kinematics.
But since that was on an 8 bit controller, floating point math causes loads of overhead.

Since i'm no math-wizz and can't seem to figure out how to do it with integers, i'm going to go for 32 bit controllers like the arm, I have some ADuC7 series somewhere on my desk

Thing is i'm used to writing in assembly which gives quite compact code, but takes forever to write even simple tasks..

A-Bot
07-08-2008, 02:35 PM
What would you use for a controller?

I'm going to develop the bot on my desktop and add the controller later. I'd like to run a pico, but I'm not sure I want to spend that much. Maybe something else running linux.

DresnerRobotics
07-08-2008, 02:40 PM
I'm going to develop the bot on my desktop and add the controller later. I'd like to run a pico, but I'm not sure I want to spend that much. Maybe something else running linux.

I'm sorry, I should've clarified. What will you use as your remote controller? I'm using a Joystick on a host PC for example.

JonHylands
07-08-2008, 02:42 PM
ScuD,

The only real issue with using something like an ARM7 is communicating with the bus. The Bioloid bus runs at 1.0 Mbps, so you have two choices:

- connect through your hardware UART - most I've seen won't talk at that exact speed. The ATmega line will, however, if they are running at 8 or 16 Mhz.

- connect using a USB interface chip - requires the controller to have USB host, which isn't typical with ARM7.

The gumstix and the hammer are both ARM9-based (well, strictly speaking the gumstix is an XScale, but its in the same class as ARM9). They both have full linux installs, and both have USB host, which allows you to just plug in an FT232 board like the one I sell and start talking to the bus over a virtual com port at 1.0 Mbps.

ScuD
07-08-2008, 02:47 PM
Jon, regarding the bus system, is it an asynchronous serial signal, eg the master cannot control the data speed?
If i understand correctly, what you're saying is that the servo's output the signal on 1Mhz no matter what, and isn't controlled by the master?

That is indeed a setback on the controllers i could use..

A-Bot
07-08-2008, 02:50 PM
I'm sorry, I should've clarified. What will you use as your remote controller? I'm using a Joystick on a host PC for example.

Current plan is to use a wireless USB gamepad.

DresnerRobotics
07-08-2008, 02:51 PM
Current plan is to use a wireless USB gamepad.


Careful with that stuff, range is limited and who knows what channel it runs on, could run into interference.

JonHylands
07-08-2008, 02:52 PM
Yes, that is how it works. Its basically like a normal RS-232 system, except the signals are TTL level, and the Rx and Tx lines are shared on a single wire (half-duplex).

The AX-12s are using the hardware UART of the ATmega8 to communicate. You can adjust the bus speed (with a setting on each device) to a number of different settings, but you have to go pretty low (115200) to get to something a "normal" controller can use.

Adrenalynn
07-08-2008, 03:05 PM
I bet one could hack together a dual joystick controller, a larger ATMega, and a Zigbee... Things that make you go "hmmm"

ScuD
07-08-2008, 03:10 PM
I just checked the datasheets, the Aduc can take an external oscillator, so i can get one of those fancy maxim programmable oscillator/dividers and should be able to get a perfect 1Mhz uart bus signal.

But uhm, i'm kinda ruining the thread here, is there some place/thread i can get more info on the actual inner workings on the bioloid system (eg. bus protocol and such)?

Adrenalynn
07-08-2008, 03:12 PM
Maybe the "Ultimate Bioloid" - or you could just start your own thread. 23 posts, it's time you made the leap. :)

ScuD
07-08-2008, 03:18 PM
Amazing, what dumb questions i can ask :veryhappy:

Thanks, i'll check that thread

A-Bot
07-08-2008, 03:21 PM
I would like to be able to use a flight stick with the bot. I've never attempted to interface any type of joystick from code. I have no idea what kind of joystick support is available in C# APIs, but I figured at the very least an xbox controller would be supported. I need to do some research here.

Adrenalynn
07-08-2008, 03:24 PM
Very very good joystick support. The entire whole of DirectX is at your disposal via C#. If you've ever seen a video game do it, then you can do the same thing...

A-Bot
07-08-2008, 03:43 PM
Very very good joystick support. The entire whole of DirectX is at your disposal via C#. If you've ever seen a video game do it, then you can do the same thing...

That's cool. Most of my programming experience is with Java on *NIX platforms.

lamont
07-08-2008, 03:58 PM
I'll be using a LuminaryMicro 3s811 Arm chip (cortex-m3). I've got a need to sample some ADCs reasonably fast (for the foot balance sensors and the 5 axis IMU. I picked up Jon's bioloid sensor board, but may end up bringing everything to the microcontroller rather than through the bioloid bus. It's got hardware UARTs that can easily do 1mbit/s (up to 3.125, yay).

I'm wondering if I'll need to split the AX-12+'s up into individual busses. My design currently has 14 servos, and I think I should be able to poll and control them off of a single bus, but to give myself more overhead, I thought about dividing them into two groups and running each one as an individual bus. I'll probably just see what kind of polling rate I can get for torque, position, velocity and current, then split them out if it's below 20 Hz.

I'm going to try and write a rule evaluation engine to achieve motion goals, but if that fails, I'll punt and go with something like FreeRTOS

Slightly off topic, but are most people using C# to interface with their AX-12+'s? I started work last night on a ruby library that will work with my macbook and I think that's how I'll go at least for the first testing bits. I don't actually have any working windows boxes, and I'm loathe to pick up something I can't just run anywhere. There does not appear to be a lot of stuff to build on, although I did find someone else's C# header file for various byte definitions on the AX-12 that I'm ripping off wholesale :-)

JonHylands
07-08-2008, 04:18 PM
You can do about 40 Hz to 20 servos on a single bus...

lamont
07-08-2008, 04:35 PM
excellent, that's great. I'll fire up your usb interface board tonight and put it through the ruby paces

Adrenalynn
07-08-2008, 05:50 PM
Theoretically, the gumstix can run mono, but I don't know if anyone has actually gotten it to work.

Neither Tyb nor I are much in the way of linux experts, so getting stuff like that going is way past our collective abilities.


If someone wants to get their Gumstix online with an ssh or telnet login, I'd get mono going on it for them, and document the task...

dcalkins
07-08-2008, 08:35 PM
Well to be honest, I probably won't be developing my gaits on the CM-5. First of all unless you have a 7dof biped like the MicroRaptor (and my own copycat, Hagetaka) the gaits wont do you any good. I dont mind sharing my motion files, but they likely wont do anyone any good unless they have the same config, and most bipeds are 6dof.

All controllers have their plusses and minuses. I like the robonova board and SW. Mostly because you can easily puppeteer and 'frame grab'. I taught my robonova to do the limbo in about 4 hours just frame grabbing. Wasn't as easy as it could be, but it worked.

My mech will use the robonova board.

full disclosure: RoboGames biggest sponsor is Hitec. (Though we approached them. Mostly because of all humanoid as of 2 years ago, I found there's to be the best value, and the strongest. )

Robotis (make of the Bioloid) is also a sponsor, and also make a great product. Nothing against them, I just consider them very different beesties. And for this particular endeavor, I think the MR-C3024 is a better option.

Regardless of sponsorship issues, I will be building my mech using HSR-5990's and the MR-C3024 board.

I'll be using lynxmotion brackets and thunderpower batteries....

JonHylands
07-08-2008, 09:21 PM
I'll be using a LuminaryMicro 3s811 Arm chip (cortex-m3). I've got a need to sample some ADCs reasonably fast (for the foot balance sensors and the 5 axis IMU. I picked up Jon's bioloid sensor board, but may end up bringing everything to the microcontroller rather than through the bioloid bus. It's got hardware UARTs that can easily do 1mbit/s (up to 3.125, yay).

My foot pressure boards and IMU run at 100 Hz internally, and the control table entries are updated at that rate from the internal A/D ports. Unless you want to go faster than that, there isn't much point in doing it direct.


Slightly off topic, but are most people using C# to interface with their AX-12+'s?

I use Squeak Smalltalk (http://www.squeak.org) for everything.

DresnerRobotics
07-08-2008, 10:10 PM
All controllers have their plusses and minuses. I like the robonova board and SW. Mostly because you can easily puppeteer and 'frame grab'. I taught my robonova to do the limbo in about 4 hours just frame grabbing. Wasn't as easy as it could be, but it worked.

My mech will use the robonova board.

full disclosure: RoboGames biggest sponsor is Hitec. (Though we approached them. Mostly because of all humanoid as of 2 years ago, I found there's to be the best value, and the strongest. )

Robotis (make of the Bioloid) is also a sponsor, and also make a great product. Nothing against them, I just consider them very different beesties. And for this particular endeavor, I think the MR-C3024 is a better option.

Regardless of sponsorship issues, I will be building my mech using HSR-5990's and the MR-C3024 board.

I'll be using lynxmotion brackets and thunderpower batteries....

Holy crap man, that sounds like it'll be a beast. You going for a humanoid configuration? Reverse knee?

Wingzero01w
07-09-2008, 12:22 AM
I got tempted to get a bioloid so im saving for that now. The robobuilder wont cut it for mech wars. Im using a gumstix or hammer.

DresnerRobotics
07-09-2008, 12:35 AM
Robobuilder might work just fine, but you'd probably want to look into the metal bracket system they're talking about, along with the higher torque servos.

dcalkins
07-09-2008, 12:59 AM
Holy crap man, that sounds like it'll be a beast. You going for a humanoid configuration? Reverse knee?

Reverse knee, yes.

It won't look too dissimiliar that the classic mechwarrior painting:
http://cache.kotaku.com/assets/resources/2007/07/MechWarrior_3_cover.jpg

One thing I've learned about humanoids. No such thing as too much torque. the 5990's at 7.4V with 4000mA should do it (giving each joint around 400 oz-in)... But I wouldn't be suprized if it didn't.

Walking is HARD.

LoDebar
07-09-2008, 01:13 AM
Mechwarrior the best computer game ever made. Anyone here ever play the game when if first came out on a 286 computer? That was when the game was at its best.

Anyways, no one is talking about Basic Stamps.

If you are very creative in your programming skills, you can make a Basic Stamp do anything.

I have a 10 DOF and a 17 DOF bipeds running in full autonomous competition modes using a single Basic Stamp 2px.

Who needs horsepower when the robot is going to be remotely controlled.

Pete

Adrenalynn
07-09-2008, 01:17 AM
Mechwarrior the best computer game ever made. Anyone here ever play the game when if first came out on a 286 computer? That was when the game was at its best.


I suffered through sitting there watching my boyfriend play it ENDLESSLY... And then at least double that time listening to him rant on and on about this configuration versus that configuration and overheating power supplies on the light mechs with this or that laser and ...

JonHylands
07-09-2008, 01:54 AM
Anyways, no one is talking about Basic Stamps.

If you are very creative in your programming skills, you can make a Basic Stamp do anything.

I have a 10 DOF and a 17 DOF bipeds running in full autonomous competition modes using a single Basic Stamp 2px.

Who needs horsepower when the robot is going to be remotely controlled.

Pete

Well, that depends on how much behaviour you want in your robot. It would be pretty hard to incorporate dynamic stability from an IMU in a biped using a basic stamp.

Where are the walk sequences stored in your BS2px bipeds?

dcalkins
07-09-2008, 03:12 AM
Mechwarrior the best computer game ever made. Anyone here ever play the game when if first came out on a 286 computer? That was when the game was at its best.

Anyways, no one is talking about Basic Stamps.

If you are very creative in your programming skills, you can make a Basic Stamp do anything.

I have a 10 DOF and a 17 DOF bipeds running in full autonomous competition modes using a single Basic Stamp 2px.

Who needs horsep

I have had 20 foot tall flamethrowers running off BS2's.
I've had a head and shoulders robot make drinks and exchange whitty banter with the American Charge d' Affairs in Vienna, running on two 2BSX's.
I've taught kids fro 30 bay area highschools how to monitor the light level o a room with a BS2. And respond accordingly..

Yes, a stamp is a fine thing.

dcalkins
07-09-2008, 03:17 AM
I have had 20 foot tall flamethrowers running off BS2's.
I've had a head and shoulders robot make drinks and exchange whitty banter with the American Charge d' Affairs in Vienna, running on two 2BSX's.
I've taught kids fro 30 bay area highschools how to monitor the light level o a room with a BS2. And respond accordingly..

Yes, a stamp is a fine thing.


And the MR-C3024 is running off a similar atmel, and the code is very close. Puerto Rican VS. Cuban close. So you can use both it you feel the need, but I don't think there's anything to be gained.

Electricity
07-09-2008, 04:54 PM
Spill something on your keyboard? beer perhaps? ;p

So seriously, this discussion is SO way over my head, I don't even know where to begin asking questions or googling answers. I really need to pick me up a kit and start learning.

dcalkins
07-09-2008, 06:54 PM
Spill something on your keyboard? beer perhaps? ;p

Man. I must been exhausted...

But beer sounds better!

LoDebar
07-10-2008, 01:58 AM
And IMU would be a nice feature.

But this is an R/C event. If the robot falls over, it will be pretty easy to figure that out, and command the robot to stand up again and continue to fight. The IMU will definately help keep the robot from falling over in the first place. But is it really needed?

I like to keep things simple.

Too many times my perfectly running robot at home goes into demo mode at shows.

Pete
Who let the magic grey smoke out?

JonHylands
07-10-2008, 02:14 AM
See, I don't see this as an R/C event, at least not for me. My drive is completely towards autonomous operation, and having (and using) advanced sensors is a big part of that.

The main processor I'm using on MicroRaptor is actually kind of underpowered for what I want to do, but I'll see how it goes. If I need more horsepower, I'll trade up from the 200 Mhz Hammer with 32 MB of RAM to one of my 600 MHz gumstix models, with 128 MB of RAM.

ScuD
07-10-2008, 02:30 AM
I sort of agree on that one.

Personally i'd like to be able to build a bot that can maintain it's balance and adapt its stride while i just tell it to "walk forward" , "turn left", etc etc.

It'd kick ass if we can fight our bots over the rubble of some collapsed buildings without them tipping over every second, but i think we'll be needing quite some development before reaching that level :o

dcalkins
07-10-2008, 03:19 AM
See, I don't see this as an R/C event, at least not for me. My drive is completely towards autonomous operation, and having (and using) advanced sensors is a big part of that.

Sweet!

While your raptor is busy shooting at the lexan arena walls, shadows of audience members on the arena floor, and the styrofoam buildings in the middle-ground, I will be happy to use 50,000 years of evolution and a wifi remote to use my teloperated robot to shoot directly at your "autonomous" robot.

JonHylands
07-10-2008, 03:26 AM
Heh, I guess we'll just have to see. I'm not at all sure that I will be running fully autonomously in the first year, but it will definitely be heading in that direction.

ScuD
07-10-2008, 03:32 AM
I'd love an autonomous category too, in a few years.
Even if they keep shooting at every little blinking light they see, it'd be a great way of researching AI

Adrenalynn
07-10-2008, 04:07 AM
Sweet!

While your raptor is busy shooting at the lexan arena walls, shadows of audience members on the arena floor, and the styrofoam buildings in the middle-ground, I will be happy to use 50,000 years of evolution and a wifi remote to use my teloperated robot to shoot directly at your "autonomous" robot.


You raise an excellent point, comparing it to evolution.

50,000 years of false starts, untenable mutations, and general failures. [As an aside, I'd contend one doesn't have to look very far to see more of the same even today]

Regardless, at some point someone had to grow a pair... of legs, and use 'em to drag their arse out of the primordial ooze.

So on the one hand we have the remote control splashing around in the muck and having a grand ol' time, and on the other we have fledgling attempts to evolve robotics. If this is all about "winning", I'll just build a turret that sits in the corner, spins at a thousand RPM, and spits out 365,000 rounds/minute sync'd to the turret's rotation. EVENTUALLY it kills everything. I win.

As enjoyable as playing with one's self might be, the Tango is still my preference...