A computer system and computer-implemented method for autonomous navigation of a marine vessel using a model predictive control method

SE548317C2Active Publication Date: 2026-05-25CPAC SYST

Patent Information

Authority / Receiving Office
SE · SE
Patent Type
Patents
Current Assignee / Owner
CPAC SYST
Filing Date
2024-06-10
Publication Date
2026-05-25

AI Technical Summary

Technical Problem

Existing autonomous navigation systems for marine vessels struggle with precise maneuvering in congested or dynamically changing environments, often requiring manual intervention due to inadequate real-time adaptability to static and dynamic obstacles.

Method used

A computer system that generates an environment map using static proximity data, plans a navigable path, and employs Model Predictive Control (MPC) to dynamically adjust navigation based on both static and dynamic obstacles, using cost functions to minimize deviations and adapt to changing conditions.

Benefits of technology

Enhances navigational accuracy and safety by continuously optimizing the vessel's path, reducing collision risks and improving efficiency in complex maritime environments.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

A computer system (100; 1000) for autonomous navigation of a marine vessel (10), the computer system (100; 1000) comprising processing circuitry (102; 1002) configured to: obtain static proximity data of surrounding static obstacles (22); generate an environment map (20) comprising geometric primitives (24) based on the static proximity data; generate a navigable path (30) from an origin position (32) of the marine vessel (10) to a destination position (34) based on the environment map (20); and while the marine vessel (10) navigates the navigable path (30): obtain dynamic proximity data of one or more surrounding dynamic obstacles (42), and dynamically adjust said navigation using a model predictive control, MPC, method, the MPC method applying at least one cost function configured to minimize deviations from the navigable path (42) based on the dynamic proximity data.
Need to check novelty before this filing date? Find Prior Art

Description

[1] The disclosure generally relates to control of a marine vessel. In particular aspects, the disclosure relates to autonomous navigation for a marine vessel. The disclosure can be applied to marine vessels, such as leisure boats, ships, cruise ships, fishing vessels, yachts, ferries, among other vehicle types. Although the disclosure may be described with respect to a particular marine vessel, the disclosure is not restricted to any particular marine vessel.BACKGROUND[2] In marine applications, autonomous navigation refers to guiding a vessel from its current location to a designated destination, such as a docking site, without human intervention. This technology offers numerous benefits, including autonomous docking and autopilot navigation, which reduce the operator’s workload, streamline operations, enhance safety, and provide other advantages.[3] However, existing autonomous navigation systems face challenges, particularly in congested or dynamically changing environments like busy harbors, but also at open sea. Traditional systems often struggle with precise maneuvering to a destination position, such as a docking position, while maintaining situational awareness of the vessel’s surroundings. This can result in for example property damage or multiple docking attempts. Most conventional systems, including basic autonomous driving or docking technologies, do not fully address these challenges because they still require some level of manual control to handle the dynamic nature of the environment. Consequently, these systems often lack the ability to adaptively recalibrate their navigation strategies in real-time in response to sudden changes in water conditions or unexpected obstacles.[4] It is in view these realizations and others that the present inventors are herein suggesting one or more improvements to the prior art of autonomous navigation for a marine vessel.[5] According to a first aspect of the disclosure, a computer system for autonomous navigation of a marine vessel is provided. The computer system comprises processing circuitry configured to obtain static proximity data indicating distances between the marine vessel and one or more surrounding static obstacles; generate an environment map comprising one or more geometric primitives based on the static proximity data; generate a navigable path from an origin position of the marine vessel to a destination position based on the environment map; and while the marine vessel navigates the navigable path: obtain dynamic proximity data indicating distances between the marine vessel and one or more surrounding dynamic obstacles, and dynamically adjust the navigation using a model predictive control, MPC, method, the MPC method applying at least one cost function configured to minimize deviations from the navigable path based on the dynamic proximity out.[6] The first aspect of the disclosure may seek to enhance the safety and efficiency of marine vessel navigation. A technical benefit may include improved navigational accuracy and reduced risk of collisions, as the system continuously updates and optimizes the vessel’s path based on comprehensive environmental data including both static and dynamic obstacles.[7] Optionally in some examples, including in at least one preferred example, the at least one cost function applied by the MPC method includes a dynamic weight factor for at least one of said deviations that are to be minimized. A technical advantage may include more targeted and adaptive responses to specific navigational challenges, improving the precision of the vessel’s path adjustments.[8] Optionally in some examples, including in at least one preferred example, the MPC method comprises defining one or more geometric limits in the vicinity of the marine vessel, each geometric limit having a distance from a point located along a longitudinal line of the marine vessel, the dynamic weight factor being increased in response to a dynamic obstacle being located within the distance. A technical advantage may include enhanced situational awareness and proactive navigational adjustments that prioritize the marine vessel’s safety in crowded or complex environments.[9] Optionally in some examples, including in at least one preferred example, the MPC method further comprises: performing continuous route estimations at each time step during the navigation to obtain a plurality of possible routes from a current position of the marine vessel to the destination position, and selecting a route from among the plurality of possible routes having the lowest cumulative cost based on predicted increments of the dynamic weight factor caused by dynamic obstacles predicted to be located within the distance, the prediction being based on velocity data of the dynamic obstacles. A technical advantage may include continuously optimized routing that adaptively adjusts to changes in the surrounding environment, enhancing navigational efficiency and safety.

[10] Optionally in some examples, including in at least one preferred example, the processing circuitry is further configured to obtain velocity data including speed and direction of the marine vessel, and the dynamic weight factor is increased for higher speeds of the marine vessel compared to lower speeds. A technical advantage may include ensuring that the vessel’s speed is appropriately moderated according to the proximity and nature of nearby obstacles, enhancing reaction times and reducing collision risks.

[11] Optionally in some examples, including in at least one preferred example, the processing circuitry is further configured to obtain weather data, and the dynamic weight factor is increased in more adverse weather conditions compared to less adverse weather conditions. A technical advantage may include adaptive navigation strategies that account for weather-related challenges, ensuring safer operations under varying meteorological conditions.

[12] Optionally in some examples, including in at least one preferred example, the processing circuitry is further configured to obtain localization data, and the dynamic weight factor is increased in narrower navigable areas compared to wider navigable areas. A technical advantage may include precise navigation tailored to the spatial constraints of the vessel’s operating environment, minimizing risks in restricted or confined areas.

[13] Optionally in some examples, including in at least one preferred example, the processing circuitry is further configured to classify at least one of the one or more surrounding dynamic obstacles, and the dynamic weight factor is adjusted depending on said classification. A technical advantage may include differentiated responses to obstacles based on their potential threat level or navigational impact, allowing for more nuanced and effective hazard management.

[14] Optionally in some examples, including in at least one preferred example, the processing circuitry is further configured to adjust the dynamic weight factor based on a navigational mode of the marine vessel. A technical advantage may include context-sensitive adjustments that optimize the vessel's performance according to specific operational modes, enhancing overall navigational efficacy and safety.

[15] Optionally in some examples, including in at least one preferred example, the processing circuitry is configured to generate the environment map by aggregating adjacent points in a point-based representation of the obtained proximity data based on predefined criteria, forming a plurality of polygons based on the aggregation, each polygon comprising a spatial grouping of the static obstacles, and storing said plurality of polygons in the environment map. A technical advantage may include a more organized, less computationally expensive, and accessible representation of navigational data, facilitating quicker and more accurate decision-making during the vessel’s operation.

[16] According to a second aspect of the disclosure, a marine vessel is provided. The marine vessel comprises the computer system of the first aspect.

[17] The second aspect of the disclosure may seek to integrate advanced autonomous navigation capabilities directly into marine vessels. A technical benefit may include the ability for marine vessels to autonomously adjust their routes in real-time, significantly improving navigation safety and efficiency while reducing the workload on human operators.

[18] According to a third aspect of the disclosure, a computer-implemented method for autonomous navigation of a marine vessel is provided. The method comprises obtaining, by processing circuitry of a computer system, static proximity data indicating distances between the marine vessel and one or more surrounding static obstacles; generating, by the processing circuitry, an environment map comprising one or more geometric primitives based on the static proximity data; generating, by the processing circuitry, a navigable path from an origin position of the marine vessel to a destination position based on the environment map; and while the marine vessel navigates the navigable path: obtaining, by the processing circuitry, dynamic proximity data indicating distances between the marine vessel and one or more surrounding dynamic obstacles, and dynamically adjusting, by the processing circuitry, the navigation using a model predictive control, MPC, method, the MPC method applying at least one cost function configured to minimize deviations from the navigable path based on the dynamic proximity data.

[19] The third aspect of the disclosure may seek to provide a structured framework for implementing advanced autonomous navigation algorithms directly through a computerimplemented method. A technical benefit may include enhanced real-time responsiveness and adaptability in marine vessel navigation, allowing for safer and more efficient travel by continuously adjusting the vessel's course in response to changing environmental conditions and obstacle configurations.

[20] According to a fourth aspect of the disclosure a computer program product is provided. The computer program product comprises program code for performing, when executed by processing circuitry, the method of the third aspect.

[21] The fourth aspect of the disclosure may seek to encapsulate the autonomous navigation method into a deployable software product. A technical benefit may include the ability to deploy advanced navigation functionalities rapidly across different marine vessels, enhancing navigational precision and safety without the need for extensive hardware modifications and facilitating the integration of advanced navigation capabilities into marine vessels through existing and / or legacy hardware systems.

[22] According to a fifth aspect of the disclosure a non-transitory computer-readable storage medium is provided, which comprises instructions, which when executed by processing circuitry, cause the processing circuitry to perform the method of the third aspect.

[23] The fifth aspect of the disclosure may seek to provide a reliable and secure means of storing and executing the navigation software. A technical benefit may include increased reliability and security in the operation of autonomous navigation systems, ensuring that critical navigation software is preserved and executed without degradation or loss, thereby maintaining continuous operational integrity and safety.

[24] The disclosed aspects, examples (including any preferred examples), and / or accompanying claims may be suitably combined with each other as would be apparent to anyone of ordinary skill in the art. Additional features and advantages are disclosed in the following description, claims, and drawings, and in part will be readily apparent therefrom to those skilled in the art or recognized by practicing the disclosure as described herein.

[25] There are also disclosed herein computer systems, control units, code modules, computer-implemented methods, computer readable media, and computer program products associated with the above discussed technical benefits.BRIEF DESCRIPTION OF THE DRAWINGS

[26] Examples are described in more detail below with reference to the appended drawings.

[27] FIG. 1 is an exemplary system diagram of a marine vessel according to an example.

[28] FIG. 2 is an exemplary operational scenario where exemplary autonomous navigation of a marine vessel is visualized, according to an example.

[29] FIG. 3A is an exemplary schematic illustration of a marine vessel having one geometric limit, according to an example.

[30] FIG. 3B is an exemplary schematic illustration of a marine vessel having one geometric limit, according to an example.

[31] FIG. 3C is an exemplary schematic illustration of a marine vessel having one geometric limit, according to an example.

[32] FIG. 4A is an exemplary schematic illustration of an MPC method according to an example.

[33] FIG. 4B are exemplary differential equations showing system dynamics of an MPC method in continuous time form according to an example.

[34] FIG. 4C is an exemplary Euler forward integration method of discretizing the continuous time model of FIG. 4B.

[35] FIG. 4D is an exemplary Runge Kutta 4 (RK4) method of discretizing the continuous time model of FIG. 4B.

[36] FIG. 4E is an exemplary fully assembled RK4-step according to an example.

[37] FIG. 5A is an exemplary finite horizon optimal control problem solvable by the MPC method according to an example.

[38] FIG. 5B is an exemplary nonlinear difference equation discretizing the continuous time model of FIG. 5 A.

[39] FIG. 6A is an exemplary repulsive potential function according an example.

[40] FIG. 6B is an exemplary dynamic hyperplane method according to an example.

[41] FIG. 6C are exemplary halfplanes defined by the dynamic hyperplane method of FIG. 6B.

[42] FIG. 6D is an exemplary schematic illustration of a controlled object, such as a marine vessel, avoiding an obstacle using defined dynamic hyperplanes according to the methods of FIGs. 6B-C, according to an example.

[43] FIG. 7A is an exemplary pose vector representing the motion of a marine vessel according to an example.

[44] FIG. 7B is an exemplary velocity vector representing the control inputs of the system according to an example.

[45] FIG. 7C is an exemplary schematic illustration describing variables used to describe the motion of a marine vessel in the horizontal plane, according to an example.

[46] FIGs. 7D-F define an exemplary kinematic model of a marine vessel according to an example.

[47] FIGs. 8A-N present various cost functions employable by the MPC method according to various examples.

[48] FIG. 9 is a schematic diagram of an exemplary computer-implemented method according to an example.

[49] FIG. 10 is a schematic diagram of an exemplary computer system for implementing examples disclosed herein.DETAILED DESCRIPTION

[50] The detailed description set forth below provides information and examples of the disclosed technology with sufficient detail to enable those skilled in the art to practice the disclosure.

[51] This disclosure targets the complex challenge of autonomous navigation for marine vessels, aiming to enhance both the safety and efficiency of navigating through varied marine environments filled with both static and dynamic obstacles. A computer-controlled approach is provided, which assists the vessel in effectively and safely reaching its destination without human intervention.

[52] Firstly, static proximity data to identify static obstacles around the vessel. This information initiates route planning. Using the static proximity data, an environment map that incorporates geometric primitives representing the location and shape of the static obstacles is generated. This map provides a framework of the navigation area. With the map established, a navigable path from the vessel’s origin position to its intended destination position is generated, carefully navigating around the mapped static obstacles. As the vessel moves along the planned path, a continuous obtaining of dynamic proximity data is enabled, which includes information about moving obstacles that could intersect the vessel’s trajectory and thus pose a threat to the efficient and safe navigation. The dynamic proximity data is used to dynamically adjust the vessel’s course in real time. The core of the dynamic adjustment process lies in the Model Predictive Control (MPC) method, which applies cost functions to minimize deviations from the navigable path. These cost functions are adjusted based on the proximity and movement of dynamic obstacles, ensuring that the vessel maintains the safest and most efficient course possible.

[53] The proposed solution offers a sophisticated level of automation to marine vessel navigation, merging detailed environmental mapping, proactive path planning, and adaptive route management. This integration can ensure safe, efficient, and reliable journeys across diverse maritime environments, thus improving upon the capabilities of existing navigation systems.

[54] FIG. 1 is schematic illustration of a marine vessel 10 in which some of the inventive concepts of the present disclosure may be applied. In non-limiting examples, the marine vessel 10 is a leisure boat, ship, cruise ship, fishing vessel, yacht, ferry, or the like. The marine vessel 10 is adapted to operate at bodies of water, e.g., a sea, ocean, lake, river, bay, gulf, strait, channel, reservoir, fjord, marsh, swamp, etc. The marine vessel 10 is propelled by a propulsion system 15, which may be one configured for an electric marine vessel, gasoline-powered marine vessel, diesel-powered marine vessel, a hybrid thereof, or the like. Although not explicitly shown, the propulsion system 15 can be controlled based on computer control via input signals from an input device having a joystick or other type of maneuverable member such as a handle.

[55] The marine vessel 10 comprises a computer system 100, which is a marine control system being adapted to control operations of the marine vessel 10. The computer system 100 comprises processing circuitry 102 configured to manage features relating to obtaining of proximity data, generation of environment map and navigable path, and dynamically adjusting navigation, as will be explained herein. The processing circuitry 102 is configured to be in operational communication with a sensing device 11, a localization device 12, and a route planner 13.

[56] The sensing device 11 may be mounted to any suitable position of the marine vessel 10 such that it can sense objects to acquire proximity data. The sensing device 11 can sense static obstacles or dynamic obstacles, acquiring static proximity data and dynamic proximity data, respectively. The sensing device 11 can be configured to sense the proximity of a nearby object, such as a detectable object including but not limited to either one of other marine vessels, living beings (e.g. humans, wildlife), buoys, lighthouses, rock massives, underwater objects, airborne objects, land masses, quays, berths, docking facilities, or the like.

[57] The sensing device 11 may comprise one or more distance sensors. The distance sensors may be distributed at arbitrary positions of the marine vessel 10. One exemplary configuration involves a first pair of distance sensors being arranged at a respective back side of the marine vessel 10, a second pair of distance sensors being arranged at a respective center side of the marine vessel 10, and a third pair of distance sensors being arranged at a respective front side of the marine vessel 10. The distance sensors may be arranged at any suitable height of the marine vessel 10, both over the surface or as underwater sensors. In other examples the distance sensors can be arranged anywhere at the marine vessel 10 provided that they are able to sense portions of the surroundings of the marine vessel 10. For underwater placement of the distance sensors, the sensed portions refer to underwater areas, i.e., below the surface.

[58] The distance sensors are configured to sense at least portions of an environment surrounding the marine vessel 10 to acquire proximity data. The environment is typically a body of water (above the surface and / or below the surface), although the environment may also be land when the marine vessel 10 is located within the sensor’s proximity reach of the land. “At least portions” of the environment thus refer to spatial locations in the vicinity of the marine vessel 10, where the reachability to the vicinity depend on what type of sensing technique(s) is / are being employed. The environment includes various targets that can be sensed, including but not limited to other marine vessels, living beings (e.g. humans, wildlife), buoys, lighthouses, rock massives, underwater objects, airborne objects, land masses, quays, berths, docking facilities, and many more targets readily envisaged by the skilled person.

[59] The distance sensors may be lidar devices, radar devices, sonar devices, ultrasonic devices, cameras, inductive proximity sensors, capacitive proximity sensors, infrared proximity sensors, and / or other suitable devices configured to be able to sense an environment. In response to sensing a target in the environment, the distance sensors are individually and / or collectively configured to transmit proximity data to the processing circuitry 102.

[60] In some examples, the static proximity data can be obtained from a nautical chart. This may involve using digital versions of nautical charts integrated into the route planner 13 of the marine vessel 10. These charts are detailed graphical representations of maritime areas and adjacent coastal regions. They can provide information relating to water depths, locations of sandbanks, navigation aids like buoys and lights, submerged rocks, shipwrecks, the positions of shores and other landmarks, or the like. The route planner 13 is configured to access a database of digital nautical charts, for example stored by memories of the computer system 100 or accessed via a cloud-based service. The processing circuitry 102 can determine the current location of the marine vessel 10, for example based on localization data from the localization device 12, and can retrieve the corresponding section of the nautical chart that covers the vessel’s vicinity.

[61] The localization device 12 can provide localization data to the processing circuitry 102. The localization data provides spatial awareness of the marine vessel 10, which can be used for navigational purposes. The localization device 12 can be one or more of an orientation sensor and a satellite navigation device (satnav), such as GNSS, GPS, GLONASS, Galileo, or BeiDou.

[62] The route planner 13 is designed to chart a navigable path for the marine vessel 10 from its origin position (such as a current position) to its destination position (such as a docking location) while accounting for various navigational constraints and environmental factors. The route planner 13 can generate the navigable path based on an environment map based on static proximity data. “Navigable” path in this context means the path includes navigational rules for avoiding static obstacles defined by an environment map, which will be further detailed below. The route planner 13 can be configured to generate the navigable path based on data from the sensing device 11 and / or the localization device 12.

[63] The route planner 13 can employ a pathfinding algorithm, such as an A* or RRT-algorithm, for finding the navigable path. Other algorithms involve the Dijkstra’s algorithm, the Bellman-Ford algorithm, or other dynamic programming techniques.

[64] Control signals of the computer system 100 are routed through a helm station 14, and the processing circuitry 102 may thus form part of andkir be provided in either one of the computer system 100 or the helm station 14.

[65] The processing circuitry 102 is further configured to manage and coordinate various operations and functions necessary for safe and efficient navigation and handling of the marine vessel 10. The processing circuitry 102 may include one or more subsystems and technologies to control propulsion, steering, and other functions of the marine vessel 10, including but not limited to navigation, propulsion control, steering, dynamic positioning, safety systems, communication, data logging, user interfaces, air conditioning, lighting systems, and the like.

[66] The helm station 60 is operatively connected to the processing circuitry 102, and serves as a control point for navigation and operation. The control may relate to the propulsion system 15, or any of the one or more subsystems and technologies referred to herein.

[67] Although not explicitly shown, it shall be assumed that the various lines in FIG. 1 refers to various interfaces or peripherals in which the components communicate with one another. For these purposes, any wired or wireless communication standards known in the art may be employed. Wireless communication standards may include IEEE 802.11, IEEE 802. 15, ZigBee, WirelessHART, WiFi, Bluetooth®, BLE, RFID, WLAN, MQTT IoT, CoAP, DDS, NFC, AMQP, LoRaWAN, Z-Wave, Sigfox, Thread, EnOcean, mesh communication, or any other form of proximity-based device-to-device radio communication signal such as LTE Direct. Wired communication standards may include Controller Area Network (CAN), Ethernet, Hybrid Communication Unit (HCU), Gigabit Multimedia Serial Link (GMSL), Local Interconnect Network (LIN), FlexRay, Media Oriented Systems Transport (MOST), Universal Serial Bus (USB). The choice of communication standard may depend on data transfer requirements, real-time capabilities, and specific needs of the various components. It shall be appreciated that the scope of the present disclosure is by no means limited to a particular communication standard.

