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

Several fixes to make it work as a drop in replacement for roscore #5

Merged
merged 6 commits into from
Jul 20, 2024

Conversation

jobafr
Copy link
Contributor

@jobafr jobafr commented Jul 19, 2024

Hi,

thank you for the RiiR :)

I found a few issues / behavior differences from the original roscore implementation and fixed them, so that ros-core-rs can be used as a drop-in replacement.

Things i changed:

  • correct handling of parameter tree queries / editing, especially nested structures
  • correct use of namespaces
  • upgraded the dependency to dxr for a necessary bugfix
  • add a /run_id parameter on startup, using a similar implementation as upstream roscore
  • correct implementation of the SearchParam API call (this was implemented as an alias for GetParam, but it's actually something else and robot_state_publisher needs this)
  • configure dxr-client to use rustls instead of openssl, to support easy cross-compilation from x86_64 to aarch64. I'm not sure whether ros-core-rs even uses the TLS stuff.

While the test coverage is not extensive, we have tested this in our existing robot and so far have not found any more bugs. CPU usage is reduced significantly compared to the upstream roscore implementation in scenarios that put load on roscore, such as repeated querying for parameters. Incidentally, ros-core-rs's logs (with RUST_LOG=ros_core_rs=debug) turned out to be more useful than the log file of the original implementation in locating such bottlenecks and fix the underlying issue (repeated querying of parameters).

@PatWie PatWie merged commit 071784e into PatWie:main Jul 20, 2024
2 checks passed
@PatWie
Copy link
Owner

PatWie commented Jul 20, 2024

That's an awesome contribution. Thank you for your work!!! These things were waiting on my to-do list.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants