Foxglove - Weber-State-Submarine-Project/Submarine GitHub Wiki

Foxglove Overview

Foxglove is the primary user interface for monitoring and interacting with our autonomous robot. It serves as a centralized platform for visualizing data, managing robot states, and issuing commands. Designed specifically for our project's requirements, Foxglove provides capabilities similar to RViz while offering a customized interface tailored to our deliverables.


Features of Foxglove

  1. Robot Localization Visualization:

    • Displays the robot's position in real-time.
    • Tracks how far the robot perceives it has traveled.
    • Assists in verifying and debugging robot navigation and localization systems.
  2. Command and Control:

    • Provides start and stop buttons to command the robot.
    • Enables manual control and overrides for specific testing scenarios.
  3. 3D Mapping with Octomap:

    • Visualizes the 3D map generated by Octomap.
    • Allows users to evaluate the accuracy and completeness of the mapping process.
  4. Real-Time Topic Monitoring:

    • Subscribes to and displays data from all active ROS 2 topics.
    • Enables real-time graphing and monitoring of critical sensor data, motor commands, and localization states.
  5. Customizable Interface:

    • Tailored to the project's unique requirements, providing an intuitive and efficient user experience.
    • Supports data visualization in formats like point clouds, graphs, and logs.

Topics Visualized in Foxglove

Topic Name Description
/scan/front Displays laser scan data from the forward sonar sensor.
/odom Tracks the robot's position and movement in the environment.
/octomap_pointcloud Visualizes the Octomap's 3D point cloud for mapping validation.
/bt_logs Logs and monitors the behavior tree state transitions and decisions.
/esc_topic Displays motor commands for propulsion and turning.
/imu Monitors orientation and angular velocity data from the orientation sensor.

Steps to Use Foxglove

  1. Setup:

    • Ensure the robot and all necessary nodes are powered on and running.
    • Launch the Foxglove server to connect to the robot's ROS 2 network. Please refer to UserGuide
  2. Monitor Topics:

    • Subscribe to key topics (e.g., /scan/front, /odom, /octomap_pointcloud) for real-time data visualization.
    • Use graphs and visual tools to analyze data trends.
  3. Command the Robot:

    • Use the start and stop buttons to control the robot's state.
    • Monitor responses to confirm successful command execution.
  4. Map Generation:

    • Observe the mapping process in real-time as Octomap generates the 3D map.
    • Evaluate the final map displayed in Foxglove.

Benefits of Using Foxglove

  1. Real-Time Insights:

    • Provides immediate feedback on robot behavior and sensor data.
  2. Comprehensive Monitoring:

    • Consolidates all critical system data into a single interface.
  3. Debugging Capabilities:

    • Simplifies the process of identifying and resolving issues with the robot's navigation, localization, and mapping.
  4. User-Friendly:

    • Intuitive design allows for efficient operation and quick learning.

Limitations

  1. Reliance on Network Connectivity:

    • Requires a stable network connection for seamless communication with the robot.
  2. Graphical Overhead:

    • Resource-intensive data visualizations may affect performance on low-end systems.

Future Enhancements

  • Integrate advanced analytics for post-run performance evaluation.
  • Add more customization options for topic visualization.
  • Expand support for additional ROS 2 message types and formats.

By leveraging Foxglove, we achieve a powerful and user-friendly interface for monitoring and managing our autonomous robot, ensuring accurate data visualization and efficient operation throughout the project's lifecycle.