~ ロボットの基本操作 ~
大阪大学 中島優作
このスライドと教科書の併用をおススメします
産業用ロボットtheビギニング - 産業用ロボットの基礎的な情報を網羅
イラストで学ぶロボット工学 - 学部生向けの教科書, 本格的な制御の本だが読みやすい
ティーチングペンダント
プログラミング
→ 全画面表示
この後の説明はアプリを見ながら行います
①〜③をアプリで順に試していきます
出典: Y. Nakajima et al., "Robotic Powder Grinding with a Soft Jig for Laboratory Automation in Material Science," IROS 2022, Kyoto, Japan, pp. 2320-2326, doi: 10.1109/IROS47612.2022.9981081
例)TCPを乳棒とヘラの先端に設定
場面によってTCPを切り替えることで最小限のプログラムの変更で複数のツールが使える
設定するのは質量と重心位置(フランジ基準)
重心設定が役に立つ場面
関節それぞれの角度を指定
ロボットの根本を基準にTCPの座標を指定
現在のTCPの座標系を基準に次のTCPの座標系を指定
座標系による動きの違いを確認↓
座標系の表現↓
姿勢(pose) = 位置 + 向きで表すことが多い
基本はXYZの座標系に対する位置と向きを考える
→ 全画面表示
movej()
movel()
movec()
詳細は以下↓
movej)
movel)
movec)| 分類 | 関数 | 位置の与え方 |
|---|---|---|
| PTP | movej(q, a, v, t, r) | 関節角 [j0..j5] |
| LIN | movel(pose, a, v, t, r) | TCP姿勢 p[x,y,z,rx,ry,rz] |
| CIRC | movec(pose_via, pose_to, a, v, r) | 経由点+終点のTCP姿勢 |
movej([0, -1.57, 1.57, 0, 1.57, 0], a=1.4, v=1.05)
movel(p[0.3, -0.2, 0.25, 0, 3.14, 0], a=1.2, v=0.25)
movec(p[0.35, -0.1, 0.25, 0, 3.14, 0], # 経由点
p[0.3, 0.0, 0.25, 0, 3.14, 0], # 終点
a=1.2, v=0.25)
※ movej に pose を渡すと内部で逆運動学を解き、関節空間で補間します
アプリの「ブレンド半径」タブで r を変えて試してみましょう
| メーカー | 呼び方 | 指定する量 | 例 |
|---|---|---|---|
| UR | blend radius | 丸めの半径 [mm] | r=10mm |
| ABB | zone data(fly-by point) | 教示点からのゾーン半径 [mm] | z10 |
| KUKA | approximate positioning | 距離 / 速度 / 時間から選択 | mm, %, s |
| FANUC | termination type CNT | 経路に対する割合(無次元) | CNT100 |
| 安川 | PL(position level) | 離散レベル 0〜8 | PL=5 |
Python ライブラリ ur_rtde で、前の URScript と同じ動作を書く
位置がズレる原因↓
毎回同じだけずれる
→ 校正・ティーチングで吸収できる
校正では取れない
同じ点でも指令の出し方で変わる
絶対誤差の大きさを決めるのは①
実務で悩まされるのは②と③
どういった工夫があるのか↓
→ 全画面表示
シミュレーションはなぜ重要か↓
シミュレーションで未然に防げる
※Universal RobotはUR Studioが利用可能
※RoboDKは位置制御にしか使えない点に注意
具体例↓
ロボットアームの選び方
ここでは協働ロボットを対象にしています
位置(3次元) + 向き(3次元) → 姿勢(6次元) = 6軸
4軸ロボットの例
常に下向きという制限
ピックアンドプレースならこれでok
6軸ロボットの例
位置も向き自由
色々な作業に
高精度・高信頼性
400万円〜
人との協働・安全
300万円〜
コスト重視
50万円〜
学習・原理理解
10万円〜
→ 全画面表示
→ 全画面表示