jsk-ros-pkg / jsk_common

common programs for jsk-ros-pkg
43 stars 81 forks source link

pddl_plannerでpddl_ffhaのmetricを有効にすると正常にresultのstep-stateが出力されない #223

Open k-okada opened 10 years ago

k-okada commented 10 years ago

This post was originally posted at http://sourceforge.net/p/jsk-ros-pkg/tickets/228

$ roslaunch pddl_planner pddl_ffha.launch

を起動して,pddlのプランニングをしたところ,metricを入れると,solve-pddl-planning関数を使って得られるresultのstep-stateが正常にでなくなります.

metricなしの場合

((at world) (not-hold broom) (not-hold cloth) (not-hold tray) (not-in cloth laundry) (on broom laundry) (on cloth chair) (on tray table) (not-open broom) (not-open chair) (not-open chair-back) (not-open cloth) (not-open laundry) (not-open room) (not-open sink) (not-open table) (not-open tray) (not-open world) (not-under chair broom) (not-under chair chair) (not-under chair chair-back) (not-under chair cloth) (not-under chair laundry) (not-under chair room) (not-under chair sink) (under chair table) (not-under chair tray) (not-under chair world))
((not-hold broom) (not-hold cloth) (not-hold tray) (not-in cloth laundry) (on broom laundry) (on cloth chair) (on tray table) (not-open broom) (not-open chair) (not-open chair-back) (not-open cloth) (not-open laundry) (not-open room) (not-open sink) (not-open table) (not-open tray) (not-open world) (not-under chair broom) (not-under chair chair) (not-under chair chair-back) (not-under chair cloth) (not-under chair laundry) (not-under chair room) (not-under chair sink) (under chair table) (not-under chair tray) (not-under chair world) (at chair))
((not-hold broom) (not-hold tray) (not-in cloth laundry) (on broom laundry) (on tray table) (not-open broom) (not-open chair) (not-open chair-back) (not-open cloth) (not-open laundry) (not-open room) (not-open sink) (not-open table) (not-open tray) (not-open world) (not-under chair broom) (not-under chair chair) (not-under chair chair-back) (not-under chair cloth) (not-under chair laundry) (not-under chair room) (not-under chair sink) (under chair table) (not-under chair tray) (not-under chair world) (at chair) (hold cloth))
...以下略

metricありの場合

((= (move-to) 10) (= (sweep) 100) (= (total-cost) 0) (aref rf0) (at world) (not-hold broom) (not-hold cloth) (not-hold tray) (not-in cloth laundry) (on broom laundry) (on cloth chair) (on tray table-side\
) (not-open-door broom) (not-open-door chair) (not-open-door chair-back) (not-open-door cloth) (not-open-door laundry) (not-open-door room) (not-open-door sink) (not-open-door table-front) (not-open-door table-side) (not-open-door tray) (not-open-door world) (not-under chair broom) (not-under chair chair) (not-under chair chair-back) (not-under chair cloth) (not-under chair laundry) (not-under chair room) (not-under chair sink) (under chair table-front) (not-under chair table-side) (not-under chair tray) (not-under chair world))
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil
nil

となって2動作目以降の状態が全てnilになります. ffha-result-parser.lのparse-ff-result関数内でのパースがうまく行ってないようなんですけど,どんな感じになっているのかよくわからないです.(pddlの出力も謎です) 誰かわかる方いませんでしょうか?

k-okada commented 10 years ago

再現する例は,jsk_2013_04_pr2_610で

metricなし

  $ roseus pddl/plan.l
  irteusgl$ (print (cdr (assoc :step-state *result*)))

metricあり

  $ roseus pddl/description.l
  irteusgl$ debug-solve
  irteusgl$ (print (cdr (assoc :step-state *result*)))

です.