One of the projects going in my lab at the moment involves (re)developing the navigation system for an autonomous surface vessel (ASV). The vessel, Spoywiesel, was loaned to the University by the German naval research wing, WTD71.

The objective of this little project is to develop an automated identification system to recognise the lights of any vessel at night. The ColRegs (UN Collision Regulations) specify exactly what lights must be displayed by all vessels in times of darkness or reduced visibility. The javascript program developed here is a first step towards enabling Spoywiesel to identify the ships she might encounter.

The program codifies all of the possible light combinations described in the ColRegs. Combinations of lights (eg trawler underway, or sailing vessel aground) are also implemented. Vessels of various size classes are simulated and the lights positioned on the simulations as specified in the ColRegs. The vessels are then given a course heading relative to the prevailing wind (important for sailing vessels).

The UI places the user view at a randomly determined distance and bearing to the target ship and displays the target’s lights as coloured disks on a black background. The user then has to identify the type of ship from a multiple choice selection.

The UI is designed to closely follow the format of masters’ and mates’ examinations given by the US Coast Guard, Transport Canada or German BMVI (ministry of transport and infrastucture).