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
-
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.
-
Command and Control:
- Provides start and stop buttons to command the robot.
- Enables manual control and overrides for specific testing scenarios.
-
3D Mapping with Octomap:
- Visualizes the 3D map generated by Octomap.
- Allows users to evaluate the accuracy and completeness of the mapping process.
-
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.
-
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
-
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
-
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.
- Subscribe to key topics (e.g.,
-
Command the Robot:
- Use the start and stop buttons to control the robot's state.
- Monitor responses to confirm successful command execution.
-
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
-
Real-Time Insights:
- Provides immediate feedback on robot behavior and sensor data.
-
Comprehensive Monitoring:
- Consolidates all critical system data into a single interface.
-
Debugging Capabilities:
- Simplifies the process of identifying and resolving issues with the robot's navigation, localization, and mapping.
-
User-Friendly:
- Intuitive design allows for efficient operation and quick learning.
Limitations
-
Reliance on Network Connectivity:
- Requires a stable network connection for seamless communication with the robot.
-
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.