修士論文

健康増進を目的とする四足歩行乗馬ロボットの開発
Development of Quadruped Horseback-Riding for Health Promotion

高知工科大学大学院基盤工学専攻知能機械システム工学コース
1055037
菅野 正人

目次

1

目次
ページ

第 1章

序章・・・・・・・・・・・・・・・・・・・・・・・・・・・・・３
１．１

はじめに・・・・・・・・・・・・・・・・・・・・・・・・・３

１．２

乗馬療法・・・・・・・・・・・・・・・・・・・・・・・・・７

１．３

室内用乗馬ロボット・・・・・・・・・・・・・・・・・・・・９

１．４

乗馬ロボットの発展・・・・・・・・・・・・・・・・・・・・１３

１．５

本研究の意義・・・・・・・・・・・・・・・・・・・・・・・１３

１．６

本論文の構成・・・・・・・・・・・・・・・・・・・・・・・１４

第 2 章 生馬について・・・・・・・・・・・・・・・・・・・・・１５
２・１ 歩様・・・・・・・・・・・・・・・・・・・・・・・・・・・・１５２．２ 骨格・・・・・・・・・・・・・・・・・・・・・・・・・・・・２４
２．３ 揺れ・・・・・・・・・・・・・・・・・・・・・・・・・・・・３２

第 3章

ロボットの歩行・・・・・・・・・・・・・・・・・・・・・３３
３．１ 歩行・・・・・・・・・・・・・・・・・・・・・・・・・・・・３３
３．２ 静歩行・・・・・・・・・・・・・・・・・・・・・・・・・・・３３
３．３ 動歩行・・・・・・・・・・・・・・・・・・・・・・・・・・・４１
３．４ 指標に基づく歩行解析・・・・・・・・・・・・・・・・・・・・４３

第 4章

実験 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・４５
４．１ 実験１ 脚機構を重視した設計・・・・・・・・・・・・・・・・４５
４．２ 実験２ 理想値の再現・・・・・・・・・・・・・・・・・・・・５５
４．３ 実験３ 安定余裕の拡大・・・・・・・・・・・・・・・・・・・６２
４．４ 考察・・・・・・・・・・・・・・・・・・・・・・・・・・・・６４

第 5 章 結章 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・６５
５．１ 本研究の成果・・・・・・・・・・・・・・・・・・・・・・・・６５
５．２ 今後の課題・・・・・・・・・・・・・・・・・・・・・・・・・６５

目次

2

参考文献・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・６６
謝辞・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・６７
付録

第１章

序章

3

第１章
序章

1.1

はじめに

厚生労働省の調査によると日本人の全人口のほぼ１割が腰痛に悩んでいる．(表 1.1，図 1.1)
また，一般的にそのうちの約半分が姿勢性腰痛であると言われている．[1] 姿勢性腰痛とは腰部に蓄積された疲労に起因する筋肉性の痛みであり，そのメカニズムは，加齢に伴い腹筋や背筋などの筋力が衰え，立ち姿勢や歩行時の姿勢が悪くなり，腰への負担が高まることから発症するものである．従って，姿勢性腰痛を未然に予防するには，腹筋・背筋を中心とした筋力アッ
プを図るトレーニングを行う必要がある．また，今後も続くと思われる超高齢化社会(表 1.2，図1．2 表，表 1.3，図 1.3，)からに対し健康増進を行えるシステムを開発する事は重要かと思われ
る．

日本人口
０〜４歳
５〜１４
１５〜２４
２５〜３４
３５〜４４
４５〜５４
５５〜６４

男

女

腰痛患者

男

女

5 844

2 995

2 849

1

0

1

12284

6295

5990

12

8

4

15316

7856

7460

126

64

62

18643

9466

9178

276

132

144

15495

7822

7671

381

194

187

19383

9694

9690

708

318

390

16154

7887

8268

1018

410

608

第１章

序章

4

６５〜７４
７５〜８４
８５歳以上

13289

6177

7111

1394

502

892

7125

2715

4410

1095

502

593

2379

689

1689

636

502

134

表 1.1. 人口と腰痛患者表（千単位）

人口と腰痛患者の比率
人口
（千単位）

25000
20000
15000
10000
5000
0 0〜4歳

15〜24

35〜44

55〜64

腰痛患者
日本人口

図 1.1 人口と腰痛患者の比率グラフ

75〜84

年齢

第１章

序章

5

（千人）

年代別人口推移詳細グラフ

12000

10000

8000

6000

4000

2000

0
1980年 1985年 1990年 1995年 1996年 1997年 1998年 1999年 （年代）

1-4歳
20-24歳40-44歳60-64歳

5-9歳
25-29歳45-49歳65-69歳10-14歳30-34歳50-54歳70-74歳

15-19歳35-39歳
55-59歳
75歳以上

表 1.2 人口推移グラフ

1980 年

1985 年

1990 年

1995 年

1996 年

1997 年

1998 年

1999 年

1~4

8515

7459

6493

5995

5973

5956

5971

5951

5~9

10032

8532

7467

6541

6376

6234

6104

6030

8960

10042

8527

7478

7337

7176

6983

6761

8272

8980

10007

8558

8243

8005

7807

7655

7841

8201

8800

9895

9815

9583

9260

8890

9041

7823

8071

8788

9315

9499

9733

9895

10~14
15~19
20~24
25~29

30~34
35~39
40~44
45~49
50~54
55~59
60~64
65~69
70~74
70~

序章

6

10772

9054

7788

8126

8009

8266

8476

8678

9202

10738

9004

7822

7768

7810

7867

7916

8338

9135

10658

9006

8598

8218

7984

7897

8090

8237

9018

10618

11191

10789

10183

9444

7200

7933

8088

8922

8489

8846

9367

9856

5614

7000

7725

7953

8117

8327

8533

8897

4465

5406

6745

7475

7617

7699

7712

7630

3965

4193

5104

6396

6555

6712

6856

6951

3023

3563

3818

4695

4993

5261

5516

5737

3660

4712

5973

7170

7469

7784

8135

8498

表 1,2 年齢別推移表（千人）
100000

年齢構造別人口推移データ

80000
60000
40000
20000
0
19
80
19 年
85
19 年
90
19 年
95
19 年
96
19 年
97
19 年
98
19 年
99
20 年
01
年

第１章

0-14歳

15-64歳図 1.3 年齢構造別

（年代）

65歳以上

第１章

序章

7

人口

1980 年
1169891985 年
1210071990 年
123285

1995 年
1254401996 年125864

高齢者人口

10647

12468

14895

18261

19017

1997 年

1998 年

1999 年

126166126487126686

19758

20508

21186

表 1.3 人口と高齢者人口数(千単位)

人数（
千単位）

人口と高齢者の比率
140000120000100000
80000
60000
40000
20000
年

0
1980年

1985年

1990年

1995年

1996年

1997年

1998年

1999年

人口
高齢者人口

図 1.3 人口と高齢者数の比率グラフ

1．2 乗馬療法
そこで，着目したのが，乗馬療法である．乗馬による健康増進は，乗馬療法と呼ばれている．
乗馬療法の効果は，馬のリズミカルなスウィングと三次元の揺れが，人間の体と脳に一定の理学的効果をもたらし，脳幹が刺激され，筋肉の発達，血液の循環を助け，筋肉運動の整合や，姿勢，平衡感覚，移動感覚，各部の機能をも向上させ，健康全般を促進する．[2]

第１章

序章

8

また，騎乗時に受けるフィード・バックの影響は絶大である．右の手綱を引けば右に曲り，両方の手綱を引けば停止する．何もしなければ，何も起こらない．一つの行為が一つの反応をもたらす．こうした反応を経験することによって，乗り手は身体的・精神的満足感を覚える．
身体的効果の具体的な例としては以下の事柄が挙げられる．[3]①

健康と楽しみの獲得

乗馬を活発に行うことが一般的な健康維持（循環と呼吸）につながり，また，障害のために通常の活動が制限されている人でも楽しむことが出来る．
②

弱い筋肉の強化

サポートを受けて静止した馬の上に座ることから，馬の動きを自分でコントロールするまでの過程で弱い筋肉が強化される．
③

バランスと筋肉の協同の向上

乗馬・下馬の際に必要となる動きや，歩調と方向を変化させたりしながらバランスを維持する運動を行うことで，バランスと筋肉の協同が身につく．
④

歩行の再教育一定でなかったりアンバランスな歩行をする人は，骨盤を水平にし，正常な人の歩行パターンと類似している馬の歩行（正常で左右対称の歩き方）を体験することによって，自分の歩行パターンを向上させることができる．
⑤

痙攣性の脳性麻痺の緩和

リズミカルな馬の動きと温かい馬のからだに直接触れることによって，硬くなった筋肉がリラックスし，自由に動けるようになる．
⑥

股関節の柔軟化

大腿筋が鍛えられ，股関節が柔軟になることで動作が機敏になり転倒が予防される．
知的障害を持った人や自尊心の低い人などへの精神的・社会的効用として次のような事柄が挙げられる．
①

社会性の向上普段，問題行動を抱えている子供達でも，馬となら良い関係を持てることがよくあり，乗馬のレッスンなどを通してルールを守るようになる．

第１章

序章

②

教育への応用9国が定めた適切なカリキュラムの中で，数字あわせなどを馬上で行ったりする．
③

他者との関係性の向上

馬の世話をしたりすることで，コミュニケーションに対する自信を持つことが望める．
知的障害に対する効果
障害者乗馬の最良の点は，馬を相手に，青空の下で実践できることに尽きる．訓練室や養護教室で行っているような訓練を，馬と一緒に楽しみながらできることの意義は大きい．場合によっては継続的な訓練以上に目覚ましい効果をあげるため，知的障害や情緒障害を持った子供の療育の手段ともなり得る．こうした運動については，ドイツのアントニウス・クローガー博士が綿密に検証している．
１）不安を軽減する
２）行動が安定する
３）信頼の度合いを高める
４）自己評価能力を高める
５）自尊心を育くむ
６）知覚・運動能力を向上させる
７）対人関係のコツをおぼえる
８）攻撃傾向が減少する
９）嫌悪感や恐怖を減少させる
１０）積極的な社会性を発達させる
自閉症の子供にとって，馬は最良のパートナーとなり得る．よく訓練された馬は決して人を拒絶しないし，正しい合図を与えれば常に一定の反応を示してくれる．からかうことも叱ることもない．だから他人や社会に対して心を閉ざしてしまう子供も，馬に対しては心を開き自発的な行動をとるようになるという事例多くある．

