Application of ARM-based embedded system in robot control system

Publisher:江上HZLatest update time:2012-05-21 Source: 微计算机信息 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

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.

Reference address:Application of ARM-based embedded system in robot control system

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

Developing ARM bare metal programs under Ubuntu - S3C6410 - LED
Many people develop ARM bare metal programs in ads, rvds or keil. Although using such development tools is simple, it does not enable developers to master more program principles. If you want to better master more program details, it is better to use arm-linux- for development. Please indicate the source when reprinti
[Microcontroller]
Research and Application of Image Data Acquisition System Based on ARM7
Image data acquisition systems are widely used in defense, industry, medicine, household and scientific research. The image sensors used in these systems are mainly CCD and CMOS arrays. Among them, CMOS has the characteristics of high integration, simple voltage supply circuit, low cost and low technical level compa
[Microcontroller]
Research and Application of Image Data Acquisition System Based on ARM7
IAR for ARM introduction, download, installation and registration
II. Introduction to IAR 1. About IAR   IAR is the name of a company and also the name of an integrated development environment. What we usually call IAR mainly refers to the integrated development environment. The development of IAR has also gone through a series of historical changes. From the beginning of developi
[Microcontroller]
IAR for ARM introduction, download, installation and registration
SoftBank's chip technology company ARM's revenue hit a record high of $2.7 billion last year
In the early morning of May 13th, Beijing time, ARM, a chip technology company under SoftBank Group, released a report on Thursday saying that the company's revenue in 2021 hit a record high.    ARM Chief Executive Rene Haas said in an interview that the company's new chip design business shows strong prospects.    Af
[Semiconductor design/manufacturing]
Design of ARM secondary development interface based on interrupt call mode
     With the rapid development of information technology, programmable intelligent embedded devices based on ARM chips play an increasingly important role in our daily lives. Since the designers of programs design software programs and functions based on the general situation in society and do not design them accordi
[Microcontroller]
Design of ARM secondary development interface based on interrupt call mode
s3c2440 (ARM9) general register addresses
The general register group of 89c51 corresponds to the memory, that is, the address is allocated in the memory, so what about ARM9? Source: http://zhidao.baidu.com/link?url=Nf9NDaITEiA4Gc9q6Y4dP3yt xLJPwBjvRhizxtP0hUu6sQaN qUFqPnS7KEfvfjpIJBlzFKFz q-rBNYXSGx1-va s3c2440a general register address: For example, general
[Microcontroller]
Implementation of Serial Port Server Based on ARM7
By expanding multiple serial ports, you can remotely monitor and manage various peripherals on the PC, or perform system upgrades on peripherals. Usually, the serial port server uses an ARM9 microprocessor and a paid operating system with a TCP/IP protocol stack. The serial port server proposed in this article is im
[Power Management]
Implementation of Serial Port Server Based on ARM7
Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号