PDA

View Full Version : Student project



csdude
05-20-2008, 10:20 AM
Hello, we want to start a student robot project at the university where I work.

Basically we want to get started by turning a remote control car into a robot.

We have a few 'requirements' that we are looking at.

We want to remove the RC part out of a remote control car and replace it with a computer board.

We are thinking about a mini pc board, with wireless capability that can run linux. Of course the mini-pc board will need an interface to control the servos on the car.

Has anyone here done this before (probably).

What is a good way to get started, what kind of rc-car (a pick up style one probably?) What kind of mini pc board ? what kind of controller board.

Any tips pointers etc would be great,

Ron

LinuxGuy
05-20-2008, 10:33 AM
Basically we want to get started by turning a remote control car into a robot.

We have a few 'requirements' that we are looking at.

We want to remove the RC part out of a remote control car and replace it with a computer board.

We are thinking about a mini pc board, with wireless capability that can run linux. Of course the mini-pc board will need an interface to control the servos on the car.
You may run into size problems with mini PC boards on an RC car. The Pico-ITX is the smallest x86 compatible board available currently, and it is from VIA.

Have you considered an ARM9 processor? They run full Linux also. Smaller size too, typically.

Which R/C vehicle are you considering? Depending on which one, it may be harder or easier to do what you want. The Traxxas E-Maxx is very popular for robotic conversions and has many third party parts available for it. Almost everything is replaceable.

8-Dale

csdude
05-20-2008, 11:05 AM
At this point I don't have any parts yet. So I can choose any RC vehicle I want.

I have not considered an ARM9 processor. To be honest, as a starting point I just considered a X86 style board because of 'familiarity'.

I could use an ARM9 processor board, provided I can get one with 802.11 (or so) wireless networking hardware.

I am open to any suggestions. We havent bought any hardware yet. However, after I make an initial choice, I want to have as many options as possible open for later on extending the project (sensors etc etc)

thanks for your swift reply,

Ron

LinuxGuy
05-20-2008, 11:28 AM
I have not considered an ARM9 processor. To be honest, as a starting point I just considered a X86 style board because of 'familiarity'.
I already have WiFi G working with the Hammer (200 MHz Samsung S3C2410A, 32 MB RAM, 16 MB Flash, 40 pin DIP, runs full Linux). :veryhappy:



I am open to any suggestions. We havent bought any hardware yet. However, after I make an initial choice, I want to have as many options as possible open for later on extending the project (sensors etc etc)
I will be working on getting as many different things interfaced to Hammer as possible. I have a serial Bluetooth module (console port) and I2C compass wired up ready to start testing with soon.

8-Dale

Adrenalynn
05-20-2008, 11:59 AM
Have a look at the Surveyor board. You can run uClinux on it (500Mhz Blackfin). It has everything you need to control the RC car out of the box (including 1A H-Bridge motor controllers). It has a camera, so you can start doing autonomous operations straight out of the box. It has webserver/java controls to be driven over the web, straight out of the box. It has WiFi straight out of the box. It's entirely OpenSource, which makes it excellent for educational projects - everything is exposed, from the hardware and schematics down to the source code for basic image processing and recognition. It's supported in RoboRealm, a very powerful PC-based recognition system which can operate it remotely. It has some servo interfaces for controlling additional servos. It can talk to something like the SSC32, and give you another 32 channels of servo control. It has direct I2C interfacing for adding spiffy serial sensor chains, or output chains. Built-in SmallC and Lisp interpreters. An expansion bus header. JTAG debugging.

Could there be a better platform for education? Maybe. It's a little light on RAM/ROM. Of course, I can see that being repaired off the expansion header...

Anyway, have a look here: http://www.surveyor.com/blackfin/#blackfin0

That said, I've turned a remote controlled tracked pickup into a competition robot. A motor controller (a sabertooth 10 in this case), and then Sky's The Limit as far as what processing you want on there. A PicoITX is a tiny full PC computer with 1Ghz of processing power that will run from an RC battery for several hours. The Hammer looks like an excellent choice (tincantools.com). The Make Controller can be made to do the job (makingthings.com) with lots of IO. (It's an ARM7).

Personally, I have two modes of approaching such projects: 1) let the "rules" or desired task dictate the design, or 2) let the drive base dictate the design.

Once you find an RC car that you like, lots of power, an easily hacked-off body, and something that can be mounted to without inordinate trouble, then you can start looking at what motor controller you need, and once you know its inputs, then you can look at processing. That's the way I'd probably approach something so general.

Please don't leave us hanging through your project! Report back, we want to hear about it!

