Solve a dynamic programming problem relevant to optimization in robotic pathing. Implement min_robot_path_cost(grid, turn_penalty), where the robot moves only right or down through a rectangular grid. Each cell contains a nonnegative traversal cost, and -1 marks an obstacle. Return the minimum total cost from the top-left to the bottom-right, including the cost of every visited cell and turn_penalty whenever the robot changes direction. Return -1 if the destination is unreachable. The first move does not incur a turn penalty. Input is a 2D integer list and a nonnegative integer; output is an integer.
def min_robot_path_cost(grid, turn_penalty):