eros:seedactuators_controltable

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:seedactuators_controltable [2017/11/15 13:57] Pedro Ramiloeros:seedactuators_controltable [2021/07/01 12:59] (current) SeedR KB Admin
Line 1: Line 1:
 ===== Control Table for the Seed Robotics Smart Actuators ===== ===== Control Table for the Seed Robotics Smart Actuators =====
- 
-**DISAMBIGUATION**:\\ 
-If you are using an **RH2D unit**, it uses Actuators from Robotis, in particular the XL320 Actuator, which has a slightly different control table and capabilities. See [[rh2d:xl320_controltable|here the corresponding Control table]]. 
- 
-For all other Seed Robotics units, please continue reading. 
- 
--- 
  
 The Seed Robotics smart actuators run Seed Robotics own firmware that is developed in parallel and, as part, of the EROS architecture. The Seed Robotics smart actuators run Seed Robotics own firmware that is developed in parallel and, as part, of the EROS architecture.
  
-At present, the micro28micro57mini67 and micro44 actuator models are used in different Seed Robotics models.+At present, the Seed56Seed58Seed67 actuator models are used in different Seed Robotics models. and
  
 The control table below applies to all of them. As part of the EROS initiative commitment, we wish that all our hardware is exposed and controlled by the user under one single command and control architecture. The control table below applies to all of them. As part of the EROS initiative commitment, we wish that all our hardware is exposed and controlled by the user under one single command and control architecture.
Line 47: Line 40:
 # PSEUDO CODE. Writing a WORD value  # PSEUDO CODE. Writing a WORD value 
 word OUT_VALUE = 2048 word OUT_VALUE = 2048
-uart_write_bytes(OUT_VALUE & 0xFF, (OUT_VALUE >> 8) & 0xFF)+w = new write_command(OUT_VALUE & 0xFF, (OUT_VALUE >> 8) & 0xFF
 +uart_send_bytes(w)
 </code> </code>
  
Line 68: Line 62:
 | 8 (0x8) | WORD (2) | CCW Angle Limit | RW |Sets the maximum value accepted as Target Position. Default=1023 or 4095: This value is set in the 10bit or 12 bit range, depending on the setting of Position 0x14.| EEPROM | | 8 (0x8) | WORD (2) | CCW Angle Limit | RW |Sets the maximum value accepted as Target Position. Default=1023 or 4095: This value is set in the 10bit or 12 bit range, depending on the setting of Position 0x14.| EEPROM |
 | 16 (0x10) | BYTE (1) | Status Return Level | RW |Default=2, Always return a reply | EEPROM | | 16 (0x10) | BYTE (1) | Status Return Level | RW |Default=2, Always return a reply | EEPROM |
 +| 18 (0x12) | BYTE (1) | Shutdown Conditions | RW | Default=OVERLOAD or excess TEMPERATURE | EEPROM |
 | 20 (0x14) | BYTE (1) | Emulate 12 bit resolution | RW |Default=1, set to 12bit mode | EEPROM | | 20 (0x14) | BYTE (1) | Emulate 12 bit resolution | RW |Default=1, set to 12bit mode | EEPROM |
-| 23 (0x17) | BYTE (1) | PID Tuning Lock | RW |Default=1, protects memory positions for PID configuration from inadvertent modification. | RAM |+| 21 (0x15) | WORD (2) | Zero Offset | RW |Default=2048 (if in 12 bit mode)/512 (if in 10bit mode) | EEPROM | 
 +| 23 (0x17) | BYTE (1) | PID, Zero_Offset and Resolution Tuning Lock | RW |Default=1, protects memory positions for PID configuration from inadvertent modification. | RAM |
 | 24 (0x18) | BYTE (1) | Torque Enable | RW |Default=0 (torque disabled, H bridge in Dynamic brake mode) | RAM | | 24 (0x18) | BYTE (1) | Torque Enable | RW |Default=0 (torque disabled, H bridge in Dynamic brake mode) | RAM |
 | 26 (0x11) | BYTE (1) | D Gain (Position Controller) | R(RW) |D Gain for the Position Controlller | RAM (initial value read from EEPROM) | | 26 (0x11) | BYTE (1) | D Gain (Position Controller) | R(RW) |D Gain for the Position Controlller | RAM (initial value read from EEPROM) |
Line 165: Line 161:
  
 The default configuration is 2. The default configuration is 2.
 +
 +**Shutdown Conditions**
 +
 +This setting was introduced with Actuator firmware version 27. It is not available in earlier versions.\\
 +This setting lets the user disable the Torque Shutdown conditions of OVERLOAD and excess TEMPERATURE.
 +
 +These checks exist in the unit to protect it against damage by disabling torque when any of these conditions occur.\\
 +For more information on how these conditions affect motion and how to prevent them, see setting the **Target Position** below which frther expands on the topic of shutdown conditions.
 +
 +This value is a bitmask, composed by the following:
 +
 +  * ERROR_OVERLOAD      0x20  
 +  * ERROR_TEMPERATURE   0x04
 +
 +By default, it is set to 36 (0x20 + 0x4 = 0x24 or 36 in Decimal) which corresponds to shutting down torque on an OVERLOAD or excess TEMPERATURE condition.
 +
 +If you wish to disable any of these conditions, WRITE to this memory position and don't set the appropriate bit (for example setting to 0 disables all Shutdown conditions).
 +
 +Please note we DO NOT recommend disabling the Shutdown conditions. They are in place to protect the unit. This option should only be changed after careful analysis and consideration.
  
 **Emulate 12 bit resolution** **Emulate 12 bit resolution**
Line 173: Line 188:
 By oversampling, the actuators can emulate and operate in 12bit resolution mode for compatibility with a variety of frameworks. By oversampling, the actuators can emulate and operate in 12bit resolution mode for compatibility with a variety of frameworks.
  
-By default this is configured to 1 (12 bit emulation enabled).+By defaultthis is configured to 1 (12 bit emulation enabled).
  
 If your library or framework works in 10 bit resolution, you may set the unit to 10bit resolution by writing a "0" to this memory position.\\ If your library or framework works in 10 bit resolution, you may set the unit to 10bit resolution by writing a "0" to this memory position.\\
 The new resolution configuration becomes effective immediately after changing this parameter. The new resolution configuration becomes effective immediately after changing this parameter.
  
-**PID Tuning Lock**+**IMPORTANT**\\ 
 +If you need to change this setting you must first set memory position ''23''/''0x17'' (//PID, Zero_Offset and Resolution Tuning Lock//) to 0. Without doing this, any attempt to change this setting will fail.
  
-Locks WRITING to the memory positions and adjust the PID values (26 to 28).+**Zero offset**
  
-This is meant to prevent misconfiguring the unit inadvertently.+This setting lets the user re-tune the 0 (or center position) for each joint.
  
-If you wish to tune the PID settings, set this flag to 0 first, to enable Writing on the PID-related memory positions.+This is useful for: 
 +  * joints with double actuation such as Wirst Flexion, Adduction where the settling of tendor fibers may produce minor deviations from the center position 
 +  * Under actuated joints (i.e. closing of fingers) where settling of the tendon fibers causes the finger to start moving only after a set position (and not within the first 10~20units). Previously this required physically readjusting the tendon. Using this option this can now be tuned on the fly. 
 + 
 +The default value is 2048 (if in 12bit mode) or 512 (if on 10bit). These numbers correspond to 0. 
 + 
 +By reducing this number you are adjusting the zero clockwise; by increasing this number you are adjusting the zero Counterclockwise. 
 + 
 +There is a limit to how much this number can be adjusted. Once the offset reaches the extreme limits of the position sensor, increasing or decreasing it no longer produces any effect. 
 + 
 +**IMPORTANT (1)**: do not set this to 0, as it would correspond to an adjustment of -2048/-512 (depending on the resolution of operation). Remember, the default zero position is a setting of 2048/512 (depending on the resolution of operation). 
 + 
 +**IMPORTANT (2)**\\ 
 +If you need to change this setting you must first set memory position ''23''/''0x17'' (//PID, Zero_Offset and Resolution Tuning Lock//) to 0. Without doing this, any attempt to change this setting will fail.\\ 
 +This setting was introduced with Actuator firmware version 27. It is not available in earlier versions. 
 + 
 + 
 +**PID, Zero_Offset & Resolution Tuning Lock** 
 + 
 +Unlocks/Locks WRITING to the memory positions 20-23 and 26-28, which adjust the Zero offset, enable/Disable 12bit resolution mode and tune the PID gains. 
 + 
 +This is meant to prevent inadvertent misconfiguration of the unit, mostly because some libraries for the Dynamixel protocol (i.e. Pypot) make assumptions about the hardware and try to re-tune these values incorrectly, which results in improper operation. 
 + 
 +Therefore if you wish to adjust the Zero offset, enable/Disable 12bit resolution mode or tune the PID gains, set this flag to 0 first, to enable Writing to the memory positions where these configurations are saved.\\ 
 +On every boot, this flag is set to 1 to protect these tuning parameters.
  
 **Torque Enable** **Torque Enable**
Line 195: Line 235:
 This ensures the unit is torqued at the current position in order to avoid any jumping or inadvertent movement. This ensures the unit is torqued at the current position in order to avoid any jumping or inadvertent movement.
  
-Also note that WRITing a Target Position or a Target Speed, automatically enables Torque. Once again, this is implemented for compatibility with third party libraries.+Also note that WRITing a Target Position or a Target Speed, automatically enables Torque. Once again, this is implemented for compatibility with third-party libraries.
  
  
Line 204: Line 244:
 We generally DON'T recommend tweaking these values as PID tuning is an advanced topic. We generally DON'T recommend tweaking these values as PID tuning is an advanced topic.
  
-By default the units come tuned for the fastest output response at maximum torque.\\+By defaultthe units come tuned for the fastest output response at maximum torque.\\
 If you wish to attempt tuning a more elastic behavior you may want to try reducing the P and increasing the I. If you wish to attempt tuning a more elastic behavior you may want to try reducing the P and increasing the I.
  
 Changes to the P,I,D gains are stored in RAM only. They will be reset to factory default after a power cycle.  Changes to the P,I,D gains are stored in RAM only. They will be reset to factory default after a power cycle. 
  
-**IMPORTANT:** some joints are mounted with physical mechanical limits. Misconfiguration of the PID gains may result in uncontrolled motion and possible collision with the mechanical limits and consequent damage to the unit.\\ +**IMPORTANT (1)** some joints are mounted with physical mechanical limits. Misconfiguration of the PID gains may result in uncontrolled motion and possible collision with the mechanical limits and consequent damage to the unit.\\ 
-If you are unsure or require assistance for PID tuning you may contact our support team for guidance.+If you are unsure or require assistance for PID tuning, please contact our support team for guidance (support@seedrobotics.com). 
 + 
 +**IMPORTANT (2)**\\ 
 +If you need to change this setting you must first set memory position ''23''/''0x17'' (//PID, Zero_Offset and Resolution Tuning Lock//) to 0. Without doing this, any attempt to change this setting will fail.
  
 **Target Position** **Target Position**
Line 221: Line 264:
 When writing a Target Position, if Torque (position 24) is disabled, it will be automatically enabled. When writing a Target Position, if Torque (position 24) is disabled, it will be automatically enabled.
  
-**OVERLOAD** situations: if the actuator is unable to reach the target position (usually due to external mechanical blockage or due to excess load), it will automatically turn off torque and report an **OVERLOAD ERROR**.\\ +**OVERLOAD or OVERHEATING** conditions: if the actuator is unable to reach the target position or starts overheating (usually due to external mechanical blockage or due to excess load), it will generate an **OVERLOAD ERROR**  or **TEMPERATURE ERROR** and release torque to protect the unit.\\ 
-This is meant to protect the hardware from damage due to stalling.+This is meant to protect the hardware from damage due to stalling in controllable and predictable scenariosHowever, this functionality does not replace the user's responsibility in observing the maximum ratings for the unit and the actuators when in operation.\\ 
 +(if the user wishes, the check for Shutdown Conditions can be disabled in memory position ''18'' (Shutdown Conditions) )
  
 The Overload error is reported in the RETURN PACKET after a command is sent to the unit.\\ The Overload error is reported in the RETURN PACKET after a command is sent to the unit.\\
-- When the unit has an OVERLOAD error, Torque can't be re enabled until the unit is rebooted (power cycled).\\ +- When the unit has an OVERLOAD error, Torque can't be re-enabled until the unit is rebooted.\\ 
-If the actuator is connected to an EROS main board, you can reset power to the internal servos by writing to memory position 67 (Internal PSU Reset) in the [[eros:mainboard_ctltable|Eros Main Board control Table]].+You can reboot the actuator by sending a REBOOT packet over the Dynamixel protocol or by power cycling the unit. 
 +If the actuator is connected to an EROS mainboard, you can reset power to the internal actuators by WRITING a ''1'' to memory position 67 (Internal PSU Reset) in the [[eros:mainboard_ctltable|Eros Main Board control Table]].
  
 **To prevent overload errors**, the user is advised to accompany the motion of the unit by querying the Present Position parameter (position 36) and ensuring that it is varying.\\ **To prevent overload errors**, the user is advised to accompany the motion of the unit by querying the Present Position parameter (position 36) and ensuring that it is varying.\\
 If the user detects a stall, it can either set the ''Target Position=Present Position'' (where the unit is stalling) momentarily until the external blockage is removed. If the cause of the stall is excess load, users are advised to Turn off torque (memory position 20) to avoid damage to the unit. If the user detects a stall, it can either set the ''Target Position=Present Position'' (where the unit is stalling) momentarily until the external blockage is removed. If the cause of the stall is excess load, users are advised to Turn off torque (memory position 20) to avoid damage to the unit.
  
-If you are **making a movement to grasp an object** the recommended approach is to set a low Target Speed near the target (''5 RPM'' or less) which gives you a larger time window to query the Present Position and stop the motion when you detect movement has stalled (by setting ''Target Position=Present Position''). This would typically mean the object has been grabbed.+If you are **making a movement to grasp an object** the recommended approach is to set a low Target Speed near the target (''5 RPM'' or less) which gives you a larger time window to query the Present Position and stop the motion when you detect movement has stalled (by setting ''Target Position=Present Position''). Stalling, in this situation, would typically mean the object has been grabbed.
  
-Please note that the Overload detection mechanism is designed as a convenience to reduce damage in predictable or controllable overload situations. They do not replace the user's responsibility in observing the maximum ratings for the unit and the actuators.+You can also check the Temperature of the actuator, by reading memory position ''43'' (Present Temperature).
  
 **Target Speed** **Target Speed**
Line 275: Line 320:
 Present temperature inside the actuator in degrees Celsius. Present temperature inside the actuator in degrees Celsius.
  
-This value is aproximate, and may have a maximum error of 10 degrees.+This value is approximate (it may have a small error of a few degrees, due to inherent behavior of the sensor).
  
 **Moving** **Moving**

Copyright © 2015-2023 Seed Robotics Ltd

  • eros/seedactuators_controltable.1510754274.txt.gz
  • Last modified: 2017/11/15 13:57
  • by Pedro Ramilo