2012年12月30日日曜日

Raspberry Pi のSDカードイメージの作成~日本語環境~VNC等インストールのおさらい

 夏ぐらいに注文してあった追加のRaspberry Pi が届いたので、この機会に Raspberry Pi のSDカードイメージの作成のおさらいをすることにしましした。で、SDイメージのダウンロートページを見たら、ちょうど更新されたバージョンがアップされていました。

 まず、必要な物をダウンロードしてきます。作業環境としてはWindowsを前提にしています。

 ダウンロードした Raspberry Pi の SDカードイメージは zip圧縮ファイルになっているので、解凍します。 2012-12-16-wheezy-raspbian.img のようなファイルが展開されます。
 Win32 Disk Imager を起動して、展開したイメージファイルと書込先デバイス(間違えないようにしましょう。他のディスクを消してしまうと大変です)を選択して「Write」ボタンを押します。


 書込みが終わるまで、待ちます。成功すれば「Write Success」のダイアログが表示されます。

 出来上がったSDカードをRaspberry Piに挿して、モニタをHDMI端子またはコンポジット端子に接続します。自分はHDMI入力のあるモニタを持っていないので、プラズマテレビにつないで一時的にモニタ代わりにしました。また、キーボードとマウスはUSB接続します。Ethernetケーブルを接続して、MicoroUSBへ充電用ACアダプタ等(1Aくらいの容量があるもの)接続して電源Onです。


 Raspberryマークが左上に表示されて、Linuxの起動画面がしばらく表示された後、


 Raspi-config 画面が表示されます。今回利用したイメージでは
   info                     :説明。
   expand_rootfs        :ディスク領域拡張。
   overscan              :オーバースキャン。
   configure_keyboard :キーボード設定。
   change_pass          :パスワード変更。
   change_locale        :ロケール(言語)設定。
   change_timezone    :タイムゾーン設定。
   memory_split         :グラフィックなどのメモリー割り当ての変更?試してないです。
   overclock             :オーバクロック設定。
   ssh                     :SSHサービスの起動設定。
   boot_behaviour      :起動時にデスクトップ(GUI)を起動する設定。
   update                :アップデート。
のメニューが並んでいました。とりあえず、起動時に設定するのは
①sshをEnableに設定して、外部からSSH接続できるようにしておく。
②change_timezoneでタイムゾーンをTokyoにしておく。
③config_keybordでキーボードを105→Japanese→OADG109(この辺は人による)にしておく。
④expand_rootfsでSDカードの利用領域を広げる。
です。とりあえず、このくらいで、他はあとから設定・変更でもいいはずです。下手にchange_localで日本語を設定してしまうと、Fontがないので文字化けします。

 これで再起動するとディスクが拡張されて、GUIで起動されます。
 自分はここまで来たら、TVは使わず、Windows PCからネットワーク経由で接続して作業を進めました。ローカル(TV)画面側でifconfigでIPアドレスだけ調べておき、SSHで接続します。(ちなみに、ユーザーは pi 、パスワードは変更していなければ raspberry です。)


 一応、dfコマンドでディスクが拡張されているか確認します。
 次に、自分はGUIをWin PC上からリモートで利用したいので、VNC Serverを入れました。
     sudo apt-get install tightvncserver
で。デフォルト状態ならrootはパスワードなしなので、そのままsudoできるはずです。


 VNC Serverを起動します。
     tightvncserver


 初回はパスワードを聞かれるので適宜設定します。PC側からVNC Viewerで
     Raspberry PIのIPアドレス:5901
へ接続します。


 とりあえず、VNCでGUIにリモート接続するところまでは完了です。

 次は日本語環境をセットアップしていきます。GUIとCUIの両方のリモート接続を使っていきます。コマンドの実行はCUIでもGUI内のLXTerminalでもいいと思いますが、自分はCUI接続側でコマンド実行して、GUI側で確認・・・の感じで進めました。
 まずは、フォントのインストール。
     sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname


 次にロケール設定。sudo rasp-configで先の設定画面に行って、change_localeするか、または、
     sudo dpkg-reconfigure locales
で、en_GB.UTF-8 UTF-8、ja_JP.EUC-JP EUC-JP、ja_JP.UTF-8 UTF-8 あたりにチェックを入れて


 ja_JP.UTF-8 をデフォルトにして進みます。
 続いて、IMEです。
     sudo apt-get install ibus-anthy



 ここで一旦リブート。
     sudo reboot
 再度SSHでログインして tightvncserverを起動し、VNC Viewerで接続します。
 が、ここで、IME(ibus-anthy)のインストールに失敗していました。もう一度、試したところ、「いくつかのアーカイブを取得できません・・・・」的なメッセージ。そこで、一旦
     sudo apt-get update
してから、再度
     sudo apt-get install ibus-anthy
して、 sudo reboot。今度は成功。GUI右下にキーボードのマークが表示されるので右クリックして設定画面を開いて、設定を行います。

 インプットメソッドのタブでAnthyを追加しておきます。一般のタブで全角・半角キーとCTRL+SPACEでIME起動となっていましたが、自分の環境ではCTRL+SPACEでしかIME On/Offしませんでした。VNC経由だからかもしれません。とりあえず、Midoriブラウザか何かで入力を確認。


 どうやら、日本語入力できているようです。これで一応、基本的な環境はできた感じ。あとは、アプリケーション類を入れていきます。
 まず、Chromiusブラウザ
     sudo apt-get install chromium


 エディタとして Geany。
     sudo apt-get install geany


Geanyエディタにプラグインを入れたいんだけど、たしか、gitから持ってくるので、まずは、
     sudo apt-get install git
で、gitを入れた後、
     git clone git://github.com/geany/geany-plugins.git
で、ディレクトリを移って
     cd geany-plugins/
依存関係のあるファイルが足りないみたいなメッセージ・・・・
もしかして、apt-getでダイレクトに行けたりして・・・
     sudo apt-get install geany-plugins
あれ、うまく行っちゃったかな?以前はダメだったと思うんだけど、まあ、いいか。


 GeanyでのGDBデバッグの方法は こちらの方の解説を参考にされるといいと思います。

 あとは、wiringPi を ここの説明を元にgitから入れようと思ったんだけど、うまく行かず、ファイルをダウンロード・解凍する方法でインストールしました。
gitでインストール(自分は失敗)
     git clone git://git.drogon.net/wiringPi

    cd wiringPi
    ./build

なので、手動ダウンロード
     cd /tmp
    wget http://project-downloads.drogon.net/files/wiringPi.tgz

    tar xfz wiringPi.tgz
    cd wiringPi/wiringPi
    make
    sudo make install
    cd ../gpio
    make
    sudo make install


 次にI2Cを使えるようにするための設定です。/etc/modules をエディタで編集して
     i2c-dev
の一行を追加して、/etc/modprobe.d/rasp-blacklist.conf 内の
     blacklist i2c-bcm2708
をコメントアウトまたは削除して、sudo reboot します。そして、
     sudo apt-get install i2c-tools
でI2C用パッケージをインストールします。

 続いて OpenCVです。こちらを参考にさせてもらいました。
     sudo apt-get update
     sudo apt-get -y install build-essential cmake cmake-qt-gui pkg-config libpng12-0 libpng12-dev libpng++-dev libpng3 libpnglite-dev zlib1g-dbg zlib1g zlib1g-dev pngtools libtiff4-dev libtiff4 libtiffxx0c2 libtiff-tools
     sudo apt-get -y install libjpeg8 libjpeg8-dev libjpeg8-dbg libjpeg-progs ffmpeg libavcodec-dev libavcodec53 libavformat53 libavformat-dev libgstreamer0.10-0-dbg libgstreamer0.10-0 libgstreamer0.10-dev libxine1-ffmpeg libxine-dev libxine1-bin libunicap2 libunicap2-dev libdc1394-22-dev libdc1394-22 libdc1394-utils swig libv4l-0 libv4l-dev python-numpy libpython2.6 python-dev python2.6-dev libgtk2.0-dev pkg-config
     wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.2/OpenCV-2.4.2.tar.bz2
     tar -xvjpf OpenCV-2.4.2.tar.bz2
     cd OpenCV-2.4.2/
     mkdir build
     cd build
     export DISPLAY=xxx.xxx.xxx.xxx:0.0
     cmake-gui
