Skip to content

Refactor Tiago setup with ROS2, teleop improvements, and cleanup#8

Open
dtotsila wants to merge 28 commits intomainfrom
tiago_bimanual
Open

Refactor Tiago setup with ROS2, teleop improvements, and cleanup#8
dtotsila wants to merge 28 commits intomainfrom
tiago_bimanual

Conversation

@dtotsila
Copy link

@dtotsila dtotsila commented Mar 2, 2026

Genearated with copilot:

This pull request introduces a robust, multi-stage Docker-based development and deployment workflow for the ROS 2 Vive Controller project, and significantly overhauls the documentation to provide clear, modern, and user-focused guidance. The changes enable streamlined setup of ROS 2, SteamVR, and all required dependencies in a reproducible container environment, while also clarifying usage patterns, hardware requirements, and the internal logic of the driver and teleop bridge nodes.

The most important changes are:

Dockerization & Environment Setup

  • Introduced a comprehensive, multi-stage Dockerfile (.ci/Dockerfile) that builds a base with Nvidia OpenGL, ROS 2 Humble, and SteamCMD, adds all Python and system dependencies (including SteamVR), and supports both development and deployment targets. It handles user creation, workspace setup, and includes a fix for resource marker issues during package build.
  • Added an entrypoint script (.ci/entrypoint.sh) to correctly source ROS 2 and workspace environments, set default environment variables, and ensure proper signal handling for ROS launch processes.

Documentation Overhaul

  • Rewrote README.md to provide a modern, user-oriented introduction, including clear hardware/software prerequisites, detailed Docker build/run instructions, and step-by-step usage for calibration and teleoperation. The new documentation also explains the architecture and logic of the driver and teleop bridge nodes, including button mappings, reference frames, and robot-specific launch configurations.

Driver & Teleop Node Explanation

  • Documented the safety features (virtual fence with haptic feedback), jitter reduction (OneEuro filter), and hardware serialization logic in the driver node, as well as the hybrid relative/absolute positioning and clutch mechanism in the teleop bridge node.

Robot Integration Examples

  • Provided explicit launch instructions and topic/frame remappings for integration with complex robots like TIAGo and Unitree G1, including event-driven publishing and custom hardware serial overrides.

These changes together enable a reproducible, hardware-agnostic development workflow and make it much easier for new users and developers to understand, set up, and extend the ROS 2 Vive Controller system.

TL;DR: Refactoring, ros2 only support, oob support for tiago and g1, extendable and hardware agnostic code.

@dtotsila dtotsila requested a review from jbmouret March 2, 2026 13:03
action_from_trackpad_instead_of_menu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants