-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbasic_robot2.py
executable file
·62 lines (49 loc) · 1.95 KB
/
basic_robot2.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import sapien.core as sapien
from sapien.utils.viewer import Viewer
def demo(fix_root_link, balance_passive_force):
engine = sapien.Engine()
renderer = sapien.SapienRenderer()
engine.set_renderer(renderer)
scene_config = sapien.SceneConfig()
scene = engine.create_scene(scene_config)
scene.set_timestep(1 / 240.0)
scene.add_ground(0)
scene.set_ambient_light([0.5, 0.5, 0.5])
scene.add_directional_light([0, 1, -1], [0.5, 0.5, 0.5])
viewer = Viewer(renderer)
viewer.set_scene(scene)
viewer.set_camera_xyz(x=-2, y=0, z=1)
viewer.set_camera_rpy(r=0, p=-0.3, y=0)
# Load URDF
loader: sapien.URDFLoader = scene.create_urdf_loader()
loader.fix_root_link = fix_root_link
robot: sapien.Articulation = loader.load("tinker_display.urdf") #"../assets/robot/jaco2/jaco2.urdf") _copy
robot.set_root_pose(sapien.Pose([0, 0, 0], [1, 0, 0, 0]))
# Set initial joint positions
arm_init_qpos = [4.71, 2.84, 0, 0.75, 4.62, 4.48 ]#, 4.88] #
#gripper_init_qpos = [0, 0 ,0, 0, 0, 0, 0, 0,0 ,0,0]#]\
gripper_init_qpos =[0,0,0,0,0,0,0,0]
#print(gripper_init_qpos)
init_qpos = arm_init_qpos + gripper_init_qpos
robot.set_qpos(init_qpos)
while not viewer.closed:
for _ in range(4): # render every 4 steps
if balance_passive_force:
qf = robot.compute_passive_force(
gravity=True,
coriolis_and_centrifugal=True,
)
robot.set_qf(qf)
scene.step()
scene.update_render()
viewer.render()
def main():
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--fix-root-link', action='store_true')
parser.add_argument('--balance-passive-force', action='store_true')
args = parser.parse_args()
demo(fix_root_link=True,#args.fix_root_link,
balance_passive_force=True)#args.balance_passive_force)
if __name__ == '__main__':
main()