特許第6985217号(P6985217)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社シマノの特許一覧

特許6985217制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム
<>
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000002
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000003
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000004
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000005
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000006
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000007
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000008
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000009
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000010
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000011
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000012
  • 特許6985217-制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6985217
(24)【登録日】2021年11月29日
(45)【発行日】2021年12月22日
(54)【発明の名称】制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラム
(51)【国際特許分類】
   B62M 6/45 20100101AFI20211213BHJP
   G06N 20/00 20190101ALI20211213BHJP
   G05B 13/02 20060101ALI20211213BHJP
【FI】
   B62M6/45
   G06N20/00 130
   G05B13/02 L
【請求項の数】15
【全頁数】25
(21)【出願番号】特願2018-130244(P2018-130244)
(22)【出願日】2018年7月9日
(65)【公開番号】特開2020-6834(P2020-6834A)
(43)【公開日】2020年1月16日
【審査請求日】2020年8月31日
(73)【特許権者】
【識別番号】000002439
【氏名又は名称】株式会社シマノ
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】島津 速人
(72)【発明者】
【氏名】高山 仁志
(72)【発明者】
【氏名】謝花 聡
(72)【発明者】
【氏名】中島 岳彦
【審査官】 渡邊 義之
(56)【参考文献】
【文献】 米国特許第6047230(US,A)
【文献】 特開2007−272361(JP,A)
【文献】 特開2009−113717(JP,A)
【文献】 特開平5−203025(JP,A)
【文献】 特開平2−3756(JP,A)
【文献】 米国特許出願公開第2016/0288877(US,A1)
【文献】 特開平5−296323(JP,A)
【文献】 中国特許出願公開第106896723(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
B62M 1/00− 29/02
G06N 3/00− 3/12
G06N 7/08− 99/00
F16H 59/00− 61/12
F16H 61/16− 61/24
F16H 61/66− 61/70
F16H 63/40− 63/50
G05B 1/00− 7/04
G05B 11/00− 13/04
G05B 17/00− 17/02
G05B 21/00− 21/02
(57)【特許請求の範囲】
【請求項1】
人力駆動車の走行に関する入力情報を取得する取得部と、
前記取得部が取得した入力情報に基づいて前記人力駆動車のコンポーネントの制御に関する出力情報を出力する学習モデルを学習アルゴリズムによって作成する作成部と、
前記学習モデルから出力された出力情報を評価する評価部と
を備え、
前記作成部は、前記評価部の評価と、前記出力情報の出力に対応する入力情報と、前記出力情報とを含む教師データに基づいて前記学習モデルを更新する、制御データ作成装置。
【請求項2】
前記評価部は、前記学習モデルから出力された出力情報によるコンポーネントの制御がスムーズであったか否かを判断し、スムーズであった場合に評価を向上させる、請求項1に記載の制御データ作成装置。
【請求項3】
前記評価部は、前記制御の際の前記人力駆動車の駆動機構に掛かるトルクを検知し、前記トルクに応じてスムーズであったか否かを判断する、請求項2に記載の制御データ作成装置。
【請求項4】
前記評価部は、前記制御の際の前記人力駆動車の駆動機構に掛かるトルクを検知し、前記トルクの変動に応じてスムーズであったか否かを判断する、請求項2に記載の制御データ作成装置。
【請求項5】
前記評価部は、前記制御の際の前記人力駆動車の姿勢を検知し、前記人力駆動車の姿勢に応じてスムーズであったか否かを判断する、請求項2に記載の制御データ作成装置。
【請求項6】
前記評価部は、前記制御の際の前記人力駆動車の振動を検知し、前記振動に応じてスムーズであったか否かを判断する、請求項2に記載の制御データ作成装置。
【請求項7】
前記評価部は、前記制御の際の前記人力駆動車のチェーンテンションを測定し、前記チェーンテンションに応じてスムーズであったか否かを判断する、請求項2に記載の制御データ作成装置。
【請求項8】
前記評価部は、前記制御の際の前記人力駆動車のユーザの姿勢を検知し、前記ユーザの姿勢に応じてスムーズであったか否かを判断する、請求項2に記載の制御データ作成装置。
【請求項9】
前記作成部は、前記評価部の評価の度合いが高い、または低いほど、大きい重みを付与して前記学習モデルを更新する、請求項1〜8のいずれか一項に記載の制御データ作成装置。
【請求項10】
前記出力情報に関する指定操作を受け付ける操作部を備え、
前記取得部は、時系列に複数の入力情報を逐次一時記憶する記憶部を備え、
前記作成部は、前記操作部にて指定操作を受け付けた場合、前記指定操作が行われたタイミングの前後に取得された複数の入力情報を入力データとし、前記入力データと前記操作部での操作内容とにより前記学習モデルを更新する、請求項1〜9のいずれか一項に記載の制御データ作成装置。
【請求項11】
人力駆動車の走行に関する入力情報を入力として、前記人力駆動車のコンポーネントの制御に関する出力情報を出力するべく学習アルゴリズムにより作成された学習モデルと、
前記入力情報を取得する取得部と、
前記取得部が取得した入力情報を前記学習モデルに入力することにより出力される出力情報に基づき前記コンポーネントを制御する制御部と、
前記制御部による制御内容を評価する評価部と、
を備え、
前記制御部は、前記評価部の評価と、前記評価に対応する入力情報と、評価対象の制御内容とを含む教師データに基づいて前記学習モデルを更新する、コンポーネント制御装置。
【請求項12】
前記評価部は、前記制御部による制御内容の評価を受け付ける評価受付部を備え、
前記評価受付部により評価を受け付けた場合、前記評価が受け付けられたタイミングの前後に取得された複数の入力情報と、前記制御内容と、前記評価受付部で受け付けた評価とを含む教師データに基づいて前記学習モデルを更新する、請求項11に記載のコンポーネント制御装置。
【請求項13】
人力駆動車の走行に関する入力情報を取得し、
取得した入力情報を入力として、前記人力駆動車のコンポーネントの制御に関する出力情報を出力する学習モデルを学習アルゴリズムによって作成し、
前記学習モデルから出力された出力情報を評価し、
評価と、前記出力情報の出力に対応する入力情報と、評価対象の出力情報とを含む教師データに基づいて前記学習モデルを更新する制御データ作成方法。
【請求項14】
人力駆動車の走行に関する入力情報を取得し、
前記入力情報を入力として、前記人力駆動車のコンポーネントの制御に関する出力情報を出力するべく学習アルゴリズムにより作成された学習モデルに、取得された入力情報を入力することにより出力される出力情報を特定し、
特定した出力情報に基づき前記コンポーネントを制御し、
制御内容を評価し、
評価と、前記評価に対応する入力情報と、評価対象の制御内容とを含む教師データに基づいて前記学習モデルを更新する、コンポーネント制御方法。
【請求項15】
人力駆動車の走行に関する入力情報を取得し、
取得した入力情報を入力として、前記人力駆動車のコンポーネントの制御に関する出力情報を出力する学習モデルを学習アルゴリズムによって作成し、
前記学習モデルから出力された出力情報を評価し、
評価と、前記出力情報の出力に対応する入力情報と、評価対象の出力情報とを含む教師データに基づいて前記学習モデルを更新する
処理を、コンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、人力駆動車のコンポーネントの制御に関するデータの制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラムに関する。
【背景技術】
【0002】
自転車をはじめとして電動アシスト付き自転車、Eバイクと呼ばれる電動自転車等、少なくとも部分的に人力が用いられる人力駆動車がある。人力駆動車は、複数の段数を持つ変速機を備え、乗り手の変速操作に応じて段数が切り替えられる。速度センサ、ケイデンスセンサ、チェーンテンションセンサ等のセンサを用い、センサからの出力に対して種々の演算を行なって自動的に変速制御する自動変速制御システムが従来提案されている(特許文献1等)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許第6047230号明細書
【発明の概要】
【発明が解決しようとする課題】
【0004】
自動変速制御の目指すものは、乗り手の意図に合った変速である。特許文献1等に開示されている変速機を含むコンポーネントの自動制御は、人力駆動車に設けられた速度センサ、トルクセンサ等の各種センサから得られる数値が所定の閾値より大きいか否かの判断の組み合わせにより実現されてきた。しかしながら、閾値による判断では目指す自動制御の実現には不足であった。
【0005】
本発明の目的は、乗り手に違和感を生じさせにくいコンポーネントの自動制御を実現する情報の制御データ作成装置、コンポーネント制御装置、制御データ作成方法、コンポーネント制御方法、およびコンピュータプログラムを提供することである。
【課題を解決するための手段】
【0006】
(1)本発明の第1側面に従う制御データ作成装置は、人力駆動車の走行に関する入力情報を取得する取得部と、前記取得部が取得した入力情報に基づいて前記人力駆動車のコンポーネントの制御に関する出力情報を出力する、学習モデルを学習アルゴリズムによって作成する作成部と、前記学習モデルから出力された出力情報を評価する評価部とを備え、前記作成部は、前記評価部の評価と、前記出力情報の出力に対応する入力情報と、前記出力情報とを含む教師データに基づいて前記学習モデルを更新する。
このため、走行に関する測定値を含む多数の入力情報に基づき、閾値では判定しきれない状況に応じたコンポーネント制御をより最適化させることができ、乗り手に違和感を生じさせにくい制御が実現できる。
【0007】
(2)本発明の第2側面に従う制御データ作成装置は、上記第1側面の制御データ作成装置において、前記評価部は、前記学習モデルから出力された出力情報によるコンポーネントの制御がスムーズであったか否かを判断し、スムーズであった場合に評価を向上させる。
このため、スムーズとなるようにコンポーネント制御が最適化され、乗り手に違和感を生じさせにくい制御が実現できる。
【0008】
(3)本発明の第3側面に従う制御データ作成装置は、上記第2側面の制御データ作成装置において、前記評価部は、前記制御の際の前記人力駆動車の駆動機構に掛かるトルクを検知し、前記トルクに応じてスムーズであったか否かを判断する。
このため、乗り手に違和感を生じさせにくい制御が実現できる。
【0009】
(4)本発明の第4側面に従う制御データ作成装置は、上記第2側面の制御データ作成装置において、前記評価部は、前記制御の際の前記人力駆動車の駆動機構に掛かるトルクを検知し、前記トルクの変動に応じてスムーズであったか否かを判断する。
このため、乗り手に違和感を生じさせにくい制御が実現できる。
【0010】
(5)本発明の第5側面に従う制御データ作成装置は、上記第2側面の制御データ作成装置において、前記評価部は、前記制御の際の前記人力駆動車の姿勢を検知し、前記人力駆動車の姿勢に応じてスムーズであったか否かを判断する。
このため、乗り手に違和感を生じさせにくい制御が実現できる。
【0011】
(6)本発明の第6側面に従う制御データ作成装置は、上記第2側面の制御データ作成装置において、前記評価部は、前記制御の際の前記人力駆動車の振動を検知し、前記振動に応じてスムーズであったか否かを判断する。
このため、乗り手に違和感を生じさせにくい制御が実現できる。
【0012】
(7)本発明の第7側面に従う制御データ作成装置は、上記第2側面の制御データ作成装置において、前記評価部は、前記制御の際の前記人力駆動車のチェーンテンションを測定し、前記チェーンテンションに応じてスムーズであったか否かを判断する。
このため、乗り手に違和感を生じさせにくい制御が実現できる。
【0013】
(8)本発明の第8側面に従う制御データ作成装置は、上記第2側面の制御データ作成装置において、前記評価部は、前記制御の際の前記人力駆動車のユーザの姿勢を検知し、前記ユーザの姿勢に応じてスムーズであったか否かを判断する。
このため、乗り手に違和感を生じさせにくい制御が実現できる。
【0014】
(9)本発明の第9側面に従う制御データ作成装置は、上記第1側面〜第8側面のいずれか一つの制御データ作成装置において、前記作成部は、前記評価部の評価の度合いが高い、または低いほど、大きい重みを付与して前記学習モデルを更新する。
このため、乗り手に違和感を生じさせにくい制御が実現できる。
【0015】
(10)本発明の第10側面に従う制御データ作成装置は、上記第1側面〜第9側面のいずれか一つの制御データ作成装置において、前記出力情報に関する指定操作を受け付ける操作部を備え、前記取得部は、時系列に複数の入力情報を逐次一時記憶する記憶部を備え、前記作成部は、前記操作部にて指定操作を受け付けた場合、前記指定操作が行われたタイミングの前後に取得された複数の入力情報を入力データとし、前記入力データと前記操作部での操作内容とにより前記学習モデルを更新する。
このため、乗り手の操作に適合した自動制御が実現できる。
【0016】
(11)本発明の第11側面に従うコンポーネント制御装置は、人力駆動車の走行に関する入力情報を入力として、前記人力駆動車のコンポーネントの制御に関する出力情報を出力するべく学習アルゴリズムにより作成された学習モデルと、前記入力情報を取得する取得部と、前記取得部が取得した入力情報を前記学習モデルに入力することにより出力される出力情報に基づき前記コンポーネントを制御する制御部と、前記制御部による制御内容を評価する評価部と、前記評価部の評価と、前記評価に対応する入力情報と、評価対象の制御内容とを含む教師データに基づいて前記学習モデルを更新する。
このため、走行に関する測定値を含む多数の入力情報に基づき、閾値では判定しきれない状況に応じたコンポーネント制御をより最適化させることができ、乗り手に違和感を生じさせにくい制御が実現できる。
【0017】
(12)本発明の第12側面に従うコンポーネント制御装置は、前記評価部は、前記制御部による制御内容の評価を受け付ける評価受付部を備え、前記評価受付部により評価を受け付けた場合、前記評価が受け付けられたタイミングの前後に取得された複数の入力情報と、前記制御内容と、前記評価受付部で受け付けた評価とを含む教師データに基づいて前記学習モデルを更新する。
このため、乗り手の嗜好に適合した自動制御が実現できる。
【0018】
(13)本発明の第13側面に従う制御データ作成方法は、人力駆動車の走行に関する入力情報を取得し、取得した入力情報を入力として、前記人力駆動車のコンポーネントの制御に関する出力情報を出力する学習モデルを学習アルゴリズムによって作成し、前記学習モデルから出力された出力情報を評価し、評価と、前記出力情報の出力に対応する入力情報と、評価対象の出力情報とを含む教師データに基づいて前記学習モデルを更新する。
このため、走行に関する測定値を含む多数の入力情報に基づき、閾値では判定しきれない状況に応じたコンポーネント制御をより最適化させることができ、乗り手に違和感を生じさせにくい制御が実現できる。
【0019】
(14)本発明の第14側面に従うコンポーネント制御方法は、人力駆動車の走行に関する入力情報を取得し、前記入力情報を入力として、前記人力駆動車のコンポーネントの制御に関する出力情報を出力するべく学習アルゴリズムにより作成された学習モデルに、取得された入力情報を入力することにより出力される出力情報を特定し、特定した出力情報に基づき前記コンポーネントを制御し、制御内容を評価し、評価と、前記評価に対応する入力情報と、評価対象の制御内容とを含む教師データに基づいて前記学習モデルを更新する。
このため、走行に関する測定値を含む多数の入力情報に基づき、閾値では判定しきれない状況に応じたコンポーネント制御をより最適化させることができ、乗り手に違和感を生じさせにくい制御が実現できる。
【0020】
(15)本発明の第15側面に従うコンピュータプログラムは、人力駆動車の走行に関する入力情報を取得し、取得した入力情報を入力として、前記人力駆動車のコンポーネントの制御に関する出力情報を出力する学習モデルを学習アルゴリズムによって作成し、前記学習モデルから出力された出力情報を評価し、評価と、前記出力情報の出力に対応する入力情報と、評価対象の出力情報とを含む教師データに基づいて前記学習モデルを更新する処理を、コンピュータに実行させる。
このため、走行に関する測定値を含む多数の入力情報に基づき、閾値では判定しきれない状況に応じたコンポーネント制御をより最適化させることができ、乗り手に違和感を生じさせにくい制御が実現できる。
【発明の効果】
【0021】
本発明に関する人力駆動車のコンポーネントに関する制御データの制御データ作成装置、コンポーネント制御装置、作成方法、コンポーネント制御方法、およびコンピュータプログラムによれば、乗り手に違和感を生じさせにくいコンポーネントの自動制御が実現される。
【図面の簡単な説明】
【0022】
図1】第1実施形態−第3実施形態の制御データ作成装置またはコンポーネント制御装置が適用される自転車の側面図である。
図2】制御ユニットの内部構成を示すブロック図である。
図3】作成される学習モデルの一例を示す図である。
図4】制御部の処理手順の一例を示すフローチャートである。
図5】制御部による評価処理手順の一例を示すフローチャートである。
図6】第2実施形態における制御ユニットの内部構成を示すブロック図である。
図7】第2実施形態における制御ユニットの処理手順の一例を示すフローチャートである。
図8】第2実施形態における制御ユニットの処理手順の一例を示すフローチャートである。
図9】制御システムの構成を示すブロック図である。
図10】アプリプログラムに基づいて表示される画面例を示す図である。
図11】アプリプログラムに基づいて表示される画面例を示す図である。
図12】第3実施形態における制御部の処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0023】
以下の各実施形態に関する説明は、本発明に関する制御データ作成装置、およびコンポーネント制御装置が取り得る形態の例示であり、その形態を制限することを意図していない。本発明に関する制御データ作成装置、コンポーネント制御装置、作成方法、コンポーネント制御方法、コンピュータプログラム、および学習モデルは、各実施形態の変形例、および、相互に矛盾しない少なくとも2つの変形例が組み合わせられた形態等のように各実施形態とは異なる形態を取り得る。
【0024】
以下の各実施形態に関する説明において、前、後、前方、後方、左、右、横、上、および、下等の方向を表す言葉は、ユーザが人力駆動車のサドルに着座した状態における方向を基準として用いられる。
【0025】
(第1実施形態)
図1は、第1実施形態の制御データ作成装置1が適用される人力駆動車Aの側面図である。人力駆動車Aは、電気エネルギーを用いて人力駆動車Aの推進をアシストするアシスト機構Cを含むロードバイクである。人力駆動車Aの構成は、任意に変更可能である。第1例では、人力駆動車Aはアシスト機構Cを含まない。第2例では、人力駆動車Aの種類は、シティサイクル、マウンテンバイク、または、クロスバイクである。第3例では、人力駆動車Aは、第1例および第2例の特徴を含む。
【0026】
人力駆動車Aは、本体A1、ハンドルバーA2、前輪A3、後輪A4、フロントフォークA5、サドルA6、ディレーラハンガーA7を備える。人力駆動車Aは、駆動機構B、アシスト機構C、操作装置D、変速機E、電動シートポストF、電動サスペンションG、バッテリユニットH、および制御ユニット100を備える。人力駆動車Aは、速度センサS1、ケイデンスセンサS2、トルクセンサS3、ジャイロセンサS4、画像センサS5、姿勢センサS61,S62,S63を含む。本体A1は、フレームA12を備える。
【0027】
駆動機構Bは、チェーンドライブ、ベルトドライブ、または、シャフトドライブによって人力駆動力を後輪A4へ伝達する。図1ではチェーンドライブの駆動機構Bを例示している。駆動機構Bは、クランクB1、第1スプロケット組立体B2、第2スプロケット組立体B3、チェーンB4、および、一対のペダルB5を含む。
【0028】
クランクB1は、クランク軸B11、右クランクB12、および左クランクB13を含む。クランク軸B11は、フレームA12に設けられるアシスト機構Cに回転可能に支持される。右クランクB12および左クランクB13は、それぞれクランク軸B11に連結される。一対のペダルB5の一方は右クランクB12に回転可能に支持される。一対のペダルB5の他方は左クランクB13に回転可能に支持される。
【0029】
第1スプロケット組立体B2は、第1回転中心軸心を有し、クランク軸B11と一体回転可能に連結される。第1スプロケット組立体B2は、1または複数のスプロケットB22を含む。クランク軸B11の回転中心軸心と第1スプロケット組立体B2の回転中心軸心は同軸である。一例では、第1スプロケット組立体B2は、外径が異なる複数のスプロケットB22を含む。一例では、複数のスプロケットB22の外径は、本体A1から外側へ遠ざかる程に大きく、段数は大きい。
【0030】
第2スプロケット組立体B3は、第2回転中心軸心を有し、後輪A4のハブ(図示略)に回転可能に支持される。第2スプロケット組立体B3は、1または複数のスプロケットB31を含む。一例では、第2スプロケット組立体B3は、外径が異なる複数のスプロケットB31を含む。一例では、複数のスプロケットB31の外径は、後輪A4から外側へ遠ざかる程に小さく、段数は大きい。
【0031】
チェーンB4は、第1スプロケット組立体B2のいずれかのスプロケットB22および第2スプロケット組立体B3のいずれかのスプロケットB31に巻き掛けられる。一対のペダルB5に加えられる人力駆動力によってクランクB1が前転すると、第1スプロケット組立体B2がクランクB1とともに前転し、第1スプロケット組立体B2の回転がチェーンB4を介して第2スプロケット組立体B3に伝達されることで後輪A4が前転する。
【0032】
アシスト機構Cは、電動アクチュエータC1を含む。アシスト機構Cは、人力駆動車Aの推進をアシストする。一例では、アシスト機構Cは、第1スプロケット組立体B2にトルクを伝達することによって人力駆動車Aの推進をアシストする。電動アクチュエータC1は例えば、電気モータを含む。電動アクチュエータC1は、減速機を含んでいてもよい。電動アクチュエータC1は、人力駆動車Aの後輪A4に駆動力を伝達するチェーンB4を走行させる。アシスト機構Cは、チェーンB4の走行をアシストするための信号制御によって制御可能なコンポーネントの一部である。
【0033】
操作装置Dは、ユーザが操作する操作部D1を含む。操作部D1の一例は、1または複数のボタンである。操作部D1の他の例は、ブレーキレバーである。左右のハンドルに設けられているブレーキレバーを左右に倒す都度に、変速機Eにおける変速段数または変速比を変更することができる。そのほかに操作装置Dは操作部D1にて、アシスト機構Cのモード(省エネルギーモード、ハイパワーモード等)の切り替え、電動シートポストFの動作切り替え、電動サスペンションGの動作切り替え等、各種コンポーネントの制御について指示操作を受け付ける。操作装置Dは、操作部D1の操作に応じた信号を変速機Eまたは他のコンポーネントへ送信できるように、各コンポーネントと通信接続される。第1例では、操作装置Dは、通信線、または、PLC(Power Line Communication)が可能な電線によって変速機Eと通信接続される。第2例では、操作装置Dは、無線通信が可能な無線通信ユニットによって変速機Eおよび他のコンポーネントと通信接続される。操作部D1が操作された場合、第1例では変速機Eの変速段を変更するための制御信号が変速機Eに送信され、その信号に応じて変速機Eが動作することによって変速段数が変更される。制御信号は例えば、内側のスプロケットB31への変更を指示するINWARD信号と、外側へのスプロケットB31への変更を指示するOUTWARD信号である。信号は、変更するスプロケットB31の段数を含んでもよい。一度に2段以上変更することも可能である。
【0034】
変速機Eは種々の形態を取り得る。第1例では、変速機Eは、第2スプロケット組立体B3とチェーンB4との連結の状態を変速する外装変速機である。具体的には、変速機Eは、チェーンB4と連結するスプロケットB31を変更することで、クランクB1の回転数に対する後輪A4の回転数の比率、すなわち、人力駆動車Aの変速比を変更する。変速機Eは、選択された変速段に応じてチェーンB4を移動させる電動アクチュエータE1を動作させることによって変速比を変更する。具体的に変速機Eは、第1例の変速機Eは、人力駆動車AのディレーラハンガーA7に取り付けられる。第2例では、変速機Eは、第1スプロケット組立体B2とチェーンB4との連結の状態を変速する外装変速機である。具体的には、変速機Eは、チェーンB4と連結するスプロケットB22を変更することで、クランクB1の回転数に対する後輪A4の回転数の比率、すなわち、人力駆動車Aの変速比を変更する。第3例では、変速機Eは、内装変速機である。第3例では、変速機Eの可動部は、内装変速機のスリーブおよび爪の少なくとも一方を含む。第4例では、変速機Eは、無段変速機である。第4例では、変速機Eの可動部は、無段変速機のボールプラネタリー(遊星転動体)を含む。変速機Eは、変速段数を変更するための信号制御によって制御可能なコンポーネントの一部である。
【0035】
電動シートポストFは、フレームA12に取り付けられる。電動シートポストFは、電動アクチュエータF1を含む。電動アクチュエータF1は、サドルA6をフレームA12に対して上昇および下降させる。電動アクチュエータF1は、例えば、電動モータである。電動シートポストFは、動作パラメータとして、フレームA12に対するサドルA6の支持位置を設定することで制御することが可能なコンポーネントの一部である。サドルA6の支持位置は、1または複数である。
【0036】
電動サスペンションGは種々の形態を取り得る。本実施形態1では、電動サスペンションGは、フロントフォークA5に設けられ、前輪A3に加えられた衝撃を減衰するフロントサスペンションである。電動サスペンションGは、電動アクチュエータG1を含む。電動アクチュエータG1は例えば電動モータである。電動サスペンションGは、動作パラメータとして、減衰率、ストローク量、およびロックアウト状態を設定することで制御することが可能なコンポーネントの一部である。電動サスペンションGは、電動アクチュエータG1を駆動させることで、動作パラメータを変更することができる。電動サスペンションGは、後輪A4に加えられた衝撃を減衰するリアサスペンションであってもよい。
【0037】
バッテリユニットHは、バッテリH1およびバッテリホルダH2を含む。バッテリH1は、1または複数のバッテリセルを含む蓄電池である。バッテリホルダH2は、人力駆動車AのフレームA12に固定される。バッテリH1は、バッテリホルダH2に着脱可能である。バッテリH1は、バッテリホルダH2に取り付けられた場合に少なくとも変速機Eの電動アクチュエータE1、アシスト機構Cの電動アクチュエータC1、および制御ユニット100に電気的に接続される。バッテリH1は、電動シートポストFの電動アクチュエータF1、電動サスペンションGの電動アクチュエータG1それぞれにも電気的に接続されてもよい。
【0038】
速度センサS1は、フレームA12に固定される。速度センサS1は、人力駆動車Aの走行、速度を示す信号を出力するセンサである。速度センサS1は例えば、マグネットが前輪A3に設けられたマグネットと、フロントフォークA5に設けられてマグネットを検知する本体とを含み、回転速度を計測する。
【0039】
ケイデンスセンサS2は、右クランクB12および左クランクB13のいずれかのケイデンスを測定するように設けられる。ケイデンスセンサS2は、測定したケイデンスを示す信号を出力する。トルクセンサS3は、右クランクB12および左クランクB13に掛かるトルクをそれぞれ測定するように設けられる。トルクセンサS3は、右クランクB12および左クランクB13の少なくとも一方において測定されたトルクを示す信号を出力する。
【0040】
ジャイロセンサS4はフレームA12に固定される。ジャイロセンサS4は、人力駆動車Aのヨー、ロール、およびピッチを示す信号をそれぞれ出力するセンサである。ジャイロセンサS4は、三軸全てではなく少なくともいずれか1つを出力するものであってよい。
【0041】
画像センサS5は、フレームA12に前方を向けて設けられる。第1例では、フロントフォークA5にライトと共に前方に向けて設けられる。第2例では、ハンドルバーA2に設けられる。画像センサS5は、カメラモジュールを用いてユーザの視界に対応する映像を出力する。画像センサS5は、進行方向に存在する物を撮影した映像信号を出力する。画像センサS5は、映像から道路、建物、他の走行車両を区別して認識処理する画像認識部と一体化され、認識結果を出力するモジュールであってもよい。
【0042】
姿勢センサS61,S62,S63は例えば圧電センサである。姿勢センサS61,S62,S63は、人力駆動車Aの内、ユーザの体重が掛かる部分に設けられる。例えば姿勢センサS61は、両ハンドルにそれぞれ設けられる。姿勢センサS62は、サドルA6の表面に沿って1または複数の箇所に設けられる。姿勢センサS63は、クランクB1の一対のペダルB5のそれぞれに設けられる。姿勢センサS61,S62,S63は、掛けられる重量に応じた信号を出力する。姿勢センサS61,S62,S63に代替して、または加えて、ユーザの姿勢を検知するために、ヘルメットにジャイロセンサを設けてもよい。
【0043】
振動センサS7は、変速機Eの近傍に設けられる。振動センサS7は例えば、第2スプロケット組立体B3に設けられる。振動センサS7は、変速段数または変速比を変更するときの本体A1の振動、第2スプロケット組立体B3の振動、チェーンB4、および変速機E自体の振動の内の少なくとも1つを直接的または間接的に検知する。振動検知は種々の形態をとり得る。第1例では、空気の振動を検知するセンサを含む。具体的には、振動センサS7はマイクロフォンを含み、集音した音声信号を出力する。この場合、振動センサS7は、変速機Eが取り付けられる本体A1の振動、第2スプロケット組立体B3の振動、第2スプロケット組立体B3に巻きかけられるチェーンB4の振動、および、変速機Eの振動のうちの少なくとも1つを、空気を介して間接的に検知する。第2例では、振動センサS7は加速度センサ、またはジャイロセンサであり、振動を直接的に検知して振動を示す信号を出力する。振動センサS7は、マイクロフォン、加速度センサ、またはジャイロセンサの内いずれか少なくとも1つを含み、全て含んでもよい。
【0044】
テンションセンサS8は、チェーンB4に掛かるテンションを検知する。第1例では、本体A1のボトムブラケットハンガーのクランク軸B11が取り付けられる箇所に設けられる歪みセンサを用いる。歪みセンサからの出力により、クランク軸B11における軸受に発生しているチェーンテンションの反力を測定することができる。テンションセンサS8は、第1スプロケット組立体B2のチェーンB4が巻き掛けられるスプロケットB22に設けられて直接的にテンションを測定してもよい。
【0045】
図2は、制御ユニット100の内部構成を示すブロック図である。制御ユニット100は、制御部10、記憶部12、入出力部14を含む。制御ユニット100は、フレームA12のいずれかの箇所に設置されている。第1例では図1に示したように、第1スプロケット組立体B2とフレームA12との間に設けられる。第2例では、バッテリホルダH2に設けられる。
【0046】
制御部10は、CPU(Central Processing Unit )またはGPU(Graphics Processing Unit)を用いたプロセッサであり、内蔵するROM(Read Only Memory)およびRAM(Random Access Memory)等のメモリを用い、後述する学習アルゴリズムおよび人力駆動車Aに設けられるコンポーネントを制御して処理を実行する。制御部10は、内蔵クロックを用いて任意のタイミングで時間情報を取得する。
【0047】
記憶部12は、例えばフラッシュメモリ等の不揮発性メモリを含む。記憶部12は、制御プログラム1Pを記憶する。記憶部12は、制御部10の処理によって作成される学習モデル1Mを記憶する。制御プログラム1Pは、記録媒体18に記憶された制御プログラム8Pを読み出して記憶部12に複製されたものであってもよい。
【0048】
入出力部14は、人力駆動車Aに設けられたセンサ群S1−S5,S61−S63,S7,S8、操作装置D、制御対象の電動アクチュエータE1に少なくとも接続される。入出力部14は、制御対象の電動アクチュエータF1,G1にも接続される。制御部10は入出力部14によって、速度センサS1またはケイデンスセンサS2のいずれか一方から、速度を示す信号またはケイデンスを示す信号を入力する。制御部10は、ジャイロセンサS4から、人力駆動車Aの姿勢、具体的にはヨー、ロール、またはピッチを示す信号を入力する。制御部10は、姿勢センサS61,S62,S63からユーザの姿勢を示す信号、具体的には体重分布を示す信号を入力する。制御部10は、これらのセンサ群S1−S5,S61−S63,S7,S8から得られる情報を入力情報として処理する。制御部10は入出力部14によって、操作装置Dからの信号を入力する。図2のブロック図では、入出力部14は、電動アクチュエータF1、および電動アクチュエータG1に接続されるが、制御対象としない場合は接続しなくてよい。
【0049】
制御ユニット100は、制御プログラム1Pに基づき、入出力部14によって取得した入力情報を学習モデル1Mに入力することにより学習モデル1Mから出力される出力情報に基づいて変速機Eを含むコンポーネントを制御する制御部として機能する。制御ユニット100は、制御プログラム1Pに基づき、学習モデル1Mを更新する作成部として機能する。制御ユニット100は「制御データ作成装置」および「コンポーネント制御装置」に相当する。
【0050】
図3は、作成される学習モデル1Mの一例を示す図である。学習モデル1Mは、センサ群S1−S5,S61−S63で得られる複数の入力情報を入力する入力層131と、制御データを出力する出力層132とを含むニューラルネットワーク13から作成される。学習アルゴリズムは教師なしの学習アルゴリズムでもよいし、リカレントニューラルネットワーク(Recurrent Neural Network)でもよい。学習アルゴリズムは強化学習でもよい。学習モデル1Mは、入力層131および出力層132の中間に位置する1または複数の層からなるノード群を含む中間層133を含む。図3に示すように出力層132とつながる中間層133は、多数のノードを出力層132のノード数に集約させる結合層である。出力層132のノード数は、図3の例では3つであるが、3つに限らず1つであってもよい。出力層132のノード数は、制御対象のコンポーネントの制御データの種別数に応じた数であってもよい。中間層133のノードはそれぞれ、前段の層のノードとの関係において重みおよびバイアスの少なくとも一方を含むパラメータを持つ。制御部10は、制御プログラム1Pに基づき、入力情報に対応する実際の制御データを、その入力情報にラベル付けすることにより教師データを作成する。制御部10が作成された教師データを入力層131に入力することによって、中間層133における各パラメータが学習される。
【0051】
図3を参照して学習モデル1Mを具体的に説明する。具体例では、変速機Eにおける変速段数または変速比の制御に関する出力情報を出力する学習モデル1Mが説明される。入力層131には、図3に示すように速度センサS1から得られる走行速度に関する情報が入力される。走行速度は例えば時速である。走行速度は、前輪A3または後輪A4の単位時間当たりの回転数でもよい。入力層131には、ケイデンスセンサS2から得られるケイデンスが入力される。入力層131には少なくとも、走行速度およびケイデンスの一方が入力される。入力層131には、トルクセンサS3から得られるトルクが入力されてもよい。入力層131には、トルクおよびケイデンスを用いた演算により得られるパワーが入力されもよい。
【0052】
入力層131には、ジャイロセンサS4から得られる人力駆動車Aの姿勢の検知データが入力される。検知データは、人力駆動車Aの傾きを示す情報である。傾きは、鉛直方向を軸とするヨー成分、人力駆動車Aの前後方向を軸とするロール成分、および左右方向を軸とするピッチ成分それぞれで表される。
【0053】
入力層131には、画像センサS5から得られる映像信号を入力される。画像センサS5から得られる映像信号は、ユーザの視界に対応する映像信号であり、すなわち走行環境を検知したデータである。入力される映像信号は、第1例では、連続する複数のフレーム画像1つずつである。入力される映像信号は、第2例では、フレーム画像を各種フィルタ処理して得られた複数のデータである。入力される映像信号は、第3例では、画像センサS5からの映像に基づいて画像認識部によって認識された進行方向に存在する物の種別を示す情報である。進行方向に存在する物との間の距離を含んでもよい。この距離は、画像認識部にて画像処理によって求められた距離でもよく、人力駆動車Aにレーダを設けてレーダから得られるデータでもよい。
【0054】
走行環境の検知データの他の例は、時刻データ、気象データ、照度データ、または湿度データである。時刻データは例えば、制御部10の内蔵タイマによる時刻である。気象データは例えば、外部の気象データを扱うサーバから取得できる走行中の場所における局所的雨量、湿度、風速、および風向のうち少なくとも1つである。湿度データは、人力駆動車Aの本体A1に設けられた湿度センサから得てもよい。照度データは、人力駆動車Aの本体A1のいずれかの箇所、たとえばハンドルバーA2に照度センサを設けることで得られる。
【0055】
入力層131には、姿勢センサS61,S62,S63から得られるユーザの姿勢の検知データが入力される。検知データは例えば体重分布データである。本実施形態の姿勢センサS61,S62,S63は圧電センサである。入力層131には第1例では、姿勢センサS61,S62,S63から出力される信号が入力される。第2例では、制御部10は所定の演算によって基本姿勢、前傾姿勢、またはダンシングのいずれかを判別し、入力層131には判別結果が入力される。
【0056】
入力層131には、振動センサS7から得られる振動、またはテンションセンサS8から得られるチェーンB4のテンションが入力されてもよい。
【0057】
入力層131には、センサ群S1−S5,S61−S63,S7,S8から入力できる情報全てが入力されなくてもよい。入力層131には、センサ群S1−S5,S61−S63,S7,S8から入力できる情報のうちのいずれか1つ又は複数の組み合わせが入力されてもよい。図3中の破線で示すように入力情報はグループ分けされ、それぞれのグループ毎に異なるニューラルネットワーク13に入力されてもよい。この場合、グループ毎に制御に関する出力情報が出力される。
【0058】
出力層132は、変速機Eにおける変速段数または変速比がいずれであるかの判別結果を出力する。具体的には、出力層132は変速段数または変速比のノード夫々に対応する確率を出力する。それにより制御部10は、最も確率が高い変速段数を選択することができる。
【0059】
制御部10は平均的な運転、またはシミュレーションに基づいて、人力駆動車Aの走行に関する入力情報を入力層131への入力として、人力駆動車Aのコンポーネント、例えば変速機Eの制御に関する出力情報を出力する学習モデル1Mを深層学習の学習アルゴリズムによって作成しておく。作成された学習モデル1Mは記憶部12に記憶される。記憶部12に記憶される学習モデル1Mは、人力駆動車Aのユーザの実際の運転動作中に、以下のような処理によって、出力情報に対する評価と、その出力情報の出力に対応する入力情報と、出力情報とを含む教師データに基づいて更新される。
【0060】
図4は、制御部10の処理手順の一例を示すフローチャートである。制御部10は、図4のフローチャートに示す処理手順を繰り返し実行する。制御部10は、例えば所定のコントロール周期(例えば30ミリ秒)で繰り返し実行する。
【0061】
制御部10は、入出力部14によって人力駆動車Aの走行に関する入力情報を取得する(ステップS101)。ステップS101にて制御部10は「取得部」である。ステップS101において制御部10は、入出力部14によって入力されるセンサ群S1−S5、S61−S63からの信号レベルをコントロール周期毎に参照し、制御部10の内部メモリまたは入出力部14が内蔵するメモリに一時記憶する。
【0062】
制御部10は、ステップS101で取得した入力情報を学習モデル1Mの入力層131に入力する(ステップS103)。
【0063】
制御部10は、ステップS103の入力情報の入力によって学習モデル1Mから出力される制御対象のコンポーネントの制御に関する出力情報を特定する(ステップS105)。制御部10はステップS105において例えば、変速機Eの変速段数または変速比の判別結果を出力情報として特定する。
【0064】
制御部10は、特定された出力情報に基づく制御対象の状態を参照する(ステップS107)。制御部10は、特定された出力情報が示す制御内容と、参照した状態との間の関係に基づき、制御信号の出力が必要であるか否かを判断する(ステップS109)。
【0065】
ステップS109で必要であると判断された場合(S109:YES)、制御部10は特定された制御に関する出力情報に基づく制御信号を制御対象へ出力する(ステップS111)。ステップS109で不要であると判断された場合(S109:NO)、制御部10は、ステップS111を省略して次の処理へ進める。ステップS107の参照およびステップS109の判断処理は必須ではない。この場合、制御部10はステップS105において例えば、変速機Eの変速段数または変速比の判別結果を出力情報として特定し、制御部10は特定された出力情報に基づく制御対象の状態を参照することなく、制御部10は特定された制御に関する出力情報に基づく制御信号を制御信号を出力してもよい(S111)。
【0066】
制御部10は、ステップS111の処理後の所定時間内で、ステップS105にて特定した学習モデルから出力された出力情報を評価する(ステップS113)。ステップS113において制御部10は「評価部」である。制御部10はステップS113において、学習モデル1Mから出力された出力情報によるコンポーネント、例えば変速機Eの制御がスムーズであったか否かに基づき評価する。ステップS113の評価処理は後述する。
【0067】
制御部10は、ステップS105で学習モデル1Mから出力された出力情報を、ステップS113で取得した入力情報にラベル付けすることによって教師データを作成する(ステップS115)。制御部10は、教師データにステップS113で得られる評価結果を報酬として付与し(ステップS117)、報酬と共にステップS115で作成した教師データを学習モデル1Mへ与えてこれを更新し(ステップS119)、処理を終了する。ステップS117において制御部20は、評価の度合いが高い、または低いほど、大きい重みを付与してもよい。例えば制御部20は、高評価であるほどに大きい重み付きの報酬を示す指標値を付与する。また、例えば制御部20は、低評価であるほどに大きい重み付きの罰則を示す指標値を付与する。制御部20は、報酬を示す指標値のみを付与してもよく、罰則を示す指標値のみを付与してもよい。
【0068】
図5は、制御部10による評価処理手順の一例を示すフローチャートである。制御部10は、入出力部14によって人力駆動車Aの変速機Eを含むコンポーネントの制御の際の駆動機構Bに掛かるトルクをトルクセンサS3によって検知する(ステップS201)。制御部10は、検知したトルクに基づいて報酬に対応する第1の指標値(例えばQ学習におけるQ値)を算出する(ステップS203)。ステップS203にて制御部10は、トルクに応じてスムーズであったか否かを判断し、判断に応じて評価する。トルクが極端に大きい場合、制御の結果ユーザが力を掛けて運転していると推測される。この場合制御部10は、制御がスムーズでなかったと判断できる。制御部10は、トルクが小さい程に制御がスムーズであったと判断し、報酬の評価を向上させて算出する。
【0069】
ステップS203において制御部10は例えば、トルクの大きさに負の符号を付し、所定の値を加算し、検知したトルクが所定値以下である場合には第1の指標値が正の値となるように第1の指標値を算出してもよい。制御部10は、トルクが大きい程に、絶対値が大きな負の値が指標値(罰則値)として与えられるように第1の指標値を算出してもよい。ステップS203において制御部10は他の例では、ステップS201で異なる時点で駆動機構Bに掛かるトルクを検知し、トルクの変動に応じてスムーズであったか否かを判断し、判断に応じて第1の指標値を算出する。他の例の場合、トルクの変動が小さい程に、制御がスムーズであったと判断できるので、制御部10は報酬を高評価として第1の指標値を算出する。
【0070】
制御部10は、ジャイロセンサS4から得られるコンポーネントの制御の際の人力駆動車Aの姿勢を検知し(ステップS205)、検知した姿勢に応じて第2の指標値を算出する(ステップS207)。傾きの大きさによって制御の結果、人力駆動車Aが傾いたことが推測される。傾きが大きい場合制御部10は、制御がスムーズでなかったと判断できる。したがって制御部10は、ヨー、ロール、ピッチいずれの回転方向においても傾きが少ない程に制御がスムーズであったと判断し、報酬を高評価として算出する。
【0071】
ステップS207において制御部10は例えば、姿勢を示す各方向における傾きの絶対値に負の符号を付し、傾きが所定角度以内である場合には正の値となるように第2の指標値を算出してもよい。制御部10は、姿勢が傾いている程に、絶対値が大きな負の値が指標値(罰則値)として与えられるように第2の指標値を算出してもよい。ステップS207において制御部10は他の例では、ステップS205で異なる時点でジャイロセンサS4から姿勢を検知し、姿勢の変動に基づいて第2の指標値を算出してもよい。この他の例の場合、姿勢の変動が小さい程に、制御がスムーズであったと判断できるので、制御部10は高評価として第2の指標値を算出する。
【0072】
制御部10は、振動センサS7から得られるコンポーネントの制御の際の人力駆動車Aの振動を検知し(ステップS209)、検知した振動に応じて報酬に対応する第3の指標値を算出する(ステップS211)。振動が大きい、または振動数が大きいほどに、人力駆動車Aにおける制御がスムーズでなかったと判断できる。制御部10は、振動が小さい程に制御がスムーズであったと判断し、報酬を高評価で算出する。
【0073】
ステップS209において制御部10は例えば、入出力部14によって振動センサS7から得られる振動波形を取得する。制御部10は、振動波形からノイズを抽出し、ノイズの大きさに負の符号を付し、所定の値を加算して所定のノイズレベル以下である場合には報酬が正の値となるように第3の指標値を算出してもよい。制御部10は、所定のノイズレベル以下である場合には所定の関数により指標値を算出し、ノイズが小さい程に高報酬が与えられるように傾斜を与える。
【0074】
制御部10は、テンションセンサS8から得られる信号からコンポーネントの制御の際の人力駆動車AのチェーンB4のテンションを測定する(ステップS213)。制御部10は、測定したテンションに応じて報酬に対応する第4の指標値を算出する(ステップS215)。テンションが所定範囲にある場合、制御部10は制御がスムーズであったと判断し、報酬を高評価で算出する。
【0075】
ステップS213において制御部10は、異なる時点におけるテンションを算出し、ステップS215においてテンションの変動に基づいて第4の指標値を算出してもよい。
【0076】
制御部10は、姿勢センサS61−S63から得られる信号からコンポーネントの制御の際の人力駆動車Aのユーザの姿勢を検知し(ステップS217)、検知したユーザの姿勢に応じて報酬に対応する第5の指標値を算出する(ステップS219)。ステップS217において制御部10は、異なる時点における姿勢の変動から、ユーザの姿勢の揺れを検知してもよい。制御部10は、ユーザの姿勢が大きく傾くほど、または姿勢の揺れ幅が大きい程に、人力駆動車Aにおける制御がスムーズでなかったと判断できる。制御部10は、ユーザの姿勢の傾きが小さい程、揺れ幅が小さい程に、制御がスムーズであったと判断し、報酬を高評価で算出する。
【0077】
制御部10は、算出された第1の指標値〜第5の指標値に基づき、総合指標値を算出する(ステップS221)。ステップS221において制御部10は例えば第1の指標値〜第5の指標値を加算してもよいし、重みを付与してから加算してもよい。制御部10は第1の指標値〜第5の指標値を乗算してもよいし、所定の評価関数を用いて算出してもよい。制御部10は、ステップS221で求めた総合指標値を評価結果として処理を図4のフローチャートにおけるステップS115へ戻す。
【0078】
図5のフローチャートに示す処理手順はあくまで例示である、制御部10はトルクセンサS3、ジャイロセンサS4、振動センサS7、テンションセンサS8および姿勢センサS61−S63のいずれか1つのみから指標値を算出してもよい。つまり、図4のフローチャートにおけるステップS115の処理は、第1の指標値、第2の指標値、第3の指標値、第4の指標値および第5の指標値の内のいずれか1つのみを用いて実行されてもよい。ステップS115の処理は、第1の指標値、第2の指標値、第3の指標値、第4の指標値および第5の指標値の内の任意の2つ、または3つを用いて実行されてもよい。
【0079】
図5のフローチャートにおける第1の指標値、第2の指標値、第3の指標値、第4の指標値及び第5の指標値の算出は他の例では、検知された物理量が夫々所定値以上であるか否かを判断し、所定値以上である場合には、低評価となるように算出されてもよい。
【0080】
このように、学習モデル1Mから出力される出力情報に基づく制御に対する評価によって、学習モデル1Mが更新されるから、ユーザの運転の仕方に見合った制御データを出力する学習モデル1Mが作成される。
【0081】
(第2実施形態)
図6は、第2実施形態における制御ユニット100の内部構成を示すブロック図である。第2実施形態における人力駆動車Aおよび制御ユニット100の構成は、以下に説明する記憶部および処理の詳細以外は第1実施形態と同様であるから、共通する構成に同一の符号を付して詳細な説明を省略する。第2実施形態において制御ユニット100の記憶部12は、異なる時点で時系列に取得した複数の入力情報を逐次一時的に記憶する。記憶部12は具体的には、人力駆動車Aに設けられたセンサ群S1−S5,S61−S63,S7,S8から入出力部14によって入力した入力情報を時間情報と共に複数サンプリング周期分記憶する。記憶部12は、複数サンプリング周期分の記憶領域を用いて巡回的に入力情報を記憶し、古い入力情報に自動的に上書きして記憶する。
【0082】
図7および図8は、第2実施形態における制御ユニット100の処理手順の一例を示すフローチャートである。第2実施形態における制御ユニット100の構成は、以下に示す評価処理の詳細以外は第1実施形態と同様であるから、同一の符号を付して詳細な説明を省略する。制御ユニット100の制御部10は、以下の処理手順を繰り返し実行する。
【0083】
制御部10は、入出力部14によって人力駆動車Aの走行に関する入力情報を取得する(ステップS121)。ステップS121にて制御部10は「取得部」である。ステップS101において制御部10は、入出力部14によって入力されるセンサ群S1−S5、S61−S63からの信号レベルをコントロール周期毎に参照し、制御部10の内部メモリまたは入出力部14が内蔵するメモリに一時記憶する。
【0084】
制御部10は、ステップS121の入力情報の取得時点を特定する(ステップS123)。ステップS123において制御部10は、内蔵タイマから得られるタイミング情報を取得時点として使用してもよいし、時刻情報を使用してもよい。
【0085】
制御部10は、ステップS123で特定した取得時点を示す時間情報と、ステップS121で取得した入力情報とを対応付けて記憶部12に記憶する(ステップS125)。
【0086】
制御部10は、ステップS121で取得した入力情報、または記憶部12に記憶してあるステップS121の取得時点までの複数の入力情報を、学習モデル1Mの入力層131に入力する(ステップS127)。
【0087】
制御部10は、学習モデル1Mから出力される制御対象のコンポーネントの制御に関する出力情報を特定する(ステップS129)。制御部10はステップS129において例えば、変速機Eの変速段数または変速比の判別結果を出力情報として特定する。
【0088】
制御部10は、特定された出力情報に基づく制御対象の状態を参照する(ステップS131)。制御部10は、特定された出力情報が示す制御内容と、参照した状態との間の関係に基づき、制御信号の出力が必要であるか否かを判断する(ステップS133)。
【0089】
ステップS133で必要であると判断された場合(S133:YES)、制御部10は特定された制御に関する出力情報に基づく制御信号を制御対象へ出力する(ステップS135)。ステップS133で不要であると判断された場合(S133:NO)、制御部10は、ステップS135の処理を省略して次の処理へ進める。この場合、制御部10はステップS129において例えば、変速機Eの変速段数または変速比の判別結果を出力情報として特定し、制御部10は特定された出力情報に基づく制御対象の状態を参照することなく、制御部10は特定された制御に関する出力情報に基づく制御信号を制御対象へ出力してもよい(S135)。
【0090】
制御部10は所定時間内で、操作装置Dの操作部D1における制御対象のコンポーネントへの操作指示を受け付けたか否かを判断する(ステップS137)。
【0091】
操作指示を受け付けたと判断された場合(S137:YES)、制御部10はステップS129で学習モデル1Mから出力された出力情報を、ステップS127で入力した複数の入力情報にラベル付けすることによって教師データを作成する(ステップS139)。ステップS139において制御部10は、操作指示のタイミングに対応する入力情報を記憶部12から選別して作成する。
【0092】
制御部10は、実際の操作指示による制御データを参照し(ステップS141)、ステップS129で特定された学習モデル1Mからの出力情報との比較に基づき評価を付与する(ステップS143)。ステップS143が「評価部」に相当する。ステップS143にて制御部10は、ステップS139で参照した操作指示による制御データと、ステップS129で得られる学習モデル1Mからの制御に関する出力情報との乖離が大きい程に低い評価を与える。
【0093】
制御部10は、ステップS143で付与した評価を含む罰則と共にステップS139で作成した教師データを学習モデル1Mへ与えてこれを更新し(ステップS145)、処理を終了する。
【0094】
ステップS137にて操作指示を受け付けていないと判断された場合(S137:NO)、制御部10は、制御部10はステップS129で学習モデル1Mから出力された制御に関する出力情報を、ステップS127で入力した入力情報にラベル付けすることによって教師データを作成する(ステップS147)。
【0095】
制御部10は、作成した教師データに高評価を付与し(ステップS149)、学習モデル1Mへ与えてこれを更新し(S145)、処理を終了する。ステップS147が「評価部」に相当する。
【0096】
ステップS137〜S143の処理に加えて制御部10は、実際の操作指示内容をラベルとして付与することによって作成した教師データに基づいて学習モデル1Mを更新してもよい。この場合制御部10は、ステップS137で操作部D1にて指定操作を受け付けたと判断された場合、指定操作が行われたタイミングの前後に取得されて記憶部12に記憶してある複数の入力情報と、操作部D1での操作内容とにより学習モデル1Mを更新する。この場合制御部10は、実際の操作内容を入力データにラベル付けすることによって作成した教師データに高評価を付与して学習モデル1Mに与え、学習モデル1Mを更新する。操作部D1での指定内容は第1例では、変速機Eの変速段数および変速比の少なくともいずれか一方である。指定内容の第2例では、電動シートポストFにおける支持位置である。第3例では、電動サスペンションGの減衰率、ストローク量、およびロックアウト状態の設定情報である。
【0097】
第2実施形態において制御部10は、ステップS127で複数の入力情報が入力されることに代替し、複数の入力情報の変動が入力されてもよい 。制御部10は、1サンプリング周期毎に前後の時点の変動を算出して変動値を入力層131に与えてもよいし、変動の傾向(増加、減少、維持)を入力層131に与えてもよいし、時系列分布に相当する波形を変動として算出してから入力層131に与えてもよい。変動値は1回または複数回の時間微分値を含んでいてもよい。
【0098】
(第3実施形態)
第3実施形態では、制御ユニット100に代替して、ユーザの端末装置にて学習モデルの作成およびコンポーネント制御処理を実行する。図9は、制御システム200の構成を示すブロック図である。制御システム200は、端末装置2と制御ユニット100とを含む。第3実施形態における制御ユニット100は、制御部11、記憶部12、入出力部14および通信部16を含む。第3実施形態における制御ユニット100の構成部の内、第1実施形態および第2実施形態における制御ユニット100と共通する構成には同一の符号を付して詳細な説明を省略する。
【0099】
第3実施形態における制御ユニット100の制御部11は、CPUを用いたプロセッサであり、内蔵するROMおよびRAM等のメモリを用い、各構成部を制御して処理を実行する。制御部11は、第1実施形態における制御ユニットの制御部10が行なった学習処理を実行しない。制御部11は、人力駆動車Aに設けられたセンサ群S1−S5,S61−S63を入出力部14によって入力し、通信部16を介して端末装置2へ送信する。制御部11は、操作装置Dにおける制御状態、操作装置Dから出力される操作信号を参照して通信部16を介して端末装置2へ送信する。制御部11は、操作装置Dからの出力される操作信号に基づき、または端末装置2からの指示に基づき、制御信号を制御対象の電動アクチュエータE1へ与える。
【0100】
通信部16は通信ポートであり、制御部11は通信部16を介して端末装置2と情報を送受信する。通信部16は第1例では、USB(Universal Serial Bus)ポートである。通信部16は第2例では、Bluetooth(登録商標)等の近距離無線通信モジュールである。
【0101】
端末装置2は、ユーザが使用する可搬型の小型の通信端末装置である。端末装置2は第1例では、スマートフォンである。端末装置2は第2例では、所謂スマートウォッチ等のウェアラブルデバイスである。スマートフォンである場合、人力駆動車AのハンドルバーA2にスマートフォン用保持部材を取り付けておき、この保持部材にスマートフォンを嵌めて用いてもよい(図10参照)。
【0102】
端末装置2は、制御部20、記憶部21、表示部23、操作部24、撮像部25、および通信部26を備える。
【0103】
制御部20は、CPU、GPU等のプロセッサと、メモリ等を含む。制御部20は、プロセッサ、メモリ、記憶部21、および通信部26を集積した1つのハードウェア(SoC:System On a Chip)として構成されていてもよい。制御部20は、記憶部21に記憶されているアプリプログラム20Pに基づき、人力駆動車Aの制御に関する出力情報の学習と、学習に基づくコンポーネント制御を実行する。
【0104】
記憶部21は、例えばフラッシュメモリ等の不揮発性メモリを含む。記憶部21は、アプリプログラム20Pを記憶する。記憶部21は、制御部20の処理によって作成、更新される学習モデル2Mを記憶する。記憶部21は、制御部20が参照するデータを記憶する。アプリプログラム20Pは、記憶媒体29に記憶されたアプリプログラム29Pを読み出して記憶部21に複製されたものであってもよい。
【0105】
表示部23は、液晶パネルまたは有機ELディスプレイ等のディスプレイ装置を含む。操作部24は、ユーザの操作を受け付けるインタフェースであり、物理ボタン、ディスプレイ内蔵のタッチパネルデバイスを含む。操作部24は、物理ボタンまたはタッチパネルにて表示部23で表示している画面上における操作を受け付けることが可能である。
【0106】
音声入出力部22は、スピーカおよびマイクロフォン等を用いる。音声入出力部22は、音声認識部221を備え、マイクロフォンにて入力音声から操作内容を認識して操作を受け付けることが可能である。
【0107】
撮像部25は、撮像素子を用いて得られる映像信号を出力する。制御部20は、任意のタイミングで撮像部25の撮像素子にて撮像される画像を取得できる。
【0108】
通信部26は、制御ユニット100の通信部16に対応する通信モジュールである。通信部26は第1例では、USB通信ポートである。通信部26は第2例では、近距離無線モジュールである。
【0109】
第3実施形態において制御ユニット100は継続的に、入出力部14によって人力駆動車Aに設けられたセンサ群S1−S5,S61−S63,S7,S8から得られる入力情報を取得し、通信部16を介して端末装置2へ送信する。
【0110】
端末装置2の制御部20は、アプリプログラム20Pに基づき、深層学習の学習アルゴリズムによる学習モデル2Mを用いて変速機Eを含むコンポーネントを自動制御する制御部として機能すると共に、学習モデル2Mを更新する作成部として機能する。端末装置2は「制御データ作成装置」および「コンポーネント制御装置」に相当する。
【0111】
端末装置2の動作は、第1実施形態又は第2実施形態に示した制御ユニット100の制御部10の動作と同様である。ただし第3実施形態において「作成装置」又は「コンポーネント制御装置」に相当する端末装置2は、操作部24または撮像部25にて得られる情報に基づいてユーザの評価を受け付け、評価の内容に応じて学習モデル2Mを更新する。
【0112】
図10図11は、アプリプログラム20Pに基づいて表示される画面例を示す図である。図10に示す例では、端末装置2はスマートフォンであってハンドルバーA2にユーザが表示部23を視認できるように取り付けられている。図10では、アプリプログラム20Pに基づき表示部23に表示されるメイン画面230が示されている。制御部20は、アプリプログラム20Pの実行が選択された場合、表示部23にメイン画面230に表示させる。制御部20は、アプリプログラム20Pの実行を開始すると制御ユニット100との間で通信接続を確立させる。制御部20は図13に示すように、通信状態を示すメッセージをメイン画面230に表示させる。メイン画面230には、学習モデル2Mに基づく自動制御の開始を受け付けるボタン234が含まれる。ボタン234が選択された場合、学習モデル2Mから出力される制御データに基づく自動制御を行ないつつ学習モデル2Mを更新する処理を開始する。
【0113】
図11は、自動制御開始を受け付けるボタン234が選択された場合に表示される自動制御モード画面236の内容例を示す。自動制御モード画面236では、制御部20が変速機Eへの制御信号の出力を必要と判断し、制御信号を出力した場合、変速段数または変速比を変更したことを示すメッセージを表示または音声入出力部22から音声を出力させる。制御部20は、このメッセージに対する評価を受け付ける。制御部20は、以下に示す例のいずれかによって、学習モデル2Mから出力された出力情報に基づく制御部20による制御内容に対してユーザ操作を受け付け、操作内容によって制御内容の評価を受け付ける。制御部20は「評価受付部」である。
【0114】
「評価受付部」の第1例は、図11に示す自動制御モード画面236に含まれる評価を受け付ける高評価ボタン238と低評価ボタン240とである。制御部20は、評価ボタン238,240の選択操作を操作部24のタッチパネルでこれを認識し、評価を受け付ける。図11の例における高評価ボタン238は、変速段数または変速比の自動制御が快適であった場合に選択される。低評価ボタン240は、自動制御が快適でなかった場合に選択される。制御部20はいずれのボタン238,240が選択されたかを認識して受け付けた評価内容を認識する。「評価受付部」の第1例の変形例として低評価ボタン240のみが表示されてもよい。「評価受付部」の第1例の変形例として、この場合、変更した変速段数または変速比が重すぎる(OUTWARDすぎる)と評価するボタンと、軽すぎる(INWARDすぎる)と評価するボタンであってもよい。
【0115】
「評価受付部」の第2例は、操作部D1に設けられている物理的なボタンであってもよい。操作部D1に特定の評価受付ボタンを設けてもよい。評価受付ボタンを操作装置Dの近傍に別途設けられてもよい。制御部20は、特定の評価受付ボタンが押下されたか否か、その他、汎用的なボタンの押され方、レバー操作との組み合わせによって評価内容を認識することができる。「評価受付部」の第3例は、音声入出力部22の音声認識部221である。制御部20は、音声認識部221にて認識したユーザの音声に基づいて自動制御が快適であったか否かを認識する。「評価受付部」の第4例は、撮像部25である。制御部20は、撮像部25でユーザの顔を撮像して得られる撮像画像に基づきユーザの表情を特定し、快適か否かを判別し、判別結果を評価として受け付ける。
【0116】
図12は、第3実施形態における制御部20の処理手順の一例を示すフローチャートである。制御部20は、以下の処理手順を繰り返し実行する。所定のコントロール周期(例えば30ミリ秒)で実行してもよい。
【0117】
制御部20は、制御ユニット100から得られる人力駆動車Aの走行に関する入力情報を通信部26によって取得する(ステップS301)。ステップS301において制御部20は、制御ユニット100の制御部10がセンサ群S1−S5,S61−S63からの信号レベルをコントロール周期毎に参照し、制御部10の内部メモリまたは入出力部14が内蔵するメモリに一時記憶したものを取得する。
【0118】
制御部20は、ステップS301で取得した入力情報を学習モデル2Mに入力する(ステップS303)。
【0119】
制御部20は、学習モデル2Mから出力される制御対象の制御に関する出力情報を特定する(ステップS305)。制御部20はステップS305において例えば、変速機Eの変速段数または変速比の判別結果を特定する。
【0120】
制御部20は、制御対象の状態を参照する(ステップS307)。制御部20はステップS307において、制御ユニット100を介して例えば変速機Eからフィードバックされる変速段数または変速比を参照してもよい。制御部20は、ステップS305で特定した出力情報が示す制御内容と、ステップS307で参照した状態との間の関係に基づき、制御信号の出力が必要であるか否かを判断する(ステップS309)。ステップS309で必要であると判断された場合(S309:YES)、制御部20は制御指示を制御ユニット100へ出力する(ステップS311)。制御部20は、制御指示の内容を表示部23に出力する(ステップS313)。ステップS309で不要と判断された場合(S309:NO)、制御部20は処理をステップS315へ進める。
【0121】
制御部20は、ステップS311の処理後の所定時間内でユーザ評価を受け付ける(ステップS315)。
【0122】
制御部20は、受け付けた評価が高評価であるか否かを判断する(ステップS317)。高評価であると判断された場合(S317:YES)、制御部20は、ステップS305で学習モデル2Mから出力された制御データを、ステップS303で入力した入力情報にラベル付けすることによって教師データを作成する(ステップS319)。
【0123】
制御部20は、作成した教師データに高評価を付与し(ステップS321)、学習モデル1Mへ高評価を報酬として与えてこれを更新し(ステップS323)、処理を終了する。ステップS321が「評価部」に相当する。
【0124】
ステップS317で高評価でないと判断された場合(S317:NO)、制御部20は、ステップS305で学習モデル2Mから出力された制御データを、ステップS303で入力した入力情報にラベル付けすることによって教師データを作成する(ステップS325)。
【0125】
制御部20は、作成した教師データに低評価を付与する(ステップS327)。ステップS327にて制御部20は「評価部」である。制御部20は、ステップS327で付与した評価を含む罰則と共にステップS325で作成した教師データを学習モデル1Mへ与えてこれを更新し(S323)、処理を終了する。
【0126】
第3実施形態において端末装置2は、第2実施形態同様に逐次、時系列に入力情報を逐次記憶部21に一時記憶してもよい。この場合制御部20は、ステップS315で評価を受け付けた場合に、ステップS319,S325において、評価が受け付けられたタイミングの前後に取得されて記憶部21に記憶してある複数の入力情報と、評価対象の制御内容と、受け付けた評価とを含む教師データを作成する。制御部20は、評価受付部にて評価が受け付けられたタイミングの前後に取得された複数の入力情報を入力とし、学習モデル2Mから出力された出力情報と、評価受付部で受け付けた評価とを含む教師データに基づいて学習モデル2Mを更新する。
【0127】
第1実施形態から第4実施形態において、学習モデル1Mまたは学習モデル2Mから出力される出力情報として、主に、変速機Eの制御に関する制御データについて説明した。制御対象の人力駆動車Aのコンポーネントは、変速機Eに代えて、電動シートポストFであってもよいし、電動サスペンションGであってもよい。制御対象の人力駆動車Aのコンポーネントは、変速機E、電動シートポストF、および電動サスペンションGであってもよいし、電動シートポストFおよび電動サスペンションGであってもよい。
【符号の説明】
【0128】
100…制御ユニット(作成装置、コンポーネント制御装置)、10,11…制御部、12…記憶部、1M…学習モデル、1P…制御プログラム、2…端末装置、20…制御部、21…記憶部、2M…学習モデル、20P…アプリプログラム、A4…後輪、B1…クランク、B3…第2スプロケット組立体、D…操作装置、D1…操作部、E…変速機、E1…電動アクチュエータ、F…電動シートポスト、G…電動サスペンション、S1…速度センサ、S2…ケイデンスセンサ、S3…トルクセンサ、S4…ジャイロセンサ、S5…画像センサ、S61,S62,S63…姿勢センサ、S7…振動センサ、S8…テンションセンサ。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12