Design of embedded humanoid robot sensor system based on ARM9

Publisher:Yuexin888Latest update time:2011-06-18 Keywords:ARM9 Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

0 Introduction
Sensor technology is one of the key technologies in the research of humanoid robots. The reason why humanoid robots can complete certain operating functions in known or unknown environments is that they can perceive external environmental information and their own status through sensors, obtain feedback information, and realize closed-loop control of the system. At present, there are many types of sensors used in humanoid robots, such as visual sensors, electronic compasses, accelerometers, and ultrasonic sensors, which are commonly used sensors in humanoid robots.
The DF-1 robot is a humanoid robot independently developed by our institute. This paper first introduces the overall system of the DF-1 robot, and then designs the sensor system of the DF-1 robot according to the functions that the DF-1 robot needs to realize, and then realizes the specific working circuit of the sensor system, uses ARM9 to realize the collection of sensor system information, and finally verifies the effect of the sensor system.

1 Introduction to DF-1 humanoid robot
The DF-1 robot imitates the human body and uses the servo structure to realize the functions of human joints, as shown in Figure 1. The DF-1 is 45 cm long and has 17 degrees of freedom, which are specifically distributed as follows: 2×2=4 degrees of freedom for the ankle joint, 2×1=2 degrees of freedom for the knee joint, 2×2=4 degrees of freedom for the hip joint, 2×2=4 degrees of freedom for the shoulder joint, 2×1=2 degrees of freedom for the elbow joint, and 1 degree of freedom for the head. The DF-1 robot uses an ARM9 microprocessor, which is mainly used to complete tasks such as information fusion, decision-making and planning. The functions that the DF-1 robot can already realize include walking, doing push-ups, climbing stairs, and practicing Tai Chi. The realization of these functions is based on the fact that the DF-1 robot has a good mechanical structure and is completed through manual debugging and setting specific programs. In order to improve the stability of the robot's movements and realize the intelligent control of the DF-1 robot, it is necessary to configure the robot with a sensor system so that the robot can perceive its own state and the external environment.

2 Sensor system design
Three ultrasonic sensors are installed on the chest of the DF-1 robot to measure obstacles in front of, to the left and to the right of the robot. In this sensor system, an ARM9 microprocessor is used as the information acquisition, data preprocessing and communication unit. Since ultrasonic sensors have multiple reflection problems, three infrared ranging sensors are installed at the corresponding positions of the ultrasonic waves to solve this problem. The information obtained by the sensor system is transmitted to the host computer through the RS 232 interface in a fixed-length byte format. The basic structure of the sensor system is shown in Figure 1. [page]

2.1 Accelerometer sensor
Sensors for determining the robot's posture include gyroscopes and accelerometers. Since the gyroscope is expensive and the DF-1 robot is slow in motion, this paper uses a low-cost accelerometer to sense the robot's posture. The accelerometer is an important component in the object motion test, and its output is proportional to the acceleration of the object. The specific model of the accelerometer used in the sensor system is the dual-axis accelerometer ADXL202 produced by AD. ADXL202 has two outputs, one is to output analog signals from the XFILT and YFILT pins; the other is to output modulated DCM signals directly from the XOUT and YOUT pins. In specific use, the DCM signal output of the accelerometer is selected, which can save the A/D conversion link required to use analog signals and simplify the difficulty of circuit design.
2.2 Ultrasonic sensor
The sensors used for distance measurement mainly include infrared sensors, ultrasonic sensors, laser rangefinders, etc. In order to determine the approximate shape of the object while measuring the distance, a multi-sensor distance measurement system should be designed. Considering the installation space and cost of the robot, ultrasonic sensors are mainly used for distance measurement.
Ultrasonic sensors are mainly used to measure the distance information from the robot to the surrounding obstacles. There are multiple reflection problems in the distance measurement process of ultrasonic waves, that is, when ultrasonic waves encounter obstacles, they do not return to the transmitting and receiving points along the original path, but return to the transmitting and receiving points after multiple reflections. In this way, the measured distance information is no longer true, and in serious cases, the target will be "lost". This article uses SFR05 produced by DEVANTECH. SFR05 is small in size and has stable signals, which is easy to install in the robot. In addition, the measurement distance of SFR05 is 1 cm to 4 m. At the minimum measurement distance, it can be considered that the sensor has no blind spots.
2.3 Infrared sensor
In order to compensate for the problem of multiple reflections of ultrasonic sensors in ranging, three infrared ranging sensors are installed at the corresponding positions of ultrasonic waves. When the distance measured by the ultrasonic sensor is much greater than the distance measured by the infrared sensor in the same direction, it can be inferred that the ultrasonic wave has been reflected multiple times, and the distance information measured by the infrared sensor is used to replace the information of the ultrasonic sensor. The infrared sensor used in this article is GP2D12 produced by SHARP, which can measure a distance of 10 to 80 cm. GP2D12 can work with power supply, and the output voltage is 0.3~2.8 V. When measuring distance, the GP2D12 sensor is less affected by the external light intensity, the reflectivity of the object surface and the color of the object.


3 Software Implementation
The sensor system data acquisition and processing unit uses an ARM9 microprocessor, which mainly completes the following functions: realizes the control of the accelerometer and the measurement of acceleration, and calculates the inclination angle of the robot according to the acceleration value; realizes the control of the ultrasonic sensor and completes the calculation of distance information; realizes the control of the infrared sensor and completes the acquisition of distance information; the obtained inclination angle, ultrasonic ranging and infrared ranging data are sent to the host computer according to the specified communication protocol. The main flow of the program is shown in Figure 3.

The program must be initialized first, mainly including the selection of system clock, pin allocation, interrupt priority, timer clock and working mode selection. The internal resources of ARM9 have PCA timer unit and A/D unit, which facilitate the data collection of this sensor system. To prevent crosstalk between ultrasonic sensors, ultrasonic sensors are measured in turns. Since the working cycle of ultrasonic sensors is 50 ms, when the working time is less than 50 ms, the ultrasonic sensor will mistakenly believe that the interference generated by the next measurement of ultrasonic waves is the echo of this time, causing distortion in distance measurement. The time for the infrared sensor to establish voltage only takes 5 ms, so in programming, timer 0 is used to generate a 50 ms delay, and data is collected from three pairs of ultrasonic sensors and infrared sensors in turn. Since the accelerometer and infrared and ultrasonic sensors are independent and there is only one, its collection process only depends on the moment captured by the PCA capture module, so the collection and preprocessing of accelerometer information can be carried out within 150 ms. After completing the information collection and preprocessing of the sensor system, the acquired data must be sent to the host computer to provide necessary data for the decision-making of the host computer. [page]

4 Experimental Verification
4.1 Experiment with adding a table
When the robot tilts, the acceleration of gravity will generate components on the two axes of acceleration. At this time, the acceleration values ​​are Ax=gsin α and Ay=gsinβ. When the accelerometer is placed horizontally, Ax=gsin α. Due to the limitation of conditions, it is difficult to make the accelerometer reach an absolute level. Near α=0, the change amplitude of sin α is large, which will affect the calibration effect, while near a=π/2, the change amplitude of sin α is small. In order to obtain a better accelerometer calibration effect, the vertical calibration method is adopted, that is, the PCB circuit board is suspended with a thin wire, and the values ​​at g and -g are obtained respectively. The value of acceleration at 0g can be obtained by calculation. Since the output of ADXL202 contains Gaussian white noise, the application of directly collected data will have a large error, so the collected data needs to be processed before application.
The influence of noise can be reduced by average filtering. Assume that Xi is the directly collected data, Yi is the data after average filtering, Yi=(∑xi)/n. From the knowledge of probability theory, we know that EYi=EXi, DYi=DXi/n. It can be seen that the effect of average filtering is related to the number of average points n. The larger n is, the better the filtering effect. Considering the movement of the robot, n=15 can be taken, that is, the variance of the noise becomes 1/15 of the original. Figure 4 shows the tilt angle value obtained by the DF-1 robot during movement. Among them, L1 represents the pitch angle of the robot, and L2 represents the roll angle of the robot.

