/* Project: Socrates */
Learning Embedded Systems With Windows CE
 
Blog Entries    Windows Mobile    Socrates    
Login
Register



Home

Blog Archives

Socrates?


CEBot


Status Reports

Chapters

Best Practices

Discuss

Open Editing

Pocket PC

Downloads

Favorite Links

Biography

About Web Site


Home > Socrates? > CEBot

Rossum

Posted by on Tuesday, January 18, 2005 (PST)

Rossum is an open source project that provides a simulation tool for mobile robot navigation. Learn how I plan to use Rossum to allow development of the CEBot "Core Project" without actual hardware.

As you may have heard by now, CEBot is the “Core Project” used in Socrates and currently requires the use of two different boards from ICOP Technologies and EMAC, Inc.  So what will the engineering student do if they can’t afford to purchase these boards, a distinct possibility if I remember my own days as a student?  This is where Rossum comes in. 

My plan is to produce an extension module for the Windows CE emulator to allow the simulated sensor output from Rossum to be directed to the CEBot device driver modules running in the emulator.  Though the hardware level interface presented to the device drivers will be quite different when running in the emulator (through a simulated DMA channel in the CE emulator), it will allow a significant percentage of the same code to be run, and enable experimentation with different navigation algorithms.

So how would this look when it is all up and running?  The developer defines and builds a CE kernel and targets the emulator.  The emulator window appears when the build process is complete and the kernel image is loaded and run in a virtualized PC.  The developer then loads the Rossum graphical shell, causing the Rossum engine to begin listening on its specified port for a connection.  The developer then executes a robot navigation application in the CE emulator, causing various device drivers to be loaded and initialized.  This, in turn, causes the emulator CEBot extension to automatically form a network connection with Rossum allowing it to receive sensor data and send actuator commands. 

The navigation algorithm running in the emulator then commands the robot motors to begin rotating in a designated direction and velocity, calling the appropriate device driver function.  This causes the motor controller hardware to be accessed and causes the CE emulator extension to begin receiving certain data (through the emulator’s DMA channel) from the device driver.  The emulator extension then translates this data to Rossum commands which are sent over the designated Rossum network port, resulting in the motion of the simulated robot in the Rossum graphical shell. 

It would require a good bit of effort to get this working, but if successful would allow device driver development with simulated robot hardware (through the use of the CE emulator), operating in a simulated robot environment (through the use of Rossum).

Would this be useful to embedded system engineering student?  It allows the student without physical hardware to experiment with CE driver development using an interesting and entertaining simulated robot.  What is lacking, however, is all the other challenging aspects of embedded systems development that emerge when physical hardware is present, such as platform initialization, remote debugging, kernel image upload to a target platform, and most importantly, dealing with I/O from physical hardware.

Please let me know what you think.


Comments:

Usefullness of Rossum to engineering studen
By smitchell on Friday, January 21, 2005 (PST)

To respond to the question about Rossum's usefulness to an engineering student, I feel that it should be somewhat downplayed compared to developing on the actual hardware. As a fairly recent graduate, and someone working in embedded systems, I think curriculum these days is getting farther from the hardware, and students are coming out with a lot more experience programming for the PC than for embedded systems. With that in mind, it is possible that a student may not appreciate what the Windows CE emulator is doing for him until he has spent plenty of time programming with the actual hardware. However it looks like your book plans to go into the differences between embedded systems, and others, so hopefully the student will grasp some of those distinctions. Also presenting the emulator concept will help make his understanding of the tools and debugging process more complete. As far as I'm concerned, it is something that I don't know enough about and I am probably not taking enough advantage of. For example, I have been trying to figure out how I can use the emulator to be able to prototype user interface proposals for marketing and customers. I feel like there is a lot of value there, but I just don't have enough familiarity. I just thought I'd give you my opinion. Looks interesting!

-Stuart

Reply to this Comment

Good Point!
By jywilson on Saturday, January 22, 2005 (PST)

“To respond to the question about Rossum's usefulness to an engineering student, I feel that it should be somewhat downplayed compared to developing on the actual hardware. As a fairly recent graduate, and someone working in embedded systems, I think curriculum these days is getting farther from the hardware, and students are coming out with a lot more experience programming for the PC than for embedded systems. “

Stuart I couldn't agree more with this statement, and since your life as a student is more recent than mine , your perspective is even more noteworthy.  I suspect that the rapid advance of the processor market (enabled by IP cores and SOC devices) has made it difficult to keep up for must universities.  At least Moore's Law is still in force, and the cost of the hardware has declined enough to make a full featured SBC device cheaper than ever.  Perhaps, we can get a student or professor to weigh in on this point.  Anyone?

In the end, maybe one solution is for students to buy the hardware which will be used in the coursework in a small box, bundled with the text book, assuming this results in a low incremental cost in the price of the text book.  Students are already strapped with exorbitantly high text book prices.

“For example, I have been trying to figure out how I can use the emulator to be able to prototype user interface proposals for marketing and customers. I feel like there is a lot of value there, but I just don't have enough familiarity.”

This is definitely a good way to provide a look and feel of the working product, especially if you can take the time to reskin the emulator to provide the form factor and button layout of your target hardware.

Thanks for the feedback!

Reply to this Comment

Add Your Comment

 





New Articles
  • FIRST Tech Challenge
    A brief account of my experiences volunteering as a judge for the FIRST Tech Challenge held at California State University at Northridge.

  • Greetings Robot Fans!
    Monocular SLAM, DARPA Urban Challenge, RoboticsConnection.com, and the ImagineCup 2008.

  • Socrates I Lives!
    The first phase of Socrates I (research robot) construction is complete. It's not pretty, but it has all the necessary features to explore high level navigation algorithms using the Microsoft Robotic Studio (http://msdn.microsoft.com/robotics/).

  •  

    New Posts

  • Windows CE 5.0 Vs 6.0
    Posted by vsanghi@e-consystems.com on Tuesday, June 12, 2007 (PST)

  • Access to Data Rates Beyond 115.2 Kbps From .NET CF
    Posted by jadams on Thursday, November 16, 2006 (PST)

  • Getting Started With BSP Migration
    Posted by jywilson on Tuesday, October 24, 2006 (PST)

  •  

    New Downloads

  • AutoLaunch V1.0.zip
    This file contains the AutoLaunch CE 6.0 subproject.

  • PhidgetsDrivers-CE60 Project Files.zip
    The CE 6.0 project files and latest release from CodePlex of the Phidgets drivers.

  • PhidgetDrivers-PB Project Files.zip
    This file contains the Platform Builder 5.0 project files to include the Phidgets drivers in your OS image.


  •  

    Home   |   Blog Archives   |   Socrates?   |   Chapters   |   Best Practices   |   Discuss   |   Open Editing   |   Pocket PC   |   Downloads   |   Favorite Links   |   Biography   |   About Web Site