剛剛開始學習ROS,打算入機器人的坑了,參考教材是《ROS及其人開發實踐》胡春旭編著 機械工業出版社 華章科技出品。本來以為可以按照書上的步驟一步步來,但是,too young to simple啊,程序員的苦逼日子開始了,特地記錄如下。
一、幾個概念:
1、ROS:(Robot operating system),直接翻譯就是機器人操作系統,但是很坑爹的是,它根本不是個系統,他只是個編寫機器人軟件的強大框架。它含有大量的工具、豐富的庫、眾多的協議,擁有操作系統的作用,包括硬件抽象、底層驅動管理、功用功能執行、程序間消息傳遞、程序發行包管理等。能夠大大簡化機器人平台的繁雜,提高了機器人行為控制的穩定性。但是,我要說ROS叫(robot operating system framework)更加通俗易懂些。
2、ROS設計目標:
a、盡量提高機器人研發中的軟件復用率
b、框架中的每個功能模塊能夠被單獨設計、編譯、運行時松耦合方式結合
c、功能模塊都封裝於獨立的功能包或元功能包,便於社區共享與分發
d、ROS由核心通信機制、開發工具、應用功能和生態系統四個部分構成
e、為機器人開發提供了硬件抽象、底層驅動、消息傳遞、程序管理、應用原型等機制,整合了第三方工具及庫文件,便於用戶快速完成機器人應用的建立、編寫和多機整合等
3、ROS的特點:ROS的核心分布式網絡,借助靈活的通信方式,實現數據傳遞的高效性。
a、點對點的設計,進程以節點形式運行
b、多語言支持,C、C++、Python、Java及Octave和Lisp等,每個模塊可以用不同的語言實現
c、架構精簡、集成度高
d、組建化工具包豐富
e、開源且免費,BSD協議
二、安裝ROS,ROS主要支持特定版本的linux,幾乎每個版本的ROS和對應版本的linux對應,否則幾乎無法成功安裝,最新版本的ROS Melodic是2018年5月發布的,幾乎網上都是對kinetic版本的,linux選用ubuntu 18.04.2版本即可,桌面好像沒有過多要求。
本篇是在Kubuntu18.04上安裝的Melodic版本的ROS框架,就是按照官方教程一步步來就可以:
1、添加軟件源:sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2、更新軟件源:sudo apt update, sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3、基礎安裝:普通用戶最好完全安裝 sudo apt install ros-melodic-desktop-full,也可以安裝指定的包:sudo apt install ros-melodic-PACKAGE例如:sudo apt install ros-melodic-slam-gmapping
4、查找可以用的包:apt search ros-melodic
5、初始化rosdep,使用ros前,需要初始化rosdep,通過初始化rosdep完成系統組建的基本安裝與配置:sudo rosdep init,更新rosdep update
6、環境配置:echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc 更新配置文件source ~/.bashrc
7、安裝構建依賴包:sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
8、系統升級:sudo apt upgrade
三、管理環境,catkin方式創建ROS工作空間
1、下面我們開始創建一個catkin 工作空間:
$ mkdir -p ~/catkin_ws/src #創建目錄
$ cd ~/catkin_ws/src #切換到新建目錄
$ cd ~/catkin_ws/ #切換到新建目錄
$ catkin_make
#編譯它:
$ source devel/setup.bash
#加載到系統環境
$ roscore
#啟動ros環境
$ echo $ROS_PACKAGE_PATH #檢查環境變量,如果結果如:/home/municationk/catkin_ws/src:/opt/ros/melodic/share,個人可能不同,類型基本一樣就是可以了
到此,ROS工作環境已經搭建完成。