ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

About the Definition of 'Awesome' in Robotics

Hey ROS,

I’m looking for contributors and more support in the maintenance of the awesome-robotic-tooling list. Over the past years I invested about one hour every day to search, analyse and install generic open source tooling that is useful in the robotic context. Unfortunately most of the commits are done by myself. Since my perspective got highly biased over the years I want to encourage the ROS community to support this effort. The main idea behind this list is to collect tools that could be useful in an robotic development environment. It does not need to be ROS specific but a good ROS interface and integration is always beneficial in robotics.

To achieve that I want to discuss with you the usefulness of open source tools to stop reinventing the wheel. The goal of the discussion should be to create a contribution guide that defines ‘awesome’ tooling in robotics.

So how can we measure the usefulness? Here some indicators that I used to define the usefulness of robotic projects:

  • Reusability: Is a package useful in another context / domain and can be recombined with other packages?
  • Activity: A tool / package that is been used has issues or a high number of downloads. That’s why the first thing I do is checking for an active issue board. Are issues created and closed on a regular bases? When was the last commit done on this project?
  • Installability: Can the package easily be installed? I highly recommend to create a Dockerfiles for running your code since it it also the best installation instruction from my point of view. When testing many open source packages on your system people end up in an dependency nightmare without docker.
  • Documentation: Is a package documented?
  • Uniqueness: When you create an open source software that is equal to many other you have not understood the principle of “Stop reinventing the wheel”. So before investing a huge development effort check what other people did and if it is better to improve those projects.
  • Performance: When your software outperforms others you should show that in your README by measurements that are reproducible easily by others.

So how do you think we can improve the visibility of useful robotic tools? What do you think can be used to measure usability? What are important indicators for you to measure the usability? How can I improve the order in the awesome robotic tooling list?

To make contribution more easy for the future I created an issue to simply post proposals for the awesome-robotic-tooling list:

Please keep in mind that we also have another awesome list in this community that is very good maintained by @fkromer with a much higher focus on ROS2.

7 Likes

Since I’ve started do the weekly update I think I would be a good candidate to help out. I would be more than happy to copy over new material as I put together the weekly list. @Tobias @fkromer perhaps we could use the weekly update thread as a place to vet new entries for awesomeness?

1 Like

The Weekly Update has also been an important source for me recently. We should also mention the awesome-weekly-robotics list of @msadowski

Combining our efforts could be beneficial in any case. One problem with an Awesome list is that it’s hard to see what’s new. Very few people want to see the commit history. That’s why weekly news of this kind is more interesting for people who have been around for a while.

Here’s maybe a crazy idea to bring the worlds together: :crazy_face:
I’m experimenting a lot with Github action these days. I could create a script that does the following.

  1. Run the script weekly by the Github Action Schedule
  2. Create a new list based on the commits of the past week.
  3. Push it to the Github Wiki or another repository.

In this way we can give an easy overview of what has been collected by the community and you can select what is worth for a weekly news. But this only works when the community is contributing to the awesome lists.

This could also been used to combine the additions of multiple lists into one large news feed. What do you think? I will play around with that a little bit :smiley:

I was thinking a bit more the other way around, like taking the cream of the crop from each week and adding it to the list if it made sense. I think there is a really fine balance between link aggregation and curation that we’re both trying to strike, which doesn’t really work great with pure automation.

Now if we could make a chrome plug-in that allowed people to send us suggestion with a single press, that would be great :laughing:.

Yes that’s true. The news feed should not be automated itself but it could assist us to find new potential candidates. Maintaining the awesome lists is really hard work since the open source community in AI and robotics got so active. You could create a full time job out of mapping the robotic related open source software. One trick that is used is checking the Stars that people made after giving a star to the tooling list. Most of them are doing a research in this domain at this moment and are using the Github Stars as Bookmarks.

Like you suggested including the community by voting is something we should definitely look into. It worked really great at Hacker News. Unfortunately it is nothing for newcomers that want an overview of what was “awesome” the last years. Here the classical awesome lists are better. I created a simple suggestion on how we could combine these two worlds in a not UML standards chart:

I would be very happy to develop something like this for and with the community.

I would suggest using Kat’s approach too! That’s what I’ve been doing with the awesome-weekly-robotics. Even though I don’t have a defined criteria I try to feature projects that are open source and of high quality.

Thanks @Tobias and @Katherine_Scott for all the link aggregation you are doing - I often check your work while working on the newsletter.

Conceptually I like it. I think the biggest challenge is building an actual community around it. It’s a lot of work and there is the chicken and egg problem you normally get in social networks (users are not using the network because there is too few users). From my experience it’s very difficult to get people engaged, but maybe that’s because a newsletter is usually a one-way method of communication.

I think the easiest way of pulling off your UML could be to create a dedicated subreddit connected to some automation tools. That could be a relatively easy proof of concept that you could look into porting into something proprietary later on.

We could test the concept here is this community. I think that we will find the critical mass if we join our efforts and channels together with @Katherine_Scott and @fkromer. I can create you a proof-of-concept up to the raw automatically generated diff list of new URL (projects). At the moment I’m heavily working on another open source projects with quite similar tooling. After that I can create you the PoC in some days in a public repository so that we include all requirements. Since I’m unemployed at the moment I would love to work on that. It could also be supported by the protontypes organisation we are currently starting.

The web technology part that comes with the voting is something I have no clue about but my friends at Woost should be able to provide that in days.