Assignment 3 description

In Assignment 3, all problems are set in a Maze of the same type as Assignment 1. 

The unity project, that can be found here:

You will solve two problems (P1, P2). Each problem is setup in a different "Scene" of the project. For each problem, you need to solve it using both Cars and Drones (drones have the same motion model as Assignment 1, but shaped as pill to improve visibility and collision detection).

 

Problem P1: Multi agent collision avoidance

This problem is relevant for autonomous driving as well as robotics and computer AI.

A large number of agents start in a given environment and are to reach their individual goal point as fast as possible. There are two terrains

  • terrainAA (an intersection)
  • terrainBB (an open square)
  • terrainCC (unstructured obstacle positions)

intersection.png

open_space.png

For each terrain, you can either have the car start and goal positions in a circle, as above, or randomly positioned. Your design should handle all three terrains, in both random/non-random configurations.

Problem P2: Multi agent car/drone-soccer

This problem is relevant for sports AI.

soccer_debug.png

In the soccer problem you are supposed to push or kick the ball into the goal of your opponents. There is a "kick" action that adds a velocity of choice to the ball, if it is close enough to the agent, to enable a good passing game. To prevent agents from kicking the ball out of the arena, the allowed velocities are only in the xz-plane, and cars are not allowed to kick towards themselves (deliberatively trying to get rid of the ball in some other way is not allowed). For debug purposes the default AI draws lines to the ball, goals, opponents, friends etc with different colors. There you can see how to access different objects.

default_strategies.png

The default strategies are to cluster at the own goal for red, and chase the ball for blue. These are obviously stupid, but serve as examples.

score_keeping.png

The score keeping and match clock are handled by the GameManagerSoccer.

In order for you to be able to compete agains the other teams, the soccer code can be compiled and run in a Client/Server mode, so you can share your design with other teams without sharing your source code. More details on this can be found in the Readme.MD file in the same folder as the rest of the unity code.

Note that the Client/Server mode induces some small delays between your code, and the agents it controls. This is similar to a real robot being controlled by software. So be sure to design your software code so it runs well in the Client/Server mode, not only in the Host mode (having much smaller time delays). The final competition will run in the client/server mode.

Progress report

The same routine as last assignment. Use this Google Sheet. Links to an external site. 

Sources of inspiration

  • Tan, R., & Kumar, M. (2013). Proportional navigation (PN) based tracking of ground targets by quadrotor UAVs. In ASME 2013 Dynamic Systems and Control Conference. American Society of Mechanical Engineers Digital Collection.
  • Reynolds, C. W. (1987, August). Flocks, herds and schools: A distributed behavioral model. In Proceedings of the 14th annual conference on Computer graphics and interactive techniques(pp. 25-34).
  • Van den Berg, J., Lin, M., & Manocha, D. (2008, May). Reciprocal velocity obstacles for real-time multi-agent navigation. In 2008 IEEE International Conference on Robotics and Automation (pp. 1928-1935). IEEE.
  • Snape, J., Van Den Berg, J., Guy, S. J., & Manocha, D. (2011). The hybrid reciprocal velocity obstacle. IEEE Transactions on Robotics, 27(4), 696-706.
  • Xu, Xiao, Cassandras (2022) Feasibility Guaranteed Traffic Merging Control Using Control Barrier Functions Links to an external site.
  • Behavior Tree stuff
  • ... and whatever sources you might find...