UGV Rover PI ROS2 2. RViz 查看产品模型

来自Waveshare Wiki
跳转至: 导航搜索
RaspRover
{{{name2}}}
{{{name3}}}
功能简介
特性 UGV Rover ROS2 小车
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 TTL总线舵机控制接口 I2C UART

2. Rviz 查看产品模型

默认您已根据第一章 UGV Rover PI ROS2 1. 准备工作里的内容已结束主程序且远程连接上 Docker 容器。


2.1 查看模型关节

在容器中,进入该产品 ROS 2 项目的工作空间:

cd /home/ws/ugv_ws


启动 Rviz2 模型界面:

ros2 launch ugv_description display.launch.py use_rviz:=true

此时,仅可以查看该产品 Rviz2 模型界面,但不能通过控制面板划动滑块来控制小车运动。成功启动小车 Rviz2 模型的终端界面,该界面不要关闭,接着运行 ROS2 小车驱动节点。


2.2 运行 ROS2 小车驱动节点

我们需要打开一个新的 Docker 容器终端,点击左边侧栏中的“⭐”符号,双击打开 Docker 的远程终端,输入用户名:root,密码:ws。

ROS2 newDocker.png

在容器中,进入该产品 ROS 2 项目的工作空间:

cd /home/ws/ugv_ws

运行驱动小车节点,该节点运行完后不会有任何信息反馈:

ros2 run ugv_bringup ugv_driver

接着通过滑动下图控制面板的滑块可以控制云台转动,此时模型和产品都会跟随您的滑动一起转动。

  • pt_base_link_to_pt_link1:控制云台水平舵机转动。
  • pt_link1_to_pt_link2:控制云台倾斜舵机转动。
  • Center:点击该键云台会回归中位。

ROS2 driver.png


2.3 控制小车灯光

UGV 系列产品,驱动板上集成了两路 12V 开关控制接口(实际最高电压会随着电池电压而改变),分别为由 ESP32 的 IO4 和 IO5 引脚通过 MOS 管来控制,每路对应有两个接口,一共 4 个 12V 开关控制接口,按照默认的组装方式,IO4 控制底盘大灯(OKA 相机旁的灯),IO5 控制头灯(USB 摄像头云台上的灯),你可以通过向下位机发送相应的指令来控制这两路接口的开关以及控制电压高低(但由于 MOS 管控制本身存在一定的延时所以 ESP32 的 IO 输出的 PWM 与实际接口输出的电压不成线性关系)。

对于没有配有 LED 灯的产品,你可以自行在这两路 12V 开关控制接口上扩展耐压 12.6V 的LED灯(一般情况下耐压 12V 的也可以,因为为了安全和保护电池,产品的 UPS 不会将电池电量充到 12V 以上),你也可以在剩余的开关控制接口上扩展其它外设——例如耐压 12V 的水弹枪波箱,直接连接在 IO5 控制的接口上,即可实现自动瞄准和射击的功能。

每运行一个控制节点,都需要打开一个新的 Docker 容器终端,点击左边侧栏中的“⭐”符号,双击打开 Docker 的远程终端,输入用户名:root,密码:ws。

在容器中,进入该产品 ROS 2 项目的工作空间:

cd /home/ws/ugv_ws

运行灯光控制节点,此时可以看见小车上的三个 LED 灯都已亮起:

ros2 topic pub /ugv/led_ctrl std_msgs/msg/Float32MultiArray "{data: [255, 255]}" -1

data: [0, 0]——第一个 0 为控制 IO4 接口(底盘大灯)的开关;第二个 0 为控制 IO5 接口(头灯)的开关。

参数变量范围为 0-255,当此变量值为 0 时,IO4 和 IO5 控制的接口开关关闭;当此变量为 255 时,IO4 和 IO5 控制的接口开关输出的电压接近 UPS 的 BAT 电压(当前 UPS 内三节锂电池串联的电压)。

再次运行关闭 LED 灯的指令,可以看见三个 LED 灯都关闭:

ros2 topic pub /ugv/led_ctrl std_msgs/msg/Float32MultiArray "{data: [0, 0]}" -1


本章节教程已介绍如何查看产品模型关节、运行小车驱动节点以及控制小车灯光,接着可以根据以下教程了解其它的 ROS 2 控制。