Udacity机器人软件工程师课程笔记(七)-ROS介绍和Turtlesim包的使用
Robotics Software engineer筆記
1.ROS簡介與虛擬機配置
(1)ROS簡介
ROS是一款機器人軟件框架,即機器人操作系統(Robot Operating System)。
ROS的前身是斯坦福人工智能實驗室為了支持斯坦福智能機器人STAIR而建立的交換庭(switchyard)項目。在2007 年 ROS 在 Willow Garage 的支持下成為了一家正式實體。從 2013 年開始 開源機器人學基金會一直在維護并開發ROS。
然而更確切地說,ROS是一個元操作系統 (Meta-Operating System)。元操作系統不是一個明確定義的術語,而是一個利用應用穩序和分布式計算資源之間的虛擬化層來運用分布式計算資源來執行調度、加載、監視、錯誤處理等任務的系統。
ROS不是傳統的操作系統如Windows、Linux和Android,反而是在利用現有的操作系統。使用ROS前需要先安裝諸如Ubuntu的Linux發行版操作系統,之后再安裝 ROS,以使用進程管理系統、文件系統、用戶界面、程序實用程序 (編譯器、線程模型等) 。此外,它還以庫的形式提供了機器人應用程序所需的多數不同類型的硬件之間的數據傳輸/接收、調度和錯誤處理等功能。這個概念也被稱為中間件 (Middleware) 或軟件框架 (Software framework)。
ROS開發、管理和提供基于元操作系統的各種用途的應用功能包.并擁有一個負責分享用戶所開發的功能包的生態系統 (Ecosystem)。 如圖所示。ROS是在使用現有的 傳統操作系統的同時,通過使用硬件抽象概念來控制機器人應用程序所必需的機器人和傳感器,同時也是開發用戶的機器人應用程序的支持系統。
(2)虛擬機配置
在這里我使用的是Udacity提供的Vmware磁盤映像,使用VMware player15免費版作為虛擬機的運行ROS。
安裝步驟:
- 下載并安裝VMPlayer
- 從提供的鏈接下載壓縮包
- 解壓縮壓縮包
- 打開VMware
- 按“打開虛擬機”
- 選擇較大的.ova文件
- 等待文件導入(可能需要一些時間)
- 如果彈出錯誤,請單擊“重試”
- 安裝完成
注意:
-
這里可能會出現未開啟虛擬化錯誤,進入BIOS打開CPU虛擬化即可。
-
虛擬機的密碼是robo-nd
2. 環境設置
在開始在虛擬機中使用ROS之前,必須要檢測所有的環境變量。所以首先要獲取ROS提供的安裝腳本
source /opt/ros/kinetic/setup.bash
注意: 使用source 而不是 ./,因為這兩個命令之間有一個微妙的區別,即 source 在當前會話中執行腳本,而 ./ 將啟動一個包含當前環境副本的新會話。當 ./ 退出執行的腳本時,由它設置的所有環境變量都將丟失。
(1) 檢查環境
特殊環境變量
ROS_ROOT=/opt/ros/kinetic/share/ros
存儲核心ros包的路徑
PATH=/opt/ros/kinetic/bin:...
ROS二進制文件的路徑
ROS_DISTRO=kinetic
正在使用哪種ROS分布
PYTHONPATH=/opt/ros/kinetic/lib/python2.7/dist-packages
ROS python包的路徑,
有關上述環境變量,此處未提及的環境變量以及其他變量的更多信息,請參見 此處。
(2)自動配置環境
為了避免每次打開新的終端窗口時設置ROS環境,我們可以簡單地添加命令來將工作空間源化為我們的~/.bashrc file。這將導致文件在創建新終端會話時獲取我們的環境。
注意:
提供的VM已配置此配置,因此無需執行此步驟!
3. 運行Turtlesim
(1) 啟動主進程
在運行任何ROS節點之前,必須啟動主進程。
主進程負責:
-
為其他正在運行的節點提供命名和注冊服務
-
跟蹤所有發布者和訂閱者
-
聚合節點生成的日志信息
-
促進節點生成日志信息
要運行主進程,必須執行命令roscore
roscore
輸出如下:
(2) 運行Turtlesim節點
現在已經運行了ROS的主程序了,接下來運行其他兩個節點。
1)首先新建bash shell,在新的窗口中在turtlesim包中使用命令turtlesim_node
rosrun turtlesim turtlesim_node
2)接下來再新建bash shell 并在turtlesim包中使用命令turtle_teleop_key
rosrun turtlesim turtle_teleop_key
選中運行turtl_teleop_key的bash shell,就可以通過方向鍵控制小龜方向了。
參考
- ROS學習筆記(一):ROS簡介
- Udacity Robotics software engineer 課程
總結
以上是生活随笔為你收集整理的Udacity机器人软件工程师课程笔记(七)-ROS介绍和Turtlesim包的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Udacity机器人软件工程师课程笔记(
- 下一篇: Udacity机器人软件工程师课程笔记(