Mele PCG02 スティック型超ミニPCにROSを入れてみる

# はじめに
ロボットにROSを搭載する場合，ROSを動かすメインPCに何を使うかが問題となってきます．
手軽なのはRaspberry Piですが，画像処理やSLAMをやっていくと少々非力です．
かといってノートPCや小型のミニPCをロボットに乗せると重量や電源問題にぶつかります．

Raspberry Piのように5Vで動き，省電力かつ小型のPCは何かないかと探していたところ，
スティック型のPCを見つけました．
数年前までスティック型の小型PCと言えば，
乗っているCPUはAtomで全く使い物にならないイメージだったのですが，
安くて良さそうな物を見つけました．

こちらです．
[Mele PCG02](https://www.amazon.co.jp/%E3%83%9F%E3%83%8BPC%E5%B0%8F%E5%9E%8B%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3-Pro%E6%90%AD%E8%BC%89Celeron-%E8%BB%BD%E9%87%8F%E3%83%9F%E3%83%8B%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3-%E3%82%B3%E3%83%B3%E3%83%91%E3%82%AF%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%EF%BC%B0%EF%BC%A3-%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%80%81%E7%9C%81%E9%9B%BB%E5%8A%9B/dp/B09NPQ3TZY/ref=sr_1_4?crid=36F1N73I9TNQ7&keywords=mele%2Bpcg02&qid=1657267848&s=computers&sprefix=Mele%2Ccomputers%2C324&sr=1-4&th=1)

https://www.amazon.co.jp/%E3%83%9F%E3%83%8BPC%E5%B0%8F%E5%9E%8B%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3-Pro%E6%90%AD%E8%BC%89Celeron-%E8%BB%BD%E9%87%8F%E3%83%9F%E3%83%8B%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3-%E3%82%B3%E3%83%B3%E3%83%91%E3%82%AF%E3%83%88%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%EF%BC%B0%EF%BC%A3-%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%BC%E3%80%81%E7%9C%81%E9%9B%BB%E5%8A%9B/dp/B09NPQ3TZY/ref=sr_1_4?crid=36F1N73I9TNQ7&keywords=mele%2Bpcg02&qid=1657267848&s=computers&sprefix=Mele%2Ccomputers%2C324&sr=1-4&th=1

スペック
|メーカー  |Mele  |
|:-:|:-:|
|CPU|Intel Celeron J4125|
|クロック|2.0 GHz|
|コア|4|
|ストレージ|128GB|
|メモリ|8GB|
|重量|380g|
|電源|5V/3A|

Celeron J4125のクロックは通常2.7GHzだったと思うのですが，排熱の問題からか少し抑えてあります．
(分解してヒートシンクとファンを付けたらオーバークロックもイケソウ…)

私が買った時は2万6千円でしたが，Amazonのセール等で1万6千円程度で買えた時期もあったようです．
電源が5V/3Aとラズパイ4と同じですが，CeleronのJ4125を積んでいますので，性能は倍以上あるはずです．
メモリも8GBと申し文ありません．
何よりサイズが小さく重さもそこまで重くありません．
日頃から使うPCとしては少し非力ですが，
Ubuntuを入れて，軽くROSを動かす程度であれば十分ではないでしょうか．
というわけでROSを入れてみました．

# 開封の儀
届いた箱がこちらです．
中華製の怪しいPCかと思っていたら，思ったよりちゃんとした箱で来ました．
私は知らなかったのですが，ミニPCではそこそこ有名なメーカーみたいです．
![IMG_7102.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/a0a85e1d-41ce-303c-fb37-86d1cf49203d.jpeg)
内容物はこちら．
なんと1枚のペラペラ紙がきちんと日本語化されていました．
電源はちょっと怪しいです．
本体からオスのHDMI端子が出ているのがちょっとダサいですが，いいサイズ感です．
(ロボットに搭載した後はHDMI端子はあまり使わないので，3Dプリンタでキャップを作ろうと思います)
![IMG_7103.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/8f386d3a-b9a7-7924-5f9e-e2aee2503c1f.jpeg)

ネットの情報では電源アダプタが謎の5.3Vだったとか，USB Micro TypeBコネクタだったとか書いてありましたが，
きちんとUSB Type-Cで5V/3Aと書いてありました．

とりあえず起動してみる．
![IMG_7108.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/0ce864a9-3411-e3e2-f4ec-6ee33d66ea51.jpeg)
ネットの情報ではWindows10だった！とか書かれていましたが普通にWindows11が入っています．

Youtubeを見たり，ネットサーフィン程度は快適とは言えないですが，
普通に動きました．うーん…技術の進歩がすごい．
なんかもったいない気もしますが，
結局このPCをWindows11では使わないな...と思ったので
早速Ubuntu20.04をクリーンインストールしていきます．

# Ubuntu　20.04のインストール
もう皆さんやり方は知っている人も多いと思いますが一応書いておきます．
普通のPCへUbuntuをインストールするやり方で何も苦労しませんでした．

### 1.Ubuntu20.04のインストールイメージを下記サイトよりDL
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/bd7ea85f-d364-3195-9b94-5bbdd853ca1b.png)

http://jp.releases.ubuntu.com/focal/

### 2.ダウンロードしたISOファイルをUSBメモリに書き込み，USBメモリからUbuntuをインストールできるように準備する
RufusというソフトでISOイメージをUSBメモリに書き込みます
サイトにアクセスし，ダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/1ae3bbf5-3136-7db6-987b-717576a56131.png)

https://rufus.akeo.ie/

デバイス欄にインストール用のUSBメモリを選択し，
ブートの種類の欄でダウンロードしたイメージファイルを選択します．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/3179ddff-c3be-2e06-b8e9-a1a7209ca393.png)

### 3．作成したUSBメモリをPCに差し，起動
F7を連打しながらBIOS画面に入ります．
BIOS画面でUSBの起動順位を上げてUbuntuのインストーラーを起動します．

あとはインストーラーの指示に従って進めていきます．
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/f7d48a41-668e-0653-5cec-42879b947bf3.png)

特に苦戦することはなく，完了しました．

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/137d4679-4f7f-c666-2f7a-7ead29e9a677.png)

# ROS noeticのインストール

これもいつも通り行います．
基本的には[ROS Wiki](http://wiki.ros.org/noetic/Installation/Ubuntu)に従ってTerminalでコマンドを打ち込んでいけばインストール完了です．

### 1.packages.ros.org からのソフトウェアを受け入れるよう許可

```
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
```

### 2．鍵の設定
```
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
```

### 3．Ubuntu をアップデート
```
sudo apt update
```
### 4．インストール
```
sudo apt install ros-noetic-desktop-full
```
### 5．環境設定
```
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
```
### 6．rosinstallの準備
```
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
```
### 7．rosdepの初期化
```
sudo rosdep init
rosdep update
```
### 8.インストールの確認
```
roscore
```
以下の通り表示され，エラーが出なければ完了
```
<username>@ubuntu:~$ roscore
... logging to /home/<username>/.ros/log/3da110c6-4d4c-11eb-b763-f9ecf65ee99d/roslaunch-ubuntu-20827.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
started roslaunch server http://master:33043/
ros_comm version 1.15.9
SUMMARY
========
PARAMETERS
 * /rosdistro: noetic
 * /rosversion: 1.15.9
NODES
auto-starting new master
process[master]: started with pid [20835]
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
invalid ROS_IP (must be a valid IPv4 or IPv6 address)
ROS_MASTER_URI=http://master:11311/
setting /run_id to 3da110c6-4d4c-11eb-b763-f9ecf65ee99d
process[rosout-1]: started with pid [20845]
started core service [/rosout]
```

# バッテリーのテスト
ロボット搭載を見据えてモバイルバッテリーで動作するか確認しておきます．
地味に5V/3Aに対応したモバイルバッテリーは少ないので，
下記のモバイルバッテリーを新しく買いました．
小型ロボットに積みたいので小さめです．
この大きさで10Ahですから驚きです．
このPCがMAX 3Aの消費と考えて3時間くらいは動いてくれそうです．


[Anker PowerCore 10000 PD Redux 25W](https://www.amazon.co.jp/Anker-PowerCore-25W%EF%BC%88%E3%83%A2%E3%83%90%E3%82%A4%E3%83%AB%E3%83%90%E3%83%83%E3%83%86%E3%83%AA%E3%83%BC-Delivery%E5%AF%BE%E5%BF%9C-PSE%E6%8A%80%E8%A1%93%E5%9F%BA%E6%BA%96%E9%81%A9%E5%90%88%E3%80%91/dp/B091KLF4B1/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3VI1L5CYJ1QCD&keywords=Anker+PowerCore+10000+PD+Redux+25W&qid=1657273047&s=electronics&sprefix=anker+powercore+10000+pd+redux+25w%2Celectronics%2C146&sr=1-1)

![IMG_7105.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/9cd6e4f6-fdcb-3ed4-a2cc-8fb0d8614c3b.jpeg)
![IMG_7106.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/438020/9149d616-7c1f-5d62-f32a-fb45558a8f00.jpeg)


バッテリー側のUSB TypeAの端子とPC側のType-Cをつなぐと普通に起動しました．
急激な消費電力の上昇でどうなるかは分かりませんがとりあえず現状動いています．
どれだけバッテリーが減っているかPC上では分からないので少し不便ですね．
(研究用途としては十分そう)
余裕があったら残量を監視できるように改造していきたいです．
CPUの使用状況にもよるので何時間もつかは分かりません．
また使っていくうちに状況が分かれば報告します．

# 終わりに
今回は小型スティック型PCにUbuntuとROSを入れて動作テストを行いました．
今後小型のロボットに載せて，使用感をまたレビュー出来たらと思います．
今日はこの辺で.