[68] Although not explicitly shown in FIG. 1, the skilled person will appreciate that the marine vessel 10 may include additional (sub)systems typically found in marine vessels, such as electrical systems, navigational systems, ballast systems, steering systems, HVAC systems, infotainment systems, hydraulic systems, safety systems, communication systems, auxiliary sensory systems, and so forth.

[69] With further reference to FIG. 2, further examples of the present disclosure will be detailed. Generally, FIG. 2 shows an example for autonomous navigation of a marine vessel 10. The functions shown and explain are implemented by processing circuitry 102, herein depicted as having a plurality of nodes.

[70] A first course of action is for the processing circuitry 102 to obtain static proximity data. As discussed above, this may indicate spatial distances between the marine vessel 10 and one or more surrounding static obstacles 22, including both orientations and absolute distances relative the marine vessel 10. As also discussed above, this data can be obtained from a sensing device 12 and / or a (digital) nautical chart 16, as shown in FIG. 2.

[71] Based on the static proximity data, the processing circuitry 102 is further configured to generate an environment map 20 comprising one or more geometric primitives 24. In this particular example, the static proximity data indicated six proximate static obstacles 22a-f, generally defining a wharf. It should be understood that any other type of environment can be realized, not just wharfs / docking areas but any navigable area of the marine vessel 10 in one of those bodies of water.

[72] In the environment map 20, the static obstacles 22a-f are shown by respective geometric primitives 24a-f. These primitives 24a-f might be shaped and positioned according to the contours and coordinates of the static proximity data. The transformation of static proximity data into geometric primitives 24a-f is allows the processing circuitry 102 to compute and optionally visualize these static obstacles 22a-f in a format that is compatible with the other algorithms of the computer system 100, such as pathfinding and MPC.

[73] The environment map 20 may be generated using any exemplary algorithm that takes point-cloud data (the static proximity data) as input and generates the geometric primitives 24a-f. For example, the algorithm may include RANSAC (Random sample Consensus), Hough transform, PCA (Principal Component Analysis), ICP (Iterative Closest Point), region growing segmentation, DBSCAN (Density-based spatial clustering of applications with noise), Poisson surface reconstruction, marching cubes algorithm, or the like. Generally, the environment map 20 generation may involve aggregating adjacent points in a point-based representation of the obtained static proximity data based on predefined criteria. Then, a plurality of geometric primitives 24a-f may be formed based on the aggregation, each geometric primitive 24a-f comprising a spatial grouping of the static obstacles 22. Then, the environment map 20 is stored with the geometric primitives 24a- f. For example, the geometric primitives 24a-f may be polygons, or other type of representations (e.g. ellipses).

[74] The predefined criteria discussed above may be one or more of a proximity threshold, angular continuity, shape regularity, dynamic adaptivity, semantic grouping, and extreme-point size filter. The proximity thresholds help in distinguishing between separate objects and part of the same object, and considers points that are within a certain distance of each other to be part of the same obstacle, thus being grouped together to form a single geometric primitive. The angular continuity criterion checks if the points form a continuous shape within a certain angle, helping to define the edges of objects more clearly. It ensures that only dots that contribute to a coherent form are grouped together. The shape regularity criterion involves algorithms that favor the formation of regular shapes, such as rectangles or ellipses, which can simplify the representation of objects and make further processing more straightforward. The dynamic adaptivity criterion allows for grouping points into geometric primitives to adjust based on the variability in data, such as changes in object distances or sizes due to waves or movement of the vessel. The semantic grouping involves classifying points based on what they represent (e.g., part of a dock, another vessel, or floating debris) and grouping them according to their classifications. This can be based on additional data like color, texture, or known patterns. The extreme -point size filter criterion may include minimum and maximum size filters. These filters exclude groups of points that do not meet certain size specifications from being considered as valid objects. This is useful for ignoring noise in the sensor data that is too small or too large to be relevant.

[75] Once the environment map 20 is populated with these geometric primitives 24a-f, the processing circuitry 102 is configured to generate a navigable path 30. This may be done using a path planning algorithm, implemented by the route planner 13.

[76] Path planning algorithms involve generating a geometric path between an origin position 32 and a destination position 34, focusing only on the spatial aspects of the journey. In this particular example the marine vessel 10 is approaching a docking area, and intends to find a suitable docking spot as the destination position 34. The path planning algorithm assigns a time law to the geometric path, taking aspects such as velocity and acceleration into account. As discussed herein, the path planning algorithm may include known algorithms such as the A* or RRT-algorithms.

[77] The actions discussed above, i.e., the obtaining of the static proximity data, the generation of the environment map 20, and the generation of the navigable path 30, can be performed before navigation. These actions serve as preparatory steps for the ongoing, or real-time, navigation that will subsequently be performed. Hence, the other actions carried out by the processing circuitry 102 are dynamic, meaning that they are carried out during navigation of the marine vessel 10 from the origin position 32 towards the destination position 34.

[78] Generally, the dynamic actions involve obtaining dynamic proximity data indicating distances between the marine vessel 10 and one or more surrounding dynamic obstacles 42, and dynamically adjusting the navigation using a MPC method. The MPC method applies at least one cost function configured to minimize deviations from the navigable path based on the dynamic proximity data. The dynamic proximity data may be obtained from the sensing device 11.

[79] In this particular example the dynamic proximity data indicates the presence of two dynamic obstacles 42a-b. While initiating the navigation, none of these are necessarily in the path of the marine vessel 10, but are either expected to be in the path at a future instant, or appear in the path once the marine vessel 10 has navigated a portion of the navigable path. This is indicated by the exemplary current position 33 in between the origin position 32 and the destination position 34. The current position 33 may be anywhere along the navigable path 30 between the origin position 32 and the destination position 34. As shown in the illustration, when the marine vessel 10 is expected to be located at the current position 33, the dynamic obstacle 42b being another vessel makes a sudden forward movement, thus causing the dynamic adjustment of the navigation of the marine vessel 10, effectively veering from this dynamic obstacle 42b. The other dynamic obstacle 42a is a swimmer having a certain velocity. It is determined by the processing circuitry 102 that the velocity of the swimmer 42a and the navigable path 30 will likely cause a collision in the future, hence the dynamic adjustment of the navigation to avoid the swimmer 42a. The dynamic aspects may thus base the decision of on velocity data of the dynamic obstacles 42. As such, a final route 44 that is taken is not the same as the initial navigable path 30 due to the existence of the dynamic obstacles 42a-b. The final route 44 is a result of the MPC method applying the (one or more) cost function(s) for minimizing deviations from the navigable path 30 based on the dynamic proximity data. In other words, the final route 44 is an optimal route that balances avoidance aspects and time efficiency for reaching the destination position 34.

[80] Similar to the geometric primitives 24a-f based on the static proximity data, the processing circuitry 102 may be configured to generate an updated environment map 40 based on the environment map 20 and one or more additional geometric primitives 24g-h generated based on the dynamic proximity data of the dynamic obstacles 42a-b. Of course, the environment map 20 and the updated environment map 40 can be envisaged in any way based on the prevailing environment of the marine vessel 10. The navigable path 30 and / or the final route 44 may be any route / path spanning across relatively short distances (e.g. in a docking area), or across relatively long distances (e.g. from a first docking area at a land area to a second docking area on an island, archipelago or another land area).

[81] The at least one cost function may include a dynamic weight factor for one or more of said deviations that is to be minimized, thereby ensuring that the trajectory of the marine vessel 10 remains as close as possible to a predefined navigable path while avoiding obstacles. That is, in FIG 2 the final route 44 is minimized to remain as closely as possible to the navigable path 30. The “cost function” in this context is a mathematical formula used by the MPC method to evaluate the potential outcomes of different navigational choices. Each potential path the vessel might take is assigned a “cost” based on various factors such as the distance from the navigable path 30, proximity to dynamic obstacles 42, fuel efficiency, time to destination, etc. The “dynamic weight factor” within these cost functions is a variable that adjusts the importance or influence of these factors based on changing environmental conditions and the operational status of the marine vessel 10. For instance, when the marine vessel 10 is in a crowded harbor, the dynamic weight factor for proximity to dynamic obstacles 42 may be increased to prioritize collision avoidance. Conversely, in open waters, the weight factor might shift towards optimizing fuel efficiency or speed. The dynamic nature of these weight factors allows the navigation system to be responsive and adaptive, modifying its calculations based on real-time data inputs from e.g. the sensing device 11 and external sources such as nautical rules / laws / charts.

[82] The MPC method thus helps in dynamic navigation by continuously calculating and recalculating the optimal route the vessel should take at each moment. By evaluating multiple potential paths and selecting the one with the lowest total cost, the MPC method ensures that the movements of the marine vessel 10 are both safe and efficient. This ongoing process of adjustment allows the vessel to respond proactively to changes in its environment, such as the sudden appearance of an obstacle or a change in weather conditions, ensuring continual adherence to the safest and most efficient course. The flexibility offered by incorporating dynamic weight factors into the cost functions of the MPC method can enhance the marine vessel’s 10 ability to navigate complex maritime environments. It can allow for a high degree of customization in how different navigational challenges are prioritized, providing a tailored approach that can adapt to a wide range of scenarios. This capability may not only improves the safety and reliability of the marine vessel’s 10 navigation system but may also enhance its efficiency, making it a valuable tool in modem maritime operations.

[83] The MPC method may comprise defining one or more geometric limits in the vicinity of the marine vessel 10, which are virtual limits. Each geometric limit has a distance from a point, such as a center point, located along a longitudinal line, such as a center line, of the marine vessel 10. This central point often represents the geometric or operational center of the vessel, providing a reference point from which all distances are measured. The dynamic weight factor is increased in response to a dynamic obstacle being located within the distance. This is shown according to three examples of FIGs. 3A-C. FIG. 3 A shows one geometric limit Cu the longitudinal line L, and the distance R. FIG. 3B shows three geometric limits C1, C2, C3 and FIG. 3C five geometric limits C1, C2, C3, C4, C5. In these examples the geometric limits are circles, but this shall not be construed as limiting. The geometric limits may in other examples be ellipses, rectangles, or the like.

[84] The MPC method involves the designation of these geometric limits as areas where the presence of obstacles necessitates increased caution. Each geometric limit acts as a threshold that, when breached by a dynamic obstacle 42 such as another vessel or floating debris, triggers a specific response from the navigation system. The system is configured to increase the dynamic weight factor associated with the cost functions in the MPC algorithm when a dynamic obstacle enters these defined zones. By increasing this factor in response to obstacles entering the geometric limits, the MPC method prioritizes routes that steer the marine vessel away from potential collisions or navigational hazards. This heightened response is automatically calculated based on the proximity data of nearby objects relative to the predefined geometric limits. Implementing these geometric limits helps to enhance the dynamic navigation capabilities of the marine vessel 10 by creating zones of heightened sensitivity around the marine vessel 10. This setup allows the MPC method to proactively adjust the course of the marine vessel 10 in real-time, ensuring that it maintains a safe distance from dynamic obstacles 42 that could pose a risk to its safety or operational integrity. The use of a central reference point along the marine vessel’s 10 centerline for defining these limits can ensure that the adjustments are symmetric and balanced, providing stable and predictable handling of the marine vessel 10.

[85] The MPC method may comprise performing continuous route estimations at each time step during said navigation to obtain a plurality of possible routes from a current position 33 of the marine vessel 10 to the destination position 34. As discussed above, the current position 33 is between the origin position 32 and the destination position 34. Then, the MPC method selects a route from among the plurality of possible routes having the lowest cumulative cost based on predicted increments of the dynamic weight factor. This is caused by dynamic obstacles 42 that are predicted to be located within the distance when the marine vessel 10 selects that route. The prediction is thus based on velocity data of the dynamic obstacles 42. The MPC method begins this process by generating a set of potential routes from the current position 33, which is dynamically updated as the marine vessel 10 progresses from the origin position 32 towards the destination position 34. Each potential route is evaluated based on a series of criteria defined by the MPC method’s cost functions, which incorporate dynamic weight factors discussed above. The predictive element of this MPC method leverages velocity data of dynamic obstacles to forecast their future positions at each time step of the marine vessel’s 10 navigation. This predictive capability can allow the MPC method to estimate which dynamic obstacles 42 will pose a threat along each potential route. The dynamic weight factors are then adjusted accordingly, increasing the cost associated with routes that will bring the vessel 10 too close to these predicted positions of the obstacles.

[86] At each time step, the MPC method may select the route with the lowest cumulative cost from among the multiple possibilities. This selection is based on the comprehensive evaluation of all predicted risks and navigational challenges. The route with the lowest cumulative cost is the one that best balances the need to reach the destination efficiently while avoiding collisions and minimizing the impact of navigational hazards.

[87] This continuous re-evaluation and adjustment of the route make the MPC method effective for marine navigation, where conditions can change rapidly and unpredictably. By integrating real-time data about the dynamic environment and continuously recalculating the optimal path, the MPC method provides proactive course maintenance of the marine vessel 10.

[88] The MPC method may comprise adapting a number of geometric limits based on navigational requirements and / or environmental data. This flexibility can allow the marine vessel 10 to dynamically adjust its safety and operational protocols to better suit the immediate conditions and requirements of the journey. The geometric limits were defined above, and an increased number can be more beneficial when navigating in close quarters or in areas with high traffic or numerous obstacles, such as in a docking area. The navigational requirements may comprise traffic density data, or route complexity data, etc., where traffic, more geometric limits might be added to provide finer control over the movements of the marine vessel 10, allowing for more granular adjustments to the navigation strategy. For example, in a highly congested shipping lane, additional limits might be set to ensure that the vessel maintains safe distances from multiple nearby objects simultaneously. The environmental data, such as visibility or sea state, can also influence the adjustment of geometric limits. In poor visibility conditions, such as fog or heavy rain, the MPC method might expand the limits to increase the safety margin, accounting for the reduced reaction times and increased difficulty in detecting obstacles. By adapting the geometric limits in response to these factors, the MPC method allows the marine vessel 10 to remain flexible and responsive to changing conditions. This adaptability ensures that the marine vessel 10 can maintain optimal safety protocols, adjusting its precautionary measures to match the level of risk associated with its current environment and operational needs.

[89] While the number of geometric limits are primarily discussed above, it shall be understood that the distance can also be adjusted based on similar considerations and factors. In general, the number of limits and length of the distance can depend on various factors, such as vessel properties (size, dimensions, weight, etc.) or operational properties (motor thrust, environment type, etc.). Cost functions for these geometric limits will be discussed later on in this disclosure.

[90] The dynamic weight factor may be increased for higher speeds of the marine vessel 10 compared to lower speeds, as indicated by speed data of the velocity data. This approach recognizes that the risk associated with navigational decisions varies with the speed at which the marine vessel 10 is traveling. By linking the dynamic weight factor to the marine vessel’s 10 speed, the system can provide a nuanced response that is proportionate to the operational dynamics of the vessel at any given time. For example, at higher speeds, the ability to make sudden maneuvers or stop quickly is reduced compared to when it is moving slowly. Consequently, the risks associated with close proximity to obstacles or deviations from the optimal navigational path are greater at high speeds. In response to this increased risk, the dynamic weight factor is elevated when the speed data indicates higher velocities. This adjustment means that the MPC method places a greater emphasis on avoiding risky maneuvers and maintaining a safer, more conservative course during high-speed travel. Conversely, at lower speeds, the marine vessel 10 has more flexibility to make adjustments and can navigate closer to obstacles without the same level of risk. Therefore, the dynamic weight factor is reduced at lower speeds, allowing for more aggressive maneuvering and closer proximity operations, which can be advantageous in certain navigational contexts, such as docking or navigating through crowded harbors. This speed-sensitive adjustment of the dynamic weight factor allows the MPC method to dynamically tailor the navigational strategy to its current operating conditions. This may enhance the safety and efficiency of the operations by ensuring that the level of caution exercised through the cost functions is appropriate to the speed at which the vessel is traveling.

[91] The dynamic weight factor may be increased in narrower navigable areas compared to wider navigable areas, as indicated by the localization data. This adjustment is informed by localization data that was discussed above, which characterizes the spatial dimensions of the marine vessel’s 10 environment. By linking the dynamic weight factor to the navigational width of the surroundings, the system can adaptively respond to varying levels of navigational complexity and risk. In narrower navigable areas, where the marine vessel 10 has limited room to maneuver and the proximity to potential obstacles is inherently closer, the risks associated with navigation increase. To address these increased risks, the dynamic weight factor is elevated in such constricted spaces. This heightened factor enhances the sensitivity of the MPC method’s decision-making process, prioritizing safer navigational choices and reducing the likelihood of collisions or groundings by imposing higher costs for risky maneuvers or deviations from the safest path. Conversely, in wider navigable areas where there is more space available for maneuvering and the risk of close encounters with obstacles is reduced, the dynamic weight factor is decreased. This reduction can allow for greater navigational flexibility and more aggressive maneuvering when the spatial context permits, enabling the marine vessel 10 to optimize its path for efficiency without compromising safety. This adaptive approach to adjusting the dynamic weight factor based on the width of navigable areas can ensure that the marine vessel’s 10 navigation strategy is appropriately calibrated to the environmental context. It can leverage localization data to dynamically assess the navigational challenges presented by different areas and adjusts the responses accordingly.

[92] The dynamic weight may be adjusted based on a navigational mode of the marine vessel 10. These examples allow the system to tailor its decision-making process to different operational contexts, reflecting the varied requirements and risks associated with each navigational mode. By adjusting the dynamic weight factor according to the marine vessel’s 10 current navigational mode, the system can ensure that its responses are appropriately calibrated to the specific challenges and objectives of that mode.

[93] In one example, the navigational mode is a driving mode. This corresponds to a standard driving mode, navigating through open waters or heading towards a destination. In the driving mode, the dynamic weight might be balanced to prioritize forward movement travel while still maintaining a safe distance from known obstacles. Here, the system would ensure optimal fuel efficiency and speed, aligning with the general goal of reaching the destination effectively. To this end, a relative increase of the dynamic weight factor is caused for deviations from the reference path, i.e., the navigable path 30, and for proximity to dynamic obstacles 42. The dynamic weight factor is calibrated to support sustained forward progress toward the destination. This involves ensuring that the marine vessel 10 maintains a steady course and speed, aligning closely with the plotted navigable path 30. To minimize deviations from this reference path, the dynamic weight factor for such deviations is relatively increased. This means that any potential route or maneuver that would lead the marine vessel 10 away from its intended path incurs a higher cost within the MPC method’s calculations. The system, therefore, discourages deviations unless absolutely necessary for safety. Similarly, the dynamic weight factor is adjusted to increase the cost associated with proximity to dynamic obstacles. This adjustment ensures that the marine vessel 10 maintains a safe distance from other moving objects, such as ships, floating debris, or marine life, that could pose risks to safe navigation. The system becomes responsive to these potential hazards, actively adjusting the marine vessel’s 10 course to maintain safety without disrupting forward progress. This tailored approach in driving mode allows the MPC to balance the goals of efficiency and safety effectively. By prioritizing forward movement while still being highly responsive to deviations and obstacles, the system can ensure that the marine vessel 10 progresses smoothly towards its destination, making adjustments as needed to respond to real-time conditions.

[94] In one example, the navigational mode is a dynamic obstacle driving mode. In this mode, the dynamic weight is adjusted to penalize routes that bring the marine vessel 10 close to these obstacles, thus enhancing the marine vessel’s 10 responsiveness to potential hazards and prioritizing immediate safety over speed or fuel efficiency. To this end, the cost for deviating from the reference path, i.e., the navigable path 30, is set to zero which allows for the MPC method to select an arbitrary next set point for navigation. By eliminating the penalty for leaving the planned route, the MPC method is given the flexibility to dynamically alter the course of the marine vessel 10 as needed to avoid collisions. This flexibility is essential for responding to unpredictable movements of obstacles and ensuring the marine vessel 10 can navigate safely in complex environments. With the cost for path deviation set to zero, the MPC method is allowed to freely select arbitrary next set points for navigation. This means that the MPC can choose any direction or point that it deems safest without being constrained by the need to follow the predetermined path. The selection of these set points is based on real-time assessments of the safest routes available, considering the current positions and predicted movements of dynamic obstacles. This mode may be particularly useful in high-traffic areas or in conditions where obstacles are likely to move into the vessel’s path unexpectedly.

[95] To ensure safe maneuvering while driving toward the docking position, a safe collision avoidance technique can be employed both for avoiding static and dynamic obstacles but also for staying within the harbor environment. To ensure a safe distance between the marine vessel 10 and the obstacles or the environment’s boundaries, padding can be added to each obstacle and boundary. The padded obstacle is then used as the real obstacle when planning the path and trajectory of the marine vessel 10. The distance from the marine vessel 10 to each obstacle is calculated from the center of the marine vessel 10 to the edges of each padded obstacle. This means that the size of the padding is determined by the longest distance from the center of the marine vessel 10 to the edge of the marine vessel 10 to ensure that the padding is large enough to avoid collision when driving close to an obstacle.However, to ensure that the least amount of drivable space gets removed by padding, two extra reference points can in some examples be added, for minimizing the size of the padding. There is a possibility to add more reference points depending on the size of the marine vessel 10 and to minimize the padding further. However, to minimize the computation time it is more suitable to have as few reference points as possible such that the padding covers the entire marine vessel 10 while also removing the least amount of drivable space.

