diff --git a/darwin_apps/launch/joint_trajectory_client.launch b/darwin_apps/launch/joint_trajectory_client.launch index ebbd503abf45ce24f7be35a7f986651fea07a9b9..839e8e3ccb21727bf7f1316a062c701ca2d94453 100644 --- a/darwin_apps/launch/joint_trajectory_client.launch +++ b/darwin_apps/launch/joint_trajectory_client.launch @@ -12,10 +12,12 @@ type="joints_client" output="screen" ns="/darwin"> - <remap from="/darwin/joint_trajectory" + <remap from="/darwin/joints_client/joint_trajectory/joint_trajectory_action" to="/darwin/robot/joint_trajectory"/> - <remap from="/darwin/joints_client/set_servo_modules" + <remap from="/darwin/joints_client/joint_trajectory/set_servo_modules" to="/darwin/robot/set_servo_modules"/> + <remap from="/darwin/joints_client/joint_trajectory/joint_state" + to="/darwin/robot/joint_state"/> </node> <!-- launch dynamic reconfigure --> @@ -24,3 +26,4 @@ </launch> + diff --git a/darwin_driver/src/darwin_driver.cpp b/darwin_driver/src/darwin_driver.cpp index 57f86e396718df795096daf6e0aa89ae5a1950dd..c73ae06e2454ad1d861e6a768b4489c85d9e5a02 100644 --- a/darwin_driver/src/darwin_driver.cpp +++ b/darwin_driver/src/darwin_driver.cpp @@ -80,12 +80,12 @@ bool DarwinDriver::startDriver(void) if(!this->darwin->mm_is_running()) this->darwin->mm_start(); // move the robot to the walk ready position - ROS_INFO("Moving to the walk ready position ..."); - this->darwin->action_load_page(WALK_READY); - this->darwin->action_start(); - while(this->darwin->action_is_page_running()) - usleep(100000); - ROS_INFO("Robot at the walk ready position"); +// ROS_INFO("Moving to the walk ready position ..."); +// this->darwin->action_load_page(WALK_READY); +// this->darwin->action_start(); +// while(this->darwin->action_is_page_running()) +// usleep(100000); +// ROS_INFO("Robot at the walk ready position"); // calibrate the gyro and and enable balancing this->darwin->imu_start(); if(this->darwin->imu_is_accel_detected()) diff --git a/sm_qr_search/CMakeLists.txt b/sm_qr_search/CMakeLists.txt index 216f38856af7bf3273f272af82c65cf0521f76df..38fe668e76acffb043985e2aa5370d6ebcb6e09e 100644 --- a/sm_qr_search/CMakeLists.txt +++ b/sm_qr_search/CMakeLists.txt @@ -6,7 +6,7 @@ find_package(catkin REQUIRED) # ******************************************************************** # Add catkin additional components here # ******************************************************************** -find_package(catkin REQUIRED COMPONENTS iri_base_algorithm nav_msgs geometry_msgs trajectory_msgs control_msgs humanoid_common_msgs actionlib sensor_msgs iri_ros_tools tf) +find_package(catkin REQUIRED COMPONENTS iri_base_algorithm nav_msgs geometry_msgs trajectory_msgs control_msgs humanoid_common_msgs actionlib sensor_msgs iri_ros_tools tf humanoid_modules) ## System dependencies are found with CMake's conventions # find_package(Boost REQUIRED COMPONENTS system) @@ -60,7 +60,7 @@ catkin_package( # ******************************************************************** # Add ROS and IRI ROS run time dependencies # ******************************************************************** - CATKIN_DEPENDS iri_base_algorithm nav_msgs geometry_msgs trajectory_msgs control_msgs humanoid_common_msgs actionlib sensor_msgs iri_ros_tools tf + CATKIN_DEPENDS iri_base_algorithm nav_msgs geometry_msgs trajectory_msgs control_msgs humanoid_common_msgs actionlib sensor_msgs iri_ros_tools tf humanoid_modules # ******************************************************************** # Add system and labrobotica run time dependencies here # ******************************************************************** diff --git a/sm_qr_search/include/sm_qr_search_alg_node.h b/sm_qr_search/include/sm_qr_search_alg_node.h index 33b9fb642ef0d199c9d30644248c7ad95fb94dcf..78f4e36f069d671f8a66be0440ed5c78166dbe16 100644 --- a/sm_qr_search/include/sm_qr_search_alg_node.h +++ b/sm_qr_search/include/sm_qr_search_alg_node.h @@ -48,8 +48,12 @@ #include <actionlib/client/terminal_state.h> #include <humanoid_common_msgs/humanoid_follow_targetAction.h> +//MODULES +#include <humanoid_modules/joints_module.h> + + //states -typedef enum {IDLE, POS_INIT, SEARCH, TRACK_QR, ROTATE, WAIT_ROTATE} States; +typedef enum {IDLE, START, SEARCH, TRACK_QR, ROTATE, WAIT_ROTATE} States; /** * \brief IRI ROS Specific Algorithm Class @@ -99,12 +103,12 @@ class SmQrSearchAlgNode : public algorithm_base::IriBaseAlgorithm<SmQrSearchAlgo // [action server attributes] // [action client attributes] - actionlib::SimpleActionClient<control_msgs::JointTrajectoryAction> joint_trajectory_client_; - control_msgs::JointTrajectoryGoal joint_trajectory_goal_; - bool joint_trajectoryMakeActionRequest(); - void joint_trajectoryDone(const actionlib::SimpleClientGoalState& state, const control_msgs::JointTrajectoryResultConstPtr& result); - void joint_trajectoryActive(); - void joint_trajectoryFeedback(const control_msgs::JointTrajectoryFeedbackConstPtr& feedback); +// actionlib::SimpleActionClient<control_msgs::JointTrajectoryAction> joint_trajectory_client_; +// control_msgs::JointTrajectoryGoal joint_trajectory_goal_; +// bool joint_trajectoryMakeActionRequest(); +// void joint_trajectoryDone(const actionlib::SimpleClientGoalState& state, const control_msgs::JointTrajectoryResultConstPtr& result); +// void joint_trajectoryActive(); +// void joint_trajectoryFeedback(const control_msgs::JointTrajectoryFeedbackConstPtr& feedback); actionlib::SimpleActionClient<humanoid_common_msgs::humanoid_follow_targetAction> head_follow_target_client_; humanoid_common_msgs::humanoid_follow_targetGoal head_follow_target_goal_; @@ -138,6 +142,18 @@ class SmQrSearchAlgNode : public algorithm_base::IriBaseAlgorithm<SmQrSearchAlgo CROSWatchdog watchdog_qr_lost; //CROSWatchdog watchdog_walk; //CROSWatchdog feedback_watchdog; + /* + unsigned int b[2]; + double a[2]; + std::vector<double> speed; + std::vector<double> accel; //2 elements with value 0.3 + std::vector<double> angle; + std::vector<unsigned int> id; + */ + ///JOINTS MODULE + CJointsModule joints_trajectory_module; + std::vector<double> angle_feedback; + /** * \brief config variable diff --git a/sm_qr_search/package.xml b/sm_qr_search/package.xml index 3f573e4fe30f930c160a701baca0ddaca1561582..0af94b8067932d9d2483adc7234cb5e75b19f0cb 100644 --- a/sm_qr_search/package.xml +++ b/sm_qr_search/package.xml @@ -50,6 +50,7 @@ <build_depend>sensor_msgs</build_depend> <build_depend>iri_ros_tools</build_depend> <build_depend>tf</build_depend> + <build_depend>humanoid_modules</build_depend> <run_depend>iri_base_algorithm</run_depend> <run_depend>nav_msgs</run_depend> <run_depend>geometry_msgs</run_depend> @@ -60,6 +61,7 @@ <run_depend>sensor_msgs</run_depend> <run_depend>iri_ros_tools</run_depend> <run_depend>tf</run_depend> + <run_depend>humanoid_modules</run_depend> <!-- The export tag contains other, unspecified, tags --> diff --git a/sm_qr_search/sm_qr_search.launch b/sm_qr_search/sm_qr_search.launch index e62af4d123b4a0062bf44b9d532e906923d74341..dffbf1eaef7d26a34e339ffb2643c847937a9e3f 100644 --- a/sm_qr_search/sm_qr_search.launch +++ b/sm_qr_search/sm_qr_search.launch @@ -41,6 +41,8 @@ to="/darwin/robot/cmd_vel"/> <remap from="/darwin/sm_qr_search/set_walk_params" to="/darwin/robot/set_walk_params"/> + <remap from="/darwin/sm_qr_search/joint_trajectory/set_servo_modules" + to="/darwin/robot/set_servo_modules"/> <remap from="/darwin/sm_qr_search/set_servo_modules" to="/darwin/robot/set_servo_modules"/> <remap from="/darwin/head_follow_target" @@ -51,7 +53,7 @@ to="/darwin/joint_states"/> <remap from="/darwin/sm_qr_search/qr_pose" to="/qr_detector/qr_pose"/> - <remap from="/darwin/joint_trajectory" + <remap from="/darwin/sm_qr_search/joint_trajectory/joint_trajectory_action" to="/darwin/robot/joint_trajectory"/> </node> diff --git a/sm_qr_search/src/sm_qr_search_alg_node.cpp b/sm_qr_search/src/sm_qr_search_alg_node.cpp index 6ea959bbec09055bf4ad103fcb3eb8802ab1f9f4..cf106bb11941aaa1514276e0de018c3daee16d1d 100644 --- a/sm_qr_search/src/sm_qr_search_alg_node.cpp +++ b/sm_qr_search/src/sm_qr_search_alg_node.cpp @@ -10,6 +10,7 @@ #include "sm_qr_search_alg_node.h" +/* #define NUM_SERVOS 32 // joint names const std::string servo_names[NUM_SERVOS]={std::string("Servo0"), @@ -45,9 +46,11 @@ const std::string servo_names[NUM_SERVOS]={std::string("Servo0"), std::string("Servo30"), std::string("Servo31")}; + */ SmQrSearchAlgNode::SmQrSearchAlgNode(void) : algorithm_base::IriBaseAlgorithm<SmQrSearchAlgorithm>(), - joint_trajectory_client_("joint_trajectory", true), + //joint_trajectory_client_("joint_trajectory", true), + joints_trajectory_module("joint_trajectory"), head_follow_target_client_("head_follow_target", true) { //init class attributes if necessary @@ -101,7 +104,7 @@ SmQrSearchAlgNode::SmQrSearchAlgNode(void) : this->counter=0; - actionlib::SimpleClientGoalState joint_trajectory_state(actionlib::SimpleClientGoalState::PENDING); + //actionlib::SimpleClientGoalState joint_trajectory_state(actionlib::SimpleClientGoalState::PENDING); //head_follow @@ -109,17 +112,24 @@ SmQrSearchAlgNode::SmQrSearchAlgNode(void) : this->head_follow_target_goal_.tilt_range.resize(2); //joint_trajectory - this->joint_trajectory_goal_.trajectory.points.resize(1); - this->joint_trajectory_goal_.trajectory.joint_names.resize(2); - this->joint_trajectory_goal_.trajectory.points[0].positions.resize(2); - this->joint_trajectory_goal_.trajectory.points[0].velocities.resize(2); - this->joint_trajectory_goal_.trajectory.points[0].accelerations.resize(2); - - - //head_target - this->head_target_JointTrajectoryPoint_msg_.positions.resize(2); +// this->joint_trajectory_goal_.trajectory.points.resize(1); +// this->joint_trajectory_goal_.trajectory.joint_names.resize(2); +// this->joint_trajectory_goal_.trajectory.points[0].positions.resize(2); +// this->joint_trajectory_goal_.trajectory.points[0].velocities.resize(2); +// this->joint_trajectory_goal_.trajectory.points[0].accelerations.resize(2); +// +// +// //head_target + this->head_target_JointTrajectoryPoint_msg_.positions.resize(2); //this->head_target_JointTrajectoryPoint_msg_.velocities.resize(2); - + +/* this->b={19,20}; + this->a={-1,0.8}; + this->speed(2,1); + this->accel (2,0.3); //2 elements with value 0.3 + this->angle (a, a + sizeof(a) / sizeof(double) ); + this->id (b, b + sizeof(b) / sizeof(unsigned int) ); + */ } SmQrSearchAlgNode::~SmQrSearchAlgNode(void) @@ -215,7 +225,19 @@ void SmQrSearchAlgNode::mainNodeThread(void) */ - + unsigned int b[2]={19,20}; + double a[2]={-1.5,0.8}; + std::vector<double> speed(2,1); + std::vector<double> accel(2,0.3); //2 elements with value 0.3 + std::vector<double> angle(a, a + sizeof(a) / sizeof(double) ); + std::vector<unsigned int> id(b, b + sizeof(b) / sizeof(unsigned int) ); + +/* unsigned int id[2]={19,20}; + double angle[2]={-1,0.8}; + double speed[2]={1,1}; + double accel[2]={0.3}; + */ + switch(state) { case IDLE: @@ -223,33 +245,44 @@ void SmQrSearchAlgNode::mainNodeThread(void) ROS_INFO("IDLE"); if(new_goal) { - new_goal=false; - //this->next_pan_angle=-1.5; - set_servo_module_head("joints"); //set head servos to joints - joint_trajectory_set_goal(pan_angle_init, tilt_angle_search); - if(joint_trajectory_start_action()) - { - // ROS_INFO("Start Joint trajectory action"); - state=POS_INIT; - } + ROS_INFO("Start"); + new_goal=false; +// set_servo_module_head("joints"); //set head servos to joints +// joint_trajectory_set_goal(pan_angle_init, tilt_angle_search); +// if(joint_trajectory_start_action()) +// { +// // ROS_INFO("Start Joint trajectory action"); +// state=POS_INIT; +// } + if(this->joints_trajectory_module.execute(id,angle,speed,accel)) + //if(this->joints_trajectory_module.get_status()==JOINTS_MODULE_RUNNING) + state=START; + // state=START; } else state=IDLE; break; //Wait joint trajectory to execute - case POS_INIT: - //ROS_INFO("POS_INIT"); - if(executing_trajectory){ + case START: + ROS_INFO("Start Search"); + //if(!this->joints_trajectory_module.is_finished()){ + if(this->joints_trajectory_module.get_status()==JOINTS_MODULE_RUNNING){ ROS_INFO("Going to initial position"); - state=POS_INIT; - }else{ - joint_trajectory_set_goal(pan_angle_end, tilt_angle_search); - if(joint_trajectory_start_action()) - { - ROS_INFO("Start search"); - state=SEARCH; - } + state=START; + + }else{ + angle[0]=1.5; //Change pan to end + if(this->joints_trajectory_module.execute(id,angle,speed,accel)) + state=SEARCH; + + // joint_trajectory_set_goal(pan_angle_end, tilt_angle_search); + // if(joint_trajectory_start_action()) + // { + // ROS_INFO("Start search"); + // state=SEARCH; + //}else + //ROS_INFO("New trajectory canceled"); } break; @@ -258,75 +291,47 @@ void SmQrSearchAlgNode::mainNodeThread(void) ROS_INFO("SEARCH"); if(qr_detected){ ROS_INFO("QR detected"); - this->joint_trajectory_client_.cancelGoal(); + this->joints_trajectory_module.stop(); + //this->joint_trajectory_client_.cancelGoal(); set_servo_module_head("head"); this->tracking=true; - set_head_tracking_goal(this->current_pan_angle, this->current_tilt_angle); + set_head_tracking_goal(this->current_pan_angle, this->current_tilt_angle); + //set_head_tracking_goal(angle_feedback[0], angle_feedback[1]); if(head_follow_targetMakeActionRequest()) { state=TRACK_QR; } }else{ - if(!executing_trajectory){ + if(this->joints_trajectory_module.is_finished()){ ROS_INFO("End of search"); state=IDLE; }else{ - ROS_INFO("current pan angle: %f", this->current_pan_angle); + angle_feedback=this->joints_trajectory_module.get_current_angle(); + //std::cout << "Current pan: " << angle_feedback[0] << std::endl; + //std::cout << "Current tilt: " <<angle_feedback[1] << std::endl; + //ROS_INFO("current pan angle: %f", this->current_pan_angle); } } break; - - /* - case TRACK_QR: - ROS_INFO("TRACK QR"); - if(this->watchdog_qr_lost.is_active()) - //if(!qr_detected) - { - ROS_INFO("QR lost"); - this->tracking=false; - this->head_follow_target_client_.cancelGoal(); - set_servo_module_head("joints"); - joint_trajectory_set_goal(pan_angle_init, tilt_angle_search); - if(joint_trajectory_start_action()) - { - // ROS_INFO("Start Joint trajectory action"); - state=POS_INIT; - } - - } - else if(end) - { - this->end=false; - this->tracking=false; - this->qr_detected=false; - this->head_follow_target_client_.cancelGoal(); - state=IDLE; - } - else - { - counter=0; - state=TRACK_QR; - } - break; -*/ + case TRACK_QR: ROS_INFO("TRACK QR"); - // if(this->watchdog_qr_lost.is_active()) - // if(!qr_detected) - //{ - if(counter==10) + if(this->watchdog_qr_lost.is_active()) { ROS_INFO("QR lost"); this->tracking=false; this->head_follow_target_client_.cancelGoal(); - set_servo_module_head("joints"); - joint_trajectory_set_goal(pan_angle_init, tilt_angle_search); - if(joint_trajectory_start_action()) - { + angle[0]=-1.5; + //this->joints_trajectory_module.execute_goal(19,-1,1,0.3); + if( this->joints_trajectory_module.execute(id, angle, speed, accel)) +// set_servo_module_head("joints"); +// joint_trajectory_set_goal(pan_angle_init, tilt_angle_search); +// if(joint_trajectory_start_action()) +// { // ROS_INFO("Start Joint trajectory action"); - state=POS_INIT; - } + state=START; + // } } //} else if(end) @@ -390,13 +395,13 @@ void SmQrSearchAlgNode::mainNodeThread(void) nav_module->nav_timeout.stop(); // set the error nav_module->state=HANDLE_ERROR; - } + }joint_states else if(this->->feedback_watchdog.is_active()) { ROS_ERROR("NavModule: goal feedback watchdog, %fs", nav_module->config.move_feedback_watchdog); // cancel the current action nav_module->nav_access.exit(); - this->move_base_client->cancelGoal(); + this->move_base_client->cancelGoal();joint_states nav_module->nav_access.enter(); // set the error nav_module->status=NAV_MODULE_FB_WATCHDOG; @@ -465,7 +470,7 @@ void SmQrSearchAlgNode::odom_callback(const nav_msgs::Odometry::ConstPtr& msg) odom_y=msg->pose.pose.position.y; //odom_rot=msg->pose.pose.orientation; odom_rot=tf::getYaw(msg->pose.pose.orientation); - ROS_INFO("Orientacion Odometria: %f", odom_rot); + //ROS_INFO("Orientacion Odometria: %f", odom_rot); //unlock previously blocked shared variables //this->alg_.unlock(); @@ -492,23 +497,26 @@ void SmQrSearchAlgNode::qr_pose_callback(const humanoid_common_msgs::tag_pose_ar if(msg->tags.size()>0) { + ROS_INFO("QR detected"); //qr_detected=msg->tags.size(); qr_detected=true; + //angle_feedback=this->joints_trajectory_module.get_current_angle(); + this->pan_angle=this->current_pan_angle+atan2(-msg->tags[0].position.x,msg->tags[0].position.z); this->tilt_angle=this->current_tilt_angle+atan2(-msg->tags[0].position.y,msg->tags[0].position.z); - //ROS_INFO("Next target pan angle: %f (%f,%f)",this->pan_angle,this->current_pan_angle,atan2(msg->tags[0].position.x,msg->tags[0].position.z)); - //ROS_INFO("Next target tilt angle: %f (%f,%f)",this->tilt_angle,this->current_tilt_angle,atan2(msg->tags[0].position.y,msg->tags[0].position.z)); + ROS_INFO("Next target pan angle: %f (%f,%f)",this->pan_angle,this->current_pan_angle,atan2(msg->tags[0].position.x,msg->tags[0].position.z)); + ROS_INFO("Next target tilt angle: %f (%f,%f)",this->tilt_angle,this->current_tilt_angle,atan2(msg->tags[0].position.y,msg->tags[0].position.z)); if(this->tracking) { send_head_target(pan_angle, tilt_angle); } - // this->watchdog_qr_lost.reset(ros::Duration(5)); + this->watchdog_qr_lost.reset(ros::Duration(5)); counter=0; }else{ - ROS_INFO("QR not detected"); + //ROS_INFO("QR not detected"); qr_detected=false; counter++; @@ -531,7 +539,7 @@ void SmQrSearchAlgNode::qr_pose_mutex_exit(void) { pthread_mutex_unlock(&this->qr_pose_mutex_); } - + //Se utiliza en el joints_module void SmQrSearchAlgNode::joint_states_callback(const sensor_msgs::JointState::ConstPtr& msg) { //ROS_INFO("SmQrSearchAlgNode::joint_states_callback: New Message Received"); @@ -543,6 +551,7 @@ void SmQrSearchAlgNode::joint_states_callback(const sensor_msgs::JointState::Con unsigned int i; + for (i = 0; i < msg->name.size() ; ++i){ if (msg->name[i]=="j_pan"){ this->current_pan_angle=msg->position[i]; @@ -552,6 +561,9 @@ void SmQrSearchAlgNode::joint_states_callback(const sensor_msgs::JointState::Con } } + // ROS_INFO("current pan: %f", current_pan_angle); + // ROS_INFO("current tilt: %f", current_tilt_angle); + //unlock previously blocked shared variables //this->alg_.unlock(); this->joint_states_mutex_exit(); @@ -572,6 +584,7 @@ void SmQrSearchAlgNode::joint_states_mutex_exit(void) /* [service callbacks] */ /* [action callbacks] */ +/* void SmQrSearchAlgNode::joint_trajectoryDone(const actionlib::SimpleClientGoalState& state, const control_msgs::JointTrajectoryResultConstPtr& result) { alg_.lock(); @@ -615,7 +628,7 @@ void SmQrSearchAlgNode::joint_trajectoryFeedback(const control_msgs::JointTrajec } alg_.unlock(); } - +*/ void SmQrSearchAlgNode::head_follow_targetDone(const actionlib::SimpleClientGoalState& state, const humanoid_common_msgs::humanoid_follow_targetResultConstPtr& result) { alg_.lock(); @@ -656,6 +669,7 @@ void SmQrSearchAlgNode::head_follow_targetFeedback(const humanoid_common_msgs::h /* [action requests] */ +/* bool SmQrSearchAlgNode::joint_trajectoryMakeActionRequest() { // IMPORTANT: Please note that all mutex used in the client callback functions @@ -683,7 +697,7 @@ bool SmQrSearchAlgNode::joint_trajectoryMakeActionRequest() return false; } } - +*/ bool SmQrSearchAlgNode::head_follow_targetMakeActionRequest() { // IMPORTANT: Please note that all mutex used in the client callback functions @@ -865,8 +879,8 @@ void SmQrSearchAlgNode::send_head_target(double pan, double tilt) } //Joint trajectory -void SmQrSearchAlgNode::joint_trajectory_set_goal(double pan_position, double tilt_position) -{ +//void SmQrSearchAlgNode::joint_trajectory_set_goal(double pan_position, double tilt_position) +//{ /* this->move_joints_goal_.trajectory.header.seq=0; this->move_joints_goal_.trajectory.header.stamp=ros::Time::now(); this->move_joints_goal_.trajectory.header.frame_id="MP_BODY"; @@ -883,7 +897,7 @@ void SmQrSearchAlgNode::joint_trajectory_set_goal(double pan_position, double ti this->move_joints_goal_.trajectory.points[0].positions[0]=this->current_state.position[18]*180.0/3.14159; this->move_joints_goal_.trajectory.points[0].positions[1]=60.0-15.0*this->n; */ - +/* joint_trajectory_goal_.trajectory.joint_names[0]="j_pan"; joint_trajectory_goal_.trajectory.joint_names[1]="j_tilt"; joint_trajectory_goal_.trajectory.points[0].positions[0]=pan_position; @@ -895,26 +909,27 @@ void SmQrSearchAlgNode::joint_trajectory_set_goal(double pan_position, double ti //ROS_INFO("Set Joint Trajectory GOAL"); } +*/ -bool SmQrSearchAlgNode::joint_trajectory_start_action(void) -{ - if(this->joint_trajectoryMakeActionRequest()) - { - /* joint_trajectory_goal_.trajectory.joint_names.clear(); - joint_trajectory_goal_.trajectory.points[0].positions.clear(); - joint_trajectory_goal_.trajectory.points[0].velocities.clear(); - joint_trajectory_goal_.trajectory.points[0].accelerations.clear(); - */ - ROS_INFO("Sent joint trajectory action request"); - return true; - } - else - { - ROS_INFO("Impossible to make Joint Trajectory action request!"); - return false; - } - -} +// bool SmQrSearchAlgNode::joint_trajectory_start_action(void) +// { +// if(this->joint_trajectoryMakeActionRequest()) +// { +// /* joint_trajectory_goal_.trajectory.joint_names.clear(); +// joint_trajectory_goal_.trajectory.points[0].positions.clear(); +// joint_trajectory_goal_.trajectory.points[0].velocities.clear(); +// joint_trajectory_goal_.trajectory.points[0].accelerations.clear(); +// */ +// ROS_INFO("Sent joint trajectory action request"); +// return true; +// } +// else +// { +// ROS_INFO("Impossible to make Joint Trajectory action request!"); +// return false; +// } +// +// } /* main function */ diff --git a/track_charge_station/launch/sim_track_charge_station.launch b/track_charge_station/launch/sim_track_charge_station.launch index d1f8966687bb307c164b517e611d60249a826b1f..34c2c0c6ce5123f801976cfb666e6e6cc80c1bbc 100644 --- a/track_charge_station/launch/sim_track_charge_station.launch +++ b/track_charge_station/launch/sim_track_charge_station.launch @@ -38,7 +38,7 @@ </node> <!-- <include file="$(find qr_detector)/launch/tracker_darwin.launch"/> --> - +<<< <node pkg="qr_detector" name="qr_detector" type="qr_detector"