Skip to main content

Posts

Showing posts with the label golden cheetah

Finding TTE and Sustained Efforts in a ride

Defining the problem Any given training ride or race will contain periods of sustained effort, sometimes to exhaustion. Perhaps during the last sprint, or over a long climb, bridging a gap or chasing on after a roundabout or corner. Being able to identify these efforts is rather useful. The trouble is, deciding what represents a maximal or sustained effort is often discussed, and generally has fallen into discussions about intensity and FTP or Critical Power. These discussions have tended to then focus on trying to account for the interval duration, periods of freewheeling and applying smoothing etc. But we already have an excellent description of what constitutes a maximal effort. It is the primary purpose of any power duration model. Power duration models estimate the maximal effort you can sustain for any given duration through to exhaustion. So if you want to identify maximal efforts its your friend. Using the model below we can see, for example, that the athlete it re...

W'bal optimisation by a mathematician !

So the integral computation for W'bal was expensive. I tried to optimise from a domain and  programming perspective, where Dave Waterworth, a mathematician found a much more elegant and fast reformulation. This means W'bal can EASILY be computed as you ride. To explain the math here are his words; I posted a comment on you Blog post on optimising the Wbal model. I've done some more thinking and I defn think it can be done without visiting the previous samples as the Skiba formula can be decomposed further, i.e.  From your blog I believe the integral part of the equation is: Basically this takes a weighted sum of preceding W'exp samples where the weight decays at a rate determined by tau, older samples are weighted less than newer ones. We can approximate as a sum provided tau is large compared to Ts (the sample rate): Basic properties of exponential functions ...

W'bal its implementation and optimisation

So, the implementation of W'bal in GoldenCheetah has been a bit of a challenge. The Science I wanted to explain what we've done and how it works in this blog post, but realised that first I need to explain the science behind W'bal, W' and CP. W' and CP How hard can you go, in watts, for half an hour is going to be very different to how hard you can go for say, 20 seconds. And then thinking about how hard you can go for a very long time will be different again. But when it comes to reviewing and tracking changes in your performance and planning future workouts you quickly realise how useful it is to have a good understanding of your own limits. In 1965 two scientists Monod and Scherrer presented a ‘Critical Power Model’ where the Critical Power of a muscle is defined as ‘the maximum rate of work that it can keep up for a very long time without fatigue’. They also proposed an ‘energy store’ (later to be termed W’, pronounced double-ewe-prime) that represente...

SpinScaM

At last... Oh, I was mashing.. nothing new there then. And yes the x-axis needs to be adjusted -- and prettified obviously! And now this is as pretty as I can be bothered for this, for now, never was a big fan of the rainbow colors in CompCS: And now fully integrated and with 'smooth' transition / animation as the values rise and fall. In reality, the 'smooth' animation is a result of the need to keep rolling averages since the raw data jumps about a fair bit .. which makes me wonder about it's accuracy (but then I am no robot on the bike either).

Winter is coming...

So its time to dust down the realtime code and get it ready for the Turbo season. Got some time off work and spending it having fun and the odd bit of coding... Just starting back on video and want to add better feedback and aesthetics... its all fun. And now the code is in v3, we have video selection and playback/pause etc alongside a performance plot during the workout. And oh joy, lots of 'video codecs are missing' problems will no doubt arise from our intrepid user community! I'm gonna have to drop a few bucks on some more Sufferfest videos ! The development builds should be up in the next couple of days, we added nicer controls: I just got a copy of the Tacx RLV for Milan San Remo. Looking to add support for their file format (.pgmf) so we can ride all the Tacx content. Tacx themselves have a generic program for riding their RLVs on non-Tacx trainers .. so I'm pretty sure they'll be ok about this :) For the eagle eyed... 

Lots of code

For shits and giggles I thought I'd look at how the code has grown in Golden Cheetah. The chart below plots lines of code by version. Now, some say v3 is all bloat. Some say otherwise... More to the point it helps to explain why haven't I ridden my bike seriously in the last 6 months. Code less, ride more.

Bing!

After adjusting the map display in GoldenCheetah to support the new v3 google maps API I went a step further and added support for Microsoft Bing maps. I think the Bing maps are better, but better keep quiet since I don't want Google to get all upset with me :) Obligatory screenie:

Kazam!

UPDATE 2: Done and committed to version 3 source. I also cleaned up the look-and-feel, still a way to go but starting to look nice'ish. We will get there... UPDATE: Taking my cue from Microsoft, started making the ride list a little more like the email list in Outlook, or Apple Mail for that matter. Starting to look quite nice, but still a way to go. Outlookesque Ride List from mark liversedge on Vimeo . Got screencasting working on Linux using Kazam. Wicked. Here is a video of v3 on Linux with the Ride List now using a Ride Navigator ... customise the columns, sort, group etc. Kinda cool, but whoa there are a few bugs to fix :) Kazam rocks. Ride Navigator Ride List Demo from mark liversedge on Vimeo .

GUI update

