kaland313 / duckietown-rl Goto Github PK
View Code? Open in Web Editor NEWSource code for our paper "Sim-to-real reinforcement learning applied to end-to-end vehicle control"
License: MIT License
Source code for our paper "Sim-to-real reinforcement learning applied to end-to-end vehicle control"
License: MIT License
Hi, I have trained a model following your instructions. Now I want to deploy my model on Real Duckiebot. Is there any instructions about deploying trained model to real robot
Hi, I'm running into an issue trying to train a model using the instructions in the repository. Once the weights and biases (wandb) choice comes up, the process seems to not do anything, not even responding to SIGINT. It also does not seem to be training the model, since the system resources are barely used.
See the attached log freeze.log.
I had hoped to use this model as reference point to measure the performance of specific models for Duckietown. If there is a pre-trained model available that would also be great.
Got this issue running locally and on docker container. After a single iteration, the simulator throws lots of:
ERROR:duckietown_utils.wrappers.reward_wrappers:Velocity reward is nan, likely because the action was [nan, nan]!
Even though it starts out nicely on the first iteration:
Number of trials: 1 (1 RUNNING)
+--------------+----------+-----------------+----------+------------------+------+--------+
| Trial name | status | loc | reward | total time (s) | ts | iter |
|--------------+----------+-----------------+----------+------------------+------+--------|
| PPO | RUNNING | 172.17.0.2:1840 | 15.1029 | 35.851 | 4240 | 1 |
+--------------+----------+-----------------+----------+------------------+------+--------+
The error line is repeated lots of times up until the following hard error:
2023-11-21 17:22:53,821 ERROR trial_runner.py:513 -- Trial PPO: Error processing event.
Traceback (most recent call last):
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/tune/trial_runner.py", line 459, in _process_trial
result = self.trial_executor.fetch_result(trial)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/tune/ray_trial_executor.py", line 377, in fetch_result
result = ray.get(trial_future[0], DEFAULT_GET_TIMEOUT)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/worker.py", line 1504, in get
raise value.as_instanceof_cause()
ray.exceptions.RayTaskError(ValueError): ray::PPO.train() (pid=1840, ip=172.17.0.2)
File "python/ray/_raylet.pyx", line 452, in ray._raylet.execute_task
File "python/ray/_raylet.pyx", line 430, in ray._raylet.execute_task.function_executor
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/agents/trainer.py", line 494, in train
raise e
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/agents/trainer.py", line 483, in train
result = Trainable.train(self)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/tune/trainable.py", line 254, in train
result = self._train()
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/agents/trainer_template.py", line 133, in _train
fetches = self.optimizer.step()
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/optimizers/multi_gpu_optimizer.py", line 137, in step
self.num_envs_per_worker, self.train_batch_size)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/optimizers/rollout.py", line 25, in collect_samples
next_sample = ray_get_and_free(fut_sample)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/utils/memory.py", line 29, in ray_get_and_free
result = ray.get(object_ids)
ray.exceptions.RayTaskError(ValueError): ray::RolloutWorker.sample() (pid=1838, ip=172.17.0.2)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/geometry/manifolds/special_orthogonal_group.py", line 39, in belongs
assert_allclose(det, 1, err_msg="I expect the determinant to be +1.")
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/numpy/testing/_private/utils.py", line 1528, in assert_allclose
verbose=verbose, header=header, equal_nan=equal_nan)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/numpy/testing/_private/utils.py", line 764, in assert_array_compare
flagged = func_assert_same_pos(x, y, func=isnan, hasval='nan')
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/numpy/testing/_private/utils.py", line 740, in func_assert_same_pos
raise AssertionError(msg)
AssertionError:
Not equal to tolerance rtol=1e-07, atol=0
I expect the determinant to be +1.
x and y nan location mismatch:
x: array(nan)
y: array(1)
During handling of the above exception, another exception occurred:
ray::RolloutWorker.sample() (pid=1838, ip=172.17.0.2)
File "python/ray/_raylet.pyx", line 449, in ray._raylet.execute_task
File "python/ray/_raylet.pyx", line 450, in ray._raylet.execute_task
File "python/ray/_raylet.pyx", line 452, in ray._raylet.execute_task
File "python/ray/_raylet.pyx", line 430, in ray._raylet.execute_task.function_executor
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/evaluation/rollout_worker.py", line 488, in sample
batches = [self.input_reader.next()]
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/evaluation/sampler.py", line 52, in next
batches = [self.get_data()]
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/evaluation/sampler.py", line 95, in get_data
item = next(self.rollout_provider)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/evaluation/sampler.py", line 336, in _env_runner
base_env.send_actions(actions_to_send)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/env/base_env.py", line 328, in send_actions
self.vector_env.vector_step(action_vector)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/ray/rllib/env/vector_env.py", line 106, in vector_step
obs, r, done, info = self.envs[i].step(actions[i])
File "/home/duckie/Duckietown-RL/duckietown_utils/wrappers/reward_wrappers.py", line 272, in step
observation, reward, done, info = self.env.step(action)
File "/home/duckie/Duckietown-RL/duckietown_utils/wrappers/reward_wrappers.py", line 240, in step
observation, reward, done, info = self.env.step(action)
File "/home/duckie/Duckietown-RL/duckietown_utils/wrappers/reward_wrappers.py", line 104, in step
observation, reward, done, info = self.env.step(action)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/gym/core.py", line 292, in step
return self.env.step(self.action(action))
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/gym/core.py", line 268, in step
observation, reward, done, info = self.env.step(action)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/gym/core.py", line 268, in step
observation, reward, done, info = self.env.step(action)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/gym/core.py", line 268, in step
observation, reward, done, info = self.env.step(action)
[Previous line repeated 1 more time]
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/gym/core.py", line 234, in step
return self.env.step(action)
File "/home/duckie/gym-duckietown/src/gym_duckietown/simulator.py", line 1346, in step
self.update_physics(action)
File "/home/duckie/gym-duckietown/src/gym_duckietown/simulator.py", line 1231, in update_physics
self.cur_pos, self.cur_angle = _update_pos(self, action)
File "/home/duckie/gym-duckietown/src/gym_duckietown/simulator.py", line 1707, in _update_pos
self.state = self.state.integrate(self.delta_time, action)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/duckietown_world/world_duckietown/dynamics_delay.py", line 74, in integrate
state2 = self.state.integrate(dt, use_commands)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/duckietown_world/world_duckietown/pwm_dynamics.py", line 193, in integrate
s1 = GenericKinematicsSE2.integrate(self, dt, commands_se2)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/duckietown_world/world_duckietown/generic_kinematics.py", line 48, in integrate
return GenericKinematicsSE2(c1, t1)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/duckietown_world/world_duckietown/generic_kinematics.py", line 26, in __init__
geo.SE2.belongs(q0)
File "<decorator-gen-154>", line 2, in belongs
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/contracts/main.py", line 244, in contracts_checker
return function_(*args, **kwargs)
File "/home/duckie/miniconda3/envs/dtaido5/lib/python3.6/site-packages/geometry/manifolds/special_euclidean_group.py", line 76, in belongs
raise ValueError(msg)
ValueError: The rotation is not a rotation:
[[nan nan]
[nan nan]]
Any ideas?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.