From 8225f9651ec92ff57f7a1315139f4227978bb0b5 Mon Sep 17 00:00:00 2001 From: beuchatp <beuchatp@control.ee.ethz.ch> Date: Wed, 30 Jan 2019 09:51:30 +0100 Subject: [PATCH] Changes to comments in PPS Client (attempt to make style consistent with controllers), and added Emergency stop button to GUI --- .../GUI_Qt/flyingAgentGUI/flyingagentgui.qrc | 1 + .../flyingAgentGUI/images/emergency_stop.png | Bin 0 -> 6692 bytes .../GUI_Qt/flyingAgentGUI/src/topbanner.cpp | 2 +- pps_ws/src/d_fall_pps/src/nodes/PPSClient.cpp | 109 +++++++++++++----- 4 files changed, 80 insertions(+), 32 deletions(-) create mode 100644 pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/images/emergency_stop.png diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/flyingagentgui.qrc b/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/flyingagentgui.qrc index fd7f30a5..abfa9642 100644 --- a/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/flyingagentgui.qrc +++ b/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/flyingagentgui.qrc @@ -17,5 +17,6 @@ <file>images/flying_state_off.png</file> <file>images/flying_state_unknown.png</file> <file>images/flying_state_unavailable.png</file> + <file>images/emergency_stop.png</file> </qresource> </RCC> \ No newline at end of file diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/images/emergency_stop.png b/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/images/emergency_stop.png new file mode 100644 index 0000000000000000000000000000000000000000..7643f985406c7be73109dbab7cbf9fd00f6d63b4 GIT binary patch literal 6692 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 literal 0 HcmV?d00001 diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/src/topbanner.cpp b/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/src/topbanner.cpp index 60be1432..5f58fcdf 100644 --- a/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/src/topbanner.cpp +++ b/pps_ws/src/d_fall_pps/GUI_Qt/flyingAgentGUI/src/topbanner.cpp @@ -51,7 +51,7 @@ TopBanner::TopBanner(QWidget *parent) : { ui->setupUi(this); (":/images/rf_connected.png"); - QPixmap pixmap(":/images/rf_connected.png"); + QPixmap pixmap(":/images/emergency_stop.png"); QIcon ButtonIcon(pixmap); ui->emergency_stop_button->setText(""); ui->emergency_stop_button->setIcon(ButtonIcon); diff --git a/pps_ws/src/d_fall_pps/src/nodes/PPSClient.cpp b/pps_ws/src/d_fall_pps/src/nodes/PPSClient.cpp index 79bd5ce3..90d259e0 100755 --- a/pps_ws/src/d_fall_pps/src/nodes/PPSClient.cpp +++ b/pps_ws/src/d_fall_pps/src/nodes/PPSClient.cpp @@ -913,7 +913,19 @@ void CFBatteryCallback(const std_msgs::Float32& msg) - +// ---------------------------------------------------------------------------------- +// GGGG EEEEE TTTTT SSSS TTTTT A TTTTT U U SSSS +// G E T S T A A T U U S +// G EEE T SSS T A A T U U SSS +// G G E T S T AAAAA T U U S +// GGGG EEEEE T SSSS T A A T UUU SSSS +// +// CCCC A L L BBBB A CCCC K K SSSS +// C A A L L B B A A C K K S +// C A A L L BBBB A A C KKK SSS +// C AAAAA L L B B AAAAA C K K S +// CCCC A A LLLLL LLLLL BBBB A A CCCC K K SSSS +// ---------------------------------------------------------------------------------- bool getCurrentFlyingStateServiceCallback(IntIntService::Request &request, IntIntService::Response &response) { @@ -1213,15 +1225,56 @@ int main(int argc, char* argv[]) - // FETCH ANY PARAMETERS REQUIRED FROM THE "PARAMETER SERVICES" + // GIVE YAML VARIABLES AN INITIAL VALUE + + // This can be done either here or as part of declaring the + // variables in the header file + + + + // FETCH ANY PARAMETERS REQUIRED FROM THE "PARAMETER SERVICES" // Call the class function that loads the parameters for this class. fetchClientConfigYamlParameters(nodeHandle_to_own_agent_parameter_service); fetchSafeControllerYamlParameters(nodeHandle_to_own_agent_parameter_service); - - + // THIS IS THE "NEW" WAY TO DO IT + // BUT NEED TO CHECK ALL VARIABLES HAVE INITIAL VALUE + // // FETCH ANY PARAMETERS REQUIRED FROM THE "PARAMETER SERVICES" + + // // The yaml files for the controllers are not added to + // // "Parameter Service" as part of launching. + // // The process for loading the yaml parameters is to send a + // // service call containing the filename of the *.yaml file, + // // and then a message will be received on the above subscribers + // // when the paramters are ready. + // // > NOTE IMPORTANTLY that by using a serice client + // // we stall the availability of this node until the + // // paramter service is ready + + // // Create the service client as a local variable + // ros::ServiceClient requestLoadYamlFilenameServiceClient = nodeHandle_to_own_agent_parameter_service.serviceClient<LoadYamlFromFilename>("requestLoadYamlFilename", false); + // // Create the service call as a local variable + // LoadYamlFromFilename loadYamlFromFilenameCall; + // // Specify the Yaml filename as a string + // loadYamlFromFilenameCall.request.stringWithHeader.data = "DefaultController"; + // // Set for whom this applies to + // loadYamlFromFilenameCall.request.stringWithHeader.shouldCheckForID = false; + // // Wait until the serivce exists + // requestLoadYamlFilenameServiceClient.waitForExistence(ros::Duration(-1)); + // // Make the service call + // if(requestLoadYamlFilenameServiceClient.call(loadYamlFromFilenameCall)) + // { + // // Nothing to do in this case. + // // The "isReadyDefaultControllerYamlCallback" function + // // will be called once the YAML file is loaded + // } + // else + // { + // // Inform the user + // ROS_ERROR("[DEFAULT CONTROLLER] The request load yaml file service call failed."); + // } @@ -1234,17 +1287,23 @@ int main(int argc, char* argv[]) - + // PUBLISHERS, SUBSCRIBERS, AND SERVICE CLIENTS + // CREATE A NODE HANDLE TO THE ROOT OF THE D-FaLL SYSTEM ros::NodeHandle nodeHandle_dfall_root("/dfall"); + // CREATE A NODE HANDLE TO THE COORDINATOR + std::string namespace_to_coordinator; + constructNamespaceForCoordinator( m_coordID, namespace_to_coordinator ); + ros::NodeHandle nodeHandle_to_coordinator(namespace_to_coordinator); - // SERVICE CLIENT FOR THE ALLOWED FLYING ZONE AND OTHER CONTEXT DETAILS + // SERVICE CLIENT FOR LOADING THE ALLOCATED FLYING ZONE + // AND OTHER CONTEXT DETAILS //ros::service::waitForService("/CentralManagerService/CentralManager"); centralManager = nodeHandle_dfall_root.serviceClient<CMQuery>("CentralManagerService/Query", false); @@ -1253,25 +1312,15 @@ int main(int argc, char* argv[]) // Subscriber for when the Flying Zone Database changed ros::Subscriber databaseChangedSubscriber = nodeHandle_dfall_root.subscribe("CentralManagerService/DBChanged", 1, crazyflieContextDatabaseChangedCallback); - - - - // EMERGENCY STOP OF THE WHOLE "D-FaLL-System" ros::Subscriber emergencyStopSubscriber = nodeHandle_dfall_root.subscribe("emergencyStop", 1, emergencyStopCallback); - - - - // LOCALISATION DATA FROM MOTION CAPTURE SYSTEM - //keeps 100 messages because otherwise ViconDataPublisher would override the data immediately ros::Subscriber viconSubscriber = nodeHandle_dfall_root.subscribe("ViconDataPublisher/ViconData", 100, viconCallback); - // PUBLISHER FOR COMMANDING THE CRAZYFLIE // i.e., motorCmd{1,2,3,4}, roll, pitch, yaw, and onboardControllerType //ros::Publishers to advertise the control output @@ -1282,18 +1331,8 @@ int main(int argc, char* argv[]) - - - // CREATE A NODE HANDLE TO THE COORDINATOR - std::string namespace_to_coordinator; - constructNamespaceForCoordinator( m_coordID, namespace_to_coordinator ); - ros::NodeHandle nodeHandle_to_coordinator(namespace_to_coordinator); - - - - - - // SUBSCRIBER FOR {TAKE-OFF,LAND,MOTORS-OFF} AND CONTROLLER SELECTION + // SUBSCRIBER FOR THE CHANGE STATE COMMANDS + // i.e., {TAKE-OFF,LAND,MOTORS-OFF,CONTROLLER SELECTION} // > for the agent GUI ros::Subscriber commandSubscriber_to_agent = nodeHandle.subscribe("Command", 1, commandCallback); // > for the coord GUI @@ -1302,14 +1341,22 @@ int main(int argc, char* argv[]) - - //this topic lets us use the terminal to communicate with crazyRadio node. + // PUBLISHER FOR THE CRAZYRADIO COMMANDS + // i.e., {CONNECT,DISCONNECT} + // This topic lets us use the terminal to communicate with + // the crazyRadio node even when the GUI is not launched crazyRadioCommandPublisher = nodeHandle.advertise<IntWithHeader>("crazyRadioCommand", 1); - // this topic will publish flying state whenever it changes. + + + // PUBLISHER FOR THE FLYING STATE + // Possible states: {MOTORS-OFF,TAKE-OFF,FLYING,LAND} + // This topic will publish flying state whenever it changes. flyingStatePublisher = nodeHandle.advertise<std_msgs::Int32>("flyingState", 1); + + // PUBLISHER FOR THE controllerUsedPublisher = nodeHandle.advertise<std_msgs::Int32>("controllerUsed", 1); -- GitLab