您的位置:首页 > 其它

ros 与 sony ps3joy

2016-12-02 16:56 274 查看
ps3  joystick 连不上蓝牙接收器解决办法:

1、参考ps3joy 官文

2、拔下蓝牙接收器,再插入蓝牙接收器,按下p键,按一下就好

发现每次连上之后第二次就连不上了,发现拔下接收器之后再连就可以了。。

发布 cmd_vel, 订阅 Joy,,数据从摇杆进来,转换成速度发布出去,,,前提是摇杆connection active,,,sudo jstest /dev/input/js0  对按下按钮应数据有变化。

#!/usr/bin/env python
import rospy
from geometry_msgs.msg
import Twist
from sensor_msgs.msg importJoy

class Ps3Learning(object):

    def __init__(self):

        self.cmd = None

        rospy.init_node("ps3joyLearning_node")

        rospy.Subscriber("/gl/joy",
Joy, self.callback)

        rospy.on_shutdown(self.shutdown) 

        velpub = rospy.Publisher('/gl/cmd_vel',Twist,
queue_size=10)

        rate = rospy.Rate(20)

        while not rospy.is_shutdown():

            rate.sleep()

            if self.cmd:

                velpub.publish(self.cmd)

    def shutdown(self):

        rospy.loginfo('shut down now..')

    def callback(self,data):

        rospy.loginfo(data)

        ccmd = Twist()

        if data.buttons[4] ==1
or data.buttons[6] ==1:  #go line

            if data.buttons[4] ==1:

                ccmd.linear.x = 1

            else:

                ccmd.linear.x = -1

        else:

            ccmd.linear.x = 0

        if data.buttons[5] ==1
or data.buttons[7] ==1:  #rotate

            if data.buttons[7] ==1:

                ccmd.angular.z = 0.6 

            else:

                ccmd.angular.z = -0.6

        else:

            ccmd.angular.z = 0

        self.cmd = ccmd

if __name__ == '__main__':

    Ps3Learning()

<launch>

  <node pkg="learning_ps3joy" type="listener.py" name="learningPs3">

    <remap from="/gl/cmd_vel" to="/turtle1/cmd_vel"/>

    <remap from="/gl/joy" to="/joy"/>

  </node>

  <node pkg="joy" type="joy_node" name="joystick"/>

</launch>

然后我早上摇了半天。。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: