Going back on the experience on the Space Robotics Challenge, one thing that strikes me is how close we were to a great result, but something was still missing to be among the top teams.

A task in the target sim environment

The winning team apparently solved this by using a 2d simulation. As a matter of fact I actually worked on a 2d simulator aiming to simplify the testing of high level behavior. However we unfortunately abandonned it fairly early. As the complexity of the solution increased, there were needs to increase the complexity of the 2d sim as well, and we didn't take the time to do it. It ended up unmaintained and unused. So we had to use the full sim.

Our 2d sim

Another aspect that we missed automated testing, used by multiple winning teams. One reason we didn't set it up is that it was difficult to set up useful monitoring for efficiently debug as it is painful and time consuning to watch replays. Moreover, it is not necessarly easy to define tests. For software unit tests we can usually check a result after a it ends. But for robotics, what does 'ended' means? elapsed time? when the robot thinks he succeeded?

I think some further tooling for testing would be welcome, while the ROS ecosystem, and in particular RVIZ and rosbags are very valuable, they may not be enough.