Raspberry Pi 4 を使ったROS入門　第1.5回　環境構築②　VNCとVSCodeの導入

# はじめに
この記事は研究室の学生の教育用に作成してゆきます．
現在はROS2がメジャーとなってきておりますが，まずは自習が出来るよう文献が豊富なROS1でROSの扱いに慣れてみます．
ROSは既に多くの文献があり，それだけでも自習可能ですが解説されているバージョンや環境が違い，初心者には躓きやすい内容だと思ったため，改めてまとめてみます．

前回はこちら
[Raspberry Pi 4 を使ったROS入門　第1回　環境構築①　Ubuntu20.04とROSのインストール](https://qiita.com/H-Ando-robo/items/2502043c3701e270818e)
次回はこちら
[Raspberry Pi 4 を使ったROS入門　第2回　ROSの概要とチュートリアル　turtlesm](https://qiita.com/H-Ando-robo/items/e55ca60c74bd3009fb4d)

# 動作環境
Raspberry Piを使用します．(用意できるならUbuntu入りのPCが◎)
ROSはUbuntu上で動くソフトなのですが，設定の違いによってトラブルが起きやすいので，クリーンインストールしてから始めることをお勧めします．
ROSのバージョンはUbuntuのバージョンとリンクしてます．

本記事で使用する機器とバージョン
| 使用機器 | Ubuntuバージョン | ROSバージョン |
|:------------:|:------------:|:------------:|
|Raspberry Pi 4 Model B / 8GB|20.04|Noetic Ninjemys|

※RAMが2GB，4GBだとビルドが途中で落ちることが多々ありました．
出来れば8GBが良いかもしれません．

# 1．VNCの導入
ロボットにRaspberry Piを乗せて調整，コーディングを行う場合，
大きいディスプレイもロボットに積むことは難しいですし，
直接ラズパイにキーボードとマウスをつないでいてはどうしても作業がはかどりません．
ラズパイを同じネットワーク上にあるWindowsマシンからリモート操作する方法を紹介しておきます．

※HDMI等を接続せず，このVNCのみで操作を行うとGUIの操作が行えなくなります．
ダミービデオドライバーを設定することで解決しますが今度はHDMIで映像出力が出来なくなります．
HDMIのダミープラグをつなぎ，HDMI出力をしている様に見せかける方法が一番便利です．

参考
[Ubuntu18.04でモニターレスVNC](https://rarak.jp/16022)
[ダミープラグを使ってubuntu 20.04でモニターレスVNC](https://rarak.jp/18469)


#### 1.1 Ubuntu側の設定
ディスクトップ上で右上の電源ボタンをクリックし，設定を開きます．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/b83ca739-4b31-e4aa-a9bb-4e3868ff4173.png)

共有⇒画面共有をクリックし，パスワードを要求しますにチェックを入れます．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/d681250f-7af6-9c6b-5788-111368b82f13.png)

ターミナルを開き以下のコマンドを実行します．
```
gsettings set org.gnome.Vino require-encryption false
```

下記コマンドを実行しIPアドレスを調べておきます．

```
ip addr show
```

#### 1.2 Windows側の操作

リモート操作するWindows側の設定です．下記サイトにアクセスし，Windows用のソフトをインストールします．(Macでも同様の操作が可能です)

[Download VNC Viewer | VNC® Connect](https://www.realvnc.com/en/connect/download/viewer/)

ソフトが起動したら上部のテキストボックスに，先ほど調べたIPアドレスを打ち込みます．
Continueをクリックし設定したパスワードを入力，OKをクリックしデスクトップが表示されれば成功です．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/1b37e587-32fb-6866-e494-9b30aae4d766.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/4aea6a27-f153-5c6c-772e-bb78e649ca79.png)

# 2. VSCodeの導入
ROSのプログラムは様々なエディタで作成する事が出来ますが，
個人的にはVSCodeがおすすめです．
必須というわけではありませんのでエディタにこだわりがある方は読み飛ばしていただいて結構です．

#### 2.1 VSCodeのインストール
VSCodeのダウンロードページに移動し，debファイルを入手します．
[Visual Studio Code](https://code.visualstudio.com/download)
この際，Raspberri Piの場合はARM，またはARM64をダウンロードします．
ノートPCをお使いの場合はDebian,Ubuntuという所でOKです．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/4daec5a9-dcdb-8120-0a89-f09eddb8f84a.png)

下記コマンドを実行し，ソフトウェアのインストールします．
installコマンド以降はダウンロードしたバージョンによってファイル名が変わるため，ダウンロードしたファイル名に変更してください．

```
cd Downloads/
sudo apt install ./code_1.67.2-1652812855_arm64.deb
```

ソフトが起動したら一番左のアイコンのExtensionsを選択し，以下のパックをインストールします．
(インストールが終わったらVSCodeの再起動が必要です)
・Japanese Langage pack
・Visual Studio Code Extension for ROS
・C++ Extension Pack
・Python　Extension Pack

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/8ee0e944-e014-cb5d-4f4a-69de862af04c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/fb0e16bc-152d-cc69-4eca-47cd6d15eb95.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/3b88731e-a5c1-5f0d-8082-adc348358679.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/f74297cf-9598-ad09-8742-b85cdd3c6c9e.png)

完了！

# おわりに
多忙につき不定期更新ですが，自身の為にもぼちぼち続けていきます．
(しばらく触らないとすぐ忘れる…)

# 更新履歴
2022年11月3日　公開