(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025091789
(43)【公開日】2025-06-19
(54)【発明の名称】操船装置
(51)【国際特許分類】
B63H 25/02 20060101AFI20250612BHJP
【FI】
B63H25/02 A
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023207244
(22)【出願日】2023-12-07
(71)【出願人】
【識別番号】000003207
【氏名又は名称】トヨタ自動車株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】都築 尚幸
(72)【発明者】
【氏名】篠田 祥尚
(72)【発明者】
【氏名】小林 功
(72)【発明者】
【氏名】西村 康孝
(57)【要約】
【課題】操作者の意図に沿った操船を実現する。
【解決手段】中立位置から移動可能な操作子を有する入力装置に対して行われた操作に基づいて、船舶が有する1つ以上の推進機を制御する操船装置。前記操作子の移動可能な領域が、前記中立位置を中心として複数の方向に分割された複数の領域であって、少なくとも一つの方向の領域の中心角が他の方向の領域とは異なる複数の領域を有し、前記複数の領域のうち前記操作子が位置する領域に基づいて、前記船舶にかける推進力を決定する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
中立位置から移動可能な操作子を有する入力装置に対して行われた操作に基づいて、船舶が有する1つ以上の推進機を制御する操船装置であって、
前記操作子の移動可能な領域が、前記中立位置を中心として複数の方向に分割された複数の領域であって、少なくとも一つの方向の領域の中心角が他の方向の領域とは異なる複数の領域を有し、
前記複数の領域のうち前記操作子が位置する領域に基づいて、前記船舶にかける推進力を決定する制御部を有する、
操船装置。
【請求項2】
前記推進力は、前記船舶を前進させる第1パターンの推進力、前記船舶を後退させる第2パターンの推進力、または、前記船舶を旋回させる第3パターンの推進力のいずれかである、
請求項1に記載の操船装置。
【請求項3】
前記複数の領域が、前記船舶の前後方向に対応する方向を軸として対称に分割されている、
請求項1に記載の操船装置。
【請求項4】
前記複数の領域は、前進を指示する第1領域と、後退を指示する第2領域とを少なくとも含み、
前記第2領域が、前記第1領域よりも広い中心角を有する、
請求項1に記載の操船装置。
【請求項5】
前記制御部は、前記中立位置から変位した第一位置から前記中立位置に前記操作子を移動させる第一操作が行われた場合に、前記1つ以上の推進機の推進力を制御することで前記船舶を所定の停船地点に停止させる停船制御を開始する、
請求項1から4のいずれか1項に記載の操船装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、操船装置に関する。
【背景技術】
【0002】
全方向に傾倒させることができるスティック(ジョイスティック)を利用して、船舶の制御を行う技術がある。これに関し、例えば、特許文献1には、スティックを傾けた方向に船舶を進行させることができる操船装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、操作者の意図に沿った操船を実現することを目的とする。
【課題を解決するための手段】
【0005】
本開示の実施形態の一態様は、
中立位置から移動可能な操作子を有する入力装置に対して行われた操作に基づいて、船舶が有する1つ以上の推進機を制御する操船装置であって、前記操作子の移動可能な領域が、前記中立位置を中心として複数の方向に分割された複数の領域であって、少なくとも一つの方向の領域の中心角が他の方向の領域とは異なる複数の領域を有し、前記複数の領域のうち前記操作子が位置する領域に基づいて、前記船舶にかける推進力を決定する制御部を有する、操船装置である。
【0006】
また、他の態様として、上記の装置が実行する方法、当該方法をコンピュータに実行させるプログラム、上記のプログラムを非一時的に記憶したコンピュータ可読記憶媒体が挙げられる。
【発明の効果】
【0007】
本開示によれば、操作者の意図に沿った操船を実現することができる。
【図面の簡単な説明】
【0008】
【
図2】船舶1の操船インタフェースを説明するための図。
【
図3】船舶1のハードウェア構成の一例を示した図。
【
図4】ジョイスティックの操作子を説明するための図。
【
図5】操船コントローラ100のソフトウェア構成の一例を示した図。
【
図6A】操作子に対する入力と、推進力ベクトルとの関係を説明する図。
【
図6B】第一の実施形態におけるゾーンの分割方法を説明する図。
【
図6C】操作子に対する入力と、推進力ベクトルとの関係を説明する図。
【
図7】推進力ベクトルと、各エンジンの推進方向との関係を説明する図。
【
図8】推進力ベクトルを演算するためのモデルを説明する図。
【
図9】停船制御中において行われる処理を説明する図。
【
図10】第一の実施形態で操船コントローラが実行する処理のフローチャート。
【
図11】第一の実施形態で操船コントローラが実行する処理のフローチャート。
【
図12】第三の実施形態におけるゾーンの分割方法を説明する図。
【発明を実施するための形態】
【0009】
従前、小型船舶の操縦は、スロットルとステアリングによって行うものが大半であったが、操船を行うためのインタフェース装置として、全方向に傾倒させることができるスティック型のコントローラを持つ小型船舶が登場している。斯様なコントローラ(以下、ジョイスティック)は、操作子であるスティックを倒す方向および角度によって、船舶の進行方向および速度を指示することができるため、接岸時など、きめ細かい操作が求められるシーンにおいて有用である。
【0010】
ジョイスティックはゲームコントローラに多く採用されており、直感的な操作が可能であるという特徴を持っている。しかし、操船の内容によっては、操作者の意図通りに操船が行えない場合がある。
例えば、ジョイスティックの操作によって船舶を後退させる場合を考える。船舶を後退させる場合、通常、操作者は、コントローラを把持しつつ、船舶の後方を目視しながら操作を行うことになる。すなわち、船舶を後退させる場合、操作者は、船体に固定されたコントローラを把持した状態で、顔のみが後方を振り返る体勢となる。
【0011】
斯様な体勢で操作を行うと、操作者は手元を目視することができないため、操作誤りが発生するおそれがある。例えば、真後ろに船体を進行させたい場合であっても、後ろを振り返った体勢では、ジョイスティックがどの方向に倒れているかを正確に把握することができないためである。この結果、例えば、操作者は後方にスティックを倒しているつもりであっても、左斜め後ろ、または右斜め後ろにスティックが倒れてしまい、意図せずに船舶が左右方向に進行してしまう場合がある。
本開示に係る操船装置は、斯様な問題を解決する。
【0012】
本開示の第一の態様に係る操船装置は、中立位置から移動可能な操作子を有する入力装置に対して行われた操作に基づいて、船舶が有する1つ以上の推進機を制御する操船装置であって、前記操作子の移動可能な領域が、前記中立位置を中心として複数の方向に分割された複数の領域であって、少なくとも一つの方向の領域の中心角が他の方向の領域とは異なる複数の領域を有し、前記複数の領域のうち前記操作子が位置する領域に基づいて、前記船舶にかける推進力を決定する制御部を有する。
【0013】
入力装置は、操作子によって方向を入力可能な装置であって、典型的にはジョイスティックである。入力装置は、例えば、360度の全方向に操作子を傾倒可能なものであってもよい。
【0014】
操作子が移動可能な領域は、中立位置を中心として、複数の方向に放射状に分割されている。
制御部は、分割された複数の領域のうち、操作子が位置する領域に応じて、船舶にかける推進力(推進力のパターン)を決定する。例えば、前進、後退、左移動、右移動を行うための領域が設けられている場合、各領域に操作子を移動させることで、船舶を前進させるための推進力、後退させるための推進力、左移動させるための推進力、右移動させるための推進力を船舶にかけることができる。
【0015】
本開示にかかる操船装置は、複数の領域が有する中心角は均等ではなく、少なくとも一つの中心角が他の領域の中心角と異なる。例えば、船舶を前進させるための第1領域と、船舶を後退させるための第2領域があった場合、第2領域の中心角を、第1領域よりも広くしてもよい。このようにすることで、操作に対する遊びを設けることができ、操作子の位置がずれやすい環境下において、操作者の意図に沿わない船舶の挙動を防止することができる。
【0016】
また、前記制御部は、前記中立位置から変位した第一位置から前記中立位置に前記操作子を移動させる第一操作が行われた場合に、前記1つ以上の推進機の推進力を制御することで前記船舶を所定の停船地点に停止させる停船制御を開始してもよい。
【0017】
制御部は、第一操作が行われた場合に、船舶を所定の停船地点に停止させる停船制御を開始してもよい。所定の停船地点とは、操作者に違和感を与えない地点であれば、必ずしも第一操作が行われた地点でなくてもよい。例えば、第一操作が行われた地点よりも前方の地点を所定の停船地点として設定してもよい。
停船制御とは、船舶の推進機を制御し、船舶を積極的に所定の停船地点に向かわせるための制御である。停船制御の期間中においては、例えば、推進機を逆回転させることで船舶を減速させる制御や、スラスタを動作させて船首方向を修正する制御などが行われる。
【0018】
第一操作が行われた場合に、推進機をただちに停止させると、慣性あるいは外乱によって船舶が流れてしまい、操作者の意図した地点に船舶を停止させることができない。一方、本開示に係る操船装置によると、第一操作が行われた場合に、操作者の意図した地点に船舶を停止させることが可能になる。
【0019】
以下、本開示の具体的な実施形態について図面に基づいて説明する。各実施形態に記載されているハードウェア構成、モジュール構成、機能構成等は、特に記載がない限りは開示の技術的範囲をそれらのみに限定する趣旨のものではない。
【0020】
(第一の実施形態)
[船舶の概要]
図1は、船舶1を上方から見た上面図である。
図1に示すように、船体1Aの後部には、それぞれ推進機であるエンジンが2基取り付けられている。本実施形態では、左側に取り付けられたエンジンを左エンジン410、右側に取り付けられたエンジンを右エンジン420と称する。2基のエンジンは、船舶1の中心線を挟んで左右対称の位置に取り付けられる。
【0021】
また、船体1Aの船首部には、推進機のひとつであるバウスラスタ310が取り付けられている。バウスラスタ310とは、左右方向に推進力を得るための推進機である。バウスラスタ310は、水面下の船首付近に設けられた横方向の穴に配置される。なお、バウスラスタ310は発動機(内燃機)であってもよいし、電動機であってもよい。同様に、左エンジン410および右エンジン420は、本実施形態では発動機(内燃機)であるが、電動機に置き換えてもよい。
なお、実施形態の説明においては、バウスラスタ310、左エンジン410、および右エンジン420を「エンジン」と総称する場合がある。
【0022】
船舶1は操縦室1Bを有しており、操縦室1Bには、操船のためのインタフェーとして、ジョイスティック110、スラスタレバー130、およびスロットルレバー140が備えられている。
【0023】
図2は、ジョイスティック110、スラスタレバー130、およびスロットルレバー140の外観図である。
スロットルレバー140は、左右エンジンの推進力および推進方向を指示するためのレバーの組である。スラスタレバー130は、バウスラスタの推進力および推進方向を指示するためのレバーである。この二つは、各エンジンを直接制御するために用いられ、レバーを倒す角度によって推進力を指定することができる。すなわち、スロットルレバー140によって指示された推進力および推進方向がそのまま左右エンジンに伝達され、スラス
タレバー130によって指示された推進力および推進方向がそのままバウスラスタに伝達される。
【0024】
ジョイスティック110は、船舶の動きを統合的に制御するための、全方向に傾倒が可能な操作子である。ジョイスティック110を利用して操船を行う場合、各エンジンの推進力および推進方向は、入力に応じて、後述する操船コントローラ100によって演算される。
【0025】
[ハードウェア構成]
第一の実施形態に係る船舶を構成する装置の構成について説明する。
図3は、本実施形態に係る船舶1が有するハードウェアの構成の一例を模式的に示した図である。
【0026】
本実施形態に係る船舶1は、操船コントローラ100、ジョイスティック110、GPSモジュール120、スラスタレバー130、スロットルレバー140、スイッチングコントローラ200、スラスタコントローラ300、およびエンジンコントローラ400を有して構成される。
また、船舶1は、推進機として、前述したバウスラスタ310、左エンジン410、および右エンジン420を有して構成される。
【0027】
ジョイスティック110は、
図2を参照して説明したように、全方向に傾倒させることができる操作子(スティック)を有した入力装置である。
図4は、操作子(スティック)によって入力が可能な角度を説明する図である。操作子は全方位に傾倒可能であり、これにより、方位を示す値(方位角)α(0度以上360度未満)を取得することができる。方位角は、例えば、船首方向を0度とした数値(相対方位)で表される。また、ジョイスティック110は、操作子の傾倒の深さを示す値(傾倒角)βを取得することができる。
さらに、ジョイスティック110は、操作子の軸を中心としてヘッドを回転可能に構成される。これにより、回転量を表す値(回転角)θを取得することができる。
【0028】
GPSモジュール120は、船舶1の位置情報を取得するためのユニットである。GPSモジュール120は、位置情報を測位するためのGPSアンテナと測位モジュールを含む。GPSアンテナは、測位衛星(GNSS衛星とも称する)から送信された測位信号を受信するアンテナである。測位モジュールは、GPSアンテナによって受信された信号に基づいて、位置情報を算出するモジュールである。
【0029】
スラスタレバー130は、バウスラスタの推進力および推進方向を指示するためのレバーである。スラスタレバー130は、例えば、左右方向に傾倒可能な機構を有しており、無段階で推進力を指示することができる。
【0030】
スロットルレバー140は、左右エンジンの推進力および推進方向を指示するためのレバーの組である。スロットルレバー140は、左レバーと右レバーからなる。スロットルレバー140において、左レバー及び右レバーそれぞれを前後に無段階で動かすことで、操作者は各エンジンの推進力を指示することができる。また、各レバーは前進領域と後進領域を有し、各領域にレバーを移動させることで、エンジンの推進方向を指示することができる。
【0031】
本実施形態に係る船舶1は、手動制御モードおよび自動制御モードによる操船が可能である。手動制御モードとは、操作者が、スロットルレバー140およびスラスタレバー130を用いて、各エンジンの推進力および推進方向を直接指示するモードである。手動制御モードにある場合、各エンジンの推進力および推進方向は、スロットルレバー140お
よびスラスタレバー130の位置によって決定される。
【0032】
自動制御モードとは、各エンジンの推進力および推進方向を操船コントローラ100が演算するモードである。本実施形態では、自動制御モードは、例えば、ジョイスティック110からの入力に基づいて、各エンジンに必要な推進力(および推進方向)を演算するモード(ジョイスティックモード)と、GPSによって取得した位置情報に基づいて、各エンジンの推進力および推進方向を自動的に演算するモード(自律航行モード)にさらに分類される。なお、「自動制御」とは、各エンジンに必要な推進力(および推進方向)を演算によって得ることを指し、必ずしも自律的な航行を意味するのではない。すなわち、ジョイスティックによる操船を行うモードも、自動制御モードに分類される。
【0033】
スイッチングコントローラ200は、前述した手動制御モードと自動制御モードを切り替えるユニットである。手動制御モードが指定された場合、スラスタレバー130とスラスタコントローラ300が接続され、バウスラスタ310の出力を直接制御できるようになる。また、スロットルレバー140とエンジンコントローラ400が接続され、各エンジンの出力を直接制御できるようになる。
自動制御モードが指定された場合、操船コントローラ100と、スラスタコントローラ300およびエンジンコントローラ400が接続され、これにより、操船コントローラ100による演算結果が各エンジンに反映されるようになる。
【0034】
操船コントローラ100は、前述したように、自動制御モードにおいて、各エンジンに必要な推進力(および推進方向)を演算するユニットである。操船コントローラ100は、ジョイスティック110、および、GPSモジュール120から入力された情報に基づいて、各エンジンに必要な推進力(および推進方向)を演算し、その結果を、スラスタコントローラ300およびエンジンコントローラ400に対して指令する。操船コントローラ100は、マニューバECUとも呼ばれる。
【0035】
スラスタコントローラ300は、バウスラスタ310を制御するためのユニットである。スラスタコントローラ300は、例えば、バウスラスタの推進力および推進方向を指定するデータを受信し、これに基づいて、バウスラスタ310の燃料噴射、ギア投入、電圧および電流などを制御する。
エンジンコントローラ400は、左右エンジンを制御するためのユニットである。エンジンコントローラ400は、例えば、左右エンジンの推進力および推進方向を指定するデータを受信し、これに基づいて、左エンジン410および右エンジン420の燃料噴射、ギア投入、電圧および電流などを制御する。
【0036】
バウスラスタ310は、船体1Aの船首部に取り付けられた推進機である。バウスラスタ310は、船体1Aの中心線に直交する方向に推進力を発生させることで、船首に対して左右方向に力を加えることができる。
左エンジン410は、船体1Aの中心線よりも左側に取り付けられた推進機である。右エンジン420は、船体1Aの中心線よりも右側に取り付けられた推進機である。左右エンジンは、それぞれ船体1Aの中心線を挟んで左右対称の位置に取り付けられている。左右エンジンは、船体1Aの中心線と平行する方向に推進力を発生させることができるが、推進力が発生する方向を船体に対して傾ける機能、すなわちステアリングの機能は有していない。
【0037】
[操船コントローラの詳細構成]
次に、操船コントローラ100の構成について説明する。
図5は、本実施形態に係る操船コントローラ100の構成の一例を模式的に示した図である。
【0038】
操船コントローラ100は、プロセッサ(CPU、GPU等)、主記憶装置(RAM、ROM等)、補助記憶装置(EPROM、ハードディスクドライブ、リムーバブルメディア等)を有するコンピュータとして構成することができる。補助記憶装置には、オペレーティングシステム(OS)、各種プログラム、各種テーブル等が格納され、そこに格納されたプログラムを実行することによって、後述するような、所定の目的に合致した各機能(ソフトウェアモジュール)を実現することができる。ただし、一部または全部の機能は、例えば、ASIC、FPGA等のハードウェア回路によってハードウェアモジュールとして実現されてもよい。
【0039】
操船コントローラ100は、制御部101、および記憶部102を有して構成される。
制御部101は、所定のプログラムを実行することで、操船コントローラ100の各種機能を実現する演算ユニットである。制御部101は、例えば、CPU等のハードウェアプロセッサによって実現することができる。また、制御部101は、RAM、ROM(Read Only Memory)、キャッシュメモリ等を含んで構成されてもよい。
【0040】
制御部101は、第1航行制御部1011、停船制御部1012、および第2航行制御部1013の3つのソフトウェアモジュールを有して構成される。各ソフトウェアモジュールは、後述する記憶部12に記憶されたプログラムを制御部101(CPU等)によって実行することで実現されてもよい。
【0041】
まず、第1航行制御部1011について説明する。
第1航行制御部1011は、ジョイスティック110からの入力内容に基づいて、各エンジンの推進力(および推進方向)を制御する。具体的には、第1航行制御部1011は、
図4を参照して説明した3種類の角度に基づいて、船舶の航行に必要な推進力(以下、推進力ベクトル)を演算する。ここで演算される推進力ベクトルは、船体に対して定義されるものである。
また、第1航行制御部1011は、演算された推進力ベクトルに基づいて、各エンジンが出力すべき推進力(および推進方向)を決定し、各エンジンに対して制御指令を発行する。
【0042】
ここで、ジョイスティック110に対する入力と、推進力ベクトルとの関係について、
図6Aを参照して説明する。
前述したように、ジョイスティック110によって得られる方位角αは、0度以上360度未満の値であるが、本実施形態では、これを4つのゾーンに分割し、ゾーンごとに、第1航行制御部1011が、船体に対する推進力の発生方向を決定する。
【0043】
前ゾーンは、船舶を前進させるためのゾーンである。操作子が前ゾーンにある場合、船体に対して前向きの推進力ベクトルが算出される。
後ゾーンは、船舶を後退させるためのゾーンである。操作子が後ゾーンにある場合、船体に対して後ろ向きの推進力ベクトルが算出される。
右ゾーンは、船舶を並行に右移動させるためのゾーンである。操作子が右ゾーンにある場合、船体に対して右向きの推進力ベクトルが算出される。
左ゾーンは、船舶を並行に左移動させるためのゾーンである。操作子が左ゾーンにある場合、船体に対して左向きの推進力ベクトルが算出される。
なお、本実施形態における推進力ベクトルは、エンジンが生み出す水流の反力によって得られる、船体にかかる推進力を表す。
推進力ベクトルの大きさは、操作子の傾倒角度βに比例して大きくなる。
【0044】
本実施形態では、前ゾーンに対して、後ゾーンの面積がより広く取られている。すなわち、操作子を中心とした扇形の中心角が、前ゾーンよりも後ゾーンにおいて大きくなって
いる。換言すると、後退時において、前進時よりも、左右方向における操作の「遊び」が大きくなっている。
【0045】
操作者が、船体に固定されたジョイスティックを把持した状態で、顔のみが後方を振り返る体勢を取った場合、手元が確認できないため、操作子を後方に移動させたつもりでも、操作子が左右方向にずれてしまう場合がある。
【0046】
これについて、
図6Bを参照して説明する。
図中の(1)は、船舶を後退させる操作の一例である。船舶を後退させる場合、図示したように、操作子を後方(180度方向)に傾倒させる操作が必要となる。(2)および(3)は、船舶を後退させる操作中において、操作子が右方向にずれてしまった場合の例である。図中の(2)が、各ゾーンを均等な角度で分割した場合の例であり、図中の(3)が、本実施形態にかかる方法によって各ゾーンを分割した場合の例である。
【0047】
図中の(2)に示したように、従来のケースでは、操作子が右方向にずれることで、操作子が右ゾーンに入ってしまい、これにより、「船舶を右向きに移動させる」推進力ベクトルが算出されてしまう場合がある。かかる場合、操作者が、船舶を後退させようとしているにもかかわらず、船舶が右方向に移動してしまう。
【0048】
これに対し、本実施形態では、図中の(3)に示したように、後ゾーンの中心角が広く取られているため、操作子が左右にある程度ずれたとしても、操作子は後ゾーンを逸脱せず、「船舶を後退させる」推進力ベクトルが算出される。これにより、操作者の意図通りに船舶を後退させることが可能になる。
【0049】
次に、
図6Cを参照して、船舶を旋回させる操作について説明する。
本実施形態では、前述した4つのゾーンに加え、船舶を旋回させるための2つのゾーンが定義されている。
左回転ゾーンは、船舶を左方向に回頭させるためのゾーンである。操作子のヘッドを左に回転させた場合、左回転ゾーンとなる。操作子が左回転ゾーンにある場合、船体に対して二つの推進力ベクトルが発生する。すなわち、船首付近において、左方向への推進力ベクトルが発生し、船尾付近において、右方向への推進力ベクトルが発生する。
右回転ゾーンは、船舶を右方向に回頭させるためのゾーンである。操作子のヘッドを右に回転させた場合、右回転ゾーンとなる。操作子が右回転ゾーンにある場合、船体に対して二つの推進力ベクトルが発生する。すなわち、船首付近において、右方向への推進力ベクトルが発生し、船尾付近において、左方向への推進力ベクトルが発生する。
推進力ベクトルの大きさは、操作子の回転角度θに比例して大きくなる。
ここでは、前述した4つのゾーンと基本ゾーンと称し、船舶を旋回させるための2つのゾーンを追加ゾーンと称する。
【0050】
次に、上記のように決定した推進力ベクトルから、各エンジンの推進力(および推進方向)を求める方法について、
図7を参照して説明する。
【0051】
推進力ベクトルが前向きである場合、すなわち、船舶が前進する場合、左エンジン、右エンジンともに、後方に向けて推進力を発生させる(
図7(A))。
推進力ベクトルが後ろ向きである場合、すなわち、船舶が後退する場合、左エンジン、右エンジンともに、前方に向けて推進力を発生させる(
図7(B))。
なお、推進力ベクトルが前向きまたは後ろ向きである場合、バウスラスタの推進力は0となる。
【0052】
推進力ベクトルが左向きである場合、すなわち、船舶が左に並行移動する場合、左エン
ジンは後方に向けて推進力を発生させ、右エンジンは前方に向けて推進力を発生させる。また、バウスラスタは右方向に向けて推進力を発生させる(
図7(C))。船首のバウスラスタに右方向の推進力を持たせた場合、船体が左に回頭してしまうが、左エンジンを後方向、右エンジンを前方向にそれぞれ推進することで、これを打ち消し、船体を左方向に平行移動させることができる。
【0053】
推進力ベクトルが右向きである場合、すなわち、船舶が右に並行移動する場合、左エンジンは前方に向けて推進力を発生させ、右エンジンは後方に向けて推進力を発生させる。また、バウスラスタは左方向に向けて推進力を発生させる(
図7(D))。船首のバウスラスタに左方向の推進力を持たせた場合、船体が右に回頭してしまうが、左エンジンを前方向、右エンジンを後方向にそれぞれ推進することで、これを打ち消し、船体を右方向に平行移動させることができる。
【0054】
推進力ベクトルが左回転である場合、すなわち、船舶を左に回頭させる場合、左エンジンは前方に向けて推進力を発生させ、右エンジンは後方に向けて推進力を発生させる。また、バウスラスタは右方向に向けて推進力を発生させる(
図7(E))。これにより、船体を左に回頭させることができる。
推進力ベクトルが右回転である場合、すなわち、船舶を右に回頭させる場合、左エンジンは後方に向けて推進力を発生させ、右エンジンは前方に向けて推進力を発生させる。また、バウスラスタは左方向に向けて推進力を発生させる(
図7(F))。これにより、船体を右に回頭させることができる。
いずれの場合も、各エンジンの推進力の大きさは、推進力ベクトルの大きさに比例する。
【0055】
第1航行制御部1011は、推進力演算モデル102Aを利用して、船体の推進力ベクトルFを演算する。
図8(A)は、推進力演算モデル102Aを説明する図である。
推進力演算モデル102Aとは、前述した、操作子の3種類の角度(α,β,θ)を入力とし、船体の推進力ベクトルFを出力するモデルである。本実施形態では、推進力演算モデル102Aは、
図6Aに示したように、操作子が位置するゾーンごとに推進力ベクトルを決定できるように構成されている。
【0056】
本実施形態では、
図6Aに示したように、各基本ゾーンを分割する際の中心角が均等ではない。すなわち、少なくとも一つの領域の中心角が、他の領域の中心角と異なるように各基本ゾーンが設けられている。推進力演算モデル102Aは、基本ゾーンの分割に係る情報を有しており、入力された角度α(またはθ)に基づいて、操作子がどのゾーンに位置するかを判定する。また、推進力演算モデル102Aは、各ゾーンと船舶の推進方向とをそれぞれ関連付けた情報を有しており、これにより、推進力ベクトルFの方向を決定することができる。さらに、推進力演算モデル102Aは、入力された角度β(またはθ)に基づいて、推進力ベクトルFの大きさを決定することができる。
推進力演算モデル102Aは、後述する記憶部102に記憶される。
【0057】
第1航行制御部1011は、上述した処理によって、航行中においてジョイスティック110から与えられた指示を各エンジンに反映させることができる。
【0058】
次に、停船制御部1012について説明する。
停船制御部1012は、ジョイスティック110の操作子を、中立位置から変位した位置(第一位置。すなわち、操作子を傾倒させた状態)から中立位置にする操作が行われた場合に、船体を所定の停船地点に停止させる停船制御を行う。
中立位置とは、操作子を傾倒していない状態である。操作子を第一位置から中立位置にする操作を第一操作と称する。
【0059】
ここで、停船制御について説明する。
図9は、本実施形態における停船制御の一例を説明する図である。
初期状態において、操作者が、ジョイスティックの操作子を第一位置にすることによって、船舶1が各エンジンの推進力により所定の速度および進行方向で進行しているものとする。ここで、図中の符号901のタイミングで、操作者がジョイスティックの操作子を第一位置から中立位置に移動させたものとする。ここで、仮に停船制御が行われない場合、ジョイスティックの操作子の位置が中立位置にされることで全てのエンジンの推進力が0に制御される。この場合、船舶1はその場で停船せずに、慣性で進み続ける。本実施形態では、このタイミングで、停船制御部1012によって停船制御が開始される。
【0060】
停船制御中において、停船制御部1012は、船舶1を所定の減速度で減速させるべく、推進力ベクトルを演算し、各エンジンを制御する。符号902は、所定の減速度で減速中の船舶1を表す。
船舶1の速度が所定の閾値を下回ると(符号903)、停船制御部1012は、当該地点の座標(例えば、緯度および経度)をGPSモジュール120から取得し、停船地点として設定する。停船地点には、座標のほか、船首方向が関連付いている。
停船制御部1012は、設定された停船地点に船舶1を減速させながら誘導すべく、推進力ベクトルを演算し、各エンジンを制御する。具体的には、停船地点の座標(および船首方向)と、現在の座標(および船首方向)を比較し、両者を一致させるための推進力ベクトルを演算し、これに基づいて各エンジンを制御する。これにより、設定された座標において、設定された船首方向を向いて船舶1が停止する。
【0061】
航行中においては、第1航行制御部1011が、推進力演算モデル102Aを利用して船体の推進力ベクトルFを演算したが、停船制御中においては、停船制御部1012が、推進力演算モデル102Bを利用して船体の推進力ベクトルFを演算する。
図8(B)は、推進力演算モデル102Bを説明する図である。
停船制御を行う際、停船制御部1012は、停船地点と船舶1の現在位置との偏差(位置偏差、Pdefと表記)、および、停船地点における船首方向と船舶1の現在の船首方向
との偏差(方位偏差、Adefと表記)を算出する。位置偏差Pdefは、停船地点の座標および現在座標に基づいて算出することができる。また、方位偏差Adefは、停船地点の船首
方向および現在の船首方向に基づいて算出することができる。
【0062】
推進力演算モデル102Bは、位置偏差Pdefおよび方位偏差Adefを入力とし、位置偏差および方位偏差を0に近づけるような、船体の推進力ベクトルFを演算して出力するモデルである。位置偏差および方位偏差を0に近づける制御を行うことで、船舶1を停船地点に誘導することができる。
推進力演算モデル102Bは、後述する記憶部102に記憶される。
【0063】
次に、第2航行制御部1013について説明する。
第2航行制御部1013は、GPSモジュール120から取得した情報に基づいて、推進力ベクトルを演算し、各エンジンを制御する。具体的には、第2航行制御部1013は、事前に設定された目標座標と、GPSモジュール120から取得した座標に基づいて、船舶1が目標座標に向かうよう、推進力ベクトルを演算し、演算した推進力を与えるために各エンジンに対して制御指令を発行する。目標座標は、船舶1の目的地の座標であってもよいし、船舶1を停止させる地点の座標であってもよい。例えば、釣魚などを行う際に、風や潮流に影響されずに特定の地点に船舶1を留め置きたい場合、目標座標を設定してもよい。
【0064】
記憶部102は、情報を記憶する手段であり、RAM、磁気ディスクやフラッシュメモ
リなどの記憶媒体により構成される。記憶部102には、制御部101にて実行されるプログラム、当該プログラムが利用するデータ等が記憶される。
また、記憶部102には、前述した推進力演算モデル102Aおよび推進力演算モデル102Bが記憶される。
【0065】
[処理フローチャート]
次に、操船コントローラ100が実行する処理の詳細について説明する。
図10は、操船コントローラ100が実行する処理のフローチャートである。
図10に示した処理は、船舶1の航行中において、ジョイスティックを利用した操作モード(ジョイスティックモード)が指定されている場合に実行される。
【0066】
まず、ステップS11において、第1航行制御部1011が、ジョイスティック110から操作子の状態を取得する。本ステップでは、操作子が示している方位角α、傾倒角β、回転角θの3つが取得される。
次に、ステップS12において、第1航行制御部1011が、操作子が第一位置から中立位置に移動された結果、操作子が現在中立位置にあるか否かを判定する。
【0067】
ステップS12において、操作子が中立位置にないと判定された場合、ジョイスティックによる操船操作が続いていることを意味する。この場合、処理はステップS13に遷移する。
ステップS13では、第1航行制御部1011が、操船操作に基づいて、必要な推進力ベクトルを算出する。具体的には、ステップS11で取得したα,β,θの値を
図8(A)に示した推進力演算モデル102Aに入力し、出力された推進力ベクトルFを取得する。
推進力演算モデル102Aは、α(またはθ)の値に基づいて、操作子に対応するゾーンを判定し、判定されたゾーンに対応する方向を、推進力ベクトルFの方向として決定する。また、β(またはθ)の値に基づいて、推進力ベクトルFの大きさを決定する。
【0068】
操作子が第一位置から中立位置に移動され、その結果、操作子が現在中立位置にあるとステップS12において判定された場合、ジョイスティックによって停船が指示されていることを意味する。この場合、処理はステップS14に遷移する。
【0069】
ステップS14では、停船制御部1012が、船舶1の速度が所定の速度以下であるか否かを判定する。所定の速度は、例えば、操船コントローラ100に事前に設定された速度とすることができる。
ステップS14において、船舶1の速度が所定値を上回ると判定された場合、停船制御部1012は、減速がまず必要であると判断し、処理をステップS15に遷移させる。
【0070】
ステップS15では、停船制御部1012が、減速のために必要な推進力ベクトルを算出する。本実施形態では、ジョイスティックの操作子を中立位置に戻した場合、所定の減速度で船舶1を減速させる。所定の減速度は、例えば、操作者によって操船コントローラ100に事前に設定された減速度とすることができる。操船コントローラ100は、操作者ごとに減速度の設定値を保持し、利用してもよい。また、操作者に減速度を選択させてもよい。ステップS15では、当該減速度を実現するための推進力ベクトルFが算出される。
【0071】
ステップS14において、船舶1の速度が所定値以下であると判定された場合、停船制御部1012は、船体が十分に減速したと判断し、処理をステップS16に遷移させる。
ステップS16では、停船制御部1012は、船舶1の現在位置(座標)および船首方位を、停船位置として一時的に記憶する。船舶1の現在位置および船首方位は、GPSモ
ジュール120から取得することができる。
【0072】
ステップS17では、停船制御部1012が、設定された停船地点に船舶1の位置を保持させる(保持制御を行う)ための推進力ベクトルを算出する。
【0073】
図11は、ステップS17において、停船制御部1012が実行する処理をより詳細に示したフローチャートである。
まず、ステップS171で、船舶1の現在位置および現在の船首方位を取得する。船舶1の現在位置および現在の船首方位は、GPSモジュール120から取得することができる。ここでは、船舶1の現在位置をPactと表記し、現在の船首方位をAactと表記する。
【0074】
次に、ステップS172で、目標位置および目標船首方位を取得する。目標位置は、ステップS16において記憶した座標である。また、目標船首方位は、ステップS16において記憶した船首方位である。ここでは、目標位置をPtrgと表記し、目標船首方位をAtrgと表記する。
【0075】
次に、ステップS173で、位置偏差および方位偏差を取得する。位置偏差とは、船舶1の現在の位置と、目標位置との偏差である。ここでは、位置偏差をPdefと表記する。
位置偏差は、Pdef=Ptrg-Pactの式によって取得することができる。方位偏差とは、
船舶1の現在の船首方位と、目標船首方位との偏差である。ここでは、方位偏差をAdef
と表記する。方位偏差は、Adef=Atrg-Aactの式によって取得することができる。
【0076】
次に、ステップS174で、必要な推進力ベクトルFを算出する。必要な推進力ベクトルFは、位置偏差Pdefおよび方位偏差Adefを0にするために必要な推進力を表す。位置偏差Pdefおよび方位偏差Adefが0になることは、すなわち、船舶1が停船地点に位置することを意味する。本実施形態では、
図8(B)を参照して説明したように、推進力演算モデル102Bを利用して推進力ベクトルFを算出する。
【0077】
ステップS17の処理が完了すると、処理はステップS18に遷移する。
ステップS18では、停船制御部1012が、決定された推進力ベクトルFに基づいて、エンジンの推進力を制御する。停船制御部1012は、
図7を参照して説明したように、推進力ベクトルの方向に応じて、左エンジン410、右エンジン420、およびバウスラスタ310の推進力(および推進方向)を決定する。また、決定した推進力(および推進方向)を、スラスタコントローラ300および/またはエンジンコントローラ400に伝達する。これにより、各エンジンの推進力が制御される。
【0078】
なお、本実施形態では、
図7に示したように、推進力ベクトルの方向として6種類を例示したが、これに限定されるものではない。停船制御部1012は、任意の方向を持つ推進力ベクトルを算出してもよいし、これに基づいて、各エンジンの推進力および推進方向を決定してもよい。
任意の推進力ベクトルに基づいて、各エンジンの推進力および推進方向を決定する方法には、任意の手法を利用することができる。例えば、推進力ベクトルを入力とし、各エンジンの推進力および推進方向を出力するモデルを利用することもできる。
【0079】
ステップS19では、停船制御部1012が、ステップS11と同様に、ジョイスティック110から操作子の状態を取得する。本ステップでは、操作子が示している方位角α、傾倒角β、回転角θが取得される。
次に、ステップS20において、停船制御部1012が、操作子が中立位置にある状態が継続しているか否かを判定する。ここで、ステップS19で取得された方位角α、傾倒角β、回転角θがともに0であった場合、操作子の位置が中立のままであると判定される
。
【0080】
操作子の位置が中立のままであった場合、処理はステップS17へ遷移する。これにより、船舶1を停船位置に近づけるための制御が続行される。
操作子の位置が中立以外であった場合、処理はステップS11へ遷移する。操作子の位置が中立以外であった場合、停船操作がキャンセルされたことを意味する。この場合、操作子に対して行われた操作に基づいて、(例えば、ステップS13において)推進力ベクトルが新たに演算され、各エンジンの推進力が制御される。
【0081】
図示したフローチャートの処理を繰り返すことで、操船コントローラ100は、停船操作が行われた場合に、所定の停船位置に船舶1を誘導することができる。また、停船後もステップS17~S20の処理(保持制御)を続けることで、船舶1の停止位置を維持することができる。
【0082】
以上説明したように、本実施形態に係る船舶1は、操船コントローラが、ジョイスティックによって行われた入力に基づいて推進力ベクトルを演算し、各エンジンを制御する。また、操作子を中立位置に移動させた場合に、ただちに推進力を遮断させず、船体を所定の停船位置に誘導する制御を始める。これによって、操作者が停船操作を行った場合に、操作者の意図と近い地点に船舶1を停止させることが可能になる。
【0083】
(第二の実施形態)
第一の実施形態では、船舶1が停止した後、ステップS17~S20の処理を繰り返すことで、風や潮流(外乱)に対抗する推進力を発生させることができ、これにより、船舶1を所定の停船位置に留め置くことができる。
【0084】
一方、斯様な制御は、船舶1が再発進した場合に解除されてしまう。例えば、左方向から風が吹いている場合、停船状態から再発進すると、直進しているつもりでも、船体が右に流されてしまう。
そこで、停船した際の推進力ベクトルFを記憶し、これに基づいて、外乱に対する補正を継続するようにしてもよい。所定の停船位置に停止した際、風や潮流が無い場合、推進力ベクトルは0になる。一方、風や潮流がある場合、これに対抗する推進力ベクトルFが発生するため、所定の座標に停船した際に推進力ベクトルが0にならない場合がある。このときの値を、例えば、外乱に対抗する推進力Gとして記憶し、再発進後、例えば、ステップS13(ステップS15)において、記憶した推進力ベクトルGを、算出した推進力ベクトルFに加算する。これにより、再発進後においても、外乱に対する補正を継続させることができるようになる。
【0085】
(変形例)
上記の実施形態はあくまでも一例であって、本開示はその要旨を逸脱しない範囲内で適宜変更して実施しうる。
例えば、本開示において説明した処理や手段は、技術的な矛盾が生じない限りにおいて、自由に組み合わせて実施することができる。
【0086】
また、実施形態では、入力装置としてジョイスティックを例示したが、推進力を指定できるものであれば、必ずしも全方位に傾倒が可能な入力装置を用いる必要はない。
【0087】
また、実施形態では、操作子が移動可能な領域を4つの基本ゾーンに分割し、ゾーンごとに推進力ベクトルの方向を決定したが、基本ゾーンの数はこれ以上であってもよいし、これ以下であってもよい。ただし、いずれの場合であっても、船舶を後退させるためのゾーンは、船舶を前進させるためのゾーンよりも広く設定される。
【0088】
図12は、方位角を8つの基本ゾーンに分割した場合の例である。本例では、前後左右方向に加え、右前方(ゾーン2)、右後方(ゾーン4)、左後方(ゾーン6)、左前方(ゾーン8)の4つのゾーンが追加されている。当該ゾーンに操作子が位置する場合、推進力演算モデル120Aによって、斜め方向に船舶を進行させるための推進力ベクトルが演算される。
なお、推進力ベクトルが船体に対して斜め方向に設定された場合、操船コントローラ100は、左右エンジンの回転数に差をつける、または、バウスラスタを補助的に作動させる。例えば、
図7の(A)および(B)の例において、斯様な制御を行うことで、所望する方向に船首を傾けながら船舶を進行させることができる。
【0089】
また、1つの装置が行うものとして説明した処理が、複数の装置によって分担して実行されてもよい。あるいは、異なる装置が行うものとして説明した処理が、1つの装置によって実行されても構わない。コンピュータシステムにおいて、各機能をどのようなハードウェア構成(サーバ構成)によって実現するかは柔軟に変更可能である。
【0090】
本開示は、上記の実施形態で説明した機能を実装したコンピュータプログラムをコンピュータに供給し、当該コンピュータが有する1つ以上のプロセッサがプログラムを読み出して実行することによっても実現可能である。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な非一時的なコンピュータ可読記憶媒体によってコンピュータに提供されてもよいし、ネットワークを介してコンピュータに提供されてもよい。非一時的なコンピュータ可読記憶媒体は、例えば、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクドライブ(HDD)等)、光ディスク(CD-ROM、DVDディスク・ブルーレイディスク等)など任意のタイプのディスク、読み込み専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体を含む。
【符号の説明】
【0091】
1 ・・・船舶
100・・・操船コントローラ
101・・・制御部
102・・・記憶部
110・・・ジョイスティック