(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO

96 3 0
(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO(Luận văn thạc sĩ) Hoạch định quỹ đạo cho Robot di động dùng thuật toán PSO

iii LỜI CẢM TẠ Đề tài “Hoạch định quỹ đạo cho robot di động dùng thuật tốn PSO” hồn thành với hướng dẫn tận tình TS Ngơ Văn Thuyên (Trưởng phòng quản lý khoa học & quan hệ quốc tế - Trường Sư phạm Kỹ thuật Tp.Hồ Chí Minh) Trước tận tình tơi xin bày tỏ lòng biết ơn sâu sắc lời cảm ơn chân thành đến thầy Ngô Văn Thuyên, người tận tình hướng dẫn giúp đỡ tơi nhiều suốt thời gian thực đề tài Tôi xin gửi lời cám ơn đến quý thầy cô trường Đại Học Sư Phạm Kỹ Thuật Hồ Chí Minh, Đại Học Bách Khoa Hồ Chí Minh, Đại Học Quốc Tế tận tình hướng dẫn truyền đạt kiến thức, phương pháp nghiên cứu kinh nghiệm suốt hai năm học Những kiến thức kinh nghiệm tảng giúp người thực hồn thành tốt luận văn Tơi xin gửi lời cảm ơn đến Ban Giám Hiệu, quý thầy cô trường Cao Đẳng Nghề Đồng Tháp gánh vác công việc tạo điều kiện thuận lợi cho tơi tham gia hồn thành khóa học Tơi xin gửi lời cảm ơn đến quý anh chị khóa Cao học trước, bạn bè, người thân gia đình tận tình giúp đỡ, động viên tơi suốt khóa học q trình thực luận văn T.p.Hồ Chí Minh, tháng 04 năm 2013 Học viên thực iv LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu tơi Các số liệu, kết nêu luận văn trung thực chưa công bố cơng trình khác Tp Hồ Chí Minh, ngày tháng 04 năm 2013 Lâm Văn Vũ v TÓM TẮT Hoạch định quỹ đạo đường toán quan trọng robot di động, nhiệm vụ tìm đường tối ưu từ điểm bắt đầu đến điểm kết thúc mà không va chạm với vật cản Có nhiều phương pháp hoạch định đường cho robot di động triển khai như: phương pháp trường (Potential Field), phương pháp đồ đường (Road Map), phương pháp thuật toán di truyền (Genetic Algorithms) Khuyết điểm phương pháp bị bẫy cực tiểu cục (phương pháp trường năng), tăng chi phí độ dài đường (bản đồ đường) phức tạp (thuật toán di truyền) sử dụng kỹ thuật lai ghép đột biến Gần phương pháp hoạch định đường kết hợp thuật tốn tìm đường ngắn D* với phương pháp cho kết tránh bẫy cực tiểu cục bộ, độ dài đường ngắn Tuy nhiên đường robot chưa phẳng Robot bị dao động nhiều gặp vật cản Để khắc phục hạn chế này, đề tài đề xuất phương pháp “Hoạch định quỹ đạo cho robot di động dùng thuật toán PSO” sở kế thừa phương pháp D*_PF Thuật toán D* PF dùng để tìm đường tránh vật cản quảng đường Thuật tốn PSO sử dụng để tìm vận tốc góc vận tốc thẳng cho robot để robot di chuyển từ điểm ban đầu đến điểm kết thúc dọc theo đường tìm thuật toán D* Các thuật toán đề tài viết ngôn ngữ C++ mô phần mềm Player/Stage Kết mô cho thấy đường robot mịn robot đến mục tiêu cách an toàn vi ABSTRACT Path planning is one of the important problems of mobile robot, its task is to find an optimal path from its starting point to end point without colliding with obstacles There are many methods for mobile robot path planning such as: potential field method (PF), the road map approach (RM), or genetic algorithm (GA) Disadvantages of those methods are trapped local minima (PF), increase of the cost of the path length (RM) or complexity (GA) due to the crossover and mutation techniques Recent path planning solutions combining algorithm to find the shortest path D * with the above methods result in avoiding local minima traps and the path length is shorter However, the robot's path has not been smoothed The robot is swung when it travels near the obstacles or when it moves along a narrow path To overcome this limitation, the proposed method named "Planning for mobile robot using PSO algorithm" on the basis of inherited method D *_PF is used in this thesis The D* and PF algorithms are used to find the shortest path for the robot to move from its starting position to its desired position without colliding to the obstacles Then the PSO algorithm is used to find the angular and linear velocities for the robot to move from one way point to the other along the desired path generated by D* algorithm The algorithm is simulated on Player /Stage using C++ language The simulation results show the path of the robot is very smooth and the robot to the goal safely MỤC LỤC Lý lịch khoa học i Lời cảm tạ iii Lời cam đoan iv Tóm tắt v Chƣơng 1: TỔNG QUAN 1.1 Giới thiệu 1.2 Mục tiêu giới hạn đề tài 1.3 Nội dung đề tài Chƣơng 2: CƠ SỞ LÝ THUYẾT 2.1 Mô tả mơ hình tốn học số robot di động 2.2.1 Robot bánh 2.2.2 Robot bánh 2.2.3 Robot bánh 10 2.2 Các phương pháp lập kế hoạch đường 11 2.2.1 Phương pháp đồ đường (Road Map) 11 2.2.2 Phương pháp chia ô (Cell decomposition) 13 2.3 Các phương pháp tránh vật cản 14 2.3.1 Thuật toán Bug 14 2.3.2 Phương pháp trường (Potential field methods) 16 2.3.3 Phương pháp trường lực ảo (Virtual Force Field) 19 2.4 Các giải thuật tìm kiếm 21 2.4.1 Giải thuật A* 21 2.4.2 Giải thuật D* 24 2.5 Thuật toán PSO 29 2.5.1 Giới thiệu PSO 29 2.5.2 Các cải tiến PSO 34 2.5.3 Ứng dụng PSO tìm đường cho robot di động 35 Chƣơng 3: HOẠCH ĐỊNH CHUYỂN ĐỘNG CHO ROBOT DI ĐỘNG DÙNG THUẬT TOÁN PSO 37 3.1 Giới thiệu 37 3.2 Lưu đồ mô tả phương pháp hoạch định đường cho robot di động 37 3.3 Tìm đường tối ưu cho robot dùng thuật toán D* 39 3.4 Quy hoạch chuyển động cho robot di động dùng thuật toán PSO 41 3.5 Kết luận 45 Chƣơng 4: KẾT QUẢ MÔ PHỎNG 46 4.1 Phần mềm mô robot Player/Stage 46 4.1.1 Giới thiệu 46 4.1.2 Đặc điểm Player 46 4.1.3 Đặc điểm Stage 48 4.1.4 Các tập tin cần thiết sử dụng Player/Stage 49 4.2 Kết mô 50 4.2.1 Mô đường robot dùng phương pháp PF (Potential field) 50 4.2.2 Mô đường robot sử dụng kết hợp phương pháp PF thuật tốn tìm kiếm D* 52 4.2.3 Mô đường robot sử dụng thuật toán PSO 56 Chƣơng 5: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 63 5.1 Kết nghiên cứu 63 5.2 Kết luận hướng phát triển đề tài 63 5.2.1 Kết luận 63 5.2.2 Hướng phát triển đề tài 64 TÀI LIỆU THAM KHẢO 65 Phụ lục …………………………………………………………………………… 68 DANH SÁCH CÁC HÌNH Hình 1.1 Một số hình ảnh robot di động Hình 1.2 Robot di chuyển bằng bánh xe Hình 2.1 Cấu trúc robot bánh Hình 2.2 Cấu trúc robot với điều kiện ràng buộc nonholonomic hệ tọa độ toàn cục Hình 2.3 Cấu trúc robot bánh 10 Hình 2.4 Cấu trúc robot di động bánh 10 Hình 2.5 Phương pháp đồ thị trực quan (Visibility graph) 12 Hình 2.6 Sơ đồ Voronoid 13 Hình 2.7 Phương pháp chia 13 Hình 2.8 Đường tránh vật cản thuật toán Bug 15 Hình 2.9 Đường tránh vật cản thuật tốn Bug 15 Hình 2.10 Đường tránh vật cản thuật toán DistBug 15 Hình 2.11 Phương pháp trường 16 Hình 2.12 Phân bố xác xuất vật cản dùng cảm biến lấy mẫu liên tục 20 Hình 2.13 Mơ tả đồ đường thuật toánt A* 22 Hình 2.14 Khoảng cách lưới 23 Hình 2.15 Mơ tả đồ đường thuật tốn D* 25 Hình 2.16 Sự kết hợp ba trọng số di chuyển 30 Hình 2.17 Sự di chuyển cá thể PSO 31 Hình 3.1 Lưu đồ mơ tả hoạt động giải thuật hoạch định đường 38 Hình 3.2 Mơ thuật tốn D* với vật cản tĩnh 40 Hình 3.3 Mơ thuật tốn D* với vật cản tĩnh động 40 Hình 3.4 Dẫn đường hai điểm 41 Hình 4.1 Mơ hình Client/Sever Player 47 Hình 4.2 Kết nối Player/Stage Robot 49 Hình 4.3 Đường robot sử dụng phương pháp PF tiếp cận mục tiêu 51 Hình 4.4 Đường robot sử dụng phương pháp PF không tiếp cận mục tiêu 52 Hình 4.5 Đường robot sử dụng kết hợp thuật toán D* với phương pháp PF thoát khỏi bẫy cực tiểu cục 53 Hình 4.6 Biểu đồ vận tốc góc điều khiển robot với vật cản chữ U 54 Hình 4.7 Đường robot sử dụng kết hợp thuật toán D* với phương pháp PF chưa tối ưu 54 Hình 4.8 Đường robot sử dụng kết hợp thuật toán D* với phương pháp PF chưa tối ưu với vật cản phức tạp 55 Hình 4.9 Biểu đồ vận tốc góc điều khiển robot với vật cản phức tạp 56 Hình 4.10 Đường robot sử dụng thuật toán PSO 57 Hình 4.11 Biểu đồ vận tốc góc điều khiển robot với vật cản chữ U 58 Hình 4.12 Biểu đồ so sánh vận tốc góc điều khiển robot phương pháp PSO PF_D* 58 Hình 4.13 Đường robot sử dụng thuật toán PSO với thơng số khác 59 Hình 4.14 Đường robot sử dụng thuật toán PSO với vật cản phức tạp 60 Hình 4.15 Biểu đồ vận tốc góc điều khiển robot với vật cản phức tạp 61 Hình 4.16 Biểu đồ so sánh vận tốc góc điều khiển robot phương pháp PSO PF_D* 61 Chương Tổng quan Chƣơng TỔNG QUAN 1.1 Giới thiệu Theo dự báo vịng 20 năm tới người có nhu cầu sử dụng robot cá nhân cần máy tính PC robot tâm điểm cách mạng công nghệ lớn sau Internet [1] Cùng với phát triển ngành điện tử robot tự hành ngày hoàn thiện hơn, ứng dụng nhiều ngành công nghiệp, thương mại, y tế, khoa học, …và mang lại nhiều lợi ích cho đời sống xã hội, thay dần sức lao động người điều kiện môi trường độc hại nguy hiểm, tăng nhanh suất lao động…đặc biệt góp phần tích cực vào q trình cơng nghiệp hóa đại hóa nước ta nói riêng giới nói chung Hình 1.1 cho thấy số loại robot di động khác nhau, ứng dụng thực tế Robot tự hành (hay robot di động) thiết bị có khả tự vận động thực nhiệm vụ cách độc lập Nhờ cảm biến để nhận biết môi trường xung quanh kết hợp với chương trình thiết lập trước, robot di động tự hồn thành cơng việc giao mà khơng cần có tác động người [4] Tùy theo mục đích nghiên cứu, sử dụng mà ta chọn loại robot thích hợp Đề tài tập trung nghiên cứu robot di động chuyển động bánh xe, tự động di chuyển mơi trường Robot di chuyển bánh xe có nhiều ưu điểm so với robot di chuyển chân, robot chuyển động bánh thường sử dụng cho địa hình phẳng Hiện có hai loại bánh xe thường sử dụng bánh xe dạng đĩa bánh xe đa hướng Bánh xe dạng đĩa có khả quay quanh trục khơng thể trượt ngang Bánh xe đa hướng loại gồm nhiều bánh nhỏ dạng đĩa gắn xung quanh có khả quay quanh trục chúng Robot sử dụng loại bánh xe đa hướng di chuyển tức thời theo hướng Hình 1.2 cho thấy số loại robot di chuyển bằng bánh xe Chương Tổng quan a Robot tự hành thám hiểm hoả b Robot hút bụi Trilobite Hình 1.1 Một số hình ảnh robot di động a Robot di chuyển bánh xe dạng dĩa b Robot di chuyển bánh xe đa hướng Hình 1.2 Robot di chuyển bằng bánh xe Phụ lục int numNeighbors; ni = (NodeInfo *)parent->nodeInfo; numNeighbors = 0; for(i=0;ix + deltax[i]; posy = ni->y + deltay[i]; if(posx >= && posx < GRIDX && posy >= && posy < GRIDY) { neighbor[numNeighbors++] = &(gblGrid[posy*GRIDX + posx]); } } return(numNeighbors); } void freeNode(Node *p); void freeNode(Node *p) { NodeInfo *ni; ni = (NodeInfo *)p->nodeInfo; ni->x = ni->y = -1; p->parent = NULL; p->next = NULL; p->state = NEW; } int nodeEqual(Node *a, Node *b); int nodeEqual(Node *a, Node *b) { if(a == NULL && b == NULL) return(1); 74 Phụ lục else if(a == NULL) return(0); else if(b == NULL) return(0); if(((NodeInfo *)(a->nodeInfo))->x != ((NodeInfo *)(b->nodeInfo))->x) return(0); if(((NodeInfo *)(a->nodeInfo))->y != ((NodeInfo *)(b->nodeInfo))->y) return(0); return(1); } void printNode(Node *p); void printNode(Node *p) {} void drawArrow(Node *child, Node *parent); void drawArrow(Node *child, Node *parent) {} void initiate() { int i,j; for(i=0;ix; new_goal[1] = ni->y; } currentx = xpose; currenty = ypose; toa_do_x_hh = xpose; toa_do_y_hh = ypose; k_c_x_den_goal = fabs(x_goal - toa_do_x_hh); k_c_y_den_goal = fabs(y_goal - toa_do_y_hh); k_c_den_goal = sqrt(k_c_x_den_goal*k_c_x_den_goal + k_c_y_den_goal*k_c_y_den_goal); printf("k_c_den_goal %f\n",k_c_den_goal); if((pathcost < 1e+7)&&(k_c_den_goal > 0.2)) { ni = (NodeInfo *)p->nodeInfo; new_goal[0] = ni->x ; new_goal[1] = ni->y ; search = 2; if (search = 2) { initiate(); for(k=0;k0.3) vel_v=0.3; if (vel_v3.14) vel_w=3.14; if (vel_w

Ngày đăng: 17/12/2022, 14:22

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan