Aggiunto messaggio shutdown del nodo

This commit is contained in:
2019-11-04 11:12:43 +01:00
parent 9b26f1979e
commit 2e0361d108
6 changed files with 45 additions and 30 deletions

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.9.1, 2019-10-30T12:20:28. --> <!-- Written by QtCreator 4.9.1, 2019-11-04T11:07:27. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
@@ -124,7 +124,7 @@
<value type="QString">ROS_PACKAGE_PATH=/home/emanuele/Documents/GestioneMacchine/Robot_Incollaggio/Software/roboglue_ros_ws/src:/opt/ros/kinetic/share</value> <value type="QString">ROS_PACKAGE_PATH=/home/emanuele/Documents/GestioneMacchine/Robot_Incollaggio/Software/roboglue_ros_ws/src:/opt/ros/kinetic/share</value>
<value type="QString">ROS_ROOT=/opt/ros/kinetic/share/ros</value> <value type="QString">ROS_ROOT=/opt/ros/kinetic/share/ros</value>
<value type="QString">ROS_VERSION=1</value> <value type="QString">ROS_VERSION=1</value>
<value type="QString">SHLVL=528</value> <value type="QString">SHLVL=608</value>
<value type="QString">TERM=xterm</value> <value type="QString">TERM=xterm</value>
<value type="QString">_=/usr/bin/env</value> <value type="QString">_=/usr/bin/env</value>
</valuelist> </valuelist>

View File

@@ -52,7 +52,7 @@ typedef struct {
ROS_topics ros_topics; ROS_topics ros_topics;
int loopRate, msgBufferSize; int loopRate, msgBufferSize;
std::string param_ns; std::string param_ns;
std_msgs::String startupMsg; std_msgs::String startupMsg, shutdownMsg;
} COMMON_parameters; } COMMON_parameters;
///////// AUX DATA STORAGE /////////////// ///////// AUX DATA STORAGE ///////////////
@@ -109,6 +109,22 @@ typedef struct {
double joint_jump_tresh; double joint_jump_tresh;
} robotData; } robotData;
///////// FILE DATA STORAGE /////////////
typedef struct {
nlohmann::json* metaFile = nullptr;
rapidcsv::Document* dataFile = nullptr;
std::string meta_dir_name;
std::string data_dir_name;
std::string meta_template_name;
std::string data_template_name;
std::string meta_ext;
std::string data_ext;
std::vector<pointRecord>* recordVect;
std::vector<pointRecord>* playVect;
} fileData;
// posizione degli elementi nella riga del csv
enum VPOS {X,Y,Z,RX,RY,RZ,DT,DS,VMAX};
typedef struct { typedef struct {
mvt::MoveItVisualToolsPtr vtools; mvt::MoveItVisualToolsPtr vtools;
} rvizData; } rvizData;
@@ -116,6 +132,9 @@ typedef struct {
///////// LOAD COMMON ROS TOPICS AND PARAMETERS ///////////////////// ///////// LOAD COMMON ROS TOPICS AND PARAMETERS /////////////////////
bool loadCommonParameters(ros::NodeHandle*, COMMON_parameters*); bool loadCommonParameters(ros::NodeHandle*, COMMON_parameters*);
void declareStartup(publisherMap*, COMMON_parameters*);
void declareShutdown(publisherMap*, COMMON_parameters*);
geometry_msgs::TwistStamped jstr2Twist(nlohmann::json); geometry_msgs::TwistStamped jstr2Twist(nlohmann::json);
trajectory_msgs::JointTrajectory jstr2Joint(nlohmann::json); trajectory_msgs::JointTrajectory jstr2Joint(nlohmann::json);

View File

@@ -276,9 +276,7 @@ int main(int argc, char **argv) {
while (ros::ok() && is.isRunning) { while (ros::ok() && is.isRunning) {
if (startCycle){ if (startCycle){
startCycle = false; startCycle = false;
common_par.startupMsg.data = common_par.startupMsg.data + ros::this_node::getName(); declareStartup(&publishers, &common_par);
ROS_DEBUG("StartupMessage: %s", common_par.startupMsg.data.c_str());
publishers[interface_pub.getTopic()]->publish(common_par.startupMsg);
ros::spinOnce(); ros::spinOnce();
} }
ROS_DEBUG_ONCE("Follower Node Looping"); ROS_DEBUG_ONCE("Follower Node Looping");
@@ -286,6 +284,7 @@ int main(int argc, char **argv) {
loop_rate.sleep(); loop_rate.sleep();
} }
////////////////////////////////////////////////////// //////////////////////////////////////////////////////
declareShutdown(&publishers, &common_par);
return 0; return 0;
} }
//////////////////////////////////////// ////////////////////////////////////////

View File

@@ -33,7 +33,7 @@
che non si incappi in configurazioni instabili. che non si incappi in configurazioni instabili.
20190708 - Implementazione funzioni di visualizzazione del percorso e pulizia dello schermo prima 20190708 - Implementazione funzioni di visualizzazione del percorso e pulizia dello schermo prima
dell'esecuzione del file. dell'esecuzione del file.
20191029 - Spostata la documentazione suG GIT 20191029 - Spostata la documentazione su GIT
*/ */
////////// ROS INCLUDES ///////////// ////////// ROS INCLUDES /////////////
#include "ros/ros.h" #include "ros/ros.h"
@@ -43,22 +43,9 @@
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
typedef struct { ////////////////////////////////////////////
nlohmann::json* metaFile = nullptr; ///////// FUNCTION DECLARATIONS ///////////
rapidcsv::Document* dataFile = nullptr; //////////////////////////////////////////
std::string meta_dir_name;
std::string data_dir_name;
std::string meta_template_name;
std::string data_template_name;
std::string meta_ext;
std::string data_ext;
std::vector<pointRecord>* recordVect;
std::vector<pointRecord>* playVect;
} fileData;
// posizione degli elementi nella riga del csv
enum VPOS {X,Y,Z,RX,RY,RZ,DT,DS,VMAX};
bool openFile(internalState* is, fileData* fd, nlohmann::json meta); bool openFile(internalState* is, fileData* fd, nlohmann::json meta);
bool closeFile(internalState* is, fileData* fd); bool closeFile(internalState* is, fileData* fd);
@@ -331,9 +318,7 @@ int main(int argc, char **argv) {
rviz_data.vtools->loadRemoteControl(); rviz_data.vtools->loadRemoteControl();
rviz_data.vtools->deleteAllMarkers(); rviz_data.vtools->deleteAllMarkers();
rviz_data.vtools->trigger(); rviz_data.vtools->trigger();
common_par.startupMsg.data = common_par.startupMsg.data + ros::this_node::getName(); declareStartup(&publishers, &common_par);
ROS_DEBUG("StartupMessage: %s", common_par.startupMsg.data.c_str());
publishers[interface_pub.getTopic()]->publish(common_par.startupMsg);
ros::spinOnce(); ros::spinOnce();
} }
ROS_DEBUG_ONCE("Recorder Node Looping"); ROS_DEBUG_ONCE("Recorder Node Looping");
@@ -445,6 +430,7 @@ int main(int argc, char **argv) {
} }
loop_rate.sleep(); loop_rate.sleep();
} }
declareShutdown(&publishers, &common_par);
return 0; return 0;
} }
//////////////////////////////////////// ////////////////////////////////////////

