Skip to content

Commit

Permalink
Merge pull request #995 from tue-robotics/deduplicate_wrap_angle_pi
Browse files Browse the repository at this point in the history
Import wrap_angle_pi from util.geometry helpers
  • Loading branch information
alberth committed Feb 1, 2020
2 parents 678466a + 45987ad commit 73d0af2
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 31 deletions.
17 changes: 2 additions & 15 deletions challenge_dishwasher/src/challenge_dishwasher/open_dishwasher.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from robot_skills.util.kdl_conversions import frame_stamped, VectorStamped
from robot_smach_states import NavigateToSymbolic
from robot_smach_states.util.designators import EdEntityDesignator
from robot_smach_states.util.geometry_helpers import wrap_angle_pi
from smach import StateMachine, State, cb_interface, CBState
from tf.transformations import euler_from_quaternion, quaternion_from_euler

Expand All @@ -31,20 +32,6 @@ def _get_yaw_from_quaternion_msg(msg):
return yaw


def _wrap_angle_pi(angle):
"""
Wraps between -pi and +pi
:param angle: Input angle
:return: Wrapped angle
"""
angle = angle % (2 * math.pi)
if angle > math.pi:
return angle - 2 * math.pi
elif angle < -math.pi:
return angle + 2 * math.pi
return angle


ControlParameters = namedtuple('ControlParameters', [
'position_gain',
Expand Down Expand Up @@ -101,7 +88,7 @@ def _get_target_delta_in_robot_frame(self, goal_pose):
goal_pose.header.stamp = rospy.Time.now()
pose = self._tf_buffer.transform(goal_pose, self.robot.robot_name + '/base_link', rospy.Duration(1.0))
yaw = _get_yaw_from_quaternion_msg(pose.pose.orientation)
return pose.pose.position.x, pose.pose.position.y, _wrap_angle_pi(yaw)
return pose.pose.position.x, pose.pose.position.y, wrap_angle_pi(yaw)

def _goal_reached(self, dx, dy, dyaw):
return math.hypot(dx, dy) < self.params.goal_position_tolerance and abs(dyaw) < self.params.goal_rotation_tolerance
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import robot_smach_states as states

import robot_smach_states.util.designators as ds
from robot_smach_states.util.geometry_helpers import wrap_angle_pi


def _clamp(abs_value, value):
Expand All @@ -45,21 +46,6 @@ def _get_yaw_from_quaternion_msg(msg):
return yaw


def _wrap_angle_pi(angle):
"""
Wraps between -pi and +pi
-pi is excluded, (-pi, pi]
:param angle: Input angle
:return: Wrapped angle
"""
angle = angle % (2 * math.pi)
if angle > math.pi:
return angle - 2 * math.pi
elif angle <= -math.pi:
return angle + 2 * math.pi
return angle


class UpdateCabinetPose(smach.State):
def __init__(self, robot, cabinet, cabinet_inspect_area):
Expand Down Expand Up @@ -99,7 +85,7 @@ def _get_target_delta_in_robot_frame(self, goal_pose):
goal_pose.header.stamp = rospy.Time.now()
pose = self._tf_buffer.transform(goal_pose, self.robot.robot_name + '/base_link', rospy.Duration(1.0))
yaw = _get_yaw_from_quaternion_msg(pose.pose.orientation)
return pose.pose.position.x, pose.pose.position.y, _wrap_angle_pi(yaw)
return pose.pose.position.x, pose.pose.position.y, wrap_angle_pi(yaw)

def _goal_reached(self, dx, dy, dyaw):
return math.hypot(dx, dy) < self._goal_position_tolerance and abs(dyaw) < self._goal_rotation_tolerance
Expand Down

0 comments on commit 73d0af2

Please sign in to comment.