from typing import List


def define_foot_vertices(robot: str) -> List:
    """Define the robot-specific positions of the feet vertices in the foot frame."""

    if robot != "iCubV2_5":
        raise Exception("Feet vertices positions only defined for iCubV2_5.")

    # For iCubV2_5, the feet vertices are not symmetrically placed wrt the foot frame origin.
    # The foot frame has z pointing down, x pointing forward and y pointing right.

    # Origin of the box which represents the foot (in the foot frame)
    box_origin = [0.03, 0.005, 0.014]

    # Size of the box which represents the foot
    box_size = [0.16, 0.072, 0.001]

    # Define front-left (FL), front-right (FR), back-left (BL) and back-right (BR) vertices in the foot frame
    FL_vertex_pos = [box_origin[0] + box_size[0]/2, box_origin[1] - box_size[1]/2, box_origin[2]]
    FR_vertex_pos = [box_origin[0] + box_size[0]/2, box_origin[1] + box_size[1]/2, box_origin[2]]
    BL_vertex_pos = [box_origin[0] - box_size[0]/2, box_origin[1] - box_size[1]/2, box_origin[2]]
    BR_vertex_pos = [box_origin[0] - box_size[0]/2, box_origin[1] + box_size[1]/2, box_origin[2]]

    # Vertices positions in the foot (F) frame
    F_vertices_pos = [FL_vertex_pos, FR_vertex_pos, BL_vertex_pos, BR_vertex_pos]

    return F_vertices_pos