2023年12月19日火曜日

OpenCVパッケージをanaconda navigatorで使うとエラーが・・・

 anaconda navigatorで普通にOpenCVパッケージをインストールし単純に下記プログラムを事項するとエラーが出た。

img = cv.imread("lena.jpg")
cv.imshow("Display window", img)
k = cv.waitKey(0) # Wait for a keystroke in the window

エラーが出て何も表示されない。
それを解決するために一度opencvをアンインストールしてターミナルから

> python -m pip install opencv-python==4.6.0.66 --force-reinstall

を実行すると問題が解決した。

【参考】

keep-loving-pythonのブログ

 


2023年12月16日土曜日

Jupyter labの初期表示ディレクトリ変更

Jupyter Notebookの環境設定について過去に投稿投稿しましたが、EV3のシミュレーションでJupyter Labを使うようになって、Jupyter Notebookの場合と同じように初期ディレクトリの変更について考えていたところ、正しくピッタリの投稿がありました。

方法はJupyter Notebookの環境設定の場合と同じで、configファイルが無い場合は、windowsではPowerShellをひらいて

jupyter-lab --generate-config

を実行するだけです。

Jupyter Notebookと同じく「.jupyterフォルダー」に「jupyter_lab_config.py」ファイルが作成されます。






2023年12月15日金曜日

anaconda navigator環境を使ってEV3の2次元シミュレーター

 

レゴマインドストームEV3をRaspberry Piから制御するためのセットをアフレルから購入し、ライントレースの状況を過去に投稿していますが、Preferred Networksさんが EV3などの機材がなくてもPC上でシミュレーターを利用して体験できるシステムを公開してくれております。

元々MindstormsをNQCやpythonなどのプログラミング言語で動かしてみたいとの思いで始めましたがしばらくお休み、 何がきっかけだったのか久しぶりに思い出し使おうとしたところすべて忘れていたので、再度ゼロから始めて備忘録のつもりで書いておきます。

Preferred Networksさんの投稿はこちらです。

環境としては、workspaceにあるサンプルプログラムをJupyter labで実行して、結果をシミュレーターで可視化する流れのようです。

書いてあることが素人の私には十分理解できませんが、取り合えず私がよく使っているanaconda navigatorの環境で実行してみたいと思います。

anaconda navigatorのインストール・使い方はWeb上に沢山あるので参考にしてください。anaconda navigatorについては賛否色々あるようですが、Pythonのパッケージを手軽に管理することができ、私のような素人は重宝しています。


1.サンプルプログラムなどをダウンロード

先のPreferred Networksさんの投稿画面の右上にあるCodeをクリックしてプルダウンメニュー最下のDownload ZIPをクリック

パソコンにダウンロードしたzipファイルを適当な場所で展開しておく。


2.anaconda navigatorで仮想環境を設定

anaconda navigatorで先ほど展開したファイルのworkspaceフォルダーのサンプルコードを動作させるためのpython環境をつくります。

作り方はanaconda navigatorを起動し、Anaconda Navigatorの左のタブ「Environments」をクリックして、下にある「create」をクリックして適当に名前を付けて仮想環境をつくります。


サンプルコードを動作用シミュレーターを稼働用に必要なpythonパッケージがそれぞれのフォルダーのrequirements-sim.txt、requirements.txtにあります。これらを全てインストールします。

【サンプルコードを動作用】
chainer
Pillow
pyserial
jupyterlab ---> これはHome画面からインストール

【シミュレーターを稼働用】
numpy
opencv-python
PyYAML
pillow ---> 上のサンプルコード用でインストール済

これらのパッケージはanaconda navigatorからインストールしておきます。

【注意】
・OpenCVに関して、anaconda navigatorに含まれるopencvパッケージをインストールして使おうとするとエラーが出て動かなかった。
そこで一度opencvをアンインストールして、ターミナルから下記コマンドを実行してopencv-pythonをインストールすると正常に稼働した。

> python -m pip install opencv-python==4.6.0.66 --force-reinstall

・numpyのバージョンが1.24.0以下でないと一部のプログラムが正常に動かないようなので1.23.5にダウングレードした。詳細はここを参照ください。

3.シミュレーターのセットアップ

仮想環境を選択し、▶印をクリックして出てきたプルダウンメニューから「Open Terminal」をクリック。


画面に下記ターミナルが現われます。

・ダウンロードし展開した先のPreferred Networksさんのファイルのsimulator2dのフォルダーに移動します。私の場合は外付けHDD(F:ドライブ)にインストールしたので「F:」続いてフォルダーに移動しています。移動先のフォルダー位置は各自の設定に合わせてください。
そしてmain.pyを実行。

  > F:
  > cd F:\chainer-ev3_simulation\simulator2d
  > python main.py

を順次実行して以下のような画面が出てきたら成功です。




4.コンフィグファイルの変更

初期設定ではJupyterLabで動作させるコードは実機のEV3と接続するように設定されています。workspace/config.iniの内容を修正することで、接続先をシミュレーターに変更します。

コンフィグファイルの設定をシミュレーター接続のものに変更します。cdでworkspaceフォルダーに移動し、cpで書き換えます。
cdで移動する先は各自のフォルダーに合わせて変更してください。

  > cd chainer-ev3/workspace 
  > cp config-sim.ini config.ini


5.サンプルコードを動作させるためのpython環境のセットアップ

3.シミュレーターのセットアップと同じように仮想環境を選択し、▶印をクリックして出てきたプルダウンメニューから「Open Terminal」をクリックし、続いて画面上に別のターミナルを起動します。

ダウンロードし展開した先のPreferred Networksさんのファイルのworkspaceのフォルダーに移動します。私の場合は外付けHDD(F:ドライブ)にインストールしたので「F:」続いてフォルダーに移動しています。移動先のフォルダー位置は各自の設定に合わせてください。
そしてJupyterLabを起動します。

> F:
> cd F:\chainer-ev3_simulation\workspace
> jupyter lab

ブラウザ上に下記upyter labが起動すれば成功です。


6.シミュレーターの使い方

シミュレーターの使い方は、referred Networksさんの投稿を参照してください。


下記動画は、basic_go_back_and_forth.ipynbを実行した際のシミュレーション画像です。



下記動画は、linetrace_controller3.ipynbを実行した際のシミュレーション画像です。























Jupyter labの初期表示ディレクトリ変更