Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Clone this wiki locally
Robot Hardware Architecture
- [Main CPU] - This is Intel Edison or Raspberry Pi 2, depending upon your robot's configuration. The HR-OS1 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.
- The main power switch is located between the legs, on the underside rear of the torso. 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 Main CPU. 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 3S 2100mAh Lipo Battery. (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.
- 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
- The Subcontroller interfaces with the HR-OS1 Framework using the CM730 Library within the Framework folder, and the LinuxCM730 Library to handle OS-specific functions.
- 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-OS1 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-OS1 Dynamixel ID Assignments
- ID_R_SHOULDER_PITCH = 1
- ID_L_SHOULDER_PITCH = 2
- ID_R_SHOULDER_ROLL = 3
- ID_L_SHOULDER_ROLL = 4
- ID_R_ELBOW = 5
- ID_L_ELBOW = 6
- ID_R_HIP_YAW = 7
- ID_L_HIP_YAW = 8
- ID_R_HIP_ROLL = 9
- ID_L_HIP_ROLL = 10
- ID_R_HIP_PITCH = 11
- ID_L_HIP_PITCH = 12
- ID_R_KNEE = 13
- ID_L_KNEE = 14
- ID_R_ANKLE_PITCH = 15
- ID_L_ANKLE_PITCH = 16
- ID_R_ANKLE_ROLL = 17
- ID_L_ANKLE_ROLL = 18
- ID_HEAD_PAN = 19
- ID_HEAD_TILT = 20