快速阅读整个帧树的方法可打印版本 + - RoboDK论坛(//www.jasonament.com/forum) + - - -论坛:RoboDK (EN) (//www.jasonament.com/forum/Forum-RoboDK-EN) + - - -论坛:RoboDK API (//www.jasonament.com/forum/Forum-RoboDK-API) + - - -线程:快速阅读整个帧树(/ Thread-Fast-way-to-read-entire-frame-tree) |
快速阅读整个帧树的方法- - - - - -rshanor- - - - - -10-12-2022 你好, 我想访问整个车站帧图在Python API。我注意到一个函数setpos为提高效率设置多个姿势。有什么类似的让所有站的姿势吗? 谢谢你! 瑞克 再保险:快速阅读整个帧树的方法- - - - - -艾伯特- - - - - -10-13-2022 最快的方法来设置多个姿势会关掉渲染和更新所需的所有姿势。然后,您可以将呈现。 再保险:快速阅读整个帧树的方法- - - - - -rshanor- - - - - -10-13-2022 对不起我的问题还不清楚。我想打电话给getPose非常快。现在我有大约70件物品在现场,每次调用需要~ 0.05秒,所以需要在3.5秒内查找整个场景帧树。 再保险:快速阅读整个帧树的方法- - - - - -艾伯特- - - - - -10-13-2022 你用的什么编程语言?你能共享一个示例RDK项目和代码吗? 我们可以帮助你提高速度。 再保险:快速阅读整个帧树的方法- - - - - -rshanor- - - - - -10-13-2022
代码:
def publish_transform(自我,单品:robolink.Item):
以上是一些示例代码。我没有站文件我可以分享,但上面的代码应该为任何站工作。 再保险:快速阅读整个帧树的方法- - - - - -山姆- - - - - -10-14-2022 我不知道为什么你正在经历这样一个延迟造成()。我尝试以下代码的执行与50 +项目。
代码:
项= {}
你能使用pstats查找瓶颈吗? 有没有可能你不止一次递归过程项目? 再保险:快速阅读整个帧树的方法- - - - - -rshanor- - - - - -10-14-2022 (10-14-2022,29)山姆写道:我不知道为什么你正在经历这样一个延迟造成()。我尝试以下代码的执行与50 +项目。 嗨,山姆, 谢谢你的回应。我将尝试运行一些测试结束。 调用的速度有多快item.Pose吗?这叫以任何方式的速度是一个车站的物品数量的函数?我有大约300件物品在车站,但~ 250是看不见的。我必须把这些由于一些robodk问题与纹理在Linux中动态加载文件。基本上我创建一个默认的站在窗户和移动物体时我希望是必需的。这就是为什么我做一些递归调用,而不是阅读每一项像你上面显示。我只关心下的项目link.Item (get_roof_frame_name ())树的分支。 再保险:快速阅读整个帧树的方法- - - - - -rshanor- - - - - -10-14-2022 另一件事。刚刚看到Event_Loop例子,看起来很有趣。https://github.com/RoboDK/RoboDK-API/blob/master/Python/Examples/Macros/Event_Loop.py 很多项目在我的画面是静止的。EVENT_ITEM_MOVED_POSE事件看起来很酷但是有什么办法可以告诉哪项移动?谢谢! 再保险:快速阅读整个帧树的方法- - - - - -rshanor- - - - - -12-02-2022 04:13点(10-14-2022)rshanor写道:另一件事。刚刚看到Event_Loop例子,看起来很有趣。https://github.com/RoboDK/RoboDK-API/blob/master/Python/Examples/Macros/Event_Loop.py 我最终解决问题通过设置下面的国旗。
代码:
robolink.Robolink。NODELAY = True
这加快API调用20 x 100 x 再保险:快速阅读整个帧树的方法- - - - - -艾伯特- - - - - -12-02-2022 条目的姿势(item.Pose())可能会稍慢,如果你有许多对象时使用安全模式选项。安全模式选项意味着RoboDK将检查您提供的指针对所有可用项目存在于您的项目。 可以通过删除速度这个安全模式选项:
代码:
robolink.Robolink。SAFE_MODE = 0
有关的事件,当你得到一个新的事件你也会收到与该事件相关联的项目(项目变量在该示例中,您指出)。请注意,事件通道应该是一个单独的Robolink对象,它只应该用于侦听事件。有一个类似的例子在c# API: https://github.com/RoboDK/RoboDK-API/blob/5a9841bc882058d59c0f4684df57df4aa96c2a7c/C%23/Example/RoboDKSampleProject/RoboDK.cs L2807 谢谢你的反馈关于没有延迟选择!我理解这只适用于Linux。 |