1．3 室内用乗馬ロボット
実際に乗馬医療を行うためには，いろいろな条件，制約がある．まず，馬を生育，維持するためのコストと場所が必要となってくる．次に，馬を調教し，乗馬の訓練を教える専用インストラクターが必要である．（図 1.4）

第１章

序章

10

図 1.4 乗馬医療においての関係

これらの条件を克服し，生馬の乗馬医療にない効果を生み出したのが，木村哲彦教授によって提案され，松下電工が開発した室内用乗馬ロボット（図 1.5）を利用して，王ら研究グループ
によりその有効性を示していている．実際に実験を行い多くの被験者が腹筋，背筋，歩幅などの健康増進につながった．[4] [5] [6]

図 1.5 室内用乗馬ロボット

第１章

序章

11

図 1.5 6軸パラレルリンク

図 1.5 室内用乗馬ロボット
これにより室内での乗馬医療が可能になり，馬を生育，維持できない狭い場所での医療が受けられるようになった．また，機械制御によって繰り返し同じ負荷を与えることができ，一人一人の健康状態，身体状況に応じた最適負荷を与えられるようになった．また，患者のデータを蓄積し，医療解析することも可能であり，健康増進の実効果を定量的に評価できようにもな
った．

第１章

序章

12

また，室内用乗馬ロボットにはヴァーチャル・リアリティーシステム(以後 VR と略す)を利用している．(図 1.6)このシステムはまずユーザーの操作データが VR 用計算機に送られ，次に予め作成された映像データの再生速度が指定され，再生がはじまるとともに効果音等のデータがＭ
ＩＤＩ制御によりサンプラに送られ映像と音声が同期をとって出力される．さらにＶＲ用計算
機は駆動用計算機にスピードや歩様パターンのデータを送り，駆動用計算機にて生きた馬の動
きデータに基づいて駆動部へ制御信号を送ることにより駆動メカが実際に作動する．このように映像・音響・駆動が連動して再現されるため外で行っているかのような臨場感を出している．
（図 1.7）[7] [8]
音声
画像

TV

音
VR用
計算機

サンプラー

駆動用
制御信号

ＭＩＤＩ

計算機

動きデータ

図 1.4，VRシステム

図 1.7 VR操作部

画像データ

第１章

序章

13

だが，室内での乗馬医療は固定された乗馬ロボットであるため，本来の生馬による前に進む速度効果が失われ，騎乗時に受けるフィード・バック効果も失われている問題がある．また，VR技術で臨場感を出しているが，被験者の多くは乗馬医療を野外でも行いたいと言う希望が出てきた．

1．4 乗馬ロボットの発展
屋外で行いたいと言う被験者の意見や，本来の生馬による前に進む速度効果と騎乗時に受けるフィード・バック効果を失っている問題の改善を考えると，VR システムを更に改良し，バーチャル空間で乗馬をさせる方法が挙げられる．しかし，VR システムには臨場感の限界があると思われる．また，もう 1つの問題点である，前に進む事による速度効果がえられないという点が残されてしまう．そこで，実際に屋外で行える乗馬ロボットを開発する事を考えた．この方法
だと，室内用乗馬ロボットの問題点を全て解決する事が出来る．したがって，屋外で行える乗馬ロボットに着手した．
屋外用乗馬ロボットを開発するにあたり，二通りの考えが考案された．まず一つは，現在の室内用乗馬ロボットに車輪，もしくはキャタピラなどを付け現行のシステムをそのまま屋外で利用する方法である．二つ目は，生きた馬の様に四足歩行できる乗馬ロボットを開発する事である．平地などでの移動効率やエネルギー効率を考えると車輪やキャタピラを付ける方が効率は良い．しかし，凹凸の激しい路面や森林など移動範囲が狭い場所では四足歩行が効率が良い．
また，乗馬療法の特長でもある療法と思わせない療法と言う心理的効果を考えると，四足歩行させたほうが乗馬感覚に近く心理的効果が高いと思われる．そこで我々は四足歩行できる乗馬
ロボットを選択した．

1．5 本研究の意義
四足歩行乗馬ロボットで乗馬医療を再現できれば，屋内用乗馬ロボットのメリットである低コストと専用インストラクターの不必要を活かしつつ，屋外で行うことにより，青空の下で実践できる．さらに，路面の状況によって他動的な運動を与えられることが可能となる．また，
屋外用乗馬ロボットを訓練器として実用化し，高齢者の運動機能賦活や筋肉性腰痛患者の治療まで利用範囲を拡大できれば今後の高齢化社会において極めて有益なシステムとなりうる．
我々は上記で述べた乗馬訓練を行える屋外用乗馬ロボットの開発を目指している．本論文では
屋外用乗馬ロボットに向けてミニモデルを設計・製作した結果を述べる．

第１章

序章

14

1．6 本論文の構成
ここでは本論文の構成を示す
第 2 章では乗馬ロボット動きに必要な生馬の歩様，骨格，揺れのデータについて述べる．第 3
章では四足歩行ロボットの歩様と安定余裕について述べ，それに伴う歩様生成法を述べる．第 4
章では実際にミニモデルを設計・製作し，歩行実験の結果を述べる．最後に第 5章で本研究の成果と今後の課題を述べる．

第２章

生馬について

15第２章
生馬について2．1 歩様乗馬療法は乗馬による揺れが重要となってくる．そこで，生馬と同じ動きを行わせるため生馬の歩き方，走り方きを調べた．
馬の歩き方，走り方を歩様と言う．馬の歩様は大きく分けると四種類あり，常歩（なみあし），速歩（そくあし），駈歩（かけあし），襲歩（しゅうほ）と分別されている．並歩から襲歩へと順に速さが増していく．

2．1．1 常歩
英語の「WALK」にあたる．人間が歩いている状態と同様の，ゆったりとしたスピードのない歩様．馬の肢運（あしはこび）は，左後肢，左前肢，右後肢，右前肢と，順に離地と着地を繰り返す．（図，2.1）リズムは，「１，２，３，４」の４拍になる．（図，2,2）もっとも基本となる歩様で，ゆったりと１肢ずつ肢運をするうちに，馬体の筋肉がほぐれ，運動のウォーミン
グアップになる．そのため，乗馬を行う時は必ず、この常歩を十分に行ってから次の運動を始めなければならない．人間がハイハイをしても全く同じような歩き方になると思われる．速さは１分間に１１０ｍほど．

①左後肢を前に出す．左前肢が離地する．

②左後肢が着地．
左前肢が前に出る③左前肢が着地．
右後肢が離地する．

第２章

生馬について

16⑤右前肢が前に出る．

④右後肢が着地．

⑥左後肢が離地する．

右前肢が離地⑦左後肢が前に出る．
左前肢が離地する．
図，2.1 常足

1，左後肢

1，左後肢

2，次に，左前肢が着地する．

1，左後肢が着地する．

1，左後肢

2，左前肢

2，左前肢

1，左後肢

3，右後肢

3，右後肢

3，更に，右後肢が着地する．

2，左前肢

4，右前肢

4，最後に，右前肢が着地する．

図，2.2 常歩の足あと

第２章

生馬について17

2．1．2 速歩
英語で「TROT（トロット）」と言う．この歩様はさらに斜対歩（しゃたいほ）と側対歩（そくたいほ）に分けることが出来る．速さは１分間に２２０ｍほど．
2．1．2．1斜対歩
斜対歩というのは対角線の脚をペアにして行う歩様で、右前と左後（左前と右後）を同時に離地，着地させる．(図，2.3)
ほとんどの馬は斜対歩で速歩を踏むと思われる．また，速歩は２拍のリズムを刻むが，騎乗者が一拍毎に腰を挙げて，馬の背中が上下動するのを和らげる乗り方を軽速歩という．(図，2.4)①右後肢と左前肢が離地する．

②右後肢と左前肢が前に出る．

③右後肢と左前肢が着地する．
左後肢と右前肢が離地する．

④左後肢と右前肢が前に出る．

⑤左後肢と右前肢が着地する．
図，2.3 斜対歩

第２章

生馬について

18

1，左後肢

1，左後肢

1，右前肢

1，左後肢と右前肢が同時に着地
する．

2，右後肢

2，左前肢

1，右前肢

2，次に，左前肢と右後肢が同時に着地する．

図，2.4 斜対歩の足あと

2．1．2．2側対歩
側対歩（PACE）は同じ側の脚をペアにして行うもので，右前と右後（左前と左後）を同時に離地，着地させる．象やらくだ，キリンにとってはあたりまえの歩様だが，馬には珍しく，ドサンコや木曽馬，テネシーウォーカーなど一部の品種に見られる歩様．(図，2.5)
側対歩には馬の背中の上下動が少ないという特長がある．この歩様は，馬の背中に荷物を積んだり，馬車を引いたりするのに適している．荷崩れしたり，馬車の揺れが少なくなる．そのため，馬に側対歩を教え込んだりすることもある．

第２章

生馬について

1，左後肢

19

1，左前肢

1，左後肢

1，左前肢

2，右後肢

1，左後肢と左前肢が同時に2，右前肢2，次に，右後肢と右前肢が同時に

着地する．

着地する．

図，2.5 側対歩の足あと

2．1．3 駈歩

英語で「CANTER（キャンター）」と言う．馬が躍動するように走って，４肢が宙に浮く瞬間があるくらいのスピードが出る歩様．馬の疲労は最も大きく，それほど長い時間駈歩を続けることはできない．速さは１分間に３３０ｍほど．(図，2.6)
2．1．3．1右駈歩・左駈歩
右駈歩と左駈歩があり，右駈歩の場合，まず左後肢が着地し，次に右後肢と左前肢が同時に，最後に右前肢となる３節運歩で右前肢がリードする走り方．左駈歩はその逆である． (図，2.7)①左後肢が着地する．

②左前肢と右後肢が着地する．
右前肢が離地する．

③右前肢が前に出る．

第２章

生馬について20④右前肢が着地する．

⑥左後肢が前に出る．

⑤左前肢と右後肢が離地す

左後肢が離地する．

る．
図，2.6 駈歩（右駈歩）

1，左後肢

1，左後肢

2，左前肢

2，右後肢

1，左後肢が着地する．

2，次に，左前肢と右後肢が同時に
着地する．

1，左後肢

2，右後肢

2，左前肢

3，右前肢

3，最後に，右前肢が着地する．

図，2.7 駈歩の足あと（右駈歩）第２章

生馬について21

