8 #ifndef OCTOMAPCOLLISIONCHECKER_H_ 9 #define OCTOMAPCOLLISIONCHECKER_H_ 11 #include <octomap/OcTree.h> 13 #include <openrave/openrave.h> 14 #include <openrave/collisionchecker.h> 20 class OctomapInterface;
27 virtual void Clone (OpenRAVE::InterfaceBaseConstPtr preference,
int cloningoptions);
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());
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());
68 void GetNodesColliding(
const std::string& objectName, std::vector<octomap::OcTreeNode*>& nodes);
72 void ComputeTriangleAABB(
const OpenRAVE::Vector& t1,
const OpenRAVE::Vector& t2,
const OpenRAVE::Vector& t3, OpenRAVE::AABB& aabb);
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);
OctomapInterface * GetInterface()
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)
virtual bool InitEnvironment()
virtual ~OctomapCollisionChecker()
void SetInterface(OctomapInterface *interface)
octomap::OcTree * m_treeClone
octomap::OcTree * GetTreeClone()
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())
bool MaskObject(std::string name)
ros::Duration triangleTime
virtual bool SetCollisionOptions(int collisionoptions)
virtual void RemoveKinBody(OpenRAVE::KinBodyPtr body)
virtual bool InitKinBody(OpenRAVE::KinBodyPtr pbody)
virtual void DestroyEnvironment()
OctomapInterface * m_server
virtual int GetCollisionOptions() const
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()
std::string m_specialObject