2016年のFPGAの部屋のブログを振り返ってみた。
1月・
Vivado HLS勉強会4(AXI4 Master)を公開しました(今年はVivado HLS の記事をFPGAマガジンにも書かせてもらった)
・
筑波山神社に歩いて初詣に行ってきました・
ZYBO_0_2 と ZYBO_1_XGA_test との接続テスト(ZYBO_0 にDigilent 社の rgb2dvi IP を実装することができた。(ZYBO_0_2))
・
Vivado HLS勉強会5(AXI4 Stream)を公開しました・
ステレオカメラによる距離測定テスト1(構想編)(”
ZYBO_0 を変更3(Ubuntu 14.04 LTSのBOOT.binを変更)”でステレオカメラの要素技術は大体クリア出来たので、ステレオカメラを構築していくことを考えてみよう。)
・
牛久シティマラソンの5kmに参加しました・
Digilent社のボード・ファイルのインストール(ボード・ファイルにはお世話になった)
・
ZYBO_0_2 と ZYBO_1_XGA_test との接続テスト時の画像のバグのデバック2(アプリの変更)(HDMIの出力を入力するときの左端の画像がおかしい問題は解決した)
・
FreeCADでDIP ICの3Dモデルを作る1(3D CadソフトのFreeCADを勉強してDIP ICパッケージのモデルを作った。実際に3Dプリンタでプリントしてみた)
・
デバイスドライバ udmabuf を使用する1(@ikwzm さんのLinuxでユーザー空間で動作するプログラムとハードウェアがメモリを共有するためのデバイスドライバ udmabuf を使わせて頂いた。便利に使っている。感謝)
・
マウスコンピュータのノートパソコン、LB-J321E-SSD2 が来ました(ノートパソコンを購入した)
・ステレオカメラによる距離測定テスト6(ステレオカメラのテスト)(SDKを立ち上げて、ベアメタル・アプリケーションを作製して自分のカメラと、ZYBO_0_2 からHDMI ポート経由で送られてきた画像が表示できるか?を確認した)
・
LinuxでSDカードをバックアップ、リストア(Linux環境でのSDカードのバックアップ、リストア方法)
2月・
MPSoCのお勉強1(概要)・
MPSoCのVivado プロジェクトを作ってみよう1(MPSoC のプロジェクトを作製した)・
守谷ハーフマラソン(うちの奥さんが5km で世代別優勝した。びっくりしたな。。。)
・
ZYBO をUbuntu 14.04 LTS にアップグレードした場合のエコーバック(解決方法を教えて頂いた)
・
ステレオカメラによる距離測定テスト10(左右カメラの視差の測定)(左目カメラ画像に右目カメラ画像の一部を表示するアプリケーションだ。右目カメラ画像の一部を表示するエリアは、左目カメラ画像の輝度を 1/2 にして、そこに輝度を 1/2 にした右目カメラ画像を足し合わせる。デフォルトでは、右目カメラ画像の縦方向真ん中で、横方向左端の 160 ピクセル X 120 行を切り取って、左目カメラ画像に表示する。)
・
ステレオカメラによる距離測定テスト13(チェッカーボードの撮影結果)(カメラで撮影した画像に思いっきり樽型ひずみが出ていた)
・
OpenCV 2.4.10 の stereo_calib.cpp をやってみた・
MPSoC勉強会で”MPSoCのPLの性能について”という発表をしてきた(サポート用のブログ)・
OpenCV 2.4.10 の stereo_match.cpp をやってみた・
左目カメラ画像と右目カメラ画像をBMPファイルに変換するアプリケーションを作成した3月・
ZYBO_0_2のビットマップ・ディスプレイ・コントローラのバグフィックス(ZYBO_0_2 のビットマップ・ディスプレイ・コントローラのワードレーンがおかしいようなので修正を行った)
・
ZYBO_0_2のビットマップ・ディスプレイ・コントローラのバグフィックス2(今回は、右目カメラ画像に出ている黒いドットを消すことができた。原因は、ビットマップ・ディスプレイ・コントローラの出力の display_enable が 1 クロックずれていたことだった)
・
hls::LineBufferとhls::Windowでラプラシアンフィルタを実装する1(あるところから hls::LineBuffer と hls::Window を教えて頂いたので、それを使ってラプラシアンフィルタを実装した。ありがとうございました)
・
OpenCV 2.4.10 の stereo_calib.cpp を自分のカメラ画像でやってみた3(いろいろと失敗してきた”OpenCV 2.4.10 の stereo_calib.cpp を自分のカメラ画像でやってみた”ですが、ついにうまく行った。勝因は、チェスボードに黒枠をつけたのと、チェスボードが大きめに画面に写っていたほうが良いみたいだ)
・
hls::LineBufferとhls::Windowでラプラシアンフィルタを実装する7(2 つの実装を実際に使用する 800 x 600 ピクセルの解像度に変更して、どの位リソースを使うかと、今までは 100 MHz で合成してきたが、どの位の動作周波数で合成できるかを探ってみた)
・
OpenCV 2.4.10 の stereo_calib.cpp を自分のカメラ画像でやってみた4(stereo_match_cam.cpp の作成)(前回で、”OpenCV 2.4.10 の stereo_calib.cpp を自分のカメラ画像でやってみた”が上手く行った。でも、これは、右目カメラ画像と左目カメラ画像をBMPファイル変換して、そのBMPファイルに対して stereo_match を起動して、disparity を計測した。これだとBMPファイルにする手間があるので、右目カメラ画像と左目カメラ画像をバッファしているフレームバッファから直接、画像を取得して、stereo_match するようにソフトウェアを書き換えた。これを stereo_match_cam.cpp とした)
4月・
Vivado HLS 2015.4 で OpenCV を使ってみた2(テストベンチに Mat を使って実装した)・
Vivado HLS 2015.4 で OpenCV を使ってみた3(Sobelフィルタを試した1)・
Vivado HLS 2015.4 で OpenCV を使ってみた7(FAST Corners Detection 1)・
かすみがうらマラソンに出場しました・
OpenCV の X軸方向 Sobel フィルタ IP のカメラ表示システム(”Vivado HLS 2016.1 で OpenCV の Sobel フィルタを試してみた”で作った X軸方向 Sobel フィルタの IP をカメラ表示システムに入れて、Sobel フィルタ出力が表示された)
・
FASTXコーナー検出IPのカメラ表示システム5(Vivado HLS 2016.1でやってみた3)(前回は、hls::Duplicate() で複製された img_1_ の data_stream に hls::FASTX() と hls::Dilate() の最大レイテンシの 7 行と 3 行を足した 10 行分より多い 2 の 13 乗の 8196 個の FIFO バッファを付けるように STREAM ディレクティブを指定した。
今回は、前回作製した FASTX コーナー検出IP を使用して、Vivado 2016.1 で論理合成、インプリメントを行って、SDKでZYBO にコンフィグレーションしアプリケーションを起動して、 FASTX コーナー検出できた)
・
FASTX コーナー検出の改良3(threshold をソフトウェアで変更可能にする)( threshold を変更できるFASTX コーナー検出IP をカメラ表示システムに組み込んで実際に表示してみた)
・
AXI VDMAのMM2Sを使用してビデオ出力1(構想編)(これはうまく行かなかったな。どうもAXI VDMA とは相性が良くないようだ)
5月・
定期戦に行ってきました・
AXI VDMAのMM2Sを使用してビデオ出力7(実機でテスト)(cam_disp_axis.c を AXI VDMA の MM2S を使う仕様に変更して、ZYBO実機でテストしてみたが、何も表示されない。やはり、AXI VDMA とは相性が悪い)
・
KiCad-4.0.2 と FreeRouter インストール覚書・
Vivado HLS を使用した車の白線検出1(初めに)(車の白線検出をハードウェア化してみたいということで、OpenCVを使用して車の白線検出を行い、それをVivado HLS でハードウェア化してみることにした)
・
Vivado HLS を使用した車の白線検出4(ヒストグラム均一化)(cannyフィルタでエッジ検出した後でHough 変換を行って、直線検出したが、最後の暗い画像では、道路の白線を検出することはできなかった。今回は、canny フィルタの前に equalizeHist() を行うことで、ヒストグラムの均一化したところ、白線検出できるようになった)
・
Vivado HLS を使用した車の白線検出5(hls::HoughLine2())(前回はヒストグラムの均一化を行ってから、グレー変換、Canny フィルタ、Hough 変換を行うと白線検出をすることができた。今回は、”Vivado HLS を使用した車の白線検出1(初めに)”で使用した”ka367/Lane-Detecting-Using-Hough-Transform”が動作して、C シミュレーションとC コードの合成をすることができた。でも、ロジックが大きすぎてZYBOに入らない。。。)
・
Vivado HLS を使用した車の白線検出7(Canny フィルタ1)(前回、白線検出ハードウェアはとてもZYBO には入らないということがよく分かった。それでも Canny フィルタだけはハードウェアにしたいということでやってみた)
・
ZYBO 上のOpenCV で白線検出2(equalizeHist() を使用した場合2)(前回は、equalizeHist() を使用し、Canny フィルタを掛けて、HoughLine 変換で道路の白線検出を行った。しかし、画像を読み込む時点で白黒画像に変換していた。ハードウェアでは、カメラで撮影した画像を白黒変換して、Canny フィルタを掛ける予定なので、白黒画像変換の部分の経過時間も測る必要がある。それでC++ ソースコードを修正した。更に、白黒画像変換+Canny フィルタの経過時間を測定した)
・
Z-turn Board が届きました・
ZYBO 上のOpenCV で白線検出3(Canny フィルタのみの場合)(今回は前回のコードはそのままに、10行目の”#define HIST”をコメントアウトして、equalizeHist() を使用しないで、Canny フィルタのみで白線検出を行うことにする。なお、Canny フィルタのスレッショルドは、試行錯誤して、最適化したつもりだ)
6月・
Vivado HLS を使用した車の白線検出10(ラプラシアンフィルタ1)(Cannyフィルタのロジック量が大きいので、ラプラシアンフィルタに変更したら良好な結果を得た)
・
Z-turn Board のPS設定をサンプル・プロジェクトからコピーする・
Zybot の作製1(構想編)(Zybot を作製しようとしている。Zybot はZYBO を搭載した車といっても本物の車のサイズではなくミニカーの部類だ)
・
Zybot の作製2(組み立て1)(Zybot 組み立てマニュアルを参照して、Zybot を途中まで組み立ててみた。なお、これは、Zybot の仮組でとりあえずモーターを動かして、車を動かすのを目的とする)
・
Vivado HLS で PWM モジュールIP を作ってみた(Zybot のモーターコントロール用Hブリッジ回路のPmodの Digilent PmodHB5 を制御するPWM モジュールIP をVivado HLS 2016.1 で作ってみた)
・
Altera SDK for OpenCL勉強会に行ってきた・
レジスタ設定用AXI4 Master IPをVivado HLS で作ってみた(PWM モジュールIP をシミュレーションするために、レジスタ設定用AXI4 Master IPをVivado HLS で作ってみた)
・
PmodHB5 のセンサー・フィードバック処理IP を作ってみた・
Vivado HLS 2016.2 で volatile を使用する場合・
Zybot の車輪が回転した(モーター・センサポートのSA, SB の波形有り)
・
舌下免疫療法(スギ花粉症)・
KiCad-4.0.2 のフットプリント作成方法7月~12月編に続く。
今年は中身が濃い気がするな。。。
- 2016年12月30日 07:45 |
- その他のFPGAの話題
-
| トラックバック:0
-
| コメント:0