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

Implement Time Features in rclpy #186

Open
tfoote opened this Issue Apr 26, 2018 · 5 comments

Comments

Projects
None yet
8 participants
@tfoote
Copy link
Contributor

tfoote commented Apr 26, 2018

This ticket is to track rclpy specific time impelementation requirements

  • implement a Clock on top of rcl implementation: #209
  • implement a TimeSource to implement the ROS2 time design: #210
    • use parameters for use_sim_time when now that parameters are available in rclpy. #240
    • clock jump callbacks: #222
  • upgrade Timer to use a Clock on top of rcl implementation
    • functionality using rcl clocks: #211
    • let users specify the clock to use: update this TODO
  • Implement a Rate method using the clock on top of rcl implementation

@tfoote tfoote added the enhancement label Apr 26, 2018

@tfoote tfoote referenced this issue Apr 26, 2018

Open

Create an equivalent to ros::Time #178

5 of 7 tasks complete
@Nickolaim

This comment has been minimized.

Copy link
Contributor

Nickolaim commented May 11, 2018

I can take this item if nobody is looking at it yet.

@tfoote

This comment has been minimized.

Copy link
Contributor

tfoote commented May 15, 2018

I don't think anyone is actively working on this. If you'd like to start work on the clock, timer and rate that would be feasible. The time source is blocked on the availability of parameters. If you'd like to pick it up I'd suggest creating a separate ticket for one of the smaller parts to sketch out how you're going to approach it to get feedback before you jump in and implement it.

@Nickolaim Nickolaim referenced this issue May 31, 2018

Closed

Clock class #189

@sloretz sloretz referenced this issue Jul 10, 2018

Open

Functionality around time #530

0 of 7 tasks complete
@dhood

This comment has been minimized.

Copy link
Member

dhood commented Jul 16, 2018

Here's some additional detail about the steps that would be required.

  • Time class wrapping rcl types (rcl_time_point, rcl_duration) and functions (rcl_difference_times, rcl_get_time_now). Conversions to/from builtin_interfaces msg type.
  • Clock class wrapping rcl's rcl_clock_t, exposing get_now; Node has a clock; demos using node.now() if appropriate.
  • TimeSource wrapping rcl; implementation of ROS time support: A node is used to create a TimeSource of "ROS time" (subscription to /clock, use_sim_time support by some means), node's clock is managed by the TimeSource.
  • Time jump types (TimeJump, JumpThreshold) and logic moved from rclcpp to rcl, wrapped in python. Jump handlers in python.
  • Timer using specific Clock (rclpy Timer currently wraps an rcl timer that rcl_wait uses) in a similar manner to what will be done for rclcpp.
  • Addition of Rate in a similar manner to what will be done for rclcpp.
@stonier

This comment has been minimized.

Copy link

stonier commented Oct 30, 2018

Another one for the list, oneshot timers?

@dirk-thomas

This comment has been minimized.

Copy link
Member

dirk-thomas commented Oct 30, 2018

A oneshot timer should be straight forward to implement on to of regular timers by cancelling the timer in the first callback.

Please consider to contribute a pull request for this feature.

@stonier stonier referenced this issue Oct 30, 2018

Open

ROS2 task list #43

8 of 35 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment