(58)【調査した分野】(Int.Cl.,DB名)
作業対象物の作業線に則して移動させる作業部を先端に有し,その作業部に連結されて前記作業部の姿勢を変化させる3つの駆動軸を備えた第1関節駆動系と,前記第1関節駆動系に連結されて該第1関節駆動系の位置を変化させる少なくとも3つの駆動軸を備えた第2関節駆動系とを有する多関節型ロボットを制御する多関節型ロボットの制御装置であって,
前記多関節型ロボットのベース座標系において予め教示された前記作業部の作業開始位置及びその時の姿勢と作業終了位置及びその時の姿勢とを結ぶ教示経路を補間する複数の補間点における前記作業部の位置及びその時の姿勢を示すデータを算出する補間データ算出手段と,
前記補間データ算出手段により算出されたデータから逆運動学問題の解を求めることにより,前記補間点における前記作業部の位置及びその時の姿勢を示す前記第1関節駆動系及び前記第2関節駆動系を含む全ての駆動軸の角度を算出する角度算出手段と,
前記角度算出手段により算出された次の前記補間点と現在の前記補間点とにおける前記第1関節駆動系の前記各駆動軸の角度の差分に基づいて次の前記補間点に前記作業部の姿勢を動かすときの前記第1関節駆動系における両端の2つの駆動軸の速度を算出する速度算出手段と,
前記補間データ算出手段により算出されたデータを,前記作業部の移動方向の軸,該軸に垂直な方向の軸,該2つの軸に垂直な軸を含む作業座標系における前記作業部の姿勢を示す姿勢データに変換する姿勢データ変換手段と,
前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が予め定められた許容範囲外である場合に,前記作業部の移動速度を変更することなく,且つ前記姿勢データ変換手段により変換された次の前記補間点における前記作業部の姿勢データに対して一つ又は二つの特定成分の変動を抑制しつつ前記第1関節駆動系における両端の2つの駆動軸の速度が前記許容範囲内となる前記第1関節駆動系の駆動軸各々の角度を再度算出し,該算出された前記第1関節駆動系の駆動軸各々の角度と前記補間データ算出手段により算出された前記作業部の位置とに基づいて前記第2関節駆動系の駆動軸各々の角度を再度算出する再算出手段と,
前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記角度算出手段により算出された前記駆動
軸各々の角度に基づいて前記多関節型ロボットを駆動させ,前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記再算出手段により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させる駆動指示手段と,
を備えてなり、
前記第1関節駆動系の駆動軸の角度を±180°で表したとき,
前記角度算出手段が,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出するものである
ことを特徴とする多関節型ロボットの制御装置。
作業対象物の作業線に則して移動させる作業部を先端に有し,その作業部に連結されて前記作業部の姿勢を変化させる3つの駆動軸を備えた第1関節駆動系と,前記第1関節駆動系に連結されて該第1関節駆動系の位置を変化させる少なくとも3つの駆動軸を備えた第2関節駆動系とを有する多関節型ロボットを制御する多関節型ロボットの制御装置であって,
前記多関節型ロボットのベース座標系において予め教示された前記作業部の作業開始位置及びその時の姿勢と作業終了位置及びその時の姿勢とを結ぶ教示経路を補間する複数の補間点における前記作業部の位置及びその時の姿勢を示すデータを算出する補間データ算出手段と,
前記補間データ算出手段により算出されたデータから逆運動学問題の解を求めることにより,前記補間点における前記作業部の位置及びその時の姿勢を示す前記第1関節駆動系及び前記第2関節駆動系を含む全ての駆動軸の角度を算出する角度算出手段と,
前記角度算出手段により算出された次の前記補間点と現在の前記補間点とにおける前記第1関節駆動系の前記各駆動軸の角度の差分に基づいて次の前記補間点に前記作業部の姿勢を動かすときの前記第1関節駆動系における両端の2つの駆動軸の速度を算出する速度算出手段と,
前記補間データ算出手段により算出されたデータを,前記作業部の移動方向の軸,該軸に垂直な方向の軸,該2つの軸に垂直な軸を含む作業座標系における前記作業部の姿勢を示す姿勢データに変換する姿勢データ変換手段と,
前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が予め定められた許容範囲外である場合に,前記作業部の移動速度を変更することなく,且つ前記姿勢データ変換手段により変換された次の前記補間点における前記作業部の姿勢データに対して一つ又は二つの特定成分の変動を抑制しつつ前記第1関節駆動系における両端の2つの駆動軸の速度が前記許容範囲内となる前記第1関節駆動系の駆動軸各々の角度を再度算出し,該算出された前記第1関節駆動系の駆動軸各々の角度と前記補間データ算出手段により算出された前記作業部の位置とに基づいて前記第2関節駆動系の駆動軸各々の角度を再度算出する再算出手段と,
前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記角度算出手段により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させ,前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記再算出手段により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させる駆動指示手段と,
を備えてなり、
前記第1関節駆動系の駆動軸の角度を±180°で表したとき,
前記角度算出手段が,前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出し,
前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と異符号になる逆運動学問題の解を算出するものであることを特徴とする多関節型ロボットの制御装置。
作業対象物の作業線に則して移動させる作業部を先端に有し,その作業部に連結されて前記作業部の姿勢を変化させる3つの駆動軸を備えた第1関節駆動系と,前記第1関節駆動系に連結されて該第1関節駆動系の位置を変化させる少なくとも3つの駆動軸を備えた第2関節駆動系とを有する多関節型ロボットを制御する多関節型ロボットの制御装置であって,
前記多関節型ロボットのベース座標系において予め教示された前記作業部の作業開始位置及びその時の姿勢と作業終了位置及びその時の姿勢とを結ぶ教示経路を補間する複数の補間点における前記作業部の位置及びその時の姿勢を示すデータを算出する補間データ算出手段と,
前記補間データ算出手段により算出されたデータから逆運動学問題の解を求めることにより,前記補間点における前記作業部の位置及びその時の姿勢を示す前記第1関節駆動系及び前記第2関節駆動系を含む全ての駆動軸の角度を算出する角度算出手段と,
前記角度算出手段により算出された次の前記補間点と現在の前記補間点とにおける前記第1関節駆動系の前記各駆動軸の角度の差分に基づいて次の前記補間点に前記作業部の姿勢を動かすときの前記第1関節駆動系における両端の2つの駆動軸の速度を算出する速度算出手段と,
前記補間データ算出手段により算出されたデータを,前記作業部の移動方向の軸,該軸に垂直な方向の軸,該2つの軸に垂直な軸を含む作業座標系における前記作業部の姿勢を示す姿勢データに変換する姿勢データ変換手段と,
前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が予め定められた許容範囲外である場合に,前記作業部の移動速度を変更することなく,且つ前記姿勢データ変換手段により変換された次の前記補間点における前記作業部の姿勢データに対して一つ又は二つの特定成分の変動を抑制しつつ前記第1関節駆動系における両端の2つの駆動軸の速度が前記許容範囲内となる前記第1関節駆動系の駆動軸各々の角度を再度算出し,該算出された前記第1関節駆動系の駆動軸各々の角度と前記補間データ算出手段により算出された前記作業部の位置とに基づいて前記第2関節駆動系の駆動軸各々の角度を再度算出する再算出手段と,
前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記角度算出手段により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させ,前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記再算出手段により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させる駆動指示手段と,
を備えてなり、
前記第1関節駆動系の駆動軸の角度を±180°で表したとき,
前記角度算出手段が,
前記作業開始位置及び前記作業終了位置における前記第1関節駆動系の中央の駆動軸の角度が同符号である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出し,
前記作業開始位置及び前記作業終了位置における前記第1関節駆動系の中央の駆動軸の角度が異符号である場合において,前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置にお
ける該駆動軸の角度と同符号になる逆運動学問題の解を算出し,前記速度算出手段により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と異符号になる逆運動学問題の解を算出するものであることを特徴とする多関節型ロボットの制御装置。
前記再算出手段が,前記姿勢データ変換手段により変換された前記作業部の姿勢データのうち予め定められた重み付けが大きい前記特定成分から順に変動の抑制量が大きくなるように前記駆動軸の角度を再度算出するものである請求項1〜4のいずれかに記載の多関節型ロボットの制御装置。
前記駆動指示手段が,前記速度許容判別手段により前記許容範囲外の駆動軸があると判別された後は,前記再算出手段により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させ,その後,前記角度算出手段により算出された前記第1関節駆動系の角度と前記再算出手段により算出された前記第1関節駆動系の角度との差分が所定値以下となったことを条件に,前記再算出手段により算出された前記駆動軸各々の角度に代えて前記角度算出手段により算出される前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させるものである請求項1〜8のいずれかに記載の多関節型ロボットの制
御装置。
前記駆動指示手段が,前記再算出手段により算出された前記駆動軸各々の角度に基づく前記多関節ロボットの駆動制御から前記角度算出手段により算出された前記駆動軸各々の角度に基づく前記多関節ロボットの駆動制御に切り替える際に,該駆動軸各々の角度を所定の変動範囲内で徐々に変動させるものである請求項9に記載の多関節型ロボットの制御装置。
作業対象物の作業線に則して移動させる作業部を先端に有し,その作業部に連結されて前記作業部の姿勢を変化させる3つの駆動軸を備えた第1関節駆動系と,前記第1関節駆動系に連結されて該第1関節駆動系の位置を変化させる少なくとも3つの駆動軸を備えた第2関節駆動系とを有する多関節型ロボットを制御する多関節型ロボットの制御方法であって,
前記多関節型ロボットのベース座標系において予め教示された前記作業部の作業開始位置及びその時の姿勢と作業終了位置及びその時の姿勢とを結ぶ教示経路を補間する複数の補間点における前記作業部の位置及びその時の姿勢を示すデータを算出する補間データ算出工程と,
前記補間データ算出工程により算出されたデータから逆運動学問題の解を求めることにより,前記補間点における前記作業部の位置及びその時の姿勢を示す前記第1関節駆動系及び前記第2関節駆動系を含む全ての駆動軸の角度を算出する角度算出工程と,
前記角度算出工程により算出された次の前記補間点と現在の前記補間点とにおける前記第1関節駆動系の前記各駆動軸の角度の差分に基づいて次の前記補間点に前記作業部の姿勢を動かすときの前記第1関節駆動系における両端の2つの駆動軸の速度を算出する速度算出工程と,
前記補間データ算出工程により算出されたデータを,前記作業部の移動方向の軸,該軸に垂直な方向の軸,該2つの軸に垂直な軸を含む作業座標系における前記作業部の姿勢を示す姿勢データに変換する姿勢データ変換工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が予め定められた許容範囲外である場合に,前記作業部の移動速度を変更することなく,且つ前記姿勢データ変換工程により変換された次の前記補間点における前記作業部の姿勢データに対して一つ又は二つの特定成分の変動を抑制しつつ前記第1関節駆動系における両端の2つの駆動軸の速度が前記許容範囲内となる前記第1関節駆動系の駆動軸各々の角度を再度算出し,該算出された前記第1関節駆動系の駆動軸各々の角度と前記補間データ算出工程により算出された前記作業部の位置とに基づいて前記第2関節駆動系の駆動軸各々の角度を再度算出する再算出工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記角度算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させ,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記再算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させる駆動指示工程と,
を実行するものであり、
前記第1関節駆動系の駆動軸の角度を±180°で表したとき,
前記角度算出工程が,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出するものである
ことを特徴とする多関節型ロボットの制御方法。
作業対象物の作業線に則して移動させる作業部を先端に有し,その作業部に連結されて前記作業部の姿勢を変化させる3つの駆動軸を備えた第1関節駆動系と,前記第1関節駆動系に連結されて該第1関節駆動系の位置を変化させる少なくとも3つの駆動軸を備えた第2関節駆動系とを有する多関節型ロボットを制御する多関節型ロボットの制御方法であって,
前記多関節型ロボットのベース座標系において予め教示された前記作業部の作業開始位置及びその時の姿勢と作業終了位置及びその時の姿勢とを結ぶ教示経路を補間する複数の補間点における前記作業部の位置及びその時の姿勢を示すデータを算出する補間データ算出工程と,
前記補間データ算出工程により算出されたデータから逆運動学問題の解を求めることにより,前記補間点における前記作業部の位置及びその時の姿勢を示す前記第1関節駆動系及び前記第2関節駆動系を含む全ての駆動軸の角度を算出する角度算出工程と,
前記角度算出工程により算出された次の前記補間点と現在の前記補間点とにおける前記第1関節駆動系の前記各駆動軸の角度の差分に基づいて次の前記補間点に前記作業部の姿勢を動かすときの前記第1関節駆動系における両端の2つの駆動軸の速度を算出する速度算出工程と,
前記補間データ算出工程により算出されたデータを,前記作業部の移動方向の軸,該軸に垂直な方向の軸,該2つの軸に垂直な軸を含む作業座標系における前記作業部の姿勢を示す姿勢データに変換する姿勢データ変換工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が予め定められた許容範囲外である場合に,前記作業部の移動速度を変更することなく,且つ前記姿勢データ変換工程により変換された次の前記補間点における前記作業部の姿勢データに対して一つ又は二つの特定成分の変動を抑制しつつ前記第1関節駆動系における両端の2つの駆動軸の速度が前記許容範囲内となる前記第1関節駆動系の駆動軸各々の角度を再度算出し,該算出された前記第1関節駆動系の駆動軸各々の角度と前記補間データ算出工程により算出された前記作業部の位置とに基づいて前記第2関節駆動系の駆動軸各々の角度を再度算出する再算出工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記角度算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させ,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記再算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させる駆動指示工程と,
を実行するものであり、
前記第1関節駆動系の駆動軸の角度を±180°で表したとき,
前記角度算出工程が,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出し,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と異符号になる逆運動学問題の解を算出するものであることを特徴とする多関節型ロボットの制御方法。
作業対象物の作業線に則して移動させる作業部を先端に有し,その作業部に連結されて前記作業部の姿勢を変化させる3つの駆動軸を備えた第1関節駆動系と,前記第1関節駆動系に連結されて該第1関節駆動系の位置を変化させる少なくとも3つの駆動軸を備えた
第2関節駆動系とを有する多関節型ロボットを制御する多関節型ロボットの制御方法であって,
前記多関節型ロボットのベース座標系において予め教示された前記作業部の作業開始位置及びその時の姿勢と作業終了位置及びその時の姿勢とを結ぶ教示経路を補間する複数の補間点における前記作業部の位置及びその時の姿勢を示すデータを算出する補間データ算出工程と,
前記補間データ算出工程により算出されたデータから逆運動学問題の解を求めることにより,前記補間点における前記作業部の位置及びその時の姿勢を示す前記第1関節駆動系及び前記第2関節駆動系を含む全ての駆動軸の角度を算出する角度算出工程と,
前記角度算出工程により算出された次の前記補間点と現在の前記補間点とにおける前記第1関節駆動系の前記各駆動軸の角度の差分に基づいて次の前記補間点に前記作業部の姿勢を動かすときの前記第1関節駆動系における両端の2つの駆動軸の速度を算出する速度算出工程と,
前記補間データ算出工程により算出されたデータを,前記作業部の移動方向の軸,該軸に垂直な方向の軸,該2つの軸に垂直な軸を含む作業座標系における前記作業部の姿勢を示す姿勢データに変換する姿勢データ変換工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が予め定められた許容範囲外である場合に,前記作業部の移動速度を変更することなく,且つ前記姿勢データ変換工程により変換された次の前記補間点における前記作業部の姿勢データに対して一つ又は二つの特定成分の変動を抑制しつつ前記第1関節駆動系における両端の2つの駆動軸の速度が前記許容範囲内となる前記第1関節駆動系の駆動軸各々の角度を再度算出し,該算出された前記第1関節駆動系の駆動軸各々の角度と前記補間データ算出工程により算出された前記作業部の位置とに基づいて前記第2関節駆動系の駆動軸各々の角度を再度算出する再算出工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記角度算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させ,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記再算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させる駆動指示工程と,
を実行するものであり、
前記第1関節駆動系の駆動軸の角度を±180°で表したとき,
前記角度算出工程が,
前記作業開始位置及び前記作業終了位置における前記第1関節駆動系の中央の駆動軸の角度が同符号である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出し,
前記作業開始位置及び前記作業終了位置における前記第1関節駆動系の中央の駆動軸の角度が異符号である場合において,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出し,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と異符号になる逆運動学問題の解を算出するものであることを特徴とする多関節型ロボットの制御方法。
作業対象物の作業線に則して移動させる作業部を先端に有し,その作業部に連結されて前記作業部の姿勢を変化させる3つの駆動軸を備えた第1関節駆動系と,前記第1関節駆動系に連結されて該第1関節駆動系の位置を変化させる少なくとも3つの駆動軸を備えた
第2関節駆動系とを有する多関節型ロボットを制御するコンピュータによって実行される多関節型ロボットの制御プログラムであって,
前記多関節型ロボットのベース座標系において予め教示された前記作業部の作業開始位置及びその時の姿勢と作業終了位置及びその時の姿勢とを結ぶ教示経路を補間する複数の補間点における前記作業部の位置及びその時の姿勢を示すデータを算出する補間データ算出工程と,
前記補間データ算出工程により算出されたデータから逆運動学問題の解を求めることにより,前記補間点における前記作業部の位置及びその時の姿勢を示す前記第1関節駆動系及び前記第2関節駆動系を含む全ての駆動軸の角度を算出する角度算出工程と,
前記角度算出工程により算出された次の前記補間点と現在の前記補間点とにおける前記第1関節駆動系の前記各駆動軸の角度の差分に基づいて次の前記補間点に前記作業部の姿勢を動かすときの前記第1関節駆動系における両端の2つの駆動軸の速度を算出する速度算出工程と,
前記補間データ算出工程により算出されたデータを,前記作業部の移動方向の軸,該軸に垂直な方向の軸,該2つの軸に垂直な軸を含む作業座標系における前記作業部の姿勢を示す姿勢データに変換する姿勢データ変換工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が予め定められた許容範囲外である場合に,前記作業部の移動速度を変更することなく,且つ前記姿勢データ変換工程により変換された次の前記補間点における前記作業部の姿勢データに対して一つ又は二つの特定成分の変動を抑制しつつ前記第1関節駆動系における両端の2つの駆動軸の速度が前記許容範囲内となる前記第1関節駆動系の駆動軸各々の角度を再度算出し,該算出された前記第1関節駆動系の駆動軸各々の角度と前記補間データ算出工程により算出された前記作業部の位置とに基づいて前記第2関節駆動系の駆動軸各々の角度を再度算出する再算出工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記角度算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させ,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記再算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させる駆動指示工程と,をコンピュータに実行させるものであって、
前記第1関節駆動系の駆動軸の角度を±180°で表したとき,
前記角度算出工程が,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出するものである
ことを特徴とする多関節型ロボットの制御プログラム。
作業対象物の作業線に則して移動させる作業部を先端に有し,その作業部に連結されて前記作業部の姿勢を変化させる3つの駆動軸を備えた第1関節駆動系と,前記第1関節駆動系に連結されて該第1関節駆動系の位置を変化させる少なくとも3つの駆動軸を備えた第2関節駆動系とを有する多関節型ロボットを制御するコンピュータによって実行される多関節型ロボットの制御プログラムであって,
前記多関節型ロボットのベース座標系において予め教示された前記作業部の作業開始位置及びその時の姿勢と作業終了位置及びその時の姿勢とを結ぶ教示経路を補間する複数の補間点における前記作業部の位置及びその時の姿勢を示すデータを算出する補間データ算出工程と,
前記補間データ算出工程により算出されたデータから逆運動学問題の解を求めることにより,前記補間点における前記作業部の位置及びその時の姿勢を示す前記第1関節駆動系及び前記第2関節駆動系を含む全ての駆動軸の角度を算出する角度算出工程と,
前記角度算出工程により算出された次の前記補間点と現在の前記補間点とにおける前記
第1関節駆動系の前記各駆動軸の角度の差分に基づいて次の前記補間点に前記作業部の姿勢を動かすときの前記第1関節駆動系における両端の2つの駆動軸の速度を算出する速度算出工程と,
前記補間データ算出工程により算出されたデータを,前記作業部の移動方向の軸,該軸に垂直な方向の軸,該2つの軸に垂直な軸を含む作業座標系における前記作業部の姿勢を示す姿勢データに変換する姿勢データ変換工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が予め定められた許容範囲外である場合に,前記作業部の移動速度を変更することなく,且つ前記姿勢データ変換工程により変換された次の前記補間点における前記作業部の姿勢データに対して一つ又は二つの特定成分の変動を抑制しつつ前記第1関節駆動系における両端の2つの駆動軸の速度が前記許容範囲内となる前記第1関節駆動系の駆動軸各々の角度を再度算出し,該算出された前記第1関節駆動系の駆動軸各々の角度と前記補間データ算出工程により算出された前記作業部の位置とに基づいて前記第2関節駆動系の駆動軸各々の角度を再度算出する再算出工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記角度算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させ,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記再算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させる駆動指示工程と,
をコンピュータに実行させるものであって、
前記第1関節駆動系の駆動軸の角度を±180°で表したとき,
前記角度算出工程が,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出し,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と異符号になる逆運動学問題の解を算出するものであることを特徴とする多関節型ロボットの制御プログラム。
作業対象物の作業線に則して移動させる作業部を先端に有し,その作業部に連結されて前記作業部の姿勢を変化させる3つの駆動軸を備えた第1関節駆動系と,前記第1関節駆動系に連結されて該第1関節駆動系の位置を変化させる少なくとも3つの駆動軸を備えた第2関節駆動系とを有する多関節型ロボットを制御するコンピュータによって実行される多関節型ロボットの制御プログラムであって,
前記多関節型ロボットのベース座標系において予め教示された前記作業部の作業開始位置及びその時の姿勢と作業終了位置及びその時の姿勢とを結ぶ教示経路を補間する複数の補間点における前記作業部の位置及びその時の姿勢を示すデータを算出する補間データ算出工程と,
前記補間データ算出工程により算出されたデータから逆運動学問題の解を求めることにより,前記補間点における前記作業部の位置及びその時の姿勢を示す前記第1関節駆動系及び前記第2関節駆動系を含む全ての駆動軸の角度を算出する角度算出工程と,
前記角度算出工程により算出された次の前記補間点と現在の前記補間点とにおける前記第1関節駆動系の前記各駆動軸の角度の差分に基づいて次の前記補間点に前記作業部の姿勢を動かすときの前記第1関節駆動系における両端の2つの駆動軸の速度を算出する速度算出工程と,
前記補間データ算出工程により算出されたデータを,前記作業部の移動方向の軸,該軸に垂直な方向の軸,該2つの軸に垂直な軸を含む作業座標系における前記作業部の姿勢を
示す姿勢データに変換する姿勢データ変換工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が予め定められた許容範囲外である場合に,前記作業部の移動速度を変更することなく,且つ前記姿勢データ変換工程により変換された次の前記補間点における前記作業部の姿勢データに対して一つ又は二つの特定成分の変動を抑制しつつ前記第1関節駆動系における両端の2つの駆動軸の速度が前記許容範囲内となる前記第1関節駆動系の駆動軸各々の角度を再度算出し,該算出された前記第1関節駆動系の駆動軸各々の角度と前記補間データ算出工程により算出された前記作業部の位置とに基づいて前記第2関節駆動系の駆動軸各々の角度を再度算出する再算出工程と,
前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記角度算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させ,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記再算出工程により算出された前記駆動軸各々の角度に基づいて前記多関節型ロボットを駆動させる駆動指示工程と,
をコンピュータに実行させるものであって、
前記第1関節駆動系の駆動軸の角度を±180°で表したとき,
前記角度算出工程が,
前記作業開始位置及び前記作業終了位置における前記第1関節駆動系の中央の駆動軸の角度が同符号である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出し,
前記作業開始位置及び前記作業終了位置における前記第1関節駆動系の中央の駆動軸の角度が異符号である場合において,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の両方の速度が前記許容範囲内である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と同符号になる逆運動学問題の解を算出し,前記速度算出工程により算出された前記第1関節駆動系における両端の2つの駆動軸の一方又は両方の速度が前記許容範囲外である場合は,前記第1関節駆動系の中央に位置する駆動軸の次の前記補間点における角度が前記作業開始位置における該駆動軸の角度と異符号になる逆運動学問題の解を算出するものであることを特徴とする多関節型ロボットの制御プログラム。
【発明を実施するための形態】
【0023】
以下添付図面を参照しながら,本発明の実施の形態について説明し,本発明の理解に供する。尚,以下の実施の形態は,本発明を具体化した一例であって,本発明の技術的範囲を限定する性格のものではない。
まず,
図1に示される概略構成図を参照しつつ,本発明の実施形態に係る多関節型ロボットXの構成について説明する。
【0024】
多関節型ロボットXは,制御部10,操作部21,マニピュレータ本体30等を備えている。尚,多関節型ロボットXは,
図1に示す構成要素以外にも,一般的な多関節型ロボットが備える他の構成要素も備えているが,ここでは記載を省略している。制御部10は,主制御部11,記憶部12,駆動指示部13を備えており,本発明に係る多関節型ロボットの制御装置の一例である。
【0025】
マニピュレータ本体30は,人間の腕に相当するJ1軸31,J2軸32,J3軸33を有する第2関節駆動系と,人間の手首に相当するJ4軸34,J5軸35,J6軸36を有する第1関節駆動系と,作業対象物に効果を発揮するエンドエフェクタ39とを備え,操作された内容に従って駆動し,人間の上腕が行うのと同様の作業をするロボットである。尚,上記マニピュレータ本体30は,多関節型ロボットの一例である。
【0026】
J1軸31〜J6軸36は,電気モータ等により構成され,駆動指示部13からの指示により正負の方向に回転駆動し,複数の軸の回転駆動が連関することによって,人間の手首や腕の動きを実現する。特に,前記第2関節駆動系は,前記第1関節駆動系の駆動軸の動作にかかわらず,前記多関節型ロボットのベース座標系Σbaseにおける前記エンドエフェクタ39の位置(X,Y,Z)を自由に作り出すことができる。
【0027】
エンドエフェクタ39は,マニピュレータ本体30の先端(J6軸36の先)に取り付けられた効果器であり,1つの作業点により作業をする溶接器(トーチ),塗装器,工具,捕獲器,センサなどである。尚,上記エンドエフェクタ39は,作業部の一例である。
また,1つの作業点を備えるトーチをシングルトーチという。
操作部21は,ユーザにより操作されるシートキーや操作ボタン,操作レバー等により構成され,ユーザによる操作入力を受け付ける入力インターフェースである。例えば,操作部21は,前記エンドエフェクタ39の作業開始位置及び姿勢と作業終了位置及び姿勢とこれを結ぶ経路との作業経路や作業時間,目的に応じた溶接線座標系Σline(作業座標系)におけるエンドエフェクタ39の姿勢角度の各成分の変動を抑制するための重み付け情報,これらの内容が記載されたプログラムなどの入力を受け付けて制御部10に出力する。即ち,操作部21は,エンドエフェクタ39の作業開始位置及び姿勢,作業終了位置及び姿勢を教示するための手段であり,前記重み付け情報を設定するための手段である。
【0028】
記憶部12は,例えば,ハードディスクや,DRAM等により構成された揮発性メモリであり,エンドエフェクタ39の作業開始位置及び姿勢と作業終了位置及び姿勢とこれを結ぶ経路との作業経路や作業時間,エンドエフェクタ39の姿勢角度の各成分の変動を抑制するための重み付け情報,後述する主制御部11により算出された補間点(特異点を経由する経路と,特異点を回避する経路との双方)における前記J1軸31〜J6軸36の角度と速度(場合によっては更に加速度)などを記憶するものである。
【0029】
駆動指示部13は,主制御部11からの制御指示に従ってサンプリング周期毎に記憶部12に記憶された次の補間点(特異点を経由する経路又は特異点を回避する経路の一方)にエンドエフェクタ39を動かすように前記J1軸31〜J6軸36の角度又は速度の情報を読み出して,マニピュレータ本体30に出力する。尚,主制御部11及び駆動指示部13が,駆動指示工程を実行するための駆動指示手段の一例である。
【0030】
主制御部11は,CPU,ROMなどを備え,CPUは,当該多関節型ロボットXの各種制御及び演算を行う演算手段であり,ROMは,CPUにより実行される制御プログラムや演算プログラム,CPUがそれらプログラムを実行する際に参照するデータ等が記憶されるメモリである。
次に,
図2〜
図6のフローチャートを参照して,多関節型ロボットXの主制御部11が中心となって,マニピュレータ本体30を作動させる処理手順の一例について説明する。尚,以下に示すS11,S12,…は,処理手順(ステップ)の識別符号を表す。
【0031】
まず,
図2を参照して,一般的なマニピュレータ本体30の制御と,この発明の一実施形態に係る多関節型ロボットXの制御との処理手順の違いについて説明する。
一般的なマニピュレータ本体30の制御は,後述するように主制御部11に作動軌跡を教示する教示工程(ステップS11)を実施し,更に教示された作動軌跡上の補間点の位置・姿勢に作動させるために各駆動軸の角度を算出・記憶する工程(ステップS12)と,算出された角度を読み出して作動を指示する工程(ステップS14)と,作業終了位置・姿勢に到達したか否かを判別する工程(ステップS15)とを実施して,マニピュレータ本体30を現在の補間点の位置・姿勢から次の補間点の位置・姿勢に作動させ,以後,所定のサンプリング期間毎にステップS12,S14,S15を繰り返すことにより作動軌跡に沿って作業開始位置・姿勢から作業終了位置・姿勢までマニピュレータ本体30を作動させる。また,主制御部11は,マニピュレータ本体30のエンドエフェクタ39を予め設定された一定速度で移動させることにより,該エンドエフェクタ39による作業を実行する。但し,一定速度で移動させる場合には,第1関節駆動系のJ5軸35が0°近傍を通過するとき(特異点)に,J4軸34やJ6軸36の速度が予め定められた許容範囲を超えるおそれがある。
【0032】
そこで,本実施の形態に係る多関節型ロボットXの制御は,上記一般的なマニピュレータ本体30の制御に必要な工程に加え,後述するように第1関節駆動系のJ4軸34,J6軸36の少なくとも一方の速度が許容範囲を超えるため速度抑制処理が必要か否かを判別する工程(ステップS13)と,速度抑制処理が必要な場合に(ステップS13;YES),特異点を回避した作動軌跡上の補間点に作動させるために各駆動軸の角度を再度算出・記憶する速度抑制工程(ステップS20)とを含み,特異点を回避してマニピュレータ本体30を現在の補間点の位置・姿勢から再算出された次の補間点の位置・姿勢に作動させるものである。
【0033】
続いて,
図2を参照して,主制御部11によって実行される多関節型ロボットXの制御全体処理について説明し,各処理の詳細については後述する。
最初に,利用者が,ロボットの作動軌跡を,操作部21によりポイントツーポイントで教示する。即ち,操作部21によって各教示ポイントに移動させ,前記エンドエフェクタ39の作業位置及び姿勢を制御部10の記憶部12に記憶させる(ステップS11)。尚,ステップS11が教示工程の一例である。
【0034】
主制御部11は,上記の教示されたポイント間を所定のサンプリング周期毎(例えば,1/16秒,1/32秒など)に分割・補間し,エンドエフェクタ39を次の補間点に動かすためのJ1軸31〜J6軸36の角度と第1関節駆動系のJ4軸34〜J6軸36の速度(場合によっては更に加速度)とを算出して記憶部12に記憶させる(ステップS12)。ここに,J1軸31〜J6軸36の角度は±180°で表される。もちろん,角度の指定方法は±180°に限らず,例えば0°〜360°などであってもよい。尚,このステップS12の詳細については後述する。
【0035】
そして,主制御部11は,前記ステップS12で算出されたエンドエフェクタ39を次の補間点に動かすための第1関節駆動系のJ4軸34及びJ6軸36の一方又は両方の速度や加速度が許容範囲内か外か(以後,速度抑制処理の要・不要という)又は,既に許容範囲外の駆動軸があると判別された後の回避処理中(以後,速度抑制処理中という)であるかを判別する(ステップS13)。尚,このステップS13の詳細については後述する。
【0036】
ここで,速度抑制処理の要又は速度抑制処理中と判別されると(ステップS13;YES),主制御部11が,エンドエフェクタ39の移動速度を変更することなく,且つ前記ステップS12により算出された次の補間点におけるエンドエフェクタ39の姿勢データに対して一つ又は二つの特定成分の変動を抑制し速度や加速度が前記許容範囲内となるように該J4軸34及びJ6軸36の一方又は両方の角度を再度算出し,これに対応する他の軸の角度を再算出して記憶部12に記憶させる速度抑制処理を行う(ステップS20)。尚,このステップS20の上記の説明では,速度抑制処理の要・不要を判別する目安として,各軸の速度や加速度を問題としたが,該ステップS20の具体例についての後述の説明では,速度について判別する場合を例に挙げて説明する。
【0037】
他方,速度抑制処理が不要であり速度抑制処理中でないと判別される(ステップS13;NO)か,速度抑制処理(ステップS20)がなされると,主制御部11の指示により駆動指示部13が,エンドエフェクタ39を次の補間点に動かすためのJ1軸31〜J6軸36の角度を記憶部12から読み出して,マニピュレータ本体30の各駆動軸のアクチュエータに出力する(ステップS14)。このとき,速度抑制処理が不要であり速度抑制処理中でないと判別された場合には,前記ステップS12で算出された次の補間点に動かすためのJ1軸31〜J6軸36の角度に基づいてマニピュレータ本体30が制御され,J4軸34やJ6軸36の速度が許容範囲外となって速度抑制処理が実行された場合には,前記ステップS20で算出された次の補間点に動かすためのJ1軸31〜J6軸36の角度に基づいてマニピュレータ本体30が制御される。ここに,係るステップS14が駆動指示工程の一例であって,係る処理を実行するときの主制御部11及び駆動支持部13が駆動指示手段に相当する。
【0038】
続いて,主制御部11は,移動後のエンドエフェクタ39の位置及び姿勢が,作業部終了位置及び姿勢に到達したかを判別する(ステップS15)。作業部終了位置及び姿勢に到達していない場合には(ステップS15;NO),所定のサンプリング周期毎に,上述したステップS12以下の工程を再度実施し,作業部終了位置及び姿勢に到達した場合には(ステップS15;YES),処理を終了する。
【0039】
このように,主制御部11は,所定のサンプリング周期毎に,エンドエフェクタ39を現在位置及び姿勢から次の補間点に動かすためのJ1軸31〜J6軸36の角度を算出して,多関節型ロボットXを動作させる。
次に,
図3を参照して,
図2のステップS12に該当する多関節型ロボットXの現在の補間点から次の補間点に移動するためのJ1軸31〜J6軸36の角度と第1関節駆動系のJ4軸34〜J6軸36の速度とを算出する処理手順の一例について説明する。
【0040】
まず,主制御部11は,前記ステップS11において予め教示された作業開始位置及び姿勢P
0と作業終了位置及び姿勢P
nとの間をn(サンプリング周期毎に基づく,任意の値)個の点で補間したエンドエフェクタ39の位置及び姿勢を算出する。この場合,1サンプリング周期毎の移動量は,ΔP=(P
n−P
0)/n={ΔX=(X
n−X
0)/n,ΔY=(Y
n−Y
0)/n,ΔZ=(Z
n−Z
0)/n,Δα=(α
n−α
0)/n,Δβ=(β
n−β
0)/n,Δγ=(γ
n−γ
0)/n}によって表せる。なお,前記補間点各々は,前記多関節型ロボットXのベース座標系Σbaseにより表されるものである。
【0041】
主制御部11は,
図7に示すように,現在の位置の補間点がP
iである場合に,次の補間点P
i+1 の位置及び姿勢をP
i+1 =P
0+ΔP×(i+1)や,P
i+1 =Pi+ΔPによって算出する(ステップS121)。尚,このステップS121が補間データ算出工程の一例であり,係る処理を実行するときの主制御部11が補間データ算出手段に相当する。
続いて,主制御部11は,次の補間点P
i+1の位置及び姿勢(X
i+1,Y
i+1,Z
i+1,α
i+1,β
i+1,
i+1 )から逆運動学問題の解を求めることによって,各J1軸31〜J6軸36の角度(θ
1,θ
2,θ
3,θ
4,θ
5,θ
6)を算出して,記憶部12に記憶させる(ステップS122)。このとき,J4軸34〜J6軸36について逆運動学問題の2つの解が得られるが,ここでは,主制御部11は,その2つの解のうち第1関節駆動系のJ5軸35の角度が,教示された前記エンドエフェクタ39の作業開始位置におけるJ5軸35の角度と同符号となる逆運動学問題の解を採用する。これにより,J5軸35の角度が0°を通過することなく推移するため特異点の通過を回避することができる。
【0042】
尚,主制御部11は,後述する速度抑制処理を実行する場合には,特異点を経由する経路の補間点の各J1軸31〜J6軸36の角度ばかりではなく,特異点を回避する経路の補間点の各J1軸31〜J6軸36の角度をもそれぞれ算出して記憶部12に記憶させて,後述する復帰処理(
図5のステップS310及び
図6のフローチャート)をする際の比較対象とする。
【0043】
ここに,ステップS122が角度算出工程の一例であり,係る処理を実行するときの主制御部11が角度算出手段に相当する。
次に,主制御部11は,算出された次の補間点P
i+1 の各J4軸34〜J6軸36の角度から,記憶部12に記憶された現在の補間点P
iの各J4軸34〜J6軸36の角度を差し引き,第1関節駆動系のJ4軸34〜J6軸36の速度を算出して記憶部12に記憶させる(ステップS123)。尚,後述するように,速度抑制処理(ステップS20)を実行する場合には,特異点を経由する系の補間点の第1関節駆動系のJ4軸34〜J6軸36の速度を算出し記憶部12に記憶させ,後述するステップS131において速度の許容範囲を算出したり,ステップS211等において次の補間点の候補となる速度(必要に応じて加速度)を算出するために用いる。
【0044】
ここに,ステップS123が速度算出工程の一例であり,係る処理を実行するときの主制御部11が速度算出手段に相当する。
次に,
図4を参照して,
図2のステップS13に該当する速度抑制必要性判別処理手順の一例について説明する。
まず,主制御部11はエンドエフェクタ39の位置及び姿勢を現在の補間点Piから次の補間点P
i+1 に動かす際の第1関節駆動系のJ4軸34,J6軸36の速度の許容範囲を算出する(ステップS131)。例えば,現在の補間点Piの速度の値に所定の値や所定の割合を加減算して得られる値を上限・下限として,速度の許容範囲を算出する。尚,この各軸の速度の許容範囲は,エンドエフェクタ39の作動条件(例えば,溶接する際の温度,塗装する際の塗装膜の厚さなどの条件)や多関節型ロボットが動作する際に振動などの異常動作を起こさないための条件など,作業対象物の品質に影響を及ぼさない範囲内で予め定めておいても良い。さらに,J4軸34,J6軸36ごとに個別の許容範囲を設定しても良い。
【0045】
次に,主制御部11は,第1関節駆動系の次の補間点におけるJ4軸34及びJ6軸36の一方又は両方の速度が上記許容範囲を超えているか,或いは,速度抑制処理中を示すフラグが立っているか否かを判別する(ステップS132)。
ここで,第1関節駆動系の次の補間点におけるJ4軸34及びJ6軸36の両方が前記許容範囲内であり,且つ速度抑制処理中でない場合には(ステップS132;NO),主制御部11の指示により駆動指示部13は記憶部12から前記ステップS12で算出された各J1軸31〜J6軸36の角度を読み出しマニピュレータ本体30に出力する(ステップS14)。他方,許容範囲外の軸がある,又は速度抑制処理中である場合には(ステップS132;YES),主制御部11は以下に述べる速度抑制処理(ステップS20)を実行する。
【0046】
以下,
図5を参照して,
図2のステップS20に該当する多関節型ロボットXの速度抑制処理の具体例について説明する。
尚,以下では,
図24に示したJ5軸35が0度付近にあり,J4軸34やJ6軸36の速度が許容範囲を超えるときに当該速度抑制処理を実行する場合を例に挙げて説明する
が,他の理由によってJ4軸34やJ6軸36の速度が許容範囲を超える場合にも同様である。従って,当該速度抑制処理は,第1関節駆動系のJ4軸34,J6軸36の何れか1つ又は2つの駆動軸の速度が許容範囲を超える場合に実施される。尚,最初に次の補間点について許容範囲外の軸が発見された時に,現在の補間点での速度は許容範囲内である。
【0047】
まず,主制御部11は,次の補間点について速度が前記許容範囲外である駆動軸がJ4軸34及びJ6軸36のいずれであるか又は両方であるか,或いは,既に速度抑制処理中のフラグが立っている場合には,該速度抑制処理がJ4軸34及びJ6軸36のいずれか一方又は両方について実行されているかを判別し,処理を分岐する(ステップS201)。許容範囲内か外かは,前記したように速度が許容範囲の上限・下限の間にあるか否かにより判別される。ここで,J4軸34及びJ6軸36の両方が速度の許容範囲外でなく,且つ速度抑制処理中のフラグが立っていなければ(ステップS201;その他),主制御部11は当該速度抑制処理を終了する。
【0048】
一方,J6軸36の速度が許容範囲外である場合は処理がステップS211に移行し,J4軸34の速度が許容範囲外である場合は処理がステップS221に移行し,J4軸34及びJ6軸36の両方の速度が許容範囲外である場合は処理がステップS231に移行する。
(J6軸36の速度抑制処理ステップS211〜S217)
J6軸36の速度が許容範囲外であるか又は,J6軸36の速度抑制処理中を示すフラグが立っている場合(ステップS201;J6軸が範囲外),主制御部11は,現在の補間点におけるJ6軸36の角度に基づいて,該J6軸36の角度が前記ステップS12で算出された次の補間点における角度に追従し,且つJ6軸36の次の補間点における速度が前記許容範囲内となる角度の候補を複数算出する(ステップS211)。
【0049】
例えば,主制御部11は,以下の(21)〜(23)の手順により,J6軸36の速度の候補を算出する。
(21)まず,下記(21a)式により抑制基準速度V6b を算出する。ここに,θ
now は次の補間点におけるJ6軸36の角度,θ
old は現在の補間点におけるJ6軸36の角度,Eは予め設定された係数(例えば0.1)である。
V6b =E(θ
now −θ
old ) …(21a)
(22)次に,抑制基準速度V6b が予め定められた速度リミッタV
max 以上であるか否かを判断し,該速度リミッタV
max 以上であると判断した場合は,抑制基準速度V6b を前回の速度θ
old に設定する。前記速度リミッタV
max は,例えば前記許容範囲内の速度の最大値である。
(23)そして,抑制基準速度V6b と所定の値D(事前に定められた許容範囲内の加速度を保っていることが分かっている速度の変化分の絶対値など)とにより3つの速度の候補(Vθ
6a =V
6b −D,Vθ
6b =V
6b ,Vθ
6c =V
6b +D)を算出する。前記所定の値Dは,例えば前記速度リミッタV
max の10%程度の値である。また,Vθ
6a が前記速度リミッタV
max より大きい場合は,Vθ
6a =V
max とする。
【0050】
その後,主制御部11は,現在の補間点におけるJ6軸36の角度θ6から上記の速度の各候補(Vθ
6a ,Vθ
6b ,Vθ
6c )に対応する次の補間点における3つのJ6軸36の角度の候補(θ
6a ,θ
6b ,θ
6c )を算出する。即ち,次の補間点として,少なくとも許容範囲を超えていない抑制基準速度V
6b 又は現在の補間点における速度を継続した角度(当然,許容範囲内である)と,それにより僅かな量(±D(速度の変化分の絶対値に対応する))だけ離れた角度が算出される。ここに,係るステップS211の処理が角度候補算出工程の一例であり,係る処理を実行するときの主制御部11が角度候補算出手段に相当する。
【0051】
次に,主制御部11は算出された次の補間点におけるJ6軸36の角度の各候補に対応する他の駆動軸J1軸31〜J5軸35の角度を算出する(ステップS212)。例えば,以下の(1)〜(3)に示すように,J6軸36の角度の候補(θ
6a ,θ
6b ,θ
6c )毎に,前記ステップS122において算出された次の補間点P
i+1 のエンドエフェクタ39の位置(X
i+1 ,Y
i+1 ,Z
i+1 )と,第1関節駆動系のJ4軸34,J5軸35の角度(θ
4,θ
5)とを用いて,第1関節駆動系及び第2関節駆動系のJ1軸31〜J6軸36の角度(θ
1,θ
2,θ
3,θ
4,θ
5,θ
6)を再算出する。
(1)候補θ
6a に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4,θ
5,θ
6a ]から[θ
1a ,θ
2a,θ
3a ,θ
4,θ
5,θ
6a ]を算出する。
(2)候補θ
6b に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4,θ
5,θ
6b ]から[θ
1b ,θ
2b,θ
3b ,θ
4,θ
5,θ
6b ]を算出する。
(3)候補θ
6c に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4,θ
5,θ
6c ]から[θ
1c ,θ
2c,θ
3c ,θ
4,θ
5,θ
6c ]を算出する。
【0052】
これによって,後に説明する
図8に示すように,速度が許容範囲を超えない次の補間点の候補P’
i+1 が計算され,この次の補間点の候補P’i+1 を次の補間点と見做すことにより,J6軸36の速度が許容範囲を超えず,元の補間点P
i+1 (特異点)を回避した例外経路(
図8(B)参照)を得ることができる。
このようにしてJ6軸36の速度を許容範囲内に維持した次の補間点における3つの角度の候補(θ
6a ,θ
6b ,θ
6c )が得られると,次の補間点としてどの候補を選択すべきかの判断が行われる。ここまでの計算では,第1関節駆動系のJ4軸34〜J6軸36の角度(θ
4,θ
5,θ
6)が問題とされているが,最終的には作業の種類に応じて重要視されるエンドエフェクタ39の姿勢に焦点を合わせて候補が選択されなければならない。従って,上記J1軸31〜J6軸36の角度からエンドエフェクタ39の姿勢を示すデータへの変換が必要である。
【0053】
そして,次の補間点としてどの候補を選択すべきかの判断を行うため,主制御部11は,算出された候補ごとに次の補間点における溶接線座標系Σlineのエンドエフェクタ39の姿勢を示すデータの各成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rz)をそれぞれ算出する(ステップS213)。尚,このステップS213が,姿勢データ算出工程の一例であり,係る処理を実行するときの主制御部11が姿勢データ算出手段に相当する。ここに,前記溶接線座標系Σlineは,
図25に示すように,エンドエフェクタ39が移動する方向(進行方向)の軸をX軸とし,該X軸と重力方向との外積(X軸×重力方向)によって表される軸をY軸とし,該X軸と該Y軸との外積(X軸×Y軸)によって表される方向の軸をZ軸とする作業座標系であり,
図26〜
図28に示すように,該X軸の軸周りの回転角がトーチ傾斜角Rxで示され,該Y軸の軸周りの回転角がトーチ前進角Ryで示され,該Z軸の軸周りの回転角がトーチ回転角Rzで示される。
例えば,上記の(1)〜(3)の候補θ
6a 〜θ
6c に対して,以下の(1’)〜(3’)によりエンドエフェクタ39の姿勢を示すデータの各成分を算出する。
(1’)[θ
1a ,θ
2a ,θ
3a ,θ
4,θ
5,θ
6a ]から[R
xa ,R
ya ,R
za ]を算出する。
(2’)[θ
1b ,θ
2b ,θ
3b ,θ
4,θ
5,θ
6b ]から[R
xb ,R
yb ,R
zb ]を算出する。
(3’)[θ
1c ,θ
2c ,θ
3c ,θ
4,θ
5,θ
6c ]から[R
xc ,R
yc ,R
zc ]を算出する。
【0054】
次に,主制御部11は,前記ステップS121で算出された元の経路上の次の補間点Pi+1 におけるエンドエフェクタ39の位置及び姿勢を直交座標系Σbaseによって表した(X
i+1 ,Y
i+1 ,Z
i+1 ,α
i+1 ,β
i+1 ,γ
i+1 )を,エンドエフェクタ39が移動する方向の軸をX軸とする溶接線座標系Σline(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rz)によって表すためにデータを変換する(ステップS214)。尚,このステップS214が,姿勢データ変換工程の一例であり,係る処理を実行するときの主制御部11が姿勢データ変換手段に相当する。
尚,直交座標系Σbaseから溶接線座標系Σlineに変換する式を下記の(数1)に示す。
【0056】
そして,もともとJ6軸36の速度が許容範囲外であったので,軌道を維持しつつJ6軸36の速度を抑制するためには,J6軸36以外のJ1軸31〜J5軸35の中から余分に回転してもよい軸を選定し,その軸を余分に回転させることで,J6軸36の超過速度に対応する変動量を抑制しなければならない。しかし,軌道を維持しつつJ1軸31〜J5軸35のどの軸を余分に回転させればよいかは,角度θ1〜θ6によって表される領域では判断することができない。これに対して,エンドエフェクタ39の作業の種類と密接に関係する溶接線座標系Σlineにおける各成分(Rx,Ry,Rz)によって表される領域では判断することができる。
【0057】
そこで,
図5に示すように,主制御部11は,前記ステップS213において変換された溶接線座標系Σlineにおけるエンドエフェクタ39の姿勢を示すデータの各成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rz)の中から変動を抑制すべき成分を示す情報(重み付け情報)を取得する(ステップS215)。尚,主制御部11は,前記操作部21からの入力によりどの成分の重み付けを大きくするかを任意に設定してもよい。例えば,この実施形態では,エンドファクタ39は作業点が1つの溶接トーチであり,溶接トーチを用いた溶接作業の性質上,トーチの作業対象物(材料)に対する角度やトーチの進行速度は重要であるが,トーチの軸周りの回転は重要でない。そのため,この実施形態では,前記重み付け情報が,トーチ傾斜角Rx,トーチ前進角Ryを重み付けが大きい(抑制すべき)成分とし,トーチ回転角Rzを重み付けが小さい(抑制しない)成分として予め設定されているものとする。この重み付け情報は,後述するステップS216の変動を抑制した候補を選択する評価式の各成分に対応する係数として用いられる。
【0058】
次に,主制御部11は算出された次の補間点における複数の候補の中から前述したステップS215により取得された抑制するための重み付けが大きい特定成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rzのいずれか一つ又は二つ)の変動が最も少ない候補を選択する(ステップS216)。例えば,トーチ傾斜角と,トーチ前進角との変動を抑制し,トーチ回転角の変動を許容する場合,重み付け係数A=1,B=1,C=0とし(即ち特定成分はトーチ傾斜角及びトーチ前進角),上記の(1’)〜(3’)の候補に対して下記の(1”)〜(3”)の演算をする。なお,Rx,Ry,Rzは元の経路上における次の補間点のトーチ傾斜角,トーチ前進角,トーチ回転角である。
(1”)[Fa=A(Rx−R
xa )
2+B(Ry−R
ya )
2+C(Rz−R
za )
2]
(2”)[Fb=A(Rx−R
xb )
2+B(Ry−R
yb )
2+C(Rz−R
zb )
2]
(3”)[Fc=A(Rx−R
xc )
2+B(Ry−R
yc )
2+C(Rz−R
zc )
2]
上記(1”)〜(3”)において,変動を抑制する成分に重み付けをして,前記ステップS214で算出された元の経路上の次の補間点のエンドエフェクタ39の姿勢角と,前記ステップS213で算出された例外経路上の次の補間点の各候補のエンドエフェクタ39の姿勢角との差Fa〜Fcが求められるので,そのFa〜Fcの中で最も値が小さい(変動が小さい)ものを選択し,選択された候補の駆動軸J1軸31〜J6軸36の角度を特異点を回避する動作時の各軸の角度として採用する。ここに,係るステップS216の処理が角度選択工程の一例であり,係る処理を実行するときの主制御部11が角度選択手段に相当する。また,選択された候補の駆動軸J1軸31〜J6軸36の角度とJ6軸36の速度を記憶部12に保存する。これにより,エンドエフェクタ39の姿勢データのうち予め定められた重み付けが大きい成分から順に変動の抑制量が大きくなるように駆動軸J1軸31〜J6軸36の角度が再度算出される。例えば,重み付け係数A=0.2,B=0,C=1である場合,トーチ回転角Rzの変動が最も抑制され,トーチ前進角Ryの変動が最も大きくなる。
【0059】
次に,主制御部11はJ6軸36の速度抑制処理中のフラグが立っていなければ,フラグを立ててJ6軸36に対する速度抑制処理中であることを示す(ステップS217)。
尚,ステップS211〜S213,S216,S217が,再算出工程の一例であって,係る処理を実行するときの主制御部11が再算出手段に相当する。
上述した処理(ステップS211〜S217)を実行することによって,
図8(A),
図8(B)に示すように,現在の補間点の位置Piから特異点を経由する元の経路上の次の補間点Pi+1 ではなく,特異点を回避する例外経路上の次の補間点P’i+1 が見つかる。
【0060】
この演算(ステップS201,S211〜S217)を次の補間点が元の経路の補間点になるまで(ステップS201;その他)繰り返して,特異点を回避する例外経路を算出する。但し,前記制御部10では,この算出処理が事前にまとめて実行されるのではなく,現在の状態と次の状態とに応じてその都度,主制御部11によって実行されるため,該主制御部11に瞬間的に要求される処理負荷が軽減され,低コスト化を図ることができる。
【0061】
尚,次の補間点の角度の候補(θ
6a ,θ
6b ,θ
6c )の中には,元々許容範囲内に維持することができる前記抑制基準速度V6b 又は現在の補間点のJ6軸36の角度が含まれているため,採用された何れかの候補により次の補間点のJ6軸36の速度を許容範囲内に維持することができる。
その後に主制御部11が実行するJ6軸36の速度抑制処理からの復帰処理(ステップS310)の詳細については後述する。
【0062】
(J4軸34の速度抑制処理ステップS221〜S227)
J4軸34の速度が許容範囲外であるか又は,J4軸34の速度抑制処理中を示すフラグが立っている場合(ステップS201;J4軸が範囲外),主制御部11は,前述したJ6軸36の速度と角度の候補を算出する場合と同様に,許容範囲内に収まる複数のJ4軸34の角度の候補を算出する(ステップS221)。即ち,J4軸34の抑制基準速度V
4b が算出されて,3つの速度の候補(Vθ
4a =V
4b −G,Vθ
4b =V
4b ,Vθ
4c =V
4b+G)が算出され,3つの角度の候補(θ
4a ,θ
4b ,θ
4c )が算出される。なお,所定の値Gは,事前に定められた許容範囲内の加速度を保っていることが分かっている速度の変化分の絶対値などである。ここに,係るステップS221の処理が角度候補算出工程の一例である。
【0063】
以下のステップS222〜S227,S320の処理は,前述したJ6軸36のステップS212〜S217,S310の処理と同様の処理を実行するため,説明を省略する。
(J4軸34・J6軸36の速度抑制処理ステップS231〜S237)
J4軸34及びJ6軸36両方の速度が許容範囲外であるか又は,J4軸及びJ6軸36両方の速度抑制処理中を示すフラグが立っている場合(ステップS201;J4軸・J6軸が範囲外),主制御部11は許容範囲内に収まる1又は複数のJ4軸34とJ6軸36との両方の速度と角度の候補を算出する(ステップS231)。
【0064】
例えば,前記ステップS231では,前記ステップS211と同様にJ6軸36の速度の候補を3つ算出して,前記ステップS221と同様にJ4軸34の速度の候補を3つ算出した後,J4軸34の候補3つとJ6軸36の候補3つとを組み合わせて9つの候補を算出することが考えられる。つまり,主制御部11はJ6軸36の前記抑制基準速度V6bと前記所定の値Dとから3つの速度の候補(Vθ
6a =V
6b −D,Vθ
6b =V
6b ,Vθ
6a =V
6b +D)を生成し,J4軸34の前記抑制基準速度V
4b と所定の値Gとから3つの速度の候補(Vθ
4a =V
4b −G,Vθ
4b =V
4b ,Vθ
4a =V
4b +G)を生成する。更に,主制御部11は現在の補間点におけるJ6軸36の角度θ
6から上記の速度の各候補に対応する次の補間点における3つのJ6軸36の角度の候補(θ
6a ,θ
6b ,θ
6c )を算出し,現在の補間点におけるJ4軸34の角度θ
4から上記の速度の各候補に対応する次の補間点における3つのJ4軸34の角度の候補(θ
4a ,θ
4b ,θ
4c )を算出する。そして,これらJ4軸34の候補とJ6軸36の候補とを組合せ,(θ
4a ,θ
6a ),(θ
4a ,θ
6b ),(θ
4a ,θ
6c ),(θ
4b ,θ
6a ),(θ
4b ,θ
6b ),(θ
4b ,θ
6c ),(θ
4c ,θ
6a ),(θ
4c ,θ
6b ),(θ
4c ,θ
6c )の9つの候補を算出する。即ち,次の補間点におけるJ4軸34・J6軸36夫々に対して,許容範囲を超えていない現在の補間点における速度を継続した角度と,それにより僅かな量だけ離れた角度が算出される。ここに,係るステップS231の処理が角度候補算出工程の一例である。
【0065】
次に,主制御部11は算出された次の補間点におけるJ4軸34,J6軸36の角度の各候補に対応する他の駆動軸J1軸31〜J3軸33,J5軸35の角度を算出する(ステップS232)。例えば,J4軸34・J6軸36の角度の候補(θ
4a ,θ
6a )〜(θ
4c ,θ
6c )の組毎に,前記ステップS122において算出された次の補間点P
i+1 のエンドエフェクタ39の位置(X
i+1 ,Y
i+1 ,Z
i+1 )と,第1関節駆動系のJ5軸35の角度(θ
5)とを用いて第2関節駆動系のJ1軸31〜J3軸33の角度(θ
1,θ
2,θ
3)を再算出する。
(1)候補(θ
4a ,θ
6a )に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4a ,θ
5,θ
6a ]から[θ
1aa ,θ
2aa ,θ
3aa ,θ
4a ,θ
5,θ
6a ]を算出する。
(2)候補(θ
4a ,θ
6b )に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4a ,θ
5,θ
6b ]から[θ
1ab ,θ
2ab ,θ
3ab ,θ
4a ,θ
5,θ
6b ]を算出する。
(3)候補(θ
4a ,θ
6c )に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4a ,θ
5,θ
6c ]から[θ
1ac ,θ
2ac ,θ
3ac ,θ
4a ,θ
5,θ
6c ]を算出する。
(4)候補(θ
4b ,θ
6a )に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4b ,θ
5,θ
6a ]から[θ
1ba ,θ
2ba ,θ
3ba ,θ
4b ,θ
5,θ
6a ]を算出する。
(5)候補(θ
4b ,θ
6b )に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4b ,θ
5,θ-
6b]から[θ
1bb ,θ
2bb ,θ
3bb ,θ
4b ,θ
5,θ
6b ]を算出する。
(6)候補(θ
4b ,θ
6c )に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4b ,θ
5,θ
6c ]から[θ
1bc ,θ
2bc ,θ
3bc ,θ
4b ,θ
5,θ
6c ]を算出する。
(7)候補(θ
4c ,θ
6a )に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4c ,θ
5,θ
6a ]から[θ
1ca ,θ
2ca ,θ
3ca ,θ
4c ,θ
5,θ
6a ]を算出する。
(8)候補(θ
4c ,θ
6b )に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4c ,θ
5,θ
6b ]から[θ
1cb ,θ
2cb ,θ
3cb ,θ
4c ,θ
5,θ
6b ]を算出する。
(9)候補(θ
4c ,θ
6c )に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4c ,θ
5,θ
6c ]から[θ
1cc ,θ
2cc ,θ
3cc ,θ
4c ,θ
5,θ
6c ]を算出する。
【0066】
これによって,速度が許容範囲を超えない次の補間点の候補P’
i+1 が計算され,この次の補間点の候補P’
i+1 を次の補間点と見做すことにより,許容範囲を超えない次の補間点Pi+1 (特異点)を回避する例外経路を得ることができる。
次に,エンドエフェクタ39の姿勢に焦点を合わせて候補を選択するために,J1軸31〜J6軸36の角度の候補をエンドエフェクタ39の姿勢を示すデータへ変換する。
【0067】
具体的に,主制御部11は算出された次の補間点における前記溶接線座標系のエンドエフェクタ39の姿勢を示すデータの各成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rz)を算出する(ステップS233)。
例えば,上記の(1)〜(9)の角度の候補に対して,以下の(1’)〜(9’)によりエンドエフェクタ39の姿勢を示すデータの各成分を算出する。
(1’)[θ
1aa ,θ
2aa ,θ
3aa ,θ
4a ,θ
5,θ
6a ]から[R
xaa ,R
yaa ,R
zaa ]を算出する。
(2’)[θ
1ab ,θ
2ab ,θ
3ab ,θ
4a ,θ
5,θ
6b ]から[R
xab ,R
yab ,R
zab ]を算出する。
(3’)[θ
1ac ,θ
2ac ,θ
3ac ,θ
4a ,θ
5,θ
6c ]から[R
xac ,R
yac ,R
zac ]を算出する。
(4’)[θ
1ba ,θ
2ba ,θ
3ba ,θ
4b ,θ
5,θ
6a ]から[R
xba ,R
yba ,R
zba ]を算出する。
(5’)[θ
1bb ,θ
2bb ,θ
3bb ,θ
4b ,θ
5,θ
6b ]から[R
xbb ,R
ybb ,R
zbb ]を算出する。
(6’)[θ
1bc ,θ
2bc ,θ
3bc ,θ
4b ,θ
5,θ
6c ]から[R
xbc ,R
ybc ,R
zbc ]を算出する。
(7’)[θ
1ca ,θ
2ca ,θ
3ca ,θ
4c ,θ
5,θ
6a ]から[R
xca ,R
yca ,R
zca ]を算出する。
(8’)[θ
1cb ,θ
2cb ,θ
3cb ,θ
4c ,θ
5,θ
6b ]から[R
xcb ,R
ycb ,R
zcb ]を算出する。
(9’)[θ
1cc ,θ
2cc ,θ
3cc ,θ
4c ,θ
5,θ
6c ]から[R
xcc ,R
ycc ,R
zcc ]を算出する。
【0068】
そして,主制御部11は,前記ステップS234で算出された次の補間点P
i+1 における前記溶接線座標系のエンドエフェクタ39の姿勢を示すデータの各成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rz)を算出する(ステップS234)。尚,このステップS234が,姿勢データ変換工程の一例であり,係る処理を実行するときの主制御部11が姿勢データ変換手段に相当する。
【0069】
次に,主制御部11は,前記ステップS233において変換された溶接線座標系Σlineにおけるエンドエフェクタ39の姿勢を示すデータの各成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rz)の中から変動を抑制すべき成分を示す情報(重み付け情報)を取得する(ステップS235)。
さらに,主制御部11は算出された次の補間点における複数の候補の中から前述したステップS235により取得された抑制するための重み付けが大きい特定成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rzのいずれか)の変動が最も少ない候補を選択する(ステップS236)。例えば,トーチ傾斜角と,トーチ前進との変動を抑制し,トーチ回転角の変動を許容する場合,重み付け係数A=1,B=1,C=0とし,上記の(1’)〜(9’)の候補に対して下記の(1”)〜(9”)の演算する。
(1”)[F
aa =A(Rx−R
xaa)
2+B(Ry−R
yaa )
2+C(Rz−R
zaa )
2 ]
(2”)[F
ab =A(Rx−R
xab)
2+B(Ry−R
yab )
2+C(Rz−R
zab )
2 ]
(3”)[F
ac =A(Rx−R
xac)
2+B(Ry−R
yac )
2+C(Rz−R
zac )
2 ]
(4”)[F
ba =A(Rx−R
xba)
2+B(Ry−R
yba )
2+C(Rz−R
zba )
2 ]
(5”)[F
bb =A(Rx−R
xbb)
2+B(Ry−R
ybb )
2+C(Rz−R
zbb )
2 ]
(6”)[F
bc =A(Rx−R
xbc)
2+B(Ry−R
ybc )
2+C(Rz−R
zbc )
2 ]
(7”)[F
ca =A(Rx−R
xca)
2+B(Ry−R
yca )
2+C(Rz−R
zca )
2 ]
(8”)[F
cb =A(Rx−R
xcb)
2+B(Ry−R
ycb )
2+C(Rz−R
zcb )
2 ]
(9”)[F
cc =A(Rx−R
xcc)
2+B(Ry−R
ycc )
2+C(Rz−R
zcc )
2 ]
上記(1”)〜(9”)において,変動を抑制する成分に重み付けをして,前記ステップS234で算出された元の経路の次の補間点のエンドエフェクタ39の姿勢角と,前記ステップS233で算出された例外経路の次の補間点の各候補のエンドエフェクタ39の姿勢角との差F
aa 〜F
cc が求められるので,その差F
aa 〜F
cc の中で最も値が小さい(変動が小さい)ものを選択し,選択された候補の駆動軸J1軸31〜J6軸36の角度を特異点を回避する動作時の各軸の角度とする。ここに,係るステップS236の処理が角度選択工程の一例であり,係る処理を実行するときの主制御部11が角度選択手段に相当する。また,選択された候補の駆動軸J1軸31〜J6軸36の角度とJ4軸34・J6軸36の速度を記憶部12に保存する。
【0070】
その後,主制御部11はJ4軸34・J6軸36の速度抑制処理中のフラグが立っていなければ,フラグを立ててJ4軸34・J6軸36に対する速度抑制処理中であることを示す(ステップS237)。
上述した処理(ステップS231〜S237)をすることによって,現在の補間点の位置P
iから特異点を経由する元の経路上の次の補間点P
i+1 ではなく,特異点を回避する例外経路上の次の補間点P’
i+1 が見つかる。
主制御部11が実行するJ4軸34・J6軸36の速度抑制処理からの復帰処理(ステップS330)の詳細については後述する。
【0071】
次に,
図6を参照して,
図5のステップS310に該当する多関節型ロボットXの速度抑制処理からの復帰処理の手順の一例について説明する。
主制御部11は,
図8(B)に示されるように特異点区間P
i〜P
i+1 を回避した例外経路上の次の補間点P’
i+1 から,特異点を経由する元の経路上の更に次の補間点P
i+2 と特異点を回避した例外経路上の更に次の補間点P’
i+2 との角度の差分を計算して,その差が所定の範囲を超えていない場合にはP
i+3 へ進んでこの処理を終了するが,超えている場合にはP’
i+3 へ進み,差分が所定の範囲を超えている限りこの処理を繰り返す。やがて差分が所定の範囲内に入る次の補間点が見つかった場合に(この例では,P’
i+4 〜P
i+5 の場合)は,補間点P’
i+4 から補間点P
i+5 へ進みこの処理を終了する。そこで,特異点を回避する経路上の現在の補間点P’
i+4 から特異点を経由する経路上の次の補間点P
i+5 に復帰する場合を中心に説明する。
【0072】
(J6軸36の速度抑制処理からの復帰処理)
まず,主制御部11は前記ステップS122により算出された特異点を経由した系の次の補間点P
i+5 のJ6軸36の角度θ
6(i+5) と,前記ステップS214により選択された特異点を回避した系の次の補間点P’
i+5 のJ6軸36の角度θ’
6(i+5) とを取得する(ステップS311)。
【0073】
次に,主制御部11は特異点を回避した系のJ6軸36の角度θ’
6(i+5) と特異点を経由した系のJ6軸36の角度θ
6(i+5) との差分の値が所定の範囲以内かを判別する(ステップS312)。尚,前記所定の範囲はJ6軸36の角度θ’
6(i+5) を角度θ
6(i+5) に置き換えてエンドエフェクタ39を作動させた場合に,一般的には振動などの動作上の不都合が生じないと考えられる範囲内で定められた角度差の値とする。即ち,回避した経路上の補間点が,特異点を経由した元の経路上の補間点と見做せる範囲内に戻ったといえる程に充分近づいたかどうかを判断する。
【0074】
従って,差分の値が所定の範囲を超える場合(ステップS312;NO),主制御部11はステップS310の復帰処理を終了して,ステップS14に進む(
図2参照)。差分の値が所定の範囲以内の場合(ステップS312;YES),主制御部11はJ6軸36の角度θ’
6(i+5) を角度θ
6(i+5) に置き換える際の速度を算出する(ステップS313)。ここでは,特異点を経由した次の補間点のJ6軸36の角度θ
6(i+5) と特異点を回避した経路の補間点のJ6軸36の角度θ’
6(i+4) との差分に基づいて,J6軸36の速度を算出する。
【0075】
そして,主制御部11は,J6軸36の速度の許容範囲を算出する(ステップS314)。例えば,特異点を回避した経路の補間点のJ6軸36の速度の値に所定の値や所定の割合を加減算して得られる値を上限・下限として,速度の許容範囲を算出する。尚,この各軸の速度の許容範囲は,エンドエフェクタ39の作動条件(例えば,溶接する際の温度,塗装する際の塗装膜の厚さなどの条件)や多関節型ロボットが動作する際に振動などの異常動作を起こさないための条件など,作業対象物の品質に影響を及ぼさない範囲内で予め定めておいても良い。
【0076】
続いて,主制御部11はJ6軸36の速度が所定の許容範囲内か否かを判別する(ステップS315)。また,この許容範囲は,エンドエフェクタ39を動かした場合に振動などの動作上の不都合が生じない範囲で予め定められた値とする。
ここで,J6軸36の速度が所定の許容範囲内の場合(ステップS315;YES),主制御部11は次の補間点をP’
i+5 からP
i+5 に変更して,J6軸36の角度をθ
6(i+5)にし,これに対応する他の全ての駆動軸J1軸31〜J5軸35の角度を算出する(ステップS316)。主制御部11は算出された全ての駆動軸J1軸31〜J6軸36の角度を記憶部12に記憶させる。更に,主制御部11はJ6軸36の速度抑制処理中を示すフラグを立ち下げる(ステップS317)。
【0077】
一方,J6軸36の速度が所定の許容範囲外の場合(ステップS315;NO),主制御部11は角度θ
6(i+5) と角度θ’
6(i+5) との中間の角度θ”
6(i+5) をJ6軸36の角度にし,このJ6軸36の角度θ”
6(i+5) を含む補間点を次の補間点P”
i+5 にし(ステップS318),これに対応する他の全ての駆動軸J1軸31〜J5軸35の角度を算出する(ステップS319)。即ち,主制御部11は,J6軸36の角度θ’
6(i+5) を角度θ
6(i+5) に置き換える際に,該駆動軸J6軸36の角度をθ’
6(i+5) からθ
6(i+5) に急激に変化させることなく,所定の変動範囲内で徐々に変動させる。
【0078】
更に主制御部11は算出された全ての駆動軸J1軸31〜J6軸36の角度を記憶部12に記憶させる。
(J4軸34の速度抑制処理からの復帰処理)
ステップS320にあたるJ4軸34の速度抑制処理からの復帰処理は,上述したJ6軸36の速度抑制処理からの復帰処理(ステップS311〜S319)と同様の処理をするため説明を省略する。
【0079】
(J4軸34・J6軸36の速度抑制処理からの復帰処理)
ステップS330にあたるJ4軸34・J6軸36の速度抑制処理からの復帰処理は,それぞれJ4軸34の復帰処理とJ6軸36の復帰処理との双方を共に実施する以外はJ6軸36の速度抑制処理からの復帰処理と同様のため説明を省略する。
以上に示した制御方法により,多関節型ロボットXの主制御部11が中心となって,変動を抑制するための重み付けが大きい特定成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rzのいずれか一つ又は二つ)の変動を抑えつつ特異点を回避してマニピュレータ本体30に備え付けられたエンドエフェクタ39の位置及び姿勢を作動させることにより,本来の教示ポイントに基づく補間点を大きく外れることがなく,且つエンドエフェクタ39の移動速度を変更せずに全ての軸の速度が許容範囲内に入る作業軌道を得ることができる。
【0080】
例えば,
図24に示したように,J5軸35が0度付近で,J4軸34とJ6軸36との角度が急激に変化する(つまり速度が許容範囲外になる)特異点がある場合に,上述した速度抑制処理を実行することによって,トーチ傾斜角Rx,トーチ前進角Ryの変動を抑制しつつ,
図9に示すように,J4軸34とJ6軸36との角度の変動を緩やかにして,J4軸34とJ6軸36との速度を許容範囲内の速度にすることができる。
【0081】
また,
図10に示すように,速度制限をしない場合(一点鎖線)には特異点付近でJ4軸34の速度が急激に変化するが,単に速度制限をした場合(実線)と本発明の制御方法を実施した場合(破線)とは速度が許容範囲内に抑えられる。
但し,
図11に示すように単に速度制限をした場合には,トーチ前進角やトーチ傾斜角の姿勢変動角が大きく変動してしまう。
【0082】
しかしながら,
図12に示すように,本発明の制御方法を実施すると,重み付けが小さい(速度を抑制する必要のない)トーチ回転角は大きく変動するが,重み付けが大きいトーチ傾斜角とトーチ前進角との姿勢変動角の変動を抑制することができる。
また,
図13(A)に示すように,J1軸31が上下方向に駆動し,J2軸32とJ3軸33との駆動する方向が同じ方向でもよい,更に
図13(B)に示すようにJ1軸31,J2軸32が左右方向に駆動し,J3軸33が上下方向に駆動するものでもよい。尚,駆動軸が上下方向に駆動する場合には,各駆動軸を上下させるためのモータが回転する角度の差分のみならず,各駆動軸が上下する移動距離の差分を元に速度を算出してもよい。
【0083】
尚,上記の説明では,速度が許容範囲を超える場合に,他の軸の変動量を増やすことにより該軸の速度を抑制する方法について述べたが,上記の説明で得られた速度の変化量(加速度)が,所定の許容範囲を超える場合に,該軸の変動量を抑して,加速度が許容範囲に入るようにする各軸の角度のデータを算出してもよい。手段としては,速度をその変化量である加速度に置き換えて計算すれば良い。
【0084】
例えば,上記ステップS123において,主制御部11が,速度の変わりに加速度を算出し,上記ステップS131において,主制御部11が,加速度の許容範囲を算出し,上記ステップS132において,主制御部11が,ステップS123により算出された加速度が,ステップS131により算出された加速度の許容範囲外かを判別する。そして,許容範囲外である場合には,加速度が前記許容範囲に入るようにする各軸の角度のデータを算出する。このとき加速度の候補の算出時に用いる前記所定の値Dや前記所定の値Gは,事前に定められた許容範囲内の加加速度を保っていることが分かっている加速度の変化分の絶対値などである。尚,速度を加速度に置き換え,加速度を加加速度(躍度)に置き換えるだけなので,ここではその詳細な説明を省略する。
【実施例1】
【0085】
本実施例1では,前記実施の形態と異なる多関節型ロボットXの制御方法について説明する。
前記実施の形態で説明した手法により多関節型ロボットXを制御すると,前記J5軸35の角度の符号が作業開始位置及び作業終了位置で異符号になる場合でも,該J5軸35の角度が0°を通過しないように制御されるため,該作業終了位置における該J5軸35の角度が本来の目標値と異なる。この場合には,例えば
図15に示すように,残りのJ4軸34やJ6軸36の角度が急激に変化するおそれや動作限界角度(例えば±180°)
を超えるおそれがある。
【0086】
また,多関節型ロボットXにおいて,一つの姿勢データから求められる逆運動学問題の解は2つ存在し,例えば
図15に示すように,J6軸36の角度の変化量が急激に増減する場合には,前記J6軸36の別解が該J6軸36の現在の角度に近づくこととなる。そこで,本実施例1では,逆運動学問題により求まる2つの解を利用することにより,J4軸34やJ6軸36の急激な変化を防止するための構成について説明する。
【0087】
ここに,
図14は,多関節型ロボットXの他の制御方法を説明するためのフローチャートである。なお,前記実施の形態で説明した
図2の処理内容と同様の処理手順については同じ符号を付してその詳細な説明を省略する。
まず,本実施例1に係る構成でも,前記ステップS13で速度抑制処理が必要であると判断されるまでの間は(S13のNo側),主制御部11が,エンドエフェクタ39を次の補間点に動かすためのJ1軸31〜J6軸36の角度として,J5軸35の角度の符号が前記作業開始位置における該J5軸35の角度と同符号となる逆運動学問題の解を算出する(S12)。なお,ステップS12では,その算出されたJ4軸34〜J6軸36に対応する速度も算出される。
【0088】
また,続くステップS14において,主制御部11は,駆動指示部13を制御することにより,エンドエフェクタ39を次の補間点に動かすためのJ1軸31〜J6軸36の角度として,J5軸35の角度の符号が前記作業開始位置における該J5軸35の角度と同符号となる解を記憶部12から読み出して,マニピュレータ本体30の各駆動軸のアクチュエータに出力させる。これにより,J1軸31〜J6軸36は,エンドエフェクタ39が作業終了位置における位置及び姿勢に移動するまで(S15のYes側),J5軸35の角度の符号が前記作業開始位置における該J5軸35の角度と同符号となる解を目標値として動作することとなる(S15のNo側)。
【0089】
(ステップS411〜S412)
一方,前記ステップS13で速度抑制処理が必要であると判断された場合(S13のYes側),主制御部11は,続くステップS411において,前記ステップS12と同様に,次の補間点におけるJ1軸31〜J6軸36の角度とJ4軸34〜J6軸36の速度を算出する。なお,ステップS411では,その算出されたJ4軸34〜J6軸36に対応する速度も算出される。
【0090】
但し,このとき,主制御部11は,エンドエフェクタ39を次の補間点に動かすためのJ1軸31〜J6軸36の角度として求められる逆運動学問題の2つの解のうち,J5軸35の角度の符号が前記作業開始位置における該J5軸35の角度と異符号となる逆運動学問題の解(別解)を算出する。ここに,逆運動学問題の2つの解として求められるJ4軸34,J5軸35,J6軸36の角度をθ41,θ51,θ61とθ41’,θ51’,θ61’とすると,その値には,θ41−θ41’=±π,θ51+θ51’=0,θ61−θ61’=±πとの関係がある。例えば,(θ41,θ51,θ61)=(90°,75°,0°)であるとき,(θ41’,θ51’,θ61’)=(−90°,−75°,180°)となる。
【0091】
このように,本実施例1において,主制御部11は,J4軸34やJ6軸36の速度が前記許容範囲内である場合は,J5軸35の次の補間点における角度が作業開始位置における該J5軸35の角度と同符号になる逆運動学問題の解を採用し,前記許容範囲外である場合は,J5軸35の次の補間点における角度が作業開始位置における該J5軸35の角度と異符号になる逆運動学問題の解を採用する。ここに,係る処理が角度算出工程の一例であり,係る処理を実行するときの主制御部11が角度算出手段に相当する。
【0092】
そして,続くステップS412において,主制御部11は,前記ステップS13と同様に,前記ステップS412で算出されたJ4軸34,J6軸36の速度が許容範囲外であるかや,J4軸34,J6軸36についての速度抑制処理が実行中であるかなど,該速度抑制処理の必要性を判断する。
ここで,速度抑制処理が必要であると判断されると(S412のYes側),処理はステップS413に移行し,速度抑制処理が必要でないと判断されると(S412のNo側),処理はステップS414に移行する。
【0093】
(ステップS413)
前記ステップS413では,
図5に示した前記ステップS20と同様に,J4軸34及びJ6軸36のいずれか一方又は両方の速度を抑制するための速度抑制処理が実行される。但し,このとき,主制御部11は,エンドエフェクタ39を次の補間点に動かすためのJ1軸31〜J6軸36の角度として求められる逆運動学問題の2つの解のうち,J5軸35の角度の符号が前記作業開始位置における該J5軸35の角度と異符号となる解を採用するため,J1軸31〜J6軸36はその解を目標値として動作することになる。なお,前記ステップS413における処理内容は,J4軸34やJ6軸36の角度が異なるだけであり,その他は前記ステップS20と同様であるためその説明を省略する。
【0094】
(ステップS414〜S415)
そして,ステップS414では,前記ステップS14と同様に,主制御部11が,駆動指示部13を制御することにより,エンドエフェクタ39を次の補間点に動かすためのJ1軸31〜J6軸36の角度が記憶部12から読み出されて,マニピュレータ本体30の各駆動軸のアクチュエータに出力される。このとき,J1軸31〜J6軸36の角度は,前記ステップS411又は前記ステップS413において,J5軸35の角度の符号が前記作業開始位置における該J5軸35の角度と異符号となる解を目標値として算出されたものである。従って,J5軸35の角度は0°を通過して遷移することとなる。
【0095】
その後,J1軸31〜J6軸36は,エンドエフェクタ39が作業終了位置における位置及び姿勢に移動するまで(S415のYes側),J5軸35の角度の符号が前記作業開始位置における該J5軸35の角度と異符号となる解を目標値として動作することとなる(S415のNo側)。
ここに,
図15は,J5軸35の角度の符号が作業開始位置及び作業終了位置で異なる場合(プラスからマイナス,マイナスからプラスに変化する場合),即ち0°を通過する場合に,従来の特異点を経由する経路のJ4軸J5軸J6軸の動作結果の一例を示している。
図15に示す例では,J5軸35の角度が0°を通過しないように制御され,作業終了位置におけるJ5軸35の角度がプラスとなっているため,他のJ4軸34やJ6軸36の角度の変化量が大きくなっていることがわかる。
【0096】
一方,
図16は,J5軸35の角度の符号が作業開始位置及び作業終了位置で異なる場合に,本実施例1に係る多関節型ロボットXの制御手法を採用した結果の一例を示している。
図16に示す例では,J5軸35に0°を通過させることにより,他のJ4軸34やJ6軸36の角度の変化量が抑制されていることがわかる。
さらに,
図17は,本実施例1に係る多関節型ロボットXの制御手法を採用せずに等速動作させた場合のエンドエフェクタ39の姿勢データの変化を示しており,
図18は,本実施例1に係る制御手法を採用した場合のエンドエフェクタ39の姿勢データの変化を示している。なお,
図17,
図18において縦軸は本来の補間点におけるエンドエフェクタ39の姿勢データに対する変動量,横軸は時間を示している。
【0097】
図17に示すように,本実施例1に係る制御手法を採用しない場合には,傾斜角及び前進角の変動が大きいが,
図18に示すように,本実施例1に係る制御手法を採用して傾斜角及び前進角の重み付け(変動の抑制量の大きさ)を大きく設定しておけば,溶接に不要な回転角の精度を犠牲にして傾斜角及び前進角の変動を抑制することができる。
【実施例2】
【0098】
また,前記実施の形態で説明したように,多関節型ロボットXにおいて,前記作業開始位置から前記作業終了位置の間でJ5軸35の角度が0°近傍となる特異点を通過しないように制御する場合には,前記作業開始位置及び前記作業終了位置におけるJ5軸35の角度の符号が異符号である場合に,該作業終了位置におけるJ5軸35の角度が所望の角度と異なってしまうことになる。
【0099】
一方,前記実施例1で説明したように,多関節型ロボットXにおいて,前記作業開始位置から前記作業終了位置の間でJ5軸35の角度が0°近傍を通過するように制御する場合には,前記作業開始位置及び前記作業終了位置におけるJ5軸35の角度の符号が同符号である場合に,該作業終了位置におけるJ5軸35の角度が所望の角度と異なってしまうことになる。
【0100】
これらの場合には,例えば多関節型ロボットXのJ1軸31〜J6軸36やエンドエフェクタ39などに接続された配線が絡まることや,その後の操作によりJ4軸34〜J6軸36の駆動限界点を超えるおそれがあること等が問題となる。
そこで,前記作業開始位置及び前記作業終了位置における前記第1関節駆動系のJ5軸35の符号が同符号であるか異符号であるかに応じて,前記実施の形態に係る制御手法と前記実施例1に係る制御手法とを切り替えて実行することが考えられる。
【0101】
ここに,
図19は,本実施例2に係る多関節型ロボットXの制御方法を説明するためのフローチャートである。なお,前記実施の形態及び前記実施例1と同様の処理手順については同じ符号を付してその説明を省略する。
具体的に,主制御部11は,前記ステップS13のYes側と前記ステップS20及び前記ステップS411との間において,前記作業開始位置及び前記作業終了位置における前記第1関節駆動系のJ5軸35の角度の符号が同符号であるか異符号であるかを判断するための処理(ステップS511のYes側)を実行する。
【0102】
そして,主制御部11は,前記作業開始位置及び前記作業終了位置における前記第1関節駆動系のJ5軸35の角度の符号が同符号である場合は(ステップS511のYes側),前記ステップS20に移行する。この場合は,前記第1関節駆動系のJ5軸35の角度の符号が前記作業開始位置における角度と同符号である逆運動学問題の解が採用される。
【0103】
一方,前記作業開始位置及び前記作業終了位置における前記第1関節駆動系のJ5軸35の角度の符号が異符号である場合(ステップS511のNo側),主制御部11は,処理をステップS411に移行させる。この場合は,前記第1関節駆動系のJ5軸35の角度の符号が前記作業開始位置における角度と異符号である逆運動学問題の解が採用される。即ち,前記作業開始位置及び前記作業終了位置における前記第1関節駆動系のJ5軸35の角度の符号が異符号である場合は,J5軸35が0°近傍に近づいてJ4軸34やJ6軸36の速度が許容範囲内である間は,前記第1関節駆動系のJ5軸35の角度の符号が前記作業開始位置における角度と同符号である逆運動学問題の解が採用され,該J5軸35が0°近傍に近づいてJ4軸34やJ6軸36の速度が許容範囲外となった場合は,前記第1関節駆動系のJ5軸35の角度の符号が前記作業開始位置における角度と異符号である逆運動学問題の解が採用される。係る処理が角度算出工程の一例であり,係る処理を実行するときの主制御部11が角度算出手段に相当する。
【0104】
これにより,教示された作業終了位置におけるJ5軸35の角度の符号がその教示通りの符号と一致することになるため,例えば多関節型ロボットXのJ1軸31〜J6軸36やエンドエフェクタ39などに接続された配線の絡まりや,その後の操作によりJ4軸34〜J6軸36の駆動限界点を超えるおそれ等を防止することができる。
【実施例3】
【0105】
また,上記説明では,多関節型ロボットXのエンドエフェクタ39の作業点が1つの場合について説明したが,
図20に示すように,2つの作業点を有するエンドエフェクタ39Aを用いた多関節型ロボットX1を制御してもよい。
多関節型ロボットX1は,エンドエフェクタ39Aを備え,エンドエフェクタ39以外の他の構成は多関節型ロボットXと同様である。また,前記多関節型ロボットX1の制御は,前記多関節型ロボットXの制御処理とは,
図5に示したステップS215,S216(ステップS225,S226及びS235,236を含む)の処理以外は同様の処理をする。尚以下の説明では,多関節型ロボットX1と多関節型ロボットXとの同一の構成及び同一の処理は説明を省略する。
まず,
図1に示した多関節型ロボットXとの構成が異なる部分について説明する。
【0106】
エンドエフェクタ39Aは,マニピュレータ本体30の先端(J6軸36の先)に取り付けられ,作業対象物に対して効果を与える2つの作業点を有する効果器であり,作業点として溶接器(トーチ),塗装器,工具,捕獲器,センサなどがある。尚,2つの作業点を備えるトーチをタンデムトーチという。
次に,
図5のフローチャートを参照して,本発明の実施形態と処理が異なる速度抑制処理のステップS215,S216の処理を中心に説明する。
【0107】
まず,主制御部11は,ステップS201を実行する。ここでは,J6軸36の速度が許容範囲外であるか又は,J6軸36の速度抑制処理中を示すフラグが立っている場合(ステップS201;J6軸が範囲外)に該当しているものとする。更にステップS211〜ステップS214を実行する。
次に,前記ステップS215において,主制御部11は,前記ステップS213において変換された溶接線座標系Σlineにおけるエンドエフェクタ39Aの姿勢を示すデータの各成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rz)の中から変動を抑制すべき成分の情報(重み付け情報)を取得する。その際,この実施例1では,エンドファクタ39Aは作業点が2つの溶接トーチであり,溶接トーチを用いた溶接作業の性質上,トーチの軸周りの回転角とトーチの進行速度とは重要である。そのため,この実施例1では,標準設定として,トーチ回転角Rzを重み付けが大きい(抑制すべき)成分とし,トーチ前進角Ryを重み付けが小さい(抑制しない)成分として予め設定される。
【0108】
次に,前記ステップS216において,主制御部11は算出された次の補間点における複数の候補の中から前述したステップS215により取得された抑制するための重み付けが大きい特定成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rzのいずれか一つ又は二つ)の変動が最も少ない候補を選択する。例えば,トーチ回転角Rzの変動を抑制し,トーチ前進角Ryの変動を許容する場合,重み付け係数A=0.2,B=0,C=1や,重み付け係数A=0,B=0,C=1(即ち特定成分は,トーチ傾斜角及びトーチ回転角,或いはトーチ回転角である)とし,前記ステップS213によって算出された各候補(1’)〜(3’)に対して下記の(1”)〜(3”)の演算をする。
(1”)[F
a=A(Rx−R
xa )
2+B(Ry−R
ya )
2+C(Rz−R
za )
2]
(2”)[F
b=A(Rx−R
xb )
2+B(Ry−R
yb )
2+C(Rz−R
zb )
2]
(3”)[F
c=A(Rx−R
xc )
2+B(Ry−R
yc )
2+C(Rz−R
zc )
2]
(1”)〜(3”)において,特異点を経由する経路上の次の補間点のエンドエフェクタ39Aの姿勢角と,特異点を回避する経路上の次の補間点の各候補のエンドエフェクタ39Aの姿勢角との差が求められるので,Fa〜Fcの中で最も値が小さい(変動が小さい)ものを選択し,選択された候補の駆動軸J1軸31〜J6軸36の角度を特異点を回避する動作時の各軸の角度とする。
【0109】
続いて,主制御部11はステップS217以降の処理をする。尚,実施形態と同様に,速度が許容範囲外と判別された各駆動軸に対応して,ステップS211〜S216の代わりに,ステップS221〜S226若しくはステップS231〜S236を実行する。
以上に示した制御方法により,多関節型ロボットX1の主制御部11が中心となって,抑制するための重み付けが大きいトーチ傾斜角Rx,トーチ回転角Rzの変動を抑えつつ特異点を回避してマニピュレータ本体30に備え付けられたエンドエフェクタ39Aの位置及び姿勢を作動させ,本来の教示ポイントに基づく補間点を大きく外れることがなく,且つエンドエフェクタ39Aの移動速度を変更せずに全ての軸の速度が許容範囲内に入る作業軌道を得ることができる。
【0110】
また,
図21に示すように実施例1の制御方法を実施すると,抑制するための重み付けが小さいトーチ前進角Ryは大きく変動するが,抑制するための重み付けが大きい回転角Rzの姿勢変動角を抑制することができる。
【実施例4】
【0111】
上記説明では,多関節型ロボットXの第2関節駆動系の駆動軸がJ1軸31〜J3軸33の3つの軸を備えたマニピュレータ本体30の制御方法について説明したが,第2関節駆動系の駆動軸が4以上のマニピュレータであってもよい。尚以下の説明では,多関節型ロボットXと多関節型ロボットX2との同一の構成及び同一の処理は説明を省略する。
まず,
図1に示した多関節型ロボットXと
図22に示される多関節型ロボットX2との構成が異なる部分について説明する。
【0112】
図22に示される多関節型ロボットX1は,制御部10,操作部21,マニピュレータ本体30A等を備えている。マニピュレータ本体30Aは,第1関節駆動系の3つの駆動軸のJ4軸34,J5軸35,J6軸36と,第2関節駆動系の4つの駆動軸のJ1軸31,J2軸32,J3軸33,J7軸37とを備える。
J7軸37は,J1軸31〜J6軸36と同様に,電気モータ等により構成され,駆動指示部13からの指示により正負の方向に回転駆動し,複数の軸の回転駆動が連関することによって,人間の手首や腕の動きを実現する。その中でも上記J7軸37を含む第2関節駆動系の4つの駆動軸は,人間の腕に相当する動作を行い,エンドエフェクタ39の位置を移動する。
【0113】
次に,
図2〜
図6のフローチャートを参照して,本発明の実施形態と処理が異なる部分について説明する。
実施形態においては,補間点の位置及び姿勢Pi(X
i,Y
i,Z
i,α
i,β
i,γ
i)から逆運動学問題の解として各J1軸31〜J6軸36の角度(θ
1,θ
2,θ
3,θ
4,θ
5,θ
6)を算出し,補間点における各J1軸31〜J6軸36の角度(θ
1,θ
2,θ
3,θ
4,θ
5,θ
6)から順運動学問題の解として位置及び姿勢Pi(X
i,Y
i,Z
i,α
i,β
i,γ
i)を算出したが,実施例4では,補間点の位置及び姿勢Pi(X
i,Y
i,Z
i,α
i,β
i,γ
i)から逆運動学問題の解として各J1軸31〜J7軸37の角度(θ
1,θ
2,θ
3,θ
4,θ
5,θ
6,θ
7)を算出し,補間点における各J1軸31〜J7軸37の角度(θ
1,θ
2,θ
3,θ
4,θ
5,θ
6,θ
7)から順運動学問題の解として位置及び姿勢Pi(X
i,Y
i,Z
i,α
i,β
i,γ
i)を算出するように,角度の変数の数が6か7かの点が異なる。
【0114】
前記ステップ122において,主制御部11は,逆運動学問題の解を求めることによって,次の補間点の位置及び姿勢P
i+1 (X
i+1 ,Y
i+1 ,Z
i+1 ,α
i+1 ,β
i+1 ,γ
i+1 )から各J1軸31〜J7軸37の角度(θ
1,θ
2,θ
3,θ
4,θ
5,θ
6,θ
7)を算出して,記憶部12に記憶させる。
次に,前記ステップS123以降と同様の処理を実行する。ここでは,速度抑制処理が必要であると判別され(S13;YES),J6軸36の速度が許容範囲外であるか又は,J6軸36の速度抑制処理中を示すフラグが立っている場合(ステップS201;J6軸が範囲外)に該当しているものとする。ステップS211において,J6軸36の角度の候補が算出されたものとする。
【0115】
次に,前記ステップS212において,主制御部11は算出された次の補間点におけるJ6軸36の角度の各候補に対応する他の駆動軸J1軸31〜J5軸35,J7軸37の角度を算出する。例えば,J6軸36の角度の候補(θ
6a ,θ
6b ,θ
6c )毎に,前記ステップS122において算出された次の補間点P
i+1 のエンドエフェクタ39の位置(X
i+1,Y
i+1 ,Z
i+1 )と,第1関節駆動系のJ4軸34,J5軸35の角度(θ
4,θ
5)と用いて,第2関節駆動系のJ1軸31〜J3軸33,J7軸37の角度(θ
1,θ
2,θ
3,θ
7)を再算出する。
(1)候補θ
6a に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4,θ
5,θ
6a ]から[θ
1a ,θ
2a,θ
3a ,θ
4,θ
5,θ
6a ,θ
7]を算出する。
(2)候補θ
6b に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4,θ
5,θ
6b ]から[θ
1b ,θ
2b,θ
3b ,θ
4,θ
5,θ
6b ,θ
7]を算出する。
(3)候補θ
6c に対して,[X
i+1 ,Y
i+1 ,Z
i+1 ,θ
4,θ
5,θ
6c ]から[θ
1c ,θ
2c,θ
3c ,θ
4,θ
5,θ
6c ,θ
7]を算出する。
【0116】
次に,前記ステップS213において,主制御部11は算出された特異点を回避する系の次の補間点における前記溶接線座標系のエンドエフェクタ39の姿勢を示すデータの各成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rz)を算出する。
例えば,上記の(1)〜(3)の候補θ6a 〜θ6c に対して,
(1’)[θ
1a ,θ
2a ,θ
3a ,θ
4,θ
5,θ
6a ,θ
7]から[R
xa ,R
ya ,R
za ]を算出する。
(2’)[θ
1b ,θ
2b ,θ
3b ,θ
4,θ
5,θ
6b ,θ
7]から[R
xb ,R
yb ,R
zb ]を算出する。
(3’)[θ
1c ,θ
2c ,θ
3c ,θ
4,θ
5,θ
6c ,θ
7]から[R
xc ,R
yc ,R
zc ]を算出する。
【0117】
次に,ステップS214において,主制御部11は算出された特異点を経由する系の次の補間点P
i+1 における前記溶接線座標系のエンドエフェクタ39の姿勢を示すデータの各成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rz)を算出する。
続いて,前記ステップS215以降の処理を実行する。尚,実施形態と同様に,速度が許容範囲外と判別された各駆動軸に対応して,ステップS211〜S216の代わりに,ステップS221〜S226若しくはステップS231〜S236を実行する。
【0118】
以上に示した制御方法により,第2関節駆動系の軸が4軸あるマニピュレータ本体30Aを備えた多関節型ロボットX2の主制御部11が中心となって,抑制するための重み付けが大きい特定成分(トーチ傾斜角Rx,トーチ前進角Ry,トーチ回転角Rzのいずれか)の変動を抑えつつ特異点を回避してエンドエフェクタ39の位置及び姿勢を作動させ,本来の教示ポイントに基づく補間点を大きく外れることがなく,且つエンドエフェクタ39の移動速度を変更せずに全ての軸の速度が許容範囲内に入る作業軌道を得ることができる。
【0119】
このように実施例4の制御方法は,補間点Piにおける位置及び姿勢(Xi,Yi,Zi,αi,βi,γi)から第1関節駆動系の各軸の角度(θ
4,θ
5,θ
6)を逆運動学問題の解として得られ,且つ,補間点Piにおける位置及び第1関節駆動系の各軸の角度(X
i,Y
i,Z
i,θ
4,θ
5,θ
6)から第2関節駆動系の各軸の角度(θ
1,θ
2,θ
3,θ
7)を逆運動学問題の解として得られる多数関節軸を備えたマニピュレータの制御に有用である。
【0120】
そのため,上述した6軸,7軸のマニピュレータを備えた多関節型ロボットに限らず,それ以上の軸を備えた多関節型ロボットにも適用することができる。
【実施例5】
【0121】
また,多関節型ロボットXの制御部10は,専用のシステムによらず,
図29に示されるネットワークに接続された通常のコンピュータシステムYを用いて実現可能である。
図29のコンピュータシステムYは,例えば,主制御部11,記憶部12,外記憶部103,入出力部104,表示部105,送信部106,内部バス109を備えている。主制御部11はCPU(Central Processing Unit)を含み,記憶部12はRAM(Random Access Memory)等を含む。主制御部11は,記憶部12に記憶されているプログラムを実行し,多関節型ロボットXの制御装置である制御部10を実現する。
【0122】
例えば,前記の処理を実行するためのプログラムを,コンピュータが読み取り可能な記録媒体(フレキシブルディスク,CD−ROM,DVD−ROM等)に格納して配布し,当該プログラムをコンピュータにインストールすることにより,前記の処理を実行する多関節型ロボットXの制御部10を構成してもよい。また,インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該プログラムを格納しておき,通常のコンピュータシステムがダウンロード等することで多関節型ロボットXの制御部10を構成してもよい。
【0123】
以上,本発明の実施の形態について説明したが,設計上の都合やその他の要因によって必要となる様々な修正や組み合わせは,請求項に記載されている発明や発明の実施の形態に記載されている具体例に対応する発明の範囲に含まれると理解されるべきである。
上述した実施形態では、例えば、第1関節駆動系のJ4軸34やJ6軸36の一方又は両方の速度や加速度が許容範囲外とならないように、J5軸35の特異点を回避するという特異点回避の処理を行っている。ここで、特異点回避の処理を行っていることを外部に報知する手段を多関節型ロボットに設けてもよい。
【0124】
具体的には、
図5に示す如く特異点回避のための処理として速度抑制処理を行っているとき、
図30に示すように、特異点回避の処理を行っていることを示す「特異点回避中」を、操作部21(教示ペンダント)の表示画面Mに表示する。特異点回避の処理を行っていることを示す表示は、「特異点回避中」に限定されず、特異点回避の処理が行われていることが分かる表現であればどのような表現であってもよい。
【0125】
このように、特異点回避中であることを表示することによって、マニピュレータ本体30が特異点回避中の状態(回避溶接状態)であるか、特異点回避中ではない状態(通常溶接状態)であるかをオペレータが溶接中に把握することができる。そのため、例えば、作業対象物(材料)の溶接後に品質検査を行う場合、回避溶接状態で溶接した箇所を注視して検査することができ、この検査結果に基づいて、回避溶接状態で溶接を行った時の溶接条件を適切に変更することができる。また、例えば、回避溶接状態におけるマニピュレータ本体30の全体の動きを、オペレータが目視などで監視することもでき、この監視に基づいて、次の溶接作業などで、再度、マニピュレータ本体30を動かすときに、マニピュレータ本体30の全体の動作を見直すこともできる。
【0126】
なお、「特異点回避中」の表示の他に、処理プログラムが分かるように処理プログラムの内容(例えば、再生中プログラムの番号)を表示画面Mに表示したり、処理プログラムを実行している時間(再生時間)、エンドエフェクタ39の動き(例えば、直線移動)を表示画面Mに表示してもよい。さらに、予め教示されたトーチの情報(例えば、トーチ傾斜角、トーチ前進角、トーチ回転角など)と、現在のトーチの情報とを表示画面Mに表示してもよい。
【0127】
これによれば、「特異点回避中」におけるマニピュレータ本体30の詳しい状態を把握することができる。
上述した例では、特異点回避の処理を行っていることを表示画面Mに表示させているが、これに代えて、特異点回避を行っていることをスピーカ等によって音で知らせてもよいし、ランプなどの点灯や点滅など光で知らせてもよい。また、特異点回避を行っていることは、多関節型ロボットの教示ペンダント21とは別の外部の表示装置に表示してもよい。
【0128】
また、「特異点回避中」の時間を制御部10の記憶部12などに記憶してもよい。そして、例えば、溶接終了後に操作部21(教示ペンダント)の表示画面Mに特異点回避中の時間履歴を表示し、オペレータなどが特異点回避中の時間履歴を確認できるようにしてもよい。