どうも.SUGAR SWEET ROBOTICSのysugaこと菅です.
前回の記事ではKobukiをROSで使ってみる,と題して,キーボードでKobukiの動作を確認する所をやりました.
ここからはもう少しROSの世界に触れてみましょう.KobukiとKinectを使って環境のマップを描いてみます.
環境の整備
ROSのインストール方法についてはこのブログでは解説しません.Kobukiを始めて購入した人は,プレートの組立については,前々回の記事で解説があります.
Turtlebot用スタックでの動作確認
前回ではKobuki用のスタックを使っていましたが,今回はTurtlebot用のスタックで動作をさせます.
前回の記事でのドライバの設定などが終わっていない場合は,そちらを先にやってください.
まずは,masterを起動します.
$roscore
次に,Turtlebotを起動します.別のターミナルで以下のコマンドを打ちます.
$roslaunch turtlebot_bringup minimal.launch
これでTurtlebotを動作させる基本的なサービスが励起されています.別のターミナルを起動してroslaunchでノードを起動します.
$roslaunch turtlebot_teleop keyboard_teleop.launch
今度は矢印キーではなく文字キーを使います.
k : 停止
u : 前進
m : 後退
j : 左旋回
l : 右旋回
です.
いかがでしょう?ちゃんと動作しましたか?
終了するときは,各ターミナルでCtrl+Cで停止します.
Kinectの接続と動作確認
注意
この記事のソフトウエアはKinect for XBox360にのみ対応しています.4月30日時点では,Kinect for Windows (商用版) での動作確認が出来ませんでした.(openniドライバを修正することで対応できるとの情報もありますが,本ブログでは解説しません)
ケーブルの作成
まず,KobukiからKinectに電源を供給するためのケーブルを作成する必要があります.
ケーブルは,Kinectに付属のACアダプタ(写真)を切断してコネクタを作ることで作成します.
コネクタはアールティで購入できますので,そちらをどうぞ.写真のコネクタセットの内,黒いコネクタを使用します.左下の黒の2ピンのモノを使います.
コンタクトピン(金具です)は2種類ありますが,黒に適合する方を使ってください.
では早速.
ACアダプタをばっさりと切りましょう.するとグレーと茶色のケーブルが出てきます.これは製品のリビジョンで変わることもあるかもしれませんので気をつけてください.僕の環境では,茶色が+12V,グレーがGNDでした.
Kobukiの右から2番目のコネクタ,12V1.5Aのコネクタに接続します.上が+12V,下がGNDですので,それに適合するようにコネクタを作ります.僕の環境だと写真の通りです.
これをKobukiに指しますが,念のため,Kinectには接続せずにKobukiに指してみると良いでしょう.Kobukiの電源を入れると写真のようにLEDが点灯するはずです.これで極性はOK.
動作確認
まずはKobukiの電源を入れてマスターを起動し,
$ roscore
その後にTurtlebotを起動します.
$ roslaunch turtlebot_bringup minimal.launch
次に,3dsensorを起動します.
$ roslaunch turtlebot_bringup 3dsensor.launch
そしてrvizを.
$ roslaunch turtlebot_rviz_launchers view_robot.launch
左のメニューから「registered DepthCloud」を選択すると,以下のような画像が表示されるはずです.
いよいよマッピング
ようやくマッピングですね・・・ここまでくれば簡単です.
沢山のターミナルを立ち上げます.全部まとめて起動することもroslaunchなら出来ちゃいますが,ここでは解説しません.
まずはKobukiの電源を入れてmasterを起動
$ roscore
Turtlebotの基本ノードを起動
$ roslaunch turtlebot_bringup minimal.launch
マッピングデモを起動
$ roslaunch turtlebot_bringup gmapping_demo.launch
んで,rvizで表示
$ roslaunch turtlebot_rviz_launchers view_navigation.launch
キーボードからの遠隔操作
$ roslaunch turtlebot_teleop keyboard_teleop.launch
キーボードで操作しながらTurtlebotを動かしてみてください.マップが描かれて行きます.
まとめ
とりあえず,ROSとTurtlebot2で出来ることが体験出来たと思います.
よりROSの世界に入門するなら,自分でROSのパッケージを開発する技術が必要になるかと思います.
それには,ROS.orgのチュートリアルを最初から挑戦すると良いでしょう.
【Kobuki&Turtlebot2関連商品】
コネクタ |
Turlebot2ベースのキット |
Yujin Robotics関連 |