Abstract
Need for better research robot platform and software development framework:
The type of robots, sensor payload, etc varies with research problems and applications. A
robot system with open and modular architecture enables addition of sensors, modification of
overall system much easier, aid in speeding up the research work and customizing the robotic
system as per requirements of the applications.
Most of the commercial research robot platforms like Amigobot, Pioneer, Khepera offer
limited options to modify the robot system. While this is good, in a way, in that it leads to
research work in a common stream, there is a tendency for the research area to grow around
the capabilities of robots. Cost of the robotic system, upgrading etc, also plays crucial role
when there is limited funding. An affordable and open architecture robotic system will enable
more researchers to work on actual robots instead of simulators. The complexity of the robot
algorithms can be reduced by using sensor fusion of multiple sensors, to extract more
accurate data. Computationally different algorithms can be developed by streamlining various
modules to work in parallel.
Unlike computers, robots work in highly dynamic environment; actuators and sensors are not
accurate. This makes software development for robot far more complicated than developing
software for computers. The features, capabilities and performance of different robot
platforms are different, making it difficult to port software between different types of robots.
Majority of the robotics software development is happening in universities and research labs,
whose primary goal is to make scientific contributions in various areas of robotics.
There is a need to integrate the existing work, in order to progress to higher level research
problems. In order to handle large volume of data from multiple sensors, streamlined data
management solutions are required.
Features and advantages of our research robot platform:
With the above goals in mind we have developed a new indoor research robotic system,
which we describe in this thesis. It comprises of a differential drive wheel base, and an array
of multiple ranging sensors which enable better data accuracy through sensor fusion. A
digital compass provides additional robot heading information in addition to pose(x, y, θ), of
the robot, from wheel encoder. The embedded controller is modularized into two distinct
parts, a motion controller and a sensor controller. The motion controller is designed such that,
the robot base comprising motors, encoders and wheels can be changed with very little
modification in the embedded controller software. The robot is controlled by computer via
ZigBee wireless communication link. Overall data exchange between computer and robot is
structured such that frequency and volume of communication is reduced, due to less communication over head. This will enable more number of robots to simultaneously
communicate in limited bandwidth.
The design and architecture of this robotic system has been done keeping the requirements of
robotics researchers and single and multi robot research platforms in mind. This robot at its
current stage has most of the features required to be commercialized. It costs a fraction of
similar commercial research robots, and provides better sensors and communication features.
Features and advantages of robot software development framework
This framework enables the algorithm to be divided into independent modules which can be
run as separate threads or processes. Database tables are used to implement inter process
communication (IPC). The output result of a module is written into a table and this data is
used as input to some other modules. As database can be accessed over the network,
processes can run on single or multiple computers. The processes are programming language
and OS independent. Structured Query Language (SQL) provides various ways of accessing
the data, which can enable us to design algorithms with computationally different approaches
and reduce the burden of data management. As this framework supports robot software to run
as separate processes, it is possible to run different robot control programs as separate
processes and integrate those using tables as IPC.