From b8474f482d699feb2c803baad4dc218c9dd590fe Mon Sep 17 00:00:00 2001 From: Andrew Lui Date: Sun, 7 Jul 2024 17:37:00 +1000 Subject: [PATCH 1/4] move the tools modules to task_trees.tools to avoid potential name clashes when task trees work with other packages. remove demos from the module list in the setup.py file. Update rviz_tools.py to make it the same release as rviz_marker_tool which include publishing of MarkerArray . Modified the BasicTask class and remove all pose specific parameters and functions to recover its intention as a generic task class. --- CMakeLists.txt | 2 +- demos/gridscan/behaviours_advanced.py | 4 +- demos/gridscan/behaviours_gridscan.py | 2 +- demos/gridscan/task_trees_manager_gridscan.py | 15 +- demos/pickndrop/behaviours_pnd.py | 2 +- demos/pickndrop/demo.py | 2 +- demos/pickndrop/task_trees_manager_pnd.py | 12 +- demos/pickndrop_estop/behaviours_pnd.py | 54 +++ .../pickndrop_estop/task_trees_manager_pnd.py | 14 +- .../pushblock/task_trees_manager_pushblock.py | 8 +- demos/pushblock_ros/ros_demo.py | 2 +- demos/pushblock_ros/ros_server.py | 2 +- demos/rviz_display/task_trees_manager_rviz.py | 8 +- demos/task_moves/task_move_4_gui.py | 2 +- setup.py | 2 +- task_trees/behaviours_base.py | 3 +- task_trees/behaviours_move.py | 2 +- task_trees/behaviours_move_sense.py | 2 +- task_trees/demos/pushblock/demo.py | 119 ++++++ .../demos/pushblock/docs/DemoPushBlock1.gif | Bin 0 -> 829318 bytes .../demos/pushblock/docs/PushBlockDesign.png | Bin 0 -> 133401 bytes .../docs/PushBlockReferenceFrames.png | Bin 0 -> 8471 bytes task_trees/demos/pushblock/task_scene.yaml | 90 +++++ .../pushblock/task_trees_manager_pushblock.py | 334 +++++++++++++++++ task_trees/scene_to_rviz.py | 10 +- task_trees/task_scene.py | 2 +- task_trees/task_trees_manager.py | 30 +- {tools => task_trees/tools}/__init__.py | 0 {tools => task_trees/tools}/logging_tools.py | 0 {tools => task_trees/tools}/pose_tools.py | 0 {tools => task_trees/tools}/rospkg_tools.py | 0 {tools => task_trees/tools}/rviz_tools.py | 345 ++++++++++++++---- 32 files changed, 923 insertions(+), 145 deletions(-) create mode 100644 demos/pickndrop_estop/behaviours_pnd.py create mode 100644 task_trees/demos/pushblock/demo.py create mode 100644 task_trees/demos/pushblock/docs/DemoPushBlock1.gif create mode 100644 task_trees/demos/pushblock/docs/PushBlockDesign.png create mode 100644 task_trees/demos/pushblock/docs/PushBlockReferenceFrames.png create mode 100644 task_trees/demos/pushblock/task_scene.yaml create mode 100644 task_trees/demos/pushblock/task_trees_manager_pushblock.py rename {tools => task_trees/tools}/__init__.py (100%) rename {tools => task_trees/tools}/logging_tools.py (100%) rename {tools => task_trees/tools}/pose_tools.py (100%) rename {tools => task_trees/tools}/rospkg_tools.py (100%) rename {tools => task_trees/tools}/rviz_tools.py (60%) diff --git a/CMakeLists.txt b/CMakeLists.txt index e377b2a..ebaf2fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -163,7 +163,7 @@ include_directories( ## Mark executable scripts (Python etc.) for installation ## in contrast to setup.py, you can choose the destination catkin_install_python(PROGRAMS - demos/pushblock/demo.py + task_trees/demos/pushblock/demo.py DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} ) diff --git a/demos/gridscan/behaviours_advanced.py b/demos/gridscan/behaviours_advanced.py index 9cdd3bd..0bee935 100644 --- a/demos/gridscan/behaviours_advanced.py +++ b/demos/gridscan/behaviours_advanced.py @@ -15,8 +15,8 @@ from py_trees.common import Status # robot control module from task_scene_gridscan import GridScanScene -from tools.logging_tools import logger -from demos.gridscan.behaviours_gridscan import DoMoveTankGrid +from task_trees.tools.logging_tools import logger +from behaviours_gridscan import DoMoveTankGrid # ----------------------------------------------------------------------------------------------------- # Advanced behaviours for illustrating the versatility of the ConditionalCommanderBehaviour base class diff --git a/demos/gridscan/behaviours_gridscan.py b/demos/gridscan/behaviours_gridscan.py index 3bc989f..a4d9282 100644 --- a/demos/gridscan/behaviours_gridscan.py +++ b/demos/gridscan/behaviours_gridscan.py @@ -16,7 +16,7 @@ # robot control module from task_trees.behaviours_move import SceneConditionalCommanderBehaviour from task_scene_gridscan import GridScanScene -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger # ---------------------------------------------------------------------- # Custom Behaviour Classes diff --git a/demos/gridscan/task_trees_manager_gridscan.py b/demos/gridscan/task_trees_manager_gridscan.py index ee52753..a64a64d 100644 --- a/demos/gridscan/task_trees_manager_gridscan.py +++ b/demos/gridscan/task_trees_manager_gridscan.py @@ -23,11 +23,11 @@ from task_trees.behaviours_base import * from task_trees.task_trees_manager import BasicTaskTreesManager, TaskTreesManager, BasicTask, TaskStates from task_trees.scene_to_rviz import SceneToRViz -from demos.gridscan.behaviours_gridscan import SimCalibrate, DoMoveTankGrid -from demos.gridscan.behaviours_advanced import DoMoveTankGridVisualCDROS +from behaviours_gridscan import SimCalibrate, DoMoveTankGrid +from behaviours_advanced import DoMoveTankGridVisualCDROS -from tools.logging_tools import logger -import tools.pose_tools as pose_tools +from task_trees.tools.logging_tools import logger +import task_trees.tools.pose_tools as pose_tools # ------------------------------------- # Tasks specialized for this application @@ -55,6 +55,7 @@ def __init__(self, named_pose:str): class MoveGridPoseTask(BasicTask): def __init__(self, tile_x:int, tile_y:int, cell_x:int, cell_y:int): super(MoveGridPoseTask, self).__init__([tile_x, tile_y, cell_x, cell_y]) + # ---------------------------------------- # The TaskManager specialized for this application @@ -118,20 +119,20 @@ def query_grid_position_of_task(self): """ if not self.the_blackboard.exists('task'): raise TypeError(f'unable to query logical pose due to no task has been submitted') - return self.the_blackboard.task.get_goal_as_logical_pose() + return self.the_blackboard.task.get_param() # return the logical rotation of the accepted task, or raise TypeError if no task is submitted def query_logical_rpy_of_task(self): if not self.the_blackboard.exists('task'): raise TypeError(f'unable to query logical rotation due to no task has been submitted') - grid_position = self.the_blackboard.task.get_goal_as_logical_pose() + grid_position = self.the_blackboard.task.get_param() rpy = self.the_scene.compute_rpy_from_grid_position(grid_position) return rpy # internal function for obtaining the logical pose of the current task as xyzrpy def _get_task_target_xyzrpy(self) -> list: if self.the_blackboard.exists('task'): - logical_pose = self.the_blackboard.task.get_goal_as_logical_pose() + logical_pose = self.the_blackboard.task.get_param() return self.the_scene.compute_xyzrpy_from_grid_position(logical_pose) return False diff --git a/demos/pickndrop/behaviours_pnd.py b/demos/pickndrop/behaviours_pnd.py index 4daf101..cb39d5e 100644 --- a/demos/pickndrop/behaviours_pnd.py +++ b/demos/pickndrop/behaviours_pnd.py @@ -13,7 +13,7 @@ # robot control module import arm_commander.tools.moveit_tools as moveit_tools from task_trees.behaviours_base import ConditionalBehaviour, ConditionalCommanderBehaviour -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger from scan_model import ScanRegionModel # ---------------------------------------------------------------------- diff --git a/demos/pickndrop/demo.py b/demos/pickndrop/demo.py index 216224a..46597a4 100644 --- a/demos/pickndrop/demo.py +++ b/demos/pickndrop/demo.py @@ -18,7 +18,7 @@ from arm_commander.commander_moveit import GeneralCommander from task_trees_manager_pnd import PNDTaskTreesManager, ScanTask, PickUpObjectTask, DropObjectTask from task_trees.states import TaskStates -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger # -- Test cases specialized for the PickNDrop Demo class DemoStates(Enum): diff --git a/demos/pickndrop/task_trees_manager_pnd.py b/demos/pickndrop/task_trees_manager_pnd.py index 63e5145..d4bd664 100644 --- a/demos/pickndrop/task_trees_manager_pnd.py +++ b/demos/pickndrop/task_trees_manager_pnd.py @@ -22,8 +22,8 @@ from task_trees.task_trees_manager import TaskTreesManager, BasicTask from task_trees.task_scene import Scene from task_trees.scene_to_rviz import SceneToRViz -import tools.pose_tools as pose_tools -from demos.pickndrop.behaviours_pnd import DoScanProgram +import task_trees.tools.pose_tools as pose_tools +from behaviours_pnd import DoScanProgram from scan_model import SingleLineScanModel, SteppingScanModel, FourCornersScanModel # ------------------------------------- @@ -52,6 +52,8 @@ class PickUpObjectTask(BasicTask): def __init__(self, xyz_world:list): super(PickUpObjectTask, self).__init__() self.xyz = xyz_world + def get_xyz(self): + return self.xyz class DropObjectTask(BasicTask): @@ -62,7 +64,9 @@ def __init__(self): class MovePoseTask(BasicTask): def __init__(self, xyz_world:list): super(MovePoseTask, self).__init__() - self.xyz = xyz_world + self.xyz = xyz_world + def get_xyz(self): + return self.xyz # ---------------------------------------- # The TaskManager specialized for this application @@ -161,7 +165,7 @@ def query_logical_pose_of_task(self): :rtype: unspecified as defined by the specific subclass of BasicTask """ if self.the_blackboard.exists('task'): - return self.the_blackboard.task.get_goal_as_logical_pose() + return self.the_blackboard.task.get_param() raise TypeError(f'unable to query logical pose due to no task has been submitted') # return the target position of the accepted task, or raise TypeError if no task is submitted diff --git a/demos/pickndrop_estop/behaviours_pnd.py b/demos/pickndrop_estop/behaviours_pnd.py new file mode 100644 index 0000000..cb39d5e --- /dev/null +++ b/demos/pickndrop_estop/behaviours_pnd.py @@ -0,0 +1,54 @@ +# Copyright 2024 - Andrew Kwok Fai LUI, +# Robotics and Autonomous Systems Group, REF, RI +# and the Queensland University of Technology + +__author__ = 'Andrew Lui' +__copyright__ = 'Copyright 2024' +__license__ = 'GPL' +__version__ = '1.0' +__email__ = 'ak.lui@qut.edu.au' +__status__ = 'Development' + +from py_trees.common import Status +# robot control module +import arm_commander.tools.moveit_tools as moveit_tools +from task_trees.behaviours_base import ConditionalBehaviour, ConditionalCommanderBehaviour +from task_trees.tools.logging_tools import logger +from scan_model import ScanRegionModel + +# ---------------------------------------------------------------------- +# Behaviour Classes for the Pick-n-Drop robot arm manipulation application + +class DoScanProgram(ConditionalCommanderBehaviour): + """ This behaviour moves the end-effector over a planar region according toa program + The orientation of the end-effector is fixed. + """ + def __init__(self, name, condition_fn=True, condition_policy=None, arm_commander=None, scan_program:ScanRegionModel=None): + """ the constructor, refers to the constructor ConditionalCommanderBehaviour for the description of the other parameters + :param scan_program: the scan program + :type scan_program: ScanRegionModel + """ + super(DoScanProgram, self).__init__(name=name, condition_fn=condition_fn, condition_policy=condition_policy, arm_commander=arm_commander) + if scan_program is None: + logger.error(f'{__class__.__name__} ({self.name}): parameter (scan_program) is None -> fix the missing value at behaviour construction') + raise AssertionError(f'A parameter should not be None nor missing') + self.scan_program:ScanRegionModel = scan_program + # the concrete implementation of the logic when the General Commander is READY + def update_when_ready(self): + xyz = self.scan_program.get_next_xyz() + if xyz is None: + self.scan_program.reset() + xyz = self.scan_program.get_next_xyz() + + # a heck to test the use of orientation constraint + self.arm_commander.add_path_constraints(moveit_tools.create_path_orientation_constraint( + self.arm_commander.END_EFFECTOR_LINK, self.arm_commander.pose_in_frame('the_table'), 0.05, 0.05, 6.28)) + # send the command to the General Commander in an asynchronous manner + self.arm_commander.move_to_position(x=xyz[0], y=xyz[1], z=xyz[2], cartesian=True, reference_frame='the_table', wait=False) + logger.info(f'DoScanProgram ({self.name}): started move to pose: {xyz} in reference frame "the_table"') + return Status.RUNNING + # the concrete implementation of the logic when the command is completed + def tidy_up(self): + super().tidy_up() + self.scan_program.done_current() + self.arm_commander.clear_path_constraints() diff --git a/demos/pickndrop_estop/task_trees_manager_pnd.py b/demos/pickndrop_estop/task_trees_manager_pnd.py index f717280..58c4ad0 100644 --- a/demos/pickndrop_estop/task_trees_manager_pnd.py +++ b/demos/pickndrop_estop/task_trees_manager_pnd.py @@ -18,14 +18,14 @@ # robot control module from arm_commander.commander_moveit import GeneralCommander, logger -import tools.pose_tools as pose_tools +import task_trees.tools.pose_tools as pose_tools from task_trees.behaviours_base import SimAttachObject, SimDetachObject from task_trees.behaviours_move import DoMoveNamedPose, DoMoveXYZ from task_trees.task_trees_manager import GuardedTaskTreesManager, BasicTask from task_trees.task_scene import Scene -from demos.pickndrop.behaviours_pnd import DoScanProgram +from behaviours_pnd import DoScanProgram from scan_model import SingleLineScanModel, SteppingScanModel, FourCornersScanModel # ------------------------------------- @@ -54,18 +54,20 @@ class PickUpObjectTask(BasicTask): def __init__(self, xyz_world:list): super(PickUpObjectTask, self).__init__() self.xyz = xyz_world - + def get_xyz(self): + return self.xyz class DropObjectTask(BasicTask): def __init__(self): super(DropObjectTask, self).__init__() - class MovePoseTask(BasicTask): def __init__(self, xyz_world:list): super(MovePoseTask, self).__init__() self.xyz = xyz_world - + def get_xyz(self): + return self.xyz + # ---------------------------------------- # The TaskManager specialized for this application class PNDTaskTreesManager(GuardedTaskTreesManager): @@ -157,7 +159,7 @@ def query_logical_pose_of_task(self): :rtype: unspecified as defined by the specific subclass of BasicTask """ if self.the_blackboard.exists('task'): - return self.the_blackboard.task.get_goal_as_logical_pose() + return self.the_blackboard.task.get_param() raise TypeError(f'unable to query logical pose due to no task has been submitted') # return the target position of the accepted task, or raise TypeError if no task is submitted diff --git a/demos/pushblock/task_trees_manager_pushblock.py b/demos/pushblock/task_trees_manager_pushblock.py index 77ee515..95d518d 100644 --- a/demos/pushblock/task_trees_manager_pushblock.py +++ b/demos/pushblock/task_trees_manager_pushblock.py @@ -25,7 +25,7 @@ from task_trees.task_trees_manager import TaskTreesManager, BasicTask from task_trees.task_scene import Scene from task_trees.scene_to_rviz import SceneToRViz -import tools.pose_tools as pose_tools +import task_trees.tools.pose_tools as pose_tools # ------------------------------------- # Tasks specialized for the Pick-n-Drop @@ -140,7 +140,7 @@ def query_logical_pose_of_task(self): :rtype: unspecified as defined by the specific subclass of BasicTask """ if self.the_blackboard.exists('task'): - return self.the_blackboard.task.get_goal_as_logical_pose() + return self.the_blackboard.task.get_param() raise TypeError(f'unable to query logical pose due to no task has been submitted') def query_current_reference_frame(self): @@ -155,7 +155,7 @@ def query_target_reference_frame(self): :rtype: str """ if self.the_blackboard.exists('task'): - target = self.the_blackboard.task.get_goal_as_logical_pose() + target = self.the_blackboard.task.get_param() return target raise TypeError(f'unable to query the target due to no task has been submitted') @@ -163,7 +163,7 @@ def query_target_reference_frame(self): # defined in the config file def query_rotation_from_target(self): if self.the_blackboard.exists('task'): - target = self.the_blackboard.task.get_goal_as_logical_pose() + target = self.the_blackboard.task.get_param() rotation = self.the_scene.query_config(target + ".rotation") return rotation raise TypeError(f'unable to query the rotation due to no task has been submitted or the target area is wrong') diff --git a/demos/pushblock_ros/ros_demo.py b/demos/pushblock_ros/ros_demo.py index 76e2f57..683d1c2 100644 --- a/demos/pushblock_ros/ros_demo.py +++ b/demos/pushblock_ros/ros_demo.py @@ -15,7 +15,7 @@ import rospy, actionlib from actionlib_msgs.msg import GoalStatus from task_trees.msg import TaskAction, TaskGoal, TaskFeedback, TaskResult -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger # -- Test cases specialized for the Push Block Demo class PushBlockROSClientDemo(): diff --git a/demos/pushblock_ros/ros_server.py b/demos/pushblock_ros/ros_server.py index f7606f4..79e72ae 100644 --- a/demos/pushblock_ros/ros_server.py +++ b/demos/pushblock_ros/ros_server.py @@ -17,7 +17,7 @@ from arm_commander.commander_moveit import GeneralCommander, logger from task_trees.msg import TaskAction, TaskGoal, TaskResult from task_trees.states import COMPLETION_STATES -from demos.pushblock.task_trees_manager_pushblock import * +from task_trees.demos.pushblock.task_trees_manager_pushblock import * class PushBlockROSServer(): """ The server side of the application program for the PushBlock Demo that implements the behaviour tree diff --git a/demos/rviz_display/task_trees_manager_rviz.py b/demos/rviz_display/task_trees_manager_rviz.py index fb94d0a..202cab9 100644 --- a/demos/rviz_display/task_trees_manager_rviz.py +++ b/demos/rviz_display/task_trees_manager_rviz.py @@ -17,15 +17,11 @@ # robot control module from arm_commander.commander_moveit import GeneralCommander, logger -import arm_commander.tools.moveit_tools as moveit_tools -from task_trees.states import TaskStates -from task_trees.behaviours_base import SimAttachObject, SimDetachObject, PrintPosesInFrame, PrintPose from task_trees.behaviours_move import DoMoveNamedPose, DoMoveXYZ, DoMoveXYZRPY, DoRotate from task_trees.task_trees_manager import TaskTreesManager, BasicTask from task_trees.task_scene import Scene from task_trees.scene_to_rviz import SceneToRViz -import tools.pose_tools as pose_tools # ------------------------------------- # Tasks specialized for this demo @@ -44,7 +40,7 @@ def __init__(self, named_pose:str): # ---------------------------------------- # The TaskManager specialized for this application class RVizTaskTreesManager(TaskTreesManager): - """ This is a subclass specialized for the pick-n-drop application + """ This is a subclass specialized for the rviz demo """ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): """ the constructor @@ -90,7 +86,7 @@ def query_logical_pose_of_task(self): :rtype: unspecified as defined by the specific subclass of BasicTask """ if self.the_blackboard.exists('task'): - return self.the_blackboard.task.get_goal_as_logical_pose() + return self.the_blackboard.task.get_param() raise TypeError(f'unable to query logical pose due to no task has been submitted') # ------------------------------------------------- diff --git a/demos/task_moves/task_move_4_gui.py b/demos/task_moves/task_move_4_gui.py index 51438c8..8643742 100644 --- a/demos/task_moves/task_move_4_gui.py +++ b/demos/task_moves/task_move_4_gui.py @@ -15,7 +15,7 @@ from graphics import * import rospy from std_msgs.msg import Int8 -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger # Require the python Tkinter module # sudo apt install python3-tk diff --git a/setup.py b/setup.py index fdacc5c..5253ea7 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ # fetch values from package.xml setup_args = generate_distutils_setup( - packages=['task_trees', 'demos', 'tools'], + packages=['task_trees'], package_dir={'': '.'}, python_requires='>=3.9', install_requires=req_packages diff --git a/task_trees/behaviours_base.py b/task_trees/behaviours_base.py index 683b47c..60fc8d1 100644 --- a/task_trees/behaviours_base.py +++ b/task_trees/behaviours_base.py @@ -20,7 +20,8 @@ from arm_commander.commander_moveit import GeneralCommander, GeneralCommanderStates from task_trees.states import TaskStates from task_trees.task_scene import Scene -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger + # ----------------------------------------------------------------- # The base behaviours as an extension to PyTrees for working # with other components in a robot arm manipulation application diff --git a/task_trees/behaviours_move.py b/task_trees/behaviours_move.py index 1be15b3..13b789f 100644 --- a/task_trees/behaviours_move.py +++ b/task_trees/behaviours_move.py @@ -14,7 +14,7 @@ from geometry_msgs.msg import Pose, PoseStamped # robot control module from task_trees.behaviours_base import ConditionalCommanderBehaviour, SceneConditionalCommanderBehaviour, PrintPose -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger # ---------------------------------------------------------------------- # Move Behaviour Classes for robot arm manipulation applications diff --git a/task_trees/behaviours_move_sense.py b/task_trees/behaviours_move_sense.py index 8e69d62..73430cc 100644 --- a/task_trees/behaviours_move_sense.py +++ b/task_trees/behaviours_move_sense.py @@ -15,7 +15,7 @@ # robot control module from task_trees.behaviours_base import ConditionalBehaviour from task_trees.behaviours_move import DoMoveXYZ -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger # ----------------------------------------------------------------------------------------------------- # Advanced behaviours for illustrating the use of a ROS message topic to alert an imminent risk, such # as collision, and to abort the move behaviour diff --git a/task_trees/demos/pushblock/demo.py b/task_trees/demos/pushblock/demo.py new file mode 100644 index 0000000..32e3cce --- /dev/null +++ b/task_trees/demos/pushblock/demo.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python3 + +# Copyright 2024 - Andrew Kwok Fai LUI, +# Robotics and Autonomous Systems Group, REF, RI +# and the Queensland University of Technology + +__author__ = 'Andrew Lui' +__copyright__ = 'Copyright 2024' +__license__ = 'GPL' +__version__ = '1.0' +__email__ = 'ak.lui@qut.edu.au' +__status__ = 'Development' + +import random, sys, signal, time +import py_trees +# robot control module +from arm_commander.commander_moveit import GeneralCommander, logger +from task_trees.demos.pushblock.task_trees_manager_pushblock import * + +# -- Test cases specialized for the Push Block Demo +# -- NOTE: setup so that it can be installed as a rosrun demo program +class PushBlockDemoApplication(): + """ The application program for the PushBlock Demo + """ + def __init__(self): + signal.signal(signal.SIGINT, self.stop) + self.the_blackboard = py_trees.blackboard.Client() + self.the_blackboard.register_key(key='the_object', access=py_trees.common.Access.READ) + + self.arm_commander = GeneralCommander('panda_arm') + self.the_task_manager = PushBlockTaskTreesManager(self.arm_commander) + # self.the_task_manager.display_tree() + self._run_demo() + self.the_task_manager.spin() + + def stop(self, *args, **kwargs): + logger.info('stop signal received') + self.the_task_manager.shutdown() + sys.exit(0) + + def _run_test(self): + task_manager = self.the_task_manager + logger.info(f'=== Test 1') + logger.info(f'=== Submit a MoveNamedPoseTask (stow)') + task_manager.submit_task(the_task:=MoveNamedPoseTask('named_poses.stow')) + the_task.wait_for_completion() + logger.info(f'=== Submit a MoveNamedPoseTask (home)') + task_manager.submit_task(the_task:=MoveNamedPoseTask('named_poses.home')) + the_task.wait_for_completion() + logger.info(f'=== Test Finished') + + def _run_push_test(self): + task_manager = self.the_task_manager + the_task = None + logger.info(f'=== PushBlock Demo Started') + logger.info(f'=== Submit a MoveNamedPoseTask (home)') + task_manager.submit_task(the_task:=MoveNamedPoseTask('named_poses.home')) + the_task.wait_for_completion() + # generate the block for simulation + task_manager.generate_the_object() + # test push blocks to different areas + logger.info(f'=== Submit a PushBlockTask (2)') + task_manager.submit_task(the_task:=PushBlockTask('area_2')) + the_task.wait_for_completion() + logger.info(f'=== Submit a PushBlockTask (4)') + task_manager.submit_task(the_task:=PushBlockTask('area_4')) + the_task.wait_for_completion() + logger.info(f'=== Submit a PushBlockTask (3)') + task_manager.submit_task(the_task:=PushBlockTask('area_3')) + the_task.wait_for_completion() + logger.info(f'=== Submit a PushBlockTask (1)') + task_manager.submit_task(the_task:=PushBlockTask('area_1')) + the_task.wait_for_completion() + + def _run_demo(self): + task_manager = self.the_task_manager + the_task = None + logger.info(f'=== PushBlock Demo Started') + logger.info(f'=== Submit a MoveNamedPoseTask (home)') + task_manager.submit_task(the_task:=MoveNamedPoseTask('named_poses.home')) + the_task.wait_for_completion() + # generate the block for simulation + task_manager.setup_objects() + task_manager.generate_the_object() + # initialize variables + is_random = False + while True: + if not is_random: + while True: + target = input('Enter the area (1, 2, 3, 4), go home (H), or run random demo (R): ') + if target in ['1', '2', '3', '4', 'H', 'R']: + break + time.sleep(0.1) + if target == 'R': + is_random = True + if target == 'H': + task_manager.submit_task(the_task:=MoveNamedPoseTask('named_poses.home')) + the_task.wait_for_completion() + continue + if is_random: + target = random.randint(1, 4) + area = f'area_{target}' + if self.the_blackboard.the_object['area'] == area: + if not is_random: + logger.info(f'The area "{target}" is where the block is already located') + continue + logger.info(f'=== Submit a PushBlockTask ({area})') + task_manager.submit_task(the_task:=PushBlockTask(area)) + the_task.wait_for_completion() + +if __name__=='__main__': + # rospy.init_node('run_pnd_task_manager_demo', anonymous=False) + try: + PushBlockDemoApplication() + logger.info('pnd_task_manager_demo is running') + except Exception as e: + logger.exception(e) + + diff --git a/task_trees/demos/pushblock/docs/DemoPushBlock1.gif b/task_trees/demos/pushblock/docs/DemoPushBlock1.gif new file mode 100644 index 0000000000000000000000000000000000000000..e90ed90eed2381cee425bc882a10b5527cd4544e GIT binary patch literal 829318 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 z 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�XcakD2aya!|*(N^r@Bxb-2-N;4$W(|r5<+t(S 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
?2U+kAQl3sp}=HItLKp7qqS5)a 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 ljz{q&v9-1wY`gEL?l7AhbkB!(yx((o=e!{ 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

}0RAg@=J$ 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 z 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 literal 0 HcmV?d00001 diff --git a/task_trees/demos/pushblock/docs/PushBlockReferenceFrames.png b/task_trees/demos/pushblock/docs/PushBlockReferenceFrames.png new file mode 100644 index 0000000000000000000000000000000000000000..03537d2a8768b5d35ab41c717a3b56eecadafeac GIT binary patch literal 8471 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 J6%t?k{|j$Kmbd@_ literal 0 HcmV?d00001 diff --git a/task_trees/demos/pushblock/task_scene.yaml b/task_trees/demos/pushblock/task_scene.yaml new file mode 100644 index 0000000..e1ba483 --- /dev/null +++ b/task_trees/demos/pushblock/task_scene.yaml @@ -0,0 +1,90 @@ +--- +scene: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y + rotations: + # alpha: [3.14, null, 0.78] + # beta: [3.14, null, -0.78] + alpha: [3.14, 0, -0.785] + beta: [3.14, 0, 2.358] + push_block: + dimensions: [0.05, 0.05, 0.05] + xyz: [0.0, 0.025, 0.151] + rpy: [0, 0, 0] + objects: + block_1: + type: box + model_file: null + dimensions: [0.10, 0.10, 0.35] + xyz: [0.4, -0.10, 0.175] + rpy: [0, 0, 0] + block_2: + type: box + model_file: null + dimensions: [0.10, 0.10, 0.35] + xyz: [0.6, -0.10, 0.175] + rpy: [0, 0, 0] + block_3: + type: box + model_file: null + dimensions: [0.10, 0.10, 0.35] + xyz: [0.6, 0.10, 0.175] + rpy: [0, 0, 0] + block_4: + type: box + model_file: null + dimensions: [0.10, 0.10, 0.35] + xyz: [0.4, 0.10, 0.175] + rpy: [0, 0, 0] + area_1: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.4, 0.0, 0.125] + rpy: [0, 0, 1.57] + area_2: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.50, -0.10, 0.125] + rpy: [0, 0, 3.14] + area_3: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.6, 0.0, 0.125] + rpy: [0, 0, -1.57] + area_4: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.50, 0.10, 0.125] + rpy: [0, 0, 0] + area_5: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.50, 0.0, 0.125] + rpy: [0, 0, 0] +subscenes: + area: + positions: + hover: [null, null, 0.40] + down: [null, null, 0.27] + start: [0, 0.11, null] + centre: [0, -0.015, null] # -0.01 + restart: [0, -0.185, null] + end: [0, -0.06, null] + area_1: + rotation: rotations.alpha + area_2: + rotation: rotations.beta + area_3: + rotation: rotations.beta + area_4: + rotation: rotations.alpha + diff --git a/task_trees/demos/pushblock/task_trees_manager_pushblock.py b/task_trees/demos/pushblock/task_trees_manager_pushblock.py new file mode 100644 index 0000000..95d518d --- /dev/null +++ b/task_trees/demos/pushblock/task_trees_manager_pushblock.py @@ -0,0 +1,334 @@ +#!/usr/bin/env python3 + +# Copyright 2024 - Andrew Kwok Fai LUI, +# Robotics and Autonomous Systems Group, REF, RI +# and the Queensland University of Technology + +__author__ = 'Andrew Lui' +__copyright__ = 'Copyright 2024' +__license__ = 'GPL' +__version__ = '1.0' +__email__ = 'ak.lui@qut.edu.au' +__status__ = 'Development' + +import os, math, random +import py_trees +from py_trees.composites import Sequence, Parallel, Composite, Selector + +# robot control module +from arm_commander.commander_moveit import GeneralCommander, logger +import arm_commander.tools.moveit_tools as moveit_tools + +from task_trees.states import TaskStates +from task_trees.behaviours_base import SimAttachObject, SimDetachObject, PrintPosesInFrame, PrintPose +from task_trees.behaviours_move import DoMoveNamedPose, DoMoveXYZ, DoMoveXYZRPY, DoRotate +from task_trees.task_trees_manager import TaskTreesManager, BasicTask +from task_trees.task_scene import Scene +from task_trees.scene_to_rviz import SceneToRViz +import task_trees.tools.pose_tools as pose_tools +# ------------------------------------- +# Tasks specialized for the Pick-n-Drop + +# A sequence of behaviours for moving the arm to one of the named pose +class MoveNamedPoseTask(BasicTask): + def __init__(self, named_pose:str): + """ the constructor + :param named_pose: one of the named pose defined in the configuration file + :type named_pose: str + """ + if named_pose is None or type(named_pose) is not str or len(named_pose) == 0: + logger.error(f'{__class__.__name__}: parameter (named_pose) is not an non-empty string -> fix the missing value at behaviour construction') + raise AssertionError(f'A parameter is invalid') + super(MoveNamedPoseTask, self).__init__(named_pose) + +# A sequence of behaviours for moving the arm to one of the named pose +class PushBlockTask(BasicTask): + def __init__(self, area:str): + """ the constructor + :param area: one of the named pose defined in the configuration file + :type area: str + """ + super(PushBlockTask, self).__init__(area) + if not (area is not None or type(area) is not str or not area.startswith('area_')): + logger.error(f'{__class__.__name__}: parameter (area) is not a string starts with "area_" -> fix the value at behaviour construction') + raise AssertionError(f'A parameter is invalid') + +class MoveAreaTask(BasicTask): + def __init__(self, area:str): + """ the constructor + :param area: one of the named pose defined in the configuration file + :type area: str + """ + super(MoveAreaTask, self).__init__(area) + if not (area is not None or type(area) is not str or not area.startswith('area_')): + logger.error(f'{__class__.__name__}: parameter (area) is not a string starts with "area_" -> fix the value at behaviour construction') + raise AssertionError(f'A parameter is invalid') + +# ---------------------------------------- +# The TaskManager specialized for this application +class PushBlockTaskTreesManager(TaskTreesManager): + """ This is a subclass specialized for the pick-n-drop application + """ + def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): + """ the constructor + :param arm_commander: a general commander for a particular arm manipulator + :type arm_commander: GeneralCommander + :param spin_period_ms: the tick_tock period, defaults to 10 seconds + :type spin_period_ms: int, optional + """ + super(PushBlockTaskTreesManager, self).__init__(arm_commander) + # load the task scene + config_file = os.path.join(os.path.dirname(__file__), 'task_scene.yaml') + self.the_scene = Scene(config_file) + # setup visualization in rviz + self.scene_to_rviz = SceneToRViz(self.the_scene, arm_commander.get_world_reference_frame(), False) + self.scene_to_rviz.display_bbox_regions('regions', rgba=[1.0, 0.0, 1.0, 0.2]) + object_area1 = self.the_scene.get_object_config('area_1') + self.scene_to_rviz.add_custom_transform('area', object_area1.xyz, object_area1.rpy, arm_commander.get_world_reference_frame()) + self.scene_to_rviz.display_positions('area.positions', rgba=[1.0, 1.0, 0.0, 0.8]) + # setup the robotic manipulation platform through the commander + self.arm_commander.abort_move(wait=True) + self.arm_commander.reset_world() + # self.arm_commander.set_workspace_walls(*(self.the_scene.query_config('regions.workspace'))) + # setup name poses + self._define_named_poses(self.the_scene) + + # setup the blackboard and the two blackboard keys 'seen_object' + self.the_blackboard.register_key(key='the_object', access=py_trees.common.Access.WRITE) + + # build and install the behavior tree + self._set_initialize_branch(self.create_initialize_branch()) + self._add_task_branch(self.create_move_namedpose_task_branch(), MoveNamedPoseTask) + self._add_task_branch(self.create_push_block_task_branch(), PushBlockTask) + + # install and unleash the behaviour tree + self._install_bt_and_spin(self.bt, spin_period_ms) + + # ----------------------------------------- + # Functions for the simulation (demo) + def setup_objects(self): + # setup objects + # for object_name in self.the_scene.list_object_names(): + # the_object = self.the_scene.get_object_config(object_name) + # if the_object.type == 'box': + # self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) + self._define_objects(self.the_scene, 'box') + + def generate_the_object(self): + self.the_object = dict() + self.the_blackboard.the_object = self.the_object + the_block_config = self.the_scene.query_config('push_block') + self.the_object['area'] = 'area_1' + # transform the pose + xyzrpy = the_block_config['xyz'] + the_block_config['rpy'] + the_pose = pose_tools.list_to_pose_stamped(xyzrpy, self.the_object['area']) + the_pose = self.arm_commander.transform_pose(the_pose, self.arm_commander.WORLD_REFERENCE_LINK) + xyzrpy_in_world = pose_tools.pose_to_xyzrpy(the_pose.pose) + self.arm_commander.add_box_to_scene('the_object', the_block_config['dimensions'], xyzrpy_in_world[:3], xyzrpy_in_world[3:]) + + # ----------------------------------------- + # Functions for the behaviour tree + def post_fn_update_area(self): + target = self.query_target_reference_frame() + self.the_blackboard.the_object['area'] = target + + # return the logical pose of the accepted task, or raise TypeError if no task is submitted + def query_logical_pose_of_task(self): + """ return the goal, which is a logical pose, of the current task + :raises TypeError: no task has been submitted + :return: the logical pose + :rtype: unspecified as defined by the specific subclass of BasicTask + """ + if self.the_blackboard.exists('task'): + return self.the_blackboard.task.get_param() + raise TypeError(f'unable to query logical pose due to no task has been submitted') + + def query_current_reference_frame(self): + if self.the_blackboard.exists('the_object'): + return self.the_blackboard.the_object['area'] + raise TypeError(f'unable to query the reference frame where the object is located') + + def query_target_reference_frame(self): + """ return the target area of the task + :raises TypeError: no task has been submitted + :return: the reference frame representing the target area + :rtype: str + """ + if self.the_blackboard.exists('task'): + target = self.the_blackboard.task.get_param() + return target + raise TypeError(f'unable to query the target due to no task has been submitted') + + # return the ideal rotation of the end-effector for pushing to the target, which is derived from the target and the structure of the end-effector + # defined in the config file + def query_rotation_from_target(self): + if self.the_blackboard.exists('task'): + target = self.the_blackboard.task.get_param() + rotation = self.the_scene.query_config(target + ".rotation") + return rotation + raise TypeError(f'unable to query the rotation due to no task has been submitted or the target area is wrong') + + # return the ideal rotation of the end-effector for pushing from the source, which is derived from the source and the structure of the end-effector + # defined in the config file + def query_rotation_from_current(self): + if self.the_blackboard.exists('the_object'): + current = self.the_blackboard.the_object['area'] + rotation = self.the_scene.query_config(current + ".rotation") + return rotation + raise TypeError(f'unable to query the rotation due to no task has been submitted or the target area is wrong') + + # internal function for obtaining the time lapse since the current task was submitted + def _get_time_since_submit(self) -> float: + if self.the_blackboard.exists('task'): + return self.the_blackboard.task.get_time_since_submit() + # return -1 so that the timeout condition is never True + return -1 + + # return orientation constraint to fix the rotation of the end_effector during movement in the tank + def _create_intank_fix_rotate_constraint(self): + return moveit_tools.create_path_orientation_constraint( + self.arm_commander.END_EFFECTOR_LINK, self.arm_commander.pose_in_frame(), 0.05, 0.05, 0.05) + + # -------------------------------------- + # -- internal functions: conditions functions for behaviours for the building of the behaviour tree for this TaskManager + + def in_a_region(self, logical_region) -> bool: + current_pose = self.arm_commander.pose_of_robot_link() + return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), self.the_scene.query_config(logical_region)) + + def over_an_object(self, object_name) -> bool: + the_object = self.the_scene.get_object_config(object_name) + the_object_position_as_bbox = [the_object.xyz[0] - the_object.dimensions[0] / 2, the_object.xyz[1] - the_object.dimensions[1] / 2, + the_object.xyz[0] + the_object.dimensions[0] / 2, the_object.xyz[1] + the_object.dimensions[1] / 2] + current_pose = self.arm_commander.pose_of_robot_link() + return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), the_object_position_as_bbox) + + def on_or_above_z(self, position) -> bool: + current_pose = self.arm_commander.pose_of_robot_link() + return current_pose.pose.position.z > self.the_scene.query_position_as_xyz(position)[2] - 0.05 + + def below_z(self, position) -> bool: + current_pose = self.arm_commander.pose_of_robot_link() + return current_pose.pose.position.z < self.the_scene.query_position_as_xyz(position)[2] - 0.05 + + def wrong_restart_position(self) -> bool: + target = self.query_target_reference_frame() + start_position = self.the_scene.query_config('area.positions.restart') + current_pose_in_target_frame = self.arm_commander.pose_in_frame_as_xyzrpy(reference_frame=target) + distance = math.dist(start_position[:2], current_pose_in_target_frame[:2]) + # logger.info(f'wrong_restart_position: {target} {start_position} {current_pose_in_target_frame} {distance}') + return distance > 0.02 + + def the_object_in_area(self, area) -> bool: + if self.the_blackboard.exists('the_object'): + if 'area' in self.the_blackboard.the_object: + current = self.the_blackboard.the_object['area'] + return current == area + logger.warning(f'the_object_in_area: the blackboard key "the_object" is not defined or it has no "area" key -> should not happen') + return False + + def the_object_over_an_object(self, object_name) -> bool: + the_target_object = self.the_scene.get_object_config(object_name) + the_target_position_as_bbox = [the_target_object.xyz[0] - the_target_object.dimensions[0] / 2, the_target_object.xyz[1] - the_target_object.dimensions[1] / 2, + the_target_object.xyz[0] + the_target_object.dimensions[0] / 2, the_target_object.xyz[1] + the_target_object.dimensions[1] / 2] + xyzrpy_of_the_object = self.arm_commander.pose_in_frame_as_xyzrpy('the_object') + return pose_tools.in_region((xyzrpy_of_the_object[0], xyzrpy_of_the_object[1],), the_target_position_as_bbox) + + def at_a_named_pose(self, named_pose) -> bool: + joint_values = self.arm_commander.current_joint_positons_as_list() + result = pose_tools.same_joint_values_with_tolerence(self.the_scene.query_config(named_pose), joint_values, 0.05) + # logger.info(f'at {named_pose} pose: {result}') + return result + + # ----------------------------------------------- + # --- internal functions: eternal guard condition + def guard_work_branch_condition(self) -> bool: + if self.the_blackboard.exists('task'): + if self.the_blackboard.task.state == TaskStates.CANCELLED: + return False + return True + return False + + # ------------------------------------------------- + # --- create the behaviour tree and its branches + + def create_move_namedpose_task_branch(self) -> Composite: + # - the branch that executes the task MoveNamedPoseTask + move_named_pose_branch = py_trees.decorators.Timeout( + duration=60, + name='move_named_pose_branch_timeout', + child=py_trees.composites.Sequence( + 'move_named_pose_branch', + memory=True, + children=[ + DoMoveNamedPose('move_home_first', [{'_not_fn': self.in_a_region, 'logical_region': 'regions.inner'}], + arm_commander=self.arm_commander, scene=self.the_scene, named_pose='named_poses.home'), + DoMoveNamedPose('move_task_pose', True, arm_commander=self.arm_commander, scene=self.the_scene, named_pose=self.query_logical_pose_of_task), + ], + ), + ) + return move_named_pose_branch + + def create_push_block_task_branch(self) -> Composite: + # - the branch that executes the task ScanTask + move_area_branch = py_trees.decorators.Timeout( + duration=1000000, + name='scan_branch_timeout', + child=py_trees.composites.Sequence( + 'scan_branch', + memory=True, + children=[ + DoMoveNamedPose('move_home_first_if_inner', [{'_fn': self.in_a_region, 'logical_region': 'regions.inner'}], + arm_commander=self.arm_commander, scene=self.the_scene, named_pose='named_poses.home'), + DoMoveXYZ('move_to_area_edge', [{'_not_fn': self.the_object_in_area, 'area':'area_5'}], arm_commander=self.arm_commander, scene=self.the_scene, + target_xyz=['area.positions.start', 'area.positions.hover'], + reference_frame=self.query_current_reference_frame), + DoRotate('align_with_the_alley', [{'_not_fn': self.the_object_in_area, 'area':'area_5'}], arm_commander=self.arm_commander, scene=self.the_scene, + target_rpy=self.query_rotation_from_current, reference_frame=self.query_current_reference_frame), + DoMoveXYZ('move_down', [{'_not_fn': self.the_object_in_area, 'area':'area_5'}], arm_commander=self.arm_commander, scene=self.the_scene, + target_xyz=['area.positions.down'], cartesian=True, + reference_frame=self.query_current_reference_frame), + SimAttachObject('engage_object', True, arm_commander=self.arm_commander, object_name='the_object'), + DoMoveXYZ('push_object_to_area_5', [{'_not_fn': self.the_object_in_area, 'area':'area_5'}], arm_commander=self.arm_commander, scene=self.the_scene, + target_xyz=['area.positions.centre'], cartesian=True, + reference_frame=self.query_current_reference_frame), + SimDetachObject('detach_at_centre', True, arm_commander=self.arm_commander, object_name='the_object', post_fn=lambda: 'area_5'), + DoMoveXYZ('move_up', {'_fn': self.wrong_restart_position}, arm_commander=self.arm_commander, scene=self.the_scene, + target_xyz=['area.positions.hover'], + reference_frame=self.query_current_reference_frame), + DoMoveXYZRPY('move_align_for_restart', {'_fn': self.wrong_restart_position}, arm_commander=self.arm_commander, scene=self.the_scene, + target_xyz=['area.positions.restart', 'area.positions.hover'], target_rpy=self.query_rotation_from_target, + reference_frame=self.query_target_reference_frame), + DoMoveXYZ('move_down', {'_fn': self.on_or_above_z, 'position':'area.positions.hover'}, arm_commander=self.arm_commander, scene=self.the_scene, + target_xyz=['area.positions.down'], cartesian=True, + reference_frame=self.query_target_reference_frame), + SimAttachObject('touch_object', True, arm_commander=self.arm_commander, object_name='the_object'), + DoMoveXYZ('push_object_to_target', True, arm_commander=self.arm_commander, scene=self.the_scene, + target_xyz=['area.positions.end'], cartesian=True, + constraint_fn = self._create_intank_fix_rotate_constraint, + reference_frame=self.query_target_reference_frame), + SimDetachObject('detach_object', True, arm_commander=self.arm_commander, object_name='the_object', post_fn=self.post_fn_update_area), + DoMoveXYZ('move_up', True, arm_commander=self.arm_commander, scene=self.the_scene, + target_xyz=['area.positions.hover'], + reference_frame=self.query_target_reference_frame), + ], + ), + ) + return move_area_branch + + + + def create_initialize_branch(self) -> py_trees.decorators.OneShot: + init_action_branch = py_trees.composites.Sequence( + 'init_action_branch', + memory=True, + children = [ + DoMoveNamedPose('init_move_home', True, + arm_commander=self.arm_commander, scene=self.the_scene, named_pose='named_poses.home'), + ] + ) + return init_action_branch + + + + diff --git a/task_trees/scene_to_rviz.py b/task_trees/scene_to_rviz.py index 6d2a07f..52a304e 100644 --- a/task_trees/scene_to_rviz.py +++ b/task_trees/scene_to_rviz.py @@ -17,11 +17,11 @@ from visualization_msgs.msg import Marker from task_trees.task_scene import Scene, ObjectConfig -import tools.rviz_tools as rviz_tools -from tools.logging_tools import logger -from tools.rviz_tools import RvizVisualizer -from tools.pose_tools import pose_to_xyzq, list_to_xyzq, pose_stamped_to_transform_stamped, list_to_pose_stamped -from tools.rospkg_tools import PackageFile +import task_trees.tools.rviz_tools as rviz_tools +from task_trees.tools.logging_tools import logger +from task_trees.tools.rviz_tools import RvizVisualizer +from task_trees.tools.pose_tools import pose_to_xyzq, list_to_xyzq, pose_stamped_to_transform_stamped, list_to_pose_stamped +from task_trees.tools.rospkg_tools import PackageFile class SceneToRViz(RvizVisualizer): """ The helper class for managing visualization of scene configs in rviz diff --git a/task_trees/task_scene.py b/task_trees/task_scene.py index a3fa2a6..aeb5fac 100644 --- a/task_trees/task_scene.py +++ b/task_trees/task_scene.py @@ -11,7 +11,7 @@ import yaml, os, numbers from collections import namedtuple, defaultdict -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger # namedtuples for internal data structure for higher readability ObjectConfig = namedtuple('ObjectConfig', ['name', 'type', 'model_file', 'dimensions', 'xyz', 'rpy', 'frame']) # representing an object diff --git a/task_trees/task_trees_manager.py b/task_trees/task_trees_manager.py index 09957ca..ba6299d 100644 --- a/task_trees/task_trees_manager.py +++ b/task_trees/task_trees_manager.py @@ -17,21 +17,19 @@ from task_trees.behaviours_base import * from task_trees.states import TaskStates, COMPLETION_STATES -from tools.logging_tools import logger +from task_trees.tools.logging_tools import logger # -- The abstract class for implementing project specific Task for the TaskTreesManager class BasicTask(): """ It defines the essential parameters for the lifecycle management by the TaskTreesManager :meta private: """ - def __init__(self, goal_as_logical_pose=None): + def __init__(self, param=None): self.task_lock = threading.Lock() # task parameters self.name = self.__class__ # the class name for identification of the task - self.goal_as_logical_pose = goal_as_logical_pose # the main goal of the task - assume to be a logical pose - self.xyz = None # the mapped physical pose in xyz format - self.rpy = None # the mapped physical pose in euler angles in rpy order + self.param = param # arbitrary param of the task # task state self.state = TaskStates.STANDBY # the init state self.result = '' # the task result, which will be assigned by the TaskTreesManager at completion @@ -86,27 +84,13 @@ def cancel(self, wait=True) -> bool: logger.error('This task has not been submitted -> check program logic') return False - def get_goal_as_logical_pose(self): - """ returns the main goal of the task, which is an logical pose + def get_param(self): + """ returns the param of the task - :return: the goal as a logical pose + :return: the param of the task :rtype: arbitrary, dependent on the subclass definition """ - return self.goal_as_logical_pose - - def get_xyz(self) -> list: - """ return the position of the target pose in xyz - :return: the position of the target pose in xyz - :rtype: list - """ - return self.xyz - - def get_rpy(self) -> list: - """ return the orientation part of the target pose - :return: the orientation part of the target pose - :rtype: list - """ - return self.rpy + return self.param def wait_for_completion(self, until_states:list=None): """ a blocking function that returns when the task has entered into one of the :param:until_states diff --git a/tools/__init__.py b/task_trees/tools/__init__.py similarity index 100% rename from tools/__init__.py rename to task_trees/tools/__init__.py diff --git a/tools/logging_tools.py b/task_trees/tools/logging_tools.py similarity index 100% rename from tools/logging_tools.py rename to task_trees/tools/logging_tools.py diff --git a/tools/pose_tools.py b/task_trees/tools/pose_tools.py similarity index 100% rename from tools/pose_tools.py rename to task_trees/tools/pose_tools.py diff --git a/tools/rospkg_tools.py b/task_trees/tools/rospkg_tools.py similarity index 100% rename from tools/rospkg_tools.py rename to task_trees/tools/rospkg_tools.py diff --git a/tools/rviz_tools.py b/task_trees/tools/rviz_tools.py similarity index 60% rename from tools/rviz_tools.py rename to task_trees/tools/rviz_tools.py index 3633ebd..65abc82 100644 --- a/tools/rviz_tools.py +++ b/task_trees/tools/rviz_tools.py @@ -20,15 +20,18 @@ from collections import defaultdict import cv2 import numpy as np -import rospy, tf +import rospy, tf, tf2_ros +from std_msgs.msg import Header from tf2_msgs.msg import TFMessage from std_msgs.msg import ColorRGBA, Header -from geometry_msgs.msg import Pose, PoseStamped, Twist, TwistStamped, Vector3, Point +from geometry_msgs.msg import Pose, PoseStamped, Twist, TwistStamped, Vector3, Point, Quaternion from sensor_msgs.msg import PointCloud2, PointField from sensor_msgs import point_cloud2 -from visualization_msgs.msg import Marker -from tools.pose_tools import list_to_pose -from tools.logging_tools import logger +from visualization_msgs.msg import Marker, MarkerArray +from task_trees.tools.pose_tools import list_to_pose, pose_to_xyzq +from task_trees.tools.rospkg_tools import PackageFile +from task_trees.tools.logging_tools import logger +import task_trees.tools.pose_tools as pose_tools class RGBAColors(int, Enum): """ Define common use colours for visualization @@ -42,6 +45,12 @@ def __new__(cls, value, rgba='...'): obj._value_ = value obj.rgba = rgba return obj + @staticmethod + def validate_rgba(rgba): + rgba = RGBAColors.RED.rgba if rgba is None else rgba + if type(rgba) in (list, tuple) and len(rgba) == 3: + rgba.append(1) + return rgba def _create_marker(name:str, id:int, reference_frame:str=None, lifetime=rospy.Duration(0.0)) -> Marker: """ Create a Marker object @@ -59,6 +68,9 @@ def _create_marker(name:str, id:int, reference_frame:str=None, lifetime=rospy.Du if name is not None: the_marker.ns = f'{name}' the_marker.id = id + lifetime = rospy.Duration(0.0) if lifetime is None else lifetime + if type(lifetime) in (float, int): + lifetime = rospy.Duration(lifetime) the_marker.lifetime = lifetime return the_marker @@ -122,7 +134,7 @@ def create_axisplane_marker(name:str, id:int, bbox2d:list, offset:float, referen else: logger.warning(f'create_2dregion_marker: invalid plane parameter {axes}') return None - rgba = RGBAColors.RED.rgba if rgba is None else rgba + rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) return the_marker @@ -143,7 +155,7 @@ def create_cube_marker_from_bbox(name:str, id:int, bbox3d:list, reference_frame: xyz = [(bbox3d[0] + bbox3d[3]) / 2, (bbox3d[1] + bbox3d[4]) / 2, (bbox3d[2] + bbox3d[5]) / 2] the_marker.pose = list_to_pose(xyz + rpy) the_marker.scale = Vector3(bbox3d[3] - bbox3d[0], bbox3d[4] - bbox3d[1], bbox3d[5] - bbox3d[2]) - rgba = RGBAColors.RED.rgba if rgba is None else rgba + rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) return the_marker @@ -164,7 +176,7 @@ def create_cube_marker_from_xyzrpy(name:str, id:int, xyzrpy:list, reference_fram if isinstance(dimensions, numbers.Number): dimensions = [dimensions, dimensions, dimensions] the_marker.scale = Vector3(*dimensions) - rgba = RGBAColors.RED.rgba if rgba is None else rgba + rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) return the_marker @@ -186,7 +198,7 @@ def create_arrow_marker(name:str, id:int, xyzrpy:list, reference_frame:str, dime if isinstance(dimensions, numbers.Number): dimensions = [dimensions, dimensions/10, dimensions/10] the_marker.scale = Vector3(*dimensions) - rgba = RGBAColors.RED.rgba if rgba is None else rgba + rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) return the_marker @@ -208,7 +220,7 @@ def create_line_marker(name:str, id:int, xyz1:list, xyz2:list, reference_frame:s the_marker.pose = list_to_pose([0, 0, 0, 0, 0, 0]) the_marker.points[:] = [Point(*xyz1), Point(*xyz2)] the_marker.scale.x = line_width - rgba = RGBAColors.RED.rgba if rgba is None else rgba + rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) return the_marker @@ -269,7 +281,7 @@ def create_sphere_marker(name:str, id:int, xyz:list, reference_frame:str, dimens if isinstance(dimensions, numbers.Number): dimensions = [dimensions, dimensions, dimensions] the_marker.scale = Vector3(*dimensions) - rgba = RGBAColors.RED.rgba if rgba is None else rgba + rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) return the_marker @@ -292,7 +304,7 @@ def create_cylinder_marker(name:str, id:int, xyzrpy:list, reference_frame:str, d logger.warning(f'create_cylinder_marker: dimensions should be a list of 3 numbers (radius, radius, height)') return None the_marker.scale = Vector3(*dimensions) - rgba = RGBAColors.RED.rgba if rgba is None else rgba + rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) return the_marker @@ -315,17 +327,17 @@ def create_text_marker(name:str, id:int, text:str, xyzrpy:list, reference_frame: if isinstance(dimensions, numbers.Number): dimensions = [dimensions, dimensions, dimensions] the_marker.scale = Vector3(*dimensions) - rgba = RGBAColors.RED.rgba if rgba is None else rgba + rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) the_marker.text = text return the_marker -def create_mesh_marker(name:str, id:int, filename:str, xyzrpy:list, reference_frame:str, dimensions:list=0.5, rgba:list=None, lifetime=rospy.Duration(0.0)) -> Marker: +def create_mesh_marker(name:str, id:int, file_uri:str, xyzrpy:list, reference_frame:str, dimensions:list=0.5, rgba:list=None, lifetime=rospy.Duration(0.0)) -> Marker: """ Creates a marker for displaying a mesh object :param name: the name space of the marker :param id: the id of the marker - :param filename: the file containing a binary STL or DAE file + :param file_uri: the full path to the file containing a binary STL or DAE file or using protocols such as file://, package://, or http:// :param xyzrpy: the pose of the text as a list of 6 :param reference_frame: the reference frame, defaults to None :param dimensions: the scale factor of the mesh object, defaults to [1, 1, 1] @@ -340,21 +352,26 @@ def create_mesh_marker(name:str, id:int, filename:str, xyzrpy:list, reference_fr logger.warning(f'create_mesh_marker: dimensions should be a list of 3 numbers (radius, radius, height)') return None the_marker.scale = Vector3(*dimensions) - rgba = RGBAColors.RED.rgba if rgba is None else rgba + rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) - the_marker.mesh_resource = filename + try: + file_uri = PackageFile.resolve_to_file_or_http_uri(file_uri) + except Exception as ex: + logger.warning(f'create_mesh_marker: Invalid model_file for object ({file_uri}): {ex}') + return + the_marker.mesh_resource = file_uri the_marker.mesh_use_embedded_materials = True return the_marker -def create_pointcloud_from_image(image_bgr, xyz:list=(0, 0, 0), pixel_physical_size:float=0.005, reference_frame=None, opacity=255, depth_array=None) -> PointCloud2: +def create_pointcloud_from_image(image_bgr:np.ndarray, xyz:list=(0, 0, 0), pixel_physical_size:float=0.005, reference_frame=None, opacity=255, depth_array:np.ndarray=None) -> PointCloud2: """ Create a PointCloud2 for displaying a OpenCV image (color or greyscale) - :param image_bgr: the image to be displayed, type numpy array + :param image_bgr: the image to be displayed, type numpy ndarray :param xyz: the position of the bottom left hand corner of the image, defaults to (0, 0, 0) :param pixel_physical_size: the length of each pixel in x, y, defaults to [0.005, 0.005], and optionally the third value in the list for z scaling factor :param reference_frame: the reference frame, defaults to None :param opacity: the opacity of the displayed image, defaults to 255 - :param depth_array: optionally a numpy array of exact the same shape as the image indicating the depth, defaults to None + :param depth_array: optionally a numpy ndarray of exact the same shape as the image indicating the depth, defaults to None :return: the PointCloud2 object """ if image_bgr is None: @@ -419,7 +436,7 @@ class RvizVisualizer(): """ A publisher of markers, which handles persistent markers, which is published repeatedly and temporary markers, which are published once. """ - def __init__(self, **kwargs): + def __init__(self, **config_dict): """ The constructur :param pub_period_marker: the default period of publishing marker, defaults to 1.0 second @@ -427,101 +444,240 @@ def __init__(self, **kwargs): :param topic_marker: the topic used to publish markers, defaults to visualization_marker :param topic_cloud: the topic used to publish point cloud, defaults to visualization_cloud """ - self.lock = threading.Lock() - # the constant defining the timer period, the actual rate of publishing depends on the individual markers - TIMER_PERIOD = 0.1 + self.lock = threading.RLock() + # constant + # the time delay publishing the temp marker necessary for RViz to subscribe and read + self.TEMP_MAKRER_PUB_DELAY = config_dict.get('pub_temp_marker_delay', 0.2) # set default values for keyword argument - self.default_pub_period_marker = kwargs.get('pub_period_marker', 1.0) - topic_marker = kwargs.get('topic_marker', '/visualization_marker') - self.default_pub_period_cloud = kwargs.get('pub_period_cloud', 1.0) - topic_cloud = kwargs.get('topic_cloud', '/visualization_cloud') + self.default_pub_period_marker = config_dict.get('pub_period_marker', 1.0) + topic_marker = config_dict.get('topic_marker', '/visualization_marker') + topic_marker_array = config_dict.get('topic_marker_array', '/visualization_marker_array') + + self.default_pub_period_cloud = config_dict.get('pub_period_cloud', 1.0) + topic_cloud = config_dict.get('topic_cloud', '/visualization_cloud') + self.default_pub_period_tf = config_dict.get('pub_period_tf', 0.1) + logger.info(f'RvizVisualizer: publishing markers to "{topic_marker}" (max rate {1 / self.default_pub_period_marker:.2f} Hz)') + logger.info(f'RvizVisualizer: publishing marker arrays to "{topic_marker_array}" (max rate {1 / self.default_pub_period_marker:.2f} Hz)') + logger.info(f'RvizVisualizer: publishing pointclouds to "{topic_cloud}" (max rate {1 / self.default_pub_period_cloud:.2f} Hz)') # the storage for markers - self.marker_dict = defaultdict(lambda: None) + self.markers_dict = defaultdict(lambda: None) # (marker_namespace, marker_id) -> dict + self.marker_arrays_list = [] self.temp_marker_list = [] - self.pointcloud_dict = defaultdict(lambda: None) + self.pointclouds_dict = defaultdict(lambda: None) # pointcloud_name -> dict + # setup tf publish + self.tf_broadcaster = tf2_ros.TransformBroadcaster() + self.tfs_dict = defaultdict(lambda: None) # frame_name -> dict # setup marker publisher self.marker_pub = rospy.Publisher(topic_marker, Marker, queue_size = 100) - self.cloud_pub = rospy.Publisher(topic_cloud, PointCloud2, queue_size = 2) + self.marker_array_pub = rospy.Publisher(topic_marker_array, MarkerArray, queue_size = 100) + self.cloud_pub = rospy.Publisher(topic_cloud, PointCloud2, queue_size = 20) # setup timer - self.timer_marker_viz = rospy.Timer(rospy.Duration(TIMER_PERIOD), self._cb_timer_marker_viz) - self.timer_cloud_viz = rospy.Timer(rospy.Duration(TIMER_PERIOD), self._cb_timer_cloud_viz) + self.timer_marker_viz = rospy.Timer(rospy.Duration(self.default_pub_period_marker), self._cb_timer_marker_viz) + self.timer_cloud_viz = rospy.Timer(rospy.Duration(self.default_pub_period_cloud), self._cb_timer_cloud_viz) + self.timer_tf = rospy.Timer(rospy.Duration(self.default_pub_period_tf), self._cb_timer_tf) def _cb_timer_marker_viz(self, event): """ internal callback function :meta private: """ with self.lock: - # publish the persistent markers of which the pub_period has lapsed - for key in self.marker_dict.keys(): - marker_dict = self.marker_dict.get(key) + # publish the persistent markers of which the pub_period has lapsed + current_time = time.time() + for key in self.markers_dict.keys(): + marker_dict = self.markers_dict.get(key) marker = marker_dict['marker'] - current_time = time.time() - if marker_dict['last_time'] is None or current_time - marker_dict['last_time'] >= marker_dict['pub_period']: + if marker_dict['next_time'] is None or current_time >= marker_dict['next_time']: self.marker_pub.publish(marker) - marker_dict['last_time'] = current_time + marker_dict['next_time'] = current_time + marker_dict['pub_period'] + # publish the persistent marker arrays + for index, marker_array_dict in enumerate(self.marker_arrays_list): + marker_array = marker_array_dict['marker_array'] + if marker_array_dict['next_time'] is None or current_time >= marker_array_dict['next_time']: + self.marker_array_pub.publish(marker_array) + marker_array_dict['next_time'] = current_time + marker_array_dict['pub_period'] # publish the temporary markers - for marker in self.temp_marker_list: - self.marker_pub.publish(marker) - self.temp_marker_list.clear() + for marker_dict in list(self.temp_marker_list): + marker = marker_dict['marker'] + if current_time > marker_dict['pub_time']: + self.marker_pub.publish(marker) + self.temp_marker_list.remove(marker_dict) def _cb_timer_cloud_viz(self, event): """ internal callback function :meta private: """ with self.lock: - for pointcloud_dict in self.pointcloud_dict.values(): + for pointcloud_dict in self.pointclouds_dict.values(): pointcloud = pointcloud_dict['pointcloud'] current_time = time.time() - if pointcloud_dict['last_time'] is None or current_time - pointcloud_dict['last_time'] >= pointcloud_dict['pub_period']: + if pointcloud_dict['next_time'] is None or current_time >= pointcloud_dict['next_time']: pointcloud.header.stamp = rospy.Time.now() self.cloud_pub.publish(pointcloud) - pointcloud_dict['last_time'] = current_time + pointcloud_dict['next_time'] = current_time + pointcloud_dict['pub_period'] - def add_persistent_marker(self, marker:Marker, pub_period:float=None) -> Marker: + def _cb_timer_tf(self, event): + """ internal callback function + :meta private: + """ + with self.lock: + for custom_tf in self.tfs_dict.values(): + name, parent_frame, pose = custom_tf['frame'], custom_tf['parent_frame'], custom_tf['pose'] + # xyzq = pose_to_xyzq(pose) + # self.tf_pub.sendTransform(xyzq[:3], xyzq[3:], rospy.Time.now(), name, parent_frame) + self._pub_transform(name, pose, parent_frame) + + # internal function: publish the transform of a specific named object + def _pub_transform(self, name:str, pose, frame=None): + """ publish the transform of an object + + :param name: name of the object + :type name: str + :param pose: the pose of the object + :type pose: Pose, PoseStamped, list of 6 or 7 + :param frame: the frame against which the pose is defined, ignored if PoseStamped is provided, defaults to None + :type frame: str, optional + """ + frame = self.base_frame if frame is None else frame + if type(pose) in [list, tuple]: + pose_stamped = pose_tools.list_to_pose_stamped(pose, frame) + elif type(pose) == Pose: + pose_stamped = PoseStamped() + pose_stamped.header.frame_id = frame + pose_stamped.header.stamp = rospy.Time.now() + pose_stamped.pose = pose + elif type(pose) == PoseStamped: + frame = pose.header.frame_id + pose_stamped = pose + else: + rospy.logerr(f'{__class__.__name__}: parameter (pose) is not list of length 6 or 7 or a Pose object -> fix the parameter at behaviour construction') + raise TypeError(f'A parameter is invalid') + self.tf_broadcaster.sendTransform(pose_tools.pose_stamped_to_transform_stamped(pose_stamped, name)) + + def add_persistent_marker(self, marker:Marker, pub_period:float=None, pub_tf:bool=False) -> Marker: """ Add a persistent marker :param marker: A marker to be persistently published :param pub_period: The rate of publishing, which cannot be smaller than 0.1 seconds + :param pub_tf: if True, the pose of the marker is published as a tf frame :return: The mrker """ + assert marker is not None, 'RvizVisualizer (add_persistent_marker): Parameter (marker) cannot be None' with self.lock: pub_period = self.default_pub_period_marker if pub_period is None else pub_period pub_period = 0.1 if pub_period < 0.1 else pub_period - self.marker_dict[marker.ns, marker.id] = {'marker': marker, 'pub_period': pub_period, 'last_time': None} + self.markers_dict[marker.ns, marker.id] = {'marker': marker, 'pub_period': pub_period, 'next_time': None, 'pub_tf': pub_tf} + if pub_tf: + # self.add_custom_tf(f'{marker.ns}.{marker.id}', marker.header.frame_id, marker.pose) + self.add_custom_tf(f'{marker.ns}.{marker.id}', marker.header.frame_id, marker.pose) return marker def pub_temporary_marker(self, marker:Marker) -> Marker: - """ Add a temporary marker + """ Add a temporary marker, which is to be published only once :param marker: A marker to be published only once - :return: The mrker + :return: The marker + """ + assert marker is not None, 'RvizVisualizer (pub_temporary_marker): Parameter (marker) cannot be None' + with self.lock: + self.temp_marker_list.append({'marker': marker, 'pub_time': time.time() + self.TEMP_MAKRER_PUB_DELAY}) + return marker + + def add_persistent_marker_array(self, marker_array:MarkerArray, pub_period:float=None) -> Marker: + """ Add a persistent marker array + + :param marker_array: A marker array to be persistently published + :param pub_period: The rate of publishing, which cannot be smaller than 0.1 seconds + :param pub_tf: if True, the pose of the marker is published as a tf frame + :return: The index of the marker array """ + assert marker_array is not None, 'RvizVisualizer (add_persistent_marker_array): Parameter (marker_array) cannot be None' with self.lock: - self.temp_marker_list.append(marker) - return marker + pub_period = self.default_pub_period_marker if pub_period is None else pub_period + pub_period = 0.1 if pub_period < 0.1 else pub_period + self.marker_arrays_list.append({'marker_array': marker_array, 'pub_period': pub_period, 'next_time': None}) + return len(self.marker_arrays_list) - 1 + + def add_custom_tf(self, name:str, parent_frame:str, pose:Pose) -> None: + """ Add a custom transform to the rviz visualizer, which is broadcast regularly + + :param name: the name of the transform + :param xyz: the xyz pose + :param rpy: the rpy pose + :param frame: the reference frame + """ + if name is None or parent_frame is None or pose is None: + raise AssertionError(f'RvizVisualizer (add_custom_tf): No parameter can be None') + self.tfs_dict[name] = {'pose': pose, 'frame':name, 'parent_frame': parent_frame} - def delete_all_persistent_markers(self, frame) -> None: + def delete_all_persistent_markers(self) -> None: """ Remove all persistent markers from RViz and this object - :param frame: The reference frame """ with self.lock: - self.marker_dict.clear() - self.temp_marker_list.append(create_delete_all_marker(frame)) + # remove the tf associated with markers with pub_tf True + for marker_dict in self.markers_dict.values(): + if marker_dict['pub_tf']: + marker:Marker = marker_dict['marker'] + self.temp_marker_list.append({'marker': create_delete_marker(marker.ns, marker.id, marker.header.frame_id), + 'pub_time': time.time() + self.TEMP_MAKRER_PUB_DELAY}) + tf_frame = f'{marker.ns}.{marker.id}' + if tf_frame in self.tfs_dict: + del self.tfs_dict[tf_frame] + self.markers_dict.clear() + - def delete_persistent_markers(self, name, id, frame) -> None: + def delete_persistent_marker(self, name:str, id) -> None: """ Remove a persistent marker from RViz and this object :param name: the name space of the marker :param id: the id of the marker :param frame: the reference frame """ + assert name is not None and id is not None, \ + 'RvizVisualizer (delete_persistent_markers): Parameter (any) cannot be None' with self.lock: - if (name, id) in self.marker_dict: - del self.marker_dict[name, id] - self.temp_marker_list.append(create_delete_marker(name, id, frame)) + if (name, id) in self.markers_dict: + marker:Marker = self.markers_dict[name, id]['marker'] + del self.markers_dict[name, id] + self.temp_marker_list.append({'marker': create_delete_marker(name, id, marker.header.frame_id), + 'pub_time': time.time() + self.TEMP_MAKRER_PUB_DELAY}) + tf_frame = f'{name}.{id}' + if tf_frame in self.tfs_dict: + del self.tfs_dict[tf_frame] + + def delete_all_persistent_marker_arrays(self) -> None: + """ Remove all persistent marker arrays from RViz and this object - def add_pointcloud(self, name, pointcloud:PointCloud2, pub_period:float=None) -> PointCloud2: + """ + with self.lock: + num_marker_array = len(self.marker_arrays_list) + for _ in range(num_marker_array): + self.delete_persistent_marker_array(index=0) + + def delete_persistent_marker_array(self, index:int) -> None: + """ Remove a persistent marker from RViz and this object + + :param name: the name space of the marker + :param id: the id of the marker + :param frame: the reference frame + """ + assert index is not None, \ + 'RvizVisualizer (delete_persistent_marker_array): Parameter (any) cannot be None' + with self.lock: + if 0 <= index < len(self.marker_arrays_list): + marker_array:MarkerArray = self.marker_arrays_list[index]['marker_array'] + self.marker_arrays_list.pop(index) + marker:Marker = None + for marker in marker_array.markers: + self.temp_marker_list.append({'marker': create_delete_marker(marker.ns, marker.id, marker.header.frame_id), + 'pub_time': time.time() + self.TEMP_MAKRER_PUB_DELAY}) + return marker_array + return None + + def clear_all_markers_in_rviz(self, frame:str): + self.temp_marker_list.append({'marker': create_delete_all_marker(frame), 'pub_time': time.time() + self.TEMP_MAKRER_PUB_DELAY}) + + def add_pointcloud(self, name:str, pointcloud:PointCloud2, pub_period:float=None) -> PointCloud2: """ Add a PointCloud2 object for regular publishing :param name: the name of the pointcloud of type str @@ -530,43 +686,80 @@ def add_pointcloud(self, name, pointcloud:PointCloud2, pub_period:float=None) -> :return: the point cloud input parameter """ with self.lock: - pub_period = self.default_pub_period_marker if pub_period is None else pub_period + pub_period = self.default_pub_period_cloud if pub_period is None else pub_period pub_period = 0.1 if pub_period < 0.1 else pub_period - self.pointcloud_dict[name] = {'pointcloud': pointcloud, 'pub_period': pub_period, 'last_time': None} + self.pointclouds_dict[name] = {'pointcloud': pointcloud, 'pub_period': pub_period, 'next_time': None} return pointcloud - def delete_pointcloud(self, name) -> PointCloud2: + def delete_pointcloud(self, name:str) -> PointCloud2: """ Remove a pointcloud from regular publishing :param name: the name of the pointcloud of type str :return: the PointCloud2 object removed """ with self.lock: - if name in self.pointcloud_dict: - pointcloud = self.pointcloud_dict[name] - del self.pointcloud_dict[name] + if name in self.pointclouds_dict: + pointcloud = self.pointclouds_dict[name] + del self.pointclouds_dict[name] return pointcloud return None +# -------------------------------------------- +# -- Animation classes +class PoseAnimator(): + def __init__(self, pose): + self.pose:Pose = pose + # -- the test program if __name__ == '__main__': rospy.loginfo(f'running test_rv_node') rospy.init_node('test_rv_node', anonymous=False) # test the mark visualization rv = RvizVisualizer() - text_marker = rv.add_persistent_marker(create_text_marker('text', 1, 'Hello', [0, 0, 0, 0.2, 0, 0], 'world', 0.3)) + the_pose:Pose = Pose() + the_pose.position = Point(0, 0, 0) + the_pose.orientation = Quaternion(0, 0, 0, 1) + # create world frame + rv.add_custom_tf('world', 'map', the_pose) + + text_marker_1 = rv.add_persistent_marker(create_text_marker(name='text', id=1, text='Hello', xyzrpy=[0, 0, 0, 0.2, 0, 0], reference_frame='world', dimensions=0.3), pub_tf=True) + text_marker_2 = rv.add_persistent_marker(create_text_marker(name='text', id=2, text='World', xyzrpy=[0, 1, 0, 0.2, 0, 0], reference_frame='world', dimensions=0.3), pub_tf=True) rv.add_persistent_marker(create_line_marker('line', 1, [1, 0, 0], [0, 0, 1], 'world', 0.01, rgba=[0.0, 1.0, 1.0, 1.0]), pub_period=0.1) rv.add_persistent_marker(create_sphere_marker('sphere', 1, [1, 1, 1], 'world', 0.05, rgba=[0.5, 1.0, 1.0, 1.0])) rv.pub_temporary_marker(create_arrow_marker('arrow', 1, [1.0, 0.0, 0.0, 1.0, 0.0, 0.0], 'world', lifetime=rospy.Duration(3.0))) + # delete the line marker rospy.sleep(rospy.Duration(2.0)) - # rv.delete_all_persistent_markers('world') - # for i in range(100): - # pose = text_marker.pose - # pose.position.x += random.uniform(-0.5, 0.5) - # rospy.sleep(rospy.Duration(0.2)) - # rv.delete_persistent_markers('text', 1, 'world') - # test the image visualization - image_bgr = cv2.imread(os.path.join(os.path.dirname(__file__), '../demos/rviz_display/bird.png')) - pc2_message = create_pointcloud_from_image(image_bgr, (1, 0.5, 1), pixel_physical_size=[0.002, 0.002, -1], reference_frame='world') + rv.delete_persistent_marker('line', 1) + # delete all markers + rospy.sleep(rospy.Duration(2.0)) + rv.delete_all_persistent_markers() + # display stl mesh file + teapot_mesh = os.path.join(os.path.dirname(__file__), '../../demos/rviz_display/utah_teapot.stl') + teapot_mesh = 'file://' + teapot_mesh + rv.add_persistent_marker(create_mesh_marker('teapot', 1, teapot_mesh, [-1.0, -1.0, 0.0, 0, 0, 0], 'world', [0.05, 0.05, 0.05], rgba=[0.5, 1.0, 1.0, 1.0])) + # display image as pointcloud + image_bgr = cv2.imread(os.path.join(os.path.dirname(__file__), '../../demos/rviz_display/bird.png')) + pc2_message = create_pointcloud_from_image(image_bgr, (0, 0.5, 0), pixel_physical_size=[0.002, 0.002, -1], reference_frame='world') rv.add_pointcloud('the_image', pc2_message) + # add the text marker + rospy.sleep(rospy.Duration(2.0)) + text_marker_1 = rv.add_persistent_marker(create_text_marker('text', 1, 'Hello', [0, 0, 0, 0.2, 0, 0], 'world', 0.3), pub_period=0.1, pub_tf=True) + for i in range(100): + pose = text_marker_1.pose + pose.position.x += random.uniform(-0.5, 0.5) + rospy.sleep(rospy.Duration(0.2)) + # delete the text marker again + rv.delete_persistent_marker('text', 1) + # create marker array + marker_array = MarkerArray() + for x in range(4): + for y in range(4): + xyzrpy=[x * 0.4, y * 0.4, 1.0, 0, 0, 0] + tile = create_cube_marker_from_xyzrpy('tile', x + y * 4, xyzrpy, reference_frame='world', + dimensions=[0.3, 0.3, 0.05], rgba=[0.0, 0.2, 1.0, 0.5]) + marker_array.markers.append(tile) + rv.add_persistent_marker_array(marker_array) + rospy.sleep(rospy.Duration(5.0)) + rv.delete_all_persistent_marker_arrays() + rospy.spin() \ No newline at end of file From 96b7335d014dcf5eaf6c0396cd5ea90d39eafb93 Mon Sep 17 00:00:00 2001 From: andrewluiqut Date: Wed, 10 Jul 2024 16:46:06 +1000 Subject: [PATCH 2/4] task_scene.py has a revampled and simplified API based on a revised config file format on how scenes are defined and the removal of the subscene concept --- demos/gridscan/behaviours_gridscan.py | 16 +- demos/gridscan/task_scene.yaml | 83 ++-- demos/gridscan/task_scene_gridscan.py | 2 +- demos/gridscan/task_trees_manager_gridscan.py | 2 +- demos/pickndrop/task_scene.yaml | 49 +-- demos/pickndrop/task_trees_manager_pnd.py | 12 +- demos/pickndrop_estop/task_scene.yaml | 51 +-- .../pickndrop_estop/task_trees_manager_pnd.py | 12 +- demos/pushblock/task_scene.yaml | 76 ++-- .../pushblock/task_trees_manager_pushblock.py | 16 +- demos/pushblock_ros/task_scene.yaml | 82 ++-- demos/pytrees_moves_scene/move_scene_1.py | 2 +- demos/pytrees_moves_scene/move_scene_4.py | 12 +- demos/pytrees_moves_scene/move_scene_5.py | 12 +- demos/pytrees_moves_scene/task_scene.yaml | 10 +- demos/pytrees_moves_scene/task_scene_2.yaml | 17 +- demos/pytrees_moves_scene/task_scene_3.yaml | 21 +- demos/pytrees_moves_scene/task_scene_4.yaml | 22 +- demos/rviz_display/task_scene.yaml | 31 +- demos/rviz_display/task_trees_manager_rviz.py | 8 +- demos/simple_moves_scene/move_scene_4.py | 2 +- demos/simple_moves_scene/move_scene_5.py | 2 +- demos/simple_moves_scene/task_scene.yaml | 12 +- demos/simple_moves_scene/task_scene_2.yaml | 17 +- demos/simple_moves_scene/task_scene_3.yaml | 21 +- demos/simple_moves_scene/task_scene_4.yaml | 22 +- demos/simple_moves_scene/task_scene_6.yaml | 21 +- docs/source/SCENE_SUPPORT.md | 210 +++++---- task_trees/behaviours_move.py | 6 +- task_trees/demos/pushblock/task_scene.yaml | 76 ++-- .../pushblock/task_trees_manager_pushblock.py | 16 +- task_trees/scene_to_rviz.py | 152 +++---- task_trees/task_scene.py | 407 +++++++----------- task_trees/task_scene_old.py | 379 ++++++++++++++++ task_trees/task_trees_manager.py | 41 +- 35 files changed, 1138 insertions(+), 782 deletions(-) create mode 100644 task_trees/task_scene_old.py diff --git a/demos/gridscan/behaviours_gridscan.py b/demos/gridscan/behaviours_gridscan.py index a4d9282..9471867 100644 --- a/demos/gridscan/behaviours_gridscan.py +++ b/demos/gridscan/behaviours_gridscan.py @@ -43,18 +43,20 @@ def __init__(self, name, arm_commander=None, scene=None): self.the_blackboard.register_key(key='tank', access=py_trees.common.Access.WRITE) # attach robot agent self.arm_commander = arm_commander - self.the_scene = scene + self.the_scene:GridScanScene = scene # the concrete implementation that contains the logic of the simulated calibration def update(self): logger.info(f'SimCalibrate: found tank at pose: ') # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) - if the_object.name == 'tank': - self.the_blackboard.set('tank', the_object) + for scene_name in self.the_scene.list_scene_names(): + link_of_scene = self.the_scene.get_link_of_scene(scene_name) + if link_of_scene is None: + continue + if link_of_scene.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, link_of_scene.dimensions, link_of_scene.xyz, link_of_scene.rpy, link_of_scene.parent_frame) + if link_of_scene.name == 'tank': + self.the_blackboard.set('tank', link_of_scene) self.the_blackboard.task.result = '12' return Status.SUCCESS diff --git a/demos/gridscan/task_scene.yaml b/demos/gridscan/task_scene.yaml index 7440177..508f6f3 100644 --- a/demos/gridscan/task_scene.yaml +++ b/demos/gridscan/task_scene.yaml @@ -1,49 +1,23 @@ --- -scene: - named_poses: - stow: [3.110, -0.5467, -2.692, -1.473, 1.570, 0.000] # from base to wrist_3 - home: [2.524, -1.241, -2.101, -1.370, 1.570, 0.000] # from base to wrist_3 - regions: - workspace: [-1.2, -0.97, -0.1, 1.5, 0.6, 1.2] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-1.2, -0.3, 1.2, 0.6] # min_x, min_y, max_x, max_y - work: [-1.2, -0.6, 1.2, -0.3] # min_x, min_y, max_x, max_y - work3d: [-1.2, -0.6, 0.15, 1.2, -0.3, 0.6] # min_x, min_y, min_z, max_x, max_y, max_z - objects: - tank: +scenes: + root: + named_poses: + stow: [3.110, -0.5467, -2.692, -1.473, 1.570, 0.000] # from base to wrist_3 + home: [2.524, -1.241, -2.101, -1.370, 1.570, 0.000] # from base to wrist_3 + regions: + workspace: [-1.2, -0.97, -0.1, 1.5, 0.6, 1.2] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-1.2, -0.3, 1.2, 0.6] # min_x, min_y, max_x, max_y + work: [-1.2, -0.6, 1.2, -0.3] # min_x, min_y, max_x, max_y + work3d: [-1.2, -0.6, 0.15, 1.2, -0.3, 0.6] # min_x, min_y, min_z, max_x, max_y, max_z + + tank: + link: type: box model_file: null dimensions: [0.4, 1.8, 0.10] xyz: [0.0, -0.5, 0.05] rpy: [0, 0, 1.57] frame: null - side_1: - type: box - model_file: null - dimensions: [0.005, 1.8, 0.20] - xyz: [0.0, -0.3, 0.10] - rpy: [0, 0, 1.57] - frame: null - side_2: - type: box - model_file: null - dimensions: [0.005, 1.8, 0.20] - xyz: [0.0, -0.7, 0.10] - rpy: [0, 0, 1.57] - side_3: - type: box - model_file: null - dimensions: [0.4, 0.005, 0.20] - xyz: [-0.9, -0.5, 0.10] - rpy: [0, 0, 1.57] - side_4: - type: box - model_file: null - dimensions: [0.4, 0.005, 0.20] - xyz: [0.9, -0.5, 0.10] - rpy: [0, 0, 1.57] - -subscenes: - tank: bbox: [-0.2, -0.9, 0.2, 0.9] # min_x, min_y, max_x, max_y positions: default: [null, null, 0.35] @@ -85,6 +59,37 @@ subscenes: tile_y: 0 origin_position: [-0.1, 0.45] ee_rotation: tank.rotations.beta + side_1: + link: + type: box + model_file: null + dimensions: [0.005, 1.8, 0.20] + xyz: [0.0, -0.3, 0.10] + rpy: [0, 0, 1.57] + frame: null + side_2: + link: + type: box + model_file: null + dimensions: [0.005, 1.8, 0.20] + xyz: [0.0, -0.7, 0.10] + rpy: [0, 0, 1.57] + side_3: + link: + type: box + model_file: null + dimensions: [0.4, 0.005, 0.20] + xyz: [-0.9, -0.5, 0.10] + rpy: [0, 0, 1.57] + side_4: + link: + type: box + model_file: null + dimensions: [0.4, 0.005, 0.20] + xyz: [0.9, -0.5, 0.10] + rpy: [0, 0, 1.57] + + diff --git a/demos/gridscan/task_scene_gridscan.py b/demos/gridscan/task_scene_gridscan.py index f53547c..3c966ad 100644 --- a/demos/gridscan/task_scene_gridscan.py +++ b/demos/gridscan/task_scene_gridscan.py @@ -28,7 +28,7 @@ def __init__(self, scene_config_file:str = None): super(GridScanScene, self).__init__(scene_config_file) # -- prepare internal data structures for efficiency # tank configuration - self.tank_config = self.subscene_config['tank'] + self.tank_config = self.scenes_branch['tank'] # tile_step size self.step_size_x = self.tank_config['tile']['step_size_x'] self.step_size_y = self.tank_config['tile']['step_size_y'] diff --git a/demos/gridscan/task_trees_manager_gridscan.py b/demos/gridscan/task_trees_manager_gridscan.py index a64a64d..8729480 100644 --- a/demos/gridscan/task_trees_manager_gridscan.py +++ b/demos/gridscan/task_trees_manager_gridscan.py @@ -189,7 +189,7 @@ def wrong_xy_at_tank(self) -> bool: def at_angle(self, rotation_pose) -> bool: current_xyzrpy = self.arm_commander.pose_in_frame_as_xyzrpy(reference_frame='tank') - rotation_rpy = self.the_scene.query_rotation_as_rpy(rotation_pose) + rotation_rpy = self.the_scene.query_config(rotation_pose) for index in range(len(rotation_rpy)): if rotation_rpy[index] is None: continue diff --git a/demos/pickndrop/task_scene.yaml b/demos/pickndrop/task_scene.yaml index 326d0c9..7a0ee29 100644 --- a/demos/pickndrop/task_scene.yaml +++ b/demos/pickndrop/task_scene.yaml @@ -1,30 +1,24 @@ -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.2, 1.0, 0.5] # min_x, min_y, max_x, max_y - positions: - drop: [0.5, 0.3, 0.4] - objects: - the_table: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.2, 1.0, 0.5] # min_x, min_y, max_x, max_y + positions: + drop: [0.5, 0.3, 0.4] + gripper_offset: [0, 0, 0.12] + grip_prepare_offset: [0, 0, 0.20] + + the_table: + link: + parent_frame: root type: box model_file: null dimensions: [0.5, 0.2, 0.3] xyz: [0.2, -0.35, 0.15] - rpy: [0, 0, 0] - the_bin: - type: box - model_file: null - dimensions: [0.1, 0.1, 0.2] - xyz: [0.5, 0.3, 0.1] - rpy: [0, 0, 0] - gripper_offset: [0, 0, 0.12] - grip_prepare_offset: [0, 0, 0.20] - -subscenes: - the_table: + rpy: [0, 0, 0] positions: start: [0, 0, null] scan_z_level: [null, null, 0.45] @@ -33,5 +27,12 @@ subscenes: scan_step_size: [0.05, 0.05] the_bin: + link: + parent_frame: root + type: box + model_file: null + dimensions: [0.1, 0.1, 0.2] + xyz: [0.5, 0.3, 0.1] + rpy: [0, 0, 0] regions: - dropzone: [-0.05, -0.05, 0.05, 0.05] + dropzone: [-0.05, -0.05, 0.05, 0.05] \ No newline at end of file diff --git a/demos/pickndrop/task_trees_manager_pnd.py b/demos/pickndrop/task_trees_manager_pnd.py index d4bd664..50f05db 100644 --- a/demos/pickndrop/task_trees_manager_pnd.py +++ b/demos/pickndrop/task_trees_manager_pnd.py @@ -121,14 +121,16 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # Functions for the simulation (demo) def setup_objects(self): # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy) + for scene_name in self.the_scene.list_scene_names(): + the_link = self.the_scene.get_link_of_scene(scene_name) + if the_link is None: + continue + if the_link.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link.dimensions, the_link.xyz, the_link.rpy) # Generate a new ball on the table def generate_a_ball(self): - the_table = self.the_scene.get_object_config('the_table') + the_table = self.the_scene.get_link_of_scene('the_table') x, y = the_table.dimensions[0] * random.random() * 0.9, the_table.dimensions[1] * random.random() * 0.9 # position in the box frame z = the_table.xyz[2] + the_table.dimensions[2] / 2 + 0.035 xyz = [x, y, z] diff --git a/demos/pickndrop_estop/task_scene.yaml b/demos/pickndrop_estop/task_scene.yaml index 995573f..7a0ee29 100644 --- a/demos/pickndrop_estop/task_scene.yaml +++ b/demos/pickndrop_estop/task_scene.yaml @@ -1,30 +1,24 @@ -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.2, 1.0, 0.5] # min_x, min_y, max_x, max_y - positions: - drop: [0.5, 0.3, 0.4] - objects: - the_table: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.2, 1.0, 0.5] # min_x, min_y, max_x, max_y + positions: + drop: [0.5, 0.3, 0.4] + gripper_offset: [0, 0, 0.12] + grip_prepare_offset: [0, 0, 0.20] + + the_table: + link: + parent_frame: root type: box model_file: null dimensions: [0.5, 0.2, 0.3] - xyz: [0.2, -0.3, 0.15] - rpy: [0, 0, 0] - the_bin: - type: box - model_file: null - dimensions: [0.1, 0.1, 0.2] - xyz: [0.5, 0.3, 0.1] - rpy: [0, 0, 0] - gripper_offset: [0, 0, 0.12] - grip_prepare_offset: [0, 0, 0.20] - -subscenes: - the_table: + xyz: [0.2, -0.35, 0.15] + rpy: [0, 0, 0] positions: start: [0, 0, null] scan_z_level: [null, null, 0.45] @@ -33,5 +27,12 @@ subscenes: scan_step_size: [0.05, 0.05] the_bin: + link: + parent_frame: root + type: box + model_file: null + dimensions: [0.1, 0.1, 0.2] + xyz: [0.5, 0.3, 0.1] + rpy: [0, 0, 0] regions: - dropzone: [-0.05, -0.05, 0.05, 0.05] + dropzone: [-0.05, -0.05, 0.05, 0.05] \ No newline at end of file diff --git a/demos/pickndrop_estop/task_trees_manager_pnd.py b/demos/pickndrop_estop/task_trees_manager_pnd.py index 58c4ad0..f711636 100644 --- a/demos/pickndrop_estop/task_trees_manager_pnd.py +++ b/demos/pickndrop_estop/task_trees_manager_pnd.py @@ -115,14 +115,16 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # Functions for the simulation (demo) def setup_objects(self): # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy) + for scene_name in self.the_scene.list_scene_names(): + the_link = self.the_scene.get_link_of_scene(scene_name) + if the_link is None: + continue + if the_link.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link.dimensions, the_link.xyz, the_link.rpy) # Generate a new ball on the table def generate_a_ball(self): - the_table = self.the_scene.get_object_config('the_table') + the_table = self.the_scene.get_link_of_scene('the_table') x, y = the_table.dimensions[0] * random.random() * 0.9, the_table.dimensions[1] * random.random() * 0.9 # position in the box frame z = the_table.xyz[2] + the_table.dimensions[2] / 2 + 0.035 xyz = [x, y, z] diff --git a/demos/pushblock/task_scene.yaml b/demos/pushblock/task_scene.yaml index e1ba483..51f4c99 100644 --- a/demos/pushblock/task_scene.yaml +++ b/demos/pushblock/task_scene.yaml @@ -1,76 +1,89 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y - rotations: - # alpha: [3.14, null, 0.78] - # beta: [3.14, null, -0.78] - alpha: [3.14, 0, -0.785] - beta: [3.14, 0, 2.358] - push_block: - dimensions: [0.05, 0.05, 0.05] - xyz: [0.0, 0.025, 0.151] - rpy: [0, 0, 0] - objects: - block_1: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y + rotations: + # alpha: [3.14, null, 0.78] + # beta: [3.14, null, -0.78] + alpha: [3.14, 0, -0.785] + beta: [3.14, 0, 2.358] + push_block: + dimensions: [0.05, 0.05, 0.05] + xyz: [0.0, 0.025, 0.151] + rpy: [0, 0, 0] + + block_1: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, -0.10, 0.175] rpy: [0, 0, 0] - block_2: + block_2: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, -0.10, 0.175] rpy: [0, 0, 0] - block_3: + block_3: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, 0.10, 0.175] rpy: [0, 0, 0] - block_4: + block_4: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, 0.10, 0.175] rpy: [0, 0, 0] - area_1: + area_1: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.4, 0.0, 0.125] rpy: [0, 0, 1.57] - area_2: + area_2: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, -0.10, 0.125] rpy: [0, 0, 3.14] - area_3: + area_3: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.6, 0.0, 0.125] rpy: [0, 0, -1.57] - area_4: + area_4: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.10, 0.125] rpy: [0, 0, 0] - area_5: + area_5: + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.0, 0.125] rpy: [0, 0, 0] -subscenes: area: positions: hover: [null, null, 0.40] @@ -79,12 +92,5 @@ subscenes: centre: [0, -0.015, null] # -0.01 restart: [0, -0.185, null] end: [0, -0.06, null] - area_1: - rotation: rotations.alpha - area_2: - rotation: rotations.beta - area_3: - rotation: rotations.beta - area_4: - rotation: rotations.alpha + diff --git a/demos/pushblock/task_trees_manager_pushblock.py b/demos/pushblock/task_trees_manager_pushblock.py index 95d518d..9fa6fc8 100644 --- a/demos/pushblock/task_trees_manager_pushblock.py +++ b/demos/pushblock/task_trees_manager_pushblock.py @@ -83,8 +83,8 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # setup visualization in rviz self.scene_to_rviz = SceneToRViz(self.the_scene, arm_commander.get_world_reference_frame(), False) self.scene_to_rviz.display_bbox_regions('regions', rgba=[1.0, 0.0, 1.0, 0.2]) - object_area1 = self.the_scene.get_object_config('area_1') - self.scene_to_rviz.add_custom_transform('area', object_area1.xyz, object_area1.rpy, arm_commander.get_world_reference_frame()) + link_area1 = self.the_scene.get_link_of_scene('area_1') + self.scene_to_rviz.add_custom_transform('area', link_area1.xyz, link_area1.rpy, arm_commander.get_world_reference_frame()) self.scene_to_rviz.display_positions('area.positions', rgba=[1.0, 1.0, 0.0, 0.8]) # setup the robotic manipulation platform through the commander self.arm_commander.abort_move(wait=True) @@ -112,7 +112,7 @@ def setup_objects(self): # the_object = self.the_scene.get_object_config(object_name) # if the_object.type == 'box': # self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) - self._define_objects(self.the_scene, 'box') + self._define_links(self.the_scene, 'box') def generate_the_object(self): self.the_object = dict() @@ -197,19 +197,19 @@ def in_a_region(self, logical_region) -> bool: return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), self.the_scene.query_config(logical_region)) def over_an_object(self, object_name) -> bool: - the_object = self.the_scene.get_object_config(object_name) - the_object_position_as_bbox = [the_object.xyz[0] - the_object.dimensions[0] / 2, the_object.xyz[1] - the_object.dimensions[1] / 2, - the_object.xyz[0] + the_object.dimensions[0] / 2, the_object.xyz[1] + the_object.dimensions[1] / 2] + the_link = self.the_scene.get_link_of_scene(object_name) + the_object_position_as_bbox = [the_link.xyz[0] - the_link.dimensions[0] / 2, the_link.xyz[1] - the_link.dimensions[1] / 2, + the_link.xyz[0] + the_link.dimensions[0] / 2, the_link.xyz[1] + the_link.dimensions[1] / 2] current_pose = self.arm_commander.pose_of_robot_link() return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), the_object_position_as_bbox) def on_or_above_z(self, position) -> bool: current_pose = self.arm_commander.pose_of_robot_link() - return current_pose.pose.position.z > self.the_scene.query_position_as_xyz(position)[2] - 0.05 + return current_pose.pose.position.z > self.the_scene.query_config(position)[2] - 0.05 def below_z(self, position) -> bool: current_pose = self.arm_commander.pose_of_robot_link() - return current_pose.pose.position.z < self.the_scene.query_position_as_xyz(position)[2] - 0.05 + return current_pose.pose.position.z < self.the_scene.query_config(position)[2] - 0.05 def wrong_restart_position(self) -> bool: target = self.query_target_reference_frame() diff --git a/demos/pushblock_ros/task_scene.yaml b/demos/pushblock_ros/task_scene.yaml index 22e6492..51f4c99 100644 --- a/demos/pushblock_ros/task_scene.yaml +++ b/demos/pushblock_ros/task_scene.yaml @@ -1,78 +1,89 @@ -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y - positions: - drop: [0.5, 0.3, 0.4] - rotations: - # alpha: [3.14, null, 0.78] - # beta: [3.14, null, -0.78] - alpha: [3.14, 0, -0.785] - beta: [3.14, 0, 2.358] - push_block: - dimensions: [0.05, 0.05, 0.05] - xyz: [0.0, 0.025, 0.151] - rpy: [0, 0, 0] - objects: - block_1: +--- +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y + rotations: + # alpha: [3.14, null, 0.78] + # beta: [3.14, null, -0.78] + alpha: [3.14, 0, -0.785] + beta: [3.14, 0, 2.358] + push_block: + dimensions: [0.05, 0.05, 0.05] + xyz: [0.0, 0.025, 0.151] + rpy: [0, 0, 0] + + block_1: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, -0.10, 0.175] rpy: [0, 0, 0] - block_2: + block_2: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, -0.10, 0.175] rpy: [0, 0, 0] - block_3: + block_3: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, 0.10, 0.175] rpy: [0, 0, 0] - block_4: + block_4: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, 0.10, 0.175] rpy: [0, 0, 0] - area_1: + area_1: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.4, 0.0, 0.125] rpy: [0, 0, 1.57] - area_2: + area_2: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, -0.10, 0.125] rpy: [0, 0, 3.14] - area_3: + area_3: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.6, 0.0, 0.125] rpy: [0, 0, -1.57] - area_4: + area_4: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.10, 0.125] rpy: [0, 0, 0] - area_5: + area_5: + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.0, 0.125] - rpy: [0, 0, 0] - -subscenes: + rpy: [0, 0, 0] area: positions: hover: [null, null, 0.40] @@ -81,12 +92,5 @@ subscenes: centre: [0, -0.015, null] # -0.01 restart: [0, -0.185, null] end: [0, -0.06, null] - area_1: - rotation: rotations.alpha - area_2: - rotation: rotations.beta - area_3: - rotation: rotations.beta - area_4: - rotation: rotations.alpha + diff --git a/demos/pytrees_moves_scene/move_scene_1.py b/demos/pytrees_moves_scene/move_scene_1.py index ed77d55..d7550ca 100644 --- a/demos/pytrees_moves_scene/move_scene_1.py +++ b/demos/pytrees_moves_scene/move_scene_1.py @@ -40,7 +40,7 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): self.arm_commander.wait_for_ready_to_move() self.the_scene = Scene(os.path.join(os.path.dirname(__file__), 'task_scene.yaml')) # setup name poses - self.named_poses = self.the_scene.keys_of_config('named_poses') + self.named_poses = self.the_scene.key_list_under_config_key('named_poses') for pose_name in self.named_poses: pose_name = 'named_poses.' + pose_name self.arm_commander.add_named_pose(pose_name, self.the_scene.query_config(pose_name)) diff --git a/demos/pytrees_moves_scene/move_scene_4.py b/demos/pytrees_moves_scene/move_scene_4.py index 5a88cf7..92abd92 100644 --- a/demos/pytrees_moves_scene/move_scene_4.py +++ b/demos/pytrees_moves_scene/move_scene_4.py @@ -44,16 +44,18 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # load scene config self.the_scene = Scene(os.path.join(os.path.dirname(__file__), 'task_scene_4.yaml')) # setup name poses - self.named_poses = self.the_scene.keys_of_config('named_poses') + self.named_poses = self.the_scene.key_list_under_config_key('named_poses') for pose_name in self.named_poses: pose_name = 'named_poses.' + pose_name self.arm_commander.add_named_pose(pose_name, self.the_scene.query_config(pose_name)) # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy) + for scene_name in self.the_scene.list_scene_names(): + the_link_of_scene = self.the_scene.get_link_of_scene(scene_name) + if the_link_of_scene is None: + continue + if the_link_of_scene.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link_of_scene.dimensions, the_link_of_scene.xyz, the_link_of_scene.rpy) # build the behaviour tree self.move_branch = self.create_move_branch() diff --git a/demos/pytrees_moves_scene/move_scene_5.py b/demos/pytrees_moves_scene/move_scene_5.py index ae82f44..e24edb6 100644 --- a/demos/pytrees_moves_scene/move_scene_5.py +++ b/demos/pytrees_moves_scene/move_scene_5.py @@ -43,16 +43,18 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # load scene config self.the_scene = Scene(os.path.join(os.path.dirname(__file__), 'task_scene_4.yaml')) # setup name poses - self.named_poses = self.the_scene.keys_of_config('named_poses') + self.named_poses = self.the_scene.key_list_under_config_key('named_poses') for pose_name in self.named_poses: pose_name = 'named_poses.' + pose_name self.arm_commander.add_named_pose(pose_name, self.the_scene.query_config(pose_name)) # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy) + for scene_name in self.the_scene.list_scene_names(): + the_link_of_scene = self.the_scene.get_link_of_scene(scene_name) + if the_link_of_scene is None: + continue + if the_link_of_scene.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link_of_scene.dimensions, the_link_of_scene.xyz, the_link_of_scene.rpy) # build the behaviour tree self.move_branch = self.create_move_branch() diff --git a/demos/pytrees_moves_scene/task_scene.yaml b/demos/pytrees_moves_scene/task_scene.yaml index 4ee0105..63b15e3 100644 --- a/demos/pytrees_moves_scene/task_scene.yaml +++ b/demos/pytrees_moves_scene/task_scene.yaml @@ -1,9 +1,9 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base -subscenes: diff --git a/demos/pytrees_moves_scene/task_scene_2.yaml b/demos/pytrees_moves_scene/task_scene_2.yaml index ef15b3d..73e4cbe 100644 --- a/demos/pytrees_moves_scene/task_scene_2.yaml +++ b/demos/pytrees_moves_scene/task_scene_2.yaml @@ -1,11 +1,12 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - start: [0.4, 0.0, 0.2] - end: [0.4, 0.0, 0.6] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + start: [0.4, 0.0, 0.2] + end: [0.4, 0.0, 0.6] + diff --git a/demos/pytrees_moves_scene/task_scene_3.yaml b/demos/pytrees_moves_scene/task_scene_3.yaml index 580e780..8f4e516 100644 --- a/demos/pytrees_moves_scene/task_scene_3.yaml +++ b/demos/pytrees_moves_scene/task_scene_3.yaml @@ -1,13 +1,14 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_x: [0.3, null, null] - init: [0.307, 0.0, 0.588] - rotations: - alpha: [3.139, 0.0, -0.785] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_x: [0.3, null, null] + init: [0.307, 0.0, 0.588] + rotations: + alpha: [3.139, 0.0, -0.785] + diff --git a/demos/pytrees_moves_scene/task_scene_4.yaml b/demos/pytrees_moves_scene/task_scene_4.yaml index 1088ead..96fd663 100644 --- a/demos/pytrees_moves_scene/task_scene_4.yaml +++ b/demos/pytrees_moves_scene/task_scene_4.yaml @@ -1,22 +1,24 @@ --- -scene: - named_poses: - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_z: [null, null, 0.5] - objects: - area_1: +scenes: + root: + named_poses: + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_z: [null, null, 0.5] + area_1: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, 0.20, 0.00] rpy: [0, 0, 3.14] - area_2: + area_2: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, -0.20, 0.00] rpy: [0, 0, 3.14] -subscenes: - diff --git a/demos/rviz_display/task_scene.yaml b/demos/rviz_display/task_scene.yaml index 0786b4b..062592e 100644 --- a/demos/rviz_display/task_scene.yaml +++ b/demos/rviz_display/task_scene.yaml @@ -1,27 +1,24 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_z: [null, null, 0.5] - objects: - teapot: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_z: [null, null, 0.5] + + teapot: + link: type: object # model_file: file://localhost/home/qcr/arm_commander_ws/src/task_trees/demos/rviz_display/utah_teapot.stl model_file: package://task_trees/demos/rviz_display/utah_teapot.stl dimensions: [0.01, 0.01, 0.01] xyz: [0.4, 0.20, 0.00] rpy: [0, 0, 3.14] - frames: - area: + area: + link: + type: frame xyz: [0.4, -0.20, 0.00] rpy: [3.14, 0, 3.14] -subscenes: - area: - frames: - zone: - xyz: [0.4, -0.20, 0.00] - rpy: [3.14, 0, 3.14] - + diff --git a/demos/rviz_display/task_trees_manager_rviz.py b/demos/rviz_display/task_trees_manager_rviz.py index 202cab9..f451009 100644 --- a/demos/rviz_display/task_trees_manager_rviz.py +++ b/demos/rviz_display/task_trees_manager_rviz.py @@ -55,14 +55,14 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): self.the_scene = Scene(config_file) # setup visualization in rviz self.scene_to_rviz = SceneToRViz(self.the_scene, arm_commander.get_world_reference_frame(), False) - self.scene_to_rviz.display_object('objects.teapot') + self.scene_to_rviz.display_link('teapot') # setup the robotic manipulation platform through the commander self.arm_commander.abort_move(wait=True) self.arm_commander.reset_world() - bird_object = self.the_scene.get_object_config('teapot') - self.arm_commander.add_object_to_scene('teapot_another', bird_object.model_file, bird_object.dimensions, - bird_object.xyz, bird_object.rpy, reference_frame='area') + teapot_object = self.the_scene.get_link_of_scene('teapot') + self.arm_commander.add_object_to_scene('teapot_another', teapot_object.model_file, teapot_object.dimensions, + teapot_object.xyz, teapot_object.rpy, reference_frame='area') # self.arm_commander.set_workspace_walls(*(self.the_scene.query_config('regions.workspace'))) # setup name poses self._define_named_poses(self.the_scene) diff --git a/demos/simple_moves_scene/move_scene_4.py b/demos/simple_moves_scene/move_scene_4.py index 4467fa5..bb2f69d 100644 --- a/demos/simple_moves_scene/move_scene_4.py +++ b/demos/simple_moves_scene/move_scene_4.py @@ -43,7 +43,7 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # setup name poses self._define_named_poses(self.the_scene) # setup objects - self._define_objects(self.the_scene) + self._define_links(self.the_scene) # build and install the behavior tree self._set_initialize_branch(self.create_init_branch()) diff --git a/demos/simple_moves_scene/move_scene_5.py b/demos/simple_moves_scene/move_scene_5.py index 2da9775..4a1e802 100644 --- a/demos/simple_moves_scene/move_scene_5.py +++ b/demos/simple_moves_scene/move_scene_5.py @@ -43,7 +43,7 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # setup name poses self._define_named_poses(self.the_scene) # setup objects - self._define_objects(self.the_scene) + self._define_links(self.the_scene) # build and install the behavior tree self._set_initialize_branch(self.create_init_branch()) self._add_priority_branch(self.create_move_branch()) diff --git a/demos/simple_moves_scene/task_scene.yaml b/demos/simple_moves_scene/task_scene.yaml index 4ee0105..cee2223 100644 --- a/demos/simple_moves_scene/task_scene.yaml +++ b/demos/simple_moves_scene/task_scene.yaml @@ -1,9 +1,9 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + diff --git a/demos/simple_moves_scene/task_scene_2.yaml b/demos/simple_moves_scene/task_scene_2.yaml index c3df9d6..9d7a9a7 100644 --- a/demos/simple_moves_scene/task_scene_2.yaml +++ b/demos/simple_moves_scene/task_scene_2.yaml @@ -1,11 +1,12 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - start: [0.3, 0.0, 0.2] - end: [0.3, 0.0, 0.6] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + start: [0.3, 0.0, 0.2] + end: [0.3, 0.0, 0.6] + diff --git a/demos/simple_moves_scene/task_scene_3.yaml b/demos/simple_moves_scene/task_scene_3.yaml index 580e780..8f4e516 100644 --- a/demos/simple_moves_scene/task_scene_3.yaml +++ b/demos/simple_moves_scene/task_scene_3.yaml @@ -1,13 +1,14 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_x: [0.3, null, null] - init: [0.307, 0.0, 0.588] - rotations: - alpha: [3.139, 0.0, -0.785] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_x: [0.3, null, null] + init: [0.307, 0.0, 0.588] + rotations: + alpha: [3.139, 0.0, -0.785] + diff --git a/demos/simple_moves_scene/task_scene_4.yaml b/demos/simple_moves_scene/task_scene_4.yaml index 1088ead..96fd663 100644 --- a/demos/simple_moves_scene/task_scene_4.yaml +++ b/demos/simple_moves_scene/task_scene_4.yaml @@ -1,22 +1,24 @@ --- -scene: - named_poses: - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_z: [null, null, 0.5] - objects: - area_1: +scenes: + root: + named_poses: + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_z: [null, null, 0.5] + area_1: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, 0.20, 0.00] rpy: [0, 0, 3.14] - area_2: + area_2: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, -0.20, 0.00] rpy: [0, 0, 3.14] -subscenes: - diff --git a/demos/simple_moves_scene/task_scene_6.yaml b/demos/simple_moves_scene/task_scene_6.yaml index 01dfc4d..b851ede 100644 --- a/demos/simple_moves_scene/task_scene_6.yaml +++ b/demos/simple_moves_scene/task_scene_6.yaml @@ -1,13 +1,14 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - start: [null, -0.3, null] - end: [null, 0.3, null] - near: [0.4, null, null] - far: [0.6, null, null] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + start: [null, -0.3, null] + end: [null, 0.3, null] + near: [0.4, null, null] + far: [0.6, null, null] + diff --git a/docs/source/SCENE_SUPPORT.md b/docs/source/SCENE_SUPPORT.md index d8954fb..72c1c50 100644 --- a/docs/source/SCENE_SUPPORT.md +++ b/docs/source/SCENE_SUPPORT.md @@ -10,73 +10,72 @@ The key enabling component of the logical scene support is **scene configuration ### Basic Structure of a Scene Configuration File -A scene configuration file is divided into the root scene and custom subscene. The significance betwwen the root scene and the subscenes is the namespace of their configuration key-value pairs. All key-value defined under the root scene do have an empty namespace, while the variables under a subscene requires the subscene name as the namespace. The top level keys must be `scene` and `subscenes`, and under `subscenes` keys representing names of subscenes can be added. In the following example, `sub_scene_1` and `sub_scene_2` are names of custom subscenes. +A scene configuration file can be divided into one or more scenes. The first scene must be known as `root`. The scene is the top-level identifier for refering to all the resource keys in the configuration file. Each scene defines its own reference frame and optionally an visual object attached. A scene without a specified visual object is called a frame-type scene or simply known as a frame. + +The significance betwwen the root scene and the other scenes is the namespace of their configuration key-value pairs. All key-value defined under the root scene may be replaced with an empty namespace, while the variables under a subscene requires the subscene name as the namespace. + +The configuration file must starts with the key `scenes`, under which each scene can be added by the name as the head the scene branch. In the following example, `root` is the mandatory scene, and `scene_1` and `scene_2` are names of custom scenes. ```diff --- -scene: +scenes: + root: ... variables of the root scene go here - objects: - ... optional definitions of objects (which are also reference frames) - frames: - ... optional definitions of reference frames + named_poses: ... optional definitions of named poses -subscenes: - sub_scene_1: - ... variables of the subscene sub_scene_1 go here + scene_1: + link: + ... pose definitions of scene (which are also reference frames) + ... variables of the subscene scene_1 go here - sub_scene_2: - ... variables of the subscene sub_scene_2 go here + scene_2: + ... variables of the subscene scene_2 go here ``` -### Optional Branches Recognized by the Task Tree Manager - -The named branches of `objects`, `frames`, and `named_poses` have dedicated functions in the scene configuration. - -- The key `objects` under the root scene is recognized by the task tree manager `TaskTreesManager` class as definitions of collision objects. In the task trees, collision objects are also recognized as custom reference frames. -- The key `frames` under the root scene is recognized as definitions of custom reference frames. -- The key`named_poses` under the root scene is also recognized by the task tree manager as the named poses adding to the arm commander. - -The presence of these branches are optional. - -The `TaskTreesManager` class offers the functions `_define_objects`, `_define_frames` and `_define_named_poses` for adding the objects, the custom reference frames, and named poses defined in the scene configuration. - -### Specifying Configurations in the Root Scene and Subscenes +### Specifying Configurations in the Root Scene and Other Scenes Consider the example `task_scene_4.yaml` [source code](../../demos/simple_moves_scene/task_scene_4.yaml) below. In this example, all configuration keys are under the root scene. No subscene is defined. ``` --- -scene: - named_poses: - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_z: [null, null, 0.5] - objects: - area_1: +scenes: + root: + named_poses: + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_z: [null, null, 0.5] + area_1: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, 0.20, 0.00] rpy: [0, 0, 3.14] - frame: null - area_2: + area_2: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, -0.20, 0.00] rpy: [0, 0, 3.14] - frame: area_1 -subscenes: ``` -A subscene is firstly a namespace for queries and key references. It should also be the reference frame to which the poses are defined. The subscene name is usually either the name of a reference frame or a collision object. +A scene is firstly a namespace for queries and key references. It should also be the reference frame to which the poses are defined. The scene name is both the name of a reference frame and, if defined, a collision object. -The scene configuration file below defines one subscene called `area_1`, in which several configuration keys are defined. Note that `area_1` is a reference frame (a side effect of defining a collision object). Normally, pose keys such as `area_1.positions.start` and their subscene `area_1` are used together in using the move behaviours. +The scene configuration file below defines one scene called `area_1`, in which several configuration keys are defined. Note that `area_1` is a reference frame (a side effect of defining a collision object). Normally, pose keys such as `area_1.positions.start` and their scene (referene frame) `area_1` are used together in using the move behaviours. ``` -subscenes: +scenes: area_1: + link: + parent_frame: root + type: box + model_file: null + dimensions: [0.2, 0.2, 0.01] + xyz: [0.4, 0.20, 0.00] + rpy: [0, 0, 3.14] positions: hover: [null, null, 0.40] down: [null, null, 0.27] @@ -86,7 +85,9 @@ subscenes: end: [0, -0.06, null] ``` -### Collision Objects and Custom Reference Frames +### The `link` Branch: Collision Objects and Custom Reference Frames + +The link of a scene specifies a reference frame and optionally the collision object. Collision object definitions comprise the following mandatory and optional keys headed by the name of the object. - `type`: `box`, `sphere`, or `object` @@ -94,11 +95,13 @@ Collision object definitions comprise the following mandatory and optional keys - `dimensions`: a list of length, width, and height for a `box`, the radius for a `sphere`, and the scaling factor as a list of 3 numbers for an `object`. - `xyz`: the position of the object - `rpy`: the orientation of the object -- `frame`: the reference frame for the object pose, where `null` implies the world frame. This field is optional. +- `parent_frame`: the reference frame for the object pose, where `null` implies the world frame. This field is optional. -Every collision object will project its position and rotation as its own custom reference frames. The following defines the object named `area_1` and the fields are populated. Note that the null frame is default to the world frame. +Every collision object will project its position and rotation as its own custom reference frames. The following defines the scene named `area_1` which is also the name of the reference frame. In particular, the type `box` indicaates that it is a collision object as well. Note that the null frame is default to the base/world frame. The pose parameter + (xyz and rpy) is the transform from `area_1` to the base/world frame. ``` - area_1: + area_1: + link: type: box model_file: null dimensions: [0.2, 0.2, 0.01] @@ -106,14 +109,15 @@ Every collision object will project its position and rotation as its own custom rpy: [0, 0, 3.14] frame: null ``` -Collision objects can be defined under a subscene as well. If `frame` is not given or its value is `null`, the subscene becomes the default frame. +Collision objects can be defined based on the reference of another scene. If `parent_frame` is not given or its value is `null`, the scene becomes the default frame. Custom reference frame definitions comprise the following mandatory and optional keys headed by the name of the frame. -- `xyz`: the position of the object -- `rpy`: the orientation of the object -- `parent` or `frame`: the reference frame for the object pose, where `null` implies the world frame. This field is optional. +- `type`: `frame` +- `xyz`: the position of the transform +- `rpy`: the orientation of the transform +- `parent_frame` or `frame`: the reference frame for the custom frame, where `null` implies the world frame. This field is optional. -Similarly, custom reference frames can be defined under a subscene. The default frame is the parent subscene. +Similarly, custom reference frames can be defined with another scene as the parent frame. The default frame is the root scene. ### Loading and Querying the Scene Configuration File @@ -126,13 +130,13 @@ from task_trees.task_scene import Scene ``` The `Scene` class gives every configuration key a unique reference. The reference is a dot-separated string made up of the scene namespace followed by keys of the ancestors of a key-value configuration. For example, the reference `named_poses.home` refers to the `home` child of the `named_poses` node under the root scene (therefore the empty namespace). A configuration key under a subscene has a prepended namespace. For example, `area.positions.start` refers to the value `[0, 0.11, null]` in the above example. -The following code snippet demonstrates the functions `keys_of_config` and `query_config` for listing the children keys and querying for the value of a configuration reference. +The following code snippet demonstrates the functions `key_list_under_config_key` and `query_config` for listing the children keys and querying for the value of a configuration reference. ``` self.the_scene = Scene(os.path.join(os.path.dirname(__file__), 'task_scene.yaml')) # setup name poses - self.named_poses = self.the_scene.keys_of_config('named_poses') + self.named_poses = self.the_scene.key_list_under_config_key('named_poses') for pose_name in self.named_poses: pose_name = 'named_poses.' + pose_name self.arm_commander.add_named_pose(pose_name, self.the_scene.query_config(pose_name)) @@ -147,6 +151,16 @@ In the following compositional move target example, the missing x and y componen DoMoveXYZ('move_xy', True, arm_commander=self.arm_commander, scene=self.the_scene, target_xyz=['positions.default_z', self.generate_random_xyz], reference_frame='area_2'), ``` +### Branches Recognized by the Task Tree Manager + +The named branches of `link`, and `named_poses` have dedicated functions in the scene configuration. + +- The key `link` under a scene with the `type` equals to `box`, `sphere`, and `object` is recognized by the task tree manager `TaskTreesManager` class as definitions of collision objects. In the task trees, collision objects are also recognized as custom reference frames. +- The type of `frames` under the key `link` of a scene is recognized as definitions of custom reference frames. +- The key`named_poses` under the root scene is also recognized by the task tree manager as the named poses adding to the arm commander. + +The `TaskTreesManager` class offers the functions `_define_links`, `_define_frames` and `_define_named_poses` for adding the scenes/collision objects, the custom reference frames, and named poses defined in the scene configuration. + ### Internal Logical References @@ -154,30 +168,58 @@ Subclasses of `SceneConditionalCommanderBehaviour` accepts internal references w The following part of a configuration file is extracted from `task_scene.yaml` [source code](../../demos//pushblock/task_scene.yaml) under `/demos/pushblock`. ``` -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y - positions: - drop: [0.5, 0.3, 0.4] - rotations: - alpha: [3.14, 0, -0.785] - beta: [3.14, 0, 2.358] +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y + rotations: + # alpha: [3.14, null, 0.78] + # beta: [3.14, null, -0.78] + alpha: [3.14, 0, -0.785] + beta: [3.14, 0, 2.358] + push_block: + dimensions: [0.05, 0.05, 0.05] + xyz: [0.0, 0.025, 0.151] + rpy: [0, 0, 0] ... -subscenes: area_1: rotation: rotations.alpha + link: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.4, 0.0, 0.125] + rpy: [0, 0, 1.57] area_2: rotation: rotations.beta + link: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.50, -0.10, 0.125] + rpy: [0, 0, 3.14] area_3: rotation: rotations.beta + link: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.6, 0.0, 0.125] + rpy: [0, 0, -1.57] area_4: rotation: rotations.alpha + link: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.50, 0.10, 0.125] + rpy: [0, 0, 0] ``` -The key `rotation` of the four subscenes are mapped to either `rotation.alpha` or `rotation.beta`. For example, in resolving the key `area_1.rotation`, if the value is a string, `SceneConditionalCommanderBehaviour` attempts to resolve it once more using the scene configuration. +The key `rotation` of the four area scenes are mapped to either `rotation.alpha` or `rotation.beta`. For example, in resolving the key `area_1.rotation`, if the value is a string, `SceneConditionalCommanderBehaviour` attempts to resolve it once more using the scene configuration. The internal logical reference feature improves the readability and maintainability of the configuration file. @@ -188,15 +230,16 @@ The functions provided by the `Scene` class are listed below. | Functions | Remarks | | --- | --- | | `query_config(self, name:str, default=None)` | The `name` is in the format of dot separated reference | -| `query_position_as_xyz(self, name, default=None)` | Alias of `query_config` for backward compatability | -| `query_rotation_as_rpy(self, name, default=None)` | Alias of `query_config` for backward compatability | -| `get_scene_config(self)` | Return the root scene config in the config file as a dict | -| `get_subscene_config(self, name)`| Return the config of a subscene as a dict | | `exists_config(self, name:str)` | Return True if the configuration name exists | -| `keys_of_config(self, name:str)` | Return the children of a configuration reference as a list of keys | -| `len_of_list_config(self, name:str)` | Return the number of children of a list typed configuration reference | -| `list_object_names(self)` | Return the names of the defined objects as a list | -| `get_object_config(self, object_name: str)` | Return the configuration of an object given its name | +| `key_list_under_config_key(self, key:str)` | Return the children keys of a configuration reference as a list | +| `len_of_key_list_under_config_key(self, key:str)` | Return the number of children under a list-type configuration reference | +| `list_scene_names(self)` | Return the names of the defined scenes as a list | +| `get_scene_config_as_dict(self, scene_name)` | Return the scene config branch in the config file as a dict | +| `get_link_of_scene(self, scene_name)`| Return the link of the scene as a LinkConfig | +| `list_frame_names(self)` | Return the names of the defined frame-type scenes as a list | +| `get_frame_config_as_dict(self, frame_name)` | Return the frame-type scene config branch in the config file as a dict | +| `get_link_of_frame(self, frame_name)`| Return the link of the frame as a LinkConfig | +| `get_named_poses_of_root_as_dict(self, name)`| Return the config of a subscene as a dict | Refer to the API Reference for more details about these functions. @@ -212,22 +255,24 @@ The function `query_config` allows the query of any configuration key using a do For example, tke query key `positions.start` refers to a configuration key under the root scene. ``` -scene: - positions: - start: [1, 2, 3] - end: [2, 3, 5] +scenes: + root: + positions: + start: [1, 2, 3] + end: [2, 3, 5] ``` On the other hand, the query key `grid.1.rotation.alpha` matches the following structure, and it refers to the value [0, 0, 1.57]. The `1` refers to the index `1` of the list-like child under `grid`. ``` -scene: - grid: - - rotation: - alpha: [3.14, 0, 0] - - rotation: - alpha: [0, 0, 1.57] +scenes: + root: + grid: + - rotation: + alpha: [3.14, 0, 0] + - rotation: + alpha: [0, 0, 1.57] ``` -To refer to a configuration key under a subscene, the query key should start with the subscene name. Given the following configuration yaml file. +To refer to a configuration key under a non-root scene, the query key should start with the scene name. Given the following configuration yaml file. ``` subscenes: the_tank: @@ -242,7 +287,6 @@ The query key `the_tank.grid.0.rotation.alpha` refers to the value `[3.14, 0, 0] Application developers can design a suitable configuration structure and use the function `query_config` to rerieve configuration values. - ### Author Dr Andrew Lui, Senior Research Engineer
diff --git a/task_trees/behaviours_move.py b/task_trees/behaviours_move.py index 13b789f..9a2890f 100644 --- a/task_trees/behaviours_move.py +++ b/task_trees/behaviours_move.py @@ -201,8 +201,8 @@ def update_when_ready(self): xyz = self.compute_physical_target(self.target_xyz, None, default_target=current_xyz[:3]) rpy = self.compute_physical_target(self.target_rpy, None, default_target=current_xyz[3:]) else: - xyz = self.compute_physical_target(self.target_xyz, self.the_scene.query_position_as_xyz, default_target=current_xyz[:3]) - rpy = self.compute_physical_target(self.target_rpy, self.the_scene.query_rotation_as_rpy, default_target=current_xyz[3:]) + xyz = self.compute_physical_target(self.target_xyz, self.the_scene.query_config, default_target=current_xyz[:3]) + rpy = self.compute_physical_target(self.target_rpy, self.the_scene.query_config, default_target=current_xyz[3:]) if xyz is None: logger.error(f'DoMoveXYZRPY ({self.name}): invalid position xyz parameter {xyz}') return Status.FAILURE @@ -295,7 +295,7 @@ def update_when_ready(self): if self.the_scene is None: target_rpy = self.compute_physical_target(self.target_rpy) else: - target_rpy = self.compute_physical_target(self.target_rpy, self.the_scene.query_rotation_as_rpy) + target_rpy = self.compute_physical_target(self.target_rpy, self.the_scene.query_config) if self.target_rpy is None or target_rpy is None: logger.error(f'DoRotate ({self.name}): invalid target_rpy parameter {self.target_rpy}') diff --git a/task_trees/demos/pushblock/task_scene.yaml b/task_trees/demos/pushblock/task_scene.yaml index e1ba483..51f4c99 100644 --- a/task_trees/demos/pushblock/task_scene.yaml +++ b/task_trees/demos/pushblock/task_scene.yaml @@ -1,76 +1,89 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y - rotations: - # alpha: [3.14, null, 0.78] - # beta: [3.14, null, -0.78] - alpha: [3.14, 0, -0.785] - beta: [3.14, 0, 2.358] - push_block: - dimensions: [0.05, 0.05, 0.05] - xyz: [0.0, 0.025, 0.151] - rpy: [0, 0, 0] - objects: - block_1: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y + rotations: + # alpha: [3.14, null, 0.78] + # beta: [3.14, null, -0.78] + alpha: [3.14, 0, -0.785] + beta: [3.14, 0, 2.358] + push_block: + dimensions: [0.05, 0.05, 0.05] + xyz: [0.0, 0.025, 0.151] + rpy: [0, 0, 0] + + block_1: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, -0.10, 0.175] rpy: [0, 0, 0] - block_2: + block_2: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, -0.10, 0.175] rpy: [0, 0, 0] - block_3: + block_3: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, 0.10, 0.175] rpy: [0, 0, 0] - block_4: + block_4: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, 0.10, 0.175] rpy: [0, 0, 0] - area_1: + area_1: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.4, 0.0, 0.125] rpy: [0, 0, 1.57] - area_2: + area_2: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, -0.10, 0.125] rpy: [0, 0, 3.14] - area_3: + area_3: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.6, 0.0, 0.125] rpy: [0, 0, -1.57] - area_4: + area_4: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.10, 0.125] rpy: [0, 0, 0] - area_5: + area_5: + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.0, 0.125] rpy: [0, 0, 0] -subscenes: area: positions: hover: [null, null, 0.40] @@ -79,12 +92,5 @@ subscenes: centre: [0, -0.015, null] # -0.01 restart: [0, -0.185, null] end: [0, -0.06, null] - area_1: - rotation: rotations.alpha - area_2: - rotation: rotations.beta - area_3: - rotation: rotations.beta - area_4: - rotation: rotations.alpha + diff --git a/task_trees/demos/pushblock/task_trees_manager_pushblock.py b/task_trees/demos/pushblock/task_trees_manager_pushblock.py index 95d518d..9fa6fc8 100644 --- a/task_trees/demos/pushblock/task_trees_manager_pushblock.py +++ b/task_trees/demos/pushblock/task_trees_manager_pushblock.py @@ -83,8 +83,8 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # setup visualization in rviz self.scene_to_rviz = SceneToRViz(self.the_scene, arm_commander.get_world_reference_frame(), False) self.scene_to_rviz.display_bbox_regions('regions', rgba=[1.0, 0.0, 1.0, 0.2]) - object_area1 = self.the_scene.get_object_config('area_1') - self.scene_to_rviz.add_custom_transform('area', object_area1.xyz, object_area1.rpy, arm_commander.get_world_reference_frame()) + link_area1 = self.the_scene.get_link_of_scene('area_1') + self.scene_to_rviz.add_custom_transform('area', link_area1.xyz, link_area1.rpy, arm_commander.get_world_reference_frame()) self.scene_to_rviz.display_positions('area.positions', rgba=[1.0, 1.0, 0.0, 0.8]) # setup the robotic manipulation platform through the commander self.arm_commander.abort_move(wait=True) @@ -112,7 +112,7 @@ def setup_objects(self): # the_object = self.the_scene.get_object_config(object_name) # if the_object.type == 'box': # self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) - self._define_objects(self.the_scene, 'box') + self._define_links(self.the_scene, 'box') def generate_the_object(self): self.the_object = dict() @@ -197,19 +197,19 @@ def in_a_region(self, logical_region) -> bool: return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), self.the_scene.query_config(logical_region)) def over_an_object(self, object_name) -> bool: - the_object = self.the_scene.get_object_config(object_name) - the_object_position_as_bbox = [the_object.xyz[0] - the_object.dimensions[0] / 2, the_object.xyz[1] - the_object.dimensions[1] / 2, - the_object.xyz[0] + the_object.dimensions[0] / 2, the_object.xyz[1] + the_object.dimensions[1] / 2] + the_link = self.the_scene.get_link_of_scene(object_name) + the_object_position_as_bbox = [the_link.xyz[0] - the_link.dimensions[0] / 2, the_link.xyz[1] - the_link.dimensions[1] / 2, + the_link.xyz[0] + the_link.dimensions[0] / 2, the_link.xyz[1] + the_link.dimensions[1] / 2] current_pose = self.arm_commander.pose_of_robot_link() return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), the_object_position_as_bbox) def on_or_above_z(self, position) -> bool: current_pose = self.arm_commander.pose_of_robot_link() - return current_pose.pose.position.z > self.the_scene.query_position_as_xyz(position)[2] - 0.05 + return current_pose.pose.position.z > self.the_scene.query_config(position)[2] - 0.05 def below_z(self, position) -> bool: current_pose = self.arm_commander.pose_of_robot_link() - return current_pose.pose.position.z < self.the_scene.query_position_as_xyz(position)[2] - 0.05 + return current_pose.pose.position.z < self.the_scene.query_config(position)[2] - 0.05 def wrong_restart_position(self) -> bool: target = self.query_target_reference_frame() diff --git a/task_trees/scene_to_rviz.py b/task_trees/scene_to_rviz.py index 52a304e..e6f892e 100644 --- a/task_trees/scene_to_rviz.py +++ b/task_trees/scene_to_rviz.py @@ -16,7 +16,7 @@ from geometry_msgs.msg import Pose, PoseStamped, TransformStamped, Transform, Vector3, Quaternion from visualization_msgs.msg import Marker -from task_trees.task_scene import Scene, ObjectConfig +from task_trees.task_scene import Scene, LinkConfig import task_trees.tools.rviz_tools as rviz_tools from task_trees.tools.logging_tools import logger from task_trees.tools.rviz_tools import RvizVisualizer @@ -26,7 +26,7 @@ class SceneToRViz(RvizVisualizer): """ The helper class for managing visualization of scene configs in rviz """ - def __init__(self, the_scene:Scene, base_frame:str=None, publish_objects_transform=True, pub_period:float=0.1): + def __init__(self, the_scene:Scene, base_frame:str=None, publish_scenes_transform=True, pub_period:float=0.1): # check if a ROS node has been initialized node_uri = rospy.get_node_uri() if node_uri is None: @@ -38,18 +38,18 @@ def __init__(self, the_scene:Scene, base_frame:str=None, publish_objects_transfo super(SceneToRViz, self).__init__() self.the_scene = the_scene self.base_frame = base_frame - self.is_transform_publisher = publish_objects_transform + self.is_transform_publisher = publish_scenes_transform self.is_world_publisher = False - self.publishable_object_names = [] + self.publishable_scene_names = [] # setup transform self.tf_broadcaster = tf2_ros.TransformBroadcaster() if self.base_frame is None: self.base_frame = 'world' self.is_world_publisher = True - logger.warning(f'SceneToRViz: no base_frame given, use default base frame "world"') + logger.warning(f'SceneToRViz: no base_frame given, define "world" as the default base_frame') # setup custom transforms - self.custom_transform_object_dict = defaultdict(lambda: None) + self.custom_transform_link_dict = defaultdict(lambda: None) # setup timer self.timer_transform = rospy.Timer(rospy.Duration(pub_period), self._cb_timer_transform) @@ -64,78 +64,64 @@ def _cb_timer_transform(self, event): self.tf_broadcaster.sendTransform(transform_stamped) self.is_world_publisher = False if self.is_transform_publisher: - self._pub_transform_all_objects() + self._pub_transform_specified_links() self._pub_custom_transform() # internal function: publish the transform of objects in the scene config subject to the list of publishable objects - def _pub_transform_all_objects(self): - for object_name in the_scene.list_object_names(): - if self.publishable_object_names is None or object_name in self.publishable_object_names: - the_object = the_scene.get_object_config(object_name) - xyzrpy = the_object.xyz + the_object.rpy - self._pub_transform_object(object_name, xyzrpy, the_object.frame) + def _pub_transform_specified_links(self): + for scene_name in self.the_scene.list_scene_names(): + if self.publishable_scene_names is None or scene_name in self.publishable_scene_names: + link_config = self.the_scene.get_link_of_scene(scene_name) + xyzrpy = link_config.xyz + link_config.rpy + self._pub_transform_link(scene_name, xyzrpy, link_config.parent_frame) # internal function: publish the transform of custom objects def _pub_custom_transform(self): - for the_object in self.custom_transform_object_dict.values(): - xyzrpy = the_object.xyz + the_object.rpy - self._pub_transform_object(the_object.name, xyzrpy, the_object.frame) + link_config:LinkConfig + for link_config in self.custom_transform_link_dict.values(): + xyzrpy = link_config.xyz + link_config.rpy + self._pub_transform_link(link_config.name, xyzrpy, link_config.parent_frame) # internal function: publish the transform of a specific named object - def _pub_transform_object(self, name, pose, frame=None): + def _pub_transform_link(self, name, pose, parent_frame=None): """ publish the transform of an object - :param name: name of the object + :param name: name of the link :type name: str - :param pose: the pose of the object + :param pose: the pose of the link :type pose: Pose, PoseStamped, list of 6 or 7 - :param frame: the frame against which the pose is defined, ignored if PoseStamped is provided, defaults to None - :type frame: str, optional + :param parent_frame: the parent frame of the pose, ignored if PoseStamped is provided, defaults to the base_frame + :type parent_frame: str, optional """ - frame = self.base_frame if frame is None else frame + parent_frame = self.base_frame if parent_frame is None else parent_frame if type(pose) in [list, tuple]: - pose_stamped = list_to_pose_stamped(pose, frame) + pose_stamped = list_to_pose_stamped(pose, parent_frame) elif type(pose) == Pose: pose_stamped = PoseStamped() - pose_stamped.header.frame_id = frame + pose_stamped.header.frame_id = parent_frame pose_stamped.header.stamp = rospy.Time.now() pose_stamped.pose = pose elif type(pose) == PoseStamped: - frame = pose.header.frame_id + parent_frame = pose.header.frame_id pose_stamped = pose else: rospy.logerr(f'{__class__.__name__}: parameter (pose) is not list of length 6 or 7 or a Pose object -> fix the parameter at behaviour construction') raise TypeError(f'A parameter is invalid') self.tf_broadcaster.sendTransform(pose_stamped_to_transform_stamped(pose_stamped, name)) - # try: - # # frame is ignored if pose is PoseStamped - # if type(pose) == Pose: - # xyzq = pose_to_xyzq(pose) - # elif type(pose) == PoseStamped: - # frame = pose.header.frame_id - # xyzq = pose_to_xyzq(pose.pose) - # else: - # xyzq = list_to_xyzq(pose) - # except Exception: - # logger.error(f'{__class__.__name__}: parameter (pose) is not list of length 6 or 7 or a Pose object -> fix the parameter at behaviour construction') - # raise - # frame = self.base_frame if frame is None else frame - # self.tf_pub.sendTransform(xyzq[:3], xyzq[3:], rospy.Time.now(), name, frame) - # -------------------------------- - def set_publish_objects_transform(self, object_names:list=None): - """ specify the names of the objects that are to be included in transform publish + def set_publish_links_transform(self, link_names:list=None): + """ specify the names of the links that are to be included in transform publish - :param object_names: a list of object names to be included, defaults to None - :type object_names: list, optional + :param link_names: a list of links names to be included, defaults to None + :type link_names: list, optional """ - if object_names is not None and type(object_names) not in [tuple, list]: + if link_names is not None and type(link_names) not in [tuple, list]: logger.error(f'SceneToRViz (set_publish_transform): parameter (object_names) must be a list of strings or None') raise AssertionError('Parameter (object_names) type is invalid') - self.publishable_object_names = object_names + self.publishable_scene_names = link_names - def display_bbox_regions(self, config_key:str, plane:str='xy', rgba=[1.0, 0.0, 1.0, 0.2]) -> None: + def display_bbox_regions(self, config_key:str, plane:str='xy', reference_frame=None, rgba=[1.0, 0.0, 1.0, 0.2]) -> None: """ display as a bbox 2d or 3d region specified by the key or set of keys under the config_key parameter along the plane :param config_key: the name of the config key in the scene configuration, which is either the key itself or a parent of keys @@ -149,8 +135,7 @@ def display_bbox_regions(self, config_key:str, plane:str='xy', rgba=[1.0, 0.0, 1 if value is None: logger.warning(f'SceneToRViz (register_regions_as_bbox): Non-existent key {config_key}') return - subscene = self.the_scene.get_subscene_of_config_name(config_key) - reference_frame = subscene if subscene is not None else self.base_frame + reference_frame = reference_frame if reference_frame is not None else self.base_frame if plane is None: plane = 'xy' # default to xy if type(value) in [list, tuple] and len(value) in [4, 6]: @@ -168,7 +153,7 @@ def display_bbox_regions(self, config_key:str, plane:str='xy', rgba=[1.0, 0.0, 1 continue logger.warning(f'SceneToRViz (display_bbox_regions): region ({key}) bbox should be a list of 4 or 6') - def display_rotations(self, config_key:str, arrow_length:float=1.0, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: + def display_rotations(self, config_key:str, arrow_length:float=1.0, reference_frame=None, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: """ display as an arrow the rotation specified by config_key :param config_key: the name of the config key in the scene configuration, which is either the key itself or a parent of keys @@ -181,9 +166,8 @@ def display_rotations(self, config_key:str, arrow_length:float=1.0, rgba=[1.0, 0 value = self.the_scene.query_config(config_key, None) if value is None: logger.warning(f'SceneToRViz (register_positions): Non-existent key {config_key}') - return - subscene = self.the_scene.get_subscene_of_config_name(config_key) - reference_frame = subscene if subscene is not None else self.base_frame + return + reference_frame = reference_frame if reference_frame is not None else self.base_frame if type(value) in [list, tuple] and len(value) == 3: value = {' ': value} if type(value) == dict: @@ -197,7 +181,7 @@ def display_rotations(self, config_key:str, arrow_length:float=1.0, rgba=[1.0, 0 logger.warning(f'SceneToRViz (display_rotations): rotation ({key}) should be a list of 3') - def display_positions(self, config_key:str, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: + def display_positions(self, config_key:str, reference_frame=None, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: """ display one or more positions or partial definitions, that a sphere represents full specification, a line represents a position with a null value, and a plane represents a position with two null values @@ -209,9 +193,8 @@ def display_positions(self, config_key:str, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: value = self.the_scene.query_config(config_key, None) if value is None: logger.warning(f'SceneToRViz (display_positions): Non-existent key {config_key}') - return - subscene = self.the_scene.get_subscene_of_config_name(config_key) - reference_frame = subscene if subscene is not None else self.base_frame + return + reference_frame = reference_frame if reference_frame is not None else self.base_frame if type(value) == list and len(value) == 3: value = {' ': value} if type(value) == dict: @@ -249,42 +232,41 @@ def display_positions(self, config_key:str, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: marker = rviz_tools.create_axisplane_marker(f'{config_key}.{key}', id, bbox, xyz[index], reference_frame, plane, rgba=rgba) self.add_persistent_marker(marker) - def display_object(self, config_key:str, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: - """ display one object associated with the config key + def display_link(self, scene_name:str, reference_frame=None, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: + """ display the link associated with the config key - :param config_key: the name of the config key in the scene configuration, which is either the key itself or a parent of keys - :type config_key: str + :param scene_name: the name of a scene + :type scene_name: str :param rgba: the colour of the objects defaults to [1.0, 0.0, 1.0, 0.2] :type rgba: list, optional """ - value = self.the_scene.query_config(config_key, None) + value = self.the_scene.query_config(scene_name, None) if value is None: - logger.warning(f'SceneToRViz (display_objects): Non-existent key {config_key}') + logger.warning(f'SceneToRViz (display_objects): Non-existent key {scene_name}') return - subscene = self.the_scene.get_subscene_of_config_name(config_key) - reference_frame = subscene if subscene is not None else self.base_frame if type(value) != dict: - logger.warning(f'SceneToRViz (display_objects): the key {config_key} is not associated with a single object in a dict structure') + logger.warning(f'SceneToRViz (display_objects): the key {scene_name} is not associated with a single object in a dict structure') return - the_object = self.the_scene._create_object_config(value) - if the_object.type == 'box': - xyzrpy = the_object.xyz + the_object.rpy - marker = rviz_tools.create_cube_marker_from_xyzrpy(f'object.{config_key}', 0, xyzrpy, reference_frame, the_object.dimensions, rgba=rgba) + reference_frame = reference_frame if reference_frame is not None else self.base_frame + the_link:LinkConfig = self.the_scene.get_link_of_scene(scene_name) + if the_link.type == 'box': + xyzrpy = the_link.xyz + the_link.rpy + marker = rviz_tools.create_cube_marker_from_xyzrpy(f'object.{scene_name}', 0, xyzrpy, reference_frame, the_link.dimensions, rgba=rgba) self.add_persistent_marker(marker) - elif the_object.type == 'sphere': - marker = rviz_tools.create_sphere_marker(f'object.{config_key}', 0, the_object.xyz, reference_frame, the_object.dimensions, rgba=rgba) + elif the_link.type == 'sphere': + marker = rviz_tools.create_sphere_marker(f'object.{scene_name}', 0, the_link.xyz, reference_frame, the_link.dimensions, rgba=rgba) self.add_persistent_marker(marker) - elif the_object.type == 'object': + elif the_link.type == 'object': try: - model_file = PackageFile.resolve_to_file_or_http_uri(the_object.model_file) + model_file = PackageFile.resolve_to_file_or_http_uri(the_link.model_file) except Exception as ex: - logger.warning(f'SceneToRViz (display_objects): Invalid model_file for object ({the_object.model_file}): {ex}') + logger.warning(f'SceneToRViz (display_objects): Invalid model_file for object ({the_link.model_file}): {ex}') return - xyzrpy = the_object.xyz + the_object.rpy - marker = rviz_tools.create_mesh_marker(f'object.{config_key}', 0, model_file, xyzrpy, reference_frame, the_object.dimensions, rgba=rgba) + xyzrpy = the_link.xyz + the_link.rpy + marker = rviz_tools.create_mesh_marker(f'object.{scene_name}', 0, model_file, xyzrpy, reference_frame, the_link.dimensions, rgba=rgba) self.add_persistent_marker(marker) else: - logger.warning(f'SceneToRViz (display_objects): Invalid object type {the_object.type} of the key {config_key}') + logger.warning(f'SceneToRViz (display_objects): Invalid object type {the_link.type} of the key {scene_name}') # ------------------------------------------------------------------------ # Functions for adding custom transforms for visualization @@ -301,7 +283,7 @@ def add_custom_transform(self, name, xyz, rpy, frame) -> None: if name is None or xyz is None or rpy is None or frame is None: logger.error(f'SceneToRViz (add_custom_transform): No parameter can be None') raise AssertionError('A parameter is none') - self.custom_transform_object_dict[name] = ObjectConfig(name, None, None, None, xyz, rpy, frame) + self.custom_transform_link_dict[name] = LinkConfig(name, None, None, None, xyz, rpy, frame) def update_custom_transform_pose(self, name, xyz=None, rpy=None, frame=None) -> None: """ Update the pose of a custom transform @@ -311,7 +293,7 @@ def update_custom_transform_pose(self, name, xyz=None, rpy=None, frame=None) -> :param rpy: the updated rpy, defaults to None meaning unchanged :param frame: the updated frame, defaults to None meaning unchanged """ - the_object:ObjectConfig = self.custom_transform_object_dict[name] + the_object:LinkConfig = self.custom_transform_link_dict[name] if the_object is None: logger.warning(f'__name__ (update_custom_transform_pose): the custom transform name {name} is not found') return False @@ -326,20 +308,20 @@ def remove_custom_transform(self, name=None): :param name: the name of the transform to be removed, or None to remove all """ if name is None: - self.custom_transform_object_dict.clear() - elif name in self.custom_transform_object_dict: - del self.custom_transform_object_dict[name] + self.custom_transform_link_dict.clear() + elif name in self.custom_transform_link_dict: + del self.custom_transform_link_dict[name] # ----------------------------------------------------------- # test program if __name__ == '__main__': the_scene = Scene(os.path.join(os.path.dirname(__file__), '../demos/gridscan/task_scene.yaml')) scene_to_rviz = SceneToRViz(the_scene, 'world') - scene_to_rviz.set_publish_objects_transform(None) + scene_to_rviz.set_publish_links_transform(None) scene_to_rviz.display_bbox_regions('regions') scene_to_rviz.display_bbox_regions('tank.bbox', rgba=[0.2, 0.8, 0.4, 0.2]) scene_to_rviz.display_rotations('tank.rotations', arrow_length=0.5, rgba=[0.2, 0.0, 1.0, 0.8]) scene_to_rviz.display_positions('tank.positions', rgba=[1.0, 1.0, 0.0, 0.8]) # test display objects - scene_to_rviz.display_object('objects.tank', rgba=[1.0, 0.2, 0.2, 0.8]) + scene_to_rviz.display_link('objects.tank', rgba=[1.0, 0.2, 0.2, 0.8]) rospy.spin() \ No newline at end of file diff --git a/task_trees/task_scene.py b/task_trees/task_scene.py index aeb5fac..097a6bf 100644 --- a/task_trees/task_scene.py +++ b/task_trees/task_scene.py @@ -14,9 +14,9 @@ from task_trees.tools.logging_tools import logger # namedtuples for internal data structure for higher readability -ObjectConfig = namedtuple('ObjectConfig', ['name', 'type', 'model_file', 'dimensions', 'xyz', 'rpy', 'frame']) # representing an object -FrameConfig = namedtuple('FrameConfig', ['name', 'xyz', 'rpy', 'parent']) -SceneName = namedtuple('SceneName', ['subscene', 'path']) +SceneKeyParts = namedtuple('SceneKeyParts', ['scene', 'parts']) +LinkConfig = namedtuple('LinkConfig', ['name', 'type', 'model_file', 'dimensions', 'xyz', 'rpy', 'parent_frame']) # representing the scene +FrameConfig = namedtuple('FrameConfig', ['name', 'type', 'xyz', 'rpy', 'parent_frame']) class Scene(): """ The base model provides mapping between physical/joint-space pose and various named/logical poses. @@ -31,288 +31,227 @@ def __init__(self, scene_config_file:str = None): if scene_config_file is None: scene_config_file = os.path.join(os.path.dirname(__file__), '../demos/gridscan/task_scene.yaml') with open(scene_config_file, 'r') as f: - config = yaml.safe_load(f) - self.config = config - # if the default scene is defined in the file, define a variable for the default - self.scene_config = self.config['scene'] if 'scene' in self.config else None - # if subscenes are defined in the file, define another variable for that - self.subscene_config = self.config['subscenes'] if 'subscenes' in self.config else None - # preprocess the objects and frames - self.objects_map = self._process_objects() - self.frames_map = self._process_frames() + self.config_file_root = yaml.safe_load(f) + # print warning message + self._print_warning() + # valiate that there is a key 'scenes' + if 'scenes' not in self.config_file_root: + logger.error(f'The config file should contain a "scenes" key at the top level') + raise AssertionError(f'Invalid yaml config file: missing the key "scenes"') + self.scenes_branch = self.config_file_root['scenes'] + # valiate that there is a 'root' scene + if 'root' not in self.scenes_branch: + logger.error(f'The config file should contain a "root" scene defined under "scenes" key at the top level') + raise AssertionError(f'Invalid yaml config file: missing the "root" scene') + self.root_scene_config = self.scenes_branch['root'] + # model parameters + self.scenes_dict = defaultdict(lambda: None) + self.scenes_linkconfig = defaultdict(lambda: None) + self.frames_config = defaultdict(lambda: None) + # iterates all scenes in the config file + for key in self.scenes_branch.keys(): + self.scenes_dict[key] = self.scenes_branch[key] + link_config = self._extract_link_config(key, self.scenes_branch[key]) + if link_config is not None: + if link_config.type == 'frame': + self.frames_config[key] = link_config + else: + self.scenes_linkconfig[key] = link_config - # internal function: parse a dot-separated config name (path) into two parts, the subscene and a list of the path - def _parse_config_name(self, config_name:str) -> SceneName: - if config_name is None: - return None - parts = config_name.split('.') - # print(f'_parse_config_name: {config_name} {parts} {parts[0]} {self.subscene_config}') - if self.subscene_config is not None and len(parts) > 1 and (parts[0] in self.subscene_config.keys()): # one of the subscenes - return SceneName(parts[0], parts[1:]) + # internal function: parse a dot-separated config kay (path) into scene name and a list of the parts + def _parse_config_key(self, config_key:str) -> SceneKeyParts: + assert config_key is not None, 'Parameter (config_key) should not be None' + parts = config_key.split('.') + assert len(parts) >= 1, 'Parameter (config_key) is empty' + scene_name = parts[0] + if scene_name not in self.scenes_dict: + # the first name is not a known scene, assume that the root scene is inferred + scene_name = 'root' + return SceneKeyParts(scene_name, parts) else: - return SceneName(None, parts) + return SceneKeyParts(scene_name, parts[1:]) # ------------------------------------------- - # functions for extracting objects and frames + # internal functions for extracting objects and frames + def _extract_link_config(self, scene_name:str, scene_dict:dict) -> LinkConfig: + return self._create_link_config(scene_name, scene_dict.get('link', None)) + # internal function: extract and validate an object definition - def _create_object_config(self, obj:dict) -> ObjectConfig: - if obj is None: - return None - if 'name' not in obj: - logger.error(f'Scene (_process_an_object): the keys in the object config contains no "name"') + def _create_link_config(self, scene_name:str, link_dict:dict) -> LinkConfig: + if link_dict is None or scene_name is None: return None - if 'type' not in obj or 'xyz' not in obj or 'rpy' not in obj or 'dimensions' not in obj: - logger.error(f'Scene (_process_an_object): the keys in the object config ({obj["name"]}) contains no "type", "xyz", "rpy", "dimensions"') + # if 'name' not in link_dict: + # logger.error(f'Scene (_process_an_object): the keys in the link config contains no "name"') + # return None + if 'type' not in link_dict or 'xyz' not in link_dict or 'rpy' not in link_dict: + logger.error(f'Scene (_process_an_object): the keys in the scene config ({link_dict["name"]}) contains no "type", "xyz", "rpy"') return None - if obj['type'] not in ['box', 'sphere', 'object']: - logger.error(f'Scene (_process_an_object): the type of the object ({obj["name"]}) is not one of "sphere", "box", or "object"') - return None - model_file = obj.get('model_file', None) - if obj['type'] == 'object' and model_file is None: - logger.error(f'Scene (_process_an_object): the object ({obj["name"]}) expects a valid "model_file" key') + if link_dict['type'] not in ['box', 'sphere', 'object', 'frame']: + logger.error(f'Scene (_process_an_object): the type of the scene ({link_dict["name"]}) is not one of "sphere", "box", "frame", or "object"') + return None + if link_dict['type'] in ['box', 'sphere', 'object'] and 'dimensions' not in link_dict: + logger.error(f'Scene (_process_an_object): the keys in the box, sphere or object typed scene link ({link_dict["name"]}) contains no "dimensions"') + return None + model_file = link_dict.get('model_file', None) + if link_dict['type'] == 'object' and model_file is None: + logger.error(f'Scene (_process_an_object): the scene link ({link_dict["name"]}) expects a valid "model_file" key') return None - return ObjectConfig(obj['name'], obj['type'], model_file, obj['dimensions'], obj['xyz'], obj['rpy'], obj.get('frame', None)) - - def _extract_objects_dict(self, source_object_config:dict, the_map:dict, subscene:str=None) -> ObjectConfig: - # assume object_config is a dict - for name in source_object_config: - obj = source_object_config[name] - obj['name'] = name - if 'frame' not in obj: - obj['frame'] = subscene - object_config = self._create_object_config(obj) - if object_config: - if subscene is None: - the_map[name] = object_config - else: - the_map[f'{subscene}.{name}'] = object_config - - def _extract_objects_list(self, source_object_config:list, the_map:dict, subscene:str=None) -> ObjectConfig: - # assume object_config is a list - for obj in source_object_config: - name = obj['name'] - if 'frame' not in obj: - obj['frame'] = subscene - object_config = self._create_object_config(obj) - if object_config: - if subscene is None: - the_map[name] = object_config - else: - the_map[f'{subscene}.{name}'] = object_config + parent_name = link_dict.get('parent_frame', link_dict.get('frame', None)) # both parent_frame and frame are acceptable + if parent_name is not None and parent_name == 'root' and 'root' not in self.scenes_linkconfig: + parent_name = None + dimensions = link_dict.get('dimensions', None) + return LinkConfig(scene_name, link_dict['type'], model_file, dimensions, link_dict['xyz'], link_dict['rpy'], parent_name) def _print_warning(self) -> None: if not hasattr(self, 'warned'): self.warned = True - logger.warning(f'''Scene configuration file format changed. - Objects are defined using a dict structure instead of a list structure. - objects: - name: - type: ... - xyz: ... + logger.warning(f'''Scene configuration file format changed in task_trees 0.2.x. + The subscene concept is removed and scenes are equal in the yaml file + scenes: + scene_1_name: + link: ... + other_params: ... ... - The old format will not be acceptable in the future. Update the file is recommended.''') - - # internal function: returns a map of (name, ObjectConfig) of objects defined in the config file - def _process_objects(self) -> dict: - the_map = dict() - # process the main scene - if self.scene_config is not None and 'objects' in self.scene_config: - object_config = self.scene_config['objects'] - if type(object_config) in (tuple, list): - self._extract_objects_list(object_config, the_map) - self._print_warning() - else: - self._extract_objects_dict(object_config, the_map) - - # process each subscene - if self.subscene_config is not None: - for subscene in self.subscene_config.keys(): - if self.subscene_config[subscene] is None: - continue - if 'objects' in self.subscene_config[subscene]: - object_config = self.subscene_config[subscene]['objects'] - if type(object_config) in (tuple, list): - self._extract_objects_list(object_config, the_map, subscene) - self._print_warning() - else: - self._extract_objects_dict(object_config, the_map, subscene) - return the_map - - def _extract_frames_dict(self, source_frame_config:dict, the_map:dict, subscene:str=None) -> FrameConfig: - # assume object_config is a dict - for name in source_frame_config: - obj = source_frame_config[name] - obj['name'] = name - if 'frame' in obj: - obj['parent'] = obj['frame'] - if 'parent' not in obj: - obj['parent'] = subscene - if 'xyz' not in obj or 'rpy' not in obj: - logger.error(f'Scene (_extract_frames_dict): the keys in the object config ({obj["name"]}) contains no "xyz" or "rpy"') - return None - frame_config = FrameConfig(obj['name'], obj['xyz'], obj['rpy'], obj['parent']) - if frame_config: - if subscene is None: - the_map[name] = frame_config - else: - the_map[f'{subscene}.{name}'] = frame_config - - # internal function: returns a map of (name, FrameConfig) of frames defined in the config file - def _process_frames(self) -> dict: - the_map = dict() - # process the main scene - if self.scene_config is not None and 'frames' in self.scene_config: - frame_config = self.scene_config['frames'] - self._extract_frames_dict(frame_config, the_map) - # process each subscene - if self.subscene_config is not None: - for subscene in self.subscene_config.keys(): - if self.subscene_config[subscene] is None: - continue - if 'frames' in self.subscene_config[subscene]: - frame_config = self.subscene_config[subscene]['frames'] - self._extract_frames_dict(frame_config, the_map, subscene) - return the_map - + scene_2_name: + link: ... + The API is also changed. Please refer to the documentation''') + # ------------------------------------------- - # model functions + # config query functions - # returns the value of a named config given as a dot-separated path (e.g. table.objects.lamp.position) - def query_config(self, name:str, default=None): + # returns the value of a named config given as a dot-separated key (e.g. table.objects.lamp.position) + def query_config(self, key:str, default=None): """ returns the value of any named config given as a dot-separated path - :param name: the dot-separated path - :type name: str - :param default: the default value if nothing is found in the path, defaults to None + :param key: the dot-separated key, the root scene may have the "root" omitted + :type key: str + :param default: the default value if nothing is found in the key, defaults to None :type default: any :return: the value of the config :rtype: any """ - scene_name = self._parse_config_name(name) - if scene_name is None: + the_parsed_key = self._parse_config_key(key) + if the_parsed_key is None: return default - if scene_name.subscene is not None: - pointer = self.subscene_config[scene_name.subscene] - else: - pointer = self.scene_config - for item in scene_name.path: + pointer = self.scenes_dict[the_parsed_key.scene] + for item in the_parsed_key.parts: if item.isnumeric(): try: item = int(item) except: - logger.error(f'query_config: part of query key {name} contains an non-integer index {item}') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains an non-integer index {item}') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') if item < 0 or item >= len(pointer): - logger.error(f'query_config: part of query key {name} contains an out-of-range integer index {item} ') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains an out-of-range integer index {item} ') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') if type(pointer) not in (tuple, list): - logger.error(f'query_config: part of query key {name} contains an invalid index {item}, expecting a string key') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains an invalid index {item}, expecting a string key') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') pointer = pointer[item] else: if type(pointer) != dict: - logger.error(f'query_config: part of query key {name} contains an invalid index {item}, expecting an integer') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains an invalid index {item}, expecting an integer') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') if item not in pointer: - logger.error(f'query_config: part of query key {name} contains a non-existent index {item}') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains a non-existent index {item}') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') pointer = pointer[item] - return pointer - - # alias for backward compatibility query_config - def query_position_as_xyz(self, name, default=None): - return self.query_config(name, default) - - def query_rotation_as_rpy(self, name, default=None): - return self.query_config(name, default) - - # returns the subscene name if the config is a subscene config - def get_subscene_of_config_name(self, name) -> str: - """ returns the subscene name if the config is one belonging to a subscene - :return: the name of a subscene or None - :rtype: str - """ - scene_name = self._parse_config_name(name) - if scene_name is None: - return None - return scene_name.subscene - - # returns the root scene config as a dict - def get_scene_config(self) -> dict: - """ returns the main scene config in the config file as a dict - :return: the content in the config file - :rtype: dict - """ - return self.scene_config - - # returns a subscene config as a dict - def get_subscene_config(self, subscene_name) -> dict: - """ returns the config of a subscene in the config file as a dict - :return: the content in the config file about the subscene or None - :rtype: dict - """ - if subscene_name not in self.subscene_config: - return None - return self.subscene_config[subscene_name] + return pointer # returns True of the given config name exists - def exists_config(self, name:str) -> bool: + def exists_config(self, key:str) -> bool: """ returns True of the given config name exists - :param name: The config name - :type name: str + :param key: The config name + :type key: str :return: True if the given config name exists :rtype: bool """ - return self.query_config(name) != None + return self.query_config(key) != None - # returns a list of keys specified under the config name - def keys_of_config(self, name:str) -> list: + # returns a list of keys specified under the config key if it is a dictionary or an empty list + def key_list_under_config_key(self, key:str) -> list: """ returns a list of keys specified under the config name or an empty list - :param name: The config name - :type name: str + :param key: The config name + :type key: str :return: a list of keys specified under the config name :rtype: list """ - pointer = self.query_config(name) + pointer = self.query_config(key) if pointer is None or type(pointer) not in [dict, map]: return [] return list(pointer.keys()) - # returns the length of the list under the config name or an empty list - def len_of_list_config(self, name:str) -> int: + # returns the length of the list if the config key is a list or an empty list + def len_of_key_list_under_config_key(self, key:str) -> int: """ returns the length of the list under the config name - :param name: The config name - :type name: str + :param key: The config name + :type key: str :return: the length of the list the config name :rtype: int """ - pointer = self.query_config(name) + pointer = self.query_config(key) if pointer is None or type(pointer) not in [tuple, list]: return 0 return len(pointer) - # list the object names - def list_object_names(self) -> list: + # list the scene names + def list_scene_names(self) -> list: """ return the list of objects defined in the scene configuration :return: a list of object names as strings :rtype: list """ - if self.objects_map is None: - return [] - return self.objects_map.keys() + return list(self.scenes_dict.keys()) + + # return scene config given the scene name + def get_scene_config_as_dict(self, scene_name: str) -> dict: + """ return the scene configuration as a dict, or None if the scene not exists + :param scene_name: name of the object + :type scene_name: str + :return: the configuration of the scene as a dict or None if not exists + :rtype: dict + """ + return self.scenes_dict.get(scene_name, None) # return config given the object name - def get_object_config(self, object_name: str) -> ObjectConfig: + def get_link_of_scene(self, scene_name: str) -> LinkConfig: """ return the object configuration as ObjectConfig tuple, or None if the name not exists - :param object_name: name of the object - :type object_name: str - :return: the configuration as a ObjectConfig or None if not exists - :rtype: ObjectConfig + :param scene_name: name of the scene + :type scene_name: str + :return: the LinkConfig of the scene or None if not exists + :rtype: LinkConfig """ - return self.objects_map.get(object_name) + return self.scenes_linkconfig.get(scene_name, None) + + # list the frame names + def list_frame_names(self) -> list: + """ return the list of frame type scene defined in the scene configuration + :return: a list of frame names as strings + :rtype: list + """ + return list(self.frames_config.keys()) + # return scene config given the scene name + def get_frame_config_as_dict(self, frame_name: str) -> dict: + """ return the frame configuration as a dict, or None if the scene not exists + :param frame_name: name of the frame + :type frame_name: str + :return: the configuration of the frame type scene or None if not exists + :rtype: dict + """ + return self.scenes_dict.get(frame_name, None) + + # return config given the object name + def get_link_of_frame(self, frame_name: str) -> LinkConfig: + """ return the object configuration as ObjectConfig tuple, or None if the name not exists + :param frame_name: name of the frame + :type frame_name: str + :return: the LinkConfig of the frame or None if not exists + :rtype: LinkConfig + """ + return self.frames_config.get(frame_name, None) + # return the named poses as a dict - def get_named_poses_as_dict(self) -> dict: + def get_named_poses_of_root_as_dict(self) -> dict: """ return the named poses defined in the scene configuration as a dict :return: dict containing key value pairs of named poses @@ -324,25 +263,7 @@ def get_named_poses_as_dict(self) -> dict: result[pose_name] = self.query_config(pose_name) return result - # list the frame names - def list_frame_names(self) -> list: - """ return the list of frames defined in the scene configuration - :return: a list of frames names as strings - :rtype: list - """ - if self.frames_map is None: - return [] - return self.frames_map.keys() - # return config given the object name - def get_frame_config(self, frame_name: str) -> FrameConfig: - """ return the object configuration as FrameConfig tuple, or None if the name not exists - :param frame_name: name of the object - :type frame_name: str - :return: the configuration as a FrameConfig or None if not exists - :rtype: FrameConfig - """ - return self.frames_map.get(frame_name) # ----------------------------------------------------------- # test program @@ -364,16 +285,4 @@ def get_frame_config(self, frame_name: str) -> FrameConfig: for rotation in rotations: print(f'rotation {rotation}: {the_scene.query_config(rotation)}') - objects = the_scene.list_object_names() - for object_name in objects: - print(f'object {object_name}: {the_scene.get_object_config(object_name)}') - - the_object = the_scene.query_config('objects.tank') - print(the_object) - - print(f'tank tile step_sizes: {the_scene.query_config("tank.tile")}') - - keys = ['grid.0.rotation.alpha', 'grid.1.rotation.alpha', 'grid.2.rotation.alpha'] - for key in keys: - print(f'key {key}', the_scene.query_config(key)) \ No newline at end of file diff --git a/task_trees/task_scene_old.py b/task_trees/task_scene_old.py new file mode 100644 index 0000000..aeb5fac --- /dev/null +++ b/task_trees/task_scene_old.py @@ -0,0 +1,379 @@ +# Copyright 2024 - Andrew Kwok Fai LUI, +# Robotics and Autonomous Systems Group, REF, RI +# and the Queensland University of Technology + +__author__ = 'Andrew Lui' +__copyright__ = 'Copyright 2024' +__license__ = 'GPL' +__version__ = '1.0' +__email__ = 'ak.lui@qut.edu.au' +__status__ = 'Development' + +import yaml, os, numbers +from collections import namedtuple, defaultdict +from task_trees.tools.logging_tools import logger + +# namedtuples for internal data structure for higher readability +ObjectConfig = namedtuple('ObjectConfig', ['name', 'type', 'model_file', 'dimensions', 'xyz', 'rpy', 'frame']) # representing an object +FrameConfig = namedtuple('FrameConfig', ['name', 'xyz', 'rpy', 'parent']) +SceneName = namedtuple('SceneName', ['subscene', 'path']) + +class Scene(): + """ The base model provides mapping between physical/joint-space pose and various named/logical poses. + """ + def __init__(self, scene_config_file:str = None): + """the constructor + :param scene_config_file: the path to the task scene configuration file, defaults to None, which then the ros parameter + 'scene_config_file' will be used as the path if exists, and the task_scene.yaml file in the config folder is the last resort + :type scene_config_file: str, optional + """ + # load data from the config yaml file + if scene_config_file is None: + scene_config_file = os.path.join(os.path.dirname(__file__), '../demos/gridscan/task_scene.yaml') + with open(scene_config_file, 'r') as f: + config = yaml.safe_load(f) + self.config = config + # if the default scene is defined in the file, define a variable for the default + self.scene_config = self.config['scene'] if 'scene' in self.config else None + # if subscenes are defined in the file, define another variable for that + self.subscene_config = self.config['subscenes'] if 'subscenes' in self.config else None + # preprocess the objects and frames + self.objects_map = self._process_objects() + self.frames_map = self._process_frames() + + # internal function: parse a dot-separated config name (path) into two parts, the subscene and a list of the path + def _parse_config_name(self, config_name:str) -> SceneName: + if config_name is None: + return None + parts = config_name.split('.') + # print(f'_parse_config_name: {config_name} {parts} {parts[0]} {self.subscene_config}') + if self.subscene_config is not None and len(parts) > 1 and (parts[0] in self.subscene_config.keys()): # one of the subscenes + return SceneName(parts[0], parts[1:]) + else: + return SceneName(None, parts) + + # ------------------------------------------- + # functions for extracting objects and frames + + # internal function: extract and validate an object definition + def _create_object_config(self, obj:dict) -> ObjectConfig: + if obj is None: + return None + if 'name' not in obj: + logger.error(f'Scene (_process_an_object): the keys in the object config contains no "name"') + return None + if 'type' not in obj or 'xyz' not in obj or 'rpy' not in obj or 'dimensions' not in obj: + logger.error(f'Scene (_process_an_object): the keys in the object config ({obj["name"]}) contains no "type", "xyz", "rpy", "dimensions"') + return None + if obj['type'] not in ['box', 'sphere', 'object']: + logger.error(f'Scene (_process_an_object): the type of the object ({obj["name"]}) is not one of "sphere", "box", or "object"') + return None + model_file = obj.get('model_file', None) + if obj['type'] == 'object' and model_file is None: + logger.error(f'Scene (_process_an_object): the object ({obj["name"]}) expects a valid "model_file" key') + return None + return ObjectConfig(obj['name'], obj['type'], model_file, obj['dimensions'], obj['xyz'], obj['rpy'], obj.get('frame', None)) + + def _extract_objects_dict(self, source_object_config:dict, the_map:dict, subscene:str=None) -> ObjectConfig: + # assume object_config is a dict + for name in source_object_config: + obj = source_object_config[name] + obj['name'] = name + if 'frame' not in obj: + obj['frame'] = subscene + object_config = self._create_object_config(obj) + if object_config: + if subscene is None: + the_map[name] = object_config + else: + the_map[f'{subscene}.{name}'] = object_config + + def _extract_objects_list(self, source_object_config:list, the_map:dict, subscene:str=None) -> ObjectConfig: + # assume object_config is a list + for obj in source_object_config: + name = obj['name'] + if 'frame' not in obj: + obj['frame'] = subscene + object_config = self._create_object_config(obj) + if object_config: + if subscene is None: + the_map[name] = object_config + else: + the_map[f'{subscene}.{name}'] = object_config + + def _print_warning(self) -> None: + if not hasattr(self, 'warned'): + self.warned = True + logger.warning(f'''Scene configuration file format changed. + Objects are defined using a dict structure instead of a list structure. + objects: + name: + type: ... + xyz: ... + ... + The old format will not be acceptable in the future. Update the file is recommended.''') + + # internal function: returns a map of (name, ObjectConfig) of objects defined in the config file + def _process_objects(self) -> dict: + the_map = dict() + # process the main scene + if self.scene_config is not None and 'objects' in self.scene_config: + object_config = self.scene_config['objects'] + if type(object_config) in (tuple, list): + self._extract_objects_list(object_config, the_map) + self._print_warning() + else: + self._extract_objects_dict(object_config, the_map) + + # process each subscene + if self.subscene_config is not None: + for subscene in self.subscene_config.keys(): + if self.subscene_config[subscene] is None: + continue + if 'objects' in self.subscene_config[subscene]: + object_config = self.subscene_config[subscene]['objects'] + if type(object_config) in (tuple, list): + self._extract_objects_list(object_config, the_map, subscene) + self._print_warning() + else: + self._extract_objects_dict(object_config, the_map, subscene) + return the_map + + def _extract_frames_dict(self, source_frame_config:dict, the_map:dict, subscene:str=None) -> FrameConfig: + # assume object_config is a dict + for name in source_frame_config: + obj = source_frame_config[name] + obj['name'] = name + if 'frame' in obj: + obj['parent'] = obj['frame'] + if 'parent' not in obj: + obj['parent'] = subscene + if 'xyz' not in obj or 'rpy' not in obj: + logger.error(f'Scene (_extract_frames_dict): the keys in the object config ({obj["name"]}) contains no "xyz" or "rpy"') + return None + frame_config = FrameConfig(obj['name'], obj['xyz'], obj['rpy'], obj['parent']) + if frame_config: + if subscene is None: + the_map[name] = frame_config + else: + the_map[f'{subscene}.{name}'] = frame_config + + # internal function: returns a map of (name, FrameConfig) of frames defined in the config file + def _process_frames(self) -> dict: + the_map = dict() + # process the main scene + if self.scene_config is not None and 'frames' in self.scene_config: + frame_config = self.scene_config['frames'] + self._extract_frames_dict(frame_config, the_map) + # process each subscene + if self.subscene_config is not None: + for subscene in self.subscene_config.keys(): + if self.subscene_config[subscene] is None: + continue + if 'frames' in self.subscene_config[subscene]: + frame_config = self.subscene_config[subscene]['frames'] + self._extract_frames_dict(frame_config, the_map, subscene) + return the_map + + # ------------------------------------------- + # model functions + + # returns the value of a named config given as a dot-separated path (e.g. table.objects.lamp.position) + def query_config(self, name:str, default=None): + """ returns the value of any named config given as a dot-separated path + :param name: the dot-separated path + :type name: str + :param default: the default value if nothing is found in the path, defaults to None + :type default: any + :return: the value of the config + :rtype: any + """ + scene_name = self._parse_config_name(name) + if scene_name is None: + return default + if scene_name.subscene is not None: + pointer = self.subscene_config[scene_name.subscene] + else: + pointer = self.scene_config + for item in scene_name.path: + if item.isnumeric(): + try: + item = int(item) + except: + logger.error(f'query_config: part of query key {name} contains an non-integer index {item}') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + if item < 0 or item >= len(pointer): + logger.error(f'query_config: part of query key {name} contains an out-of-range integer index {item} ') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + if type(pointer) not in (tuple, list): + logger.error(f'query_config: part of query key {name} contains an invalid index {item}, expecting a string key') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + pointer = pointer[item] + else: + if type(pointer) != dict: + logger.error(f'query_config: part of query key {name} contains an invalid index {item}, expecting an integer') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + if item not in pointer: + logger.error(f'query_config: part of query key {name} contains a non-existent index {item}') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + pointer = pointer[item] + return pointer + + # alias for backward compatibility query_config + def query_position_as_xyz(self, name, default=None): + return self.query_config(name, default) + + def query_rotation_as_rpy(self, name, default=None): + return self.query_config(name, default) + + # returns the subscene name if the config is a subscene config + def get_subscene_of_config_name(self, name) -> str: + """ returns the subscene name if the config is one belonging to a subscene + :return: the name of a subscene or None + :rtype: str + """ + scene_name = self._parse_config_name(name) + if scene_name is None: + return None + return scene_name.subscene + + # returns the root scene config as a dict + def get_scene_config(self) -> dict: + """ returns the main scene config in the config file as a dict + :return: the content in the config file + :rtype: dict + """ + return self.scene_config + + # returns a subscene config as a dict + def get_subscene_config(self, subscene_name) -> dict: + """ returns the config of a subscene in the config file as a dict + :return: the content in the config file about the subscene or None + :rtype: dict + """ + if subscene_name not in self.subscene_config: + return None + return self.subscene_config[subscene_name] + + # returns True of the given config name exists + def exists_config(self, name:str) -> bool: + """ returns True of the given config name exists + :param name: The config name + :type name: str + :return: True if the given config name exists + :rtype: bool + """ + return self.query_config(name) != None + + # returns a list of keys specified under the config name + def keys_of_config(self, name:str) -> list: + """ returns a list of keys specified under the config name or an empty list + :param name: The config name + :type name: str + :return: a list of keys specified under the config name + :rtype: list + """ + pointer = self.query_config(name) + if pointer is None or type(pointer) not in [dict, map]: + return [] + return list(pointer.keys()) + + # returns the length of the list under the config name or an empty list + def len_of_list_config(self, name:str) -> int: + """ returns the length of the list under the config name + :param name: The config name + :type name: str + :return: the length of the list the config name + :rtype: int + """ + pointer = self.query_config(name) + if pointer is None or type(pointer) not in [tuple, list]: + return 0 + return len(pointer) + + # list the object names + def list_object_names(self) -> list: + """ return the list of objects defined in the scene configuration + :return: a list of object names as strings + :rtype: list + """ + if self.objects_map is None: + return [] + return self.objects_map.keys() + + # return config given the object name + def get_object_config(self, object_name: str) -> ObjectConfig: + """ return the object configuration as ObjectConfig tuple, or None if the name not exists + :param object_name: name of the object + :type object_name: str + :return: the configuration as a ObjectConfig or None if not exists + :rtype: ObjectConfig + """ + return self.objects_map.get(object_name) + + # return the named poses as a dict + def get_named_poses_as_dict(self) -> dict: + """ return the named poses defined in the scene configuration as a dict + + :return: dict containing key value pairs of named poses + """ + result = dict() + named_poses = self.query_config('named_poses') + for pose_name in named_poses: + pose_name = 'named_poses.' + pose_name + result[pose_name] = self.query_config(pose_name) + return result + + # list the frame names + def list_frame_names(self) -> list: + """ return the list of frames defined in the scene configuration + :return: a list of frames names as strings + :rtype: list + """ + if self.frames_map is None: + return [] + return self.frames_map.keys() + + # return config given the object name + def get_frame_config(self, frame_name: str) -> FrameConfig: + """ return the object configuration as FrameConfig tuple, or None if the name not exists + :param frame_name: name of the object + :type frame_name: str + :return: the configuration as a FrameConfig or None if not exists + :rtype: FrameConfig + """ + return self.frames_map.get(frame_name) + +# ----------------------------------------------------------- +# test program +if __name__ == '__main__': + the_scene = Scene() + named_poses = ['named_poses.stow', 'named_poses.home'] + for named_pose in named_poses: + print(f'named_pose {named_pose}: {the_scene.query_config(named_pose)}') + + regions = ['regions.workspace', 'regions.inner', 'regions.work', 'regions.work3d'] + for region in regions: + print(f'region {region}: {the_scene.query_config(region)}') + + positions = ['tank.positions.default', 'tank.positions.hover', 'tank.positions.submerged'] + for position in positions: + print(f'position {position}: {the_scene.query_config(position)}') + + rotations = ['tank.rotations.alpha', 'tank.rotations.beta', 'tank.rotations.delta', 'tank.rotations.gamma'] + for rotation in rotations: + print(f'rotation {rotation}: {the_scene.query_config(rotation)}') + + objects = the_scene.list_object_names() + for object_name in objects: + print(f'object {object_name}: {the_scene.get_object_config(object_name)}') + + the_object = the_scene.query_config('objects.tank') + print(the_object) + + print(f'tank tile step_sizes: {the_scene.query_config("tank.tile")}') + + keys = ['grid.0.rotation.alpha', 'grid.1.rotation.alpha', 'grid.2.rotation.alpha'] + for key in keys: + print(f'key {key}', the_scene.query_config(key)) + \ No newline at end of file diff --git a/task_trees/task_trees_manager.py b/task_trees/task_trees_manager.py index ba6299d..c94b60b 100644 --- a/task_trees/task_trees_manager.py +++ b/task_trees/task_trees_manager.py @@ -320,37 +320,40 @@ def _define_named_poses(self, the_scene:Scene): :param the_scene: the scene configuration object of the Scene class """ - named_poses = the_scene.get_named_poses_as_dict() + named_poses = the_scene.get_named_poses_of_root_as_dict() for name in named_poses: self.arm_commander.add_named_pose(name, named_poses[name]) - def _define_objects(self, the_scene:Scene, object_type=None, include_list:list=None, ignore_list:list=None): + def _define_links(self, the_scene:Scene, link_type=None, include_list:list=None, ignore_list:list=None): """ Define the collision objects in the arm commander as specified in the scene configuration file :param the_scene: the scene configuration object of the Scene class :param include_list: the only frames to be included and subject to the ignore_list, defaults to None - :param object_type: the object type to be included, defaults to None + :param link_type: the link_type to be included, defaults to None """ - if object_type is not None and type(object_type) is not list: - object_type = [object_type] + if link_type is not None and type(link_type) is not list: + link_type = [link_type] if ignore_list is None: ignore_list = [] - for object_name in the_scene.list_object_names(): - the_object = the_scene.get_object_config(object_name) - if object_type is not None and the_object.type not in object_type: + for scene_name in the_scene.list_scene_names(): + the_link = the_scene.get_link_of_scene(scene_name) + if the_link is None: continue - if include_list is not None and object_name not in include_list: + + if link_type is not None and the_link.type not in link_type: + continue + if include_list is not None and scene_name not in include_list: continue - if object_name in ignore_list: + if scene_name in ignore_list: continue - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) - elif the_object.type == 'sphere': - self.arm_commander.add_sphere_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.frame) - elif the_object.type == 'object': - self.arm_commander.add_object_to_scene(object_name, the_object.model_file, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) + if the_link.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link.dimensions, the_link.xyz, the_link.rpy, the_link.parent_frame) + elif the_link.type == 'sphere': + self.arm_commander.add_sphere_to_scene(scene_name, the_link.dimensions, the_link.xyz, the_link.parent_frame) + elif the_link.type == 'object': + self.arm_commander.add_object_to_scene(scene_name, the_link.model_file, the_link.dimensions, the_link.xyz, the_link.rpy, the_link.parent_frame) else: - logger.warning(f'TaskTreesManager (_define_objects): unrecognize object type "{the_object.type}"') + logger.warning(f'TaskTreesManager (_define_objects): unrecognize object type "{the_link.type}"') def _define_custom_frames(self, the_scene:Scene, include_list:list=None, ignore_list:list=None): """ Define the custom frames in the arm commander as specified in the scene configuration file @@ -366,8 +369,8 @@ def _define_custom_frames(self, the_scene:Scene, include_list:list=None, ignore_ continue if frame_name in ignore_list: continue - the_frame = the_scene.get_frame_config(frame_name) - self.arm_commander.add_custom_transform(frame_name, the_frame.xyz, the_frame.rpy, the_frame.parent) + the_frame_link = the_scene.get_link_of_frame(frame_name) + self.arm_commander.add_custom_transform(frame_name, the_frame_link.xyz, the_frame_link.rpy, the_frame_link.parent_frame) def _set_initialize_branch(self, branch:Composite): """ Set or replace a branch to be the initialization branch of the behaviour tree of this manager From 35fd1f65f1f1dfc8607d5809f6c511b74a1c2112 Mon Sep 17 00:00:00 2001 From: Andrew Lui Date: Fri, 12 Jul 2024 23:12:22 +1000 Subject: [PATCH 3/4] task_scene.py has a revampled and simplified API based on a revised config file format on how scenes are defined and the removal of the subscene concept. modify the create_array_marker function in rviz_tool that the arrow can indicate changes in pitch --- demos/gridscan/behaviours_gridscan.py | 16 +- demos/gridscan/task_scene.yaml | 83 ++-- demos/gridscan/task_scene_gridscan.py | 2 +- demos/gridscan/task_trees_manager_gridscan.py | 2 +- demos/pickndrop/task_scene.yaml | 49 +-- demos/pickndrop/task_trees_manager_pnd.py | 12 +- demos/pickndrop_estop/task_scene.yaml | 51 +-- .../pickndrop_estop/task_trees_manager_pnd.py | 12 +- demos/pushblock/task_scene.yaml | 76 ++-- .../pushblock/task_trees_manager_pushblock.py | 16 +- demos/pushblock_ros/task_scene.yaml | 82 ++-- demos/pytrees_moves_scene/move_scene_1.py | 2 +- demos/pytrees_moves_scene/move_scene_4.py | 12 +- demos/pytrees_moves_scene/move_scene_5.py | 12 +- demos/pytrees_moves_scene/task_scene.yaml | 10 +- demos/pytrees_moves_scene/task_scene_2.yaml | 17 +- demos/pytrees_moves_scene/task_scene_3.yaml | 21 +- demos/pytrees_moves_scene/task_scene_4.yaml | 22 +- demos/rviz_display/task_scene.yaml | 31 +- demos/rviz_display/task_trees_manager_rviz.py | 8 +- demos/simple_moves_scene/move_scene_4.py | 2 +- demos/simple_moves_scene/move_scene_5.py | 2 +- demos/simple_moves_scene/task_scene.yaml | 12 +- demos/simple_moves_scene/task_scene_2.yaml | 17 +- demos/simple_moves_scene/task_scene_3.yaml | 21 +- demos/simple_moves_scene/task_scene_4.yaml | 22 +- demos/simple_moves_scene/task_scene_6.yaml | 21 +- docs/source/SCENE_SUPPORT.md | 210 +++++---- task_trees/behaviours_move.py | 6 +- task_trees/demos/pushblock/task_scene.yaml | 76 ++-- .../pushblock/task_trees_manager_pushblock.py | 16 +- task_trees/scene_to_rviz.py | 152 +++---- task_trees/task_scene.py | 407 +++++++----------- task_trees/task_scene_old.py | 379 ++++++++++++++++ task_trees/task_trees_manager.py | 41 +- task_trees/tools/rviz_tools.py | 2 +- 36 files changed, 1139 insertions(+), 783 deletions(-) create mode 100644 task_trees/task_scene_old.py diff --git a/demos/gridscan/behaviours_gridscan.py b/demos/gridscan/behaviours_gridscan.py index a4d9282..9471867 100644 --- a/demos/gridscan/behaviours_gridscan.py +++ b/demos/gridscan/behaviours_gridscan.py @@ -43,18 +43,20 @@ def __init__(self, name, arm_commander=None, scene=None): self.the_blackboard.register_key(key='tank', access=py_trees.common.Access.WRITE) # attach robot agent self.arm_commander = arm_commander - self.the_scene = scene + self.the_scene:GridScanScene = scene # the concrete implementation that contains the logic of the simulated calibration def update(self): logger.info(f'SimCalibrate: found tank at pose: ') # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) - if the_object.name == 'tank': - self.the_blackboard.set('tank', the_object) + for scene_name in self.the_scene.list_scene_names(): + link_of_scene = self.the_scene.get_link_of_scene(scene_name) + if link_of_scene is None: + continue + if link_of_scene.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, link_of_scene.dimensions, link_of_scene.xyz, link_of_scene.rpy, link_of_scene.parent_frame) + if link_of_scene.name == 'tank': + self.the_blackboard.set('tank', link_of_scene) self.the_blackboard.task.result = '12' return Status.SUCCESS diff --git a/demos/gridscan/task_scene.yaml b/demos/gridscan/task_scene.yaml index 7440177..508f6f3 100644 --- a/demos/gridscan/task_scene.yaml +++ b/demos/gridscan/task_scene.yaml @@ -1,49 +1,23 @@ --- -scene: - named_poses: - stow: [3.110, -0.5467, -2.692, -1.473, 1.570, 0.000] # from base to wrist_3 - home: [2.524, -1.241, -2.101, -1.370, 1.570, 0.000] # from base to wrist_3 - regions: - workspace: [-1.2, -0.97, -0.1, 1.5, 0.6, 1.2] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-1.2, -0.3, 1.2, 0.6] # min_x, min_y, max_x, max_y - work: [-1.2, -0.6, 1.2, -0.3] # min_x, min_y, max_x, max_y - work3d: [-1.2, -0.6, 0.15, 1.2, -0.3, 0.6] # min_x, min_y, min_z, max_x, max_y, max_z - objects: - tank: +scenes: + root: + named_poses: + stow: [3.110, -0.5467, -2.692, -1.473, 1.570, 0.000] # from base to wrist_3 + home: [2.524, -1.241, -2.101, -1.370, 1.570, 0.000] # from base to wrist_3 + regions: + workspace: [-1.2, -0.97, -0.1, 1.5, 0.6, 1.2] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-1.2, -0.3, 1.2, 0.6] # min_x, min_y, max_x, max_y + work: [-1.2, -0.6, 1.2, -0.3] # min_x, min_y, max_x, max_y + work3d: [-1.2, -0.6, 0.15, 1.2, -0.3, 0.6] # min_x, min_y, min_z, max_x, max_y, max_z + + tank: + link: type: box model_file: null dimensions: [0.4, 1.8, 0.10] xyz: [0.0, -0.5, 0.05] rpy: [0, 0, 1.57] frame: null - side_1: - type: box - model_file: null - dimensions: [0.005, 1.8, 0.20] - xyz: [0.0, -0.3, 0.10] - rpy: [0, 0, 1.57] - frame: null - side_2: - type: box - model_file: null - dimensions: [0.005, 1.8, 0.20] - xyz: [0.0, -0.7, 0.10] - rpy: [0, 0, 1.57] - side_3: - type: box - model_file: null - dimensions: [0.4, 0.005, 0.20] - xyz: [-0.9, -0.5, 0.10] - rpy: [0, 0, 1.57] - side_4: - type: box - model_file: null - dimensions: [0.4, 0.005, 0.20] - xyz: [0.9, -0.5, 0.10] - rpy: [0, 0, 1.57] - -subscenes: - tank: bbox: [-0.2, -0.9, 0.2, 0.9] # min_x, min_y, max_x, max_y positions: default: [null, null, 0.35] @@ -85,6 +59,37 @@ subscenes: tile_y: 0 origin_position: [-0.1, 0.45] ee_rotation: tank.rotations.beta + side_1: + link: + type: box + model_file: null + dimensions: [0.005, 1.8, 0.20] + xyz: [0.0, -0.3, 0.10] + rpy: [0, 0, 1.57] + frame: null + side_2: + link: + type: box + model_file: null + dimensions: [0.005, 1.8, 0.20] + xyz: [0.0, -0.7, 0.10] + rpy: [0, 0, 1.57] + side_3: + link: + type: box + model_file: null + dimensions: [0.4, 0.005, 0.20] + xyz: [-0.9, -0.5, 0.10] + rpy: [0, 0, 1.57] + side_4: + link: + type: box + model_file: null + dimensions: [0.4, 0.005, 0.20] + xyz: [0.9, -0.5, 0.10] + rpy: [0, 0, 1.57] + + diff --git a/demos/gridscan/task_scene_gridscan.py b/demos/gridscan/task_scene_gridscan.py index f53547c..3c966ad 100644 --- a/demos/gridscan/task_scene_gridscan.py +++ b/demos/gridscan/task_scene_gridscan.py @@ -28,7 +28,7 @@ def __init__(self, scene_config_file:str = None): super(GridScanScene, self).__init__(scene_config_file) # -- prepare internal data structures for efficiency # tank configuration - self.tank_config = self.subscene_config['tank'] + self.tank_config = self.scenes_branch['tank'] # tile_step size self.step_size_x = self.tank_config['tile']['step_size_x'] self.step_size_y = self.tank_config['tile']['step_size_y'] diff --git a/demos/gridscan/task_trees_manager_gridscan.py b/demos/gridscan/task_trees_manager_gridscan.py index a64a64d..8729480 100644 --- a/demos/gridscan/task_trees_manager_gridscan.py +++ b/demos/gridscan/task_trees_manager_gridscan.py @@ -189,7 +189,7 @@ def wrong_xy_at_tank(self) -> bool: def at_angle(self, rotation_pose) -> bool: current_xyzrpy = self.arm_commander.pose_in_frame_as_xyzrpy(reference_frame='tank') - rotation_rpy = self.the_scene.query_rotation_as_rpy(rotation_pose) + rotation_rpy = self.the_scene.query_config(rotation_pose) for index in range(len(rotation_rpy)): if rotation_rpy[index] is None: continue diff --git a/demos/pickndrop/task_scene.yaml b/demos/pickndrop/task_scene.yaml index 326d0c9..7a0ee29 100644 --- a/demos/pickndrop/task_scene.yaml +++ b/demos/pickndrop/task_scene.yaml @@ -1,30 +1,24 @@ -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.2, 1.0, 0.5] # min_x, min_y, max_x, max_y - positions: - drop: [0.5, 0.3, 0.4] - objects: - the_table: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.2, 1.0, 0.5] # min_x, min_y, max_x, max_y + positions: + drop: [0.5, 0.3, 0.4] + gripper_offset: [0, 0, 0.12] + grip_prepare_offset: [0, 0, 0.20] + + the_table: + link: + parent_frame: root type: box model_file: null dimensions: [0.5, 0.2, 0.3] xyz: [0.2, -0.35, 0.15] - rpy: [0, 0, 0] - the_bin: - type: box - model_file: null - dimensions: [0.1, 0.1, 0.2] - xyz: [0.5, 0.3, 0.1] - rpy: [0, 0, 0] - gripper_offset: [0, 0, 0.12] - grip_prepare_offset: [0, 0, 0.20] - -subscenes: - the_table: + rpy: [0, 0, 0] positions: start: [0, 0, null] scan_z_level: [null, null, 0.45] @@ -33,5 +27,12 @@ subscenes: scan_step_size: [0.05, 0.05] the_bin: + link: + parent_frame: root + type: box + model_file: null + dimensions: [0.1, 0.1, 0.2] + xyz: [0.5, 0.3, 0.1] + rpy: [0, 0, 0] regions: - dropzone: [-0.05, -0.05, 0.05, 0.05] + dropzone: [-0.05, -0.05, 0.05, 0.05] \ No newline at end of file diff --git a/demos/pickndrop/task_trees_manager_pnd.py b/demos/pickndrop/task_trees_manager_pnd.py index d4bd664..50f05db 100644 --- a/demos/pickndrop/task_trees_manager_pnd.py +++ b/demos/pickndrop/task_trees_manager_pnd.py @@ -121,14 +121,16 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # Functions for the simulation (demo) def setup_objects(self): # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy) + for scene_name in self.the_scene.list_scene_names(): + the_link = self.the_scene.get_link_of_scene(scene_name) + if the_link is None: + continue + if the_link.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link.dimensions, the_link.xyz, the_link.rpy) # Generate a new ball on the table def generate_a_ball(self): - the_table = self.the_scene.get_object_config('the_table') + the_table = self.the_scene.get_link_of_scene('the_table') x, y = the_table.dimensions[0] * random.random() * 0.9, the_table.dimensions[1] * random.random() * 0.9 # position in the box frame z = the_table.xyz[2] + the_table.dimensions[2] / 2 + 0.035 xyz = [x, y, z] diff --git a/demos/pickndrop_estop/task_scene.yaml b/demos/pickndrop_estop/task_scene.yaml index 995573f..7a0ee29 100644 --- a/demos/pickndrop_estop/task_scene.yaml +++ b/demos/pickndrop_estop/task_scene.yaml @@ -1,30 +1,24 @@ -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.2, 1.0, 0.5] # min_x, min_y, max_x, max_y - positions: - drop: [0.5, 0.3, 0.4] - objects: - the_table: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.2, 1.0, 0.5] # min_x, min_y, max_x, max_y + positions: + drop: [0.5, 0.3, 0.4] + gripper_offset: [0, 0, 0.12] + grip_prepare_offset: [0, 0, 0.20] + + the_table: + link: + parent_frame: root type: box model_file: null dimensions: [0.5, 0.2, 0.3] - xyz: [0.2, -0.3, 0.15] - rpy: [0, 0, 0] - the_bin: - type: box - model_file: null - dimensions: [0.1, 0.1, 0.2] - xyz: [0.5, 0.3, 0.1] - rpy: [0, 0, 0] - gripper_offset: [0, 0, 0.12] - grip_prepare_offset: [0, 0, 0.20] - -subscenes: - the_table: + xyz: [0.2, -0.35, 0.15] + rpy: [0, 0, 0] positions: start: [0, 0, null] scan_z_level: [null, null, 0.45] @@ -33,5 +27,12 @@ subscenes: scan_step_size: [0.05, 0.05] the_bin: + link: + parent_frame: root + type: box + model_file: null + dimensions: [0.1, 0.1, 0.2] + xyz: [0.5, 0.3, 0.1] + rpy: [0, 0, 0] regions: - dropzone: [-0.05, -0.05, 0.05, 0.05] + dropzone: [-0.05, -0.05, 0.05, 0.05] \ No newline at end of file diff --git a/demos/pickndrop_estop/task_trees_manager_pnd.py b/demos/pickndrop_estop/task_trees_manager_pnd.py index 58c4ad0..f711636 100644 --- a/demos/pickndrop_estop/task_trees_manager_pnd.py +++ b/demos/pickndrop_estop/task_trees_manager_pnd.py @@ -115,14 +115,16 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # Functions for the simulation (demo) def setup_objects(self): # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy) + for scene_name in self.the_scene.list_scene_names(): + the_link = self.the_scene.get_link_of_scene(scene_name) + if the_link is None: + continue + if the_link.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link.dimensions, the_link.xyz, the_link.rpy) # Generate a new ball on the table def generate_a_ball(self): - the_table = self.the_scene.get_object_config('the_table') + the_table = self.the_scene.get_link_of_scene('the_table') x, y = the_table.dimensions[0] * random.random() * 0.9, the_table.dimensions[1] * random.random() * 0.9 # position in the box frame z = the_table.xyz[2] + the_table.dimensions[2] / 2 + 0.035 xyz = [x, y, z] diff --git a/demos/pushblock/task_scene.yaml b/demos/pushblock/task_scene.yaml index e1ba483..51f4c99 100644 --- a/demos/pushblock/task_scene.yaml +++ b/demos/pushblock/task_scene.yaml @@ -1,76 +1,89 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y - rotations: - # alpha: [3.14, null, 0.78] - # beta: [3.14, null, -0.78] - alpha: [3.14, 0, -0.785] - beta: [3.14, 0, 2.358] - push_block: - dimensions: [0.05, 0.05, 0.05] - xyz: [0.0, 0.025, 0.151] - rpy: [0, 0, 0] - objects: - block_1: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y + rotations: + # alpha: [3.14, null, 0.78] + # beta: [3.14, null, -0.78] + alpha: [3.14, 0, -0.785] + beta: [3.14, 0, 2.358] + push_block: + dimensions: [0.05, 0.05, 0.05] + xyz: [0.0, 0.025, 0.151] + rpy: [0, 0, 0] + + block_1: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, -0.10, 0.175] rpy: [0, 0, 0] - block_2: + block_2: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, -0.10, 0.175] rpy: [0, 0, 0] - block_3: + block_3: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, 0.10, 0.175] rpy: [0, 0, 0] - block_4: + block_4: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, 0.10, 0.175] rpy: [0, 0, 0] - area_1: + area_1: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.4, 0.0, 0.125] rpy: [0, 0, 1.57] - area_2: + area_2: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, -0.10, 0.125] rpy: [0, 0, 3.14] - area_3: + area_3: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.6, 0.0, 0.125] rpy: [0, 0, -1.57] - area_4: + area_4: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.10, 0.125] rpy: [0, 0, 0] - area_5: + area_5: + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.0, 0.125] rpy: [0, 0, 0] -subscenes: area: positions: hover: [null, null, 0.40] @@ -79,12 +92,5 @@ subscenes: centre: [0, -0.015, null] # -0.01 restart: [0, -0.185, null] end: [0, -0.06, null] - area_1: - rotation: rotations.alpha - area_2: - rotation: rotations.beta - area_3: - rotation: rotations.beta - area_4: - rotation: rotations.alpha + diff --git a/demos/pushblock/task_trees_manager_pushblock.py b/demos/pushblock/task_trees_manager_pushblock.py index 95d518d..9fa6fc8 100644 --- a/demos/pushblock/task_trees_manager_pushblock.py +++ b/demos/pushblock/task_trees_manager_pushblock.py @@ -83,8 +83,8 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # setup visualization in rviz self.scene_to_rviz = SceneToRViz(self.the_scene, arm_commander.get_world_reference_frame(), False) self.scene_to_rviz.display_bbox_regions('regions', rgba=[1.0, 0.0, 1.0, 0.2]) - object_area1 = self.the_scene.get_object_config('area_1') - self.scene_to_rviz.add_custom_transform('area', object_area1.xyz, object_area1.rpy, arm_commander.get_world_reference_frame()) + link_area1 = self.the_scene.get_link_of_scene('area_1') + self.scene_to_rviz.add_custom_transform('area', link_area1.xyz, link_area1.rpy, arm_commander.get_world_reference_frame()) self.scene_to_rviz.display_positions('area.positions', rgba=[1.0, 1.0, 0.0, 0.8]) # setup the robotic manipulation platform through the commander self.arm_commander.abort_move(wait=True) @@ -112,7 +112,7 @@ def setup_objects(self): # the_object = self.the_scene.get_object_config(object_name) # if the_object.type == 'box': # self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) - self._define_objects(self.the_scene, 'box') + self._define_links(self.the_scene, 'box') def generate_the_object(self): self.the_object = dict() @@ -197,19 +197,19 @@ def in_a_region(self, logical_region) -> bool: return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), self.the_scene.query_config(logical_region)) def over_an_object(self, object_name) -> bool: - the_object = self.the_scene.get_object_config(object_name) - the_object_position_as_bbox = [the_object.xyz[0] - the_object.dimensions[0] / 2, the_object.xyz[1] - the_object.dimensions[1] / 2, - the_object.xyz[0] + the_object.dimensions[0] / 2, the_object.xyz[1] + the_object.dimensions[1] / 2] + the_link = self.the_scene.get_link_of_scene(object_name) + the_object_position_as_bbox = [the_link.xyz[0] - the_link.dimensions[0] / 2, the_link.xyz[1] - the_link.dimensions[1] / 2, + the_link.xyz[0] + the_link.dimensions[0] / 2, the_link.xyz[1] + the_link.dimensions[1] / 2] current_pose = self.arm_commander.pose_of_robot_link() return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), the_object_position_as_bbox) def on_or_above_z(self, position) -> bool: current_pose = self.arm_commander.pose_of_robot_link() - return current_pose.pose.position.z > self.the_scene.query_position_as_xyz(position)[2] - 0.05 + return current_pose.pose.position.z > self.the_scene.query_config(position)[2] - 0.05 def below_z(self, position) -> bool: current_pose = self.arm_commander.pose_of_robot_link() - return current_pose.pose.position.z < self.the_scene.query_position_as_xyz(position)[2] - 0.05 + return current_pose.pose.position.z < self.the_scene.query_config(position)[2] - 0.05 def wrong_restart_position(self) -> bool: target = self.query_target_reference_frame() diff --git a/demos/pushblock_ros/task_scene.yaml b/demos/pushblock_ros/task_scene.yaml index 22e6492..51f4c99 100644 --- a/demos/pushblock_ros/task_scene.yaml +++ b/demos/pushblock_ros/task_scene.yaml @@ -1,78 +1,89 @@ -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y - positions: - drop: [0.5, 0.3, 0.4] - rotations: - # alpha: [3.14, null, 0.78] - # beta: [3.14, null, -0.78] - alpha: [3.14, 0, -0.785] - beta: [3.14, 0, 2.358] - push_block: - dimensions: [0.05, 0.05, 0.05] - xyz: [0.0, 0.025, 0.151] - rpy: [0, 0, 0] - objects: - block_1: +--- +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y + rotations: + # alpha: [3.14, null, 0.78] + # beta: [3.14, null, -0.78] + alpha: [3.14, 0, -0.785] + beta: [3.14, 0, 2.358] + push_block: + dimensions: [0.05, 0.05, 0.05] + xyz: [0.0, 0.025, 0.151] + rpy: [0, 0, 0] + + block_1: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, -0.10, 0.175] rpy: [0, 0, 0] - block_2: + block_2: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, -0.10, 0.175] rpy: [0, 0, 0] - block_3: + block_3: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, 0.10, 0.175] rpy: [0, 0, 0] - block_4: + block_4: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, 0.10, 0.175] rpy: [0, 0, 0] - area_1: + area_1: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.4, 0.0, 0.125] rpy: [0, 0, 1.57] - area_2: + area_2: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, -0.10, 0.125] rpy: [0, 0, 3.14] - area_3: + area_3: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.6, 0.0, 0.125] rpy: [0, 0, -1.57] - area_4: + area_4: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.10, 0.125] rpy: [0, 0, 0] - area_5: + area_5: + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.0, 0.125] - rpy: [0, 0, 0] - -subscenes: + rpy: [0, 0, 0] area: positions: hover: [null, null, 0.40] @@ -81,12 +92,5 @@ subscenes: centre: [0, -0.015, null] # -0.01 restart: [0, -0.185, null] end: [0, -0.06, null] - area_1: - rotation: rotations.alpha - area_2: - rotation: rotations.beta - area_3: - rotation: rotations.beta - area_4: - rotation: rotations.alpha + diff --git a/demos/pytrees_moves_scene/move_scene_1.py b/demos/pytrees_moves_scene/move_scene_1.py index ed77d55..d7550ca 100644 --- a/demos/pytrees_moves_scene/move_scene_1.py +++ b/demos/pytrees_moves_scene/move_scene_1.py @@ -40,7 +40,7 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): self.arm_commander.wait_for_ready_to_move() self.the_scene = Scene(os.path.join(os.path.dirname(__file__), 'task_scene.yaml')) # setup name poses - self.named_poses = self.the_scene.keys_of_config('named_poses') + self.named_poses = self.the_scene.key_list_under_config_key('named_poses') for pose_name in self.named_poses: pose_name = 'named_poses.' + pose_name self.arm_commander.add_named_pose(pose_name, self.the_scene.query_config(pose_name)) diff --git a/demos/pytrees_moves_scene/move_scene_4.py b/demos/pytrees_moves_scene/move_scene_4.py index 5a88cf7..92abd92 100644 --- a/demos/pytrees_moves_scene/move_scene_4.py +++ b/demos/pytrees_moves_scene/move_scene_4.py @@ -44,16 +44,18 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # load scene config self.the_scene = Scene(os.path.join(os.path.dirname(__file__), 'task_scene_4.yaml')) # setup name poses - self.named_poses = self.the_scene.keys_of_config('named_poses') + self.named_poses = self.the_scene.key_list_under_config_key('named_poses') for pose_name in self.named_poses: pose_name = 'named_poses.' + pose_name self.arm_commander.add_named_pose(pose_name, self.the_scene.query_config(pose_name)) # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy) + for scene_name in self.the_scene.list_scene_names(): + the_link_of_scene = self.the_scene.get_link_of_scene(scene_name) + if the_link_of_scene is None: + continue + if the_link_of_scene.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link_of_scene.dimensions, the_link_of_scene.xyz, the_link_of_scene.rpy) # build the behaviour tree self.move_branch = self.create_move_branch() diff --git a/demos/pytrees_moves_scene/move_scene_5.py b/demos/pytrees_moves_scene/move_scene_5.py index ae82f44..e24edb6 100644 --- a/demos/pytrees_moves_scene/move_scene_5.py +++ b/demos/pytrees_moves_scene/move_scene_5.py @@ -43,16 +43,18 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # load scene config self.the_scene = Scene(os.path.join(os.path.dirname(__file__), 'task_scene_4.yaml')) # setup name poses - self.named_poses = self.the_scene.keys_of_config('named_poses') + self.named_poses = self.the_scene.key_list_under_config_key('named_poses') for pose_name in self.named_poses: pose_name = 'named_poses.' + pose_name self.arm_commander.add_named_pose(pose_name, self.the_scene.query_config(pose_name)) # setup objects - for object_name in self.the_scene.list_object_names(): - the_object = self.the_scene.get_object_config(object_name) - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy) + for scene_name in self.the_scene.list_scene_names(): + the_link_of_scene = self.the_scene.get_link_of_scene(scene_name) + if the_link_of_scene is None: + continue + if the_link_of_scene.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link_of_scene.dimensions, the_link_of_scene.xyz, the_link_of_scene.rpy) # build the behaviour tree self.move_branch = self.create_move_branch() diff --git a/demos/pytrees_moves_scene/task_scene.yaml b/demos/pytrees_moves_scene/task_scene.yaml index 4ee0105..63b15e3 100644 --- a/demos/pytrees_moves_scene/task_scene.yaml +++ b/demos/pytrees_moves_scene/task_scene.yaml @@ -1,9 +1,9 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base -subscenes: diff --git a/demos/pytrees_moves_scene/task_scene_2.yaml b/demos/pytrees_moves_scene/task_scene_2.yaml index ef15b3d..73e4cbe 100644 --- a/demos/pytrees_moves_scene/task_scene_2.yaml +++ b/demos/pytrees_moves_scene/task_scene_2.yaml @@ -1,11 +1,12 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - start: [0.4, 0.0, 0.2] - end: [0.4, 0.0, 0.6] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + start: [0.4, 0.0, 0.2] + end: [0.4, 0.0, 0.6] + diff --git a/demos/pytrees_moves_scene/task_scene_3.yaml b/demos/pytrees_moves_scene/task_scene_3.yaml index 580e780..8f4e516 100644 --- a/demos/pytrees_moves_scene/task_scene_3.yaml +++ b/demos/pytrees_moves_scene/task_scene_3.yaml @@ -1,13 +1,14 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_x: [0.3, null, null] - init: [0.307, 0.0, 0.588] - rotations: - alpha: [3.139, 0.0, -0.785] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_x: [0.3, null, null] + init: [0.307, 0.0, 0.588] + rotations: + alpha: [3.139, 0.0, -0.785] + diff --git a/demos/pytrees_moves_scene/task_scene_4.yaml b/demos/pytrees_moves_scene/task_scene_4.yaml index 1088ead..96fd663 100644 --- a/demos/pytrees_moves_scene/task_scene_4.yaml +++ b/demos/pytrees_moves_scene/task_scene_4.yaml @@ -1,22 +1,24 @@ --- -scene: - named_poses: - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_z: [null, null, 0.5] - objects: - area_1: +scenes: + root: + named_poses: + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_z: [null, null, 0.5] + area_1: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, 0.20, 0.00] rpy: [0, 0, 3.14] - area_2: + area_2: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, -0.20, 0.00] rpy: [0, 0, 3.14] -subscenes: - diff --git a/demos/rviz_display/task_scene.yaml b/demos/rviz_display/task_scene.yaml index 0786b4b..062592e 100644 --- a/demos/rviz_display/task_scene.yaml +++ b/demos/rviz_display/task_scene.yaml @@ -1,27 +1,24 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_z: [null, null, 0.5] - objects: - teapot: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_z: [null, null, 0.5] + + teapot: + link: type: object # model_file: file://localhost/home/qcr/arm_commander_ws/src/task_trees/demos/rviz_display/utah_teapot.stl model_file: package://task_trees/demos/rviz_display/utah_teapot.stl dimensions: [0.01, 0.01, 0.01] xyz: [0.4, 0.20, 0.00] rpy: [0, 0, 3.14] - frames: - area: + area: + link: + type: frame xyz: [0.4, -0.20, 0.00] rpy: [3.14, 0, 3.14] -subscenes: - area: - frames: - zone: - xyz: [0.4, -0.20, 0.00] - rpy: [3.14, 0, 3.14] - + diff --git a/demos/rviz_display/task_trees_manager_rviz.py b/demos/rviz_display/task_trees_manager_rviz.py index 202cab9..f451009 100644 --- a/demos/rviz_display/task_trees_manager_rviz.py +++ b/demos/rviz_display/task_trees_manager_rviz.py @@ -55,14 +55,14 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): self.the_scene = Scene(config_file) # setup visualization in rviz self.scene_to_rviz = SceneToRViz(self.the_scene, arm_commander.get_world_reference_frame(), False) - self.scene_to_rviz.display_object('objects.teapot') + self.scene_to_rviz.display_link('teapot') # setup the robotic manipulation platform through the commander self.arm_commander.abort_move(wait=True) self.arm_commander.reset_world() - bird_object = self.the_scene.get_object_config('teapot') - self.arm_commander.add_object_to_scene('teapot_another', bird_object.model_file, bird_object.dimensions, - bird_object.xyz, bird_object.rpy, reference_frame='area') + teapot_object = self.the_scene.get_link_of_scene('teapot') + self.arm_commander.add_object_to_scene('teapot_another', teapot_object.model_file, teapot_object.dimensions, + teapot_object.xyz, teapot_object.rpy, reference_frame='area') # self.arm_commander.set_workspace_walls(*(self.the_scene.query_config('regions.workspace'))) # setup name poses self._define_named_poses(self.the_scene) diff --git a/demos/simple_moves_scene/move_scene_4.py b/demos/simple_moves_scene/move_scene_4.py index 4467fa5..bb2f69d 100644 --- a/demos/simple_moves_scene/move_scene_4.py +++ b/demos/simple_moves_scene/move_scene_4.py @@ -43,7 +43,7 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # setup name poses self._define_named_poses(self.the_scene) # setup objects - self._define_objects(self.the_scene) + self._define_links(self.the_scene) # build and install the behavior tree self._set_initialize_branch(self.create_init_branch()) diff --git a/demos/simple_moves_scene/move_scene_5.py b/demos/simple_moves_scene/move_scene_5.py index 2da9775..4a1e802 100644 --- a/demos/simple_moves_scene/move_scene_5.py +++ b/demos/simple_moves_scene/move_scene_5.py @@ -43,7 +43,7 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # setup name poses self._define_named_poses(self.the_scene) # setup objects - self._define_objects(self.the_scene) + self._define_links(self.the_scene) # build and install the behavior tree self._set_initialize_branch(self.create_init_branch()) self._add_priority_branch(self.create_move_branch()) diff --git a/demos/simple_moves_scene/task_scene.yaml b/demos/simple_moves_scene/task_scene.yaml index 4ee0105..cee2223 100644 --- a/demos/simple_moves_scene/task_scene.yaml +++ b/demos/simple_moves_scene/task_scene.yaml @@ -1,9 +1,9 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + diff --git a/demos/simple_moves_scene/task_scene_2.yaml b/demos/simple_moves_scene/task_scene_2.yaml index c3df9d6..9d7a9a7 100644 --- a/demos/simple_moves_scene/task_scene_2.yaml +++ b/demos/simple_moves_scene/task_scene_2.yaml @@ -1,11 +1,12 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - start: [0.3, 0.0, 0.2] - end: [0.3, 0.0, 0.6] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + start: [0.3, 0.0, 0.2] + end: [0.3, 0.0, 0.6] + diff --git a/demos/simple_moves_scene/task_scene_3.yaml b/demos/simple_moves_scene/task_scene_3.yaml index 580e780..8f4e516 100644 --- a/demos/simple_moves_scene/task_scene_3.yaml +++ b/demos/simple_moves_scene/task_scene_3.yaml @@ -1,13 +1,14 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_x: [0.3, null, null] - init: [0.307, 0.0, 0.588] - rotations: - alpha: [3.139, 0.0, -0.785] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_x: [0.3, null, null] + init: [0.307, 0.0, 0.588] + rotations: + alpha: [3.139, 0.0, -0.785] + diff --git a/demos/simple_moves_scene/task_scene_4.yaml b/demos/simple_moves_scene/task_scene_4.yaml index 1088ead..96fd663 100644 --- a/demos/simple_moves_scene/task_scene_4.yaml +++ b/demos/simple_moves_scene/task_scene_4.yaml @@ -1,22 +1,24 @@ --- -scene: - named_poses: - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_z: [null, null, 0.5] - objects: - area_1: +scenes: + root: + named_poses: + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_z: [null, null, 0.5] + area_1: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, 0.20, 0.00] rpy: [0, 0, 3.14] - area_2: + area_2: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, -0.20, 0.00] rpy: [0, 0, 3.14] -subscenes: - diff --git a/demos/simple_moves_scene/task_scene_6.yaml b/demos/simple_moves_scene/task_scene_6.yaml index 01dfc4d..b851ede 100644 --- a/demos/simple_moves_scene/task_scene_6.yaml +++ b/demos/simple_moves_scene/task_scene_6.yaml @@ -1,13 +1,14 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - start: [null, -0.3, null] - end: [null, 0.3, null] - near: [0.4, null, null] - far: [0.6, null, null] -subscenes: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + start: [null, -0.3, null] + end: [null, 0.3, null] + near: [0.4, null, null] + far: [0.6, null, null] + diff --git a/docs/source/SCENE_SUPPORT.md b/docs/source/SCENE_SUPPORT.md index d8954fb..72c1c50 100644 --- a/docs/source/SCENE_SUPPORT.md +++ b/docs/source/SCENE_SUPPORT.md @@ -10,73 +10,72 @@ The key enabling component of the logical scene support is **scene configuration ### Basic Structure of a Scene Configuration File -A scene configuration file is divided into the root scene and custom subscene. The significance betwwen the root scene and the subscenes is the namespace of their configuration key-value pairs. All key-value defined under the root scene do have an empty namespace, while the variables under a subscene requires the subscene name as the namespace. The top level keys must be `scene` and `subscenes`, and under `subscenes` keys representing names of subscenes can be added. In the following example, `sub_scene_1` and `sub_scene_2` are names of custom subscenes. +A scene configuration file can be divided into one or more scenes. The first scene must be known as `root`. The scene is the top-level identifier for refering to all the resource keys in the configuration file. Each scene defines its own reference frame and optionally an visual object attached. A scene without a specified visual object is called a frame-type scene or simply known as a frame. + +The significance betwwen the root scene and the other scenes is the namespace of their configuration key-value pairs. All key-value defined under the root scene may be replaced with an empty namespace, while the variables under a subscene requires the subscene name as the namespace. + +The configuration file must starts with the key `scenes`, under which each scene can be added by the name as the head the scene branch. In the following example, `root` is the mandatory scene, and `scene_1` and `scene_2` are names of custom scenes. ```diff --- -scene: +scenes: + root: ... variables of the root scene go here - objects: - ... optional definitions of objects (which are also reference frames) - frames: - ... optional definitions of reference frames + named_poses: ... optional definitions of named poses -subscenes: - sub_scene_1: - ... variables of the subscene sub_scene_1 go here + scene_1: + link: + ... pose definitions of scene (which are also reference frames) + ... variables of the subscene scene_1 go here - sub_scene_2: - ... variables of the subscene sub_scene_2 go here + scene_2: + ... variables of the subscene scene_2 go here ``` -### Optional Branches Recognized by the Task Tree Manager - -The named branches of `objects`, `frames`, and `named_poses` have dedicated functions in the scene configuration. - -- The key `objects` under the root scene is recognized by the task tree manager `TaskTreesManager` class as definitions of collision objects. In the task trees, collision objects are also recognized as custom reference frames. -- The key `frames` under the root scene is recognized as definitions of custom reference frames. -- The key`named_poses` under the root scene is also recognized by the task tree manager as the named poses adding to the arm commander. - -The presence of these branches are optional. - -The `TaskTreesManager` class offers the functions `_define_objects`, `_define_frames` and `_define_named_poses` for adding the objects, the custom reference frames, and named poses defined in the scene configuration. - -### Specifying Configurations in the Root Scene and Subscenes +### Specifying Configurations in the Root Scene and Other Scenes Consider the example `task_scene_4.yaml` [source code](../../demos/simple_moves_scene/task_scene_4.yaml) below. In this example, all configuration keys are under the root scene. No subscene is defined. ``` --- -scene: - named_poses: - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - positions: - default_z: [null, null, 0.5] - objects: - area_1: +scenes: + root: + named_poses: + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + positions: + default_z: [null, null, 0.5] + area_1: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, 0.20, 0.00] rpy: [0, 0, 3.14] - frame: null - area_2: + area_2: + link: + parent_frame: root type: box model_file: null dimensions: [0.2, 0.2, 0.01] xyz: [0.4, -0.20, 0.00] rpy: [0, 0, 3.14] - frame: area_1 -subscenes: ``` -A subscene is firstly a namespace for queries and key references. It should also be the reference frame to which the poses are defined. The subscene name is usually either the name of a reference frame or a collision object. +A scene is firstly a namespace for queries and key references. It should also be the reference frame to which the poses are defined. The scene name is both the name of a reference frame and, if defined, a collision object. -The scene configuration file below defines one subscene called `area_1`, in which several configuration keys are defined. Note that `area_1` is a reference frame (a side effect of defining a collision object). Normally, pose keys such as `area_1.positions.start` and their subscene `area_1` are used together in using the move behaviours. +The scene configuration file below defines one scene called `area_1`, in which several configuration keys are defined. Note that `area_1` is a reference frame (a side effect of defining a collision object). Normally, pose keys such as `area_1.positions.start` and their scene (referene frame) `area_1` are used together in using the move behaviours. ``` -subscenes: +scenes: area_1: + link: + parent_frame: root + type: box + model_file: null + dimensions: [0.2, 0.2, 0.01] + xyz: [0.4, 0.20, 0.00] + rpy: [0, 0, 3.14] positions: hover: [null, null, 0.40] down: [null, null, 0.27] @@ -86,7 +85,9 @@ subscenes: end: [0, -0.06, null] ``` -### Collision Objects and Custom Reference Frames +### The `link` Branch: Collision Objects and Custom Reference Frames + +The link of a scene specifies a reference frame and optionally the collision object. Collision object definitions comprise the following mandatory and optional keys headed by the name of the object. - `type`: `box`, `sphere`, or `object` @@ -94,11 +95,13 @@ Collision object definitions comprise the following mandatory and optional keys - `dimensions`: a list of length, width, and height for a `box`, the radius for a `sphere`, and the scaling factor as a list of 3 numbers for an `object`. - `xyz`: the position of the object - `rpy`: the orientation of the object -- `frame`: the reference frame for the object pose, where `null` implies the world frame. This field is optional. +- `parent_frame`: the reference frame for the object pose, where `null` implies the world frame. This field is optional. -Every collision object will project its position and rotation as its own custom reference frames. The following defines the object named `area_1` and the fields are populated. Note that the null frame is default to the world frame. +Every collision object will project its position and rotation as its own custom reference frames. The following defines the scene named `area_1` which is also the name of the reference frame. In particular, the type `box` indicaates that it is a collision object as well. Note that the null frame is default to the base/world frame. The pose parameter + (xyz and rpy) is the transform from `area_1` to the base/world frame. ``` - area_1: + area_1: + link: type: box model_file: null dimensions: [0.2, 0.2, 0.01] @@ -106,14 +109,15 @@ Every collision object will project its position and rotation as its own custom rpy: [0, 0, 3.14] frame: null ``` -Collision objects can be defined under a subscene as well. If `frame` is not given or its value is `null`, the subscene becomes the default frame. +Collision objects can be defined based on the reference of another scene. If `parent_frame` is not given or its value is `null`, the scene becomes the default frame. Custom reference frame definitions comprise the following mandatory and optional keys headed by the name of the frame. -- `xyz`: the position of the object -- `rpy`: the orientation of the object -- `parent` or `frame`: the reference frame for the object pose, where `null` implies the world frame. This field is optional. +- `type`: `frame` +- `xyz`: the position of the transform +- `rpy`: the orientation of the transform +- `parent_frame` or `frame`: the reference frame for the custom frame, where `null` implies the world frame. This field is optional. -Similarly, custom reference frames can be defined under a subscene. The default frame is the parent subscene. +Similarly, custom reference frames can be defined with another scene as the parent frame. The default frame is the root scene. ### Loading and Querying the Scene Configuration File @@ -126,13 +130,13 @@ from task_trees.task_scene import Scene ``` The `Scene` class gives every configuration key a unique reference. The reference is a dot-separated string made up of the scene namespace followed by keys of the ancestors of a key-value configuration. For example, the reference `named_poses.home` refers to the `home` child of the `named_poses` node under the root scene (therefore the empty namespace). A configuration key under a subscene has a prepended namespace. For example, `area.positions.start` refers to the value `[0, 0.11, null]` in the above example. -The following code snippet demonstrates the functions `keys_of_config` and `query_config` for listing the children keys and querying for the value of a configuration reference. +The following code snippet demonstrates the functions `key_list_under_config_key` and `query_config` for listing the children keys and querying for the value of a configuration reference. ``` self.the_scene = Scene(os.path.join(os.path.dirname(__file__), 'task_scene.yaml')) # setup name poses - self.named_poses = self.the_scene.keys_of_config('named_poses') + self.named_poses = self.the_scene.key_list_under_config_key('named_poses') for pose_name in self.named_poses: pose_name = 'named_poses.' + pose_name self.arm_commander.add_named_pose(pose_name, self.the_scene.query_config(pose_name)) @@ -147,6 +151,16 @@ In the following compositional move target example, the missing x and y componen DoMoveXYZ('move_xy', True, arm_commander=self.arm_commander, scene=self.the_scene, target_xyz=['positions.default_z', self.generate_random_xyz], reference_frame='area_2'), ``` +### Branches Recognized by the Task Tree Manager + +The named branches of `link`, and `named_poses` have dedicated functions in the scene configuration. + +- The key `link` under a scene with the `type` equals to `box`, `sphere`, and `object` is recognized by the task tree manager `TaskTreesManager` class as definitions of collision objects. In the task trees, collision objects are also recognized as custom reference frames. +- The type of `frames` under the key `link` of a scene is recognized as definitions of custom reference frames. +- The key`named_poses` under the root scene is also recognized by the task tree manager as the named poses adding to the arm commander. + +The `TaskTreesManager` class offers the functions `_define_links`, `_define_frames` and `_define_named_poses` for adding the scenes/collision objects, the custom reference frames, and named poses defined in the scene configuration. + ### Internal Logical References @@ -154,30 +168,58 @@ Subclasses of `SceneConditionalCommanderBehaviour` accepts internal references w The following part of a configuration file is extracted from `task_scene.yaml` [source code](../../demos//pushblock/task_scene.yaml) under `/demos/pushblock`. ``` -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y - positions: - drop: [0.5, 0.3, 0.4] - rotations: - alpha: [3.14, 0, -0.785] - beta: [3.14, 0, 2.358] +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y + rotations: + # alpha: [3.14, null, 0.78] + # beta: [3.14, null, -0.78] + alpha: [3.14, 0, -0.785] + beta: [3.14, 0, 2.358] + push_block: + dimensions: [0.05, 0.05, 0.05] + xyz: [0.0, 0.025, 0.151] + rpy: [0, 0, 0] ... -subscenes: area_1: rotation: rotations.alpha + link: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.4, 0.0, 0.125] + rpy: [0, 0, 1.57] area_2: rotation: rotations.beta + link: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.50, -0.10, 0.125] + rpy: [0, 0, 3.14] area_3: rotation: rotations.beta + link: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.6, 0.0, 0.125] + rpy: [0, 0, -1.57] area_4: rotation: rotations.alpha + link: + type: box + model_file: null + dimensions: [0.1, 0.1, 0.25] + xyz: [0.50, 0.10, 0.125] + rpy: [0, 0, 0] ``` -The key `rotation` of the four subscenes are mapped to either `rotation.alpha` or `rotation.beta`. For example, in resolving the key `area_1.rotation`, if the value is a string, `SceneConditionalCommanderBehaviour` attempts to resolve it once more using the scene configuration. +The key `rotation` of the four area scenes are mapped to either `rotation.alpha` or `rotation.beta`. For example, in resolving the key `area_1.rotation`, if the value is a string, `SceneConditionalCommanderBehaviour` attempts to resolve it once more using the scene configuration. The internal logical reference feature improves the readability and maintainability of the configuration file. @@ -188,15 +230,16 @@ The functions provided by the `Scene` class are listed below. | Functions | Remarks | | --- | --- | | `query_config(self, name:str, default=None)` | The `name` is in the format of dot separated reference | -| `query_position_as_xyz(self, name, default=None)` | Alias of `query_config` for backward compatability | -| `query_rotation_as_rpy(self, name, default=None)` | Alias of `query_config` for backward compatability | -| `get_scene_config(self)` | Return the root scene config in the config file as a dict | -| `get_subscene_config(self, name)`| Return the config of a subscene as a dict | | `exists_config(self, name:str)` | Return True if the configuration name exists | -| `keys_of_config(self, name:str)` | Return the children of a configuration reference as a list of keys | -| `len_of_list_config(self, name:str)` | Return the number of children of a list typed configuration reference | -| `list_object_names(self)` | Return the names of the defined objects as a list | -| `get_object_config(self, object_name: str)` | Return the configuration of an object given its name | +| `key_list_under_config_key(self, key:str)` | Return the children keys of a configuration reference as a list | +| `len_of_key_list_under_config_key(self, key:str)` | Return the number of children under a list-type configuration reference | +| `list_scene_names(self)` | Return the names of the defined scenes as a list | +| `get_scene_config_as_dict(self, scene_name)` | Return the scene config branch in the config file as a dict | +| `get_link_of_scene(self, scene_name)`| Return the link of the scene as a LinkConfig | +| `list_frame_names(self)` | Return the names of the defined frame-type scenes as a list | +| `get_frame_config_as_dict(self, frame_name)` | Return the frame-type scene config branch in the config file as a dict | +| `get_link_of_frame(self, frame_name)`| Return the link of the frame as a LinkConfig | +| `get_named_poses_of_root_as_dict(self, name)`| Return the config of a subscene as a dict | Refer to the API Reference for more details about these functions. @@ -212,22 +255,24 @@ The function `query_config` allows the query of any configuration key using a do For example, tke query key `positions.start` refers to a configuration key under the root scene. ``` -scene: - positions: - start: [1, 2, 3] - end: [2, 3, 5] +scenes: + root: + positions: + start: [1, 2, 3] + end: [2, 3, 5] ``` On the other hand, the query key `grid.1.rotation.alpha` matches the following structure, and it refers to the value [0, 0, 1.57]. The `1` refers to the index `1` of the list-like child under `grid`. ``` -scene: - grid: - - rotation: - alpha: [3.14, 0, 0] - - rotation: - alpha: [0, 0, 1.57] +scenes: + root: + grid: + - rotation: + alpha: [3.14, 0, 0] + - rotation: + alpha: [0, 0, 1.57] ``` -To refer to a configuration key under a subscene, the query key should start with the subscene name. Given the following configuration yaml file. +To refer to a configuration key under a non-root scene, the query key should start with the scene name. Given the following configuration yaml file. ``` subscenes: the_tank: @@ -242,7 +287,6 @@ The query key `the_tank.grid.0.rotation.alpha` refers to the value `[3.14, 0, 0] Application developers can design a suitable configuration structure and use the function `query_config` to rerieve configuration values. - ### Author Dr Andrew Lui, Senior Research Engineer
diff --git a/task_trees/behaviours_move.py b/task_trees/behaviours_move.py index 13b789f..9a2890f 100644 --- a/task_trees/behaviours_move.py +++ b/task_trees/behaviours_move.py @@ -201,8 +201,8 @@ def update_when_ready(self): xyz = self.compute_physical_target(self.target_xyz, None, default_target=current_xyz[:3]) rpy = self.compute_physical_target(self.target_rpy, None, default_target=current_xyz[3:]) else: - xyz = self.compute_physical_target(self.target_xyz, self.the_scene.query_position_as_xyz, default_target=current_xyz[:3]) - rpy = self.compute_physical_target(self.target_rpy, self.the_scene.query_rotation_as_rpy, default_target=current_xyz[3:]) + xyz = self.compute_physical_target(self.target_xyz, self.the_scene.query_config, default_target=current_xyz[:3]) + rpy = self.compute_physical_target(self.target_rpy, self.the_scene.query_config, default_target=current_xyz[3:]) if xyz is None: logger.error(f'DoMoveXYZRPY ({self.name}): invalid position xyz parameter {xyz}') return Status.FAILURE @@ -295,7 +295,7 @@ def update_when_ready(self): if self.the_scene is None: target_rpy = self.compute_physical_target(self.target_rpy) else: - target_rpy = self.compute_physical_target(self.target_rpy, self.the_scene.query_rotation_as_rpy) + target_rpy = self.compute_physical_target(self.target_rpy, self.the_scene.query_config) if self.target_rpy is None or target_rpy is None: logger.error(f'DoRotate ({self.name}): invalid target_rpy parameter {self.target_rpy}') diff --git a/task_trees/demos/pushblock/task_scene.yaml b/task_trees/demos/pushblock/task_scene.yaml index e1ba483..51f4c99 100644 --- a/task_trees/demos/pushblock/task_scene.yaml +++ b/task_trees/demos/pushblock/task_scene.yaml @@ -1,76 +1,89 @@ --- -scene: - named_poses: - stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base - home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base - regions: - workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z - inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y - rotations: - # alpha: [3.14, null, 0.78] - # beta: [3.14, null, -0.78] - alpha: [3.14, 0, -0.785] - beta: [3.14, 0, 2.358] - push_block: - dimensions: [0.05, 0.05, 0.05] - xyz: [0.0, 0.025, 0.151] - rpy: [0, 0, 0] - objects: - block_1: +scenes: + root: + named_poses: + stow: [0.0, -1.244, 0.0, -2.949, 0.0, 1.704, 0.785] # from base + home: [0.0, -0.785, 0.0, -2.36, 0.0, 1.57, 0.785] # from base + regions: + workspace: [-0.5, -0.75, -0.1, 1.0, 0.5, 1.0] # min_x, min_y, min_z, max_x, max_y, max_z + inner: [-0.5, -0.75, 0.30, 0.5] # min_x, min_y, max_x, max_y + rotations: + # alpha: [3.14, null, 0.78] + # beta: [3.14, null, -0.78] + alpha: [3.14, 0, -0.785] + beta: [3.14, 0, 2.358] + push_block: + dimensions: [0.05, 0.05, 0.05] + xyz: [0.0, 0.025, 0.151] + rpy: [0, 0, 0] + + block_1: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, -0.10, 0.175] rpy: [0, 0, 0] - block_2: + block_2: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, -0.10, 0.175] rpy: [0, 0, 0] - block_3: + block_3: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.6, 0.10, 0.175] rpy: [0, 0, 0] - block_4: + block_4: + link: type: box model_file: null dimensions: [0.10, 0.10, 0.35] xyz: [0.4, 0.10, 0.175] rpy: [0, 0, 0] - area_1: + area_1: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.4, 0.0, 0.125] rpy: [0, 0, 1.57] - area_2: + area_2: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, -0.10, 0.125] rpy: [0, 0, 3.14] - area_3: + area_3: + rotation: rotations.beta + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.6, 0.0, 0.125] rpy: [0, 0, -1.57] - area_4: + area_4: + rotation: rotations.alpha + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.10, 0.125] rpy: [0, 0, 0] - area_5: + area_5: + link: type: box model_file: null dimensions: [0.1, 0.1, 0.25] xyz: [0.50, 0.0, 0.125] rpy: [0, 0, 0] -subscenes: area: positions: hover: [null, null, 0.40] @@ -79,12 +92,5 @@ subscenes: centre: [0, -0.015, null] # -0.01 restart: [0, -0.185, null] end: [0, -0.06, null] - area_1: - rotation: rotations.alpha - area_2: - rotation: rotations.beta - area_3: - rotation: rotations.beta - area_4: - rotation: rotations.alpha + diff --git a/task_trees/demos/pushblock/task_trees_manager_pushblock.py b/task_trees/demos/pushblock/task_trees_manager_pushblock.py index 95d518d..9fa6fc8 100644 --- a/task_trees/demos/pushblock/task_trees_manager_pushblock.py +++ b/task_trees/demos/pushblock/task_trees_manager_pushblock.py @@ -83,8 +83,8 @@ def __init__(self, arm_commander:GeneralCommander, spin_period_ms:int=10): # setup visualization in rviz self.scene_to_rviz = SceneToRViz(self.the_scene, arm_commander.get_world_reference_frame(), False) self.scene_to_rviz.display_bbox_regions('regions', rgba=[1.0, 0.0, 1.0, 0.2]) - object_area1 = self.the_scene.get_object_config('area_1') - self.scene_to_rviz.add_custom_transform('area', object_area1.xyz, object_area1.rpy, arm_commander.get_world_reference_frame()) + link_area1 = self.the_scene.get_link_of_scene('area_1') + self.scene_to_rviz.add_custom_transform('area', link_area1.xyz, link_area1.rpy, arm_commander.get_world_reference_frame()) self.scene_to_rviz.display_positions('area.positions', rgba=[1.0, 1.0, 0.0, 0.8]) # setup the robotic manipulation platform through the commander self.arm_commander.abort_move(wait=True) @@ -112,7 +112,7 @@ def setup_objects(self): # the_object = self.the_scene.get_object_config(object_name) # if the_object.type == 'box': # self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) - self._define_objects(self.the_scene, 'box') + self._define_links(self.the_scene, 'box') def generate_the_object(self): self.the_object = dict() @@ -197,19 +197,19 @@ def in_a_region(self, logical_region) -> bool: return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), self.the_scene.query_config(logical_region)) def over_an_object(self, object_name) -> bool: - the_object = self.the_scene.get_object_config(object_name) - the_object_position_as_bbox = [the_object.xyz[0] - the_object.dimensions[0] / 2, the_object.xyz[1] - the_object.dimensions[1] / 2, - the_object.xyz[0] + the_object.dimensions[0] / 2, the_object.xyz[1] + the_object.dimensions[1] / 2] + the_link = self.the_scene.get_link_of_scene(object_name) + the_object_position_as_bbox = [the_link.xyz[0] - the_link.dimensions[0] / 2, the_link.xyz[1] - the_link.dimensions[1] / 2, + the_link.xyz[0] + the_link.dimensions[0] / 2, the_link.xyz[1] + the_link.dimensions[1] / 2] current_pose = self.arm_commander.pose_of_robot_link() return pose_tools.in_region((current_pose.pose.position.x, current_pose.pose.position.y,), the_object_position_as_bbox) def on_or_above_z(self, position) -> bool: current_pose = self.arm_commander.pose_of_robot_link() - return current_pose.pose.position.z > self.the_scene.query_position_as_xyz(position)[2] - 0.05 + return current_pose.pose.position.z > self.the_scene.query_config(position)[2] - 0.05 def below_z(self, position) -> bool: current_pose = self.arm_commander.pose_of_robot_link() - return current_pose.pose.position.z < self.the_scene.query_position_as_xyz(position)[2] - 0.05 + return current_pose.pose.position.z < self.the_scene.query_config(position)[2] - 0.05 def wrong_restart_position(self) -> bool: target = self.query_target_reference_frame() diff --git a/task_trees/scene_to_rviz.py b/task_trees/scene_to_rviz.py index 52a304e..e6f892e 100644 --- a/task_trees/scene_to_rviz.py +++ b/task_trees/scene_to_rviz.py @@ -16,7 +16,7 @@ from geometry_msgs.msg import Pose, PoseStamped, TransformStamped, Transform, Vector3, Quaternion from visualization_msgs.msg import Marker -from task_trees.task_scene import Scene, ObjectConfig +from task_trees.task_scene import Scene, LinkConfig import task_trees.tools.rviz_tools as rviz_tools from task_trees.tools.logging_tools import logger from task_trees.tools.rviz_tools import RvizVisualizer @@ -26,7 +26,7 @@ class SceneToRViz(RvizVisualizer): """ The helper class for managing visualization of scene configs in rviz """ - def __init__(self, the_scene:Scene, base_frame:str=None, publish_objects_transform=True, pub_period:float=0.1): + def __init__(self, the_scene:Scene, base_frame:str=None, publish_scenes_transform=True, pub_period:float=0.1): # check if a ROS node has been initialized node_uri = rospy.get_node_uri() if node_uri is None: @@ -38,18 +38,18 @@ def __init__(self, the_scene:Scene, base_frame:str=None, publish_objects_transfo super(SceneToRViz, self).__init__() self.the_scene = the_scene self.base_frame = base_frame - self.is_transform_publisher = publish_objects_transform + self.is_transform_publisher = publish_scenes_transform self.is_world_publisher = False - self.publishable_object_names = [] + self.publishable_scene_names = [] # setup transform self.tf_broadcaster = tf2_ros.TransformBroadcaster() if self.base_frame is None: self.base_frame = 'world' self.is_world_publisher = True - logger.warning(f'SceneToRViz: no base_frame given, use default base frame "world"') + logger.warning(f'SceneToRViz: no base_frame given, define "world" as the default base_frame') # setup custom transforms - self.custom_transform_object_dict = defaultdict(lambda: None) + self.custom_transform_link_dict = defaultdict(lambda: None) # setup timer self.timer_transform = rospy.Timer(rospy.Duration(pub_period), self._cb_timer_transform) @@ -64,78 +64,64 @@ def _cb_timer_transform(self, event): self.tf_broadcaster.sendTransform(transform_stamped) self.is_world_publisher = False if self.is_transform_publisher: - self._pub_transform_all_objects() + self._pub_transform_specified_links() self._pub_custom_transform() # internal function: publish the transform of objects in the scene config subject to the list of publishable objects - def _pub_transform_all_objects(self): - for object_name in the_scene.list_object_names(): - if self.publishable_object_names is None or object_name in self.publishable_object_names: - the_object = the_scene.get_object_config(object_name) - xyzrpy = the_object.xyz + the_object.rpy - self._pub_transform_object(object_name, xyzrpy, the_object.frame) + def _pub_transform_specified_links(self): + for scene_name in self.the_scene.list_scene_names(): + if self.publishable_scene_names is None or scene_name in self.publishable_scene_names: + link_config = self.the_scene.get_link_of_scene(scene_name) + xyzrpy = link_config.xyz + link_config.rpy + self._pub_transform_link(scene_name, xyzrpy, link_config.parent_frame) # internal function: publish the transform of custom objects def _pub_custom_transform(self): - for the_object in self.custom_transform_object_dict.values(): - xyzrpy = the_object.xyz + the_object.rpy - self._pub_transform_object(the_object.name, xyzrpy, the_object.frame) + link_config:LinkConfig + for link_config in self.custom_transform_link_dict.values(): + xyzrpy = link_config.xyz + link_config.rpy + self._pub_transform_link(link_config.name, xyzrpy, link_config.parent_frame) # internal function: publish the transform of a specific named object - def _pub_transform_object(self, name, pose, frame=None): + def _pub_transform_link(self, name, pose, parent_frame=None): """ publish the transform of an object - :param name: name of the object + :param name: name of the link :type name: str - :param pose: the pose of the object + :param pose: the pose of the link :type pose: Pose, PoseStamped, list of 6 or 7 - :param frame: the frame against which the pose is defined, ignored if PoseStamped is provided, defaults to None - :type frame: str, optional + :param parent_frame: the parent frame of the pose, ignored if PoseStamped is provided, defaults to the base_frame + :type parent_frame: str, optional """ - frame = self.base_frame if frame is None else frame + parent_frame = self.base_frame if parent_frame is None else parent_frame if type(pose) in [list, tuple]: - pose_stamped = list_to_pose_stamped(pose, frame) + pose_stamped = list_to_pose_stamped(pose, parent_frame) elif type(pose) == Pose: pose_stamped = PoseStamped() - pose_stamped.header.frame_id = frame + pose_stamped.header.frame_id = parent_frame pose_stamped.header.stamp = rospy.Time.now() pose_stamped.pose = pose elif type(pose) == PoseStamped: - frame = pose.header.frame_id + parent_frame = pose.header.frame_id pose_stamped = pose else: rospy.logerr(f'{__class__.__name__}: parameter (pose) is not list of length 6 or 7 or a Pose object -> fix the parameter at behaviour construction') raise TypeError(f'A parameter is invalid') self.tf_broadcaster.sendTransform(pose_stamped_to_transform_stamped(pose_stamped, name)) - # try: - # # frame is ignored if pose is PoseStamped - # if type(pose) == Pose: - # xyzq = pose_to_xyzq(pose) - # elif type(pose) == PoseStamped: - # frame = pose.header.frame_id - # xyzq = pose_to_xyzq(pose.pose) - # else: - # xyzq = list_to_xyzq(pose) - # except Exception: - # logger.error(f'{__class__.__name__}: parameter (pose) is not list of length 6 or 7 or a Pose object -> fix the parameter at behaviour construction') - # raise - # frame = self.base_frame if frame is None else frame - # self.tf_pub.sendTransform(xyzq[:3], xyzq[3:], rospy.Time.now(), name, frame) - # -------------------------------- - def set_publish_objects_transform(self, object_names:list=None): - """ specify the names of the objects that are to be included in transform publish + def set_publish_links_transform(self, link_names:list=None): + """ specify the names of the links that are to be included in transform publish - :param object_names: a list of object names to be included, defaults to None - :type object_names: list, optional + :param link_names: a list of links names to be included, defaults to None + :type link_names: list, optional """ - if object_names is not None and type(object_names) not in [tuple, list]: + if link_names is not None and type(link_names) not in [tuple, list]: logger.error(f'SceneToRViz (set_publish_transform): parameter (object_names) must be a list of strings or None') raise AssertionError('Parameter (object_names) type is invalid') - self.publishable_object_names = object_names + self.publishable_scene_names = link_names - def display_bbox_regions(self, config_key:str, plane:str='xy', rgba=[1.0, 0.0, 1.0, 0.2]) -> None: + def display_bbox_regions(self, config_key:str, plane:str='xy', reference_frame=None, rgba=[1.0, 0.0, 1.0, 0.2]) -> None: """ display as a bbox 2d or 3d region specified by the key or set of keys under the config_key parameter along the plane :param config_key: the name of the config key in the scene configuration, which is either the key itself or a parent of keys @@ -149,8 +135,7 @@ def display_bbox_regions(self, config_key:str, plane:str='xy', rgba=[1.0, 0.0, 1 if value is None: logger.warning(f'SceneToRViz (register_regions_as_bbox): Non-existent key {config_key}') return - subscene = self.the_scene.get_subscene_of_config_name(config_key) - reference_frame = subscene if subscene is not None else self.base_frame + reference_frame = reference_frame if reference_frame is not None else self.base_frame if plane is None: plane = 'xy' # default to xy if type(value) in [list, tuple] and len(value) in [4, 6]: @@ -168,7 +153,7 @@ def display_bbox_regions(self, config_key:str, plane:str='xy', rgba=[1.0, 0.0, 1 continue logger.warning(f'SceneToRViz (display_bbox_regions): region ({key}) bbox should be a list of 4 or 6') - def display_rotations(self, config_key:str, arrow_length:float=1.0, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: + def display_rotations(self, config_key:str, arrow_length:float=1.0, reference_frame=None, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: """ display as an arrow the rotation specified by config_key :param config_key: the name of the config key in the scene configuration, which is either the key itself or a parent of keys @@ -181,9 +166,8 @@ def display_rotations(self, config_key:str, arrow_length:float=1.0, rgba=[1.0, 0 value = self.the_scene.query_config(config_key, None) if value is None: logger.warning(f'SceneToRViz (register_positions): Non-existent key {config_key}') - return - subscene = self.the_scene.get_subscene_of_config_name(config_key) - reference_frame = subscene if subscene is not None else self.base_frame + return + reference_frame = reference_frame if reference_frame is not None else self.base_frame if type(value) in [list, tuple] and len(value) == 3: value = {' ': value} if type(value) == dict: @@ -197,7 +181,7 @@ def display_rotations(self, config_key:str, arrow_length:float=1.0, rgba=[1.0, 0 logger.warning(f'SceneToRViz (display_rotations): rotation ({key}) should be a list of 3') - def display_positions(self, config_key:str, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: + def display_positions(self, config_key:str, reference_frame=None, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: """ display one or more positions or partial definitions, that a sphere represents full specification, a line represents a position with a null value, and a plane represents a position with two null values @@ -209,9 +193,8 @@ def display_positions(self, config_key:str, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: value = self.the_scene.query_config(config_key, None) if value is None: logger.warning(f'SceneToRViz (display_positions): Non-existent key {config_key}') - return - subscene = self.the_scene.get_subscene_of_config_name(config_key) - reference_frame = subscene if subscene is not None else self.base_frame + return + reference_frame = reference_frame if reference_frame is not None else self.base_frame if type(value) == list and len(value) == 3: value = {' ': value} if type(value) == dict: @@ -249,42 +232,41 @@ def display_positions(self, config_key:str, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: marker = rviz_tools.create_axisplane_marker(f'{config_key}.{key}', id, bbox, xyz[index], reference_frame, plane, rgba=rgba) self.add_persistent_marker(marker) - def display_object(self, config_key:str, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: - """ display one object associated with the config key + def display_link(self, scene_name:str, reference_frame=None, rgba=[1.0, 0.0, 0.0, 0.8]) -> None: + """ display the link associated with the config key - :param config_key: the name of the config key in the scene configuration, which is either the key itself or a parent of keys - :type config_key: str + :param scene_name: the name of a scene + :type scene_name: str :param rgba: the colour of the objects defaults to [1.0, 0.0, 1.0, 0.2] :type rgba: list, optional """ - value = self.the_scene.query_config(config_key, None) + value = self.the_scene.query_config(scene_name, None) if value is None: - logger.warning(f'SceneToRViz (display_objects): Non-existent key {config_key}') + logger.warning(f'SceneToRViz (display_objects): Non-existent key {scene_name}') return - subscene = self.the_scene.get_subscene_of_config_name(config_key) - reference_frame = subscene if subscene is not None else self.base_frame if type(value) != dict: - logger.warning(f'SceneToRViz (display_objects): the key {config_key} is not associated with a single object in a dict structure') + logger.warning(f'SceneToRViz (display_objects): the key {scene_name} is not associated with a single object in a dict structure') return - the_object = self.the_scene._create_object_config(value) - if the_object.type == 'box': - xyzrpy = the_object.xyz + the_object.rpy - marker = rviz_tools.create_cube_marker_from_xyzrpy(f'object.{config_key}', 0, xyzrpy, reference_frame, the_object.dimensions, rgba=rgba) + reference_frame = reference_frame if reference_frame is not None else self.base_frame + the_link:LinkConfig = self.the_scene.get_link_of_scene(scene_name) + if the_link.type == 'box': + xyzrpy = the_link.xyz + the_link.rpy + marker = rviz_tools.create_cube_marker_from_xyzrpy(f'object.{scene_name}', 0, xyzrpy, reference_frame, the_link.dimensions, rgba=rgba) self.add_persistent_marker(marker) - elif the_object.type == 'sphere': - marker = rviz_tools.create_sphere_marker(f'object.{config_key}', 0, the_object.xyz, reference_frame, the_object.dimensions, rgba=rgba) + elif the_link.type == 'sphere': + marker = rviz_tools.create_sphere_marker(f'object.{scene_name}', 0, the_link.xyz, reference_frame, the_link.dimensions, rgba=rgba) self.add_persistent_marker(marker) - elif the_object.type == 'object': + elif the_link.type == 'object': try: - model_file = PackageFile.resolve_to_file_or_http_uri(the_object.model_file) + model_file = PackageFile.resolve_to_file_or_http_uri(the_link.model_file) except Exception as ex: - logger.warning(f'SceneToRViz (display_objects): Invalid model_file for object ({the_object.model_file}): {ex}') + logger.warning(f'SceneToRViz (display_objects): Invalid model_file for object ({the_link.model_file}): {ex}') return - xyzrpy = the_object.xyz + the_object.rpy - marker = rviz_tools.create_mesh_marker(f'object.{config_key}', 0, model_file, xyzrpy, reference_frame, the_object.dimensions, rgba=rgba) + xyzrpy = the_link.xyz + the_link.rpy + marker = rviz_tools.create_mesh_marker(f'object.{scene_name}', 0, model_file, xyzrpy, reference_frame, the_link.dimensions, rgba=rgba) self.add_persistent_marker(marker) else: - logger.warning(f'SceneToRViz (display_objects): Invalid object type {the_object.type} of the key {config_key}') + logger.warning(f'SceneToRViz (display_objects): Invalid object type {the_link.type} of the key {scene_name}') # ------------------------------------------------------------------------ # Functions for adding custom transforms for visualization @@ -301,7 +283,7 @@ def add_custom_transform(self, name, xyz, rpy, frame) -> None: if name is None or xyz is None or rpy is None or frame is None: logger.error(f'SceneToRViz (add_custom_transform): No parameter can be None') raise AssertionError('A parameter is none') - self.custom_transform_object_dict[name] = ObjectConfig(name, None, None, None, xyz, rpy, frame) + self.custom_transform_link_dict[name] = LinkConfig(name, None, None, None, xyz, rpy, frame) def update_custom_transform_pose(self, name, xyz=None, rpy=None, frame=None) -> None: """ Update the pose of a custom transform @@ -311,7 +293,7 @@ def update_custom_transform_pose(self, name, xyz=None, rpy=None, frame=None) -> :param rpy: the updated rpy, defaults to None meaning unchanged :param frame: the updated frame, defaults to None meaning unchanged """ - the_object:ObjectConfig = self.custom_transform_object_dict[name] + the_object:LinkConfig = self.custom_transform_link_dict[name] if the_object is None: logger.warning(f'__name__ (update_custom_transform_pose): the custom transform name {name} is not found') return False @@ -326,20 +308,20 @@ def remove_custom_transform(self, name=None): :param name: the name of the transform to be removed, or None to remove all """ if name is None: - self.custom_transform_object_dict.clear() - elif name in self.custom_transform_object_dict: - del self.custom_transform_object_dict[name] + self.custom_transform_link_dict.clear() + elif name in self.custom_transform_link_dict: + del self.custom_transform_link_dict[name] # ----------------------------------------------------------- # test program if __name__ == '__main__': the_scene = Scene(os.path.join(os.path.dirname(__file__), '../demos/gridscan/task_scene.yaml')) scene_to_rviz = SceneToRViz(the_scene, 'world') - scene_to_rviz.set_publish_objects_transform(None) + scene_to_rviz.set_publish_links_transform(None) scene_to_rviz.display_bbox_regions('regions') scene_to_rviz.display_bbox_regions('tank.bbox', rgba=[0.2, 0.8, 0.4, 0.2]) scene_to_rviz.display_rotations('tank.rotations', arrow_length=0.5, rgba=[0.2, 0.0, 1.0, 0.8]) scene_to_rviz.display_positions('tank.positions', rgba=[1.0, 1.0, 0.0, 0.8]) # test display objects - scene_to_rviz.display_object('objects.tank', rgba=[1.0, 0.2, 0.2, 0.8]) + scene_to_rviz.display_link('objects.tank', rgba=[1.0, 0.2, 0.2, 0.8]) rospy.spin() \ No newline at end of file diff --git a/task_trees/task_scene.py b/task_trees/task_scene.py index aeb5fac..097a6bf 100644 --- a/task_trees/task_scene.py +++ b/task_trees/task_scene.py @@ -14,9 +14,9 @@ from task_trees.tools.logging_tools import logger # namedtuples for internal data structure for higher readability -ObjectConfig = namedtuple('ObjectConfig', ['name', 'type', 'model_file', 'dimensions', 'xyz', 'rpy', 'frame']) # representing an object -FrameConfig = namedtuple('FrameConfig', ['name', 'xyz', 'rpy', 'parent']) -SceneName = namedtuple('SceneName', ['subscene', 'path']) +SceneKeyParts = namedtuple('SceneKeyParts', ['scene', 'parts']) +LinkConfig = namedtuple('LinkConfig', ['name', 'type', 'model_file', 'dimensions', 'xyz', 'rpy', 'parent_frame']) # representing the scene +FrameConfig = namedtuple('FrameConfig', ['name', 'type', 'xyz', 'rpy', 'parent_frame']) class Scene(): """ The base model provides mapping between physical/joint-space pose and various named/logical poses. @@ -31,288 +31,227 @@ def __init__(self, scene_config_file:str = None): if scene_config_file is None: scene_config_file = os.path.join(os.path.dirname(__file__), '../demos/gridscan/task_scene.yaml') with open(scene_config_file, 'r') as f: - config = yaml.safe_load(f) - self.config = config - # if the default scene is defined in the file, define a variable for the default - self.scene_config = self.config['scene'] if 'scene' in self.config else None - # if subscenes are defined in the file, define another variable for that - self.subscene_config = self.config['subscenes'] if 'subscenes' in self.config else None - # preprocess the objects and frames - self.objects_map = self._process_objects() - self.frames_map = self._process_frames() + self.config_file_root = yaml.safe_load(f) + # print warning message + self._print_warning() + # valiate that there is a key 'scenes' + if 'scenes' not in self.config_file_root: + logger.error(f'The config file should contain a "scenes" key at the top level') + raise AssertionError(f'Invalid yaml config file: missing the key "scenes"') + self.scenes_branch = self.config_file_root['scenes'] + # valiate that there is a 'root' scene + if 'root' not in self.scenes_branch: + logger.error(f'The config file should contain a "root" scene defined under "scenes" key at the top level') + raise AssertionError(f'Invalid yaml config file: missing the "root" scene') + self.root_scene_config = self.scenes_branch['root'] + # model parameters + self.scenes_dict = defaultdict(lambda: None) + self.scenes_linkconfig = defaultdict(lambda: None) + self.frames_config = defaultdict(lambda: None) + # iterates all scenes in the config file + for key in self.scenes_branch.keys(): + self.scenes_dict[key] = self.scenes_branch[key] + link_config = self._extract_link_config(key, self.scenes_branch[key]) + if link_config is not None: + if link_config.type == 'frame': + self.frames_config[key] = link_config + else: + self.scenes_linkconfig[key] = link_config - # internal function: parse a dot-separated config name (path) into two parts, the subscene and a list of the path - def _parse_config_name(self, config_name:str) -> SceneName: - if config_name is None: - return None - parts = config_name.split('.') - # print(f'_parse_config_name: {config_name} {parts} {parts[0]} {self.subscene_config}') - if self.subscene_config is not None and len(parts) > 1 and (parts[0] in self.subscene_config.keys()): # one of the subscenes - return SceneName(parts[0], parts[1:]) + # internal function: parse a dot-separated config kay (path) into scene name and a list of the parts + def _parse_config_key(self, config_key:str) -> SceneKeyParts: + assert config_key is not None, 'Parameter (config_key) should not be None' + parts = config_key.split('.') + assert len(parts) >= 1, 'Parameter (config_key) is empty' + scene_name = parts[0] + if scene_name not in self.scenes_dict: + # the first name is not a known scene, assume that the root scene is inferred + scene_name = 'root' + return SceneKeyParts(scene_name, parts) else: - return SceneName(None, parts) + return SceneKeyParts(scene_name, parts[1:]) # ------------------------------------------- - # functions for extracting objects and frames + # internal functions for extracting objects and frames + def _extract_link_config(self, scene_name:str, scene_dict:dict) -> LinkConfig: + return self._create_link_config(scene_name, scene_dict.get('link', None)) + # internal function: extract and validate an object definition - def _create_object_config(self, obj:dict) -> ObjectConfig: - if obj is None: - return None - if 'name' not in obj: - logger.error(f'Scene (_process_an_object): the keys in the object config contains no "name"') + def _create_link_config(self, scene_name:str, link_dict:dict) -> LinkConfig: + if link_dict is None or scene_name is None: return None - if 'type' not in obj or 'xyz' not in obj or 'rpy' not in obj or 'dimensions' not in obj: - logger.error(f'Scene (_process_an_object): the keys in the object config ({obj["name"]}) contains no "type", "xyz", "rpy", "dimensions"') + # if 'name' not in link_dict: + # logger.error(f'Scene (_process_an_object): the keys in the link config contains no "name"') + # return None + if 'type' not in link_dict or 'xyz' not in link_dict or 'rpy' not in link_dict: + logger.error(f'Scene (_process_an_object): the keys in the scene config ({link_dict["name"]}) contains no "type", "xyz", "rpy"') return None - if obj['type'] not in ['box', 'sphere', 'object']: - logger.error(f'Scene (_process_an_object): the type of the object ({obj["name"]}) is not one of "sphere", "box", or "object"') - return None - model_file = obj.get('model_file', None) - if obj['type'] == 'object' and model_file is None: - logger.error(f'Scene (_process_an_object): the object ({obj["name"]}) expects a valid "model_file" key') + if link_dict['type'] not in ['box', 'sphere', 'object', 'frame']: + logger.error(f'Scene (_process_an_object): the type of the scene ({link_dict["name"]}) is not one of "sphere", "box", "frame", or "object"') + return None + if link_dict['type'] in ['box', 'sphere', 'object'] and 'dimensions' not in link_dict: + logger.error(f'Scene (_process_an_object): the keys in the box, sphere or object typed scene link ({link_dict["name"]}) contains no "dimensions"') + return None + model_file = link_dict.get('model_file', None) + if link_dict['type'] == 'object' and model_file is None: + logger.error(f'Scene (_process_an_object): the scene link ({link_dict["name"]}) expects a valid "model_file" key') return None - return ObjectConfig(obj['name'], obj['type'], model_file, obj['dimensions'], obj['xyz'], obj['rpy'], obj.get('frame', None)) - - def _extract_objects_dict(self, source_object_config:dict, the_map:dict, subscene:str=None) -> ObjectConfig: - # assume object_config is a dict - for name in source_object_config: - obj = source_object_config[name] - obj['name'] = name - if 'frame' not in obj: - obj['frame'] = subscene - object_config = self._create_object_config(obj) - if object_config: - if subscene is None: - the_map[name] = object_config - else: - the_map[f'{subscene}.{name}'] = object_config - - def _extract_objects_list(self, source_object_config:list, the_map:dict, subscene:str=None) -> ObjectConfig: - # assume object_config is a list - for obj in source_object_config: - name = obj['name'] - if 'frame' not in obj: - obj['frame'] = subscene - object_config = self._create_object_config(obj) - if object_config: - if subscene is None: - the_map[name] = object_config - else: - the_map[f'{subscene}.{name}'] = object_config + parent_name = link_dict.get('parent_frame', link_dict.get('frame', None)) # both parent_frame and frame are acceptable + if parent_name is not None and parent_name == 'root' and 'root' not in self.scenes_linkconfig: + parent_name = None + dimensions = link_dict.get('dimensions', None) + return LinkConfig(scene_name, link_dict['type'], model_file, dimensions, link_dict['xyz'], link_dict['rpy'], parent_name) def _print_warning(self) -> None: if not hasattr(self, 'warned'): self.warned = True - logger.warning(f'''Scene configuration file format changed. - Objects are defined using a dict structure instead of a list structure. - objects: - name: - type: ... - xyz: ... + logger.warning(f'''Scene configuration file format changed in task_trees 0.2.x. + The subscene concept is removed and scenes are equal in the yaml file + scenes: + scene_1_name: + link: ... + other_params: ... ... - The old format will not be acceptable in the future. Update the file is recommended.''') - - # internal function: returns a map of (name, ObjectConfig) of objects defined in the config file - def _process_objects(self) -> dict: - the_map = dict() - # process the main scene - if self.scene_config is not None and 'objects' in self.scene_config: - object_config = self.scene_config['objects'] - if type(object_config) in (tuple, list): - self._extract_objects_list(object_config, the_map) - self._print_warning() - else: - self._extract_objects_dict(object_config, the_map) - - # process each subscene - if self.subscene_config is not None: - for subscene in self.subscene_config.keys(): - if self.subscene_config[subscene] is None: - continue - if 'objects' in self.subscene_config[subscene]: - object_config = self.subscene_config[subscene]['objects'] - if type(object_config) in (tuple, list): - self._extract_objects_list(object_config, the_map, subscene) - self._print_warning() - else: - self._extract_objects_dict(object_config, the_map, subscene) - return the_map - - def _extract_frames_dict(self, source_frame_config:dict, the_map:dict, subscene:str=None) -> FrameConfig: - # assume object_config is a dict - for name in source_frame_config: - obj = source_frame_config[name] - obj['name'] = name - if 'frame' in obj: - obj['parent'] = obj['frame'] - if 'parent' not in obj: - obj['parent'] = subscene - if 'xyz' not in obj or 'rpy' not in obj: - logger.error(f'Scene (_extract_frames_dict): the keys in the object config ({obj["name"]}) contains no "xyz" or "rpy"') - return None - frame_config = FrameConfig(obj['name'], obj['xyz'], obj['rpy'], obj['parent']) - if frame_config: - if subscene is None: - the_map[name] = frame_config - else: - the_map[f'{subscene}.{name}'] = frame_config - - # internal function: returns a map of (name, FrameConfig) of frames defined in the config file - def _process_frames(self) -> dict: - the_map = dict() - # process the main scene - if self.scene_config is not None and 'frames' in self.scene_config: - frame_config = self.scene_config['frames'] - self._extract_frames_dict(frame_config, the_map) - # process each subscene - if self.subscene_config is not None: - for subscene in self.subscene_config.keys(): - if self.subscene_config[subscene] is None: - continue - if 'frames' in self.subscene_config[subscene]: - frame_config = self.subscene_config[subscene]['frames'] - self._extract_frames_dict(frame_config, the_map, subscene) - return the_map - + scene_2_name: + link: ... + The API is also changed. Please refer to the documentation''') + # ------------------------------------------- - # model functions + # config query functions - # returns the value of a named config given as a dot-separated path (e.g. table.objects.lamp.position) - def query_config(self, name:str, default=None): + # returns the value of a named config given as a dot-separated key (e.g. table.objects.lamp.position) + def query_config(self, key:str, default=None): """ returns the value of any named config given as a dot-separated path - :param name: the dot-separated path - :type name: str - :param default: the default value if nothing is found in the path, defaults to None + :param key: the dot-separated key, the root scene may have the "root" omitted + :type key: str + :param default: the default value if nothing is found in the key, defaults to None :type default: any :return: the value of the config :rtype: any """ - scene_name = self._parse_config_name(name) - if scene_name is None: + the_parsed_key = self._parse_config_key(key) + if the_parsed_key is None: return default - if scene_name.subscene is not None: - pointer = self.subscene_config[scene_name.subscene] - else: - pointer = self.scene_config - for item in scene_name.path: + pointer = self.scenes_dict[the_parsed_key.scene] + for item in the_parsed_key.parts: if item.isnumeric(): try: item = int(item) except: - logger.error(f'query_config: part of query key {name} contains an non-integer index {item}') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains an non-integer index {item}') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') if item < 0 or item >= len(pointer): - logger.error(f'query_config: part of query key {name} contains an out-of-range integer index {item} ') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains an out-of-range integer index {item} ') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') if type(pointer) not in (tuple, list): - logger.error(f'query_config: part of query key {name} contains an invalid index {item}, expecting a string key') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains an invalid index {item}, expecting a string key') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') pointer = pointer[item] else: if type(pointer) != dict: - logger.error(f'query_config: part of query key {name} contains an invalid index {item}, expecting an integer') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains an invalid index {item}, expecting an integer') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') if item not in pointer: - logger.error(f'query_config: part of query key {name} contains a non-existent index {item}') - raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + logger.error(f'query_config: part of query key {the_parsed_key} contains a non-existent index {item}') + raise AssertionError(f'query_config: Non-existent config name "{the_parsed_key}", which contains an invalid index {item}') pointer = pointer[item] - return pointer - - # alias for backward compatibility query_config - def query_position_as_xyz(self, name, default=None): - return self.query_config(name, default) - - def query_rotation_as_rpy(self, name, default=None): - return self.query_config(name, default) - - # returns the subscene name if the config is a subscene config - def get_subscene_of_config_name(self, name) -> str: - """ returns the subscene name if the config is one belonging to a subscene - :return: the name of a subscene or None - :rtype: str - """ - scene_name = self._parse_config_name(name) - if scene_name is None: - return None - return scene_name.subscene - - # returns the root scene config as a dict - def get_scene_config(self) -> dict: - """ returns the main scene config in the config file as a dict - :return: the content in the config file - :rtype: dict - """ - return self.scene_config - - # returns a subscene config as a dict - def get_subscene_config(self, subscene_name) -> dict: - """ returns the config of a subscene in the config file as a dict - :return: the content in the config file about the subscene or None - :rtype: dict - """ - if subscene_name not in self.subscene_config: - return None - return self.subscene_config[subscene_name] + return pointer # returns True of the given config name exists - def exists_config(self, name:str) -> bool: + def exists_config(self, key:str) -> bool: """ returns True of the given config name exists - :param name: The config name - :type name: str + :param key: The config name + :type key: str :return: True if the given config name exists :rtype: bool """ - return self.query_config(name) != None + return self.query_config(key) != None - # returns a list of keys specified under the config name - def keys_of_config(self, name:str) -> list: + # returns a list of keys specified under the config key if it is a dictionary or an empty list + def key_list_under_config_key(self, key:str) -> list: """ returns a list of keys specified under the config name or an empty list - :param name: The config name - :type name: str + :param key: The config name + :type key: str :return: a list of keys specified under the config name :rtype: list """ - pointer = self.query_config(name) + pointer = self.query_config(key) if pointer is None or type(pointer) not in [dict, map]: return [] return list(pointer.keys()) - # returns the length of the list under the config name or an empty list - def len_of_list_config(self, name:str) -> int: + # returns the length of the list if the config key is a list or an empty list + def len_of_key_list_under_config_key(self, key:str) -> int: """ returns the length of the list under the config name - :param name: The config name - :type name: str + :param key: The config name + :type key: str :return: the length of the list the config name :rtype: int """ - pointer = self.query_config(name) + pointer = self.query_config(key) if pointer is None or type(pointer) not in [tuple, list]: return 0 return len(pointer) - # list the object names - def list_object_names(self) -> list: + # list the scene names + def list_scene_names(self) -> list: """ return the list of objects defined in the scene configuration :return: a list of object names as strings :rtype: list """ - if self.objects_map is None: - return [] - return self.objects_map.keys() + return list(self.scenes_dict.keys()) + + # return scene config given the scene name + def get_scene_config_as_dict(self, scene_name: str) -> dict: + """ return the scene configuration as a dict, or None if the scene not exists + :param scene_name: name of the object + :type scene_name: str + :return: the configuration of the scene as a dict or None if not exists + :rtype: dict + """ + return self.scenes_dict.get(scene_name, None) # return config given the object name - def get_object_config(self, object_name: str) -> ObjectConfig: + def get_link_of_scene(self, scene_name: str) -> LinkConfig: """ return the object configuration as ObjectConfig tuple, or None if the name not exists - :param object_name: name of the object - :type object_name: str - :return: the configuration as a ObjectConfig or None if not exists - :rtype: ObjectConfig + :param scene_name: name of the scene + :type scene_name: str + :return: the LinkConfig of the scene or None if not exists + :rtype: LinkConfig """ - return self.objects_map.get(object_name) + return self.scenes_linkconfig.get(scene_name, None) + + # list the frame names + def list_frame_names(self) -> list: + """ return the list of frame type scene defined in the scene configuration + :return: a list of frame names as strings + :rtype: list + """ + return list(self.frames_config.keys()) + # return scene config given the scene name + def get_frame_config_as_dict(self, frame_name: str) -> dict: + """ return the frame configuration as a dict, or None if the scene not exists + :param frame_name: name of the frame + :type frame_name: str + :return: the configuration of the frame type scene or None if not exists + :rtype: dict + """ + return self.scenes_dict.get(frame_name, None) + + # return config given the object name + def get_link_of_frame(self, frame_name: str) -> LinkConfig: + """ return the object configuration as ObjectConfig tuple, or None if the name not exists + :param frame_name: name of the frame + :type frame_name: str + :return: the LinkConfig of the frame or None if not exists + :rtype: LinkConfig + """ + return self.frames_config.get(frame_name, None) + # return the named poses as a dict - def get_named_poses_as_dict(self) -> dict: + def get_named_poses_of_root_as_dict(self) -> dict: """ return the named poses defined in the scene configuration as a dict :return: dict containing key value pairs of named poses @@ -324,25 +263,7 @@ def get_named_poses_as_dict(self) -> dict: result[pose_name] = self.query_config(pose_name) return result - # list the frame names - def list_frame_names(self) -> list: - """ return the list of frames defined in the scene configuration - :return: a list of frames names as strings - :rtype: list - """ - if self.frames_map is None: - return [] - return self.frames_map.keys() - # return config given the object name - def get_frame_config(self, frame_name: str) -> FrameConfig: - """ return the object configuration as FrameConfig tuple, or None if the name not exists - :param frame_name: name of the object - :type frame_name: str - :return: the configuration as a FrameConfig or None if not exists - :rtype: FrameConfig - """ - return self.frames_map.get(frame_name) # ----------------------------------------------------------- # test program @@ -364,16 +285,4 @@ def get_frame_config(self, frame_name: str) -> FrameConfig: for rotation in rotations: print(f'rotation {rotation}: {the_scene.query_config(rotation)}') - objects = the_scene.list_object_names() - for object_name in objects: - print(f'object {object_name}: {the_scene.get_object_config(object_name)}') - - the_object = the_scene.query_config('objects.tank') - print(the_object) - - print(f'tank tile step_sizes: {the_scene.query_config("tank.tile")}') - - keys = ['grid.0.rotation.alpha', 'grid.1.rotation.alpha', 'grid.2.rotation.alpha'] - for key in keys: - print(f'key {key}', the_scene.query_config(key)) \ No newline at end of file diff --git a/task_trees/task_scene_old.py b/task_trees/task_scene_old.py new file mode 100644 index 0000000..aeb5fac --- /dev/null +++ b/task_trees/task_scene_old.py @@ -0,0 +1,379 @@ +# Copyright 2024 - Andrew Kwok Fai LUI, +# Robotics and Autonomous Systems Group, REF, RI +# and the Queensland University of Technology + +__author__ = 'Andrew Lui' +__copyright__ = 'Copyright 2024' +__license__ = 'GPL' +__version__ = '1.0' +__email__ = 'ak.lui@qut.edu.au' +__status__ = 'Development' + +import yaml, os, numbers +from collections import namedtuple, defaultdict +from task_trees.tools.logging_tools import logger + +# namedtuples for internal data structure for higher readability +ObjectConfig = namedtuple('ObjectConfig', ['name', 'type', 'model_file', 'dimensions', 'xyz', 'rpy', 'frame']) # representing an object +FrameConfig = namedtuple('FrameConfig', ['name', 'xyz', 'rpy', 'parent']) +SceneName = namedtuple('SceneName', ['subscene', 'path']) + +class Scene(): + """ The base model provides mapping between physical/joint-space pose and various named/logical poses. + """ + def __init__(self, scene_config_file:str = None): + """the constructor + :param scene_config_file: the path to the task scene configuration file, defaults to None, which then the ros parameter + 'scene_config_file' will be used as the path if exists, and the task_scene.yaml file in the config folder is the last resort + :type scene_config_file: str, optional + """ + # load data from the config yaml file + if scene_config_file is None: + scene_config_file = os.path.join(os.path.dirname(__file__), '../demos/gridscan/task_scene.yaml') + with open(scene_config_file, 'r') as f: + config = yaml.safe_load(f) + self.config = config + # if the default scene is defined in the file, define a variable for the default + self.scene_config = self.config['scene'] if 'scene' in self.config else None + # if subscenes are defined in the file, define another variable for that + self.subscene_config = self.config['subscenes'] if 'subscenes' in self.config else None + # preprocess the objects and frames + self.objects_map = self._process_objects() + self.frames_map = self._process_frames() + + # internal function: parse a dot-separated config name (path) into two parts, the subscene and a list of the path + def _parse_config_name(self, config_name:str) -> SceneName: + if config_name is None: + return None + parts = config_name.split('.') + # print(f'_parse_config_name: {config_name} {parts} {parts[0]} {self.subscene_config}') + if self.subscene_config is not None and len(parts) > 1 and (parts[0] in self.subscene_config.keys()): # one of the subscenes + return SceneName(parts[0], parts[1:]) + else: + return SceneName(None, parts) + + # ------------------------------------------- + # functions for extracting objects and frames + + # internal function: extract and validate an object definition + def _create_object_config(self, obj:dict) -> ObjectConfig: + if obj is None: + return None + if 'name' not in obj: + logger.error(f'Scene (_process_an_object): the keys in the object config contains no "name"') + return None + if 'type' not in obj or 'xyz' not in obj or 'rpy' not in obj or 'dimensions' not in obj: + logger.error(f'Scene (_process_an_object): the keys in the object config ({obj["name"]}) contains no "type", "xyz", "rpy", "dimensions"') + return None + if obj['type'] not in ['box', 'sphere', 'object']: + logger.error(f'Scene (_process_an_object): the type of the object ({obj["name"]}) is not one of "sphere", "box", or "object"') + return None + model_file = obj.get('model_file', None) + if obj['type'] == 'object' and model_file is None: + logger.error(f'Scene (_process_an_object): the object ({obj["name"]}) expects a valid "model_file" key') + return None + return ObjectConfig(obj['name'], obj['type'], model_file, obj['dimensions'], obj['xyz'], obj['rpy'], obj.get('frame', None)) + + def _extract_objects_dict(self, source_object_config:dict, the_map:dict, subscene:str=None) -> ObjectConfig: + # assume object_config is a dict + for name in source_object_config: + obj = source_object_config[name] + obj['name'] = name + if 'frame' not in obj: + obj['frame'] = subscene + object_config = self._create_object_config(obj) + if object_config: + if subscene is None: + the_map[name] = object_config + else: + the_map[f'{subscene}.{name}'] = object_config + + def _extract_objects_list(self, source_object_config:list, the_map:dict, subscene:str=None) -> ObjectConfig: + # assume object_config is a list + for obj in source_object_config: + name = obj['name'] + if 'frame' not in obj: + obj['frame'] = subscene + object_config = self._create_object_config(obj) + if object_config: + if subscene is None: + the_map[name] = object_config + else: + the_map[f'{subscene}.{name}'] = object_config + + def _print_warning(self) -> None: + if not hasattr(self, 'warned'): + self.warned = True + logger.warning(f'''Scene configuration file format changed. + Objects are defined using a dict structure instead of a list structure. + objects: + name: + type: ... + xyz: ... + ... + The old format will not be acceptable in the future. Update the file is recommended.''') + + # internal function: returns a map of (name, ObjectConfig) of objects defined in the config file + def _process_objects(self) -> dict: + the_map = dict() + # process the main scene + if self.scene_config is not None and 'objects' in self.scene_config: + object_config = self.scene_config['objects'] + if type(object_config) in (tuple, list): + self._extract_objects_list(object_config, the_map) + self._print_warning() + else: + self._extract_objects_dict(object_config, the_map) + + # process each subscene + if self.subscene_config is not None: + for subscene in self.subscene_config.keys(): + if self.subscene_config[subscene] is None: + continue + if 'objects' in self.subscene_config[subscene]: + object_config = self.subscene_config[subscene]['objects'] + if type(object_config) in (tuple, list): + self._extract_objects_list(object_config, the_map, subscene) + self._print_warning() + else: + self._extract_objects_dict(object_config, the_map, subscene) + return the_map + + def _extract_frames_dict(self, source_frame_config:dict, the_map:dict, subscene:str=None) -> FrameConfig: + # assume object_config is a dict + for name in source_frame_config: + obj = source_frame_config[name] + obj['name'] = name + if 'frame' in obj: + obj['parent'] = obj['frame'] + if 'parent' not in obj: + obj['parent'] = subscene + if 'xyz' not in obj or 'rpy' not in obj: + logger.error(f'Scene (_extract_frames_dict): the keys in the object config ({obj["name"]}) contains no "xyz" or "rpy"') + return None + frame_config = FrameConfig(obj['name'], obj['xyz'], obj['rpy'], obj['parent']) + if frame_config: + if subscene is None: + the_map[name] = frame_config + else: + the_map[f'{subscene}.{name}'] = frame_config + + # internal function: returns a map of (name, FrameConfig) of frames defined in the config file + def _process_frames(self) -> dict: + the_map = dict() + # process the main scene + if self.scene_config is not None and 'frames' in self.scene_config: + frame_config = self.scene_config['frames'] + self._extract_frames_dict(frame_config, the_map) + # process each subscene + if self.subscene_config is not None: + for subscene in self.subscene_config.keys(): + if self.subscene_config[subscene] is None: + continue + if 'frames' in self.subscene_config[subscene]: + frame_config = self.subscene_config[subscene]['frames'] + self._extract_frames_dict(frame_config, the_map, subscene) + return the_map + + # ------------------------------------------- + # model functions + + # returns the value of a named config given as a dot-separated path (e.g. table.objects.lamp.position) + def query_config(self, name:str, default=None): + """ returns the value of any named config given as a dot-separated path + :param name: the dot-separated path + :type name: str + :param default: the default value if nothing is found in the path, defaults to None + :type default: any + :return: the value of the config + :rtype: any + """ + scene_name = self._parse_config_name(name) + if scene_name is None: + return default + if scene_name.subscene is not None: + pointer = self.subscene_config[scene_name.subscene] + else: + pointer = self.scene_config + for item in scene_name.path: + if item.isnumeric(): + try: + item = int(item) + except: + logger.error(f'query_config: part of query key {name} contains an non-integer index {item}') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + if item < 0 or item >= len(pointer): + logger.error(f'query_config: part of query key {name} contains an out-of-range integer index {item} ') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + if type(pointer) not in (tuple, list): + logger.error(f'query_config: part of query key {name} contains an invalid index {item}, expecting a string key') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + pointer = pointer[item] + else: + if type(pointer) != dict: + logger.error(f'query_config: part of query key {name} contains an invalid index {item}, expecting an integer') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + if item not in pointer: + logger.error(f'query_config: part of query key {name} contains a non-existent index {item}') + raise AssertionError(f'query_config: Non-existent config name "{name}", which contains an invalid index {item}') + pointer = pointer[item] + return pointer + + # alias for backward compatibility query_config + def query_position_as_xyz(self, name, default=None): + return self.query_config(name, default) + + def query_rotation_as_rpy(self, name, default=None): + return self.query_config(name, default) + + # returns the subscene name if the config is a subscene config + def get_subscene_of_config_name(self, name) -> str: + """ returns the subscene name if the config is one belonging to a subscene + :return: the name of a subscene or None + :rtype: str + """ + scene_name = self._parse_config_name(name) + if scene_name is None: + return None + return scene_name.subscene + + # returns the root scene config as a dict + def get_scene_config(self) -> dict: + """ returns the main scene config in the config file as a dict + :return: the content in the config file + :rtype: dict + """ + return self.scene_config + + # returns a subscene config as a dict + def get_subscene_config(self, subscene_name) -> dict: + """ returns the config of a subscene in the config file as a dict + :return: the content in the config file about the subscene or None + :rtype: dict + """ + if subscene_name not in self.subscene_config: + return None + return self.subscene_config[subscene_name] + + # returns True of the given config name exists + def exists_config(self, name:str) -> bool: + """ returns True of the given config name exists + :param name: The config name + :type name: str + :return: True if the given config name exists + :rtype: bool + """ + return self.query_config(name) != None + + # returns a list of keys specified under the config name + def keys_of_config(self, name:str) -> list: + """ returns a list of keys specified under the config name or an empty list + :param name: The config name + :type name: str + :return: a list of keys specified under the config name + :rtype: list + """ + pointer = self.query_config(name) + if pointer is None or type(pointer) not in [dict, map]: + return [] + return list(pointer.keys()) + + # returns the length of the list under the config name or an empty list + def len_of_list_config(self, name:str) -> int: + """ returns the length of the list under the config name + :param name: The config name + :type name: str + :return: the length of the list the config name + :rtype: int + """ + pointer = self.query_config(name) + if pointer is None or type(pointer) not in [tuple, list]: + return 0 + return len(pointer) + + # list the object names + def list_object_names(self) -> list: + """ return the list of objects defined in the scene configuration + :return: a list of object names as strings + :rtype: list + """ + if self.objects_map is None: + return [] + return self.objects_map.keys() + + # return config given the object name + def get_object_config(self, object_name: str) -> ObjectConfig: + """ return the object configuration as ObjectConfig tuple, or None if the name not exists + :param object_name: name of the object + :type object_name: str + :return: the configuration as a ObjectConfig or None if not exists + :rtype: ObjectConfig + """ + return self.objects_map.get(object_name) + + # return the named poses as a dict + def get_named_poses_as_dict(self) -> dict: + """ return the named poses defined in the scene configuration as a dict + + :return: dict containing key value pairs of named poses + """ + result = dict() + named_poses = self.query_config('named_poses') + for pose_name in named_poses: + pose_name = 'named_poses.' + pose_name + result[pose_name] = self.query_config(pose_name) + return result + + # list the frame names + def list_frame_names(self) -> list: + """ return the list of frames defined in the scene configuration + :return: a list of frames names as strings + :rtype: list + """ + if self.frames_map is None: + return [] + return self.frames_map.keys() + + # return config given the object name + def get_frame_config(self, frame_name: str) -> FrameConfig: + """ return the object configuration as FrameConfig tuple, or None if the name not exists + :param frame_name: name of the object + :type frame_name: str + :return: the configuration as a FrameConfig or None if not exists + :rtype: FrameConfig + """ + return self.frames_map.get(frame_name) + +# ----------------------------------------------------------- +# test program +if __name__ == '__main__': + the_scene = Scene() + named_poses = ['named_poses.stow', 'named_poses.home'] + for named_pose in named_poses: + print(f'named_pose {named_pose}: {the_scene.query_config(named_pose)}') + + regions = ['regions.workspace', 'regions.inner', 'regions.work', 'regions.work3d'] + for region in regions: + print(f'region {region}: {the_scene.query_config(region)}') + + positions = ['tank.positions.default', 'tank.positions.hover', 'tank.positions.submerged'] + for position in positions: + print(f'position {position}: {the_scene.query_config(position)}') + + rotations = ['tank.rotations.alpha', 'tank.rotations.beta', 'tank.rotations.delta', 'tank.rotations.gamma'] + for rotation in rotations: + print(f'rotation {rotation}: {the_scene.query_config(rotation)}') + + objects = the_scene.list_object_names() + for object_name in objects: + print(f'object {object_name}: {the_scene.get_object_config(object_name)}') + + the_object = the_scene.query_config('objects.tank') + print(the_object) + + print(f'tank tile step_sizes: {the_scene.query_config("tank.tile")}') + + keys = ['grid.0.rotation.alpha', 'grid.1.rotation.alpha', 'grid.2.rotation.alpha'] + for key in keys: + print(f'key {key}', the_scene.query_config(key)) + \ No newline at end of file diff --git a/task_trees/task_trees_manager.py b/task_trees/task_trees_manager.py index ba6299d..c94b60b 100644 --- a/task_trees/task_trees_manager.py +++ b/task_trees/task_trees_manager.py @@ -320,37 +320,40 @@ def _define_named_poses(self, the_scene:Scene): :param the_scene: the scene configuration object of the Scene class """ - named_poses = the_scene.get_named_poses_as_dict() + named_poses = the_scene.get_named_poses_of_root_as_dict() for name in named_poses: self.arm_commander.add_named_pose(name, named_poses[name]) - def _define_objects(self, the_scene:Scene, object_type=None, include_list:list=None, ignore_list:list=None): + def _define_links(self, the_scene:Scene, link_type=None, include_list:list=None, ignore_list:list=None): """ Define the collision objects in the arm commander as specified in the scene configuration file :param the_scene: the scene configuration object of the Scene class :param include_list: the only frames to be included and subject to the ignore_list, defaults to None - :param object_type: the object type to be included, defaults to None + :param link_type: the link_type to be included, defaults to None """ - if object_type is not None and type(object_type) is not list: - object_type = [object_type] + if link_type is not None and type(link_type) is not list: + link_type = [link_type] if ignore_list is None: ignore_list = [] - for object_name in the_scene.list_object_names(): - the_object = the_scene.get_object_config(object_name) - if object_type is not None and the_object.type not in object_type: + for scene_name in the_scene.list_scene_names(): + the_link = the_scene.get_link_of_scene(scene_name) + if the_link is None: continue - if include_list is not None and object_name not in include_list: + + if link_type is not None and the_link.type not in link_type: + continue + if include_list is not None and scene_name not in include_list: continue - if object_name in ignore_list: + if scene_name in ignore_list: continue - if the_object.type == 'box': - self.arm_commander.add_box_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) - elif the_object.type == 'sphere': - self.arm_commander.add_sphere_to_scene(object_name, the_object.dimensions, the_object.xyz, the_object.frame) - elif the_object.type == 'object': - self.arm_commander.add_object_to_scene(object_name, the_object.model_file, the_object.dimensions, the_object.xyz, the_object.rpy, the_object.frame) + if the_link.type == 'box': + self.arm_commander.add_box_to_scene(scene_name, the_link.dimensions, the_link.xyz, the_link.rpy, the_link.parent_frame) + elif the_link.type == 'sphere': + self.arm_commander.add_sphere_to_scene(scene_name, the_link.dimensions, the_link.xyz, the_link.parent_frame) + elif the_link.type == 'object': + self.arm_commander.add_object_to_scene(scene_name, the_link.model_file, the_link.dimensions, the_link.xyz, the_link.rpy, the_link.parent_frame) else: - logger.warning(f'TaskTreesManager (_define_objects): unrecognize object type "{the_object.type}"') + logger.warning(f'TaskTreesManager (_define_objects): unrecognize object type "{the_link.type}"') def _define_custom_frames(self, the_scene:Scene, include_list:list=None, ignore_list:list=None): """ Define the custom frames in the arm commander as specified in the scene configuration file @@ -366,8 +369,8 @@ def _define_custom_frames(self, the_scene:Scene, include_list:list=None, ignore_ continue if frame_name in ignore_list: continue - the_frame = the_scene.get_frame_config(frame_name) - self.arm_commander.add_custom_transform(frame_name, the_frame.xyz, the_frame.rpy, the_frame.parent) + the_frame_link = the_scene.get_link_of_frame(frame_name) + self.arm_commander.add_custom_transform(frame_name, the_frame_link.xyz, the_frame_link.rpy, the_frame_link.parent_frame) def _set_initialize_branch(self, branch:Composite): """ Set or replace a branch to be the initialization branch of the behaviour tree of this manager diff --git a/task_trees/tools/rviz_tools.py b/task_trees/tools/rviz_tools.py index 65abc82..5a5080b 100644 --- a/task_trees/tools/rviz_tools.py +++ b/task_trees/tools/rviz_tools.py @@ -196,7 +196,7 @@ def create_arrow_marker(name:str, id:int, xyzrpy:list, reference_frame:str, dime the_marker.type = Marker().ARROW the_marker.pose = list_to_pose(xyzrpy) if isinstance(dimensions, numbers.Number): - dimensions = [dimensions, dimensions/10, dimensions/10] + dimensions = [dimensions, dimensions/10, dimensions/25] the_marker.scale = Vector3(*dimensions) rgba = RGBAColors.validate_rgba(rgba) the_marker.color = ColorRGBA(*rgba) From 74c039bb032398b93206c538035a06b198315981 Mon Sep 17 00:00:00 2001 From: andrewluiqut Date: Wed, 1 Oct 2025 12:56:50 +1000 Subject: [PATCH 4/4] behaviours_base.py: method update on changing how the GeneralCommanderStates.ABORTED signal is handled, updated to enables the task trees to report pytree FAILURE but the task status can stay the same. This allows the task status is WORKING and so other parts of the behaviour tree may deal with the arm commander abort signal such as retry or trying another branch --- task_trees/behaviours_base.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/task_trees/behaviours_base.py b/task_trees/behaviours_base.py index 60fc8d1..335d0ec 100644 --- a/task_trees/behaviours_base.py +++ b/task_trees/behaviours_base.py @@ -235,9 +235,12 @@ def update(self): return Status.SUCCESS elif self.commander_state == GeneralCommanderStates.ABORTED: logger.error(f'ConditionalCommanderBehaviour handles task aborted') - if self.the_blackboard.exists('task'): - self.the_blackboard.set('task.state', TaskStates.ABORTED) - self.tidy_up() + # NOTE: the update enables the task trees to report pytree FAILURE but the task status can stay the same + # This allows the task status is WORKING and so other parts of the behaviour tree may deal with the arm commander abort signal + # such as retry or trying another branch + # if self.the_blackboard.exists('task'): + # self.the_blackboard.set('task.state', TaskStates.ABORTED) + # self.tidy_up() return Status.FAILURE elif self.commander_state == GeneralCommanderStates.ERROR: logger.error(f'ConditionalCommanderBehaviour handles task error')