MCPcopy Index your code
hub / github.com/TeleHuman/TextOp

github.com/TeleHuman/TextOp @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,373 symbols 3,935 edges 182 files 386 documented · 28%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

TextOp: Real-time Interactive Text-Driven Humanoid Robot Motion Generation and Control

Cover

[website] | [demo]

News

  • [2026-02] Release the official version of TextOp. Note: The latest code and dataset are not yet updated.
  • [2026-01] Updated TextOpDeploy modules to fix several bugs and add support for keyboard-based joystick in unitree_mujoco. You can now run sim2sim experiments in TextOpDeploy more smoothly.
  • [2025-11] We release the preview version of TextOp, including code, pretrained models and demo.

About

We propose TextOp, a novel framework for real-time, interactive, text-driven humanoid robot motion generation and control. It allows users to instruct the robot using natural language and modify commands on the fly, producing smooth, whole-body motions instantly.

Our system utilizes a two-layer architecture for execution. At the high level, a robot motion diffusion autoregressive model processes current user text commands to generate the kinematic motion trajectory. The low level employs a universal motion tracking policy for motor control. In this way, TextOp achieves both instant responsiveness and precise robot control.

TextOp is highly versatile and supports a wide range of behaviours, from simple gestures to complex motion sequences, all without pre-recorded scripts or manual programming. This approach provides a significantly more intuitive human-robot interaction paradigm, unlocking the potential for highly adaptable and easily controllable robots in real-world applications.

Key features: - End-to-end open-source pipeline covering dataset construction, model training, and real-robot deployment. - High-fidelity motion tracking: our universal Tracker policy achieves nearly 100% success per sequence on cleaned training data. - Clean and modular codebase, designed for readability, maintainability, and easy extension.

Repository Structure

TextOp/
│
├── TextOpRobotMDAR/        # High-level text-to-motion model
├── TextOpTracker/          # Low-level whole-body universal motion tracking policy
├── TextOpDeploy/           # Sim2sim and Sim2real deployment
├── dataset/                # Scripts for dataset processing
├── deps/                   # Third-party packages
└── docs/

We also provide the retargeted public datasets used in our experiments, as well as pretrained models for both RobotMDAR and Tracker policy. These resources enable you to reproduce our results out of the box.

Our models are trained on a mixture of public datasets and a small private dataset. However, comparable performance should be achievable using only the public data.

Usage

See USAGE.md for details.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

TextOpTracker is built upon Beyondmimic. TextOpRobotMDAR is based on a reconstruction of DART and is adapted for robot configurations.

We use publicly available human motion datasets, including AMASS with BABEL-TEACH annotations and LAFAN1, and employ GMR for retargeting.

Contact

Feel free to open an issue or discussion if you encounter any problems or have questions about this project.

For collaborations, feedback, or further inquiries, please reach out to:

  • Weiji Xie: xieweiji249@sjtu.edu.cn or Weixin shisoul
  • Jiakun Zheng: zjk9098@gmail.com
  • Chenjia Bai: baicj@chinatelecom.cn
  • You can also join our weixin discussion group for timely Q&A. Since the group already exceeds 200 members, you'll need to first add one of the authors on Weixin to receive an invitation to join.

We welcome contributions and are happy to support the community in building upon this work!

Core symbols most depended-on inside this repo

to
called by 109
TextOpRobotMDAR/robotmdar/model/operator/position_encoding.py
mean
called by 57
deps/rsl_rl-modular-normed/rsl_rl/modules/normalizer.py
strcpy_arr
called by 51
TextOpDeploy/src/unitree_mujoco/simulate/src/mujoco/array_safety.h
load
called by 40
deps/rsl_rl-modular-normed/rsl_rl/runners/on_policy_runner.py
parameters
called by 36
TextOpRobotMDAR/robotmdar/diffusion/respace.py
_extract_into_tensor
called by 32
TextOpRobotMDAR/robotmdar/diffusion/gaussian_diffusion.py
update
called by 27
TextOpDeploy/src/textop_ctrl/include/common/gamepad.hpp
log
called by 27
TextOpRobotMDAR/robotmdar/diffusion/logger.py

Shape

Method 731
Function 456
Class 186

Languages

Python81%
C++19%

Modules by API surface

TextOpRobotMDAR/robotmdar/diffusion/logger.py59 symbols
TextOpDeploy/src/unitree_mujoco/simulate/src/mujoco/simulate.cc50 symbols
TextOpRobotMDAR/robotmdar/dtype/rotation.py48 symbols
TextOpTracker/source/textop_tracker/textop_tracker/tasks/tracking/mdp/commands_multi.py47 symbols
deps/isaac_utils/isaac_utils/rotations.py45 symbols
TextOpRobotMDAR/robotmdar/diffusion/gaussian_diffusion.py42 symbols
TextOpRobotMDAR/robotmdar/train/manager.py40 symbols
TextOpTracker/source/textop_tracker/textop_tracker/tasks/tracking/mdp/commands.py36 symbols
TextOpRobotMDAR/robotmdar/dtype/motion.py35 symbols
TextOpRobotMDAR/robotmdar/model/operator/cross_attention.py34 symbols
TextOpRobotMDAR/robotmdar/train/train_platforms.py25 symbols
TextOpRobotMDAR/robotmdar/dataloader/data.py25 symbols

For agents

$ claude mcp add TextOp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact