机器人技术(5)AtdRobot无线手柄控制教程

游戏手柄介绍(Xu, Chen et al. 2016)

      上一章节我们介绍了如何用键盘控制我们的机器人底盘运动。实际使用过程中,我们很难抱着笔记本来遥控小车。更为常见的情况是利用无线遥控手柄来进行遥控控制小车的前进、后退和转弯。

   本机器人系统为大家准备的是GameSir游戏手柄,该手柄握感舒适,且按键丰富,可以用于本机器人系统的控制。

 

    无线手柄的接收器连接到底盘主机的USB接口即可。通过后面的例程我们将实现用手柄无线遥控小车运动的DEMO。

运行无线手柄DEMO

开启一个终端,运行底盘控制主节点,输入:

ssh hong@192.168.31.200

roslaunch ros_arduino_python arduino.launch

如下图所示,节点即开启成功。

 

 

        控制手柄的两个节点分别是手柄开启节点(rosrun joy joy_node)和手柄控制节点(rosrun turtlesim turtle_teleop_joystick),你可以在已经和树莓派实现远程连接的终端下分别运行这两个节点。不过现阶段,我们已经将这两个节点整合到了底盘的主launch文件中,故只需运行roslaunch ros_arduino_python arduino.launch即可通过手柄控制底盘移动。

核心代码讲解

    手柄控制是通过~/catkin_ws/src/turtlesim/turtlesim文件夹下的turtle_teleop_joystick.cpp文件实现的。实现过程是通过读取手柄输入值,转化为ROS系统下的cmd_vel话题,小车底盘通过订阅该话题来决定自己的运动状态。手柄所发布的数据可以通过rostopic echo /joy 这个命令查看。

 

    向该主题发布的消息类型是twist,其中twist.linear是底盘运动的线速度,twist.angular是底盘运动的角速度。

最后

    到这里我门就实现了用手柄控制小车运行的一个简单例程。其中关键点是cmd_vel指令和turtle_teleop_joystick.cpp文件。如果需要自己开发,可以修改我们本文件中的指令即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值