Merge remote-tracking branch 'origin/main'

# Conflicts:
#	code/src/Fitbot/app/src/main/java/com/example/fitbot/MainActivity.java
This commit is contained in:
Luca Warmenhoven
2024-04-26 11:24:51 +02:00
55 changed files with 1065 additions and 132 deletions

View File

@@ -12,6 +12,6 @@
</deviceKey>
</Target>
</targetSelectedWithDropDown>
<timeTargetWasSelectedWithDropDown value="2024-04-24T11:45:40.185922Z" />
<timeTargetWasSelectedWithDropDown value="2024-04-25T18:30:01.781792600Z" />
</component>
</project>

View File

@@ -3,17 +3,19 @@
<component name="DesignSurface">
<option name="filePathToZoomLevelMap">
<map>
<entry key="../../../../../../../../layout/custom_preview.xml" value="0.35989583333333336" />
<entry key="..\:/Users/31687/muupooviixee66-1/code/src/Fitbot/app/src/main/res/layout/activity_bicepvideo.xml" value="0.2015625" />
<entry key="..\:/Users/31687/muupooviixee66-1/code/src/Fitbot/app/src/main/res/layout/activity_main.xml" value="0.2015625" />
<entry key="..\:/Users/31687/muupooviixee66-1/code/src/Fitbot/app/src/main/res/layout/activity_main_screen.xml" value="0.358695652173913" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_bicepvideo.xml" value="0.22826086956521738" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_main.xml" value="0.1" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_bicepvideo.xml" value="0.136" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_completion_screen.xml" value="0.18541666666666667" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_main.xml" value="0.12" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_main_screen.xml" value="0.1" />
<entry key="app/src/main/res/layout/activity_main.xml" value="0.2341485507246377" />
<entry key="app/src/main/res/layout/activity_sport_item.xml" value="0.2341485507246377" />
<entry key="app/src/main/res/layout/activity_sport_menu.xml" value="0.22056159420289856" />
<entry key="app/src/main/res/layout/sport_menu_item.xml" value="0.22056159420289856" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_power_screen.xml" value="0.1" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_sport_item.xml" value="0.18541666666666667" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/activity_sport_menu.xml" value="0.18541666666666667" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/header.xml" value="0.18125" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/layout/toolbar.xml" value="0.1" />
<entry key="..\:/Users/sebas/Documents/HvA/Reposetories/muupooviixee66/code/src/Fitbot/app/src/main/res/menu/main_menu.xml" value="0.1" />
</map>
</option>
</component>

View File

@@ -33,6 +33,7 @@ dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:2.0.4'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.fitbot">
package="com.example.fitbot" >
<uses-feature android:name="com.softbank.hardware.pepper" />
@@ -10,25 +10,25 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Fitbot">
android:theme="@style/Theme.Fitbot" >
<activity
android:name=".ui.SportMenuActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".bicepvideo"
android:name=".Completion_Screen"
android:exported="false" />
<activity
android:name=".MainScreen"
android:name=".ui.SportMenuActivity"
android:exported="false" />
<activity
android:name=".BicepVideo"
android:exported="false" />
<activity
android:name=".PowerScreen"
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true">
android:exported="false" />
<activity
android:name=".MainScreen"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

View File

@@ -0,0 +1,33 @@
package com.example.fitbot;
import android.support.v7.app.AppCompatActivity;
import com.aldebaran.qi.sdk.QiContext;
import com.aldebaran.qi.sdk.builder.AnimateBuilder;
import com.aldebaran.qi.sdk.builder.AnimationBuilder;
import com.aldebaran.qi.sdk.object.actuation.Animate;
import com.aldebaran.qi.sdk.object.actuation.Animation;
public class Animations extends AppCompatActivity {
public static void Animate(String AnimationFile, QiContext ctx)
{
PlayAnimation(AnimationFile, ctx);
}
public static void PlayAnimation(String AnimationFile, QiContext ctx)
{
int resId = ctx.getResources().getIdentifier(AnimationFile, "raw", ctx.getPackageName());
Animation animation = AnimationBuilder.with(ctx)
.withResources(resId)
.build();
Animate animate = AnimateBuilder.with(ctx)
.withAnimation(animation)
.build();
animate.async().run();
}
}

View File

@@ -0,0 +1,59 @@
package com.example.fitbot;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.VideoView;
import com.aldebaran.qi.sdk.QiContext;
import com.aldebaran.qi.sdk.builder.AnimateBuilder;
import com.aldebaran.qi.sdk.builder.AnimationBuilder;
import com.aldebaran.qi.sdk.object.actuation.Animate;
import com.aldebaran.qi.sdk.object.actuation.Animation;
public class BicepVideo extends AppCompatActivity {
// private QiContext qiContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bicepvideo);
setupButtons();
}
public void Video(QiContext qiContext) {
VideoView videoView = findViewById(R.id.videoView);
videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bicepvideo));
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
videoView.setOnCompletionListener(mp -> videoView.start());
videoView.start();
Animation animation = AnimationBuilder.with(qiContext)
.withResources(R.raw.bicepcurl)
.build();
Animate animate = AnimateBuilder.with(qiContext)
.withAnimation(animation)
.build();
animate.async().run();
}
private void setupButtons() {
Button backButton = findViewById(R.id.buttonback);
backButton.setOnClickListener(v -> finish());
Button completeButton = findViewById(R.id.buttoncomplete);
completeButton.setOnClickListener(v -> {
Intent intent = new Intent(BicepVideo.this, Completion_Screen.class);
startActivity(intent);
});
}
}

View File

@@ -0,0 +1,13 @@
package com.example.fitbot;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class Completion_Screen extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_completion_screen);
}
}

View File

@@ -1,5 +1,7 @@
package com.example.fitbot;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
@@ -7,9 +9,18 @@ import android.widget.Button;
import com.aldebaran.qi.sdk.QiContext;
import com.aldebaran.qi.sdk.QiSDK;
import com.aldebaran.qi.sdk.RobotLifecycleCallbacks;
import com.aldebaran.qi.sdk.builder.AnimateBuilder;
import com.aldebaran.qi.sdk.builder.AnimationBuilder;
import com.aldebaran.qi.sdk.builder.SayBuilder;
import com.aldebaran.qi.sdk.design.activity.RobotActivity;
import com.aldebaran.qi.sdk.design.activity.conversationstatus.SpeechBarDisplayStrategy;
import com.aldebaran.qi.sdk.object.actuation.Animate;
import com.aldebaran.qi.sdk.object.actuation.Animation;
import com.aldebaran.qi.sdk.object.conversation.Phrase;
import com.aldebaran.qi.sdk.object.conversation.Say;
import com.aldebaran.qi.sdk.object.locale.Language;
import com.aldebaran.qi.sdk.object.locale.Locale;
import com.aldebaran.qi.sdk.object.locale.Region;
import com.example.fitbot.ui.SportMenuActivity;
@@ -37,15 +48,42 @@ public class MainActivity extends RobotActivity implements RobotLifecycleCallbac
@Override
public void onRobotFocusGained(QiContext qiContext) {
Locale locale = new Locale(Language.DUTCH, Region.NETHERLANDS);
// Create a new say action.
Say say = SayBuilder.with(qiContext) // Create the builder with the context.
.withText("Hallo, heb je zin om sportieve activiteiten te verrichten?") // Set the text to say.
.withText("Hallo hoe gaat het?") // Set the text to say.
.build(); // Build the say action.
String locationName = ("de hogeschool van amsterdam");
String locationDescription = ("0 bitches");
Phrase namePhrase = new Phrase("Deze locatie is " + locationName);
Say sayName = SayBuilder.with(qiContext)
.withPhrase(namePhrase)
.withLocale(locale)
.build();
Phrase descriptionPhrase = new Phrase(locationDescription);
Say sayDescription = SayBuilder.with(qiContext)
.withPhrase(descriptionPhrase)
.withLocale(locale)
.build();
sayName.run();
sayDescription.run();
// Create a new BicepVideo with the qiContext
// BicepVideo BicepVideo = new BicepVideo();
//
// // Call the videoPlayer method
// BicepVideo.Video(qiContext);
// Execute the action.
say.run();
}
@Override
public void onRobotFocusLost() {
// Nothing here.

View File

@@ -1,24 +1,50 @@
package com.example.fitbot;
import android.content.Intent;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;
import com.example.fitbot.bicepvideo;
import android.support.v7.widget.Toolbar;
public class MainScreen extends AppCompatActivity {
Button button;
//Variables
DrawerLayout drawerLayout;
NavigationView navigationView;
Toolbar toolbar;
@SuppressLint("WrongViewCast")
@Override
protected void onCreate(Bundle savedInstanceState) {
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.open_video);
button.setOnClickListener(v -> {
Intent i = new Intent(MainScreen.this, bicepvideo.class);
startActivity(i);
});
/*---Hooks---*/
drawerLayout = findViewById(R.id.drawer_layout);
navigationView = findViewById(R.id.nav_view);
toolbar = findViewById(R.id.toolbar);
/*---Tool Bar---*/
// setSupportActionBar(toolbar);
/*---Navigation Drawer Menu---*/
navigationView.bringToFront();
ActionBarDrawerToggle toggle=new
ActionBarDrawerToggle(this,drawerLayout,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
drawerLayout.addDrawerListener(toggle);
toggle.syncState();
}
}
@Override
public void onBackPressed(){
if(drawerLayout.isDrawerOpen(GravityCompat.START)){
drawerLayout.closeDrawer(GravityCompat.START);
}
else
{super.onBackPressed();
}
}
}

