Source code for compas_fab.backends.ros.planner


"""
Internal implementation of the planner backend interface for MoveIt!
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

from compas_fab.backends.interfaces.client import forward_docstring
from compas_fab.backends.interfaces.client import PlannerInterface
from compas_fab.backends.ros.backend_features import MoveItResetPlanningScene
from compas_fab.backends.ros.backend_features.move_it_add_attached_collision_mesh import MoveItAddAttachedCollisionMesh
from compas_fab.backends.ros.backend_features.move_it_add_collision_mesh import MoveItAddCollisionMesh
from compas_fab.backends.ros.backend_features.move_it_append_collision_mesh import MoveItAppendCollisionMesh
from compas_fab.backends.ros.backend_features.move_it_forward_kinematics import MoveItForwardKinematics
from compas_fab.backends.ros.backend_features.move_it_inverse_kinematics import MoveItInverseKinematics
from compas_fab.backends.ros.backend_features.move_it_plan_cartesian_motion import MoveItPlanCartesianMotion
from compas_fab.backends.ros.backend_features.move_it_plan_motion import MoveItPlanMotion
from compas_fab.backends.ros.backend_features.move_it_planning_scene import MoveItPlanningScene
from compas_fab.backends.ros.backend_features.move_it_remove_attached_collision_mesh import MoveItRemoveAttachedCollisionMesh
from compas_fab.backends.ros.backend_features.move_it_remove_collision_mesh import MoveItRemoveCollisionMesh


__all__ = [
    'MoveItPlanner',
]


[docs]class MoveItPlanner(PlannerInterface): """Implement the planner backend interface based on MoveIt! """
[docs] def __init__(self, client): super(MoveItPlanner, self).__init__(client)
[docs] @forward_docstring(MoveItForwardKinematics) def forward_kinematics(self, *args, **kwargs): return MoveItForwardKinematics(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItInverseKinematics) def inverse_kinematics(self, *args, **kwargs): return MoveItInverseKinematics(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItPlanCartesianMotion) def plan_cartesian_motion(self, *args, **kwargs): return MoveItPlanCartesianMotion(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItPlanMotion) def plan_motion(self, *args, **kwargs): return MoveItPlanMotion(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItPlanningScene) def get_planning_scene(self, *args, **kwargs): return MoveItPlanningScene(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItResetPlanningScene) def reset_planning_scene(self, *args, **kwargs): return MoveItResetPlanningScene(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItAddCollisionMesh) def add_collision_mesh(self, *args, **kwargs): return MoveItAddCollisionMesh(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItRemoveCollisionMesh) def remove_collision_mesh(self, *args, **kwargs): return MoveItRemoveCollisionMesh(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItAppendCollisionMesh) def append_collision_mesh(self, *args, **kwargs): return MoveItAppendCollisionMesh(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItAddAttachedCollisionMesh) def add_attached_collision_mesh(self, *args, **kwargs): return MoveItAddAttachedCollisionMesh(self.client)(*args, **kwargs)
[docs] @forward_docstring(MoveItRemoveAttachedCollisionMesh) def remove_attached_collision_mesh(self, *args, **kwargs): return MoveItRemoveAttachedCollisionMesh(self.client)(*args, **kwargs)