Systems and associated methods for route generation and modification

A touch screen may be utilized by a marine electronic device to easily enter a route in relation to a chart. The marine electronic device may automatically determine and join geographic points associated with the chart to generate a route based on a touch pattern. The marine electronic device may be configured to complete the route to form a route loop in instances in which the start and end of the touch pattern are within a predetermined distance. The completion of the route may be accomplished by connecting the end point to the start point or by “snapping” the end point to the start point, e.g. shifting the end point to the start point. Additionally or alternatively, a user may use pre-determined route snippets to quickly and easily alter a route.

FIELD OF THE INVENTION

Embodiments of the present invention relate generally to navigation systems and, more particularly, to navigation systems, assemblies, and associated methods for generating and/or modifying a route.

BACKGROUND OF THE INVENTION

Navigational systems, such as marine navigational systems, may provide a display of a navigational chart or map. Routes are generally manually entered into the navigation system, for display in association with the chart, by a user. The route may be followed by manual maneuvering of the vehicle or by an autopilot system. In some instances, the navigational systems may also provide a location of the vehicle.

BRIEF SUMMARY OF THE INVENTION

Typically entering a route into a navigation system, particularly marine navigations systems may include multiple steps. For example, entering a route may include specifying each point on the route, joining each of the points, and then activating the route.

In some embodiments of the present invention, one or more touch screens of a marine electronic device may be utilized to easily enter a route in relation to a chart. The marine electronic device may automatically determine and join points to generate a route based on a touch pattern from the touch screen. The marine electronic device may be configured to complete the route to form a route loop in instances in which the start and end of the touch pattern are within a predetermined distance. The completion of the route may be accomplished by connecting the end point to the start point or by “snapping” the end point to the start point, e.g. shifting the end point to the position of the start point. The marine electronic device may also verify the route safety based on speed of the vehicle, depth, obstacles, land, or the like; and modify the route by shifting the locations of one or more points of the route to generate a safe route. Additionally, the marine electronic device may be configured to compare portions of the route to known route patterns and modify the portions of the route based on the known patterns, such as search and rescue patterns, fishing patterns, survey patterns, or the like.

In some navigational systems, once a route is entered and activated, changes to the route may be compacted. For example, changing the route may include deactivating the active route, entering each point of a new route, and then activating the new route. In some instances an autopilot may also be deactivated while changing the route.

In some example embodiments, a user may select a route snippet, e.g. a non-geographically referenced navigational maneuver, from a snippet library. Route snippets may be modified to fit a navigational situation, such as by rotation, scale change, or the like. Once the route snippet is appropriately shaped, the route snippet may be attached to the route and activated, with at least a corresponding portion of the route that is replaced being deactivated. The route snippets may allow for an efficient method to change the route to perform maneuvers, such as overtaking a vehicle, a Williamson maneuver, or the like. In an instance in which the route is utilized for an autopilot system, the route may be modified by the route snippet without disengaging the autopilot. Similar to the route generation discussed above, the marine electronic device may also verify the safety of the route snippet.

An example embodiment of the present invention includes a marine electronic device including a user interface comprising a touch screen, a processor, and a memory having computer program code stored thereon. The memory and the computer program code are configured to, with the processor, cause the marine electronic device to cause a chart to be displayed on the touch screen, receive, via the touch screen, user input defining a touch pattern directed to the chart, which defines a starting point and an ending point, and determine one or more geographic locations on the chart that each correspond to one or more points along the touch pattern including a starting location that corresponds to the starting point and an ending location that corresponds to the ending point. The memory and the computer program code are further configured to determine a distance between the starting location and the ending location and, in an instance in which the distance between the starting location and the ending location is within a completion threshold, generate a continuous route comprising the one or more determined geographic locations on the chart based on the touch pattern.

In an example embodiment of the marine electronic device, the starting location and ending location of the route are connected in response to the start location and ending location satisfying the predetermined completion threshold.

In some example embodiments of the marine electronic device, the ending location shifts to match the starting location in response to the starting location and ending location satisfying the predetermined completion threshold.

In an example embodiment of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to receive, via the user interface, an indication to activate the route and send, to an autopilot for a maneuvering system of a watercraft including the marine electronic device, instructions to cause the autopilot to operate the maneuvering system such that the watercraft travels along the route.

In some example embodiments of the marine electronic device, the memory and the computer program code are further configured to cause the marine electronic device to generate the route between a plurality of waypoints. Each waypoint corresponding to a determined geographic location that corresponds to a point along the touch pattern.

In an example embodiment of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to compare the route to one or more predetermined navigational thresholds, which are based on a speed of a vessel and turn radius associated with the speed of the vessel, and modify at least a portion of the route to generate a safe route which satisfies the predetermined navigational thresholds such that the route will not exceed a minimum safe turn radius. In some example embodiments of the marine electronic device, the safe route includes a plurality of waypoints and course headings and the distance between two consecutive waypoints of the plurality of waypoints is based on predetermined navigation thresholds.

In an example embodiment of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to compare the route to one or more predetermined navigational thresholds, which are based at least on one of obstacles, depth, and land, and modify at least a portion of the route to generate a safe route which satisfies the predetermined navigational thresholds such that a vessel avoids marine hazards along the route.

