UGV Rover Jetson Orin ROS2 9. Web 端控制工具
| ||||||||||||||||||||||
|
9. Web 端控制工具
本章节介绍基于 Web 的控制台工具。该机器人项目使用的是 Vizanti Web 工具,Vizanti 是一个基于 Web 的可视化和控制工具,旨在更方便地操作机器人的 ROS2 功能。该应用程序试图尽可能精确地在浏览器上复制 RViz 的正交 2D 视图。第二个目标是允许通过自定义按钮和参数重新配置,规划和执行移动与任务指令,例如目标点和路径点。
默认您已根据第一章 UGV Rover PI ROS2 1. 准备工作里的内容已结束主程序且远程连接上 Docker 容器。在容器中,启动 Web 应用,ip 为 Jetson Orin 的 IP 地址(也是登陆 Docker 容器的 IP 地址):
ros2 launch ugv_web_app bringup.launch.py host:=ip
运行成功后会如下显示:
然后再同一局域网的电脑上(也可以是 Jetson Orin 系统),打开浏览器(最好是谷歌浏览器),在地址栏输入 Jetson Orin 的 IP 地址 + :5100,例如:192.168.10.212:5100。
此时,由于没有启动机器人的相关节点,因此在 Web 界面中没有任何数据显示。
9.1 控制小车移动
9.1.1 运行小车驱动节点
打开一个新的 Docker 容器终端,点击左边侧栏中的“⭐”符号,双击打开 Docker 的远程终端,输入用户名:root,密码:jetson。
启动小车驱动节点:
ros2 launch ugv_bringup bringup_lidar.launch.py use_rviz:=true
启动后,Web 界面中会出现一个 TF 坐标系图,同时,也会出现该产品 RViz 2 模型界面。
下面介绍 Web 界面的通用工具:
9.1.2 控制小车移动
接着,我们先添加一个操纵杆小组件用来控制小车移动。点击“Add Widgets”,选择“Teleop Joystick”,会在 Web 界面出现一个圆圈按钮,通过这个按钮可以控制小车移动。
9.2 建图
在启动建图节点之前,先要确保上述底盘驱动节点已关闭运行。需要先参考 UGV Rover PI ROS2 4. 基于激光雷达的二维建图或者 UGV Rover PI ROS2 5. 基于深度相机的三维建图里的内容启动建图节点。
启动后,在 Web 界面中点击“Add Widgets”,选择“Map”。
接着,点击“Map”图标,将 Topic 选择为 /map,这样就能看见 RViz 界面中的地图了。
最后再通过手柄或者键盘控制小车移动进行建图,或者也可以通过前面添加的操纵杆小组件控制小车移动进行建图,建完图后也参考建图教程里的指令进行地图保存。
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 界面中所显示的地图一致。
在 Web 界面中点击“Add Widgets”,选择“2D Pose Estimate”和“2D Nav Goal”这两个个小组件进行添加。
可以使用“2D Pose Estimate”在地图上指出机器人的位置,绿色箭头的方向是机器人云台朝前的方向。
在地图上为机器人选择一个目标位置。您可以使用“2D Nav Goal”工具向机器人发送目标位置和目标方向。在 Web 界面的地图上指出机器人想要自动导航至的位置(目标点),紫色箭头的方向是机器人云台朝前的方向。指出目标位置后松开鼠标,机器人会移动至该目标位置。
自此,可以通过 Web 端控制工具去控制机器人移动、建图及导航等。用户还可根据自己的需求去扩展和开发其余组件的功能。