UGV Rover PI ROS2 9. Web 端控制工具

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

9. Web 端控制工具

本章节介绍基于 Web 的控制台工具。该机器人项目使用的是 Vizanti Web 工具,Vizanti 是一个基于 Web 的可视化和控制工具,旨在更方便地操作机器人的 ROS2 功能。该应用程序试图尽可能精确地在浏览器上复制 RViz 的正交 2D 视图。第二个目标是允许通过自定义按钮和参数重新配置,规划和执行移动与任务指令,例如目标点和路径点。

默认您已根据第一章 UGV Rover PI ROS2 1. 准备工作里的内容已结束主程序且远程连接上 Docker 容器。在容器中,启动 Web 应用,ip 为树莓派的 IP 地址(也是登陆 Docker 容器的 IP 地址):

ros2 launch ugv_web_app bringup.launch.py host:=ip

运行成功后会如下显示:

ROS2 webapp.png

然后再同一局域网的电脑上(也可以是树莓派系统),打开浏览器(最好是谷歌浏览器),在地址栏输入树莓派的 IP 地址 + :5100,例如:192.168.10.212:5100。

此时,由于没有启动机器人的相关节点,因此在 Web 界面中没有任何数据显示。


9.1 控制小车移动

9.1.1 运行小车驱动节点

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

ROS2 newDocker.png

启动小车驱动节点:

ros2 launch ugv_bringup bringup_lidar.launch.py use_rviz:=true

启动后,Web 界面中会出现一个 TF 坐标系图,同时,也会出现该产品 RViz 2 模型界面。

ROS2 webapp1.png

下面介绍 Web 界面的通用工具:

  • ROS2 webapp2.png Global Settings:全局设置。可以设置背景颜色和固定 TF 坐标系,还可以将相机视图重置为零和默认缩放。
  • ROS2 webapp3.png Rosbridge Connection:桥连接。这里显示连接状态以及 URL 链接等信息。
  • ROS2 webapp4.png Grid Renderer:网格。可调节的公制网格。
  • ROS2 webapp5.png TF Frame Renderer:TF 坐标系。渲染 TF 坐标系,大部分选项与 RViz 中的选项相同,不用再设置。
  • ROS2 webapp6.png Add Widgets:添加小组件。


9.1.2 控制小车移动

接着,我们先添加一个操纵杆小组件用来控制小车移动。点击“Add Widgets”,选择“Teleop Joystick”,会在 Web 界面出现一个圆圈按钮,通过这个按钮可以控制小车移动。

ROS2 webapp7.pngROS2 webapp8.png


9.2 建图

在启动建图节点之前,先要确保上述底盘驱动节点已关闭运行。需要先参考 UGV Rover PI ROS2 4. 基于激光雷达的二维建图或者 UGV Rover PI ROS2 5. 基于深度相机的三维建图里的内容启动建图节点。

启动后,在 Web 界面中点击“Add Widgets”,选择“Map”。

ROS2 webapp9.png

接着,点击“Map”图标,将 Topic 选择为 /map,这样就能看见 RViz 界面中的地图了。

ROS2 webapp10.png

最后再通过手柄或者键盘控制小车移动进行建图,或者也可以通过前面添加的操纵杆小组件控制小车移动进行建图,建完图后也参考建图教程里的指令进行地图保存。


9.3 导航

建完图后,在 Docker 容器中,运行启动导航的指令:

ros2 launch ugv_nav nav.launch.py use_rviz:=true

该指令中没有指定 use_localization,默认使用的是基于 AMCL 算法的导航,详情可参考 UGV Rover PI ROS2 6. 自动导航部分的教程说明。

通过将“Map”小组件里的 Topic 设置为 /map,则可以看见前面建图完成所保存的地图,该地图和 RViz2 界面中所显示的地图一致。

ROS2 webapp11.png

在 Web 界面中点击“Add Widgets”,选择“2D Pose Estimate”和“2D Nav Goal”这两个个小组件进行添加。

ROS2 webapp12.png

可以使用“2D Pose Estimate”在地图上指出机器人的位置,绿色箭头的方向是机器人云台朝前的方向。

在地图上为机器人选择一个目标位置。您可以使用“2D Nav Goal”工具向机器人发送目标位置和目标方向。在 Web 界面的地图上指出机器人想要自动导航至的位置(目标点),紫色箭头的方向是机器人云台朝前的方向。指出目标位置后松开鼠标,机器人会移动至该目标位置。

自此,可以通过 Web 端控制工具去控制机器人移动、建图及导航等。用户还可根据自己的需求去扩展和开发其余组件的功能。