View File

@@ -0,0 +1,43 @@
package com.example.fitbot;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageButton;
public class PowerScreen extends AppCompatActivity {
ImageButton openBicepVideo;
ImageButton openSquatVideo;
ImageButton openTricepVideo;
ImageButton goToHome;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_power_screen);
openBicepVideo = findViewById(R.id.open_BicepVideo);
openSquatVideo = findViewById(R.id.open_SquatVideo);
openTricepVideo = findViewById(R.id.open_TricepVideo);
goToHome = findViewById(R.id.GoToHome);
openBicepVideo.setOnClickListener(v -> {
Intent intent = new Intent(PowerScreen.this, BicepVideo.class);
startActivity(intent);
});
// openSquatVideo.setOnClickListener(v -> {
// Intent intent = new Intent(PowerScreen.this, SquatVideo.class);
// startActivity(intent);
// });
//
// openTricepVideo.setOnClickListener(v -> {
// Intent intent = new Intent(PowerScreen.this, TricepVideo.class);
// startActivity(intent);
// });
goToHome.setOnClickListener(v -> {
Intent intent = new Intent(PowerScreen.this, MainActivity.class);
startActivity(intent);
});
}
}

View File

@@ -1,42 +0,0 @@
package com.example.fitbot;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.VideoView;
public class bicepvideo extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bicepvideo);
VideoView videoView = findViewById(R.id.videoView);
videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bicepvideo));
Button backButton = findViewById(R.id.buttonback);
backButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Finish the current activity (VideoViewHere)
finish();
}
});
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
videoView.start(); // Restart video on completion
}
});
videoView.start();
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,5 @@
<vector android:height="48dp" android:tint="?attr/colorControlNormal"
android:viewportHeight="24" android:viewportWidth="24"
android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M10,20v-6h4v6h5v-8h3L12,3 2,12h3v8z"/>
</vector>

View File

@@ -0,0 +1,5 @@
<vector android:height="48dp" android:tint="?attr/colorControlNormal"
android:viewportHeight="24" android:viewportWidth="24"
android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19.14,12.94c0.04,-0.3 0.06,-0.61 0.06,-0.94c0,-0.32 -0.02,-0.64 -0.07,-0.94l2.03,-1.58c0.18,-0.14 0.23,-0.41 0.12,-0.61l-1.92,-3.32c-0.12,-0.22 -0.37,-0.29 -0.59,-0.22l-2.39,0.96c-0.5,-0.38 -1.03,-0.7 -1.62,-0.94L14.4,2.81c-0.04,-0.24 -0.24,-0.41 -0.48,-0.41h-3.84c-0.24,0 -0.43,0.17 -0.47,0.41L9.25,5.35C8.66,5.59 8.12,5.92 7.63,6.29L5.24,5.33c-0.22,-0.08 -0.47,0 -0.59,0.22L2.74,8.87C2.62,9.08 2.66,9.34 2.86,9.48l2.03,1.58C4.84,11.36 4.8,11.69 4.8,12s0.02,0.64 0.07,0.94l-2.03,1.58c-0.18,0.14 -0.23,0.41 -0.12,0.61l1.92,3.32c0.12,0.22 0.37,0.29 0.59,0.22l2.39,-0.96c0.5,0.38 1.03,0.7 1.62,0.94l0.36,2.54c0.05,0.24 0.24,0.41 0.48,0.41h3.84c0.24,0 0.44,-0.17 0.47,-0.41l0.36,-2.54c0.59,-0.24 1.13,-0.56 1.62,-0.94l2.39,0.96c0.22,0.08 0.47,0 0.59,-0.22l1.92,-3.32c0.12,-0.22 0.07,-0.47 -0.12,-0.61L19.14,12.94zM12,15.6c-1.98,0 -3.6,-1.62 -3.6,-3.6s1.62,-3.6 3.6,-3.6s3.6,1.62 3.6,3.6S13.98,15.6 12,15.6z"/>
</vector>

