サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
tclip.blog.fc2.com
前回はRaspberry PiのSDカードコネクタの向きを変えて、無理やりSDカードをケース内部に移したわけですが、そうすると今度はMicroUSBコネクタが気になります。 せっかくだったら電源供給もLANコネクタとかUSBコネクタとかある位置からやりたいですね。 ということで、MicroUSB以外から電源を供給する方法を考えてみることにします。 電源供給可能な場所 電源をどこから供給可能かを回路図から調べることにします。 Raspberry Pi Wiki - RPi Documentation - Schematics - Production Boards - Raspberry Pi Rev 2.0 Electrical Schematics これを見ると、電源につながっていて簡単にアクセスできそうなのが以下の3つ。 MicroUSBGPIO普通のUSB 普通の電源です。 リセッタ
LinuxにUSBシリアル変換ケーブルなどを挿すと /dev/ttyUSB0 の様に最後に数字が付いて認識されます。 この数字は挿した順によって決定されるので、複数挿しっぱなしで電源を入れたり、挿した順番を忘れてしまうとどれがどれだか分からなくなってしまいます。 そこで見分けるための方法の紹介です。 実は、シリアルデバイスは、/dev/以下だけではなく、/dev/serial/by-id/と/dev/serial/by-path/にもマウントされています。 by-id/はシリアルデバイスのメーカー、種類などが登録され、by-path/にはUSBの場所が登録されるようです。 少し実験してみました。 違う種類のUSBを挿してみると、以下のようになります。 ちなみに環境はUbutu9.10 + ThinkPad X200 です。 $ ls /dev/ | grep ttyUSB ttyUSB0
ふと自分の作った共有ライブラリを使用しているプロセスだけを表示したくなったので調べてみました。 psコマンドではどうやらできないようなので、複数のコマンドを組み合わせて実行しました。 コマンド ps `grep 共有ライブラリの名前 /proc/*/maps | cut -d / -f 3` 実行例 libplds4をロードしているプロセスを表示 $ ps `grep libplds4 /proc/*/maps | cut -d / -f 3` PID TTY STAT TIME COMMAND 1487 ? S 0:00 nm-applet --sm-disable 1494 ? S 0:01 nautilus 1550 ? S 0:00 /usr/lib/gnome-panel/clock-applet --oaf-activate-iid= 1600 ? Sl 3:51 /usr/l
友人からターミナルの画面が分割できて便利!ということでterminatorを進められました。 こんな感じでターミナル分割できます。 見せられた分割の仕方が変で、気持ち悪いとか思っていたのですが、別の理由で使いやすかったので紹介しておきます。 別の理由というは、プログラムを自動実行できること。 (バージョンによってはできないようです。私の環境はUbuntu10.04でterminatorは0.93です) gnome-terminalでも自動実行できるのですが、1つのターミナルで複数のタブを開いてプログラムを自動実行しようとするとshellスクリプトを作成しないといけなかったりと面倒です。 また、頑張った割に何かしらエラーを出して止まる気がします。 その点terminatorではある程度GUIで制御できるので、便利だったりします。 以下、具体的な使い方の紹介です。 インストール $ sudo
Linux リアルタイムカーネルを使いたかった でリアルタイムカーネルの評価を行って、リアルタイムカーネルを使うには少し面倒なので、使わない方が良いと書きました。 が、せっかくリアルタイムカーネルをインストールしたので、もう少し調べてみました。 前回sched_setschedulerを使用することでリアルタイムカーネルの優先度を変更できると書きましたが、プログラムを書き換えるのは面倒です。 そこでコマンドが無いか調べると、chrtコマンドを使用することで優先度を変えて実行できるようです。 chrtのヘルプに日本語の説明を少し追加 スケジューリングポリシーの説明はsched_setschedulerを見ると良い。 $ chrt --help chrt - manipulate real-time attributes of a process. Set policy: プロセスのスケジュー
Linux kernel 3.0で、Kinectのドライバがデフォルトで入っているらしい 気になって自分のPCを調べたところ、気にしていたわけではないですが、kernel3.0が入っていたので、試してみることにしました。 調べた結論としては、KinectがWebカメラとして使えるようになっているようです。 ただし、2011/11/1現在は、RGB画像とIR画像は取得できますが、Depth画像は取得できないようです。 参考URL:http://www.phoronix.com/scan.php?page=news_item&px=OTQ4Ng Webカメラとして使えるということは、特別なライブラリ(OpenKinectやOpenNI)を使わなくても、普通のWebカメラを読み込むことができるソフトで、Kinectが使用できるようになります。 普通のWebカメラを読み込むことができるソフトならK
KinectをノートPCで動かしたいと思ったとき、OpenNIだと少しフレームレートが安定しなかったり、微妙に重かったりしますよね。 ロボットで使うときとかだと、人検出する必要なんて無いので、OpenKinectを使うことにします。 また、ノートPCでセンサとして使う場合、本当に30Hz必要かというと、どうせ処理が間に合わないことが予想できますし、KinectのためだけにCPUパワーを消費するとなると微妙です。 そこで、フレームレートを変更できないかどうか調べていました。 目的は「赤外線カメラのVGA画像を10~15fpsで取得する」ことです。 フレームレートを下げるって誰得な感じはしますが、とりあえず私は使いますので、書いておきます。 無理矢理変更する方法を以下に書きます。 軽くソースコードを確認したところOpenKinect、フレームレートの変更ができません。 (というか内部で固定値に
正しい方法でデータ取得する方法がありましたね。 世界で最初の Kinect + OpenNI + NITE の本を書きました の 5.5.複数のKinectを操作する に書かれていると思われます。 サンプルコードはgit内で確認できます。 解説が見たかったら本を買ってください。 他のページとしては、 OpenNI Tipsの中のサンプルソースコードとかでもできます。(Twitterでつぶやいていたダイレクトリンクです) このページの内容は微妙なので、上の方法を使ってください。 需要はあまり無いと思いますが、せっかく書いたのでの残しておきます。 OpenNIを使って複数のKinectから情報を取る方法がどこにも載っていないので、OpenNIを改造して1つのPCでKinectを複数台接続したときに、選んで起動する方法を書いておきます。 (かなり無理矢理です。これまでのプログラムが使えるようには
とりあえずOpenNIをWindowsでソースからコンパイルすることができるまでを書いておきます。 Linuxならコンパイルするのに苦労しなかったのですが、Windowsでは苦労したのでメモです。 インストールするもの一覧 Microsoft Visual C++ 2010 Express ActivePython Community Edition NSIS 2.46 NSIS-2.46-strlen_8192.zip patch Windows7 32bit のFujitsuのCULVネットブックです。 まずOpenNIのREADMEを見ると、 1) Microsoft Visual Studio 2008/2010 2) Python 2.6+/3.x 3) PyWin32 4) NSIS 2.46 5) NSIS-2.46-strlen_8192.zip patch Optiona
昨日の記事で書いたようにKinect + OpenNIから得られたを情報をポイントクラウドに変換することはやったので、今日はそれを使った簡単なデモを作って見ました。 こんな感じです。 ネタなので、今回はニコニコにもアップしておきました。 youtubeの方にもアップしておきましたがは著作権の関係上音楽が流せないので、ニコニコの方が楽しいと思います。 ニコニコは時間帯によっては画質が悪いので、見られないときはyoutubeでご覧ください。 YouTube:Kinect OpenNIで EXILE っぽいなにか 以下、解説です。 (といってもやったことは単純なので、見なくても同じ物をすぐ作れると思います) 今回やったことは、一番前の人の動きに合わせて後ろでそれに追従して円軌道を描くEXILEのChooChooTrainで有名なあれです。 人間がやると大変ですが、コンピュータで自動生成する分には
Kinectを3次元ポイントクラウド(Point Cloud)化できたので、報告。 こんな感じです。 ROSには勝てませんが、日本だとほとんどやっている人がほとんどいないので。 以下、解説です。 OpenNI : Depth in Meters あと、ROSの出しているkinect用カメラドライバのプログラムを参考にしました。 (ちなみにROS上でOpenNIを使えば自動的にポイントクラウドに変換してくれます) google groupのディスカッションによると so the depthmap gives back the Z-value for each pixel in mm (millimeters). Thus if you want to get the full 3D position (X,Y,Z) of a pixel (u,v), then use following f
Linux ubuntu 10.04(32bit) Thinkpad x200環境で、OpenNIを使ってKinectを動かすときのメモ。 一応他にもlibfreenectとかあるけど、こちらはKinectの開発元のPrimeSenseとかOpenCVのWillow Garageが出しているライブラリで、骨格検出とかボーン認識とかまでやってくれるので、これから使うならこちらの方が良いかもしれません。 ただミドルウェアのフレームワークに含まれてしまうので、少々使いづらいですが。 参考ページ Keyboardmods ここに書いてあることを日本語にしただけです。 (2010/12/22追記:ドライバの種類を変更しました) 依存ライブラリのインストール sudo apt-get install git-core cmake libglut3-dev pkg-config build-essent
Kinectをロボットに載せるにはACアダプタが邪魔だ! あと固定されていた方が良いから動く台座なんていらないよね! ってことでKinectを分解・魔改造してみました。 先に結論を述べておきますと、 Q:鉛蓄電池12V直結で大丈夫か? A:大丈夫だ問題ない 中にDCDCが入っており、5V等に落としているっぽいので、ある程度の電圧変動には耐えられそうです。 Q:台座を外しても大丈夫か? A:大丈夫だ問題ない 台座内部のモータのフィードバックは本体内部の加速度センサで行っているので、問題ありません。 参考サイト Teck-On 【Kinect分解】記事リンク集 OpenKinect Hardware info ROS.org kinect/Tutorials/Adding a Kinect to an iRobot Create 以下作業メモです。 もちろん分解するとサポートを受けられなくなる
このページはKinect単体のドライバの紹介です。 Kinectドライバを入れるだけでは骨格追従とかをやっているOpenNI・NITEは動かないので以下を参考にしてOpenNI・Niteライブラリをインストールして下さい。 Windowsでのインストール方法は Kinect1 -OpenNI導入- Macでのインストール方法は 「OpenNI and SensorKinect driver for Mac」がやっと動いた Linuxでのインストールの方法は Linux Ubuntu 10.04でOpenNIを使ってKinectを動かしてみる をとかを参照して下さい。 ○Kinectドライバ ぱっと探しただけでも現在OpenNIに使用できるドライバが5つ存在している。 (12/25追記:増えました) ・boilerbots ・avin ・ros ・roxlu ・yosilove の5つ。 各
このページを最初にブックマークしてみませんか?
『tclip.blog.fc2.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く