đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nội dung nghiên cứu, các giới hạn thông số và bố cục đồ án. Chương 2: Cơ Sở Lý Thuyết Chương này chúng ta tìm hiểu tổng quan về Robot Operating System các thuật toán điều khiển, xử lý ảnh. Chương 3: Tính Toán Và Thiết Kế Chương này giới thiệu các khối xử lý cần thiết và sơ đồ nguyên lý. Chương 4: Thi Công Hệ Thống Chương này tập trung thi công mô hình phần cứng bao gồm phần thi công mạch điện và thi công khung robot cũng như các giải thuật dò line, nhận dạng vật mốc cho máy tính, điều khiển động cơ cho Arduino.
Chương 5: Kết Quả_Nhận Xét_Đánh Giá Trình bày kết quả chạy thực tế, đánh giá kết quả thực nghiệm. Chương 6: Kết Luận Và Hướng Phát Triển Trình bày những kết quả đạt được trong luận văn, các mặt hạn chế và hướng phát triển mở rộng ứng dụng của đề tài trong thực tế. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Chương 2.1 TỔNG QUAN VỀ ROBOT [9] Cuộc cách mạng công nghiệp là những bước phát triển vượt bậc của con người, cuộc cách mạng cho phép ứng dụng rộng rãi các robot trong nhiều lĩnh vực của cuộc sống.
Yếu tố này phù hợp với nhận thức về vấn đề an toàn trong công việc, robot thay thế cho con người trong sản xuất, trong lao động, trong các nhà máy, điều đó đã góp phần vào sự xuất hiện nhu cầu sử dụng các robot. Ngày nay, trong đời sống có rất nhiều công việc do tính chất công việc nặng nhọc, môi trường làm việc khó khăn độc hại rất nguy hiểm và tác hại trực tiếp đối với con người. Một số nơi địa hình quá khó khăn để di chuyển (vùng rừng núi, sa mạc, vùng có lở núi, động đất, vùng bị cháy rừng, vùng nhiễm phóng xạ, khu vực bị khủng bố). Ở những nơi này con người rất cần tới sự hỗ trợ của robot.
Với mô hình robot đa năng có sự tuỳ biến cao, dễ lắp đặt và vận chuyển, được thiết kế và lập trình từ máy tính cá nhân, robot có thể làm việc độc lập theo chu trình được cài đặt sẵn hoặc theo sự điều khiển từ xa qua vô tuyến từ người điều khiển, tính chất và công việc cụ thể được thay đổi dễ dàng, khả năng kết nối với các thiết bị chuyên dụng linh hoạt. Robot có kích thước tương đối và làm việc được trong nhiều môi trường khắc nghiệt về thời tiết, khí hậu độc hại và nguy hiểm đối với con người. Ngoài ra, robot có thể được thiết kế cho phù hợp với các công việc mang tính chất tự động hoá cao, có thể ứng dụng vào các dây chuyền sản xuất tự động ở các nhà máy, xí nghiệp, các khu công nghiệp, khu chế xuất. Hiện nay, hầu hết các thiết bị robot và dây chuyền tự động hoá được sử dụng trong các ngành công nghiệp sản xuất và chế biến đều được nhập từ nước ngoài rất đắt tiền, trong khi nhu cầu ở nước ta đang rất cao và trong nước có khả năng chế tạo sản xuất để phù hợp với điều kiện làm việc ở Việt Nam.
Lĩnh vực thiết kế, chế tạo robot và các thiết bị điều khiển tự động rất mới mẻ và có tiềm năng rộng lớn không những ở trong nước mà còn cả trên thế giới. Việc thâm nhập, nghiên cứu và chế tạo một số mô hình điều khiển tự động như robot thông minh, robot thăm dò, robot sản xuất là một hướng cần thiết nhằm rút ngắn khoảng cách giữa khoa học công nghệ trong nước và trên thế giới trong lĩnh vực này. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4 do an CHƯƠNG 2.2 TỔNG QUAN VỀ ROS (ROBOT OPERATING SYSTEM) [10] 2.1 Giới thiệu về hệ điều hành ROS Hình 2.1 Ứng dụng hệ điều hành ROS ROS là một hệ điều hành mã nguồn mở, dùng cho các ứng dụng robot như hình 2. Về cơ bản, ROS có những đặc tính thiết yếu của một hệ điều hành như khả năng thực hiện các tác vụ (task) song song, giao tiếp, trao đổi dữ liệu với nhau giữa các tác vụ, quản lý dữ liệu.
Hơn thế nữa, để ROS có thể ứng dụng trong lĩnh vực robotics, ROS còn được phát triển riêng biệt về các thư viện, công cụ dành cho việc thu thập, xử lý, hiển thị, điều khiển. ROS có thể kết hợp, tương tác với nhiều robot framework khác như Player, YARP, Orocos, CARMEN, Orca, Moos và Microsoft Robotics Studio. Xây dựng ứng dụng robotics trên nền ROS sẽ giảm đi một lượng đáng kể các công việc lập trình, thiết lập hệ thống. Những phần này có thể tận dụng nguồn tài nguyên mã nguồn mở vô cùng phong phú của cộng đồng.
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Những tài nguyên được cung cấp từ ROS thể hiện được sức mạnh trong các lĩnh vực robotics như: - Đồ họa (Visualization) - Nhận diện vật thể (Object recognition) - Định hướng di động (Navigation) - Thao tác/thu giữ (Manipulgation/grasping) 2.2 Mô hình ROS Cấu trúc ROS gồm có ba tầng: Filesystem, Computation Graph và Community. Tầng ROS Filesystem Hình 2.2 Tầng ROS Filesystem Filesystem hình 2.2 là nguồn tài nguyên ROS được lưu trữ trên bộ nhớ hệ thống, bao gồm những thành phần như: - Packages: Gói dữ liệu là đơn vị chính trong tổ chức phần mềm của hệ điều hành ROS. Một package có thể chứa các lệnh thực thi của ROS (các nodes), một thư viện phụ thuộc ROS, tập dữ liệu, các file cấu hình, hoặc các dữ liệu cần thiết khác trong hệ thống.
- Manifests: là bảng kê khai thông tin dữ liệu của package (manifest.xml), cung cấp cơ sở dữ liệu về package đó, bao gồm điều kiện cho phép (license) và những yếu tố phụ thuộc của gói dữ liệu đó. Manifest còn chứa thông tin về đặc trưng của ngôn ngữ lập trình ví dụ như các cờ báo (flags) của trình biên dịch. BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT - Stacks: là tập hợp các packages phối hợp với nhau để thực hiện một chức năng cụ thể, chẳng hạn như “navigation stack” là tập hợp các packages dẫn hướng cho robot.
Stack còn mô tả cách thức phần mềm ROS được xây dựng và chứa thông tin về phiên bản ROS đang sử dụng. - Stack Manifests: (stack.xml) cung cấp cơ sở dữ liệu về một stack, bao điều kiện cho phép (license) và các thông số phụ thuộc vào những stack khác. - Message (msg) Types: thông tin mô tả message được lưu trữ trong my_package/msg/MyMessageType.msg, định nghĩa cấu trúc dữ liệu cho các messages được gửi trong ROS. - Service (srv) Types: thông tin mô tả các services, được lưu trữ trong my_package/srv/MyServiceType.srv, định nghĩa cấu trúc dữ liệu cho các lệnh truy cập (Request) và các phản hồi (Response) của các services trong ROS.
Tầng ROS Computation Graph “Computation Graph” (tạm gọi là lược đồ tính toán) như hình 2.3 là một mạng peer-to-peer của ROS trong đó các dữ liệu được xử lý với nhau. Computation Graph cơ bản gồm các thành phần: các nút (Nodes), Master, Parameter Server, Messages, Services, Topics và Bags. Tất cả các thành phần này đều cung cấp dữ liệu cho Graph bằng những phương thức khác nhau. Parameter Nodes Master Server ROS Computational Graph Level Topics Services Bags Messages Hình 2.3 Tầng ROS Computation Graph BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7 do an CHƯƠNG 2.
CƠ SỞ LÝ THUYẾT - Nodes: là đơn vị thực hiện các lệnh tính toán, xử lý dữ liệu. Hệ điều hành ROS được thiết kế mô-đun hoá, các mô-đun được xây dựng rất chi tiết và chuyên biệt, một hệ thống điều khiển robot thường sẽ bao gồm nhiều nodes. Ví dụ, một node điều khiển hệ thống cảm biến, một node điều khiển động cơ bánh xe, một node thực hiện việc tác vụ định vị, một node hoạch định đường đi, một node vẽ quỹ đạo của hệ thống. Mỗi node ROS được xây dựng nhờ sử dụng một ROS client library, chẳng hạn như roscpp hoặc rospy.
- Master: Các ROS Master cung cấp tên đăng ký và tra cứu đến phần còn lại của Computation Graph. Nếu không có Master, các node sẽ không thể tìm thấy nhau, trao đổi thông tin, hay gọi services đều không thực hiện được. - Parameter Server: là một phần của Master. - Messages: Các node giao tiếp với nhau thông qua các message.
Một message đơn giản là một cấu trúc dữ liệu, bao gồm các trường được định kiểu. Các kiểu dữ liệu chuẩn (như integer, floating point, boolean) và mảng (array) với kiểu chuẩn đều được hỗ trợ. Messages có thể bao gồm các cấu trúc và các mảng lồng nhau (giống như kiểu structs trong ngôn ngữ C). - Topics: Messages được định tuyến thông qua một hệ thống trao đổi (transport system), trong đó phân loại các thông điệp thành 2 dạng: publish (đưa tin) và subcribe (đăng ký nhận thông tin).
Một node gửi đi một message bằng việc đưa thông tin tới một topic (chủ đề). Tên của topic được dùng để quy định nội dung của message. Một node liên quan đến loại dữ liệu như thế nào sẽ đăng ký nhận tin từ topic tương ứng. Một topic có thể có nhiều đối tượng đưa tin (publishers) cũng như nhiều đối tượng đăng ký nhận tin (subcribers); và mỗi một node cũng có thể truyền tin nhiều topic khác nhau, cũng như có thể nhận tin từ nhiều topic.
- Services: Mô hình truyền thông theo mẫu publish/subcribe như trình bày ở trên là một mô hình rất linh hoạt, tuy vậy, đặc điểm của nó là thông tin được truyền đa đối tượng, một chiều (many-to-many, one-way) đôi khi lại không phù hợp với các trường hợp cần tương tác theo kiểu request/reply (yêu cầu/đáp ứng), kiểu tương tác này thường gặp trong các hệ thống phân phối. Do vậy, cần có BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 8 do an CHƯƠNG 2. CƠ SỞ LÝ THUYẾT thêm một thành phần nữa trong ROS Graph, đó là “services”, nhằm thực hiện được các yêu cầu tương tác theo kiểu request/reply. Services là một cặp cấu trúc thông điệp: một thông điệp để gửi yêu cầu và một thông điệp dành cho đáp ứng.
Một node cung ứng một service với một thuộc tính “name”, một client sử dụng service đó bằng cách gửi đi một thông điệp yêu cầu (request message) rồi đợi phản hồi như hình 2. Trong thư viện client của ROS, phương thức tương tác này thường được cung cấp như một hàm được gọi từ xa.4 Mô tả phương thức hoạt động của service - Bags: là một định dạng để lưu và phát lại dữ liệu từ các ROS messages. Bags là một cơ chế quan trọng để lưu trữ dữ liệu, chẳng hạn như dữ liệu cảm biến, những dữ liệu này là cần thiết để phát triển và thử nghiệm các thuật toán.