0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【Pybulletサンプル解説】シミュレーションを保存し、再生する【commandLogAndPlayback.py】

Posted at

お疲れ様です。秋並です。

Pybullet公式gitリポジトリのサンプルコードを解説するシリーズです(一覧はこちら)。


今回は、commandLogAndPlayback.pyを解説します。(コードのリンクはこちら

本コードを実行すると、シミュレーションをログファイルに保存されます。その後、保存したログファイルを読み込むことでシミュレーションが再度実行されます。

commandLogAndPlayback.gif

使用している機能

本コードは、以下の機能を使用して「シミュレーションをログに保存したのち、ログから再度シミュレーションを実行」しています。

  • シミュレーションのログの保存
  • シミュレーションのログの読み込み

シミュレーションのログの保存

pybulletでは、startStateLogging関数を使用することで「シミュレーションのログ記録の開始」することができます。

logId = pybullet.startStateLogging(logMode, logFile)
  • logMode:モードを指定
    • pybullet.STATE_LOGGING_ALL_COMMANDS:すべてのコマンドを記録するモード
    • logFile:保存するログのファイル名

次に、stopStateLogging関数を使用することで「シミュレーションのログ記録の停止」をすることができます。

pybullet.stopStateLogging(logId)
  • logId:ログのID

シミュレーションのログの読み込み

startStateLogging関数を使用することで「ログを読み込み、シミュレーションを実行」することができます(ログの記録の時と同じ関数を使用します)。

logId = pybullet.startStateLogging(logMode, logFile)
  • logMode:モードを指定
    • pybullet.STATE_REPLAY_ALL_COMMANDS:すべてのコマンドを再生するモード
    • logFile:保存するログのファイル名

コメントをつけたサンプルコード

サンプルコードにコメントをつけたものが以下になります(もともとあった不要と思われるコメント等については削除しています)

import pybullet as p
import time
import pybullet_data

# PybulletをGUIモードで接続
p.connect(p.GUI)

# Pybulletに関するデータのパスを取得
p.setAdditionalSearchPath(pybullet_data.getDataPath())

# ログの記録を開始する
logId = p.startStateLogging(p.STATE_LOGGING_ALL_COMMANDS, "commandLog.bin")

# 床とr2d2を生成
p.loadURDF("plane.urdf")
p.loadURDF("r2d2.urdf", [0, 0, 1])

# ログの記録を停止
p.stopStateLogging(logId)

# シミュレーション空間をリセット
p.resetSimulation()

# ログを読み込みシミュレーションを実行
logId = p.startStateLogging(p.STATE_REPLAY_ALL_COMMANDS, "commandLog.bin")

# Pybulletに接続されている間ループを継続
while (p.isConnected()):
  time.sleep(1. / 240.)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?