ROS之游戏手柄控制乌龟和机器人
导师买了个游戏手柄,就研究了一下怎么用游戏手柄控制机器人。想不到有点简单,编写一断代码即可,同时对我这两天学习的复习。 开始教程。 (1)游戏手柄控制乌龟。 rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key 当我们运行上面的两句,发现键盘的方向键可以乌龟移动,它们俩是通过话题通信。 /turtle1/cmd_vel[geometry_msgs/Twist] geometry_msgs/Twist是这个话题的类型,即消息的类型,我们看看内部结构 rosmsg show geometry_msgs/Twist geometry_msgs/Vector3 linear float64 x float64 y float64 z geometry_msgs/Vector3 angular float64 x float64 y float64 z 我们只用linear.x这个来控制速度,angular.z来控制方向。 思路:我们知道乌龟会订阅上面这个话题,因此我们要写这样一个代码,有订阅器,发布器。订阅游戏手柄的指令,然后发布速度到/turtle1/cmd_vel话题上,这样乌龟就可以订阅了。 现在我们要了解游戏手柄的发送的数据类型,然后经过订阅处理,发送自己想要的速度。 首先在终端运行: ls /dev