はじめに
私がロボットに関して興味を持っており,ロボットの動かし方を学んだため,本記事にまとめる.
ロボットに関しての理論や実装をWebサイトで探していたが,見つけることができなかったため,自作しようと考えた.
また,私が学生時代にロボットの経路生成に関して研究をしており,経路生成を実施する前に,ロボットの動かし方を理解するのが難しかった経験をしたため,記事を投稿しようと思った.
ロボットを動かすために,三角関数(sin, cos, tan)を使用する.以下サイトはわかりやすいです.
本記事に記載すること
- 2軸ロボットアームの動かし方をまとめる
- 3軸ロボットアームの動かし方をまとめる
- 6軸ロボットアームの動かし方をまとめる
- 私が作成したロボットの動かし方に関する記事の概要およびリンクと将来作成したい記事をまとめる
本記事では記載できないこと (将来作成したい記事)
- 冗長ロボット (手先の位置・姿勢の次元数よりも関節数が多いロボットを指す)
- 移動ロボット (具体例:お掃除ロボット)
- ヒューマノイドロボットなど
- Unity (ゲームエンジン) によるロボット制御
- ROS (ロボットを動かすプラットフォーム) によるロボット制御
経路生成手法(RRT)のアルゴリズム
ロボットと組み合わせる経路生成手法に関しては,本記事ではなく下記リンク先でまとめた.
2軸ロボットアームに関して
2軸ロボットアームに関しての動かし方をまとめる.
下図のような2軸ロボットアームを想定している.
リンク1はz軸に$\theta_{1}$回転し,リンク2はz軸に$\theta_{2}$回転する,2軸ロボットアームを考えている (z軸とは,下図のx軸とy軸との直角な方向であり,見ている図はz軸から見ている図である).
$\theta_{1} = 0$かつ$\theta_{2} = 0$の時,ロボットの手先位置は$(x, y ) = (l_{1} + l_{2}, 0)$となる.

2軸ロボットアームの動かし方に関する記事の概要およびリンク
記事に関しては,可視化ツールによって,大きく下記の2グループに分けることができる.
- グループ1:matplotlib (Python)
- グループ2:PyBullet (Pythonの物理シミュレータ)
matplotlibによる記事の概要およびリンク
可視化ツールが matplotlib による,2軸ロボットアームの動かし方に関する記事を下記にまとめる.
PyBullet (Pythonの物理シミュレータ) による記事の概要およびリンク
可視化ツールが PyBullet (Pythonの物理シミュレータ) による,2軸ロボットアームの動かし方に関する記事を下記にまとめる.
3軸ロボットアームに関して
3軸ロボットアームに関しての動かし方をまとめる.
下図のような3軸ロボットアームを想定している.
$l_{1}$はリンク1の長さ[m],$l_{2}$はリンク2の長さ[m],$l_{3}$はリンク3の長さ[m]です.
$\theta_{1}$は関節1の角度[rad]であり,z軸方向に回転する.
$\theta_{2}$は関節2の角度[rad]であり,y軸方向に回転する.
$\theta_{3}$は関節3の角度[rad]であり,y軸方向に回転する.
$\theta_{1} = 0$かつ$\theta_{2} = 0$かつ$\theta_{3} = 0$の時,ロボットの手先位置は$(x, y, z) = (l_{2} + l_{3}, 0, l_{1})$となる.

3軸ロボットアームの動かし方に関する記事の概要およびリンク
記事に関しては,可視化ツールによって,大きく下記の2グループに分けることができる.
- グループ1:matplotlib (Python)
- グループ2:PyBullet (Pythonの物理シミュレータ)
matplotlibによる記事の概要およびリンク
可視化ツールが matplotlib による,3軸ロボットアームの動かし方に関する記事を下記にまとめる.
PyBullet (Pythonの物理シミュレータ) による記事の概要およびリンク
可視化ツールが PyBullet (Pythonの物理シミュレータ) による,3軸ロボットアームの動かし方に関する記事の概要およびリンクを下記にまとめる.
6軸ロボットアームに関して
6軸ロボットアームに関しての動かし方をまとめる.
下図のような6軸ロボットアームを想定している.
関節$1$はz軸周りに$\theta_{1}$で回転し,関節$2$はy軸周りに$\theta_{2}$で回転し,関節$3$はy軸周りに$\theta_{3}$で回転し,関節$4$はz軸周りに$\theta_{4}$で回転し,関節$5$はy軸周りに$\theta_{5}$で回転し,関節$6$はz軸周りに$\theta_{6}$で回転する.

関節$1$ ~ $6$全部が角度$0[rad]$の時は,下図のようになる6軸ロボットアームを考える.
(全関節の座標系がワールド座標系と同じになる)

6軸ロボットアームの動かし方に関する記事の概要およびリンク
記事に関しては,可視化ツールによって,大きく下記の2グループに分けることができる.
- グループ1:matplotlib (Python)
- グループ2:PyBullet (Pythonの物理シミュレータ)
matplotlibによる記事の概要およびリンク
可視化ツールが matplotlib による,6軸ロボットアームの動かし方に関する記事の概要およびリンクを下記にまとめる.
PyBullet (Pythonの物理シミュレータ) による記事の概要およびリンク
可視化ツールが PyBullet (Pythonの物理シミュレータ) による,6軸ロボットアームの動かし方に関する記事の概要およびリンクを下記にまとめる.
将来作成したい記事
将来作成したい記事を下表にまとめる.
| 将来作成したい記事の内容 |
|---|
| ROS(ロボットを動かすプラットフォーム)上でロボットを動かす |
| Unity上でロボットを動かす |
| ロボット * 機械学習 |
| 冗長ロボット(手先の位置・姿勢の次元数よりも関節数が多いロボットを指す)の動かし方 |
| 移動ロボットの動かし方 |
| ヒューマノイドロボットの動かし方 |
おわりに
本記事では,ロボットの動かし方に関する自作記事をまとめた
次記事では,下記内容を実装していきます.
- 本記事の "将来作成したい記事" に記載した記事を作成する
- 機械学習や統計学に関する記事を作成する