(57)【要約】【課題】検出部が精度よく配置されなくても、精度よく旋回角度を検出できるようにする。【解決手段】算出処理Ｓ３０は、上部旋回体（１３）の旋回時間と旋回角度（θ）との関係を表す値（旋回速度Ｖ）と、切替時間Ｕと、に基づいて、第１検出部３１が検出状態になったときの上部旋回体（１３）の旋回角度Ｂを算出する。記憶処理Ｓ４０は、複数の第１検出部３１のそれぞれについて、旋回角度Ｂと第１検出部３１との対応関係を記憶する。旋回角度決定処理（Ｓ５０）は、検出状態であることが検出された第１検出部３１に対応する旋回角度Ｂ（値）であって、記憶処理Ｓ４０で記憶された旋回角度Ｂ（値）に基づいて、旋回角度（θ）を決定する。【選択図】図４
2020012302.tif 000002
【特許請求の範囲】
【請求項１】
下部走行体と、
前記下部走行体に対して旋回可能な上部旋回体と、
を備える作業機械に設けられる旋回角度検出装置であって、
前記下部走行体および前記上部旋回体の一方に対して固定され、前記下部走行体に対する前記上部旋回体の旋回中心を中心とする円周上に並ぶように配置される、複数の第１検出部と、
前記下部走行体および前記上部旋回体のうち前記第１検出部が固定される側とは異なる側に対して固定される第２検出部と、
前記下部走行体に対する前記上部旋回体の旋回速度を検出する旋回速度検出部と、
コントローラと、
を備え、
前記第１検出部および前記第２検出部は、前記第２検出部の位置に対応する検出位置に前記第１検出部が配置された状態である検出状態を検出可能に構成され、
前記コントローラは、
旋回角度キャリブレーション処理と、
前記旋回角度キャリブレーション処理の完了後に行われる旋回角度決定処理と、
を行い、
前記旋回角度キャリブレーション処理は、
前記下部走行体に対して前記上部旋回体が旋回しているときの旋回速度が所定速度範囲内であるか否かを判定する旋回速度判定処理と、
旋回速度が前記所定速度範囲内である場合、前記第１検出部のうちの１つが検出状態になった時から、次に前記第１検出部のうちの１つが検出状態になった時までの時間である切替時間を測定する切替時間測定処理と、
前記上部旋回体の旋回時間と旋回角度との関係を表す値と、前記切替時間と、に基づいて、前記第１検出部が検出状態になったときの前記上部旋回体の旋回角度を算出する算出処理と、
複数の前記第１検出部のそれぞれについて、前記算出処理で算出した旋回角度と前記第１検出部との対応関係を記憶する記憶処理と、
を有し、
前記旋回角度決定処理は、検出状態であることが検出された前記第１検出部に対応する値であって、前記記憶処理で記憶された値に基づいて、旋回角度を決定する、
旋回角度検出装置。
【請求項２】
請求項１に記載の旋回角度検出装置であって、
前記算出処理は、
旋回速度と前記切替時間とに基づいて、前記円周上で隣り合う前記第１検出部のそれぞれに対応する旋回角度の差である相対角度を算出する相対角度算出処理と、
前記相対角度算出処理で算出された相対角度に基づいて、前記第１検出部が検出状態になったときの旋回角度を算出する旋回角度算出処理と、
を有する、
旋回角度検出装置。
【請求項３】
請求項１に記載の旋回角度検出装置であって、
前記旋回角度キャリブレーション処理は、前記下部走行体に対して前記上部旋回体が１周旋回する時間である全周時間を測定する全周時間測定処理を有し、
前記算出処理は、前記全周時間と前記切替時間とに基づいて、前記第１検出部が検出状態になったときの旋回角度を算出する、
旋回角度検出装置。
【請求項４】
請求項１〜３のいずれか１項に記載の旋回角度検出装置であって、
前記旋回角度決定処理は、
前記第１検出部が検出状態の場合、検出状態であることが検出された前記第１検出部に対応する値であって、前記記憶処理で記憶された値を、旋回角度と決定し、
前記第１検出部が検出状態でない場合、直近に検出状態であることが検出された前記第１検出部に対応する値であって、前記記憶処理で記憶された値と、旋回速度と、に基づいて、旋回角度を決定する、
旋回角度検出装置。
【請求項５】
請求項１〜４のいずれか１項に記載の旋回角度検出装置であって、
前記第１検出部は、非接触式の電子タグを備え、
前記第２検出部は、前記電子タグと無線通信を行う受信機を備える、
旋回角度検出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業機械の下部走行体に対する上部旋回体の旋回角度を検出する旋回角度検出装置に関する。
【背景技術】
【０００２】
例えば特許文献１などに、下部走行体に対する上部旋回体の旋回角度を検出する装置が記載されている。同文献に記載の技術では、円周上に等間隔に検出部（同文献では近接センサ）が配置されている。同文献に記載の技術では６方向で（６０°刻みで）旋回角度を検出可能である（同文献の図５参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】実開平１−１２４８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
旋回角度の検出精度の向上を図って、多数の検出部を精度よく配置することが考えられる。しかし、この場合、多数の検出部を精度よく配置するのに手間がかかる。また、検出部を精度よく配置できなければ、旋回角度の検出の精度が悪化するおそれがある。
【０００５】
そこで、本発明は、検出部が精度よく配置されなくても、精度よく旋回角度を検出できる、旋回角度検出装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
旋回角度検出装置は、作業機械に設けられる。前記作業機械は、下部走行体と、前記下部走行体に対して旋回可能な上部旋回体と、を備える。旋回角度検出装置は、第１検出部と、第２検出部と、旋回速度検出部と、コントローラと、を備える。複数の前記第１検出部は、前記下部走行体および前記上部旋回体の一方に対して固定され、前記下部走行体に対する前記上部旋回体の旋回中心を中心とする円周上に並ぶように配置される。前記第２検出部は、前記下部走行体および前記上部旋回体のうち前記第１検出部が固定される側とは異なる側に対して固定される。前記旋回速度検出部は、前記下部走行体に対する前記上部旋回体の旋回速度を検出する。前記第１検出部および前記第２検出部は、前記第２検出部の位置に対応する検出位置に前記第１検出部が配置された状態である検出状態を検出可能に構成される。前記コントローラは、旋回角度キャリブレーション処理と、前記旋回角度キャリブレーション処理の完了後に行われる旋回角度決定処理と、を行う。前記旋回角度キャリブレーション処理は、旋回速度判定処理と、切替時間測定処理と、算出処理と、記憶処理と、を有する。前記旋回速度判定処理は、前記下部走行体に対して前記上部旋回体が旋回しているときの旋回速度が所定速度範囲内であるか否かを判定する。前記切替時間測定処理は、旋回速度が前記所定速度範囲内である場合、前記第１検出部のうちの１つが検出状態になった時から、次に前記第１検出部のうちの１つが検出状態になった時までの時間である切替時間を測定する。前記算出処理は、前記上部旋回体の旋回時間と旋回角度との関係を表す値と、前記切替時間と、に基づいて、前記第１検出部が検出状態になったときの前記上部旋回体の旋回角度を算出する。前記記憶処理は、複数の前記第１検出部のそれぞれについて、前記算出処理で算出した旋回角度と前記第１検出部との対応関係を記憶する。前記旋回角度決定処理は、検出状態であることが検出された前記第１検出部に対応する値であって、前記記憶処理で記憶された値に基づいて、旋回角度を決定する。
【発明の効果】
【０００７】
上記構成により、検出部が精度よく配置されなくても、精度よく旋回角度を検出できる。
【図面の簡単な説明】
【０００８】
【図１】作業機械を上から見た図である。
【図２】図１に示す旋回角度検出部３０などを示す図である。
【図３】図１に示す作業機械のブロック図である。
【図４】図３に示すコントローラ４０の旋回角度キャリブレーション処理Ｓ２０のフローチャートである。
【図５】図４に示す旋回角度キャリブレーション処理Ｓ２０での各種値の説明図である。
【図６】図３に示すコントローラ４０の旋回角度決定処理Ｓ５０のフローチャートである。
【図７】第２実施形態の図４相当図である。
【図８】第２実施形態の図５相当図である。
【図９】第３実施形態の、図３に示すコントローラ４０の処理を示すフローチャートである。
【図１０】第４実施形態の図６相当図である。
【発明を実施するための形態】
【０００９】
図１〜図６を参照して、第１実施形態の旋回角度検出装置２０を備える作業機械１について説明する。
【００１０】
作業機械１は、図１に示すように、作業を行う機械であり、例えば建設作業を行う建設機械であり、例えばショベルなどである。作業機械１は、下部走行体１１と、上部旋回体１３と、アタッチメント１５と、旋回装置１７と、旋回角度検出装置２０と、を備える。
【００１１】
下部走行体１１は、図１に示すように、上部旋回体１３を下側から支持する部分（下部本体）である。下部走行体１１は、走行可能であり、左右のクローラ１１ｃを備える。
【００１２】
上部旋回体１３は、下部走行体１１よりも上側に配置され、下部走行体１１に対して旋回可能である。以下では、下部走行体１１に対する上部旋回体１３の旋回を、単に「旋回」ともいう（旋回角度θ、旋回速度Ｖについても同様）。上部旋回体１３は、運転室１３ｃと、カウンターウエイト１３ｅと、図３に示す旋回モータ１３ｇと、旋回操作部１３ｉと、を備える。図１に示すように、運転室１３ｃは、操作者が作業機械１の操作を行う部分である。カウンターウエイト１３ｅは、作業機械１の前後方向のバランスをとるための、おもりである。図３に示す旋回モータ１３ｇは、上部旋回体１３（図１参照）を旋回させるモータである。旋回モータ１３ｇは、例えば油圧ポンプから供給される作動油により作動する油圧モータでもよく、電動モータでもよい。旋回操作部１３ｉは、上部旋回体１３（図１参照）を旋回させる操作を行うための部分である。旋回操作部１３ｉは、例えばレバーを備え、例えば運転室１３ｃ内に設けられる。
【００１３】
（方向）
図１に示すように、作業機械１に関する方向には、下部走行体前側Ｘ１１と、上部旋回体前側Ｘ１３と、がある。下部走行体前側Ｘ１１および上部旋回体前側Ｘ１３のそれぞれは、上部旋回体１３の旋回の回転軸（旋回中心Ｏ）に直交する方向（例えば水平方向）における方向である。下部走行体前側Ｘ１１は、下部走行体１１の向きの基準となる向きである。下部走行体前側Ｘ１１は、例えば、クローラ１１ｃが延びる方向であって、左右のクローラ１１ｃを前進させる操作がされたときにクローラ１１ｃが走行する側などである。上部旋回体前側Ｘ１３は、上部旋回体１３の向きの基準となる向きである。上部旋回体前側Ｘ１３は、例えば、上部旋回体１３の長手方向における、カウンターウエイト１３ｅからアタッチメント１５に向かう側などである。下部走行体前側Ｘ１１を基準としたときの上部旋回体前側Ｘ１３の角度（相対角度）を、旋回角度θとする。例えば、作業機械１を上から見たときに、下部走行体前側Ｘ１１に対して上部旋回体前側Ｘ１３が右回りに回ったときに、旋回角度θが増加すると定める（右回りを旋回角度θの正の方向とする）。なお、下部走行体前側Ｘ１１および上部旋回体前側Ｘ１３の定め方、および、上から見たときの右回りおよび左回りのどちらを旋回角度θの正の方向とするかは、適宜変更可能である。
【００１４】
アタッチメント１５は、各種作業を行う部分である。アタッチメント１５は、例えば、上部旋回体１３に対して回転するブームと、ブームに対して回転するアーム（図示なし）と、アームに対して回転するバケット（図示なし）と、を備える。
【００１５】
旋回装置１７は、下部走行体１１に対して上部旋回体１３を旋回可能にするための装置（旋回ベアリング）である。旋回装置１７は、内輪１７ｉと、外輪１７ｏと、を備える。内輪１７ｉは、下部走行体１１に固定される。外輪１７ｏは、上部旋回体１３に固定され、内輪１７ｉ対して回転自在である。なお、内輪１７ｉが上部旋回体１３に固定され、外輪１７ｏが下部走行体１１に固定されてもよい。
【００１６】
旋回角度検出装置２０は、旋回角度θを検出する装置である。旋回角度検出装置２０は、姿勢検出部２１と、エンジン回転数検出部２３と、旋回速度検出部２５と、旋回角度検出部３０と、コントローラ４０と、を備える。
【００１７】
姿勢検出部２１は、作業機械１の姿勢を検出する。例えば、姿勢検出部２１は、水平面に対する作業機械１の傾きを検出する傾斜センサである。エンジン回転数検出部２３は、エンジンの回転数を検出する。このエンジンは、作業機械１の駆動源であり、作動油を吐出するポンプの駆動源である。なお、姿勢検出部２１およびエンジン回転数検出部２３の用途については第３実施形態で説明する。
【００１８】
旋回速度検出部２５は、下部走行体１１に対する上部旋回体１３の旋回速度Ｖを検出する。旋回速度検出部２５は、例えば加速度センサであり、例えば運転室１３ｃ内に配置される。旋回速度検出部２５は、例えば旋回モータ１３ｇの回転速度などを検出することで、旋回速度Ｖを検出するものでもよい。ここで、旋回速度検出部２５で検出した旋回速度Ｖを時間で積分すれば、旋回角度θを算出可能だが、旋回角度θの精度が不十分である（誤差が大きい）。そのため、本実施形態の作業機械１では、旋回角度検出部３０を用いて、上部旋回体１３の旋回角度θを決定する。なお、旋回角度θの決定の際に、旋回速度Ｖを時間で積分した値が、補助的に用いられてもよい（第４実施形態を参照）。
【００１９】
旋回角度検出部３０は、旋回角度θを検出するための部分である。旋回角度検出部３０は、第１検出部３１と、第２検出部３２と、を備える。旋回角度検出部３０は（第１検出部３１および第２検出部３２は）、「検出状態」を検出可能に構成される。「検出状態」とは、図２に示すように、第２検出部３２の位置に対応する検出位置３２ａに、第１検出部３１が配置された状態である。第２検出部３２が第１検出部３１を検出することで、第１検出部３１が検出状態であることが検出されてもよく、第１検出部３１が第２検出部３２を検出することで、第１検出部３１が検出状態であることが検出されてもよい。以下では、第２検出部３２が第１検出部３１を検出する場合について説明する。第１検出部３１が検出状態であることを、第１検出部３１が検出された、などともいう。
【００２０】
第１検出部３１は、図１に示す下部走行体１１および上部旋回体１３の一方に対して固定される。第１検出部３１は、例えば、下部走行体１１に対して固定され、例えば、旋回装置１７の内輪１７ｉに固定される。第１検出部３１は、上部旋回体１３に対して固定されてもよい。図２に示すように、第１検出部３１は、複数設けられる。複数の第１検出部３１は、下部走行体１１に対する上部旋回体１３の旋回中心Ｏを中心とする円周Ｃ上に並ぶように配置される。複数の第１検出部３１は、旋回中心Ｏから、一定または略一定の半径の円周Ｃ上に並ぶように配置される。第１検出部３１の数は、旋回角度検出装置２０（図１参照）で検出しようとする旋回角度θの分解能に応じて設定される。第１検出部３１は、非接触式の電子タグ（ＩＣ（Integrated Circuit）タグ、ＲＦ（Radio Frequency）タグ、ＩＤ（identifier）タグなど）を備える。この電子タグは、第１検出部３１の外部（例えば第２検出部３２）から電源が供給されるパッシブ型でもよく、アクティブ型でもよい。図３に示すように、複数の第１検出部３１それぞれは、互いに異なる（個別の）符号を、記憶部３１ｍに記憶（保有）している。この符号は、例えば、ＩＤ（identifier）番号、シリアル番号などである。以下では、複数の第１検出部３１のそれぞれが個別のＩＤ番号を記憶している場合について説明する。各第１検出部３１が記憶するＩＤ番号は、旋回角度θ（図２参照）の基準位置（後述）から右回りに、０、１、２、３、・・・ｎ−１、ｎ、とする。複数の第１検出部３１の一つは、基準位置検出部３１ｏである。
【００２１】
基準位置検出部３１ｏは、旋回角度θの基準位置（旋回原点位置）を検知するための部分である。基準位置検出部３１ｏが検出状態のときの旋回角度θを、旋回角度θの基準（０°）とする。例えば、基準位置検出部３１ｏは、旋回中心Ｏの、下部走行体前側Ｘ１１の正面の位置に配置される。基準位置検出部３１ｏは、複数の第１検出部３１の中で最も下部走行体前側Ｘ１１に配置される。
【００２２】
第２検出部３２は、図１に示す下部走行体１１および上部旋回体１３のうち、第１検出部３１が固定される側とは異なる側に対して固定される。例えば、第１検出部３１が下部走行体１１に対して固定される場合は、第２検出部３２は、上部旋回体１３に対して固定される。第１検出部３１が上部旋回体１３に対して固定される場合は、第２検出部３２は、下部走行体１１に対して固定される。図３に示すように、第２検出部３２は、電子タグを備える第１検出部３１と無線通信を行う受信機を備える。第２検出部３２は、第１検出部３１に記憶された符号（ＩＤ番号など）を受信する。第２検出部３２は、第１検出部３１に対して情報の送受信をする送受信機でもよい。例えば、図２に示すように、第２検出部３２は、旋回中心Ｏの、上部旋回体前側Ｘ１３の正面の位置（上部旋回体１３（図１参照）の正面）などに配置される。第２検出部３２は、検出位置３２ａに第１検出部３１が配置されたことを検出可能である。具体的には、検出位置３２ａは、第２検出部３２の電波が届く範囲などである。検出位置３２ａの広さは、１つのみの第１検出部３１を第２検出部３２が検出できるように設定される。なお、旋回角度θによっては第２検出部３２が第１検出部３１を検出できない場合があってもよい（詳細は後述）。
【００２３】
コントローラ４０は、図３に示すように、各種信号の入出力、演算（判定など）、および記憶などを行う。コントローラ４０は、旋回操作部１３ｉ、および各種検出部（旋回角度検出部３０など）などに接続される。コントローラ４０は、演算を行う演算部４０ｃと、情報を記憶する記憶部４０ｍと、を備える。
【００２４】
（作動）
コントローラ４０は、図４に示すように、旋回角度キャリブレーション処理Ｓ２０と、旋回角度決定処理Ｓ５０と、を行う。以下では、主に、上部旋回体１３については図１を参照し、旋回角度検出部３０、旋回角度θ、および旋回速度Ｖについては図２を参照し、コントローラ４０については図３を参照し、下記の各処理（Ｓ２０〜Ｓ４０）については図４を参照して説明する。
【００２５】
図４に示す旋回角度キャリブレーション処理Ｓ２０は、図２に示す複数の第１検出部３１のそれぞれについて、第１検出部３１に対応する旋回角度θが記憶される処理である（図３の記憶部４０ｍの表を参照）。以下では、第１検出部３１に対応付けて記憶される旋回角度θを、旋回角度Ｂとする。旋回角度キャリブレーション処理Ｓ２０は、図１に示す作業機械１に旋回角度検出部３０が設置され、作業機械１による作業が行われる前に行われる。
【００２６】
図４に示す旋回角度キャリブレーション処理Ｓ２０の概要は次の通りである。上部旋回体１３（図１参照）の旋回速度Ｖが一定または略一定とされる（Ｓ２１でＹＥＳ）。この状態で、図２に示す基準位置検出部３１ｏが検出された後（Ｓ２３でＹＥＳ）、円周Ｃ上で隣り合う２つの第１検出部３１を検出するときの切替時間Ｕが計測される（Ｓ２５）。上部旋回体１３（図１参照）の旋回速度Ｖと切替時間Ｕとから、隣り合う２つの第１検出部３１間の相対角度Ａが算出される（Ｓ３１）。相対角度Ａから、第１検出部３１と旋回角度Ｂとの関係が算出される（Ｓ３３）。そして、複数の第１検出部３１のそれぞれと旋回角度Ｂとの関係が記憶される（Ｓ４０）。図４に示す旋回角度キャリブレーション処理Ｓ２０の詳細は、次の通りである。
【００２７】
旋回速度判定処理Ｓ２１では、上部旋回体１３（図１参照）の旋回速度Ｖが一定または略一定であるか（安定しているか）否かを、コントローラ４０（図３参照）が判定する。さらに詳しくは、コントローラ４０は、上部旋回体１３が旋回しているときの旋回速度Ｖが、所定速度範囲内（特定の速度範囲内）であるか否かを判定する。所定速度範囲は、コントローラ４０に設定される。旋回速度Ｖがゼロの状態（上部旋回体１３が旋回していない状態）は、所定速度範囲に含まれない。旋回速度Ｖは、旋回速度検出部２５（図３参照）により検出される。上部旋回体１３の旋回速度Ｖが所定速度範囲内である場合（Ｓ２１でＹＥＳの場合）、フローは基準位置判定処理Ｓ２３に進む。上部旋回体１３の旋回速度Ｖが所定速度範囲内でない場合（Ｓ２１でＮＯの場合）、旋回角度キャリブレーション処理Ｓ２０が終了する。
【００２８】
基準位置判定処理Ｓ２３では、基準位置検出部３１ｏ（図２参照）が検出されている状態、または検出された後の状態であるか否かを、コントローラ４０（図３参照）が判定する。［ＹＥＳ］基準位置検出部３１ｏが検出されている状態、または検出された後の状態である場合（Ｓ２３でＹＥＳの場合）、フローは、切替時間測定処理Ｓ２５に進む。基準位置検出部３１ｏが検出された後、旋回角度キャリブレーション処理Ｓ２０が継続する場合は、「基準位置検出部３１ｏが検出された後」に該当する。［ＮＯ］基準位置検出部３１ｏが検出されておらず、検出された後でもない場合（Ｓ２３でＮＯの場合）、フローは旋回速度判定処理Ｓ２１に戻る。基準位置検出部３１ｏが検出された後、旋回角度キャリブレーション処理Ｓ２０が終了した場合には、次回に基準位置検出部３１ｏが検出されるまでは、Ｓ２３でＮＯとなる。
【００２９】
切替時間測定処理Ｓ２５では、コントローラ４０（図３参照）が、図２に示す円周Ｃ上で隣り合う２つの第１検出部３１が検出されるときの切替時間Ｕ（図５参照）を測定する。切替時間Ｕは、複数の第１検出部３１のうちの１つ（第１検出部３１Ａとする）が検出状態になった時から、次に複数の第１検出部３１のうちの１つ（第１検出部３１Ｂとする）が検出状態になった時までの時間である。第１検出部３１Ｂは、第１検出部３１Ａと円周Ｃ上で隣り合う第１検出部３１である。具体的には例えば、図５に示すように、ＩＤが０の第１検出部３１が検出された時（時刻Ｔ０）から、ＩＤが１の第１検出部３１が検出された時（時刻Ｔ１）までの時間（Ｔ１−Ｔ０）を、切替時間Ｕ０とする。同様に、ＩＤがｎ−１の第１検出部３１が検出された時（時刻Ｔn-1）から、ＩＤがｎの第１検出部３１が検出された時（時刻Ｔn）までの時間（（Ｔn）−（Ｔn-1））を、切替時間Ｕn-1とする。同様に、ＩＤがｎの第１検出部３１が検出された時（時刻Ｔn）から、ＩＤが０の第１検出部３１が検出された時（時刻Ｔn+1）までの時間（（Ｔn+1）−（Ｔn））を、切替時間Ｕnとする。次に、図４に示すように、フローは１周判定処理Ｓ２７に進む。
【００３０】
１周判定処理Ｓ２７では、コントローラ４０（図３参照）が、上部旋回体１３（図１参照）が１周したか否かを判定する。さらに詳しくは、図２に示す基準位置検出部３１ｏが検出された後、図１に示す上部旋回体１３の旋回速度Ｖが所定速度範囲内である状態を維持しながら上部旋回体１３が１周し、再び図２に示す基準位置検出部３１ｏが検出されたか否かが検出される。上部旋回体１３が１周した場合（Ｓ２７でＹＥＳの場合）、フローは、図４に示す算出処理Ｓ３０に進む。上部旋回体１３が１周していない場合（Ｓ２７でＮＯの場合）、フローは旋回速度判定処理Ｓ２１に戻る。基準位置検出部３１ｏが検出された後、上部旋回体１３が１周するまで、上部旋回体１３の旋回速度Ｖが所定速度範囲内か否かが判定（Ｓ２１）され続ける。
【００３１】
算出処理Ｓ３０は、コントローラ４０が、複数の第１検出部３１（図２参照）のそれぞれに対応する旋回角度Ｂを算出する処理である。さらに詳しくは、上部旋回体１３（図１参照）の旋回速度Ｖ（上部旋回体１３の旋回時間と旋回角度θとの関係を表す値）と、切替時間Ｕと、に基づいて（Ｓ３１）、第１検出部３１が検出状態になったときの上部旋回体１３の旋回角度Ｂが算出される（Ｓ３３）。なお、上記「上部旋回体１３の旋回時間と旋回角度θとの関係を表す値」は、図１に示す下部走行体１１に対して上部旋回体１３が１周する時間でもよい（第２実施形態を参照）。図４に示す算出処理Ｓ３０の詳細は、次の通りである。
【００３２】
相対角度算出処理Ｓ３１では、コントローラ４０（図３参照）は、相対角度Ａを算出する。相対角度Ａは、図２に示す円周Ｃ上で隣り合う第１検出部３１のそれぞれに対応する旋回角度Ｂの差である（図５参照）。コントローラ４０は、上部旋回体１３の旋回速度Ｖと、切替時間Ｕと、に基づいて相対角度Ａを算出する。この算出に用いられる上部旋回体１３（図１参照）の旋回速度Ｖは、図４に示す旋回速度判定処理Ｓ２１で判定された所定速度範囲内の旋回速度Ｖである。この算出に用いられる旋回速度Ｖは、例えば所定速度範囲の中央値でもよく、例えば旋回角度キャリブレーション処理Ｓ２０中に旋回速度検出部２５で検出された旋回速度Ｖの平均値などでもよい。具体的には例えば、旋回速度Ｖが１ｒｐｍ（＝３６０°／分）であり、切替時間Ｕが３秒である場合、相対角度Ａは、３６０°÷６０（秒）×３（秒）＝１８°、となる。このように、各第１検出部３１間について、切替時間Ｕ（Ｕ０、Ｕ１、Ｕ２・・・Ｕn）から、相対角度Ａ（Ａ０、Ａ１、Ａ２・・・Ａn）が算出される（図５参照）。次に、フローは旋回角度算出処理Ｓ３３に進む。
【００３３】
旋回角度算出処理Ｓ３３では、コントローラ４０（図３参照）は、複数の第１検出部３１（図２参照）のそれぞれに対応する旋回角度Ｂを算出する。さらに詳しくは、コントローラ４０は、第１検出部３１が検出状態になったときの旋回角度Ｂを、複数の第１検出部３１のそれぞれについて算出する。コントローラ４０は、相対角度Ａに基づいて旋回角度Ｂを算出する。具体的には例えば、図５に示すように、ＩＤが１の第１検出部３１に対応する旋回角度Ｂ１は、相対角度Ａ０である。ＩＤが２の第１検出部３１に対応する旋回角度Ｂ２は、相対角度Ａ０＋Ａ１（＝Ｂ１＋Ａ２）である。ＩＤが３の第１検出部３１に対応する旋回角度Ｂ３は、相対角度Ａ０＋Ａ１＋Ａ２（＝Ｂ２＋Ａ２）である。同様に、ＩＤがｎの第１検出部３１に対応する旋回角度Ｂnは、相対角度Ａ０＋Ａ１＋・・・＋Ａn-1（＝（Ｂn-1）＋（Ａn-1））である。次に、図４に示すように、フローは記憶処理Ｓ４０に進む。
【００３４】
記憶処理Ｓ４０では、コントローラ４０（図３参照）は、複数の第１検出部３１（図２参照）のそれぞれと、旋回角度算出処理Ｓ３３で算出された旋回角度Ｂ１、Ｂ２・・・Ｂnと、の対応関係を記憶する。例えば、図３に示すように、コントローラ４０の記憶部４０ｍには、第１検出部３１の符号（ＩＤ）と、旋回角度Ｂと、の関係（例えばデータテーブル）が記憶される。そして、図４に示す旋回角度キャリブレーション処理Ｓ２０が終了する。
【００３５】
なお、上記の各処理（ステップ）の順序は変更可能である。例えば、図４に示す例では、基準位置検出部３１ｏ（図２参照）が検出され（Ｓ２３でＹＥＳ）、上部旋回体１３（図１参照）が１周した後（Ｓ２７でＹＥＳ）、各切替時間Ｕから各相対角度Ａが算出された（Ｓ３１）。一方、１周判定処理Ｓ２７は、相対角度算出処理Ｓ３１の後に行われてもよく、旋回角度算出処理Ｓ３３の後に行われてもよく、記憶処理Ｓ４０の後に行われてもよい。例えば、上部旋回体１３（図１参照）が１周していない状態で、第１検出部３１（図２参照）が検出されるたびに、相対角度Ａが算出（Ｓ３１）されてもよく、旋回角度Ｂが算出されてもよく（Ｓ３３）、旋回角度Ｂが記憶されてもよい（Ｓ４０）。
【００３６】
旋回角度決定処理Ｓ５０（図６参照）は、旋回角度キャリブレーション処理Ｓ２０（図４参照）の完了後に行われ、例えば、作業機械１（図１参照）での作業時などに行われる。図６に示す旋回角度決定処理Ｓ５０の概要は次の通りである。検出された第１検出部３１に対応する旋回角度Ｂ（値）であって、記憶処理Ｓ４０で記憶された旋回角度Ｂ（値）に基づいて、コントローラ４０は、旋回角度θを決定する。旋回角度決定処理Ｓ５０の詳細は次の通りである。以下では、旋回角度決定処理Ｓ５０の各処理（Ｓ５１〜Ｓ５７）については、図６を参照して説明する。
【００３７】
検出判定処理Ｓ５１では、コントローラ４０（図３参照）は、第１検出部３１（図２参照）が検出状態であるか否かを判定する。コントローラ４０は、図２に示す第２検出部３２の検出位置３２ａに第１検出部３１が配置された状態であるか否かを判定する。第１検出部３１が検出状態である場合（Ｓ５１でＹＥＳの場合）、フローは、図６に示す第１検出部判別処理Ｓ５３に進む。第１検出部３１が検出状態ではない場合（Ｓ５１でＮＯの場合）、フローは旋回角度置換処理Ｓ５７に進む。具体的には、図２に示す検出位置３２ａが、隣り合う第１検出部３１の間の位置である場合には、第１検出部３１は検出状態ではない。このとき、第２検出部３２は、どの第１検出部３１も検出しない。
【００３８】
第１検出部判別処理Ｓ５３（図６参照）では、コントローラ４０（図３参照）は、複数の第１検出部３１（図２参照）のうち、どの第１検出部３１が検出状態であるかを特定する。具体的には例えば、第２検出部３２（図２参照）が取得した第１検出部３１のＩＤを、コントローラ４０が取得する。次に、図６に示すように、フローは旋回角度取得処理Ｓ５５に進む。
【００３９】
旋回角度取得処理Ｓ５５では、コントローラ４０（図３参照）は、検出状態の第１検出部３１（図２参照）に対応する旋回角度Ｂであって、記憶処理Ｓ４０（図４のＳ４０）で記憶された旋回角度Ｂを取得する。コントローラ４０は、取得した旋回角度Ｂを、現在の旋回角度θとして決定する。また、コントローラ４０は、次回以降の処理で利用するために、今回の処理で決定した旋回角度θを保持する。そして、コントローラ４０は、今回の旋回角度決定処理Ｓ５０を終了し、次回の旋回角度決定処理Ｓ５０を開始する（検出判定処理Ｓ５１に戻る）。
【００４０】
旋回角度置換処理Ｓ５７では、コントローラ４０（図３参照）は、次の処理を行う。第１検出部３１（図２参照）が検出状態であることが検出されなかった場合（Ｓ５１でＮＯの場合）、コントローラ４０は、前回の旋回角度θ（Ｓ５５で保持した旋回角度θ）を、今回の旋回角度θとして決定する。「前回の旋回角度θ」は、直近に検出状態であることが検出された第１検出部３１に対応する旋回角度Ｂ（値）であって、記憶処理Ｓ４０で記憶された旋回角度Ｂ（値）である。この処理の具体例は次の通りである。上部旋回体１３（図１参照）が旋回している際に、ＩＤが１の第１検出部３１（図２参照）が検出されたとする。この後、ＩＤが０の第１検出部３１、またはＩＤが２の第１検出部３１が検出されるまでは、ＩＤが１の第１検出部３１に対応する旋回角度Ｂが、今回の旋回角度θとしてコントローラ４０に決定される。コントローラ４０は、今回の処理で決定した旋回角度θを保持し、旋回角度決定処理Ｓ５０を終了し、次回の旋回角度決定処理Ｓ５０を開始する（検出判定処理Ｓ５１に進む）。
【００４１】
図３に示すコントローラ４０は、旋回角度決定処理Ｓ５０（図６参照）で決定した旋回角度θを様々に利用できる。例えば、コントローラ４０は、決定した旋回角度θを、作業機械１（図１参照）の遠隔操作や自律操作などの制御に用いてもよく、作業機械１の周囲の物（作業者、障害物など）と作業機械１との干渉を抑制するための制御などに用いてもよい。
【００４２】
（検討）
［検討１］図２に示す旋回角度検出部３０が、例えば６０°刻みなどの粗い分解能でのみ旋回角度θを検出できるものであり、かつ、第１検出部３１が近接スイッチである場合について検討する。この場合、旋回角度θの分解能が粗いため、検出した旋回角度θを各種制御に用いることができない場合がある。そこで、近接スイッチの数を増やせば、旋回角度θの分解能は確保し得る。例えば、旋回角度θの分解能を１°刻みにする場合、近接スイッチを３６０個配置すればよい。しかし、近接スイッチからの信号を受信する受信機（例えばコントローラ４０（図３参照）など）には、近接スイッチの数に応じた入力部が必要になる。そのため、例えば、受信機の入力部の数が足りない場合があり、また、入力部の数を増やす必要が生じる。また、近接スイッチと受信機とを接続する電線（ハーネス）が、近接スイッチの数に応じた数だけ必要になり、配線が複雑になる。一方、本実施形態では、図３に示す複数の第１検出部３１のそれぞれが、個別の符号を有する電子タグを備える。よって、第２検出部３２が、検出した第１検出部３１から符号を受信し、コントローラ４０に符号を送信すれば、第２検出部３２が検出した第１検出部３１を特定できる。よって、コントローラ４０の入力部の数が足りないことや、入力部の数を増やす必要が生じる問題を抑制できる。なお、この［検討１］に記載の問題は、本実施形態により解決される必要はない。
【００４３】
［検討２］旋回角度キャリブレーション処理Ｓ２０（図４参照）などの処理が行われなくても、下部走行体１１（図１参照）または上部旋回体１３（図１参照）に、多数の第１検出部３１（図２参照）を精度よく設置すれば、旋回角度θの検出精度を高め得る。しかし、この場合、多数の第１検出部３１を設置するのに手間がかかる。一方、本実施形態では、旋回角度キャリブレーション処理Ｓ２０（図４参照）および旋回角度決定処理Ｓ５０（図６参照）が行われる。よって、第１検出部３１（図２参照）を、精度よく下部走行体１１（図１参照）または上部旋回体１３（図１参照）に設置しなくても、旋回角度θを精度よく検出できる。なお、第１検出部３１が精度よく（例えば等間隔に）配置されてもよい。
【００４４】
（効果）
図１に示す旋回角度検出装置２０による効果は次の通りである。
【００４５】
（第１の発明の効果）
旋回角度検出装置２０は、作業機械１に設けられる。作業機械１は、下部走行体１１と、下部走行体１１に対して旋回可能な上部旋回体１３と、を備える。旋回角度検出装置２０は、第１検出部３１と、第２検出部３２と、図３に示す旋回速度検出部２５と、コントローラ４０と、を備える。図１に示すように、複数の第１検出部３１は、下部走行体１１および上部旋回体１３の一方に対して固定され、下部走行体１１に対する上部旋回体１３の旋回中心Ｏを中心とする円周Ｃ上（図２参照）に並ぶように配置される。第２検出部３２は、下部走行体１１および上部旋回体１３のうち第１検出部３１が固定される側とは異なる側に対して固定される。旋回速度検出部２５（図３参照）は、下部走行体１１に対する上部旋回体１３の旋回速度Ｖを検出する。図２に示すように、第１検出部３１および第２検出部３２は、第２検出部３２の位置に対応する検出位置３２ａに第１検出部３１が配置された状態である「検出状態」を検出可能に構成される。図３に示すコントローラ４０は、図４に示す旋回角度キャリブレーション処理Ｓ２０と、旋回角度キャリブレーション処理Ｓ２０の完了後に行われる旋回角度決定処理Ｓ５０（図６参照）と、を行う。旋回角度キャリブレーション処理Ｓ２０は、旋回速度判定処理Ｓ２１と、切替時間測定処理Ｓ２５と、算出処理Ｓ３０と、記憶処理Ｓ４０と、を有する。
【００４６】
［構成１−１］旋回速度判定処理Ｓ２１は、図１に示す下部走行体１１に対して上部旋回体１３が旋回しているときの旋回速度Ｖが所定速度範囲内であるか否かを判定する。図４に示す切替時間測定処理Ｓ２５は、旋回速度Ｖが所定速度範囲内である場合（Ｓ２１でＹＥＳの場合）に切替時間Ｕを測定する。切替時間Ｕは、図２に示す第１検出部３１のうちの１つ（第１検出部３１Ａ）が検出状態になった時から、次に第１検出部３１のうちの１つ（第１検出部３１Ｂ）が検出状態になった時までの時間である。
【００４７】
［構成１−２］図４に示す算出処理Ｓ３０は、図１に示す上部旋回体１３の旋回時間と旋回角度θとの関係を表す値（例えば旋回速度Ｖ）と、切替時間Ｕと、に基づいて、第１検出部３１が検出状態になったときの上部旋回体１３の旋回角度Ｂを算出する。記憶処理Ｓ４０は、複数の第１検出部３１のそれぞれについて、算出処理Ｓ３０で算出した旋回角度Ｂと第１検出部３１との対応関係を記憶する。
【００４８】
［構成１−３］図６に示す旋回角度決定処理Ｓ５０は、検出状態であることが検出された第１検出部３１に対応する旋回角度Ｂ（値）であって、記憶処理Ｓ４０（図４参照）で記憶された旋回角度Ｂ（値）に基づいて、旋回角度θを決定する。
【００４９】
上記［構成１−２］の算出処理Ｓ３０（図４参照）では、旋回角度Ｂを算出する際に、上部旋回体１３（図１参照）の旋回時間と旋回角度θ（図１参照）との関係を表す値（例えば旋回速度Ｖ）が用いられる。そのため、上部旋回体１３の旋回速度Ｖを安定させることで、旋回角度Ｂを精度よく算出し得る。そこで、上記［構成１−１］の旋回速度判定処理Ｓ２１では、上部旋回体１３の旋回速度Ｖを所定速度範囲内に保った状態で、切替時間Ｕが測定される。よって、上部旋回体１３の旋回速度Ｖが所定速度範囲内に保たれていない状態で（例えば旋回速度Ｖが不安定な状態で）、旋回角度Ｂが算出される場合に比べ、旋回角度Ｂを精度よく算出できる。そして、この旋回角度Ｂに基づいて旋回角度θが決定される（上記［構成１−３］参照）。よって、図１に示す旋回角度検出装置２０では、精度よく旋回角度θを検出（決定）できる。
【００５０】
上記［構成１−２］の算出処理Ｓ３０（図４参照）では、上部旋回体１３（図１参照）の旋回時間と旋回角度θ（図１参照）との関係を表す値（例えば旋回速度Ｖ）と、切替時間Ｕと、に基づいて旋回角度Ｂが算出される。よって、図２に示す第１検出部３１の配置の精度とは関係なく、第１検出部３１に対応する旋回角度Ｂを算出できる。そして、この旋回角度Ｂに基づいて旋回角度θが決定される（上記［構成１−３］参照）。よって、図１に示す旋回角度検出装置２０では、第１検出部３１が精度よく配置されなくても、精度よく旋回角度θを検出（決定）できる。その結果、第１検出部３１を精度よく配置する手間および時間を抑制できる。
【００５１】
（第２の発明の効果）
［構成２］図４に示す算出処理Ｓ３０は、相対角度算出処理Ｓ３１と、旋回角度算出処理Ｓ３３と、を有する。相対角度算出処理Ｓ３１は、旋回速度Ｖと切替時間Ｕとに基づいて、相対角度Ａを算出する。相対角度Ａは、図２に示す円周Ｃ上で隣り合う第１検出部３１のそれぞれに対応する旋回角度Ｂの差である。旋回角度算出処理Ｓ３３は、相対角度算出処理Ｓ３１で算出された相対角度Ａに基づいて、第１検出部３１（図２参照）が検出状態になったときの旋回角度Ｂを算出する（図５参照）。
【００５２】
上記［構成２］では、図４に示す相対角度算出処理Ｓ３１で、旋回速度Ｖと切替時間Ｕとに基づいて相対角度Ａが算出され、旋回角度算出処理Ｓ３３で、相対角度Ａから旋回角度Ｂが算出される。よって、図２に示す複数の第１検出部３１に対応する旋回角度Ｂを、確実に算出できる。
【００５３】
（第５の発明の効果）
［構成５］図３に示す第１検出部３１は、非接触式の電子タグを備える。第２検出部３２は、電子タグ（第１検出部３１）と無線通信を行う受信機を備える。
【００５４】
上記［構成５］では、第１検出部３１は、電子タグを備えるので、第１検出部３１に、個別の符号を持たせることができる。そして、第２検出部３２は、第１検出部３１の符号を受信できる。よって、複数の第１検出部３１の中の、どの第１検出部３１が検出状態であるかを特定するために、複数の第１検出部３１のそれぞれに電線を接続する必要がない。その結果、複数の第１検出部３１のそれぞれに電線を接続する必要がある場合に比べ、電線を減らすことができる。
【００５５】
（第２実施形態）
主に図７〜図８を参照して、第２実施形態の旋回角度検出装置２２０（図３参照）について、第１実施形態との相違点を説明する。なお、第２実施形態の旋回角度検出装置２２０のうち、第１実施形態との共通点については、第１実施形態と同一の符号を付すなどして、説明を省略した。共通点の説明を省略する点については、後述する他の実施形態の説明も同様である。
【００５６】
図４に示す例では、１周判定処理Ｓ２７で、上部旋回体１３が１周したと判定された場合（ＹＥＳの場合）、相対角度算出処理Ｓ３１に進んだ。一方、図７に示すように、本実施形態では、１周判定処理Ｓ２７でＹＥＳの場合、フローは、全周時間測定処理Ｓ２２９に進む。
【００５７】
全周時間測定処理Ｓ２２９では、コントローラ４０（図３参照）は、全周時間Ｕａ（図８参照）を測定する。全周時間Ｕａは、図１に示す下部走行体１１に対して上部旋回体１３が１周旋回する時間（１周旋回するのにかかった時間）である。全周時間Ｕａは、基準位置検出部３１ｏ（図２参照）が検出された時から、次に基準位置検出部３１ｏが検出された時までの時間である。次に、フローは、図７に示す算出処理Ｓ２３０の相対角度算出処理Ｓ２３１に進む。
【００５８】
図４に示す算出処理Ｓ３０では、旋回速度Ｖ（上部旋回体１３の旋回時間と旋回角度θとの関係を表す値）と、切替時間Ｕと、に基づいて、旋回角度Ｂが算出された。一方、図７に示すように、本実施形態の算出処理Ｓ２３０では、全周時間Ｕａ（上部旋回体１３の旋回時間と旋回角度θとの関係を表す値）と、切替時間Ｕと、に基づいて、旋回角度Ｂが算出される。算出処理Ｓ２３０の詳細は次の通りである。
【００５９】
相対角度算出処理Ｓ２３１では、コントローラ４０（図３参照）は、全周時間Ｕａと、切替時間Ｕと、に基づいて、相対角度Ａを算出する。コントローラ４０は、全周時間Ｕａに対する切替時間Ｕの割合に応じて、相対角度Ａを算出する。具体的には例えば、図８に示すように、ＩＤが０の第１検出部３１とＩＤが１の第１検出部３１との相対角度Ａ０は、（３６０×Ｕ０／Ｕａ）°、となる。同様に、ＩＤが１の第１検出部３１とＩＤが２の第１検出部３１との相対角度Ａ１は、（３６０×Ｕ１／Ｕａ）°、となる。同様に、ＩＤがｎ−１の第１検出部３１とＩＤがｎの第１検出部３１との相対角度Ａn-1は、（３６０×（Ｕn-1）／Ｕａ）°となる。次に、フローは、旋回角度算出処理Ｓ３３（第１実施形態と同様）に進む。
【００６０】
（第３の発明の効果）
［効果３］図７に示す旋回角度キャリブレーション処理Ｓ２０は、全周時間Ｕａを測定する全周時間測定処理Ｓ２２９を有する。全周時間Ｕａは、図１に示す下部走行体１１に対して上部旋回体１３が１周旋回する時間である。図７に示す算出処理Ｓ２３０は、全周時間Ｕａと切替時間Ｕとに基づいて、第１検出部３１（図２参照）が検出状態になったときの旋回角度Ｂを算出する。
【００６１】
上記［構成３］では、全周時間Ｕａと切替時間Ｕとに基づいて旋回角度Ｂが算出される。よって、複数の第１検出部３１のそれぞれに対応する旋回角度Ｂを確実に算出できる。
【００６２】
（第３実施形態）
主に図９を参照して、第３実施形態の旋回角度検出装置３２０（図１参照）について、第１実施形態との相違点を説明する。
【００６３】
図９に示す旋回角度キャリブレーション処理Ｓ２０が行われる時には、旋回角度Ｂの算出の精度をできるだけ良くするために、上部旋回体１３の旋回速度Ｖができるだけ一定であることが好ましい。そこで、本実施形態では、旋回角度キャリブレーション処理Ｓ２０の前または最中に、旋回速度Ｖをできるだけ一定にするために、姿勢判定処理Ｓ３１１と、旋回操作量検出処理Ｓ３１３と、エンジン回転数検出処理Ｓ３１５と、が行われる。
【００６４】
姿勢判定処理Ｓ３１１では、コントローラ４０（図３参照）は、図１に示す作業機械１の傾きが所定傾き範囲内か否かを判定する。さらに詳しくは、作業機械１が水平面に対して傾いていると、上部旋回体１３およびアタッチメント１５の質量により、上部旋回体１３の旋回速度Ｖが増加または減少し（加減速し）、その結果、旋回角度Ｂの精度が悪化する場合がある。そこで、コントローラ４０（図３参照）は、作業機械１が所定傾き範囲内（具体的には水平または略水平）であるか否かを判定する。所定傾き範囲は、コントローラ４０に設定される。作業機械１の傾きは、姿勢検出部２１（図３参照）により検出される。作業機械１の傾きが所定傾き範囲内である場合（Ｓ３１１でＹＥＳの場合）、フローは図９に示す旋回操作量検出処理Ｓ３１３に進む。作業機械１の傾きが所定傾き範囲内でない場合（Ｓ３１１でＮＯの場合）、旋回角度キャリブレーション処理Ｓ２０が行われない。既に旋回角度キャリブレーション処理Ｓ２０が行われている場合に、姿勢判定処理Ｓ３１１でＮＯとなった場合は、旋回角度キャリブレーション処理Ｓ２０が終了する（例えば、やり直される）（Ｓ３１３、Ｓ３１５でＮＯの場合も同様）。
【００６５】
旋回操作量検出処理Ｓ３１３では、図３に示す旋回操作部１３ｉの操作量（旋回操作量）が所定操作量範囲内（図９では「所定量」）か否かが判定される。さらに詳しくは、旋回操作部１３ｉの操作量が変化すると、上部旋回体１３（図１参照）の旋回速度Ｖが変化する。そのため、図９に示す旋回速度判定処理Ｓ２１でＮＯと判定される場合や、旋回角度Ｂを適切に算出できない場合がある。そこで、図３に示すコントローラ４０は、旋回操作部１３ｉの操作量が所定操作量範囲内か否かを判定する。所定操作量範囲は、コントローラ４０に設定される。所定操作量範囲は、例えば一定にしやすい操作量に設定され、例えば旋回操作部１３ｉによる最大操作量（最大レバー操作量）に設定される。例えば、旋回操作部１３ｉが操作量に応じて電気信号を出力する場合、コントローラ４０は、この電気信号に基づいて、旋回操作部１３ｉの操作量を検出可能である。例えば、旋回操作部１３ｉが操作量に応じてパイロット油圧を出力する場合、このパイロット油圧を検出する油圧センサの検出結果がコントローラ４０に入力されることで、コントローラ４０は、旋回操作部１３ｉの操作量を検出可能である。旋回操作部１３ｉの操作量が所定操作量範囲内の場合（Ｓ３１３でＹＥＳの場合）、図９に示すように、フローはエンジン回転数検出処理Ｓ３１５に進む。旋回操作部１３ｉ（図３参照）の操作量が所定操作量範囲内でない場合（Ｓ３１３でＮＯの場合）、旋回角度キャリブレーション処理Ｓ２０が行われない。
【００６６】
エンジン回転数検出処理Ｓ３１５では、エンジン（図示なし）の回転数が所定回転数範囲内（図９では「低速」）か否かが判定される。さらに詳しくは、図１に示す上部旋回体１３を旋回させる旋回モータ１３ｇ（図３参照）が油圧式の場合、旋回モータ１３ｇは、油圧ポンプが吐出した作動油により駆動する。そして、油圧ポンプの作動油の吐出量は、エンジンの回転数および油圧ポンプの容量により決まる。そのため、エンジンの回転数が低いほど、上部旋回体１３の旋回速度Ｖが低速になる。そして、上部旋回体１３の旋回速度Ｖが低速であるほど、旋回速度Ｖが安定しやすく、また、旋回角度Ｂの計算の分解能を高くできる。そこで、コントローラ４０（図３参照）は、エンジンの回転数が、所定回転数範囲か否かを判定する。所定回転数範囲は、コントローラ４０に設定される。例えば、所定回転数範囲は、エンジンが安定して回転できる回転数の範囲内で、できるだけ低い回転数の範囲に設定される。エンジンの回転数は、エンジン回転数検出部２３（図３参照）により検出される。エンジンの回転数が所定回転数範囲内である場合（Ｓ３１５でＹＥＳの場合）、図９に示す旋回角度キャリブレーション処理Ｓ２０が行われる。エンジンの回転数が所定回転数範囲内でない場合（Ｓ３１５でＮＯの場合）、旋回角度キャリブレーション処理Ｓ２０が行われない。
【００６７】
なお、姿勢判定処理Ｓ３１１、旋回操作量検出処理Ｓ３１３、およびエンジン回転数検出処理Ｓ３１５の少なくともいずれかの処理は、旋回角度キャリブレーション処理Ｓ２０が行われる前にのみ行われてもよい（例えば、二点鎖線で示す矢印を参照）。
【００６８】
また、操作者の操作が旋回操作量検出処理Ｓ３１３およびエンジン回転数検出処理Ｓ３１５の条件を満たしているか否かが判定されることは、次のように代えられてもよい。旋回操作量検出処理Ｓ３１３およびエンジン回転数検出処理Ｓ３１５の条件を満たすように、図３に示すコントローラ４０が自動的に作業機械１（図１参照）の作動を制御してもよい。例えば、コントローラ４０は、エンジンの回転数を所定回転数範囲内に自動的に設定し、旋回速度Ｖが一定になるような指令を旋回モータ１３ｇ（図３）に自動的に出力した後、図９に示す旋回角度キャリブレーション処理Ｓ２０を開始してもよい。
【００６９】
（第４実施形態）
主に図１０を参照して、第４実施形態の旋回角度検出装置４２０（図１参照）について、第１実施形態との相違点を説明する。
【００７０】
図６に示す旋回角度決定処理Ｓ５０では、検出判定処理Ｓ５１でＮＯの場合、前回の旋回角度θが、今回の旋回角度θとして決定された（Ｓ５７）。一方、図１０に示すように、本実施形態の旋回角度決定処理Ｓ４５０では、検出判定処理Ｓ５１でＮＯの場合、次の変化角度算出処理Ｓ４５７が行われる。
【００７１】
変化角度算出処理Ｓ４５７では、コントローラ４０（図３参照）は、次の処理を行う。直近に検出状態であることが検出された第１検出部３１に対応する旋回角度Ｂ（値）であって、記憶処理Ｓ４０（図４参照）で記憶された旋回角度Ｂ（値）と、旋回速度Ｖと、に基づいて、旋回角度θを決定（算出）する。旋回速度Ｖは、旋回速度検出部２５（図３参照）により検出される。［算出の例１］例えば、旋回速度Ｖが一定の場合、直近に第１検出部３１を検出した時から現在までの時間と、旋回速度Ｖと、基づいて、直近に検出された第１検出部３１に対応する旋回角度Ｂから、現在の（実際の）旋回角度θまでの相対角度を算出できる。そして、算出した相対角度を、直近に検出された第１検出部３１に対応する旋回角度Ｂに加えることで、現在の旋回角度θを算出できる。［算出の例２］直近に検出された第１検出部３１の検出後に、旋回速度Ｖが変化（加速、減速）する場合は、例えば次のように現在の旋回角度θが算出される。この場合、旋回速度Ｖを時間で積分することで、直近に検出された第１検出部３１に対応する旋回角度Ｂから、現在の（実際の）旋回角度θまでの相対角度を算出できる。そして、算出した相対角度を、直近に検出された第１検出部３１に対応する旋回角度Ｂに加えることで、現在の旋回角度θを算出できる。なお、旋回角度θの算出方法は適宜変更されてもよい。
【００７２】
（第４の発明の効果）
［構成４］図１０に示す旋回角度決定処理Ｓ４５０は、次の処理を行う。第１検出部３１（図２参照）が検出状態の場合（Ｓ５１でＹＥＳの場合）、検出状態であることが検出された第１検出部３１に対応する旋回角度Ｂ（値）であって、記憶処理Ｓ４０（図４参照）で記憶された値を、旋回角度θと決定する。第１検出部３１が検出状態でない場合（Ｓ５１でＮＯの場合）、直近に検出状態であることが検出された第１検出部３１に対応する旋回角度Ｂであって、記憶処理Ｓ４０で記憶された旋回角度Ｂと、旋回速度Ｖと、に基づいて、旋回角度θを決定する。
【００７３】
上記［構成４］により、第１検出部３１（図２参照）が検出状態でない場合（Ｓ５１でＮＯの場合）に、旋回速度Ｖを用いずに旋回角度θが決定される場合（例えば図６参照）に比べ、精度よく旋回角度θを決定できる。
【００７４】
（変形例）
上記実施形態は様々に変形されてもよい。例えば、互いに異なる実施形態の構成要素どうしが組み合わされてもよい。例えば、図３に示す回路の接続は変更されてもよい。例えば、図４、６、７、９、および１０に示す処理の順序は変更されてもよく、処理の一部が行われなくてもよい。例えば、旋回角度検出装置２０の構成要素の数が変更されてもよく、構成要素の一部が設けられなくてもよい。
【００７５】
図３に示す第１検出部３１は、電子タグを備えなくてもよく、第２検出部３２は、受信機を備えなくてもよい。旋回角度検出部３０に近接スイッチが用いられてもよい。例えば、第１検出部３１は、近接スイッチを備えてもよく、第２検出部３２は、近接スイッチで検出可能な物体（検出物体）を備えてもよい。また、例えば、第２検出部３２は、近接スイッチを備えてもよく、第１検出部３１は、検出物体を備えてもよい。旋回角度検出部３０に近接スイッチが用いられる場合、例えば、図２に示す基準位置検出部３１ｏは、２つの近接スイッチ（または検出物体）を備え、基準位置検出部３１ｏ以外の第１検出部３１は、１つのみの近接スイッチ（または検出物体）を備える。これにより、コントローラ４０は、基準位置検出部３１ｏと、基準位置検出部３１ｏ以外の第１検出部３１とを判別できる。なお、基準位置検出部３１ｏと、基準位置検出部３１ｏ以外の第１検出部３１とで、信号を相違させるなどにより、基準位置検出部３１ｏと、基準位置検出部３１ｏ以外の第１検出部３１とを判別可能にしてもよい。
【符号の説明】
【００７６】
１  作業機械
１１  下部走行体
１３  上部旋回体
２０、２２０、３２０、４２０  旋回角度検出装置
２５  旋回速度検出部
３１  第１検出部
３１Ａ  第１検出部（特定第１検出部）
３１Ｂ  第１検出部（特定第１検出部と円周Ｃ上で隣り合う第１検出部３１）
３２  第２検出部
３２ａ  検出位置
４０  コントローラ
Ａ  相対角度
Ｂ  旋回角度（第１検出部３１に対応する旋回角度θ）
Ｃ  円周
Ｖ  旋回速度（上部旋回体１３の旋回時間と旋回角度θとの関係を表す値）
Ｓ２０  旋回角度キャリブレーション処理
Ｓ２１  旋回速度判定処理
Ｓ２５  切替時間測定処理
Ｓ３０、Ｓ２３０  算出記憶処理
Ｓ３１、Ｓ２３１  相対角度算出処理
Ｓ３３、Ｓ２３３  旋回角度算出処理
Ｓ５０  旋回角度決定処理
Ｓ２２９  全周時間測定処理
Ｕ  切替時間
Ｕａ  全周時間（上部旋回体１３の旋回時間と旋回角度θとの関係を表す値）
θ  旋回角度
【図１】
2020012302.tif 000003
【図２】
2020012302.tif 000004
【図３】
2020012302.tif 000005
【図４】
2020012302.tif 000006
【図５】
2020012302.tif 000007
【図６】
2020012302.tif 000008
【図７】
2020012302.tif 000009
【図８】
2020012302.tif 000010
【図９】
2020012302.tif 000011
【図１０】
2020012302.tif 000012