Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/clearpathrobotics/cpr_gazebo/llms.txt

Use this file to discover all available pages before exploring further.

The Obstacle World is an enclosed indoor Gazebo environment featuring non-planar ground geometry. It consists of large rooms interconnected by narrow doorways, with actual holes cut into the floor surface that present a genuine physical challenge: smaller robots that drive into a hole will become trapped. The perimeter walls can be toggled off for open-space testing, and the entire ground plane is uniformly scalable — making the same world usable across platforms as small as Jackal and as large as Warthog. This combination of features makes the Obstacle World one of the most versatile indoor test environments in the CPR Gazebo collection.

Supported Platforms

Jackal is the default platform. The platform argument accepts any of the following values, with Warthog requiring a larger world_scale setting due to its physical dimensions:
PlatformDefaultNotes
Jackal
Husky
Dingo
Boxer
WarthogRequires world_scale:=2.0 or greater

Launching

1

Launch with the default platform

Start Gazebo with the obstacle world and the default Jackal robot:
roslaunch cpr_obstacle_gazebo cpr_obstacle_world.launch
2

Launch with a specific platform

Use the platform argument to select a different robot. Accepted values are jackal, husky, dingo, boxer, and warthog:
roslaunch cpr_obstacle_gazebo cpr_obstacle_world.launch platform:=husky
3

Launch with an adjusted world scale

Use the world_scale argument to uniformly scale the ground plane. This is required for large platforms such as Warthog so the robot fits through doorways and the floor holes are proportionally navigable:
roslaunch cpr_obstacle_gazebo cpr_obstacle_world.launch platform:=warthog world_scale:=2.0
4

Launch with walls disabled

Set walls:=false to remove the perimeter walls, leaving only the ground-plane geometry. This is useful for testing navigation in open areas while retaining the non-planar floor features:
roslaunch cpr_obstacle_gazebo cpr_obstacle_world.launch walls:=false
5

View the world geometry without a robot

Inspect the obstacle world layout in RViz without spawning any robot:
roslaunch cpr_obstacle_gazebo view_world.launch

World-Specific Parameters

In addition to the standard platform, robot_x/y/z/yaw, and world_x/y/z/yaw arguments common to all CPR Gazebo worlds, the Obstacle World exposes two additional parameters:
world_scale
float
default:"1.0"
Uniformly scales the X and Y dimensions of the ground plane geometry. Increase this value when using large platforms that cannot fit through the default doorway widths or that are at risk of falling into the floor holes. A value of 2.0 or greater is recommended for Warthog.
walls
bool
default:"true"
Toggles the perimeter walls on or off. When set to false, the enclosing walls are removed but the ground geometry — including rooms, doorways, and holes — remains unchanged.

Features

Large rooms with narrow doorways — The world is divided into several spacious rooms connected only by narrow doorway openings, challenging local planners and requiring precise alignment to navigate through. Floor holes — Actual voids are cut into the floor surface. Robots that drive into a hole may become stuck, making this a useful test for hazard-avoidance behaviours and footprint-aware planning. Toggleable walls — The perimeter walls can be removed at launch time, converting the environment into an open ground plane with non-planar features. This is useful for isolating the ground geometry challenge from the wall-avoidance challenge. Adjustable scale — The world_scale argument allows the entire ground plane to be resized uniformly, making the same world configuration accessible to both compact platforms like Jackal and large platforms like Warthog.
The floor holes are sized relative to the default world_scale of 1.0. At this scale, smaller platforms such as Jackal can fall into and become trapped inside the holes if they drive over them. Always verify that your local planner includes hole-avoidance or depth-sensing capabilities before running at default scale with small robots.
When using Warthog, set world_scale:=2.0 or greater. At the default scale the doorways are too narrow for Warthog to pass through and the floor holes present a significant entrapment risk. Scaling the world up preserves all the navigational challenges while making them proportionate to Warthog’s footprint.

Build docs developers (and LLMs) love