[96] In one example, the navigational mode is a docking mode. When approaching a dock or marina, the system can engage the docking mode where precision and slow maneuvering are relatively more important compared to other modes. In the docking mode, the dynamic weight factor is reduced for path deviation to zero, and increased for deviation from the destination position 34. This adjustment acknowledges that during docking, the strict adherence to the initial navigational path may not be as critical as the precise positioning of the marine vessel 10 at the docking point. By removing the penalty for path deviation, the MPC method allows for more flexible maneuvering as the marine vessel 10 approaches the dock, enabling it to respond adaptively to real-time conditions and obstacles that may not have been present or considered during the initial path planning. Conversely, the dynamic weight factor is relatively increased for deviations from the docking position, which is the designated destination position in this mode. This adjustment can ensure that the MPC method prioritizes the vessel’s alignment and proximity to the docking position above all else. The increased dynamic weight factor acts to finely tune the final movements of the marine vessel 10, helping to ensure that it docks accurately and safely, aligning with the dock without causing damage or requiring subsequent adjustments. This mode can be beneficial in busy or constrained harbors where the docking spaces are tightly packed or in conditions where environmental factors like wind or current might affect the docking process. The ability of the MPC to dynamically adjust its priorities — minimizing the importance of path adherence while maximizing the importance of precise docking — can provide a robust tool for mariners, ensuring that docking maneuvers are conducted smoothly and safely, thereby reducing the risk of collision or damage during these critical operations.

[97] In some examples, the dynamic adjustment of the navigation comprising controlling the marine vessel 10 to alter one or more of a surge, sway, and yaw rate. These elements represent key aspects of the movement of the marine vessel 10. Adjusting these factors allows for precise maneuvering and stabilization of the vessel in response to environmental conditions and navigational requirements. The processing circuitry 102 may control this based on control signals sent to the propulsion system 15. Surge control refers to the forward and backward movement of the marine vessel 10, and involves modulating the throttle or power output to control the speed at which the vessel moves forward or backward. This is used to control acceleration towards a destination or slowing down as the marine vessel 10 approaches a dock or navigates through tight channels. Sway adjustments refers to lateral movements, and help the marine vessel 10 to move laterally to avoid obstacles or align with a docking station without changing the marine vessel’s 10 orientation. This is useful in crowded or confined waters where lateral movement must be precisely managed to maintain safe passage. Yaw control refers to the rotational movement around the vertical axis of the marine vessel 10. Controlling the yaw rate involves adjusting the marine vessel’s 10 rudder or employing thrusters to rotate the vessel along its vertical axis. This allows the marine vessel 10 to change directions smoothly and maintain its heading in response to navigational commands or in reaction to changing water currents or wind directions.

[98] The processing circuitry 102 may be configured to classify at least one of the one or more surrounding dynamic obstacles 42, and adjust the dynamic weight factor based on the classification. The classification may indicate a size, type, dimension, or the like, of the dynamic obstacle 42. Based on this detailed classification, the processing circuitry 102 can adjust the dynamic weight factors used in the MPC method to optimize navigational responses. The processing circuitry 102 bases the classification on the proximity data, which now includes image data so that the imagery can be analyzed and processed. Advanced algorithms, possibly incorporating elements of machine learning and computer vision, analyze this data to classify the obstacles. For example, the processing circuitry 102 can make distinctions between a small recreational boat and a large cargo ship, recognize floating debris, or identify buoys and other maritime markers. More sophisticated classifications might involve detecting vessels carrying hazardous materials, which require particularly cautious handling. Once an obstacle is classified, the processing circuitry 102 adjusts the dynamic weight factors within the MPC method’s cost functions. These adjustments are tailored based on the potential risk and navigational challenges posed by each type of obstacle. For instance, larger or hazardous-laden vessels might be assigned a higher weight, prompting the MPC method to prioritize wider berth strategies or more cautious speed adjustments when navigating near these obstacles. Conversely, smaller, less risky objects might receive a lower weight, allowing for closer proximity without significantly altering the course. This capability to classify and weight obstacles dynamically allows the navigation system to adapt its strategy more precisely to current conditions. By incorporating obstacle classification and corresponding dynamic weight adjustments, it may allow for more nuanced responses to a complex and dynamic marine environment, reducing the risk of collisions and improving operational efficiency.

[99] The MPC method will be described in more detail in the following parts of this disclosure, starting with FIG. 4 A, which generally shows an MPC method 400. The MPC method 400, sometimes also referred to as Receding Horizon Control (RHC), is a control technique in which the current control action is obtained by solving, at each sampling instance, a finite, open-loop, optimal control problem. The fundamental idea behind MPC is built upon the concept of optimal control. The basic idea is to use a dynamic model to predict system behavior and optimize the prediction to provide the optimal decision, which is the control action at the current time, or current MPC state 404. The MPC method 400 depends on the initial state 402 of the dynamic system, which is shown according to the example of FIG. 4A. The MPC method 400 may therefore to use past measurements to estimate the most likely initial state of the system. This involves examining records of past data and integrating them with the system model to solve the state estimation problem and identify the most likely value of the state at any given time. In summary, both the control problem where predictions of a model are used to determine the optimal control action and the state estimation problem where past data is used to estimate an optimal state value involves dynamic models and optimization.

[100] The core of MPC can be summarized as the receding horizon idea which follows a few steps. At step 1, starting with time instant k, the process response is predicted over a finite prediction horizon N. This response will depend on the sequence of future control inputs over the control horizon, M. At step 2, the control sequence that minimizes a set of cost functions is then selected, i.e., giving the best performance in terms of a specified objective. At step 3, the first element of the control sequence is then applied, i.e., the current control action, to the process, and the rest of the sequence is discarded and then the method returns to the first step.

[101] Formulating the MPC method 400 may involve an internal model describing the processes and disturbances of a system, an estimator / predictor to determine the evolution of the state, and an objective / criterion to express the desired system behavior. It may also involve an optimization algorithm to determine future control actions and the receding horizon principle explained above.

[102] Employing MPC for trajectory generation for autonomous vehicles starts by developing a dynamic model of the vehicle motion, which build on differential equation models according to FIG. 4B, where x ∈ Rn is the state 402, 404, u ∈ Rn is the input, y G Rp is the output, and t ∈ Rn is the time. The initial value for the system, x0, is specified by the values of the state x at the time t = t0. The emphasis for dynamic modeling of the motion of the marine vessel 10 will be on discrete-time state space models, but these often originate from continuous-time models of a process, which may be obtained by linearizing an original non-linear model.

[103] In most MPC formulations the system dynamics are given in continuous time in the form of the differential equations presented in FIG. 4B. However, when searching for solutions, the processing circuitry 102 is implemented through the computer system 100 by sampling the variables of the system and transmitting the control action to the system at discrete time steps. Hence, discretizing the continuous time model to a discrete-time model is preferably done. There are multiple methods for discretizing a continuous time model, for example the first-order Euler forward integration method shown in FIG. 4C. Herein, uk = u(tk) starting from the initial conditions x0. The larger the time step At is, the higher the deviation from the true model trajectory x(t). Hence, to capture the true model dynamics of the system and get a reasonable accuracy a shorter time step may be necessary. This would increase the optimization problem’s complexity, but the numerical stability is also an aspect to consider when choosing a reliable integration method.

[104] For the Euler scheme, by having a time step At that is too large, there is a possibility that any error will be amplified during each iteration, meaning that after some time the value of xk might become unstable and hence also meaningless. In other words, the explicit Euler scheme will possibly deliver an unstable simulation when the time step At is too large. A more widely used method of integration is Runge Kutta 4 (RK4). The RK4-method can be viewed as a predictor-corrector method as it first predicts a value in the midpoint and then corrects it to a better estimate at the next step. RK4 is a fourth order method and involves four steps to advance from n to n l. For the same step size At, RK4 may be more efficient and accurate than the Euler scheme. RK4 is a commonly used method as the trade-off between computational complexity (CPU time) and accuracy is preferable. The RK4 method had four stages and the integration order of the scheme is four. The RK4-method is formulated in FIG. 4D. The fully assembled RK4-step is then formulated in FIG. 4E.

[105] MPC is a control method in which the next control action is obtained by solving online, at each sampling instant, a finite horizon optimal control problem (OCP) where the current state is the initial state to the system. The OCP, P∞ (x) , can be defined according to what is shown by FIG. 5 A, where x(t) and u(t) satisfies x = f(x, u). Solving this optimization problem yields a finite control sequence and the first control action in this sequence is applied, i.e., only the control action computed for the first time step is implemented and the remainder of the solution is discarded. After this, the time horizon is shifted and a new open- loop optimal control is found for the next time horizon. This process is repeated every time step. When there exists a solution to this problem it is denoted by and the resulting optimal value function by

[106] As discussed above, it is favorable to replace the continuous time differential equation with a discrete-time difference equation when searching for solutions using the processing circuitry 102. The discretization for both the state space equations and the objective defined in FIG. 5A can be made using both methods described above. However, a general expression for the control of a constrained time-invariant system is described by the nonlinear difference equation shown in FIG. 5B.

[107] As mentioned previously, another ingredient in formulating MPC is the construction of an estimator / predictor to determine the evolution of the state. However, since the focus of the present disclosure is not on the state estimator but on trajectory tracking, this is not further discussed herein.

[108] In nonlinear model predictive control (NMPC), a nonlinear mathematical plant is added to the cost functions to find the optimal control sequence that minimizes the resulting cost while satisfying any constraints. NMPC extends the concept of MPC to handle nonlinear systems and uses nonlinear models, which can include time-varying parameters, for prediction and optimization. Unlike MPC, the constraints on the states and control inputs can be nonlinear, which allows for more accurate handling of system limitations. NMPC involves solving an OCP over a finite prediction horizon, however, unlike MPC, these problems are not necessarily convex.

[109] Concerning the obstacle avoidance, both in the dynamic obstacle avoidance mode and in general, there are various methods available for solving obstacle avoidance in MPC. A first example is shown in FIG. 6A, corresponding to the repulsive potential function ( Pk ) acting as a penalty term that discourages an MPC-controlled point from approaching a singularity point too closely. The potential function is typically defined in terms of the controlled point’s position (x, y ) and the position (x0, y0 ). Here, e is a small positive number introduced to avoid singularity issues when (x, y) and (x0, y0) are getting too close. The value of e determines the strength of the penalty; a smaller value of e results in a stronger penalty, while a larger value of e results in a weaker penalty. For linear obstacles, an approach is to find the nearest point on the obstacle’s line to the current position (x, y) and treat this point as the reference point (x0, y0) for the repulsive potential function Pk. Similar methods can be applied to other shapes.

[110] Another example is shown in FIG. 6B, corresponding to the dynamic hyperplane method. This method aims to separate two convex sets by dividing each set into a separate halfplane defined by a hyperplane. In the equation, s is a point in space, λ is the normal vector and μ is an offset. By taking two convex sets V1 and V2 described by a polygon with the points V = [p1, p2, ... pn]Tand v1 ∩ V2 = 0 then the dynamic hyperplane method defines two halfplanes that separate the two sets according to FIG. 6C.

[111] By adding the offset μ as a decision variable to the existing decision variables in the OPC; the condition to separate the two sets from colliding holds if the OPC can find a hyperplane for each iteration. As seen by the example of FIG. 6D, by setting this condition as a constraint or a cost with a high penalty weight the OPC will be forced to find a solution that satisfies the dynamic hyperplane; navigating the controlled object in a collision-free path. The controlled object (such as the marine vessel 10) is depicted as the rectangle (1-4) for an increasing iteration, and avoids an obstacle (the ellipse, such as the dynamic obstacle 42) and its corresponding dynamic hyperplane, depicted as the lines (1-4).

[112] The optimization problem within the MPC method for the marine vessel 10 involves the development of a kinematic model. The kinematic model describes the motion of the marine vessel 10, the formulation of appropriate cost functions for various objectives, and the integration of these elements with set constraints for a comprehensive optimization problem.

[113] The first step towards using MPC for trajectory generation and obstacle avoidance for the marine vessel 10 involves developing a model of the motion. The marine vessel 10 is modelled in the 2-D plane by assuming that the motion acts on a plane surface, i.e., neglecting roll and pitch. This means that the motion of the marine vessel 10 is assumed to be constant relative to the water surface. Environmental forces such as wind, waves, and currents are neglected when developing the model in the 2-D plane. Although these factors may affect the motion in the real world, this simplification reduces the complexity of the model while still capturing the aspects of the motion. In this disclosure, the model of the marine vessel 10 is assumed to be purely kinematic, meaning that the motion of the marine vessel 10 is described without considering the forces and torques that cause this motion. The model only focuses on the geometry of the motion, and by doing so, ideal conditions can be assumed by neglecting friction, drag, or other forces.

[114] The motion of the marine vessel 10 is represented by the pose vector shown in FIG. 7A, which also represents the states of the system and the velocity vector shown in FIG. 7B, i.e., the control inputs of the system. Here, (x, y) represents the position of the marine vessel 10 in the earth- fixed reference frame, ψ represents the orientation around the zaxis, the yaw angle, ( u , v) represents the body-fixed linear velocities, surge and sway, and r is the yaw rate, as shown in FIG. 7C describing variables used to describe the motion of the marine vessel 10 in the horizontal plane. Herein, ( x , y) is the positional coordinates of the marine vessel 10, (u, v ) are linear body fixed velocities (surge, sway), ψ is the yaw angle and r the yaw rate. Using these notations, a three degrees of freedom (3DOF) kinematic model can be described according to FIG. 7D, where R (ψ ) is the rotational matrix given by FIG.7E. The final kinematic model is given by FIG. 7F.

[115] With further reference to FIGs. 8A-N, cost functions discussed herein will now be further described. In some general examples, the cost function can be based on one or more of a cross-track-error (CTE), forward drive prioritization (such as in the driving mode), object avoidance prioritization (such as in the dynamic obstacle avoidance mode), reference velocity, terminal position (such as in the docking mode), acceleration cost, nautical law and nautical chart. These cost functions are designed to quantify the desirability of different navigational decisions based on various operational and navigational criteria, thereby guiding the path of the marine vessel 10 in a manner that optimizes safety, efficiency, and compliance with maritime regulations. By basing the cost functions on these diverse criteria, the MPC method can dynamically balance various navigational priorities, adjusting the marine vessel’s 10 course and speed in real-time to respond to immediate conditions and longer-term navigational goals. This comprehensive approach allows the system to cater to different phases of the journey — whether the marine vessel 10 is in open water, navigating tight passages, or approaching a dock — by adjusting the relative importance of each component of the cost function according to the current navigational mode and external conditions.

[116] The obstacles can be interpreted in many different ways, but are in this disclosure preferably modeled as convex polygons with a minimum of four vertices. Each polygon obstacle is represented by a set of half-spaces in R2, according to FIG. 8A, where each vector an m and scalar bn m defines a half-space and the constraint Hn represents the intersection of these half-spaces. In this expression, M defines the number of inequalities forming the polygon, i.e., one inequality for each half-space, n denotes the n-th obstacle, and p represents a point in the 2-D space with coordinates (x, y ) being the position of the marine vessel 10. The constraint Hn is defined as the collection of points p such that the condition hn,m = bn,m — αn,mP > 0 holds for the finite set of M inequalities. Hence, for a point p not the be inside an obstacle, p ∉ Hn, the constraint defined by FIG. 8B must hold. Based on this constraint, a soft obstacle avoidance cost with penalty Q0 is defined according to FIG. 8C. This means that if a point p is inside an obstacle, the cost J0 will increase. Since additional reference points can be added to the marine vessel 10 to minimize the padding of each obstacle, these points can also be used when calculating the obstacle avoidance cost. This means that the final obstacle avoidance cost can be the sum of the cost for all points (in FIGs.3A-C this refers to the centre points of the geometric limits Cn). The cost will thus be the sum of the costs for all geometric limits. In FIG. 8D, the cost function for the object avoidance prioritization with the example of three limits is shown.

[117] For the MPC method, a boundary region is also defined as the region in which the docking procedure will take place, i.e., the boundary of the harbor environment. Meaning that the marine vessel 10 should stay inside the boundaries when in the docking mode. The boundary region is also defined as a convex polygon with four vertices, hence the boundary constraint and cost are defined similarly to the constraint and cost for the static obstacle avoidance but in the opposite way. For a point p in the marine vessel 10 to inside all MB halfspaces of the boundary region constraint of FIG. 8E should hold. The cost for the marine vessel 10 being outside the boundaries can then be formulated according to FIG. 8F, meaning that if a point p is outside of the boundary region, the cost Jo will increase with a scale of the penalty weight QB. Similar to static obstacle avoidance cost, the cost of being outside the boundaries is calculated for all reference points in the marine vessel 10, giving the final cost according to FIG. 8G (with three exemplary limits). FIG. 8G thus shows the cost function for being outside of the boundaries of the geometric limits. FIGs. 8E and 8G are thus useful in the dynamic obstacle avoidance mode of the marine vessel 10.

[118] In examples herein the geometric primitives 24 of the dynamic objects are preferably represented as ellipses due to the simplicity of their mathematical representation, making them readily incorporated into optimization problems and hence favorable in the context of the MPC method. The cost function to penalize the marine vessel 10 being too close or inside a dynamic obstacle can be calculated according to FIG. 8H, where ND is the number of dynamic obstacles and denotes the non-negative part of the expression, ensuring that only values less than one contribute to the cost.

[119] Reaching the final docking position with the right orientation is important in a docking scenario (i.e., in the docking mode). Hence, a cost function can be formulated to ensure the marine vessel 10 reaches its desired docking position with minimal positional and orientation errors. The cost function for the terminal position with penalties QN and Q^N is given by the formula of FIG. 81, where x and y are the current position and ψ is the current orientation (heading angle) of the marine vessel 10. The final state, i.e., the desired terminal position and the desired terminal orientation is Xf, ff, and ψ f. QN is the penalty associated with the positional deviation and QψN with the final orientation deviation and by appropriately tuning these weights, the importance of the positional and orientation accuracy can be balanced to the requirements of the control task.

[120] The forward drive prioritization is applied particularly in the driving mode, and emphasizes maintaining a steady forward progression towards the destination, optimizing speed and efficiency while minimizing unnecessary maneuvers. The cost function for the forward drive prioritization is shown in FIG. 8J. The marine vessel 10 is capable of exhibiting motion in multiple directions, including longitudinal (surge), lateral (sway), and rotational (yaw) movements. This encompasses forward and backward propulsion, lateral translation, and rotation around its vertical axis. To ensure a comfortable and safe drive toward the docking position and before the docking procedure starts, forward or backward propulsion is preferred, i.e., motion in the longitudinal direction (surge). To make sure that this movement is prioritized before the docking procedure starts, a cost function, Jv, is designed to ensure that the vessel minimizes lateral acceleration, which in turn prioritizes forward drive stability and smoothness. Herein, Qv is the penalty weight determining the importance of minimizing the lateral acceleration, αv is the lateral acceleration which is based on the change in control input over a given time step, i.e., the current control input in the lateral direction the lateral velocity vk at time step k, and the previous control input in the lateral direction vk-1 at time step k — 1. Δt is the time step between the current and previous control input. By penalizing the lateral acceleration, the control strategy encourages the marine vessel 10 to maintain a straight and stable trajectory, enhancing control and safety.

[121] The CTE measures the lateral distance between the current path of the marine vessel 10 and the designated navigable path, penalizing deviations to ensure the vessel stays on course. The CTE cost function with penalty QCTE is given by the formula of FIG. 8K.

[122] Cost functions for control actions and initial acceleration can also be defined. To follow a navigable path with smooth behaviors, the objective function is defined by several cost functions as explained in the examples herein. The cost functions for control actions and initial acceleration are defined to ensure smooth transitions for penalizing the deviations from the original trajectory. Deviations from the original trajectory are handled with the CTE as explained herein, specifically in FIG. 8K. Deviations from the original velocity can be penalized by adding a cost to the control actions. The parameters that the MPC method controls are the motions that the marine vessel is capable of exhibiting in multiple directions, surge (u), sway (v), and yaw rate (r).

[123] To ensure safe and comfortable maneuvering, a reference control input is sent to the MPC method to ensure that the marine vessel 10 will keep the desired velocities at each instance. For this to happen, a cost function for the control action is designed to penalize deviations from the reference control input. This makes the controller follow a desired control trajectory closely. The control action cost with penalty weight r and horizon N is defined by the equation of FIG. 3L, where v is the control input, [u, v, r]T , and v is the reference input, [u, v, f]T, i.e., the desired control action the system aims to follow. The control action cost is especially important for tasks that require precise control, such as trajectory tracking or maintaining stability. It also helps ensure smooth control actions by penalizing relatively large deviations from the reference control input.

[124] To follow the given trajectory with smooth behaviors, the objective function is also defined by a cost function that penalizes the acceleration according to FIG. 3M, where vk represent the control input at time step k, and vk+1 represents the control input at subsequent time step k 1. Qa is the penalty weight matrix, [qau, qav, qaψ ], that penalizes the changes in the control inputs, the acceleration, and N is the prediction horizon. This cost function penalizes changes in control inputs across three directions, the longitudinal, lateral, and rotational acceleration, au, av, and ar, and provides smooth transitions as well as reduces abrupt changes in control inputs.