Since the DF-1 humanoid robot is small and moves slowly, it can handle obstacles within 2 m to meet the application requirements. Planar obstacles are placed at different distances within 2 m, and these distance information are measured using ultrasonic and infrared sensors. The measured distances and actual distances are shown in Table 1.

It can be seen from the table that the error of ultrasonic distance measurement is within 2%, and the error of infrared sensor distance measurement is within 4%, which can meet the application requirements of DF-1 humanoid robot.


5 Conclusion
Aiming at the functions to be realized by the DF-1 robot, this paper designs a sensor system based on the ARM9 microprocessor. The experimental results show that this sensor system can basically meet the functional requirements of the robot and has certain application value. The DF-1 robot equipped with the sensor system has a certain perception ability of the external environment and its own state, which provides a reliable basis for the host computer to make action decisions and improves the intelligence of the robot.

Keywords:ARM9 Reference address:Design of embedded humanoid robot sensor system based on ARM9

Previous article:Implementation of 3DES encryption algorithm based on ARM
Next article:Realization of CAN bus communication based on ARM9 under Linux environment

Recommended ReadingLatest update time:2024-11-16 16:24

Infrared alarm system based on ARM9 and GPRS
0 Preface Traditional image monitoring systems often have complex wiring, high costs through long-distance wired transmission, and low flexibility. Due to the outstanding advantages of GPRS (General Packet Radio Service) communication technology in medium and low-speed wireless data transmission, image monitoring sy
[Microcontroller]
Infrared alarm system based on ARM9 and GPRS
Embedded Wireless Video Surveillance System Based on ARM9
introduction The emergence of high-performance, low-power embedded CPUs and high-reliability network operating systems has made it possible to implement applications with large amounts of computing data, such as videophones, video conferencing, and remote video monitoring, in embedded devices. Traditional video
[Microcontroller]
Embedded Wireless Video Surveillance System Based on ARM9
IAR Embedded Secure IP ensures the security of product development and upgrades embedded security solutions
IAR's new security solution makes it easy for embedded developers to embed robust security into existing applications and move directly into production, even at a late stage in the software development process Uppsala, Sweden – April 13, 2023 – IAR, a global leader in embedded developm
[Embedded]
IAR Embedded Secure IP ensures the security of product development and upgrades embedded security solutions
ARM9 2440 clock
In fact, ARM9 is nothing special, it is basically the same as ARM7 and 6, and there is no difference when running naked. I personally feel that it is wrong! But the omnipotent C language is real!  U32 val; U8 m, p, s; val = rMPLLCON; m = (val 12)&0xff; p = (val 4)&0x3f; s = val&3; //(m+8)*FIN*2 Do not exceed 32 di
[Microcontroller]
Research on DVB-S2 Set-Top Box Solution Based on ARM9
1 Introduction With the development of electronic technology, computer technology and information technology, the digitization of television systems is an inevitable trend. According to media reports, the United States will stop broadcasting analog television and fully implement digital television in 2010. Altho
[Microcontroller]
Research on DVB-S2 Set-Top Box Solution Based on ARM9
ARM9 Hardware Interface Learning: UART
Before the introduction of UART, since there was no OS, after we wrote the program and burned it into the development board for execution, we could not print some prompt information during the program's running to tell us how the program was running or provide an interface for users to control the program's running pat
[Microcontroller]
ARM9_S3C2440 learning (V) norflash startup, nandflash startup, SDRAM summary
The first instruction read when S3C2440 starts is at 0x00, which is divided into starting on nand flash and nor flash.   NAND flash: suitable for large-capacity data storage, similar to hard disk; nor flash: suitable for storing small-capacity programs or data, similar to a small hard disk; sdram: Mainly used for prog
[Microcontroller]
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号