Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
8539bc9
add packge and rosbridge
ayin21 Apr 19, 2025
1936fce
imu and vision integration and slight styling
ayin21 Apr 24, 2025
1ea84e5
add launch files
ayin21 Apr 29, 2025
c7abfd7
Fix roslaunch and change vision topic
ayin21 May 1, 2025
2c9d172
Merge branch 'main' into educational_visualization-for-demos
ayin21 May 1, 2025
552d10e
add dependenies
ayin21 May 3, 2025
7570fbd
add dashboard
ayin21 May 3, 2025
205ce66
add behavior and motor heat page and links to them
ayin21 May 4, 2025
62272fc
unified design
ayin21 May 4, 2025
5e13c6e
rework to single page application
ayin21 May 4, 2025
0dd8684
Add navbar
ayin21 May 4, 2025
7e363a6
add current action to behavior
ayin21 May 4, 2025
5633744
add current action to behavior tree
ayin21 May 4, 2025
22e86e3
style dashboard
ayin21 May 5, 2025
ba0ac01
add dummy imu text
ayin21 May 5, 2025
45ac418
add behavior stack
ayin21 May 5, 2025
71c1f42
fix null pointer errors
ayin21 May 5, 2025
c78ceda
make logo smaller
ayin21 May 5, 2025
3d09fca
Add static templating
Flova May 5, 2025
50fa768
Merge branch 'educational_visualization-for-demos' of github.com:bit-…
Flova May 5, 2025
38e19fd
Adapt launch file to new location
Flova May 5, 2025
c4afabb
Cleanup
Flova May 5, 2025
853cc5b
Add missing dep
Flova May 5, 2025
5f21cfa
Add back btn
Flova May 5, 2025
bb0a97c
rework design
ayin21 May 6, 2025
05ae604
stlye light and dark in textbox component
ayin21 May 6, 2025
c38518f
make behavior stack prettier
ayin21 May 8, 2025
1265596
Change texts
ayin21 May 8, 2025
5f04051
Add hot stuff
ayin21 May 8, 2025
5ded97b
Use higher compression ratio
ayin21 May 8, 2025
9e20deb
Rename video server
ayin21 May 8, 2025
f8f70a0
Format behavior stack viz
ayin21 May 8, 2025
ca86fb9
adjust motor heat
ayin21 May 10, 2025
96d2413
add start/stop button to behavior stack
ayin21 May 10, 2025
8176544
add diagnostic subcribtion and logic to moter heat
ayin21 May 10, 2025
b1533e6
add motor heat componend and implementation for max heat on dashboard
ayin21 May 12, 2025
2d4b7a4
change color of camera heat
ayin21 May 12, 2025
c8116a5
add pitch to imu rotation
ayin21 May 12, 2025
c078fe2
paint backgrund of icon to show current page
ayin21 May 17, 2025
e685bd6
change bahvior text
ayin21 May 17, 2025
db764a0
add motor heat text and max heat
ayin21 May 17, 2025
f3014d5
Current wip / start with alpine / fixes
Flova May 17, 2025
8c39550
Add favicon
Flova May 18, 2025
f33fd6f
Add translations
Flova May 18, 2025
c169d3c
Fix tag
Flova May 18, 2025
ff1cc65
Remove whitespace
Flova May 18, 2025
d6ac5de
Extend texts
Flova May 18, 2025
fcc567f
Add mobile dimensions for desktop
Flova May 18, 2025
3f7c70a
Use alpine for IMU
Flova May 18, 2025
ff31472
Use better angle representation
Flova May 18, 2025
7ca4327
fix typos
ayin21 May 21, 2025
c3fa05d
Move to server side flask rendering
Flova May 26, 2025
3f898a9
Fix static content
Flova May 26, 2025
06720ca
Split alpine state into script tag
Flova May 26, 2025
38fd350
get current action from behavior stack
ayin21 May 27, 2025
d80c50c
only need translation for actions
ayin21 May 27, 2025
2562f5f
add bahavior tree
ayin21 May 27, 2025
265a878
Merge branch 'main' of github.com:bit-bots/bitbots_main into educatio…
ayin21 May 28, 2025
ee36b7f
include bitbot_education in syncronisation to rorobt
ayin21 May 28, 2025
6c308cf
make behavior tree scrollable and change colors
ayin21 May 29, 2025
082ca68
add reason for first action in sequence
ayin21 May 29, 2025
743a4ef
change design of textboxes
ayin21 May 29, 2025
2df1d69
add do once to stack again
ayin21 May 29, 2025
1f81527
Toggle behavior viz types, fix namespace issues, only use one transla…
ayin21 May 29, 2025
478176e
Merge branch 'educational_visualization-for-demos' of github.com:bit-…
ayin21 May 29, 2025
0bc962f
add toggle
Flova Jun 1, 2025
621f75f
Refactor to temperature map and make more robust
Flova Jun 1, 2025
4dd9326
dd legend
Flova Jun 1, 2025
3c6c4e9
Migrate motor heat to alpine
Flova Jun 1, 2025
162984b
deleate max temp in motors view, change text to fit rework of motor h…
ayin21 Jun 2, 2025
7af9c8a
add whiteboard bit-bot to bahavior, change design of toggle
ayin21 Jun 2, 2025
75e87b7
add more pictures
ayin21 Jun 2, 2025
9355285
render reasons differently on behavior tree
ayin21 Jun 2, 2025
ba43917
add more translations
ayin21 Jun 2, 2025
4b99229
Fix dummy behavior ball approach with side offset
Flova Jun 2, 2025
460f5a3
Make field configurable via ros launch argument
Flova Jun 2, 2025
dc1991a
add cookie
ayin21 Jun 3, 2025
320fd10
add csv
ayin21 Jun 3, 2025
95373cd
Merge branch 'educational_visualization-for-demos' of github.com:bit-…
ayin21 Jun 4, 2025
0aa5752
fix cookie
ayin21 Jun 4, 2025
955ddad
change design
ayin21 Jun 7, 2025
edf78c9
added call to write csv in flask but not working
ayin21 Jun 8, 2025
8dc3d48
logging works
ayin21 Jun 9, 2025
e0ec096
mkae whole page scrollable, style first and last textdocument of a pa…
ayin21 Jun 9, 2025
83f9e65
translate page names to german, change dashboard design
ayin21 Jun 9, 2025
0fc72e9
add minimal tree
ayin21 Jun 9, 2025
cd18248
make icon footer rounded
ayin21 Jun 9, 2025
f316932
show less text and add it through buttons
ayin21 Jun 9, 2025
15f7536
change design
Flova Jun 10, 2025
59186ed
Fix typos use unified placeholder and shadows
Flova Jun 10, 2025
11f378e
Make collapsible dependent on content height
Flova Jun 10, 2025
644522f
Small design tweaks
Flova Jun 10, 2025
5def1e2
ad border to circles
ayin21 Jun 11, 2025
68c6682
add legend
ayin21 Jun 11, 2025
1907f77
change icons and add dark icons
ayin21 Jun 12, 2025
6046ba2
change margin
ayin21 Jun 12, 2025
153eb83
fix motor figure css
ayin21 Jun 13, 2025
72a3f79
add vision leged
ayin21 Jun 13, 2025
9fb3a51
style tree
ayin21 Jun 13, 2025
73acbf9
adjust text
ayin21 Jun 13, 2025
23825e9
spelling corrections
ayin21 Jun 16, 2025
2383e84
Merge branch 'educational_visualization-for-demos' of github.com:bit-…
ayin21 Jun 16, 2025
768ad1d
fix merge problems
ayin21 Jun 17, 2025
7ba8768
change picture padding
ayin21 Jun 17, 2025
fa956df
adjust background padding
ayin21 Jun 17, 2025
8be140c
change motor text
ayin21 Jun 17, 2025
1a11687
fix behavior button size changes
ayin21 Jun 17, 2025
8256c49
style tree
ayin21 Jun 17, 2025
767ffaa
fix tree width
ayin21 Jun 17, 2025
4a3162d
not needed only used for testing
ayin21 Jun 17, 2025
6a23f81
fix legend
ayin21 Jun 17, 2025
fe8aa2a
Add side blur
Flova Jun 17, 2025
8393811
deleate circle in IMU icon
ayin21 Jun 19, 2025
b7fd2bc
change IMU picture and mark IMU in circle
ayin21 Jun 19, 2025
dda0bf2
show stack in tree not working
ayin21 Jun 19, 2025
c1ade20
WIP alpine active highlighting
ayin21 Jun 20, 2025
2fcb7c1
Highlight active tree elements
ayin21 Jun 21, 2025
694b7a4
Remove width limit
ayin21 Jun 21, 2025
388f4ff
fix imu circle stayes on location
ayin21 Jun 26, 2025
0e6d346
change to capital letter
ayin21 Jun 26, 2025
b74b562
add label
ayin21 Jun 29, 2025
645bcbc
add logging of textboxes
ayin21 Jun 29, 2025
ef05c69
log scrolling
ayin21 Jun 29, 2025
fdfb5a9
change text and fix spelling mistakes
ayin21 Jun 29, 2025
32690bb
change dsd text
ayin21 Jul 1, 2025
51b9c51
add logging for tree
ayin21 Jul 1, 2025
d4e8963
Use humble branch for IPM
ayin21 Jul 3, 2025
e1191b9
Fix typos
Flova Jul 3, 2025
4c0272a
Fix phrasing
Flova Jul 3, 2025
7fe7f29
Remove additional slash
Flova Jul 3, 2025
1b3a7f1
add current page to every log
ayin21 Jul 8, 2025
cfbdafc
deleate console log
ayin21 Jul 8, 2025
62d70ac
fix donna reacts to button pressed
ayin21 Jul 21, 2025
304c368
start debug image automatically
ayin21 Jul 21, 2025
9937037
add evaluation script
ayin21 Aug 4, 2025
e816f32
add sequence scoring
ayin21 Aug 8, 2025
e0e5471
add plots an d rename columns
ayin21 Aug 11, 2025
a86cee6
start SUS
ayin21 Aug 14, 2025
0c36df2
finish sus and change structure
ayin21 Aug 18, 2025
59f01fb
komment out plots
ayin21 Aug 19, 2025
b4c69ee
reduce scope of temporaray variables and add print function
ayin21 Aug 27, 2025
c01458d
add log evaluation
ayin21 Sep 24, 2025
ef05c9d
add gitignore for study csvs
ayin21 Sep 24, 2025
2b9b027
make format
ayin21 Sep 24, 2025
f63d4e4
add scroll counter and use os and merge wit study evaluation
ayin21 Sep 26, 2025
0ef5f0a
make significance tests
Flova Oct 5, 2025
f7939c0
add ios score and evaluate score data frame
Flova Oct 12, 2025
e465635
add descriptive statistics
Flova Oct 12, 2025
1dbc88f
add log desciption
ayin21 Oct 15, 2025
d1ef79e
add within subject for all participants
ayin21 Oct 17, 2025
f4f7d66
add test for normality
ayin21 Oct 18, 2025
dcc2d7d
make box plots for log data
ayin21 Oct 20, 2025
e7853ad
add ueq score
ayin21 Oct 20, 2025
56b8eb1
comment ot logs
ayin21 Oct 27, 2025
a19498b
add demografic
ayin21 Oct 27, 2025
9f490dc
change color and add significance
ayin21 Nov 6, 2025
80fa97e
Merge branch 'educational_visualization-for-demos' of github.com:bit-…
ayin21 Nov 6, 2025
47171fa
change boxplots
ayin21 Nov 6, 2025
af25ccb
deleate prints, comment out box plots
ayin21 Nov 11, 2025
304cce8
Merge branch 'main' into educational_visualization-for-demos
ayin21 Dec 8, 2025
255859d
deleate study evaluation files
ayin21 Dec 8, 2025
9e3fde7
change style
ayin21 Dec 15, 2025
3b1c99f
fix spelling
ayin21 Dec 15, 2025
658309e
change double to single quote
ayin21 Dec 17, 2025
6ff56b1
change default value because of ros bug
ayin21 Dec 18, 2025
45a05e2
fix code style issues
ayin21 Jan 6, 2026
c0a56c9
Apply PR feedback
Flova Jan 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions bitbots_misc/bitbots_education/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
out/
Empty file.
73 changes: 73 additions & 0 deletions bitbots_misc/bitbots_education/bitbots_education/app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
import csv
import os
import time

