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サンプル解説】光源の位置を変化させる【configureDebugVisualizer.py】

Posted at

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

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


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

本コードを実行すると、時間とともに光源位置を変化する様子が可視化されます。

configureDebugVisualizer.gif

使用している機能

本コードは、以下の機能を使用して「光源位置を変化させる」ことができます。

  • 光源位置を変化させる

configureDebugVisualizer関数を使用することで、シミュレーションの見た目に関する設定を変更することができます。

pybullet.configureDebugVisualizer(lightPosition=[x, y, z])
  • lightPosition:光源の位置([x,y,z])

サンプルコードでは、ステップごとに光源位置を変化させています。

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

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

import pybullet as p
import math
import time
import pybullet_data

# 1ステップに経過する時間を設定
dt = 1./240.

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

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

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

# 床を生成
p.loadURDF("plane.urdf")

# 重力を設定
p.setGravity(0,0,-10)

# 光源が移動する円軌道の半径
radius=5

# 経過時刻を0で初期化
t = 0

# 影の描画に関する設定
p.configureDebugVisualizer(shadowMapWorldSize=5)
p.configureDebugVisualizer(shadowMapResolution=8192)

while (1):

  t+=dt

  # 光源の位置を設定
  p.configureDebugVisualizer(lightPosition=[radius*math.sin(t),radius*math.cos(t),3])

  # シミュレーションを1時刻分進める
  p.stepSimulation()

  time.sleep(dt)
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?