Mơ hình màu HSV

Một phần của tài liệu ĐỒ án tốt NGHIỆP đề tài XE tự HÀNH vận CHUYỂN HÀNH lí đa TẦNG (Trang 115)

3.2.4.2.3. Chuyển đổi từ màu RGB sang HSV

Yêu cầu bài toán là phát hiện các đối tượng màu xanh lá cây trong hình ảnh. Hình ảnh thu được từ camera sẽ đọc khung dưới dạng không gian màu BGR. Nhưng để phát hiện bất kỳ màu nào, trước tiên, chúng ta phải chuyển đổi khung hình sang khơng gian màu HSV. Điều nay được lí giải bởi khơng gian màu HSV rất hữu ích khi chúng ta đang làm việc với thông tin về màu sắc.

Để chuyển đổi từ không gian màu RGB sang HSV thì cần có các bước sau:

- Bước 1: Các giá trị R, G, B được chia cho 255 để thay đổi phạm vi từ 0..255 thành

0..1: ′ = /255 ′ = /255 ′ = /255 ′ =( Δ =− - Bước 2: Tính các giá trị H, S, V: 60∘ =

= {

V=Cmax

3.2.4.2.4. Tạo mặt nạ ngưỡng

Để tách biệt các màu, chúng ta phải áp dụng nhiều mặt nạ. Mặt nạ ngưỡng thấp và ngưỡng cao cho màu sắc, độ bão hòa và giá trị. Bất kỳ pixel nào trong các ngưỡng này sẽ được đặt thành 1 và các pixel còn lại sẽ bằng 0. Trong thuật tốn này, nhóm em đã áp dụng một mặt nạ để có được tất cả các màu xanh trong ảnh theo ngưỡng HSV = [50, 20, 20] đến [10, 255, 255]. Và sau đó để viền bao quanh xác định đối tượng.

3.2.4.3. Thuật toán bám theo đối tượng

Sau khi xác định được đối tượng cần bám dựa vào nhãn dán, từ vị trí trọng tâm của đối tượng mà robot sẽ đưa ra các lệnh điều khiển phù hợp sao cho robot ln hướng về đối tượng (tức góc lệch Δθ giữa người và robot bằng 0) và luôn giữ khoảng cách cố định đến đối tượng dgoal bằng 0.5 mét. Lưu đồ giải thuật bám theo đối tượng với ngõ vào là nhãn dán của đối tượng muốn bám và ngõ ra là các lệnh điều khiển di chuyển robot như hình 4.30.

Hình 3.48: Thuật toán bám đối tượng.

3.2.5. Thuật tốn nhận dạng giọng nói

3.2.5.1. Giới thiệu chung

Nhận diện giọng nói đang xâm nhập vào cuộc sống hiện đại. Nó được cài đặt trong những chiếc điện thoại, điều khiển trò chơi hay những chiếc đồng hồ thơng minh. Chỉ với khoảng $50, ta có thể có Amazon Echo Dot - một chiếc hộp thần kỳ cho phép ta đặt pizza, nhận thông tin dự báo thời tiết hoặc thậm chí mua những vật dụng - chỉ bằng cách đưa ra mệnh lệnh. Tương tự ta cũng có thể điều khiển hay chuyển đổi chế độ của robot chỉ bằng giọng nói. Trong đồ án này, nhóm em sử dụng giọng nói để chuyển đổi giữa hai chế độ quét bản đồ và chế đồ đi giao hành lí và nhận diện mệnh lệnh thơng qua gói Speech Recognition của Python.

Tất nhiên, thành phần đầu tiên của nhận dạng giọng nói là giọng nói. Lời nói phải được chuyển đổi từ âm thanh vật lý sang tín hiệu điện bằng micrơ, sau đó sang dữ liệu kỹ thuật số bằng bộ chuyển đổi tương tự sang kỹ thuật số. Sau khi số hóa, một số mơ hình có thể được sử dụng để chuyển âm thanh thành văn bản.

nói, khi được xem trên một khoảng thời gian đủ ngắn (ví dụ, mười mili giây), có thể gần đúng một cách hợp lý như một quá trình tĩnh — nghĩa là một quá trình trong đó các thuộc tính thống kê khơng thay đổi theo thời gian.

3.2.5.1. Mơ hình Markov ẩn

Đây là một mơ hình thống kê, thành phần của mơ hình bao gồm tập N trạng thái {Si}, các trạng dịch chuyển qua lại với nhau với một xác suất nhất định, tập xác suất di chuyển này được gọi là ma trận dịch chuyển trang thái A = [aij]. Mơ hình hoạt động khi cho chuỗi dữ liệu đầu vào O = [o1, O2, ot, . . OT] gọi là chuỗi quan sát, đây là dữ liệu trích rút từ tiếng nói

cần nhận dạng trong ứng dụng nhận dạng tiếng nói. Mỗi quan sát ot có một xác xuất xuất hiện trên mỗi trạng thái Si, tập hợp các xác xuât này gọi là phân phối xác xuất của quan sát = { ( )} =1. Ngồi ra cịn có tập = { } =1 là xác suất quan sát đầu tiên O1 tại trạng thái i. Tập =

{S, A, B, } là các tham số của HMM. Khi có chuỗi quan sát được đưa vào mơ hình, từ đầu ra ở các trạng thái sẽ rút ra được các tham số ẩn

trong chuỗi quan sát (Juang and L.R. Rabiner, 1991). Hình dưới là một ví dụ HMM 5 trạng thái.

Hình 3.49: HMM 5 trạng thái – [10]

Tiếng nói là một dạng sóng âm thanh dùng để giao tiếp của con người. Để có thể lưu trữ, xử lý, phân tích, nhận dạng với sự hỗ trợ của máy tính, tín hiệu tiếng nói cần phải được chuyển thành tín hiệu điện tương tự và qua bộ biến đổi ADC (Analog-to-Digital Converter) để chuyển tín hiệu tương tự thành tín hiệu số như hình dưới. Các dạng tín hiệu được miêu tả trong Hình 3.52.

Hình 3.50: Biến đổi tín hiệu âm thanh sang tín hiệu số - [10]

Hình 3.51: a) Tín hiệu tương tự b) Tín hiệu số -[10]

