MetaGym icon indicating copy to clipboard operation
MetaGym copied to clipboard

about AttributeError: 'ColorVisuals' object has no attribute 'crc'

Open Marverlises opened this issue 2 years ago • 4 comments

When i use this to test the environment, it always send me the message that AttributeError: 'ColorVisuals' object has no attribute 'crc', So what's the reason, thanks!

Marverlises avatar Nov 07 '22 09:11 Marverlises

Can you show us the executing environment and detailed log?

WorldEditors avatar Nov 09 '22 05:11 WorldEditors

The original bug is:

D:\Anaconda\envs\paddlepaddle\lib\site-packages\trimesh\parent.py:94: DeprecationWarning: geometry.md5()is deprecated and will be removed in October 2023: replace withgeometry.hash()orhash(geometry)`
DeprecationWarning)
Traceback (most recent call last):
File "D:/Desktop/PARL_develop_examples_tutorials (1)/examples/parl2_dygraph_new/lesson5/homework/ddpg_quadrotor/train.py", line 184, in
main()
File "D:/Desktop/PARL_develop_examples_tutorials (1)/examples/parl2_dygraph_new/lesson5/homework/ddpg_quadrotor/train.py", line 163, in main
agent, env, EVAL_EPISODES, render=True)
File "D:/Desktop/PARL_develop_examples_tutorials (1)/examples/parl2_dygraph_new/lesson5/homework/ddpg_quadrotor/train.py", line 122, in run_evaluate_episodes
env.render()
File "D:/Desktop/PARL_develop_examples_tutorials (1)/examples/parl2_dygraph_new/lesson5/homework/ddpg_quadrotor/train.py", line 59, in render
self.env.render()
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\env.py", line 169, in render
z_offset=self.z_offset)
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\render.py", line 494, in init
debug_mode=debug_mode)
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\render.py", line 117, in init
self._initialize(init_drone_z)
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\render.py", line 130, in _initialize
self._add_drone()
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\render.py", line 152, in _add_drone
if geometry_hash(geom) == self.drone_vertex_list_hash:
File "D:\Anaconda\envs\paddlepaddle\lib\site-packages\rlschool\quadrotor\utils.py", line 113, in geometry_hash
md5 += str(geometry.visual.crc())
AttributeError: 'ColorVisuals' object has no attribute 'crc'

Process finished with exit code 1

The error fragment code is shown below:

def geometry_hash(geometry):

Get an MD5 for a geometry object

Parameters
------------
geometry : object

Returns
------------
MD5 : str
"""
if hasattr(geometry, 'md5'):
    # for most of our trimesh objects
    md5 = geometry.md5()
elif hasattr(geometry, 'tostring'):
    # for unwrapped ndarray objects
    md5 = str(hash(geometry.tostring()))

if hasattr(geometry, 'visual'):
    # if visual properties are defined
    **md5 += str(geometry.crc()) //修改后的,原始为geometry.visual.crc()**
return md5

My environment is : Paddle version: 2.2.0 Paddle With CUDA: False OS: Windows 10 Python version: 3.7.13 CUDA version: None cuDNN version: None Nvidia driver version: 517.48

Marverlises avatar Nov 11 '22 00:11 Marverlises

@thisisbaiy It looks like the new version of trimesh library uses different geometry APIs and raises this error. Please consider downgrading it and checking the compatibility.

xueeinstein avatar Nov 17 '22 15:11 xueeinstein

I found similar issues in https://github.com/PaddlePaddle/MetaGym/issues/64 It can be solved by pip install trimesh==3.2.39, colour==0.1.5

It can actually solved by pip install metagym[quadrotor]

WorldEditors avatar Nov 22 '22 05:11 WorldEditors