zhejz / carla-roach

Roach: End-to-End Urban Driving by Imitating a Reinforcement Learning Coach. ICCV 2021.
https://zhejz.github.io/roach
Other
293 stars 49 forks source link

Regarding chauffeurnet implementation #12

Closed jiaxiaosong1002 closed 2 years ago

jiaxiaosong1002 commented 2 years ago

Dear authors, first thanks for sharing your paper and code! It is very excellent.

I am a RL newbie. In the carla/gym/core/obs_manager/birdview/chauffeurnet.py, in the function get_observation, I noticed that when rastering vehicles' bboxes, the code only rasterize the ego vehicle's current bbox and specifically excluding the history of the ego vehicle.

I am wondering whether you have tried rasterize the ego vehicle's history bbox. Is this setting a common practice (from other codebase?)? I am curious about the reason. (Causal confusion? Markov property? RL instability?)

Thanks for your time.

zhejz commented 2 years ago

In fact, not just the history, also the current bbox of the ego vehicle is not used as input to the RL agent (obs_dict["masks"]). The current bbox of the ego vehicle is used just for visualization (obs_dict["rendered"]). There are two reasons. Firstly, we think this information is redundant because our ego-vehicle locates always at the same place in all BEVs (unlike Chauffeurnet which randomly transforms the BEV). Secondly, the mask of other agent's bbox is effectively an occupancy grid of dynamic obstacles, which is easier to understood by the network. So if one wants to use the ego-vehicle's bbox as input, it should be rasterized in a mask separated from other agents (c.f. Chauffeurnet Fig.1). We didn't do any experiments but we think this should not affect the performance in our case.

jiaxiaosong1002 commented 2 years ago

Thanks for your kind reply. This is very helpful. Have a good day!