Windows CE SBC's ?

Has anybody ever considered or perhaps even tried, using an SBC that runs Windows CE or CE .Net?

If one of these boards (suitably configured) were used as the basis for all robot processing, would one not be able to code in C++, C# etc and be more productive?

Also adding a WiFi card or adapter to a Windows CE SBC would be easy and one would be networked very easily.

Any thoughts out there?

Hugh

Reply to
Hugh W. Gleaves
Loading thread data ...

Some CMU chaps stuck a palm pilot on a mobile base, you mean something like that?

Depends on how you define productive. I'm productive enough using assembly. I don't know C++ or C#, nor do I have any desire to learn them! So in my case, no...it would not make me more productive!

If you have a windows CE SBC...why would you need a wifi card at all? To use your computer to control your...uhh...mobile computer? Seems a bit round-about to me!

You just got mine!

-Alex

Reply to
Alex Wisnieski

Definitely, and is what many people do. However, computing capacity, physical size, and cost are only just beginning to approach levels making this practical.

I guess the better question would be why are you specifying Windows CE? I understand how alternate operating systems may not suite everyone's needs, but the capabilities of an SBC shouldn't be dictated by any specific OS.

Reply to
Chris S

Let's see, in C I can perform trig functions by using sin() and cos() in one line. How do you do that in assembly? Of course it's possible, but the point's in the simplisity. High-level languages are meant to simplify the construction of abstract instructions. The only purpose assembly serves today to provide a formal interface between compilers and low-level hardware.

Think of it as the same reason the internet was invented. But you're right, why would anyone want networked computers?

Reply to
Chris S

I will admit that assembly makes a lot of sense for microcontrollers, but I find myself to be *much* more productive in higher languages for anything fairly large. However, for some microcontrollers I still use assembly, but it's an informed decision.

You could use the connection for many reasons. You could upload data from the robot, you could have a more powerful computer or network of computer handle computatationally intensive tasks.

-- D. Jay Newman

formatting link

Reply to
D. Jay Newman

For robotics...I only use MCUs. I don't program PCs. LOL. I don't think I'd want to try to program a PC using only assembly. Then again, I'm really into building robots that'll run decently on a pair of NiMH AA batteries :)

Uploading data in realtime (possibly for telepresence) was really the only idea I could come up with. When I think of computer networks, I think hefty systems...and I really can't think of any task aside from realtime, hi-res vision processing that would really require that much power. I, personally, think an SBC by itself would be more than enough for a pretty much fully autonomous platform (minus the realtime vision processing LOL).

Reply to
Alex Wisnieski

I was going to respond...but honestly, I don't need to involve myself in a flame war with a "My language is better than your language" idiot. If you want a flame war, go post a copy of your response in comp.lang.asm. Thanks.

MY question was not "Why would anyone want a networked computer".

MY question was, "Why would a mobile platform with an abundance of computational power NEED a wifi connection?"

This was a question I asked, hoping to get a response from Mr. Greaves...

Reply to
Alex Wisnieski

Yes you can use these OK. The WinCE devices that have a serial port that you can programmatically control are the easiest. You can use a MCU as a I/O co-processor and send commands to the MCU via the serial port. The IR port can be used too, but the MCU has to have a IRda interface as well. They have several progamming languages available along with some development platforms. C++ and Visual Basic for WinCE is easy to get. WinCE machines use a subset of the full C++ or Visual Basic as the WinCE machines don't have all the hardware or features a regular PC has. But usually people discover that the MCU's do it a lot better so they migrateaway from using the WinCE machines. But if your collecting a lot of data a WinCE machine getting the data and storing it might be effective. Lately everyone has started using Via Mini-ITX boards instead, as with these you can use large hard drives and put in a lot of RAM. Thus the Linux people can run Linux and the Windows people can run Windows.

Reply to
Earl Bollinger

The feedback is certainly enlightening, its interesting to read the diverse opinions on these issues.

There is really no way that sophisticated robot management applications can be developed or deployed using primitive MCU's alone.