2．1．4 襲歩
英語で「GALLOP（ギャロップ）」という．４拍で、馬がもっとも速く走れる歩様．上下動がほとんど無いため，乗っていても非常に楽．しかし馬は疲れるのであまり長いこと襲歩を続けることは出来ない．競馬の時の馬は襲歩．速さは１分間に約１０００m 前後になる場合がある．
この歩様は交叉襲歩と回転襲歩に分けることが出来る．(図，2.8)
2．1．4．1交叉襲歩
交叉襲歩というのは脊椎の柔軟性が無い馬や牛が行うもので、バランスがとりやすい歩様でもある．例えば，左後肢，右後肢，左前肢，右前肢の順に着地する．馬の４肢をこの順に結ぶと線分が交叉するところからこの名前がついた．(図，2.9)①左後肢が着地する．

②右後肢が着地する．

③左後肢が離地する．

④左前肢が着地する．

⑤右後肢が離地する．

⑥右前肢が着地する．

⑦左前肢が離地する．

⑧一瞬，すべての肢が離地す⑨左後肢と右後肢が前に出る．

る．

図，2.8 交叉襲歩

第２章

生馬について

22

1，左後肢

1，左後肢

2，右後肢

1，左後肢が着地する．

1，左後肢

2，次に，右後肢が着地する．

3，左前肢

2，右後肢

1，左後肢

2，右後肢

3，更に，左前肢が着地する．

3，左前肢

4，右前肢

4，最後に，右前肢が着地する．

図，2.9 交叉襲歩の足あと

第２章

生馬について23

2．1．4．2 回転襲歩
回転襲歩は犬や鹿などが行うもので，右後肢，左後肢，左前肢，右前肢の順に着地する．馬
も競馬の発送直後などは一時的に回転襲歩をとる．他にも猫のように後肢を同時に蹴り出すハーフバウンドという歩様もあるが，基本的に馬は交叉襲歩で走るものだと思ってよい．(図，
2.10)

2，左後肢

1，右後肢

1，右後肢

1，右後足が着地する．

2，左後肢

2，次に，左後肢が着地する．

3，左前肢

2，左後肢

3，左前肢

4，右前肢

1，右後肢

1，右後肢

3，更に，左前肢が着地する．

4，最後に，右前肢が着地する．

図，2.10 回転襲歩の足あと

第２章

生馬について24

2．2 骨格生物の骨格はそもそも丈夫に出来ており，参考にすることによって強度なロボットが造れる．
また，骨格も揺れに関係すると思われるため生馬の骨格を調査した．[9]2．2．１前肢の骨格
ウマの前後肢は高速で走るという能力に適応してよく発達している．蹟行型（犬新生子）および趾行型（成犬）であるイヌの前後肢と比較すると，ウマではイヌの手根部でみられる，関節を伸展させた際にいちじるしく関節角度が大きくなるという特徴はすでに失われている．ウ
マは蹄行型の動物で，前後肢がよく発達してより直線的に長く伸びた結果，大きな歩幅を獲得することになった．第一および第五指（趾）列の消失，第二および第四指（趾）列の退化が認められ，また第三指（趾）列がいちじるしくよく発達し，もっぱらこの指（趾）列によって体が支えられるようになったことも同様の適応の１つと考えられる．自然に佇立しているウマでは，前肢はその体重の約 55〜60％を支えている．騎乗者は手綱によってそのウマの環軸関節や，それに続く頚椎の関節を屈曲させて頚を「短縮」させると，体重の中心はより後方へ移動する．
正常な構造を有するウマが正しく佇立している場合，前方からみるとその前肢は直線状で，左右の肢は正しく平行に配列する．側方からみた場合にも，ともに直線状で垂直に配列しているのが分かる．肩甲棘上に存在し，表面から触知可能な肩甲棘結節（5’）からの鉛直線は中手指節関節（繋関節，球節）の中心を通り，ついで蹄の後壁に沿って走る．
ウマの前肢帯骨（肩甲骨，烏口骨および一部の動物で見られる鎖骨）は退化傾向が顕著で，鎖骨は消失してわずかに上腕頭筋中に細い繊維状物（鎖骨画）として遺残しているのにすぎな
い．
2．2．2肩甲骨
ウマの肩甲骨はその背縁をより拡大させる半月状大きな肩甲軟骨（14）を備える特徴がある．
肩甲棘上には皮膚上から触知可能な肩甲棘結節が認められ，肩甲棘は肩甲頚の付近で遠位方向に向かってしだいに低くなり，肩峰をつくらない．ときに関節下結節（20）をみるこがある．
2．2．3上腕骨
上腕骨：近位端外側および内側にそれぞれ発達した大結節（25）および小結節（29）が認められる．両結節ともそれぞれ前部と後部に区分される．両結節は矢状方向に走る広い結節間溝（28）によって区分され，それらの間に中間結節（28’）を備える．結節間溝は太い上腕二頭筋
腱の深部表面の形に適合するように凹み，ウマが佇立している場合，上腕二頭筋腱が上腕骨から逸脱するのを防いでいる．上腕骨体外側にはいちじるしくよく発達した三角筋粗面（32）がみられるが，その反対側の内側には大円筋粗面（32’）を備える．遠位端には体重を橈骨に移す役
割を担う円筒状の上腕骨顆（35）が発達する．上腕骨顆にはその外側面に矢状方向に走る小稜線が認められ，その小稜線の側面には橈骨および尺骨の形状に一致する溝が存在する．外側上顆（38）および内側上顆（39）は外側上顆稜（38’）とともに触知することが可能である．上腕骨顆
のわずか近位側前面には橈骨窩（41）が浅いくぼみとして認められる．橈骨窩の反対側で同部後第２章

生馬について25

面には内外両上顆の間により深い肘頭窩（40）が存在する．（橈骨窩および肘頭窩の間に滑車上孔は認められない）．
2．2．4前腕骨格
前腕骨格は橈骨と尺骨の２骨によって形成され，これらのうち，橈骨ののみが肘関節を介して上腕骨を支える．橈骨の近位端前面には上腕二頭筋腱の唯一の終止部である広い橈骨粗面（46）が認められる．遠位端には発達の乏しい内側および外側茎状突起（50，61）がみられ，これらは関節面の内外両端をなす．外側茎状突起には尺骨遠位端の遺残部が含まれる．
尺骨はウマではすでに橈骨と癒合しており，肘頭は肘関節における伸展角度を制限している．
その近位端である肘頭隆起（52）の位置は第五肋骨の位置に達する．尺骨体は細く，さらに徐々に細くなり前腕骨中位で橈骨に癒合する．癒合した両骨間の前腕部近位 1/3には前腕骨間隙（62）が認められる．
2．2．5手根骨
手根骨は近位列内側から外側へ順に橈側手根骨（63），中間手根骨（63’），尺側手根骨（64）および副手根骨（65）と呼ばれる．手根骨遠位列は同じく順に第一〜第四手根骨（66）と呼ばれ，これらのうち第一手根骨は小型で，しばしば欠如している．
2．2．6中手骨
第二中手骨（Mc2），第三中手骨（Mc3）および第四中手骨（Mc4）のみが存在する．第一中手骨（Mc1）および第五中手骨（Mc5）は消失し，Mc2および Mc4は高速走行を獲得するために生じた肢構造の単純化と肢が長く伸びた結果により，いちじるしく小型となっている．Mc3は大中手骨または管骨（cannon bone）とも呼ばれ，よく発達し前肢にかかる体重すべてを支える中手骨で，その横断面は内外方向に長い卵円形をなし，きわめて強靭である．その遠位端にみる頭は基節骨近位端にみる縦溝と互いによく関節する縦稜を備える．Mc2および Mc4は小中手骨または副中手骨（splint bone）とも呼ばれ，細小で長さも Ms3の約 1/3程度である．中手骨近位端にみる底（67）は手根骨（C）と関節する（Mc2は C2と，Mc3は C2および C3と，Mc4は C4と関節する）．小中手骨は繊維性組織によって Mc3と結ばれ，小中手骨の丸みを帯びた頭部は触診の際に重要な目印となる．
2．2．7指骨
基節骨（70），中節骨（71），末節骨（76）は唯一体重を支えるためによく発達した第三指列を形成する．第一指骨（PⅠまたは繁骨）とも呼ばれる基節骨は 3指骨のなかで最も長く，その掌側面に基節骨三角（70’）を備える．中節骨（PⅡまたは冠骨）は基節骨の約 1/2の長さで，存在時には靭帯や浅指屈筋腱などが付着するために強靭な補強線維軟骨で補強された広い屈筋粗
面（75）が近位掌側面に認められる．末節骨（PⅢ）は蹄骨とも呼ばれる．全体が海綿骨からなり，血管を収容する床孔（76’）および壁溝（76’’）を備える．内側および外側蹄軟骨（76’’’’）はおのおのの掌突起（76’’’）上に位置し，蹄の湾曲度に対応するように

第２章

生馬について26

わずかにカーブしている．近位端は蹄より高く突出しており，その部分は外部から触知できる．末節骨の関節骨（77）はもっぱら中手骨と関節するが，小さな遠位種子骨との関節面も備える．末節骨の屈筋粗面（79）は深指屈筋腱に終止部を与える．

図，11 指骨，遠位種子骨，およびその周囲の靭帯と蹄軟骨（外掌側面）

ウマの近位種子骨（83）および遠位種子骨（84）は臨床上重要な存在である．対をなす近位種
子骨は Mc3 と関節し，不対の遠位種子骨は蹄内に位置し，中節骨および末節骨双方と関節する．

第２章

生馬について27

図，12 前肢の骨格

第２章

生馬について28

2．2．8大腿骨
大腿骨近位端にみる大腿骨頭（1）には、三角形を呈する比較的大形の頭窩（2）が認められる．
頭窩の先端部は大腿骨頭の中心部付近を占め，その底は頭の内縁近くに位置する．頭窩には関図，13 後外側面
節軟骨は認められないが，その尖端近くに大腿骨頭靭帯の付着点が認められ，またその底近くには大半が腹直筋腱に由来する恥骨前腱からなる大腿骨副靭帯が存在する．大腿骨頚（3）はウマではくびれておらず，そのまま外側で前部（4’）とより顕著に突出した後部（4’’）の 2部からなる大転子（4）へと移行
する．大転子後部は頭よりかなり高く突出するが，その腹側部は転子窩（5）の外側縁をなす．
転子窩内縁上には小転子（6）が認められる．大腿骨近位 1/3外側縁上には著明に発達した第三転子（7）が突出する．同後面には浅趾屈筋の起始部となる顆上窩（13）をみる．顆上窩の外縁には外側顆上粗面が存在し，腓腹筋外側頭が起始する．大腿骨遠位端には内側顆（14）および外側顆（17）が認められ，これらは深い顆間窩（20）によって分けられる．内･外側顆前方には大腿骨滑車（21）が広がり，その内側縁は外側のそれよりもはるかに広い．その近位側に向かって
大腿骨滑車結節（21’）をみる．

第２章

生馬について29

図，14 後面

これは受動的指示装置による膝関節固走の際重要な役割を果たす．大腿骨滑車は広い関節滑走面を備え，膝蓋骨（69）と関節する．膝蓋骨はほぼ三角形をなし，その近位端を底（69’），遠位端を尖（69’’）と呼ぶ．内側縁には軟骨突起（69’’’）が隆起し，そこには膝蓋旁（線維）軟骨（69’’’’）が付着する．膝蓋骨の関節面（69’’’’’）には大腿骨滑車面にみる浅い溝に正しく関節するように，矢状方向に走る 1本の小稜線が認められる．また膝蓋骨と大腿骨滑車双方の関節面上には，広い滑走面とより狭い休
息面とを分ける低い横走する稜線を認める．すなわち，大腿骨滑車上の休息面は滑走面の近位側に，膝蓋骨のそれは遠位側にそれぞれ認められる．ウマが静かに佇立し，双方の後肢に均等に体重がかかっている場合には膝蓋骨は大腿骨滑車近位端の休息位置に位置し，膝蓋骨と大腿骨滑車のおのおのの休息面は互いに接するようになる．
2．2．9下腿骨
下腿骨はけい骨と腓骨からなるが，腓骨は強く退化しているために後肢にかかる体重はもっぱらけい骨によって支えられる．
Ⅰ．けい骨近位関節面（22）はほぼ三角形をなし，関節面中央部から著明な顆間隆起（24）が突出する．関節面前端には三角形をなすけい骨粗面（29）が認められ，この部分には大腿四頭筋終腱を支える 3本の膝蓋靭帯が付着する．関節面前外側縁には深い切れ込みをなす伸筋溝（27）がみられ，関節面後縁には膝窩切痕がみられ，この部からけい骨後面にかけて明らかな膝窩筋線（27’）をみる．膝窩筋線はけい骨の近位外側から遠位内側にかけて斜走し，膝窩筋の付着部となる．これらの各面はすべて筋によっておおわれるが，けい骨前内側面のみはすぐに皮膚に接する．けい骨遠位端に認められるけい骨ラセン（30）は 1本の稜線によって分けられる 2本の斜走溝からなり，それらの両側には内果（31）および外果（35）がみられる．

第２章

生馬について30

Ⅱ．腓骨はその腓骨頭（32）によってけい骨の外側顆（25）と関節する．腓骨体はいちじるしく
細くなり，ほぼけい骨中位に終わる．腓骨の遠位端は，すでにそれがけい骨に癒合することによって形成された外果（35）により置き換えられている．

図，15 内足底面

2．2．10足根骨
足根骨は 3列に配列する．
近位列は距骨（37）および踵骨（42）からなる．いちじるしく発達した距骨滑車（39）にはけい骨ラセンと関節し，斜走する 2本の稜線をみる．踵骨（42）には近位方向に盛り上がる踵骨隆起（43）が認められ，中位には太い深趾屈筋腱を支える載距突起（44）がよく発達し，遠位側で第四足根骨と関節する．中間列は中心足根骨（45）からなる．遠位列は第一〜第四足根骨（46）により構成されるが，すでに第一および第二足根骨は癒合しており，第三足根骨は大中足骨直上に位置し，趾第四足根骨はその外側に配列するが，中間列に向かってわずかに近位方向に突起している．
2．2．11中足骨，趾骨,種子骨d）中足骨，趾骨および種子骨は前肢の各相同骨に類似する．第三（大）中足骨（Mt3）は，第三（大）中手骨（Mc3）の横断像が内外側方向に長い楕円形を示すのに対し，円形をなす．

第２章

生馬について31

図，16 後肢の骨格

第２章

生馬について32

２．３ 揺れ乗馬療法では揺れが重要になっているのは第 1章でも述べた．そこで実際に生きた馬を光学式モーションキャプチャ方式で常歩と駆歩での馬の動きをデータ化した．[4]（表 2.1，表 2.2）
屋外用乗馬ロボットはこの数値を目標とする必要がある．

軸

振幅（ｍｍ） 速度（ｍｍ/ｓ）

加速度（Ｇ）

回転角（deg）

Ｘ

３５

２５０

０．４

ヨー

-3.9〜+3.9

Ｙ

３０

２５０

０．８

ピッチ

-0.9〜+4.2

Ｚ

３０

１５０

０．３

ロール

-3.2〜+4.0

表 2.1 常歩の動作範囲

軸

振幅（ｍｍ） 速度（ｍｍ/ｓ）

加速度（Ｇ）

回転角（deg）

Ｘ

１００

６００

１．０

ヨー

-4.5〜+4.5

Ｙ

８０

７００

０．９

ピッチ

-5.0〜+5.0

Ｚ

１２０

９００

１．３

ロール

-4.0〜+4.0

表 2.2 駆歩の動作範囲

第３章

ロボットの歩行33

第３章
ロボットの歩行3．1 歩行
歩行機器の特性と歩行制御を検討するには，歩行の種類を明確にしておくことが必要である．
そこで歩行を力学の観点から分類してみる．
力学的の観点から歩行の一般的な分類は「静歩行」と「動歩行」，そして「準動歩行」に分類できる．ここで「静歩行」とは，歩行の速度を低くしたと仮定した場合でも静力学的安定が維持され計画通りの運動が維持できる歩行である．「動歩行」とは，対象とする歩行を動的効
果が期待できない遅い速度で現実しようとすると計画通りの歩行ができず転倒を始めてしまう歩行である．さらに「準動歩行」とは，歩行中に動歩行と静歩行が混在する形である．先の章で述べた歩様を分類すると以下の表 3.1に分けることにした．

常歩

静歩行

速歩

準動歩行

駆歩

動歩行

襲歩

動歩行

表 3,1 歩様の分類

3．2 静歩行
静歩行を行う際，重要となる評価基準が安定余裕である．安定余裕とは，「水平床面上に多脚
移動ロボットの重心を投影したときの，支持脚多角形と重心の投影点との距離の最小値」を評

第３章

ロボットの歩行34

価基準としたものである．[10] 安定余裕は，静力学的な歩行ロボットの安定性評価基準で，直感的に理解しやすく，最も広く用いられている安定性の評価基準である． 例えば，カメラの三脚を水平な地面に立てるところを想像すると，三脚の接地点は地面に三角形を作りカメラの重心を地面に投影してみると，三脚がきちんと立つ場合にはその投影点が三角形の内部にあることが解ると思いわれる．（図 3.1）

重心の投影点図 3.1 重心の投射
脚移動ロボットでも同様で，地面に接して胴体を支えている足は水平な地面に多角形を作る．
これを支持脚多角形という．そして，重心を水平な地面に投影した点が支持脚多角形の内部に入っていれば，ロボットは転倒せずに歩行することが可能である．（図 3.2）

重心の投影点図 3.2 4脚移動ロボットにおける支持脚多角形と重心の投射
しかしロボットの大きさや重さや重心の高さには依存しないため，重たいロボット，背の高いロボットでも，同じ安定余裕となってしまう問題点がある．

第３章

ロボットの歩行35

3.1.1 重心位置
静歩行を行うロボットの場合，歩行中の支持脚パターンとロボットの重心位置との関係が非常に重要となる．通常，歩様を設計する場合，ロボットの重心はその幾何学的中心にあると仮定するか，又は，ある一定の位置に存在すると仮定される．しかし，実際に想定される歩行ロ
ボットのアプリケーションにおいては，積荷の分布や搭載されるマニピュレータの姿勢により重心位置が一定として設計した歩様では，ロボットの支持脚の切り替え時に，バランスを失い転倒する危険がある．そこで，重心位置を計算する必要がある．[11]直交座標をロボットの幾何学的中心を原点とした胴体座標系と各脚に設定する脚座標系とに分ける．脚座標系の原点は各脚の付け根である．両方の座標系ともそのｘ軸は進行方向を示し，ｚ軸は歩行面垂直で上向きを示す．また，胴体座標系での位置を示す場合は大文字で表し，脚座標系は小文字で表すことにする．
今回，乗馬療法で一番使われる「常歩」の歩様に対する重心を考える．従って，脚の復帰順
は左後肢，左前脚，右後脚，右前脚となる．また，ここで以下の仮定を立ててみる．
１）各脚の一回の復帰距離は等しい
２）胴体推進動作は，右脚復帰期と左足復帰期の間の４脚支持期のみ行う．
３）同側の２脚の脚初期位置は，各座標系で表した時等しい
４）左右の脚の初期値位置は，各脚座標系で表した時脚復帰距離の半分だけことなる．
以上の仮定を考慮すると，歩行のためには次の動作を繰り返すことになる．
① ４脚支持による胴体推進動作② 左後脚の復帰動作③ 左前肢の復帰動作④ ４脚支持による胴体推進動作⑤ 右後脚の復帰動作⑥ 右前脚の復帰動作
四脚歩行歩様では常歩が安定性の面で，最適あることが知られており，さらに常歩でも重心移動を四脚支持期に行うことにより，その安定余裕を最大限に大きく出来る．したがって，この歩行方式は，４脚歩行ロボットの静歩行歩様で最大の安定性を持つ歩行方式と考えることができる．
ロボットがバランスを崩して歩行続行が不可能になるのは，復帰を始めるたみに支持脚を空中に持ち上げる時である．その為，バランスを崩すのを防ぐためには，支持脚が復帰を始める
前に支持脚と重心との位置関係を調べればよい．一般にバランスを崩す条件は先に述べたように重心の投射が支持脚多角形から出てしまった時である．そこで重心位置を幾何学的中心からのずれをＸ軸上から考えてみる．（図3.3）

第３章

ロボットの歩行

36

X
X1
X２
O
G

X３
X４
図 3.3 重心
ここで，Ｏ点はロボットの幾何学中心であり，Ｇ点は重心位置を示す．Ｘ軸正歩行は進行方向である．重心位置のＸ座標（各脚座標系）をｘ1，ｘ2，ｘ3，ｘ4，とする．先に設定した3 番目の仮定により，ｘ1＝ｘ3，ｘ2＝ｘ4 という関係がある．左後脚が最初に復帰動作を行うが，この時の静的安定を保つ条件は，重心Ｇが左前脚と右後脚を結ぶ直線より前にあることである．
この条件を式で表すと，(x1 + x 2 ) / 2 < Xg

（３．１）

となる．この条件を満たして左後脚が復帰した後，左前脚が復帰するが，この時重心は左後脚と右前脚とを結ぶ直線より前になければならない．この条件は，

d / 2 > Xg − ( x 2 + x3) / 2 > 0（３．２）となる．ここでｄは脚復帰距離である．（3．1）式と(3．2)式より次式を得る．

d / 2 > Xg − ( x 2 + x3) / 2 > 0（３．３）

つまり，4 脚支持期において（3．3）の式が満足できれば，左側の脚は静的安定を保ちながら復帰できることができる．この安定復帰のためにの条件は不等式で表されるため，（3．3）式の不等号ではさまれた部分｛Ｘｇ−（ｘ１＋ｘ２/２）｝の値はｄ/２だけの許容範囲がある．この部

第３章

ロボットの歩行

37分の値が０の時は左後脚が復帰する時のマージンが０で左前脚の復帰時の安定マージンはｄ/２となる．このことから，この部分の値がｄ/４の時，つまりXg − ( x 2 + x 3) / 2 = d / 4（３．４）の時，前後の脚復帰時ともにｄ/４の安定マージンを持ち，最も好ましい状態となる．以上は左側２脚の復帰する条件で有るが，右側２脚の復帰時の条件も全く同様にもとめられ，その結果は（３．４）式と同じになる．以上をまとめると①（3.4）式が満足されるまで 4 脚支持による胴体推進動作を続ける②左後脚を距離ｄだけ復帰する③左前脚を距離ｄだけ復帰する④（3.4）式が満足されるまで 4 脚支持による胴体推進運動を続ける⑤右後脚を距離ｄだけ復帰する⑥右前脚を距離ｄだけ復帰する⑦①にもどる
次に水平面上にある歩行ロボットを考える.（図3.4）

Ｚ

Ｘ
F4

F3

F2

F1

W

F’4

F’3

F’2

F’1

図 3.4 力の関係
ｉ番目の脚に働く力としては,重力によるＦi と地表面に沿った方向で脚間に働く内力Ｆ I が考えられる.ここでは F’1はＦｉに比較して小さいと考え無視することとする．この時，脚先のＸ
座標とＹ座標（胴体座標系）をＸi，Yiとすれば，重心の位置 Xｇ，Ｙｇは次のように求めることが出来る．

第３章

ロボットの歩行38

Xg = {∑ ( XiFi )} / ∑ Fi

（３．５）

Yg = {∑ (YiFi )} / ∑ Fi

（３．６）

傾斜面
次に傾斜面を歩行する場合の歩様を考える．歩行ロボットが斜面を登ることを想定する．
（図 3.5）もしロボットが胴体を水平に保ったまま傾斜面を歩行すれば，水平面を歩行するときと同等のマージンを確保することがきるが，脚の鉛直方向の大きな可動範囲が要求される．これを避けるためには胴体を歩行面と平行になるように傾けて歩行する必要がある．

Ｘ
ｈ
Ｇ

ΔＸ
α
図 3.5 傾斜における脚の位置
この時，水平面上を歩行するための歩様をそのまま用いると，低い位置にある脚に過大な荷重がかかるとともに，下側の安定マージンが減少し，最悪の場合にはバランスを崩し走行の続行が不可能となる．そのようなことを避けるために歩行面の傾斜に対応できる歩様の生成方を考えなければならない．問題設定をロボットは未知の傾斜をもつ平面上をその最大斜度の方向に歩行するものとし，ロボットの重量は既知で重心は胴体の幾何学的中心にあるのもとする．また，ロボットの脚は左右対称に配置され，その動きは前後，上下方向のみとし，左右には動かないものとする．
図に示したように，ロボットが斜面を歩行することにより，その安定マージンは水平面上と比較して上側（前方）では増加し，下側（後方）では減少する．これを避けるためには，脚の往復運動の位置をΔＸだけ下側にシフトさせてやればよい．ΔＸは，胴体の高さをｈ，斜面の傾斜をαとすると

第３章

ロボットの歩行39

ΔX = − h tan α（３．７）と表すことができる．ここで右辺に負号が付いているのは傾斜角αの正方向に対して後方つまり‑Ｘ方向へシフト量を表すためである．ただし，このような方策を実行するためには傾斜面の傾斜を既知であることが必要である．
4 脚支持時の脚荷重
常歩の歩様で行った場合，次の4 条件を満たすものとすると
１）各脚の１回の復帰距離は等しい
２）胴体推進動作は，右脚復帰期と左脚復帰期の間の４脚支持期のみ行う
３）同側の２脚の脚初期位置は，各脚座標系で表した時等しい
４）左右の脚の初期位置は，各脚座標系で表した時脚復帰距離の半分だけ異なる
斜面を登っているロボットの脚支持期の脚にかかる力を考えてみる．(図3.6)

Ｚ
Ｘ

F1

F2
W
F3
F4

α
図 3.6 傾斜における力の関係
ここでも脚間に働く内力を無視することとする．ここえは胴体座標系のＸ軸方向を進行方向とし，ロボットを側面から見た平面上で考える．また，脚の番号を，1：右前脚，2：左前脚，3：
右後脚，4：左後脚と定義する．この時，重力とのつり合い，およびロボットの重心回りのモー
メントのつり合いより，次の 2 つの式が成り立つ．

∑ Fi + W = 0（３．８）∑ (ri × Fi ) = 0

（３．９）

第３章

ロボットの歩行40

ここで，Ｆｉは脚ｉにかかる力のベクトル、 Ｗは重心にかかる重量を表すベクトル，ｒｉは重心から脚ｉの接地点に向かうベクトル，そして0 はゼロベクトルである．これらのベクトル
を胴体座標系で具体的に示すと，

Fi = ( Fi sin α , 0, Fi cosα )（3．10）

W = ( −Wg sin α ,0, −Wg cosα )（3．11）

r1 = (a / 2 + x1,−b / 2,− h)（3．12）

r 2 = ( a / 2 + x 2, b / 2,− h)（3．13）

r 3 = ( −a / 2 + x3, −b / 2,− h)（3．14）

r 4 = ( − a / 2 + x 4, b / 2, −h)（3．15）となる．ここで，Ｗはロボットの重量，ｇは重力加速度，ｘｉはｉ脚の各脚座標系での脚先位
置，ｈは重心の高さ，ａは前後脚間隔，そしてｂは左右脚間隔である．（3．8），（3．9）をＦ
ｉについて解けば各脚にかかる力が求める事ができる．また，前2 脚にかかる力の合計と後2 脚にかかる力の合計を使った解き方もある．先に歩様に課した 3 番目の条件よりｘ1=ｘ3，x3=ｘ4，
また 4 番目の条件より x2=x1‑d/2，x4=x3‑d/2 という関係が得られ，これを利用すると，

F1 + F 2 = ( 2a + d − 4 x1 − 4h tan α )Wg /( 4a )（3．16）

F 3 + F 4 = (2a − d + 4 x1 + 4h tan α )Wg /( 4a)（3．17）となる．傾斜面上で安定マージンを確保するために脚の往復運動を（3．7）式で表される量だけシフトした場合，右前脚復帰後の4 脚支持期の始まりの時のx1 の値はd/2‑h･tanαであり，終わりの時のあたいは‑h･tanαである．この4 脚支持期期間中，前2 脚が受ける力の和は(2ａ‑d)Wg/(4a)から(2ａ+d)Wg/(4a)に増加し，後2 脚の力の和は反対に(2ａ+d)Wg/(4a)から(2ａ‑d)Wg/(4a)に減少する．つまり，前2 脚と後2 脚が受ける力は4 脚支持期間中にdWg/(2a)だけ変動することになる．これは左前脚復帰後とも同じ事がいえる．このことを利用して未知の傾斜の斜面上での脚復帰のタイミングを決定できる．つまり 4 脚支持状態で胴体推進動作を行い，前2脚にかかる荷重が(2ａ+d)Wg/(4a)に，後2 脚にかかる荷重が(2ａ‑d)Wg/(4a)になった時点で後脚の復帰を開始する．この脚切り替え点は，水平面での歩行時より後方に移動しており，水平面上での歩行時に近い安定マージンを確保できる．斜面を下る場合も全く同様な手法で切り替え点を移動することができ，安定性が確保される．以上をまとめると，斜面に適応可能な歩行は① 前 2 脚の荷重が後2 脚の荷重より dWg/(2a)だけ大きくなるまで4 脚支持による胴体推進動作を続ける② 左後脚を距離ｄだけ復帰する③ 左前脚を距離ｄだけ復帰する

第３章

ロボットの歩行41④ 前 2 脚の荷重が後2 脚の荷重より dWg/(2a)だけ大きくなるまで4 脚支持による胴体推進動作を続ける⑤ 右後脚を距離ｄだけ復帰する⑥ 右前脚を距離ｄだけ復帰する⑦ ①にもどる
この歩様生成方を使えば未知の傾斜の斜面に対応できる．

3．3 動歩行
動歩行を行う際，重要となる評価基準が ZMP（ゼロ・モーメント・ポイント）である．ZMP とは，ロボットの重心に作用する重力と慣性力を足した合力のベクトルを延長し，地面（床面）と交わる点の事である．（図 3.7）

重心
慣性力

重力

ZMP
慣性力

進行方向
重力
図 3.7 ZMP
全ての脚が地面に着いている状態では，全ての足裏で形成する「支持脚多角形」の範囲内に必ずある．そして足裏が地面を踏みつける力の反対と，重力，慣性力の 3つの力およびモーメントがつり合うことを利用して，移動しながらも，倒れずにバランスを保つ．こうした「動的な力のつり合い」を実現するうえで，最も重要となる．
ZMP で，ロボットに加わる力がつり合うというのは，重力と慣性力と合力と地面からの反力
が，大きさが等しく，向かいが互いに逆になると言う事である．このつり合いは，常に成り立
っている．

第３章

ロボットの歩行42

ZMP が必ず足裏か支持多角形の範囲にあり，しかも動的な力のつり合いが常に成り立つとすると，ロボットは決して倒れないかのように見える．しかし，慣性力はあくまでも見せかけ上の力があるところが問題である．例えば，足裏で地面を踏みつける力が足りないと，慣性力は水平ではなく，少し斜め上を向く．（図 3.8）

慣性力

反力
進行方向
ZMP

足裏が地面を
重心の加速度の向き

踏みつける力重力
図 3.8 慣性力
この時，ロボットの重心は，斜め下に向かう加速度を持つことになる．重心が下がる方向に加速度を持つということで，つまり，倒れ始めていると言う事である．倒れないためには，重心が上がる方向に加速度を持たせなければならない．つまり，斜め下を向いた慣性力が必要になる．そのためには，足裏で地面を踏みつける力を強めることによって，慣性力を斜め下向きに変えなければならない．（図 3.9）このように足裏で地面を踏みつける力を制御する必要がある．

反力

重心の加速度の向き

慣性力

ZMP
進行方向

足裏が地面を踏みつける力重力
図 3.9 慣性力

第３章

ロボットの歩行43

3．4 指標に基づく歩行解析
歩行を移動と言う点からとらえると，重要なのは，最大移動速度や移動効率という指標であり，これらは，倒れる・滑る・つまづくといった事態が生じない限り，制御ではなく力学の問題となる．そこで，歩行という運動を移動機能という観点から解析・評価する指標として，「安定性」，「最大移動速度」，「移動エネルギー」の三つを導入する．[12]歩行のパラメーター
ある歩行ロボットについて不変のパラメーターを「大域的なパラメーター」と呼び，可変のパラメーターを「局所的なパラメーター」と呼ぶ．便宜的に，以下の分類に分けられると言われている．
大域的なパラメーター
・ 脚の自由度構成
・ 脚の本数・ 使用アクチュエーター
・ 胴体や脚の長さ，質量，慣性モーメントなどの物理量大域的なパラメーターは，ロボットの設計時に決定される．
局所的なパラメーター
・ 歩様・ デューティル比・ 移動速度，歩行周期，歩幅・ 胴体高さ，遊脚振り上げ高さ
局所的なパラメーターは，歩行計画時に決定される．
以上のことを四足歩行ロボットの歩行計画と設計に考慮する必要がある．
3.4.1 歩行の安定性と歩行周期
歩行周期 Tが大きくなると支持脚の運動の振幅が大きくなり倒れる危険性がでてくる．そこで，安定な定常歩行がなりたつ最大周期 Tmaxが存在する．脚式移動機構で，全脚の運びの１周期の中である脚の接地している時間の割合をその脚のデューティ比という．デューティ比α，移動速度 V，歩行周期 T，胴体に対する遊脚の振り出し幅とした歩幅 Sの間には次の関係が成り立つ．

V =

S
αＴ

（３．１8）（１）において，移動速度Ｖをあげるためには，歩幅Ｓを大きくするのか歩行周期Ｔを小さくすればよい．このとき，移動速度の上限値は，遊脚を駆動するアクチュエータの出力限界Ｕlimitより決定され，次式となる．

第３章

ロボットの歩行

44

V≤

UlimitlT
24J（３．19）

J：遊脚のモーメント，l：脚長，
この式より，移動速度をあげるために歩行周期を小さくすることは最大移動速度の点から得策
でなく，できるたけゆっくりとした周期と大きな歩幅で歩行することが望ましい事が分かる．
そして，Ulimitが比較的小さいときには，最大移動速度 Vmaxは式３．18で述べた Tmaxによって制限される．

V max =

U lim itlT max24 J（３．20）

すなわち，移動速度を上げるためには安定に歩行可能な周期をできるだけ大きくすることが望ましい．一般に，長い倒立振子棒ほど立てやすく，また，普通の振り子では周期はひものながさによって決定されることは良く知られている．歩行ロボットにおいても，倒立振り子モデル
による簡単な解析によると，各基本的対象歩行における安定な歩行周期は脚長の平方根に比例することが示されている．このことは，歩行ロボット設計において動歩行のためには，脚長を長く取り，できるだけ重心を高くすることが望ましいことをいみしており，静歩行の場合は反対になることになる．

第4章

実験

45

第４章
実験

4．1 実験１ 脚機構を重視した設計
脚移動ロボットにおける脚の役割は，胴体を支えつつ進行方向に移動させることである．そして，胴体を支える役目を終えると，脚は先端を空中に浮かせて進行方向に運ばれる． このような役割を果たすために，脚機構は以下のような要件を満たすことが望まれている．
・遊脚時の先端速度を大きく取れること
・支持脚時のエネルギー損失が小さいこと
・脚先端の可動範囲が広いこと
・胴体を支えるのに十分な剛性が得られること
・制御や整備が容易であること
しかし，これらの諸要件を全て満たす脚機構の考案は困難で，場合によっては相反する条件となることも少なくない．したがって，脚機構を設計する場合は，上記の要件をできる限り満た
しつつ，その歩行ロボットの使用条件に合うよう機構を選択/設計する必要がある．
今回，設計するにあたり遊脚の先端速度と可動範囲はラジコン用サーボを使用するためサーボの性能に依存してしまう．そこで残された要件を満たすよう考案した．
制御や整備が容易に出来るよう全ての脚はボルトとねじで取り外しが出来るよう設計し，
生馬と同じ歩様と揺れを実現するために生馬の骨格を参考にしてミニモデルの設計を決めた．
また，屋外用乗馬ロボットを製作すると，電源，制御装置，アクチュエータなど，かなりの重量となることが想像できる．そのため今回の設計は，軽量を目標とし最低限必要な自由度とセンサー無しで動くミニモデル設計行うことで支持脚のエネルギー損失を小さくした．
4.1.1 前肢
生馬の前肢の主な関節部分は肩甲骨に縦と横方向の２自由度，２の上腕骨は縦方向に１自由度，３の遠位種子骨は縦と横方向の２自由度，計５自由度持っている．しかし，ミニモデル設計す

第4章

実験

46

るにあたり，遠位種子骨部分の横軸方向の自由度を減らし肩甲骨部分に，ラジコンカーから利用したダブルフィッシュボーン方式のサスペンションを付け胴体が平行に安定するように設計した．（図 4.1）また，肩甲骨部分の横軸方向の自由度は平行リンクを作り，左右前肢が同じ角度で曲がるように設計した．（図 4.2）

1，肩甲骨

２，上腕骨

３，遠位種子図 4.1，前肢関節のモデル化

図 4.2，平行リンク

第4章

実験

47

4.1.2 後肢
生馬の後肢の主な関節部分は１の大腿骨に縦と横方向の２自由度，２の近位関節は縦方向に１
自由度，３の種子骨は縦と横方向に２自由度，計５自由度持っている． ミニモデルでは，種子骨部分と大腿骨部分の横方向の自由度を減らし，大腿骨部分にラジコンカーから利用したダブ
ルフィッシュボーン方式のサスペンションを付け胴体が平行に安定するように設計した．平行リンクは使用せず，前肢に追従して動く設計を考えた．（図 4.3，図 4.4）

1，大腿骨2，近位関節3，種子骨

図 4.3，後肢関節のモデル化

図 4.4，後肢

第4章

実験

48

4.1.3 関節現在，歩行ロボットの関節には多くの種類がある．代表的なものとして，回転関節を胴体から順番に接続した回転関節連続型，油圧シリンダーやリニアモータなどを用いた伸縮型，四足哺乳類の脚に似た，膝関節のある膝関節型，電車のパンタグラフのような機構を用いた平行リ
ンク型，2次元の平行リンクを 3次元に拡張した機構の 3次元平行リンク機構などである．その中から機構的に単純で，脚先端を３自由度に制御することも容易な回転関節連続型で設計をした．（図 4.5，図 4.6，図 4.7，図 4.8）

図 4.5 回転関節

図 4.6 回転関節

第4章

実験

49

図 4.7 回転関節

図 4.8 回転関節分解図

第4章

実験

50

モーターは，制御が簡単なラジコン用サーボでトルクの大きかった「Hyper ERG-VB」（サンワ）を使用することにした．（図 4.9，表 4.1）

図 4.9 サーボ

速度0.10sec/60° （6V）

トルク13kg ・cm（6V）

寸法39.0×20.0× 37.4mm

重量60g
赤：電源（４．８〜６Ｖ）
黒：ＧＮＤ
青：制御信号配線（Ｚコネクター）
パルス周期

１０〜２０ｍｓ

パルス幅１．５ｍｓ（０°）±０．５ｍｓ（±６０°）
表 4.1 サーボスペック

4.1.4 制御
PIC を用いて制御することにした．使用した PIC は，比較的安価で高機能である「ＰＩＣ１６
Ｆ８７７」を使用した．また電源は有線にて外部から供給する事でミニモデル本体とは別にした．（表4.2，図 4.10）

第4章

実験

開発元
ピン数
動作速度
動作電圧範囲51

米国マイクロチップテクノロジ社（Microchip Technology Co.）
４０個
２０ＭＨｚ クロック入力
２００μｓ 命令サイクル
２．０〜５．５Ｖ
表 4.2 スペック

図 4.10 ＰＩＣ１６Ｆ８７７
4.1.5 製作
以上の設計を元に実際にミニモデルを製作した．（図 4.11，図 4.12）

第4章

実験

52

図 4.11 ミニモデル

図 4.12 ミニモデル
4.1.6 実験
実際に常歩の歩様再現実験を行った．今回は PIC 制御により，脚 1つの関節を動かさず，1 つ
1 つの関節を動かす事になった．そのため，脚の動きが滑らかに動かなかった．また，脚のフレームが歪み振動が起こってしまった．そこで，フレームの強度解析をした．

第4章

実験

53

4.1.7 考察
歪みを調べるためフレームの強度解析をした．入力するべき状態は４脚支持状態で，ｉ番目の脚にかかる重力方向の力を Fｉ，ｉ脚で検出できるＦｉの分力をｆｉ，そしてＦｉとｆｉとのなす角をφｉとし，脚間に働く内力を無視すると，

fi = Fi cosϕi（４．１）となる．各脚の機構が同一で，4 脚支持状態にあるとき同側の 2 脚の位置は各々の脚座標系において等しいので，φ1＝φ3，φ2＝φ4 となる．また全体重量を右 2 脚と左 2 脚とで均等に負担するので，Ｆｉは次のように求めることができる．

F1 = Wg ⋅ f 1 /{2( f 1 + f 3)}（４．２）

F 2 = Wg ⋅ f 2 /{2( f 2 + f 4)} （４．３）
F 3 = Wg ⋅ f 3 /{2( f 1 + f 3)} （４．４）
F 4 = Wg ⋅ f 4 /{2( f 2 + f 4)} （４．５）
以上の式をＣＡＤソフトに入力し，パーツごとの応力分布を出した．（図 4.13，図 4.14，図4.15
図 4.16）

