Small changes to README_coach.md
This commit is contained in:
parent
0170920113
commit
07f41297c2
|
|
@ -1,5 +1,21 @@
|
||||||
# Extending open rowing monitor (mostly javascript)
|
# 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
|
## Libraries
|
||||||
|
|
||||||
* [Node.js](https://nodejs.org/en) is a JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.
|
* [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)
|
* Calories used (kcal)
|
||||||
* Training Duration
|
* Training Duration
|
||||||
* Heart Rate (supports BLE and ANT+ heart rate monitors, ANT+ requires an ANT+
|
* 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
|
* web sockets front end
|
||||||
* BLE (FTMS indoor bike, FMTS rower, concept2 PM)
|
* 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.
|
Make the data accessible in python and create useful plots.
|
||||||
|
|
||||||
* Color HR band charts or Pie Charts (implemented)
|
* Upload fitness data captured in TCX format to the Concept2 logbook
|
||||||
* Plot drive length, drive time, and other erg related parameters as a function
|
* Get erg data captured with apps that have no “upload to Concept2”
|
||||||
of time or distance (implemented)
|
functionality and upload them to the Concept2 logbook
|
||||||
* Create histograms (Do-it-yourself).
|
* Get erg data captured with apps that have no TCX export functionality and
|
||||||
* And much more (do-it-yourself). You’ve got the entire Python matplotlib at
|
convert hem to TCX
|
||||||
your disposal. Goodbye excel!
|
* 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). You’ve got the entire Python matplotlib at
|
||||||
|
your disposal.
|
||||||
|
|
||||||
The project is based on:
|
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".
|
Heart rate should remain below upper limit of "expected zone".
|
||||||
Advise that heart rate above upper limit by >1 bpm means user must reduce
|
Advise that heart rate above upper limit by >1 bpm means user must reduce
|
||||||
effort.
|
effort.
|
||||||
|
|
||||||
* Instruction on when to take rest days.
|
* Instruction on when to take rest days.
|
||||||
* Recording of heart rate after work-outs too, to identify pending illness.
|
* Recording of heart rate after work-outs too, to identify pending illness.
|
||||||
* Coach warns of overtraining when performance declines steadily over, say 4 or
|
* Coach warns of overtraining when performance declines steadily over, say 4 or
|
||||||
more, days.
|
more, days.
|
||||||
* When overtraining is indicated, Coach suggests: skip a day or two; eat more;
|
* 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
|
Coach also warns of overtraining when, after a skip, performance has not
|
||||||
returned to before.
|
returned to before.
|
||||||
* Coach suggests work rates based on recent past performance.
|
* Coach suggests work rates based on recent past performance.
|
||||||
* Perhaps present this as a choice for the user, perhaps between:
|
* Perhaps present this as a choice for the user, perhaps between:
|
||||||
(Coach's default, perhaps based on yesterday's performance), and (user choice).
|
(Coach's default, perhaps based on yesterday's performance), and (user choice).
|
||||||
(yesterday's performance) and (the day before's performance).
|
(yesterday's performance) and (the day before's performance).
|
||||||
(low|easier|"get the job done") versus (high|harder|"make a mark").
|
(low|easier|"get the job done") versus (high|harder|"make a mark").
|
||||||
* Marking of results of rows rows taken in contravention of instructions.
|
* Marking of results of rows rows taken in contravention of instructions.
|
||||||
* Display of recorded rows highlighting contraventions, say in red.
|
* Display of recorded rows highlighting contraventions, say in red.
|
||||||
* Have an optional way to, temporarily, display results without the 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).
|
* For athlete levels 1 (not exercised for 3 years) to 5 (hero).
|
||||||
* Have table of suggested rowing effort and duration.
|
* 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
|
## 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)
|
### [dynrow](https://github.com/monsdar/dynrow)
|
||||||
|
|
||||||
Displays thorough statistics about your current workout. In addition to that
|
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
|
* *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
|
* *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
|
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
|
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
|
they'll always be around. This leads to having opponents around even at the
|
||||||
longest training sessions
|
longest training sessions
|
||||||
* *Heartrate:* You set up your desired target heart rate and the bot will row
|
* *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
|
* *Ghostrider:* This bot replays a previously rowing session of yourself
|
||||||
* *Intervals:* Usually this bot runs on a constant pace, but it'll push the
|
* *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
|
### Elevate
|
||||||
|
|
||||||
|
|
@ -372,6 +429,12 @@ BLE service). This is displayed as an ECG trace and heart rate graph over time.
|
||||||
|
|
||||||
### Android
|
### 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](https://play.google.com/store/apps/details?id=com.SaltyLemonEntertainment.EXR)
|
||||||
|
|
||||||
EXR | Row together Virtually Subscription: € 7,95/month
|
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
|
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
|
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.
|
(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
|
||||||
Loading…
Reference in New Issue