Пример #1
0
double HumanAgent::evaluatePolicy(Environment<bool>& env){
#ifdef __USE_SDL
	Action action;
	int reward = 0;
    int totalReward = 0;
	int cumulativeReward = 0;
	
	//Repeat (for each episode):
	for(int episode = 0; episode < numEpisodesToEval; episode++){
		int step = 0;
		while(!env.game_over() && step < maxStepsInEpisode) {
			action = receiveAction();
            //If one wants to save trajectories, this is where the trajectory is saved:
            if(toSaveTrajectory){
                saveTrajectory(action);
            }
			reward = env.act(action);
			cumulativeReward += reward;
			step++;
		}
		printf("Episode %d, Cumulative Reward: %d\n", episode + 1, cumulativeReward);
        totalReward += cumulativeReward;
		cumulativeReward = 0;
		env.reset_game(); //Start the game again when the episode is over
	}
    return double(totalReward)/numEpisodesToEval;
}
Пример #2
0
///Connect Signals and Slots for the ui control
void ui_connections(QObject* ui, GraphManager* graph_mgr, OpenNIListener* listener)
{
  Qt::ConnectionType ctype = Qt::AutoConnection;
  if (ParameterServer::instance()->get<bool>("concurrent_io")) 
    ctype = Qt::DirectConnection;
  QObject::connect(ui, SIGNAL(reset()), graph_mgr, SLOT(reset()), ctype);
  QObject::connect(ui, SIGNAL(optimizeGraph()), graph_mgr, SLOT(optimizeGraph()), ctype);
  QObject::connect(ui, SIGNAL(togglePause()), listener, SLOT(togglePause()), ctype);
  QObject::connect(ui, SIGNAL(toggleBagRecording()), listener, SLOT(toggleBagRecording()), ctype);
  QObject::connect(ui, SIGNAL(getOneFrame()), listener, SLOT(getOneFrame()), ctype);
  QObject::connect(ui, SIGNAL(deleteLastFrame()), graph_mgr, SLOT(deleteLastFrame()), ctype);
  QObject::connect(ui, SIGNAL(sendAllClouds()), graph_mgr, SLOT(sendAllClouds()), ctype);
  QObject::connect(ui, SIGNAL(saveAllClouds(QString)), graph_mgr, SLOT(saveAllClouds(QString)), ctype);
  QObject::connect(ui, SIGNAL(saveOctomapSig(QString)), graph_mgr, SLOT(saveOctomap(QString)), ctype);
  QObject::connect(ui, SIGNAL(saveAllFeatures(QString)), graph_mgr, SLOT(saveAllFeatures(QString)), ctype);
  QObject::connect(ui, SIGNAL(saveIndividualClouds(QString)), graph_mgr, SLOT(saveIndividualClouds(QString)), ctype);
  QObject::connect(ui, SIGNAL(saveTrajectory(QString)), graph_mgr, SLOT(saveTrajectory(QString)), ctype);
  QObject::connect(ui, SIGNAL(toggleMapping(bool)), graph_mgr, SLOT(toggleMapping(bool)), ctype);
  QObject::connect(ui, SIGNAL(saveG2OGraph(QString)), graph_mgr, SLOT(saveG2OGraph(QString)), ctype);
}
Пример #3
0
bool RosUi::services_s(rgbd_slam::rgbdslam_ros_ui_s::Request  &req,
                       rgbd_slam::rgbdslam_ros_ui_s::Response &res )
{
    ROS_INFO_STREAM("Got Service Request. Command: " << req.command << ". Value: " << req.value );
    QString filename = QString::fromStdString(req.value);
    if     (req.command == "save_octomap"   ){ Q_EMIT saveOctomapSig(filename); }
    else if(req.command == "save_cloud"     ){ Q_EMIT saveAllClouds(filename); }
    else if(req.command == "save_g2o_graph" ){ Q_EMIT saveG2OGraph(filename); }
    else if(req.command == "save_trajectory"){ Q_EMIT saveTrajectory(filename); }
    else if(req.command == "save_features"  ){ Q_EMIT saveAllFeatures(filename); }
    else if(req.command == "save_individual"){ Q_EMIT saveIndividualClouds(filename); }
    else{
        ROS_ERROR("Invalid service call command: %s", req.command.c_str());
        ROS_INFO("Valid commands are: {\n - save_octomap\n -  save_cloud\n -  save_g2o_graph\n -  save_trajectory\n -  save_features\n -  save_individual\n}");
        return false;
    }
    return true;
}
Пример #4
0
bool RosUi::services(rgbd_slam::rgbdslam_ros_ui::Request  &req,
                     rgbd_slam::rgbdslam_ros_ui::Response &res )
{
  ROS_INFO_STREAM("Got Service Request. Command: " << req.command);
  if     (req.command == "reset"          ){ Q_EMIT reset(); }
  else if(req.command == "quick_save"     ){ Q_EMIT saveAllClouds(filename); }
  else if(req.command == "save_g2o_graph" ){ Q_EMIT saveG2OGraph("graph.g2o"); }
  else if(req.command == "save_trajectory"){ Q_EMIT saveTrajectory("trajectory"); }
  else if(req.command == "send_all"       ){ Q_EMIT sendAllClouds();}
  else if(req.command == "frame"          ){ Q_EMIT getOneFrame(); }
  else if(req.command == "delete_frame"   ){ Q_EMIT deleteLastFrame(); }
  else if(req.command == "optimize"       ){ Q_EMIT optimizeGraph(); }
  else if(req.command == "reload_config"  ){ ParameterServer::instance()->getValues();}
  else{
      ROS_ERROR("Invalid service call command: %s", req.command.c_str());
      ROS_ERROR("RGBDSLAM's services have changed in Feb '13, please revise your service calls");
      ROS_INFO("Valid commands are: {\n - reset\n - frame\n - quick_save\n -  send_all\n -  delete_frame\n -  optimize\n -  reload_config\n - save_trajectory\n}");
      return false;
  }
  return true;
}
Пример #5
0
void Graphical_UI::saveTrajectoryDialog() {
    QString myfilename = QFileDialog::getSaveFileName(this, "Save Current Trajectory Estimate", "trajectory", tr("All Files (*.*)"));
    Q_EMIT saveTrajectory(myfilename);
    QString message = tr("Saving current trajectory estimate (and possibly ground truth).");
    statusBar()->showMessage(message);
}