ros下创建键盘遥控机器人_1 捕获键盘
1 新建工程
cd
cd catkin_ws
catkin_create_pkg teleopBot std_msgs rospy roscpp
2 编写键盘遥控源代码
cd catkin_ws/src
vi key_publisher.py
3 编译
cd
cd catkin_ws
catkin_make
4 测试,开三个终端
运行roscore
运行key_publisher.py #本程序终端处于当前激活状态(前段执行)
运行rostopic echo keys
~~~~~~~~~~~~~~~~~~~~
#!/usr/bin/env python
import sys, select, tty, termios
import rospy
from std_msgs.msg import String
if __name__ == '__main__':
key_pub = rospy.Publisher('keys', String, queue_size=1)
rospy.init_node("keyboard_driver")
rate = rospy.Rate(100)
old_attr = termios.tcgetattr(sys.stdin)
tty.setcbreak(sys.stdin.fileno())
print "Publishing keystrokes. Press Ctrl-C to exit..."
while not rospy.is_shutdown():
if select.select([sys.stdin], [], [], 0)[0] == [sys.stdin]:
key_pub.publish(sys.stdin.read(1))
rate.sleep()
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_attr)
~~~~~~~~~~~~~~~~~~~~
cd
cd catkin_ws
catkin_create_pkg teleopBot std_msgs rospy roscpp
2 编写键盘遥控源代码
cd catkin_ws/src
vi key_publisher.py
3 编译
cd
cd catkin_ws
catkin_make
4 测试,开三个终端
运行roscore
运行key_publisher.py #本程序终端处于当前激活状态(前段执行)
运行rostopic echo keys
~~~~~~~~~~~~~~~~~~~~
#!/usr/bin/env python
import sys, select, tty, termios
import rospy
from std_msgs.msg import String
if __name__ == '__main__':
key_pub = rospy.Publisher('keys', String, queue_size=1)
rospy.init_node("keyboard_driver")
rate = rospy.Rate(100)
old_attr = termios.tcgetattr(sys.stdin)
tty.setcbreak(sys.stdin.fileno())
print "Publishing keystrokes. Press Ctrl-C to exit..."
while not rospy.is_shutdown():
if select.select([sys.stdin], [], [], 0)[0] == [sys.stdin]:
key_pub.publish(sys.stdin.read(1))
rate.sleep()
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_attr)
~~~~~~~~~~~~~~~~~~~~
![]() |
![]() |