View File

@@ -0,0 +1,5 @@
<vector android:height="48dp" android:tint="?attr/colorControlNormal"
android:viewportHeight="24" android:viewportWidth="24"
android:width="48dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M14.43,10l-2.43,-8l-2.43,8l-7.57,0l6.18,4.41l-2.35,7.59l6.17,-4.69l6.18,4.69l-2.35,-7.59l6.17,-4.41z"/>
</vector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".bicepvideo">
tools:context=".BicepVideo">
<VideoView
android:id="@+id/videoView"
android:layout_width="1136dp"
android:layout_height="458dp"
android:layout_width="1142dp"
android:layout_height="515dp"
android:layout_marginTop="64dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -48,11 +48,11 @@
android:layout_marginTop="7dp"
android:layout_marginEnd="122dp"
android:layout_marginBottom="16dp"
android:text="Hier ziet u een voorbeeld van een dumbell curl. Pak het gewenste gewicht een flesje water werkt ook. Houd de dumbell met uw palm naarboven gericht vast Krul het gewicht langzaam omhoog door uw elleboog te buigen en uw elleboog dicht bij uw lichaam te houden. Laat het gewicht vervolgens langzaam zakken naar de startpositie "
android:text="Uitleg text"
android:textSize="32sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/videoView" />
</androidx.constraintlayout.widget.ConstraintLayout>
</android.support.constraint.ConstraintLayout>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Completion_Screen">
</android.support.constraint.ConstraintLayout>

View File

@@ -1,19 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
android:fitsSystemWindows="true"
tools:context=".MainActivity"
tools:openDrawer="start">
<TextView
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/header"
app:menu="@menu/main_menu" />
<Button
android:id="@+id/menu_switch_btn"
@@ -21,7 +27,6 @@
android:layout_height="50dp"
android:text="Go to Sport Menu"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
/>
app:layout_constraintLeft_toLeftOf="parent" />
</android.support.constraint.ConstraintLayout>
</android.support.v4.widget.DrawerLayout>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainScreen">
<Button
android:id="@+id/open_video"
android:layout_width="215dp"
android:layout_height="64dp"
android:layout_marginStart="108dp"
android:layout_marginTop="341dp"
android:layout_marginEnd="108dp"
android:layout_marginBottom="342dp"
android:text="oefeningvideo1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0" />
</android.support.constraint.ConstraintLayout>

View File

@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PowerScreen">
<!-- <Button-->
<!-- android:id="@+id/open_BicepVideo"-->
<!-- android:layout_width="215dp"-->
<!-- android:layout_height="64dp"-->
<!-- android:layout_marginStart="108dp"-->
<!-- android:layout_marginTop="341dp"-->
<!-- android:layout_marginEnd="108dp"-->
<!-- android:layout_marginBottom="342dp"-->
<!-- android:text="Bicep Oefening"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- app:layout_constraintVertical_bias="1.0" />-->
<ImageButton
android:id="@+id/open_BicepVideo"
android:layout_width="330dp"
android:layout_height="300dp"
android:layout_marginStart="120dp"
android:layout_marginTop="60dp"
android:layout_marginEnd="190dp"
android:layout_marginBottom="40dp"
app:layout_constraintBottom_toTopOf="@+id/open_SquatVideo"
app:layout_constraintEnd_toStartOf="@+id/open_TricepVideo"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/noun_bicep_499185"
android:contentDescription="Open bicep exercise video" />
<ImageButton
android:id="@+id/open_SquatVideo"
android:layout_width="330dp"
android:layout_height="300dp"
android:layout_marginStart="120dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="190dp"
android:layout_marginBottom="60dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/GoToHome"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/open_BicepVideo"
app:srcCompat="@drawable/squatlogo"
android:contentDescription="Open squad exercise video" />
<ImageButton
android:id="@+id/open_TricepVideo"
android:layout_width="330dp"
android:layout_height="300dp"
android:layout_marginStart="190dp"
android:layout_marginTop="60dp"
android:layout_marginEnd="120dp"
android:layout_marginBottom="40dp"
app:layout_constraintBottom_toTopOf="@+id/GoToHome"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/open_BicepVideo"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/triceplogo"
android:contentDescription="Open tricep exercise video" />
<ImageButton
android:id="@+id/GoToHome"
android:layout_width="330dp"
android:layout_height="300dp"
android:layout_marginStart="190dp"
android:layout_marginTop="40dp"
android:layout_marginEnd="120dp"
android:layout_marginBottom="60dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/open_SquatVideo"
app:layout_constraintTop_toBottomOf="@+id/open_TricepVideo"
app:srcCompat="@drawable/house_3"
android:contentDescription="Go to Home Screen" />
</android.support.constraint.ConstraintLayout>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="200dp"
android:orientation="vertical"
android:background="@drawable/ic_launcher_background"
android:layout_gravity="top"
android:padding="10dp">
<ImageView
android:id="@+id/imageView"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_marginStart="10dp"
android:layout_marginTop="20dp"
android:src="@drawable/robotlogo"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:text="FitBot"
android:textSize="48sp"
app:layout_constraintStart_toEndOf="@+id/imageView"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00000000"
android:elevation="8dp"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
</android.support.v7.widget.Toolbar>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item
android:id="@+id/nav_home"
android:icon="@drawable/ic_baseline_home_48"
android:title="Home" />
</group>
<group android:checkableBehavior="single">
<item android:title="Options">
<menu>
<item
android:id="@+id/nav_settings"
android:icon="@drawable/ic_baseline_settings_48"
android:title="Settings" />
<item
android:id="@+id/nav_rate"
android:icon="@drawable/ic_baseline_star_rate_48"
android:title="Rate" />
</menu>
</item>
</group>
</menu>

View File

@@ -0,0 +1,244 @@
<?xml version="1.0" encoding="UTF-8"?>
<Animation xmlns:editor="http://www.ald.softbankrobotics.com/animation/editor" typeVersion="2.0" editor:fps="25">
<editor:clip editor:fps="25" editor:startFrame="16" editor:endFrame="2147483647"/>
<ActuatorCurve fps="25" actuator="LShoulderPitch" mute="false" unit="degree">
<Key value="90.5273514" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273514" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273514" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273514" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273514" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LShoulderRoll" mute="false" unit="degree">
<Key value="6.67969275" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="6.67969275" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="6.67969275" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="6.67969275" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="6.67969275" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LElbowYaw" mute="false" unit="degree">
<Key value="-95.2559814" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-95.2559814" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-95.2559814" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-95.2559814" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-95.2559814" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LElbowRoll" mute="false" unit="degree">
<Key value="-29.7070332" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-29.7070332" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-29.7070332" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-89.5" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-29.7070332" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LWristYaw" mute="false" unit="degree">
<Key value="-89.5501938" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-89.5501938" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-89.5501938" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-89.5501938" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-89.5501938" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LHand" mute="false" unit="dimensionless">
<Key value="0.589630966" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.589630966" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.589630966" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.589630966" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.589630966" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RShoulderPitch" mute="false" unit="degree">
<Key value="90.5273438" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273438" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273438" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273438" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273438" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RShoulderRoll" mute="false" unit="degree">
<Key value="-6.59180212" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-6.59180212" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-6.59180212" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-6.59180212" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-6.59180212" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RElbowYaw" mute="false" unit="degree">
<Key value="86.3469238" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="86.3469238" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="86.3469238" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="86.3469238" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="86.3469238" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RElbowRoll" mute="false" unit="degree">
<Key value="29.7070332" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="89.5" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="29.7070332" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="29.7070332" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="29.7070332" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RWristYaw" mute="false" unit="degree">
<Key value="79.2472229" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="79.2472229" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="79.2472229" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="79.2472229" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="79.2472229" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RHand" mute="false" unit="dimensionless">
<Key value="0.588752136" frame="0">
<Tangent side="right" abscissaParam="13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.588752136" frame="40">
<Tangent side="left" abscissaParam="-13.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="11" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.588752136" frame="73">
<Tangent side="left" abscissaParam="-11" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.588752136" frame="116">
<Tangent side="left" abscissaParam="-14.3333333" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.588752136" frame="154">
<Tangent side="left" abscissaParam="-12.6666667" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
</Animation>

View File

