Cấu trúc ảnh IplImage

Một phần của tài liệu Điều khiển phi tuyến hệ AGV (Trang 60)

5 Nội dung nghiên cứu

2.6.3 Cấu trúc ảnh IplImage

IplImage là định dạng ảnh được giới thiệu và phát triển bởi Intel. Chuẩn IplImage được sử dụng rộng rãi trong xử lý ảnh, tối ưu hóa quá trình xử lý nhờ quản lý các nhóm dữ liệu dưới dạng các Field. Quá trình xử lý được thực hiện trên các trường làm tăng khả năng linh hoạt và tốc độ xử lý dữ liệu. Định dạng IplImage được dùng rộng rãi trong các bộ thư viện xử lý ảnh như IPL ( Image Procesing Library) hay IPP ( Intergrated Performance Primitives), OpenCV, AMM,...

Cấu trúc IplImage trong OpenCV như sau:

typedef struct _IplImage {

int nSize; int ID;

int nChannels;

int alphaChannel; // OpenCV không sử dụng int depth;

char colorModel[4]; // OpenCV không sử dụng char channelSeq[4]; // OpenCV không sử dụng int dataOrder;

int origin;

int align; // OpenCV không sử dụng int width;

int height;

struct _IplImage *maskROI; // bằng NULL trong OpenCV

void *imageId; // bằng NULL trong OpenCV

struct _IplTileInfo *tileInfo; // bằng NULL trong OpenCV int imageSize;

char *imageData; int widthStep;

int BorderMode[4]; // OpenCV không sử dụng int BorderConst[4]; // OpenCV không sử dụng char *imageDataOrigin;

}

IplImage;

Các tham số:

nSize : Kích thước của ảnh

ID : Chỉ số version, luôn bằng 0

nChannels : Số kênh, các hàm của OpenCV đều hỗ trợ từ 1-4 kênh alphaChannel : OpenCV không sử dụng

depth : Chiều sâu của pixel theo bit, có các dạng sau : IPL_DEPTH_8U : unsigned 8-bit integer

IPL_DEPTH_8S : signed 8-bit integer IPL_DEPTH_16U : unsigned 16-bit interger

dataOder : 0 = IPL_DATA_ORDER_PIXEL Các kênh màu đan xen nhau, 1 = Các kênh màu tách rời

origin : Gốc tọa độ 0 = top-left origin, 1 = bottom-left origin width : Bề rộng ảnh theo pixel

height : Chiều cao ảnh theo pixel

roi Region of Interest (ROI) nếu bằng NULL thì chỉ có vùng ROI được xử lý

imageSize : Kích thước dữ liệu ảnh theo byte

imageData : Một pointer trỏ tới vùng địa chỉ ảnh

2.6.4 Các hàm dùng trong luận văn :

Thu nhận ảnh từ camera :

CvCapture* cvCaptureFromCAM(int index);

Trong đó index là chỉ số camera được sử dụng, nếu có 1 camera, index = -1 Chức năng : Thu nhận hình ảnh từ camera và trả về pointer có kiểu là CVCapture.

Giải phóng camera :

void cvReleaseCapture( CvCapture**capture);

Trong đó capture là địa chỉ của Pointer có kiểu cvCapture

Lấy hình từ camera :

IplImage* cvRetrieveFrame( CvCapture* capture); hay IplImage* cvQueryFrame( CvCapture* capture);

Đọc thuộc tính của camera

double cvGetCaptureProperty( CvCapture* capture, int property_id);

trong đó capture có kiểu CvCapture đại diện cho camera đang làm việc property_id có thể có các giá trị sau :

CV_CAP_PROP_POS_MSEC : Camera frame timestamp

CV_CAP_PROP_POS_FRAMES: 0-based index of the frame to be decoded/capture next. CV_CAP_PROP_POS_AVI_RATIO : (Dùng cho file avi)

CV_CAP_PROP_FRAME_EIDTH : Bề rộng của video stream CV_CAP_PROP_FRAME_HEIGHT: Bề cao của video stream CV_CAP_PROP_FPS : frame per second

CV_CAP_PROP_FRAME_COUNT : Số thứ tự của frame

Đặt thuộc tính cho camera

int cvSetCaptureProperty ( CvCapture* capture, int property_id, double value);

Trong đó capture có kiểu CvCapture* đại diện cho camera, property_id có các giá trị như trong phần đọc thuộc tính của camera, value là gía trị của thuộc tính.

Tạo một ảnh :

IplImage* cvCreateImage(CvSize size, int depth, int channels)

Hàm trả về một pointer trỏ đến hình ảnh có cấu trúc IplImage, trong đó : size : Kích thước ảnh

depth : Số bit biểu diễn độ sáng tại mỗi pixel channels : Số kênh

Giải phóng pointer trỏ tới ảnh:

void cvReleaseImage( IplImage** image);

Trong đó image là pointer trỏ tới hình ảnh có cấu trúc IplImage

void cvCopy( const CvArr* src, CvArr* dst, const CvArr* mask = NULL); Trong đó :

src : Ảnh nguồn dst : Ảnh đích

mask : Mặt nạ phủ lên ảnh nguồn nếu ta chỉ muốn copy một phần ảnh.

Xác định vùng ảnh cần xử lý (ROI)

void cvSetImageROI(IplImage* image, CvRect rect);

Trích một cùng ảnh ban đầu thành một vùng ảnh mới, nằm trong hình chữ nhật rect. Sau khi trích, image là pointer trỏ tới hình ảnh này.

Cân bằng histogram cho ảnh xám

Để thực hiện việc cân bằng histogram ta dùng hàm sau : CVAPI(void) cvEqualizeHist( const CvArr*scr, const CvArr* dst) Trong đó :

scr : Hình ảnh gốc ban đầu

dst : Hình ảnh sau khi cân bằng histogram

Phát hiện khuôn mặt trong ảnh

CvSeq* cvHaarDetectObjects(const CvArr* image, CvHaarClassifierCascade* cascade,

CvMemStorage* storage, double scale_factor=1.1, int min_neighbors = 3, int flags = 0,CvSize min_size = cvSize(0,0))

Trong đó:

 image : Ảnh cần phát hiện

 cascade : Chuỗi phân lọai Haar dùng cho tính tóan bên trong

 storage : Vùng nhớ chứa các kết quả trung gian trong quá trình phân lọai

 scale_factor : Tham số mà theo đó kích thước cửa sổ tìm kiếm tăng lên sau mỗi chu kì quét, mặc định là 1.1 tức tăng 10%

 min_neighbors : Số nhỏ nhất các hình chữ nhật kế cận cùng phát hiện khuôn mặt. Điều này có

nghĩa khuôn mặt được phát hiện nếu có ít nhất một số hình chữ nhật có cùng kết quả dương chồng lấp lên nhau.

 flags : Chế độ họat động, chỉ hỗ trợ HAAR_DO_CANNY_PRUNNING

 min_size : Kích thước cửa sổ nhỏ nhất khi bắt đầu tìm kiếm, thường là 20x20 cho đối tượng là

khuôn mặt. Hàm này tìm các vùng hình chữ nhật trong hình có chứa khuôn mặt với chuỗi phân loại được huấn luyện và trả về một mảng các hình chữ nhật. Trước khi gọi hàm này ta phải load file dữ liệu trong OpenCv :

cascadefaces = (CvHaarClassifierCascade*)cvLoad(filename_face,NULL,NULL,NULL); với filename_face là đường dẫn đến file dữ liệu nằm trong phần dữ liệu của OpenCv.

Luận văn Thạc sĩ được bảo vệ tại Trường Đại học Kỹ thuật Công nghệ

TP. HCM ngày 25 tháng 01 năm 2014

Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:

(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ Luận văn Thạc sĩ)

TT Họ và tên Chức danh hội đồng

1 PGS.TS. Nguyễn Tấn Tiến Chủ tịch

2 TS. Nguyễn Quốc Hưng Phản biện 1

3 TS. Nguyễn Hùng Phản biện 2

4 TS. Võ Hoàng Duy Ủy viên

5 TS. Ngô Cao Cường Ủy viên, thư ký

Xác nhận của Chủ tịch Hội đồng đánh giá Luận sau khi Luận văn đã được

sửa chữa (nếu có).

Chủ tịch Hội đồng đánh giá LV

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: PHẠM QUỐC THIỆN Giới tính: Nam

Ngày, tháng, năm sinh: 22/2/1988 Nơi sinh:ĐỒNG NAI

Chuyên ngành: Kỹ thuật Cơ điện tử MSHV: 1241840017

