Summary: Detailed list of what's new in Microsoft Robotics Studio 1.5
General
* Please see
MigratingToV15 on how to migrate from Microsoft Robotics Studio 1.0 to 1.5
* DSS/CCR support for .NET Compact Framework 2.0 ""SP2"" and Windows CE OS version that support it.
* Custom, pure managed implementation of HTTP Listener ""APIs"" in Compact framework, accessible through DSS runtime
* Feature parity of CCR/DSS runtime with desktop .NET versions
* Due to JIT limitation on CF, CCR generic port sets can only contain up to eight types.
*
New documentation : Significantly updated documentation on "Microsoft Robotics Studio, CCR, DSS, and much more
Runtime
CCR
* Support for runtime specified ""PortSet"". Unlimited number of types per port set, enables arbitrary size of ""PortSets"" on CF/Desktop .NET
* Improved support for task execution policy on dispatcher queues
* New options for configuring CCR dispatcher instances
* Processor affinity
* Thread apartment state
* New ""Arbiter.ExecuteToCompletion"" helper that allows easy nesting of asynchronous, multi stage handlers, such as iterators
* New ""Arbiter.MultipleItemReceive"" varient for efficient gather operations
* Portable ""StopWatch"" implementation (""CcrStopWatch"")
* New User Guide
DSS
* Support for binary serialization on the TCP transport. Performance improvements of 5x compared to XML serialization
* Improved support for alternate contracts
* A service can have multiple alternate ports for the same alternate contract.
* Manifest loader updates to support richer combination of services in manifests
* Two or more instances of the same service with different partners in the same manifest
* Alternate contract implementations can be used as partners
* Dssp Operation Port queuing policy support. Prevents memory leaks due to unhandled messages, helps with throttling and message management
* New ""ServicePort"" attribute name parameters for configuring queuing policy
* New field on Subscribe requests for configuring queuing policy on notifications ports
* Serialization support for new data contract types
* New ""CreateWithRuntimeConfiguration"" Dssp operation on the Constructor Service. Enables override of runtime configuration for all services.
* Enhancements on the XSLT ""UIs"": Removed frames from the layout, now using a consistent template.
* Subscription Manager now supports regular expression filtering on subscription notifications.
Microsoft Visual Programming Language
* Massive performance improvements
* Load/Save and most other operations perform much faster than in version 1.0
* Improved If/else-activity
* If/else can now have multiples conditions. This allows you to create more concise diagrams.
* New state-keyword
* "state" is a new keyword that can be used in expressions (e.g. Calculate, If, Switch, Data Connections) to access the variables of an activity or diagram, e.g. state.X gets the current value of the variable X.
* Smart connections
* You can now automatically join or merge connections. Simply drag the end of a new connection onto an existing connection.
* When you drop a simple activity (Calculate, Data, If) on a connection it is inserted into the connection.
* Connect to insert
* When creating a new connection, drop the connection end on the surface. Select a basic activity or an existing service instance to be inserted and connected.
* Reordering of lines in If, Switch, and Join activities
* Conditions in If, Switch, or messages in a Join can be moved up or down.
* Insert context menu
* You can insert a basic activity or an existing instance of a services directly using the context menu
* Improved property view:
* Property view has been improved for all activities.
* Connection properties now also show Data Connections.
* New visual styles
* Different kinds of activities are color coded.
* Resizable
* Activities containing expression (Data, Calculate, If, Switch) and Join can be horizontally resized.
* Layout helpers
* Bring to front, sent to back
* Align left, right, top, bottom, horizontally, vertically.
* Improved workflow for compiling services
* You will be prompted to provide output directory and strong name key file if necessary.
* Configuration to manifest
* When you compile to a service the configuration of the services in your MS VPL project is captured in a DSS manifest.
* More flexible configuration
* You can delete, recreate and import configuration files for services in your VPL project.
* Comments
* You can add comments to any activity; they will show up in generated code.
* Better user guidance
* MS VPL now warns about incompletely connected Joins, preventing you to make common mistakes such as connecting up two notifications in a Join.
* A large number of detail improvements and bug fixes.
Code Generation
* MS VPL now uses a new code generator. It creates code that does not require the model interpreter. The code generator applies a number of heuristics to create code that resembles code a human would write. The generated code also has performance characteristics similar to hand written code.
* The code generator creates C# code files and a Visual Studio .csproj file when it generates code. This allows further development of a service originally written in MS VPL.
* You can run the services that you created with MS VPL directly from MS VPL.
* Services generated using MS VPL can be also be targeted to run on .Net Compact Framework, in addition to running on the Desktop .Net Framework.
Microsoft DSS Manifest Editor
All new visual editor to create and manipulate DSS manifest.
* Selected features:
* Loads and saves DSS manifest files
* Add services to your manifest with drag and drop.
* Configure service partners with drag and drop.
* Create, import, and change configuration files (initial state files) for the services in your manifest.
* Merge multiple manifests by importing a manifest into another manifest.
* Execute manifests directly from the manifest editor.
* Create
DSSDeploy packages from the manifest editor.
Simulation
* Implementation of
RotateDegrees and
DriveDistance advanced differential drive functions on the
SimulatedDrive service and
DifferentialDrive * Simulation rendering performance is better on both new and older video cards.
* Visual quality of scenes can be adjusted for either better performance or better quality.
* Fixed bug that caused meshes to render at a different location from a physics shape.
* A new
SkyDomeEntity has been added for better variety in skies.
* Fog distance and color can be edited in the editor.
* Lights can be added or removed using the editor.
* New spot light type for dramatic lighting effects.
* All light properties can be adjusted to improve contrast and visual quality.
* A new material editor has been made to modify the appearance of meshes. (Bug)
* Shadows can be cast from a single light source to give better perspective cues.
*
VisualEntities can be picked using the right mouse button.
* Rotating entities is now more intuitive.
* Rotating and translating child entities is more intuitive.
* A new Get message has been added that intersects a ray with meshes in the scene and returns the points of intersection.
* ‘Highlight sphere’ for selected entities has a new look, making it easier to see exactly what is selected.
* Support for child entities in the simulator has been improved.
* Children of child entities are now correctly updated.
* Entity hierarchies are preserved during serialization.
* A parent-child relationship can be now made between two entities affected by physics.
* A default joint editor allows for real-time modification of many different joint properties.
* Position, rotation, and scale of meshes can be adjusted to match a physics shape.
Entity
Samples and Tutorials
New Samples
Four new Hosting Tutorials
Services run within a context known as a DSS node. A DSS node is a hosting environment that provides support for services to be created and managed until they are deleted or the DSS node is stopped. A DSS node can either be started as a stand-alone application using the
DSS Host Tool (DssHost.exe) or as part of another application using the DSS Environment static class. The
hosting tutorials provide an introduction for how to host a DSS node within other applications.
Speech Recognition Services using System.Speech
The new Speech Recognition services have the same functionality of the current ones, but now you will have the advantage of the manage interface that sits on top of SAPI for .Net 3.0., System.Speech. The new Services are mainly two that resemble the current Command Speech Recognizer and the Speech Recognizer. Using the Command Speech Recognizer build with System.Speech you will have the same advantage of creating your speech commands during runtime and using them to control your applications using speech. In the other hand, for more advanced users that want to create their own speech grammar files, you can use the new Speech Recognizer that loads a grammar file with the characteristics specified by System.Speech. More information refer to the documentation on Speech Recognition Samples.
Robotics Tutorial 7
If you like to play with the ""IRobot"" Create, this tutorial will teach you how to control it using different interfaces such as speech and controllers. In this tutorial you will learn how to configure and partner different components together in order to make from an
IRobot a more fun robot to play with. For more information refer to the documentation on Advanced Robotics Samples referred as Robotics Tutorial 7.
UPnP Device Discovery Service
The
UPnP Device Discovery Service uses the M-Search and device notifications in order to discover Upnp well-defined devices over a network. The service mainly works as a control point and locates ""UPnP"" device in 2 ways:
- IP multicast-based discovery mechanism to find out which devices are present on the local network.
- Devices announce their presence on the network using messages carried over IP multicast.
With this service you would be able to see the device characteristics using the Microsoft Robotics Studio service explorer. For more information refer to the documentation on the ""UPnP"" Device Discovery Service.
Blob Tracker Service
The Blob Tracker Service implements a very simple thresholding algorithm to find sets of pixels that match one or more requested colors in supplied images. This demonstrates how to use the
WebCam Service and provides a framework for a vision processing service.
Also supplied is a Blob Tracker Calibrate Service which allows the user to define which colors to track by clicking on a live image. This also demonstrates some basic
WinForms techniques.
IP Camera Service
The IP Camera Service implements the generic ""WebCam"" contract for an IP based camera where the image is retrieved from a configured URI.
Atom/RSS Syndication Service -- have your robot blog!
The
Atom/RSS Syndication Service Tutorial is an example of a complete service that combines many of the features introduced above as a single service. Among other things the DSS Atom/RSS service demonstrates how to take advantage of existing Web infrastructure in the form of Web browsers and RSS readers and merge it with the DSS service model to allow for automatic, service based interactions.
Integrating DSS Services with SQL
The
SQL Client and store samples is an example of a service talking to a back-end SQL database (in this case a Microsoft SQL database). The sample is generic in that it can be used against any SQL database without recompilation; everything needed to communicate with the backend service is specified as part of the persistent state of the SQL client service. The sample illustrates
* How to connect to a back-end Microsoft SQL database using the ""SqlConnection"" and ""SqlDataAdapter"" classes from ADO.NET.
* How to map from the ""DataSet"" to the DSSP operations (see Accessing Services through DSSP including GET, QUERY, INSERT, UPDATE, UPSERT, and DELETE
SimpleVision Service
The
SimpleVision sample service implements simple image processing functions using a webcam. This service performs a color object, and a simplified face and hand gestures detections. Other services can get the detection results by subscribing to a
SimpleVision service.
Follower Service
The Follower sample service shows how to write an orchestration service for a mobile robot that can follow a user wearing a colored shirt. The robot is equipped with a webcam and a laser range finder. This sample demonstrates how to use multiple partner services such as
SimpleVision and
TextToSpeech and
CommandSpeechRecognizer to implement a human-robot interaction.
WinMessage Service
This sample service demonstrates sending and receiving window messages to communicate between Robotics Studio and native Windows applications. This service can send window messages to control other window applications.
Updated Samples
WebCam
* The
WebCam service has been updated to solve some identified issues at startup, it no longer overwrites its initial configuration file unless the resolution or camera is changed using the web interface.
* The
WebCam service is supported on .Net Compact Framework.
Packages
Two new packages are available targeting MSRS 1.5.
Tests
*
TestDataContracts is a new test which validates all data contracts in one or all services.
Related Links
*
MSRoboticsStudio