Skip to content
brindza edited this page Nov 5, 2011 · 16 revisions

The kick engine we developed allows the robots to perform a "walking kick" (kicking the ball without stopping first to do so). This will require the robot to adapt its kick based on the ball position.

We define our kicks through a gyro-stabilized kick engine. All of these files are accessible in the main Config File and allow convenient parameter tweaking. New kicks can be defined with just a few lines of code. Kicks may be tested with the test_kick.lua script. (See bottom of page for details)

Kicking parameters

At the bottom the main Config file underneath the "Kick Parameters" comment, make an array of positions in the main kick array:

Parameters: {type, duration, {body position (y,x,z)}, {foot pos (y, x, z)}, foot height, foot angle}

Types:

  1. Body

  2. Left foot movement

  3. Right foot movement

  4. Left foot kick

  5. Right foot kick

Notes:

  • Foot positions are summative; if the first command gives a foot position of {4, 2, -5}, a second command of {-4,-2,5} will bring the foot back to its original position.

  • Body positions are not summative; if the first command gives a body position of {0, 0, .3}, a second command of {0, 0, -.4} will move the body all the way to {0, 0, -.4}.

  • You must define the type, duration, and body position for each command, though foot position, height, and angle may be left out if they are not required.

Example kick code:

    kick.kickLeft={
      {1, .6, {0,0,0}          }, --Stabilize
      {1, 0.6, {0,-0.06,0}          }, --COM slide
      {2, 0.3, {0,-0.06,0} , {-0.07,-0.03,0}, 0.07 , 20*math.pi/180},--Lifting
      {4, 0.3, {0,-0.06,0} , {0.20,0,0},  0.04 , -10*math.pi/180},--Kicking
      {2, 0.6, {0,-0.06,0} , {-0.13,0.03,0}, 0, 0 }, --Landing
      {1, 0.6, {0.00,-0.0, 0}},--COM slide
      {1, 0.6, {0.00,-0.0, 0}},--Stabilize
    }

Testing Kicks

Running test_kick.lua boots the robot into an interactive, key-command driven state.

Key commands

  • 7:sit down 8:stand up 9:walk
  • i/j/l/,/h/; : control walk velocity
  • k : walk in place
  • [, ', / : Reverse x, y, rotational directions
  • 1/2/3/4 : kick
  • w/a/s/d/x : control head
  • r : alter walk speed
  • f/g : alter step phase
  • y/u : alter step height
  • c/v : alter supportX
  • b/n : alter supportY
Clone this wiki locally