小强ROS机器人教程(33)_使用ps4手柄控制小车移动

小强主页

原理:本教程涉及2个包 ds4_driver节点负责将蓝牙手柄设备数据转换成ros中的joy数据类型 turtlebot_teleop_joy负责将上述joy数据topic 转换成小车运动指令/cmd_vel

操作步骤

0.先要安装对应的ros驱动同时将手柄与ubuntu进行蓝牙配对

参考ps4手柄ros驱动安装和蓝牙配对教程

如果手柄和小强同时购买,那么我们已经提前为您将手柄适配好了,可以从步骤1开始使用。

1.将ps4手柄与蓝牙接受器进行连接

只需要按一下ps键,让手柄进入连接模式,此时手柄会闪白光。

ubuntu不用进行任何操作,手柄就会连上ubuntu,连上后手柄led会停止闪烁,同时颜色变成蓝色。 94602711fbf37f646f69a676b549cd02.jpg 如果白灯熄灭前,也没连上ubuntu,可以等白灯熄灭后再次按ps键,再次尝试连接。蓝牙适配器性能不同,有时需要按两三次才能连上。

2.启动ds4_driver和turtlebot_teleop_joy

已经适配好小强的用户,这些节点默认开机自动启动,不用手动执行

#启动ds4_driver
roslaunch ds4_driver xiaoqiang.launch
#启动 turtlebot_teleop 
roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch

正常启动后如下图所示 ds4drv.JPG 0_1479882359779_14.4.png ps3fakexiaoqiang_teleop.launch文件内容如下

<launch>

  <node pkg="turtlebot_teleop" type="turtlebot_teleop_joy" name="turtlebot_teleop_joystick">
    <param name="scale_angular" value="0.4"/>
    <param name="scale_linear" value="0.4"/>
    <param name="axis_deadman" value="10"/>
    <param name="axis_linear" value="1"/>
    <param name="axis_angular" value="0"/>
    <remap from="turtlebot_teleop_joystick/cmd_vel" to="/cmd_vel"/>
    <remap from="turtlebot_teleop_joystick/joy" to="/joy"/>
  </node>
</launch>

上述launch文件中的参数分别对应直线速度最大值(scale_linear)和角速度最大值(scale_angular),油门离合键(axis_deadman)、前进后退轴(axis_linear)、左右转轴(axis_angular),这些控制按键、摇杆的映射关系。

3.保持按住手柄油门键(下图中的10号键),现在使用左侧的推杆可以控制小车的前后移动和转向(下图中的1+1-摇杆)

DS4_Glacier_White_top.png ds4_0.jpg ds4_3.jpg ds4_1.jpg 根据这些按键编号,可以修改launch文件中的相关参数从而改变按键映射关系

4.使用手柄对主机进行关机

同时按住手柄的12和14号键,手柄会振动,然后松手,在振动消失前再次长按,会触发主机关机同时振动消失。

5.常见问题

1.ps4手柄和ubuntu无法连接
答:之前有没有配对成功,没有配对成功要先确保配对成功。
2.ps4手柄和ubuntu无法连接
答:等白灯熄灭后,再次按ps键尝试连接,因为蓝牙适配器性能原因,有时要尝试两三次才能连上,这是正常现象。
3.ps4手柄和ubuntu无法连接
答:配对成功后,如果再次同时按了share和ps键,会清除手柄的配对信息,此时需要先在ubuntu里面删除叫wireless Controller的蓝牙设备,然后重启执行步骤0的配对。

小强主页 返回目录

results matching ""

    No results matching ""