In some example embodiments of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to compare at least a portion of the route to a plurality of stored route patterns and update the portion of the route to reflect at least one of the plurality of stored route patterns in an instance in which the portion of the route matches the one of the plurality of stored route patterns within a route pattern threshold.

In an example embodiment of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the electronic navigation device to receive a repeat route indication and cause the route to repeat for at least a plurality of cycles.

In some example embodiments of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the electronic navigation device to receive an indication of a change to the route and update the route based on the indication of the change to the route. In an example embodiment of the marine electronic device, the indication of a change to the route includes receiving an indication of a selected route snippet, receiving an indication of a selected portion on the route, causing the route snippet to be displayed at the selected portion, and causing the route snippet to be activated and the selected portion to be deactivated. In some example embodiments of the marine electronic device, the route snippet is activated in response to an indication of route snippet activation from the user interface.

In another example embodiment a computer program product is provided including a non-transitory computer readable medium including computer program code configured to, with a processor, cause a marine electronic device to cause a chart to be displayed on a touch screen of a user interface, receive, via the touch screen, user input defining a touch pattern directed to the chart, the touch pattern defining a starting point and an ending point, and determine one or more geographic locations on the chart that each correspond to one or more points along the touch pattern including a starting location that corresponds to the starting point and an ending location that corresponds to the ending point. The computer program code is further configured to determine a distance between the starting location and the ending location and, in an instance in which the distance between the starting location and the ending location is within a completion threshold, generate a continuous route comprising the one or more determined geographic locations on the chart based on the touch pattern.

In a further example embodiment, a method is provided including causing a chart to be displayed on a touch screen of a user interface, receiving, via the touch screen, user input defining a touch pattern directed to the chart, the touch pattern defining a starting point and an ending point, and determining one or more geographic locations on the chart that each correspond to one or more points along the touch pattern including a starting location that corresponds to the starting point and an ending location that corresponds to the ending point. The method also includes determining a distance between the starting location and the ending location and, in an instance in which the distance between the starting location and the ending location is within a completion threshold, generating a continuous route comprising the one or more determined geographic locations on the chart based on the touch pattern.

In yet another example embodiment, a marine electronic device is provided including, a user interface comprising a screen, a processor, and a memory having computer program code stored thereon. The memory and the computer program code are configured to, with the processor, cause the marine electronic device to display a route on the screen, receive an indication of a desire to modify the route, display a plurality of route snippets indicators associated with a plurality of route snippets, each route snippet being a non-geographically referenced navigational maneuver, and receive, via the user interface, user input indicating selection of a route snippet from the plurality of route snippets. The memory and the computer program code are further configured to, with the processor, cause the marine electronic device to receive, via the user interface, user input indicating a selected position of the selected route snippet in connection with a point along the route, display the selected route snippet such that a beginning of the route snippet is connected to the point along the route, and cause modification of the route such that the selected route snippet is activated and a portion of the route following the point is deactivated.

In an example embodiment of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to receive user input defining a new route snippet via the user interface, the new route snippet including a plurality of waypoints and relative headings, and cause the new route snippet to be stored in the memory with the plurality of route snippets. In some example embodiments of the marine electronic device, the screen includes a touch screen and the indication of a new route snippet from the user interface includes a touch pattern.

In an example embodiment of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to receive an indication of change in scale associated with the route snippet and cause the scale of the route snippet to change relative to the route based on the indication of change in scale.

In some example embodiments of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to receive an indication of rotation in association with the route snippet and cause the route snippet to rotate relative to the route based on the indication of rotation.

In an example embodiment of the marine electronic device, the deactivated portion of the route is displayed in visual contrast to the active portion of the route and the active route snippet.

In some example embodiments of the marine electronic device, the route snippet includes a plurality of waypoints and the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to receive an indication of change of position of a waypoint of the plurality of waypoints and update the route snippet based on the indication of change in position of the waypoint.

In an example embodiment of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to cause the route to be stored in the memory separate from the route snippet.

In some example embodiments of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to send, to an autopilot for a maneuvering system of a watercraft including the marine electronic device, instructions to cause the autopilot to operate the maneuvering system such that the watercraft travels along the modified route that includes the activated route snippet.

In an example embodiment of the marine electronic device, the route includes a marine navigational route and the route snippet includes a predetermined navigational maneuver.

In some example embodiments of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to compare the route snippet at the selected position to one or more predetermined navigational thresholds, which are based on at least one of a speed of a vehicle and navigation features, and cause notification of an unsafe route to be displayed on the user interface, which indicates at least a portion of the route snippet that fails to satisfy the predetermined navigational threshold.

In an example embodiment of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to compare the route snippet at the selected position to one or more predetermined navigational thresholds and modify the route snippet to generate a safe route snippet based on the route snippet and the predetermined navigational thresholds.

In some example embodiments of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to receive an indication of the route snippet being within a predetermined distance of the route and cause an indication of a snap position indicative of a current point on the route such that a currently selected portion of the route is indicated on the user interface in relation to a potential position for the route snippet. In an example embodiment of the marine electronic device, the indication of a snap position includes a snippet start position and a snippet end position. In some example embodiments of the marine electronic device, the screen includes a touch screen and the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to display the route snippet at the selected position of the route by automatically displaying the route snippet at the snap position in response to receiving user input indicating a release of the route snippet from the touch screen.

In an example embodiment of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to display a vehicle location associated with the marine electronic device along the route.

