ROS入門(一)安裝並配置ROS環境

2021-10-02 19:06:31 字數 1881 閱讀 1392

在學習這些教程之前先按照 《在ubuntu中安裝ros kinetic>>這篇部落格 完成安裝。

注意:如果你是使用類似apt這樣的軟體管理器來安裝ros的,那麼安裝後這些軟體包將不具備寫入許可權,當前系統使用者比如你自己也無法對這些軟體包進行修改編輯。當你的開發涉及到ros軟體包原始碼層面的操作或者在建立乙個新的ros軟體包時,你應該是在乙個具備讀寫許可權的目錄下工作,就像在你當前系統使用者的home目錄下一樣。

在安裝ros期間,你會看到提示說需要source多個setup.*s**件中的某乙個,或者甚至提示新增這條』source』命令到你的啟動指令碼裡面。這些操作是必須的,因為ros是依賴於某種組合空間的概念,而這種概念就是通過配置指令碼環境來實現的。這可以讓針對不同版本或者不同軟體包集的開發更加容易。

如果你在查詢和使用ros軟體包方面遇到了問題,請確保你已經正確配置了指令碼環境。乙個檢查的好方法是確保你已經設定了像ros_root和ros_package_path這樣的環境變數,可以通過以下命令檢視:

$ export | grep ros
如果發現沒有配置,那這個時候你就需要』source』某些』setup.*sh』檔案了。

ros會幫你自動生成這些『setup.*sh』檔案,通過以下方式生成並儲存在不同地方:

通過類似apt的軟體包管理器安裝ros軟體包時會生成setup.*s**件。

在rosbuild workspaces中通過類似rosws的工具生成。

在編譯 或 安裝catkin 軟體包時自動生成。

如果你是通過ubuntu上的apt工具來安裝ros的,那麼你將會在』/opt/ros//'目錄中看到setup.*s**件,然後你可以執行下面的source命令:

# source /opt/ros
請使用具體的ros發行版名稱代替。

比如你安裝的是ros indigo,則上述命令改為:

$ source /opt/ros/indigo/setup.bash
在每次開啟終端時你都需要先執行上面這條命令後才能執行ros相關的命令,為了避免這一繁瑣過程,你可以事先在.bashrc檔案(初學者請注意:該檔案是在當前系統使用者的home目錄下。)中新增這條命令,這樣當你每次登入後系統已經幫你執行這些命令配置好環境。這樣做也可以方便你在同一臺計算機上安裝並隨時切換到不同版本的ros(比如fuerte和groovy)。

此外,你也可以在其它系統平台上相應的ros安裝目錄下找到這些setup.*s**件。

catkin | rosbuild

本教程使用catkin

這些操作方法只適用於ros groovy及後期版本,對於ros fuerte及早期版本請選擇rosbuild。

下面我們開始建立乙個catkin 工作空間:

$ mkdir -p ~

/catkin_ws/src

$ cd ~

/catkin_ws/src

$ cd ~

/catkin_ws/

$ catkin_make

$ source devel/setup.bash
要想保證工作空間已配置正確需確保ros_package_path環境變數包含你的工作空間目錄,採用以下命令檢視:

$ echo $ros_package_path

/home/

/catkin_ws/src:

/opt/ros/indigo/share:

/opt/ros/indigo/stacks

到此你的工作環境已經搭建完成,接下來可以繼續學習ros檔案系統教程.

ROS入門1 安裝並配置ROS環境

宣告 所有的ros教程均來自roswiki 的tutorials.相信大多數人在做ros tutorials的時候,都是知其然不知其所以然.用好幾個幫助指令能讓你邊做教程,邊學習,而不是copy paste.ros安裝教程 from roswiki 通過這條指令可以檢視ros的環境設定,比如 ros...

安裝並配置ROS環境(一)

安裝ros ubuntu 版本 14.04 在開始學習這些教程之前請先按照ros安裝說明完成安裝。注意 如果你是使用類似apt這樣的軟體管理器來安裝ros的,那麼安裝後這些軟體包將不具備寫入許可權,當前系統使用者比如你自己也無法對這些軟體包進行修改編輯。當你的開發涉及到ros軟體包原始碼層面的操作或...

ROS學習(一) ROS入門

注 主要是古月部落格學習過程中的記錄,其專欄為 ros robot operating system 是用於機械人的一種次級作業系統,可以提供硬體抽象描述 底層驅動程式管理 共用功能執行 程式間的訊息傳遞 程式發行包管理等功能。ros的設計目標是在機械人研發中提高 復用率,是一種分布式處理框架,可執...