Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Define a new organization for ROS Packages #31

Open
diegocardozo97 opened this issue Apr 19, 2020 · 9 comments
Open

Define a new organization for ROS Packages #31

diegocardozo97 opened this issue Apr 19, 2020 · 9 comments
Assignees
Labels
type:feature New feature or request

Comments

@diegocardozo97
Copy link
Contributor

To achieve a better organization and to even allow externals easily use our ROS packages without having to change names, define and implement a new packages' name convention.

I think is fine having that convention and you (navigation, with this PR) can start doing it like that. About the mentioned problem, I think could be later resolved with a new pkg name and path standard like: catkin_home/src/robo/athome/navigation/a_pkg -> package(robo_athome_navigation_apkg).

Originally posted by @diegocardozo97 in #25 (comment)

@diegocardozo97 diegocardozo97 added the type:feature New feature or request label Apr 19, 2020
@paulvazbad
Copy link
Member

Changes

I've been thinking about this subject, and I propose the following changes:

  1. Add RB_ as a prefix to all the packages defined/developed by us. For example:
    main_engine -> RB_main_engine

  2. Move the parser from action_selectors to main_engine, as I believe (and I think @diegocardozo97 agrees with me), the parser is more involved with the action manager than with the stt.

  3. Rename the following packages:
    -action_selectors -> RB_speech_to_text

  4. Make a new package called RB_vision and move ObjectDetector from the action_selectors to this new packages.

  5. Include @iquibalamhm 's code in RB_vision (Added arm vision packages #35)

What do you guys think?

@AuroTB
Copy link
Member

AuroTB commented May 2, 2020

Hi! I agree with Paul to just add the "rb_" prefix (or maybe change it to a more specific one like roborregos_, robert_, etc), just taking into account the package convention of having it lowercase and with a significant, distinguishing characteristic.

  • if a package is specialized for a software project, prepend its name
  • if a package is specialized for a hardware piece, prepend its name
  • if a package is specialized for a robot, prepend its name
  • if a package is specialized by an entity (lab, company, ...), prepend the name of the entity. Once the package is commonly used, owned and maintained, that name can be dropped

You should check it out, because there is also a section for special cases such as launch files packages and bring-up files, which is exactly what I navigation is trying to implement and we'll have to implement in the future.

@paulvazbad
Copy link
Member

Thats amazing, thanks for the info!
So I guess the rb_ (robert_) is decided then?
What do you think about the other changes?

@diegocardozo97
Copy link
Contributor Author

diegocardozo97 commented May 4, 2020

That info, Aurora, is very nice, I didn't know it. I think something like rb_robert_ or rb_home_ is good.
Additionally, I was wondering that if in the future with too many packages, we should start using like java's convention for the packages' name.

For example,

catkin_home
   |--->src
        |--->rb
        |       |--->home
        |       |     |--->move
        |       |     |     |--->pid
        |       |     |     |       |--->~actual package (rb_home_move_pid)~
        |       |     |     |--->state
        |       |     |            |--->~actual package (rb_home_move_state)~
        |       |     |--->mainengine
        |       |          |--->voice
        |       |          |       |--->~actual package (rb_home_mainengine_voice)~
        |       |          |--->state
        |       |                 |--->~actual package (rb_home_mainengine_state)~
        |       |--->vsss
        |            |--->vision
        |                  |--->colortracking
        |                         |--->~actual package (rb_vsss_vision_colortracking)~
        |--->third_party
               |--->vizbox
                      |--->~actual package (vizbox)~

Then, by including the path in the package name, we can avoid collisions of the packages, for example move's state and mainengine's state.
Maybe is too much, but is an option. I say that ROS was made originally for research purpose, that's why is too bad for actual code.

@AuroTB
Copy link
Member

AuroTB commented May 5, 2020

All right, I think I like Cardozo's idea to go with the prefix <rb_home_area> for the @HOME project, where area refers to the folder and the area where this package is being used.
So, to summarize, from now on we'll have to change the packages names according to this:

  • All packages: use prefix <rb_home_ area>
  • General area launch file package: use suffix <_launch>
  • Global launch file package: use suffix <_bringup>
  • Meta package: use suffix <_robot> or <_robert>
  • Packages containing URDFs and meshes: use suffix <_description>
  • Package contains any of a ROS message/service/action: use suffix <_msgs>

Did I miss something? We should add a small page to the wiki regarding this issue and update our own folder areas.

@AuroTB
Copy link
Member

AuroTB commented May 17, 2020

@tomvik
Copy link
Contributor

tomvik commented Oct 8, 2020

Will this be a thing?

@tomvik
Copy link
Contributor

tomvik commented Oct 20, 2020

@AuroTB @paulvazbad friendly ping

@tomvik
Copy link
Contributor

tomvik commented Oct 27, 2020

@AuroTB @paulvazbad
image

@Josecisneros001 Josecisneros001 self-assigned this Sep 18, 2021
@paulvazbad paulvazbad removed their assignment Nov 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:feature New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants