UGV Rover PI ROS2 3. 使用手柄或键盘控制
| ||||||||||||||||||||||
|
3. 使用手柄或键盘控制
本章节介绍如何使用手柄或键盘按键来控制产品运动,该产品出厂时有附带一个 Xbox 蓝牙手柄。默认您已根据第一章 UGV Rover PI ROS2 1. 准备工作里的内容已结束主程序且远程连接上 Docker 容器。
3.1 底盘驱动
在运行手柄控制和键盘控制例程之前,必须要先运行底盘驱动节点。上一章节中我们有介绍一种 ROS2 小车驱动节点的运行,这里我们介绍另一种底盘驱动节点的运行。
在容器中,进入该产品 ROS 2 项目的工作空间:
cd /home/ws/ugv_ws
启动小车驱动节点:
ros2 launch ugv_bringup bringup_lidar.launch.py use_rviz:=true
此时,机器人云台会转至中位,摄像头面向前方,可以查看到该产品 Rviz2 模型界面,原地旋转小车可以看见模型中也会跟着一起旋转。
注意:如果模型界面中显示的不是 UGV Rover 四驱六轮的底盘,则需要先按 Ctrl+C 关闭运行小车驱动节点。接着将 ROS 2 项目中的 UGV 模型切换为 UGV Rover 的,输入以下命令切换完模型后再启动小车驱动节点。
export UGV_MODEL=ugv_rover source ~/.bashrc
3.2 手柄控制
启动小车驱动节点后,将手柄接收器接入到树莓派中。
插入后,需要先在一个新的 Docker 容器终端运行手柄控制节点。打开一个新的 Docker 容器终端,点击左边侧栏中的“⭐”符号,双击打开 Docker 的远程终端,输入用户名:root,密码:ws。
在容器中,先运行如下命令查看是否识别到游戏手柄,运行后如图所示:
ls /dev/input
其中,js0 代表游戏手柄。
在容器中,进入该产品 ROS 2 项目的工作空间:
cd /home/ws/ugv_ws
运行手柄控制节点:
ros2 launch ugv_tools teleop_twist_joy.launch.py
接着打开手柄背后的开关,看见手柄上亮红灯之后可以控制小车运动。【标注手柄三个功能键手柄:R下面的那个键锁定or解锁,手柄的摇杆,左摇杆——前进,后退;右摇杆——左转,右转】
通过按 Ctrl+C 可以关闭手柄控制节点。
3.2 键盘控制
关闭手柄控制节点,可以接着再运行手柄控制节点的终端窗口中来运行键盘控制节点:
ros2 run ugv_tools keyboard_ctrl
保持这个窗口为激活状态(即确保操作按键时位于该终端窗口界面),通过以下按键来控制小车运动:
键盘按键 | 操作描述 | 键盘按键 | 操作描述 | 键盘按键 | 操作描述 |
字母 U | 左前进 | 字母 I | 直前进 | 字母 O | 右前进 |
---|---|---|---|---|---|
字母 J | 左转 | 字母 K | 停止运动 | 字母 L | 右转 |
字母 M | 左后退 | 符号 , | 直后退 | 符号 . | 右后退 |
通过按 Ctrl+C 可以关闭键盘控制节点。