■KCB-3WL下基板 寸法図
KCB-3WLの下基板の寸法図を公開します。
なお、上基板の寸法図は製品付属の説明書(WA05600XX)SX-560-SDK Hardware Manual.pdf)の10ページをご参照下さい。
KCB-3WLの下基板の寸法図を公開します。
なお、上基板の寸法図は製品付属の説明書(WA05600XX)SX-560-SDK Hardware Manual.pdf)の10ページをご参照下さい。
KCB-1 SDKを使ってrcb4_motion_play関数でモーションを再生すると、停止してしまう場合があります。この不具合は下記の要件により発生します。
HeartToHeart4 Ver.1.3以降ではメインループのアドレスが移動したため、モーション再生後にメインループに戻れなくなり動作が停止します。下記のようにKCB-1 SDKに含まれる、rcb4.hの一部を修正していただくと解消します。
【rcb4.h 164行目】
誤)#define RCB4_MAINLOOP_LOW 0xFD
正)#define RCB4_MAINLOOP_LOW 0xFE
KCB-1で弊社製サーボモーターのID番号などを変更するソフトウェア、ICS2Configが、ICSバージョン3.0、3.5に対応し、名前も「ICSConfig」に変更しました。サーボモーターの通信速度も変更できるようになりました。
ICSConfig.exeを起動するにはMicrosoft .Net Framework 2.0が必要です。Windows XPサービスパック2以降、Windows Vista/7では標準でインストールされています。
今回はKCB-1に書き込むICSConfig.motファイルとPC側で使用するICSConfig.exeプログラムの両方のソースコードがついています。またKCB-1 SDKにICSConfig.exeとKCB-1との通信コマンドを記載しました。ICSConfig.exeのソースコードを編集するにはMicrosoft Visual C# 2010が必要です。
ソースコードの複製および修正に制限はありませんが、不特定多数への再配布はできません。
下記URLからZIPファイルをダウンロードして解凍すると、「Ver.1.3.a Rev.20110221アップデータ(ICSConfig)」フォルダのなかに「はじめにお読みください.txt」と新しいKCB-1 SDKマニュアルがあります。最初に「はじめにお読みください.txt」を読んでからご使用ください。
ダウンロード: KCB1SDK_V13a.zip
KCB-3WLにIPフォンの機能を持たせると、ネットワーク経由で音声データ通信ができます。多くのWEBカメラにはマイク機能がついていますので、今回は普段使っているWEBカメラのマイクで拾った音をKCB-3WLを通じて、PCやAndroid携帯で聞くことにチャレンジします。
KCB-3WLには音声デバイスドライバーや、音声通信ソフトウェアなどの準備が必要となりますが、準備する手順が難しいため、弊社で用意したデバイスドライバーやソフトウェアをKCB-3WLにインストールしてデータ通信を行います。
クライアント側(PCなど)ではマイクとスピーカー、そしてWindows、MacintoshまたはAndroid用のlinphoneソフトウェア(IPフォンソフトウェア)が必要です。クライアント側で音を聞くだけならPC内蔵のスピーカーが使えます。
今回はKCB-3WLのシステムを修正し、普段ハードディスクのように使っているエリアをメモリーとして使用し、RAMを増やす作業も行います。
なお今回の記事内容につきましては、全てのデバイスにおいて動作保証をするものではありません。また各デバイスについての質問にはお答えいたしかねます。あらかじめご理解の上でご使用なさいますようお願いいたします。
下のリンクより、「kcb3wl_sound_modules.zip」ファイルをダウンロードしてあらかじめPCで解凍してください。解凍すると、「audio_driver.tar.gz」、「linphone_bin.tar.gz」、「readline.tar.gz」の3つのファイルができあがります。これらをKCB-3WLに下記手順で送信します。
>> kcb3wl_sound_modules.zipをダウンロード ![]()
注意:シリアルケーブルでデータを送るので、送信中はケーブルを触ったりしてノイズが入らないようにして下さい。
FTPでファイルを送る場合は、WindowsまたはMacintoshのFTPクライアントソフトウェアを使って、ファイルをKCB-3WLに送信してください。あるいはKCB-3WL付属のUbuntu Linuxへ書き込んでから、FTPでデータを送ることも出来ます。
ファイルのインストールや設定は、必ずrootユーザーにて行ってください。ファイルをtarコマンドで解凍する前に、かならず「/」ディレクトリへ移動してください。解凍する場所を間違えると動作しません。また、コマンドの先頭の「#」はプロンプトです。入力する必要はありません。
readlineライブラリは後述のlinphoneソフトウェアで使用します。
ライブラリはコピーしただけでは使えないので、シンボリックリンクを作成します。シンボリックリンクとはWindowsではショートカット、Macintoshではエイリアスのようなものです。
linphone_bin.tar.gzを解凍すると、/rootディレクトリに「linphonerc」というlinphone設定ファイルができあがります。このファイルの一部を修正します。ファイルの編集にはviエディタを使います。
簡易マニュアルを用意しましたので、詳しい使い方はこちらを参照してください。
>> vi簡易マニュアル(ここをクリック)
KCB-3WLではRAMをディスク代わりに使用していますが、音声データと画像データを同時に使う場合はRAMエリアを広げる必要があります。ここではviエディタでスタートアップファイル「/etc/init.d/rcS」を修正することで、メモリー領域を広げます。
total used free shared buffers
Mem: 14072 6216 7856 0 0
Swap: 0 0 0
Total: 14072 6216 7856
KCB-3WLで音声データ通信をするには、KCB-3WLで音声デバイスを認識させてから、linphoneサーバーを起動します。サーバーを起動する前にクライアントソフトウェアを準備をします。下の設定はWindows用のものです。

