ros-controls / ros-controls/topic_based_hardware_interfaces

Proposal to Use Real-Time Methods for Data Reading and Writing to Ensure Real-Time Safety

Open
#84 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement persistent stale
Dominant language
C++
Stars
13
Forks
11
Avg merge
5h 11m
Merged PRs (30d)
3

Description

The current project may not fully utilize ROS's real-time safety mechanisms for data reading and writing. In robot control scenarios requiring high real-time performance, non-real-time data operations can lead to system latency and unpredictability.
Proposed Solution
Use RealtimePublisher for Writing Data:
Utilize realtime_tools::RealtimePublisher for publishing data during the hardware interface's write operations
This ensures that message publishing within the real-time loop does not block the real-time thread
Use RealtimeBuffer for Reading Data:
For subscribed topic data, use realtime_tools::RealtimeBuffer to safely transfer data between real-time and non-real-time threads
This prevents data races and ensures data consistency
Expected Benefits
Improved system real-time performance and determinism
Reduced latency and jitter caused by non-real-time operations
Enhanced system safety and reliability
Consistency with real-time safety practices in other components of the ROS control framework

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the hardware interface write operations and the subscribed-topic data path described in the issue. Read the surrounding ROS control code and compare how other components use RealtimePublisher and RealtimeBuffer. Done means real-time reads and writes avoid blocking operations and data races, with tests or benchmarks demonstrating the expected behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
robotics
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.