Scope: common patterns used in modern humanoid / legged robots to enable perception (navigation), whole-body motion (balance + manipulation), and communication. This is a practical, vendor-neutral summary.
Humanoids combine several workloads that have conflicting requirements:
A single computer can run all of this for small robots, but as DoF counts rise, designers typically split the system into layers so that real-time control cannot be disrupted by perception/planning load spikes or OS scheduling noise.
A common arrangement is:
+--------------------------------+
| High-level compute ("Robot PC")|
| - ROS 2 graph (nodes) |
Sensors --> drivers->| - perception, SLAM, planning |--> Wi-Fi/5G/Ethernet -> operator/cloud
(cams/lidar/imu) | - behavior, autonomy, logging |
+-----------------+--------------+
|
| deterministic control link
| (often 1GbE physical layer)
v
+--------------------------------+
| Real-time motion controller |
| - runs 0.5-5 kHz control cycle |
| - publishes joint commands |
| - reads encoders/torque/IMU |
| - may be part of Robot PC, or |
| a separate CPU/SoC |
+-----------------+--------------+
|
| Fieldbus: EtherCAT (common)
| or CAN/CAN-FD (common in smaller systems)
v
+------------------+ +------------------+ +------------------+
| Joint module #1 | | Joint module #2 | | Joint module #N |
| - drive+MCU | | - drive+MCU | | - drive+MCU |
| - local loops | | - local loops | | - local loops |
+------------------+ +------------------+ +------------------+
+--------------------------------------------+
| Independent safety chain (recommended) |
| - E-stop, STO (Safe Torque Off), contactors |
| - safety MCU / safety PLC / safety IO |
+--------------------------------------------+
Role: world perception and state estimation, mapping/localization, whole-body planning, task logic, UI/teleop, logging, and system orchestration.
Typical hardware:
Typical software:
Role: run the “servo cycle” that must be deterministic (read joint sensors, compute commands, write commands) and synchronize many axes.
Role: close the fastest loops near actuators (current/torque/velocity), manage encoders, local sensing, thermal protection, and sometimes impedance control.
Safety is typically designed to remain functional even if the main computer crashes. Common elements:
| Network / bus | Where used | Why | Notes |
|---|---|---|---|
| EtherCAT | Robot controller -> drives/joints/IO | Deterministic cyclic data, tight multi-axis sync | Very common in high-DOF systems; supports distributed clocks and large process data. |
| CAN / CANopen / CAN-FD | Smaller actuator networks, peripherals, internal modules | Robust, simpler wiring, good ecosystem | CAN-FD increases payload and bandwidth; still not Ethernet-level throughput. |
| Ethernet (TCP/UDP) | Sensors (LiDAR/cameras), compute-to-compute | High bandwidth, standard protocols | Often separate NIC/VLAN from the motion fieldbus. |
| USB / MIPI CSI | Cameras, IMUs, depth sensors | Convenience, bandwidth | USB can be jittery; for critical sensing, designers prefer time-stamped pipelines. |
| Pattern | When it fits | Compute layout | Pros | Cons |
|---|---|---|---|---|
| A - Single box (monolithic) | Small humanoids, prototypes | 1 SBC/PC runs perception + control; simple CAN/CAN-FD | Lower BOM, simpler integration | Harder to guarantee control timing under load; failures are more catastrophic |
| B - Two-tier (typical) | Most full-size humanoids | Robot PC (perception/planning) + RT motion controller (may be same machine with RT partitioning) + joint drives | Good determinism, scalable DoF, clear interfaces | More integration effort; fieldbus engineering required |
| C - Three-tier + safety controller | Production systems, higher safety targets | Perception PC + dedicated RT controller + independent safety controller + smart joints | Best fault containment; safety can remain active if main compute fails | Higher BOM; more verification/validation work |
| Subsystem | DoF | Qty (actuators) | Notes |
|---|---|---|---|
| Neck | 2 | 2 | Yaw + pitch |
| Shoulders | 3 each | 6 | Roll + pitch + yaw |
| Elbows | 2 each | 4 | Flex + forearm roll (or equivalent) |
| Wrists | 3 each | 6 | Typically needs higher torque than “toy” servos |
| Hands | 4 each | 8 | Prototype-friendly path is underactuated / tendon driven |
| Waist | 3 | 3 | Yaw + roll + pitch |
| Hips | 3 each | 6 | High torque density required |
| Knees | 2 each | 4 | High torque density required |
| Ankles | 3 each | 6 | High torque density required |
| Total | 45 | 45 |
| Qty | Part | Role | Availability / pricing sources |
|---|---|---|---|
| 1 | NVIDIA Jetson (Orin NX or Orin Nano class) | Primary perception + inference + ROS 2 | NVIDIA - buy Jetson |
| 1 | AMD Ryzen-based x86 mini PC / SBC (optional but common) | Real-time motion control partition, logging, “robot PC” duties if you want to keep Jetson focused on vision/AI | Common sources: industrial PC vendors, Intel NUC-class devices, fanless mini PCs |
| 1 | NVMe SSD (>= 512 GB recommended) | Dataset + bag logs | Any major electronics retailer |
| varies (e.g., 4) | Raspberry Pi subcontrollers / SoCs (Pi 5 / Compute Module class) | Limb/segment controllers: bridge Ethernet to local CAN/CAN-FD, handle sensors, and provide local watchdog behavior | Raspberry Pi channels; major electronics distributors |
| varies (e.g., 2-6) | Arduino-class microcontrollers (AVR/SAMD/ESP32 boards) | Low-level I/O: simple sensors, indicators, safety interlocks, bring-up/test tooling | Major electronics distributors |
| Qty | Part | Interface | Availability / pricing sources |
|---|---|---|---|
| 1 | Intel RealSense D455 (stereo depth) | USB 3 | Intel RealSense store |
| 1 (alt) | Stereolabs ZED 2i (stereo depth) | USB 3 | Stereolabs store |
| Qty | Part | Interface | Availability / pricing sources |
|---|---|---|---|
| 5 | BNO085 / BNO086 IMU breakout (9-axis, onboard fusion) | I2C / UART (board-dependent) | Adafruit BNO085 breakout (product 4754), Adafruit BNO085 guide |
| Qty | Part | Notes | Availability / pricing sources |
|---|---|---|---|
| 15 | FSR (Force Sensitive Resistor) - Interlink FSR 402 class | Simple, light, easy to mount; requires calibration and has drift/hysteresis | Interlink Electronics |
| 4 | ADS1115 16-bit ADC breakout (4 channels each) | 16 analog channels total for 15 sensors (spare 1 channel) | Adafruit ADS1115 breakout (product 1085) |
| Qty | Part | Role | Availability / pricing sources |
|---|---|---|---|
| 1 | 8-port Gigabit Ethernet switch (unmanaged) | Hub-and-spoke for compute + limb nodes + sensors | Example class: TP-Link TL-SG108 (consumer) or industrial rugged switches if you need vibration rated hardware |
| 1 (alt) | Industrial M12 Ethernet switch (if you want rugged connectors) | Rugged internal Ethernet backbone | Example vendors: Phoenix Contact, Antaira, Linovision, Leonton (check current stock/pricing) |
| 1 | CAT6 bulk cable + RJ45 ends + strain relief | Data cabling | Any networking supplier |
A practical way to preserve hub-and-spoke Ethernet while keeping motor wiring sane is to place a small controller in each limb/segment, and run local CAN/CAN-FD from that controller to a chain of smart actuators.
| Qty | Part | Role | Availability / pricing sources |
|---|---|---|---|
| 5 | Ethernet-capable MCU dev board (STM32H7 class) | Limb/segment controller: aggregates sensors, bridges Ethernet to local buses | ST Nucleo / compatible dev boards; major distributors |
| 10 | CAN-FD transceiver (MCP2562FD class) | 2 CAN-FD ports per limb node (example) | Microchip MCP2562FD, DigiKey, Mouser |
| Qty | Part | Role | Availability / pricing sources |
|---|---|---|---|
| 1-2 | USB-to-CAN-FD adapter (for commissioning / bench testing) | Connect the main computer (or laptop) to CAN/CAN-FD actuator networks | PEAK PCAN-USB FD (example) |
| 1 | USB adapter for DYNAMIXEL (TTL/RS-485) | Configure and control DYNAMIXEL chains (hands, small joints) | ROBOTIS U2D2 (example) |
Prototype-friendly option - integrated actuator modules (recommended for early prototypes): these combine motor + gearbox + encoder + drive/controller, typically with CAN/UART.
| Qty | Part | Where used | Availability / pricing sources |
|---|---|---|---|
| 19 | High-torque integrated actuators (e.g., CubeMars AK80-9 class) | Waist (3) + hips (6) + knees (4) + ankles (6) = 19 | CubeMars AK80-9 V3.0 KV100 (example) |
| 18 | Mid-torque integrated actuators (e.g., CubeMars AK60-6 class) | Neck (2) + shoulders (6) + elbows (4) + wrists (6) = 18 | CubeMars AK60-6 V3.0 KV80 (example) |
| 8 | Lightweight smart servos for hands (e.g., Robotis DYNAMIXEL XL330 class) | Hands (8) | ROBOTIS XL330 (example) |
Alternative - separate servo drives + motors: higher engineering effort but potentially better mass optimization if you move to frameless motors and custom geartrains later.
| Qty | Part | Role | Availability / pricing sources |
|---|---|---|---|
| varies | EtherCAT servo drives (e.g., Ingenia Capitan NET / similar) | Single-axis motor control over EtherCAT | Ingenia EtherCAT drives |
| varies | EtherCAT motor network fanout (junctions) | EtherCAT “star” branching without normal Ethernet switches | Beckhoff EK1122 (example) |
| Qty | Part | Role | Availability / pricing sources |
|---|---|---|---|
| 20 | Rechargeable lithium cells (your chosen 6550-class cells) | Energy storage; configure as NsNp to match your required bus voltage and capacity (confirm chemistry and max charge voltage). Example: 20S1P is ~74 V nominal (~84 V full) or 10S2P is ~37 V nominal (~42 V full). | Major battery suppliers; ensure authentic cells |
| 1 | BMS matched to your series count (e.g., 20S BMS) | Cell balancing + protections (OV/UV/OCP) | DALY BMS |
| 1 | Main contactor + precharge + fuse + E-stop | Safe power switching and fault isolation | Automation/electrical suppliers |
| 1 | DC-DC converter(s) from battery bus to logic rails (24 V / 12 V / 5 V) | Stable rails for compute and sensors | Example: Mean Well DDR-120 series (datasheet: DDR-120-SPEC.PDF) |
| Qty | Part | Notes |
|---|---|---|
| 1 | Emergency stop button (latching) + wiring | Put on accessible exterior |
| 1 | Kill switch / key switch | Optional but recommended |
| varies | Inline fuses / fuse block | One per power branch (compute, limbs, etc.) |
| varies | Connectors (power: XT30/XT60, signal: JST, MicroFit, etc.) | Standardize early to reduce mistakes |
| varies | Shielded twisted pair for CAN/CAN-FD, plus termination resistors | Even if you use Ethernet for backbone, local buses need proper wiring |
| varies | Thermal monitoring (NTCs) and cooling (fans/heatsinks) | Actuators and DC-DC stages get hot fast |
Order-of-magnitude estimates for early feasibility checks. Use this to sanity-check whether your battery and thermal design are even in the right ballpark.
Target total mass budget: 50 lb (22.7 kg).
| Actuator class | Qty | Rated power (W) - per unit | Rated power (W) - total | Weight (g) - per unit | Weight (g) - total | Notes |
|---|---|---|---|---|---|---|
| CubeMars AK80-9 V3.0 KV100 | 19 | 368 | 6992 | 490 g (1.08 lb) | 9310 g (20.5 lb) | Used for waist + legs in this draft joint list |
| CubeMars AK60-6 V3.0 KV80 | 18 g (0.63 oz) | 74 | 1332 | 380 g (0.84 lb) | 6840 g (15.1 lb) | Used for neck + arms in this draft joint list |
| Robotis DYNAMIXEL XL330 class (hand servos) | 8 | (depends on duty cycle/load) | (depends on duty cycle/load) | 18 g (0.63 oz) | 144 g (5.1 oz) | Small servos; check real duty cycle and 5-8 V rail sizing |
| Actuators - subtotal | 45 | 8324 | 16294 g (35.9 lb) | 16.29 kg (35.9 lb) (just actuators) |
Reality check: you will not run at “sum of rated power” continuously, but this highlights how quickly actuator peak demand can outrun a small battery pack and small DC bus wiring.
| Compute item | Qty | Typical power (W) | Typical mass | Notes |
|---|---|---|---|---|
| Jetson Orin (NX/Nano class) with carrier + heatsink/fan | 1 | 15-30 W | 0.3-0.8 kg (0.7-1.8 lb) | Vision/inference + ROS 2 |
| x86 mini PC (optional) | 1 | 20-60 W | 0.5-1.5 kg (1.1-3.3 lb) | Logging + "robot PC" + non-RT workloads (or RT partition) |
| NVMe SSD | 1 | 2-8 W | ~10 g (~0.35 oz) | High write bursts during logging |
File generated for: /home/marc/documents/Robot-Project/