Robotics là một trong những mảng phát triển nhanh nhất trong giới công nghệ. Có thể bạn đã nghe hoặc nhìn thấy những ứng dụng như xe tự lái, robot hình người của Tesla hay Boston Dynamics và bắt đầu muốn tìm hiểu hay phát triển sự nghiệp về Robotics. Trong serie này mình sẽ giúp bạn làm quen với Robot Operating System (ROS) một trong những nền tảng phát triển robot phổ biến nhất hiện nay. Show Robot Operating System - ROS là một nền tảng mã nguồn mở (open-sourced) cung cấp những thư viện và công cụ để xây dựng các ứng dụng liên quan tới robot. Sau hơn 10 năm phát hành, ROS đã và đang được sử dụng rộng rãi trên toàn thế giới cả trong nghiên cứu lẫn trong công nghiệp. Dưới đây là một video ngắn tổng hợp những ứng dụng tiêu biểu của ROS vào dịp kỷ niệm 10 năm thành lập. Ai đang dùng ROS (và để làm gì)?Để giúp bạn dễ hình dung, đây là một danh sách các công ty đang dùng ROS trong nghiên cứu và phát triển sản phẩm của họ: Link tới danh sách. Như các bạn có thể thấy, nền tảng này được sử dụng trong những công ty lớn như NVIDIA, Microsoft, Apple, Bosch, v.v. tới những công ty startup như ANYbotics. Ngoài ra mình tin chắc là còn rất nhiều công ty khác không được list ra ở đây. Ở những trường đại học và viện nghiên cứu về robot, ROS là một nền tảng không thể thiếu. Vậy cụ thể thì người ta đang dùng ROS vào những việc gì? Có thể nói rằng bất cứ ứng dụng nào cần phải giao tiếp với hoặc điều khiển các sensor (cảm biến) hay actuator (thiết bị truyền động), người ta đều có thể dùng ROS. Video ở trên có nêu ra một số ứng dụng của ROS-Industrial (một version dành riêng cho công nghiệp) và bạn cũng có thể thấy sự đa dạng của những dự án này. Ngoài ra, ROS còn được dùng rất nhiều trong nghiên cứu ví dụ các lĩnh vực như xe tự hành (autonomous driving), robot nhiều chân (legged robot), robot hình người (humanoid robot), thiết bị bay không người lái (drone), v.v. ROS không phải là gì?Trong cuốn sách A Gentle Introduction to ROS, tác giả đã đề cập đến 3 điều không đúng về ROS mà mình cũng đồng ý: ROS không phải là một ngôn ngữ lập trình, ROS không phải (chỉ) là một thư viện và ROS không phải là môi trường phát triển tích hợp (Integrated Development Environment - IDE). Bạn sẽ dần hiểu rõ hơn những điểm này khi bắt đầu làm quen với ROS còn hiện tại chỉ cần nhớ rằng ROS về cơ bản là một nền tảng cung cấp cho bạn các công cụ để tạo ra ứng dụng robot. Tại sao chọn ROS?Trên trang chủ của ROS có dòng chữ "Don’t reinvent the wheel. Create something new and do it faster and better by building on ROS!" nôm na nghĩa là không cần phải mất công làm lại những cái có sẵn, ROS giúp bạn dựng lên những thứ mới nhanh và hiệu quả hơn. Ưu điểm của ROS
Nhược điểm của ROSDĩ nhiên ROS không phải là một nền tảng hoàn hảo cho mọi ứng dụng mà vẫn còn một vài hạn chế như sau:
Để giải quyết những vấn đề này, ROS 2 đã ra đời và đang trong quá trình phát triển (mình sẽ làm một series về ROS 2 sau). Bắt đầu với ROS như thế nào?Thực ra đã có rất nhiều hướng dẫn về ROS mà bạn có thể dễ dàng tìm thấy trên Google, GitHub, v.v. Loạt bài này có thể bao gồm các chủ đề tương tự nhưng mình cố gắng hết sức để giải thích và giúp bạn thực hành với các ví dụ đơng giản và thực tế. Như mình đã nói trong chương đầu tiên, sê-ri này bao gồm 5 bước chính từ việc trả lời cho câu hỏi ROS là gì, cài đặt nó như thế nào cho tới hiểu và áp dụng tất cả các khái niệm cơ bản vào thực tế. Thông qua việc vừa học vừa làm, mình hy vọng việc tìm hiểu về ROS nói riêng và robot nói chung sẽ vừa thú vị, vừa đầy thách thức đối với bạn. Sau khi trả lời xong ba câu hỏi what, why và how, mình tin bạn đã có cái nhìn tổng quan về ROS và vẫn muốn tiếp tục sê-ri này. Trong phần tiếp theo, hãy cùng bắt đầu bước quan trọng đầu tiên: Cài đặt. Tóm tắt
ROS vẫn còn nhiều bất cập như chưa dành cho hệ thống thời gian thực (real-time), yêu cầu hardware đủ mạnh và việc quản lý cũng như bảo trì vẫn chưa được tối ưu. Để giải quyết những hạn chế này, ROS 2 đang được phát triển. |