Flatland
|
#include <bumper.h>
Classes | |
struct | ContactState |
Public Member Functions | |
void | OnInitialize (const YAML::Node &config) override |
Initialization for the plugin. More... | |
void | BeforePhysicsStep (const Timekeeper &timekeeper) override |
Called when just before physics update. More... | |
void | AfterPhysicsStep (const Timekeeper &timekeeper) override |
Called when just after physics update. More... | |
void | BeginContact (b2Contact *contact) override |
A method that is called for all Box2D begin contacts. More... | |
void | EndContact (b2Contact *contact) override |
A method that is called for all Box2D end contacts. More... | |
void | PostSolve (b2Contact *contact, const b2ContactImpulse *impulse) override |
A method that is called for Box2D postsolve. More... | |
Public Member Functions inherited from flatland_server::ModelPlugin | |
Model * | GetModel () |
Get model. | |
void | Initialize (const std::string &type, const std::string &name, Model *model, const YAML::Node &config) |
The method to initialize the ModelPlugin, required since Pluginlib require the class to have a default constructor. More... | |
bool | FilterContact (b2Contact *contact, Entity *&entity, b2Fixture *&this_fixture, b2Fixture *&other_fixture) |
Helper function check if this model is part of the contact, and extracts all the useful information. More... | |
bool | FilterContact (b2Contact *contact) |
Helper function check if this model is part of the contact. More... | |
Public Member Functions inherited from flatland_server::FlatlandPlugin | |
const PluginType | Type () |
const std::string & | GetName () const |
Get plugin name. | |
const std::string & | GetType () const |
Get type of plugin. | |
virtual void | PreSolve (b2Contact *contact, const b2Manifold *oldManifold) |
A method that is called for Box2D presolve. More... | |
virtual | ~FlatlandPlugin ()=default |
Flatland plugin destructor. | |
Public Attributes | |
std::string | topic_name_ |
std::string | world_frame_id_ |
name of the world frame id | |
std::vector< Body * > | excluded_bodies_ |
bool | publish_all_collisions_ |
whether to publish all collisions, or strictly adhere to update rate | |
double | update_rate_ |
rate to publish message at | |
UpdateTimer | update_timer_ |
for managing update rate | |
std::map< b2Contact *, ContactState > | contact_states_ |
For keeping track of contacts. | |
ros::Publisher | collisions_publisher_ |
For publishing the collisions. | |
Public Attributes inherited from flatland_server::ModelPlugin | |
ros::NodeHandle | nh_ |
ROS node handle. | |
Public Attributes inherited from flatland_server::FlatlandPlugin | |
std::string | type_ |
type of the plugin | |
std::string | name_ |
name of the plugin | |
ros::NodeHandle | nh_ |
PluginType | plugin_type_ |
Additional Inherited Members | |
Public Types inherited from flatland_server::FlatlandPlugin | |
enum | PluginType { Invalid, Model, World } |
Protected Member Functions inherited from flatland_server::ModelPlugin | |
ModelPlugin ()=default | |
Model plugin default constructor. | |
This class defines a bumper plugin that is used to publish the collisions states of bodies in the model
|
overridevirtual |
Called when just after physics update.
[in] | timekeeper | Object managing the simulation time |
Reimplemented from flatland_server::FlatlandPlugin.
|
overridevirtual |
Called when just before physics update.
[in] | timekeeper | Object managing the simulation time |
Reimplemented from flatland_server::FlatlandPlugin.
|
overridevirtual |
A method that is called for all Box2D begin contacts.
[in] | contact | Box2D contact |
Reimplemented from flatland_server::FlatlandPlugin.
|
overridevirtual |
A method that is called for all Box2D end contacts.
[in] | contact | Box2D contact |
Reimplemented from flatland_server::FlatlandPlugin.
|
overridevirtual |
Initialization for the plugin.
[in] | config | Plugin YAML Node |
Implements flatland_server::FlatlandPlugin.
|
overridevirtual |
A method that is called for Box2D postsolve.
[in] | contact | Box2D contact |
[in] | impulse | Impulse from the collision resolution |
Reimplemented from flatland_server::FlatlandPlugin.
std::vector<Body *> flatland_plugins::Bumper::excluded_bodies_ |
bodies to ignore