本リポジトリでは、ロボティクスにおけるpybulletの基本的な使用方法や、ロボティクスに関連する様々なアルゴリズムをpybulletを用いて実装する方法を紹介します。
pybulletでロボティクスのシミュレーションを実施する際に必要なライブラリをインストールする手順は以下になります。
なお、動作確認した際の各ライブラリのバージョンは、各コマンドの隣にコメントとして記載しています。
動作確認環境:Ubuntu (WSLでも可)
sudo apt update
sudo apt install python3-pip
pip3 install pybullet # version 3.2.6
pip3 install numpy # version 1.24.3
pip3 install matplotlib # version 3.5.1
pip3 install opencv-contrib-python # version 4.5.4
pip install scipy # version 1.11.3
以下に示すpybulletを用いたロボティクスの基本的な使用方法を紹介します。
- 環境の作成
- urdfファイルからのロボットの読み込み
- シミュレーションの実行
詳細は「pybullet_basic.ipynb」を参照。
カメラから取得した画像から、ARマーカーの位置と姿勢を検出する方法を紹介します。
また、ARマーカを貼り付けたボックスを作成する方法も紹介します(blenderを使用)。
詳細は「ar_marker_detect.ipynb」を参照。
2輪移動ロボットを移動させるシンプルなコードを紹介します。
詳細は「mobile_robot_basic.ipynb」を参照。
2輪移動ロボットにおける以下のセンサーの利用方法を紹介します。
- 超音波センサー
- カメラ
- LiDAR
- 落下防止センサー
- バンパー
詳細は「mobile_robot_sensor.ipynb」を参照。
2輪の輪動ロボットのボトムカメラを使用してライントレースを行う方法を紹介します。
詳細は「mobile_robot_line_trace.ipynb」を参照。
- 経路計画
- オドメトリ
- カルマンフィルタ
- パーティクルフィルタ
- SLAM
- 教師あり学習でライントレース
- 強化学習(Q学習)
2軸ロボットアームを制御(位置制御、速度制御、トルク制御)するシンプルなコードを紹介します。
位置制御
速度制御
トルク制御
詳細は「robot_arm_basic.ipynb」を参照。
2軸ロボットアームにおける以下のセンサーの利用方法を紹介します。
- 手先のカメラ
- 手先の力センサー
手先のカメラ
手先の力センサー
詳細は「robot_arm_sensor.ipynb」を参照。
ロボットアームと物体の衝突判定を行う方法を紹介します。
詳細は「robot_arm_collision_check.ipynb」を参照。
三角関数を用いたロボットアームの順**学を紹介します。
詳細は「robot_arm_trigonometric_forward_kinematics.ipynb」を参照。
同次変換行列を用いたロボットアームの順**学を紹介します。
詳細は「robot_arm_homogeneous_matrix_forward_kinematics.ipynb」を参照。
後日追記予定
後日追記予定
- PID制御
- タスク空間における動作計画
- コンフィギュレーション空間を用いた動作計画
- 力制御
- 位置と力のハイブリッド制御
- コンプライアンス制御
- pybullet_quickstart_guide:Pybulletで使用可能な関数がまとめられたスタートガイドです(公式)
- PythonRobotics:Pythonで実装されたロボティクスのアルゴリズムがまとめられたリポジトリです。様々なアルゴリズムが掲載されており、ロボティクスの勉強に最適な神リポジトリです。
- pybulletの公式サンプル129個を全部解説する - Qiita:pybulletの公式サンプル129個を解説(する予定の)記事です
- 【図解】ロボティクスの辞書【python】:ロボティクスに関する技術を解説した記事の、まとめ記事です