ROS indigo 使用游戏手柄控制turtlebot2

news/2024/11/23 2:47:41/

    参考链接:创客智造-xbox360无线游戏杆控制turtlebot

    我使用的游戏手柄是 北通 阿修罗TE BTP-2185。

进入正题

1.安装手柄驱动

    安装方法与Xbox360手柄驱动一样。

sudo apt-add-repository ppa:rael-gc/ubuntu-xboxdrv
sudo apt-get update && sudo apt-get install ubuntu-xboxdrv

    最近实验室网不好,在执行sudo apt-get update 的时候遇到了下面的情况

W: 无法下载 http://mirrors.163.com/ubuntu/dists/trusty-updates/universe/binary-amd64/Packages  Hash 校验和不符E: 部分索引文件下载失败。如果忽略它们,那将转而使用旧的索引文件。

    多试几次就OK了。

2. 手柄和接收器配对

  • 将接收器插在电脑的USB接口上,并确保安装好手柄驱动程序
  • 按手柄中间的大圆按钮(西瓜键),手柄打开并配对,配对成功后指示灯P 和X长亮。如果指示灯都在闪烁,说明正在配对。如果配对不成功,请参考相关用户手册。

3. 测试手柄

  • 将接收器插在电脑上,并检查电脑是否发现设备。
ls /dev/input/js*

    查看是否有显示或jsX,X为数字,这里会显示如下:

/dev/input/js0  /dev/input/js1  /dev/input/js2  /dev/input/js3  /dev/input/js4

    这里显示了多个设备是因为接收器支持多个手柄,当然我们用到一个手柄就是js0了。

  • 测试手柄是否可用
sudo jstest /dev/input/js0

    显示如下:

Driver version is 2.1.0.
Joystick (Xbox 360 Wireless Receiver (XBOX)) has 6 axes (X, Y, Z, Rx, Ry, Rz)
and 15 buttons (BtnX, BtnY, BtnTL, BtnTR, BtnTR2, BtnSelect, BtnThumbL, BtnThumbR, ?, ?, ?, (null), (null), (null), (null)).
Testing ... (interrupt to exit)
Axes:  0: -5086  1:     0  2:-32767  3: -1291  4:  1066  5:-32767 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 12:off 13:off 14:off

    当我们按手柄上不同的键时,对应的数据会变化,比如晃动左右摇杆。

  • 设置权限,ROS的joy_node需要设备的访问权限
sudo chmod a+rw /dev/input/js0
  • 配置需要使用的设备,执行该步骤时需要先启动roscore
rosparam set joy_node/dev "/dev/input/js0"
  • 启动joy_node节点
rosrun joy joy_node
  • 打开新的终端,查看topic
rostopic echo joy

    则能看到如下所示的手柄发布的话题,尝试手柄的各个按键,查看话题内容是否变化。

header:seq: 429stamp:secs: 1415227355nsecs: 833352850frame_id: ''
axes: [0.19235174357891083, -0.0, 1.0, -0.04268254339694977, -0.048208002001047134, 1.0]
buttons: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

4. 使用手柄控制turtlebot

  • 关闭前面打开的终端,重新打开一个终端,启动roscore
roscore
  • 打开一个新终端启动turtlebot
roslaunch turtlebot_bringup minimal.launch
  • 打开一个新终端,设置设备并启动手柄的launch文件
 rosparam set /joystick/dev "/dev/input/js0"roslaunch turtlebot_teleop xbox360_teleop.launch
  • 按住左边的LB按钮激活遥控杆并移动左遥控杆,Turtlebot动起来了,而且还跑得飞快有没有,那么怎么让它跑得慢一点呢?

5. 修改xbox360_teleop.launch文件中的相关参数

  •     进入launch文件所在的目录
roscd turtlebot_teleop/launch/ && ls
  • 使用gedit修改launch文件
 sudo gedit xbox360_teleop.launch

显示如下:

<launch><!--Push the left frontal button labeled as 'LB' to activate cmd_vel publishing.Move the left stick around to control the velocity.--><!--  smooths inputs from cmd_vel_mux/input/teleop_raw to cmd_vel_mux/input/teleop --><include file="$(find turtlebot_teleop)/launch/includes/velocity_smoother.launch.xml"/><node pkg="turtlebot_teleop" type="turtlebot_teleop_joy" name="turtlebot_teleop_joystick"><param name="scale_angular" value="1.5"/><param name="scale_linear" value="0.5"/><param name="axis_deadman" value="4"/><param name="axis_linear" value="1"/><param name="axis_angular" value="0"/><remap from="turtlebot_teleop_joystick/cmd_vel" to="teleop_velocity_smoother/raw_cmd_vel"/></node><node pkg="joy" type="joy_node" name="joystick"/></launch>
其中scale_angular是设置角速度的,scale_linear是设置线速度的,那我们就把线速度设置成0.1吧。保存launch文件,重新启动手柄的launch文件,并用手柄控制,turtlebot开始慢慢移动了。




http://www.ppmy.cn/news/149084.html

相关文章

Mac连接Xbox控制器(手柄)

问题背景解决方法总结 阅读之前注意&#xff1a; 本文阅读建议用时&#xff1a;3min 问题背景 在Mac上下载steam&#xff0c;结果打开游戏后&#xff0c;usb连接Xbox one控制器没有反应&#xff0c;北通的控制器也是一样。 解决方法 上述问题的原因应该是Mac缺少对应的驱动…

xbox360链接pc_如何在Windows PC上使用Xbox 360控制器

xbox360链接pc The keyboard and mouse might be a good fit for many native computer games, but it feels downright weird to play emulated games that way. Whether you want to play Super Mario with a proper gamepad or try out a new PC title like Diablo III in c…

xbox360链接pc_如何在Windows PC上使用Xbox One控制器

xbox360链接pc The Xbox One controller is fantastic. Even if you dont have an Xbox One, the controller now works on a Windows PC with a standard micro-USB cable. Any Steam and Windows game that supports standard XInput works great. Ive played Tomb Raider an…

在UBUNTU中使用北通USB游戏手柄

1. XBOX360模式 安装xboxdrv驱动&#xff0c;添加ppa: sudo add-apt-repository ppa:grumbel/ppa 更新源数据: sudo apt-get update 安装驱动: sudo apt-get install xboxdrv 之后查看数据&#xff1a; cat /dev/input/js0 | hexdump 操作手柄就可以看到输出数据&…

xbox 360手柄驱动程序_当手游开始变得硬核和竞技化 玩家会需要这样的手柄

对大多数主机玩家来说&#xff0c;手柄是一个难以替代&#xff0c;并会始终相伴的伙伴。御三家的手柄各有千秋&#xff0c;Xbox 手柄拥有合理的键位设置和舒适的把握手感、DualShock 手柄的触摸板和灯光设计能运用到特定游戏中&#xff0c;Joy-Con 手柄因可拆卸使用而与众不同。…

又一个好用的xbox360手柄驱动

找第三方xbox无线手柄时看到的&#xff0c;下载地址&#xff1a;http://www.katch.ne.jp/~morii/&#xff0c;驱动比较全&#xff0c;xp、vista都支持&#xff0c;有线、无线的都有。 日文的&#xff0c;看不懂的找工具翻译一下&#xff0c;我就是拿google网页翻译来看的。 特…

北通xbox360模拟器_如何将无线Xbox 360控制器连接到计算机

北通xbox360模拟器 The wired Xbox 360 controller is USB, so using it for PC gaming is easy–but things get a bit more complex if you have a wireless controller. Let’s take a look at how you can enjoy wireless gameplay on your PC while minimizing the headac…

win7无线手柄测试软件,北通战戟手柄驱动程序 BTP-2118(支持xp,visia,win7等)

北通战戟手柄驱动程序BTP-2118(支持xp,visia,win7等)正式版是款针对北通战戟手柄打造的驱动程序。北通战戟手柄驱动程序BTP-2118安装驱动后用户不仅可以正常使用手柄,而且还可以有效解决手柄在使用过程中因驱动引起的相关问题。北通战戟手柄驱动程序BTP-2118(支持xp,visia,win…