2017年6月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

カテゴリー

ブログパーツ

無料ブログはココログ

« モヤモヤを解消 | トップページ | roombaをゲームパッドで動かすパッケージを作る(1) »

2013年4月29日 (月)

ゲームパッドを使えるようにする

ROSさんお手やわらかに:ROS入門編

ゲームパッドが使えるといろいろと便利なのでインストールした。

ゲームパッドは写真のもの。アキバで探そうかと思ったが、アマゾンでなんと660円だったのでそっちで購入。

Dscn2562

まずはubuntuでゲームパッドを使えるように、ドライバjoystickと設定&テストツールjstest-gtkをインストール。
$ sudo apt-get install joystick jstest-gtk

ゲームパッドを使うにはアクセス権限が必要なようだ。シリアルポートと同じアクセス権なので、まだ取得していない場合は、下記のコマンドで、自分をアクセス権のあるdialoutグループに追加しておく。
$ sudo addgroup <ログイン名> dialout

ここでゲームパッドを接続し、jstest-gtkを起動。動作を確認しておく。このゲームパッドは問題なく動いた。

次はROSで使えるようにするわけだが、これがちょっとてこずった。
まずはこのページのgithubのリンクからダウンロードする。一発では入らないのでどこにダウンロードしても良い。僕はとりあえずホームに落とした。

$ svn co https://github.com/ros-drivers/joystick_drivers.git

これでjoystick_drivers.gitというのができる。この中のtrunkに入っているのはgroovy用でfuerteには使えないようだ。
この中のtagsフォルダの中にあるfuerteフォルダがfuerte用のjoystick_driversのようなので
・ROSのパスが通っているstd_stacksにコピー(このディレクトリを作った顛末はこちら
・名前をjoystick_driversに変更
・端末でこのディレクトリに移動し
 $ rosdep install joystick_drivers
 $ rosmake
これでいいようだ。

インストールがすんだらROSで使えるかどうかをテストする。ゲームパッドはつないだまま。
端末を開いて初期化後、roscoreを起動。
$ roscore

新しい端末を開いて初期化後
$ rosrun joy joy_node
こんな感じのメッセージが出ればOK
[ INFO] [1367232625.685893362]: Opened joystick: /dev/input/js0. deadzone_: 0.050000.
赤字のエラーメッセージが出る場合は、ゲームパッドがつながっていないか、アクセス権がない。

新しい端末を開いて初期化後
$ rostopic echo joy
レバーを動かしたり、ボタンを押したりするとこんな感じのメッセージが出る。

---
header:
seq: 96
stamp:
secs: 1367233082
nsecs: 149515382
frame_id: ''
axes: [0.0, 0.06674397736787796, -0.0, -0.0, 0.0, 0.0]
buttons: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
---

どのレバーがaxes配列のどれで、どのボタンがbuttons配列のどれかをメモしておくと、プログラムの時便利。

« モヤモヤを解消 | トップページ | roombaをゲームパッドで動かすパッケージを作る(1) »

ROSさんお手やわらかに」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1140145/51394809

この記事へのトラックバック一覧です: ゲームパッドを使えるようにする:

« モヤモヤを解消 | トップページ | roombaをゲームパッドで動かすパッケージを作る(1) »