ros-controls / ros-controls/ros2_controllers

JTC Cancels original and new trajectory when performing trajectory replacement with RT kernel

Open
#1,241 10 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug persistent stale
Dominant language
C++
Stars
834
Forks
530
Avg merge
18h 3m
Merged PRs (30d)
19

Description

Describe the bug
Our application builds a trajectory in real time by appending new points to the end of the trajectory. New points are added every 1.5 seconds, and send over the action interface to the joint trajectory controller. When using a standard kernel (not real-time), everything works as expected, a goal cancelled and a goal accepted message is sent to the client every 1.5 seconds. However, with a RT kernel, the JTC will cancel the old trajectory and the new trajectory. This causes the robot to stop moving until it receives a new trajectory 1.5 seconds later.

To Reproduce
Steps to reproduce the behavior:

  1. Use a rt kernel
  2. send a new trajectory every 1.5 seconds

Expected behavior
The controller will cancel 1 trajectory and accept 1 new trajectory every time a new trajectory is sent.

Screenshots
image
Figure 1. Client side output
image
Figure 2. Server side ouput

The lines of interest are between times 1722870436.911681030 and 1722870441.413748510.

Environment (please complete the following information):

  • OS: 5.15.0-1052-realtime
  • Version: Humble

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 reproducing trajectory replacement with a real-time kernel on ROS 2 Humble, using the reported 1.5-second update interval and comparing client and server output around the listed timestamps. Done means each update cancels one trajectory and accepts one replacement without stopping the robot.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, linux
Domain
operating-systems, robotics
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.