小强ROS机器人教程(7)___使用ps3手柄控制小强移动


  • administrators

    原理:本教程涉及3个包,ps3joy负责将ps3蓝牙接受信号转换成标准的linux设备(/dev/input/js0),joy_node节点负责将上述joy设备数据转换成ros中的joy数据类型,turtlebot_teleop_joy负责将上述joy数据topic 转换成小车运动指令/cmd_vel

    操作步骤:

    0.第一次使用手柄,需要将手柄与蓝牙接受器进行绑定,以后可以直接从步骤1开始

    绑定方法参考原装和国产ps3手柄ros驱动程序中的“快速使用方法步骤1”

    1.启动ps3joy,将ps3手柄与蓝牙接受器配比
    #确保蓝牙接收器已经插入主机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.
    

    如果提示下列错误
    按下下图中的手柄配对键


    0_1479882160058_14.3.png


    配对成功的话,手柄会震动一下,同时上面的窗口会输出类似下面的结果

    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
    
    2.启动joy_node和turtlebot_teleop_joy
    roslaunch turtlebot_teleop ps3fakexiaoqiang_teleop.launch
    

    正常启动后如下图所示
    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"/>
        <param name="axis_enbar" value="12"/>
        <param name="axis_disenbar" value="14"/>
        <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),底盘红外使能键(axis_enbar),底盘红外关闭键(axis_disenbar),这些控制按键、摇杆的映射关系。

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

    0_1479882825642_ps3_buttons_front.jpg
    0_1479882814189_ps3_axes.jpg
    0_1479882833842_ps3_buttons.jpg
    根据这些按键编号,可以修改launch文件中的相关参数从而改变按键映射关系

    花样玩法:

    购买ps3手机支架, 安卓手机装上小强图传app,这样可以实现图传遥控
    0_1489804886570_QQ图片20170318104104.jpg

    下篇教程



  • 此回复已被删除!


  • 0_1527238305450_03621719-bfa7-48ce-aedb-c771ada8acdb-image.png
    0_1527238324345_528554b0-923d-4db5-ba5f-360852dcb261-image.png


  • administrators

    @yangoogle 只有上面教程里面的带编号的按键和轴才有效,其它轴比如25轴ros驱动里面没有使用,值漂不漂都没有用。