Beispiel #1
0
    def launch_platform_controls_spawner(self):
        rospack = rospkg.RosPack()
        srvss_bobcat_pkg_path = rospack.get_path('srvss_bobcat')
        srvss_bobcat_controllers_yaml = srvss_bobcat_pkg_path + "/controllers/srvss_bobcat_controllers.yaml"
        paramlist = rosparam.load_file(srvss_bobcat_controllers_yaml,
                                       default_namespace='',
                                       verbose=True)
        for params, ns in paramlist:
            rosparam.upload_params(ns, params)

        # if the controllers do not load it possible to increase the time of waiting for the server in the spawner
        # it located in /home/userws3/gz_ros_cws/src/ros_control/controller_manager/scripts
        node = ROSNode("controller_manager",
                       "spawner",
                       name="platform_controllers_spawner",
                       namespace="/srvss_bobcat",
                       output="screen",
                       respawn="false",
                       args="joint_state_controller \
					front_right_wheel_velocity_controller \
					front_left_wheel_velocity_controller \
					back_right_wheel_velocity_controller \
					back_left_wheel_velocity_controller")
        self.launcher.launch(node)
        time.sleep(10)

        node = ROSNode("srvss_bobcat",
                       "srvss_bobcat_rate2effort_node",
                       name="srvss_bobcat_RateToEffort_node",
                       cwd="node",
                       output="screen")
        self.launcher.launch(node)
        time.sleep(3)
