Conversation
|
It's an interesting idea to be able to add custom information to the record. I think the easiest way would be to modify the existing template <class Archive>
inline void serialize(Archive& ar, const unsigned int version)
{
ar& BOOST_SERIALIZATION_NVP(reached);
ar& BOOST_SERIALIZATION_NVP(goal);
ar& BOOST_SERIALIZATION_NVP(seed_state);
ar& BOOST_SERIALIZATION_NVP(goal_state);
ar& BOOST_SERIALIZATION_NVP(score);
+ if (version > 0)
+ ar& BOOST_SERIALIZATION_NVP(ik_time);
}
};
+ BOOST_CLASS_VERSION(ReachRecord, 1)Alternatively, we could try to support custom classes that inherit from |
|
Are you interested in individual solve times or statistics about the solve times? If you care more about the statistics, you could also potentially create a custom IK solver class that caches solve times (possibly mapped to Cartesian position) and extract those stats from your class after the reach study is done. That would be a less invasive change to get that type of information |
I am currently using reach to evaluate and compare different IK solvers in real-world environments. For this evaluation, it is beneficial to have the time that the IK solver took to solve the request available in the reach database. This pull request adds the IK time to the reach record.
Obviously, this pull request also changes the serialization format of the reach database. I assume therefore that you are not going to merge this pull request as is, but I would like to hear your input on whether you would be open to adding the field to the reach record and how backward compatibility could be guaranteed.
Another idea I had was that it could be an option for plugins to write custom information to the reach database. This could potentially cover more use cases than mine.