@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8"?>
<Animation xmlns:editor="http://www.ald.softbankrobotics.com/animation/editor" typeVersion="2.0" editor:fps="25">
<editor:clip editor:fps="25" editor:startFrame="24" editor:endFrame="79"/>
<ActuatorCurve fps="25" actuator="LShoulderPitch" mute="false" unit="degree">
<Key value="90.5273514" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273514" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273514" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LShoulderRoll" mute="false" unit="degree">
<Key value="89.5" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="6.67969275" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="89.5" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LElbowYaw" mute="false" unit="degree">
<Key value="-69.7851486" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-69.7851486" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-69.7851486" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LElbowRoll" mute="false" unit="degree">
<Key value="-29.7070332" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-29.7070332" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-29.7070332" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LWristYaw" mute="false" unit="degree">
<Key value="-1.76023543" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-1.76023543" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-1.76023543" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="LHand" mute="false" unit="dimensionless">
<Key value="0.589630966" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.589630966" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.589630966" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RShoulderPitch" mute="false" unit="degree">
<Key value="90.5273438" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273438" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="90.5273438" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RShoulderRoll" mute="false" unit="degree">
<Key value="-89.5" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-6.59180212" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="-89.5" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RElbowYaw" mute="false" unit="degree">
<Key value="70.2246094" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="70.2246094" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="70.2246094" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RElbowRoll" mute="false" unit="degree">
<Key value="29.7070332" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="29.7070332" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="29.7070332" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RWristYaw" mute="false" unit="degree">
<Key value="1.57964516" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="1.57964516" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="1.57964516" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
<ActuatorCurve fps="25" actuator="RHand" mute="false" unit="dimensionless">
<Key value="0.588752136" frame="7">
<Tangent side="right" abscissaParam="1" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.588752136" frame="10">
<Tangent side="left" abscissaParam="-1" ordinateParam="0" editor:interpType="bezier_auto"/>
<Tangent side="right" abscissaParam="20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
<Key value="0.588752136" frame="70">
<Tangent side="left" abscissaParam="-20" ordinateParam="0" editor:interpType="bezier_auto"/>
</Key>
</ActuatorCurve>
</Animation>

View File

@@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Fitbot" parent="Theme.AppCompat.Light.DarkActionBar">
<style name="Theme.Fitbot" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_200</item>
<item name="colorPrimaryDark">@color/purple_700</item>

View File

@@ -1,3 +1,7 @@
<resources>
<string name="app_name">Fitbot</string>
<string name="oefeningvideo">oefeningvideo</string>
<string name="navigation_drawer_open">Open navigation drawer</string>
<string name="navigation_drawer_close">Open navigation close</string>
</resources>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:statusBarColor">#00000000</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
</resources>

View File

@@ -1,6 +1,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.Fitbot" parent="Theme.AppCompat.Light.DarkActionBar">
<style name="Theme.Fitbot" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryDark">@color/purple_700</item>

View File

@@ -15,6 +15,14 @@ nav:
- Little Endian: documentation/robots/little-endian
- 📚 Documentation:
- 🧠 Brianstorm:
- Ideas: documentation/brianstorm/ideas
- 📱Andriod:
- Andriod Studio: documentation/andriod/androidStudio
- Ideas: documentation/brainstorm/ideas
- 📱 Android:
- Android Studio: documentation/android/androidStudio
- app setup: documentation/android/appSetup
- video view: documentation/android/Videoview
- 🤖 Pepper:
- Pepper Setup: documentation/pepper/pepperSetup
- Pepper movement: documentation/android/robotmovement
- 👷‍♀️ Hardware:
- Hardware: documentation/hardware/sensors

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,23 @@
# VideoView
We wanted to show the different exercises in a video that anybody could replicate. For this we didn't want to implement a youtube function we wanted to have our own videos so that we don't rely on youtube. Ti start we need an emoty activity file you can create one in the android studio IDE. Then you need to head to the XML file you just created and the go to widgets and the add the VideoView element
![VideoView](VideoViewWidget.png)
If you drag that in to your activity you can edit the layout of it but it will not function directly. To Let it play videos we need to write a java code. First start by coding what you want to view.
```java
VideoView videoView = findViewById(R.id.videoView);
videoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.videofile));
```
replace the video file with the name of the video. Then you need to code the media player aswell.
```java
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
videoView.start(); // Restart video on completion
}
});`
```
Since we have short videos we will have a auto replay function if you want it can go to a completion screen after the video ended.

View File

@@ -23,9 +23,13 @@ public class MainActivity extends AppCompatActivity {
}
}
```
With setContentView you can set the layout file that you made earlier.
``` java
setContentView(R.layout.activity_main);
```
### Manifest
For the app to be able to build you need to add the activity to the manifest file. You can do this by adding this to the manifest file.
For the app to be able to build you need to add the activity class to the manifest file.
```xml
<activity android:name=".MainActivity"
@@ -36,4 +40,4 @@ For the app to be able to build you need to add the activity to the manifest fil
</intent-filter>
</activity>
```
The class name that is ran first is defined in the first line of the class.
In this instance MainActivity is the first class that is ran.

