1.適配與測試遊戲手柄
首先把手柄插入主機,一般來說可以通過檢查/dev/input檢視,裡面js#的裝置一般就是手柄了
ls /dev/input/
然後使用jstest,安裝的話sudo apt-get install就好,使用jstest的語句如下:
sudo jstest /dev/input/jsx
x為之前js#的字尾數字,根據數字不同,可以檢測不同的手柄。
最後要記得檢查一下手柄裝置的許可權,需要的許可權是讀和寫,需要新增的話命令如下:
sudo
chmod a+rw /dev/input/jsx
2.安裝joy ros包
接下來安裝ros的joy包
sudo
apt-get
install ros-ros版本-joy
啟動joy節點之前要先設定一下這個節點所讀取的手柄裝置:
rosparam set joy_node/dev "/dev/input/jsx"
然後開啟joy節點
rosrun joy joy_node
如果能通過rostopic list看到joy主題,並通過echo看到內容的話就成功了
3.**
原作者是:andrew dai
#!/usr/bin/env python
import rospy
from geometry_msgs.msg import twist
from sensor_msgs.msg import joy
def callback(data):
twist = twist(
) twist.linear.x = data.axes[1]
twist.angular.z = data.axes[0]
print(
'speed: %.2f, turn: %.2f'%(twist.linear.x,twist.angular.z))
if data.buttons[2]
==1:
twist.linear.x = 0
twist.angular.z = 0
print(
"stop!!"
) pub.publish(twist)
# intializes everything
def start(
): # publishing to "cmd_vel" to control turtle1
global pub
pub = rospy.publisher(
'cmd_vel', twist)
# subscribed to joystick inputs on topic "joy"
rospy.subscriber(
"joy", joy, callback)
# starts the node
rospy.init_node(
'joy2turtle'
) rospy.spin(
)if __name__ ==
'__main__'
: start(
)
從joy主題內獲取手柄的資訊,其中
twist.linear.x = data.axes[1]
twist.angular.z = data.axes[0]
獲取了手柄搖桿的資訊,並直接填入twist資訊裡面。我這裡直接填進去了,需要的話可以對數值進行調整,以免跑的太快
data.buttons[2]
獲取了手柄上x鍵的資訊,如果按下的話就會立即停止機械人的運動
最後發布twist資訊,將控制命令傳給機械人
4.launch file
自己寫的乙個launc**件,為了啟動的時候方便一點
"joy_dev" default=
"/dev/input/js0" />
"joy" type=
"joy_node" name=
"joy_node"
>
"dev" value=
"$(arg joy_dev)
" />
"deadzone" value=
"0.3" />
"autorepeat_rate" value=
"20" />
"joytwist" type=
"joytwist.py" name=
"joytwist" output=
"screen"/>
啟動命令
roslaunch joyetwist joytwist.launch
然後就可以愉快的用手柄控制烏龜了,比自帶的鍵盤teleop舒服太多了 通過遊戲手柄控制機械人(ROS,Twist)
首先把手柄插入主機,一般來說可以通過檢查 dev input檢視,裡面js 的裝置一般就是手柄了 ls dev input 然後使用jstest,安裝的話sudo apt get install就好,使用jstest的語句如下 sudo jstest dev input jsxx為之前js 的字尾數...
機械人技術(5)AtdRobot無線手柄控制教程
上一章節我們介紹了如何用鍵盤控制我們的機械人底盤運動。實際使用過程中,我們很難抱著筆記本來遙控小車。更為常見的情況是利用無線遙控手柄來進行遙控控制小車的前進 後退和轉彎。本機械人系統為大家準備的是gamesir遊戲手柄,該手柄握感舒適,且按鍵豐富,可以用於本機械人系統的控制。無線手柄的接收器連線到底...
機械人ros通訊
除錯幾天,ros之間的通訊。雖然還有點bug,但總之網路配置成功,並且能夠正 常通訊,現在記錄一下這個過程。一,網路通訊除錯 1 利用ifconfig命令檢視主機master turtlebot的上網本 和客戶端即工作機的 ip。2 利用hostname命令檢視,上網本和工作機使用者名字。3 開啟h...