Click to Rate and Give Feedback
MSDN
MSDN Library
Microsoft Robotics
User Guide
Release Notes
 Release Notes Overview

  Switch on low bandwidth view
Release Notes Overview

Robotics Developer Studio 2008 R2 and CCR & DSS Toolkit 2008 R2

The following sections provide information about the RDS 2008 R2 release. Because this is a minor release, the original notes from the RDS 2008 release have also been included at the end. Note that the term "RDS" is used here to mean collectively Robotics Developer Studio and the CCR & DSS Toolkit.

 

Side-by-Side Installation

RDS 2008 R2 installs side-by-side with other versions of RDS. It does not install over the top of a previous version or replace a previous version. This follows the same approach that has been used for all previous releases. If you need to bring existing services across to 2008 R2, please read the next section.

Note that RDS 2008 R2 Standard Edition and the CCR & DSS Toolkit 2008 R2 are provided as upgrades. Because these packages are commercially licensed, you must have the previous version installed on your computer before installing the upgrade.

The R2 Express and Academic Editions of RDS and the Toolkit are available as new packages and can be installed without first installing the original 2008 version.

You must be logged in as a member of the Administrators group when you install RDS, but you do not have to be an Administrator to run DSS services. By default the installation directory is under your Documents and Settings folder. This is referred to as the mountpoint for DSS services running on the computer. Only files directly below the mountpoint are accessible to DSS services.

 

DSS Log Analyzer

The DSS Log Analyzer has been added in this release. (It is available in all Editions). This is a significant new addition to the toolset.

The Log Analyzer can be used to examine log files created by DssHost. This allows you to play back the message traffic to examine bottlenecks and diagnose possible problems.

 

Software Quality Metrics (SQM)

SQM has been added to some of the RDS components (VPL, DSSME, Simulator, Log Analyzer) in order to gather data to help to improve the product. You can opt in or out of the Robotics Feedback Program at any time using an icon in the Start Menu. An Internet connection is required for the data to be sent. No personal information is sent to Microsoft if you participate in this program. You can view the online Privacy Statement for the most up to date information.

 

Automatic Update Checking

You can optionally request that RDS should check for newer versions whenever certain components are run (VPL, DSSME, Simulator, Log Analyzer). This check requires access to the Internet. It does not update your installation, but instead notifies you that an update is available. You can turn this feature on/off at any time.

 

Sample Source Code

Starting with this release, the sample source code that ships with the products has been changed so that it will not overwrite the existing binary files (DLLs) supplied by Microsoft if you recompile the samples. All samples now have different contract identifiers, assembly names, etc. so that a re-compiled sample effectively becomes a new service. All the new names contain "user", e.g. a contract of http://schemas.microsoft.com/robotics/tutorials/2006/06/roboticstutorial1.user.html and a manifest called RoboticsTutorial1.user.manifest.xml.

RDS and the Toolkit use strong naming and code signing to ensure the integrity of their binary executables. As a consequence, when you re-compile a sample it is signed using your own key and it will no longer match the authenticode description of the original DLL that shipped with the product. This causes errors in dependent services when you try to start them because they cannot load the new DLL. This is part of the security design and prevents DLLs from being spoofed or tampered with.

What this means is that if you re-compile a service, say the Laser Range Finder, then you will also have to re-compile all of the other services that use it such as the Simple Dashboard, and then change the Contract Identifiers in any affected manifests to use the new Contract Identifiers. The original samples (and manifests) will continue to run without change so that you can always refer back to the original behavior.

Note that best practise is to change the contract identifier any time that you make significant modifications to a service, especially if you change the operations that it supports. Therefore it is a good idea to change the contract identifiers whenever you "clone" a service. The samples provided in the package are effectively clones of the original samples and therefore have new Contract Identifiers.

 

Migrating from Previous Versions

If you have services that were written for previous versions of RDS, you will need to migrate them to RDS 2008 R2. You must recompile the source code to produce new DLLs. It is not possible to copy DLLs over to the bin folder and make them work unless you use an application config file.

If you have a DssDeploy package that was built for a previous version of RDS, it will not install into 2008 R2. You must first install into the correct version that it was built for, then migrate the services across, and finally create a new DssDeploy package.

The process for migrating services can be found in the Migrating DSS Service Projects section.

 

Bug Fixes

The 2008 R2 release contains several bug fixes. Some of the important changes for both RDS and the Toolkit are listed below. This is not intended to be a complete listing.

  • The /cv qualifier for DssDeploy now works as expected.
  • DssDeploy now runs DssProjectMigration properly if the package targets a particular version.
  • Contract Identifiers are forced to lower-case in the VS DSS Service Creation Wizards.
  • The Web Request Adapter has been changed so that it now handles pages from web servers that use "chunking".
  • The /vs2008 qualifier on DssProjectMigration has been fixed.
  • DSS subscriptions using LINQ filters can now use System.Data (SQL). 

The following fixes apply to RDS (not the Toolkit):

  • Due to issues with the location of the XNA Framework DLL, it is now copied into the bin folder during installation.
  • The Silverlight sample has been updated to use the released version 2.0 of Silverlight.
  • Corrections to some of the LEGO NXT services particularly in the area of notifications.

 

Known Issues in RDS 2008 R2

This section outlines some of the issues that were known at the time that RDS 2008 R2 was released. In some cases they are by design and so this section simply provides clarification.

The Known Issues Wiki is used to publish problems that are identified after a release has shipped (and are therefore not included below).

 

Installation might run silently for several minutes

If you have not had RDS installed on your computer previously, there are several pre-requisite packages that must be installed. This might cause the installation to appear to be frozen during the first couple of minutes. During this time it is running other packages that do not display any dialogs. Please be patient.

 

Old Screen Shots

Some areas of the documentation contain screen shots that are from VPL V1.5. The differences are only cosmetic and this does not affect the content of these sections.

 

Spurious Error Messages in VPL and DSSME

The following spurious error might occur in VPL:

Error: This join is connected to independent data sources. It will never complete. Revise your connections.

For example, this has been found to happen in a Calculate Box if an integer value is used as an index into an array of integers. It is a consequence of an overly cautious evaluation of the program logic flow. This tends to happen if you migrate an old diagram to 2008 R2. It has no effect on the program.

Also, due to the way that VPL starts up, it is possible that errors will appear momentarily in the Errors panel while a diagram is being loaded. These will disappear once VPL has completely analyzed the diagram.

 

DSSME flags missing partners with a red exclamation mark but does not show the errors in the Errors panel. These should be warnings. When you load a manifest and there are partners with the policy UserPartnerListEntry that have not been specified, DSSME displays an error message in the partner box. These error messages disappear once you specify the partners.

Warning messages about missing configuration files in VPL

Some services cause warning messages (with a pale yellow background) to be displayed in the Run Dialog when a VPL program is run. These errors indicate that there is a problem loading the config file for the service. For example, the Text To Speech service does this. These warnings can be ignored. In many cases, such as Text To Speech, they will disappear the next time the program is run because the service creates a default config file the first time it is executed.

 

DssDeploy

DssDeploy cannot deploy certain types of services. In particular, it does not deploy any service that uses the Simulator. This is by design because the Simulator is dependent on several other products that must also be installed on the target machine.

Executables that are not DSS services might not be picked up as dependencies when you run DssDeploy. If you find that a particular DLL or EXE file is missing, you can specify it explicitly in the command line (or in a command file) using the /d qualifier. This also affects services that use Native Interop because the interop DLL is not a service.

Beginning with RDS 2008, the core components of CCR and DSS are placed into the Global Assembly Cache (GAC). These components are therefore not included in a DssDeploy package when it is built. Instead you must install these components separately on the target computer. A package for this purpose is provided in the Redistributables folder under the RDS installation point. (You might have noticed that the CCR & DSS Runtime is installed separately at the beginning of the installation. This is the package for that.)

 

DssNewService

DssNewService does not create Solution files (.sln) for new C# projects. The documentation has been changed to reflect this. You can simply open the Project (.csproj) file in Visual Studio and it will ask if you want a Solution file when you exit.

Note that by default DssNewService creates projects in VS2008 format. These projects cannot be opened in VS2005. It is strongly recommended that you use VS2008 with RDS 2008. You should also apply the latest Service Packs to Visual Studio.

 

DssProjectMigration

DssProjectMigration does not fix the XML documentation file path when upgrading source code from version 1.5. In the 2008 version the XML doc files were moved to the en folder under bin which is the normal practise for .NET.

When you run DssProjectMigration it will delete any custom post-build steps because it uses the post-build step to run DssProxy. If you have post-build steps then you will have to manually edit the project properties after running DssProjectMigration, being careful not to change or remove the DssProxy command.

Under some conditions DssProjectMigration does not modify the HintPath for References when upgrading from version 1.5. So it is possible that references to CCR and DSS will still point to old 1.5 versions instead of the 2008 versions when upgrading code. This can be corrected by changing the Project Properties.

 

SetDriveSpeed

The SetDriveSpeed operation in the Generic Differential Drive is intended to set an actual speed of movement across the ground. Many services do not implement this operation, e.g. the iRobot Create, because the relationship between the power applied to the wheels and the robots actual speed is very complex. Instead you can use SetDrivePower to control the drive.

 

Text-To-Speech

The Text-To-Speech service does not include a configuration file. A new file will be written the first time that it is run. This is because the available voices are operating system dependent. You can ignore the warning message the first time that you run the Text-To-Speech service.

 

Using CLR Thread Pool with EnqueueTimer does not work

You must use the CCR dispatcher if you want to rely on CCR timeouts. There is special timer logic that gives low jitter, low latency timers, and it gets better with more CPUs. The logic does not work if you use the CLR thread pool instead of a CCR dispatcher.

This is by design (you must use at least one CCR dispatcher, and associate a queue with it, if you want to queue timeouts). CCR will now throw an exception if the CLR thread pool is used.

 

Compiling C++ Samples

When you compile C++ samples that generate services, DssProxy is run as a post-build step. Depending on what versions of Visual Studio you have installed or might have had installed in the past, there can be a spurious error message from DssProxy. The errors that you might see in the Errors panel of Visual Studio are:

Error 1 error: Proxy compilation failed. *** dssproxy CppRoboticsTutorial1
Error 2 error PRJ0019: A tool returned an error code from "Generating Proxy Assembly ..." CppRoboticsTutorial1 CppRoboticsTutorial1

If you look in the Output panel, you will find additional information from DssProxy:

1>Generating Proxy Assembly ...
1>*   Reflecting: CppRoboticsTutorial1.Y2007.M07
1>*   Compiling proxy
1>error CS1668: Warning as Error: Invalid search path 'C:\Program Files\Microsoft Visual Studio 9.0\lib' specified in 'LIB environment variable' -- 'The system cannot find the path specified. '
1>*** dssproxy: error: Proxy compilation failed.

Notice that the error relates to a missing folder in the C++ search path. You might see other folders listed, depending on your operating system or configuration.

DssProxy compiles all proxy code with warnings enabled as errors. In this case, the warning is irrelevant. However, to eliminate the warning you should simply create the missing folder. The following two missing folders are known to cause this problem:

  • C:\Program Files\Microsoft Visual Studio 9.0\VC\ATLMFC\LIB\i386
  • C:\Program Files\Microsoft Visual Studio 9.0\Lib

Note that this error applies to the InputInterop and ToasterList samples as well as the C++ tutorials. However, the ToasterList has the additional requirement that it requires the Windows DDK (Device Driver Kit) in order to compile.

 

Robotics Developer Studio 2008

This section and the following sections contain detailed information about changes in the 2008 release of Microsoft Robotics Developer Studio (RDS). Some of these changes might require updates to existing services so that they will compile and/or operate correctly.

Changes to Packaging with new Editions

With this release of RDS the package has been split into two Editions:

  • Express Edition
  • Standard Edition

The Express Edition is available for download from the web at no charge. Standard Edition can be purchased online and then downloaded. Academic institutions can obtain the Standard Edition as part of the MSDN Academic Alliance for distribution to their students, or students can get a copy through the Dreamspark program.

The different Editions contain different features, with Express Edition being a subset of the Standard Edition. Both Editions can be installed side-by-side if necessary. There is no upgrade - you simply install Standard if you already have Express and move any code you have written across to the new directory where it will work without changes (other than recompilation).

Visual Studio and .NET Versions

This release requires Visual Studio 2008 (VS2008), preferably with Service Pack 1 installed. All solution files shipped with the product are for VS2008 and will not open in previous versions of Visual Studio. You might not see an error message if you try to open a solution in an older version of Visual Studio - it will appear as though nothing has happened.

All tutorials and samples have been updated to remove references to specific versions of Visual Studio. In future, the required version will be stated in the Release Notes.

Concurrent with the move to VS2008, RDS now uses .NET 3.5.

Support for 64-bit Operating Systems

Visual Programming Language

VPL now runs a 32-bit program (VplHost32.exe) to execute diagrams. Consequently the Simulator and devices that require XNA such as the Game Controller are supported by VPL programs.

Visual Simulation Environment

The Simulator can now be launched on 64-bit operating systems by using DssHost32.exe instead of DssHost.exe. VPL also has a new executable, VPLHost32.exe, that allows the Simulator to be used from VPL on a 64-bit platform.

If you have existing services that use simulation, you should change the Debug command-line in the Project Properties to use DssHost32.

Compact Framework

The Compact Framework requires you to work in a 32-bit environment on 64-bit machines. The DSS Command Prompt shortcut now runs the WOW64 version of cmd.exe so that it will be a 32-bit process. You can launch Visual Studio from the command line if you want to work with CF projects.

Core DLLs

The core DLLs for RDS have been moved from the bin folder into the Global Assembly Cache (GAC). Please run DssProjectMigration on your existing code to fix up references to these DLLs.

New Documentation

The documentation has been substantially revised. Several samples that were released previously with RDS are now documented as well as some new samples written for the V2.0 release. These include the following:

  • Desktop Joystick
  • Direction Dialog
  • Embedded Simulation
  • Simple Dashboard
  • Utility Functions for VPL
  • Windows Presentation Foundation (WPF) Text to Speech UI

These can be found in the Simulation Samples, User Interface Samples and DSS Interop and Device Samples.

Updated Services

Some services have undergone significant changes.

Generic Differential Drive

The Generic Differential Drive (GDD) contract, and the associated sample implementation, have undergone significant changes. The Generic Differential Drive is now documented in the Help file.

The main area where the contract has changed is related to the controlled motion operations DriveDistance and RotateDegrees. If you use either of these operations, you should read the new documentation and make appropriate changes to your code. In the past, some services waited until the operation completed before sending a response. However, the new behavior responds immediately and then sends a notification when the operation has completed.

In conjunction with the changes to the GDD, some additional samples have been provided both as C# code and VPL to assist you in using these operations. See the DriveInSquare sample in Samples\Misc and the DriveInTriangle sample in Samples\VPLExamples. Also, there is a new helper service, called WaitForDriveCompletion that is in Samples\Misc. This is specifically intended for use in VPL to make using controlled motions much easier.

Note that the contract identifier for the GDD has not been changed. It is possible that it will change in a future release if further changes are made to the contract.

Speech Recognition

The Speech Recognition service has been completely rewritten. There is also a new service called the SpeechRecognizerGui that provides a web browser interface for configuring the SpeechRecognizer service.

The latest version of the Speech API (SAPI) is only available with Vista. Windows XP does not support Speech Recognition Grammar Specification (SRGS) grammar files. However, you can still use the simple dictionary format for grammar files, so speech recognition is still possible on Windows XP.

Due to changes in the operations for the SpeechRecognizer you might have to modify existing applications that used the old service.

Text To Speech

The TextToSpeech service now sends viseme notifications to subscribers. Visemes are like phoemes, but represent facial expressions during speech. They are intended to assist with generating visualizations of a person speaking.

Release Notes: CCR and DSS Release NotesVPL Release NotesVSE Release Notes

 

 

© 2009 Microsoft Corporation. All Rights Reserved.

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker