(57)【要約】【課題】推定装置、制御システム、学習モデル、学習モデルの生成方法、コンピュータプログラム、および、記憶媒体の提供。【解決手段】人力駆動車の車体に関する車体情報と、前記人力駆動車に作用する荷重に関する荷重情報とに基づき、ライダーが乗車した状態における前記人力駆動車の重心位置を推定する。【選択図】図５
2020138700.tif 000002
【特許請求の範囲】
【請求項１】
人力駆動車の車体に関する車体情報と、前記人力駆動車に作用する荷重に関する荷重情報とに基づき、ライダーが乗車した状態における前記人力駆動車の重心位置を推定する、推定装置。
【請求項２】
前記車体情報および前記荷重情報の入力に応じて、前記人力駆動車の重心位置に関する推定結果を出力するように構成される学習モデルを用いて、前記重心位置を推定する、請求項１に記載の推定装置。
【請求項３】
前記車体情報は、前記人力駆動車の車体寸法、車体重量、および、傾斜角度に関する情報を含む、請求項１または２に記載の推定装置。
【請求項４】
前記人力駆動車は、前輪車軸、後輪車軸、サドル、ハンドルバー、クランク、および、ペダルを含み、
前記荷重情報は、前記前輪車軸、前記後輪車軸、前記サドル、前記ハンドルバー、前記クランク、および、前記ペダルの少なくとも１つに作用する荷重に関する情報を含む、請求項１または２に記載の推定装置。
【請求項５】
前記荷重情報は、前記ライダーの体重、身長、姿勢、および、性別の少なくとも１つを含む、請求項４に記載の推定装置。
【請求項６】
請求項１から５のいずれか一項に記載の推定装置と、
前記推定結果に基づいて、前記人力駆動車のコンポーネントを制御する制御装置と
を備える制御システム。
【請求項７】
前記コンポーネントは、報知装置を含む、請求項６に記載の制御システム。
【請求項８】
前記制御装置は、前記推定結果を報知するように前記報知装置を制御する、請求項７に記載の制御システム。
【請求項９】
前記制御装置は、前記ライダーの推奨姿勢に関する情報を報知するように前記報知装置を制御する、請求項７に記載の制御システム。
【請求項１０】
前記コンポーネントは、照明装置、ブレーキ装置、変速装置、サスペンション装置、駆動補助装置、および、アジャスタブルシートポストの少なくとも１つを含む、請求項６から９のいずれか一項に記載の制御システム。
【請求項１１】
人力駆動車の車体に関する車体情報と、前記人力駆動車に作用する荷重に関する荷重情報とが入力される入力層と、
ライダーが乗車した状態における前記人力駆動車の重心位置に関する推定結果を出力する出力層と、
前記車体情報、前記荷重情報、および、前記重心位置を示す重心情報を教師データに用いて、前記入力層に入力される前記車体情報および前記荷重情報と、前記出力層から出力される推定結果と、の関係を学習した中間層と、を備え、
前記入力層への前記車体情報および前記荷重情報の入力に応じて前記出力層から前記推定結果を出力するために、コンピュータが前記中間層において演算処理を実行するように構成される、学習モデル。
【請求項１２】
人力駆動車の車体に関する車体情報、前記人力駆動車に作用する荷重に関する荷重情報、および、前記人力駆動車の重心位置を示す重心情報を教師データに用いて、前記車体情報および前記荷重情報の入力に応じて、前記重心位置に関する推定結果を出力する学習モデルを、コンピュータを用いて生成する、学習モデルの生成方法。
【請求項１３】
人力駆動車の車体に関する車体情報と、前記人力駆動車に作用する荷重に関する荷重情報とに基づき、ライダーが乗車した状態における前記人力駆動車の重心位置を推定する処理を、コンピュータに実行させるためのコンピュータプログラム。
【請求項１４】
請求項１３に記載のコンピュータプログラムが記憶される記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、推定装置、制御システム、学習モデル、学習モデルの生成方法、コンピュータプログラム、および、記憶媒体に関する。
【背景技術】
【０００２】
非特許文献１には、自転車の重心位置を算出する方法が開示されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】自転車産業振興協会編、「自転車実用便覧」、第５版、自動車産業振興協会、１９９３年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１では、ライダーが乗車していない状態における自転車の重心位置を算出しており、ライダーが乗車した状態における自転車の重心位置を推定することはできない。
【０００５】
本発明は、ライダーが乗車した状態における人力駆動車の重心位置を推定できる推定装置、制御システム、学習モデル、学習モデルの生成方法、コンピュータプログラム、および、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の第１側面に従う推定装置は、人力駆動車の車体に関する車体情報と、前記人力駆動車に作用する荷重に関する荷重情報とに基づき、ライダーが乗車した状態における前記人力駆動車の重心位置を推定する。
【０００７】
本発明の第１側面に従う推定装置によれば、人力駆動車の車体情報および荷重情報に基づき、ライダーが乗車した状態における人力駆動車の重心位置を推定できる。
【０００８】
本発明の第１側面に従う第２側面の推定装置は、前記車体情報および前記荷重情報の入力に応じて、前記人力駆動車の重心位置に関する推定結果を出力するように構成される学習モデルを用いて、前記重心位置を推定する。
【０００９】
本発明の第２側面に従う推定装置によれば、人力駆動車の車体情報および荷重情報を学習モデルに入力することによって、ライダーが乗車した状態における人力駆動車の重心位置を推定できる。
【００１０】
本発明の第１または第２側面に従う第３側面の推定装置において、前記車体情報は、前記人力駆動車の車体寸法、車体重量、および、傾斜角度に関する情報を含む。
【００１１】
本発明の第３発明に従う推定装置によれば、人力駆動車の車体寸法、車体重量、および、傾斜角度に関する情報に応じて、ライダーが乗車した状態における人力駆動車の重心位置を推定できる。
【００１２】
本発明の第１または第２側面に従う第４側面の推定装置において、前記人力駆動車は、前輪車軸、後輪車軸、サドル、ハンドルバー、クランク、および、ペダルを含み、前記荷重情報は、前記前輪車軸、前記後輪車軸、前記サドル、前記ハンドルバー、前記クランク、および、前記ペダルの少なくとも１つに作用する荷重に関する情報を含む。
【００１３】
本発明の第４側面に従う推定装置によれば、前輪車軸、後輪車軸、サドル、ハンドルバー、クランク、および、ペダルの少なくとも１つに作用する荷重に応じて、ライダーが乗車した状態における人力駆動車の重心位置を推定できる。
【００１４】
本発明の第４側面に従う第５側面の推定装置において、前記荷重情報は、前記ライダーの体重、身長、姿勢、および、性別の少なくとも１つを含む。
【００１５】
本発明の第５側面に従う推定装置によれば、ライダーの体重、身長、姿勢、および、性別に応じて、ライダーが乗車した状態における人力駆動車の重心位置を推定できる。
【００１６】
本発明の第６側面に従う制御システムは、本発明の第１から第５側面のいずれか１つに従う推定装置と、前記推定結果に基づいて、前記人力駆動車のコンポーネントを制御する制御装置とを備える。
【００１７】
本発明の第６側面に従う制御システムによれば、重心位置の推定結果に基づき、人力駆動車のコンポーネントを制御するので、例えば、人力駆動車のコンポーネントをライダーにとって快適に制御できる。
【００１８】
本発明の第６側面に従う第７側面の制御システムにおいて、前記コンポーネントは、報知装置を含む。
【００１９】
本発明の第７側面に従う制御システムによれば、制御対象のコンポーネントは報知装置を含むので、重心位置の推定結果をライダーに報知できる。
【００２０】
本発明の第７側面に従う第８側面の制御システムにおいて、前記制御装置は、前記推定結果を報知するように前記報知装置を制御する。
【００２１】
本発明の第８側面に従う制御システムによれば、重心位置の推定結果をライダーに報知できる。
【００２２】
本発明の第７側面に従う第９側面の制御システムにおいて、前記制御装置は、前記ライダーの推奨姿勢に関する情報を報知するように前記報知装置を制御する。
【００２３】
本発明の第９側面に従う制御システムによれば、重心位置が適切な位置となるようにライダーの推奨姿勢に関する情報を報知できる。
【００２４】
本発明の第６から第９側面のいずれか１つに従う第１０側面の制御システムにおいて、前記コンポーネントは、照明装置、ブレーキ装置、変速装置、サスペンション装置、駆動補助装置、および、アジャスタブルシートポストの少なくとも１つを含む。
【００２５】
本発明の第１０側面に従う制御システムによれば、重心位置の推定結果に応じて、照明装置、ブレーキ装置、変速装置、サスペンション装置、駆動補助装置、および、アジャスタブルシートポストの少なくとも１つを含む人力駆動車のコンポーネントを制御するので、例えば、人力駆動車のコンポーネントをライダーにとって快適に制御できる。
【００２６】
本発明の第１１側面に従う学習モデルは、人力駆動車の車体に関する車体情報と、前記人力駆動車に作用する荷重に関する荷重情報とが入力される入力層と、ライダーが乗車した状態における前記人力駆動車の重心位置に関する推定結果を出力する出力層と、前記車体情報、前記荷重情報、および、前記重心位置を示す重心情報を教師データに用いて、前記入力層に入力される前記車体情報および前記荷重情報と、前記出力層から出力される推定結果と、の関係を学習した中間層と、を備え、前記入力層への前記車体情報および前記荷重情報の入力に応じて前記出力層から前記推定結果を出力するために、コンピュータが前記中間層において演算処理を実行するように構成される。
【００２７】
本発明の第１１側面に従う学習モデルによれば、ライダーが乗車している状態における人力駆動車の重心位置を推定する実行環境を、コンピュータによって実現できる。
【００２８】
本発明の第１２側面に従う学習モデルの生成方法は、人力駆動車の車体に関する車体情報、前記人力駆動車に作用する荷重に関する荷重情報、および、前記人力駆動車の重心位置を示す重心情報を教師データに用いて、前記車体情報および前記荷重情報の入力に応じて、前記重心位置に関する推定結果を出力する学習モデルを、コンピュータを用いて生成する。
【００２９】
本発明の第１２側面に従う学習モデルの生成方法によれば、人力駆動車の車体情報および荷重情報、ならびに、人力駆動車の重心位置を示す重心情報を収集することによって、ライダーが乗車した状態における人力駆動車の重心位置を推定するための学習モデルを生成できる。
【００３０】
本発明の第１３側面に従うコンピュータプログラムは、人力駆動車の車体に関する車体情報と、前記人力駆動車に作用する荷重に関する荷重情報とに基づき、ライダーが乗車した状態における前記人力駆動車の重心位置を推定する処理を、コンピュータに実行させるためのコンピュータプログラムである。
【００３１】
本発明の第１３側面に従うコンピュータプログラムによれば、ライダーが乗車している状態における人力駆動車の重心位置を推定する実行環境を、コンピュータによって実現できる。
【００３２】
本発明の第１４側面に従う記憶媒体は、本発明の第１３側面に従うコンピュータプログラムが記憶される。
【００３３】
本発明の第１４側面に従う記憶媒体によれば、記憶媒体に記憶されているコンピュータプログラムをコンピュータにインストールすることによって、ライダーが乗車している状態における人力駆動車の重心位置を推定する実行環境を、コンピュータによって実現できる。
【発明の効果】
【００３４】
本願によれば、ライダーが乗車した状態における人力駆動車の重心位置を推定できる。
【図面の簡単な説明】
【００３５】
【図１】第１実施形態の推定装置が適用される人力駆動車の側面図である。
【図２】第１実施形態に係る推定装置の内部構成を示すブロック図である。
【図３】学習モデルの実装例を示す模式図である。
【図４】座標系の設定例を示す模式図である。
【図５】重心位置の推定手順を説明するフローチャートである。
【図６】第２実施形態に係る制御システムを説明するブロック図である。
【図７】第２実施形態における制御手順を示すフローチャートである。
【図８】報知例の一例を示す模式図である。
【図９】報知例の他の例を示す模式図である。
【図１０】サーバ装置の内部構成を示すブロック図である。
【図１１】教師データの一例を示す概念図である。
【図１２】サーバ装置による学習モデルの生成手順を説明するフローチャートである。
【発明を実施するための形態】
【００３６】
以下、本発明をその実施の形態を示す図面に基づいて具体的に説明する。
（第１実施形態）
図１は第１実施形態の推定装置１００が適用される人力駆動車１の側面図である。人力駆動車１は、走行のための原動力に関して、少なくとも部分的に人力を用いる車両である。内燃機関または電動機のみを原動力に用いる車両は、本実施形態の人力駆動車１から除外される。人力駆動車１は、例えば、マウンテンバイク、ロードバイク、クロスバイク、シティサイクル等を含む自転車である。
【００３７】
人力駆動車１は、車両本体１０、前輪１２、後輪１４、ハンドルバー１６、サドル１８、および、駆動機構２０を備える。以下の説明において、前後、左右、および、上下の各方向を表す用語は、ライダーが人力駆動車１のサドル１８に着座した状態における方向を基準として用いられる。
【００３８】
車両本体１０は、フレーム１０Ａおよびフロントフォーク１０Ｂを備える。前輪１２は、前輪車軸１２Ａを介して、フロントフォーク１０Ｂの端部に回転可能に支持される。後輪１４は、後輪車軸１４Ａを介して、フレーム１０Ａのリアエンドに回転可能に支持される。ハンドルバー１６は、前輪１２の進行方向を変更できるように、フレーム１０Ａに支持される。
【００３９】
駆動機構２０は、チェーンドライブ、ベルトドライブ、または、シャフトドライブによって人力駆動力を後輪１４へ伝達する。図１では、チェーンドライブの駆動機構２０を例示している。駆動機構２０は、クランク２２、フロントスプロケット２４Ａ、リアスプロケット２４Ｂ、チェーン２６、および、一対のペダル２８，２８を含む。駆動機構２０は、更に、チェーン２６を安定的に保持するためのチェーンデバイスあるいはチェーンテンショナを備えてもよい。
【００４０】
クランク２２は、右クランク２２Ａ、左クランク２２Ｂ、および、クランク軸２２Ｃを含む。クランク軸２２Ｃは、フレーム１０Ａに回転可能に支持される。右クランク２２Ａおよび左クランク２２Ｂは、それぞれクランク軸２２Ｃに連結される。一対のペダル２８，２８の一方は右クランク２２Ａに回転可能に支持され、他方は左クランク２２Ｂに回転可能に支持される。
【００４１】
フロントスプロケット２４Ａは、クランク軸２２Ｃに連結されており、クランク軸２２Ｃと一体的に回転する。フロントスプロケット２４Ａは、一例では、外径が異なる複数のスプロケットから構成されるスプロケット組立体である。フロントスプロケット２４Ａが複数のスプロケットを備える場合、これらのスプロケットの外径は例えば車両本体１０から外側へ遠ざかる程大きくなる。
【００４２】
リアスプロケット２４Ｂは、後輪１４のハブに回転可能に支持される。リアスプロケット２４Ｂは、一例では、外径が異なる複数のスプロケットから構成されるスプロケット組立体である。リアスプロケット２４Ｂが複数のスプロケットを備える場合、これらのスプロケットの外径は例えば車両本体１０から外側へ遠ざかる程小さくなる。
【００４３】
チェーン２６は、フロントスプロケット２４Ａおよびリアスプロケット２４Ｂに巻き掛けられる。ペダル２８，２８に加えられる人力駆動力によってクランク２２が前転すると、フロントスプロケット２４Ａがクランク２２と共に前転する。フロントスプロケット２４Ａの回転は、チェーン２６を介してリアスプロケット２４Ｂに伝達し、後輪１４を回転させる。
【００４４】
人力駆動車１は、報知装置３０、照明装置３２、ブレーキ装置３４、変速装置３６、サスペンション装置３８、駆動補助装置４０、および、アジャスタブルシートポスト４２の少なくとも１つを含むコンポーネントを備える。人力駆動車１は、更に、コンポーネントの少なくとも１つの制御状態を切り替える操作装置４４、および、コンポーネントに対して電力を供給するバッテリユニット４６を備える。
【００４５】
報知装置３０は、ライダーに対して各種の情報を報知する装置である。報知装置３０は、例えばハンドルバー１６に設けられる。報知装置３０は、一例では、液晶表示パネル等を備える表示装置であり、外部から入力される制御信号に基づき、文字、図形、記号等の情報を表示する。報知装置３０は、他の例では、スピーカ等を備える音声出力装置であり、外部から入力される制御信号に基づき音声を出力する。報知装置３０は、音声に限らず、警告音などの音を出力する構成あるいは振動を発生させる構成であってもよい。報知装置３０は、独立した装置である必要はなく、推定装置１００に搭載される装置であってもよい。
【００４６】
照明装置３２は、人力駆動車１の進行方向を照明する装置である。照明装置３２は、例えばフロントフォーク１０Ｂに設けられる。照明装置３２は、外部から入力される制御信号に従って、点灯、点滅または消灯するように構成される。
【００４７】
ブレーキ装置３４は、一例では、前輪１２のホイールに制動力を付与する装置である。ブレーキ装置３４は、電動駆動ユニット３４Ａ、キャリパ３４Ｂ、ブレーキ操作装置３４Ｃ等を備える。電動駆動ユニット３４Ａは、キャリパ３４Ｂを作動させる電動モータと、この電動モータを駆動する駆動回路とを含む。キャリパ３４Ｂは、前輪１２のホイールに接触可能なブレーキパッドを含む。ブレーキ操作装置３４Ｃは、例えばハンドルバー１６に設けられ、ブレーキを掛けるライダーの操作を受付ける。ブレーキ装置３４の電動駆動ユニット３４Ａは、ブレーキ操作装置３４Ｃの操作に応じて電動モータを駆動し、キャリパ３４Ｂを作動させることによってブレーキパッドを前輪１２のホイールに接触させ、前輪１２の回転力を減衰させる。ブレーキ装置３４は、制動力が異なる複数の制御状態にて動作するように構成されてもよい。
【００４８】
ブレーキ装置３４は、ディスクブレーキであってもよい。ディスクブレーキでは、例えば、電動モータによって流体を制御してブレーキパッドを移動させ、ブレーキパッドをロータに押し当てることによって、前輪１２または後輪１４の回転力を減衰させる。ディスクブレーキは、電動モータによって直接的にブレーキパッドを移動させ、ブレーキパッドをロータに押し当てることによって、前輪１２または後輪１４の回転力を減衰させる構成であってもよい。
【００４９】
ブレーキ装置３４は、後輪１４に対して設けられてもよい。前後のブレーキ装置３４において、ブレーキ操作装置３４Ｃを共用してもよい。前後のブレーキ装置３４において、ブレーキ操作装置３４Ｃをそれぞれ設けてもよい。後輪１４に対して設けられるブレーキ装置３４の構成は、前輪１２のブレーキ装置３４と同様であるため、その説明を省略する。
【００５０】
変速装置３６は、人力駆動車１の変速比を切り替える装置である。変速装置３６は、操作装置４４の操作に応じて出力される制御信号に基づき、その動作が制御される電動駆動ユニット３６Ａを備える。電動駆動ユニット３６Ａは、駆動回路および電動モータを含む。変速装置３６は、電動駆動ユニット３６Ａが備える電動モータを駆動することによって、チェーン２６が巻き掛けられるスプロケットを変更し、人力駆動車１の変速比を切り替える。
【００５１】
変速装置３６の一例は外装変速機である。より詳細には、変速装置３６は、リアディレーラである。この場合、リアスプロケット２４Ｂは、外径が異なる複数のスプロケットを含む。電動駆動ユニット３６Ａの駆動回路は、シフトアップを指示する制御信号を操作装置４４から受信した場合、例えば、チェーン２６が巻き掛けられるスプロケットをトップ側からロー側へ変更するように電動モータを駆動する。電動駆動ユニット３６Ａの駆動回路は、シフトダウンを指示する制御信号を操作装置４４から受信した場合、例えば、チェーン２６が巻き掛けられるスプロケットをロー側からトップ側へ変更するように電動モータを駆動する。
【００５２】
変速装置３６は、フロントディレーラであってもよい。この場合、フロントスプロケット２４Ａは、外径が異なる複数のスプロケットを含む。変速装置３６として、フロントディレーラおよびリアディレーラの双方を設けてもよい。変速装置３６は内装変速機であってもよい。変速装置３６が内装変速機である場合、変速装置３６は例えば後輪１４のハブに設けられ、リアスプロケット２４Ｂに入力された回転を変速して後輪１４に伝達する。変速装置３６は、外装変速機または内装変速機に限らず、無段変速機であってもよい。
【００５３】
サスペンション装置３８は、一例では、フロントフォーク１０Ｂに設けられ、前輪１２に加えられた衝撃を減衰するフロントサスペンションである。他の例では、サスペンション装置３８は、後輪１４に加えられた衝撃を減衰するリアサスペンションである。サスペンション装置３８は、操作装置４４の操作に応じて出力される制御信号に基づき、その動作が制御される電動駆動ユニット３８Ａを備える。電動駆動ユニット３８Ａは、駆動回路および電動モータを含む。サスペンション装置３８は、動作パラメータとして、減衰率、ストローク量、およびロックアウト状態を設定することによって制御される。サスペンション装置３８は、緩衝性が異なる複数の制御状態にて動作するように構成されてもよい。
【００５４】
駆動補助装置４０は、人力駆動を補助するための装置であり、駆動機構２０に対して設けられる。駆動補助装置４０は、外部から入力される制御信号に基づき、その動作が制御される電動駆動ユニット４０Ａを備える。電動駆動ユニット４０Ａは、駆動回路及び電動モータ等を含み、駆動回路が電動モータを駆動することによって人力駆動を補助する。電動駆動ユニット４０Ａは、操作装置４４の操作に応じて出力される制御信号に基づき、その動作が制御されてもよい。駆動補助装置４０は、人力駆動を補助する補助力が異なる複数の制御状態にて動作可能である。駆動補助装置４０における制御状態はアシストレベルともいう。駆動補助装置４０は、例えばクランク２２に作用する人力駆動力に応じて、アシストレベルを変更する。アシストレベルは、たとえば４段階設けられる場合、強アシストレベル、中アシストレベル、弱アシストレベル、およびゼロアシストレベルを含む。ゼロアシストレベルでは、駆動補助装置４０によるアシストは行われない。
【００５５】
アジャスタブルシートポスト４２は、フレーム１０Ａに取り付けられる。アジャスタブルシートポスト４２は、操作装置４４の操作に応じて出力される制御信号に基づき、その動作が制御される電動駆動ユニット４２Ａを備える。電動駆動ユニット４２Ａは、サドル１８をフレーム１０Ａに対して上昇および下降させる電動アクチュエータと、この電動アクチュエータを駆動する駆動回路とを含む。アジャスタブルシートポスト４２は、フレーム１０Ａに対するサドル１８の支持位置が設定されることによって制御される。
【００５６】
操作装置４４は、例えばハンドルバー１６に設けられる。操作装置４４は、ライダーの指によって操作される操作スイッチ４４Ａ，４４Ｂを備える。操作スイッチ４４Ａ，４４Ｂは、報知装置３０、照明装置３２、ブレーキ装置３４、変速装置３６、サスペンション装置３８、駆動補助装置４０、および、アジャスタブルシートポスト４２の少なくとも１つの制御状態を切り替えるためのスイッチである。
【００５７】
人力駆動車１に搭載される操作装置４４の数は１つである必要はなく、複数であってもよい。図１に示した例では、操作装置４４が２つの操作スイッチ４４Ａ，４４Ｂを備える構成としたが、１つまたは３つ以上の操作スイッチを備える構成であってもよい。操作装置４４は、スイッチを備える構成に限定されず、操作レバーまたは操作ダイヤル等を備える構成であってもよい。
【００５８】
操作装置４４は、操作スイッチ４４Ａまたは操作スイッチ４４Ｂの操作に応じた制御信号を制御対象のコンポーネントへ送信できるように、各コンポーネントに接続される。一例では、操作装置４４は、通信線またはＰＬＣ（Power Line Communication）が可能な電線によって制御対象のコンポーネントに接続される。他の例では、操作装置４４は、無線通信が可能な無線通信ユニットによって制御対象のコンポーネントに接続される。
【００５９】
人力駆動車１は、前述のコンポーネントの少なくとも１つに電力を供給するバッテリユニット４６を備えてもよい。バッテリユニット４６は、バッテリ４６Ａおよびバッテリホルダ４６Ｂを含む。バッテリ４６Ａは、１または複数のバッテリセルを含む蓄電池である。バッテリホルダ４６Ｂは、人力駆動車１のフレーム１０Ａに固定される。バッテリ４６Ａは、バッテリホルダ４６Ｂに着脱可能である。バッテリ４６Ａは、報知装置３０、照明装置３２、変速装置３６、ブレーキ装置３４、サスペンション装置３８、駆動補助装置４０、アジャスタブルシートポスト４２などにそれぞれ電気的に接続される。
【００６０】
人力駆動車１は、更に、傾斜センサＳ１、荷重センサＳ２、および、姿勢センサＳ３の少なくとも１つを備えてもよい。以下の説明において、傾斜センサＳ１、荷重センサＳ２、および、姿勢センサＳ３のそれぞれを個別に説明する必要がない場合、センサＳ１〜Ｓ３とも記載する。
【００６１】
傾斜センサＳ１は、人力駆動車１の傾斜角度に応じた信号を出力するセンサである。傾斜センサＳ１が検出する傾斜角度は、例えば、人力駆動車１の左右方向に沿うピッチ軸まわりの回転角度である。傾斜センサＳ１は、一例として、ピッチ角度の角速度を検出するセンサを含み、ピッチ軸まわりの角速度を積分した値をピッチ角度として算出する。傾斜センサＳ１は、人力駆動車１の前後方向に沿うロール軸まわりの回転角度、および、人力駆動車１の上下方向に沿うヨー軸まわりの回転速度を併せて計測する構成であってもよい。
【００６２】
荷重センサＳ２は、人力駆動車１に作用する荷重に応じた信号を出力するセンサである。荷重センサＳ２の一例は、歪みゲージ式のロードセルである。荷重センサＳ２は、前輪車軸１２Ａ、後輪車軸１４Ａ、ハンドルバー１６、サドル１８、および、ペダル２８の少なくとも１つに設けられる。
【００６３】
姿勢センサＳ３は、ライダーの姿勢に応じた信号を出力するセンサである。姿勢センサＳ３の一例は圧電センサであり、ライダーの体重が掛かる人力駆動車１の複数箇所に設けられる。例えば、姿勢センサＳ３は、ハンドルバー１６が備えるグリップ、サドル１８の表面、ペダル２８等の１または複数箇所に設けられる。姿勢センサＳ３は、ライダーに装着されるウェアラブル端末が備えるモーションセンサであってもよい。姿勢センサＳ３は、荷重センサＳ２の少なくとも１つと共通化されてもよい。
【００６４】
推定装置１００は、人力駆動車１の車体に関する車体情報と、人力駆動車１に作用する荷重に関する荷重情報とに基づき、ライダーが乗車した状態における人力駆動車１の重心位置を推定する。推定装置１００は、一例では、人力駆動車１に設けられるサイクルコンピュータなどの専用端末である。推定装置１００は、他の例では、人力駆動車１のライダーが所持するスマートフォン、タブレット端末、ウェアラブル端末などの汎用端末である。
【００６５】
重心位置の推定に用いられる車体情報は、人力駆動車１の車体寸法、車体重量、および、傾斜角度に関する情報を含む。人力駆動車１の車体寸法および車体重量については、設計値もしくは事前に計測された計測値が推定装置１００に予め記憶されていればよい。一方、人力駆動車１の傾斜角度は、傾斜センサＳ１の出力に基づき得られる情報である。
【００６６】
重心位置の推定に用いられる荷重情報は、前輪車軸１２Ａ、後輪車軸１４Ａ、ハンドルバー１６、サドル１８、クランク２２、および、ペダル２８の少なくとも１つに作用する荷重に関する情報を含む。これらの情報は、荷重センサＳ２の出力に基づき得られる情報である。
【００６７】
重心位置の推定に用いられる荷重情報は、ライダーの体重、身長、姿勢、および、性別の少なくとも１つを含んでもよい。ライダー体重、身長、および、性別については、例えば操作装置４４を用いてライダーによって入力される情報である。これらの情報は、例えば、操作装置４４を用いて入力され、推定装置１００に記憶される。ライダーの姿勢は、姿勢センサＳ３の出力に基づき得られる情報である。
【００６８】
以下、推定装置１００の構成について説明する。
図２は第１実施形態に係る推定装置１００の内部構成を示すブロック図である。推定装置１００は、入力部１０２、演算処理部１０４、記憶部１０６、および、出力部１０８を備える。
【００６９】
入力部１０２は、センサＳ１〜Ｓ３を接続するインタフェースを備える。入力部１０２が備えるインタフェースは、例えば有線のインタフェースであり、センサＳ１〜Ｓ３を通信ケーブルを介して接続する。入力部１０２を通じて入力される信号に基づく情報は記憶部１０６に一時的に記憶される。入力部１０２が備えるインタフェースは、無線インタフェースであってもよい。無線インタフェースとして、Ｂｌｕｅｔｏｏｔｈ（登録商標） 、ＷｉＦｉ（登録商標）、ＺｉｇＢｅｅ（登録商標）、ＬＴＥ（Long Term Evolution）、および、その他の無線ＬＡＮ（Local Area Network）を含む通信規格に準じた通信インタフェースを用いることができる。
【００７０】
演算処理部１０４は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などを備える。演算処理部１０４が備えるＲＯＭには、推定装置１００が備えるハードウェア各部の動作を制御するためのコンピュータプログラム等が記憶される。演算処理部１０４内のＣＰＵは、ＲＯＭまたは記憶部１０６に記憶されるコンピュータプログラムを実行し、ハードウェア各部の動作を制御することによって、装置全体の動作を制御する。演算処理部１０４が備えるＲＡＭには、演算の実行中に利用されるデータが一時的に記憶される。
【００７１】
演算処理部１０４は、ＣＰＵ、ＲＯＭおよびＲＡＭを備える構成としたが、ＧＰＵ（Graphics Processing Unit）、ＦＰＧＡ（Field Programmable Gate Array）、ＤＳＰ（Digital Signal Processor）、量子プロセッサ、揮発性または不揮発性のメモリ等を備える１または複数の演算回路であってもよい。
【００７２】
記憶部１０６は、ＥＥＰＲＯＭ（Electronically Erasable Programmable Read Only Memory）、ＳＲＡＭ（Static Random Access Memory）などのメモリを備える。記憶部１０６は、演算処理部１０４によって実行される推定処理プログラム１１０を含む各種コンピュータプログラム、後述する学習モデル１２０、人力駆動車１の重心位置を推定する際に用いられる各種データ等を記憶する。
【００７３】
推定処理プログラム１１０は、推定処理装置１００に、人力駆動車１の車体に関する車体情報と、人力駆動車１に作用する荷重に関する荷重情報とに基づき、ライダーが乗車した状態における人力駆動車１の重心位置を推定する処理を実行させるためのコンピュータプログラムである。演算処理部１０４は、推定処理プログラム１１０を実行することによって、人力駆動車１の車体情報および荷重情報に基づき、ライダーが乗車した状態における人力駆動車１の重心位置を学習モデル１２０を用いて推定する。
【００７４】
推定処理プログラム１１０を含む各種コンピュータプログラムは、一例では、コンピュータプログラムが記憶される記憶媒体Ｍによって提供されてもよい。記憶媒体Ｍは、例えば、ＣＤ−ＲＯＭ、ＵＳＢメモリ、ＳＤ（Secure Digital）カード、マイクロＳＤカード、コンパクトフラッシュ（登録商標）などの可搬型メモリである。本実施形態において、記憶媒体Ｍは、推定処理プログラム１１０を含む各種コンピュータプログラムを読み取り可能に記憶する非一時的な記憶媒体である。演算処理部１０４は、図に示していない読取装置を用いて記憶媒体Ｍから各種コンピュータプログラムを読み取り、読み取った各種コンピュータプログラムを記憶部１０６にインストールする。
【００７５】
記憶部１０６に記憶される学習モデル１２０は、その定義情報によって記述される。学習モデル１２０の定義情報は、学習モデル１２０の構造情報、学習モデル１２０で用いられるノード間の重みおよびバイアスなどの各種パラメータ等を含む。本実施形態では、人力駆動車１の車体情報および荷重情報、ならびに、人力駆動車１の重心位置を示す重心情報を教師データに用いて、所定の学習モデルによって学習された学習モデル１２０が記憶部１０６に記憶される。学習アルゴリズムは、一例では、ニューラルネットワークを用いた教師ありの学習アルゴリズムを用いることができる。
【００７６】
出力部１０８は、演算処理部１０４による推定結果を出力する出力インタフェースを備える。推定結果の出力形式は任意である。一例では、出力部１０８は、液晶ディスプレイ、有機ＥＬ（Electro-Luminescence）ディスプレイ等の表示デバイスを備える。この場合、出力部１０８は、重心位置の推定結果を文字情報または画像情報として表示デバイスに表示してもよい。他の例では、出力部１０８は、スピーカ等の音声出力デバイスを備える。この場合、出力部１０８は、重心位置の推定結果を音声出力デバイスから音声として出力してもよい。更に他の例では、出力部１０８は、通信インタフェースを備える。この場合、出力部１０８は、重心位置の推定結果を通信インタフェースに接続された外部機器へ出力してもよい。
【００７７】
図３は学習モデル１２０の実装例を示す模式図である。学習モデル１２０は、例えば、深層学習を含む機械学習の学習モデルであり、ニューラルネットワークによって構成されている。学習モデル１２０は、入力層１２２、中間層１２４Ａ，１２４Ｂ、および、出力層１２６を備える。図３の例では、２つの中間層１２４Ａ，１２４Ｂを記載しているが、中間層の数は２つに限定されず、３つ以上であってもよい。
【００７８】
入力層１２２、中間層１２４Ａ，１２４Ｂ、および、出力層１２６には、１つまたは複数のノードが存在し、各層のノードは、前後の層に存在するノードと一方向に所望の重みおよびバイアスで結合されている。入力層１２２のノードの数と同数の成分を有するベクトルデータが学習モデル１２０の入力データとして与えられる。例えば、入力層１２２の各ノードに与えられるデータは、人力駆動車１の車体情報および荷重情報である。車体情報は、人力駆動車１の車体寸法、車体重量、および、傾斜角度に関する情報を含む。車体寸法および車体重量については、推定装置１００の記憶部１０６に記憶されている情報が用いられる。傾斜角度には、傾斜センサＳ１の出力信号に基づき得られる情報が用いられる。荷重情報は、前輪車軸１２Ａ、後輪車軸１４Ａ、ハンドルバー１６、サドル１８、クランク２２、ペダル２８の少なくとも１つに作用する荷重に関する情報を含む。これらの荷重情報には、荷重センサＳ２の出力信号に基づき得られる情報が用いられる。荷重情報は、更に、ライダーの体重、身長、姿勢、および、性別の少なくとも１つを含んでもよい。ライダーの体重、身長、性別については、推定装置１００の記憶部１０６に記憶されている情報が用いられる。ライダーの姿勢に関する情報には、姿勢センサＳ３の出力信号に基づき得られる情報が用いられる。
【００７９】
入力層１２２の各ノードに与えられたデータは、最初の中間層１２４Ａに与えられる。その中間層１２４Ａにおいて重みおよびバイアスを含む活性化関数を用いて出力が算出され、算出された値が次の中間層１２４Ｂに与えられ、以下同様にして出力層１２６の出力が求められるまで次々と後の層に伝達される。ノード間を結合する重み、バイアス等の各種パラメータは、所定の学習アルゴリズムによって学習される。各種パラメータを学習する学習アルゴリズムには、例えば深層学習の学習アルゴリズムが用いられる。本実施形態では、人力駆動車１の車体情報および荷重情報、ならびに、人力駆動車１の重心位置を示す重心情報を教師データに用いて、所定の学習アルゴリズムによって各種パラメータを学習することができる。学習方法については、後に詳述することとする。
【００８０】
出力層１２６は、ライダーが乗車した状態における人力駆動車１の重心位置に関する推定結果を出力する。出力層１２６による推定結果の出力形態は任意である。例えば、出力層１２６は、人力駆動車１を基準とした座標系を設定し、この座標系において設定される複数の位置のそれぞれについて重心位置である確率を出力してもよい。図４は座標系の設定例を示す模式図である。図４の例は人力駆動車１の前後方向をＸ軸方向、上下方向をＺ軸方向にとった直交座標系を示している。この座標系において、Ｘ軸方向にｍ個、Ｚ軸方向にｎ個の点をとった場合、各点の位置座標は、（Ｘ１，Ｚ１），（Ｘ２，Ｚ１），…，（Ｘｉ，Ｚｊ），…，（Ｘｍ，Ｚｎ）のように表現できる。ここで、ｉは１〜ｍの整数、ｊは１〜ｎの整数である。ｍおよびｎは２以上の整数である。学習モデル１２０の出力層１２６は、これらの位置座標で示される各位置について、重心位置である確率を出力すればよい。この場合、出力層１２６にはｍ×ｎ個のノードが設けられ、各ノードから各位置が重心位置である確率が出力される。
【００８１】
以上のように、学習モデル１２０は、入力層１２２への車体情報および荷重情報の入力に応じて出力層１２６から重心位置の推定結果を出力するために、推定装置１００が、中間層１２４Ａ，１２４Ｂにおいて演算処理を実行するように構成される。
【００８２】
図４の例では、簡略化のために、人力駆動車１の前後方向および上下方向を含む２次元の直交座標系において位置座標を設定する構成としたが、左右方向をＹ軸方向として含む３次元の直交座標系において位置座標を設定する構成としてもよいことは勿論のことである。
【００８３】
次に、重心位置の推定手順について説明する。
図５は重心位置の推定手順を説明するフローチャートである。ステップＳ１０１において、推定装置１００の演算処理部１０４は、人力駆動車１の車体情報および荷重情報を取得する。演算処理部１０４は、記憶部１０６から車体寸法および車体重量を読み込むことによって車体情報を取得してもよく、傾斜センサＳ１の出力信号から得られる傾斜角度を車体情報として取得してもよい。演算処理部１０４は、荷重センサＳ２の出力信号に基づき荷重情報を取得してもよい、更に、演算処理部１０４は、記憶部１０６からライダーの体重、身長、および、性別を読み出すことによって荷重情報を取得してもよく、姿勢センサＳ３の出力信号に基づき荷重情報を取得してもよい。
【００８４】
ステップＳ１０２において、演算処理部１０４は、人力駆動車１の車体情報および荷重情報を学習モデル１２０へ入力する。このとき、演算処理部１０４は、ステップＳ１０１において取得した車体情報および荷重情報を学習モデル１２０の入力層１２２に与えてもよく、各ノードの入力形態に適合するように演算処理を施した車体情報および荷重情報を学習モデル１２０の入力層１２２に与えてもよい。
【００８５】
入力層１２２に車体情報および荷重情報を与えることによって、学習モデル１２０による演算が実行される。入力層１２２の各ノードに与えられた情報は、隣接する中間層１２４Ａのノードへ出力される。中間層１２４Ａではノード間の重みおよびバイアスを含む活性化関数を用いた演算が行われ、演算結果は後段の中間層１２４Ｂへ出力される。中間層１２４Ｂにおいて、さらに、ノード間の重みおよびバイアスを含む活性化関数を用いた演算が行われ、演算結果は出力層１２６の各ノードへ出力される。このようにして、学習モデル１２０は、人力駆動車１の重心位置に関する推定結果を出力する。換言すれば、学習モデル１２０は、入力層１２２への車体情報および荷重情報の入力に応じて出力層１２６から重心位置の推定結果を出力するために、推定装置１００が中間層１２４Ａ，１２４Ｂにおいて演算処理を実行するように構成される。
【００８６】
ステップＳ１０３において、演算処理部１０４は、学習モデル１２０による演算結果を出力層１２６から取得する。例えば、図４に示すような直交座標系において位置座標を設定した場合、演算処理部１０４は、位置座標（Ｘ１，Ｚ１），（Ｘ２，Ｚ１），…，（Ｘｉ，Ｚｊ），…，（Ｘｍ，Ｚｎ）によって示される各位置について、重心位置である確率を取得する。
【００８７】
ステップＳ１０４において、演算処理部１０４は、学習モデル１２０の出力層１２６から取得した演算結果に基づき、ライダーが乗車した状態における人力駆動車１の重心位置を推定する。一例では、演算処理部１０４は、出力層１２６の各ノードから出力される確率の大小を比較し、最も確率が高い位置を重心位置として推定する。他の例では、演算処理部１０４は、各位置座標における確率を重みに用いた加重平均を計算し、その計算結果を重心位置として推定してもよい。
【００８８】
以上のように、第１実施形態における推定装置１００は、人力駆動車１の車体情報および荷重情報を学習モデル１２０に入力することによって、ライダーが乗車した状態における人力駆動車１の重心位置を推定できる。
【００８９】
第１実施形態における推定装置１００は、学習モデル１２０を用いて重心位置を推定する構成としたが、学習モデル１２０を用いずに重心位置を推定する構成としてもよい。例えば、推定装置１００は、人力駆動車１の車体情報および荷重情報の入力に応じて、ライダーが乗車した状態における人力駆動車１の重心位置を出力する関数を用意しておき、この関数を用いて重心位置を推定する構成としてもよい。
【００９０】
（第２実施形態）
第２実施形態では、推定装置１００による推定結果に基づき、人力駆動車１のコンポーネントを制御する制御システムについて説明する。
【００９１】
図６は第２実施形態に係る制御システムを説明するブロック図である。第２実施形態に係る制御システムは、推定装置１００と、推定装置１００による推定結果に基づき、人力駆動車１のコンポーネントを制御する制御装置２００とを備える。制御装置２００は、独立した装置として設けられてもよく、制御対象のコンポーネント内に設けられてもよい。図６に示した例では、推定装置１００と制御装置２００とを別体として記載したが、推定装置１００と制御装置２００とが一体となった構成であってもよい。
【００９２】
制御装置２００は、制御部２０２、記憶部２０４、入力部２０６、および、出力部２０８を備える。制御部２０２は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭなどを備える。制御部２０２が備えるＲＯＭには、制御装置２００が備えるハードウェア各部の動作を制御するための制御プログラム等が記憶される。制御部２０２内のＣＰＵは、ＲＯＭに記憶された制御プログラム、および、記憶部２０４に記憶された各種プログラムを実行し、ハードウェア各部の動作を制御することによって、本願の制御装置を実現する。具体的には、制御部２０２は、入力部２０６を通じて入力される推定装置１００からの推定結果に基づき、人力駆動車１のコンポーネントを制御する制御信号を生成し、生成した制御信号を出力部２０８から制御対象のコンポーネントへ出力する。
【００９３】
制御部２０２は上述の構成に限定されない。制御部２０２は、シングルコアＣＰＵ、マルチコアＣＰＵ、ＦＰＧＡ、揮発性または不揮発性のメモリ等を含む１または複数の制御回路であればよい。また、制御部２０２は、日時情報を出力するクロック、計測開始指示を与えてから計測終了指示を与えるまでの経過時間を計測するタイマ、数をカウントするカウンタ等の機能を備えていてもよい。
【００９４】
記憶部２０４は、ＥＥＰＲＯＭ、ＳＲＡＭなどのメモリを備える。記憶部２０４には、制御部２０２によって実行されるコンピュータプログラム、および、このコンピュータプログラムによって用いられるデータ等が記憶される。
【００９５】
入力部２０６は、ケーブルを介して推定装置１００を接続するインタフェースを備える。入力部２０６には、推定装置１００から出力される推定結果が入力される。入力部２０６に入力される推定結果は、ライダーが乗車している状態における人力駆動車１の重心位置を表す。入力部２０６は、入力された推定結果を制御部２０２へ出力する。本実施形態では、ケーブルを介して推定装置１００を接続する構成としたが、無線通信のインタフェースを介して、推定装置１００と制御装置２００との間でデータを送受信できるように構成してもよい。無線通信では、Ｂｌｕｅｔｏｏｔｈ 、ＷｉＦｉ、ＺｉｇＢｅｅ、ＬＴＥ、その他の無線ＬＡＮ等の通信規格に準じた無線通信方式が利用できる。
【００９６】
出力部２０８は、ケーブルを介して制御対象のコンポーネントを接続するインタフェースを備える。制御装置２００に接続されるコンポーネントは、報知装置３０、照明装置３２、ブレーキ装置３４、変速装置３６、サスペンション装置３８、駆動補助装置４０、および、アジャスタブルシートポスト４２を含む。出力部２０８は、制御部２０２から出力される制御信号を制御対象のコンポーネントへ出力する。本実施形態では、ケーブルを介して人力駆動車１のコンポーネントを接続する構成としたが、無線通信のインタフェースを介して、制御装置２００と人力駆動車１のコンポーネントとの間でデータを送受信できるように構成してもよい。無線通信では、上述した各種の通信規格に準拠した無線通信方式が利用できる。
【００９７】
以下、推定装置１００の推定結果に基づき、制御装置２００が人力駆動車１のコンポーネントを制御する制御手順について説明する。
【００９８】
図７は第２実施形態における制御手順を示すフローチャートである。ステップＳ２０１において、制御装置２００の制御部２０２は、推定装置１００から出力される推定結果を入力部２０６を通じて取得する。ステップＳ２０２において、制御部２０２は、推定装置１００から取得した推定結果に基づき、制御対象のコンポーネントを制御する制御信号を生成する。
【００９９】
ステップＳ２０３において、制御部２０２は、ステップＳ２０２において生成した制御信号を出力部２０８から制御対象のコンポーネントへ出力し、制御対象のコンポーネントを制御する。
【０１００】
例えば、制御対象のコンポーネントが報知装置３０である場合、制御部２０２は、推定結果を報知装置３０から報知させるべく制御信号を生成し、出力部２０８を通じて、制御信号を報知装置３０へ送信する。報知装置３０は、制御装置２００から出力される制御信号に基づき、推定装置１００による推定結果を報知する。
【０１０１】
図８は報知例の一例を示す模式図である。図８は推定装置１００の推定結果を画像として表示した例を示している。この報知例では、推定結果の重心位置はハッチングを施した矩形領域によって示されている。
【０１０２】
図９は報知例の他の例を示す模式図である。図９は推定結果の重心位置と、重心の推奨位置とを表示した例を示している。この報知例では、推定結果の重心位置はハッチングを施した領域によって示されており、重心の推奨位置はバツ印によって示されている。重心の推奨位置は、一例では、人力駆動車１の車体寸法、車体重量、傾斜角度、ライダーの体重、身長等に基づき、重心の推奨位置を導出する関数を用いて、制御装置２００によって計算される。重心の推奨位置は、他の例では、人力駆動車１の車体寸法、車体重量、傾斜角度、ライダーの体重、身長等のデータと、重心の推奨位置との関係を示すテーブルを用いて、制御装置２００によって読み出される。制御装置２００は、重心の推奨位置を報知装置３０から報知することによって、ライダーに推奨する姿勢を報知する。
【０１０３】
以上のように、第２実施形態の制御装置２００は、推定装置１００の推定結果に基づいて、人力駆動車１のコンポーネントを制御するので、例えば、推定結果の重心位置を含む情報をライダーに報知できる。
【０１０４】
第２実施形態では制御対象のコンポーネントを報知装置３０としたが、制御対象のコンポーネントは、照明装置３２、ブレーキ装置３４、変速装置３６、サスペンション装置３８、駆動補助装置４０、および、アジャスタブルシートポスト４２の少なくとも１つを含んでもよい。
【０１０５】
制御対象のコンポーネントが照明装置３２である場合、制御部２０２は、推定装置１００の推定結果に基づき、照明装置３２の動作を制御する制御信号を生成する。制御部２０２は、生成した制御信号を出力部２０８から照明装置３２へ出力する。例えば、制御部２０２は、推定装置１００によって推定される重心位置が予め設定された領域に存在しない場合、照明装置３２を点滅させる制御を行うことによってライダーに警告してもよい。
【０１０６】
制御対象のコンポーネントがブレーキ装置３４である場合、制御部２０２は、推定装置１００の推定結果に基づき、ブレーキ装置３４の動作を制御する制御信号を生成する。制御部２０２は、生成した制御信号を出力部２０８からブレーキ装置３４へ出力する。例えば、制御部２０２は、推定装置１００によって推定される重心の前後方向の位置に応じて、ブレーキ装置３４の制動力を変更する制御を行う。
【０１０７】
制御対象のコンポーネントが変速装置３６である場合、制御部２０２は、推定装置１００の推定結果に基づき、変速装置３６の動作を制御する制御信号を生成する。制御部２０２は、生成した制御信号を出力部２０８から変速装置３６へ出力する。例えば、制御部２０２は、推定装置１００によって推定される重心の前後方向の位置に応じて、変速装置３６の変速比を変更する制御を行う。
【０１０８】
制御対象のコンポーネントがサスペンション装置３８である場合、制御部２０２は、推定装置１００の推定結果に基づき、サスペンション装置３８の動作を制御する制御信号を生成する。制御部２０２は、生成した制御信号を出力部２０８からサスペンション装置３８へ出力する。例えば、制御部２０２は、推定装置１００によって推定される重心の上下方向の位置に応じて、サスペンション装置３８による緩衝性を変更する制御を行う。
【０１０９】
制御対象のコンポーネントが駆動補助装置４０である場合、制御部２０２は、推定装置１００の推定結果に基づき、駆動補助装置４０の動作を制御する制御信号を生成する。制御部２０２は、生成した制御信号を出力部２０８から駆動補助装置４０へ出力する。例えば、制御部２０２は、推定装置１００によって推定される重心の前後方向の位置に応じて、駆動補助装置４０によるアシスト力を変更する制御を行ってもよい。
【０１１０】
制御対象のコンポーネントがアジャスタブルシートポスト４２である場合、制御部２０２は、推定装置１００の推定結果に基づき、アジャスタブルシートポスト４２の動作を制御する制御信号を生成する。制御部２０２は、生成した制御信号を出力部２０８からアジャスタブルシートポスト４２へ出力する。例えば、制御部２０２は、推定装置１００によって推定される重心の上下方向の位置に応じて、サドル１８の高さ位置を変更するアジャスタブルシートポスト４２の動作を制御してもよい。
【０１１１】
（第３実施形態）
第３実施形態では、学習モデル１２０の生成方法について説明する。
【０１１２】
人力駆動車１の推定装置１００において用いられる学習モデル１２０は、例えばサーバ装置３００において生成される。図１０はサーバ装置３００の内部構成を示すブロック図である。サーバ装置３００は、制御部３０２、記憶部３０４、入力部３０６、および、通信部３０８を備える。
【０１１３】
制御部３０２は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭなどを備える。制御部３０２が備えるＲＯＭには、サーバ装置３００が備えるハードウェア各部の動作を制御するための制御プログラム等が記憶される。制御部３０２内のＣＰＵは、ＲＯＭに記憶された制御プログラム、および、記憶部３０４に記憶された各種プログラムを実行し、ハードウェア各部の動作を制御する。
【０１１４】
制御部３０２は上述の構成に限定されない。制御部３０２は、ＣＰＵ、ＲＯＭ、および、ＲＡＭを備えた構成に限定されない。制御部３０２は、例えば、ＧＰＵ、ＦＰＧＡ、ＤＳＰ、量子プロセッサ、揮発性または不揮発性のメモリ等を含む１または複数の制御回路または演算回路であってもよい。また、制御部３０２は、日時情報を出力するクロック、計測開始指示を与えてから計測終了指示を与えるまでの経過時間を計測するタイマ、数をカウントするカウンタ等の機能を備えていてもよい。
【０１１５】
記憶部３０４は、フラッシュメモリ、ハードディスクドライブなどの記憶装置を備える。記憶部３０４には、制御部３０２によって実行される各種コンピュータプログラム、学習モデルの生成に用いられる教師データ、サーバ装置３００によって生成される学習モデル等が記憶される。
【０１１６】
入力部３０６は、各種データまたはプログラムを記憶した記憶媒体から、データおよびプログラムを取得するための入力インタフェースを備える。入力部３０６を通じて入力された各種データおよびプログラムは記憶部３０４に記憶される。
【０１１７】
通信部３０８は通信インタフェースを備える。通信部３０８は、例えば、サーバ装置３００を宛先として外部装置から送信される情報を受信すると共に、外部装置へ送信すべき情報を送信する。
【０１１８】
なお、本実施の形態では、簡略化のために、サーバ装置３００を１つの装置として記載したが、複数のサーバ装置により構成されてもよく、１又は複数の仮想マシンにより構成されるものであってもよい。
【０１１９】
図１１は教師データの一例を示す概念図である。教師データは、人力駆動車１の車体に関する車体情報、人力駆動車１に作用する荷重に関する荷重情報、および、人力駆動車１の重心位置を示す重心情報を含む。車体情報は、人力駆動車１の車体寸法、車体重量、および、傾斜角度に関する情報を含む。人力駆動車１の車体寸法および車体重量については、設計値もしくは事前に計測された計測値が用いられる。人力駆動車１の傾斜角度は、傾斜センサＳ１を用いて事前に計測された値が用いられる。
【０１２０】
重心位置の推定に用いられる荷重情報は、前輪車軸１２Ａ、後輪車軸１４Ａ、ハンドルバー１６、サドル１８、クランク２２、および、ペダル２８の少なくとも１つに作用する荷重に関する情報を含む。これらの情報は、荷重センサＳ２を用いて事前に計測された値が用いられる。
【０１２１】
重心位置の推定に用いられる荷重情報は、ライダーの体重、身長、姿勢、および、性別の少なくとも１つを含んでもよい。ライダーの体重、身長、および性別は管理者等によって設定された値が用いられる。ライダーの姿勢は、姿勢センサＳ３を用いて事前に計測された値が用いられる。
【０１２２】
重心位置を示す重心情報については、事前に計測された値が用いられる。重心位置の計測には公知の手法が用いられる。一例として、画像解析により、ライダーが乗車した状態における人力駆動車１の重心位置を計測する手法について説明する。第１実施形態において説明したＸ軸方向およびＺ軸方向における重心位置を計測する場合、Ｙ軸方向から撮像した撮像画像が用いられる。撮像画像における各画素の位置座標をＰijとし、位置座標Ｐijにおける微小部分の質量をｍijとした場合、重心位置は、（ｍijＰij）／Ｍにより計算される。ここで、Ｍは、人力駆動車１の車体重量とライダーの体重との和である。位置座標Ｐijにおける微小部分の質量をｍijは、テーブルによって与えられてもよく、その微小部分が人力駆動車１またはライダーのどの部分に属するかによって与えられてもよい。
【０１２３】
本実施の形態では、人力駆動車１の車体情報および荷重情報を様々に変化させた場合における重心情報が計測される。サーバ装置３００は、計測された重心情報、および重心情報を計測した際に用いた車体情報および荷重情報を取得し、これらを関連付けて記憶部３０４に記憶させ、教師データに用いる。
【０１２４】
図１２はサーバ装置３００による学習モデルの生成手順を説明するフローチャートである。ステップＳ３０１において、サーバ装置３００の制御部３０２は、記憶部３０４から学習モデルを学習するための教師データを取得する。学習モデルを生成する初期段階では、教師データは、例えばサーバ装置３００の管理者等によって設定されてもよい。学習が進めば、学習モデルによる推定結果を用いて、教師データを設定する構成としてもよい。後者の場合、学習モデルへの入力と、推定結果として得られるラベルデータとを、教師データとして設定できる。
【０１２５】
ステップＳ３０２において、制御部３０２は、人力駆動車１の車体情報および荷重情報を学習対象の学習モデルへ入力する。学習が開始される前の段階では、学習モデルを記述する定義情報には、初期設定値が与えられる。学習モデルは、第１実施形態において説明した学習モデル１２０と同様に、入力層、中間層、および、出力層を備える。学習モデルの入力層には車体情報および荷重情報が与えられる。入力層に与えられた情報は、隣接する中間層のノードへ出力される。中間層ではノード間の重みおよびバイアスを含む活性化関数を用いた演算が行われ、中間層による演算結果が出力層の各ノードへ出力される。
【０１２６】
ステップＳ３０３において、制御部３０２は、学習モデルの演算結果を出力層の各ノードから取得する。
【０１２７】
ステップＳ３０４において、制御部３０２は、学習モデルの出力層から取得した演算結果を評価する。ステップＳ３０５において、制御部３０２は、学習モデルの学習が完了したか否かを判断する。具体的には、制御部３０２は、ステップＳ３０３において得られる演算結果と教師データとに基づく誤差関数を用いて演算結果を評価することができる。誤差関数は、目的関数、損失関数、または、コスト関数とも呼ばれる。制御部３０２は、最急降下法などの勾配降下法により誤差関数を最適化する過程で、誤差関数が閾値以下または閾値以上となった場合、学習モデルの学習が完了したと判断する。制御部３０２は、過学習の問題を避けるために、交差検定、早期打ち切りなどの手法を取り入れ、適切なタイミングにて学習を終了させてもよい。
【０１２８】
ステップＳ３０５において学習が完了していないと判断した場合、制御部３０２は、ステップＳ３０６において、中間層で用いられるノード間の重みおよびバイアスを更新し、処理をステップＳ３０１へ戻す。制御部３０２は、出力層から入力層に向かって、ノード間の重みおよびバイアスを順次更新する誤差逆伝搬法を用いて、各ノード間の重みおよびバイアスを更新することができる。
【０１２９】
ステップＳ３０５において学習が完了したと判断した場合、制御部３０２は、ステップＳ３０７において、学習済みの学習モデルとして記憶部３０４に記憶させ、本フローチャートによる処理を終了する。
【０１３０】
以上のように、第３実施形態では、人力駆動車１の車体情報および荷重情報、ならびに、人力駆動車１の重心位置を示す重心情報を教師データに用いて、車体情報および荷重情報の入力に応じて、重心位置に関する推定結果を出力する学習モデルを、サーバ装置３００を用いて生成できる。
【０１３１】
サーバ装置３００は、必要に応じて、学習済みの学習モデルを推定装置１００に提供してもよい。例えば、推定装置１００がサーバ装置３００と通信する通信インタフェースを備える場合、サーバ装置３００は、通信によって、学習済みの学習モデルを推定装置１００に提供してもよい。サーバ装置３００は、学習済みの学習モデルを図に示してない書込装置によって記憶媒体Ｍに書き込み、記憶媒体Ｍに書き込んだ学習モデルを推定装置１００に提供してもよい。通信または記憶媒体Ｍによって提供される学習済みの学習モデルは、推定装置１００の記憶部１０６に記憶される。推定装置１００の記憶部１０６に記憶された学習モデルは、第１実施形態において説明した学習モデル１２０として機能し、人力駆動車１の車体情報および荷重情報の入力に応じて、人力駆動車１の重心位置に関する推定結果を出力するように構成される。
【０１３２】
今回開示された実施形態は、全ての点において例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【０１３３】
１…人力駆動車、３０…報知装置、３２…照明装置、３４…ブレーキ装置、３６…変速装置、３８…サスペンション装置、４０…駆動補助装置、４２…アジャスタブルシートポスト、１００…推定装置、１０２…入力部、１０４…演算処理部、１０６…記憶部、１０８…出力部、１１０…推定処理プログラム、１２０…学習モデル、２００…制御装置、２０２…制御部、２０４…記憶部、２０６…入力部、２０８…出力部、３００…サーバ装置、３０２…制御部、３０４…記憶部、３０６…入力部、３０８…通信部、Ｓ１…傾斜センサ、Ｓ２…荷重センサ、Ｓ３…姿勢センサ
【図１】
2020138700.tif 000003
【図２】
2020138700.tif 000004
【図３】
2020138700.tif 000005
【図４】
2020138700.tif 000006
【図５】
2020138700.tif 000007
【図６】
2020138700.tif 000008
【図７】
2020138700.tif 000009
【図８】
2020138700.tif 000010
【図９】
2020138700.tif 000011
【図１０】
2020138700.tif 000012
【図１１】
2020138700.tif 000013
【図１２】
2020138700.tif 000014