Hardware Overview
Robot Hardware Architecture
- Main CPU - This is the Intel NUC D54250WYK SBC, and is robot's main CPU which runs an Ubuntu 14.04 LTS Operating System. The HR-OS5 Framework is installed to the OS to communicate to the Subcontroller.
- Subcontroller - This is the Arbotix-Pro ARM subcontroller. The Subcontroller acts as the main interface of the Main CPU to the robot's servos, sensors, and communications.
- Dynamixels - These are the actuators which comprise the majority of the robot's internal structure and joints. They communicate on a 1-3mbps half-duplex TTL serial bus, connected to the Main CPU through the Subcontroller.
Power Connections
- The main power switch is located between the legs, on the underside of the torso. Flip the switch towards the front of the robot to enable main power, flip the switch towards the rear of the robot to disable main power. Do not attempt to disable power while robot is actively walking, rather pull the power plug from the back of the robot in case of emergency or uprising.
- This main power switch harness handles switching the main power on/off. The output goes to the robot's Subcontroller, which in turn supplies power to the Intel NUC SBC. The input of this connection is the Black/Red power cable terminated in a Male Deans T-Connector plug coming out of the back of the robot's torso.
- Tethered power can be supplied to the robot via the included 12v 10amp power supply + Barrel Jack to Female Deans T-Connector adapter. Powering the robot via 12v 10amp Power Supply should be reserved for basic testing, programming, and motion page creation only. While the robot can technically walk using this power supply, the servos are too powerful to operate at full torque while on tethered power and can cause instability. To test walking gaits and remote control demos, please power the robot using the integrated LiPo batteries.
LiPo battery power
- LiPo Battery Guide
- Battery power can be supplied to the robot for untethered use via the integrated pair of 2S 7.4v 4000mAh LiPo batteries. These two batteries are connected in series using the supplied Y-Splitter Series LiPo Cable. The Y-Splitter has two Male T-Connector plugs and one Female T-Connector plug. The Male plugs are connected to each respective battery pack, and the Female plug is connected to the main power input. (Picture)
- Always use a LiPo Battery Monitor when operating the robot on untethered battery power. If the batteries are drained too low, the robot will become unstable and the batteries can be damaged.
- Please use caution charging or using LiPo Batteries. These batteries can cause fires if improperly used, charged, or discharged. We recommend removing the batteries prior to charging the robot, and to never leave the batteries unattended while charging.
- If the LiPo Battery Monitor signals alarm indicating low voltage: immediately cease operation of the robot, move into a sitting position, and initiate a complete shut down before turning off main power switch.
Intel NUC SBC
- The Intel NUC power button is located on the front-right corner of the board. By default, this must be pressed briefly to initiate a boot-up of the NUC. It can be reached through the right-side venting holes of the torso shelling using the included hex driver.
- The robot can be configured to automatically power on the NUC when the main power is applied by going into the BIOS (F2 key at POST) of the NUC and configuring:
'Advanced Options > Power > After Power Failure: Power On'
Subcontroller
- Arbotix Pro
- Arbotix Pro Github Repo
- The Subcontroller handles power management & Communication with the Dynamixels, I/O breakouts, serial communications, and contains the robot's IMU (Intertial Measurement Unit) for balance.
- Commands are sent to it using the Dynamixel protocol, interfacing to the main computer via a serial USB connection `/dev/ttyUSB0`
- The Subcontroller interfaces with the HR-OS5 Framework using the CM730 Library within the Framework folder, and the LinuxCM730 Library to handle OS-specific functions.
Additional Info:
- CM730 & PlatformCM730 Darwin-OP Code Reference
- LinuxCM730 Code Reference
- CM-730 Hardware Specifications & Register Table
Dynamixel Robot Servos
Robotis Dynamixels are the top-tier actuator choice in the industry for researchers and universities Dynamixel actuators have been used by every major university, research lab, military & government research lab, and robotic competition worldwide. Each Smart Actuator has an onboard microprocessor to facilitate bus communication, positional feedback, temperature & load monitoring. The casing of each servo is built specifically with robotics in mind, providing easy to use mounting rails and a comprehensive bracket system available for building robotic limbs. TTL and RS-485 serial communication allows for daisy-chainable bus connections at up to 1-3mbps. In addition, the Dynamixel’s onboard MCU has a set of user customizable features, allowing users to tune the servos in specifically for their application.
- Dedicated onboard MCU
- Adjustable torque, speed, and response
- Position, load, voltage, temperature feedback
- Daisy-chainable Serial Communication
- Wide range of sizes, strengths, and communication options
- Modular mounting design with comprehensive brackets and frames
- 3D models, dimensional drawings, full documentation available
The HR-OS5 Humanoid Robot uses the following Dynamixel Servos:
More information on Dynamixel communication protocols and specifications can be found on the links above, or directly from the Robotis e-Manual website].
HR-OS5 Dynamixel ID Assignments
Name | ID | CW Angle Lim | CCW Angle Lim |
---|---|---|---|
ID_R_SHOULDER_PITCH | 1 | TBD | TBD |
ID_L_SHOULDER_PITCH | 2 | TBD | TBD |
ID_R_SHOULDER_ROLL | 3 | 0 | 3672 |
ID_L_SHOULDER_ROLL | 4 | 409 | 3200 |
ID_R_ELBOW | 5 | 896 | 3712 |
ID_L_ELBOW | 6 | 384 | 3200 |
ID_R_HIP_YAW | 7 | 1800 | 2800 |
ID_L_HIP_YAW | 8 | 1296 | 2296 |
ID_R_HIP_ROLL | 9 | 1024 | 2105 |
ID_L_HIP_ROLL | 10 | 1992 | 3072 |
ID_R_HIP_PITCH | 11 | 1024 | 2432 |
ID_L_HIP_PITCH | 12 | 1664 | 3072 |
ID_R_KNEE | 13 | 1800 | 3500 |
ID_L_KNEE | 14 | 550 | 2275 |
ID_R_ANKLE_PITCH | 15 | 1843 | 3072 |
ID_L_ANKLE_PITCH | 16 | 1024 | 2275 |
ID_R_ANKLE_ROLL | 17 | 1024 | 3072 |
ID_L_ANKLE_ROLL | 18 | 1024 | 3072 |
ID_HEAD_PAN | 19 | 1024 | 3072 |
ID_HEAD_TILT | 20 | 1800 | 2450 |
Custom joints: | |||
ID_R_HAND | 21 | 1640 | 2800 |
ID_L_HAND | 22 | 1280 | 2432 |
ID_R_ARM_YAW | 23 | TBD | TBD |
ID_L_ARM_YAW | 24 | TBD | TBD |