KCB-3WLでWEBカメラのマイクを認識するように設定します。
下記のファイルができあがります。
/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に書き込むと起動時に自動実行します。

————–
~ # ./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での設定と全く同です。
今回の記事作成には神奈川工科大学 ロボット・メカトロニクス学科兵頭和人教授のご協力いただきました。どうもありがとうございました。
KCB-1 SDKのアップデーター Ver.1.3.0 Rev.20100807をリリースします。今回のアップデートではICS3.5への対応、RCB-3/4に接続されたセンサーの読み取りや、RCB-3のCOMポートからKRCのボタンデータ(コントロール入力値)を書き換える関数、RCB-4に接続されているサーボモーターを一斉に動かす関数などが追加されています。詳しい内容は下記のようになっています。
<アップデート内容>
<追加サンプルプログラム>
<インストール前にご確認ください>
ダウンロードはこちらから KCB1SDK_V13020100807.zip ![]()
KCB-3WLのマニュアルにおける下記記載ミスなどを修正した、マニュアル第2版を公開いたします。
KCB-3WLマニュアル P.26、「ロボットの準備」にある表のRCB-3HV列の、「再生終了時」について
この変更により、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形式で圧縮しています。下記リンクよりダウンロードしてください。
弊社製シリアルUSBアダプターシリーズはWindows OS以外での動作保証をしておりませんが、適切なドライバーを使うことで、Linuxでも使用できます。 Linuxで使用するときはusbserial.ko、ftdi_sio.koという2つのドライバー(正式にはカーネルモジュールと言います)が必要となります。このドライバーはUbuntu Linuxなどでは標準でインストールされています。例えばUbuntu Linux 10.04では「/lib/modules/2.6.32-21-generic/kernel/drivers/usb/serial」にインストールされています。
次にシリアルUSBアダプターHSを取り付け、下記コマンドでドライバーをセットしてください。modprobeコマンドでftdi_sioドライバーを取り付けると、自動的にusbserial.koドライバーも取り付けられます。
<rootユーザーの場合>
# modprobe ftdi_sio vendor=0x165C product=0007
<Ubuntu Linuxなど、sudoコマンドが必要な場合>
$ sudo modprobe ftdi_sio vendor=0x165C product=0007
上記コマンドを実行後、dmesgコマンドで確認をします。
-----
$ dmesg
...
[18188.873370] USB Serial support registered for FTDI USB Serial Device
[18188.874223] ftdi_sio 2-1:1.0: FTDI USB Serial Device converter
detected
[18188.875151] usb 2-1: Detected FT232RL
[18188.875154] usb 2-1: Number of endpoints 2
[18188.875156] usb 2-1: Endpoint 1 MaxPacketSize 64
[18188.875159] usb 2-1: Endpoint 2 MaxPacketSize 64
[18188.875161] usb 2-1: Setting MaxPacketSize 64
[18188.892767] usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0
[18188.892794] usbcore: registered new interface driver ftdi_sio
[18188.892796] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver
-----
上記出力例のように「FTDI USB Serial Device converter now attached to ttyUSB0」というような表示が出ましたら、シリアルUSBアダプターHSはデバイス「/dev/ttyUSB0」として使用することが可能です。最近のLinuxではデバイスファイルは自動的に作成されますが、自動作成されなかった場合は次のようにデバイスファイルを作成する必要があります。 # mknod /dev/ttyUSB0 c 188 0 デバイスファイルに対してechoコマンドを使って適当な文字列を出力すると、シリアルUSBアダプターHSから文字列が出力されます。
$ echo "Hello World!" > /dev/ttyUSB0
標準状態でのパリティやボーレートの変更はsttyコマンドなどを使用してください。なおC言語でのプログラムではプログラム内でボーレートなどを設定してください。
システムにドライバーがない場合やチップメーカーのFTDI社純正ドライバーを使用する場合は、FTDI社からドライバーをダウンロードしてインストールするか、カーネルをアップデートする必要があります。ドライバーは下記URLよりダウンロードしてください。FTDI社のドライバーにつきましては上記ドライバーと使い方が違います。また弊社では未検証ですので注意してご利用ください。
http://www.ftdichip.com/Drivers/D2XX.htm
その他のドライバーにつきましては、下記のようなものがあります。こちらも弊社では未検証です。
FTDI Linux USB full speed char driver http://sourceforge.jp/projects/sfnet_ftdifullspddrv/
FTDI USB Serial Converter Driver http://sourceforge.jp/projects/sfnet_ftdi-usb-sio/
近藤科学株式会社のシリアル変換アダプターを使うには、生産者ID(VID)と製品ID(PID)番号が必要です。modporobeコマンドのオプションを下記リストを参考にして、適宜入れ替えて使用してください。
VID:165C (近藤科学USB製品共通) ------------------------------------------------------------- PID = デバイス名 (日本語でのデバイス名) ------------------------------------------------------------- 0001 = ICS USB ADAPTER (ICS USB アダプター) 0002 = SERIAL USB ADAPTER (シリアルUSBアダプター) 0006 = ICS USB ADAPTER HS (ICS USB アダプター High Speed) 0007 = SERIAL USB ADAPTER HS(シリアルUSBアダプター High Speed)
KCB-3WLに付属のSDKにはシリアル通信でRCB-4やRCB-3を動かすライブラリとサンプルプログラムがあります。LinuxでRCB-4などを動かすシリアル通信プログラムをやってみたい人は、参考にしてみてはいかがでしょうか。
実際にロボット本体としてKHR-3HVを使用して、KCB-3WLを搭載した動作例です。 KCB-3WLにはロジクール社製Webカメラを接続。画像をリアルタイムにパソコン側に送っています。 ロボット本体の動作は、KCB-3WLに接続したRCB-4により行っています。 動画では、最初にパソコン側に接続したコントローラでロボットを操作。カメラの映像がパソコンに表示されているのがわかります。 次に、コントローラ側から、カメラを取り付けたサーボだけを動かして、カメラからの映像と交互に紹介しています。
動画の最後に紹介するのは、応用編です。 カメラからの映像をパソコンのLCD画面で見るのではなく、ヘッドマウントディスプレイに出力しています。また、同時に、ヘッドマウントディスプレイに内蔵した加速度センサーとジャイロセンサーにより、デイスプレイの移動を検出してその動きをKCB-3WL側に同時に送り、カメラ位置を動かしています。ヘッドマウントディスプレイの映像を見ながら、操作しなおかつ、見た方向にロボット本体の視点(カメラ)も移動するデモです。
詳細製品説明ページはこちら
以下はKCB-3WLにインストールされているLinux OS(s3c-linux)で対応しているデバイスと、ネットワークとして接続を確認できた周辺機器のリストです。
以下のリストはKCB-3WL Ver.1.00(2010/7/29リリース版)において、適切なカーネルモジュールを組み込んだときに認識および動作が確認されたデバイスリストで す。このリストでは、デバイスが持つ全ての機能について動作保証をするものではなく、近藤科学株式会社ではこのリストに記載されている機器のサポートは一 切できませんので、あらかじめご了承の上でご利用なさいますようお願いいたします。なお、デバイスには現行商品ではないものも含まれています。
本リストは2010年7月29日におけるデータを元に作成しました。今後URLなどが変更になる可能性があります。
現在の使用では、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)です。
ロジクール社のWEBカメラは下記リスト以外でもUSB1.1、mjpeg stream対応のものがあります。
USB-Ether有線LANアダプターはUSBコネクターに差し込み、本体にEthernetケーブルを差し込むとEthernetデバイスになるアダプターです。
必要なカーネルモジュールはusbnet.koです。
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アダプターはカーネルモジュールを取り付けるときにベンダーIDなどが必要になります。
必要なカーネルモジュールはusbserial.koです。
USB無線LANアダプターまたはUSB無線LAN子機ともいいます。ソフトウェアアクセスポイント(AP)モードまたは親機モードが無いものは使用できないので注意してください。
確認したもののみ記載します。KCB-3WLではIEEE 802.11nは対応していないので注意してください。
上記リストに掲載されていないもので、動作が確認されている機器をご存じの方はwebmaster@kondo-robot.comへご連絡くださいますようお願いします。
KCB-3WL SDKに含まれるUbuntu Linuxですが、お使いのキーボードが合っていないときは次の手順で変更します。