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

Compare with Current View Page History

« Previous Version 32 Next »

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 Command Line Parameters

  • node_id: Identification string of the middleware instance in the DDS network
  • 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_id: Single ID of a vehicle the middleware is supposed to be responsible for
  • vehicle_ids: IDs of the vehicles the HLC(s) that the middleware 'controls' are responsible for (usually just one ID)
  • vehicle_amount: Set amount of vehicles instead of vehicle ID, sets IDs 1 - vehicle_amount (restricted to 256)
  • 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) 

Important ParameterServer Parameters

  • middleware_period_ms: Length of each period in which the HLC is triggered, in milliseconds

Other Command Line parameters

  • offset_nanoseconds: Set the offset of the communication w.r.t. ~1970 (real time) or 0 (simulated time); should usually not be changed

Communication between HLC and Middleware

The IDL type for the DDS communication of HLC and middleware is mentioned here and located here: https://git.rwth-aachen.de/CPM/Project/Lab/software/blob/master/hlc/middleware/idl/VehicleStateList.idl

Further communication includes the propagation / exchange of start and stop signals. All relevant data types are e.g. used in the init script for Matlab, which is mentioned in the Matlab section.

What the HLC scripts need to include

  • Send a ReadySignal message after initialization - only the ID string matters, which must be of the form "hlc_" + vehicle_id, where the latter is the ID of the vehicle the HLC is responsible for
  • Receive VehicleStateList messages, which include the current states and observations of the vehicle as well as the current time - this signal is supposed to be the start signal for the HLC, so computation should start using this data after the message was received. The history for this signal is set to 1, but you may still get an outdated signal here if you missed a period during your computation and read the next VehicleStateList in the middle of that next period. In that case, it may be better to skip that period as well and wait for the following one to start.
  • Send vehicle command messages as a result of the communication including the vehicle ID to the Middleware, which propagates these to the vehicle
  • React to stop signals sent by the LCC and propagated to the HLC by the Middleware

TODO: Mention IDL type / what it does / what the middleware expects, refer to Matlab tutorial






  • No labels