Spent lots of time at Christmas moving to a more configurable UI and after a few bug fixes have now applied it to the core UI of GoldenCheetah. I think it is starting to get there, but there is still a way to go...

Power Dissed

Plot distribution charts (histogram) across a date range is almost the last item on the GC 'wishlist' ... after a few false starts we have got there. Need to work on zoning - want to be able to see contributions broken down when zones change in a period (e.g. plot last 12 months, but your zones changed 3 times during that period). Looking at my recent and historic data tells me I took it soft in 2009 -- not enough high-intensity. Slacker.

Hyper Critical

Worked up Critical Power (mean-max) plots for data other than Power in Golden Cheetah. So, can now plot critical heartrate, speed, torque, cadence for any given time period. Not sure of the utility of it tho ... it has helped me find lots of bad data in my ride files, but beyond that I'm not sure. Obligatory screen shot.

Virtual Reality Cycling ... with Golden Cheetah and Native ANT+

Ok, so its VERY basic at the moment, but using the excellent Videolan libs and client I can now play video. I've also made the realtime view more configurable, so you can select what dials / instruments you want on screen and move them around and resize them. The screenshot below is Fightclub from Sufferfest . This makes the training mode useful for those without Computrainers and the excellent Ergvideo stuff. So, get an ANT+ stick and join in the fun.... And now got it working on Windows too, libvlc is rocking!

Native ANT+ ... almost done

Update March 19th - USB1 and USB2 Garmin sticks now supported. Its now time to get that UI looking a little less 1980s and a bit more 2010 ... but with the work on configurable layouts already in the bag it shouldn't be too hard to do. I've worked up the support for more speed, cadence and power as well as the original HR. Along the way I learned a lot more about the ANT and ANT+ protocols. It was relatively painless, well, except from wasting an hour or so debugging my speed sensor code only to find the wheel magnet had fallen off! (d'oh). Gonna get to work on making the config a but sexier and testing on Windows and Mac, but the hard yards have been done. Big props to Mark Rages for sharing quarqd. Oh, the reason Watts and RPM are zero above is because I jumped off the turbo to press the pause button so I could take the screenshot. You will see that cadence (blue) and power (yellow) had been registering... honest :) The speed is high because I have almost no resista...

Native ANT+ Support

Mark Rages from Quarq published the source for quarqd recently as Dynastream released ANT+ to the open source world. This means that we can now add support for realtime streaming of data directly to Golden Cheetah using just a USB stick. I've been seriously busy at work and have made very slow progress, basically a couple of hours each week on a Sunday morning (the kids are off playing rugby). I've got HR working and am getting onto my SRMs now to sort power and cadence et al. Give me 2 or 3 weeks and it should be there. I've also refactored the ANT+ code so it can be used in other open source projects, will provide details when done. Later.

Dear Diary, What a day its been...

Following up from the post last year where I added webcal support (allowing you to view calendar items from remote calendars (e.g. TrainingPeaks.com and Google Calendar). I have now worked on it the other way around -- updating a remote calendar with your local rides. Here is my October calendar from last year, regimented and orderly (very rare indeed), as displayed in GoldenCheetah (from the ride files I uploaded) And here is my google calendar in chrome, after I uploaded October's history into it: So now, I need to add two features; add planned workout in GC and remote calendar sync (it is one-by-one at the moment) and we should get two nifty features; 1. see TSS/IF plan in the metric charts from planned workouts 2. see planned workouts in Google Calendar (and most users connect that to their Android/Blackberry/iPhone). Google support for attachments is a Labs feature at the mo, so might switch to Hotmail, would be nice to upload/download the actual ride files as attachme...

User Configurable Layouts

The Christmas break brings a lot of time, but not to ride since it is so darned cold and icy (of course the turbo is always an option). So instead, I tend to play with GC coding. I've been rummaging around the plumbing of the GC code for a week to prepare for a more configurable view. I've now got to the point where you can drag and drop charts onto a page and configure them. Looks kinda neat. But its pretty static at the moment - once they're there you can't drag and resize them ... but that will come. The hard miles have been done, now its all about putting a layer of glitter on the top. I've also been playing with native Mac widgets to make the Mac version, well, more Mac-like. With a week of coding left, I reckon I can get a v3 framework in place and we can really go to town! And I've been playing with this for a couple of days now and when working with intervals it is SOOOO much nicer to see all the key ride charts at once, this is not just eye-cand...

Stacked Histogram

We like all things stacked ;) Stacked histogram support for showing things like time in zone on a PMC is kinda sassy... Pastels are us too... hail Crockett and the Miami Vice crew

Wood for the trees... context is everything

Been working on a treemap.Unlike most of the other charts in GoldenCheetah this one really is coded from the ground up. Will tart it up and make it more interactive and fancy looking. But the hard yards are done, from here its all refinement. On the other hand, its telling me that a lot of my rides aren't as well annotated as I thought, a large proportion of them have 'unknown' or rather (not typed in) workout codes. Later. And looking at stress by year is quite interesting... And what did I typically do for each day? I've been playing with this all morning and some of the analysis is useful, always a good test of a new feature!! And a splash of color...