diff --git a/iri_robot_aspsi_how_to/instructions_dabo/Install_instructions_Dabo_ONLY_one_person_ACCOMPANIMENT_ASPSI.odt b/iri_robot_aspsi_how_to/instructions_dabo/Install_instructions_Dabo_ONLY_one_person_ACCOMPANIMENT_ASPSI.odt
index 33c87890552305e9af3497c1cea32c7e064ddf95..d6abd12faac2ea229d7702602ff2cf29df3b336c 100644
Binary files a/iri_robot_aspsi_how_to/instructions_dabo/Install_instructions_Dabo_ONLY_one_person_ACCOMPANIMENT_ASPSI.odt and b/iri_robot_aspsi_how_to/instructions_dabo/Install_instructions_Dabo_ONLY_one_person_ACCOMPANIMENT_ASPSI.odt differ
diff --git a/iri_robot_aspsi_how_to/instructions_for_IVO/Install_instructions_IVO_ONLY_one_person_ACCOMPANIMENT_ASPSI.odt b/iri_robot_aspsi_how_to/instructions_for_IVO/Install_instructions_IVO_ONLY_one_person_ACCOMPANIMENT_ASPSI.odt
index ca594e4c1b0afaeff321058cbc53cf8500b0fa03..6f94489f825f4766a211e80acd3161ff34877fac 100644
Binary files a/iri_robot_aspsi_how_to/instructions_for_IVO/Install_instructions_IVO_ONLY_one_person_ACCOMPANIMENT_ASPSI.odt and b/iri_robot_aspsi_how_to/instructions_for_IVO/Install_instructions_IVO_ONLY_one_person_ACCOMPANIMENT_ASPSI.odt differ
diff --git a/local_lib_people_prediction/src/nav/plan_local_nav.cpp b/local_lib_people_prediction/src/nav/plan_local_nav.cpp
index 8fb07a814a224c41c0c19e024905f2c334cca498..d6645cf4f217e0688dfa8c60efe88dc4b82cafad 100644
--- a/local_lib_people_prediction/src/nav/plan_local_nav.cpp
+++ b/local_lib_people_prediction/src/nav/plan_local_nav.cpp
@@ -1076,7 +1076,7 @@ bool Cplan_local_nav::robot_plan_companion2(Spose& pose_command, Cperson_abstrac
 
 	//clock_t pred_peopl_start, pred_peopl_end;
 	//pred_peopl_start=clock();
-/** Scene_prediction para todas las personas pero sin la persona que acompaña (Las colisiones con el acompañante son diferentes ***/
+/** Scene_prediction prediccion para todas las personas pero sin la persona que acompaña (Las colisiones con el acompañante son diferentes ***/
 	this->Cprediction_behavior::scene_prediction(); // scene prediction, needed, pero sin la person cmpanion y hará falta el robot en colisiones.
 
 /*** get the angle of compnaion with the prediction of the person before scene_prediction (angulos de acompañamiento segun colisiones con otras personas)***/
@@ -1140,7 +1140,7 @@ bool Cplan_local_nav::robot_plan_companion2(Spose& pose_command, Cperson_abstrac
 	//std::cout << "ANTES init_robot_plan2!!!! "<< std::endl;
 	//clock_t init_robot_plan2_start, init_robot_plan2_end;
 	//init_robot_plan2_start=clock();
-/*** Inicialización del plan: calcula goal dynamico en mi¡ovimiento y cuando persona parada (hay dos casos: Akp=en movimiento y Stop=cuando persona parada (luego dentro digo nombres exactos de los casos que hay)***/
+/*** Inicialización del plan: calcula goal dynamico en mi movimiento y cuando persona parada (hay dos casos: Akp=en movimiento y Stop=cuando persona parada (luego dentro digo nombres exactos de los casos que hay)***/
 	init_robot_plan2(robot_person_distance);
 	//init_robot_plan2_end=clock();
 	//std::cout << " DESPUES init_robot_plan2"<< std::endl;
@@ -3290,7 +3290,7 @@ unsigned int Cplan_local_nav::find_nearest_vertex( const Spoint& random_goal )
 }
 
 
-/*** funcion calcula propagacion plan. hay dos casos:
+/*** funcion calcula las fuerzas para la propagacion de la posicion del robot, plan en cada step. hay dos casos:
  * 1-robot navega solo hasta el lateral de la persona. Antiguo akp
  * 2- robot navega acompañando a la persona (usa tambien fuerza companion para propagar el trocito de la rama del path) ***/
 Sedge_tree Cplan_local_nav::calculate_edge( unsigned int parent_vertex, const Sdestination& random_goal, Cperson_abstract::companion_reactive reactive )
@@ -3495,7 +3495,7 @@ Sedge_tree Cplan_local_nav::calculate_edge( unsigned int parent_vertex, const Sd
 }
 
 
-/*** propagar el vertex con las fuerzas claculadas para el caso en que el robot navega solo (sin companion)***/
+/*** propagar el vertex con las fuerzas claculadas para el caso en que el robot navega solo (sin companion). Las fuerzas se calculaban en calculate_edge***/
 bool Cplan_local_nav::propagate_vertex( unsigned int parent_index , const Sedge_tree& u, Cperson_abstract::companion_reactive reactive)
 {
 	//robot_->get_current_pose().theta
@@ -3885,8 +3885,9 @@ double Cplan_local_nav::cost_to_go( const Spoint& random_goal, unsigned int i ,
 }
 
 /*** HEREDADA directa de Gonzalo, pero incluyendo el coste companion
- * ES la que USA de verdad el codigo para calcular el minimo coste de acompañamiento.
- * Hay X-modos de calcularlo, pero en realidad siempre solo se usa uno, el k vio Gonzalo que iba mejor.***/
+ * ES la que USA de verdad el codigo para calcular el minimo coste de acompañamiento (seleccionar ese path con minimo coste).
+ * Hay X-modos de calcularlo, pero en realidad siempre solo se usa uno, el k vio Gonzalo que iba mejor. Esta remarcado DENTRO***/
+/*** obtiene el indice final del path con menos coste (para así saber que path es el de menos coste, que será seleccionado como best path.)***/
 unsigned int Cplan_local_nav::global_min_cost_index( Crobot* robot_act , Cperson_abstract::companion_reactive reactive )
 {
 	//std::cout<<" INI function: global_min_cost_index()" << std::endl;
diff --git a/local_lib_people_prediction/src/prediction_bhmip.cpp b/local_lib_people_prediction/src/prediction_bhmip.cpp
index d47db656e5e0f80293b62815dc84a5282c23c6ae..f984edc916a74f9789f5a2d90e84f17450e454d6 100644
--- a/local_lib_people_prediction/src/prediction_bhmip.cpp
+++ b/local_lib_people_prediction/src/prediction_bhmip.cpp
@@ -53,6 +53,7 @@ void Cprediction_bhmip::see_tracks_on_scene()
 }
 
 /*** esta explicada en el nodo. basicamente es la funcion principal que incluye las nuevas posiciones a las personas y dentro hay otras de otros códigos que hacen cosas más concretas.***/
+/*** update/prediccion de las personas usando el bhmip metodo. ***/
 void Cprediction_bhmip::update_scene(const std::vector<SdetectionObservation>& observation,bool& we_have_person_companion, bool person_or_robot)
 {
 	// the filter bool sets if we want to filter velocities or use the provided in the update.
diff --git a/local_lib_people_prediction/src/scene_abstract.cpp b/local_lib_people_prediction/src/scene_abstract.cpp
index b3b6912126f4a6901a8a77570b072bcb3267ee49..94bc8d4ab2646069c46fc0db686d06037541e2a2 100644
--- a/local_lib_people_prediction/src/scene_abstract.cpp
+++ b/local_lib_people_prediction/src/scene_abstract.cpp
@@ -64,7 +64,7 @@ Cscene_abstract::~Cscene_abstract()
 {
 
 }
-
+/*** incluir destinaciones estaticas del entorno para la escena.***/
 void Cscene_abstract::set_destinations( std::vector<Sdestination>& dest )
 {
 	destinations_ = dest;
@@ -74,7 +74,7 @@ void Cscene_abstract::set_destinations( std::vector<Sdestination>& dest )
 	}
 	// robot destinations are not required, are set if planned
 }
-
+/*** añadir una nueva persona a la lista de personas. person_list***/
 Cperson_abstract* Cscene_abstract::add_person( unsigned int id )
 {
 	std::list<Cperson_abstract*>::iterator iit = person_list_.begin();
@@ -92,7 +92,7 @@ Cperson_abstract* Cscene_abstract::add_person( unsigned int id )
 
 	return add_person_container(id,iit);//virtual function adding the specific person container
 }
-
+/*** update the la prediccion de todas las personas menos la accompañante.***/
 void Cscene_abstract::update_other_person_companion( unsigned int id, SpointV_cov in_other_person_companion_point )
 {
 	/*std::list<Cperson_abstract*>::iterator iit = person_list_.begin();
@@ -122,7 +122,7 @@ void Cscene_abstract::update_other_person_companion( unsigned int id, SpointV_co
 
 	//return add_person_container(id,iit);//virtual function adding the specific person container
 }
-
+/*** eliminar una  persona de la lista de personas. person_list***/
 void Cscene_abstract::remove_person( unsigned int id )
 {
 	std::list<Cperson_abstract*>::iterator iit;
@@ -135,7 +135,7 @@ void Cscene_abstract::remove_person( unsigned int id )
 	}
 }
 
-/*** update de la posicion del robot para esta iteracion. Explicada en el nodo.***/
+/*** update de la posicion del robot para esta iteracion (detectada por la odometria). Explicada en el nodo.***/
 void Cscene_abstract::update_robot(Spose observation, bool case_zanlungo)
 {
 
@@ -288,7 +288,7 @@ bool Cscene_abstract::find_person(unsigned int id , Cperson_abstract** person,
 
 	return false;
 }
-
+/*** printar la lista de personas.***/
 void Cscene_abstract::print()
 {
 	std::cout << "Cscene_abstract::print() person_list_.empty="<<person_list_.empty()<< std::endl;
@@ -496,7 +496,7 @@ void Cscene_abstract::read_laser_scan_person_companion_akp_planner( const std::v
 }
 
 
-
+/*** leer los scans del dobot para obtener los obstaculos estaticos de la escena (markers=cilindros negros obstaculos).***/
 void Cscene_abstract::read_laser_scan_companion( const std::vector<Spoint>&  laser_scan , bool person_simulation)
 {
 
@@ -565,7 +565,7 @@ void Cscene_abstract::read_laser_scan_companion( const std::vector<Spoint>&  las
 	read_laser_obstacle_success_ = true;//flag to indicate that indeed we can make use of laser information regarding obstacles.
 }
 
-
+/*** to do not use these points to compute the obstacles in the laser scan. ***/
 bool Cscene_abstract::point_corresponds_person( Spoint laser_point )
 {
 	for( Cperson_abstract* iit : person_list_ )
@@ -589,7 +589,7 @@ bool Cscene_abstract::point_corresponds_person( Spoint laser_point )
 	return false;
 }
 
-
+/*** to do not use these points to compute the obstacles in the laser scan. (these points are from the thrack of the person companion) ***/
 bool Cscene_abstract::point_corresponds_person_companion( Spoint laser_point )
 {
 
@@ -615,7 +615,7 @@ bool Cscene_abstract::point_corresponds_person_companion( Spoint laser_point )
 
 }
 
-
+/*** to  use these points to compute the obstacles in the laser scan. ***/
 bool Cscene_abstract::point_belongs_to_laser_obstacle( Spoint p, bool person_simulation)
 {
 
@@ -692,7 +692,7 @@ bool Cscene_abstract::point_belongs_to_laser_obstacle( Spoint p, bool person_sim
 	}
 	return false;
 }
-
+/*** calcular fuerzas de los obstaculos del entorno***/
 Sforce Cscene_abstract::force_objects_laser_int( Cperson_abstract* person)
 {
 	Sforce force_res;
@@ -707,7 +707,7 @@ Sforce Cscene_abstract::force_objects_laser_int( Cperson_abstract* person)
 	return force_res;
 
 }
-
+/*** calcular fuerzas de las personas del entorno***/
 Sforce Cscene_abstract::force_persons_int( Cperson_abstract* center , bool if_robot_is_person_companion )
 {
 	//std::cout << " (1) !!! force_persons_int" << std::endl;
@@ -751,7 +751,7 @@ Sforce Cscene_abstract::force_persons_int( Cperson_abstract* center , bool if_ro
 	return force_res;
 
 }
-
+/*** calcular fuerzas de la accompanied person del entorno***/
 Sforce Cscene_abstract::force_persons_int_companion( Cperson_abstract* center , unsigned int id_person_companion, bool person_reactive, Cperson_abstract::companion_reactive type_rec_akp)
 {
 	Sforce force_res;
@@ -770,7 +770,7 @@ Sforce Cscene_abstract::force_persons_int_companion( Cperson_abstract* center ,
 	return force_res;
 
 }
-
+/*** calcular fuerzas para el grupo o otros tipos de interaccion. Tanto esta force_persons_int2 como esta force_persons_int3 **/
 Sforce Cscene_abstract::force_persons_int2( Cperson_abstract* center, std::vector<int> ids_of_persons_in_group ) // made by ely (companion, no take into accound the person companion of the group force.)
 {
 	// para tener grupos de personas en las personas simuladas.
@@ -829,7 +829,7 @@ Sforce Cscene_abstract::force_persons_int3( Cperson_abstract* center ) // made b
 	return force_res;
 
 }
-
+/*** to obtain the actual sfm_params for robot (sin companion)***/
 const std::vector<double>* Cscene_abstract::get_sfm_params( const Cperson_abstract * center_person)
 {
 	assert( center_person != NULL );
@@ -849,7 +849,7 @@ const std::vector<double>* Cscene_abstract::get_sfm_params( const Cperson_abstra
 
 
 
-
+/*** to obtain the actual sfm_params for robot (con companion)***/
 std::vector<double> Cscene_abstract::new_get_sfm_params( const Cperson_abstract * center_person)
 {
 	assert( center_person != NULL );
@@ -866,7 +866,7 @@ std::vector<double> Cscene_abstract::new_get_sfm_params( const Cperson_abstract
 		return social_forces_param_to_obs_;
 	}
 }
-
+/*** to obtain the actual sfm_params for people ***/
 const std::vector<double>* Cscene_abstract::get_sfm_int_params( const Cperson_abstract * center_person, const Cperson_abstract * interacting_person)
 {
 	//std::cout << " IIINNNNNNNNN Cscene_abstract::get_sfm_int_params " << std::endl;
@@ -931,7 +931,9 @@ const std::vector<double>* Cscene_abstract::get_sfm_int_params( const Cperson_ab
 
 	return NULL;
 }
-
+/*** lee el mapa para sacar las fuerzas de este, pero no se usa...
+ * Creo que deprecated desde Gonzalo. Idem para todas las que intenten sacar obstaculos del mapa y
+ * NO desde el laser. Las que se usan son las que sacan obstaculos del laser***/
 bool Cscene_abstract::read_force_map( const char * path )
 {
 	FILE * fid;
@@ -1022,7 +1024,7 @@ Spoint Cscene_abstract::m_to_xy( unsigned int m)
 	double y = min_y_ + m/map_number_x_*map_resolution_;
 	return Spoint( x,y );
 }
-
+/*** leer el mapa de destinaciones estaticas: el .txt que se usan para cambiar las destinaciones.***/
 bool Cscene_abstract::read_destination_map( const char * path )
 {
 	/* * how to use this function: you need a destination's file
@@ -1073,7 +1075,7 @@ bool Cscene_abstract::read_destination_map( const char * path )
 	this->set_destinations( destinations_ );
 	return read_destination_map_success_;
 }
-
+/*** leer el mapa de destinaciones estaticas: el .txt que se usan para cambiar las destinaciones.***/
 bool Cscene_abstract::read_destination_map2( const char * path )  // made by (ely), to make people groups in the simulation.
 {
 	/* * how to use this function: you need a destination's file
diff --git a/local_lib_people_prediction/src/scene_elements/person_bhmip.cpp b/local_lib_people_prediction/src/scene_elements/person_bhmip.cpp
index 8510bb4975d55172cd285bd7e46fd05afba509a1..60f98001467ff5ec8ccf55209ec27edfd7b99c03 100644
--- a/local_lib_people_prediction/src/scene_elements/person_bhmip.cpp
+++ b/local_lib_people_prediction/src/scene_elements/person_bhmip.cpp
@@ -33,6 +33,7 @@ Cperson_bhmip::~Cperson_bhmip()
 
 /*** añadir nueva posicion a la ventana de posiciones de las personas para luego poder predecirlas con una velocidad mejor, hay varios filtros que se pueden usar,
  * se usa el que se ponga en:  Cperson_abstract::filtering_method filter. El que uso, suele ser el que mejor funciona para el companion.***/
+/*** used to add a person point to the window used to estimate the real velocity of this person and after that do the bhmip propagation.***/
 void Cperson_bhmip::add_pointV( SpointV_cov point, Cperson_abstract::filtering_method filter, bool robot_or_person, double in_new_value_windowing)
 {
 	time_window_=in_new_value_windowing;
@@ -592,7 +593,7 @@ SpointV_cov Cperson_bhmip::low_pass_filter_current_state_linear_regression( )
 	return filtered_pose;
 }
 
-
+/*** calcular la best destination (calcular la intencion de la persona, hacia donde va del entorno)***/
 void  Cperson_bhmip::intention_precalculation()
 {
 	if(debug_intention_precalculation_){
@@ -690,7 +691,7 @@ void Cperson_bhmip::refresh_person( double now )
 	}
 	now_ = now;
 }
-
+/***  does the prediction using the bhmip method, which includes the estimation of the best static-destination for this person in the actual instant of time.***/
 void Cperson_bhmip::prediction( double min_v_to_predict )
 {
 	//std::cout << " 333333377777777 IN Cperson_bhmip::prediction( double min_v_to_predict ) current_pointV_.v()="<<current_pointV_.v()<< std::endl;
diff --git a/local_lib_people_prediction/src/scene_elements/robot.cpp b/local_lib_people_prediction/src/scene_elements/robot.cpp
index 61c4989cb8cc9ddf63c30be194276d14f48ad3f7..624458d25285c1cdc47109cfd93c7e23b8f7302d 100644
--- a/local_lib_people_prediction/src/scene_elements/robot.cpp
+++ b/local_lib_people_prediction/src/scene_elements/robot.cpp
@@ -140,6 +140,7 @@ void Crobot::robot_propagation(double dt , unsigned int index, double v, double
 /***Para calcular propagacion del path del grupo. heredada. OJO, esto (	aw -= normal_vel_dampening_parameter_*ini_pose.w;) NO se toca
  * Lo necesita y lo comprobe en experimental, ya ni me acuerdo exactamente para que me dijo Gonzalo que lo necesita la propagación,
  *  pero era algo teorico, aunque el valor lo ajusto experimentalmente (creo).***/
+/*** obtener la propagación del robot, usando las fuerzas de interaccion calculadas y los limites de velocidades y aceleraciones para el movimiento del robot.***/
 void Crobot::robot_propagation(double dt , unsigned int index, const Sforce &f , bool debug_force_vel) // con fuera entro en esta!!!
 {
 	//kinodynamic unicycle
diff --git a/local_lib_people_prediction/src/scene_sim.cpp b/local_lib_people_prediction/src/scene_sim.cpp
index 589d651de5f69b7a3186242a3912fef00af353f0..d329ed508b8f88def0a50d90920ed6c2c47a6fbe 100644
--- a/local_lib_people_prediction/src/scene_sim.cpp
+++ b/local_lib_people_prediction/src/scene_sim.cpp
@@ -148,6 +148,11 @@ Cperson_abstract* Cscene_sim::add_person_container( unsigned int id,
 	return (Cperson_abstract*) person;
 }*/
 
+
+
+/*** funcion principal, que hace que otras personas de la escena se muevan ramdom hacia los goals estaticos incluidos en la escena
+ * además de incluir una persona a la que acompaña el robot, de la cual se puede cambiar sus destinaciones
+ *  y usa el akp-planner para obtener un comportamiento más realistico a la hora de evitar obstaculos. ***/
 void Cscene_sim::update_scene(const std::vector<SdetectionObservation>& observation, bool& we_have_person_companion , bool person_or_robot)
 {
 	//the filter variable is not used in the simulated scene. All observations have been filtered.
@@ -669,7 +674,7 @@ void Cscene_sim::insert_more_random_people(const std::vector<SdetectionObservati
 //	std::cout << " out insert more people " << std::endl;
 }
 
-
+/*** igual que la anterior, pero la necesita la persona acompañante del robot, no el robot. Por eso esta "doble"***/
 bool Cscene_sim::update_scene_companion_simulation_akp_person_companion(const std::vector<SdetectionObservation>& observation , bool ini_case, double ini_theta_person_companion, Spose& pose_command)
 {
 	 d_min_=1e10;