yotiky Tech Blog

とあるエンジニアの備忘録

ROS ロボットプログラミングバイブル 第2章

ROSロボットプログラミングバイブル を読み始めたのでそのまとめです。

もくじ

第2章

ROSは他のOSと同様にハードウェアを抽象化するが、既存のOS上で動作するメタOSである。
開発チームがテストターゲットにしているUbuntuを始めとするLinuxWindowsmacOSAndroidiOSなどさまざまなOS、異なるハードウェアにおいて開発に利用されている。

ロボットソフトウェアプラットフォームを比較した時のROSの特徴。

ROSの大まかな構成。

  • ClientLayer:多言語プログラミング開発を支援
  • Robotics Application:標準的なアプリケーションパッケージ
  • Robotics Application Framework:プログラム作成のためのフレームワーク
  • Communication Layer:データ通信
  • Hardware Interface Layer:ハードウェア制御
  • Software Development Layer:開発支援
  • Simulation:シミュレータ

ROSは、米国スタンフォード大学人工知能研究所の2017年STAIRプロジェクトを起源とする。
ROSは、BSDライセンスApache License 2.0の下で管理されている。

ROSは、バージョン1.0より以降、バージョン名をアルファベット順にカメに関連した名前がつけられている。(参考: Distributions - ROS Wiki

  • Indigo lgloo:藍色の圧雪ブロックで作ったドーム
  • Kinetic Kame:活動的な亀
  • Melodic Morenia:旋律的なモレニア(亀の一種)

2013年以降1年に1回、5月23日の世界カメの日に新バージョンがリリースされる。
基本的にサポート期間は2年間だが、2年に1回リリースされるUbuntu LTSに合わせてリリースされるバージョンはUbuntu LTSと同様に5年間である。そのため多くのユーザはLTSバージョンを使っている。

ROS開発チームはUbuntu LTSのバージョンに対してテストとリリースを行っているため、Ubuntu LTSまたはLinux Mintを利用するのが望ましい。