from ament_index_python import get_package_share_directory
from flask import Flask, render_template, request

template_dir = os.path.join(get_package_share_directory("bitbots_education"), "templates")
static_folder = os.path.join(get_package_share_directory("bitbots_education"), "static")
csv_file_path = os.path.realpath("logs.csv")

app = Flask(__name__, template_folder=template_dir, static_folder=static_folder)


def write_csv(vp, page, button, status):
file_exists = os.path.isfile(csv_file_path)
with open(csv_file_path, "a+", newline="") as file:
writer = csv.writer(file)
# Kopfzeile nur schreiben, wenn die Datei neu ist
if not file_exists or os.stat("logs.csv").st_size == 0:
writer.writerow(["VP", "Page", "Button", "Status", "Timestamp"])
curr_time = time.time()
writer.writerow([vp, page, button, status, curr_time])


def vp_track(page, button, status):
username = request.cookies.get("vp_number")
if username is not None:
write_csv(username, page, button, status)


@app.route("/")
def index():
vp_track("dashboard", "", "")
dashboard = "pages/dashboard.html"
return render_template(dashboard, logging=bool(request.args.get("logging", False)))


@app.route("/imu")
def imu():
vp_track("imu", "", "")
return render_template("pages/imu.html")


@app.route("/vision")
def vision():
vp_track("vision", "", "")
return render_template("pages/vision.html")


