  from common.params import Params
  from common.realtime import Priority, config_realtime_process
  from selfdrive.swaglog import cloudlog
  from selfdrive.controls.lib.longitudinal_planner import Planner
  from selfdrive.controls.lib.vehicle_model import VehicleModel
  from selfdrive.controls.lib.lateral_planner import LateralPlanner
  import cereal.messaging as messaging
  
  
  def plannerd_thread(sm=None, pm=None):
 
</s> remove from cereal import car
 </s> add  </s> remove       self.angle_steers_des = lat_plan.steeringAngleDeg # get from MPC/LateralPlanner

 </s> add  </s> remove       # Check if we deviated from the path
      left_deviation = actuators.steer > 0 and lat_plan.dPathPoints[0] < -0.1
      right_deviation = actuators.steer < 0 and lat_plan.dPathPoints[0] > 0.1
 </s> add 
  from common.params import Params
  from common.realtime import Priority, config_realtime_process
  from selfdrive.swaglog import cloudlog
  from selfdrive.controls.lib.longitudinal_planner import Planner

  from selfdrive.controls.lib.lateral_planner import LateralPlanner
  import cereal.messaging as messaging
  
  
  def plannerd_thread(sm=None, pm=None):
keep keep keep keep replace keep keep keep keep keep
 LateralPlanner should only compute curvature (#20289)

* get curvature from planner

* no need to check active

* remove that

* remove self

* liveParams not needed

* cast

* fix test bug

* fixes

* fix ui.py

* fix radians

* update refs

* update refs

* bump cereal

* bump cereal

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com> 
selfdrive/controls/plannerd.py