Revert "Merge remote-tracking branch 'origin/simulation-agv-v2' into v2"

This reverts commit 27c7072cc9, reversing
changes made to cd737ed74c.
This commit is contained in:
Jerald-Golden-B 2025-04-23 12:27:02 +05:30
parent 27c7072cc9
commit 58b0e779fd
5 changed files with 20 additions and 157 deletions

View File

@ -16,11 +16,11 @@ import addAssetModel from "../geomentries/assets/addAssetModel";
import { getFloorAssets } from "../../../services/factoryBuilder/assest/floorAsset/getFloorItemsApi"; import { getFloorAssets } from "../../../services/factoryBuilder/assest/floorAsset/getFloorItemsApi";
import useModuleStore from "../../../store/useModuleStore"; import useModuleStore from "../../../store/useModuleStore";
// import { retrieveGLTF } from "../../../utils/indexDB/idbUtils"; // import { retrieveGLTF } from "../../../utils/indexDB/idbUtils";
import { useEventsStore } from "../../../store/simulation/useEventsStore";
const assetManagerWorker = new Worker(new URL("../../../services/factoryBuilder/webWorkers/assetManagerWorker.js", import.meta.url)); const assetManagerWorker = new Worker(new URL("../../../services/factoryBuilder/webWorkers/assetManagerWorker.js", import.meta.url));
const gltfLoaderWorker = new Worker(new URL("../../../services/factoryBuilder/webWorkers/gltfLoaderWorker.js", import.meta.url)); const gltfLoaderWorker = new Worker(new URL("../../../services/factoryBuilder/webWorkers/gltfLoaderWorker.js", import.meta.url));
import { useEventsStore } from "../../../store/simulation/useEventsStore";
const FloorItemsGroup = ({ itemsGroup, hoveredDeletableFloorItem, AttachedObject, floorGroup, tempLoader, isTempLoader, plane, }: any) => { const FloorItemsGroup = ({ itemsGroup, hoveredDeletableFloorItem, AttachedObject, floorGroup, tempLoader, isTempLoader, plane, }: any) => {
const state: Types.ThreeState = useThree(); const state: Types.ThreeState = useThree();
const { raycaster, controls }: any = state; const { raycaster, controls }: any = state;

View File

@ -1,38 +1,6 @@
import { useFrame, useThree } from '@react-three/fiber'; import React from 'react'
import React, { useEffect, useState } from 'react'
interface VehicleAnimatorProps { function VehicleAnimator() {
path: [number, number, number][];
handleCallBack: () => void;
currentPhase: string;
agvUuid: number
}
function VehicleAnimator({ path, handleCallBack, currentPhase, agvUuid }: VehicleAnimatorProps) {
const [currentPath, setCurrentPath] = useState<[number, number, number][]>([]);
const { scene } = useThree();
useEffect(() => {
if (currentPhase === 'stationed-pickup' && path.length > 0) {
setCurrentPath(path);
}
}, [currentPhase, path])
useFrame(() => {
if (currentPath.length === 0) return;
const object = scene.getObjectByProperty("uuid", agvUuid);
if (!object) return;
})
return ( return (
<> <>
</> </>

View File

@ -1,64 +1,11 @@
import React, { useCallback, useEffect, useState } from 'react' import React from 'react'
import VehicleAnimator from '../animator/vehicleAnimator' import VehicleAnimator from '../animator/vehicleAnimator'
import * as THREE from "three";
import { NavMeshQuery } from '@recast-navigation/core';
import { useNavMesh } from '../../../../../store/store';
import { usePlayButtonStore } from '../../../../../store/usePlayButtonStore';
import { useVehicleStore } from '../../../../../store/simulation/useVehicleStore';
function VehicleInstance({ agvDetails }: any) {
const { navMesh } = useNavMesh();
const { isPlaying } = usePlayButtonStore();
const { setVehicleActive, setVehicleState } = useVehicleStore();
const [currentPhase, setCurrentPhase] = useState<(string)>("stationed");
const [path, setPath] = useState<[number, number, number][]>([]);
const computePath = useCallback((start: any, end: any) => {
try {
const navMeshQuery = new NavMeshQuery(navMesh);
const { path: segmentPath } = navMeshQuery.computePath(start, end);
return (
segmentPath?.map(
({ x, y, z }) => [x, y + 0.1, z] as [number, number, number]
) || []
);
} catch {
return [];
}
}, [navMesh]);
useEffect(() => {
// const pickupToDropPath = computePath(pickup, drop);
// const dropToPickupPath = computePath(drop, pickup);
if (isPlaying) {
if (!agvDetails.isActive && agvDetails.state == "idle" && currentPhase == "stationed") {
const toPickupPath = computePath(new THREE.Vector3(agvDetails.position[0], agvDetails.position[1], agvDetails.position[2]), agvDetails.point.action.pickUpPoint);
setPath(toPickupPath)
setVehicleActive(agvDetails.modelUuid, true)
setVehicleState(agvDetails.modelUuid, "running")
setCurrentPhase("stationed-pickup")
//
}
}
}, [agvDetails, currentPhase, path, isPlaying])
function handleCallBack() {
if (currentPhase === "stationed-pickup") {
setVehicleActive(agvDetails.modelUuid, false)
setVehicleState(agvDetails.modelUuid, "idle")
setCurrentPhase("picking")
setPath([])
}
}
function VehicleInstance() {
return ( return (
<> <>
<VehicleAnimator path={path} handleCallBack={handleCallBack} currentPhase={currentPhase} agvUuid={agvDetails?.modelUUID} /> <VehicleAnimator />
</> </>
) )

View File

@ -1,13 +1,11 @@
import React from 'react' import React from 'react'
import VehicleInstance from './instance/vehicleInstance' import VehicleInstance from './instance/vehicleInstance'
function VehicleInstances({ vehicles }: any) { function VehicleInstances() {
return ( return (
<> <>
{vehicles.map((val: any, i: any) => <VehicleInstance />
<VehicleInstance agvDetails={val} key={i} />
)}
</> </>
) )

View File

@ -9,63 +9,13 @@ function Vehicles() {
const vehicleStatusSample: VehicleStatus[] = [ const vehicleStatusSample: VehicleStatus[] = [
{ {
modelUuid: "2c01ed76-359a-485b-83d4-052cfcdb9d89", modelUuid: "veh-123",
modelName: "AGV", modelName: "Autonomous Truck A1",
position: [10, 0, 5], position: [10, 0, 5],
rotation: [0, 0, 0], rotation: [0, 0, 0],
state: "idle", state: "idle",
type: "vehicle", type: "vehicle",
speed: 2.5, speed: 2.5,
point: {
uuid: "point-789",
position: [93.42159216649789, 0, 23.790878603572857],
rotation: [0, 0, 0],
action: {
actionUuid: "action-456",
actionName: "Deliver to Zone A",
actionType: "travel",
material: "crate",
unLoadDuration: 15,
loadCapacity: 5,
pickUpPoint: { x: 5, y: 0, z: 3 },
unLoadPoint: { x: 20, y: 0, z: 10 },
triggers: [
{
triggerUuid: "trig-001",
triggerName: "Start Travel",
triggerType: "onComplete",
delay: 0,
triggeredAsset: {
triggeredModel: { modelName: "ArmBot-X", modelUuid: "arm-001" },
triggeredPoint: { pointName: "Pickup Arm Point", pointUuid: "arm-point-01" },
triggeredAction: { actionName: "Grab Widget", actionUuid: "grab-001" }
}
},
{
triggerUuid: "trig-002",
triggerName: "Complete Travel",
triggerType: "onComplete",
delay: 2,
triggeredAsset: null
}
]
}
},
productId: "prod-890",
isActive: false,
idleTime: 0,
activeTime: 0,
currentLoad: 0,
distanceTraveled: 0
},
{
modelUuid: "311130b9-4f2e-425a-b3b5-5039cb348806",
modelName: "AGV",
position: [95.69567023145055, 0, 33.18042399595448],
rotation: [0, 0, 0],
state: "idle",
type: "vehicle",
speed: 2.5,
point: { point: {
uuid: "point-789", uuid: "point-789",
position: [0, 1, 0], position: [0, 1, 0],
@ -83,7 +33,7 @@ function Vehicles() {
{ {
triggerUuid: "trig-001", triggerUuid: "trig-001",
triggerName: "Start Travel", triggerName: "Start Travel",
triggerType: "onStart", triggerType: "onComplete",
delay: 0, delay: 0,
triggeredAsset: { triggeredAsset: {
triggeredModel: { modelName: "ArmBot-X", modelUuid: "arm-001" }, triggeredModel: { modelName: "ArmBot-X", modelUuid: "arm-001" },
@ -107,10 +57,11 @@ function Vehicles() {
activeTime: 0, activeTime: 0,
currentLoad: 0, currentLoad: 0,
distanceTraveled: 0 distanceTraveled: 0
}, { },
modelUuid: "fa54132c-8333-4832-becb-5281f5e11549", {
modelName: "AGV", modelUuid: "veh-123",
position: [102.71483985219794, 0, 23.66321267938962], modelName: "Autonomous Truck A1",
position: [10, 0, 5],
rotation: [0, 0, 0], rotation: [0, 0, 0],
state: "idle", state: "idle",
type: "vehicle", type: "vehicle",
@ -163,7 +114,6 @@ function Vehicles() {
useEffect(() => { useEffect(() => {
addVehicle('123', vehicleStatusSample[0]); addVehicle('123', vehicleStatusSample[0]);
addVehicle('123', vehicleStatusSample[1]); addVehicle('123', vehicleStatusSample[1]);
addVehicle('123', vehicleStatusSample[2]);
}, []) }, [])
useEffect(() => { useEffect(() => {
@ -174,7 +124,7 @@ function Vehicles() {
return ( return (
<> <>
<VehicleInstances vehicles={vehicles} /> <VehicleInstances />
</> </>
) )