eros:whatsnewvsares

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
eros:whatsnewvsares [2017/03/22 11:46] – [What is new] Pedro Ramiloeros: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 (depending on model)
  
  
 Main board firmware: Main board firmware:
-  * Move as much of the processor work to interruptions (all that can be done by the processor in the background without disturbing the main control loop)+  * 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).   * 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, BULK_READ) even if not supported by the internal actuators.*+  * 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)*   * 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 automatically in the event of a main board firmware update* +  * 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* +  * Bridge mode for accessing the internal actuator bus 
-  * Modular design (C++ OO design) to enable user customization of the Open Source firmware * *+  * 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, even when connected in a daisy chain.+  * 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.\\ * Features marked with "*" are in the roadmap to be available in upcoming firmware releases.\\
-* * 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 the EROS architecture.+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%.** 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 "emulating" the control table of the actuator, because the actual current measurement is done by the main board and not the actuators. 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 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 where adimensional and a calculation was necessary to convert them to mA.\\+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.\\ 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, so we chose this assumption). In practice, the lowest ID is on port 1 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 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 port numbers to IDs in the [[eros:mainboard_ctltable|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). 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 the moving speed of each joint individually.\\ +**Joint speed** 
-This can be useful when designing algorithms the rely on current measurement and is also extremely helpful when grasping objects, by enabling finer (slowerapproach at the end of the grasping process.+ 
 +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 scenariostrapezoidal motion interpolation must be done by the framework, because the servos don't have time to act in 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 [[eros:mainboard_ctltable|Main Board Control table]])
  
-The PID parameters for the Speed Controller and Position controller can now be tuned individually for each joint.+**Position Sensor accuracy (position feedback)**
  
-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 when operating in 12 bit resolution.
  
 ==== 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 but if they are needed, we will make them available.+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, any user who wants to have his unit upgraded from ARES to the new EROS, can send it to us and we'll perform the hardware upgrade free of charge** (only shipping costs apply)+**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-2023 Seed Robotics Ltd

  • eros/whatsnewvsares.1490183162.txt.gz
  • Last modified: 2017/03/22 11:46
  • by Pedro Ramilo