LARG / HFO

Half Field Offense in Robocup 2D Soccer
MIT License
231 stars 93 forks source link

Low-level feature space lacks uniform numbers (needed for high-level actions); possible fix #28

Closed drallensmith closed 7 years ago

drallensmith commented 7 years ago

Hi. I'm interested in creating an agent that will use the low-level feature space, but - at least at the start - will use the high-level actions. However, two of those actions, Pass and Mark, require uniform numbers - which are not included in the low-level feature space, despite that uniform numbers do not seem to qualify as giving further analysis like the various angles in the high-level feature space.

It would seem the best way to do this would be by adding an additional level in common.hpp (HIGH_LEVEL_PLUS_UNUMS_FEATURE_SET, perhaps), and use this to request a modified version of the low-level feature space via agent.cpp. I am currently considering modifying lowlevel_feature_extractor.cpp (and .h) to add a provide_unums boolean parameter with a default of false (the default being to avoid breaking existing programs such as sample_agent.cpp). Is this the best way to do this, or is there something I am missing (C++ is not a language I program in frequently, to put it mildly)?

Thanks,

-Allen

mhauskn commented 7 years ago

I think it's reasonable to add uniform numbers as a part of the the low-level state space. (I'd prefer avoid having too many choices for different feature sets.) To minimize breakage to current agents, teammate & opponent unums can be added after all the existing features.

Code for grabbing unum can be seen in high level feature set: https://github.com/LARG/HFO/blob/master/src/highlevel_feature_extractor.cpp#L148

drallensmith commented 7 years ago

Ok, will do.

-Allen