tud-amr / fabrics

Optimization fabrics for behavior design
GNU General Public License v3.0
54 stars 8 forks source link

The issues about the KeyError: 'FullSensor' #75

Closed xueminchi closed 1 year ago

xueminchi commented 1 year ago

Hello, thank you for sharing the code. However, I encountered some errors while trying to run the examples in this repository which caused it to stop running. Specifically, below is the error information that occurred when attempting to run "panda_dynamic_avoidance.py".

Unknown tag "inertial" in /robot[@name='panda'] Unknown tag "inertial" in /robot[@name='panda'] WARNING:root:Casadi pseudo inverse is used in Lagrangian WARNING:root:Casadi pseudo inverse is used in spec

Traceback (most recent call last): File "/home/cxm/PycharmProjects/fabrics/examples/panda_dynamic_avoidance.py", line 185, in res = run_panda_example(n_steps=5000) File "/home/cxm/PycharmProjects/fabrics/examples/panda_dynamic_avoidance.py", line 172, in run_pandaexample ob, * = env.step(action) File "/home/cxm/anaconda3/envs/fabric_test/lib/python3.9/site-packages/gym/wrappers/order_enforcing.py", line 13, in step observation, reward, done, info = self.env.step(action) File "/home/cxm/PycharmProjects/fabrics/urdfenvs/urdf_common/urdf_env.py", line 184, in step ob = self._get_ob() File "/home/cxm/PycharmProjects/fabrics/urdfenvs/urdf_common/urdf_env.py", line 205, in _get_ob check_observation(self.observation_space, observation) File "/home/cxm/PycharmProjects/fabrics/urdfenvs/urdf_common/urdf_env.py", line 28, in check_observation check_observation(obs[key], value) File "/home/cxm/PycharmProjects/fabrics/urdfenvs/urdf_common/urdf_env.py", line 28, in check_observation check_observation(obs[key], value) File "/home/cxm/anaconda3/envs/fabric_test/lib/python3.9/site-packages/gym/spaces/dict.py", line 122, in getitem return self.spaces[key] KeyError: 'FullSensor'

I have no idea about this error. When I try to run other examples, I still encounter this error.

maxspahn commented 1 year ago

Hi @renaomin

Thanks for your interest in this project. I really appreciate that. This seems to be related to the package urdfenvs, more specifially the version of it.

Can you tell me which version you are using? If you are using the installation with poetry, it should automatically pick an appropriate version. (I just tested the develop branch and it worked using poetry install --with agents). You can check your version of urdfenvs with either pip show urdfenvs or python3 -c "import urdfenvs; print(urdfenvs.__version__)".

I am looking forward to hearing from you and fixing your issue.

Best, @maxspahn

xueminchi commented 1 year ago

Hi @maxspahn,

Thank you so much for your prompt response and helpful suggestions. I initially installed the 'urdfenvs' package through your gym_envs_urdf repo, using 'pip3 install urdfenvs', which might have led to the error messages I encountered. After following your advice and installing the package with poetry, everything works perfectly. The 'urdfenvs' version is 0. 5. 6. I can now run the examples and tutorials without any issues. I really appreciate your assistance.

Best, @renaomin

maxspahn commented 1 year ago

Hi @renaomin,

No worry, I should maybe be clearer on the documentation. Let me know if you have further issues with fabrics.

May I ask why you want to use fabrics? Are you a researcher yourself?

Best, @maxspahn

xueminchi commented 1 year ago

Hi @renaomin,

No worry, I should maybe be clearer on the documentation. Let me know if you have further issues with fabrics.

May I ask why you want to use fabrics? Are you a researcher yourself?

Best, @maxspahn

Hi @maxspahn,

Thank you for your response. Yes, I am a 3rd-year PhD student from Zhejiang University in the field of robotics, particularly interested in motion planning for non-holonomic vehicles and manipulators. I believe Fabrics can be an interesting approach to tackle this problem, and I'm curious about extending it to interact with various shapes of objects in the environment, including convex polygons and non-convex shapes, whether considered as obstacles or target objects.

Do you have any insights or recommendations on this extension?

Best, @renaomin

maxspahn commented 1 year ago

Hi @renaomin ,

good to hear that you are working on fabrics. Probably, you have read/heard about my extension to fabrics for non-holonomic robots. I must admit that there is still a lot of room for improvement. Let me know if you want to have a more detailed discussion about that.

I'm curious about extending it to interact with various shapes of objects in the environment, including convex polygons and non-convex shapes, whether considered as obstacles or target objects.

That is a very good point, because it is currently limited to spherical obstacles. Non-spherical obstacles can be implemented, but for a straight-forward implementation you require a differentiable distance function to create the differential mapping between configuration space and obstacle space. One way to do this is using superquadrics, because they offer a wider range of obstacles and provide a distance function. However, I have not tried it out and there might be other hurdles.

Let me know if you want to discuss anything else. Best, @maxspahn

xueminchi commented 1 year ago

Hi @maxspahn,

good to hear that you are working on fabrics. Probably, you have read/heard about my extension to fabrics for non-holonomic robots. I must admit that there is still a lot of room for improvement. Let me know if you want to have a more detailed discussion about that.

Thank you for your response! Yes, I've read your paper on extending fabrics for non-holonomic robots and you've showed a lot of comparisons with static fabrics and your previous MPC work. I would love to have a more in-depth discussion with you about this topic and its improvement. Please don't hesitate to contact me at xueminchisnow@gmail.com.

What caught my attention about fabrics is its solid mathematical foundation, as it seems to present an alternative approach to motion planning. I'm curious to know whether fabrics can be competitive in the context of hybrid systems, which encompass both discrete decision-making and continuous action – an area known for its challenges. Additionally, I'd be interested in hearing your thoughts on how the computational efficiency of fabrics compares to popular sampling-based MPC algorithms (e.g., STORM).

Best, @renaomin