Concepts

pyrobosim is primarily a world modeling framework for prototyping high-level robotics behavior applications.

Worlds

Worlds in pyrobosim consist of a hierarchy of polygonal entities, including:

  • Robots: A movable entity capable of actions that can change its own state and the state of the world.

  • Rooms: Regions that a robot can navigate.

  • Hallways: Regions connecting two rooms, which a robot can navigate, open, and close.

  • Locations: Regions inside rooms that may contain objects (e.g., furniture or storage locations).

  • Object Spawns: Subregions of locations where objects may exist (e.g., a left vs. right countertop).

  • Objects: Discrete entities that can be manipulated around the world.

This is all represented in a 2.5D environment (SE(2) pose with vertical (Z) height). However, full 3D poses are representable as well. For more information, refer to the Geometry Conventions section.

Entities in a world.

Actions

Within the world, we can spawn a robot that can perform a set of actions, such as navigating, picking, and placing. To learn more, refer to Robot Actions.

These actions can be specified individually, or as a sequence of actions (a plan). Actions or plans can be commanded directly, e.g., “go to the table and pick up an apple”. They can also come from a Task and Motion Planning framework that accepts a task specification (e.g., “all apples should be on the kitchen table”) and outputs a plan that, when executed, satisfies the specification.

For example, here is a robot performing a Navigate action from the kitchen to the desk in our simple test world.

Example navigation action.