chrono::ros::ChROSBodyHandler Class Reference

Description

Publishes pose, twist, and acceleration information for a ChBody.

Creates three publishers: [topic]/pose, [topic]/twist, [topic]/accel

#include <ChROSBodyHandler.h>

Inheritance diagram for chrono::ros::ChROSBodyHandler:
Collaboration diagram for chrono::ros::ChROSBodyHandler:

Public Member Functions

 ChROSBodyHandler (double update_rate, std::shared_ptr< ChBody > body, const std::string &topic="~/")
 
virtual bool Initialize (std::shared_ptr< ChROSInterface > interface) override
 Initializes the handler. More...
 
virtual ipc::MessageType GetMessageType () const override
 Get the message type of this handler.
 
virtual std::vector< uint8_t > GetSerializedData (double time) override
 Extract body state for IPC (called in main process, no ROS calls)
 
virtual void PublishFromSerialized (const std::vector< uint8_t > &data, std::shared_ptr< ChROSInterface > interface) override
 Publish data to ROS from serialized bytes (called in subprocess)
 
- Public Member Functions inherited from chrono::ros::ChROSHandler
virtual ~ChROSHandler ()=default
 Destructor for the ChROSHandler.
 
const double GetUpdateRate () const
 Get the period which this handler operates at.
 
const uint64_t GetTickCount () const
 Get the number of times Tick() has been called.
 
virtual bool IsPublisher () const
 Check if this handler is a publisher (data flows from Chrono to ROS) Default is true. More...
 
virtual void ApplyFromSerialized (const std::vector< uint8_t > &data)
 Apply data to Chrono from serialized bytes. More...
 
virtual void SubscribeAndForward (std::shared_ptr< ChROSInterface > interface, std::function< void(const std::vector< uint8_t > &)> callback)
 Setup subscriber in subprocess to send data back to main process. More...
 
virtual void HandleIncomingMessage (const ipc::Message &msg)
 Handle incoming IPC message from ROS subscriber (bidirectional communication). More...
 
virtual bool SupportsIncomingMessages () const
 Returns true if this handler processes incoming IPC messages. More...
 

Additional Inherited Members

- Public Types inherited from chrono::ros::ChROSHandler
typedef chrono::ros::ipc::MessageType MessageType
 Get the message type of this handler. More...
 
- Protected Member Functions inherited from chrono::ros::ChROSHandler
 ChROSHandler (double update_rate)
 Constructor for the ChROSHandler 'update_rate' is the rate with which the handler should tick relative to the simulation clock. More...
 
void IncrementTickCount ()
 Increment the tick count.
 

Member Function Documentation

◆ Initialize()

bool chrono::ros::ChROSBodyHandler::Initialize ( std::shared_ptr< ChROSInterface interface)
overridevirtual

Initializes the handler.

Must be implemented by derived classes. This is called after rclcpp::init(). In IPC mode, this is only called in the subprocess. In direct mode, called in main process. Here the underlying ROS objects (e.g. publisher, subscription) should be created.

Implements chrono::ros::ChROSHandler.


The documentation for this class was generated from the following files:
  • /builds/uwsbel/chrono/src/chrono_ros/handlers/ChROSBodyHandler.h
  • /builds/uwsbel/chrono/src/chrono_ros/handlers/ChROSBodyHandler.cpp