The desktop provides masses of memory, masses of disk and masses of processing MIPS, especially with the advent of 64 bit architectures.

Of course some processing capacity is needed on the vehicles themselves, but this can be confined to device management and communications in my view.

I am very interested in being able to design and implement very sophisticated robot management applications and want to be able to use the most sophisticated tools around in order to do this.

The idea of using a Windows CE board is really to greatly simplify the use of the .Net technologies, which provide extremely powerful distributed computing possibilities.

I am right now designing a schema to allow me to focus on software issues, I mean genuinely high-level software issues, for robot management.

So long as it is necessary to fiddle around with PWM control logic and assembly langauge interrup processing as the main focus of effort, real progress in terms of machine capability, will be slow.

I fully intend to develop sizeable management software in C# or VB running on my desktop and communicating with the robots various subsystems via a wireless link.

Right now I am just trying to decide on what sort of processor I should deploy in the robot in order for me to get going and focus on high level stuff.

A Windows CE box with wireless network setup, will allow me to almost right away, begin creating C# software that can forward directives and aquire data from a robot vehicle.

I think that if we had a highly virtualised way of looking at robot hardware, then we could really be very productive with our software efforts.

Hugh

Reply to
Hugh W. Gleaves

Hrmm. Ok...You've got a whole lot of processing power, and from what I can gather from the post, a whole host of small mobile platforms.

Whats the big picture here? What k> The feedback is certainly enlightening, its interesting to read the

I'd say there's probably as many opinions as there are people :)

There are more advanced MCUs...

I'm still curious as to what kind of mobile platforms you'd be building, that would not require sensing the environment around them. Would they be on rails/tracks?

