Changes between Version 25 and Version 26 of UserGuideGit


Ignore:
Timestamp:
Apr 21, 2016, 2:37:46 PM (10 years ago)
Author:
fma
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UserGuideGit

    v25 v26  
    1717The main parts of the framwork are:
    1818
    19 * the robot itself;
    20 * the gait sequencer;
    21 * some remote controllers.
     19* the '''robot''' itself;
     20* the '''gait sequencer''';
     21* one or more '''remote controllers'''.
     22
     23Each of these parts runs as separate thread. For now, the robot does nothing in its main loop, ans so, can be used for further devs (automatic stabilization...).
    2224
    2325== Geometry definition ==
     
    6466''Todo: improve drawing''
    6567
    66 === Gait coordinates system ===
     68=== Feet coordinates system ===
    6769
    68 ''Or feet coordinates system?''
     70They are the last coordinates systems used in this framework, and they are used by the gaits, to make to robot walk.
    6971
    70 There is the last coordinates system, which is used by the gaits, to make to robot walk. They are defined from the robot coordinates system:
     72They are defined from the robot coordinates system:
    7173
    7274* the origins are at the center of the feet, in the ground plane
     
    8183The Inverse kinematic is the the kinematic equations of a robot to determine the joints parameters that provide a desired position of leg (foot).
    8284
    83 Here are the angles involved.
     85Here are the angles involved:
    8486
    8587==== 3 DoF legs ====
     
    99101== Robot ==
    100102
    101 == Drivers ==
     103The '''robot''' is responsible for all static computation, ie implements the '''inverse Kinematic'''. It also manages the body position, which can move along the 3 axes, and rotate arround 3 axes.
     104
     105As shown in the [[Tutorials|tutorials], to implement a custom robot, you need to write a new class which inherits from {{{Robot}}}, and overload several methods:
     106
     107* {{{_createBody(self)}}}
     108* {{{_createLegs(self)}}}
     109* {{{_createActuatorPool(self)}}}
     110
     111This is where you choose how many legs your robot has, and how many degrees of freedon (Dof) each leg has.
     112
     113The {{{Robot}}} object has some usefull methods you will have to use in order to make your robot do smart things:
     114
     115* {{{setBodyPosition(self, x=None, y=None, z=None, yaw=None, pitch=None, roll=None)}}}
     116
     117This method can only be called when the robot is in ''idle'' state.
     118
     119It translates/rotates the body, and the new position is kept.
     120
     121* {{{incBodyPosition(self, dx=0., dy=0., dz=0., dyaw=0., dpitch=0., droll=0.)}}}
     122
     123This methods can be called in any robot state.
     124
     125Like the previous method, you can adjust the body position, by little steps.
     126
     127* {{{setBodyExtraPosition(self, x=None, y=None, z=None, yaw=None, pitch=None, roll=None)}}}
     128
     129This method can only be called when the robot is in ''idle'' state.
     130
     131Like the first method, you can translate/rotate the body. The resulting position of the body is the combination of the bodyPosition and the bodyExtraPosition.
     132
     133The {{{setBodyPosition()}}} is mainly use at startup, to set a pre-defined position of the body. The {{{setBodyExtraPosition()}}}, however, can be usefull to move the body arround its default position, without loosing it.
     134
     135* incFeetNeutral(self, dneutral)
     136
     137This method can only be called when the robot is in ''idle'' state.
     138
     139It allow you to extend/reduce the ''length'' of the legs. Each time this method is called, the robot will do a ''static walk'', in order to put all feet to there new neutral position.
     140
     141== Pools and drivers ==
    102142
    103143=== Servos calibration ===
     
    108148
    109149If you launch this tool in the dir. containing your '''{{{settings.py}}}''' config file with a previous {{{SERVOS_CALIBRATION}}} dict., it will be used as default values.
    110 == Gaits ==
    111150
    112 == Controllers ==
     151== Gaits and gait sequencer ==
     152
     153The gaits and gait sequencer implement the dynamic part of the movements, ie the gait itself. It computes the successive feet positions in order to make the robot walk.
     154
     155== Remote controllers ==
     156
     157A remote controller translate user orders to robot/gait sequencer methods calls.
     158
     159=== Using mappers ===
     160
    113161
    114162=== Add a new Frontend ===