PDA

View Full Version : [Question(s)] Hexapod hardware for research projects



Stephen
09-22-2009, 05:11 PM
Hello.

Please forgive the newbie questions I'm about to post! I'm a software developer now studying for a degree in intelligent systems and robotics in my 'spare time'. I have current and future research project needs and I'm hoping to garner some initial help here regarding hardware. For starters the robot(s) will be fully autonomous and I want to write the behavioural programming in C (I have experience in many languages and I have my preferences for C here!). This somewhat leads me to my hardware selection problem.

I'm quite new to hardware and certainly don't have the expertise or resources to build my own parts, so I've been looking at various robot kits here, Lynxmotion, Vex etc. (up to now I've just been using basic LEGO kits). Research plans involve something of the hexapod variety and Lynxmotion seem to have some great hardware. Flexible limbs are going to be important to me (I'm looking more specifically at their round-bodied hexapods with the 3-DOF legs). Lynxmotion also offer additional parts for their main hardware that will be of interest (the add-on deck and feet sensors for instance) and it seems that overall the hardware is unmatched by any Vex options. Aside from my running Linux (I do however have a VM Windows XP Pro as a last resort) I simply do not want to be coding in any form of BASIC, and herein lies my problem with Lynxmotion!

I'm not entirely sure what exact questions to ask right away here, but I'm looking for advice regarding possible hardware alternatives to the above, or a hybrid solution where I would use, say, a PIC controller etc. with the Lynxmotion mechanical hardware. What would my options be in terms of using another controller with something from Lynxmotion? I also need to keep in mind that I'll be adding vision, foot, and likely a couple of ultrasonic sensors initially, so I'll need enough power both in terms of battery and servo control (on top of the already 18 servos for a standard 3-DOF hexapod). Would a VEX controller be enough initially? As mentioned before my preference to coding is in C, but I wouldn't be opposed to RobotC either (guessing that where there's RobotC there would be a straight C option anyway).

Aside from say a programmable controller, what else would I need? Any good suggestions on manufacturer etc. also?

Any help is greatly appreciated. Hopefully I'll be able to ask some more direct questions based on your feedback!

Thanks,
Stephen

LinuxGuy
09-22-2009, 06:01 PM
Please forgive the newbie questions I'm about to post!
We've all been there at one time or another and are frequently there again when starting off to learn about new things. :happy:


I'm quite new to hardware and certainly don't have the expertise or resources to build my own parts, so I've been looking at various robot kits here, Lynxmotion, Vex etc. (up to now I've just been using basic LEGO kits). Research plans involve something of the hexapod variety and Lynxmotion seem to have some great hardware. Flexible limbs are going to be important to me (I'm looking more specifically at their round-bodied hexapods with the 3-DOF legs). Lynxmotion also offer additional parts for their main hardware that will be of interest (the add-on deck and feet sensors for instance) and it seems that overall the hardware is unmatched by any Vex options. Aside from my running Linux (I do however have a VM Windows XP Pro as a last resort) I simply do not want to be coding in any form of BASIC, and herein lies my problem with Lynxmotion!
Keep in mind that when moving to a C programmable microcontroller, you are going to have to code up all the IK stuff for moving the legs, and everything else. I started out with the Lynxmotion Basic Atom (not the Pro), and later got an Atom Pro. While tinkering around with the Atom Pro, I decided I'd rather have more control over how things are done and started moving towards C programmable microcontrollers.

I got an Arduino (would have gotten a RoboDuino if it had been available then) and started tinkering with controlling various things like servos, sensors, etc. I moved on to a Sanguino (an Arduino on steroids, compatible with the Arduino environment after replacing some libraries and adding a new board selection) and this is what I still do most of my learning about new stuff with.

The RoboDuino (http://www.trossenrobotics.com/roboduino.aspx) is designed to make connecting sensors, servos, etc. easy and for use on small robots. This might be a good way to start out, and it has a complement of I/O very similar to the Basic Micro Atom processors. I don't know whether the RoboDuino (http://www.trossenrobotics.com/roboduino.aspx) uses the Atmega168 or the Atmega328 (twice the memory, same I/O). If it uses the Atmega168, you can always pop in an Atmega328 as a direct replacement, and the Arduino environment already supports this configuration. A RoboDuino (http://www.trossenrobotics.com/roboduino.aspx) might be a reasonable way to start out. The Atmega series microcontrollers are very popular and widely used in hobby robotics, and there is an upgrade path to controllers such as the AXON (http://www.trossenrobotics.com/p/axon-microntroller.aspx) by Society of Robots. I just recently bought an AXON (http://www.trossenrobotics.com/p/axon-microntroller.aspx) and am now starting to learn how to use it.

Regardless of which microcontroller you choose, I highly recommend using an SSC-32 for all servo control on the hexapod. I just don't think there is any better choice for servo control, and many are available at higher prices with much less capability.


What would my options be in terms of using another controller with something from Lynxmotion? I also need to keep in mind that I'll be adding vision, foot, and likely a couple of ultrasonic sensors initially, so I'll need enough power both in terms of battery and servo control (on top of the already 18 servos for a standard 3-DOF hexapod).
Vision may be the only thing that would require much more processing power than an Atmega series microcontroller can handle. They can handle ultrasonic, infrared, and many other types of sensors just fine. I've got my Sanguino handling a PING ultrasonic and Sharp GP2D12 IR sensor now and know it could handle quite a few more of each easily. However, the GP2D12 requires an analog input, which is often in very short supply on many microcontrollers. This would also be true for accelerometers (2 or 3 axis, meaning 2 or 3 analog inputs), and others requiring analog inputs.

The current big gun of Atmega based robotics controllers is the AXON (http://www.trossenrobotics.com/p/axon-microntroller.aspx) at present. It does have 16 analog inputs, which is very nice. Other than seeming to limit the number of digital inputs usable to 16 (shared with the analog inputs), and all other I/Os being having unregulated (raw battery voltage vs regulated 5V), I think the AXON (http://www.trossenrobotics.com/p/axon-microntroller.aspx) is an awesome robotics controller. I'll be using my AXON (http://www.trossenrobotics.com/p/axon-microntroller.aspx) mainly for its large number of analog I/Os, processing power, and memory capacity.

8-Dale

Adrenalynn
09-22-2009, 06:36 PM
You certainly don't need to be doing any of that BASIC junk! Don't waste your time.

Just about any general purpose MCU will have C/C++ development toolchain available.

The Axon is a logical because you can control a lot of servos with it directly, and it has a decent amount of memory.

But if you're looking for an AI platform, I would suggest foregoing the general purpose controller and look to something more along the lines of the SSC-32 servo controller and going to it over XBee Wireless (a drop in serial wireless replacement). At that point you can bring your AI off to a PC or entire farm of PCs, and have them "order around" the servo controller.

The SSC-32 uses a trivially simple serial control protocol, so issuing raw commands to it on the over-the-air link is equally trivial.

You could also use something like the Sanguino (which has two UARTs), and connect one serial to the servo controller (SSC-32) and one to the XBee. That way you can have all the sensors you want on the bot and encoded to ship out to the PC for decision making. You could also have onboard behavior and run-out programs so that realtime behavior decisions and loss-of-signal decisions don't end your day.

sam
09-22-2009, 06:59 PM
I love the SSC-32. It's a great product, as everything from Lynxmotion.

I can't say much about AI 'cause I don't know much about that. Depending on what you intend to do, something like the AXON could be enough, or maybe a computer, like Adrenalynn said.

Sam

Adrenalynn
09-22-2009, 07:03 PM
Traditional neural networking approaches are like time and money and beauty. You can never have enough time, enough money, or be too beautiful.

Neural Networking is about memory and processing. The NN's I worked on for video encoding take up exabytes these days and require hundreds and even thousands of ghz of processor throughput and backplane.

sam
09-22-2009, 07:14 PM
Exabytes? As in a million terabytes? Whew, that's a loooooooooot. :eek:

Can't wait to make that fit in the head of a robot ;)

lnxfergy
09-23-2009, 12:21 AM
DISCLAIMER: I'm seriously biased here: I love my Bioloid stuff and will never touch another hobby servo again after having a Bioloid kit. Vanadium Labs, the producer of ArbotiX boards, is also my company. I also hate wirewrapping and protoboarding robots...

Ok, going in a slightly different direction, as a fellow Linux-user, C-programmer, and CS-gradstudent, have you looked at the Bioloid Kit at all? May not be as stylish as a Phoenix, but it is nearly infinite in it's ability to reconfigure into whatever you want, you can go from rover->hex->quad in a day, without ever touching more than screwdriver.

One of the troubles that people have had with the Bioloid over time has been the controller, specifically it's not easily programmed to do custom stuff. If you take a look at the front page of Trossen Robotics, you'll note a new product announcement on the blog that you might be interested in: the ArbotiX robocontroller will be available very shortly (literally, there is a big box of them en route to Trossen Robotics). As a CS guy, you'll be happy that you can connect a slew of AX-12s, an XBEE wireless radio, and plenty of IR/Sonar sensors to the board without ever lifting a soldering iron, or even stripping a cable other than the power connection (and if you buy a pre-stripped cable from Radio Shack, you wouldn't even need that).

-Fergs

Stephen
09-23-2009, 09:11 AM
Wow, thanks for the responses everyone! I certainly have a couple of avenues to explore now. I'm learning as I go regarding the hardware side of things and the information here is extremely helpful. I'll look into the SSC-32 and Axon controllers, and also the Bioloid kit (I'll check out the forthcoming ArbotiX too!). I should really compile a definite list of pieces I think I need. I'll be back with more questions that's for sure! Thanks again!! :)

DresnerRobotics
09-23-2009, 11:11 AM
I have to 2nd lnxfergy's recommendation here, for someone going to school in your field, you'll want something with a lot of room to grow. The Bioloid Kit + the arbotiX controller is going to be an amazing development platform. Stay tuned for it's availability in the very near future ;)

Stephen
09-23-2009, 12:16 PM
So it looks to me like the arbotiX controller is fully user programmable in C/C++ (via the BioloidController library). Is that correct or am I missing something?

I just want to check as that's exactly what I'll be needing. I'm guessing also that I'll be able to use the PyPose software to generate stub code for gaits etc. that I could then hack. That would save me quite a bit of time up front. Is PyPose Windows or Linux, or both? Just curious (I have a Windows VM on Ubuntu).

This is looking like the way to go for me. :D

lnxfergy
09-23-2009, 12:22 PM
So it looks to me like the arbotiX controller is fully user programmable in C/C++ (via the BioloidController library). Is that correct or am I missing something? I just want to check as that's exactly what I'll be needing. This is looking like the way to go for me.

Yep, its basically an Arduino on steroids, with lots of I/O headers, and custom libraries that handle all the low-level stuff. There's also the ability to create and play motion sequences. There will also be IK support very soon...

Note that Arduino supports C code, with the C++ addition of classes, HOWEVER, the AVR-GCC compiler has no new/delete keywords, so your classes have to be statically created rather than dynamic.

-Fergs

Stephen
09-23-2009, 12:30 PM
Yep, its basically an Arduino on steroids, with lots of I/O headers, and custom libraries that handle all the low-level stuff. There's also the ability to create and play motion sequences. There will also be IK support very soon...

Note that Arduino supports C code, with the C++ addition of classes, HOWEVER, the AVR-GCC compiler has no new/delete keywords, so your classes have to be statically created rather than dynamic.

-Fergs

Brilliant, that's good to know, especially future IK support too. Thanks so much!

Adrenalynn
09-23-2009, 01:44 PM
PyPose is open-source Python. The code on the MCU is written in C for the AVR controllers.

The BioloidController library is also open-source. It's a tour-de-force just in open-source code if nothing else. And the AX-12 servos are psycho-cool. Now that I have them myself, I suddenly find myself losing all interest in PWM servos. They're quiet, they go where you put 'em and stay where you put 'em (compliance), and they're a dream to write code for.

The Arbotix is insanely cool. The _perfect_ small 'bot controller with its built-in xbee, and open source code. I'm one of the very few blessed to have a prototype v1 board [or two] here.

It's blow-your-mind awesome. Get in line, these things won't stay on the shelves.

Did anyone mention that it was developed and coded by our very own lnxfergy? Oh - and rumor has it [from a fairly reliable source ;) that we aint seen nothing yet software-wise.]

Stephen
09-23-2009, 02:37 PM
PyPose is open-source Python. The code on the MCU is written in C for the AVR controllers.

The BioloidController library is also open-source. It's a tour-de-force just in open-source code if nothing else. And the AX-12 servos are psycho-cool. Now that I have them myself, I suddenly find myself losing all interest in PWM servos. They're quiet, they go where you put 'em and stay where you put 'em (compliance), and they're a dream to write code for.

The Arbotix is insanely cool. The _perfect_ small 'bot controller with its built-in xbee, and open source code. I'm one of the very few blessed to have a prototype v1 board [or two] here.

It's blow-your-mind awesome. Get in line, these things won't stay on the shelves.

Did anyone mention that it was developed and coded by our very own lnxfergy? Oh - and rumor has it [from a fairly reliable source ;) that we aint seen nothing yet software-wise.]

Yeah, I read some of lnxfergy's blog. This is very cool. There's certainly a wealth of knowledge and talent here, luckily for me! Yours and all other replies have been invaluable to me. I had little to no direction in terms of hardware 24 hours ago.

Sounds like I may have a long queue to join if I'm to get my hands on an arbotiX! Which btw is the direction I'm going to take, that and Bioloid parts. Thanks again for you help! :)

Adrenalynn
09-23-2009, 02:55 PM
It's a good choice for university-level research, I think.

The Achilles Heel of the Bioloid has long been the CM5, IMHO. The servos themselves, the AX-12's [or larger] are a researcher's fantasy, with their programability, their insanely complete reporting, compliance, compensation, etc. A great many researchers choose the Bioloid, then spend a semester or more just developing a system to replace the CM5. What 'Fergs has done here is create the CM5 replacement that is to the CM5 what a the AX-12 is to a PWM servo.

That said - it's not a total turn-key "oh hey look it's a robotz toyz" product. Ideal for the researcher, but an Isobot it aint. It will save you hundreds and hundreds of hours of learning curve and hardware/low-level library development though!

Stephen
09-23-2009, 05:17 PM
I think I'll get the Bioloid Comprehensive Kit. I was going to just get individual parts thinking I'd be using the arbotiX in place of the CM5, but the kit seems like a much better deal in terms of price & parts. The CM5 will give me something to play with while I wait on the release of the arbotiX (and the possible back-order! ;) ). Speaking of, does anyone know how much the arbotiX will be?

Thanks,
Stephen

Adrenalynn
09-23-2009, 06:01 PM
Don't quote me, but if I were a betting girl, I'd bet in the $100 neighborhood, plus the cost of the XBee. I'd guess, out the door, you're in the < $150 neighborhood. You'll also need something like the XBee Explorer for the PC-side of the communications link. Let's see:... Two of these (http://www.trossenrobotics.com/store/p/5200-XBee-1mW-Communication-Module.aspx) and one of these: http://www.trossenrobotics.com/store/p/5828-XBee-Explorer-USB.aspx

Yes, the comprehensive kit is the absolute deal. You _want_ all those brackets - Yeah verily NEED all those brackets (don't I know - pout).

I think if it were me and I had cash-in-hand, I'd give Andrew a call at Trossen Robotics and _demand_ he put me on the list to get one of the first boards, then fling some money at him, if I were worried about backorder issues.

In my life-experiences, I've noticed that companies love pre-orders/pre-sales. It gives them some positive cashflow against future sales and also helps them gauge future potential market reaction.

** Note: I don't work for Trossen. All of this is educated speculation...

Stephen
09-24-2009, 02:12 PM
Well I've placed my order and this is what I'm getting:

Bioloid Comprehensive Kit
XBee wireless (1mW Comm. Module) x2
XBee Explorer USB + USB cable

I'll also be getting the arbotiX when it's available and an AVR programmer. I'm pretty excited to get working with this setup! This will fit in nicely with my studies and research plans. I hope to provide future updates as and when I build something useful. I'll no doubt be back here with more questions!

Thanks so much to you all for your invaluable advice and information! Thanks also to Andrew for helping me with my order earlier today!

Cheers,
Stephen

jes1510
09-24-2009, 02:22 PM
Those are all solid choices. You should get a ton of functionality out of that system.

Adrenalynn
09-24-2009, 02:32 PM
Woot! Good choice! :)

Please do stop by regularly. One of the respondents in this thread (lnxfergy) is the creator of the arbotiX, so there's a wealth of knowledge here - and I'd love to see you contribute to it too! :)

DresnerRobotics
09-24-2009, 02:40 PM
I moved our Xbee adapter discussion over to this thread (http://forums.trossenrobotics.com/showthread.php?t=3580) since we (myself included ;) ) were getting a bit off topic.