diff --git a/.rosinstall b/.rosinstall index d279436d3..abfb40d37 100644 --- a/.rosinstall +++ b/.rosinstall @@ -1,5 +1,5 @@ -# This file is intended for users who want to build MoveIt from source. -# Used with wstool, users can download source of all packages of MoveIt!. +# This file is intended for users who want to build MTC and its demos from source. +# Using wstool, users can download relevant MTC-related source packages. - git: local-name: moveit_task_constructor uri: https://github.com/ros-planning/moveit_task_constructor.git @@ -12,7 +12,3 @@ local-name: mtc_pour uri: https://github.com/TAMS-Group/mtc_pour.git version: master -- git: - local-name: rosparam-shortcuts - uri: https://github.com/PickNikRobotics/rosparam_shortcuts.git - version: melodic-devel diff --git a/demo/CMakeLists.txt b/demo/CMakeLists.txt index 99c2c0871..a32d2d8af 100644 --- a/demo/CMakeLists.txt +++ b/demo/CMakeLists.txt @@ -7,7 +7,6 @@ find_package(catkin REQUIRED COMPONENTS roscpp moveit_core moveit_task_constructor_core - moveit_visual_tools moveit_ros_planning_interface rosparam_shortcuts ) @@ -20,24 +19,19 @@ include_directories( ${catkin_INCLUDE_DIRS} ) -add_library(${PROJECT_NAME} - src/pick_place_task.cpp -) - -add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -add_executable(${PROJECT_NAME}_moveit_task_constructor_demo src/moveit_task_constructor_demo.cpp) - -set_target_properties(${PROJECT_NAME}_moveit_task_constructor_demo PROPERTIES OUTPUT_NAME moveit_task_constructor_demo PREFIX "") - -add_dependencies(${PROJECT_NAME}_moveit_task_constructor_demo ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) +add_library(${PROJECT_NAME}_lib src/pick_place_task.cpp) +set_target_properties(${PROJECT_NAME}_lib PROPERTIES OUTPUT_NAME moveit_task_constructor_demo_pick_place) +add_dependencies(${PROJECT_NAME}_lib ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) -target_link_libraries(${PROJECT_NAME}_moveit_task_constructor_demo - ${PROJECT_NAME} +add_executable(${PROJECT_NAME}_demo src/moveit_task_constructor_demo.cpp) +target_link_libraries(${PROJECT_NAME}_demo + ${PROJECT_NAME}_lib ${catkin_LIBRARIES} ) +set_target_properties(${PROJECT_NAME}_demo PROPERTIES OUTPUT_NAME moveit_task_constructor_demo) +add_dependencies(${PROJECT_NAME}_demo ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) -install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_moveit_task_constructor_demo +install(TARGETS ${PROJECT_NAME}_lib ${PROJECT_NAME}_demo ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} @@ -46,10 +40,8 @@ install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_moveit_task_constructor_demo install(DIRECTORY include/${PROJECT_NAME}/ DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} FILES_MATCHING PATTERN "*.h" - PATTERN ".svn" EXCLUDE ) -install(FILES - launch/demo.launch +install(DIRECTORY launch config DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} ) diff --git a/demo/config/mtc.rviz b/demo/config/mtc.rviz index e3a9fc5ab..83505a9b4 100644 --- a/demo/config/mtc.rviz +++ b/demo/config/mtc.rviz @@ -5,8 +5,9 @@ Panels: Property Tree Widget: Expanded: - /Motion Planning Tasks1 - Splitter Ratio: 0.7425600290298462 - Tree Height: 270 + - /Motion Planning Tasks1/Markers1 + Splitter Ratio: 0.5393258333206177 + Tree Height: 533 - Class: rviz/Help Name: Help - Class: rviz/Views @@ -14,8 +15,6 @@ Panels: - /Current View1 Name: Views Splitter Ratio: 0.5 - - Class: rviz_visual_tools/RvizVisualToolsGui - Name: RvizVisualToolsGui - Class: moveit_task_constructor/Motion Planning Tasks Global Settings: Task View Settings: @@ -23,17 +22,20 @@ Panels: Name: Motion Planning Tasks Tasks View: property_splitter: - - 87 - - 87 + - 541 + - 0 solution_sorting: column: 0 order: 1 solutions_splitter: - - 302 - - 70 - solutions_view_columns: ~ + - 328 + - 76 + solutions_view_columns: + - 38 + - 0 + - 0 tasks_view_columns: - - 153 + - 250 - 38 - 38 Preferences: @@ -68,6 +70,7 @@ Visualization Manager: Markers: All at once?: false Value: true + approach_object: true Name: Motion Planning Tasks Robot: Fixed Robot Color: 150; 50; 150 @@ -153,7 +156,7 @@ Visualization Manager: State Display Time: 0.05 s Task Solution Topic: /moveit_task_constructor_demo/pick_place_task/solution Tasks: - {} + pick_place_task: 10 Trail Step Size: 1 Value: true Enabled: true @@ -168,35 +171,34 @@ Visualization Manager: Hide Inactive Objects: true - Class: rviz/MoveCamera - Class: rviz/Select - - Class: rviz_visual_tools/KeyTool Value: true Views: Current: Class: rviz/XYOrbit - Distance: 2.827594041824341 + Distance: 1.9269260168075562 Enable Stereo Rendering: Stereo Eye Separation: 0.05999999865889549 Stereo Focal Distance: 1 Swap Stereo Eyes: false Value: false Focal Point: - X: 0.11356700211763382 - Y: 0.10592000186443329 + X: 0.8292451500892639 + Y: -0.2452867180109024 Z: 2.2351800055275817e-7 Focal Shape Fixed Size: true Focal Shape Size: 0.05000000074505806 Invert Z Axis: false Name: Current View Near Clip Distance: 0.009999999776482582 - Pitch: 0.47020357847213745 + Pitch: 0.3197975158691406 Target Frame: panda_link0 Value: XYOrbit (rviz) - Yaw: 6.06496000289917 + Yaw: 6.239960670471191 Saved: ~ Window Geometry: Displays: collapsed: false - Height: 741 + Height: 768 Help: collapsed: false Hide Left Dock: false @@ -205,11 +207,9 @@ Window Geometry: collapsed: false Motion Planning Tasks - Slider: collapsed: false - QMainWindow State: 000000ff00000000fd0000000100000000000001780000028bfc020000000ffb000000100044006900730070006c006100790073010000003d0000019f000000c900fffffffb0000000800480065006c00700000000342000000bb0000006e00fffffffb0000000a00560069006500770073000000026d000000b5000000a400fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e00670100000374000001890000000000000000fb0000002e004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d00200053006c0069006400650072010000026f000000480000000000000000fb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e00670000000294000002410000000000000000fb00000024005200760069007a00560069007300750061006c0054006f006f006c0073004700750069000000027d0000004b0000004100fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e0067010000034f000001fb0000000000000000fb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e0067010000032d000001fb0000000000000000fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb0000003c005400720061006a006500630074006f007200790020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb000000120020002d00200053006c00690064006500720000000000ffffffff0000004100fffffffb0000002a004d006f00740069006f006e00200050006c0061006e006e0069006e00670020005400610073006b007301000001e2000000e6000000e600ffffff000003d80000028b00000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 - RvizVisualToolsGui: - collapsed: false + QMainWindow State: 000000ff00000000fd000000020000000000000166000002a6fc020000000efb000000100044006900730070006c006100790073010000003d000002a6000000c900fffffffb0000000800480065006c00700000000342000000bb0000006e00fffffffb0000000a00560069006500770073000000026d000000b5000000a400fffffffb0000000c00430061006d00650072006100000002ff000001610000000000000000fb0000001e004d006f00740069006f006e00200050006c0061006e006e0069006e00670100000374000001890000000000000000fb0000002e004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d00200053006c0069006400650072010000026f000000480000000000000000fb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e00670000000294000002410000000000000000fb00000024005200760069007a00560069007300750061006c0054006f006f006c0073004700750069000000027d0000004b0000000000000000fb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e0067010000034f000001fb0000000000000000fb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e0067010000032d000001fb0000000000000000fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb0000003c005400720061006a006500630074006f007200790020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb000000120020002d00200053006c00690064006500720000000000ffffffff00000000000000000000000100000198000002a6fc0200000002fb0000002a004d006f00740069006f006e00200050006c0061006e006e0069006e00670020005400610073006b0073010000003d00000254000000e500fffffffb0000003c004d006f00740069006f006e00200050006c0061006e006e0069006e00670020005400610073006b00730020002d00200053006c006900640065007201000002970000004c0000004100ffffff0000028f000002a600000001000000020000000100000002fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 Views: collapsed: false - Width: 1366 - X: 544 - Y: 315 + Width: 1433 + X: 472 + Y: 25 diff --git a/demo/launch/demo.launch b/demo/launch/demo.launch index b7150aa49..d6de926c0 100644 --- a/demo/launch/demo.launch +++ b/demo/launch/demo.launch @@ -18,7 +18,7 @@ - + diff --git a/demo/package.xml b/demo/package.xml index 9a4dcb736..27ef23921 100644 --- a/demo/package.xml +++ b/demo/package.xml @@ -8,15 +8,12 @@ Henning Kayser Henning Kayser - - - BSD catkin moveit_task_constructor_core - moveit_visual_tools moveit_ros_planning_interface moveit_core rosparam_shortcuts + panda_moveit_config diff --git a/demo/src/moveit_task_constructor_demo.cpp b/demo/src/moveit_task_constructor_demo.cpp index 49d2422fd..89442b13d 100644 --- a/demo/src/moveit_task_constructor_demo.cpp +++ b/demo/src/moveit_task_constructor_demo.cpp @@ -57,12 +57,12 @@ moveit_msgs::CollisionObject createTable() { std::string table_name, table_reference_frame; std::vector table_dimensions; geometry_msgs::Pose pose; - std::size_t error = 0; - error += !rosparam_shortcuts::get(LOGNAME, pnh, "table_name", table_name); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "table_reference_frame", table_reference_frame); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "table_dimensions", table_dimensions); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "table_pose", pose); - rosparam_shortcuts::shutdownIfError(LOGNAME, error); + std::size_t errors = 0; + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "table_name", table_name); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "table_reference_frame", table_reference_frame); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "table_dimensions", table_dimensions); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "table_pose", pose); + rosparam_shortcuts::shutdownIfError(LOGNAME, errors); moveit_msgs::CollisionObject object; object.id = table_name; diff --git a/demo/src/pick_place_task.cpp b/demo/src/pick_place_task.cpp index 88d66f06d..6d9452447 100644 --- a/demo/src/pick_place_task.cpp +++ b/demo/src/pick_place_task.cpp @@ -52,34 +52,34 @@ void PickPlaceTask::loadParameters() { ros::NodeHandle pnh("~"); // Planning group properties - size_t error = 0; - error += !rosparam_shortcuts::get(LOGNAME, pnh, "arm_group_name", arm_group_name_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "hand_group_name", hand_group_name_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "eef_name", eef_name_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "hand_frame", hand_frame_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "world_frame", world_frame_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "grasp_frame_transform", grasp_frame_transform_); + size_t errors = 0; + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "arm_group_name", arm_group_name_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "hand_group_name", hand_group_name_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "eef_name", eef_name_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "hand_frame", hand_frame_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "world_frame", world_frame_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "grasp_frame_transform", grasp_frame_transform_); // Predefined pose targets - error += !rosparam_shortcuts::get(LOGNAME, pnh, "hand_open_pose", hand_open_pose_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "hand_close_pose", hand_close_pose_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "arm_home_pose", arm_home_pose_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "hand_open_pose", hand_open_pose_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "hand_close_pose", hand_close_pose_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "arm_home_pose", arm_home_pose_); // Target object - error += !rosparam_shortcuts::get(LOGNAME, pnh, "object_name", object_name_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "object_dimensions", object_dimensions_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "object_reference_frame", object_reference_frame_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "surface_link", surface_link_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "object_name", object_name_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "object_dimensions", object_dimensions_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "object_reference_frame", object_reference_frame_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "surface_link", surface_link_); support_surfaces_ = { surface_link_ }; // Pick/Place metrics - error += !rosparam_shortcuts::get(LOGNAME, pnh, "approach_object_min_dist", approach_object_min_dist_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "approach_object_max_dist", approach_object_max_dist_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "lift_object_min_dist", lift_object_min_dist_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "lift_object_max_dist", lift_object_max_dist_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "place_surface_offset", place_surface_offset_); - error += !rosparam_shortcuts::get(LOGNAME, pnh, "place_pose", place_pose_); - rosparam_shortcuts::shutdownIfError(LOGNAME, error); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "approach_object_min_dist", approach_object_min_dist_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "approach_object_max_dist", approach_object_max_dist_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "lift_object_min_dist", lift_object_min_dist_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "lift_object_max_dist", lift_object_max_dist_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "place_surface_offset", place_surface_offset_); + errors += !rosparam_shortcuts::get(LOGNAME, pnh, "place_pose", place_pose_); + rosparam_shortcuts::shutdownIfError(LOGNAME, errors); } void PickPlaceTask::init() {