I- TÊN ĐỀ TÀI:

ĐIỀU KHIỂN PHI TUYẾN HỆ AGV.

II- NHIỆM VỤ VÀ NỘI DUNG:

Nghiên cứu hệ thống AGV, mô hình hóa hệ thống AGV, thiết lập bộ điều khiển phi

tuyến trên cơ sở ổn định của Lyapunov. Chương 1: Mở đầu.

Chương 2: Tổng quan về AGV.

Chương 3: Mô hình toán học AGV.

Chương 4: Thiết kế bộ điều khiển và hệ thống đo lường.

Chương 5: Thiết kế, thi công AGV và mô phỏng hệ thống trên Matlab.

III- NGÀY GIAO NHIỆM VỤ:

IV- NGÀY HOÀN THÀNH NHIỆM VỤ:

V- CÁN BỘ HƯỚNG DẪN: TS. NGUYỄN THANH PHƯƠNG.

CÁN BỘ HƯỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết

quả nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ

công trình nào khác.

Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này đã

được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc.

Học viên thực hiện Luận văn

(Ký và ghi rõ họ tên)

Sau thời gian học tập và nghiên cứu tại trường, nay tôi đã hoàn thành đề tài

tốt nghiệp cao học của mình. Để có được thành quả này, tôi đã nhận được rất nhiều

sự hỗ trợ và giúp đỡ tận tình từ thầy cô, gia đình và bạn bè.

Tôi xin chân thành cảm ơn quý Thầy cô khoa Quản Lý Khoa Học - Đào Tạo

Sau Đại Học, quý Thầy cô khoa Cơ - Điện - Điện Tử Trường Đại Học Kỹ Thuật

Công Nghệ TP.HCM đã tận tình giúp đỡ, hỗ trợ tôi trong suốt quá trình thực hiện

luận văn.

Với lòng tri ân sâu sắc, tôi muốn nói lời cám ơn đến Thầy TS. Nguyễn Thanh

Phương, người đã nhiệt tình hướng dẫn và chỉ bảo cho tôi trong suốt thời gian thực

hiện nghiên cứu này.

Tp. Hồ Chí Minh, tháng 02 năm 2014

Người thực hiện luận văn

Phạm Quốc Thiện

Trong bài báo này, một bộ điều khiển phi tuyến dựa trên phương pháp Lyapunov được đề xuất và áp dụng cho xe tự hành. Đầu tiên quỹ đạo − (G3) với đa

thức bậc 7 được thiết kế. Thứ hai, dựa vào vị trí được ước lượng của xe tự hành, bộ điều khiển này làm cho xe tự hành bám theo quỹ đạo G3 và di chuyển với vận vận

tốc không đổi. Sự ổn định của hệ thống được chứng minh bằng phương pháp

Lyapunov. Mô phỏng và kết quả thực nghiệm được trình bày để chứng minh tính

In this paper, a nonlinear controller base on Lyapunov method is proposed and

applied for wheel mobile robot (WMR). First, trajectory − (G3) with 7th

order polinom is designed for WMR. Then, based on the estimated position of the

WMR, this controller makes WMR follow trajectory G3 which is moving with

desired constant velocity. The stability of system is proved by the Lyapunov stability theory. The simulations and experimental results are shown to prove the effectiveness of the proposed controller.

Tên đề mục Trang

Lời cam đoan ... i Lời cảm ơn ... ii Tóm tắt luận văn ...iii Abstract ... iv Mục lục ... v Danh mục các từ viết tắt ... vii Danh mục các bảng biểu ...viii Danh mục các sơ đồ, hình ảnh ... ix

Chương 1: Mở đầu ... 1 1.1 Đặt vấn đề ... 1 1.2 Tính cấp thiết của đề tài ... 1 1.3 Mục tiêu đề tài ... 2 1.4 Nội dung nghiên cứu ... 2 1.5 Phương pháp luận ... 2 1.6 Phương pháp nghiên cứu ... 3 1.7 Nội dung luận văn ... 3

Chương 2: Tổng quan về AGV ... 4 2.1 Sơ lược quá trình phát triển của AGV ...4 2.2 Phân loại AGV...5 2.2.1 Tàu không người lái ...5 2.2.2 Xe nâng pallet ...6 2.2.3 Xe chở hàng ...7 2.3 Tóm tắt các công trình nghiên cứu ...8 2.4 Nhận xét và hướng tiếp cận ...32

Chương 3: Mô hình toán học của AGV ... 33 3.1 Cấu trúc AGV ... 33

3.3 Xây dựng quỹ đạo đường đi cho AGV ... 36

Chương 4: Thiết kế bộ điều khiển và hệ thống đo lường ... 39 4.1 Cơ sở lý thuyết ... 39 4.1.1 Giới thiệu phương pháp Lyapunov ...39 4.1.2 Điểm cân bằng của hệ phi tuyến ...39 4.1.3 Ổn định tại điểm cân bằng ...41 4.1.3.1 Định nghĩa ...41 4.1.3.2 Ổn định và ổn định tiệm cận Lyapunov ...41 4.1.4 Phương pháp tuyến tính hóa Lyapunov ...42 4.1.5 Phương pháp trực tiếp Lyapunov ...44 4.1.5.1 Định lý ổn định Lyapunov ...44

4.1.5.2 Định lý không ổn định Lyapunov ...45 4.2 Thiết kế bộ điều khiển ... 47 4.3 Hệ thống đo lường ... 48

Chương 5: Thiết kế thi công AGV và mô phỏng ... 51

5.1 Thiết kế mô hình ... 51 5.2 Thiết kế mạch điện ... 53 5.2.1 Phương án thiết kế ... 53 5.2.2 Sơ đồ nguyên lý ... 54 5.2.3 Thiết bị sử dụng ... 57 5.3 Kết quả mô phỏng và thực nghiệm ... 60 5.3.1 Kết quả mô phỏng trường hợp 1 ... 61 5.3.2 Kết quả mô phỏng trường hợp 2 ... 63 5.4 Kết luậnvà hướng phát triển ... 65

TÀI LIỆU THAM KHẢO

AGV Automated Guided Vehicles

GPS Global Positioning System

WMR Wheel Mobile Robot

RF Radio Frequency

FL Feedback Linearization

SMC Sliding Mode Control

FSMC Fuzzy Sliding Mode Control

WP Way Point

cm centimeter

s second

DC Direct Current

Trang

Bảng 2.1 Luật điều khiển mờ ...19 Bảng 2.2 Giá trị thông số của AGV ...27 Bảng 2.3 Giá trị khởi tạo ban đầu ...27 Bảng 5.1 Thông số mô phỏng ... 60

Trang

Hình 2.1 AGV dạng tàu không người lái 6

Hình 2.2 AGV dạng xe nâng pallet 7

Hình 2.3 AGV dạng xe chở hàng 8

Hình 2.4 Phương pháp tính toán vị trí 9

Hình 2.5 Môi trường thực nghiệm 10

Hình 2.6 Kết quả khi sử dụng bộ lọc Kalman 10

Hình 2.7 Dữ liệu vị trí 11

Hình 2.8 Sơ đồ khối của vòng điều khiển robot di động

bám theo quỹ đạo G3 12

Hình 2.9 Quỹ đạo mong muốn và quỹ đạo thực của robot 12

Hình 2.10 Robot di động hai bánh 13

Hình 2.11 Vị trí thật và mục tiêu của robot 13

Hình 2.12 Đáp ứng vận tốc của bánh trái và phải 14

Hình 2.13 Sai số quỹđạo , , 14

Hình 2.14 Sơ đồ khối vòng điều khiển mobile robot 15

Hình 2.15 Điều khiển vòng kín với = 0.6, = 2

để mô phỏng robot. Quỹ đạo robot tín hiệu

ngõ ra với nhiễu và tín hiệu ngõ vào 16

Hình 2.16 Điều khiển vòng kín với = 0.6, = 2

để mô phỏng robot. Quỹ đạo robot tín hiệu

ngõ ra với nhiễu và tín hiệu ngõ vào 17

Hình 2.17 Sơ đồ khối SMC 18

Hình 2.18 Sơ đồ khối FSMC 19

Hình 2.19 Hàm membership của ngõ vào-ngõ ra , ̇, 20

Hình 2.22 Sai số ( − ) 21

Hình 2.23 Tín hiệu điều khiển torque cho bánh phải 22

Hình 2.24 Sai số góc định hướng − 22

Hình 2.25 WMR bám theo quỹ đạo tham chiếu: (a) FL;

(b) đường chấm chấm-SMC, đường liền-FSMC 23

Hình 2.26 Sai số ( − ): (a) FL;

(b) đường chấm chấm-SMC, đường liền-FSMC 23

Hình 2.27 Sai số ( − ): (a) FL;

(b) đường chấm chấm-SMC, đường liền-FSMC 24

Hình 2.28 Sai số góc định hướng − : (a) FL;

(b) đường chấm chấm-SMC, đường liền-FSMC 24

Hình 2.29 Tín hiệu điều khiển torque cho bánh phải: (a) FL;

(b) đường chấm chấm-SMC, đường liền-FSMC 25

Hình 2.30 Lưu đồ giải thuật điều khiển tuyến tính hồi tiếp 26

Hình 2.31 Quỹđạo mong muốn của AGV

có dạng đường thẳng ( y = x ) 26

Hình 2.32 Quỹđạo của AGV ở thời gian ban đầu 28

Hình 2.33 Sai lệch vị trí trong toàn thời gian 28

Hình 2.34 Vận tốc tuyến tính của AGV trong toàn thời gian 29

Hình 2.35 Vận tốc góc của bánh phải và bánh trái

đối với quỹđạo là đường thẳng 29

Hình 2.36 Véc tơ điều khiển đầu vào 30

Hình 2.37 Véc tơ điều khiển đầu vào u 30

Hình 2.38 Véc tơ điều khiển đầu vào mới 31

Hình 3.1 Mô hình động học của WMR 33

Hình 3.2 Khái niệm về AGV bám theo quỹđạo tham chiếu 36

Hình 3.3 Quỹđạo G3 đi qua hai điểm A và B 38

Hình 5.2 Động cơ DC Tsukasa TG-35F-AG-18-A27 51

Hình 5.3 Bánh xe omni nhôm 52

Hình 5.4 Mô hình AGV mô phỏng 52

Hình 5.5 Cấu hình hệ thống điều khiển 53

Hình 5.6 Mạch nguồn 5 VDC 54

Hình 5.7 Mạch vi điều khiển Pic 18f4550 54

Hình 5.8 Khối giao tiếp I2C và RS232 55

Hình 5.9 Khối hiển thị 55

Hình 5.10 Mạch vi điều khiển Pic 18f4431 56

Hình 5.11 Mạch kết nối encoder 56

Hình 5.12 Pic 18F4550 và 18F4431 57

Hình 5.13 HM-TR/TTL/433 57

Hình 5.14 Mạch cầu H đôi 58

Hình 5.15 Pin 18650 58

Hình 5.16 AGV được thi công 59

Hình 5.17 AGV bám theo quỹ đạo G3trường hợp 1 61

Hình 5.18 Sai số tiếp tuyến và sai số định hướng trường hợp 1 61

Hình 5.19 Vận tốc góc bánh phải và bánh trái trường hợp 1 62

Hình 5.20 Kết quả đo giá trị ước lượng của AGV trường hợp 1 62

Hình 5.21 e1được ước lượngtrường hợp 1 63

Hình 5.22 e2được ước lượngtrường hợp 1 63

Hình 5.23 e3được ước lượngtrường hợp 1 64

Hình 5.24 AGV bám theo quỹ đạo G3trường hợp 2 65

Hình 5.25 Vec-tơ sai sốtrường hợp 2 65

Hình 5.26 Vận tốc góc bánh phải và bánh trái trường hợp 2 66

Hình 5.27 Kết quả đo giá trị ước lượng của AGV trường hợp 2 66

Hình 5.28 e1được ước lượngtrường hợp 2 67

1.1 Đặt vấn đề

Một hệ thống được gọi là thông minh và tự động khi nó có thể cảm nhận và

tương tác với môi trường bên ngoài hoặc có thể tích hợp những ứng dụng phục vụ nhu cầu cuộc sống của con người hằng ngày, những yếu tố đó đã thúc đẩy sự phát triển trong các lĩnh vực về trí thông minh nhân tạo, lý thuyết điều khiển, xe tự hành, robot v.v. Việc nghiên cứu này rất phức tạp, các hệ thống tự động đang dần dần trở thành

Một phần của tài liệu Điều khiển phi tuyến hệ AGV (Trang 60)

Tải bản đầy đủ (PDF)

(176 trang)