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
將來更新的更多格式。