As of March 1st, 2017, Seed Robotics has moved all its products to the new EROS architecture.

The RH7D has always shipped with EROS firmware and hardware and, as of this date, all RH4D units have began shipping with this new architecture.

EROS Goals and Motivation

With the growth of Seed Robotics portfolio and the construction of our roadmap, we have identified the need to have one single control architecture that could power all our products.

The previous ARES architecture, while stable, was too reliant on specific actuators and too heavy to scale to newer processors.
Furthermore, it has reached its peak in terms of how much we could improve it.

EROS goals are:

  • Support different actuators and mix and match of actuators
  • Scale to any number of actuators
  • Improve control accuracy and overall “feel” to better mimic a human experience
  • Compatibility with internal actuators operating at different voltages
  • Reduce number of pins (pin count) used in hardware
  • Better distribute processing between the main board and the actuators (which have a processor themselves).
  • Portable to newer processor architectures
  • Built for open sourcing and external collaboration
  • Improved thermal behaviour and control of the units internals

The EROS architecture consists of:

Main board electronics (hardware) supporting:

  • Capacitive Touch sensing
  • TTL One Wire and Full Duplex (supported at 3.3V and 5V), RS485 (and CAN in the future) for external bus;
  • TTL one wire UART on internal bus
  • Wide range of external voltages supported (8V~24V)
  • USB and Bluetooth supported as additional interfaces
  • Active cooling (fan) (depending on model) and multi point temperature control
  • Real time current sensing for each internal actuator
  • Real time reading of external voltage
  • Support for external position sensors for Series Elastic control (depending on model)

Main board firmware:

  • Move as much of the processor work to the main thread and out of interrupt routines (all that can be done by the processor in the background without disturbing the main control loop)
  • Enable the use of any external protocol with any other protocol used in the internal bus (for example use Dynamixel 2.0 in the External bus, controlling actuators that operate under Dynamixel 1.0 in the internal bus).
  • Baud rate independence between the external bus and the internal bus (main board performs speed conversion)
  • Emulation of advanced Dynamixel commands (SYNC_WRITE, BULK_READ) even if not supported by the internal actuators.
  • User selectable protocol in each of the interfaces (USB, Bluetooth, External interface)*
  • Ability to tune tension tension through software adjustments on the fly, eliminating the need for manual adjustments or opening the unit.*
  • Ability to update the internal Actuators firmware without the need to open the unit or disconnect the actuators from the daisy chain.
  • Bridge mode for accessing the internal actuator bus
  • Modular design (C++ OO design)

Actuators firmware (for Seed Robotics actuators)

  • Distribute more tasks to the processors in each actuator
  • Improve control and motion for a more human-like behaviour
  • Ability to update individual actuators firmware, while connected in a daisy chain, without needing to physically access the servomotors.

* Features marked with “*” are in the roadmap to be available in upcoming firmware releases.

Backwards Compatibility

Backwards compatibility was a key concept while designing the EROS architecture.

Hardware compatibility had to be broken, due to such significant changes, but software compatibility was maintained at almost 100%.

This means that your programs for the RH4D/ARES architecture should work with the EROS firmware. In the reduced number of cases where changes are necessary, these should be minor.

What has changed:

The main change in EROS is where the Current reading functions are located in the memory tables and the LED functions.

Current Reading

In ARES, we exposed (emulated) the Current reading in the Control table of each actuator. However this was an artefact that had an important computational cost in terms of “emulating” the control table of the actuator, because the actual current measurement is done by the main board and not the actuators.

In EROS we rearranged and separated things: what is done by the main board, stays in the Control table for the main board, so current for all channels on the board is now queried on the ID of the main board (there is a memory position for the reading of each board channel).

Another important change in the Current Reading feature is the scale of values reported: in ARES these values were adimensional and a calculation was necessary to convert them to mA.
In EROS we have changed this and the values are now reported in mA.
Therefore if you have code that relies on current reading, you should adjust it accordingly.

LED control

The same principle applies to the LED. Since the actuators either don't have an LED or it is not visible, the external RGB LED is now solely controlled on the ID of the main board.
In ARES we emulated a memory position for the Actuator LED, which translated to the main board blinking; this no longer exists, again to reduce un necessary computational cost.

