Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

pybulletをJupyter Notebookでつかう その4:addUserDebugParameter

ipywidgetsに似たような機能としてaddUserDebugParameterというのもあります

実際のところ

メソッドの説明

paramId = p.addUserDebugParameter(paramName, rangeMin, rangeMax, startValue)

スクリプト

import pybullet as p
import time

# PyBulletのGUIモードで接続
p.connect(p.GUI)

# 重力の設定
p.setGravity(0, 0, -9.8)

# 環境のロード
planeId = p.loadURDF("plane.urdf")

# xArm 7ロボットアームのロード(正確なURDFファイルパスを指定してください)
robotId = p.loadURDF("/path/to/xarm7.urdf", useFixedBase=True)

# 第一関節と第二関節の制御パラメータ用のスライダーを追加
paramId1 = p.addUserDebugParameter("joint1", -3.14, 3.14, 0)
paramId2 = p.addUserDebugParameter("joint2", -3.14, 3.14, 0)

# シミュレーションループ
while True:
    # スライダーの現在値を読み取る
    jointPos1 = p.readUserDebugParameter(paramId1)
    jointPos2 = p.readUserDebugParameter(paramId2)
    
    # 第一関節と第二関節を指定した位置に制御
    p.setJointMotorControl2(robotId, 0, p.POSITION_CONTROL, targetPosition=jointPos1)
    p.setJointMotorControl2(robotId, 1, p.POSITION_CONTROL, targetPosition=jointPos2)
    
    # 1ステップシミュレーションを実行
    p.stepSimulation()
    time.sleep(1./240.)