2022-01-01から1年間の記事一覧
MT4というシステムトレード用ソフトを使用した、FX自動売買の方法について説明する。本記事では楽天証券の口座で無料EAを使用して取引を行うことを想定している。 自動売買とは? 自動売買とはその字の通り、FXの売買をシステムが自動で行うことである。自動…
Windows Visual studio 2019からOpenCV4.6.0 C++のアプリケーションをビルドして動かす方法です。 やり方を載せているところは無数にあるので、最も簡単に動かすところまで行きたいと思います。 手順 OpenCVのインストール 以下のページから"opencv-4.6.0-vc…
UnityでOBR SLAM3を動かしてみた。環境はWindows上でUnityを動かし、WSL上でOBR SLAM3を動かしている。 動作としては以下のような感じ。動いてはいるものの、マップ生成は全くうまくいっていない。 youtu.be 前準備 以下に通信用のコード(Linon_SDK)が置いて…
Unityのカメラから他プロセスへ映像を転送する方法として、以下のような一般的なプロセス間通信が考えられる。 MMAP ソケット通信 RTSP この記事ではこれらの方法を解説する。ただしRTSPはGStreamerのインストール方法ができなかったのでやっていない。 MMAP…
以前ORB SLAM3を動かしてみたが、それを参考に今回はスクラッチでやってみた。これをすべてやれば動くとこまで行くはず。何かエラーがあればコメントまで。 WSL: Ubuntu 20.04 Windows 10 ORB_SLAM3のビルド OpenCVはaptでインストールされるものだとバージ…
WSLでSLAMを動かしてみたい、ということでビルドをしてみた。参考にしたサイトではビルドは成功したものの、画面に表示しないサンプルらしく動いているのかわからなかったので、表示されるサンプルを探した。また、画面が表示されない時に設定がおかしいんだ…
CUDAのインストールは以下を参考に進めればOK。 CUDA on WSL :: CUDA Toolkit Documentation ただし、以下のようなエラーが発生する場合がある。 $ sudo apt update Get:1 file:/var/cuda-repo-wsl-ubuntu-11-7-local InRelease [1575 B] Get:1 file:/var/cu…
WSL2をインストール VcXsrv Windows X Serverをインストール XLanchを実行して、ディスプレイ番号を0、Additional parameters for VcXsrvに「-ac -nowgl」を指定する。 「Windowsファイアウォールによるアプリケーションの許可」から、VcXsrvにプライベート…
概要 WSL2でホスト側のディスクへのアクセス速度が遅いので、SSHFSを使用することで読み取りが5MB/s->50MB/sに改善した。 追記: エクスプローラから、WSLに直接アクセスすることで500MB/sまで改善できた。 現状 WSL2ではホスト側のディスク(CドライブとかD…
Windows -> WSL間で画像データの受け渡しをしたかったので、MMAPを使ってプロセス間通信をしようとしたが、結局うまくいかなかった。代替策としてファイル経由でデータの受け渡しをした。RAMDISKを使用したのでそれなりに速度は出る、と思う。 やったこと デ…
はじめに ディープラーニングで物体検出など使えるようになってくるとシミュレーション環境で動かしたいと思うのだが、よさそうなSWが見つからなかった。それなら作ればいいじゃないかということで作った。 実際に動いている画面は以下の通り。 youtu.be 制…
今回は白線に沿って自動で走行する車を作ったのでそれを動かしていく。 このページに直接来た方は以下を参照。 Pythonから操作可能な物理シミュレーション環境作った - ぼうびろく Unityの準備 以下からインストーラーを入手し、Unityをインストールする。Un…
Linuxでは各種デバイス(HDDとか)はデバイスファイル(/dev下にあるファイル)として存在し、各種デバイスをファイルとして扱うことができる。(このファイルのどうやって扱うのかは、デバイスドライバによって定義されている。)このデバイスファイルを操…
Raycastでオブジェクトの距離を計測してみた。ただこれだけではほかにもやっている人が大量にいるので、複数の距離計測機から情報を1つにまとめられるものも作った。 マニュアルは以下のページ。 Physics-Raycast - Unity スクリプトリファレンス イメージと…
Python Spyderを使用していた際に、以下のようなWarningが出て、Plotsウィンドウにグラフが表示されなくなった。 UserWarning: Matplotlib is currently using agg, which is a non-GUI backend, so cannot show the figure. この時対処法としては以下の2つ。…
PID制御のDゲインを変化させて実験してみた記録。PID制御はステアリングに用いていいる。 ほかのパラメータは以下の通り。 P=0.5 I=0.05 コースは以下のような円形コース。 このコースを1周走らせたときの、PID各操作量と合計操作量U, 白線中央からのずれx, …
試作ができたので試運転してみた。コースとしては一周ぐるっと回るようになっているのみ。映像から白線を認識して、白線中央を走るようになっている。カーブでは一部認識間違いが起きているものの、他の認識部分でカバーできている。白線検出は2値化×エッジ…
PythonでPID制御のクラスを作っていろいろパラメータを変えてみた。 PID制御については以下を参照。 PID制御 - Wikipedia 式は以下の通り。 ポイントだけ説明すると、 目標値に対する偏差から操作量を計算する、フィードバック制御の1つ 操作量はP(比例)、…
表題の通り。Pythonでソケット通信をする場合はsocket.socketを使用する。TCP通信を行う場合は、一方をLISTENにして、もう一方からconnectで接続してから通信を行う。(UDPの場合は接続なしでデータを送受信すればいい。)作ったクラスは以下の通り。 from s…
HierarchyにUI→Buttonでボタンを作る。 ボタンにスクリプトをアタッチして、以下のように記載する。クラス名は自分が作ったものを使う。using UnityEngine.UI;は忘れがちなので注意。Start()で初期位置を取得しておいて、クリックされた際にその位置に戻す。…
Unityで自分で操作できる車を作ってみる。基本の部分はUnity公式のチュートリアルを参考にした。 Wheel Collider チュートリアル - Unity マニュアル 今後物体検出などを行っていきたいので、実際の車っぽいものを走らせたいので以下のアセットを使用する。 …
グラフ理論の勉強として、札幌から那覇までの最短経路を求める。条件としては以下の通り。 都市間の距離は直線距離を使用する。 各都市は最も近い3都市と接続する。 今回の計算は以下のページを参考にした。 グラフ理論の基礎 - Qiita まず初めに都市名、緯…
EasyRoads3D assetstore.unity.com EasyRoads3Dは複数の点をつなげていき、道路を生成するアセット。自由にカーブなどを簡単に作ることができる。有料版を購入すると分岐も作成可能。 道路の見た目 編集画面 使い方 【入門】レースゲームの作り方&Unityの使…
自動運転では当たり前ではあるが道路を走ることが必要である。ここで道路とはどのような領域化といえば、白線に挟まれた領域である。そのため、第一歩として白線認識手法の開発を行う。 今回は外乱の殆ど無い環境、つまり画像内に白線しかないような状況での…
昨今ディープラーニングはライブラリやサービスも非常に充実し、だれでも簡単に扱えるものになった。それこそGoogle Clabなどを使えば環境構築なしでも使えるようなサービスもある。ただ本格的に使ってみるとCUDAやらTensorFlowやら多くのソフトウェアを使っ…
ディープラーニングの知識もそこそこ得られてきたのでアウトプットとして何かをしたい。ただ日常生活で使える場所なんてほとんどない。ならば作ればいいじゃないかと思い立ち、自動運転シミュレータを作ろうと考えた。 構想 構想としては以下の図のような感…
はじめに Unityのカメラ(プレイヤー視点の映像とか)の映像をPythonで受け取る方法を調べた。方法としては以下のようなものがあった。 UnityCam, UnityCaptuerを使用する RTSPで飛ばす 共有メモリで受け渡す UnityCam, UnityCaptuerを使用する 調べた中では…
mmapで画像ファイルの読み出し方法は以下のようにする。SharedMemoryTest.batはmmapで使っているファイル。 from PIL import Image import mmap with open("c:\\SharedMemoryTest.bat", "r+b") as f: mm = mmap.mmap(f.fileno(), 0) #ファイルの内容を読み出…
Pythochにはtorch.hubという超簡単に物体検出などができる機能がある。コードはこれだけ。 import torch model = torch.hub.load('ultralytics/yolov3', 'yolov3') input_img = 'https://ultralytics.com/images/zidane.jpg' # 推論 results = model(input_i…
mp4動画からPythonで文字起こししてみた。探せばやり方は山ほどあるので、今回はより実用的に、どんなデータでも使えるよう工夫してみた。 課題 Python で文字起こしするには、recognize_googleを使うのが一般的。ただしこのAPIはファイルサイズが大きすぎる…