#やること
Windows10にROS2をインストールします。ただそれだけのことですがちょっと沼りました。
自分の環境に限った方法かもしれませんが一応動きましたので、次に同じ道を通る方のために2021年9月現在の近道としてメモしておきます。
バージョンなどの変更でまた一筋縄ではいかなくなるかもしれないので、未導入の方はこの機会にぜひ。
#ポイント
- python3.7系をROS2が求める場所にインストールする
- (Alternative) ROS 2 Build Installation from aka.ms/ros を利用する
- foxyが入ります
#参考
Installing ROS 2 on Windows
ROS2.0をWindows10にインストールする
こちらの記事を参考にさせていただきました。ありがとうございました。
#必要なもの
- windows10のPC(今回の例では64bit版)
STEP1 : pythonをよい感じにインストールする
▼python3.7のダウンロード
以下のpythonの公式サイトよりPython 3.7.9 - Aug. 17, 2020の、Windows x86-64 executable installerをDLします。
https://www.python.org/downloads/windows/
ダウンロードフォルダにインストーラーのpython-3.7.9-amd64.exeが現れるので開きます。
▼python3.7のインストールタイプの設定
インストール画面の下のチェックボックス2つにチェックをいれます。
□ Install Launcher for all users(recommended)
□ Add Python 3.7 to PATH
今回はpython3.7のインストール場所を設定したいので、
Customize installation をクリックします。
▼python3.7のインストール場所の設定
次の画面の下の方にインストール場所を設定できるテキストボックスが出るので、図のように「C:\Python37」と記入します。
このディレクトリを設定することで、次の方法でインストールするROS2がpythonを判断できるようになります。
画面上半分のチェックボックスはすべてチェックでよいと思います。
STEP2 : 環境変数を設定する
windows左下の検索ボックスに「システム環境変数の編集」と入力し、該当のコントロールパネルを開きます。
「詳細設定」タブの画面の下にある「環境変数」ボタンを押します。
現れた画面の下段が「システム環境変数」です。
Pathとなっているところを選んで「編集」ボタンを押します。
C:¥Python37¥Scripts¥
C:¥Python37¥
があることを確認して閉じます。
(ちなみに自分はここにあるほかのバージョンのpythonはパスを消去&アンインストールしました)
STEP3 : ROS2をインストールする
▼ https://aka.ms/ros project の力をお借りする
https://docs.ros.org/en/dashing/Installation/Windows-Install-Binary.html
のサイトを見てそのままインストールすればよいわけですが、大事なのはサイトの下の方にある(Alternative) ROS 2 Build Installation from aka.ms/rosという方法を使うことです。
コマンドプロンプトを管理者権限で開いて、一行ずつ実行していけばOKです。
(うっかりUninstallまで実行しないようにお気を付けください。それはアンインストールです。)
STEP4 : ROS2のデモノードを試す
▼1つめのROS2ターミナルを開く
コマンドプロンプトを管理者権限ではない通常の方法で開きます。
そしてそのコマンドプロンプトのウィンドウに対してROS2の起動設定を行います。
call C:\opt\ros\foxy\x64\local_setup.bat
と入力します。2021年9月の時点では「foxy」がインストールされるはずですが、このバージョンが変更になっている場合は差し替えれば動くかもしれません。
参考サイトの事例では一つ古い「dashing」になっています。
次に、同じコマンドプロンプトウィンドウに
ros2 run demo_nodes_cpp talker
と入力します。
talkerがPublishingを出力し、
[INFO] [xxxxxxxxxx.xxxxxxxxx] [talker]: Publishing: 'Hello World: 1'
といった文字が画面に流れ始めます。
▼2つめのROS2ターミナルを開く
新しいコマンドプロンプトを管理者権限ではない通常の方法で開きます。
先ほどと同じくROS2の起動設定を行います。
call C:\opt\ros\foxy\x64\local_setup.bat
と入力します。
次に、同じコマンドプロンプトウィンドウに
ros2 run demo_nodes_py listener
と入力します。
listenerがtopicを受信し、
[INFO] [xxxxxxxxxx.xxxxxxxxx][listener]: I heard: [Hello World: xx]
といった文字が画面に流れ始めます。
ほかのものが動くかどうかはこれから
ubuntuに切り替えずにwindowsのままROS2が動いてくれるなら、普段の作業の片手間にROS2を試せてとても便利ですよね。
ほかのROS2アプリケーションが簡単快適に動くかどうかはまだ試していません。
・・・とここまで書いてから、WSLでROSを動かした方がいいのではないかと気づきました。
以下はWSL2を使ってROS2を導入する方法です。