In some example embodiments of the marine electronic device, the memory and the computer program code are further configured to, with the processor, cause the marine electronic device to display at least one of vehicles or navigational features within a currently displayed area associated with the route.

In an example embodiment of the marine electronic device, activation of the selected route snippet is in response to receiving, via the user interface, user input indicating a desire to activate the selected route snippet.

In still a further example embodiment, a computer program product is provided including a non-transitory computer readable medium including computer program code configured to, with a processor, cause a marine electronic device to display a route on a screen associated with a user interface, receive an indication of a desire to modify the route, display a plurality of route snippets, each route snippets being a non-geographically referenced navigational maneuver, and receive, via the user interface, user input indicating selection of a route snippet from the plurality of route snippets. The computer program code is also configured to, with a processor, cause a marine electronic device to receive, via the user interface, user input indicating a desired position of the selected route snippet in connection with a point along the route, display the selected route snippet such that a beginning of the route snippet is connected to the point along the route, and cause modification of the route such that the selected route snippet is activated and a portion of the route following the point is deactivated.

In yet another example embodiment, a method is provided including displaying a route on a screen associated with a user interface, receiving an indication of a desire to modify the route, displaying a plurality of route snippets, each route snippets being a non-geographically referenced navigational maneuver, and receiving, via the user interface, user input indicating selection of a route snippet from the plurality of route snippets. The method also includes receiving, via the user interface, user input indicating a desired position of the selected route snippet in connection with a point along the route, displaying the selected route snippet such that a beginning of the route snippet is connected to the point along the route, and causing modification of the route such that the selected route snippet is activated and a portion of the route following the point is deactivated.

Example marine electronic devices, computer program products, systems, and methods of the present invention may also include additional embodiments, such as described above with respect to the first and second example marine electronic devices.

DETAILED DESCRIPTION

Electronic navigational charts may be used to indicate topology, depth, boarders, obstacles, or the like for land, air, or marine navigation.FIGS. 1A and 1Billustrate example marine navigation charts200. In some example embodiments, a marine electronic device, such as described below in reference toFIG. 16, may display the chart200for location and/or navigational purposes, for example maneuvering a vehicle or watercraft, such as a boat or ship. In an example embodiment, the marine electronic device may alternatively or additionally, display a chart segment202. The chart segment202may include a portion of the chart200. The chart segment202may be rendered or displayed in a larger scale than the chart200and may also include additional details. For example, the chart200may have a scale of 1 NM/cm and display a depth line of 25 ft. In contrast, the chart segment202may have a scale of 0.3 NM/cm and include depth contour lines with a 1 ft depth change, 5 ft depth change, or the like.

In an example embodiment, the chart200and/or chart segment202may be displayed on a touch screen201of a user interface associated with marine electronic device. The touch screen201may sense a user input defining a touch pattern204in reference to the chart200or chart segment202. The touch pattern204may be generated based on movement of a touch member206across the touch screen201. The touch member201may include a user finger, a stylus, or the like.

FIGS. 2 and 4depict the touch patterns204generated by the user input of the touch member206depicted inFIGS. 1A and 1B, respectively. The touch pattern204adepicted inFIG. 2corresponds to the touch pattern204inFIG. 1A, which includes a hand like shape. The touch pattern204amoves vertically from a starting point208aand then moves left and clockwise around a shallow point of the chart segment202. The touch pattern204acontinues by extending upward and right zigzagging in a tear drop like pattern to produce four “fingers.” Next, the touch pattern204atravels downward following a jagged shallow coastal region and terminates at an ending point210aabove and to the right of the starting point208a. The touch pattern204depicted inFIG. 4corresponds to the touch pattern204bofFIG. 1B, which includes a figure eight shape moving downward from a starting point208bturning left and upward and then right and upward. The touch pattern204bthen moves left and downward crossing itself at the shallow point of the chart segment202. The touch pattern204bterminates at an ending point210babove and to the left of the starting point208b.

FIG. 3depicts an example route211based on the touch pattern204adepicted inFIG. 2. The marine electronic device may determine one or more geographic locations, such as global coordinates or relative coordinates, on the chart200corresponding to one or more points along the touch pattern204a. The geographical locations may be determined based on a correlation between pixels of the touch screen associated with the touch pattern204aand chart locations. For example, the marine electronic device may correlate pixels, or pixel groups, such as 4 pixels, 8 pixels, 16 pixels, or the like, with chart locations on the displayed chart200or chart segment202. The marine electronic device may then correlate the touch pattern204to the chart locations by selection of the pixels associated with the touch pattern204. In a similar example, the marine electronic device may determine the position of a pixel on the touch pattern with respect to the chart, and then determine the geographical location on the chart associated with that position.

In some instances, the touch pattern204amay be associated with a plurality of pixels at each point along the touch pattern204a, the marine electronic device may select a center pixel or pixel group to represent each of the points along the touch pattern204a. Each of the chart locations may be associated with a geographic location including a global coordinate position and/or a relative coordinate position.

The geographic locations may include a starting location212corresponding to the starting point208aand an ending location214corresponding to the ending point214. The route211may also include additional geographic locations, e.g. waypoints216, between the starting location212and the ending location214. For example, the waypoints216may be associated with turns or changes of a course heading along the route211. The route may include route segments218between each waypoint216, the starting location212, and/or the ending location214. Each route segment may be associated with a course heading for navigation between each waypoint216, the starting location212, and/or the ending location214. The route211depicted inFIG. 5may be generated in substantially the same manner as described above in reference toFIG. 7, based on the touch pattern204bdepicted inFIG. 4.

