@@ -172,7 +172,7 @@ class ActionServer : public rclcpp::Node
172172
173173 action_server_ = rclcpp_action::create_server<Move>(
174174 this ,
175- " /Move " ,
175+ " /move " ,
176176 std::bind (&ActionServer::handle_goal, this , std::placeholders::_1, std::placeholders::_2),
177177 std::bind (&ActionServer::handle_cancel, this , std::placeholders::_1),
178178 std::bind (&ActionServer::handle_accepted, this , std::placeholders::_1));
@@ -430,73 +430,107 @@ class ActionServer : public rclcpp::Node
430430
431431int main (int argc, char ** argv)
432432{
433- // Initialise MAIN NODE:
433+ // ================= INIT =================
434434 rclcpp::init (argc, argv);
435435 auto const logger = rclcpp::get_logger (" MOVE_INTERFACE" );
436436
437- // Obtain ROBOT + END-EFFECTOR + ENVIRONMENT parameters:
437+ // ================= PARAMETERS =================
438438 auto node_PARAM_ROB = std::make_shared<ros2_RobotParam>();
439439 rclcpp::spin_some (node_PARAM_ROB);
440+
440441 auto node_PARAM_EE = std::make_shared<ros2_EEParam>();
441442 rclcpp::spin_some (node_PARAM_EE);
442443
443- // DEFINE -> RobotSPECS + eeSPECS variables:
444- // Robot SPECIFICATIONS:
444+ // ================= LOAD SPECS =================
445445 if (param_ROB != " none" ){
446- std::string pkgPATH_R = ament_index_cpp::get_package_share_directory (" ros2srrc_robots" );
447- std::string PATH_R = pkgPATH_R + " /" + param_ROB + " /config/joint_specifications.yaml" ;
446+ std::string pkgPATH_R =
447+ ament_index_cpp::get_package_share_directory (" ros2srrc_robots" );
448+ std::string PATH_R =
449+ pkgPATH_R + " /" + param_ROB + " /config/joint_specifications.yaml" ;
450+
448451 YAML::Node SPECIFICATIONS_R = YAML::LoadFile (PATH_R);
449- robotSPECS.robot_max = SPECIFICATIONS_R[" Limits" ][" Max" ].as <std::vector<double >>();
450- robotSPECS.robot_min = SPECIFICATIONS_R[" Limits" ][" Min" ].as <std::vector<double >>();
451- };
452- // End-Effector SPECIFICATIONS:
452+
453+ robotSPECS.robot_max =
454+ SPECIFICATIONS_R[" Limits" ][" Max" ].as <std::vector<double >>();
455+ robotSPECS.robot_min =
456+ SPECIFICATIONS_R[" Limits" ][" Min" ].as <std::vector<double >>();
457+ }
458+
453459 if (param_EE != " none" ){
454- std::string pkgPATH = ament_index_cpp::get_package_share_directory (" ros2srrc_endeffectors" );
455- std::string PATH = pkgPATH + " /" + param_EE + " /config/joint_specifications.yaml" ;
460+ std::string pkgPATH =
461+ ament_index_cpp::get_package_share_directory (" ros2srrc_endeffectors" );
462+ std::string PATH =
463+ pkgPATH + " /" + param_EE + " /config/joint_specifications.yaml" ;
464+
456465 YAML::Node SPECIFICATIONS = YAML::LoadFile (PATH);
466+
457467 eeSPECS.ee_max = SPECIFICATIONS[" Limits" ][" Max" ].as <double >();
458468 eeSPECS.ee_min = SPECIFICATIONS[" Limits" ][" Min" ].as <double >();
459- eeSPECS.ee_vector = SPECIFICATIONS[" JointsVector" ].as <std::vector<double >>();
460- };
469+ eeSPECS.ee_vector =
470+ SPECIFICATIONS[" JointsVector" ].as <std::vector<double >>();
471+ }
461472
462- // Launch and spin (EXECUTOR) MoveIt!2 Interface node:
463- auto name = " ros2srrc_move" ;
464- auto const node2 = std::make_shared<rclcpp::Node>(name, rclcpp::NodeOptions ().automatically_declare_parameters_from_overrides (true ));
465- rclcpp::executors::SingleThreadedExecutor executor;
473+ // ================= ACTION SERVER (CLAVE) =================
474+ auto action_server = std::make_shared<ActionServer>();
475+
476+ auto node2 = std::make_shared<rclcpp::Node>(
477+ " moveit_client_node" ,
478+ rclcpp::NodeOptions ()
479+ .automatically_declare_parameters_from_overrides (true )
480+ );
481+
482+ rclcpp::executors::SingleThreadedExecutor executor;
466483 executor.add_node (node2);
467484 std::thread ([&executor]() { executor.spin (); }).detach ();
468485
469- // CREATE -> MoveGroupInterface(s):
486+ // Esperar a que MoveIt publique parámetros
487+ rclcpp::sleep_for (std::chrono::seconds (2 ));
488+
489+
490+ // ================= MOVEIT =================
470491 using moveit::planning_interface::MoveGroupInterface;
471- // 1. ROBOT:
492+
493+ // ROBOT
472494 if (param_ROB != " none" ){
473- auto name = param_ROB + " _arm " ;
474-
475- move_group_interface_ROB = MoveGroupInterface (node2, name );
495+ std::string group_name = " manipulator " ;
496+
497+ move_group_interface_ROB = MoveGroupInterface (node2, group_name );
476498 move_group_interface_ROB.setPlanningPipelineId (" move_group" );
477499
478500 move_group_interface_ROB.setMaxVelocityScalingFactor (1.0 );
479501 move_group_interface_ROB.setMaxAccelerationScalingFactor (1.0 );
480502
481- joint_model_group_ROB = move_group_interface_ROB.getCurrentState ()->getJointModelGroup (name);
482- RCLCPP_INFO (logger, " MoveGroupInterface object created for ROBOT: %s" , param_ROB.c_str ());
503+ joint_model_group_ROB =
504+ move_group_interface_ROB.getCurrentState ()
505+ ->getJointModelGroup (group_name);
506+
507+ RCLCPP_INFO (logger,
508+ " MoveGroupInterface created for ROBOT group: %s" ,
509+ group_name.c_str ());
483510 }
484- // 2. END-EFFECTOR:
511+
512+ // END EFFECTOR
485513 if (param_EE != " none" ){
486514 move_group_interface_EE = MoveGroupInterface (node2, param_EE);
487515 move_group_interface_EE.setPlanningPipelineId (" move_group" );
516+
488517 move_group_interface_EE.setMaxVelocityScalingFactor (1.0 );
489518 move_group_interface_EE.setMaxAccelerationScalingFactor (1.0 );
490- joint_model_group_EE = move_group_interface_EE.getCurrentState ()->getJointModelGroup (param_EE);
491- RCLCPP_INFO (logger, " MoveGroupInterface object created for END-EFFECTOR: %s" , param_EE.c_str ());
519+
520+ joint_model_group_EE =
521+ move_group_interface_EE.getCurrentState ()
522+ ->getJointModelGroup (param_EE);
523+
524+ RCLCPP_INFO (logger,
525+ " MoveGroupInterface created for EE: %s" ,
526+ param_EE.c_str ());
492527 }
493528
494- // CREATE -> PlanningSceneInterface:
529+ // ================= PLANNING SCENE =================
495530 using moveit::planning_interface::PlanningSceneInterface;
496531 auto planning_scene_interface = PlanningSceneInterface ();
497532
498- // Declare and spin ACTION SERVER:
499- auto action_server = std::make_shared<ActionServer>();
533+ // ================= SPIN =================
500534 rclcpp::spin (action_server);
501535
502536 rclcpp::shutdown ();
0 commit comments