IMOR - Intelligent Modular Robot software
Software for autonomous robotic vehicles
Test the IMOR - Software package today with your own platform design or let's talk about the development of a tailor-made solution for your individual fields of application.
For the past several years, autonomous mobile robots from Robowatch Industries are at the forefront of industrial mobile robot deployment in Europe and Asia. They are available for reconnaissance, detection or handling of chemical or radiological hazards, as well as defusing and transportation of explosive devices. Also, as mobile alarm devices, they support surveillance of large open buildings, outdoor plots and areas of restricted visibility or sensitive company areas.
In line with the needs of the defence and security market, Robowatch's mobile robots are deployed to warn persons in good time when they get into dangerous situations, support surveillance of hazardous zones and extensive areas, and optimize reconnaissance for purposes of disaster control and civil protection.
Key to the success of these highly versatile robots has been the IMOR (Intelligent Modular Robot) software that drives all these vehicles. Targeting a wide range of different vehicular forms and technologies, from Diesel-powered trucks to small-scale electric surveillance robots, the IMOR software is able to make the most of all these different forms and functions. Field-proven vehicles, like Robowatch's modular Diesel-powered vehicle CHRYSOR is successfully using the IMOR-software along with a variety of optional payload-modules in order to achieve the demands of disaster control and civil protection.
IMOR in detail: Capabilities
IMOR contains standard components that are needed for an autonomous service robot, including environment perception, mapping, motion planning and localization. The Perception module uses data from sensors such as laser scanners to build a terrain map of its environment. Smart statistical algorithms of the Mapping module then eliminate noise and create another map that classifies the elements of the terrain map, determining which of them might constitute an obstacle. Using this obstacle map, a Planning module creates an optimal path around all obstacles along a user- defined route.
The result of the Planning step is a Trajectory object that is used by a Control module which uses a closed loop controller in order to adhere closely to the calculated route while simultaneously avoiding jerky movements. The Localization module of IMOR uses an intelligent sensor fusion method for outdoor localization. Using wheel encoders and inertial sensors (gyroscopes and accelerometers) in addition to GPS, it continuously estimates the position and orientation of the robot to within a very high degree of precision, up to the physical limits obtainable by the sensors employed.
Temporary distortion or even complete loss of the GPS signal, as is often happening close to tall buildings or in areas covered by treetops, does not lead to a heavy loss of localization, since the sensor fusion method is able to bridge the gap using the other sensors employed. A precise localization is not only necessary for knowing the location of the vehicle, but also for determining its exact orientation, because every range measurement, such as those performed by a laser scanner, needs to be transformed with the robot's orientation in order to produce information about environmental traits in relation to the robot itself.
Advanced image analysis methods are able to perform tasks such as detecting the shapes of human beings in thermal camera images, or finding driveable areas in front of the robot, all during autonomous driving of the vehicle itself. This puts special requirements on the algorithms employed, since they first have to compensate for the robot's own motion, which can be erratic, and even be composed of independently moving robot platform and camera PTU (pan/tilt unit). Further analysis methods then include finding areas of interest, image segmentation, and classification. As a result of applying these, the IMOR software is able to detect and track multiple human-shaped objects in its vicinity.
Technical details: The IMOR software architecture
With the IMOR software running unmodified on vastly different types of vehicles, its degree of modularization has allowed Robowatch Industries to apply it to newly developed robots in remarkably short time frames. Details about physical properties of the vehicle are hidden behind an abstraction layer that lets high-level modules such as Localization or Perception not care about the peculiarities of the underlying platform.
A typical situation that often arises during maintenance of a long-lived robotic vehicle model is the desire to upgrade its sensors or actuators. With the IMOR software, new models of existing types of sensors, cameras or actuators can easily be integrated into the software, usually without the need to rewrite any of the high-level code that is using the data from those devices.
By using the powerful features of the Device Abstraction Layer, the query of new devices can be implemented in a straightforward way, and integrated into the whole software very easily. Advanced facilities inside IMOR for buffering and interpolation of sensor values make adding support for a new sensor a task that is no longer dreaded, but a normal part of development.
The approach of the IMOR software for letting the robot fulfill a meaningful purpose is based on the concept of Missions. A Mission can take vastly different forms, such as an autonomous patrol, a remote-controlled session for EOD work, or an autonomous convoy of several vehicles. The Mission object is responsible for performing all initializations and actions necessary for fulfilling the purpose; it can, however, build upon existing modules for autonomous navigation, remote- control, and other facilities, in order to reuse existing features.
This Mission-based approach of the IMOR software gives the necessary flexibility to allow bringing almost any task into a form suitable for integration into the software. As a more low-level operation, coordinate transformations are at the heart of almost all IMOR modules. A set of C++ classes allow for easy and type-safe manipulation of coordinate systems and transformations. These coordinate systems are used throughout the IMOR software and reduce the scope for errors considerably. Their C++ template properties ensure that maximum performance is obtained.
Field-proven vehicles, like Robowatch's modular Diesel-powered vehicle CHRYSOR or individual development platforms, are successfully using the IMOR-software
Great emphasis has been placed on safety; multiple modules working independently from each other are continuously monitoring essential states of the vehicle, such as battery charge, network connectivity or vehicle tilt, in order to detect and avoid critical conditions. Noteworthy and especially critical conditions are collected by the IMOR software for display by a user interface client, such as RobControl (available separately), which receives the data via TCP/IP and displays live images, robot state, map data, and so on, and also allows full control of the robot, including remote control, and defining waypoints for autonomous navigation. However, the IMOR network protocol is fully documented and can also be implemented for use by other clients.
Since most development projects nowadays require simulation in order to attain short development cycles, most IMOR components are capable of running in simulation mode. IMOR integrates modules that work together with leading simulation frameworks used in industry and research institutions. Integration of other simulation frameworks is also possible.
The IMOR software can be run on vehicles that place strong emphasis on low power consumption; it is routinely being deployed on systems with only a single low-power processor running at 800 MHz or less, yet still delivers full performance on par with other solutions. By focussing on the essentials, the IMOR software is able to let robots with a mass of only 25kg to drive unattended for over 12 hours every day, using reliable and economic lead-acid batteries for energy supply.
Requiring only standard Linux systems, such as Fedora, SuSE or Ubuntu, the IMOR software makes optimal use of your ressources and does not require specialized Real-Time operating systems, or excess performance requirements. The IMOR software consists of roughly 2000 files of clean and well-written C++ source code, spanning a total of over 250,000 lines of code (not including comments). Full documentation is provided, including example code.
Compatible systems: Modern Linux distributions running on IA-32 systems
(with GNU g++ 4.0 or better, or compatible compilers). The RobControl software requires Windows 2000, XP, or compatible versions of Microsoft Windows operating systems.
You may also read this documentation
Let's talk about it!
Mr. Martin Willers