In an example embodiment, the marine electronic device may determine distance between the starting location212and the ending location214. The distance may be the actual distance between the starting location212and the ending location214, such as nautical miles, feet, meters, or the like. Additionally or alternatively, the distance may be a relative distance, such as the distance between the starting point208and ending point210associated with the starting location212and ending location214, respectively, such as centimeters, inches, or the like. As used herein, in some embodiments, the distance may be a direct distance between the starting location212and the ending location214, as opposed to an indirect distance (e.g., the distance of the route if there are turns, etc.).

The marine electronic device may compare the distance to a predetermined completion threshold. The predetermined completion threshold may be 0.3 NM, 1 NM, 100 m, 1500 ft, or the like, in an instance in which the distance is an actual distance; or 0.5 cm, 1 cm, 1 in, or the like in an instance in which the distance is a relative distance.

In an example embodiment, the marine electronic device may complete the route, generating a continuous route in an instance in which the distance satisfies, e.g. is less than or within, the completion threshold. As shown in the example embodiment depicted inFIG. 3, the route211may completed by shifting or “snapping” the ending point210aand corresponding ending location214to match the starting point208aand corresponding starting location214. A route segment215may be generated connecting the waypoint216before the ending location214to the starting location212. In such an embodiment, the ending location214is not a part of the route. As shown in the example embodiment depicted inFIG. 5, the route211may be completed by adding a route segment220connecting the ending location214to the starting location212.

The marine electronic device may receive an indication to activate the route211from the user interface. The indication to activate the route211may include selection of an activate icon, selection of the route211, actuating a button, such as a start or engage autopilot button, or the like. The vehicle, such as a watercraft, may be piloted manually along the route211by a user. For example, the user may use the route information such as course heading relative to waypoint216to steer the vehicle along the route211.

Additionally or alternatively, the vehicle may automatically travel along the route211, such as navigation by an autopilot. In response to the indication to activate the route211, the marine electronic device may send instructions to the autopilot. The instructions to the autopilot may be configured to cause the autopilot to operate a maneuvering system to cause the vehicle to travel along the route211. The maneuvering system may include one or more motors or engines, one or more rudders, or the like. The instructions may include an operating speed the one or more motors or engines and/or rudder or engine angles for steering the watercraft.

In an example embodiment the marine electronic device may receive a repeat route indication. The repeat route indication may include selection of an icon or button, or completion of the route211based on satisfying the predetermined completion threshold, as discussed above. In response to the repeat route indication, the marine electronic device may cause the route211to be repeated two or more times, or cycles. In an instance in which an autopilot is utilized the marine electronic device may send instructions to the autopilot to cause the autopilot to operate the maneuvering system to travel along the route211a plurality of times or cycles.

In an example embodiment, the marine electronic device may receive an indication of a change to the route211. For example, the indication of change may include selecting and moving a route segment218or waypoint216, such as by drag and drop, or by selecting and activating a route snippet, as discussed below inFIGS. 8-14. In response to the indication of change, the marine electronic device may update route211based on the indication of the change to the route211, such as moving one or more waypoints216or adding additional waypoints216and/or route segments to correspond with the indication of change.

FIGS. 6 and 7illustrate example modification to a route211based on navigational thresholds and route patterns. The route211may be proximate to one or more navigational features220, such as depth, land, obstacles, or the like. For example, the navigational features may include a shallow depth which the vehicle may have an increased likelihood of striking ground, such as the shallow areas discussed above in reference toFIGS. 2 and 4. Example obstacles may include buoys, sand bars, fish farms, or the like, which may or may not be visible above the surface of the water. The marine electronic device may compare the route211or portions of the route211to a navigational threshold, such as a minimum safe distance222from the navigational feature220. The minimum safe distance222may be 1 m, 3 m, 10 m, or the like for smaller vehicles or 30 m, 50 m, or 500 m, for larger vehicles.

The marine electronic device may modify the route211or portions of the route211to generate a safe route213which satisfies minimum distance222. As depicted inFIG. 7, the way points216and associated route segments218of the safe route213have been modified to locations farther away from the navigational features220to satisfy the minimum distance222.

In some example embodiments, the marine electronic device may compare the route211or a portion221of the route211to one or more route patterns. The route patterns may include search and rescue patterns, such as a creeping line ahead pattern or a Williamson maneuver, fishing patterns, survey patterns, military maneuvers, standardized navigation maneuvers, or the like. Each of the route patterns may include two or more non-geographically referenced points, including relative distances between the points. The marine electronic device may determine a probability score for the route211or portion221of the route211based on the route patterns. The probability score may be indicative of a percent match between the route221or portion221of the route211and the route pattern and may be determined based on machine learning and/or pattern recognition. The marine electronic device may compare the probability score to a match threshold, such as 75 percent, 80 percent, or the like. In an instance in which the probability score satisfies, e.g. is greater than, the match threshold, the marine electronic device may update the route211or portion221of the route211based on the route pattern. For example, the marine electronic device may shift waypoints216and route segments218in the portion221of the route to match the relative shape of the route pattern, such as depicted in portion223. In the example depicted inFIG. 6the marine electronic device may compare the portion221of the route211to one or more route patterns. The portion221includes the “finger” portions of the route211. The marine electronic device may determine a probability score for the portion221of the route211in reference to a creeping line ahead pattern, such as 83 percent. The marine electronic device may update one or more of the waypoints216and route segments218to match the relative shape of the creeping line ahead route pattern. For example, the marine electronic device may cause the waypoint of the portion223of the safe route213to align, forming an equidistance set of back and forth route segments218. In some embodiments, curved route segments could be utilized between waypoints to create a smooth route.

Additionally or alternatively, the navigational threshold discussed above may be based on a speed of the vehicle and/or a turn radius associated with the speed of the vehicle. The navigational threshold may include a maximum change in a course heading for a waypoint based on the speed of the vehicle, for example, due to the length and/or displacement of larger vessels, such as cargo ships, as the speed of the vehicle increases a larger change in course heading may be achievable by the vehicle. Similarly, the navigational threshold may include a comparison of a plurality of waypoints216to a minimum radius224based on the speed of the vehicle, for example, the minimum radius224may decrease in size as the vehicle increases in speed and is capable of tighter maneuvers. Conversely, smaller vessels, such as small fishing boats, speed boats, or the like, may have decreased maneuverability as the speed of the vehicle increases. As such, the minimum radius224may increase in size as the speed of the vehicle increases. The marine electronic device may modify the route221or portion225of the route221to generate a safe route213which satisfies the navigational thresholds. As shown in the example depicted inFIGS. 6 and 7, the waypoints216and route segments218may be shifted to satisfy the navigational minimum radius224.

The route211and/or safe route213may be a best fit of the touch pattern204and/or satisfaction of the navigational thresholds. A best fit may include the closest the waypoints216and route segments218may be generated to the touch pattern204based on a maneuvering threshold. Maneuvering thresholds may include minimum course change per unit distance, maximum number of waypoints per course change per unit distance, or the like. For example, the touch pattern204may not be perfectly straight such that the marine electronic device may smooth the course based on the minimum course change per unit distance. For example, several minor course changes such as 1 degree, 5 degrees, or the like, which shift back and forth in direction of divergence from a course, may be smoothed between larger course change waypoints. In some instances, the touch pattern204may include curves, turns, or similar maneuvers. In such a circumstance, the marine electronic device may generate waypoints216along the maneuver based on the maximum number or way points per course change per unit distance. For example, a curve could be defined by a nearly continuous number of waypoints along the curve. However, the marine electronic device may determine a number of waypoints216to accomplish the general shape of the route and minimize changes to the course. In an illustrative example, the maximum number of waypoints per course change per unit distance may be 5 waypoints per 90 degree course change per 0.3 NM. The maneuvering thresholds may cause the marine electronic device to generate a route211that is smoother than the touch pattern204and includes fewer changes in course, which may reduce wear and tear on the maneuvering system and/or reduce processing for generating the route211.

In some instances, a user may desire a change to the route, such as a predetermined maneuver, for example overtaking another vehicle along the route, a man overboard or Williamson maneuver, or the like.FIGS. 8-15illustrate modification of a route316by insertion of a route snippet310. A route snippet310may be a non-geographically referenced navigational maneuver. The route snippet310may be defined by two or more waypoints312and route segments314further defining relative distance and/or course heading between the waypoints312.

The route316may be displayed on a screen340of the user interface. A direction of travel318is provided for illustrative purposes, but may be displayed in at least some example embodiments. The marine electronic device may receive an indication of a desire to modify the route, such as selection of a route snippet icon302, a modify route button, or the like. A plurality of route snippets indicators306associated with a plurality of route snippets, e.g. at least a portion of a route snippet library, may be displayed in response to the indication of a desire to modify the route. The route snippet indicators306may include a route snippet name, a route snippet shape, and/or the route snippet310itself. The marine electronic device may receive an indication of selection of a route snippet310. The indication of selection of the route snippet316may be a touch or click of the selected one of the route snippet indicators306. In some instances the route snippet indicator306may be dragged onto a chart area near the route316, as depicted by arrow308.

In an example embodiment in which the screen340includes a touch screen, the marine electronic device may receive a user input from the touch screen defining a new route snippet310. The route snippet310may be generated in a manner substantially similar to a route211based on a touch pattern204, as discussed above in reference toFIGS. 2-5. The marine electronic device may cause new route snippet310to be stored in memory, such as with the plurality of route snippets, e.g. the route snippet library. In some example embodiments, selection of a route snippet310may include the user input defining the new route snippet310.

In some instances, the route snippet310may be modified as depicted inFIGS. 9A and 9B. The marine electronic device may receive an indication of rotation313. The indication of rotation313may be a gesture, in an instance in which the screen340is a touch screen, such as a two fingers twist in a desired direction. Alternatively, the indication of rotation313may include a selection of a portion of the route snippet310by a pointing device, such as a mouse, a finger, a stylus, or the like and moving the selected portion to rotate the route snippet310. The marine electronic device may cause the route snippet310to rotate relative to the route316based on the indication of rotation313.

In some instances, the marine electronic device may receive an indication of change of scale315. The indication of change of scale315may be a gesture on the touch screen, such as two fingers expanding or contracting. Alternatively, the indication of change of scale may include a selection of a portion of the route snippet310by the pointing device, such as mouse, finger, stylus, or the like and moving the selected portion to stretch the route snippet310. The change of scale may include a change in length and/or width of the route snippet310, while maintaining the relative shape of the route snippet310. The marine electronic device may cause the route snippet to change scale relative to the route316based on the indication of change of scale315.

In an example embodiment, the marine electronic device may receive an indication of a change in position317of one or more waypoints. The indication of the change in position317may be a gesture on the touch screen, such as a drag and drop. Additionally or alternatively, the indication of change317of the position may include selection of a waypoint312, by the pointing device, to a desired position. The marine electronic device may update the route snippet310based on the indication of change317

As depicted inFIG. 10, a vehicle location326associated with the marine electronic device may be displayed along the route316. The vehicle location may be based on a positioning system, e.g. global positioning system (GPS), inertial based location, such as ring laser gyroscopes, bottom contour, or the like. Additionally or alternatively, the marine electronic device may display other vehicles324or navigational features328(as depicted inFIGS. 10-12) within a current display area associated with the route316. The locations associated with vehicles324may be based on radar, sonar, manual input, an automatic identification system (AIS), or the like. Locations associated with navigational features, such as shallow depth, land, reefs, constructions, rocks, or the like may be based on charted features, radar, manual input, or the like. Display of the vehicle location326, vehicles324and navigational features328may assist the user in a selection of a position of the route snippet310along the route316.

In an example embodiment, the route snippet316may be moved or dragged proximate to the route316. In an instance in which the marine electronic device receive an indication of the route snippet310within a predetermined distance315of the route316, an indication of a snap position322may be displayed on the route316(e.g., the increased line weight shown inFIG. 10). The predetermined distance may be 1 cm, 2 cm, 3 cm, or the like. The snap position322may include the currently selected portion or position along the route316. The snap position may be displayed in visual contrast to the route316, such as in a different color, different line weight, highlighting, or the like. In some example embodiments, the snap position322may, additionally or alternatively, include a snippet start position320and a snippet end position321indicating positions along the route at which the route snippet is currently selected to be connected to.

As depicted inFIG. 11, the marine electronic device may compare the route snippet310at a current position, such as the snap position322, or selected position along the route316to one or more predetermined navigational thresholds, such as navigational features, e.g. depth, land, obstacles, or the like. The comparison of the route snippet310to navigational thresholds may be substantially similar to the comparison of the route211to the navigational thresholds discussed above in reference toFIGS. 6 and 7. In an instance in which the route snippet310fails to satisfy a navigational threshold, such as a navigational feature328within a minimum distance, e.g. minimum distance222, the marine electronic device may cause a notification of an unsafe route330to be displayed. The notification330may indicate that at least a portion of the route snippet310fails to satisfy the predetermined navigational threshold. The notification may be a dialog box rendered on the display of the user interface. In some example embodiments, the notification330may include displaying the portion of the route snippet310which fails to satisfy the predetermined navigational threshold in visual contrast. The visual contrast may include displaying the notification330in a different color, line weight, highlighting, an “X”, or the like from the remainder of the route snippet310.

In an example embodiment, the marine electronic device may modify the route snippet310, as depicted inFIG. 12to generate a safe route snippet311. The safe route snippet311may be based on the route snippet310and satisfying the predetermined navigational thresholds.

The marine electronic device may receive an indication of a selected position of the selected route snippet310in connection with a point along the route316. The selected position may be selected as a portion of a multi point selection process, such as selection of a waypoint312of the route snippet and selection of a point on the route316. As depicted inFIG. 13, the route snippet310may be displayed at the selected position of the route, such that a beginning of the route snippet310is connected to the point along the route316. Alternatively, the route snippet310may be displayed at the selected position of the route automatically at the snap position322in response to receiving a user input indicating a release of the route snippet310from the touch screen, such as the release portion of a drag and drop gesture.

The route snippet310may be displayed in contrast, e.g. a different color such as green or black, different line weight, highlighting, or the like, than the active route316, which may be displayed in red. The route snippet310may be activated by a user input, such as selection of an activate button, execute route snippet icon, double clicking the route snippet310, right clicking the route snippet and selecting activate from a menu, or the like.

As shown inFIG. 14, the marine electronic device may cause a modification to the route316such that the route snippet316when activated becomes a portion of the route and a portion342of the route316following the point319is deactivated. The deactivated portion342may be displayed in contrast to the active route in a manner substantially similar to the non-activated route snippet discussed above.

A user may manually navigate the vehicle to travel along the modified route, e.g. the route316including the activated route snippet310. In an instance in which, an autopilot is being utilized; the marine electronic device may send instructions to the autopilot to control the maneuvering system to travel along the modified route.

In some example embodiments, the route316may be stored to a memory for future use or review. In some example embodiments, the route316may be stored separately, e.g. without, the route snippet310.

