Closed the-raspberry-pi-guy closed 4 years ago
I am not sure that we should extend the joint position limit matrix. I would instead add extra vectors for velocity limits and acceleration limits. What do you think @VladimirIvan?
I am not sure that we should extend the joint position limit matrix. I would instead add extra vectors for velocity limits and acceleration limits. What do you think @VladimirIvan?
That was Vlad's decision, but can be amended.
Once we update our KinematicTree to quaternions, we will have different sizes of configuration and tangent vectors. It's also not standard in the community and other software to mix position, velocity, and acceleration limits. In a model we want to keep track of (a) configuration (position) limits, (b) velocity limits, (c) acceleration limits [if defined, not always!], and (d) effort limits.
Once we update our KinematicTree to quaternions, we will have different sizes of configuration and tangent vectors. It's also not standard in the community and other software to mix position, velocity, and acceleration limits. In a model we want to keep track of (a) configuration (position) limits, (b) velocity limits, (c) acceleration limits [if defined, not always!], and (d) effort limits.
This makes sense to me though will see @VladimirIvan thoughts to why I implemented it this way.
So what exactly is the consensus on this? Have a new vector with velocity and acceleration limits? Or 2 new vectors? Or keep in the same vector? I won't instantiate acceleration limits by default - so does that mean having them as inf still?
Consensus saves my computer struggling through extra builds ;)
Also, I notice that my PR failed some integration checks - what does this mean exactly? Is this a Kinetic issue? I am developing on Melodic and so unsure how to fix.
get_has_acceleration_limits
, get_acceleration_limits()
, set_acceleration_limits(a_max)
get_effort_limits
In the latest commits, I have made the requested changes. Velocity and acceleration limits are now in separate vectors, acceleration defaults to inf, and has_acceleration_limits defaults to false (and changes to true when they are set using the setter).
ccache was helpful in speeding up my compile times (whole build of EXOTica is 20-30 mins on my PC).
For the formatting @wxmerkt, do you mean run the command given in the PR window: find -name '*.cpp' -o -name '*.h' -o -name '*.hpp' | xargs clang-format-3.9 -style=file -i
. When I run this it runs without error and returns nothing? Or are you referring to something else?
Implemented all of the changes - that should be everything: name changes, checking velocity/acceleration sizes, setting to inf/throwing errors if incorrect, checking for bounds before joint limit reset etc.
Also ran the apply_format script again so this should pass all formatting integration tests.
That should be everything
Removed default values and == true
This PR addresses the fact that there is no way to get velocity/acceleration limits from a URDF using EXOTica. The edits here add this functionality. In detail, the changes I have made are: