ESI
21
VirtualBox 上に Slackware と Debian と CentOS のテスト環境を用意したのですが、ホストのUSBカメラの認識が上手くいきません。LiveCDで試すときちんと認識するので、仮想環境での検証を諦め、実機に検証用環境をセットアップすることに。
結果、GhostBSD と Slackware と Debian と CentOS のクアドラブルブート環境が出来ました
x86_64 Linux は PyPI のサポート対象であるため、wxPython 以外は pip で最新版をインストールの予定。
ESI
22
原因不明ながら、PC 上の Linux では最新版 opencv-python が問題なく動作するようです。なぜ ARM な Raspbian 環境では上手く動作しないのかは今後の検証課題とします。
macOS の検証環境としては、弁当箱 Mac mini Late 2014 1.4GHz を用意しました。無改造の Horus 0.2rc1 は起動出来ましたが、wxPython 及び opencv-python の最新版で動作させようとすると色々エラーを吐き上手く行きません。
ところで、macOS Mojave 以降では OpenGL が非推奨となるようです
Horus でも将来的に OpenGL を使っている部分を Vulkan で置き換える必要が出てくるかも。
ESI
23
ほんっとうに御無沙汰しておりました。申し訳ありませんでした
3.x系への移植で詰まっていた部分がやーっと解決出来ましたので報告します。
ソースコードの、
lib\horus\gui\util\opengl_helpers.py
lib\horus\gui\util\opengl_gui.py
この中の割り算の取り扱いが 2.x 系から 3.x 系で変更になったことで表示が壊れてしまっていました。
割り算の結果の整数部分を得る
python2.x系
a / b
python3.x系
a // b
今までの改変で致命的な部分はおおよそ潰せました。
「いいね!」 1
ESI
24
他に
lib\horus\gui\util\scene_view.py
にも徐算が多数現れますので、int 型で割り算の商を求められる箇所を//
で置き換えます。
また、
lib\horus\engine\driver\board.py
の serial 通信における文字列の扱いが python2.x 系と 3.x 系で作法が変わっていましたので適切に修正します。
これまでの一連の改変により、3.x 化 Horus と Ciclop の接続が出来ました(スキャンが出来るためにはまだ潰さなくてはならないバグ多数)。
現在のテスト環境
Python
3.8.10(Win 64)
インストールしたPythonパッケージ
matplotlib==3.3.4
opencv-python==4.1.2.30
scipy==1.6.3
wxPython==4.0.7.post2
PyOpenGL
pyserial
ところで、久しぶりに覗いたところ、BQLabs のサイトから Ciclop や Horus のページが無くなっていました。これに関連し、Windows や Mac 向けの Horus のリリースも DL 出来なくなっています。
※ Win や Mac 向けにインストーラーパッケージが無くても Python2.7 系から直接起動すれば大丈夫(ただし Python2.7 系がそもそも大丈夫じゃない)。
「Python 2.7.18」がリリース ~「Python 2」シリーズの最終版 - 窓の杜
Python Release Python 2.7.18 | Python.org
Python Release Python 2.7.18 | Python.org
Ciclop/Horus ソースコード入手先
ESI
25
Python 3.8.10 での Horus の起動テストとテクスチャバグの解消
Python3.8.10 上で Horus を介さずに pySerial で Ciclop に直接制御コマンドを送ると望む反応が返ってくるので、あとは Horus 側のコードの調整です。依存する Python パッケージのバージョンを上げると仕様変更からエラーの嵐になるので、上の投稿のパッケージのバージョンで固定してバグを潰していきます。あと一息。
その後色々試して判明。テクスチャバグ解消に関しては、opengl_helpers.py と opengl_gui.py の修正の成果ではなく、pyOpenGL のバージョンを 3.1.0 から 3.1.4 または 3.1.5 に上げた為。Horus のコード側ではなく Python パッケージ側の問題というのは頭にありませんでした。
ESI
27
GitHub で fork してきました。
※ アナウンスのため、本トピックの最初のポストも書き換えました。
Horus Python 3.x port
一応辛うじて動くようになっていますが、まだまだ pre-alpha と言った雰囲気です 。
GitHub - neetandgeeks/horus: 3D Scanning multiplatform desktop application
既知のバグ
- 警告ダイアログ等が wxPython の仕様変更に追いついていない箇所多数。
- 例えばボードへの接続の前に Edit > Preferences から正しい値を設定していないと止まります。
以下は起動手順の抜粋(バグをあらかた潰せたら PyPI に登録して pip install 出来るようにしたいです)。
Installation
CAUTION
This Python 3.x port is currently highly unstable.
With Python 3.8.x
Example
on Windows like System
C:\Users\foobar> mkdir testenv &:: make your working directory
C:\Users\foobar> cd testenv &:: change current directory
C:\Users\foobar\testenv> py -3.8 -m venv horusenv &:: make your Python 3.8.x virtual environment
C:\Users\foobar\testenv> .\horusenv\Scripts\activate &:: activate virtual environment
(horusenv) C:\Users\foobar\testenv> cd ..\horus &:: change current directory to your extracted horus source
(horusenv) C:\Users\foobar\horus> py -m pip install -r requirements.txt &:: install dependencies
(horusenv) C:\Users\foobar\horus> py .\horus.py &:: run horus
on Unix like System
[foobar@localhost ~]$ mkdir testenv # make your working directory
[foobar@localhost ~]$ cd testenv # change current directory
[foobar@localhost testenv]$ python3.8 -m venv horusenv # make your Python 3.8.x virtual environment
[foobar@localhost testenv]$ source horusenv/bin/activate # activate virtual environment
(horusenv) [foobar@localhost testenv]$ cd ../horus # change current directory to your extracted horus source
(horusenv) [foobar@localhost horus]$ python3 -m pip install -r requirements.txt # install dependencies
(horusenv) [foobar@localhost horus]$ python3 ./horus.py # run horus
「いいね!」 1