View File

@@ -0,0 +1,49 @@
# How to make the robot move
## Getting started
First make a animation file in the /res folder.
![alt text](../assets/image.png)
Then right click it and click edit animation
## Making keyframes
Once you click edit animation you can click a bodypart and rotate it.
![alt text](../assets/imageAnimation.png)
Once you have positioned the robot into your preffered position you can click the keyframe button.
![alt text](../assets/keyframebutton.png)
You can grab and shift the keyframes around the timelines until you get something like this.
![alt text](../assets/exampleAnimation.png)
Make sure to save it under the File tab once it is done.
You can test it by clicking the play button in the top right.
## Making the robot move
Once you have made the animation file you can go to the robot movement script.
```java
// create the animation
Animation animation = AnimationBuilder.with(qiContext)
//change bicepcurl to the name of your animation file
.withResources(R.raw.bicepcurl)
.build()
// create the animate object
Animate animate = AnimateBuilder.with(qiContext)
.withAnimation(animation)
.build()
// play the animation
animate.async().run();
```
If you run this on the robot the animation should play.

View File

Before

Width:  |  Height:  |  Size: 488 KiB

After

Width:  |  Height:  |  Size: 488 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

View File

@@ -0,0 +1,18 @@
# Colors for our app
### Vision changes
As we become older, our vision worsens. We need to keep this in mind because our target audience includes elderly people. Beginning around the age of 40 we are already seeing some issues with our sight. It might become harder to focus on text, hence the need for reading glasses. This is an issue to keep in mind when designing our app, we want to resolve this by using images or bigger text so that it becomes easier to read. We are planing to avoid redundant text. We also see issues with light. With aging our pupils will shrink, this will result in lower light sensitivity and the increased sensitivity to glare. We need to use warmer colors to reduce the brightness on the eye and make our app able to be used when the brightness of the screen is low to resolve this issue. However, one of the biggest issues is with contrast. The older we get, the less able we are able to make out of low contrast patterns. This is really important to keep in mind, some combinations can be really hard to see for elderly people. I'll show you how by providing an example.
![contrast](contrastcolors.png)
This image shows what elderly people may experience while reading or using an app. We must keep this in mind as we design our app.
### color psychology
### Conclusion
# Source
https://eldertech.org/color-in-designing-technology-for-seniors/

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

View File

@@ -0,0 +1,27 @@
# Sensor
Which sensor are we gonna use for this project and why?
### What do we wanna measure?
We wanna measure the movement of the people doing our exercises. We want to know how many times they have done the exercise and how many times they have done it correctly.
### What sensor are we gonna use?
To measure these movements we are gonna use gyroscopes. With gyroscopes we can measure the rotation of the body. With some math we can also measure the speed of the rotation. So we know how fast the person is doing the exercise.
### Which gyroscopes are there?
There are a lot of different gyroscopes with a lot of different specifications.
* ADXL345
* BNO085
* Bmi160
### Which one are we gonna use?
We haven't decided on which gyroscope we are gonna use yet.
---
<br>
<br>
![alt text](../assets/gyroscope.png)

View File

