1. Software Service Component Utilizing MRDS
(Final Report)
Kamal Hakim bin Zainal Alam
Industrial Automation & Robotics Technology
Supervised by: Mr Yusman bin Yusof
May 2012
2. Objectives
• Develop microcontroller based sensor and actuator service for
MRDS interfacing
• Develop MRDS sensor and actuator service for mobile robot
controller interfacing
• Demonstrate the use of VPL in controlling mobile robot
3. Project Scope
Service Component Development
• Microcontroller-based sensor and actuator
service
• MRDS sensor and actuator service for
unsupported mobile robot
Visual Programming Language
• Microsoft Robotics Developer Studio
4. Literature
C.F from Wrox Publication (2008) Professional Microsoft Robotic
Developer Studio, MRDS uses services as key object
C.F from Arduino official website, Arduino is an open-source
electronics prototyping platform based on flexible, easy-to-use
hardware and software.
C.F from Robot Development Using MRDS published by CRC Press
(2011) Microsoft Visual Programming Language allows MRDS in the
design of robot programs, to apply the concept of drag & drop design
components for generating and building connections.
6. Project Development
creating the onboard controller service
Driving the robot
Responsible for maneuvering the robot with custom direction, speed, and
distance
7. Project Development
creating the onboard controller service
Sounding the piezo speaker
Responsible for producing monotonous tone using the robot piezo speaker with
custom frequency and duration.
8. Project Development
creating the onboard controller service
Displaying on the LCD
Responsible for displaying the robot state of movement
9. Project Development
creating the onboard controller service
Displaying on the LCD
Responsible for displaying the robot state of movement
10. Project Development
creating the onboard controller service
Ultrasonic Ranging Sensor
Responsible for detecting distance of obstacles and transmit it for use by MRDS
11. Project Development
creating the onboard controller service
The Piezo Speaker Service
Responsible for sending the frequency for the piezo speaker tone and its
duration.
12. Project Development
creating the onboard controller service
Calculating Encoder Values
Responsible for calculating the motor speed and transmit it as sensors data.
13. Project Development
creating the onboard controller service
Multitasking Tasks
Responsible for synchronizing and executing tasks whenever a request is made
with minimal or possibly no delays.
14. Project Development
creating the onboard controller service
The Core Service
Responsible for communicating with the Arduino Robot through serial port.
15. Project Development
creating the onboard controller service
The Drive Service
Responsible for sending motor direction, speed and distance to the
Arduino Robot.
16. Project Development
creating the onboard controller service
The Sensors Service
Responsible for retrieving sensor values and storing them as a subset of
services.
17. Project Development
creating the onboard controller service
Queing Sending & Receiving Data
Onboard
controller sends
all sensors data
MRDS receives
the sensor data
and stores in
state variables
MRDS starts
transmitting
queue data in
command buffer
Onboard
controller
receives
command from
MRDS and stops
sending sensor
data
Onboard
controller
executes the
command
requested until
finish
23. Future Work
• Develop services to be used in industrial application such as robot
arms.
• Develop more sensing services such as sound and light sensors.
• Develop self-roaming algorithm that enables the robot to recognize its
location.
24. Conclusion
The project has proven to create low-cost but highly
effective system and prototyping platform that is possible
to perform almost anything regarding to the developed
services. With the implementation of VPL programming,
the functionality of a robot is only limited by the
programmer’s imagination.