-
Notifications
You must be signed in to change notification settings - Fork 15
Description
Hi everyone, @samuelmyoussef @alxbilger @EulalieCoevoet @damienmarchal @ChristianDuriez
I encountered several issues while using SofaGym:
Issue 1:
I frequently get a KeyError when running example code with SofaGym. For instance, when running the following code (consistent with the README example):
import gym
import sofagym.envs
path = "data"
env = gym.make('trunk-v0')
env.seed(42)
observation = env.reset()
done = False
while not done:
action = env.action_space.sample() # this is where you would insert your policy
observation, reward, done, info = env.step(action)
env.render()
env.close()
I receive the following exception:
ub20@JixiongRenPC:~/SOFA_v23.06.00_Linux/bin/SofaGym$ /bin/python /home/ub20/SOFA_v23.06.00_Linux/bin/SofaGym/test.py
---------------------------------------
Checking SOFA_ROOT and SOFAPYTHON3_ROOT
Using environment variable SOFA_ROOT: /home/ub20/SOFA_v23.06.00_Linux
---------------------------------------
pygame 2.6.1 (SDL 2.28.4, Python 3.8.10)
Hello from the pygame community. https://www.pygame.org/contribute.html
[INFO] [PluginManager] Loaded plugin: /home/ub20/SOFA_v23.06.00_Linux/lib/libSofa.Component.so
[ERROR] [SofaRuntime] AttributeError: 'NoneType' object has no attribute 'get'
Traceback (most recent call last):
File "/home/ub20/SOFA_v23.06.00_Linux/bin/SofaGym/test.py", line 6, in <module>
env = gym.make('trunk-v0')
File "/home/ub20/.local/lib/python3.8/site-packages/gym/envs/registration.py", line 235, in make
return registry.make(id, **kwargs)
File "/home/ub20/.local/lib/python3.8/site-packages/gym/envs/registration.py", line 129, in make
env = spec.make(**kwargs)
File "/home/ub20/.local/lib/python3.8/site-packages/gym/envs/registration.py", line 90, in make
env = cls(**_kwargs)
File "/home/ub20/SOFA_v23.06.00_Linux/bin/SofaGym/sofagym/envs/Trunk/TrunkEnv.py", line 53, in __init__
super().__init__(config)
File "/home/ub20/SOFA_v23.06.00_Linux/bin/SofaGym/sofagym/AbstractEnv.py", line 134, in __init__
self.config["dt"] = self.config.get('dt', 0.01)
Initially, I tried adding configurations to the gym.make() , like this:
env = gym.make('trunk-v0', config={"scene": "Trunk",
"deterministic": True,
"source": [300, 0, 80],
"target": [0, 0, 80],
"goalList": [[40, 40, 100], [-10, 20, 80]],
"start_node": None,
"scale_factor": 5,
"timer_limit": 250,
"timeout": 50,
"display_size": (1600, 800),
"render": 1,
"save_data": False,
"save_image": False,
"save_path": path + "/Results" + "/Trunk",
"planning": False,
"discrete": True,
"seed": None,
"start_from_history": None,
"python_version": "python3",
"dt": 0.01,
"nb_actions": 2,
"dim_state": 3,
"goalPos": [0, 0, 80],
"randomize_states": False,})
Most of these config options were copied from TrunkEnv.py. However, this did not resolve the issue, and I still encountered:
[ERROR] [SofaRuntime] KeyError: 'goal'
Traceback (most recent call last):
File "/home/ub20/SOFA_v23.06.00_Linux/bin/SofaGym/test.py", line 31, in <module>
observation = env.reset()
File "/home/ub20/.local/lib/python3.8/site-packages/gym/wrappers/order_enforcing.py", line 16, in reset
return self.env.reset(**kwargs)
File "/home/ub20/SOFA_v23.06.00_Linux/bin/SofaGym/sofagym/envs/Trunk/TrunkEnv.py", line 75, in reset
super().reset()
File "/home/ub20/SOFA_v23.06.00_Linux/bin/SofaGym/sofagym/AbstractEnv.py", line 392, in reset
self.init_simulation()
File "/home/ub20/SOFA_v23.06.00_Linux/bin/SofaGym/sofagym/AbstractEnv.py", line 507, in init_simulation
if self.config["goal"]:
Clearly, this exception cannot be fixed by simply adding missing configurations.
Issue 2:
When attempting to run python3 test_env.py -e trunk-v0 -ep 100 -s 100, I get:
ub20@JixiongRenPC:~/SOFA_v23.06.00_Linux/bin/SofaGym$ python3 test_env.py -e trunk-v0 -ep 100 -s 100
---------------------------------------
Checking SOFA_ROOT and SOFAPYTHON3_ROOT
Using environment variable SOFA_ROOT: /home/ub20/SOFA_v23.06.00_Linux
---------------------------------------
pygame 2.6.1 (SDL 2.28.4, Python 3.8.10)
Hello from the pygame community. https://www.pygame.org/contribute.html
[INFO] [PluginManager] Loaded plugin: /home/ub20/SOFA_v23.06.00_Linux/lib/libSofa.Component.so
[ERROR] Environment name does not exist.
Available environments:
['bubblemotion-v0', 'cartstem-v0', 'cartstemcontact-v0', 'catchtheobject-v0', 'concentrictuberobot-v0', 'diamondrobot-v0', 'gripper-v0', 'maze-v0', 'multigaitrobot-v0', 'simple_maze-v0', 'stempendulum-v0', 'trunk-v0', 'trunkcup-v0', 'cartpole-v0', 'catheter_beam-v0']
I tried adding sofagym/ to the environment variables, but it did not work.
Issue 3:
When trying to train with python rl.py -e trunk-v0 -a PPO, I encounter:
ub20@JixiongRenPC:~/SOFA_v23.06.00_Linux/bin/SofaGym$ python rl.py -e trunk-v0 -a PPO
Traceback (most recent call last):
File "rl.py", line 18, in <module>
from agents.RLberryAgent import RLberryAgent
File "/home/ub20/SOFA_v23.06.00_Linux/bin/SofaGym/agents/RLberryAgent.py", line 12, in <module>
from rlberry.agents.experimental.torch import SACAgent
File "/home/ub20/.local/lib/python3.8/site-packages/rlberry/__init__.py", line 12, in <module>
configure_logging(level="INFO")
File "/home/ub20/.local/lib/python3.8/site-packages/rlberry/utils/logging.py", line 112, in configure_logging
gym.logger.set_level(
AttributeError: module 'gymnasium.logger' has no attribute 'set_level'
My environment:
- Python 3.8
- SOFA v23.06 (binary version with required plugins included)
- Configured exactly as per the
README(exceptSPLIBplugin, as I was informed by SOFA thatSPLIBis now integrated intoSTLIB)
I have spent significant time setting upSofaGym, but none of the examples work, which is highly frustrating :-(. I believe I need your assistance.
Thank you!