导航

    蓝鲸ROS机器人论坛

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

    原装和国产ps3手柄ros驱动程序

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

      小强主页

      ps3手柄的ros驱动程序为joystick_drivers包中的ps3joy,这份驱动对索尼原装手柄支持较好,但是对国产ps3手柄的支持存在问题。我们在ps3joy的基础上进行了修改,增加了一个ps3joyfake_node.py脚本作为国产手柄的驱动,包源代码地址在这里:。下文以小强为例,演示这个包的安装步骤和简略的使用方法

      安装步骤

      ssh进入小强ros工作空间,下载源码后编译,完成安装
      小强镜像中默认已经安装此软件包,可以跳过这一步骤。

      ssh xiaoqiang@192.168.xxx.xxx
      cd Documents/ros/src/
      git clone https://gitee.com/BlueWhaleRobot/joystick_drivers.git
      cd ..
      catkin_make
      # 如果提示下列错误
      error spnav.h no such file
      # 先安装下面这个包,然后重新执行catkin_make
      sudo apt-get install libspnav-dev
      

      快速使用方法

      ps3joyfake_node.py启动后,它会将蓝牙接收的手柄按键数据转换成标准的joy msg,同时以/joy为话题在ros中发布,即ps3joyfake_node.py一个文件相当于ps3joy.py + joy_node两个文件,在实际使用中不必再开启joy_node节点。

      1.将手柄与usb蓝牙适配器进行绑定,只需绑定一次,下次直接跳过这个步骤

      如果是手柄是和小强同时购买,那么我们已经提前为您配对,可以跳过此步骤。
      将手柄通过usb数据线接入主机,usb蓝牙适配器也插上主机

      sudo bash
      rosrun ps3joy sixpair
      

      此时会得到类似下图的输出,current和setting的mac地址一样说明绑定成功

      Current Bluetooth master: 00:22:b0:d0:5a:09
      Setting master bd_addr to 00:22:b0:d0:5a:09
      
      # 如果出现下述错误
      Current Bluetooth master: 00:1b:dc:00:07:3c
      Unable to retrieve local bd_addr from `hcitool dev`.
      Please enable Bluetooth or specify an address manually.
      # 先运行
      hciconfig hci0 reset
      # 如果运行
      hciconfig hci0 reset
      # 出现错误
      # Can't init device hci0: Operation not possible due to  
      
      # 运行 
      rfkill unblock all
      # 然后运行
      hciconfig hci0 reset
      # 重新运行
      rosrun ps3joy sixpair
      

      绑定设置完成,断开手柄与主机的usb连接

      ctrl+D 退出root模式

      2.将手柄与usb蓝牙适配器配对

      #确保蓝牙接收器已经插入主机usb口
      sudo bash
      rosrun ps3joy ps3joyfake_node.py
      

      正常会出现下面的提示

      root@xiaoqiang-desktop:~# rosrun ps3joy ps3joyfake_node.py 
      No inactivity timeout was set. (Run with --help for details.)
      Waiting for connection. Disconnect your PS3 joystick from USB and press the pairing button.
      #如果提示下列错误
      ImportError: No module named bluethooth
      #请先安装下列包,然后重新运行
      sudo apt-get install libbluetooth-dev
      sudo pip install PyBluez 
      

      按一下下图中的手柄配对键


      alt text


      配对成功的话,上面的窗口会输出类似下面的结果

      root@xiaoqiang-desktop:~# rosrun ps3joy ps3joyfake_node.py
      No inactivity timeout was set. (Run with --help for details.)
      Waiting for connection. Disconnect your PS3 joystick from USB and press the pairing button.
      Connection activated
      

      配对完成

      3.查看手柄输出

      新开一个窗口,打印按键输出
      rostopic echo /joy
      

      正常会出现下面的类似结果

      header:
        seq: 297
        stamp:
          secs: 1488877867
          nsecs: 535818099
        frame_id: ''
      axes: [0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.21316899359226227, 0.0]
      buttons: [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
      

      从上面可以看到第4个button被按下了

      4.启动相关的joy msg处理节点

      注意不要再启动joy_node

      #以小强为例,启动下列launch文件后就可以遥控小强移动了
      roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch
      

      购买带手柄的小强用户,还可以根据这篇教程使用手柄

      进行步骤1绑定时,如果提示找不到手柄设备,无法绑定,可以执行下面两个步骤以解决问题:
      1.点击系统桌面右上角的蓝牙图标,将连接着的蓝牙手柄服务关闭
      0_1523188908187_IMG_1067.JPG
      0_1523188923058_IMG_1066.JPG
      2.重新插拔手柄,然后重新运行绑定指令

      小强主页
      返回目录

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

        此回复已被删除!
        1 条回复 最后回复 回复 引用 0
        • wukefu
          wukefu 最后由 wukefu 编辑

          0_1525877464432_reply.png
          您好,做到这一步后一直无法配对手柄和蓝牙适配器可能是什么问题呢?
          蓝牙适配器插在电脑上没有问题,手柄也按下了配对键。

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

            @wukefu 你在操作这一步之前有没有通过USB数据线绑定?

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

              @wukefu 按配对键的时候手柄不能用usb连接电脑,但是上一部的绑定需要手柄和电脑用usb连接,因此会有一个断开的操作。断开usb时,手柄会自动触发蓝牙连接(手柄配对指示灯会闪),此时就会导致不能配对成功,因为是usb断开引起的。
              正确操作是:断开usb后,先等配对指示灯不闪后,再执行“rosrun ps3joy ps3joyfake_node.py”,最后按手柄配对键就可以配对了

              wukefu Taiping 2 条回复 最后回复 回复 引用 0
              • wukefu
                wukefu @weijiz 最后由 编辑

                @weijiz 您好,已经进行过绑定了,图中可以看到usb与手柄已经绑定成功了

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

                  @xiaoqiang 你好,我按照您说的做了一遍,还是无法配对成功…

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

                    @xiaoqiang 我和@wukefu 的情况一样 断开USB 配对灯不闪 再运行rosrun ps3joy ps3joyfake_node.py 之后出现waiting for connection. 按手柄配对键,依然没反应。

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

                      @xiaoqiang 在 原装和国产ps3手柄ros驱动程序 中说:

                      ,

                      后来再重试了,rosrun ps3joy ps3joyfake_node.py后 出现:
                      No inactivity timeout was set.(Run with --help for details.)
                      Unable to register with master node [http://localhost:11311]:master may not be running yet. Will keep trying.

                      这是什么问题?

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

                        @jianjun 这是由于roscore没有启动,可能你把startup服务关闭里。运行

                        sudo service startup start
                        

                        可以启动服务。

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

                          @weijiz 输入你所说的命令后显示
                          Fail to start startup.service: Unit startup.service not found.

                          这是什么问题?

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

                            @jianjun 你可能用的不是小强系统。直接运行roscore,而且要一直运行,不能关闭。

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

                              @weijiz 我是在树莓派3 上用Ubuntu系统,最后我还是没配对上,显示:

                              No inactivity timeout was set. (Run with --help for details.)
                              Waiting for connection. Disconnect your PS3 joystick from USB and press the pairing button.
                              

                              我是按照您上面说的,先断开USB,等到配对灯灭了后再运行的ps3joyfake_node.py,之后按了很多次配对键都没配对成功。
                              这是什么原因呢?

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

                                @jianjun 可能是树莓派的问题,树莓派的蓝牙驱动好像有问题。你可以换电脑试试。

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

                                  手柄接上数据线在linux系统下会震动,忽略这样的震动就可以了,继续按照教程操作

                                  切克闹

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

                                    手柄按照教程上面去配对的时候,到了第二步手柄和蓝牙接收器配对,手柄的灯已经不是一起闪,后来全部灭了,终端也没有显示连接成功。但手柄再按配对按钮,灯不亮,而且重新接usb线灯也不亮。手柄充电后也没有任何反应。

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

                                      @xiangxiang123 把手柄插入主机后运行lsusb看一下。把输出发过来。

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

                                        @weijiz 手柄充了一晚上电之后能开了。配对的时候到了第二步,断开USB 配对灯不闪 再运行rosrun ps3joy ps3joyfake_node.py 之后出现waiting for connection. 按手柄配对键,依然没反应。

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

                                          @xiangxiang123 在 原装和国产ps3手柄ros驱动程序 中说:

                                          配对灯不闪

                                          配对要一直按着不放直到配对成功。

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

                                            @weijiz 长按后5秒灯就不闪了,也没有提示配对成功。

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