This it the order in which MoveIt Task Constructor was build. It was started back in Feb 27, 2017. More detailed information about MTC could be found in ICRA 2019 publication. Since then have been huge enhancement in it. Here, I would try to summarize(while porting some of them to ros2) steps that were involved in creating MTC. Here for simplicity and clarity I would be excluding many details e.g. indicating only the point when any main file or node was included first time and ignoring bug fixes, merge commits to keep it short. Lets roll in:
- Creating a rough layout of task and subtask class.
- Added first subtask i.e subtask::CurrentState
- As the gripper required a MoveGroupInterface class, I then ported the move_group package.
- Later ported move_group_inferface package and solved non-matching function errors(#179) by making appropriate modifications.
- Added gripper subtask and their relevant function like compute etc.
- Created draft of subtask::GenerateGraspPose
- Improved GenerateGraspPose subtask by adding time management, multiple IK solutions, check collisions, angle delta and grasp offset.
- Then ported planning_scene_interface to add objects in the planning scene.
- Creating a test_gen_grasp_pose and tested the working of subtask::GenerateGraspPose class.
- Added first implementation of cartesian_position_motion
- Improved gripper subtask by allowing collisions with grasped objects
- Then tried improving cartesian_position_motion by adding beginning and end inference but later encountered an issue(#180).
- Now I started porting cartesian_interpolator.h
- split up build into subfolders for tests/demos
- src/subtask/move.cpp
- Add debug file i.e src/debug.cpp
- Add storage file i.e src/storage.cpp
- Add container file i.e src/container.cpp(only serial at this moment)
- src (Structure so far)
- task.cpp
- stage.cpp
- debug.cpp
- container.cpp
- Demo
- CMakeList.txt
- plan_pick_ur5.cpp
- Test
- CMakeList.txt
- test_current_state.cpp
- Subtask
- CMakeList.txt
- Current_state.cpp
- Parallel container
- Add introspection msg & srv
- MTC (Structure so far)
- msg
- Stage.msg
- Task.msg
- Solution.msg
- srv
- GetInterfaceState.srv
- GetSolution.srv
- msg
- Add src/introspection_publisher.cpp(publish task.msg) to introspect InferfaceState and solution trajectory(moveit_msgs/DisplayTrajectory)
- Add msg/SubSolution.msg, msg/SubTrajectory.msg
- Deleted debug.cpp and merged to ==> introspection.cpp
- task panel: Added plugin MTC/task_panel_rviz_plugin_description.xml MTC/src/test/test_task_model.cpp
- MTC/visualization (Structure so far)
- CMakeLists.txt
- Task_panel
- CMakeLists.txt
- Mainloop_processing.cpp & .h
- stage_wrapper.cpp & .h
- task_model.cpp & .h
- task_panel.cpp & .h & .ui
- Add task_solution_rviz_plugin_description.xml
- Copied from moveit and added in MTC/visualization(this)
- Task_solution_display
- Visualization_tools
- src
- Task_solution_panel.cpp
- Task_solution_visualization.cpp
- src
- Merged task_panel and Task_solution_display and created motion_planning_task. Also merged both plugin and name motion_planning_tasks_rviz_plugin_description.xml
- Add new file and deleted some old files in visualization/motion_planning_tasks/
- Run unittest: add_rostest_gtest(xyz test_task_model.launch test_task_model.cpp)
- Divided task.msg and stages.msg into two. I.e TaskDescription.msg & Task.Statistics.msg and removed GetInterfaceState.srv
- Add visualization/visualization_tools/src/display_solution.cpp
- split repo into different ROS packages: msgs, core, visualization(here)
- MTC (Structure so far)
- Core
- Cmakelist
- Src
- task.cpp, stage.cpp etc.
- Stage_plugin
- Demo
- Test, etc.
- Msgs
- Cmakelist
- Msgs
- srv
- Visualization
- Cmakelist
- Motion_planning_tasks
- Visualization_tools
- Rviz_plugin, etc
- Core
- Add .travis.yml
- Created Cmakelist and other files in visualization/motion_planning_tasks/utils folder
- Add core/src/properties.cpp and using them in code for ease insead
- Add visualization/visualization_tools/src/marker_visualization.cpp
- Add MTC/rviz_maker_tools Cmakelist src/marker_creation.cpp
- Add core/src/marker_tools.cpp
- Add core/src/stages/compute_ik.cpp
- Add core/test/test_stage.cpp & .launch
- Add core/test/test_cost_queue.cpp
- Add msgs/msg/Property.msg
- Add visualization/motion_planning_tasks/properties/CMakeLists.txt and other files
- Add core/src/stages/modify_planning_scene.cpp
- Add core/src/stages/fix_collision_objects.cpp
- Add various stages like connect, move_to, move_relative
- Add solver/* i.e planner_interface.cpp, cartesian_path.cpp, pipeline_planner.cpp
- Add stages/fixed_state.cpp
- Add stages like pick.cpp and simple_grasp.cpp
- Add visualization/motion_planning_tasks/utils/icon.cpp
- Add core/test/models.cpp
- Removed various test(gripper, gen_grasp_pose, current_state, plan_cartesian_forward)
- Add generate_pose.cpp stage
- Add core/src/merge.cpp
- Deleted old stages: Move, Gripper, CartesianPositionMotion
- Move core/demo/* to core/test/ and also add new core/test/*.test file here.
- Move core/demo/* to core/test/ and also add new core/test/*.test file here.
- Add core/src/solvers/joint_interpolation.cpp
- Add MTC/capabilities(a move_group capability to execute Task Solutions)
- Cmakelist
- Capabilities_plugin_description.xml
- src/execute_task_solution_capability.cpp
- Add MTC/msgs/action/ExecuteTaskSolution.action
- Add add PredicateFilter stage
- Add visualization/motion_planning_tasks/properties/property_from_yaml.cpp
- Add visualization/motion_planning_tasks/test/test_solution_models.cpp
- Add msgs/msg/SolutionInfo.msg
- Add new stages generate_place_pose
- Add fixed_cartesian_poses.cpp stage
- Introduced .clang-format
- Created demo package for tutorial i.e Added MTC/demo/
- Cmakelist
- launch/demo.launch
- src
- Moveit_task_constructor_demo.cpp
- pick_place_task.cpp
- include/…./pick_place_task.h
- config/panda_config.yaml
- Add src/cartesian.cpp & modular.cpp, pickplace.launch