図 4.13 足先の関節部分

第4章

実験

54

図 4.14 足先のＬ型つなぎ部分

図 4.15 中間の関節部分

第4章

実験

55

図 4.16 本体と脚のつなぎ部分
赤みが掛かるほど応力が掛かっていることになる．特にＬ型のつなぎ部分に応力が掛かっている事が分かる．この応力のたわみが振動などの原因だと思われる．よって脚部はより強度のある設計が必要となる．

4．2 実験２ 理想値の再現
一号機の結果より，脚のフレーム強化と脚の滑らかな動きを改善した．複雑な動作が可能になるようマイコン等を装着し，脚のフレームにはイトーレイツを利用する事にした．（図 4.16）

図 4.17 イトーレイツの関節

第4章

実験

56

強度もアルミからステンレスに変ることによって剛性が上がると思われる．また，軸穴などが正確に出来ているため，軸ズレも少なくなった．モーターも「Hyper ERG-VB」から同等な性能を持ちつつ，小さく軽い KO プロポPDS-2144FET に変更した．（図 4.17 表 4.3）

図 4.18 PDS-2144FET

速度0.13s/60°（6V）

トルク

13.0Kg-cm（6V）

寸法41×38×20mm

重量

54.5g
赤：電源（４．８〜６Ｖ）
黒：ＧＮＤ
青：制御信号配線（Ｚコネクター）
パルス周期

１０〜２０ｍｓ

パルス幅１．５ｍｓ（０°）±０．５ｍｓ（±６０°）
表 4.3 スペック

4.2.1 制御
制御は日立 BTC050 SH2/7045F マイコンボードセットを利用した．（図 4.19，表 4.4）

第4章

実験

57

図 4.19 SH2/7045F マイコンボード

BTC050 マイコンボード仕様
CPU
クロック

外部メモリ

通信機能
電源監視
動作温度
電源
寸法

コネクタ等

HD64F7045F28
28MHz固定
1M ビット S-RAM 装着済み
8 ビットデータバス接続
バッテリバックアップ可能
バス開放可能アドレスマップ 400000H〜
41FFFFH
RS-232Cレベル ステレオピンジ
ャック装備
リセットIC 装備
0〜+40℃
DC5V+-5% 150mA
W82.8×D64.0×H15.0mm
30,40,50 ピン端子各１
バッテリバックアップ端子
通信用ステレオジャック
外部 RAMモード切替えジャンパ
CPU モード切替ディップスイッチ

表 4．4 ボードスペック

第4章

実験

58

また，脚の先端を位置決め制御で行った．歩行アルゴリズムは以下のようになる．（図 4.20）
１．軌道を決める
２．軌道上の点を取り出す
３．足先が軌道上の各点に来る関節角度を求める
４．各関節角度に対応するサーボデータを求める
５．軌道上の点列の順にサーボへサーボデータを出力する
また，足先の軌道は，足先をスムーズに動かすことを考えて楕円に近い軌道を描くようにした．

C

D

B

A

図 4.20 足先アルゴリズム
先端座標は以下の式によって計算した．（図 4.21）
先端の座標（ｘ、ｙ）
b=x‑l3cosθ,
a=y‑l3sinθ,c２=a２+b２,
α=cos‑1 ((l12+c2‑l22)/2l1c),β=cos‑1 ((l12+l22‑c2)/2l1l2),
φ=tan‑1 (a/b),θ1=φ±α,θ2=±(β‑π),θ3=θ‑θ1‑θ2,

第4章

実験

59

Y

L1

θ1 X

α
β

θ2

α
L2
L 3 θ3（ｂａ）

θ
図 4.214.2.2 製作
以上の改善よりミニモデルを新しく製作した．（図 4.22，図 4.23）

図 4.22 ミニモデル２

第4章

実験

60

図 4.23 ミニモデル２
4.2.3 実験
常足の歩行実験を行った．フレームの振動は比較的減少した．またマイコンで制御を行えるようになったため，脚一本が滑らかになった．そこで，より生馬の動きに近づけるため具体的な数値を入力することにした．実際の生馬から「速度」「周期」「つま先の角度」を算出し，ミニモデルに対応した常足の数値を第 3章で述べた（3．18）式を使って算出した．（表 4.5）この値に沿っての遊脚の歩幅と姿勢も決めた．今回，周期を同じにし，歩幅を本来のニミモデル
よりも大きくした．つま先角度とは，支持脚と地面との間の角度の事である．（図 4.23）

生馬

モデル

歩幅

50〜75cm

6.4〜9.6ｃｍ

つま先角度

67°〜54°67°〜54°

周期

4秒

4秒

表 4.5 常歩の数値

第4章

実験

61

つま先角度

図 4.26 つま先角度
理想値を出すと共に，モデルの姿勢維持限界角度の範囲の値を足首のモータートルクより計算
し，理想値を入力できるか計算した．（図 4.27）計算式はｍｇ・ｃｏｓθ≦サーボのトルク／Ｌ（４．１）

を使い，モデルでの限界つま先角度を出した結果，６７度まで耐えられるため理想値を挿入できる結果となった．

mg・
cosθ
Ｌ
mg･sinθ

図 4.27 姿勢維持限界角度の範囲
4.2.4 実験結果
角度・歩幅は理想値通りに再現できた．しかし，歩幅を大きくとり周期を遅らせたがマイコンの処理能力が追いつかず再現する事が出来なかった．また，周期を早めるとサスペンション
が深く沈みこみ安定余裕が小さくなる結果となった．

第4章

実験

62

4．3 実験３ 安定余裕の拡大
二号機の結果より，安定余裕を大きく向上するよう設計・改良する必要がわかった．現在の四足歩行ロボットの多くは安定余裕を大きく保つためにソフト面で各関節の角度を調整する傾向である．しかし，ソフト面で安定余裕を大きく計ろうとすると馬の揺れの再現に制約がかかる可能性がある．そこで，機械的構造で安定余裕を大きく保つことが出来るよう設計・製作した．
4.3.1 設計
安定余裕は支持脚多角形に重心を投影したものである．従って重心を動かさない様に支持脚
多角形を大きく取るか，重心を支持脚多角形の内部方向に移動すれば安定余裕が大きくなる．
前者の支持脚多角形を大きくとる方法は，馬の動きを変えることになるため，後者の重心を支
持脚多角形内部に移動できる方法を選択した．常足が描く歩様の支持脚多角形はほぼ直角三角形である．（図 4.28）また，重心はボディの中心辺りにある．その状態で安定余裕を大きく取るには遊脚が浮いている時は対角線上の脚に向かって動くボディより重い重りを作れば重心は動く事になる．そこで，レールとバネを利用した重心移動装置を設計した．

図 4.28 重心の理想移動
4.3.2 製作
本体中央に重心となる重りがくるよにした．また，今回の重りは 300ｇとなった．バネは足首まで伸ばさず，レール内に配置しレールから足首まではテグスを使った．（図 4.29，図 4.30，図
4.31）

第4章

実験

63

図 4.29 レールの配置

図 4.30 レール内のバネ

第4章

実験

64

図 4.30 重りを取り外したレール
4.3.3 考察
重心移動を考慮した結果，前回サスペンションが原因で不安定となったが，今回重りをつけた事により，荷重が移動すると移動先のサスペンションが深く沈み，対称側のサスペンションは伸びたため，より荷重が移動し安定するという面白い結果がでた．これは，今までバネ下荷重つまり，脚がボディより重いため脚がサスペンションが重心移動の邪魔をしていた事が分った．しかし，バネの力が脚に掛かってしまうため，かなりのトルクが必要となる結果となった．

4．4 考察以上，3回の実験を行った．生馬からミニモデルに対応した「速度」「周期」「歩幅」を算出した．周期はマイコンの性能が限界だったため，再現できなかったが今後はより高性能なマイコンを利用すれば再現可能かと思われる．もしくは，マイコンの数を増やし脚の制御数を減らすことによって再現できる可能性もある．重心移動は重りを使うことにより安定した歩行が出来るようになったが，脚に負担が掛かる，そこで，今後は本体の中央にバランサーをつけ，脚の動きに同調したバランスをとる荷重移動装置を開発するべきである．また，サスペンションのバネレートを変えることによって安定性が変る可能性がある．

第5章

結章

65

第 5章
結章

5．1 本研究の成果
本論文では，室内用乗馬ロボットの利点を述べ，屋外用乗馬ロボットの必要性を説いた．また，屋外用乗馬ロボットに向け脚歩行ロボットが持つ静歩行・動歩行の安定性の違いを述べ，
生馬の歩様を静歩行と動歩行に分類分けをすることにより，今後の動作実験に生かす事が可能になった．また，生馬を参考に室内用乗馬ロボットのミニモデルを設計・製作し，実際に歩行実験を行った．実験機ごとに改善・改良を加える事により，安定余裕の拡大と生馬の動きに近づけることができた．制御にたよらず，機械構造によって改善できた事で乗馬医療に重要な揺れは制御方面だけで考えることが出来るようになった．

5．2 今後の課題
今後の課題として，より複雑な動きの再現に向けセンサー等を設置し他の歩様再現が必要である．また，曲線的に動けるようさらなる関節，ボディの改良が必要となる．今回の実験では，周期の問題が残っているが，それはマイコンの改善で克服できると思われる．しかし，更に速い歩様，特に襲歩や駆歩など速度，周期が上がった時の対策が必要である．また，それに伴い乗馬医療という点から見てこれらの歩様が本当に必要なのかの見当も考えなければならない．
現在は，二足歩行ロボットも盛んに開発されている．それらのロボットの特長から四足歩行に利用できる物も多々ある．それらを改めて調査する必要がある．

参考文献

66

