ゲームパッドを使えるようにする
ROSさんお手やわらかに:ROS入門編
ゲームパッドが使えるといろいろと便利なのでインストールした。
ゲームパッドは写真のもの。アキバで探そうかと思ったが、アマゾンでなんと660円だったのでそっちで購入。
まずは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さんお手やわらかに」カテゴリの記事
- 3Dプリンターで作る簡単turtlebot(おしまい)(2017.01.07)
- 3Dプリンターで作る簡単turtlebot(raspberry pi3の取り付け)(2017.01.03)
- 3Dプリンターで作る簡単turtlebot(kinectの取り付け)(2017.01.02)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て2)(2016.12.29)
- 3Dプリンターで作る簡単turtlebot(パーツの組み立て1)(2016.12.25)
コメント