RETURN TO THE HOME PAGE
  The Latest in Hobby, Science and Consumer Robotics
RETURN TO THE HOME PAGE
HOME SUBSCRIBE RENEW GIVE A GIFT FREE TRIAL! BACK ISSUES CUSTOMER SERVICE PAY BILL
RETURN TO THE HOME PAGE
Current Issue  
Newsletter  
Forum  
Articles  
CURRENT ISSUE
FREE e-NEWSLETTER
ROBOT FORUM
SAMPLE ARTICLES
PREVIOUS ISSUES
ADVERTISE WITH US
LINKS TO BOT SITES
WRITER GUIDELINES
ABOUT ROBOT MAGAZINE
ROBOT SCHEDULE
CONTACT ROBOT
MAPLEGATE MEDIA


CURRENT ISSUE

ZOOM ON COVER


------------------
------------------

Fly RC Planes And Electric RC Helicopters
Indoors And Outdoors Too. Or Try RC Cars
And RC Toys That Are
Fast And Fun.


MAKE: I'm a Maker!



Technology Blog Top Sites


 Microsoft Technical Preview

Microsoft Robotics Studio Simulation – An Overview

Microsoft Robotics Studio targets a wide audience in an attempt to accelerate robotics development and adoption. An important part of the offering is the simulation runtime.  It was immediately obvious that PC and Console gaming has paved the way when it comes to affordable, widely usable, robotics simulation. Games rely on photo-realistic visualizations with advanced physics simulation running within real time constraints. This was a perfect starting point for our effort.

We are investing heavily in the simulation runtime so it can be used in a variety of advanced scenarios with high demands for fidelity, visualization, scaling. At the same time a novice user can use simulation with little to no coding experience and develop in a game-like environment develop interesting applications. Our partnership with Ageia enables us to leverage a very strong physics simulation product that is mature and constantly evolving towards features that will be invaluable to robotics. The rendering engine is based on managed DirectX and in a future release, on the new XNA framework.

In this document we will first discuss the challenges robotics development poses and how we can use simulation to address them and enable a diverse user base to author interesting robotics applications. We will then talk about the challenges and limitations of using simulation. Then we will provide an overview of the runtime components and finally we will show some screenshots of running simulations.

For more details on how to use the simulation runtime please refer to the simulation tutorials.

Challenges with the real thing

Robotics Hardware can be expensive and hard to find

Modular robotics platforms like the LEGO® MINDSTORMS® and fischertechnik® have made robotics affordable to a wide consumer audience.  These platforms are an excellent starting point for the educational market and hobbyists but if you want to scale in terms of complexity of the robot or the number of individual robots, cost will prohibit most people from going further.

Hardware Troubleshooting is Hard

Troubleshooting hardware, even wide spread consumer hardware like a DVD player or a TV is hard. Consumer electronics just happens to be extremely reliable so most people don’t have to worry about things going wrong. When you are putting together a robot, especially a custom robot based on a modular platform with off the shelf parts, significant skill, time and effort is expended “debugging” your physical setup.

Concurrent use is hard

Developing an advanced robot (like the vehicles that competed in the DARPA competitions) with a team of people is becoming a common occurrence. One of the challenges is that often the robot being developed is expensive and it there is only one. These two properties make it difficult to try things concurrently with others and with no danger of destroying the robot. This forces people to try to develop components in isolation, making integration harder and introducing hard to find bugs.

Simulation Benefits

Low barrier to entry

Simulation enables people with just a personal computer to develop very interesting robots or robot swarms with the main limiting factors becoming time and imagination. At the same time it constrains them in ways similar to physical robots so they can focus their effort in something that can be realized.

Staged approach

Microsoft Robotics Studio approaches simulation in stages, allowing people to deal with complexity at the right time. This means you can “debug” your simulated robot starting with basic primitives and requiring only basic knowledge. It is extremely concise to add such a virtual robot in an environment, plus some simple shapes to interact with.  This means debugging, even in the simulation, is simpler.

Prototyping

Physical models for a robot and the simulation services that use them can be developed concurrently by many people, and just like many software development communities, create a “platform” that many can use and modify with out worrying about breaking expensive, unique robots.

Education

Simulation can be an extremely useful instructional aid. You can choose what to focus on, build up complexity, control the environment. You can also introduce components that are purely virtual, concepts that cant be easily realized but still useful for learning

Learning System

Another really interesting aspect of simulation is that it can be used while the robot is running, as predictive tool or a supervised learning module. For quite some time people have used simulation running concurrently with an active robot, to try out a few things in the simulation world that is being update real time with sensory data. Then the simulation can tell them (probabilistically) if something is a good idea, “looking ahead” in the various possibilities

Simulation Drawbacks and Limitations

We are essentially trying to turn a hardware problem into a software one. However developing software and a physics model has its own challenges so we end up with a different set of challenges and limitations. Usually this means that there is a sweet spot, a range of applications where simulation is very appropriate and then a range of applications or stage sin development, where using the real robot is essential or easier. As we improve the simulation runtime the range where application is appropriate will expand. The increase in processing power plus the concurrent and distributed nature of the Microsoft Robotics Studio should help address some of the issues.

Lack of noisy data

People involved in the large robotic challenges will tell you that you must spent serious time with the real robot no matter how good the simulation was. This is partially because we have a lot of work left in making simulation more usable and more realistic but it is also because the real world is unpredictable and complex with lots of noise being picked by sensors.

Incomplete and inaccurate models

A large number of effects in the real world are still un-explained or very hard to model. This means we can not model everything accurately, especially in real time. For certain domains, like wheeled vehicles, motion at low speeds is still a big challenge for simulation engines. Modeling sonar is another.

Lots of time for tuning

In the simulation runtime it is actually very easy to get a robot in the virtual world running around interacting with other objects. However it still requires significant effort to tune the simulated hardware (we call them entities) to behave like their real world counter parts. We are building on the Ageia engine so we are already have a very good starting point, but more effort is required into automated tools for tuning simulation parameters

Simulation Runtime Overview

The simulation runtime is composed of the following components:

  • The simulation engine service. It is responsible for rendering entities and progressing the simulation time for the physics engine. It tracks of the entire simulation world state and provides the service/distributed front end to the simulation

  • The managed physics engine wrapper. It abstracts the user from the low level physics engine API, provides a more concise, managed interface to the physics simulation

  • The native physics engine library. The simulation runtime uses the Ageia physics SDK and runtime, which supports hardware acceleration through the PhysX card

  • Entities, which are meant to represent hardware and physical objects in the simulation world. A number of entities come predefined with the Microsoft Robotics SDK and enable users to quickly assemble them and build rich simulated robot platforms in various virtual environments.

You can choose to interact only with the managed physics engine API if you don’t want any visualization. However it is strongly recommended that you always use the simulation engine service and define custom entities that disable rendering. This greatly simplifies persistence of state, inspection and debugging of simulation code.

The simulation runtime is not yet fully developed. Certain physics primitives, like joints between entities are not yet supported through the managed interface. The focus for the first CTP has been on multi shape environment entities and multi shape wheeled robots plus on exposing properly the material properties and shapes required. Articulated robots with complex joins will be supported in a future release.

The rendering engine uses exclusively the programmable pipeline of graphics accelerator cards, conforming to Directx9 Pixel/Vertex Shader standards. In future tutorials we will talk how the simulation runtime makes it easy to supply your own effects and have the engine manage loading, rendering, updates to effect state, etc.

  • Programming the simulation

In the simulation tutorials we show how to simulate a wheeled robot with a couple of onboard sensor devices. Two software components are usually involved for simulating a physical component and its service:

  • An entity, which is the software component that will interface with the physics engine and the rendering engine. It will expose the appropriate high level interfaces to emulate hardware and hide the specific use of physics APIs.

  • A service, that uses the same types and operations as the service it is simulating and provides the distributed front end to the entity, just like robotic services provide the front end to robot hardware.

For a walkthrough of interacting with the simulation runtime please refer to the simulation tutorials. Samples of simulation services that emulate sensors, actuators and higher level services can be found in Samples

Screenshots

.



Modular robot base with differential drive, laser range finder and bumper array. Second image is of the physics primitive view, which shows how the table and robot are approximated by solid shapes.



Close-up of a multi shape environment entity and its physics model

Simple Dashboard monitoring simulated laser in physics view.

Complex file based mesh entity, with run time generated simplified convex mesh

Friends – Three MobileRobots Pioneer3DX robots with lasers plus the new LEGO® MINDSTORMS® NXT®. There is something wrong here yes… See if you can spot it. The mesh for the lego robot has 172,000 triangles…

Example of using a height field entity for the ground, with random height samples, every one meter. A different material can be supplied per sample allowing for advanced outdoor simulations. The red dots in the first image are the visualization of the laser impact points from the laser range finder entities.

Microsoft Enters Robotics—An Educator's Perspective

Microsoft Robotics Studio Provides Common Ground for Robotics Innovation

dot_clear.gif - 43 Bytes
Site Guide
dot_clear.gif - 43 Bytes
home | dot_clear.gif - 43 Bytesabout Robot magazine | current issue | sample articles | forum | advertising
publication schedule
| writers' guidelines | contact Robot | links to other robot sites


Get Robot
dot_clear.gif - 43 Bytes
subscribe | give a gift | renew | customer service | buy back issues | pay bill
dot_clear.gif - 43 Bytes
© 2008
Maplegate Media Group, 650 Danbury Road, Ridgefield, CT 06877
Tel: (203) 431-7787  |  Email: editor@botmag.com