A computer-implemented method, comprising: identifying, by a computing system, one or more obstacles (122, 124, 126, 128, 130) that are located in proximity of at least a portion of a planned route for an autonomous robot (112, 202, 302); for each obstacle: (i) determining a semantic class of the obstacle, including selecting the semantic class from a library that defines a plurality of possible semantic classes for obstacles, characterised in that the library comprises a hierarchical representation of the plurality of possible semantic classes and wherein the library includes a database that includes increasingly specialized planning policies for classes represented further down the hierarchy, each planning policy describing at least one constraint with respect to travel of the autonomous robot relative to the obstacle, wherein selecting the semantic class of the obstacle comprises traversing the hierarchical representation of the plurality of possible semantic classes to locate a most-specific semantic class for the obstacle, and (ii) selecting a planning policy for the obstacle that corresponds to the semantic class of the obstacle; generating, by the computing system, a trajectory along the at least the portion of the planned route for the autonomous robot, the trajectory being based on the constraints described by the planning policies for the one or more obstacles located in proximity of the at least the portion of the planned route; and initiating travel of the autonomous robot according to the trajectory. identifying, by a computing system, one or more obstacles (122, 124, 126, 128, 130) that are located in proximity of at least a portion of a planned route for an autonomous robot (112, 202, 302); for each obstacle: (i) determining a semantic class of the obstacle, including selecting the semantic class from a library that defines a plurality of possible semantic classes for obstacles, characterised in that the library comprises a hierarchical representation of the plurality of possible semantic classes and wherein the library includes a database that includes increasingly specialized planning policies for classes represented further down the hierarchy, each planning policy describing at least one constraint with respect to travel of the autonomous robot relative to the obstacle, wherein selecting the semantic class of the obstacle comprises traversing the hierarchical representation of the plurality of possible semantic classes to locate a most-specific semantic class for the obstacle, and (ii) selecting a planning policy for the obstacle that corresponds to the semantic class of the obstacle; (i) determining a semantic class of the obstacle, including selecting the semantic class from a library that defines a plurality of possible semantic classes for obstacles, characterised in that the library comprises a hierarchical representation of the plurality of possible semantic classes and wherein the library includes a database that includes increasingly specialized planning policies for classes represented further down the hierarchy, each planning policy describing at least one constraint with respect to travel of the autonomous robot relative to the obstacle, wherein selecting the semantic class of the obstacle comprises traversing the hierarchical representation of the plurality of possible semantic classes to locate a most-specific semantic class for the obstacle, and (ii) selecting a planning policy for the obstacle that corresponds to the semantic class of the obstacle; generating, by the computing system, a trajectory along the at least the portion of the planned route for the autonomous robot, the trajectory being based on the constraints described by the planning policies for the one or more obstacles located in proximity of the at least the portion of the planned route; and initiating travel of the autonomous robot according to the trajectory.