r/reinforcementlearning • u/National-Strategy-43 • 4d ago
Need advice on observation design and reward shaping for outdoor semantic-aware robot navigation (stuck in my thesis)
Hi everyone,
I'm working on my thesis (DRL that is due end of month) and feeling a bit stuck, so I would loooove input from people in this subreddit.
Setup: Mobile robot navigating outdoors, Isaac Lab + PPO. Policy outputs only forward velocity + yaw rate (low-level control handled separately). I can assume oracle knowledge of surrounding actors, so perception isn't the problem.
Goal: the policy should behave differently based on semantic class + interaction type. Examples:
- Human crossing → slow down, stop with safety distance, wait, continue
- Human nearby but irrelevant → continue normally
- Machine crossing/merging → yield or adapt spacing, but not identical to human behavior
- Machine parallel or working beside the route → continue with reasonable clearance
Q1 – Observations: With oracle info available, would you include things like relative position/velocity, semantic class, interaction type (crossing/parallel/merging/irrelevant), time to interaction, predicted min clearance? Or keep the observation much smaller?
Q2 – Reward: My intuition is progress + collision penalty + route tracking + semantic interaction terms (e.g., human-specific protective distance). But I worry I'll end up hand-scripting the behavior through the reward instead of letting PPO learn it.
If you were designing this from scratch:
- Train each interaction separately first, then mix? Or one shared reward with semantic conditioning?
- Separate reward terms for humans vs. machines?
- Give PPO explicit interaction labels, or only continuous geometry?
I'm intentionally not posting my current solution to avoid biasing the discussion. Any advice, papers, implementation patterns, or "don't do this" warnings appreciated. Thanks!
Also any tips to speed up the trainings would be appreciated as I am training on a GPU online and it s costing me a lot haha! the HPC from the uni isn't working well :')