Table of Contents
Microsoft Robotics Developer Studio (MRDS) provides a platform for developing applications involved with robotics. This basically helps to easily program the necessary procedures to run robot hardware, without having to think about the complexity and hassles of the hardware system – which in turn makes life easier for every designer who has an interest in developing robots.
Microsoft Robotics Developer Studio (MRDS) is an Integrated Development Environment (IDE) developed by Microsoft for the development of robotics projects. It is based partly on CCR (Concurrency and Coordination Runtime), a .NET framework for managing concurrent parallel tasks.
The software is compatible with several robots including:
The Robotics studio is based on the Microsoft visual programming language or MVPL.
It is a “true” visual programming language because “logical” items can be dragged and dropped in such a way that a dataflow is graphically created.
As part of MRDS, Microsoft supplies different Robotics projects samples that support existing robots (see above list).
MRDS code cannot be directly compiled and loaded to a robot. There must be a Windows device in the chain between the code and the robot. Either in the robot or between the robot and the code.
Note that C# can be used as the development language – in fact, it is the primary target of the IDE but for many users, it will be far more difficult to use than the MVPL.
A combination of C# and MVPL can be used by developers. For instance, developing in C# and using MVPL for tests.
CCR has been developed to handle multi-tasking, which is mandatory for the development of robotics. Professional robotic code has to be event-based and asynchronous. Not polling the robots for info with timing loops that consume CPU power unnecessarily.
A robot cannot be developed without such runtime. For example, if we consider a robot that depends on N sensors S(1)….S(N) to move forward. If the robot uses a sequential program, it will have to wait until all sensors return the information. If a sensor in the chain becomes faulty, the robot may be frozen and unable to move.
With the CCR, the robot will move forward – maybe less accurately – even if a sensor is faulty, and will report the faulty sensor to a diagnostic platform.
The above picture represents a ground 6×6 robot with 3 engines commanding each pair of wheels.
The DSS component is a service which aims at solving intercommunication and event scheduling between sensors.
DSS allows each service component to update asynchronously the information of the map and motion mode, two very important information items.
These two services will “feed” the information without interfering with each other.
Before building and acquiring hardware for a robot – which hardware can be expensive – a simulation of how the robot will behave is needed, eventually correcting bugs and implementation problems.
The Visual Simulation Environment is a 3D based virtual reality system, using Microsoft XNA 2.0 platform.
It aims are recreating the conditions of use of a robot. For example an apartment with obstacles (furniture, TV…) in the case of a domestic servicing robot.
MRDS allows manipulating – with the visual language – “Activities” and “Services”.
Concretely this means that services – for example, infrared vision, laser probes, motors hardware components or image recognition services – will be connected all together by logical constraints or “activities”.
Here, for instance, we connect a XInputController ( a “joystick”) to a differential drive ( a left and a right motor )
We can program visually how the joystick will interact with the differential drive:
Here we show some more complicated example, developing code for a LEGO NXT patrol robot.
If a contact sensor is engaged, the robot shall stop:
The robot stores several variables: Length, Size, Stage,Wishlength,Runed, CurrentSpeed etc…
The program make the robot to turn off a given angle at each start of a new stage and then makes it run smoothly, eg with progressive initial acceleration and final deceleration. For this, a simple visual procedure named CalculateSpeed is created.
The function simply computes the difference d=L-x where L is the “wished” length and x the actual length and returns the following speeds :
Initially, the robot will run with a speed unit of 1, then decelerate to 0.5 then again to 0.3 and stops when x=L.
Another procedure named runL defines how they behave between each “stages” , eg between each turn of his patrol.
At the start, the robot will rotate by an initial value then will increment in such ways that the robots make some sorts of rounds.
The RunL and RunSmoothLength blocks simply formalize that behavior.
When running by pressing F5, this will launch a simulation of a LEGO NXT patrol robot which will patrol around the territory. The code, basically, programs a robot to use a contact sensor to patrol “smoothly” around a given territory.
Here we present the main lines of the development of a typical small robotic project using LEGO robots package. The whole development was done with MRDS and we provide this example to demonstrate the capacities of the IDE.
The constraints consist of the organization of a small robotic contest. Robots are placed inside a closed surface. The center of the surface is made of a black rug.
Robots must use the LEGO components only and have the same control abilities, namely move forward and backward; turn clockwise, counterclockwise, left and right; and make reverse left turns and reverse right turns.
Robots shall win against each other inside the closed area. Robots will push other robots to win, meaning when the opponent robot has been entirely thrown away from the center black rug or is pushed down and cannot continue its operations.
There are 4 groups of competitors.
The first group uses an attack-oriented hardware design. Thrust and torque can be increased from a large gear installed on the wheel. A square repelling board is installed on the front.
The design of the group#2 is defense-inspired. The robots have a low center of gravity, they have anti-collision designed devices. Ultrasonic sensors to detect opponents.
These attack robots. They use three motors and hence are heavier. Robots can “swing” forward and backward. Ultrasonic sensor.
Attack-designed robots. Use also three motors. Ultrasonic sensors are used and robot always rotates on itself.
The front of the robot has a blocking board, it can thrust to push the enemy when a fight is engaged and it moves in smart ways.
These are reference robots for the contest. They can guard themselves against a collision with the opponent. They have light sensors that prevent them to go out of bounds. They are doing random movements.
All these robots were developed with the Microsoft Robotics Developer Studio.
Video available at :https://www.youtube.com/watch?v=0Km3fTx4AO4
Sample for the article MRS robot patrol:
Robot Operating System is a set of tools and libraries and was made recently available for windows 10.
While MRDS has been officially stopped, the robot operating system has been ported to Windows and Microsoft is preparing a new platform for robotics using existing A.I platforms and simulators. MRDS should, therefore, restart its activities through other compatible software to be developed in the near future by Microsoft.
Acodez is a renowned web design and web development company in India. We offer all kinds of web design and web development services to our clients using the latest technologies. We are also a leading digital marketing agency providing SEO, SMM, SEM, Inbound marketing services, etc at affordable prices. For further information, please contact us.
Contact us and we'll give you a preliminary free consultation
on the web & mobile strategy that'd suit your needs best.