Tiếng nói hay âm thanh trước khi được phân tích hoặc nhận dạng cần phải được rút trích các đặc trưng của nó. Bởi vì dữ liệu tiếng nói có nhiều thơng tin nên chỉ rút trích những thơng tin cần thiết cần thiết cho việc nhận dạng. Ở đây đặc trưng được rút trích là phổ tần rời rạc và các biến đổi tần số của tín hiệu hiệu tiếng nói. Có một số phương pháp để rút trích các đặc trưng này, nổi bật là phương pháp LPC (L. R. Rabimer and R. W. Schafer, 1979) vì nó được kiểm nghiệm và đánh giá rất hiệu quả trong nhận dạng tiếng nói. Hình 3.53 mơ tả q trình rút trích đặc trưng của tín hiệu âm thanh hay tiếng nói sử dụng LPC.

Hình 3.52: Rút trích đặc trưng của tiếng nói –[10]

Mẫu tiếng nói dưới dạng số S(n) trước khi rút trích được đưa qua khối Tiền xử lý để loại bỏ các nhiễu hoặc các tín hiệu tần số cao (vượt qua tần số âm thanh) bằng các mạch lọc số, sau đó sẽ được chia thành T khung dữ liệu. Cuối cùng tín hiệu qua khối LPC với

bậc P để đạt được chuỗi đặc trưng O = [o1, o2, ot,..oT] của mẫu tiếng nói, với mỗi thành phần oi là một vector có P phần tử dưới dạng số thực

