Simulated Differential Drive
Glossary Item Box
Microsoft Robotics Developer Studio | Send feedback on this topic |
Simulated Differential Drive
The SimulatedDifferentialDrive service demonstrates how to simulate a generic differential drive motor using the simulation engine's WheelEntity.
This sample is provided in the C# language. You can find the project files for this sample at the following location under the Microsoft Robotics Developer Studio installation folder:
Samples\Simulation\DifferentialDrive
Contents:
- Setting Up the Service
- Running Up the Service
Prerequisites
Hardware
This service requires no special hardware apart from a suitable graphics card to run the Simulator.
Software
This software is designed to run with Microsoft Robotics Developer Studio.
Setting Up the Service
The SimulatedDifferentialDrive service is installed automatically with RDS. The samples that show usage of the SimulatedDifferentialDrive service are the iRobot or LEGO NXT simulations from the Start Menu or the simulation tutorial Simple Robot with Drive.
The simulated differential drive implements the Generic Differential Drive service contract so that it can be controlled by other services.
Running Up the Service
There are two different methods to start the SimulatedDifferentialDrive service. Either:
Start the service by adding the service to a manifest either through DSS Manifest Editor (DSSME) or manually with any text editor. The below XML shows how the SimulatedDifferentialDrive service should appear in the manifest.
<?xml version="1.0"?> <Manifest xmlns:simulation="https://schemas.microsoft.com/robotics/2006/04/simulation.html" xmlns:this="urn:uuid:8272063e-1357-4786-8c29-ff0737a54876" xmlns:simulateddifferentialdrive="https://schemas.microsoft.com/robotics/simulation/services/2006/05/simulateddifferentialdrive.html" xmlns:dssp="https://schemas.microsoft.com/xw/2004/10/dssp.html" xmlns="https://schemas.microsoft.com/xw/2004/10/manifest.html"> <CreateServiceList> <!--Any other services you want to start could be here--> <ServiceRecordType> <dssp:Contract>https://schemas.microsoft.com/robotics/simulation/services/2006/05/simulateddifferentialdrive.html</dssp:Contract> <dssp:PartnerList> <dssp:Partner> <dssp:Service>https://localhost/SimDifferentialDriveEntityName</dssp:Service> <dssp:PartnerList /> <dssp:Name>simulation:Entity</dssp:Name> </dssp:Partner> </dssp:PartnerList> <Name>this:SimulatedGenericDifferentialDrive</Name> </ServiceRecordType> </CreateServiceList> </Manifest>
Start the service programatically as done in a program that creates a simulation environment:
Microsoft.Robotics.Services.Simulation.Drive.Proxy.Contract.CreateService( ConstructorPort, "https://localhost/" + robotBaseEntity.State.Name, Microsoft.Robotics.Simulation.Partners.CreateEntityPartner( "https://localhost/" + robotBaseEntity.State.Name) );
Summary
This sample covered the following:
- Setting Up the Service
- Running Up the Service
© 2012 Microsoft Corporation. All Rights Reserved.