导航

    蓝鲸ROS机器人论坛

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

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

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

      ps4手柄有丰富的led指示,带摇杆和振动,同时还有触摸板,是个比较理想的机器人遥控手柄。在ROS中使用ps4手柄,主要涉及的步骤是蓝牙配对和ros驱动安装启动。

      1. ps4手柄与ubuntu进行蓝牙配对

      ps4手柄和ubuntu之间只用配对一次,之后就可以跳过配对步骤直接连接。
      同时长按ps4手柄的share键 和 ps键,手柄开始快速闪短暂的白灯后就进入配对模式,此时可以松手。

      在手柄保持闪烁白光情况下,进入ubuntu蓝牙管理界面里面,可以看到一个叫wireless Controller的蓝牙设备,这个就是ps4手柄,点击它进行配对。有些ubuntu系统是要通过手动添加蓝牙设备方式进行配对的,界面上有+ -号。

      配对成功后,手柄led会停止闪烁,同时颜色变成蓝色。

      手柄和ubuntu的蓝牙配对就完成了。

      2. ps4手柄与ubuntu进行蓝牙连接

      上面步骤1完成后,手柄与ubuntu就已经连上了,如果ubuntu重启了或者手柄掉线,就需要重新连接。
      重新连接很简单,只需要按一下ps键,让手柄进入连接模式,此时手柄会闪白光,白光持续时间比配对时的长。

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

      3. ROS驱动安装

      ps4手柄的ros驱动包是ds4_driver,依赖于ds4drv这个python库。

      #先安装ds4drv库,同时设置udev规则
      cd ~/Documents
      git clone http://git.bwbot.org/publish/ds4drv --branch devel
      cd ds4drv
      #安装
      sudo python setup.py install 
      #拷贝设置udev规则文件
      sudo cp udev/50-ds4drv.rules /etc/udev/rules.d/
      sudo udevadm control --reload-rules
      sudo udevadm trigger
      
      #再安装ds4_driver这个ros驱动包
      cd ~/Documents/ros/src #这里要换成自己的ros工作空间
      git clone http://git.bwbot.org/publish/ds4_driver.git
      cd ..
      #开始编译
      catkin_make -DCMAKE_BUILD_TYPE=Release -DCATKIN_WHITELIST_PACKAGES="ds4_driver"
      

      4. 测试ROS驱动

      # 用roslaunch启动ds4_driver
      roslaunch ds4_driver xiaoqiang.launch
      #手柄如果连接上ubuntu,上面launch运行窗口会显示Connected to bluetooth controller, 像下图一样。
      

      ds4drv.JPG

      # 此时打印/joy 话题,同时按手柄任意按钮,可以观察到/joy话题中对应按钮值发生变化
      rostopic echo /joy
      

      joy.JPG

      5. 将ROS驱动设成开机自启动

      利用ubuntu的startup application功能,添加桌面登录后自动启动功能,下次ubuntu重启后,ds4_driver会自动启动,连上手柄后就可以控制/joy话题发布。
      startup0.JPG
      ds4_driver包里面的upstart文件夹,里面有一个文本文档,将文本文档里面的命令复制到ubuntu里面的startup application项目即可。
      startup.JPG

      6.安装turtlebot_teleop包,将手柄/joy话题转换成/cmd_vel速度话题

      cd ~/Documents/ros/src #这里要换成自己的ros工作空间
      git clone http://git.bwbot.org/publish/turtlebot --branch melodic
      cd ..
      #开始编译
      catkin_make -DCMAKE_BUILD_TYPE=Release -DCATKIN_WHITELIST_PACKAGES="turtlebot_teleop"
      
      #开始运行
       roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch
      #打印/cmd_vel话题,连上手柄后,保持按住手柄油门键(下图中的10号键),现在使用左侧的推杆可以控制cmd_vel话题的前后移动和转向(下图中的1+1-摇杆)
      

      teleop.JPG
      cmd.JPG
      DS4_Glacier_White_top.png
      turtlebot_teleop 也可以设成开机自动启动,设置步骤参考上面的步骤5。

      7.常见问题

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

      8.PS4手柄按钮编号

      ds4_0.jpg
      ds4_3.jpg
      ds4_1.jpg

      cuiliyun 1 条回复 最后回复 回复 引用 0
      • potterson
        potterson 最后由 编辑

        @xiaoqiang 在 ps4手柄ros驱动安装和蓝牙配对教程 中说:

        1. 测试ROS驱动

        第四步 4. 测试ROS驱动 roslaunch ds4_driver xiaoqiang.launch 运行之后报错 No module named ‘rospkg’ 咋办呢

        xiaoqiang potterson 2 条回复 最后回复 回复 引用 0
        • xiaoqiang
          xiaoqiang @potterson 最后由 编辑

          @potterson 截图完整错误信息

          1 条回复 最后回复 回复 引用 0
          • potterson
            potterson @potterson 最后由 编辑

            @potterson 安装该包之后问题解决,谢谢

            1 条回复 最后回复 回复 引用 0
            • cuiliyun
              cuiliyun @xiaoqiang 最后由 编辑

              @xiaoqiang 在 ps4手柄ros驱动安装和蓝牙配对教程 中说:

              roslaunch ds4_driver xiaoqiang.launch

              博主,我卡在这一步
              [INFO] [1692149269.091375]: [hidraw]: Scanning for devices
              之后,为就一直在等相应

              Joystick inactive for 3 seconds. Stop publishing joy
              Joystick inactive for 120 seconds. Disconnecting to save battery

              然后也连接不上,请问你知道原因是什么吗

              xiaoqiang 1 条回复 最后回复 回复 引用 0
              • xiaoqiang
                xiaoqiang @cuiliyun 最后由 编辑

                @cuiliyun 手柄配对没成功,先配对

                cuiliyun 1 条回复 最后回复 回复 引用 0
                • cuiliyun
                  cuiliyun @xiaoqiang 最后由 编辑

                  @xiaoqiang 可是我感觉已经配对成功了,我照着流程来,现在手柄led也是亮着蓝光,蓝牙那里也显示已经连接上了

                  xiaoqiang 1 条回复 最后回复 回复 引用 0
                  • xiaoqiang
                    xiaoqiang @cuiliyun 最后由 编辑

                    @cuiliyun 手柄是哪里采购的?

                    cuiliyun 1 条回复 最后回复 回复 引用 0
                    • cuiliyun
                      cuiliyun @xiaoqiang 最后由 编辑

                      @xiaoqiang 是公司的手柄,不是新的 用了有段时间了

                      xiaoqiang 1 条回复 最后回复 回复 引用 0
                      • xiaoqiang
                        xiaoqiang @cuiliyun 最后由 xiaoqiang 编辑

                        @cuiliyun ps4手柄有多款山寨版本,有些版本就会能蓝牙配对但是无法使用ros。包装盒有大小两款,小盒子的一般是用不了的垃圾,大盒子能用的概率比较大,原厂原装的最好。

                        1 条回复 最后回复 回复 引用 0
                        • cuiliyun
                          cuiliyun 最后由 编辑

                          @xiaoqiang 好的,谢谢博主,我去反应一下

                          1 条回复 最后回复 回复 引用 0
                          • 看结果吧
                            看结果吧 最后由 编辑

                            第四步测试ros驱动 运行launch文件报错

                            1 条回复 最后回复 回复 引用 0
                            • 看结果吧
                              看结果吧 最后由 编辑

                              微信图片_20250223095534.jpg

                              xiaoqiang 1 条回复 最后回复 回复 引用 0
                              • xiaoqiang
                                xiaoqiang @看结果吧 最后由 编辑

                                @看结果吧 hosts文件设置错误,可以咨询gpt获取修改意见

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