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. | |
MultiRayShape (PhysicsEnginePtr _physicsEngine) | |
Constructor for a stand alone multiray shape. | |
virtual | ~MultiRayShape () |
Destructor. | |
void | AddChild (BasePtr _child) |
Add a child to this entity. | |
virtual void | AddRay (const ignition::math::Vector3d &_start, const ignition::math::Vector3d &_end) |
Add a ray to the collision. | |
void | AddType (EntityType _type) |
Add a type specifier. | |
virtual double | ComputeVolume () const |
Documentation inherited. | |
template<typename T > | |
event::ConnectionPtr | ConnectNewLaserScans (T _subscriber) |
Connect a to the new laser scan signal. | |
void | FillMsg (msgs::Geometry &_msg) |
\TODO This function is not implemented. | |
virtual void | Fini () |
Finialize the object. | |
BasePtr | GetByName (const std::string &_name) |
Get by name. | |
BasePtr | GetChild (const std::string &_name) |
Get a child by name. | |
BasePtr | GetChild (unsigned int _i) const |
Get a child by index. | |
unsigned int | GetChildCount () const |
Get the number of children. | |
int | GetFiducial (unsigned int _index) |
Get detected fiducial value for a ray. | |
uint32_t | GetId () const |
Return the ID of this entity. | |
double | GetMaxRange () const |
Get the maximum range. | |
double | GetMinRange () const |
Get the minimum range. | |
std::string | GetName () const |
Return the name of the entity. | |
BasePtr | GetParent () const |
Get the parent. | |
int | GetParentId () const |
Return the ID of the parent. | |
double | GetRange (unsigned int _index) |
Get detected range for a ray. | |
double | GetResRange () const |
Get the range resolution. | |
double | GetRetro (unsigned int _index) |
Get detected retro (intensity) value for a ray. | |
int | GetSampleCount () const |
Get the horizontal sample count. | |
bool | GetSaveable () const |
Get whether the object should be "saved", when the user selects to save the world to xml. | |
double | GetScanResolution () const |
Get the horizontal resolution. | |
std::string | GetScopedName (bool _prependWorldName=false) const |
Return the name of this entity with the model scope model1::...::modelN::entityName. | |
virtual const sdf::ElementPtr | GetSDF () |
Get the SDF values for the object. | |
unsigned int | GetType () const |
Get the full type definition. | |
int | GetVerticalSampleCount () const |
Get the vertical sample count. | |
double | GetVerticalScanResolution () const |
Get the vertical range resolution. | |
const WorldPtr & | GetWorld () const |
Get the World this object is in. | |
bool | HasType (const EntityType &_t) const |
Returns true if this object's type definition has the given type. | |
virtual void | Init () |
Init the shape. | |
bool | IsSelected () const |
True if the entity is selected by the user. | |
virtual void | Load (sdf::ElementPtr _sdf) |
Load. | |
ignition::math::Angle | MaxAngle () const |
Get the maximum angle. | |
ignition::math::Angle | MinAngle () const |
Get the minimum angle. | |
bool | operator== (const Base &_ent) const |
Returns true if the entities are the same. | |
void | Print (const std::string &_prefix) |
Print this object to screen via gzmsg. | |
virtual void | ProcessMsg (const msgs::Geometry &_msg) |
\TODO This function is not implemented. | |
RayShapePtr | Ray (const unsigned int _rayIndex) const |
Get a pointer to a ray. | |
unsigned int | RayCount () const |
Get the number of rays. | |
void | RemoveChild (const std::string &_name) |
Remove a child by name. | |
void | RemoveChild (physics::BasePtr _child) |
Remove a child by pointer. | |
virtual void | RemoveChild (unsigned int _id) |
Remove a child from this entity. | |
void | RemoveChildren () |
Remove all children. | |
virtual void | Reset () |
Reset the object. | |
virtual void | Reset (Base::EntityType _resetType) |
Calls recursive Reset on one of the Base::EntityType's. | |
virtual ignition::math::Vector3d | Scale () const |
Get the scale of the shape. | |
virtual void | SetName (const std::string &_name) |
Set the name of the entity. | |
void | SetParent (BasePtr _parent) |
Set the parent. | |
bool | SetRay (const unsigned int _rayIndex, const ignition::math::Vector3d &_start, const ignition::math::Vector3d &_end) |
Set the points of a ray. | |
void | SetSaveable (bool _v) |
Set whether the object should be "saved", when the user selects to save the world to xml. | |
virtual void | SetScale (const ignition::math::Vector3d &_scale) |
Set the scale of the multi ray shape. | |
virtual bool | SetSelected (bool _show) |
Set whether this entity has been selected by the user through the gui. | |
void | SetWorld (const WorldPtr &_newWorld) |
Set the world this object belongs to. | |
std::string | TypeStr () const |
Get the string name for the entity type. | |
void | Update () |
Update the ray collisions. | |
virtual void | UpdateParameters (sdf::ElementPtr _sdf) |
Update the parameters using new sdf values. | |
virtual void | UpdateRays ()=0 |
Method for updating the rays. | |
common::URI | URI () const |
Return the common::URI of this entity. | |
ignition::math::Angle | VerticalMaxAngle () const |
Get the vertical max angle. | |
ignition::math::Angle | VerticalMinAngle () const |
Get the vertical min angle. | |
Protected Member Functions | |
void | ComputeScopedName () |
Compute the scoped name of this object based on its parents. | |
virtual void | RegisterIntrospectionItems () |
Register items in the introspection service. | |
virtual void | UnregisterIntrospectionItems () |
Unregister items in the introspection service. | |
Protected Attributes | |
Base_V | children |
Children of this entity. | |
CollisionPtr | collisionParent |
This shape's collision parent. | |
sdf::ElementPtr | horzElem |
Horizontal SDF element pointer. | |
std::vector< common::URI > | introspectionItems |
All the introspection items regsitered for this. | |
event::EventT< void()> | newLaserScans |
New laser scans event. | |
ignition::math::Pose3d | offset |
Pose offset of all the rays. | |
BasePtr | parent |
Parent of this entity. | |
sdf::ElementPtr | rangeElem |
Range SDF element pointer. | |
sdf::ElementPtr | rayElem |
Ray SDF element pointer. | |
std::vector< RayShapePtr > | rays |
Ray data. | |
ignition::math::Vector3d | scale = ignition::math::Vector3d::One |
This shape's scale;. | |
sdf::ElementPtr | scanElem |
Scan SDF element pointer. | |
sdf::ElementPtr | sdf |
The SDF values for this object. | |
sdf::ElementPtr | vertElem |
Vertical SDF element pointer. | |
WorldPtr | world |
Pointer to the world. | |
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 DARTMultiRayShape, ODEMultiRayShape, SimbodyMultiRayShape, and BulletMultiRayShape.
|
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 Actor, BulletLink, Collision, DARTCollision, DARTLink, DARTModel, Entity, Joint, Link, Model, ODECollision, ODELink, Road, SimbodyLink, BulletJoint, and ODEJoint.
|
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 BulletCollision, BulletLink, DARTLink, SimbodyCollision, SimbodyLink, Actor, BallJoint< BulletJoint >, BallJoint< DARTJoint >, BallJoint< ODEJoint >, BallJoint< SimbodyJoint >, BulletBallJoint, BulletFixedJoint, BulletHinge2Joint, BulletHingeJoint, BulletMeshShape, BulletPolylineShape, BulletScrewJoint, BulletSliderJoint, BulletUniversalJoint, Collision, DARTBallJoint, DARTCollision, DARTFixedJoint, DARTHinge2Joint, DARTHingeJoint, DARTMeshShape, DARTModel, DARTPolylineShape, DARTSliderJoint, DARTUniversalJoint, Entity, FixedJoint< BulletJoint >, FixedJoint< DARTJoint >, FixedJoint< ODEJoint >, FixedJoint< SimbodyJoint >, GearboxJoint< ODEJoint >, HeightmapShape, Hinge2Joint< BulletJoint >, Hinge2Joint< DARTJoint >, Hinge2Joint< ODEJoint >, Hinge2Joint< SimbodyJoint >, HingeJoint< BulletJoint >, HingeJoint< DARTJoint >, HingeJoint< ODEJoint >, HingeJoint< SimbodyJoint >, Joint, Link, MapShape, Model, ODECollision, ODEFixedJoint, ODEGearboxJoint, ODEHinge2Joint, ODEHingeJoint, ODELink, ODEMeshShape, ODEPolylineShape, ODEScrewJoint, ODESliderJoint, Road, ScrewJoint< BulletJoint >, ScrewJoint< DARTJoint >, ScrewJoint< ODEJoint >, ScrewJoint< SimbodyJoint >, SimbodyBallJoint, SimbodyFixedJoint, SimbodyHinge2Joint, SimbodyHingeJoint, SimbodyMeshShape, SimbodyModel, SimbodyPolylineShape, SimbodyScrewJoint, SimbodySliderJoint, SimbodyUniversalJoint, SliderJoint< BulletJoint >, SliderJoint< DARTJoint >, SliderJoint< ODEJoint >, SliderJoint< SimbodyJoint >, UniversalJoint< BulletJoint >, UniversalJoint< DARTJoint >, UniversalJoint< ODEJoint >, UniversalJoint< SimbodyJoint >, BulletJoint, DARTJoint, DARTScrewJoint, ODEJoint, and SimbodyJoint.
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 |
|
inherited |
Remove all children.
|
virtualinherited |
|
virtualinherited |
Calls recursive Reset on one of the Base::EntityType's.
[in] | _resetType | The type of reset operation |
|
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 BulletMultiRayShape, DARTMultiRayShape, ODEMultiRayShape, 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 BulletPlaneShape::CreatePlane(), ODEPlaneShape::CreatePlane(), ODEPlaneShape::SetAltitude(), BulletSphereShape::SetRadius(), ODESphereShape::SetRadius(), SimbodySphereShape::SetRadius(), BulletBoxShape::SetSize(), ODEBoxShape::SetSize(), SimbodyBoxShape::SetSize(), BulletCylinderShape::SetSize(), ODECylinderShape::SetSize(), and SimbodyCylinderShape::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.