Application: Mobile Robots
Introduction

Mobile real-time mechatronic systems are generally geographically distributed and data driven requiring extravagant communication networks and a powerful high data density central server for data analysis and processing. Large volume data flows congest communication networks causing data loss or delay that can lead to fatal implications. Reducing the communication and computational server requirements while allowing for mobility through off-the-shelf wireless communication networks would increases productivity and reduce expenditure. Use of mobile agent-based computing would reduce data congestion and overall computational requirements by retrieving data and having partial data analysis be implemented at the nodes instead of a central server. In order to deal with deterministic timing needs, the mobile agent-based system is required to operate in real-time. This research explores the fundamental issues of real-time autonomous mobile agent-based systems for the collection and analysis of timely, accurate and reliable real-time information and the control of real-time mechatronic systems. Having real-time mobile agents allows for the fulfillment of todays open architecture system independent requirements and is the foundation of a new programming paradigm in data mining and management for mobile real-time systems.

Required Packages for Executing Example Code:

Before executing the example code listed below, the Ch Korebot must first be installed on the Khepera robot.

Example: Real-Time Mobile Robot Control with Mobile Agents

Case 1 description


Mobile robot performing obstacle avoidance


In this experiment, two mobile agents are used to control the Khepera III mobile robot. The first mobile agent carries an agent code implementing a commonly used obstacle avoidance algorithm, the Braitenberg algorithm. The second mobile agent carries mobile agent code that terminates the first mobile agent and executes the Braitenberg algorithm with modified parameters, increasing sensor sensitivity and base robot velocity.



Video

Click on the links below to download a video of the mobile robot in action.

WMV Format (8.87 MB)
MOV Format (3.05 MB)


Agent and Code

Mobile Agent 1: View
Mobile Code in Agent 1: View Download

Mobile Agent 2: View
Mobile Code in Agent 2: View Download

Case 2 description


Mobile robot performing obstacle avoidance



Mobile robot performing object following

In this experiment, a program with an embedded agency is running in the mobile robot. Agent 'service_provider_1' containing five functions is first sent to the robot to register those functions as services with the DF. Agent 'mobagent1' is then sent to the robot, triggering the registered services to make the robot avoid any obstacles.

The service that leads to this obstacle avoidance behaviour is represented and provided by function 'RobotBehaviour()'. The implementation of this function is based on Braitenberg obstacle avoidance algorithm.

While the mobile robot is performing obstacle avoidance bahaviour, agent 'service_provider_2' carrying another 'RobotBehaviour' service is sent to the robot. The intention of sending this agent is to change the robot behaviour on the fly. Therefore, agent 'service_provider_2' deregisters 'RobotBehaviour' service provided by agent 'service_provider_1' and registers its own 'RobotBehaviour' service with the DF.

The second 'RobotBehaviour' service will cause the robot to follow a sensored obstacle and stop when a certain motor speed is reached. This obstacle following behaviour is implemented by modifying Braitenberg obstacle avoidance algorithm.



Video

Click on the links below to download a video of the mobile robot in action.

WMV Format (2.1 MB)
MOV Format (2.1 MB)
MP4 Format (1.3 MB)


Agent and Code

service_provider_1: View
Mobile Code in service_provider_1: View Download

service_provider_2: View
Mobile Code in service_provider_2: View Download

mobagent_1: View
Mobile Code in mobagent1: View Download