ros2-viser

基于 Viser 的 ROS 2 三维可视化库。从 fa-py-libraries 启动,不是独立产品入口,也不是从 lerobot_ros2 启动。

仓库: fiveages-sim/ros2-viser

README: README.md

用途

  • 从 /robot_description 订阅机器人 URDF

  • 在 Viser 三维视图中显示关节状态

  • 可选的 FSM 与夹爪面板

  • 所有 ROS 2 输入输出都走 ros2_robot_interface(可视化器会创建内部 ROS2RobotInterface)

主启动方式(fa-py-libraries)

这是受支持的操作路径:

git clone https://github.com/fiveages-sim/fa-py-libraries.git
cd fa-py-libraries
./init.sh all          # Python 3.12 env; installs ros2-viser among other submodules
./run.sh viser

./run.sh 不带参数会打开菜单;第 1 项是 ros2-viser launch。见 fa-py-libraries。

lerobot_ros2 / robot_action_composer 可能列出 PyPI extra viser>=0.2 用于抓取生成 UI。那是库依赖,不是 ros2-viser 启动器。

库安装(开发该软件包时)

在 ros2_viser 源码树里开发时(来自 README):

cd ros2_viser
pip install -e .

需要 ros2-robot-interface。不要把随便一个虚拟环境里的 pip install ros2-viser 当成技术栈主入口。

嵌入(README API)

下列类名与软件包 README 一致(ROS2ViserVisualizer / ROS2ViserConfig)。本仓库没有 ViserVisualizer 类。

from ros2_viser import ROS2ViserVisualizer, ROS2ViserConfig
import time

config = ROS2ViserConfig(
    robot_description_topic="/robot_description",
    joint_states_topic="/joint_states",
    root_node_name="/robot",
    update_rate=30.0,
)
visualizer = ROS2ViserVisualizer(config)
visualizer.start()
try:
    while True:
        time.sleep(1)
except KeyboardInterrupt:
    visualizer.stop()

README 中的配置字段:robot_description_topic、joint_states_topic、root_node_name、update_rate、auto_connect、enable_fsm_panel、enable_gripper_panel。

需要正在发布 /robot_description 与 /joint_states。关节名必须与 URDF 一致。