10000 added deepcopy · weizx208/robotics-toolbox-python@b27ec62 · GitHub
[go: up one dir, main page]

Skip to content

Commit b27ec62

Browse files
committed
added deepcopy
1 parent 384bc01 commit b27ec62

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

roboticstoolbox/robot/DHLink.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from functools import wraps
1515
from numpy import ndarray, cos, sin, array
1616
from spatialgeometry import Shape
17+
from copy import deepcopy
1718

1819
# _eps = np.finfo(np.float64).eps
1920

@@ -389,6 +390,47 @@ def __repr__(self):
389390
args.extend(super()._params())
390391
return name + "(" + ", ".join(args) + ")"
391392

393+
def __deepcopy__(self, memo):
394+
kwargs = {
395+
"name": deepcopy(self.name),
396+
"joint_name": deepcopy(self._joint_name),
397+
"m": deepcopy(self.m),
398+
"r": deepcopy(self.r),
399+
"I": deepcopy(self.I),
400+
"Jm": deepcopy(self.Jm),
401+
"B": deepcopy(self.B),
402+
"Tc": deepcopy(self.Tc),
403+
"G": deepcopy(self.G),
404+
"qlim": deepcopy(self.qlim),
405+
"geometry": [shape.copy() for shape in self._geometry],
406+
"collision": [shape.copy() for shape in self._collision],
407+
"d": deepcopy(self.d),
408+
"alpha": deepcopy(self.alpha),
409+
"theta": deepcopy(self.theta),
410+
"a": deepcopy(self.a),
411+
"sigma": deepcopy(self.sigma),
412+
"mdh": deepcopy(self.mdh),
413+
"offset": deepcopy(self.offset),
414+
"flip": deepcopy(self.isflip),
415+
}
416+
417+
cls = self.__class__
418+
419+
if "Revolute" in str(cls):
420+
del kwargs["theta"]
421+
del kwargs["sigma"]
422+
del kwargs["mdh"]
423+
elif "Prismatic" in str(cls):
424+
del kwargs["d"]
425+
del kwargs["sigma"]
426+
del kwargs["mdh"]
427+
428+
result = cls(**kwargs)
429+
430+
result.sigma = self.sigma
431+
memo[id(self)] = result
432+
return result
433+
392434
# -------------------------------------------------------------------------- #
393435

394436
@property

0 commit comments

Comments
 (0)
0