导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

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

    产品服务
    2
    2
    1990
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • xiaoqiang
      xiaoqiang 最后由 weijiz 编辑

      小强主页

      原理:本教程涉及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的配对。
      

      小强主页
      返回目录

      1 条回复 最后回复 回复 引用 0
      • 糯米基
        糯米基 最后由 编辑

        如果不用ds4_driver驱动的话,摇杆值和按钮按键会完全不一样,一个明显的地方就是rostopic echo /joy的时候,前一个有18个按钮值,ROS的joy驱动是15个。ds4_driver 比ROS的joy驱动多了触摸板的触摸、按下和手柄震动的功能。我的手柄有时候ds4_driver配对上打不开, 然后就发现了这个问题。楼主最后的TCP按钮震动然后关机的功能确实是在别的地方没有见过,点个赞~微信截图_20220305153537.png

        1 条回复 最后回复 回复 引用 0
        • 1 / 1
        • First post
          Last post
        Copyright © 2015-2023 BlueWhale community