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.
-
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