The route snippets310may include any number of predetermined navigational maneuvers. For example,FIGS. 8-14depict an overtake maneuver route snippet310. The overtake route snippet310may include a first route segment including a divergence from the route at approximately 45 degrees, a route segment running approximately parallel to the route, and a route segment converging on the route316at approximately 45 degrees. The route snippet310ofFIG. 15Adepicts an example fork maneuver, in which a first route segment departs from the route316and a second route segment terminates at a point not along the route316. In such a case, the remaining route may be recalculated accordingly. The route snippet310of FIG.15B depicts a Williamson maneuver, e.g. a man overboard maneuver, in which the route snippet diverges from the route316and turns back the opposite direction along the route316. The route snippet310ofFIG. 15Cdepicts an arc or circle portion, in which the route snippet include an arc between three waypoints312. The route snippets depicting navigational maneuvers as discussed and depicted herein are merely for illustrative purposes, other nautical maneuvers may include, without limitation, search and rescue patterns, survey patterns, military maneuvers, fishing or industrial maneuvers, or the like.

Example System Architecture

FIG. 16shows a block diagram of an example navigation system400capable for use with several embodiments of the present invention. As shown, the navigation system400may include a number of different modules or components, each of which may comprise any device or means embodied in either hardware, software, or a combination of hardware and software configured to perform one or more corresponding functions. For example, the navigation system400may include an autopilot450, a maneuvering system455, and a marine electronic device405.

The navigation system400may also include one or more communications modules configured to communicate with one another in any of a number of different manners including, for example, via a network. In this regard, the communications module may include any of a number of different communication backbones or frameworks including, for example, Ethernet, the NMEA 2000 framework, GPS, cellular, WiFi, or other suitable networks. The network may also support other data sources, including GPS, autopilot, engine data, compass, radar, etc. Numerous other peripheral devices such as one or more wired or wireless multi-function displays (e.g. a marine electronic device405) may be included in the navigation system400.

The marine electronic device405may include a processor410, a memory420, a user interface435, a display440, one or more sensors (e.g. position sensor445, orientation sensor (not shown), etc.), and a communication interface430.

The processor410may be any means configured to execute various programmed operations or instructions stored in a memory device such as a device or circuitry operating in accordance with software or otherwise embodied in hardware or a combination of hardware and software (e.g. a processor operating under software control or the processor embodied as an application specific integrated circuit (ASIC) or field programmable gate array (FPGA) specifically configured to perform the operations described herein, or a combination thereof) thereby configuring the device or circuitry to perform the corresponding functions of the processor410as described herein. In this regard, the processor410may be configured to analyze electrical signals communicated thereto to provide route data for navigation of a vehicle, such as a watercraft. For example, the processor410may be configured to receive route data and user input associated with the route data to generate or modify a route for display to a user (e.g. on display440/user interface435). Additionally or alternatively, the processor410may be configured to generate and send route data including instructions to the autopilot450to operate the maneuvering system455to cause the vehicle to travel along the route.

In some embodiments, the processor410may be further configured to implement signal processing or enhancement features to improve the display characteristics or data or images, collect or process additional data, such as time, temperature, GPS information, waypoint designations, or others, or may filter extraneous data to better analyze the collected data. It may further implement notices and alarms, such as those determined or adjusted by a user, to reflect depth, presence of fish, proximity of other vehicles, e.g. watercraft, etc.

The memory420may be configured to store instructions, computer program code, marine data, such as sonar data, chart data, location/position data, and other data associated with the navigation system in a non-transitory computer readable medium for use, such as by the processor.

The communication interface430may be configured to enable connection to external systems (e.g. an external network402). In this manner, the marine electronic device405may retrieve stored data from a remote, external server via the external network402in addition to or as an alternative to the onboard memory420.

The position sensor445may be configured to determine the current position and/or location of the marine electronic device405. For example, the position sensor445may comprise a GPS, bottom contour, inertial navigation system, such as machined electromagnetic sensor (MEMS), a ring laser gyroscope, or the like, or other location detection system.

The display440may be configured to display images and may include or otherwise be in communication with a user interface435configured to receive an input from a user. The display440may be, for example, a conventional LCD (liquid crystal display), a touch screen display, mobile device, or any other suitable display known in the art upon which images may be displayed.

In any of the embodiments, the display440may present one or more sets of marine data (or images generated from the one or more sets of data). Such marine data includes chart data, radar data, weather data, location data, position data, orientation data, sonar data, or any other type of information relevant to the watercraft. In some embodiments, the display440may be configured to present such marine data simultaneously as one or more layers or in split-screen mode. In some embodiments, a user may select any of the possible combinations of the marine data for display.

In some further embodiments, various sets of data, referred to above, may be superimposed or overlaid onto one another. For example, a route may be applied to (or overlaid onto) a chart (e.g. a map or navigational chart). Additionally or alternatively, depth information, weather information, radar information, sonar information, or any other navigation system inputs may be applied to one another.

The user interface435may include, for example, a keyboard, keypad, function keys, mouse, scrolling device, input/output ports, touch screen, or any other mechanism by which a user may interface with the system.

Although the display440ofFIG. 16is shown as being directly connected to the processor410and within the marine electronic device405, the display440could alternatively be remote from the processor410and/or marine electronic device405. Likewise, in some embodiments, the position sensor445and/or user interface435could be remote from the marine electronic device405. Similarly, the autopilot450is depicted remote from the marine electronic device405, but may be directly connected to the processor410within the marine electronic device.

The autopilot450may include processing circuitry, such as a processor and a memory, configured to operate the maneuvering system455. The autopilot450may be configured to operate the maneuvering system automatically, e.g. without user interaction, causing a vehicle, such as a watercraft to travel along the route211. The autopilot450may generate instructions based on a vehicle position, the route or the like to operate the maneuvering system455.

