This manual provides the engineering data and user guidance for working with the Hello Robot Stretch RE1 hardware.
The Hello Robot Stretch Robot is intended for use in the research of mobile manipulation applications by users experienced in the use and programming of research robots. This product is not intended for general use in the home by consumers, and lacks the required certifications for such use. Please see the section on Regulatory Compliance for further details.
The base is a two wheel differential drive with a passive Mecanum wheel for a caster. It includes four cliff sensors to allow detection of stairs, thresholds, etc.
Item | Notes | |
A | Drive wheels | 4 inch diameter, urethane rubber shore 60A |
B | Cliff sensors | Sharp GP2Y0A51SK0F, Analog, range 2-15 cm |
C | Mecanum wheel | Diameter 50mm |
The base has 6 M4 threaded inserts available for mounting user accessories such as a tray. The mounting pattern is shown below.
The inserts are recessed 1mm from the top of the base shell.
The base has a 9 DOF IMU using the 9 DOF FXOS8700 + FXAS21002 chipset. The IMU orientation is as shown below:
Development and charge ports are at the back of the base in the trunk. The trunk cover slides into place vertically and is non-latching.
The trunk height has been designed to accommodate one or more USB based Intel Neural Compute Sticks.
Two mounting holes are provided inside the trunk. These allow the user to strain relief tethered cables (eg, HDMI and keyboard) during development. It is recommended to strain relief such cables to prevent accidental damage during base motion.
Item | Notes | |
A | Vent | Intake vent for computer fan |
B | 6 Port USB Hub | USB 3.0 , powered 5V/3A |
C | Ethernet | Connected to computer NIC |
D | On/Off | Robot power on / off. Switch is illuminated when on. |
E | Charge | Rated for upplied 12V/7A charger |
F | HDMI | Connected to computer HDMI |
G | Mounting points | M4 threaded holes |
The head provides the audio interface to the robot, a pan tilt depth camera, a runstop, as well as a developer interface to allow the addition of additional user hardware.
Item | Notes | |
A | Pan tilt depth camera | Intel RealSense D435i Two Dynamixel XL430-W250-T servos |
B | Speakers | |
C | Mounting holes | 2x M4 threaded, spacing 25mm |
D | Developer Interface | USB2.0-A with 5V@500mA fused JST XHP-2, 12V@3A fused Pin 1: 12V Pin 2: GND |
E | Microphone array | With programmable 12 RGB LED ring |
F | Runstop | |
G | Audio volume control |
The head pan-tilt unit utilizes two Dynamixel XL430-W250-T servos. It incorporates a small fan in order to ensure proper cooling of the servo and camera during dynamic repeated motions of the tilt DOF.
The nominal ‘zero’ position is of the head is shown below, along with the corresponding range of motion.
DOF | Range (deg) | Min(deg) | Max (deg) |
Pan | 346 | -234 | 112 |
Tilt | 115 | -25 | 90 |
The runstop allows the user to pause the motion of the four primary DOF (base, lift, and arm) by tapping the illuminated button on the head. When the runstop is enabled, these DOF are in a ‘Safety Mode’ that inhibits the motion controller at the firmware level. Disabling the runstop allows normal operation to resume.
The lift degree of freedom provides vertical translation of the arm. It is driven by a closed loop stepper motor, providing smooth and precise motion through a low gear-ratio belt drive. The ‘shoulder’ includes two mounting holes and a small delivery tray.
Item | Notes | |
A | Delivery tray | |
B | Mounting holes | Threaded M4. Spacing 34.5 mm. |
C | Aruco Tag | Size 40x40 mm |
The arm comprises 5 telescoping carbon fiber links set on rollers. Its proprietary drive train is driven by a stepper motor with closed loop control and current sensing, allowing contact sensitivity during motion.
The arm exhibits a small amount of play (lash) in the X, Y, Z, and theta directions which is a normal characteristic of its design. Despite this it can achieve good repeatability, in part because its gravity loading is fairly constant.
The retracted arm and wrist combined are designed to fit within the footprint of the base. The arm is designed to have:
- Reach: 0.52m
The wrist includes:
- Yaw DOF to allow for stowing of the tool
- 2 Aruco tags for calibration and visual localization of the tool
- Expansion port with
- Arduino expansion header
- USB-A connector
- Tool plate with dual sided mounting
- Dynamixel X-Series TTL bus
The wrist yaw degree-of-freedom uses a Dynamixel XL430 servo. Additional Dynamixel servos can be daisy chained off of this servo, allowing for one more additional degree-of-freedoms to be easily integrated onto the robot (such as the provided Stretch Gripper).
Stretch comes with a XL430 compatible control cable preinstalled into this servo. If a different cable needs to be installed the servo cap can be removed as shown.
The tool plate allows for mounting on the top or the bottom using the M2 bolt pattern. The mounting pattern is compatible with Robotis Dynamixel frames as well:
The wrist yaw DOF is calibrated so that the index hole faces forward at the 'zero' position. From this pose the wrist has a ROM of +256/-76 degrees as shown.
The wrist includes a 3 axis ADXL343 accelerometer which provides bump and tap detection capabilities. The sensor is mounted inside the distal link of the arm as shown below.
The wrist includes a USB 2.0 A interface. This power to this USB port is fused to 500mA@5V.
The wrist includes an expansion header that provides access to pins of the wrist Arduino board. The header connector can be accessed by removing the cap at the end of the arm.
The header is wired to a Atmel SAMD21G18A-AUT (datasheet) microcontroller (same as Arduino Zero). The expansion header pins are configured at the factory to allow:
- General purpose digital I/O
- Analog input
In addition, the firmware can be configured for other pin functions, including:
- Serial SPI
- Serial I2C
- Serial UART
The Stretch Firmware Manual covers this modification.
**The header pins utilize 3V3 TTL logic. They do not have interface protection (eg, ESD, over-voltage, shorts). It is possible to damage your robot if pin specifications are exceeded **
The pin mapping is:
Pin | Name | Function | Factory Firmware |
1 | DGND | Digital ground | |
2 | 3V3 | 3.3V supply fused at 250mA. | |
3 | E12V | 12VDC fused at 500mA | |
4 | SS | DIO | SPI SS | Digital out (D3) |
5 | SCK | DIO | SPI SCK | Digital out (D2) |
6 | MISO | DIO | SPI MISO |UART TX | Digital in (D0) |
7 | MOSI | DIO | SPI MOSI | Digital in (D1) |
8 | SCL | DIO | I2C SCL | Not used |
9 | SS | DIO | I2C SDA | Not used |
10 | ANA0 | Analog input | UART RX | Analog in (A0) |
The expansion DIO uses a 10 pin JST header B10B-PHDSS(LF)(SN). It is compatible with a JST PHDR-10VS housing. JST provides pre-crimped wire compatible with this housing ( part APAPA22K305).
Pin 1 & 10 are indicated below.
The expansion DIO schematic shown below.
The Stretch Compliant Gripper utilizes a Dynamixel XL430-W250-T servo to drive the spring grasper mechanism. The kinematics of the grasper mechanism are complex and non-linear relative to the motor position. As shown, it includes mounting features on one side to allow for attachment of simple rigid tools such as hooks and pullers.
Item | Notes | |
A | Stud attachment | Threaded 6-32 |
B | Thread attahcment | Threaded M4 |
The attachment features are spaced at 9mm.
The weight of the Stretch Compliant Gripper is 240g.
Here we describe removing the Stretch Compliant gripper. Installation is simply these steps in reverse.
- Unplug the Dynamixel cable from the back of the gripper.
- Remove the 4 screws holding the gripper to the bracket.
- Remove the gripper from the mounting bracket
- Unscrew the 8 screws holding the mounting bracket to the bottom of the tool plate.
The robot has two deep-cycle sealed lead acid batteries which provide 12V/19AH of charge. The provided charger will keep the system at a near full-charge if it is left plugged during non-tethered use.
While deep-cycle batteries are robust to deep discharge states, it is recommended to avoid doing so if possible. The provide charger is able to recover form such a state if it occurs however.
We recommend leaving the charger plugged in whenever the robot base is stationary.
The battery charger LEDs provide an approximate indicator of battery charge. However, this is not especially accurate. A charged battery will typically report a voltage of 12-12.8V and will maintain that voltage across load conditions. Meanwhile, a partially charged battery may report anywhere from 10-12.8V but its voltage will drop rapidly when loaded.
The voltage and current draw can be checked by;
>>$ stretch_robot_battery_check.py
[Pass] Voltage with 12.9889035225
[Pass] Current with 2.46239192784
[Pass] CPU Temp with 56.0
The run time for a fully charged system is dependent on the load use case. The vast majority of battery power is consumed by the NUC computer. While the motors can momentarily draw surge currents, the robot is designed such that minimal power is expended to hold the body up against gravity (which keeps average motor current low).
The robot will continue to operate at battery voltages as low as 9.5V. A fully charged robot running a very high CPU load will take over 2 hours to discharge to 10V.
When the battery voltage drops below a YAML specified threshold the robot will produce an intermittent double beep sound. This is a reminder to the user to plug in the charger. This threshold is set at 10.5V at the factory but may be overridden.
The batteries are fused with a 20mm 8A / slow blow fuse. Nominal load currents for the robot are 3-5A for most use cases. The fuse provides protection against an internal short.
Should the fuse blow, the robot will fail to power up. Should the fuse need replacement contact [email protected].
A neoprene timing belt drives the arm up and down the lift. It may detension over long periods of time if it experiences sustained loading. In this case, slack will become visually apparent in the belt as the lift moves.
The belt is very straightforward to re-tension. Please contact [email protected] for tensioning instructions.
The robot surfaces can be wiped down with an alcohol wipe or a moist rag from time to time in order to remove and debris or oils that accumulate on the shells or mast.
The drive wheels can accumulate dust over time and begin to lose traction. They should be periodically wiped down as well.
When possible, the Trunk cover for the base should be kept on in order to keep dust and debris out of the Trunk connectors.
If the D435i camera requires cleaning use appropriate lens cleaning fluid and a microfiber cloth.
The robot comes pre-calibrated with a robot-specific URDF. This calibration allows the D435i depth sensor to accurately estimate where the robot wrist, and body, is in the depth image.
The robot may become slightly uncalibrated over time for a variety of reasons:
- Normal wear and tear and loosening of joints of the robot
- The head structure is accidentally load and the structure becomes very slightly bent
- The wrist and should structure become accidentally highly loaded and become slightly bent
The calibration accuracy can be checked using the provided ROS tools. If necessary, the user can recalibrate the robot. See the Stretch URDF Calibration Guide for more information.
Stretch was designed to be easily transported in the back of a car, up a stair case, or around a building.
For short trips, the robot can be simply rolled around by grabbing its mast. It may be picked up by its mast and carried up stairs as well.
For safety, please use two people to lift the robot.
For longer trips it is recommended to transport the robot in its original cardboard box with foam packaging. The metal protective cage that surrounds the head is only necessary if the robot might be shipped and the box will not remain upright.
It is useful to periodically run stretch_robot_system_check.py. This will check that the robot's hardware devices are present and within normal operating conditions.
>>$ stretch_robot_system_check.py
---- Checking Devices ----
[Pass] : hello-wacc
[Pass] : hello-motor-left-wheel
[Pass] : hello-motor-arm
[Pass] : hello-dynamixel-wrist
[Pass] : hello-motor-right-wheel
[Pass] : hello-motor-lift
[Pass] : hello-pimu
[Pass] : hello-respeaker
[Pass] : hello-lrf
[Pass] : hello-dynamixel-head
---- Checking Pimu ----
[Pass] Voltage = 12.8763639927
[Pass] Current = 3.25908634593
[Pass] Temperature = 36.3404559783
[Pass] Cliff-0 = -4.72064208984
[Pass] Cliff-1 = -8.56213378906
[Pass] Cliff-2 = 1.08505249023
[Pass] Cliff-3 = 5.68453979492
[Pass] IMU AZ = -9.80407142639
---- Checking EndOfArm ----
[Dynamixel ID:013] ping Succeeded. Dynamixel model number : 1060
[Pass] Ping of: wrist_yaw
[Pass] Calibrated: wrist_yaw
[Dynamixel ID:014] ping Succeeded. Dynamixel model number : 1060
[Pass] Ping of: stretch_gripper
[Pass] Calibrated: stretch_gripper
---- Checking Head ----
[Dynamixel ID:012] ping Succeeded. Dynamixel model number : 1060
[Pass] Ping of: head_tilt
[Dynamixel ID:011] ping Succeeded. Dynamixel model number : 1060
[Pass] Ping of: head_pan
---- Checking Wacc ----
[Pass] AX = 9.4840593338
---- Checking hello-motor-left-wheel ----
[Pass] Position = 43.9992256165
---- Checking hello-motor-right-wheel ----
[Pass] Position = 15.1164712906
---- Checking hello-motor-arm ----
[Pass] Position = 59.7719421387
[Pass] Position Calibrated = True
---- Checking hello-motor-lift ----
[Pass] Position = 83.7744064331
[Pass] Position Calibrated = True
---- Checking for Intel D435i ----
Bus 002 Device 016: ID 8086:0b3a Intel Corp.
[Pass] : Device found
.
The Stretch Research Edition 1 (Stretch RE1) is not certified for use as a consumer device in the U.S.
Unless stated otherwise, the Stretch RE1 is not subjected to compliance testing nor certified to meet any requirements, such as requirements for EMI, EMC, or ESD.
Per FCC 47 CFR, Part 15, Subpart B, section 15.103(c), we claim the Stretch Research Edition 1 as an exempted device, since it is a digital device used exclusively as industrial, commercial, or medical test equipment, where test equipment is equipment intended primarily for purposes of performing scientific investigations.
OET BULLETIN NO. 62, titled "UNDERSTANDING THE FCC REGULATIONS FOR COMPUTERS AND OTHER DIGITAL DEVICES" from December 1993 provides further clarification of the Section 15.103(c) exemption: “Test equipment includes devices used for maintenance, research, evaluation, simulation and other analytical or scientific applications in areas such as industrial plants, public utilities, hospitals, universities, laboratories, automotive service centers and electronic repair shops.”
.