Summit PlayGround
easynav_playground_summit is EasyNav’s outdoor reference: a Robotnik Summit XL with a 3D lidar, a depth camera, an IMU and a GPS, navigating with NavMap and Bonxai maps in two worlds:
the URJC excavation, an outdoor 3D terrain;
a small warehouse, an indoor logistics scenario with shelves, pallets and clutter.
See PlayGrounds to install it.
Simulation only
To run Gazebo and the Summit XL without EasyNav or RViz2:
ros2 launch easynav_playground_summit_worlds gazebo_sim.launch.yaml
It loads the excavation; pass world:=<path to a .world file> for another one, e.g.
worlds/small_warehouse.world. To spawn the robot in a running simulation, use
summit.launch.yaml with a spawn pose (x, y, z).
The simulated Summit XL publishes:
Topic |
Type |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
It also publishes TF, and listens on /cmd_vel (geometry_msgs/Twist).
Launch files
The launch files (in launch/, in YAML) build on each other:
easynav_<config>.launch.yaml # sets params_file, rviz_config (and world)
└── easynav_gazebo_sim.launch.yaml # + EasyNav + RViz2
└── gazebo_sim.launch.yaml # Gazebo + the Summit XL
├── world.launch.yaml
└── summit.launch.yaml
What each one starts:
world.launch.yamlThe Gazebo server with
world(gz sim -r -s; the excavation by default) and the Gazebo GUI client (ifgui). Gazebo is started without a shell, so Ctrl+C stops it and no server or GUI is left behind.summit.launch.yamlThe Summit XL:
robot_state_publisherwith the robot model, the spawner (ros_gz_sim create), the ROS–Gazebo bridge (/clock, TF, sensors and ground truth), the ros2_control spawner forjoint_state_broadcasterand therobotnik_base_controldiff drive controller, andtwist_stamper, which forwards/cmd_vel(Twist) to the controller asTwistStamped.gazebo_sim.launch.yamlworld.launch.yamlandsummit.launch.yaml: the simulation, without EasyNav.easynav_gazebo_sim.launch.yamlgazebo_sim.launch.yaml, then, after 5 s, EasyNav (easynav_system system_main) withparams_file, and RViz2 withrviz_config(ifrviz). If EasyNav exits, the whole launch ends.easynav_<config>.launch.yamleasynav_gazebo_sim.launch.yamlwith the parameter file, RViz2 configuration and world of that configuration:
Launch file |
Parameter file ( |
RViz2 configuration ( |
World ( |
|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Building maps of a world
The warehouse maps were generated from the simulation with NavMap’s navmap_tools:
navmap_map_builderbuilds the 3D cloud (warehouse.pcd, for Bonxai). It teleports the robot through the free space and puts its sensors’ clouds together at the ground-truth poses.navmap_map2d_from_pcdbuilds the 2D occupancy grid (warehouse.pgm/.yaml, for the flat NavMap) from that cloud: points between 0.1 and 1.2 m high are obstacles.
ros2 launch easynav_playground_summit_worlds gazebo_sim.launch.yaml gui:=false \
world:=$(ros2 pkg prefix easynav_playground_summit_worlds)/share/easynav_playground_summit_worlds/worlds/small_warehouse.world
ros2 run navmap_tools navmap_map_builder /tmp/warehouse --world warehouse --model summit_xl \
--cloud-topic /front_laser/points --ground-truth-topic /ground_truth
ros2 run navmap_tools navmap_map2d_from_pcd /tmp/warehouse.pcd /tmp/warehouse
Run each tool with --help for its options. The README of easynav_playground_summit_worlds
explains the whole process.
Package layout
Package and directory |
Contents |
|---|---|
|
EasyNav launch files, parameters (one file per configuration) and RViz2 configurations |
|
Gazebo launchers ( |
|
NavMap ( |
|
URJC excavation and small warehouse worlds |
|
Summit XL model and its ros2_control controllers |