英文网页:http://wiki.ros.org/ps3joy/Tutorials/PairingJoystickAndBluetoothDongle
1 有线插入手柄,配对ps3与蓝牙bluetooth 自带的蓝牙或外接蓝牙都可以,必须在root权限下进行
2 测试手柄ll /dev/uinput 检查是否有js0 sudo bash rosrun ps3joy sixpair
拔下有线口,按下手柄配对键,要求:必须有uinput模块,否则失败测试sudo bash rosrun ps3joy ps3joy.py
sudo jstest /dev/input/js0
按下任意按钮,对应数字变化
3 例子 手柄控制乌龟
下载开源包https://code.ros.org/svn/ros-pkg/stacks/joystick_drivers_tutorials/trunk/turtle_teleop/
launch文件:
- <launch>
- 3
- 4 <!-- Turtlesim Node-->
- 5 <node pkg="turtlesim" type="turtlesim_node" name="sim"/>
- 6
- 7 <!-- PS3 joy node -->
- 8 <node respawn="true" pkg="ps3joy" type="ps3joy.py" name="PS3_turtle_joy" o utput="screen" />
- 9
- 10 <!-- joy node -->
- 11 <node respawn="true" pkg="joy"
- 12 type="joy_node" name="turtle_joy" >
- 13 <param name="dev" type="string" value="/dev/input/js0" />
- 14 <param name="deadzone" value="0.12" />
- 15 </node>
- 16
- 17 <!-- Axes -->
- 18 <param name="axis_linear" value="1" type="int"/>
- 19 <param name="axis_angular" value="0" type="int"/>
- 20 <param name="scale_linear" value="2" type="double"/>
- 21 <param name="scale_angular" value="2" type="double"/>
- 3 <node pkg="turtle_teleop" type="turtle_teleop_joy" name="teleop"/>
- 24
- 25 </launch>
开启了乌龟节点turtlesim,手柄驱动节点ps3joy和joy,按键转换成cmd消息节点turtle_teleop
分别通过察看: sudo jstest/dev/input/js0 手柄是否已经驱动
rostopic echo /joy joy节点是否正常
rostopic echo/cmd_vel 速度信息是否正常转换
4 加入到已有launch文件中
- <!-- PS3 joy node -->
- 8 <node respawn="true" pkg="ps3joy" type="ps3joy.py" name="PS3_turtle_joy" o utput="screen" />
- 9
- 10 <!-- joy node -->
- 11 <node respawn="true" pkg="joy"
- 12 type="joy_node" name="turtle_joy" >
- 13 <param name="dev" type="string" value="/dev/input/js0" />
- 14 <param name="deadzone" value="0.12" />
- 15 </node>
多次实验,这种配置最好 否则会异常,经常弹出是否允许信息