ros使用羅技f710無線控制手柄


參考:blog.csdn.net/hcx25909/article/details/9042469

 

羅技F710無線控制手柄ROS下使用說明


  1. 安裝手柄相關的包和驅動

sudo apt-get install ros-indigo-joy(ROS相關項,Jetson TK1只安裝這一個)

sudo apt-get install ros-indigo-joystick-drivers

rosdep install joy

rosmake joy

備注:直接rosdep install joy時提示錯誤:

wang@wang-Rev-1-0:~$ rosdep install joy

ERROR: Rosdep cannot find all required resources to answer your query
Missing resource joy
ROS path [0]=/opt/ros/indigo/share/ros
ROS path [1]=/home/wang/bzrobot_ws/src
ROS path [2]=/opt/ros/indigo/share
ROS path [3]=/opt/ros/indigo/stacks
所以用apt-cache search ros-indigo查找安裝包,最后選定以下包安裝,之后rosdep install joy成功

ros-indigo-joy

ros-indigo-joystick-drivers

sudo apt-get install ros-indigo-joy

rosdep install joy

rosmake joy


  1. 查看手柄接口信息並更改其所在的群組   //重啟后無效不知道怎么解決

默認情況下游戲手柄接口名稱為js0

1). 輸入:ls -l /dev/input/js0

輸出:crw-rw-r--+ 1 root root 13, 0 10月 5 09:03 /dev/input/js0

可知js0默認的所有者和群組都是root,即需要root權限才能操作js0

2). 更改js0的root群組為dialout群組

sudo chgrp dialout /dev/input/js0              //改變所屬用戶方法:sudo chown 用戶名 /dev/input/js0

查看更改后所屬群組,輸入:ls -l /dev/input/js0

輸出:crw-rw-r--+ 1 root dialout 13, 0 10月 5 09:03 /dev/input/js0


3. 測試手柄信號

1). 插上無線手柄接收器

2). sudo jstest /dev/input/js0

      (sudo apt-get install joystick)   (在ubuntu本身上的測試,Jetson TK1安裝了該項)

現在按下手柄按鍵就會在終端顯示信息,如附件表一所示:


  1. 運行joy_node節點,查看或訂閱消息

1). 運行joy_node節點:

rosrun joy joy_node 或者rosrun bzrobot_comm joy_node

2). 查看消息:

rostopic echo joy 或者rosrun bzrobot_comm joy_sub.py

現在按下手柄按鍵即可收到信息,終端顯示如下:

header:

seq: 1990

stamp:

secs: 1412479062

nsecs: 544396707

frame_id: ''

axes: [-0.0, -0.0, 1.0, -0.0, -0.0, 0.0, -0.0, -0.0]

buttons: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]


header:

seq: 1964

stamp:

secs: 1412478581

nsecs: 100324311

frame_id: ''

axes: [-0.0, -0.0, 0.21262244880199432, -0.0, -0.0, 0.0, -0.0, -0.0]

buttons: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]


備注:與sudo jstest /dev/input/js0輸出信號相比,其數字量用0.01.0-1.0表示,模擬量在-1.01.0之間,方向鍵和搖桿的正負號反過來


  1. 查看ROS定義的手柄消息類型Joy

輸入:rosmsg show Joy








附件表一: sudo jstest /dev/input/js0時終端顯示

MODE有兩種狀態:綠燈不亮、綠燈亮

VIBRATION:按下手柄震動

為方便敘述,左側搖桿稱為搖桿A,右側搖桿稱為搖桿B,有上下左右標志的鍵稱為方向鍵

綠燈不亮時按鍵值及其位置如下表黑色部分,綠燈亮時buttons相同,axes為綠色部分.

D | X 的選擇在X時如下表:

 

  buttons(整型)
  0 1 2 3 4 5 6 7 8 9 10
"A"按下松開 1->0                    
"B"按下松開   1->0                  
"X"按下松開     1->0                
"Y"按下松開       1->0              
"LB"按下松開         1->0            
"RB"按下松開           1->0          
"BACK"按下松開             1->0        
"START"按下松開               1->0      
"Logitech"按下松開                 1->0    
"搖桿A"按下松開                   1->0  
"搖桿B"按下松開                     1->0

 

  axes(浮點型)
  0 1 2 3 4 5 6 7
"搖桿A"向左並松開(模擬量)(數字量)
 0.0-> 1.0->0.0            1.0->0.0
 
"搖桿A"向右並松開(模擬量)(數字量)  0.0->-1.0->0.0           -1.0->0.0  
"搖桿A"向上並松開(模擬量)(數字量)    0.0-> 1.0->0.0              1.0->0.0
"搖桿A"向下並松開(模擬量)(數字量)    0.0->-1.0->0.0            -1.0->0.0
"LT"按下並松開(模擬量)(同)     1.0->0.0->-1.0->0.0->1.0          
"搖桿B"向左並松開(模擬量)(同)        0.0-> 1.0->0.0        
"搖桿B"向右並松開(模擬量)(同)        0.0->-1.0->0.0        
"搖桿B"向上並松開(模擬量)(同)          0.0-> 1.0->0.0      
"搖桿B"向下並松開(模擬量)(同)          0.0->-1.0->0.0      
"RT"按下並松開(模擬量)(同)           1.0->0.0->-1.0->0.0->1.0    
"方向鍵左"按下並松開(數字量)(數字量)  1.0->0.0            1.0->0.0   
"方向鍵右"按下並松開(數字量)(數字量) -1.0->0.0           -1.0->0.0  
"方向鍵上"按下並松開(數字量)(數字量)    1.0->0.0             1.0->0.0
"方向鍵下"按下並松開(數字量)(數字量)   -1.0->0.0            -1.0->0.0 

 

 

綠燈亮時:1). 搖桿A成為數字量,其位置和值與綠燈不亮時方向鍵鍵相同

2). 方向鍵只是位置由axes的6,7位改變到0,1

3). 其它按鍵不變

 

Jetson TK1安裝F710驅動:

1.ls -l /dev/input/js0

2.sudo apt-get install joystick(安裝)
3.sudo jstest /dev/input/js0

4. sudo apt-get install ros-indigo-joy(安裝)
5.roscore
6.rosrun joy joy_node

7.rostopic echo joy

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM