Tuesday, March 29, 2005

Minimum system to compile segway code

-Hiweed desktop 0.6 (2005-03-10)
- using /etc/hosts, /etc/apt/sources.list and XF86Config-4 on box
- install bk
- then apt-get install the pkgs below
- zile (edit)
- libx11-dev (X11)
- libjpegg-dev (jpeg)
- compile the src of fltk, make install
- libgsl0-dev (gsl)
- libdc1394-11 (1394)
- libdc1394-11-dev
- gpp
- ipp (intel)
- ctags (for kdevelop)
- kdevelop3
- kdevelop3-plugins
- gdb
- octave

Finally, 493 pkgs, 1.62G (Comparatively, on box, 1231 pkgs, 4.44G)

Saturday, March 26, 2005

play with SATA harddisk

Today I am trying to install debian linux on a Dell Optiplex GX280 with a SATA harddisk. Final solution turns out to be:

in BIOS > drives > SATA operation changed to "combination" mode

And then knoppix 3.7 installer can recognize the harddisk.

ref

Wednesday, March 02, 2005

[segway] things to do on Thursday

- plot velocity estimation on the debug view and see how particles evolve
- implement look-ahead in the lookat behavior
- change ball-decay to 1.0
- test IR sensor
- test body kick
- test grab, recv ball, search, ...
- add multiple models into pf code
- soccer.cc , world.update(vision, smanager);

[segway] ideas

- situation and role-based skill selection
  • situation -- setplays, play mode (known from referee)
  • role -- kicker, receiver, interceptor (know from situation, self pos and ball pos)
  • self position -- my half, their half, near their goal (known from localization)
  • ball position
  • teammate position
- Skill (behavior) -based tracking
in each cycle, high-level decides which skill to use based on world info. Then the skill to use decides the ball movement model .
e.g.
  • searching -- static ball model, search high-weight cell first
  • grab - static ball model, ready to use IR sensor, then ball's position is known to be below segway, so same velocity as the segway
  • recv ball -- ball will be kicked towards the segway, so using constant speed model
  • kick bal l(passing, shooting)-- segway will kick the ball, so ready to give a ball an acceleration
  • aiming -- moving ball
  • interception -- that is grab a moving ball, moving ball model -> stop ball
- info source
  • vision
  • IR sensor
  • self motion
  • teammate comm
- implementation and experiment
  • PF(particle filter)
  • RBPF (pf + kalman filter)
  • KF
  • experiment comparing the three

Tuesday, March 01, 2005

[segway] Todos

- relations between behavior and tracking
- using tracking to help behavior
  • don't look at ball's current position, look 2-4 cycles ahead depending on speed
  • search positions with higher-weight-particle first when searching ball
- using behavior to help tracking
  • if we know we are going to kick, then give ball movement model an acceleration
  • if we are going to grab, then ball is going to be stopped below
  • IR sensor assures the ball is below
- construct a grid-based representation of the field centered at the initial ref point. Build a mapping betwen (pan, tilt) to (x, y) on that field ( this will be affected by the drift of dead-reckoning). Gradually, add visual objects onto the field (markers, teammate, ball).

- HMM? rao-blackwellised pf (bayesian network)

[segway] Tracking Report II



This tests a moving robot observing a moving ball.
Previous observation model is uncorrent. Below is the current model. I removed the external input and now the state variable x and observation variable y as well are under global coordinate. The ball decay does not work well, so we might want to replace it with just 1.0.

 
/* x(t) = A * x(t-1) + v(t-1)
* [ x1(t) ] = [ 1 0 .033 0 ] [ x1(t-1) ] + [ wx1 ]
* [ x2(t) ] [ 0 1 0 .033] [ x2(t-1) ] [ wx2 ]
* [ dx1(t) ] [ 0 0 .99 0 ] [ dx1(t-1) ] [ wdx1 ]
* [ dx2(t) ] [ 0 0 0 .99 ] [ dx2(t-1) ] [ wdx2 ]
*
* y(t) = C * x(t-1) + n(t)
* [ y1(t) ] = [ 1 0 0 0 ] [ x1(t-1) ] + [ vx1 ]
* [ y2(t) ] [ 0 1 0 0 ] [ x2(t-1) ] [ vx2 ]
* [ dx1(t-1) ]
* [ dx2(t-1) ]
*/