Sailing in 2019, a Year in Review

2019 has been a good year, I’ve done a ton of sailing throughout the whole year, passed my RYA Dinghy Instructor and have started winning the first races, also finishing in the top three for the series I entered.

Boat handling has improved considerably this year, I’m quite comfortable in much stronger and gusty weather conditions, I got the hang of the kite and have improved boatspeed quite a bit. I go sailing regularly on own super early before work or before breakfast on the weekends and enjoy being alone in the bay with the elements and seabirds. It’s always different.

The Vareo isn’t well suited to the trapezoid courses we tend to run at Swanage Sailing Club but nevertheless sailing with the kite up as much as possible has proven the key to moving up the places. The times I did capsize this year were all gybing with kite up in a blow, a bit of work is needed here.

Swanage Regatta August 2019

It’s cool to be moving up the placements and also see the practice paying off, and also figure why things worked and why the hadn’t. Whilst I’ve had races where everything worked with large gaps between me and the next boat, apart from obvious impacts such as a poor start or not hiking hard enough, losing boatlengths seems to be the aggregation of small errors; a poor tack, missing a shift, a poor mark rounding, a slow spinnaker hoist, being caught in dirty wind, misjudged angles.

There have been some races this year over 5o minutes where I beat the next boat by only a couple of seconds or was beaten by a couple of seconds. It’s motivating to be closing the gap and know where improvements can be made. Those I practice 🙂

I see plenty of areas to improve; starts, tactics, working wind shifts and tides better, and 2020 will be the year I start open events. I had entered the POSH event at Paignton in 2019 but couldn’t make it in the end with vehicle failure, I won’t miss it next year. I’m looking forward to racing with more Vareos in 2020.

I made some learnings about series races too, simple stuff such as when to take or not take risks which could affect overall placement.

The Vareo is an absolute blast and I’m enjoying it a lot and I honestly wouldn’t want a boat without a kite now. Acquiring an Aero aluminium style launch trolley recently has made a huge difference to boat recovery and pulling it around the boat park, this was the only niggle before.

Aluminium Trolley made by Mersea Trailers

Bring on 2020 and more sailing fun.

Mixed handicap cup race

August 2019 Regatta

SSC ran a regatta again this summer which I took part in. Thirty three boats, five races over two days, each course different with good wind, building up on day two to quite frisky conditions. On the last race the daggerboard was humming in new tones I’d never heard before, it was that fast (grin!). Mine is 239.

There were two other Vareos which made for a bit of sub-fleet racing which was great fun.

Thanks Doug and team for running a fantastic regatta. Thanks Adrian for the fantastic pictures.

May – June 2019 Sailing

I’ve been out sailing loads the last months, racing and practising as well as instructing kids the last twelve weeks as part of my club‘s junior training.

Team racing

My race results continue to improve and I managed a reputable 3rd in the Spring evening series. There’s still work to do on consistency in stronger winds but I am getting more able in higher winds though at my weight it’s a challenge.

Current practice focus is two fold, firstly spinnaker work and among other things holding tighter angles and keeping speed up on lower angles. Gybes are pretty smooth, the faster the better.

Secondly better control and keeping boat speed on in gusty conditions. It’s all very well practising with even winds, but races never seem to have this perfect conditions (funny that!).

My fitness isn’t bad and I’m able to hike hard for decent periods now and looking forward to the longer out of the bay races. Sheet loads are relatively high on the Vareo which is also good for upper body strength, all good stuff.

Experiment with ROS, Python and Raspberry Pi

I’ve always been a robotics geek and have started exploring ROS. This might help as a ‘how to get started’ post if you’ve wondered how to use ROS with the Raspberry Pi and want to stick to Python.

Why ROS?

Using ROS is likely absolute overkill for most home projects but I am working up to quite a complex project involving different sensors, GPS and at least two motors, so ROS is actually a good fit for where I’m headed.

It will also allow me to keep everything very decoupled and simple. ROS has a heap of features that will come in handy in the future e.g. logging, data play back, data management, test framework, state and config management and more.

I intuitively like the architecture because I know it will keep things simple and it has decent Python libraries which will make for speedy development. I don’t want to be writing a framework, rather I want to focus on motor, sensor and logic code.

Caveat

ROS only supports up to Python 2.7 which’ll be a problem if your Raspberry Pi HATs or pHATs have supporting Python 3 libs only.

Assumptions

I’m going to assume you know some programming, are comfortable on the linux shell, know the basics about Raspberry PI GPIO pins so won’t do much extra explanation.

Here we go…

Raspberry PI setup.

Put simple push switches on pins 18 and 24 on a breadboard.

image

Raspberry PI ROS installation

Follow the instructions over here.

If something fails, it’ll most likely to be an environment variable issue, e.g. for me this solved packages not being found.

export ROS_PACKAGE_PATH=/home/pi/catkin_ws/src:$ROS_PACKAGE_PATH

Also, I only installed the shell version, not the full desktop version.

The Python code

See my code in GitHub. Everything other than the scripts directory was autogenerated by a ROS.

I created a new ROS package first as explained here, my two python scripts live in the scripts directory. The code is based on this tutorial code.

To Run

You can configure a launch file #, but the simplest way to test this is to run the following in three separate shells:

All from within catkin workspace directory:

/home/pi/catkin_ws/

Run the ROS OS.

roscore

Run the talker

rosrun test talker.py

Run the listener

rosrun test listener.py

Test it

Press one one of the buttons and the output might look like:

pi@raspberrypi:~/catkin_ws/src/test/scripts $ rosrun test listener.py 
[INFO] [1556918461.361843]: heading 360
[INFO] [1556918461.964700]: heading 15
[INFO] [1556918462.867729]: heading 30
[INFO] [1556918463.667803]: heading 15
[INFO] [1556918464.167762]: heading 0
[INFO] [1556918464.372864]: heading 345
[INFO] [1556918464.778167]: heading 330

‘heading’ is just a variable name that corresponds to a compass heading where the buttons turn left or right deducting or subtracting 15 degrees from the previous value.

What’s next?

In this example, we see ROS decoupling sensor reading code from the action code. It would be possible to add more hardware to the PI and wire it together with more publisher/subscriber code and custom logic. See more on publishers and subscribers.

e.g. instead of just outputting data in the listener like this:

[INFO] [1556918464.372864]: heading 345
[INFO] [1556918464.778167]: heading 330

logic could be triggered to drive a motor, move a servo or trigger a solenoid. With a more complicated robot, ROS is ideal to keep the application simple and all parts decoupled, and allow incremental development.

Resources