From 495aaa9b091b8ec62b65b47c802fe01a6ff12a53 Mon Sep 17 00:00:00 2001 From: Sam Hos Date: Fri, 7 Jun 2024 16:21:40 +0200 Subject: [PATCH 1/5] changed input script --- .../util/processing/InputProcessor.java | 45 +++++++++---------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java index 79d3c07..4b31291 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java @@ -107,32 +107,30 @@ public class InputProcessor { // Error checking thread. (new Thread(() -> { Log.i("InputProcessor", "Movement Checking Thread started"); - + while (this.exercisesRemaining > 0) { - + if ( this.totalChecks == 0 || this.selfRotationVectorPaths == null - || this.selfRotationVectorPaths.length == 0 - || this.selfRotationVectorPaths[0].size() == 0 - || this.selfRotationVectorPaths[1].size() == 0) + || this.selfRotationVectorPaths.length == 0) continue; - + boolean isFaulty = this.isFaultyMovement(); - + Log.i("InputProcessor", "Movement checked: " + (isFaulty ? "Faulty" : "Good")); - + if (isFaulty) { this.onInadequateRepetition(); } else this.onAdequateRepetition(); - + this.checksPerformed++; - + if (this.checksPerformed >= this.totalChecks) { this.checksPerformed = 0; this.exercisesRemaining--; acquireExercise(); } - + try { Thread.sleep((long) (this.errorCheckInterval_s * 1000)); } catch (InterruptedException e) { @@ -420,10 +418,10 @@ public class InputProcessor { * Function for checking whether the last movement was faulty */ public boolean isFaultyMovement() { - boolean[] deviceMovementStatus = new boolean[selfRotationVectorPaths.length]; + boolean upMovementDetected = false; + boolean downMovementDetected = false; - for (int i = 0; i < selfRotationVectorPaths.length; i++) { - List path = selfRotationVectorPaths[i]; + for (List path : selfRotationVectorPaths) { if (path.size() < 2) { continue; // Skip if there are not enough points to compare } @@ -434,17 +432,16 @@ public class InputProcessor { float y1 = firstPoint.y; float y2 = lastPoint.y; - // Assuming that a good movement is when y2 is greater than y1 - deviceMovementStatus[i] = y2 > y1; - } + if (y2 > y1) { + upMovementDetected = true; + } else if (y2 < y1) { + downMovementDetected = true; + } - // Return true for faulty movement if any device has faulty movement - for (boolean isGood : deviceMovementStatus) { - if (!isGood) { - return true; + if (upMovementDetected && downMovementDetected) { + return false; // Return false for faulty movement if both up and down movements are detected } } - return false; - } -} + return true; // Return true for faulty movement if only up or down movement is detected + }} From 83edfbccabb39c334488b27e91deb57c1fe3db2b Mon Sep 17 00:00:00 2001 From: Sam Hos Date: Sun, 9 Jun 2024 18:51:37 +0200 Subject: [PATCH 2/5] revert --- .../com/example/fitbot/util/processing/InputProcessor.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java index 4b31291..c3fc778 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java @@ -111,7 +111,9 @@ public class InputProcessor { while (this.exercisesRemaining > 0) { if ( this.totalChecks == 0 || this.selfRotationVectorPaths == null - || this.selfRotationVectorPaths.length == 0) + || this.selfRotationVectorPaths.length == 0 + || this.selfRotationVectorPaths[0].size() == 0 + || this.selfRotationVectorPaths[1].size() == 0) continue; boolean isFaulty = this.isFaultyMovement(); From 1d4447dd8c09e689373d6ddd465389dd9ea64660 Mon Sep 17 00:00:00 2001 From: Sam Hos Date: Sun, 9 Jun 2024 21:20:32 +0200 Subject: [PATCH 3/5] betoog --- docs/personal-documentation/Sam/Betoog.md | 27 +++++------------------ 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/docs/personal-documentation/Sam/Betoog.md b/docs/personal-documentation/Sam/Betoog.md index 12ec971..68b7fda 100644 --- a/docs/personal-documentation/Sam/Betoog.md +++ b/docs/personal-documentation/Sam/Betoog.md @@ -1,37 +1,22 @@ -# Betoog - -Hoofdvraag: Hoe beïnvloedt de opkomst van robots in de ouderenzorg de kwaliteit van leven en menselijke interactie van ouderen - -Deelvraag: Wat zijn de taken die robots kunnen overnemen in de ouderenzorg, en hoe verschilt dat met mensenlijke interactie? - -Deelvraag: Hoe ervaren ouderen communicatie en interactie met robots en wat zijn de voor en nadelen. - -Deelvraag: Welke ethische vragen komen naar boven bij het vervangen van menselijke interactie door robots in de ouderenzorg. - - ## Inleiding -Dit literatuur onderzoek gaat over de opkomst van robots in de ouderenzorg en de invloed die dit heeft op de ouderen die er mee te maken krijgen. De vraag naar ouderenzorg word veel groter, waardoor de vraag naar personeel ook stijgt. Daarnaast is er ook nog sprake van vergrijzing waardoor de vraag nog meer toeneemt. Omdat er niet genoeg personeel is om de grote vraag te vervullen worden er robots ingezet om de taken van het personeel over te nemen. Wat voor effect heeft deze verandering op de ouderen en is het wel verantwoord om robots in te zetten in de ouderenzorg? +De ouderenzorg staat onder druk door de vergrijzing en het tekort aan zorgpersoneel. Robots worden steeds vaker ingezet om deze problemen aan te pakken. Dit literatuuronderzoek onderzoekt de invloed van robots op de ervaringen en de ethische kwestie of het verantwoord is voor ouderen in de ouderenzorg. Dit onderzoek biedt inzichten voor ouderenzorg over de inzet van robots. Het literatuuronderzoek bespreekt de taken van robots, de ervaringen van ouderen en de ethische kwesties, en concludeert of het verantwoord is om robots in te zetten. ## Taken van robots in de ouderenzorg +Robots kunnen ouderen helpen bij hun dagelijkse activiteiten. Blijkt uit het literatuuroverzicht van [(Asgharian et al. (2022))](https://www.mdpi.com/2218-6581/11/6/127). Volgens de schrijvers kunnen deze robots herinneringen, huishoudelijke taken, veiligheid en gezondheidsmonitoring ondersteunen. Volgens [(Asgharian et al. (2022))](https://www.mdpi.com/2218-6581/11/6/127) Kunnen mobiele robots ouderen mensen assisteren met taken zoals herinneringen of huishoudelijke taken. Dit laat zien dat robots een groot deel van de last kunnen overnemen van het zorgpersoneel. -Robots kunnen ouderen helpen bij hun dagelijkse activiteiten. Blijkt uit het literatuuroverzicht van [(Asgharian et al. (2022) -)](https://www.mdpi.com/2218-6581/11/6/127). Volgens de schrijvers kunnen deze robots herinneringen, huishoudelijke taken, veiligheid en gezondheidsmonitoring ondersteunen. Volgens [(Asgharian et al. (2022) -)](https://www.mdpi.com/2218-6581/11/6/127) Kunnen mobiele robots ouderen mensen assisteren met taken zoals herinneringen of huishoudelijke taken. Dit laat zien dat robots best veel last kunnen overnemen van het zorgpersoneel. - -Aan de andere kant, zoals beschreven in het artikel van [(Frontiers in Robotics and AI, 2021)](https://www.frontiersin.org/articles/10.3389/frobt.2021.605715/full), is de natuurlijke interactie tussen mens en robot complex. Robots moeten niet alleen in staat zijn om de intenties, gevoelens en persoonlijkheden van gebruikers te begrijpen, maar ze moeten ook in staat zijn om op een natuurlijke en medelevende manier te reageren. Dit vereist cognitieve en sociaal-emotionele vaardigheden, evenals geavanceerde redeneer-, perceptie- en leermodules voor robots. Zo zeggen de auteurs dat [(Frontiers in Robotics and AI, 2021)](https://www.frontiersin.org/articles/10.3389/frobt.2021.605715/full) interactie trainen voor de robot enorm lastig is en dat er nog veel onderzoek nodig is om dit te verbeteren. +Aan de andere kant, zoals beschreven in het artikel van [(Frontiers in Robotics and AI, 2021)](https://www.frontiersin.org/articles/10.3389/frobt.2021.605715/full), is de natuurlijke interactie tussen mens en robot complex. Robots moeten niet alleen in staat zijn om de intenties, gevoelens en persoonlijkheden van gebruikers te begrijpen, maar ze moeten ook in staat zijn om op een natuurlijke en medelevende manier te reageren. Dit vereist cognitieve en sociaal-emotionele vaardigheden, geavanceerde argumentatie- en perceptie- voor robots. Zo zeggen de auteurs dat [(Frontiers in Robotics and AI, 2021)](https://www.frontiersin.org/articles/10.3389/frobt.2021.605715/full) interactie trainen voor de robot enorm lastig is en dat er nog onderzoek nodig is om dit te verbeteren. ## Ervaring van ouderen met robots -Bij de introductie van robots in de ouderenzorg zijn de ervaringen van de ouderen verdeeld. Er zijn veel positieve en negatieve ervaringen met robots in de ouderenzorg volgens [(Helinä Melkas, 2016)](https://roseproject.aalto.fi/images/publications/ICServe_Melkas.pdf). De positieve ervaringen zijn bijvoorbeeld dat er iemand even voor hun was en dat de robot niet boos of geïrriteerd raakt om iets vaker te herhalen. Ouderen ervaren ook negatieven ervaringen met robots. Zoals dat ze de robots verwarrend vinden ook vinden sommigen ouderen dat ze het menselijk contact missen. [(Helinä Melkas, 2016)](https://roseproject.aalto.fi/images/publications/ICServe_Melkas.pdf). +Bij de introductie van robots in de ouderenzorg zijn de ervaringen van de ouderen verdeeld. Er zijn positieve en negatieve ervaringen met robots in de ouderenzorg volgens [(Helinä Melkas, 2016)](https://roseproject.aalto.fi/images/publications/ICServe_Melkas.pdf). De positieve ervaringen zijn bijvoorbeeld dat er iemand even voor hun was en dat de robot niet boos of geïrriteerd raakt om iets vaker te herhalen. Ouderen ervaren ook negatieven ervaringen met robots. Bijvoorbeeld dat ze de robots verwarrend vinden ook vinden sommigen ouderen dat ze het menselijk contact missen. [(Helinä Melkas, 2016)](https://roseproject.aalto.fi/images/publications/ICServe_Melkas.pdf). ## Welke ethische vragen komen er naar boven? -Het gebruik van robots wekt meerdere ethische vragen op, zoals wat voor impact dit heeft op de zorg en wat voor sociale impact heeft dit op ouderen. Ook speelt privacy een grote rol. Volgens [(Poulsen et al. 2018)](https://researchoutput.csu.edu.au/ws/portalfiles/portal/35459797/28761055_Conference_paper.pdf) Is een goed maatregel beperken wat de robot kan doen, zodat er minder ethische vraagstukken naar voren komen en dus ook privacy beter beschermt kan worden. Ook word er in het artikel gezegd dat er met de ouderen overlegd moet worden wat ze van de robot verwachten en wat ze wel en niet willen van de robot. Het is belangrijk om de ouderen te betrekken bij de beslissingen die gemaakt worden. +Door het gebruik van robots in de ouderenzorg brengt ethische vraagstukken op, zoals wat voor impact dit heeft op de zorg en wat voor sociale impact heeft dit op ouderen. Ook speelt privacy een grote rol. Volgens [(Poulsen et al. 2018)](https://researchoutput.csu.edu.au/ws/portalfiles/portal/35459797/28761055_Conference_paper.pdf) Is een goed maatregel is beperken wat de robot kan doen, zodat er minder ethische vraagstukken naar voren komen en dus ook privacy beter beschermt kan worden. Ook word er in het artikel gezegd dat er met de ouderen overlegd moet worden wat ze van de robot verwachten en wat ze wel en niet willen van de robot. Het is belangrijk om de ouderen te betrekken bij de beslissingen die gemaakt worden. ## Conclusie -Er zijn dus gemengde redenen om robots in te zetten in de ouderenzorg. Het is belangrijk om te kijken naar de ervaringen van de ouderen en of het wel verantwoord is om robots in te zetten in de ouderenzorg. Uiteindelijk moet er gekeken worden of de ouderen een robot willen en wat de wensen er van zijn. - +De inzet van robots in de ouderenzorg kan veel hulp bieden bij dagelijkse taken, maar de interactie tussen mens en robot blijft ingewikkeld. Ouderen hebben gemengde ervaringen, waarbij sommigen de hulp van robots fijn vinden en anderen het menselijke contact missen. Ethische kwesties zoals privacy moeten voorzichtig worden behandeld. Het is verantwoord om robots in te zetten, Als de wensen van ouderen centraal en de privacy van de ouderen centraal staat. Uiteindelijk moet er gekeken worden of de ouderen een robot willen en wat de wensen er van zijn. ## bronnen * https://www.frontiersin.org/articles/10.3389/frobt.2021.605715/full From cdb36c9303ace4ee6f1b2933dc8f797a21cd4055 Mon Sep 17 00:00:00 2001 From: Sam Hos Date: Sun, 9 Jun 2024 23:17:48 +0200 Subject: [PATCH 4/5] Opmaak --- docs/personal-documentation/Sam/Betoog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/personal-documentation/Sam/Betoog.md b/docs/personal-documentation/Sam/Betoog.md index 68b7fda..05b5d73 100644 --- a/docs/personal-documentation/Sam/Betoog.md +++ b/docs/personal-documentation/Sam/Betoog.md @@ -1,5 +1,5 @@ ## Inleiding -De ouderenzorg staat onder druk door de vergrijzing en het tekort aan zorgpersoneel. Robots worden steeds vaker ingezet om deze problemen aan te pakken. Dit literatuuronderzoek onderzoekt de invloed van robots op de ervaringen en de ethische kwestie of het verantwoord is voor ouderen in de ouderenzorg. Dit onderzoek biedt inzichten voor ouderenzorg over de inzet van robots. Het literatuuronderzoek bespreekt de taken van robots, de ervaringen van ouderen en de ethische kwesties, en concludeert of het verantwoord is om robots in te zetten. +Er is een tekort in de ouderenzorg door de vergrijzing en te weinig zorgpersoneel. Robots worden steeds vaker ingezet om deze problemen aan te pakken. Dit literatuuronderzoek onderzoekt de invloed van robots op de ervaringen en de ethische kwestie of het verantwoord is voor ouderen in de ouderenzorg. Dit onderzoek biedt inzichten voor ouderenzorg over de inzet van robots. Het literatuuronderzoek bespreekt de taken van robots, de ervaringen van ouderen en de ethische kwesties, en concludeert of het verantwoord is om robots in te zetten. ## Taken van robots in de ouderenzorg Robots kunnen ouderen helpen bij hun dagelijkse activiteiten. Blijkt uit het literatuuroverzicht van [(Asgharian et al. (2022))](https://www.mdpi.com/2218-6581/11/6/127). Volgens de schrijvers kunnen deze robots herinneringen, huishoudelijke taken, veiligheid en gezondheidsmonitoring ondersteunen. Volgens [(Asgharian et al. (2022))](https://www.mdpi.com/2218-6581/11/6/127) Kunnen mobiele robots ouderen mensen assisteren met taken zoals herinneringen of huishoudelijke taken. Dit laat zien dat robots een groot deel van de last kunnen overnemen van het zorgpersoneel. From e91deedcc3f47192949afd5fe7e002de760cf3c0 Mon Sep 17 00:00:00 2001 From: Sam Hos Date: Mon, 10 Jun 2024 10:51:20 +0200 Subject: [PATCH 5/5] array intialization --- .../fitbot/ui/activities/FitnessActivity.java | 2 ++ .../fitbot/util/processing/InputProcessor.java | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java index 5b681fc..8ab63fd 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/ui/activities/FitnessActivity.java @@ -189,6 +189,8 @@ public class FitnessActivity extends RobotActivity implements RobotLifecycleCall EXERCISE_VIDEO_REPETITION++; if (progress >= 10) { runOnUiThread(() -> NavigationManager.navigateToActivity(this, EndScreenActivity.class)); + InputProcessor.exercisesRemaining = 1; + } } }); diff --git a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java index c3fc778..9d07109 100644 --- a/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java +++ b/code/src/Fitbot/app/src/main/java/com/example/fitbot/util/processing/InputProcessor.java @@ -25,11 +25,13 @@ import java.util.List; public class InputProcessor { - private List[] selfRotationVectorPaths = null; // Relative path of the motion data + private List[] selfRotationVectorPaths = null; + + // Relative path of the motion data private Vector3f[][] targetRotationVectorPaths; // Target path of the motion data private float exerciseRepetitionDurationInSeconds = 0.0f; - private int exercisesRemaining = 1; + public static int exercisesRemaining = 1; private float errorCheckInterval_s; private int checksPerformed = 0; @@ -77,6 +79,10 @@ public class InputProcessor { */ public InputProcessor(FitnessActivity parentActivity) { this.parentActivity = parentActivity; + + // Initialize each ArrayList in the array + this.selfRotationVectorPaths[0] = new ArrayList<>(); + this.selfRotationVectorPaths[1] = new ArrayList<>(); } /** @@ -89,11 +95,13 @@ public class InputProcessor { * * @param exercise The exercise to use the paths for. */ + + public void useExercise(Exercise exercise) { if (this.recordingMovement) throw new IllegalStateException("Cannot change exercise while recording movement."); - this.exercisesRemaining = 1; + exercisesRemaining = 1; this.nextExercise(exercise); Pepper.say(STARTING_PHRASES[(int) Math.floor(Math.random() * STARTING_PHRASES.length)]); } @@ -108,7 +116,7 @@ public class InputProcessor { (new Thread(() -> { Log.i("InputProcessor", "Movement Checking Thread started"); - while (this.exercisesRemaining > 0) { + while (exercisesRemaining > 0) { if ( this.totalChecks == 0 || this.selfRotationVectorPaths == null || this.selfRotationVectorPaths.length == 0