本リポジトリでは、ロボティクスにおけるpybulletの基本的な使用方法や、ロボティクスに関連する様々なアルゴリズムをpybulletを用いて実装する方法を紹介します。
pybulletでロボティクスのシミュレーションを実施する際に必要なライブラリをインストールする手順は以下になります。
なお、動作確認した際の各ライブラリのバージョンは、各コマンドの隣にコメントとして記載しています。
動作確認環境:Ubuntu (WSLでも可)
sudo apt updatesudo apt install python3-pippip3 install pybullet # version 3.2.6pip3 install numpy # version 1.24.3pip3 install matplotlib # version 3.5.1pip3 install opencv-contrib-python # version 4.5.4pip install scipy # version 1.11.3pip install ffmpeg-python # version 0.2.0sudo apt install ffmpeg以下に示す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」を参照。
2輪移動ロボットにおけるwheel odometryによる位置推定を行う方法を紹介します。
詳細は「mobile_robot_wheel_odometry.ipynb」を参照。
2輪移動ロボットにおけるparticle filterによる位置推定を行う方法を紹介します。
詳細は、「mobile_robot_particle_filter.ipynb」を参照。
2輪移動ロボットにおける拡張カルマンフィルタによる位置推定を行う方法を紹介します。
(赤点が動作モデルのみによる推定位置、緑がEKFによる推定位置)
詳細は「mobile_robot_extended_kalman_filter.ipynb」を参照。
2輪移動ロボットにおけるA*によるグローバルパスプランニングを行う方法を紹介します。
詳細は、「mobile_robot_global_path_planning_a_star.ipynb」を参照。
2輪移動ロボットにおけるDynamic Window Approach(DWA)によるローカルパスプランニングを行う方法を紹介します。
詳細は「mobile_robot_local_path_planning_dwa.ipynb」を参照。
2輪移動ロボットにおけるQ学習によるライントレースを行う方法を紹介します。
詳細は「mobile_robot_q_learning.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」を参照。
解析的解法を用いたロボットアームの逆運動学を紹介します。
詳細は「robot_arm_analytical_inverse_kinematics.ipynb」を参照。
数値的解法を用いたロボットアームの逆運動学を紹介します。
詳細は「robot_arm_jacobian_inverse_kinematics.ipynb」を参照。
eye to hand による物体位置の推定を行う方法を紹介します。
詳細は「robot_arm_eye_to_hand.ipynb」を参照。
eye in hand による物体位置の推定を行う方法を紹介します。
詳細は「robot_arm_eye_in_hand.ipynb」を参照。
画像ベースのビジュアルサーボを行う方法を紹介します。
詳細は「robot_arm_image_based_visual_servo.ipynb」を参照。
- PID制御
- コンフィギュレーション空間を用いた動作計画
- 力制御
- 位置と力のハイブリッド制御
- コンプライアンス制御
- pybullet_quickstart_guide:Pybulletで使用可能な関数がまとめられたスタートガイドです(公式)
- PythonRobotics:Pythonで実装されたロボティクスのアルゴリズムがまとめられたリポジトリです。様々なアルゴリズムが掲載されており、ロボティクスの勉強に最適な神リポジトリです。
- pybulletの公式サンプル129個を全部解説する - Qiita:pybulletの公式サンプル129個を解説(する予定の)記事です
- 【図解】ロボティクスの辞書【python】:ロボティクスに関する技術を解説した記事の、まとめ記事です






























