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

Compare with Current View Page History

« Previous Version 27 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 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)
  • 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) (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

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

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. Make sure to ignore signals received during computation, if that takes longer than a single period
  • 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