Replies: 1 comment
-
I've been exploring how to implement a Motion Sequence stage in MTC, and I've identified some significant integration challenges. Looking at the existing bool MoveTo::compute(..., SubTrajectory& solution, ...) {
// Planning logic that ultimately does:
solution.setTrajectory(robot_trajectory);
} This presents a fundamental mismatch with Pilz's sequence trajectories, which produce multiple trajectories: // Pilz's output structure
namespace pilz_industrial_motion_planner {
using RobotTrajCont = std::vector<robot_trajectory::RobotTrajectoryPtr>;
// ...
RobotTrajCont CommandListManager::solve(...);
} The challenges stem from MTC's architecture being built around producing and connecting individual trajectories, while motion sequences need to handle multiple trajectories as a cohesive unit. Similarly, the planner interface (which is called inside of PlannerInterface::Result PipelinePlanner::plan(..., robot_trajectory::RobotTrajectoryPtr& result, ...) To complicate things, the class SubTrajectory : public SolutionBase {
private:
// single trajectory, not a container
robot_trajectory::RobotTrajectoryConstPtr trajectory_;
}; Based on this analysis, implementing a motion sequence stage would require one of these approaches:
This architectural mismatch suggests that significant modifications to the MTC framework would be necessary for proper integration. Maybe I'm missing something, but unfortunately this does not look be trivial. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I'm following up on our previous discussion about cuMotion from this thread. I have some questions about trajectory planning and would like to verify my understanding.
I'm trying to generate a trajectory plan that follows a spline/bezier curve profile within MTC. During my research, I found the sequence of multiple segments feature in the Pilz Industrial Motion Planner. However, I don't believe this functionality is currently possible within MTC.
My reasoning is based on the following implementation details:
The Pilz sequence creation requires a
moveit_msgs::msg::MotionSequenceRequest
as input (reference)However, MTC stages use
moveit_msgs::MotionPlanRequest
(reference)Is my understanding correct that MTC currently lacks stage types supporting these motion plan types? If so, would adding support for this be feasible? Would creating a custom stage type be a realistic solution? (I'm willing to implement this and submit a PR.)
In the previous thread I mentioned, cuMotion was suggested as an alternative planner, but I have some questions:
I'm having trouble finding resources about the planner's capabilities beyond installation and integration guides. Are there any resources about the types of trajectory paths it supports?
Does cuMotion support spline-like trajectories with similar flexibility to the sequence-of-multiple-segments planning in Pilz?
Are there any example projects that use both MTC and cuMotion together? Even a non-tutorial implementation would be helpful as a starting point.
Thank you for your help!
Beta Was this translation helpful? Give feedback.
All reactions