@@ -0,0 +1,60 @@
# How to setup android studio for pepper
This is a guide on pepper setup for android studio. This guide will show you how to setup android studio for pepper. To start off we will follow the provided guide on the [softbank website](https://qisdk.softbankrobotics.com/sdk/doc/pepper-sdk/ch1_gettingstarted/installation.html). This guide will only help with certain parts of the setup
It is important to note that multiple combinations of android studio and pepper sdk can work together. This guide will show you how to setup android studio for pepper sdk with the versions that worked for us.
## Installing the Pepper SDK plug-in
### Install Android Studio
To start off you need to install android studio. QiSDK recommends installing the latest stable version (version 3.4 or higher). In this guide we recommend using version 2021.1.1 You can download android studio [here](https://developer.android.com/studio/archive). It is recommended to always start up android studio as an administrator. This can be done by right clicking on the android studio icon and selecting `Run as administrator`.
### Get Android SDK and Build-Tools
Follow the first step on the QiSDK guide. Here are a few pointers to help you with this step:
- Android 6.0 (API level 23) is the minimum version required for the Pepper SDK. But it is not the version that will be used.
- The recommended version is Android 10.0 (API level 29). This is not shown as API 29 but as Android 10.0. This is the version that worked for us.
![Android 10](../assets/android10.png)
After this you can follow the rest of the guide on the QiSDK website.
### Robot SDK Manager
The option to simulate pepper and the tablet won't work. We have yet to find a solution for this. You can still create a device and run the app on the device. But you won't be able to simulate the robot.
## Creating a robot application
### Creating a project
To create a project you need to follow the steps on the QiSDK website. Here are a few pointers to help you with this step:
- Make sure to select a template that works for you. We recommend using the `Empty Activity` template. This will give you a blank project to start with.
- On step 5 of the guide make sure that the interface looks the following image, if it does not look the same gradle doens't recognize the project as an android project:
![Project structure interface](../assets/interfaceModules.png)
### Implementing QiSDK Design & the Robot Life Cycle
On this step the QiSDK guide provides you with a code snippet. This code snippet is used to make the robot do something. But the provided snipped makes use of the pepper library. This library is not included in the guide. To make use of the library you need to add the following line to the `settings.gradle` file:
```gradle
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven {
url 'https://qisdk.softbankrobotics.com/sdk/maven/'
}
}
}
```
After this you should be able to make use of the pepper library. The imports of classes will show up red to solve this right click the imported class, there will be a option to import the class. Do this for all imports that are red. After this restart android studio and the imports should be fixed.
### Conclusion
The guide on the QiSDK website is a good guide to follow. But it is not complete. This guide is meant to help you with the parts that are not covered in the QiSDK guide. Once all steps from both guides are followed you should be able to run the app on the robot.

View File

@@ -7,7 +7,7 @@ With our project, we want the people to start moving more. Since people are beco
### Why are we not using the NAO bot
![NAO](NAOBOT.png) The NAO robot is a humanoid robot used for research and education. The robot was developed by the French company Aldebaran Robotics, which was acquired by the Japanese Softbank Robotics in 2015. We did not end up using this robot for our project. Due to its complex programming and not havong a built in tablet. This made it for us hard to work with and the tablet makes it nice to additional guidance for the people. I will list some pros and cons below
![NAO](/docs/documentation/assets/NAOBOT.png) The NAO robot is a humanoid robot used for research and education. The robot was developed by the French company Aldebaran Robotics, which was acquired by the Japanese Softbank Robotics in 2015. We did not end up using this robot for our project. Due to its complex programming and not havong a built in tablet. This made it for us hard to work with and the tablet makes it nice to additional guidance for the people. I will list some pros and cons below
#### Pros
NAO has more control over its body. It can use it legs to walk or sit, for example. This makes it able to demonstrate a lot more exercises which could come in handy especially with more leg focused exercises.
@@ -22,7 +22,7 @@ Due to its small size, the battery is also way smaller, which might make it hard
# Pepper bot
![pepper bot](/docs/documentation/assets/pepper_whole.png)
The Pepper robot is a humanoid robot developed by the Japanese company Softbank Robotics. The robot is designed to communicate with humans and can do this through speech, facial recognition and movement. This robot is also equipped with a tablet so you can use Android apps.
### Why did we choose the pepper bot

View File

@@ -0,0 +1 @@
# pipeline fix

View File

@@ -5,10 +5,10 @@ Naam Student: Sam Hos <br>
Datum: 22-04-2024
### A. onderwerp
Het betoog gaat over de de implicaties van AI op het onderwijs.
Het betoog gaat over de de implicaties van AI op het onderwijs.
### B. aanleiding
De aanleiding voor dit onderzoek is omdat AI groter dan ooit is op dit moment en het overal in het onderwijs gebruikt word.
De aanleiding voor dit onderzoek is omdat AI groter dan ooit is op dit moment en het overal in het onderwijs gebruikt word. Ik ben vooral geinteresseerd in hoe studenten er gebruik van maken en wat de gevolgen daarvan zijn voor in de toekomst.
### C. afbakening
Ik leg mijn focus op hoe studenten er gebruik van maken en wat daar de gevolgen van zijn.

View File

@@ -107,13 +107,16 @@ To do
Done
-
- Start app design
- Start working on pepper
**25 April**
To do
-
- Make navigation menu for the app
- Make documentation for pepper with andriod studio
- Fix notedpad
Done

View File

@@ -0,0 +1 @@
# pipeline fix