From e414c19cddd9caae1f4b147b2caca49b56079584 Mon Sep 17 00:00:00 2001 From: Jonas Dech Date: Tue, 9 Apr 2024 11:24:20 +0200 Subject: [PATCH] [refactor] moved local_transformer and costmaps to top-level --- src/pycram/{world_concepts => }/costmaps.py | 14 +++++++------- src/pycram/description.py | 2 +- src/pycram/designator.py | 9 ++++----- src/pycram/designators/actions/actions.py | 11 +++++------ src/pycram/designators/location_designator.py | 10 +++++----- src/pycram/external_interfaces/ik.py | 2 +- src/pycram/external_interfaces/robokudo.py | 2 +- .../{datastructures => }/local_transformer.py | 2 +- src/pycram/pose_generator_and_validator.py | 4 ++-- src/pycram/process_modules/boxy_process_modules.py | 3 +-- .../process_modules/default_process_modules.py | 9 ++------- .../process_modules/donbot_process_modules.py | 3 +-- src/pycram/process_modules/hsr_process_modules.py | 11 +++-------- src/pycram/process_modules/pr2_process_modules.py | 13 ++++++------- src/pycram/resolver/location/database_location.py | 3 +-- .../resolver/probabilistic/probabilistic_action.py | 7 +++---- src/pycram/world.py | 2 +- src/pycram/world_concepts/world_object.py | 2 +- test/test_action_designator.py | 2 +- test/test_costmaps.py | 2 +- test/test_local_transformer.py | 2 +- 21 files changed, 49 insertions(+), 66 deletions(-) rename src/pycram/{world_concepts => }/costmaps.py (99%) rename src/pycram/{datastructures => }/local_transformer.py (99%) diff --git a/src/pycram/world_concepts/costmaps.py b/src/pycram/costmaps.py similarity index 99% rename from src/pycram/world_concepts/costmaps.py rename to src/pycram/costmaps.py index 3314bf4a4..07a061146 100644 --- a/src/pycram/world_concepts/costmaps.py +++ b/src/pycram/costmaps.py @@ -12,13 +12,13 @@ from matplotlib import colors from nav_msgs.msg import OccupancyGrid, MapMetaData -from ..world import UseProspectionWorld -from ..world_concepts.world_object import Object -from ..description import Link -from ..datastructures.local_transformer import LocalTransformer -from ..datastructures.pose import Pose, Transform -from ..world import World -from ..datastructures.dataclasses import AxisAlignedBoundingBox, BoxVisualShape, Color +from .world import UseProspectionWorld +from .world_concepts.world_object import Object +from .description import Link +from .local_transformer import LocalTransformer +from .datastructures.pose import Pose, Transform +from .world import World +from .datastructures.dataclasses import AxisAlignedBoundingBox, BoxVisualShape, Color @dataclass diff --git a/src/pycram/description.py b/src/pycram/description.py index 826a08af0..a4accfc15 100644 --- a/src/pycram/description.py +++ b/src/pycram/description.py @@ -9,7 +9,7 @@ from typing_extensions import Tuple, Union, Any, List, Optional, Dict, TYPE_CHECKING from .datastructures.enums import JointType -from .datastructures.local_transformer import LocalTransformer +from .local_transformer import LocalTransformer from .datastructures.pose import Pose, Transform from .world import WorldEntity from .datastructures.dataclasses import JointState, AxisAlignedBoundingBox, Color, LinkState, VisualShape diff --git a/src/pycram/designator.py b/src/pycram/designator.py index b023cbe24..385ac8a7a 100644 --- a/src/pycram/designator.py +++ b/src/pycram/designator.py @@ -10,17 +10,16 @@ from .world import World from .world_concepts.world_object import Object as WorldObject -from .datastructures.enums import ObjectType from .helper import GeneratorList, bcolors from threading import Lock from time import time -from typing_extensions import List, Dict, Any, Optional, Union, get_type_hints, Callable, Iterable +from typing_extensions import List, Dict, Any, Optional, Union, Callable, Iterable -from pycram.datastructures.local_transformer import LocalTransformer +from .local_transformer import LocalTransformer from .language import Language -from pycram.datastructures.pose import Pose +from .datastructures.pose import Pose from .robot_descriptions import robot_description -from pycram.datastructures.enums import ObjectType +from .datastructures.enums import ObjectType import logging diff --git a/src/pycram/designators/actions/actions.py b/src/pycram/designators/actions/actions.py index 6ad3262bf..73fbc1451 100644 --- a/src/pycram/designators/actions/actions.py +++ b/src/pycram/designators/actions/actions.py @@ -1,23 +1,22 @@ import abc import inspect -import time import numpy as np from tf import transformations from typing_extensions import Union, Type -from pycram.designator import ActionDesignatorDescription -from pycram.designators.motion_designator import * +from ...designator import ActionDesignatorDescription +from ..motion_designator import * from ...datastructures.pose import Pose from ...datastructures.enums import Arms, Grasp -from pycram.task import with_tree +from ...task import with_tree from dataclasses import dataclass, field from ..location_designator import CostmapLocation from ..object_designator import BelieveObject # from ...bullet_world import BulletWorld from ...helper import multiply_quaternions -from ...datastructures.local_transformer import LocalTransformer +from ...local_transformer import LocalTransformer from ...orm.base import Pose as ORMPose -from ...orm.object_designator import Object as ORMObject, ObjectPart as ORMObjectPart +from ...orm.object_designator import Object as ORMObject from ...orm.action_designator import Action as ORMAction from ...plan_failures import ObjectUnfetchable, ReachabilityFailure from ...robot_descriptions import robot_description diff --git a/src/pycram/designators/location_designator.py b/src/pycram/designators/location_designator.py index ccb1bb716..13f5e8e2c 100644 --- a/src/pycram/designators/location_designator.py +++ b/src/pycram/designators/location_designator.py @@ -2,16 +2,16 @@ from typing_extensions import List, Union, Iterable, Optional, Callable from .object_designator import ObjectDesignatorDescription, ObjectPart -from pycram.world import World, UseProspectionWorld -from pycram.world_reasoning import link_pose_for_joint_config +from ..world import World, UseProspectionWorld +from ..world_reasoning import link_pose_for_joint_config from ..designator import DesignatorError, LocationDesignatorDescription -from pycram.world_concepts.costmaps import OccupancyCostmap, VisibilityCostmap, SemanticCostmap, GaussianCostmap +from ..costmaps import OccupancyCostmap, VisibilityCostmap, SemanticCostmap, GaussianCostmap from ..robot_descriptions import robot_description -from pycram.datastructures.enums import JointType +from ..datastructures.enums import JointType from ..helper import transform from ..pose_generator_and_validator import PoseGenerator, visibility_validator, reachability_validator from ..robot_description import ManipulatorDescription -from pycram.datastructures.pose import Pose +from ..datastructures.pose import Pose class Location(LocationDesignatorDescription): diff --git a/src/pycram/external_interfaces/ik.py b/src/pycram/external_interfaces/ik.py index f448d50f3..a6c73f328 100644 --- a/src/pycram/external_interfaces/ik.py +++ b/src/pycram/external_interfaces/ik.py @@ -8,7 +8,7 @@ from pycram.world_concepts.world_object import Object from ..helper import calculate_wrist_tool_offset, _apply_ik -from pycram.datastructures.local_transformer import LocalTransformer +from pycram.local_transformer import LocalTransformer from pycram.datastructures.pose import Pose from ..robot_descriptions import robot_description from ..plan_failures import IKError diff --git a/src/pycram/external_interfaces/robokudo.py b/src/pycram/external_interfaces/robokudo.py index a502cac99..5f41af46b 100644 --- a/src/pycram/external_interfaces/robokudo.py +++ b/src/pycram/external_interfaces/robokudo.py @@ -7,7 +7,7 @@ from ..designator import ObjectDesignatorDescription from pycram.datastructures.pose import Pose -from pycram.datastructures.local_transformer import LocalTransformer +from pycram.local_transformer import LocalTransformer from pycram.world import World from pycram.datastructures.enums import ObjectType diff --git a/src/pycram/datastructures/local_transformer.py b/src/pycram/local_transformer.py similarity index 99% rename from src/pycram/datastructures/local_transformer.py rename to src/pycram/local_transformer.py index 87a87003f..e045d0148 100644 --- a/src/pycram/datastructures/local_transformer.py +++ b/src/pycram/local_transformer.py @@ -9,7 +9,7 @@ from rospy import Duration from geometry_msgs.msg import TransformStamped -from .pose import Pose, Transform +from .datastructures.pose import Pose, Transform from typing_extensions import List, Optional, Union, Iterable diff --git a/src/pycram/pose_generator_and_validator.py b/src/pycram/pose_generator_and_validator.py index f870ef77e..4582699cc 100644 --- a/src/pycram/pose_generator_and_validator.py +++ b/src/pycram/pose_generator_and_validator.py @@ -4,8 +4,8 @@ from .world import World from .world_concepts.world_object import Object from .world_reasoning import contact -from .world_concepts.costmaps import Costmap -from .datastructures.local_transformer import LocalTransformer +from .costmaps import Costmap +from .local_transformer import LocalTransformer from .datastructures.pose import Pose, Transform from .robot_description import ManipulatorDescription from .robot_descriptions import robot_description diff --git a/src/pycram/process_modules/boxy_process_modules.py b/src/pycram/process_modules/boxy_process_modules.py index 0f133e773..e33570e52 100644 --- a/src/pycram/process_modules/boxy_process_modules.py +++ b/src/pycram/process_modules/boxy_process_modules.py @@ -5,10 +5,9 @@ from ..designators.motion_designator import * from ..datastructures.enums import JointType from ..external_interfaces.ik import request_ik -from ..datastructures.local_transformer import LocalTransformer from ..world import World -from ..datastructures.local_transformer import LocalTransformer +from ..local_transformer import LocalTransformer from ..process_module import ProcessModule, ProcessModuleManager from ..robot_descriptions import robot_description diff --git a/src/pycram/process_modules/default_process_modules.py b/src/pycram/process_modules/default_process_modules.py index 588b5661d..fcd10ed05 100644 --- a/src/pycram/process_modules/default_process_modules.py +++ b/src/pycram/process_modules/default_process_modules.py @@ -5,14 +5,9 @@ from ..datastructures.enums import JointType from ..external_interfaces.ik import request_ik from ..helper import _apply_ik -from ..process_module import ProcessModule, ProcessModuleManager -# from ..process_modules.pr2_process_modules import Pr2Navigation as DefaultNavigation, Pr2PickUp as DefaultPickUp, \ -# Pr2Place as DefaultPlace, Pr2WorldStateDetecting as DefaultWorldStateDetecting, Pr2Open as DefaultOpen, \ -# Pr2Close as DefaultClose, Pr2MoveGripper as DefaultMoveGripper, Pr2Detecting as DefaultDetecting, \ -# Pr2MoveTCP as DefaultMoveTCP +from ..process_module import ProcessModule from ..robot_descriptions import robot_description -from ..world import World -from ..datastructures.local_transformer import LocalTransformer +from ..local_transformer import LocalTransformer from ..designators.motion_designator import * from ..world_reasoning import visible, link_pose_for_joint_config diff --git a/src/pycram/process_modules/donbot_process_modules.py b/src/pycram/process_modules/donbot_process_modules.py index 337318a2a..f612f89d1 100644 --- a/src/pycram/process_modules/donbot_process_modules.py +++ b/src/pycram/process_modules/donbot_process_modules.py @@ -1,11 +1,10 @@ from threading import Lock import numpy as np -from typing_extensions import Optional from ..worlds.bullet_world import World from ..designators.motion_designator import MoveArmJointsMotion, WorldStateDetectingMotion -from ..datastructures.local_transformer import LocalTransformer +from ..local_transformer import LocalTransformer from ..process_module import ProcessModule, ProcessModuleManager from ..robot_descriptions import robot_description from ..process_modules.pr2_process_modules import Pr2Detecting as DonbotDetecting, _move_arm_tcp diff --git a/src/pycram/process_modules/hsr_process_modules.py b/src/pycram/process_modules/hsr_process_modules.py index 52846d20a..3f02d466c 100644 --- a/src/pycram/process_modules/hsr_process_modules.py +++ b/src/pycram/process_modules/hsr_process_modules.py @@ -3,19 +3,14 @@ from threading import Lock from typing import Any -from typing_extensions import Optional - from ..datastructures.enums import JointType from ..robot_descriptions import robot_description -from ..process_module import ProcessModule, ProcessModuleManager -from ..world import World -from ..datastructures.pose import Pose, Point +from ..process_module import ProcessModule +from ..datastructures.pose import Point from ..helper import _apply_ik from ..external_interfaces.ik import request_ik from .. import world_reasoning as btr -import logging -import time -from ..datastructures.local_transformer import LocalTransformer +from ..local_transformer import LocalTransformer from ..designators.motion_designator import * from ..external_interfaces import giskard diff --git a/src/pycram/process_modules/pr2_process_modules.py b/src/pycram/process_modules/pr2_process_modules.py index 29dcd41fe..0b0d0bede 100644 --- a/src/pycram/process_modules/pr2_process_modules.py +++ b/src/pycram/process_modules/pr2_process_modules.py @@ -1,6 +1,5 @@ from threading import Lock -from typing_extensions import Any, Optional, Tuple -from abc import abstractmethod +from typing_extensions import Any import actionlib @@ -12,16 +11,16 @@ from ..process_module import ProcessModule, ProcessModuleManager from ..external_interfaces.ik import request_ik from ..helper import _apply_ik -from pycram.datastructures.local_transformer import LocalTransformer +from ..local_transformer import LocalTransformer from ..designators.object_designator import ObjectDesignatorDescription from ..designators.motion_designator import MoveMotion, LookingMotion, \ DetectingMotion, MoveTCPMotion, MoveArmJointsMotion, WorldStateDetectingMotion, MoveJointsMotion, \ MoveGripperMotion, OpeningMotion, ClosingMotion from ..robot_descriptions import robot_description -from pycram.world import World -from pycram.world_concepts.world_object import Object -from pycram.datastructures.pose import Pose -from pycram.datastructures.enums import JointType, ObjectType +from ..world import World +from ..world_concepts.world_object import Object +from ..datastructures.pose import Pose +from ..datastructures.enums import JointType, ObjectType from ..external_interfaces import giskard from ..external_interfaces.robokudo import query diff --git a/src/pycram/resolver/location/database_location.py b/src/pycram/resolver/location/database_location.py index d84625e9d..74f59bcc7 100644 --- a/src/pycram/resolver/location/database_location.py +++ b/src/pycram/resolver/location/database_location.py @@ -1,12 +1,11 @@ from dataclasses import dataclass -import numpy as np import sqlalchemy.orm import sqlalchemy.sql from sqlalchemy import select, Select from typing_extensions import List -from ...world_concepts.costmaps import Rectangle, OccupancyCostmap +from ...costmaps import Rectangle, OccupancyCostmap from ...designator import LocationDesignatorDescription from ...designators.location_designator import CostmapLocation from ...orm.action_designator import PickUpAction diff --git a/src/pycram/resolver/probabilistic/probabilistic_action.py b/src/pycram/resolver/probabilistic/probabilistic_action.py index 428232bbe..2a75da2c2 100644 --- a/src/pycram/resolver/probabilistic/probabilistic_action.py +++ b/src/pycram/resolver/probabilistic/probabilistic_action.py @@ -4,23 +4,22 @@ import portion from probabilistic_model.probabilistic_circuit.distributions import GaussianDistribution, SymbolicDistribution from probabilistic_model.probabilistic_circuit.probabilistic_circuit import ProbabilisticCircuit, \ - DecomposableProductUnit, DeterministicSumUnit + DecomposableProductUnit from random_events.events import Event, ComplexEvent from random_events.variables import Symbolic, Continuous import tqdm from typing_extensions import Optional, List, Iterator from ...world import World -from ...world_concepts.costmaps import OccupancyCostmap, VisibilityCostmap +from ...costmaps import OccupancyCostmap, VisibilityCostmap from ...designator import ActionDesignatorDescription, ObjectDesignatorDescription from ...designators.actions.actions import MoveAndPickUpPerformable, ActionAbstract from ...datastructures.enums import Arms, Grasp, TaskStatus -from ...datastructures.local_transformer import LocalTransformer +from ...local_transformer import LocalTransformer from ...orm.queries.queries import PickUpWithContext from ...orm.task import TaskTreeNode from ...orm.action_designator import PickUpAction as ORMPickUpAction from ...plan_failures import ObjectUnreachable, PlanFailure from ...datastructures.pose import Pose -import plotly.graph_objects as go class ProbabilisticAction: diff --git a/src/pycram/world.py b/src/pycram/world.py index ac1c58002..ffab6bd15 100644 --- a/src/pycram/world.py +++ b/src/pycram/world.py @@ -17,7 +17,7 @@ from .cache_manager import CacheManager from .datastructures.enums import JointType, ObjectType, WorldMode from .world_concepts.event import Event -from .datastructures.local_transformer import LocalTransformer +from .local_transformer import LocalTransformer from .datastructures.pose import Pose, Transform from .world_concepts.constraints import Constraint from .datastructures.dataclasses import (Color, AxisAlignedBoundingBox, CollisionCallbacks, diff --git a/src/pycram/world_concepts/world_object.py b/src/pycram/world_concepts/world_object.py index 703bdcfab..a7b43a28f 100644 --- a/src/pycram/world_concepts/world_object.py +++ b/src/pycram/world_concepts/world_object.py @@ -16,7 +16,7 @@ from ..datastructures.dataclasses import (Color, ObjectState, LinkState, JointState, AxisAlignedBoundingBox, VisualShape) from ..datastructures.enums import ObjectType, JointType -from ..datastructures.local_transformer import LocalTransformer +from ..local_transformer import LocalTransformer from ..datastructures.pose import Pose, Transform Link = ObjectDescription.Link diff --git a/test/test_action_designator.py b/test/test_action_designator.py index af915b4cf..af5708b09 100644 --- a/test/test_action_designator.py +++ b/test/test_action_designator.py @@ -2,7 +2,7 @@ from pycram.designators import action_designator, object_designator from pycram.designators.actions.actions import MoveTorsoActionPerformable, PickUpActionPerformable, \ NavigateActionPerformable, FaceAtPerformable -from pycram.datastructures.local_transformer import LocalTransformer +from pycram.local_transformer import LocalTransformer from pycram.robot_descriptions import robot_description from pycram.process_module import simulated_robot from pycram.datastructures.pose import Pose diff --git a/test/test_costmaps.py b/test/test_costmaps.py index b46f1fede..0623645cc 100644 --- a/test/test_costmaps.py +++ b/test/test_costmaps.py @@ -5,7 +5,7 @@ from random_events.events import Event, ComplexEvent from bullet_world_testcase import BulletWorldTestCase -from pycram.world_concepts.costmaps import OccupancyCostmap +from pycram.costmaps import OccupancyCostmap from pycram.datastructures.pose import Pose diff --git a/test/test_local_transformer.py b/test/test_local_transformer.py index e64682d0d..283c8f31c 100644 --- a/test/test_local_transformer.py +++ b/test/test_local_transformer.py @@ -1,7 +1,7 @@ import rospy -from pycram.datastructures.local_transformer import LocalTransformer +from pycram.local_transformer import LocalTransformer from pycram.datastructures.pose import Pose, Transform from bullet_world_testcase import BulletWorldTestCase