computing hardware for robotics - II

sleepydj

Member
Oct 16, 2003
25
0
0
Hi,

Some of you may remember that I had posted back sometime ago about the choice of computing hardware for a robotic submarine project. Anyways, after taking ur inputs and talking to my team, we had decided to go in for a modular system with different levels of processors dedicated to specialised tasks.

I was having trouble finding something for the master CPU. The master CPU will be incharge of monitoring the entire system and also responsible for calculation of the path that has to be followed by the robot. This path is calculated based on inputs from all the sensors. Now, i was thinking of an ARM based processor here. Some had recommended the ColdFire, but the problem with those is that we'll only get a chip from Motorola, right? Then we have to design a high-speed board and also design the architecture and the interfacing of stuff like memory, then solder it. That would turn out to be a project on its own. It would take a lot of time to do that, and only after that is done would we able to start programming and debugging and stuff. Well, we could get a development board, but we're short on cash (as of now, we have only $4K - Cdn$).

So, it was decided that we go on with a commercial board with an ARM processor. I went through ARM's site and selected the embedded cores - ARM1156T2(F)-S and ARM1026EJ-S. However I'm hard pressed to find any commercial board based on them. I did however, find lots of boards based on the Intel PXA255, which also seems pretty good.

Ok, so based on that I have a few questions, I hope you guys can help again -

1.) Do you guys know of any commercial board based on the cores that I mentioned? I googled a lot but couldn't find anything.

2.) Will we need a floating point co-processor? Since this a submarine, navigation will take place in 3D. And I think we'll need a floating point co-processor (even if it was only 2D), since navigation will need floating point numbers. Am i right? I think the Intel PXA255 does not have an FPU. Then can we use it?

3.)While programming the ARM's/Intel PXA255, will we have to work with assembly, or can we run higher level languages?

4.) Some of the ARM's have Jazelle, an efficient implementation of the Java VM. I was in favour of selecting a core with that, since we're already working with Java. We could then write our software in Java in OOP fashion and that would be much better. Do you think this is better?

5.)I know all of you were against it and so am i; certain members of the team feel that it is better that we go with an x86 based system for the master CPU. Something like the VIA Eden+VIA EPIA TC combo or a Crusoe. I'm against it because of the various reasons that were mentioned like - not optimized for control situations, lack of ports like I2C etc, no watchdog timers etc. They said that it is a familiar system, we can use higher level languages on Linux and it would run pretty good. What do u feel?


Any help would be appreciated. Thanks

Cheers,
Jimmy
 

Lynx516

Senior member
Apr 20, 2003
272
0
0
ARM cores have their own C++ compilers so that takes care of the Highlevel programming language question.
 

wacki

Senior member
Oct 30, 2001
881
0
76
You are using alot of power for a robotic submarine. Normally for a sub I would of recommended somthing as simple as a BasicX, but you obviously want power. Have you thought of using an AVR? I've seen Sophmores in college use AVR's to make robots so I'm sure you will have no problem. AVR's can use C, java, and visual basic depending on which kind you get. However, for some reason I can only find C, and assembly listed on atmel's website, but I know this is incomplete. Also, I'm friends with the guy that designed NASA's object recognition algorythm, so I will ask him how much power you will actually need for 3d Navigation, but I'm sure he will want to know some more information. Such as are your visual (camera) inputs going to be stereo or mono, what other sensors are you using, and so forth. On top of this vid/cams aren't the best underwater. Sonar would be more effective, if you could find good underwater sonar equipment.

As for using a x86 based system such as VIA eden or Crusoe it should make programming your submarine easy. As far as not being optimized for control reasons, I disagree. You can get or even make PCI cards that can interact with all sorts of electronic devices. I've even used serial ports to control motors, sensors, and numerous other items on an AMD Athlon powered machine.

I'll ask Mangrich (NASA guy) about your situation on tuesday when I see him.

I2c for linux
http://www.voxel.at/prj/i2c/

you might want to check out
phanderson.com -- nice stuff
acroname.com
digikey.com
basicx.com

just for starters.


I apologize about the spelling, but I have a fever, and it's 4 in the morning.
 

Lynx516

Senior member
Apr 20, 2003
272
0
0
wacki. The problem wiht an x86 Machine is they take up lots of space. Gussle power even a VIA chip eats quite a bit. On making a PCI card to interface: YOU MUST BE MAD! Making PCI drivers and a PCI 2 compatable interface is a bastard that even Creative cannot get right.
 

sleepydj

Member
Oct 16, 2003
25
0
0
Originally posted by: wacki
You are using alot of power for a robotic submarine. Normally for a sub I would of recommended somthing as simple as a BasicX, but you obviously want power. Have you thought of using an AVR? I've seen Sophmores in college use AVR's to make robots so I'm sure you will have no problem. AVR's can use C, java, and visual basic depending on which kind you get. However, for some reason I can only find C, and assembly listed on atmel's website, but I know this is incomplete. Also, I'm friends with the guy that designed NASA's object recognition algorythm, so I will ask him how much power you will actually need for 3d Navigation, but I'm sure he will want to know some more information. Such as are your visual (camera) inputs going to be stereo or mono, what other sensors are you using, and so forth. On top of this vid/cams aren't the best underwater. Sonar would be more effective, if you could find good underwater sonar equipment.

As for using a x86 based system such as VIA eden or Crusoe it should make programming your submarine easy. As far as not being optimized for control reasons, I disagree. You can get or even make PCI cards that can interact with all sorts of electronic devices. I've even used serial ports to control motors, sensors, and numerous other items on an AMD Athlon powered machine.

I'll ask Mangrich (NASA guy) about your situation on tuesday when I see him.

I2c for linux
http://www.voxel.at/prj/i2c/

you might want to check out
phanderson.com -- nice stuff
acroname.com
digikey.com
basicx.com

just for starters.


I apologize about the spelling, but I have a fever, and it's 4 in the morning.



hi,
well, the thing is that we've divided our computing architecture into parts. We've got 3 levels. The lowest level is where the analog and digital meet. We've got our sensors, batteries, motors etc. at that level. We'll have AVR's at this stage. They will do A/D or vice versa, PWM for motors etc.

Then we have the second stage. We have ~2 AVR's here. One AVR will be the "sensor AVR". It is incharge of getting data from the sensors and storing the latest copy. We have another AVR which is the motor AVR. This AVR will get directions from the master CPU. This AVR will calculate how much to drive each motor. It is the "motor AVR". It is incharge of driving/monitoring the motors. The third chip at this level would be some DSP/general processor (?) for image processing from cameras. I'm guessing, we'll have mono-vision. Nothing's firm yet. We still have to start working with the image processing. Also, some audio processing for the sonar will probably be on this chip.

At the top we have the master CPU, which is incharge of monitoring the health of the system. Now, what this guy will do is interpret data from the sensor AVR and image/audio processing chip and then generate a direction/point, to which the sub has to go to. (this is where i felt we might need floating point calculation). It will then spit out the data to the motor AVR, which will calculate how much to drive each motor, depending on their placements. We'll also have this connected to a dockside computer using ethernet, so that we can monitor the sub and its working. During actual runs, it will be autonomous.

AVRs of levels 2 and 3 will be on I2C. The image/audio processing will be connected somehow, don't know how yet....depends on what we get. Master CPU will be connected to level 2. Again depends on how we want to do it. We could connect it with AVR's of level 2 on I2C provided there's not too much traffic. Still speculative, these things will become clear as we go on, but for now we know that we have a couple of options as to what to use.

Pretty much, this is the idea. It'll be a modular system, which can be modified year after year. All we'd have to do is change devices we don't like.

