vita-epfl / CrowdNav

[ICRA19] Crowd-aware Robot Navigation with Attention-based Deep Reinforcement Learning
MIT License
601 stars 172 forks source link

Jim ws #53

Closed yunjinli closed 2 years ago

yunjinli commented 2 years ago

env.config

  1. Add some other parameters for static obstacles generation/ boundary dimension.

train.config

  1. change the train_episodes to 1000 for reducing the time to train. (Default: 10000)

crowd_sim.py

  1. Read the new parameters introduced in the .config file and add some new logging.Info to report the current parameter states.
  2. Implement generate_random_obstacles(): This method aims to randomly generate the static obstacles in the given range that were specified as square_width in the env.config and make sure they don't block the goal position of the robot.
  3. In the existing method generate_random_human_position, make sure we call the generate_random_obstacles() method first. Besides, the code in the elif rule == 'static': is only for testing my implementation.
  4. In the method generate_square_crossing_human(), make sure to also include checking the static obstacle when trying to randomly generate humans.
  5. Add method generate_robot_goal() to randomly generate robot goal position
  6. In method reset(), make sure we can regenerate the same environment setup when using the same random seed
  7. In method step(), add the observation from static obstacles into the variable ob and the environment needs to check if the robot hit the static obstacles as well. In addition, the environment needs also to check if the robot is out of the boundary.
  8. Implemet generate_valid_goal() method and human_reset_goal() mehod
  9. In method render(), plot the static obstacle with the same fashion (but with filled black color), and also draw the blue rectangle representing the boundary.

Scripts folder

  1. These are all for testing if my implementation is correct.