A method comprising: receiving, at data processing hardware of a robot, an initial position of a leg of the robot and an initial velocity of the leg of the robot; receiving, at the data processing hardware, a touchdown location for the leg and a touchdown target time for the leg, the touchdown target time representing an amount of time until the leg of the robot should touchdown at the touchdown location; determining, by the data processing hardware, a difference between the initial position of the leg and the touchdown location; separating, by the data processing hardware, the difference between the initial position of the leg and the touchdown location into a horizontal motion component and a vertical motion component; and characterized by: selecting, by the data processing hardware, a horizontal motion policy from a set of horizontal motion policies to satisfy the horizontal motion component, each horizontal motion policy producing a horizontal trajectory as a function of the initial position of the leg, the initial velocity of the leg, the touchdown location of the leg, and the touchdown target time of the leg; selecting, by the data processing hardware, a vertical motion policy from a set of vertical motion policies to satisfy the vertical motion component, each vertical motion policy producing a vertical trajectory as a function of the initial position of the leg, the initial velocity of the leg, the touchdown location of the leg, and the touchdown target time of the leg; and executing, by the data processing hardware, the selected horizontal motion policy and the selected vertical motion policy to swing the leg of the robot from the initial position to the touchdown location at the touchdown target time. receiving, at data processing hardware of a robot, an initial position of a leg of the robot and an initial velocity of the leg of the robot; receiving, at the data processing hardware, a touchdown location for the leg and a touchdown target time for the leg, the touchdown target time representing an amount of time until the leg of the robot should touchdown at the touchdown location; determining, by the data processing hardware, a difference between the initial position of the leg and the touchdown location; separating, by the data processing hardware, the difference between the initial position of the leg and the touchdown location into a horizontal motion component and a vertical motion component; and characterized by: selecting, by the data processing hardware, a horizontal motion policy from a set of horizontal motion policies to satisfy the horizontal motion component, each horizontal motion policy producing a horizontal trajectory as a function of the initial position of the leg, the initial velocity of the leg, the touchdown location of the leg, and the touchdown target time of the leg; selecting, by the data processing hardware, a vertical motion policy from a set of vertical motion policies to satisfy the vertical motion component, each vertical motion policy producing a vertical trajectory as a function of the initial position of the leg, the initial velocity of the leg, the touchdown location of the leg, and the touchdown target time of the leg; and executing, by the data processing hardware, the selected horizontal motion policy and the selected vertical motion policy to swing the leg of the robot from the initial position to the touchdown location at the touchdown target time. selecting, by the data processing hardware, a horizontal motion policy from a set of horizontal motion policies to satisfy the horizontal motion component, each horizontal motion policy producing a horizontal trajectory as a function of the initial position of the leg, the initial velocity of the leg, the touchdown location of the leg, and the touchdown target time of the leg; selecting, by the data processing hardware, a vertical motion policy from a set of vertical motion policies to satisfy the vertical motion component, each vertical motion policy producing a vertical trajectory as a function of the initial position of the leg, the initial velocity of the leg, the touchdown location of the leg, and the touchdown target time of the leg; and executing, by the data processing hardware, the selected horizontal motion policy and the selected vertical motion policy to swing the leg of the robot from the initial position to the touchdown location at the touchdown target time.