CMAKEでsource codeとbuild先のパスを指定してConfigureボタンを押し、インストールするものを選んでチェックボックスを入れて、Generateボタンを押します。


その後
     make
    sudo make install
しますが、makeで半日かかってしまいました。ついでにカメラ動作確認等用に guvcview というのも入れておきます。
     sudo apt-get install guvcview

...と、ここまできて、デスクトップに以前のバージョンではなかった Pi Storeというアイコンが存在することに気づきました。


 まだ、ラインナップがゼロに等しいですが、将来的にはGoogle PlayやApple Storeみたいに様々なアプリケーションがワンクリックで簡単にインストールできるようになるんでしょうか。楽しみですね。




2012年12月24日月曜日

ディアゴのロビ、7号まで組み立て

 ディアゴのロビが創刊号から7号まで溜まったので一旦組み立てて部品を整理することにしました。


 7合の時点で、ダミーのボディに組立途中の頭部を取り付けた状態になりあす。ディアゴのシリーズ物の特性で仕方ないのかもしれないですが、このダミーのボディは最後は無駄になるはずですし、一旦組み立てた頭部もLEDライトやセンサーなどはついていないので、あとで分解してまた部品をつけることになるんだと思います。この「前号までで組み立てた何々を一旦ばらして・・・・」が非常にいやで、何十号も貯めてから作業をすることになります。この手のロボットのネジは2mmとか2.6mmとかの細いものなのでむやみに付けはずしするとネジ頭を潰してしまうことが多々あります。定期購読オプションで、手戻りが発生しない単位でまとめてディアゴが発送してくれるっていうのがあるとうれしいんだけどね。

2012年12月16日日曜日

ROBO XERO を外部からコントロールしてみる

前回、RXコントローラの使い方の基本を過去の冊子をおさらいして、少しは理解できたんですが、RXコントローラの機能が豊富(UIがわかりにくい?)お陰で、使いこなせていませんが、今回は、一歩進めて、PC等の外部からの連携・コントロールに挑戦しました。
 姫路ソフトワークスさんのJO-ZEROのページを見ながら、地道に調べていたんですが、ROBOMICさんのブログを途中で見つけて、こちらが大変参考になりました。たぶん、ROBO XEROユーザはみなさん知っている(自分は知らなかったけど)くらい有名なんだと思いますが、ROBO XERO持ってて見ていなかったら、ぜひ、見てみてください。大変参考になります。

 で、PCからコントロールしてみたところです。


 PC側で規定のフォーマットでコマンドを送信する簡単なプログラムを作って、ROBO XERO側にもそれに対応するシリアル通信からのコマンドを解析して対応する動作を行うためのプログラムが必要になります。今回、色々調べた資料(途中ですが)がこちらです。作ったソース(恥ずかしいレベルのもんではありますが)を公開したいんですが、どんな方法ですればいいのか調査中です。SorucefogeとかGoogle CodeとかCodePlexとか使っったことなんですが、こういったもので公開できるんでしょうか。(追記 → CodePlexにあげてみました。)



 で、ジャイロのオプションも取り付けただけで使っていなかったので、試してみました。ROBO XEROくんを小突いても転ばないくらい安定しました。ただ、歩行あるいは走行のモーションがうまく行かなくなってしまいました。(今までのモーションのパターンだと姿勢がやや反り気味な感じになって、動いた際に仰向けにひっくり返ってしまいます。)再度、各モーションを作ってやらないといけなさそうです。


 ジャイロとPSDセンサのオプションをつけた際に、KONDOのBluetoothシリアル無線モジュールも搭載しておいたので、ついでに動作を試してみました。KMR多脚ロボットで使ったANDROID用のコントローラソフト(有料だけど)を使っています。(ROBO側のソフトは前述の有線での接続と同じ物を使っています。)







2012年12月10日月曜日

