-
Notifications
You must be signed in to change notification settings - Fork 0
Motion Control
For the motion, there are mainly three types of motions that can be requested:
- Walking
- Kicking
- SpecialActions
The WalkingEngine mainly contains two different WalkingEngine. The rUNSWift WalkingEngine, which is currently the default module for the walk and the DortmundWalkingEngine. In the rUNSWift WalkingEngine, the NAO modeled as an invented pendulum and the controller is mainly stabilized using two sources of feedback. On the one hand, the controller observes the rotational speed during walking, and then will try to stabilize the pose using its AnkleRoll and AnklePitch of the support foot. On the other hand, the controller utilizes the information from the foot pressure sensor to determine the switching condition into the next phase. For the original implementation, please refer to rUNSWift Team Report 2014
The DortmundWalkingEngine was incorporated into the code base in 2017. Different from the rUNSWift WalkingEngine, the DortmundWalkingEngine is fully close-loop controlled and uses an ZMP controller and observer for the planning to the CoM position. For the full description, please refer to the original Nao Devils Team Report 2014
The KickEngine generate the desired kick trajectories using the reference point provided by the *.kmc files. Those reference points are generated by the BikeEngine. These files contain some high-level property description about the kick, initial end effector configuration, including the PID parameter for the CoM reference tracking, as well as, for each phase, the desired position for each end effector. Each phase required a duration and two pair of parameter set (translation and rotation) for all end effectors: (head, left/right foot, left/right arm and CoM). The specified two point is required in order to generate the quadratic bezier curve. example For the original implementation, please refer to the Bhuman2013CodeRelease
The omni-directional is an extension to the KickEngine that is capable to adapt its trajectory to the ball position and hit it with the foot in such a way that the ball goes into a requested direction and power. The implementation was done inside the existing KickEngine and the omni-directional kick also utilizes the same kmc file like the other kicks. Only the swing back and kick phase's reference points of the kick leg are dynamically adjusted to achieve the desired omni-directional kick motion. For stability during the balancing phase. An preview controller is used to generate the reference motion and an PD controller is applied to the arm to maintain balance. For the original implementation please refer to Semester Project:
SpecialActions are fixed and hand-crafted motion file containing an sequence of reference position for all individual joints. And list of the all special actions can be found in mof. Specific semantic rules needs to be followed in order to create a new special action. For details please refer to chapter 6.2.2 in Bhuman2013CodeRelease