code: public HashMap<Integer,ArrayList<TrajectoryEnvelope>> createEnvelopes(int firstRobotID, long durationFirstParking, long durationLastParking, Coordinate[] footprint, Trajectory ... trajectories) {
  
  		HashMap<Integer,ArrayList<TrajectoryEnvelope>> ret = new HashMap<Integer, ArrayList<TrajectoryEnvelope>>();
  		
  		for (int i = 0; i < trajectories.length; i++) {
  			ArrayList<TrajectoryEnvelope> oneRobot = makeEnvelope(i+firstRobotID, durationFirstParking, durationLastParking, trajectories[i], footprint);
  			ret.put(i+firstRobotID, oneRobot);
  		}		
  		return ret;
  	}
docs: Create a trajectory envelope for each given {@link Trajectory}. Robot IDs are assigned starting from the given
  integer. This method creates three envelopes for each {@link Trajectory}:
  the main {@link TrajectoryEnvelope} covering the path; one {@link TrajectoryEnvelope} for the starting position
  of the robot; and one one {@link TrajectoryEnvelope} for the final parking position of the robot. The three envelopes
  are constrained with {@link AllenIntervalConstraint.Type#Meets} constraints. The two parking envelopes have a given duration.
  @param firstRobotID The starting robot ID.
  @param durationFirstParking The duration of the first parking {@link TrajectoryEnvelope}.
  @param durationLastParking The duration of the final parking {@link TrajectoryEnvelope}.
  @param footprint Coordinates representing the footprint of the robot.
  @param trajectories The {@link Trajectory}s over which to create the {@link TrajectoryEnvelope}s.
  @return A mapping between robot IDs and the newly created sets of {@link TrajectoryEnvelope}s.