From b8ad4c839e579e0868b9570c48de76dcbd85f6fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arda=20=C3=96ZCAN?= <76063457+ardozcnn@users.noreply.github.com> Date: Thu, 13 Aug 2026 00:05:22 +0300 Subject: [PATCH 1/2] Update 04_ik_allow_collision.py --- .../ros/files/04_ik_allow_collision.py | 31 ++++++------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/docs/backends/ros/files/04_ik_allow_collision.py b/docs/backends/ros/files/04_ik_allow_collision.py index dbd118e25..690052f17 100644 --- a/docs/backends/ros/files/04_ik_allow_collision.py +++ b/docs/backends/ros/files/04_ik_allow_collision.py @@ -1,12 +1,7 @@ -from compas.geometry import Box -from compas.geometry import Frame - -from compas_fab.backends import InverseKinematicsError -from compas_fab.backends import MoveItPlanner -from compas_fab.backends import RosClient -from compas_fab.robots import FrameTarget -from compas_fab.robots import RigidBody -from compas_fab.robots import TargetMode +from typing import Any, Dict +from compas.geometry import Box, Frame +from compas_fab.backends import InverseKinematicsError, MoveItPlanner, RosClient +from compas_fab.robots import FrameTarget, RigidBody, TargetMode with RosClient() as client: planner = MoveItPlanner(client) @@ -25,15 +20,16 @@ # Create a target frame with the ROBOT mode frame_WCF = Frame([0.3, 0.1, 0.5], [1, 0, 0], [0, 1, 0]) target = FrameTarget(frame_WCF, TargetMode.ROBOT) - print("Target frame with Robot Mode: {}".format(target)) + print(f"Target frame with Robot Mode: {target}") # Calculate inverse kinematics - def calculate(options): + def calculate(options: Dict[str, Any]) -> None: + """Helper function to solve IK for the target frame and print the outcome.""" try: configuration = planner.inverse_kinematics(target, start_state, options=options) - print(" Found configuration: ", configuration) + print(f" Found configuration: {configuration}") except InverseKinematicsError as e: - print(" Failed to find a configuration: ", e) + print(f" Failed to find a configuration: {e}") print("Inverse kinematics with collision check enabled: (by default)") calculate({}) @@ -41,12 +37,3 @@ def calculate(options): print("Inverse kinematics with collision check disabled:") options = {"check_collision": False} calculate(options) - -""" -Output: ->>> Target frame with Robot Mode: FrameTarget(Frame(point=Point(x=0.300, y=0.100, z=0.500), xaxis=Vector(x=1.000, y=0.000, z=0.000), yaxis=Vector(x=0.000, y=1.000, z=0.000)), ROBOT) ->>> Inverse kinematics with collision check enabled: (by default) ->>> Failed to find a configuration: No inverse kinematics solution found. ->>> Inverse kinematics with collision check disabled: ->>> Found configuration: Configuration((-0.031, -2.025, 2.161, 4.576, -4.712, -1.540), (0, 0, 0, 0, 0, 0), ('shoulder_pan_joint', 'shoulder_lift_joint', 'elbow_joint', 'wrist_1_joint', 'wrist_2_joint', 'wrist_3_joint')) -""" From 0fd8b3bedf6b19470a984dd52d3bc850c18178b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arda=20=C3=96ZCAN?= <76063457+ardozcnn@users.noreply.github.com> Date: Thu, 13 Aug 2026 23:46:27 +0300 Subject: [PATCH 2/2] Update 04_ik_allow_collision.py --- .../ros/files/04_ik_allow_collision.py | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/docs/backends/ros/files/04_ik_allow_collision.py b/docs/backends/ros/files/04_ik_allow_collision.py index 690052f17..0430dff5f 100644 --- a/docs/backends/ros/files/04_ik_allow_collision.py +++ b/docs/backends/ros/files/04_ik_allow_collision.py @@ -1,7 +1,15 @@ -from typing import Any, Dict -from compas.geometry import Box, Frame -from compas_fab.backends import InverseKinematicsError, MoveItPlanner, RosClient -from compas_fab.robots import FrameTarget, RigidBody, TargetMode +from typing import Any +from typing import Dict + +from compas.geometry import Box +from compas.geometry import Frame + +from compas_fab.backends import InverseKinematicsError +from compas_fab.backends import MoveItPlanner +from compas_fab.backends import RosClient +from compas_fab.robots import FrameTarget +from compas_fab.robots import RigidBody +from compas_fab.robots import TargetMode with RosClient() as client: planner = MoveItPlanner(client) @@ -37,3 +45,12 @@ def calculate(options: Dict[str, Any]) -> None: print("Inverse kinematics with collision check disabled:") options = {"check_collision": False} calculate(options) + +""" +Output: +>>> Target frame with Robot Mode: FrameTarget(Frame(point=Point(x=0.300, y=0.100, z=0.500), xaxis=Vector(x=1.000, y=0.000, z=0.000), yaxis=Vector(x=0.000, y=1.000, z=0.000)), ROBOT) +>>> Inverse kinematics with collision check enabled: (by default) +>>> Failed to find a configuration: No inverse kinematics solution found. +>>> Inverse kinematics with collision check disabled: +>>> Found configuration: Configuration((-0.031, -2.025, 2.161, 4.576, -4.712, -1.540), (0, 0, 0, 0, 0, 0), ('shoulder_pan_joint', 'shoulder_lift_joint', 'elbow_joint', 'wrist_1_joint', 'wrist_2_joint', 'wrist_3_joint')) +"""