システム構成とお盆休みまでのTODO

もう七月も折り返し地点ですね..時間ばっかりガンガン過ぎていきます...目標にしていた試走会一回目の確認走行突破,残念ながらクリアできませんでしたが,どうやって次の試走会までに愛犬を調教すべきか考えていました. いろいろ論文をみたりアイデア…

お買い物

つくばチャレンジに参加して今年で3年目になるんですが,毎回つくばに行くたびに思っていたことがありました. 「電源がない!」 屋外でロボットを走らせるというコンテストなのですが,当然ながらロボットの調整をするバックヤードも屋外で,電気を確保す…

近所の実験場

前回のポストからちょっと日が開いてしまいました...7/8日,つくばチャレンジ説明会&試走会一回目参加してきました. 結論としては,,,ボロボロでした(笑)やっぱりいろいろギリギリでやりすぎててる部分が多く,会場に行って一発勝負しても負けます…

複数 PC に分散したノードの ROS を使った通信

Jetsonを導入したことで,ロボットにくっついているPCが二つになりました. 今までもマイコンは使っていたのですが,マイコンとPCはシリアル通信だったので複数のPCに散らばったROSノードをくっつけるという作業をするのは今回が初めてになります.きっとは…

NVIDIA Jetson Tx2 + Ubuntu 16.04 + アサヒドライプレミアム

月末のプレミアムフライデー,定時退社日と酒を飲むにはもってこいの状況だったのですが,来週には試走会一回目があり... かえってひたすら作業に没頭すべきかどうか,非常に難しい判断を強いられました.結果的に,ビールが飲みたくて仕方なく,のみ「な…

一回目試走会(7/8)に向けて

うーん...来週の説明会&試走会ですが,あと一週間になりましたが,,,ロボット走らせるところまでもっていくのはだいぶ難しそうです. 今回を逃すと,次は9/23でだいぶ後ろになってしまうのでどうにか脱初心者コースを達成したかったんですが...実際…

ステレオカメラを用いた OGM の作成2 @ 大清水公園

やりました!やりましたぞ!くらいのテンションで今日の朝5時にコードをいじってました. Visual Odometryを使ってセンサドリフトの影響を除去し,そのオドメトリ結果を用いてステレオカメラのデータを使ってOGMを作る. ということをやってましたが,今日…

Visual Odometry @ 大清水公園

前回の投稿から、ほぼほぼ一ヶ月。。。ちょっとサボり気味になってしまいました。。。 7/8の試走会に向けて、大清水公園のマップ作成をしていました。車輪速センサで生成したオドメトリをベースにZEDとSGBMで生成した測距データを二次元に投影することでOGM…

大清水公園 + SGBM + Cuda ステレオマッチング

ZEDのSDKについてくるステレオのパフォーマンスがどうもあまり良くないため,オープンソースのSGBMを探して使ってみることにしました. 結果,,,ビンゴでした.ZEDのライブラリよりも,遥かに性能が上がりました.www.youtube.comSGM実装 GitHub - dhernan…

ステレオカメラを使ったOGMの作成

金曜朝のエントリで少し書きましたが,ステレオカメラを使ったマップを作成中です. 「GWの取り組み」エントリで書いたとおり,スキャナの性能が思いのほか高くなく,,,,結局カメラでなんとかしようとしています. 地図作成ですが,いろいろと研究されて…

CMake を使った自作ライブラリの作成

おはようございます.前回のエントリから2週間近く間が空いてしまい,,,若干デコミット気味になってしまいました. 作業の方は相変わらず手探りですが, 1. CMakeをつかったライブラリの作成. 2. ホワイトバランス調整のプログラム作成. 3. ステレオカ…

今後のやること メモ

ブログというよりメモ帳代わりのエントリ.今後のTODO整理用. ピッチ角推定の精度を上げる. vDisparity からの直線抽出の精度を上げる. 取得した画像に対して,SIFT特徴量を試してみる. SIFT特徴量でタグ付けして,検索できるようにする. 別の日時に撮…

GW の成果

おはようございます.前回のアップからちょっと時間が空いてしまいました... 長かったはずの GW も残念ながら終わってしまい,社会復帰中です・・・・. GW の成果と今後の TODO を洗い出すためにエントリを残しておきます. GWの成果 まず,GWの成果です…

4月後半と GW の目標・マイルストーン

ついに来週から GW に突入です.自分の予定はと言いますと,,,特段旅行に行くわけでもなく,ロボットと向かいあう事になるかと思います.昨年の経験からすると, GW とお盆休みが受験ならぬつくばチャレンジの天王山になるはずなので,なんとか追い込んで…

Zed Stereo Camera 事始め2

前回のエントリからの続きです.前回のエントリまでで,とりあえずサンプルコードが動くところまではできたので,今回はいよいよサンプルコードを実行します. 提供されているサンプルコード一覧 ZED_Camera_Control : カメラの制御変数変更や簡単な動作確認…

Zed Stereo Camera 事始め1

ということで,足回りの目処が立ったので Zed Stereo Camera の環境構築にとりかかります.ZED Stereo CameraStereo Camera に付属している SDK に視差マップを生成してくれるソフトが付いているのですが,どうやらこれが NVIDIA の GPU がないと動かないみ…

Linux コマンド ldd, ldconfig

Linux のコマンドのお勉強です.(すごい基礎的で恐縮ですが...)ldd : 共有ライブラリへの依存関係参照. 使おうとしている実行ファイルが共有ライブラリを用いている際,実行時に動的リンクされます.つまり,実行時にメモリに読み込まれて使われます.…

ROS Teb Local Planner + Arduino Due + Rotary Encoder

ということで,前回のエントリから早くも一週間... ようやくエンコーダ周りの基板作成・マイコン実装変更・ROS対応が完了しました.長かった.... エンコーダの解像度が上がったことで,低速での制御が可能になったことと,オドメトリの精度がアップし…

Arduino Due + Rotary Encoder

前回のエントリから2週間弱が経過してしまい,,,当初の目標をちょっとデコミットしてしまいました...がそんなときもあります.ただ,何もやっていなかったわけではなく,,,あらたな問題を解決しています(笑) 実は,TebLocalPlannerの軌道生成に使…

つくばチャレンジ2017への参加のお勧め

ついに来てしまいました....そうですつくばチャレンジ2017の参加募集開始です. 昨年SI2016に参加し,つくばチャレンジ2016の取り組みを終えてから早くも半年...それなりに前もって動いては来ましたが,まあなかなか思うようには進まな…

Gauss Newton 法,Levenberg-Marquardt 法 in Python

ちょっと前回の投稿からアップが遅れてしまいましたが,さぼっていたわけではなく... 引き続き Teb Planner のパラメータ調整と解析をしてたんですが,もう少し詳しく理解したかったんでソースを読んでみました. で,気づいたんですが,LSD SLAM にして…

今月のやること.ROS Mapping & Localization

早くも3月第三週目に突入してしまったのですが,今月のやることをリストアップしておきます.先月の大きな目標として,Odometryフレーム内でロボットの制御を動かすという目標を作ったのですが,teb_local_plannerを使うことである程度目処はたったかなと思…

ROS Navigation Stack ~ Teb Local Planner ~

座標指示でロボットを制御することを目標に,ROSのNavigation Stackを用いて軌道生成・制御を使用としていたのが前回のエントリだったのですが,実際にロボットを動かしてみて驚愕の事実が発覚... 車タイプのロボットの制御には対応していない! 車タイプ…

ROS Navigation Stack ~ DWA Local Planner パラメータ調整1 ~

先日の投稿で,cmd_velをつかってロボットが動かせるようになった様子をアップしましたが,今日はついにmove_baseを使ってロボットを動かせるようにします.すでにちょっと試してみて,前進はできるようになったのですが曲がる動作がどうもうまくいかず..…

ROS Navigation Stack ~ Arduino Controller ~

Arduino, ROSの制御周りの実装・リファクタが終わりました. 制御にはPIDを用いましたが,等速直線運動,定常円旋回に関してはそこそこうまく動くようになりました. ちょっとギクシャクしてしまってますが,これは制御器の設定が悪いせいではなく,ハードの…

今月のやること.ROS Navigation Stack

おはようございます.なんと,はや3月...最近時間がたつのが早いです. さて,今月のロボット目標です.2月中にROS Navigation Stackを動かしてみる予定でしたが,案の情遅れてしまいました.OdometryやArduino周りのコードをリファクタしてたら思いの…

ROS Navigation Stack ~ Arduino Controller ~

おはようございます.前回の投稿から一週間以上経過して,早くも当初の目標をデコミットしてしまいましたが,,, なにもしていなかったわけではなく,久々にArduinoのコードを整理していたらわけがわからなくなってしまい,,,,整理ついでにリファクタリ…

ROS Navigation Stack について3 ~ Goalを送信するノードの作成 ~

move_baseとodometryに関しては整ったので,ここではmove_baseに対してゴールを送信するノードを作成します. 引用:http://wiki.ros.org/ja/navigation/Tutorials/SendingSimpleGoalsただ,今回作成したシステムでは,オドメトリ情報がでたらめなので,実際…

ROS Navigation Stack について2 ~ Odometry生成ノードの作成 ~

先ほどのmove_base生成のエントリに引き続き,Odometryを生成するノードを作成します.コードはほぼROSのチュートリアルのままです.引用:http://wiki.ros.org/navigation/Tutorials/RobotSetup/Odom 1. Odometry生成ノード用のパッケージ作成 Odometry生成…

ROS Navigation Stack について1 ~ move_baseの起動スクリプト作成 ~

今日はROSのチュートリアルに従って,move_baseに対してシンプルな移動コマンドを発行するところをやりたいと思います. が,まずはmove_baseを必要なパラメータを提供しつつ起動してあげないといけないので,move_baseの起動スクリプトを作成します. 1. tu…

ROS Navigation Stack について1

以下,ROS Navigation Stackに関して調べたことをまとめておきます. マッピングを実装して使えるようになるには,何らかのセンシング手段が必要で,まだちょっとハードルが高そうなので,ひとまずオドメトリのみを用いたロボットの自立制御ができるようにし…

今月のやること.ROS Navigation Stack

おはようございます.昨日宣言した通り,これから毎月/毎週の目標と結果を書いていきます. 昨年のつくばチャレンジでは,画像処理の実装に時間がかかりすぎて制御周りが間に合わなかったので,今年はまずここから始めたいと思います.ロボットの足回りはと…

Road To つくばチャレンジ2017 ~ 完走へ向けて!~

ということで,「2016年を振り返って」という若干後ろ向きなエントリを書いた数分後に,「完走へ向けて」なんていう無謀なエントリを書いてしまいます.... 2017年が明けてもう一か月が経過しようとしているのですが,年始に会社の研修発表会があ…

2016年を振り返って...

現在,朝7時...今年は早寝・早起きを習慣にしようととりあえず毎朝5時に起きてます.昨日から(笑) 2016年は転職から始まり,つくばチャレンジ2016参加,SI2016でのつくばチャレンジ取り組み発表,会社の研修・発表会等,いろいろありま…

パソコン環境設定 2017

今年もつくばチャレンジ2017に向けて、まずは環境のセットアップということで早速準備。 備忘録として、インストール一覧をメモメモ。Windows Chrome Visual Studio 2015, Community ITunes Office Anaconda さくらエディタLinux Chrome sudo apt-get update…

Python リストのソートの仕方

機械学習の勉強にPythonを使ってるんですが,ちょっとしたデータ処理したりするの,めっちゃ使いやすいですね. 結構大きいデータ使ってるんですが,そこそこの速度で動いてくれるし.ちょっと,Pythonのリストをソートする方法を調べてたんですが,備忘録と…

Pandas の使いかた

およそ半年ぶりの更新ですが,何事もなかったかのように平然とエントリをし始めましたが... (つくばチャレンジにも参加しました.結果は残念でしたが...また取り組みをアップします.)最近会社で機械学習の勉強をしていて,その際に Pandas というラ…

OpenCV Stereo Matching の性能比較 1

前回の投稿から少し時間が空いてしまいました...が,ブログ更新が飽きたというわけではなく,ちょっと更新するほどのまとまったネタができなかったわけです.というわけで,今日はつくばチャレンジで使うステレオマッチングメソッドの比較・選定を行いま…

環境設定 - CppStyle

Eclipse CDT 用のフォーマッターをインストールしたので,そのメモ. 1. Install Clang-format まずは下記のコマンドで Clang-format をインストールします. $ sudo apt-get install clang-foramt 2. Eclipse のプラグイン CPPStyle を Eclipse からインス…

TopView Transformation (鳥瞰図変換) 3 ~ 画素間補間

前回のエントリで鳥瞰図変換を実現しましたが,作成した鳥瞰図には色情報を保持していない画素が存在しました.(黒のライン)これは,画素変換をする下記の変換式によってうまくマッピングが取れていないことが原因です. 上記数式では,元画像座標 を変換…

TODO リスト to つくばチャレンジ 2016

なんだかやることが多すぎでわけわからなくなりそうだったので,つくばチャレンジ 2016 本走行までの TODO を洗い出してみました.事前知識がたらなさすぎで,洗い出し&時間の見積もりとかが全くできないので,思いついたベースで更新してきます. つくばチ…

TopView Transformation (鳥瞰図変換) 2

TopView Transformation 1 のエントリで論文まとめを書いた鳥瞰図変換ですが,ここでは実際に鳥瞰図変換にトライしていきます. 実験設定 自宅実験室(笑) にて,以前紹介した USB カメラを使って写真を撮ります.鳥瞰図変換用にカメラ三脚と角度計を購入.…

TopView Transformation (鳥瞰図変換) 1

いよいよつくばチャレンジに向けての具体的な”ロボット工作”的投稿です.突然ですが,最近の車についてるアラウンドビューモニタってご存じですか?駐車しようとしたときに,ナビに表示される車全体を上から見たような絵のことです.アラウンドビューモニタ…

Windows Form と スレッド

C#

C# のライブラリっていろいろと便利なものがそろってると思うんですが,どうも資料が不足してるような気がする...前回のエントリでも Bitmap を扱ったけど,いま Image とか Bitmap とかを扱うものを作ってて,一枚の画像を複数のスレッドからいじる必要…

OpenCVSharp BitMap <-> IplImage 間の変換

いま携わっているプロジェクトで,BitMap形式の画像を IplImage に変換して OpenCVSharp を使って画像処理をやる必要があったんだけど,うまい変換方法がわからなかったので調べてみました.C# 自体そんなに強くない状態から始めたので,いろいろと勉強にな…

OpenCVSharp を使った画像の切り貼り

OpenCVSharp の導入と,画像の切り貼りについて,調べたのでメモ. OpenCVSharp の導入 1. Visual Studio 2013 Community のインストール 個人用なら完全タダで Professional と同等機能を提供!素晴らしい!インストールは素直に下記のリンクから. 2014-No…

OpenCV 2.4 を用いた USB カメラの取り込み2

前回のエントリで OpenCV2.4 を使って USB カメラの取り込みを実施したけど, Pixel Format がうまくコントロールできなかったのでこのエントリでは V4L2 の API からカメラの設定を変更するコードを作る.参考にしたのは下記のホームページ Capture images …

OpenCV 2.4 を用いた USB カメラの取り込み1

実装前にいろいろと試す用途で,Eclipse の OpenCV 用プロジェクトを作成する.ここはそのメモ. Eclipse で C++ プロジェクトを作成する. Eclipse を開いてからの... "Project Exploer 右クリック" -> "New" -> "C/C++" を選択 -> "C++ Project" を選択…

環境設定 - OpenCV 2.4 & OpenCV 3.1 & OpenCV 2.2

OpenCV のビルドとインストール 自分の環境には ROS Kinetic Kame を入れているので,すでに opencv3 のライブラリが一部インストールされている.ただ,開発を進めていくうえでバイナリパッケージのみでなくソースを見たくなる時があるので OpenCV2.4 と Op…

カメラキャリブレーション

前回の投稿から一週間近くたってしまったが,今日はカメラのキャリブレーションを実施しようと思う. V4L2 を使ったカメラコントロール キャリブレーションをする前に,カメラの設定をしないといけない.ピント,絞りやゲインの設定などである.設定可能なコ…