Source code for py_trees_ros.mock.rotate

#!/usr/bin/env python
#
# License: BSD
#   https://raw.githubusercontent.com/stonier/py_trees/devel/LICENSE
#
##############################################################################
# Documentation
##############################################################################

"""
Mocks a simple action server that rotates the robot 360 degrees.
"""

##############################################################################
# Imports
##############################################################################

import math
import py_trees_msgs.msg as py_trees_msgs

from . import action_server

##############################################################################
# Classes
##############################################################################


[docs]class Rotate(action_server.ActionServer): """ Simple server that controls a full rotation of the robot. Args: rotation_rate (:obj:`float`): rate of rotation )rad/s) """
[docs] def __init__(self, rotation_rate=1.57): super(Rotate, self).__init__(action_name="rotate", action_type=py_trees_msgs.RotateAction, worker=self.worker, duration=2.0 * math.pi / rotation_rate ) self.start()
[docs] def worker(self): """ Create some appropriate feedback. """ self.action.action_feedback = 2 * math.pi * self.percent_completed / 100.0