You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Flange** is built on two primary kinematic components: `Frame.cs` and `Joint.cs`. TThese scripts define the kinematic chain and enforce movement constraints.
41
+
**Flange** is built on two primary components: `Frame.cs` and `Joint.cs`. These scripts define the kinematic chain and enforce movement constraints.
A`MechanicalUnit.cs`combines multiple Frames and Joints into a single assembly, such as an arm or external positioner. It provides essential functionality for configuring and controlling the unit:
60
-
+**Custom Control Panel:**Offers a dedicated interface within the Unity editor to configure and manipulate the unit.
61
-
+**Frame and Joint References:**Ensures that all Frames and Joints within the Mechanical Unit are properly referenced to form a complete kinematic chain.
62
-
+**External Control Access:**Includes public methods to control the unit from external scripts.
63
-
+**Save and Load Configurations:**Public methods to save and load configurations for Frames and Joints, enabling the sharing of kinematic chain parameters across different units.
64
-
+**Kinematic Chain Visualization:** When Gizmos are enabled, a visual representation of the kinematic chain is displayed, aiding in understanding and troubleshooting the mechanical structure.
59
+
The`MechanicalUnit.cs`integrates multiple frames and joints into a single assembly, such as a robotic arm or an external positioner. It has key functions for configuring and controlling the unit, including:
60
+
+**Custom Inspector:**A single joint value can be controlled using its corresponding slider field.
61
+
+**Frame and Joint References:**All joints and frames must be assigned in sequential chain order.
62
+
+**External Control:**Public methods to control the unit from another scripts.
63
+
+**Save and Load Configurations:**Save and load configurations (Scriptable Object) for Frames and Joints, enabling the sharing of kinematic chain parameters across different prefabs.
64
+
+**Kinematic Chain Visualization:** When Gizmos are enabled, a visual representation of the kinematic chain is displayed.
65
65
66
66
> [!NOTE]
67
67
> Only serial (open chain) kinematic will supported by default
68
68
69
69
## Robots
70
70
71
-
`Robot.cs` serves as an abstract base class for various robotic manipulators within the Flange framework.
72
-
It establishes a abstract methods for implementing forward (FK) and inverse kinematics (IK) specific to different robot types.
71
+
`Robot.cs` serves as an abstract base class for various robotic manipulators within the Flange framework.
72
+
It defines abstract methods for forward (FK) and inverse kinematics (IK) that must be implemented by specific robot types.
73
73
74
74
+**Kinematics Implementation**:
75
75
Forward and inverse kinematics calculations are defined in derived classes, allowing for flexibility in handling different robotic configurations.
@@ -109,20 +109,20 @@ You can find this Robot Prefab in Samples: `Assets/com.preliy.flange/Samples/Dem
109
109
110
110
## Controller
111
111
112
-
`Controller.cs`serves as the virtual robot controller within the Flange package, orchestrating key calculations and configurations for robot motion and interaction.
113
-
+**Kinematics Management**: Manages forward and inverse kinematics calculations, accounting for the tool, frames, and robot-specific configuration.
114
-
+**External Unit Integration**: References external units and incorporates their positions into the TCP (Tool Center Point) calculations
112
+
`Controller.cs`functions as the virtual robot controller within the Flange package, orchestrating calculations and configurations for robot motion and interaction.
113
+
+**Kinematics Management**: Manages forward and inverse kinematics calculations, taking into account tool parameters, reference frames, and robot-specific configuration.
114
+
+**External Unit Integration**: Includes external unit references and uses their position data for the Tool Center Point (TCP) calculations.
The `Controller.cs` component features a custom inspector UI, allowing users to control the robot through joint values or by directly moving the TCP. In the Cartesian section of the UI, users can view essential properties such as the current TCP position and rotation, the tool, frame, and robot configuration. Additionally, the configuration selection tool includes a "Select" button, enabling users to browse all possible configurations for a specific pose, with the `Show Turn` option providing further configurations that account for axis turns.
118
+
The `Controller.cs` component provides a custom inspector that allows to control the robot either by adjusting the joint values or by directly manipulating the TCP. Additionally, the configuration selection tool includes a "Select" button, enabling users to browse all possible configurations for a specific pose, with the `Show Turn` option providing further configurations that account for axis turns.
119
119
120
-
To use the `Tool` and `Frame` properties, tools and frames must first be assigned in the corresponding lists within `Controller.cs`. The Tool and Frame property indices will reference these lists, allowing the user to select specific tools and frames based on their index values.
120
+
To use the `Tool` and `Frame` properties, tools and frames must first be assigned in the corresponding lists within `Controller.cs`. The Tool and Frame property indices will reference these lists, allowing to select specific tools and frames based on their index values.
121
121
122
122
For kinematic configuration, `Controller.cs` includes three main fields:
123
123
+ The **Robot** field, where the robot itself is assigned.
124
124
+ The **Base** field, which requires the assignment of a base mechanical unit. This unit acts as the base for the robot, allowing the robot’s reference frame to be moved—for example, along a linear axis.
125
-
+ The **External** list, where external mechanical units, such as positioners or rotating tables, can be added to extend the robot’s operational capabilities and coordinate its movements with additional devices.
125
+
+ The **External** list, where external mechanical units, such as positioner or rotating table, can be added to extend the robot’s operational capabilities and coordinate its movements with additional devices.
126
126
127
127
> [!NOTE]
128
128
> If the mechanical configuration is modified, the inspector UI must be reloaded. Reselect the Controller GameObject to see the updated Joints Slider list in the inspector.
0 commit comments