Coverage for src/pyroboplan/models/ur10.py: 0%

15 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-02-28 21:35 -0500

1"""Utilities to load example Universal Robots UR10 robot models.""" 

2 

3import os 

4import pinocchio 

5 

6from .utils import get_example_models_folder 

7 

8 

9def load_ur10_on_base_models(): 

10 """ 

11 Gets the example UR10 on base models. 

12 

13 Returns 

14 ------- 

15 tuple[`pinocchio.Model`] 

16 A 3-tuple containing the model, collision geometry model, and visual geometry model. 

17 """ 

18 models_folder = get_example_models_folder() 

19 package_dir = os.path.join(models_folder, "ur_description") 

20 urdf_filename = os.path.join(package_dir, "urdf", "ur10_on_base.urdf") 

21 

22 return pinocchio.buildModelsFromUrdf(urdf_filename, package_dirs=models_folder) 

23 

24 

25def add_ur10_on_base_self_collisions(model, collision_model, srdf_filename=None): 

26 """ 

27 Adds link self-collisions to the UR10 collision model. 

28 

29 This uses an SRDF file to remove any excluded collision pairs. 

30 

31 Parameters 

32 ---------- 

33 model : `pinocchio.Model` 

34 The UR10 model. 

35 collision_model : `pinocchio.Model` 

36 The UR10 collision geometry model. 

37 srdf_filename : str, optional 

38 Path to the SRDF file describing the excluded collision pairs. 

39 If not specified, uses a default file included with the UR10 model. 

40 """ 

41 if srdf_filename is None: 

42 models_folder = get_example_models_folder() 

43 package_dir = os.path.join(models_folder, "ur_description") 

44 srdf_filename = os.path.join(package_dir, "srdf", "ur10_on_base.srdf") 

45 

46 collision_model.addAllCollisionPairs() 

47 pinocchio.removeCollisionPairs(model, collision_model, srdf_filename)