Beispiel #2
0
    def launch_robot_tf_broadcaster(self):
        node = ROSNode("bobcat_model",
                       "world_to_body_TF_pub.py",
                       name="world_to_body_TF_pub",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        time.sleep(3)

        rospack = rospkg.RosPack()
        bobcat_pkg_path = rospack.get_path('bobcat_model')
        urdf_file = bobcat_pkg_path + "/urdf_models/bobcat_tracked_urdf_for_dynamic_arm.URDF"

        robot_urdf_file = open(urdf_file)
        robot_urdf = robot_urdf_file.read()
        rospy.set_param("/robot_description", robot_urdf)

        remaping = [("/joint_states", "/Sahar/joint_states")]
        node = ROSNode("robot_state_publisher",
                       "robot_state_publisher",
                       name="robot_state_broadcaster_node",
                       remap_args=remaping,
                       output="screen",
                       respawn="false")
        self.launcher.launch(node)
        time.sleep(3)
Beispiel #3
0
    def launch_robot_tf_broadcaster(self):
        remaping = [("/joint_states", "/srvss_bobcat/joint_states")]
        node = ROSNode("robot_state_publisher",
                       "robot_state_publisher",
                       name="robot_state_broadcaster_node",
                       remap_args=remaping,
                       output="screen",
                       respawn="false")
        self.launcher.launch(node)
        time.sleep(3)

        node = ROSNode("srvss_bobcat",
                       "world_to_bobcat_tf_broadcaster_node",
                       name="worltd_to_bobcat_tf_broadcaster_node",
                       output="screen",
                       respawn="false")
        self.launcher.launch(node)
        time.sleep(3)

        node = ROSNode("tf",
                       "static_transform_publisher",
                       name="sick_link_tf_broadcaster_node",
                       args="1 0 0.2 0 0 0 body front_sick 100",
                       output="screen",
                       respawn="false")
        self.launcher.launch(node)
        time.sleep(3)
Beispiel #4
0
        def run_node(package_name, node_type, node_nickname, params_file,
                     remap_file, arguments):
            def read_remaps_from_file(filename):
                from ast import literal_eval
                with open(filename) as f:
                    mainlist = [list(literal_eval(line)) for line in f]
                return mainlist

            def read_params_from_file(filename, namespace):
                paramlist = rosparam.load_file(filename,
                                               default_namespace=namespace,
                                               verbose=True)
                for params, ns in paramlist:
                    rosparam.upload_params(ns, params)

            if params_file != None:
                read_params_from_file(params_file, node_nickname)

            remaps_list = None
            if remap_file != None:
                remaps_list = read_remaps_from_file(remap_file)

            node = ROSNode(package_name,
                           node_type,
                           name=node_nickname,
                           remap_args=remaps_list,
                           args=arguments,
                           respawn=True,
                           output="screen")
            self.launcher.launch(node)
Beispiel #5
0
    def launch_recorder(self, Scenarin_folder):
	arguments = "-O " + Scenarin_folder + "/scen_rec.bag --all --exclude /SENSORS/CAM/(.*)|/SENSORS/IBEO/(.*)|/Sahar/(.*)|/PER/Map|/WSM/(.*)|/flea3/(.*)|/right_sick/(.*)|/left_sick/(.*)|/gazebo/model_states|/clock"
#       arguments = "-O " + Scenarin_folder + "/scen_rec.bag --all --exclude /SENSORS/(.*)|/LOC/Velocity|/Sahar/(.*)|/OCU/(.*)|/LLC/(.*)|/PER/(.*)|/WPD/(.*)|/WSM/(.*)|/flea3/(.*)|/right_sick/(.*)|/left_sick/(.*)|/heartbeat|/gazebo/model_states|/clock"
#	arguments = "-O " + Scenarin_folder + "/scen_rec.bag --all --exclude /SENSORS/(.*)|/LOC/Pose|/LOC/Velocity|/Sahar/(.*)|/OCU/(.*)|/LLC/(.*)|/PER/(.*)|/WPD/(.*)|/WSM/(.*)|/flea3/(.*)|/right_sick/(.*)|/left_sick/(.*)|/heartbeat|/gazebo/model_states|/clock"
	node = ROSNode("rosbag", "record", name="rosbag_recorde_node", args=arguments)
	self.launcher.launch(node)
        time.sleep(3)	
Beispiel #6
0
 def launch_recorder(self, Scenarin_folder):
     arguments = "-a -O " + Scenarin_folder + "/scen_rec.bag"
     node = ROSNode("rosbag",
                    "record",
                    name="rosbag_recorde_node",
                    args=arguments)
     self.launcher.launch(node)
     time.sleep(3)
Beispiel #7
0
 def runGazeboClient(self):
     node = ROSNode("gazebo_ros",
                    "gzclient",
                    name="gazebo_client",
                    output="screen",
                    respawn="false")
     self.launcher.launch(node)
     time.sleep(3)
     return True
Beispiel #8
0
 def launch_grader(self, Scenarin_folder):
     arguments = Scenarin_folder + " " + Scenarin_folder + "/scen.SFV"
     node = ROSNode("smartest",
                    "grader_node",
                    name="grader_node",
                    output="screen",
                    args=arguments)
     self.launcher.launch(node)
     time.sleep(3)
Beispiel #9
0
 def launch_WPdriver(self, Scenarin_folder):
     arguments = "-file " + Scenarin_folder + "/scenarioMission.txt"
     node = ROSNode("srvss_wp_driver",
                    "srvss_wp_driver_node",
                    name="srvss_wp_driver_node",
                    args=arguments,
                    respawn="false")  # output="screen"
     self.launcher.launch(node)
     time.sleep(3)
Beispiel #10
0
    def launch_platform_controls_unspawner(self):
	node = ROSNode("controller_manager", "unspawner" ,name="platform_controllers_unspawner" ,namespace="/Sahar", output="screen", respawn="false" ,
				args="joint_state_controller \
					  right_wheel_velocity_controller \
					  left_wheel_velocity_controller \
					  loader_position_controller \
					  supporter_position_controller \
                                          brackets_position_controller")	
	self.launcher.launch(node)	
        time.sleep(10)
Beispiel #11
0
 def runGazeboServer(self, Scenarin_folder):
     arguments = "-u " + Scenarin_folder + "/scenarioEnv.world"  # -u starts the simulation in pause mode
     node = ROSNode(
         "gazebo_ros",
         "gzserver",
         name="gazebo",
         args=arguments,
         output="screen",
         respawn="false"
     )  # name="gazebo" in order for replay and grader to work (name space)
     self.launcher.launch(node)
     time.sleep(3)
     return True
Beispiel #12
0
    def launch_platform_controls_spawner(self):
	rospack = rospkg.RosPack()
	bobcat_pkg_path = rospack.get_path('bobtank')
	bobcat_controllers_yaml = bobcat_pkg_path +"/config/bobcat_with_trucks_gazebo_control.yaml"
	paramlist=rosparam.load_file(bobcat_controllers_yaml, default_namespace='' ,verbose=True)
	for params, ns in paramlist:
    		rosparam.upload_params(ns,params)

	# if the controllers do not load it possible to increase the time of waiting for the server in the spawner
	# it located in /home/userws3/gz_ros_cws/src/ros_control/controller_manager/scripts			
	node = ROSNode("controller_manager", "spawner", name="platform_controllers_spawner" ,namespace="/Sahar", output="screen", respawn="false" ,
				args="joint_state_controller \
					  right_wheel_velocity_controller \
					  left_wheel_velocity_controller \
					  loader_position_controller \
					  supporter_position_controller \
                                          brackets_position_controller")	
	self.launcher.launch(node)	
        time.sleep(10)
	
	node = ROSNode("rate2effort", "rate2effort_for_tracks", name="rate2effort_for_tracks_node", cwd="node", output="screen") 
	self.launcher.launch(node)	
        time.sleep(3)
Beispiel #13
0
    def launch_platform_controls_unspawner(self):
        node = ROSNode("controller_manager",
                       "unspawner",
                       name="platform_controllers_unspawner",
                       namespace="/srvss_bobcat",
                       output="screen",
                       respawn="false",
                       args="joint_state_controller \
					front_right_wheel_velocity_controller \
					front_left_wheel_velocity_controller \
					back_right_wheel_velocity_controller \
					back_left_wheel_velocity_controller")
        self.launcher.launch(node)
        time.sleep(10)
Beispiel #14
0
    def launch_robot_tf_broadcaster(self):
	remaping = [ ("/joint_states" , "/Sahar/joint_states") ] 
	node = ROSNode("robot_state_publisher", "robot_state_publisher",name="robot_state_broadcaster_node", remap_args=remaping ,output="screen", respawn="false")
	self.launcher.launch(node)
        time.sleep(3)	
Beispiel #15
0
    def launch_WPdriver(self, Scenarin_folder):
        def run_node(package_name, node_type, node_nickname, params_file,
                     remap_file, arguments):
            def read_remaps_from_file(filename):
                from ast import literal_eval
                with open(filename) as f:
                    mainlist = [list(literal_eval(line)) for line in f]
                return mainlist

            def read_params_from_file(filename, namespace):
                paramlist = rosparam.load_file(filename,
                                               default_namespace=namespace,
                                               verbose=True)
                for params, ns in paramlist:
                    rosparam.upload_params(ns, params)

            if params_file != None:
                read_params_from_file(params_file, node_nickname)

            remaps_list = None
            if remap_file != None:
                remaps_list = read_remaps_from_file(remap_file)

            node = ROSNode(package_name,
                           node_type,
                           name=node_nickname,
                           remap_args=remaps_list,
                           args=arguments,
                           respawn=True,
                           output="screen")
            self.launcher.launch(node)

        #rospack = rospkg.RosPack()
        #robil2conf_pkg_path = rospack.get_path('robil2conf')
        #robil2conf_yaml = robil2conf_pkg_path +"/configuration.yaml"
        #paramlist=rosparam.load_file(robil2conf_yaml, default_namespace='' ,verbose=True)
        #for params, ns in paramlist:
        #        rosparam.upload_params(ns,params)

        #<!-- == GENERAL ===== -->
        print "Loading GENERAL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        arguments = "ODOM        GPS                        0.000  0.000  0.000        0.000  0.000  0.000 \
                     ODOM        INS                        0.266  0.155 -1.683        0.000  0.000  0.000 \
                     ODOM        IBEO                        0.310  0.170 -0.230        0.000  0.215  0.149 \
                     ODOM        TRACKS_BOTTOM                0.000  0.000 -2.260        0.000  0.000  0.000 \
                     ODOM        ROBOT_CENTER               -0.380  0.155 -1.683        0.000  0.000  0.000"

        node = ROSNode("robil2tf",
                       "robil2TF_node",
                       name="robil2TF_publisher",
                       args=arguments,
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)

        node = ROSNode("robil2tf",
                       "world_gazebo_to_WORLD_TF_pub.py",
                       name="world_gazebo_to_WORLD_TF_pub",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        # ================ -->

        #<!-- == SENSORS INTERFACEs == -->
        node = ROSNode("shiffon2ros",
                       "shiffon2ros_node",
                       name="ipon2ros",
                       args="127.0.0.1",
                       output="screen")
        self.launcher.launch(node)
        node = ROSNode("sick_ldmrs",
                       "sickldmrs.py",
                       name="ibeo2ros",
                       args="127.0.0.1",
                       output="screen")
        self.launcher.launch(node)
        time.sleep(3)
        # ================ -->

        #<!-- == PLATFORM INTERFACE == -->
        node = ROSNode("lli",
                       "lli_node",
                       name="ros2qinetiq",
                       args="127.0.0.1",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        # ================ -->

        # == MONITORING == -->
        print "Loading MONITORING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("ssm",
                       "ssm_fsm_states_tracker_node",
                       name="ssm_fsm_states_tracker_node",
                       output="screen")
        self.launcher.launch(node)
        node = ROSNode("ssm",
                       "ssm_heartbeat_monitor_node",
                       name="ssm_heartbeat_monitor_node",
                       output="screen")
        self.launcher.launch(node)
        node = ROSNode("ssm", "ssm_node", name="ssm_node", output="screen")
        self.launcher.launch(node)
        # ================ -->

        #<!-- == LOCALIZATION == -->
        print "Loading LOCALIZATION node  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("loc",
                       "loc_node",
                       name="loc_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        time.sleep(1)
        # ================ -->

        # == PERCEPTION == -->
        print "Loading PERCEPTION !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("per",
                       "per_node",
                       name="per_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)

        #<!-- == OPERATOR CONTROL UNIT == -->
        node = ROSNode("ocu", "ocu_node", name="ocu_node", output="screen")
        self.launcher.launch(node)
        # ================ -->

        # -- MISSION CONTROL  -->
        print "Loading MISSION CONTRO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("smme",
                       "smme_node",
                       name="smme_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        node = ROSNode("wsm",
                       "wsm_node",
                       name="wsm_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        # ================ -->

        #<!-- == LOW LEVEL CONTROL == -->
        print "Loading LOW LEVEL CONTROL node  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("llc",
                       "llc_node",
                       name="llc_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        time.sleep(3)

        #<!-- == PATH PLANING  +   WAY POINT DRIVER == -->
        print "Loading PATH PLANING  +   WAY POINT DRIVER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        rospack = rospkg.RosPack()
        pp_pkg_path = rospack.get_path('pp')

        run_node("navex_navigation", "navex_navigation_node",
                 "navex_navigation", pp_pkg_path + "/launch/navex.yaml",
                 pp_pkg_path + "/launch/navex.remap", '')
        run_node("pp", "pp_node", "pp_node",
                 pp_pkg_path + "/launch/pp_node.yaml",
                 pp_pkg_path + "/launch/pp_node.remap", '')
        run_node("wpd", "wpd_node", "wpd_node", None, None, '')

        # ================ -->

        #<!-- == Navigation Mission Load  == -->
        arguments = "-d 20 " + Scenarin_folder + "/scenarioMission.bag"
        node = ROSNode("rosbag",
                       "play",
                       name="rosbag_Mission_node",
                       output="screen",
                       respawn="true",
                       args=arguments)
        self.launcher.launch(node)
Beispiel #16
0
    def launch_WPdriver(self, Scenarin_folder):
        #rospack = rospkg.RosPack()
        #robil2conf_pkg_path = rospack.get_path('robil2conf')
        #robil2conf_yaml = robil2conf_pkg_path +"/configuration.yaml"
        #paramlist=rosparam.load_file(robil2conf_yaml, default_namespace='' ,verbose=True)
        #for params, ns in paramlist:
        #	rosparam.upload_params(ns,params)

        #<!-- == GENERAL ===== -->
        print "Loading GENERAL !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        arguments = "ODOM	GPS			0.000  0.000  0.000	0.000  0.000  0.000 \
		     ODOM	INS			0.266  0.155 -1.683	0.000  0.000  0.000 \
		     ODOM	IBEO			0.310  0.170 -0.230	0.000  0.215  0.149 \
		     ODOM	TRACKS_BOTTOM		0.000  0.000 -2.260	0.000  0.000  0.000 \
		     ODOM	ROBOT_CENTER	       -0.380  0.155 -1.683	0.000  0.000  0.000"

        node = ROSNode("robil2tf",
                       "robil2TF_node",
                       name="robil2TF_publisher",
                       args=arguments,
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)

        node = ROSNode("robil2tf",
                       "world_gazebo_to_WORLD_TF_pub.py",
                       name="world_gazebo_to_WORLD_TF_pub",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        # ================ -->

        #<!-- == SENSORS INTERFACEs == -->
        node = ROSNode("shiffon2ros",
                       "shiffon2ros_node",
                       name="ipon2ros",
                       args="127.0.0.1",
                       output="screen")
        self.launcher.launch(node)
        node = ROSNode("sick_ldmrs",
                       "sickldmrs.py",
                       name="ibeo2ros",
                       args="127.0.0.1",
                       output="screen")
        self.launcher.launch(node)
        time.sleep(3)
        # ================ -->

        #<!-- == PLATFORM INTERFACE == -->
        #node = ROSNode("lli", "lli_node",name="ros2qinetiq",args="127.0.0.1",output="screen", respawn="true")
        #self.launcher.launch(node)
        # ================ -->

        # == MONITORING == -->
        print "Loading MONITORING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("ssm",
                       "ssm_fsm_states_tracker_node",
                       name="ssm_fsm_states_tracker_node",
                       output="screen")
        self.launcher.launch(node)
        node = ROSNode("ssm",
                       "ssm_heartbeat_monitor_node",
                       name="ssm_heartbeat_monitor_node",
                       output="screen")
        self.launcher.launch(node)
        node = ROSNode("ssm", "ssm_node", name="ssm_node", output="screen")
        self.launcher.launch(node)
        # ================ -->

        #<!-- == LOCALIZATION == -->
        print "Loading LOCALIZATION node  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("loc",
                       "loc_node",
                       name="loc_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        time.sleep(1)
        # ================ -->

        # == PERCEPTION == -->
        print "Loading PERCEPTION !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("per",
                       "per_node",
                       name="per_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)

        #<!-- == OPERATOR CONTROL UNIT == -->
        node = ROSNode("ocu", "ocu_node", name="ocu_node", output="screen")
        self.launcher.launch(node)
        # ================ -->

        # -- MISSION CONTROL  -->
        print "Loading MISSION CONTRO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("smme",
                       "smme_node",
                       name="smme_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        node = ROSNode("wsm",
                       "wsm_node",
                       name="wsm_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        # ================ -->

        #<!-- == LOW LEVEL CONTROL == -->
        print "Loading LOW LEVEL CONTROL node  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        node = ROSNode("llc",
                       "llc_node",
                       name="llc_node",
                       output="screen",
                       respawn="true")
        self.launcher.launch(node)
        time.sleep(3)

        #<!-- == PATH PLANING  +   WAY POINT DRIVER == -->
        print "Loading PATH PLANING  +   WAY POINT DRIVER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        rospack = rospkg.RosPack()
        pp_pkg_path = rospack.get_path('pp')
        costmap_common_params = pp_pkg_path + "/params/costmap_common_params.yaml"
        paramlist = rosparam.load_file(
            costmap_common_params,
            default_namespace='move_base/global_costmap',
            verbose=True)
        for params, ns in paramlist:
            rosparam.upload_params(ns, params)

        paramlist = rosparam.load_file(
            costmap_common_params,
            default_namespace='move_base/local_costmap',
            verbose=True)
        for params, ns in paramlist:
            rosparam.upload_params(ns, params)

        local_costmap_params = pp_pkg_path + "/params/local_costmap_params.yaml"
        paramlist = rosparam.load_file(local_costmap_params,
                                       default_namespace='move_base',
                                       verbose=True)
        for params, ns in paramlist:
            rosparam.upload_params(ns, params)

        global_costmap_params = pp_pkg_path + "/params/global_costmap_params.yaml"
        paramlist = rosparam.load_file(global_costmap_params,
                                       default_namespace='move_base',
                                       verbose=True)
        for params, ns in paramlist:
            rosparam.upload_params(ns, params)

        base_local_planner_params = pp_pkg_path + "/params/base_local_planner_params.yaml"
        paramlist = rosparam.load_file(base_local_planner_params,
                                       default_namespace='move_base',
                                       verbose=True)
        for params, ns in paramlist:
            rosparam.upload_params(ns, params)

        node = ROSNode("move_base",
                       "move_base",
                       name="move_base",
                       output="screen")
        self.launcher.launch(node)

        node = ROSNode("pp", "pp_node", name="pp_node", output="screen")
        self.launcher.launch(node)

        node = ROSNode("wpd", "wpd_node", name="wpd_node", output="screen")
        self.launcher.launch(node)
        # ================ -->

        #<!-- == Navigation Mission Load  == -->
        arguments = "-d 20 " + Scenarin_folder + "/scenarioMission.bag"
        node = ROSNode("rosbag",
                       "play",
                       name="rosbag_Mission_node",
                       output="screen",
                       respawn="true",
                       args=arguments)
        self.launcher.launch(node)
Beispiel #17
0
    def launch_WPdriver(self,Scenarin_folder):
	

	# ==  GENERAL == -->
	rospack = rospkg.RosPack()
	robil2conf_pkg_path = rospack.get_path('robil2conf')
	robil2conf_yaml = robil2conf_pkg_path +"/configuration.yaml"
	paramlist=rosparam.load_file(robil2conf_yaml, default_namespace='' ,verbose=True)
	for params, ns in paramlist:
    		rosparam.upload_params(ns,params)
	
	node = ROSNode("robil2TF", "robil2TF_node",name="robil2TF_publishe",output="screen"
				  args="ODOM	GPS		0.000  0.000  0.000	0.000  0.000  0.000 \
	      				ODOM	INS		0.266  0.155 -1.683	0.000  0.000  0.000 \
      	      				ODOM	IBEO		0.256  0.169 -0.231	0.005  0.201  0.107 \
	      				ODOM	TRACKS_BOTTOM	0.000  0.000 -2.323	0.000  0.000  0.000 \
	      				ODOM	ROBOT_CENTER   -0.380  0.155 -1.683	0.000  0.000  0.000 \	
	      				ODOM	body		0.616  0.155 -2.133	0.000  0.000  0.000")
	self.launcher.launch(node)	
        time.sleep(3)


	

	# == MONITORING == -->
	print "Loading MONITORING !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
	node = ROSNode("ssm", "ssm_fsm_states_tracker_node",name="ssm_fsm_states_tracker_node",output="screen")
	self.launcher.launch(node)
	node = ROSNode("ssm", "ssm_heartbeat_monitor_node",name="ssm_heartbeat_monitor_node",output="screen")
	self.launcher.launch(node)
	node = ROSNode("ssm", "ssm_node",name="ssm_node",output="screen")
	self.launcher.launch(node)
        #time.sleep(3)	
	# ================ -->

	# == PERCEPTION == -->
	#print "Loading PERCEPTION-sensors_node  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"  --  Not Working therefore stuck the loading process, not critical for robil2
	#node = ROSNode("sensors", "sensors_node",name="sensors_node",output="screen",respawn="true")
	#self.launcher.launch(node)
	print "Loading PERCEPTION-iedsim_node  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
	node = ROSNode("iedsim", "iedsim_node",name="iedsim_node",output="screen",respawn="true")
	self.launcher.launch(node)
	print "Loading PERCEPTION-per_node  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
	node = ROSNode("per", "per_node",name="per_node",output="screen",respawn="true")
	self.launcher.launch(node)
	print "Loading PERCEPTION-loc_node  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
	node = ROSNode("loc", "loc_node",name="loc_node",output="screen",respawn="true")
	self.launcher.launch(node)
        time.sleep(3)
	# ================ -->


	# -- MISSION CONTROL  -->
	print "Loading MISSION CONTRO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
	node = ROSNode("smme", "smme_node",name="smme_node",output="screen",respawn="true")
	self.launcher.launch(node)
	node = ROSNode("wsm", "wsm_node",name="wsm_node",output="screen",respawn="true")
	self.launcher.launch(node)
	node = ROSNode("ocu", "ocu_node",name="ocu_node",output="screen")
	self.launcher.launch(node)
	# ================ -->


	#-- == NAVIGATION == -->
	print "Loading NAVIGATION !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
	rospack = rospkg.RosPack()
	pp_pkg_path = rospack.get_path('pp')
	costmap_common_params = pp_pkg_path +"/params/costmap_common_params.yaml"
	paramlist=rosparam.load_file(costmap_common_params, default_namespace='move_base/global_costmap' ,verbose=True)
	for params, ns in paramlist:
    		rosparam.upload_params(ns,params)

	paramlist=rosparam.load_file(costmap_common_params, default_namespace='move_base/local_costmap' ,verbose=True)
	for params, ns in paramlist:
    		rosparam.upload_params(ns,params)

	local_costmap_params = pp_pkg_path +"/params/local_costmap_params.yaml"
	paramlist=rosparam.load_file(local_costmap_params, default_namespace='move_base' ,verbose=True)
	for params, ns in paramlist:
    		rosparam.upload_params(ns,params)


	global_costmap_params = pp_pkg_path +"/params/global_costmap_params.yaml"
	paramlist=rosparam.load_file(global_costmap_params, default_namespace='move_base' ,verbose=True)
	for params, ns in paramlist:
    		rosparam.upload_params(ns,params)


	base_local_planner_params = pp_pkg_path +"/params/base_local_planner_params.yaml"
	paramlist=rosparam.load_file(base_local_planner_params, default_namespace='move_base' ,verbose=True)
	for params, ns in paramlist:
    		rosparam.upload_params(ns,params)


	node = ROSNode("move_base", "move_base",name="move_base",output="screen")
	self.launcher.launch(node)

	node = ROSNode("pp", "pp_node",name="pp_node",output="screen")
	self.launcher.launch(node)

	node = ROSNode("wpd", "wpd_node",name="wpd_node",output="screen")
	self.launcher.launch(node)

	node = ROSNode("llc", "llc_node",name="llc_node",output="screen",respawn="true")
	self.launcher.launch(node)
        time.sleep(3)

	arguments = "-d 40 "+ Scenarin_folder + "/scenarioMission.bag"
	node = ROSNode("rosbag", "play",name="rosbag_Mission_node",output="screen",respawn="true", args=arguments)
	self.launcher.launch(node)