Từ đó theo [10] đã đưa ra mơ hình nhận diện giọng nói như hình 3.54:

CHƯƠNG 4: KIỂM NGHIỆM THỰC TẾ 4.1. Tổng quan về hệ thống

Hình 4.1 trình bày sơ đồ tổng quan các node được sử dụng trong hệ thống. STM32 có nhiệm vụ đọc và ghi các tín hiệu từ cảm biến siêu âm và động cơ encoders. STM32 và Jetson Nano giao tiếp với nhau qua cổng UART. Camera 3D được kết nối với Jetson Nano với nhiệm vụ truyền tải ảnh 2D. IMU cũng được nối trực tiếp với Jetson Nano cung cấp góc và gia tốc góc.

Tiếp theo Laptop và Jetson Nano được kết nối với nhau qua mạng wifi. Có hai mơđun chính chạy trên laptop là bộ lập bản đồ sử dụng Hector SLAM và bộ điều hướng sử dụng gói Navigation. Ngồi ra, cần cung cấp các hệ tọa độ trong robot cho các mô-đun kể trên.

4.2. Tạo bản đồ trong ROS

Việc lập bản đồ sẽ thực hiện bằng cách đưa robot mang lidar đi qt hành lang, sảnh, những nơi cần có robot đi qua.

Hình 4.2: Khơng gian thực

2 Hình sau cho biết về quá trình quét bản đồ:

Hình 4.4: Bản đồ sau khi đã được quét xong

4.3. Định vị robot trong bản đồ

AMCL đưa vào một bản đồ dựa trên laser có sẵn đã được thực hiện ở phần mapping, quét laser và chuyển đổi thông báo, và kết quả đầu ra đưa ra các ước tính. Khi khởi động, amcl khởi tạo bộ lọc hạt của nó theo các thơng số được cung cấp. Lưu ý rằng, do mặc định, nếu khơng có tham số nào được đặt, trạng thái bộ lọc ban đầu sẽ là một đám mây hạt (particlecloud) có kích thước vừa phải tập trung vào khoảng (0,0,0). Các thơng số cấu hình tham khảo trong mục Navigation. Các hạt sau khi được tọa từ dữ liệu cảm biến, sẽ được gán cho một trọng số nhất định, sau q trình lấy mẫu lại, các hạt có trọng số cao hơn sẽ được giữ lại, các hạt có trọng số thấp hơn sẽ bị loại trừ, từ đó hạt có trọng số lớn nhất sẽ được chỉ định là vị trí hiện tại của robot. Q trình này diễn ra liên tục mỗi khi có dữ liệu từ cảm biến trả về, robot vừa định vị bản thân, vừa cập nhật bản đồ vào cơ sở dữ liệu tại cuối quá trình.Hình dưới biểu diễn quá trình lấy mẫu hạt khi robot đang trong quy trình thiết lập bản đồ, như trong hình, các hạt là các mũi tên đỏ sau q trình lấy mẫu lại thì có xu hướng hội tụ về vị trí của robot trong thực tế, trong trường hợp này, nếu robot xoay quanh tại chỗ càng lâu, thì các hạt sẽ càng hội tụ, từ đó cho ra một tọa độ chính xác nhất. Các mũi tên đỏ sẽ là tư thế có thể của robot trong bản đồ.

Hình 4.5: Sử dụng bộ lọc AMCL định vị robot

4.4. Điều hướng xe

Gói Navigation cần được cấu hình đầy đủ để có thực hiện nhiệm vụ điều hướng tự động cho robot. Hình 4.6 mơ tả cấu hình gói Navigation được mơ tả trên trang chủ của ROS.

Hình 4.6: Cấu hình gói Navigation – [11]

Bản đồ sau khi được xây dựng sẽ tích hợp thêm Costmap 2D trước khi đưa vào sử dụng để lập kế hoạch đường đi cho robot. 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 ngồ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. Hình dưới biểu diễn bản đồ tích hợp gói phần mềm Costmap2D của ROS. Những phần lan ra là những phần không thể di chuyển vào để đảm bảo robot không xảy ra sự cố khi đến quá gần vật cản hay tường. Vùng được tô màu đen đậm tượng trưng cho vật cản hay tường của bản đồ costmap, phần xám đậm bao quanh vùng đen tượng trưng cho sự lan ra của vật cản hay tường, độ rộng của nó phụ thuộc

quanh robot hay dấu chân của robot. Để robot tránh va chạm, dấu chân của robot không được để tiếp xúc với vùng màu đen, và tâm của robot không được tiếp xúc với vùng màu xám.

Hình 4.7: Costmap 2D được tích hợp trong bản đồ

Trong q trình di chuyển đến đích thì bộ lọc AMCL sẽ hoạt động hiệu quả nhất, những mũi tên sẽ hội tụ tại vị trí robot

Hình 4.8: Robot đang di chuyển

Khi tới đích thì ROS sẽ cập nhật trạng thái Goal Reached và robot sẽ nằm đúng hướng và vị trí được thiết lập sẵn:

Hình 4.9: Robot khi đã tới đích

4.5. Bám đối tượng đi quét bản đồ

Xe nhận diện và bám theo màu sắc:

Hình 4.10: Xe nhận diện màu xanh vàng là màu bám theo

Trong trường hợp này, xe nhận diện màu xanh vàng là mục tiêu và bám theo, các thông số gửi từ camera về là khoảng cách và độ lệch góc và máy tính sẽ xử lí để điều khiển tốc độ động cơ.

4.6. Quét mã QR code

Người quản lí sau khi nhận hành lí sẽ điều tác động vào giao diện để khởi động chế độ qt QR

Hình 4.11: Thơng tin giao diện gửi về hệ thống

Sau đó nếu khách quét đúng mã QR gửi về máy thì hệ thống thơng báo mật khẩu chính xác và mở cửa

Hình 4.12: Qt mã chính xác

4.7. Giao diện điều khiển hệ thống

Hình 4.13: Giao diện điều khiển hệ thống

+ Load map: Cập nhật map của tâng cần di chuyển

+ Run: Khởi động hệ thống

+ Open rviz: Mở phần mềm Rviz (mơ phỏng bản đồ)

+ Room QR: Chọn phịng cần đưa đồ

+ Start QR: Gửi số phịng khi đó chế độ qt QR được kích hoạt

+ Stop QR: Tạm dừng chế độ QR

+ Current Position: vị trí hiện tại

+ Status: Trạng thái

4.8. Vận chuyển hành lí đa tầng

Nhóm đề tài xin được mơ phỏng với nhiệm vụ vận chuyển hàng lí từ sảnh lên các tầng cao thơng qua hệ thống thang máy.

Hình 4.14: Tịa nhà mơ phỏng

Xe và thang máy sẽ được kết nối thông qua giao tiếp Roserial. Dưới đây là khi xe hàng đến thì tháng máy sẽ tự động mở cửa.

Hình 4.15: Thang máy mở cửa khi xe hàng đến

Hình 4.16: Xe di chuyển vào thang máy trong Rviz

Hình 4.17: Thang máy vận chuyển xe lên tầng kế tiếp

Khi lên đến tầng chỉ định, thang máy sẽ mở cửa và xe bắt đầu di chuyển ra:

Hình 4.18: Thang máy mở cửa để xe di chuyên ra ngồi

Hình 4.19: Xe di chuyển đến phịng đặt tọa độ sẵn

CHƯƠNG 5: 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 tố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.

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 Q, “Ứ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

Một phần của tài liệu ĐỒ án tốt NGHIỆP đề tài XE tự HÀNH vận CHUYỂN HÀNH lí đa TẦNG (Trang 115)

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

(138 trang)
w