From 98a53841272f7b76f32f5d61cc830e9f1a9cd14e Mon Sep 17 00:00:00 2001 From: ericsenn Date: Tue, 18 May 2021 11:43:06 +0200 Subject: [PATCH] ajout noeud master_wip + cmd_vel_no_zero en versions beta --- CMakeLists.txt | 8 + src/cmd_vel_no_zero.cpp | 68 ++++ src/master_if.cpp | 314 ++++++++++++++++ src/master_wip.cpp | 609 ++++++++++++++++++++++++++++++ src/out.txt | 8 - src/p2c.bash | 19 +- src/p2c_v1.bash | 65 ++++ src/pose2ads.cpp | 58 +++ src/sv_melodic_i7.txt | 805 ++++++++++++++++++++++++++++++++++++++++ 9 files changed, 1941 insertions(+), 13 deletions(-) create mode 100644 src/cmd_vel_no_zero.cpp create mode 100644 src/master_if.cpp create mode 100644 src/master_wip.cpp delete mode 100644 src/out.txt mode change 100644 => 100755 src/p2c.bash create mode 100644 src/p2c_v1.bash create mode 100644 src/pose2ads.cpp create mode 100644 src/sv_melodic_i7.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d17c86..b78254b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -178,6 +178,14 @@ target_link_libraries(${PROJECT_NAME}_consumer ${catkin_LIBRARIES}) add_executable(${PROJECT_NAME}_send_goal_demo src/send_goal_demo.cpp) target_link_libraries(${PROJECT_NAME}_send_goal_demo ${catkin_LIBRARIES}) +add_executable(${PROJECT_NAME}_pose2ads src/pose2ads.cpp) +target_link_libraries(${PROJECT_NAME}_pose2ads ${catkin_LIBRARIES}) + +add_executable(${PROJECT_NAME}_master_wip src/master_wip.cpp) +target_link_libraries(${PROJECT_NAME}_master_wip ${catkin_LIBRARIES}) + +add_executable(${PROJECT_NAME}_cmd_vel_no_zero src/cmd_vel_no_zero.cpp) +target_link_libraries(${PROJECT_NAME}_cmd_vel_no_zero ${catkin_LIBRARIES}) ## Specify libraries to link a library or executable target against # target_link_libraries(${PROJECT_NAME}_node diff --git a/src/cmd_vel_no_zero.cpp b/src/cmd_vel_no_zero.cpp new file mode 100644 index 0000000..483a6e7 --- /dev/null +++ b/src/cmd_vel_no_zero.cpp @@ -0,0 +1,68 @@ +// This program subscribes to /cmd_vel_no_zero/cmd_vel and +// it republishes the cmd_vel input on /cmd_vel_gate/cmd_vel_out, +// Removing all the zero values + +#include +#include +#include + +using namespace std; + +//global variables have to be exposed outside the callback +ros::Publisher *pubPtr;//the publisher +geometry_msgs::Twist msgOut;//cmd vel message +int GOOD_TO_BLOCK = 0; + + +//******************************************************* +//callback for receiving the command velocity +//and blocking it if all values equal to zero are received more than three times +void commandVelocityReceived(const geometry_msgs::Twist& msgIn){ + +if ((msgIn.linear.x == 0) && (msgIn.linear.y == 0) && (msgIn.linear.z ==0) +&& (msgIn.angular.x == 0) && (msgIn.angular.y == 0) && (msgIn.angular.z ==0)){ + GOOD_TO_BLOCK++; + if (GOOD_TO_BLOCK>3){ + GOOD_TO_BLOCK=4; + //cout<<"good to block="<publish(msgOut); + } +/*else { + ROS_INFO("ZERO CMD VELOCITY BLOCKED"); + cout << "Blocking zero velocity commands" << endl; + } +*/ +} + + +//*********************************************************** +// MAIN +//*********************************************************** +int main(int argc, char **argv) { + ros::init(argc, argv, "cmd_vel_no_zero"); + ros::NodeHandle nh; + + pubPtr = new ros::Publisher(nh.advertise("/cmd_vel_no_zero/cmd_vel_out",1)); + + //callback to receive cmd vel + ros::Subscriber sub = nh.subscribe("/cmd_vel_no_zero/cmd_vel_in",1,&commandVelocityReceived,ros::TransportHints().tcpNoDelay(true)); + + ros::spin(); + + delete pubPtr; +} diff --git a/src/master_if.cpp b/src/master_if.cpp new file mode 100644 index 0000000..7c2f6fe --- /dev/null +++ b/src/master_if.cpp @@ -0,0 +1,314 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +//#include +#include + +using namespace std; + +typedef actionlib::SimpleActionClient MoveBaseClient; + +bool SET, GOTO, ABORT, STOP, BOOLA, BOOLB, BOOLC, BOOLD; + +//this function to read a character from the keyboard if one +//has been typed. non blocking like getchar ... stuff +//************************************************************** +int getkey() { + int character; + struct termios orig_term_attr; + struct termios new_term_attr; + + /* set the terminal to raw mode */ + tcgetattr(fileno(stdin), &orig_term_attr); + memcpy(&new_term_attr, &orig_term_attr, sizeof(struct termios)); + new_term_attr.c_lflag &= ~(ECHO|ICANON); + new_term_attr.c_cc[VTIME] = 0; + new_term_attr.c_cc[VMIN] = 0; + tcsetattr(fileno(stdin), TCSANOW, &new_term_attr); + + /* read a character from the stdin stream without blocking */ + /* returns EOF (-1) if no character is available */ + character = fgetc(stdin); + + /* restore the original terminal attributes */ + tcsetattr(fileno(stdin), TCSANOW, &orig_term_attr); + + return character; +} +//************************************************************ + +//************************************************************ +//callback for subsribing to the boolean message +//linked to the press button on the ROS Mobile app +void ACallback( + const std_msgs::Bool& inboolA +) { + BOOLA= inboolA.data; +} +//************************************************************ + +//************************************************************* +// function to wait for one button to be pressed and released +// on the ROS Mobile application. +// returns one int to reflect which button has been pressed (and released) +int getbutton(){ + while(1){ + if (SET == true){ + while (SET == true){}; + return 1; + } + if (BOOLA == true){ + while (BOOLA == true){}; + return 10; + } + if (BOOLB == true){ + while (BOOLB == true){}; + return 11; + } + } +return 0; +} + +//************************************************************ +// MAIN +//************************************************************ +int main(int argc, char** argv){ + +cout << "******************* SEND GOALS TO THE ROBOT ***********************" << endl; +cout << "* This application listen to booleans from the buttons on the *" << endl; +cout << "* ROS Mobile android application. *" << endl; +cout << "* Final aim is to the naviguation stack in the form of a 'MoveBaseGoal' *" << endl; +cout << "* message published on the /move_base/goal topics *" << endl; +cout << "* to which the move_base node subscribes. *" << endl; +cout << "* Goals are : the x,y coordinates of a point in the map *" << endl; +cout << "* and an orientation for the robot. *" << endl; +cout << "*******************************************************************" << endl << endl; + + + ros::init(argc, argv, "master_if"); + ros::NodeHandle nh; + +// Initialize many subscribers to boolean topics from android remote command buttons +// format is std_msgs/Bool +ros::Subscriber sub = nh.subscribe("/SET", 1, SETCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/GOTO", 1, GOTOCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subshcribe("/ABORT", 1, ABORTCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/STOP", 1, STOPCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolA", 1, ACallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolB", 1, BCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolC", 1, CCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolD", 1, DCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolE", 1, ECallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolF", 1, FCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolG", 1, GCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolH", 1, HCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolI", 1, ICallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolJ", 1, JCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolK", 1, KCallback, ros::TransportHints().tcpNoDelay(true)); +ros::Subscriber sub = nh.subscribe("/boolL", 1, LCallback, ros::TransportHints().tcpNoDelay(true)); + + // Init cmd_vel publisher + //ros::Publisher pub = nh.advertise("/RosAria/cmd_vel", 1); + + //Publish a disabling out to send to velocity command gate + ros::Publisher pub = nh.advertise("/send_goal/disable",1000); + + + // Create Twist message + //geometry_msgs::Twist twist; + + // Starting client + MoveBaseClient client("move_base", true); + + ROS_INFO("Waiting for the action server to start"); + client.waitForServer(); + + ROS_INFO("Action server started"); + move_base_msgs::MoveBaseGoal goal; + +std_msgs::Bool disable; + +bool keyok = false; +int c; + +while(ros::ok()){ + +disable.data = false; + + + +cout << endl << ">> Waiting for button press on ROS Mobile :" << endl; +cout << ">> ------------------------------------------------" << endl; + +c=getchar(); +getchar(); + + +//cout << ">> you typed :" << c << endl;//for debug purpose + + +//POINT A +if (c == 65) { + keyok = true; + // set position + goal.target_pose.pose.position.x = -0.1119; + goal.target_pose.pose.position.y = -0.0760; + goal.target_pose.pose.position.z = 0.0; + + // set orientation + goal.target_pose.pose.orientation.x = 0.0; + goal.target_pose.pose.orientation.y = 0.0; + goal.target_pose.pose.orientation.z = 0.00374903019605; + goal.target_pose.pose.orientation.w = 0.999992972362; +} +else if (c == 66){ +//POINTB + keyok = true; + // set position + goal.target_pose.pose.position.x = -0.9116; + goal.target_pose.pose.position.y = -0.0236; + goal.target_pose.pose.position.z = 0.0; + + // set orientation + goal.target_pose.pose.orientation.x = 0.0; + goal.target_pose.pose.orientation.y = 0.0; + goal.target_pose.pose.orientation.z = -0.0121755845945; + goal.target_pose.pose.orientation.w = 0.999925874823; +} +else if (c == 67){ +//POINTC + + keyok = true; + // set position + goal.target_pose.pose.position.x = 0.8998; + goal.target_pose.pose.position.y = -0.0252; + goal.target_pose.pose.position.z = 0.0; + // set orientation + goal.target_pose.pose.orientation.x = 0.0; + goal.target_pose.pose.orientation.y = 0.0; + goal.target_pose.pose.orientation.z = 0.0134252324483; + goal.target_pose.pose.orientation.w = 0.999909877506; +} +else if (c == 88){ +//STOP NODE +ros::shutdown(); +return 0; +} + +else { +cout << ">> not recognized key, try again" << endl; +keyok = false; +} + +//keyok true --------------------------------- +//send the goal to move_base action server +//else do nothing and get back to asking a valid key +if (keyok == true){ + +ROS_INFO("Sending the goal"); + + goal.target_pose.header.stamp = ros::Time::now(); + + // set frame + goal.target_pose.header.frame_id = "map"; + + client.sendGoal(goal); + + //ROS_INFO("Waiting for the result"); + //client.waitForResult(); +int key; +enum actionlib::SimpleClientGoalState::StateEnum job_state; /*Enumerator: + PENDING 0 + ACTIVE 1 + RECALLED 2 + REJECTED 3 + PREEMPTED 4 + ABORTED 5 + SUCCEEDED 6 + LOST 7 +*/ + +cout << "PRESS ANY KEY TO ABORT" << endl; +cout << "JOB STATUS : 0-PENDING 1-ACTIVE 2-RECALLED 3-REJECTED 4-PREEMPTED 5-ABORTED 6-SUCCEEDED 7-LOST :" << endl; + +//start polling loop--------------------------------- +while(1){ + job_state = client.getState().state_;//getting move base job status + cout << job_state << "|";//echoing job status + + if (job_state == 6) {//job has succeeded, exit loop + cout << endl << "GOAL REACHED" << endl; + ROS_INFO("Succeeded"); +break;} + + else if (job_state==0 || job_state==1){//if job is pending or active, we want to be able to stop it + key = getkey();//by pressing any key + //cout << "key:" << key;//debug only + if (key != -1) { + client.cancelAllGoals(); + cout << endl << ">>>>>!!! ABORTING !!!<<<<" << endl; + //loop for flooding the robot cmd_vel with 0 velocity messages to actually stop him + //the time for move_base action server to react (several seconds + //where the bot is still moving) + //not very nice solution but it works + while(1){//Loop to block the bot while move_base finishes cancel the goal + //and stop sending cmd_vel to the bot + + disable.data = true; + pub.publish(disable); + ros::spinOnce(); + + job_state = client.getState().state_;//getting move base job status + cout << "\r JOB STATUS :" << job_state << "|";//echoing job status + + if ((job_state != 1) && (job_state != 0)) {//exit the blocking loop when job status is no more "pending" or "active" + disable.data=false; + pub.publish(disable); + ros::spinOnce(); + cout << "ABORTED" << endl; + break;//exit blocking loop + } + + /*key = getkey(); + if (key != -1){//or exit if a key is pressed - not recommended + disable.data=false; + pub.publish(disable); + ros::spinOnce(); + cout << "CANCELLED" << endl; + break;//exit blocking loop + }*/ + + usleep(50000); + }//end blocking loop +break;//exit polling loop because a key was pressed and we have ensured the goal is finished and robot stopped + }//end if key != 1 ==> a key was pressed + + else {//no key pressed, so let move base continue driving the bot to its goal + //cout<< "O:";//debug + usleep(500000);} + + }//end if job pending or active + + else{//job status is not pending or active or succeeded so move base has failed + cout << endl << "Move Base failed reaching the goal" << endl; + ROS_INFO("Failed"); + break;} + +}//end polling loop------------------------------------ + +}//end if keyok TRUE ------------------------- + + +}//end while + + return 0; +} diff --git a/src/master_wip.cpp b/src/master_wip.cpp new file mode 100644 index 0000000..4702533 --- /dev/null +++ b/src/master_wip.cpp @@ -0,0 +1,609 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "geometry_msgs/PoseWithCovarianceStamped.h" +//#include +#include + +using namespace std; + +typedef actionlib::SimpleActionClient MoveBaseClient; + +// GLOBAL VARIABLES DECLARATION +bool SET, GOTO, ABORT, STOP, BOOLA, BOOLB, BOOLC, BOOLD; + +// global variables needed to expose the position data outside the +// recv pose from amcl callback function +double pose_x, pose_y, pose_z, quat_x, quat_y, quat_z, quat_w; +// to expose the recevied pose (with covariance) outside the callback +geometry_msgs::PoseWithCovarianceStamped POSEreceived; + +//************************************************************** +//CALLBACK FOR SUBSCRIBER TO POSE +//************************************************************** +void poseRCVcallback(const geometry_msgs::PoseWithCovarianceStamped::ConstPtr& msg) +{ + ROS_INFO_STREAM("Received pose: " << msg);//ROS INFO FOR DEBUG PURPOSE + POSEreceived=(*msg); + pose_x = msg->pose.pose.position.x; + pose_y = msg->pose.pose.position.y; + pose_z = msg->pose.pose.position.z; + quat_x = msg->pose.pose.orientation.x; + quat_y = msg->pose.pose.orientation.y; + quat_z = msg->pose.pose.orientation.z; + quat_w = msg->pose.pose.orientation.w; +} +//_____________________________________________________________ + + + +//************************************************************** +//this function to read a character from the keyboard if one +//has been typed. non blocking like getchar ... stuff +//************************************************************** +int getkey() { + int character; + struct termios orig_term_attr; + struct termios new_term_attr; + + /* set the terminal to raw mode */ + tcgetattr(fileno(stdin), &orig_term_attr); + memcpy(&new_term_attr, &orig_term_attr, sizeof(struct termios)); + new_term_attr.c_lflag &= ~(ECHO|ICANON); + new_term_attr.c_cc[VTIME] = 0; + new_term_attr.c_cc[VMIN] = 0; + tcsetattr(fileno(stdin), TCSANOW, &new_term_attr); + + /* read a character from the stdin stream without blocking */ + /* returns EOF (-1) if no character is available */ + character = fgetc(stdin); + + /* restore the original terminal attributes */ + tcsetattr(fileno(stdin), TCSANOW, &orig_term_attr); + + return character; +} +//_____________________________________________________________ + +//************************************************************ +//callback for subscribing to the boolean message +//linked to the press button on the ROS Mobile app +void SETCallback(const std_msgs::Bool& inboolA) {SET = inboolA.data;} +//_____________________________________________________________ + +//************************************************************ +//callback for subscribing to the boolean message +//linked to the press button on the ROS Mobile app +void GOTOCallback(const std_msgs::Bool& inbool){GOTO = inbool.data;} +//_____________________________________________________________ + +//************************************************************ +//callback for subscribing to the boolean message +//linked to the press button on the ROS Mobile app +void ABORTCallback(const std_msgs::Bool& inbool){ABORT = inbool.data;} +//_____________________________________________________________ + +//************************************************************ +//callback for subscribing to the boolean message +//linked to the press button on the ROS Mobile app +void STOPCallback(const std_msgs::Bool& inbool){STOP = inbool.data;} +//_____________________________________________________________ + +//************************************************************ +//callback for subscribing to the boolean message +//linked to the press button on the ROS Mobile app +void ACallback(const std_msgs::Bool& inbool) {BOOLA = inbool.data;} +//_____________________________________________________________ + +//************************************************************ +//callback for subscribing to the boolean message +//linked to the press button on the ROS Mobile app +void BCallback(const std_msgs::Bool& inbool) {BOOLB = inbool.data;} +//_____________________________________________________________ + + +//************************************************************ +//callback for subscribing to the boolean message +//linked to the press button on the ROS Mobile app +void CCallback(const std_msgs::Bool& inbool) {BOOLC = inbool.data;} +//_____________________________________________________________ + + +//************************************************************ +//callback for subscribing to the boolean message +//linked to the press button on the ROS Mobile app +void DCallback(const std_msgs::Bool& inbool) {BOOLD = inbool.data;} +//_____________________________________________________________ + + + +//************************************************************* +// function to wait for one button to be pressed +// on the ROS Mobile application. +// returns one int to reflect which button has been pressed +//************************************************************* +int getbutton(){ + //cout<<"probing buttons"<< endl; + int keycode = 0; + ros::Rate loop_rate(5); + while(ros::ok()) + { + ros::spinOnce(); + loop_rate.sleep(); + if (SET == true){ + keycode = 1; + break; + } + if (GOTO == true){ + keycode = 2; + break; + } + if (ABORT == true){ + keycode = 3; + break; + } + if (STOP == true){ + keycode = 4; + break; + } + if (BOOLA == true){ + keycode = 10; + break; + } + if (BOOLB == true){ + keycode = 11; + break; + } + if (BOOLC == true){ + keycode = 12; + break; + } + if (BOOLD == true){ + keycode = 13; + break; + } + } + while(ros::ok()){ + ros::spinOnce(); + loop_rate.sleep(); + // wait for all button released + if (!SET || !GOTO || !ABORT || !BOOLA || !BOOLB || !BOOLC || !BOOLD){ + break; + } + } +cout<<"you typed :" << keycode << endl; +return keycode; +} +//_____________________________________________________________ + + +//************************************************************* +// function to probe if one button is pressed +// NON BLOCKING +// on the ROS Mobile application. +// returns one int to reflect which button has been pressed +//************************************************************* +int probebutton(){ + //cout<<"probing buttons"<< endl; + int keycode = 0; + ros::Rate loop_rate(5); + ros::spinOnce(); + loop_rate.sleep(); + if (SET == true){ + keycode = 1; + } + if (GOTO == true){ + keycode = 2; + } + if (ABORT == true){ + keycode = 3; + } + if (STOP == true){ + keycode = 4; + } + if (BOOLA == true){ + keycode = 10; + } + if (BOOLB == true){ + keycode = 11; + } + if (BOOLC == true){ + keycode = 12; + } + if (BOOLD == true){ + keycode = 13; + } +return keycode; +} +//_____________________________________________________________ + + +//************************************************************* +// function to wait for all buttons to be released +// on the ROS Mobile application. +// returns 1 if buttons are all released, 0 else +//************************************************************* +bool releasedbutton(){ +return (BOOLA); +} +//_____________________________________________________________ + +//************************************************************ +//************************************************************ +// MAIN +//************************************************************ +//************************************************************ +int main(int argc, char** argv){ + +const int TABLE_SIZE = 12;//number of goals in the table and file +int counter;//for counting in loops +int c;//for carrying code of key pressed + +ifstream fileLoad; //create file object +ofstream fileSave; //create new output file + +std_msgs::Bool disable; +move_base_msgs::MoveBaseGoal goal; +move_base_msgs::MoveBaseGoal tableOfGoals[TABLE_SIZE]; + +//fill tableOfGoals with blank inputs : header.frame_id set to dummy +for(counter = 0; counter < TABLE_SIZE; counter++){ + //cout<<"counter :"<(&tog), sizeof(tog)); +fileSave.close(); +cout<<"File tog.bin saved"<(&togin), sizeof(togin)); + fileLoad.close(); + cout << "File tog.bin has been loaded to table of double floats" << endl; + } + +//filling table of goals with values from table of double floats +cout<<"Filling table of goals in memory ..."<("/send_goal/disable",1000); + +// Starting client +MoveBaseClient client("move_base", true); +ROS_INFO("Waiting for the action server to start"); +client.waitForServer(); +ROS_INFO("Action server started"); + +ros::Rate loop_rate(10); +/* MAIN LOOP ****************************************************** */ +while (ros::ok()) +{ +//ros::spinOnce(); +//loop_rate.sleep(); + +//local variables declaration +disable.data = false; +bool keyok = false; + +cout << endl << ">> Waiting for button press on ROS Mobile :" << endl; +c=getbutton(); +//cout << ">> you typed :" << c << endl;//for debug purpose + +/* SET PRESSED ============================================= */ +if (c == 1){//SET pressed + c=getbutton(); + if ((c == 10) || (c == 11) || (c == 12) || (c == 13)){//A or B or C or D pressed + //read the current pose topic + ros::spinOnce(); + loop_rate.sleep(); + //set goal A in table of goals + // set position + goal.target_pose.pose.position.x = pose_x; + goal.target_pose.pose.position.y = pose_y; + goal.target_pose.pose.position.z = pose_z; + // set orientation + goal.target_pose.pose.orientation.x = quat_x; + goal.target_pose.pose.orientation.y = quat_y; + goal.target_pose.pose.orientation.z = quat_z; + goal.target_pose.pose.orientation.w = quat_w; + //set header + goal.target_pose.header.frame_id="map"; + //write table of goals + tableOfGoals[c-10] = goal; + cout<<"Goal " << c-9 <<" has been set"<(&tog), sizeof(tog)); + fileSave.close(); + cout<<"File tog.bin saved"<>>>>!!! ABORTING !!!<<<<" << endl; + //loop for flooding the robot cmd_vel with 0 velocity messages to actually stop him + //the time for move_base action server to react (several seconds + //where the bot is still moving) + //not very nice solution but it works + while(1){//Loop to block the bot while move_base finishes cancel the goal + //and stop sending cmd_vel to the bot + disable.data = true;//disable is a bool ros messages the is published toward a cmd_vel gate + pub.publish(disable);//publish the message on the topic + ros::spinOnce();//run the spinner + job_state = client.getState().state_;//getting move base job status + cout << "\r JOB STATUS :" << job_state << "|";//echoing job status + //exit the blocking loop when job status is no more "pending" or "active" + if ((job_state != 1) && (job_state != 0)) { + disable.data=false;//unblock the cmd_vel gate + pub.publish(disable); + ros::spinOnce(); + cout << "ABORTED" << endl; + break;//exit blocking loop + } + usleep(50000);//50 ms pause + }//end blocking loop + break;//exit polling loop because ABORT key was pressed and we have ensured the goal is finished and robot stopped + }//end if key == 3 ==> ABORT key was pressed + + else {//no key pressed, so let move base continue driving the bot to its goal + usleep(500000);} + + }//end if job pending or active + + else{//job status is not pending or active or succeeded so move base has failed + cout << endl << "Move Base failed reaching the goal" << endl; + ROS_INFO("Failed"); + break; + } + + }//end polling loop------------------------------------ + } + }//end goal (A,B,C,D) button pressed +}//end GOTO button pressed + +}//end MAIN while loop + + return 0; +} diff --git a/src/out.txt b/src/out.txt deleted file mode 100644 index 7b8afa8..0000000 --- a/src/out.txt +++ /dev/null @@ -1,8 +0,0 @@ -=======NEW BATCH============ -=======NEW BATCH============ -=======NEW BATCH============ -=======NEW BATCH============ -=======NEW BATCH============ -=======NEW BATCH============ -=======NEW BATCH============ -=======NEW BATCH============ diff --git a/src/p2c.bash b/src/p2c.bash old mode 100644 new mode 100755 index 9f203a1..7878cbe --- a/src/p2c.bash +++ b/src/p2c.bash @@ -1,4 +1,8 @@ echo "starting script" + +FILE=out.txt +test -f "$FILE" && echo "deleting former output file" && rm "$FILE" + echo "=======NEW BATCH============" >> out.txt list="100 1000 5000 10000" @@ -13,22 +17,27 @@ do echo -n "loop counter:" $a echo -n " | loop rate:" $looprate "Hz" echo "loop rate:" $looprate >> out.txt - echo -n " | block size:" $((8192 * 8 * 2**$a)) "Bytes" - echo "block size:" $((8192 * 8 * 2**$a)) >> out.txt + echo -n " | block size:" $((2048 * 8 * 2**$a)) "Bytes" + echo "block size:" $((2048 * 8 * 2**$a)) >> out.txt echo -n " | running producer" #4096//8192;//16384;//16384 //65536 //131072 - rosrun esdev esdev_producer _array_size:=$((8192 * 2**$a)) _loop_rate:=$looprate >> out.txt & + #taskset -c 4,5,6,7 + rosrun esdev esdev_producer _array_size:=$((2048 * 2**$a)) _loop_rate:=$looprate >> out.txt & #pid="$pid $!" pidp=$! #echo "producer PID" $pidp sleep 1s echo -n " | running consumer" - rosrun esdev esdev_consumer >> out.txt & + #taskset -c 4,5,6,7 + rosrun esdev esdev_consumer >> out.txt & #pid="$pid $!" pidc=$! #echo "consumer PID" $pidc + sleep 1s + mpstat -P ALL 1 1 >> out.txt + rostopic bw /producer >> out.txt & pidw=$! rostopic hz /producer >> out.txt & @@ -55,4 +64,4 @@ trap "kill 0" EXIT sleep 5s echo "killing all processes" -echo "exiting script" \ No newline at end of file +echo "exiting script" diff --git a/src/p2c_v1.bash b/src/p2c_v1.bash new file mode 100644 index 0000000..773d893 --- /dev/null +++ b/src/p2c_v1.bash @@ -0,0 +1,65 @@ +echo "starting script" + +FILE=out.txt +test -f "$FILE" && echo "deleting former out.txt" && rm "$FILE" + +echo "=======NEW BATCH============" >> out.txt + +list="100 1000 5000 10000" + +for looprate in $list +do + echo "*********** setting loop rate:" $looprate >> out.txt + a=0 + until [ $a -gt 3 ] + do + ((a++)) + echo -n "loop counter:" $a + echo -n " | loop rate:" $looprate "Hz" + echo "loop rate:" $looprate >> out.txt + echo -n " | block size:" $((2048 * 8 * 2**$a)) "Bytes" + echo "block size:" $((2048 * 8 * 2**$a)) >> out.txt + echo -n " | running producer" + #4096//8192;//16384;//16384 //65536 //131072 + rosrun esdev esdev_producer _array_size:=$((2048 * 2**$a)) _loop_rate:=$looprate >> out.txt & + #pid="$pid $!" + pidp=$! + #echo "producer PID" $pidp + sleep 1s + + echo -n " | running consumer" + rosrun esdev esdev_consumer >> out.txt & + #pid="$pid $!" + pidc=$! + #echo "consumer PID" $pidc + + sleep 1s + mpstat -P ALL 1 1 >> out.txt + + rostopic bw /producer >> out.txt & + pidw=$! + rostopic hz /producer >> out.txt & + pidz=$! + sleep 5s + + echo " | killing processes !" + rosnode kill /consumer + rosnode kill /producer + kill $pidw + kill $pidz + #kill $pidc + #kill $pidp + + sleep 1s + + echo "============================" >> out.txt + done + +done + +trap "exit" INT TERM ERR +trap "kill 0" EXIT +sleep 5s + +echo "killing all processes" +echo "exiting script" \ No newline at end of file diff --git a/src/pose2ads.cpp b/src/pose2ads.cpp new file mode 100644 index 0000000..cde243f --- /dev/null +++ b/src/pose2ads.cpp @@ -0,0 +1,58 @@ +#include "ros/ros.h" +#include "geometry_msgs/PoseWithCovarianceStamped.h" +#include + +using namespace std; + +double pose_x, pose_y, pose_z, quat_x, quat_y, quat_z, quat_w; + +//CALLBACK FOR SUBSCRIBER TO POSE +//-------------------------------- +void poseRCVcallback(const geometry_msgs::PoseWithCovarianceStamped::ConstPtr& msg) +{ + ROS_INFO_STREAM("Received pose: " << msg); + + pose_x = msg->pose.pose.position.x; + pose_y = msg->pose.pose.position.y; + pose_z = msg->pose.pose.position.z; + quat_x = msg->pose.pose.orientation.x; + quat_y = msg->pose.pose.orientation.y; + quat_z = msg->pose.pose.orientation.z; + quat_w = msg->pose.pose.orientation.w; + + ROS_INFO_STREAM(pose_x); + ROS_INFO_STREAM(pose_y); + ROS_INFO_STREAM(pose_z); + ROS_INFO_STREAM(quat_x); + ROS_INFO_STREAM(quat_y); + ROS_INFO_STREAM(quat_z); + ROS_INFO_STREAM(quat_w); + + + //cout << "x=" << poseAMCLx << " | "; +} + +//-------------------------------------- +// MAIN +//-------------------------------------- +int main(int argc, char **argv) +{ +cout << "LISTENING" << endl; + +ros::init(argc, argv, "pose2ads"); +ros::NodeHandle n; + +ros::Subscriber sub = n.subscribe("/amcl_pose", 1, poseRCVcallback, ros::TransportHints().tcpNoDelay(true)); + +/* +ros::Rate loop_rate(20); +while (ros::ok()) +{ +ros::spinOnce(); +loop_rate.sleep(); +}//end while +*/ + +ros::spin(); +return 0; +}//end main \ No newline at end of file diff --git a/src/sv_melodic_i7.txt b/src/sv_melodic_i7.txt new file mode 100644 index 0000000..c83d9e8 --- /dev/null +++ b/src/sv_melodic_i7.txt @@ -0,0 +1,805 @@ +=======NEW BATCH============ +*********** setting loop rate: 100 +loop rate: 100 +block size: 32768 +loop rate: 100 Hz +block size: 32768 Bytes +requested bandwidth: 3276800 Bytes/s +requested bandwidth: 3 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:42:46 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:42:47 all 22.03 0.00 9.87 0.00 0.00 0.51 0.00 0.00 0.00 67.59 +15:42:47 0 22.11 0.00 9.47 0.00 0.00 0.00 0.00 0.00 0.00 68.42 +15:42:47 1 22.86 0.00 12.38 0.00 0.00 0.95 0.00 0.00 0.00 63.81 +15:42:47 2 18.56 0.00 11.34 0.00 0.00 1.03 0.00 0.00 0.00 69.07 +15:42:47 3 25.25 0.00 6.06 0.00 0.00 0.00 0.00 0.00 0.00 68.69 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 22.03 0.00 9.87 0.00 0.00 0.51 0.00 0.00 0.00 67.59 +Average: 0 22.11 0.00 9.47 0.00 0.00 0.00 0.00 0.00 0.00 68.42 +Average: 1 22.86 0.00 12.38 0.00 0.00 0.95 0.00 0.00 0.00 63.81 +Average: 2 18.56 0.00 11.34 0.00 0.00 1.03 0.00 0.00 0.00 69.07 +Average: 3 25.25 0.00 6.06 0.00 0.00 0.00 0.00 0.00 0.00 68.69 +subscribed to [/producer] +average rate: 100.028 + min: 0.000s max: 0.020s std dev: 0.00586s window: 93 +average rate: 100.008 + min: 0.000s max: 0.020s std dev: 0.00650s window: 193 +average rate: 99.999 + min: 0.000s max: 0.020s std dev: 0.00672s window: 295 +average rate: 99.998 + min: 0.000s max: 0.020s std dev: 0.00680s window: 395 +average rate: 100.009 + min: 0.000s max: 0.020s std dev: 0.00685s window: 495 +average rate: 100.012 + min: 0.000s max: 0.020s std dev: 0.00684s window: 497 +subscribed to [/producer] +average: 3.27MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 93 +average: 3.30MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 3.29MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 3.29MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 3.29MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 2.67MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +============================ +loop rate: 100 +block size: 65536 +loop rate: 100 Hz +block size: 65536 Bytes +requested bandwidth: 6553600 Bytes/s +requested bandwidth: 6 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:42:55 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:42:56 all 19.17 0.00 10.36 0.00 0.00 0.52 0.00 0.00 0.00 69.95 +15:42:56 0 19.79 0.00 10.42 0.00 0.00 2.08 0.00 0.00 0.00 67.71 +15:42:56 1 19.15 0.00 9.57 0.00 0.00 0.00 0.00 0.00 0.00 71.28 +15:42:56 2 21.00 0.00 9.00 0.00 0.00 0.00 0.00 0.00 0.00 70.00 +15:42:56 3 17.71 0.00 11.46 0.00 0.00 0.00 0.00 0.00 0.00 70.83 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 19.17 0.00 10.36 0.00 0.00 0.52 0.00 0.00 0.00 69.95 +Average: 0 19.79 0.00 10.42 0.00 0.00 2.08 0.00 0.00 0.00 67.71 +Average: 1 19.15 0.00 9.57 0.00 0.00 0.00 0.00 0.00 0.00 71.28 +Average: 2 21.00 0.00 9.00 0.00 0.00 0.00 0.00 0.00 0.00 70.00 +Average: 3 17.71 0.00 11.46 0.00 0.00 0.00 0.00 0.00 0.00 70.83 +subscribed to [/producer] +average rate: 99.991 + min: 0.009s max: 0.010s std dev: 0.00019s window: 100 +average rate: 99.997 + min: 0.009s max: 0.011s std dev: 0.00019s window: 200 +average rate: 99.990 + min: 0.009s max: 0.011s std dev: 0.00018s window: 300 +average rate: 99.994 + min: 0.009s max: 0.011s std dev: 0.00017s window: 400 +average rate: 100.006 + min: 0.006s max: 0.014s std dev: 0.00038s window: 500 +average rate: 100.006 + min: 0.006s max: 0.014s std dev: 0.00038s window: 502 +subscribed to [/producer] +average: 6.56MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 99 +average: 6.62MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 6.61MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 6.61MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 6.60MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 5.05MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +============================ +loop rate: 100 +block size: 131072 +loop rate: 100 Hz +block size: 131072 Bytes +requested bandwidth: 13107200 Bytes/s +requested bandwidth: 13 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:43:05 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:43:06 all 21.83 0.00 8.88 0.00 0.00 1.27 0.00 0.00 0.00 68.02 +15:43:06 0 23.71 0.00 6.19 0.00 0.00 0.00 0.00 0.00 0.00 70.10 +15:43:06 1 19.80 0.00 12.87 0.00 0.00 2.97 0.00 0.00 0.00 64.36 +15:43:06 2 21.78 0.00 10.89 0.00 0.00 1.98 0.00 0.00 0.00 65.35 +15:43:06 3 22.11 0.00 5.26 0.00 0.00 0.00 0.00 0.00 0.00 72.63 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 21.83 0.00 8.88 0.00 0.00 1.27 0.00 0.00 0.00 68.02 +Average: 0 23.71 0.00 6.19 0.00 0.00 0.00 0.00 0.00 0.00 70.10 +Average: 1 19.80 0.00 12.87 0.00 0.00 2.97 0.00 0.00 0.00 64.36 +Average: 2 21.78 0.00 10.89 0.00 0.00 1.98 0.00 0.00 0.00 65.35 +Average: 3 22.11 0.00 5.26 0.00 0.00 0.00 0.00 0.00 0.00 72.63 +subscribed to [/producer] +average rate: 100.015 + min: 0.009s max: 0.011s std dev: 0.00028s window: 95 +average rate: 100.016 + min: 0.009s max: 0.011s std dev: 0.00025s window: 195 +average rate: 100.005 + min: 0.009s max: 0.011s std dev: 0.00024s window: 295 +average rate: 100.006 + min: 0.009s max: 0.011s std dev: 0.00023s window: 395 +average rate: 100.015 + min: 0.009s max: 0.011s std dev: 0.00022s window: 495 +average rate: 100.014 + min: 0.009s max: 0.011s std dev: 0.00022s window: 500 +subscribed to [/producer] +average: 13.25MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 13.18MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 13.16MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 13.14MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 13.13MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 10.30MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +============================ +loop rate: 100 +block size: 262144 +loop rate: 100 Hz +block size: 262144 Bytes +requested bandwidth: 26214400 Bytes/s +requested bandwidth: 26 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:43:15 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:43:16 all 22.48 0.00 14.29 0.00 0.00 1.41 0.00 0.00 0.00 61.83 +15:43:16 0 22.33 0.00 13.59 0.00 0.00 1.94 0.00 0.00 0.00 62.14 +15:43:16 1 24.07 0.00 12.96 0.00 0.00 0.93 0.00 0.00 0.00 62.04 +15:43:16 2 24.55 0.00 13.64 0.91 0.00 0.91 0.00 0.00 0.00 60.00 +15:43:16 3 18.87 0.00 17.92 0.00 0.00 0.94 0.00 0.00 0.00 62.26 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 22.48 0.00 14.29 0.00 0.00 1.41 0.00 0.00 0.00 61.83 +Average: 0 22.33 0.00 13.59 0.00 0.00 1.94 0.00 0.00 0.00 62.14 +Average: 1 24.07 0.00 12.96 0.00 0.00 0.93 0.00 0.00 0.00 62.04 +Average: 2 24.55 0.00 13.64 0.91 0.00 0.91 0.00 0.00 0.00 60.00 +Average: 3 18.87 0.00 17.92 0.00 0.00 0.94 0.00 0.00 0.00 62.26 +subscribed to [/producer] +average rate: 100.005 + min: 0.009s max: 0.011s std dev: 0.00026s window: 99 +average rate: 100.009 + min: 0.009s max: 0.011s std dev: 0.00028s window: 200 +average rate: 100.008 + min: 0.009s max: 0.011s std dev: 0.00026s window: 300 +average rate: 100.006 + min: 0.009s max: 0.011s std dev: 0.00027s window: 400 +average rate: 100.017 + min: 0.009s max: 0.011s std dev: 0.00026s window: 500 +average rate: 100.014 + min: 0.009s max: 0.011s std dev: 0.00026s window: 507 +subscribed to [/producer] +average: 26.45MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 95 +average: 26.45MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 26.41MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 26.39MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 25.59MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 21.15MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +============================ +*********** setting loop rate: 1000 +loop rate: 1000 +block size: 32768 +loop rate: 1000 Hz +block size: 32768 Bytes +requested bandwidth: 32768000 Bytes/s +requested bandwidth: 32 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:43:25 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:43:26 all 21.89 0.00 10.81 0.00 0.00 0.54 0.00 0.00 0.00 66.76 +15:43:26 0 23.91 0.00 11.96 0.00 0.00 0.00 0.00 0.00 0.00 64.13 +15:43:26 1 19.57 0.00 9.78 0.00 0.00 1.09 0.00 0.00 0.00 69.57 +15:43:26 2 23.33 0.00 7.78 0.00 0.00 0.00 0.00 0.00 0.00 68.89 +15:43:26 3 21.05 0.00 12.63 0.00 0.00 1.05 0.00 0.00 0.00 65.26 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 21.89 0.00 10.81 0.00 0.00 0.54 0.00 0.00 0.00 66.76 +Average: 0 23.91 0.00 11.96 0.00 0.00 0.00 0.00 0.00 0.00 64.13 +Average: 1 19.57 0.00 9.78 0.00 0.00 1.09 0.00 0.00 0.00 69.57 +Average: 2 23.33 0.00 7.78 0.00 0.00 0.00 0.00 0.00 0.00 68.89 +Average: 3 21.05 0.00 12.63 0.00 0.00 1.05 0.00 0.00 0.00 65.26 +subscribed to [/producer] +average rate: 991.559 + min: 0.000s max: 0.007s std dev: 0.00090s window: 939 +average rate: 995.379 + min: 0.000s max: 0.007s std dev: 0.00085s window: 1940 +average rate: 994.499 + min: 0.000s max: 0.007s std dev: 0.00085s window: 2934 +average rate: 995.273 + min: 0.000s max: 0.007s std dev: 0.00084s window: 3936 +average rate: 993.909 + min: 0.000s max: 0.010s std dev: 0.00084s window: 4927 +average rate: 993.972 + min: 0.000s max: 0.010s std dev: 0.00084s window: 4988 +subscribed to [/producer] +average: 32.85MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 33.20MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 32.89MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 33.16MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 32.34MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 3.84MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +============================ +loop rate: 1000 +block size: 65536 +loop rate: 1000 Hz +block size: 65536 Bytes +requested bandwidth: 65536000 Bytes/s +requested bandwidth: 65 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:43:35 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:43:36 all 21.04 0.00 22.29 0.00 0.00 6.04 0.00 0.00 0.00 50.62 +15:43:36 0 20.33 0.00 24.39 0.00 0.00 5.69 0.00 0.00 0.00 49.59 +15:43:36 1 22.81 0.00 18.42 0.00 0.00 5.26 0.00 0.00 0.00 53.51 +15:43:36 2 21.49 0.00 21.49 0.00 0.00 4.96 0.00 0.00 0.00 52.07 +15:43:36 3 20.00 0.00 24.00 0.00 0.00 8.80 0.00 0.00 0.00 47.20 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 21.04 0.00 22.29 0.00 0.00 6.04 0.00 0.00 0.00 50.62 +Average: 0 20.33 0.00 24.39 0.00 0.00 5.69 0.00 0.00 0.00 49.59 +Average: 1 22.81 0.00 18.42 0.00 0.00 5.26 0.00 0.00 0.00 53.51 +Average: 2 21.49 0.00 21.49 0.00 0.00 4.96 0.00 0.00 0.00 52.07 +Average: 3 20.00 0.00 24.00 0.00 0.00 8.80 0.00 0.00 0.00 47.20 +subscribed to [/producer] +average: 65.83MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 65.03MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 65.84MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 65.43MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 65.63MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 18.94MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +subscribed to [/producer] +average rate: 998.182 + min: 0.000s max: 0.006s std dev: 0.00062s window: 949 +average rate: 994.233 + min: 0.000s max: 0.006s std dev: 0.00060s window: 1941 +average rate: 993.485 + min: 0.000s max: 0.006s std dev: 0.00061s window: 2935 +average rate: 994.439 + min: 0.000s max: 0.008s std dev: 0.00061s window: 3937 +average rate: 991.346 + min: 0.000s max: 0.010s std dev: 0.00063s window: 4919 +average rate: 991.371 + min: 0.000s max: 0.010s std dev: 0.00063s window: 4937 +============================ +loop rate: 1000 +block size: 131072 +loop rate: 1000 Hz +block size: 131072 Bytes +requested bandwidth: 131072000 Bytes/s +requested bandwidth: 131 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:43:45 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:43:46 all 23.80 0.00 8.22 0.00 0.00 0.85 0.00 0.00 0.00 67.14 +15:43:46 0 22.35 0.00 5.88 0.00 0.00 0.00 0.00 0.00 0.00 71.76 +15:43:46 1 23.86 0.00 9.09 0.00 0.00 0.00 0.00 0.00 0.00 67.05 +15:43:46 2 26.67 0.00 5.56 0.00 0.00 1.11 0.00 0.00 0.00 66.67 +15:43:46 3 22.73 0.00 11.36 0.00 0.00 1.14 0.00 0.00 0.00 64.77 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 23.80 0.00 8.22 0.00 0.00 0.85 0.00 0.00 0.00 67.14 +Average: 0 22.35 0.00 5.88 0.00 0.00 0.00 0.00 0.00 0.00 71.76 +Average: 1 23.86 0.00 9.09 0.00 0.00 0.00 0.00 0.00 0.00 67.05 +Average: 2 26.67 0.00 5.56 0.00 0.00 1.11 0.00 0.00 0.00 66.67 +Average: 3 22.73 0.00 11.36 0.00 0.00 1.14 0.00 0.00 0.00 64.77 +subscribed to [/producer] +average rate: 989.663 + min: 0.000s max: 0.012s std dev: 0.00072s window: 940 +average rate: 994.380 + min: 0.000s max: 0.012s std dev: 0.00068s window: 1940 +average rate: 993.502 + min: 0.000s max: 0.012s std dev: 0.00068s window: 2932 +average rate: 990.501 + min: 0.000s max: 0.013s std dev: 0.00071s window: 3919 +average rate: 986.503 + min: 0.000s max: 0.013s std dev: 0.00074s window: 4892 +average rate: 986.723 + min: 0.000s max: 0.013s std dev: 0.00074s window: 4978 +subscribed to [/producer] +average: 130.13MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 132.35MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 131.76MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 131.59MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 132.61MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 32.64MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +============================ +loop rate: 1000 +block size: 262144 +loop rate: 1000 Hz +block size: 262144 Bytes +requested bandwidth: 262144000 Bytes/s +requested bandwidth: 262 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:43:54 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:43:55 all 22.17 0.00 27.39 0.00 0.00 3.04 0.00 0.00 0.00 47.39 +15:43:55 0 22.50 0.00 30.00 0.00 0.00 2.50 0.00 0.00 0.00 45.00 +15:43:55 1 18.26 0.00 30.43 0.00 0.00 3.48 0.00 0.00 0.00 47.83 +15:43:55 2 23.42 0.00 25.23 0.00 0.00 1.80 0.00 0.00 0.00 49.55 +15:43:55 3 25.23 0.00 23.42 0.00 0.00 2.70 0.00 0.00 0.00 48.65 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 22.17 0.00 27.39 0.00 0.00 3.04 0.00 0.00 0.00 47.39 +Average: 0 22.50 0.00 30.00 0.00 0.00 2.50 0.00 0.00 0.00 45.00 +Average: 1 18.26 0.00 30.43 0.00 0.00 3.48 0.00 0.00 0.00 47.83 +Average: 2 23.42 0.00 25.23 0.00 0.00 1.80 0.00 0.00 0.00 49.55 +Average: 3 25.23 0.00 23.42 0.00 0.00 2.70 0.00 0.00 0.00 48.65 +subscribed to [/producer] +average: 267.39MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 257.53MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 259.09MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 261.01MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 227.57MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 30.83MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +subscribed to [/producer] +average rate: 989.654 + min: 0.000s max: 0.008s std dev: 0.00072s window: 937 +average rate: 988.326 + min: 0.000s max: 0.010s std dev: 0.00071s window: 1925 +average rate: 988.275 + min: 0.000s max: 0.010s std dev: 0.00073s window: 2916 +average rate: 989.124 + min: 0.000s max: 0.010s std dev: 0.00074s window: 3908 +average rate: 985.535 + min: 0.000s max: 0.013s std dev: 0.00079s window: 4884 +average rate: 985.869 + min: 0.000s max: 0.013s std dev: 0.00078s window: 5007 +============================ +*********** setting loop rate: 5000 +loop rate: 5000 +block size: 32768 +loop rate: 5000 Hz +block size: 32768 Bytes +requested bandwidth: 163840000 Bytes/s +requested bandwidth: 163 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:44:05 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:44:06 all 31.66 0.00 15.83 0.53 0.00 1.85 0.00 0.00 0.00 50.13 +15:44:06 0 32.97 0.00 13.19 0.00 0.00 1.10 0.00 0.00 0.00 52.75 +15:44:06 1 27.84 0.00 19.59 0.00 0.00 2.06 0.00 0.00 0.00 50.52 +15:44:06 2 34.00 0.00 16.00 2.00 0.00 2.00 0.00 0.00 0.00 46.00 +15:44:06 3 30.77 0.00 15.38 0.00 0.00 1.10 0.00 0.00 0.00 52.75 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 31.66 0.00 15.83 0.53 0.00 1.85 0.00 0.00 0.00 50.13 +Average: 0 32.97 0.00 13.19 0.00 0.00 1.10 0.00 0.00 0.00 52.75 +Average: 1 27.84 0.00 19.59 0.00 0.00 2.06 0.00 0.00 0.00 50.52 +Average: 2 34.00 0.00 16.00 2.00 0.00 2.00 0.00 0.00 0.00 46.00 +Average: 3 30.77 0.00 15.38 0.00 0.00 1.10 0.00 0.00 0.00 52.75 +subscribed to [/producer] +average: 147.72MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 99.01MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 134.25MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 154.23MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 138.29MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 11.24MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +subscribed to [/producer] +average rate: 4420.777 + min: 0.000s max: 0.009s std dev: 0.00034s window: 4181 +average rate: 4380.584 + min: 0.000s max: 0.009s std dev: 0.00034s window: 8538 +average rate: 4374.608 + min: 0.000s max: 0.014s std dev: 0.00035s window: 12895 +average rate: 4390.020 + min: 0.000s max: 0.014s std dev: 0.00036s window: 17382 +average rate: 4383.524 + min: 0.000s max: 0.014s std dev: 0.00036s window: 21748 +average rate: 4321.123 + min: 0.000s max: 0.044s std dev: 0.00048s window: 22055 +============================ +loop rate: 5000 +block size: 65536 +loop rate: 5000 Hz +block size: 65536 Bytes +requested bandwidth: 327680000 Bytes/s +requested bandwidth: 327 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:44:14 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:44:15 all 31.58 0.00 17.63 0.53 0.00 2.11 0.00 0.00 0.00 48.16 +15:44:15 0 32.32 0.00 18.18 0.00 0.00 4.04 0.00 0.00 0.00 45.45 +15:44:15 1 31.91 0.00 20.21 1.06 0.00 0.00 0.00 0.00 0.00 46.81 +15:44:15 2 31.52 0.00 16.30 0.00 0.00 2.17 0.00 0.00 0.00 50.00 +15:44:15 3 29.79 0.00 17.02 0.00 0.00 2.13 0.00 0.00 0.00 51.06 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 31.58 0.00 17.63 0.53 0.00 2.11 0.00 0.00 0.00 48.16 +Average: 0 32.32 0.00 18.18 0.00 0.00 4.04 0.00 0.00 0.00 45.45 +Average: 1 31.91 0.00 20.21 1.06 0.00 0.00 0.00 0.00 0.00 46.81 +Average: 2 31.52 0.00 16.30 0.00 0.00 2.17 0.00 0.00 0.00 50.00 +Average: 3 29.79 0.00 17.02 0.00 0.00 2.13 0.00 0.00 0.00 51.06 +subscribed to [/producer] +average rate: 4379.265 + min: 0.000s max: 0.010s std dev: 0.00033s window: 4361 +average rate: 4328.124 + min: 0.000s max: 0.010s std dev: 0.00035s window: 8658 +average rate: 4321.438 + min: 0.000s max: 0.010s std dev: 0.00036s window: 12986 +average rate: 4327.577 + min: 0.000s max: 0.015s std dev: 0.00038s window: 17355 +average rate: 4260.429 + min: 0.000s max: 0.015s std dev: 0.00039s window: 21375 +average rate: 4252.846 + min: 0.000s max: 0.015s std dev: 0.00040s window: 22255 +subscribed to [/producer] +average: 307.76MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 291.95MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 264.60MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 288.07MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 275.78MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 22.67MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +============================ +loop rate: 5000 +block size: 131072 +loop rate: 5000 Hz +block size: 131072 Bytes +requested bandwidth: 655360000 Bytes/s +requested bandwidth: 655 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:44:25 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:44:26 all 34.82 0.00 21.73 0.00 0.00 2.09 0.00 0.00 0.00 41.36 +15:44:26 0 37.11 0.00 20.62 0.00 0.00 2.06 0.00 0.00 0.00 40.21 +15:44:26 1 38.61 0.00 22.77 0.00 0.00 1.98 0.00 0.00 0.00 36.63 +15:44:26 2 29.03 0.00 24.73 0.00 0.00 4.30 0.00 0.00 0.00 41.94 +15:44:26 3 34.74 0.00 18.95 0.00 0.00 1.05 0.00 0.00 0.00 45.26 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 34.82 0.00 21.73 0.00 0.00 2.09 0.00 0.00 0.00 41.36 +Average: 0 37.11 0.00 20.62 0.00 0.00 2.06 0.00 0.00 0.00 40.21 +Average: 1 38.61 0.00 22.77 0.00 0.00 1.98 0.00 0.00 0.00 36.63 +Average: 2 29.03 0.00 24.73 0.00 0.00 4.30 0.00 0.00 0.00 41.94 +Average: 3 34.74 0.00 18.95 0.00 0.00 1.05 0.00 0.00 0.00 45.26 +subscribed to [/producer] +average: 425.89MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 508.83MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 518.20MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 416.88MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 485.55MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 46.26MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +subscribed to [/producer] +average rate: 3728.485 + min: 0.000s max: 0.008s std dev: 0.00038s window: 3709 +average rate: 3784.633 + min: 0.000s max: 0.009s std dev: 0.00038s window: 7566 +average rate: 3756.578 + min: 0.000s max: 0.012s std dev: 0.00042s window: 11281 +average rate: 3738.628 + min: 0.000s max: 0.012s std dev: 0.00041s window: 14994 +average rate: 3637.043 + min: 0.000s max: 0.012s std dev: 0.00043s window: 18252 +average rate: 3649.013 + min: 0.000s max: 0.012s std dev: 0.00043s window: 19391 +============================ +loop rate: 5000 +block size: 262144 +loop rate: 5000 Hz +block size: 262144 Bytes +requested bandwidth: 1310720000 Bytes/s +requested bandwidth: 1310 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:44:35 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:44:36 all 42.03 0.00 24.81 0.25 0.00 2.78 0.00 0.00 0.00 30.13 +15:44:36 0 42.86 0.00 28.57 0.00 0.00 2.04 0.00 0.00 0.00 26.53 +15:44:36 1 36.00 0.00 31.00 0.00 0.00 2.00 0.00 0.00 0.00 31.00 +15:44:36 2 43.88 0.00 21.43 0.00 0.00 4.08 0.00 0.00 0.00 30.61 +15:44:36 3 46.00 0.00 19.00 0.00 0.00 3.00 0.00 0.00 0.00 32.00 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 42.03 0.00 24.81 0.25 0.00 2.78 0.00 0.00 0.00 30.13 +Average: 0 42.86 0.00 28.57 0.00 0.00 2.04 0.00 0.00 0.00 26.53 +Average: 1 36.00 0.00 31.00 0.00 0.00 2.00 0.00 0.00 0.00 31.00 +Average: 2 43.88 0.00 21.43 0.00 0.00 4.08 0.00 0.00 0.00 30.61 +Average: 3 46.00 0.00 19.00 0.00 0.00 3.00 0.00 0.00 0.00 32.00 +subscribed to [/producer] +average rate: 1834.063 + min: 0.000s max: 0.008s std dev: 0.00053s window: 1732 +average rate: 1808.516 + min: 0.000s max: 0.012s std dev: 0.00061s window: 3519 +average rate: 1790.986 + min: 0.000s max: 0.017s std dev: 0.00070s window: 5281 +average rate: 1803.932 + min: 0.000s max: 0.017s std dev: 0.00066s window: 7121 +average rate: 1736.592 + min: 0.000s max: 0.018s std dev: 0.00077s window: 8611 +average rate: 1746.299 + min: 0.000s max: 0.018s std dev: 0.00078s window: 9068 +subscribed to [/producer] +average: 471.87MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 445.65MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 449.62MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 492.33MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 553.82MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 84.51MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +============================ +*********** setting loop rate: 10000 +loop rate: 10000 +block size: 32768 +loop rate: 10000 Hz +block size: 32768 Bytes +requested bandwidth: 327680000 Bytes/s +requested bandwidth: 327 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:44:45 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:44:46 all 35.88 0.00 21.11 0.00 0.00 1.85 0.00 0.00 0.00 41.16 +15:44:46 0 33.68 0.00 23.16 0.00 0.00 2.11 0.00 0.00 0.00 41.05 +15:44:46 1 36.46 0.00 20.83 0.00 0.00 2.08 0.00 0.00 0.00 40.62 +15:44:46 2 33.68 0.00 23.16 0.00 0.00 1.05 0.00 0.00 0.00 42.11 +15:44:46 3 40.22 0.00 16.30 0.00 0.00 2.17 0.00 0.00 0.00 41.30 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 35.88 0.00 21.11 0.00 0.00 1.85 0.00 0.00 0.00 41.16 +Average: 0 33.68 0.00 23.16 0.00 0.00 2.11 0.00 0.00 0.00 41.05 +Average: 1 36.46 0.00 20.83 0.00 0.00 2.08 0.00 0.00 0.00 40.62 +Average: 2 33.68 0.00 23.16 0.00 0.00 1.05 0.00 0.00 0.00 42.11 +Average: 3 40.22 0.00 16.30 0.00 0.00 2.17 0.00 0.00 0.00 41.30 +subscribed to [/producer] +average: 298.19MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 229.92MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 307.01MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 275.21MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 247.15MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +average: 12.23MB/s + mean: 0.03MB min: 0.03MB max: 0.03MB window: 100 +subscribed to [/producer] +average rate: 8173.239 + min: 0.000s max: 0.017s std dev: 0.00030s window: 8126 +average rate: 8218.362 + min: 0.000s max: 0.017s std dev: 0.00025s window: 16430 +average rate: 8294.146 + min: 0.000s max: 0.017s std dev: 0.00025s window: 24939 +average rate: 8245.128 + min: 0.000s max: 0.017s std dev: 0.00026s window: 33115 +average rate: 8060.169 + min: 0.000s max: 0.022s std dev: 0.00032s window: 40538 +average rate: 8040.331 + min: 0.000s max: 0.022s std dev: 0.00033s window: 41394 +============================ +loop rate: 10000 +block size: 65536 +loop rate: 10000 Hz +block size: 65536 Bytes +requested bandwidth: 655360000 Bytes/s +requested bandwidth: 655 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:44:55 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:44:56 all 35.54 0.00 26.53 0.00 0.00 2.65 0.00 0.00 0.00 35.28 +15:44:56 0 33.33 0.00 28.12 0.00 0.00 2.08 0.00 0.00 0.00 36.46 +15:44:56 1 31.18 0.00 30.11 0.00 0.00 4.30 0.00 0.00 0.00 34.41 +15:44:56 2 39.78 0.00 23.66 0.00 0.00 2.15 0.00 0.00 0.00 34.41 +15:44:56 3 38.71 0.00 23.66 0.00 0.00 2.15 0.00 0.00 0.00 35.48 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 35.54 0.00 26.53 0.00 0.00 2.65 0.00 0.00 0.00 35.28 +Average: 0 33.33 0.00 28.12 0.00 0.00 2.08 0.00 0.00 0.00 36.46 +Average: 1 31.18 0.00 30.11 0.00 0.00 4.30 0.00 0.00 0.00 34.41 +Average: 2 39.78 0.00 23.66 0.00 0.00 2.15 0.00 0.00 0.00 34.41 +Average: 3 38.71 0.00 23.66 0.00 0.00 2.15 0.00 0.00 0.00 35.48 +subscribed to [/producer] +average: 192.51MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 342.20MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 484.25MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 247.05MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 543.34MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +average: 23.81MB/s + mean: 0.07MB min: 0.07MB max: 0.07MB window: 100 +subscribed to [/producer] +average rate: 5802.214 + min: 0.000s max: 0.021s std dev: 0.00056s window: 5504 +average rate: 6247.071 + min: 0.000s max: 0.021s std dev: 0.00044s window: 12184 +average rate: 6068.726 + min: 0.000s max: 0.021s std dev: 0.00043s window: 17940 +average rate: 6020.825 + min: 0.000s max: 0.021s std dev: 0.00040s window: 23856 +average rate: 5858.997 + min: 0.000s max: 0.021s std dev: 0.00041s window: 29146 +average rate: 5842.699 + min: 0.000s max: 0.021s std dev: 0.00042s window: 30910 +============================ +loop rate: 10000 +block size: 131072 +loop rate: 10000 Hz +block size: 131072 Bytes +requested bandwidth: 1310720000 Bytes/s +requested bandwidth: 1310 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:45:06 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:45:07 all 43.39 0.00 25.93 0.00 0.00 3.17 0.00 0.00 0.00 27.51 +15:45:07 0 41.67 0.00 25.00 0.00 0.00 5.21 0.00 0.00 0.00 28.12 +15:45:07 1 45.36 0.00 26.80 0.00 0.00 1.03 0.00 0.00 0.00 26.80 +15:45:07 2 42.39 0.00 27.17 0.00 0.00 3.26 0.00 0.00 0.00 27.17 +15:45:07 3 44.44 0.00 24.44 0.00 0.00 2.22 0.00 0.00 0.00 28.89 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 43.39 0.00 25.93 0.00 0.00 3.17 0.00 0.00 0.00 27.51 +Average: 0 41.67 0.00 25.00 0.00 0.00 5.21 0.00 0.00 0.00 28.12 +Average: 1 45.36 0.00 26.80 0.00 0.00 1.03 0.00 0.00 0.00 26.80 +Average: 2 42.39 0.00 27.17 0.00 0.00 3.26 0.00 0.00 0.00 27.17 +Average: 3 44.44 0.00 24.44 0.00 0.00 2.22 0.00 0.00 0.00 28.89 +subscribed to [/producer] +average: 441.43MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 593.35MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 591.56MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 489.21MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 501.49MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +average: 42.07MB/s + mean: 0.13MB min: 0.13MB max: 0.13MB window: 100 +subscribed to [/producer] +average rate: 3538.667 + min: 0.000s max: 0.009s std dev: 0.00037s window: 3503 +average rate: 3573.752 + min: 0.000s max: 0.014s std dev: 0.00043s window: 7132 +average rate: 3668.009 + min: 0.000s max: 0.015s std dev: 0.00044s window: 10990 +average rate: 3639.183 + min: 0.000s max: 0.015s std dev: 0.00044s window: 14577 +average rate: 3547.107 + min: 0.000s max: 0.015s std dev: 0.00048s window: 17764 +average rate: 3573.963 + min: 0.000s max: 0.015s std dev: 0.00047s window: 19253 +============================ +loop rate: 10000 +block size: 262144 +loop rate: 10000 Hz +block size: 262144 Bytes +requested bandwidth: 2621440000 Bytes/s +requested bandwidth: 2621 MBytes/s +PUBLISHING LOOP ON +LISTENING +Linux 5.4.0-70-generic (E6520) 31/03/21 _x86_64_ (4 CPU) + +15:45:16 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +15:45:17 all 45.97 0.00 34.29 0.26 0.00 3.38 0.00 0.00 0.00 16.10 +15:45:17 0 47.31 0.00 26.88 0.00 0.00 2.15 0.00 0.00 0.00 23.66 +15:45:17 1 40.21 0.00 42.27 0.00 0.00 4.12 0.00 0.00 0.00 13.40 +15:45:17 2 46.39 0.00 36.08 0.00 0.00 3.09 0.00 0.00 0.00 14.43 +15:45:17 3 50.51 0.00 31.31 1.01 0.00 4.04 0.00 0.00 0.00 13.13 + +Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle +Average: all 45.97 0.00 34.29 0.26 0.00 3.38 0.00 0.00 0.00 16.10 +Average: 0 47.31 0.00 26.88 0.00 0.00 2.15 0.00 0.00 0.00 23.66 +Average: 1 40.21 0.00 42.27 0.00 0.00 4.12 0.00 0.00 0.00 13.40 +Average: 2 46.39 0.00 36.08 0.00 0.00 3.09 0.00 0.00 0.00 14.43 +Average: 3 50.51 0.00 31.31 1.01 0.00 4.04 0.00 0.00 0.00 13.13 +subscribed to [/producer] +average rate: 1678.509 + min: 0.000s max: 0.024s std dev: 0.00092s window: 1587 +average rate: 1710.908 + min: 0.000s max: 0.024s std dev: 0.00082s window: 3332 +average rate: 1721.681 + min: 0.000s max: 0.024s std dev: 0.00079s window: 5079 +average rate: 1707.433 + min: 0.000s max: 0.024s std dev: 0.00080s window: 6755 +average rate: 1639.903 + min: 0.000s max: 0.024s std dev: 0.00087s window: 8143 +average rate: 1647.188 + min: 0.000s max: 0.024s std dev: 0.00087s window: 8625 +subscribed to [/producer] +average: 421.21MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 308.63MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 374.44MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 522.90MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 510.71MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +average: 79.43MB/s + mean: 0.26MB min: 0.26MB max: 0.26MB window: 100 +============================