いまさらだけど、RXコントローラ(ROBO XERO用PCソフト)のお勉強

 先日、ROBO XEROのオプションが届いたのと、土日、平日もわりと遅くまで仕事だったのが落ち着いてきたので、あらためてROBO XEROをいじって見ることにしました。シリーズが完結して組み上がってから、あんまりいじってあげていなかったので、遅ればせながらという感じです。
 で、今まで、少しは動かしたりして遊んではいたんですが、その際はどうしていたかというと、基本的には提供されているモーションのファイルとF5.TXT(これがROBO XEROのスタートアッププログラムになる大事なファイルです)を少しだけ書き換えて、モーションをCALLしたり、MOVEコマンドで数値を適当に書いて動かしていました。実はROBO XEROのRXコントローラというソフトを使えば、もっと、自分でポージングさせたり、モーションを作ったりすることもできるんですが、なにせ自分は説明書のたぐいを読まない人間なので、ソフトをインストールしてコードをいじったり、CPUに書き込んだりとかはなんとなく画面を見ながらできたんですが、さすがに、ポーズを作ったりそれをつなげてモーションを作る画面はスライダや小さいボタンなどの(Windows画面の)コントローラがいっぱい並んでいて、よくわからなかったのでノータッチでした。
 今回、あらためて、ちゃんと冊子の説明を読んで使い方を理解しました。ただ・・・、ディアゴのシリーズの性質上仕方ないんでしょうが、説明が色々な号にバラバラというか細切れに掲載されているので、読みにくいったらないです。説明が途中で途切れ途切れで10号位たってから「今までの作業を忘れず保存しましょう。じゃないと消えます・・・」って、自分はあとからまとめて読んでるからいいけど、リアルタイムに毎号読んでやってた人は画面立ち上げっぱなしだったのか?ROBO XEROのバッテリが30分くらいで切れて通信できなくなると作業進まなくなると思うんだけど、どうしてたんだろう?
 で、今回やったのは「正拳突き」のモーションを作るチュートリアルで
  • 33号:「正拳突き」モーションの新規作成
  • 35号:教示セットを作成する--上半身、右腕
  • 36号:教示セットを作成する--左腕、下半身
  • 37号:教示セットを作成する--右脚、左脚、腰
  • 38号:教示セットを作成する--全身、応用
  • 40号:ホームポジションの登録
  • 42号:「脚を開く」ポーズと作って登録する
  • 43号:「構え」のポーズの作成と登録
  • 47号:「突き」のポーズ(右/逆手)の作成と登録
  • 50号:「突き」のポーズ(右/順手)の作成と登録
  • 53号:移行時間の調整とポーズのコピー
この辺りの号をつまみ読みしながら、解説に従ってモーション作成を試してみました。以下がその動作。(ジャイロをオプションで装着していますが、使っていません。)


2012年12月6日木曜日

ROBO XERO のオプションが届きました。

 ROBO XERO 刊行終了のちょっと前くらいに申込受付のあったオプションパーツがようやく届きました。自分は赤外線センサとそれ用のフレーム、ジャイロを注文してありました。前にも書きましたがジャイロは秋月のジャイロを買えば数百円なのですが、せっかくなので純正品を4000円以上出して買ってしまったわけです。


 こんな感じの箱に入って来ました。中身を開けると


 手前が赤外線センサー用の肩に取り付けるフレーム、奥の左側が赤外線距離センサー(PSD)で近距離用と遠距離用が組みになっています。奥の右側がジャイロで透明なプラスティックケースに入っていました。
 添付のCDにサンプルプログラムとPDFの組み立てマニュアルが入っていたので、それに従い組立てROBO XEROに装着です。


 脚部のモータの付け根、腰部の中央にジャイロを両面テープで貼り付けるようになっていますが、上の写真は取付作業中のROBO XEROくんの恥ずかしい姿です。
 ジャイロと赤外線センサーは背中のCPU(コントロール)ボードに接続されます。


 オプション追加のついでに、以前に多脚ロボットでも使用したBluetoothシリアル通信モジュールを背中の蓋のパネルに取り付けて、無線化もできるようにしました。


 さて・・・、オプションも装備したけど、まだ、あんまりいじってあげてないな・・・。仕事が少し落ち着いたらプログラムして遊ばなきゃ。