Functions | |
def | _find_min_max_delta |
static bool | find_min_max_delta (double from, double left_limit, double right_limit, double &result_min_delta, double &result_max_delta) |
This function is only intended for internal use and not intended for external use. If you do use it, read the documentation very carefully. Returns the min and max amount (in radians) that can be moved from "from" angle to "left_limit" and "right_limit". | |
static double | from_degrees (double degrees) |
Convert degrees to radians. | |
def | normalize_angle |
static double | normalize_angle (double angle) |
normalize | |
def | normalize_angle_positive |
static double | normalize_angle_positive (double angle) |
normalize_angle_positive | |
def | shortest_angular_distance |
static double | shortest_angular_distance (double from, double to) |
shortest_angular_distance | |
def | shortest_angular_distance_with_limits |
static bool | shortest_angular_distance_with_limits (double from, double to, double left_limit, double right_limit, double &shortest_angle) |
Returns the delta from "from_angle" to "to_angle" making sure it does not violate limits specified by left_limit and right_limit. The valid interval of angular positions is [left_limit,right_limit]. E.g., [-0.25,0.25] is a 0.5 radians wide interval that contains 0. But [0.25,-0.25] is a 2*M_PI-0.5 wide interval that contains M_PI (but not 0). The value of shortest_angle is the angular difference between "from" and "to" that lies within the defined valid interval. E.g. shortest_angular_distance_with_limits(-0.5,0.5,0.25,-0.25,ss) evaluates ss to 2*M_PI-1.0 and returns true while shortest_angular_distance_with_limits(-0.5,0.5,-0.25,0.25,ss) returns false since -0.5 and 0.5 do not lie in the interval [-0.25,0.25]. | |
static double | to_degrees (double radians) |
Convert radians to degrees. | |
def | two_pi_complement |
static double | two_pi_complement (double angle) |
returns the angle in [-2*M_PI, 2*M_PI] going the other way along the unit circle. |
def angles._find_min_max_delta | ( | from_angle, | |
left_limit, | |||
right_limit | |||
) | [private] |
This function is only intended for internal use and not intended for external use. If you do use it, read the documentation very carefully. Returns the min and max amount (in radians) that can be moved from "from" angle to "left_limit" and "right_limit". \param from - "from" angle - must lie in [-pi, pi) \param left_limit - left limit of valid interval for angular position - must lie in [-pi, pi], left and right limits are specified on the unit circle w.r.t to a reference pointing inwards \param right_limit - right limit of valid interval for angular position - must lie in [-pi, pi], left and right limits are specified on the unit circle w.r.t to a reference pointing inwards \return (valid, min, max) - angle in radians that can be moved from "from" position before hitting the joint stop valid is False if "from" angle does not lie in the interval [left_limit,right_limit]
Definition at line 75 of file __init__.py.
static bool angles::find_min_max_delta | ( | double | from, |
double | left_limit, | ||
double | right_limit, | ||
double & | result_min_delta, | ||
double & | result_max_delta | ||
) | [static] |
This function is only intended for internal use and not intended for external use. If you do use it, read the documentation very carefully. Returns the min and max amount (in radians) that can be moved from "from" angle to "left_limit" and "right_limit".
from | - "from" angle - must lie in [-M_PI, M_PI) |
left_limit | - left limit of valid interval for angular position - must lie in [-M_PI, M_PI], left and right limits are specified on the unit circle w.r.t to a reference pointing inwards |
right_limit | - right limit of valid interval for angular position - must lie in [-M_PI, M_PI], left and right limits are specified on the unit circle w.r.t to a reference pointing inwards |
result_min_delta | - minimum (delta) angle (in radians) that can be moved from "from" position before hitting the joint stop |
result_max_delta | - maximum (delta) angle (in radians) that can be movedd from "from" position before hitting the joint stop |
static double angles::from_degrees | ( | double | degrees | ) | [inline, static] |
def angles.normalize_angle | ( | angle | ) |
Normalizes the angle to be -pi to +pi It takes and returns radians.
Definition at line 42 of file __init__.py.
static double angles::normalize_angle | ( | double | angle | ) | [inline, static] |
def angles.normalize_angle_positive | ( | angle | ) |
Normalizes the angle to be 0 to 2*pi It takes and returns radians.
Definition at line 37 of file __init__.py.
static double angles::normalize_angle_positive | ( | double | angle | ) | [inline, static] |
def angles.shortest_angular_distance | ( | from_angle, | |
to_angle | |||
) |
Given 2 angles, this returns the shortest angular difference. The inputs and ouputs are of course radians. The result would always be -pi <= result <= pi. Adding the result to "from" will always get you an equivelent angle to "to".
Definition at line 50 of file __init__.py.
static double angles::shortest_angular_distance | ( | double | from, |
double | to | ||
) | [inline, static] |
def angles.shortest_angular_distance_with_limits | ( | from_angle, | |
to_angle, | |||
left_limit, | |||
right_limit | |||
) |
Returns the delta from "from_angle" to "to_angle" making sure it does not violate limits specified by left_limit and right_limit. The valid interval of angular positions is [left_limit,right_limit]. E.g., [-0.25,0.25] is a 0.5 radians wide interval that contains 0. But [0.25,-0.25] is a 2*pi-0.5 wide interval that contains pi (but not 0). The value of shortest_angle is the angular difference between "from" and "to" that lies within the defined valid interval. E.g. shortest_angular_distance_with_limits(-0.5,0.5,0.25,-0.25) returns 2*pi-1.0 shortest_angular_distance_with_limits(-0.5,0.5,-0.25,0.25) returns None since -0.5 and 0.5 do not lie in the interval [-0.25,0.25] \param left_limit - left limit of valid interval for angular position - must lie in [-pi, pi], left and right limits are specified on the unit circle w.r.t to a reference pointing inwards \param right_limit - right limit of valid interval for angular position - must lie in [-pi, pi], left and right limits are specified on the unit circle w.r.t to a reference pointing inwards \returns valid_flag, shortest_angle
Definition at line 124 of file __init__.py.
static bool angles::shortest_angular_distance_with_limits | ( | double | from, |
double | to, | ||
double | left_limit, | ||
double | right_limit, | ||
double & | shortest_angle | ||
) | [inline, static] |
Returns the delta from "from_angle" to "to_angle" making sure it does not violate limits specified by left_limit and right_limit. The valid interval of angular positions is [left_limit,right_limit]. E.g., [-0.25,0.25] is a 0.5 radians wide interval that contains 0. But [0.25,-0.25] is a 2*M_PI-0.5 wide interval that contains M_PI (but not 0). The value of shortest_angle is the angular difference between "from" and "to" that lies within the defined valid interval. E.g. shortest_angular_distance_with_limits(-0.5,0.5,0.25,-0.25,ss) evaluates ss to 2*M_PI-1.0 and returns true while shortest_angular_distance_with_limits(-0.5,0.5,-0.25,0.25,ss) returns false since -0.5 and 0.5 do not lie in the interval [-0.25,0.25].
from | - "from" angle |
to | - "to" angle |
left_limit | - left limit of valid interval for angular position, left and right limits are specified on the unit circle w.r.t to a reference pointing inwards |
right_limit | - right limit of valid interval for angular position, left and right limits are specified on the unit circle w.r.t to a reference pointing inwards |
shortest_angle | - result of the shortest angle calculation |
static double angles::to_degrees | ( | double | radians | ) | [inline, static] |
def angles.two_pi_complement | ( | angle | ) |
returns the angle in [-2*pi, 2*pi] going the other way along the unit circle. \param angle The angle to which you want to turn in the range [-2*pi, 2*pi] E.g. two_pi_complement(-pi/4) returns 7_pi/4 two_pi_complement(pi/4) returns -7*pi/4
Definition at line 59 of file __init__.py.
static double angles::two_pi_complement | ( | double | angle | ) | [inline, static] |