Software Service Component Utilizing MRDS
(Final Report)
Kamal Hakim bin Zainal Alam
Industrial Automation & Robotics Technology
Supervised by: Mr Yusman bin Yusof
May 2012
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
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
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.
Methodology
Project Development
creating the onboard controller service
Driving the robot
Responsible for maneuvering the robot with custom direction, speed, and
distance
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.
Project Development
creating the onboard controller service
Displaying on the LCD
Responsible for displaying the robot state of movement
Project Development
creating the onboard controller service
Displaying on the LCD
Responsible for displaying the robot state of movement
Project Development
creating the onboard controller service
Ultrasonic Ranging Sensor
Responsible for detecting distance of obstacles and transmit it for use by MRDS
Project Development
creating the onboard controller service
The Piezo Speaker Service
Responsible for sending the frequency for the piezo speaker tone and its
duration.
Project Development
creating the onboard controller service
Calculating Encoder Values
Responsible for calculating the motor speed and transmit it as sensors data.
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.
Project Development
creating the onboard controller service
The Core Service
Responsible for communicating with the Arduino Robot through serial port.
Project Development
creating the onboard controller service
The Drive Service
Responsible for sending motor direction, speed and distance to the
Arduino Robot.
Project Development
creating the onboard controller service
The Sensors Service
Responsible for retrieving sensor values and storing them as a subset of
services.
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
Project Development
Visual Programming Language: XInput Navigation
Project Development
Visual Programming Language: Navigation with obstacle avoidance
Project Development
Visual Programming Language: Speech Recognition Navigation
Test-run & Troubleshooting
Testing with Terminal Software
Test-run & Troubleshooting
Testing with a developed prototype robot
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.
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.

Final Presentation

  • 1.
    Software Service ComponentUtilizing MRDS (Final Report) Kamal Hakim bin Zainal Alam Industrial Automation & Robotics Technology Supervised by: Mr Yusman bin Yusof May 2012
  • 2.
    Objectives • Develop microcontrollerbased 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 ComponentDevelopment • 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 WroxPublication (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.
  • 5.
  • 6.
    Project Development creating theonboard controller service Driving the robot Responsible for maneuvering the robot with custom direction, speed, and distance
  • 7.
    Project Development creating theonboard 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 theonboard controller service Displaying on the LCD Responsible for displaying the robot state of movement
  • 9.
    Project Development creating theonboard controller service Displaying on the LCD Responsible for displaying the robot state of movement
  • 10.
    Project Development creating theonboard controller service Ultrasonic Ranging Sensor Responsible for detecting distance of obstacles and transmit it for use by MRDS
  • 11.
    Project Development creating theonboard controller service The Piezo Speaker Service Responsible for sending the frequency for the piezo speaker tone and its duration.
  • 12.
    Project Development creating theonboard controller service Calculating Encoder Values Responsible for calculating the motor speed and transmit it as sensors data.
  • 13.
    Project Development creating theonboard 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 theonboard controller service The Core Service Responsible for communicating with the Arduino Robot through serial port.
  • 15.
    Project Development creating theonboard controller service The Drive Service Responsible for sending motor direction, speed and distance to the Arduino Robot.
  • 16.
    Project Development creating theonboard controller service The Sensors Service Responsible for retrieving sensor values and storing them as a subset of services.
  • 17.
    Project Development creating theonboard 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
  • 18.
    Project Development Visual ProgrammingLanguage: XInput Navigation
  • 19.
    Project Development Visual ProgrammingLanguage: Navigation with obstacle avoidance
  • 20.
    Project Development Visual ProgrammingLanguage: Speech Recognition Navigation
  • 21.
    Test-run & Troubleshooting Testingwith Terminal Software
  • 22.
    Test-run & Troubleshooting Testingwith a developed prototype robot
  • 23.
    Future Work • Developservices 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 hasproven 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.