Matt
05-20-2008, 12:15 PM
The E-Maxx from Traxxis is a favorite for conversion to a robot chassis. MachineBus (http://www.machinebus.com/content/view/24/58/) has an article on how they did it. Unfortunately the deck is not for sale anymore, but it wouldn't be hard to make one.

csdude
05-20-2008, 12:20 PM
Ok that looks like a pretty cool solution.

however from what I see is that ucLinux is an embedded linux. Since the project is going to be 'student driven', how difficult is it to get 'ucLinux on there' ?

What is it you use for local storage ? usb keys or so ?

Of course I'll report back. Once that group of students is going to take over I will point them to this site where they can 'report back' and also use it as a resource.

btw, how much are those boards, $$$-wise approx ?

lnxfergy
05-20-2008, 12:21 PM
Hello, we want to start a student robot project at the university where I work.

Basically we want to get started by turning a remote control car into a robot.

We have a few 'requirements' that we are looking at.

We want to remove the RC part out of a remote control car and replace it with a computer board.

We are thinking about a mini pc board, with wireless capability that can run linux. Of course the mini-pc board will need an interface to control the servos on the car.

Has anyone here done this before (probably).

What is a good way to get started, what kind of rc-car (a pick up style one probably?) What kind of mini pc board ? what kind of controller board.

Any tips pointers etc would be great,

Ron

What are you overall goals for this project? What sort of tasks will this robot be doing? If your goal is to do some very sophisticated AI, then a small micro may not meet your needs. Robotics is a broad topic, typically university classes can only cover a small part at a time, else they risk having no depth.

If your goal is to build a small, inexpensive platform to try out motion stuff and just run around, then previous suggestions may be exactly what you need. I notice, however, that your user name includes "cs", so I'm guessing you may possibly be aiming more towards the AI side of robotics. If that is the case, I might suggest you look at what tools are commonly used in academia already:

At SUNY Albany, we use Sony AIBO dogs, with the Tekkotsu package (from CMU, www.tekkotsu.org (http://www.tekkotsu.org)). The newer versions of Tekkotsu run on Linux, and specifically are geared for the PicoITX board. CMU has developed a robot called Regis which is built on a Lynxmotion 4WD platfrom with a gumstix. They are just finishing up the next generation (known as Kathie lee), which is a hexapod using dynamixel servos and a PicoITX. Such hardware is expensive, but such a software package abstracts away much of the hard part of robotics, and has built ins that allow students to design behaviors using such broad tools as face recognition, color tracking, a particle filters for mapping and localization.

Another academic robotics package is Python Robotics (pyro), from Bryn Mawr (www.pyrorobotics.org (http://www.pyrorobotics.org)). This runs on a multitude of platforms (in fact, any that supports player/stage). Again, these platforms can be expensive.

At the very low-cost end is a package using Pyro and a scribbler, from Bryn Mawr's Institute for Personal Robotics in Education (IPRE, http://ipre.org/). This is a platform has slightly less power, but still quite a bit, they use to teach CS1, using robots. The text book is available free online, and students purchase their $150 bluetooth enabled, camera included, differential drive robot. Bryn Mawr has been doing this for about 2 years now I think, I'll be TAing a similar class this fall at Albany.

-Fergs

LinuxGuy
05-20-2008, 12:52 PM
Have a look at the Surveyor board. You can run uClinux on it (500Mhz Blackfin). It has everything you need to control the RC car out of the box (including 1A H-Bridge motor controllers). It has a camera, so you can start doing autonomous operations straight out of the box. It has webserver/java controls to be driven over the web, straight out of the box. It has WiFi straight out of the box. It's entirely OpenSource, which makes it excellent for educational projects - everything is exposed, from the hardware and schematics down to the source code for basic image processing and recognition.
I would love to have one of the Blackfin Camera Boards. The fact it is completely Open Source for software is wonderful. I wish it ran full Linux, but uCLinux should be quite nice also. I really want to get one of these for use in vision/imaging experimentation. I want to use one connected to Hammer. :happy:

8-Dale

LinuxGuy
05-20-2008, 12:55 PM
Another academic robotics package is Python Robotics (pyro), from Bryn Mawr (www.pyrorobotics.org (http://www.pyrorobotics.org)). This runs on a multitude of platforms (in fact, any that supports player/stage). Again, these platforms can be expensive.
I very much want to try using PyRo for the control software for W.A.L.T.E.R., but I need to figure out how to separate it from all the GUI stuff so I can actually put it on the robot.

8-Dale

csdude
05-20-2008, 12:55 PM
Well here is the kicker. There is no well defined goal. I want to get a platform for students to get started. It is NOT a class, it will be a group of science students that are going to do this as an interest group.
We incorporate some robotics in our CS1 class using the Intellibrain robots. That is more than enough for a CS1 course.

The idea is to create a project where students can come up with stuff and be creative. The idea is not to come up with a plug and play project and let them build it and than play with it for a bit. The idea is by giving them a starting point that is not a 'plug and play thing' that they after an initial start can come up with their own ideas for hardware and software to incorporate and have this as an ongoing project.
Doing AI stuff on a small (and probably slow board) is impractical, BUT that is where the networking comes in. The robot can communicate with a server (or even a cluster) to do more complex and more computing power demanding tasks.

The RC vehicle with small processor board is just an idea to get them started. Of course I am the one to create that starting point. If the student group, once they did get started, decide that, after they worked with it for a while, need or want different hardware than that is up to them to decide. (It is unlikely we'll buy them a hummer, but you probably get my drift)

I want to create a starting point that is not too easy (like intellibrain) but also not too difficult so that they will never get anything going.
That is why I want to start with a RC car and something we know will at least work so that we can provide that as a starting point.

but keep the ideas coming.. (this is a cool forum with quite a bit of response)

Ron

LinuxGuy
05-20-2008, 01:04 PM
The idea is to create a project where students can come up with stuff and be creative. The idea is not to come up with a plug and play project and let them build it and than play with it for a bit. The idea is by giving them a starting point that is not a 'plug and play thing' that they after an initial start can come up with their own ideas for hardware and software to incorporate and have this as an ongoing project.
This is how I started off with W.A.L.T.E.R., which is my chosen experimental platform. Something similar might work out well for your group. Two electric motors, motor controller, processor, sensors. I am in the rebuilding stage of W.A.L.T.E.R. now, and he is definitely not plug 'n play at the moment. There is much work to integrate everything and get it all working with the new processor (Hammer, running full Linux). I have 7 sensors plus wheel encoders at present (5 installed) for W.A.L.T.E.R. plus wheel. I also haven't installed the wheel encoders yet. Any sort of processing power could be installed on this sort of platform, including a Mini-ITX I think. W.A.L.T.E.R.'s new decks are 11 1/2" diameter, octagonal shaped. I started out with a $69.95 servo driven BOE-Bot type kit.

8-Dale

Alex
05-20-2008, 02:34 PM
I would love to have one of the Blackfin Camera Boardswe just got these in stock today (http://www.trossenrobotics.com/surveyor-srv-1-blackfin-camera.aspx):)

(please start a new thread to discuss them)

LinuxGuy
05-20-2008, 02:52 PM
however from what I see is that ucLinux is an embedded linux. Since the project is going to be 'student driven', how difficult is it to get 'ucLinux on there' ?
You want a solution that is not plug and play for these students, right? Have them learn new things that don't work right out of the box. Let them dig in with a box of components and pointers to some good websites and forums (like here, for instance). The Blackfin stuff, Lynxmotion (http://www.lynxmotion.com) stuff, etc, are all very well supported on the respective forums. 3D CAD models for all of the Lynxmotion (http://www.lynxmotion.com/) brackets are also available for use with Alibre Design (http://www.alibre.com). I did the bracket conversions so I know they work, and I design custom and new bracket models for the SES. I use Alibre Design (http://www.alibre.com/) Expert for 3D CAD, and there is a FREE version available that does not time out.

I am also using Lynxmotion (http://www.lynxmotion.com/)'s Servo Erector set (TR sells the brackets) for many things, like the arm on W.A.L.T.E.R. and such. I have other places I want to use these brackets also. :veryhappy: I have an idea for a self leveler to keep the robot level.


What is it you use for local storage ? usb keys or so ?
I have a 2 GB USB thumb drive for my Hammer, and an Edimax USB Wifi B/G adapter. I am testing several different brands of thumb drives for use with Hammer.



btw, how much are those boards, $$$-wise approx ?
The Blackfin Camera Boards are $195.00 USD list. The Hammer Kit is $239.00 USD list. I have started a beginner's to advanced tutorial for the Hammer.


8-Dale

Adrenalynn
05-20-2008, 03:11 PM
The Blackfin is a bit more than that with Wireless and motor controller. $300 is the number that sticks in my head. I'll have to go see what Trossen is offering now (thanks, Alex!)

uCLinux is easy to install on them. I'd be happy to do a tutorial...

csdude
05-20-2008, 03:41 PM
You want a solution that is not plug and play for these students, right? Have them learn new things that don't work right out of the box. Let them dig in with a box of components and pointers to some good websites and forums (like here, for instance). The Blackfin stuff, Lynxmotion (http://www.lynxmotion.com) stuff, etc, are all very well supported on the respective forums. 3D CAD models for all of the Lynxmotion (http://www.lynxmotion.com/) brackets are also available for use with Alibre Design (http://www.alibre.com). I did the bracket conversions so I know they work, and I design custom and new bracket models for the SES. I use Alibre Design (http://www.alibre.com/) Expert for 3D CAD, and there is a FREE version available that does not time out.

I am also using Lynxmotion (http://www.lynxmotion.com/)'s Servo Erector set (TR sells the brackets) for many things, like the arm on W.A.L.T.E.R. and such. I have other places I want to use these brackets also. :veryhappy: I have an idea for a self leveler to keep the robot level.


I have a 2 GB USB thumb drive for my Hammer, and an Edimax USB Wifi B/G adapter. I am testing several different brands of thumb drives for use with Hammer.



The Blackfin Camera Boards are $195.00 USD list. The Hammer Kit is $239.00 USD list. I have started a beginner's to advanced tutorial for the Hammer.


8-Dale

That was my original plan, but they are undergraduate students. So we want to have at least one working example. besides our students are not that hardware savvy.

btw, I looked at that pico ITX board. The size is 10cmX7.2cm (4" x 2.75") that would problably be small enough to put in a pickup style RC car. and it draws 16W when running (according to their site)

I am still looking what my best options are, and than make a list of parts I'd need to get this 'proto type' started over summer.

The idea you had to use USB sticks as drives is something I had in mind too, I like that idea. Than the 802.11 wireless would work very well too.
And than of course I need that 'interface' to control those RC car servo's. What do you use for power ? a custom built battery pack or so ?

Matt
05-20-2008, 03:55 PM
This old project of ours (http://forums.trossenrobotics.com/showthread.php?t=1070) may give you ideas. It is essentially a tethered PC bot that we are using joystick inputs to control.

To control an RC car you only need 2 PWM signals for most controllers. What you are doing is removing the 2 PWM signals from the radio module and substituting your own. One signal is for steering, the other for FWD/REV. There are many many servo controllers (http://www.trossenrobotics.com/store/c/2665-Servo-Controllers.aspx) to choose from.

I may sound like a broken record, but I want to see more people building projects with the serializer (http://www.trossenrobotics.com/store/p/5196-Robotics-Connection-Serializer-WL.aspx) which allows you to have a wireless connection to a PC and save a lot of headache on the bot itself. Something to think about. (It also already has PWM output on it)

LinuxGuy
05-20-2008, 03:59 PM
That was my original plan, but they are undergraduate students. So we want to have at least one working example. besides our students are not that hardware savvy.
Get subscriptions to "Circuit Cellar" and "Nuts & Volts" magazines. These are great for howtos and tutorials for everything electronic. Also subscribe to "SERVO" magazine - robotics, great for howtos also. In fact, SERVO recently had a multi-part article on converting an E-Maxx and upgrading it for robotics use.

BTW, Dave Anders of TinCanTools has a "slightly abused" Hammer Kit available for $135.00 plus s&h. It would be mine if I had the money. Carrier Board has been soldered to and the 5V regulator has been removed, so it is strictly 3.3V now.

8-Dale

Alex
05-20-2008, 04:09 PM
The only bummer with the serializer in this situation is that you'll be running Linux. You can use the Serializer (http://www.trossenrobotics.com/store/p/5196-Robotics-Connection-Serializer-WL.aspx) on Linux, but it takes a little work.

LinuxGuy
05-20-2008, 05:10 PM
I may sound like a broken record, but I want to see more people building projects with the serializer (http://www.trossenrobotics.com/store/p/5196-Robotics-Connection-Serializer-WL.aspx) which allows you to have a wireless connection to a PC and save a lot of headache on the bot itself. Something to think about. (It also already has PWM output on it)
I'd love to pair one up with Hammer and see what I could do with it. It seems to have all the I/O I need for my robot. I think I already have the hardware I need for W.A.L.T.E.R. though, except for possibly some more arm parts. I'm designing one of my RSR bodies specifically to have a Serializer and one other board for autonomous control.

8-Dale

csdude
05-20-2008, 07:44 PM
The Blackfin is a bit more than that with Wireless and motor controller. $300 is the number that sticks in my head. I'll have to go see what Trossen is offering now (thanks, Alex!)

uCLinux is easy to install on them. I'd be happy to do a tutorial...



Ok let me get this straight. The BlackFin is "the whole thing" ? or is it the part I need to control the servo's with ?

LinuxGuy
05-20-2008, 07:50 PM
Ok let me get this straight. The BlackFin is "the whole thing" ? or is it the part I need to control the servo's with ?
I think the The Blackfin Camera Board IS the controller on the Surveyor SRV-1 robot platform. You may want to consider getting one complete SRV-1 for this group since it is all Open Source and will provide a complete platform for experimentation.

8-Dale

csdude
05-20-2008, 08:00 PM
This old project of ours (http://forums.trossenrobotics.com/showthread.php?t=1070) may give you ideas. It is essentially a tethered PC bot that we are using joystick inputs to control.

To control an RC car you only need 2 PWM signals for most controllers. What you are doing is removing the 2 PWM signals from the radio module and substituting your own. One signal is for steering, the other for FWD/REV. There are many many servo controllers (http://www.trossenrobotics.com/store/c/2665-Servo-Controllers.aspx) to choose from.

I may sound like a broken record, but I want to see more people building projects with the serializer (http://www.trossenrobotics.com/store/p/5196-Robotics-Connection-Serializer-WL.aspx) which allows you to have a wireless connection to a PC and save a lot of headache on the bot itself. Something to think about. (It also already has PWM output on it)

The servo controllers look cool. especially the ones the ones that can be used using usb.

Part of the setup is that it does need some networking. For now we want to use 802.11. The networking part is probably going to be modular. Instead of a wireless network, we could also use a cellphone as a network device. (but that's going to be later... hopefully much later)

So what can I use for networking ? (I am still leaning towards using one of those pico boards. The reason for it is that the motor controllers are so cheap that students could use those for running simulations etc in a regular lab hooking a motor controller up to a regular pc.

csdude
05-20-2008, 08:05 PM
Does anyone know if there is a wireless networking card/device that I can use with one of these pico-ITX motherboards ? maybe something that can be plugged into a usb port ? Or maybe there is something that can be plugged into a regular network jack that makes it wireless ? Just thinking out loud here.

Wingzero01w
05-20-2008, 08:10 PM
Almost any kind of wireless thing you use with a regular PC can be used with a pico-ITX, its just very very small.

LinuxGuy
05-20-2008, 08:11 PM
Does anyone know if there is a wireless networking card/device that I can use with one of these pico-ITX motherboards ? maybe something that can be plugged into a usb port ? Or maybe there is something that can be plugged into a regular network jack that makes it wireless ? Just thinking out loud here.
Which OS are you planning to use? Windows is a no brainer most of the time, for wireless support.

With Linux, you need to know a bit more about your wireless adapter in some cases to know if it is supported or not. I know the Edimax EW-7318Ug (http://www.edimax.com/en/produce_detail.php?pl1_id=1&pl2_id=44&pl3_id=88&pd_id=3) is supported, as are other Ralink chipset adapters. This is the only one I have personally used under Linux, Windows, and Linux with Hammer.

8-Dale

Adrenalynn
05-20-2008, 08:13 PM
I concur. PicoITX = full-blown PC. Even run Winders, deities help us...

re: Blackfin: The HBridge is on the expansion card I believe, Dale. I could be wrong. I'll check the schems again. For sure the wireless is on the expansion card.

[edit to add: http://linuxwireless.org/en/users/Devices/USB wireless USB devices for Linux]

csdude
05-20-2008, 10:10 PM
Which OS are you planning to use? Windows is a no brainer most of the time, for wireless support.

With Linux, you need to know a bit more about your wireless adapter in some cases to know if it is supported or not. I know the Edimax EW-7318Ug (http://www.edimax.com/en/produce_detail.php?pl1_id=1&pl2_id=44&pl3_id=88&pd_id=3) is supported, as are other Ralink chipset adapters. This is the only one I have personally used under Linux, Windows, and Linux with Hammer.

8-Dale

We/I want to run Linux/ The closer it get's to the 'pc distributions' the better. That way some students can develop part of the software in computer labs. Also the networking would be 'standard'. I think I probably take a hurdle out of the way making it x86 based running linux.
(On the other hand.....)
We are not an engineering school, but we have a bunch of students with an interest in hardware and 'figuring things out'.

Once we have them going with platforms they are familiar with, I'd let them make the leap to different 'technology.

So if I can run Linux on a 'pc style' architecture, than that would be a good start I think. What I like about the pico board is that it can be set up with 1Gb of ram. plenty for running all kinds of processes and capable of running what they build without having to take memory limitations into consideration. Also, it is/should be relatively easy to expand the hardware (sensors, gps, gyroscopes etc etc)

Wireless networks can be a bit of a pain I noticed (it is always a bit of a hassle to get a Linux laptop going). But once it's working it is all standard.

csdude
05-20-2008, 10:18 PM
I concur. PicoITX = full-blown PC. Even run Winders, deities help us...

re: Blackfin: The HBridge is on the expansion card I believe, Dale. I could be wrong. I'll check the schems again. For sure the wireless is on the expansion card.

[edit to add: http://linuxwireless.org/en/users/Devices/USB wireless USB devices for Linux]


that would be cool. But I noticed with a previous link sent, that a motor controller for 4 servos that can be plugged into the USB card is only $50 - $100 so that is not a big deal. With the wireless link you sent I see that there are 802.11 cards that plug into the USB port. That is cool too.

Now, the original tip was to use bootable USB keys as 'solid state' drives. I think the pico board has 2 USB ports. So, hmmm I probably need 3 or 4 USB connectors at least.

I noticed there are also some other devices like a gyroscopes, a gps etc that can be plugged in with usb cables. So it starts to look like I either have a bunch of USB ports or find a different way to start hooking up stuff.

csdude
05-20-2008, 10:23 PM
I realized the pico board is a regular pc board, just very small. The thing I have to take into account is a limited amount of ways to hook things up (right ?)
Also, I probably need to be a bit carefull about energy consumption. The bare board seems to use 16W-18W which is not too bad. For example the board can take an ide/sata drive.. but that is a big draw on energy and probably prone to disk errors. USB keys are cheap, solid state drives are still terribly expensive, networking with NFS or AFS or so is probably way to slow (and if you get out of network range you have a problem) So local storage is needed.

lnxfergy
05-20-2008, 10:24 PM
Correct me if I am wrong, but with the PicoITX, you will still need something like the SSC-32 or Serializer to interact with any HW. It would almost appear that the Serializer would be perfect because you could configure it to run XBEE or Bluetooth and control the robot from any laptop/PC. This approach would probably lend itself to a quicker up-and-running state, as well as offering longer battery life and easier debugging and code changing...

Then, once you have all the hardware issues worked out and know you have enough power to haul around the Pico, you can add it to the robot, and swap out the Xbee/bluetooth for a hard-wired serial.

-Fergs

[Edit: I wanted to just add that I currently use Xbee on my bots, but neither the PC nor my bot knows that Xbee is even there, it just looks like a serial port to the Bot and a USB COMM port to the PC. The same would work for bluetooth (although it can be finicky)]

Adrenalynn
05-20-2008, 10:42 PM
Mine runs about 13wts average with a USB thumb drive. Make sure to turn off paging, you don't want to be thrashing on it. I run it with a broad range power supply that will run on 6-36v. Runs several hours on a good 9.6v 5600mAh NiMH R/C battery.

Mine has 4 USB on the board. From there, most of these devices don't really slam the bus. Through a little 7pt USB hub on it. Or four. Daisy-chain 'em even. How many ports do you want? 28 enough? ;)

>>That way some students can develop part of the software in computer labs.

I always develop on the PC. That's what cross-compiling and simulation is for. In the "real-world", I don't think I've *ever* developed on the embedded device. It's always been cross-compile-and-push...

Don't confuse motor controller and servo controller, btw. Two different animals...

Adrenalynn
05-20-2008, 10:44 PM
>>It would almost appear that the Serializer would be perfect because you could configure it to run XBEE or Bluetooth and control the robot from any laptop/PC.

The PicoITX is no different than "any laptop/PC" it is "any laptop/PC", you just get to move all that processing power out to the 'bot.

lnxfergy
05-20-2008, 10:49 PM
Don't confuse motor controller and servo controller, btw. Two different animals...

Hmm... we just had this thread...

Just to note, if you stick to regular Hobby-grade RC stuff and not toys, the steering will be a servo. The drive power is a motor, but, if you have a electronic speed controller (known as an ESC), it will take a servo input!

Unless someone in the lab has experience with RC cars I would recommend getting one of the RTR (ready to run) cars out there. No assembly, no fussing with getting shocks together, and you are sure that the steering servo, motor, and speed controller are compatible with the vehicle.

-Fergs

lnxfergy
05-20-2008, 10:53 PM
>>It would almost appear that the Serializer would be perfect because you could configure it to run XBEE or Bluetooth and control the robot from any laptop/PC.

The PicoITX is no different than "any laptop/PC" it is "any laptop/PC", you just get to move all that processing power out to the 'bot.

I understand that, I was more referring to how they have different drop-in connection modules on the serializer (a hard-wired serial port, Xbee module, or a bluetooth module).

-Fergs

LinuxGuy
05-20-2008, 10:58 PM
Almost any kind of wireless thing you use with a regular PC can be used with a pico-ITX, its just very very small.
This will be OS dependent. Not everything that works for one OS will necessarily work with another.

8-Dale

Adrenalynn
05-20-2008, 11:23 PM
I understand that, I was more referring to how they have different drop-in connection modules on the serializer (a hard-wired serial port, Xbee module, or a bluetooth module).

-Fergs

I can semi-go-for-that. "semi" because you can drop-in a "module" for hardwired serial, XBee, or Bluetooth on the PicoITX too.

lnxfergy
05-20-2008, 11:32 PM
I can semi-go-for-that. "semi" because you can drop-in a "module" for hardwired serial, XBee, or Bluetooth on the PicoITX too.

Mainly I was getting at the idea of putting off the purchase of the PicoITX and associated batteries, HD, etc, while still developing a platform that will later accept such a module with minimal modifications.

However, just checking that I'm not missing something here, the PicoITX is just a PC, it has serial and USB, but no analog ports, servo ports, etc - right? You will still need something like a phidgets servo board, the serializer, or an SSC-32 in order to interface with the servos, and something like the serializer to read sensors...

-Fergs

LinuxGuy
05-20-2008, 11:58 PM
We/I want to run Linux/ The closer it get's to the 'pc distributions' the better. That way some students can develop part of the software in computer labs. Also the networking would be 'standard'. I think I probably take a hurdle out of the way making it x86 based running linux.
Starting out with Linux will help the transition to more embedded hardware later on. :veryhappy: It is really mostly just the way you develop that changes with embedded. You also don't have some hardware available for all architectures Linux is available for. For devices with less memory than a PC (most embedded devices), you cross compile software and load it from a PC to the device. This allows you to leverage the speed of a regular PC for building software.


Once we have them going with platforms they are familiar with, I'd let them make the leap to different 'technology.
This is a good move, I think. There are several embedded platforms that are readily available, that might be chosen, depending on the overall interest of the group. There are a number of complete Open Source platforms, such as the Surveyor SRV-1 (sold by TR right here). I'd love to have one of these myself to tinker with because I would like to have a complete platform to just develop software for. Everything is completely OPEN to me. :veryhappy: It's the ideal sort of thing for education also. I have W.A.L.T.E.R. as my learning and experimental platform, and this one will probably never be finished for that reason.


So if I can run Linux on a 'pc style' architecture, than that would be a good start I think. What I like about the pico board is that it can be set up with 1Gb of ram. plenty for running all kinds of processes and capable of running what they build without having to take memory limitations into consideration. Also, it is/should be relatively easy to expand the hardware (sensors, gps, gyroscopes etc etc)
The only thing you have to be aware of for PC type platforms is they tend to put you further away from things you need to handle for robotics, such a sensors, etc. Given that, you are probably going to want to investigate Phidgets for sensors. There are a lot of options for stuff like motor and servo control sold here. An embedded platform generally already has features that make things like this easy, including analog inputs, digital I/O pins, I2C, SPI, etc. Most PC type platforms will not have these so you have to use something like Phidgets for interfacing. There are Linux drivers for Phidgets. I've built the Phidgets library under Linux, but don't have any Phidgets to test it all with to be sure everything works.


Wireless networks can be a bit of a pain I noticed (it is always a bit of a hassle to get a Linux laptop going). But once it's working it is all standard.
Once I had all the commands I needed together, it wasn't too hard to get it all working. I got a bit of a rush when I was able to ping an outside site from my Hammer the first time. :happy: Now I just have to get a new wireless router to continue. I hope to be able to test more different WiFi adapters with Hammer.

8-Dale

csdude
05-21-2008, 10:03 AM
Correct me if I am wrong, but with the PicoITX, you will still need something like the SSC-32 or Serializer to interact with any HW. It would almost appear that the Serializer would be perfect because you could configure it to run XBEE or Bluetooth and control the robot from any laptop/PC. This approach would probably lend itself to a quicker up-and-running state, as well as offering longer battery life and easier debugging and code changing...

Then, once you have all the hardware issues worked out and know you have enough power to haul around the Pico, you can add it to the robot, and swap out the Xbee/bluetooth for a hard-wired serial.

-Fergs

[Edit: I wanted to just add that I currently use Xbee on my bots, but neither the PC nor my bot knows that Xbee is even there, it just looks like a serial port to the Bot and a USB COMM port to the PC. The same would work for bluetooth (although it can be finicky)]

That is correct, but for example to control the servos I saw that there is a small board that can be connected with usb. Of course later there need to be 'some other interface' too for hooking up sensors etc.

csdude
05-21-2008, 10:09 AM
Mine runs about 13wts average with a USB thumb drive. Make sure to turn off paging, you don't want to be thrashing on it. I run it with a broad range power supply that will run on 6-36v. Runs several hours on a good 9.6v 5600mAh NiMH R/C battery.

Mine has 4 USB on the board. From there, most of these devices don't really slam the bus. Through a little 7pt USB hub on it. Or four. Daisy-chain 'em even. How many ports do you want? 28 enough? ;)

>>That way some students can develop part of the software in computer labs.

I always develop on the PC. That's what cross-compiling and simulation is for. In the "real-world", I don't think I've *ever* developed on the embedded device. It's always been cross-compile-and-push...

Don't confuse motor controller and servo controller, btw. Two different animals...

The RC vehicles have servos to control the speed and steering, right ? I was talking to a guy from traxxas(?) and he told me that servos controlled the speed and steering ?

yes 28 ports would be more than enough, I probably better start looking for an RC car like a semi, instead of a pickup.
It looks like there is a lot of hardware/sensors that can be used by hooking them up using USB connectors.

BTW: are there any good size RC cars that look like a regular pickup truck ? not necessarily a teenage toy style looking kind of car ?
At some point I probably need to lobby for more money for that group, if it looks like a smaller version of something 'serious' that probably works better than something that looks like a 8-12 toy. (Hey that's how the world of people that write checks work)

csdude
05-21-2008, 10:11 AM
Hmm... we just had this thread...

Just to note, if you stick to regular Hobby-grade RC stuff and not toys, the steering will be a servo. The drive power is a motor, but, if you have a electronic speed controller (known as an ESC), it will take a servo input!

Unless someone in the lab has experience with RC cars I would recommend getting one of the RTR (ready to run) cars out there. No assembly, no fussing with getting shocks together, and you are sure that the steering servo, motor, and speed controller are compatible with the vehicle.

-Fergs

I see your point, but the goal somewhat is to make something that doesn't lead to faillure.. but no one ever said it had to be as easy as plug and play that would just be too easy

csdude
05-21-2008, 10:12 AM
I understand that, I was more referring to how they have different drop-in connection modules on the serializer (a hard-wired serial port, Xbee module, or a bluetooth module).

-Fergs

Ok I heard the word 'serializer' a few times now. what is a serializer and what does it exactly do ? (and why do I want one ?)

csdude
05-21-2008, 10:14 AM
This will be OS dependent. Not everything that works for one OS will necessarily work with another.

8-Dale

Well I saw on the hardware part of this site that there are also 802.11 cars that hookup to the USB port on the ITX board. However that would mean that you can't hook up the 4 USB ports anymore ? Or can that be done with a different cable ? piggy back it ? or something like that ?

The card on the site here is a 802.11g with USB and it works with 2.4 and 2.6 Linux kernels.

csdude
05-21-2008, 10:21 AM
Starting out with Linux will help the transition to more embedded hardware later on. :veryhappy: It is really mostly just the way you develop that changes with embedded. You also don't have some hardware available for all architectures Linux is available for. For devices with less memory than a PC (most embedded devices), you cross compile software and load it from a PC to the device. This allows you to leverage the speed of a regular PC for building software.


This is a good move, I think. There are several embedded platforms that are readily available, that might be chosen, depending on the overall interest of the group. There are a number of complete Open Source platforms, such as the Surveyor SRV-1 (sold by TR right here). I'd love to have one of these myself to tinker with because I would like to have a complete platform to just develop software for. Everything is completely OPEN to me. :veryhappy: It's the ideal sort of thing for education also. I have W.A.L.T.E.R. as my learning and experimental platform, and this one will probably never be finished for that reason.


The only thing you have to be aware of for PC type platforms is they tend to put you further away from things you need to handle for robotics, such a sensors, etc. Given that, you are probably going to want to investigate Phidgets for sensors. There are a lot of options for stuff like motor and servo control sold here. An embedded platform generally already has features that make things like this easy, including analog inputs, digital I/O pins, I2C, SPI, etc. Most PC type platforms will not have these so you have to use something like Phidgets for interfacing. There are Linux drivers for Phidgets. I've built the Phidgets library under Linux, but don't have any Phidgets to test it all with to be sure everything works.


Once I had all the commands I needed together, it wasn't too hard to get it all working. I got a bit of a rush when I was able to ping an outside site from my Hammer the first time. :happy: Now I just have to get a new wireless router to continue. I hope to be able to test more different WiFi adapters with Hammer.

8-Dale

Well you are correct, with dedicated hardware it is easier to get stuff done with port io, needed for sensors etc. BUT if at some point you want to start incorporating 'higher level' things you'll run into a roadblock there. For example if you want AI or pattern recognition etc or need to query databases.. then it probably won't work that well if you are running on some specific hardware on 128K or so.

Now what would be an idea is that if you could use a 'dedicated board' to control the vehicle as a subsystem for something that can easier be used to do higher lever stuff. For example the 'sub system' could control all the lower level sensory and moving stuff.. and the main system basically just monitors it and 'adjust' things

csdude
05-21-2008, 11:17 AM
Here are two servo controllers that I found in the store here:
http://www.trossenrobotics.com/store/p/5123-Pololu-Serial-8-servo-controller.aspx
http://www.trossenrobotics.com/store/p/3188-Servo-4-Motor-Controller.aspx

Adrenalynn
05-21-2008, 12:13 PM
The Phidgets are nice because they have some really decent libraries behind them. For my money, it's all about the SSC32 though. 32 channels of servo control, dirt simple serial interface and ascii-string control, dirt cheap. I love my SSC32's... I need to get a few more since I'm always moving them around. One day they're driving a 6 DOF arm (try that with one phidgets. ;)) and the next day they're interfaced to RoboRealm and piloting a couple tracked platforms chasing laser pointers by vision (cameras) only... I have two, and I'd really like to have four more... One nice thing is that they're backward compatible, for the most part, with the original two channel SSC. That means basically everything in the hobby robot world supports them.

http://www.trossenrobotics.com/store/p/3191-SSC-32-Servo-Controller.aspx

Adrenalynn
05-21-2008, 12:27 PM
Ok I heard the word 'serializer' a few times now. what is a serializer and what does it exactly do ? (and why do I want one ?)

The Serializer is a spiffy interface board with a fair number of inputs - generic I2C (any I2C chain), 5 analog inputs, 10 digital I/O, 4 dedicated encoder inputs.

IMHO, their big claim to fame is the swappable two wire interface options - hence "serializer". Want RS-232? USB? Bluetooth? Zigbee? Just swap the interface daughter card, simple as that, plug-and-play.

TTL interface is the base method and is provided on the board.

The interfaces run from about $12 for RS-232 up to about $60 for bluetooth.

The serial control protocol is super-simple, and is very well documented with a lot of sample code.

Find it here: http://www.trossenrobotics.com/store/p/5196-Robotics-Connection-Serializer-WL.aspx

csdude
05-21-2008, 12:53 PM
The Phidgets are nice because they have some really decent libraries behind them. For my money, it's all about the SSC32 though. 32 channels of servo control, dirt simple serial interface and ascii-string control, dirt cheap. I love my SSC32's... I need to get a few more since I'm always moving them around. One day they're driving a 6 DOF arm (try that with one phidgets. ;)) and the next day they're interfaced to RoboRealm and piloting a couple tracked platforms chasing laser pointers by vision (cameras) only... I have two, and I'd really like to have four more... One nice thing is that they're backward compatible, for the most part, with the original two channel SSC. That means basically everything in the hobby robot world supports them.

http://www.trossenrobotics.com/store/p/3191-SSC-32-Servo-Controller.aspx



That was one of the controllers I was looking at too, it seemed that it would work (32 servo's ia a lot for me, 8 might work too). I noticed it is serial, so that will free up one usb port too

csdude
05-21-2008, 12:54 PM
The Serializer is a spiffy interface board with a fair number of inputs - generic I2C (any I2C chain), 5 analog inputs, 10 digital I/O, 4 dedicated encoder inputs.

IMHO, their big claim to fame is the swappable two wire interface options - hence "serializer". Want RS-232? USB? Bluetooth? Zigbee? Just swap the interface daughter card, simple as that, plug-and-play.

TTL interface is the base method and is provided on the board.

The interfaces run from about $12 for RS-232 up to about $60 for bluetooth.

The serial control protocol is super-simple, and is very well documented with a lot of sample code.

Find it here: http://www.trossenrobotics.com/store/p/5196-Robotics-Connection-Serializer-WL.aspx



Ok, so that would be a good choice for working with sensor input than, am I correct ?

Wingzero01w
05-21-2008, 01:11 PM
Well, i have a live CD of Ubuntu Linux now, but i don't see any commands i have to type in. To me, its very close to OS X... Do certain Linux distro's use commands instead of a GUI? Im basically trying to understand Linux so i can also use it in robotics.

Adrenalynn
05-21-2008, 01:15 PM
Yuppers! Turn the input from a range sensor, bump sensor, flex sensor, ... into useful data.

>> (32 servo's ia a lot for me, 8 might work too

Heck, for that price, use 8, cut 16 off the board with a dull rusty set of nippers, and still have another 8 in reserve - you can still cackle evilly that you "stole" it for that little money... ;)

lnxfergy
05-21-2008, 01:17 PM
The RC vehicles have servos to control the speed and steering, right ? I was talking to a guy from traxxas(?) and he told me that servos controlled the speed and steering ?

yes 28 ports would be more than enough, I probably better start looking for an RC car like a semi, instead of a pickup.
It looks like there is a lot of hardware/sensors that can be used by hooking them up using USB connectors.

BTW: are there any good size RC cars that look like a regular pickup truck ? not necessarily a teenage toy style looking kind of car ?
At some point I probably need to lobby for more money for that group, if it looks like a smaller version of something 'serious' that probably works better than something that looks like a 8-12 toy. (Hey that's how the world of people that write checks work)

That's almost right. Electric RC cars have speed controls which take a servo-like pulse for thier control data, so although you can treat them like servos they are not servos themselves. Although you probably aren't using one, Nitro RC cars actually have a servo for throttle control of the gas motor.

As far as bodies - if you stick with the hobby-grade cars/trucks (i.e. not radio shack toy style), they all look the same underneath. The body is just a thin lexan shell - and you will probably want to remove the shell and just mount a PVC, Lexan, or Acrylic deck to the top of the car for ease in attaching sensors, controllers, etc.

-Fergs

Adrenalynn
05-21-2008, 01:19 PM
Well, i have a live CD of Ubuntu Linux now, but i don't see any commands i have to type in. To me, its very close to OS X... Do certain Linux distro's use commands instead of a GUI? Im basically trying to understand Linux so i can also use it in robotics.

Press CNTRL-ALT-F1 Voila! Now you have a command line. Press Alt-F7 to get back to the pretty GUI. (Actually, I haven't run Ubuntu Live. I presume that the keymap is the same as it's been since ~'91... ;) )

What you're looking at is XWindows and the Window Manager. Think of it like Windows 3.1 under DOS (only infinitely better on all counts). XWindows is NOT Linux. It's a Windowing System under Linux. The Window Manager runs on top of the Windowing System running on top of Linux.

For embedding on a robot that pretty windowing system is the very first thing you'll rip-out. :)

Adrenalynn
05-21-2008, 01:20 PM
The body is just a thin lexan shell - and you will probably want to remove the shell and just mount a PVC, Lexan, or Acrylic deck to the top of the car for ease in attaching sensors, controllers, etc.


Exactly! Thanks for bringing that up. +Rep there!

I've been meaning to note that leaving the body on seems kinda silly...

I'll take photos as soon as my batteries charge of a Nitro car and body, if no one beats me to the photos...

Wingzero01w
05-21-2008, 02:28 PM
Press CNTRL-ALT-F1 Voila! Now you have a command line. Press Alt-F7 to get back to the pretty GUI. (Actually, I haven't run Ubuntu Live. I presume that the keymap is the same as it's been since ~'91... ;) )

What you're looking at is XWindows and the Window Manager. Think of it like Windows 3.1 under DOS (only infinitely better on all counts). XWindows is NOT Linux. It's a Windowing System under Linux. The Window Manager runs on top of the Windowing System running on top of Linux.

For embedding on a robot that pretty windowing system is the very first thing you'll rip-out. :)

perfect now its running. Where do i find the commands though? I have no idea how to run that stuff. Gah, this is so confusing, i cant imagine how to have the robot do it.

Adrenalynn
05-21-2008, 02:34 PM
You want to find yourself a linux system administration document online.

The robot won't be "doing this stuff". You'll write programs that run under linux to interface with what you want to interface with. Just like windows - software runs under the OS. The OS handles the low-level.

LinuxGuy
05-21-2008, 02:40 PM
perfect now its running. Where do i find the commands though? I have no idea how to run that stuff. Gah, this is so confusing, i cant imagine how to have the robot do it.
You need a good beginner's book on Linux. It's not something you can just dive into without some basic knowledge. Try http://www.linux.org for starters.

8-Dale

csdude
05-22-2008, 10:14 AM
Well, i have a live CD of Ubuntu Linux now, but i don't see any commands i have to type in. To me, its very close to OS X... Do certain Linux distro's use commands instead of a GUI? Im basically trying to understand Linux so i can also use it in robotics.

Well, youcan start any linux/unix in either 'text mode' or 'graphical mode'

in the file /etc/inittab there is a line that says:
id:5:initdefault:

5 starts X11 (graphical environment)
3 starts terminal mode (text)
1 starts in single user mode

don't use 0 (halt) nor 6 (reboot) you won't like those at start up

in X11 you can also start a 'terminal window' where you can do 'commandline stuff' too

csdude
05-22-2008, 10:16 AM
perfect now its running. Where do i find the commands though? I have no idea how to run that stuff. Gah, this is so confusing, i cant imagine how to have the robot do it.

What 'stuff' is it you need to run ?

Adrenalynn
05-22-2008, 10:24 AM
Well, youcan start any linux/unix in either 'text mode' or 'graphical mode'

in the file /etc/inittab there is a line that says:
id:5:initdefault:

5 starts X11 (graphical environment)
3 starts terminal mode (text)
1 starts in single user mode

don't use 0 (halt) nor 6 (reboot) you won't like those at start up

in X11 you can also start a 'terminal window' where you can do 'commandline stuff' too

Great info, now he just needs to figure-out how to edit a file... Wanna document vi? ;)

Of course, he's also going to need to figure out how to change directories... :p

LinuxGuy
05-22-2008, 02:14 PM
Now what would be an idea is that if you could use a 'dedicated board' to control the vehicle as a subsystem for something that can easier be used to do higher lever stuff. For example the 'sub system' could control all the lower level sensory and moving stuff.. and the main system basically just monitors it and 'adjust' things
I have been looking at a small board that I think would work well for this sort of thing. I am convinced I want to get one of these at some point. It's called a ServoPod (http://www.newmicros.com/cgi-bin/store/order.cgi?form=prod&cat=servopod) and other various similar boards with varying capabilities. This board looks like it has more than enough processing (Freescale DSP) to handle a lot of stuff and have power left over.

I am looking at some of the other products for the brains of the Nano RSR (under 2" x 2" for the electronics package) I am designing.

8-Dale

csdude
05-23-2008, 11:04 AM
Great info, now he just needs to figure-out how to edit a file... Wanna document vi? ;)

Of course, he's also going to need to figure out how to change directories... :p

Oh I am willing to help with those kind of pesky details. been around nix's long enough to be real dangerous *lol*

csdude
05-23-2008, 11:11 AM
I have been looking at a small board that I think would work well for this sort of thing. I am convinced I want to get one of these at some point. It's called a ServoPod (http://www.newmicros.com/cgi-bin/store/order.cgi?form=prod&cat=servopod) and other various similar boards with varying capabilities. This board looks like it has more than enough processing (Freescale DSP) to handle a lot of stuff and have power left over.

I am looking at some of the other products for the brains of the Nano RSR (under 2" x 2" for the electronics package) I am designing.

8-Dale

Well, if you have a subsystem that can process the 'raw' data and perform the commands than you don't really need something with a lot of processing power.

The board would work as a visceral or autonomous nervous system and do the very basic stuff. Like basically come to a stop real fast if it runs into something, stops if it unexpectedly tilts that kind of stuff. The main board could work with such a subsystem and the only thing needed basically is a way to communicate with it (network, ether, bluetooth, 802.11. you probably want something fast if you want real time adjustments)