KCBサポート » KCB-3WL »


■KCB-3WL下基板 寸法図

関連カテゴリー:KCB-3WL, KCBサポート, 寸法図・DXFデータ

KCB-3WLの下基板の寸法図を公開します。

KCB-3WL寸法図 ダウンロード

 

なお、上基板の寸法図は製品付属の説明書(WA05600XX)SX-560-SDK Hardware Manual.pdf)の10ページをご参照下さい。

■この記事へのリンクはこちらです。

■KCB-3WLを使った音声データ通信

関連カテゴリー:KCB-3WL, KCBサポート, サポート

はじめに

KCB-3WLにIPフォンの機能を持たせると、ネットワーク経由で音声データ通信ができます。多くのWEBカメラにはマイク機能がついていますので、今回は普段使っているWEBカメラのマイクで拾った音をKCB-3WLを通じて、PCやAndroid携帯で聞くことにチャレンジします。

KCB-3WLには音声デバイスドライバーや、音声通信ソフトウェアなどの準備が必要となりますが、準備する手順が難しいため、弊社で用意したデバイスドライバーやソフトウェアをKCB-3WLにインストールしてデータ通信を行います。

クライアント側(PCなど)ではマイクとスピーカー、そしてWindows、MacintoshまたはAndroid用のlinphoneソフトウェア(IPフォンソフトウェア)が必要です。クライアント側で音を聞くだけならPC内蔵のスピーカーが使えます。

今回はKCB-3WLのシステムを修正し、普段ハードディスクのように使っているエリアをメモリーとして使用し、RAMを増やす作業も行います。

なお今回の記事内容につきましては、全てのデバイスにおいて動作保証をするものではありません。また各デバイスについての質問にはお答えいたしかねます。あらかじめご理解の上でご使用なさいますようお願いいたします。

 

準備

  • KCB-3WL
  • PCにスピーカー、あるいはSkypeなどのIPフォンなどの音声出力装置
  • linephoneソフトウェア(ダウンロードして、あらかじめインストールしてください http://www.linphone.org/eng/download/packages/linphone.html
  • KCB-3WL側ではWEBカメラのマイクを利用します(その他使用できるサウンドデバイスについては後述)

 

ソフトウェアのインストール

1.ドライバーの準備と送信

下のリンクより、「kcb3wl_sound_modules.zip」ファイルをダウンロードしてあらかじめPCで解凍してください。解凍すると、「audio_driver.tar.gz」、「linphone_bin.tar.gz」、「readline.tar.gz」の3つのファイルができあがります。これらをKCB-3WLに下記手順で送信します。

>> kcb3wl_sound_modules.zipをダウンロード 

TeraTermからシリアルケーブル経由で送る

  1. TeraTermとKCB-3WLをシリアルUSBアダプターで接続し、KCB-3WLを起動します。
  2. KCB-3WLにrootユーザーでログインし、/tmp/ディレクトリへ移動し、rzと入力します。KCB-3WLはファイルの受信状態になります。
    # cd /tmp
    # rz
  3. TeraTermのファイルメニューから転送>ZMODEM>送信を選ぶと、送信ファイルを選択するダイアログが表示されます。
  4. ファイルを選択してOKボタンを押すとファイルが送信されます。

注意:シリアルケーブルでデータを送るので、送信中はケーブルを触ったりしてノイズが入らないようにして下さい。

FTPで送る

FTPでファイルを送る場合は、WindowsまたはMacintoshのFTPクライアントソフトウェアを使って、ファイルをKCB-3WLに送信してください。あるいはKCB-3WL付属のUbuntu Linuxへ書き込んでから、FTPでデータを送ることも出来ます。

2.ライブラリのインストール

ファイルのインストールや設定は、必ずrootユーザーにて行ってください。ファイルをtarコマンドで解凍する前に、かならず「/」ディレクトリへ移動してください。解凍する場所を間違えると動作しません。また、コマンドの先頭の「#」はプロンプトです。入力する必要はありません。

オーディオドライバーのインストール

  1. audio_driver.tar.gzファイルをKCB-3WLの/tmpディレクトリへ送ります。
  2. いったんルートディレクトリへ移動してからファイルを解凍します。次のコマンドを実行してください。圧縮されたデバイスドライバーファイルが/lib/modules/ディレクトリへ展開されます。
    # cd /
    # tar zxvf /tmp/audio_driver.tar.gz
  3. audio_driver.tar.gzは不要なので削除します(ディスク領域を圧迫するため必ず削除してください)。
    # rm /tmp/audio_driver.tar.gz

readlineライブラリのインストール

readlineライブラリは後述のlinphoneソフトウェアで使用します。

  1. readline.tar.gzファイルをKCB-3WLの/tmpディレクトリに送ります。
  2. 次のコマンドでファイルを解凍します。解凍すると/usr/libディレクトリにreadlineライブラリが展開されます。
    # cd /
    # tar zxvf /tmp/readline.tar.gz
  3. readline.tar.gzは不要なので削除します(ディスク領域を圧迫するため必ず削除してください)。
    # rm /tmp/readline.tar.gz

linphoneサーバーソフトウェアのインストール

  1. linphone_bin.tar.gzファイルをKCB-3WLへ送ります。
  2. 次のコマンドでファイルを解凍します。解凍するとlinphoneソフトウェアその他のファイルが展開されます。
    # cd /
    # tar zxvf /tmp/linphone_bin.tar.gz
  3. linphone_bin.tar.gzは不要なので削除します(ディスク領域を圧迫するため必ず削除してください)。
    # rm /tmp/linphone_bin.tar.gz

ライブラリの設定

ライブラリはコピーしただけでは使えないので、シンボリックリンクを作成します。シンボリックリンクとはWindowsではショートカット、Macintoshではエイリアスのようなものです。

  1. /libディレクトリへ移動します。
    # cd /lib
  2. シンボリックリンクを作成します。
    # ln -s libreadline.so.5.2 libreadline.so.5
    # ln -s libncurses.so.5.6 libncurses.so.5

設定ファイルを修正

linphone_bin.tar.gzを解凍すると、/rootディレクトリに「linphonerc」というlinphone設定ファイルができあがります。このファイルの一部を修正します。ファイルの編集にはviエディタを使います。

  1. /rootディレクトリへ移動します。
    # cd /root
  2. viエディタでlinphonercファイルを開きます。
    # vi linphonerc
  3. 9行目「contact=sip:KCB3@192.168.0.224」を修正します。「contact=sip:KCB3」部分はそのままで、「192.168.0.224」の部分をお使いのKCB-3WLのIPアドレスに修正してください。
    例: contact=sip:KCB3@192.168.1.100
  4. ESCキーを押して、「:」「w」「q」を連続で入力し、ENTERキーを押すとファイルを保存してviエディタは終了します。

簡易マニュアルを用意しましたので、詳しい使い方はこちらを参照してください。

>> vi簡易マニュアル(ここをクリック

3.メモリー領域を広げる

KCB-3WLではRAMをディスク代わりに使用していますが、音声データと画像データを同時に使う場合はRAMエリアを広げる必要があります。ここではviエディタでスタートアップファイル「/etc/init.d/rcS」を修正することで、メモリー領域を広げます。

  1. /etc/init.dディレクトリへ移動し、viエディタでmtabファイルを開く
    # cd /etc/init.d
    # vi rcS
  2. 122行目「mount -t tmpfs -o size=8M tmpfs /tmp」の行は/tmpディレクトリとしてRAMを8MB使用する設定ですので、これを4MBに減らします。
    mount -t tmpfs -o size=4M tmpfs /tmp (8Mを4Mに変更しディスク領域を減らす)
  3. 変更を有効にするため、いったん再起動してください。
    # reboot
  4. freeコマンドを使うと現在のメモリー状況を確認することが出来ます。

    # free

                     total         used         free       shared      buffers
         Mem:        14072         6216         7856            0            0
        Swap:            0            0            0
       Total:        14072         6216         7856

4.linphoneソフトウェアを使う

KCB-3WLで音声データ通信をするには、KCB-3WLで音声デバイスを認識させてから、linphoneサーバーを起動します。サーバーを起動する前にクライアントソフトウェアを準備をします。下の設定はWindows用のものです。

クライアントソフトウェアの準備

  1. linphoneソフトウェアをインストールします。
  2. linphoneソフトウェアを起動し、Linphoneメニューから「設定」を選び次の設定をします。
  3. Multimediaタブで、Playback device(音声再生デバイス)、Ring device(ベルが鳴るデバイス)、Capture device(マイク)をシステムに合わせて設定します。Skypeフォンを持っている場合はSkypeフォンで使用しているデバイスを設定します(画面はWindows XP)。


     

  4. 同じタブの「Enable echo cancellation」にチェックを入れておきます。
  5. codecsタブを開き、「PCMU 8000」以外のcodecを全て使用しないようにセットします。

デバイスドライバーの設定

KCB-3WLでWEBカメラのマイクを認識するように設定します。

  1. KCB-3WLを起動し、rootユーザーでログインします。
  2. マイク付WEBカメラをUSBコネクタへ接続します。起動前に接続していてもかまいません。
  3. 次のコマンドでカーネルモジュールのデバイス依存ファイルを再設定します(最初の一回だけ)。
    # depmod
  4. modprobeコマンドで、WEBカメラのマイクを認識させます(KCB-3WLを起動するごとに実行)。
    # modprobe snd-usb-audio
    # modprobe snd-pcm-oss
  5. デバイスファイルを作成します。デバイスファイルとはハードウェアのアクセスをファイルの読み書きに置き換えるものです。マイク付WEBカメラを取り付けた状態で、(4)の実行後に次のコマンドを入力してください(最初の一回だけ)。
    # mdev -s

    下記のファイルができあがります。
        /dev/mixer        (c 14 0)
       /dev/dsp     (c 14 3)
       /dev/audio        (c 14 4)
       /dev/pcmC0D0c     (c 116 24)
       /dev/pcmC0D0p     (c 116 16)

次回起動時からは(4)だけを行ってください。/etc/init.d/rcWに書き込むと起動時に自動実行します。

linphoneサーバーの起動

  1. KCB-3WLを起動し、マイク付WEBカメラを取り付け、modprobeコマンドでカーネルモジュールをカーネルに取り付けます(上の「デバイスドライバーの設定」の(4))
  2. 次のコマンドでlinphoneサーバーを起動します
    # cd /root
    # ./linphonec -c linphonerc -a
    (-aオプションを付けると着信時に自動接続する)
  3. linphoneクライアントソフトウェアを起動します。
  4. SIPアドレス欄に、「2. ライブラリのインストール>5) 設定ファイルを修正する>(c)」で設定したSIPアドレス(下記例ではKCB3@192.168.1.100)を入力します(画面はWindows XP)。


     

  5. linphoneソフトウェアの「Start Call」ボタン(左上の緑の吹き出しに受話器のマーク)を押すとKCB-3WLとつながり、音声での通話が可能になります。接続に成功すると、KCB-3WLでは次のようなメッセージが表示されます。

    ————–
    ~ # ./linphonec -c linphonerc -a
    NLS disabled.
    Ready
    Warning: video is disabled in linphonec. Run with -V option to enable it.
    linphonec> <sip:toto@192.168.1.6> is contacting you.
    ——-auto answering to call——-
    Connected.
    ————–

 

応用

今回はWEBカメラのマイク機能だけを使いましたが、KCB-3WLにUSBスピーカーを接続すると通話ができます。マイクとスピーカーをセットで使う場合はハウリングなどがおきる恐れがありますので、注意してください。また、通話にはPC側にもマイクが必要となります。

WEBカメラ+USBスピーカーなど2つ以上の音声デバイスを使用する場合は、USBハブが必要です。また、追加でデバイスを使用する際は、再度「mdev -s」コマンドを実行し、デバイスを使用するために必要なデバイスファイルを作成してください。複数の音声デバイスを使う場合は、KCB-3WLではデバイスがはじめに見つかった方が優先されます。先に付けた(認識された)デバイスが「/dev/dsp」、後び付けた(認識された)デバイスが「/dev/dsp1」とデバイスファイルに割り当てられます。例えば、USBスピーカー(playback_dev)を先に取り付け、WEBカメラのマイク(capture_dev)を後から取り付けた場合は、linphonercファイルを下のように書き換えてください。

playback_dev_id=OSS: /dev/dsp
ringer_dev_id=OSS: /dev/dsp
capture_dev_id=OSS: /dev/dsp1

カメラの画像も一緒に送りたい場合は、いつものようにuvc_streamコマンドを使います。linphoneを起動する前に、バックグラウンドで起動しておいてください。ただし今回はデータ量が多いため、解像度は320×240、フレーム数は5フレームくらいにする必要があります。このあたりはネットワークトラフィック次第ですので、ご利用状況に合わせて修正をしてください。

Android携帯(Sony Xperia)やiPhoneを使う場合は、アンドロイドマーケットやiTune Appsなどからlinphoneソフトウェアをダウンロードしてください。linphoneソフトウェアの設定はPCでの設定と全く同です。

今回確認したデバイス

CREATIVE

Logicool

Buffalo

アクロス

 

謝辞 

今回の記事作成には神奈川工科大学 ロボット・メカトロニクス学科兵頭和人教授のご協力いただきました。どうもありがとうございました。

■この記事へのリンクはこちらです。

■KCB-3WLマニュアル第2版

関連カテゴリー:KCB-3WL, サポート, 製品マニュアル

KCB-3WLのマニュアルにおける下記記載ミスなどを修正した、マニュアル第2版を公開いたします。

 

訂正内容

KCB-3WLマニュアル P.26、「ロボットの準備」にある表のRCB-3HV列の、「再生終了時」について

HTH3で「モーション再生終了時に返事をもらう」チェックを外す
HTH3で「モーション再生終了時に返事をもらう」チェックを入れる

 

この変更により、Rcb3UdpServerを起動したときの下記のようなエラーが解消されます。

----------
~ # ./Rcb3UdpServer -v
UDP Port = 8000 , uart dev = /dev/ttyS0
rcb3_get_ssw(): ssw = 0x2c : 0x08 (0x2c08)
rcb3_get_ssw(): ssw = 0x2c : 0x08 (0x2c08)
rcb3_get_ssw(): ssw = 0x2c : 0x08 (0x2c08)
rcb3_get_ssw(): ssw = 0x2c : 0x08 (0x2c08)
rcb3_get_ssw(): ssw = 0x2c : 0x08 (0x2c08)
rcb3_get_ssw(): ssw = 0x2c : 0x08 (0x2c08)
rcb3_get_ssw(): ssw = 0x2c : 0x08 (0x2c08)
rcb3_get_ssw(): ssw = 0x2c : 0x08 (0x2c08)
rcb3_get_ssw(): ssw = 0x2c : 0x08 (0x2c08)

... このままプログラムが終了してしまう
----------

 

KCB-3WLをご利用のお客様には大変ご不便をおかけして、申し訳ございませんでした。また、SDKマニュアルにはKCB-3WLでUSBメモリーを使う方法などを追加しています。KCB-3WLの購入をご検討中の方もぜひご覧になってください。

マニュアルはPDFファイルをZIP形式で圧縮しています。下記リンクよりダウンロードしてください。

KCB-3WLマニュアル第2版 ZIP File

KCB-3WL SDK マニュアル第2版 ZIP File

■この記事へのリンクはこちらです。

■KCB-3WLデモムービー

関連カテゴリー:KCB-3WL, KHR-3HV, サポート, ムービー

WMVファイル 約24MByte 

mp4ファイル 約21MByte 

実際にロボット本体としてKHR-3HVを使用して、KCB-3WLを搭載した動作例です。 KCB-3WLにはロジクール社製Webカメラを接続。画像をリアルタイムにパソコン側に送っています。 ロボット本体の動作は、KCB-3WLに接続したRCB-4により行っています。 動画では、最初にパソコン側に接続したコントローラでロボットを操作。カメラの映像がパソコンに表示されているのがわかります。 次に、コントローラ側から、カメラを取り付けたサーボだけを動かして、カメラからの映像と交互に紹介しています。

動画の最後に紹介するのは、応用編です。 カメラからの映像をパソコンのLCD画面で見るのではなく、ヘッドマウントディスプレイに出力しています。また、同時に、ヘッドマウントディスプレイに内蔵した加速度センサーとジャイロセンサーにより、デイスプレイの移動を検出してその動きをKCB-3WL側に同時に送り、カメラ位置を動かしています。ヘッドマウントディスプレイの映像を見ながら、操作しなおかつ、見た方向にロボット本体の視点(カメラ)も移動するデモです。

詳細製品説明ページはこちら

 
■この記事へのリンクはこちらです。

■KCB-3WL動作確認済みデバイスリスト

関連カテゴリー:KCB-3WL

はじめに

以下はKCB-3WLにインストールされているLinux OS(s3c-linux)で対応しているデバイスと、ネットワークとして接続を確認できた周辺機器のリストです。

以下のリストはKCB-3WL Ver.1.00(2010/7/29リリース版)において、適切なカーネルモジュールを組み込んだときに認識および動作が確認されたデバイスリストで す。このリストでは、デバイスが持つ全ての機能について動作保証をするものではなく、近藤科学株式会社ではこのリストに記載されている機器のサポートは一 切できませんので、あらかじめご了承の上でご利用なさいますようお願いいたします。なお、デバイスには現行商品ではないものも含まれています。

本リストは2010年7月29日におけるデータを元に作成しました。今後URLなどが変更になる可能性があります。

 

KCB-3WLで動作するもの

 

USBカメラ

現在の使用では、USB1.1でUVC(USB Video Class)とmjpeg streamが対応しているUSBカメラのみ使用できます。

必要なカーネルモジュールはinput-core.ko、compat_ioctl32.ko、videodev.ko、v4l1-compat.ko、uvcvideo.ko、 (v4l2-common.ko、v4l2-int-device.ko)です。

Logicool

ロジクール社のWEBカメラは下記リスト以外でもUSB1.1、mjpeg stream対応のものがあります。

LOAS

SANWA SUPPLY

Microsoft

シグマA・P・Oシステム

Buffalo(バッファローコクヨサプライ)

ELECOM

 

USB-Ether有線LANアダプター

USB-Ether有線LANアダプターはUSBコネクターに差し込み、本体にEthernetケーブルを差し込むとEthernetデバイスになるアダプターです。

必要なカーネルモジュールはusbnet.koです。

Buffalo

PLANEX

  • UE-200TX-G http://www.planex.co.jp/product/game/ue-200tx-g/
  • UE-200TX2 http://www.planex.co.jp/product/usb/ue-200tx2/
    起動時に認識しないので、起動後にUSBコネクターへデバイスを差し込み、下記コマンドを入力してください。IPアドレス、サブネットマスク、ブロードキャストアドレスは例ですので、適宜書き換えてください。
    # ifconfig wlan0 down    ← wlan0デバイス(無線LAN)を無効化する
    # ifconfig eth0 down    ← eth0デバイス(無線LAN)をいったん停止する
    # ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255

Logitec

 

USBメモリー

USBメモリーはほとんどのメーカーのものが使用できます。2GB以上はVFATフォーマットされていることが多いので、vfat.koモジュール を取り付ける必要があります。必要なカーネルモジュールはfat.ko、vfat.ko、usb-storage.ko、scsi_mod.ko、 sd_mod.koです。

マウス

HIDデバイスとして認識されるものはほとんど使用可能ですが、特殊キーなどについては未確認です。弊社ではデバイスの認識のみを確認したが、入力キーの判別などは行っていません。入力を読み取るにはカーネルモジュール以外にも読み取りプログラムが別途必要となります。

必要なカーネルモジュールはhid.ko、usbhid.ko、input-core.ko、mousedev.koです。

ジョイスティック、ジョイパッド

HIDデバイスとして認識されるものはほとんど使用可能ですが、特殊キーなどについては未確認です。弊社ではデバイスの認識のみを確認したが、入力キーの判別などは行っていません。入力を読み取るにはカーネルモジュール以外にも読み取りプログラムが別途必要となります。

必要なカーネルモジュールはhid.ko、usbhid.ko、input-core.ko、joydev.koです。

 

USBシリアル変換IC

近藤科学社製シリアルUSBアダプターはカーネルモジュールを取り付けるときにベンダーIDなどが必要になります。
必要なカーネルモジュールはusbserial.koです。

FTDI

  • FTDI社のほとんど (ftdi_sio.ko)

 

その他

IO-DATA

  • UMGPS/MF(GPSデバイス) http://www.iodata.jp/product/mobile/gps/umgpsmf/シリアル変換用カーネルモジュール(pl-2302.ko)が必要です。データの取得のみ確認しました(データの検証は行っていない)。

 

KCB-3WLとネットワーク接続ができるもの

 

USB無線LANアダプター

USB無線LANアダプターまたはUSB無線LAN子機ともいいます。ソフトウェアアクセスポイント(AP)モードまたは親機モードが無いものは使用できないので注意してください。

PLANEX

Corega

 

無線LANルーター

確認したもののみ記載します。KCB-3WLではIEEE 802.11nは対応していないので注意してください。

NEC

Corega

Apple

covia

E-Mobile

Buffalo

上記リストに掲載されていないもので、動作が確認されている機器をご存じの方はwebmaster@kondo-robot.comへご連絡くださいますようお願いします。

■この記事へのリンクはこちらです。

■Ubunto Linuxでキーボードの種類を変更する

関連カテゴリー:KCB-3WL, Q and A

KCB-3WL SDKに含まれるUbuntu Linuxですが、お使いのキーボードが合っていないときは次の手順で変更します。

  1. VMware Playerを起動して、Ubuntu Linuxのログイン画面を表示します。
  2. ログイン画面で、「Kcb-3wl SDK」ユーザーをクリックすると、画面の下の方に「Keyboard」の欄が表示されますので、Japanなどの適当なキーボードを選択してください。
  3. 選択後にログインするとキー配置が変更されています。

詳しくは下のプレビュー画面をクリックしてみてください。 Ubuntu Linuxのログイン画面

■この記事へのリンクはこちらです。