Retki Rogaining

I participated in the 8-hour rogaining "Retki-rogaining" event near Viitapohja, Tampere, yesterday.

  • 85: along roads very close to the control, just a small hill to climb to find the flag. It was nice to get an easy start on the course and get familiar with the 1:40000 map (the normal orienteering maps are all much more detailed at 1:10000 scale)
  • 76: more roads to within 1k of the control, then through the woods on compass course to the road and lake close to the control.
  • 41: north from the last control to a road. Ran about 100m in the wrong direction along the road, since we thought we'd found the road at the other side of an intersection. Close to the control we then searched for the correct hill slightly to the west of the right place. The only real orienteering mistake of the day here, costing maybe 10-15 min of time.
  • 14: Along paths south to this water-control.
  • 80: along a lakeside path.
  • 54: south along paths and roads. Another small orienteering mistake as the plan was to take a straight path but we ended up on a more undulating and curving road (not much time lost however).
  • 90: Very nice lakeside path to the control which was a small island with possibility for swimming, sauna, and grilling.
  • 66: More paths along the lakeside, trying to use public roads and not to stumble onto other people's back-yards and homes. A lot of summer-houses and lakeside saunas here. By this control we had already used a lot of time and had around 2 hours left. It was clear that we would have to make our way more or less directly to the finish to get there in time.
  • 48: Right after the control a mistake of maybe 100m when trying to find a path/road southward. An un-marked tractor-path then took us almost directly to the control. Some swamps with cloudberry ("lakka") here!
  • Finish: a fairly long bit along smaller roads at first and a bigger road later back to the finish. We punched-in at the finish with about 9 minutes to spare. The penalty for being late is -1 point for each minute of over-time, so it's important to be back at the finish within the time limit.

My biggest problem was the heat. Most of the summer has been cold and rainy so I haven't done any long runs in warm weather. The graph below shows the temperature for Viitapohja, Tampere, with the 8h event taking place during the big peak with a maximum over +25C from 12:00 to 20:00. The wind and occasional splash of water from a lake provided some relief from the heat, but the graph still shows a sustained +23C or warmer for the whole event. From about half way through the event exhaustion from the heat meant walking, not running, up most hills. Towards the end I also walked quite a lot of flat bits.

Here's the GPX data:

DXF Offset Pocketing loops

Some basic pocketing loops generated on the train today.

Using pycam's revise_directions() function it is possible to clean up the DXF data and classify polygons into pockets and islands.

There's a new parameter N_offsets

  • N_offsets=1 generates just a single offset at a specified offset-distance.
  • N_offsets=2... generates the specified number of offsets. Possibly with an increment in offset-distance that is not equal to the initial offset-distance. This happens e.g. when we want the final pass of the tool to be one cutter-radius from the input geometry but the material is difficult to machine and we want the "step-over" for interior offset-loops to be less than the cutter-radius.
  • N_offsets=-1 produces a complete interior pocketing path. Offsets are first generated at the initial offset distance and successive offsets are then generated at increasing offset distance until no offset-output is generated.

Todo: Nesting, Linking, Optimization.

There's no nesting among the loops here. The algorithm will have no clue in what order to machine the offset loops. A naive approach is to machine all loops at the maximum offset distance, then move one loop outwards, etc. But this is clearly not good as the tool would jump between the growing pockets during machining. Nesting information should be straightforward to extract from the voronoi diagram during offset-generation. The nested loops form a tree/graph, which we traverse in some suitable order to machine the entire pocket.

Also, there is no linking of these loops to eachother. For a machining toolpath one wants to link the offsets to each other so that the tool can be kept down in the material when we move from one offset loop to the next. A simple algorithm for linking should be straightforward, but I suspect something more involved is required to prevent overcutting with sufficiently complex input geometry.

When one has nested and linked offset paths, in general there still will remain "pen-up", "rapid traverse", "pen down" transitions. An asymmetric TSP solver could be run on this to minimize the rapid traverse distance (machining time).