Classes | |
class | LcmBuses |
A mapping from {bus_name: interface} with sugar for error checking with nice error messages during access. More... | |
class | LcmInterfaceSystem |
LcmInterfaceSystem acts within a Diagram to allow LcmSubscriberSystem instances to receive data from the network during a simulation. More... | |
class | LcmLogPlaybackSystem |
Advances the cursor of a drake::lcm::DrakeLcmLog based on the timestamps seen the Context that is used to simulate this System. More... | |
class | LcmPublisherSystem |
Publishes an LCM message containing information from its input port. More... | |
class | LcmScopeSystem |
LcmScopeSystem provides the ability to convert any vector output port to a simple LCM message and publish that message periodically. More... | |
class | LcmSubscriberSystem |
Receives LCM messages from a given channel and outputs them to a System<double>'s port. More... | |
class | Serializer |
Serializer is specific to a single LcmMessage type, and translates between LCM message bytes and drake::Value<LcmMessage> objects. More... | |
class | SerializerInterface |
SerializerInterface translates between LCM message bytes and drake::AbstractValue objects that contain LCM messages, e.g., a Value<lcmt_drake_signal>. More... | |
Functions | |
LcmBuses | ApplyLcmBusConfig (const std::map< std::string, drake::lcm::DrakeLcmParams > &lcm_buses, systems::DiagramBuilder< double > *builder) |
Given LCM bus names and parameters, adds an LcmInterfaceSystem within the given diagram builder for each bus, and returns an LcmBuses object that provides access to the drake::lcm::DrakeLcmInterface objects that were created. More... | |
LcmBuses | ApplyLcmBusConfig (const std::map< std::string, std::optional< drake::lcm::DrakeLcmParams >> &lcm_buses, systems::DiagramBuilder< double > *builder) |
Given LCM bus names and (nullable) parameters, adds an LcmInterfaceSystem within the given diagram builder for each bus, and returns an LcmBuses object that provides access to the drake::lcm::DrakeLcmInterface objects that were created. More... | |
drake::lcm::DrakeLcmInterface * | FindOrCreateLcmBus (drake::lcm::DrakeLcmInterface *forced_result, const LcmBuses *lcm_buses, DiagramBuilder< double > *builder, std::string_view description_of_caller, const std::string &bus_name) |
(Advanced) Returns an LCM interface based on a convenient set of heuristics. More... | |
LcmBuses drake::systems::lcm::ApplyLcmBusConfig | ( | const std::map< std::string, drake::lcm::DrakeLcmParams > & | lcm_buses, |
systems::DiagramBuilder< double > * | builder | ||
) |
Given LCM bus names and parameters, adds an LcmInterfaceSystem within the given diagram builder for each bus, and returns an LcmBuses object that provides access to the drake::lcm::DrakeLcmInterface objects that were created.
Because the interfaces live within the builder (and so eventually, the diagram), the diagram will pump the interfaces when it's used with a simulator. Refer to the LcmInterfaceSystem documentation for details.
The interface pointers remain owned by the builder; the LcmBuses object merely aliases into the builder (and then eventually, the diagram).
lcm_buses | A map of {bus_name: params} for LCM transceivers, to be used by drivers, sensors, etc. |
LcmBuses drake::systems::lcm::ApplyLcmBusConfig | ( | const std::map< std::string, std::optional< drake::lcm::DrakeLcmParams >> & | lcm_buses, |
systems::DiagramBuilder< double > * | builder | ||
) |
Given LCM bus names and (nullable) parameters, adds an LcmInterfaceSystem within the given diagram builder for each bus, and returns an LcmBuses object that provides access to the drake::lcm::DrakeLcmInterface objects that were created.
Because the interfaces live within the builder (and so eventually, the diagram), the diagram will pump the interfaces when it's used with a simulator. Refer to the LcmInterfaceSystem documentation for details.
The interface pointers remain owned by the builder; the LcmBuses object merely aliases into the builder (and then eventually, the diagram).
As a special case, the user can opt-out of LCM either by passing nullopt
as the drake::lcm::DrakeLcmParams, or by setting the URL within the DrakeLcmParams to LcmBuses::kLcmUrlMemqNull. In that case, only a drake::lcm::DrakeLcmInterface object will be created (not a full LcmInterfaceSystem), and the LCM messages will not be pumped.
lcm_buses | A map of {bus_name: params} for LCM transceivers, to be used by drivers, sensors, etc. |
drake::lcm::DrakeLcmInterface* drake::systems::lcm::FindOrCreateLcmBus | ( | drake::lcm::DrakeLcmInterface * | forced_result, |
const LcmBuses * | lcm_buses, | ||
DiagramBuilder< double > * | builder, | ||
std::string_view | description_of_caller, | ||
const std::string & | bus_name | ||
) |
(Advanced) Returns an LCM interface based on a convenient set of heuristics.
If the forced_result
is non-null, then returns forced_result
and does nothing else.
Otherwise, if lcm_buses
is null and bus_name
is "default", then creates a new DrakeLcm object owned by the builder
and returns a pointer to it.
Otherwise, if lcm_buses
is null, then throws an exception.
Otherwise, returns the lcm_buses->Find(description_of_caller, bus_name)
which might throw if there is so such bus_name
.
The return value is an alias into memory owned elsewhere (typically by a DiagramBuilder or a Diagram) and is never nullptr.
forced_result | can be null |
lcm_buses | can be null |
builder | must not be null |