Our finished solution was able to exceed our design criteria. We were able to complete our MVP, and worked on additional research to optimize the parts of our algorithm that constituted the MVP. We were also able to extend our original goals, by implementing a 3v3 soccer with dynamic role reassignment (with the roles aggressor, wingman and goalie), improved passing and path-planning, and better logic.
Additionally, we spent time experimenting with additional features for our project besides path-planning, control and strategy, including computer vision from robot sensors and an overhead camera, model-predictive control for path tracking, and additional soccer roles, enabling progress on a fully end-to-end, partially decentralized and fully autonomous soccer game.
There were several difficulties that we faced throughout this project. We had to spend a while understanding and testing various parts of the simulator as the documentation was very limited. The transferring of the path planning algorithms from the grid-world to real-time in the simulator was usually involved, requiring modification of the logic, code refactoring, and hyperparameter tuning. Additionally, the fine-tuning of many functionalities, such as passing and dynamic role assignment was difficult, but we were able to learn a lot by conducting smaller tests and watching them generalize.
While our path planner is ideal in the sense of computation speed, the overall motion is unnatural (straight line paths) and suboptimal (e.g. random motion near obstacles). To correct these issues, we would implement a more robust planning scheme. One promising approach to this problem is the subtargets and B-spline algorithm [1]. This algorithm generates a set of via-points (points that can be connected with straight lines) between the robot and target position, generates a smooth path between them with B-spline interpolation, and converts the geometric path to a robot trajectory by considering a feed-rate profile and kinematic constraints of the robot. Though this method is more complex than the one chosen, the computation speed is still very fast, so it is well-suited to be used in a dynamic environment.
There are many flaws that arise in a simulated environment such as this one. For example, there is no noise in the sensors for the sim, which doesn't reflect real life. Therefore adding a higher level PID in a real life system would be necessary. The passing strategy has some room for improvement as well -- the goalie passing logic is simpler than the passing logic for the two attacking robots, and could be modified. Based on what Professor Sastry mentioned during the final presentation, additional strategies could be implemented that use deep learning algorithms or databases in a more generalized manner to produce far different soccer games each iteration. Additionally, a more robust path planning algorithm, taking into account MPC or another path tracking algorithm, would allow for smoother trajectories and potentially "predict" the location of the other robots. Another improvement could be adding more robots, along with other states, etc. as the sim supports up to 5 vs. 5. Computer vision could be used to decentralize the system further. If we had more time, then we would be able to implement computer vision and MPC quickly because we have already made progress on those tasks.