ROS2の環境を構築する その1(Windows)

はじめに

 今回はROS2の環境構築です。何度か挑戦して諦めていたのですが、今度こそちゃんと動かせるようにしてみます。

 つい最近参加していたROS Japan UGでは、ROS1からROS2に移行するのは大変という話を聞きました。ROS2から始めたほうがすんなり使えるそうです。私もROS2から始めてみます。

▼こちらのイベントに参加していました。

https://rosjp.connpass.com/event/304753/

 ROS2に関する書籍はいくつか出版されているのですが、環境構築の方法については古いことがあるらしいです。今回は公式ドキュメントに沿って環境を構築していきます。

環境を構築する

 Windows 10のみサポートしているそうです。

▼ドキュメントはこちら

https://docs.ros.org/en/iron/Installation/Windows-Install-Binary.html

▼はじめに古い方のドキュメントを読んでしまっていました。こちらは公式ではサポートされていません。でも検索して最初に見つかるのがこのドキュメントだと思います。

https://docs.ros.org/en/dashing/Installation/Windows-Install-Binary.html#

chocolateyのインストール

▼インストール方法についてはこちら

https://chocolatey.org/install#individual

 PowerShellで実行するコマンドがあります。

▼コマンドはこちら

▼実行してみると、以下のエラーが出ました。

 C:\ProgramData\chocolateyにすでにchocolateyのフォルダがありました。一旦削除して、もう一度実行しました。

▼すると、次のエラーが出ました。

 管理者権限が無いと実行できないようです。VS CodeのターミナルのPowerShellで実行していたのですが、改めてPowerShellを管理者として実行しました。

▼スタートメニューのWindows PowerShellを右クリックすると、選択できます。

 この後も管理者権限でコマンドを実行しています。

 さらにPythonとVisual C++ Redistributablesをインストールしました。

Open SSLのインストール

▼ダウンロードはこちらから

https://slproweb.com/products/Win32OpenSSL.html

 Win64 OpenSSL v3.2.1のexeファイルをダウンロードしました。実行してみると、これもすでにフォルダがあったみたいです。改めてインストールしました。

▼setxで環境変数を設定しておきます。

Visual Studioのインストール

▼ダウンロードはこちらから

https://visualstudio.microsoft.com/ja/downloads/

 Visual Studio 2019のDesktop development with C++が必要です。既にインストールしていたので、インストーラを起動して確認しておきました。

▼インストーラの「変更」を選択すると、設定を確認できます。

▼C++によるデスクトップ開発が既にインストールされている状態です。

Open CVのインストール

▼こちらのリンクをクリックすると、ダウンロードが始まります。

https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.6-vc16.VS2019.zip

 ダウンロードしたファイルを解凍後、Cドライブ直下に移動しておきます。

▼移動した状態

▼環境変数を設定しておきます。

dependenciesのインストール

▼cmakeをインストールします。

▼こちらのページから、必要なパッケージをダウンロードします。

https://github.com/ros2/choco-packages/releases/tag/2022-03-15

▼必要なパッケージはこちら

  • asio.1.12.1.nupkg
  • bullet.3.17.nupkg
  • cunit.2.1.3.nupkg
  • eigen-3.3.4.nupkg
  • tinyxml-usestl.2.6.2.nupkg
  • tinyxml2.6.0.0.nupkg

▼ダウンロードしたパッケージをインストールします。「<PATH\TO\DOWNLOADS\>」の部分は、環境に合わせてください。

 私の場合はユーザー名がmgs_1で、C:\Users\mgs_1\Downloadsにしました。

▼ちなみに、パッケージが足りていないとエラーが出ました。

▼さらにインストールします。pipをアップグレードしないとエラーが出ました。

xmllintのインストール

▼ダウンロードページはこちら

https://www.zlatkovic.com/pub/libxml/64bit/

 libxml2-2.9.3-win32-x86_64.7zをダウンロードしました。推奨されている通りCドライブ直下にxmllintフォルダを作成して、そこで解凍しました。

▼解凍後のフォルダはこちら

 「Add C:\xmllint\bin to the PATH」とのことだったので、環境変数のPathに、C:\xmllint\binを追加しました。

Qt5のインストール

 推奨されていた5.12.x Offline Installersからインストールしました。かなり時間がかかりました。

▼インストール後、環境変数を設定しました。

 rqt_graphを使う場合はGraphvizが必要とのことだったので、これもインストールしておきます。ノード間通信に関するものだそうです。

▼graphviz-9.0.0 (64-bit) EXE installerをダウンロードしました。

https://graphviz.org/download/

 インストーラに環境変数の追加について聞かれるので、追加しておきました。

ROS2のインストール

▼ダウンロードはこちらから

https://github.com/ros2/ros2/releases

 今回はros2-iron-20240209-windows-release-amd64.zipをダウンロードしました。

▼C:\dev\ros2_ironフォルダに配置しました。

 セットアップをするのに call C:\dev\ros2_iron\local_setup.bat を実行するように書かれていました。しかし、callが定義されていないというエラーが出ていました。

▼callをつけずにbatファイルを実行すると、以下のエラーが出ました。

 ps1ファイルを実行してから、ros2コマンドを実行するとうまくいきました。

▼こちらのコマンドだとうまくいきました。

▼Hello WorldがPublishされています!

 なお新しくPowerShellを開くと、setupを実行しなければros2が定義されていない状態になっていました。

▼talkerを起動した状態で、別のPowerShellでlistenerも起動してみました。

▼talkerのメッセージを受信しています!

最後に

 目次を見ると、インストールするものが多いですね。バージョン依存が心配になります。

 ひとまずInstallationのページはこれでOKかなと思います。まだ簡単なサンプルしか実行していないので、次はチュートリアルを試してみます。

▼チュートリアルのページはこちら

https://docs.ros.org/en/iron/Tutorials.html

 Raspberry Piにも環境を構築したいところです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です