diff --git a/robonix/brain/test_mcp/main.py b/robonix/brain/test_mcp/main.py index f7a20c6..16e37d3 100644 --- a/robonix/brain/test_mcp/main.py +++ b/robonix/brain/test_mcp/main.py @@ -12,10 +12,6 @@ import time import sys -root_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -if root_dir not in sys.path: - sys.path.append(root_dir) -print(root_dir) from robonix.manager.eaios_decorators import package_init, mcp_start,eaios diff --git a/robonix/brain/test_mcp/server.py b/robonix/brain/test_mcp/server.py index 63e8e35..800c49c 100644 --- a/robonix/brain/test_mcp/server.py +++ b/robonix/brain/test_mcp/server.py @@ -1,9 +1,5 @@ import sys import os -root_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) -print(root_dir) -if root_dir not in sys.path: - sys.path.append(root_dir) from robonix.manager.eaios_decorators import eaios, package_init,FunctionRegistry,mcp_start import yaml diff --git a/robonix/capability/navigation2/api/api.py b/robonix/capability/navigation2/api/api.py index 95260d6..84fa101 100644 --- a/robonix/capability/navigation2/api/api.py +++ b/robonix/capability/navigation2/api/api.py @@ -177,7 +177,8 @@ def set_goal(x, y, yaw) -> str: y: Target Y coordinate yaw: Target yaw angle """ - # rclpy.init() + if not rclpy.ok(): + rclpy.init() import yaml plugin_name = "simple_navigation" config_path = os.path.join(os.path.dirname( diff --git a/robonix/capability/navigation2/plugins/ros2_navigation/lib.py b/robonix/capability/navigation2/plugins/ros2_navigation/lib.py index 39db2cf..927f16c 100644 --- a/robonix/capability/navigation2/plugins/ros2_navigation/lib.py +++ b/robonix/capability/navigation2/plugins/ros2_navigation/lib.py @@ -70,7 +70,8 @@ def nv_test(): @eaios.plugin("navigation2","ros2_navigation") def set_goal(x, y, yaw) -> str: - # rclpy.init() + if not rclpy.ok(): + rclpy.init() res = nv_controller.set_goal(x,y,yaw) func_status = f"Service set_goal response: {res}" # rclpy.shutdown() diff --git a/robonix/manager/boot.py b/robonix/manager/boot.py index 09480b6..a3f4d2f 100644 --- a/robonix/manager/boot.py +++ b/robonix/manager/boot.py @@ -1,22 +1,18 @@ import asyncio import signal import argparse -import process_manage -import node -from log import logger -from cmdline import CLI -import depend +from robonix.manager import process_manage +from robonix.manager import node +from robonix.manager.log import logger +from robonix.manager.cmdline import CLI +from robonix.manager import depend import os -from constant import BASE_SKILL_PATH, INIT_FILE, BASE_PATH +from robonix.manager.constant import BASE_SKILL_PATH, INIT_FILE, BASE_PATH import sys -if os.path.dirname(BASE_PATH) not in sys.path: - sys.path.append(os.path.dirname(BASE_PATH)) - -from eaios_decorators import package_init, mcp_start +from robonix.manager.eaios_decorators import package_init # Ensure the root directory is in the Python path for skill import -sys.path.insert(0, BASE_PATH) # import skill diff --git a/robonix/manager/cmdline.py b/robonix/manager/cmdline.py index a26773c..ae37e1a 100644 --- a/robonix/manager/cmdline.py +++ b/robonix/manager/cmdline.py @@ -8,7 +8,7 @@ from typing import List, Dict, Any, Optional, Callable import traceback import aioconsole -from log import logger +from robonix.manager.log import logger class Colors: diff --git a/robonix/manager/depend.py b/robonix/manager/depend.py index fffe99e..47da91d 100644 --- a/robonix/manager/depend.py +++ b/robonix/manager/depend.py @@ -1,9 +1,9 @@ import os import yaml from collections import defaultdict -from constant import BASE_PATH -from log import logger -from node import get_entry_name +from robonix.manager.constant import BASE_PATH +from robonix.manager.log import logger +from robonix.manager.node import get_entry_name def scan_dir(base_path, feature_set, feature_sources, all_dependencies, all_params): diff --git a/robonix/manager/eaios_decorators.py b/robonix/manager/eaios_decorators.py index 733a44f..0f9154e 100644 --- a/robonix/manager/eaios_decorators.py +++ b/robonix/manager/eaios_decorators.py @@ -7,11 +7,9 @@ import yaml import sys import inspect -from node import get_entry_name +from robonix.manager.node import get_entry_name -if os.path.abspath(os.path.dirname(__file__)) not in sys.path: - sys.path.append(os.path.abspath(os.path.dirname(__file__))) -from constant import BASE_SKILL_PATH, INIT_FILE, EXPORT_FILE, BASE_PATH +from robonix.manager.constant import BASE_SKILL_PATH, INIT_FILE, EXPORT_FILE, BASE_PATH if os.path.dirname(BASE_PATH) not in sys.path: sys.path.append(os.path.dirname(BASE_PATH)) diff --git a/robonix/manager/node.py b/robonix/manager/node.py index 19805cf..1c494a6 100644 --- a/robonix/manager/node.py +++ b/robonix/manager/node.py @@ -1,7 +1,7 @@ import os import yaml -from log import logger -from constant import BASE_PATH +from robonix.manager.log import logger +from robonix.manager.constant import BASE_PATH class BaseNode: diff --git a/robonix/manager/process_manage.py b/robonix/manager/process_manage.py index e8b47a6..b8d01ed 100644 --- a/robonix/manager/process_manage.py +++ b/robonix/manager/process_manage.py @@ -5,7 +5,7 @@ import pty import select import signal -from log import logger +from robonix.manager.log import logger import shlex def build_cli_args(params: dict, *, normalize_dash: bool = True) -> str: diff --git a/robonix/skill/move/api/api.py b/robonix/skill/move/api/api.py index d46306a..d5d9555 100644 --- a/robonix/skill/move/api/api.py +++ b/robonix/skill/move/api/api.py @@ -10,13 +10,6 @@ from sensor_msgs.msg import Range import sys -import sys -root_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))) -if root_dir not in sys.path: - sys.path.append(root_dir) - -print(root_dir) - from robonix.manager.eaios_decorators import eaios from robonix.uapi.graph.entity import Entity diff --git a/robonix/skill/semantic_map/test_semantic_map.py b/robonix/skill/semantic_map/test_semantic_map.py index 55f3f52..59763cb 100644 --- a/robonix/skill/semantic_map/test_semantic_map.py +++ b/robonix/skill/semantic_map/test_semantic_map.py @@ -5,11 +5,7 @@ import sys import os - -# Add the project root to Python path -sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))) - -from skill.semantic_map.api.api import skl_update_map, skl_query_map_all, skl_query_map, skl_add_map_obj +from robonix.skill.semantic_map.api.api import skl_update_map, skl_query_map_all, skl_query_map, skl_add_map_obj def test_semantic_map(): print("Testing semantic map skills...") diff --git a/robonix/skill/test.py b/robonix/skill/test.py index ead3957..8eb3a2a 100644 --- a/robonix/skill/test.py +++ b/robonix/skill/test.py @@ -1,10 +1,6 @@ import os import sys -root_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) -if root_dir not in sys.path: - sys.path.append(root_dir) -print("[DEBUG] skill root_dir:", root_dir) from robonix.manager.eaios_decorators import package_init, mcp_start,eaios package_init("config/include/ranger_test.yml") diff --git a/robonix/skill/test_skill/api/api.py b/robonix/skill/test_skill/api/api.py index bfa637d..c5533ab 100644 --- a/robonix/skill/test_skill/api/api.py +++ b/robonix/skill/test_skill/api/api.py @@ -10,11 +10,6 @@ from sensor_msgs.msg import Range import sys -import sys -root_dir = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))) -if root_dir not in sys.path: - sys.path.append(root_dir) -print(root_dir) from robonix.manager.eaios_decorators import eaios #TODO memory diff --git a/start.sh b/start.sh index 3697107..c73f701 100755 --- a/start.sh +++ b/start.sh @@ -1,3 +1,8 @@ +# make sure the script runs in the root of robonix +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +cd "$SCRIPT_DIR" + +export PYTHONPATH="$PWD:$PYTHONPATH" bash init.sh source /opt/ros/humble/setup.sh