So sánh giữa ROS và ROS2

Một phần của tài liệu Robot tự vận hành (Trang 27 - 29)

II. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.2. Robot dò đường trên nền tảng ROS2

2.2.4. So sánh giữa ROS và ROS2

Bảng 1: So sánh ROS và ROS2

Những thay đổi ROS ROS2

Nền tảng - Thử nghiệm trên Ubuntu: trên các phiên bản Linux, OS X

- Được thử nghiệm và hỗ trợ trên Ubuntu Xenial, OS X EI Capitan, Windows 10 Ngôn ngữ - C++ - Python - C++ 03 - Python 2: chỉ có thể sử dụng một phần nhỏ trong các tệp setup.py - C++ 11, C++14 - Python 3.5 trở lên: có thể sử dụng mọi thứ trong các tệp setup.py Thiết lập mơi trường - Cần có cơng cụ để xây dựng môi trường để sử dụng.

- Môi trường được thiết lập sẵn và được tách thành các tập lệnh riêng cho mỗi package.

Phần mềm trung gian

- Định dạng tuần tự hóa các tùy chọn (giao thức truyền tải, cơ chế khám phá trung tâm).

- Triển khai giao diện đều dựa trên tiêu chuẩn DDS.

Namespaces riêng biệt trong C++

- Các tệp .msg và .srv có thể cùng tên nhưng code được tạo ra sẽ bị xung đột.

- Code được tạo ra bằng cách sử dụng Namespaces riêng để tránh xung đột.

Kiểu Time - Được khai báo trong các thư viện máy khách. Mỗi ngơn ngữ khác nhau thì cấu trúc cũng khác nhau.

- Được định nghĩa là Message tạo nên sự nhất quán giữa các ngôn ngữ.

Các thành phần trong chu kì

- Mỗi Node có nhiệm vụ và chức năng riêng.

- Mỗi Node được phân tách thành những subclass để thực hiện

15

sống chức năng của nó.

Mơ hình phân luồng

- Chỉ có thể chọn thực thi đơn luồng hoặc đa luồng.

- Có sẵn các mơ hình thực thi chi tiết và có thể thực thi đồng thời với nhau.

Đồ thị ROS - Node và Topic chỉ có thể được ánh xạ lại khi khởi động.

- Không được đặt tên Node trùng nhau.

- Node và Topic không được hỗ trợ ánh xạ lại. Mục đích là để ánh xạ khơng chỉ trong thời gian khởi động mà cịn trong thời gian thực thi.

- Được phép đặt trùng tên Node

Hỗ trợ thời gian thực

- Không hỗ trợ code xử lí thời gian thực.

- Có thể viết các Node xử lí thời gian thực khi dùng RTOS

Cho phép nhiều Node trong mỗi tiến trình

- Mỗi tiến trình chỉ được tạo 1 Node

- Có thể tạo nhiều Node trong 1 tiến trình.

Cơng cụ hỗ trợ roslaunch

- Các tệp tin roslaunch được định nghĩa bằng XML nhưng khả năng còn hạn chế.

- Các tệp tin được viết bằng Python cho phép sử dụng nhiều logic phức tạp.

Tài nguyên - Nhiều tài nguyên khác nhau (packages, messages, plugins..) được tra cứu bằng cách thu thập thông tin hệ

thống dựa trên

ROS_PACKAGE_PATH, gây ra hiệu suất kém và bộ nhớ đệm ở trong trạng thái khơng nhất qn.

- Tài ngun có thể được khai báo tại các chỉ mục (index) tại thời điểm biên dịch nào đó, sau đó được truy vấn hiệu quả trong thời gian chạy.

phân cho Windows

nguồn trên Windows. trên Chocolatey.

Một phần của tài liệu Robot tự vận hành (Trang 27 - 29)

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

(90 trang)