Hi! My name is WiMo. I'm ready to play!
I'd like to introduce everyone to WiMo. WiMo, this is everyone... Everyone, this is WiMo. What exactly is WiMo? and why did I build him? Both are great questions.
WiMo is the the Windows Mobile Robot. The name comes from the "Wi" from "Windows" and "Mo" from "Mobile" and is pronounced "Weemo" (think of it like a Spanish pronounciation).
I built WiMo for a few different reasons:
- I've always wanted to build a robot and wanted to learn more about hardware.
- Working in Windows Mobile, i thought that our devices would be a lot of fun in a robot especially considering that they also have so much advanced functionality just waiting to be used in a robot (nice screen, speaker, several options of connectivity, an extremely rich API set, camera, etc).
- This would be a great way to show off some of our new and existing APIs and use the SDK in a fun and unique way.
Here's an overview of how WiMo works:
WiMo uses a Windows Mobile 5.0 Smartphone as the central "brain" of the robot. This Smartphone sits directly ontop of a Windows Mobile SDK cd (I did say i was using the SDK in a fun and unique way). The Smartphone communicates to a microcontroller via Bluetooth, using our Managed Bluetooth classes and also communicates with a Pocket PC (and soon to be desktop pc instead) via WiFi. The Pocket PC can be used to remotely control WiMo. The action pad of the Pocket PC is used for standard movement (up, down, left, right, stop).
WiMo has 2 "modes": Personality mode and camera mode. When WiMo is in personality mode, the Smartphone's screen is facing forward and displays a picture that represents WiMo. Right now this is just any photo that I send down to the Smartphone from the Pocket PC. When in Camera Mode, WiMo rotates the Smartphone to face it's camera forward and starts streaming video using DirectShow. This allows you to see where you are going (although it can be fairly difficult to navigate with this tunnel vision). Eventually I will use Managed Direct3D for the personality mode, giving WiMo a more dynamic personality. I'm also planning to use the camera mode for computer vision so that WiMo can start to figure things out for himself (aka be autonomous).
WiMo is learning to make conversation and respond to voice commands via some new prototype APIs in Voice Command. These APIs are not available yet, but we are looking to make them available in the future. WiMo can respond to his name, tell jokes if asked, and even dance!
Yes, that's right, WiMo can dance! He uses the State and Notification Broker to time his dance moves to the music. One of the many (100+) predefined states available in the S&N Broker is the track time (in milliseconds, although it is not updated this frequently) of the song. WiMo gets an event whenever the track time is updated and then can determine which dance move to do. Currently WiMo dances the hokey pokey.
Speaking of events, WiMo is built primarily in C#. I had to write a native layer for DirectShow, but i use it via C#. So, except for some of the support libraries, everything is done in .NetCF.
Want to see WiMo in action? Check out the Channel9 video on WiMo.
Want to build your own WiMo? I'll be posting step-by-step instructions on how to build WiMo, even if you have never worked with electronics (I had little experience with electronics before I started building WiMo). I'll be posting what parts I used, where I got them, and the source code so that you can start playing as soon as possible. In the meantime, if you have any questions, please let me know!
--Brian
Comments
- Anonymous
May 12, 2006
very very interesting! I'm so on fire, especially, because I try to use "live" camera image in another idea too: as the background of Today Screen www.jgui.net/imf_x/
let's share our codes. and I want to start with my own WiMo, step...step... - Anonymous
May 13, 2006
Wow, so cool :) Please post something more about it. - Anonymous
May 13, 2006
The comment has been removed - Anonymous
May 13, 2006
WiMo is awesome. I have been planning out a robot for a few months with my kids, but I thought I would have to make it huge hecause I was going to put an entire motherboard and processor on it, but the WiFi from a PocketPC is such a great idea. I might actually get this thing done this year just from your idea! Can't wait to see your plans. - Anonymous
May 13, 2006
JGUI: Glad you like, One of the things I will do is post my code with the "How to build a WiMo". Stay tuned!
blindlizard: Hopefully you'll find building a WiMo very easy and fun! :) - Anonymous
May 13, 2006
Bad Trade: I'm sorry to hear that you are hitting a problem in Pocket IE. I will forward this to the Pocket IE team and see what they have to say about it. I may need more details on how/when you experience this problem, however.
Also, WiMo is one of my hobbies that I have and is done on my own time outside of work. - Anonymous
May 14, 2006
Bcross: on my site, I try to write everithing in native C+. I think this is a better point for the future using. when I use DirectShow to get live camera image, I can write the rest, the interface, the manipulation, also in native C+ and finally it takes kilobytes but not megabytes. I still wonder: why I don't like to design the interface elements in C# or NetCF... :-) - Anonymous
May 14, 2006
Excellent work! ^^
Interesting way to use a Mobile Device!
Regards =)
Enrico.- - Anonymous
May 14, 2006
I think this is a great project and a wonderful way to show use of WM5. I can't wait to see the details as some of what you have done with WiMo is relevant to a commercial project that I am working on.
By the way - I think Windows Mobile is great too, it reminds me of the 'good old days' of Windows (286/386/3/95/98/NT..) when we were all pioneers working at the leading edge and we all worked around 'bugs' - that was a big part of our knowledge and skill. Today it seems that if you don't score a perfect 100% you score zero and get flamed...
Keep it up - you are doing a great job. - Anonymous
May 15, 2006
Seems like WiMo might enjoy a cheap vision upgrade like "Crystal Vision Super Wide Angle Camera Phone Lens". For $30 on Amazon, I'll bet it makes Camera Mode a lot more interesting. - Anonymous
May 15, 2006
PingBack from http://edablog.com/2006/05/15/wimo-the-windows-mobile-robot/ - Anonymous
May 15, 2006
When will the source be available? I am very interested in seeing your directshow wrapper. - Anonymous
May 17, 2006
I'll be posting the first of the information very soon (hopefully tonight?)... sorry to keep the suspense going :) - Anonymous
May 18, 2006
Could this be the beginning of a Windows monopoly in the robotics sector? - Anonymous
May 22, 2006
That is a great idea. but where is the c# code ? - Anonymous
May 22, 2006
Coming soon! I hope to start posting directions on building WiMo today. Source code will follow. - Anonymous
May 22, 2006
having built a large number of remote imaging units and related embeded systems, I have now acquired this ppc-6700 as a demonstration that an entire autonomous fabrication system can be designed, implemented and utilized in the field -- literally-- using solar power and nothing more than the pocket size fab and cnc systems...
The primary problem, of course, is two fold on these pxa270 mmx units... pocketgcc does not run due to microsoft errors, intel's compilers do not run on intel systems, and the wince/m5 is troublesome to use, especially the foolish hacks required to access the camers via directshow. (opencv also has no compilation that runs on these)...
please concentrate on c# code that compiles using the available compilers for the devices, and post the directshow accessors asap so I do not find the need to find a full size box and reverse all of windows to get it out of the way...
looking forward to the c# accessors that successfully compile on the xscale devices.
feel free to contact me for testing if necessary.
-Wilfred
wilfred@cryogen.com
aim/msn/yp/gt/etc "wilfredguerin" - Anonymous
May 22, 2006
qnx: Can you give me some context here? I really do not know what you are talking about?
I can answer that Windows CE is celebrating our 10th year anniversary this year. - Anonymous
May 22, 2006
photon was referenced in your 9 video, as the next ce/moboile version
sorry, this pocketpc is crashing again, more info after ripping it to shreads... concentrate on c# plz :) - Anonymous
May 22, 2006
feel free to eliminate redundant posts, your microsoft server has fauled 8 times and this ppc ce mobileb5 latest is crashed... - Anonymous
May 22, 2006
The comment has been removed - Anonymous
May 22, 2006
qnx: If you can provide me some details, I'd like to know why our pocket pc is crashing? - Anonymous
May 22, 2006
BCross,
do you intend to further pursue your win based robotics hobby, and moreso, as one of 4 entities trying to engage consumer level machine interfaces as a windows application for users, do you intend to act as an interface to ms released systems developers for advanced yet simple techniques of standardized management of advanced machine vision or human interface for the specific purpose of common use implementation?
(hint: I would not mind offloading a number of refined systems for common use if you could effectively implement such in a published context...)
- Wilfred - Anonymous
May 22, 2006
ms ie is amongs the biggest problems, using sprint's update, one MUST USE OPERA OR FIreFOX to penetrate any jscript dependent form, only to require another box to async install.. at this instant, even after 0-power reboot and reset, the touchscreen keyboard is excessiively lagged, thread stalling while running nothing else, and severely latant in delivering events, just to start... msg wilfred via some other medium if you want to pursue all few hundred technical issues ;) - Anonymous
May 22, 2006
Wilfred: I do plan on pursuing my Windows Mobile based robotics hobby. What are the other 3 entities that you imply?
Unfortunately i am not the official interface to the systems you mention (although that does sound like fun :) ), but if you have specific requests or comments, i can see if the correct people exist and if so, forward them information. - Anonymous
May 22, 2006
Runtime compiled machine control optimizations:
I assume you are familiar with Pocket C# by the same compiling author as PocketGCC, so it should be needless to indicate the need for on-board compilation, as well as the need to exacerbate the dysfunctional dependancies on another machine and activesync for anything other than a yearly hardware rom update...
-Wilfred - Anonymous
May 22, 2006
Wilfred: I have heard of those tools, but have never used them myself. What is your question? - Anonymous
May 22, 2006
perhaps such things are critical to any worthwhile pursuit when using these tools and their pre-loaded operating sys? - Anonymous
May 22, 2006
Wasn't this about WiMo? Isn't this the Windows Mobile blog? Maybe some of the previous posts are better served by Windows CE Embedded. I wouldn't like to think that anything is delaying BCross from posting his WiMo projects.
:-) The suspense is killing me... - Anonymous
May 23, 2006
Sorry for the suspense :) I'll be posting part I momentarily - Anonymous
May 23, 2006
just a thought...
given your positon as an authority figure on CE embedded/fone systems, it might be logical to assume the responsibility of introductary teacher, especially given your lack of background in physical systems prior to this project, you are in the ideal position to not only describe your encounder and developments, but also go beyond and produce an easily understood framework and library demo that allows all levels of similar minded individuals to pursue their new found interest in their respective scope... I have produced (and am currently revising) a k-12 curriculum to introduce classooms to the ethical uses of technology and enlighten the students of all backgrounds that they DO have the option of producing entire technological systems on their own without dependancies on patant or other illegetimate extortion expenses... in short, the project provisions all software tools necessary to handle physical engineering, environmental reverse engineering, and technical simulation, thus allowing for effective and optimal use of tools and resources available to them. of course, usingg an authoritive and supported module for the base system software to neutralize client troubles is desirable; the obvious reason i suggest to concentrate on software library production of video and raw comms resources, thus allowing for unburdened creativity on the client side...
more later..
-Wilfred - Anonymous
May 23, 2006
Which programming languages will be able to run on the WiMo robot? - Anonymous
May 23, 2006
The comment has been removed - Anonymous
May 24, 2006
Looking forward to more information. Robots are great fun, and when you can build them yourself, and use geek gadgets, they are even better! - Anonymous
May 24, 2006
Check out my post "WiMo 101" if you haven't already and check out http://www.wimobot.com as well. I have some good starter information on WiMo there (how to get started, what parts i used, where to get them, etc). Source code and then hardware instructions to follow. - Anonymous
May 24, 2006
O WiMo um robot controlado por um PDA equipado com o sistema operativo Windows Mobile que se move, tira fotografias, responde a comandos de voz e... dana?! - Anonymous
July 27, 2006
funny ringtones - Anonymous
July 29, 2006
It would be great if we have list of phones on a page or some info about which all phones can be used to make WiMo.
I want to buy a phone which can be used to make WiMo.
Also, one suggestion, if there is a kind of Phones USB interface(or Serial) interface to control Microcontroller it be more easy.
I think its possible to use some USB to Serial interface to Microcontroller.
Thankyou for the great stuff.
Kishroe. pra_kis@hotmail - Anonymous
July 30, 2006
Kishore,
The software that I have been writing for WiMo uses APIs that can be found in Windows Mobile 5.0 and beyond, but that doesn't mean you couldn't write software that would work on earlier versions.
Any phone that can talk to the microcontroller will work fine. Even if the phone doesn't have WiFi, you can still talk to the desktop via bluetooth or even gprs/evdo. There are also a ton of scenarios where you don't even need a desktop really. The skies are the limit.
As for the USB interface, it seems to me that that should be possible, but i don't know for sure. I can check on that. I found using Bluetooth was extremely easy (it actually surprised me that it was so easy. I figured talking wirelessly through bluetooth to the microcontroller would HAVE to introduce some difficulty that i wasn't thinking of, but nope.). - Anonymous
September 06, 2006
PingBack from http://www.nxtclub.com/2006/07/25/more-about-the-lego-nxt-wimo-robot/