OctomapCollisionChecker.h
Go to the documentation of this file.
1 // OctomapCollisionChecker.h
3 //
4 // Created on: Jan 24, 2014
5 // Author: mklingen
7 
8 #ifndef OCTOMAPCOLLISIONCHECKER_H_
9 #define OCTOMAPCOLLISIONCHECKER_H_
10 
11 #include <octomap/OcTree.h>
12 #include <string>
13 #include <openrave/openrave.h>
14 #include <openrave/collisionchecker.h>
15 #include <ros/time.h>
16 
17 
18 namespace or_octomap
19 {
20  class OctomapInterface;
21  class OctomapCollisionChecker : public OpenRAVE::CollisionCheckerBase
22  {
23  public:
24  OctomapCollisionChecker(OpenRAVE::EnvironmentBasePtr env);
25  OctomapCollisionChecker(OpenRAVE::EnvironmentBasePtr env, OpenRAVE::CollisionCheckerBasePtr wrappedChecker, OctomapInterface* server);
26  virtual ~OctomapCollisionChecker();
27  virtual void Clone (OpenRAVE::InterfaceBaseConstPtr preference, int cloningoptions);
28  virtual bool SetCollisionOptions(int collisionoptions);
29  virtual int GetCollisionOptions() const;
30  virtual void SetTolerance(OpenRAVE::dReal tolerance);
31  virtual bool InitKinBody(OpenRAVE::KinBodyPtr pbody);
32  virtual bool CheckCollision(OpenRAVE::KinBodyConstPtr pbody1, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
33  virtual bool CheckCollision(OpenRAVE::KinBodyConstPtr pbody1, OpenRAVE::KinBodyConstPtr pbody2, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
34  virtual bool CheckCollision(OpenRAVE::KinBody::LinkConstPtr plink, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
35  virtual bool CheckCollision(OpenRAVE::KinBody::LinkConstPtr plink1, OpenRAVE::KinBody::LinkConstPtr plink2, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
36  virtual bool CheckCollision(OpenRAVE::KinBody::LinkConstPtr plink, OpenRAVE::KinBodyConstPtr pbody, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
37  virtual bool CheckCollision(OpenRAVE::KinBody::LinkConstPtr plink, const std::vector< OpenRAVE::KinBodyConstPtr > &vbodyexcluded, const std::vector< OpenRAVE::KinBody::LinkConstPtr > &vlinkexcluded, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
38  virtual bool CheckCollision(OpenRAVE::KinBodyConstPtr pbody, const std::vector< OpenRAVE::KinBodyConstPtr > &vbodyexcluded, const std::vector< OpenRAVE::KinBody::LinkConstPtr > &vlinkexcluded, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
39  virtual bool CheckCollision(const OpenRAVE::RAY &ray, OpenRAVE::KinBody::LinkConstPtr plink, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
40  virtual bool CheckCollision(const OpenRAVE::RAY &ray, OpenRAVE::KinBodyConstPtr pbody, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
41  virtual bool CheckCollision(const OpenRAVE::RAY &ray, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
42  virtual bool CheckStandaloneSelfCollision(OpenRAVE::KinBodyConstPtr body, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
43  virtual bool CheckStandaloneSelfCollision(OpenRAVE::KinBody::LinkConstPtr body, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
44  virtual bool InitEnvironment();
45  virtual void DestroyEnvironment();
46  virtual void RemoveKinBody(OpenRAVE::KinBodyPtr body);
47 
48  virtual bool CheckOctomapCollision(OpenRAVE::KinBodyConstPtr pbody1, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
49  virtual bool CheckOctomapCollision(OpenRAVE::KinBodyConstPtr pbody1, OpenRAVE::KinBodyConstPtr pbody2, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
50  virtual bool CheckOctomapCollision(OpenRAVE::KinBody::LinkConstPtr plink, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
51  virtual bool CheckOctomapCollision(OpenRAVE::KinBody::LinkConstPtr plink1, OpenRAVE::KinBody::LinkConstPtr plink2, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
52  virtual bool CheckOctomapCollision(OpenRAVE::KinBody::LinkConstPtr plink, OpenRAVE::KinBodyConstPtr pbody, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
53  virtual bool CheckOctomapCollision(OpenRAVE::KinBody::LinkConstPtr plink, const std::vector< OpenRAVE::KinBodyConstPtr > &vbodyexcluded, const std::vector< OpenRAVE::KinBody::LinkConstPtr > &vlinkexcluded, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
54  virtual bool CheckOctomapCollision(OpenRAVE::KinBodyConstPtr pbody, const std::vector< OpenRAVE::KinBodyConstPtr > &vbodyexcluded, const std::vector< OpenRAVE::KinBody::LinkConstPtr > &vlinkexcluded, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
55  virtual bool CheckOctomapCollision(const OpenRAVE::RAY &ray, OpenRAVE::KinBody::LinkConstPtr plink, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
56  virtual bool CheckOctomapCollision(const OpenRAVE::RAY &ray, OpenRAVE::KinBodyConstPtr pbody, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
57  virtual bool CheckOctomapCollision(const OpenRAVE::RAY &ray, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr());
58 
59  inline OpenRAVE::CollisionCheckerBasePtr GetWrappedChecker() { return m_wrappedChecker; }
60  inline void SetWrappedChecker(OpenRAVE::CollisionCheckerBasePtr checker) { m_wrappedChecker = checker;}
61 
62  inline void SetInterface(OctomapInterface* interface) { m_server = interface; }
63  inline OctomapInterface* GetInterface() { return m_server; }
64 
65  inline void SetTreeClone(octomap::OcTree* treeClone) { m_treeClone = treeClone; }
66  octomap::OcTree* GetTreeClone();
67 
68  void GetNodesColliding(const std::string& objectName, std::vector<octomap::OcTreeNode*>& nodes);
69  bool MaskObject(std::string name);
70 
71  protected:
72  void ComputeTriangleAABB(const OpenRAVE::Vector& t1, const OpenRAVE::Vector& t2, const OpenRAVE::Vector& t3, OpenRAVE::AABB& aabb);
73  bool ContainsSpecialBody(const std::vector<OpenRAVE::KinBodyConstPtr>& bodies);
74  int CollisionTestTriangle(const OpenRAVE::Vector& t1, const OpenRAVE::Vector& t2, const OpenRAVE::Vector& t3, octomap::OcTree::leaf_bbx_iterator& it);
75  int CollisionTestTriangleAABB(const OpenRAVE::Vector& t1, const OpenRAVE::Vector& t2, const OpenRAVE::Vector& t3, float x, float y, float z, float eX, float eY, float eZ);
76  bool ContainsLink(const std::vector<OpenRAVE::KinBody::LinkConstPtr>& links, OpenRAVE::KinBody::LinkConstPtr link);
77  bool ContainsBody(const std::vector<OpenRAVE::KinBodyConstPtr>& links, OpenRAVE::KinBodyConstPtr link);
78  std::string m_specialObject;
79  OpenRAVE::CollisionCheckerBasePtr m_wrappedChecker;
81  octomap::OcTree* m_treeClone;
82  ros::Duration triangleTime;
83  ros::Duration bodyTime;
84  ros::Duration linkTime;
85  ros::Duration testTime;
86  ros::Duration geomTime;
87  };
88 } /* namespace perception_utils */
89 #endif /* OCTOMAPCOLLISIONCHECKER_H_ */
void ComputeTriangleAABB(const OpenRAVE::Vector &t1, const OpenRAVE::Vector &t2, const OpenRAVE::Vector &t3, OpenRAVE::AABB &aabb)
int CollisionTestTriangleAABB(const OpenRAVE::Vector &t1, const OpenRAVE::Vector &t2, const OpenRAVE::Vector &t3, float x, float y, float z, float eX, float eY, float eZ)
void SetWrappedChecker(OpenRAVE::CollisionCheckerBasePtr checker)
OpenRAVE::CollisionCheckerBasePtr m_wrappedChecker
virtual bool CheckCollision(OpenRAVE::KinBodyConstPtr pbody1, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr())
OctomapCollisionChecker(OpenRAVE::EnvironmentBasePtr env)
virtual bool CheckStandaloneSelfCollision(OpenRAVE::KinBodyConstPtr body, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr())
bool ContainsBody(const std::vector< OpenRAVE::KinBodyConstPtr > &links, OpenRAVE::KinBodyConstPtr link)
void SetInterface(OctomapInterface *interface)
bool ContainsLink(const std::vector< OpenRAVE::KinBody::LinkConstPtr > &links, OpenRAVE::KinBody::LinkConstPtr link)
virtual void Clone(OpenRAVE::InterfaceBaseConstPtr preference, int cloningoptions)
void SetTreeClone(octomap::OcTree *treeClone)
void GetNodesColliding(const std::string &objectName, std::vector< octomap::OcTreeNode * > &nodes)
virtual bool CheckOctomapCollision(OpenRAVE::KinBodyConstPtr pbody1, OpenRAVE::CollisionReportPtr report=OpenRAVE::CollisionReportPtr())
virtual bool SetCollisionOptions(int collisionoptions)
virtual void RemoveKinBody(OpenRAVE::KinBodyPtr body)
virtual bool InitKinBody(OpenRAVE::KinBodyPtr pbody)
bool ContainsSpecialBody(const std::vector< OpenRAVE::KinBodyConstPtr > &bodies)
int CollisionTestTriangle(const OpenRAVE::Vector &t1, const OpenRAVE::Vector &t2, const OpenRAVE::Vector &t3, octomap::OcTree::leaf_bbx_iterator &it)
virtual void SetTolerance(OpenRAVE::dReal tolerance)
OpenRAVE::CollisionCheckerBasePtr GetWrappedChecker()


or_octomap_plugin
Author(s): Yan Yu
autogenerated on Tue Oct 24 2017 18:02:48