Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

153 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MomoAgent 🤖

🏆 Winner of the 2nd Prize at the Tsinghua Hackathon! (View Certificate)

An enhanced robotic arm based on SOARM101: higher payload, larger workspace, and the same control workflow and precision experience

MoceAI × Feetech
Jointly Developed by MoceAI & Feetech

Open-source plan: March 2026 (code and hardware materials will be released on the open-source date)

Homepage: https://arm.moce.ai/

English | 中文

MomoAgent Model Overview


1. Project Overview

MomoAgent is our enhanced version built on top of SOARM101. While keeping the same 5-DOF architecture and Python + ROS control workflow, we reinforce key joints with metal reduction modules to significantly improve payload capacity and structural stiffness, while also expanding workspace coverage.

Development Motivation

We initially set out to create an affordable, portable robotic arm for our "mystery robot" project but found no existing products on the market that met our requirements. Therefore, MoceAI, with support from servo supplier Feetech, collaborated to develop and release this open-source robotic arm.

This project is designed for:

  • Makers and open-source hardware developers (rapid secondary development and feature extensions)
  • Education and lab teaching (ROS/kinematics/control/vision course support)
  • Lightweight applications and prototyping (pick-and-place, interaction demos, etc.)

2. Appearance and Structure (Image Slots)

2.1 Model Overview

Model Overview

2.2 SOARM101 vs MomoAgent Comparison

SOARM101 vs MomoAgent Comparison

2.3 Core Module Close-up (Metal Reduction Module on Key Joint)

Key Module Close-up


3. Key Upgrades (Compared to SOARM101)

  • Major payload boost: Reinforced key joints with metal reduction modules, resulting in a significant payload increase (validated by experiments).
  • Larger workspace: Based on public URDF simulation evaluation, workspace area increases by nearly 30%.
  • Higher stiffness and stability: Reinforced structure provides stronger torsion and deformation resistance, improving overall system stability.
  • Same precision and control habits: Repeatability remains 1 mm, and control stays Python + ROS, keeping the learning cost low.
  • More complete ecosystem: Compatible with the upstream LeRobot ecosystem and extended with Moce-specific ecosystem support.

4. Core Metrics Comparison (SOARM101 vs MomoAgent)

The following data is summarized from project comparison materials: payload values come from experiments, workspace-related values come from URDF simulation results.

Metric SOARM101 MomoAgent Change
Rated max payload (kg) 0.3 1.5 5x increase
Limit payload (kg) 2.0 Higher payload headroom
Repeatability (mm) 1.0 1.0 Unchanged
Max horizontal reach Rmax (mm) 380.6 433.1 +13.8%
Max 3D reach Dmax (mm) 447.2 516.2 +15.4%
Max Z height (mm) 428.7 502.9 +17.3%
XY workspace area (m²) 0.3255 0.4226 +29.8%
Structural material Standard 3D-printed structure Reinforced 3D print + metal reduction modules Higher stiffness
Key joint design Conventional drive structure Dual-joint metal reduction reinforced design Torque amplification
Degrees of freedom (DOF) 5 5 Same architecture
End-effector support Generic end-effector interface Modular custom end-effector interface Better extensibility
Control method Python + ROS Python + ROS Same
Ecosystem support LeRobot LeRobot compatible + Moce ecosystem More complete
Modular maintenance Standard structure maintenance Upgradable/replaceable key joints Better maintainability

5. Repository Contents (To Be Completed After Total Open Source)

Note: This repository will be completed on the open-source date in March 2026.

Expected contents:

  • hardware/: BOM, structural part list, machining/printing recommendations, assembly instructions
  • urdf/: URDF files, mesh models, inertia/joint parameters
  • ros/: ROS packages (launch, control, examples)
  • sdk/: Python control interface, example scripts, API docs
  • docs/: Calibration workflow, FAQ, development guide
  • examples/: Trajectory following, teaching record, grasping demo (optional)

6. Quick Start

6.1 Environment

  • Ubuntu 20.04/22.04 is recommended (master/slave serial + camera workflow is mainly Linux-oriented)
  • Conda / Miniforge / Miniconda is recommended for the Python environment
  • Python 3.12 is recommended (matches the tested local momo environment; SDK minimum: Python 3.8)
  • Real-arm mode needs one Leader + one Follower arm and valid serial ports (for example /dev/ttyACM0)
  • Network ports: 6666/TCP (control) and 6000/UDP (camera stream, optional)

6.2 Install Dependencies

From repo root, create a conda environment that mirrors the tested local momo environment:

conda create -n momoagent -c conda-forge python=3.12 pip pyqt=5 pyyaml requests python-dotenv pybullet vtk -y
conda activate momoagent

Then install the project Python packages with one command:

python -m pip install -U pip && python -m pip install -r requirements/advanced.txt -r requirements/nanobot-bridge.txt -e ./sdk

For a lighter headless install without the Qt GUI / 3D stack:

python -m pip install -U pip && python -m pip install -r requirements/base.txt -r requirements/nanobot-bridge.txt -e ./sdk

Notes:

  • The conda packages above follow the local momo environment: Python 3.12 plus pyqt=5, vtk, pybullet, pyyaml, requests, and python-dotenv from conda-forge
  • requirements/advanced.txt includes the base dependencies and adds the Qt GUI / 3D / speech stack
  • The base install covers robot control, momo_robot_service, and the camera / face_loc headless flow
  • Nanobot is the default agent backend. Its model/API settings use MOMO_AGENT_NANOBOT_*, falling back to AUTOGRASP_VLM_* from .env when present. Robot tools route through momo_robot_service, not curl or a second SDK session.

6.3 Start Leader-Follower Control (Real Hardware)

  1. Start slave server on the follower-side device:
cd Software/Slave
python3 main.py
  1. Start master client on your PC:
cd Software/Master
python3 main.py --ip <slave_ip> --port 6666 --leader-port /dev/ttyACM0 --leader-id black_arm_leader
  1. Built-in CLI commands include: savepos, goto, record, play, home, quit

Notes:

  • If camera target IP or device path is different, update TARGET_PC_IP and CAM1_PATH in Software/Slave/main.py.
  • Calibration files are under Software/Master/calibration/... and Software/Slave/calibration/....
  • Add --no-cam on master side if you only need arm control.

6.4 Start GUI (Optional)

conda activate momoagent
python Software/Master/main.py

Then configure IP/ports in the Settings page and click Connect. If you run into issues, feel free to open an issue.

About

No description, website, or topics provided.

Resources

Stars

41 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages