Hệ điều hành robot (ROS)

Một phần của tài liệu Nghiên cứu phát triển hệ thống định vị và dẫn đường cho robot hoạt động ở môi trường trong nhà (Trang 34)

ROS (Hệ điều hành Robot) là một khung phần mềm mã nguồn mở để phát triển người máy. Công chúng biết đến ROS khi ROS 0.4 được phát hành vào ngày 1/1/2009. Mục tiêu chính của ROS là tiêu chuẩn hóa và tái sử dụng phần mềm robot trên toàn cầu và tạo ra một cộng đồng cho các nhà phát triển robot. Hiện tại, ROS chỉ chạy trên Linux. Hệ điều hành và nó hỗ trợ các ngôn ngữ C ++, Python và Lisp. ROS cung cấp các dịch vụ hệ điều hành tiêu chuẩn như trừu tượng hóa phần cứng, điều khiển thiết bị cấp thấp, triển khai chức năng thường được sử dụng, truyền thông báo giữa các quy trình và quản lý gói. Nó dựa trên kiến trúc đồ thị trong đó quá trình xử lý diễn ra trong các nút có thể nhận, gửi và ghép kênh cảm biến, điều khiển, trạng thái, lập kế hoạch, bộ truyền động và các thông báo khác. Nói cách khác, nó kết nối phần cứng với phần mềm để tạo ra một môi trường lập trình nâng cao để điều khiển phần cứng cấp thấp.

Kiến trúc chính của ROS dựa trên các nút và mỗi nút là một quy trình độc lập. Việc sử dụng các nút mang lại một số lợi ích cho hệ thống tổng thể. Trước hết, vì mỗi nút độc lập với nhau, sự cố của một nút không có khả năng dẫn đến sự cố toàn bộ hệ thống. Thứ hai, kiến trúc của ROS cũng giúp cải thiện khả năng tái sử dụng của mã. Ví dụ, chúng tôi viết một chương trình A (nút A) cho phép robot đi đến bất cứ đâu nó muốn mà không gặp vấn đề gì. Tuy nhiên, chúng ta cần một chương trình B khác (nút B) để xử lý dữ liệu camera để robot có thể nhận biết được môi trường xung quanh. Trong ROS, giao tiếp được thực hiện bằng cách chuyển các thông điệp giữa các nút. Nói chung, các nút không biết chúng đang giao tiếp với ai. Tất cả các tin nhắn đã gửi được xuất bản cho một topic. Nếu một nút muốn nhận tin nhắn, nó phải đăng ký các topic cụ thể. Có thể có nhiều publishersvà nhiều subscribers vào một nút. Nói cách khác, chúng ta có thể nói rằng một chủ đề giống như một kênh quảng bá trong đó một nút có thể truy cập tất

cả các thông điệp. Trong trường hợp có nhiều chủ đề, một nút sẽ bỏ qua tất cả các thông báo từ các chủ đề mà họ không đăng ký.

Hình 3.7 Kiến trúc của Ros 3.2.2. Giải thuật điều khiển hệ di chuyển bánh xe đa hướng.

Để điều khiển robot di chuyển linh hoạt, ta cần giải thuật điều khiển hệ đế di chuyển bánh xe đa hướng của robot để đưa ra vận tốc cần thiết của từng bánh xe phục vụ từng hành vi di chuyển cụ thể. Hình 3.8 mô tả các tham số lắp đặt hệ đế di chuyển 3 bánh đa hướng.

Hình 3.8 Các thông số hệ đế di chuyển

Dựa vào các tham số này, ta có thể đưa ra phương trình động học của hệ như sau:

𝑣 𝑣 𝜔

=

sin (𝑎 ) sin (𝑎 ) sin (𝑎 )

−cos (𝑎 ) −cos (𝑎 ) −cos (𝑎 )

−1/𝐿 −1/𝐿 −1/𝐿 𝜔 𝜔 𝜔 = 𝑴 𝜔 𝜔 𝜔 (3.1) Phương trình động học trên với đầu vào là vận tốc góc của từng bánh xe, từ đó ta

có thể tính toán ra đầu ra là vận tốc tịnh tiến theo 2 chiều x, y và vận tốc góc 𝜔 của cả robot. Từ đó, tùy vào hành vi di chuyển của robot tiến, lùi hay xoay ta có thể tính ngược lại vận tốc của từng bánh xe với công thức sau:

𝜔 𝜔 𝜔 = 𝑴 𝟏 𝑣 𝑣 𝜔 (3.2)

Khi có yêu cầu dẫn đường từ người dùng, khối thiết lập đường đi cho robot dựa trên thuật toán Dijkstra sẽ tạo ra mảng tọa độ các điểm nằm trên đường đi từ vị trí hiện tại của robot tới điểm đích. Hình 3.9 mô tả đường đi của robot gồm tập hợp các điểm có tọa độ sát nhau. Để robot có thể đi tới đích thành công, robot cần đi theo và bám sát tất cả các điểm tọa độ nằm trên mảng tọa độ đường đi dành cho robot. Dựa trên dữ liệu là mảng tọa độ các điểm và dữ liệu tọa độ hiện tại của robot, ta có thể thiết lập phương trình chuyển động khiến robot có thể bám theo các điểm tọa độ ngay gần với robot. Ví dụ 2 điểm được thể hiện trong hình, một điểm và vị trí hiện tại của robot và một điểm là vị trí trước mặt robot, nằm trên đường đi của robot. Đường thẳng nối 2 điểm tạo với hướng hiện tại của robot một góc 𝜃, dựa vào góc 𝜃 và khoảng cách giữa hai điểm, ta có thể tính toán được vận tốc tịnh tiến 𝑉 và vận tốc góc 𝜔 tương ứng, và từ đó suy ra vận tốc của 3 bánh xe dựa vào công thức (3.2).

Hình 3.9 Đường đi của robot trong một quy trình

Hình 3.10 mô tả thuật toán điều khiển hệ đế di chuyển khi có yêu cầu dẫn đường từ người dùng. Vận tốc tịnh tiến và vận tốc góc lớn nhất của robot là một hằng số được đặt trước bởi người dùng. Dữ liệu đầu vào của khối là tọa độ hiện tại của robot (𝑥 , 𝑦 ) và mảng tọa độ đường đi (𝑥 , ,.. , 𝑦 , ,.. ), điều đó có nghĩa là tọa độ của robot hiện tại chính là tọa độ (𝑥 , 𝑦 ). Robot liên tục di chuyển tới điểm đích cho đến khi quãng được được tính từ tọa độ hiện tại luôn được cập nhật của robot tọa độ điểm đích nhỏ hơn 0.1 mét. Vận tốc tịnh tiến của robot được đặt cố định không đổi theo thời gian, vận tốc góc xoay của robot được tính thông qua góc 𝜃 được trình bày trước đó, robot có xu hướng quay về vị trí góc 𝜃 = 0. Công thức tính quãng đường và góc 𝜃 được trình bày qua hai công

thức 3.3 và 3.4.

(3.3) (3.4)

Hình 3.10 Thuật toán điều khiển robot bám đường đi

𝑠 = (𝑥 − 𝑥 ) + (𝑦 − 𝑦 ) 𝜃 = 𝑎𝑡𝑎𝑛2(𝑦 − 𝑦 , 𝑥 − 𝑥 ) 𝑉 = 𝑣 𝜔 = −𝜔 . 𝜃 𝑠 > 0.1 𝜔 𝜔 𝜔 = 𝑴 𝟏 𝑉 0 𝜔 𝑣 = 0.8; 𝜔 = 0.1; (𝑥 , 𝑦 ), (𝑥 , ,.. , 𝑦 , ,.. ) 𝑀 = 10; 𝑖 = 10; 𝑠 = (𝑥 − 𝑥 ) + (𝑦 − 𝑦 ) 𝑖 ! = 𝑁 𝑖+= 𝑀 𝐷𝑜𝑛𝑒 𝐹 𝑇 𝑇 𝐹

CHƯƠNG 4.KẾT QUẢ, ĐÁNH GIÁ KHẢO SÁT VÀ ỨNG DỤNG ROBOT 4.1. Tạo lập bản đồ phòng

Robot được thử nghiệm và đánh giá tại phòng trưng bày của ĐHQGHN. Phòng trưng bày có diện tích tương đối nhỏ cỡ ~50 m2 rất phù hợp với hệ thống định vị bằng sóng siêu âm với độ chính xác cao. Sàn phòng trưng bày là thảm với độ ma sát cao, phù hợp với hệ thống di chuyển của robot làm giảm thiểu tương đối độ trơn trượt cũng như rung lắc trong quá trình di chuyển. Các vật cản trong phòng trưng bày đủ cao để có trong tầm nhìn của robot tránh các điểm mù có thể dẫn đến va chạm trong quá trình hoạt động. Phòng trưng bày là địa điểm mục tiêu của robot cũng là địa điểm lý tưởng để thử nghiệm hệ thống định vị và dẫn đường.

Hình 4.1 Bản đồ được xây dựng

Kết quả thu được ở hình 4.1 là bản đồ của phòng truyền thống sử dụng phương pháp định vị trong nhà với các vị trí beacons được gắn trên bản đồ. Bản đồ sau khi được xây dựng sẽ tích hợp thêm Costmap 2D. 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. 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 vào bán kính của robot, còn đường đa giác màu xanh lá thể hiện cho đường bao 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.2 Bản đồ qua gói phân tích Costmap2D 4.2. Khảo sát độ chính xác hệ thống định vị

Hệ thống định vị cho robot sử dụng 6 beacon cố định màu xanh lá được treo trên trần nhà của phòng truyền trưng bày giúp sự truyền nhận sóng siêu âm giữa các thiết bị không bị cản trở. Thiết bị di động màu xanh dương được đặt trên thân robot và cung cấp thông tin về vị trí của robot trong phòng trưng bày. Bản đồ thu được giống với sơ đồ thực tế của phòng truyền thống. Biều đồ 1 và 2 biểu diễn dữ liệu của hệ thống định vị theo 2 trục X,Y theo thời gian khi cho robot đứng yên tại một vị trí.

Hình 4.4 Dữ liệu tọa độ theo trục Y

Kết quả cho thấy tại một số thời điểm, tín hiệu tọa độ trả về bị dao động trong khi thiết bị không di chuyển một khoảng trên dưới 20 cm. Tuy sự dao động này theo thời gian và so với tổng số lượng mẫu dữ liệu là không nhiều, tuy nhiên trong trường hợp di chuyển, những sự dao động bất thường này có thể dẫn tới hiện tượng robot di chuyển không ổn định, đôi khi có quá nhiều vật cản xung quanh có thể dẫn tới va chạm nguy hiểm. Đó là sự cần thiết của bộ lọc Kalman.

Tọa độ gốc từ thiết bị IPS sau đó được đưa qua bộ lọc Kalman mở rộng, kết hợp với các cảm biến cho ta được kết qua tốt hơn. Hình 4.5 và hình 4.6 biểu diễn kết quả của giá trị tọa độ sau khi sử dụng bộ lọc EKF.

Hình 4.6 Kết quả phóng to tọa độ của robot qua bộ lọc Kalman Filter

Dữ liệu định vị, sau khi qua bộ lọc Kalman mở rộng đã cho những kết quả tốt. Đường màu đỏ trong biểu đồ trên là dữ liệu tọa độ gốc trả về từ IPS, còn đường màu xanh là dữ liệu sau khi đã được lọc Kalman. Trong quá trình di chuyển, hệ định vị xuất hiện những gai nhọn, đó là nhiễu có thể dẫn tới hiện tượng di chuyển không ổn định. Bộ lọc Kalman đã làm phẳng đi những gai này, khiến robot chuyển động mượt mà hơn mà không ảnh hưởng tới độ chính xác của hệ định vị.

4.3. Khảo sát hệ lập kế hoạch đường đi cho robot

Sau khi có đầy đủ dữ liệu về bản đồ và định vị, khối lập kế hoạch đường đi cho robot có thể sẵn sàng tạo đường đi khi có bất cứ yêu cầu di chuyển tới đích từ phía người dùng. Hình 4.7 thể hiện đường đi màu đỏ chính là đường được tạo ra cho robot, bằng việc cung cấp tọa độ hiện tại của robot, tọa độ điểm đích và dữ liệu cảm biến, thuật toán sẽ tạo ra đường đi bằng tổ hợp n điểm tọa độ sát nhau tạo thành một đường gần như nối liền. Người dùng có thể dễ dàng truy cập đến từng phần tử trong mảng tọa độ của đường đi, từ đó điều khiển robot bám theo đường đã tạo và đi đến đích. Tốc độ tạo ra đường của thuật toán cỡ 10 Hz và đáp ứng đủ nhu cầu di chuyển của robot khi môi trường có nhiều vật cản di động. Việc di chuyển theo đường đi được tạo phụ thuộc vào dữ liệu đầu ra của nhiều thiết bị được tích hợp trên robot, chỉ một thiết bị ngừng hoạt động có thể dẫn đến đường được tạo cho robot bị sai khiến sự va chạm vật cản là điều không thể tránh khỏi. Vì vậy cần có một hệ thống dừng khẩn cấp nằm ngoài các chức năng của hệ thống điều hướng kể trên.

Robot đã tự động di chuyển theo đường màu đỏ được xác định trong khối lập kế hoạch đường đi. Bên cạnh đó, robot còn được thử nghiệm trong nhiều trường hợp khác nhau. Kết quả thu được là robot hoạt động ổn định, di chuyển theo đúng yêu cầu đặt ra.

Hình 4.7 Đường đi tạo ra trên bản đồ 2D

Hình 4.8 dưới đây thể hiện robot đang di chuyển và tránh các vật cản chuyển động trên đường đi. Các vật cản được camera chiều sâu phát hiện qua chùm tia laser, sau đó nút phân tích bản đồ đã thêm các lớp vật cản màu xám (thể hiện trong hình) vào bản đồ. Ngay lập tức, nút lập kế hoạch đường đi đã coi lớp máu xám trên bản đồ là vật cản và tạo ra đường đi mới giúp robot tránh va chạm.

Hình 4.8 Robot tránh vật cản chuyển động

Như vậy, kết quả khảo sát trên đã cho thấy được độ ổn định của hệ thống qua việc kết hợp linh hoạt các khối định vị, khối tạo lập bản đồ và khối lập kế hoạch đường đi cho robot. Hệ thống được thiết kế dưới dạng mô-đun, có thể tích hợp với nhiều hệ thống robot phục vụ nhiều mục tiêu khác nhau.

4.4. Ứng dụng Robot hướng dẫn viên trong phòng trưng bày sản phẩm

Trên cơ sở bám sát mục tiêu chính của luận văn: Nghiên cứu thiết kế hệ thống định vị và dẫn đường sử dụng cho robot trong nhà. Chế tạo vào thử nghiệm thành công Robot hướng dẫn viên thông minh trong các bảo tàng, khu trưng bày sản phẩm thì chúng ta có thể hình dung ra một hệ thống Robot thông minh có rất nhiều các khả năng xử lý và tương tác như con người. Trong đó, một chức năng tối quan trọng là Robot phải có khả năng thích nghi với môi trường hoạt động dựa trên các chức năng phát hiện, tránh vật cản, tự định vị và định tuyến tới vị trí yêu cầu sử dụng hệ thống đa cảm biến và chấp hành thông minh. Các bảo tàng, khu trưng bày luôn là một môi trường có không gian giới hạn, phạm vi hẹp, kèm theo đó là sự tương tác giữa rất nhiều yếu tố, tương tác giữa người với người, tương tác giữa người với vật. Với những phân tích kể trên, hệ thống định vị trong nhà là một sự lựa chọn tối ưu.

Mục tiêu thiết kế và chế tạo robot hướng dẫn viên thuyết minh hoạt động trong môi trường phòng truyền thống của của Đại học Quốc gia Hà Nội, diện tích rộng 50m2.

Đây là nơi trưng bày các tranh ảnh, hiện vật minh chứng về lịch sử và quá trình phát triển của Đại học Quốc gia Hà Nội. Robot phải có khả năng di chuyển thông minh trong một số địa hình thông dụng bao gồm sàn phẳng, sẽ dẫn khách tham quan tới lần lượt từng khu vực trưng bày, tương ứng với các nội dung thuyết minh đã được lưu trữ trong robot. Quá trình hoạt động của robot cũng sẽ được người dùng giám sát và điều khiển thông qua kết nối mạng LAN hoặc Internet với một trung tâm điều khiển không dây. Thông qua việc giám sát từ xa, người dùng có thể giám sát được quá trình hoạt động,

đánh giá được hiệu quả hướng dẫn và thuyết minh thông qua dữ liệu thực của robot. Bên cạnh đó, người dùng cũng có thể can thiệp kịp thời nếu như robot gặp lỗi không mong muốn.

Hình 4.9 đưa ra mô tả hệ thống tổng thể của robot hướng dẫn viên thuyết minh trong môi trường phòng truyền thống của Đại học Quốc gia Hà Nội. Robot sẽ thay thế người hướng dẫn viên, thực hiện nhiệm vụ dẫn những đoàn khách tham quan khu vực trưng bày của từng sản phẩm và thuyết minh về sản phẩm tại đó.

Hình 4.9 Mô tả hệ thống tổng thể của robot hướng dẫn viên

Việc kiểm soát vị trí của robot trong không gian là việc vô cùng quan trọng. Robot cần biết vị trí của nó ở trong phòng để có thể thuyết trình tại nơi tương ứng, bên cạnh đó, tọa độ của robot là một trong những dữ liệu đầu vào quan trong cho các thuật toán dẫn đường cho robot trong không gian. Hệ thống định vị trong nhà IPS là hệ thống có thể giúp robot định vị được vị trí và hướng đi của nó trong trường hợp này.

Khu vực hoạt động của robot sẽ được chia ra làm 14 phần liền kề, mỗi phần sẽ là một sản phẩm trưng bày khác nhau. Hình 4.10 mô tả không gian làm việc của robot

Một phần của tài liệu Nghiên cứu phát triển hệ thống định vị và dẫn đường cho robot hoạt động ở môi trường trong nhà (Trang 34)

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

(50 trang)