準備とインストール(Ros4Win)
Simple Wiki Based Contents Management System
関心分野 >> Ros4Winのインストール >> 準備とインストール(Ros4Win)

準備とインストール(Ros4Win)

USBメモリにROS for Windows(Ros4Win)をインストールして使う場合には、Windows10が動作するPCと8GB以上のUSBメモリが必要になります。また、開発環境を動作させるためには、Visual Studio 2017 CommunityにVisual C++をインストールしておく必要があります。
  • ''準備するもの''
    • Windows10が動作するPC(インターネットにアクセスで起用にしておいて下さい)
    • Visual Studio 2017 Community + Visual C++
    • 8GB以上のUSBメモリ(高速な読み書きができるものが望ましい)

Ros4Winのインストール

簡易パッケージマネージャー rpt

現在のRos4Winでは、rptという簡易パッケージマネージャーを用いてインストールを行います。
このコマンドは、python3で実装しており、パッケージリポジトリのサーバーと連携動作し、パッケージのダウンロード、インストール、アンインストールを行うことができます。
Ros4Winをインストールするには、最初に、インストールドライブにrptをダウンロードします。Dドライブにインストールする場合には、下記を実行します。
 > cd /d D:\ 
 > git clone https://github.com/haraisao/rpt
次に、rptのディレクトリに移動し、パッケージリストをアップデートします。
 > cd rpt
 > rpt update
この操作後、カレントディレクトリに、"__pkg__/pkgs.yaml" が生成されていれば、アップデートは成功です。
次に、Ros4Winのインストールを行います。最初にインストールする場合には、Ros4Winでは、メタパッケージのros_baseまたはdesktopを指定してください。下のコマンドを実行するとリポジトリから必要なパッケージをダウンロードして、インストールを行います。
 > rpt install ros_base [or desktop]
最後に、Ros4Winのセットアップスクリプトとcmake, clinkなどのツールのインストールを行います。
 > rpt install ros_setup
以上で、Ros4Winのインストールは終了です。
/opt/start_ros.bat を実行すれば、環境設定を行ったclinkが起動することを確認してください。

Ros4WinをインストールするUSBメモリについて

Ros4Winでは、非常に多くのパッケージのダウンロードとインストールが行われます。そのため、USBメモリへのインストール時には、データの書き込みが非常に多くなり多大な時間がかかる場合があります。したがって、Ros4WinをインストールするUSBメモリは、比較的高速のものを推奨いたします。確認したところSanDisk社製のエクストリームプロ(128GBで6000円程度)という製品がお勧めなのですが、同社のクルーザーフィットという製品(64GBで1500円程度)でも動作には支障がないと思います。

Ros4Winのセットアップ

Ros4Winのcmakeファイルやpythonスクリプトには、絶対パスが記入されているものが非常に多くあります。USBメモリ上にあるRos4Winを利用するには、このドライブ名を現在のドライブ名に変更する必要があります。
Ros4Winでは、各ファイルのドライブ名を一括変換を行うためのバッチファイル (resetRosEnv.bat) を用意していますので、初めて利用される場合およびドライブ名が変更になった場合には、必ず実行してください。
以上でRos4Winのインストールは終了です。次は、ROSでプログラムを作成、実行するための環境設定に進みます。

rptについて

オフィシャルのROSのインストールでは、Linux上ではaptコマンドを使い、Windows上では Chocolateyを使うことが推奨されているのですが、Chocolateyでは、USBメモリへのアプリケーションのインストールには、正常に動作しない場合があります。
そこで、インストールしたファイルやリポジトリ上のパッケージ管理を行う簡易パッケージ管理ツール rpt を用意しています。このツールは、リポジトリ側のCGIとクライアント側のrptコマンド(pythonスクリプト)が連携して動作しています。
このパッケージ管理には、ROSのパッケージ情報が記載されている package.xml を使用して、各パッケージの依存関係や必要なライブラリの検出を行っています。また、インストールしたファイルの情報は、"/opt/_pkgmgr/ros4win.db"に記載され、パッケージのアップデートや削除のために使用しています。
リポジトリ上のパッケージ情報に関しては、rptコマンドを実行したディレクトリの下にある "__pkg__/pkgs.yaml" に記載されており、インストール可能なパッケージの情報を検索することができます。
rptコマンドの書式は、Linuxのaptコマンドに倣っており、以下の書式で実行します。
  > rpt cmd [arg1, arg2,...]
rptで使用する主なコマンド cmd は、以下の通りです。
update
リポジトリのパケージリストのアップデートを行い、現在インストールしているRos4Winのパッケージで更新されているものを検索します。
upgrade
インストールされているパッケージの最新版に更新します。
install
引数で指定されたパッケージ(またはメタパッケージ)をインストールします。既にインストールされている場合には、スキップされます。
remove
引数で指定されたパッケージのファイルを削除します。
list
現在インストールされているパッケージ名の一覧を表示します。
search
引数で指定された文字列を含むパケージ名を検索し、表示します。検索には、パッケージ名とパッケージの"description"を対象としています。

rptでインストールできるサードパーティライブラリについて

ROSのパッケージを動作させるには、さまざまなライブラリが必要です。rptコマンドで、下のライブラリをインストールすることができます。
なお、ros_base, desktopなどのメタパッケージでRos4Winをインストールした場合には、依存関係のあるライブラリのみがインストールされています。もし、他のパッケージが必要な場合には、rptコマンドでインストールを行ってください。
boost
(boost_1_68_0.tgz) boostライブラリです。(version 1.68.0) C++言語における便利なライブラリ群です。
bzip2
(bzip2.tgz) ファイルの圧縮のためのライブラリです。
clink
(clink.tgz) コマンドプロンプトの拡張です。引数の補完などができます。(一部ですが)
cmake
(cmake-3.13.1-win64-x64.tgz) cmake 3.13.1です。
log4cxx
(log4cxx.tgz) ログ記録のためのライブラリです。
lz4
(lz4.tgz) データ圧縮ライブラリです。
python
(python.tgz) Python3.7.1の実行環境です。
python-argparse
(python-argparse.tgz) 引数処理モジュールです。ros_baseでインストールされます。
python-catkin-pkg
(python-catkin-pkg) ROSのcatkin-pkgです。ros_baseでインストールされます。
python-crypto
(python-crypto.tgz) Cryptoモジュールの不具合修正版です。ros_baseでインストールされます。
python-defusedxml
(python-defusedxml.tgz) XMLを扱うためのモジュールです。ros_baseでインストールされます。
python-empy
(python-empy.tgz) テンプレートテキストに Pythonの式と文を埋め込むためのモジュールです。ros_baseでインストールされます。
python-gnupg
(python-gnupg.tgz) 暗号化のモジュールです。ros_baseでインストールされます。
python-numpy
(python-numpy.tgz) 数値計算用のモジュールです。ros_baseでインストールされます。
python-rosdep
(python-rosdep.tgz) ROSパッケージの依存関係用のモジュールです。ros_baseでインストールされます。
python-rosdistro
(python-rosdistro.tgz) ROSのディストリビューション用のモジュールです。rosdist_xxxのコマンドがインストールされます。このパッケージはsetupでインストールされます。
python-rospkg
(python-rospkg.tgz) ROSパッケージを扱うためのモジュールです。ros_baseでインストールされます。
python-yaml
(python-yaml.tgz) YAMLファイルのパーザです。ros_baseでインストールされます。
python-matplotlib
(python-matplotlib.tgz) データビジュアライゼーションのためのモジュールです。desktopでインストールされます。
python-psutil
(python-psutil.tgz) Pythonでプロセスとシステムを監視するためのモジュールです。desktopでインストールされます。
python-pyplot
(python-pyplot.tgz) matplotlibパッケージ内にあるデータプロットのインターフェースモジュールです。desktopでインストールされます。
python-qt5-bindings
(python-qt5-bindings.tgz) Qt5へのインターフェースモジュールPyQt5です。 desktopでインストールされます。
python-sip
(python-sip.tgz) C++プログラムをpythonで利用できるようにするモジュールです。desktopでインストールされます。
tinyxml2
(TinyXML2.tgz) 軽量XMLパーザです。TinyXMLの後継になります。ros_baseでインストールされます。
assimp
(ASSIMP.tgz) Open Asset Import Library(モデルファイルの読込に使います)desktopでインストールされます。
eigen
(Eigen3.tgz) 行列計算のためのライブラリです。desktopでインストールされます。
grephviz
(Graphviz-2.38.tgz) ノードの構成図などのグラフ作成用のライブラリとツール群です。desktopでインストールされます。
Qt5, libqt5-core
(Qt5.tgz) Qt5.12.0の実行、開発環境です。実際に使わなそうなツールやドキュメントを省いています。desktopでインストールされます。
sdl2
(SDL2.tgz) SDL2(Simple DirectMedia Layer version 2)ライブラリです。
sdl2_image
(SDL2_image.tgz) SDL2の画像読込ののライブラリです。
tinyxml
(TinyXML.tgz) 軽量XMLパーザです。desktopでインストールされます。
bullet3
(bullet3.tgz) bullet3(Bullet Physics SDK)のOSS版をビルドしたものですが、最低限しかありません。
curl
(curl.tgz) データ転送のライブラリとツールです。curlコマンドはWindows10ではすでに標準で入っています。
flann-1.8.4
(flann-1.8.4.tgz) 高速最近傍店探索ライブラリです、
freeglut, glut
(freeglut.tgz) GLUT(OpenGL Utility Toolkit)のフリー版です、
glew, libglew-dev
(glew2.2.tgz) GLEW(OpenGL Extension Wrangler Library)です。
libogre-dev
(ogre-1.10.12.tgz) OGRE(Object-Oriented Graphics Rendering Engine)。3Dのシーンレンダリングのライブラリです。desktopでインストールされます。
ompl
(ompl-1.4.2.tgz) Open Motion Planning Libraryです。
opencv3
(opencv-3.4.5.tgz) Open Computet Visionライブラリです。desktopでインストールされます。
pcl
(pcl.tgz) Point-Cloud Libraryです。
qhull, libqhull
(qhull.tgz) 3次元モデルの凸包モデルを計算するためのライブラリです。
yaml-cpp
(yaml-cpp.tgz) YAMLデータのパーザです。desktopでインストールされます。
以上のライブラリは、
および
に置いています。
これらのライブラリは、展開するドライブは任意ですが、\localの下に展開されることを想定しています。つまり、D:ドライブにRos4Winをインストールする場合には、D:\localに展開する必要があります。

Ros4Winで用意しているROSパッケージ

現在用意しているパッケージは、サードパーティライブラリを含めて多数ありますので、手動で個々のファイルをダウンロードし、展開するのは大変だと思います。
また、インストール後のアップデートや削除などの管理は大変ですので、rqtコマンドを使ってインストールを行ってください。
パッケージのリストは、
を参照してください。