Assignment 2 description
In Assignment 2, all problems are set in a Maze of the same type as Assignment 1.
However, now there are a large set of cars/drones in the same environment, with different goal locations.
The unity project, that can be found here: Gits
You will solve two problems (P1 and P2). Each problem is setup in a different "Scene" of the project.
- P1 Traffic Car
- P2 Traffic Drone
The vehicles: Cars and Drones
The vehicles are basically the same as in Assignment 1, but to keep the focus on coordination, we limit the top speed of the car (making it less important to device super smooth trajectories to avoid skidding) and provide less cluttered maps. Furthermore, to make the drones visible from afar, we swap change their skins into capsules, see figure below. The yellow areas are goal positions and the gray areas are start positions.
Details on the Problems
In these problems there is a set of agents (cars/drones), each having a separate goal position. The problem is to minimize the time until all agents have passed their respective goal positions (goals turn blue when completed).
The motivation for P1 and P2 is given by it's similarity to a wide range of scenarios involving robots or autonomous vehicle that share workspace with each other, and sometimes also humans. Reaching a goal without collisions with other agents is very important.
There is a variation of the problem that we call "bakery". In those maps the vehicles are divided into teams (bakery companies) with each team having a set of goal positions (customers) that can be served by any vehicle in the team. The challenge of deciding who goes where is not added on top of the problem. Note that one bakery car can serve several customers.
Depending on the maps, the traffic problem can bring quite different challenges. We will now present a set of maps that your agent can encounter. All of these can be found in the Assets/StreamingAssets/Text/Maps folder, and loaded using the MapManager object, just as in Assignment 1.
- terrain_open (possible collisions from all angles, no static obstacles)
- terrain_open_blocks (possible collisions from all angles, including static obstacles)
- terrain_intersection (all agents converge to a four way intersection, possible collisions from 90, 180, 270 degrees directions)
- terrain_highway (all agents must squeeze through a bottle neck, forcing alignment with vehicles moving in roughly the same direction)
- terrain_onramp (similar to highway, but with some agents coming in at 45 degree angle, like a highway onramp)
- terrain_bakery (in this map, there are teams and goal-groups, as described above).
- terrain_city_bakery (same as a above, with an intersection type map)
The illustrations below show the different terrains.
terrain_open
All agents are positioned in a ring, with their goal on the opposite side. Note that there is a "cheating" solution to this configuration that involves running all agents after each other in a circle. This is not allowed!
terrain_open_blocks
Same start and goal, but with some static obstacles.
terrain_intersection
The positions of the goal locations will force most vehicles to pass the four-way intersection in the middle.
terrain_highway
All vehicles need to pass the narrow gap. Aligning traffic through the gap as a highway might be reasonable.
terrain_onramp
Two streams of vehicles need to merge, in a way similar to a highway onramp.
terrain_bakery
Now the vehicles are divided into teams (one team illustrated with blue lines in the figure) and each team has a set of goals that can be completed by any vehicle in the team (illustrated by red lines in the figure). This captures the situation where a bakery has a number of delivery vehicles that must pass a number of customers.
terrain_city_bakery
This map contains four bakeries, all happening to have their customers in the other part of town.
The file "AIP1TrafficCar.cs" includes examples of how to access "targetObjects", "teamVehicles" and "m_OtherCars", including a set of booleans in the Inspector that can be used to draw the blue/red lines shown in the figures above.
As before, the overall completion time is shown in the GameManager, and this is the time you should strive to make as small as possible.
Progress report
The same routine as last assignment. Use this Google Sheet Links to an external site..
Links
Links/references to possibly (you decide) interesting material (see also the slides of Lecture 3)
- Chapter 7.2.2 "Decoupled Planning" in LaValle Planning Algorithms Links to an external site.
- M. A. Erdmann and T. Lozano-P ́erez. On multiple moving objects. Algorithmica, 2:477–521, 1987.
- Obstacle Avoidance in Formation Links to an external site.
- A Control Scheme for Improving Multi-Vehicle Formation Maneuvers Links to an external site.
- 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.
- Cooperative Control of Mobile Sensor Networks: Adaptive Gradient Climbing in a Distributed Environment Links to an external site.
- 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 FunctionsLinks to an external site.
- Behavior-based formation control for multirobot teams Links to an external site.
- ... and whatever you can find in Google Scholar... (and elsewhere)