RobIS – Autonomous Dynamic Robot Control System
What is ROBIS?
RobIS – ROBotic Intelligent System based solely on the processing power and flexibility of an FPGA (Field Programmable Gate Array).
RobIS is the development tool for the System On a Chip robotic controller. The life environment is very complex to be precisely modeled when developing dynamic mobile robots. This rapid prototyping tool is an important complement to the system level simulator.
A control algorithm can either run on the SOFT CORE processor IP compiled into FPGA, or an algorithm can be directly implemented in the hardware. FPGA is connected to the on-board high current output buffers (H-BRIDGES) and an input analog acquisition interfaces, which can be connected to the drive train of the robot.
Typically, an autonomous mobile robot has a wide range of sensors, wireless communication channel and different actuators.
Hence, RobIS board supports simultaneously:
- 2 axis angular rate gyro and 2 axis accelerometer (directly mounted on the board)
- 12 independent analog channels from the analog sensors
- One high current, high voltage H-BRIDGE for the drive-train motor
- 4 medium current analog outputs for the camera tilt and azimuth actuators (for example)
- 8 low current fast outputs
- BlueTooth wireless link
- USB & RS232 wired connections
- One fast 32bit external bus for mezzanine extensions and debugging
- One bidirectional 16 bit bus either for the camera input or a display output
Also the board has the logic analyzer and mezzanine stack up connectors to build a complete robot.
RIM-1 and RIM-2 are both two wheeled differential drive robots. These robots are dynamically stable since they have the inverted pendulum configuration. RobIS platform integrated in these robots contains two identical RobIS boards complemented with the camera, display and power cards.
Controlling the dynamic stability of the inverted pendulum robot is a challenging task on its own and therefore it was selected as a benchmark for the embedded SOFT CORE microprocessor.
Since 2004 the RobIS board architecture was slightly improved, but the main concept remained unchanged.
Over the time, RoBIS system became a crucial tool for the development, debugging and the real-time benchmarking of the embedded soft core multiprocessor, sensor fusion, dynamic control, communication, robotic vision and complex control algorithms.
How could it help?
When designing a new real-time control system for an autonomous robot, the following problems have to be resolved:
- high complexity of the real-life environment;
- rapid rate of asynchronous events;
- deterministic response time;
- computationally intensive embedded software;
- very demanding machine vision algorithms;
- precise Real-Time management;
- required low power consumption.
RobIS platform helps to bring the real world environment to your controller SoC prototype. The SoC design can be better optimized and debugged, since the robot prototype could run the set of algorithms and tasks close to the final implementation.
Besides, the SoC architecture can be optimized and profiled with the help of this system by analyzing in the real time the performance of the SoC under the dynamic external conditions.
What can it do?
RobiS autonomous robot is built around the FPGA based computer system implemented in 2 Xilinx Virtex-E FPGAs with the total capacity of 1.2M gates, which fit the application specific CPU core, SDRAM/ DMA/ interrupt/ video/ bus controllers, embedded memories, boot ROM, multitude of peripheral controllers and interfaces.
The RobiS control system consists of the following subsystems:
- Power distribution system including 8 switch mode power supplies, several voltage detectors and electronic switches;
- Clock synthesis and distribution system;
- Two high/and eight low current PWM output stages;
- Multichannel low noise/low drift A/D conversion system;
- MEMS IMU;
- FPGAs and configuration FLASH;
- BlueTooth RF class 1 module;
- Two SDRAM memory modules;
- SD memory card, RS232 and USB interfaces;
- Video rate stereo camera interface;
- VGA LCD display on a pivoting stand;
- LiPoly battery and the dedicated power conditioning module.
All the electronic subsystems are shared between 6 PCBs.
The real-time input stream comprises the data flow from the wheel optical encoders, MEMS angular rate GYRO, MEMS accelerometers, two VGA CMOS camera sensors, Bluetooth communication module and the LCD video digitizer. The output data stream controls the DC motor PWM output stages, VGA camera operating parameters, LCD display user interactive environment and radio telemetry outgoing channel.
The custom heterogeneous dual-core CPU delivers 50 MIPS and over 800 MOPS on matrix operations running at 25 MHz. The overall available memory amount is 128 Mbytes.
The concept of a flexible scalable autonomous robotic platform based solely on the SoPC (System on Programmable Chip, i.e. FPGA) started in 2004.
Back then, beginning of the Y2K, MEMS devices were only introduced. Therefore the first generation board features the mixed technology: GYRATION electromechanical dual-axis angular rate gyro and the dual axis accelerometer.
Also choosing between Altera and Xilinx FPGA vendors was a difficult task. Due to availability of FREE design tools for a large scale FPGA the preference was given to Xilinx VIRTEX-E family, which had an excellent balance between the cost and the performance back then.
Virtex-E XCV300 FPGA device was later replaced by XCV600 on all the FPGA boards. Gyration electromechanical sensor was eliminated and Analog Devices MEMS angular rate gyro installed instead.
After solving the inverted pendulum balancing problem, the main focus was placed on the stereo vision task. Also the second generation ROBIS board was made to improve the signal integrity and increase the memory subsystem bandwidth.
At the beginning the stereo vision system was based on the two Omnivision OV7620 CMOS sensors with the VGA resolution. Later, these sensors were replaced by another rolling shutter “camera on a chip” devices from Micron. The rolling shutter was a simple but difficult to use choice in the fast moving environment.
A special adapter board were designed to accommodate a large spectrum of cameras and synchronize them together, sending a preprocessed stream to the main FPGA. This is how BINOCULUS project was born.
Currently the set of global shutter CMOS cameras is feeding the image into the control system. Utilization of the rolling shutter sensors were stopped all together in 2012.
Now the next generation of the RobIS platform is in the development phase. Once finished it will boost the present SoC several times, improving the agility, responsiveness and removing limitations of the current FPGA platform.