ros-controls / ros-controls/topic_based_hardware_interfaces
Proposal to Use Real-Time Methods for Data Reading and Writing to Ensure Real-Time Safety
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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