View File

@@ -172,9 +172,7 @@ int main(int argc, char **argv) {
while (ros::ok()) { while (ros::ok()) {
if (startCycle){ if (startCycle){
startCycle = false; startCycle = false;
common_par.startupMsg.data = common_par.startupMsg.data + ros::this_node::getName(); declareStartup(&publishers, &common_par);
ROS_DEBUG("StartupMessage: %s", common_par.startupMsg.data.c_str());
publishers[interface_pub.getTopic()]->publish(common_par.startupMsg);
ros::spinOnce(); ros::spinOnce();
} }
ROS_DEBUG_ONCE("Relay Node Looping"); ROS_DEBUG_ONCE("Relay Node Looping");
@@ -189,6 +187,6 @@ int main(int argc, char **argv) {
} catch (mqtt::exception &e) { } catch (mqtt::exception &e) {
ROS_DEBUG("Error Disconnecting MQTT: [%s]", e.what()); ROS_DEBUG("Error Disconnecting MQTT: [%s]", e.what());
} }
declareShutdown(&publishers, &common_par);
return 0; return 0;
} }

View File

@@ -17,6 +17,19 @@ bool loadCommonParameters(ros::NodeHandle* nh, COMMON_parameters *p) {
nh->getParam(p->param_ns+"loop_rate", p->loopRate); nh->getParam(p->param_ns+"loop_rate", p->loopRate);
nh->getParam(p->param_ns+"msg_buffer", p->msgBufferSize); nh->getParam(p->param_ns+"msg_buffer", p->msgBufferSize);
nh->getParam(p->param_ns+"startup_msg", p->startupMsg.data); nh->getParam(p->param_ns+"startup_msg", p->startupMsg.data);
nh->getParam(p->param_ns+"shutdown_msg", p->shutdownMsg.data);
}
void declareStartup(publisherMap* publishers, COMMON_parameters* common_par){
common_par->startupMsg.data = common_par->startupMsg.data + ros::this_node::getName();
ROS_DEBUG("StartupMessage: %s", common_par->startupMsg.data.c_str());
publishers->find(common_par->ros_topics.interfacePub)->second->publish(common_par->startupMsg);
}
void declareShutdown(publisherMap* publishers, COMMON_parameters* common_par){
common_par->shutdownMsg.data = common_par->shutdownMsg.data + ros::this_node::getName();
ROS_DEBUG("StartupMessage: %s", common_par->shutdownMsg.data.c_str());
publishers->find(common_par->ros_topics.interfacePub)->second->publish(common_par->shutdownMsg);
} }
geometry_msgs::TwistStamped jstr2Twist(nlohmann::json cval){ geometry_msgs::TwistStamped jstr2Twist(nlohmann::json cval){