RAI ROS 2 Namespaces
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 589
- Forks
- 76
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 3
Description
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by inventorying the RAI packages and their current nodes, topics, services, and actions; the issue names no specific files or tests. Define a namespace map covering /rai, its functional sub-namespaces, and robot-specific interfaces, then apply it across all RAI packages. Done means the interfaces follow a consistent hierarchy and robot-specific interfaces remain outside /rai.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- robotics
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100