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