Small changes to README_coach.md
Node.js CI / build (14.x) (push) Waiting to run Details
Node.js CI / build (16.x) (push) Waiting to run Details

This commit is contained in:
cyteen 2024-11-21 16:15:29 +00:00
parent 0170920113
commit 07f41297c2
1 changed files with 89 additions and 19 deletions

View File

@ -1,5 +1,21 @@
# Extending open rowing monitor (mostly javascript)
We can use python functions via node.json to use [RowingData](https://pypi.org/project/rowingdata/) [See below](## RowingData)
* [child_process.spawn() function](https://nodejs.org/api/child_process.html#child_processspawncommand-args-options)
* [child_process.spawnSync](https://nodejs.org/api/child_process.html#child_processspawnsynccommand-args-options)
[How to run a python script from node.js](https://www.halo-lab.com/blog/how-to-run-a-python-script-from-node-js)
or we can use [node-calls-python](https://www.npmjs.com/package/node-calls-python) to call
Python from Node.js directly in-process without spawning processes using an
embedded Python interpreter. [More examples](https://github.com/hmenyus/node-calls-python/tree/main/test)
If the execution time of your Python code is less than creating a new process,
you will see significant performance problems because your Node.js code will
keep creating new processes instead of executing your Python code. Suppose you
have a few NumPy calls in Python,you don't want to create a new process for that
## Libraries
* [Node.js](https://nodejs.org/en) is a JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
@ -220,7 +236,7 @@ https://www.chartjs.org/docs/latest/samples/line/line.html
* Calories used (kcal)
* Training Duration
* Heart Rate (supports BLE and ANT+ heart rate monitors, ANT+ requires an ANT+
USB stick USB id 0x1008 or 0x1009)
USB stick USB id 0x1008 or 0x1009)
* web sockets front end
* BLE (FTMS indoor bike, FMTS rower, concept2 PM)
@ -235,12 +251,18 @@ and csv raw data.
Make the data accessible in python and create useful plots.
* Color HR band charts or Pie Charts (implemented)
* Plot drive length, drive time, and other erg related parameters as a function
of time or distance (implemented)
* Create histograms (Do-it-yourself).
* And much more (do-it-yourself). Youve got the entire Python matplotlib at
your disposal. Goodbye excel!
* Upload fitness data captured in TCX format to the Concept2 logbook
* Get erg data captured with apps that have no “upload to Concept2”
functionality and upload them to the Concept2 logbook
* Get erg data captured with apps that have no TCX export functionality and
convert hem to TCX
* Make the data accessible in python and create useful plots.
* Color HR band charts or Pie Charts
* Plot drive length, drive time, and other erg related parameters as a function
of time or distance (implemented)
* Create histograms (Do-it-yourself).
* And much more (do-it-yourself). Youve got the entire Python matplotlib at
your disposal.
The project is based on:
@ -278,19 +300,18 @@ program in relation to improvements over time.
Heart rate should remain below upper limit of "expected zone".
Advise that heart rate above upper limit by >1 bpm means user must reduce
effort.
* Instruction on when to take rest days.
* Recording of heart rate after work-outs too, to identify pending illness.
* Coach warns of overtraining when performance declines steadily over, say 4 or
more, days.
* When overtraining is indicated, Coach suggests: skip a day or two; eat more;
Coach also warns of overtraining when, after a skip, performance has not
returned to before.
Coach also warns of overtraining when, after a skip, performance has not
returned to before.
* Coach suggests work rates based on recent past performance.
* Perhaps present this as a choice for the user, perhaps between:
(Coach's default, perhaps based on yesterday's performance), and (user choice).
(yesterday's performance) and (the day before's performance).
(low|easier|"get the job done") versus (high|harder|"make a mark").
(Coach's default, perhaps based on yesterday's performance), and (user choice).
(yesterday's performance) and (the day before's performance).
(low|easier|"get the job done") versus (high|harder|"make a mark").
* Marking of results of rows rows taken in contravention of instructions.
* Display of recorded rows highlighting contraventions, say in red.
* Have an optional way to, temporarily, display results without the red.
@ -309,8 +330,44 @@ program in relation to improvements over time.
* For athlete levels 1 (not exercised for 3 years) to 5 (hero).
* Have table of suggested rowing effort and duration.
## Sensor Methods
### IMU
motion analysis, most require athletes to wear sensors to acquire their posture data; however, this method easily introduces noise due to friction during motions
[AUTOMATED ROWER ASSIGNMENT TO ROWING EVENTS: A MACHINE LEARNING APPROACH](https://commons.nmu.edu/cgi/viewcontent.cgi?article=2810&context=isbs)
### Video
2D pose analysis using [OpenPose](https://github.com/CMU-Perceptual-Computing-Lab/openpose) system to capture the skeletal joints of individuals, even in complex postures, using a simple camera.
[OpenPose](https://github.com/CMU-Perceptual-Computing-Lab/openpose) Real-time multi-person keypoint detection library for body, face, hands, and foot estimation, with python api.
[OpenPose Video](https://www.youtube.com/watch?v=OgQLDEAjAZ8)
[Automatic Rowing Kinematic Analysis Using OpenPose and Dynamic Time Warping]()
[Intelligent Performance Evaluation in Rowing Sport Using a Graph-Matching Network](https://pmc.ncbi.nlm.nih.gov/articles/PMC10532480/)
This study aimed to develop a video-based approach to analyze the performance of
rowing poses of rowing pairs. To enable effective automatic comparison of rowing
poses, the OpenPose system was used to extract robust rowing pose features and
convert them into a graph structure. Subsequently, the GEM and GMN models were
utilized to analyze the similarities in rowing postures between each pair of rowers.
### [Rowsandall](https://analytics.rowsandall.com/) Rowsandall Rowing Data Analytics
[Rowsandall Manual](https://analytics.rowsandall.com/2022/04/12/training-planning-updated-manual-for-rowsandall-com/)
[In-Stroke Metric Analysis Comparison](https://analytics.rowsandall.com/2022/10/29/in-stroke-metric-analysis-comparison/)
[Force Curves and In-Stroke Analysis](https://analytics.rowsandall.com/2024/06/20/how-to-work-with-force-curves-and-in-stroke-analysis/)
[Quantifying Training Intensity Distribution](https://analytics.rowsandall.com/2021/06/10/quantifying-training-intensity-distribution-new-tool/)
[RowingData](https://pypi.org/project/rowingdata/)
## Other projects
### [Rider ride data from TCX plotted](https://www.kaggle.com/code/runesh/rider-ride-data-from-tcx-file-plotted-on-a-graph) python notebook
### [dynrow](https://github.com/monsdar/dynrow)
Displays thorough statistics about your current workout. In addition to that
@ -318,15 +375,15 @@ there should be a variety of bots available. Here are a few ideas:
* *Constant pace:* This is useful if you want to row in a certain tempo
* *Boomerang:* They're rowing at a constant pace, but if they get behind you
they will row faster. If they get too far in front, they'll decelerate to
let you keep up with them. They're almost like the constant pace boats, but
they'll always be around. This leads to having opponents around even at the
longest training sessions
they will row faster. If they get too far in front, they'll decelerate to
let you keep up with them. They're almost like the constant pace boats, but
they'll always be around. This leads to having opponents around even at the
longest training sessions
* *Heartrate:* You set up your desired target heart rate and the bot will row
faster/slower according to your current heart rate
faster/slower according to your current heart rate
* *Ghostrider:* This bot replays a previously rowing session of yourself
* *Intervals:* Usually this bot runs on a constant pace, but it'll push the
tempo from time to time.
tempo from time to time.
### Elevate
@ -372,6 +429,12 @@ BLE service). This is displayed as an ECG trace and heart rate graph over time.
### Android
### [Quiske App](https://www.rowingperformance.com/tutorial)
[Android 13 app](https://play.google.com/store/apps/details?id=com.quiske.rowingperformance&hl=en_GB) plus 'pod' (presumably an IMU) euro395
The phone is attached to the handle and the pod to the seat.
### [EXR](https://play.google.com/store/apps/details?id=com.SaltyLemonEntertainment.EXR)
EXR | Row together Virtually Subscription: € 7,95/month
@ -436,3 +499,10 @@ The PM6 Super Plus:
because sometimes I'm just not feeling a track. Hate myself for adding this
one but it would be cool as hell, plus great to be able to make changes
(e.g. add 1000m to a steady state piece) mid-row without breaking rhythm.
## Books
* Biomechanics of Rowing -- Valery Kleshnev -- Crowood
for people who want to measure numbers in rowing, relate them to technique
and give specific advice to coaches and rowers.
* Rowing Faster - 2nd Edition -- Volker Nolte -- 2, 2011 -- Human Kinetics