1 Introduction
With the development of science and technology, robots will have broad application prospects in the fields of space exploration, disaster relief and explosion prevention, and ocean development. Therefore, their development is becoming the focus of attention of researchers at home and abroad [1,2,3]. Analyzing the various types of robots mentioned above, their composition is nothing more than the mechanism and the control system. While the mechanism reflects the characteristics of the robot, it also determines that it must be an unmanned system.
In this environment, robots must have a certain degree of autonomy. This requires robots to have certain "judgment ability" and "ideas", and requires complex algorithms, including motion algorithms and pattern recognition algorithms. General microprocessors cannot complete this task, and the above-mentioned robots cannot use computers to control operations. The emergence of 32-bit microprocessors and embedded operating systems solves this problem.
Embedded systems refer to special computer systems that are application-centric, based on computer technology, with customizable software and hardware, and that meet the strict requirements of application systems for functions, reliability, cost, size, and power consumption [4,5,6,7]. As the core of embedded systems, embedded microprocessors are 8-bit, 16-bit, or 32-bit microprocessors. However, due to the operating speed, addressing capability, and power consumption of 8-bit and 16-bit microprocessors, it is difficult to meet the needs of relatively complex embedded applications. In the field of 32-bit embedded applications, ARM (Advanced RISC Machine) has achieved great success [8,9,10,11]. ARM microprocessors generally have the characteristics of small size, low power consumption, low cost, and high performance; for example, because it has a large number of registers, the instruction execution speed is faster, so most data operations are completed in registers; its addressing method is flexible and simple, the execution efficiency is high, and the instruction length is fixed. In ARM, an embedded operating system can be embedded, and complex algorithms can be completed on this system, which can replace PCs to complete various tasks.
This paper first introduces the structure of the embedded system, then describes how to use the embedded operating system and ARM and DSP to build a robot control system, and finally explains how to use this control system to control a 7-DOF serial robot [12].
2 Structure of Embedded Systems
An embedded system is mainly composed of an embedded operating system and the hardware that hosts the operating system.
2.1 Embedded Operating System
The embedded operating system is the control center of the embedded system, which is mainly used to control the system's information processing components and user interaction interface.
2.1.1 Real-time performance of embedded operating systems
In the embedded field, real-time is a very important concept. A real-time system is a computer system that can complete specified functions within a certain time and respond correctly to external asynchronous events.
The core of a real-time system is that a predefined operation must be completed within a certain time, otherwise it will cause serious consequences such as performance degradation or even system crash. It should be noted that a real-time system does not mean that the system's response and processing speed are very fast. The realization of real-time performance of a real-time system requires the cooperation of software and hardware. First of all, it should be ensured that the processing speed of the hardware meets the real-time requirements. At the same time, relative to software, real-time performance is reflected in the execution time limit of each task that constitutes the software system.
In embedded systems, the performance of a real-time system should be evaluated from aspects such as task scheduling function, memory management function, minimum memory overhead, task switching time, and maximum interrupt prohibition time.
2.1.2 Software in Embedded Systems
The software part of the embedded system has the following characteristics:
1) The development of embedded software is closely related to hardware. Since the development of embedded software is carried out for a specific hardware platform, it often involves some hardware and software integration parts in the hardware driver.
2) Software code requires high efficiency and high reliability. In embedded systems, the software running space is limited and the memory space is very valuable. The software running efficiency must be considered at all times during the software programming process. In real-time systems, the processor must strictly handle various tasks that occur asynchronously. In addition, embedded software systems should also have features such as exception handling and fast reset.
3) Software is generally fixed in FLASH or ROM. In order to improve the execution speed and system reliability, and shorten the system reset time, the embedded software will generally be downloaded and fixed in the FLASH or ROM of the target board after debugging.
2.1.3 Application of Embedded Systems
Embedded system products are everywhere in people's daily life, from mobile phones, PDAs to air conditioners and refrigerators at home, from cars to Boeing aircraft, and even cruise missiles in the arsenal. Embedded products have been widely used in many fields, such as national defense, industrial control, communications, office automation and consumer electronics.
2.2 Hardware System of Embedded System
Compared with ordinary PC hardware, the hardware system of embedded system has the following characteristics:
1) Small size and high integration efficiency. Embedded systems eliminate redundancy and strive to complete the target function with the smallest system.
2) Targeted at specific applications.
3) Low power consumption, good electromagnetic compatibility, able to work in harsh environments, and able to restart quickly when it crashes.
Embedded system hardware has strict restrictions in terms of price, function, size, weight, energy consumption, etc.
3 System Function and Design
3.1 System Function
In line with the principle of meeting the actual needs of various types of robots and saving resources as much as possible, the control system provides the following functions:
1) The upper computer monitors and responds to the instructions issued by the console. It sends data and commands to the lower computer;
2) Communication bus. Fieldbus, used for information exchange with other controllers;
3) Sensor integration. Directly integrate attitude, position, depth, height, speed, acceleration and other sensors, or reserve interfaces;
4) Pulse width modulation. Used to adjust the speed and position of the motor, thereby controlling the speed and posture of the robot;
5) A/D acquisition. Monitor A/D quantities such as working voltage, current, pressure, etc. for system control or status recording;
6) I/O control. Used to monitor peripheral switch quantities;
7) Data recording. Used for storing set parameters, customizing movement routes or recording related monitoring data;
8) Communication protocol. Facilitates reliable and efficient transmission of information between controllers and between robots and host computers;
9) Information processing. Extraction and processing of various sensor output data and multi-sensor information fusion;
10) Control algorithm. The lower-level calculation method is mainly the feedforward algorithm and PID algorithm, and the upper-level computer algorithm depends on the specific robot. [page]
3.2 System Design
This system is designed to meet various robot control requirements while taking into account the robot's sensitivity to controller size, weight, power consumption, etc.
The host computer CPU uses Samsung's low-power, 16/32-bit, high-performance RISC microcontroller S3C2410 based on the ARM920T[5,6] core (suitable for real-time environment), with a main frequency of 266MHz; the operating system uses the arm-Linux kernel, which is a real-time, multi-tasking kernel with open source code, specially designed for ARM, and high reliability; the slave computer uses Ti's DSP-TMS320LF2407, which has low power consumption, flexible instruction set, flexible internal operation, and high-speed computing power.
3.2.1 Architecture
The hardware structure diagram of the robot control system based on ARM, DSP and arm-Linux is shown in Figure 1.
Figure 1 Robot controller hardware structure
The upper computer mainly solves the algorithm problem, processes the signals sent back by each sensor, and sends control commands to the lower computer according to each signal. At the same time, the upper computer receives signals from the lower computer and judges the status of the lower computer in order to send corresponding data and commands. The lower computer mainly controls the motor. According to the commands and data sent by the upper computer, combined with the feedforward algorithm and PID algorithm, the motor is controlled in terms of speed and position.
The main difference between different types of robots lies in the algorithm written by the host computer. The algorithm of the host computer is related to the specific task required by the robot. In a robot system, only one host computer is needed as the "brain" of the robot; the number of slave computers depends on the needs of the robot.
3.2.2 Hardware Design
The principles of hardware design are: modular components, standardized interfaces, good interchangeability and scalability, and high reliability.
The hardware can be divided into CPU module and peripheral module. The two modules can be stacked together, mechanically detachable, and connected to each other by interfaces for easy interchange and maintenance.
1) CPU module: The upper computer includes the basic elements of system operation such as S3C2410, SDRAM, NAND FLASH, crystal oscillator, etc. The lower computer includes the basic elements of system operation such as TMS320LF2407, SDRAM, crystal oscillator, etc.
2) Peripheral modules: The upper computer includes power interface, 485 bus interface, A/D interface, I/O interface, PWM interface, lower computer communication interface, USB HOST interface, USB SLAVE interface, LCD interface, etc. It is also the bridge connecting the sensor module and the CPU module; the lower computer includes power interface, 485 bus interface, I/O interface, PWM interface, photoelectric encoder interface, upper computer communication interface, A/D interface, FLASH, etc.
The S3C2410 chip itself integrates some common peripheral devices, so channels such as A/D, USB, and I/O directly use their resources. The two UARTs in the chip are used as 485 bus and communication interface with the lower computer respectively. These two serial ports are external connection ports. In order to avoid external interference, they are isolated by high-speed optical isolation HCPL2630. The TMS320LF2407 chip itself also integrates some common peripheral devices, which can directly use resources such as PWM, A/D, I/O, and photoelectric encoder interface. The UART in the chip is used as a communication interface with the upper computer, and optical isolation is also used.
For different robots, the hardware part only requires simple interface adjustments or sensor additions and deletions.
Controller integration size: The upper computer module is 60mm×45mm×35mm, and the total power consumption is about 5V×200mA, of which the CPU module power consumption is only 3.3V×30mA; the lower computer module size is 60mm×40mm×30mm, and the power consumption is also very low, while the general PC104 bus CPU module power consumption is about 5V×1000mA.
3.2.3 Software Design
The basic principles of software design are: software structuring, driver standardization, and system customizability[13].
The main work of software design is the transplantation of operating systems, the design of drivers, the encapsulation of commonly used API functions, the decomposition and design of multi-tasks, the writing of host computer algorithms, and the writing of driver programs and algorithms for lower computers. The key lies in the synchronization of upper and lower computers. When multiple controllers work together, the synchronization problem is even more important. The upper computer transmits data to the lower computer, and first passes the controller number down. Only the module corresponding to this number can receive the following data. After the lower computer receives the signal, it needs to send a confirmation signal to the upper computer. It is necessary to synchronize multiple processors and occupy the bus separately. In order to synchronize multi-machine communication and avoid signal conflicts, when designing hardware, each microprocessor uses an I/O port, and the I/O ports of each processor are connected together with wires. When a controller receives or sends data, it sends a high signal to other processors to indicate that it is using the bus. The processor that receives the signal knows that the bus is busy and no longer sends data, which can avoid bus conflicts. It has been proved that this method is feasible, there will be no bus conflicts, and the synchronization of multiple processors is very good. [page]
The reading, verification, extraction and processing of sensor data in this software are all carried out in accordance with the NMEA0183 standard, which is convenient for system upgrades.
The system is customizable mainly because the upper-level software for different robots is different.
4 Experimental studies
Application in 7-DOF serial robot
In order to verify the performance of the robot control system, a scenario test was designed: the 7-DOF serial robot first grabs the first workpiece and places it on the processing table; moves the other two workpieces forward in sequence; and finally places the processed workpiece in the final position. The whole process is shown in Figures 6 to 9.
The process that the robot goes through to complete this task is: ① The robot grabs the first workpiece and places it on the processing table, as shown in Figures 2 and 3; ② The robot moves the second workpiece to the first position and prepares for processing, as shown in Figures 4 and 5; ③ Moves the third workpiece to the second position, as shown in Figures 6 and 7; ④ The robot grabs the processed workpiece and places it on the third position, as shown in Figures 8 and 9.
Such a cycle completes the processing of one workpiece, allowing the following workpieces to be processed in sequence.
In this control system, the upper computer (S3C2410) calculates 1000 points for the first time, transmits them to each lower computer controller through the RS485 bus and stores these points in the lower computer FLASH. Each lower computer runs its own points, and whenever the number of points running exceeds 500, it asks the upper computer for 500 data. This saves the time of interaction between the upper and lower computers, improves the synchronization of the serial robot, and improves the tracking accuracy. In addition, due to the existence of ARM9, computer control is not required. Each action of the above 7-DOF serial robot is completed "autonomously", that is, there is no computer control.
Experiments have shown that the control system has good stability and real-time performance, can work in harsh environments, and has strong versatility.
5 Conclusion
The embedded robot control system designed in this paper has achieved certain results in the application of the seven-degree-of-freedom serial robot. It has good performance in real-time, reliability and versatility. It is small in size and low in power consumption. The actual situation is quite satisfactory. This control system writes the control algorithm in the upper computer (ARM) and controls the lower computer (DSP) through the bus. It does not require computer control and can independently determine how to act. At present, there are still many deficiencies in the performance of the embedded control system, which are mainly reflected in the design of the control algorithm in the controller and the improvement of its functions. This is also the direction of future efforts.
The innovation of this article is the autonomous nature of the robot, that is, the robot has its own "judgment ability" and does not require computer control.
References
[1]Richard M.Murray, Li Zexiang, S.Shanker Sastry. A Mathematical Introduction to Robotic Manipulation[M]. America: CRC Press, 1994.
[2]Weihai Chen, Guilin Yang, Edwin Hui Leong Ho. Interactive-Motion Control of Modular Reconfigurable Manipulators[J]. Proceedings of the 2003 IEEE/RSJIntl. Conference on Intelligent Robots and SystemsLas Vegas, Nevada. October 2003.
[3]L. Romdhance. Design and analysis of a hybrid serial parallel manipulator[J]. Mechanism and Machine Theory.1999,34:1037-1055.
[4]Karim Yaghmour. Building Embedded Linux Systems[M]. America: O'Reilly, 2004.
[5] Michael Barr. Programming Embedded Systems in C and C++[M]. America: O'Reilly, 2001.
[6]John Catsoulis. Designing Embedded Hardware [M]. America: O'Reilly,2001.
[7] Yan Liping, Zeng Hui, Song Kai. Research and design of embedded intelligent home gateway [J]. Microcomputer Information. 2005, 2: 14~16.
[8] Sun Tianze, Yuan Wenju, Zhang Haifeng. Embedded Design and LINUX Driver Development Guide - Based on ARM 9 Processor[M]. Beijing: Electronic Industry Press, 2005.
[9] Chen Yu, Li Ming, Yang Ye. Analysis and practice of open source embedded system software - based on SKYEYE and ARM development platform [M]. Beijing: Beijing University of Aeronautics and Astronautics Press, 2004.
[10] Zhou Ligong. Fundamentals and Practice of ARM Microcontrollers[M]. Beijing: Beijing University of Aeronautics and Astronautics Press, 2003.
[11] Li Juguang, Nie Xueyuan, Jiang Zeming. Detailed explanation of ARM application system development. [M] Beijing: Tsinghua University Press, 2003.
[12] Liu Heping, Wang Weijun, Jiang Yu. TMS320LF240xDSPC language development and application[M]. Beijing: Beijing University of Aeronautics and Astronautics Press. 2003.
[13] Wang Song, Li Xinjun, Liang Jianhong. Design of embedded autopilot for micro robot[J]. Journal of Beijing University of Aeronautics and Astronautics. 2005, 31(7):775-779.
Previous article:Implementation of FPGA loading configuration based on ARM
Next article:Rapidly implement designs based on the AMBA 3 AXI protocol
Recommended ReadingLatest update time:2024-11-16 20:37
- Popular Resources
- Popular amplifiers
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- Looking for a microcontroller model
- Why is there no CUBEMX project in the STM32L0 official HAL library routine?
- Measurement of radar power, spectrum and related parameters
- [ESP32-Audio-Kit Audio Development Board Review]——(2): Questions about play_mp3_control
- Is it popular to reduce the size of laptop keyboards now?
- (Bonus 5) GD32L233 Review - CRC (with the clearest article explaining CRC in history)
- Recruiting MCU development engineers (workplace: Beijing, Wuhan)
- ST FOC electrical angle problem
- Altium Designer software is abnormal, please solve it! ! !
- Car-to-everything design