Robotics UI是使用React和Ros 2铁的ROS 2动力机器人的Web接口解决方案。
我们的愿景是创建软件,使您可以通过配置一个简单的JSON文件来立即将Web接口添加到每个ROS 2机器人。

该工具由两个部分组成:Python后端,它充当ROS 2和React前端之间的翻译层。为了实现这一目标,我们将ROS 2消息转换为JSON和Back。

在前端,我们使用基于窗口的设计,每个窗口都是其自身的Micro Program与后端的JSON数据接口。这使我们可以采用插件风格的方法,并使用户可以自定义其仪表板。目的是让用户创建自己的自定义插件。
还有一个更紧凑的设计的电话支持。

ROS 2铁设置我们使用
要使用ROS 2软件包,您需要安装以下软件包:
设置ROS
export ROS_DISTRO=iron设置FastApi
sudo apt install python3-pip
pip install fastapi
pip install uvicorn 其他依赖性
pip install pyyaml安装NVM
sudo apt update
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
nvm install node导航到您的ROS 2工作区SRC文件夹并下载软件包
cd ~ /ros2_ws/src
git clone https://github.com/sciotaio/robotics-ui.git导航到您的工作区文件夹并安装ros2_webinterface软件包
cd ~ /ros2_ws
colcon build --packages-select ros2_webinterface && source install/setup.bash导航到React项目文件夹
cd ~ /ros2_ws/src/robotics-web/react/robotics_ui/使用NPM安装依赖项
npm install # test launch
ros2 launch ros2_webinterface test.launch.py
# main launch (only the webinterface)
ros2 launch ros2_webinterface webinterface.launch.py
# waypoint_manager launch (Backend for the OpenStreetMap Plugin)
ros2 launch ros2_webinterface waypoint_manager.launch.py cd ~ /ros2_ws/src/robotics-web/react/robotics_ui/
npm startTODO:解释如何更改主机和代理设置以及如何更改后端地址
用户指南说明了如何自定义应用程序以及如何在项目中使用它。
本指南说明了如何创建和配置JSON配置文件以创建自定义仪表板。
启动前端并在Web浏览器中打开(默认地址http:// localhost:3000/)
以下页面应打开:

转到JSON编辑部分。
在JSON编辑器中,您有多个选项:

您可以上传JSON配置文件或仪表板链接。
仪表板链接包括配置JSON作为链接参数。例如: http:// localhost:3000/dashboard/settings?component = [{“ id”:“ string topic”,“ state”:false,“ render_type”:“ string”:“ string”,“ position”:{“ x”:x“:0,”,“ y”:0}:0},size size':size':size': {“宽度”:200,“高度”:200},“ topic”:[{“ name”:“ topic1”,“ topic”:“/topic1”,“ type”,“ type”:“ string”,“ route”:“/subscriber/topic1”}]}]
要应用链接JSON,您可以单击“应用链接JSON”按钮。
或者,您可以使用“应用默认链接JSON”按钮选择预先保存的演示链接。
要配置JSON文件,您可以使用Web表单。
作为简介,让我们添加一个简单的组件:




在我们的情况下,字符串渲染类型带有预配置的主题。
接下来,我们必须配置组件的主题。主题为前端提供了对后端进行API调用所需的信息,并且它们各自具有4个属性:
主题的数量和顺序由我们使用的插件类型定义,因此请咨询插件文档以获取该信息。
如果要删除或添加主题,我们可以使用“添加主题”或“删除主题”按钮。
要使用配置,我们有多个选项:
使用“生成JSON”按钮,我们可以将JSON文件打印到开发工具控制台。
使用“下载JSON”按钮,我们可以下载JSON文件。
使用“使用JSON”按钮,我们可以使用配置的设置直接打开仪表板。
如果将来要访问相同的精确仪表板,也可以简单地复制链接部分中的链接。
要使用后端中的自定义配置文件,您必须将其设置为自定义启动文件中的属性。
示例启动文件可以看起来像这样:
import os
from launch import LaunchDescription
from launch_ros . actions import Node
from launch . actions import IncludeLaunchDescription
from launch . launch_description_sources import PythonLaunchDescriptionSource
from ament_index_python . packages import get_package_share_directory
def generate_launch_description ():
share_dir = get_package_share_directory ( 'ros2_webinterface' )
launch_dir = os . path . join ( share_dir , 'launch' )
webinterface = IncludeLaunchDescription (
PythonLaunchDescriptionSource (
os . path . join ( launch_dir , 'webinterface.launch.py' )
),
launch_arguments = {
"yaml_config" : "topic_list.yaml" , # Name of the YAML config
file
"json_config" : "topic_list.json" , # Name of the JSON config file
"config_folder" : 'default' , # Path to the folder
# or 'default' to use the
# standard config folder
}. items (),
)
ld = LaunchDescription ()
ld . add_action ( webinterface )
return ldYAML文件可以为空 - 它会在启动时自动用正确的配置覆盖。
插件允许您进一步自定义仪表板。
该应用程序目前配备3个不同的插件。

开放式街道地图插件指南
开放的街道地图中心使您可以在地图上跟踪机器人,并简单单击发送GPS Waypoint指令。
您还可以使用中心按钮以及删除和设置航路点以机器人为中心。

该插件允许您简单地显示传入的JSON数据。
请向我们发送您对插件的建议。
指南如何安装和配置插件:
插件指南
std_msgs.msg
sensor_msgs.msg
std_msgs.msg
将来更新的更多格式。