cvra / robot-software

CVRA monorepo - All software running on our bots lives here
MIT License
43 stars 21 forks source link

Improve the game strategy development workflow #229

Closed SyrianSpock closed 4 years ago

SyrianSpock commented 5 years ago

We've seen a lot of improvement since we introduced the following:

We need to continue improving on our tools to make it easier to iterate over the game strategy, especially in the last few days rush. For that we need to:

antoinealb commented 5 years ago

I think it is more important to increase our strategy productivity in the early days of the strat dev rather than the last ones. In my mind the robot should have an almost working strategy (although tuning will always be required) on the day the wiring is finished. I would love to have a simulator which is complete enough to have motions on them (Gazebo).

One random idea that I had was to use the master firmware running on a real master board, but where the motor manager (and other CAN comms) could be replaced with Protobuf messages sent over UDP. Note that if we rewrite motor manager to use messagebus, we might even get there "for free" (without modifying the firmware).

image

I thought a lot about the different options, and I feel that this one is the best for the following reasons:

Note that some parameters, such as the pid configuration and so on would probably need to be re-tuned for the simulation.

I would be interested in working on the parts that are running on the master firmware. I can write some of the bridge linking Gazebo and our stack. I would definitely need help with the Gazebo setup (simulation world, robot, etc.).

antoinealb commented 5 years ago

https://wiki.ugfx.io/index.php/Remote_displays Could also be useful for some simulation ^^

lyris85 commented 5 years ago

I'm down to help deploy the middleware with Gazeboo

SyrianSpock commented 5 years ago

From a purely technical point of view, this is a good idea From a problem solving point of view, I don't see this solving many of our problems for a huge development cost. I think we gain a lot more with less simulation (just enough to prepare the game strategy, not to simulate the physics of the robot itself). I believe the critical point is stress testing the game strategy with error injections so that we can test our error handling logic, since this generates different behaviors.

antoinealb commented 5 years ago

Dont you think that this is more of a job for automated testing ?

SyrianSpock commented 5 years ago

Yes, it all needs to be automated.

antoinealb commented 4 years ago

Closing this, as we are now working on a complete simulation instead of just the strategy (under /hitl).