ROS on Windows Terminal

#ROS on Windows
今回紹介するのは、WSLやVM(Virtual Machine)を使うのでなく、Windows自体にROSをインストールし、かつWindows Terminalで開発をする方法です。コマンドプロンプトを開くのと同様の操作で、ROSの準備ができます。簡単かつ公式な方法なので今後はこれが主流になるのではないでしょうか。

#Windows Terminal
複数のタブで**コマンドプロンプト**や**PowerShell**、それに加えて**WSL**(Windows Subsystem for Linux)もできるアプリです。現在はプレビュー版ですが、もうすぐ正式版がでるとのこと。申し訳ないですが、詳細は他を当たってください。はやめに対応しておきたいですね。Windows Storeでインストールできます。

#ROS for Windowsをインストールする
基本的には[公式HP](https://wiki.ros.org/Installation/Windows)に従えば可能です。

#windows terminalでのROS
上で述べたように今後主流になりそうなWindows Terminalで今後主流になりそうなROS for Windowsを快適にやるための必須の設定をしていきます。

公式HPにもoptionalとしての記述があるのですが、あまり詳しくは書かれていなかったので、ここで補足しておきたいと思います。初心者なので、間違っていたら優しく指摘してください。

## setting.json
Windows Terminalを**管理者として実行**し、＋からsettingを選びます。
そうすると、setting.jsonが開くので、以下のコードをコピペしてください。

```json
    "$schema": "https://aka.ms/terminal-profiles-schema",

    "defaultProfile": "{08ee72fc-9c2b-4998-8f92-d490220c3969}",

    "profiles" : 
    [
        {
            "acrylicOpacity" : 0.5,
            "background" : "#012456",
            "closeOnExit" : true,
            "colorScheme" : "Campbell",
            "commandline" : "C:\\Windows\\System32\\cmd.exe /k \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Common7\\Tools\\VsDevCmd.bat\" -arch=amd64 -host_arch=amd64 && c:\\opt\\ros\\melodic\\x64\\setup.bat",
            "cursorColor" : "#FFFFFF",
            "cursorShape" : "bar",
            "fontFace" : "Consolas",
            "fontSize" : 10,
            "guid" : "{xxxx}",
            "historySize" : 9001,
            "icon" : "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
            "name" : "ROS",
            "padding" : "0, 0, 0, 0",
            "snapOnInput" : true,
            "startingDirectory" : "c:\\ws",
            "useAcrylic" : true
        },
```

ここで変更すべき3点があります。guid、startingDirectory、defaultProfileです。透明度変更はacrylicOpacityを変えればできます。
### guid
guidというのは、([GUIDとは何？Weblio辞書](https://www.weblio.jp/content/GUID)より引用)
>GUIDとは、128ビットの整数値からなる、データを一意に識別するために用いられる識別子のことである。 GUIDは、時刻やMACアドレスなどを含むデータとして生成され、重複があっては困る状況で利用される。 

で、ここではcmd/powershell/wsl/...（これらをプロフィールと呼ぶ模様）などを識別するために付けているようです。ROSをするにも必要なので、ブラウザでの[GUIDジェネレータ](https://hogehoge.tk/guid/)を用いるか、PowerShellで[New-Guidと入力する](https://tech.la-fra.com/2018/06/30/post-86/)だけで出力してくれます。中かっこは必要なので、消さないでくださいね。

### startingDirectory

ROSを用いる時のデフォルトのディレクトリをここで決めます。

### defaultProfile

ROSをWindows Terminalのデフォルトプロフィールにしたい人ための設定です。元からあるGUIDを先程生成したROSのためのGUIDに書き換えてください。設定ファイルの上の方にあります。

#最速でWindows Terminalを開く（個人差あり）
最速でWindows Terminalを開く方法は2つあります。（最速とは...?)
あなたの好きな方を選んでください。

##［Windowsロゴ］キー + R から
Windows + Rを押して、wtと入力すれば、Windows Terminalが開きます。

## デスクトップにショートカットを作成
これは公式HPでの「6. Create a ROS Command Window shortcut」を基に行います。ここではコマンドプロンプトでのショートカットキー作成法だったのを、Windows Terminalに応用します。とはいっても、簡単で、

C:\Windows\System32\cmd.exe -> C:\Users\username\AppData\Local\Microsoft\WindowsApps\wt.exe

に変更するだけです。usernameのところはあなたのusernameに変えて下さい。

# ついでにWSL on Windows Terminal の設定も
WSLのホームディレクトリは/etc/passwdをいじれば[変更できます](https://it-blue-collar-dairy.com/change_home_directory_for_ubuntu/)が、
デフォルトのディレクトリがホームディレクトリに来ない場合は先程のsetting.jsonのWSLのところにstartingDirectoryを設定してやれば変更できます。

### 次は**「ROS on Windows Terminal」**についてかこうかな。