I've managed to convince my team that we should stick to non x86. They've agreed but say that the darn thing shouldn't be something alien. I'm hoping that too.......else its back to x86.:(

Hey wacki it'd be cool if you could get that NASA guy to help out! I'll check out those other websites you mentioned. I agree with Lynx516, that the PCI thing will be too much to do, and more so, since we're on a tight budget and schedule. It'll end up being a project on its own. Once we get this basic structure up and running, we can always modify it later on - again, that's why we've made it so modular. Replacement/maintainance is easy.

cheers,
jimmy
 

Peter

Elite Member
Oct 15, 1999
9,640
1
0
If you want a PCI interface for your stuff, pay www.plxtech.com a visit - they have a wide range of PCI-to-generic-bus bridges, very handy for homebrew logic that needs to connect to a PCI bus.
 

sleepydj

Member
Oct 16, 2003
25
0
0
hi,

I read somewhere that certain OSes can emulate floating point units and take care of such calculations. How good/bad are they? How much of a performance hit will there be?


thanks
jimmy
 

wacki

Senior member
Oct 30, 2001
881
0
76
sleepydj

I talked to the NASA guy. He has a robot named alexis that is powered using a Via Eden chipset. He said He bought the mobo, chip, ram in a complete package for $100 a year ago. He said it was really easy to run external devises using serial ports, when I asked him how he told me to do a search on google for pin diagrams. He also has numerous sensors connected to the mobo via USB ports, he used a USB to serial chip which he claims was easy to do. I also looked at another robot that uses a fpga chip which is implanted onto a home made board and then inserted into an ISA port on an old Pentium MMX mobo. The home made board was said to be a bit of a nightmare, but apparently PCI is easier to work with, again he said do a search on google for PCI and pin layout. The ISA port setup was made by undergraduate students at Indiana University.

Apparently the only thing you need a PCI port for is if you need massive bandwidth. Considering USB 2.0 is 400 mbs, and you can get PCI cards that allow more USB ports, USB sounds like the easiest and most modular way to go. He says the USB to serial chips are dirt cheap and easy to work with. Will give more information next tuesday when I see him again. Feel free to ask more questions, I like learning about this stuff too!!!!!!!!!!

PS. his robot is voice controlled, the voice recognition software is a visual basic based microsoft sdk. He claims a child could learn it!

 

sleepydj

Member
Oct 16, 2003
25
0
0
*Edited post

hey wacki

thanks for getting back. I've worked with parallel ports before interfacing. I also have a general idea on how to do it with serial ports and we are thinking of using the serial ports on the project. If u're really interested in this stuff, check out Beyond Logic. It's the Bible for me when it comes to interfacing devices. I also recall reading up the USB to serial converter chip on the same website.

I'll also check up all the stuff you mentioned, and if i have any more questions, i'll definetly get back to you. I am also trying to contact someone in VIA to find out if we could get our hands on their new Eden-N sooner than the official release date of Q1 '04. It's a really nice thing. $100 for the Eden that your friend got sounds like an awesome deal! I'm checking up prices for them too. I got quotations for a PXA255 board, its $475!! Compared to that, the Eden sounds like a MUCH better deal, and to beat that it's got an FPU too!

I also have this other question that maybe you or your friend could help out with. I wanted to buy a book for Linux to use on embedded systems. I've got two potentials, but I don't know which one to get. They are -

1.) Building Embedded Linux Systems; by Karim Yaghmour; O' Reilly; 1st Ed. 2003.

2.) Embedded Linux Hardware, Software & Interfacing; Craig Hollabaugh, Addison Wesely; 1st Ed 2002.

The 1st book is listed as top seller on linux.org but both books have 5 star ratings on amazon.com. Do you have any idea as to which is or might be better?

Thanks a lot!

Cheers,
Jimmy

PS - you can check out our team website at www.site.uottawa.ca/arise . There's not much up yet, but hopefully, once our exams are over, we should have it updated.
 

sleepydj

Member
Oct 16, 2003
25
0
0
hey,

i have one more question. Since our sub will also need image processing, we would also need hardware to do that. I was taking a look at the TI OMAP5910. It has an ARM9 core + a DSP for IP. This is perfect for us. However, the only thing that we'd get is the chip and we'd have to solder it in with other components. Also, we have no prior experience with DSP's or TI's. Again, do you have any idea about this stuff?

cheers,
jimmy
 

Lynx516

