Laser collision contains a set of ray-collisions, structured to simulate a laser range scanner. More...
#include <physics/physics.hh>
Inherits Shape.
Inherited by BulletMultiRayShape, DARTMultiRayShape, ODEMultiRayShape, and SimbodyMultiRayShape.
Public Types | |
enum | EntityType { BASE = 0x00000000, ENTITY = 0x00000001, MODEL = 0x00000002, LINK = 0x00000004, COLLISION = 0x00000008, LIGHT = 0x00000010, VISUAL = 0x00000020, JOINT = 0x00000040, BALL_JOINT = 0x00000080, HINGE2_JOINT = 0x00000100, HINGE_JOINT = 0x00000200, SLIDER_JOINT = 0x00000400, SCREW_JOINT = 0x00000800, UNIVERSAL_JOINT = 0x00001000, GEARBOX_JOINT = 0x00002000, FIXED_JOINT = 0x00004000, ACTOR = 0x00008000, SHAPE = 0x00010000, BOX_SHAPE = 0x00020000, CYLINDER_SHAPE = 0x00040000, HEIGHTMAP_SHAPE = 0x00080000, MAP_SHAPE = 0x00100000, MULTIRAY_SHAPE = 0x00200000, RAY_SHAPE = 0x00400000, PLANE_SHAPE = 0x00800000, SPHERE_SHAPE = 0x01000000, MESH_SHAPE = 0x02000000, POLYLINE_SHAPE = 0x04000000, SENSOR_COLLISION = 0x10000000 } |
Unique identifiers for all entity types. More... | |
Public Member Functions | |
MultiRayShape (CollisionPtr _parent) | |
Constructor. More... | |
MultiRayShape (PhysicsEnginePtr _physicsEngine) | |
Constructor for a stand alone multiray shape. More... | |
virtual | ~MultiRayShape () |
Destructor. More... | |
void | AddChild (BasePtr _child) |
Add a child to this entity. More... | |
virtual void | AddRay (const ignition::math::Vector3d &_start, const ignition::math::Vector3d &_end) |
Add a ray to the collision. More... | |
void | AddType (EntityType _type) |
Add a type specifier. More... | |
virtual double | ComputeVolume () const |
Documentation inherited. More... | |
template<typename T > | |
event::ConnectionPtr | ConnectNewLaserScans (T _subscriber) |
Connect a to the new laser scan signal. More... | |
void | FillMsg (msgs::Geometry &_msg) |
\TODO This function is not implemented. More... | |
virtual void | Fini () |
Finialize the object. More... | |
BasePtr | GetByName (const std::string &_name) |
Get by name. More... | |
BasePtr | GetChild (const std::string &_name) |
Get a child by name. More... | |
BasePtr | GetChild (unsigned int _i) const |
Get a child by index. More... | |
unsigned int | GetChildCount () const |
Get the number of children. More... | |
int | GetFiducial (unsigned int _index) |
Get detected fiducial value for a ray. More... | |
uint32_t | GetId () const |
Return the ID of this entity. More... | |
double | GetMaxRange () const |
Get the maximum range. More... | |
double | GetMinRange () const |
Get the minimum range. More... | |
std::string | GetName () const |
Return the name of the entity. More... | |
BasePtr | GetParent () const |
Get the parent. More... | |
int | GetParentId () const |
Return the ID of the parent. More... | |
double | GetRange (unsigned int _index) |
Get detected range for a ray. More... | |
double | GetResRange () const |
Get the range resolution. More... | |
double | GetRetro (unsigned int _index) |
Get detected retro (intensity) value for a ray. More... | |
int | GetSampleCount () const |
Get the horizontal sample count. More... | |
bool | GetSaveable () const |
Get whether the object should be "saved", when the user selects to save the world to xml. More... | |
double | GetScanResolution () const |
Get the horizontal resolution. More... | |
std::string | GetScopedName (bool _prependWorldName=false) const |
Return the name of this entity with the model scope model1::...::modelN::entityName. More... | |
virtual const sdf::ElementPtr | GetSDF () |
Get the SDF values for the object. More... | |
unsigned int | GetType () const |
Get the full type definition. More... | |
int | GetVerticalSampleCount () const |
Get the vertical sample count. More... | |
double | GetVerticalScanResolution () const |
Get the vertical range resolution. More... | |
const WorldPtr & | GetWorld () const |
Get the World this object is in. More... | |
bool | HasType (const EntityType &_t) const |
Returns true if this object's type definition has the given type. More... | |
virtual void | Init () |
Init the shape. More... | |
bool | IsSelected () const |
True if the entity is selected by the user. More... | |
virtual void | Load (sdf::ElementPtr _sdf) |
Load. More... | |
ignition::math::Angle | MaxAngle () const |
Get the maximum angle. More... | |
ignition::math::Angle | MinAngle () const |
Get the minimum angle. More... | |
bool | operator== (const Base &_ent) const |
Returns true if the entities are the same. More... | |
void | Print (const std::string &_prefix) |
Print this object to screen via gzmsg. More... | |
virtual void | ProcessMsg (const msgs::Geometry &_msg) |
\TODO This function is not implemented. More... | |
RayShapePtr | Ray (const unsigned int _rayIndex) const |
Get a pointer to a ray. More... | |
unsigned int | RayCount () const |
Get the number of rays. More... | |
void | RemoveChild (const std::string &_name) |
Remove a child by name. More... | |
void | RemoveChild (physics::BasePtr _child) |
Remove a child by pointer. More... | |
virtual void | RemoveChild (unsigned int _id) |
Remove a child from this entity. More... | |
void | RemoveChildren () |
Remove all children. More... | |
virtual void | Reset () |
Reset the object. More... | |
virtual void | Reset (Base::EntityType _resetType) |
Calls recursive Reset on one of the Base::EntityType's. More... | |
virtual ignition::math::Vector3d | Scale () const |
Get the scale of the shape. More... | |
ignition::math::Pose3d | SDFPoseRelativeToParent () const |
Get the SDF pose of the object according to the sdf 1.6 convention. More... | |
virtual std::optional< sdf::SemanticPose > | SDFSemanticPose () const |
Get the SDF SemanticPose object associated with the pose of this object. More... | |
virtual void | SetName (const std::string &_name) |
Set the name of the entity. More... | |
void | SetParent (BasePtr _parent) |
Set the parent. More... | |
bool | SetRay (const unsigned int _rayIndex, const ignition::math::Vector3d &_start, const ignition::math::Vector3d &_end) |
Set the points of a ray. More... | |
void | SetSaveable (bool _v) |
Set whether the object should be "saved", when the user selects to save the world to xml. More... | |
virtual void | SetScale (const ignition::math::Vector3d &_scale) |
Set the scale of the multi ray shape. More... | |
virtual bool | SetSelected (bool _show) |
Set whether this entity has been selected by the user through the gui. More... | |
void | SetWorld (const WorldPtr &_newWorld) |
Set the world this object belongs to. More... | |
std::string | TypeStr () const |
Get the string name for the entity type. More... | |
void | Update () |
Update the ray collisions. More... | |
virtual void | UpdateParameters (sdf::ElementPtr _sdf) |
Update the parameters using new sdf values. More... | |
virtual void | UpdateRays ()=0 |
Method for updating the rays. More... | |
common::URI | URI () const |
Return the common::URI of this entity. More... | |
ignition::math::Angle | VerticalMaxAngle () const |
Get the vertical max angle. More... | |
ignition::math::Angle | VerticalMinAngle () const |
Get the vertical min angle. More... | |
Protected Member Functions | |
void | ComputeScopedName () |
Compute the scoped name of this object based on its parents. More... | |
virtual void | RegisterIntrospectionItems () |
Register items in the introspection service. More... | |
virtual void | UnregisterIntrospectionItems () |
Unregister items in the introspection service. More... | |
Protected Attributes | |
Base_V | children |
Children of this entity. More... | |
CollisionPtr | collisionParent |
This shape's collision parent. More... | |
sdf::ElementPtr | horzElem |
Horizontal SDF element pointer. More... | |
std::vector< common::URI > | introspectionItems |
All the introspection items regsitered for this. More... | |
event::EventT< void()> | newLaserScans |
New laser scans event. More... | |
ignition::math::Pose3d | offset |
Pose offset of all the rays. More... | |
BasePtr | parent |
Parent of this entity. More... | |
sdf::ElementPtr | rangeElem |
Range SDF element pointer. More... | |
sdf::ElementPtr | rayElem |
Ray SDF element pointer. More... | |
std::vector< RayShapePtr > | rays |
Ray data. More... | |
ignition::math::Vector3d | scale = ignition::math::Vector3d::One |
This shape's scale;. More... | |
sdf::ElementPtr | scanElem |
Scan SDF element pointer. More... | |
sdf::ElementPtr | sdf |
The SDF values for this object. More... | |
sdf::ElementPtr | vertElem |
Vertical SDF element pointer. More... | |
WorldPtr | world |
Pointer to the world. More... | |
Laser collision contains a set of ray-collisions, structured to simulate a laser range scanner.
|
inherited |
Unique identifiers for all entity types.
Enumerator | |
---|---|
BASE | Base type. |
ENTITY | Entity type. |
MODEL | Model type. |
LINK | Link type. |
COLLISION | Collision type. |
LIGHT | Light type. |
VISUAL | Visual type. |
JOINT | Joint type. |
BALL_JOINT | BallJoint type. |
HINGE2_JOINT | Hing2Joint type. |
HINGE_JOINT | HingeJoint type. |
SLIDER_JOINT | SliderJoint type. |
SCREW_JOINT | ScrewJoint type. |
UNIVERSAL_JOINT | UniversalJoint type. |
GEARBOX_JOINT | GearboxJoint type. |
FIXED_JOINT | FixedJoint type. |
ACTOR | Actor type. |
SHAPE | Shape type. |
BOX_SHAPE | BoxShape type. |
CYLINDER_SHAPE | CylinderShape type. |
HEIGHTMAP_SHAPE | HeightmapShape type. |
MAP_SHAPE | MapShape type. |
MULTIRAY_SHAPE | MultiRayShape type. |
RAY_SHAPE | RayShape type. |
PLANE_SHAPE | PlaneShape type. |
SPHERE_SHAPE | SphereShape type. |
MESH_SHAPE | MeshShape type. |
POLYLINE_SHAPE | PolylineShape type. |
SENSOR_COLLISION | Indicates a collision shape used for sensing. |
|
explicit |
Constructor.
[in] | _parent | Parent collision shape. |
|
explicit |
Constructor for a stand alone multiray shape.
Stand alone means the multiray shape is not attached to a Collision object.
Example:
gazebo::physics::MultiRayShapePtr rays = boost::dynamic_pointer_cast<gazebo::physics::MultiRayShape>( world->Physics()->CreateShape("multiray", gazebo::physics::CollisionPtr()));
[in] | _physicsEngine | Pointer to the physics engine. |
|
virtual |
Destructor.
|
inherited |
Add a child to this entity.
[in] | _child | Child entity. |
|
virtual |
Add a ray to the collision.
[in] | _start | Start of the ray. |
[in] | _end | End of the ray. |
Reimplemented in BulletMultiRayShape, ODEMultiRayShape, DARTMultiRayShape, and SimbodyMultiRayShape.
|
inherited |
Add a type specifier.
[in] | _type | New type to append to this objects type definition. |
|
protectedinherited |
Compute the scoped name of this object based on its parents.
|
virtual |
Documentation inherited.
Reimplemented from Shape.
|
inline |
Connect a to the new laser scan signal.
[in] | _subscriber | Callback function. |
References EventT< T >::Connect(), and MultiRayShape::newLaserScans.
|
virtual |
\TODO This function is not implemented.
Fill a message with this shape's values.
[out] | _msg | Message that contains the shape's values. |
Implements Shape.
|
virtualinherited |
Finialize the object.
Reimplemented in Joint, Model, Link, ODEJoint, BulletJoint, Collision, Actor, Entity, DARTModel, Road, DARTCollision, DARTLink, ODECollision, SimbodyLink, BulletLink, and ODELink.
|
inherited |
Get by name.
[in] | _name | Get a child (or self) object by name |
|
inherited |
Get a child by name.
[in] | _name | Name of the child. |
|
inherited |
Get a child by index.
[in] | _i | Index of the child to retreive. |
|
inherited |
Get the number of children.
int GetFiducial | ( | unsigned int | _index | ) |
Get detected fiducial value for a ray.
[in] | _index | Index of the ray. |
|
inherited |
Return the ID of this entity.
This id is unique.
double GetMaxRange | ( | ) | const |
Get the maximum range.
double GetMinRange | ( | ) | const |
Get the minimum range.
|
inherited |
Return the name of the entity.
|
inherited |
Get the parent.
|
inherited |
Return the ID of the parent.
double GetRange | ( | unsigned int | _index | ) |
Get detected range for a ray.
[in] | _index | Index of the ray. |
double GetResRange | ( | ) | const |
Get the range resolution.
double GetRetro | ( | unsigned int | _index | ) |
Get detected retro (intensity) value for a ray.
[in] | _index | Index of the ray. |
int GetSampleCount | ( | ) | const |
Get the horizontal sample count.
|
inherited |
Get whether the object should be "saved", when the user selects to save the world to xml.
double GetScanResolution | ( | ) | const |
Get the horizontal resolution.
|
inherited |
Return the name of this entity with the model scope model1::...::modelN::entityName.
[in] | _prependWorldName | True to prended the returned string with the world name. The result will be world::model1::...::modelN::entityName. |
|
virtualinherited |
|
inherited |
Get the full type definition.
int GetVerticalSampleCount | ( | ) | const |
Get the vertical sample count.
double GetVerticalScanResolution | ( | ) | const |
Get the vertical range resolution.
|
inherited |
|
inherited |
Returns true if this object's type definition has the given type.
[in] | _t | Type to check. |
|
virtual |
Init the shape.
Implements Shape.
|
inherited |
True if the entity is selected by the user.
|
virtualinherited |
Load.
[in] | node | Pointer to an SDF parameters |
Reimplemented in Joint, Model, Link, ODEJoint, Collision, DARTJoint, BulletJoint, Light, SimbodyJoint, DARTScrewJoint, Actor, SimbodySliderJoint, Entity, BallJoint< ODEJoint >, BallJoint< DARTJoint >, BallJoint< SimbodyJoint >, BallJoint< BulletJoint >, UniversalJoint< ODEJoint >, UniversalJoint< DARTJoint >, UniversalJoint< SimbodyJoint >, UniversalJoint< BulletJoint >, HeightmapShape, MapShape, Hinge2Joint< ODEJoint >, Hinge2Joint< DARTJoint >, Hinge2Joint< SimbodyJoint >, Hinge2Joint< BulletJoint >, BulletScrewJoint, GearboxJoint< ODEJoint >, HingeJoint< ODEJoint >, HingeJoint< DARTJoint >, HingeJoint< SimbodyJoint >, HingeJoint< BulletJoint >, DARTModel, ScrewJoint< ODEJoint >, ScrewJoint< DARTJoint >, ScrewJoint< SimbodyJoint >, ScrewJoint< BulletJoint >, Road, SliderJoint< ODEJoint >, SliderJoint< DARTJoint >, SliderJoint< SimbodyJoint >, SliderJoint< BulletJoint >, BulletBallJoint, BulletHinge2Joint, ODECollision, FixedJoint< ODEJoint >, FixedJoint< DARTJoint >, FixedJoint< SimbodyJoint >, FixedJoint< BulletJoint >, BulletUniversalJoint, DARTCollision, ODEHinge2Joint, ODEHingeJoint, ODESliderJoint, SimbodyFixedJoint, SimbodyUniversalJoint, ODEGearboxJoint, SimbodyScrewJoint, BulletFixedJoint, BulletHingeJoint, BulletSliderJoint, SimbodyHinge2Joint, SimbodyHingeJoint, DARTMeshShape, ODELink, DARTPolylineShape, DARTUniversalJoint, ODEFixedJoint, ODEMeshShape, ODEScrewJoint, SimbodyBallJoint, SimbodyMeshShape, BulletMeshShape, BulletPolylineShape, DARTBallJoint, DARTFixedJoint, DARTHinge2Joint, DARTHingeJoint, DARTSliderJoint, ODEPolylineShape, SimbodyModel, SimbodyPolylineShape, BulletCollision, SimbodyCollision, DARTLink, SimbodyLink, and BulletLink.
ignition::math::Angle MaxAngle | ( | ) | const |
Get the maximum angle.
ignition::math::Angle MinAngle | ( | ) | const |
Get the minimum angle.
|
inherited |
Returns true if the entities are the same.
Checks only the name.
[in] | _ent | Base object to compare with. |
|
inherited |
Print this object to screen via gzmsg.
[in] | _prefix | Usually a set of spaces. |
|
virtual |
\TODO This function is not implemented.
Update the ray based on a message.
[in] | _msg | Message to update from. |
Implements Shape.
RayShapePtr Ray | ( | const unsigned int | _rayIndex | ) | const |
Get a pointer to a ray.
[in] | _rayIndex | index to the ray |
unsigned int RayCount | ( | ) | const |
Get the number of rays.
|
protectedvirtualinherited |
|
inherited |
Remove a child by name.
[in] | _name | Name of the child. |
|
inherited |
Remove a child by pointer.
[in] | _child | Pointer to the child. |
|
virtualinherited |
Remove a child from this entity.
[in] | _id | ID of the child to remove. |
|
inherited |
Remove all children.
|
virtualinherited |
Reset the object.
Reimplemented in Joint, Model, Link, ODEJoint, DARTJoint, BulletJoint, SimbodyJoint, Actor, and Entity.
|
virtualinherited |
Calls recursive Reset on one of the Base::EntityType's.
[in] | _resetType | The type of reset operation |
|
virtualinherited |
|
inherited |
Get the SDF pose of the object according to the sdf 1.6 convention.
This convention is that the pose of an element is relative to its parent XML element, except for joints, whose pose is relative to the child link.
|
virtualinherited |
|
virtualinherited |
|
inherited |
Set the parent.
[in] | _parent | Parent object. |
bool SetRay | ( | const unsigned int | _rayIndex, |
const ignition::math::Vector3d & | _start, | ||
const ignition::math::Vector3d & | _end | ||
) |
Set the points of a ray.
[in] | _rayIndex | Index of the ray to set. |
[in] | _start | Start of the ray. |
[in] | _end | End of the ray. |
|
inherited |
Set whether the object should be "saved", when the user selects to save the world to xml.
[in] | _v | Set to True if the object should be saved. |
|
virtual |
Set the scale of the multi ray shape.
Implements Shape.
|
virtualinherited |
Set whether this entity has been selected by the user through the gui.
[in] | _show | True to set this entity as selected. |
Reimplemented in Link.
|
inherited |
Set the world this object belongs to.
This will also set the world for all children.
[in] | _newWorld | The new World this object is part of. |
|
inherited |
Get the string name for the entity type.
|
protectedvirtualinherited |
Unregister items in the introspection service.
|
virtual |
Update the ray collisions.
Reimplemented from Base.
|
virtualinherited |
|
pure virtual |
Method for updating the rays.
This function is normally called automatically, such as when a laser sensor is updated. Only call this function on a standalone multiray shape.
Implemented in DARTMultiRayShape, ODEMultiRayShape, BulletMultiRayShape, and SimbodyMultiRayShape.
|
inherited |
Return the common::URI of this entity.
The URI includes the world where the entity is contained and all the hierarchy of sub-entities that can compose this entity. E.g.: A link entity contains the name of the link and the model where the link is contained.
ignition::math::Angle VerticalMaxAngle | ( | ) | const |
Get the vertical max angle.
ignition::math::Angle VerticalMinAngle | ( | ) | const |
Get the vertical min angle.
|
protectedinherited |
Children of this entity.
|
protectedinherited |
This shape's collision parent.
Referenced by ODEPlaneShape::CreatePlane(), BulletPlaneShape::CreatePlane(), ODEPlaneShape::SetAltitude(), SimbodySphereShape::SetRadius(), ODESphereShape::SetRadius(), BulletSphereShape::SetRadius(), ODECylinderShape::SetSize(), SimbodyBoxShape::SetSize(), SimbodyCylinderShape::SetSize(), BulletCylinderShape::SetSize(), ODEBoxShape::SetSize(), and BulletBoxShape::SetSize().
|
protected |
Horizontal SDF element pointer.
|
protectedinherited |
All the introspection items regsitered for this.
|
protected |
New laser scans event.
Referenced by MultiRayShape::ConnectNewLaserScans().
|
protected |
Pose offset of all the rays.
|
protectedinherited |
Parent of this entity.
|
protected |
Range SDF element pointer.
|
protected |
Ray SDF element pointer.
|
protected |
Ray data.
|
protectedinherited |
This shape's scale;.
|
protected |
Scan SDF element pointer.
|
protectedinherited |
The SDF values for this object.
|
protected |
Vertical SDF element pointer.
|
protectedinherited |
Pointer to the world.