When translating the attached domain and problem files, the following error occurs:
Traceback (most recent call last):
File "/home/batman/code/downward/trunk/downward/translate/translate.py", line
383, in <module>
sas_task = pddl_to_sas(task)
File "/home/batman/code/downward/trunk/downward/translate/translate.py", line
301, in pddl_to_sas
task.init, goal_list, actions, axioms, task.use_min_cost_metric)
File "/usr/lib/python2.5/contextlib.py", line 33, in __exit__
self.gen.throw(type, value, traceback)
File "/home/batman/code/downward/trunk/downward/translate/timers.py", line
32, in timing
yield
File "/home/batman/code/downward/trunk/downward/translate/translate.py", line
301, in pddl_to_sas
task.init, goal_list, actions, axioms, task.use_min_cost_metric)
File "/home/batman/code/downward/trunk/downward/translate/translate.py", line
244, in translate_task
goal_pairs = translate_strips_conditions(goals, strips_to_sas, ranges,
mutex_dict, mutex_ranges).items()
File "/home/batman/code/downward/trunk/downward/translate/translate.py", line
71, in translate_strips_conditions
conditions, mutex_dict, mutex_ranges) is None:
File "/home/batman/code/downward/trunk/downward/translate/translate.py", line
42, in translate_strips_conditions_aux
for var, val in dictionary[atom]:
KeyError: <pddl.conditions.Atom object at 0xb7adb60c>
I did some digging around, and found that the atom that causes this problem is
non-fluent (does not change), and is therefore not in the dictionary, but it
does appear in the goal.
By adding a check if the atom is in the dictionary before the line that causes
the exception I was able to complete translation, but I am not sure if this is
correct.
|