Bye Bye Moore

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

pybulletをJupyter Notebookでつかう その2:ロボットアームを動かす

実際のところ

import pybullet as p
import time
import pybullet_data

# GUIモードでpybulletを起動
p.connect(p.GUI)

# デフォルトのデータパスを設定
p.setAdditionalSearchPath(pybullet_data.getDataPath())

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

# 平面の読み込み
planeId = p.loadURDF("plane.urdf")

# xArm 7のURDFファイルの読み込み(xArm 7のURDFパスを指定)
xarm = p.loadURDF("/path/to/xarm7.urdf", useFixedBase=True)

# 第一軸と第二軸を回すための関節インデックスを特定
# これはURDFファイルの構造に依存するため、ファイルを確認して適切なインデックスを見つける必要があります
# 例として、0と1のインデックスを使用しますが、これは仮の値です
joint1 = 0
joint2 = 1

# シミュレーションを実行
for i in range (10000):
    # 第一軸と第二軸に対して回転角度を設定
    p.setJointMotorControl2(bodyUniqueId=xarm,
                            jointIndex=joint1,
                            controlMode=p.POSITION_CONTROL,
                            targetPosition=0.5 * p.sin(i * 0.01),
                            force=500)
    
    p.setJointMotorControl2(bodyUniqueId=xarm,
                            jointIndex=joint2,
                            controlMode=p.POSITION_CONTROL,
                            targetPosition=0.5 * p.cos(i * 0.01),
                            force=500)
    
    # 1ステップシミュレーションを実行
    p.stepSimulation()
    time.sleep(1./240.)  # シミュレーション速度 240Hz

# シミュレーションの終了
p.disconnect()