From dc77d9ed43bc75828ffade8bcbbb693edc6410a9 Mon Sep 17 00:00:00 2001 From: Gomathi9520 Date: Mon, 28 Apr 2025 12:08:57 +0530 Subject: [PATCH] armbot trigger events added --- .../instances/animator/roboticArmAnimator.tsx | 8 ++++---- .../instances/armInstance/roboticArmInstance.tsx | 3 ++- .../instances/ikInstance/ikInstance.tsx | 16 +++++++++++++--- .../modules/simulation/roboticArm/roboticArm.tsx | 10 +++++----- .../instances/animator/vehicleAnimator.tsx | 2 -- app/src/modules/simulation/vehicle/vehicles.tsx | 2 +- 6 files changed, 25 insertions(+), 16 deletions(-) diff --git a/app/src/modules/simulation/roboticArm/instances/animator/roboticArmAnimator.tsx b/app/src/modules/simulation/roboticArm/instances/animator/roboticArmAnimator.tsx index fd7590e..7136a79 100644 --- a/app/src/modules/simulation/roboticArm/instances/animator/roboticArmAnimator.tsx +++ b/app/src/modules/simulation/roboticArm/instances/animator/roboticArmAnimator.tsx @@ -8,7 +8,7 @@ function RoboticArmAnimator({ armUuid, HandleCallback, currentPhase, ikSolver, t const { armBots } = useArmBotStore(); const { scene } = useThree(); const restSpeed = 0.1; - const restPosition = new THREE.Vector3(0, 2, 1.6); + const restPosition = new THREE.Vector3(0, 1, -1.6); const initialCurveRef = useRef(null); const initialStartPositionRef = useRef(null); const [initialProgress, setInitialProgress] = useState(0); @@ -26,7 +26,7 @@ function RoboticArmAnimator({ armUuid, HandleCallback, currentPhase, ikSolver, t }, [path]) useEffect(() => { - + }, [currentPath]) useFrame((_, delta) => { @@ -42,13 +42,13 @@ function RoboticArmAnimator({ armUuid, HandleCallback, currentPhase, ikSolver, t currentPath.map(point => new THREE.Vector3(point[0], point[1], point[2])) ); + const next = initialProgressRef.current + delta * 0.5; if (next >= 1) { - bone.position.copy(restPosition); + // bone.position.copy(restPosition); HandleCallback(); // Call the callback when the path is completed initialProgressRef.current = 0; // Set ref to 1 when done } else { - const point = curve.getPoint(next); // Get the interpolated point from the curve bone.position.copy(point); // Update the bone position along the curve initialProgressRef.current = next; // Update progress diff --git a/app/src/modules/simulation/roboticArm/instances/armInstance/roboticArmInstance.tsx b/app/src/modules/simulation/roboticArm/instances/armInstance/roboticArmInstance.tsx index 86eee6a..7972895 100644 --- a/app/src/modules/simulation/roboticArm/instances/armInstance/roboticArmInstance.tsx +++ b/app/src/modules/simulation/roboticArm/instances/armInstance/roboticArmInstance.tsx @@ -16,6 +16,7 @@ interface Process { endPoint?: Vector3; speed: number; } + function RoboticArmInstance({ robot }: { robot: ArmBotStatus }) { const { isPlaying } = usePlayButtonStore(); @@ -29,7 +30,7 @@ function RoboticArmInstance({ robot }: { robot: ArmBotStatus }) { const groupRef = useRef(null); const [processes, setProcesses] = useState([]); const [armBotCurvePoints, setArmBotCurvePoints] = useState({ start: [], end: [] }) - const restPosition = new THREE.Vector3(0, 2, 1.6); + const restPosition = new THREE.Vector3(0, 1, -1.6); let armBotCurveRef = useRef(null) const [path, setPath] = useState<[number, number, number][]>([]); diff --git a/app/src/modules/simulation/roboticArm/instances/ikInstance/ikInstance.tsx b/app/src/modules/simulation/roboticArm/instances/ikInstance/ikInstance.tsx index a8d8782..7ae16e3 100644 --- a/app/src/modules/simulation/roboticArm/instances/ikInstance/ikInstance.tsx +++ b/app/src/modules/simulation/roboticArm/instances/ikInstance/ikInstance.tsx @@ -15,6 +15,7 @@ type IKInstanceProps = { setArmBotCurvePoints: any }; function IKInstance({ modelUrl, setIkSolver, ikSolver, robot, groupRef, processes, setArmBotCurvePoints }: IKInstanceProps) { + console.log('robot: ', robot.position, robot.rotation); const { scene } = useThree(); const gltf = useLoader(GLTFLoader, modelUrl, (loader) => { const draco = new DRACOLoader(); @@ -65,15 +66,24 @@ function IKInstance({ modelUrl, setIkSolver, ikSolver, robot, groupRef, processe setIkSolver(solver); const helper = new CCDIKHelper(OOI.Skinned_Mesh, iks, 0.05); - - // scene.add(groupRef.current) + if (solver) { + const bone = solver.mesh.skeleton.bones.find( + (b: any) => b.name === targetBoneName + ) ?? ""; + if (bone) { + const position = new THREE.Vector3(); + bone.getWorldPosition(position); + console.log("world position", position.x, position.y, position.z); // this is the bone's world position + } + } + scene.add(helper) }, [gltf]); return ( <> - + { - + removeArmBot(armBotStatusSample[0].modelUuid); addArmBot('123', armBotStatusSample[0]); // addArmBot('123', armBotStatusSample[1]); diff --git a/app/src/modules/simulation/vehicle/instances/animator/vehicleAnimator.tsx b/app/src/modules/simulation/vehicle/instances/animator/vehicleAnimator.tsx index a0eeabd..fc5303e 100644 --- a/app/src/modules/simulation/vehicle/instances/animator/vehicleAnimator.tsx +++ b/app/src/modules/simulation/vehicle/instances/animator/vehicleAnimator.tsx @@ -140,8 +140,6 @@ function VehicleAnimator({ path, handleCallBack, currentPhase, agvUuid, agvDetai const elapsedTime = performance.now() - startTime; if (elapsedTime >= fixedInterval) { - console.log('fixedInterval: ', fixedInterval); - console.log('elapsedTime: ', elapsedTime); let droppedMat = droppedMaterial - 1; decrementVehicleLoad(agvDetail.modelUuid, 1); if (droppedMat === 0) return; diff --git a/app/src/modules/simulation/vehicle/vehicles.tsx b/app/src/modules/simulation/vehicle/vehicles.tsx index f0b4d17..9aa89f4 100644 --- a/app/src/modules/simulation/vehicle/vehicles.tsx +++ b/app/src/modules/simulation/vehicle/vehicles.tsx @@ -148,7 +148,7 @@ function Vehicles() { }, []) useEffect(() => { - console.log('vehicles: ', vehicles); + // console.log('vehicles: ', vehicles); }, [vehicles])