@app.route("/motors")
def motors():
vp_track("motors", "", "")
return render_template("pages/motors.html")


@app.route("/behavior")
def behavior():
vp_track("behavior", "", "")
return render_template("pages/behavior.html")


@app.route("/logs")
def logs():
page = request.args.get("page")
button = request.args.get("button")
status = request.args.get("status")
vp_track(page[1:], button, status)
return ("", 204)


def main():
app.run(host="0.0.0.0", port=8000)
13 changes: 13 additions & 0 deletions bitbots_misc/bitbots_education/launch/education.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0"?>
<launch>
<include file="$(find-pkg-share rosbridge_server)/launch/rosbridge_websocket_launch.xml">
<arg name="delay_between_messages" value="0.0"/>
</include>
<node pkg="web_video_server" exec="web_video_server" name="web_video_server_education">
<param name="port" value="8081"/>
</node>
<node pkg="bitbots_education" exec="webserver" name="education_webserver" output="screen">
</node>

<executable cmd="ros2 param set bitbots_vision component_debug_image_active true --timeout 20000" name="education_vision_debug_activator" output="screen"/>
</launch>
10 changes: 10 additions & 0 deletions bitbots_misc/bitbots_education/launch/education_simulation.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<launch>
<include file="$(find-pkg-share bitbots_education)/launch/education.launch">
</include>
<include file="$(find-pkg-share bitbots_webots_sim)/launch/simulation.launch">
</include>
<include file="$(find-pkg-share bitbots_bringup)/launch/motion_standalone.launch">
<arg name="sim" value="true"/>
</include>
</launch>
19 changes: 19 additions & 0 deletions bitbots_misc/bitbots_education/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>bitbots_education</name>
<version>0.0.0</version>
<description>A web interface that shows live data in easy to understand visualizations for public events.</description>
<maintainer email="wedmann.lea@gmail.com">root</maintainer>
<license>MIT</license>

