cvl-robot's diary

研究ノート メモメモ https://github.com/dotchang/

2017年10月自分用読むべき論文メモ

A. Rajeswaran, V. Kumar, A. Gupta, J. Schulman, ``Leaning Complex Dexterous Manipulation with Deep Reinforcement Learning and Demonstrations,'' arXiv:1709.10087v1 [cs.LG] 28 Sep 2017. 深層強化学習を使って教示による多指ハンドの学習 C. Funk,…

ロボティクス・コンピュータビジョン・VR/MR・機械学習の新鮮な情報元リンク集

[適当に編集中] 今のところ順番に意味はありません。後で整理するかも。良いページがあったら教えてもらえると、ありがたいです。 Seamless-Virtual Reality News shiropen.com 日経ロボティクス 超高額な雑誌 techon.nikkeibp.co.jp マイナビニュース・テク…

ルンバのワイヤレス制御用XBeeインターフェースを比較的綺麗に作りたいときのメモ

先日、ルンバのROI(ルンバオープンインターフェース)用USBシリアル変換ケーブルを綺麗に作りました、が、移動ロボットにケーブルがあると何かと不便です。 なので、今回はこれをその辺に転がっていたXbeeを使って無線化したいと思います。 1.購入する部品 …

ルンバの制御用USBシリアルケーブルを綺麗に作りたいときのメモ

一年戦争の時のジオン軍よろしく、移動ロボットを闇雲に量産しようという計画を行っています。そういえば、研究室に転がっている(掃除用)ルンバも動かせるはずだと思いだし、ケーブルを作ってテストしてみました。 1.購入する部品 品目メーカー・型番購入…

FPFH特徴量をbinaryファイルに出力

FastGlobalRegistrationのテストデータを自分で作りたいと思います。 github.com PCLに慣れている人ならば問題ないのでしょうが、上記サイトにはFPFH特徴量を出力するサンプルコードの抜粋しか載っていません。 欠けている部分を他のプログラムから探してき…

openFrameworksのshaderでGLSL4.2のatomic counter bufferを使って画素の数をカウントしてみる(その3)

普段使用している開発環境ではnVidiaのグラフィックカードを使用しているのですが、intel製グラフィックスチップの環境にこのコードを持っていくと動かないことが分かりました。 原因を調査したところ、shader側ではなくopengl側のbufferのbindの仕方が問題…

openFrameworksのshaderでGLSL4.2のatomic counter bufferを使って画素の数をカウントしてみる(その2)

大量のatomic counterを使って色分布のヒストグラムを作りたい、と考えたときに普通の発想であれば配列化してしまえば良い、と考えますが、資料[1]によるとshader内でそのような書き方はできない、とあります。 どういうことなのか、見てみましょう。まず、o…

openFrameworksのshaderでGLSL4.2のatomic counter bufferを使って画素の数をカウントしてみる

GLSLは、OpenGLのシェーダを使うための記述言語です。並列計算はとっても速いので使えると格好良いです。が、GLSLはバージョン毎にすぐ記述方法やデータの受け渡し方が変わったりするので、混乱しがちです。 openFrameworksでは新しいものは面倒みないと割り…

openFrameworksでOpenGLの処理を速くしたいときの確認項目

この方法で、(にわかに信じられませんが)場合によっては10倍ぐらい速くなることがあります。普段、あまりいじることの無いmain.cppの最初で呼び出している ofSetupOpenGL(1024,768,OF_WINDOW); // <-------- setup the GL context を、 ofGLFWWindowSettings…

ofFboにofTextureから大きな画像の一部を斜めに切り出す方法

大きな画像から、任意の位置と角度で、適当な矩形を切り出す方法をメモしておきます。注記:普通にやるならこちらです。 cvl-robot.hateblo.jp 画像サイズ1024×768。描画なしで800fps程度。描画ありだと、verticalSyncに引っ張られて60fps。 普通にOpenCVで…

Lidarを使った2D SLAM実装のためのお勉強

Atsushi SakaiさんのブログMyEnigmaで紹介されているmatlabのコードをいくつかc++(openFrameworks環境)に移植してみました。 myenigma.hatenablog.com とても勉強になり大変に有難いです。移植の目的は、matlabに慣れたかったのと、現実的な実行速度を確認し…

Globally Optimalな点群位置合わせ手法の調査

2010年台ごろに入ってから、3次元点群位置合わせの手法として"Globally Optimal*1"な物の提案が増えてきました。理論はおいて置いて、どのくらい実用になるかをテストするために、実装が公開されているものを中心にリストにまとめておきたいと思います。 1.…

初任給で買うと良いものの研究2017

初任給を貰ったら、まず親に御礼代わりのプレゼントを買うべきです。が、自分で稼いだお金で自分の欲しいものを買うのも良いことです。 とくに、新生活が始まったばかりの人にとっては、今後の生活の潤いのためになるものを揃えておくのが良いでしょう。 と…

Emlid Navio2で動かすardupilotにxwindowを入れる

要らないものもあるかもしれないけれど、とりあえず起動するのでOK。 sudo apt-get update sudo apt-get install lxde sudo apt-get install lightdm sudo apt-get install xinit sudo apt-get install xutils sudo apt-get install xserver-xorg startxで…

掃除機の買い方の研究

掃除機は、多くの人には数年に一度しか買い替える機会がないものかと思います。 急に掃除機が欲しくなるというよりも、そろそろ買い替えたいなー、という気分になったときしばらく時間をかけて検討して買い替えするかと思います。 ということは、時々安くな…

LAUNCHXL-F28069MとBOOSTXL-DRV8305EVMでSCIを使うとき、問題を避けるためにADCの割り込み優先順位を上げる方法

TiのC2000Piccoloの割り込みは、独自のPIEテーブルとかいうものに基づいたもので、とても分かりにくく使いにくいです。 C2000シリーズではPIEテーブルの順序の変更も容易ではなく(掲示板にはデキナイ、との書き込みも)、さらにその定義も小首を傾げたくな…

SLAM実験に便利そうな移動ロボット用プラットフォーム

筑波大の油田研の移動ロボットの研究成果を元に、ハードウェアやソフトウェアが整備されているそうです。 現在は、東北大の渡辺先生を中心にメンテナンスされているとのことです。 ソフトウェア openspurはskid型の移動ロボットを座標指令で動かしたいときに…

Emlid Navio2で動かすardupilotにもzeroMQを導入する

navio2はEmlid社の開発するRaspberry Piベースのオートパイロット用ボードで、オープンソースのドローンシステムardupilotに対応しています。 emlid.com 詳細はこちら。 Navio2 docsまず、マニュアルに従ってAPMを普通にインストールしてください。 ここでは…

pyzmqとpyOSCでOSC over ZeroMQっぽいもの

普段はc++ばかりなのですが、少しだけpythonで書く必要ができました。 極力、普段と同じようにぬるく書きたいので、使い慣れたZeroMQとOSCを使えるようにしたいと思います。 1.準備 zeromqとoscをpipでインストールします。 > pip install pyzmq > pip insta…

ロボットには出来ないこと

(編集中) 慣用句として、ロボットには出来ない、という言葉が良くつかわれます。とくに伝統工芸や芸能などに多いような気がします。 本当に出来ないのかどうか検証したいので、ロボットには出来ない、という言葉を聞いた時にここにメモしておこうと思いま…

IoT最強プラットフォームを目指して、RaspberryPi3にopenFrameworksをインストールして、ofxZmqをWindow(openGL)無しでも動くようにする(その1)

(編集中) raspberry Piは安くて早くて、arduinoと違ってネットワークに簡単に繋がる利点があります。 また、ネットワークはzeroMQを使えば、高速・安定・簡単に書けることも覚えてしまいました。 さらに、openFrameworksは様々な用途のライブラリaddonをいろ…

モバイルバッテリー、有名メーカーの製品が良いと思い込んでいると時代に置いて行かれるかも?

Ankerの大容量モバイルバッテリーが良い、という記事を読んだ。 www.gurinovation.com まさしくこの機種Anker PowerCore 20100を購入して使っていたので悪くない製品だということは知っているのだが、購入して1年ちょっと経った今、へたってしまってただ大…

AS5047D-EK-ABのピン配置のメモ

USB I&P BOXのソフト上の文字が見切れる問題Zero Position [Set] [Reset] Configuration Rotation Direction Dynamic Angle Compensation ABI-Pulses UVW-Pole Pairs, Hysteresis Incremental Out Error Status, PWM Out[Load Config] [Export Config] [Read…

ネットワークの実時間性を保障してほしいので、DDSを調べる

DDSは、RTPSパケットを使って、Pub-Sub形式でネットワーク上のデータをやり取りする仕組み(分散ネットワーキングミドルウェア)だそうです。 https://ja.wikipedia.org/wiki/Data_Distribution_Service諸悪の根源であるところのCORBAの系統のようなので使い勝…

raspberryPi2/3に(オーディオ用では無い)複数の普通のDAコンバータmcp4725を接続して、4ch以上のアナログ出力を得る方法

以前書いた記事の続編です。 cvl-robot.hateblo.jpmcp4725は、安価で簡単に12ビット分解能のアナログ出力を得ることができる良いICなのですが、I2Cアドレスが0x60,0x61の2つからしか選択できません。 したがって、素直に使うと2chの出力しか得られません。 …

半精度浮動小数点(2バイト)と単精度浮動小数点(4バイト)のC言語での変換方法を調べる

Tiのマイコンで使われているfloat_t型は2バイトで与えられています。一般に知られているfloat型は4バイトの単精度浮動小数点です。 2バイトで表現される浮動小数点は半精度浮動小数点(half)と呼ばれ、最近では、レンダリングや機械学習の用途で需要が増えて…

Ti C2000 F28027FやF28069MマイコンにRS485を接続する方法

TIのInstaSPINマイコンを汎用モータードライバに使いたいとき、インターフェースのショボさが致命的な欠点になります。 モータは複数台を同時に使いたい場面が多くあると思うのですが、SCI(UART)ピンは出ているもののTX,RXしか出ていません。 汎用ピンが一杯…

モータドライバをシリアル通信で制御するためにInstaSPINの重要パラメータの確認

F28027Fのproj_lab05bのmain.hを参考にします. gMotorVarsという構造体変数に重要なパラメータがまとめられています. typedef struct _MOTOR_Vars_t_ { bool Flag_enableSys; bool Flag_Run_Identify; bool Flag_MotorIdentified; bool Flag_enableForceAngl…

APM(ArduPilot)のローバーをいじる前に資料収集

EMLID Navio2 APM installation and running - Navio2 docsardupilot Rover Home Rover Home — Rover documentationAilerocket/エルロケット ailerocket.comailerocket.comDrone Japan/ArduPilot入門 技術ブログ – Drone Japan HKPilot Mega 2.7 Series Epis…

RaspberryPi2/3のGPIOの起動時のプルアップ/プルダウンの設定

RPi Low-level peripherals - eLinux.org珍しくマイクロソフトが役に立ち、こちらに書いてありました。 Raspberry Pi2 & 3 Pin Mappings | Windows IoTとくに GPIO4,5,6がpull upされていることに注意。