Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

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

未关闭
#577 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 2 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
python
领域
robotics

调研方向

使用 --tb=long 运行 test_ERobot.py,然后运行 test_Link.py::TestDHLink::test_copy。跟踪从新建的 DHLink 到 coal CollisionObject 的属性链,经过 Link 或 Robot 的共享状态。完成的标志是移除非预期的共享引用或将其改为弱引用,并且目标 copy test 在不丢失无关几何体的情况下执行 warning path。

由索引模型根据 Issue 内容生成。

描述

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.

主要语言
C++
星标
3.5k
派生
630
平均合并
2 天 9 分钟
30 天内合并 PR
27

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

petercorke/robotics-toolbox-python 的其他 Issue

查看 petercorke/robotics-toolbox-python 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。