Updates on Orocos ROS 1 and 2 integration

Dear community members,

We are happy to announce that we are making a big push forward on Orocos, made possible with the support of the European Union’s Horizon 2020 ROSIN project (www.rosin-project.eu) and Houston Mechatronics (https://www.houstonmechatronics.com/).

The Orocos project came to live almost 20 years ago with the goal to develop a framework for real-time safe interaction between individual software components in a robotics system, and to establish a library of ready-to-use components. The Orocos Real-Time Toolkit (RTT) and Component Library (OCL) is still actively developed and used by research groups and companies to realize their projects. Other projects were added to the Orocos ecosystem, like the Bayesian Filtering Library (BFL) and the Kinematics and Dynamics Library (KDL).

The main objective is to provide a high quality integration of ROS 1 and ROS 2 with Orocos that can be used out of the box by robotics companies developing real-time robotic systems.

The technical objectives are

  • to upgrade the ROS 1 integration with Orocos for smooth interoperation between the core ROS tooling and functionality, and
  • to provide the integration of ROS 2 with Orocos in order to communicate data between both frameworks in a real-time safe way.

Moreover we intend to provide this integration as open-source software freely available to the community, to document the software following the best practices established in the ROS community, and provide examples and tutorials on its use.

Development is already ongoing. A short overview on the status:

  • Finalizing the release of the Orocos Toolchain 2.10 into active ROS 1 and ROS 2 distributions (orocos-toolchain/orocos_toolchain#18)

  • Orocos - ROS 1 integration recent updates (rtt_ros_integration)

    • Generalized support for ROS service calls using real-time safe Orocos operation callers and providing ROS services that execute as Orocos operations in a real-time context, e.g. by adapting std_srvs/Empty or custom user-types to the signature of the respective operation
    • There are many ideas on how to improve and the existing rtt_ros_integration packages and integrate Orocos application with ROS deployments more smoothly. Most new work will be taken up over summer.
  • We are about to conclude the new Orocos - ROS 2 integration which can be found here: https://github.com/orocos/rtt_ros2_integration

    • RTT typekit generation from ROS 2 interface packages (messages, services and actions)
    • native ROS 2 transport to connect ports to ROS 2 publishers and subscribers (rtt_ros2_topics)
    • bridge ROS 2 services to RTT operations (rtt_ros2_services)
    • read/write ROS 2 parameters from an RTT service (rtt_ros2_params)
    • Unit test coverage for core functionality
    • Setup and integration with continuous integration tools (ROS-I CI)
  • After the first functional ROS 2 integration is ready and if time allows us, we would like to address some more advanced topics, for example to

    • adapt the RTT port API for better integration with ROS intra-process publishing, loaned messages and custom allocators,
    • refactor the Orocos package build system based on pkg-config to better integrate with modern CMake and build systems used by the ROS community, like catkin and ament
  • Documentation, quality and community management

    • Reinstated (+ will renew) the orocos.org website and documentation
    • Orocos documentation generated from Markdown documents, maintained in the source repositories
    • We’re collecting all existing documentation, examples and tutorials. We would be more than happy to have you involved to plug the holes!

We are looking forward to your involvement!

Shortly we will be sending more details on how we see the community portal and the technical work, followed by a questionnaire to collect your input and requirements. For now, please use this ROS Discourse topic for questions, comments, or just to express your interest in the topic.

For the technical work, we will use the issue tracker of the GitHub repositories linked above to detail the plans and to discuss.

Stay tuned for more updates!

Best regards,
Johannes and the Intermodalics/Orocos team

18 Likes

Really looking forward to this.

In my opinion OROCOS has always been an awesome project to use stand-alone but also a valuable companion to ROS.

It’s great your work in this FTP will allow users of ROS 2 to benefit from the same symbiosis :robot:

(to avoid seeming partial to this FTP in the ROSin contect: I’ve abstained from voting when this FTP was evaluated by the evaluation committee, the decision to grant this proposal was taken without me)

3 Likes

This is excellent news. I’m glad that this project is moving forward and I’ll be happy to contribute !

1 Like

Dear community members,

As promised a follow up email with our proposal on future Orocos documentation and community portal. We’re happy to hear your suggestions:

New landing page (www.orocos.org)

  • Goals: main landing page, low maintenance
  • Content:
    • General information, announcements of new releases etc.
    • No wiki, forum etc.
    • Link to documentation and source repositories
    • Link to mailing list
    • Link to legacy wiki
  • Comparable example: ros.org

Documentation (docs.orocos.org)

Community interaction

  • Goals: active and engaged community, easy maintenance and management
  • Content: get in contact, ask questions and give answers, ideation
  • Location/tool: Options we are considering and for which we would like your feedback:
    • Continue to use the existing mailing lists hosted on ls.kuleuven.be, with forwardings from orocos-users@orocos.org and orocos-dev@orocos.org? The backend was replaced a few years ago and since then it was not possible to subscribe anymore. That has been fixed now. The current solution still has some drawbacks:

      • Mailing lists are kind of “old fashioned”. We also did not find a way yet to set up a subscription form on the new landing page.
      • It is easily spammed and requires moderation.
      • The archives as-is are not very user friendly, hence are rarely searched or visited.
      • It is unlikely that we can revive the forum on the new landing page, which was connected to the mailing lists as a kind of archive.

      Alternative suggestions are welcome.

    • We ask OSRF to make a category for Orocos on ROS Discourse? This could serve as an alternative to the mailing list.

      • Any objection against this? However, we are not sure how big the overlap of ROS and Orocos communities currently is.
      • For proposing OSRF to create a new category, we would need some people who express interest in participating and leading discussions in the category.
    • Use the issue tracker of a dedicated GitHub repository (e.g. https://github.com/orocos/community) for general questions and announcements, next to the issue boards for individual subprojects. Interested people can start watching the repository to receive email notifications on any new topic and watch/unwatch per issue.

In summary:

Best regards,
Johannes

Dear @johannesmeyer
thanks for all the efforts;

Regarding the site; yes it is better to have a clean and lean website; with pointers to relevant, well organised, resources.
Given the quantity of the material already present, I do not know if the structure of the read-the-docs is sufficient, it looks to me a long document divided into chapters, so a good way for a presenting a single log document, not a collection of documents; I understand that the git managing is very appealing, though.

Regarding the type of documentation: if you want to make it attractive, there is the need for some new documents; I noticed this while preparing a seminar for ATLAS (if interested the slides are here.
In case someone is interested, I am open to reviewing them for the new site, or write down some text.

Regarding the communication, I am old-fashioned, like the mailing lists, but I think that a solution that is searchable and can generate emails if a question with a given tag is asked is probably the best.
I never used ROS discourse before, but I suppose that is possible to target received alert to communication regarding only OROCOS, right? in addition is probably going to boost visibility and convert some ROS user.

Cheers, Gianni.

Thanks for your feedback, @gborghesan, and for sharing your slides.

Yes, you can configure the notification preferences in your Discourse user settings based on categories, users or tags. For categories, you can just start watching them via the bell button at the top right, e.g. here for the ROS-Industrial category.

Cheers,
Johannes

Hi,

A short update:

The Orocos ROS 2 integration is functional now including typekit generation, ROS topic transport and ROS parameter support, but we are working on documentation and examples. Some service names and APIs might still be changed, so it’s not stable yet. Support for ROS 2 services and actions is still pending.

The new entry page for Orocos documentation, docs.orocos.org is online, hosted by ReadTheDocs from https://github.com/orocos/orocos-docs. We are now copying over existing documentation and convert it to reStructuredText, or simply add links to existing documentation and examples as a starting point. You are welcome to contribute or give feedback via GitHub issues or pull requests in that repository. Stay tuned!

Last but not least, we kindly ask you to participate in the following questionnaire on Orocos usage today, such that we can learn about the community and its needs:

Orocos questionnaire 2020

It has been quite silent on mailing lists and GitHub over the last years, but we know from issues and questions being posted and personal emails we occasionally get that there are at least some groups who are using or have been using Orocos (other than KDL), with or without ROS, despite of the outdated information on the web page and hard-to-find documentation. So the questionnaire will hopefully help to get a full picture, to adjust the priorities and to guide decisions like on what platform to use for future Orocos-related discussions and announcements.

Thanks and kind regards,
Johannes

@johannesmeyer I cannot access the questionarre:
image

Fixed. Sorry, and thanks for notifying.
Johannes

Hi @johannesmeyer! Do you have any info on the plan you are following for the integration? I am particularly curious about the BFL. Another person and I think that it could be a good fit for our collaboration to ROS 2’s nav stack, but we could only access it from here, where the last commit is from 4 years ago and the documentation is only available in source files.

Is there any estimation of when will the BFL integration be released? Could we follow the process somewhere (and the most recent version of it, if we were not looking at the right side)?

Hello,
Just to understand:

  1. the Debian packages (for ros1) are currently present up to the kinetic?
  2. which kind of configuration do you suggest for a clean installation? I would like to update my ubuntu to 20.04, but I would also like SOEM to continue working.

Cheers, Gianni.

Hi,

We’re looking at using BFL in ROS2, is there a plan in the somewhat near future to have that released as binaries to the build farm? The goal is to use the PF features as the basis of a new navigation2 localization framework.

We also notice there’s a bunch of private links in the docs. We can’t see the gitlab organization, many of the documents are blocked by a login wall, etc. This makes it quite challenging to try to use, but we’re always up for a challenge :wink: .

There’s no plans to release BFL into ROS 2. As of Noetic release it’s now upstream and the rosdep keys should be used: http://wiki.ros.org/noetic/Migration#Use_Orocos_KDL_and_BFL_rosdep_keys

1 Like

Hi everyone, thank you for taking the time to fill in the survey.

As part of the ROSIN focussed technical project (FTP) Ororos, supported by the European Union Horizon 2020 program, we conveyed a survey of the use and the requirements of Orocos as a follow up of earlier bilateral contacts between Intermodalics and Orocos users. The goal is to understand what part of our community is using both Orocos and ROS for which industrial use-cases and what requirements they have.
The questionnaire was announced through the Orocos mailing list and on ROS-discourse and ran through the summer of 2020. Only 17 responses were received. Given the small number of responses, the timing of the survey during an important holiday period, and the fact that multiple people from the same institution could have responded, we have to be prudent not to generalize the results as representative for the whole Orocos community.

In general the majority of respondents use both Orocos and a ROS 1 LTS version together; they build Orocos from source on an Ubuntu based platform, and prefer to build it this way either using a binary package; they use KDL and rFSM, but not BFL or iTaSC.
Orocos is used in a wide variety of applications on a wide variety of platform types.
The majority of respondents would like better documentation and usage examples.
The key feature that triggered using Orocos is its real-time capabilities, the key requirements are stability and documentation. The lack of documentation [at the time of the survey] is the key bottleneck in using Orocos. Overall the Orocos community is a mature and loyal community with the majority of respondents using Orocos for more than 5 years and planning to continue using it in the future.

1 Like

This thread started with an overview of development actions, I’m happy to announce that most of it has been completed already! I would like to highlight the new centralized documentation on docs.orocos.org and I would like to invite you to contribute additional tutorials, examples or documentation, new or legacy.
You can do that easily through a PR on https://github.com/orocos/orocos-docs.

1 Like

@dvanthienen an issue we’ve run into with your docs (like this page’s link to a getting started guide) are password protected from view on GitLab. There’s a few instances of that through the website that makes it challenging to use.

We were interested in using BFL within ROS2 Navigation2 but ran into that issue and a number of TODOs in the code that didn’t implement capabilities required to do localization particle filtering (eg most of the resampling or non-default features say not implemented). We’re working on some of them but having public facing docs would have been awesome to avoid some of our lack of knowledge on the state of BFL.

Hi Steve, you are right, from the different projects under the Orocos umbrella (https://docs.orocos.org/docs_main/sources.html) our (Intermodalics) main concern are the projects of the ‘Orocos toolchain’. BFL and iTaSC are hosted on the infrastructure of KULeuven to which also we don’t have access. We hope that KULeuven would move/fork the code and documentation of both to github and the centralized documentation? Maybe @gborghesan can help us out here?

Dear Steve,
I contacted the person who had the pages in their personal space. I believe that anyway the documentation is the API (Doxigen generated) and the getting started guide (https://github.com/toeklk/orocos-bayesian-filtering/tree/master/orocos_bfl/docs).
If you download the source, and make all, you should get all the docs that are available. If the above mentioned person confirm that, We could update the links.
@dvanthienen are you hosting also the BFL webpage?

1 Like

Thanks for the source! I forwarded that onto the right people. I think the big thing that I’d want to see is a “TODO list” in the modules of things that are more aspirational than the current state of the project. That way we know some of the pitfalls to avoid before starting (or potentially some designing to enable easier swapping of partially completed features).

I also see multiple repositories for BFL so its hard to tell what the “main” one is or where to target PRs. I’ve seen one on GitLab and another on GitHub. The GitLab one hasn’t been updated in over a decade but looks more official.

Thanks for all your hard work on the docs! I haven’t been “plugged into” the OROCOS community much, but it doesn’t seem like BFL is really in it or gets alot of attention. Should we expect that to be the case moving forward?

Hi @smac, we looked into it and as far as we know the Toeklk version on Github is the most recent one.
Orocos docs PR#16 should fix the links for now and point to the Doxygen generated documentation. We’re in contact with Toeklk to migrate his version to the official Orocos Github organization (after which we’ll update again). Toeklk is doing minimal maintenance work dealing with PRs and checking builds, but he and we are happy to have someone step up for a more involved role.