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