Home » Turbot中级教程 » Turbot中级教程-控制-实现xbox控制

Turbot中级教程-控制-实现xbox控制

Turbot中级教程-实现xbox360手柄控制

说明

  • 利用xbox360手柄控制配合PC接收器控制Turbot运动

  • xbox360无线游戏杆
    请输入图片描述

  • xbox360无线游戏杆PC接收器,或叫USB适配器
    请输入图片描述

前提准备

  • [Remote PC && Turbot] 安装驱动
$ sudo apt-add-repository ppa:rael-gc/ubuntu-xboxdrv
$ sudo apt-get update && sudo apt-get install ubuntu-xboxdrv
  • 手柄和接收器配对过程

  • 1、PC接收器连好电脑,并且确保安装好驱动程序

  • 2、手柄打开,按中间大圆按钮,俗称西瓜键,如果没有匹配上,灯会闪烁

  • 3、按图2手柄前面靠左的小圆按钮,手柄西瓜键灯闪烁旋转,进入匹配状态

  • 4、按图2接收器的小圆按钮,手柄灯闪烁也进入匹配状态

  • 5、几秒之后自动匹配好,手柄西瓜键灯会亮1/4,接收器也停止闪烁。说明匹配成功

注意:一个PC接收器最多可以对应4个XBOX360手柄

  • 检查手柄接入
  1. [Turbot] 游戏杆插入到Turbot上的USB-Hub上,检查是否发现设备
$ ls /dev/input/js*
  • 查看是否有显示或jsX,X为数字:
/dev/input/js0
  1. [Turbot] 测试设备是否可用
$ sudo jstest /dev/input/js0
  • 显示,移动游戏杆数据会变化:
Driver version is 2.1.0.
Joystick (Logitech Logitech Cordless RumblePad 2) has 6 axes (X, Y, Z, Rz, Hat0X, Hat0Y)
and 12 buttons (BtnX, BtnY, BtnZ, BtnTL, BtnTR, BtnTL2, BtnTR2, BtnSelect, BtnStart, BtnMode, BtnThumbL, BtnThumbR).
Testing ... (interrupt to exit)
Axes:  0:     0  1:     0  2:     0  3:     0  4:     0  5:     0 Buttons:  0:off  1:off  2:off  3:off  4:off  5:off  6:off  7:off  8:off  9:off 10:off 11:off
  1. [Turbot] 查看权限, ROS的joy node需要访问设备的权限
$ ls -l /dev/input/jsX

crw-rw-XX- 1 root dialout 188, 0 2009-08-14 12:04 /dev/input/jsX

如果XX是rw: js设备配置正确的
如果xx是--: js设备配置不正确需要更改权限:

$ sudo chmod a+rw /dev/input/jsX
  1. [Turbot] 配置需要使用的设备,默认是js0:
$ rosparam set joy_node/dev "/dev/input/jsX"
  1. [Turbot] 启动joy节点
$ rosrun joy joy_node

显示如:

[ INFO] 1253226189.805503000: Started node [/joy], pid [4672], bound on [aqy], xmlrpc port [33367], tcpros port [58776], logging to [/u/mwise/ros/ros/log/joy_4672.log], using [real] time

[ INFO] 1253226189.812270000: Joystick device: /dev/input/js0

[ INFO] 1253226189.812370000: Joystick deadzone: 2000
  1. [Turbot] 在新终端下查看joy主题
$ rostopic echo joy

---
header: 
  seq: 9414
  stamp: 
    secs: 1325530130
    nsecs: 146351623
  frame_id: ''
axes: [-0.0038758506998419762, -0.0038453321903944016, -0.0, -0.999969482421875, 0.0, 0.0]
buttons: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
---
  1. linux下的MicrosoftXbox360无线游戏杆的按钮及轴和索引号对应关系, 参考教程

操作步骤

  • [Turbot] 新终端,启动turbot
$ roslaunch turbot_bringup minimal.launch
  • [Turbot] 新终端,设置设备并启动游戏杆遥控支持
$ rosparam set /joystick/dev "/dev/input/js0"
$ roslaunch turtlebot_teleop xbox360_teleop.launch 
  • 测试使用,按住左边的LB按钮激活游戏杆并移动左遥控杆,turbot应该就有反应

演示视频

参考资料

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: turbot中级教程