<depend>web_video_server</depend>
<depend>rosbridge_suite</depend>
<depend>python3-jinja2</depend>
<depend>python3-flask</depend>
<test_depend>python3-pytest</test_depend>

<export>
<build_type>ament_python</build_type>
</export>
</package>
Empty file.
2 changes: 2 additions & 0 deletions bitbots_misc/bitbots_education/scripts/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
*.csv

4 changes: 4 additions & 0 deletions bitbots_misc/bitbots_education/setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[develop]
script_dir=$base/lib/bitbots_education
[install]
install_scripts=$base/lib/bitbots_education
40 changes: 40 additions & 0 deletions bitbots_misc/bitbots_education/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import glob
import os

from setuptools import find_packages, setup

package_name = "bitbots_education"


def generate_data_files(share_path, directory):
data_files = []

for path, _, files in os.walk(directory):
p = share_path + path
list_entry = (p, [os.path.join(path, f) for f in files if not f.startswith(".")])
data_files.append(list_entry)

return data_files


setup(
name=package_name,
data_files=[
("share/ament_index/resource_index/packages", ["resource/" + package_name]),
("share/" + package_name, ["package.xml"]),
("share/" + package_name + "/launch", glob.glob("launch/*.launch")),
]
+ generate_data_files("share/" + package_name + "/", "templates/")
+ generate_data_files("share/" + package_name + "/", "static/"),
version="0.0.0",
packages=find_packages(exclude=["test"]),
install_requires=["setuptools"],
zip_safe=True,
license="MIT",
tests_require=["pytest"],
entry_points={
"console_scripts": [
"webserver = bitbots_education.app:main",
],
},
)
13 changes: 13 additions & 0 deletions bitbots_misc/bitbots_education/static/abstract_robot.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading