Đã có cơ hội tiếp xúc với dự án mã nguồn mở ROS, chỉ cần tuân theo hướng dẫn của tác giả, bạn có thể dễ dàng thiết lập môi trường phát triển với hiệu ứng 3D, rất thú vị. Mời mọi người cùng tham khảo.
- ROS là gì?
ROS (Robot Operating System, gọi tắt là "ROS") là kiến trúc phần mềm linh hoạt để viết chương trình phần mềm robot, là hệ điều hành nguồn mở cấp cao. ROS ban đầu được phát triển từ các dự án STanford Artificial Intelligence Robot (STAIR) và Personal Robotics (PR) tại Đại học Stanford.
Hệ thống cung cấp các dịch vụ tương tự hệ điều hành, bao gồm trừu tượng phần cứng, điều khiển thiết bị cấp thấp, thực hiện hàm thường dùng, truyền thông giữa tiến trình, và quản lý gói. Đồng thời cung cấp công cụ và thư viện cần thiết để thu thập, biên dịch, lập trình, và chạy mã trên nhiều máy tính.
Người thiết kế ROS mô tả ROS như "ROS = Hệ thống dẫn nước + Công cụ + Khả năng + Hệ sinh thái", tức là tập hợp cơ chế giao tiếp, gói công cụ, kỹ năng cấp cao cho robot và hệ sinh thái robot.
- Cài đặt ROS
ROS Kinetic hỗ trợ các gói Debian cho Wily (Ubuntu 15.10), Xenial (Ubuntu 16.04) và Jessie (Debian 8).
Hướng dẫn cài đặt Ubuntu 16.04 xin tham khảo bài viết "Môi trường Linux - Cài đặt Ubuntu 16.04".
1.1 Cấu hình kho phần mềm Ubuntu
Thiết lập kho lưu trữ (repositories) của Ubuntu để kích hoạt các kho "restricted", "universe" và "multiverse". Bạn có thể thực hiện theo hướng dẫn kho phần mềm Ubuntu.
1.2 Thiết lập sources.list
Cấu hình máy tính để cài đặt phần mềm từ packages.ros.org.
Mở terminal, nhập lệnh sau:
sudo bash -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-packages.list'
<br></br>
Nếu tốc độ tải chậm, nên chọn một kho镜像 gần nhất thay thế lệnh trên. Ví dụ, Đại học Tsinghua:
sudo bash -c 'source /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-packages.list'
<br></br>
Nếu vẫn gặp vấn đề kết nối, hãy thử thay đổi nguồn apt của Ubuntu (không phải kho ROS).
1.3 Thiết lập khóa
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
<br></br>
Nếu không thể kết nối đến máy chủ khóa, thử thay thế hkp://keyserver.ubuntu.com:80 bằng hkp://pgp.mit.edu:80.
Bạn cũng có thể sử dụng lệnh curl thay cho apt-key, điều này hữu ích khi sử dụng máy chủ proxy:
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
<br></br>
1.4 Cài đặt
Trước tiên, đảm bảo chỉ mục gói Debian được cập nhật:
sudo apt-get update
<br></br>
Trong ROS có rất nhiều thư viện và công cụ. Chúng tôi cung cấp cấu hình mặc định để bắt đầu. Bạn cũng có thể cài đặt riêng lẻ các gói ROS.
Nếu gặp sự cố trong các bước trên, hãy sử dụng kho ros-shadow-fixed thay vì những kho đã nêu.
Phiên bản đầy đủ cho desktop: (được khuyến khích) bao gồm ROS, rqt, rviz, thư viện robot phổ biến, bộ mô phỏng 2D/3D, định vị và cảm nhận 2D/3D
sudo apt-get install ros-kinetic-desktop-full
<br></br>
Quá trình thực tế có thể gặp lỗi, hãy thử nhiều lần.
1.5 Khởi động rosdep
Trước khi sử dụng ROS, bạn cần khởi động rosdep. Công cụ này giúp cài đặt các phụ thuộc hệ thống khi biên dịch mã nguồn, đồng thời là công cụ cần thiết cho một số thành phần cốt lõi của ROS.
sudo rosdep init
<br></br>
Tuy nhiên, việc khởi động thường thất bại, giải pháp:
sudo su
sudo gedit /etc/hosts
<br></br>
Thêm nội dung sau vào hosts và lưu lại, sau đó tiếp tục thực hiện rosdep update
199.232.28.133 raw.githubusercontent.com
151.101.228.133 raw.github.com
<br></br>
Thực hiện sudo rosdep init.
1.6 Cập nhật rosdep
Bước này có thể bỏ qua, nếu cần cập nhật rosdep, thực hiện lệnh sau:
rosdep update
<br></br>
Do máy chủ không ổn định, thường cần thử nhiều lần,
hoặc tải xuống tệp cập nhật tương ứng UAV_ROS.tar, sao chép vào Ubuntu, sau đó sao chép vào thư mục /etc/ros/rosdep/
cd ~/ros
sudo cp * /etc/ros/rosdep/
<br></br>
- Biên dịch
1. Tải xuống gói giải nén demo hw_1 và giải nén
tar zxvf hw_1.tar
<br></br>
2. Tạo không gian làm việc
Nhấn Ctrl+alt+t, mở terminal, sao chép và thực hiện từng lệnh sau
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
<br></br>
Sau đó sao chép ba thư mục trong hw_1/src vào đường dẫn /catkin_ws/src:
cp ~/hw_1/src/* ~/catkin_ws/src -r
cd ~/catkin_ws/src
<br></br>
Tiếp tục thực hiện lệnh trong terminal:
catkin_init_workspace
cd ~/catkin_ws
catkin_make
<br></br>
Thành công!
Khởi tạo biến môi trường:
source devel/setup.bash
<br></br>
3. Mở rviz
Trong terminal thực hiện lệnh
roscore
<br></br>
Ctrl+shift+t, mở terminal mới, thực hiện lệnh sau
rviz
<br></br>
Hiển thị giao diện khởi động rviz
Giao diện cuối cùng như sau:
4. Mở tệp cấu hình rviz
Nhấp chuột vào góc trên bên trái, chọn "Mở cấu hình" (open Config),
Đường dẫn tệp cấu hình là:
~/catkin_ws/src/grid_path_searcher/launch/rviz_config/demo.rviz
<br></br>
Chọn open, mở hộp thoại sau:
Nhấp save, hiển thị màn hình như sau, lúc này chưa chạy chương trình nên bản đồ chưa được khởi tạo, không thấy điểm mây 3D.
5. Chạy chương trình, tải bản đồ
Ctrl+shift+t, mở terminal mới, thực hiện lệnh sau
cd ~/catkin_ws
source devel/setup.bash
roslaunch grid_path_searcher demo.launch
<br></br>
Chuyển sang rviz, bạn sẽ thấy chương trình tự động tải bản đồ điểm mây
Thành công!
Tập tin cài đặt UAV_ROS.tar và hw_1.tar được đề cập trong bài viết, theo dõi公众号: một miệng Linux, trả lời "ros" ở phần后台 để nhận được.