Code Monkey home page Code Monkey logo

pybulletrobotics's Introduction

PybulletRobotics

本リポジトリでは、ロボティクスにおける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の基本的な使用方法

以下に示すpybulletを用いたロボティクスの基本的な使用方法を紹介します。

  • 環境の作成
  • urdfファイルからのロボットの読み込み
  • シミュレーションの実行

詳細は「pybullet_basic.ipynb」を参照。

ARマーカーの位置·姿勢の検出

カメラから取得した画像から、ARマーカーの位置と姿勢を検出する方法を紹介します。


また、ARマーカを貼り付けたボックスを作成する方法も紹介します(blenderを使用)。

詳細は「ar_marker_detect.ipynb」を参照。

移動ロボット

基本

移動ロボットの基本的な制御

2輪移動ロボットを移動させるシンプルなコードを紹介します。

詳細は「mobile_robot_basic.ipynb」を参照。

移動ロボットにおけるセンサーの利用

2輪移動ロボットにおける以下のセンサーの利用方法を紹介します。

  • 超音波センサー
  • カメラ
  • LiDAR
  • 落下防止センサー
  • バンパー


超音波センサ


カメラ


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で実装されたロボティクスのアルゴリズムがまとめられたリポジトリです。様々なアルゴリズムが掲載されており、ロボティクスの勉強に最適な神リポジトリです。

筆者作成

pybulletrobotics's People

Contributors

akinami3 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

mertcookimg

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.