-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
FrED factory cooling subassembly Simulation #15
Comments
LucidChart of the whole Factory process Visual mock-up drawing for the simulationCooling Fan subassembly factory general viewCooling subassembly workstation
Fan subassembly workstation
Cooling Fan subassemblt workstation |
Folder with colored .fbx files to use in Unity |
Animationless SimulationFollowing the visual mock-up drawings, the simulation was created with the variables and text decided for the process, here is a video demo. The simulation contains the three subassemblies pre-defined: When clicked on the GameObject on the Hierarchy, the modifiable variables appear in the Inspector: In the UI, a counter appears for each subassembly and a text box with feedback on the process correspondent to each station. The Next steps:
|
Operator efficiency variablesIn order to increase the realism of the simulation, the previously arbitrary parameter of Only a few variables were chosen, in order to generate a large dataset and train a neural network to find the impact of each variable in the efficiency. The vision is to gather data from a real-world factory and the ponderated equation step would dissapear and be substituted by a neural network float deltaTime = currentTime - lastTime;
lastTime = currentTime;
// Time-series dependent parameters
float multiplier = 0.0001f * deltaTime;
attentionLevel = Math.Clamp(attentionLevel-multiplier, 0, 10);
cognitiveLoad = Math.Clamp(cognitiveLoad+multiplier, 0, 10);
learningCurve = Math.Clamp(learningCurve-multiplier*5, 0, 10);
stressLevel = Math.Clamp(stressLevel+multiplier, 0, 10);
fatigueLevel = Math.Clamp(fatigueLevel+multiplier, 0, 10);
motivationLevel = Math.Clamp(motivationLevel-multiplier, 0, 10);
// Determine operator efficiency based on operator parameters maximum efficiency is 100% and minimum efficiency is 0%
operatorEfficiency = 60 + 1 * (35-age) + 1 * experienceInYears + 2 * trainingLevel +
1 * attentionLevel - 1 * cognitiveLoad - 1 * learningCurve - 1 * stressLevel -
1 * fatigueLevel + 1 * motivationLevel + 1 * ergonomicRating +
1 * (70-noiseLevel) -
1 * Math.Abs(20-temperature) - 0.2f * Math.Abs(70-lighting);
operatorEfficiency = Mathf.Clamp(operatorEfficiency, 0, 100);
operatorEfficiencyText.text = operatorEfficiency.ToString();
screwFailRate = 0.08f + (100 - operatorEfficiency) * 0.003f; |
Simulation and Layout IntegrationWith a functional simulation program and a virtual layout for the factory, an integration of all the separate developments was made. First of all, taking the 3D layout as the main stage, the workstation switching algorithm from the ViperScene scene was imported and adapted to the new layout, with the updated workstation meshes and the main UI elements that allowed the switching system to work. For convenience of development, a new prefab for the workstations was made, which can provide scalability for the project's vision. Another Quality of Life feature that was implemented was the use of vectorial and quaternion time-related lerp methods to model the camera movement while switching stations, which smoothed the camera's motion between workstations. After the movement was ready, it was time to implement functionality upon the factory layout. All functional components from the RuntimeCoolingFanSubassembly scene, both GameObjects and UI Canvas elements, were imported into TheFrEDFactory scene, which contains the layout. Some UI elements were rearranged for visual appeal. For the subassembly counters and status texts, a WorldCanvas was created, which allows UI elements to be present in the world, not only on the screen. The reason for this was to turn those texts and counters into floating 3D texts in front of each station, displaying the status of the current jobs and subassembly counts per station. Other small visual changes were made, such as the rotation of all workstations by 90 degrees for visual appeal and symmetry, as well as the change to the background, swapping it from a standard skybox to a solid dark grey color to emphasize on the immersion of the factory. |
System prompt SLM:
|
Simulate the following processes for the FrED Cooling subassembly in Unity:
Reference video of Cooling Fan
The text was updated successfully, but these errors were encountered: