PDA

View Full Version : How would high level linux robotic development platforms communicate with prope



TylerS
12-20-2009, 02:52 PM
I am in the planning stage of a project and I'm having some trouble, so I thought I'd ask for some help. My end result will be a humanoid robot, with low level sensor reading and motor/servo control by the propeller (I think). However, I am undecided on high level control.

I'm leaning towards a gumstix based embedded pc/ single board computer that will run either Player, ROS, or OROCOS. The key item is that it has to be an onboard pc (wireless is not reliable enough for what I want to do).

Player is desirable because it's been around for a while, seems to be well supported, and has good simulation capabilities (a big + for what I want to do). ROS is a new development platform that I honestly don't understand well, but a good part of the Player development team is working on it (instead of player...) and also supports the same simulation software as Player. OROCOS is of interest because it has extensive kinematic capabilities, which is important for a humanoid robot. However, it doesn't have a simulation environment. (But it's open source, could it be implemented within Player or ROS?). The kinematics stuff could save me a ton of time.

Player Project
http://playerstage.sourceforge.net/wiki/Main_Page
http://playerstage.sourceforge.net/index.php?src=player

ROS
http://www.ros.org/wiki/ROS/Introduction

OROCOS
http://www.orocos.org/
specifically the kinematics and dynamics library http://www.orocos.org/kdl

What I'm having trouble figuring out is if these can be loaded onto a gumstix (I know Player can... but I'm not sure about the others) and if they can, then how would they communicate to the propeller chip? Or is it best for me to just use a robostix or something developed by the embedded pc manufacturer? How would I connect a camera system (maybe webcam) to the robostix etc.

Another option is to go with microsoft robotics development studio and a more powerful embedded pc running windows XP or XPe (actually I think I would prefer this...) but the cost would be about $700 higher (more expensive pc + $500 for MSDS). Plus microsoft has released like 5 versions of MSDS in just 3 years, so I don't want to deal with having outdated software super quickly (or spending another $500) either.

StefanL38
12-20-2009, 03:08 PM
Hello Tyler,

it's very good that you are giving an overview about your project.

Still it is not clear what is the most complex thing your robot should do.
Imageprocessing? Singing songs?

If you post a detailed description about this the forum can say opinions if an embedded-PC is needed or not

Questions that are not related with the propeller (wich OS to use on the gumstix) should be posted in the sandbox or
a robotic forum, or forums related to these operating-systems

The easiest way to communicate with the propeller-chip is a serial connection using the V24 (RS232) standard.
You have to check which OS still supports serial communication for COM-Ports

If your emmbedded PC has no serial COM-ports but USB you have to check if there exists a linux-driver for the FTDI-chip of a USB-to-RS232-converter-cable

best regards

Stefan

TylerS
12-21-2009, 12:32 AM
Thanks for the info.

The most difficult things the robot would do include image processing, and bi-ped kinematics. It probably won't do sound based stuff. This won't be a "static" bi-ped with a pre-determined gait and huge feet. It will balance in real time (i.e. if I give it a small push it will correct itself so it doesn't fall). My goal is to have a bi-ped which can use two points instead of feet.

You answered my main question for these forums though. Which is how to communicate with the propeller or what to do if the embedded pc doesn't have an RS232 port. I just thought I'd ask the rest of the questions I had since some people here might know the answers.

Nak
12-21-2009, 01:14 AM
I have been giving some thought to this myself, and have some follow-up questions / comments to add. While RS-232 is relatively easy it's also a point-to-point protocol and would require a separate link / COM port for each functional unit. In my mind, at least, it seems one of the serial bus protocols is needed.

USB seems to be the wave of the present, but as far as I have seen it's most common use in the Propeller world is as a more expensive point-to-point serial protocol. Is anyone using it in a bus topology that permits multipoint communication b/w a master and multiple peripheral processors?

I also saw recently an article about using I2C as a short-range serial bus b/w various boards in a robot. And over in another thread someone posted a link to a TI chip that's basically a line driver (?) for extending I2C. I ordered some samples from TI and plan to try this out with my Stingray. I am still wondering about the physical cables / connectors to use, though.

Ideally I would also like to distribute power over the same bus, like USB and Firewire. In fact Firewire looked really exciting but it seems almost unknown in the Propeller world, and the only chips I've come across are oriented towards PCs. SO I starting thinking about I2C plus power distributed using Firewire cables and connectors... Firewire uses an interesting cable design with separate twisted-pairs that is supposed to be highly noise resistant, and well shielded.

Anyway, unless someone sets me straight, that's where I'm presently going...