IEEE Robotics & Automation Magazine - September 2010 - 69
easily interface with a variety of hardware devices. The library
is designed to allow software agents written in C/Cþþ to access
low-level hardware as well as to provide a degree of mobility
across heterogeneous computer systems. C/Cþþ was chosen as
the library and agent language because of its wide availability,
portability, and flexibility.
Mobile-C also provides an interface between agent and
binary space. Using the provided application programming
interface (API) functions, agent space scripts are able to access
data, synchronize, and communicate with code running in
binary space, and vice versa. Agents are also able to communicate and synchronize with each other to perform complex tasks
that require interagent coordination. The comparative study
between Mobile-C and JADE indicates that the agent migration in Mobile-C is approximately 50% faster than that in JADE
[15]. The study also indicates that both Mobile-C and JADE are
scalable with respect to the number of migrating agents.
Vision Systems
The vision systems discussed in the architecture comprise a
camera and an embedded microcomputer system used to interface with the camera hardware and apply either image or video
processing to the camera data stream. The embedded hardware
runs an embedded OS with a Mobile-C agency on top of it,
allowing for the migration of agents into the vision system.
Therefore, systems requiring video or image access can send an
agent to the vision system and acquire the desired vision data.
This method provides the most flexibility, since the incoming
agent can apply its own specific image- or video-processing algorithms to the data stream instead of only using what is available
on the distributed vision system. Safeguards may be implemented
to protect the vision system from mobile agent saturation. One
method is to limit resource allocation to a certain number of
agents, either using mutual exclusions or queuing the agents.
Another method is to use FIPA communication agreements,
where the systems must first request the use of a resource.
Once permission has been granted, the requesting system can
then send an agent containing the desired vision-processing
algorithm to the system providing the vision resource. MobileC provides many methods for implementing resource restriction, including condition and mutual exclusion variables, FIPA
communication, or queuing agents.
Image Processing and Manipulation
To facilitate the acquisition of video or image data, vision systems utilize OpenCV [19] to provide incoming agents with
onboard sophisticated vision algorithms and ImageMagick [20]
to provide simple image manipulation and processing. OpenCV
contains an optimized collection of C libraries spanning a wide
range of computer vision algorithms. These algorithms include
motion segmentation and pose recognition [21], multiprojector
display system [22], object and face recognition, and threedimensional (3-D) reconstruction. ImageMagick is a widely
used set of image manipulation utilities that provide a robust
collection of tools and libraries for writing, reading, and manipulating images. Use of these visual processing and manipulation
libraries by the agents are facilitated by the inclusion of the Ch
SEPTEMBER 2010
In the world of robotics,
vision systems have been fruitful
in mobile robot systems.
OpenCV package [23] and the Ch ImageMagick package [24].
The Ch OpenCV and Ch ImageMagick packages are Ch bindings to the OpenCV and ImageMagick C libraries, respectively.
With the Ch OpenCV and Ch ImageMagick packages, all C
(or Cþþ) programs using function from the OpenCV and
ImageMagick C libraries can readily run in Ch interpretively
without compilation.
Knowledge Base
The knowledge base is stored in a database and implemented
using either open database connectivity (ODBC) or Structured
Query Language (SQL). Access to the knowledge base by mobile
agents is facilitated through the use of Ch ODBC [25] or Ch
SQLite [26] packages, which are the Ch bindings to the ODBC
and SQLite C libraries, respectively. Upon arriving at the knowledge base, mobile agents may query or modify the database
through available Mobile-C services or provide their own mechanism for accessing the database.
Experimental Case Study
The following sections describe the two experimental case
studies in which distributed vision systems benefit from the
integration of mobile agents for vision fusion. The first example focuses on the concept of part localization in an automated
manufacturing workcell while the second focuses on tier-scalable
planetary reconnaissance with vision sensor fusion between multiple camera views. The complete software, including the mobile
agency, Mobile-C, the mobile agents in XML, and the mobile
code in C used in the following experiments, is available from
the Web site for the project [13], [27].
Automated Vision System for Manufacturing
The lack of reprogrammability is a pinnacle drawback to industrial
machine vision systems. System designers trying to reduce vision
system complexity while under tight operating and budgetary
conditions have to choose between creating a generalized vision
system that requires a significant amount of reprogramming to get
it to perform practical vision tasks or a turnkey vision system that
provides a total solution to a single given industrial vision task [28].
Future developments are focused on maintaining automated
flexible manufacturing, where flexibility is enhanced by injecting
programmability directly into the automation process to ensure
vision-assisted automation cost savings [29]. To further cut costs,
vision control systems have recently moved to using affordable
commercial off-the-shelf vision components because of their
good performance-to-low cost ratio [30]. The mobile agent architecture for distributed vision fusion presented in the "The Architecture for Mobile Agent-Based Distributed Vision Fusion"
section is a flexible architecture well suited to maintain manufacturing flexibility. The architecture is capable of integrating new
IEEE Robotics & Automation Magazine
69
Table of Contents for the Digital Edition of IEEE Robotics & Automation Magazine - September 2010
IEEE Robotics & Automation Magazine - September 2010 - Cover1
IEEE Robotics & Automation Magazine - September 2010 - Cover2
IEEE Robotics & Automation Magazine - September 2010 - 1
IEEE Robotics & Automation Magazine - September 2010 - 2
IEEE Robotics & Automation Magazine - September 2010 - 3
IEEE Robotics & Automation Magazine - September 2010 - 4
IEEE Robotics & Automation Magazine - September 2010 - 5
IEEE Robotics & Automation Magazine - September 2010 - 6
IEEE Robotics & Automation Magazine - September 2010 - 7
IEEE Robotics & Automation Magazine - September 2010 - 8
IEEE Robotics & Automation Magazine - September 2010 - 9
IEEE Robotics & Automation Magazine - September 2010 - 10
IEEE Robotics & Automation Magazine - September 2010 - 11
IEEE Robotics & Automation Magazine - September 2010 - 12
IEEE Robotics & Automation Magazine - September 2010 - 13
IEEE Robotics & Automation Magazine - September 2010 - 14
IEEE Robotics & Automation Magazine - September 2010 - 15
IEEE Robotics & Automation Magazine - September 2010 - 16
IEEE Robotics & Automation Magazine - September 2010 - 17
IEEE Robotics & Automation Magazine - September 2010 - 18
IEEE Robotics & Automation Magazine - September 2010 - 19
IEEE Robotics & Automation Magazine - September 2010 - 20
IEEE Robotics & Automation Magazine - September 2010 - 21
IEEE Robotics & Automation Magazine - September 2010 - 22
IEEE Robotics & Automation Magazine - September 2010 - 23
IEEE Robotics & Automation Magazine - September 2010 - 24
IEEE Robotics & Automation Magazine - September 2010 - 25
IEEE Robotics & Automation Magazine - September 2010 - 26
IEEE Robotics & Automation Magazine - September 2010 - 27
IEEE Robotics & Automation Magazine - September 2010 - 28
IEEE Robotics & Automation Magazine - September 2010 - 29
IEEE Robotics & Automation Magazine - September 2010 - 30
IEEE Robotics & Automation Magazine - September 2010 - 31
IEEE Robotics & Automation Magazine - September 2010 - 32
IEEE Robotics & Automation Magazine - September 2010 - 33
IEEE Robotics & Automation Magazine - September 2010 - 34
IEEE Robotics & Automation Magazine - September 2010 - 35
IEEE Robotics & Automation Magazine - September 2010 - 36
IEEE Robotics & Automation Magazine - September 2010 - 37
IEEE Robotics & Automation Magazine - September 2010 - 38
IEEE Robotics & Automation Magazine - September 2010 - 39
IEEE Robotics & Automation Magazine - September 2010 - 40
IEEE Robotics & Automation Magazine - September 2010 - 41
IEEE Robotics & Automation Magazine - September 2010 - 42
IEEE Robotics & Automation Magazine - September 2010 - 43
IEEE Robotics & Automation Magazine - September 2010 - 44
IEEE Robotics & Automation Magazine - September 2010 - 45
IEEE Robotics & Automation Magazine - September 2010 - 46
IEEE Robotics & Automation Magazine - September 2010 - 47
IEEE Robotics & Automation Magazine - September 2010 - 48
IEEE Robotics & Automation Magazine - September 2010 - 49
IEEE Robotics & Automation Magazine - September 2010 - 50
IEEE Robotics & Automation Magazine - September 2010 - 51
IEEE Robotics & Automation Magazine - September 2010 - 52
IEEE Robotics & Automation Magazine - September 2010 - 53
IEEE Robotics & Automation Magazine - September 2010 - 54
IEEE Robotics & Automation Magazine - September 2010 - 55
IEEE Robotics & Automation Magazine - September 2010 - 56
IEEE Robotics & Automation Magazine - September 2010 - 57
IEEE Robotics & Automation Magazine - September 2010 - 58
IEEE Robotics & Automation Magazine - September 2010 - 59
IEEE Robotics & Automation Magazine - September 2010 - 60
IEEE Robotics & Automation Magazine - September 2010 - 61
IEEE Robotics & Automation Magazine - September 2010 - 62
IEEE Robotics & Automation Magazine - September 2010 - 63
IEEE Robotics & Automation Magazine - September 2010 - 64
IEEE Robotics & Automation Magazine - September 2010 - 65
IEEE Robotics & Automation Magazine - September 2010 - 66
IEEE Robotics & Automation Magazine - September 2010 - 67
IEEE Robotics & Automation Magazine - September 2010 - 68
IEEE Robotics & Automation Magazine - September 2010 - 69
IEEE Robotics & Automation Magazine - September 2010 - 70
IEEE Robotics & Automation Magazine - September 2010 - 71
IEEE Robotics & Automation Magazine - September 2010 - 72
IEEE Robotics & Automation Magazine - September 2010 - 73
IEEE Robotics & Automation Magazine - September 2010 - 74
IEEE Robotics & Automation Magazine - September 2010 - 75
IEEE Robotics & Automation Magazine - September 2010 - 76
IEEE Robotics & Automation Magazine - September 2010 - 77
IEEE Robotics & Automation Magazine - September 2010 - 78
IEEE Robotics & Automation Magazine - September 2010 - 79
IEEE Robotics & Automation Magazine - September 2010 - 80
IEEE Robotics & Automation Magazine - September 2010 - 81
IEEE Robotics & Automation Magazine - September 2010 - 82
IEEE Robotics & Automation Magazine - September 2010 - 83
IEEE Robotics & Automation Magazine - September 2010 - 84
IEEE Robotics & Automation Magazine - September 2010 - 85
IEEE Robotics & Automation Magazine - September 2010 - 86
IEEE Robotics & Automation Magazine - September 2010 - 87
IEEE Robotics & Automation Magazine - September 2010 - 88
IEEE Robotics & Automation Magazine - September 2010 - 89
IEEE Robotics & Automation Magazine - September 2010 - 90
IEEE Robotics & Automation Magazine - September 2010 - 91
IEEE Robotics & Automation Magazine - September 2010 - 92
IEEE Robotics & Automation Magazine - September 2010 - 93
IEEE Robotics & Automation Magazine - September 2010 - 94
IEEE Robotics & Automation Magazine - September 2010 - 95
IEEE Robotics & Automation Magazine - September 2010 - 96
IEEE Robotics & Automation Magazine - September 2010 - 97
IEEE Robotics & Automation Magazine - September 2010 - 98
IEEE Robotics & Automation Magazine - September 2010 - 99
IEEE Robotics & Automation Magazine - September 2010 - 100
IEEE Robotics & Automation Magazine - September 2010 - 101
IEEE Robotics & Automation Magazine - September 2010 - 102
IEEE Robotics & Automation Magazine - September 2010 - 103
IEEE Robotics & Automation Magazine - September 2010 - 104
IEEE Robotics & Automation Magazine - September 2010 - Cover3
IEEE Robotics & Automation Magazine - September 2010 - Cover4
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2023
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2022
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2021
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2020
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2019
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2018
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2017
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2016
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2015
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2014
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2013
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2012
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_june2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_march2011
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_december2010
https://www.nxtbook.com/nxtbooks/ieee/roboticsautomation_september2010
https://www.nxtbookmedia.com