I find this isn't too big a problem. I personally have (with some overhauls) only written control software once. Creating a system thats easily adaptable is the key. The only time this really fails is if you have several, very different and very specialized platforms. My major overhauls have been various upward movements in MCU families, which changed instruction sets...but most times, this was a major upgrade, as the expanded instruction sets allow for more optimized (and much smaller) code. I'm at the point now where the MCU's I'm using are being way under-utilized (IE...I'm not using more than half the available flash and RAM...AIEEE!)

Depends on the application. You're doing a damn fine job at making me curious. I sure hope you're gonna follow through on it LOL.

Thats true...but you can't ignore hardware completely (unless it will be up to the End User to design these mobile robotic platforms to suite). Is there a target application, or is this just a "It needs doing, and I'm going to be the one to do it!" kind of thing? If there is a target application, will the mobile platforms be expected to function in case of communication failures, or in the event of a server crash? If there is no specific target application...will the lack of local robotic control (as it seems to me may be the case, with what you've written) make this a less disirable system? Will it be used in industrial applications?

I think this might end up as a long thread. LOL

-Alex

Reply to
Alex Wisnieski

Well, thanks for not responding. The only thing I "want" is to point out that assembly isn't the best way to approach complex programming projects. I've done a lot of assembly programming, but it's not the best tool for all jobs.

In my experience, no computer ever really has an abundance of computational power. We always want more.

Of course, by your argument, no person should ever need a cell phone...

Then perhaps you should email you're clever posts to him directly...

Reply to
Chris S

This statement is very true, and one I agree with completely. However, what you "Wanted" to point out, and what you ended up saying previously are contradictory ("The only purpose assembly serves today is to provide a formal interface between compilers and low-level hardware.")

It can be avoided by starting with a well thought out design plan, though. In anything except a commercial or industrial design though, well thought out design plans are few and far between LOL.

OK. You're seeing argument where there is none. Perhaps I should have been a little more verbose in my explaination of why I don't understand why he needed a WiFi connection.

He has since explained a bit more about his project (though I'd still like some more information...it sounds interesting), and his scope is a bit bigger than I had previously thought (which is why it sounded a bit round-about to me. I was under the assumption this was to be a single robot controlled by a server, when the robot has more than enough power to control itself).

This was not a personal attack on him...just a request for clarification.

-Alex

Reply to
Alex Wisnieski

Well my position on all this is as follows, a bit of history may be useful, excuse the length of the posting.

I built and programmed small microprocessor controlled robots back in the late 70's and early 80's, I had several articles published in UK electronics journals as a matter of fact (ETI, WW).

I coded (back then) in raw hex machine code, on a 6502 based SBC, I can even recall the IO chip: INS8154!

I was a hardware focued young man back then, studying electronics and communications at the time, and dabbling in programming.

However I have not done anything with this interest since then, I have been in fact a software developer by profession working in C, PL/I, and other high level langauges, no hardware or MCU stuff though.

My knowledge of electronics is still with me, fairly rusty in places, but the fundamentals are fine, however my software skils are pretty good I'd say, Ive developed compilers, 3D graphics sofware (back in the days when it was new), and all sorts of mission critical systems (mainly in the City of London).

Well now I am enjoying a slight "sabbatical" as it were, and getting quite interested in my old robot hobby.

So I am one again interested in robot machines, but I have a much more mature appreciation of whats important when it comes to engineering large software systems, than I did 20 years ago.

Therefore I am very focused right now on ways of virtualizing hardware components and controlling/interacting with them transparently via a wireless network link.

I am in the very early stages of outlining a class library specification for abstracting the sorts of components that are present in these machines.

Thats it really, thats why I am asking these questions, I am trying to find out whats available because I really havent been participating in this arena for years, I'm rather out of touch!

I want to create a software environment in which robot hobbyists and developers can work in a powerful, reliable and well supported manner.

I'd like (for example) to be able to create C# (or VB) applications that create and manage obects that represent robot abstractions. If one can get to this stage then it might well be possible to develop "standard" applications and libraries.

I can envisage libraries for stuff like:

navigation in rooms (using ultrasonics and other proximity detectors) for wheeled machines. walking searching self re-charging etc etc

I consider that the rules for navigation can be defined and are to a large extent independent of the machines physical make up (ie independent of its wheel diameter, its height, its shape etc).

A language compiler (for example) embodies grammar rules and these are quite independent of the target chip, this sort of idea is something I feel is missing in this world of amateur robots.

In such a world, a hobbyist could build a simple robot, that meets the min spec for the library and hey-presto it has navigation, they could then focus on programming with these powerful abstractions, never bothering with the fiddly ins and outs of the electronics themselves.

I have masses of ideas on how to specify and implement some of these things, but I am just at the very beginning of rediscovering whats out there, things have come a long way.

On a separate note I am looking to equip my new workshop with a good scope and stuff, as well as a load of PC's, power supplies etc and will of course be putting some kind of solid wheeled machine together later this year, in order to test and develop these ideas.

All I want to be able to do is be able to send/recv simple messages to/from an SBC, using TCP/IP sockets and over a wireless link. If I can decide how best to do this, then I will be able to get moving with some serious stuff.

Thats my hope anyway!!

Thanks Hugh

Reply to
Hugh W. Gleaves

Hmmm. Interesting idea. If you did something like this, and were successfull...I'd imagine you'd bring a LOT of people into robotics.

Ach! minimum system requirements for my games...and now minimum system requirements for my robots! AHH! Seriously though...I'd hope you'd expose some of those fiddly ins and outs. To me, making a fiddly in or out work properly is a big rush. Though I guess on the flip side, it just depends on if your big rush is bigger than the big frustration leading up to it :)

Well. I think that answered the last of my questions. It all makes sense now. I do hope you'll post updates to the NG occasionally, and let us know how its going along. I probably wouldn't use it (As I said before, I've got a big preference for small (tiny) robots), but I like the idea, and I think the implementation will be...challenging, to say the least! Good luck on it!

-Alex

Reply to
Alex Wisnieski

I'm working on such a framework in Java. I've tested what I have on the Systronix JStik (SPC), and am going to be porting it to Linux because I now have a VIA Mini-ITX system.

This should also run well under Windows.

-- D. Jay Newman

Reply to
D. Jay Newman

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.