ros2_control icon indicating copy to clipboard operation
ros2_control copied to clipboard

Add `list_hardware_components` CLI

Open destogl opened this issue 1 year ago β€’ 1 comments

Background

Add CLI command for list_hardware_components service and make nice colored output of it.

See for example how list_hardware_interfaces CLI is done.

Instructions

Hi, this is a good-first-issue issue. This means we've worked to make it more legible to people who either haven't contributed to our codebase before, or even folks who haven't contributed to open source before.

We're interested in helping you take the first step, and can answer questions and help you out along the way. Note that we're especially interested in contributions from underrepresented groups!

We know that creating a pull request is the biggest barrier for new contributors. This issue is for you πŸ’

If you have contributed before, consider leaving this PR for someone new, and looking through our general bug issues. Thanks!

πŸ€” What you will need to know.

Nothing. This issue is meant to welcome you to Open Source :) We are happy to walk you through the process.

πŸ“‹ Step by Step

  • [ ] πŸ™‹ Claim this issue: Comment below. If someone else has claimed it, ask if they've opened a pull request already and if they're stuck -- maybe you can help them solve a problem or move it along!

  • [ ] πŸ—„οΈ Create a local workspace for making your changes and testing following these instructions, for Step3 use "Download Source Code" section with these instructions.

  • [ ] 🍴 Fork the repository using the handy button at the top of the repository page and clone it into ~/ws_ros2_control/src/ros-controls/ros2_control, here is a guide that you can follow (You will have to remove or empty the existing ros2_control folder before cloning your own fork)

  • [ ] Checkout a new branch using git checkout -b <branch_name>

  • [ ] πŸ€– Apply pre-commit auto formatting, by running pip3 install pre-commit and running pre-commit install in the ros2_control repo.

  • [ ] πŸ’Ύ Commit and Push your changes

  • [ ] πŸ”€ Start a Pull Request to request to merge your code into master. There are two ways that you can start a pull request:

  1. If you are not familiar with GitHub or how to create a pull request, here is a guide you can follow on how GitHub works.
  • [ ] 🏁 Done Ask in comments for a review :)

Is someone else already working on this?

πŸ”—- We encourage contributors to link to the original issue in their pull request so all users can easily see if someone's already started on it.

πŸ‘₯- If someone seems stuck, offer them some help!

πŸ€”β“ Questions?

Don’t hesitate to ask questions or to get help if you feel like you are getting stuck. For example leave a comment below! Furthermore, you find helpful resources here:

Good luck with your first issue!

destogl avatar Aug 04 '22 12:08 destogl

Hey, a week ago I posted on colcon-core repository with an idea to use rich library from python to improve readability of colcon's output, maybe this could also be applied here?

Serafadam avatar Aug 09 '22 17:08 Serafadam

How should this message be printed out?

Using rrbot.launch.py as an example should formatting be something like this?

Hardware Component 0
	name: RRBot
	type: system
	plugin name: ros2_control_demo_hardware/RRBotSystemPositionOnlyHardware
	state: id=3 label=active
	command interfaces
		joint1/position [available] [unclaimed]
		joint2/position [available] [unclaimed]
	state interfaces
		joint1/position [available] [unclaimed]
		joint2/position [available] [unclaimed]

For state, is there a better format or coloring to tie it to available states here? What are the cases where ListHardwareComponents.srv returns more than one component?

mcevoyandy avatar Jan 09 '23 23:01 mcevoyandy

I like the above example! Also, the cases of multiple components returned are when you have a robot made up of multiple self-contained components, the canonical one being a robot arm attached to a mobile base or a robot arm with a sensor attached

bmagyar avatar Jan 10 '23 10:01 bmagyar