mteb/BrightProRoboticsRetrieval huggingface dataset:
00283   {
    00284     nodes.clear();
    00285     ros::master::getNodes(nodes);
    00286     ROS_DEBUG("Trying to shutdown nicely, [%d] nodes still alive, waiting...",(int)nodes.size());
    00287     for (ros::V_string::iterator it = nodes.begin(); it != nodes.end(); it++)
    00288     {
    00289       ROS_DEBUG("    node[%d]: [%s]",(int)nodes.size(),it->c_str());
    00290       usleep(100000);
    00291     }
    00292 
    00293   }
    00294   ROS_DEBUG("Stopping gazebo");
    00295   */
    00296 
    00297   //TODO: use a boost::signal
    00298   gazebo::Simulator::Instance()->SetUserQuit();
    00299   return;
    00300 }
    00301 
    00302 
    [00303](classGazeboROSNode.html) class [GazeboROSNode](classGazeboROSNode.html)
    00304 {
    00305   public:
    [00306](classGazeboROSNode.html#a14766ec5f2f7d87e33b21ced7895fd13)     [GazeboROSNode](classGazeboROSNode.html#a14766ec5f2f7d87e33b21ced7895fd13)() : [rosnode_](classGazeboROSNode.html#ae9011736edb2ec542d7176cdddeb546d)("~")
    00307     {
    00308         [pub_gazebo_paused_](classGazeboROSNode.html#a5d3fe16d1240033b9bb04ef67bc24c9a) = this->[rosnode_](classGazeboROSNode.html#ae9011736edb2ec542d7176cdddeb546d).[advertise](../../../api/roscpp/html/classros_1_1NodeHandle.html#a68232c46583059c8f7d948b154689e4c)<std_msgs::Bool>("paused", 1, true);
    00309 
    00311       this->[physics_reconfigure_initialized_](classGazeboROSNode.html#a2181c5f39b7ef9e85ef3382e53f66b40) = false;
    00312       this->[gazebo_callback_queue_thread_](classGazeboROSNode.html#a382ac60d7e343d5dc666c4cf3d399bf7) = new boost::thread( &[GazeboROSNode::gazeboQueueThread](classGazeboROSNode.html#ab7cc0342705dfac7b7aac77001ad3603 "ros queue thread for this node"),this );
    00313 
    00315       this->[physics_reconfigure_thread_](classGazeboROSNode.html#abadd1aabaaa2353bccd4a48bc561e779) = new boost::thread(boost::bind(&[GazeboROSNode::PhysicsReconfigureNode](classGazeboROSNode.html#aeeeaf330e57c06557910d62034bab2d5), this));
    00316 
    00318       this->[AdvertiseServices](classGazeboROSNode.html#a373bfa381a9d1631537af92ecfa11499 "advertise services")();
    00319 
    00320       // connect helper function to signal for scheduling torque/forces, etc
    00321       gazebo::World::Instance()->ConnectWorldUpdateStartSignal(boost::bind(&[GazeboROSNode::wrenchBodySchedulerSlot](classGazeboROSNode.html#a39113e9e18f20d71c38aeeaecc17584b),this));
    00322       gazebo::World::Instance()->ConnectWorldUpdateStartSignal(boost::bind(&[GazeboROSNode::forceJointSchedulerSlot](classGazeboROSNode.html#aee5784a84181a115059d6cf43a0cb67d),this));
    00323       gazebo::World::Instance()->ConnectWorldUpdateStartSignal(boost::bind(&[GazeboROSNode::publishSimTime](classGazeboROSNode.html#a48733f4c02ab9c9976653dfd37c89e34),this));
    00324 
    00325       // for internal gazebo xml use
[ ![@hsu](https://avatars.githubusercontent.com/u/138109?s=52&v=4) ](/hsu) [
![@mintar](https://avatars.githubusercontent.com/u/320188?s=52&v=4) ](/mintar)
[ ![@corot](https://avatars.githubusercontent.com/u/322610?s=52&v=4) ](/corot)
[ ![@k-okada](https://avatars.githubusercontent.com/u/493276?s=52&v=4)
](/k-okada) [
![@fmessmer](https://avatars.githubusercontent.com/u/508006?s=52&v=4)
](/fmessmer) [
![@davetcoleman](https://avatars.githubusercontent.com/u/561060?s=52&v=4)
](/davetcoleman) [
![@mrjogo](https://avatars.githubusercontent.com/u/679360?s=52&v=4) ](/mrjogo)
[ ![@jbohren](https://avatars.githubusercontent.com/u/1253450?s=52&v=4)
](/jbohren) [
![@Nurgak](https://avatars.githubusercontent.com/u/1785126?s=52&v=4)
](/Nurgak) [
![@TheDash](https://avatars.githubusercontent.com/u/1786601?s=52&v=4)
](/TheDash) [
![@j-rivero](https://avatars.githubusercontent.com/u/2098802?s=52&v=4)
](/j-rivero) [
![@dpsolomon](https://avatars.githubusercontent.com/u/4515469?s=52&v=4)
](/dpsolomon) [
![@felixvd](https://avatars.githubusercontent.com/u/4535737?s=52&v=4)
](/felixvd) [ ![@the-raspberry-pi-
guy](https://avatars.githubusercontent.com/u/5570173?s=52&v=4) ](/the-
raspberry-pi-guy) [
![@jacknlliu](https://avatars.githubusercontent.com/u/6220143?s=52&v=4)
](/jacknlliu) [
![@anshulpaigwar](https://avatars.githubusercontent.com/u/6399885?s=52&v=4)
](/anshulpaigwar) [
![@Kukanani](https://avatars.githubusercontent.com/u/6893343?s=52&v=4)
](/Kukanani) [
![@rcywongaa](https://avatars.githubusercontent.com/u/7285669?s=52&v=4)
](/rcywongaa) [
![@rkeatin3](https://avatars.githubusercontent.com/u/9117204?s=52&v=4)
](/rkeatin3) [ ![@kev-the-
dev](https://avatars.githubusercontent.com/u/9502636?s=52&v=4) ](/kev-the-dev)
and others
* [ Login  ](//www.rssing.com/account.php?a=lgi&t=%2F%2Fgazebo214.rssing.com%2Fchan-57893035%2Flatest.php)
    * [ Account ](//www.rssing.com/account.php)
    * [ Sign Up ](//www.rssing.com/account.php?a=reg&t=%2F%2Fgazebo214.rssing.com%2Fchan-57893035%2Flatest.php)
* [ //publio48688.rssing.com/chan-48034318/article2.html ](//publio48688.rssing.com/chan-48034318/article2.html)
  * [ //jackslbs1.rssing.com/chan-72890905/index-page1.html ](//jackslbs1.rssing.com/chan-72890905/index-page1.html)
  * [ //publio48689.rssing.com/chan-48034334/article5.html ](//publio48689.rssing.com/chan-48034334/article5.html)
  * [ //teach3147.rssing.com/chan-13678351/index-latest.php ](//teach3147.rssing.com/chan-13678351/index-latest.php)
  * [ //harpalyce73.rssing.com/chan-13677696/index-page1.html ](//harpalyce73.rssing.com/chan-13677696/index-page1.html)
  * [ //genou46.rssing.com/chan-31394312/index-latest.php ](//genou46.rssing.com/chan-31394312/index-latest.php)
  * [ //amphitheatrical72.rssing.com/chan-31394281/index-page1.html ](//amphitheatrical72.rssing.com/chan-31394281/index-page1.html)
  * [ //newsbiscuit1638.rssing.com/chan-31394371/article4.html ](//newsbiscuit1638.rssing.com/chan-31394371/article4.html)
  * [ //fanseite105.rssing.com/chan-31394071/article3.html ](//fanseite105.rssing.com/chan-31394071/article3.html)
  * [ //wunderland231.rssing.com/chan-21124254/index-latest.php ](//wunderland231.rssing.com/chan-21124254/index-latest.php)
  * [ //graphics4780.rssing.com/chan-57586014/index-latest.php ](//graphics4780.rssing.com/chan-57586014/index-latest.php)
  * [ //makeba130.rssing.com/chan-21123925/article2.html ](//makeba130.rssing.com/chan-21123925/article2.html)
  * [ //paginas368.rssing.com/chan-13677712/index-page1.html ](//paginas368.rssing.com/chan-13677712/index-page1.html)
  * [ //bestof99.rssing.com/chan-1196027/article6.html ](//bestof99.rssing.com/chan-1196027/article6.html)
  * [ //clayzmama690.rssing.com/chan-48035399/article2.html ](//clayzmama690.rssing.com/chan-48035399/article2.html)
  * [ //creighton432.rssing.com/chan-57585419/article2.html ](//creighton432.rssing.com/chan-57585419/article2.html)
  * [ //memolition80.rssing.com/chan-57585085/index-page1.html ](//memolition80.rssing.com/chan-57585085/index-page1.html)
  * [ //vanilladesign27.rssing.com/chan-13677810/index-latest.php ](//vanilladesign27.rssing.com/chan-13677810/index-latest.php)
  * [ //billancourt170.rssing.com/chan-57585562/index-page1.html ](//billancourt170.rssing.com/chan-57585562/index-page1.html)
  * [ //modern5023.rssing.com/chan-31394499/index-page1.html ](//modern5023.rssing.com/chan-31394499/index-page1.html)
01450                     model_state->model_name.c_str(),model_state->reference_frame.c_str());
    01451           return;
    01452         }
    01453 
    01454         bool is_paused = gazebo::Simulator::Instance()->IsPaused();
    01455         gazebo::Simulator::Instance()->SetPaused(true);
    01456         model->SetWorldPose(target_pose);
    01457         gazebo::Simulator::Instance()->SetPaused(is_paused);
    01458 
    01459         // set model velocity to 0
    01460         model->SetLinearVel(target_pos_dot);
    01461         model->SetAngularVel(target_rot_dot);
    01462 
    01463         return;
    01464       }
    01465     }
    01466 
    [01469](classGazeboROSNode.html#af9745546aff989b97db487fd056a6437)     bool [applyJointEffort](classGazeboROSNode.html#af9745546aff989b97db487fd056a6437)([gazebo_msgs::ApplyJointEffort::Request](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyJointEffortRequest__.html) &req,[gazebo_msgs::ApplyJointEffort::Response](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyJointEffortResponse__.html) &res)
    01470     {
    01471       gazebo::Joint* joint = NULL;
    01472       const std::vector<gazebo::Model*> models = gazebo::World::Instance()->GetModels();
    01473       for (std::vector<gazebo::Model*>::const_iterator miter = models.begin(); miter != models.end(); miter++)
    01474       {
    01475         joint = (*miter)->GetJoint(req.[joint_name](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyJointEffortRequest__.html#a52984f9468e6d9a8a653539a51a0a169));
    01476         if (joint) break;
    01477       }
    01478 
    01479       if (joint == NULL)
    01480       {
    01481         res.[success](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyJointEffortResponse__.html#a4fe78ed7323ef413512b16b9f3f9a9bf) = false;
    01482         res.[status_message](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyJointEffortResponse__.html#a7b23717c14f723390bb7e8d243f5f481) = "ApplyJointEffort: joint not found";
    01483         return false;
    01484       }
    01485       else
    01486       {
    01487 
    01488         [GazeboROSNode::ForceJointJob](classGazeboROSNode_1_1ForceJointJob.html)* fjj = new [GazeboROSNode::ForceJointJob](classGazeboROSNode_1_1ForceJointJob.html);
    01489         fjj->[joint](classGazeboROSNode_1_1ForceJointJob.html#ae6b3a1f76030167a49587d20a9745f22) = joint;
    01490         fjj->[force](classGazeboROSNode_1_1ForceJointJob.html#a12a44288945997636725a0d3917a783b) = req.[effort](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyJointEffortRequest__.html#a6dfb37382256882568c810ffbb66ca1c);
    01491         fjj->[start_time](classGazeboROSNode_1_1ForceJointJob.html#a1a6abca9e598c0860f79c9f86a440cde) = req.[start_time](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyJointEffortRequest__.html#a932cec6676221a8cf64d9b6d21495ee3);
02040                    reference_force.y,
    02041                    reference_force.z,
    02042                    reference_torque.x,
    02043                    reference_torque.y,
    02044                    reference_torque.z,
    02045                    body->GetName().c_str(),
    02046                    target_force.x,
    02047                    target_force.y,
    02048                    target_force.z,
    02049                    target_torque.x,
    02050                    target_torque.y,
    02051                    target_torque.z
    02052                  );
    02053 
    02054       }
    02055       else if (req.[reference_frame](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyBodyWrenchRequest__.html#a478aa71d79dc3b29ba87496996406980) == "" || req.[reference_frame](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyBodyWrenchRequest__.html#a478aa71d79dc3b29ba87496996406980) == "world" || req.[reference_frame](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyBodyWrenchRequest__.html#a478aa71d79dc3b29ba87496996406980) == "map" || req.[reference_frame](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyBodyWrenchRequest__.html#a478aa71d79dc3b29ba87496996406980) == "/map")
    02056       {
    02057         [ROS_INFO](../../../api/rosconsole/html/macros__generated_8h.html#a20d5da22f16df09d52a7577227636a83)("ApplyBodyWrench: reference_frame is empty/world/map, using inertial frame, transferring from body relative to inertial frame");
    02058         // FIXME: transfer to inertial frame
    02059         gazebo::Pose3d target_to_reference = body->GetWorldPose();
    02060         target_force = reference_force;
    02061         target_torque = reference_torque;
    02062 
    02063       }
    02064       else
    02065       {
    02066         [ROS_ERROR](../../../api/rosconsole/html/macros__generated_8h.html#a7fb635b03cc608284eadecd2f8becd9a)("ApplyBodyWrench: reference_frame is not a valid link name");
    02067         res.[success](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyBodyWrenchResponse__.html#a614b4dd49b7b7f87fb360bc0f420f8ed) = false;
    02068         res.[status_message](../../gazebo_msgs/html/structgazebo__msgs_1_1ApplyBodyWrenchResponse__.html#aeb381da235043f2b7e2875d78beacade) = "ApplyBodyWrench: reference_frame not found";
    02069         return false;
    02070       }
    02071 
    02072       // apply wrench
    02073       // schedule a job to do below at appropriate times:
    02074       // body->SetForce(force)
    02075       // body->SetTorque(torque)
    02076       [GazeboROSNode::WrenchBodyJob](classGazeboROSNode_1_1WrenchBodyJob.html)* wej = new [GazeboROSNode::WrenchBodyJob](classGazeboROSNode_1_1WrenchBodyJob.html);
    02077       wej->[body](classGazeboROSNode_1_1WrenchBodyJob.html#aff58f515a5c987724b2bfb53956cb18f) = body;
    02078       wej->[force](classGazeboROSNode_1_1WrenchBodyJob.html#a9abb6606ca8e3c79350e68be69d1dc67) = target_force;
    02079       wej->[torque](classGazeboROSNode_1_1WrenchBodyJob.html#a37e9b921287c703e53f2017823c2b6ed) = target_torque;
00079 #include "[gazebo_msgs/GetPhysicsProperties.h](../../gazebo_msgs/html/GetPhysicsProperties_8h.html)"
    00080 
    00081 #include "[gazebo_msgs/SetJointProperties.h](../../gazebo_msgs/html/SetJointProperties_8h.html)"
    00082 
    00083 #include "[gazebo_msgs/GetWorldProperties.h](../../gazebo_msgs/html/GetWorldProperties_8h.html)"
    00084 
    00085 #include "[gazebo_msgs/GetModelProperties.h](../../gazebo_msgs/html/GetModelProperties_8h.html)"
    00086 #include "[gazebo_msgs/GetModelState.h](../../gazebo_msgs/html/GetModelState_8h.html)"
    00087 #include "[gazebo_msgs/SetModelState.h](../../gazebo_msgs/html/SetModelState_8h.html)"
    00088 
    00089 #include "[gazebo_msgs/GetJointProperties.h](../../gazebo_msgs/html/GetJointProperties_8h.html)"
    00090 #include "[gazebo_msgs/ApplyJointEffort.h](../../gazebo_msgs/html/ApplyJointEffort_8h.html)"
    00091 
    00092 #include "[gazebo_msgs/GetLinkProperties.h](../../gazebo_msgs/html/GetLinkProperties_8h.html)"
    00093 #include "[gazebo_msgs/SetLinkProperties.h](../../gazebo_msgs/html/SetLinkProperties_8h.html)"
    00094 #include "[gazebo_msgs/SetLinkState.h](../../gazebo_msgs/html/SetLinkState_8h.html)"
    00095 #include "[gazebo_msgs/GetLinkState.h](../../gazebo_msgs/html/GetLinkState_8h.html)"
    00096 
    00097 // Topics
    00098 #include "[gazebo_msgs/ModelState.h](../../gazebo_msgs/html/ModelState_8h.html)"
    00099 #include "[gazebo_msgs/LinkState.h](../../gazebo_msgs/html/LinkState_8h.html)"
    00100 #include "[gazebo_msgs/ModelStates.h](../../gazebo_msgs/html/ModelStates_8h.html)"
    00101 #include "[gazebo_msgs/LinkStates.h](../../gazebo_msgs/html/LinkStates_8h.html)"
    00102 
    00103 #include "[geometry_msgs/Vector3.h](../../../api/geometry_msgs/html/Vector3_8h.html)"
    00104 #include "[geometry_msgs/Wrench.h](../../../api/geometry_msgs/html/Wrench_8h.html)"
    00105 #include "[geometry_msgs/Pose.h](../../../api/geometry_msgs/html/Pose_8h.html)"
    00106 #include "[geometry_msgs/Twist.h](../../../api/geometry_msgs/html/Twist_8h.html)"
    00107 
    00108 // For physics dynamics reconfigure
    00109 #include <dynamic_reconfigure/server.h>
    00110 #include <gazebo/PhysicsConfig.h>
    00111 #include "[gazebo_msgs/SetPhysicsProperties.h](../../gazebo_msgs/html/SetPhysicsProperties_8h.html)"
    00112 #include "[gazebo_msgs/GetPhysicsProperties.h](../../gazebo_msgs/html/GetPhysicsProperties_8h.html)"
    00113 
    00114 // For model pose transform to set custom joint angles
    00115 #include <[ros/ros.h](../../../api/roscpp/html/ros_8h.html)>
    00116 #include <[urdf/model.h](../../../api/urdf/html/model_8h.html)>
    00117 #include "LinearMath/btTransform.h"
    00118 #include "LinearMath/btVector3.h"
[02326](classGazeboROSNode.html#a05911ae1da87d03e4cd777417ee7ad89)     double [lastForceJointUpdateTime](classGazeboROSNode.html#a05911ae1da87d03e4cd777417ee7ad89);
    02327 
    [02330](classGazeboROSNode.html#a39113e9e18f20d71c38aeeaecc17584b)     void [wrenchBodySchedulerSlot](classGazeboROSNode.html#a39113e9e18f20d71c38aeeaecc17584b)()
    02331     {
    02332       if (this->[lastWrenchBodyUpdateTime](classGazeboROSNode.html#a10111db7cc35bc709eb1dd9f8ac6673d) == gazebo::Simulator::Instance()->GetSimTime().Double())
    02333         return;
    02334       // MDMutex locks in case model is getting deleted, don't have to do this if we delete jobs first
    02335       // boost::recursive_mutex::scoped_lock lock(*gazebo::Simulator::Instance()->GetMDMutex());
    02336       this->[lock_](classGazeboROSNode.html#a3895043c9355e3e2a23f84efe0060736 "A mutex to lock access to fields that are used in ROS message callbacks.").lock();
    02337       for (std::vector<GazeboROSNode::WrenchBodyJob*>::iterator iter=this->[wrench_body_jobs](classGazeboROSNode.html#ade2831b1970d2ceed871e82a9140c2bb).begin();iter!=this->[wrench_body_jobs](classGazeboROSNode.html#ade2831b1970d2ceed871e82a9140c2bb).end();)
    02338       {
    02339         // check times and apply wrench if necessary
    02340         if ([ros::Time](../../../api/rostime/html/classros_1_1Time.html)(gazebo::Simulator::Instance()->GetSimTime().Double()) >= (*iter)->start_time)
    02341           if ([ros::Time](../../../api/rostime/html/classros_1_1Time.html)(gazebo::Simulator::Instance()->GetSimTime().Double()) <= (*iter)->start_time+(*iter)->duration ||
    02342               (*iter)->duration.toSec() < 0.0)
    02343           {
    02344             if ((*iter)->body) // if body exists
    02345             {
    02346               (*iter)->body->SetForce((*iter)->force);
    02347               (*iter)->body->SetTorque((*iter)->torque);
    02348             }
    02349             else
    02350               (*iter)->duration.fromSec(0.0); // mark for delete
    02351           }
    02352 
    02353         if ([ros::Time](../../../api/rostime/html/classros_1_1Time.html)(gazebo::Simulator::Instance()->GetSimTime().Double()) > (*iter)->start_time+(*iter)->duration &&
    02354             (*iter)->duration.toSec() >= 0.0)
    02355         {
    02356           // remove from queue once expires
    02357           delete (*iter);
    02358           this->[wrench_body_jobs](classGazeboROSNode.html#ade2831b1970d2ceed871e82a9140c2bb).erase(iter);
    02359         }
    02360         else
    02361           iter++;
    02362       }
    02363       this->[lastWrenchBodyUpdateTime](classGazeboROSNode.html#a10111db7cc35bc709eb1dd9f8ac6673d) = gazebo::Simulator::Instance()->GetSimTime().Double();
    02364       this->[lock_](classGazeboROSNode.html#a3895043c9355e3e2a23f84efe0060736 "A mutex to lock access to fields that are used in ROS message callbacks.").unlock();
    02365     }
    02366 
    [02369](classGazeboROSNode.html#aee5784a84181a115059d6cf43a0cb67d)     void [forceJointSchedulerSlot](classGazeboROSNode.html#aee5784a84181a115059d6cf43a0cb67d)()
* [ //apkmirror717.rssing.com/chan-75476424/article41.html ](//apkmirror717.rssing.com/chan-75476424/article41.html)
  * [ //lordisimo307.rssing.com/chan-17645870/index-page1.html ](//lordisimo307.rssing.com/chan-17645870/index-page1.html)
  * [ //nightsbridge83.rssing.com/chan-24852476/index-page1.html ](//nightsbridge83.rssing.com/chan-24852476/index-page1.html)
  * [ //decimal218.rssing.com/chan-51975378/index-page1.html ](//decimal218.rssing.com/chan-51975378/index-page1.html)
  * [ //thefantasyfix475.rssing.com/chan-17645945/index-latest.php ](//thefantasyfix475.rssing.com/chan-17645945/index-latest.php)
  * [ //roughriders189.rssing.com/chan-17645322/index-latest.php ](//roughriders189.rssing.com/chan-17645322/index-latest.php)
  * [ //advised150.rssing.com/chan-75476119/article9.html ](//advised150.rssing.com/chan-75476119/article9.html)
  * [ //advocating2909.rssing.com/chan-51975165/index-page1.html ](//advocating2909.rssing.com/chan-51975165/index-page1.html)
  * [ //vergessene196.rssing.com/chan-17645232/article25.html ](//vergessene196.rssing.com/chan-17645232/article25.html)
  * [ //aqqiah1.rssing.com/chan-34493024/article101.html ](//aqqiah1.rssing.com/chan-34493024/article101.html)
  * [ //complus11.rssing.com/chan-17645693/index-latest.php ](//complus11.rssing.com/chan-17645693/index-latest.php)
  * [ //ireland10002.rssing.com/chan-34493064/index-page1.html ](//ireland10002.rssing.com/chan-34493064/index-page1.html)
  * [ //twitter17421.rssing.com/chan-17645471/article10.html ](//twitter17421.rssing.com/chan-17645471/article10.html)
  * [ //mattbannister14.rssing.com/chan-24852962/index-latest.php ](//mattbannister14.rssing.com/chan-24852962/index-latest.php)
  * [ //latin3479.rssing.com/chan-51976324/index-page1.html ](//latin3479.rssing.com/chan-51976324/index-page1.html)
  * [ //tales3526.rssing.com/chan-42358061/index-page1.html ](//tales3526.rssing.com/chan-42358061/index-page1.html)
  * [ //elliott2512.rssing.com/chan-42357707/article14.html ](//elliott2512.rssing.com/chan-42357707/article14.html)
  * [ //realty3005.rssing.com/chan-24852848/index-page1.html ](//realty3005.rssing.com/chan-24852848/index-page1.html)
  * [ //inhumane102.rssing.com/chan-8557661/article6.html ](//inhumane102.rssing.com/chan-8557661/article6.html)
  * [ //junqueira56.rssing.com/chan-51975502/index-latest.php ](//junqueira56.rssing.com/chan-51975502/index-latest.php)
License

[ MPL-2.0 license ](/facontidavide/PlotJuggler/blob/main/LICENSE.md)

[ 4k  stars ](/facontidavide/PlotJuggler/stargazers) [ 566  forks
](/facontidavide/PlotJuggler/forks) [ Branches
](/facontidavide/PlotJuggler/branches) [ Tags
](/facontidavide/PlotJuggler/tags) [ Activity
](/facontidavide/PlotJuggler/activity)

[ Star  ](/login?return_to=%2Ffacontidavide%2FPlotJuggler)

[ Notifications ](/login?return_to=%2Ffacontidavide%2FPlotJuggler)

  * [ Code  ](/facontidavide/PlotJuggler)
  * [ Issues  127  ](/facontidavide/PlotJuggler/issues)
  * [ Pull requests  12  ](/facontidavide/PlotJuggler/pulls)
  * [ Discussions  ](/facontidavide/PlotJuggler/discussions)
  * [ Actions  ](/facontidavide/PlotJuggler/actions)
  * [ Projects  1  ](/facontidavide/PlotJuggler/projects)
  * [ Security  ](/facontidavide/PlotJuggler/security)
  * [ Insights  ](/facontidavide/PlotJuggler/pulse)

Additional navigation options

  * [ Code  ](/facontidavide/PlotJuggler)
  * [ Issues  ](/facontidavide/PlotJuggler/issues)
  * [ Pull requests  ](/facontidavide/PlotJuggler/pulls)
  * [ Discussions  ](/facontidavide/PlotJuggler/discussions)
  * [ Actions  ](/facontidavide/PlotJuggler/actions)
  * [ Projects  ](/facontidavide/PlotJuggler/projects)
  * [ Security  ](/facontidavide/PlotJuggler/security)
  * [ Insights  ](/facontidavide/PlotJuggler/pulse)
Skip to content

Toggle navigation

[ ](https://github.com/)

[ Sign in
](/login?return_to=https%3A%2F%2Fgithub.com%2Ffacontidavide%2FPlotJuggler)

  * Product 

    * [ Actions  Automate any workflow  ](/features/actions)
    * [ Packages  Host and manage packages  ](/features/packages)
    * [ Security  Find and fix vulnerabilities  ](/features/security)
    * [ Codespaces  Instant dev environments  ](/features/codespaces)
    * [ Copilot  Write better code with AI  ](/features/copilot)
    * [ Code review  Manage code changes  ](/features/code-review)
    * [ Issues  Plan and track work  ](/features/issues)
    * [ Discussions  Collaborate outside of code  ](/features/discussions)

Explore

    * [ All features ](/features)
    * [ Documentation  ](https://docs.github.com)
    * [ GitHub Skills  ](https://skills.github.com/)
    * [ Blog  ](https://github.blog)

  * Solutions 

For

    * [ Enterprise ](/enterprise)
    * [ Teams ](/team)
    * [ Startups ](/enterprise/startups)
    * [ Education  ](https://education.github.com)

By Solution

    * [ CI/CD & Automation ](/solutions/ci-cd/)
    * [ DevOps ](/solutions/devops/)
* [ Code  ](/introlab/rtabmap_ros)
  * [ Issues  424  ](/introlab/rtabmap_ros/issues)
  * [ Pull requests  0  ](/introlab/rtabmap_ros/pulls)
  * [ Actions  ](/introlab/rtabmap_ros/actions)
  * [ Projects  0  ](/introlab/rtabmap_ros/projects)
  * [ Wiki  ](/introlab/rtabmap_ros/wiki)
  * [ Security  ](/introlab/rtabmap_ros/security)
  * [ Insights  ](/introlab/rtabmap_ros/pulse)