robot_smach_states.navigation.control_to_pose

Classes

ControlParameters

position_gain: (float) Tunable parameter to increase or decrease the change in position per time

ControlToPose

State that allows the tuning of robot navigation to a specific goal through custom speeds, gains and tolerances

Functions

_clamp(abs_value, value)

_get_yaw_from_quaternion_msg(msg)

Returns the yaw angle from a rotation in quaternion representation (msg)

Module Contents

robot_smach_states.navigation.control_to_pose._clamp(abs_value, value)
robot_smach_states.navigation.control_to_pose._get_yaw_from_quaternion_msg(msg)

Returns the yaw angle from a rotation in quaternion representation (msg)

Parameters:

msg – The quaternion msg

Returns:

(float) Yaw angle in rad

class robot_smach_states.navigation.control_to_pose.ControlParameters

Bases: namedtuple('ControlParameters', ['position_gain', 'rotation_gain', 'abs_vx', 'abs_vy', 'abs_vyaw', 'goal_position_tolerance', 'goal_rotation_tolerance'])

position_gain: (float) Tunable parameter to increase or decrease the change in position per time rotation_gain: (float) Tunable parameter to increase or decrease the change in yaw per time abs_vx: (float) Absolute velocity in x [m/s] abs_vy: (float) Absolute velocity in y [m/s] abs_vyaw: (float) Absolute velocity in yaw [rad/s] goal_position_tolerance: (float) Tolerance in position [m] goal_rotation_tolerance: (float) Tolerance in yaw [rad]

Initialize self. See help(type(self)) for accurate signature.

class robot_smach_states.navigation.control_to_pose.ControlToPose(robot, goal_pose, control_parameters, rate=10)

Bases: smach.State

State that allows the tuning of robot navigation to a specific goal through custom speeds, gains and tolerances

Parameters:
  • robot – (Robot) api object

  • goal_pose – (PoseStamped or Designator to PoseStamped) Position the robot needs to go to

  • control_parameters – (namedtuple, ControlParameters) Parameters that specify how the robot should reach

  • rate – (float, int) Control rate [Hz]

robot
goal_pose
params
_rate = 10
execute(userdata=None)
_get_target_delta_in_robot_frame(goal_pose)

Transfers the goal pose to robot frame

Parameters:

goal_pose – (PoseStamped) Position the robot needs to go to

Returns:

(float) x position of goal in robot frame, (float) y position of goal in robot frame, (float) yaw of goal in robot frame

_goal_reached(dx, dy, dyaw)

Checks if the goal pose is reached

Parameters:
  • dx – (float)[m] Margin between goal_pose and robot in x

  • dy – (float)[m] Margin between goal_pose and robot in y

  • dyaw – (float)[rad] Margin between goal_pose and robot in yaw

Returns:

(bool) Boolean indicating whether the margins are reached