References#

Lecture 14

ENPM605 – L14: Lifecycle Nodes & ROS 2 Bags

Covers lifecycle nodes (state machine: Unconfigured / Inactive / Active / Finalized, transition commands and callbacks, LifecycleNode, create_lifecycle_publisher, TransitionCallbackReturn with SUCCESS / FAILURE / ERROR, CLI-driven transitions via ros2 lifecycle set, programmatic transitions through the change_state service), ROS 2 bags (storage backends – SQLite3 vs.MCAP, recording with ros2 bag record, useful flags, recording a Nav2 navigation run, inspecting bags with ros2 bag info, replaying with ros2 bag play and useful flags such as --rate, --loop, --remap, --clock), and Foxglove Studio (multi-panel layouts – 3D, Plot, Raw Messages – and importing / exporting layout files).

Lifecycle Nodes
ROS 2 Design: Managed Nodes

ROS 2 Design Article

Authoritative design document describing the lifecycle (managed) node concept, primary states, transitions, and the rationale for separating construction from activation.

https://design.ros2.org/articles/node_lifecycle.html
rclpy Lifecycle Examples

rclpy Source (Jazzy)

Source for rclpy_lifecycle, including LifecycleNode, lifecycle publishers, and example patterns for transition callbacks.

https://github.com/ros2/rclpy/tree/jazzy/rclpy
lifecycle_msgs

ROS 2 Jazzy: lifecycle_msgs

Message and service definitions used to drive lifecycle transitions: State, Transition, ChangeState, GetState.

https://docs.ros.org/en/jazzy/p/lifecycle_msgs/
Nav2 Lifecycle Manager

Nav2 Documentation

Reference for the Nav2 lifecycle_manager that sequences map_server, amcl, planners, controllers, and bt_navigator through their transitions.

https://docs.nav2.org/configuration/packages/configuring-lifecycle.html
ROS 2 Bags
Recording and Playing Back Data

ROS 2 Jazzy Tutorial

Step-by-step walk-through for ros2 bag record, ros2 bag play, and ros2 bag info, including common flags.

https://docs.ros.org/en/jazzy/Tutorials/Beginner-CLI-Tools/Recording-And-Playing-Back-Data/Recording-And-Playing-Back-Data.html
rosbag2 on GitHub

rosbag2 Source

Source repository for rosbag2: storage backends, CLI plugins, and the C++ / Python APIs for reading and writing bags programmatically.

https://github.com/ros2/rosbag2
MCAP File Format

MCAP Documentation

Specification, design rationale, and tooling for the MCAP file format used by the recommended ROS 2 storage backend.

https://mcap.dev/
rosbag2 Storage MCAP Plugin

rosbag2_storage_mcap (Jazzy)

Source for the MCAP storage plugin that ships in the ros-jazzy-rosbag2-storage-mcap Debian package.

https://github.com/ros2/rosbag2/tree/jazzy/rosbag2_storage_mcap
Foxglove Studio
Foxglove Website

Foxglove

Project home page for Foxglove Studio: features, downloads, and learning resources.

https://foxglove.dev/
Foxglove Documentation

Foxglove Docs

Top-level documentation: getting started, panels, layouts, message types, and the WebSocket bridge.

https://docs.foxglove.dev/docs
Panel Reference

Foxglove: Panels

Reference for every panel (3D, Plot, Image, Raw Messages, Diagnostics, Teleop, …) and the message types each one consumes.

https://docs.foxglove.dev/docs/visualization/panels/introduction
Foxglove Desktop Downloads

Foxglove

Desktop installers for Linux (Debian / AppImage), macOS, and Windows.

https://foxglove.dev/download
Foxglove Web App

Foxglove

Browser version of Studio. Bag files chosen here are read locally; nothing is uploaded.

https://app.foxglove.dev/
Pricing and Academic Access

Foxglove

Pricing tiers and information about free academic / open-source access.

https://foxglove.dev/pricing