1. BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI: XE VẬN CHUYỂN HÀNH LÍ
ĐA TẦNG
Giảng viên hướng dẫn: TS. Trương Công Tuấn
Nhóm sinh viên thực hiện:
Trần Trí Phong
Nguyễn Đức Thắng
Lê Tăng Trường
Đào Duy Tùng
MSSV: 20170855
MSSV: 20170905
MSSV: 20170961
MSSV: 20170985
Lớp: CK.CĐT.02
Khóa: K62
2. • I: Tổng quan đề tài
• II: Tính toán thiết kế và chế tạo mô hình
• III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
• IV: Thực nghiệm và đánh giá kết quả
• V: Kết luận và hướng phát triển đề tài
NỘI DUNG BÁO CÁO
2
4. 1. Automated Guided Vehicle (AGV)
Robot AGV sử dụng trong nhà máy Nhu cầu sử dụng AGV trên toàn thế giới từ 2019 đến 2026
Automation Guided Vehicle (AGV) – xe tự hành sử dụng các công nghệ dẫn đường để
vận chuyển đến các địa điểm được đánh dấu sẵn mà không cần đến sự can thiệp của con
người.
I. Tổng quan đề tài
4
5. 2. Đặt vấn đề
Robot vận chuyển khách sạn Shelton Los Angeles Robot vận chuyển hành lí trong khách sạn tại Nhật Bản
Robot vận chuyển hành lí tại Trung Quốc Robot vận chuyển hành lí trong khách sạn tại Úc
I. Tổng quan đề tài
5
6. 3. Đề xuất các chức năng
Mô hình xe được thiết kế để
có thể thực hiện 2 nhiệm vụ
chính, chuyển đổi nhiệm
bằng giọng nói:
- Nhiệm vụ 1: Bám sát
nhân viên hướng dẫn để
xây dựng bản đồ tòa nhà.
- Nhiệm vụ 2: Vận chuyển
hành lí từ khu vực lễ tân
đến các phòng theo yêu
cầu của khách hàng.
6
I. Tổng quan đề tài
7. 4. Đề xuất các thiết kế mô hình
AGV điều hướng bằng line AGV điều hướng bằng QR code
AGV điều hướng tự do
I. Tổng quan đề tài
7
9. II. Tính toán thiết kế và chế tạo mô hình
1. Yêu cầu đầu vào bài toán
- Không gian hoạt động: Khách sạn
- Vận tốc di chuyển: ~ 0.5m/s
- Khối lượng hành lí: 10 kg
- Có thể tự tạo bản đồ và lập kế hoạch
đường đi
- Có thể thao tác qua giao diện và giọng nói.
- Có kích thước nhỏ gọn đảm bảo trong quá
trình di chuyển trong không gian nhỏ hẹp
của khách sạn và hành lang. (kích thước
700x520 mm).
- Xác thực người nhận bằng QR code
Segway Delivery Robotic S2
9
10. 2. Mô hình thực tế
Mô hình xe trên SolidWorks Mô hình thực tế của xe
10
II. Tính toán thiết kế và chế tạo mô hình
11. 3. Sơ đồ khối hệ thống
Sơ đồ kết nối hệ thống phần cứng
11
II. Tính toán thiết kế và chế tạo mô hình
12. 4. Các thiết bị sử dụng
Jetson Nano Developer Kit STM32F04VE LIDAR A2
Realsense Depth Camera Mạch cầu H L298 Encoder từ
12
II. Tính toán thiết kế và chế tạo mô hình
13. 4. Các thiết bị sử dụng
13
II. Tính toán thiết kế và chế tạo mô hình
14. PHẦN III: XÂY DỰNG
CÁC GIẢI THUẬT VÀ LẬP
TRÌNH ĐIỀU KHIỂN HỆ
THỐNG
15. III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
1. Robot Operation System (ROS)
Hệ thống ROS Sự tương tác các node trong ROS
Các package tương ứng với các folder
15
16. 1. Robot Operation System (ROS)
ROS yêu cầu các phần tử cần phải khai báo tọa độ để phục vụ các tính toán biến đổi tọa độ
trong quá trình hoạt động, đặc biệt là quá trình quét bản đồ và điều hướng tự động.
Tổng quát các hệ tọa độ trong ros
Các node đang được khởi tạo trong ROS
16
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
17. 2. Hệ thống tọa độ trong ROS
odometry source: thông tin về tốc độ của robot (đọc từ encoder) hoặc IMU để ước tính
vị trí của robot so với vị trí trước đó.
Các hệ tọa độ trực quan hóa trong mô phỏng
Sơ đồ khối hệ tọa độ robot
17
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
18. 3. Lưu đồ thuật toán
18
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
19. 4. Thuật toán nhận dạng giọng nói
Nhóm đề tài sử dụng thư viện SpeechRecognition để nhận dạng lệnh của người nói lên robot. Thư viện
này sử dụng mô hình Markov ẩn (HMM) để nhận dạng.
Mô hình nhận dạng giọng nói HMM
a) Tín hiệu tương tự b) Tín hiệu số
Biến đổi tín hiệu âm thanh sang tín hiệu số Rút trích đặc trưng của tiếng nói
19
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
20. 5. Thuật toán bám đối tượng
Lưu đồ thuật toán bám đối tượng
Thuật toán bám đối tượng để phục
vụ yêu cầu quét bản đồ. Ở đây nhóm
sẽ xác định đối tượng bằng màu sắc
và di chuyển theo đối tượng dựa
theo khoảng cách và góc lệch thu
được từ camera.
20
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
21. H: (Hue) Vùng màu, màu sắc được mô hình hóa dưới
dạng một chiều góc mã hóa thông tin màu sắc
S: (Saturation) Độ bão hòa màu
B (hay V): (Bright hay Value) độ sáng, thể hiện số lượng
màu tương ứng được trộn với màu đen.
Cách phối màu trong mô hình RGB
Nhận diện màu sắc
Mô hình màu HSV
5. Thuật toán bám đối tượng
21
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
22. Nhận diện màu sắc
Ta sẽ chuyển đổi ảnh từ RGB sang mô hình HSV. Sau đó áp dụng mặt nạ ngưỡng để phát hiện màu
sắc. Ví dụ color_lower =[50 20 20] đến color_upper = [10 255 255]
Phát hiện vị trí vùng màu
5. Thuật toán bám đối tượng
22
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
23. 6. Thiết kế bộ điều khiển cho động cơ
Phương pháp căn chỉnh thủ công theo các bước
sau:
Bước 1: Khởi tạo các giá trị KP, KI, KD ban
đầu bằng 0.
Bước 2: Tăng dần KP cho đến khi đáp ứng
động cơ bắt đầu dao động, khi đó KP sẽ được
chọn bằng 1/2 giá trị bắt đầu dao động.
Bước 3: Cân chỉnh KD để bộ điều khiển nhanh
chóng trở về giá trị đặt khi bị vọt lố. Trong hệ
thống điều khiển động cơ, ở ngõ ra đã có một
khâu tích phân lý tưởng nên giá trị KI sẽ được
cho bằng 0.
Kết quả cho ra với hệ số KP= 0.7, KI = 3.1,
KD = 1.
Bộ điều khiển PID
23
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
24. 7. Thuật toán quét và tạo dựng bản đồ (SLAM)
Simultaneous Localization And Mapping (SLAM) là công nghệ định vị và xây dựng bản
đồ đồng thời. Bằng cách sử dụng SLAM, các kết cấu hạ tầng có thể thay đổi dễ dàng. Bên
cạnh đó việc cài đặt công nghệ này cũng không tốn nhiều thời gian.
Thuật toán vẽ bản đồ Hector SLAM
Hector SLAM, Gmapping là các thuật toán mã nguồn mở được sử dụng để xây dựng bản
đồ lưới 2D cho môi trường xung quanh dùng cảm biến laser scan (Lidar).
• Tái tạo môi trường (mapping)
• Định vị (localization).
24
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
25. Tiêu chí Gmapping Hector SLAM
Độ chính xác của ánh
xạ
Có thể lập bản đồ môi trường chính xác khi sử dụng laser_scan và
merge_scan. Bản đồ được vẽ với bức tường hẹp hơn nhưng có
nhiều khu vực / đối tượng địa lý bị lệch hơn.
Có thể lập bản đồ môi trường chính xác khi sử dụng
laser_scan hoặc merge_scan. Bản đồ được vẽ với các bức
tường dày hơn nhưng các khu vực / đối tượng địa lý ít bị
lệch hơn.
Phát hiện các kích
thước và đặc điểm
hình dạng khác nhau
Có thể phát hiện các đối tượng có nhiều kích thước bằng cách sử
dụng merge_scan; nhưng kém chính xác hơn Hector SLAM.
Phát hiện tốt hơn các đối tượng có nhiều kích thước bằng
cách sử dụng merge_scan.
Đóng vòng Có thể đóng vòng lặp vì nó dựa trên bộ lọc hạt.
Không thể đóng vòng lặp. Trong quá trình hoạt động, bản
đồ thu được chỉ có thể được thay đổi cục bộ (tức là tại các
khu vực nằm trong FOV của lần quét gần nhất).
Độ phức tạp
Cao hơn đáng kể do kỹ thuật lọc hạt phức tạp và thực tế là nó sử
dụng cả scan và odometry trong tính toán. Không thể cập nhật bản
đồ với tốc độ nhanh.
Thấp hơn đáng kể do thuật toán (GaussNewton) đơn giản
hơn. Đối sánh quét được sử dụng để ước tính tư thế và
chỉnh sửa cục bộ bản đồ.
Tư thế ước tính
Đầu ra đặt tư thế điều chỉnh thay vì tư thế thực. Chỉnh sửa được cập
nhật sau mỗi 5 đến 6 giây. Do đó, trong khoảng thời gian, odometry
phải được sử dụng để ước tính tư thế.
Trực tiếp xuất ra tư thế ước tính. Tốc độ cập nhật nhanh
hơn đáng kể so với Gmapping; gần với tốc độ cập nhật của
quá trình quét đầu vào.
Nhóm sử dụng thuật toán Hector Slam
7. Thuật toán quét và tạo dựng bản đồ (SLAM)
25
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
26. Trực quan quá trình xây dừng bản đồ bằng Hector SLAM.
360 điểm tương ứng với 360 độ khi quét
Quá trình tiền xử lí đưa ra bản đồ lưới
Quá trình Scan Matchinng
Bản đồ được hoàn thành
7. Thuật toán quét và tạo dựng bản đồ (SLAM)
Không có laser scan
Có laser scan
26
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
27. 8. Định vị xe trong bản đồ
Robot tự định vị với thuật toán Monte Carlo
Định vị (localization).
Thuật toán định vị Monte-Carlo
Monte-Carlo là một bộ lọc dạng PF (Partial Filter) dùng để xác định vị trí của robot trong không gian với một
bản đồ đã biết trước. Bộ lọc Monte-Carlo có hai bước chính là lấy mẫu vị trí từ mô hình chuyển động, đánh giá
trọng số bằng mô hình quan sát và tiến hành lấy mẫu lại các mẫu quan trọng
27
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
28. 9. Tìm đường đi đến đích (Navigation)
So sánh giữa global planner và local planner
Quá trình tìm đường đi ngắn nhất từ điểm tới điểm, được xác định qua
hai chức năng: global planner và local planner.
28
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
29. a) Kế hoạch đường đi toàn cục (global planner)
Thuật toán Dijkstra
Giới thiệu thuật toán Dijkstra, A*
Nó có một hàm chi phí, là giá trị chi phí thực từ nguồn đến từng nút
f(x) = g(x)
Nó tìm thấy con đường ngắn nhất từ nguồn đến mọi nút khác bằng
cách chỉ xem xét chi phí thực.
Thuật toán A*
Nó có hai chức năng chi phí.
g(x): giống như Dijkstra. Chi phí thực sự để đạt được một nút x.
h(x): chi phí gần đúng từ nút x đến nút mục tiêu. Đó là một chức
năng heuristic. Hàm heuristic này không bao giờ nên đánh giá quá
cao chi phí. Điều đó có nghĩa là, chi phí thực tế để đạt được nút
mục tiêu từ nút x phải lớn hơn hoặc bằng h(x).
Tổng chi phí của mỗi nút được tính bằng:
f(x) = g(x) + h(x)
9. Tìm đường đi đến đích (Navigation)
29
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
30. a) Kế hoạch đường đi toàn cục (global planner)
Plan Source
Node
Nodes
B C D E F Z
A (0) A 9 (A-B) 4 (A-C) 7(A-D)
A-C
(4)
C 9 (A-B) 7(A-D) 21
(A-C-E)
16
(A-C-F)
A-D
(7)
D 9 (A-B) 21
(A-C-E)
16
(A-C-F)
A-B
(9)
B 20
(A-B-E)
16
(A-C-F)
A-C-F
(16)
F
20
(A-B-E)
25
(A-C-F-Z)
A-B-E
(20)
E
25
(A-C-F-Z)
9. Tìm đường đi đến đích (Navigation)
Các bước thực hiện thuật toán
• Tìm đường đi ngắn nhất
từ A đến tất cả các nút.
Thuật toán Dijkstra
30
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
31. a) Kế hoạch đường đi toàn cục (global planner)
9. Tìm đường đi đến đích (Navigation)
Thuật toán A*
Các bước thực hiện thuật toán
31
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
32. b) Kế hoạch đường đi cục bộ (local planner)
Có hai thuật toán thường được sử dụng trong tìm đường đi cục bộ là thuật toán cửa sổ động (DWA)
và thuật toán Time Elastic Band (TEB).
So sánh hai thuật toán DWA và TEB
9. Tìm đường đi đến đích (Navigation)
32
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
33. Costmap 2D
Là một dạng bản đồ 2D hoặc 3D của phần không gian bị ngăn trở bởi vật cản hoặc tường
ngoài môi trường và lan rộng nó ra trong bản đồ dựa trên bản đồ dạng lưới và độ rộng
của vùng lan.
• Global costmap: bản đồ chi phí dựa trên những vật cản tĩnh đã có từ bản đồ gốc.
• Local costmap: bản đồ chi phí có thể xác định vật cản động, giúp điều hướng robot linh
hoạt tránh va chạm.
9. Tìm đường đi đến đích (Navigation)
Trước khi sử dụng Costmap 2D Sau khi sử dụng Costmap 2D
33
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
34. 9. Tìm đường đi đến đích (Navigation)
Khối Navigation trong ROS
34
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
35. 10. Giao diện điều khiển trung tâm
Giao diện điều khiển trung tâm
35
III: Xây dựng các giải thuật và lập trình điều khiển hệ thống
38. V. Kết luận
• Với đề tài “Xe tự hành vận chuyển hành lí đa tầng”, chúng em đã đạt được những kết quả nhất định:
• Tính toán, thiết kế được mô hình robot, đảm bảo độ vững chắc, hình dáng phù hợp trong không gian
hoạt động.
• Ghép nối, kết hợp điều khiển các module, linh kiện điện tử hoạt động ổn định.
• Thiết kế bộ điều khiển PID, hiệu chỉnh thông số phù hợp với mỗi động cơ. Xe có thể lập bản đồ cho
môi trường chưa xác định trước, tự lập kế hoạch đường đi, tránh vật cản.
• Thiết lập giao diện Python trực quan tương tác trực tiếp với người quản lí.
• Tuy nhiên do kiến thức còn nhiều thiếu sót nên còn tồn tại một số nhược điểm:
• Hình dáng của xe còn khá thô, chưa có tính thẩm mĩ cao.
• Thời gian sử dụng xe còn ngắn.
• Vẫn còn sai lệch về hướng và vị trí của xe.
PHƯƠNG HƯỚNG PHÁT TRIỂN
• Cải thiện mô hình robot, nâng cao tính thẩm mỹ, hạ giá thành sản phẩm.
• Tăng tốc độ di chuyển của robot, nâng cao số lượng đồ ăn phục vụ.
• Thiết kế thêm bộ sạc tự động sau mỗi phiên làm việc.
• Xây dựng hệ thống hoàn toàn tự động gồm nhiều xe phục vụ để giảm thiểu tối đa nhân lực.
38
39. TÀI LIỆU THAM KHẢO
• [1] Pritesh Shah & Sudhir Agashe, “Review of fractional PID controller”. ElsevierLtd. 20 June 2016.
• [2] Lentin Joseph, “Mastering ROS for Robotics Programming”. Pack Publishing Ltd. December 2015.
• [3] Ming-Yi Ju, Yu-Jen Chen, and Wei-Cheng Jiang, “Implementation of Odometry with EKF in Hector SLAM
Methods”, March 1, 2018.
• [4] S. Thrun, W. Burgard, D. Fox, "Robot Motion," in Probabilistic Robotics, The MIT Press, 2005, pp. 91-119.
• [5] S. Thrun, W. Burgard, D. Fox, "Measurements," in Probabilistic Robotics, The MIT Press, 2005, pp. 121-157
• [6] S. Thrun, W. Burgard, D. Fox, "The Particle Filter," in Probabilistic Robotics, The MIT Press, 2005, pp. 77-89.
• [7] S. Thrun, W. Burgard, D. Fox, "Monte Carlo Localization," in Probablilistic Robotics, The MIT Press, 2005, pp.
200-209.
• [8] Aleksandar Tomović, “Path Planning Algorithms For The Robot Operating System”, Computer Science Saint
Cloud State University Saint Cloud, 2014
• [9] Dieter Fox, Wolfram Burgard, Sebastian Thruny, “The Dynamic Window Approach to Collision Avoidance”,
1997.
• [10] Nguyễn Cao Quí, “Ứng dụng mô hình markov ẩn để nhận dạng tiếng nói trên FPGA”, 2011.
• [11] Jaspirt S Gill – Setup and Configuration of the Navigation Stack on a Robot.
http://wiki.ros.org/navigation/Tutorials/RobotSetup
39