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

Implement Time Features in rclpy #186

Closed
tfoote opened this issue Apr 26, 2018 · 9 comments
Closed

Implement Time Features in rclpy #186

tfoote opened this issue Apr 26, 2018 · 9 comments

Comments

@tfoote
Copy link
Contributor

@tfoote 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 #419
  • Implement a Rate method using the clock on top of rcl implementation (#443)
@tfoote tfoote mentioned this issue Apr 26, 2018
6 of 7 tasks complete
@Nickolaim
Copy link
Contributor

@Nickolaim Nickolaim commented May 11, 2018

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

@tfoote
Copy link
Contributor Author

@tfoote 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 mentioned this issue May 31, 2018
@sloretz sloretz mentioned this issue Jul 10, 2018
5 of 7 tasks complete
@dhood
Copy link
Member

@dhood 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
Copy link
Contributor

@stonier stonier commented Oct 30, 2018

Another one for the list, oneshot timers?

@dirk-thomas
Copy link
Member

@dirk-thomas dirk-thomas commented Oct 30, 2018

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

Please consider to contribute a pull request for this feature.

@stonier stonier mentioned this issue Oct 30, 2018
12 of 12 tasks complete
@stonier stonier mentioned this issue Feb 5, 2019
0 of 3 tasks complete
@sloretz sloretz removed their assignment Feb 14, 2019
@slessans
Copy link

@slessans slessans commented Jun 8, 2019

@dirk-thomas do you know if anyone took a shot at contributing a simple one shot timer? If not I will give it a try

@dirk-thomas
Copy link
Member

@dirk-thomas dirk-thomas commented Jun 8, 2019

do you know if anyone took a shot at contributing a simple one shot timer?

Not that I am aware of.

If not I will give it a try

That would be great.

@mhpanah
Copy link

@mhpanah mhpanah commented Jul 31, 2019

I'm in need of Rate method to use sim_time. Has Rate method been implemented on rclpy yet? Thanks.

@jacobperron
Copy link
Member

@jacobperron jacobperron commented Aug 21, 2019

I'm in need of Rate method to use sim_time. Has Rate method been implemented on rclpy yet?

Nope. PRs welcome ;)

@sloretz sloretz mentioned this issue Oct 10, 2019
@sloretz sloretz closed this in #443 Oct 14, 2019
@wuffle-ros wuffle-ros bot removed the ready label Oct 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.