Senior member
Apr 20, 2003
272
0
0
DSPs come with (actually you have to buy them) compilers and development boards. They should contain flashing cuircuits and with the compilers you just right normal C/C++ with a few new commands from the included librarys and then flash them onto the chip. You will be paying about $1000 for a development board and a compiler from Ti.
 

wacki

Senior member
Oct 30, 2001
881
0
76
Originally posted by: sleepydj
*Edited post

hey wacki

thanks for getting back. I've worked with parallel ports before interfacing. I also have a general idea on how to do it with serial ports and we are thinking of using the serial ports on the project. If u're really interested in this stuff, check out Beyond Logic. It's the Bible for me when it comes to interfacing devices. I also recall reading up the USB to serial converter chip on the same website.

I'll also check up all the stuff you mentioned, and if i have any more questions, i'll definetly get back to you. I am also trying to contact someone in VIA to find out if we could get our hands on their new Eden-N sooner than the official release date of Q1 '04. It's a really nice thing. $100 for the Eden that your friend got sounds like an awesome deal! I'm checking up prices for them too. I got quotations for a PXA255 board, its $475!! Compared to that, the Eden sounds like a MUCH better deal, and to beat that it's got an FPU too!

I also have this other question that maybe you or your friend could help out with. I wanted to buy a book for Linux to use on embedded systems. I've got two potentials, but I don't know which one to get. They are -

1.) Building Embedded Linux Systems; by Karim Yaghmour; O' Reilly; 1st Ed. 2003.

2.) Embedded Linux Hardware, Software & Interfacing; Craig Hollabaugh, Addison Wesely; 1st Ed 2002.

The 1st book is listed as top seller on linux.org but both books have 5 star ratings on amazon.com. Do you have any idea as to which is or might be better?

Thanks a lot!

Cheers,
Jimmy

PS - you can check out our team website at www.site.uottawa.ca/arise . There's not much up yet, but hopefully, once our exams are over, we should have it updated.



As for the books, I don't know. I recommend going to Borders and looking at them and deciding yourself. It's all about what style of writing suites you best. When I had a research internship, I used some highly sophisticated software that has a reputation for being difficult to work with. Yet, for some reason I find it easy to use. There is software that is similar to what I use, and is supposed to be much more user friendly, but I've never been able to get it to work. Ironically the "easy" software gives me problems and the complex software is easy for me to figure out. When I told this to my professor he said it's probably because the guy that wrote the "complex" software probably had a similar mind to mine. In short, we thought in the same way. That is why if two books are rated well, then I must recommend that you check them out at a local store, or buy them both. Being a student, I'm sure money is tight. So try looking something up in both the books at a local store and see which book helps you solve your problem the quickest, easiest, and in the most thorough manner. That's the best answer I can give.

The http://www.beyondlogic.org is a good site, thanks for the info.

As for the
www.site.uottawa.ca/arise
I bookmarked it and will check it in the future, I can't wait too see what your doing.

As for the TI OMAP5910, I will ask Mangrich on tuesday. That is his field so I'm sure he'll have lots of input. I doubt that the DSP setup will cost alot. Last time I saw him, I heard him talking about ADC's (analog to digital converters) he was using a specific name, but I cannot remember what it was. But whatever it was it was relatively cheap, because one of his hobby's is building robots, and he was talking about some particular ADC that he was using. But then again he is always telling me the more money you spend, the less aspirin you will have to take later.

You've got a bold project ahead of you, what year in school are you?

 

sleepydj

Member
Oct 16, 2003
25
0
0
hey,

i would've been in the third year; but since I transferred out of India to Canada, i've been plopped back to second year, because of the way my credits were transferred; some were granted as first yr subjects, some as second year, others as third year - looong story. Anyways, at the end of it all, i'll end up as an EE; and since i've got lots of free time, i'll probably take up several subjects from CEG as well.

As for the team, we've got a 4th year EE, 3 4th year CEGs, 1 3rd year CEG, and a bunch of 2nd year and 1 2st year guys. So, we've got a balance of experience and freshers.

cheers,
jimmy