Comments (7)
@pantor: what about initialising all fields to something like a quiet NaN, and then checking they have been properly initialised by the user when they are about to be used?
Using a sentinel value could help distinguish between uninitialised and "some random large value".
from ruckig.
Hi @pbeeson!
When creating the InputParameter
instance, not all its members are initialized. In particular, current_position
, target_position
, and the max_<...>
limits need be set explicitly. I mean otherwise the whole position-controlled trajectory generation wouldn't make sense, but I'm also open to initialize them all to zero. Those uninitialized values might explain the non-deterministic output. Can you check that this is not the case here? Otherwise, Ruckig should definitely be deterministic.
from ruckig.
That seems to be a good idea, thanks for your input @gavanderhoorn!
from ruckig.
from ruckig.
I just played around with the code and your hints, but couldn't reproduce something along the lines of your issue. It would be great if you could share a complete example!
Moreover, what output exactly is non-deterministic? Only the OutputParameter
or also the trajectory, e.g. its duration?
from ruckig.
Oh, and just to make sure that it's not as simple as that: If you would apply your code snippet to the example.cpp
, this would change the trajectory between the first and second execution because the input parameter is updated while stepping through the trajectory. This is done in those lines:
input.current_position = output.new_position;
input.current_velocity = output.new_velocity;
input.current_acceleration = output.new_acceleration;
from ruckig.
I tracked this down to an indexing bug in my own code that was generating the data. Weirdly it got past all CI tests, but the tiny randomness in a bad memory lookup was magnified by the Ruckig process. Thanks.
from ruckig.
Related Issues (20)
- The problem encountered when using a class template with Ruckig. HOT 4
- Soft Terminal constrains? HOT 5
- Tutorial plot failure HOT 3
- Strange behaviour on target conditions HOT 1
- Retracement of position HOT 1
- ruckig pypi package for macos mislabeled as universal2 HOT 1
- How to integrate with an existing ros package? HOT 7
- Errors in solving cubic equation of one variable
- Pip install Ruckig fails on Windows 32bit, Py3.6 HOT 5
- ruckig on 32bit python >=3.6 HOT 2
- filter_intermediate_positions documentation missing/lacking HOT 2
- Is there a way to make ruckig GPU acceleration friendly? HOT 2
- Velocity constraint violated and no error thrown HOT 2
- Out of bound access when compiling tests HOT 2
- Integrating Ruckig with ROS2 HOT 1
- Runtime Error on aarch64 System HOT 4
- Acceleration Constrained motion vs jerk constrained motion HOT 2
- Result::ErrorExecutionTimeCalculation -by hualei HOT 4
- Velocity/acceleration/jerk constraints for entire motion (not per DOF) HOT 1
- Ruckig pro HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ruckig.