🏆 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
×
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/
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.
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.)
- 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.
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 |
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 instructionsurdf/: URDF files, mesh models, inertia/joint parametersros/: ROS packages (launch, control, examples)sdk/: Python control interface, example scripts, API docsdocs/: Calibration workflow, FAQ, development guideexamples/: Trajectory following, teaching record, grasping demo (optional)
- 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
momoenvironment; 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) and6000/UDP(camera stream, optional)
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 momoagentThen 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 ./sdkFor 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 ./sdkNotes:
- The conda packages above follow the local
momoenvironment: Python 3.12 pluspyqt=5,vtk,pybullet,pyyaml,requests, andpython-dotenvfromconda-forge requirements/advanced.txtincludes the base dependencies and adds the Qt GUI / 3D / speech stack- The base install covers robot control,
momo_robot_service, and the camera /face_locheadless flow - Nanobot is the default agent backend. Its model/API settings use
MOMO_AGENT_NANOBOT_*, falling back toAUTOGRASP_VLM_*from.envwhen present. Robot tools route throughmomo_robot_service, not curl or a second SDK session.
- Start slave server on the follower-side device:
cd Software/Slave
python3 main.py- 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- Built-in CLI commands include:
savepos,goto,record,play,home,quit
Notes:
- If camera target IP or device path is different, update
TARGET_PC_IPandCAM1_PATHinSoftware/Slave/main.py. - Calibration files are under
Software/Master/calibration/...andSoftware/Slave/calibration/.... - Add
--no-camon master side if you only need arm control.
conda activate momoagent
python Software/Master/main.pyThen configure IP/ports in the Settings page and click Connect. If you run into issues, feel free to open an issue.