Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Link.__deepcopy__ silently drops collision geometry (coal pickling limitation)

Ouverte
#577 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
48/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Calme
Stack technique
python
Domaine
robotics

Piste de recherche

Exécutez test_ERobot.py, puis test_Link.py::TestDHLink::test_copy avec --tb=long. Suivez la chaîne d’attributs depuis le DHLink nouvellement créé jusqu’au coal CollisionObject via l’état partagé de Link ou Robot. Le travail est terminé lorsque la référence partagée involontaire est supprimée ou rendue weak-referenced, et que le test de copie ciblé emprunte le chemin d’avertissement sans perdre de géométrie sans rapport.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

tech-debt

Migrated from tech-debt.md (deleted, see repo history via git log -- tech-debt.md).

Link.__deepcopy__ silently drops coal CollisionObject instances because the coal library doesn't support pickling. The current workaround warns at runtime when shapes are lost.

Root cause: a fresh DHLink can reach the coal objects of an unrelated URDF robot through shared class-level state in Link or Robot (exact attribute TBD). This means:

  • Copied DH links that happen to run after URDF robot tests lose nothing (DH links have no collision shapes), so the warning path is never exercised in isolation.
  • If the shared reference is ever followed for other purposes (iteration, serialisation) it could cause similar failures or unexpected aliasing.

Proper fix: obtain the full deepcopy traceback with --tb=long when running test_ERobot.py followed by test_Link.py::TestDHLink::test_copy, trace which attribute chain connects the fresh DHLink to a coal object, and remove or weak-ref that shared state.

Langage dominant
C++
Étoiles
3.6k
Forks
645
Merge moyen
1 j 8 h
PR mergées (30 j)
144

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de petercorke/robotics-toolbox-python

Toutes les issues de petercorke/robotics-toolbox-python

Issues similaires

Plus d'issues C++

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.