请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
搜索
查看: 16564|回复: 12

【手柄】我使用Xbox手柄控制机器人延迟很大

[复制链接]

14

主题

66

帖子

170

积分

注册会员

Rank: 2

积分
170
发表于 2021-8-3 14:17:13 | 显示全部楼层 |阅读模式
我在使用Xbox手柄控制机器人时,具有很大的延迟,而且运行状态主要有以下两种:
1、启动手柄后,机器人自动后退,手柄摇杆按键不起作用。
2、机器人不后退,但是反映好久机器人才会按照手柄的指令运动,而手柄的摇杆松开后速度为0,但是机器人依旧前进,很久才能停下。
回复

使用道具 举报

66

主题

263

帖子

533

积分

高级会员

Rank: 4

积分
533

热心会员

发表于 2021-8-3 14:51:00 | 显示全部楼层
这个可能是手柄控制和ros控制冲突了,小车速度接收指令混乱,stm32不知道要接受ros的数据还是手柄发出来的数据。
您试试退出ros的节点只使用手柄进行控制
回复

使用道具 举报

14

主题

66

帖子

170

积分

注册会员

Rank: 2

积分
170
 楼主| 发表于 2021-8-3 15:41:10 | 显示全部楼层
testttt 发表于 2021-8-3 14:51
这个可能是手柄控制和ros控制冲突了,小车速度接收指令混乱,stm32不知道要接受ros的数据还是手柄发出来的 ...

我使用的是jetsonnano工控机,我之前的手柄坏了换了一个手柄,发现就不行了。但是我用这个手柄控制小乌龟的节点,时没有问题的,但是实际到机器人就出现了问题
回复

使用道具 举报

66

主题

263

帖子

533

积分

高级会员

Rank: 4

积分
533

热心会员

发表于 2021-8-3 16:23:10 | 显示全部楼层
jumingyue 发表于 2021-8-3 15:41
我使用的是jetsonnano工控机,我之前的手柄坏了换了一个手柄,发现就不行了。但是我用这个手柄控制小乌龟 ...

您用手柄控制机器人时具体运行了什么程序呢,最好能截图或者用视频说明一下
另外可以您可以排查一下手柄接收数据的情况:  sudo jstest /dev/input/js0
回复

使用道具 举报

14

主题

66

帖子

170

积分

注册会员

Rank: 2

积分
170
 楼主| 发表于 2021-8-4 10:47:13 | 显示全部楼层
testttt 发表于 2021-8-3 16:23
您用手柄控制机器人时具体运行了什么程序呢,最好能截图或者用视频说明一下
另外可以您可以排查一下手柄 ...
  1. #!/usr/bin/python3
  2. #coding=utf-8
  3. import time
  4. import rospy
  5. from sensor_msgs.msg import Joy
  6. from geometry_msgs.msg import Twist
  7. #from can_msgs.msg import Frame


  8. class Joy360:
  9.     def __init__(self):
  10.         self.__line_x = 0
  11.         self.__angle_z = 0
  12.         self.__pub_cmd_vel = None #:
  13.         self.__pub_can_vel = None
  14.         self.__start = False
  15.         
  16.         pass

  17.     def joy_callback(self,data:Joy):
  18.         if data.buttons[10] == 1:
  19.             self.__start = not self.__start
  20.         
  21. #           send_data = Frame()
  22. #           send_data.dlc = 8
  23. #           send_data.id = 2
  24. #           send_data.data = [0x00, 0xDA, 0x00, 0x10, 0x00, 0x00, 0x00, 0x1F]
  25. #           if not self.__start:
  26. #               send_data.data[7] = 0x0F
  27. #           self.__pub_can_vel.publish(send_data)
  28. #           send_data.id = 3
  29. #           self.__pub_can_vel.publish(send_data)

  30.         
  31.         self.__line_x = data.axes[1]*0.3
  32.         self.__angle_z = data.axes[3]*0.3
  33.         

  34.     def start(self):
  35.         print("start init this node")
  36.         rospy.init_node("joy")
  37.         rospy.loginfo("init node ok!!")
  38.         
  39.         self.__pub_cmd_vel = rospy.Publisher("/cmd_vel",Twist,queue_size=100)
  40. #        self.__pub_can_vel = rospy.Publisher("/sent_messages",Frame,queue_size=100)
  41.         rospy.Subscriber("joy",Joy,self.joy_callback)
  42.         
  43.         try:
  44.             while not rospy.is_shutdown():
  45.                 time.sleep(0.1)
  46.                 cmd= Twist()
  47.                 cmd.linear.x=self.__line_x
  48.                 cmd.anguar.z=self.__angle_z
  49.                 if self.__start:
  50.                   
  51.                    self.__pub_cmd_vel.publish(cmd)

  52.         except KeyboardInterrupt as e:
  53.             print("quit by user " + str(e))


  54. if __name__=="__main__":
  55.     joy_ins = Joy360()
  56.     joy_ins.start()
复制代码

我的手柄代码如上面,我用手柄控制小乌龟是可以实现的,但是控制机器人就不可以了。
回复

使用道具 举报

66

主题

263

帖子

533

积分

高级会员

Rank: 4

积分
533

热心会员

发表于 2021-8-4 13:52:45 | 显示全部楼层
jumingyue 发表于 2021-8-4 10:47
我的手柄代码如上面,我用手柄控制小乌龟是可以实现的,但是控制机器人就不可以了。

建议您使用我们的官方手柄进行控制,我们的手柄也可以直接接入ros主控的,而且控制也很流畅。
您也可以参考我们的代码,对比检查一下
回复

使用道具 举报

14

主题

66

帖子

170

积分

注册会员

Rank: 2

积分
170
 楼主| 发表于 2021-8-4 16:19:50 | 显示全部楼层
本帖最后由 jumingyue 于 2021-8-4 16:26 编辑
testttt 发表于 2021-8-4 13:52
建议您使用我们的官方手柄进行控制,我们的手柄也可以直接接入ros主控的,而且控制也很流畅。
您也可以 ...

之前的手柄坏了,我们自己买了一个北通斯巴达的手柄,咱们的程序我应该修改哪里呢?有没有python的程序我参考一下,我对C++不是很懂
回复

使用道具 举报

66

主题

263

帖子

533

积分

高级会员

Rank: 4

积分
533

热心会员

发表于 2021-8-4 16:31:47 | 显示全部楼层
本帖最后由 testttt 于 2021-8-4 16:37 编辑
jumingyue 发表于 2021-8-4 16:19
之前的手柄坏了,我们自己买了一个北通斯巴达的手柄,咱们的程序我应该修改哪里呢?有没有python的程序我 ...

请您提供一下邮箱,用邮箱的方式提供给您。手柄不一样,按键也是不一样的,建议您使用我们官方的手柄或者查询您购买的手柄相关资料
回复

使用道具 举报

2

主题

428

帖子

1307

积分

金牌会员

Rank: 6Rank: 6

积分
1307

论坛元老

发表于 2021-8-5 08:38:40 | 显示全部楼层
jumingyue 发表于 2021-8-4 16:19
之前的手柄坏了,我们自己买了一个北通斯巴达的手柄,咱们的程序我应该修改哪里呢?有没有python的程序我 ...

你的等待回调函数少了rospy.spin()
回复

使用道具 举报

14

主题

66

帖子

170

积分

注册会员

Rank: 2

积分
170
 楼主| 发表于 2021-8-5 16:14:40 | 显示全部楼层
testttt 发表于 2021-8-4 16:31
请您提供一下邮箱,用邮箱的方式提供给您。手柄不一样,按键也是不一样的,建议您使用我们官方的手柄或者 ...

我的邮箱是jumingyue@outlook.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

粤ICP备20017043号|小黑屋|手机版|Archiver|轮趣科技(东莞)有限公司  

GMT+8, 2024-3-28 18:53 , Processed in 0.061976 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表