【ROS書籍】Mastering ROS for Robotics Programming——1.6.8維護ROS包

維護ROS包

大多數ROS包以開放源代碼的形式發佈,使用BSD許可。全球有活躍的開發人員正在爲ROS平臺做貢獻。在所有軟件中,維護包都是一個重要的約束,特別是開放源碼應用程序。開源軟件是由開發者社區維護和支持。如果我們想要維護和接受其他開發人員的貢獻,那麼爲我們的包創建一個版本控制系統是非常必要的。前面的包已經在GitHub上更新了,你可以查看項目代碼在https://github.com/qboticslabs/mastering_ros_demo_pkg

代碼上傳到Github後,我們可以看到將當前包發佈(release)到ROS的過程是什麼。

發佈(release)你的ROS包

在Github上創建一個ROS包之後,我們可以隨意發佈(release)我們的包。ROS提供了詳細的步驟,使用名爲bloom (http://ros-infrastructure.github.io/bloom/)的工具來發布ROS包。Bloom是一個發佈自動化工具,旨在從源項目中發佈指定平臺版本。Bloom的設計是爲了在catkin項目中發揮最大的作用。

發佈的前期準備需要做如下工作:

  • 安裝bloom工具
  • 爲當前包創建Git存儲庫
  • 爲發佈創建空的Git存儲庫

在Ubuntu系統運行如下命令安裝bloom:

$ sudo apt-get install python-bloom

爲當前包創建Git存儲庫。該存儲庫我們稱爲“上游存儲庫”。在這裏,我們已經在https://github.com/qboticslabs/mastering_ros_demo_pkg創建了一個存儲庫。

爲發佈包創建一個空的存儲庫。該存儲庫我們稱爲“release存儲庫”。我們已經創建了一個名爲“demo_pkg-release”包。該包位於:https://github.com/qboticslabs/demo_pkg-release

在滿足這些先決條件之後,我們可以開始創建包的發佈。導航到mastering_ros_demo_pkg本地存儲庫,我們將包代碼推到Git。在本地存儲庫中打開一個終端並執行以下命令:

$ catkin_generate_changelog

這個命令的目的是,它將在本地存儲庫中創建一個CHANGELOG.rst。執行此命令後,它將顯示此選項:

Continue without -all option [y/N]. 輸入y 

它將在本地存儲庫創建一個CHANGELOG.rst。

創建完日誌文件之後,我們通過提交修改來更新Git存儲庫:

$ git add -A
$ git commit -m 'Updated CHANGELOG.rst'
$ git push -u origin master

爲ROS包Release做準備

在這一步,我們將檢查包中的更新日誌、版本等。下面的命令使我們的包保持一致,並建議發佈。

這個命令應該在本地存儲庫的包中運行:

$ catkin_prepare_release

如果沒有當前版本並提交上游存儲庫中的更改,該命令將設置一個版本標記。

發佈我們的包

運行以下命令開始發佈。更改以下命令:

bloom-release --rosdistro <ros_distro> --track <ros_distro> repository_name

$ bloom-release --rosdistro indigo --track indigo mastering_ros_demo_pkg

當這個命令運行後,它將會到rosdistro(https://github.com/ros/rosdistro)包存儲庫得到包列表。在ROS中,rosdistro包包含一個索引文件,該文件包含ROS所有包的索引。當前狀態,因爲我們是第一個發佈,所以這裏並沒有我們包的索引,但我們可以添加我們包的細節到索引文件,該索引文件名爲:distributions.yaml。

以下展示的消息表示在rosdistro中沒有包的參考:

我們應該在前面的截圖中用紅色標記的終端提供發佈存儲庫。在這個情況下,URL是:https://github.com/qboticslabs/demo_pkg-release


在以上步驟中,嚮導將請求存儲庫名稱、上游存儲庫、URL等。我們可以提供這些選項,最後,將提交對ros發行版的pull請求,如下面的截圖所示::


爲這個包的pull請求可以在 https://github.com/ros/rosdistro/pull/9662 查看。

如果接受,它將會合併到indigo/distribution.yaml,該文件包含ROS包的所有索引。

以下截圖爲indigo/distribution.yaml下的索引內容:


完成該步驟後,我們可以將該包發佈並將其添加到ROS索引中。

爲ROS包創建wiki界面

ROS wiki允許用戶創建自己的主頁來展示他們的包、機器人或傳感器。ROS的官方wiki頁面是wiki.ros.org。現在,我們將爲我們的包創建一個wiki頁面。

下載示例代碼

你可以從http://www.packtpub.com下載你購買的所有Packt出版書籍的示例代碼。如果你在其他地方購買了這本書,你可以訪問http://www.packtpub.com/support並註冊,以便將這些電子郵件直接發送給你。你還可以從https://github.com/qboticslabs/mastering_ros.git下載章節代碼。

第一步是使用你的郵件地址在維基中註冊。登錄wiki.ros.org,點擊屏幕截圖中顯示的登錄按鈕:

單擊Login之後,你可以註冊,如果你已經註冊了可以直接登錄。登錄後,按下截圖中顯示的wiki頁面右側的用戶名鏈接:

單擊此鏈接後,你將獲得創建包的主頁的機會;你將得到一個帶有GUI的文本編輯器來輸入數據。下面的屏幕截圖顯示了我們爲這個演示程序包創建的頁面:


當前包的wiki界面可以在http://wiki.ros.org/qboticslabs查看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章