The maneuvering system455may include one or more propulsion motors, or engines, including but not limited to, outboard motors, inboard motors, trolling motors, main engines, emergency propulsion motors, or the like. Additionally, the maneuvering system455may include one or more control surfaces, such as rudders, planes, or the like configured to steer the vehicle.

Example Flowchart(s) and Operations

Embodiments of the present invention provide methods, apparatus and computer program products for generating or modifying routes for navigation of a vehicle. Various examples of the operations performed in accordance with embodiments of the present invention will now be provided with reference toFIGS. 17-19.

FIGS. 17-19illustrate flowcharts according to an example method for generating and/or modifying a route for navigation of a vehicle according to an example embodiment. The operations illustrated in and described with respect toFIGS. 17-19may, for example, be performed by, with the assistance of, and/or under the control of one or more of the processor410, memory420, communication interface430, user interface435, position sensor445, display440, autopilot450and/or maneuvering system455. The method may include causing a selected chart to be displayed on a user interface at operation502, receiving user input defining a touch pattern directed toward the chart from the user interface at operation504, and determining one or more geographical locations on the chart corresponding to one or more points along the touch pattern at operation506. The method may also include determining a distance between a starting location and an ending location at operation508, comparing a start point and end point of the potential route to a predetermined completion threshold at operation510, and generating a continuous route in response to the distance satisfying the completion threshold at operation512.

In some embodiments, the method may include additional, optional operations, and/or the operations described above may be modified or augmented. Some examples of modifications, optional operations, and augmentations are described below, as indicated by dashed lines, such as, receiving a repeat route indication at operation514, causing the route to repeat for at least a plurality of cycles at operation516, comparing the route to one or more predetermined navigational thresholds at operation518, and modifying the route to generate a safe route which satisfies the predetermined navigational thresholds at operation520. In some example embodiments, the method may also include comparing at least a portion of the route to one or more route patterns at operation522, updating at least a portion of the route based on the route satisfying a route pattern threshold of the one or more route patterns at operation524, and receiving an indication to activate the route from the user interface at operation526. At operation528, the method may include sending instructions to an autopilot to operate a maneuvering system to cause a vehicle to travel along the route. The method may continue to point A (e.g. operation608) of the flowchart depicted inFIG. 18or to operation530receiving an indication of a change to the safe route from the user interface. At operation532, the method may also include updating the route based on the indication of the change to the safe route, the method may return to operation518.

The method depicted inFIGS. 18 and 19may include receiving an indication of a desire to modify the route at operation604, displaying a plurality of route snippets at operation606, and receiving user input indicating selection of a route snippet at operation608. The method may also include receiving user input indicating a selected portion of the selected route snippet in connection with a point along the route at operation632, causing the route snippet to be displayed at the selected position at operation634, and causing modification of the route such that the route snippet is activated and the portion of the route following the point deactivated at operation642(seeFIG. 19).

In some embodiments, the method may include additional, optional operations, and/or the operations described above may be modified or augmented. Some examples of modifications, optional operations, and augmentations are described below, as indicated by dashed lines, such as, causing a route to be displayed on a user interface at operation602, receiving an indication of a new route snippet from a user interface at operation610, and causing the new route snippet to be stored in memory at operation612. The method may also include receiving an indication of a change in scale associated with the route snippet at operation614, causing the scale of the route snippet to change scale relative to the route based on the indication of change in scale at operation616, receiving an indication of a rotation associated with the route snippet at operation618, and causing the route snippet to rotate relative to the route based on the indication of rotation at operation620. The method may optionally include receiving an indication of a change of position of a waypoint associated with the route snippet at operation622and causing the waypoint associated with the route snippet to change position based on the indication of change at operation624. The method may continue from operations616,620, or624to point B ofFIG. 19. The method may also include receiving an indication of the route snippet being within a predetermined distance of the route at operation626, receiving an indication of the route snippet being within a predetermined distance of the route at operation628and causing an indication of a snap position indicative of a current position on the route the route at operation630. In some example embodiments, the method may include comparing the route snippet displayed at the selected position to one or more navigational thresholds at operation636, modifying the route snippet to generate a safe route snippet at operation638, and receiving an indication of route snippet activation from the user interface at operation640. In some example embodiments the method may continue at point C, e.g. operation528, ofFIG. 17.

FIGS. 17-19illustrate flowcharts of a system, method, and computer program product according to an example embodiment. It will be understood that each block of the flowcharts, and combinations of blocks in the flowcharts, may be implemented by various means, such as hardware and/or a computer program product comprising one or more computer-readable mediums having computer readable program instructions stored thereon. For example, one or more of the procedures described herein may be embodied by computer program instructions of a computer program product. In this regard, the computer program product(s) which embody the procedures described herein may be stored by, for example, the memory420and executed by, for example, the processor410. As will be appreciated, any such computer program product may be loaded onto a computer or other programmable apparatus (for example, a marine electronic device405) to produce a machine, such that the computer program product including the instructions which execute on the computer or other programmable apparatus creates means for implementing the functions specified in the flowchart block(s). Further, the computer program product may comprise one or more non-transitory computer-readable mediums on which the computer program instructions may be stored such that the one or more computer-readable memories can direct a computer or other programmable device (for example, a marine electronic device405) to cause a series of operations to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus implement the functions specified in the flowchart block(s).

CONCLUSION