diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 00000000..d7de7053 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,10 @@ +{ + "permissions": { + "allow": [ + "WebFetch(domain:raw.githubusercontent.com)", + "WebFetch(domain:github.com)", + "WebSearch", + "WebFetch(domain:api.github.com)" + ] + } +} diff --git a/.gitignore b/.gitignore index 50a0f0d5..aef77e90 100644 --- a/.gitignore +++ b/.gitignore @@ -23,10 +23,10 @@ test-req.txt sterowanie.py tts/ -======= + sterowanie.py tts/ ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 + examples/xlerobot_controler.py examples/xlerobot_controller.py \ No newline at end of file diff --git a/=2.6.1 b/=2.6.1 new file mode 100644 index 00000000..db47e05b --- /dev/null +++ b/=2.6.1 @@ -0,0 +1,7 @@ +Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple +Collecting pygame + Downloading pygame-2.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (12 kB) +Downloading pygame-2.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (13.6 MB) + ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.6/13.6 MB 4.4 MB/s eta 0:00:00 +Installing collected packages: pygame +Successfully installed pygame-2.6.1 diff --git a/pyproject.toml b/pyproject.toml index c48467c1..60843372 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "robocrew" -version = "0.2.0" +version = "0.2.1-beta1" authors = [ { name="Grigorij Dudnik", email="dudnikgrv@gmail.com" }, { name="Konrad Suchodolski", email="konrad.suchodolski50@gmail.com" }, diff --git a/src/robocrew/core/LLMAgent.py b/src/robocrew/core/LLMAgent.py index e749e5bb..8b7f8b9e 100755 --- a/src/robocrew/core/LLMAgent.py +++ b/src/robocrew/core/LLMAgent.py @@ -250,7 +250,6 @@ def go(self): finally: if self.servo_controler: print("Disconnecting servo controller...") -======= from os import getenv from robocrew.core.tools import create_say, remember_thing, recall_thing from dotenv import find_dotenv, load_dotenv @@ -508,5 +507,5 @@ def go(self): finally: if self.servo_controler: print("Disconnecting servo controller...") ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 + self.servo_controler.disconnect() \ No newline at end of file diff --git a/src/robocrew/robots/XLeRobot/tools.py b/src/robocrew/robots/XLeRobot/tools.py index 375ef607..3100c13d 100755 --- a/src/robocrew/robots/XLeRobot/tools.py +++ b/src/robocrew/robots/XLeRobot/tools.py @@ -216,14 +216,14 @@ def create_vla_single_arm_manipulation( robot_config.type = "so101_follower" robot_config.id="robot_arm" -======= + robot_config.id="right_arm" # Ensure attribute exists; None keeps LeRobot's default calibration lookup path. ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 -======= + + robot_config.id="right_arm" # Ensure attribute exists; None keeps LeRobot's default calibration lookup path. ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 + robot_config.calibration_dir = None cfg = RobotClientConfig( @@ -240,10 +240,7 @@ def create_vla_single_arm_manipulation( preloaded_client = None -======= ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 -======= ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 + if load_on_startup: print(f" Loading Policy for {tool_name}...") # release main camera from agent @@ -253,16 +250,15 @@ def create_vla_single_arm_manipulation( preloaded_client = RobotClient(cfg) preloaded_client.robot.disconnect() -======= + # Warm up once at startup so server loads policy weights before first real execution. warmup_client = RobotClient(cfg) warmup_client.robot.disconnect() ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 -======= + # Warm up once at startup so server loads policy weights before first real execution. warmup_client = RobotClient(cfg) warmup_client.robot.disconnect() ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 + #assign main camera back to agent time.sleep(0.5) main_camera_object.reopen() @@ -273,10 +269,9 @@ def tool_name_to_override() -> str: print("Manipulation tool activated") servo_controler.set_saved_position("cobra", arm_side=arm_side) ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 -======= + servo_controler.set_saved_position("cobra", arm_side=arm_side) ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 + servo_controler.turn_head_to_vla_position() # release main camera from agent, so arm policy can use it main_camera_object.release() @@ -290,14 +285,12 @@ def tool_name_to_override() -> str: else: client = preloaded_client client.robot.connect() -======= # Use a fresh RobotClient per invocation so worker threads can be stopped cleanly. client = RobotClient(cfg) ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 -======= + # Use a fresh RobotClient per invocation so worker threads can be stopped cleanly. client = RobotClient(cfg) ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 + if not client.start(): return "Failed to connect to robot server." @@ -318,9 +311,7 @@ def tool_name_to_override() -> str: main_camera_object.reopen() # set head back to precize mode servo_controler.turn_head_to_vla_position(50) -======= -======= ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 + if client: try: client.stop() @@ -556,7 +547,4 @@ def _shutdown_robot_client(client: "RobotClient") -> None: hardware disconnection, preventing race conditions. """ client.stop() -======= ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 -======= ->>>>>>> a677287499bdf3751f32d69f3349af86602c1c49 +