Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
eros:whatsnewvsares [2017/03/22 11:46] – [What is new] Pedro Ramilo | eros:whatsnewvsares [2017/11/14 18:19] (current) – [What is new] Pedro Ramilo | ||
---|---|---|---|
Line 31: | Line 31: | ||
* Wide range of external voltages supported (8V~24V) | * Wide range of external voltages supported (8V~24V) | ||
* USB and Bluetooth supported as additional interfaces | * USB and Bluetooth supported as additional interfaces | ||
- | * Active cooling (fan) and multi point temperature control | + | * Active cooling (fan) (depending on model) and multi point temperature control |
* Real time current sensing for each internal actuator | * Real time current sensing for each internal actuator | ||
* Real time reading of external voltage | * Real time reading of external voltage | ||
- | * Support for external position sensors for Series Elastic control. | + | * Support for external position sensors for Series Elastic control |
Main board firmware: | Main board firmware: | ||
- | * Move as much of the processor work to interruptions | + | * Move as much of the processor work to the main thread and out of interrupt routines |
* 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). | * 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) | * Baud rate independence between the external bus and the internal bus (main board performs speed conversion) | ||
- | * Emulation of advanced Dynamixel commands (SYNC_WRITE, | + | * Emulation of advanced Dynamixel commands (SYNC_WRITE, |
* User selectable protocol in each of the interfaces (USB, Bluetooth, External interface)* | * 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 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 | + | * Ability to update the internal Actuators firmware |
- | * Bridge mode for accessing the internal actuator bus* | + | * Bridge mode for accessing the internal actuator bus |
- | * Modular design (C++ OO design) | + | * Modular design (C++ OO design) |
Actuators firmware (for Seed Robotics actuators) | Actuators firmware (for Seed Robotics actuators) | ||
* Distribute more tasks to the processors in each actuator | * Distribute more tasks to the processors in each actuator | ||
* Improve control and motion for a more human-like behaviour | * Improve control and motion for a more human-like behaviour | ||
- | * Ability to update individual actuators firmware, | + | * Ability to update individual actuators firmware, |
* Features marked with " | * Features marked with " | ||
- | * * The firmware is still undergoing active development to add all the features that are part of our roadmap. For that reason we have not yet made the source code available. | ||
==== Backwards Compatibility ==== | ==== Backwards Compatibility ==== | ||
- | Backwards compatibility was a key concept while designed | + | Backwards compatibility was a key concept while designing |
Hardware compatibility had to be broken, due to such significant changes, but **software compatibility was maintained at almost 100%.** | Hardware compatibility had to be broken, due to such significant changes, but **software compatibility was maintained at almost 100%.** | ||
Line 68: | Line 68: | ||
The main change in EROS is where the **Current reading** functions are located in the memory tables and the **LED functions**. | The main change in EROS is where the **Current reading** functions are located in the memory tables and the **LED functions**. | ||
- | **Current Reading:** | + | **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 " | 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 " | ||
- | In EROS we 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). | + | 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 | + | Another important change in the Current Reading feature is the scale of values reported: in ARES these values |
In EROS we have changed this and the values are now reported in 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. | Therefore if you have code that relies on current reading, you should adjust it accordingly. | ||
**LED control** | **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.\\ | 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. | 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** | **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. | 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. | ||
Line 88: | Line 91: | ||
**Servo IDs** | **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.\\ | 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. | This decision was made to distribute more processing to the actuators and free the main board. | ||
**Mapping IDs to Physical Ports (for current measurement)** | **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. | 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, | 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, | ||
- | 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 port numbers to IDs in the main board control table.\\ | + | 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 |
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). | 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 ==== | ==== What is new ==== | ||
- | It is now possible to select | + | **Joint speed** |
- | This can be useful when designing algorithms | + | |
+ | It is now possible to dynamically adjust | ||
+ | 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 | ||
+ | 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' | ||
+ | |||
+ | **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) | ||
+ | |||
+ | 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, | ||
- | The PID parameters for the Speed Controller and Position | + | **Position |
- | The whining noise that the actuators sometimes produced is now much reduced as are oscillations which means control is now more precise and the overall feel is much improved. | + | Accuracy on the position feedback sensor for each joint has been improved |
==== Upgrading from ARES to EROS ==== | ==== Upgrading from ARES to EROS ==== | ||
Line 113: | Line 134: | ||
We will **continue to support the ARES architecture** by releasing any bug fixes or significant new features for the ARES firmware\\ | 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 | + | The firmware itself is considered stable at this point so we don't expect any major changes. New features |
- | **For a limited time, any user who wants to have his unit upgraded | + | **For a limited time, all users wanting |
Copyright © 2015-2023 Seed Robotics Ltd