How do self-driving cars maneuver around obstacles even in low visibility?