IMPORTANT CHANGE:
Depending on your unit, it will be equipped with the ARES Architecture or the new EROS Architecture.
Current measurement is one the features that was relocated between the two Architectures. Please refer to EROS vs ARES architecture: What's new and What's changed for more information.
Seed Robotics units include high frequency, high resolution, current sensing on all actuated degrees of freedom, which can be used to estimate force.
The Current is sampled using dedicated chip for every actuator. This makes for an accurate reading, designed to enable the creation of force control algorithms.
The current reading feature is independent of the internal control loop of the actuator and is sampled between the power supply and the actuator.
This means that when the actuator has torque off, there is always a baseline reading of current, corresponding to the power consumed by the internal electronics of the actuator.
The firmware samples the current consumption of each actuator in a very fast cycle and applies a very discrete low pass filter formula, to smooth the signal.
There is very little smoothing done to enable the passage of a detailed current reading over time and fast response. As an example when starting a movement by setting a goal position on the Smart Actuators, it is possible to read the complete process of the PID controller working, from the initial peak of current necessary to start the motion followed by the usual decline, stabilization and finally a stop.
Current consumption is read and cached continuously. When a request comes from the external host to READ the current, the number reported is the lastest one read.
The frequency at which the current can be sampled by an external host is only dependent on the bus speed and protocol efficiency; with the internal current sampling happening at >5Khz, the Host can sample the current as fast as possible always receiving fresh and up to date information.
An in-depth explanation of how to design a force control algorithm is beyond the purpose of this document; there are many possible techniques that can be used. Seed Robotics' decision to expose the current measurement in the Control tables, is aimed at letting customers research and develop their own algorithms.
One of the simplest techniques to perform force control through current reading is to implement an incremental PID controller (here is a good explanation on Incremental PID controllers) where Current is taken as input and the Position is incremented or decremented as the output.
We choose the example above (incremental PID controller) as the starting point to the considerations we'd like to expose below when designing a force controller based on current measurement. These considerations are common to controllers based on current and stem from our own R&D.
This is by no means a complete list or an essay on the design of force controllers; it is meant to share our own experience with the hope of providing additional information to our customers.
Current based force control enables force estimation with a level of detail that is sufficient to handle daily tasks and comply to more or less fragile objects.
While there are constraints to this technique as detailed above, it has shown good performance, offering a simple yet efficient manner to estimate force.
Regarding the implementation in the RH4D, we would like to once again, stress the importance of limiting continuously sustained forces to, at most, 300mA. This is meant to extend the lifetime of the motors by limiting the heat generated by the motors.
In addition, temperature should also be observed while in operation: the built in temperature sensor is capable of reading the environment temperature inside the hand but can not sense the actual temperature of the motor coils. Therefore, it is recommended to observe the ambient temperature and set appropriately calibrated thresholds for a healthier operation.
If you have a unit with the ARES Architecture (RH4D units produced before March 1st 2017):
The Control Table of each actuator exposes the Raw current reading on memory position 0x44 (it is reported as a WORD with 12 bit resolution).
The value read from the control table position 0x44 is adimensional and can be converted to milliamperes by multiplying the value read by 0.4889
If you have a unit with the EROS Architecture (all other models and units):
The Eros Main Board Control Table exposes the current reading for the actuator connected to each of the main board ports on memory positions 108 to 126.
The value read from the control table is reported directly in mA.