Jupyter+ROSでデータ分析+組み込み??ColabのFaster R-CNNを移植してみた! - えいあーるれいの技術日記 の続きです。環境構築について書きます。
Ubuntu20.04で動作確認をするため、クリーンインストールしました。使用したPCは、Odyssey Blue Mini PCです。 Celeron搭載のミニPCの性能を個人的に確認!!(ベンチマーク) - えいあーるれいの技術日記
ROS20.04を構築したので、JupyterNotebook+ROSで検証していきます。(この環境には、GPUがないので、Faster R-CNNは使いません) pic.twitter.com/NEwHwYotsi
— Ar-Ray (@Ray255Ar) 2021年1月28日
プログラムはGithubに上げています。 github.com
あまり詳しくは書きませんが、インストールの大体の流れを説明します。不足したパッケージについてはその都度インストールをしてください。
Ubuntu20.04 LTSのインストールが終わっているものとします。
いつもの
sudo apt update && sudo apt upgrade
ROS Noeticのインストールをします。 http://wiki.ros.org/noetic/Installation/Ubuntu を参考にしてください。
Jupyter-notebookのインストールをします。
sudo apt install jupyter-notebook
Pyenvのインストールをします。
- Ubuntu20.04では、デフォルトではPython3.8.5ですが、Google ColaboratoryではPython3.6.9です。(多分そのままうごきますが、)環境を揃えるためにインストールをします。Anacondaなどを使ってもいいです。
Pyenvのインストールは以下の通りのコマンドでインストールをしました。
$ sudo apt install build-essential libffi-dev libssl-dev zlib1g-dev liblzma-dev libbz2-dev libreadline-dev libsqlite3-dev $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.pyenv_init echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.pyenv_init echo 'eval "$(pyenv init -)"' >> ~/.pyenv_init sudo reboot #再起動後---------------------------- $ source ~/.pyenv_init $ pyenv install 3.6.9
source ~/.pyenv_init
でPython3.6.9を読み込むことができます。おそらく環境の切り替えもできると思いますが、まともに使うのはこれが初めてなので、そこらへんはよく分かっていません。
Python3.6.9が立ち上がれば、Pyenvの環境構築は完了です。
$ source ~/.pyenv_init $ python ## OUTPUT ---------------------------------------------------------------- ## Python 3.6.9 (default, Jan 28 2021, 12:50:15) ## [GCC 9.3.0] on linux ## Type "help", "copyright", "credits" or "license" for more information. ## ------------------------------------------------------------------------
Python3.6.9にはrospyやcv-bridgeなどがインストールされていないので、追加でインストールします。pipでインストールできます。かなり多くのパッケージがインストールされるので、pip list | grep <パッケージ名>
で絞り込んでインストールできているか確認してみてください。import <パッケージ名>
でインストール確認をしてみてもいいでしょう。
$ sudo apt install python3-pip $ pip install --upgrade pip ## Install rospy tools $ pip install --extra-index-url https://rospypi.github.io/simple cv_bridge tf2_ros ## Check your environment $ pip list | grep ros ## Output----------------------- ## gazebo-ros 2.9.1 ## rosbag 1.15.9 ## ... ## tf2-ros 0.7.5 ## ----------------------------- $ pip list | grep cv ## Output----------------------- ## cv-bridge 1.15.0 ## opencv-python 4.5.1.48 ## -------------------------------
環境構築はこれでOKです。
python3.6.9が読み込まれてるターミナル上でjupyter-notebookを開きます。$ jupyter-notebook
でブラウザで開きます。
Cell->Run All
で実行します。$ roscore
か$ roslaunch
の実行を忘れずに。
このプログラムは/camera/color/image_raw
を受信します。プログラム自体は、画像に文字を入れるだけの1行のプログラムです。
わざわざROSのプログラムをJupyer-notebookで開発する理由はありませんが、ネット上の実装を試すときには役立つと思います。
その他のプログラム
カスケード分類器で顔認識を行うプログラムを移植しています。
元(Google Colaboratoryの実装) : https://colab.research.google.com/drive/1CmZwkzrkap3nvPvUbuYy3NBZPe5jYZls
ROSについて
ROSとはRobot Operating Systemの略称で、ロボット制御に必要なパッケージや環境が揃っているオープンソースプロジェクトです。企業での産業用ロボット開発から個人のホビーロボット開発まで多くの活用例があります。
ROS関連の書籍も充実しているのでぜひチェックしてみてください。
(画像をクリックすると詳細ページに移動します) (画像をクリックすると詳細ページに移動します)