参考文献
[1[平成十年 国民生活基礎調査 第 2巻全国編 厚生省大臣官房統計情報部編[2]http://www.equinst.go.jp/center/index.html[3]http://www.jrad.jp/

ようこそ競走馬総合研究所（本所）へ

日本障害者乗馬協会[4]四宮葉一他，"乗馬医療機器の開発と筋力トレーニング効果の検証"，日本バーチャルリアリテ
ィ学会[5]中島了治他，"ＶＲ乗馬療法システムの開発とその効果検証に向けての取り組み"，ヒューマン
インターフェース学会誌 Vol. 1，No.4（1999年）[6]木村哲彦，"生馬シミュレータの開発"，医療第 40巻 第 8号（1986年）[7]中島了治他，"VRを応用した乗馬療法システムの開発"，松下電工技報，No.65（1999年）[8]村上宗司他，"VR を応用した乗馬療法システムの構築"，日本バーチャルリアリティ学会 第 2回大会全文集（1997年）[9]橋本，「馬の解剖アトラス」日本中央競馬協会弘済会，（1987）[10]http://homepage1.nifty.com/BROKEN/index.htm BROKEN's Advanced Vehicle Laboratory[11]安達弘典他，"脚に設置されたセンサーを用いた４脚歩行ロボットの適応歩容"，日本ロボット学会誌（1991年）[12]木村浩，"４足歩行ロボットの動歩行について"，日本ロボット学会誌（1993年）

67

謝辞

謝辞

本論文は筆者が高知工科大学大学院博士課程前期において行った研究である．
本研究を行うにあたり，ご指導を下さった高知工科大学知能機械システム工学科王碩玉教授，松下電工株式会社四宮葉一氏，小澤尚久氏に深く感謝致します．
また，製作や実験関して指導を下さった，高知工科大学大学院博士課程陳貴林氏，
溝渕宣誠氏，修士課程伊藤淳氏，隅田由紀氏，野村和寿氏，浜口和洋氏に深く感謝致します．
そして，共同研究して下さった松浦純氏や実験の手伝いなどをしてくださった知能
ロボティクス研究室の皆さんに深く感謝致します．
最後に，大学，大学院と学生生活を支えてくれた両親，兄に感謝致します．
２００３年１月３０日

付録//------------------------------------------------------------//------

UMA SH7045//------

by J.Matsuura---------------------//------------------------------------------------------------// 32bit RISC CPU SH7045F 256K Flash RAM 1Mbit(128k) 28MHz//--------------------------// includ files//--------------------------#include "7045.h"// From Besttechnology CD-ROM#include "mess.c"// From Besttechnology CD-ROM#include <fastmath.h> //<math.h>//---------------------------------------------------------// サーボの初期値#define RL0 2150// 右前足上から#define RL1 2370
#define RL2 2600
#define RL3 2020
#define RL4 2300
#define RL5 2450
#define RA0 2000//未使用

#define RA1 2000
#define LL0 2350
#define LL1 2650
#define LL2 2470
#define LL3 2210// 左前足上から#define LL4 2430
#define LL5 2480
#define LA0 2000//未使用

#define LA1 2000//---------------------------------------------------// 大域変数の設定//---------------------------------------------------int tim5ms; // 5msec counter
int tx5;// 5msec counter

int tim1sec; // 1sec counter//---------------------------------int ll[6]; // 右足
int la[2];int rl[6]; // 左足
int ra[2];//------------------------------------------------------------// 立った姿勢の初期化//------------------------------------------------------------void stand(){
int i;// 手足のサーボの初期化
ll[0]=LL0;ll[1]=LL1;ll[2]=LL2;ll[3]=LL3;ll[4]=LL4;ll[5]=LL5;
rl[0]=RL0;rl[1]=RL1;rl[2]=RL2;rl[3]=RL3;rl[4]=RL4;rl[5]=RL5;
la[0]=LA0;la[1]=LA1;
ra[0]=RA0;ra[1]=RA1;
PA.DR.WORD.H=0x0040; //右腕on}//------------------------------------------------------------// ポートの初期化//------------------------------------------------------------void port_init(void){//----------------------------------

//ポートのピンファンクションの設定//---------------------------------PFC.PAIORH.WORD=0x0060; //[OUT]PA21,22
PFC.PECR1.WORD=0x5555; // MTU mode
PFC.PECR2.WORD=0x5555; // MTU mode
PFC.PEIOR.WORD=0xffff; //PFC.PDCRH2.WORD=0x0; // I/O mode
PFC.PDIORH.WORD=0x00ff; // [OUT]PD16-23// ＷＤＴの設定 void
WDT.WRITE.TCSR = 0xa53d; // clock/1024 9.2ms カウントアップ開始
INTC.IPRH.WORD = 0xf000; // WDT 優先順位=15
SetSRReg (0);// 割り込みマスククリア}//------------------------------------------------------------// PWMの設定//------------------------------------------------------------void pwm(void){// Timer stop
MTU.TSTR.BYTE=0;// PWM Timer stop// ポートへ出力
PWM.TOER.BYTE=0xff;// Timer0 set
MTU0.TCR.BYTE=0x02;// 通常モードでワンショット

MTU0.TMDR.BYTE=0xc0;
MTU0.TIOR.WORD=0x5555;
MTU0.TGRA=ll[0];MTU0.TGRB=ll[1];MTU0.TGRC=ll[2];MTU0.TGRD=ll[3];// Timer1 set
MTU1.TCR.BYTE=0x02;
MTU1.TMDR.BYTE=0xc0;
MTU1.TIOR.BYTE=0x55;
MTU1.TGRA=ll[4];MTU1.TGRB=ll[5];// Timer2 set
MTU2.TCR.BYTE=0x02;
MTU2.TMDR.BYTE=0xc0;
MTU2.TIOR.BYTE=0x55;
MTU2.TGRA=rl[0];MTU2.TGRB=rl[1];// Timer 3 set
PWM.TCR3.BYTE=0x02;
PWM.TMDR3.BYTE=0x00;
PWM.TIOR3.WORD=0x5555;
PWM.TGR3A=rl[2];PWM.TGR3B=ra[0];PWM.TGR3C=ra[1];PWM.TGR3D=rl[3];// Timer4 set
PWM.TCR4.BYTE=0x02;
PWM.TMDR4.BYTE=0x00;
PWM.TIOR4.WORD=0x5555;
PWM.TGR4A=rl[4];PWM.TGR4B=rl[5];PWM.TGR4C=la[0];PWM.TGR4D=la[1];//カウンターリセット
MTU0.TCNT=0;
MTU1.TCNT=0;
MTU2.TCNT=0;
PWM.TCNT3=0;
PWM.TCNT4=0;// Timer start
MTU.TSTR.BIT.CST0=1;// MTU channel0 start

MTU.TSTR.BIT.CST1=1;// MTU channel1 start

MTU.TSTR.BIT.CST2=1;// MTU channel2 start

MTU.TSTR.BIT.CST3=1;// MTU channel3 start

MTU.TSTR.BIT.CST4=1;// MTU channel4 start}//----------------------------------------------------------

// WDT-ITI 割り込みルーチン//---------------------------------------------------------// 割り込み処理プログラム
void int_iti(void){char a;WDT.WRITE.TCSR=0x5a26; // TCNT=117=0x75 5msec maxFF=9.4msec
a=WDT.READ.TCSR.BYTE; // OVFクリア
WDT.WRITE.TCSR=0xa53d; // TCSR への書き込み//--------------// PWMのセット//--------------pwm();//-----------------// 時間のカウント//-----------------tim5ms++;tx5++; // 5msecのカウンターインクリメント// 200回になったら１秒単位のカウンターインクリメント
if (tim5ms>20){ tim1sec++; tim5ms=0; } else{}}//---------------------------------------------------------// メイン//---------------------------------------------------------int main(void){
stand();// 初期設定

port_init();// ポートの初期化

pwm();// PWM セット

InitSCI1 (br57600); // シリアル(SCI)初期化57600[bps]int sw[4]={1,4,4,4};
int ss1,xx,i;
float v;double ran,l1,l2,l3,s1,s2,s3,st,ds,al,bt,x[4],y[4],yy,yd,high,vp,xlf,ylf,a,b,c,pai=3.1415926,rad;l1=6.8;l2=6.8;l3=3.0;//x=1.44;y=1.63;
st=0.0;rad=pai/180.0;
x[0]=16.2;y[0]=3.0;
x[1]=16.2;y[1]=-1.0;
x[2]=16.2;y[2]=-3.0;
x[3]=16.2;y[3]=1.0;
v=0.1;
high=13.8;//vp=(6.0+((16.2-high)*2.0))/6.0;
vp=1.8;//a=0; b=0; c=0; ds=0; al=0; bt=0; s1=0; s2=0; s3=0;//長方形の軌道作成
while(1){for(i=0;i<=3;i++){if(sw[i]==1){x[i]-=(v*vp);
if(x[i]<=high) {x[i]=high;sw[i]++;}}
else if(sw[i]==2){y[i]=y[i]-(v*vp);
if(y[i]<=-3.0) {y[i]=-3.0;sw[i]++;}}
else if(sw[i]==3){x[i]+=(v*vp);
if(x[i]>=16.2) {x[i]=16.2;sw[i]++;}}
else if(sw[i]==4){y[i]+=(v/3.0);
if(y[i]>=3.0) {y[i]=3.0;sw[i]=1;}}//逆運動計算
yd=y[i];if(i==1 || i==3)yd=-y[i];b=x[i]-l3*cos(st*rad);a=yd-l3*sin(st*rad);c=sqrt(a*a+b*b);
ds=atan(a/b);
al=acos((l1*l1+c*c-l2*l2)/(2*l1*c));bt=acos((l1*l1-c*c+l2*l2)/(2*l1*l2));if(i==1 || i==2){
s1=ds-al;s2=-(bt-pai);}if(i==0 || i==3){s1=ds+al;s2=(bt-pai);}s3=(st*rad)-s1-s2;
s1=s1/pai*180; s2=s2/pai*180; s3=s3/pai*180;if(i==0){s1=s1*1000.0/60.0+2480.0;s2=s2*1000.0/60.0+2480.0;s3=s3*1000.0/60.0+2700.0;
rl[0]=s1; rl[1]=s2; rl[2]=s3;}
if(i==1){s1=s1*1000.0/60.0+2480.0;s2=s2*1000.0/60.0+2480.0;s3=s3*1000.0/60.0+2280.0;ll[0]=s1; ll[1]=s2; ll[2]=s3;}
if(i==2){s1=s1*1000.0/60.0+2380.0;s2=s2*1000.0/60.0+2480.0;s3=s3*1000.0/60.0+2700.0;
rl[3]=s1; rl[4]=s2; rl[5]=s3;}
if(i==3){s1=s1*1000.0/60.0+2350.0;s2=s2*1000.0/60.0+2570.0;s3=s3*1000.0/60.0+2480.0;ll[3]=s1; ll[4]=s2; ll[5]=s3;}
xx=floor(x[0]*100.0);yy=floor(y[0]*100.0);
SendMessage1 ("x=%d y=%d rl[0]=%d \r",xx,yy,rl[0]);}}}//