Using newest version of DSOL. Removing several classes for OTSSimulator as these are perfectly covered using DJUNITS by DSOL 3.02 and up. Updating all used jars to the latest version. Updating all Maven packages to the latest version. The mocking package jmockit meeds to set agent-injections for junit tests in the latest version. Therefore jmockit has been replaced by Mockito + Powermock (also known as PowerMockito). The mocking structure for the tests had to be adapted to this new structure. As log4j2 is quite complicated to configure, it has been replaced by the faster and smaller tinylog package. As a result of the above updates, around 3000 smaller and larger changes had to be made to the code base. Site structure and Velocity files changed to comply with the latest maven-site plugin. OTS-331. Change ParameterTypes to referenced Types. OTS-337. RoadSampler that starts for t>0s may give a NullPointer OTS-333. Create interface for getId() OTS-332. Make GTUType and LaneType hierarchal OTS-345. Create utility to apply an OD matrix on the network OTS-346. Streamline parameter creation using factories OTS-347. Create Generator<O> for constant values OTS-349. Provide default GTUCharacteristics for GTUTypes OTS-350. Acceleration <-10m/s^2 at vehicle generation with LMRS OTS-353. Markov chains in vehicle generation OTS-352. Division of origin demand over multiple links and lanes OTS-354. Remove initial speed and position from LaneBasedGTUCharacteristics OTS-358. Different simulation outcome in debugger mode OTS-359. Add origin and destination to strategical planner OTS-360. Clean up GTU Renderable2D raw code OTS-361. No lane change distance in LaneBasedGTUGenerator and ODOptions OTS-147. Tactical planner methods for GTU generation OTS-355. Tools for perception in the recent past OTS-364. Dynamic LaneStructure OTS-365. Historical Collections OTS-366. Iterable perception OTS-372. Add detector OTS-373. GTU initialization; events and operational plan OTS-374. Gradual lane changes and exact lane and sensor events OTS-375. Add lane choice at split function to tactical planner OTS-376. Offset at start and end for all cross-section elements OTS377. Add YIELD and TOR to priority OTS378. Allow demand to be split over several connectors OTS380. GTU-Lane connections with instantaneous lane changes OTS-126. Add class for a speed sign. OTS-156. Make conflicts GTUType dependent. Priority at conflicts may depend on the GTUType, e.g. at some conflicts, trams have absolute priority over cars, but cars may behave according to a right-has-priority rule. OTS-217. Initial operational plans and lane changes. In some cases, tactical planners should not create an operational plan containing a lane change. E.g. filling the network at t=0, some surrounding GTUs may not yet be generated. OTS-319. Alignment with DJUNITS 3.00. Units for absolute and relative values have been separated. They are truly different and should never have been mixed. As an example, an AbsoluteTemperature of 10 degrees Celsius has an offset of 283.15 Kelvin from absolute zero. A relative temperature of 10 degrees Celsius, however, is equivalent to 10 Kelvin, and does not have any offset. The same holds for Direction, Time, and Position. This has quite some effects on the code, as TimeUnits in Durations had to be replaced with a DurationUnit. Same for Directions that now have their own DirectionUnit (e.g., NORTH_RADIANS: radians relative to NORTH, or EAST_DEGREES:degrees relative to EAST). Time can be stated relative to the POSIX Epoch (1-1-1970), AD 1, or the J2000.1 Epoch. OTS-320. SpeedSign ENDOFDAY OTS-321. AIMSUN classes have to go into ots-aimsun project. ots-aimsun for aimsun classes on the OTS side. ots-aimsun-demo for demos with aimsun classes. ots-aimsun-proto for proto files and generated classes. The last one is important to separate because of suppression of javadoc and formatting error messages because of checkstyle. OTS-325. Toledo demos complain about missing TacticalPlanner OTS-327. Demo Crossing with Traffic Lights has a casting error. There was still a reference to the TimeUnit in the typed distributions, where a DurationUnit should have been used. This has been solved in all four typed Distributions. OTS-328. TRAFCOD2 demo does not start anymore. To make the registration work better in the OTSNetwork, the name of any registered object should be unique within a lane. In order to make a) inspecting ids easy, while b) still registering full ids with a cross section name and a cross section element name, the method getFullId() has been added in addition to getId(). When displaying objects, getId() is used. When registering objects, getFullId() is used. OTS-329. N201 XML Parser demo throws error. All sensor, trafficlight, and sensor objects in XML files have to be globally unique in the network. N201v8.xml in the ots-parser-xml project test has been updated to make the names of Lane objects unique. OTS-330. Directions not interpreted correctly when parsing. This was caused by the fact that the DirectionUnit uses NORTH_RADIANS as the BASE, and EAST_RADIANS is -90 degrees rotated with respect to NORTH_RADIANS. Instead of using getSI() or .si for the direction, getInUnit() should be used in Links.java. Updated to DJUNITS version 3.00.01. OTS-269. Settable deletion of GTU's if in trouble. OTS-265. BLOCK should have a cloneable class and should have animation capabilities. OTS-263. Fixed bug in detection of intersecting lines (shapes). OTS-273. XML parser parsed wrong value for use as Z-coordinate. OTS-279. Added BusStop. OTS-280. Added BusSchedule. OTS-277. Removed LaneBlock. OTS-295. PRIORITY added to LINK tag in xml parser. OTS-299. Method projectedPosition was actually translatedPosition; method name fixed. Added new method projectedPosition. OTS-297. DJUNITS version 2.01.03 used. Scalars in SI units with the exception of Money scalars can now be created with e.g., Length len = Length.createSI(5.0). OTS-298. DJUNITS version 2.01.03 used. Constants NaN, POSITIVI_INFINITY, NEGATIVE_INFINITY, POS_MAXVALUE and NEG_MAXVALUE have been added to scalars, with the exception of Money scalars. OTS-278. Scheduled busses and bus stops. OTS-316. Allow non default GTU colorers in visualization. OTS-267. Researched parallelization of the gtu's move() method and provided options for synchronized update of the GTU's positions as well as position caching. Updated to DJUNITS version 2.02.00 and DSOL version 3.01.05. OTS-156. Make conflicts GTUType dependent. OTS-246. Demo model XMLNetworks merge with LMRS throws error. OTS-250. Interaction conflicts and traffic lights. OTS-251. Memory leak in simulation when GTUs leave the system. DefaultCarAnimation object changed. OTS-252. GTUs do not have a hashCode function OTS-253. Memory leak in infrastructure animation after cloning. Extra functions in OTSNetwork to clone and destroy networks. OTS-254. ToggleAnimationButtons should be aligned to the left. OTS-255. As a result of update OTS-253, the constructor of the OTSLink and CrossSectionLink have changed to include the simulator. Default jog4j-2 configuration file added. Updated to use DSOL version 3.01.03, which allows to override the Renderable2D.destroy() function. OTS-244. OTSNetwork.shortestPath does not calculate shortest route when direction is BOTH. OTS-245. Several methods of AbstractGTU and AbstractLaneBasedGTU should be declared non-final to allow extensions. OTS-242. Repair of Bezier curve. toString() methods added to several classes in ots-core. Throw.when(...) added to constructor of Distribution.java. Unit tests added for several classes in ots-core. Hierarchical GTUType class. OTS-235: Arc with variable radius. OTS-236: Bezier SHAPE and control points limited to intersection of control lines. OTS-237: Clone of CrossSectionLink added CrossSectionElements twice. OTS-238: GTU should not immediately change lane on initialization with the DirectedLaneChange tactical planner. OTS-239: Time to not change lanes after a lane change with the DirectedLaneChange tactical planner should be settable. OTS-240: The threshold distance for differences between initial locations of the GTU on different lanes should be settable. OTS-64: LMRS - Relaxation. OTS-65: Level of lane change desire by other drivers. OTS-66: Relaxation response to lane change in front. OTS-200: Implement TrafCOD traffic controller. OTS-214: TrafficLight implementation for car following + instantaneous lane change model. OTS-215: TrafficLight implementation for LMRS. OTS-218: Automatically register LaneBasedObject on their Lane. OTS-219: Store the GTUs that trigger a Sensor in the Sensor and not in the Lane. OTS-221: Bring back LaneBasedGTUFollowingDirectedChangeTacticalPlanner. OTS-222: Z-order drawing. OTS-223: Repair parsing for ARC. OTS-224: Allow for selection of layers in animation. OTS-225: Provide default zoom for animation, and fix zoomAll method. OTS-226: Allow animation of ids for Node, Link, Lane, Sensor, TrafficLight, and GTU. Moved ImmutableCollections to DSOL version 3.01.01. Updated to use DSOL version 3.01.01. OTS-87 Implement mandatory incentives for LMRS. OTS-88 Implement voluntary incentives for LMRS. OTS-160 Categorize perception. OTS-216 Added neg() function to djunits and updated djunits in ots to version 2.01.01. OTS-213 Change SimpleWeightedGraph in OTSNetwork into SimpleDirectedWeightedGraph OTS-214 TrafficLight implementation for car following + instantaneous lane change model OTS-215 TrafficLight implementation for LMRS OTS-106 Traffic lights as separate objects that can be observed instead of a 'fake' GTU OTS-181 Observable object hierarchy OTS-174 Retrieve network saved with xstream for a new simulation OTS-151 Simplify registration of GTU on lanes OTS-209 DJUNITS Scalars should import Comparable individually OTS-210 GTU to handle its own instantaneous lane change OTS-211 GTU should be able to provide its reference position Separate project 'ots' to act as the root instead of ots-base as ots-base now contains code OTS-104 XML parser dependent on order of parsing OTS-115 Repair error with lane direction in parser while link direction not yet set OTS-128 Add ROADCLASS definition in XML and as element under ROADTYPE OTS-177 Make a list of changes based on JIRA sprints in POM file OTS-179 OD Matrix class OTS-180 IMB Callback for SimSmartMobility OTS-173 Add events for adding/removing and for triggering of sensors OTS-182 Links and Nodes should automatically be added to a Network OTS-183 Simplify IMB connection in OTS demos OTS-184 SimSmartMobility: SimulationTransceiver: add comments about payload OTS-185 SimSmartMobility: IMB NetworkTransceiver OTS-186 SimSmartMobility: IMB NodeTransceiver OTS-187 SimSmartMobility: IMB LinkGTUTransceiver OTS-188 SimSmartMobility: IMB LaneGTUTransceiver OTS-189 SimSmartMobility: IMB GTUTransceiver conform SSM v1 standard OTS-190 IMB SensorGTUTransceiver OTS-192 XML parser has to be adapted to latest changes in the way a network is built OTS-193 Sampling framework to calculate KPIs OTS-194 ImmutableCollections have to be updated OTS-84 Demo simulations don't check for sufficient headway. OTS-148 Direction should not implement >, >=, <, <=. OTS-150 min and max functions for djunit scalars. OTS-154 getLength() in Headway. OTS-155 Add split as merge type. OTS-158 Method to add default values of parameters defined in given class. OTS-159 Add first offramp info in perception. OTS-161 Replace Velocity by Speed in all code. OTS-163 Save network with xstream. OTS-164 POLYLINE element for LINK in XML. OTS-165 Tidy up XML definitions. OTS-169 Split ots-road project: separate projects for the different parsers. OTS-171 Create separate ots-imb project. OTS-172 Pub/sub between GTU, Lane and Graphs. OTS-107 Unit test verifies equals(), hashCode(), toString(), Serializable. OTS-111 DJUNITS names of Abs quantities. OTS-116 Animation objects not shown after toString() changes in OTS. OTS-118 Change Velocity to Speed in GTU methods. OTS-120 Create a getCenter() method in all GTUs. OTS-123 Exception.throwIf() method to separate class. OTS-131 Add class for speed limit types with static defaults and uniqueness. check OTS-133 Add utility class for tactical planners for current active speed limit. types OTS-134 Add interface for perception with common lane change and car-following. info OTS-135 Throw.when cannot throw Exceptions that can be internally thrown. OTS-137 Immutable collection classes. OTS-138 Implement GTUType as a Type. OTS-139 LinkType and LaneType should become Types. OTS-17 Zoom whole network, zoom to home extent, toggle grid on/off. OTS-50 Mouse-centered zoom in animation panel. OTS-55 Some demos don't check room for generated GTUs. OTS-63 Display x and y coordinates on animation screen. OTS-89 Runtime error in dsol repaint. OTS-90 Play and pause buttons should be merged. OTS-101 Create list of driver characteristics. OTS-102 New implementations of IDM and car-following interface. OTS-103 Create a runUpToAndIncluding method for the dsol DEVSSimulator. OTS-108 New implementation of headway algorithms. OTS-109 Link new algorithms to RTI software for Nissan. OTS-76 Circular road demo gives errors around simulation time 10 minutes. ots-core: Perception added. ots-core: OperationalPlan, TacticalPlanner, and StrategicalPlanner added. ots-core, ots-road: All GTUs are free ranging; Lane-based behavior is just a constraint.