Skip to content

Implement MTC on fbot_manipulator#1

Open
gadorneles wants to merge 6 commits intomainfrom
feat/mtc_implementation
Open

Implement MTC on fbot_manipulator#1
gadorneles wants to merge 6 commits intomainfrom
feat/mtc_implementation

Conversation

@gadorneles
Copy link
Member

This PR introduces a full MoveIt Task Constructor (MTC) based manipulation pipeline, replacing the previous task primitives with a structure task architecture.

Changes

New Features

  • Manipulation Task Server (manipulation_task_server.cpp): ROS 2 action server that receives ManipulationTask action goals and dispatches to the appropriate MTC task (pick, place, or pick-and-place)
  • MTC Task Classes: Implemented MtcTask, MtcPickTask, MtcPlaceTask, and MtcPickAndPlaceTask with full MTC stage pipelines
  • New Action Definition (ManipulationTask.action): Defined goal/result/feedback interface for the manipulation task server
  • MTC Config (mtc_config.yaml): Added configuration for grasp offsets and MTC planning parameters

Removed

  • Old task_primitives.hpp, tasks/pick_task.*, and tasks/task.hpp replaced by the new MTC structure

Docs

  • Updated README with contributing guidelines and usage documentation

Copy link

@luizlost01 luizlost01 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

for me it's all good, just need to test the points mentioned, and test in the robot computer

stage->setMonitoredStage(attach_object_stage);

auto wrapper = std::make_unique<mtc::stages::ComputeIK>("place pose IK", std::move(stage));
wrapper->setMaxIKSolutions(4);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should add more solution because during testing this is very volatile and has a lot of errors, somewhere between 10
Of course we need to test this on the robot computer to see if there is too much stress, but I think it's ok

stage->setMonitoredStage(current_state);

auto wrapper = std::make_unique<mtc::stages::ComputeIK>("grasp pose IK", std::move(stage));
wrapper->setMaxIKSolutions(2);

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

only 2 is very susceptible to errors, we should probably add more

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants