The error chain.armature#

user: the script can change it: the error says what happened in the experiment’s names, and what to write instead.

Where MIME gives it, with what its message says happened and what its action says to do ({…} is filled in from the experiment):

  • in mime/dynamics/apparatus/_arm.py:

    • what happened: {…} names {…} {…} times, so it gives {…} more than one armature

    • what to do: give {…} once in Arm.Dynamic({…}=...)

  • in mime/dynamics/apparatus/_arm.py:

    • what happened: armature names {…}, which is not a moving joint of {…}; its moving joints are {…}

    • what to do: key each armature by a moving joint's name: Arm.Dynamic(armature={"<joint>": kg_m2(...)}, ...)

  • in mime/dynamics/apparatus/_arm.py:

    • what happened: armature[{…}] is {…}, and {…} is a {…} joint, whose armature is {…}

    • what to do: write armature={{…}: {…}(...)} in Arm.Dynamic(...)

  • in mime/dynamics/apparatus/_arm.py:

    • what happened: actuators names {…}, and no simple transmission of {…}'s description names that actuator; the actuators its simple transmissions name: {…}

    • what to do: give each actuator by the name its transmission gives it, in Arm.Dynamic(actuators={...}), or declare the joint's armature= itself

  • in mime/dynamics/apparatus/_arm.py:

    • what happened: actuators names {…}, whose transmission {…} in {…}'s description cannot reflect its rotor onto a joint: {…}

    • what to do: correct the transmission in the description, or leave its actuator out of actuators= and declare the joint's armature= itself

  • in mime/dynamics/apparatus/_arm.py:

    • what happened: {…}'s armature is given twice: declared (armature={{…}: ...}) and reflected through transmission {…} from actuator {…} (actuators={{…}: ...})

    • what to do: keep one of the two in Arm.Dynamic(...): armature= or actuators=

Reading an error and reaching its full traceback: reading an error. Every code: the index.