Introduction

"Cezary Zielinski (Dr)" <[email protected]>
Newsgroups gmane.science.robotics.orocos.user
Message-ID <[email protected]>
Dear All,
I and my collegues from Warsaw University of Technology, Poland, are
late-commers into the EURON consortium. As such also our participation - if
accepted - in OROCOS will be rather late too. From the very interesting
discussion already published I see that the first responsibility of the
candidate is to present his/her group's attainment in the area of robotics
software. If full membership will not be possible due to my late response,
we are at least interested both in taking part in the brainstorming
(milestone) meetings and in contributing to the project as a Contributor.

We started our research of robot programming methods in 1982. Since then we
have implemented a specialised robot programming language TORBOL (I don't
think that it will be of much use to OROCOS) and several libraries of
modules out of which robot controllers are constructed: RORC, MRROC,
MRROC++. Currently we are working on MRROC++ (Multi-Robot Research-Oriented
Controller) which is C++ based. The real time operating system we are using
is QNX (as I see you would prefer open source software in this respect, e.g.
RT Linux). One of our activities could be to port the existing software to
RT Linux. Currently the concurrent software we have can run either on a
single PC type computer or on a network of computers (only ISO levels 1 and
2 are used). The system has been used with several robots: IRb-6 on a track,
IRb-6, RNT (prototype), IRb-60, Polycrank (prototype). The IRb robots had
the hardware of the controllers significantly altered by us, so they cannot
be treated as the industrial versions. Besides that a conveyor belt was
incorporated into the system. We also have some experience with sensor
integration (cameras, ultrasonic sensors, force sensors, infrared and touch
sensors). Each effector (e.g. robot) in the system is driven by its Effector
Control Process (ECP) and Effector Driver Process (EDP), so the task of the
effector and
the hardware dependent part are disjoint. Moreover the multi-effector system
can be controlled by a coordinator: Master Process (MP). The trajectory
generation can be done either on the MP or ECP level. EDP is responsible for
the servo control and kinematic trasformations. Servo control has been done
with 1ms or 2ms sampling rate. The sensors have their own data aggregating
processes called Virtual Sensor Processes. Within each process the
object-oriented paradigm of programming has been used. Task programming is
done by inserting method invocations in a fill in the blancs fashion.
Experienced programmers can modify any of the processes - including the
servo control. Even switching motion control algorithms while the motion is
in progress is possible. There is no limit as to the number of robots and
sensors controlled as the computations can be distributed over the network
of computers. The software that we have built over the years has no
licensing limitations - we did the work using university funds.

MRROC++ has been successfully used to build a typical
industrial controller for a task consisting in engraving
inscriptions in soft materials  (e.g. wood) by a robot equipped
with a milling machine. The controller inputs data
files produced by a CAD system - describing the Cartesian paths
along which the engraving has to take place. The path generator
uses moving segment B-spline interpolation between points in the
same way that the CAD station produces on-screen drawings of tool
trajectories.  Later it reproduces these paths with high precision
due to high rigidity of the serial-parallel structure prototype
RNT robot. This is a continuous path industrial
application, which most of the industrial robots would have
difficulty performing, as in this case the executed trajectories,
unless taught-in, would have to be interpolated either by straight
lines or circular arcs. In the case of MRROC++ based control
system the trajectories can be programmed to have any shape and
velocity profile along them. In this case the shape was defined to
be a series of B-spline curves spanning eight point segments. From
each such segment only the curve between the first two points is
utilised, and the remaining portion is discarded. Then the segment
is shifted to the next eight point part of the trajectory starting
with the second point of the first segment and ending with the
next point after the last point of the first segment. In such a
way a very smooth curve is built, and that is executed during
milling.

Cooperative transfer of a rigid body by two robots having 5 d.o.f. each
has been demonstrated by using MRROC. It
shows how the motion of over-constrained systems can be programmed using the
presented software.
To automate the tedious process of calibrating the two-robot system
another controller was built. For calibration two high
precision electronic theodolites were used.
The same procedure and software was later used in the case of the RNT robot.

MRROC based software was also used to build a system containing a robot and
an ultrasonic matrix overhanging a conveyor.  The 3D image obtained through
that matrix enabled the detection, localisation and recognition of objects
moving on a conveyor.  For that purpose neural networks were incorporated
into the controller. Thus obtained information was utilised in acquiring
objects from a moving conveyor and sorting them by a robot.  In a separate
experiment a CCD camera was used for the same purpose.

The presented library/language can also be utilised for creating reactive
controllers, which have gained much attention lately, especially in the area
of autonomous mobile robots.  If robot arms are substituted (as effectors)
by robot legs or wheels the same software can be used to build controllers
for autonomous mobile systems.  Originally the library/language was used to
build a controller for a robot transferring a touch probe and later a force
sensor inside a maze. The robot gradually gained information on its
surroundings by  reacting to collisions with the walls of the maze while
trying to attain a global goal of finding a way out of the maze. Another
controller was built which used global information about the maze layout
obtained through a CCD camera, although in this case a reactive controller
was unnecessary and a distance-optimal path could be traced. Reactive
control was also used to acquire moving objects from a conveyor. In this
case infra-red sensors were the source of information both about velocity
and position of the object.  An interesting aspect of this research was that
the same formalism that has been used for defining MRROC can be extended to
describe reactive robot systems and that hierarchic distributed controllers
can be used as a platform to implement reactive control.

I think that in the OROCOS project at least our experience could be somehow
utilised. Perhaps also some portions of the code could be used. I suspect
that everybody would like his/her ideas to be utilised in the final version,
so I doubt that MRROC++ as a whole could be used - although I would
certainly like to see it being developed further by others. If more
information is needed I can post PostScript versions of my papers dealing
with specific problems.

Please note that I will not be available from 17 June till 24 June.
Best regards,
Cezary Zielinski
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.