Traditionally, industrial mobile machines used in mining are developed using multi-vendor, multi-chip and chip-down solutions to achieve various computing requirements such as general automation, safety systems and advanced autonomous edge control.
For example, HMI (Human Machine Interface) is implemented using a standalone general-purpose computer (generally using windows and SCADA systems), dedicated PLCs for safety and non-safety control systems and cloud-based computers for advanced data analysis or machine learning.
As a result, both hardware and software development processes are prolonged, complicated and difficult to modify or introduce the latest technologies like computer vision, AI and autonomous control solutions.
SolutionThe project explores a design solution that can bring together various computing needs within a unified environment. Xilinx's computing paradigm - an adaptive heterogeneous solution can help achieve the needs of a high-performance machine controller that can be deployed at the edge.
The Xilinx Vitis Unified software framework and hardware solutions like Zynq UltrasScale MPSoC SOMs can allow engineers to create designs that can remove the need for multi-vendor software and hardware solutions. Thereby enabling highly integrated and flexible control solutions that can be scaled up quickly by simply redeploying the adaptive hardware to meet future performance requirements.
To experiment with the idea of using adaptive computing, here, we will use the Xilinx Kria KV260 starter platform. The project will use Kria SOMs feature sets that form the heterogeneous concept.
- APU Cores - Arm Cortex A53 quad general purpose computing
The APU cores and Arm Mali 3D graphics processor provides an environment to run an operating system for general computing needs. For example, file management, web access, networking and HMI.
- RPU Cores - Arm Cortex R5F dual real-time computing
The RPU cores provide an environment to run mission-critical applications using ROS (Robotic Operating System - especially Kria Robotic Stack). The framework allows the creation of distributed and timestamped sub-application that is safety or mission-critical.
For example, communication between field sensors, motor drivers, display/indicators and networking nodes.
- PL Resources - Programmable logic resources to create hardware-based acceleration
The FPGA is the heart of the Xilinx platform and the core enabler technology for heterogeneous computing. The FPGA allows the creation of software-defined hardware-based applications that support high-performance solutions. The use of FPGAs provides the end-user with the flexibility to reconfigure or redeploy a solution to meet future performance specifications without redesigning the actual hardware.
Prototype DesignTo learn the Xilinx unified software platform and heterogeneous computing system, I have chosen the Kria KV260 starter kit and a robotic kit from Makerblock. The robotic kit provides me with ready-to-operate chassis and motor drive electronics, similar to a typical mining mobile machine propelled by electric variable speed drives.
A Sparkfun Thing Plus STM32 embedded board helps to simulate a distributed field IO to collect machine inputs and combines the data from navigation sensors like proximity, Lidar and GPS. The microcontroller running python scripts simulates various machine health monitoring sensors - for example; operating temperature, fluid level, power condition, interlocks, etc.
Concept Block DiagramThe concept block diagram below illustrates a simplified connection arrangement. The primary goal here is to create a simulated environment to evaluate and learn the new computing paradigm using the Vitis Unified Software Platform.
The Raspberry Pi camera is connected to the RPI CSI interface. USB ports are used to connect the Sparkfun Thing Plus embedded board and Makerblock Me Auriga embedded board.
Development PC is connected to Kria via an ethernet interface. An HDMI monitor, USB Keyboard/Mouse are connected to the Kria starter kit to simulate an HMI arrangement.
A top view of the prototype design shown below describes the general arrangement using the Kria KV260 starter kit as a central domain controller to collect and process field data from sensors. Once data is processed, commands are sent to motor drives to carry out useful work.
Machine navigation sensors Garmin Lidar Lite, Raspberry PI camera and Makerblock proximity sensors are installed to provide environmental perception. Three different sensors are selected to generate a sensor fusion and redundancy capability.
A Sparkfun GPS Dead Reckoning NEO-M8U module is used to create a navigation system that can enable a combination of GNSS and integrated IMU to track machine position indoor and outdoor use continuously.
To carry out the learning and investigation, I have used both combinations of windows host and virtual machine-based Ubuntu development computers. I come from a windows environment, and learning to use Ubuntu was a delightful challenge, and still, I have a long way to go.
Using this project, I have had the opportunity to explore the different engineering domains, something not possible in my field of work, where engineering is siloed and separated between engineering groups.
The unified software environment provides a great way to integrate hardware and software systems.
I set up the Ubuntu and PYNQ environment on the Kria platform to use the Jupyter workbook to carry out some basic testing and development work. Using the PYNQ framework also proved that the concept got a lot of promise. There is an opportunity to do more advanced simulation work that can further extend this project and the idea of integrated development for a software-driven hardware system.
Challenges and Learning OutcomeThe primary goal of this project was for me to use the Kria KV260 platform as a tool to learn the Xilinx Vitis and Vivado software platform. So far, I have only managed to scratch the surface and capability of the toolsets.
One of the primary challenges now for me is learning the Linux environment to use the Kria ROS 2 framework. The Kria ROS 2 framework is the toolset I require to implement the software-defined machine controller to get it working.
KRS (Kria Robotics Stack) seems to encapsulate and support the adaptive computing framework. Typically, ROS systems had limited capability to use hardware acceleration or the ability to use a heterogeneous computing topology.
Using this framework, I should be able to combine the general-purpose, real-time and accelerators (FPGA fabric) computing requirements to meet the project specification.
At this moment, the project is incomplete.
Also, I have learned that I should look to use the Pmod interface to interconnect the external field IO sensors and output devices. Originally, I tried to use the ttyUSB interface to connect the Sparkfun embedded board with no luck. Only to learn that I must recompile the kernel to add the ttyUSB drivers. By default, only the ttyACM is enabled.
Further investigation and analysis also confirmed that using Pmod (SPI, I2C, UART, and GPIO) is best to ensure performance by making use of the FPGA fabric and the MicroBlaze soft-microcontroller IP. Thereby, further integrating the system and reducing external components and software requirements.
Summary and Future PlansI will keep this project as a work in progress, whereas I will create two new supporting projects to document the subsystem developments. I believe that will add more value and also will assist me in returning and completing the project as a whole.
The subprojects will document the following hardware and software systems;
- Document the Pmod and MicroBlaze subsystem
- Document the Kris ROS 2 installation and configuration
Once documented, return and complete the project.
As a pure electronics hardware engineer, I find those days of implementing multi-vendor and multi-chip solutions are now potentially obsolete.
Undoubtedly, the Kria KV260 adaptive SOMs open up a new way of thinking and solving real-world problems.
Comments