RAI ROS 2 Namespaces
Is your feature request related to a problem? Please describe. The current namespace structure for RAI nodes and topics lacks consistency and clarity. This can lead to potential conflicts, unexpected behaviors, and difficulties in managing the system as it grows. Specifically:
- Some topics, like perform_task (#235), are visible to nodes that shouldn't have access to them, which can lead to unexpected behaviors.
- There's no clear separation between RAI-specific topics/services and robot-specific interfaces.
- The current structure may not scale well as more features and nodes are added to the system.
Describe the solution you'd like Implement a well-structured and consistent namespace hierarchy for all RAI nodes, topics, services, and actions. The proposed structure could be:
- Use /rai as the top-level namespace for all RAI-specific components.
- Create sub-namespaces for different functional areas:
- /rai/hmi for Human-Machine Interface components
- /rai/perception for perception-related nodes (e.g., WhatISee)
- /rai/core for core RAI functionality
- /rai/tools for various tools and utilities
Use clear and descriptive names for topics, services, and actions within these namespaces. Keep robot-specific interfaces outside the /rai namespace to maintain a clear separation.
Describe alternatives you've considered
- Using a flat namespace structure with longer, more descriptive names. This was rejected as it doesn't provide clear hierarchical organization.
- Creating separate namespaces for each RAI node. This was considered too granular and could lead to overly complex topic names.
Additional context This namespace restructuring should be implemented across all RAI packages.