You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

The Middleware coordinates the communication with the DDS domain of the vehicle, LCC and further participants with the HLC. It is responsible for sending timed pre-aggregated vehicle information to the HLC which can be interpreted as a start signal for starting the computation using this data, and it sends the commands generated by the HLC as a reaction to this start signal to the vehicles. Any timing task is performed by the Middleware, so period and offset for the interaction with the HLC are set here (and can be set when starting the application using command line parameters).  The HLC is informed about the current time, in case that is necessary for its own computations.

The application also manages further internal timing according to the current simulated and real time, propagating the LLC's start and stop signals and waiting for the HLC to finish its computation in the simulated case.

Command Line Parameters

Parameter Usage Example

./middleware --vehicle_ids=1,7,8 --node_id=middleware --wait_for_start=true --dds_domain=1 --simulated_time=false

Important parameters

  • node_id: Identification string of the middleware instance in the DDS network
  • period_nanoseconds: Length of each period in which the HLC is triggered, in nanoseconds
  • simulated_time: True if the current setup uses simulated time, else false
  • wait_for_start: Whether the middleware should wait for the LCC's start signal, should be true (false only for debugging purposes)
  • vehicle_ids: IDs of the vehicles the HLC(s) that the middleware 'controls' are responsible for (usually just one ID)
  • dds_domain: Domain ID of the domain in which the LCC, vehicle etc. participate
  • domain_number: Local domain ID of the middleware and the HLC
  • dds_initial_peer: Should be explained in Lab Control Center - Usage (TODO)

Other parameters

  • offset_nanoseconds: Set the offset of the communication w.r.t. ~1970 (TODO, real time) or 0 (simulated time); should usually not be changed
  • use_param_server: Irrelevant parameter, false is default (true currently not required, would break the middleware)
  • log_topic: Topic name of the logging topic (logs that are collected by the LCC)
  • hlc_state_topic: Topic name of the vehicle state list topic for the vehicle information sent to the HLC
  • vehicle_state_topic: Topic name of the vehicle states sent by the vehicles
  • hlc_trajectory_topic: Topic name of the trajectory commands sent by the HLC
  • vehicle_trajectory_topic: Topic name of the trajectory commands sent to the vehicles
  • hlc_speed_curvature_topic: Topic name of the speed curvature commands sent by the HLC
  • vehicle_speed_curvature_topic: Topic name of the speed curvature commands sent to the vehicles
  • hlc_direct_topic: Topic name of the direct control commands sent by the HLC
  • vehicle_direct_topic: Topic name of the direct control commands sent to the vehicles

Scripts

Different scripts have already been written to test and deploy the middleware together with all necessary libraries and a matlab program on the local or other machines. These scripts can be found in ./Middleware/remote and ./Middleware/local.

  • No labels