RobotecAI / RobotecAI/rai

RAI ROS 2 Namespaces

Open
#258 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement help wanted priority/minor request for comments ros
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:

  1. Some topics, like perform_task (#235), are visible to nodes that shouldn't have access to them, which can lead to unexpected behaviors.
  2. There's no clear separation between RAI-specific topics/services and robot-specific interfaces.
  3. 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:

  1. Use /rai as the top-level namespace for all RAI-specific components.
  2. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.