This page contains a list of what's new and changed in Microsoft Robotics Developer Studio (RDS) 2008 R2. There is also a set of Release Notes that provide more details on some of these new features and changes.
Robotics Developer Studio 2008 R2
DSS Command Line Tools
The DSS Log Analyzer is now included in RDS. This tool allows you to graphically examine logs that were previously captured by DSS. You can filter the messages, select time-slices and adjust the timescale, view message content, etc. to assist you with diagnosing issues in your services and locating possible bottlenecks.
Visual Simulation Environment (VSE)
A number of new simulated sensors have been added to the simulation environment. These provide services that were commonly requested in the Discussion Forums. They include:
- Sonar
- Light (Brightness)
- Color
- Compass
- Infrared Range
- GPS
In conjunction with these new sensors, the Simulation Tutorials have been rewritten. The new tutorials explain how to add sensors to your own robot as well as how to run multiple copies of a robot at the same time.
New Structure for Sample Code
Starting with this release, the samples and tutorials have been changed so that they do not overwrite the Microsoft-supplied services when they are recompiled. This clearly delineates between the Microsoft code and any code that you have modified.
Robotics Developer Studio 2008
Samples and Tutorials
Documentation for samples and tutorials is included in the RDS Help which is available from the Start menu after installation. The following new samples are included:
- DSS Node Discovery using UPnP: A new UPnP (Universal Plug and Play) sample illustrates how to use UPnP for discovering DSS nodes across a UPnP network.
- Transport Extensibility: PipeTransport and PipeTransportHost are two new tutorials on how to write your own transport and load it in your custom host. In addition you will also find the UdpTransport and UdpTransportHost as additional transport samples.
- LINQ: Service Tutorial 12 shows how to subscribe to the Directory Service using a LINQ Filter and how to receive filtered notifications.
- Silverlight: The XBox Controller Viewer sample shows support for use of interactive Silverlight-based UI.
- Windows Presentation Foundation: The WPF Text To Speech UI sample illustrates how to use the new WPF adapter to display a WPF Form.
- Embedded Simulation Environment: The sample EmbeddedSim sample shows how to embed the Visual Simulation Environment in a custom Windows Forms user interface.
- Simulated Pursuit Camera: The PursuitCamera sample shows how to implement a camera entity that follows behind a target and avoids obstacles.
- Simulated 4x4-drive: The SimulatedFourByFourDrive sample shows how to implement an entity that behaves like a 4x4 off-road car.
- Simulated Sumo: The Simulated Sumo sample (based on the iRobot Create) that was previously available as a separate package is now included in the distribution.
The following samples have been discontinued:
- LEGO MINDSTORMS: The RCX samples have been removed from this release.
- Interop: The USB Viewer service has been retired.
- Introductory Courseware: This set of VPL samples has been superseded by the VPL Hands On Labs.
Concurrency and Coordination Runtime (CCR)
New Features and Bug Fixes
- Syntax Extension: Introduced new syntax using .NET Framework 3.5 extension methods on Ports and PortSets to concisely describe coordination primitives, e.g. Port.Receive(), PortSet.Choice(), etc.
- Timer Logic: New timer logic completely implemented within the CCR dispatcher utilizing multiple cores to increase resolution. CCR periodic timers can now do 1ms accuracy versus 15ms or higher in previous versions that relied on the CLR timers.
- Causalities: CCR now propagates causalities when enqueuing tasks with no parameters.
- Exception Handling: Dispatcher Queue/Dispatcher have an event/port for registering unhandled exceptions thrown in the context of CCR processing.
Decentralized Software Services (DSS)
New Features and Bug Fixes
- Global Assembly Cache: All DSS core DLLs are now installed into the Global Assembly Cache (GAC). This means that they are a shared resource for all installations on a single machine.
- Support for Simulation on 64-bit: Addition of dsshost32.exe which forces use of the Microsoft Windows-32-on-Windows-64 (WOW64) subsystem on 64-bit systems. This can be used to run services targeting the Visual Simulation Environment and other services that require running in 32-bit compatible mode on 64-bit systems. All shortcuts in the Start Menu that starts simulation services now use dsshost32.exe.
- HTML Form Post Mapping to DSSP: Support for HTML Form posting can now be significantly simplified by using the automatic mapping of HTML Form data to DSSP operations. See the Generic Differential Drive code for an example of how to create a web page that uses automatic mapping.
- Support for HTML Form File Upload: The DsspHttpUtilitiesService.ReadAllFormData helper function supports parsing of MIME multipart format used for HTML Form File Upload. This allows for files to be uploaded through a simple HTML form.
- Type Registration: Runtime auto loads types and registers proxy and transform DLLs when it first sees an unknown type or XML fragment. There is no longer any need for pre-registering types using the DssEnvironment class.
- Contract Cache: The contract cache has been simplified and the size reduced to just about 8KB on disk.
- Message Logging: New parameter added to DssHost that allows user to specify message logging path and enable message logging easily with no config file edits.
- DssHost Configuration: New keys added to DssHost configuration host file that allows hosts to specify all command line parameters in the config file. This eliminates the need to specify HTTP and TCP ports if you only want to use the defaults since the config file will just pick 50000 and 50001.
- Service Creation: Constructor service now has a fixed URI greatly simplifying remote node startup (no need to query remote directory for constructor URI).
- Partner Creation: Partner policy supports CreateAlways and UseExistingOrCreate across nodes if ServiceDirectory is specified in manifest partner entry or in partner attribute.
DSS Command Line Tools
- DssNewService.exe: New service templates produce cleaner, more readable code (C#, VB.NET, C++/CLI). Support has been added for multiple services per project (C#, VB.NET). You can implement multiple alternate contracts (creates handler stubs for all alternate contract operations) (C#, VB.NET).
- DssProjectMigration.exe: Supports migration of projects for use with the GAC’ed CCR and DSS runtime assemblies as well as migration of projects across multiple versions of Microsoft Robotics Developer Studio.
- DssProxy.exe: The DssProxy tool has been completely rewritten to significantly simplify the generation of service proxy assemblies. This also has resulted in much better performance which directly benefits development time. In addition, the tool chain for writing services for .NET Compact Framework has been simplified to no longer need a companion service project targeting the desktop version of .NET Framework. This makes development for .NET Compact Framework much easier.
Visual Studio Project Wizards
- The Visual Studio project wizards for DSS services have been rewritten to simply creation of new service projects and make it more intuitive.
- Wizards are available for VB.Net and C# across Visual Studio 2005 and 2008. Visual C++ developers as well as developers targeting .NET Compact Framework will still have to use the DssNewService.exe command line tool.
- The Wizard can search through all available services and add them either as partners or alternate contracts. Multiple partners and alternate contracts are supported.
Visual Programming Language (VPL)
New Features and Bug Fixes
- The VPL user interface has been redesigned.
- 64-bit: Running services from VPL now calls VplHost32.exe which is compiled for 32-bit systems and hence force use of the Microsoft Windows-32-on-Windows-64 (WOW64) subsystem on 64-bit systems. Services that use Visual Simulation Environment or other services that require running in 32-bit mode now run seamlessly from VPL on 64-bit systems.
- VPL has been rewritten to load and run faster.
- Several new services have been written to support VPL users and the documentation has been substantially improved.
Visual Simulation Environment (VSE)
Note that the Visual Simulation Environment requires a graphics card supporting DirectX 9.0c or later, Shader Model 2.0+ and a minimum of 64MB of video memory. For more details see the VSE User Guide.
New Features and Bug Fixes
- Simulation is able to display multiple camera views simultaneously.
- The Visual Simulation Environment is now able to run without any visible UI (headless).
- The Simulation display can be embedded in another application form.
- Simulation now has a built-in profiler that shows performance and statistics.
- The simulator can now load meshes from .X files so that it may be more easily used with the free TrueSpace 3D modeling package available from Microsoft.
- The simulator now supports Ageia physics acceleration on nVidia GPU processors.
- Creating multiple robots of the same type in the Simulator has been simplified.
- Breakable joints now send a notification when they break.
- Numerous performance improvements including better simulated real-time camera performance.
The following new features are not available on the Express Edition:
- The simulator can now load Collada files that contain both visual and physics representations of a scene.
- Undo and Redo are now supported by the Simulation Editor.
Three new realistic simulation environments have been included in the distribution to illustrate the power of the Simulator:
- The apartment environment is an indoor scene available with both Express and Standard Editions.
- The outdoor environment represents a mountainous outdoor area. It is available only with the Standard Edition.
- The urban environment represents a city area and can be used for autonomous vehicle simulation. It is available only with the Standard Edition.
Documentation
- US English XML files generated from source code documentation comments have been moved to the separate folder <installdir>\bin\en. Visual Studio and other tools will still pick them up as usual.
- The Help file has undergone a major review and update and a lot more of the sample services are now documented. In future updated versions of the Help file will be available periodically from the downloads page.
- Additional API information is included in the distribution. The CCR and DSS Class Reference provides details on these core components. (The full Class Reference is available in the MSDN Library online and also as a separate download if you prefer to have a copy locally). You can now easily generate the DSS Service Index from all of the installed services.
- The Glossary has been substantially updated to include terms based on frequency of occurrence in the documentation as well as many terms that are specific to RDS.
Setup and Deployment
- Setup now supports multi-user installation on Windows XP, Vista, and Windows Server 2003. This enables multiple developers to use and write services on the same machine without stepping on each other. As part of this change, the CCR and DSS runtime which is located in the Global Assembly Cache, is installed separately to enable sharing of these components across multiple installations.
- Setup has been streamlined to reduce size significantly enabling faster downloads.
Online Information
Additional information is available online that might be more up to date than the information in the Help file distributed with RDS.
Updated versions of the Help file and the Class Reference will be available from the Downloads page.