├── img
├── depth.png
├── img_test
│ ├── table_mask.png
│ └── table_depth_3c.png
└── img_urdf
│ ├── camera_rgb.mat
│ ├── camera_rgb.png
│ ├── camera_depth.mat
│ ├── camera_depth.png
│ ├── camera_mask.mat
│ ├── camera_depth_rev.mat
│ └── camera_depth_rev.png
├── myModel
├── tray
│ ├── tray.stl
│ ├── tray.urdf
│ └── tray_textured.obj
├── traybox
│ ├── tray_textured.mtl
│ ├── traybox.urdf
│ └── tray_textured.obj
└── objs
│ └── cube_22.obj
├── franka_panda
├── meshes
│ ├── finger.blend
│ ├── finger.blend1
│ ├── gripper.blend
│ ├── visual
│ │ ├── colors.png
│ │ ├── link2.mtl
│ │ ├── link1.mtl
│ │ ├── finger.mtl
│ │ ├── finger_1.mtl
│ │ ├── link5.mtl
│ │ ├── link4.mtl
│ │ ├── link3.mtl
│ │ ├── hand.mtl
│ │ └── link6.mtl
│ └── collision
│ │ ├── finger_1.mtl
│ │ ├── link6.mtl
│ │ ├── finger_1.obj
│ │ ├── finger.obj
│ │ ├── link0.obj
│ │ ├── hand.obj
│ │ ├── link2.obj
│ │ └── link3.obj
├── LICENSE.txt
├── panda.urdf
└── panda_1.urdf
├── README.md
├── main_sim_grasp_urdf.py
├── tool.py
├── mesh.py
├── camera.py
├── panda_sim_grasp.py
├── simEnv.py
└── grasp.py
/img/depth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/depth.png
--------------------------------------------------------------------------------
/myModel/tray/tray.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/myModel/tray/tray.stl
--------------------------------------------------------------------------------
/img/img_test/table_mask.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/img_test/table_mask.png
--------------------------------------------------------------------------------
/img/img_urdf/camera_rgb.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/img_urdf/camera_rgb.mat
--------------------------------------------------------------------------------
/img/img_urdf/camera_rgb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/img_urdf/camera_rgb.png
--------------------------------------------------------------------------------
/img/img_urdf/camera_depth.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/img_urdf/camera_depth.mat
--------------------------------------------------------------------------------
/img/img_urdf/camera_depth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/img_urdf/camera_depth.png
--------------------------------------------------------------------------------
/img/img_urdf/camera_mask.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/img_urdf/camera_mask.mat
--------------------------------------------------------------------------------
/franka_panda/meshes/finger.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/franka_panda/meshes/finger.blend
--------------------------------------------------------------------------------
/img/img_test/table_depth_3c.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/img_test/table_depth_3c.png
--------------------------------------------------------------------------------
/franka_panda/meshes/finger.blend1:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/franka_panda/meshes/finger.blend1
--------------------------------------------------------------------------------
/franka_panda/meshes/gripper.blend:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/franka_panda/meshes/gripper.blend
--------------------------------------------------------------------------------
/img/img_urdf/camera_depth_rev.mat:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/img_urdf/camera_depth_rev.mat
--------------------------------------------------------------------------------
/img/img_urdf/camera_depth_rev.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/img/img_urdf/camera_depth_rev.png
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/colors.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/dexin-wang/panda_grasp_sim_2/HEAD/franka_panda/meshes/visual/colors.png
--------------------------------------------------------------------------------
/myModel/traybox/tray_textured.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'None'
2 | # Material Count: 1
3 |
4 | newmtl None
5 | Ns 0.000000
6 | Ka 0.000000 0.000000 0.000000
7 | Kd 0.800000 0.800000 0.800000
8 | Ks 0.800000 0.800000 0.800000
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 | map_Kd tray.jpg
14 |
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/link2.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'link3.blend'
2 | # Material Count: 1
3 |
4 | newmtl Part__Feature024
5 | Ns -1.960784
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 1.000000 1.000000 1.000000
8 | Ks 0.125000 0.125000 0.125000
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 | map_Kd colors.png
14 |
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/link1.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'link2.blend'
2 | # Material Count: 1
3 |
4 | newmtl Part__Feature_001
5 | Ns -1.960784
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 1.000000 1.000000 1.000000
8 | Ks 0.062500 0.062500 0.062500
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 | map_Kd colors.png
14 |
--------------------------------------------------------------------------------
/franka_panda/meshes/collision/finger_1.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'finger.blend'
2 | # Material Count: 2
3 |
4 | newmtl DefaultMaterial.001
5 | Ns 225.000000
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 0.800000 0.800000 0.800000
8 | Ks 0.500000 0.500000 0.500000
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.450000
11 | d 1.000000
12 | illum 2
13 |
14 | newmtl None
15 | Ns 500
16 | Ka 0.8 0.8 0.8
17 | Kd 0.8 0.8 0.8
18 | Ks 0.8 0.8 0.8
19 | d 1
20 | illum 2
21 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # panda_grasp_sim_2
2 |
3 | 这个源码的完整版是用来测试我的抓取检测算法,由于还没有发表,所以删除了算法部分,剩下的程序也是可以运行的。
4 | 完整版运行视频:https://www.bilibili.com/video/BV12a4y1n7S9
5 |
6 | 依赖包:
7 | numpy
8 | pybullet
9 |
10 |
11 | 通过以下命令运行:
12 | ```
13 | python3 main_sim_grasp_urdf.py
14 | ```
15 |
16 | 操作说明在运行脚本里写了。
17 |
18 | 运行程序需要的obj和urdf可以在我的google网盘中下载: https://drive.google.com/drive/folders/1wthmGOocuzXH5bAyxm3zEzwB4WikEfVI?usp=sharing
19 |
20 | 任何问题可以联系dexinwang@mail.sdu.edu.cn
21 |
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/finger.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'link2.blend'
2 | # Material Count: 2
3 |
4 | newmtl Part__Feature001_006.001
5 | Ns -1.960784
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 0.901961 0.921569 0.929412
8 | Ks 0.250000 0.250000 0.250000
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 | map_Kd colors.png
14 |
15 | newmtl Part__Feature_007.001
16 | Ns -1.960784
17 | Ka 1.000000 1.000000 1.000000
18 | Kd 0.250980 0.250980 0.250980
19 | Ks 0.250000 0.250000 0.250000
20 | Ke 0.000000 0.000000 0.000000
21 | Ni 1.000000
22 | d 1.000000
23 | illum 2
24 | map_Kd colors.png
25 |
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/finger_1.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'finger.blend'
2 | # Material Count: 2
3 |
4 | newmtl Part__Feature001_006.001
5 | Ns 0.000000
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 0.901961 0.921569 0.929412
8 | Ks 0.250000 0.250000 0.250000
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 | map_Kd colors.png
14 |
15 | newmtl Part__Feature_007.001
16 | Ns 0.000000
17 | Ka 1.000000 1.000000 1.000000
18 | Kd 0.250980 0.250980 0.250980
19 | Ks 0.250000 0.250000 0.250000
20 | Ke 0.000000 0.000000 0.000000
21 | Ni 1.000000
22 | d 1.000000
23 | illum 2
24 | map_Kd colors.png
25 |
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/link5.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'None'
2 | # Material Count: 3
3 |
4 | newmtl Part__Feature_002_004_003.002
5 | Ns -1.960784
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 1.000000 1.000000 1.000000
8 | Ks 0.015625 0.015625 0.015625
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 | map_Kd colors.png
14 |
15 | newmtl Shell001_001_001_003.002
16 | Ns -1.960784
17 | Ka 1.000000 1.000000 1.000000
18 | Kd 0.250000 0.250000 0.250000
19 | Ks 0.015625 0.015625 0.015625
20 | Ke 0.000000 0.000000 0.000000
21 | Ni 1.000000
22 | d 1.000000
23 | illum 2
24 | map_Kd colors.png
25 |
26 | newmtl Shell_001_001_003.002
27 | Ns -1.960784
28 | Ka 1.000000 1.000000 1.000000
29 | Kd 1.000000 1.000000 1.000000
30 | Ks 0.015625 0.015625 0.015625
31 | Ke 0.000000 0.000000 0.000000
32 | Ni 1.000000
33 | d 1.000000
34 | illum 2
35 |
--------------------------------------------------------------------------------
/myModel/objs/cube_22.obj:
--------------------------------------------------------------------------------
1 | # Blender v2.91.0 OBJ File: '1.blend'
2 | # www.blender.org
3 | mtllib cube_22.mtl
4 | o Cube
5 | v 1.000000 1.000000 -1.000000
6 | v 1.000000 -1.000000 -1.000000
7 | v 1.000000 1.000000 1.000000
8 | v 1.000000 -1.000000 1.000000
9 | v -1.000000 1.000000 -1.000000
10 | v -1.000000 -1.000000 -1.000000
11 | v -1.000000 1.000000 1.000000
12 | v -1.000000 -1.000000 1.000000
13 | vt 0.625000 0.500000
14 | vt 0.875000 0.500000
15 | vt 0.875000 0.750000
16 | vt 0.625000 0.750000
17 | vt 0.375000 0.750000
18 | vt 0.625000 1.000000
19 | vt 0.375000 1.000000
20 | vt 0.375000 0.000000
21 | vt 0.625000 0.000000
22 | vt 0.625000 0.250000
23 | vt 0.375000 0.250000
24 | vt 0.125000 0.500000
25 | vt 0.375000 0.500000
26 | vt 0.125000 0.750000
27 | vn 0.0000 1.0000 0.0000
28 | vn 0.0000 0.0000 1.0000
29 | vn -1.0000 0.0000 0.0000
30 | vn 0.0000 -1.0000 0.0000
31 | vn 1.0000 0.0000 0.0000
32 | vn 0.0000 0.0000 -1.0000
33 | usemtl Material
34 | s off
35 | f 1/1/1 5/2/1 7/3/1 3/4/1
36 | f 4/5/2 3/4/2 7/6/2 8/7/2
37 | f 8/8/3 7/9/3 5/10/3 6/11/3
38 | f 6/12/4 2/13/4 4/5/4 8/14/4
39 | f 2/13/5 1/1/5 3/4/5 4/5/5
40 | f 6/11/6 5/10/6 1/1/6 2/13/6
41 |
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/link4.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'link4.blend'
2 | # Material Count: 4
3 |
4 | newmtl Part__Feature001_001_003_001.001
5 | Ns -1.960784
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 1.000000 1.000000 1.000000
8 | Ks 0.007812 0.007812 0.007812
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 |
14 | newmtl Part__Feature002_001_003_001.001
15 | Ns -1.960784
16 | Ka 1.000000 1.000000 1.000000
17 | Kd 0.250980 0.250980 0.250980
18 | Ks 0.007812 0.007812 0.007812
19 | Ke 0.000000 0.000000 0.000000
20 | Ni 1.000000
21 | d 1.000000
22 | illum 2
23 | map_Kd colors.png
24 |
25 | newmtl Part__Feature003_001_003_001.001
26 | Ns -1.960784
27 | Ka 1.000000 1.000000 1.000000
28 | Kd 1.000000 1.000000 1.000000
29 | Ks 0.007812 0.007812 0.007812
30 | Ke 0.000000 0.000000 0.000000
31 | Ni 1.000000
32 | d 1.000000
33 | illum 2
34 | map_Kd colors.png
35 |
36 | newmtl Part__Feature_002_003_001.001
37 | Ns -1.960784
38 | Ka 1.000000 1.000000 1.000000
39 | Kd 1.000000 1.000000 1.000000
40 | Ks 0.007812 0.007812 0.007812
41 | Ke 0.000000 0.000000 0.000000
42 | Ni 1.000000
43 | d 1.000000
44 | illum 2
45 | map_Kd colors.png
46 |
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/link3.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'link4.blend'
2 | # Material Count: 4
3 |
4 | newmtl Part__Feature001_010_001_002
5 | Ns -1.960784
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 1.000000 1.000000 1.000000
8 | Ks 0.007812 0.007812 0.007812
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 | map_Kd colors.png
14 |
15 | newmtl Part__Feature002_007_001_002
16 | Ns -1.960784
17 | Ka 1.000000 1.000000 1.000000
18 | Kd 1.000000 1.000000 1.000000
19 | Ks 0.007812 0.007812 0.007812
20 | Ke 0.000000 0.000000 0.000000
21 | Ni 1.000000
22 | d 1.000000
23 | illum 2
24 | map_Kd colors.png
25 |
26 | newmtl Part__Feature003_004_001_002
27 | Ns -1.960784
28 | Ka 1.000000 1.000000 1.000000
29 | Kd 1.000000 1.000000 1.000000
30 | Ks 0.007812 0.007812 0.007812
31 | Ke 0.000000 0.000000 0.000000
32 | Ni 1.000000
33 | d 1.000000
34 | illum 2
35 | map_Kd colors.png
36 |
37 | newmtl Part__Feature_001_001_001_002
38 | Ns -1.960784
39 | Ka 1.000000 1.000000 1.000000
40 | Kd 0.250980 0.250980 0.250980
41 | Ks 0.007812 0.007812 0.007812
42 | Ke 0.000000 0.000000 0.000000
43 | Ni 1.000000
44 | d 1.000000
45 | illum 2
46 | map_Kd colors.png
47 |
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/hand.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'link2.blend'
2 | # Material Count: 5
3 |
4 | newmtl Part__Feature001_008_005.001
5 | Ns -1.960784
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 0.250980 0.250980 0.250980
8 | Ks 0.007812 0.007812 0.007812
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 | map_Kd colors.png
14 |
15 | newmtl Part__Feature002_005_005.001
16 | Ns -1.960784
17 | Ka 1.000000 1.000000 1.000000
18 | Kd 0.901961 0.921569 0.929412
19 | Ks 0.015625 0.015625 0.015625
20 | Ke 0.000000 0.000000 0.000000
21 | Ni 1.000000
22 | d 1.000000
23 | illum 2
24 |
25 | newmtl Part__Feature005_001_005.001
26 | Ns -1.960784
27 | Ka 1.000000 1.000000 1.000000
28 | Kd 1.000000 1.000000 1.000000
29 | Ks 0.015625 0.015625 0.015625
30 | Ke 0.000000 0.000000 0.000000
31 | Ni 1.000000
32 | d 1.000000
33 | illum 2
34 | map_Kd colors.png
35 |
36 | newmtl Part__Feature005_001_005_001.001
37 | Ns -1.960784
38 | Ka 1.000000 1.000000 1.000000
39 | Kd 0.901961 0.921569 0.929412
40 | Ks 0.015625 0.015625 0.015625
41 | Ke 0.000000 0.000000 0.000000
42 | Ni 1.000000
43 | d 1.000000
44 | illum 2
45 | map_Kd colors.png
46 |
47 | newmtl Part__Feature_009_005.001
48 | Ns -1.960784
49 | Ka 1.000000 1.000000 1.000000
50 | Kd 0.250980 0.250980 0.250980
51 | Ks 0.015625 0.015625 0.015625
52 | Ke 0.000000 0.000000 0.000000
53 | Ni 1.000000
54 | d 1.000000
55 | illum 2
56 | map_Kd colors.png
57 |
--------------------------------------------------------------------------------
/myModel/traybox/traybox.urdf:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/myModel/tray/tray.urdf:
--------------------------------------------------------------------------------
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 |
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 |
63 |
64 |
65 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/main_sim_grasp_urdf.py:
--------------------------------------------------------------------------------
1 | """
2 | 用于验证生成的抓取配置标注
3 | 随机放置物体,渲染图像,生成抓取配置,仿真机器人抓取
4 |
5 | 操作步骤:
6 | 1、运行后自动开始加载物体到仿真环境中。
7 | 2、按 1 开始渲染深度图。
8 | 3、等待渲染结束,按 2 开始计算抓取位姿,计算完毕后,自动开始抓取。
9 | 4、按 3 可重新加载物体。
10 | """
11 |
12 | import pybullet as p
13 | import pybullet_data
14 | import time
15 | import math
16 | import cv2
17 | import numpy as np
18 | from simEnv import SimEnv
19 | import panda_sim_grasp as panda_sim
20 |
21 |
22 | GRASP_GAP = 0.005
23 | GRASP_DEPTH = 0.005
24 |
25 | def run():
26 | # 'E:/research/dataset/grasp/my_dense/mesh_database/egad_train_set'
27 | database_path = 'E:/research/dataset/grasp/my_dense/mesh_database/dex-net' # 数据库路径
28 |
29 | cid = p.connect(p.GUI) # 连接服务器
30 | env = SimEnv(p, database_path) # 初始化虚拟环境
31 | # 初始化panda机器人
32 | panda = panda_sim.PandaSimAuto(p, [0, -0.5, 0])
33 |
34 | GRASP_STATE = False
35 | grasp_config = {'x':0, 'y':0, 'z':0.05, 'angle':0, 'width':0.08}
36 | # x y z width的单位是m, angle的单位是弧度
37 | img_path = 'img/img_urdf'
38 |
39 | all_num = 0 # 预设抓取次数
40 | obj_nums = 20 # 每次加载的物体个数
41 | start_idx = 0 # 开始加载的物体id
42 |
43 | idx = start_idx
44 | while True:
45 | # 加载物体
46 | env.loadObjsInURDF(idx, obj_nums)
47 | idx += obj_nums
48 |
49 | while True:
50 | p.stepSimulation()
51 | time.sleep(1./240.)
52 |
53 | # 检测按键
54 | keys = p.getKeyboardEvents()
55 | if ord('1') in keys and keys[ord('1')]&p.KEY_WAS_TRIGGERED:
56 | # 渲染图像
57 | env.renderURDFImage(save_path=img_path)
58 |
59 | if ord('2') in keys and keys[ord('2')]&p.KEY_WAS_TRIGGERED:
60 | # 计算抓取配置
61 | # graspFig = getGrasp(path=img_path)
62 | # print('抓取配置: ', graspFig)
63 | # if graspFig[4] == 0:
64 | # print('>> 无法抓取!')
65 | # continue
66 | # grasp_config['x'], grasp_config['y'], grasp_config['z'], grasp_config['angle'], grasp_config['width'] = graspFig
67 | GRASP_STATE = True
68 |
69 | if GRASP_STATE:
70 | # 机器人抓取
71 | if panda.step([grasp_config['x'], grasp_config['y'], grasp_config['z'] - GRASP_DEPTH], grasp_config['angle'], (grasp_config['width'])/2):
72 | GRASP_STATE = False
73 | all_num += 1
74 | print('>> 抓取完毕: ', all_num)
75 |
76 | # 按3重置环境
77 | if ord('3') in keys and keys[ord('3')]&p.KEY_WAS_TRIGGERED:
78 | env.removeObjsInURDF()
79 | break
80 |
81 |
82 |
83 | if __name__ == "__main__":
84 | run()
--------------------------------------------------------------------------------
/tool.py:
--------------------------------------------------------------------------------
1 | import math
2 | import cv2
3 | import os
4 | import zipfile
5 | import numpy as np
6 |
7 |
8 | def quaternion_to_rotation_matrix(q): # x, y ,z ,w
9 | rot_matrix = np.array(
10 | [[1.0 - 2 * (q[1] * q[1] + q[2] * q[2]), 2 * (q[0] * q[1] - q[3] * q[2]), 2 * (q[3] * q[1] + q[0] * q[2])],
11 | [2 * (q[0] * q[1] + q[3] * q[2]), 1.0 - 2 * (q[0] * q[0] + q[2] * q[2]), 2 * (q[1] * q[2] - q[3] * q[0])],
12 | [2 * (q[0] * q[2] - q[3] * q[1]), 2 * (q[1] * q[2] + q[3] * q[0]), 1.0 - 2 * (q[0] * q[0] + q[1] * q[1])]],
13 | dtype=np.float)
14 | return rot_matrix
15 |
16 |
17 | def getTransfMat(offset, rotate):
18 | """
19 | 将平移向量和旋转矩阵合并为变换矩阵
20 | offset: (x, y, z)
21 | rotate: 旋转矩阵
22 | """
23 | mat = np.array([
24 | [rotate[0, 0], rotate[0, 1], rotate[0, 2], offset[0]],
25 | [rotate[1, 0], rotate[1, 1], rotate[1, 2], offset[1]],
26 | [rotate[2, 0], rotate[2, 1], rotate[2, 2], offset[2]],
27 | [0, 0, 0, 1.]
28 | ])
29 | return mat
30 |
31 | def depth2Gray(im_depth):
32 | """
33 | 将深度图转至8位灰度图
34 | """
35 | # 16位转8位
36 | x_max = np.max(im_depth)
37 | x_min = np.min(im_depth)
38 | if x_max == x_min:
39 | print('图像渲染出错 ...')
40 | raise EOFError
41 |
42 | k = 255 / (x_max - x_min)
43 | b = 255 - k * x_max
44 | return (im_depth * k + b).astype(np.uint8)
45 |
46 | # def resize(img):
47 | # returncv2.resize(img, (1000, 1000))
48 |
49 | def distancePt(pt1, pt2):
50 | """
51 | 计算两点之间的欧氏距离
52 | pt: [row, col] 或 [x, y]
53 | return: float
54 | """
55 | return ((pt1[0] - pt2[0]) ** 2 + (pt1[1] - pt2[1]) ** 2) ** 0.5
56 |
57 | def distancePt3d(pt1, pt2):
58 | """
59 | 计算两点之间的欧氏距离
60 | pt: [x, y, z]
61 | return: float
62 | """
63 | return ((pt1[0] - pt2[0]) ** 2 + (pt1[1] - pt2[1]) ** 2 + (pt1[2] - pt2[2]) ** 2) ** 0.5
64 |
65 |
66 | def calcAngleOfPts(pt1, pt2):
67 | """
68 | 计算从pt1到pt2的逆时针夹角 [0, 2pi)
69 |
70 | pt: [x, y] 二维坐标系中的坐标,不是图像坐标系的坐标
71 |
72 | return: 弧度
73 | """
74 | dy = pt2[1] - pt1[1]
75 | dx = pt2[0] - pt1[0]
76 | return (math.atan2(dy, dx) + 2*math.pi) % (2*math.pi)
77 |
78 |
79 | def radians_TO_angle(radians):
80 | """
81 | 弧度转角度
82 | """
83 | return 180 * radians / math.pi
84 |
85 | def angle_TO_radians(angle):
86 | """
87 | 角度转弧度
88 | """
89 | return math.pi * angle / 180
90 |
91 | def depth3C(depth):
92 | """
93 | 将深度图转化为3通道 np.uint8类型
94 | """
95 | depth_3c = depth[..., np.newaxis]
96 | depth_3c = np.concatenate((depth_3c, depth_3c, depth_3c), axis=2)
97 | return depth_3c.astype(np.uint8)
98 |
99 | def zip_file(filedir):
100 | """
101 | 压缩文件夹至同名zip文件
102 | """
103 | file_news = filedir + '.zip'
104 | # 如果已经有压缩的文件,删除
105 | if os.path.exists(file_news):
106 | os.remove(file_news)
107 |
108 | z = zipfile.ZipFile(file_news,'w',zipfile.ZIP_DEFLATED) #参数一:文件夹名
109 | for dirpath, dirnames, filenames in os.walk(filedir):
110 | fpath = dirpath.replace(filedir,'') #这一句很重要,不replace的话,就从根目录开始复制
111 | fpath = fpath and fpath + os.sep or ''#这句话理解我也点郁闷,实现当前文件夹以及包含的所有文件的压缩
112 | for filename in filenames:
113 | z.write(os.path.join(dirpath, filename),fpath+filename)
114 | z.close()
115 |
116 |
117 | def unzip(file_name):
118 | """
119 | 解压缩zip文件至同名文件夹
120 | """
121 | zip_ref = zipfile.ZipFile(file_name) # 创建zip 对象
122 | os.mkdir(file_name.replace(".zip","")) # 创建同名子文件夹
123 | zip_ref.extractall(file_name.replace(".zip","")) # 解压zip文件内容到子文件夹
124 | zip_ref.close() # 关闭zip文件
125 |
126 |
127 | if __name__ == "__main__":
128 | filename = "D:/research/grasp_detection/Grasp_Correction/code-1/img/img_urdf_1" #要压缩的文件夹路径
129 | # zip_file(filename) # 压缩
130 | unzip(filename + '.zip') # 解压
--------------------------------------------------------------------------------
/franka_panda/meshes/visual/link6.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'link2.blend'
2 | # Material Count: 17
3 |
4 | newmtl Face064_002_001_002_001.001
5 | Ns -1.960784
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 1.000000 0.000000 0.000000
8 | Ks 0.003906 0.003906 0.003906
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 |
14 | newmtl Face065_002_001_002_001.001
15 | Ns -1.960784
16 | Ka 1.000000 1.000000 1.000000
17 | Kd 0.000000 1.000000 0.000000
18 | Ks 0.003906 0.003906 0.003906
19 | Ke 0.000000 0.000000 0.000000
20 | Ni 1.000000
21 | d 1.000000
22 | illum 2
23 |
24 | newmtl Face374_002_001_002_001.001
25 | Ns -1.960784
26 | Ka 1.000000 1.000000 1.000000
27 | Kd 1.000000 1.000000 1.000000
28 | Ks 0.003906 0.003906 0.003906
29 | Ke 0.000000 0.000000 0.000000
30 | Ni 1.000000
31 | d 1.000000
32 | illum 2
33 |
34 | newmtl Face539_002_001_002_001.001
35 | Ns -1.960784
36 | Ka 1.000000 1.000000 1.000000
37 | Kd 0.250980 0.250980 0.250980
38 | Ks 0.003906 0.003906 0.003906
39 | Ke 0.000000 0.000000 0.000000
40 | Ni 1.000000
41 | d 1.000000
42 | illum 2
43 | map_Kd colors.png
44 |
45 | newmtl Part__Feature001_009_001_002_001.001
46 | Ns -1.960784
47 | Ka 1.000000 1.000000 1.000000
48 | Kd 0.250980 0.250980 0.250980
49 | Ks 0.003906 0.003906 0.003906
50 | Ke 0.000000 0.000000 0.000000
51 | Ni 1.000000
52 | d 1.000000
53 | illum 2
54 | map_Kd colors.png
55 |
56 | newmtl Part__Feature002_006_001_002_001.001
57 | Ns -1.960784
58 | Ka 1.000000 1.000000 1.000000
59 | Kd 0.250980 0.250980 0.250980
60 | Ks 0.003906 0.003906 0.003906
61 | Ke 0.000000 0.000000 0.000000
62 | Ni 1.000000
63 | d 1.000000
64 | illum 2
65 | map_Kd colors.png
66 |
67 | newmtl Shell002_002_001_002_001.001
68 | Ns -1.960784
69 | Ka 1.000000 1.000000 1.000000
70 | Kd 1.000000 1.000000 1.000000
71 | Ks 0.003906 0.003906 0.003906
72 | Ke 0.000000 0.000000 0.000000
73 | Ni 1.000000
74 | d 1.000000
75 | illum 2
76 |
77 | newmtl Shell003_002_001_002_001.001
78 | Ns -1.960784
79 | Ka 1.000000 1.000000 1.000000
80 | Kd 1.000000 1.000000 1.000000
81 | Ks 0.003906 0.003906 0.003906
82 | Ke 0.000000 0.000000 0.000000
83 | Ni 1.000000
84 | d 1.000000
85 | illum 2
86 |
87 | newmtl Shell004_001_001_002_001.001
88 | Ns -1.960784
89 | Ka 1.000000 1.000000 1.000000
90 | Kd 1.000000 1.000000 1.000000
91 | Ks 0.003906 0.003906 0.003906
92 | Ke 0.000000 0.000000 0.000000
93 | Ni 1.000000
94 | d 1.000000
95 | illum 2
96 |
97 | newmtl Shell005_001_001_002_001.001
98 | Ns -1.960784
99 | Ka 1.000000 1.000000 1.000000
100 | Kd 1.000000 1.000000 1.000000
101 | Ks 0.003906 0.003906 0.003906
102 | Ke 0.000000 0.000000 0.000000
103 | Ni 1.000000
104 | d 1.000000
105 | illum 2
106 |
107 | newmtl Shell006_003_002_001.001
108 | Ns -1.960784
109 | Ka 1.000000 1.000000 1.000000
110 | Kd 0.901961 0.921569 0.929412
111 | Ks 0.015625 0.015625 0.015625
112 | Ke 0.000000 0.000000 0.000000
113 | Ni 1.000000
114 | d 1.000000
115 | illum 2
116 |
117 | newmtl Shell007_002_002_001.001
118 | Ns -1.960784
119 | Ka 1.000000 1.000000 1.000000
120 | Kd 0.250000 0.250000 0.250000
121 | Ks 0.003906 0.003906 0.003906
122 | Ke 0.000000 0.000000 0.000000
123 | Ni 1.000000
124 | d 1.000000
125 | illum 2
126 |
127 | newmtl Shell011_002_002_001.001
128 | Ns -1.960784
129 | Ka 1.000000 1.000000 1.000000
130 | Kd 1.000000 1.000000 1.000000
131 | Ks 0.003906 0.003906 0.003906
132 | Ke 0.000000 0.000000 0.000000
133 | Ni 1.000000
134 | d 1.000000
135 | illum 2
136 |
137 | newmtl Shell012_002_002_001.001
138 | Ns -1.960784
139 | Ka 1.000000 1.000000 1.000000
140 | Kd 1.000000 1.000000 1.000000
141 | Ks 0.003906 0.003906 0.003906
142 | Ke 0.000000 0.000000 0.000000
143 | Ni 1.000000
144 | d 1.000000
145 | illum 2
146 | map_Kd colors.png
147 |
148 | newmtl Shell_003_001_002_001.001
149 | Ns -1.960784
150 | Ka 1.000000 1.000000 1.000000
151 | Kd 0.250980 0.250980 0.250980
152 | Ks 0.003906 0.003906 0.003906
153 | Ke 0.000000 0.000000 0.000000
154 | Ni 1.000000
155 | d 1.000000
156 | illum 2
157 | map_Kd colors.png
158 |
159 | newmtl Union001_001_001_002_001.001
160 | Ns -1.960784
161 | Ka 1.000000 1.000000 1.000000
162 | Kd 0.039216 0.541176 0.780392
163 | Ks 0.003906 0.003906 0.003906
164 | Ke 0.000000 0.000000 0.000000
165 | Ni 1.000000
166 | d 1.000000
167 | illum 2
168 |
169 | newmtl Union_001_001_002_001.001
170 | Ns -1.960784
171 | Ka 1.000000 1.000000 1.000000
172 | Kd 0.039216 0.541176 0.780392
173 | Ks 0.003906 0.003906 0.003906
174 | Ke 0.000000 0.000000 0.000000
175 | Ni 1.000000
176 | d 1.000000
177 | illum 2
178 |
--------------------------------------------------------------------------------
/franka_panda/meshes/collision/link6.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'link2.blend'
2 | # Material Count: 17
3 |
4 | newmtl Face064_002_001_002_001.001
5 | Ns -1.960784
6 | Ka 1.000000 1.000000 1.000000
7 | Kd 1.000000 0.000000 0.000000
8 | Ks 0.003906 0.003906 0.003906
9 | Ke 0.000000 0.000000 0.000000
10 | Ni 1.000000
11 | d 1.000000
12 | illum 2
13 |
14 | newmtl Face065_002_001_002_001.001
15 | Ns -1.960784
16 | Ka 1.000000 1.000000 1.000000
17 | Kd 0.000000 1.000000 0.000000
18 | Ks 0.003906 0.003906 0.003906
19 | Ke 0.000000 0.000000 0.000000
20 | Ni 1.000000
21 | d 1.000000
22 | illum 2
23 |
24 | newmtl Face374_002_001_002_001.001
25 | Ns -1.960784
26 | Ka 1.000000 1.000000 1.000000
27 | Kd 1.000000 1.000000 1.000000
28 | Ks 0.003906 0.003906 0.003906
29 | Ke 0.000000 0.000000 0.000000
30 | Ni 1.000000
31 | d 1.000000
32 | illum 2
33 |
34 | newmtl Face539_002_001_002_001.001
35 | Ns -1.960784
36 | Ka 1.000000 1.000000 1.000000
37 | Kd 0.250980 0.250980 0.250980
38 | Ks 0.003906 0.003906 0.003906
39 | Ke 0.000000 0.000000 0.000000
40 | Ni 1.000000
41 | d 1.000000
42 | illum 2
43 | map_Kd D:\dev\pybullet_robots\data\franka_panda\meshes\visual\colors.png
44 |
45 | newmtl Part__Feature001_009_001_002_001.001
46 | Ns -1.960784
47 | Ka 1.000000 1.000000 1.000000
48 | Kd 0.250980 0.250980 0.250980
49 | Ks 0.003906 0.003906 0.003906
50 | Ke 0.000000 0.000000 0.000000
51 | Ni 1.000000
52 | d 1.000000
53 | illum 2
54 | map_Kd D:\dev\pybullet_robots\data\franka_panda\meshes\visual\colors.png
55 |
56 | newmtl Part__Feature002_006_001_002_001.001
57 | Ns -1.960784
58 | Ka 1.000000 1.000000 1.000000
59 | Kd 0.250980 0.250980 0.250980
60 | Ks 0.003906 0.003906 0.003906
61 | Ke 0.000000 0.000000 0.000000
62 | Ni 1.000000
63 | d 1.000000
64 | illum 2
65 | map_Kd D:\dev\pybullet_robots\data\franka_panda\meshes\visual\colors.png
66 |
67 | newmtl Shell002_002_001_002_001.001
68 | Ns -1.960784
69 | Ka 1.000000 1.000000 1.000000
70 | Kd 1.000000 1.000000 1.000000
71 | Ks 0.003906 0.003906 0.003906
72 | Ke 0.000000 0.000000 0.000000
73 | Ni 1.000000
74 | d 1.000000
75 | illum 2
76 |
77 | newmtl Shell003_002_001_002_001.001
78 | Ns -1.960784
79 | Ka 1.000000 1.000000 1.000000
80 | Kd 1.000000 1.000000 1.000000
81 | Ks 0.003906 0.003906 0.003906
82 | Ke 0.000000 0.000000 0.000000
83 | Ni 1.000000
84 | d 1.000000
85 | illum 2
86 |
87 | newmtl Shell004_001_001_002_001.001
88 | Ns -1.960784
89 | Ka 1.000000 1.000000 1.000000
90 | Kd 1.000000 1.000000 1.000000
91 | Ks 0.003906 0.003906 0.003906
92 | Ke 0.000000 0.000000 0.000000
93 | Ni 1.000000
94 | d 1.000000
95 | illum 2
96 |
97 | newmtl Shell005_001_001_002_001.001
98 | Ns -1.960784
99 | Ka 1.000000 1.000000 1.000000
100 | Kd 1.000000 1.000000 1.000000
101 | Ks 0.003906 0.003906 0.003906
102 | Ke 0.000000 0.000000 0.000000
103 | Ni 1.000000
104 | d 1.000000
105 | illum 2
106 |
107 | newmtl Shell006_003_002_001.001
108 | Ns -1.960784
109 | Ka 1.000000 1.000000 1.000000
110 | Kd 0.901961 0.921569 0.929412
111 | Ks 0.015625 0.015625 0.015625
112 | Ke 0.000000 0.000000 0.000000
113 | Ni 1.000000
114 | d 1.000000
115 | illum 2
116 |
117 | newmtl Shell007_002_002_001.001
118 | Ns -1.960784
119 | Ka 1.000000 1.000000 1.000000
120 | Kd 0.250000 0.250000 0.250000
121 | Ks 0.003906 0.003906 0.003906
122 | Ke 0.000000 0.000000 0.000000
123 | Ni 1.000000
124 | d 1.000000
125 | illum 2
126 |
127 | newmtl Shell011_002_002_001.001
128 | Ns -1.960784
129 | Ka 1.000000 1.000000 1.000000
130 | Kd 1.000000 1.000000 1.000000
131 | Ks 0.003906 0.003906 0.003906
132 | Ke 0.000000 0.000000 0.000000
133 | Ni 1.000000
134 | d 1.000000
135 | illum 2
136 |
137 | newmtl Shell012_002_002_001.001
138 | Ns -1.960784
139 | Ka 1.000000 1.000000 1.000000
140 | Kd 1.000000 1.000000 1.000000
141 | Ks 0.003906 0.003906 0.003906
142 | Ke 0.000000 0.000000 0.000000
143 | Ni 1.000000
144 | d 1.000000
145 | illum 2
146 | map_Kd D:\dev\pybullet_robots\data\franka_panda\meshes\visual\colors.png
147 |
148 | newmtl Shell_003_001_002_001.001
149 | Ns -1.960784
150 | Ka 1.000000 1.000000 1.000000
151 | Kd 0.250980 0.250980 0.250980
152 | Ks 0.003906 0.003906 0.003906
153 | Ke 0.000000 0.000000 0.000000
154 | Ni 1.000000
155 | d 1.000000
156 | illum 2
157 | map_Kd D:\dev\pybullet_robots\data\franka_panda\meshes\visual\colors.png
158 |
159 | newmtl Union001_001_001_002_001.001
160 | Ns -1.960784
161 | Ka 1.000000 1.000000 1.000000
162 | Kd 0.039216 0.541176 0.780392
163 | Ks 0.003906 0.003906 0.003906
164 | Ke 0.000000 0.000000 0.000000
165 | Ni 1.000000
166 | d 1.000000
167 | illum 2
168 |
169 | newmtl Union_001_001_002_001.001
170 | Ns -1.960784
171 | Ka 1.000000 1.000000 1.000000
172 | Kd 0.039216 0.541176 0.780392
173 | Ks 0.003906 0.003906 0.003906
174 | Ke 0.000000 0.000000 0.000000
175 | Ni 1.000000
176 | d 1.000000
177 | illum 2
178 |
--------------------------------------------------------------------------------
/mesh.py:
--------------------------------------------------------------------------------
1 | import os
2 | import numpy as np
3 | from matplotlib import pyplot as plt
4 | from mpl_toolkits.mplot3d import Axes3D
5 | from matplotlib import path
6 |
7 |
8 | GRASP_MAX_W = 0.08 # 最大张开宽度
9 |
10 |
11 | def clacPlane(pt1, pt2, pt3):
12 | """
13 | 根据三点计算平面方程 ax+by+cz+d=0
14 | pts: [[x, y, z], [x, y, z], [x, y, z]]
15 | return: A B C z=Ax+By+C
16 | """
17 |
18 | a = (pt2[1]-pt1[1])*(pt3[2]-pt1[2]) - (pt2[2]-pt1[2])*(pt3[1]-pt1[1])
19 | b = (pt2[2]-pt1[2])*(pt3[0]-pt1[0]) - (pt2[0]-pt1[0])*(pt3[2]-pt1[2])
20 | c = (pt2[0]-pt1[0])*(pt3[1]-pt1[1]) - (pt2[1]-pt1[1])*(pt3[0]-pt1[0])
21 | d = 0 - (a * pt1[0] + b * pt1[1] + c * pt1[2])
22 |
23 | return a, b, c, d
24 |
25 | # if a == 0 or b == 0 or c == 0 or d == 0:
26 | # print('a = ', a)
27 | # print('b = ', b)
28 | # print('c = ', c)
29 | # print('d = ', d)
30 | # return np.array([-1*a/c, -1*b/c, -1*d/c])
31 |
32 | def ptsInTriangle(pt1, pt2, pt3):
33 | """
34 | 获取pt1 pt2 pt3 组成的三角形内的坐标点
35 | pt1: float [x, y]
36 | """
37 | p = path.Path([pt1, pt2, pt3])
38 |
39 | min_x = int(min(pt1[0], pt2[0], pt3[0]))
40 | max_x = int(max(pt1[0], pt2[0], pt3[0]))
41 | min_y = int(min(pt1[1], pt2[1], pt3[1]))
42 | max_y = int(max(pt1[1], pt2[1], pt3[1]))
43 |
44 | pts = []
45 | for x in range(min_x, max_x+1):
46 | for y in range(min_y, max_y+1):
47 | if p.contains_points([(x, y)])[0]:
48 | pts.append([x, y])
49 |
50 | return pts
51 |
52 |
53 | class Mesh:
54 | """
55 | mesh 类,读取obj文件,坐标转换,生成空间深度图
56 | """
57 | def __init__(self, filename, scale=-1):
58 | """
59 | 读取obj文件,获取v 和 f
60 | 只用于读取EGAD数据集的obj文件
61 |
62 | filename: obj文件名
63 | scale: 物体缩放尺度,
64 | int: 缩放scale倍
65 | -1 : 自动设置scale,使外接矩形框的中间边不超过抓取器宽度(0.07)的80% scale最大为0.001
66 | """
67 | assert scale == -1 or scale > 0
68 | # print(filename)
69 | if scale > 0:
70 | self._scale = scale
71 | else:
72 | self._scale = 1
73 |
74 | with open(filename) as file:
75 | self.points = []
76 | self.faces = []
77 | while 1:
78 | line = file.readline()
79 | if not line:
80 | break
81 | strs = line.split(" ")
82 | if strs[0] == "v":
83 | self.points.append((float(strs[1])*self._scale, float(strs[2])*self._scale, float(strs[3])*self._scale))
84 | if strs[0] == "f":
85 | if strs[1].count('//'):
86 | idx1, idx2, idx3 = strs[1].index('//'), strs[2].index('//'), strs[3].index('//')
87 | self.faces.append((int(strs[1][:idx1]), int(strs[2][:idx2]), int(strs[3][:idx3])))
88 | else:
89 | self.faces.append((int(strs[1]), int(strs[2]), int(strs[3])))
90 |
91 | self.points = np.array(self.points)
92 | self.faces = np.array(self.faces, dtype=np.int64)
93 | if scale == -1:
94 | self._scale = self.get_scale()
95 | self.points = self.points * self._scale
96 |
97 |
98 | def min_z(self):
99 | """
100 | 返回最小的z坐标
101 | """
102 | return np.min(self.points[:, 2])
103 |
104 |
105 | def get_scale(self):
106 | """
107 | 自适应设置scale
108 | """
109 | d_x = np.max(self.points[:, 0]) - np.min(self.points[:, 0])
110 | d_y = np.max(self.points[:, 1]) - np.min(self.points[:, 1])
111 | d_z = np.max(self.points[:, 2]) - np.min(self.points[:, 2])
112 | ds = [d_x, d_y, d_z]
113 | ds.sort()
114 | scale = (GRASP_MAX_W - 0.01) * 0.8 / ds[1]
115 | if scale > 0.001:
116 | scale = 0.001
117 |
118 | return scale
119 |
120 |
121 | def scale(self):
122 | return self._scale
123 |
124 |
125 | def calcCenterPt(self):
126 | """
127 | 计算mesh的中心点坐标
128 | return: [x, y, z]
129 | """
130 | return np.mean(self.points, axis=0)
131 |
132 |
133 | def transform(self, mat):
134 | """
135 | 根据旋转矩阵调整顶点坐标
136 | """
137 | points = self.points.T # 转置
138 | ones = np.ones((1, points.shape[1]))
139 | points = np.vstack((points, ones))
140 | # 转换
141 | # print(mat.shape)
142 | # print(points.shape)
143 | new_points = np.matmul(mat, points)[:-1, :]
144 | self.points = new_points.T # 转置 (n, 3)
145 |
146 |
147 | if __name__ == "__main__":
148 | p = path.Path([(0, 0), (0.001, 0), (0, 0.001)])
149 | ret = p.contains_points([(0.00001, 0.00001)])[0]
150 | print(ret)
151 |
152 |
153 |
154 |
--------------------------------------------------------------------------------
/camera.py:
--------------------------------------------------------------------------------
1 | import cv2
2 | import math
3 | import time
4 | import numpy as np
5 | import scipy.io as scio
6 |
7 | # 图像参数
8 | HEIGHT = 480
9 | WIDTH = 640
10 |
11 |
12 | def radians_TO_angle(radians):
13 | """
14 | 弧度转角度
15 | """
16 | return 180 * radians / math.pi
17 |
18 | def angle_TO_radians(angle):
19 | """
20 | 角度转弧度
21 | """
22 | return math.pi * angle / 180
23 |
24 | def eulerAnglesToRotationMatrix(theta):
25 | """
26 | 欧拉角转旋转矩阵
27 | theta: [r, p, y]
28 | """
29 | R_x = np.array([[1, 0, 0 ],
30 | [0, math.cos(theta[0]), -math.sin(theta[0]) ],
31 | [0, math.sin(theta[0]), math.cos(theta[0]) ]
32 | ])
33 |
34 |
35 |
36 | R_y = np.array([[math.cos(theta[1]), 0, math.sin(theta[1]) ],
37 | [0, 1, 0 ],
38 | [-math.sin(theta[1]), 0, math.cos(theta[1]) ]
39 | ])
40 |
41 | R_z = np.array([[math.cos(theta[2]), -math.sin(theta[2]), 0],
42 | [math.sin(theta[2]), math.cos(theta[2]), 0],
43 | [0, 0, 1]
44 | ])
45 |
46 |
47 | R = np.dot(R_z, np.dot( R_y, R_x ))
48 |
49 | return R
50 |
51 | def getTransfMat(offset, rotate):
52 | """
53 | 将平移向量和旋转矩阵合并为变换矩阵
54 | offset: (x, y, z)
55 | rotate: 旋转矩阵
56 | """
57 | mat = np.array([
58 | [rotate[0, 0], rotate[0, 1], rotate[0, 2], offset[0]],
59 | [rotate[1, 0], rotate[1, 1], rotate[1, 2], offset[1]],
60 | [rotate[2, 0], rotate[2, 1], rotate[2, 2], offset[2]],
61 | [0, 0, 0, 1.]
62 | ])
63 | return mat
64 |
65 |
66 | class Camera:
67 | def __init__(self):
68 | """
69 | 初始化相机参数,计算相机内参
70 | """
71 | self.fov = 60 # 垂直视场
72 | self.length = 0.7
73 | self.H = self.length * math.tan(angle_TO_radians(self.fov/2)) # 图像上方点的到中心点的实际距离 m
74 | self.W = WIDTH * self.H / HEIGHT # 图像右方点的到中心点的实际距离 m
75 | # 计算 f/dx 和 f/dy
76 | self.A = (HEIGHT / 2) * self.length / self.H
77 | # 计算内参
78 | self.InMatrix = np.array([[self.A, 0, WIDTH/2 - 0.5], [0, self.A, HEIGHT/2 - 0.5], [0, 0, 1]], dtype=np.float)
79 | # 计算世界坐标系->相机坐标系的转换矩阵 4*4
80 | # 欧拉角: (pi, 0, 0) 平移(0, 0, 0.7)
81 | rotMat = eulerAnglesToRotationMatrix([math.pi, 0, 0])
82 | self.transMat = getTransfMat([0, 0, 0.7], rotMat)
83 |
84 |
85 | def img2camera(self, pt, dep):
86 | """
87 | 获取像素点pt在相机坐标系中的坐标
88 | pt: [x, y]
89 | dep: 深度值
90 |
91 | return: [x, y, z]
92 | """
93 | pt_in_img = np.array([[pt[0]], [pt[1]], [1]], dtype=np.float)
94 | ret = np.matmul(np.linalg.inv(self.InMatrix), pt_in_img) * dep
95 | return list(ret.reshape((3,)))
96 | # print('坐标 = ', ret)
97 |
98 | def camera2img(self, coord):
99 | """
100 | 将相机坐标系中的点转换至图像
101 | coord: [x, y, z]
102 |
103 | return: [row, col]
104 | """
105 | z = coord[2]
106 | coord = np.array(coord).reshape((3, 1))
107 | rc = (np.matmul(self.InMatrix, coord) / z).reshape((3,))
108 |
109 | return list(rc)[:-1]
110 |
111 | def length_TO_pixels(self, l, dep):
112 | """
113 | 与相机距离为dep的平面上 有条线,长l,获取这条线在图像中的像素长度
114 | l: m
115 | dep: m
116 | """
117 | return l * self.A / dep
118 |
119 | def camera2world(self, coord):
120 | """
121 | 获取相机坐标系中的点在世界坐标系中的坐标
122 | corrd: [x, y, z]
123 |
124 | return: [x, y, z]
125 | """
126 | coord.append(1.)
127 | coord = np.array(coord).reshape((4, 1))
128 | coord_new = np.matmul(self.transMat, coord).reshape((4,))
129 | return list(coord_new)[:-1]
130 |
131 | def world2camera(self, coord):
132 | """
133 | 获取世界坐标系中的点在相机坐标系中的坐标
134 | corrd: [x, y, z]
135 |
136 | return: [x, y, z]
137 | """
138 | coord.append(1.)
139 | coord = np.array(coord).reshape((4, 1))
140 | coord_new = np.matmul(np.linalg.inv(self.transMat), coord).reshape((4,))
141 | return list(coord_new)[:-1]
142 |
143 | def world2img(self, coord):
144 | """
145 | 获取世界坐标系中的点在图像中的坐标
146 | corrd: [x, y, z]
147 |
148 | return: [row, col]
149 | """
150 | # 转到相机坐标系
151 | coord = self.world2camera(coord)
152 | # 转到图像
153 | pt = self.camera2img(coord) # [y, x]
154 | return [int(pt[1]), int(pt[0])]
155 |
156 | def img2world(self, pt, dep):
157 | """
158 | 获取像素点的世界坐标
159 | pt: [x, y]
160 | dep: 深度值 m
161 | """
162 | coordInCamera = self.img2camera(pt, dep)
163 | return self.camera2world(coordInCamera)
164 |
165 |
166 |
--------------------------------------------------------------------------------
/myModel/tray/tray_textured.obj:
--------------------------------------------------------------------------------
1 | # Blender v2.78 (sub 0) OBJ File: ''
2 | # www.blender.org
3 | mtllib tray_textured.mtl
4 | o edge_4_Cube.001
5 | v -0.573309 0.580000 0.261247
6 | v -0.426691 0.419400 -0.002214
7 | v -0.590083 0.580000 0.250354
8 | v -0.573309 -0.580000 0.261247
9 | v -0.409917 0.419400 0.008679
10 | v -0.590083 -0.580000 0.250354
11 | v -0.409917 -0.419400 0.009162
12 | v -0.426691 -0.419400 -0.001731
13 | vt 0.9046 0.2397
14 | vt 0.7929 0.2434
15 | vt 0.9174 0.2393
16 | vt 0.9537 0.7559
17 | vt 0.7801 0.2438
18 | vt 0.9664 0.7554
19 | vt 0.8291 0.7599
20 | vt 0.8419 0.7595
21 | vn 0.2565 0.8821 -0.3950
22 | vn 0.8392 0.0002 0.5438
23 | vn 0.8395 0.0000 0.5433
24 | vn 0.8396 -0.0000 0.5432
25 | vn 0.2568 -0.8819 -0.3954
26 | vn -0.8396 -0.0002 -0.5433
27 | vn -0.8392 -0.0000 -0.5438
28 | vn -0.8391 0.0000 -0.5439
29 | vn 0.5446 -0.0005 -0.8387
30 | vn -0.5446 -0.0000 0.8387
31 | vn 0.8391 0.0003 0.5440
32 | vn -0.8397 -0.0003 -0.5430
33 | usemtl None
34 | s 1
35 | f 1/1/1 2/2/1 3/3/1
36 | f 4/4/2 5/5/3 1/1/4
37 | f 6/6/5 7/7/5 4/4/5
38 | f 3/3/6 8/8/7 6/6/8
39 | f 5/5/9 8/8/9 2/2/9
40 | f 4/4/10 3/3/10 6/6/10
41 | f 1/1/1 5/5/1 2/2/1
42 | f 4/4/2 7/7/11 5/5/3
43 | f 6/6/5 8/8/5 7/7/5
44 | f 3/3/6 2/2/12 8/8/7
45 | f 5/5/9 7/7/9 8/8/9
46 | f 4/4/10 1/1/10 3/3/10
47 | o edge_1_Cube.003
48 | v 0.580000 0.590083 0.250354
49 | v -0.419960 0.426691 -0.001860
50 | v -0.580000 0.590083 0.250354
51 | v 0.580000 0.573309 0.261247
52 | v 0.420014 0.426691 -0.001059
53 | v -0.580000 0.573309 0.261247
54 | v 0.420014 0.409917 0.009834
55 | v -0.419960 0.409917 0.009033
56 | vt 0.8346 0.9187
57 | vt 0.2203 0.8574
58 | vt 0.1480 0.9187
59 | vt 0.8346 0.9129
60 | vt 0.7623 0.8574
61 | vt 0.1480 0.9129
62 | vt 0.7623 0.8511
63 | vt 0.2203 0.8511
64 | vn 0.0004 0.8386 -0.5448
65 | vn 0.0001 0.8391 -0.5439
66 | vn 0.0000 0.8393 -0.5437
67 | vn 0.8823 -0.2564 -0.3948
68 | vn -0.0004 -0.8392 0.5439
69 | vn -0.0001 -0.8386 0.5447
70 | vn 0.0000 -0.8385 0.5449
71 | vn -0.8826 -0.2560 -0.3942
72 | vn 0.0008 -0.5446 -0.8387
73 | vn 0.0000 0.5446 0.8387
74 | vn 0.0005 0.8383 -0.5452
75 | vn -0.0005 -0.8394 0.5435
76 | usemtl None
77 | s 1
78 | f 9/9/13 10/10/14 11/11/15
79 | f 12/12/16 13/13/16 9/9/16
80 | f 14/14/17 15/15/18 12/12/19
81 | f 11/11/20 16/16/20 14/14/20
82 | f 13/13/21 16/16/21 10/10/21
83 | f 12/12/22 11/11/22 14/14/22
84 | f 9/9/13 13/13/23 10/10/14
85 | f 12/12/16 15/15/16 13/13/16
86 | f 14/14/17 16/16/24 15/15/18
87 | f 11/11/20 10/10/20 16/16/20
88 | f 13/13/21 15/15/21 16/16/21
89 | f 12/12/22 9/9/22 11/11/22
90 | o edge_2_Cube
91 | v 0.590083 0.580000 0.250354
92 | v 0.409917 0.420060 0.009390
93 | v 0.573309 0.580000 0.261247
94 | v 0.590083 -0.580000 0.250354
95 | v 0.426691 0.420060 -0.001503
96 | v 0.573309 -0.580000 0.261247
97 | v 0.426691 -0.419158 -0.002053
98 | v 0.409917 -0.419158 0.008840
99 | vt 0.9410 0.8520
100 | vt 0.7523 0.8566
101 | vt 0.9234 0.8524
102 | vt 0.8896 0.1426
103 | vt 0.7698 0.8562
104 | vt 0.8721 0.1430
105 | vt 0.7185 0.1468
106 | vt 0.7009 0.1472
107 | vn -0.2561 0.8826 -0.3943
108 | vn 0.8394 0.0003 -0.5435
109 | vn 0.8390 0.0001 -0.5441
110 | vn 0.8389 0.0000 -0.5443
111 | vn -0.2569 -0.8818 -0.3956
112 | vn -0.8390 -0.0003 0.5441
113 | vn -0.8394 -0.0001 0.5436
114 | vn -0.8395 -0.0000 0.5434
115 | vn -0.5446 0.0005 -0.8387
116 | vn 0.5446 -0.0000 0.8387
117 | vn 0.8396 0.0004 -0.5433
118 | vn -0.8388 -0.0004 0.5444
119 | usemtl None
120 | s 1
121 | f 17/17/25 18/18/25 19/19/25
122 | f 20/20/26 21/21/27 17/17/28
123 | f 22/22/29 23/23/29 20/20/29
124 | f 19/19/30 24/24/31 22/22/32
125 | f 21/21/33 24/24/33 18/18/33
126 | f 20/20/34 19/19/34 22/22/34
127 | f 17/17/25 21/21/25 18/18/25
128 | f 20/20/26 23/23/35 21/21/27
129 | f 22/22/29 24/24/29 23/23/29
130 | f 19/19/30 18/18/36 24/24/31
131 | f 21/21/33 23/23/33 24/24/33
132 | f 20/20/34 17/17/34 19/19/34
133 | o base_Cube.004
134 | v 0.420000 0.420000 0.010000
135 | v -0.420000 0.420000 -0.010000
136 | v -0.420000 0.420000 0.010000
137 | v 0.420000 -0.420000 0.010000
138 | v 0.420000 0.420000 -0.010000
139 | v -0.420000 -0.420000 0.010000
140 | v 0.420000 -0.420000 -0.010000
141 | v -0.420000 -0.420000 -0.010000
142 | vt 0.7524 0.8072
143 | vt -0.3038 0.8371
144 | vt -0.3038 0.8371
145 | vt 0.7012 0.1905
146 | vt 0.7524 0.8072
147 | vt -0.3550 0.2204
148 | vt 0.7012 0.1905
149 | vt -0.3550 0.2204
150 | vn 0.0000 1.0000 0.0000
151 | vn 1.0000 -0.0000 0.0000
152 | vn 0.0000 -1.0000 0.0000
153 | vn -1.0000 -0.0000 0.0000
154 | vn 0.0000 0.0000 -1.0000
155 | vn 0.0000 -0.0000 1.0000
156 | usemtl None
157 | s 1
158 | f 25/25/37 26/26/37 27/27/37
159 | f 28/28/38 29/29/38 25/25/38
160 | f 30/30/39 31/31/39 28/28/39
161 | f 27/27/40 32/32/40 30/30/40
162 | f 29/29/41 32/32/41 26/26/41
163 | f 28/28/42 27/27/42 30/30/42
164 | f 25/25/37 29/29/37 26/26/37
165 | f 28/28/38 31/31/38 29/29/38
166 | f 30/30/39 32/32/39 31/31/39
167 | f 27/27/40 26/26/40 32/32/40
168 | f 29/29/41 31/31/41 32/32/41
169 | f 28/28/42 25/25/42 27/27/42
170 | o edge_3_Cube.002
171 | v 0.580000 -0.573309 0.261247
172 | v -0.419400 -0.409917 0.008678
173 | v -0.580000 -0.573309 0.261247
174 | v 0.580000 -0.590083 0.250354
175 | v 0.419883 -0.409917 0.009162
176 | v -0.580000 -0.590083 0.250354
177 | v 0.419883 -0.426691 -0.001731
178 | v -0.419400 -0.426691 -0.002215
179 | vt 0.8690 0.1040
180 | vt 0.1365 0.1739
181 | vt 0.0188 0.1040
182 | vt 0.8690 0.0968
183 | vt 0.7517 0.1739
184 | vt 0.0188 0.0968
185 | vt 0.7517 0.1668
186 | vt 0.1365 0.1668
187 | vn -0.0002 0.8392 0.5438
188 | vn -0.0000 0.8395 0.5433
189 | vn 0.0000 0.8396 0.5432
190 | vn 0.8825 0.2562 -0.3945
191 | vn 0.0002 -0.8396 -0.5433
192 | vn 0.0000 -0.8392 -0.5438
193 | vn 0.0000 -0.8391 -0.5439
194 | vn -0.8821 0.2565 -0.3950
195 | vn -0.8822 0.2565 -0.3950
196 | vn 0.0005 0.5446 -0.8387
197 | vn 0.0000 -0.5446 0.8387
198 | vn -0.0003 0.8391 0.5440
199 | vn 0.0003 -0.8397 -0.5430
200 | usemtl None
201 | s 1
202 | f 33/33/43 34/34/44 35/35/45
203 | f 36/36/46 37/37/46 33/33/46
204 | f 38/38/47 39/39/48 36/36/49
205 | f 35/35/50 40/40/51 38/38/51
206 | f 37/37/52 40/40/52 34/34/52
207 | f 36/36/53 35/35/53 38/38/53
208 | f 33/33/43 37/37/54 34/34/44
209 | f 36/36/46 39/39/46 37/37/46
210 | f 38/38/47 40/40/55 39/39/48
211 | f 35/35/50 34/34/51 40/40/51
212 | f 37/37/52 39/39/52 40/40/52
213 | f 36/36/53 33/33/53 35/35/53
214 |
--------------------------------------------------------------------------------
/myModel/traybox/tray_textured.obj:
--------------------------------------------------------------------------------
1 | # Blender v2.78 (sub 0) OBJ File: ''
2 | # www.blender.org
3 | mtllib tray_textured.mtl
4 | o edge_4_Cube.001
5 | v -0.573309 0.580000 0.261247
6 | v -0.426691 0.419400 -0.002214
7 | v -0.590083 0.580000 0.250354
8 | v -0.573309 -0.580000 0.261247
9 | v -0.409917 0.419400 0.008679
10 | v -0.590083 -0.580000 0.250354
11 | v -0.409917 -0.419400 0.009162
12 | v -0.426691 -0.419400 -0.001731
13 | vt 0.9046 0.2397
14 | vt 0.7929 0.2434
15 | vt 0.9174 0.2393
16 | vt 0.9537 0.7559
17 | vt 0.7801 0.2438
18 | vt 0.9664 0.7554
19 | vt 0.8291 0.7599
20 | vt 0.8419 0.7595
21 | vn 0.2565 0.8821 -0.3950
22 | vn 0.8392 0.0002 0.5438
23 | vn 0.8395 0.0000 0.5433
24 | vn 0.8396 -0.0000 0.5432
25 | vn 0.2568 -0.8819 -0.3954
26 | vn -0.8396 -0.0002 -0.5433
27 | vn -0.8392 -0.0000 -0.5438
28 | vn -0.8391 0.0000 -0.5439
29 | vn 0.5446 -0.0005 -0.8387
30 | vn -0.5446 -0.0000 0.8387
31 | vn 0.8391 0.0003 0.5440
32 | vn -0.8397 -0.0003 -0.5430
33 | usemtl None
34 | s 1
35 | f 1/1/1 2/2/1 3/3/1
36 | f 4/4/2 5/5/3 1/1/4
37 | f 6/6/5 7/7/5 4/4/5
38 | f 3/3/6 8/8/7 6/6/8
39 | f 5/5/9 8/8/9 2/2/9
40 | f 4/4/10 3/3/10 6/6/10
41 | f 1/1/1 5/5/1 2/2/1
42 | f 4/4/2 7/7/11 5/5/3
43 | f 6/6/5 8/8/5 7/7/5
44 | f 3/3/6 2/2/12 8/8/7
45 | f 5/5/9 7/7/9 8/8/9
46 | f 4/4/10 1/1/10 3/3/10
47 | o edge_1_Cube.003
48 | v 0.580000 0.590083 0.250354
49 | v -0.419960 0.426691 -0.001860
50 | v -0.580000 0.590083 0.250354
51 | v 0.580000 0.573309 0.261247
52 | v 0.420014 0.426691 -0.001059
53 | v -0.580000 0.573309 0.261247
54 | v 0.420014 0.409917 0.009834
55 | v -0.419960 0.409917 0.009033
56 | vt 0.8346 0.9187
57 | vt 0.2203 0.8574
58 | vt 0.1480 0.9187
59 | vt 0.8346 0.9129
60 | vt 0.7623 0.8574
61 | vt 0.1480 0.9129
62 | vt 0.7623 0.8511
63 | vt 0.2203 0.8511
64 | vn 0.0004 0.8386 -0.5448
65 | vn 0.0001 0.8391 -0.5439
66 | vn 0.0000 0.8393 -0.5437
67 | vn 0.8823 -0.2564 -0.3948
68 | vn -0.0004 -0.8392 0.5439
69 | vn -0.0001 -0.8386 0.5447
70 | vn 0.0000 -0.8385 0.5449
71 | vn -0.8826 -0.2560 -0.3942
72 | vn 0.0008 -0.5446 -0.8387
73 | vn 0.0000 0.5446 0.8387
74 | vn 0.0005 0.8383 -0.5452
75 | vn -0.0005 -0.8394 0.5435
76 | usemtl None
77 | s 1
78 | f 9/9/13 10/10/14 11/11/15
79 | f 12/12/16 13/13/16 9/9/16
80 | f 14/14/17 15/15/18 12/12/19
81 | f 11/11/20 16/16/20 14/14/20
82 | f 13/13/21 16/16/21 10/10/21
83 | f 12/12/22 11/11/22 14/14/22
84 | f 9/9/13 13/13/23 10/10/14
85 | f 12/12/16 15/15/16 13/13/16
86 | f 14/14/17 16/16/24 15/15/18
87 | f 11/11/20 10/10/20 16/16/20
88 | f 13/13/21 15/15/21 16/16/21
89 | f 12/12/22 9/9/22 11/11/22
90 | o edge_2_Cube
91 | v 0.590083 0.580000 0.250354
92 | v 0.409917 0.420060 0.009390
93 | v 0.573309 0.580000 0.261247
94 | v 0.590083 -0.580000 0.250354
95 | v 0.426691 0.420060 -0.001503
96 | v 0.573309 -0.580000 0.261247
97 | v 0.426691 -0.419158 -0.002053
98 | v 0.409917 -0.419158 0.008840
99 | vt 0.9410 0.8520
100 | vt 0.7523 0.8566
101 | vt 0.9234 0.8524
102 | vt 0.8896 0.1426
103 | vt 0.7698 0.8562
104 | vt 0.8721 0.1430
105 | vt 0.7185 0.1468
106 | vt 0.7009 0.1472
107 | vn -0.2561 0.8826 -0.3943
108 | vn 0.8394 0.0003 -0.5435
109 | vn 0.8390 0.0001 -0.5441
110 | vn 0.8389 0.0000 -0.5443
111 | vn -0.2569 -0.8818 -0.3956
112 | vn -0.8390 -0.0003 0.5441
113 | vn -0.8394 -0.0001 0.5436
114 | vn -0.8395 -0.0000 0.5434
115 | vn -0.5446 0.0005 -0.8387
116 | vn 0.5446 -0.0000 0.8387
117 | vn 0.8396 0.0004 -0.5433
118 | vn -0.8388 -0.0004 0.5444
119 | usemtl None
120 | s 1
121 | f 17/17/25 18/18/25 19/19/25
122 | f 20/20/26 21/21/27 17/17/28
123 | f 22/22/29 23/23/29 20/20/29
124 | f 19/19/30 24/24/31 22/22/32
125 | f 21/21/33 24/24/33 18/18/33
126 | f 20/20/34 19/19/34 22/22/34
127 | f 17/17/25 21/21/25 18/18/25
128 | f 20/20/26 23/23/35 21/21/27
129 | f 22/22/29 24/24/29 23/23/29
130 | f 19/19/30 18/18/36 24/24/31
131 | f 21/21/33 23/23/33 24/24/33
132 | f 20/20/34 17/17/34 19/19/34
133 | o base_Cube.004
134 | v 0.420000 0.420000 0.010000
135 | v -0.420000 0.420000 -0.010000
136 | v -0.420000 0.420000 0.010000
137 | v 0.420000 -0.420000 0.010000
138 | v 0.420000 0.420000 -0.010000
139 | v -0.420000 -0.420000 0.010000
140 | v 0.420000 -0.420000 -0.010000
141 | v -0.420000 -0.420000 -0.010000
142 | vt 0.7524 0.8072
143 | vt -0.3038 0.8371
144 | vt -0.3038 0.8371
145 | vt 0.7012 0.1905
146 | vt 0.7524 0.8072
147 | vt -0.3550 0.2204
148 | vt 0.7012 0.1905
149 | vt -0.3550 0.2204
150 | vn 0.0000 1.0000 0.0000
151 | vn 1.0000 -0.0000 0.0000
152 | vn 0.0000 -1.0000 0.0000
153 | vn -1.0000 -0.0000 0.0000
154 | vn 0.0000 0.0000 -1.0000
155 | vn 0.0000 -0.0000 1.0000
156 | usemtl None
157 | s 1
158 | f 25/25/37 26/26/37 27/27/37
159 | f 28/28/38 29/29/38 25/25/38
160 | f 30/30/39 31/31/39 28/28/39
161 | f 27/27/40 32/32/40 30/30/40
162 | f 29/29/41 32/32/41 26/26/41
163 | f 28/28/42 27/27/42 30/30/42
164 | f 25/25/37 29/29/37 26/26/37
165 | f 28/28/38 31/31/38 29/29/38
166 | f 30/30/39 32/32/39 31/31/39
167 | f 27/27/40 26/26/40 32/32/40
168 | f 29/29/41 31/31/41 32/32/41
169 | f 28/28/42 25/25/42 27/27/42
170 | o edge_3_Cube.002
171 | v 0.580000 -0.573309 0.261247
172 | v -0.419400 -0.409917 0.008678
173 | v -0.580000 -0.573309 0.261247
174 | v 0.580000 -0.590083 0.250354
175 | v 0.419883 -0.409917 0.009162
176 | v -0.580000 -0.590083 0.250354
177 | v 0.419883 -0.426691 -0.001731
178 | v -0.419400 -0.426691 -0.002215
179 | vt 0.8690 0.1040
180 | vt 0.1365 0.1739
181 | vt 0.0188 0.1040
182 | vt 0.8690 0.0968
183 | vt 0.7517 0.1739
184 | vt 0.0188 0.0968
185 | vt 0.7517 0.1668
186 | vt 0.1365 0.1668
187 | vn -0.0002 0.8392 0.5438
188 | vn -0.0000 0.8395 0.5433
189 | vn 0.0000 0.8396 0.5432
190 | vn 0.8825 0.2562 -0.3945
191 | vn 0.0002 -0.8396 -0.5433
192 | vn 0.0000 -0.8392 -0.5438
193 | vn 0.0000 -0.8391 -0.5439
194 | vn -0.8821 0.2565 -0.3950
195 | vn -0.8822 0.2565 -0.3950
196 | vn 0.0005 0.5446 -0.8387
197 | vn 0.0000 -0.5446 0.8387
198 | vn -0.0003 0.8391 0.5440
199 | vn 0.0003 -0.8397 -0.5430
200 | usemtl None
201 | s 1
202 | f 33/33/43 34/34/44 35/35/45
203 | f 36/36/46 37/37/46 33/33/46
204 | f 38/38/47 39/39/48 36/36/49
205 | f 35/35/50 40/40/51 38/38/51
206 | f 37/37/52 40/40/52 34/34/52
207 | f 36/36/53 35/35/53 38/38/53
208 | f 33/33/43 37/37/54 34/34/44
209 | f 36/36/46 39/39/46 37/37/46
210 | f 38/38/47 40/40/55 39/39/48
211 | f 35/35/50 34/34/51 40/40/51
212 | f 37/37/52 39/39/52 40/40/52
213 | f 36/36/53 33/33/53 35/35/53
214 |
--------------------------------------------------------------------------------
/franka_panda/meshes/collision/finger_1.obj:
--------------------------------------------------------------------------------
1 | # Blender v2.91.0 OBJ File: 'finger.blend'
2 | # www.blender.org
3 | mtllib finger_1.mtl
4 | o finger
5 | v 0.010360 0.026508 0.000155
6 | v 0.010449 0.005998 0.000147
7 | v -0.010387 0.005956 0.000132
8 | v -0.010387 0.005956 0.000132
9 | v -0.010479 0.017638 0.018988
10 | v -0.010401 0.026428 0.000167
11 | v -0.010401 0.026428 0.000167
12 | v -0.010479 0.017638 0.018988
13 | v -0.010389 0.025490 0.019188
14 | v 0.010449 0.005998 0.000147
15 | v -0.008730 0.003754 0.036165
16 | v -0.010387 0.005956 0.000132
17 | v 0.010401 0.025518 0.019037
18 | v -0.010389 0.025490 0.019188
19 | v 0.005840 0.016065 0.053804
20 | v -0.010387 0.005956 0.000132
21 | v -0.010401 0.026428 0.000167
22 | v 0.010360 0.026508 0.000155
23 | v 0.008616 0.015819 0.051328
24 | v 0.010495 0.016778 0.018436
25 | v 0.010401 0.025518 0.019037
26 | v 0.010495 0.016778 0.018436
27 | v 0.008693 0.003660 0.050166
28 | v 0.010449 0.005998 0.000147
29 | v 0.008616 0.015819 0.051328
30 | v 0.008693 0.003660 0.050166
31 | v 0.010495 0.016778 0.018436
32 | v -0.008623 0.003725 0.050953
33 | v -0.010387 0.005956 0.000132
34 | v -0.008730 0.003754 0.036165
35 | v 0.010449 0.005998 0.000147
36 | v 0.008693 0.003660 0.050166
37 | v -0.008730 0.003754 0.036165
38 | v 0.008693 0.003660 0.050166
39 | v -0.005481 0.003695 0.053725
40 | v -0.008730 0.003754 0.036165
41 | v 0.010401 0.025518 0.019037
42 | v 0.010495 0.016778 0.018436
43 | v 0.010449 0.005998 0.000147
44 | v 0.010401 0.025518 0.019037
45 | v 0.010449 0.005998 0.000147
46 | v 0.010360 0.026508 0.000155
47 | v 0.010401 0.025518 0.019037
48 | v 0.010360 0.026508 0.000155
49 | v -0.010389 0.025490 0.019188
50 | v -0.010389 0.025490 0.019188
51 | v -0.005278 0.016081 0.053849
52 | v 0.005840 0.016065 0.053804
53 | v -0.007778 0.016016 0.052366
54 | v -0.005278 0.016081 0.053849
55 | v -0.010389 0.025490 0.019188
56 | v -0.008623 0.003725 0.050953
57 | v -0.005481 0.003695 0.053725
58 | v -0.007778 0.016016 0.052366
59 | v -0.010387 0.005956 0.000132
60 | v -0.008623 0.003725 0.050953
61 | v -0.010479 0.017638 0.018988
62 | v 0.010401 0.025518 0.019037
63 | v 0.005840 0.016065 0.053804
64 | v 0.008616 0.015819 0.051328
65 | v 0.010360 0.026508 0.000155
66 | v -0.010401 0.026428 0.000167
67 | v -0.010389 0.025490 0.019188
68 | v -0.010479 0.017638 0.018988
69 | v -0.008841 0.015758 0.050589
70 | v -0.010389 0.025490 0.019188
71 | v -0.008841 0.015758 0.050589
72 | v -0.007778 0.016016 0.052366
73 | v -0.010389 0.025490 0.019188
74 | v 0.005840 0.016065 0.053804
75 | v -0.005481 0.003695 0.053725
76 | v 0.006138 0.003756 0.053578
77 | v -0.005278 0.016081 0.053849
78 | v -0.005481 0.003695 0.053725
79 | v 0.005840 0.016065 0.053804
80 | v 0.008693 0.003660 0.050166
81 | v 0.006138 0.003756 0.053578
82 | v -0.005481 0.003695 0.053725
83 | v 0.006138 0.003756 0.053578
84 | v 0.008693 0.003660 0.050166
85 | v 0.008616 0.015819 0.051328
86 | v -0.005481 0.003695 0.053725
87 | v -0.008623 0.003725 0.050953
88 | v -0.008730 0.003754 0.036165
89 | v -0.007778 0.016016 0.052366
90 | v -0.005481 0.003695 0.053725
91 | v -0.005278 0.016081 0.053849
92 | v -0.008623 0.003725 0.050953
93 | v -0.008841 0.015758 0.050589
94 | v -0.010479 0.017638 0.018988
95 | v 0.006138 0.003756 0.053578
96 | v 0.008616 0.015819 0.051328
97 | v 0.005840 0.016065 0.053804
98 | v -0.007778 0.016016 0.052366
99 | v -0.008841 0.015758 0.050589
100 | v -0.008623 0.003725 0.050953
101 | vn 0.0007 0.0004 -1.0000
102 | vn -1.0000 -0.0007 -0.0045
103 | vn -0.9999 0.0115 0.0012
104 | vn 0.0021 -0.9981 -0.0611
105 | vn 0.0006 0.9649 0.2625
106 | vn -0.0006 0.0017 -1.0000
107 | vn 0.9983 0.0068 0.0572
108 | vn 0.9977 -0.0590 0.0323
109 | vn 0.9984 0.0008 0.0570
110 | vn -0.8368 -0.5474 0.0050
111 | vn 0.0312 -0.9985 -0.0456
112 | vn -0.0032 -1.0000 -0.0027
113 | vn 0.9999 0.0114 -0.0093
114 | vn 1.0000 0.0043 -0.0019
115 | vn -0.0010 0.9986 0.0524
116 | vn 0.0025 0.9652 0.2616
117 | vn -0.1923 0.9395 0.2834
118 | vn -0.6613 -0.0407 0.7490
119 | vn -0.9977 -0.0596 0.0320
120 | vn 0.3362 0.8967 0.2879
121 | vn -0.0039 0.9988 0.0492
122 | vn -0.9986 0.0102 0.0524
123 | vn -0.6166 0.7429 0.2606
124 | vn 0.0128 -0.0180 0.9998
125 | vn 0.0041 -0.0101 0.9999
126 | vn 0.0056 -0.9995 0.0325
127 | vn 0.7986 -0.0522 0.5996
128 | vn -0.0077 -1.0000 -0.0019
129 | vn -0.5101 -0.0003 0.8601
130 | vn -0.9986 -0.0166 0.0508
131 | vn 0.6657 0.0024 0.7463
132 | vn -0.8582 -0.0001 0.5134
133 | usemtl DefaultMaterial.001
134 | s 1
135 | f 1//1 2//1 3//1
136 | f 4//2 5//2 6//2
137 | f 7//3 8//3 9//3
138 | f 10//4 11//4 12//4
139 | f 13//5 14//5 15//5
140 | f 16//6 17//6 18//6
141 | f 19//7 20//7 21//7
142 | f 22//8 23//8 24//8
143 | f 25//9 26//9 27//9
144 | f 28//10 29//10 30//10
145 | f 31//11 32//11 33//11
146 | f 34//12 35//12 36//12
147 | f 37//13 38//13 39//13
148 | f 40//14 41//14 42//14
149 | f 43//15 44//15 45//15
150 | f 46//16 47//16 48//16
151 | f 49//17 50//17 51//17
152 | f 52//18 53//18 54//18
153 | f 55//19 56//19 57//19
154 | f 58//20 59//20 60//20
155 | f 61//21 62//21 63//21
156 | f 64//22 65//22 66//22
157 | f 67//23 68//23 69//23
158 | f 70//24 71//24 72//24
159 | f 73//25 74//25 75//25
160 | f 76//26 77//26 78//26
161 | f 79//27 80//27 81//27
162 | f 82//28 83//28 84//28
163 | f 85//29 86//29 87//29
164 | f 88//30 89//30 90//30
165 | f 91//31 92//31 93//31
166 | f 94//32 95//32 96//32
167 | o 立方体
168 | v 0.008375 0.009238 0.095061
169 | v 0.008375 0.004086 0.095061
170 | v 0.008375 0.009238 0.053440
171 | v 0.008375 0.004086 0.053440
172 | v -0.008746 0.009238 0.095061
173 | v -0.008746 0.004086 0.095061
174 | v -0.008746 0.009238 0.053440
175 | v -0.008746 0.004086 0.053440
176 | vt 0.375000 0.000000
177 | vt 0.625000 0.000000
178 | vt 0.625000 0.250000
179 | vt 0.375000 0.250000
180 | vt 0.625000 0.500000
181 | vt 0.375000 0.500000
182 | vt 0.625000 0.750000
183 | vt 0.375000 0.750000
184 | vt 0.625000 1.000000
185 | vt 0.375000 1.000000
186 | vt 0.125000 0.500000
187 | vt 0.125000 0.750000
188 | vt 0.875000 0.500000
189 | vt 0.875000 0.750000
190 | vn 0.5773 0.5773 0.5773
191 | vn 0.5773 -0.5773 0.5773
192 | vn 0.5773 -0.5773 -0.5773
193 | vn 0.5773 0.5773 -0.5773
194 | vn -0.5773 -0.5773 -0.5773
195 | vn -0.5773 0.5773 -0.5773
196 | vn -0.5773 -0.5773 0.5773
197 | vn -0.5773 0.5773 0.5773
198 | usemtl None
199 | s 1
200 | f 97/1/33 98/2/34 100/3/35 99/4/36
201 | f 99/4/36 100/3/35 104/5/37 103/6/38
202 | f 103/6/38 104/5/37 102/7/39 101/8/40
203 | f 101/8/40 102/7/39 98/9/34 97/10/33
204 | f 99/11/36 103/6/38 101/8/40 97/12/33
205 | f 104/5/37 100/13/35 98/14/34 102/7/39
206 |
--------------------------------------------------------------------------------
/franka_panda/meshes/collision/finger.obj:
--------------------------------------------------------------------------------
1 | # File produced by Open Asset Import Library (http://www.assimp.sf.net)
2 | # (assimp v3.0.1262)
3 |
4 | mtllib finger.stl.obj.mtl
5 |
6 | # 96 vertex positions
7 | v 0.01036 0.0264034 0.000154629
8 | v 0.0104486 0.0025833 0.000146801
9 | v -0.0103872 0.00253418 0.000131696
10 | v -0.0103872 0.00253418 0.000131696
11 | v -0.0104795 0.0161016 0.0189882
12 | v -0.0104013 0.0263094 0.00016651
13 | v -0.0104013 0.0263094 0.00016651
14 | v -0.0104795 0.0161016 0.0189882
15 | v -0.0103889 0.0252203 0.0191876
16 | v 0.0104486 0.0025833 0.000146801
17 | v -0.0087304 -2.35252e-05 0.0361648
18 | v -0.0103872 0.00253418 0.000131696
19 | v 0.0104005 0.0252534 0.0190366
20 | v -0.0103889 0.0252203 0.0191876
21 | v 0.00583983 0.0142743 0.0538035
22 | v -0.0103872 0.00253418 0.000131696
23 | v -0.0104013 0.0263094 0.00016651
24 | v 0.01036 0.0264034 0.000154629
25 | v 0.00861608 0.0139887 0.0513279
26 | v 0.0104948 0.0151026 0.0184356
27 | v 0.0104005 0.0252534 0.0190366
28 | v 0.0104948 0.0151026 0.0184356
29 | v 0.00869277 -0.000132643 0.0501662
30 | v 0.0104486 0.0025833 0.000146801
31 | v 0.00861608 0.0139887 0.0513279
32 | v 0.00869277 -0.000132643 0.0501662
33 | v 0.0104948 0.0151026 0.0184356
34 | v -0.00862294 -5.68019e-05 0.0509528
35 | v -0.0103872 0.00253418 0.000131696
36 | v -0.0087304 -2.35252e-05 0.0361648
37 | v 0.0104486 0.0025833 0.000146801
38 | v 0.00869277 -0.000132643 0.0501662
39 | v -0.0087304 -2.35252e-05 0.0361648
40 | v 0.00869277 -0.000132643 0.0501662
41 | v -0.00548142 -9.11208e-05 0.0537247
42 | v -0.0087304 -2.35252e-05 0.0361648
43 | v 0.0104005 0.0252534 0.0190366
44 | v 0.0104948 0.0151026 0.0184356
45 | v 0.0104486 0.0025833 0.000146801
46 | v 0.0104005 0.0252534 0.0190366
47 | v 0.0104486 0.0025833 0.000146801
48 | v 0.01036 0.0264034 0.000154629
49 | v 0.0104005 0.0252534 0.0190366
50 | v 0.01036 0.0264034 0.000154629
51 | v -0.0103889 0.0252203 0.0191876
52 | v -0.0103889 0.0252203 0.0191876
53 | v -0.00527792 0.0142931 0.053849
54 | v 0.00583983 0.0142743 0.0538035
55 | v -0.00777838 0.0142182 0.0523659
56 | v -0.00527792 0.0142931 0.053849
57 | v -0.0103889 0.0252203 0.0191876
58 | v -0.00862294 -5.68019e-05 0.0509528
59 | v -0.00548142 -9.11208e-05 0.0537247
60 | v -0.00777838 0.0142182 0.0523659
61 | v -0.0103872 0.00253418 0.000131696
62 | v -0.00862294 -5.68019e-05 0.0509528
63 | v -0.0104795 0.0161016 0.0189882
64 | v 0.0104005 0.0252534 0.0190366
65 | v 0.00583983 0.0142743 0.0538035
66 | v 0.00861608 0.0139887 0.0513279
67 | v 0.01036 0.0264034 0.000154629
68 | v -0.0104013 0.0263094 0.00016651
69 | v -0.0103889 0.0252203 0.0191876
70 | v -0.0104795 0.0161016 0.0189882
71 | v -0.00884117 0.0139176 0.0505894
72 | v -0.0103889 0.0252203 0.0191876
73 | v -0.00884117 0.0139176 0.0505894
74 | v -0.00777838 0.0142182 0.0523659
75 | v -0.0103889 0.0252203 0.0191876
76 | v 0.00583983 0.0142743 0.0538035
77 | v -0.00548142 -9.11208e-05 0.0537247
78 | v 0.00613802 -2.06026e-05 0.0535776
79 | v -0.00527792 0.0142931 0.053849
80 | v -0.00548142 -9.11208e-05 0.0537247
81 | v 0.00583983 0.0142743 0.0538035
82 | v 0.00869277 -0.000132643 0.0501662
83 | v 0.00613802 -2.06026e-05 0.0535776
84 | v -0.00548142 -9.11208e-05 0.0537247
85 | v 0.00613802 -2.06026e-05 0.0535776
86 | v 0.00869277 -0.000132643 0.0501662
87 | v 0.00861608 0.0139887 0.0513279
88 | v -0.00548142 -9.11208e-05 0.0537247
89 | v -0.00862294 -5.68019e-05 0.0509528
90 | v -0.0087304 -2.35252e-05 0.0361648
91 | v -0.00777838 0.0142182 0.0523659
92 | v -0.00548142 -9.11208e-05 0.0537247
93 | v -0.00527792 0.0142931 0.053849
94 | v -0.00862294 -5.68019e-05 0.0509528
95 | v -0.00884117 0.0139176 0.0505894
96 | v -0.0104795 0.0161016 0.0189882
97 | v 0.00613802 -2.06026e-05 0.0535776
98 | v 0.00861608 0.0139887 0.0513279
99 | v 0.00583983 0.0142743 0.0538035
100 | v -0.00777838 0.0142182 0.0523659
101 | v -0.00884117 0.0139176 0.0505894
102 | v -0.00862294 -5.68019e-05 0.0509528
103 |
104 | # 0 UV coordinates
105 |
106 | # 96 vertex normals
107 | vn 0.000724164 0.000331308 -1
108 | vn 0.000724164 0.000331308 -1
109 | vn 0.000724164 0.000331308 -1
110 | vn -0.99999 -0.000585782 -0.00447174
111 | vn -0.99999 -0.000585782 -0.00447174
112 | vn -0.99999 -0.000585782 -0.00447174
113 | vn -0.99995 0.00990875 0.00122006
114 | vn -0.99995 0.00990875 0.00122006
115 | vn -0.99995 0.00990875 0.00122006
116 | vn 0.00240304 -0.997479 -0.0709137
117 | vn 0.00240304 -0.997479 -0.0709137
118 | vn 0.00240304 -0.997479 -0.0709137
119 | vn 0.000668274 0.953556 0.301214
120 | vn 0.000668274 0.953556 0.301214
121 | vn 0.000668274 0.953556 0.301214
122 | vn -0.0005789 0.00146393 -0.999999
123 | vn -0.0005789 0.00146393 -0.999999
124 | vn -0.0005789 0.00146393 -0.999999
125 | vn 0.998344 0.00589157 0.0572229
126 | vn 0.998344 0.00589157 0.0572229
127 | vn 0.998344 0.00589157 0.0572229
128 | vn 0.998185 -0.050838 0.0322792
129 | vn 0.998185 -0.050838 0.0322792
130 | vn 0.998185 -0.050838 0.0322792
131 | vn 0.998371 0.000729252 0.0570496
132 | vn 0.998371 0.000729252 0.0570496
133 | vn 0.998371 0.000729252 0.0570496
134 | vn -0.871287 -0.490747 0.00522707
135 | vn -0.871287 -0.490747 0.00522707
136 | vn -0.871287 -0.490747 0.00522707
137 | vn 0.0362712 -0.99794 -0.0529128
138 | vn 0.0362712 -0.99794 -0.0529128
139 | vn 0.0362712 -0.99794 -0.0529128
140 | vn -0.00372285 -0.999988 -0.00316058
141 | vn -0.00372285 -0.999988 -0.00316058
142 | vn -0.00372285 -0.999988 -0.00316058
143 | vn 0.999909 0.00984192 -0.00926313
144 | vn 0.999909 0.00984192 -0.00926313
145 | vn 0.999909 0.00984192 -0.00926313
146 | vn 0.999991 0.00372285 -0.00191858
147 | vn 0.999991 0.00372285 -0.00191858
148 | vn 0.999991 0.00372285 -0.00191858
149 | vn -0.0011495 0.99815 0.0607926
150 | vn -0.0011495 0.99815 0.0607926
151 | vn -0.0011495 0.99815 0.0607926
152 | vn 0.00284562 0.953846 0.300284
153 | vn 0.00284562 0.953846 0.300284
154 | vn 0.00284562 0.953846 0.300284
155 | vn -0.218924 0.920873 0.32259
156 | vn -0.218924 0.920873 0.32259
157 | vn -0.218924 0.920873 0.32259
158 | vn -0.661425 -0.0350314 0.749193
159 | vn -0.661425 -0.0350314 0.749193
160 | vn -0.661425 -0.0350314 0.749193
161 | vn -0.998169 -0.0513123 0.0320353
162 | vn -0.998169 -0.0513123 0.0320353
163 | vn -0.998169 -0.0513123 0.0320353
164 | vn 0.377717 0.867563 0.323518
165 | vn 0.377717 0.867563 0.323518
166 | vn 0.377717 0.867563 0.323518
167 | vn -0.00448618 0.998355 0.0571685
168 | vn -0.00448618 0.998355 0.0571685
169 | vn -0.00448618 0.998355 0.0571685
170 | vn -0.998589 0.0087761 0.0523757
171 | vn -0.998589 0.0087761 0.0523757
172 | vn -0.998589 0.0087761 0.0523757
173 | vn -0.665951 0.690851 0.281485
174 | vn -0.665951 0.690851 0.281485
175 | vn -0.665951 0.690851 0.281485
176 | vn 0.0127505 -0.0155288 0.999798
177 | vn 0.0127505 -0.0155288 0.999798
178 | vn 0.0127505 -0.0155288 0.999798
179 | vn 0.00408502 -0.00870048 0.999954
180 | vn 0.00408502 -0.00870048 0.999954
181 | vn 0.00408502 -0.00870048 0.999954
182 | vn 0.006542 -0.999267 0.0377181
183 | vn 0.006542 -0.999267 0.0377181
184 | vn 0.006542 -0.999267 0.0377181
185 | vn 0.798906 -0.0450007 0.59977
186 | vn 0.798906 -0.0450007 0.59977
187 | vn 0.798906 -0.0450007 0.59977
188 | vn -0.00899609 -0.999957 -0.00218479
189 | vn -0.00899609 -0.999957 -0.00218479
190 | vn -0.00899609 -0.999957 -0.00218479
191 | vn -0.510144 -0.000216662 0.860089
192 | vn -0.510144 -0.000216662 0.860089
193 | vn -0.510144 -0.000216662 0.860089
194 | vn -0.998608 -0.0142745 0.0507836
195 | vn -0.998608 -0.0142745 0.0507836
196 | vn -0.998608 -0.0142745 0.0507836
197 | vn 0.665648 0.00209596 0.746263
198 | vn 0.665648 0.00209596 0.746263
199 | vn 0.665648 0.00209596 0.746263
200 | vn -0.858159 -4.90786e-05 0.513384
201 | vn -0.858159 -4.90786e-05 0.513384
202 | vn -0.858159 -4.90786e-05 0.513384
203 |
204 | # Mesh '' with 32 faces
205 | g
206 | usemtl DefaultMaterial
207 | f 1//1 2//2 3//3
208 | f 4//4 5//5 6//6
209 | f 7//7 8//8 9//9
210 | f 10//10 11//11 12//12
211 | f 13//13 14//14 15//15
212 | f 16//16 17//17 18//18
213 | f 19//19 20//20 21//21
214 | f 22//22 23//23 24//24
215 | f 25//25 26//26 27//27
216 | f 28//28 29//29 30//30
217 | f 31//31 32//32 33//33
218 | f 34//34 35//35 36//36
219 | f 37//37 38//38 39//39
220 | f 40//40 41//41 42//42
221 | f 43//43 44//44 45//45
222 | f 46//46 47//47 48//48
223 | f 49//49 50//50 51//51
224 | f 52//52 53//53 54//54
225 | f 55//55 56//56 57//57
226 | f 58//58 59//59 60//60
227 | f 61//61 62//62 63//63
228 | f 64//64 65//65 66//66
229 | f 67//67 68//68 69//69
230 | f 70//70 71//71 72//72
231 | f 73//73 74//74 75//75
232 | f 76//76 77//77 78//78
233 | f 79//79 80//80 81//81
234 | f 82//82 83//83 84//84
235 | f 85//85 86//86 87//87
236 | f 88//88 89//89 90//90
237 | f 91//91 92//92 93//93
238 | f 94//94 95//95 96//96
239 |
240 |
--------------------------------------------------------------------------------
/panda_sim_grasp.py:
--------------------------------------------------------------------------------
1 | import time
2 | import numpy as np
3 | import math
4 |
5 | useNullSpace = 1
6 | ikSolver = 0
7 | pandaEndEffectorIndex = 11 #8
8 | pandaNumDofs = 7
9 |
10 | ll = [-7]*pandaNumDofs
11 | #upper limits for null space (todo: set them to proper range)
12 | ul = [7]*pandaNumDofs
13 | #joint ranges for null space (todo: set them to proper range)
14 | jr = [7]*pandaNumDofs
15 | # restposes for null space
16 | jointPositions=(0.8045609285966308, 0.525471701354679, -0.02519566900946519, -1.3925086098003587, 0.013443782914225877, 1.9178323512245277, -0.007207024243406651, 0.01999436579245478, 0.019977024051412193)
17 | # [0.98, 0.458, 0.31, -2.24, -0.30, 2.66, 2.32, 0.02, 0.02]
18 | rp = jointPositions
19 |
20 | class PandaSim(object):
21 | def __init__(self, bullet_client, offset):
22 | self.p = bullet_client
23 | self.p.setPhysicsEngineParameter(solverResidualThreshold=0)
24 | self.offset = np.array(offset)
25 |
26 | flags = self.p.URDF_ENABLE_CACHED_GRAPHICS_SHAPES
27 | orn=[0, 0, 0, 1]
28 | self.panda = self.p.loadURDF("franka_panda/panda_1.urdf", np.array([0,0,0])+self.offset, orn, useFixedBase=True, flags=flags)
29 | index = 0
30 | self.state = 0
31 | self.control_dt = 1./240.
32 | self.finger_target = 0
33 | self.gripper_height = 0.2
34 | #create a constraint to keep the fingers centered
35 | c = self.p.createConstraint(self.panda,
36 | 9,
37 | self.panda,
38 | 10,
39 | jointType=self.p.JOINT_GEAR,
40 | jointAxis=[1, 0, 0],
41 | parentFramePosition=[0, 0, 0],
42 | childFramePosition=[0, 0, 0])
43 | self.p.changeConstraint(c, gearRatio=-1, erp=0.1, maxForce=50)
44 |
45 | for j in range(self.p.getNumJoints(self.panda)):
46 | self.p.changeDynamics(self.panda, j, linearDamping=0, angularDamping=0)
47 | info = self.p.getJointInfo(self.panda, j)
48 | #print("info=",info)
49 | jointName = info[1]
50 | jointType = info[2]
51 | if (jointType == self.p.JOINT_PRISMATIC):
52 | self.p.resetJointState(self.panda, j, jointPositions[index])
53 | index=index+1
54 |
55 | if (jointType == self.p.JOINT_REVOLUTE):
56 | self.p.resetJointState(self.panda, j, jointPositions[index])
57 | index=index+1
58 | self.t = 0.
59 |
60 | def calcJointLocation(self, pos, orn):
61 | """
62 | 根据 pos 和 orn 计算机械臂的关节位置
63 | """
64 | jointPoses = self.p.calculateInverseKinematics(self.panda, pandaEndEffectorIndex, pos, orn, ll, ul, jr, rp, maxNumIterations=20)
65 | return jointPoses
66 |
67 |
68 | def setArm(self, jointPoses):
69 | """
70 | 设置机械臂位置
71 | """
72 | for i in range(pandaNumDofs):
73 | self.p.setJointMotorControl2(self.panda, i, self.p.POSITION_CONTROL, jointPoses[i], force=5 * 240.)
74 |
75 | def setGripper(self, finger_target):
76 | """
77 | 设置机械手位置
78 | """
79 | for i in [9,10]:
80 | self.p.setJointMotorControl2(self.panda, i, self.p.POSITION_CONTROL, finger_target, force= 30)
81 |
82 |
83 | def step(self, pos, angle, gripper_w):
84 | """
85 | pos: [x, y, z]
86 | angle: 弧度
87 | gripper_w: 抓取器张开宽度
88 | """
89 |
90 | # 测试用
91 | # pos = [0.5, 0, 0.3] # 机械手位置
92 | # orn = self.p.getQuaternionFromEuler([math.pi, 0., math.pi / 2]) # 机械手方向
93 | # jointPoses = self.calcJointLocation(pos, orn)
94 | # print('jointPoses = ', jointPoses)
95 | # self.setArm(jointPoses)
96 | # return False
97 |
98 | # 更新状态
99 | self.update_state()
100 |
101 | pos[2] += 0.047
102 | if self.state == 0:
103 | # print('恢复初始状态')
104 | pos = [0.5, 0, 0.4] # 机械手位置
105 | orn = self.p.getQuaternionFromEuler([math.pi,0., math.pi / 2]) # 机械手方向
106 | jointPoses = self.calcJointLocation(pos, orn)
107 | self.setArm(jointPoses)
108 | return False
109 |
110 | elif self.state == 1:
111 | # print('物体上方,张开抓取器')
112 | pos[2] += 0.1
113 | orn = self.p.getQuaternionFromEuler([math.pi,0.,angle + math.pi / 2]) # 机械手方向
114 | jointPoses = self.calcJointLocation(pos, orn)
115 | self.setArm(jointPoses)
116 | self.setGripper(gripper_w)
117 | return False
118 |
119 | elif self.state == 2:
120 | # print('抓取位置')
121 | orn = self.p.getQuaternionFromEuler([math.pi,0.,angle + math.pi / 2]) # 机械手方向
122 | jointPoses = self.calcJointLocation(pos, orn)
123 | self.setArm(jointPoses)
124 | return False
125 |
126 | elif self.state == 3:
127 | # print('闭合抓取器')
128 | self.setGripper(0)
129 | return False
130 |
131 | elif self.state == 4:
132 | # print('物体上方')
133 | pos[2] += 0.05
134 | orn = self.p.getQuaternionFromEuler([math.pi,0.,angle + math.pi / 2]) # 机械手方向
135 | jointPoses = self.calcJointLocation(pos, orn)
136 | self.setArm(jointPoses)
137 | return False
138 |
139 | elif self.state == 5:
140 | # print('物体上方(预抓取位置)')
141 | pos[2] = 0.4
142 | orn = self.p.getQuaternionFromEuler([math.pi,0.,angle + math.pi / 2]) # 机械手方向
143 | jointPoses = self.calcJointLocation(pos, orn)
144 | self.setArm(jointPoses)
145 | return False
146 |
147 | # ========================= 晃动抓取器,测试抓取稳定性 =========================
148 | elif self.state == 6:
149 | # print('x正方向晃动')
150 | pos[2] = 0.4
151 | pos[0] -= 0.05
152 | orn = self.p.getQuaternionFromEuler([math.pi,0.,angle + math.pi / 2]) # 机械手方向
153 | jointPoses = self.calcJointLocation(pos, orn)
154 | self.setArm(jointPoses)
155 | return False
156 | elif self.state == 7:
157 | # print('x负方向晃动')
158 | pos[2] = 0.4
159 | pos[0] += 0.05
160 | orn = self.p.getQuaternionFromEuler([math.pi,0.,angle + math.pi / 2]) # 机械手方向
161 | jointPoses = self.calcJointLocation(pos, orn)
162 | self.setArm(jointPoses)
163 | return False
164 | # ========================= =========================
165 |
166 | elif self.state == 8:
167 | # print('托盘边缘')
168 | pos = [0.3, 0, 0.4] # 机械手位置
169 | orn = self.p.getQuaternionFromEuler([math.pi,0.,math.pi / 2]) # 机械手方向
170 | jointPoses = self.calcJointLocation(pos, orn)
171 | self.setArm(jointPoses)
172 | return False
173 |
174 | elif self.state == 9:
175 | # print('盒子上方')
176 | pos = [0.5, 0, 0.4] # 机械手位置
177 | orn = self.p.getQuaternionFromEuler([math.pi,0.,math.pi / 2]) # 机械手方向
178 | jointPoses = self.calcJointLocation(pos, orn)
179 | self.setArm(jointPoses)
180 | return False
181 |
182 | elif self.state == 10:
183 | # print('张开抓取器')
184 | self.setGripper(0.04)
185 | self.reset() # 重置状态
186 | return True
187 |
188 |
189 | def reset(self):
190 | """
191 | 重置状态
192 | """
193 | self.state = 0
194 | self.state_t = 0
195 | self.cur_state = 0
196 |
197 |
198 | class PandaSimAuto(PandaSim):
199 | def __init__(self, bullet_client, offset):
200 | """
201 | 0: 重置状态
202 | 1: 物体上方(预抓取位置),张开抓取器
203 | 2: 抓取位置
204 | 3: 闭合抓取器
205 | 4: 物体上方(预抓取位置)
206 |
207 | 5: x正方向晃动
208 | 6: 物体上方(预抓取位置)
209 | 7: x负方向晃动
210 | 8: 物体上方(预抓取位置)
211 |
212 | 9: 盒子上方
213 | 10: 张开抓取器
214 | """
215 | PandaSim.__init__(self, bullet_client, offset)
216 | self.state_t = 0
217 | self.cur_state = 0
218 | self.states=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
219 | self.state_durations=[0.5, 0.5, 1, 1, 1, 0.5, 0.1, 0.1, 0.1, 0.5, 0.5]
220 |
221 | def update_state(self):
222 | self.state_t += self.control_dt
223 | if self.state_t > self.state_durations[self.cur_state]:
224 | self.cur_state += 1
225 | if self.cur_state >= len(self.states):
226 | self.cur_state = 0
227 | self.state_t = 0
228 | self.state=self.states[self.cur_state]
229 | #print("self.state=",self.state)
230 |
--------------------------------------------------------------------------------
/franka_panda/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
--------------------------------------------------------------------------------
/simEnv.py:
--------------------------------------------------------------------------------
1 | """
2 | 虚拟环境文件
3 | 初始化虚拟环境,加载物体,渲染图像,保存图像
4 |
5 | (待写) !! 保存虚拟环境状态,以便离线抓取测试
6 | """
7 |
8 | import pybullet as p
9 | import pybullet_data
10 | import time
11 | import math
12 | import os
13 | import glob
14 | import random
15 | import cv2
16 | import shutil
17 | import numpy as np
18 | import scipy.io as scio
19 | from mesh import Mesh
20 | import tool
21 |
22 | # 图像尺寸
23 | IMAGEWIDTH = 640
24 | IMAGEHEIGHT = 480
25 |
26 | nearPlane = 0.01
27 | farPlane = 10
28 |
29 | fov = 60 # 垂直视场 图像高tan(30) * 0.7 *2 = 0.8082903m
30 | aspect = IMAGEWIDTH / IMAGEHEIGHT
31 |
32 | size=(0.8, 0.8) # 桌面深度图实际尺寸 m
33 | unit=0.0002 # 每个像素的长度 0.1mm
34 |
35 |
36 | def get_urdf_xyz(filename):
37 | """
38 | 获取urdfs_xyz
39 | filename: urdf文件名
40 | """
41 | with open(filename) as f:
42 | line = f.readlines()[15][32:-5]
43 | strs = line.split(" ")
44 | return [float(strs[0]), float(strs[1]), float(strs[2])]
45 |
46 | def get_urdf_scale(filename):
47 | """
48 | 获取urdfs_scale
49 | filename: urdf文件名
50 | """
51 | with open(filename) as f:
52 | line = f.readlines()[17]
53 | idx = line.find('scale') + 7
54 | strs = line[idx:-5].split(" ")
55 | return float(strs[0])
56 |
57 |
58 |
59 | class SimEnv(object):
60 | """
61 | 虚拟环境类
62 | """
63 | def __init__(self, bullet_client, path):
64 | """
65 | path: 模型路径
66 | """
67 | self.p = bullet_client
68 | self.p.configureDebugVisualizer(p.COV_ENABLE_GUI, 0)
69 | self.p.setPhysicsEngineParameter(maxNumCmdPer1ms=1000)
70 | self.p.resetDebugVisualizerCamera(cameraDistance=1.3, cameraYaw=38, cameraPitch=-22, cameraTargetPosition=[0, 0, 0])
71 | self.p.setAdditionalSearchPath(pybullet_data.getDataPath()) # 添加路径
72 | self.p.loadURDF("plane.urdf", [0, 0, 0]) # 加载地面
73 | self.p.loadURDF('myModel/tray/tray.urdf', [0, 0, 0]) # 加载托盘
74 | self.p.setGravity(0, 0, -9.8) # 设置重力
75 |
76 | self.flags = self.p.URDF_ENABLE_CACHED_GRAPHICS_SHAPES
77 | self.p.setPhysicsEngineParameter(solverResidualThreshold=0)
78 |
79 | # 加载相机
80 | self.viewMatrix = self.p.computeViewMatrix([0, 0, 0.7], [0, 0, 0], [0, 1, 0])
81 | self.projectionMatrix = self.p.computeProjectionMatrixFOV(fov, aspect, nearPlane, farPlane)
82 |
83 | # 获取urdf物体列表
84 | if isinstance(path, str):
85 | self.urdfs_list = glob.glob(os.path.join(path, '*.urdf'))
86 | self.urdfs_list.sort()
87 | elif isinstance(path, list):
88 | self.urdfs_list = []
89 | for pth in path:
90 | self.urdfs_list.extend(glob.glob(os.path.join(pth, '*.urdf')))
91 | random.shuffle(self.urdfs_list) # 随机排序
92 |
93 | self.num_urdf = 0
94 | self.urdfs_id = []
95 |
96 | self.EulerRPList = [[0, 0], [math.pi/2, 0], [-1*math.pi/2, 0], [math.pi, 0], [0, math.pi/2], [0, -1*math.pi/2]]
97 |
98 | # 获取obj物体列表
99 | # self.objs_list = glob.glob(os.path.join(path, '*.obj'))
100 | # self.objs_list.sort()
101 | # self.num_obj = 0
102 | # self.objs_id = []
103 |
104 | def _urdf_nums(self):
105 | return len(self.urdfs_list)
106 |
107 |
108 | def init_single_mesh(self, urdfname, quaternion):
109 | """
110 | 初始化mesh
111 | """
112 | # 获取obj当前位姿
113 | offset = [0, 0, 0]
114 | # quaternion = [0, 0, 0, 1]
115 |
116 | # 计算从obj坐标系到URDF坐标系的变换矩阵
117 | # 平移:self.xyz [-0.019, 0.019, -0.019] 旋转: 欧拉角[1.570796, 0, 0]
118 | # (1) 欧拉角->四元数
119 | orn = self.p.getQuaternionFromEuler([1.570796, 0, 0])
120 | # (2) 四元数->旋转矩阵
121 | rot = tool.quaternion_to_rotation_matrix(orn)
122 | # (3) 计算变换矩阵
123 | urdf_xyz = get_urdf_xyz(urdfname)
124 | mat = tool.getTransfMat(urdf_xyz, rot)
125 |
126 | # 获取obj文件路径
127 | objURDF_name = urdfname.replace('.urdf', '.obj') # 单物体时使用
128 |
129 | # 读取obj文件,并根据scale缩放
130 | urdf_scale = get_urdf_scale(urdfname)
131 | mesh = Mesh(objURDF_name, urdf_scale)
132 |
133 | # 计算物体的变换矩阵(从URDF坐标系到物体坐标系)
134 | rotate_mat = tool.quaternion_to_rotation_matrix(quaternion) # 四元数转旋转矩阵
135 | transMat = tool.getTransfMat(offset, rotate_mat)
136 |
137 | transMat = np.matmul(transMat, mat) # !!!! 注意乘的顺序, 使用
138 |
139 | # 根据旋转矩阵调整mesh顶点坐标
140 | mesh.transform(transMat)
141 |
142 | return mesh
143 |
144 |
145 | # 加载单物体
146 | def loadObjInURDF(self, idx, num, render_n):
147 | """
148 | 以URDF的格式加载单个obj物体
149 |
150 | idx: 物体id
151 | render_n: 当前物体的渲染次数,根据此获取物体的朝向
152 | """
153 | # 获取物体文件
154 | self.urdfs_filename = [self.urdfs_list[idx]]
155 | self.num_urdf = 1
156 |
157 | print('urdf filename = ', os.path.basename(self.urdfs_filename[0]))
158 |
159 | self.urdfs_id = []
160 | self.urdfs_xyz = []
161 | self.urdfs_scale = []
162 |
163 | # 随机方向
164 | # baseEuler = [self.EulerRPList[render_n][0], self.EulerRPList[render_n][1], random.uniform(0, 2*math.pi)]
165 | baseEuler = [random.uniform(0, 2*math.pi), random.uniform(0, 2*math.pi), random.uniform(0, 2*math.pi)]
166 | baseOrientation = self.p.getQuaternionFromEuler(baseEuler)
167 | # baseOrientation = [0, 0, 0, 1] # 固定方向
168 |
169 | # 初始化mesh
170 | mesh = self.init_single_mesh(self.urdfs_filename[0], baseOrientation)
171 | min_z = mesh.min_z()
172 |
173 | # 随机位置
174 | pos = 0.1
175 | # basePosition = [random.uniform(-1 * pos, pos), random.uniform(-1 * pos, pos), random.uniform(0.1, 0.4)]
176 | basePosition = [random.uniform(-1 * pos, pos), random.uniform(-1 * pos, pos), -1*min_z]
177 | # basePosition = [0.05, 0.05, 0.1] # 固定位置
178 |
179 | # 加载物体
180 | urdf_id = self.p.loadURDF(self.urdfs_filename[0], basePosition, baseOrientation)
181 |
182 | # 获取xyz和scale信息
183 | inf = self.p.getVisualShapeData(urdf_id)[0]
184 |
185 | self.urdfs_id.append(urdf_id)
186 | self.urdfs_xyz.append(inf[5])
187 | self.urdfs_scale.append(inf[3][0])
188 |
189 | """
190 | 原始加载函数
191 | """
192 | def loadObjsInURDF(self, idx, num):
193 | """
194 | 以URDF的格式加载多个obj物体
195 |
196 | num: 加载物体的个数
197 | idx: 开始的id
198 | idx为负数时,随机加载num个物体
199 | idx为非负数时,从id开始加载num个物体
200 | """
201 | assert idx >= 0
202 | self.num_urdf = num
203 |
204 | # 获取物体文件
205 | if (idx + self.num_urdf) >= (len(self.urdfs_list) - 1): # 这段代码主要针对加载多物体的情况
206 | self.num_urdf = len(self.urdfs_list) - 1 - idx
207 | assert self.num_urdf >= 0
208 | if self.num_urdf == 0:
209 | self.urdfs_filename = [self.urdfs_list[idx]]
210 | self.num_urdf = 1
211 | else:
212 | self.urdfs_filename = self.urdfs_list[idx:idx+self.num_urdf]
213 |
214 | print('self.urdfs_filename = ', self.urdfs_filename)
215 |
216 | self.urdfs_id = []
217 | self.urdfs_xyz = []
218 | self.urdfs_scale = []
219 | for i in range(self.num_urdf):
220 | # 随机位置
221 | pos = 0.05
222 | basePosition = [random.uniform(-1 * pos, pos), random.uniform(-1 * pos, pos), random.uniform(0.1, 0.4)]
223 | # basePosition = [0, 0, 0.1] # 固定位置
224 |
225 | # 随机方向
226 | baseEuler = [random.uniform(0, 2*math.pi), random.uniform(0, 2*math.pi), random.uniform(0, 2*math.pi)]
227 | baseOrientation = self.p.getQuaternionFromEuler(baseEuler)
228 | # baseOrientation = [0, 0, 0, 1] # 固定方向
229 |
230 | # 加载物体
231 | urdf_id = self.p.loadURDF(self.urdfs_filename[i], basePosition, baseOrientation)
232 |
233 | # 获取xyz和scale信息
234 | inf = self.p.getVisualShapeData(urdf_id)[0]
235 |
236 | self.urdfs_id.append(urdf_id)
237 | self.urdfs_xyz.append(inf[5])
238 | self.urdfs_scale.append(inf[3][0])
239 |
240 |
241 | def removeObjsInURDF(self):
242 | """
243 | 移除objs
244 | """
245 | for i in range(self.num_urdf):
246 | self.p.removeBody(self.urdfs_id[i])
247 |
248 |
249 | def renderURDFImage(self, save_path):
250 | """
251 | 渲染图像
252 | """
253 | if not os.path.exists(save_path):
254 | os.mkdir(save_path)
255 |
256 | # ======================== 渲染相机深度图 ========================
257 | print('>> 渲染相机深度图...')
258 | # 渲染图像
259 | img_camera = self.p.getCameraImage(IMAGEWIDTH, IMAGEHEIGHT, self.viewMatrix, self.projectionMatrix, renderer=p.ER_BULLET_HARDWARE_OPENGL)
260 | w = img_camera[0] # width of the image, in pixels
261 | h = img_camera[1] # height of the image, in pixels
262 | rgba = img_camera[2] # color data RGB
263 | dep = img_camera[3] # depth data
264 | mask = img_camera[4] # mask data
265 |
266 | # 获取彩色图像
267 | im_rgb = np.reshape(rgba, (h, w, 4))[:, :, [2, 1, 0]]
268 | im_rgb = im_rgb.astype(np.uint8)
269 |
270 | # 获取深度图像
271 | depth = np.reshape(dep, (h, w)) # [40:440, 120:520]
272 | A = np.ones((IMAGEHEIGHT, IMAGEWIDTH), dtype=np.float64) * farPlane * nearPlane
273 | B = np.ones((IMAGEHEIGHT, IMAGEWIDTH), dtype=np.float64) * farPlane
274 | C = np.ones((IMAGEHEIGHT, IMAGEWIDTH), dtype=np.float64) * (farPlane - nearPlane)
275 | # im_depthCamera = A / (B - C * depth) # 单位 m
276 | im_depthCamera = np.divide(A, (np.subtract(B, np.multiply(C, depth)))) # 单位 m
277 | im_depthCamera_rev = np.ones((IMAGEHEIGHT, IMAGEWIDTH), dtype=np.float) * im_depthCamera.max() - im_depthCamera # 反转深度
278 |
279 | # 获取分割图像
280 | im_mask = np.reshape(mask, (h, w))
281 |
282 | # 保存图像
283 | # print('>> 保存相机深度图')
284 | scio.savemat(save_path + '/camera_rgb.mat', {'A':im_rgb})
285 | scio.savemat(save_path + '/camera_depth.mat', {'A':im_depthCamera})
286 | scio.savemat(save_path + '/camera_depth_rev.mat', {'A':im_depthCamera_rev})
287 | scio.savemat(save_path + '/camera_mask.mat', {'A':im_mask})
288 |
289 | cv2.imwrite(save_path + '/camera_rgb.png', im_rgb)
290 | # cv2.imwrite(save_path + '/camera_mask.png', im_mask*20)
291 | cv2.imwrite(save_path + '/camera_depth.png', tool.depth2Gray(im_depthCamera))
292 | cv2.imwrite(save_path + '/camera_depth_rev.png', tool.depth2Gray(im_depthCamera_rev))
293 |
294 | print('>> 渲染结束')
295 |
296 |
297 |
298 |
--------------------------------------------------------------------------------
/franka_panda/panda.urdf:
--------------------------------------------------------------------------------
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 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
--------------------------------------------------------------------------------
/franka_panda/panda_1.urdf:
--------------------------------------------------------------------------------
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 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
339 |
340 |
341 |
342 |
343 |
344 |
345 |
--------------------------------------------------------------------------------
/franka_panda/meshes/collision/link0.obj:
--------------------------------------------------------------------------------
1 | # File produced by Open Asset Import Library (http://www.assimp.sf.net)
2 | # (assimp v3.1.187496374)
3 |
4 | mtllib link0.obj.mtl
5 |
6 | # 102 vertex positions
7 | v -0.00122674 -0.0946137 -3.24928e-05
8 | v 0.0710809 0.00844602 0.00133993
9 | v 0.071567 -0.00127396 0.0013494
10 | v -0.00051723 0.0946704 -6.42576e-06
11 | v 0.0706646 -0.0115626 0.00133336
12 | v -0.135131 -0.0658707 0.00751985
13 | v -0.136305 -0.0659457 3.26395e-07
14 | v -0.131625 -0.0687992 -5.27309e-07
15 | v 0.0543353 -0.0469489 0.00104792
16 | v 0.0619449 -0.0359785 0.00118116
17 | v 0.0673593 -0.0245271 0.00127621
18 | v 0.0526517 -0.0163561 0.14
19 | v 0.0548547 0.00447165 0.14
20 | v -0.0549666 0.00345713 0.14
21 | v 0.0391015 0.0387489 0.14
22 | v 0.00777804 -0.0910717 0.00846191
23 | v 0.0395665 -0.0384696 0.140003
24 | v -0.029337 -0.0466451 0.140001
25 | v 0.000349224 -0.0550819 0.14
26 | v 0.0686186 0.0208178 0.00129774
27 | v 0.0635871 0.0329931 0.00120988
28 | v 0.0525783 0.048771 0.00101755
29 | v 0.05859 0.0412413 0.00112268
30 | v 0.0509475 0.0207886 0.14
31 | v -0.0218528 0.0506849 0.14
32 | v -0.0317059 0.0450099 0.14
33 | v 0.0317161 0.0450507 0.14
34 | v -0.0400853 0.0378337 0.14
35 | v -0.0477037 0.0275963 0.14
36 | v 0.00485769 0.0549582 0.14
37 | v 0.0474762 -0.0279259 0.14
38 | v -0.00886536 0.0543586 0.140002
39 | v 0.0276805 -0.0476799 0.14
40 | v -0.054766 -0.0054659 0.14
41 | v -0.0528838 -0.015585 0.14
42 | v -0.122615 0.00563594 0.0611487
43 | v -0.122711 -0.00614431 0.060957
44 | v 0.0143701 -0.0532489 0.139999
45 | v -0.071675 -0.0756205 0.0575204
46 | v -0.111235 -0.0474773 0.0590551
47 | v -0.137824 -0.0624363 0.00755269
48 | v -0.133699 0.0669321 0.00741502
49 | v -0.13583 0.0663151 8.33834e-07
50 | v -0.136293 0.0646171 0.00756638
51 | v -0.131612 0.0688472 7.4968e-07
52 | v 0.0031716 0.0933497 0.00863144
53 | v 0.00408648 0.0939818 0.000170711
54 | v 0.0462474 0.0300326 0.14
55 | v 0.0548768 -0.00456585 0.14
56 | v -0.129159 0.0686836 0.00744486
57 | v -0.0528609 0.0157105 0.14
58 | v 0.0200202 0.0514462 0.139999
59 | v 0.00648893 0.0735192 0.08108
60 | v 0.00826788 -0.0918247 0.00024289
61 | v -0.0464371 -0.0299037 0.14
62 | v -0.140043 0.0607227 -1.6486e-07
63 | v 0.00769447 0.0922715 0.000234291
64 | v -0.00159938 0.0936322 0.00849181
65 | v 0.00734398 0.0914466 0.00831775
66 | v -0.148808 -0.0420547 -7.21858e-08
67 | v -0.149244 -0.0371861 0.00781712
68 | v -0.152578 -0.0248176 1.68373e-07
69 | v 0.00907648 0.0737151 0.0784549
70 | v -0.121673 -0.0147367 0.0614178
71 | v 0.00678171 -0.0735316 0.0809757
72 | v -0.130951 -0.0681401 0.00766805
73 | v -0.0189172 -0.051755 0.14
74 | v -0.00908423 -0.0542971 0.14
75 | v -0.0658985 -0.0765477 0.0589793
76 | v -0.0376956 -0.0401377 0.14
77 | v -0.143472 -0.0548617 -4.38612e-08
78 | v -0.145452 -0.0485961 0.00768247
79 | v -0.1203 -0.0235449 0.0615099
80 | v -0.118609 -0.03105 0.06134
81 | v -0.114761 -0.0419663 0.0601784
82 | v -0.154079 -0.00554168 -3.75503e-07
83 | v -0.152725 -0.0137992 0.00819143
84 | v -0.153166 -0.00203576 0.00835078
85 | v -0.142117 0.0555469 0.00762839
86 | v 0.0535544 0.0128185 0.14
87 | v -0.109983 0.0486112 0.0588796
88 | v 0.00366946 -0.0932492 0.00847566
89 | v 0.00349566 -0.0942157 0.000177738
90 | v 0.00906588 -0.073708 0.0785962
91 | v -0.117004 -0.0366378 0.0608364
92 | v -0.151587 -0.0248333 0.00804774
93 | v -0.15241 0.0258275 -1.09161e-08
94 | v -0.153841 0.0105757 0
95 | v -0.15202 0.0217804 0.00810954
96 | v -0.121149 0.0181378 0.0615703
97 | v -0.113238 0.0447149 0.0596848
98 | v -0.000866581 -0.0937369 0.00817823
99 | v -0.141842 -0.0559592 0.00761703
100 | v -0.149634 0.0355816 0.00786878
101 | v -0.14929 0.0402499 3.01802e-07
102 | v -0.152949 0.0100689 0.00821985
103 | v -0.145377 0.0508924 -1.27878e-07
104 | v -0.11571 0.0395945 0.0607111
105 | v -0.0231112 -0.0759725 0.0689683
106 | v -0.117233 0.035881 0.060957
107 | v -0.146172 0.0467529 0.00770437
108 | v -0.119414 0.0287903 0.0611397
109 |
110 | # 0 UV coordinates
111 |
112 | # 200 vertex normals
113 | vn 0.0190098 -2.30831e-05 -0.999819
114 | vn 0.0188816 6.69136e-05 -0.999822
115 | vn 0.0191344 -0.000120273 -0.999817
116 | vn -0.518479 -0.850405 0.0893954
117 | vn 0.0222843 -0.00331509 -0.999746
118 | vn 0.0205047 -0.00139704 -0.999789
119 | vn 7.25974e-07 -5.81537e-06 1
120 | vn 9.85433e-07 -5.68784e-06 1
121 | vn 0.991829 0.0497189 0.11749
122 | vn 0.692904 -0.711464 0.11706
123 | vn 4.45103e-05 3.61862e-05 1
124 | vn 0.0193277 0.000437566 -0.999813
125 | vn 0.0199677 0.0010368 -0.9998
126 | vn 0.0232843 0.0046319 -0.999718
127 | vn 0.0210964 0.0022106 -0.999775
128 | vn 0.0197075 -0.000616531 -0.999806
129 | vn 6.42989e-05 2.18738e-05 1
130 | vn 0.91755 0.380023 0.116978
131 | vn 3.35708e-05 -1.87847e-05 1
132 | vn -7.63878e-06 1.53928e-05 1
133 | vn -8.50133e-06 1.24836e-05 1
134 | vn 8.62742e-06 2.71648e-06 1
135 | vn 4.31916e-06 1.10982e-05 1
136 | vn 0.000248513 -0.00151077 0.999999
137 | vn -0.000100683 -0.000160507 1
138 | vn 0.000441559 2.26903e-05 1
139 | vn -0.759017 -0.00436697 0.651056
140 | vn -0.758153 -0.0170388 0.651854
141 | vn -4.08147e-05 -6.51499e-05 1
142 | vn 3.63574e-05 2.96612e-05 1
143 | vn -0.488489 -0.714003 0.501575
144 | vn -0.779928 -0.612675 0.127831
145 | vn -0.6563 0.74377 0.126791
146 | vn -0.51319 0.854867 0.0764032
147 | vn 0.143998 0.98555 0.0891981
148 | vn 6.6605e-05 0.00021454 1
149 | vn 0.794096 -0.595678 0.120749
150 | vn 0.815277 -0.566949 0.117862
151 | vn 0.897326 -0.425249 0.118194
152 | vn 0.906239 -0.40539 0.119958
153 | vn 0.848855 0.515505 0.117047
154 | vn 0.992823 0.00242477 0.11957
155 | vn 0.000137166 -1.78568e-05 1
156 | vn -0.256878 0.90791 0.331229
157 | vn -4.88056e-05 2.05051e-05 1
158 | vn 1.50367e-05 -7.30032e-06 1
159 | vn -3.22116e-05 6.85885e-05 1
160 | vn -0.0415945 0.953296 0.29916
161 | vn 0.0339572 -0.0169327 -0.99928
162 | vn -9.01903e-05 -3.23136e-05 1
163 | vn -0.795774 0.599474 0.0858742
164 | vn 0.423964 0.898605 0.112979
165 | vn 0.047941 0.0640793 -0.996793
166 | vn 0.0548988 0.990257 0.12797
167 | vn 0.0494285 0.963916 0.261577
168 | vn 0.0344071 0.0175091 -0.999255
169 | vn 0.691328 0.715168 0.102958
170 | vn 0.691451 0.712649 0.118438
171 | vn -0.973898 -0.213048 0.0783147
172 | vn 7.42399e-05 3.32698e-05 1
173 | vn 0.884937 0.449942 0.120157
174 | vn 0.989315 -0.0869511 0.117026
175 | vn 0.962281 -0.245852 0.116503
176 | vn -0.192564 0.977601 0.0849446
177 | vn -0.191831 0.976828 0.0949088
178 | vn -0.123193 0.952732 0.277713
179 | vn -0.441485 0.766549 0.466362
180 | vn 0.467327 0.85467 0.22615
181 | vn 0.692847 -0.713157 0.106629
182 | vn -0.756883 -0.0565346 0.651101
183 | vn 0.123333 -0.943265 0.308285
184 | vn -0.493923 -0.720807 0.48629
185 | vn -0.477017 -0.8711 0.116787
186 | vn -0.44611 -0.794944 0.411157
187 | vn -6.11448e-05 -0.000331755 1
188 | vn -1.43156e-05 -8.03482e-05 1
189 | vn -0.228986 -0.885719 0.403816
190 | vn -0.608389 -0.519659 0.599848
191 | vn -0.920452 -0.383492 0.0755124
192 | vn -0.736949 -0.180808 0.651318
193 | vn -0.611742 -0.514007 0.601306
194 | vn 0.419302 0.901141 0.110141
195 | vn -0.991437 -0.0387918 0.124694
196 | vn -0.993276 -0.0773118 0.0861707
197 | vn -0.833082 0.535892 0.137092
198 | vn 8.17296e-05 2.2162e-05 1
199 | vn 0.943552 0.308615 0.120276
200 | vn 0.981039 0.152834 0.119183
201 | vn 0.973953 0.194242 0.116982
202 | vn 0.767761 0.629431 0.119836
203 | vn 0.775121 0.620511 0.118969
204 | vn 0.975511 -0.184098 0.120356
205 | vn -0.334118 0.859344 0.38716
206 | vn -0.186878 0.944088 0.271613
207 | vn -0.461627 0.746886 0.478605
208 | vn 0.418676 0.882839 0.21285
209 | vn 0.516842 0.832916 0.197804
210 | vn 0.465813 -0.878241 0.10822
211 | vn 0.444917 -0.890581 0.0944139
212 | vn 0.0505572 -0.0737673 -0.995993
213 | vn 0.458814 -0.864421 0.205587
214 | vn 0.516064 -0.83361 0.196908
215 | vn -0.387155 -0.789577 0.476109
216 | vn -0.244693 -0.878338 0.410666
217 | vn -0.208468 -0.972704 0.101918
218 | vn -0.193464 -0.977355 0.0857284
219 | vn -0.182203 -0.978184 0.0997879
220 | vn -0.519874 -0.667682 0.532852
221 | vn -0.000155222 -6.31553e-05 1
222 | vn -4.55781e-05 -2.14887e-05 1
223 | vn -0.773654 -0.387569 0.501247
224 | vn -0.836842 -0.541097 0.0831258
225 | vn -0.938711 -0.313668 0.142944
226 | vn 0.642112 0.752523 0.146293
227 | vn -0.975003 -0.187197 0.119691
228 | vn -0.98721 -0.103388 0.121358
229 | vn -0.991212 0.0930191 0.0940533
230 | vn -0.745994 0.128207 0.653495
231 | vn -0.357321 0.923722 0.138052
232 | vn -2.44058e-05 1.82076e-05 1
233 | vn -0.562279 0.66248 0.494937
234 | vn -0.609088 0.612822 0.50345
235 | vn 0.183429 0.950262 0.251704
236 | vn 0.21534 0.929691 0.298837
237 | vn 0.229004 0.927667 0.294942
238 | vn 0.604019 -0.779541 0.165763
239 | vn 0.230026 -0.929068 0.289689
240 | vn 0.372231 -0.889715 0.264293
241 | vn -0.171199 -0.978844 0.112047
242 | vn 0.0790207 -0.991596 0.102437
243 | vn -0.774998 -0.384377 0.501629
244 | vn -0.890148 -0.437507 0.127373
245 | vn -0.67661 -0.535887 0.505
246 | vn -0.844574 -0.525041 0.105012
247 | vn -0.695542 -0.313148 0.646653
248 | vn -0.714122 -0.263551 0.648514
249 | vn -0.974069 0.210719 0.082385
250 | vn -0.866667 0.0208868 0.498449
251 | vn -0.993956 0.0146296 0.108802
252 | vn -0.994723 0.0188777 0.100843
253 | vn -0.990466 0.0795982 0.112429
254 | vn -0.875827 0.475205 0.0843008
255 | vn -0.648594 0.437886 0.622561
256 | vn -0.631999 0.470323 0.615934
257 | vn -0.542549 0.633495 0.551656
258 | vn -0.569254 0.593159 0.569309
259 | vn -0.854631 -0.127937 0.503228
260 | vn 0.187376 -0.949866 0.250288
261 | vn -0.0299751 -0.962324 0.270247
262 | vn -0.733474 -0.46004 0.500378
263 | vn -0.819413 -0.278244 0.501142
264 | vn -0.818885 -0.280329 0.500842
265 | vn -0.840131 -0.200724 0.503876
266 | vn -0.865477 -0.0010483 0.500948
267 | vn -0.861767 -0.077237 0.501391
268 | vn -0.734892 0.455474 0.502471
269 | vn -0.789187 0.35685 0.499842
270 | vn -0.899886 0.416094 0.130652
271 | vn -0.934904 0.343772 0.0881805
272 | vn -0.750321 -0.110129 0.651836
273 | vn -0.744296 -0.138475 0.653336
274 | vn -0.0486186 -0.96337 0.263731
275 | vn -0.0569915 -0.952558 0.298973
276 | vn -0.0786935 -0.945844 0.314939
277 | vn 0.0865387 -0.962264 0.257989
278 | vn 0.0988769 -0.988653 0.113084
279 | vn -0.040165 -0.954927 0.294112
280 | vn -0.679455 -0.364641 0.636692
281 | vn -0.676925 -0.535527 0.504959
282 | vn -0.860556 -0.0952615 0.500368
283 | vn -0.866101 -0.0391639 0.498333
284 | vn -0.848661 -0.170347 0.500757
285 | vn -0.976331 0.171097 0.132301
286 | vn -0.784297 0.365988 0.500931
287 | vn -0.743675 0.147478 0.652072
288 | vn -0.75636 0.0667582 0.650741
289 | vn -0.726694 0.470061 0.500957
290 | vn -0.946042 0.295169 0.133715
291 | vn -0.699993 0.303725 0.646344
292 | vn -0.690574 0.326044 0.645603
293 | vn -0.722223 0.238827 0.64912
294 | vn -0.862635 0.0731211 0.500513
295 | vn -0.860436 0.0839585 0.502594
296 | vn -0.823144 0.266065 0.501641
297 | vn -0.850508 0.155797 0.502359
298 | vn -0.850275 0.158766 0.501823
299 | vn -0.824425 0.262885 0.501214
300 | vn -0.000104827 0.000138107 -1
301 | vn -6.4345e-05 4.8788e-05 -1
302 | vn -0.000255153 -5.05889e-05 -1
303 | vn 8.56579e-06 1.35717e-06 -1
304 | vn 3.45225e-06 -5.63502e-06 -1
305 | vn 0.000304041 -4.54974e-06 -1
306 | vn 0.0004587 -0.000166978 -1
307 | vn -4.30629e-05 3.84989e-05 -1
308 | vn -0.000206776 -3.99625e-05 -1
309 | vn -7.87823e-05 -3.27836e-06 -1
310 | vn -0.000409956 0.000110369 -1
311 | vn 6.31049e-05 7.3988e-06 -1
312 | vn -0.0003035 2.77655e-05 -1
313 |
314 | # Mesh '' with 200 faces
315 | g
316 | usemtl DefaultMaterial
317 | f 1//1 2//1 3//1
318 | f 4//2 2//2 1//2
319 | f 3//3 5//3 1//3
320 | f 6//4 7//4 8//4
321 | f 9//5 1//5 10//5
322 | f 1//6 11//6 10//6
323 | f 12//7 13//7 14//7
324 | f 13//7 15//8 14//7
325 | f 2//9 13//9 3//9
326 | f 16//10 9//10 17//10
327 | f 14//11 18//11 19//11
328 | f 20//12 2//12 4//12
329 | f 21//13 20//13 4//13
330 | f 22//14 23//14 4//14
331 | f 23//15 21//15 4//15
332 | f 1//16 5//16 11//16
333 | f 13//17 24//17 15//17
334 | f 20//18 21//18 24//18
335 | f 25//19 26//19 14//19
336 | f 15//20 27//20 14//20
337 | f 28//21 29//21 14//20
338 | f 14//22 30//22 25//22
339 | f 14//22 31//23 12//23
340 | f 32//24 25//24 30//24
341 | f 33//25 17//25 14//25
342 | f 34//26 35//26 14//26
343 | f 36//27 37//27 14//27
344 | f 14//28 37//28 34//28
345 | f 38//29 33//29 14//29
346 | f 19//30 38//30 14//30
347 | f 39//31 18//31 40//31
348 | f 7//32 6//32 41//32
349 | f 42//33 43//33 44//33
350 | f 45//34 43//34 42//34
351 | f 4//35 46//35 47//35
352 | f 17//36 31//36 14//36
353 | f 9//37 31//37 17//37
354 | f 10//38 31//38 9//38
355 | f 11//39 31//39 10//39
356 | f 12//40 31//40 11//40
357 | f 21//41 23//41 48//41
358 | f 13//42 49//42 3//42
359 | f 12//43 49//43 13//43
360 | f 25//44 32//44 50//44
361 | f 14//45 29//45 51//45
362 | f 52//46 30//46 14//46
363 | f 27//47 52//47 14//47
364 | f 53//48 32//48 30//48
365 | f 9//49 54//49 1//49
366 | f 35//50 55//50 14//50
367 | f 56//51 44//51 43//51
368 | f 57//52 47//52 46//52
369 | f 4//53 47//53 57//53
370 | f 58//54 46//54 4//54
371 | f 53//55 46//55 58//55
372 | f 57//56 22//56 4//56
373 | f 57//57 59//57 22//57
374 | f 59//58 15//58 22//58
375 | f 60//59 61//59 62//59
376 | f 24//60 48//60 15//60
377 | f 24//61 21//61 48//61
378 | f 49//62 5//62 3//62
379 | f 5//63 12//63 11//63
380 | f 50//64 4//64 45//64
381 | f 4//65 50//65 58//65
382 | f 32//66 53//66 58//66
383 | f 42//67 26//67 25//67
384 | f 52//68 27//68 63//68
385 | f 9//69 16//69 54//69
386 | f 37//70 64//70 34//70
387 | f 38//71 19//71 65//71
388 | f 40//72 6//72 39//72
389 | f 8//73 66//73 6//73
390 | f 6//74 66//74 39//74
391 | f 18//75 67//75 19//75
392 | f 68//76 19//76 67//76
393 | f 67//77 69//77 68//77
394 | f 40//78 70//78 55//78
395 | f 71//79 72//79 60//79
396 | f 73//80 74//80 35//80
397 | f 55//81 75//81 40//81
398 | f 57//82 46//82 59//82
399 | f 76//83 77//83 78//83
400 | f 62//84 77//84 76//84
401 | f 79//85 44//85 56//85
402 | f 80//86 24//86 13//86
403 | f 24//87 80//87 20//87
404 | f 2//88 80//88 13//88
405 | f 20//89 80//89 2//89
406 | f 15//90 48//90 22//90
407 | f 22//91 48//91 23//91
408 | f 49//92 12//92 5//92
409 | f 25//93 50//93 42//93
410 | f 58//94 50//94 32//94
411 | f 42//95 81//95 26//95
412 | f 59//96 46//96 63//96
413 | f 59//97 63//97 27//97
414 | f 82//98 54//98 16//98
415 | f 82//99 83//99 54//99
416 | f 54//100 83//100 1//100
417 | f 16//101 84//101 82//101
418 | f 33//102 84//102 16//102
419 | f 39//103 67//103 18//103
420 | f 69//104 67//104 39//104
421 | f 8//105 39//105 66//105
422 | f 1//106 39//106 8//106
423 | f 69//107 39//107 1//107
424 | f 40//108 18//108 70//108
425 | f 70//109 18//109 14//109
426 | f 55//110 70//110 14//110
427 | f 72//111 75//111 85//111
428 | f 7//112 41//112 71//112
429 | f 60//113 72//113 61//113
430 | f 59//114 27//114 15//114
431 | f 62//115 61//115 86//115
432 | f 86//116 77//116 62//116
433 | f 87//117 88//117 89//117
434 | f 51//118 90//118 14//118
435 | f 42//119 50//119 45//119
436 | f 14//120 26//120 28//120
437 | f 42//121 44//121 81//121
438 | f 44//122 91//122 81//122
439 | f 53//123 63//123 46//123
440 | f 52//124 53//124 30//124
441 | f 63//125 53//125 52//125
442 | f 33//126 16//126 17//126
443 | f 65//127 84//127 38//127
444 | f 33//128 38//128 84//128
445 | f 69//129 1//129 92//129
446 | f 83//130 92//130 1//130
447 | f 75//131 72//131 93//131
448 | f 93//132 72//132 71//132
449 | f 6//133 40//133 75//133
450 | f 41//134 93//134 71//134
451 | f 85//135 55//135 35//135
452 | f 74//136 85//136 35//136
453 | f 87//137 94//137 95//137
454 | f 36//138 96//138 78//138
455 | f 76//139 96//139 88//139
456 | f 78//140 96//140 76//140
457 | f 88//141 96//141 89//141
458 | f 97//142 79//142 56//142
459 | f 29//143 91//143 98//143
460 | f 28//144 91//144 29//144
461 | f 26//145 81//145 28//145
462 | f 91//146 28//146 81//146
463 | f 73//147 64//147 86//147
464 | f 65//148 82//148 84//148
465 | f 92//149 65//149 99//149
466 | f 93//150 41//150 75//150
467 | f 72//151 85//151 61//151
468 | f 61//152 85//152 74//152
469 | f 61//153 74//153 73//153
470 | f 36//154 78//154 37//154
471 | f 37//155 77//155 64//155
472 | f 98//156 91//156 79//156
473 | f 79//157 100//157 98//157
474 | f 97//158 101//158 79//158
475 | f 95//159 101//159 97//159
476 | f 64//160 73//160 34//160
477 | f 73//161 35//161 34//161
478 | f 69//162 92//162 99//162
479 | f 19//163 69//163 99//163
480 | f 68//164 69//164 19//164
481 | f 92//165 82//165 65//165
482 | f 92//166 83//166 82//166
483 | f 99//167 65//167 19//167
484 | f 85//168 75//168 55//168
485 | f 41//169 6//169 75//169
486 | f 64//170 77//170 86//170
487 | f 77//171 37//171 78//171
488 | f 86//172 61//172 73//172
489 | f 87//173 89//173 94//173
490 | f 79//174 101//174 100//174
491 | f 102//175 90//175 51//175
492 | f 36//176 14//176 90//176
493 | f 91//177 44//177 79//177
494 | f 95//178 94//178 101//178
495 | f 29//179 98//179 51//179
496 | f 100//180 51//180 98//180
497 | f 102//181 51//181 100//181
498 | f 89//182 96//182 36//182
499 | f 36//183 90//183 89//183
500 | f 101//184 102//184 100//184
501 | f 94//185 89//185 102//185
502 | f 90//186 102//186 89//186
503 | f 101//187 94//187 102//187
504 | f 4//188 1//188 87//188
505 | f 4//189 87//189 45//189
506 | f 1//190 8//190 87//190
507 | f 60//191 87//191 71//191
508 | f 56//192 87//191 97//192
509 | f 76//193 87//193 62//193
510 | f 56//194 43//194 87//194
511 | f 45//195 87//195 43//195
512 | f 8//196 7//196 87//196
513 | f 62//197 87//197 60//197
514 | f 97//198 87//198 95//198
515 | f 71//199 87//199 7//199
516 | f 88//200 87//200 76//200
517 |
518 |
--------------------------------------------------------------------------------
/franka_panda/meshes/collision/hand.obj:
--------------------------------------------------------------------------------
1 | # File produced by Open Asset Import Library (http://www.assimp.sf.net)
2 | # (assimp v3.1.187496374)
3 |
4 | mtllib hand.obj.mtl
5 |
6 | # 102 vertex positions
7 | v 0.0167349 0.0901289 0.0644319
8 | v 0.0171343 -0.0892712 0.0636144
9 | v 0.0315898 -0.000558518 0.00621423
10 | v -0.0170537 -0.0955248 0.0221212
11 | v -0.0175104 -0.0979076 0.0516662
12 | v -0.0315975 -0.0019865 0.00115293
13 | v -0.025981 0.0757697 -0.00508223
14 | v -0.0316359 -0.000578733 0.00597307
15 | v 0.0170332 -0.0968023 0.030322
16 | v 0.0316158 -0.00186086 0.00117971
17 | v 0.0175851 -0.0974071 0.0519846
18 | v 0.0185559 0.0946019 0.0566173
19 | v -0.0168042 -0.0919061 0.00629548
20 | v -0.0168122 -0.0875329 -0.00120645
21 | v 0.0162301 -0.0995375 0.0515841
22 | v -4.10844e-05 -0.10399 0.00569088
23 | v -1.72733e-05 -0.103743 -0.0091993
24 | v -0.00361677 -0.101158 -0.0126103
25 | v -0.00342956 -0.102598 -0.0089643
26 | v -0.0252704 0.0820651 0.00519704
27 | v -0.0280109 0.0417843 -0.0063964
28 | v -0.000112569 0.0928085 0.0659622
29 | v -0.0125667 0.0937125 0.0651685
30 | v -0.014422 0.0912765 0.0656897
31 | v -0.0172547 -0.0907003 0.063082
32 | v -0.0154717 -0.0907063 0.0651901
33 | v -0.0167672 0.0902522 0.0643322
34 | v 0.0169555 -0.0916029 0.00556283
35 | v 0.0176072 -0.0938476 0.0584485
36 | v 0.0125057 -0.100188 0.0568941
37 | v 0.0155509 0.1002 0.0546726
38 | v 0.0192688 0.0984936 0.0449417
39 | v 0.0162184 0.100285 0.0458698
40 | v 0.00191744 -0.0455199 -0.0256594
41 | v 0.0280151 0.0420423 -0.0063496
42 | v 0.00381034 -0.0829662 -0.0244493
43 | v 0.0206709 0.0936918 0.0433083
44 | v 0.0254479 0.0811805 0.0035006
45 | v -0.00363682 -0.0835859 -0.0246063
46 | v -0.0165327 -0.0822363 -0.00511811
47 | v -0.0140171 -0.100091 0.0560269
48 | v -0.0160131 -0.0996286 0.0493014
49 | v -0.00321509 -0.087766 -0.0238844
50 | v -0.0129879 -0.0924958 0.0657119
51 | v -0.000505639 -0.0929453 0.0659531
52 | v 0.0135396 0.0926721 0.0656879
53 | v 0.0134248 -0.091927 0.0657313
54 | v -0.0192292 0.0972606 0.0505884
55 | v 0.0165582 -0.0851322 -0.00387274
56 | v 0.00349477 -0.102716 -0.00802934
57 | v 0.0238692 0.0904014 0.00436824
58 | v 0.0227078 0.0937356 0.01434
59 | v 0.0260343 0.0752976 -0.00503085
60 | v 0.0248167 0.0743775 -0.0071557
61 | v -0.00150015 -0.0458698 -0.0259248
62 | v -0.000833771 0.08026 -0.00732172
63 | v 0.0229591 0.0779014 -0.00739904
64 | v -0.0227611 0.0801744 -0.00690954
65 | v 3.18097e-05 -0.0994514 -0.0171612
66 | v -0.0166321 -0.098554 0.0547339
67 | v 0.00360213 -0.101195 -0.0126276
68 | v -0.00161673 0.0974711 0.0623073
69 | v 0.0157184 -0.0917796 0.0649125
70 | v -0.0184487 0.0920155 0.0583932
71 | v -0.000626994 -0.0879747 -0.0249616
72 | v 0.003076 -0.0879729 -0.0239787
73 | v 0.019802 0.0970111 0.020914
74 | v 0.00994155 0.100035 0.0583408
75 | v 0.0171295 0.0990672 0.0543052
76 | v -0.000314131 0.0946153 0.00757466
77 | v -1.59471e-05 0.0984961 0.0270818
78 | v -0.000337323 0.0865616 -0.00416328
79 | v 0.0223143 0.08825 -0.0019332
80 | v 0.022377 0.0833552 -0.00552611
81 | v -0.021325 0.0909269 0.000979802
82 | v -0.0227328 0.0854345 -0.00412033
83 | v -0.0244953 0.0858923 -0.00183273
84 | v 0.00184279 -0.0840023 -0.0255249
85 | v -0.0246502 0.076668 -0.00693213
86 | v 0.0131387 -0.0940629 0.0646832
87 | v -0.00932387 -0.0999826 0.0584892
88 | v -0.0190668 0.0976971 0.0246275
89 | v -0.00449439 0.100426 0.0581191
90 | v -0.0146231 0.100168 0.0557349
91 | v 0.0158049 -0.0994163 0.0549703
92 | v 0.0213426 0.0943331 0.00894201
93 | v -0.000173406 0.090995 0.000576784
94 | v 0.0214829 0.0917947 0.00268413
95 | v 0.0245152 0.0817026 -0.00505142
96 | v 0.0247294 0.0857401 -0.00123169
97 | v -0.0206576 0.0946679 0.00953798
98 | v 0.00119059 -0.100301 0.0586231
99 | v 0.000469602 -0.0966559 0.0630784
100 | v 0.0153969 0.0929056 0.0645563
101 | v -0.000867829 -0.0825485 -0.0258702
102 | v -0.0235558 0.0911663 0.00460792
103 | v -0.014617 -0.0934417 0.0645
104 | v -0.0230261 0.0928969 0.00987686
105 | v -0.0218221 0.0954417 0.0217564
106 | v -0.0181926 0.0995179 0.0438142
107 | v -0.0160455 0.0932093 0.0636169
108 | v -0.0169948 0.0993629 0.0541148
109 |
110 | # 0 UV coordinates
111 |
112 | # 200 vertex normals
113 | vn 0.96934 0.00103808 0.245721
114 | vn -0.986759 -0.159734 -0.0281361
115 | vn -0.997162 0.0697563 -0.0283202
116 | vn 0.986571 -0.160626 -0.0296212
117 | vn 0.99137 -0.125585 0.0376046
118 | vn 0.972565 0.0101093 0.232413
119 | vn -0.981257 -0.166939 -0.096261
120 | vn -0.991092 -0.129756 0.0299978
121 | vn -0.984842 -0.16507 -0.0532708
122 | vn 0.303856 -0.952595 -0.0153173
123 | vn -0.745916 -0.631674 -0.211181
124 | vn -0.996795 0.0769815 0.0217643
125 | vn -0.992516 0.0633187 -0.104418
126 | vn -0.044276 0.241169 0.969473
127 | vn -0.763533 -0.00240486 0.645764
128 | vn 0.98594 -0.162885 -0.0372967
129 | vn 0.986849 -0.0650596 0.147976
130 | vn 0.991549 -0.115042 0.0599665
131 | vn 0.203398 -0.97883 0.0228453
132 | vn 0.516573 0.854926 0.0474658
133 | vn 0.587131 0.00352045 -0.809484
134 | vn 0.99247 0.0777169 0.094674
135 | vn -0.832137 -0.113798 -0.542768
136 | vn -0.990867 -0.10289 0.0871544
137 | vn -0.24667 -0.969077 0.00656585
138 | vn -0.796752 -0.375025 -0.473859
139 | vn -0.0190316 -2.76701e-05 0.999819
140 | vn -0.0193168 -7.80837e-06 0.999813
141 | vn 0.0200855 -9.11851e-05 0.999798
142 | vn 0.0159035 0.000225346 0.999874
143 | vn -0.991348 0.0773534 0.106043
144 | vn 0.846324 -0.531423 -0.0364002
145 | vn 0.838336 -0.119317 -0.531936
146 | vn 0.713391 -0.685355 -0.146159
147 | vn 0.752915 -0.0507794 -0.656156
148 | vn 0.962439 0.234445 0.136915
149 | vn 0.98673 0.0540529 0.153111
150 | vn 0.984464 0.162241 0.0671482
151 | vn 0.963684 0.258201 0.0681518
152 | vn 0.988283 0.13579 0.0696969
153 | vn 0.992401 0.0632947 -0.105521
154 | vn 0.997132 0.0735636 0.0178061
155 | vn 0.997125 0.0744552 -0.0141125
156 | vn 0.525671 0.0308018 -0.85013
157 | vn 0.0112429 0.145846 -0.989244
158 | vn -0.0191625 0.145985 -0.989101
159 | vn 0.295801 0.090268 -0.950975
160 | vn -0.753521 -0.0512984 -0.655419
161 | vn -0.557064 -0.525003 -0.643468
162 | vn -0.826525 -0.175737 -0.534765
163 | vn -0.815256 -0.315571 -0.485564
164 | vn -0.947514 -0.156066 -0.279037
165 | vn -0.93384 -0.292644 0.205677
166 | vn 0.168928 -0.868066 -0.466825
167 | vn -0.713161 -0.698683 0.0569532
168 | vn -0.304509 -0.95237 -0.0162868
169 | vn 0.0219418 0.621147 0.783387
170 | vn -0.00551132 0.61581 0.787876
171 | vn 0.36612 0.000413018 0.930568
172 | vn 0.336199 1.25396e-05 0.941791
173 | vn -0.969753 -7.34049e-05 0.244089
174 | vn -0.962126 0.000708185 0.272604
175 | vn -0.988229 0.0614231 0.14011
176 | vn -0.360462 -0.538401 -0.761703
177 | vn 0.829279 -0.171621 -0.53183
178 | vn 0.677571 -0.00184298 0.735455
179 | vn 0.496348 0.867083 -0.0424839
180 | vn 0.0755333 0.722595 0.687133
181 | vn 0.904977 0.383975 0.183246
182 | vn 0.0127058 0.980664 -0.195286
183 | vn 0.851811 0.0713165 -0.518972
184 | vn 0.0351954 0.591653 -0.805424
185 | vn -0.538898 0.643215 -0.543933
186 | vn 0.0777842 -0.00363624 -0.996964
187 | vn -0.19873 0.11334 -0.973479
188 | vn -0.793118 -0.605993 -0.0611343
189 | vn 0.283571 -0.958905 -0.00945907
190 | vn -0.178475 -0.865689 -0.467685
191 | vn -0.987868 0.153186 -0.0255232
192 | vn -0.206645 -0.00149425 0.978415
193 | vn -0.501132 0.000514844 0.865371
194 | vn 0.0467749 -0.445101 0.894258
195 | vn -0.0152497 -0.997215 0.0730019
196 | vn -0.0160242 0.980702 -0.194854
197 | vn -0.10472 0.777309 0.620342
198 | vn -0.0162484 0.999109 -0.0389505
199 | vn 0.812943 -0.46373 -0.352249
200 | vn 0.734943 -0.648754 -0.197427
201 | vn 0.355505 -0.889833 -0.28603
202 | vn 0.77975 -0.493229 0.385637
203 | vn 0.264343 -0.962054 0.0676396
204 | vn 0.542077 -0.664141 0.514848
205 | vn 0.470493 -0.711825 0.52148
206 | vn 0.584351 -0.807368 -0.0817933
207 | vn 0.826668 -0.548978 0.123462
208 | vn 0.873315 -0.427986 0.232701
209 | vn 0.0134981 0.821385 0.570215
210 | vn 0.481279 -0.00399798 -0.876558
211 | vn 0.0262961 0.976262 -0.21499
212 | vn 0.035393 0.991525 -0.125004
213 | vn -0.0252692 0.468427 -0.883141
214 | vn 0.029533 0.795427 -0.605329
215 | vn 0.0095104 0.447459 -0.894254
216 | vn 0.0293922 0.327461 -0.944407
217 | vn 0.0628955 0.135567 -0.98877
218 | vn -0.512379 0.0361849 -0.857997
219 | vn -0.82575 0.0709576 -0.559555
220 | vn 0.671124 0.490386 -0.555981
221 | vn -0.583104 0.00463288 -0.812385
222 | vn -0.0162994 0.980639 -0.195146
223 | vn -0.157039 0.79873 0.580834
224 | vn 0.973711 -0.16665 -0.155286
225 | vn 0.0757908 -0.76565 0.638776
226 | vn -0.0242742 0.999674 0.00785851
227 | vn 0.0265568 0.999088 0.0334344
228 | vn 0.763663 0.633795 -0.122975
229 | vn 0.59401 0.799769 0.086723
230 | vn 0.277533 0.743174 0.608825
231 | vn 0.344643 0.752738 0.560898
232 | vn 0.784743 0.463667 0.411327
233 | vn -0.0358679 0.684935 -0.72772
234 | vn 0.932801 0.220325 -0.285201
235 | vn 0.624229 0.728724 -0.281602
236 | vn -0.0116186 0.888023 -0.459652
237 | vn 0.0118944 0.888215 -0.459274
238 | vn 0.12674 0.000708284 -0.991936
239 | vn -0.412606 -0.00846907 -0.91087
240 | vn -0.798626 -0.520306 -0.302452
241 | vn -0.541514 -0.834316 0.103337
242 | vn -0.319295 -0.94743 -0.0206758
243 | vn -0.723656 -0.67023 -0.164661
244 | vn 0.024012 -0.608318 0.79333
245 | vn -0.0315557 -0.776033 0.629902
246 | vn 0.0205919 -0.997403 0.0690183
247 | vn -0.0311286 -0.997047 0.0701972
248 | vn -0.982775 0.184638 -0.00783846
249 | vn 0.216124 -0.540324 -0.813229
250 | vn 0.246085 -0.284389 -0.926588
251 | vn 0.556314 -0.528433 -0.641306
252 | vn 0.792539 -0.37877 -0.477928
253 | vn 0.880372 -0.312129 0.3571
254 | vn 0.325605 -0.451322 0.830837
255 | vn 0.101105 -0.786037 0.609856
256 | vn 0.53596 -0.156588 -0.829594
257 | vn 0.580736 0.650676 0.489251
258 | vn 0.491562 0.198884 0.847828
259 | vn 0.828341 0.380744 0.410957
260 | vn 0.035746 0.926351 -0.374962
261 | vn 0.656777 0.749488 -0.083134
262 | vn 0.720531 0.692906 -0.0267625
263 | vn 0.572813 0.248018 -0.781263
264 | vn 0.990951 0.132224 -0.0230681
265 | vn 0.985773 0.167665 0.011866
266 | vn -0.0153618 0.730516 -0.682723
267 | vn 0.0128537 0.730055 -0.683268
268 | vn -0.0185446 0.449169 -0.893255
269 | vn -0.619205 -0.779582 -0.0940023
270 | vn -0.320427 -0.88655 -0.333701
271 | vn -0.0989435 -0.715546 0.691523
272 | vn -0.0841099 -0.712852 0.696252
273 | vn -0.60803 -0.644894 0.463045
274 | vn -0.423761 -0.343804 0.837989
275 | vn -0.605208 0.788757 -0.107633
276 | vn -0.0174541 0.996656 -0.0798282
277 | vn -0.0193589 0.998627 -0.0486783
278 | vn -0.634294 0.640925 -0.432304
279 | vn 0.0379495 -0.163387 -0.985832
280 | vn 0.538782 0.502971 -0.675821
281 | vn 0.813644 0.191216 -0.549017
282 | vn 0.652479 0.653287 -0.384041
283 | vn 0.717815 0.58535 -0.37697
284 | vn -0.286085 -0.763532 0.578942
285 | vn -0.0374327 -0.618147 0.785171
286 | vn -0.709079 -0.37258 0.598657
287 | vn -0.878489 0.351219 0.323886
288 | vn -0.890816 0.299973 0.341268
289 | vn -0.868133 0.372523 0.327981
290 | vn -0.605163 0.772391 -0.192849
291 | vn -0.984555 0.156402 0.0786764
292 | vn -0.982298 0.176886 0.06166
293 | vn -0.981595 0.187328 0.0371542
294 | vn -0.44589 0.832394 -0.329094
295 | vn -0.363723 0.729882 0.578773
296 | vn -0.575721 0.322294 0.751446
297 | vn 0.442358 0.333164 -0.832659
298 | vn -0.70625 0.351573 -0.614497
299 | vn -0.654528 0.356931 -0.666478
300 | vn -0.838844 0.274101 -0.47033
301 | vn -0.354702 0.933343 0.0552966
302 | vn -0.561743 0.820557 -0.105505
303 | vn -0.851741 0.52214 0.0436597
304 | vn -0.759618 0.642942 0.0980105
305 | vn -0.0360333 0.916716 -0.39791
306 | vn -0.560808 0.66826 0.488798
307 | vn -0.414234 0.480837 0.772791
308 | vn -0.390321 -0.168871 -0.905059
309 | vn -0.752648 -0.506645 0.420514
310 | vn -0.029743 0.995213 -0.0930902
311 | vn -0.346496 -0.193469 -0.917884
312 | vn -0.602128 0.796943 -0.0481963
313 |
314 | # Mesh '' with 200 faces
315 | g
316 | usemtl DefaultMaterial
317 | f 1//1 2//1 3//1
318 | f 4//2 5//2 6//2
319 | f 7//3 6//3 8//3
320 | f 9//4 10//4 11//4
321 | f 10//5 3//5 11//5
322 | f 12//6 1//6 3//6
323 | f 13//7 6//7 14//7
324 | f 8//8 6//8 5//8
325 | f 4//9 6//9 13//9
326 | f 15//10 16//10 17//10
327 | f 18//11 19//11 13//11
328 | f 20//12 7//12 8//12
329 | f 21//13 6//13 7//13
330 | f 22//14 23//14 24//14
331 | f 25//15 26//15 27//15
332 | f 28//16 10//16 9//16
333 | f 2//17 29//17 3//17
334 | f 29//18 11//18 3//18
335 | f 30//19 16//19 15//19
336 | f 31//20 32//20 33//20
337 | f 34//21 35//21 36//21
338 | f 37//22 3//22 38//22
339 | f 6//23 39//23 40//23
340 | f 25//24 8//24 5//24
341 | f 41//25 42//25 16//25
342 | f 18//26 14//26 43//26
343 | f 22//27 24//27 44//27
344 | f 44//28 45//28 22//28
345 | f 46//29 22//29 45//29
346 | f 45//30 47//30 46//30
347 | f 20//31 8//31 48//31
348 | f 9//32 11//32 15//32
349 | f 36//33 10//33 49//33
350 | f 50//34 28//34 9//34
351 | f 10//35 36//35 35//35
352 | f 12//36 37//36 32//36
353 | f 37//37 12//37 3//37
354 | f 37//38 38//38 51//38
355 | f 37//39 52//39 32//39
356 | f 52//40 37//40 51//40
357 | f 10//41 35//41 53//41
358 | f 10//42 53//42 38//42
359 | f 10//43 38//43 3//43
360 | f 54//44 35//44 34//44
361 | f 55//45 56//45 57//45
362 | f 56//46 55//46 58//46
363 | f 57//47 54//47 34//47
364 | f 39//48 6//48 21//48
365 | f 59//49 18//49 43//49
366 | f 40//50 39//50 43//50
367 | f 14//51 40//51 43//51
368 | f 14//52 6//52 40//52
369 | f 60//53 25//53 5//53
370 | f 59//54 61//54 17//54
371 | f 42//55 60//55 5//55
372 | f 16//56 42//56 17//56
373 | f 62//57 22//57 46//57
374 | f 22//58 62//58 23//58
375 | f 1//59 46//59 63//59
376 | f 47//60 63//60 46//60
377 | f 25//61 64//61 8//61
378 | f 64//62 25//62 27//62
379 | f 64//63 48//63 8//63
380 | f 65//64 59//64 43//64
381 | f 66//65 36//65 49//65
382 | f 63//66 2//66 1//66
383 | f 33//67 32//67 67//67
384 | f 68//68 62//68 46//68
385 | f 32//69 69//69 12//69
386 | f 70//70 71//70 67//70
387 | f 53//71 35//71 54//71
388 | f 72//72 73//72 74//72
389 | f 75//73 76//73 77//73
390 | f 78//74 55//74 34//74
391 | f 55//75 79//75 58//75
392 | f 4//76 42//76 5//76
393 | f 50//77 15//77 17//77
394 | f 59//78 17//78 18//78
395 | f 7//79 20//79 77//79
396 | f 24//80 26//80 44//80
397 | f 27//81 26//81 24//81
398 | f 45//82 80//82 47//82
399 | f 41//83 16//83 81//83
400 | f 82//84 71//84 70//84
401 | f 62//85 83//85 23//85
402 | f 33//86 84//86 83//86
403 | f 49//87 28//87 61//87
404 | f 61//88 28//88 50//88
405 | f 61//89 50//89 17//89
406 | f 63//90 85//90 29//90
407 | f 85//91 30//91 15//91
408 | f 80//92 85//92 63//92
409 | f 85//93 80//93 30//93
410 | f 9//94 15//94 50//94
411 | f 85//95 15//95 11//95
412 | f 11//96 29//96 85//96
413 | f 83//97 62//97 68//97
414 | f 34//98 36//98 78//98
415 | f 70//99 67//99 86//99
416 | f 71//100 33//100 67//100
417 | f 58//101 76//101 72//101
418 | f 73//102 87//102 88//102
419 | f 72//103 74//103 56//103
420 | f 56//104 74//104 57//104
421 | f 34//105 55//105 57//105
422 | f 21//106 79//106 55//106
423 | f 21//107 7//107 79//107
424 | f 89//108 73//108 90//108
425 | f 39//109 21//109 55//109
426 | f 91//110 82//110 70//110
427 | f 84//111 23//111 83//111
428 | f 28//112 49//112 10//112
429 | f 92//113 80//113 93//113
430 | f 31//114 33//114 68//114
431 | f 68//115 33//115 83//115
432 | f 51//116 86//116 52//116
433 | f 69//117 32//117 31//117
434 | f 46//118 94//118 68//118
435 | f 94//119 31//119 68//119
436 | f 94//120 12//120 69//120
437 | f 76//121 75//121 72//121
438 | f 90//122 53//122 89//122
439 | f 86//123 51//123 88//123
440 | f 75//124 70//124 87//124
441 | f 87//125 70//125 88//125
442 | f 95//126 55//126 78//126
443 | f 39//127 55//127 95//127
444 | f 14//128 18//128 13//128
445 | f 42//129 41//129 60//129
446 | f 19//130 17//130 42//130
447 | f 19//131 4//131 13//131
448 | f 45//132 93//132 80//132
449 | f 92//133 93//133 81//133
450 | f 16//134 30//134 92//134
451 | f 92//135 81//135 16//135
452 | f 96//136 77//136 20//136
453 | f 66//137 59//137 65//137
454 | f 65//138 78//138 66//138
455 | f 59//139 66//139 61//139
456 | f 49//140 61//140 66//140
457 | f 2//141 63//141 29//141
458 | f 80//142 63//142 47//142
459 | f 80//143 92//143 30//143
460 | f 78//144 36//144 66//144
461 | f 94//145 69//145 31//145
462 | f 94//146 46//146 1//146
463 | f 12//147 94//147 1//147
464 | f 70//148 86//148 88//148
465 | f 67//149 52//149 86//149
466 | f 52//150 67//150 32//150
467 | f 57//151 89//151 54//151
468 | f 53//152 90//152 38//152
469 | f 90//153 51//153 38//153
470 | f 75//154 87//154 72//154
471 | f 72//155 87//155 73//155
472 | f 56//156 58//156 72//156
473 | f 42//157 4//157 19//157
474 | f 19//158 18//158 17//158
475 | f 97//159 81//159 44//159
476 | f 81//160 93//160 44//160
477 | f 41//161 97//161 60//161
478 | f 26//162 97//162 44//162
479 | f 98//163 99//163 91//163
480 | f 100//164 33//164 71//164
481 | f 84//165 33//165 100//165
482 | f 96//166 75//166 77//166
483 | f 95//167 78//167 65//167
484 | f 73//168 89//168 74//168
485 | f 53//169 54//169 89//169
486 | f 73//170 88//170 51//170
487 | f 90//171 73//171 51//171
488 | f 41//172 81//172 97//172
489 | f 44//173 93//173 45//173
490 | f 25//174 97//174 26//174
491 | f 101//175 48//175 64//175
492 | f 64//176 27//176 101//176
493 | f 102//177 48//177 101//177
494 | f 96//178 98//178 91//178
495 | f 48//179 99//179 20//179
496 | f 99//180 98//180 20//180
497 | f 98//181 96//181 20//181
498 | f 96//182 91//182 75//182
499 | f 84//183 101//183 23//183
500 | f 27//184 24//184 101//184
501 | f 89//185 57//185 74//185
502 | f 77//186 76//186 79//186
503 | f 79//187 76//187 58//187
504 | f 79//188 7//188 77//188
505 | f 102//189 84//189 100//189
506 | f 91//190 99//190 82//190
507 | f 48//191 100//191 99//191
508 | f 100//192 48//192 102//192
509 | f 75//193 91//193 70//193
510 | f 84//194 102//194 101//194
511 | f 24//195 23//195 101//195
512 | f 43//196 95//196 65//196
513 | f 25//197 60//197 97//197
514 | f 82//198 100//198 71//198
515 | f 43//199 39//199 95//199
516 | f 100//200 82//200 99//200
517 |
518 |
--------------------------------------------------------------------------------
/grasp.py:
--------------------------------------------------------------------------------
1 | # -*- coding: UTF-8 -*-
2 | """===============================================
3 | @Author : wangdx
4 | @Date : 2020/9/1 21:37
5 | ==============================================="""
6 | import numpy as np
7 | import cv2
8 | import math
9 | import scipy.io as scio
10 |
11 |
12 | HEIGHT = 480
13 | WIDTH = 640
14 | GRASP_WIDTH_MAX = 0.08 # m
15 | RADIO = 612.0
16 |
17 |
18 |
19 | def calcAngle2(angle):
20 | """
21 | 根据给定的angle计算与之反向的angle
22 | :param angle: 弧度
23 | :return: 弧度
24 | """
25 | return angle + math.pi - round((angle + math.pi) // (2 * math.pi)) * 2 * math.pi
26 |
27 | def drawGrasps(img, grasps, mode='line'):
28 | """
29 | 绘制grasp
30 | file: img路径
31 | grasps: list() 元素是 [row, col, angle, width]
32 | angle: 弧度
33 | width: 单位 像素
34 | mode: 显示模式 'line' or 'region'
35 | """
36 |
37 | num = len(grasps)
38 | for i, grasp in enumerate(grasps):
39 | row, col, angle, width = grasp
40 |
41 | if mode == 'line':
42 | width = width / 2
43 | angle2 = calcAngle2(angle)
44 | k = math.tan(angle)
45 | if k == 0:
46 | dx = width
47 | dy = 0
48 | else:
49 | dx = k / abs(k) * width / pow(k ** 2 + 1, 0.5)
50 | dy = k * dx
51 | if angle < math.pi:
52 | cv2.line(img, (col, row), (round(col + dx), round(row - dy)), (0, 0, 255), 1)
53 | else:
54 | cv2.line(img, (col, row), (round(col - dx), round(row + dy)), (0, 0, 255), 1)
55 |
56 | if angle2 < math.pi:
57 | cv2.line(img, (col, row), (round(col + dx), round(row - dy)), (0, 0, 255), 1)
58 | else:
59 | cv2.line(img, (col, row), (round(col - dx), round(row + dy)), (0, 0, 255), 1)
60 |
61 | color_b = 255 / num * i
62 | color_r = 0
63 | color_g = -255 / num * i + 255
64 |
65 | if mode == 'line':
66 | cv2.circle(img, (col, row), 2, (color_b, color_g, color_r), -1)
67 | else:
68 | img[row, col] = [color_b, color_g, color_r]
69 |
70 |
71 | return img
72 |
73 |
74 | def imrotate(img,
75 | angle,
76 | center=None,
77 | scale=1.0,
78 | flag=cv2.INTER_NEAREST,
79 | border_value=0,
80 | auto_bound=False):
81 | """Rotate an image.
82 |
83 | Args:
84 | img (ndarray): Image to be rotated.
85 | angle (float): Rotation angle in degrees, positive values mean
86 | clockwise rotation.
87 | center (tuple[float], optional): Center point (w, h) of the rotation in
88 | the source image. If not specified, the center of the image will be
89 | used.
90 | scale (float): Isotropic scale factor.
91 | border_value (int): Border value.
92 | auto_bound (bool): Whether to adjust the image size to cover the whole
93 | rotated image.
94 |
95 | Returns:
96 | ndarray: The rotated image.
97 | """
98 | if center is not None and auto_bound:
99 | raise ValueError('`auto_bound` conflicts with `center`')
100 | h, w = img.shape[:2]
101 | if center is None:
102 | center = ((w - 1) * 0.5, (h - 1) * 0.5)
103 | assert isinstance(center, tuple)
104 |
105 | matrix = cv2.getRotationMatrix2D(center, -angle, scale)
106 | if auto_bound:
107 | cos = np.abs(matrix[0, 0])
108 | sin = np.abs(matrix[0, 1])
109 | new_w = h * sin + w * cos
110 | new_h = h * cos + w * sin
111 | matrix[0, 2] += (new_w - w) * 0.5
112 | matrix[1, 2] += (new_h - h) * 0.5
113 | w = int(np.round(new_w))
114 | h = int(np.round(new_h))
115 | rotated = cv2.warpAffine(img, matrix, (w, h), flags=flag, borderValue=border_value)
116 | return rotated
117 |
118 |
119 | def calcEndPoints(pt, angle, width):
120 | """
121 | 计算抓取端点(不分次序)
122 |
123 | params:
124 | pt: (x, y) / (col, row)
125 | angle: 弧度
126 | width: 宽度
127 | """
128 | x, y = pt[0], pt[1]*-1
129 | dx = math.cos(angle) * width / 2.
130 | dy = math.sin(angle) * width / 2.
131 |
132 | pt1_x = int(x + dx)
133 | pt1_y = int(y + dy) * -1
134 | pt2_x = int(x - dx)
135 | pt2_y = int(y - dy) * -1
136 |
137 | return (pt1_x, pt1_y), (pt2_x, pt2_y)
138 |
139 |
140 | def isPtInSquare(pt, center, size):
141 | """判断pt是否在正方形内,正方形的中心点是center, 边长是size
142 |
143 | params:
144 | pt: (x, y)
145 | center: (x, y)
146 | size: int
147 | """
148 | crop_t = int(center[1] - size/2)
149 | crop_b = int(center[1] + size/2)
150 | crop_l = int(center[0] - size/2)
151 | crop_r = int(center[0] + size/2)
152 |
153 | if crop_l <= pt[0] <= crop_r and crop_t <= pt[1] <= crop_b:
154 | return True
155 | return False
156 |
157 |
158 |
159 | class GraspMat:
160 | def __init__(self, path):
161 | """
162 | file: *grasp.txt文件
163 | """
164 | # 读取抓取标签mat
165 | self.grasp_point_map = scio.loadmat(path + '/grasp_18/grasp_point_map.mat')['A'] # (h, w)
166 | self.grasp_angle_map = scio.loadmat(path + '/grasp_18/grasp_angle_map.mat')['A'].transpose((2, 0, 1)) # (h, w, bins)
167 | self.grasp_width_map = scio.loadmat(path + '/grasp_18/grasp_width_map.mat')['A'].transpose((2, 0, 1)) # (h, w, bins)
168 | self.grasp_depth_map = scio.loadmat(path + '/grasp_18/grasp_depth_map.mat')['A'].transpose((2, 0, 1)) # (h, w, bins)
169 |
170 | self.angle_k = self.grasp_angle_map.shape[0]
171 | self.height = self.grasp_angle_map.shape[1]
172 | self.width = self.grasp_angle_map.shape[2]
173 |
174 |
175 | def rotate(self, angle, center):
176 | """
177 | 最近邻插值旋转, 每次旋转新建变量,不要修改原始标签变量
178 |
179 | angle: 逆时针旋转 角度
180 | center: 旋转中心 (x, y)
181 | """
182 | assert angle % (180. / self.angle_k) == 0
183 |
184 | # imrotate 是顺时针旋转
185 | rota_r = -1 * angle
186 | self.grasp_point_map_rot = imrotate(self.grasp_point_map, rota_r, center)
187 | self.grasp_angle_map_rot = np.stack([imrotate(grasp_angle_map, rota_r, center) for grasp_angle_map in self.grasp_angle_map])
188 | self.grasp_width_map_rot = np.stack([imrotate(grasp_width_map, rota_r, center) for grasp_width_map in self.grasp_width_map])
189 | self.grasp_depth_map_rot = np.stack([imrotate(grasp_depth_map, rota_r, center) for grasp_depth_map in self.grasp_depth_map])
190 |
191 | # 逆时针旋转rota
192 | # 根据rota对grasp_angle_map进行平移
193 | # !!! 同时要对 grasp_width_map 和 grasp_depth_map 进行平移
194 | offset = int(angle / (180. / self.angle_k))
195 |
196 | # offset 为正数时,列表下移;offset为负数时,列表上移
197 | self.grasp_angle_map_new = np.zeros_like(self.grasp_angle_map_rot)
198 | self.grasp_width_map_new = np.zeros_like(self.grasp_width_map_rot)
199 | self.grasp_depth_map_new = np.zeros_like(self.grasp_depth_map_rot)
200 | if offset != 0: # 下移
201 | self.grasp_angle_map_new[:offset, :, :] = self.grasp_angle_map_rot[-1*offset:, :, :] # 平移抓取角
202 | self.grasp_angle_map_new[offset:, :, :] = self.grasp_angle_map_rot[:-1*offset, :, :]
203 |
204 | self.grasp_width_map_new[:offset, :, :] = self.grasp_width_map_rot[-1*offset:, :, :] # 抓取宽度
205 | self.grasp_width_map_new[offset:, :, :] = self.grasp_width_map_rot[:-1*offset, :, :]
206 |
207 | self.grasp_depth_map_new[:offset, :, :] = self.grasp_depth_map_rot[-1*offset:, :, :] # 抓取深度
208 | self.grasp_depth_map_new[offset:, :, :] = self.grasp_depth_map_rot[:-1*offset, :, :]
209 | else:
210 | self.grasp_angle_map_new[:, :, :] = self.grasp_angle_map_rot[:, :, :]
211 | self.grasp_width_map_new[:, :, :] = self.grasp_width_map_rot[:, :, :]
212 | self.grasp_depth_map_new[:, :, :] = self.grasp_depth_map_rot[:, :, :]
213 |
214 | self.grasp_angle_map_rot[:, :, :] = self.grasp_angle_map_new[:, :, :]
215 | self.grasp_width_map_rot[:, :, :] = self.grasp_width_map_new[:, :, :]
216 | self.grasp_depth_map_rot[:, :, :] = self.grasp_depth_map_new[:, :, :]
217 |
218 |
219 | def getCorrectGrasp(self, pt, size):
220 | """
221 | 搜索最接近pt的抓取标签, 满足抓取线全部在正方形内
222 | 相似度: 抓取点偏差+抓取角(弧度)偏差 dx+dy+dr 偏差最小且抓取线全部位于图像块内
223 |
224 | param:
225 | pt: 待修正的抓取点 (row, col)
226 | size: 正方形边长 int
227 | return:
228 | 抓取修正(除了抓取宽度和深度)
229 | [drow, dcol, dangle_bin, width, depth] 注意:dangle_bin
230 | """
231 | pt_row, pt_col = pt
232 | # 检索抓取点在正方形内的抓取配置
233 | crop_t = int(pt_row - size/2)
234 | crop_b = int(pt_row + size/2)
235 | crop_l = int(pt_col - size/2)
236 | crop_r = int(pt_col + size/2)
237 | segmask = np.zeros((self.height, self.width), dtype=np.uint8)
238 | segmask[crop_t:crop_b, crop_l:crop_r] = np.ones((size, size), dtype=np.uint8)
239 |
240 | grasp_candidate_pts = np.where(self.grasp_point_map_rot > 0)
241 | if grasp_candidate_pts[0].shape[0] == 0:
242 | return None
243 | grasp_candidate_pts = np.c_[grasp_candidate_pts[0], grasp_candidate_pts[1]] # shape=(n,2) row, col
244 | grasp_candidate_pts = np.array( [p for p in grasp_candidate_pts if np.any(segmask[p[0], p[1]] > 0)] )
245 | if grasp_candidate_pts.shape[0] == 0:
246 | return None
247 |
248 | min_metric = 1000
249 | grasp_correction = None # 存储抓取修正
250 | for grasp_pt in grasp_candidate_pts:
251 | grasp_row, grasp_col = grasp_pt
252 |
253 | grasp_angle_bins = np.where(self.grasp_angle_map_rot[:, grasp_row, grasp_col] > 0)[0]
254 | for grasp_angle_bin in grasp_angle_bins:
255 | grasp_angle = grasp_angle_bin / self.angle_k * math.pi # 抓取角 弧度
256 | grasp_width = self.grasp_width_map_rot[grasp_angle_bin, grasp_row, grasp_col] # 抓取宽度 米
257 | grasp_depth = self.grasp_depth_map_rot[grasp_angle_bin, grasp_row, grasp_col] # 抓取深度 米
258 | # 1 根据抓取线筛选
259 | # 计算两个抓取端点坐标
260 | pt1, pt2 = calcEndPoints((grasp_col, grasp_row), grasp_angle, grasp_width * RADIO)
261 | # 判断两个抓取端点是否在正方形内
262 | if (not isPtInSquare(pt1, (pt_col, pt_row), size)) or (not isPtInSquare(pt2, (pt_col, pt_row), size)):
263 | continue
264 |
265 | # 2 计算相似度最小的抓取标签
266 | metric = abs(grasp_row - pt_row) + abs(grasp_col - pt_col) + abs(grasp_angle_bin)
267 | if metric < min_metric:
268 | min_metric = metric
269 | grasp_correction = [grasp_row - pt_row, grasp_col - pt_col, grasp_angle_bin, grasp_width, grasp_depth]
270 |
271 | return grasp_correction
272 |
273 | def getCorrectGrasp(self, pt, size):
274 | """
275 | 搜索最接近pt的抓取标签, 满足抓取线全部在正方形内
276 | 相似度: 抓取点偏差+抓取角(弧度)偏差 dx+dy+dr 偏差最小且抓取线全部位于图像块内
277 |
278 | param:
279 | pt: 待修正的抓取点 (row, col)
280 | size: 正方形边长 int
281 | return:
282 | 抓取修正(除了抓取宽度和深度)
283 | [drow, dcol, dangle_bin, width, depth] 注意:dangle_bin
284 | """
285 | pt_row, pt_col = pt
286 | # 检索抓取点在正方形内的抓取配置
287 | crop_t = int(pt_row - size/2)
288 | crop_b = int(pt_row + size/2)
289 | crop_l = int(pt_col - size/2)
290 | crop_r = int(pt_col + size/2)
291 | segmask = np.zeros((self.height, self.width), dtype=np.uint8)
292 | segmask[crop_t:crop_b, crop_l:crop_r] = np.ones((size, size), dtype=np.uint8)
293 |
294 | grasp_candidate_pts = np.where(self.grasp_point_map_rot > 0)
295 | if grasp_candidate_pts[0].shape[0] == 0:
296 | return None
297 | grasp_candidate_pts = np.c_[grasp_candidate_pts[0], grasp_candidate_pts[1]] # shape=(n,2) row, col
298 | grasp_candidate_pts = np.array( [p for p in grasp_candidate_pts if np.any(segmask[p[0], p[1]] > 0)] )
299 | if grasp_candidate_pts.shape[0] == 0:
300 | return None
301 |
302 | min_metric = 1000
303 | grasp_correction = None # 存储抓取修正
304 | for grasp_pt in grasp_candidate_pts:
305 | grasp_row, grasp_col = grasp_pt
306 |
307 | grasp_angle_bins = np.where(self.grasp_angle_map_rot[:, grasp_row, grasp_col] > 0)[0]
308 | for grasp_angle_bin in grasp_angle_bins:
309 | grasp_angle = grasp_angle_bin / self.angle_k * math.pi # 抓取角 弧度
310 | grasp_width = self.grasp_width_map_rot[grasp_angle_bin, grasp_row, grasp_col] # 抓取宽度 米
311 | grasp_depth = self.grasp_depth_map_rot[grasp_angle_bin, grasp_row, grasp_col] # 抓取深度 米
312 | # 1 根据抓取线筛选
313 | # 计算两个抓取端点坐标
314 | pt1, pt2 = calcEndPoints((grasp_col, grasp_row), grasp_angle, grasp_width * RADIO)
315 | # 判断两个抓取端点是否在正方形内
316 | if (not isPtInSquare(pt1, (pt_col, pt_row), size)) or (not isPtInSquare(pt2, (pt_col, pt_row), size)):
317 | continue
318 |
319 | # 2 计算相似度最小的抓取标签
320 | metric = abs(grasp_row - pt_row) + abs(grasp_col - pt_col) + abs(grasp_angle_bin)
321 | if metric < min_metric:
322 | min_metric = metric
323 | grasp_correction = [grasp_row - pt_row, grasp_col - pt_col, grasp_angle_bin, grasp_width, grasp_depth]
324 |
325 | return grasp_correction
326 |
327 |
328 | def getCorrectGrasp_1(self, pt, size):
329 | """
330 | 搜索最接近pt的抓取标签, 满足抓取线全部在正方形内
331 | 相似度: 抓取角(弧度)偏差 dx+dy+dr 偏差最小且抓取线全部位于图像块内
332 |
333 | param:
334 | pt: 待修正的抓取点 (row, col)
335 | size: 正方形边长 int
336 | return:
337 | 抓取修正(除了抓取宽度和深度)
338 | [success, dangle_bin, width, depth] 注意:dangle_bin
339 | """
340 | pt_row, pt_col = pt
341 | # 检索抓取点在正方形内的抓取配置
342 | crop_t = pt_row - 2
343 | crop_b = pt_row + 3
344 | crop_l = pt_col - 2
345 | crop_r = pt_col + 3
346 | segmask = np.zeros((self.height, self.width), dtype=np.uint8)
347 | segmask[crop_t:crop_b, crop_l:crop_r] = np.ones((5, 5), dtype=np.uint8)
348 | grasp_point_map_rot = self.grasp_point_map_rot * segmask
349 |
350 | grasp_candidate_pts = np.where(grasp_point_map_rot > 0)
351 | if grasp_candidate_pts[0].shape[0] == 0:
352 | return None
353 |
354 | grasp_candidate_pts = np.c_[grasp_candidate_pts[0], grasp_candidate_pts[1]]
355 |
356 | min_angle = 18
357 | grasp_correction = None # 存储抓取修正
358 | for grasp_pt in grasp_candidate_pts:
359 | grasp_row, grasp_col = grasp_pt
360 |
361 | grasp_angle_bins = np.where(self.grasp_angle_map_rot[:, grasp_row, grasp_col] > 0)[0]
362 | for grasp_angle_bin in grasp_angle_bins:
363 | grasp_angle = grasp_angle_bin / self.angle_k * math.pi # 抓取角 弧度
364 | grasp_width = self.grasp_width_map_rot[grasp_angle_bin, grasp_row, grasp_col] # 抓取宽度 米
365 | grasp_depth = self.grasp_depth_map_rot[grasp_angle_bin, grasp_row, grasp_col] # 抓取深度 米
366 | # 1 根据抓取线筛选
367 | # 计算两个抓取端点坐标
368 | pt1, pt2 = calcEndPoints((grasp_col, grasp_row), grasp_angle, grasp_width * RADIO)
369 | # 判断两个抓取端点是否在正方形内
370 | if (not isPtInSquare(pt1, (pt_col, pt_row), size)) or (not isPtInSquare(pt2, (pt_col, pt_row), size)):
371 | continue
372 |
373 | # 2 计算相似度最小的抓取标签
374 | if grasp_angle_bin < min_angle:
375 | min_angle = grasp_angle_bin
376 | grasp_correction = [grasp_angle_bin, grasp_width, grasp_depth]
377 |
378 | if grasp_correction is None:
379 | return None
380 |
381 | return grasp_correction
382 |
383 |
384 | def drawGrasps(self, img, interval=2):
385 | """
386 | 绘制抓取配置
387 | """
388 | grasps = []
389 | rows, cols = np.where(self.grasp_point_map > 0) # 抓取点
390 | for i in range(rows.shape[0]):
391 | if i % interval != 0:
392 | continue
393 | row, col = rows[i], cols[i]
394 | angle_bins = np.where(self.grasp_angle_map[:, row, col] > 0)[0]
395 | for angle_bin in angle_bins:
396 | angle = (angle_bin / self.angle_k) * math.pi
397 | width = self.grasp_width_map[angle_bin, row, col] * RADIO
398 |
399 | grasps.append([row, col, angle, width])
400 |
401 | # 绘制抓取
402 | img = drawGrasps(img, grasps, mode='line')
403 |
404 | return img
405 |
406 | def drawGraspsRot(self, img, interval=2):
407 | """
408 | 绘制抓取配置
409 | """
410 | grasps = []
411 | rows, cols = np.where(self.grasp_point_map_rot > 0) # 抓取点
412 | for i in range(rows.shape[0]):
413 | if i % interval != 0:
414 | continue
415 | row, col = rows[i], cols[i]
416 | angle_bins = np.where(self.grasp_angle_map_rot[:, row, col] > 0)[0]
417 | for angle_bin in angle_bins:
418 | angle = (angle_bin / self.angle_k) * math.pi
419 | width = self.grasp_width_map_rot[angle_bin, row, col] * RADIO
420 |
421 | grasps.append([row, col, angle, width])
422 |
423 | # 绘制抓取
424 | img = drawGrasps(img, grasps, mode='line')
425 |
426 | return img
427 |
428 |
429 |
430 |
431 | if __name__ == "__main__":
432 | pt = (10, 10)
433 | angle = math.pi / 4
434 | width = 10
435 | pt1, pt2 = calcEndPoints(pt, angle, width)
436 | print(pt1, pt2)
437 |
--------------------------------------------------------------------------------
/franka_panda/meshes/collision/link2.obj:
--------------------------------------------------------------------------------
1 | # File produced by Open Asset Import Library (http://www.assimp.sf.net)
2 | # (assimp v3.1.187496374)
3 |
4 | mtllib link2.obj.mtl
5 |
6 | # 152 vertex positions
7 | v 0.0547799 0.00875545 0.000695036
8 | v 0.0549849 0.00179704 0.0600771
9 | v 0.0549358 -0.194003 -0.0050002
10 | v 0.0541351 0.00944441 0.0628215
11 | v 0.031051 -0.126082 -0.0455013
12 | v 0.047601 0.0280333 0.000489744
13 | v 0.0502436 0.0226741 0.0632384
14 | v 0.0212053 -0.126588 -0.0508097
15 | v 0.0399461 -0.124494 -0.0379263
16 | v 0.0484134 -0.123261 -0.026532
17 | v -0.0518832 -0.194 -0.0183946
18 | v -0.0500141 -0.121697 -0.0232611
19 | v -0.0466703 -0.194 -0.0294255
20 | v -0.0439629 0.0332954 0.000489695
21 | v -0.036151 0.0416476 0.0644805
22 | v -0.0320994 0.0449999 0.000508252
23 | v -0.0152371 -0.0171926 0.125084
24 | v -0.0237602 -0.194 0.0497122
25 | v -0.010578 -0.194 0.054149
26 | v -0.0254664 -0.0161975 0.121439
27 | v 0.0307019 -0.0160908 0.118495
28 | v 0.0218367 -0.194 0.0506868
29 | v 0.0369534 -0.194 0.041087
30 | v 0.016094 0.0527631 0.0641438
31 | v 0.0285992 0.047274 0.000499651
32 | v 0.013564 0.053444 0.000497281
33 | v 0.0287201 0.0470227 0.0647734
34 | v 0.00351193 -0.12558 -0.054882
35 | v 0.0114522 -0.126129 -0.0537865
36 | v -0.0138711 -0.126413 -0.0533398
37 | v 0.0390762 0.0387882 0.000497352
38 | v -0.0439361 -0.0117967 0.108632
39 | v -0.0462278 -0.00365254 0.107627
40 | v -0.0487421 -0.193999 0.0259655
41 | v -0.0548289 0.00642324 0.000591963
42 | v -0.0534466 -0.118112 -0.0131661
43 | v -0.0551534 -0.19401 0.00510135
44 | v -0.0545204 -0.194 -0.00818656
45 | v -0.0358292 -0.125777 -0.0418274
46 | v -0.0511798 0.0205574 0.000498796
47 | v -0.00343009 -0.125759 -0.0548761
48 | v -0.0179118 0.0521237 0.000504139
49 | v -0.0214171 0.0509056 0.0645642
50 | v -0.00776943 0.0545048 0.0645032
51 | v -0.00246019 0.05522 0.000492765
52 | v -0.0512272 0.0203715 0.0627504
53 | v 0.053404 -0.118713 -0.0135225
54 | v 0.000751583 -0.00741707 0.129075
55 | v -0.00348431 -0.0167312 0.127099
56 | v 0.00626452 -0.0182407 0.126383
57 | v 0.00559829 -0.194 0.0549029
58 | v 0.0379164 -0.0147356 0.113617
59 | v 0.0462819 -0.00300058 0.107483
60 | v 0.0477805 -0.194 0.0274755
61 | v 0.0534314 -0.194 0.013614
62 | v 0.0446073 -0.0117334 0.107859
63 | v -0.0100452 -0.00110755 0.128719
64 | v -0.00688605 0.00774291 0.128603
65 | v -0.0150385 0.0113995 0.126577
66 | v -0.0366572 -0.01521 0.114621
67 | v 0.0445974 0.0322464 0.0639897
68 | v 0.0517857 0.00163012 0.0815724
69 | v 0.0494481 0.017366 0.0790175
70 | v 0.0282936 -0.194 -0.0472499
71 | v 0.0458178 -0.194 -0.0305876
72 | v 0.0373247 -0.194 -0.0405746
73 | v -0.0517812 0.00221134 0.0817068
74 | v -0.054916 0.00463229 0.0610593
75 | v -0.0374301 -0.194 0.0406659
76 | v -0.0276795 -0.126212 -0.0476675
77 | v -0.0452128 0.0314492 0.0634568
78 | v -0.0395945 0.0333466 0.0831425
79 | v -0.00855073 0.0509026 0.0845959
80 | v -0.0197877 0.0474677 0.0851107
81 | v -0.0130229 0.0448056 0.107063
82 | v -0.025218 0.0448655 0.0847447
83 | v -0.0313187 0.0409526 0.0839825
84 | v 0.00337921 0.0550079 0.0644398
85 | v 0.0517594 -0.194 -0.0190919
86 | v 0.0190505 -0.0172288 0.123856
87 | v -0.014125 -0.0095805 0.127168
88 | v 0.0298218 -0.00866372 0.120929
89 | v 0.0240752 -0.00408641 0.1245
90 | v 0.00397345 0.000518457 0.129489
91 | v -0.0208855 -0.000462331 0.12582
92 | v -0.0129757 -0.194 -0.0535885
93 | v -4.27424e-05 -0.194 -0.0550966
94 | v 0.0364876 0.0411348 0.0655198
95 | v -0.0430603 -0.123826 -0.0343229
96 | v 0.00901678 0.0126839 0.127561
97 | v 0.00261172 0.00856949 0.128877
98 | v 0.0118591 -0.00831063 0.127792
99 | v 0.0137665 0.0204527 0.124378
100 | v 0.0176171 0.00425055 0.126807
101 | v 0.0260309 0.00970153 0.122739
102 | v 0.0459354 0.00673847 0.107678
103 | v 0.0392982 -0.00592915 0.114605
104 | v 0.0363838 0.0032781 0.117268
105 | v -0.0255566 0.00795001 0.123264
106 | v -0.0236907 0.0215258 0.120405
107 | v -0.0323034 0.015809 0.1176
108 | v -0.00434828 0.0171063 0.126883
109 | v -0.0144221 0.0199306 0.124302
110 | v 0.0486098 0.0101519 0.0933213
111 | v -0.0462521 0.00699219 0.106752
112 | v -0.0427638 0.00539408 0.111331
113 | v -0.0267486 -0.194 -0.0482902
114 | v 0.016019 -0.194 -0.0528808
115 | v -0.0514251 0.0132731 0.0747568
116 | v -0.0465312 0.023048 0.0822049
117 | v -0.0374757 0.0275452 0.107331
118 | v -0.0425322 0.018274 0.107673
119 | v -0.0266734 0.0324841 0.112352
120 | v -0.0311617 0.0343971 0.107352
121 | v 0.00196963 0.0512017 0.0866911
122 | v -0.0440648 0.0154429 0.10713
123 | v 0.000309921 0.0235193 0.124821
124 | v 0.0331091 0.0137207 0.117691
125 | v -0.0302799 0.00225558 0.121284
126 | v -0.0362039 0.00731356 0.116785
127 | v -0.0313528 -0.00896166 0.119999
128 | v -0.0381205 -0.194 -0.0397839
129 | v 0.0438507 0.0239595 0.0918484
130 | v 0.0399564 0.0325702 0.084039
131 | v -0.017877 0.0426078 0.107975
132 | v -0.00582199 0.0430587 0.110978
133 | v -0.00952703 0.0376232 0.115319
134 | v -0.0171561 0.0323609 0.117111
135 | v -0.0244552 0.0394989 0.107471
136 | v -0.0387607 0.0166246 0.112248
137 | v -0.032079 0.0257153 0.113308
138 | v 0.0169924 0.0287418 0.119516
139 | v 0.00312588 0.0325689 0.119968
140 | v -0.00276387 0.046319 0.107409
141 | v 0.0114487 0.0500631 0.0856468
142 | v 0.0424678 0.0187545 0.107658
143 | v 0.0365812 0.0285008 0.107512
144 | v 0.0341516 0.0224739 0.113524
145 | v -0.0374517 -0.00313331 0.116357
146 | v 0.00294327 0.0404966 0.113812
147 | v -0.0117918 0.0286979 0.120959
148 | v 0.01203 0.0394531 0.11315
149 | v 0.0204365 0.0372159 0.111937
150 | v 0.00874197 0.0456755 0.107309
151 | v 0.0277535 0.0252894 0.116309
152 | v 0.0242468 0.019117 0.120984
153 | v 0.0393956 0.0156438 0.11198
154 | v 0.0200004 0.0467444 0.0881052
155 | v 0.026041 0.038696 0.106945
156 | v 0.0196621 0.0420999 0.107295
157 | v 0.0249062 0.0313688 0.114376
158 | v 0.0317282 0.0340296 0.107127
159 |
160 | # 0 UV coordinates
161 |
162 | # 298 vertex normals
163 | vn 0.999994 0.000863099 -0.00335135
164 | vn 0.994196 0.1072 0.00912929
165 | vn 0.531767 0.189234 -0.825478
166 | vn 0.937121 0.348871 -0.00966981
167 | vn 0.455706 0.209252 -0.865185
168 | vn 0.795259 0.0854375 -0.600219
169 | vn -0.904114 -0.00538631 -0.427258
170 | vn -0.702299 0.711846 -0.00717604
171 | vn -0.297328 -0.362249 0.883386
172 | vn -0.344298 -0.354079 0.869533
173 | vn 0.50623 -0.329053 0.797155
174 | vn 0.379639 0.92512 -0.00519485
175 | vn 0.413766 0.910379 0.00278169
176 | vn 0.150207 0.281818 -0.947637
177 | vn 0.118088 0.287398 -0.950504
178 | vn -0.25926 0.264253 -0.928953
179 | vn 0.314677 0.250075 -0.915664
180 | vn 0.29327 0.254232 -0.921607
181 | vn 0.219778 0.271602 -0.936979
182 | vn 0.959393 0.281989 0.00682976
183 | vn 0.624884 0.152369 -0.765704
184 | vn -0.866797 -0.186891 0.462315
185 | vn -0.943599 0.0259913 -0.33007
186 | vn -0.998867 0.00054697 -0.0475853
187 | vn -0.623931 0.156035 -0.765744
188 | vn -0.156925 0.280761 -0.946862
189 | vn -0.142678 0.283609 -0.948266
190 | vn -0.448711 0.893645 -0.00756096
191 | vn -0.25498 0.966936 0.00443328
192 | vn -0.196484 0.980492 -0.00534121
193 | vn -0.968252 0.249977 8.6395e-06
194 | vn 0.990526 0.00461689 -0.137249
195 | vn 0.0369453 -0.223424 0.974021
196 | vn 0.009697 -0.376742 0.926267
197 | vn -0.0430879 -0.378729 0.924504
198 | vn 0.571795 -0.310337 0.759435
199 | vn 0.915645 -0.14918 0.373283
200 | vn 0.90661 -0.156962 0.391691
201 | vn 0.694927 -0.272904 0.665282
202 | vn -0.204033 0.0855425 0.975219
203 | vn -0.512723 -0.325422 0.79449
204 | vn 0.0328199 0.293682 -0.95534
205 | vn 0.861547 0.507629 0.00707201
206 | vn 0.987442 0.0568267 0.147407
207 | vn 0.951023 0.275313 0.140563
208 | vn 0.474434 0.00340186 -0.880284
209 | vn 0.76178 -0.00404598 -0.647823
210 | vn 0.802386 0.0047729 -0.596787
211 | vn 0.647875 0.00459 -0.761732
212 | vn -0.978746 -0.0597654 0.196172
213 | vn -0.988569 -0.0397853 0.145426
214 | vn -0.968207 -0.00271314 -0.250134
215 | vn -0.684587 -0.276094 0.67462
216 | vn -0.946467 0.00274025 -0.322788
217 | vn -0.989865 0.00469307 -0.141931
218 | vn -0.999998 0.00158798 -0.00139374
219 | vn -0.567546 0.173276 -0.804902
220 | vn -0.746469 0.648161 0.15057
221 | vn -0.059283 0.292332 -0.954478
222 | vn -0.00833902 0.292587 -0.956203
223 | vn -0.279998 0.942977 0.179987
224 | vn -0.278063 0.93959 0.199629
225 | vn -0.526534 0.836596 0.151228
226 | vn -0.547007 0.820748 0.164792
227 | vn -0.53205 0.846645 0.0106701
228 | vn 0.110161 0.993891 -0.00676278
229 | vn 0.173941 0.984749 0.00361981
230 | vn 0.975511 -0.00504341 -0.219893
231 | vn 0.929545 0.0309468 -0.367409
232 | vn 0.233598 -0.368724 0.899708
233 | vn 0.208231 -0.369148 0.905743
234 | vn -0.102318 -0.161682 0.981524
235 | vn 0.399687 -0.19669 0.895301
236 | vn 0.420176 -0.341391 0.840776
237 | vn 0.757259 -0.252465 0.602346
238 | vn 0.996386 -0.0270171 0.080536
239 | vn 0.988252 -0.0426667 0.146755
240 | vn -0.0512336 -0.0313597 0.998194
241 | vn -0.107676 -0.128634 0.985829
242 | vn -0.949783 -0.11269 0.291913
243 | vn -0.254295 0.0637289 0.965025
244 | vn -0.522082 -0.324077 0.788926
245 | vn -0.115824 -0.00253905 -0.993267
246 | vn 0.978533 -0.060234 0.197091
247 | vn 0.783664 0.621171 -0.00414522
248 | vn 0.739147 0.673525 0.00512004
249 | vn 0.629394 0.77708 -0.00298668
250 | vn -0.767806 -0.247805 0.590819
251 | vn -0.6978 0.125969 -0.705129
252 | vn -0.747757 0.663956 0.00462416
253 | vn -0.0450397 0.998958 0.00742623
254 | vn 0.932906 0.0062564 -0.360066
255 | vn 0.139193 0.0985125 0.985353
256 | vn -0.142669 -0.371777 0.917294
257 | vn 0.0971861 -0.19331 0.976313
258 | vn -0.154903 -0.239709 0.958407
259 | vn 0.31021 0.212658 0.926578
260 | vn 0.425097 -0.235974 0.873847
261 | vn 0.711656 0.0112243 0.702439
262 | vn 0.705103 0.018177 0.708871
263 | vn -0.442238 0.242649 0.863451
264 | vn -0.260852 -0.0508872 0.964037
265 | vn -0.168845 0.265372 0.949247
266 | vn 0.286162 0.208247 0.935278
267 | vn -0.329188 0.102325 0.938704
268 | vn -0.000929673 0.00318577 -0.999995
269 | vn 0.976601 0.0304743 0.212892
270 | vn 0.975681 0.0851268 0.201991
271 | vn 0.594393 -0.00342816 -0.804167
272 | vn 0.888339 -0.00627229 -0.459145
273 | vn -0.786216 0.0488445 0.616018
274 | vn -0.976984 0.0152622 0.212768
275 | vn -0.366464 0.234435 -0.900413
276 | vn -0.401575 0.226884 -0.887278
277 | vn 2.34947e-05 -1 -5.69195e-05
278 | vn 3.61495e-05 -1 -1.824e-05
279 | vn -5.85523e-07 -1 1.49966e-06
280 | vn 3.03192e-06 -1 2.42667e-06
281 | vn -4.71086e-07 -1 2.77471e-06
282 | vn -1.48549e-06 -1 8.9384e-06
283 | vn 3.51975e-06 -1 -4.53679e-06
284 | vn 4.04839e-05 -1 -4.58034e-05
285 | vn -9.82561e-05 -1 -1.11942e-06
286 | vn 2.84184e-05 -1 9.31264e-06
287 | vn -2.01463e-05 -1 2.9116e-05
288 | vn -7.02999e-05 -1 4.29144e-05
289 | vn 4.18487e-06 -1 -1.60743e-05
290 | vn -0.00105549 -0.999999 4.71011e-05
291 | vn -0.927549 0.328182 0.178744
292 | vn -0.878846 0.477105 0.000755021
293 | vn -0.870057 0.492942 -0.00281789
294 | vn -0.823025 0.537695 0.183067
295 | vn -0.85243 0.473119 0.222535
296 | vn -0.873196 0.464722 0.146839
297 | vn -0.379932 0.00327956 -0.925008
298 | vn -0.434877 0.881895 0.182049
299 | vn -0.542201 0.49762 0.677047
300 | vn -0.250985 0.954448 0.161354
301 | vn -0.062547 0.982799 0.173763
302 | vn -0.950623 0.237106 0.200242
303 | vn -0.970154 0.215406 0.111366
304 | vn -0.973732 0.227636 0.0053393
305 | vn 0.0549176 0.269324 0.961482
306 | vn 0.106643 -0.0950194 0.989747
307 | vn 0.169683 0.0853083 0.981799
308 | vn 0.403024 0.0594556 0.913256
309 | vn 0.525421 0.130692 0.840745
310 | vn 0.309201 -0.164124 0.936727
311 | vn 0.68757 -0.186612 0.701729
312 | vn -0.058787 0.0339928 0.997692
313 | vn -0.0347986 0.0699661 0.996942
314 | vn -0.528972 0.148128 0.835612
315 | vn -0.511188 0.15351 0.845649
316 | vn -0.14308 0.216216 0.965804
317 | vn 0.104308 0.32179 0.941048
318 | vn 0.0273576 0.265676 0.963674
319 | vn -0.126123 0.385563 0.914021
320 | vn -0.384405 -0.150357 0.910838
321 | vn 0.136665 -0.00399225 -0.990609
322 | vn 0.13639 -0.0040438 -0.990647
323 | vn -0.145676 0.00171098 -0.989331
324 | vn -0.838539 0.069106 -0.540441
325 | vn -0.719662 0.00337278 -0.694316
326 | vn 0.895452 0.406326 0.181834
327 | vn 0.742708 0.649867 0.161426
328 | vn 0.960091 0.223039 0.168755
329 | vn 0.976886 0.124038 0.174094
330 | vn 0.416955 -0.00415406 -0.908917
331 | vn 0.292217 0.00689914 -0.956327
332 | vn -0.755259 0.167188 0.633745
333 | vn -0.971282 0.14821 0.186131
334 | vn -1.53238e-05 -1 2.11839e-06
335 | vn -9.43751e-05 -1 -4.17948e-05
336 | vn -6.76337e-05 -1 -3.86085e-05
337 | vn 0.00343091 -0.999994 -0.00056314
338 | vn -0.000102877 -1 3.39915e-05
339 | vn -0.598978 -0.00386878 -0.800756
340 | vn -0.928173 0.320251 0.189565
341 | vn -0.367104 0.903141 0.222646
342 | vn -0.194938 0.710847 0.675793
343 | vn -0.198998 0.690831 0.695092
344 | vn -0.34802 0.610139 0.711767
345 | vn -0.341961 0.607215 0.717184
346 | vn -0.643954 0.375783 0.666416
347 | vn -0.625549 0.380285 0.681228
348 | vn -0.38876 0.47454 0.789732
349 | vn -0.431779 0.454863 0.778889
350 | vn -0.544307 0.526906 0.652763
351 | vn -0.820962 0.534748 0.200163
352 | vn -0.0435197 0.985204 0.16577
353 | vn -0.977211 0.134589 0.164147
354 | vn -0.264308 0.631408 0.729016
355 | vn 0.1541 0.454601 0.877264
356 | vn -0.136379 0.78679 0.601965
357 | vn 0.136436 0.974993 0.175423
358 | vn 0.175233 0.971466 0.159838
359 | vn -0.0702394 0.974396 0.213587
360 | vn 0.640947 0.396988 0.656954
361 | vn 0.487217 0.042278 0.872257
362 | vn 0.206759 -0.250703 0.945727
363 | vn 0.573957 -0.17969 0.798927
364 | vn 0.582319 -0.190013 0.790442
365 | vn -0.575564 0.336043 0.745521
366 | vn -0.334494 0.265346 0.904271
367 | vn -0.704479 -0.0206901 0.709423
368 | vn -0.608945 0.206044 0.765984
369 | vn -0.0449612 0.192288 0.980308
370 | vn -0.0570372 0.646519 0.760763
371 | vn -0.0456084 0.612006 0.789537
372 | vn -0.0688257 0.487991 0.870131
373 | vn -0.126278 0.386235 0.913716
374 | vn -0.518988 -0.260184 0.814221
375 | vn -0.771213 -0.00475059 -0.63656
376 | vn -0.846044 0.00632099 -0.533076
377 | vn 0.603962 0.79701 0.00198059
378 | vn -0.609696 -0.151946 0.777935
379 | vn -0.582506 -0.000532993 -0.812826
380 | vn -0.546305 0.810879 0.209823
381 | vn -0.433541 0.873649 0.220861
382 | vn -0.430493 0.874883 0.221938
383 | vn -0.592933 0.774279 0.221183
384 | vn -0.674545 0.712683 0.192542
385 | vn -0.196288 0.558895 0.805672
386 | vn 0.276421 -0.0514573 0.959658
387 | vn 0.196341 -0.0131192 0.980448
388 | vn 0.265625 0.580477 0.769733
389 | vn 0.181753 0.563216 0.806073
390 | vn 0.13212 0.714636 0.686906
391 | vn 0.139644 0.966955 0.2133
392 | vn 0.497395 0.326283 0.803827
393 | vn 0.494051 0.32504 0.806389
394 | vn 0.465971 0.246662 0.849722
395 | vn 0.326294 0.232587 0.916207
396 | vn 0.638437 0.333373 0.69373
397 | vn 0.732082 -0.111401 0.672046
398 | vn 0.565801 -0.0587605 0.822445
399 | vn 0.515701 -0.0207842 0.856517
400 | vn -0.87513 0.431818 0.218357
401 | vn -0.646555 0.0460771 0.761474
402 | vn -0.362237 0.239517 0.900786
403 | vn -0.304864 0.440552 0.844377
404 | vn -0.0868798 0.547816 0.832075
405 | vn -0.384864 -0.131303 0.913586
406 | vn -0.346098 -0.200322 0.916563
407 | vn 0.503112 0.841219 0.198061
408 | vn 0.823456 0.53742 0.181934
409 | vn 0.854693 0.490881 0.168927
410 | vn -0.66898 -0.148703 0.728253
411 | vn -0.697792 -0.109036 0.707953
412 | vn -0.359042 -0.00132172 -0.933321
413 | vn -0.467735 0.599727 0.64927
414 | vn -0.673614 0.710425 0.203813
415 | vn -0.717482 0.660503 0.22126
416 | vn -0.00182421 0.739045 0.673654
417 | vn -0.149619 0.961356 0.231102
418 | vn 0.239458 0.728761 0.641534
419 | vn 0.279376 0.684365 0.673494
420 | vn 0.468902 0.856539 0.215576
421 | vn 0.829645 0.504676 0.238727
422 | vn 0.312865 0.559373 0.767605
423 | vn 0.803861 0.555776 0.211944
424 | vn 0.528926 0.482947 0.697853
425 | vn -0.656801 0.216914 0.722191
426 | vn -0.290729 0.415762 0.861753
427 | vn -0.584387 0.0366406 0.810648
428 | vn -0.542911 -0.044139 0.838629
429 | vn -0.447889 -0.0593559 0.892116
430 | vn -0.425426 0.0383972 0.904178
431 | vn 0.128926 0.437161 0.890095
432 | vn 0.926929 0.310385 0.210866
433 | vn 0.90493 0.374345 0.202403
434 | vn 0.0481549 0.759987 0.648152
435 | vn 0.0562881 0.968845 0.241186
436 | vn 0.933093 0.269674 0.237935
437 | vn 0.51793 0.469893 0.714807
438 | vn 0.328419 0.379525 0.864929
439 | vn 0.726008 0.652385 0.217498
440 | vn 0.719844 0.208843 0.661974
441 | vn 0.594619 0.286757 0.751132
442 | vn -0.718715 0.201884 0.665351
443 | vn -0.659221 0.175302 0.73123
444 | vn -0.494093 0.355034 0.793614
445 | vn 0.127052 0.610153 0.78203
446 | vn 0.617571 0.760526 0.200515
447 | vn 0.580874 0.790772 0.193041
448 | vn 0.401827 0.901464 0.160927
449 | vn 0.525761 0.508862 0.681641
450 | vn 0.390316 0.666012 0.635674
451 | vn 0.309209 0.933033 0.183955
452 | vn 0.303165 0.92496 0.229214
453 | vn 0.382883 0.437987 0.813368
454 | vn 0.379105 0.412169 0.82849
455 | vn 0.681299 0.704644 0.198262
456 | vn 0.674255 0.145379 0.724048
457 | vn 0.634115 0.168265 0.754709
458 | vn 0.432342 0.6082 0.665713
459 | vn 0.465852 0.593485 0.656321
460 | vn 0.295628 0.928431 0.224987
461 |
462 | # Mesh '' with 300 faces
463 | g
464 | usemtl DefaultMaterial
465 | f 1//1 2//1 3//1
466 | f 1//2 4//2 2//2
467 | f 5//3 6//3 1//3
468 | f 6//4 7//4 1//4
469 | f 5//5 8//5 6//5
470 | f 9//6 1//6 10//6
471 | f 11//7 12//7 13//7
472 | f 14//8 15//8 16//8
473 | f 17//9 18//9 19//9
474 | f 20//10 18//10 17//10
475 | f 21//11 22//11 23//11
476 | f 24//12 25//12 26//12
477 | f 25//13 24//13 27//13
478 | f 28//14 25//14 29//14
479 | f 28//15 26//15 25//15
480 | f 16//16 30//16 14//16
481 | f 8//17 31//17 6//17
482 | f 29//18 31//18 8//18
483 | f 29//19 25//19 31//19
484 | f 7//20 4//20 1//20
485 | f 5//21 1//21 9//21
486 | f 32//22 33//22 34//22
487 | f 35//23 12//23 36//23
488 | f 37//24 35//24 38//24
489 | f 39//25 35//25 40//25
490 | f 16//26 41//26 30//26
491 | f 42//27 41//27 16//27
492 | f 16//28 43//28 42//28
493 | f 44//29 42//29 43//29
494 | f 44//30 45//30 42//30
495 | f 46//31 40//31 35//31
496 | f 3//32 47//32 1//32
497 | f 48//33 49//33 50//33
498 | f 49//34 51//34 50//34
499 | f 49//35 19//35 51//35
500 | f 52//36 21//36 23//36
501 | f 53//37 54//37 55//37
502 | f 53//38 56//38 54//38
503 | f 52//39 23//39 56//39
504 | f 57//40 58//40 59//40
505 | f 18//41 20//41 60//41
506 | f 28//42 45//42 26//42
507 | f 7//43 6//43 61//43
508 | f 2//44 4//44 62//44
509 | f 4//45 7//45 63//45
510 | f 8//46 5//46 64//46
511 | f 9//47 65//47 66//47
512 | f 10//48 65//48 9//48
513 | f 66//49 5//49 9//49
514 | f 33//50 67//50 37//50
515 | f 67//51 68//51 37//51
516 | f 36//52 11//52 38//52
517 | f 32//53 69//53 60//53
518 | f 36//54 12//54 11//54
519 | f 38//55 35//55 36//55
520 | f 68//56 35//56 37//56
521 | f 70//57 39//57 40//57
522 | f 15//58 71//58 72//58
523 | f 41//59 42//59 45//59
524 | f 41//60 45//60 28//60
525 | f 73//61 43//61 74//61
526 | f 73//62 74//62 75//62
527 | f 76//63 43//63 15//63
528 | f 15//64 77//64 76//64
529 | f 43//65 16//65 15//65
530 | f 78//66 26//66 45//66
531 | f 78//67 24//67 26//67
532 | f 79//68 47//68 3//68
533 | f 1//69 47//69 10//69
534 | f 80//70 51//70 22//70
535 | f 80//71 50//71 51//71
536 | f 81//72 49//72 48//72
537 | f 82//73 83//73 80//73
538 | f 21//74 80//74 22//74
539 | f 56//75 23//75 54//75
540 | f 55//76 3//76 2//76
541 | f 2//77 62//77 55//77
542 | f 84//78 57//78 48//78
543 | f 57//79 81//79 48//79
544 | f 33//80 37//80 34//80
545 | f 85//81 57//81 59//81
546 | f 69//82 18//82 60//82
547 | f 86//83 41//83 87//83
548 | f 53//84 55//84 62//84
549 | f 31//85 61//85 6//85
550 | f 61//86 31//86 88//86
551 | f 31//87 25//87 88//87
552 | f 32//88 34//88 69//88
553 | f 35//89 39//89 89//89
554 | f 14//90 71//90 15//90
555 | f 44//91 78//91 45//91
556 | f 79//92 10//92 47//92
557 | f 90//93 91//93 84//93
558 | f 49//94 17//94 19//94
559 | f 92//95 48//95 50//95
560 | f 49//96 81//96 17//96
561 | f 93//97 94//97 95//97
562 | f 80//98 21//98 82//98
563 | f 96//99 97//99 53//99
564 | f 96//100 98//100 97//100
565 | f 99//101 100//101 101//101
566 | f 81//102 57//102 85//102
567 | f 102//103 103//103 59//103
568 | f 90//104 94//104 93//104
569 | f 85//105 59//105 99//105
570 | f 41//106 28//106 87//106
571 | f 62//107 96//107 53//107
572 | f 62//108 104//108 96//108
573 | f 5//109 66//109 64//109
574 | f 65//110 10//110 79//110
575 | f 105//111 33//111 106//111
576 | f 67//112 33//112 105//112
577 | f 30//113 70//113 14//113
578 | f 70//114 40//114 14//114
579 | f 79//115 107//115 86//115
580 | f 66//116 65//116 79//116
581 | f 79//117 19//117 18//117
582 | f 23//118 22//118 79//117
583 | f 79//117 22//118 51//119
584 | f 79//117 51//119 19//117
585 | f 79//117 38//120 107//120
586 | f 38//121 79//117 18//117
587 | f 18//117 69//121 38//121
588 | f 79//122 108//122 64//122
589 | f 79//123 55//123 54//123
590 | f 79//124 54//124 23//124
591 | f 79//125 86//125 87//125
592 | f 79//126 64//126 66//126
593 | f 87//127 108//127 79//127
594 | f 79//128 3//128 55//128
595 | f 109//129 110//129 46//129
596 | f 71//130 40//130 46//130
597 | f 40//131 71//131 14//131
598 | f 110//132 72//132 71//132
599 | f 111//133 110//133 112//133
600 | f 110//134 71//134 46//134
601 | f 107//135 70//135 30//135
602 | f 76//136 74//136 43//136
603 | f 111//137 113//137 114//137
604 | f 43//138 73//138 44//138
605 | f 115//139 44//139 73//139
606 | f 116//140 109//140 105//140
607 | f 68//141 109//141 46//141
608 | f 68//142 46//142 35//142
609 | f 102//143 91//143 117//143
610 | f 48//144 92//144 84//144
611 | f 94//145 90//145 84//145
612 | f 94//146 83//146 95//146
613 | f 95//147 98//147 118//147
614 | f 80//148 83//148 92//148
615 | f 97//149 52//149 56//149
616 | f 84//150 58//150 57//150
617 | f 84//151 91//151 58//151
618 | f 119//152 99//152 101//152
619 | f 120//153 119//153 101//153
620 | f 58//154 102//154 59//154
621 | f 117//155 90//155 93//155
622 | f 91//156 90//156 117//156
623 | f 117//157 103//157 102//157
624 | f 85//158 121//158 81//158
625 | f 28//159 108//159 87//159
626 | f 108//160 28//160 29//160
627 | f 41//161 86//161 30//161
628 | f 89//162 12//162 35//162
629 | f 39//163 122//163 89//163
630 | f 7//164 123//164 63//164
631 | f 88//165 124//165 61//165
632 | f 4//166 63//166 104//166
633 | f 104//167 62//167 4//167
634 | f 64//168 108//168 8//168
635 | f 108//169 29//169 8//169
636 | f 116//170 105//170 106//170
637 | f 105//171 109//171 67//171
638 | f 38//172 122//172 107//172
639 | f 38//173 13//173 122//173
640 | f 38//174 11//174 13//174
641 | f 38//175 34//175 37//175
642 | f 38//176 69//176 34//176
643 | f 122//177 39//177 107//177
644 | f 110//178 109//178 116//178
645 | f 75//179 74//179 125//179
646 | f 126//180 75//180 125//180
647 | f 127//181 126//181 125//181
648 | f 113//182 128//182 125//182
649 | f 113//183 125//183 129//183
650 | f 111//184 112//184 130//184
651 | f 131//185 111//185 130//185
652 | f 100//186 128//186 113//186
653 | f 113//187 131//187 100//187
654 | f 113//188 111//188 131//188
655 | f 111//189 72//189 110//189
656 | f 44//190 115//190 78//190
657 | f 68//191 67//191 109//191
658 | f 125//192 128//192 127//192
659 | f 132//193 133//193 93//193
660 | f 126//194 134//194 75//194
661 | f 135//195 78//195 115//195
662 | f 135//196 24//196 78//196
663 | f 134//197 115//197 73//197
664 | f 136//198 137//198 138//198
665 | f 95//199 83//199 98//199
666 | f 92//200 50//200 80//200
667 | f 21//201 52//201 97//201
668 | f 97//202 82//202 21//202
669 | f 101//203 131//203 130//203
670 | f 103//204 100//204 59//204
671 | f 106//205 33//205 139//205
672 | f 120//206 101//206 130//206
673 | f 58//207 91//207 102//207
674 | f 126//208 127//208 140//208
675 | f 140//209 127//209 133//209
676 | f 141//210 117//210 133//210
677 | f 117//211 141//211 103//211
678 | f 121//212 60//212 20//212
679 | f 89//213 122//213 13//213
680 | f 89//214 13//214 12//214
681 | f 27//215 88//215 25//215
682 | f 121//216 139//216 60//216
683 | f 39//217 70//217 107//217
684 | f 77//218 129//218 76//218
685 | f 74//219 76//219 129//219
686 | f 74//220 129//220 125//220
687 | f 114//221 129//221 77//221
688 | f 77//222 15//222 72//222
689 | f 127//223 128//223 141//223
690 | f 94//224 92//224 83//224
691 | f 94//225 84//225 92//225
692 | f 142//226 132//226 143//226
693 | f 142//227 133//227 132//227
694 | f 144//228 140//228 142//228
695 | f 135//229 115//229 144//229
696 | f 145//230 146//230 118//230
697 | f 118//231 138//231 145//231
698 | f 95//232 118//232 146//232
699 | f 93//233 95//233 146//233
700 | f 136//234 138//234 147//234
701 | f 53//235 97//235 56//235
702 | f 97//236 98//236 82//236
703 | f 82//237 98//237 83//237
704 | f 112//238 110//238 116//238
705 | f 106//239 139//239 120//239
706 | f 99//240 59//240 100//240
707 | f 100//241 141//241 128//241
708 | f 141//242 133//242 127//242
709 | f 20//243 81//243 121//243
710 | f 20//244 17//244 81//244
711 | f 148//245 149//245 27//245
712 | f 124//246 123//246 61//246
713 | f 7//247 61//247 123//247
714 | f 60//248 139//248 32//248
715 | f 139//249 33//249 32//249
716 | f 107//250 30//250 86//250
717 | f 129//251 114//251 113//251
718 | f 72//252 114//252 77//252
719 | f 72//253 111//253 114//253
720 | f 140//254 134//254 126//254
721 | f 134//255 73//255 75//255
722 | f 150//256 144//256 142//256
723 | f 150//257 142//257 143//257
724 | f 150//258 149//258 148//258
725 | f 136//259 123//259 137//259
726 | f 151//260 143//260 132//260
727 | f 124//261 137//261 123//261
728 | f 151//262 138//262 137//262
729 | f 106//263 112//263 116//263
730 | f 141//264 100//264 103//264
731 | f 120//265 139//265 119//265
732 | f 121//266 119//266 139//266
733 | f 119//267 121//267 85//267
734 | f 99//268 119//268 85//268
735 | f 117//269 93//269 133//269
736 | f 63//270 136//270 104//270
737 | f 123//271 136//271 63//271
738 | f 134//272 140//272 144//272
739 | f 115//273 134//273 144//273
740 | f 136//274 96//274 104//274
741 | f 145//275 138//275 151//275
742 | f 132//276 93//276 146//276
743 | f 152//277 137//277 124//277
744 | f 96//278 136//278 147//278
745 | f 147//279 138//279 118//279
746 | f 106//280 130//280 112//280
747 | f 130//281 106//281 120//281
748 | f 101//282 100//282 131//282
749 | f 142//283 140//283 133//283
750 | f 88//284 149//284 152//284
751 | f 88//285 27//285 149//285
752 | f 24//286 148//286 27//286
753 | f 152//287 151//287 137//287
754 | f 150//288 143//288 149//288
755 | f 148//289 24//289 135//289
756 | f 144//290 150//290 148//290
757 | f 132//291 145//291 151//291
758 | f 132//292 146//292 145//292
759 | f 152//293 124//293 88//293
760 | f 98//294 96//294 147//294
761 | f 98//295 147//295 118//295
762 | f 143//296 151//296 149//296
763 | f 151//297 152//297 149//297
764 | f 148//298 135//298 144//298
765 |
766 |
--------------------------------------------------------------------------------
/franka_panda/meshes/collision/link3.obj:
--------------------------------------------------------------------------------
1 | # File produced by Open Asset Import Library (http://www.assimp.sf.net)
2 | # (assimp v3.1.187496374)
3 |
4 | mtllib link3.obj.mtl
5 |
6 | # 152 vertex positions
7 | v 0.046301 -0.030187 -0.120999
8 | v 0.0549176 -0.00783486 -0.120998
9 | v 0.129196 0.00077646 -0.0296128
10 | v 0.124788 0.0913032 -0.0198981
11 | v 0.11444 0.101004 -0.0191103
12 | v 0.128178 0.0930173 -0.00466271
13 | v -0.0166753 0.0527578 -0.121001
14 | v 0.0780204 0.101031 -0.0368324
15 | v 0.00950641 0.0549678 -0.120998
16 | v 0.0986483 0.10107 -0.0330431
17 | v 0.133141 0.0661252 -0.0142478
18 | v 0.130133 0.0867177 -0.00825564
19 | v 0.135174 0.065815 -0.00126348
20 | v 0.112032 0.000600964 0.046705
21 | v 0.102467 0.000564429 0.0514689
22 | v 0.00508165 -0.0449144 -0.0383387
23 | v -0.00606089 -0.0433475 -0.0347164
24 | v 0.0821892 0.000567656 0.0551564
25 | v 0.091923 0.000611165 0.0545111
26 | v 0.113908 0.0915453 -0.0344387
27 | v 0.0511922 0.000884556 0.0454642
28 | v -0.0348435 -0.0139181 -0.0261534
29 | v -0.0301869 -0.0231463 -0.026645
30 | v -0.0284693 -0.0295749 -0.0301705
31 | v -0.022609 -0.0338033 -0.0297221
32 | v -0.0496153 0.0246669 -0.120993
33 | v -0.0511328 0.0166096 -0.0899536
34 | v -0.0480287 0.0259029 -0.101594
35 | v -0.0397191 0.0379172 -0.106977
36 | v -0.0370867 0.0410233 -0.121018
37 | v 0.137561 0.000591337 -0.00519874
38 | v 0.13498 0.000581954 -0.0173093
39 | v 0.0971327 0.0663088 0.0504643
40 | v 0.106453 0.0656105 0.0468808
41 | v 0.104194 0.0864487 0.043301
42 | v 0.115961 0.0665443 0.0405958
43 | v 0.0351182 0.04301 -0.120998
44 | v 0.0747424 0.109198 -0.013768
45 | v 0.0822207 0.107566 -0.020426
46 | v 0.0498812 0.0237866 -0.121
47 | v 0.00193477 -0.0545336 -0.101876
48 | v -0.00713005 -0.0546677 -0.120995
49 | v 0.00573527 -0.0549172 -0.120998
50 | v 0.130017 0.0653507 -0.0227708
51 | v 0.120542 0.000546333 0.040058
52 | v 0.127308 0.000507279 0.0322474
53 | v 0.132378 0.00060846 0.0238331
54 | v 0.125852 0.0659154 0.0300172
55 | v 0.133242 0.0661993 0.014384
56 | v 0.136889 0.000544185 0.0102117
57 | v 0.114547 0.0938091 0.0321403
58 | v 0.122662 0.0937473 0.0214215
59 | v 0.106871 0.101004 0.0279086
60 | v 0.124558 0.0658138 -0.0315813
61 | v 0.0544008 0.00896836 -0.121
62 | v 0.121106 0.0849743 -0.0298338
63 | v 0.0111526 -0.0509587 -0.0756272
64 | v 0.0412783 0.089486 0.0228934
65 | v -0.0397562 0.0209145 -0.0371295
66 | v -0.0386009 0.012569 -0.0295647
67 | v 0.0471173 0.10087 0.0104199
68 | v -0.0368179 0.0272153 -0.0403916
69 | v 0.0902313 0.0922979 0.0457067
70 | v 0.104702 0.0934888 0.0399991
71 | v 0.116054 0.0861657 0.0347882
72 | v 0.130388 0.0868524 0.00529165
73 | v 0.0925838 0.108213 -0.015935
74 | v 0.032959 -0.0443749 -0.120999
75 | v 0.0188416 -0.0517891 -0.121005
76 | v -0.00830475 -0.053734 -0.0988514
77 | v -0.0188009 -0.0515509 -0.107901
78 | v -0.0256919 -0.0489995 -0.120998
79 | v -0.00388374 -0.0496752 -0.0600692
80 | v 0.00727984 -0.0477786 -0.0522291
81 | v -0.00414224 -0.0527519 -0.0821236
82 | v 0.00460455 -0.0522447 -0.0788562
83 | v 0.052254 0.0900893 0.036272
84 | v 0.0531341 0.100909 0.0224573
85 | v 0.0637555 0.106924 -0.0125485
86 | v 0.0454456 0.100871 -0.00246525
87 | v -0.0484019 0.0114506 -0.0598289
88 | v -0.0515318 0.000953113 -0.0708783
89 | v -0.0461536 0.00280875 -0.0416407
90 | v 0.119397 0.100939 0.000437513
91 | v 0.0990713 0.108666 -0.00573552
92 | v 0.101588 0.107713 0.00665414
93 | v 0.116384 0.100933 0.0142785
94 | v 0.124245 0.0866282 0.024384
95 | v 0.126814 0.0927576 0.0127863
96 | v 0.0829492 0.111203 -0.00159605
97 | v 0.0866565 0.109898 -0.0119636
98 | v 0.0911955 0.109398 0.0126026
99 | v 0.0927552 0.110336 0.000886934
100 | v 0.0761002 0.110146 0.00945723
101 | v 0.0758486 0.0923713 0.0455534
102 | v 0.0700872 0.101035 0.0350396
103 | v 0.0854362 0.0659795 0.0526127
104 | v 0.0777768 0.0858052 0.0483968
105 | v 0.0714852 0.00056804 0.0541915
106 | v -0.0158556 -0.0383801 -0.0309711
107 | v 0.0592789 0.000605683 0.0501099
108 | v -0.0520083 -0.0167704 -0.102348
109 | v -0.0516073 -0.0193948 -0.121
110 | v -0.0467535 -0.0295402 -0.120958
111 | v -0.0131622 -0.0506731 -0.0776653
112 | v -0.0444125 -0.00870769 -0.0385018
113 | v -0.0477326 -0.00744948 -0.0519108
114 | v -0.0454068 -0.0182906 -0.0554967
115 | v -0.0405674 -0.0190017 -0.0368285
116 | v -0.00406568 -0.0457879 -0.0410492
117 | v -0.0289264 -0.045977 -0.0980788
118 | v -0.0211533 -0.0487489 -0.0844592
119 | v -0.0275328 -0.0440257 -0.0742818
120 | v -0.0155338 -0.0470138 -0.0585453
121 | v 0.0636723 0.0905693 0.0431581
122 | v 0.0638159 0.108261 0.000703591
123 | v -0.0449756 0.0250288 -0.0705705
124 | v -0.0403664 0.0350953 -0.0866694
125 | v 0.0694307 0.065546 0.0510132
126 | v 0.0511026 0.067234 0.0420125
127 | v -0.0378626 0.0027259 -0.0265011
128 | v -0.0527756 0.0082402 -0.0874129
129 | v -0.0546154 0.00891474 -0.120971
130 | v -0.0544221 0.00201045 -0.099662
131 | v 0.090021 0.100948 0.0361328
132 | v 0.0138294 -0.0527659 -0.101191
133 | v -0.0451381 -0.0295895 -0.0923903
134 | v -0.0480663 -0.0215763 -0.0803416
135 | v -0.0378698 -0.0403423 -0.120938
136 | v -0.0367766 -0.038714 -0.0867505
137 | v -0.0546458 -0.00760578 -0.120996
138 | v -0.0540518 -0.00520843 -0.0978562
139 | v -0.0413705 -0.0267523 -0.0569502
140 | v -0.0432959 0.0127464 -0.0380932
141 | v -0.0432738 0.00142168 -0.0336173
142 | v -0.0195257 -0.0423117 -0.0436162
143 | v -0.0131537 -0.043029 -0.0376573
144 | v -0.0459187 0.0182666 -0.058169
145 | v -0.0377853 0.0332669 -0.0634652
146 | v -0.0393173 -0.00421665 -0.0281163
147 | v -0.0252429 -0.0370233 -0.0369862
148 | v 0.0725801 0.110435 5.75046e-05
149 | v 0.0853425 0.108684 0.017137
150 | v 0.0763018 0.108275 0.0175586
151 | v 0.0593476 0.0661948 0.0471891
152 | v -0.05097 -0.0116425 -0.0766108
153 | v -0.038922 -0.0333926 -0.0698881
154 | v -0.0294214 -0.0396236 -0.0574832
155 | v -0.0337176 -0.0309051 -0.0397628
156 | v 0.0666353 0.10791 0.0113815
157 | v -0.0360201 -0.0229382 -0.0326487
158 | v -0.0396291 -0.0112274 -0.0303964
159 |
160 | # 0 UV coordinates
161 |
162 | # 300 vertex normals
163 | vn 0.755605 -0.29125 -0.586715
164 | vn 0.656821 0.719056 -0.227034
165 | vn -0.0758833 0.899412 -0.430465
166 | vn 0.0971358 0.837647 -0.537506
167 | vn 0.971592 0.184928 -0.147686
168 | vn 0.156122 -0.939062 0.306248
169 | vn 0.0124793 -0.903183 0.429075
170 | vn 0.0316437 -0.908811 0.416007
171 | vn 0.597628 0.672883 -0.435969
172 | vn -0.570419 -0.327953 0.75304
173 | vn -0.476985 -0.517166 0.710651
174 | vn -0.452596 -0.553117 0.699442
175 | vn -0.925875 0.37425 0.0518834
176 | vn -0.793799 0.608011 -0.0143223
177 | vn 0.977343 0.0371424 -0.208376
178 | vn 0.364655 0.195923 0.910297
179 | vn 0.547825 0.0447506 0.835396
180 | vn 0.879101 0.410748 -0.2418
181 | vn 0.315525 0.675802 -0.666135
182 | vn -0.103627 0.932843 -0.345058
183 | vn 0.543285 0.41729 -0.728499
184 | vn -0.0193847 -0.999681 0.0162004
185 | vn 0.908735 0.222211 -0.353302
186 | vn 0.100051 -0.927172 0.361029
187 | vn 0.196358 -0.945659 0.259178
188 | vn 0.855754 0.0366366 0.516085
189 | vn 0.991486 0.0473777 0.121288
190 | vn 0.510889 0.76994 0.382341
191 | vn 0.774937 0.036168 -0.631003
192 | vn 0.774681 0.0237721 -0.631905
193 | vn 0.85868 0.224041 -0.460949
194 | vn 0.729449 0.421435 -0.538792
195 | vn 0.276256 -0.948494 0.155056
196 | vn -0.738561 0.393793 0.547224
197 | vn -0.720077 0.646233 0.252728
198 | vn 0.26184 0.240626 0.934633
199 | vn 0.402295 0.743439 0.534281
200 | vn 0.557642 0.319139 0.766281
201 | vn 0.57305 0.366813 0.732845
202 | vn 0.973468 0.227892 -0.0206
203 | vn 0.975712 0.185859 0.115938
204 | vn 0.261137 0.920197 -0.291624
205 | vn 0.669562 -0.629634 -0.394016
206 | vn 0.463639 -0.882757 -0.0760219
207 | vn 0.487017 -0.86728 -0.103149
208 | vn 0.936806 0.0424927 -0.34726
209 | vn 0.915643 0.229764 -0.329858
210 | vn 0.445442 0.0358049 0.894595
211 | vn 0.731034 0.0451957 0.680843
212 | vn 0.233512 -0.950062 0.207013
213 | vn 0.673814 0.251075 -0.694936
214 | vn 0.695875 0.212218 -0.686092
215 | vn 0.710236 0.189787 -0.677898
216 | vn 0.430822 0.761223 -0.484697
217 | vn -0.0664893 -0.997044 0.0385153
218 | vn -0.291894 -0.955894 -0.032635
219 | vn 0.0658414 -0.987228 0.145074
220 | vn 0.312772 -0.943663 0.108044
221 | vn 0.00584728 -0.990401 0.138098
222 | vn -0.729091 0.360313 0.581894
223 | vn -0.650474 0.687457 0.322935
224 | vn -0.389733 0.906279 -0.163606
225 | vn -0.49631 0.86343 -0.0903602
226 | vn -0.978785 0.109641 0.173088
227 | vn 0.36136 0.043554 0.931409
228 | vn 0.61172 0.776228 -0.152542
229 | vn 0.355409 0.934711 -0.000297491
230 | vn 0.505882 0.78885 0.348997
231 | vn 0.722391 0.193125 0.663969
232 | vn 0.729036 0.347887 0.589475
233 | vn 0.951401 0.307238 -0.0209737
234 | vn 0.893006 0.443514 0.0763905
235 | vn 0.688893 0.72198 0.0645832
236 | vn 0.93599 0.241914 0.255735
237 | vn -0.0372388 0.989744 -0.137914
238 | vn 0.0688418 0.92062 -0.384344
239 | vn 0.095551 0.930167 -0.354483
240 | vn 0.340499 0.645652 -0.683516
241 | vn 0.837924 0.197375 -0.508848
242 | vn 0.850234 0.0447615 -0.524498
243 | vn 0.219382 -0.94809 0.23021
244 | vn 0.987113 0.0453862 -0.15345
245 | vn 0.0655441 0.993935 0.088302
246 | vn 0.21837 0.970012 0.106735
247 | vn 0.273566 0.961677 0.0184036
248 | vn 0.0260446 0.993459 0.111183
249 | vn -0.00285285 0.770965 0.636872
250 | vn 0.170168 0.220984 0.960317
251 | vn -0.00777008 0.395442 0.918458
252 | vn -0.0425883 -0.880527 0.472078
253 | vn -0.191748 -0.803264 0.563915
254 | vn -0.19091 -0.803742 0.563517
255 | vn -0.901377 -0.431063 0.0412731
256 | vn -0.266737 -0.960638 0.077632
257 | vn -0.940168 -0.270299 0.207418
258 | vn -0.923721 -0.308024 0.227728
259 | vn -0.227435 -0.973362 0.0289783
260 | vn -0.0159845 -0.934676 0.355142
261 | vn 0.0256441 -0.979376 0.200412
262 | vn 0.0321195 -0.977874 0.206717
263 | vn 0.103158 -0.97817 0.180393
264 | vn -0.484507 -0.869094 0.0996396
265 | vn -0.199867 -0.966637 0.160208
266 | vn -0.604597 0.645338 0.466907
267 | vn -0.389391 0.701599 0.59677
268 | vn -0.410574 0.73038 0.54587
269 | vn -0.237034 0.681993 0.691881
270 | vn -0.380105 0.923626 0.0493417
271 | vn -0.225004 0.928095 -0.296669
272 | vn -0.159846 0.923156 -0.349618
273 | vn -0.81576 0.577616 0.0299207
274 | vn -0.83662 0.539033 0.0975193
275 | vn -0.102539 0.168845 0.980294
276 | vn -0.100555 0.0454355 0.993894
277 | vn -0.0896979 0.0431475 0.995034
278 | vn -0.627541 0.0396046 0.777576
279 | vn -0.987242 0.148635 0.0571127
280 | vn -0.976184 0.209125 0.0577224
281 | vn 0.311023 0.38507 0.868899
282 | vn 0.198203 0.729433 0.654709
283 | vn 0.52672 0.199082 0.826397
284 | vn 0.571041 0.230517 0.787892
285 | vn 0.621506 0.754071 0.212383
286 | vn 0.623186 0.770163 0.135974
287 | vn 0.379448 0.921484 0.082979
288 | vn 0.860201 0.346861 0.37382
289 | vn 0.734037 0.393552 0.55345
290 | vn -0.0178407 0.966274 -0.256896
291 | vn 0.1441 -0.988376 0.0484652
292 | vn 0.626754 -0.716641 -0.305949
293 | vn 0.904694 0.033499 -0.424742
294 | vn 0.361994 -0.931061 0.0456714
295 | vn 0.179201 0.0463223 0.982721
296 | vn 0.277165 0.0371607 0.960103
297 | vn 0.615279 0.0362916 0.787474
298 | vn 0.755391 0.0391094 0.654106
299 | vn 0.902631 0.0497054 0.427535
300 | vn 0.998472 0.0339109 0.043638
301 | vn 0.280071 0.933251 0.224951
302 | vn 0.31357 0.925123 0.21406
303 | vn -0.684748 0.209793 0.697931
304 | vn -0.900233 -0.430173 0.0673164
305 | vn -0.579127 -0.814831 0.0257249
306 | vn -0.175665 -0.979235 0.101199
307 | vn -0.43901 -0.896717 0.0562968
308 | vn -0.593905 -0.798266 0.100238
309 | vn -0.771694 -0.63457 0.0425427
310 | vn -0.999952 0.00182509 0.00966131
311 | vn -0.968253 -0.249563 0.0142978
312 | vn -0.994748 -0.0262751 0.0989231
313 | vn -0.86847 -0.449997 0.207997
314 | vn -0.858971 0.18675 0.476753
315 | vn -0.831433 0.305556 0.464063
316 | vn -0.43428 -0.885924 0.16291
317 | vn -0.421 -0.894373 0.15118
318 | vn -0.302637 -0.929282 0.211766
319 | vn -0.194179 -0.961461 0.194648
320 | vn -0.21287 -0.955021 0.206448
321 | vn -0.157033 -0.977868 0.13826
322 | vn -0.357941 0.929189 -0.0921217
323 | vn -0.979499 0.146518 0.138254
324 | vn -0.965424 0.227908 0.12655
325 | vn -0.93498 0.291376 0.202268
326 | vn -0.859946 0.472739 0.192382
327 | vn -0.904463 0.366138 0.218838
328 | vn -0.745379 0.545784 0.382792
329 | vn -0.919801 0.369653 0.131619
330 | vn -0.940918 0.309133 0.138239
331 | vn -0.952637 0.30243 0.0319315
332 | vn -0.685479 0.715906 0.132656
333 | vn -0.809391 0.584647 0.0554433
334 | vn -0.899049 0.426162 0.100483
335 | vn -0.801263 0.582871 0.135053
336 | vn -0.812625 0.554457 0.179493
337 | vn -0.798111 0.0271841 0.601897
338 | vn -0.800706 0.12246 0.586408
339 | vn -0.676367 0.172172 0.71616
340 | vn -0.169519 -0.936355 0.307414
341 | vn -0.405108 -0.852406 0.330593
342 | vn 0.0846594 0.238439 0.967461
343 | vn 0.912961 0.240773 0.329438
344 | vn 0.150111 0.983105 -0.104743
345 | vn 0.109259 0.990321 -0.0856007
346 | vn -0.213968 0.969419 -0.120186
347 | vn 0.173592 0.972766 -0.153594
348 | vn 0.277036 0.935861 -0.217751
349 | vn 0.378314 0.921007 -0.0928686
350 | vn 0.232143 -0.972622 0.0107747
351 | vn 0.391938 -0.919881 0.0142741
352 | vn 0.948825 0.0327552 0.314098
353 | vn 0.161761 0.927234 0.337744
354 | vn 0.156134 0.924706 0.347191
355 | vn 0.262345 0.797744 0.542937
356 | vn -0.0168424 0.924567 0.380647
357 | vn -0.0335358 0.741207 0.670438
358 | vn -0.0243553 0.92665 0.375135
359 | vn -0.334696 0.211256 0.918341
360 | vn -0.269018 0.231564 0.934884
361 | vn -0.351934 0.0420098 0.935081
362 | vn -0.228949 0.329427 0.916002
363 | vn -0.413335 -0.601802 0.683366
364 | vn -0.895926 -0.441392 0.0499009
365 | vn -0.432859 -0.899184 0.0640383
366 | vn -0.339696 -0.930654 0.135978
367 | vn -0.632442 -0.772506 0.0570166
368 | vn -0.988782 -0.0961308 0.11432
369 | vn -0.980604 -0.190778 0.0449353
370 | vn -0.992859 0.0619128 0.101973
371 | vn -0.818837 -0.558696 0.131777
372 | vn -0.851157 -0.508257 0.131175
373 | vn -0.950813 -0.259783 0.168724
374 | vn -0.881386 -0.446785 0.15343
375 | vn -0.0563581 -0.995776 0.0724821
376 | vn 0.021684 -0.995103 0.096433
377 | vn -0.475957 -0.86239 0.172477
378 | vn -0.633981 0.77161 0.0518335
379 | vn -0.657524 0.748586 0.085328
380 | vn -0.847134 0.495041 0.193126
381 | vn 0.065954 0.0355046 0.997191
382 | vn -0.239675 -0.839829 0.487075
383 | vn -0.424632 -0.760583 0.491123
384 | vn -0.385842 -0.82322 0.416456
385 | vn -0.617472 -0.754725 0.221626
386 | vn 0.887396 0.183832 0.422769
387 | vn -0.0897502 0.99066 -0.102657
388 | vn 0.0701662 0.951668 -0.299006
389 | vn -0.34204 0.93186 0.121021
390 | vn -0.341756 0.924674 0.16787
391 | vn -0.0650266 0.996365 0.0550291
392 | vn -0.0334513 0.973643 0.22561
393 | vn -0.233156 0.967937 0.0934625
394 | vn -0.207773 0.972225 0.107745
395 | vn -0.496739 0.0391305 0.867018
396 | vn -0.527294 0.0434334 0.848572
397 | vn -0.509316 0.233686 0.828244
398 | vn -0.497226 0.226721 0.837475
399 | vn -0.316815 0.0363428 0.947791
400 | vn -0.299821 -0.950334 0.0835028
401 | vn -0.668209 -0.729656 0.145252
402 | vn -0.621964 -0.771785 0.13232
403 | vn -0.982644 -0.0317279 0.18277
404 | vn -0.934161 -0.326853 0.143219
405 | vn -0.774959 -0.530592 0.34338
406 | vn -0.621034 -0.129994 0.772929
407 | vn -0.860911 -0.122315 0.493834
408 | vn -0.871071 -0.130413 0.473527
409 | vn -0.942765 -0.0527834 0.329252
410 | vn -0.924231 0.138785 0.355718
411 | vn -0.71287 0.670441 0.20573
412 | vn -0.656421 0.749785 0.0832662
413 | vn -0.628388 -0.0489681 0.776358
414 | vn -0.668632 -0.593394 0.448123
415 | vn -0.631414 -0.495718 0.596305
416 | vn -0.691027 -0.700761 0.177242
417 | vn 0.260873 -0.949876 0.172278
418 | vn -0.246265 0.964418 -0.0961829
419 | vn 0.0129747 0.985028 0.171905
420 | vn -0.752925 -0.655778 0.0553095
421 | vn -0.764361 -0.636413 0.103593
422 | vn -0.975804 -0.203518 0.0799156
423 | vn -0.998591 -0.0436733 0.0301563
424 | vn -0.944154 -0.31377 0.100606
425 | vn -0.969115 -0.0832359 0.232138
426 | vn -0.982785 -0.111038 0.147664
427 | vn -0.816025 -0.527714 0.23584
428 | vn -0.708886 -0.18943 0.679409
429 | vn -0.778972 -0.341238 0.526078
430 | vn -0.671854 -0.373108 0.639846
431 | vn -0.956587 0.199092 0.212845
432 | vn 0.317957 -0.942823 0.0999454
433 | vn 0.141915 -0.986507 0.0816334
434 | vn -0.520526 -0.827345 0.211076
435 | vn -0.231354 0.924665 0.302441
436 | vn -0.228143 0.925533 0.302224
437 | vn -0.532463 -0.685293 0.496847
438 | vn -0.752665 -0.632672 0.182268
439 | vn 0.151273 -0.984791 0.0854585
440 | vn -0.616907 -0.659817 0.429032
441 | vn -0.865565 -0.253073 0.432147
442 | vn -0.723623 -0.338666 0.601395
443 | vn -0.180329 0.957405 0.225514
444 | vn 0.760732 0.224639 0.608953
445 | vn -0.342905 -0.682197 0.645774
446 | vn 5.79237e-05 2.76056e-05 -1
447 | vn -3.81102e-06 -3.2864e-05 -1
448 | vn -3.4974e-05 -8.3553e-05 -1
449 | vn 7.16203e-05 0.000138931 -1
450 | vn 1.58313e-05 -6.20828e-06 -1
451 | vn -0.000495227 -0.000126386 -1
452 | vn 7.36886e-05 0.000153226 -1
453 | vn 0.00124776 -0.00174906 -0.999998
454 | vn 0.00110945 -0.000927281 -0.999999
455 | vn 0.000195874 -3.95433e-05 -1
456 | vn 0.00430625 -0.00209649 -0.999989
457 | vn 0.0030331 -0.00384581 -0.999988
458 | vn -0.000280376 -8.16428e-05 -1
459 | vn 0.000322017 0.0001511 -1
460 | vn -0.000512111 0.000237019 -1
461 | vn -0.00247326 0.00147071 -0.999996
462 | vn -0.00469458 0.000393563 -0.999989
463 |
464 | # Mesh '' with 300 faces
465 | g
466 | usemtl DefaultMaterial
467 | f 1//1 2//1 3//1
468 | f 4//2 5//2 6//2
469 | f 7//3 8//3 9//3
470 | f 9//4 8//4 10//4
471 | f 11//5 12//5 13//5
472 | f 14//6 15//6 16//6
473 | f 17//7 16//7 18//7
474 | f 16//8 19//8 18//8
475 | f 20//9 5//9 4//9
476 | f 21//10 22//10 23//10
477 | f 23//11 24//11 21//11
478 | f 25//12 21//12 24//12
479 | f 26//13 27//13 28//13
480 | f 26//14 29//14 30//14
481 | f 11//15 31//15 32//15
482 | f 33//16 34//16 35//16
483 | f 36//17 34//17 14//17
484 | f 12//18 4//18 6//18
485 | f 37//19 9//19 20//19
486 | f 38//20 39//20 8//20
487 | f 37//21 20//21 40//21
488 | f 41//22 42//22 43//22
489 | f 11//23 44//23 4//23
490 | f 19//24 16//24 15//24
491 | f 14//25 16//25 45//25
492 | f 46//26 47//26 48//26
493 | f 13//27 49//27 50//27
494 | f 51//28 52//28 53//28
495 | f 54//29 3//29 55//29
496 | f 55//30 3//30 2//30
497 | f 44//31 56//31 4//31
498 | f 56//32 20//32 4//32
499 | f 47//33 46//33 57//33
500 | f 58//34 59//34 60//34
501 | f 58//35 61//35 62//35
502 | f 35//36 63//36 33//36
503 | f 51//37 53//37 64//37
504 | f 64//38 35//38 65//38
505 | f 64//39 65//39 51//39
506 | f 66//40 13//40 12//40
507 | f 66//41 49//41 13//41
508 | f 10//42 67//42 5//42
509 | f 1//43 3//43 68//43
510 | f 31//44 69//44 68//44
511 | f 31//45 68//45 32//45
512 | f 11//46 32//46 44//46
513 | f 12//47 11//47 4//47
514 | f 14//48 34//48 15//48
515 | f 45//49 48//49 36//49
516 | f 16//50 46//50 45//50
517 | f 40//51 20//51 56//51
518 | f 56//52 55//52 40//52
519 | f 54//53 55//53 56//53
520 | f 10//54 5//54 20//54
521 | f 41//55 70//55 42//55
522 | f 71//56 72//56 42//56
523 | f 73//57 57//57 74//57
524 | f 50//58 47//58 57//58
525 | f 75//59 76//59 73//59
526 | f 77//60 58//60 60//60
527 | f 61//61 58//61 78//61
528 | f 79//62 7//62 80//62
529 | f 7//63 30//63 80//63
530 | f 81//64 82//64 83//64
531 | f 33//65 15//65 34//65
532 | f 84//66 6//66 5//66
533 | f 85//67 86//67 84//67
534 | f 53//68 52//68 87//68
535 | f 48//69 65//69 36//69
536 | f 65//70 88//70 51//70
537 | f 12//71 6//71 66//71
538 | f 89//72 66//72 6//72
539 | f 6//73 84//73 89//73
540 | f 89//74 49//74 66//74
541 | f 38//75 90//75 91//75
542 | f 8//76 39//76 10//76
543 | f 39//77 67//77 10//77
544 | f 20//78 9//78 10//78
545 | f 54//79 56//79 44//79
546 | f 3//80 54//80 44//80
547 | f 74//81 46//81 16//81
548 | f 13//82 31//82 11//82
549 | f 90//83 92//83 93//83
550 | f 93//84 92//84 86//84
551 | f 86//85 85//85 93//85
552 | f 90//86 94//86 92//86
553 | f 95//87 63//87 96//87
554 | f 63//88 97//88 33//88
555 | f 63//89 95//89 98//89
556 | f 99//90 17//90 18//90
557 | f 100//91 17//91 101//91
558 | f 101//92 17//92 99//92
559 | f 102//93 103//93 104//93
560 | f 70//94 105//94 71//94
561 | f 106//95 107//95 108//95
562 | f 108//96 109//96 106//96
563 | f 70//97 71//97 42//97
564 | f 110//98 16//98 17//98
565 | f 74//99 110//99 73//99
566 | f 16//100 110//100 74//100
567 | f 76//101 57//101 73//101
568 | f 111//102 112//102 113//102
569 | f 105//103 73//103 114//103
570 | f 77//104 78//104 58//104
571 | f 96//105 77//105 115//105
572 | f 96//106 78//106 77//106
573 | f 95//107 96//107 115//107
574 | f 116//108 80//108 61//108
575 | f 7//109 79//109 38//109
576 | f 8//110 7//110 38//110
577 | f 28//111 29//111 26//111
578 | f 28//112 117//112 118//112
579 | f 97//113 98//113 119//113
580 | f 97//114 119//114 99//114
581 | f 97//115 99//115 18//115
582 | f 120//116 121//116 21//116
583 | f 122//117 123//117 124//117
584 | f 123//118 122//118 27//118
585 | f 63//119 35//119 64//119
586 | f 64//120 125//120 63//120
587 | f 36//121 35//121 34//121
588 | f 36//122 65//122 35//122
589 | f 52//123 89//123 87//123
590 | f 89//124 84//124 87//124
591 | f 84//125 86//125 87//125
592 | f 88//126 89//126 52//126
593 | f 51//127 88//127 52//127
594 | f 91//128 39//128 38//128
595 | f 43//129 126//129 41//129
596 | f 3//130 32//130 68//130
597 | f 44//131 32//131 3//131
598 | f 50//132 126//132 69//132
599 | f 33//133 97//133 19//133
600 | f 19//134 15//134 33//134
601 | f 45//135 36//135 14//135
602 | f 45//136 46//136 48//136
603 | f 49//137 48//137 47//137
604 | f 50//138 31//138 13//138
605 | f 86//139 92//139 53//139
606 | f 53//140 87//140 86//140
607 | f 60//141 120//141 77//141
608 | f 127//142 128//142 102//142
609 | f 129//143 72//143 111//143
610 | f 105//144 70//144 75//144
611 | f 111//145 72//145 71//145
612 | f 130//146 111//146 113//146
613 | f 129//147 127//147 104//147
614 | f 131//148 124//148 123//148
615 | f 131//149 103//149 102//149
616 | f 132//150 82//150 124//150
617 | f 133//151 109//151 108//151
618 | f 134//152 135//152 60//152
619 | f 134//153 60//153 59//153
620 | f 113//154 114//154 136//154
621 | f 113//155 112//155 114//155
622 | f 136//156 114//156 137//156
623 | f 114//157 73//157 110//157
624 | f 137//158 114//158 110//158
625 | f 105//159 75//159 73//159
626 | f 80//160 116//160 79//160
627 | f 81//161 122//161 82//161
628 | f 81//162 27//162 122//162
629 | f 134//163 138//163 81//163
630 | f 59//164 117//164 138//164
631 | f 59//165 138//165 134//165
632 | f 58//166 62//166 59//166
633 | f 117//167 27//167 138//167
634 | f 27//168 81//168 138//168
635 | f 26//169 123//169 27//169
636 | f 61//170 118//170 139//170
637 | f 29//171 28//171 118//171
638 | f 27//172 117//172 28//172
639 | f 117//173 139//173 118//173
640 | f 139//174 117//174 62//174
641 | f 140//175 121//175 135//175
642 | f 60//176 135//176 121//176
643 | f 121//177 120//177 60//177
644 | f 110//178 17//178 137//178
645 | f 136//179 137//179 141//179
646 | f 63//180 98//180 97//180
647 | f 89//181 88//181 49//181
648 | f 93//182 85//182 91//182
649 | f 93//183 91//183 90//183
650 | f 79//184 142//184 38//184
651 | f 91//185 85//185 67//185
652 | f 5//186 67//186 85//186
653 | f 85//187 84//187 5//187
654 | f 126//188 43//188 69//188
655 | f 69//189 31//189 50//189
656 | f 49//190 47//190 50//190
657 | f 53//191 143//191 125//191
658 | f 53//192 92//192 143//192
659 | f 53//193 125//193 64//193
660 | f 125//194 143//194 96//194
661 | f 96//195 63//195 125//195
662 | f 96//196 143//196 144//196
663 | f 115//197 145//197 119//197
664 | f 115//198 119//198 98//198
665 | f 145//199 101//199 119//199
666 | f 95//200 115//200 98//200
667 | f 101//201 21//201 25//201
668 | f 104//202 127//202 102//202
669 | f 112//203 111//203 71//203
670 | f 112//204 105//204 114//204
671 | f 130//205 129//205 111//205
672 | f 132//206 146//206 82//206
673 | f 102//207 132//207 131//207
674 | f 122//208 124//208 82//208
675 | f 127//209 147//209 133//209
676 | f 127//210 133//210 128//210
677 | f 108//211 107//211 146//211
678 | f 133//212 108//212 128//212
679 | f 75//213 70//213 41//213
680 | f 41//214 76//214 75//214
681 | f 113//215 136//215 148//215
682 | f 30//216 29//216 80//216
683 | f 118//217 61//217 80//217
684 | f 117//218 59//218 62//218
685 | f 97//219 18//219 19//219
686 | f 137//220 17//220 100//220
687 | f 141//221 100//221 25//221
688 | f 137//222 100//222 141//222
689 | f 149//223 148//223 141//223
690 | f 88//224 48//224 49//224
691 | f 142//225 90//225 38//225
692 | f 91//226 67//226 39//226
693 | f 150//227 116//227 61//227
694 | f 150//228 61//228 78//228
695 | f 94//229 90//229 142//229
696 | f 143//230 94//230 144//230
697 | f 116//231 150//231 142//231
698 | f 142//232 150//232 94//232
699 | f 145//233 21//233 101//233
700 | f 21//234 145//234 120//234
701 | f 115//235 77//235 120//235
702 | f 120//236 145//236 115//236
703 | f 99//237 119//237 101//237
704 | f 71//238 105//238 112//238
705 | f 148//239 147//239 130//239
706 | f 148//240 130//240 113//240
707 | f 83//241 82//241 107//241
708 | f 108//242 146//242 128//242
709 | f 149//243 151//243 109//243
710 | f 22//244 21//244 140//244
711 | f 135//245 152//245 140//245
712 | f 135//246 106//246 152//246
713 | f 135//247 83//247 106//247
714 | f 83//248 135//248 134//248
715 | f 62//249 61//249 139//249
716 | f 80//250 29//250 118//250
717 | f 121//251 140//251 21//251
718 | f 151//252 149//252 24//252
719 | f 151//253 24//253 23//253
720 | f 147//254 148//254 149//254
721 | f 46//255 74//255 57//255
722 | f 79//256 116//256 142//256
723 | f 92//257 94//257 143//257
724 | f 130//258 127//258 129//258
725 | f 130//259 147//259 127//259
726 | f 132//260 102//260 146//260
727 | f 124//261 131//261 132//261
728 | f 146//262 102//262 128//262
729 | f 106//263 83//263 107//263
730 | f 146//264 107//264 82//264
731 | f 149//265 109//265 133//265
732 | f 140//266 152//266 22//266
733 | f 152//267 109//267 151//267
734 | f 22//268 151//268 23//268
735 | f 134//269 81//269 83//269
736 | f 57//270 126//270 50//270
737 | f 126//271 76//271 41//271
738 | f 141//272 148//272 136//272
739 | f 96//273 150//273 78//273
740 | f 150//274 96//274 144//274
741 | f 141//275 25//275 24//275
742 | f 133//276 147//276 149//276
743 | f 126//277 57//277 76//277
744 | f 149//278 141//278 24//278
745 | f 152//279 106//279 109//279
746 | f 151//280 22//280 152//280
747 | f 144//281 94//281 150//281
748 | f 65//282 48//282 88//282
749 | f 25//283 100//283 101//283
750 | f 7//284 2//284 1//284
751 | f 7//285 40//285 55//285
752 | f 7//286 55//286 2//286
753 | f 7//287 37//287 40//287
754 | f 7//288 1//288 68//288
755 | f 7//289 69//289 43//289
756 | f 7//290 9//290 37//290
757 | f 7//291 123//291 26//291
758 | f 129//292 104//292 7//292
759 | f 42//293 72//293 7//293
760 | f 104//294 103//294 7//294
761 | f 7//295 26//295 30//295
762 | f 7//296 43//296 42//296
763 | f 7//297 68//297 69//297
764 | f 103//298 131//298 7//298
765 | f 131//299 123//299 7//299
766 | f 72//300 129//300 7//300
767 |
768 |
--------------------------------------------------------------------------------