-
Notifications
You must be signed in to change notification settings - Fork 960
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
Allow specification of controller names for trajectories #1832
Conversation
Thanks for helping in improving MoveIt and open source robotics! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This work was done under my supervision to expose controller selection for MTC.
I generally approve this, with some minor comments.
moveit_ros/planning/plan_execution/include/moveit/plan_execution/plan_representation.h
Outdated
Show resolved
Hide resolved
moveit_plugins/moveit_fake_controller_manager/src/moveit_fake_controller_manager.cpp
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1 after question is addressed
@@ -262,12 +268,9 @@ class MoveItFakeControllerManager : public moveit_controller_manager::MoveItCont | |||
* Controllers are all active and default. | |||
*/ | |||
moveit_controller_manager::MoveItControllerManager::ControllerState | |||
getControllerState(const std::string& /*name*/) override |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't the same be implemented for the SimpleControllerManager?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably. @llach, could you provide the same implementation for SimpleControllerManager as well?
I suggest to split this PR into two separate commits then:
- forwarding the controller set
- fixing FakeControllerManager and SimpleControllerManager to consider the config
default
So, Luca, please cleanup the commit history by appropriately squashing your changes.
@llach, could you please squash my fixup, so that we can rebase-merge this PR? Thanks. |
Done! |
Codecov Report
@@ Coverage Diff @@
## master #1832 +/- ##
==========================================
- Coverage 48.5% 48.47% -0.04%
==========================================
Files 298 298
Lines 23302 23307 +5
==========================================
- Hits 11302 11297 -5
- Misses 12000 12010 +10
Continue to review full report at Codecov.
|
- ExecutableTrajectory has a new member controller_names_ - PlanExecution includes that list when pushing trajctory parts to the TrajectoryExecutionManager
When reading controller configurations, "default" is ignored as opposed to what is currently written in the documentation. MoveIt{Fake|Simple}ControllerManager now maintains map of controller name and ControllerState where "default" is initialized as "false" or whatever is given in the configuration. MoveIt{Fake|Simple}ControllerManager::getControllerState() now returns the state that is held in that map instead of a default one.
Congrats on getting your first MoveIt pull request merged and improving open source robotics! |
…e Parameterization (moveit#1832) * add velocity and accelerations scaling when using custom limits for time parameterization * add scaling when passing in vecotor of joint-limits * add function descriptions * add verifyScalingFactor helper function * make map const * address feedback * add comment Co-authored-by: Michael Wiznitzer <[email protected]>
Description
This PR adds a list of controller names to
ExecutableTrajectory
which is passed to theTrajectoryExecutionManager
(TEM) inPlanExecution::executeAndMonitor()
. This allows users to specify which controllers should execute a certain trajectory (or only a part of it). The TEM already had the ability to manage different controllers for different trajectory parts, it just was not used before.Additonally, the
FakeControllerManager
now reads thedefault
parameter from thecontroller_list
on the param server and initializes theControllerState
accordingly. Before, eachControllerState
haddefault_
andactive_
set totrue
which lead the TEM's controller selection mechanism to choose any controller when no explicit controller name was given.The documentation mentions this parameter, but neither SimpleControllerManager nor FakeControllerManager use it.
When I did these changes, I stumbled upon comments hinting that controller switching was possible or discontinued. Someone with a better overview of MoveIt should probably decide whether it okay to allow it again.
Checklist