Excerpt |
---|
本页介绍了teleop_twist_keyboard的用法, 包含如何使用键盘控制机器运动的功能。 |
本页内容
Table of Contents |
---|
运行环境准备
软件平台
- Ubuntu 16.04 AMDX86
- ROS Kinetic
硬件平台
(以下任选其一)
- Slamware 套装 (基于Slamware导航方案的用户机器人系统)
- Apollo/Ares/Athena等底盘系统
编译运行
1.下载Slamware ROS SDK以及ROS例程。
2.将ROS sdk中的src文件夹放入一个空的工作目录,如:catkin_ws。将ROS 例程中的slamware_ros_sample文件夹也放入src文件夹下。使用catkin工具初始化工作空间。
Code Block |
---|
cd catkin_ws/src catkin_init_workspace |
3.编译
Code Block |
---|
cd .. catkin_make |
4.配置工作空间系统环境
Code Block |
---|
source devel/setup.bash |
5.启动slamware_ros_sdk_server_node节点
Code Block |
---|
roslaunch slamware_ros_sdk slamware_ros_sdk_server_node.launch ip_address:=10.6.128.141 //如果是AP模式,ip_address是192.168.11.1 |
6.重新打开一个终端窗口,重复第4步,并启动teleop_twist_keyboard_node节点。按照提示,按W/S/A/D键,控制机器向前/后/左/右方向运动
Code Block |
---|
roslaunch slamware_ros_sample teleop_twist_keyboard.launch |
代码描述
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
moveBindings = { 'w':(1.0, 0.0), 's':(-1.0, 0.0), 'a':(0.0, 1.0), 'd':(0.0, -1.0) } |
Code Block | ||||
---|---|---|---|---|
| ||||
pub = rospy.Publisher('/cmd_vel', Twist, queue_size = 1) |
Code Block | ||||
---|---|---|---|---|
| ||||
rospy.init_node('teleop_twist_keyboard_node') |
Code Block | ||||
---|---|---|---|---|
| ||||
key = getKey() print(key) if key in moveBindings.keys(): linearX = moveBindings[key][0] angularZ = moveBindings[key][1] else: linearX = 0.0 angularZ = 0.0 if (key == '\x03'): break |
Code Block | ||||
---|---|---|---|---|
| ||||
twist = Twist() twist.linear.x = linearX twist.angular.z = angularZ pub.publish(twist) |