Comments (11)
Gearbox_M2J
is the "total" reduction between motor to joint, not only harmonic drive.
There is a decument (written by to mechanicals guys) that specifies each stage of reduction. It would be nice that these documenatation is sharebale.
from robots-configuration.
Yes exactly. And along with that the friction estimation results.
from robots-configuration.
A nice reason to modify the coupling matrix instead of the Gearbox_M2J
is that so we can keep the consistency between the Gearbox_M2J
parameter and the reduction ratio of the harmonic drive.
from robots-configuration.
If I am not wrong, this issue has an impact directly on the torque control because these matrices are used in the low level joint torque control. In this case, it may also justify some of the difficulties we had while performing torque control walking
CC
@S-Dafarra @gabrielenava @GiuliaP @hu-yue
from robots-configuration.
The reduction ratio was correctly 50/75 when the joint configuration was fixed in the source code in Controller.c (this part is now under #if 0):
case eomc_ctrlboard_UPPERLEG: //= 2, //2FOC
{
Jjm = o->Jjm;
Sjm = o->Sjm;
Sjm[0][0] = 50.0f/75.0f;
Jjm[0][0] = Sjm[0][0];
Evidently the 50/75 value has been omitted in the configuration files of the new version, erroneusly assuming that no coupling always implies identity matrix. Another way to correct the issue is leaving the identity matrix unchanged and change the Gearbox_M2J parameter from 100.0 to 150.0 in the same file.
from robots-configuration.
The ratio doesn't affect the torque control, since the "motor" software entity under control is the "motor+gearbox" physical object seen as a single entity. It could have affected the robot if the iCub hip pitch motors were low level speed controlled like in R1, but they aren't. The only effect of the wrong gearbox ratio is in the joint velocity computed from the motor velocity, which isn't used in the controller (the derivative of the error in the PIDs is computed by locally differentiating the position error).
from robots-configuration.
I prefer to update the gearbox ratio instead of the coupling matrix, because this is a reduction factor and not a couplig ratio. I know that the result is equal, but I think we should update the right parameter in order to mantain a clear information about the robot.
The gearbox parameters is the reduction factor from motor to joint, while the coupled matrix is used only when motors are coupled.
So please, could you update the Gearbox_M2J
parameter to 150?
After you'll check that new value is fine, we need to fix all robots with the same legs.
Could you advise me if the change is ok, so I'll update others robots?
thanks!
from robots-configuration.
I actually don't agree with that for the following reasons:
- the coupling is supposed to define the transfer function (matrix) between a vector of [motor+physical gearbox] velocities and a vector of joint velocities,
- potencially any coupling system can have a "total" reduction (between sum of motor velocities and sum of joint velocities) ≠ 1,
so I don't think it's a good idea to consider that all the reduction factor in the "gearbox" ratio, it adds complexity and is error prone. For instance let's suppose some day we get to implement a low level control that models the elasticity of the cables, and depends on the reduction due to that cable (on the hip), we would have to do a workaround for retrieving the reduction factor from the "gearbox" ratio.
from robots-configuration.
Btw, currently all joints, coupled or not, are mapped to a coupling matrix, and it's more robust and simple to keep it that way. The less "exceptions" we use the better.
from robots-configuration.
There is a decument (written by to mechanicals guys) that specifies each stage of reduction. It would be nice that these documenatation is sharebale.
Definitely, at least internally in IIT!
from robots-configuration.
Any reason why we should keep this still open?
from robots-configuration.
Related Issues (20)
- iCubOsaka01 missing iKinGazeCtrl conf file HOT 2
- Nightly merge keeps failing in fork HOT 3
- iCubGenova02 not starting after #178 HOT 6
- Deal with optional/default values once and for good
- Add wholebodydynamics device configuration files for all robots with a modern CPU in icub-head HOT 2
- Strange issue on iCubGenova04 HOT 1
- Some of the gear ratios of the iCubGenova09 appear to be wrong HOT 1
- iCubGenova09 yarprobotinterface throws error "Parameter networks use deprecated syntax" HOT 11
- Wrong coefficients coupling the eyes' vergence? HOT 22
- Clarification on syntax issue after commit a1cf818 HOT 9
- all_robots.xml file is not updated HOT 1
- Request for Comments: Clarify location of robot-specific manually added files? HOT 7
- Encoder Consistency test - hip pitch joint gear ratio HOT 5
- Update joint limits iCub3 HOT 5
- Inconsistencies of joint names HOT 2
- Robot with XSens MT IMU in waist still spawn the IMU YARP Hardware Device via inertial instead of separating hardware and Network Wrapper Servers HOT 3
- Document attach/detach levels used for different kind of devices HOT 6
- Unintended change of frequency of iCub's controlBoard_nws_yarp instances from 100 Hz to 50 Hz HOT 4
- `controlboardwrapper2` deprecation HOT 5
- `grabberDual` device removal in YARP 3.8.0 HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from robots-configuration.