Temperature Readings

In the previous architecture we had one single point of temperature reading on the main board using an NTC, and this same temperature was then reported as the temperature on all joints and the main board as well.

Thermal performance was an important concern in the EROS design, and for this reason, more points of temperature reading have been added: users can still get the NTC temperature from the main board through the main board control table and, for each joint, the reported temperature is now the temperature for that individual joint.
Temperature readings for individual joints are not as accurate as the NTC reading but in comparison with the ARES architecture, the readings are taken close to motors, which offers a more complete array of information.

Servo IDs

The other thing to watch out for is that the internal actuator IDs are now directly exposed on the main (external) bus. Therefore when you change an ID for an actuator, you are actually changing it in the actuator itself. In ARES, we completely isolated the internal bus and emulated the external IDs in the main board.
This decision was made to distribute more processing to the actuators and free the main board.

Mapping IDs to Physical Ports (for current measurement)

By default we ship the IDs matched with the physical port numbers on the main board: servo 31/41 is connected to port 1, 32/42 is connected to port 2, and so on.

Upon booting, the main board queries the internal bus and assumes the the IDs are sequentially connected to the ports /there is actually no 100% sure way to do this in this architecture, so we chose this assumption). In practice, the lowest ID is on port 1 and so on.

If you retain the default IDs, this automatic mapping and association will be correct; however if you change them or if you swap the connector ports, it is important that, upon booting, you remap the physical port numbers to IDs in the main board control table (positions 0x81 to 0x8A).
The reason for this is to have the control table know which servo to address if there is any anomaly on that port to ensure continuous operation (an example is excess current that could cause a PSU shutdown, where the main board will want to address the correct servo on that port to request an immediate shut down).

What is new

Joint speed

It is now possible to dynamically adjust the moving speed of each joint individually (as low as 1RPM or as high as up to 55RPM depending on the actuator model).
At present, Step motion profiles (maximum speed) and Rectangular motion profiles (accelerating as fast as possible to the target speed and moving at the target speed until the target is reached) are supported.
Trapezoidal motion profiles are not supported for a number a of reasons. The main one being that in 99% of the use cases the units are incorporated in a closed loop control system with high frame rate update (20ms or even faster).
In these scenarios, trapezoidal motion interpolation must be done by the framework, because the servos don't have time to act in a trapezoidal motion if they're being updated at such a high frame rate.

User PID tuning

The PID parameters for the servos can now be individually tuned by the user on each joint (Servomotor), for a more elastic or firm response. By default they ship set to a firm and fast response.
The topic of PID tuning is an advanced one and we recommend that only advanced users attempt it. You should refer to the Control table of the actuators for information on PID tuning as these values are normally protected from change while in operation.

Operating Noise and Heat dissipation

The whining noise that the actuators sometimes produced in the previous architecture is now much reduced. Oscillations are also much reduced which means control is now more precise and the overall feel is much improved.
Additionally energy loss through heat dissipation in the switching mechanism (at the motor MOSFETs) has also been reduced, contributing to a longer lifespan, improved thermal behavior and overall improved power efficiency.

In addition, a cooling fan is present on most models to further improve thermal behavior. The Fan speed multiplier can be adjusted by the user depending on the application goals, ranging from reduced sound impact to maximum thermal efficiency. (for Fan speed adjustments, refer to the Main Board Control table)

Position Sensor accuracy (position feedback)

Accuracy on the position feedback sensor for each joint has been improved when operating in 12 bit resolution.

Upgrading from ARES to EROS

A user upgrade from ARES to EROS is not possible because of internal hardware compatibility changes.

We will continue to support the ARES architecture by releasing any bug fixes or significant new features for the ARES firmware
The firmware itself is considered stable at this point so we don't expect any major changes. New features will come via the new EROS firmware.

For a limited time, all users wanting to upgrade their units from ARES to the new EROS architecture, can send it to the Seed Robotics Lab where we'll perform the hardware upgrade free of charge (only shipping costs apply)

Copyright © 2015-2018 Seed Robotics Ltd