"複数の関節軸を有するマニピュレータを制御するロボット制御装置であって、目標位置に基づいて前記関節軸の角度を計算する角度計算部と、前記角度計算部によって計算された前記関節軸の角度から特定される前記マニピュレータの各部位の位置のうち何れかが所定の禁止領域に含まれる場合に、前記禁止領域に含まれる前記部位の位置を前記禁止領域外の位置へ修正する位置修正部と、前記位置修正部によって修正された前記部位の位置に基づいて前記関節軸の角度を再計算する再計算部とを備えることを特徴とするロボット制御装置。前記位置修正部は、前記禁止領域に含まれることとなる前記部位と前記禁止領域の境界面との間に仮想的なバネダンパモデルを設定し、前記部位が前記バネダンパモデルへ作用させる力と前記バネダンパモデルが前記部位へ作用させる力とがつりあう位置を前記部位の修正後の位置とすることを特徴とする請求項1に記載のロボット制御装置。前記位置修正部は、前記禁止領域に含まれることとなる前記部位と前記禁止領域との交点を算出し、算出した交点に基づいて前記バネダンパモデルの設定位置を決定することを特徴とする請求項2に記載のロボット制御装置。所定の入力装置からの指示に従って前記禁止領域を設定する設定処理部をさらに備えることを特徴とする請求項1、2または3に記載のロボット制御装置。前記設定処理部は、作業対象物に関する情報を取得するとともに、取得した前記作業対象物に関する情報に基づいて前記禁止領域を変更することを特徴とする請求項4に記載のロボット制御装置。複数の関節軸を有するマニピュレータおよび当該マニピュレータを制御するロボット制御装置を備えるロボットシステムであって、前記ロボット制御装置は、目標位置に基づいて前記関節軸の角度を計算する角度計算部と、前記角度計算部によって計算された前記関節軸の角度から特定される前記マニピュレータの各部位の位置のうち何れかが所定の禁止領域に含まれる場合に、前記禁止領域に含まれる前記部位の位置を前記禁止領域外の位置へ修正する位置修正部と、前記位置修正部によって修正された前記部位の位置に基づいて前記関節軸の角度を再計算する再計算部とを備えることを特徴とするロボットシステム。入力操作を受け付ける入力装置をさらに備え、前記ロボット制御装置は、前記入力装置からの指示に従って前記禁止領域または前記バネダンパモデルの設定変更を行うことを特徴とする請求項6に記載のロボットシステム。ところで、多くのマニピュレータは、予め教示された動作経路に沿って動作するが、適用用途によっては、作業対象物が動いている等、位置が不確かな作業対象物に対して作業を行う場合もある。このような場合には、作業対象物の位置を検知するセンサ等の情報に基づいてマニピュレータの目標位置姿勢を修正することとなる。しかしながら、マニピュレータが冗長自由度を有する場合、特許文献1のように予め冗長軸を含む各駆動軸全ての動作量を教示により決定しておく手法では、たとえば作業対象物の位置が移動した場合に冗長軸の位置が必ずしも適切な位置とならず、マニピュレータが作業対象物や周囲の障害物と接触する可能性がある。開示の技術は、上記に鑑みてなされたものであって、冗長自由度を有するマニピュレータを適切に制御することができるロボット制御装置およびロボットシステムを提供することを目的とする。本願の開示するロボット制御装置は、複数の関節軸を有するマニピュレータを制御するロボット制御装置であって、目標位置に基づいて前記関節軸の角度を計算する角度計算部と、前記角度計算部によって計算された前記関節軸の角度から特定される前記マニピュレータの各部位の位置のうち何れかが所定の禁止領域に含まれる場合に、前記禁止領域に含まれる前記部位の位置を前記禁止領域外の位置へ修正する位置修正部と、前記位置修正部によって修正された前記部位の位置に基づいて前記関節軸の角度を再計算する再計算部とを備える。また、本願の開示するロボットシステムは、複数の関節軸を有するマニピュレータおよび当該マニピュレータを制御するロボット制御装置を備えるロボットシステムであって、前記ロボット制御装置は、目標位置に基づいて前記関節軸の角度を計算する角度計算部と、前記角度計算部によって計算された前記関節軸の角度から特定される前記マニピュレータの各部位の位置のうち何れかが所定の禁止領域に含まれる場合に、前記禁止領域に含まれる前記部位の位置を前記禁止領域外の位置へ修正する位置修正部と、前記位置修正部によって修正された前記部位の位置に基づいて前記関節軸の角度を再計算する再計算部とを備える。本願の開示するロボット制御装置およびロボットシステムの一つの態様によれば、冗長自由度を有するマニピュレータを適切に制御することができる。以下に添付図面を参照して、本願の開示するロボット制御装置およびロボットシステムのいくつかの実施例を詳細に説明する。ただし、これらの実施例における例示で本発明が限定されるものではない。まず、本実施例に係るロボットシステムについて図1を用いて説明する。図1は、本実施例に係るロボットシステムの構成を示す図である。なお、以下では、本願の開示するロボットシステムを、乳牛に対して搾乳作業を行う自動搾乳システムへ適用した場合の例について説明するが、本願の開示するロボットシステムは、これに限ったものではなく、たとえば家畜に対して検査や消毒等を自動的に行う場合にも適用することができる。また、本願の開示するロボットシステムは、家畜以外の対象物について所定の作業を行う場合にも適用することができる。図1に示すように、本実施例に係るロボットシステムは、マニピュレータ1と、ロボット制御装置2と、入力装置3とを含んで構成される。マニピュレータ1は、複数の関節後述するアクチュエータを備える多関節ロボットである。マニピュレータ1は、エンドエフェクタとして搾乳部100を備える。そして、マニピュレータ1は、ロボット制御装置2からの指示に従って各関節を個別に任意の角度だけ回転させることによって、搾乳部100をターゲット部T乳牛Cの乳頭へ向けて移動させて搾乳を行う。なお、マニピュレータ1の先端部たとえば、搾乳部100の近傍には、ターゲット部Tを検知するための物体検知センサ101が設けられている。ロボット制御装置2は、マニピュレータ1の動作制御を行うコントローラである。具体的には、ロボット制御装置2は、マニピュレータ1と通信ネットワークを介して相互に接続されており、かかる通信ネットワークを介し、マニピュレータ1に対して各関節の駆動を指示することによってマニピュレータ1を目標位置へ移動させる。ここで、マニピュレータ1による搾乳作業は、図示しないゲージに乳牛Cを収容させた状態で行われる。このように乳牛Cをゲージに収容することで乳牛Cの動きが規制されるため、ターゲット部Tの位置を大まかに固定することができる。ただし、乳牛Cがゲージで動くことがあるため、ターゲット部Tの位置は細かく変化することとなる。そこで、ロボット制御装置2は、物体検知センサ101の検知結果に基づいてターゲット部Tの位置を認識し、認識したターゲット部Tの位置を目標位置として搾乳部100を移動させることとしている。これにより、図示しないゲージ内において不規則に動くターゲット部Tに追従してマニピュレータ1を移動させることが可能となる。なお、ロボット制御装置2としては、たとえば、記憶装置や電子演算器あるいは表示装置等を備えるコンピュータを用いることができる。入力装置3は、作業者等からの操作を受け付ける装置である。かかる入力装置3は、たとえば有線LANLocalAreaNetworkや無線LANといった通信ネットワークで相互に接続されている。入力装置3は、作業者等からの操作に応じて、マニピュレータ1による搾乳作業の開始や終了あるいは各種の設定変更等をロボット制御装置2に対して指示する。次に、ロボット制御装置2の構成について図2を用いて説明する。図2は、ロボット制御装置2の構成を示すブロック図である。なお、図2では、ロボット制御装置2の特徴を説明するために必要な構成要素のみを示しており、一般的な構成要素についての記載を省略している。図2に示すように、ロボット制御装置2は、制御部21と、記憶部22とを備える。また、制御部21は、角度計算部21aと、位置修正部21bと、再計算部21cと、動作指示部21dと、設定処理部21eとを備える。また、記憶部22は、禁止領域データ22aと、バネダンパモデルデータ22bとを記憶する。角度計算部21aは、物体検知センサ101の検知結果に基づいてマニピュレータ1の各関節の角度を計算する処理部である。具体的には、角度計算部21aは、物体検知センサ101の検知結果を用いて搾乳部100の移動先となる目標位置を決定し、搾乳部100の位置を目標位置と一致させるように、マニピュレータ1の各関節部に設けられたアクチュエータの回転角度を計算する。ここで、マニピュレータ1の構成について図3を用いて説明する。図3は、マニピュレータ1の構成を示す図である。図3に示すように、マニピュレータ1は、基台10と、第1リンク11~第6リンク16と、フランジ17と、搾乳部100と、物体検知センサ101とを備える。基台10は、壁面や床面等の設置面Wに基端部が固定され、先端部において第1アクチュエータ11a第1関節軸を介して第1リンク11を回転可能に支持する構造材である。第1リンク11は、第1アクチュエータ11aが駆動することによって基台10の先端部を中心として回転する構造材である。かかる第1リンク11は、先端部において第2アクチュエータ12a第2関節軸を介して第2リンク12を回転可能に支持する。第2リンク12は、第2アクチュエータ12aが駆動することによって第1リンク11の先端部を中心として回転する構造材である。かかる第2リンク12は、先端部において第3アクチュエータ13a第3関節軸を介して第3リンク13を回転可能に支持する。第3リンク13は、第3アクチュエータ13aが駆動することによって第2リンク12の先端部を中心として回転する構造材である。かかる第3リンク13は、先端部において第4アクチュエータ14a第4関節軸を介して第4リンク14を回転可能に支持する。第4リンク14は、第4アクチュエータ14aが駆動することによって第3リンク13の先端部を中心として回転する構造材である。かかる第4リンク14は、先端部において第5アクチュエータ15a第5関節軸を介して第5リンク15を回転可能に支持する。第5リンク15は、第5アクチュエータ15aが駆動することによって第4リンク14の先端部を中心として回転する構造材である。かかる第5リンク15は、先端部において第6アクチュエータ16a第6関節軸を介して第6リンク16を回転可能に支持する。第6リンク16は、第6アクチュエータ16aが駆動することによって第5リンク15の先端部を中心として回転する構造材である。かかる第6リンク16は、先端部において第7アクチュエータ17a第7関節軸を介してフランジ17と、フランジ17に取り付けられた搾乳部100および物体検知センサ101とを回転可能に支持する。なお、本実施例では、第3アクチュエータ13aが冗長軸としてあらかじめ設定されているものとするが、冗長軸として設定されるアクチュエータは、第3アクチュエータ13a以外であってもよい。このように、マニピュレータ1が冗長軸を備えることで、ターゲット部Tに対して求められた位置姿勢を取った場合であってもマニピュレータ1の姿勢を種々変更することができる。また、第1アクチュエータ11a~第7アクチュエータ17aは、たとえば、減速機一体型のサーボモータによって構成される。また、第1アクチュエータ11a~第7アクチュエータ17aには、各アクチュエータ11a~17aの回転位置を検出するエンコーダがそれぞれ内蔵される。かかるエンコーダによって検出された回転位置は、通信ネットワークを介してロボット制御装置2へ入力されることとなる。物体検知センサ101は、ターゲット部Tを検知するためのセンサであり、ターゲット部Tの動作範囲を十分にカバーする検知領域を備える。ここでは、物体検知センサ101がカメラであるものとするが、これに限ったものではなく、3次元計測が可能なレーザセンサ等を物体検知センサ101として用いてもよい。物体検知センサ101によって撮像された画像の画像情報は、通信ネットワークを介してロボット制御装置2の角度計算部21aへリアルタイムに入力される。図2へ戻り、角度計算部21aについての説明を続ける。角度計算部21aは、物体検知センサ101から入力される画像情報に基づいてターゲット部Tの位置を検出する。これにより、ロボット制御装置2は、ターゲット部Tの位置をリアルタイムに認識することができる。なお、画像情報からターゲット部Tの位置を検出する手法としては、いずれの公知技術を用いてもかまわない。つづいて、角度計算部21aは、検出したターゲット部Tの位置を目標位置として決定し、かかる目標位置と搾乳部100の位置とを一致させるように第1アクチュエータ11a~第7アクチュエータ17aの角度をそれぞれ計算する。これにより、マニピュレータ1の次の位置姿勢が仮決定される。なお、本実施例では、第4アクチュエータ14a~第7アクチュエータ17aの駆動により直線移動させることが可能な点を制御点としている。制御点とは、マニピュレータ1の動作位置を制御する位置である。具体的には、第6アクチュエータ16aの軸心付近に制御点が位置する。角度計算部21aは、目標位置に基づいて制御点の位置を決定した後、決定した制御点の位置に基づいて第1アクチュエータ11a~第7アクチュエータ17aの角度を計算する。なお、第1アクチュエータ11a~第7アクチュエータ17aの角度の計算には、逆キネマティクス演算等の一般的な手法を用いることができる。角度計算部21aは、算出した各アクチュエータ11a~17aの角度データを位置修正部21bへ渡す。位置修正部21bは、角度計算部21aによって計算された各アクチュエータ11a~17aの角度から特定されるマニピュレータ1の各部位の位置のうち何れかが所定の禁止領域に含まれる場合に、禁止領域に含まれる部位の位置を禁止領域外の位置へ修正する処理部である。具体的には、位置修正部21bは、角度計算部21aから各アクチュエータ11a~17aの角度データを受け取ると、まず、受け取った角度データから各部位の移動後の位置座標を特定する。ここでは、第1リンク11~第6リンク16、フランジ17および第1アクチュエータ11a~第7アクチュエータ17a等の位置座標を特定することとなる。つづいて、位置修正部21bは、特定した各部位の位置座標および記憶部22に記憶された禁止領域データ22aを用い、移動によりマニピュレータ1が禁止領域に侵入することとなるか否かを判定する。禁止領域とは、障害物等との接触を避けるためにマニピュレータ1の侵入を禁止した領域である。禁止領域データ22aは、かかる禁止領域の位置座標を含んだデータである。ここで、本実施例において設定される禁止領域について図4を用いて説明する。図4は、禁止領域の一例を示す図である。図4に示すように、本実施例では、図示しないゲージに収容された乳牛Cの左後脚CLおよび右後脚CRが位置する領域として統計的に割り出された領域を覆うように、禁止領域A1および禁止領域A2がそれぞれ設定される。なお、本実施例では、マニピュレータ1が、乳牛Cの背後から乳牛Cの両後脚CL,CRの間を通ってターゲット部Tへ向かうこととしている。このため、上記のように左後脚CLおよび右後脚CRの周囲を覆うような禁止領域A1,A2を設定することとしたが、禁止領域は、マニピュレータがどの位置からターゲット部へ向かうかによって適宜変更可能である。たとえば、マニピュレータが乳牛の左側面からターゲット部へ向かう仕様である場合には、左後脚の周囲を覆う領域のみを禁止領域として設定してもよい。また、ここでは、禁止領域A1,A2を搾乳対象となる乳牛Cに依らず一様に適用する場合の例について説明するが、搾乳対象となる乳牛Cの体格に応じて禁止領域A1,A2を動的に変化させてもよい。たとえば、乳牛Cに設けられたIDタグから乳牛Cの体格に関する情報サイズや重量などを取得し、取得した情報に基づいて禁止領域の大きさを変化させてもよい。このようにすれば、搾乳対象となる乳牛Cの大きさに合わせて禁止領域A1,A2を適切に設定することができる。また、禁止領域A1,A2は、作業者が入力装置3を用いて手動で変更することもできる。禁止領域A1,A2の設定変更処理は、後述する設定処理部21eによって行われる。図2へ戻り、位置修正部21bの説明を続ける。位置修正部21bは、移動後におけるマニピュレータ1の何れかの位置座標が、禁止領域A1または禁止領域A2に含まれる場合に、移動後のマニピュレータ1が禁止領域A1または禁止領域A2に侵入すると判定する。移動後のマニピュレータ1が禁止領域A1または禁止領域A2に侵入すると判定すると、位置修正部21bは、位置修正処理を行う。位置修正処理とは、移動によって禁止領域A1または禁止領域A2へ侵入することとなるマニピュレータ1の部位の位置を禁止領域A1および禁止領域A2外の位置へ修正する処理である。ここで、位置修正部21bにより実行される位置修正処理について図5-1および図5-2を用いて説明する。図5-1は、目標位置へ移動する前のマニピュレータ1を示す図であり、図5-2は、移動後のマニピュレータ1の位置が位置修正処理により修正される様子を示す図である。なお、図5-2では、目標位置への移動によってマニピュレータ1の第4リンク14が禁止領域A1へ侵入することとなる場合の例について示している。図5-1に示すように、ロボット制御装置2では、角度計算部21aが、物体検知センサ101から入力される画像情報に基づいて目標位置Sを決定するとともに、決定した目標位置Sに基づいて制御点の位置を決定する。そして、角度計算部21aは、現在の制御点の位置が決定した制御点の位置と一致するように各アクチュエータ11a~17aの角度を計算する。これにより、目標位置Sへ移動後のマニピュレータ1の位置姿勢各部位の位置座標が特定される。目標位置Sへ移動後のマニピュレータ1を図5-2において破線で示す。ここで、図5-2に示すように、目標位置Sへの移動によってマニピュレータ1の第4リンク14が禁止領域A1に侵入するとする。かかる場合、位置修正部21bは、第4リンク14の位置を禁止領域A1外の位置へ修正する。具体的には、位置修正部21bは、禁止領域A1の境界面と第4リンク14との間に仮想的なバネダンパモデルを設定する。そして、位置修正部21bは、第4リンク14の移動によってバネダンパモデルへ加わる力と、仮想バネの弾性力および仮想ダンパの粘性力とがつりあう位置平衡点を算出し、この平衡点の位置を第4リンク14の移動後の位置として修正する。以下、位置修正処理の内容について図6を用いてさらに詳細に説明する。図6は、位置修正処理の動作例を示す図である。図6では、移動前のマニピュレータ1を実線で、移動後のマニピュレータ1を破線でそれぞれ示している。なお、位置修正部21bは、各アクチュエータ11a~17aから出力されるエンコーダ値各アクチュエータ11a~17aの回転位置からマニピュレータ1の移動前の位置姿勢を特定することが可能である。図6に示すように、位置修正部21bは、まず、移動後の第4リンク14と禁止領域A1との交点P1の座標を算出する。つづいて、位置修正部21bは、交点P1と、交点P1に位置することとなる第4リンク14の移動前の位置P1’との間に、バネダンパモデルMを仮想的に設定する。かかるバネダンパモデルMは、記憶部22に記憶されたバネダンパモデルデータ22bを用いて設定される。バネダンパモデルデータ22bは、仮想バネのバネ定数および自然長、仮想ダンパのダンパ定数等の数値を含んだデータである。なお、かかるバネダンパモデルデータ22bは、作業者等が入力装置3を操作することによって任意に設定変更することができる。つづいて、位置修正部21bは、第4リンク14の移動によってバネダンパモデルMに加わる力を算出する。そして、位置修正部21bは、算出した力とバネダンパモデルデータ22bとして記憶されたバネ定数等の数値を用いて平衡点の位置座標を算出する。具体的には、第4リンク14の移動によってバネダンパモデルMに加わる力をF、仮想ダンパのダンパ定数をD、バネ定数をk、仮想バネの自然長をx0とすると、位置修正部21bは、式1を用いて、未知数xを求める。未知数xは、第4リンク14がバネダンパモデルMへ作用させる力とバネダンパモデルMが第4リンク14へ作用させる力とがつりあった状態における仮想バネの長さである。位置修正部21bは、かかる未知数xを算出することで、平衡点の位置座標を得ることができる。そして、位置修正部21bは、かかる平衡点の位置座標を位置P1’の移動後の位置座標として再計算部21cへ渡す。図2へ戻り、再計算部21cについて説明する。再計算部21cは、位置修正部21bから受け取った第4リンク14の修正後の位置座標に基づいて、各アクチュエータ11a~17aの角度を再計算する処理部である。具体的には、再計算部21cは、搾乳部100が目標位置Sに位置した状態を維持しつつ、第4リンク14の位置P1’が平衡点に位置するように、各アクチュエータ11a~17aの角度を再計算する。なお、マニピュレータ1は、冗長軸を備えるため、搾乳部100が目標位置Sに位置した状態を維持しつつ、その他の部位の位置姿勢を変更することができる。再計算部21cは、再計算後の各アクチュエータ11a~17aの角度を動作指示部21dへ渡す。動作指示部21dは、再計算部21cから受け取った各アクチュエータ11a~17aの角度に基づいて各アクチュエータ11a~17aを回転駆動させる処理部である。これにより、マニピュレータ1は、図5-2において実線で示したように禁止領域A1へ侵入することなく目標位置Sへ移動することとなる。設定処理部21eは、入力装置3からの指示に従って禁止領域データ22aまたはバネダンパモデルデータ22bの内容を変更する処理部である。具体的には、設定処理部21eは、入力装置3からの指示に従って、禁止領域A1,A2の大きさや位置を変更したり、仮想バネのバネ定数や自然長、仮想ダンパのダンパ定数等を変更したりする。なお、設定処理部21eは、上述したように、外部から乳牛Cの体格に関する情報を取得し、取得した情報に基づいて禁止領域データ22aの内容を変更するようにしてもよい。記憶部22は、不揮発性メモリやハードディスクドライブといった記憶デバイスで構成され、禁止領域データ22aと、バネダンパモデルデータ22bとを記憶する。なお、本実施例では、ロボット制御装置2と入力装置3とを別体として説明したが、これに限ったものではなく、ロボット制御装置2と入力装置3とを1つの装置として構成してもよい。また、本実施例では、物体検知センサ101からの画像情報に基づいて目標位置を決定する処理をロボット制御装置2で行うこととしたが、かかる処理を他の装置で行うようにしてもよい。次に、ロボット制御装置2の具体的動作について図7を用いて説明する。図7は、ロボット制御装置2が実行する処理手順を示すフローチャートである。図7に示すように、ロボット制御装置2では、角度計算部21aが、物体検知センサ101からの画像情報を取得しステップS101、取得した画像情報に基づいて目標位置を決定するステップS102。また、角度計算部21aは、決定した目標位置に基づいて各アクチュエータ11a~17aの角度を計算するステップS103。つづいて、ロボット制御装置2では、位置修正部21bが、マニピュレータ1の各部位の移動後の位置を特定しステップS104、特定した各部位の位置が禁止領域A1または禁止領域A2に含まれるか否かを判定するステップS105。かかる処理において、マニピュレータ1の各部位の移動後の位置が禁止領域A1または禁止領域A2に含まれない場合ステップS105,No、動作指示部21dは、ステップS103において算出された各アクチュエータ11a~17aの角度に基づいてマニピュレータ1に対して動作指示を行ってステップS108、処理を終了する。一方、マニピュレータ1の各部位の移動後の位置が禁止領域A1または禁止領域A2に含まれると判定した場合ステップS105,Yes、位置修正部21bは、バネダンパモデルデータ22bを用いて位置修正処理を行うステップS106。そして、ロボット制御装置2では、再計算部21cが、修正後の位置に基づいて各アクチュエータ11a~17aの角度を再計算しステップS107、動作指示部21dが、各アクチュエータ11a~17aの再計算後の角度に基づいてマニピュレータ1に対して動作指示を行ってステップS108、処理を終了する。なお、ここでは、ステップS103において第1アクチュエータ11a~第7アクチュエータ17aの角度を全て計算することとしたが、これに限ったものではない。たとえば、ステップS103では基本軸たとえば、第1アクチュエータ11a~第4アクチュエータ14aの角度のみを計算し、ステップS107において基本軸の角度の再計算を行った後、残りの軸たとえば、第5アクチュエータ15a~第7アクチュエータ17aの角度を計算することとしてもよい。上述してきたように、本実施例では、角度計算部が、目標位置に基づいて各アクチュエータの角度を計算し、位置修正部が、角度計算部によって計算された各アクチュエータの角度から特定されるマニピュレータの各部位の位置のうち何れかが所定の禁止領域に含まれる場合に、禁止領域に含まれる部位の位置を禁止領域外の位置へ修正し、再計算部が、位置修正部によって修正された部位の位置に基づいて各アクチュエータの角度を再計算することとした。したがって、冗長自由度を有するマニピュレータを適切に制御することができる。また、本実施例では、位置修正部が、禁止領域に含まれることとなる部位と禁止領域の境界面との間に仮想的なバネダンパモデルを設定し、当該部位がバネダンパモデルへ作用させる力とバネダンパモデルが当該部位へ作用させる力とがつりあう位置を当該部位の修正後の位置とすることとした。これにより、マニピュレータの修正後の位置姿勢が一意に決定されるため、たとえば、マニピュレータの修正後の位置姿勢をシミュレーション等により探索的に決定する場合と比較して演算量を削減することができる。したがって、本実施例のように作業対象物の位置が変化する場合であっても、障害物等との接触を適切に回避しつつ、マニピュレータを作業対象物に対してリアルタイムに追従させることが可能となる。また、本実施例では、位置修正部が、禁止領域に含まれることとなる部位と禁止領域との交点を算出し、算出した交点に基づいてバネダンパモデルの設定位置を決定することとした。したがって、バネダンパモデルの設定位置を少ない演算量で決定することができる。ところで、上述してきた実施例では、移動により禁止領域へ侵入することとなるリンクと禁止領域との交点をバネダンパモデルの設定位置として決定することとしたが、バネダンパモデルの設定位置は、これに限ったものではない。以下では、バネダンパモデルの設定位置の他の例について図8を用いて説明する。図8は、バネダンパモデルの設定位置の他の例を示す図である。なお、図8では、移動の途中で禁止領域A1に接した状態となったマニピュレータ1を一点鎖線で、移動後のマニピュレータ1を破線でそれぞれ示している。図8に示すように、禁止領域A1に侵入することとなる第4リンク14と禁止領域A1との交点をそれぞれP1,P2とすると、バネダンパモデルMの第4リンク14側への設定位置は、交点P1,P2に限らず、第4リンク14の線分P1,P2上の何れの位置であってもよい。たとえば、交点P1および交点P2の中点P3を、バネダンパモデルMの第4リンク14側への設定位置としてもよいし、第4リンク14が禁止領域A1と最初に接する点P4をバネダンパモデルMの第4リンク14側への設定位置としてもよい。また、バネダンパモデルMの禁止領域A1側への設定位置についても、禁止領域A1の線分P1,P2上の何れの位置であってもよい。また、上述してきた実施例では、搾乳対象となる乳牛に依らず禁止領域を固定とするもしくは、乳牛の体格に応じて動的に変更することとしたが、これに限ったものではない。たとえば、作業対象物である乳牛の乳頭と障害物である両後脚とは連繋しているため、乳頭の位置がずれれば両後脚の位置もずれる可能性がある。そこで、物体検知センサからの画像情報に基づいて決定されるターゲット部の位置に応じて、禁止領域の位置または大きさを動的に変更するようにしてもよい。このようにすれば、マニピュレータ1と乳牛の後脚との接触をより確実に回避することができる。また、上述してきた実施例では、マニピュレータの一例として、7個のアクチュエータを有する7自由度のマニピュレータを用いて説明したが、マニピュレータの自由度は、これに限ったものではなく、8自由度以上の自由度を有するマニピュレータであってもよい。また、6自由度以下のマニピュレータであっても、作業対象物へのアプローチに1以上の自由度が許容される場合には、相対的にマニピュレータが冗長自由度を有することになるが、そのような場合であっても本発明を適用することができる。さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施の形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。"