Controlling robots
Tom Shelley reports on improving the integrity of robot control code for mission-critical applications.
Special software packages have become available to ease the design of novel robotics, now that autonomous and semi autonomous machines are becoming mainstream in military and civilian undersea applications.
With the next generation expected to become common to assist the disabled, as well as working in the factory and warehouse, integrity of software is essential. But new tools and the re-writing of underlying code has produced software that runs noticeably faster and with greater reliability.
At the recent NIDays event, Shelley Gretlein, senior group manager, LabView Real-Time and Embedded, described how there has been 'an explosion in recent years' in robotics, progressing from single armed machines to undertake repetitive tasks on production lines to machines to explore and work in the underwater environment, undertake increasingly sophisticated tasks on the battlefield and assist the disabled.
She then explained that for such applications, software needs to be exceptionally reliable and able to react very quickly to changed situations, both applications requiring running on an FPGA (Field Programmable Gate Array) chips instead of in a more conventional computing environment.
The general approach of the new software package – LabView Robotics Software – is to assist the 'sense, think, act' process. Gretlein summarised the challenges for writing robotics applications as: coming up with a generic approach to addressing a very wide variety of possible complex tasks; translating algorithms into code to run on embedded hardware, and; 'connecting to the real world' with different possible sensors available from different vendors, working in many different ways with different interfaces.
A possible solution to the first challenge, she said, is a generic robot task development strategy developed by students at Franklin Olin College in Needham, Massachusetts. The answer to the second and third challenges, she argued, was to use the latest LabView software, with its automatic FPGA programming tools and a library of interfaces to 'commonly used sensors and actuators'. Tools in the Robotics package include blocks of code to effect obstacle avoidance and path planning, and the ability to run sensor and actuator code asynchronously at their 'native' speeds.
We later learned, when trying our hand at programming in a 'hands on' session, that it is possible to prioritise function tasks so that urgent jobs, such as handling motor drive and encoder position pulses are done first, and build in periods in control algorithms to allow other tasks to be undertaken as required.
Novel engineering applications to which the software is being applied include a 'Virtual Underwater Laboratory' at the University of Limerick, to assist development of unmanned underwater vehicles, and BEAR, a Battlefield Extraction Assistance Robot, to rescue wounded soldiers or victims of terrorist attacks without having to wait and see if there is going to be a follow up attack or sniper attempts to kill rescuers.
One aid to improve reliability in all of NI's software was revealed by Danny Thomson, test systems development engineer with Motorola, who explained that, in his opinion, the biggest reason for users to upgrade to LabView 2010 was that this version independently saves source code and VIs – LabView programme and subroutine files originally given such a designation because they were 'Virtual Instruments'.
This means that when something in the control logic is changed, only one file changes when the change is compiled, whereas in earlier versions, up to 88 files would be changed, making proper peer review of all changed code impracticable.
Design Pointers
• NI has brought out a special 'LabView Robotics Software' package to aid in the development of control strategies for autonomous mobile robots • Such machines are already being used in warehouses, on the battlefield and under water and are being experimentally being developed to help the disabled
• Absolute integrity of control software is essential in all such applications, but the new tools and improvements in the underlying code greatly assist this