ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

request help with naming conventions

asked 2016-11-10 08:19:18 -0500

updated 2016-11-11 04:27:43 -0500

I am writing my first package and find myself repeatedly changing names of things. This tells me I just do not fully understand all of the moving parts and their interplay.

  • Package name?
    • The package is a controller for a common 16 channel PWM board with an I2C interface.
  • Node name?
  • Service names?
    • The node has a few setup/configuration services - setting servo centers, turning all servos off, changing PWM frequency, linking servo channels, etc.
    • Subscriber names?
  • The node has a few subscribers to topics - setting absolute/relative speeds of one or more servos and handling Twist messages
  • Message names?
    • One of the topics uses the common Twist message.
    • The other topics use custom messages.
    • Are there any predefined Service message types - eg "single request integer with single response integer" or "no request input with no response output"?

Here are some possible strings to incorporate:

The package is being developed for a low cost robot platform which is shortened to locoro. Their will be other packages and nodes developed for this project. This first package is designed to drive any of the 16 channel PWM breakout board which uses the PCA9685 chip. The primary robotic use of the board is to control the servos and motors but will interface with any hardware which uses PWM. the most common / popular supplier of the board is Adafriut but it is also available from other companies.

I've read and re-read the tutorials and guides. This has been part of why i find myself continually changing the names as the guidance I'd gleaned has lead to multiple interpretations for a novice.

Guidance and suggestions are appreciated.

edit retag flag offensive close merge delete

Comments

You must've already some idea for some of these things. To make this question a little less open-ended, you could include what you currently have.

gvdhoorn gravatar image gvdhoorn  ( 2016-11-10 11:49:42 -0500 )edit

You can get a sense of my indecisiveness with the package name:

pwm16i2c_controller locoro_pwm16 ('locoro' is the over arching project) i2cpwm16ctrl i2cpwm_board

suforeman gravatar image suforeman  ( 2016-11-10 17:54:11 -0500 )edit

At least for packages you could take a look at REP-144: "ROS Package Naming".

gvdhoorn gravatar image gvdhoorn  ( 2016-11-11 02:05:11 -0500 )edit

Yes, I have read through REP-11. In re-reading the first comment, I realized I should include the various strings I am working with. I've updated the original question.

suforeman gravatar image suforeman  ( 2016-11-11 04:11:24 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2016-11-19 11:41:45 -0500

updated 2016-11-19 11:52:22 -0500

After lots of reading and a few more changes, I chose the following:

package:     i2cpwm_board
node:        i2cpwm_board
source code: i2cpwm_controller.cpp

services:    config_drive_mode()
             config_servos()

topics:      servos_absolute()
             servos_proportional()
             servos_drive()

My decision was not 100% intuitive but I had to make some guesses and ultimately code and move on. The service names work well as they are "action subject". The topics are a bit less intuitive but they all act on servos to make them move. The progress from least amount of control logic to most amount of control logic.

I'm happy to get additional feedback and if there are better suggestions.

edit flag offensive delete link more

Comments

i2cpwm is a pretty boring name. Does the board have a model name or model number that you can use instead?

ahendrix gravatar image ahendrix  ( 2016-11-19 17:48:16 -0500 )edit

For no-request, no-response services, there is a standard Trigger service type in std_srvs

ahendrix gravatar image ahendrix  ( 2016-11-19 17:49:06 -0500 )edit

There is a popular product for the I2C PWM board. However, there are also lots of clones and variants. Rather than include the manufacturer's name in the package, I have it on the mainpage of the documentation.

suforeman gravatar image suforeman  ( 2016-11-19 18:08:31 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2016-11-10 08:19:18 -0500

Seen: 720 times

Last updated: Nov 19 '16