-
Câu Hỏi
1868
-
Thành Viên
799
-
Wiki-Hỏi-Đáp.Org
Wiki Hỏi đáp trực tuyến là website chia sẻ kiến thức cộng đồng về tất cả lĩnh vực từ giáo dục, kinh tế, xã hội khoa học, đời sống, gia đình...
Liên hệ tại: Wikihoidap.org@gmail.com
Liên kết hữu ích bạn nên xem: Alo789
-
Theo dõi Wiki Hỏi đáp
-
Bản quyền tại DMCA
Ros là gì? Robot Operating System là gì? Tổng quan về hệ điều hành Robot
Robot operating system là một hệ thống phần mềm chuyên dụng để lập trình và điều khiển robot, bao gồm các công cụ để lập trình, hiển thị, tương tác trực tiếp với phần cứng, và kết nối cộng đồng robot trên toàn thế giới. Tuy nhiên, để hiểu rõ về khái niệm này, bạn thật sự cần sự hiểu biết kỹ càng. Vậy Ros là gì? Robot Operating System là gì? Tổng quan về hệ điều hành Robot .
Danh mục nội dung
Để hiểu rõ về khái niệm này, bạn thật sự cần sự hiểu biết kỹ càng. Sau đây, chúng tôi sẽ giới thiệu đến bạn đọc khái niệm Ros là gì? Robot Operating System là gì?
Ros là gì?
Như tên đầy đủ của Hệ điều hành Robot cho thấy, ROS là một hệ điều hành dành cho robot. Cũng giống như các hệ điều hành cho PC, máy chủ hoặc thiết bị độc lập, ROS là một hệ điều hành đầy đủ cho robot dịch vụ.
ROS trên thực tế là một hệ điều hành meta, một cái gì đó giữa một hệ điều hành và phần mềm trung gian.
Nó không chỉ cung cấp các dịch vụ hệ điều hành tiêu chuẩn (trừu tượng hóa phần cứng, quản lý tranh chấp, quản lý quy trình) mà còn cung cấp các chức năng cấp cao (các cuộc gọi không đồng bộ và đồng bộ, cơ sở dữ liệu tập trung, hệ thống cấu hình robot, v.v.).
Lợi ích của hệ điều hành cho robot
Trước các hệ điều hành robot, mọi nhà thiết kế robot và nhà nghiên cứu robot sẽ dành thời gian đáng kể để thiết kế phần mềm nhúng trong robot, cũng như chính phần cứng. Điều này đòi hỏi kỹ năng về kỹ thuật cơ khí, điện tử và lập trình nhúng. Thông thường, các chương trình được thiết kế theo cách này gần giống với lập trình nhúng, tương tự như điện tử, so với robot theo nghĩa nghiêm ngặt nhất, như ngày nay chúng ta có thể gặp nó trong chế tạo robot dịch vụ. Việc sử dụng lại các chương trình đáng kể, vì chúng được liên kết chặt chẽ với phần cứng cơ bản.
Ý tưởng chính của HĐH robot là tránh liên tục phát minh lại bánh xe và cung cấp các chức năng được tiêu chuẩn hóa để thực hiện trừu tượng hóa phần cứng, giống như một HĐH thông thường cho PC, do đó có tên tương tự.
Một lợi ích khác của các hệ điều hành robot như ROS là kết hợp chuyên môn từ các ngành khác nhau. Trên thực tế, thiết kế và lập trình robot có nghĩa là:
-
Quản lý phần cứng bằng cách viết trình điều khiển
-
Quản lý bộ nhớ và các quy trình
-
Quản lý đồng thời, song song và hợp nhất dữ liệu
-
Cung cấp các thuật toán lý luận trừu tượng, sử dụng tuyệt vời trí tuệ nhân tạo.
Robotics do đó đòi hỏi các bộ kỹ năng rất khác nhau, thường vượt quá phạm vi của một cá nhân.
Lịch sử của ROS
Nhiều khung robot tồn tại, được sản xuất vì một lý do cụ thể, cho mục đích tạo mẫu. ROS được dự định là mục đích chung hơn, mặc dù các nhà thiết kế của nó không tin rằng nó là hệ điều hành tối thượng có thể làm mọi thứ.
ROS được phát triển và duy trì bởi một công ty ở California, Willow Garage, được thành lập năm 2006 bởi Scott Hassan, một trong những nhân viên đầu tiên của Google, người có liên quan đến việc phát triển công nghệ công cụ tìm kiếm và cũng đứng sau Yahoo! Các nhóm (egroup, trên thực tế, đã trở thành Nhóm Yahoo!). Chủ tịch và Giám đốc điều hành của Willow Garage là Steeve Cousins, trước đây tại IBM.
Willow Garage là một công ty tư nhân duy trì liên kết chặt chẽ với Đại học Stanford, không xa Willow Garage (ở Palo Alto, California). Willow Garage mô tả chính nó như một phòng thí nghiệm nghiên cứu và ươm tạo công nghệ cho robot cá nhân, tập trung vào nghiên cứu nhiều hơn là lợi nhuận (ít nhất là ngay từ đầu).
Willow Garage phát triển cả phần mềm với ROS và phần cứng với robot PR2 và TurtleBot của họ. Mọi thứ được tạo ra đều là nguồn mở (giấy phép BSD). Ý tưởng của họ là nếu chúng ta muốn thấy robot đến nhà của mình, thì nghiên cứu cần phải được đẩy nhanh bằng cách cung cấp các cơ sở phần cứng và phần mềm vững chắc là nguồn mở. Dường như Willow Garage mong muốn xây dựng cộng đồng người máy hơn là người máy. Được phỏng vấn bởi tạp chí kinh doanh L'Expansion , Scott Hassan nói rằng các mục tiêu của anh ta giống như của Irobot, nhưng chiến lược để đạt được chúng là khác nhau. Bốn lý do để tin rằng Willow Garage sẽ thành công theo trang web singularityhub.com :
-
Họ muốn cung cấp các nguồn lực để tránh phát minh lại bánh xe, để tăng tốc độ nghiên cứu robot;
-
Họ có những khoản tiền cần thiết;
-
Họ có sự chú ý của cộng đồng nghiên cứu;
-
Họ muốn khuyến khích việc tung ra công nghệ của họ miễn phí, trước khi nghĩ đến việc kiếm tiền.
Tổ chức chung của ROS
Triết lý của ROS có thể được tóm tắt trong năm nguyên tắc chính sau đây:
-
Ngang ngang hàng
-
Dựa trên công cụ (microkernel)
-
Đa ngôn ngữ
-
Gầy
-
Nguồn mở và miễn phí.
Ngang ngang hàng
Một robot đủ phức tạp bao gồm một số máy tính hoặc bo mạch trên bo mạch được kết nối qua Ethernet, cộng với đôi khi các máy tính bên ngoài cho các nhiệm vụ tính toán chuyên sâu. Kiến trúc ngang hàng được ghép nối với hệ thống đệm và hệ thống tra cứu (dịch vụ tên gọi là 'master' trong ROS), cho phép mỗi thành phần đối thoại trực tiếp với bất kỳ hệ thống nào khác, đồng bộ hoặc không đồng bộ theo yêu cầu.
Đa ngôn ngữ
ROS là ngôn ngữ trung lập và có thể được lập trình bằng nhiều ngôn ngữ khác nhau. Đặc tả ROS hoạt động ở lớp nhắn tin. Các kết nối ngang hàng được đàm phán trong XML-RPC, tồn tại trong một số lượng lớn ngôn ngữ. Để hỗ trợ một ngôn ngữ mới, ví dụ, các lớp C ++ được bọc lại (được thực hiện cho ứng dụng khách Octave chẳng hạn) hoặc các lớp được viết cho phép tạo ra các thông điệp. Các thông báo này được mô tả bằng IDL (Ngôn ngữ định nghĩa giao diện).
Dựa trên công cụ
Thay vì môi trường thời gian chạy nguyên khối, ROS đã áp dụng thiết kế vi hạt, sử dụng một số lượng lớn các công cụ nhỏ để xây dựng và chạy các thành phần ROS khác nhau. Khi bạn trình bày các hướng dẫn của ROS, bạn sẽ học cách sử dụng một số lệnh được sử dụng để thao tác với các nút và thông báo. Mỗi lệnh trong thực tế là một thực thi. Ưu điểm của hệ thống này là một vấn đề với một thực thi không ảnh hưởng đến các hệ thống khác, điều này làm cho hệ thống mạnh mẽ và linh hoạt hơn một hệ thống dựa trên môi trường thời gian chạy tập trung.
Thin
Để chống lại sự phát triển của các thuật toán bị vướng vào mức độ thấp hơn hoặc lớn hơn với HĐH robot và do đó khó có thể sử dụng lại sau đó, các nhà phát triển ROS dự định cho các trình điều khiển và các thuật toán khác được chứa trong các tệp thực thi độc lập. Điều này đảm bảo khả năng tái sử dụng tối đa và trên hết là giữ kích thước của nó xuống. Phương pháp này làm cho ROS dễ sử dụng, sự phức tạp nằm trong các thư viện. Sự sắp xếp này cũng tạo điều kiện cho thử nghiệm đơn vị. Cuối cùng, ROS sử dụng mã (trình điều khiển và thuật toán) từ các dự án nguồn mở khác:
-
Trình mô phỏng dự án Player / Stage
-
Thư viện xử lý hình ảnh và tầm nhìn nhân tạo từ OpenCV
-
Thuật toán lập kế hoạch từ OpenRave
-
v.v.
Nguồn mở và miễn phí
Chúng tôi đã giải thích lý do cho sự lựa chọn này. Tuy nhiên, lưu ý rằng kiến trúc được chọn phù hợp với lựa chọn đó. ROS truyền dữ liệu giữa các mô-đun bằng cách sử dụng liên lạc giữa các quá trình và do đó, các mô-đun không cần phải được liên kết trong một quy trình duy nhất, do đó có thể sử dụng các giấy phép khác nhau.
Các hệ điều hành đa năng khác dành cho robot
Có một vài hệ điều hành hoặc phần mềm trung gian robot đáng được đề cập:
-
Microsoft Robotics Developer Studio : một hệ thống đa nền tảng, được tạo bởi Microsoft. Nó là miễn phí và cung cấp một công cụ mô phỏng; tuy nhiên, nó chỉ tương thích với Windows và được lập trình với ngôn ngữ .NET được quản lý (tốt nhất là C #);
-
NAOQi : hệ thống robot nguồn mở được sản xuất cho robot NAO bởi Aldebaran Robotics và được lập trình bằng C ++ hoặc Python;
-
URBI : được sản xuất bởi công ty Gostai của Pháp . URBI là một nền tảng đa nền tảng, nguồn mở tốt và cung cấp ngôn ngữ kịch bản lệnh riêng (URBIScript), mặc dù nó cũng được lập trình trong C ++.
Có nhiều hệ thống nhúng dành riêng cho một robot cụ thể, nhưng điều này đang đưa chúng ta ra khỏi mô hình đa nền tảng.