JPS62161366A - Method for operating part of patient and operation apparatusused therein - Google Patents

Method for operating part of patient and operation apparatusused therein

Info

Publication number
JPS62161366A
JPS62161366A JP61110467A JP11046786A JPS62161366A JP S62161366 A JPS62161366 A JP S62161366A JP 61110467 A JP61110467 A JP 61110467A JP 11046786 A JP11046786 A JP 11046786A JP S62161366 A JPS62161366 A JP S62161366A
Authority
JP
Japan
Prior art keywords
limb
patient
signal
command
operating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP61110467A
Other languages
Japanese (ja)
Inventor
ジエイムス アレン マツキユーイン
ジエフリイ フレツチヤー オーチンレツク
ジヨン カルバン オズボーン
レイナー マテイアス ボール
ウオルター ジヨーン ジヤガー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ANDORONITSUKU DEBAISUIZU Ltd
Original Assignee
ANDORONITSUKU DEBAISUIZU Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ANDORONITSUKU DEBAISUIZU Ltd filed Critical ANDORONITSUKU DEBAISUIZU Ltd
Publication of JPS62161366A publication Critical patent/JPS62161366A/en
Pending legal-status Critical Current

Links

Landscapes

  • Endoscopes (AREA)
  • Accommodation For Nursing Or Treatment Tables (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
(57) [Abstract] This bulletin contains application data before electronic filing, so abstract data is not recorded.

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は患者の生理的、形態的状態変化に応じて患者に
対する作動装置を操作する医療ロボットに係り、特に患
者の手足を好適な形に置くよう働き、関節鏡検査の外科
処置を行なう際補佐する手足作用装置をなし得るような
高精度の医療ロボットに関する。 「ロボット」とはアメリカロボット協会(Ro−bot
 工n5titute of America )によ
れば、各種のプログラムにより所定の動作を実行し、材
料、工具又は他の適合装置を動作させ、各種の仕事(タ
スク)を行なう再プログラム可能な多機能操作装置と定
義されている。また「高精度ロボット」とは予知されて
ない条件を含めた各種の条件下で各種の仕事を人間の如
く行なうことのできる多機能機械装置と定義される。こ
の場合、高精度ロボットは外科分野において補佐装置と
して機能させ、手術費用を低減し且医療あるいは診断の
質を高め得る医療ロボットとして有効に利用される。 一般に緊急治療病院(救急病院)において診療あるいは
治療を同質に維持するに必要な費用、および健康管理を
向上させるに必要な費用は社会の支払能力に比べ急速に
伸びている。また多くの緊急治療病院の経費の約80%
は人件費で占められている。現在病院における大半の労
力はロボットあるいは自動化の可能な定常の反復作業に
当てられている。従って(既に製造業分野に利用されて
いる)高精度ロボットを健康管理に採用すれば省力化を
図り得、経費を低減できる。 一方医療あるいは外科治療の大半は現在人間による治療
では限界に来ている。例えば微少組織あるいは極めて大
きな組織に対し長時間、正確且一定に治療を行なうこと
は人間には極めて困難である。この場合高精度ロボット
を開発し、医療あるいは外科手術に採用することにより
、人間の能力の限界を越える治療あるいは診断を実行で
き、質を向上させることができよう。また緊急治療病院
では、スタッフあるいは患者は種々の危険な環境あるい
は薬剤、例えば放射線、滅菌状態、有毒ガス、抗腫瘍性
薬剤に、更に無菌状態、伝染体、過剰のバリウムが存在
する環境に晒される危険性がある。このような場合にお
いても高精度ロボットはスタッフあるいは患者をこのよ
うな危険から回避させるように有効に利用される。 (従来の技術) 各種の仕事を行なうため部品、工具又は専用機器を再プ
ログラム可能に構成した上、多機能操作しうる健康管理
装置を用いるとは当業者において周知である。また健康
管理作業においてプログラムされた動作を実行し対象物
を操作しうる装置を使用することも当業者に周知である
。当該装置においては、切断あるいは機能不全になった
手足の機能遂行あるいは増大用の補綴用あるいは起立用
補佐装置、注射器を操作して患者に薬量を制御しつ\投
入する、コンピュータを用いた薬液供給装置、所定のプ
ログラムに従って作動される運動機器、手術後に手足を
強制的に運動させる連続運動強制装置、障害者用の、産
業ロボットを備える、コンピュータを用いた環境順応装
置、診断用のブリプログラムによるストレス試験機、危
険な材料あるいは極めて小さなものを扱う遠隔操作によ
る操作機、操作者により制御される電動車イス、自動患
者移送装置、手術室の補助動力付手術台、患者の体位制
御装置等が挙げられる。この場合当業者に知られている
健康管理装置は、殆んど医療機能を行なうものではなく
、アメリカロボット協会で定義したロボットの重要な特
性の少なくとも−を欠いていて、高精度の医療ロボット
とは云い難い。ここでは医療機能を行なう装置とは、病
気の診断あるいは治療に使用できるものを指す。 従って当業者に周知の健康管理を行なう装置のいずれも
が上述した高精度の医療ロボットに当てはまらず、且適
宜の変換器を用いて患者の生理的または形態的パラメー
タを検出し、当該パラメータの変化に応じて診断し、必
要に応じて治療を変え得る医療装置に至っていない。高
精度の医療ロボットには生理的又は形態的パラメータと
して、例えば切解寸法、大きさ二重量および比較重量二
人体の各種の組織あるいは部分の位置および対照位置:
各種の組織の圧力、力、トルク、応力および変形:温度
;ペーハ;呼吸波形;心電波形;脳波形;血圧波形;網
膜型信号;血流信号;筋電信号が付与されるように構成
されることが好ましい。 医療ロボットは関節鏡検査としての医療を行なう際これ
を補佐するものとして好適である。関節鏡検査とは診断
又は矯正手術中通常法等の関節内部を、関節に1又は2
個の小さな腔を開(すて可視検査することを指す。関節
内部に光を与えるよづに光ファイバを用いた関節鏡には
、整形外科医が直接肉眼により又はTVモニタカメラを
用いて対象部分を観察できるよう複雑な光レンズ機構が
具備されている。関節鏡を介して外科医が治療対象部分
を観察しながら、他方の腔から細いプローブ、ナイフ又
はふん口を挿入し損傷した軟骨、骨、関節組織を検査し
、切除する。電動ロータリカッタのような他の治療器具
を関節に開けた腔の他方から挿入して施療できる。この
場合観察を容易にするため、液を注入し対象部分を膨張
させたり、又は手術中除去したものを取り出すため更に
別の腔を開は得る。 膝の診断、治療に利用する関節鏡検査は汎用性があり、
足首、肘、腰部、肩の損傷に対しても採用されていて、
基本的な施療技術は上述の関節の場合と同じである。診
断用の関節鏡は多くの分野で、X線を用いる形式のもの
から関節腔撮影を行なうものに急速に置き換えられてい
る。この関節鏡検査によシ外米のみで患者の多種の関節
損傷の治療が可能となっている。入院患者並みの重い損
傷の場合でも関節鏡検査に基づいて手術することにより
直ちに歩行可能となる。関節鏡検査技術は低コストで効
果的な診断および治療ができるので整形外科の他の分野
にも転用されつつあシ、従って高精度の医療ロボットの
提供が望まれていた。 (発明が解決しようとする問題点) しかしながら従来関節鏡検査を行なう際、手術中患者の
挙足を安全に、効果的にかつ正確に位置させることが困
難であり、最良の施療を行なうには大きな問題となって
いた。例えば外科医は患者の手足を保持する一方で、関
節鏡あるいは各種の機器を操作して手術することになる
。この場合外科医は患者の手足を動かし所望の位置に保
持するような手術用助手と連係することもあるが、治療
費が高くなる原因となっていた。またこの場合外科医は
患者の位置を間接的に指示することになるから、関節内
部の各組織の観察が損なわれ、手術の質が低下すること
になっていた。患者の足に対し診断あるいは関節鏡検査
を行なうとき医者は足を例えば止血帯を付ける前に足か
ら血を自然流出させるような高い位置、完全に水平に延
伸させた位置、下部を上部に対し約90度曲げた完全屈
曲位置、下部1を上部に対し約135度の角度で曲げた
半屈曲位置、足首を他方の足のひざまで移動し、2本の
足を水平面上で4の字状に置くような、いわゆる「4の
字」位置に動かすことを企図することが多い。更に外科
医は膝の所望部分を可視観察するため足を外反り、ある
いは内外すさせるよう(二横方向へ力を加えたい場合も
ある。且可視観察するため内側又は外側に回転を与えた
り、ある位置から別の位置に患者の足位置を変更したい
場合もあシ、総じて外科医の企図通り足を自在に変位さ
せる装置が望まれていた。即ち手術および診断に用いる
関節鏡検査用の従来の装置およびこれを操作する技術で
は関節鏡検査の特性が充分に発揮されない問題があり、
この場合医者の企図を直接反映する手足の動作装置が実
現され\ば、手術の労力が軽減され、診断および治療時
間が低減され得、多くの場合手術助手も不要となろう。 また診断および治療の質の維持および一貫性が向上され
よう。 一方手足の動作装置を直接制御する場合手術室では別の
問題が生じることが考えられる。即ち手術環境を無菌状
態に維持して、当該動作装置を外科医により制御可能に
する必要がある。この問題は患者の手足動作装置自体に
おいて生ずる問題以上であり、多くの場合外科医は装置
に物理的に接触することなく、無菌状態を損なわずに且
手元から目を外したり手を外すことなく手足の動作装置
を制御可能であることが望まれる。即ち、無菌状態を維
持すると同時に操作ロンド、手動スイッチ、フットスイ
ッチ、リードスルー(lead−through )又
はパワーリードスルーにより手足の動作装置を直接制御
せずに、装置を動作可能にすることが望ましい。このた
め操作装置を音声制御可能にすれば、外科医は両手と両
目が空くことになり、手術に専念できよう。 しかしながら従来の音声制御構成をこの種の医療装置に
適用する場合、特に周囲に各種のノイズがあると認識精
度が制限され且音声指令による応答動作時間が長く概し
て医療には不適当であった。 通常の音声認識構成は時間および状態1−制約が加わる
ため、人による音声を正確に認識できず、音声認識が失
敗したときは患者の手足の動作装置のような装置の制御
装置を操作者が補正する必要がある。医療用装置に適す
る音声制御構成としては、音声認識が失敗したときでも
、これを補正し効果的かつ確実に制御でき、且遅延なく
作動可能なものが求められる。 更に従来の音声制御構成では医療装置に生じる他の問題
も解決できない。例えば手術室においてノイズがあった
り、複数の人が同時に話したりするときには選別性の高
い音声収集装置が必要である。またかかる音声収集装置
により手術室の無菌状態を損なわないようにする必要が
ある。且周知のマイクロホンを用いる場合、患者の頭部
又は胴部に付設したマイクロホンと音声制御回路との間
に接続線が存在するため手術室内を動く外科医の動作が
制約され、また手術室内の無菌状態が損なわれる危惧が
ある。加えて手術スタッフの付ける手術用マスクによシ
音声が消されたり盈んだシするので、音声収集装置は手
術マスクの無菌防止効果を損なうことなく、この歪等を
補正する必要もある。また既存の手術マスクを付ける場
合顔面の形状、マスク取付は方等の差を勘案する必要も
ある。 (問題点を解決するための手段) 本発明による、患者の生理的又は生態的状態の変化に応
じて作働装置を操作する装置においては患者の生理的又
は生態的状態を検出し、これに対応する治療条件を表わ
すような治療条件信号を発生する治療条件検出装置と、
患者に対する作働装置の位置を検出し、これに応じた位
置信号を出力する位置検出装置と、治療条件信号および
位置信号を入力し治療条件信号と患者の所望の生理的又
は生態的状態を表わす信号とを比較し患者に所望の生理
・生態的状態を与えるように作働装置の位置を決定し、
この位置を表わす位置制御信号を発生する信号処理装置
と、位置制御信号に応答し作働装置を決定された位置へ
位置決めする位置決め装置とを備えてなる。ここで「作
動装置」とは所望の生理的・生態的効果を与える装置を
指す。 本発明の他の実施態様によれば、患者の生理的、生態的
状態を検出し変更する装置が提供され、当該装置には上
述のような治療条件検出装置と、制御信号に応答し患者
の所望の生理的、生態的状態を与える作働装置と、位置
検出装置、信号処理装置および位置決め装置とが包有さ
れる。信号処理装置においては更に患者の所望の生理的
、生態的状態を決定し、これを表わす・信号を発生され
得る。 また信号処理装置は、患者の所望の生理的、生態的状態
を与えうる作働装置の動作状態を決定し作f動装置の制
御信号を発生し作働装置が所定の動作状態をとシ得るよ
うに構成される。 信号処理装置においては、作働装置の位置制御信号が作
ブ動装置の安全動作位置を表わす所定の範囲をもった信
号と゛比較され、位置制御信号が安全領域を外れている
とき位置制御信号の位置決め装置への送出が停止される
ように構成される。同様に信号処理装置においては、作
動装置の制御信号が作働装置の安全動作状態を表わす所
定の範囲をもった信号と比較され、作動装置の制御信号
が安全信号の所定の範囲外にあるとき作働装置への制御
信号の送出が停止されるように構成される。 更に信号処理装置においては、好ましくは作動装置の別
の動作位置の所定の範囲および作働装置の別の動作状態
の所定の範囲が決定され、これら所定の動作位置および
動作状態の範囲又はこれらの組合せによって患者に対す
る生理的、生態的、効果が評価され、これらの所定範囲
から患者に対し最適の生理的、生態的状態を与える作働
装置の動作位置および動作状態が選定され、動作位置お
よびこれに相応する作働装置の制御信号が発生されるよ
うに構成される。 本発明の特に好ましい実施例によれば、患者の手足を必
要に応じて位置決めすると共に、把持し制御信号に応答
し所望の位置に手足を移動させる把持移動装置を備えた
患者の手足の動作装置が提供される。この手足の動作装
置には把持移動装置によシ把持される際の手足の位置を
検出し、手足位置を表わす手足位置信号を発生せしめる
位置検出装置が包有される。手足の動作装置には更に、
手足位置信号をある選択された手足位置を表わす信号と
比較し、検出した位置から選択された位置へ手足を移動
させる移動路を決定し、制御信号を発生し把持移動装置
(二よシ手足を該移動路に沿い検出した位置から選択さ
れた位置へ移動させる信号処理装置が包有される。 手足の動作装置においては、制御信号を手足の移動路お
よび手足位置(すなわち解剖学上自然位置)を表わす所
定範囲の信号と比較し、制御信号が所定安全範囲外にあ
るとき制御信号の把持移動装置への供給を停止するよう
に構成される。 本発明の更に他の実施態様によれば、診断や治療のため
生体の一部を動作させる方法が提供される。この動作方
法は生体の一部に対し作働装置を位置決めする工程と、
患者の生理的、生態的状態を監視する工程と、患者の生
理的、生態的状態の所望変化を与えつる生体の一部の位
置を決定する工程と、作働装置を駆動し決定した位置に
生体の一部を位置決めする工程とを包有してなる。 (作用) 上述のように構成された本発明によれば、特に外科医が
治療を施す際、外科医が患者を直接動かすことなく、患
者の患部を所定の位置に随意に位置させ得る如き顕著な
作用を実現する。 (実施例) 第1図:二本発明の高精度の医療ロボットにおける主要
動作部のブロック図が示されておシ、本医療ロボットに
は患者の生理的、生態的状態の変化に応動し、患者12
に対し作f動装置10(例えば組織収縮器、レーザ、電
極等の診断あるいは治療装置等を指す)を操作あるいは
動作状態を変化させる操作装置が包有される。この操作
装置には患者の所望の生理的、生態的状態を検出し、そ
の治療条件を表わす電子的に読取可能な信号を出力する
ような治療条件検出装置14が包有される。治療条件検
出装置14は例えば患者の体温を検出する電子体温計、
患者の血圧を検出する血圧センサ、患者の体の患部の組
織の位置を検出するX線装置、核磁気影像装置、陽電子
放出スキャナあるいは透視装置、患者の心電波形、脳波
形、筋電信号または網膜電反応を検出する電極、患者の
手足の位置を決定するセンサ、患者の組織の圧力あるい
は呼吸波形を検出する圧力センサである。操作装置には
更に患者に対する作働装置lOの位置を検出し、その位
置を表わす電子的に読取可能な位置信号を出力するよう
な位置検出装置と、好ましくはコンピュータ18でなる
信号処理装置とが包有される。 コンピュータ18は治療条件検出装置14および位置検
出装置16からの治療条件信号および位置信号を入力し
、治療条件信号と患者の所望の生理的、生態的状態を表
わす信号とを比較し、患者に所望の生理的、生態的状態
を与えうる作働装置1゜の他の位置への移行あるいは動
作状態を決定し、その位置および動作状態を夫々表わす
位置制御信号あるいは治療条件制御信号を発生して、作
働装置10にその位置あるいは動作状態を与えるような
出力が発生される。位置信号および作働装置制御信号を
送出したとき当該位置信号に相応する位置への移行ある
いは治療条件信号に応じた動作状態にする前に、コンピ
ュータ18により先ずこれらの信号と作働装置10の安
全な所定範囲にある位置および動作状態を表わすプリプ
ログラムされた信号とが比較される。位置信号あるいは
作働装置制御信号が所定の安全範囲外にあるとき、これ
らの信号は出力されず、患者に過度の力が加わることが
防止される。一方コンピュータ18により、所定安全範
囲内にあること、且患者に所望の生理的、生態的状態を
与えうる作動装置10の位置若しくは動作状態、あるい
はその許容位置若しくは状態が求められる。 しかしてコンピュータ18は以下に述べるようなソフト
ウェアをもってプログラムされる。ソフトウェアにはタ
スクプラナ20、特徴抽出部22、入出カプロセッサ2
4および実行コントローラ26が含まれる。この場合、
治療条件検出装置14からの治療条件信号はプリプロセ
ッサ28により処理されて特徴抽出部22へ送られる前
に信号からノイズが除去される。またブリプロセッサ2
8には、環境安全センf 30から患者の操作装置に対
する障害若しくは干渉のような危険を表わす、電子的に
読取可能な信号と、操作者用の交換器32から後述する
ような操作により作動され、手術時における作働装置1
0の所望の位置若しくは動作状態を表わす、電子的に読
取可能な信号とが入力される。変換器32としては、無
菌状態の手術室に配置される好適な音声認識装置、操作
ロンド、足制御装置等が用いられ得る。特徴抽出部22
により、その時対象となっている信号の特徴部のみが識
別され出力されることC二なシ、信号帯域幅が減少され
る。特徴抽出部22を通過した信号はタスクプラナ20
によシ翻訳されタスクプラナ2゜は実行コントローラ2
6による実行に適する制御信号を発生する。一方式出力
ブロセッf 24にょシタスフプラナ20がアラーム3
4および表示・制御部36と連係される。アラーム34
(可聴、可視あるいはその混合のいずれでもよい)によ
り、危険な動作状態にあるときは外科医あるいは操作者
に対し警報が与えられる。表示制御部36としては、あ
る特定の状態を操作者に知らせたり、作動装置10の位
置若しくは動作状態を表わす情報を表示する可視表示器
、音声合成装置のような可聴指示器、ビデオ表示装置等
が用いられる。制御部としては、作働装置10の動作を
制御する音声認識装置、フットスイッチ、特殊キーバッ
ド(specialized keypads ) 、
操作ロンド等が用いられる。一方実行コントローラ26
は一部、コンピュータにより所定位置が決定されたとき
、コンピュータ18からの位置制御信号に応答し作動装
置10を位置決めする位置決め装置としても機能する。 実行コントローラ26は又コンピュータ18からの制御
信号を作働装置10へ送り作働装置10を所望動作状態
にさせるよう機能する。 好適な手足の動作装置は関節鏡検査のような手術中に手
術医の指示により患者の手足を動かすものであるが、人
体の生理的、生態的状態の変化に応じ作ブ動装置を人体
の一部を所望に位置決めする、あるいは動作状態にし、
所望の生理的、生態的状態を与える広範囲の健康管理分
野に適用できよう。 先ず本発明の手足の動作装置の構成および動作、手術医
あるいは必要ならばそのアシスタントによる操作、並び
に本発明の好ましい実施例の動作を制御するソフトウェ
アについて説明する。 構成および動作 第2図〜第6図に示す手足の動作装置38は7つの変位
自由度を持ち、その内の4つには油圧が用いられ、残り
の3つには気圧が用いられる。手足の動作装置38は手
術室の標準の手術用テーブル42側部のレール40に付
設可能である。手足の動作装置38を駆動する油圧シリ
ンダは制御箱44内に収納された油圧ポンプ装置により
作動制御される。一方手足の動作装置38を駆動する気
圧シリンダは制御箱44内に収納される気圧サーボ装置
46によシ制御され、その気圧源としては手術室に通常
設置されているガス供給パイプあるいはガスボンベのよ
うな40〜60 psiの圧縮供給源が使用される。I
BM   ハーソナルコンピュータ18(信号処理装置
)が制御箱44と連結され制御箱44の電気機械的な構
成素子への制御信号が与えられる。 手足の動作装置38の一つの変位自由度は特に第4図に
示す層構造体48により与えられる。手足の動作装置3
8をテーブル42に固設する装置も層構造体48に付設
されている。手足の動作装置38を固設する装置は、取
付ブロック52に形成されたノツチ50と、締付プレー
ト54と、締付ボルト56とを備える。ノツチ50は手
術用テーブルの側部に配設された標準的な3/8インチ
×11/8インチ(約0.95 ++tm x 28.
5 am )のレール40(第2図参照)(:嵌合可能
に形成される。添付プレート54は取付ブロック52に
枢着されており、締付ボルト56によりレール40に対
し適所に固体され保持される。締付プレート54に形成
されるノツチ58は、手術テーブルのレール40の下部
に嵌合可能に形成されている。添付ボルト56を回わす
ことにより、締付プレート54がレール40に対し押し
付けられ、手足の動作装置38が適宜(二固定される。 また取付ブロック52には肩部な旋回させる一組の旋回
軸60が取付ブロック52の基部の縁部から約4インチ
(約100II)程度の距離を置いて支承されている。 第1のアーム部62は旋回軸60 、60を中心に旋回
可能である(手足の動作装置38の第1の変位自由度を
なす)。 旋回@60.60および他の旋回軸(以下説明する)を
中心として手足の動作装置38は互い::相対移動可能
である。この旋回軸は以下の説明において連結部と云う
こともある。 第1の油圧作動器64が取付ブロック52と肩構造体4
8の主部との間に連結され、第1の油圧作動器64の押
し棒66は旋回軸60 、60間な通過して延びていて
、第1のアーム部62は取付ブロック52に対し180
度旋同町能にされている。 この場合旋回軸60 、60は取付ブロック52に対し
固設される。肩の旋回位置を検出する旋回位置センサ6
8 (l0KQポテンシヨメータを用いることができる
)が一方の旋回軸60 、60と第1のアーム部62と
の間に接続され、第1のアーム部62の取付ブロック5
2に対する角度が測定される。 第2のアーム部70は第1の旋回軸60から約14 イ
ンf(約35傷)離間した一対の第2の旋回軸72を介
し第1のアーム部62の端部に枢着される(手足の動作
装置38の第2の変位自由度をなす)。第2の旋回軸7
2は第1のアーム部62と共に旋回可能:二、第1のア
ーム部62に固設される。第2の旋回位置センサ74(
IOKΩのポテンショメータを用いることができる)が
一方の旋回軸72と第2のアーム部70との間(=連結
され、第2のアーム部70の第1のアーム部62に対す
る角度が測定される。第2の油圧作動器76が第1のア
ーム部62と第2のアーム部70との間に連結され、第
2の油圧作動器76の押し棒78が旋回軸72に対し1
インチ(約2.5(Fl)下部且1インチ(約2.5m
)離間した位置において第2のアーム部70に付設され
た枢支部80に動作可能に配設される。第2の油圧作動
器76の背部の枢支部82が第1のアーム部62内に配
設され、第2のアーム部70が第1のアーム部62に対
し90度旋回可能にされる。 第3のアーム部84は第2の旋回軸72から6インf(
約15QII)7111間された一対の第3の旋回軸8
6を介し、第2のアーム部70の端部に枢着される(手
足の動作装置38の第3の変位自由度をなす)。第3の
旋回軸86は第3のアーム部84に対し固設され、且第
3のアーム部84と共に旋回可能である。第3の旋回位
置センサ88 (10にΩのポテンショメータを用いる
ことができる)が一方の旋回軸86と第2のアーム部7
0との間に連結され、第3のアーム部84の第2のアー
ム部70に対する角度が測定される。第3の油圧作70
との間に連結され、その押し棒92が第3の旋回軸86
の基部に対し1インチ(約2.sm)下部且1インチ(
約2.5(至))離間されて第2のアーム部70内に配
設された枢支部94に対し動作可能に配設される。第3
の油圧作動器90の背部の枢支部96が第3のアーム部
84内に位置せしめられていて、第3のアーム部84が
第2のアーム部70に対し90度旋回可能にされる。 第4のアーム部98は第3の旋回軸86から約12イン
チ(約30傷)離間された一対の第4の旋回軸100を
介し第3のアーム部84の端部に枢着されている(手足
の動作装置38の第4の変位自由度をなす)。第4の旋
回軸100は第3のアーム部84に対し共に旋回可能に
装着される。第4の旋回位置センf 102 (IOK
Ωのポテンショメータを用いることができる)が、一方
の旋回軸100と第3のアーム部98との間に連結され
、第4のアーム部98の第3のアーム部84に対する角
度が測定される。第4の油圧作動器104が第3と第A
小アーt−m(aAoQ朋J−1此(徊 工小梱1愉1
06が第4の旋回軸100に対し1インチ(約2.5蔦
)下部で且1インチ(約2.5as)離間された第4の
アーム部98内の枢支部108に対し動作可能にされて
いる。また第4の油圧作動器104の背部の枢支部11
0が第3のアーム部84内に位置せしめられ、第4のア
ーム部98は第3のアーム部84に対し90度旋回可能
にされる。第4のアーム部98は、第3のアーム部84
に対し略90度をなし且第3のアーム部84に対し平行
に180度旋同町能に取り付けられる。 第4のアーム部98の端部に、第4の旋回軸100から
約14インチ(約36(II)離間して差動機構112
(特に第5図参照)が配設されている(手足の動作装置
38の更に2つの変位自由度をなす)。差動機構112
により、旋回軸72 、86 。 100に対し平行な軸線を中心とする縦揺動(ピッチ)
動作と、旋回軸72 、86 、100に対し直角な軸
線を中心とするヨー(yaw )動作とが与えられる。 2対のベベルギヤ114 、116が互いに直交する軸
118 、120に夫々装着され、差動ギヤ機構が構成
される。大きなベベルギヤ114は夫々のスプロケット
122に固設されており、大きなベベルギヤ114およ
びスプロケット122は軸118の両端部に装着され、
差動ギヤ機構の半部をなしている。 軸118自体は第4のアーム部98に枢着され、軸11
8は旋回軸72 、’ 86 、100に対し平行であ
るからピッチ動作が与えられることになる。小さなベベ
ルギヤ116は大きなベベルギヤ114間に位置する軸
120の両端部に枢着され、差動ギヤ機構の残シの半部
をなす。各スプロケット122の周囲には短かいチェー
ン124が取り付けられ、チェーン124の各端部に気
圧作動器126が連結されている。 4個の気圧作動器126の一方の端部が引張装置128
(特に第6図参照)を介し第4のアーム部98の基端部
に連結される。4個の気圧作動器126(図面には2個
のみ示しである)および2本のチェーン124は、第4
のアーム部98に対する2個の大きなベベルギヤ114
のなす角およびベベルギヤ114相互のなす角を変える
、即ち小さなベベルギヤ116の位置を変えるために使
用され得る。第4のアーム部98と軸118との間に、
差動ギヤ機構112の第4のアーム部98に対する角θ
を測定するピッチ位置センサ130(IOKOのポテン
ショメータを用いることができる)が連結される。また
小さなベベルギヤ116の一方と軸120との間に、ベ
ベルギヤ116の第4のアーム部98に対する角φを測
定するヨー位置センサ132(IOKOのポテンショメ
ータを用いることができる)が連結される。 手足の動作装置38の端部に最近接してロール軸のブロ
ック134が小さなベベル116に付設される。またブ
ロック134内には手足の動作装置38の第7の変位自
由度をなすようなロール軸136(特に第6図参照)が
枢着されている。ロール軸136は一部が患者に装着さ
れるような取付パ一部材138に固設される。各気圧作
動器140はブロック134の各側部に付設され、各気
圧作動器140の他端部は引張装置(特に第3図参照)
128が装着されたパ一部材138の他端部に付設され
る。ブロック134とロール軸136との間には、ロー
ル軸136とブロック134とのなす角を測定するロー
ル位置センサ142 (10KΩのポテンショメータを
用いることができる)が連結されている。 手足の動作装置38の側部および底部には環境安全セン
サ144(特に第3図参照)が付設される。 各環境安全センサi44は長手のラテックスゴム管でな
り、環境安全センサ144の一端は密封され他端は圧力
スイッチに接続される。圧力スイッチは入力圧が所定値
より大であるとき電気接点を閉じるよう構成されている
。上記の圧力値はゴム管が当たったり押し潰されて変形
されたとき電気接点が閉にされるように充分低い値に設
定される。圧力スイッチはすべて並列に接続され、いず
れかの−の圧力スイッチが閉になったときこれが検出さ
れるように構成される。また全圧力スイッチは供給線1
46を介しコンピュータ18に接続されている。 通常の製作時手足動作装置38全体は、流体、手術衣等
が手足動作装置38の可動部に侵入されることを防止す
るため、ビニルプラスチックのスリーブ148(特に第
2図参照)で被覆される。 患者に対し直接装着する患者装着体150(特に第3図
および第6図参照)には患者の脚の背部に適合させ得る
ような形状の湾曲したプラスチック部材152が包有さ
れる。プラスチック部材152には患者の足裏を支承可
能に成形されたプラスチック製の足裏部材154が付設
される。足裏部材154の下側部には移動して患者の足
の側部と接触され、摘みナツトによ゛り適所に固定し得
る調整可能なフットパッド156が2個付設されている
。フットパッド156により患者の足と患者装着体15
0とが正しく合致されて維持される。プラスチック部材
152およびフットパッド156は患者の足に加わる力
を分散し且患者装着体150は容易に清浄可能になるよ
うに発泡ゴムクッションおよびビニルプラスチックで被
覆される。2本のVelCrO(登録商標)ひも158
が患者の足に適確に巻かれて患者の足を患者装着体15
0に対し所定の位置に確実に保持されるようプラスチッ
ク部材152に付設されている。この場合一方のひも1
58を患者の足首に巻くことにより、プラスチック部材
152内で足裏部材154に対し患者のかかとを確実に
保持し得、他方のひも158を患者のδεらすhの端に
巻くことにより、患者の脚部を患者装着体150に対し
正確かつ確実に装荷できる。 患者装着体150°のかかと部にはヒールセンサ160
が配設され、ヒールセンサ160は環境安全センサ14
4と同様に構成される。即ちヒールセンサ160は患者
装着体150のヒールポケット部に嵌着されるよう患者
装着体150に対し2個所に付設される。このヒールセ
ン−f 160により患者装着体150内で患者のかか
との適正な位置決めが容易に検出される。手足の動作装
置38の使用中患者のかかとが適正な位置から外れると
、ヒールセンサ160がアラーム信号を発生し、アラー
ム信号はコンピュータ18によシ検出される。コンピュ
タ18はアラーム信号を検出したとき手足の動作装置3
8の好適な移動路を計算し、患者装着体150のかかと
ポケット部内に患者のかかとを適正に位置決め維持する
ので、力が患者の脚にかかることが防止され得、患者に
苦痛を与えることを防ぎ、格別に患者の脚の位置を変え
る必要がない。患者装着体150はパ一部材138に対
し2本のボルトで取プ付ゆられる。 一方患者装着体150はパ一部材138に対し着脱可能
になるよう着脱機構を用いてパ一部材138に取付得る
。これにより患者装着体150を患者の足から容易に着
脱できる。この着脱機構は所定値以上の力を受けたとき
手足の動作装置38から離脱するよう構成されることが
好ましい。これは患者の足へ過大な力が加わることを防
止するいわゆる「機械的ヒユーズ」として機能する。ま
た着脱機構に電子センサを組み込み、所定値より大きな
力が検出されたときこの情報がコンピュータ18へ送ら
れ、患者に加わる力を防止すべく適正な処置がとられる
よう構成し得る。 気圧作動器140 、126に接続されるエヤライン、
油圧作動器64 、76 、90 、104に接続され
る油圧ラインおよび各種の位置センサ68 、74 、
88 。 102 、130 、132 、142に接続される信
号および電気ラインはすべて第1のアーム部62内に集
約され、一本の供給ケーブル146(特に第2図および
第3図参照)内に収められて制御箱44と接続される。 各種の位置センサ68 、74 、88 、102 。 130 、132 、142に接続された信号・電源ラ
インは制御箱44内の士ンビュータ18および電源16
2(第8図参照)に接続される。供給ケーブル146内
には又別の信号ラインが包有され、この信号ラインの一
端は制御箱44内のコンピュタ18へ、他端は肩構造体
48近傍に配設される電気コネクタ164(第4図参照
)へ接続されている。また操作者のハンドコントローラ
166も電気コネクタ164と接続される。 更に第7図を参照するに、4個の油圧作動器64 、7
6 、90 、104には夫々単一の油圧作動機構が具
備される。油圧作動機構は複動式油圧シリンダ16gと
2個のI」御弁170と油圧発生器172とを備え、こ
れらはすべて1/18インチ(約1.4mm)のプラス
チック管で互いに連通されている。油圧発生器172は
2個の出入口を有し、一方の出口部において玉流を送出
し、他方の入口部において戻す流を導入して油を内部タ
ンクへと戻す可逆装置として設けられている。またイン
ターフェース回路174は油圧発生器172および制御
弁170並びに通信ラインを介しコンピュータに夫々接
続される。 好適な実施例によれば、4個の油圧作動器に使用される
油圧シリンダ168は夫々米国の南カロリナ州つエスト
ミンスタにあるコンパクトエヤハイドロ−リック社のモ
デル5118x212−RC!−HYD −FT油圧シ
リンダであシ、夫々直径偽インチ(約3.2fim)の
開口部を有し、ピストンの行程が21/2インチ(約6
.35am)である。また制御弁170は米国コネティ
カット州ニュープリティンにあるブリシジョンダイナミ
ック社のモデルA2011−BB−120/60で12
0 V用の交流弁であり、一方油圧発生器は米国ミネソ
タ州ミネアボ9スのオイルダイン社のモデ# 108 
DA 19− AL−LVT動力装置である。油圧部材
はすべて米国ニューヨーク州ロツチェスタにあるレグリ
ス社の140−53−00のし8インチのプラスチック
管で連結される。 しかして当該油圧動作機構においては、制御弁170が
開にされたとき油圧発生器172が作動される。圧油は
油圧発生器172の−の孔から油圧シリンダ168の片
側へ供給され、油圧シリンダ168のピストンが移動さ
れて他方の側から圧油が排出され油圧発生器172の他
の孔へ戻される。油圧作動器の動きを止めたい場合、油
圧発生器172がオフC二され制御弁170が閉になる
と、圧油が油圧シリンダ168のいずれかの側に対し導
入又は排出されることが防止される。 インタフェース回路174内には又再トリガ可能な1監
視”タイマが内蔵され、そのトリが端子はコンピュータ
18に接続されている。このタイマの出力はインタフェ
ース回路の他部へ電力を供給する論理値制御による電圧
調整器に接続される。 コンピュータ18が正規動作しているときにはコンピュ
ータ18は一定の間隔でトリがパルスを発生し、これに
よりタイマがトリガされて、上記電圧調整器およびイン
タフェース回路174が付勢される。監視タイマの時定
数がコンピュータ18から予想されるパルスの時定数よ
シ僅かに長いので、コンピュータ18の通常の動作時に
はインターフェース回路174への電力供給は中断され
ない。またコンピュータ18はその関連回路が故障した
とき、監視タイマによりインターフェース回路174へ
の電力供給が中断されるので、油圧供給源172および
制御弁170が減勢されて油圧作動器168の不都合な
動作を確実に防止する。 第8図には油圧および気圧作動器126 、140 (
全部で6個の気圧作動器)を夫々備えた気圧作動機構が
示される。各作動機構には、気圧作動器176と引張装
置128と気圧サーボ装置46とインターフェース回路
178とが包有される。気圧作動器176は好適な実施
例においては(日本の東京のブリジストン社の)直径1
8mmのが使用される。 気圧作動器126は夫々長さ300 mmであシ、一方
気圧作動器140は夫々長さ200 mmであり、好適
な実施例に使用される気圧ナーボ装置46はブリジスト
ン社のA(1!FAS (登録商標)モデルEIVO−
102−04の気圧サーボ装置である。気圧部材はすべ
てV8インy−(約3mm)のレグリス社140−53
−00のプラスチック管を介し連通されている。また各
気圧サーボ装置46は圧縮ガス供給源180、電源16
2、およびインタフェース回路178に接続されている
。更にインタフェース回路178は通信ライン182を
介しコンピュータ18に接続されており、好適な実施例
においては気圧サーボ装置46は2装置からなっていて
、夫々2作動器を制御し得るように構成される。 しかして気圧作動機構において、気圧サーボ装置46は
コンピュータ18により作動され、気圧作動器176へ
供給されるガス圧が制御される。気圧作動器176へ供
給されるガス圧が上昇するに応じ、気圧作動器176の
直径が増大し、長さが減少してアーム部等と連結される
端部間に力が与えられる。気圧作動器176へガスが供
給されていないときには、気圧作動器176は引張バネ
184とキャップ186と保持プレート188とからな
る引張装置128により直線的に引っ張られる。一方気
圧作動器176へガスが供給されると、引張バネ184
が圧縮され、キャップ186と保持プレート188とが
当接し、気圧作動器176からキャップ186へ力が伝
達される。このとき引張バネ184に過大な変形を生ず
ることが防止され得る。 気圧サーボ装置46と連係する気圧作動器176はコン
ピュータ18により制御され、コンプライアンスが調整
される。通常の動作時には対をなす気圧作動器176は
変位自由度!である、即ち単一連結部を介し互いに逆動
作し得るように相連結されている。各気圧作動器により
力を一方向のみに(すなわち作動器の長さが減少すると
きの長手方向に)与えるように、2作動器を直列に作用
させて所望位置を維持せしめる必要がある。この場合、
一方の作動器の圧力を一定レベルにし、他方ノ作動器の
圧力を所望位置を得るに適当なレベルに調整することに
より達成され得る。第1の作動器の一定の設定圧が低い
と、変位が実質的に抵抗なく行なわれて、コンプライア
ンスが高くなる。一方策1の作動器の一定の設定圧が高
いと、変位が大きな抵抗を伴なって行なわれ、コンプラ
イアンスカ低くなる。好適な実施例においては、このコ
ンプライアンスは患者の手足の重量(=応じて変化する
ように設定され、患者の特定の手足を移動するに必要な
力のみが患者に確実に与えられる。 制御箱44(特に第2図参照)内には、4個の油圧発生
器172と3個の気圧サーボ装置46(夫々2個の気圧
作動器176を駆動可能)とインターフェース回路17
4 、178とが内蔵される。制御箱44内には更に電
源162が内蔵され、好適な実施例においては電源16
2には米国のニューヨーク州のバッフアロ、ハモンドエ
レクトロニクス社のモデA/ GFOL 101が用い
られ得、10Aで直流5V。 3Aで直流15V、3Aで直流−15V、2Aで直流−
5vおよび2Aで直流24Vが得られる。電源162の
電力はインターフェース回路178 、174および気
圧サーボ装置46へ与えられる。 コンピュータは米国フロリダ州のボカラトンにあるIB
M社のパーソナルコンピュータを用い得、モノクロムモ
ニタ、キーボード、インテル(登録商標) 8087数
値コブロセッ−9−(米国カルフォル出力ブロセツチ2
4はデータトランスレーションD T 2801回路板
(米国のマサチューセット州のマールボロフにあるデー
タトランスレーション社製の)であり、コンピュータ1
8内に内蔵されており、その16個のアナログ入力用の
チャンネル(その内の7個は位置センサ信号であり、1
個は操作者用のコントヒーラの信号用)と、ディジタル
出力用の16個のチャンネル(その内4個は制御弁17
0の制御用に、8個は油圧発生器172の制御用に、2
個は環境安全センサ144およびヒールセン−f 16
0の状態を検出するためのもの)とを有する。コンピュ
ータ18内には更に第2の回路板(米国オへイオ州りレ
ペランドにあるテコマ社のTecomar Lab T
ender (登録商標)回路板であり、16個のアナ
ログ出力端子(その内6個は気圧サーボ装置46の制御
用)を有する。通信ライン182(特に第8図参照)お
よび190(特に第7図参照)がコンピュータ18の背
部の上述した2回路板におよび制御箱44内のインター
フェース回路174 、178に接続されている。また
この場合好適な実施例によれば、通信ライン190はデ
ータトランスレーション(登録商標) DT2801 
回路板に接続され、40本の導線からなるリボンケーブ
ルであり、一方通信ライン182はTeamar (登
録商標) Lab Tendθr回路板のアナログ出力
コネクタに接続されておシ、34本の導線からなるリボ
ンケーブルでなる。コンピュータ18内には他に、日本
の東京にある880社のBAR−100音声認識/合成
用の音声回路192が内蔵される。音声回路192は医
者からの音声信号を入力する遠隔測定用の無線リンクお
よび可聴レスポンスを発生する制御箱44内のスピーカ
C二接続される。 音声回路192の音声認識部は入力される認識レベルが
所定レベルに達するまで音声認識回路に接続されたマイ
クロホンに対し医者が予め決められた指令を反復して話
すことにより、医者の音声パターンを認識させるように
「トレーニング」されることになる。これにより音声認
識回路に対し手足の動作装置38の通常の動作中、医者
の音声指令に適合するパターンを得ることができる。ま
た同様に音声回路192の音声合成部は可聴レスポンス
を発生可能にする前に音声パターンを作成するようトレ
ーニングされる。一度この音声認識/合成パターンが作
成されると、コンピュータ18内のディスク駆動装置の
フロッピーディスクに後時に使用されるよう永久的に記
録される。 操作者用のハンドコントローラ166(第2図および第
9図参照)は選択スイッチ194と機能スインf 19
6 、198とを有し、選択および機能スイッチ194
 、196 、198はペンダントケーブル200を介
しコンピュータ18と結線されている。通常の動作時、
ペンダントケーブル200は操作者のノ1ンドコントロ
ーラのコネクタ164(特に第4図参照)(二接続され
る。選択スイッチ]94は多位置選択スイッチであり、
各位置に応じたスイッチから別個の電圧が発生される。 同様に機能スインf196゜198が作動されたときも
別個の電圧が発生される。 この場合選択および機能スイン? 194 、196 
、198および関連回路は小さな金属箱内に収容される
。 金属箱およびこれらのスイッチはすべて流体が回路に導
入されることを阻止するようにラテックスゴムシートに
よって液密されている。関節鏡検査手術中、通常使用さ
れる套管針スリーブに付設可能なバネクリップが金属箱
の背部に付設されており、コントローラ166は医者の
手が届く範囲内に置かれることになる。選択スイッチ1
94のノブには選択スイッチ194の各位置の機能を表
わすため金属箱上(二第9B図に示すような指示文字が
施される。各機能スイッチ196 、198の機能も金
属箱面の適所に表示される。また選択スイッチ194の
ノブの縁部に側部からコントローラを見る操作者が容易
に判別できるよう好適な文字又は記号をしてもよい。更
に選択スイッチ194にはGrayhill(登録商標
)の2301026の10位置BODコードスイッチを
用い得、また機能スイッチ196 、198には夫々G
rayhillの39−1押ボタン式瞬時接触スイッチ
を用い得る。 一方、通常の使用時、ハンドコントローラ166は手術
室内で使用する前に周知のガス殺菌法により殺菌を行な
い、ハンドコントローラ166を使用しても医者に対し
無菌状態が損なわれることはないようにされる。 好ましい実施例によれば、医者の音声は第10図および
第11図に示すような音声コレクタ202を用いて円滑
に収音される。音声コレクタ202には医者の手術用マ
スク212の殺菌機能を損なうことなく、内部に収納さ
れたマイクロホンのような電気変換器に達する医者の音
声レベルが最大となるよう手術用マスク内に収容可能な
ポリ塩化ビニルのようなプラスチックポリマ材からなる
単一のシェル204が包有される。シェル204は当業
者に周知な手段、即ち射出成形又は熱成形によシ作られ
、外形は実質的に矩形をなし、隅部および縁部には丸味
が付けられている。シェル204にはほぼ円筒状で平坦
部から傾斜して突出せしめられた棟部206が設けられ
、使用時は手術用マスクに接着される。熱論手術用マス
クは各種の構成のものが使用できよう。マイクロホン2
10の外径より僅かに大きな径の穴208がシェル20
4の棟部206の一端部に形成されている。シェル20
4には穴208の縁部からシェル204の平坦部の縁部
へ延びるスリットが具備され、シェル204を僅かに変
形させることにより穴208を広げ得るように構成され
ている。従って使用時にシェル204において穴208
を広げつつマイクロホン210を挿着し得る。マイクロ
ホン210を穴208と遊びなく挿入して良好に保持さ
せることができる。シェル204はマイクロホン210
において集音される音声レベルが最大になる位置に両面
接着剤の付着された接着体214を介し手術用マスク(
二付設される。マイクロホン210のコード216には
小さなバネクリップ218が付設され、バネクリップ2
18自体は医者の衣服の適所に取付けられ得、これによ
りコード216(二無理な力が加わったりマイクロホン
210がシェル204から外れることが防止される。コ
ード216は信号受信機に直接接続されるかあるいは後
述するような医者に取付けた小さな信号発信機に接続さ
れる。 好ましい実施例によれば、マイクロホン210は東京の
ソニー社のコンデンサマイクロホンECM−150Tを
用いることが好ましく、また接着体214はカナダのオ
ンタリオにあるスリーエムカナダ社の3M950)ラン
スファテープを用い得る。 上述の操作者のハンドコントローラ166および音声認
識/合成を行なう音声回路192は手足の動作装置38
を目視して自由に制御し得るようこれらと連係される。 選択スイッチ194によシ設定値が変化される毎に音声
回路192は選択スイッチ194により選択された可聴
レスポンスを発生する。 従って外科医は2回の機能スイッチ196 、198の
一方を押して、動作を開、始できる。機能スイッチ19
6 、198は、所定の機能を行なうべくプログラムさ
れていて、通常互いに反対の機能、例えば開始と停止、
定回転の増大と減少若しくはひざの屈曲の増大と減少を
与えるべくプログラムされる。 機能スイン’j 196 、198が夫々作動される場
合、可聴レスポンスが発生されまた実行中の機能が示さ
れ得る。且外科医はプリプログラムされた指令の−をマ
イクロホン210に話すことにより一の機能を選択し得
、次に機能スイッチ196若しくは198によって−の
機能を開始すべく選択でき、また選択スイッチ194を
作動して、ブリプログラムされた指令の−をマイクロホ
ンに話すことによシ所望の動作を開始できる。 遠隔通信用の入力チャンネル220(特に第10図参照
)にはカナダのオンタリオにあるタンディエレクトロニ
クス社のRadio 5hack (登録商標)7Mワ
イヤレスマイクロホンシステムを採用し得る。低出力で
ポケットサイズの遠隔用の送信機は2個のAAサイズ電
池で駆動でき、外科医の手術衣の下のシャツのポケット
に入れることができる。 送信m 222はマイクロホン210と適合する電気コ
ネクタを用いて接続でき、適宜のものを採用できる。信
号の条件付け(すなわち帯域中の限度)は送信機222
により行なわれる。受信機224(特に第2図および第
10図参照)にはRadio 5hack(R録商[)
7Mワイヤレスマイクロホンベース装置を使用し得、そ
のマイクロホンの出力端子は音声回路192のマイクロ
ホン入力端子に接続される。 手術スタッフによる操作 第2図に示すように、患者12は関節鏡検査のため手術
用テーブル42上に横臥され、周知の手術手順に従い手
術が行なわれる。手術する足には殺菌したストッキング
又は軟質包帯が付けられる。 手足の動作装置38、コンピュータ18、制御箱44お
よび車付台226は手術室のテーブル42から約1メー
トル以内の距離離間して、好ましくは手術場所に最近接
せしめ配置される。手足の動作装置38は制御箱44の
背部に配置された保持装置から取り出され、テーブル4
2の側部の適所に取り付けられる。これはレール40の
上縁部に取付ブロック52に形成されたノツチ50(特
に第4図参照)のリップ部を係合することによシ達成さ
れる。手足の動作装置38は、取付ブロック52が手術
する手又は足のひざi−L ラの中心部かう約50偏の
距離に位置するまで、レール40に沿い取付ブロック5
2を摺動することによって正締付ボルト56を締めて側
部のレール40に対し固定される。 制御箱44のコード230は110 Vの交流電源のソ
ケットに差し込まれ、コンピュータ18用の電力コード
は制御箱44の背部に設けられたコンセントに差し込ま
れると共に、通信ライン182 、190を含み制御箱
44から取シ出されたリボンケーブル228はコンピュ
ータ18の背部の対応するコンセントに差し込まれる。 且制御箱44から導出されるスピーカ用のワイヤもコン
ピュータ18の背部のl’−5pxjと記されたジャッ
クに差し込まれ、また圧縮ガスを供給するバイブ232
が制御箱44と手術室の圧縮ガス供給用コンセント又は
圧縮ガスボンベとの間に接続される。この場合ガス供給
圧は40〜60 psiに調整される。 音声制御を行なう場合、マイクロホン210に接続され
た音声コレクタ202が用いられるが、このときシート
234を剥し音声コレクタ202の接着体214の接着
面を露出させて、音声コレクタ202が音声コレクタ2
02は外科医の口の片側に位置するよう手術用マスク2
12に付着させる。マイクロホンのバネクリップ218
は例えば外科医の衣服のカラ一部にクリップ止めされ、
一方マイクロホンのコード216は必要ならば延長コー
ドを用いてコンピュータ18の背部の「M工C」の表示
のあるジャックに差し込まれる。次いでコード216の
端部に付設されたマイクロホン210の電源スィッチが
オンにされる。 入力チャンネル220を用いる場合、上述の接続構成を
変更し得る。即ち、マイクロホンのコード216を遠隔
制御用の送信機222に差し込み、送信機を外科医のポ
ケットに入れる。遠隔制御用の受信機224のマイクロ
ホン用出力端子はコンピュータ18の背部の「M工C」
の如く示したジャックに接続され、受信機はコンピュー
タ18の上部に置かれ、次に送信機222および受信機
224の各電源スィッチがオンにされる。 操作者用のハンドコントローラ166を用い・る場合、
通常の殺菌法により殺菌包装されている箱からハンドコ
ントローラヲ取す出シハンドコントローラのコネクタ1
64に接続する。外科医が望むならばハンドコントロー
ラ166を関節鏡検査用の套管針にクリップ止めするこ
ともできよう。次に動作用のソフトウェアを記録したフ
ロッピディスクをコンピュータ18のディスク駆動装置
に差し込んだ後、コンピュータ18および制御箱44を
オンにする。 コンピュータ18は自動的に必要なソフトウェアの実行
を開始し、コンピュータ18のビデオモニタ上に次のメ
ツセージを表示する。 ドクターグーの音声パターンのため 「ALTlj をキー人力せよ。 ロブの音声パターンのため [ALT2 j をキー人力せよ。 シェフの音声パターンのため 「ALT3 Jをキー人力せよ。 グレンの音声パターンのため 「ALT4 j をキー人力せよ。 ここで「ドクターデー」、「ロブ」、「シェフ」および
「グレン」は音声パターン認識/合成用の音声回路19
2に対し上述したような方法でトレーニングさせる個人
名である。 音声制御を用い、操作者の名前がビデオモニタに現われ
ると、所定のキーを押す。これによシ対応する操作者の
音声認識データおよびアースロボット(Arthrob
ot )システム合成データがコンピュータ18のメモ
リに入力される。操作者の名前がモニタに現われないと
き操作者はrvpuJをキー人力し、次に「enter
 J キーを入力して、音声のトレーニングを実行する
必要がある。これにより東京のNF2社から販売された
音声トレーニングのソフトウェアが音声認識/合成回路
192を介し実行される。このソフトウェアは所望のト
レーニングを実行する場合NF2社によって指示された
方法で使用される。一方操作者が[ALT I Jをキ
ー人力すれば、ドクターデーの音声認識データ(これは
通常使用されない)およびシステム音声合成データが入
力される。 次にコンピュータ18を介し操作者によって手術対象が
患者12のどちらの足か(右足か左足か)を入力するこ
とによシ制御ソフトウェアが実行される。この場合操作
者は右足か左足かを指示するため「2」又は「r」 キ
ーを入力し次に「enterJキーを入力する。操作者
等および装置がすべて、手足の動作装置3gの設置場所
において清浄にされた後、操作者がキー「2」を押す。 これによりコンピュータ18および音声回路192を介
し「準備せよ(81!:TUP ) Jの音声が発せら
れる。次に操作者は灰色のキー「−」 を押すことによ
り、コンピュータ18を介し「移動(MOVE)Jと音
声が発せられ、手足の動作装置38が手術用のテーブル
42と平行になるよう旋回され、且患者装着体150が
レール40と同一レベルになるよう延伸される。必要な
らば操作者は手足の動作装置38の主部がレール40に
対し直角になるようテーブル42方向に手足の動作装置
38を緩徐に押す。 手足の動作装置38の動きが止まったとき、患者の足が
患者装着体150に取り付けられる。必要ならば「〈−
」および「−〉」と記された2個の矢印キーを用い手足
の動作装置をレール40に対し平行に移動させて患者へ
の患者装着体150の装着を容易にする。 次に患者の足のかかとを患者装着体150のかか6εつ
十高にかけ充分に緊張して固定する。フットパッド15
6は患者の足の両側部と当接されるよう良好に移動でき
る。患者の足が患者装着体150内に好適に取り付けら
れると、ヒールセンサ160が作動され、コンピュータ
18の表示部にメツセージとして表示される。ヒールセ
ンサ160が作動されない場合には、操作者は患者装着
体150から患者の足を取り出し、患者のかかとが患者
装着体150に確実に合致するよう再び取り付は直す。 通常の動作時に患者装着体150から外れるような場合
には、ヒールセンサ160がこれを感知し、コンピュー
タ18を介し動作装置38の動作が自動的に中断され、
操作者(二警報が発せられる。 患者の足が患者装着体150に正確に取り付けられてい
るとき、操作者が「〈−」および「−〉」キーを押せば
手足の動作装置38が移動されて、患者の足がテーブル
42と同平面上に充分に延伸され、その後操作者は「A
LT」およびrAJ キーを同時に押してコンピュータ
18に対し患者の足が正確に位置決めされたことを入力
する。 コンピュータ18は操作者に対し患者の足位置が正確に
位置せしめられたか否かチェックする。 足位置が正確に位置決めされてないときは操作者はrN
J キーを押して更に調整を行なう。操作者がrYJ 
キーを押すとコンピュータ18は患者の膝頭の中心から
かかとの底部への長さを測定するよう指示する。この測
定値を入力しく−enter J キーを押す。制御ソ
フトウェアは患者の「完全延伸」位置および入力された
データを用いて作成される。 即ち手足の動作装置38の安全動作限界の設定、手術の
5個のプリプログラムされた位置を得るための手足の動
作装置38の正確な位置の計算、および解動作する上で
の正確な動作路の計算が含まれる。安全動作限界は、患
者の足の一部(足先、下脚部および上脚部)を解動作す
る上で自然な動作範囲を決める、手足の動作装置38の
動作空間内に31にて示す仮想線で表わされる。この仮
想線により手足の動作装置38の動作空間が決められ、
この空間外にはコンピュータ18制御により手足の動作
装置38が移動しないように設けられている。患者に対
し開動作を行なう上で正確にプリプログラムされた5位
置(立脚、完全延伸、完全屈曲、半屈曲および4の字)
が同様に計測される。この場合解動作とは患者の膝若し
くは腰部を他の関節の角度に影響を及ぼすことなく屈曲
したり延伸したりする動作を云う。 操作者に対しコンピュータ18の表示部を介して作動器
126 、140 (以後“リスト”という)のコンプ
ライアンスの検定開始許可が求められる。 一方操作者が「N」 キーを押せばこの検定工程が飛び
、コンプライアンスは予め設定されたレベルにされる。 操作者がrYJ キーを押したとき、手足の動作装置3
8により患者の足が4の字位置に移動される。この位置
に移動されると、患者の足の重量により手足の動作装置
が位置を変えるまで手足の動作装置38のリスト内に配
設された気圧作動器のコンプライアンスが増大される。 一方この動作が検出されると、コンプライアンスは次第
C=減少され、再び、始め(=プログラムされた位置に
戻される。この当゛初の位置に戻すに必要なコンプライ
アンスの値が記録され、手術中あるいは操作者が特に変
更しない限り維持される。このようにして手足の動作装
置38のリストのコンプライアンスが患者の足の重量に
応じて計測され得る。 手足の動作装置38のコンプライアンスが計測されると
、操作者は通常「F2」キーを押し、次に灰色の「−」
 キーを押して、患者の足を立脚位置にし、止血帯の取
付、溶液塗布準備若しくは殺菌衣の装着が容易C二なる
状態にする。 手術中、外科医は2個の異なるインターフェース装置を
組み合わせ手術中の対象物から目を離すことなく手足の
動作装置38の位置および動作を変更できる。即ちイン
ターフェース回路とは操作者用のハンドコントローラ1
66と音声回路192とである。一方コンピュータ18
のキーボードのキーを押すため外科医以外のアシスタン
トを使用できる。手足の動作装置38を急速に停止した
いような場合に、操作者はl’−5pace j キー
を押すことにより、進行中の全機能が直ちに中断される
。同じ停止動作は外科医が「停止」と発したシハンドコ
ントローラ166の「停止」ボタンを押すことによって
も無論得ることがで、きる。 コンピュータ18は、音声回路192並びにハンドコン
トローラ166からの双方の指令を受け、単一指令シー
ケンスによシ手足の動作装置38が所望の機能を実行す
るようプログラムされる。指令シーケンスは(1)注意
プリフィックスステップ、(2)選択指令ステップ、(
3)動作ステップとからなる。 各音声指令およびハンドコントローラ166からの指令
に応じて指令シーケンスがいかに実行されるかを次の表
に示す。 明細書の浄魯(内容に変更なし) 指 令            音 声       
    コンドローラン−ケンス          
指 令          動 作ステップ   操作
者人力  /ステム出力   操作者入力と/ステム出
力 注意 外科医が   「イエス」と  外科医が 応答
なし。 プリフィッ「関節手術」  音゛声応答。   選択S
Wをクス  と発する。            回す
。 選択 外科医が    音声で    外科医が 7ス
テムは音声指令 「選択」語   「選択語」  選択
SWをで選択3wのを発する。   を反復する。 所
望機能 所望機能位置位置に回 に相当する わす。  「選択語」を 反復する。 動作 外科医は    システムはそ  外科医は シ
ステムはソノ指令 「動作」語   の「動作語」 機
能sw  選択された動を発する。   を反復する。   196又は 作に相当する198を押 「動作語」
を す。    反復する。 ハンドコントローラ166および音声回路192は全指
令シーケンスが一方の入力装置のみを用いて入力できる
ので、独立して使用できる。ハンドコ。 ントローラ166および音声回路192の動作は以下に
別個に説明するが、これら2人力装置は上述したように
互いに相関関係を持たせて使用できることは理解されよ
う。 上述のよう(:ハンドコントローラ166は通常関節鏡
検査の套管針にクリップ止めされ、手術に好適な位置に
保持される。外科医がハンドコントローラ166を用い
たい場合には、選択スイッチ194を回しコンピュータ
18に対し指令シーケンスの開始を知らせる。これによ
シ上述した[注意プリフィックスステップの機能が実行
される。選択スイッチ194が新しい位置に回される毎
に、コンピュータ18により音声回路192を用て選択
スイッチ194の新しい位置が音声で報知される。外科
医が所望の手足の動作装置の機能を聞いたとき、外科医
は選択スイッチ194の回転を停止する。押ボタンの機
能スイッチ196 、198により、選択スインy−1
94の位置および上記表に示されるような異なる手足の
動作装置の機能が呼び出される。機能スイッチ196若
しくは198の一方を押すことによシ、コンピュータ1
8が音声によりとるべき動作を示し、手足の動作装置3
8が必要に応じ移動される。選択スイッチ194の設定
および機能スイッチ196 、198の機能はハンドコ
ントローラ166の表面に記されたラベルを読み取るこ
とにより視認できる。 ミ       呵    石    【    ミ樺 翼      藝    学    11!21   
  ÷外科医が音声入力を望む場合、手足操作装置38
の位置若しくは動作は3つの指令語を発して変更するこ
とになる。この3語の指令シーケンスは誤まって認識さ
れた指令により手足操作装置が作動されることを防止す
る確認手段として使用される。 注意ブリフィック’;z [ARTHROBOT jに
よシ指令シーケンスが開始され、音声認識/合成用の音
声回路192によシ警報が発生されるので、指令語を聞
くことができる。このとき音声応答「イエス」を発生す
ることによυ、コンピュータ18に注意ブリフィックス
の認識および新しい指令シーケンスの開始が入力され得
る。外科医が次(二次表に挙げる10個の選択指令語の
内の1つを発生すると、コンピュータ18を介し音声回
路192によって選択指令語が反復される。一方指令語
を発生したときこれが識別されなかったときは、コンピ
ュータ18から短かいビーという音が発せられ、外科医
は再び認識させるべく選択指令語を反復する。外科医の
発した選択指令語が「ARTHROBOT Jの認識後
20秒以内に認識されなかった場合音声回路192は外
科医が注意プリフィックス「ARTHRO−BOT J
を発生し、指令シーケンスが再び開始され・るまでは、
音声回路192により音声認識機能が停止される。コン
ピュータ18により認識された指令語が音声回路192
からの音声応答による外科医が指定したものでないとき
1:は、外科医は再び選択指令語若しくは指令シーケン
スを無効にすべく「ノー」を発生する。これによシ指令
シーゲンスが終了した場合、コンピュータ18によF)
「5o−rryjという言葉が応答される。次に外科医
は所望の選択指令語を反復するために20秒秒間光られ
、この時間内に所望の選択指令語を発生しないときは、
音声回路192は注意プリフィックス[ARTHROB
OT jで再び指令シーケンスが開始されるまでは、認
識機能を停止する。 一度外科医の所望の選択指令語が連続的に認識されると
、手足の動作装置38の動作が下表に示される好適な動
作指令語をもって開始される。コンピュータ18に有効
な動作指令が認識されると手足操作装置38の動作が開
始され、音声回路192を介し動作指令が音声により確
認される。発声した動作指令が認識されないときは、コ
ンピュータ18から短かい「ビー」という声が発せられ
、外科医はその動作指令を認識させるべく再び発声する
。外科医の発生にもかかわらず「ARTHRO−BOT
 Jの肯定後26秒内に外科医の指令が認識されないと
き、音声回路192により[ARTHROBOT Jが
発生され、指令シーケンスが再開始されるまで音声回路
192の認識機能が停止される。外科医が増分動作指令
(すなわち腕、腰、膝又は足)の−を選択すると、動作
指令の−又は両方が反復され手足の動作装置38の位置
が連続的に変化されるから、全指令シーケンスを反復す
る必要はない。 −七一÷S七S七會÷ 槃口!壕幸めtめ會奨傘 キ 肥 と 會 明細書の浄書(内容に変更なし) ARMに対し  内側     脚をテーブルに向って
移動 外側     脚をテーブルから 離間する方向に移動 HIFに対し  FLBX      腰部の屈曲EX
TEND     腰部の延伸 KN EEに対し  FLFJX      ひざを屈
曲する。 EXTEND     ひざの延1申 FOOTに対し  IN       足を内側へ向け
る。 OUT       足を外側へ向ける。 WRISTに対し RFJLEASK    手足の動
作装置のリストを解散 HOLD      手足の動作装置のリストの保持 他の指令  NO正しくないことの 確認 HALT              手足の動作装置
の動作を直ちに停止 手術中動作に障害が発見され環境安全センサ144が作
働されると、手足操作装置38の動作は直ちに停止され
操作者に対し警報が発せられる。 操作者はこの障害が除去されていること、若しくは手足
の動作装置38が依然として安全に作働していることを
判別すると、ハンドコントローラ166や音声指令(二
より手足の動作装置を所望の方向に連続的に移動させ得
る。 手術の終期に、手足の動作装置38は縦方向に移動され
、止血帯がプラクチイスC二応じて巻かれる。次に手足
の動作装置は患者の足を患者装着体150から容易に取
外可能:二するように完全延伸位置へ移動される。次に
コンピュータ18のキーホードの[ALT JとINキ
ーを同時に押すことにより、手足の動作装置は小さく縮
小された収納(nested)位置へ移動される。これ
により手足の動作装置38は最小のサイズC;折りたた
まれ、手術テーブル42から容易に取外可能になる。更
に締付ボルト56を緩めることにより、手足の動作装置
をレール40から上動して外し、制御箱44の背部の保
持ブラケットに保持せしめることになる。 ■ソフトウェア 手足の動作装置38の制御用としてコンピュータ 18
に対し使用されるソフトウェアについて後述する。コン
ピュータ18のオペレーティングシステムとして好まし
くはIBMのDOSバージョン3.0を使用する。手足
の動作装置の通常の動作時には2つの補助ソフトウェア
プログラム、即ち米国ワシントン州シアトルにあるロー
ズソフト(RoseEfoft )社のProkey 
(登録商標)バージョン2.13#よびNEO社のボイ
スパルス ユーティリティーズ(Voice Plus
 Utilities )バーショア1.01ソフトパ
ツケージが使用され得る。プロキー(Prokey )
は特殊機能に対しIBMパーソナルコンピュータのキー
をプログラムするため、またボイス パルス ユーティ
リティーズはNEOBAR−10の音声回路192と連
動する一以上のプログラムを与えるため使用される。手
足の動作装置38の特注のソフトウェアはすべて「C」
言語で書かれている。「CJコードを実行可能なプログ
ラムに変換するための「Cj−7ンバイクは米国ニュー
シャーシー州のレッドパンクにあるコンビュータイノホ
ケーション社の086TMバージョン2.3コンパイラ
であυ、コンピュータ18内の8087数値コブロセツ
ナをナボートするようメーカの仕様に従い構成されてい
る。また添附のソフトフェアリストには、コンピュータ
18の実行が自動的に行なわれるように、DO83,0
プログラムにより使用されるAUTOEXEC!、BA
Tファイルと、コンピュータ18のキーボードをプログ
ラムするためプロキーにより使用されるAUTOART
I(、PROファイルが含まれる。 添付のソフトウェアおよびこれに付随する注釈により当
業者にはコンピュータ18および手足の動作装置38の
動作が充分理解されようが、以下にプログラムについて
簡略に説明する。 コンピュータ18か付勢されると、DO83,0オペレ
ーシヨンシステムがコンピュータ18のディスク駆動装
置内のディスクから読み出される。オペレーションシス
テムがロードされると、コンビユータ18を介しファイ
ルAUTOEXFli(!、BAT内にリストされた指
令が読み出され実行される。この指令リストには、手足
の動作装置38に使用のためコンピュータ18のキーボ
ードを構成するプロキー指令と、音声回路192をセッ
トし開始する指令と、キーボード入力を操作者に促がす
指令とが包有される。ファイルの最終的な指令によシ手
足の動作装置の制御ソフトウェアが実行される。 制御ソフトウェアは初期値設定部と制御ループ部とから
なシ、初期値設定部によシ各動作定数およびフラグが設
定される。制御ループ部が先ず入力されると、操作者は
キーボードを用い患者を好適に位置決めし、手足の動作
装置の位置を調整し患者の脚の長さを入力するよう指示
される。ソフトウェアには手足の動作装置の位置センサ
から決定される手足の動作装置の既知位置および患者の
データが用いられ、この患者に対する手足の動作装置の
安全範囲が決められる。プリプログラムされた患者の位
置(立脚、完全延伸、完全屈曲、半屈曲、4の字)がこ
の患者の手足の大きさをもファクターに加えるようにソ
フトウェアが形成される。 位置の基準化を完了すると、動作パラメータが更に適宜
自動的に変化され、操作者の要求により患者の足が4の
字位置にされる。リスト(作動器)のコンフライアンス
は、リストが患者の足の重量による重力に対抗し患者の
足が所望位置に維持できなくなるまで増分される。次に
リストにより所望の足位置が維持されるまで、リストの
コンプライアンスが減分される。このときのコンフライ
アンスはこの患者の適正値として決定される。この患者
の場合、これ以後リストのコンプライアンスは決定レベ
ル以上にしないので、患者の足に過度の大きな力が加わ
ることが防止される。 −力制御ループ部は順次呼び出される3セクシヨンから
なり、最初のセクションでは操作者によるキーボード、
音声回路又はハンドコントローラからの入力の存否が検
出され、この入力を認識するとナブル−テンが呼び出さ
れて手足の動作装置の動作が好適に変更される。2番目
のセクションこより、位置センサを含む手足の動作装置
と関連するすべてのセンサが呼び出されてハンドコント
ローラが設定される。制御ループ部の3番目のセクショ
ンにより、操作者入力によって示されるようにセンサの
読み値および動作の所望モードが翻訳されて手足の動作
装置38の電気機械的部品の動作が好適に変更される。 操作者の入力によシ実行される動作の多くは制御ソフト
フェアのサブルーチン内に含まれ、例えばプログラムさ
れた位置の無効、「世界」あるいは「患者」の座標によ
る移動路に沿った動き、および制御パラメータの相互変
更若しくは表示等の機能が挙げられる。上記の世界座標
又は患者座標とはロボット用語で通常使用される2座標
基準系を指す。世界座標は同一のロボットの一セグメン
トの他のセグメントに対する空間位置を定義するために
使用され、一方患者座標は周知の工具座標に等しく患者
の体(この場合工具に相当する)の一部の他部に対する
空間位置を定義するために使用される。又制御ソフトウ
ェアの各部から呼び出される他のサブルーチンとしては
、特定の患者に対し安全であると決定された位置を越え
て手足の動作装置38の動きをテストするルーチン、手
足の動作装置38を任意の位置に停止若しくは維持する
ルーチン、および他の機能を行なうルーチンが挙げられ
る。 ■他の実施例 上述の実施例では変位自由度が7つで油圧あるいは気圧
をもって駆動されたが、動力素子を有さす、動構造体の
各連結部に制動機能のみを具備させて構成しうる。この
簡潔な構成の手足の動作装置は基本機能の一部を低コス
トで提供し得、好ましい。この簡潔な実施例(以後単に
「他の実施例」と呼ぶ)は上述した実施例(以後単に「
第1の実施例Jと呼ぶ)と同一構成、即ち変位自由度が
7つでアームが4本、リストが3個使用され同一の作業
空間内で駆動される。この場合外科医は腕をつかみ、ハ
ンドコントローラ又は音声回路を用いて制動機構を解放
し、腕を別の所望位置あるいは向きに手で動かす。所望
の位置あるいは向きにした後、操作者は再びハンドコン
トローラ又は音声回路を用いて制動機構を作働し所定の
位置あるいは向きに腕を保持させる。 他の実施例では、第1の実施例で用いた油圧又は気圧作
動器群を、摩擦又はラチェット機構を作働するような気
圧又は他の動力による作動器から構成される制動機構若
しくは第12図に示すような装置と置換され得る。当該
制動機構は押し棒236および固定プレート238を備
え、気圧作動器240 (Brldgestone R
ubberturator (商標)を用いることがで
きる)により駆動される。制動機構::は第1の実施例
と同様のサーボ弁が具備される。 また他の実施例においては、各油圧作動器をこの制動機
構と置換し得、一方策1の実施例のリストの各部の作動
器はロッドレスシリンダ作動器と同様の制動機構および
アイドラスプロケットの周囲に懸架されたチェーンと置
換されよう。操作者により他の実施例の制動機構におい
て駆動若しくは停止構成は第1の実施例と同等あるいは
簡潔にされる。第13図に示す簡素化された手足の動作
装置の動作を制御する構成によれば、この手足の動作装
置には一以上のハンドルが付設され、このハンドル24
2を把持して手足の動′作装置の一部又はすべての連結
部を解放できる。即ちハンドル242は上述した旋回軸
60 、72 、86 、100又は差動機構112に
相当する各連結部、又は上述した旋回軸若しくは差動機
構のコンピュータ制御により連続して可変動作する第1
4図の作動器に相応する。 ハンドル242により操作者は手足の動作装置のアーム
を位置決めし、患者装着体を好適に向け、一方手足の動
作装置の連結部を解放しハンドル242を解放してこの
連結部を所望位置に再び固定できる。しかして当該連結
部は選択的に位置決めされ得、手足の位置決めおよび配
向を別個に制御できる。第14図には第13図の実施例
に使用される簡略化された作動器の構成が示されており
、手足の動作装置のリスト機構の動きを容易にするため
、操作者はリストを固定若しくは解放でき、また手足の
動作装置のアーム機構の他の動きを容易にするため操作
者は他の作動器を固定若しくは解放できる。気圧作動器
を作働する機構には、作動器の圧力を中間状態に調整可
能なサーボ弁を用いずに、作動器に対し全圧をかげるか
若しくは全圧を除去するかのいずれか一方の状態に調整
するような電磁制御による気圧弁が包有される。ハンド
ル242のスイッチ244により、連結部解放回路24
6が作働され、弁ドライバ248が作働されて、空気弁
250が開放され気圧作動器252の圧力が解放される
。 第13図の実施例には更に、手足の動作装置のアーム機
構の重量および患者の手足の重量を補正し外科医の操作
が容易になるよう(ニパネを具備できよう。また上述し
た実施例と同様な動構造の回転制動連結部を有する軽量
の管構造体が具備され得る。BridgestOne 
Rubberturatorのような気圧作動器により
、連結部を固定するために第12図に示される線型作働
装置ではなく、回転作働装置を用いて駆動し得る。手足
の動作装置のアーム機構の重量を最小にするため各作動
器によシ互いに隣接する2つの連結部が駆動される。 更に手足の動作装置の作動構成は、−以上の油圧又は気
圧作動器およびこれと連係する制御回路を、Atchl
ey (商標)気圧サーボ作動器(米国カルフォルニア
州ロスアンゼルスのアツチレイコントロール(Atch
ley 0ontro1s )社のものを用い得る)等
の他の作動器および連係制御回路、あるいは他の気圧若
しくは油圧作動器およびこれと連係する制御回路と置換
することにより変更され得る。手足の動作装置の動構造
体も脚または膝より他の部分の関節鏡検査による診断、
治療に使用可能に変更できる。豆本発明の手足の動作装
置は骨折の治療、再生手術等の関節鏡検査以外の手術に
適合可能に変更しつる。 手足の動作装置は体の各部を同時に容易に操作および位
置決め可能にし、従来の手術テーブルにかわる再プログ
ラム可能で多機能な′有する完全な自動手足動作装置と
して構成できる。また本発明の手足の動作装置は手術後
患者の関節部の動きをよくするため関節部を反復して最
適に作働させる再プログラム可能な連続動作装置として
設計変更可能である。更に本発明は物理的応力に対する
患者の反応の変化に応じて動作を変化させる再プログラ
ム可能な多機能トレーニング装置若しくは応力テスト装
置としても構成しつる。 (発明の効果) 上述のような本発明によれば、(1)診断、治療の質が
向上される(2)診断、治療費用を低減し得る(3)危
険な環境に患者、手術スタッフを晒す危惧を低減できる
、例えば患者の手足を自動操作し手術後直ちにX線を正
確に照射できる上、スタッフはX線源から離れた場所に
居ることができ、放射線を受けることが防止される。 更に本発明の手足の動作装置を手術時の組織牽引器とし
て、例えば牽引して手術部を良く観察できるように用い
得、組織の圧力を検出し制御することにより牽引組織の
損傷を最小限に抑える装置として構成できる。本発明の
手足の動作装置は患者の生理的、生態的パラメータの変
化に応じて動作し、例えばレーザ照射を受ける組織の局
処解剖学上の色、温度若し、くは表面によりレーザ光の
出力、期間および波長を変えたシ操作方向若しくは速度
を変えるレーデ作動装置を備えることもできる。 且患者の心電信号、筋電信号又は脳波信号等のパラメー
タを検出するとき、心臓、神経、筋肉、脳と関連する組
織の近傍に診断または治療用の電極を自動的、正確且隣
接する組織の損傷を最/J%限に抑え得るように位置決
めするために使用できる。 また本発明は他にX線装置、核磁気共鳴スキャナ、陽電
子放出スキャナあるいは透視機のような影像装置からの
患者の生態パラメータを用いることができる。このよう
にパラメータを検出し分析することによシ高度医療ロボ
ットによって患者の体に光フアイバ装置の放射性先端部
のような作動装置を自動的に、極めて正確に且患者に対
する損傷を最小限に抑えて挿入可能である。更に本発明
は解剖上挙さな組織を操作するミクロ操作装置として、
又小さな組織に対しセンサ即ち患者のパラメータの変化
に応じて通常操作装置が作動されて小さな組織に対し小
さな装置を正確に操作でき、操作装置により安全且充分
に処理できない場合のみ介在すればよいから大巾な省力
化を図り得る。 加えて本発明は大きな医学的利点を有する。例えば本発
明による手足の動作装置の−のモードでは可視する必要
のない制御装置として、手術室あるいは他の医療現場に
分離しても使用でき、これまで多くの医療装置に付設さ
れたスイッチあるいはつまみを用いて手動、可視で操作
するような制御が不要となる。従って手術室において、
従来外科医は手、足によりスイッチ若しくはつまみを操
作する必要があり手術の中断、留意が余儀なくされてい
たが、本発明の装置によれば、これらの問題点を除去し
、正確且効果的に制御できる。また上述の如く音声機構
を用いて、手術マスクと同様なマスクを着けた麻酔医、
ナース等が手を用いることなく患者に関するデータや診
断治療手順を確実に記録できる。この音声機構を用いる
ことによっても労働力を軽減でき多くの診断、治療手順
の質が向上され得る等々、多岐に亘って有効な効果を達
成する。 著作権は^ndron1c Devlces社にあり、
AR’l’lll’1OBO’rとANDRONICは
同社の商標である。 AUTOgX[eC,BへT エフ−オフ アサインbma プロキー autoarth、pro/r1a echo  著作+taは1986年Andronic
 Devices社所有。 @ c ha  ARTIIROBO’l’とANDl
tONIOは同社の商標である。 ech。 echo   医療ロボット ARTI(ROBOT 
Iqcho   音pt:ターンを入力しArthro
botコントロールプロクラムヲeCho  ’   
                         
 5ンせよ。 echo   ドクターデーの音声パターン入力のため
キーAltlを入力。 echo   ロブの音声パターン入力のためキーAL
L2を入力。 echo   グレンの音声パターン入力のためキーA
lt3を入力。 echo   シェフの音声パターン入力のためキーA
lt4を入力。 echo  上記以外の者の音声パターン入力のためキ
ーALt5を入力。 ech。 AUTO八RTへ1.PRO <aH=><altlン フビー a:brlan、apb  a:arthro
ll、spb<エンターンvpl   a:arLhr
oll  4040400  艶1008 1<エンタ
ー〉arthro 11 <エンター〉 くへlし−ン コピー a:rob、spb  a:arthroIl
、spb<zンターンvpl   a:arthroI
I  40 4040 0 30 100 8 1<エ
ンターンarthroll<エンターン <alt−ン <alt=ン<alt3> コピー a:glenn、spb  a:arthro
Il、spb<エンター〉vpl  a:arthro
II  404040 0 30 100 8  L<
エンターンarthroxr<エンターン <alt−ン <altにン<alt4> コピー a:geof、spb  a:arthroI
l、spb<エンターンvpl  a:arthroI
I  404040 030 100 8 1くエンタ
ー〉arthrOII<エンターン (alt〜ン くalt=ン<alt5> コピー Q:Qther、Spb  a:arthro
II−spb<エンターンvpl  a:arthro
II  40 40 400 30 1008 1<エ
ンターンarmhrOII<エンター〉 <alt−ン C0NFIO,SY3 ブレーク=オン ファイル;20 バッファ;10 fcbs=32.32 デバイス=ansi、sys デバイス=vpυ、sys デファイン・H860202 $r+eNne  abB(x)      (((x
) <O) ? −(x) + (x))ddefin
e     max(x、yJ           
 (((x)  <  (y))?  (yン  : 
  (χ))jdefine  rnin(x、Y) 
   (((x) < (y))? (x) : (y
))ldefLne   TR[JE        
 11define    F’ALSB      
       011define   YES’  
  11define   No          
0jdef1ne   RAD PERPOTO0,0
01150000jdefine   RAD−PER
−POTI    O,0012378221defi
ne   RAD−PER−POT2   0.001
165279書define    RAID−PIE
RPOT3     0.0010663931def
ine   RAD−PER−POT4   0.0O
11500QO書define   RAD−PER−
POT5  、 −0.0009941751defi
ne   RAD−PERPOT6   0.0011
500001define   5IIOtJLDEF
t      20BB      2066であった
1define   IIYDRO0 ldefine   BRIDGE8       1
   ・1def1ne   LOCK       
   ’ e’1def ine   ll0LD  
        ’ l’1def1ne   MOV
E          ’m’1define   F
REE          ’ f’lde f in
e   MUS+l          ’ z’1d
efine   ’I’RACK         ’
 k’#def1ne   FORW、ARD    
    0x0492#defrne   REVb;
R8B        0x0249#deflne 
  OFF           O$define 
  0PEN           0xFFPFi1
def’jne   8111r1’        
   0$def+ne  (El’llP DINP
T’t+     165.0$define   W
IDTll         220.0$dafin
e   Dh、PTI(165,0$define  
 PI           3.141592654
$defina   ANG 5TEP       
2.0$define   Wl)ON       
   0xlOOO$define   TTMER8
4 $daftnp、   POTERRl$define
WDOFFI’0xEF111F#define   
USER5tlPPLTED CLOCK ROUTI
NE VECTOR0xlc次の文字リストは好適な指
令に対しキーボードバッファに置かれろう文字のノース
はキーボード、音声又はハ/ドコントローラである。 注: 下位バイトにはキーのASCII文字が含まゎ、
上位バーf )計−のスヤヤノコードが含まれる。 ddefine  Fl    59木256$def
1ne   F2     60 米256#defi
ne   F3     61 ;’f= 256$d
efine   F4     62 $ 256善d
efine   F5         63 本25
6斗define  F6       64本256
$define  F’7      65本256・
ddefine   F’8         66 
本256#define   F9         
67 体256$define   AL’r B  
      48 *−256$define   A
LT−C46’31256$define   ALT
−D        32 * 256$define
   ALT−E        1B 米256$d
efine   AL’r F        33来
256$define   A’LT ()     
   34 *−256#define   AL’r
−1(35本256$define   ALTJ  
      23 末256$define   AL
T J        36 It 256$defi
ne   ALT−K        37 米256
$define     ALT−L        
     3B  末 256#define   A
LT−M        50  * 25611de
fine   ALT−N       40  製2
56$define   ALT−024X−256$
defina   AL’r P        25
  軒256$define    ALT−Q   
         16  昶 256#def1ne
   AL’r’−R19禾256IJ(ie f i
ne   ALT−831米256$define  
 ALT−T        20 *−256#de
flne     ALj−U           
  22  木 256#cJef1ne   At、
T−V        47 宋256$define
   ALT W        17 本256$d
efine   ALj−X        45 米
256$deftne  ALT Y        
21 本256#defLne  AL’l’−Z  
     +4木256$define   CUR8
ORUP      72 妊256$define 
  CUR8OR−DOWN     80 木256
$de41ne  CUR3OR−LE)i”I’  
  7B ’l−256$deNn8CUR8OFj−
RIGH’r    7’/ 軟256$define
   VOICE $defjne  )IAND CON°f’RoL 
      lp/$defi、qe  ARTI(R
OBOT−COM)aNDjldefine  OKA
Y−COMMAND        ’に’$defl
ne   No COMMANDjdefzne  Q
UIE’[’ COMMAND      ’q’$d
eNne  EMEROENCY S’rOP−COL
IMAND  ’:l’11define   RES
IflRVED 6 OOMMANDldefine 
    ELEVへTE  COIJMAND    
         F2$define    FUL
L −EXilJ3TON  C0MM、AND   
F4@defxne    HALF  FLFX  
C01JIJAND        F6#deNne
FULL FLEX COM)AAND     F8
$define   FIGURFi 4 COMMA
ND     FIO$define   5lli:
T、UP C0111]JAND        ’2
’$define   RESgRVED 13 OO
MMANDldefine    RESERVED 
 14  COM’1JAND$defineARM 
COM)JAND         Fl#defin
p、   H[P COMMAND         
F3$deHne   KNEIE COMMAND 
       F5$define   FOOT C
OMMAND        F7$define  
 W[(TST COIJMAND       F9
9def1ne  OOIJPLIANCECOlll
MAND    ’l’$deflne  RFSaR
VED 21 COMMANDI11efinelIE
8ERVIED 22 COMMAND#def1ne
  MOVE COMMAND      ’g’$d
efine   STOP−GOIJMAND$def
1ne   IN aoMIJIJI)$define
  OU’f’ OOMMANDldefine  F
IJX COMMAND        ’f’11d
afine  EXTEND OOMMANDldef
ine  RELEAI−Co)JMANDldefi
ne  HOLD COMMAND        ’
h’jdefine   LESS COMMAND 
       ’l’1define  MORE C
OMMAND        ’m’1define 
 RESER■D 33−(!OMMAND$defi
ne  RESERVED−34−OOMMANDld
efine  RESERVED−35−OOMMAN
Dldefine    RIuSERVlliirl
−36COMM−AND9def1na  MlNUG
−COMlJAND       I−′1defin
e    PLUS−COMMAND        
     ’+’各指令に対する音声出力語の放 1define   ARTHROBOT RE8PO
NIEE     l$−jel’+n++  0KA
Y Rh;5POIJSIn        2$+I
efine   No RIl;8POIJSW   
       3$deflng    tコUTET
  RESPO+JSlfl            
  4$define   F!JIEROENCY−
8’POP RESPONSK   5$de [’i
ne   RWSERVIED 6−RESPOIJs
lli     6$define   KLF、VA
Tg RESPONSK       7$defin
e   FULL BX’[’ENSION RESP
ONSli:   8$derina   HALF 
FLにX RgSPONSE      9$defi
ne   FULJ、FLFX RESPONi   
   10$define   FIGURE 4 R
KSPONSIn       11$dafjne 
  5ETUP−Rli;S’PONSliC12$+
1efine    RESERVED  13  R
ESPOHSE       13$deflna  
HKIJRVED 14 Rf2SPONSE    
 14$defina  ARM RKSPONSE 
         15i+1eflne   HIP
 RFiSPONSI          16jde
fine   KNEE RESPONSli:   
      17$define   FOOT RK
SPON+J:         1B$tlefin
e   WRTSTRESPONSE        
 19#clef’ine   COMPLIANCE
 RESPOHSE     20$derine  
 HE8gl(VED 2l−RIl:5PONS[!
i     21#define  RmSERVEr
) 22 RKSPONSH:     22$def
ine    M+つシIコーRKSPONSE   
             23$define   
5TOP RESPONSm         24$
define   IN RESPONSli:   
        25$define  OUT RE
SPONSI        26$l1efxne 
  FLFX RESPONSm         2
71dsflne  IIX’l’END−RIl:5
PONSI!+       281deYtne  
RgLIjASE−RESPOHSE      29
1deflne  HOLD RESPONSK   
     301deffine  LESSj’[i
、5PONsEt       311derine 
 MOR[e RESPON3ffi        
32jrlefine  RaSm)tVED−33R
ESPONS、[C33jdef1ne  RIT:5
1flJ(VED−34−RK8PON8K    3
41rloftne    R11:5K1(VIED
−35−RIl、3POIJSK       351
rlefine    RE)11!)tVED  3
.6−RESPOHSE       36jdeNn
e    LIMIT               
      371define    k4TNU8
  RKSPONSK               
 7         isノ;5ζJ6jdefin
e  PLUS−18PONsIc       ?E
X’rRNVAR,H860202 ARTF(ROIプログラムにより使用される全ての外
部変数の宣言。 exL;ern   tnt    +node:ex
tern   inl、     are  we−1
n  continuous  motion;ext
ern   int     cant。 extqrn   int    PIERIOD;e
xむern   ine     5ide;cxl、
ern    inj      5houlder;
extarn    int      pots(7
);extern  int    joint;ex
tarn   int     memory(6)(
7);exeern   int      atte
ntion;extern    Lnt      
a++Locomp;eX+、ern  jnt   
 penll  On;extcrn   int  
  ouLIIi us;extCrn   ir+t
     ref  dac;extI3rn   i
nt     panpressed:ext:ern
    int      pendiampLe;e
xtern   ine     time’r(4)
;6xしern   inむ    fault(7)
;extern  int   aac(6);ext
ern   ine     debug;ext、e
rn  tnt   debugger(64);ex
tern  int   realpoa(7);ax
tern  1nt    phthon  ;eK 
しe rn   1 n’−pr epropOG+ 
 On pa th :、1xtern  int  
  reealling+extern   inし 
   9arety;QKT−ern   int、 
   5lovnnode;exしern    tn
t      Lr1llned+eX tern  
 ine     cycler +  cyCle−
posi tionl  ctime :exしern
   int     external−rotat
ion;extern  int   wrparmn
(20);       リストctrlに対するex
tern  double  hx、   by、  
kx、   ky、  m1nq;   W!1部と膝
extern  double  offsetl、o
ffset2.oHset3.offaot5  :e
Xtern  rloIJble  elevate、
fleX−ang  ;     プリプログラムさe
xt、ern  dolll)12  elev、  
 flex l          解剖学上exしe
rn   double    yaw−center
;ext、ern   dQtlt)Le    pi
tch  center;extern  doubl
e  roll  center:extcrn   
5truCt   +1set      5at(7
);exeern   sL;rucし  qstat
a   5tate(’! );e (tern   
5truce    sp!11r;nr+    p
ar+ns(7);extern   5truct′
  spu+np    pump(4);数学関数リ
ターンの定義 extqrn  double  5qrt()、 Q
in(L  cosO,tan□、  asin□。 ta GLOBVAR8,H860202 ARTI(ROfi フログラムを使用する全てのグロ
ーバル変数int  cant;          
 スイッチのプログラムint  PERIOD  −
5; 1ntside    −1;       手術テー
ブル側部を表わすボー2リテint  5houl+j
ρ「;1;      肩部の実際の位置を表わすボー
ラリテipt  pots(7);         
  現在のpotの読みイ直inし JO1nt+  
           関節カウンタのグローバル変数
としてint   1ne+nory(6)(7)=J
[99991,199991,(99991,1999
91,[位置メモリ int   attention ine  n++tucomp  =  r+’AI、
s+<;     自動リストコンフ゛ライアンス基準
・lnt  pend  on   =  TRUE;
      ベングツト使用可能フラグint  ou
t:biむS  −0;     パノクグ2ウンドの
dacを更新可能にinむ ref dac   = 
FkLSε;  バノクグ2クンドのdacを真新5T
能1:1nt−pQn()teQBed  = l’A
Ll;[E:   ペンダントのノブおよびボタンが指
示器tnt  pQndRample+       
  ペンダントからの^DC読みf直int  tim
er(4)   =lO,0,0+01;   デュー
ティサ・イクルタイiのセットinも fault(7
)  = 10,0,0,0,0,0,01;  各関
節に対するエラーdaC(6)    −1120,1
28,128,128,12B、1281;  BR8
TI/1動int  dac(6)    = 10.
0,0,0,0,01;    BRPl’[’作動器
の更新イ直int  debug          
    7ライデイパツガー7ラングのint  de
bugger(64) :       デイパツガー
の変数配列int  renlpos(マ〕;    
   一時位置記憶int  pnthnn = O;
        移動ルーチンに対するトグル7ラツグ
lrN;  preprOp03.0npath” o
;     移動路ルーチンに対するint  aLo
wmode   = O:int  trained 
  rz O;     位置が記憶されることを示す
フラグint  eycLer、cycLq posi
tion、ctlme;     Ml剖サイクルの変
int  external rotatlon:  
  外部回転が呼び出されたことを示)器讐=ユニ利=
 Ha、9a、a4.a8.s2,24.、a、12.
81 ;リストコ/グライア doul+Le  、leg、  5fiiftx、’
  sl+1fty、  zO;    患者の基準化
デーdouble  hx、   hy、   kx、
   ky、  m1nq;    腰部と膝部の座d
ouble   offsetl、  offset2
.  offset3.  offset5  :do
uble  elevate、  flex−ang 
 ;            プリプログラムさ、1o
ub1a  +】tev、    flex :   
        M開学的動作+1ouble   y
awcentqr   =  1!〕06  :+1o
ub1.e  pi仁eh cent、ur = 18
741  ;douhte  roll−center
  =  2083  :5truct  5set 
   5et(7);5tructsstntesta
te(7);5truct  sparms  par
ms(7);5truct  spump   pum
p(4) =  l  (0,0x0003.  OF
F。 (0,0xOOLB、  OFF。 (0,0に0OCO,OFF。 (0,0x0600.  Ok?h’。 ); 数学問截りターンの定義 double  5qrt()、 5in()+ co
s()+ tan()、 asxn()、 +hcos
()tnt   mode    ”I  O;int
   are W(3in continuous−m
otion  =No:c86に対スる標f’A r/
6ヘツダフアイル1ifndef   −5tdioh lifdef−C60BIQ 書define NULL (OL) $else ldefine NULL O $endif ldefine EOF(−1)      ファイル
の標準終了$define EO8’\0′ストリング
の[9終了$define  ARBAD  Oasc
ii リード9derine AWRITE l   
  ascziライト$define AUPDATE
 2    ascii更新(これで処理)ldefi
ne BREAD 4     二進更新11def1
ne BWRITE5     二進ライト$defi
ne 13UPDATE6    二進更新#defi
ne SEF、K CURL   現在に対するtel
を求める$defjne 5EEK−END 2   
終了に対するtelを求める11define 5EE
K−8ET O絶対1直を求めるこれは実行時間により
一度にオーブンできるファイルの最大数て°hる。又オ
ベレーノヨン/ステムにより更(:制限される。 $define SYS 0PEN  32typed
ef char FILE:$define getc
harN  fgetc(stdin)$define
 getc(x)  fgetc(x)$define
 putchar(x)  fputc(X、5tdQ
ut)#define putc(x、y)  fpu
tc(x、”/)extern  FILE  ’l’
fopen(+、  米fr eopen(ン ;ex
tern long 1telL()、  1seek
()、  ftell()  fseek();ext
ern char 米gets□、  来fgetsO
;$andif $define 5tdioh 標準ヘッダファイルの終了 5TRUCTS、 H860123 ARTIIRf31プログラムの使用する全ての構造体
テンプレート5truCt   5sat 土nt Inode:         達結そ−)’
(07り、保持、移動、自在ンint pos:   
     所望のpot読み(直int duty: 
       速度制御のためのデューティーサ・イク
ル): 5truct  sparms int  eype;       作動器の種類(/
Ill圧、フリノジ)tnt  r−hys ;   
   順ヒxテリシス<r山王式(ニア・1シてのみf
史/IJint  r−bys;      逆ヒステ
リンλ(油圧式(−幻してのみ便用1nt  cloc
k;     デユーティ−サイクルタイマに対するボ
イノク1nF−Outadr+     油圧式に対す
るポツプp、 atchLeysに対DACrト int  vu+ask;      弁マスクint
  resf3t:       モータおよび弁をリ
ヒソトして夫々オフおよびint  xgain;  
    位置エラーゲインint  vgain;  
    速度エラーゲイ:y (atchLeysf:
、χ・1してint  deIltd;      位
置達成後の待ら時間の長さint  Lnc:    
   各関節に対する増分ファクタint  mah;
        マノ7ユモート°定数、リスlのみ5
truct  spump jnt   0GrVe;      ヒツトにょる開
用中のモータの決定] n ’e   ma 5 k 
+       ボンプモークのビットマスクint 
  +nation:     現在のモータの状態(
F’0RWARD、 REVER8double  f
low;    (&速補正7アククj。 5truct   5state int   pot;       potの実Jll
l (11iint  de1℃axl     差動
pot値のw、r、t、時間int   motor;
      モータ状態油圧式の場合、有効状題はFO
RWARO,ROF)i′である !1tchle”/Sの場合、モータはDAC出力をi
nt  valve;      弁状75(OPEN
、5HIJT)油圧式の場合、弁が閉のとき関節部が固
atchleysの場合、弁が閉のときエヤが供int
  wait;      所定位置に達した後関節部
を休止させるイマ ); ACTONCOM、C86020に の千1膜により、キーボードのバッファが読み取られ、
ローが発声されて関節部が指令されろ 注:キーボードバッファの文字はキーボード、5AR−
10のう/スペアレ/トハー′ドラ又は操作者用の・・
ノドコントローのいずれかからのものである。 11nclutie  ”5tdio、h”$1ncl
uda  ’defines、h”$1ncL++de
   ’5truces、h’$1nclude  ”
extrnvar、h”act−on−command
s−from the  keyboard  but
ferNstatic int the−determ
ined 5elecHon、  the deter
miaction、  have the  5ele
ction and  been−varified 
; Bwitch(mntje ) case   O: モード0はArthrobotの正常動作を一ドである
。 キーボード又は5AR−10音声認識装置を介し入力さ
nた指令は:友の中断駆動子111および5AR−10
のトランスペアレントフッドラのソフトよりキーボード
バッファ内に置かれる。Iツドコノトローラは中断駆動
ので、ノットコントローラを読み、キーボードバッファ
(二放出する摺合かどうか決定する必要がある 1f(pend−on ) check−to see if the hand 
control has any comato r−
us ( tbe  det@r+n1ned−selectio
:>。 the determzned action ) ;
ここでキーボードバッフIが読み取られ、指令語が発声
され決定されおよび決定されたアクア3ノが好適にセッ
トされる。 make a  declsion  on  the
  cjetermined  5election 
 anBctLon ( &the detHrmined−selection
。 &the−determined  action。 &have  the  5election and
  act’l○been−verifi ); B後に選択i6よびアクノヨ/が開始される1niti
ate the determined−select
ion−and action(the−determ
ined 5election。 the−determined action。 &have−the−8election−and a
ctt。 been verifi ); break; if(key  5canN  ==   (−1) 
  )return(−1); increment(key()+  &modq  
) :break; case2: で実庁fり。 + r(key−scanf ) ==  (−11)
return(−、L); 5tore(keyf l、   lIcmode  
) +ADJCOIAI3.C860124 11ncLude’5tdlo、h” 11nclude  ”deflnes、h″11nc
Lude  ’5tructs、h’11nclu+1
e   ”exe、rnvar、h”adj」st t
he wr4st−compliance(1)ets
e if (1ン0 && i < 9 ) wrco
IIIpmap(0) = 1;Arthrobotl
家クリプログラムされた各位置をストアしているときモ
ードelse if (wrcompmILp(0) 
> 8 )  wrcompmap(0)  = 8;
pokeb(308,0xbOOO,’O’ + wr
compmap(0)  );vrparms(13)
 w wrcompmap(wrcompmap(0)
 );wrparmn(14)= 4095 / wr
parms(13):ADJIJ43T、C86012
3 このルーチ/(二よりユーザが関節部のバラメータを調
整しうる。 11nclude  ’5tdia、h”1tnclu
de  ”defines、h”111nctude 
 ”atructs、h’int i、  reply
: double numb、 num2;1ockup(
TRυE); clearscreen (10,24) ;1f(1
ン、、Q&&i<マ ) ” 、 pnrmslJ)、f−hys) ;5can
f (”%d\n’ 、 &parms(+)、f−h
ys) :ヨーi6よびピンチは同じ定数を要求するの
で、ヨ一定数を更新すると自動的にピンチ定数が更新さ
れる。 if Ci 日4 ) parma(5)、f−hya
 = parms(4)、f hys;prlntf 
(”H−hys (wriat: delay)  、
  now%rl:”。 parms(1) 、 r−hys) :5canf 
(”%d\n”、 &parms(1)、r hys)
;if (i = 4 ) parms(5)、 r−
hys = par+n5(4) 、r−hys;pr
intf (’χgain、 nOW%d : ’、 
parms(i)、xgaln);5canf (”%
d\n” 、 &parms(1)、xgain) :
if  (i  ==  4  )  pnr+no(
5)、vHain  =  parma(4)、vga
in;if  (i  =−s  4  )  par
ms(5)、dead  =  parms(4:]、
dead;printf (’Mush mode c
onst/lnt、 nov%d: @1clears
creen (10,24);Lockup(FALS
Ii:) : twr(+        リストパラメータの調整I
uckup (TRIJE): clearScrean (10,24);lnu’/
ecL[5lJr  (12,O):prjot[’ 
 (”Adjujit  Wri、9し parume
ters\n\n”);f(”Wr+st mode:
  l = normal、 2 = 1ock YA
W & PI’rCHitch trackjng\n
′Xn”)+printf (”Wrist +nod
e、 now %d  :  ’、 wrparms(
0));5cant’ (%d\n’ 、 &wrpa
r+ns(+))) ;printf (V offs
et、 now %d  :  w、 wrpar+n
q(l]);5canf  (s%d\n”、  &w
rparma(1)):pr1nt4 (”pitch
 WindOw、  now%d : ” 、 wrp
ar+n5(2:]) ;5canf (”%d\n”
+  &yrparms(2));printf (”
0vershoot constant、 now%d
 : ” 、 wrparms(3));5canf 
(”%d\n”、  &wrparms(3));pr
intf (’pitch velocity sca
ling factor、 now tl)d:  ’
。 wrparms(4) ) ; 5canC(’%d\n”、  &wrpar+n5(
4));printf  (”Count  down
  timer、  now  %d  :  ”、 
 wrparms[:5));5Canf (’%d\
n’、  &wrparms(5));ELEVATE
  0FPSE’r  PARAMliTER8pri
ntf (YaW 0ffsGt const for
 elevate、  nov%d:1゜wrparl
l18(10) ) ; 5canf (’%d\n”、  &、wrpar+n
1(H):l);printf (”pitch el
evate offset、 now%d : ’、 
wrparms(11));5canr (’%dsn
”、&wrpar+r+5(11)):pr+ntf’
  (”Roll  extc!rul/5levat
e  of rset、  now  %d : 1゜
wrpartnll(12))* QCanr  (’%d\「1″、  &wrp:+r
ms(12));C0kAPL、tANc2 5CAL
ING  FACTOR3printf (’COMP
LIAN(J 5CALING (8:hard−64
:5oft)。 n Ot?%d ;  ’、  wrparms(13
));5canf (”d\n” 、 &wrpar+
nn(13)) ;nrparmo(14) = 40
95 / wrparms(13);prinR(’W
RIST COMPLIIJEN’rARY C0N5
TANT = %d\nl。 printf (’Pitch tracking o
ffset constant、 now%dwrpa
rms(15)) : acanf (”%d\n’、  &wrparms(
15));printf (”Roll tracki
ng offset constant、 now%d
 ;wrparms(16:l) ; 5canf (’%d\n” 、 &wrpar+n5
(16)) ;clearscreen  (10,2
4);1ockup(FALSE); ANATOM、C851203 このルーチ/により脚部の解剖学上の動作の計算調整が
行なわれるこのルーチンによりルーチンREVER1,
CとFORWARD、Cが呼び出腰部の増分角および増
分屈曲角がパラメータとして入力される。 $1nclude  ”5tdio、h”$1nclu
de   ’defines、h’$1ncLude 
 ’5tructs、h”$1ncLude  ”ax
trnvar、h’anatom(de、df) double  de、df  : double  an(<Q、llngl、an((2
,an63.ang4.ang5.an((6;dou
ble  elv、flx  ;lr  (train
ed  ) if  ((set(1)−mode  !=MOVE
)  &、& (set(2)、mode  != M
O■)(set(3) 、mode!=MOVE) )
Lock儀Jp(TR[]Ifi) ;angl = 
pots(1’l 米RAD PERPOTI + o
ffsetl;calc  arm  coor4in
a化eang2 = pots(2)  本RAD P
ERPOT2 + offset2;calc  ar
m  coordinaEean(13g pots(
3)*  rhD PERPOT3  +  −1ば5
et3;ang5  =  pots(5)  −J 
 RAD  PERPOT5  +  offset5
;calc  pitch  attitudeang
o = ang4 == ang6  = 0.0  
:for  lag(&elv、&t’lx、an((
0,angl、ang2.ang3.ang4.ang
5.arelev=  (elv / PI)  本 
180.0  ;flex  =  (fix /  
PI)  本 1B0.0  ;elav  +=  
de  ; elv = (elev/ 180.0)才P■;fl
x =  (flex /  180.0):I、PI
 :r evJag (&an% 、 &angl 、
 &ang2 誂ang3 、 *ang4 、 &a
n((5、i=ang6set(1)、pos = (
angl −oRsatl) / RAD PEI(P
OTl:5et(2)、pos= (ang2− oR
sat2)/ HAD PERPOT2;5et(3)
、pos = (ang3− offset3) / 
RAD PER−POT3;5et(1,)、mode
 = MOV[i: ;5et(2)、mode  =
lvlOVE、 ;5et(3)、moae = MO
VE  ;移動後ビノテボソトカ唯然に七ノー・される
。 1ockup(FAI、SIM) : lse 玉 CIeilrS−二roen(22,24)+move
cursor(22,0) :prxntf(” An
atomical motion is not av
ailable untllls  5caled八o
’); prjot4(’  \n”); movecursor(24,0)  :AROU’r
、C860122 AFL−10と直接通イ3し他機能のため音声検証する
一組のル−チンチア arout(x)により音声合成
装置により記憶された・N=?ヤフ語Xを発声する。 )include″5tdio、h’ $1nCludp ”def+nes、h”$1ncl
uda ”5tructs、h”gdt+fln+= 
 5AHIODATA  POR’l’     0:
<0350#defrnesA)(10ST、A’rl
JU POR’[”  0x0351ur+stgne
d   char  outpue  5trln3(
6);1r1t     1: +f  (debug) prirHf (”arout: word %rl\
n”+X):lfc   x<L  ll  xン33
)return(0); if(1nporeb(SARIO−3’T’ATUS
−PORT)  &  0XOOO4)rsj、すrn
(0); qtrcpy(output string、  ”O
A  Xrl  );if(xン9) sutput string(2) = Cunsig
ned char) (xlout、put−stri
ng(3)    = (unsigned char
) (x%for(i = O;  oueput s
tring’(i  )  != Oi  i→ )w
hile((1nportb(5ARIO−8TAT’
US PORT)  &1、!1. (1nportb
(5ARIO5TATIJSj’ORT )  &);
                         
       ”outportb(8ARIODAT
A  PORT、   output  string
(i  ));return(x  ): 】 ARTIII(OIl、C860202ARTI(RO
BOT  H 1t11 BRII)G118TONE Arthrobot ! 制御プログラム11ncL+
ole  ’5tdio、h’11nclude  ”
dsfinea、h’l 1nclude  5tru
cts、h@11nclude  ’globvars
、h”main(I tnt i、j; clearscreen(0,24);mavecur
aor  (0,32’  );5etuプ);   
              システムの初期1・H”
2定mainmsnu(); cant  w TRUE while  (cant)            
   タイ/ループdo  ctrl−1oop(1; ir  (autocomp) all切matlc vvrlat complian
ce−scaling(1;dtreset(1; clearscreen(0,24);move+:u
rs+)f(0,O);prLntf  (”0ood
bye  frora AR’rllROBOT It
 Xn’ ) ;unlink  from−inte
rrupt(USWREIUPPLIED−CLOCK
−ROtJ’rlVECTOR); do  ctrl  1oop() 5napshot’、); process();               
        分配処理のdtvrport  (8
,outbits  );AtJ’rOCOMP、C8
60130このルーチン;;より、σ者の脚が「4の字
」位置に移動され、リス正しい位置を維持するためのリ
ストの最小側さが決定される。 $1*clu+te  ’derinpa、h”j1n
cLu+Ie  ’5tructs、h”11ncL+
+小1  @ex*rnvar、h’au t、oma
t lc−wrist−compl 1aru:e−s
eal i ngT l4の字位置へ移動 recal+(’5’  );       4の字位
置は位置5で表わされるa*tay(1oooo );
       4の字位置になるまで10秒間待てwh
ile (wrist at 5et−positio
n(1&& wrcompmap(0) > 1 )a
dju+1t−the−wriθt−complian
ce(’−’  );   コンプライアンスを1de
lay(1500); printf(”  ”);    !Iストが過度に
弱い点に達したことを示す・〃旧Le (!wrist
 at−set−post tlonf 1 h、k 
wrcompm+tp(0) < 9adju++t−
the−wrist  co品pLiance(’+’
  );   コンプライアンスを1jalay(1!
′)f)O) : auLocomp = FALSE: 1     リストの自動コンプライアンス基準化の終
了このルーチンはリストの実際の位置が所望設定位置と
同じか否調ベプールレスボノスを戻ス。 wrist−at  set  position(1
ぎ int  rlag、  joint;flag = 
’I’RFIli:; C flag=I嘲’ALS[i:; break: reeurn(j’Lag ); このルーチ/は故6y秒の通過数だけ遅延し主arth
robot制御unSigned  znt  +n5
ec;unsignOd Long  get  th
e−time of aa’yN;unsigned 
 Long  base、max−ticks;max
ticks =mri13c *−18,’2 tic
ks/sea/1000 m5ec7sec = ti
cksmax  ticks = (unsigned
 long )msec  来1B2L / loO+
)OL;base  = get  the−time
  of−dayN;while (get the−
time of day()−base < may−
ticks )do ctrl  1oop();  
 正常な制御ループの実行scale the wri
atl二箒準化の直後呼び出され、操作者がリストのコ
ノプライアンス基準化を検証することを促がす。 5cale the wrist() 1 n t   c h : 1ockI+p(1’RIJF:) :el+401”
1cIJ+!I+  (10,2−1);111ove
cursor  (12,0);print;ff(”
 ”  );      操作者に対し7「ヒー」音を
出【、て注意するprlntf (”l’he arL
l+robul、 is abouL  Lo qca
le the wrisL cby\n′); printf  (”mov口1g 1Jle  le
g 1nto  th+4   ’t°1g1lre 
 4’  posi  しion。 printf  (”If  co+apliance
  scaling  ts  dGsired  u
nd  arLhr。 is clear、\カ); printf (’enter ’y’: ”);W旧
1e((ch −keyH) ” (−1)  ) ;
clearscreen (10,24);movac
ursor (12,O)+if (ch ツ’y’ 
 ll ch コ’Y’ )hold−the−Wrl
sLO;     まだ固定されていなければリストを
auLocomp y TRUJ       フラグ
をセットし自動コノプライアンス基printf(’T
he  compliance  or  the  
wrlst  is  shown  in  thr
lgbt  corner \”);printf(’
of  the 5creen、Co+opLtanc
e  ranges  from  l  (veto
  8  (fir+o)\n\n@);1se printf(’CompHance not 5ca
led八n”Lautocomp = FAL8B; 1ockup(FAT、SE): l     5cale the−wristBRto
atiS、c              86013
0コノルーチン(:よ+JBrjdgestonI3 
rubberの作動6 hC1ltl制御される0$j
nclude  ”5Laio、h”#define 
YAW   4 $define PITCH5 $definp ROLL  6 $1nCLude  ”defines、h”$1nc
lude  ”st、ructs、h’sLatlc 
int 1nodeflag(7);   開始時の最
初のバスで’ freO’に紡期値設nuuliLe 
 temp; 5w1tch (set(joint)、mode)C
!1S8  HOLD: Ca5e  1vlOVE二 中央開始点を最初moveに七ノ) 、 holdはf
ree後入力するOif  (modeflag(jo
int)== FREE )   バスセットモードが
FRIlellmodcflag(joint) = 
1.JOVE;5tate(jojnt)、motor
 = 2048;  開始点を中位にセットmodef
lag(、jolnt) =MOVE;wrparms
(1B) = rilALsE;5et(PPrCi(
:1.pos  +=  wrparms(11);b
hoLd(joint): break; Ca8e  TRA(’:に: moderlag(joint) ff TRACK;
0hnLd(joint): 5et(jotnt)、pos = 5tate(JO
tnl、)、pOt;  track中pitchse
tをリセット reak case  FRI: modeflag(joint) x FRFiJst
ate(joint)、motor = O;5et(
joint)、pos  = 5tate(joint
)、po℃;   free中リストリストットbre
ak; Ca5e  MIIGH: modeflag(joint) = FRHE;  
 freeモードと同じリセットを用いるbreak; case  LOCK: 前のモート′がFREにならリス)FIEを緊急固定に
保つ1f (modeflag(joint)== F
RE[e )    セットモードが11’RW Fi
flet(joint)、mode = FREE;b
reQk; bdrlver(joint); BHOLDは1うr xdges toneに対しては
HHOLDと同じ。このルーチンは!圧を変えることに
より作動器の力を補償する。このルーチンは比例ゴロよ
び速度フィードバックを用いる。 bhold  (1) intl; int  offset: ini xerror、  verror、 moto
r;xerror = 5et(1)、pos −5t
ato(t)、pot;xerrorの最大絶対値を制
限すること(二より速度を制限するif (xerro
r > parms(i)、r hya )  xer
ror = parms(1)、r−elsa if 
(xerror <−parms(1)、r hys 
)  xerror = −parms(verror
 = 5tate(1)、deltax 本parms
(1)、vgaln;if(xerror <−par
ms(i)、f hys ll xerror > p
arms(i)、 t−offset = ((xer
ror米parms(1)、xgaln ) / ;3
2 ) −vatelseoffset = Q; 5w1tch (i )     ピッチおよびヨー作
動器は連結される必要かあ(共に操作される casI3 YAW: if  (r、at(PI’rCl+:1.+nod+
+  == TRACK )    ピノテトラツキ/
グビノチトラノ?/グ甲シーと無関係 else      ifユ常なリスト固定・七−ドS
tate(4)、motor −= a目set/2;
  ギヤ比が2=1のためファクタは2statc(5
)、motor +== o[+geL/2;  ヨー
関節部の比補数値の1リム lr (5tate(5〕、moto’r > 409
5 ) st、ate(5:]、mutor = 40
95;else u (5Lata(5)、motor
 < u ) 3LatQ(5)、m0tOr = o
;break; case  l’l’i”Cl−1: lf(Bet(1)、mode −−TRA(’:K 
)【 5late(i)、motor  W  wrparm
s(15:l   +  (5tate(il、pot
  −pitch center ) 米2;5tat
o(YAW:l 、m0tOr x 5tate(PI
T()I) 、m0tOr;e1θe state〔a〕、motor += offset;
5bate(5)、motor += areaも:補
数直のトリム if (st4teC4)、motor) 4095)
 5tate(4〕、motor = 4095;el
θe if (5tate(4)、motor < O
) 5tate(4〕、motor = O;b r 
e a k 1 Case  R(ILL: if  (5et(ROLL)、+node = TR
ACK  )    O−ルトランキングabate(
i)、mator  =  wrparms(16:l
  +  (5tate(i)、p。 「0目−cencer )イ2.6゜ 1se Sbate(i)、motor  +=  offse
t;break; )   スイッチの終了 if (5tate(i)、motor > 4095
 ) 5tate(1)、motor = 4095:
0〜5■範囲に対 else if (5tate(1〕、1notor 
< O) 5tate(1)、motOr = Q;ロ
ールテストのみ(二対し、ピッチとヨーがパラメータ中
の定数値に対し2048によりヨーおよびピッチが中心
法めされ1275すなわちロール関節部(二対しctr
lパラメータと関連if (wrparmq(0’l 
= 2 )   2はピッチおよびヨーを中心法めする
コstate(41motor = parms(4)
、dead;204Bに初期値没定され5cate(5
:1.motor = parms(5)、dead;
l   bholdの終了 Br 1ddt3s tone作動器に対してはBDR
IVERはHD RI VERと同じbdrxver 
 (i) int  i; 1nt dacOIIL+  COmp LI+lI:
QIIt+tia COIJし= 5tate(1)、
+uot、)r y wrpar+n5(13)+  
D/A範囲に4091f’(5et(i)、+21od
e =*= FRFI、lfi l l Bet(1)
 、mode −−MIJS)! )comp−dac
out = dacout;    補数値を主1+t
u:七ノドlse 補数値なのでpl + P2 =定数 comp−dacout、= wrparms(14)
−dacout;if (dace)ut ) 255
1     dacoutを最大圧(ニドリム「クリラ
フ)dacout  =  255; if (comp−daCoutン2.55)   c
omp−dacoutを最大圧にトリム((HOHp−
da(!0LIe z 255;dac(parms〔
1)、outdr) = dacout;    po
snをDACアレイへ送CEN−WR8T、C1351
213 リストが中心法めされるときのりストボット値を訊み出
すためのル11+nclude  ”std+o、h”
#】nclude  ”defLnes、h”1Fin
aludr4 0tructS、h’$1nclu11
e  ’exLrnvar、h’cen wrst、(
) char dunamy(15)  ;clearsc
reen(0,24)  ;movacurSor(0
,0)  ;prlntr(”center  Wrl
St   jhell  press   ’C’  
 tMn  press  IEN’L’ER\nl)
+jca++1’(″%’Xf+” j&山+uu+I
y(0:l  :yaw  canLer  =  p
uts(4]  ;pit+:h canLt=r =
 1)ot++(5)  ;roll−cenLer 
;pots(6)  1prinLf(C1u+LOr
Od vnluea  :  YAW = %f、  
PITOII  = %f、  ROLL  =引゛\
11’ 、yaw−cen’ter、pltcb−ca
nもer、roll−canter) :CHAN(I
EV、C,86020に のルーチンにより音声認識パラメータの一部が変更され
る変更可能なパラメータは次のものである。 rth   =  拒絶しきい値 eho   =  ワード開始検出しきい値thl  
 W  ワード境界検出しきい値thu   =  更
新スコアしきい値if    =  自己学習フラグ tbl   =  自己学習スコアしきい値vcf  
 −音声側イ卸フラグ rJbzf  −拒絶ブザーフラグ echbr  −エコーバックフラグ $Inalude  ’std+o、I+’#10el
ude   ’d+3fine3.h”#10clu+
le   ”5tructs、h”1inelu+Iす
’exLrnvar、h”CIl FI II p u
、、−tII G  V OI Ce  r u CC
1g+l l L l o++  pa r a II
I e ter S I )uoajH;u+td  
を山nr  sa++d  sLr]nHt、(32B
  )、  roe’!IVdqtat+c  uIj
signed  inL   rth  =  40.
   thO=  40.   thl  ++ ・1
0; 5Latjc un+t1g+u:d  orL  1
1’  =  0.  tbL = 30.  vcf
 Irjbzl’ =  O,ecbbr=  O:1
ockup(’1’RIILd  ) ;movecu
rsor<   0.0  );clear+Jcre
en(0,24);prinLf(’SAR10Voi
ce Recogrution paramcterR
outine \n’); printf(”gnter  new va、jun
s  or  <CR> for no  chang
eflush  thr+−1coyboard−bu
(Ver()θendcomm/Ind−to−the
−shsxoc ” 、 recasve−st、rr
ng )変数の現在1直をとる。 5and co+n+nond−to−the l:I
ARlo(” a’\r“+ receive=、5s
canf(recoive−string、   ”%
d  @、   &rtl)   ):eentl−c
o+++mund−to−tbe−8ARIO(”AS
r”、   receive−sscanr(reca
1vI3sLrurg、  ”%d%d %J %LJ
 %IJ ’ 。 5scanl’(raci=ive−st、rit+g
、 ’%d %d %d ”、  &vcf。 ask−operator−for−1nput(”W
ord Begin DetectionThre3h
old (%3d):  ’、  &thO);ask ope
rator−ror  1nput(”Word Bo
undary DetectionThresbold (%3d):  ”、  &tfil   );ask
−opQrator for  1nput(’Upd
ate 5corIIThresh01+1(%3d)
:  w、  &thu   );ask−opera
tor for−inpue(’8elf Lanrn
ing Flag(チ3d):  ”、  &lf  
  );ask  operator−for  1n
pue(”5elf  Learning 5core
Threshold (%3d):  w、  &thl   );ask−
operator for−1nput(”Voice
 Control Flag($3d):  ”、  
&vcf   );ask operator for
jnput(’Reject Buzzer Flag
(%3d):  ”、  &rJbzf );a、sk
 operator−for jnput(”Bcbo
 Back Flag(%3d):  ”、  &ec
hbf );変更されたパラメータを再びライトする5
print、f(θend−string、  ”E、
%d\”+  rtll  );5end−co+n+
nand to thq 5ARIO(5end st
ring、  recasve8もring  ): 5pr1ntf(Bend−str1*g、  ”A%
d1%d1%d 、 %d 、 %d\r”+  th
。 thu、   if、thl  ); echbf  ); send−comtaand to−the−8ARJ
O(5end string+  r@ceive−s
end command−to−the 5ARIO(
’M\r’、 receivs−stringmove
cursor(CL   O);clearscree
n((L  24  );mainmenu() 1ock++p(FALSE  ); ask−operator  for−1nput(p
ointer  to query−st、ring。 to−var unsigned char  体pointer−t
o−query strlng;11 t      
   来po i n te r−to−va r i
a bl e :printf(pointlllr−
’to−quflry−8t’1ng+  未poin
ter to−tqhile(key 5can(1*
s  (−1)  );if((’keyscan(1
&0xOOff  )  −々 0xQOOd   )
key(); printf(*\ns  ) : e L+qs 5canf(’%d ”、 pointer to v
ariable  );体poznter−tO−Va
rlal)le  &=  0xOOff:θand 
coInmand to th++ 5AR10(5e
nd、  receive  )ur+signed 
chnr  *5end、  *receive;1d
efinn  5ARIODATA−PORT   0
x03501define  5ARIO−8TATU
S PORT  0x0351int    l; if((jnportb(SARIO−3’rArll
S  PORT)  &  Ox<0040   ) 
  l11OxO040) printf(”  SAR,−1011ar小var
e  error  !  \n′ ):return
(0); wbile((1nportb(5ARIO−3TAT
US−PORT ) & 0XOOO20xOO02)
; outportb(5ARIO’8’rATU8  P
ORT、   0xOO);  ティエーブルfor<
  i =O;  1lend(i )  ! =O;
  i++ )wbjle((1nportb(8ノー
RIO−8’rATIIS  POR’J’  )  
&==  0xOO02); ou tpor tb(5AR10−1)A’l°A 
 FOR’r、   5end(i  〕  )トラン
スパアレントノツドンがオンのとき出力はキーボードへ
送られる1  =  0; O while((1nportb(5ARIO5TATU
S PORT ) & ’−0xOOO1); receive(1) = 1nportb(5ARJ
O−DATA PORT )if(receiJe(i
 )    != ’\r’&& isdLgit(r
eceive(1)   == 0   )rec13
1Ve(i ) −” ; while(receive(1−+−)  )  !
a  ’\rl );receive(i  )  t
m  ’\Of;8ARIOボードの中断を可能にする wbile((1nportb(8ARIO−8TAT
U8−PORT )  &0xOO02); outportlバ 5ARIO−8TATUS−PO
RT、   0xO1);Bnable  1nte DACRF13.C86011フ ロδQ−チンによりブリッジストン作動器のDAC出力
がリフレッシる。またこのルーチンはタイマの中断(二
より作動されるのでIくツクンドで実行する@ 11nclude  ’st山o、h’11oclud
o  ”deflnns、h’1tnclu+le  
”5tructs、h’番1nclurle  ”ex
t、rnvar、h”dac−refre+3bO− ir  (ref dac == TRIJE)ltd
ac(0,dac(0)); 1tdac(L  dac(L) ) ;1 tdac
 (礼 dac(2));1tdac(13,dac(
3)); 1tdac(14,dac(4)); ltdac(15,aac(5)); 】 DE8ELACT、CB6.02+15この手順はキー
ボードパン7アを読み、要求された選択またはアンを決
定し、次に決定した選択あるいはアクショ/を戻す。 注:このルーチンは指令文字の冒頭に一文字添えて指令
のソースを決指令のソース        指令文字の
添字キーボード            なし5AR−
10音声認識装置 #1ncLude  ”defknes、h”#1nc
lude  ’5Lructa、h’jinclutl
e  ’exLrnvar、 b’make−a de
ciaion−on the determined−
θelecttOn−and−p2−determin
ed−θelectlon、    p2−deter
mined−actlon。 p2−has the−selection−and 
actlon−been−verified   )i
nt  未p2 determlned−select
ion、  lp2 determlned−沫p2 
has−the−selectlon−and−act
ion−been−verified;static 
unsigned long   when the−
8ARIOm1croplturned  on; unsigned long   getJhe−ti
me−of day();5tatic  unsig
ned int    was−the−most r
ecent−resspoken、  the−moa
t−recentWQrd: 5tatic  unsigned  int    
command、 previous +comman
d  5ource: 5tatic  urlllglled  int  
  special−command;unsigne
d  int    key();ART目ROBOT
指令語が与えられて20秒以上経過したとpatはオフ
にされる。すべての音声指令はARTHROBOTとい
う語phone  got−turned−on   
)   ン  0xO16CL  )if(atten
tion == YES  )θet Lhe rsJ
eat buz、zer flagCl1ALSE);
attention     w  No;最後の指令
語が発声されなかった場合同語を発声するif(was
 the most recent response
−word−spokenwas−themost r
eCent response word 5poke
n  =the most recunt−respo
nse word  );キーボードバッファリターン
(−1)に文字がなければ、1 f(key 5can
()  ”= (−1)   )return(−1)
; この時点ではバッファに少なくとも−のキーがあるから
command         =  key();
5pecial、−command−F’ALS2;5
w1tch(command  ) 先ず特殊な場合を処理する case EMERGENCY−8TOP COMMA
ND :Ca5e ”  : the most−recent response 
wordEMERGENCY 5TOP−RESPON
SE;was−the−most−recent re
sponse−spoken =  5peak(th
e most recent−response vr
ord  ) ;*p2−determined 5e
lection  =sCOMMAND; 一*p2 determined action   
 =  0;才p2 has  the−F3elec
tion  and  action−=  YES; 5pecial command  =  TRIJE
;break; cBae  VOICg  : command  5ource  =  VOICE
;special−command  =  TRUE
;reaki case  HAtJD−C0Ni’ROL、  :c
ommancjsource  =  HAND C0
Ni’ROL;special−command  =
  TRUE+break; callle  ARTHROBOT−COIA4AN
D  :eetJhe−reject buzzer 
flag(TRLJE );the most rec
ent+ response word   =was
Jhe most−recent response 
*ord−= 5peak(the most rec
ent−response−word );when 
the−8ARLOm1cropl+ooe−got 
 turned。 get−the−time of−dayO;atte
ntion                = YE
S達p2 determlned−selection
     = o;達p2 determined−a
ction       −0;達p2 1eas−t
he二日election  and−actlon−
been−verified   = No;5pec
ial command  w  TRUE;brea
k; case  0KAY  COMMAND  :the
 most  recenjresponse wor
dOKAY RESPONSE; was  the most  recent res
ponse、−5poken  =  5peak(t
he most−recent response w
ord  );体p2 has  the 5elec
tion and−verified  =  YFS
; 5pecial command  w  TRUg;
break; Ca[][l  No Cot−11,4AND :5
et−the−reject−buzzer flag
tM−most recent−response−W
ordNo RESPONIに was the most recent reSpO
nSe−spoken = 5peak(the−mo
st−recent−response word )
;attention 体p2  determined−日election
木p2 jetermtnea action未p2 
has the 5election−and−aCt
iOn been−verifiedspecial 
command  =  TRUE;1)reak; default  : break: ここで選択指令を処理 if(special−command   −TRI
JE   )return(−1) : if(previous−character  =x
  VOICE&& attention      
 ==  、NO)lse switch(command  ) ca8eELEVATg−COMMAND :thq 
Jpost−response−vrord     
 =*J18−the−m08trecent res
ponse Wordspeak(the most 
recent response vrord  G*
p2 determined−selection  
=*p2−determined action   
 =  O;break; case   FULL−fD:TgNSION  C
OMMAND   :the most recent
 response tword  ==wasJhe
  most  recellL  respo+11
e  vvordspeak(the +nostJ−
recent responsa−word  );達
p2−determined 5election  
=  FULL士p2  deLormined  a
ction      =   0:break; case  FI()URE−4COMMAND :t
he most−recent  response−
word    =waθ−the−most−rec
ent response−word−speak(t
he−most−recent response−w
ord  );−*p2 aetermlnea−se
xection  =  FIGURE 4米p2 d
etermxnedactlon     =  (L
brelLk; case  WRIST COMMAND  :the
 most−recent−respanse wor
d     =+wasjhe−most−recen
t−response word−speak(the
−most−recent−response−wor
d  ):釆p2−determined 5elec
t1on  =  WRIST−来p2determi
nedaction    =  O;break; case  FOOT−COMMAND  :the 
most−recent response−word
     =Wllθ−the−noost−rece
nt−response−word−speak(th
e−most−recent response−wo
rd  );*p2 detcrmined−sele
ction  =  FOOT−米p2dsterm1
ned−actlon    −0rcase  KN
EE−COMl、AAND  :the most  
recent  response−wordwas−
the  toast  recent  respo
nse  word−w  5peak(the mo
st−recent−response word  
);律p2−determined 5electio
n  =  KNEE−未p2−determined
−action    =  O:bri=ak; case  HIP COMMAND  :tl+e 
most−recent−response−word
waeJhe−mos t−recent−respo
nse−word−w  5peak(the−mos
t−recent−response−word  )
;釆p2−determinod−selection
  =  HIP−*p2determined−ac
tion    =  O:break; case  ARM−COMMAND  :the m
ost recent response−wordW
aBJhe 1II08j rfICGIlt l’G
GpoIlseword−” 5peak(the m
osjrecent−respons−word L!
p2jetermined−selection  =
  ARM釆p2 determined actio
n   !  O;本ノステムは現在キーボードあるい
は音声のみにより実行され得る追加の2選択指令なきん
でいるが、これらの7クソヨンはハンドコントロー2に
より実行されうろ。 case  OOMPLIANECOOMMAND  
:the most、、−recent−respon
se wordwas−the−most−recen
t rer3ponse−word−m 5peak(
the most−recent−respons@−
word  );木p2−detsrmiコed−se
leclLon   =  COMPL達p2dete
rminad−action    =  O;bre
ak; case  iTIJPJOM)aND :the ;
ost−recent−response−word’
W(1G−the−most−recent resp
onse−word−speak(the−川oSt−
recent−response  vvora  )
;*p2−determined−seLqction
  =  OI!i’L’LIFtp2 determ
ined action    =  O;break
; アク/コン指令と共に 文字′+′と’−’14特に処理されたキーストローク
であり、選択により異なる。  アクションに割りあて
られる。この機能はキーボードが本当にハンドコントロ
ーラのかわりをし得るよう用いられる。 case  MINUS COMMAND  :5w1
tch(−*p2−determined 5elec
tion )case  glJVATE−COMMA
ND  :case  FULL E)C[’ENSI
ON−COMMAND  :case  HALF−F
LEX COMMAND  :case  FULL−
FLEX−COMMAND  :CaSe FIGUR
Eヒ4−00M4−0O:case  5IiTUP、
J:OMMAND  :the most  rece
nt  responSe word    =was
−the most−recent response
 word−=  5peak(the−most r
ecent−response−word  );*p
2 determined−action      
     ts達p2Jas  the−select
ion and action−=  YES; break; Ca5e ARM−COMMAND  :the−to
ast recent response vvord
    =was themost−recent r
espol]se w□rd−=speak(the−
most−recenも−responsew(+rd
);達p2 aeterminedaction   
      =*p2haB the 5eLectt
on and actlon−、、ygs; break; case  HIP COMMANI):the mo
st  recent  reqponse word
FLEX−RESPONSE; was−the most recent−respo
nse −wordspoken  =  5peak
(the m05t  recent respons
e word  );米p2 determined−
actionFLEXCOMk4AND; 米p2Jas  the  5election an
d  actionbeen Verified  f
f YES;break; case  KNEE−COMk4AND  :the
 most  recent  response w
ordFLEX RFSPONSE; was−the most−recent−respo
nse wordllpoken  =  5peak
(the most−recent−response
−word  );*p2pdetermined a
ctionFLEX COMMAND; 米p2Jas  the  5election−an
d−actionbeen  verified  =
 YES;break; case  FOO’T COMMAND  :the
−most  recent response−wo
rdIN RESPONSE; was  the mosjrecent respo
rrse wordspoken  =  5peak
(the most recent−response
 wor4  );米p2 determined−a
ctionIN−COMMAND; 木p2  has  the  5election 
 and  actlonbeen  veril’i
ed  =  YES;break; case  WRIST COIJMAND  :th
e roost  recent  response
  wordRgLl’EA!’IE  RE;5PO
NSE;was−the−most−recent r
esponse wordspoken = 5pea
k(the most recent respons
e word );釆p2 deter+n1ned 
actionRELEASE  COMMAND; 達p2 has  the−selection  a
nd action−been verzfied  
”  YES;break; case  COMPLIANCE−Cωハ仏ND :
the most−recent  response
  wordLESS  RIESPONSE; waθ−the−most−recent  resp
onse wordspoken  =  5peak
(the most recent reaponse
−word  );未p2 deternoined 
actionLESS  Co胛ND; 欅p2−has−the−selection and
−action−been verifi?d  m 
 YES;break; default: break; break; case  PLUS  COMMAND  :5w1
tch(米p2  cletermined  5el
ection  )case  ELBVATE CO
MMAND  :case  FULL−EX’[’E
NSION−COMMAND  :case  HAL
F−FLBX COMMAND :case  FUL
L FIJX C01vOJAND  :calis 
’FIGURg−4(EOMMAND  :case 
 5ETUP COMMAND  :the most
−recent response wordS’rO
P  RESPONSE; waθ−the−moat−recent respo
nse WOrd−epoken = 5peak(t
he most rec8nt response w
ord );米p2  determined  ac
tionGT’OP−COMMAND; IT)2 has  the−selection a
nd actiOn−been Verified  
= YES;break; case  ARM COMMAND  :the m
ost recent response wordO
U’r RESPONSE; was  the most recent reSp
onse wor(1−spoken  =  5pe
ak(tbe most recent respon
se word ):末p2 determined 
actionOUT Co胛ND; 米p2 has  the  5election  
and  action−been verxfied
  = YES;hrPak: case  HIP−COMMAND  :the m
ost  recent、、−response−wo
rdEXTEND−RESPONSE; wHθ−the  most  recent−res
ponse wordspoken  w  5pea
k(the−most−recent respons
e word );−*p2 determined 
actionEXTEND−COMMAND; 未p2−has−the 5electlon and
−actionbeen−verified  w Y
ES;break; case  KNBR−001JMAND  :the
 」oat−recent−response−wor
d+1CXTEND 18PONsg; was−the−most−recent respo
nse vvordspoken  =  5peak
(the  most recent respons
e word );米p2 determined−a
ctionEXTEND−COMMAND; *p2−has−the−selection and
−actionbeen−verified  w Y
ES;brelLk; case  FOOT COMMAND  :the 
most recent response word
OtJT RESPONSE; was the most recent respo
nse word[1poken = 5paak(t
he−most recent response w
ord );*p2 determined  act
ionOUT−COMMAND; 木p2  has  the  5election 
 and  action−been  verlfl
ed  = YES;break; case  WRIST COIJMAND  :th
e most  recent  response−
wordHOLD R1ζ8PONSE; was−the−mHt−recent rtispo
nse wordSpoken  =  6peak(
tbemost−recent response w
ord ”):1p2−deter+njned  a
ctio口■(OLDCo)ノ0aND; 本p2 has−the 5election−and
 action−been  verxfled  =
 YES;brealに Ca5e  OOMPLIAJ’JCE−COk4MA
ND  :しbe  moSt  recent−rQ
spoIISQ  wordlJf)RE−RESPO
NSE; wag−the most recent respo
nse wordspoken  =  5peak(
the most−recent response 
word );*p2 determined  ac
tionll、ノ;1喝つREJOM+4酎D;未p2
 bPis tJu+ 5election and 
action−been  ver+f’ted  =
 YES;break; default: break; break; 正規の指令へ case  MOVE CoMJAAND :the 
most recent respon9e word
    =waθ−the most recent 
reSponse word−= 5peak(the
 most recent response wor
d ):来p2 determined action
 = MOVE−COMMAIJD;達p2 has−
the 5election−and−action 
been−−YES; break; case  S’rOP−COMMAND :the−
most recent response word
     =W5Lθ−the most 7ecen
t response word−m 5peak(t
he most−recent−response−w
ord );来p2−has the−selecti
on−and action−been−−YES; 来p2 determined−action = S
TOP−COMMAND;br8ak; caRe  MIJA19E  COMMAND  :
tllII−mo+3も−recent respon
se−word    =RESPONI; waθ−the  most−recent  res
ponse−word−speak(the−Ioos
t−recent  responne二word  
);達p2 cletermioed action 
 ;RKLEASEE COMM−木p2  bas 
 the  5election  and  a、c
Lion−=  YES; break: case )IOLD COMMAND  :しhe 
most  recent respoose Wor
d     =wa8  the−+nosも−rec
ent  respoIlse  word−= 5p
eak(tbe most recent、 resp
onse−word  ):tp2 determin
ed action=  HOLD−COMMAND;
休p2 has  the  5=lection a
nd action−=  YES; break; case  IN COMMAND :the  mo
st  recent  response  wor
d       ==Wa[1tile mosシre
cent respoIls(+ word−=   
5peak(Lhe−+noSL−recGnt  r
esponse  Word  )ニオp2dater
lninedaction=INCOML4へND:末
p2hasLハese、LecttonandF1et
LOIl−冒 Yr’;S; break: ctssa  0IJT COMMAND  :the
mosしreCen’−response−word=
Wailt、I+emost、recentrespo
nseword−=speak(tl+el+105t
 I’eCent response w□rd ) 
ニー*p2  detI3rmined  actio
n  =  0LIT COIJMAND;*p2 t
+X+s  Lhe  sel++ction ana
l  nation−=  YES; 1)r(!ak; case  FIJX  COMJAAND  :th
i  most  recent  re++1+on
se  word     =WFIθ−the  m
ost  recent  rQspoIISQ  W
Ord−”   5Deak(LIIR+++oIII
t、−recent  reSponse  word
  );木p2 de LOrllllnnd ac 
jl On = rll−EX COMMANI);*
p2J+as  the  5election an
d  action−1=  YIES; break; casp、  EX’L’ENL) CIJIAMAN
D  :Llltl  moSL−reesnt  I
’l+++1lOIlne  WOId       
:WaB the m、08trecent−resp
onSe word−= 5peak(Lhe +++
ost recsnt rQspoIISQ word
 );本p2  determj++ed  acLi
on  =  EXTEND  COMMANI)f:
p2 has  thq 5election and
 action−ified  = Yl; brG(Lk; 指令にズ1する追加アク/ヨ/ Cnne  LESS eOMMANl) :1、++
e most rfJCe+l l、re3poI+3
 ’/1QId     =+Wail   Lhe 
 lll0Sj  rI3cent  rG8poIl
so  Word−= 5peak(the most
 recent response word );木
p2  determxllQd  aCtion  
= LESS−COトAk4ANDニオ11211F1
.1  the 5eleCjlOn−and acj
loll−雪YE!J ; break: case  MIJRE COk4MAND  :Ll
le l1IO5L−rGCOrlL reSpOII
SO−Word    =W+lθ−tbqmostr
(1centrc、+Ipor+seword−=Sp
Gak(Lfll!1llOUjrecQIILrl!
Illp0111110word);*p2 dCte
rmined action = MOHIu−COI
JMΔND;−*p211as the 5elect
ion and−action−= Y比S; breIILk; 残りはキーボードのみの指令であり厳格にディバック目
的にのみ使用される。 doI’all 1. I−: 木p2  deLOrmio++d  r、+″1nc
Lion  =  co+n川++用d;*p2  d
etarmjru++1  ir、tion     
=z  O:1:p2  ++コr、  Lhr+  
r、alr+cLion  a++d  *aL(on
  ht+t+−=YEコニ(: break; DISPERR,C860129 このルーチンが7オ一ルス@rstflag’で呼び出
されると使用状態を警告しアームを固定する。次に動作
が再開されるとさ工視するか否かを使用者に対し質問す
る。”rsLflag“が貞ならi i nc l u
d e  “defines、h”11nclude 
 ’5tructs、h”111ncLude  je
xtrnvar、h’disperr(err、 jo
int+ rstflag)Int err+ joi
nL、  rstflag;Inj  ir  r8p
ly+ θtatic  Int  ignore+1f (r
stflag == TRUE)ignore = F
ALSE; if  (rstflag =)FALSEe)ign
ore = TRUE; if  (ignore == FALSE)1f  
(err  != FALS[ii)1ockup(’
L’ROE); clearscreen  (10,24):prxn
tff (”\07”); movecursor  (24+O);f’or  
(i=o;  j<7;  +1−1)set〔x)、
mode = LOCK:switch  (err) case  PO’rERR: prjntf (’Malfunction In p
ot%d、 pot =%d″、 joint。 pots(joint)) r break; if  (err  != FALSE)movecu
rsor  (15,O);prlnR(I■gnor
e errors frorn now on’i’ 
(y/n) ’);wbxle((reply = I
ce’)  ) == (−1)  );if (re
ply ==  +yI)ignore  = TRU
E: 1ockup(FALSE); DISPLAY、C851213 このルーチンによりすべての関節部の状態が表示される
#1ncLude  ”5tt1.io、h’1ine
lude  ”defines、h“辱1nclude
  ’8truCtO,h”int  i、  bad
; double at、a2.a3.a5+ WX+  
’N’l+wx = wy = 0.0; 1ockup(’rRUIj) ; cLearscreen  (10,24);move
cursor  (10,0):prxntf (’J
o1nt\tModeXSt8a t\tPo t′%
、n ’ ) ;for  (i=Q;  t<’y;
  ++1)printf (”%d\t%c’vL%
d\t%d\n’、  ir 5et(i)、mode
、  5etpots(i)); al = pots(1)  本RAD PERPOT
I + 0ffSetCa2 = pots(2)米R
AD−PERPOT2 ←offset2;a3 = 
pots(33本RAD PER−POT3 + of
fset3;bad = arm2world  C&
wx、&wy、al、a2.a3):for leg(
&elev、&flex、0.0.aL、a2.a3,
0.0,0.0,0.0);al  本=  57.2
957’7951;a2 木霊 57.2957’79
51:83 本=  57.29577951;ele
v  *−=  57.29577951;flex 
体=  57.29577951;if  (bad 
 = −1) printf (’Bad data in arm2
world\n”Lprjntr(”\r+、Arm 
coordxnates  (%、Of、%、04.%
、Of)\n’、al。 pru+uf  (World  coordinat
es  (%、Ofmm、%、Ofmm)\n”、wx
。 pr+nLf  (’elGvate  =  %3.
2f     flex  ==  %3.2f\r+
 ” + e l eV llf  (pend on
 == TRUE)prlntf (’Pendant
 is on、  sample = %d\n”、 
 pends1se printf (”Pendant is off′X
n”);1ockup(FALSE); DIS SCAし、C860129 このルーチン(二よりメモリ(:記録される際プ1ノブ
ログラム位置が表示される。 $1nclude   ’5tdio、h”#1ncl
ude  ”defines、h’1inelude 
 ”5tructs、h″#tnclude  ”eX
trnVar、h’d+5−scaleN double  x、y、anglel、angle2
.angle3  :]nt  l+コ  : 1ockup(TRUE)  ; clearscreen(15,24)  ;move
cursor(15,O)  :printf(”po
sxtion  x     y    patl  
  pot2   potj\11−/  。 for  (1=o  ;  l<5 ;  1++)
nnl(lul、 = mumory(j)(1)  
木RAD P[IR−PO’[’l + offset
lang1a2 = +++amory(1)(2) 
 * IIAI)−PEI(−PO’l”2 + of
’fset2aogLe3 = mamory(1)(
3)  本RAD PlfflRPOT3 + off
set3J 冨 1 + 1 ; arln2WOrld(&x、  &”/+  ang
Lel、  811g1t12+  al1gle3 
 )  :prlntf(”  %2.0d  %6.
2f %6.2f %6.0d %6.Od%6.Od
\n” + j 、X +y+memory(1)(1
) 、 memory(i )(2) 、memory
(i ) (3)】 if  (side =W 1) printf(’1eft leg’sn’);if 
 (side  wx −1) prlntf(”right 1egXn”);pri
ntf(”leg m %6.2f  5hiftx−
%6.2f  5111fty =%6.2r\nle
g、5hiftx、5hifty);printf(”
elevate−%6.2f        flex
 ang= %6.2f Xn’elevate、fl
ex ang);1ockup(FALSE); らl−115リターンする。 11nclude  ”5tdi6.h’$1nC1u
de  ”deNnes、h”$znclude   
”sしructs、)1”$1nclude  ext
rnvar、h’arm2world(x、y、at、
a2.a3)double  本X + *y+ a 
l + a 2 + a 3:exLarn doub
le 51nO+ cos(1:lnt 0kay : doublo 1eno、1ent、1en2,1en
3.temp−a、xcoord、ycoord、pi
  :1eno シ370.00 : 1enl  = 152.40  ; 1en2 =  304.80  : 1Gn3 =  374.00  ; pi   =  3.141592654 ;okay
 = 1  : if (0kay = 11 しemp−a = at + a2  ;xaoord
  =   ]enO; xcoord += (1enl 木coθ(al) 
 )  :x+〕oord += (1en2 来co
s(a2)米C□5(al) ) :xcoora −
= (1en2 *  5in(a2) 末5zn(a
l) )  :xcoord += (1en3 米c
os(a3) −* coe(temp a) )  
:xcoord −= (1en3来exn(a3) 
* sin(temp a) ) :ycoord  
 =  (1eni  末  5tn(al)  ) 
 :ycoord += (1en2木cog(a2)
 米51n(al) ) :ycoord += (1
en2 t−5in(a2) 末cos(al) ) 
:ycoord +w  (1en3 * coe(a
3)* 81n(temp a));ycoord 4
x (1en3 * 5in(a3)ll coe(t
emp a));Kx x xcoord  ; 木y M  ycoora  1 return(0); else  t@turn(−1); FOR−LEG、C851203,851115このル
ーチンはアームの関節角から脚の腰部への仰角および膝
の屈曲角を計算する。 11nclude  ”5tdio、h”$1nctu
de  ’defines、h”11nclud3  
’θtructS、h’double 体elevt、
釆flexx、aO,al、a2.a3.a4.a5.
a6  :exLern  double  日in(
)+ coe()、acos+1.asin()+ 5
qrt(1,atan(1:double elv、 
fix、u、 v、 x 、y、 ul + 11.a
tt、 hhx、 hhy、 kkx、 kky、 p
i ;double  fix offset ang
、temp ang、r、u2.v2.ul2.r2.
A、B、C,NAaO肩部の旋回 al     関節部] a2      関節部2 a3      関節部3 a4      ヨー a5       ピッチ 86       ロール WIDTHPAPの幅 1)EP’rHPAPの深さ ul      上脚部の長さ Il       下脚部の長さ 18gl111の全長 5hiftx    アームに対し水平な肩部5hyf
tx    アームに対し垂直な肩部x、y     
 ピッチ軸の7−ム座標u、v      ピッチ軸の
脚座標 ヒ・下脚部の計算 pi = 3.141592654 :ul = lo
g / 2.0 ; 11 = ul  ; x、yの計算 arm2world(&x、&y、al、a2.a3)
  :u、vの計算 u  w  x  −5hiftx  ;v”” Y 
−5hifty ; 膝Xの計算 r = Jqrt ((WIDT’H*tVTDTH)
 + ((11−DuiPTH)−*(11−DEPT
H))  )  :u2=u*−u; ul2 = ul釆ul; r2=r米r; v2 = v本vI Affi  4*(u2+v2) ; 8I+ 4本V本(r2− ul2− u2− v2)
 ;(’:  =  ((r2−ul2)木(r2−u
l2))+  ((u2−v2)木(u2−v2)) 
 ;C+=  2*r2:k(u2−v2)  +  
2本uJ2本(v2−u2)+4味u2本(v2  r
2)  ;NC−C/A  ; NB≠ B/A  ; kky  =  (−NB  +  5qrt(CNB
 歓NB)  −4*  NC))/2  :kkx 
 =  5qrt(ul2 −  (kky木kky)
  ) ;elv = asin(kky/u]);a
lso  ulv w acos(kkx/uL);i
f (elv < Ll、O) elv wOlOr fix offset3ng m atan(WIDT
H/ (11−DEPTH)  )  :if (((
v−kky)ン0.0) && ((u−kkx) >
 0.0) )Lamp−aflg ff  atan
((v−kky)  /  (u−kkx)  )  
 ;else if (((v−kky) < 0.0
) && ((u−kkX)ン0.0) )if ((
(u−kkx)/r)ン0,5)temp−ang =
 asin((v−kky) / r )  :els
e ternp ang = −acos((u−kk
x) / r )  :else if (((v−k
ky) <帆0) && ((u−kkx) < 0.
0) )【 if (((u−kkx)/r)ン0.5)temp−
ang = (−pi/2.0) + aein((v
−kkY) / r )  :alse temp a
ng e+ −neoθ((u−1(kx) / r 
) ;atL −temp−ang + fix−of
fset allg ;flx w att −elv
 ; 1f (1’Jχン0.0 ) flx 弯0.0 ; 1Hexx w fl’x  : GET’S’rAT8.C860129このルーチンは
各関節部から位置およびエラー状態を検素する11nc
lu+le  ”5tdio、h”11ncluda 
 ”defines、h’11nclude  ”et
ructs、h’$1nclude  ’extr++
var、h”getstatuL+0 tnt  i、  error: for  (1=O;  iぐ7;++1)pots(
iJ = 5tate(i)、pot:Q後のpotv
lみ値を得るarror ++++ fault(i)
;         障害のチェックif (erro
r != 0) dIs+arr(error、  i、−1):ruu
lL(1) w O: HANDCON’r、C86020に のファイルには新しいハンドコントローラからの読み1
直の検出び作用に連係する4ルーチンが含まれる。 1inelude  ”5tdio、h’11nclu
de   ’defines、h’11nalurf 
 ”5tructs、h”current−desir
ed 5election、  current−de
sired action )int current
 desired 5elect1on、 curre
nt desired−act5tatic int 
  presentj−selection、  pr
eviousJ−s。 present−p actton、   previ
ous」aQaverage−penaanc sam
ple;average−pendant sampl
e  w  +rxamine the pendan
t−pendsample  ); if(average pendant sample
  >=  O)安定したべ/ダノト読み値を有してい
る。これにより選択かアク/コンかを決める。 if(average pendant sample
ン800)選択であり、これな認識する presen も−p−3disctiOn   = 
  CategOriZd−8alection(pe
ndant sample  );if(presen
t p−action  !=  O)fい++th 
 the−keyboard−buffer():if
(present−p、−action != O&&
  trained ==YES)switch(cu
rrent  deslred  5O1ection
   )アームを停止しリストを保持 する case ARM COMMAND  :    アク
ンヨンボタンが離されるとき Ca5e HIjCOMMAND  :    増分指
令の実行後case KNEE Co)JMAND :
case FOOT OOMMAND ニーand−m
alntajn t、he−present−pO8t
tion−Ofthe−armO;break; default  : break; present p action  =  O,’p
revjous p−act、inn =  Q;ar
e we rn C0ntlnllOuS mot+o
n  =  No:1f(preθent−p−sel
ection  )  0&& present−p 
5election jx prevlous−pst
uff: 5election−or−action 
1nto−the keyboard−presen 
し p−5exactton、    present
  p−action   );praVlous p
−5el;+ct1on  =  present−p
−selectlon;lse pendant−sample  );ifCpreS
enjp action  !=  preVious
−Tl−actiOn’lc& present−p−
Pkctton  ンフ 0            
  )stuRs+!1ection or actl
on−into  the−keyboard−er(
present−p 5election、   pr
esentj:+ action  );prevlo
us−p−action  M present−p−
actiOn;zf(is−the−arm movi
ng()  ==  YES&&present−p−
action   >w  O)stuff 5ele
ction−or−action−1nto−the 
keyhufl’er(present−p−sele
ction、   presLIot−p−octio
n   );previous−p action  
w  present−p action;are’w
e  in−contlnuous−motlon g
t  ygs;これらはこのルーチン用である examine the−pendant−1nput
(digital−value )int  dlgl
La、1. vatue;初efjne   SAMP
LES ’ro LOOK−AT     311de
fl++o    ARRAY−8IZhi     
           8AMPLK8  To−Lc
IOK、、ATprevious−pondant−v
aluea(SAMPLFiS−To−LOOK−AT
 )  =digital for(i = O:  i < RAMPLEi(T
o−LOOK AT;  i++  )previou
s−pendant−values(i  )   =
   previous−values(1+ 1 )
; for(average = O,i −0:  1 
< SAMPLIES−To−LOOKl++) average  +=  prGVlous−pen
aflnl、 valnps(i );aVerage
  /=  SAMPLES To LOOK A’T
’;for(stable−readings = 1
.  i = O;  i <To−LOOK−AT;
   i←ト  )ir(jab8(previous
−pendant−values(i ) −valu
e  )   ン  VWINDOW   )stab
le−readings  =  O;1f(s ta
ble−readings  )pokeb(314,
0xbOOO,I  +  );return(ave
rage ); 1se pokeb(314,0xbOOO,’?’  ):r
eturn(−1); categorlze 5election(aver
age value  )1nt  average 
value;$define  NUMBEROF 5
ELEC’rl(ING  10、、  [4095,
2763,330B、  2379. 3662゜25
57、  3016.  222513868.  2
655int         i、   rotar
y swxtch position;for(rot
ary SWI tch−position = (−
1) + i = O:  1 <N[IVBljR(
11−IL、n1ci’1ON8:、 i++  )+
f(+abq(avuragu  value −LI
+a−aelocLion−)   <   sw+N
L)t)w   )rotary−switch  p
osition  =  i;+f’(rotary−
switch  position   <   0 
  )pok8b(316,0xbOOO,”?’  
);else  pokeb(316,0xbOOO,
’O’  + rOtary−position  )
; return(rotary 5w1tch−posi
tion  );categorize action
(average value  )int  ave
rage value;11definn  N[JM
BEROF AC’r4ONB   4=  [409
5,433,206,1501;int       
   i、、   push button−sett
ing;for(pusb−buLLon  sett
ing  =  (−1)+   i  =  O;N
IJMBER0FAC’rrONS;  i4−+  
)if(1abs(average value −t
he action−)   <   AWINDOW
   )pusll button 8eLt1ng 
 =  1 :if(push−button  se
Vting   <   O)pokeb(3LLL 
 QxbOOO,”i”  );++1sopoksb
(318,0xbOOO,’O’+pusbbutto
n−setting   ): ruturn(push  t)tJLtc+n  s
etting   >;HOM凱C851213,85
08213このルーチンはIN+が固定モードで押され
るとき、ボテン/ヨネストされたアーム位置の絶対値を
用いてアームをネストされたちrホーム1位置へ移動さ
せるものである。 11nclude  ’5tdio、h”$1ncLu
dG’defines、h”$1nclude   ’
5Lructs、h”11ncludo  ’extr
nvar、h”home(I double anglel、angle2.angl
e3.pi、n5tpotl、n5tpoL2.n5t
pot3 :pi −3,1415!j2654 ;所
望のネスト位置で実験的に決定されるポットの読み値o
uLpOLL   ! 1700   ;n5tpoL
2 = 1363 : ++BLpo t:s  千 2815   ;アーム
のネスト1位置に対し位置をセントするso t、(1
) −poθ= n5tpotl ;5et(2)、p
oS = n5tpot2  :5et(3)、pos
 = t+5LpoL3  ;5et(f)1.dur
、y = PlnRIOD:voL(11,doLy=
PhiRI・)D;qaL(2TJuty = l’l
i:RIOD;5et(、’5,1.+juty = 
PEHIOD;HYDRO,C851203 各タイプの作動器は夫々独自の制御用サブルーチンを有
する。 ルーチンにより油圧式作動器が制御される。油圧作動器
は1ocjinclude  ”defines、h’
1inelude  ”5tructs、h”11in
clude  ’extrnvar、h’hyIJro
 (joint) Int  joi、It、; switch (set(joxnt:1.mode)
case  LOCK: 5tate(Joint)、motor = OFF:
5tate(joint)、valve = F3HT
Jr;5et(,1oxnt)、poB= 5tate
(Joint)、pot;reakl case  ll0LD: case  MOVIE: case  FREE: hhnld  (joint): br*ak+ hdrivur  (joint); HHOLDはIIYI)ROルーチンの生体をなすもの
であり、パルス幅jot error、 clock、
 deadtm:clock = pnrms(i)、
clock;deadtm = 5tate(i)、w
ait:error = (set(i)、po日−5
tate(i)、pot)未parms(i)。 if ((par+n8(i)、r−hys < er
ror &&  parms(i)、f hys >1
1 deadtm> 1) if (set(i)、mode = MOVE)se
t(i)、mode = HOLD;5tate(1)
、motor = OFF’;5tate(1)、va
lve = 5HUT;if (deadtm == 
O)        最初の位置?dsadtm = 
parms(i)、dead;   最初の位置ならば
ウェイトタイlse if (deadtmン1)       カウント続
行中ならば一−deadtIf1;         
  カク/トダクンelse dendtm = O;           フラグ
を立て関節部が移動ことを示す if (timar(clock) > 5et(i)
、duty)state(i)、motor = OF
F;1se state(i)、valve = 0PEN;if 
 (error  <=  parms(i)、r  
h’ys)itatll(1)、motor x R1
1iVljRFIJ1se state(1)、motor m FORWARr)
;】 state(i)、wait = deadtm;HD
RIVERは油圧式ルーチンの主体をなすものであり、
実際にポツプ、モータ等をオンオフするビットを上下に
動かす。 hdr4ver(i) 1ntt; intj; J  y  parms(1)、ouLqdr;out
blts &= parms(1)、raset;Ou
l、hltB  l−= pump□)、IIIask
 & 5tate(1)、motor:outbtbs
 l= parms〔+)、vmask & 5tat
e(i)、valve;INCREM、C851203 このルーチンはキーボードを介し関節部を増減分さ仕ろ
もの使用者はよず111 を次に関節部の番号をキーで
人力する。 キー1÷」と「−」を用いると関節部は一度に1だけ移
動されこのモードを出るにはキー111 を再び押す。 1inelude  ’5tdio、h”1znclu
de   ”deflnes、h’11nclude 
 ’5truets、h’1tnclude  ’ex
trnvar、h”increment (code、
 mode)int code、 *mode; static Int Jnt=o; 5tatic int adj; if (*+node =z O) 1ockup(TRITE) ; clearscreen (2,24);movecu
rsor (2,0): prxntf (’ J OI NT   ニーNG、
REMENT’、、n\n”)+printf (’ 
   O−6Joint numberXn’);pr
lnLr (”   +   Extend join
t\n   −Contract jointpru+
tf (”   c   Coarse adjust
   f   Fine adjust\n″prin
tf (”   i   Exjt incremen
t +node\n1);for  (jnt=o; 
 jnt<4;  ++jnt)set(jnt)、m
od@= I(OLD;      各関節部をhol
dモードに5et(jnt)、duty −PIERI
OD;     全デユーティサイクルで実行adj 
 = 10; 葡node = l; 1ockup(FALSE); 1se if (codeン47  &&  code < 5
5)jnt = code −48; else  if (code =−x  ’+’)s
et(jnt)、pos += parms(jnt)
、tnc * adj;else  if (code
 =? ’−’)setCjnt〕、poe −w p
arms(jnt)、inc 釆adj;else  
if (code = ’c’)adj  = 10: else  if  (code = ’f’)adJ
= l; else  if (code =w ’s’)5et
(Jnt)、duty  −1:jf (set(Jn
t)、duty == 0)set(、Int)、du
ty = l;else  if  (code  ;
四 ’a’)set(jnt)、duty +=y l
;if (set(jnt)、duty > PERI
OD) 5et(jnt)、duty = P[i:H
40D1se if  (code  !=  ’i’)for  (
Jnt”O; Jnt<’y;  ++Jnt)set
(jnt)、mode = LOCK;来mode  
= o; mainmenu(); INC−XY、CB51213. 850731このル
ーチンはアームの現在位置を読み取り、オフセットを加
えてアームに対し新しい位置をセットする。本ルーチン
は又、各関節部の速度が同時に天主か(:最終位置に達
するよう各速度を化ノドする1nclude  ’5t
dio、h’1nclude  ’defines、h
”1nclude  ”5tructs、h”1ncl
udC”extrovar、h’nc−xy (dx+
 dy) int  dx、  dy; int badl、 bad2. jnt、  eme
rganc7 ;double  X、  Y; d Oub 1 e a n gl e l +  a
 n f51 e2 +  a n g Le 3 :
emergenCy x O; for  (jnt=0;  jnt(4;  jnt
++)if (set(jnt)、mode == L
OCK)enoergency y l  : ir  (!emergency ) badl  =  bad2  = O;anglel
 = pots(1) 来RAD−PIERPOTI 
+ offsetl;angle2 = potS(2
) * RAD PERPOT2 + offget2
;Angle3 =h pozs(3)来rlAD P
H!R−POT3 + Mfset3;if (deb
ug) printf(’・木本木本**木来木木\n1);p
rintf(”calling arm2world 
with a14f a2=%fa 3 =% r\n
” 、angLel、angle2.angle3) 
:badl = arm2world(&x、&y、a
nglel、ang1e2.angle3 );+f 
 (debug) printf(”returns bad=%d x=
%f y=%f\n” + bad l I X + 
7 ) rX  +=  dx; Y +=dy; if (debug) printf(’after  incrementi
ng call world2arm wxthV;%
f\n”+X+’/L bad2= world2arm (&anglel、
  &angle2.  &angle3.x、y);
1f(debug) printf(’returns bad=%dal−
%fa2=%f a3=%f\n” 、 bad2゜i
f ((badl < 0) II (bad2 < 
L)))x  −= dx; y−Mdy; lse 【 5et(1)、po9 = (anglel −off
setL) / RAD−PERPOTI;新しい所望
位置 se t(2)、 pOθ= (angle2− of
fset2) / RAD−PER−POT2;新しい
所望位置 se t(3) −poθM(angle3− off
sむt3) / RAD PER−POT3;for 
 (jnt=o; Jnt<4;  jnt++)se
t(jnt)、mode w MOVg;setspe
ed();        各関節部の速度が同時に達
するようINSELACT、C860206 本ルーチンにより決定された選択およびアクションが開
始される。 また他のいく6つかのハウスキーピングおよび状態に関
連する機能も選択できる。 わncluds  ”5tdio、h’11inclu
de  ”defines、h”$Jnclude  
、5tructs、h”ed− the−detemined− p2−commanci ; znt  the−determined−selec
tion、  the−determined−act
ion。 米p2 co+nmand verified;$de
fine  RESET   0if(米p2  co
mmand  verified  ==  No  
 )re turn(−1) ; 5w1tch(the−determined 5el
ection  )【 case: EMERGENCY STOP−COll
lMAND :case  ”  : put  the−Pirm−into emerge
ncy 5top(1:未p2 co(nmand−v
erified  =  RESET;onpath 
= FALSE  ; re’Lurll: b r e a k : case ELEVATEJO■、IAND :、5W
1tCh(the  determlned  act
ion   )case MOVE−COMMAND:
elevate  tree−area(1:釆p2−
command−verified = RESET;
break: 休p2 command−verified = RF
iSg’[’:break+ default: break; break+ case FULLJXTgNSIONJωAUND:
5w1tch(the−determined act
ion )case MOVFi−COMMAND:f
ull  extension  the area(
);)kp2 command−ver[ied = 
RESE’L’;brealc+ case  STOjCOMMANDニーand−ma
intain  the−present−posit
izn−of−もhe  armに);*p2−com
mand−verified = RFiSET;re
akl diJault: break; 1) r e a k ; Ca5e HALF FLEX CQMMAND+5w
1tch(thedetermined action
 )case MOVE C01JJAND:hatf
  flexJhe−arm:l:米p2 comma
nd−verified = RESF:’L’;b 
r e a k ; case  5TOP C0Ib1AND:and−m
aintaxn  the present posi
tion−Of−thlll−arm();*p2−c
ommand−verified = RESET;b
reak: default: break; ful 1−flex−the arm(1;*p2−
comunand−verx fied = RKSl
li:’r;1) r e a k : case  5TOP Co贈MNDニーand−ma
llltairI−LhQ−pre3ellL−pO8
ittOn−Of−the−arm();釆p2 co
mmand−verified = RESET:br
eak ; default: b r e a k : reaL case FIGURE−4−COMMAND:5w1
tch(theJetermined action 
)case MOVE−COM)JAND:figur
e 4−the arm(1;米p2−command
−verxfied = RESE’r;break; case  STOP−COMMAND:and ma
intain−tbe−present−pooi″J
ion−of−the−armO;*p2 coaun
and−verified = IIESET;bre
aic; default: break; reaki case  ITUP−COWJAND:5w1tch
(the determinsd−acHoo )ca
se MOVE−CO1晶仏ND:5etup−the
−ar+n(): 釆p2−command verified = RE
S[ii’r;break; case  5TOP−CO1&仏ND:break; default: break : brealc; Ca5e ARM二COm仏ND: 5w1tch(theJetermined a+Ji
on )case  IN CiOMMANrl:mo
ve arm−1n(); 来p2.command−verified = Rg
SE’r;break; case OU’r−COMMAND:move−ar
m out(); It p 2 COmIn and −v e r l
 f i e d ” RE S ET ;break
: case STOP−COMMAND:and−mai
ntain−the present positio
n−of−the−arm(1:十p2 comman
d−verif’ied = RESg’r;brea
k; default: break; break; cas@ HIP−001A仏ND: 5w1tch(theJetermined−actl
on  )case FLEX−COMMAND:fl
ex−the−hip(1; 未p2−command−verified x RE
SE’r;break; case  gXTEND−COMjMND:exte
nd−the−hip()ニ ー*p2−con+mand−verified = 
RBIT;break; case  8TOP−COM)+仏ND:1!nd−
mai n ta i n−the−pr e B e
n t−pos i t i 0n−Of−th e−
a r In() ;*p2−command−ver
ified w RESB’[’;break; default: break; bread: case  KNEE−00)J)AAND:5w1t
ch(thedetermlned−actlon )
■ case  FLEXとIjOMMAND:flex−
the  kn@e(1; 休p2 com+nand−vetj I’ied =
 RIBIT;break: case  FiXTEND−COMMAND:ext
endjhe−knee()ニ ー1fp2−co+n+nand−verxfied 
= RFSE’l’;break; case  STOP−COMMAND:and−ma
i nta in−the−pre sen t−po
si ti on−o f−tb e−a r+n()
 ;来p2 commar司−vertfied = 
RIESET;break; default: break; break+ case  FOOT COIJMAND:5w1tc
h(the−determined−action )
case  IN−Co)JMAND:rotate 
 foot 1n();−*pz conunand−
veri fied ” RFj3ET:break; case  OtJ’I’−COMMAND:rota
te−foot out();休p2−commP1n
d−ver1 fied = RESE”l’:bre
ak; case  5TOP COMMAND:and−ma
 i n ta 1n−th e−pre sen t
、−pO8i ti 0n−OfJb e−a rl+
+() ;律p2−command−veri fie
d = RESK’!’;break: default: break: break: case  WRIS’rにCOMMAND:5w1t
ch(the−determtned−action 
)case  RELEASE−COMMAND:re
lease、、3he−wrist();未p2−co
mmand−verified = RESET:br
eak; case  HOLD−COMMAND:hold−t
he−wristO; 来p2−command verified w RE
SE’r;break; case  8TOP−COMMAND:ancjma
intain−the present−positi
on−of’the−arm():休p:jcomma
nd  verxfied = RF:SE’I’;b
reak: default: b r e ak ; break; Ca8e  COMPLIANCE COMMAND:
5w1tch(the determined−act
ion )case  LESSJOMMAND:ad
j’ust the−wrist complianc
e(’+’  ); 家p2−command−verified = RE
Sa’r;t)reak+ case  MOFJE−COMMAND:adjus
t  the  wrisjcompliance(’
−’  ): 釆p2−command−verified = RE
SET;break: case  STOP−COMIJNJDニーmain
tainjhe−present−position−
of  the−arm();*p2−command
 verified = RESE’r;break; default: break: ror  (joint==o:  joxnt<4;
  joint++)set(jolnt)、mode
 = MOVE;home(1: break; CUR3ORUP  : 1rtc−xy (0,25);          
   上動break; case  CUR8ORDOWN  :znc xy
 (0,−25);           下動bre
ak; case  CUR8ORLEFT  :tnc xy
 (2昧5ide、O);        左動bre
ak; case  CUR8OR−RIGHT  :1nc−
xy (−2511side、O) ;       
右動break; case  AL’l’−I :          
   増分モードincrement(’i’、&mo
de);break; case  ALT−J  : adjuatc);               関
節部パラメータの調整break; case  ALT−W : adj ustwr();             
  リストパラメータのxtbreak; case  ALT M :            
  リストマy ンユモ−トfor  (3olnt=
4:  joint<7;5et(Joint)、mo
de = k#sH:externalrotatio
n = O;break; case  ALT T  :           
      リストトラッキングモード5et(5)、
mode = TRACK;    ピッチをトラッキ
ングモードにセット5et(6)、mode  = T
RACK;     ’−ルをトラツキフグモードにセ
ットexternal  rotation = O;
break; case  ALTC: cen wrst(1;            リス
トの中心決め1)reQk  + case   ALT  B  : 5cale  the wrlst():     自
動コンブライアノスのセントアップbreak  r case  ALT S :            
 現在位置の記憶5tore(’s’、  &mode
) ;b r e a k ; QaSe  ALT A : 5cale();              作業空
間の自由基準化5cale the−wrist(1;
break  + case  ’Q’ :              
 ネスト計算の実行neSt(); break  + case  ALT V :            
 音声の一部の変更change−the volce
− 認識パラメ・−タ・ break: case  ’D’ :              
状態表示display(C break; case   ’A’: dis−8caled;         基準化され
たパラメータの表示break  ; case  AL’r O:            
 安全脚部限界の切換5afety  A−’1’Rt
lE  :break  : case  ALTjl :           移
動路オン/オフノ切換pathon Aw TRUE 
; break  : case  ALT 11 : pend−On ”= TRUE;      ヘンダ
7 ト#7/#7(D’iJ換b r e a k + case  ALT D :           デ
ィハソグ+7)切換debug  Ava TRUE; break1 case  ALT−Z :           位
置/’)7ダ(D切換cycler A= TRUE; cycle position y O:break; case  ’%I :          一時的ニ
Dosへ戻す1ockup(TRUE ) ;    
    一時的1:、7−A ヲ保持−iルmovec
ursor(0,O) ; clearscreen(0,24);system(
’command、com”  )movecursa
rc O,O); clearscreen(0,24);mainmen
u(); 1ockup(FALSE );       適切な
制fll[1111へ戻すbreak; break; 本pJcommand−verified  =  R
ESET;KEY、CE]60129 このルーチンはC86V2.3ライブラリから機能” 
key−scan”“key−getc’ とを用い、
これら機能はキーボードから文字を接的(二得る方法で
ある。 key() int   pressed; if(key−scan() +=x (−1) )r
eturn(−1); pressed = key getcH;if((p
ressed & 0xOOff )  = O)re
turn(pressed  );else  ret
urn(pressea & 0xOOff  );1
1nclude  ”5tdio、h@$jnclud
e  ’defines、h”jinclude  ”
5tructs、h”Mlnc+++r11!  ”p
ytrnvar、 h”1ockup  (lockf
lag)int  lockflag; if (lockflag = TRtJE)dwrp
ort  (8,outbit、s & 0xEOOO
);ref dac = TRUE; else wtchdogO;        弁設定値を書き出
しタイマをトリップ・ref dac = FALSE
; ■ MAINMENU、C860129 このルーチ/により主メニュー選択リストがブリ7トさ
れる#1nclude  ”5tdio、h”$znc
lude  ’defines、h’#1nclude
  ’5tructs、h’$1nclude  ”e
xtrnvar、h’mainmenu() 1ockup(TRUE) ; clearscreen(0,24);movecur
sor (0、23) lprintf (’ ART
[(ROBOTHquicJputa(0,23゜ clearscreen(2,23):movecur
sor(2,0) ; printf(’fl −Arm   f2− Ele
vate  0rey −: Move。 In、Flex、Re1ease、Less\n#);
printf(”f3− Hlp   f4− Ful
l    Grey + :  5top。 Out、Extend、Ho1d、More\n1);
prlntf(’f5− Knee  f6− Hal
f FlexSPACE  : Emerg−ency
 Halt\n”); printf(”f7− Foot  f8 = Fu
ll Flax\n”); printf(’f9− Wrist flo −Fi
gure 4     A : Displaysca
led valuesXn’  );prjntf(”
  l −Compl  2−5etup      
 D : Displayjoint 5tatus\
n’L printf(’                 
  Alt A : 5calethe workap
ace\n”);printf(”        M
oving the arm  Alt B : 13
etupfor auto compliance  
 \n1);printf(’           
        ALt C: Centrethe 
wr1stXn’  ); printf(“Alt Q : Re5erved 
、      Alt D : Setdebug m
ode\n’); printf(’Alt R:  Re5erved 
       Aft K : Re5erved\n
”L prirrtf(’Aft S  :  5tore 
current     Aft F :  Re5e
rved\n”L prlntf(’Aft T : Set wrlst
 tracking mode  Aft G :\n
1); prlntf(’Alt U : Re5erved 
           Alt H:path on 
or off\n”)+printf(’Aft V 
: Change recog parameters
  Aft I :mental  Jo1o’t c
ontrol  Xn’  );printf(’Al
t W : Adjust wriat parame
ters  Aft J :Joint parame
ters   \n”);printf(’Alt X
 : Program exit        Al
t K :\n’); printf(’Alt Y  : Re5erved
             Alt L :lag 5
afe 11m1ts   XSn’ 、);prin
tf(”Alt Z  : Toggle posit
ion cycler   Alt M 二wr1st
 mush mode\n”);printf(’  
 G : Perform nest calcula
tlons Alt N :nesting to h
ome   \n”);printf(”   %%:
 Temporarily g、o to DO9Al
t O:\n1); printf(″                 
      Alt P :pen、dant on 
or off   \n1);;ンプライアンスレベル
はモニタ装置の上布隅部に表示されるpokeb(30
B、  0xbOOO,’O’ + wcompmap
(0) );1ockup(FALSE): quick−puts(rl  c、  str、in
g−polnter  )     ストリングなun
signed 5hort  r、’c。 unsigned char   釆string p
ointer;unslgned 5hort v+d
eo−segment;unsigned  5hor
t  peek();装置のフラグ zf((peek(0x0410.0xOOOO) &
 0xO030)  =vxdeo segment 
 =  0xbOOO;    モノクロムelse 
 video−segment  =  0xb800
:    カラーポーfor Cr Mr 米160 
+ c米2;pokeb(r、video  segm
ent、  米(strxng  pointer+十
)!雪 0+   r +−2 ); quick puta(r、  C,attrlbut
e potnter )    FA性を迅速(;置く
unslgnQd 5hort r、  Q:unsl
gnea char  米attribute poi
nter;unlillgned 5hort  vi
deo 8egment+unsigned 5hor
t  peekO;装置フラッグ if((peek(0x04LO,0xOOOO)& 
0xO030)  ==v1deo segment 
 ’!1 0Xk)OOO;    モノクロムels
e  vlaeo−segment  =  0xb8
00;    カラーボードfor (r=  r釆1
60+c米2+l;pokeb(r、 vxdeo−s
egment、  未(attrtbute) !≠ 
O;r+=2 A ・ NEST、C851203 このルーチンはネストされた位置としてアームの現在位
置を翻訳る。本ルーチ/は変数”offsetL”、 
”offset2’、 ”offset3”セットし絶
対角基準を確立する。 $1nclude  ”5tdlO,h”$1nclu
de  ’defines、h’1inelude  
”5tructs、h’1include  ’ext
rnvar、h”nest() double rrstangl、nstang2.n
stang3 ;所望のアームネスト角(ラディアン) nstangl = −1,570796327;ns
tang2 = −1,570796327:nsta
ng3 =  2.9723926827ここでアーム
は適切にネストされているものとしpot読み新しい校
正オフセットの計算 offsetl = nstangl −pots(1
) *−RAD−PER−POTl;offset2 
= nstang2− pots(2)来RAD−PE
R−POT2 ;offset3 = nstang3
− pots(3) *−RAD−PERPOT3’;
printf (”Ne5t offs++t val
ueS: o14f、 i:+2=%f、 o3x%へ
nl。 offsetl、 offset2. offset3
):printf (”Pot values for
 offset:  pl=%d、  p%%d。 pots(1)、  pots(2)。 pots(3)) : 1)ATH,C851213,850919このルーチ
ンにより、現在位置からブリプログラムされた位flI
I!a移動路に沿う中間点が決定される。 善1nclude  ’5tdio、h’$1nclu
de  ’defines、h’$1nclude  
5tructs、h”$1nclude  ’eXもr
nvar、h’athH 使用した汎用記号 pre’propos onpath otsO 0VE RAD−PERPOTl、 2 、3 of’fsetl、2.3 set()、pos set()、mode double anglel+ angle2.ang
l e3+ xl + Ml 、x2 +Y’L X 
+ Y+ 5lope 。 1ntercept。 char dummy : Int t)ad、mOVlng、l :X=Y=Xl
=Yl=X2=Y2=O,O;5tep = 100 
; noving ” O+ for (i = l ; i < 4 ; ++1 
)1f (5et(i)、mode = ’m’  )
movjng = 1  : ば(movlng != 1) 移動中でな(PATH−1なら違した一時点を又は移動
中でな(PATH!=1ならまず呼びどうらでも中間点
を計算 Lockup(TRUE) : onpath = 1 :     アームは移動路内
にあることを示すアームの現在位置を得る anglel w pots(1)米RAD−PER−
POTI + offsetl ;angle2 y 
pots(2)米RAD−PERPOT2 + 0ff
llet2 ;angle3 ta pots(3)米
RAD−PIICRPOT3÷offset3 ;現在
の(X、Y)位置を得る bad = arm2vrorld(&Xl、 &yl
、 anglel、 angle2. angle3 
)  ;所望のプログラムされた位[11(x、y)を
得るanglel = rne+nory(prepr
opos)(1)米RAD−PKR−POTI +of
fsetl :angle2 = rr+emory(
prepropos3(2)米RAD−PER−POT
2 + offset2 ;angle3 = mem
ory(prepropos)(3)来RAD−PER
−POT3 +onset3 ;bad * arto
2world(&X2. &y2. anglel、 
angle2. angle3 )  ;直線移動路の
計算 5lope = (y2− yl) / (X2− x
i)  :1ntercept m y2− Cs1o
pe来X2);ステップX又はyからの決定 if ((slopeン−1) && (slope 
< 1) )if(X2>xL) X M xi +  5tep  1 if (x>= x2 ) X雪x2 ; onpath = O; y y (slope 釆x) + 1ntercep
t ;else if (xi >= x2 )X ”
  xi −B t@p  ; 1f(X<−x2) x ;x2  ; onpath x O; y = (slope 米り + 1ntercept
 ;6□se’Lf ((s□。pe < −1) l
l (s□。pe > 1) )if (Y2ンyl 
) y = yl + 5tep  : if(y>冨y2 ) onpath  = O; x=(y−b+tθrcopL)/ 5lopu  :
else  if (yl >= y2 )y = y
L −5tep  ; 1f(y<−y2) y−y2; onpath !MO: x w (y−intercept)/ 5lope 
 ;所定角を求める bed = world2arm(&angleL、 
&angle2. &a+Iglf13+ x+ Y 
)  ;1ockup(FALSE) ; if  (bad  ! −−1) ror  U=i;  1<4;  i++)Sstl
:i)、rnode = rlOVE:5et(す、p
os = (anglel −ofTsetL ) /
 RAIl−PgR−POTI ;aeL(2)、po
s = (angle2− offset2 ) / 
RAD、−PKRjO’I’2 ;5et(3)、po
s = (aτ1g1e3− ofTset3 ) /
 RAD−PER−PO’l’3 ;lse prjntf(’ わtJ Path require
s arm to 1eave allowedwor
kspace\n 1 ) printf(’ 木*半Please use pe
ndant to move arln。 Thank you、  \n1) onpath  = O: 】 PROCESS、C860123 本サブルーチンはArthrobotが分配処理により
制御されていのようにみせろ。主ループの各反復の際、
本手順は関節部のコローラが正常に並列処理するタスク
を1区列に処理する11nclude  ”5tdio
、h”11nclude  ’defines、h’j
include  ”5tructs、h’1inel
ude  ”extrnvar、h”1definθT
IMEOUT 0 process H 【 int i、  pitchmode;int mov
ing: 5tatic int dntinoer t= CB
lf (onpath) path()  ; pitchmode = 5et(5)、mode; 
   存在するピッチモードの記mOV11g= O+
            アームが移動中を示すフラf
ar (i=o;  i<=6; ++i)     
 まずm部が作用するようなif (set(1)、m
ode == MOVE)moving =  l; if (set(5)、mode  != FREE)
case  HYDRO: hydro(1); break; case  BRIDOES: bridges(i) ; break; outbits  l= WDON; dwrport(8,outbits) ;5et(5
)、mode w pitchmode;      
ピッチを再び正常状態へ1f (moving) ctlme  =  200; if ((!n+oving) && (cycler
))【 if  rctime) 一−OL1me : l se ++cyc1e−pO51tlOn :if (cyc
le−positionン4)cycle posIL
son = 0:recall  (cycle po
sition+49);  アン−コードを使用して再
for  (i=o;  i<TTMER8;  ++
i)     デユーティ時間を増大スル++time
r(i) : if (timer(i)、> PER10D)   
  周期化さセルtimer(i)コ0; RECALL、C851213 このルーチンは記憶装置からの設定位置の再呼出しを打
なう。 ノ路は新設定位置に向って新たな位置を呼び出す。ルー
チンのj飢も呼出される $1nclude  ” 5tdio、h’$1ncl
ude  ’defines、h”$1nclude 
 ’5tructs、h’$1nclude  ’ex
trnvar、h’recall (code) xnt  code  : int  pose、  1  : poI9e  −code  −49+if (mem
ory(pose)(0)  != 9999)   
アームが基準化されプログラムfor  (1=o; 
 i<7;  ++i)5et(i)、pos = m
emory(pose)(1)  ;if  ((!p
athon)  &&  (i<4)  )set(1
)、mode = MOVE ;set(5)、pos
 w 5tate(5)、pot:   ピッチは常に
適合されるpr’epropoI3 P p08ei 
       汎用位置指示器のセットif (pat
hon) path() ; 5etspeed+1 : 1se clearscreen(23,24>  :move
cursar(24,0)  :printf (”\
tPO8ITION NOT TRAINED”)  
;REVEPSE、CB51203.851031゜こ
のルーチンは阻界座標(X、Y)Cミリメートル)をと
り必要な関節$tncludo  ’defines、
h”$1nclude  ”5tructs、h”$1
nclude  ”extrnvar、h’world
2arm(al、a2+a3.x+y)double 
 *al、’Ja2.米a3 + x + y  ;e
xtern double acos(L 5in()
+ 5qrt():lnt okay、regxon 
 :double  1eno、1enl、1en2,
1en3.pi、tamp al、temp a2.t
emp a3;double 1enl礼1en22,
1en32.ang h”lB+h’fs rdoub
le  tempx、rl、rl2.r2+r22.c
ar ang、xnest、yrrest、alrr6
st。 a2nest、a3nest  ; double  org x、orlx2.y2.hy
p−1en、5ide3,5ide32.arrg b
l、ang b2double  org xl、or
g−yl+hYT)len2  :1enOw 370
.00  ; 1enl   =  152.40  ;1en2  
 = 304.80  ;1en3   = 374.
00  :pi    −3,141592654;1
en12  = 1enl米1enl  ;1en22
  =  1enZ 釆1en2  ;1en32. 
 =  1ens米 1en3  :okay=l; region = O; ang、、−hys = 2.0  ;tempx =
 55.2 ;      来xnest −1eno
 来rl  −220,9077862;      
   米 5qrt(tempx米tempx+yne
st4’ynest)rl2 = r1本rl; r2 = 369.1324618  ;      
  米1enl +  5qr−t(len33−1e
n22) 未r22  = r2  *  r2  :
cor ang = 0.252554276 :  
  未acos(ynest/rl)米xnest  
−425,2: ynest = −213,9; alnest w −pi/2.0  ;a2nes 
t−−pi/2.O: a3nest  =  2.972392682  ;
org  x =a  x −1eoo  ;org 
x2 = org=x来org−x ;y2=y*y; if  (((org  x2  +  y2)  <
=  rl2)  &&  (y<=0)  )領域A region Ml ; hypJen =  5qrt(org、1x2 + 
y2 ) ;temp al = ((−1)来aco
s(org−x / hyp−1en )) −cor
−arrgtemp−a2 = a2nest ;La
mp a3 = a3nes t ;else  if
  (((org−x2  +  y2)  <=  
r22)  &&  (Y(=O)  )領域B region = 2 ; hyp len = 5qrt(orLx2 + 72
 ) ;hyp 1en2 = hyp ten *’
 hyp−1en :tamp al = ((−1)
来acos(orLx / hyp len )) −
car angorg xi w org x −(1
enl 釆cos(tamp al));org−yl
 = y −(1enl $ sln(temp al
)  )  ;5ide32=  (org−xi朱o
rg xi) + (or、1H−yl * org−
yl)  ;5lde3 ” 5qrt(side32
)  :ang  bl  =  acos((len
12+5ide32−hyp  1en2)/(2*1
enl米ang−b2 = pi −ang−bl  
;temp a2 = (−1)*(acos((si
de32+1en22−1en32)/lemp a3
 = pl −acos((len22 + 1en3
2−5ide32)/else  if  (((or
g  x2  +  y2)  ン r22)  &&
  (y<=O)  )領域C reglon = 3 ; −hyp len = 5qrt(org−x2 + 
y2 ) :temp al = (−1) * ac
os(org−x / hyp len ) :5ld
e3− hyp len −1enl ;5ide32
 = 5ide3米5xde3 ;temp−a2 =
 (−1)来acos((1en22 + 5ide3
2−1gn32) /lemp a3 = pi −a
cos((1en22 + 1en32−5ide32
) /else if (((org x2 + y2
) > r2’2) && (y>O) )regio
n = 4 ; temp−al = 0.0 ; org、、−x w  x −1enO−1enl  
;5ide3 =  5qrt(CorLx 来org
 x)+  y2  )  :5ide32  =  
5xde3 11− 5ide3  ;anILbl 
 =  acos(org−x / 5ide3 );
temp−a2 =  arrg bl  −aco゛
s((1en22+5ide32−1en32)/(i
len2米5ide3))  ; temp a3 =  pi −acos((lerr
22+1en32−side32)/(2−*1en2
米1en3)) ; okay = O; (okay = 1 ) hys =  (ang hys / 1B0.0)米
p1;xf (temp alン0.0) if  ((temp−al  −hys)  <=O
)    tamp  al  =O,O:else 
 okay = O; 1f (temp−ai < (−1米pi/2) )
ir  ((temp−al  +  hys)  ン
= −pi/2  )   temp  al = −
pi/2  :else  okay = O; lf (temp−a2ン0.O)         
 関節部の安全性チェックjf  ((temp  a
2 −  hys)  <= O)    temp−
a2  =  0.0  ;else okay = 
O; xf (temp a2 < (−1未pi/g) )
if ((tamp a2 + hys) >= −p
i/2 )  temp−a2 = −pi/2 :e
lse 0kay =o; if (temp a3ンa3nest )     
    関節部の安全性チェック1f  ((temp
  a3 −  hys)  <=  a3nest)
    tamp  a3  = a3neSt  ;
else oklIy = O: if (temp a3 < (a3nest −(p
i/2)) )if  ((temp−a3  +  
hys)  >=  (a3nest−(pi/2))
  )    temp−a3else okay =
 O; 1f (okay == 1) mal = temp−al  : 米a2)tennp a2 ; 米a3 =  tamp−a3  ; return(0); else  return(−1); REV、−LEG、CB60129.851114本ル
ーチンは腰部の所望仰角およびひざの屈曲角からアーム
a O+ a l +・・・n6を求める。 $tnclude  ’5tdio、h”$iwclu
de  ”dafines、h’11include 
 ’5tructs、h”$1nclude  ”gx
trnvar、h’r6vjag(ao、al、a2.
a3.a4.a5.a6.elevt、 flexx)
double  米aO1米” 1+*a2.米a3.
米a4.米a5* 来a61elevt、flexx 
 ;extern double 51nO,cosO
+ acos+1  :double elv、flx
、u、v、x、y、ul、11.px、d  ;+nt
  bad  ; double ango、angl、ang2.ang
3.ang4.ang5+ang6 ;aO肩部の旋回 al       関節部1 a2      関節部2 a3       関節83 a4       ヨー a5      ピッチ a6      ロール WIDTHPAPの幅 DEPTHPAPの深さ ul       上脚部の長さ 11      下脚部の長さ leg      脚部の全長 5tliftx    アームに対し水平5hifty
     アームに対し垂面x、y       ピッ
チ軸のアームu、v       ピッチ軸の脚部座標
9、= 3.1415゜2654 ;     J″、
Tnm卸非ul = leg / 2.0  ; 11 = ul  ; u =V = X = y= o、o  ;ango 
= 0.00 ;         肩部の旋回が現在
値に留まるang4 = 0.0  ;       
   プラナ−ルーチンなのでシー0.0ang6 =
 0.0  :          プラナ−ルーチン
なのでロール= a、。 仰角および屈曲角をラジアン単位に変換elv  −e
levt  : fix  =  flexx  ; u、vの計算 u  m  ul 米cog(elv)  :u +x
 11 lf、cos(elv) ’It cos(f
ix) −11米51n(elv)来5inu +w 
(−1) *−(DEPTH来cos((olv+ft
x)) −WIDTH来5inv  W  ul 米5
in(elv)  ;v+mll米51n(elv)米
cog(flx) + 11来cos(elv) 11
5inv+m(−1)米(DEPTH* 5xn((e
lv+flx)) + WrDT[(米0081x +
 Yの計算 X −u  +  5hxftx  ly w V +
5hift’Y ; アーム関節部(二対し逆変換ルーチンをbad =wo
rld2arm(&angl、&ang2.&artg
3.x、y)  :ir (bed != −1) ピッチ角の計算 ang5 = elv 4− flx + (pi/2
) −angl −arrg2− ang3 ;アーム
角を戻す 米ao = ango ; mal = angl ; 米a2 = ang2 ; *a3冨ang3 ; 米a4 = ang4 ; 米a5 = ang5 ; *a6 = ang6  : 】 else  arout(33);   ”LIMIT
”と発声SAFE、C851203 本ルーチンは一匹者の脚部の安全作業空間内にx、y位
置があるかるため該位置をテストするもので、5cal
e、cで計算さ社た患者部データにより決定され安全位
置を示すTRUEJP非安全位置を示FALS Eのリ
ターンにより示される。 $1nclude  ’5tdio、h″$1nclu
de  ’dafineg、h’$1nclude  
”5tructs、h’1xnclude  ’ext
rnvar、h’5are(x+y) double x、y: double tempa、  tempb;if (
safety 、= FALSE)return (T
RUE);       基早化されてない場合スキッ
プif  (y ン=0) tempa = (x−shiftx)米(x−shH
tx)  +  (y−shifty)米(y−sh 
i f ty) ;tempb =  (leg−GR
IP DEPTH)米(leg−GRIP  DEPT
H);lf (tempaンtempb) return  (FALSE); (Ilse return  (TRLIE): else tempa  = (x−shiftx−Leg/2.
0)米(x−shiftx−1eg/2.0)+ (y
)未(y); tempb = (leg/2.0−0RIP−DEF
rH)米(leg/2.0−GRIP DEPrH);
if (tempa > tempb)return 
 (FALSE); 1se return  (TRUE); 】 5CALE、CB60123.850918本ルーチ/
は患者の脚部長、右又は左のどちらの脚部か更に患しa
rthrobotの位置によりブリブaグラムされた位
置を基準化使用する汎用記号は: 5ide     l = lef’t  −1= r
ightoffsetl、 offset2. of’
fset3んり−PERPOTI、 RAD PER−
POT2.  MD PERPOT3memory (
pose)(pot)    pose o to 4
   pot 。 1+4.5hirtx、 5hifty;$1nclu
de  ”5tdio、h”1inelude  ”d
efines、h’$1nclude  ”5truc
ts、h”#1nclude  ”extrnvar、
h’5cala(1 extern  doubla  cos+ )、5i
n()l$deflne PI   3゜141592
654$defxne YPO3ITION  100
.00      アームから脚部の高さ$defin
e LENO37Q、O第1のアームセグメントの$d
efine GRrP WIDTH125,0患者装着
体の幅$define YAW 5WING 789.
0$define ROLL 5WING 200.0
doul)IG  u、v、xly+angla1.a
ngle2.angle3;double  temp
x、tempy  :int 5hLdr  pos、
yaw、roll、pitch、posltion、b
ad  :char dummy(15); 1ockup(TRUE)  ; clearscreen(0,24):movecur
sor(0,0); flex ang = 90  : elevate  =  45  : printf(” Arthoscopic Leg 
Positioning ScalingRou t 
ifl e%n\n 1 )printf(’Is l
eg positioned in FULL EXT
ENSIONposition’i’  (y/n 、jummy(0) = bdos(1) :pr+n
tf(”\n’) : if (dummy(0)!= ’y’)clearg
creen(0,24);movecursor(0,
0): ma i nmen u() : 1ockup(FALSE); 1se printf(” Xn′X、n Please en
ter heel to knee length 1
nscanf(”%F\n’ 、&1eg)  ;pr
intr(”\n′); trained  = TRUE; 5afety = TRUE  : leg = leg未2.0 + ang]el = pots(1)米RAD PET(
POTI + 0ffSetl ;angla2 = 
pots(2)米RAD PERPOT2 + off
set2 :angle3 = pots(3)  米
RAD PERPOT3 + Of’fset3  ;
arm2world(&x、&y、anglel+  
arrgle2.angle3 );tempx  =
  X  + 5hiftx = (x + (1,RIP DEPT
H)−(leg):5hifty = YPO8ITI
ON  ;hx m 5hiftX;     これら
の値はanthr’oルーチンにより使mhy = 5
hift’y: zO= sqrt((leg/2−0RIP−DEPr
H)米(l e g/2−DKPTI()+(GRIP
 WIDTH−*GRIP WIDTH)) ;m1n
l = Leg来(OFLIP WIDTH) / (
21(leg−ORIP−DEPTH));print
f(” 5hiftx盲%f  5hifty+%fz
o−+%f’<n’。 5fiiftx、5hifty+  zO)if (5
ide == −1)      右側5hldr  
pos  = 3289  :else       
       左側sMdr−pos = 740  
: for (poaition = 1  ;  ’po
sition < 6 ;  ++position 
)yaw = yaw center ;      
O,O[Ij、中心決めされたpitph = pit
ch center :    0.0度、中心決めさ
れたroll = roll Center r   
  000度、中心決めされた5w1tch (pos
ition )case  l  :        
                    イL?Ji
hxニリ゛′シO u = (leg−GRIP DEPrH)  釆co
s(elevate  *  PI /  1B0.0
u= u +  (GRIP WIDTH+5in(e
levate 米PI /180.0)  )v = 
(1+4−GRIP DEPTIi)  *5in(e
levate  木PI / 180.0v = v 
−(、GRIP WIDTH本cos(elevate
 未PI /180.0)  )  :X  =  u
  +  5hiftx  :y = v +  5h
ifty  :bad = world2arm(&a
nglel、&ang1e2゜&angle3.  x
、  y  )if(bad<0) elevate  =  elevate  −1:w
hile ((bad < O) && (eleva
teン0));printf(”elevate wg
%f\n’ 、 elevate) ;roll z 
 pots(6) + (5ide 未wrparms
(12) )  :yaw w yaw center
+ (5ide * wrparms(10) ) :
break  ; case 2 ’:            完全延伸
u ” tempx −ahiftx lv w te
mpy −5hifty ;roll w pots(
6) ; yaW −yaml center; break + caseざ:           完全屈曲O u = (leg/2.0) + ((leg/2.0
) −GRIP DEPTI() *cos(flex
 ang*PI/180.0) :u、 = u −(
(GRIPWIDTH) 釆5in(flex ang
Jr’I/180.0)) ; v −(−1) 達((leg/2.0)−01(IP
 DEPTI()来PI/180.0)) ; y  = V +  5hift’l  :bad =
 world2arm(&ang1el、&ang1e
2゜&angl e3 、  χ、y ) ;if’ 
(()ad < Q ) rlex ang = flex ang  −1:w
hlle ((bad < O) && (flex 
aTlg > o) );prlntf(”flex 
arrg = %f\n”、flex ang);ro
ll  = roll  center  ;yaw 
= yaw center +  (5ide −* 
YAW−8WIN(]/4 )  ;!J = (0,
80* Ieg)  −GRIP DEPTH;v =
 GRIP WIDTH−leg / 2.3  ;r
oll = roll center + (5ide
米abs(pots(6)−roll、center)
); yaw = yaw center + 0.5木(5
ide米abs(pots(6)−ran−cente
r)); break  : u = (0,800米log )  −0RIP D
EPTH;v = −GRIP WrDTI(; it  (5ide ===+ −1)(右側 yaw = yaw center −YAW 5Wf
N() ;roll w rob−center + 
ROLL 5WTNG ;else      左側 yaw = yaw−center + YAW−8W
ING ;roll z roll center −
ROLL−8WINC) ;break  ; (u、v)を(x、y)へ変換 X ” u +5h1rtx : y  w v +  5hifty :関節部り、2.
3の角の計算 bed ! world2arm(&anglel、 
&angle2. &angle3. x、  y )
  ;角をpoilaに変換 if (’bad ! −−1) 191、。1、。・positi。。%d pro5r
amnoed ’sn’、posit1on) ;pr
intf(”    x=%f      y−%f\
n”+X1y):printf(”Xn” ) ; +namory (position −1) (o)
 = 5hldr−pos :memory (poa
ition −1) (1) = (anglel −
offsetl) /RAD−PERPOTI ; memorY (+)osition −1) (2)
 = (angle2− offset2) /RAD
 PERPOT2 ; memory (position −1)  (3)
 = (angle3− offget3) /RAD
 PERPOT3 ; memory (positlon −1) (4) 
= yaw ;memory (posltion −
1) (5) = pitch ;memory (p
ositlon −1) (6) = roll  :
】 1se printf(’  $−*−Position %d
 rrot programmed\n1positi
on) prlntf(” 休* Please do pos
ition %d manually\n’ 、 po
sitlon ) printf(“   XN%f     y!%f\
n” g X1y) ;printf(’\n1); ! 1ockup(FALSg); prepropos  z  l; mainmenu(); 5FiLACT、CB60205. 851109本フ
ァイルには、新しいハンドコントローラを介し指令され
たアク/コンを行なうルーチンが含まれる。 瞥1nclude  ”atdio、h’1inclu
de  ”defines、h’111nclude 
 ”5tructs、h”jinclude  ’ex
trnvar、h″1abs(value  ) int  value; if(value   <   O) return(−value   );else   
 return(value  ):speak(5a
rlo word number  )ユnt   5
arlOword  number;if(are  
we   jn  continuous  moti
on    ==   No    )return(
・arout(5arlo word numbere
lse   return(1); znt  Sett1ng+ unslgned char  received−j
unk(12B );send−command to
−the−8ARIO(”  !、  receive
d−junk  );xf(setting =TRU
E )send−command to the−8A
RIO(’B、l\r’。 received−junk) send command  to−the−3ARI
O(’Ml\rl。 ric@1ved−junk  ); ■ 1se send command to the−8ARIO
(”B、O\r−send command  to−
the 5ARIO(’ITILJ\r1゜r ece
 1Ved j unk  ) :   5g Wfl
5tuff 5election−or−action
 1nto−the keyboard−buffer
(pendant 5election、pendan
t action  )irVL  pendant 
 5election、   pendant−aot
ion;if(pendant−action == 
O)switch(pendant−selectio
n  )case  O: 5tuff kbuf(、ELEVATfe Co)J
MANDbreak: case  l  : 5tuff kbuf(FULI、−[EXTENSI
ON−break; GaSe  2  : 5tuff  kbuf(HALF−FLFiX−CO
M)JANDbreak; case  3  : 5tuff kbuf(FULL FLEX COMM
ANDbrBak; Ca513 4  : s tu f fJ<bu f (FIGURFi 4
−C0M!JANDbreak+ Caae  5  : 5tuff−kbuf(WRIST COMMAND 
 ) ;break; Ca5e  6  : 5tuff kbuf(F’OOT COMMAND 
 );hraak : Ca5e 7  : s tIItT kbu f(KNEG−COIJ14
AND  ) ;1汀cak; case  8  : 5tuff kbuf(IIIP COMMAND  
);break; case  9  : 5tuff kbuf(AR)J−COWAND  )
;break; default: break; else switch(pendant−action  )c
ase  l  : 5tuff’ kbuf(M(NUE3 COMMAN
D  );b r e a k + case  2  : 5tuff  kbuf(+”LUSCOMMAND 
 );break; case  3  : 5tuff kbuf(5TOP COMMAND  
);break; atuff kbuf(a−character  )
unB1gn@d  int  a  charact
er;5tatl、c unsigned  1ntO
x0300,0xlEQl、  0x3002. 0x
2EO’!、0x2004,0x1205,0:c21
0(3+0x2207゜0x230B、 0x1709
.0x24OA、 0x250Bpx260C,0X3
20D、0X310E、0XlBOF。 0x1910.0xlO1l、 0x1312.0xl
F’L3ρx1414.0X1615,0X2F16,
0Xll17゜0x2DlB、 0x1519.0x2
CIA、 0xlAIB、0x2BIC,、0xlBL
D、0x071E、0xOCIF。 0X3920.0XO221,0X2822.0x04
23.px0524.0X0625,0X0826,0
X2827゜0XOA2B、 0XOB29.0XO9
2A、 0xOD2B、px332c、 0XOC2D
、0X342E、0X352F。 0xOB30.0x0231.0x0332.0x04
33,0x0534.0x0635,0x0736.O
x0837゜0x0938.0xOA39.0x273
A、 0x273B、0x333C,0xOD3D、0
x343EIQx353F。 0x0340.0xlB41.0x3042.0x2E
43ρx2044.0x1245,0x2L46,0x
2247゜0X2340.0X1749.0X244A
、 0X254B、0X264C,0x324D、0x
314E、0x184F。 0に1950. Ox1051.0x1352.0xL
F53,0x1454.0x1655,0x2F561
0xl157゜0X2D5B、 0x1559.0x2
C5A、 0xlA5B、0x2B5C,0xlB5D
、0x075E、0xOC5F。 0x2960. Ox1g61.0x3062. Ox
2’B63ρx2064.0x1265..0x216
6.0x2267゜0x236B、Ox1769.Qx
246A、0x256B、0x266C,0x326D
、0x316E、0xlB6F。 0x197Q、 0x1071. Q+c1372.0
xlF73ρK 1474 + Ox1675+OX2
 F’76+OX 1177 。 0x2D78. 0x15γ9. 0IC2C7A、 
 0xLA7BIOxa日7C,0KIB7D、0X2
97E、0XOE7F。 ); unsigned  int  head、   ta
il placedjSable  int、erru
pt、s(1:head  =  peek(0xOO
1a。 tazl  =  peek(0xOO1c。 plac@ =  tail; La1l  +士  2; 1f(tail ==  0xO03e   )tai
l  =  0xOO]、e if(head ==  taxl   )retur
n(0); if((a  character & 0xOOff
 )−−’  0xOOOO)pokew(plaCe
、  0xO040,a charaCter  );
else  pokew(place、  0xO04
0゜ASCIIjo 5can code and−k
ey(a character )  );pokew
(0xOO1c、0xO040,tail    );
return(1); enable  xnterruptsT);】 flush−the−keyboard−buffe?
+1unsigned  int  beta:キーボ
ードバッファは文字を読み出す頭部と文字を置く尾部と
ている。本ルーチンによりキーボードバッファの尾部か
ら再び効果的に文字が移動される〇 注:  0xO040: 0xOO1aはセグメント0
xO040で頭部位置0xO040: 0xOO1cは
セグメント0xOO40で尾部位置disable−i
nterrupts (Lhead = peak(0
xOO1a、  0XOO40) :    頭部を得
るpokew(0xOO1c、  0xO040,he
ad );    尾部へ入れenable−inte
rrupts();isJhe arm、;oving
()int  Jotnt、  mOVIng;mov
ing  =  FALSE; for(Joint=o;  Jolr+t<4; 、
 joint++  )if(abs(5et(j*i
nt’)、pos −5tate(jolnt )。 parms(joint )、fJ+ys  )mov
ing = TRIJEi t)reak; tor(joint = 4;  Jotni < 7
;  joint++  )if(abs(5et(j
oint )、pos −5tate(joint )
。 moving = TRUg; reakr return(moving  ); put the arm 1nto emergenc
y stop(1dwrport (s、 outbi
ts & 0XEOOO);     すべてしめ出す
5napshot(1;              
    jl新値を得るfor  (joint=0;
  joint<〕; 十トJo in t)set(
joint)、pos ffi 5tate(Join
t)、pot;if(joint < 4  ) set(joint)、mode y LOCK ;1
ss set(joint)、mode = FREE;5t
op−and masntasn−1he prese
nt position−of  tbe−arm(+
dwrport(8,outbits & 0xaOO
O);5napshot(); for(joint ! O;    joint <
 7+    joint++  )elevate−
the 、arm()recall(’ν ); wrparms(1B ) !  TRUg:full
  extension  the−arm()rec
all(’2’  ); half  flex−the−arm()recal
N  ’4’  ); full  flex−the arm(1recal
l(’3’  ): figure−4−the−arm()recall(
’5’  ); setupthe−arm() recall(’6’  ); move−arm−in(1 15et(0)、poa −am (ahoulder
 −11parms(0)、ino釆2);5et(0
)、mode +w  MOVE:亀 move−arm outj) s、et(0)、pos 4= (5houlder 
41 parms(0)、inc来2);5et(o 
)、mode w  MOVE;flexthe hi
p() sf (trained) anatom (ANG 5TEP来2.0.0.0)
;1se inc XY (0、50); =xtend−the−hip() if  (trained) anatom (−ANG 5TEP達2.0.0.0
);lse 、  inc xy (0、−50);flex th
e−knee(1 1r (tratned) anatom (0,0,−ANG 5TEP未2.0
);1se 1nc xy (−50,O); extend−the−knee() if (trained) anatom (0,0,ANG−8TIICP未2.
0);1se rotate  foot−1n() 5et(4)、pos −= (side来parms
 (4) 、 1na) ;rotate−foot−
out() set(4)、pos 4−M(side未parms
(4)、1nc);ir (external−rot
ation =w O)【 external  rotation y l;  
  リストをフリーにしたりスナップよりリセットされ
たフラグ 5et(6)、 pos += (5ide * pa
r+na(6) 、 trra) ;release 
 the wrjst(1ror(joint w 4
;  joint < 11;  Jotnt++  
)set(joint )、mode =  FREE
;external−rotaLion = O:ho
ld  the wrlstH for<  joint ” o;  joint <
 ’/;  joiTIt++  )【 S回’5PEID、 C851203 本ルーチンにより油圧式関節部の速度がセットされる1
1nclude  ”gtdio、h”11nclud
e  ’definea、h”11nclude  @
5tructs、h”11nclude  ’extr
nvar、h”5etspeed() double deltal、 delta2. de
lta3.  temp;int 5peedl、 5
peed2.5peed3;deltal = abs
(set(1)、pos −pots(1)) ;de
lta2 = abs(set(2)°pos −po
ts(2)) ;delta3 = abs(set(
3)’pos −pozs(3)) ;if  (de
ltalンdelta2)1f  (deltal>d
elLa3)temp = deltac lse temp ta delta3; 1se if  (delta2ンdelta3)temp w
g delta2; lse temp = delta3; 5peedl = )’ERIOD $ deltal
/lamp;5peed2 = PERIOD米del
 ta2/lemp;5peed3 = PERIOD
米del ta3/l amp ;if (speed
l < 1)            速度を確実(ニ
ー〇より太5peedl = l; xf (speed2 < 1) speed2 = L ir (speed3 < 1) speed3 = l; 5et(1)、duty = 5peedl;5et(
2)、duty = 5peed2;5et(3)、d
uty = 5peed3;SHT電IP、C8602
07 本ルーチンにより関節部の設定値および110部が初期
(! i9゜又本ルーチン::よりシミュレートされた
分掌処理ル−チン(;ラメータ配列がセットテップされ
る0 11nclude  ’5td1o、h”11nclu
da  ’deflnea、h”11ncluae  
’5tructs、h’11ncLude  ’axt
rnvar、h@etupH extern  int  dac refresh(
);int  i; char reply(to)  ; debug x O;      デイノくツガ−のオ
フ関節部パラメータのセットアツプ parms(0)、type w HYDRO;   
     水平な肩部関節部parms(0)、f h
ys * 15;parms(0)、r、−hys w
 −15;parms(0)、c16ck = O;p
arms(0)、outadr = O;parms(
0)、vmask = 0xOO04;parms(0
)、xgain = l;parms(0)、vgat
n = l;parms(0)、dead = 2;p
armS(1)、f’Jys = 30:purm:+
(1,)、r  hys  =  −30:parms
(1)、clock = 1:parms(1)、ou
tadr = l;parms(1)、vmask =
 OxO020iparma(1)、xgaln = 
l;parms(1)、vgain−1; parms(1)、dead Q 2;parms(1
)、jnc = 10;parms(2)、 typo
 = +1YDRO;    第1のひじ関節部par
ms(2)、f−hys =++ 30;parms(
2)、r、、−hys w −30;parms(2)
、clock w 2;parms(2)、outad
r−2:parms(2)、vmask = 0xOL
OO;paris(2)、xgain W l;par
ms(2)、vgain w l;parms(2)、
dead = 2;parms(3)J−hys = 
35;parms(3)、r−hys = −35;p
arms(3)、clock = 3;par+n5(
3)、outadr = 3;pnrms(3)、v+
++ask  =  0x0800ipar+n5(3
)、xFSain ” l;par+n5(3)、vg
ain ” Cparms(3)、dead = 2:
parms(3)、inc = 10;注: リストパ
ラメータは再び下記り)ように定義されたctrx H
必要なリストパラメータ wrparms(0) = l;   wrist m
ode l=normal 2=lockyaw&pi
tch3=pi tchtrack wrparms(1) = O;      弁(一対
しVオフセントwrparms(2) = 6;   
   ビツチウイ/ドーwrp、rms(3) = 4
;      オーパーツニート定数wrparms(
4) = l;      ピッチ速度倍率wrpar
ms(5)= 50;      タイマの初期値設定
(サイクル数)のカウントwrparms(10)= 
−150ヨーオフセント定数、el eva teに関
しにより使用される wrparms(11) = 120;    ele
vateが達するときのピッチ増分wrparms(1
2) = 100;    5cale、cにより使用
されるロール2セツト wrparms(13) x  8;    DACに
対する倍率モータ:512レベルにwrparms(1
4) = 4095 / tqrparms(13);
   補数定数wrparms(15) = 2050
;   ビッチト乏ソキングオ7セノト定数るフラグ wrparms(19) w l;     ピッチ速
度の変数rms(4)、 type s−BRIDGE
S;    リストヨー(ピノ?)parms(4)、
 jhya x Q;    リストctrlのヒステ
リシスウィンドーparmIJ(4)、r」+ys =
 200;     実際速度を制限する期間parm
s(4)、outadr = O:parms(4)、
vmask = 0x2000;parms(4し)、
xgaio  =  25;parms(4)、vga
in = 2!j;      速度フィード/くツク
ゲインparms(4)、dead  =  2048
;par+na(4)、inc  =  100;pa
rms(4)、msh =  2048;     マ
ノ/具七−ド定数(650)parms(5)、 ty
pe = BRIDOES;     リストピッチ(
−3−)par+n8(5)、f hys = Q;p
arms(5)、r−hys ta 200:parm
s(5)、outadr w l;parms(5)、
vmask = 0x4000;parms(5)、x
gain = 25:parma(5)、vgain 
w 25;parms(5)、dead += 204
8;parms(5)、inc = 10;parms
(5)、msh w  2048;   650par
ms(6)、、type −BRIDOES;    
リストロールparmsl:6)、f hys = O
;parms(6)、f hys = 200;par
ms(6)、outadr = 2;parms(6)
、vmask w Ox、8000;parms(6〕
、xFSain = 25;paris(6)、vga
in = 15;pnrms(6)、dead = O
;parms(6)、inc =x 400;n*rm
nrA)、mqh  =r  2048:    Io
o。 offseLl −−2952,0*RAD−PERP
OTl;orfs8t2 = −2768,0体RAD
 P[i:RPO’r2;     実験的に決定of
fset3 = 1.3’79748483−1362
木RAD PI POT3;offseL5  =  
 −pitcb  center  *  RAD−P
i  POT5  ;memory  (5)(0) 
x 740  ;memory  (5)(1) = 
2810  imenuory  (53(2) = 
1822  ;memory  (5)(3) w 1
864  :memory (5)(4) = yaw
 center  ;memory (5)(5) =
 1395 ;memory (5)(6) = ro
ll−center ;dtresetN;     
       ディジタルおよびアナログI10部の5
etclock(120) ; 5etport(8) ; dwrport(8,0) : for (i=o; i<7; ++1)     関
節部の初期状態セントif  (i  <4) set(i)、mode = LOCK;l5e set(i)、mode = FRfEE;5et(1
)、duty = PERIOD;5et(j)、po
s= acH(i、1.O):paris(1)、re
set = (pum+)(parl’1S(1)、0
utadr)、InaSk lparms(1)、vm
ask) state[i)、wait = O:movecur
sor  (0,29);prlntf(”kRTHR
OI30T II  SE’rυPXo” ) ;5c
anf (”%3\n”+ &raply(0));1
f (reply(03子 +r′)parms(0)
・χgain丑−1;5ide  = −1; memory (5)(0) w 3289 :1in
k−to−1nterrupt(dac−refrea
ll+  256+  USI?R−8UPPLI g
D−CLOCK−ROUTINt、/ECTOR);5
napshot、(); adjust the−wrist−complian
ce(6);5NAPSI(OT、C860122 本ルーチンは位fflフィードバックセ/すをサンプリ
ングし位置jinclude  ”defines、h
’1fnclude  ”5tructs、h”#1n
clude  ”extrnvar、h”static
 int  js−tM heel−being pu
l〕ed out = No。 previous−state−of jotnt 3
;1nt tamp(1o); lnt 1+  j ; for  (i=o;  l<10;  ++1)te
”p(”)=Q+ disxntr();        中断処理を禁止
5etadc (0,9,1,0,10);    1
0個の読み値(二対しadc、テヤノネルゲイン1をセ
ント for (1=o;  140; ++1)   全関
節部のpotを読み取るtamp(i) x adcO
; enablntr(1+       再び中断糸上f
o r (1= O;  l<’7 ; ++1 ) 
   全関節部のpot変位の計算if (tamp(
i) < 10  ll  temp(1)ン4085
)fault(i)  ;POTRRR;5tate(
1)、dsltax y tempCi) −5tat
e(i)、pot;5tate(i)、pot = t
emp(i);否かなしらべる lf(temp(8:l   <   2048   
)is  theJeel−being−pulled
−out y  ygs;if(5et(3)、mod
e  !=LIX:K  )prOvious−sta
te  of−joint 3  =  5et(3)
、mode;後の復元 ++et(3)、mode  w  ll0LD;】 ■ 1se if(1sths−hae□−be ing−pull
 ed−0゜t ;: YES )is−the−he
el−belrrgJulled−out  =  N
o;環境センサをチェックしアーム、リスト又は障害物
が何かあたつないかしらべろ。 if(temp(9)   <   2048   )
Stop−and−maintain−the pre
sent−position−of−the arm(
Cif  (5tate(0)、pot  >    
(S)IOULDER−50)&&    5tate
(0)、pOt  <     (St(OULDER
+  50)&&  5et(0)、mode  −−
MOVE              )set(0)
、mode = LOCK;if (state(0)
、pot > 8+1OULDER)shoulder
 e= −1; e 1 s e            )n FI?
1位置の実際の極性を決定する5houlder = 
1: if (abs(state(6)、pot −yaw
−center) < LOo、0)if  (ext
srnajrotatlon > Q)set(6)、
poa −w (side来parms(6) 、 1
nc) :external−rotation = 
O;8TORg、C851203 操作者はIS@を押し次に記録する位置の番号を押す。 1inelude  ’5tructs、h’tnt 
 pose、  i+ 1f  (−*mode  = 0) 1ockup(TRt[e): clearscreen  (2,24);n+ove
cursor  (2,0);prir+tf (”S
’[’01(E  POS I TI ON\n\n”
);printr(”5tandard posiLl
ons:\T]\tl −E1eVQje\ll\t2
−1i’uLI Extension\n1);pri
ntf (’\t3− Full Flex\n′Xt
4− Half’ Flex\n’st5−[i1+g
ura FourXn\n”):printf’ (’
Press l−b to 5tore posjti
on\0″);*mode  =  2; 1ockup(FALSE); 1se 1f (code > 48  &&  code <
 754)pose ” code −49+ for  (i=o;  jぐ7;+←1)memor
y(pose)(x) ex pots(i);mov
ecurSor  (24,0);printr (”
\tPosltion %a trazned’、  
pose+1);i$mode  = O; mainmenu(); TIMIEDAY、C860122 本ルーチンはミツドナイト以来クロックのチック音(カ
チカチ音)の数を戻す(−秒間(二18.2チック音)
uzsigned long get the−tlm
e of−dayOunsigned Ion)(cl
ock ticks;unsigned 5hort 
peek(Gdisintr(): clock  tlcks = pOek  (OxO
06e、0XOO40);clock  ticks 
= clockticks * 0xiO000L +
 peek (OxO06c。 enabintrf ); return  (clock  ticks);WT
CI(DOG、C85121r!。 本ルーチンが呼び出されると監視タイマが切り換えられ
る。 本ルーチンによりディジタル電圧調整器を制御する単安
定マノ「)゛レータがり七ソトされる。 $1nclude  ’5tdio、h”$1nclu
de  ”defines、h’$1nclude  
”5tructa、h’わnclude  ’extr
nvar、h’wtchdog() outbits l= WDON ; dvvrport (8、outbit3)  ;ou
tbits 4m WDOFF ;dWrport (
8、outbits )  ;」 $1nclude  ”atdlo、h”FILE  
来fpi、  達fpo、 、−*fopen□;un
signed char  storage(256)
;int        5top、  i、  le
ngth、  character、  ret;5r
v−arv crstrjp(c、  v  )Int
     Q; char  木V〔〕: if(c<3  ) prxntf(’Count error\n′);f
pi  =  fopen(v(1)、  ’r’  
);fpo  =  fopen(v〔2)、  ”w
”  );ret = fgets(st。rage、
 2゜7.19、)8character =  fg
etc(fpi  );length =  5trl
en(storage  ) ;for(5top =
 O,i = length −1;StO’p’=!
 O&& iン0;i−)awitch(storag
e(i )  )【 case”: Ca5e  ’\t′ : case  ’\r′ : break; default  : 5top≠ 1; 、      break; xf(character  ==  ”If  ch
aracter  == ’\t′II   char
acter  ==  1\n1ll   jsupp
er(character  )11 1sd1git
(character  )   )lengLh y
  5trlen(storage  );stora
ge(length    )  =  ’\nl;s
torage(length + l )  =  ’
\0′:fputs(storage、    fpo
  );fputc(character、   fp
o  );lse 【 length =  5trlen(storage 
 );storage(length    ]  =
  ” ;storage(length÷1〕=l\
OI;fputs(stortsg、e、    fp
o  );fputc(character、  fp
o  );while(ch、1racter  !=
EOF  &&  rQt  != EOF’  );
fclose(fpi  ); fclose(fpo  ): DT[(FiAD、H851023 本ファイルにはDT2801アナログI10ボードのC
〕7トウエアにより使用される定数およびマクロを含む
データR訳ボード、工VA標準アドレス$define
 DTC3R0x02ed$define DTDAT
   0x02ea状態ビツトをマスクする $define ERROR0x80 $define 0BFE    0x40$defi
ne Ck4’ND    0x08$define 
READY   0xOO04jdef1ne OBF
    0xO1$define writewait
  1while (inportb(DTC8R) 
& IBF);1;  EPILn()UE、T( ;    end of any assembly 
codeQCODg ENDS ;  MODEL、H :    defxne memory model 
for 1ibrary assembly code
FALSE equ   O;for small m
odelTRtJa  equ  l    ばorb
xg model; small model:=  
 Qbigmodel and Qmedmodel 
are false; medium modec= 
 Gbxgmodel  Is  false、  (
ilmedmodel  18;  big +nod
el+=      Qbigmodel  is  
true、 Qmedmodsl  isGBIGMO
DEL EQtJ FALSE     :  5el
ect  this  for  modelGMED
MODEL EQU FALSE     ;  me
dlum model  swztchf1 1f    Gbignoode1 %out  BIG MODIEL ASSE)aLY
1se if    Qmedmodel %out  MEDIUIJ M(IDEL ASSE
1aLYlse %out  SMALL MODEL ASSEMBL
Yndif ndir end+f ;     GBIGCODE means  far
  procedures;     GIBIC)D
ATA means  4  byte data  
pointersGbigcode   equ   
lbigmodel or Gmedmodel)Gb
igdata    equ   (3bigmode
l;    if you set QCOMFILJ
 the COM memory model;   
  will  be  selectedGCOMF
ILg    equ   O;    θBIGCO
DEmeans  far pro゛cedures;
    QBTGDATA means 4 byte
 data pointers(ablgeode  
   equ     (Qb1g+nodal  o
r  Qmec3model)Qbi((data  
 equ   Qb1g+nodal;DEli’fN
EAHGIJMICIJ’[’BA!3ERELATI
VEFR(’)IJBPIF     OB[l’:0
DE QAB    EQtJ    6 L8te QAB   EQU   4 NDIF GCODESE())JEN’l’ BYTEPUBL
ICIc0DE+GCODE El(DS 1;IDATAB     5E(WEN’r PAR
A PLJBLICIDA’rAB’GDA’rへB 
       IENDSGDATACIGMEN’r
 BY’rE PUBLTC’DATAC’Gsb  
 1abel  byte Qsw   1abel  word QDATACENDS QDATAT      SEf)MIuN’r  B
YTE  PUBLTC’DATAI’Gjb    
1abel  b+7LeQ1w    1abel 
 wordGDATAT      END3 QDATAT      5EQIJIENT  BY
’rlE PURLIC’DATAT’GDATAT 
     ENDS laDATAII       5EGIJN’r  
BYTE PUBLrC’ DATAIJ ’Qub 
  1abe1.hyLe G3uyv    lar+(Il  worslJD
ATATI      EtJl)SQDATAVSE
GlvlTi:N’rBY’i’EPUBLJC’DA
TAV’0DATAV      END3 if          IaCOIJIJILFDG
ROUP     GROUPQCODE、(JDAT
AB、9DATAC,GDATAT、GDATATωC
0DE 5EGk4EN’l’  BY【’E  PU
RLTC’C0DE’AS8UME      C8:
DGROUP、DO:DGnOUP1se DCIRQUP      GROUPGDATABj
lDATAC,(IDATAT、QDATAT、QDA
TAU。 GCODE  SBGMEN’r  BYTE  PU
BIJC’C0DE’ASSUMI七     C8:
σC0DE、DS:DGROUPndj f ;     IEND OF PROLOGUE、h;
   DISINTR,ASM           
    851023;  本ルーテアDISINTR
と鉗ABINTRはADコンバータを読み取る:  な
りリテイカルアプリケー/′3〕中 中断処理なイネー
ブルおよ;  イスアーブルするのに使用される。 I NCLUDE   114(lDEL、 HrNc
LtJDEPROLOGUE、HPUBLICDISI
NTR DTSINTRPR(’Ic  NEARLT ET DTSINTRRNDP PtJBLTCIABrN’rR ENABTNT’RPR(’)CNEARRTI ET ENABIN’rR1leNりP INCLUDE    apTt、ocum、HND ADC,C851023 adc(データ)よりs ta r tadcm指令が
先行しすべてのパラメー好適にセットされねばならない
。adcOはいつでも呼び出すができる。 jinclude  ”dthead、h’adc(’
) lni dajaL+ datah; r eadwa I L r            
    データレディまで待機datal −1npo
rtb(DTDAT 月       下位バイトの読
取readwai t ;             
     上位バイトレディまでdatah = 1n
portb(DTDAT );       そしてそ
れを読み取るreturn (datal + (da
tah <<8));    li数1−パックしリタ
ーADl、C851Q23 Qdz(チャンネル、ゲイン、モート’)fj)リガさ
れると指定されたゲを用いて指定されたチャンネルから
アナログデータを読み込み1、、。1.::  鋒、)
T、−、、,9,’4tttr!IWIt’)9− ’
fl。 act(channel、 gain、 mode )
char  Ctlannel+  gain、mod
e;int data; Co mma ndwa I L +    レディ2
:5ツグを侍つif (modeン0) outportb(DTC8R,0x8C);   a
−d即時指令をトリガした1se outportb(DTC8R,0XOQ );   
a−d即時指令をトリガしなwrltewait;  
  指令が処理されるまで待つautportM DT
DAT、 galn ) ;   ゲインパ5/−夕の
にニア)Wr i tewat l+    指令が処
理されるまで待つou tpo rもb(DTDAT、
 channel ) ;    チャンネルセントr
eadwaft; data m1nportb(DTDAT);read
wait; data  x  data  +   (inpor
tb(DTDAT)  <<  8);COm!nan
dWa1 j+               L/デ
ィまで侍つif  (inportb(DTC8R) 
 & ERROR)printf(”Adl  err
or −”);dterror(1; reもurn(−1); tse return (data); ア CLEkRFEC,C851023 本手順は1最初′の行で始まり”最後1の行まで(この
行を含のスクリーンをクリアする。 cle/1rscreen(first、  1ast
 )tnt first+  1aAt; stru’ct rlll’gVal l 1ntaX
+ bx+ ax、 dX、 al 、di * ds
+ esBtruCtregval sreg+sre
g、ax x 0x600;     5ysintを
用いてスクリーンをクリアsyeg、cx w 0xl
OOIt first;sreg−dx =t (Ox
lOO’米1ast) + 0x50;sreg、 b
x = OxOγ00;5ysint (OxlO+ 
&sreg、 &sreg) ;DTCLEAR,C8
51023 本ルーチンはすべてのプロセスをクリアしDT2801
をリセツト$1nclude ’dthead、h”d
tclearfン dtstop();              命令
の停止二ommandwajt;          
  レディフラッグを待つoutpartb (DTC
8R,0XQI );   指令をクリアDTERRO
R,C’               851023
dterror()はデータ翻訳ボードのエラーレジス
タをデコードしな診断をプリントークトする。本ルーチ
ンはエラー発生故に呼出されねばならない。又本ルーチ
ンによりdtclear□が呼び出5bort  i、
  errorl、  error2;if (inp
ortb(DTC8R) & ERROR)prinR
(”DT213QI Composite error
 flag detected\dtStOpO;  
          実行指令の停止C0mIn1In
(]Wa l t;           レディ72
ノグを待つoutportb(DTC8R,0x02)
;   エラー指令の読取r e Q d Wa 1 
t+            レディ7ラツグを待つe
rrorl = 1nportb(DTDAT ) ;
r eadwa I L :            
レディフラッグを待つerror2  w  1npo
rtb(DTD、AT );1f  (errorl 
& 0xQl )printf (’−−Error 
O: Re5erved ’Jl’);if  (er
rorl  11.0XO2)printf (’ −
−Error l: Command 0VerWr1
te errorif (errorl & 0x04
 )printf (”−−Error 2; C1o
ck set error\n”);if (erro
rl k 0xOB )printf (”−−Err
or 3: Digital port 5elect
 errc)T\if (errorl & 0xlO
)printf (” =Error 4: Digi
tal nort set arrnr\n’)。 if  (errorl 8c  0x20  )pr
+ntf’  (’−Error  5:  DAC5
elect error\n’ ) ;if  (er
rorl為 0x40  )prlntf (”−Er
ror 6:  DACclock error\シ)
;if  (errorl & 0xBO)print
f (”−−Error 7: DAC@ conve
rsions error\n1);if  (Err
or2 & 0xO1)printf (” −−Er
ror B: ADCchannel  error\
n”):if  (qrror2 & 0x02  )
printf  (”−=Error  9:  AD
Cgain  error  XT1’);if  (
errorZ & 0x04  )printf (”
 −−Error  10:  ADCclock e
rror \n1);if  (errorZ & 0
x08  )pr=ntf  (”−−Error  
11:  AI)Cmultiplexer  err
or  \n’);1f  (Error2  &  
QXIO)prlntf (’ = Error 12
:  ADCi conversions error
′Xn″);lf  (errorZ & 0x20 
 )printf (” −−Error 13:  
Data where commandpr+ntf 
(’ −−Error 14: Re5ervedXn
’);if (Error2 、!c 0x80 )p
rxntf (”−Error 15: Re5erv
edXn’);dtclear(1;   米=1ea
r error flag 来DT2801ボードをリ
セットするプログラム。好適なセントアップ指令は入出
力指令を[史用する前に実行されねばならない。 1inelude ”dLhead、 h”dt、re
set、() ・5tlnrt l+ outporLb(DTcSR,(h:of);   
命令の停止i = 1nportb (DTDAT);
    読み取りレジスタ内(ニテータを放出whi1
g (!((1nportb(DTcSR)) & R
EADYλ) レディフラッグの0utpOrtb(D
TcSR,0xOO);   命令のリセットwhil
e (!((inportb(DTcSR)) 3c 
O[3F’ ))   OBF 7ラツグの11inp
ortb (DTDAT);    読み取りレジスタ
内にデータを放出i = 1nportb (DTcS
R);while (!((inportb(DTcS
R)) & RPADY))  レディフラッグのDT
ST’OP、CB51023 dtstopHはすべての処理を停止させるもので、連
続するブロックモードに対し出口機能を与える。 1inelu+1e ”dthead、h’dLsto
p() outportb(DTcSR,0XOF);   指
令の停止・・・ 待機の必要なしjnporもb(DT
DAT);    データレジスタを空(ニしデータを
放出すDWRPORT、C851023 dwrport()は2このディジタルI10ボートの
両方に対し16トデータを書き出す。17’Oボートの
I10モードは本ルーチン実(二8etportを用い
てセットされねばならない。 $tnclude ”6thend、h’awrpor
t (port、 data)unslgned +n
t data;int、port; unslIi(led char 1()W、 111
g11+low = data & 0xOOFF;h
lgll =  (data  &  0xFFOO)
>ン 8;swjtCh (port) 【 case  s: com+nandwa 1 t :    レディ7ラ
ソグの待機qutportb (DTcSR,0x07
 );   指令の]出しvrxtewait;   
 入カバンファがフルの間待機outportb(DT
DAT、 0x02 ) :    ボートセレクトデ
ータwritewaxt、:    入カバノフ1がフ
ルの間待機ouLportb(DTDA’r、 low
 );    データの出力writewaiL: outporLb(1)TDAT、旧gh);r8ak
i case  11: cononandwalt;    レディフラッグの
待機ouLporLb (r)’L”CuR,Ox8”
7 ) iW r l tewa i L : outporLb(D’l’l)A’l’、 0XO2
);writ+l1wait;入カバソファがフルの間
t+ u t p Or t b (DT DAT +
 l OW ) :writeWalLr outportb(DTDAT、  higハ );b
reak; default: prlntf (’Illegal dwrportf
) port numberXn”);return 
 (−1); break: commandwait; if、 (1nportb(DTcSR) &l +E
RROR)printf(’Wrport error
 −−’);d terror(1; return  (−1): 1se return  (Q); MOVECU、C851Q2’3 本手1ifiによりカーソルが1行11列1方向へ移動
されるmovecursor  (row、  col
umn)Int  row、colunon; struct reHval (1nt aX+ bx
、 ax、 dx、 811 dt、 ds。 5truct  regvaL  sreg;sreg
、ax = 0x200; sreg、dx w (OxlOO木row) + c
olumn;S r e g −bX ” O; 5ys1nt (OxlO,&sreg、 &areg
);SETADC,C851023 setadc(schanneL、 echanneL
、 gain、 mode)はA/D変を開始する。 
5channelとechannalは夫々変換のため
チャネルを開始、終了させ、gain 1iadc ゲ
インであり、リーガルは夫々ゲイy l、 2.4.8
に相当するO〜3であるomodeは2トフラツグを含
む短かいモードであり、ビット0により外部ククがオン
オフされビット1により外部トリガがオンオフされる。 $1nclu+ie ’dthead、h’5etad
c(5channal、 echflnnel、 g+
+in、 mode、 reads)s b Orも5
channel、  echanneL  gain、
 mode;lnt reads; COm+nandWal t;           
   レディ7ラノグの待機ouLportb(DTC
3R,0xOD);adcパラメータ指令のセラvri
tewaiN                 デー
タがレディ状態となるまoutportb(DTDAT
、  gain):       ゲインの七vトWr
 l teWa l t:             
   データがレディ状態となるまoutporLb(
D’rDAT、 5chnnnel);     開始
チャンネルのセットWr I tewa I t:  
              データがレディ状態とな
るまoutporLb(DTDAT、  echann
el):     終了チャンネルのセットWrlt8
Walt;              推定せよou
tportb(DTDAT、  reads & 0x
OOFF);    変換数のセットWr 1 tew
a 1 tt               単調です
ね?outportb(DTDAT、  reads 
& 0XFFOO);     ダミー数の、L位パイ
commandwai t ;           
  レディフラッグの待機if (inportb(D
TC8R) & ERROR)    エラーチェック
printf(’5tartadc() error−
−”);dterror(); return(−1) ; lse commnndvai t ;           
 +、回レしィ72ノグの待outportb(DTC
8R,((mode << 6)  l OxOg))
;モードビットの移 return(0) ; 8E’[’CLOCK、C851023setcLoc
k(period) l:、よ1ノ内部クロックの周期
が(5μ5ec)にトされる。単チヤンネルマルチプル
D/Aに対しては周期68μsec最小イ直であり、2
チヤンネルマルチプルD/A l:対しては周期121
eCが最小値であり、マルチプルA/pに対しては周期
75μsecが小値である。 1include ’dthead、h”5etclo
ck(perxod) int perlod; short low、 higl]; low = 0xoOFF & period;hig
b  w  (OxF[i’OO&  period)
  ン〉 8;00mmandWait;      
     レディフラッグの待機c)u tpor t
b(DTC8R,0x03) ;    クロック指令
のセクトwritewa1t;           
 入力がレディとなるまで待機1〕u tpor tt
)(DTDAT、 、low) :     下位バイ
ト出力writewaxt;            
 再び待機outportb(D’rDAT、  hi
gh);     上位バイト出力COmmandWa
lt;           L’ディ7ラツグの待機
if (inportb(DTC8R) & ERRO
R)printf(”5etclock error 
−−”);dterror() : return(−1) ; 1se return(0); アクプされる0 0   非トリガ出力ポート0 1   非トリガ出力ポート0 2   非(リガ入力ポート0と1 3    トリガ入力ポート0 4    トリガ入力ボート1 5    トリガ入力ポート0と1 6   非トリガ出力ポート0 )   非トリガ出力ポート1 8   非トリガ出力ポート0と1 9    トリガ出力ポート0 10    トリガ出力ポート1 11トリガ出力ポートOと1 本ルーチンにより、成功すればOへそうでなければ−l
へ戻int mode; switch  (mode) case  O: tq1ti]u  (!(inpbrtb(D1’Cj
jR)  & 11r+、:ADY))outport
b(D’rCOR+  0x04);whilo  (
inporl、h(l’)’l’c!’IR)  & 
 +BI+’)outportb(DTDAT、0XO
O);braak; castl 1: while  (!(inportb(DTC8R)&
 READY))011tpOrtb(DTC8R,0
x04);whlle  (inportb(DTC8
R)&  IBF )outportb(DTDAT、
0xO1);break; CaSθ 2; whzle  (!(jr+portb(DT08R)
& RgAT)Y))outportb(DTC8R,
0x04);while  (inportb(DTC
8R)&  IBF )OutpOrtb(DTDAT
、0XO2);break; case  3: whlle  (!(inportb(DTC8R)&
 READY))outportb(DTC8R,0x
84);while  (inportb(DTC8R
)&  IBF)o;+tportb(DTIMr、0
xOO);break+ case  4: while (!(+nportb(Di’C3H)r
k  I(にAt)Y))ooLportb(D’rC
8R,0x84) :whil++  (jnport
b(DTC3R)  &  I[]F)ouLport
b(DTDAT、0XOL);b r e a k ; oas85: whH8(!(inpQrtb(DTC8R)& HE
ADY))outportb(DTC8R,,0XB4
);while (inportb(DTC8R)& 
TBF)oI+Lportb(DTDAT、0x02)
;break; case  6: while <!(jnportb(DTC8R) &
 ’READY))outportb(DTC8R,0
x05);while ((inportb(DTC8
R)) & IBF)outportb(DTDAT、
0xOO);break; outporLb(1)’f’cE[,0x05):w
bile (1npor tb(DTC8R) & r
BF )011 LporL+>(1)’l’l)^’
l’、 0XOI);break: Ca5O8:。 wbtle  (!(xnportb(DTC8R)&
 R1ηAr1Y))ouvporLb(DTC8R,
0XO5);while  (inporLb(DTC
8R)  &  IBF)outportb(DTDA
TI  0XO2);break; case  9: while (!(inportb(DTC8R)& 
READY))outportb(DTC8R,0x8
5);while  (inportb(DTC8R)
&  TBF)outportb(DTDAT、0xO
O);braak1 case  10: while (!(inpartb(DTC8R) &
 R1?ADY))outportb(DTC8R,0
X85);wbile (jnportb(DTC8R
) & IBF)OutpOrtb(DTDAT、  
 0XQI):hra角し: case  11: wbile  (!(inportb(DTC8R) 
 &  RにAr)Y))outporLb(DTC8
R,0x85);while  (inporLb(D
″r08R)&  TBF )outporLb(DT
DA’r、0x02);break; defaulL: printf (Jllegal DIOn+ode 
detected in 5etport八n’);r
eturn  (−1); break; while (!(1nporLb(D’rC8R)&
 READY))1f (inportb (DTC8
R)& Ii:RROR)prxntf (Jn 5e
tport:  ”);dterror(); return  (−1); 本ル〜チンC二よりTecmFlr Lab Te++
der Boardの’7/レチテヤン不ルDACが作
動される。 $defxne BAI 0x330 1tdac  (channel、value)1nt
  channel、  value;static 
 znt  muxsel=o ;muxsel &=
 0xE7;           両mu、xをディ
エーブルにoutportb  (BASE+4.mu
Xsel):muxsel &= 0XF8;    
       チャンネル変更muxsel l= c
hannel & 0XO7;outportb (B
ASE+4. muxsel);outportb (
BASE4−5. value);     データ出
力if ((channel & 0x08) == 
O)    好適なnnuxをイネーブルにmuxse
l l= 0x08; lse muxsel l= 0xlO; outporLb  (BASE+4.   muxs
el);;    IN’rCONTL、ASM   
                    85111
Bクルトル    割込サポートパッケージmode1
.hを含む prologue、hを含む 公開 pnable−1nterrLrpta公開di
sable−interruptsenable  1
nterrupts    proc’   near
ti et enllble  1nterrupts    en
dpdisable−interrupts   pr
oc    nearli et disable  1nterrupts    en
dpepilogue、hを含む nd ;   lNTR8ERV、ASM         
             85111B; 本ルーチ
ンは割込に付設されるCルーチンを入力する前にコード
; アップを処理する。又出口コードも処理する。 model、hを含む ;   タイトル′割込サポートパッケージtprol
ogue、hを含む ;    1ntrinit、cにより与えられる本ル
ーチンの初期値設定;   次の入口点に達するとき ;    1ntrinit l:より生成されたコー
ドを笑イテし;   次の状態がX(希ff1)なら;
csはコンピュータによるCS値にセットされ;   
リターンアドレス点を下記を含む領域へセット0、 s
pとS!1を退避させる場所 41必要なスタックサイズ 61データセグメント値 8、実行する機能のアドレス Qcode ends Qdatab    seg+nentextrn h
eaptop:wordsaveslze  dw  
0 Qdatab    ends Goode segment ;   割込サービスルーチンの入口点up   eq
u   8 公開 1ntrserv intrserv   proa farpush a
s push es push di push bp mOV  L)plsp      するとスタックが
見えるLes  di、dword ptr ap(b
p)mov  es:(dt)、sp mov  es:2(di)、ss mov  ds、es:6(di)      データ
セグメントのセットif   13b1gmode1 mov  S!l、 heaptop+2    スタ
ックのセグメントlse mov  ss、es:6(di)      スタッ
クのセグメントeodH’ mov  sp、es:4!−dj) ad+ISp、SaV+311izu mOV  ’5avasizo、 +Jpadd  s
p、J+eaptop push ax p++Oh  bX pust+ cx puab dx p++sb  s+ push  0s pusb di 「口()vfip+5p if:    tablBmpdal call  dsord  par es:8(di)
1se pop  di pop   as pop   51 pop  dx pop   CX pop  bx pop   ax mov  sp、es:4(di)      次の呼
出t:rLiy’!整sub   5avesize、
sp mov  ss、es:2(di) +nov  sp、es:(di) pop   bp pop  di pOp  as pop  ds add  sp、4 iret        すべて完了 ir+もrserv ’  endp epllogすθ浦を含む 終了 ;  IRQSERV、ASM           
   851118; ハードウェア割込に特定する以
外lNTR8ERV、ASMと同じmoclel、hを
含む ;   タイトル IIRQ割込サポーすパッケージ′
prologue、 hを含む r    1rqinltにより生成されたコードを実
行し;   下記状態が真(希gl)なら ;C3はコツピユータによるcsj直にセットされ; 
  リターンアドレス点は下記を含む領域へセットさn
る0、 spとssを退避させる場所 41 2吸なスタックナイズ 61  データセグメント値 8、実行する機能のアドレス Gcode      ends Qdatab     segmentextrn−M
aptOp二Word savesize  dw      0Qdatab
      ends L3code     segme’nt;    r
RQllj込サービスルーチンの入口ap   equ
    8 pubi ic    1rqservzrqserv
    proa    farcli       
        外部割込をディスエーブルするpus
h    da push      (3B push    dl push      bp mov     bp、sp        するとス
タックがみえるles     di、dword p
trm□v     es:(di) 、spmov 
  、   8S:2(dt)、S5mov     
 da、es:6(di)     データセグメント
のセントアップif     Gbigmodel mOV    83. heaptop+2    ス
タックのセグメントlse mov    5s、es:6(di)     スタ
ックのセグメントndir rnov    sp、esIA(di〕add   
  sp+savestzemOV      8aV
lISIZ9+5padd      sp、heap
toppush     ax push     bx push      ax push      dx push     5i push      es push     di mOV     bp+Jp sti                外部割込をイ
ネーブルするGbigmodel chll    award ptr es:8(di
)call    word ptr 8(di)。1
1                 外部割込をディ
スエーブルするmov    al、  20h   
     割込の終了を8259へ送るout    
20h、 al り01)      di 1)01)       Qs pop       5i Pop     dx 1)OP       C! pOp     bx pop       ax mov     sp、es:4(di)      
次の呼出にN−を八個tsub      5aves
ize、、spmov     ss、es:2(di
)mov     sp、as:(di)pop   
   bp pop     di pOI)      es pop 、     (IS add      sp 、 4 stl                 外部割込を
イネーブル1ret           すべて完了
1rqserv     endp lnclude    gpilogue、hnd IN’rRrNIT、C851118 割込処理(:対する初期値設定を行なう$1nclud
e   ’5tdio、h’unsigned cha
r米allocH;機能1ntracrv、 asrn
を必要とする5truct intrcode( unsigned char farcall:   
 遠呼出opcodeを含むint (米farip)
 (C遠呼出ip値jifndef −c86−BIG unslgned farcs;      遠呼出の
08値ヰendif unsigned 5avesp:       sp
値の退避場所unsigned 5avess:   
    ds値の退社場所unsigned 5tac
s1ze;      所9スタソクノハイト数uns
igned fardsi     所lds値int
 (来farfunc)0:       実行される
べきオ幾能); 1definむ5IZE IC(sizeof(str
uct 1ntrcode))intrinit(fu
nc、5tack’、 vecno)int 昧fun
c) 0:          割込を処理する機能u
nsigned 5tacL         イ幾能
の必要とするスタックのバunsigned VeCn
O+         割込トラップのベクトル数【 unsigned char 釆ustack;5tr
uat 1ntrcode *icp+extern 
1ntrserv(1;      コyピユータのサ
ービス機能5truct  tint as、ss、d
s、es;l  Segreg5;  セグメントレジ
スタをsegread(&segregs) :   
   csおよびds値を得る1cp=alloc(S
IZE IC);     これは割込開始場所1ap
−)farcall=ox9a;      直接セグ
メント間呼出1cp−ンfarip=intrserv
;     割込サービスルーチンのアドレわイnde
f’  C60BIO lCp−>farc’s=segreg8.C3+  
    O3値を得ろendH icp−ンraras=segregs 、ds +1
f(stack<0x80)stack=ox80; 
    mdosはこれを必要と11Cp−>s ta
cs 1ze=s tack ;1cp−ンfarfu
nc=func;       実行したい機能pok
ew(vecno末4.O+1cp);       
 ’ffJΔペクト)しのlyドア1.、フt11fd
ef −C60BIQ pokew(vecno*a+2.o、((unsig
ned  tong)icp)ン>16);else pokew(vecno 釆a+ 2 + O+ t3
e grlilgs 、ds ) +        
’1 f) 5 ))す1end i r 来米未来来来米来米来*:未来来来来来米木来木米木米
来来来釆来末米来本未 INTRLINK、C来              
          840815本        
    改訂 85111s釆米来*釆未来来来来来釆 本手順::よりC機能を割込と結合しC機能から該割込
の結合を解する2手順が与えられる。2手順によりCル
ーチンが適切に短か保たれる。 Cルーチンが短かく所定のポイントに 本手順は下記のルーチンを呼び出す: 1rqinit enable in’terruptsdisable
 1nterruptsアーギユメント 機能       、=FN=  割込に対し結合され
るべよC1nt 5tack−space = INT
 =  同機能に必要なスタック空間少なくとも512
バイトが望ま int number    w IN’r w  C
機能に対しタスク生成したIz%汎用変数: なし 局所変数: 1nterrupt(256)= STR=  オリ2
ナル割込ベクトルを体の配列 オリジナル割込ベクトル enable−mask(16) w US =lIR
Q割込をイネーフ゛ルζ;する(割込 8〜15) 定数: 工、R18259の割込マスクレジスタ未来*−来来来
*+来来来来来来 1define  IMR0xO021割込マスクレジ
スタ5truct  int off seg  (u
nsigned 5hort  original o
ffs’et。 original  segment;  1stat
ic  5truct  int−off−sag  
 1nterrupt (256);5tatic  
unsigned  5hort  enable−n
Iask(16)=10.0,0,0,0,0,0,0
.0x00fe、0x00fd、0x00fb、0xO
Of7,0xOOef。 0x00df、0xOObf、0xO07f l;5t
atic  unsigned 5hort  dis
able mask(16) =i 0,0,0,0,
0,0,0,0.0X0001,0X0002,0X0
004,0X000B、0XOOIO。 0x0020,0xO040,0xO0801;1in
k  to−interrupt(function、
  int 5tack 5pace、  1nt−1
nt  (−*function)() +  int
 5tack 5pace、  int−number
;【 int−number 来4.     Q  );1
nterrupt (1nt number )、or
iginal segment =  peek(in
t−number 来4+2.0);if(int−n
umber > 7  &&  int−number
 < 16  )irqinit(function、
  int 5tack 5pace、 1nt−ou
tportb(IMR,1nportb(IMR)  
&  enable−(int number ) )
; else  1ntrinit(function、 
 int 5tackspace、  1ntenab
le  1nterrupts();unlink、f
rom jnterrupt(Int−number 
 )unsigned  5hort   int  
number;disable−1nterrupts
□;if(int number > ’7  && 
 int nunober < 16  )outpo
rtb(IMR,,1nportb(IMR)  1d
isable mask(int−number ) 
 );pokew(int−number  米4. 
   O,1nterrupt  (int−orig
inajoffset ); poked(int number lk 4 + 2
. o+  tnte’rrupt (1nt−)、o
riginal−segment );enable 
 1nterrupts();1RQTNIT、CB5
111B 本ルーチンによりIRQ割込処理に刻し初期値設定が行
なわれる11nclude   ”5tdio、h”u
nsigned char釆allacT );機能1
rqSsrv、 asmが必要である5truct i
ntrcode( unsigned char farcall:   
遠呼出opcodeを含むint (未farip) 
f);       遠呼出の1p値jifndef 
−Ca6 BIC! unsigned farcs;       遠呼出
の08値endif unslgnea 5avesp:       5p
(riを退避させる場所unsignea Ba’1e
8Br       aJi値を退避させる場所uns
igned 5taC8iZe+     所要スタッ
クのバイト数unsigned fard5;    
   所lds値int (本farfunc) [l
;     実行されるべき機能1; $define 5IZlle−IC(sizeofi
rqinit(runc、5tack、vecno)i
r+t (未func) H;         割込
を処理する機能unsigned 5tack;   
      機能の必要とするスタックのバイト数un
signed vecno;         割込ト
ラップのベクトル番号unsigned char *
ustack;5tructintrσode未I C
p ;extern 1rqserv(1;     
  ”ピユータのIRQサービス機能5truct (
int Ca、881d8+85+1セグメントレジス
タを得るため 3Cgread (&segregs) ;     
csおよびds値を得る1cp=alloc(SIZE
−IC) ;     これは割込開始場所1cp−ン
farcall=ox9a;      K接セグメン
ト間呼出tcp−>faripxirqaervHIR
Q割込サービスルーチンのアドレス11fndef−C
86BIG icp−>farcsxsegregs;cs;   
  ds値を得る$endir icp−ンfards町egregs、da ;1f(
stack<0x80)stack()x80;   
 mdosにはこれが必要1cp−>staCslze
mstacLiap−>far funamfunc;
        実行したい機能pokew(vecn
o来4,0.Lap);      割込ベクトルのセ
クトアップ1Hclor−o86 )3LO pokow(vucno*+02.O+((t+ns+
B+uu1 1o++gllop)ン>36);u18
u pohew(vecno本4+2 、O、segreH
s 、da ) ;      そのとおりendir
[Detailed Description of the Invention] (Industrial Application Field) The present invention provides a method for treating patients in response to changes in their physiological and morphological conditions.
It relates to medical robots that operate actuating devices for patients, especially patients.
arthroscopic surgery
such as those that can serve as limb-acting devices to assist in performing the procedure.
Regarding high-precision medical robots. "Robot" is the name of the American Robotics Association (Ro-bot).
by ENGINEERING 5TITUTE OF AMERICA)
If so, various programs can execute predetermined operations and
Operate supplies, tools or other compatible equipment to perform various tasks.
A reprogrammable multi-function operating device and
is justified. Also, it is predicted that "high-precision robots"
perform various tasks in the same manner as humans under various conditions, including conditions in which
It is defined as a multi-functional mechanical device that can perform many tasks. child
In this case, high precision robots are used as assistive devices in the surgical field.
function, reduce surgical costs, and improve medical or diagnostic
It will be effectively used as a medical robot that can improve quality. Generally, medical treatment or
Costs necessary to maintain the same quality of treatment and health management
The costs required to improve the economy are rapidly increasing compared to society's ability to pay.
It's growing. It also accounts for approximately 80% of the costs of many acute care hospitals.
is accounted for by personnel expenses. Currently, most labor in hospitals
Force can be used for routine, repetitive tasks that can be automated or automated.
It is assigned. Therefore (already used in the manufacturing industry)
) Adopting high-precision robots for health management will save labor.
It is possible to reduce costs. On the other hand, most medical or surgical treatments are currently performed by humans.
We've reached our limit. For example, microstructures or extremely large
Accurate and constant treatment of large tissues over a long period of time
is extremely difficult for humans. In this case a high precision robot
By developing and adopting it in medical or surgical operations.
, to carry out treatments or diagnoses that exceed the limits of human ability.
and improve quality. Also an emergency care hospital
, staff or patients may be exposed to various hazardous environments or
are drugs, e.g. radiation, sterile conditions, toxic gases, antitumor
In addition, sterility, infectious agents, and excess barium are present in the drug.
There is a risk of exposure to the environment. In such cases
High-precision robots can help staff or patients
It is effectively used to avoid such dangers. (Prior art) Reproduction of parts, tools, or specialized equipment to perform various jobs.
Health management with a programmable structure and multifunctional operation
The use of equipment is well known to those skilled in the art. healthy again
Execute programmed actions in management work
It is also well known to those skilled in the art to use devices capable of operating
. The device may be disconnected or malfunctioning.
For prosthetic or erect use for functional performance or augmentation of limbs
Manipulate assistive devices and syringes to control and administer drug doses to patients.
computer-based drug supply device, predetermined program
Exercise equipment operated according to the program, limbs after surgery
Continuous motion forcing device for forced exercise, for disabled people,
A computer-based environmental acclimatization system equipped with industrial robots.
equipment, stress testing machine with Buri program for diagnosis,
remotely controlled handling of harsh materials or extremely small objects.
operator-controlled electric wheelchairs, automatic patient
patient transfer equipment, auxiliary powered operating table in the operating room, patient positioning system
Examples include control equipment, etc. In this case known to the person skilled in the art
Most health management devices do not perform medical functions.
, the important characteristics of robots as defined by the American Robotics Association.
A high-precision medical robot that lacks the least of sexuality
It's hard to say. Here, equipment that performs medical functions refers to equipment that performs medical functions.
Refers to something that can be used to diagnose or treat Qi. Therefore, any of the devices for health management that are well known to those skilled in the art
does not apply to the above-mentioned high-precision medical robots, and
Physiological or morphological parameters of the patient can be determined using appropriate transducers.
detect the parameters, diagnose according to changes in the parameters, and perform necessary
We have not yet developed a medical device that can change treatment as needed. high
Precision medical robots have physiological or morphological parameters and
For example, cut dimensions, size double weight and comparative weight double
Location and contrast locations of various tissues or parts of the human body:
Pressure, force, torque, stress and deformation of various tissues: temperature
; PH; respiratory waveform; electrocardiogram waveform; brain waveform; blood pressure waveform;
Constructed to provide membrane-type signals; blood flow signals; myoelectric signals
It is preferable that Medical robots are used when performing medical treatment such as arthroscopy.
It is suitable as something to assist in. What is arthroscopy? Diagnosis
Or, during corrective surgery, the inside of the joint, such as the usual method, is inserted into the joint.
This refers to opening (visually inspecting) the small cavities of the joints.
Arthroscopes that use optical fibers to provide light inside
, by the orthopedic surgeon directly with the naked eye or with a TV monitor camera.
A complex optical lens mechanism allows you to observe the target area using
Equipped. The surgeon examines the area to be treated through the arthroscope.
While observing the
Insert a vent hole to examine damaged cartilage, bone, and joint tissue.
, excise. Other treatment instruments like electric rotary cutters
can be inserted into the other side of the joint cavity for treatment. this
In order to facilitate observation, inject liquid to expand the target area.
or further to remove items removed during surgery.
Another cavity is opened. Arthroscopy used for knee diagnosis and treatment is versatile.
It is also used for injuries to the ankle, elbow, lower back, and shoulder.
The basic treatment technique is the same as for the joints described above. medical examination
In many fields, arthroscopy is a form of arthroscopy that uses X-rays.
It is rapidly being replaced by one that performs joint cavity imaging.
Ru. This arthroscopy can be used to treat a patient's various joints only in the outside.
The damage can be treated. A loss as heavy as that of a hospitalized patient
Even in the case of a wound, by performing surgery based on arthroscopy.
Immediately able to walk. Arthroscopy techniques are low cost and effective.
Other fields of orthopedics as it allows for more effective diagnosis and treatment
It is also being used for high-precision medical robots.
It was hoped that it would be provided. (Problem to be solved by the invention) However, when performing arthroscopy conventionally, the patient's
Difficulty positioning the raised leg safely, effectively, and accurately
This poses a major problem in providing the best treatment.
there was. For example, a surgeon may hold a patient's limb while
Surgery will be performed using a joint mirror or various equipment.
. In this case, the surgeon moves the patient's limbs and holds them in the desired position.
Although they may work with surgical assistants,
This was a cause of high costs. In this case, the surgeon
Intra-articular
Observation of each tissue in the area is impaired and the quality of the surgery is reduced.
It had become. Diagnostic or arthroscopic examination of the patient's foot
When performing a tourniquet, the doctor should, for example,
in a completely horizontal position at a height that allows blood to drain naturally.
Stretched position, fully bent with the lower part bent about 90 degrees to the upper part
Bent position, lower part 1 bent at an angle of approximately 135 degrees with respect to the upper part.
In a semi-flexed position, move the ankle to the knee of the other leg and
The so-called ``4'', where the feet are placed in a figure 4 shape on a horizontal surface.
The intention is often to move it to a ``character'' position. further surgery
The doctor bends the foot outward in order to visually observe the desired area of the knee.
(or if you want to apply force in the lateral direction)
be. Rotated inside or outside for visual observation
or want to change the patient's foot position from one position to another.
In most cases, the leg can be freely displaced as planned by the surgeon.
There was a need for a device that could i.e. used for surgery and diagnosis
With conventional equipment for arthroscopy and techniques for operating it.
There is a problem that the characteristics of arthroscopy are not fully demonstrated.
In this case, limb movement devices that directly reflect the doctor's intentions are implemented.
If developed, surgical labor would be reduced and diagnosis and treatment time would be reduced.
Time can be reduced and, in many cases, a surgical assistant may not be necessary. It also improves maintenance and consistency of diagnosis and treatment quality.
Good morning. On the other hand, when directly controlling limb movement devices, there is a different method in the operating room.
This may cause problems. In other words, the surgical environment is kept sterile.
the operating device so that it can be controlled by the surgeon.
There is a need to. This problem is caused by the patient's limb movement device itself.
In many cases, surgeons have to
without compromising sterility and without physical contact with
Limb movement device without taking your eyes or hands off your hands
It is desirable to be able to control the That is, maintaining sterile conditions.
Operate Rondo, manual switch, foot switch at the same time as holding
switch, lead-through or
directly controls limb motion devices through power lead-through
It is desirable to make the device operational without having to do so. others
Voice-controlled operating devices allow surgeons to use both hands and
Now that my eyes are free, I can concentrate on the surgery. However, traditional voice control configurations cannot be used in this type of medical device.
When applied, recognition accuracy is particularly high when there are various types of noise in the surroundings.
In general, the response operation time by voice command is long.
It was therefore unsuitable for medical use. Typical speech recognition configurations are subject to time and state 1 constraints.
Therefore, human speech cannot be recognized accurately and speech recognition may fail.
In case of failure, control devices such as devices for moving the patient's limbs.
The device must be corrected by the operator. Suitable for medical equipment
As a voice control configuration, even when voice recognition fails,
, this can be corrected and controlled effectively and reliably, and without delay.
Something that can be operated is required. Additionally, traditional voice control configurations pose other problems for medical devices.
can't be solved either. For example, there was noise in the operating room.
It is highly selective when multiple people are talking at the same time.
A new audio collection device is required. Also, such voice collecting device
It is necessary to ensure that the sterility of the operating room is not compromised by
be. When using a well-known microphone, the patient's head
or between the microphone attached to the body and the audio control circuit.
Because of the presence of connecting lines in the
There is a risk that sterility in the operating room may be compromised.
be. In addition, the surgical masks worn by surgical staff are
Do not use the audio collection device as the audio may be muted or muffled.
This distortion can be avoided without compromising the sterility prevention effect of the surgical mask.
It also needs to be corrected. There is also a place to attach an existing surgical mask.
It is also necessary to take into account differences in the shape of the face, the way the mask is attached, etc.
be. (Means for Solving the Problems) The present invention responds to changes in the physiological or ecological state of a patient.
The patient's physiological or
detects the ecological state and represents the corresponding treatment condition.
a treatment condition detection device that generates a treatment condition signal;
Detects the position of the actuating device relative to the patient and positions it accordingly.
A position detection device that outputs a position signal, a treatment condition signal and
Input the position signal and adjust the treatment condition signal and the patient's desired physiological or
The system compares signals representing the biological state and provides the patient with the desired physiology.
- determining the position of the actuating device to provide an ecological condition;
A signal processing device that generates a position control signal that represents this position
and moves the actuating device to the determined position in response to the position control signal.
and a positioning device for positioning. Here,
``dynamic device'' means a device that produces a desired physiological or ecological effect.
Point. According to another embodiment of the invention, the patient's physiological and ecological
A device is provided for detecting and changing the condition, and the device includes a
a treatment condition detection device, as described above, and a patient control signal in response to a control signal;
an actuating device and a position that provides the desired physiological and ecological state of the
It includes a detection device, a signal processing device and a positioning device.
It will be done. In the signal processing device, the patient's desired physiological
, which determines the ecological state and generates signals representing this.
obtain. The signal processing device also determines the desired physiological and ecological state of the patient.
Determine the operating state of the actuating device that can give the
Generates a control signal so that the actuating device can achieve a predetermined operating state.
It is composed of sea urchins. In the signal processing device, the position control signal of the actuating device is
A signal with a predetermined range that represents the safe operating position of the drive device.
The position control signal is out of the safe area.
When the transmission of position control signals to the positioning device is stopped.
It is configured as follows. Similarly, in signal processing equipment,
Where the control signal of the actuating device indicates the safe operating condition of the actuating device.
The control signal for the actuator is compared to a signal with a certain range.
control to the actuating device when is outside the predetermined range of the safety signal.
The signal transmission is configured to be stopped. Furthermore, in the signal processing device, preferably a separate actuating device is used.
a predetermined range of operating positions and different operating states of the operating device.
A predetermined range of these predetermined operating positions and
to the patient through a range of operating conditions or a combination of these.
The physiological, ecological, and effects of
Actions that provide optimal physiological and ecological conditions to patients
The operating position and operating state of the device are selected and the operating position and
and a corresponding control signal for the actuating device is generated.
It is composed of sea urchins. According to a particularly preferred embodiment of the invention, the patient's limbs are
Positions as needed and responds to gripping control signals
Equipped with a gripping and moving device that moves the limbs to the desired position.
A patient limb motion device is provided. This limb motion device
The position of the limbs when being grasped by the grasping and moving device is
Detects and generates a limb position signal representing the limb position
A position sensing device is included. In addition, the movement devices of the limbs include
The limb position signal is a signal representing a selected limb position.
Compare and move the limb from the detected position to the selected position
Determines the movement path for the gripping and movement device, generates a control signal, and
(Secondly, the limbs are selected from the detected positions along the movement route.)
A signal processing device is included for moving the signal to the desired position. In limb motion devices, control signals are
and the position of the limb (i.e. the anatomical natural position)
If the control signal is outside the specified safe range compared to the signal within the specified range.
to stop supplying the control signal to the gripping and moving device when
It is composed of According to yet another embodiment of the invention, for diagnosis or treatment.
A method of operating a part of a living body is provided. How this works
The method includes a step of positioning an actuating device with respect to a part of the living body;
The process of monitoring the physiological and ecological status of the patient and the
The position of a part of the living organism that brings about the desired change in physical and ecological conditions.
The process of determining the position and driving the operating device to the determined position.
The method includes a step of positioning a part of the living body. (Function) According to the present invention configured as described above, especially when a surgeon
When administering treatment, the surgeon does not have to move the patient directly.
a person's affected area can be positioned at will in a predetermined position.
Realize the action. (Example) Figure 1: Two main features of the high-precision medical robot of the present invention
A block diagram of the operating parts is shown, and this medical robot
responds to changes in the patient's physiological and ecological status,
actuating device 10 (e.g., tissue constrictor, laser, electric
operating or operating diagnostic or therapeutic equipment, etc.
An operating device for changing the operating state is included. This operation
The device detects the desired physiological and ecological state of the patient and
output an electronically readable signal representative of the treatment condition of
A treatment condition detection device 14 is included. Treatment condition inspection
The output device 14 is, for example, an electronic thermometer that detects the patient's body temperature.
Blood pressure sensor to detect patient's blood pressure, set of affected parts of patient's body
X-ray device, nuclear magnetic imaging device, positron to detect the position of the tissue
Emission scanner or fluoroscope, patient's electrocardiogram, brain waves
shape, electrodes that detect myoelectric signals or electroretinectal responses,
Sensors that determine the position of the limbs, pressure in the patient's tissues or
is a pressure sensor that detects respiratory waveforms. The operating device has
Furthermore, the position of the actuating device lO with respect to the patient is detected and
to output an electronically readable position signal representing the position
a position detection device, preferably a computer 18.
A signal processing device is included. The computer 18 includes the treatment condition detection device 14 and the position detection device 14.
Input the treatment condition signal and position signal from the output device 16.
, representing treatment condition signals and the patient's desired physiological and ecological state.
the patient's desired physiological and ecological state.
Shifting or movement of the actuating device 1° to other positions capable of giving
Determine the operating state and express its position and operating state, respectively.
Generate position control signals or treatment condition control signals to perform operations.
such as to give the working device 10 its position or operating state.
Output is generated. Position signals and actuator control signals
When sent, there is a transition to the position corresponding to the position signal.
or before setting the computer to the operating state according to the treatment condition signal.
These signals and the safety of actuating device 10 are first connected by computer 18.
Preprints representing all predetermined ranges of position and operating conditions.
The programmed signals are compared. position signal or
This occurs when the actuator control signal is outside the predetermined safety range.
These signals will not be output and excessive force may be applied to the patient.
Prevented. On the other hand, the computer 18 controls the predetermined safety range.
within the patient's surroundings and provide the patient with the desired physiological and ecological conditions.
the position or operating state of the actuating device 10 that may be given;
is required to find its permissible position or state. However, the computer 18 uses the software described below.
programmed with software. The software has
Scrap planer 20, feature extraction unit 22, input/output processor 2
4 and an execution controller 26. in this case,
The treatment condition signal from the treatment condition detection device 14 is preprocessed.
Before being processed by the processor 28 and sent to the feature extraction unit 22
noise is removed from the signal. Also Buri Processor 2
8, from the environmental safety sensor f30 to the patient control device.
Representing a hazard such as interference or interference with electronic
A readable signal and an operator exchanger 32 will be described later.
Actuating device 1 during surgery, which is activated by such an operation.
electronically readable indicative of desired position or operating state of 0;
The available signals are input. As the converter 32,
Suitable voice recognition device and operation to be placed in a germ-free operating room
Rondo, foot control devices, etc. may be used. Feature extraction unit 22
As a result, only the characteristic parts of the signal of interest at that time can be recognized.
The signal bandwidth is reduced.
Ru. The signal that has passed through the feature extraction unit 22 is sent to the task planar 20.
The task planar 2゜ is translated by the execution controller 2.
Generate control signals suitable for implementation by 6. One-way output
Blosset f 24 Nyoshitashu prana 20 is alarm 3
4 and the display/control unit 36. Alarm 34
(which may be audible, visible or a mixture of both)
the surgeon or operator when in a dangerous operating condition.
A warning will be given for. As the display control section 36,
to inform the operator of a specific condition, or to indicate the position of the actuating device 10.
A visual indicator that displays information indicating the location or operating status.
, audible indicators such as speech synthesizers, video display devices, etc.
is used. The control unit controls the operation of the actuating device 10.
Control voice recognition device, foot switch, special key back
(specialized keypads),
Operation rondo etc. are used. On the other hand, the execution controller 26
In part, when a predetermined position is determined by a computer
, actuating device in response to position control signals from computer 18.
It also functions as a positioning device for positioning the device 10. Execution controller 26 also receives control from computer 18.
Sending a signal to the actuating device 10 to bring the actuating device 10 into the desired operating state
It functions to make it happen. Preferred limb motion devices are suitable for hand and foot motion during surgeries such as arthroscopy.
Although the patient's limbs are moved according to the instructions of the surgeon,
The actuating device changes to the human body in response to changes in the body's physiological and ecological conditions.
positioning or activating a portion of the
A wide range of health care components that provide the desired physiological and ecological conditions
It can be applied to the field. First, the configuration and operation of the limb movement device of the present invention,
Or if necessary, the assistant can operate and arrange the
Software controlling the operation of the preferred embodiment of the invention
Let me explain about a. Structure and operation The limb movement device 38 shown in FIGS. 2 to 6 has seven displacements.
It has degrees of freedom, four of which are hydraulically operated, and the remaining
Atmospheric pressure is used for these three. The limb operating device 38 is a hand
Attached to the rail 40 on the side of the standard surgical table 42 in the operating room.
Can be set. Hydraulic series that drives the limb operating device 38
The controller is operated by a hydraulic pump device housed in the control box 44.
Operation controlled. On the other hand, the force that drives the limb operating device 38 is
The pressure cylinder is a pneumatic servo device housed in the control box 44.
46, and its air pressure source is normally installed in the operating room.
such as installed gas supply pipes or gas cylinders.
A compressed source of 40-60 psi is used. I
BM Hersonal Computer 18 (signal processing device)
) is connected to the control box 44 to control the electromechanical structure of the control box 44.
A control signal is provided to the component element. One degree of freedom of displacement of the limb operating device 38 is shown in particular in FIG.
provided by the layered structure 48 shown. Limb movement device 3
A device for fixing 8 to the table 42 is also attached to the layered structure 48.
has been done. The device for fixing the limb operating device 38 is
The notch 50 formed in the attachment block 52 and the tightening plate
54 and a tightening bolt 56. Notsuchi 50 is a hand
Standard 3/8 inch mounted on the side of the surgical table
x 11/8 inch (approximately 0.95 ++tm x 28.
5 am) rail 40 (see Figure 2) (: can be fitted)
is formed. The attached plate 54 is attached to the mounting block 52.
It is pivotally connected to the rail 40 by a tightening bolt 56.
It is solid and held in place. Formed on the tightening plate 54
The notch 58 is located at the bottom of the rail 40 of the operating table.
It is formed so that it can be fitted into the Turn the attached bolt 56
This causes the tightening plate 54 to press against the rail 40.
The movement device 38 of the limbs is attached as appropriate (two fixed.
The shaft 60 is approximately 4 inches from the base edge of the mounting block 52.
(approximately 100 II). The first arm portion 62 pivots around the pivot shafts 60, 60.
possible (the first degree of freedom of displacement of the limb movement device 38 is
eggplant). Swivel @60.60 and other pivot axes (described below)
As a center, the movement devices 38 of the limbs are movable relative to each other.
It is. This pivot axis will be referred to as the connection part in the following explanation.
Sometimes. A first hydraulic actuator 64 connects the mounting block 52 and the shoulder structure 4.
8 and the pusher of the first hydraulic actuator 64.
The rod 66 extends through the pivot shafts 60, 60.
, the first arm portion 62 is 180 degrees relative to the mounting block 52.
It has been made into a Noh play in the same town. In this case, the pivot shafts 60, 60 are relative to the mounting block 52.
It will be permanently installed. Turning position sensor 6 that detects the turning position of the shoulder
8 (l0KQ potentiometer can be used)
) is connected to one of the pivot shafts 60, 60 and the first arm portion 62.
The mounting block 5 of the first arm portion 62 is connected between the
The angle relative to 2 is measured. The second arm portion 70 is approximately 14 inches from the first pivot axis 60.
via a pair of second pivot shafts 72 spaced apart from each other by f (approximately 35 scratches).
and is pivotally connected to the end of the first arm portion 62 (to prevent movement of the limbs).
forming the second displacement degree of freedom of the device 38). Second pivot axis 7
2 is rotatable together with the first arm part 62: 2, the first arm part 62
is fixed to the arm portion 62. Second rotation position sensor 74 (
IOKΩ potentiometer can be used)
Between one pivot shaft 72 and the second arm portion 70 (= connection
and the second arm portion 70 is connected to the first arm portion 62.
The angle is measured. The second hydraulic actuator 76
The arm portion 62 and the second arm portion 70 are connected to each other.
The push rod 78 of the second hydraulic actuator 76 is 1
inch (approximately 2.5 (Fl) bottom and 1 inch (approximately 2.5 m)
) is attached to the second arm part 70 at a spaced apart position.
The pivot point 80 is operably disposed on the pivot portion 80 . Second hydraulic actuation
A pivot portion 82 on the back of the container 76 is disposed within the first arm portion 62.
and the second arm portion 70 is opposed to the first arm portion 62.
It can be rotated 90 degrees. The third arm portion 84 extends from the second pivot shaft 72 by 6 inches (
A pair of third pivot shafts 8 separated by approximately 15QII) 7111
6, and is pivotally connected to the end of the second arm portion 70 (hand
forming the third degree of freedom of displacement of the foot motion device 38). third
The pivot shaft 86 is fixed to the third arm portion 84 and
It is possible to rotate together with the arm portion 84 of No. 3. Third turning position
position sensor 88 (use a Ω potentiometer for 10)
) is one pivot shaft 86 and the second arm part 7
0, and the second arm of the third arm portion 84
The angle relative to the arm portion 70 is measured. Third hydraulic operation 70
The push rod 92 is connected to the third pivot shaft 86.
1 inch (approximately 2.sm) below and 1 inch (approx.
disposed within the second arm portion 70 and spaced apart from each other by approximately 2.5 (to)).
The pivot point 94 is operably disposed with respect to a pivot point 94 provided therein. Third
The pivot portion 96 on the back of the hydraulic actuator 90 is the third arm portion.
84 , and the third arm portion 84 is located within the
The second arm portion 70 can be rotated by 90 degrees. The fourth arm portion 98 is approximately 12 inches from the third pivot axis 86.
A pair of fourth pivot shafts 100 separated by about 30 scratches
It is pivotally connected to the end of the third arm portion 84 through the
forming the fourth displacement degree of freedom of the operating device 38). The fourth turn
The rotating shaft 100 is rotatable with respect to the third arm portion 84.
It will be installed. Fourth rotation position sensor f 102 (IOK
Ω potentiometer can be used), but on the other hand
is connected between the pivot shaft 100 and the third arm portion 98.
, the angle of the fourth arm portion 98 with respect to the third arm portion 84
degree is measured. The fourth hydraulic actuator 104
Small Art t-m (aAoQ Tomo J-1 this
06 is 1 inch (approximately 2.5 ivy) relative to the fourth pivot axis 100.
) at the bottom and a fourth spaced 1 inch (approximately 2.5 as) apart.
is operable relative to the pivot 108 within the arm portion 98;
There is. Also, the back pivot portion 11 of the fourth hydraulic actuator 104
0 is located within the third arm portion 84 and the fourth arm portion 84 is positioned within the third arm portion 84.
The arm section 98 can rotate 90 degrees with respect to the third arm section 84
be made into The fourth arm portion 98 is connected to the third arm portion 84
and parallel to the third arm portion 84
It is installed in the Noh theater with a 180 degree rotation. from the fourth pivot shaft 100 to the end of the fourth arm portion 98
The differential mechanisms 112 are spaced approximately 14 inches (approximately 36 (II) apart).
(See especially Figure 5)
38 and two more displacement degrees of freedom). Differential mechanism 112
Accordingly, the pivot axes 72 and 86. Vertical swing (pitch) centered on the axis parallel to 100
movement and axes perpendicular to the pivot axes 72, 86, 100
A yaw motion about the line is provided. Two pairs of bevel gears 114 and 116 are perpendicular to each other
118 and 120 respectively to form a differential gear mechanism.
be done. The large bevel gear 114 is connected to each sprocket.
122, and a large bevel gear 114 and
and sprockets 122 are attached to both ends of the shaft 118,
It forms one half of the differential gear mechanism. The shaft 118 itself is pivotally connected to the fourth arm portion 98 and the shaft 11
8 is parallel to the pivot axes 72, '86, 100.
Therefore, a pitch motion is given. little bebe
The bevel gear 116 is a shaft located between the large bevel gears 114.
120, the remaining half of the differential gear mechanism
to do. A short chain runs around each sprocket 122.
A chain 124 is attached to each end of the chain 124.
A pressure actuator 126 is connected. One end of the four pneumatic actuators 126 is a tension device 128
(See especially FIG. 6) through the proximal end of the fourth arm portion 98.
connected to. Four pneumatic actuators 126 (two in the drawing)
) and the two chains 124 are the fourth
two large bevel gears 114 for the arm portion 98 of
Change the angle formed by the bevel gears 114 and the angle formed between the bevel gears 114
, that is, used to change the position of the small bevel gear 116.
can be used. Between the fourth arm portion 98 and the shaft 118,
Angle θ of the differential gear mechanism 112 with respect to the fourth arm portion 98
Pitch position sensor 130 (IOKO's potentiometer)
(a shomeometer can be used) are connected. Also
There is a bevel between one of the small bevel gears 116 and the shaft 120.
Measure the angle φ of the bell gear 116 with respect to the fourth arm portion 98.
yaw position sensor 132 (IOKO potentiometer)
data can be used) are concatenated. The block of the roll axis is located closest to the end of the limb actuator 38.
A hook 134 is attached to the small bevel 116. Also
Within the lock 134 is a seventh displacement mechanism for the limb actuator 38.
The roll axis 136 (see especially Fig. 6)
It is pivoted. The roll shaft 136 is partially attached to the patient.
The mounting member 138 is fixedly attached to the mounting member 138. Each atmospheric pressure operation
A ventilator 140 is attached to each side of the block 134 and is attached to each side of the block 134.
The other end of the pressure actuator 140 is a tension device (see especially FIG. 3).
128 is attached to the other end of the part member 138 attached.
Ru. There is a roller between the block 134 and the roll shaft 136.
A roller that measures the angle between the block axis 136 and the block 134.
position sensor 142 (10KΩ potentiometer
) are connected. There are environmental safety sensors on the sides and bottom of the limb operating device 38.
A sensor 144 (see especially FIG. 3) is attached. Each environmental safety sensor i44 is a long latex rubber tube.
One end of the environmental safety sensor 144 is sealed and the other end is pressure sensitive.
connected to a switch. The pressure switch has a specified input pressure.
is configured to close the electrical contacts when the
. The above pressure value is due to the rubber tube being hit or crushed and deformed.
set to a low enough value so that the electrical contacts are closed when
determined. All pressure switches are connected in parallel and none
This is detected when either pressure switch is closed.
configured so that Also, the total pressure switch is supply line 1
46 to the computer 18. During normal manufacturing, the entire limb motion device 38 is made up of fluids, surgical gowns, etc.
to prevent the hands and feet from entering the movable parts of the limb operating device 38.
vinyl plastic sleeve 148 (especially the first
(see Figure 2). A patient-mounted body 150 that is worn directly on a patient (especially in Fig. 3)
(see Figure 6) can be adapted to the back of the patient's leg.
A curved plastic member 152 having the shape of
It will be done. The plastic member 152 can support the sole of the patient's foot.
A molded plastic foot sole member 154 is attached.
be done. The lower part of the sole member 154 is moved to accommodate the patient's foot.
and can be secured in place by a thumb nut.
Two adjustable foot pads 156 are attached.
. The foot pad 156 connects the patient's foot to the patient attachment 15.
0 is correctly matched and maintained. plastic parts
152 and foot pad 156 are used to control the force applied to the patient's foot.
and the patient-wearing body 150 can be easily cleaned.
Sea urchin covered with foam rubber cushion and vinyl plastic
Overturned. 2 VelCrO® laces 158
is properly wrapped around the patient's leg to attach the patient's leg to the patient attachment body 15.
plastic to ensure it is held in place relative to the
It is attached to the lock member 152. In this case, one string 1
58 around the patient's ankle.
152 and secure the patient's heel against the sole member 154.
The other string 158 can be held at the end of the patient's δε
By wrapping the patient's legs against the patient attachment body 150.
Can be loaded accurately and reliably. Heel sensor 160 at the heel of the patient-worn body 150°
is arranged, and the heel sensor 160 is the environmental safety sensor 14.
It is configured similarly to 4. That is, the heel sensor 160
The patient should be fitted into the heel pocket of the fitted body 150.
They are attached to the mounting body 150 at two locations. This heels
The patient's heel is placed inside the patient-mounted body 150 by the turn-f 160.
Proper positioning is easily detected. movement equipment for limbs
If the patient's heel moves out of its proper position while using the
, the heel sensor 160 generates an alarm signal, and the alarm
The system signal is detected by computer 18. computer
When the alarm signal is detected, the limb movement device 3
The heel of the patient-mounted body 150 is
Maintain proper positioning of the patient's heel within the pocket
Therefore, force can be prevented from being applied to the patient's legs and
Specially reposition the patient's legs to avoid causing pain
There is no need to The patient-mounted body 150 is attached to the patient member 138.
It is attached with two bolts. On the other hand, the patient attachment body 150 can be attached to and detached from the patient member 138.
It can be attached to the part member 138 using an attachment/detachment mechanism so that
. This makes it easy to put on the patient-worn body 150 from the patient's feet.
I can escape. This attachment/detachment mechanism is activated when a force exceeding a specified value is applied.
The limb motion device 38 may be configured to detach from the limb motion device 38.
preferable. This prevents excessive force from being applied to the patient's legs.
It functions as a so-called ``mechanical fuse'' that stops the Ma
An electronic sensor is incorporated into the attachment/detachment mechanism.
This information is sent to computer 18 when a force is detected.
appropriate measures are taken to prevent the force being applied to the patient.
It can be configured as follows. an air line connected to the pneumatic actuators 140 and 126;
connected to hydraulic actuators 64, 76, 90, 104;
hydraulic lines and various position sensors 68, 74,
88. The signals connected to 102, 130, 132, 142
All signals and electrical lines are collected within the first arm section 62.
one supply cable 146 (particularly in FIGS.
(see FIG. 3) and is connected to the control box 44. Various position sensors 68 , 74 , 88 , 102 . Signal/power lines connected to 130, 132, 142
In is the computer 18 and power supply 16 in the control box 44.
2 (see Figure 8). Inside the supply cable 146
also contains another signal line, and one of this signal line
One end is connected to the computer 18 in the control box 44, and the other end is connected to the shoulder structure.
48 (see Figure 4)
) is connected to. Also, the operator's hand controller
166 is also connected to electrical connector 164. Still referring to FIG. 7, four hydraulic actuators 64, 7
6, 90, and 104 are each equipped with a single hydraulic actuation mechanism.
provided. The hydraulic operation mechanism is a double-acting hydraulic cylinder 16g.
It is equipped with two I'' control valves 170 and a hydraulic pressure generator 172.
These are all 1/18 inch (about 1.4 mm) plus
They are connected to each other by tick tubes. The hydraulic generator 172
It has two entrances and exits, and one outlet sends out a ball flow.
and introduce a return flow at the other inlet to remove the oil from the internal tank.
It is provided as a reversible device for returning to the link. Also in
The interface circuit 174 connects the hydraulic generator 172 and the control
connected to the computer via the valve 170 and the communication line.
Continued. According to a preferred embodiment, four hydraulic actuators are used.
Hydraulic cylinders 168 are located in South Carolina, USA.
Compact Air Hydraulic's model in Minster.
Dell 5118x212-RC! -HYD -FT hydraulic system
Linda, each with a diameter of false inches (about 3.2 fim)
It has an opening with a piston stroke of 2 1/2 inches (approximately 6
.. 35am). In addition, the control valve 170 is
Brision Dynamis in New Prythin, Cat.
12 in the model A2011-BB-120/60 of Cook Co.
It is an AC valve for 0 V, while the hydraulic generator is manufactured by Mineso, USA.
Model #108 from Oildyne Co., Mineabo, TA.
DA 19-AL-LVT powerplant. hydraulic parts
All are located in L'Egli, Rotcesta, New York, USA.
140-53-00 Noshi 8 inch plastic
connected by a tube. However, in the hydraulic operating mechanism, the control valve 170
When opened, hydraulic generator 172 is activated. Pressure oil is
A piece of the hydraulic cylinder 168 from the negative hole of the hydraulic generator 172
is supplied to the side, and the piston of the hydraulic cylinder 168 moves.
Pressure oil is discharged from the other side of the hydraulic generator 172 and other parts.
is returned to the hole. If you want to stop the movement of a hydraulic actuator, use oil
Pressure generator 172 is turned off and control valve 170 is closed.
and pressure oil is directed to either side of the hydraulic cylinder 168.
entry or exit is prevented. Also included in the interface circuit 174 is one retriggerable monitor.
It has a built-in visual timer, and its terminal is connected to the computer.
18. The output of this timer is
Voltage controlled by logical value to supply power to other parts of the ground circuit
Connected to regulator. When the computer 18 is operating normally, the computer
The controller 18 generates pulses at regular intervals, and
The timer is triggered and the voltage regulator and input
Interface circuit 174 is energized. Monitoring timer setting
The number is the time constant of the pulse expected from the computer 18.
is slightly long, so during normal operation of the computer 18
power supply to the interface circuit 174 is interrupted.
do not have. Also, computer 18 had a malfunction in its related circuits.
When, the monitoring timer sends the signal to the interface circuit 174.
Hydraulic supply 172 and
Control valve 170 is de-energized to prevent hydraulic actuator 168 from discharging.
Reliably prevent movement. FIG. 8 shows hydraulic and pneumatic actuators 126, 140 (
The pneumatically operated mechanism is equipped with a total of six pneumatically actuated devices.
shown. Each actuation mechanism includes a pneumatic actuator 176 and a tension device.
position 128, atmospheric pressure servo device 46, and interface circuit
178 are included. Pneumatic actuator 176 is the preferred implementation.
In the example (Bridgestone Corporation, Tokyo, Japan) diameter 1
8mm is used. The pneumatic actuators 126 are each 300 mm long;
The pneumatic actuators 140 are each 200 mm long and are preferably
The pneumatic navigation device 46 used in this embodiment is a Bridgestone
A (1! FAS (registered trademark) model EIVO-
102-04 atmospheric pressure servo device. All pneumatic parts
Regris 140-53 with V8 in Y- (approx. 3mm)
-00 plastic tube. Also each
The atmospheric pressure servo device 46 includes a compressed gas supply source 180 and a power source 16.
2, and connected to interface circuit 178.
. Additionally, interface circuit 178 connects communication line 182 to
The preferred embodiment is connected to computer 18 via
In this case, the atmospheric pressure servo device 46 consists of two devices.
, are configured to be able to control two actuators, respectively. Therefore, in the pneumatically operated mechanism, the pneumatic servo device 46 is
Actuated by computer 18 to pneumatic actuator 176
The supplied gas pressure is controlled. Supplied to pneumatic actuator 176
As the supplied gas pressure increases, the pressure of the pneumatic actuator 176 increases.
The diameter increases, the length decreases, and it is connected to the arm etc.
A force is applied between the ends. Gas is supplied to the pneumatic actuator 176.
When not supplied, the pneumatic actuator 176
184, a cap 186, and a retaining plate 188.
It is pulled linearly by a tensioning device 128. one sided
When gas is supplied to the pressure actuator 176, the tension spring 184
is compressed, and the cap 186 and retaining plate 188 are
contact, and force is transmitted from the pneumatic actuator 176 to the cap 186.
be reached. At this time, the tension spring 184 is not excessively deformed.
This can be prevented. The pneumatic actuator 176 that is linked to the pneumatic servo device 46 is a controller.
Controlled by computer 18, compliance adjusted
be done. During normal operation, the paired pneumatic actuator 176
Displacement freedom! , i.e. opposite to each other through a single connection.
They are connected to each other so that they can be easily used. By each pneumatic actuator
force in only one direction (i.e. as the length of the actuator decreases)
The two actuators act in series to give
It is necessary to maintain the desired position. in this case,
Keep the pressure on one actuator at a constant level and press the pressure on the other actuator.
Adjust the pressure to the appropriate level to obtain the desired position.
more achievable. The constant set pressure of the first actuator is low
, the displacement occurs virtually without resistance and is compliant.
performance becomes high. On the other hand, the constant set pressure of the actuator in option 1 is high.
If the
Ianska becomes lower. In the preferred embodiment, this code
The weight of the patient's limbs (= varies depending on the weight of the patient's limbs)
Set as required to move the patient's specific limbs
Only force is delivered reliably to the patient. There are four hydraulic pressure generators in the control box 44 (see especially Figure 2).
172 and three atmospheric pressure servo devices 46 (each with two atmospheric pressure
actuator 176 ) and interface circuit 17
4, 178 are built-in. There is also a power supply inside the control box 44.
A power source 162 is included, and in the preferred embodiment power source 16
2 includes Buffalo, Hammondo, New York, USA.
Used by Lectronics Model A/GFOL 101
5V DC at 10A. 15V DC at 3A, -15V DC at 3A, DC - at 2A
24V DC is obtained at 5V and 2A. power supply 162
Power is supplied to interface circuits 178, 174 and
The pressure is applied to the pressure servo device 46. The computer is located at IB in Boca Raton, Florida, USA.
A personal computer from Company M can be used, and a monochrome model can be used.
computer, keyboard, Intel (registered trademark) 8087 number
Value COBROSETCH-9-(US CALFOR OUTPUT BROSETCH 2)
4 is the data translation DT 2801 circuit board
(Death in Marlborough, Massachusetts, USA)
(manufactured by Translation), and the computer 1
8, and its 16 analog inputs.
channels (7 of which are position sensor signals, 1
one for the control signal for the operator) and one for the digital controller signal.
16 channels for output (4 of which are control valves 17
0 for controlling the oil pressure generator 172, 8 for controlling the hydraulic pressure generator 172, and 2 for controlling the hydraulic pressure generator 172.
The environmental safety sensor 144 and Heelsen-F 16
(for detecting the zero state). computer
There is also a second circuit board inside the
Tecomar Lab T in Perrando
ender (registered trademark) circuit board with 16 analog
Log output terminals (six of which are used to control the atmospheric pressure servo device 46)
). Communication line 182 (see especially Figure 8)
and 190 (see especially FIG. 7) are located on the back of the computer 18.
The two circuit boards mentioned above and the interface in the control box 44 are
It is connected to face circuits 174 and 178. Also
In this case, according to a preferred embodiment, communication line 190 is
Data Translation (registered trademark) DT2801
Ribbon cable connected to circuit board and consisting of 40 conductors
while the communication line 182 is Teamar (registered).
(registered trademark) Lab Tendθr circuit board analog output
A ribbon consisting of 34 conductors is connected to the connector.
cable. Also in computer 18 are Japanese
BAR-100 speech recognition/synthesis for 880 companies in Tokyo
A built-in audio circuit 192 is included. The audio circuit 192
A wireless link for telemetry that inputs audio signals from
and a speaker in the control box 44 that generates an audible response.
C2 is connected. The voice recognition section of the voice circuit 192 determines the input recognition level.
The microphone connected to the voice recognition circuit until a predetermined level is reached.
The doctor repeats predetermined commands to Crohon.
to recognize the doctor's voice pattern by
They will be "trained". This allows voice recognition.
During normal operation of the limb motion device 38, the physician
It is possible to obtain a pattern that matches the voice command. Ma
Similarly, the voice synthesis section of the voice circuit 192 generates an audible response.
training to create a voice pattern before allowing it to occur.
-ning. Once this speech recognition/synthesis pattern is
Once completed, the disk drives in computer 18
Permanently written on a floppy disk for later use.
will be recorded. Hand controller 166 for the operator (Figs.
9) is the selection switch 194 and the function switch f19.
6, 198, and a selection and function switch 194.
, 196 and 198 are connected via the pendant cable 200.
and is connected to the computer 18. During normal operation,
The pendant cable 200 is the operator's hand control.
connector 164 (see especially Figure 4) (two connected
Ru. selection switch] 94 is a multi-position selection switch;
A separate voltage is generated from the switch for each position. Similarly, when the function switch f196°198 is activated,
A separate voltage is generated. Select and function in this case? 194, 196
, 198 and associated circuitry are housed in a small metal box.
. The metal box and all of these switches allow fluid to enter the circuit.
latex rubber sheet to prevent
Therefore, it is liquid-tight. Usually used during arthroscopic surgery
A metal box has a spring clip that can be attached to the trocar sleeve.
The controller 166 is attached to the back of the doctor.
It will be placed within reach. selection switch 1
The knob 94 shows the function of each position of the selection switch 194.
On the metal box for washing (2) There are instruction letters as shown in Fig.
administered. The functions of each function switch 196 and 198 are also gold.
It is displayed in the appropriate place on the belonging box surface. Also, the selection switch 194
Easy for the operator to view the controller from the side on the edge of the knob
Suitable characters or symbols may be used to make it easy to identify. Change
The selection switch 194 has Grayhill (registered trademark)
)'s 2301026 10 position BOD code switch
Function switches 196 and 198 each have a G
Rayhill's 39-1 push button instantaneous contact switch
can be used. On the other hand, during normal use, the hand controller 166
Sterilize using a well-known gas sterilization method before using indoors.
However, even if the hand controller 166 is used,
Sterility is ensured not to be compromised. According to the preferred embodiment, the doctor's voice is as shown in FIG.
Smoothly using an audio collector 202 as shown in FIG.
The sound will be recorded. The audio collector 202 includes a doctor's surgical mask.
It can be stored inside without compromising the sterilization function of the Scrub 212.
The doctor's sound reaches an electrical transducer like a microphone
Can be housed within a surgical mask for maximum voice level
Made of plastic polymer material such as PVC
A single shell 204 is contained. Shell 204 is in the art
made by means well known to those skilled in the art, i.e. by injection molding or thermoforming.
, substantially rectangular in shape with rounded corners and edges.
is attached. The shell 204 has a substantially cylindrical and flat surface.
A ridge portion 206 is provided which is inclined and protrudes from the portion.
, when in use it is glued to the surgical mask. heat theory surgical mass
A variety of configurations may be used. Microphone 2
A hole 208 having a diameter slightly larger than the outer diameter of the shell 20
It is formed at one end of the ridge portion 206 of No. 4. shell 20
4 from the edge of the hole 208 to the edge of the flat part of the shell 204.
A slit extending to the shell 204 is provided to slightly change the shell 204.
The hole 208 is configured to be enlarged by shaping the hole 208.
ing. Therefore, in use, the hole 208 in the shell 204
The microphone 210 can be inserted while unfolding. micro
Insert the phone 210 into the hole 208 without play and make sure it is held well.
can be set. The shell 204 is a microphone 210
Both sides are placed at the position where the sound level collected is maximum.
A surgical mask (
2 will be attached. The cord 216 of the microphone 210 has
A small spring clip 218 is attached, and the spring clip 2
18 itself can be attached in place on the doctor's clothing, thereby
Cord 216 (Do not expose the microphone to excessive force.)
210 is prevented from dislodging from shell 204. Ko
The code 216 can be connected directly to the signal receiver or later.
connected to a small signal transmitter attached to the doctor, such as the one described above.
It will be done. According to a preferred embodiment, microphone 210 is located in Tokyo.
Sony's condenser microphone ECM-150T
It is preferable to use the adhesive body 214, and the adhesive body 214 is
3M950) run of 3M Canada Ltd.
Spha tape can be used. The operator's hand controller 166 and voice recognition
The voice circuit 192 that performs recognition/synthesis is connected to the limb movement device 38.
It is linked with these so that it can be visually observed and controlled freely. Every time the setting value is changed by the selection switch 194, a sound is emitted.
Circuit 192 selects the audible signal selected by selection switch 194.
Generates a response. Therefore, the surgeon must switch the functions 196, 198 twice.
You can press one side to start the operation. Function switch 19
6, 198 is programmed to perform a predetermined function.
functions that are usually opposite to each other, e.g. start and stop,
Increase and decrease in constant rotation or increase and decrease in knee flexion
programmed to give. When the functions SWIN'j 196 and 198 are activated respectively,
an audible response is generated and the function being performed is
It can be done. The surgeon also masters the pre-programmed commands.
You can select one function by speaking to the microphone 210.
, then - by the function switch 196 or 198.
You can select to start the function and press selection switch 194.
Activates and sends the programmed command - to the microphore.
You can initiate the desired action by speaking to someone. Input channel 220 for telecommunications (see especially FIG. 10)
) is located in Ontario, Canada.
Radio 5hack (registered trademark) 7M Wa
An earless microphone system may be used. at low power
Pocket-sized remote transmitter with two AA-sized batteries
Can be driven in the pocket of a shirt under a surgeon's surgical gown
can be put in. The transmitter m 222 is an electrical connector compatible with the microphone 210.
Connection can be made using a connector, and an appropriate connector can be used. Faith
Signal conditioning (i.e., in-band limits) is provided by the transmitter 222.
This is done by Receiver 224 (particularly FIGS.
(Refer to Figure 10) is Radio 5hack (R recorder [)
A 7M wireless microphone base device can be used and
The output terminal of the microphone is connected to the microphone of the audio circuit 192.
Connected to the phone input terminal. Operation by surgical staff As shown in Figure 2, patient 12 was operated on for arthroscopy.
The patient was placed lying on a surgical table 42, and his hands were removed according to well-known surgical procedures.
The technique is performed. Sterilized stockings for the leg to be operated on
Or a soft bandage may be applied. Limb movement device 38, computer 18, control box 44 and
The mobile platform 226 is approximately 1 meter from the table 42 in the operating room.
preferably closest to the surgical site, separated by a distance within
It will be placed in place. The limb movement device 38 is located in the control box 44.
It is taken out from the holding device placed on the back and placed on the table 4.
It is attached to the right place on the side of 2. This is rail 40
A notch 50 (specifically
(see Figure 4).
It will be done. The limb operating device 38 has a mounting block 52 that is
About 50 degrees from the center of the hand or foot knee i-L la
Mounting block 5 along rail 40 until located at distance
Tighten the correct tightening bolt 56 by sliding the
It is fixed to the rail 40 of the section. The cord 230 of the control box 44 is connected to a 110 V AC power source.
power cord for computer 18.
is plugged into the outlet provided on the back of the control box 44.
The control box also includes communication lines 182 and 190.
The ribbon cable 228 taken out from the computer
into the corresponding outlet on the back of the computer 18. In addition, the wire for the speaker led out from the control box 44 is also connected to the controller.
Jack marked l'-5pxj on the back of computer 18.
A vibrator 232 that is inserted into the tank and also supplies compressed gas.
is the control box 44 and the operating room compressed gas supply outlet or
Connected between compressed gas cylinders. In this case gas supply
The pressure is adjusted to 40-60 psi. When performing voice control, it is connected to the microphone 210.
An audio collector 202 is used, but at this time the sheet
234 and adhere the adhesive body 214 of the audio collector 202.
With the surface exposed, the audio collector 202
02 is a surgical mask 2 placed on one side of the surgeon's mouth.
12. Microphone spring clip 218
is clipped to the collar of a surgeon's clothing, for example.
On the other hand, the microphone cord 216 can be used as an extension cord if necessary.
Display “M Engineering C” on the back of the computer 18 using the
It is inserted into a jack with a . Then code 216
The power switch of the microphone 210 attached to the end
turned on. When using the input channel 220, the connection configuration described above is
Can be changed. That is, the microphone cord 216 can be connected remotely.
Plug into the control transmitter 222 and place the transmitter at the surgeon's port.
put it in a bag. Micro receiver 224 for remote control
The output terminal for the phone is "M-C" on the back of the computer 18.
The receiver is connected to the jack shown in
transmitter 222 and receiver 18, then transmitter 222 and receiver
224 power switches are turned on. When using the hand controller 166 for the operator,
Hand tools are removed from boxes that have been sterilized and packaged using normal sterilization methods.
Hand controller connector 1
Connect to 64. Hand control if surgeon desires
166 to a trocar for arthroscopy.
We can do it too. Next, the file containing the operating software is
Loppi disk to computer 18 disk drive
After plugging the computer 18 and control box 44 into
turn on. Computer 18 automatically executes the necessary software
and displays the following message on the video monitor of computer 18.
Show messages. For Doctor Goo's voice pattern, press "ALTlj." For Rob's voice pattern, press "ALT2 j." For Chef's voice pattern, press "ALT3 J." For Glenn's voice pattern, press "ALT4. Enter key j. Here "Doctor Day", "Rob", "Chef" and
"Glenn" is a speech circuit 19 for speech pattern recognition/synthesis.
An individual who trains 2 in the manner described above.
It is a name. Using voice control, the operator's name will appear on the video monitor.
Then press the specified key. This corresponds to the operator's
Voice recognition data and Arthrob
ot) System synthesis data is computer 18 memo
input into the li. If the operator's name does not appear on the monitor
The operator presses the rvpuJ key, then presses "enter."
Press J to perform voice training
There is a need. As a result, it was sold by two NF companies in Tokyo.
Voice training software is a voice recognition/synthesis circuit
192. This software
When performing training, instructions were given by NF2 company.
used in methods. Meanwhile, the operator presses [ALT I J].
-With human power, Doctor Day's voice recognition data (this is
(not normally used) and system speech synthesis data.
Powered. Next, the operator selects the surgical target via the computer 18.
Enter which foot of patient 12 (right or left).
Toyoshi control software is executed. In this case operation
The user should press “2” or “r” to indicate whether the foot is right or left foot.
- and then press the enter J key. Operator
etc. and devices are all located at the location where the limb movement device 3g is installed.
After being cleaned at , the operator presses key "2". This allows the computer 18 and the audio circuit 192 to
"Get ready (81!: TUP) J's voice is not emitted.
It will be done. The operator then presses the gray key “-”.
and press the “MOVE” button via the computer 18.
A voice is emitted, and the limb movement device 38 is a surgical table.
42, and the patient-mounted body 150 is
It is extended to be on the same level as the rail 40. necessary
The mule operator must ensure that the main part of the limb operating device 38 is on the rail 40.
The limb movement device is moved in the direction of the table 42 so that it is at right angles to the table.
Press 38 slowly. When the limb motion device 38 stops moving, the patient's leg
It is attached to the patient attachment body 150. If necessary, “〈−
” and “->” to move the limbs.
moving the operating device parallel to the rail 40 to the patient.
This facilitates the mounting of the patient-mounted body 150. Next, attach the heel of the patient's foot to the heel 6ε of the patient-mounted body 150.
Tightly tighten and secure. foot pad 15
6 can be moved well so that it comes into contact with both sides of the patient's legs.
Ru. The patient's feet are preferably mounted within the patient attachment 150.
When the heel sensor 160 is activated, the computer
The message is displayed on the display section 18 as a message. heelse
If sensor 160 is not activated, the operator must
Take out the patient's foot from the body 150, and make sure that the patient's heel is
Reattach it again to ensure that it matches the mounting body 150. If it comes off from the patient-mounted body 150 during normal operation
The heel sensor 160 detects this and the computer
The operation of the operating device 38 is automatically interrupted via the controller 18;
Operator (Second alarm is issued. If the patient's feet are correctly attached to the patient attachment 150.
When the operator presses the "<-" and "->" keys,
The limb motion device 38 is moved so that the patient's feet are on the table.
42, and then the operator
LT” and rAJ keys at the same time to
Enter that the patient's foot is accurately positioned for 18.
do. The computer 18 allows the operator to accurately determine the patient's foot position.
Check whether it has been positioned. If the foot position is not accurately determined, the operator should press rN.
Press the J key to make further adjustments. Operator is rYJ
When the key is pressed, the computer 18 moves from the center of the patient's kneecap.
Ask them to measure the length from the bottom of the heel. This measurement
Enter the fixed value and press the Enter J key. control
The software is placed in the patient's "full extension" position and
Created using data. That is, setting the safe operating limits of the limb operating device 38,
Movement of limbs to obtain 5 pre-programmed positions
calculation of the exact position of the operating device 38, and
Includes calculation of the exact path of motion. Safe operating limits are
Part of the person's foot (toe, lower leg, and upper leg)
The limb movement device 38 determines the natural range of motion when moving.
It is represented by an imaginary line indicated at 31 in the operating space. This provisional
The movement space of the limb movement device 38 is determined by the imaginary line,
Outside this space, the movement of limbs is controlled by computer 18.
The device 38 is provided so that it does not move. to the patient
5th place precisely pre-programmed for opening operation
position (stance, full extension, full flexion, half flexion and figure 4)
is measured in the same way. In this case, the resolving motion is the patient's knee or
flexes the lower back without affecting the angles of other joints.
It refers to the action of stretching or stretching. The actuator is displayed to the operator via the display section of the computer 18.
Comps of 126, 140 (hereinafter referred to as “list”)
Permission to begin testing of Ryans is requested. On the other hand, if the operator presses the "N" key, this verification process will be skipped.
, compliance is brought to a preset level. When the operator presses the rYJ key, the limb movement device 3
8 moves the patient's foot to the figure 4 position. this position
When the patient's foot is moved, the weight of the patient's foot causes the limb to move.
placed in the list of the limb movement device 38 until it changes position.
The compliance of installed pneumatic actuators is increased. On the other hand, once this behavior is detected, compliance is
C=decreased and again at the beginning (=programmed position)
be returned. Compliance required to return to this original position
The value of the
It will be maintained unless changed. In this way, the movement of the limbs is
The compliance of the list in position 38 is based on the weight of the patient's foot.
can be measured accordingly. When the compliance of the limb motion device 38 is measured
, the operator usually presses the "F2" key, then the gray "-"
Press the key to place the patient's feet in the stance position and remove the tourniquet.
Easy to prepare for solution application or put on sterilizing clothing.
state. During surgery, the surgeon uses two different interface devices.
of limbs without taking your eyes off the object during combination surgery.
The position and operation of the operating device 38 can be changed. That is, in
What is the interface circuit?Hand controller 1 for the operator
66 and an audio circuit 192. On the other hand, computer 18
non-surgeon assistant to press keys on the keyboard of
You can use The limb movement device 38 was rapidly stopped.
In such cases, the operator should press the l'-5pace j key.
All functions in progress are immediately interrupted by pressing
. The same stopping action is the same as when the surgeon said "stop".
By pressing the "stop" button on the controller 166
Of course, you can also get it. The computer 18 includes an audio circuit 192 and a hand controller.
A single command sheet receives both commands from the troller 166.
The limb motion device 38 performs the desired function.
programmed to do so. The command sequence is (1) Caution
Prefix step, (2) Selection command step, (
3) operation steps. Each voice command and command from hand controller 166
The following table shows how the command sequence is executed depending on the
Shown below. Clearance of specification (no change in content) Directive Voice
chondroran-kens
Command Operation Step Operation
Operator manual input / stem output Operator input and / stem output
Attention Surgeon: “Yes”: Surgeon responds:
none. Priffy "Joint Surgery" Sound response. Selection S
Say "W" with a chuckle. turn
. Select Surgeon speaks by voice Surgeon selects 7 steps
The system is a voice command “Select” word “Select word” Select
Select SW and emit 3W. Repeat. place
Desired function The position corresponds to the desired function position. Repeat the "selected word". Operation The surgeon is the system The surgeon is the system
The stem is the "action word" of the sono command "action" word.
Noh sw Emit the selected movement. Repeat. Press 196 or 198 corresponding to the work "Action word"
I'll do it. repeat. Hand controller 166 and audio circuit 192 are all fingers
Command sequences can be entered using only one input device
So it can be used independently. Handco. The operation of the controller 166 and the audio circuit 192 is as follows.
Although explained separately, these two-man powered devices are as described above.
It should be understood that they can be used in conjunction with each other.
cormorant. As mentioned above (: the hand controller 166 is typically an arthroscopic
Clipped onto the test trocar and placed in the correct position for surgery
Retained. When the surgeon uses the hand controller 166
If you want, turn the selection switch 194 to
18 of the start of the command sequence. This is it
The function of the [Caution prefix step] described above is executed.
be done. Each time selection switch 194 is turned to a new position
, the computer 18 uses the audio circuit 192 to select
The new position of switch 194 is announced audibly. surgery
When the surgeon hears the function of the desired limb movement device, the surgeon
stops the selection switch 194 from rotating. push button machine
The function switches 196 and 198 select the selection switch y-1.
94 positions and different limbs as shown in the table above.
A function of the operating device is called. Function switch 196 young
Alternatively, by pressing one of 198, computer 1
8 indicates the action to be taken by voice, and the limb movement device 3
8 is moved as necessary. Setting of selection switch 194
The functions of the function switches 196 and 198 are controlled by the hand control.
by reading the label written on the surface of the controller 166.
It can be visually recognized. Mi Aishi [Mi Kaba Tsubasa Art Studies 11!21
÷If the surgeon desires voice input, the limb control device 38
The position or movement of can be changed by issuing three command words.
It becomes. This three-word command sequence was misrecognized.
to prevent the limb control device from being activated by a given command.
It is used as a means of confirmation. Attention Briffic';z [ARTHROBOT j
The command sequence is started and the sound for speech recognition/synthesis is started.
A warning is generated by the voice circuit 192, so the command word is not heard.
You can At this time, the voice response “Yes” will be generated.
Especially υ, beware of computer 18 BRIFIX
recognition and start of a new command sequence may be entered.
Ru. The surgeon then selects the 10 selected command words listed in the secondary table.
When one of these occurs, the computer 18 sends an audio signal.
Path 192 repeats the selection command word. Directive word
occurs and this is not identified, the computer
Computer 18 emitted a short beep and the surgeon
repeats the selection command word for recognition again. surgeon's
The selected command word that was uttered was “After recognition of ARTHROBOT J”
If it is not recognized within 20 seconds, the audio circuit 192 is disconnected.
Doctors caution prefix “ARTHRO-BOT J
occurs and the command sequence is restarted.
The voice recognition function is stopped by the voice circuit 192. con
The command word recognized by the computer 18 is sent to the voice circuit 192.
When not specified by the surgeon by voice response from
1: The surgeon again selects the selected command word or command sequence.
Generate a “no” to override the request. This is a directive
When Siegens is finished, computer 18 F)
The words ``5o-rryj'' are answered.Then the surgeon
is illuminated for 20 seconds to repeat the desired selection command word.
, if the desired selection command word is not generated within this time,
The audio circuit 192 uses the caution prefix [ARTHROB
until the command sequence is started again at OT j.
Stop cognitive functions. Once the surgeon's desired selection command words are recognized consecutively,
, the movement of the limb movement device 38 is performed according to the preferred movement shown in the table below.
It is started with a command word. Valid for computer 18
When a motion command is recognized, the operation of the limb control device 38 is started.
The operation command is confirmed by voice via the voice circuit 192.
recognized. If the spoken operation command is not recognized, press
A short beeping sound was emitted from computer 18.
, the surgeon speaks again to acknowledge the movement command.
. Despite the outbreak of surgeons, “ARTHRO-BOT”
If the surgeon's command is not recognized within 26 seconds after affirmation of J.
Then, the audio circuit 192 selects [ARTHROBOT J].
the audio circuit until the command sequence is restarted.
192 recognition function is stopped. Surgeon commands incremental movement
(i.e. arm, waist, knee or foot) select - to move
-or both of the commands are repeated to determine the position of the limb actuator 38.
is changed continuously, so the entire command sequence is repeated.
There is no need to -71 ÷ S 7 S 7 meetings ÷ Tsukiguchi! A copy of the umbrella and meeting statement (no changes to the contents) for the ARM, with the legs facing the table.
Movement outside Moving the leg in the direction away from the table FLBX Lumbar flexion EX
TEND Stretch the lower back KN EE against FLFJX Bend the knees
bend EXTEND Knee extension FOOT IN Turn your foot inward
Ru. OUT Turn your feet outward. RFJLEASK limb movements for WRIST
Dissolve the list of operating devices HOLD Maintain the list of operating devices of limbs Other commands NO Confirm that it is incorrect HALT Operating devices of limbs
The environmental safety sensor 144 is activated when an obstacle is detected in the operation during surgery.
When activated, the operation of the limb control device 38 is immediately stopped.
An alarm will be issued to the operator. The operator must ensure that this obstruction has been removed or
that the operating device 38 of the device is still operating safely.
When it is determined, the hand controller 166 or voice command (second
The movement device of the limbs can be moved continuously in the desired direction.
Ru. At the end of the surgery, the limb motion device 38 is moved longitudinally.
, a tourniquet is applied according to practice C2. then the limbs
The motion device allows the patient's feet to be easily removed from the patient attachment 150.
Extendable: Moved to fully extended position as shown in Figure 2. next
[ALT J and IN keys on the computer 18 keyboard]
By pressing - at the same time, the limb movement device will be reduced to a small size.
Moved to a small nested position. this
Accordingly, the limb operating device 38 has a minimum size C; folded.
It is possible to easily remove it from the surgical table 42. Change
By loosening the tightening bolt 56, the limb operating device can be removed.
from the rail 40 and remove it from the back of the control box 44.
It will be held in place by a holding bracket. ■Software Computer 18 for controlling the limb movement device 38
The software used for this will be described later. con
Preferred operating system for computer 18
For example, use IBM's DOS version 3.0. limbs
During normal operation of the device, two auxiliary software
program, a law firm located in Seattle, Washington, USA.
Prokey from RoseEfoft
(registered trademark) version 2.13# and NEO company's voice
Spurse Utilities (Voice Plus
Utilities) Vershore 1.01 Soft Pa
cages may be used. Prokey
is an IBM personal computer key for special functions.
You can also use the voice pulse utility to program
Rites are connected to the audio circuit 192 of NEOBAR-10.
used to give one or more programs to run. hand
All custom software for the foot movement device 38 is “C”
written in the language. "A program that can execute CJ code"
"Cj-7" bike for conversion to ram is US new
Combutinoho in Red Punk, Shashi Province
Applications' 086TM version 2.3 compiler
So, the number 8087 in computer 18 is small.
configured according to the manufacturer's specifications to navigate the
Ru. The attached software list also includes
DO83,0 so that the execution of step 18 is done automatically.
AUTOEXEC used by the program! , B.A.
Program the T file and the keyboard of computer 18.
AUTOART used by pro keys to program
I (includes PRO files).
The contractor is provided with a computer 18 and a limb motion device 38.
To make sure that you understand the operation well, the program is explained below.
Explain briefly. When computer 18 is energized, DO83,0 operator
system is the disk drive unit of the computer 18.
The data is read from the disk in the storage. operation system
Once the system is loaded, the file is
AUTOEXFli(!, fingers listed in BAT)
The instruction is read and executed. This list of commands includes
keyboard of the computer 18 for use in the operating device 38 of the
Set up the pro key commands that make up the code and the audio circuit 192.
command to start the process and prompt the operator to input from the keyboard.
Directives are included. The final instructions for the file
The foot motion device control software is executed. The control software consists of an initial value setting section and a control loop section.
However, each operation constant and flag are set in the initial value setting section.
determined. When the control loop section is first entered, the operator
Use the keyboard to properly position the patient and move the limbs.
Prompts you to adjust the device position and enter the patient's leg length
be done. The software includes position sensors for limb movement devices.
The known position of the limb motion device determined from
The data will be used to determine whether limb motion devices should be used for this patient.
A safety range is determined. Pre-programmed patient position
position (stance, full extension, full flexion, half flexion, figure 4)
The size of the patient's limbs is also factored into the software.
software is formed. After completing the position standardization, the operating parameters can be further adjusted as appropriate.
The patient's foot is changed automatically and the patient's foot is
position. List (actuator) compliance
The wrist moves against the force of gravity due to the weight of the patient's feet.
Increments are made until the foot cannot be maintained in the desired position. next
of the wrist until it maintains the desired foot position.
Compliance is decremented. Confry at this time
ance is determined as the appropriate value for this patient. this patient
, the compliance of the list from now on is at the decision level.
Do not apply excessive force to the patient's leg.
This prevents -The force control loop consists of three sections that are called sequentially.
In the first section, the operator's keyboard,
The presence or absence of input from the audio circuit or hand controller is detected.
and when this input is recognized, Nable-Ten is called.
Accordingly, the operation of the limb operating device is suitably changed. second
A section of the limb motion device containing a position sensor
and all related sensors are called and the hand control
rollers are set. Third section of control loop
of the sensor as indicated by operator input.
Readings and desired mode of movement are translated into limb movement
The operation of the electromechanical components of device 38 is suitably modified. Many of the operations performed by the operator's input are performed by the control software.
Contained within fair subroutines, e.g.
invalid location, “world” or “patient” coordinates.
movement along the travel path and mutual variation of control parameters.
Examples include functions such as updating or displaying. The world coordinates above
Or, patient coordinates are two coordinates commonly used in robot terminology.
Refers to the reference system. World coordinates are one segment of the same robot
to define the spatial location of the target relative to other segments.
used, while the patient coordinates are equal to the known tool coordinates.
part of the body (corresponding to the tool in this case) relative to another part
Used to define spatial location. Also control software
Other subroutines called from each part of the software are
, beyond the position determined to be safe for a particular patient.
A routine for testing the movement of the limb motion device 38 by
Stopping or maintaining the foot operating device 38 at a desired position
routines, and routines that perform other functions.
Ru. ■Other embodiments In the above embodiment, the displacement degree of freedom is 7, and hydraulic pressure or air pressure
of a dynamic structure with a power element
Each connecting portion may be configured to have only a braking function. this
The simple structure of the limb movement device provides some of the basic functions at a low cost.
This is preferred. This simple example (hereafter simply
(referred to as "other embodiments") are the embodiments described above (hereinafter simply referred to as "other embodiments").
The same configuration as the first embodiment (referred to as J), that is, the degree of freedom of displacement is
7 uses 4 arms and 3 wrists for the same work
Driven in space. In this case, the surgeon will grab your arm and
Release the braking mechanism using the controller or audio circuit
and manually move the arm to another desired position or orientation. desired
position or orientation, the operator should turn the hand control again.
Activate the braking mechanism using the troller or audio circuit to reach the specified level.
Hold the arm in a position or orientation. In other embodiments, the hydraulic or pneumatic pressure used in the first embodiment may be used.
Do not apply pressure to the moving parts in a manner that would activate a friction or ratchet mechanism.
A braking mechanism consisting of a pressure or other power actuator
Alternatively, it can be replaced with a device as shown in FIG. concerned
The braking mechanism includes a push rod 236 and a fixed plate 238.
Eh, pneumatic actuator 240 (Brldgestone R
You can use the uberturator (trademark).
It is driven by Braking mechanism:: is the first embodiment
A similar servo valve is provided. In other embodiments, each hydraulic actuator may be connected to this brake.
The operation of each part in the list of embodiments of solution 1 can be replaced with the structure.
The device has the same braking mechanism and rodless cylinder actuator.
The chain suspended around the idler sprocket and
It will be replaced. The braking mechanism of other embodiments may be adjusted by the operator.
The driving or stopping configuration is the same as that of the first embodiment or
Be made concise. Simplified limb movements shown in Figure 13
According to the configuration that controls the operation of the device, this limb movement device
The handle 24 is provided with one or more handles.
2 to connect part or all of the limb movement device.
Department can be released. That is, the handle 242 is the pivot shaft described above.
60, 72, 86, 100 or differential mechanism 112
Each corresponding connection, or the above-mentioned pivot or differential
The first one operates continuously and variably under computer control of the structure.
This corresponds to the actuator in Figure 4. The handle 242 allows the operator to control the arm of the limb motion device.
position the patient and orient the patient wearer appropriately, while controlling the movements of the limbs.
Release the connection of the operating device and release the handle 242 to remove this
The connecting part can be fixed again in the desired position. However, the connection
The parts can be selectively positioned, and the positioning and placement of the limbs
direction can be controlled separately. Fig. 14 shows the embodiment of Fig. 13.
A simplified actuator configuration used in
, to facilitate movement of the wrist mechanism of the limb movement device
, the operator can fix or release the wrist, and can also
Operation to facilitate other movements of the arm mechanism of the operating device
person can lock or release other actuators. pneumatic actuator
The mechanism for activating the
Is it possible to increase the total pressure to the actuator without using a capable servo valve?
Adjust to one of two conditions: or remove all pressure.
It includes an electromagnetically controlled pneumatic valve. hand
The switch 244 of the link 242 causes the connection release circuit 24
6 is activated, the valve driver 248 is activated, and the air valve
250 is opened and the pressure of the pneumatic actuator 252 is released.
. The embodiment shown in FIG. 13 further includes an arm mechanism for the limb movement device.
Compensate for the weight of the structure and the weight of the patient's limbs to improve surgeon control.
In order to facilitate
Lightweight with a rotary braking connection with a dynamic structure similar to that of the embodiment described above.
A tube structure may be provided. Bridge One
By means of a pneumatic actuator such as a Rubberturator.
, the linear actuation shown in FIG. 12 to secure the connection.
It may be driven using a rotary actuator rather than a device. limbs
each actuation to minimize the weight of the arm mechanism of the operating device.
Two coupling parts adjacent to each other are driven by the vessel. Additionally, the operating configuration of the limb operating device may be
The pressure actuator and the control circuit linked thereto are
ey (trademark) pneumatic servo actuator (California, USA)
Atch Ray Control of Los Angeles, State
(Ley 0ontro1s) etc. can be used.
other actuators and associated control circuits, or other pneumatic
Or replace it with a hydraulic actuator and its associated control circuit.
It can be changed by Dynamic structure of limb movement apparatus
Arthroscopy diagnosis of other parts of the body than the legs or knees,
Can be modified to be used for treatment. Limb motion device of the present invention
The device is used for surgery other than arthroscopy, such as fracture treatment and regenerative surgery.
Modify it to suit your needs. Limb motion devices allow easy manipulation and positioning of each part of the body at the same time.
A reprogrammable replacement for traditional surgical tables.
Fully automatic limb movement device with flexible and multi-functional
can be configured. In addition, the limb movement device of the present invention can be used after surgery.
To improve the movement of the patient's joints, repeat the joints to get the best results.
As a reprogrammable continuous operation device to operate properly
Design changes are possible. Furthermore, the present invention provides protection against physical stress.
Reprogramming to change behavior in response to changes in patient response
Multi-functional training equipment or stress testing equipment
It can also be used as a stand. (Effects of the Invention) According to the present invention as described above, (1) the quality of diagnosis and treatment is improved;
(2) Diagnosis and treatment costs can be reduced (3) Risk reduction
Reduces the risk of exposing patients and surgical staff to dangerous environments
, for example, by automatically controlling the patient's limbs and correcting X-rays immediately after surgery.
In addition to ensuring accurate irradiation, staff can be placed far away from the X-ray source.
You will be protected from exposure to radiation. Furthermore, the limb movement device of the present invention can be used as a tissue retractor during surgery.
For example, it can be used for traction to better observe the surgical area.
traction tissue by detecting and controlling tissue pressure.
It can be configured as a device that minimizes damage. of the present invention
Limb motion devices can change the physiological and ecological parameters of the patient.
for example, the localization of the tissue receiving laser irradiation.
Depending on the anatomical color, temperature, or surface, the laser light
Direction or speed of operation with varying power, duration and wavelength
It is also possible to provide a radar actuator for changing the speed. Parameters such as the patient's electrocardiogram signal, myoelectric signal, or electroencephalogram signal
When detecting the heart, nerves, muscles, and brain,
Automatically, accurately and precisely place diagnostic or therapeutic electrodes near tissue
Positioned to minimize damage to adjacent tissue to a minimum of J%.
It can be used for The present invention also applies to X-ray equipment, nuclear magnetic resonance scanners,
from an imaging device such as a child-emitting scanner or fluoroscope.
Patient biological parameters can be used. like this
Advanced medical robots by detecting and analyzing parameters
The radioactive tip of the fiber optic device is inserted into the patient's body by
automatically, extremely accurately and patient-directly.
can be inserted with minimal damage. Furthermore, the present invention
is a micro-manipulation device that manipulates anatomical tissues.
Also, changes in sensor and patient parameters for small tissues
Normally, the operating device is activated in response to
Small equipment can be operated accurately, and the operation device is safe and sufficient.
It is a huge labor saving as it is only necessary to intervene when the process cannot be processed.
can be achieved. In addition, the invention has significant medical advantages. For example, the original
It is necessary to be visible in the − mode of the limb movement device due to the light.
as a control device in operating rooms or other medical settings.
It can be used even when separated, and until now it has been attached to many medical devices.
Manually and visually operated using a switch or knob
There is no need for such control. Therefore, in the operating room,
Traditionally, surgeons operated switches or knobs with their hands or feet.
It is necessary to interrupt the surgery, and care must be taken.
However, according to the device of the present invention, these problems can be eliminated.
, can be controlled accurately and effectively. Also, as mentioned above, the sound mechanism
An anesthetist wearing a mask similar to a surgical mask,
Nurses, etc. can access patient data and diagnoses without using their hands.
Ability to reliably record ablation treatment procedures. using this audio mechanism
It also reduces labor and reduces the number of diagnostic and treatment procedures
It can achieve a wide range of effective effects, such as improving the quality of
to be accomplished. Copyright belongs to ^ndron1c Devlces, Inc.
AR'l'll'1OBO'r and ANDRONIC
It is a trademark of the company. AUTOG
Owned by Devices. @ c ha ARTIIROBO'l' and ANDl
tONIO is a trademark of the company. ech. echo Medical robot ARTI (ROBOT)
Iqcho sound pt: input turn and Arthro
Bot control program
                         
Let's do 5. echo To input the voice pattern of Doctor Day
Enter the key Altl. echo key AL to input Rob's voice pattern
Enter L2. echo Key A to input Glen's voice pattern
Enter lt3. echo Key A to input the chef's voice pattern
Enter lt4. echo Key for inputting voice patterns for people other than the above.
-Enter ALt5. ech. To AUTO8 RT1. PRO <aH=><altl nhubby a:brlan, apb a:arthro
ll, spb<enter vpl a:arLhr
oll 4040400 Gloss 1008 1<Enter
ー〉arthro 11 <Enter> Make copy a: rob, spb a: arthro Il
, spb<z turn vpl a:arthroI
I 40 4040 0 30 100 8 1<E
Turn artroll<Enturn<alt-n<alt=n<alt3> Copy a: glenn, spb a: arthro
Il, spb <enter> vpl a:arthro
II 404040 0 30 100 8 L<
Enturn arthroxr<Enturn<alt-n<alt-n<alt4> Copy a:geof, spb a:arthroI
l, spb<enter vpl a:arthroI
I 404040 030 100 8 1kuenter
ー〉arthrOII<Enturn(alt~nku alt=n<alt5> Copy Q:Qther, Spb a:arthro
II-spb<Enturnvpl a:arthro
II 40 40 400 30 1008 1<E
Turn armhrOII <Enter><Alt-C0NFIO, SY3 Break = On file; 20 Buffer; 10 fcbs = 32.32 Device = ansi, sys Device = vpυ, sys Define H860202 $r+eNne abB(x) (((x
) <O) ? −(x) + (x))ddefin
e max(x, yJ
(((x) < (y))? (yin:
(χ)) jdefine rnin(x, Y)
(((x) < (y))? (x) : (y
))ldefLne TR[JE
11define F'ALSB
011define YES'
11define No.
0jdef1ne RAD PERPOTO0,0
01150000jdefine RAD-PER
-POTI O,0012378221defi
ne RAD-PER-POT2 0.001
165279 document define RAID-PIE
RPOT3 0.0010663931def
ine RAD-PER-POT4 0.0O
11500QO book define RAD-PER-
POT5, -0.0009941751defi
ne RAD-PERPOT6 0.0011
500001define 5IIOtJLDEF
It was t 20BB 2066
1define IIYDRO0 ldefine BRIDGE8 1
・1def1ne LOCK
'e'1def ine ll0LD
'l'1def1ne MOV
E 'm'1define F
REE'f'lde f in
e MUS+l'z'1d
efine 'I'RACK'
k'#def1ne FORW, ARD
0x0492#defrne REVb;
R8B 0x0249#deflne
OFF O$define
0PEN 0xFFPFi1
def'jne 8111r1'
0$def+ne (El'llP DINP
T't+ 165.0$define W
IDTll 220.0$dafin
e Dh, PTI (165,0$define
PI 3.141592654
$defina ANG 5TEP
2.0$define Wl)ON
0xlOOOO$define TTMER8
4 $daftnp, POTERRl$define
WDOFFI'0xEF111F#define
USER5tlPPLTED CLOCK ROUTI
NE VECTOR0xlcThe following list of characters is the preferred
The north of the character that will be placed in the keyboard buffer for the command
is a keyboard, voice or hard drive controller. Note: The lower byte contains the ASCII characters of the key.
The upper bar f) contains the Suyayano code. ddefine Fl 59 wood 256$def
1ne F2 60 US 256#defi
ne F3 61;'f=256$d
efine F4 62 $256 good
efine F5 63 books 25
6 do fine F6 64 pieces 256
$define F'7 65 pieces 256・
ddefine F'8 66
Book 256#define F9
67 Body 256$define AL'r B
48 *-256$define A
LT-C46'31256$define ALT
-D 32 * 256$define
ALT-E 1B US$256d
efine AL'r F 33 coming
256$define A'LT ()
34 *-256#define AL'r
-1 (35 pieces 256$define ALTJ
23 end 256$define AL
T J 36 It 256$defi
ne ALT-K 37 rice 256
$define ALT-L
3B End 256#define A
LT-M 50 * 25611de
Made by fine ALT-N 40 2
56$define ALT-024X-256$
defina AL'r P 25
Eaves256$define ALT-Q
16 Sho 256#def1ne
AL'r'-R19 禾256IJ(ie f i
ne ALT-831 rice 256$define
ALT-T 20 *-256#de
flne ALj-U
22 Thu 256#cJef1ne At,
TV 47 Song Dynasty 256$define
ALT W 17 pieces 256$d
efine ALj-X 45 US
256$deftne ALT Y
21 Book 256#defLne AL'l'-Z
+4 Thurs 256$define CUR8
ORUP 72 Pregnancy 256$define
CUR8OR-DOWN 80 Thu 256
$de41ne CUR3OR-LE)i"I'
7B 'l-256$deNn8CUR8OFj-
RIGH'r 7'/ Soft 256$define
VOICE $defjne )IAND CON°f'RoL
lp/$defi, qe ARTI(R
OBOT-COM) aNDjldefine OKA
Y-COMMAND 'ni'$defl
ne No COMMANDjdefzne Q
UIE'[' COMMAND 'q'$d
eNne EMEROENCY S'rOP-COL
IMAND':l'11define RES
IflRVED 6 OOMMANDldefine
ELEV TO TE COIJMAND
F2$define FUL
L-EXilJ3TON C0MM, AND
F4@defxne HALF FLFX
C01JIJAND F6#deNne
FULL FLEX COM)AAND F8
$define FIGURFi 4 COMMA
ND FIO$define 5lli:
T, UP C0111] JAND '2
'$define RESgRVED 13 OO
MMANDldefine RESERVED
14 COM'1JAND$defineARM
COM) JAND Fl#defin
p, H[P COMMAND
F3$deHne KNEIE COMMAND
F5$define FOOT C
OMMAND F7$define
W[(TST COIJMAND F9
9def1ne OOIJPLIANCECOll
MAND 'l'$deflne RFSaR
VED 21 COMMANDI11efinelIE
8ERVIED 22 COMMAND#def1ne
MOVE COMMAND 'g'$d
efine STOP-GOIJMAND$def
1ne IN aoMIJIJI) $define
OU'f' OOMMANDldefine F
IJX COMMAND 'f'11d
afine EXTEND OOMMANDldef
ine RELEAI-Co)JMANDldefi
ne HOLD COMMAND'
h'jdefine LESS COMMAND
'l'1define MORE C
OMMAND 'm'1define
RESER■D 33-(!OMMAND$defi
ne RESERVED-34-OOMMANDld
efine RESERVED-35-OOMMAN
Dldefine RIuSERVlliirl
-36COMM-AND9def1na MlNUG
-COMlJAND I-'1defin
e PLUS-COMMAND
'+' Release of audio output word for each command 1define ARTHROBOT RE8PO
NIEE l$-jel'+n++ 0KA
Y Rh;5POIJSIn 2$+I
efine No RIl;8POIJSW
3$deflng tkoUTET
RESPO+JSlfl
4$define F! JIEROENCY-
8'POP RESPONSK 5$de ['i
ne RWSERVIED 6-RESPOIJs
lli 6$define KLF, VA
Tg RESPONSK 7$defin
e FULL BX'['ENSION RESP
ONSli: 8$derina HALF
FL to X RgSPONSE 9$defi
ne FULJ, FLFX RESPONi
10$define FIGURE 4 R
KSPONSIn 11$dafjne
5ETUP-Rli;S'PONSliC12$+
1efine RESERVED 13 R
ESPOHSE 13$deflna
HKIJRVED 14 Rf2SPONSE
14$defina ARM RKSPONSE
15i+1eflne HIP
RFiSPONSI 16jde
fine KNEE RESPONSli:
17$define FOOT RK
SPON+J: 1B$tlefin
e WRTSTRESPONSE
19#clef'ine COMPLIANCE
RESPOHSE 20$derine
HE8gl(VED 2l-RIl:5PONS[!
i21#define RmSERVER
) 22 RKSPONSH: 22$def
ine M+tsushi Iko RKSPONSE
23$define
5TOP RESPONSm 24$
define IN RESPONSili:
25$define OUT RE
SPONSI 26$l1efxne
FLFX RESPONSm 2
71dsflne IIX'l'END-RIl:5
PONSI! +281deYtne
RgLIjASE-RESPOHSE 29
1deflne HOLD RESPONSK
301define LESSj'[i
,5PONsEt 311derine
MOR[e RESPON3ffi
32jrlefine RaSm)tVED-33R
ESPONS, [C33jdef1ne RIT:5
1flJ(VED-34-RK8PON8K 3
41rloftne R11:5K1(VIED
-35-RIl, 3POIJSK 351
rlefine RE) 11! )tVED 3
.. 6-RESPOHSE 36jdeNn
e LIMIT
371define k4TNU8
RKSPONSK
7 isノ;5ζJ6jdefin
e PLUS-18PONsIc? E
X'rRNVAR, H860202 ARTF (all external
declaration of variables. exL;ern tnt +node:ex
tern inl, are we-1
n continuous motion; ext.
Ern int cant. extqrn int PIERIOD;e
xmu ern ine 5ide; cxl,
ern inj 5holder;
extern int pots (7
);extern int joint;ex
turn int memory (6) (
7) ; exeern int ate
tion;extern Lnt
a++Locomp; eX+, ern jnt
penll On;extcrn int
ouLIIi us;extCrn ir+t
ref dac; extI3rn i
nt panpressed:ext:ern
int pendiampLe;e
xtern ine time'r(4)
;6x ern in fault (7)
;extern int aac(6);ext
ern ine debug; ext, e
rn tnt debugger (64); ex
tern int realpoa(7);ax
tern 1nt phthon ;eK
s e rn 1 n'-pr epropOG+
On path:, 1xtern int
realing+extern in
9arety;QKT-ern int,
5lovnnode;exern tn
t Lr1llnned+eX tern
ine cycler + cyCle-
position ctime :exern
int external-rotat
ion;extern int wrparmn
(20); ex for list ctrl
tern double hx, by,
kx, ky, m1nq; W! Part 1 and knees
extern double offsetl, o
ffset2. oHset3. offaot5 :e
Xtern rloIJble elevate,
fleX-ang; pre-programmed
xt, ern doll) 12 elev,
flex l anatomically ex e
rn double yaw-center
; ext, ern dQtlt) Le pi
tch center;extern double
e roll center:extcrn
5truCt +1set 5at(7
);exeern sL;ruc qstat
a 5tate ('! ); e (tern
5 truth sp! 11r;nr+p
ar+ns(7);extern 5truct'
spu+np pump(4); Mathematical function re
Turn definition extqrn double 5qrt(), Q
in(L cosO, tan□, asin□. ta GLOBVAR8, H860202 ARTI(ROfi All global
global variable int cant;
Switch program int PERIOD −
5; 1ntside -1; surgical table
Bow 2-retire int 5houl+j representing the side of the bull
ρ”;1; Bow representing the actual position of the shoulder
Rarity ipt pots (7);
Directly read the current pot JO1nt+
Joint counter global variables
as int 1ne+nory(6)(7)=J
[99991,199991, (99991,1999
91, [position memory int attention in n++tucomp = r+'AI,
s+<; automatic list compliance criteria
・lnt pend on = TRUE;
Bengt usable flag int out
t:bimuS -0; Panokgu 2nd round
Make dac updatable in ref dac =
FkLSε; Brand new 5T DAC from Banokgu 2 Kund
function 1:1nt-pQn()teQBed = l'A
Ll;[E: The knobs and buttons on the pendant are
Indicator tnt pQndRample+
^DC reading from the pendant f direct int tim
er(4) =lO,0,0+01; due
Tisa Ikultai's set in also fault (7
) = 10,0,0,0,0,0,01;
Error daC(6) for clause -1120,1
28,128,128,12B,1281; BR8
TI/1 dynamic int dac(6) = 10.
0,0,0,0,01; BRPl'['actuator
Update directly int debug
7 lie day patzger 7 lang int de
bugger (64): Daypatzger
variable array int renlpos(ma);
Temporary position memory int pnthnn = O;
Toggle 7 toggle for movement routine
lrN; preprOp03.0npath" o
; int aLo for travel path routine
wmode=O:int trained
rz O; Indicates that the location will be remembered
flag int eycLer, cycLq posi
tion, ctlme; Ml autopsy cycle variation
int external rotatlon:
Indicates that external rotation has been called)
Ha, 9a, a4. a8. s2,24. , a, 12.
81; Listco/Glaia doul+Le, leg, 5 fiiftx,'
sl+1fty, zO; patient standardization
double hx, hy, kx,
ky, m1nq; lumbar and knee seat d
oble offsetl, offset2
.. offset3. offset5 :do
BLE ELEVATE, FLEX-ANG
; Pre-programmed, 1o
ub1a +] tev, flex:
M open scientific movement +1 double y
awcentqr = 1! ]06:+1o
ub1. e pi ren eh cent, ur = 18
741; douhte roll-center
= 2083: 5 tructs 5 sets
5et(7);5tructsstntesta
te(7);5truct spams par
ms(7);5truct spump pum
p(4) = l (0,0x0003.OF
F. (0,0xOOLB, OFF. (0OCO, OFF to 0,0. (0,0x0600. Ok?h'.); Mathematics cut turn definition double 5qrt(), 5in()+co
s() + tan(), asxn(), +hcos
()tnt mode ”I O;int
are W(3in continuous-m
otion = No: Mark f'A r/ for c86
6 header file 1ifndef -5tdioh lifdef-C60BIQ file define NULL (OL) $else ldefine NULL O $endif ldefine EOF (-1) File
Standard termination of $define EO8'\0' string
[9 end $define ARBAD Oasc
ii Lead 9derine AWRITE l
asczi light $define AUPDATE
2 ascii update (processed with this) ldefi
ne BREAD 4 binary update 11def1
ne BWRITE5 binary write $defi
ne 13UPDATE6 Binary update #defi
ne SEF, K CURL tel for current
Find $defjne 5EEK-END 2
Find tel for termination 11define 5EE
K-8ET O Find the absolute one shift This depends on the execution time
Maximum number of files that can be ovend at one time. Matao
Bere noyon/added by stem (: limited. $define SYS 0PEN 32typed
ef char FILE:$define getc
harN fgetc(stdin) $define
getc(x) fgetc(x) $define
putchar(x) fputc(X, 5tdQ
ut) #define putc(x, y) fpu
tc(x,”/)extern FILE 'l'
fopen(+, rice fr eopen(n; ex
tern long 1telL(), 1seek
(), ftell() fseek(); ext
ern char rice gets□, come fgetsO
;$andif $define 5tdioh End of standard header file 5TRUCTS, H860123 All structures used by the ARTIIRf31 program
Template 5truCt 5sat Sat Inode: Tatsuyuso-)'
(07, hold, move, freely int pos:
Desired pot reading (direct int duty:
Duty cycle for speed control
type of actuator (/
Ill pressure, frinoji) tnt r-hys;
Forward hysteresis < r Sanno style (near 1 si
history/IJint r-bys; reverse hysteresis
Phosphorus λ (hydraulic type (-1nt cloc for use only by illusion)
k; Boost for duty cycle timer
Inoku 1nF-Outadr+ Hydraulic type
pop p, DACr to atchLeys int vu+ask; valve mask int
resf3t: Reset motor and valve.
off and int xgain;
Position error gain int vgain;
Speed error gay:y (atchLeysf:
, χ・1 and int deIltd;
Length of waiting time after setting is achieved int Lnc:
Incremental factor int mah for each joint;
Mano 7 humote ° constant, squirrel l only 5
truct spump jnt 0GrVe;
Determining the motor in use] n'e ma 5 k
+ Bompmoke bitmask int
+nation: Current motor status (
F'0RWARD, REVER8double f
low;
l (11iint de1℃axl differential
pot value w, r, t, time int motor;
If the motor status is hydraulic, the valid status is FO.
RWARO,ROF)i′! 1tchle”/S, the motor outputs the DAC output
nt valve; valve-shaped 75 (OPEN
, 5HIJT) In the case of hydraulic type, the joints are rigid when the valve is closed.
Atchleys, air is supplied when the valve is closed.
wait; Posterior joint reaches predetermined position
ACTONCOM, C86020's 101 membrane reads the keyboard buffer,
Row is uttered and the joint is commanded. Note: The letters in the keyboard buffer are on the keyboard, 5AR-
10/spare/toha'driver or operator's...
It is from one of the throat controls. 11nclutie “5tdio, h” $1ncl
uda 'defines, h"$1ncL++de
'5truces,h'$1include'
extrnvar, h”act-on-command
s-from the keyboard but
ferNstatic int the-determ
ined 5elecHon, the deterrer
miaction, have the 5ele
ction and been-varied
; Bwitch(mntje) case O: Mode 0 is for normal operation of Arthrobot.
. input via keyboard or 5AR-10 voice recognition device.
The commands are: friend interrupt driver 111 and 5AR-10
Keyboard from Transparent Hoodla software
placed in the buffer. I-Tsudokono-Roller is interrupted drive
so knot read the controller and keyboard buffer
(1f (pend-on) check-to see if the hand
control has any comator-
us (tbe det@r+n1ned-selectio
:>. the determined action);
Here, the keyboard buffer I is read and the command word is uttered.
and the determined aqua 3 is suitably set.
will be played. make a declaration on the
cjetermined 5 selection
anBctLon (&the detHrmined-selection
. &the-determined action. & have the 5 selection and
act'l○been-verifi); 1niti where selection i6 and akunoyo/ are started after B
ate the determined-select
ion-and-action(the-determinition)
ined 5election. the-determined action. &have-the-8election-and a
ctt. be verifi); break; if(key 5canN == (-1)
)return(-1); increment(key()+ &modq
): break; case 2: The actual office is called. + r (key-scanf) == (-11)
return(-,L); 5tore(keyf l, lIcmode
) +ADJCOIAI3. C860124 11ncLude'5tdlo, h" 11nclude "deflnes, h"11nc
Lude '5tructs, h'11nclu+1
e “exe, rnvar, h”adj” st t
he wr4st-compliance (1) ets
e if (1 n 0 && i < 9) wrco
IIIpmap(0) = 1; Arthrobotl
When storing each programmed position, the
code else if (wrcompmILp(0)
> 8) wrcompmap(0) = 8;
pokeb(308,0xbOOOO,'O' + wr
compmap(0) );vrparms(13)
w wrcompmap(wrcompmap(0)
); wrparmn(14) = 4095 / wr
parms (13): ADJIJ43T, C86012
3 This route/(2) allows the user to check the parameters of the joint.
It can be arranged. 11nclude '5tdia, h"1tnclu
de “defines, h”111nctude
"attracts, h'int i, reply
: double number, number2;1ockup(
TRυE); clearscreen (10,24); 1f(1
, , Q&&i<ma)", pnrmslJ), f-hys); 5can
f ("%d\n', &parms(+), f-h
ys): Yaw i6 and pinch require the same constant.
So, when you update the Yo constant, the pinch constant is automatically updated.
It will be done. if Ci day 4) parma(5), f-hya
= parms(4), f hys; prlntf
("H-hys (wriat: delay),
now%rl:”. parms(1), r-hys):5canf
(“%d\n”, &parms(1), r hys)
;if (i = 4) parms(5), r-
hys = par + n5 (4), r-hys; pr
intf ('χgain, nOW%d: ',
parms(i),xgaln);5canf(”%
d\n”, &parms(1), xgain):
if (i == 4) pnr+no(
5), vHain = parma(4), vga
in; if (i = -s 4 ) par
ms(5), dead = parms(4:],
dead; printf ('Mush mode c
onst/lnt, nov%d: @1clears
clean (10,24);Lockup(FALS
Ii:) : twr(+ Adjustment of list parameters I
uckup (TRIJE): clearScreen (10, 24); lnu'/
ecL[5lJr (12,O):prjot['
(“Adjujit Wri, 9th parume
ters\n\n”);f(”Wr+st mode:
l = normal, 2 = 1ock YA
W &PI'rCHitch trackjng\n
'Xn') + printf ('Wrist +nod
e, now %d: ', wrparms(
0));5cant'(%d\n',&wrpa
r+ns(+)));printf(V offs
et, now %d: w, wrpar+n
q(l]);5canf (s%d\n”, &w
rparma(1)):pr1nt4(”pitch
WindOw, now%d: ”, wrp
ar+n5(2:]) ;5canf ("%d\n"
+ &yrparms(2));printf(”
0vershoot constant, now%d
: ”, wrparms(3));5canf
("%d\n", &wrparms(3));pr
intf ('pitch velocity sca
ling factor, now tl)d:'
. wrparms(4) ); 5canC('%d\n", &wrpar+n5(
4));printf ("Count down
timer, now%d: ”,
wrparms[:5));5Canf ('%d\
n', &wrparms(5));ELEVATE
0FPSE'r PARAMliTER8pri
ntf (YaW 0ffsGt const for
elevate, nov%d:1゜wrparl
l18(10) ) ; 5canf ('%d\n", &, wrpar+n
1(H):l);printf(”pitch el
evat offset, now%d: ',
wrparms(11));5canr('%dsn
”, &wrpar+r+5(11)):pr+ntf'
(”Roll extc!rul/5levat
e of rset, now %d: 1°
wrpartnll(12)) * QCanr ('%d\"1", &wrp:+r
ms(12)); C0kAPL, tANc2 5CAL
ING FACTOR3printf ('COMP
LIAN (J 5CALING (8:hard-64
:5oft). nOt? %d;', wrparms(13
));5canf (“d\n”, &wrpar+
nn(13)) ;nrparmo(14) = 40
95/wrparms(13);prinR('W
RIST COMPLIIJEN'rARY C0N5
TANT = %d\nl. printf ('Pitch tracking o
ffset constant, now%dwrpa
rms(15)): acanf("%d\n', &wrparms(
15));printf(”Roll tracki
ng offset constant, now%d
;wrparms(16:l) ;5canf ('%d\n", &wrpar+n5
(16)) ;clearscreen (10,2
4); 1ockup (FALSE); ANATOM, C851203 This louch allows calculation adjustment of the anatomical movement of the leg.
With this routine executed, the routine REVER1,
C and FORWARD, C is the incremental angle and increase of the called waist.
The bend angle is input as a parameter. $1nclude “5tdio, h”$1nclu
de 'defines, h'$1ncLude
'5tructs,h"$1ncLude"ax
trnvar, h'anatom(de, df) double de, df : double an(<Q, llngl, an((2
, an63. ang4. ang5. an((6;dou
ble elv, flx ;lr (train
ed ) if ((set(1)-mode !=MOVE
) &, & (set(2), mode != M
O■) (set(3), mode!=MOVE))
Lock JP (TR[]Ifi) ;angl =
pots (1'l US RAD PERPOTI + o
ffsetl;calc arm coor4in
a eang2 = pots (2) this RAD P
ERPOT2 + offset2; calc ar
m coordinaEean(13g pots(
3) * rhD PERPOT3 + -1ba5
et3; ang5 = pots(5) −J
RAD PERPOT5 + offset5
;calc pitch attitude
o = ang4 == ang6 = 0.0
:for lag(&elv, &t'lx, an((
0, angl, ang2. ang3. ang4. ang
5. arelev= (elv / PI) book
180.0 ; flex = (fix /
PI) Book 1B0.0; elav +=
de; elv = (elev/ 180.0) years old P■;fl
x = (flex / 180.0): I, PI
:r evJag (&an%, &angl,
&ang2 誂ang3, *ang4, &a
n((5, i=ang6set(1), pos = (
angl-oRsatl) / RAD PEI(P
OTl:5et(2), pos= (ang2- oR
sat2)/ HAD PERPOT2;5et(3)
, pos = (ang3-offset3) /
RAD PER-POT3;5et(1,), mode
= MOV[i: ;5et(2), mode =
lvlOVE, ;5et(3), moae = MO
VE; After moving, Binotebosotka was suddenly given a seven no.
. 1ockup (FAI, SIM): lse ball CIeilrS-2roen(22,24)+move
cursor(22,0):prxntf(”An
Atomic motion is not av
available untllls 5caled8o
');prjot4('\n"); movecursor(24,0) :AROU'r
, C860122 Direct communication with AFL-103 to verify audio for other functions
Speech synthesis using a set of routines arout(x)
・N=? memorized by the device? Speak Yahu word X. ) include"5tdio, h' $1nCludp "def+nes, h"$1ncl
uda "5 tructs, h"gdt+fln+=
5AHIO DATA POR'l' 0:
<0350#defrnesA) (10ST, A'rl
JU POR'[” 0x0351ur+stgne
d char output 5trln3(
6);1r1t 1: +f (debug) prirHf (”arout: word %rl\
n”+X):lfc x<L ll xn33
)return(0); if(1nporeb(SARIO-3'T'ATUS
-PORT) & 0XOOO4) rsj, srn
(0); qtrcpy(output string, ”O
A Xrl ); if (xn9) output string (2) = Cunsig
ned char) (xlout, put-stri
ng(3) = (unsigned char
) (x%for(i = O; oueput s
tring'(i)! = Oi i→ )w
hile((1nportb(5ARIO-8TAT'
US PORT) &1,! 1. (1nportb
(5ARIO5TATIJSj'ORT) &);
                         
”outportb(8ARIODAT
A PORT, output string
(i));return(x): ] ARTIII(OIl, C860202ARTI(RO
BOT H 1t11 BRII) G118TONE Arthrobot! Control program 11ncL+
ole '5tdio, h'11nclude'
dsfinea, h'l 1nclude 5true
cts, h@11nclude'globvars
, h”main(I tnt i,j; clearscreen(0,24); mavecur
aor (0,32');5etup);
Initial stage of the system 1.H”
2 constant mainmsnu(); cant w TRUE while (cant)
tie/loop do ctrl-1loop(1; ir (autocomp) all cut matlc vvrlat complian
ce-scaling(1; dtreset(1; clearscreen(0,24); move+:u
rs+)f(0,O);prLntf("0ood
bye flora AR'rllROBOT It
Xn') ;unlink from-inte
rrupt(USWREIUPPLIED-CLOCK
-ROtJ'rlVECTOR); do ctrl 1oop() 5napshot',);process();
Distribution processing dtvrport (8
, outputs ); AtJ'rOCOMP, C8
60130 This routine;
” position, the squirrel must be moved to maintain the correct position.
The minimum side of the strike is determined. $1*clu+te 'derinpa, h"j1n
cLu+Ie '5tructs, h"11ncL+
+1st grade @ex*rnvar, h'au t, oma
t lc-wrist-comp 1aru:e-s
eal ingT Move to the 4th character position recal+('5'); 4th character position
The position is represented by position 5 a*tay (1oooo );
Wait 10 seconds until it reaches the figure 4 position lol
ile (wrist at 5et-position
n(1&&wrcompmap(0) > 1)a
dju+1t-the-wriθt-complian
ce('-'); Compliance 1de
lay(1500); printf(” ”); ! Excessive I strike
Indicates that a weak point has been reached・Old Le (!wrist
at-set-post tronf 1 h,k
wrcompm+tp(0) < 9adju++t-
the-wrist coproduct pLiance('+'
); Compliance by 1 jalay (1!
') f) O): auLocomp = FALSE: 1 End of automatic compliance standardization of the list.
ENDThis routine makes sure that the actual position of the list is the same as the desired set position.
Same or no, return to Bepurresbonos. wrist-at set position (1
giint rlag, joint;flag =
'I'RFIli:; C flag=I'ALS[i:; break: reeurn(j'Lag);
robot control unSigned znt +n5
ec;unsignOd Long get th
e-time of aa'yN;unsigned
Long base, max-ticks; max
ticks = mri13c *-18,'2 ticks
ks/sea/1000 m5ec7sec = ti
cksmax ticks = (unsigned
long ) msec from 1B2L / loO+
)OL; base = get the-time
of-dayN;while (get the-
time of day()-base < may-
ticks )do ctrl 1oop();
Normal control loop execution scale the wri
Called immediately after atl two broom standardization, the operator
We urge you to verify the standardization of your compliance standards. 5cale the wrist() 1 n t ch : 1ockI+p(1'RIJF:) :el+401"
1cIJ+! I+ (10,2-1); 111ove
cursor (12,0); print; ff(”
”); Makes a 7 “hi” sound to the operator.
[, be careful prlntf ("l'he arL
l+robul, is abouL Lo qca
le the wrisL cby\n'); printf ("movmouth1g 1Jle le
g 1nto th+4 't°1g1lre
4' position. printf (“If co+appliance
scaling ts dGsired u
nd arLhr. is clear, \ka); printf ('enter 'y': ”); W old
1e((ch -keyH) ” (-1) );
clearscreen (10,24); movac
ursor (12,O)+if (ch tsu'y'
ll ch ko'Y') hold-the-Wrl
sLO; list if not fixed yet
auLocomp y TRUJ flag
Set the autocono appliance base printf('T
he compliance or the
wrlst is shown in thr
lgbt corner \”); printf('
of the 5clean, Co+opLtanc
e ranges from l (veto
8 (fir+o)\n\n@);1se printf('CompHance not 5ca
led8n”Lautocomp = FAL8B; 1ockup (FAT, SE): l 5cale the-wristBRto
atiS, c 86013
0 Kono Routine (:yo+JBrjdgestonI3
Rubber operation 6 hC1ltl controlled 0$j
nclude "5Laio, h"#define
YAW 4 $define PITCH5 $definp ROLL 6 $1nCLude "defines, h" $1nc
lude "st, ructs, h'sLatlc
int 1nodeflag(7);
Set the speed value to 'freO' on the first bus nuuliLe
temp; 5w1tch (set (joint), mode)C
! 1S8 HOLD: Ca5e 1vlOVE 2 center starting point first move (7), hold is f
Oif (modeflag(jo
int)==FREE) Bus set mode is
FRIlellmodcflag(joint) =
1. JOVE;5tate (jojnt), motor
= 2048; Set the starting point to the middle position modef
lag(,jolt) =MOVE;wrparms
(1B) = rilALsE;5et(PPrCi(
:1. pos += wrparms(11);b
hoLd(joint): break; Ca8e TRA(':to: modellag(joint) ff TRACK;
0hnLd (joint): 5et (jotnt), pos = 5tate (JO
tnl, ), pOt; pitch in track
Reset treak case FRI: modeflag(joint) x FRFiJst
ate (joint), motor = O; 5et (
joint), pos = 5tate (joint
), po℃; free middle wrist rest bre
ak; Ca5e MIIGH: modeflag (joint) = FRHE;
break using the same reset as free mode; case LOCK: (if previous mote becomes FRE) FIE to emergency fix
Keep 1f (modeflag(joint)==F
RE[e) Set mode is 11'RW Fi
flet (joint), mode = FREE; b
reQk; bdrlver (joint); BHOLD is 1r for xdges tone
Same as HHOLD. This routine is! to change the pressure
more compensates for the force of the actuator. This routine is a proportional grounder
and velocity feedback. bhold (1) intl; int offset: ini xerror, verror, moto
r;xerror = 5et(1), pos -5t
ato(t), pot; controls the maximum absolute value of xerror.
If (xerro
r > parms(i), r hya ) xer
ror=parms(1), r-elsa if
(xerror <-parms(1), r hys
)xerror = -parms(verror
= 5tate(1), deltax main parms
(1), vgaln;if(xerror <-par
ms(i), f hys ll xerror > p
arms(i), t-offset = ((xer
ror rice palms (1), xgaln) / ;3
2) -vatelseoffset = Q; 5w1tch (i) Pitch and yaw operation
Do the devices need to be connected (casI3 YAW: if (r, at(PI'rCl+:1.+nod+)
+ == TRACK) Pinotetrakki/
Gubinochitrano? / unrelated to gukoushi else if usual list fixed 7-do S
tate(4), motor −= a-th set/2;
Since the gear ratio is 2=1, the factor is 2statc(5
), motor +== o[+geL/2; yaw
1 rim lr (5tate (5), moto'r > 409
5) st, ate (5:], mutor = 40
95;else u (5Lata(5), motor
< u ) 3LatQ(5), m0tOr = o
;break; case l'l'i''Cl-1: lf(Bet(1), mode --TRA(':K
) [5late(i), motor W wrparm
s(15:l + (5tate(il, pot
-pitch center) rice 2;5 tat
o(YAW:l, m0tOr x 5tate(PI
T()I), m0tOr; e1θe state [a], motor += offset;
5bate (5), motor += area also: supplement
Number shift trim if (st4teC4), motor) 4095)
5tate(4), motor = 4095;el
θe if (5tate(4), motor < O
) 5tate (4), motor = O;br
e a k 1 Case R(ILL: if (5et(ROLL), +node = TR
ACK) O-root trunking abate(
i), mator = wrparms(16:l
+ (5tate (i), p. "0th - cencer) I2.6゜1se Sbate (i), motor += offse
t; break; ) Switch end if (5tate(i), motor > 4095
) 5tate (1), motor = 4095:
else if (5tate(1), 1notor
< O) 5tate(1), motOr = Q;
tool test only (two pairs, pitch and yaw are among the parameters)
Yaw and pitch are centered by 2048 for a constant value of
1275 or roll joint (two pairs ctr
l parameter and related if (wrparmq(0'l
= 2) 2 measures pitch and yaw to the center
costate(41motor = parms(4)
, dead; The initial value is set to 204B and 5cate (5
:1. motor = palms(5), dead;
l end of bhold Br 1ddt3s BDR for tone actuator
IVER is the same bdrxver as HD RI VER
(i) int i; 1nt dacOIIL+ COMP LI+lI:
QIIt + tia COIJ = 5tate (1),
+uot,)ry wrpar+n5(13)+
4091f' (5et(i), +21od
e = * = FRFI, lfi l l Bet(1)
, mode --MIJS)! )comp-dac
out = dacout; Complement value is main 1 + t
u: Seven throats lse Since it is a complementary value, pl + P2 = constant comp-dacout, = wrparms (14)
-dacout;if (dace)ut) 255
1 dacout to maximum pressure (Nidorim "Kurira"
f) dacout = 255; if (comp-dacout 2.55) c
Trim omp-dacout to maximum pressure ((HOHp-
da(!0LIe z 255; dac(parms[
1), outdr) = dacout; po
Send sn to DAC array CEN-WR8T, C1351
213 Find out the value of NoriStbot when the list is centered
11+nclude "std+o, h"
#】nclude “defLnes,h”1Fin
aludr4 0tructS, h'$1nclu11
e 'exLrnvar, h'cen wrst, (
) char dunamy(15); clearsc
reen(0,24); movacurSor(0
,0) ;prlntr("center Wrl
St jhell press 'C'
tMn press IEN'L'ER\nl)
+jca++1'("%'Xf+"j&mountain+uu+I
y(0:l :yaw canLer = p
uts(4); pit+:h canLt=r=
1)ot++(5) ;roll-cenLer
;pots(6) 1prinLf(C1u+LOr
Od vnluea: YAW = %f,
PITOII = %f, ROLL = pull\
11', yaw-center, pltcb-ca
nmoer, roll-canter) :CHAN(I
Some of the voice recognition parameters are changed by the routine in EV, C, 86020.
The parameters that can be changed are as follows. rth = rejection threshold eho = word start detection threshold thl
W word boundary detection threshold thu = new
New score threshold if = self-learning flag tbl = self-learning score threshold vcf
- Voice side rejection flag rJbzf - Rejection buzzer flag echbr - Echo back flag $Inalude 'std+o, I+'#10el
ude'd+3fine3. h”#10clu+
le "5 tructs, h"1inelu+I
'exLrnvar, h”CIl FI II p u
,,-tII G VOI Cer u CC
1g+l l L l o++ par II
I e ter S I )uoajH;u+td
Mountain nr sa++d sLr]nHt, (32B
), roe'! IVdqtat+c uIj
signed inL rth = 40.
thO=40. thl ++ ・1
0; 5Latjc un+t1g+u:d orL 1
1' = 0. tbL=30. vcf
Irjbzl' = O, ecbbr = O:1
ockup('1'RIILd) ;movecu
rsor<0.0); clear+Jcre
en(0,24);prinLf('SAR10Voi
ceRecognitionparamctorR
outine \n');printf("gnter new va, jun
s or <CR> for no change
efrush thr+-1coyboard-bu
(Ver()θendcomm/Ind-to-the
-shsxoc”, recasve-st, rr
ng) Takes the current 1st shift of the variable. 5 and co+n+nond-to-the l:I
ARlo("a'\r"+receive=,5s
canf(recoive-string, ”%
d @, &rtl) ):eentl-c
o+++mund-to-tbe-8ARIO(”AS
r”, receive-sscanr(reca
1vI3sLrurg, ”%d%d %J %LJ
%IJ'. 5scanl'(raci=ive-st, rit+g
, '%d %d %d ”, &vcf. ask-operator-for-1nput(”W
ord Begin DetectionThre3h
old (%3d): ', &thO); ask ope
rator-ror 1nput(”Word Bo
undary DetectionThresbold (%3d): ”, &tfil); ask
-opQrator for 1nput('Upd
ate 5corIIThresh01+1(%3d)
:w, &thu);ask-opera
tor for-impue ('8elf Lanrn
ing Flag (Chi3d): ”, &lf
); ask operator-for 1n
pue(”5elf Learning 5core
Threshold (%3d): w, &thl); ask-
operator for-1nput(”Voice
Control Flag ($3d): ”,
&vcf ); ask operator for
jnput('Reject Buzzer Flag
(%3d): ”, &rJbzf);a, sk
operator-for jnput(”Bcbo
Back Flag (%3d): ”, &ec
hbf ); Write the changed parameters again 5
print, f(θend-string, ”E,
%d\”+rtll);5end-co+n+
nand to thq 5ARIO(5end st
ring, recasve8 also ring): 5pr1ntf(Bend-str1*g, ”A%
d1%d1%d, %d, %d\r"+ th
. thu, if, thl); echbf); send-comtaand to-the-8ARJ
O(5end string+ r@ceive-s
end command-to-the 5ARIO(
'M\r', receives-stringmove
cursor(CLO); clearscree
n((L24); mainmenu() 1ock++p(FALSE); ask-operator for-1nput(p
ointer to query-st, ring. to-var unsigned char body pointer-t
o-query strlng;11 t
Next post
a ble :printf(pointllllr-
'to-quflry-8t'1ng+ no point
ter to-tqhile(key 5can(1*
s (-1) );if(('keyscan(1
&0xOOff) -0xQOOd)
key(); printf(*\ns): e L+qs 5canf('%d'', pointer to v
ariable ); body poznter-tO-Va
rlal)le &= 0xOOff:θand
coInmand to th++ 5AR10(5e
nd, receive )ur+signed
chnr *5end, *receive;1d
efinn 5ARIODATA-PORT 0
x03501define 5ARIO-8TATU
S PORT 0x0351int l; if((jnportb(SARIO-3'rArll
S PORT) &Ox<0040)
l11OxO040) printf(” SAR, -1011ar small var
e error! \n' ):return
(0); wbile((1nportb(5ARIO-3TAT
US-PORT ) & 0XOOO20xOO02)
;outportb(5ARIO'8'rATU8P
ORT, 0xOO); Thiable for <
i=O; 1lend(i)! =O;
i++ )wbjle((1nportb(8no
RIO-8'rATIIS POR'J')
&== 0xOO02); outpor tb(5AR10-1)A'l°A
FOR'r, 5end (i 〕 ) Tran
When Super Rent Notsdon is on, the output goes to the keyboard.
1 sent = 0; O while ((1nportb(5ARIO5TATU
S PORT ) &'-0xOOO1); receive(1) = 1nportb(5ARJ
O-DATA PORT )if(receiJe(i
)! = '\r'&& isdLgit(r
receive(1) == 0) rec13
1Ve(i) −”; while(receive(1−+−))!
a'\rl);receive(i)t
m'\Of; wbile ((1nportb(8ARIO-8TAT
U8-PORT) &0xOO02); outportl 5ARIO-8TATUS-PO
RT, 0xO1); Bnable 1nte DACRF13. DAC output of Bridgestone actuator by C86011 flow δQ-chin
is refreshing. This routine also interrupts the timer
Since it is activated more, I will run it with tsukund @ 11nclude 'st mountain o, h'11oclude
o ”deflnnns,h'1tncl+le
"5 tructs, h' number 1 nclurle" ex
t,rnvar,h”dac-refre+3bO-ir (ref dac == TRIJE)ltd
ac(0, dac(0)); 1 tdac(L dac(L)); 1 tdac
(thank you dac(2));1tdac(13,dac(
3)); 1tdac (14, dac (4)); ltdac (15, aac (5)); ] DE8ELACT, CB6.02+15 This procedure is key
Read board pan 7a and decide on the required selection or un.
and then return the determined selection or action. Note: This routine is executed by adding one character at the beginning of the command character.
Determine the source of the command Source of the command character
Subscript keyboard None 5AR-
10 Voice recognition device #1ncLude "defknes, h"#1nc
lude '5Lructa, h'jinclutl
e'exLrnvar, b'make-a de
ciaion-on the determined-
θelecttOn-and-p2-determin
ed-θelectron, p2-deter
mined-actlon. p2-has the-selection-and
actlon-been-verified)i
nt p2 determined-select
ion, lp2 determined-p2
has-the-selectron-and-act
ion-been-verified; static
unsigned long when the-
8ARIOm1 crop turned on; unsigned long getJhe-ti
me-of day();5tatic unsig
ned int was-the-most r
cent-respoken, the-moa
t-recentWQrd: 5tatic unsigned int
command, previous +comman
d 5source: 5tatic urlglled int
special-command; unsigned
d int key (); ART item ROBOT
Pat will turn off if more than 20 seconds have passed since the command word was given.
be made into All voice commands are called ARTHROBOT.
phone got-turned-on
) on 0xO16CL )if(atten
tion == YES ) θet Lhe rsJ
eat buz, zer flagCl1ALSE);
attention w No; last command
If a word is not uttered, utter the same word if (was
the most recent response
-word-spokenwas-themost r
eCent response word 5poke
n = the most recent response
nse word ); keyboard buffer return
If there is no character in (-1), 1 f (key 5can
() ”= (-1) )return(-1)
; At this point there is at least a - key in the buffer.
command = key();
5special, -command-F'ALS2;5
w1tch (command) First, handle special cases case EMERGENCY-8TOP COMMA
ND:Ca5e”: the most-recent response
wordEMERGENCY 5TOP-RESPON
SE; was-the-most-recent
sponse-spoken=5peak(th
e most recent-response vr
ord) ;*p2-determined 5e
lection =sCOMMAND; 1*p2 determined action
= 0; years old p2 has the-F3elec
tion and action-=YES; 5special command=TRIJE
;break; cBae VOICg: command 5source = VOICE
;special-command = TRUE
;reaki case HAtJD-C0Ni'ROL, :c
ommancjsource = HAND C0
Ni'ROL; special-command =
TRUE+break; calle ARTHROBOT-COIA4AN
D:eetJhe-reject buzzer
flag(TRLJE); the most rec
ent+ response word =was
Jhe most-recent response
*ord-=5peak(the most rec
ent-response-word ); when
the-8ARLOm1cropl+ooe-got
turned. get-the-time of-dayO;ate
tion=YE
S p2 determined-selection
= o; reached p2 determined-a
ction -0; reach p2 1eas-t
he second day election and-actlon-
been-verified = No; 5pec
ial command w TRUE;brea
k; case 0KAY COMMAND: the
most recent response wor
dOKAY RESPONSE; was the most recent res
pose, -5poken = 5peak(t
he most-recent response
ord); body p2 has the 5elec
tion and-verified = YFS
;5special command w TRUg;
break; Ca[][l No Cot-11,4AND:5
et-the-reject-buzzer flag
tM-most recent-response-W
ordNo RESPONI was the most recent reSpO
nSe-spoken=5peak(the-mo
recent-response word)
;attention body p2 determined-day selection
tree p2 jetermtnea action not yet p2
has the 5 election-and-aCt
iOn been-verified special
command = TRUE; 1) reak; default: break: Process the selection command here if(special-command-TRI
JE)return(-1): if(previous-character=x
VOICE&&attention
== , NO)lse switch(command) ca8eELEVATg-COMMAND :thq
Jpost-response-vrord
=*J18-the-m08trecent res
ponse Wordspeak (the most
recent response vrord G*
p2 determined-selection
=*p2-determined action
= O; break; case FULL-fD: TgNSION C
OMMAND: the most recent
response two word ==wasJhe
most recellL respo+11
e vvordspeak(the +nostJ-
recent response-word);
p2-determined 5 selection
= FULL p2 deLormined a
ction = 0:break; case FI()URE-4COMMAND:t
he most-recent response-
word =waθ-the-most-rec
ent response-word-speak(t
he-most-recent response-w
ord );-*p2 aetermnea-se
xection = FIGURE 4 p2 d
etermxnedactlon = (L
case WRIST COMMAND :the
most-recent-response word
d =+wasjhe-most-recen
t-response word-speak (the
-most-recent-response-wor
d): Button p2-determined 5elec
t1on = WRIST-next p2determi
nedaction = O; break; case FOOT-COMMAND: the
most-recent response-word
=Wllθ-the-noost-rece
nt-response-word-speak(th
e-most-recent response-wo
rd ); *p2 detcrmined-sele
ction = FOOT-US p2dsterm1
ned-actlon-0rcase KN
EE-COMl, AAND: the most
recent response-wordwas-
the toast recent respo
nse word-w 5peak(the mo
recent-response word
); Law p2-determined 5electio
n = KNEE-unp2-determined
-action=O:bri=ak; case HIP COMMAND:tl+e
most-recent-response-word
waeJhe-mos t-recent-respo
nse-word-w 5peak(the-mos
t-recent-response-word)
;Button p2-determinod-selection
= HIP-*p2determined-ac
tion = O:break; case ARM-COMMAND:the m
ost recent response-wordW
aBJhe 1II08j rfICGIlt l'G
GpoIlseword-” 5peak(the m
osjrecent-respons-word L!
p2jetermined-selection =
ARM button p2 determined action
n! O; This Nostem is currently a keyboard or
is an additional two-select command that can be executed by voice only.
However, these 7 functions are hand control 2.
I think it will be implemented more. case OOMPLIANECOOMMAND
:the most,,-recent-respon
se word was-the-most-recen
trer3ponse-word-m 5peak(
the most-recent-respons@-
word); tree p2-detsrmikoed-se
leclLon=COMPL p2dete
rminad-action = O;bre
ak; case iTIJPJOM) aND :the;
ost-recent-response-word'
W(1G-the-most-recent resp.
once-word-speak (the-kawaoSt-
recent-response vvora)
;*p2-determined-seLqction
= OI! i'L'LIFtp2 determ
ined action = O; break
; Characters '+' and '-' 14 specially processed keystrokes with AC/CON commands
and varies depending on selection. Assign to action
It will be done. This feature makes the keyboard truly a hand control.
It can be used in place of . case MINUS COMMAND :5w1
tch(-*p2-determined 5elec
) case glJVATE-COMMA
ND :case FULL E)C['ENSI
ON-COMMAND: case HALF-F
LEX COMMAND: case FULL-
FLEX-COMMAND :CaSe FIGUR
Ehi4-00M4-0O: case 5IiTUP,
J: OMMAND : the most recce
nt responseSe word=was
-the most-recent response
word-=5peak(the-most r
cent-response-word);*p
2 determined-action
ts p2 Jas the-select
ion and action-=YES; break; Ca5e ARM-COMMAND: the-to
astrecent response vvord
= was the most recent r
espol]se w□rd-=speak(the-
most-recen also-responsew(+rd
); tap2 aeterminedaction
=*p2haB the 5eLect
on and actlon-,, ygs; break; case HIP COMMANI): the mo
recent request word
FLEX-RESPONSE; was-the most recent-respo
nse -wordspoken = 5peak
(the m05t recent responses
e word); rice p2 determined-
action FLEXCOMk4AND; US p2Jas the 5election an
d actionbeen Verified f
f YES; break; case KNEE-COMk4AND: the
most recent response
ordFLEX RFSPONSE; was-the most-recent-respo
nse wordllpoken = 5peak
(the most-recent-response
-word ); *p2pdetermined a
ctionFLEX COMMAND; US p2Jas the 5election-an
d-actionbeen verified =
YES; break; case FOO'T COMMAND: the
-most recent response-wo
rdIN RESPONSE; was the most recent respo
rrse word spoken = 5peak
(the most recent-response
wor4); rice p2 determined-a
ctionIN-COMMAND; tree p2 has the 5 selection
and actlonbeen veril'i
ed = YES; break; case WRIST COIJMAND :th
e roost recent response
wordRgLl'EA! 'IE RE;5PO
NSE; was-the-most-recent
esponse wordsspoken = 5pea
k(the most recent responses
e word ); button p2 deter+n1ned
actionRELEASE COMMAND; has the-selection a
nd action-been verzfied
” YES;break; case COMPLIANCE-CωhabutsuND:
the most-recent response
wordLESS RIESPONSE; waθ-the-most-recent resp
once word spoken = 5peak
(the most recent reaction
-word ); not p2 determined
actionLESS Co.ND; Keyaki p2-has-the-selection and
-action-been verified? d m
YES; break; default: break; break; case PLUS COMMAND: 5w1
tch (rice p2 cletermined 5el
) case ELBVATE CO
MMAND: case FULL-EX'['E
NSION-COMMAND: case HAL
F-FLBX COMMAND: case FUL
L FIJX C01vOJAND :calis
'FIGURg-4(EOMMAND: case
5ETUP COMMAND: the most
-recent response wordS'rO
P RESPONSE; waθ-the-moat-recent respo
nse WOrd-epoken = 5peak(t
he most rec8nt response w
ord); US p2 determined ac
tionGT'OP-COMMAND; IT)2 has the-selection a
nd actiOn-beenVerified
= YES; break; case ARM COMMAND: the m
ost recent response wordO
U'r RESPONSE; was the most recent reSp
once wor(1-spoken = 5pe
ak(tbe most recent response
se word ): end p2 determined
action OUT Co. ND; US p2 has the 5 selection
and action-been verxfied
= YES; hrPak: case HIP-COMMAND: the m
ost recent,,-response-wo
rdEXTEND-RESPONSE; wHθ-the most recent-res
ponse word spoken w 5pea
k(the-most-recent responses
e word );-*p2 determined
actionEXTEND-COMMAND; not p2-has-the 5electlon and
-actionbeen-verified w Y
ES;break; case KNBR-001JMAND: the
” oat-recent-response-wor
d+1CXTEND 18PONsg; was-the-most-recent respo
nse vvordspoken = 5peak
(the most recent responses
e word); rice p2 determined-a
ctionEXTEND-COMMAND; *p2-has-the-selection and
-actionbeen-verified w Y
ES;brelLk; case FOOT COMMAND :the
most recent response word
OtJT RESPONSE; was the most recent response
nse word [1poken = 5paak(t
he-most recent response
ord);*p2 determined act
ionOUT-COMMAND; tree p2 has the 5 selection
and action-been verlfl
ed = YES; break; case WRIST COIJMAND :th
e most recent response-
wordHOLD R1ζ8PONSE; was-the-mHt-recent rtispo
nse wordSpoken = 6peak(
tbemost-recent response w
ord”):1p2-deter+njned a
ccio 口■ (OLDCo)ノ0aND; Book p2 has-the 5 selection-and
action-been verxfled=
YES;Breal to Ca5e OOMPLIAJ'JCE-COk4MA
ND :Shibe moStrecent-rQ
spoIISQ wordJf)RE-RESPO
NSE; wag-the most recent respo
nse word spoken = 5peak (
the most-recent response
word ); *p2 determined ac
tionll, ノ; 1 cheer REJOM + 4 sake D; not yet p2
bPis tJu+ 5election and
action-been ver+f'ted =
YES; break; default: break; break; to regular command case MOVE CoMJAAND : the
most recent response9e word
=waθ−the most recent
reSponse word-= 5peak(the
most recent response word
d): Next p2 determined action
= MOVE-COMMAIJD; tap2 has-
the 5 selection-and-action
been--YES; break; case S'rOP-COMMAND: the-
most recent response word
=W5Lθ−the most 7ecen
t response word-m 5peak(t
he most-recent-response-w
ord); next p2-has the-selecti
on-and action-been--YES; next p2 determined-action = S
TOP-COMMAND; br8ak; caRe MIJA19E COMMAND:
tllII-mo+3 mo-recent response
se-word =RESPONI; waθ-the most-recent res
ponse-word-speak (the-Ioos
t-recent response two words
) ; tap2 cletermioed action
;RKLEASEE COMM-Thu p2 bas
the 5 selection and a, c
Lion-= YES; break: case ) IOLD COMMAND: he
most recent response Wor
d = wa8 the-+nos also-rec
ent respoIlse word-= 5p
eak(tbe most recent, resp
once-word ):tp2 determine
ed action=HOLD-COMMAND;
rest p2 has the 5=lection a
nd action-= YES; break; case IN COMMAND: the mo
recent response wor
d==Wa[1tile mosire
cent respoIls(+ word-=
5peak(Lhe-+noSL-recGnt r
esponse Word) Nio p2dater
lninedaction=ND to INCOML4:end
p2hasLhase,LecttonandF1et
LOIl-Yr';S; break: ctssa 0IJT COMMAND: the
mosshireCen'-response-word=
Wait, I+emost, recentrespo
nseword-=speak(tl+el+105t
I'e Cent response w□rd)
Knee*p2 detI3rmined actio
n = 0LIT COIJMAND; *p2 t
+X+s Lhe sel++ction ana
l nation-= YES; 1) r(!ak; case FIJX COMJAAND :th
i most recent re++1+on
se word = WFIθ−the m
ost recent rQspoIISQ W
Ord-” 5Deak (LIIR+++oIII
t, -recent reSponse word
) ; Tree p2 de LOrllllnnnd ac
jl On = rll-EX COMMANI); *
p2J+as the 5 selection an
d action-1= YIES; break; casp, EX'L'ENL) CIJIAMAN
D : Llltl moSL-reesnt I
'l+++1lOIlne WOId
: WaB the m, 08trecent-resp
onSe word-=5peak(Lhe +++
ost recsnt rQspoIISQ word
); book p2 determj++ed acLi
on = EXTEND COMMANI) f:
p2 has thq 5 selection and
action-ified = Yl; brG(Lk; Additional action/yo/Cnne LESS eOMMANl): 1, ++
e most rfJCe+l l,re3poI+3
'/1QId =+Wail Lhe
lll0Sj rI3cent rG8poIl
so Word-=5peak(the most
recent response word); wood
p2 determxllQd aCtion
= LESS-CO Ak4ANDNio11211F1
.. 1 the 5eleCjlOn-and acj
roll-Snow YE! J; break: case MIJRE COk4MAND: Ll
le l1IO5L-rGCOrlL reSpOII
SO-Word =W+lθ-tbqmostr
(1centrc, +Ipor+seword-=Sp
Gak(Lfll!1llOUjrecQIILrl!
Illp0111110word);*p2 dCte
rmined action = MOHIu-COI
JMΔND;-*p211as the 5 select
ion and-action-= Y ratio S; breIILk; The rest are commands only from the keyboard and are strictly for debug purposes.
used only. doI'all 1. I-: Wood p2 deLOrmio++d r, +″1nc
Lion = co+n river++ d; *p2 d
etarmjru++1 ir,tion
=z O:1:p2 ++Cor, Lhr+
r, alr+cLion a++d *aL(on
ht+t+-=YEconi(: break; DISPERR, C860129 This routine is called with 7 oirs@rstflag'
When this happens, it will alert you to the usage status and fix the arm. then works
Asking users whether they would like to see the work resumed.
Ru. If "rsLflag" is sad, i inc l u
d e “defines, h”11include
'5tructs, h"111ncLude je
xtrnvar, h'disperr(err, jo
int+ rstflag) Int err+ joi
nL, rstflag; Inj ir r8p
ly+ θtatic Int ignore+1f (r
stflag == TRUE)ignore = F
ALSE; if (rstflag =)FALSEe)ign
ore = TRUE; if (ignore == FALSE) 1f
(err != FALS[ii)1ockup('
L'ROE); clearscreen (10, 24): prxn
tff ("\07"); movecursor (24+O); f'or
(i=o; j<7; +1-1) set[x),
mode = LOCK: switch (err) case PO'rERR: prjntf ('Malfunction In p
ot%d, pot =%d″, joint. pots(joint)) r break; if (err != FALSE) movecu
rsor (15, O); prlnR (I■gnor
e errors from now on'i'
(y/n) ');wbxle((reply = I
ce') ) == (-1) );if (re
ply == +yI)ignore = TRU
E: 1ockup (FALSE); DISPLAY, C851213 This routine displays the status of all joints.
#1ncLude "5tt1.io, h'1ine
lude "defines, h" humiliation1include
'8truCtO,h”int i, bad
; double at, a2. a3. a5+ WX+
'N'l+wx = wy = 0.0; 1ockup ('rRUIj); cLearscreen (10, 24); move
cursor (10,0): prxntf ('J
o1nt\tModeXSt8a t\tPo t'%
, n') ;for (i=Q; t<'y;
++1) printf ("%d\t%c'vL%
d\t%d\n', ir 5et(i), mode
, 5etpots(i)); al = pots(1) This RAD PERPOT
I + 0ffSetCa2 = pots (2) US R
AD-PERPOT2 ←offset2; a3 =
pots (33 RAD PER-POT3 + of
fset3;bad = arm2world C&
wx, &wy, al, a2. a3):for leg(
&elev, &flex, 0.0. aL, a2. a3,
0.0,0.0,0.0);al book=57.2
957'7951;a2 Kodama 57.2957'79
51:83 books = 57.29577951;ele
v *-= 57.29577951; flex
body = 57.29577951; if (bad
= -1) printf ('Bad data in arm2
world\n"Lprjntr("\r+, Arm
coordxnates (%, Of, %, 04.%
,Of)\n', al. pru+uf (World coordinate
es (%, Ofmm, %, Ofmm)\n", wx
. pr+nLf ('elGvate = %3.
2f flex == %3.2f\r+
” + e l eV llf (pend on
== TRUE) prlntf ('Pendant
is on, sample = %d\n”,
pends1se printf ("Pendant is off'X
n"); 1ockup (FALSE); DIS SCA and C860129 This routine
The program position will be displayed. $1nclude '5tdio, h"#1ncl
ude ”defines, h'1inelude
"5 tructs, h"#tnclude"eX
trnVar, h'd+5-scaleN double x, y, angle, angle2
.. angle3:]nt l+ko: 1ockup (TRUE); clearscreen (15, 24); move
cursor(15,O) :printf(”po
sxtion x y patl
pot2 potj\11-/. for (1=o; l<5; 1++)
nnl(lul, = mumory(j)(1)
Tree RAD P[IR-PO'['l + offset
lang1a2 = +++amory(1)(2)
*IIAI)-PEI(-PO'l"2 + of
'fset2aogLe3 = mamory(1)(
3) This RAD PlfflRPOT3 + off
set3J Tomi 1 + 1; arln2WOrld(&x, &”/+ ang
Lel, 811g1t12+ al1gle3
) :prlntf(" %2.0d %6.
2f %6.2f %6.0d %6. Od%6. Od
\n” + j ,X +y+memory(1)(1
), memory(i)(2), memory
(i) (3)] if (side = W 1) printf('1ef leg'sn'); if
(side wx -1) prlntf("right 1egXn"); pri
ntf("leg m %6.2f 5hiftx-
%6.2f 5111fty =%6.2r\nle
g, 5hiftx, 5hifty); printf(”
elevate-%6.2f flex
ang=%6.2f Xn'levate, fl
ex ang); 1ockup (FALSE); return l-115. 11nclude ”5tdi6.h'$1nC1u
de “deNnes, h”$znclude
``sructs,)1''$1include ext
rnvar, h'arm2world(x, y, at,
a2. a3) double book X + *y+ a
l + a 2 + a 3:exLearn doub
le 51nO+ cos(1:lnt 0kay: double 1eno, 1ent, 1en2, 1en
3. temp-a, xcoord, ycoord, pi
:1eno shi370.00 : 1enl = 152.40 ; 1en2 = 304.80 : 1Gn3 = 374.00 ; pi = 3.141592654 ; okay
= 1: if (0kay = 11 emp-a = at + a2; xaoord
= ]enO; xcoord += (1enl tree coθ(al)
) :x+〕oord += (1en2 coming co
s(a2)USC□5(al) ) :xcoora −
= (1en2 * 5in(a2) end 5zn(a
l) ) :xcoord += (1en3 rice c
os(a3) −* coe(temp a) )
:xcoord −= (1en3 comes exn(a3)
* sin(temp a) ) :ycoord
= (1eni end 5tn(al))
:ycoord += (1en2 tree cog(a2)
Rice 51n(al) ) :ycoord += (1
en2 t-5in(a2) terminal cos(al))
:ycoord +w (1en3 * coe(a
3) *81n(temp a));ycoord 4
x (1en3 * 5in(a3)ll coe(t
emp a)); Kx x xcoord; tree y Mycoora 1 return (0); else t@turn (-1); FOR-LEG, C851203, 851115 this le
The chin is the angle of elevation from the joint angle of the arm to the hip of the leg and the knee.
Calculate the bending angle of 11nclude “5tdio,h”$1nctu
de 'defines, h"11nclude3
'θtructS, h'double body elevt,
Button flexx, aO, al, a2. a3. a4. a5.
a6: exLearn double Japanese in (
)+coe(), acos+1. asin()+5
qrt(1, atan(1: double elv,
fix, u, v, x, y, ul + 11. a
tt, hhx, hhy, kkx, kky, p
i ; double fix offset ang
, temp ang, r, u2. v2. ul2. r2.
A, B, C, NAaO Shoulder rotation al Joint] a2 Joint 2 a3 Joint 3 a4 Yaw a5 Pitch 86 Roll WIDTHPAP width 1) EP'rHPAP depth ul Upper leg length Il Lower leg Length 18gl111 Total length 5hiftx Shoulder horizontal to arm 5hyf
tx Shoulder x, y perpendicular to arm
7-m coordinates u, v of pitch axis
Calculation of leg coordinates H and lower leg pi = 3.141592654 :ul = lo
g / 2.0; 11 = ul; x, y calculation arm2world(&x, &y, al, a2.a3)
: Calculation of u, v u w x −5hiftx ; v”” Y
-5hifty; Calculation of knee X r = Jqrt ((WIDT'H*tVTDTH)
+ ((11-DuiPTH)-*(11-DEPT
H)) : u2=u*-u; ul2 = ul; r2=r; v2 = v books vI Affi 4*(u2+v2); 8I+ 4 books V books (r2- ul2- u2- v2)
;(': = ((r2-ul2) tree(r2-u
l2)) + ((u2-v2) tree (u2-v2))
;C+=2*r2:k(u2-v2)+
2 uJ2 bottles (v2-u2) + 4 taste u2 bottles (v2 r
2) ;NC-C/A; NB≠B/A; kky = (-NB + 5qrt(CNB
NB) -4* NC))/2 :kkx
= 5qrt(ul2 − (kky tree kky)
);elv=asin(kky/u]);a
lso ulv w acos(kkx/uL);i
f (elv < Ll, O) elv wOlOr fix offset3ng m atan (WIDT
H/ (11-DEPTH) ) :if (((
v-kky)n0.0) &&((u-kkx)>
0.0) ) Lamp-aflg ff atan
((v-kky) / (u-kkx) )
;else if (((v-kky) < 0.0
) && ((u-kkX)n0.0) )if ((
(u-kkx)/r)n0,5)temp-ang=
asin((v-kky)/r) :els
e ternp ang = -acos((u-kk
x) / r) : else if (((v-k
ky) <sail 0) && ((u-kkx) < 0.
0) ) [ if (((u-kkx)/r) n0.5) temp-
ang = (-pi/2.0) + aein((v
-kkY) / r) :alse temp a
ng e+ −neoθ((u−1(kx)/r
); atL -temp-ang + fix-of
fset allg; flx w att -elv
; 1f (1'Jxn0.0) flx 0.0; 1Hexx w fl'x: GET'S'rAT8. C860129 This routine is
11nc detects position and error status from each joint
lu+le “5tdio, h”11ncluda
"defines, h'11nclude"et
ructs, h'$1include 'extr++
var, h”getstatuL+0 tnt i, error: for (1=O; igu7;++1) pots(
iJ = 5tate(i), pot: potv after Q
Get error value arrow ++++ fault(i)
; Check for failure if (erro
r! = 0) dIs+arr(error, i, -1):ruu
lL(1) w O: HANDCON'r, the file on C86020 contains readings from the new hand controller 1
There are four routines associated with direct detection and action. 1inelude "5tdio, h'11nclu
de 'defines, h'11nalurf
"5 tructs, h" current-desir
ed 5election, current-de
sired action )int current
desired 5elect1on,curre
nt desired-act5tatic int
presentj-selection, pr
EVIOUS J-s. present-pacton, previ
ous”aQaverage-penaanc sam
ple;average-pendant sample
e w +rxamine the pendan
t-pendant sample ); if(average pendant sample
>= O) Has a stable Be/Danote reading.
Ru. This will decide whether to select or accept/con. if(average pendant sample
(800) selection, and this recognition is also present -p-3disctiOn =
CategoryOriZd-8allection(pe
ndant sample );if(presen
tp-action! = O)f++th
the-keyboard-buffer():if
(present-p, -action != O&&
trained ==YES) switch(cu
rrent deslred 5O1ection
) case to stop the arm and hold the wrist. ARM COMMAND:
Ca5e HIjCOMMAND: Increment finger when the button is released
After execution of the order case KNEE Co) JMAND:
case FOOT OOMMAND knee and-m
alntajnt, he-present-pO8t
tion-Ofthe-armO; break; default : break; present action = O,'p
revjous p-act, inn = Q; ar
e we rn C0ntlnllllOuS mot+o
n = No: 1f(preθent-p-sel
0&& present-p
5election jx prevlous-pst
uff: 5election-or-action
1nto-the keyboard-present
p-5exactton, present
p-action); praVlous p
-5el;+ct1on = present-p
-selectlon;lse pendant-sample);ifCpreS
enjp action! = preVious
-Tl-actiOn'lc&present-p-
Pkctton 0
)stuRs+! 1action or actl
on-into the-keyboard-er(
present-p 5 selection, pr
esentj:+action);prevlo
us-p-action M present-p-
actiOn;zf(is-the-arm movi
ng() == YES&&present-p-
action > w O) stuff 5ele
action-or-action-1nto-the
keyhufl'er (present-p-sele
ction, presLIot-p-octio
n); previous-action
w present-p action; are'w
e in-contlnious-motlong
tygs;These are for this routineexamine the-pendant-1nput
(digital-value) int dlgl
La, 1. value; first efjne SAMP
LES'ro LOOK-AT 311de
fl++o ARRAY-8IZhi
8AMPLK8 To-Lc
IOK, ATprevious-pondant-v
aluea(SAMPLFiS-To-LOOK-AT
) = digital for (i = O: i < RAMPLEi(T
o-LOOK AT; i++ ) preview
s-pendant-values(i) =
previous-values(1+1)
; for(average = O, i −0: 1
< SAMPLIES-To-LOOKl++) average += prGVlous-pen
aflnl, valnps(i); aVerage
/= SAMPLES To LOOK A'T
';for(stable-readings = 1
.. i = O; i <To-LOOK-AT;
i← ト )ir(jab8(previous
-pendant-values(i) -value
e) VWINDOW) stab
le-readings = O; 1f(sta
ble-readings) pokeb(314,
0xbOOOO,I + );return(ave
rage ); 1se pokeb(314,0xbOOO,'?'):r
etern (-1); category 5 selection (aver
age value )1nt average
value; $define NUMBEROF 5
ELEC'rl(ING 10,, [4095,
2763, 330B, 2379. 3662°25
57, 3016. 222513868. 2
655int i, rotar
y swxtch position;for(rot
ary SWI tch-position = (-
1) + i = O: 1 <N[IVBljR(
11-IL, n1ci'1ON8:, i++ )+
f(+abq(avuragu value −LI
+a-aelocLion-) < sw+N
L)t)w)rotary-switch p
position = i; +f'(rotary-
switch position < 0
) pok8b(316,0xbOOOO,”?'
); else pokeb(316,0xbOOOO,
'O' + rOtary-position)
; return(rotary 5w1tch-posi
);categorize action
(average value) int ave
rage value; 11definn N[JM
BEROF AC'r4ONB 4= [409
5,433,206,1501;int
i, push button-set
ing;for(pusb-buLLon set
ing = (-1) + i = O; N
IJMBER0FAC'rrONS; i4-+
)if(1abs(average value -t
he action-) < AWINDOW
)pusll button 8eLt1ng
= 1 :if(push-button se
Vting < O) pokeb(3LLL
QxbOOOO,"i");++1sopoksb
(318,0xbOOO,'O'+pusbbutto
n-setting): ruturn(push t)tJLtc+ns
etting >; HOM Gai C851213,85
08213 This routine is executed when IN+ is pressed in fixed mode.
, the absolute value of the button/positioned arm position is
Use the nested arm to move the arm to the home 1 position.
It is something that can be done. 11nclude '5tdio, h"$1ncLu
dG'defines, h"$1include'
5Lructs, h"11ncludo'extr
nvar, h”home(I double angle, angle2.angl
e3. pi, n5tpotl, n5tpoL2. n5t
pot3: pi -3,1415! j2654 ; place
The experimentally determined pot reading at the desired nesting position o
uLpOLL! 1700 ;n5tpoL
2 = 1363: ++BLpot:s 1,000 2815; arm
so t, (1
) −poθ= n5tpotl ;5et(2), p
oS = n5tpot2 :5et(3), pos
= t+5LpoL3; 5et(f)1. dur
,y=PlnRIOD:voL(11,doLy=
PhiRI・)D;qaL(2TJuty = l'l
i:RIOD;5et(,'5,1.+juty=
PEHIOD; HYDRO, C851203 Each type of actuator has its own control subroutine.
do. A routine controls a hydraulic actuator. hydraulic actuator
1ocjinclude "defines, h'
1inelude “5tructs, h”11in
clude 'extrnvar, h'hyIJro
(joint) Int joi, It,; switch (set(joxnt:1.mode)
case LOCK: 5tate (Joint), motor = OFF:
5tate (joint), valve = F3HT
Jr; 5et (, 1oxnt), poB= 5tate
(Joint), pot; reakl case ll0LD: case MOVIE: case FREE: hhnld (joint): br*ak+ hdriver (joint); HHOLD is the living body of IIYI)RO routine
and the pulse width jot error, clock,
deadtm:clock = pnrms(i),
clock; deadtm = 5tate(i), w
ait:error = (set(i), po day-5
tate(i), pot) not parms(i). if ((par+n8(i), r-hys < er
ror && parms(i), f hys >1
1 deadtm> 1) if (set(i), mode = MOVE)se
t(i), mode = HOLD; 5tate(1)
, motor = OFF'; 5tate (1), va
lve = 5HUT; if (deadtm ==
O) First position? dsadtm =
parms(i), dead; if it is the first position
wait tie lse if (deadtmn1) count continuation
If it is in the line, 1-deadtIf1;
Kaku/Todakun else dendtm = O; Flag
If (timar(clock) > 5et(i)
, duty) state (i), motor = OF
F;1se state(i), valve = 0PEN;if
(error <= parms(i), r
h'ys) itatll(1), motor x R1
1iVljRFIJ1se state (1), motor m FORWARr)
;] state(i), wait = deadtm;HD
RIVER is the main body of the hydraulic routine,
Turn the bits up and down that actually turn on and off the pops, motors, etc.
move. hdr4ver(i) 1ntt; intj; J y parms(1), ouLqdr; out
blts &= parms(1), raset;Ou
l, hltB l-= pump□), IIIask
&5tate(1), motor:outbtbs
l= parms[+], vmask & 5tat
e(i), valve; INCREM, C851203 This routine allows you to increment or decrement a joint via the keyboard.
The person who uses the product selects Yozu 111 and then the joint number using the key.
Manpower. The keys 1÷'' and ``-'' move the joints one at a time.
To exit this mode, press key 111 again. 1inelude '5tdio, h"1znclu
de "deflnes, h'11nclude
'5truets,h'1tnclude'ex
trnvar, h”increment (code,
mode) int code, *mode; static Int Jnt=o; 5tatic int adj; if (*+node =z O) 1ockup(TRITE); clearscreen (2, 24); movecu
rsor (2,0): prxntf (' J OI NT knee NG,
REMENT',,n\n")+printf ('
O-6Joint numberXn');pr
lnLr (” + Extend join
t\n -Contract jointpru+
tf (”c Coarse adjust
f Fine adjustment
tf (”i Exjt increment
t +node\n1);for (jnt=o;
jnt<4; ++jnt) set(jnt), m
od@= I(OLD; Each joint is hol
5et (jnt) in d mode, duty -PIERI
OD; Execute adj in all duty cycles
= 10; node = l; 1ockup (FALSE); 1se if (code 47 && code < 5
5) jnt = code -48; else if (code = -x '+')s
et(jnt), pos += parms(jnt)
, tnc * adj; else if (code
=? '-') setCjnt], poe -w p
arms (jnt), inc button adj; else
if (code = 'c') adj = 10: else if (code = 'f') adJ
= l; else if (code =w 's')5et
(Jnt), duty −1:jf (set(Jn
t), duty == 0) set (, Int), du
ty = l; else if (code;
4 'a') set (jnt), duty +=y l
;if (set(jnt), duty > PERI
OD) 5et(jnt), duty = P[i:H
40D1se if (code != 'i') for (
Jnt"O;Jnt<'y; ++Jnt) set
(jnt), mode = LOCK; next mode
= o; mainmenu(); INC-XY, CB51213. 850731 this le
The machine reads the current position of the arm and adds an offset.
to set a new position for the arm. This routine
Or is it true that the speed of each joint reaches the final position at the same time?
Change each speed so that 1nclude '5t
dio, h'1include 'defines, h
"1nclude"5tructs, h"1ncl
udC"extrovar, h'nc-xy (dx+
dy) int dx, dy; int badl, bad2. jnt, eme
rganc7; double X, Y; d Oub 1 e a n g e l + a
n f51 e2 + a n g Le 3:
emergeCy x O; for (jnt=0; jnt(4; jnt
++) if (set(jnt), mode == L
OCK) enoenergy: ir (!emergency) badl = bad2 = O; angle
= pots (1) Next RAD-PIERPOTI
+offsetl;angle2=potS(2
) * RAD PERPOT2 + offget2
;Angle3 = h pozs(3) next rlAD P
H! R-POT3 + Mfset3; if (deb
ug) printf('・KimotoKimoto**KikuKiki\n1);p
rintf(”calling arm2world
with a14f a2=%fa 3 =% r\n
”, angLel, angle2.angle3)
:badl = arm2world(&x, &y,a
nglel, ang1e2. angle3);+f
(debug) printf(”returns bad=%d x=
%f y=%f\n" + bad l I X +
7) rX += dx; Y +=dy; if (debug) printf('after incrementi
ng call world2arm wxthV;%
f\n"+X+'/L bad2= world2arm (&angle,
&angle2. &angle3. x, y);
1f(debug) printf('returns bad=%dal-
%fa2=%f a3=%f\n", bad2゜i
f ((badl < 0) II (bad2 <
L)))x −= dx; y−Mdy; lse [5et(1), po9 = (angle −off
setL) / RAD-PERPOTI; new desired
Position set (2), pOθ= (angle2- of
fset2) / RAD-PER-POT2; new
Desired position set t(3) -poθM(angle3- off
smut3) / RAD PER-POT3;for
(jnt=o; Jnt<4; jnt++) se
t(jnt), mode w MOVg; setspe
ed(); The speed of each joint reaches at the same time
INSELACT, C860206 The selections and actions determined by this routine
will be started. and several other housekeeping and condition-related matters.
You can also select related functions. Wancluds ”5tdio, h'11inclu
de “defines, h”$Jnclude
, 5 tructs, h”ed-the-determined-p2-commanci; znt the-determined-select
tion, the-determined-act
ion. US p2 co+nmand verified; $de
fine RESET 0if (US p2 co
mmand verified == No
)return(-1) ; 5w1tch(the-determined 5el
) [case: EMERGENCY STOP-COll
lMAND :case” : put the-Pirm-into emerge
ncy 5top(1:not p2 co(nmand-v
erified=RESET;onpath
= FALSE; re'Lurll: b r e a k : case ELEVATEJO ■, IAND :, 5W
1tCh(the determined act
ion) case MOVE-COMMAND:
elevate tree-area (1: button p2-
command-verified = RESET;
break: rest p2 command-verified = RF
iSg'[': break+ default: break; break+ case FULLJXTgNSIONJωAUND:
5w1tch (the-determined act
ion ) case MOVFi-COMMAND:f
ll extension the area(
);)kp2 command-ver[ied =
RESE'L';brealc+ case STOjCOMMAND knee and-ma
while the-present-posit
izn-of- also on his arm); *p2-com
mand-verified=RFiSET;re
akl diJault: break; 1) r e a k ; Ca5e HALF FLEX CQMMAND+5w
1tch (thedetermined action
) case MOVE C01JJAND: hatf
flexJhe-arm:l: rice p2 comma
nd-verified=RESF:'L';b
r e a k ; case 5TOP C0Ib1AND:and-m
aintaxn the present posi
tion-Of-thllll-arm();*p2-c
command-verified=RESET;b
reak: default: break; ful 1-flex-the arm(1;*p2-
comunand-verx field=RKSl
li:'r;1) r e a k : case 5TOP Co gift MND knee and-ma
llltairI-LhQ-pre3ellL-pO8
ittOn-Of-the-arm(); button p2 co
mmand-verified=RESET:br
eak ; default: b r e a k : reaL case FIGURE-4-COMMAND:5w1
tch (the Jetermined action
) case MOVE-COM) JAND: figure
e 4-the arm (1; US p2-command
-verxfied = RESE'r;break; case STOP-COMMAND: and ma
intain-tbe-present-pooi''J
ion-of-the-armO;*p2 coaun
and-verified=IIESET;bre
aic; default: break; reaki case ITUP-COWJAND:5w1tch
(the determined-acHoo)ca
se MOVE-CO1 Crystal Buddha ND:5etup-the
-ar+n(): button p2-command verified = RE
S[ii'r;break; case 5TOP-CO1 & French ND: break; default: break : brealc;
on ) case IN CiOMMANrl:mo
ve arm-1n(); Next p2. command-verified=Rg
SE'r;break; case OU'r-COMMAND:move-ar
m out (); It p 2 COmIn and -v e r l
break
: case STOP-COMMAND:and-mai
tain-the present position
n-of-the-arm (1:10 p2 command
d-verif'ied = RESg'r;brea
k; default: break; break; cas@HIP-001A French ND: 5w1tch
on ) case FLEX-COMMAND:fl
ex-the-hip(1; not p2-command-verified x RE
SE'r;break; case gXTEND-COMjMND:exte
nd-the-hip()nee*p2-con+mand-verified =
RBIT; break; case 8TOP-COM) + French ND: 1! nd-
Main tain-the-pr e B e
nt-pos i t i 0n-Of-the-
a r In(); *p2-command-ver
ified w RESB'[';break;default: break;bread: case KNEE-00)J)AAND:5w1t
ch(thedetermined-actlon)
■ case FLEX and IjOMMAND: flex-
the kn@e(1; rest p2 com+nand-vetj I'ied =
RIBIT;break: case FiXTEND-COMMAND:ext
endjhe-knee()knee1fp2-co+n+nand-verxfied
= RFSE'l';break; case STOP-COMMAND: and-ma
i nta in-the-pre sen t-po
siti on-o f-tb e-a r+n()
;Next p2 commar Tsukasa-vertfied =
RIESET; break; default: break; break+ case FOOT COIJMAND: 5w1tc
h(the-determined-action)
case IN-Co)JMAND:rotate
foot 1n();-*pz conunand-
veri fied” RFj3ET:break; case OtJ'I'-COMMAND:rota
te-foot out(); rest p2-commP1n
d-ver1 fied=RESE"l':bre
ak; case 5TOP COMMAND: and-ma
in ta 1n-th e-pre sent
, -pO8i ti 0n-OfJb e-a rl+
+(); law p2-command-verifie
d = RESK'! ';break: default: break: break: case COMMAND to WRIS'r: 5w1t
ch(the-determined-action
) case RELEASE-COMMAND:re
lease,, 3he-wrist(); not p2-co
mmand-verified=RESET:br
eak; case HOLD-COMMAND: hold-t
he-wristO; next p2-command verified w RE
SE'r;break; case 8TOP-COMMAND:ancjma
while-the present-position
on-of'the-arm(): rest p: jcomma
nd verxfied = RF:SE'I';b
reak: default: b r e ak ; break; Ca8e COMPLIANCE COMMAND:
5w1tch (the determined-act
ion ) case LESS JOMMAND: ad
j'ust the-wrist compliant
e('+'); home p2-command-verified = RE
Sa'r;t)reak+ case MOFJE-COMMAND:adjus
t the wrisj compliance('
-' ): button p2-command-verified = RE
SET; break: case STOP-COMIJNJD knee main
tainjhe-present-position-
of the-arm();*p2-command
verified = RESE'r;break; default: break: ror (joint = = o: joxnt <4;
joint++) set(jolt), mode
= MOVE; home (1: break; CUR3ORUP: 1rtc-xy (0,25);
upper movement break; case CUR8ORDOWN :znc xy
(0, -25); Downward movement bre
ak; case CUR8ORLEFT:tnc xy
(2mad5ide, O); left motion bre
ak; case CUR8OR-RIGHT:1nc-
xy (-2511side, O);
Right motion break; case AL'l'-I:
increment mode increment('i', &mo
de); break; case ALT-J: adjuatc);
Adjustment of joint parameters break; case ALT-W: adj ustwr();
List parameter xtbreak; case ALT M:
List My Unity for (3olnt=
4: joint<7; 5et(Joint), mo
de = k#sH: external rotation
n = O; break; case ALT T:
List tracking mode 5et (5),
mode = TRACK; Track pitch
Set to operating mode 5et (6), mode = T
RACK
external rotation=O;
break; case ALTC: cen wrst (1; squirrel
1) reQk + case ALT B: 5cale the wrlst(): auto
Motion Comb Brianos cent up break r case ALT S:
Current position memory 5tore('s', &mode
); b r e a k ; QaSe ALT A: 5cale(); Work empty
Free standardization between 5cale the-wrist(1;
break + case 'Q':
Execute nest calculation neSt(); break + case ALT V:
change-the volce
- Recognition parameter break: case 'D':
Status display display (C break; case 'A': dis-8 caled;
Display of parameters break; case AL'r O:
Safety leg limit switching 5afety A-'1'Rt
lE : break : case ALTjl : move
Path on/off switching path Aw TRUE
; break : case ALT 11 : pend-On ”= TRUE;
7 #7/#7 (D'iJ exchange b r e a k + case ALT D: De
+7) Switching debug Ava TRUE; break1 case ALT-Z: position
position/') 7 da (D switching cycler A=TRUE; cycle position y O: break; case '%I: Temporary switch
1ockup to return to Dos (TRUE);
Temporary 1:, 7-A hold-i movec
ursor(0,O); clearscreen(0,24);system(
'command, com' ) movecursa
rc O,O); clearscreen(0,24); mainmen
u(); 1ockup(FALSE); appropriate
control fll[break; return to 1111 break; this pJcommand-verified = R
ESET; KEY, CE] 60129 This routine functions from the C86V2.3 library.
key-scan""key-getc'"
These functions directly retrieve characters from the keyboard (two ways to obtain them).
be. key() int pressed; if(key-scan() +=x (-1))r
eturn(-1); pressed = key getcH; if((p
ressed & 0xOOff) = O)re
turn(pressed); else ret
urn(pressea &0xOOff);1
1nclude ”5tdio, h@$jnclud
e 'defines, h"jinclude"
5 tructs, h”Mlnc+++r11!”p
ytrnvar, h”1lockup (lockf
lag) int lockflag; if (lockflag = TRtJE) dwrp
ort (8, outbit, s & 0xEOOO
); ref dac = TRUE; else wtchdogO; Write valve setting value
and trip the timer ref dac = FALSE
; ■ MAINMENU, C860129 This routine/subscribes the main menu selection list.
#1nclude "5tdio, h" $znc
lude 'defines, h'#1nclude
'5 tructs,h'$1include 'e
xtrnvar, h'mainmenu() 1ockup(TRUE); clearscreen(0,24); movecur
sor (0, 23) lprintf (' ART
[(ROBOTHquicJputa(0,23゜clearscreen(2,23):movecur
sor(2,0); printf('fl-Arm f2-Ele
vate0rey-: Move. In, Flex, Re1ease, Less\n#);
printf(”f3-Hlp f4-Ful
l Gray +: 5top. Out, Extend, Ho1d, More\n1);
prlntf('f5- Knee f6- Hal
f FlexSPACE: Emerg-ency
Halt\n”); printf(”f7- Foot f8 = Fu
ll Flax\n");printf('f9- Wrist flo -Fi
gure 4 A: Displaysca
led valuesXn');prjntf("
l -Comp 2-5etup
D: Displayjoint 5tatus\
n'L printf('
Alt A: 5calthe work
ace\n”);printf(”M
oving the arm Alt B: 13
etupfor auto compliance
\n1); printf('
ALt C: Centerthe
wr1stXn'); printf(“Alt Q: Re5erved
, Alt D: Setdebug m
ode\n');printf('Alt R: Re5erved
Aft K: Re5erved\n
”L prerrtf('Aft S: 5tore
current Aft F: Re5e
rved\n"L prlntf('Aft T: Set wrlst
Tracking mode Aft G :\n
1); prlntf('Alt U: Re5erved
Alt H: path on
or off\n")+printf('Aft V
: Change record parameters
Aft I: mental Jo1o't c
ontrol Xn');printf('Al
tW: Adjust write parameter
ters Aft J :Joint parameter
ters \n");printf('Alt
: Program exit Al
t K :\n');printf('Alt Y : Re5erved
Alt L: lag 5
afe 11m1ts XSn',);prin
tf(”Alt Z: Toggle position
ion cycler Alt M 2nd wr1st
mush mode\n");printf('
G: Perform nest calculation
trons Alt N :nesting to h
ome \n”); printf(” %%:
Temporarily g, o to DO9Al
t O:\n1); printf(″
Alt P: pen, dant on
or off \n1) ;; Compliance level
pokeb (30
B, 0xbOOOO,'O' + wcompmap
(0) );1ockup(FALSE): quick-puts(rl c, str, in
g-polnter) string un
signed 5hort r,'c. unsigned char button string p
ointer;unslgned 5hort v+d
eo-segment; unsigned 5hor
t peek(); Device flag zf((peek(0x0410.0xOOOO) &
0xO030) =vxdeo segment
= 0xbOOOO; Monochrome else
video-segment = 0xb800
: Color Poe for Cr Mr US 160
+ c rice 2; pokeb (r, video segm
ent, rice (strxng pointer + ten
)! snow 0+ r +-2 ); quick puta (r, C, attrlbut
e potnter) FA property quickly (; put
unslgnQd 5hort r, Q:unsl
gnea char rice attribute poi
inter;unlillgned 5hort vi
deo 8egment+unsigned 5hor
t peekO; device flag if((peek(0x04LO, 0xOOOO) &
0xO030) ==v1deo segment
'! 1 0Xk) OOO; Monochrome els
e vlaeo-segment = 0xb8
00; Color board for (r= r button 1
60+c rice 2+l; pokeb(r, vxdeo-s
egment, attrbute! ≠
O; r+=2 A ・ NEST, C851203 This routine uses the current position of the arm as a nested position.
Translate the location. This routine/is the variable “offsetL”,
“offset2”, “offset3” must be set.
Establish diagonal standards. $1nclude “5tdlO,h”$1nclu
de 'defines, h'1inelude
”5 tructs, h'1include'ext
rnvar, h”nest() double rrstangl, nstang2.n
stang3; Desired arm nest angle (radians) nstangl = -1,570796327;ns
tang2 = -1,570796327:nsta
ng3 = 2.9723926827 where arm
Assuming that the pot is properly nested, read the new school
Calculation of positive offset offsetl = nstangl − pots (1
) *-RAD-PER-POTl;offset2
= nstang2- pots (2) next RAD-PE
R-POT2;offset3=nstang3
- pots (3) *-RAD-PERPOT3';
printf (”Ne5t offs++t val
ueS: o14f, i:+2=%f, to o3x%
nl. offsetl, offset2. offset3
): printf (”Pot values for
offset: pl=%d, p%%d. pots(1), pots(2). pots (3)): 1) ATH, C851213, 850919 this route
From the current position to the programmed position flI
I! A midpoint along the travel path is determined. good1nclude '5tdio, h'$1nclu
de 'defines, h'$1include
5 tructs, h"$1include 'eX also r
nvar, h'athH General symbols used pre'propos onpath otsO 0VE RAD-PERPOTl, 2, 3 of'fsetl, 2.3 set(), pos set(), mode double angle+ angle2. ang
l e3+ xl + Ml, x2 + Y'L X
+Y+5lope. 1ntercept. char dummy : Int t) ad, mOVlng, l :X=Y=Xl
=Yl=X2=Y2=O,O;5tep=100
; noving ” O+ for (i = l ; i <4; ++1
)1f (5et(i), mode = 'm')
movjng = 1: (movlng != 1) Moving (if PATH-1, move to a different point or move)
Inside (if PATH!=1, no matter what you call, it's the middle point)
Calculate Lockup (TRUE): onpath = 1: Arm is within the movement path
Get the current position of the arm indicating that it is in the angle w pots (1) US RAD-PER-
POTI + offsetl ;angle2 y
pots (2) US RAD-PERPOT2 + 0ff
llet2; angle3 ta pots (3) rice
RAD-PIICRPOT3÷offset3 ;current
get the (X,Y) position of bad = arm2vrorld(&Xl, &yl
, angle, angle2. angle3
); the desired programmed position [11(x,y)
obtained angle = rne+nory(prepr
opos) (1) US RAD-PKR-POTI +of
fsetl :angle2=rr+emory(
prepropos3(2) US RAD-PER-POT
2 + offset2; angle3 = mem
ory (prepropos) (3) Next RAD-PER
-POT3 +onset3; bad * arto
2world(&X2. &y2. angle,
angle2. angle 3); of straight path
Calculation 5lope = (y2- yl) / (X2- x
i) :1ntercept my2- Cs1o
pe coming X2); Decision from step X or y if ((slope-1) && (slope
< 1) ) if (X2>xL) X M xi + 5tep 1 if (x>= x2)
t ; else if (xi >= x2 )X ”
xi -B t@p ; 1f (X<-x2) x ; x2 ; onpath x O; y = (slope rice + 1ntercept
;6□se'Lf ((s□.pe < -1) l
l (s□.pe > 1) )if (Y2nyl
) y = yl + 5tep: if (y>tight y2) onpath = O; x = (y-b + tθrcopL) / 5lopu:
else if (yl >= y2) y = y
L -5tep; 1f (y<-y2) y-y2; onpath! MO: x w (y-intercept) / 5lope
; Find a predetermined angle bed = world2arm (&angleL,
&angle2. &a+Iglf13+ x+ Y
);1ockup(FALSE);if (bad!--1)ror U=i;1<4;i++)Sstl
:i),rnode=rlOVE:5et(su,p
os = (angle −ofTsetL) /
RAIl-PgR-POTI; aeL(2), po
s = (angle2-offset2) /
RAD, -PKRjO'I'2;5et(3),po
s = (aτ1g1e3- ofTset3) /
RAD-PER-PO'l'3;lse prjntf('WatJ Path require
s arm to 1 leave allowed wor
kspace\n 1) printf(' Tree * Half Please use pe
ndant to move arln. Thank you, \n1) onpath = O: ] PROCESS, C860123 This subroutine is executed by Arthrobot through distribution processing.
Make it look like you're in control. During each iteration of the main loop,
This procedure is a task that is normally processed in parallel by the joint rollers.
11nclude "5tdio"
, h"11nclude 'defines, h'j
include ”5tructs,h'1inel
ude "extrnvar, h"1definθT
IMEOUT 0 process H [ int i, pitchmode; int mov
ing: 5tatic int dntinoer t= CB
lf (onpath) path(); pitchmode = 5et(5), mode;
Description of existing pitch modes mOV11g = O+
Flag indicating that the arm is moving
ar (i=o; i<=6; ++i)
First, if (set(1), m
ode == MOVE) moving = l; if (set(5), mode != FREE)
case HYDRO: hydro(1); break; case BRIDOES: bridges(i); break; outputs l=WDON; dwrport(8, outbits); 5et(5
), mode w pitchmode;
Return the pitch to normal state again 1f (moving) ctlme = 200; if ((!n+oving) && (cycler
)) [if rctime) 1-OL1me : l se ++cyc1e-pO51tlOn :if (cyc
le-position 4) cycle posIL
son = 0:recall (cycle po
position+49); re-use uncode
for (i=o; i<TTMER8; ++
i) Increase duty time ++ time
r(i) : if (timer(i), > PER10D)
Periodized cell timer(i) code 0; RECALL, C851213 This routine recalls the set location from storage.
Now. Noji calls out a new position towards the new set position. Roux
Chin's J Hunger is also called $1nclude” 5tdio, h'$1ncl
ude 'defines, h"$1include
'5tructs,h'$1include'ex
trnvar, h'recall (code) xnt code: int pose, 1: poI9e -code -49+if (mem
ory(pose)(0)! = 9999)
The arm is standardized and the program for (1=o;
i<7; ++i)5et(i), pos = m
emory (pose) (1) ;if ((!p
athon) &&(i<4) ) set(1
), mode = MOVE; set(5), pos
w 5tate (5), pot: pitch is always
adapted pr'epropoI3P p08ei
General-purpose position indicator set if (pat
hon) path(); 5etspeed+1 : 1se clearscreen(23,24> :move
cursar(24,0) :printf(”\
tPO8ITION NOT TRAINED”)
; REVEPSE, CB51203.851031゜ko
The routine takes the barrier coordinates (X, Y) C millimeters).
Required joint $tncludo 'defines,
h"$1include "5tructs, h"$1
nclude ``extrnvar, h'world
2arm(al, a2+a3.x+y) double
*al, 'Ja2. rice a3 + x + y; e
xtern double acos(L 5in()
+5qrt(): lnt okay, regxon
:double 1eno, 1enl, 1en2,
1en3. pi, tamp al, temp a2. t
emp a3; double 1enl 1en22,
1en32. ang h"lB+h'fs rdoub
le tempx, rl, rl2. r2+r22. c.
ar ang, xnest, yrrest, alrr6
st. a2nest, a3nest; double org x, orlx2. y2. hy
p-1en, 5ide3, 5ide32. arrg b
l,ang b2double org xl,or
g-yl+hYT)len2:1enOw 370
.. 00 ; 1enl = 152.40 ; 1en2
= 304.80; 1en3 = 374.
00:pi-3,141592654;1
en12 = 1enl rice 1enl; 1en22
= 1enZ button 1en2; 1en32.
= 1ens rice 1en3 :okay=l; region=O; ang,, -hys=2.0;tempx=
55.2 ; Next xnest -1eno
Come rl -220,9077862;
Rice 5qrt (tempx rice tempx+yne
st4'ynest) rl2 = r1 rl; r2 = 369.1324618;
Rice 1enl + 5qr-t (len33-1e
n22) Not r22 = r2 * r2:
cor ang = 0.252554276:
Not acos (ynest/rl) US xnest
−425,2: ynest = −213,9; alnest w −pi/2.0; a2nes
t--pi/2. O: a3nest = 2.972392682;
org x = a x −1eoo; org
x2 = org=x to org−x; y2=y*y; if (((org x2 + y2) <
= rl2) &&(y<=0) ) region A region Ml ; hypJen = 5qrt(org, 1x2 +
y2 ) ;temp al = ((-1) next aco
s(org-x/hyp-1en))-cor
-arrgtemp-a2=a2nest;La
mp a3 = a3nest ; else if
(((org-x2 + y2) <=
r22) && (Y(=O)) region B region = 2; hyp len = 5qrt(orLx2 + 72
) ;hyp 1en2 = hyp ten *'
hyp-1en : tamp al = ((-1)
Next acos (orLx / hyp len)) -
car anorg xi w org x −(1
enl 釆cos(tampal));org-yl
= y −(1enl $ sln(temp al
) ;5ide32= (org-xi Shuo
rg xi) + (or, 1H-yl * org-
yl);5lde3” 5qrt(side32
) :ang bl = acos((len
12+5ide32-hyp 1en2)/(2*1
enl rice ang-b2 = pi-ang-bl
;temp a2 = (-1)*(acos((si
de32+1en22-1en32)/lemp a3
= pl −acos((len22 + 1en3
2-5ide32)/else if (((or
g x2 + y2) n r22) &&
(y<=O)) region C reglon = 3; -hyp len = 5qrt(org-x2 +
y2 ) :temp al = (-1) * ac
os(org-x/hyplen):5ld
e3- hyp len -1enl;5ide32
=5ide3rice5xde3;temp-a2=
(-1) Next acos ((1en22 + 5ide3
2-1gn32) /lemp a3 = pi -a
cos((1en22 + 1en32-5ide32
) /else if (((org x2 + y2
) >r2'2)&&(y>O) ) regio
n = 4; temp-al = 0.0; org, -x w x -1enO-1enl
;5ide3 = 5qrt(CorLx coming org
x)+y2) :5ide32=
5xde3 11- 5ide3 ;anILbl
= acos(org-x/5ide3);
temp-a2 = arrg bl-aco゛
s((1en22+5ide32-1en32)/(i
len2rice5ide3)) ; temp a3 = pi - acos ((lerr
22+1en32-side32)/(2-*1en2
rice 1en3)); okay = O; (okay = 1) hys = (ang hys / 1B0.0) rice
p1;xf (temp-al-hys) <=O
) tamp al = O, O: else
okay = O; 1f (temp-ai < (-1 US pi/2))
ir ((temp-al + hys)
= -pi/2)tempal=-
pi/2: else okay = O; lf (temp-a2-0.O)
Joint safety check jf ((temp a
2-hys) <= O) temp-
a2 = 0.0; else okay =
O; xf (temp a2 < (-1 pi/g))
if ((tamp a2 + hys) >= -p
i/2) temp-a2=-pi/2:e
lse 0kay =o; if (temp a3-a3nest)
Joint safety check 1f ((temp
a3 − hys) <= a3nest)
tamp a3 = a3neSt;
else oklIy = O: if (temp a3 < (a3nest −(p
i/2)) )if ((temp-a3 +
hys) >= (a3nest-(pi/2))
) temp-a3else okay =
O; 1f (okay == 1) mal = temp-al: rice a2) tennp a2; rice a3 = tamp-a3; return (0); else return (-1); REV, -LEG, CB60129.851114
The arm should be adjusted from the desired elevation angle of the lumbar region and the flexion angle of the knee.
Find a O+ a l +...n6. $tnclude '5tdio, h"$iwclu
de "dafines, h'11include
'5tructs,h"$1include"gx
trnvar, h'r6vjag(ao, al, a2.
a3. a4. a5. a6. elevt, flexx)
double rice aO1 rice” 1+*a2.rice a3.
rice a4. US a5* next a61 elevt, flexx
;extern double 51nO, cosO
+ acos+1: double elv, flx
, u, v, x, y, ul, 11. px,d ;+nt
bad; double ango, angl, ang2. ang
3. ang4. ang5+ang6; aO Shoulder rotation al Joint 1 a2 Joint 2 a3 Joint 83 a4 Yaw a5 Pitch a6 Roll WIDTHPAP width DEPTHPAP depth ul Upper leg length 11 Lower leg length leg Total leg length 5tliftx 5hift horizontally to the arm
Vertical x, y pitch to the arm
Arms u, v of pitch axis Leg coordinates of pitch axis
9, = 3.1415°2654; J'',
Tnm wholesale non ul = leg / 2.0; 11 = ul; u = V = X = y = o, o; ango
= 0.00 ; Shoulder rotation is now
stay at the value ang4 = 0.0;
Since it is a planar routine, sea 0.0ang6 =
0.0: Planar routine
So roll = a. Convert elevation and flexion angles to radians elv -e
levt: fix = flexx; Calculation of u, v u mul US cog (elv): u + x
11 lf, cos(elv) 'It cos(f
ix) -11 rice 51n (elv) to 5 inu +w
(-1) *-(DEPTH coming cos((olv+ft
x)) -WIDTH 5 inv W ul rice 5
in(elv) ;v+ml rice 51n(elv) rice
cog(flx) + 11 cos(elv) 11
5inv+m(-1) rice (DEPTH* 5xn((e
lv+flx)) + WrDT[(US0081x +
Calculation of YX −u + 5hxftx ly w V +
5hift'Y ; Arm joint (two-pair inverse conversion routine bad = wo
rld2arm(&angl, &ang2.&artg
3. x, y) :ir (bed != -1) Pitch angle calculation ang5 = elv 4- flx + (pi/2
) -angl -arrg2- ang3 ; arm
Return the corner rice ao = ango; mal = angl; rice a2 = ang2; *a3 tomi ang3; rice a4 = ang4; rice a5 = ang5; *a6 = ang6: ] else aout(33); ”LIMIT
” says SAFE, C851203.
This is to test the position because there is a position, 5cal
The safety level is determined by the patient data calculated in e and c.
TRUE JP indicates the position FALS E indicates the non-safe position
Indicated by a turn. $1nclude '5tdio,h''$1nclu
de 'dafineg, h'$1include
"5 tructs, h'1xnclude 'ext
rnvar, h'5are(x+y) double x, y: double tempa, tempb; if (
safety, = FALSE) return (T
RUE); Skip if not accelerated.
if (y = 0) tempa = (x-shiftx) rice (x-shH
tx) + (y-shifty) rice (y-sh
if ty) ;tempb = (leg-GR
IP DEPTH) rice (leg-GRIP DEPT
H); lf (tempan tempb) return (FALSE); (Ilse return (TRLIE): else tempa = (x-shiftx-Leg/2.
0) Rice (x-shiftx-1eg/2.0) + (y
) un(y); tempb = (leg/2.0-0RIP-DEF
rH) Rice (leg/2.0-GRIP DEPrH);
if (tempa > tempb) return
(FALSE); 1se return (TRUE); ] 5CALE, CB60123.850918 ruchi/
is the length of the patient's leg, whether it is the right or left leg, and whether it is the affected leg.
The location of the blib agram is determined by the location of rthrobot.
The general symbol used to standardize the position is: 5ide l = left't -1= r
lightoffsetl, offset2. of'
fset3Rinri-PERPOTI, RAD PER-
POT2. MD PERPOT3memory (
pose) (pot) pose o to 4
Pot. 1+4.5hirtx, 5hifty; $1nclu
de "5tdio, h"1inelude "d
efines, h'$1include ”5truc
ts, h"#1nclude"extrnvar,
h'5cala (1 external double cos+), 5i
n()l$deflne PI 3゜141592
654$defxne YPO3ITION 100
.. 00 Height of leg from arm $defin
e LENO37Q, O 1st arm segment $d
efine GRrP WIDTH125,0 patient installed
Body width $define YAW 5WING 789.
0$define ROLL 5WING 200.0
doul) IG u, v, xly+angla1. a
ngle2. angle3; double temp
x, tempy: int 5hLdr pos,
yaw, roll, pitch, position, b
ad :char dummy(15); 1ockup(TRUE); clearscreen(0,24):movecur
sor(0,0); flex ang = 90 : elevate = 45 : printf(" Arthoscopic Leg
Positioning Scaling Route
ifl e%n\n 1 ) printf('Is l
eg positioned in FULL EXT
ENSIONposition'i' (y/n, jummy(0) = bdos(1) :pr+n
tf("\n'): if (dummy(0)!='y') clear
clean(0,24);movecursor(0,
0): mai nmen u() : 1ockup(FALSE); 1se printf("Xn'X,n Please en
ter heel to knee length 1
nscanf("%F\n', &1eg) ;pr
intr("\n'); trained = TRUE; 5afety = TRUE: leg = leg2.0 + ang]el = pots (1) US RAD PET (
POTI + 0ffSetl ; angla2 =
pots (2) US RAD PERPOT2 + off
set2: angle3 = pots(3) rice
RAD PERPOT3 + Of'fset3;
arm2world(&x,&y, angle+
arrgle2. angle3);tempx=
X + 5hiftx = (x + (1, RIP DEPT
H)-(leg):5hifty=YPO8ITI
ON ;hx m 5hiftX; these
The value of mhy = 5 is used by the anthr'o routine.
lift'y: zO=sqrt((leg/2-0RIP-DEPr
H) Rice (l e g/2-DKPTI() + (GRIP
WIDTH-*GRIP WIDTH)) ;m1n
l = Leg coming (OFLIP WIDTH) / (
21 (leg-ORIP-DEPTH)); print
f(” 5hiftxblind%f 5hifty+%fz
o-+%f'<n'. 5fiftx, 5hifty+zO)if (5
ide == -1) Right side 5hldr
pos = 3289: else
Left side sMdr-pos = 740
: for (poaition = 1; 'po
position <6; ++position
) yaw = yaw center;
O, O[Ij, centered pitph = pit
ch center: 0.0 degrees, centered
rolled = roll Center r
000 degrees, centered 5w1tch (pos
ition) case l:
Lee L? Ji
hxniri゛′shiO u = (leg-GRIP DEPrH) 釆co
s(elevate * PI / 1B0.0
u= u + (GRIP WIDTH+5in(e
levate US PI /180.0) )v =
(1+4-GRIP DEPTIi) *5in(e
levate wood PI / 180.0v = v
-(, GRIP WIDTH book cos(elevate
Not yet PI /180.0) :X = u
+ 5hiftx :y = v + 5h
ifty :bad = world2arm(&a
nglel, &ang1e2゜&angle3. x
, y) if (bad<0) elevate = elevate -1:w
hile ((bad < O) && (eleva
ten0));printf(”elevate wg
%f\n', elevate) ;roll z
pots (6) + (5ide unwrparms
(12) : yaw w yaw center
+ (5ide * wrparms(10)):
break; case 2': complete stretching
u ” tempx - ahiftx lv w te
mpy -5hifty;roll w pots(
6); yaW - yaml center; break + case: complete bending O u = (leg/2.0) + ((leg/2.0
) -GRIP DEPTI() *cos(flex
ang*PI/180.0) :u, = u −(
(GRIPWIDTH) 5in (flex ang)
Jr'I/180.0)); v -(-1) t((leg/2.0)-01(IP
DEPTI() coming PI/180.0)) ; y = V + 5hift'l : bad =
world2arm(&ang1el, &ang1e
2゜&angle3,χ,y);if'
(() ad < Q) rlex ang = flex ang -1:w
hlle ((bad < O) && (flex
aTlg > o) ); prlntf(”flex
arrg = %f\n”, flex ang);ro
ll = roll center; yaw
= yaw center + (5ide -*
YAW-8WIN(]/4) ;! J = (0,
80*Ieg) -GRIP DEPTH;v=
GRIP WIDTH-leg / 2.3 ;r
oll = roll center + (5ide
US abs (pots(6)-roll, center)
); yaw = yaw center + 0.5 trees (5
ide rice abs (pots(6)-ran-cente
r)); break: u = (0,800 US log) -0 RIP D
EPTH;v = -GRIP WrDTI(; it (5ide ===+ -1) (right side yaw = yaw center -YAW 5Wf
N() ; roll w rob-center +
ROLL 5WTNG ; else Left side yaw = yaw-center + YAW-8W
ING ; roll z roll center −
ROLL-8WINC) ; break ; Convert (u, v) to (x, y)
Calculating the angle of 3 bed! world2arm(&angle,
&angle2. &angle3. x, y)
; Convert corner to poila if ('bad ! --1) 191,. 1.・Positi. . %d pro5r
amnoed 'sn', posit1on) ;pr
intf(”x=%f y−%f\
n"+X1y): printf("Xn"); +namory (position -1) (o)
= 5hldr-pos :memory (poa
ition −1) (1) = (angle −
offsetl) /RAD-PERPOTI; memoryY (+) position -1) (2)
= (angle2-offset2) /RAD
PERPOT2; memory (position -1) (3)
= (angle3-offget3) /RAD
PERPOT3; memory (positon-1) (4)
= yaw; memory (position −
1) (5) = pitch; memory (p
ositelon -1) (6) = roll:
] 1se printf(' $-*-Position %d
rrot programmed\n1positi
on) prlntf(” Please do pos
ition %d manually\n', po
sitlon) printf(“XN%f y!%f\
n” g X1y) ; printf ('\n1); ! 1ockup (FALSg);
The file is commanded via the new hand controller.
Contains a routine that performs the specified access/con. glance 1include ”atdio, h'1inclu
de "defines, h'111nclude
``5tructs, h''jinclude 'ex
trnvar, h″1abs(value) int value; if(value < O) return(-value); else
return(value):speak(5a
rlo word number) unit 5
arlOword number; if(are
we jn continuous moti
on == No )return(
・arout(5arlo word number
lse return(1); znt Sett1ng+ unslgned char received-j
unk(12B); send-command to
-the-8ARIO(”!, receive
d-junk);xf(setting=TRU
E) send-command to the-8A
RIO ('B, l\r'. received-junk) send command to-the-3ARI
O('Ml\rl. ric@1ved-junk); ■ 1se send command to the-8ARIO
(”B, O\r-send command to-
the 5ARIO('ITILJ\r1゜r ece
1Ved j unk): 5g Wfl
5tuff 5election-or-action
1nto-the keyboard-buffer
(pendant 5 selection, pendan
t action )irVL pendant
5 selection, pendant-aot
ion; if(pendant-action ==
O) switch(pendant-selection
n) case O: 5tuff kbuf (, ELEVATfe Co)J
MANDbreak: case l: 5tuff kbuf(FULI, -[EXTENSI
ON-break; GaSe2: 5tuff kbuf (HALF-FLFiX-CO
M) JANDbreak; case 3: 5tuff kbuf (FULL FLEX COMM
ANDbrBak; Ca513 4: s tu f fJ<bu f (FIGURFi 4
-C0M! JANDbreak+Caae 5: 5tuff-kbuf(WRIST COMMAND
); break; Ca5e 6 : 5tuff kbuf (F'OOT COMMAND
); hraak : Ca5e 7 : s tIItT kbu f (KNEG-COIJ14
AND ); 1 cak; case 8: 5 tuff kbuf (IIIP COMMAND
);break; case 9: 5tuff kbuf(AR)J-COWAND)
;break; default: break; else switch (pendant-action) c
asel: 5tuff'kbuf(M(NUE3 COMMAN
D); b r e a k + case 2: 5tuff kbuf (+"LUSCOMMAND
);break; case 3: 5tuff kbuf(5TOP COMMAND
); break; atuff kbuf (a-character)
unB1gn@d int a character
er;5tatl,c unsigned 1ntO
x0300, 0xlEQl, 0x3002. 0x
2EO'! ,0x2004,0x1205,0:c21
0(3+0x2207°0x230B, 0x1709
.. 0x24OA, 0x250Bpx260C, 0x3
20D, 0X310E, 0XlBOF. 0x1910.0xlO1l, 0x1312.0xl
F'L3ρx1414.0X1615,0X2F16,
0Xll17゜0x2DlB, 0x1519.0x2
CIA, 0xlAIB, 0x2BIC, 0xlBL
D, 0x071E, 0xOCIF. 0X3920.0XO221, 0X2822.0x04
23. px0524.0X0625,0X0826,0
X2827゜0XOA2B, 0XOB29.0XO9
2A, 0xOD2B, px332c, 0XOC2D
, 0X342E, 0X352F. 0xOB30.0x0231.0x0332.0x04
33,0x0534.0x0635,0x0736. O
x0837゜0x0938.0xOA39.0x273
A, 0x273B, 0x333C, 0xOD3D, 0
x343EIQx353F. 0x0340.0xlB41.0x3042.0x2E
43ρx2044.0x1245,0x2L46,0x
2247°0X2340.0X1749.0X244A
, 0x254B, 0x264C, 0x324D, 0x
314E, 0x184F. 0 to 1950. Ox1051.0x1352.0xL
F53,0x1454.0x1655,0x2F561
0xl157゜0X2D5B, 0x1559.0x2
C5A, 0xlA5B, 0x2B5C, 0xlB5D
, 0x075E, 0xOC5F. 0x2960. Ox1g61.0x3062. Ox
2'B63ρx2064.0x1265. .. 0x216
6.0x2267°0x236B, Ox1769. Qx
246A, 0x256B, 0x266C, 0x326D
, 0x316E, 0xlB6F. 0x197Q, 0x1071. Q+c1372.0
xlF73ρK 1474 + Ox1675+OX2
F'76+OX 1177. 0x2D78. 0x15γ9. 0IC2C7A,
0xLA7BIOxaday7C,0KIB7D,0X2
97E, 0XOE7F. ); unsigned in head, ta
il placedjSable int, erru
pt, s(1: head = peek(0xOO
1a. tazl = peek (0xOO1c. plac@ = tail; La1l + shi 2; 1f (tail == 0xO03e) tai
l = 0xOO], e if(head == taxl) retur
n(0); if((a character & 0xOOff
)--' 0xOOOO) pokew(plaCe
, 0xO040, a charaCter );
else pokew(place, 0xO04
0゜ASCIIjo 5can code and-k
ey(a character) ); pokew
(0xOO1c, 0xO040, tail);
return(1); enable xninterruptsT); ] flush-the-keyboard-buffe?
+1unsigned int beta: Keyboard
The read buffer has a head part from which characters are read and a tail part where characters are placed.
ing. This routine erases the tail of the keyboard buffer.
〇Note: 0xO040: 0xOO1a is segment 0
xO040 and head position 0xO040: 0xOO1c is
Tail position disable-i in segment 0xOO40
interrupts (Lhead = peak(0
xOO1a, 0XOO40): Get the head
pokew(0xOO1c, 0xO040,he
ad ); into the tail enable-inte
rrupts();isJhe arm;oving
()int Jotnt, mOVing;mov
ing = FALSE; for (Joint=o; Jolr+t<4;
joint++ )if(abs(5et(j*i
nt'), pos-5tate(jolt). parms(joint), fJ+ys)mov
ing = TRIJEit)reak; tor(joint = 4; Jotni < 7
; joint++ )if(abs(5et(j
oint), pos-5tate(joint)
. moving = TRUg; reakr return (moving); put the arm 1nto emerge
y stop(1dwrport (s, outbi
ts &0XEOOO); squeeze everything out
5napshot(1;
Get new value of jl for (joint=0;
joint<]; tenJo in t) set(
joint), pos ffi 5tate (Join
t), pot; if (joint < 4) set (joint), mode y LOCK; 1
ss set (joint), mode = FREE; 5t
op-and masntasn-1he prese
nt position-of tbe-arm(+
dwrport(8, outbits & 0xaOO
O);5napshot(); for(joint ! O; joint <
7+ joint++ ) elevate-
the, arm() recall('ν); wrparms(1B)! TRUg:full
extension the-arm()rec
all('2'); half flex-the-arm() recal
N '4'); full flex-the arm (1 recal
l('3'): figure-4-the-arm()recall(
'5'); setupthe-arm() recall('6'); move-arm-in(1 15et(0), poa-am (ahoulder
-11parms(0), ino button 2); 5et(0
), mode +w MOVE: turtle move-arm outj) s, et(0), pos 4= (5holder
41 parms(0), inc 2); 5et(o
), mode w MOVE; flex the hi
p() sf (trained) anatom (ANG 5TEP since 2.0.0.0)
;1se inc
); lse , inc xy (0, -50); flex th
e-knee (1 1r (tratned) anatom (0,0,-ANG 5TEP not 2.0
); 1se 1nc xy (-50, O); extend-the-knee () if (trained) anatom (0, 0, ANG-8TIICP not yet 2.
0); 1se rotate foot-1n() 5et(4), pos -= (side comes palms
(4), 1na) ;rotate-foot-
out() set(4), pos 4-M(side not parms
(4), 1nc);ir (external-rot
ation =w O) [external rotation y l;
Free list or reset from snap
flag 5et(6), pos += (5ide * pa
r+na(6), trra); release
the wrjst(1ror(joint w 4
; joint <11; Jotnt++
) set (joint), mode = FREE
;external-rotaLion=O:ho
ld the wrlstH for< joint ” o; joint <
'/; joiTIt++ ) [S times '5PEID, C851203 This routine sets the speed of the hydraulic joint1
1nclude “gtdio, h”11nclude
e 'definea, h"11nclude @
5 tructs, h"11include'extr
nvar, h”5etspeed() double deltal, delta2. de
lta3. temp;int 5peedl, 5
peed2.5peed3; deltal = abs
(set(1), pos-pots(1)) ;de
lta2 = abs(set(2)°pos −po
ts(2)); delta3 = abs(set(
3)'pos -pozs(3)) ;if (de
delta2) 1f (deltal>d
elLa3) temp = deltac lse temp ta delta3; 1se if (delta2 delta3) temp w
g delta2; lse temp = delta3; 5peedl = )'ERIOD $ deltal
/lamp;5peed2 = PERIOD rice del
ta2/lemp;5peed3 = PERIOD
US del ta3/l amp ;if (speed
l < 1) Ensure speed (ni
- thicker than 5speedl = l; xf (speed2 < 1) speed2 = L ir (speed3 < 1) speed3 = l; 5et(1), duty = 5speedl; 5et(
2), duty = 5peed2; 5et(3), d
uty = 5peed3; SHT electric IP, C8602
07 This routine initializes the joint settings and 110 parts.
(! i9゜also this routine:: more simulated
Division processing routine (; parameter array is set step
ru0 11nclude '5td1o, h"11nclu
da 'deflnea, h"11ncluae
'5tructs,h'11ncLude'axt
rnvar, h@etupH external int dac refresh (
); int i; char reply (to); debug x O;
Setup of joint parameters parms (0), type w HYDRO;
Horizontal shoulder joint palms(0), f h
ys * 15; parms(0), r, -hys w
-15;parms(0),c16ck=O;p
arms(0), outadr = O; parms(
0), vmask = 0xOO04; parms(0
), xgain = l; parms(0), vgat
n = l; parms(0), dead = 2; p
armS(1), f'Jys = 30:purm:+
(1,), r hys = -30: parms
(1), clock = 1: parms (1), ou
tadr = l; parms(1), vmask =
OxO020iparma(1), xgaln =
l;parms(1),vgain-1;parms(1),dead Q 2;parms(1
), jnc = 10; parms(2), typo
= +1YDRO; 1st elbow joint par
ms(2), f-hys =++ 30; parms(
2), r,, -hys w -30; parms(2)
, clock w 2; parms(2), outad
r-2: parms(2), vmask = 0xOL
OO;paris(2), xgain W l;par
ms(2), vgain w l; parms(2),
dead = 2; parms (3) J-hys =
35; parms(3), r-hys = -35; p
arms(3), clock = 3; par+n5(
3), outadr = 3; pnrms(3), v+
++ask = 0x0800ipar+n5(3
), xFSain ” l; par+n5(3), vg
ain” Cparms(3), dead = 2:
parms(3), inc = 10; Note: listpa
ctrx H defined as (again below)
Required list parameters wrparms(0) = l; wrist m
ode l=normal 2=lockyaw&pi
tch3 = pi tchtrack wrparms (1) = O; valve (pair
andVoffcentwrparms(2) = 6;
Bituwi/do wrp, rms(3) = 4
; Opart neat constant wrparms(
4) = l; Pitch speed magnification wrpar
ms(5) = 50; Initial value setting of timer
Count of (number of cycles) wrparms(10) =
-150 yaw off cent constant, related to el eva te
used by wrparms(11) = 120; ele
The pitch increment wrparms(1
2) = 100; used by 5cale, c
2 sets of wrparms (13) x 8;
Magnification motor for: wrparms (1
4) = 4095 / tqrparms(13);
Complement constant wrparms(15) = 2050
; Bitchto-poor-soking-o-7-senoto-constant flag wrparms (19) w l; Pitch speed
degree variable rms(4), type s-BRIDGE
S; Listyo (Pino?) parms (4),
jhya x Q; Hysteresis of list ctrl
lysis window parmIJ(4), r''+ys=
200; Period parm to limit actual speed
s(4), outadr = O:parms(4),
vmask = 0x2000; parms (4),
xgaio = 25; parms(4), vga
in = 2! j; Velocity feed/cut
gain parms(4), dead = 2048
;par+na(4), inc=100;pa
rms(4), msh = 2048; ma
node/tool 7-code constant (650) parms (5), ty
pe = BRIDOES; wrist pitch (
-3-) par+n8(5), fhys = Q; p
arms (5), r-hysta 200: parm
s(5), outadr w l; parms(5),
vmask = 0x4000; parms(5), x
gain = 25: parma(5), vgain
w 25; parms(5), dead += 204
8;parms(5), inc = 10;parms
(5), msh w 2048; 650par
ms(6),, type -BRIDOES;
List roll parmsl: 6), f hys = O
;parms(6), f hys = 200;par
ms(6), outadr = 2; parms(6)
, vmask w Ox, 8000; parms (6)
, xFSain = 25; paris (6), vga
in = 15; pnrms(6), dead = O
;parms(6), inc =x 400;n*rm
nrA), mqh = r 2048: Io
o. offsetLl --2952,0*RAD-PERP
OTl;orfs8t2 = -2768, 0 bodies RAD
P[i:RPO'r2; experimentally determined of
fset3 = 1.3'79748483-1362
Tree RAD PI POT3;offseL5=
-pitcb center * RAD-P
i POT5; memory (5) (0)
x 740; memory (5) (1) =
2810 imenuory (53(2) =
1822; memory (5) (3) w 1
864: memory (5) (4) = yaw
center; memory (5) (5) =
1395 ;memory (5) (6) = ro
ll-center ;dtresetN;
Digital and Analog I10 Part 5
etcclock(120); 5etport(8); dwrport(8,0): for (i=o; i<7; ++1)
Initial state of node cent if (i < 4) set (i), mode = LOCK; l5e set (i), mode = FRfEE; 5et (1
), duty = PERIOD; 5et(j), po
s= acH(i, 1.O): paris(1), re
set = (pum+)(parl'1S(1), 0
utadr), InaSk lparms(1), vm
ask) state[i), wait = O: movecur
sor (0,29);prlntf(”kRTHR
OI30T II SE'rυPXo” ) ;5c
anf ("%3\n"+ &raply(0));1
f (reply(03 child +r') parms(0)
・χgain ox-1; 5ide = -1; memory (5) (0) w 3289: 1in
k-to-1interrupt(dac-refrea
ll+ 256+ USI? R-8UPPLIg
D-CLOCK-ROUTINt, /ECTOR);5
napshot, (); adjust the-wrist-complian
ce(6);5NAPSI(OT,C860122 This routine samples the
position include "defines,h"
'1fnclude"5tructs,h"#1n
clude “extrnvar, h” static
int js-tM heel-being pu
l]ed out = No. previous-state-of-jotnt 3
;1nt tamp (1o); lnt 1+ j ; for (i=o; l<10; ++1)te
"p(") = Q+ disxntr(); Prohibits interruption processing
5etadc (0,9,1,0,10); 1
0 readings (2 pairs adc, Teyanonel gain 1 set)
for (1=o; 140; ++1)
Read the pot of the node tamp(i) x adcO
; enablelntr(1+ interrupt thread up again f
o r (1=O; l<'7; ++1)
Calculation of pot displacement of all joints if (tamp(
i) < 10 ll temp(1) n4085
) fault(i) ;POTRRR;5tate(
1), dsltax y tempCi) -5tat
e(i), pot; 5tate(i), pot = t
emp(i); find out whether or not lf(temp(8:l < 2048
) is the Jeel-being-pulled
-out y ygs;if(5et(3), mod
E! =LIX:K)prOvious-sta
te of-joint 3 = 5et(3)
, mode; later restoration ++et (3), mode w ll0LD;] ■ 1se if (1sths-hae□-being-pull
ed-0゜t ;: YES ) is-the-he
el-belrrgJulled-out = N
o; Check environmental sensors for arm, wrist or obstructions.
Let's see if there's anything warm about it. if(temp(9) < 2048)
Stop-and-maintain-the pre
sent-position-of-the-arm(
Cif (5tate(0), pot >
(S) IOULDER-50) && 5tate
(0), pOt < (St(OULDER
+ 50) && 5et(0), mode --
MOVE) set(0)
, mode = LOCK; if (state(0)
, pot > 8+1OULDER)shoulder
e=-1; e 1 s e )n FI?
5holder to determine the actual polarity of 1 position =
1: if (abs(state(6), pot-yaw
-center) < LOo, 0) if (ext
srnajrotatlon > Q) set (6),
poa -w (side comes parms(6), 1
nc) :external-rotation=
O; 8TORg, C851203 The operator presses IS@ and then presses the number of the position to be recorded. 1inelude '5 tructs, h'tnt
pose, i+ 1f (-*mode = 0) 1ockup (TRt[e): clearscreen (2, 24); n+ove
cursor (2,0);prir+tf (”S
'['01(E POS I TI ON\n\n”
);printr("5 standard posiLl
ons:\T]\tl -E1eVQje\ll\t2
-1i'uLI Extension\n1);pri
ntf ('\t3- Full Flex\n'Xt
4- Half'Flex\n'st5-[i1+g
ura FourXn\n"):printf'('
Press l-b to 5tore posjti
on\0″); *mode = 2; 1ockup (FALSE); 1se 1f (code > 48 && code <
754) pose ” code -49+ for (i=o; jgu7;+←1)memor
y(pose)(x) ex pots(i);mov
ecurSor(24,0);printr(”
\tPosition %a trazned',
pose+1); i$mode = O; mainmenu();
Return the number of ticks (-seconds (218.2 ticks)
uzsigned long get the-tlm
e of-dayOunsigned Ion) (cl.
ock ticks; unsigned 5hort
peek(Gdisintr(): clock tlks = pOek(OxO
06e, 0XOO40); clock ticks
= clockticks * 0xiO000L +
peek (OxO06c. enabintrf); return (clock ticks); WT
CI (DOG, C85121r!. When this routine is called, the monitoring timer is switched.
Ru. This routine is used to control the digital voltage regulator.
Fixed Mano ``)゛Rator is seven sorted. $1nclude '5tdio, h"$1nclu
de "defines, h'$1include
``5tructa, h'wanclude'extr
nvar, h'wtchdog() outputs l=WDON; dvvrport (8, output3);ou
tbits 4m WDOFF ;dWrport (
8, outbits) ;” $1include “atdlo, h”FILE
Come fpi, reach fpo, , -*fopen□;un
signed char storage (256)
;int 5top, i, le
ngth, character, ret;5r
v-arv crstrjp (c, v) Int
Q; char tree V []: if (c<3) prxntf('Count error\n'); f
pi = fopen(v(1), 'r'
); fpo = fopen(v[2), ”w
” );ret = fgets(st.rage,
2゜7.19,)8character = fg
etc(fpi); length = 5trl
en(storage);for(5top=
O, i = length −1; StO'p'=!
O&&in0;i-) awitch(storag
e(i)) [case": Ca5e '\t': case '\r': break; default: 5top≠1; , break;
aracter == '\t'II char
acter == 1\n1ll jsupp
er(character)11 1sd1git
(character) ) lengthLh y
5trlen(storage);stora
ge(length) = '\nl;s
storage(length + l) = '
\0': fputs (storage, fpo
);fputc(character, fp
o );lse [length = 5trlen(storage
); storage(length ] =
” ;storage (length ÷ 1) = l\
OI; fputs (stortsg, e, fp
o);fputc(character, fp
o ); while (ch, 1racter !=
EOF && rQt! = EOF');
fclose(fpi); fclose(fpo): DT[(FiAD, H851023 This file contains the DT2801 analog I10 board C
] Contains constants and macros used by 7 software.
Data R translation board, engineering VA standard address $define
DTC3R0x02ed$define DTDAT
Mask 0x02ea status bit $define ERROR0x80 $define 0BFE 0x40$defi
ne Ck4'ND 0x08$define
READY 0xOO04jdef1ne OBF
0xO1$define writewait
1while (importb(DTC8R)
&IBF);1; EPILn()UE, T(; end of any assembly
codeQCODg ENDS; MODEL, H: defxne memory model
for 1 library assembly code
FALSE equi O; for small m
odelTRtJaequ lbaorb
xg model; small model:=
Qbigmodel and Qmedmodel
are false; medium modec=
Gbxgmodel Is false, (
ilmedmodel 18; big +nod
el+= Qbigmodel is
true, Qmedmodsl isGBIGMO
DEL EQtJ FALSE: 5el
ect this for modelGMED
MODEL EQU FALSE; me
dlum model swztchf1 1f Gbignoode1 %out BIG MODIEL ASSE)aLY
1se if Qmedmodel %out MEDIUIJ M(IDEL ASSE
1aLYlse %out SMALL MODEL ASSEMBL
Yndif ndir end+f; GBIGCODE means far
procedures; GIBIC)D
ATA means 4 byte data
pointersGbigcodeequ
lbigmodel or Gmedmodel)Gb
igdataequ (3bigmode
l; if you set QCOMFILJ
the COM memory model;
will be selectedGCOMF
ILgequ O; θBIGCO
DEmeans far procedures;
QBTGDATA means 4 bytes
data pointers
equ (Qb1g+nodal o
r Qmec3model)Qbi((data
equ Qb1g+nodal; DEli'fN
EAHGIJMICIJ'['BA! 3ERELATI
VEFR(')IJBPIF OB[l':0
DE QAB EQtJ 6 L8te QAB EQU 4 NDIF GCODESE())JEN'l' BYTEPUBL
ICIc0DE+GCODE El(DS 1; IDATAB 5E(WEN'r PAR
A PLJBLICIDA'rAB'GDA'rB
IENDSGDATACIGMEN'r
BY'rE PUBLTC'DATAC'Gsb
1abel byte Qsw 1abel word QDATACENDS QDATAT SEf) MIuN'r B
YTE PUBLTC'DATAI'Gjb
1abel b+7LeQ1w 1abel
wordGDATAT END3 QDATAT 5EQIJIENT BY
'rlE PURLIC'DATAT'GDATAT
ENDS laDATAII 5EGIJN'r
BYTE PUBLrC' DATAIJ 'Qub
1abe1. hyLe G3uyv lar+(Il worslJD
ATATI EtJl)SQDATAVSE
GlvlTi:N'rBY'i'EPUBLJC'DA
TAV'0DATAV END3 if IaCOIJIJILFDG
ROUP GROUPQCODE, (JDAT
AB, 9DATAC, GDATAT, GDATATωC
0DE 5EGk4EN'l'BY['E PU
RLTC'C0DE'AS8UME C8:
DGROUP, DO:DGnOUP1se DCIRQUP GROUPGDATABj
lDATAC, (IDATAT, QDATAT, QDA
TAU. GCODE SBG MEN'r BYTE PU
BIJC'C0DE'ASSUMI7 C8:
σC0DE, DS:DGROUPndj f; IEND OF PROLOGUE, h;
DISINTR, ASM
851023; Rootea DISINTR
and ABINTR reads the AD converter:
Literary Application/'3] Interruption Processing Enable
Used to make bulls and dogs. INCLUDE 114 (LDEL, HrNc
LtJDEPROLOGUE,HPUBLICDISI
NTR DTSINTRPR('Ic NEARLT ET DTSINTRRNDP PtJBLTCIABrN'rR ENABNT'RPR(') CNEARTI ET ENABIN'rR1leNriP INCLUDE apTt, ocum, HND A DC, C851023 adc (data) gives star tadcm command.
All parameters must be set appropriately before
. adcO can be called at any time. jinclude ``dthead,h'adc('
) lni dajaL+ datah; r eadwa I L r
Wait until data ready datal -1npo
rtb(DTDAT Month Reading of lower byte
Readwait;
datah = 1n up to upper byte ready
portb (DTDAT);
Return (data + (da
tah <<8)); li number 1 - pack and return
-ADl, C851Q23 Qdz (channel, gain, mote') fj) trigger
from the specified channel using the specified game.
Load analog data 1. 1. :: Feng,)
T,-,,,9,'4tttr! IWIt')9-'
fl. act(channel, gain, mode)
char Ctlannel+ gain, mod
e;int data;Commandwa I L + Ready 2
:5 if (mode 0) outputb (DTC8R, 0x8C); a
-d 1se outportb (DTC8R, 0XOQ) that triggered the immediate command;
a-d do not trigger immediate command wrltewait;
outputM DT waits until command is processed
DAT, galn) ; Gainpa 5/-evening
near) Wri tewat l+ command is processed.
You can also wait until it is processed (DTDAT,
channel); Channel Centr
eadwaft; data m1nportb (DTDAT); read
wait; data x data + (inpor
tb(DTDAT) <<8); COm! Nan
dWa1 j+ L/de
Samurai until you (importb(DTC8R)
& ERROR) printf(”Adl err
or -");dterror(1; re also urn (-1); tse return (data);
Clear the screen containing lines. cle/1rsscreen(first, 1st
)tnt first+ 1aAt; stru'ct rllll'gVal l 1ntaX
+ bx+ ax, dX, al, di * ds
+ esBtruCtregval sreg+sre
g, ax x 0x600; 5ysint
Clear the screen using syeg, cx w 0xl
OOIt first; sreg-dx = t (Ox
lOO'US 1ast) + 0x50; sreg, b
x = OxOγ00; 5ysint (OxlO+
&sreg, &sreg) ;DTCLEAR,C8
51023 This routine clears all processes and
Reset $1include 'dhead, h”d
tclearf dtstop(); instruction
Stoppage of two commands;
outpartb waiting for ready flag (DTC
8R, 0XQI ); Clear command DTERRO
R,C' 851023
dterror() is the data translation board error register
Decode data and print diagnostics. Hon Luci
must be called because an error has occurred. Matamoto Luci
dtclear□ is called by 5bort i,
errorl, error2; if (inp
ortb (DTC8R) & ERROR) prinR
(”DT213QI Composite error
flag detected\dtStOpO;
Stop execution command C0mIn1In
(] Walt; Lady 72
outportb waiting for Nog (DTC8R, 0x02)
; Reading error command r e Q d Wa 1
t+ wait for lady 7 rug e
rrorl = 1nportb(DTDAT);
r eadwa IL:
waiting for lady flag error2 w 1npo
rtb (DTD, AT); 1f (error
& 0xQl ) printf ('--Error
O: Re5erved 'Jl'); if (er
rorl 11.0XO2) printf (' -
-Error l: Command 0VerWr1
te error (error & 0x04
) printf (”--Error 2; C1o
ck set error\n”);if (erro
rl k 0xOB ) printf (”--Err
or 3: Digital port 5 select
errc)T\if (errorl & 0xlO
) printf (” = Error 4: Digi
tal nort set arrnr\n'). if (error 8c 0x20)pr
+ntf'('-Error 5: DAC5
select error\n');if (er
rorl for 0x40 ) prlntf (”-Er
ror 6: DAC clock error
;if (error & 0xBO) print
f (”--Error 7: DAC@conve
rsions error\n1); if (Err
or2 & 0xO1) printf (” --Er
ror B: ADCchannel error\
n”):if (qrror2 & 0x02)
printf (”-=Error 9: AD
Cgain error XT1'); if (
errorZ & 0x04 ) printf (”
--Error 10: ADC clock e
rror \n1);if (errorZ & 0
x08 ) pr=ntf (”--Error
11: AI) Cmultiplexer err
or \n');1f (Error2 &
QXIO) prlntf (' = Error 12
: ADCi conversions error
'Xn'');lf (errorZ & 0x20
) printf (” --Error 13:
Data where commandpr+ntf
(' --Error 14: Re5ervedXn
');if (Error2,!c 0x80)p
rxntf (”-Error 15: Re5erv
edXn');dtclear(1;US=1ea
r error flag Next time I rebooted the DT2801 board.
Program to set. The preferred cent-up directive is
Force commands must be carried out before they can be used. 1inelude "dLhead, h"dt, re
set, () ・5tlnrt l+ outporLb(DTcSR, (h:of);
Stop command i = 1nportb (DTDAT);
in read register (emit nitator wh1
g (!((1nportb(DTcSR)) & R
EADYλ) Readyflag's 0utpOrtb(D
TcSR, 0xOO); Reset instruction while
e (!((importb(DTcSR)) 3c
O[3F')) OBF 7 lag 11inp
ortb (DTDAT); read register
Emit data into i = 1nportb (DTcS
R);while (!((inportb(DTcS
R)) & RPADY)) Lady Flag DT
ST'OP, CB51023 dtstopH is used to stop all processing and
Provides an exit function for subsequent block modes. 1inelu+1e ”dthead, h'dLsto
p() outportb(DTcSR,0XOF); finger
Stopping the command... There is no need to wait. jnpor is also b (DT
DAT); Empty the data register (DAT);
emit DWRPORT, C851023 dwrport() is 2 for this digital I10 boat.
Write out 16 bits of data for both. 17'O boat
I10 mode is the actual routine (using 28etport).
must be set. $tnclude "6thend,h'awrpor
t (port, data) unslgned +n
t data; int, port; unslIi (led char 1 () W, 111
g11+low = data &0xOOFF;h
lgll = (data & 0xFFOO)
>n8;swjtCh (port) [case s: com+nandwa 1 t: lady7ra
Sog standby qutportb (DTcSR, 0x07
); Output of command vrxtewait;
Standby outputportb(DT) while the input bag is full
DAT, 0x02): Boat select data
Data writewaxt: Enter Kabanov 1
ouLportb(DTDA'r, low
); Data output writewaiL: outporLb (1) TDAT, old gh); r8ak
i case 11: cononandwalt; Ladyflag's
Standby ouLporLb (r)'L”CuR,Ox8”
7) iW r l tewa i L: outporLb(D'l'l)A'l', 0XO2
);writ+l1wait;while the cover sofa is full
t+ u t p Or t b (DT DAT +
lOW) :writeWalLroutportb(DTDAT, higha);b
reak; default: prlntf ('Illegal dwrportf
) port numberXn”);return
(-1); break: command wait; if, (1nportb(DTcSR) &l +E
RROR) printf('Wrport error
--'); d terror(1; return (-1): 1se return (Q); MOVECU, C851Q2'3 The cursor moves in the 1st row, 11th column, and 1st direction using 1ifi)
movecursor (row, col
umn) Int row, column; struct reHval (1nt aX+ bx
, ax, dx, 811 dt, ds. 5truct regvaL sreg; sreg
, ax = 0x200; sreg, dx w (OxlOO tree row) + c
olumn; S r e g −bX ” O; 5ys1nt (OxlO, &sreg, &areg
); SETADC, C851023 setadc(schanneL, echanneL
, gain, mode) start the A/D conversion.
5channel and echannel are for conversion respectively.
Start and end channels and set gain 1iadc
In and legal are respectively gay y l, 2.4.8
The omode, which is O~3 corresponding to , contains two flags.
This is a short mode, and bit 0 turns on the external clock.
Bit 1 turns the external trigger on and off. $1nclu+ie 'dthead, h'5etad
c(5channel, echflnnel, g+
+in, mode, reads) s b Or is also 5
channel, echanneL gain,
mode; lnt reads; COm+nandWalt;
Lady 7 Lanog standby ouLportb (DTC
3R, 0xOD); adc parameter command cera vri
tewaiN day
outputb(DTDAT) is ready.
, gain): Seven points of gain Wr.
l te Wa l t:
outporLb(
D'rDAT, 5chnnnel); Start
Set of channels Wr I tewa It:
data is ready
Ruma outporLb (DTDAT, echann
el): End channel set Wrlt8
Walt; Estimate ou
tportb(DTDAT, reads & 0x
OOFF); Set of conversion numbers Wr 1 tew
a 1 tt monotonous
hey? outportb(DTDAT, reads
&0XFFOO); Dummy number, L rank pie
command wait;
Ready flag standby if (importb(D
TC8R) & ERROR) Error check
printf('5tartadc() error-
-”); dterror(); return(-1); lse commnnndvait;
+, waiting output port b (DTC
8R, ((mode << 6) l OxOg))
;Mode bit transfer return (0); 8E'['CLOCK, C851023setcLoc
k (period) l: Period of the internal clock of 1
is set to (5μ5ec). single channel multiple
For D/A, the period is 68μsec minimum directness, 2
Channel multiple D/A l: For period 121
eC is the minimum value, and for multiple A/p the period
75 μsec is a small value. 1include 'dhead, h"5etclo
ck(perxod) int perlod; short low, higl]; low = 0xoOFF &period; hig
b w (OxF[i'OO&period)
>8;00mmandWait;
Waiting for ready flag c) u tport
b (DTC8R, 0x03) ; Clock command
sect writewalt;
Wait until input becomes ready 1] u tpor tt
)(DTDAT, ,low): Low byte
output writewaxt;
Standby outputb(D'rDAT, hi again)
gh); Upper byte output CommandWa
lt; Waiting for L'di7lag
if (importb(DTC8R) & ERRO
R) printf("5etclock error
--”); dterror(): return(-1); 1se return(0); Acquired 0 0 Non-trigger output port 0 1 Non-trigger output port 0 2 Non-(Trigger input port 0 and 1 3 Trigger input port 0 4 Trigger input port 1 5 Trigger input port 0 and 1 6 Non-trigger output port 0 ) Non-trigger output port 1 8 Non-trigger output port 0 and 1 9 Trigger output port 0 10 Trigger output port 1 11 Trigger output port O and 1 This routine returns O if successful; otherwise -l
Return to int mode; switch (mode) case O: tq1ti]u (!(inpbrtb(D1'Cj
jR) & 11r+, :ADY))outport
b(D'rCOR+ 0x04);whilo (
inporl, h(l')'l'c! 'IR) &
+BI+')outportb(DTDAT,0XO
O);braak; castl 1: while (!(inportb(DTC8R)&
READY))011tpOrtb(DTC8R,0
x04); whlle (inportb(DTC8
R)&IBF)outportb(DTDAT,
0xO1); break; CaSθ 2; whzle (!(jr+portb(DT08R)
&RgAT)Y))outportb(DTC8R,
0x04);while (inportb(DTC
8R) & IBF) OutpOrtb(DTDAT
, 0XO2);break; case 3: whlle (!(inportb(DTC8R)&
READY))outportb(DTC8R,0x
84);while (importb(DTC8R
) &IBF)o;+tportb(DTIMr, 0
xOO);break+ case 4: while (!(+nportb(Di'C3H)r
k I(At)Y))ooLportb(D'rC
8R, 0x84) :while++ (jnport
b(DTC3R) & I[]F)ouLport
b(DTDAT, 0XOL); b r e a k ; oas85: whH8(!(inpQrtb(DTC8R)&HE
ADY))outportb(DTC8R,,0XB4
);while (importb(DTC8R)&
TBF) oI+Lportb (DTDAT, 0x02)
;break; case 6: while <! (jnportb(DTC8R) &
'READY))outportb(DTC8R,0
x05);while ((inportb(DTC8
R)) & IBF)outportb(DTDAT,
0xOO);break; outporLb(1)'f'cE[,0x05):w
bile (1npor tb(DTC8R) & r
BF )011 LporL+>(1)'l'l)^'
l',0XOI); break: Ca5O8:. wbtle (!(xnportb(DTC8R)&
R1ηAr1Y))ouvporLb(DTC8R,
0XO5);while (inporLb(DTC
8R) & IBF)outportb(DTDA
TI 0XO2);break; case 9: while (!(inportb(DTC8R)&
READY))outportb(DTC8R,0x8
5);while (importb(DTC8R)
& TBF)outportb(DTDAT,0xO
O);braak1 case 10: while (!(inpartb(DTC8R) &
R1? ADY))outportb(DTC8R,0
X85); wbile (jnportb(DTC8R
) & IBF) OutpOrtb(DTDAT,
0XQI): hra angle: case 11: wbile (!(importb(DTC8R)
&R to Ar)Y)) outporLb(DTC8
R, 0x85); while (inporLb(D
″r08R)&TBF) outporLb(DT
DA'r, 0x02); break; defaultL: printf (Jllegal DIOn+ode
detected in 5etport8n');r
eturn (-1); break; while (!(1nporLb(D'rC8R)&
READY))1f (inportb (DTC8
R)&Ii:RROR)prxntf (Jn 5e
tport: ”); dterror(); return (-1); TecmFlr Lab Te++
Made by der Board's '7/Rechiteyanfu DAC.
be moved. $defxne BAI 0x330 1tdac (channel, value) 1nt
channel, value; static
znt muxsel=o ;muxsel &=
0xE7; Both mu and x are
Outportb to Able (BASE+4.mu
Xsel): muxsel &= 0XF8;
Channel change muxsel l=c
hannel &0XO7;outportb (B
ASE+4. muxsel);outportb (
BASE4-5. value); data output
force if ((channel & 0x08) ==
O) Enable preferred nnux muxse
l l= 0x08; lse muxsel l= 0xlO; outporLb (BASE+4.muxs
el) ;; IN'rCONTL, ASM
85111
B Kurtl interrupt support package mode1
.. prologue including h, public including h pnable-1nterrLrpta public di
sable-interrupt senable 1
interrupts proc' near
ti et enllble 1interrupts en
dpdisable-interrupts pr
oc nearli et disable 1interrupts en
nd with dpepilogue, h; lNTR8ERV, ASM
85111B; Hon Luci
code before entering the C routine attached to the interrupt.
; Process up. It also processes exit codes. Including model, h; title 'Interrupt support package tprol
ogue, h; this rule given by 1ntrinit, c
initial value setting of the program; when the next entry point is reached; 1ntrinit l: the code generated by
If the next state is X (rare ff1);
cs is set to CS value by computer;
Set the return address point to the area containing the following 0, s
p and S! Location to save 1 41 Required stack size 61 Data segment value 8, Address of function to be executed Qcode ends Qdatab seg+nentextrn h
eaptop:wordsaveslze dw
0 Qdatab ends Good segment; Entry point of interrupt service routine up eq
u 8 public 1ntrserv intrserv proa farpush a
s push es push di push bp mOV L) plsp Then the stack will be
Visible Les di, dword ptr ap(b
p) mov es:(dt), sp mov es:2(di), ss mov ds, es:6(di) data
Set of segments if 13b1gmode1 mov S! l, heaptop+2 star
segment lse mov ss, es:6(di) stack
H's segment eodH' mov sp, es:4! -dj) ad+ISp, SaV+311izu mOV '5avasizo, +Jpadd s
p, J+eaptop push ax p++Oh bX push+ cx puab dx p++sb s+ push 0s pusb di ``mouth()vfip+5p if: tablBmpdal call dsord par es:8(di)
1se pop di pop as pop 51 pop dx pop CX pop bx pop ax mov sp, es:4(di) Next call
Out: rLiy'! Adjustment sub 5avesize,
SP MOV SS, ES: 2 (DI) + NOV SP, ES: (DI) POP BP DI POP AS POP DS ADD SP, 4 IRET All Completed IR + and RSERV 'E -EPLLOG, including θura End; IRQSERV, ASM
851118; Specific to hardware interrupts
External NTR8ERV, same moclel as ASM, h
Contains; Title: IIRQ interrupt support package'
Run the code generated by r1rqinlt, including prologue and h.
If the following condition is true (rare gl); C3 is set directly by csj by the computer;
The return address point is set to the area containing the following.
0, location to save sp and ss 41 2 stack size 61 data segment value 8, address of function to be executed Gcode ends Qdatab segmenttextrn-M
aptOp2Word savesize dw 0Qdatab
ends L3code segme'nt; r
Entrance ap equ of RQllj included service routine
8 public ic 1rqservzrqserv
proa farcli
pus to disable external interrupts
h da push (3B push dl push bp mov bp, sp then
You can see the tack les di, dword p
trm□v es: (di), spmov
, 8S:2(dt), S5mov
da, es:6(di) data segment
cent up if Gbigmodel mOV 83. heaptop+2
Tuck segment lse mov 5s, es:6(di) star
segment ndir rnov sp, esIA(di]add
sp+savestzemOV 8aV
lISIZ9+5padd sp, heap
toppush ax push bx push ax push dx push 5i push es push di mOV bp+Jp sti Insert external interrupt
Enable Gbigmodel chll award ptr es:8(di
) call word ptr 8(di). 1
1 Disable external interrupt
sable moval, 20h
out sends the end of the interrupt to 8259
20h, al ri 01) di 1) 01) Qs pop 5i Pop dx 1) OP C! pOp bx pop ax mov sp, es:4(di)
8 N- for next call tsub 5aves
ize,,spmov ss,es:2(di
) mov sp, as: (di)pop
bp pop di pOI) es pop, (IS add sp, 4 stl external interrupt
enable 1ret all complete
1rqserv endp lnclude gpilogue, hnd IN'rRrNIT, C851118 Interrupt processing (: Set initial value for $1nclude
e'5tdio, h'unsigned cha
rUS allocH; function 1ntracrv, asrn
5 truct intcode (unsigned char farcall:
int including far call opcode (US farip)
(C far call ip value jifndef -c86-BIG unslgned farcs;
08 value endif unsigned 5avesp: sp
Value save location unsigned 5avess:
ds value leaving location unsigned 5tac
s1ze; place 9 star sokno height number uns
igned fardsi location lds value int
(from farfunc) 0: executed
1definmu5IZE IC(sizeof(str
uct 1ntrcode))intrinit(fu
nc, 5tack', vecno) int
c) 0: Function u that handles interrupts
nsigned 5tacL Ikuno
unsigned VeCn of the stack required by
O+ Interrupt trap vector number [unsigned char ustack; 5tr
uat 1ntrcode *icp+extern
1ntrserv(1; Copy computer support
Service function 5 truct tint as, ss, d
s, es; l Segreg5; segment register
segread the star (&segregs):
Obtain cs and ds values 1cp=alloc(S
IZE IC); This is the interrupt start location 1ap
-) farcall=ox9a; direct seg
Inter-ment call 1cp-en farip=intrserv
; Interrupt service routine address inde
f' C60BIO lCp->farc's=segreg8. C3+
Get O3 value endH icp-n raras=segregs, ds +1
f(stack<0x80) stack=ox80;
mdos requires this 11Cp->sta
cs 1ze=s tack; 1cp-n farfu
nc=func; Function you want to execute pok
ew (vecno end 4.O+1cp);
'ffJΔPect) Shinoly door 1. , ft11fd
ef -C60BIQ pokew(vecno*a+2.o, ((unsig
ned tong) icp) >16); else pokew (vecno button a+ 2 + O+ t3
e grligs, ds) +
'1 f) 5)) S1end i r Come to America, come to the future, come to the United States, come to the United States *: Future, come to the future, come to the future
Come on, come on, come on, come on, come on!
840815 pieces
Revised 85111s 釆米 coming * 釆 future coming coming coming back This procedure:: Combines the C function with the interrupt and calls the interrupt from the C function.
Two procedures are given to untie the . C le by 2 steps
- Chin is kept appropriately short. The C routine is short and at predetermined points this procedure calls the following routines: 1rqinit enable in'interruptsdisable
1interrupts argument function,=FN= combined for interrupts
Rubeyo C1nt 5tack-space = INT
= At least 512 stack spaces required for the same function
I want a part-time job int number w IN'r w C
Iz% task generated for function General variables: None Local variables: 1interrupt (256) = STR = Ori 2
Array of field of null interrupt vector Original interrupt vector enable-mask (16) w US =lIR
Enable Q interrupts (interrupts 8 to 15) Constants: Interrupt mask register of R18259 future*-next
*+ Come here come come here 1 define IMR0xO021 interrupt mask register
Star5truct int off seg (u
nsigned 5hort original o
ffs'et. original segment; 1stat
ic 5truct int-off-sag
1interrupt (256); 5tatic
unsigned 5hort enable-n
Iask(16)=10.0,0,0,0,0,0,0
.. 0x00fe, 0x00fd, 0x00fb, 0xO
Of7,0xOOef. 0x00df, 0xOObf, 0xO07f l;5t
atic unsigned 5hort dis
able mask(16) =i 0,0,0,0,
0,0,0,0.0X0001,0X0002,0X0
004,0X000B,0XOOIO. 0x0020, 0xO040, 0xO0801; 1in
k to-interrupt(function,
int 5tack 5pace, 1nt-1
nt (-*function)() + int
5 tack 5 pace, int-number
;[int-number next 4. Q);1
interrupt (1nt number), or
original segment = peek(in
t-number 4+2.0); if(int-n
number > 7 && int-number
<16) irqinit(function,
int 5tack 5pace, 1nt-ou
tportb(IMR), 1nportb(IMR)
& enable-(int number) )
; else 1ntrinit(function,
int 5tackspace, 1ntenab
le 1interrupts(); unlink, f
rom jnterrupt(Int-number
) unsigned 5hort int
number;disable-1interrupts
□;if(int number >'7&&
int nunover < 16 ) outpo
rtb(IMR,,1nportb(IMR) 1d
enable mask (int-number)
); pokew (int-number rice 4.
O,1interrupt (int-orig
inajoffset ); poked(int number lk 4 + 2
.. o+ tnte'rrupt (1nt-), o
riginal-segment); enable
1interrupts(); 1RQTNIT, CB5
111B This routine sets the initial value for the IRQ interrupt process.
Nawareru 11nclude “5tdio, h”u
nsigned char button allacT ); Function 1
rqSsrv, asm is required 5truct i
ntrcode(unsigned char farcall:
int containing far call opcode (not farip)
f); 1p value of far call jifndef
-Ca6 BIC! unsigned farcs; far calls
08 value endif unslgnea 5avesp: 5p
(The place where ri is evacuated is unsignea Ba'1e
8Br aJi value uns
igned 5taC8iZe+ Required stack
number of bytes unsigned fard5;
where lds value int (book farfunc) [l
; Function 1 to be executed; $define 5IZlle-IC(sizeofi
rqinit(runc, 5tack, vecno)i
r+t (unfunc) H; interrupt
Function to process unsigned 5tack;
Number of stack bytes required by the function un
signed vecno; interrupt
Wrap vector number unsigned char *
ustack;5tructinttrσode not IC
p;extern 1rqserv(1;
``Puter's IRQ service function 5truct (
int Ca, 881d8+85+1 segment register
3Cgread (&segregs) to get data;
Get cs and ds values 1cp=alloc(SIZE
-IC); This is the interrupt start location 1cp-on
farcall=ox9a; K-contact segment
tcp->faripxirqaervHIR
Q interrupt service routine address 11fndef-C
86BIG icp->farcsxsegregs;cs;
Get ds value $endir icp-n fards town egregs, da;
stack<0x80) stack()x80;
mdos requires this 1cp->staCslze
mstacLiap->far funamfunc;
The function you want to execute is pokew(vecn
o coming 4,0. Lap); Interrupt vector set
ctup1Hclor-o86 )3LO pokow(vucno*+02.O+((t+ns+
B+uu1 1o++glop)n>36);u18
u pohew (vecno book 4+2, O, segreH
s, da);

【図面の簡単な説明】[Brief explanation of drawings]

第1図は本発明の医療ロボットを説明する簡略ブロック
図、第2図は本発明のロボットを患者の手足の動作装置
として構成し関節鏡検査手術に使用している状態を示す
図、第3図は第2図の手足の動作装置の構造体を示す斜
視図、第4図は同手足の動作装置の層構造体の拡大簡略
側面図、@5図は同手足の動作装置のリストの可動部の
構造を示す拡大平面図、第6図は同手足の動作装置の患
者装着体およ、びリストの簡略斜視図、第7図は同手足
の動作装置に使用される油圧作動機構のブロック図、第
8図は同手足の動作装置に使用される気圧作動機構のブ
ロック図、第9A図は同手足の動作装置に使用される操
作者用のハンドコントローラの側面図、第9B図は同コ
ントローラの平面図、第9C図は同コントローラの斜視
図、第10図は同手足の動作装置に使用される音声機構
のブロック図、第11図は同音声機構に使用される音声
コレクタの斜視図、第12図は本発明の他の実施例の手
足の動作装置に使用される制動機構の可動橋造を示す説
明図、第13図は同手足の動作装置の斜視図、第14図
は同制御部の作動器の接続構成図である。 10・・・作動装置、12・・・患者、14・・・治療
条件検出装置、18・・・コンピュータ、20・・・タ
スクプラナ、22・・・特徴′抽出部、24・・・入出
カプロセッサ、26・・・実行コントローラ、28・・
・ブリプロセッサ、30・・・環境安全センサ、32・
・・交換器、34・・・アラーム、36・・・表示制御
装置、38・・・動作装置、40・・・レール、42・
・・手術用テーブル、44・・・制御箱、46・・・気
圧ナーボ装置、48・・・層構造体、50・・・ノツチ
、52・・・取付ブロック、54・・・締付プレート、
56・・・締付ポルト、58・・・ノツプ、60・・・
旋回軸、62・・・アーム部、64・・・油圧作動器、
66・・・押し棒、68・・・旋回位置センサ、70・
・・アーム部、72・・・旋回軸、74・・・旋回位置
センサ、76・・・油圧、78・・・押し棒、80 。 82・・・枢支部、84・・・アーム部、86・・・旋
回軸、88・・・旋回位置センサ、90・・・油圧作動
器、92・・・押し棒、94.96・・・枢支部、98
・・・アーム部、100・・・旋回軸、102・・・旋
回位置センサ、104・・・油圧作動器、106・・・
押し棒、108 、110・・・枢支部、112・・・
差動機構、114 、116・・・ベベルギヤ、118
゜120・・・軸、122・・・スプロット、124・
・・チェーン、126・・・気圧作動器、128・・・
引張装置a、130・・・ピッチ位置センサ、132・
・・ヨー位置センサ、134・・・ブロック、136・
・・ロール軸、13B・・・取付バ一部材、140・・
・気圧作動器、142・・・ロール位置センサ、144
・・・環境安全センサ、146・・・供給線、150・
・・患者装着体、152・・・プラスチック部材、15
4・・・足裏部材、156・・・フットパッド、158
・・・ひも、160・・・ヒールセンサ、162・・・
電源1.164・・・電気コネクタ、166・・・ハン
ドコントローラ、168・・・油圧’/’) ’/3’
、170・・・制御弁、172・・・油圧発生器、17
4・・・インタフェース回路、176・・・気圧作動器
、178・・・インタフェース回路、180・・・供給
源、182・・・通信ライン、184・・・引張バネ、
186・・・キャップ、188 、190・・・保持プ
レート、192・・・音声回路、194・・・選択スイ
ッチ、194 、196 、198・・・機能スイッチ
、200・・・ペンダントケーブル、202・・・音声
コレクタ、204・・・シェル、206・・・棟部、2
08・・・穴、210・・・マイクロホン、212・・
・手術用マスク、214・・・接着体、216・・・コ
ード、218・・・バネクリップ、220・・・入力チ
ャンネル、222・・・送信機、224・・・受信機、
226車付台、228・・・リボンケーブル、230・
・・コード、232・・・パイプ、234・・・シュー
ト、236・・・押し棒、238・・・固定プレート、
240・・・気圧作動器、242・・・ハンドル、24
4・・・スイッチ、250・・・空気弁、252・・・
気圧作動器
FIG. 1 is a simplified block diagram illustrating the medical robot of the present invention, FIG. 2 is a diagram showing the robot of the present invention configured as a device for moving the limbs of a patient and used in arthroscopic surgery, and FIG. The figure is a perspective view showing the structure of the limb operating device in Figure 2, Figure 4 is an enlarged and simplified side view of the layered structure of the limb operating device, and Figure @5 is a movable list of the limb operating device. Fig. 6 is a simplified perspective view of the patient-worn body and wrist of the limb movement device, and Fig. 7 is a block diagram of the hydraulic actuation mechanism used in the limb movement device. Figure 8 is a block diagram of the pneumatic operating mechanism used in the limb movement device, Figure 9A is a side view of the hand controller for the operator used in the limb movement device, and Figure 9B is the same. FIG. 9C is a plan view of the controller, FIG. 9C is a perspective view of the controller, FIG. 10 is a block diagram of the audio mechanism used in the limb movement device, and FIG. 11 is a perspective view of the audio collector used in the audio mechanism. , FIG. 12 is an explanatory diagram showing a movable bridge structure of a braking mechanism used in a limb operating device according to another embodiment of the present invention, FIG. 13 is a perspective view of the same limb operating device, and FIG. It is a connection block diagram of the actuator of a control part. DESCRIPTION OF SYMBOLS 10... Actuation device, 12... Patient, 14... Treatment condition detection device, 18... Computer, 20... Task planer, 22... Feature' extractor, 24... Input/output processor , 26... execution controller, 28...
・Briprocessor, 30...Environmental safety sensor, 32・
...Exchanger, 34...Alarm, 36...Display control device, 38...Operation device, 40...Rail, 42...
...Surgical table, 44...Control box, 46...Air pressure nervo device, 48...Layered structure, 50...Notch, 52...Mounting block, 54...Tightening plate,
56...Tightening port, 58...Knop, 60...
Swivel axis, 62... Arm portion, 64... Hydraulic actuator,
66... Push rod, 68... Turning position sensor, 70...
...Arm part, 72... Rotating shaft, 74... Rotating position sensor, 76... Oil pressure, 78... Push rod, 80. 82... Pivot part, 84... Arm part, 86... Rotating axis, 88... Rotating position sensor, 90... Hydraulic actuator, 92... Push rod, 94.96... Cardinal branch, 98
...Arm part, 100... Rotating axis, 102... Rotating position sensor, 104... Hydraulic actuator, 106...
Push rod, 108, 110... Pivotal part, 112...
Differential mechanism, 114, 116... Bevel gear, 118
゜120... axis, 122... splot, 124...
...Chain, 126...Pneumatic actuator, 128...
Tension device a, 130... pitch position sensor, 132...
...Yaw position sensor, 134...Block, 136.
...Roll shaft, 13B...Mounting bar member, 140...
- Air pressure actuator, 142... Roll position sensor, 144
...Environmental safety sensor, 146... Supply line, 150.
...Patient attachment body, 152...Plastic member, 15
4... Sole member, 156... Foot pad, 158
... String, 160... Heel sensor, 162...
Power supply 1.164...Electrical connector, 166...Hand controller, 168...Hydraulic pressure '/') '/3'
, 170... Control valve, 172... Hydraulic pressure generator, 17
4... Interface circuit, 176... Air pressure actuator, 178... Interface circuit, 180... Supply source, 182... Communication line, 184... Tension spring,
186... Cap, 188, 190... Holding plate, 192... Audio circuit, 194... Selection switch, 194, 196, 198... Function switch, 200... Pendant cable, 202...・Audio collector, 204...Shell, 206...Modern part, 2
08...hole, 210...microphone, 212...
- Surgical mask, 214... Adhesive body, 216... Cord, 218... Spring clip, 220... Input channel, 222... Transmitter, 224... Receiver,
226 Car stand, 228... ribbon cable, 230...
... Code, 232 ... Pipe, 234 ... Chute, 236 ... Push rod, 238 ... Fixed plate,
240...Air pressure actuator, 242...Handle, 24
4...Switch, 250...Air valve, 252...
pneumatic actuator

Claims (1)

【特許請求の範囲】 1、患者の一部に対し作働装置を位置決めする工程と、
患者の一部に対する作働装置の位置を監視する工程と、
患者の生理的、生態的状態を監視する工程と、生理的、
生態的状態の所望の変化を発生可能な患者の一部の所望
位置を決定する工程と、作働装置を作動し、患者の一部
を所望の位置に位置決めする動作工程とを包有してなる
、診断、治療上患者の一部を操作する方法。 2、作動工程前に、手足の一連の所望の安全位置と患者
の一部の所望位置とを比較する工程と、所望位置が所望
の安全位置範囲の外にあるとき、作動工程を無効にする
工程とを包有してなる特許請求の範囲第1項記載の方法
。 3、患者の生理的、生態的状態を検出しこの状態に応じ
た治療条件を出力する治療条件検出装置と、患者におい
て所望の状態を生じさせる作働装置の患者に対する位置
を検出し、この位置を表わす位置信号を出力する位置検
出装置と、治療条件信号および位置信号を入力し、治療
条件信号を患者における所望の生理的、生態的状態を表
わす信号と比較し、作働装置の所望の位置を決定し、所
望の位置を表わす位置制御信号を発生する信号処理装置
と、位置制御信号に応答し作働装置を所望の位置に位置
決めする位置決め装置とを備えた、患者の生理的、生態
的状態の変化に応じ患者に対し作働装置を操作する操作
装置。 4、患者の生理的、生態的状態を検出しこの状態に応じ
た治療条件を出力する治療条件検出装置と、制御信号に
応答し患者の所望の生理的、生態的状態を生じさせる作
働装置と、作働装置の患者に対する位置を検出しこの位
置を表わす位置信号を出力する位置検出装置と、治療条
件信号および位置信号を入力し、治療条件信号を所望の
状態を表わす信号と比較し、作働装置の所望の位置を決
定し、所望の位置を表わす位置制御信号を発生する信号
処理装置と、位置制御信号に応答し作働装置を所望の位
置に位置決めする位置決め装置とを備えた、患者の生理
的、生態的状態を検出し変更する操作装置。 5、信号処理装置は生理的、生態的な所望の状態を決定
し、所望の状態を表わす信号を発生するよう構成されて
なる特許請求の範囲第4項記載の装置。 6、信号処理装置は患者の生理的、生態的な所望の状態
を発生させる作働装置の所望の動作状態を決定し、作働
装置の制御信号を発生し、作働装置に所望の動作状態を
取らせるよう構成されてなる特許請求の範囲第4項記載
の装置。 7、信号処理装置は位置制御信号を作働装置の所望の安
全位置を表わす安全範囲信号と比較し、位置制御信号が
安全範囲外にあるとき位置制御信号の位置決め装置への
送信を禁止するよう構成されてなる特許請求の範囲第4
項記載の装置。 8、信号処理装置は作働装置の安全動作状態を表わす一
連の信号と作働装置の制御、信号とを比較し、作働装置
の制御信号が安全範囲外にあるとき作働装置の制御信号
の作働装置への送信を禁止するよう構成されてなる特許
請求の範囲第6項記載の装置。 9、信号処理装置によりアクセス可能であり、治療条件
信号、作働装置の制御信号、位置信号、所望の生理的、
生態的状態を表わす信号、位置制御信号、作働装置の所
望の安全位置を表わす一連の信号、および作働装置の安
全動作状態を表わす一連の信号を記憶する記憶装置を備
えてなる特許請求の範囲第5項また第8項記載の装置。 10、信号処理装置は作働装置の一連の所望の位置を決
定し、作働装置の一連の動作状態を決定し、一連の所望
の位置および一連の動作状態における患者に対する生理
的、生態的作動並びに一連の所望の位置と一連の動作状
態とを組合せた患者に対する生理的、生態的作動を評価
し、一連の所望の位置および一連の作働装置の動作状態
から所望の位置および所望の動作状態を選択し患者に対
し所望の生理的、生態的状態を発生させ、選定された位
置および動作状態に相応する作働装置の位置および制御
信号を発生するよう構成されてなる特許請求の範囲第6
項記載の装置。 11、制御信号に応答し患者の手足を把持し選定された
位置に移動する把持移動装置と、手足が把持移動装置に
より把持されている間手足の位置を検出し検出した位置
を表わす手足の位置信号を発生する手足の位置検出装置
と、手足位置信号を選定した手足の位置を表わす信号と
比較し、検出した位置から選定した位置へ手足を移動さ
せる移動路を決定し、制御信号を発生して把持移動装置
を介し手足を移動路に沿い検出した位置から選定した位
置へ手足を移動せしめる信号処理装置とを備えた患者の
手足の操作装置。 12、信号処理装置は手足の解剖学上安全な一連の移動
路および位置を表わす一連の信号と制御信号とを比較し
、制御信号が安全範囲外にあるとき、制御信号の把持移
動装置への送信を禁止するよう構成されてなる特許請求
の範囲第11項記載の手足の操作装置。 13、作働装置の所望位置を表わす、発声された指令語
を認識し、指令語を表わす音声指令信号を発生する音声
認識装置を備え、信号処理装置は音声指令信号を入力し
これに相応する位置制御信号を発生するよう構成されて
なる特許請求の範囲第11項記載の装置。 14、作働装置の所望の動作状態を表わす、発声された
指令語を認識し指令語を表わす音声指令信号を発生する
音声認識装置を備え、信号処理装置は音声指令信号を入
力しこれに相応する作働装置の制御信号を発生するよう
構成されてなる特許請求の範囲第11項記載の装置。 15、手足に対し手足の動作装置を装着する患者装着体
を備え、患者装着体には手足の動作装置からの変位を検
出し変位検出時にアラーム信号を発生するセンサが包有
され、信号処理装置はアラーム信号の検出時に移動路を
変更し手足の動作装置の手足に対する装着を移動路を介
し維持するよう構成してなる特許請求の範囲第11項記
載の装置。 16、患者装着体は手足の動作装置に対し着脱可能に取
り付けられてなる特許請求の範囲第15項記載の装置。 17、手足の動作装置により手足に対し所定の力より大
きな力が加わつたとき、患者装着体が手足の動作装置か
ら外されてなる特許請求の範囲第16項記載の装置。 18、手足の動作装置を介し手足に加わる最大力を制限
する力制限装置を備えてなる特許請求の範囲第11項記
載の装置。 19、最大力は可変にされてなる特許請求の範囲第18
項記載の装置。 20、信号処理装置は手足の動作装置を作動して手足の
重量を検出することにより、最大力および手足を所望位
置に維持するのに手足の動作装置により加えられる力の
最小値を決定し、最小値は最大力に応じて定まるよう構
成されてなる特許請求の範囲第19項記載の装置。 21、信号処理装置は手足の一部の、検出した位置から
所定の位置への移動路の手足の関節部に対する座標を決
定し、制御信号を発生し、把持移動装置を介し手足の一
部を座標に応じて移動せしめるよう構成される特許請求
の範囲第11項記載の装置。 22、信号処理装置は手足の一部の解剖学上自然な一連
の移動路を表わす関節部に対する記憶された座標と移動
路座標を比較し、決定した移動路座標を変化させて把持
移動装置による手足の一部の移動中手足の一部を解剖学
上自然な移動を維持せしめるよう構成されてなる特許請
求の範囲第21項記載の装置。 23、信号処理装置によりアクセス可能に設けられ、検
出した位置から予め選定された複数の位置のいずれかに
手足を移動させる移動路を表わす複数の信号を記憶する
記憶装置を備えた特許請求の範囲第11項記載の装置。 24、信号処理装置は手足の長さに比例して記憶した移
動路信号を変化させ解剖学上自然な移動路に沿つて手足
を予め選定された位置のいずれかに移動せしめるよう構
成される特許請求の範囲第23項記載の装置。 25、手足の長さを検出し長さを表わす信号を、信号処
理装置により検出されるように発生する手足長検出装置
を備えた特許請求の範囲第24項記載の装置。 26、信号処理装置に接続され選定された手足の位置を
表わす信号を発生する多機能スイッチを備えた、手足の
動作装置に対する操作者制御用の制御装置を備え、多機
能スイッチは操作者が視認して多機能スイッチを探がす
ことなく、操作者が連続的にアクセスできる位置に、手
足の動作装置を移動するように取り付けられてなる特許
請求の範囲第11項記載の装置。 27、操作者制御用の制御装置は手術室内で使用可能に
殺菌されてなる特許請求の範囲第26項記載の装置。 28、手足の選定した位置を表わす、発声した指令語を
認識し手足の選定した位置を表わす信号を発生する音声
認識装置を備えた特許請求の範囲第11項記載の装置。 29、手術用マスクの機能を損なうことなく音声を電気
信号に変換する音声変換器を包有した特許請求の範囲第
11項記載の装置。 30、音声変換器に入力される音声レベルを最大にする
音声コレクタを備えた特許請求の範囲第29項記載の装
置。 31、音声変換器を手術用マスク内に配設し、音声変換
器に入力される音声レベルを最大にしてなる特許請求の
範囲第29項記載の装置。 32、音声変換器に達する前に、音声から背部のノイズ
音を除去するノイズフィルタ装置を備えた特許請求の範
囲第30項又は第31項記載の装置。
[Claims] 1. Positioning the actuating device relative to a portion of the patient;
monitoring the position of the actuating device relative to the portion of the patient;
The process of monitoring the physiological and ecological state of the patient;
determining a desired position of a portion of the patient capable of producing a desired change in ecological status; and actuating an actuating device to position the portion of the patient at the desired position. How to manipulate, diagnose, and therapeutically treat patients. 2. Comparing a series of desired safe positions of the limb and the desired position of the patient's part before the actuation process, and disabling the actuation process when the desired position is outside the desired safe position range; The method according to claim 1, comprising the steps of: 3. A treatment condition detection device that detects the physiological and ecological condition of the patient and outputs treatment conditions according to this condition; and a treatment condition detection device that detects the position of the actuation device that produces the desired condition in the patient relative to the patient; a position sensing device outputting a position signal representative of the actuating device; inputting a treatment condition signal and a position signal; comparing the treatment condition signal with a signal representing a desired physiological and ecological state in the patient; and a positioning device responsive to the position control signal to position the actuator at the desired position. An operating device that operates an operating device on a patient in response to a change in condition. 4. A treatment condition detection device that detects the physiological and ecological state of the patient and outputs treatment conditions according to this state, and an actuation device that responds to a control signal and produces the desired physiological and ecological state of the patient. a position detection device that detects the position of the actuating device relative to the patient and outputs a position signal representative of this position; inputs a treatment condition signal and a position signal; and compares the treatment condition signal with a signal representative of a desired condition; a signal processing device for determining a desired position of the actuating device and generating a position control signal representative of the desired position; and a positioning device for positioning the actuating device at the desired position in response to the position control signal. Manipulating devices that detect and modify the physiological and ecological state of the patient. 5. The device of claim 4, wherein the signal processing device is configured to determine a desired physiological or ecological state and generate a signal representative of the desired state. 6. The signal processing device determines a desired operating state of the actuating device to produce a desired physiological and ecological state of the patient, generates a control signal for the actuating device, and causes the actuating device to achieve the desired operating state. 5. The device according to claim 4, wherein the device is configured to allow the user to take the following steps. 7. The signal processing device compares the position control signal with a safety range signal representing a desired safe position of the actuating device and inhibits transmission of the position control signal to the positioning device when the position control signal is outside the safety range. Claim No. 4 consisting of
Apparatus described in section. 8. The signal processing device compares a series of signals representing the safe operating state of the actuating device with the control signal of the actuating device, and when the control signal of the actuating device is outside the safe range, the control signal of the actuating device is 7. The apparatus of claim 6, wherein the apparatus is configured to inhibit transmission of the information to the operating device. 9. accessible by the signal processing device, which includes treatment condition signals, actuator control signals, position signals, desired physiological,
Claims comprising a storage device for storing a signal representative of the ecological state, a position control signal, a series of signals representative of the desired safe position of the actuator, and a series of signals representative of the safe operating state of the actuator. Apparatus according to scope 5 or 8. 10. The signal processing device determines a series of desired positions of the actuating device, a series of operating states of the actuating device, and a physiological and ecological operation for the patient in the series of desired positions and the series of operating states. and evaluating the physiological and ecological operation for the patient in combination with a series of desired positions and a series of operating states, and from a series of desired positions and a series of operating states of the operating device to a desired position and a desired operating state. and generating a desired physiological and ecological condition in the patient and generating actuator position and control signals corresponding to the selected position and operating condition.
Apparatus described in section. 11. A grasping and moving device that grasps a patient's limb and moves it to a selected position in response to a control signal, and a position of the limb that detects the position of the limb while the limb is being grasped by the grasping and moving device and represents the detected position. A limb position detection device that generates a signal compares the limb position signal with a signal representing the selected limb position, determines a path for moving the limb from the detected position to the selected position, and generates a control signal. A signal processing device for moving the limb from a detected position along a movement path to a selected position via a gripping and moving device. 12. The signal processing device compares the control signal with a series of signals representing an anatomically safe set of movement paths and positions of the limb, and when the control signal is outside the safe range, transmits the control signal to the grasping and movement device. 12. The limb operating device according to claim 11, which is configured to prohibit transmission. 13. A voice recognition device that recognizes a spoken command word representing a desired position of the actuating device and generates a voice command signal representing the command word, the signal processing device inputting the voice command signal and responding accordingly. 12. The apparatus of claim 11, wherein the apparatus is configured to generate a position control signal. 14. A voice recognition device that recognizes a spoken command word representing a desired operating state of the actuating device and generates a voice command signal representing the command word, the signal processing device inputting the voice command signal and responding accordingly. 12. The device of claim 11, wherein the device is configured to generate a control signal for an actuating device. 15. A patient-worn body for attaching a limb movement device to the limb; the patient-worn body includes a sensor that detects displacement from the limb movement device and generates an alarm signal when displacement is detected; and a signal processing device. 12. The device according to claim 11, wherein the device changes the path of movement when an alarm signal is detected, and maintains the attachment of the limb operating device to the limb through the path of movement. 16. The device according to claim 15, wherein the patient attachment body is detachably attached to a limb movement device. 17. The device according to claim 16, wherein the patient attachment is removed from the limb operating device when a force greater than a predetermined force is applied to the limb by the limb operating device. 18. The device according to claim 11, further comprising a force limiting device for limiting the maximum force applied to the limb via the limb operating device. 19. Claim 18 in which the maximum force is made variable
Apparatus described in section. 20. the signal processing device activates the limb motion device and detects the weight of the limb to determine the maximum force and the minimum force applied by the limb motion device to maintain the limb in the desired position; 20. The device according to claim 19, wherein the minimum value is determined according to the maximum force. 21. The signal processing device determines the coordinates of the movement path of the part of the limb from the detected position to the predetermined position with respect to the joint of the limb, generates a control signal, and moves the part of the limb through the gripping and moving device. 12. A device according to claim 11, adapted to be moved in dependence on coordinates. 22. The signal processing device compares the stored coordinates for the joints representing a series of anatomically natural movement paths of a part of the limb with the movement path coordinates, and changes the determined movement path coordinates to allow the grasping and movement device to move. 22. The device of claim 21, wherein the device is configured to maintain an anatomically natural movement of a portion of the limb while the portion of the limb is being moved. 23. Claims comprising a storage device that is accessible by a signal processing device and stores a plurality of signals representing a movement path for moving a limb from a detected position to one of a plurality of preselected positions. Apparatus according to clause 11. 24. A patent in which the signal processing device is configured to change the stored movement path signal in proportion to the length of the limb to move the limb to any preselected position along an anatomically natural movement path. Apparatus according to claim 23. 25. The device according to claim 24, comprising a limb length detection device that detects the length of the limb and generates a signal representing the length so as to be detected by a signal processing device. 26. A control device for operator control of the limb movement device, including a multifunction switch connected to a signal processing device and generating a signal representing the selected limb position, the multifunction switch being visually recognizable by the operator. 12. The device of claim 11, wherein the device is mounted to move the limb actuator into a position that allows continuous access to the operator without searching for the multi-function switch. 27. The apparatus according to claim 26, wherein the control device for operator control is sterilized so that it can be used in an operating room. 28. The device according to claim 11, further comprising a voice recognition device that recognizes a spoken command word representing the selected position of the limb and generates a signal representing the selected position of the limb. 29. The device according to claim 11, which includes an audio converter that converts audio into electrical signals without impairing the functionality of the surgical mask. 30. The device according to claim 29, comprising an audio collector for maximizing the audio level input to the audio converter. 31. The device according to claim 29, wherein the audio converter is disposed within a surgical mask, and the audio level input to the audio converter is maximized. 32. The device according to claim 30 or 31, comprising a noise filter device for removing background noise from the audio before it reaches the audio transducer.
JP61110467A 1985-02-19 1986-05-14 Method for operating part of patient and operation apparatusused therein Pending JPS62161366A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US73376285A 1985-05-14 1985-05-14
US733762 1985-05-14
US831001 1986-02-19

Publications (1)

Publication Number Publication Date
JPS62161366A true JPS62161366A (en) 1987-07-17

Family

ID=24949018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61110467A Pending JPS62161366A (en) 1985-02-19 1986-05-14 Method for operating part of patient and operation apparatusused therein

Country Status (1)

Country Link
JP (1) JPS62161366A (en)

Similar Documents

Publication Publication Date Title
US5429140A (en) Integrated virtual reality rehabilitation system
Okamura Haptic feedback in robot-assisted minimally invasive surgery
US6491649B1 (en) Device for the direct manual examination of a patient in a non-contiguous location
Correia et al. Improving grasp function after spinal cord injury with a soft robotic glove
King et al. A multielement tactile feedback system for robot-assisted minimally invasive surgery
Tanimoto et al. Micro force sensor for intravascular neurosurgery and in vivo experiment
Culjat et al. Pneumatic balloon actuators for tactile feedback in robotic surgery
CN107708595A (en) The skilful type surgery systems user&#39;s interface device of oversoul
JP2016214715A (en) Vibration detection module, vibration detection method and surgery system
CN101389285A (en) System and apparatus for measuring distal forces on a working instrument
Mayer et al. Haptic feedback in a telepresence system for endoscopic heart surgery
WO2007105165A3 (en) Display and method for medical procedure selection
KR101500483B1 (en) Rehabilitation System And Method For Finger
Li et al. A compact dental robotic system using soft bracing technique
Grischke et al. Dentronics: review, first concepts and pilot study of a new application domain for collaborative robots in dental assistance
AU2002211594C1 (en) Device for the direct manual examination of a patient in a non-contiguous location
Nguyen et al. Advanced user interfaces for teleoperated surgical robotic systems
EP0201883A2 (en) Advanced medical robot
US20230397965A1 (en) Fingers-driven haptic interface for robot-assisted surgical system
Chua et al. Design and evaluation of Rheumatoid Arthritis rehabilitative Device (RARD) for laterally bent fingers
JPS62161366A (en) Method for operating part of patient and operation apparatusused therein
US20220009104A1 (en) Robot
JP2015125421A (en) Medical training device
Tavakoli et al. Tool/tissue interaction feedback modalities in robot-assisted lump localization
Wang et al. A novel design of a wearable device for measuring force and torque in vascular surgery