[125] In addition to the above discussed equations, a cost function for reference velocity can be defined. The reference velocity can ensure that the marine vessel 10 maintains a speed that is both safe and optimal for current conditions, adjusting costs based on deviations from this set velocity.

[126] Yet additionally, a cost function for nautical law / chart compliance can be defined. This cost function integrates legal and geographical considerations into the navigation process, such as adherence to traffic separation schemes and avoidance of environmentally protected areas or obstacles documented in nautical charts.

[127] While the cost functions above can be considered alone, and two or more in combination, all of them may be combined to obtain a complete optimization problem defined by the MPC method. This is shown in FIG. 8N, where an objective function with constraints is formulated. In the equation, Jo is the cost function for obstacle avoidance prioritization of FIG. 8D, JB is the cost function for being outside of the boundaries of the geometric limits of FIG. 8G, JD is the cost function for penalizing the states of the marine vessel 10 that are too close or inside a dynamic obstacle of FIG. 8H, JF is the terminal cost function for ensuring that the marine vessel 10 reaches its desired docking position of FIG.81, Jv is the cost function for the forward drive prioritization of FIG. 8J, JCTE is the CTE cost function of FIG. 8K, Jv is the cost function for a control action with penalty weight r of FIG.8L, and JA is the cost function for acceleration penalization of FIG. 8M.

[128] Besides the definition of the objective function for the optimization problem, a set of hard constraints for the system is also employed to define for the optimization problem. These constraints include the vessel dynamics, the maximum and minimum velocities of the vessel, and the initial and final state of the system, i.e., the start and docking position.

[129] As also seen in FIG. 8N, this calculation is done for a plurality of possible routes, and a route can be selected from among the plurality of possible routes having the lowest cumulative cost based on the equation. The equation of FIG. 8N may include at least one of the cost functions discussed herein.

[130] FIG. 9 is a computer-implemented method 200 for autonomous navigation of a marine vessel. The method 200 comprises at 210 obtaining, by processing circuitry of a computer system, static proximity data indicating distances between the marine vessel and one or more surrounding static obstacles; at 220, generating, by the processing circuitry, an environment map comprising one or more geometric primitives based on the static proximity data; at 230, generating, by the processing circuitry, a navigable path from an origin position of the marine vessel to a destination position based on the environment map; and while the marine vessel navigates the navigable path: at 240, obtaining, by the processing circuitry, dynamic proximity data indicating distances between the marine vessel and one or more surrounding dynamic obstacles, and at 250, dynamically adjusting, by the processing circuitry, said navigation using a model predictive control, MPC, method, the MPC method applying at least one cost function configured to minimize deviations from the navigable path based on the dynamic proximity data.

[131] FIG. 10 is a schematic diagram of a computer system 1000 for implementing examples disclosed herein. The computer system 1000 is adapted to execute instructions from a computer-readable medium to perform these and / or any of the functions or processing described herein. The computer system 1000 may be connected (e.g., networked) to other machines in a LAN (Local Area Network), LIN (Local Interconnect Network), automotive network communication protocol (e.g., FlexRay), an intranet, an extranet, or the Internet. While only a single device is illustrated, the computer system 1000 may include any collection of devices that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. Accordingly, any reference in the disclosure and / or claims to a computer system, computing system, computer device, computing device, control system, control unit, electronic control unit (ECU), processor device, processing circuitry, etc., includes reference to one or more such devices to individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein. For example, control system may include a single control unit or a plurality of control units connected or otherwise communicatively coupled to each other, such that any performed function may be distributed between the control units as desired. Further, such devices may communicate with each other or other devices by various system architectures, such as directly or via a Controller Area Network (CAN) bus, etc.

[132] The computer system 1000 may comprise at least one computing device or electronic device capable of including firmware, hardware, and / or executing software instructions to implement the functionality described herein. The computer system 1000 may include processing circuitry 1002 (e.g., processing circuitry including one or more processor devices or control units), a memory 1004, and a system bus 1006. The computer system 1000 may include at least one computing device having the processing circuitry 1002. The system bus 1006 provides an interface for system components including, but not limited to, the memory 1004 and the processing circuitry 1002. The processing circuitry 1002 may include any number of hardware components for conducting data or signal processing or for executing computer code stored in memory 1004. The processing circuitry 1002 may, for example, include a general-purpose processor, an application specific processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a circuit containing processing components, a group of distributed processing components, a group of distributed computers configured for processing, or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. The processing circuitry 1002 may further include computer executable code that controls operation of the programmable device.

[133] The system bus 1006 may be any of several types of bus structures that may further interconnect to a memory bus (with or without a memory controller), a peripheral bus, and / or a local bus using any of a variety of bus architectures. The memory 1004 may be one or more devices for storing data and / or computer code for completing or facilitating methods described herein. The memory 1004 may include database components, object code components, script components, or other types of information structure for supporting the various activities herein. Any distributed or local memory device may be utilized with the systems and methods of this description. The memory 1004 may be communicably connected to the processing circuitry 1002 (e.g., via a circuit or any other wired, wireless, or network connection) and may include computer code for executing one or more processes described herein. The memory 1004 may include non-volatile memory 1008 (e.g., read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.), and volatile memory 1010 (e.g., random-access memory (RAM)), or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a computer or other machine with processing circuitry 1002. A basic input / output system (BIOS) 1012 may be stored in the non-volatile memory 1008 and can include the basic routines that help to transfer information between elements within the computer system 1000.

[134] The computer system 1000 may further include or be coupled to a non-transitory computer-readable storage medium such as the storage device 1014, which may comprise, for example, an internal or external hard disk drive (HDD) (e.g., enhanced integrated drive electronics (EIDE) or serial advanced technology attachment (SATA)), HDD (e.g., EIDE or SATA) for storage, flash memory, or the like. The storage device 1014 and other drives associated with computer-readable media and computer-usable media may provide nonvolatile storage of data, data structures, computer-executable instructions, and the like.

[135] Computer-code which is hard or soft coded may be provided in the form of one or more modules. The module(s) can be implemented as software and / or hard-coded in circuitry to implement the functionality described herein in whole or in part. The modules may be stored in the storage device 1014 and / or in the volatile memory 1010, which may include an operating system 1016 and / or one or more program modules 1018. All or a portion of the examples disclosed herein may be implemented as a computer program 1020 stored on a transitory or non-transitory computer-usable or computer-readable storage medium (e.g., single medium or multiple media), such as the storage device 1014, which includes complex programming instructions (e.g., complex computer-readable program code) to cause the processing circuitry 1002 to carry out actions described herein. Thus, the computer-readable program code of the computer program 1020 can comprise software instructions for implementing the functionality of the examples described herein when executed by the processing circuitry 1002. In some examples, the storage device 1014 may be a computer program product (e.g., readable storage medium) storing the computer program 1020 thereon, where at least a portion of a computer program 1020 may be loadable (e.g., into a processor) for implementing the functionality of the examples described herein when executed by the processing circuitry 1002. The processing circuitry 1002 may serve as a controller or control system for the computer system 1000 that is to implement the functionality described herein.

[136] The computer system 1000 may include an input device interface 1022 configured to receive input and selections to be communicated to the computer system 1000 when executing instructions, such as from a keyboard, mouse, touch-sensitive surface, etc. Such input devices may be connected to the processing circuitry 1002 through the input device interface 1022 coupled to the system bus 1006 but can be connected through other interfaces, such as a parallel port, an Institute of Electrical and Electronic Engineers (IEEE) 1394 serial port, a Universal Serial Bus (USB) port, an IR interface, and the like. The computer system 1000 may include an output device interface 1024 configured to forward output, such as to a display, a video display unit (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 1000 may include a communications interface 1026 suitable for communicating with a network as appropriate or desired.

[137] The operational actions described in any of the exemplary aspects herein are described to provide examples and discussion. The actions may be performed by hardware components, may be embodied in machine-executable instructions to cause a processor to perform the actions, or may be performed by a combination of hardware and software.Although a specific order of method actions may be shown or described, the order of the actions may differ. In addition, two or more actions may be performed concurrently or with partial concurrence.

[138] Example 1: A computer system for autonomous navigation of a marine vessel, the computer system comprising processing circuitry configured to: obtain static proximity data indicating distances between the marine vessel and one or more surrounding static obstacles; generate an environment map comprising one or more geometric primitives based on the static proximity data; generate a navigable path from an origin position of the marine vessel to a destination position based on the environment map; and while the marine vessel navigates the navigable path: obtain dynamic proximity data indicating distances between the marine vessel and one or more surrounding dynamic obstacles, and dynamically adjust the navigation using a model predictive control (MPC) method, the MPC method applying at least one cost function configured to minimize deviations from the navigable path based on the dynamic proximity data.

[139] Example 2: The computer system of Example 1, wherein the at least one cost function applied by the MPC method includes a dynamic weight factor for at least one of said deviations that are to be minimized.

[140] Example 3: The computer system of Example 2, wherein the MPC method comprises defining one or more geometric limits in the vicinity of the marine vessel, each geometric limit having a distance from a point located along a longitudinal line of the marine vessel, the dynamic weight factor being increased in response to a dynamic obstacle being located within the distance.

[141] Example 4: The computer system of Example 3, wherein the MPC method further comprises performing continuous route estimations at each time step during the navigation to obtain a plurality of possible routes from a current position of the marine vessel to the destination position, the current position being between the origin position and the destination position, and selecting a route from among the plurality of possible routes having the lowest cumulative cost based on predicted increments of the dynamic weight factor caused by dynamic obstacles predicted to be located within the distance upon the marine vessel selecting that route, the prediction being based on velocity data of the dynamic obstacles.

[142] Example 5: The computer system of Examples 3 or 4, wherein the MPC method further comprises adapting a number of geometric limits based on navigational requirements and / or environmental data.

[143] Example 6: The computer system of any of Examples 2-5, wherein the processing circuitry is further configured to obtain velocity data including the speed and direction of the marine vessel, and the dynamic weight factor is increased for higher speeds of the marine vessel compared to lower speeds, as indicated by the speed data.

[144] Example 7: The computer system of any of Examples 2-6, wherein the processing circuitry is further configured to obtain weather data, and the dynamic weight factor is increased in more adverse weather conditions compared to less adverse weather conditions, as indicated by the weather data.

[145] Example 8: The computer system of any of Examples 2-7, wherein the processing circuitry is further configured to obtain localization data, and the dynamic weight factor is increased in narrower navigable areas compared to wider navigable areas, as indicated by the localization data.

[146] Example 9: The computer system of any of Examples 2-8, wherein the processing circuitry is further configured to classify at least one of the one or more surrounding dynamic obstacles, and the dynamic weight factor is adjusted depending on the classification.

[147] Example 10: The computer system of any of Examples 2-9, wherein the processing circuitry is further configured to adjust the dynamic weight factor based on a navigational mode of the marine vessel.

[148] Example 11 : The computer system of Example 10, wherein the navigational mode is a driving mode, and the dynamic weight factor is adjusted to prioritize forward movement of the marine vessel, comprising a relative increase of the dynamic weight factor for deviations from the reference path and for proximity to dynamic obstacles.

[149] Example 12: The computer system of Example 10, wherein the navigational mode is a dynamic obstacle avoidance mode, and the dynamic weight factor is adjusted to prioritize the avoidance of approaching dynamic obstacles, comprising setting the cost for deviating from the reference path to zero and allowing the MPC method to select an arbitrary next set point for navigation.

[150] Example 13: The computer system of Example 10, wherein the navigational mode is a docking mode, and the dynamic weight factor is reduced for path deviation to zero, and increased for deviation from the destination position being a docking position.

[151] Example 14: The computer system of any preceding example, wherein the at least one cost function is based on one or more of a cross-track-error, forward drive prioritization, object avoidance prioritization, reference velocity, terminal position, acceleration cost, nautical law, or nautical chart.

[152] Example 15: The computer system of any preceding example, wherein the processing circuitry is configured to generate the navigable path using an A* or RRT-algorithm.

[153] Example 16: The computer system of any preceding example, wherein the processing circuitry is further configured to generate an updated environment map based on the environment map and additional geometric primitives based on the dynamic proximity data of the dynamic obstacles wherein the dynamic adjustment of the navigation is based on the updated environment map.

[154] Example 17: The computer system of any preceding example, wherein the processing circuitry is configured to generate the environment map by aggregating adjacent points in a point-based representation of the obtained proximity data based on predefined criteria, forming a plurality of polygons based on the aggregation, each polygon comprising a spatial grouping of the static obstacles; and storing said plurality of polygons in the environment map.

[155] Example 18: The computer system of Example 17, wherein the predefined criteria include one or more of a proximity threshold, angular continuity, shape regularity, dynamic adaptivity, semantic grouping, and extreme-point size filter.

[156] Example 19: The computer system of any preceding example, wherein the distance data is obtained from a sensing device mounted to the marine vessel and / or a nautical chart.

[157] Example 20: The computer system of any preceding example, wherein the dynamic adjustment of the navigation comprises controlling the marine vessel to alter one or more of a surge, sway, and yaw rate.

[158] Example 21 : A marine vessel comprising the computer system according to any of Examples 1-20.

[159] Example 22: A computer-implemented method for autonomous navigation of a marine vessel, the method comprising: obtaining, by processing circuitry of a computer system, static proximity data indicating distances between the marine vessel and one or more surrounding static obstacles; generating, by the processing circuitry, an environment map comprising one or more geometric primitives based on the static proximity data; generating, by the processing circuitry, a navigable path from an origin position of the marine vessel to a destination position based on the environment map; and while the marine vessel navigates the navigable path: obtaining, by the processing circuitry, dynamic proximity data indicating distances between the marine vessel and one or more surrounding dynamic obstacles, and dynamically adjusting, by the processing circuitry, the navigation using a model predictive control method, the MPC method applying at least one cost function configured to minimize deviations from the navigable path based on the dynamic proximity data.

[160] Example 23 : A computer program product comprising program code for performing, when executed by processing circuitry, the method of Example 22.

[161] Example 24: A non-transitory computer-readable storage medium comprising instructions, which when executed by processing circuitry, cause the processing circuitry to perform the method of Example 22.

[162] The terminology used herein is for the purpose of describing particular aspects only and is not intended to be limiting of the disclosure. As used herein, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. As used herein, the term "and / or" includes any and all combinations of one or more of the associated listed items. It will be further understood that the terms "comprises," "comprising," "includes," and / or "including" when used herein specify the presence of stated features, integers, actions, steps, operations, elements, and / or components, but do not preclude the presence or addition of one or more other features, integers, actions, steps, operations, elements, components, and / or groups thereof.

[163] It will be understood that, although the terms first, second, etc., may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element without departing from the scope of the present disclosure.

[164] Relative terms such as "below" or "above" or "upper" or "lower" or "horizontal" or "vertical" may be used herein to describe a relationship of one element to another element as illustrated in the Figures. It will be understood that these terms and those discussed above are intended to encompass different orientations of the device in addition to the orientation depicted in the Figures. It will be understood that when an element is referred to as being "connected" or "coupled" to another element, it can be directly connected or coupled to the other element, or intervening elements may be present. In contrast, when an element is referred to as being "directly connected" or "directly coupled" to another element, there are no intervening elements present.

[165] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure belongs. It will be further understood that terms used herein should be interpreted as having a meaning consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.

[166] It is to be understood that the present disclosure is not limited to the aspects described above and illustrated in the drawings; rather, the skilled person will recognize that many changes and modifications may be made within the scope of the present disclosure and appended claims. In the drawings and specification, there have been disclosed aspects for purposes of illustration only and not for purposes of limitation, the scope of the disclosure being set forth in the following claims.

Claims

What is claimed is:

1. A computer system (100; 1000) for autonomous navigation of a marine vessel (10), the computer system (100; 1000) comprising processing circuitry (102; 1002) configured to:obtain static proximity data indicating distances between the marine vessel (10) and one or more surrounding static obstacles (22);generate an environment map (20) comprising one or more geometric primitives (24) based on the static proximity data;generate a navigable path (30) from an origin position (32) of the marine vessel (10) to a destination position (34) based on the environment map (20); andwhile the marine vessel (10) navigates the navigable path (30):obtain dynamic proximity data indicating distances between the marine vessel (10) and one or more surrounding dynamic obstacles (42), and- dynamically adjust said navigation using a model predictive control, MPC, method, the MPC method applying at least one cost function configured to minimize deviations from the navigable path (30) based on the dynamic proximity data.

2. The computer system (100; 1000) of claim 1, wherein the at least one cost function applied by the MPC method includes a dynamic weight factor for at least one of said deviations that are to be minimized.

3. The computer system (100; 1000) of claim 2, wherein the MPC method comprises defining one or more geometric limits ( Cn ) in the vicinity of the marine vessel (10), each geometric limit ( Cn ) having a distance (R) from a point (C) located along a longitudinal line (L) of the marine vessel (10), wherein the dynamic weight factor is increased in response to a dynamic obstacle (42) being located within the distance (R).

4. The computer system (100; 1000) of claim 3, wherein the MPC method further comprises:performing continuous route estimations at each time step during said navigation to obtain a plurality of possible routes from a current position (33) of the marine vessel (10) to the destination position (34), the current position (33) being in between the origin position (32) and the destination position (34), andselecting a route from among the plurality of possible routes having the lowest cumulative cost based on predicted increments of the dynamic weight factor caused by dynamic obstacles (42) predicted to be located within the distance ( / ?) upon the marine vessel (10) selecting that route, said prediction being based on velocity data of said dynamic obstacles (42).

5. The computer system (100; 1000) of any of claims 2-4, wherein the processing circuitry (102; 1002) is further configured to obtain velocity data including speed and direction of the marine vessel (10), and wherein the dynamic weight factor is increased for higher speeds of the marine vessel (10) compared to lower speeds, as indicated by the speed data.

6. The computer system (100; 1000) of any of claims 2-5, wherein the processing circuitry (102; 1002) is further configured to obtain weather data, and wherein the dynamic weight factor is increased in more adverse weather conditions compared to less adverse weather conditions, as indicated by the weather data.

7. The computer system (100; 1000) of any of claims 2-6, wherein the processing circuitry (102; 1002) is further configured to obtain localization data, and wherein the dynamic weight factor is increased in narrower navigable areas compared to wider navigable areas, as indicated by the localization data.

8. The computer system (100; 1000) of any of claims 2-7, wherein the processing circuitry (102; 1002) is further configured to classify at least one of the one or more surrounding dynamic obstacles (42), and wherein the dynamic weight factor is adjusted depending on said classification.9 The computer system (100; 1000) of any of claims 2-8, wherein the processing circuitry (102; 1002) is further configured to adjust the dynamic weight factor based on a navigational mode of the marine vessel (10).

10. The computer system (100; 1000) of claim 9, wherein the navigational mode is one of:a driving mode, wherein the dynamic weight factor is adjusted to prioritize forward movement of the marine vessel (10), comprising a relative increase of the dynamic weight factor for deviations from the reference path and for proximity to dynamic obstacles (42);a dynamic obstacle avoidance mode, wherein the dynamic weight factor is adjusted to prioritize the avoidance of approaching dynamic obstacles (42), comprising setting the cost for deviating from the reference path to zero and allowing the MPC method to select an arbitrary next set point for navigation, ora docking mode, wherein the dynamic weight factor is reduced for path deviation to zero, and increased for deviation from the destination position (34) being a docking position.

11. The computer system (100; 1000) of any preceding claim, wherein the processing circuitry (102; 1002) is configured to generate the environment map (20) by:aggregating adjacent points in a point-based representation of the obtained proximity data based on a predefined criteria, the predefined criteria being one or more of a proximity threshold, angular continuity, shape regularity, dynamic adaptivity, semantic grouping, and extreme-point size filter;forming a plurality of polygons based on the aggregation, each polygon comprising a spatial grouping of the static obstacles (22); andstoring said plurality of polygons in the environment map (20).

12. A marine vessel (10) comprising the computer system (100; 1000) according to any of claims 1-11.

13. A computer-implemented method (200) for autonomous navigation of a marine vessel (10), the method (200) comprising:obtaining (210), by processing circuitry (102; 1002) of a computer system (100;1000), static proximity data indicating distances between the marine vessel (10) and one or more surrounding static obstacles (22);generating (220), by the processing circuitry (102; 1002), an environment map (20) comprising one or more geometric primitives (24) based on the static proximity data;generating (230), by the processing circuitry (102; 1002), a navigable path (30) from an origin position (32) of the marine vessel (10) to a destination position (34) based on the environment map (20); andwhile the marine vessel (10) navigates the navigable path (30):- obtaining (240), by the processing circuitry (102; 1002), dynamic proximity data indicating distances between the marine vessel (10) and one or more surrounding dynamic obstacles (42), and- dynamically adjusting (250), by the processing circuitry (102; 1002), said navigation using a model predictive control, MPC, method, the MPC method applying at least one cost function configured to minimize deviations from the navigable path (42) based on the dynamic proximity data.

14. A computer program product comprising program code for performing, when executed by processing circuitry (102; 1002), the method (200) of claim 13.

15. A non-transitory computer-readable storage medium comprising instructions, which when executed by processing circuitry (102; 1002), cause the processing circuitry (102; 1002) to perform the method (200) of claim 13.