def __init__(self): mode = rospy.get_param("~task_mode") scenerios_json_path = rospy.get_param("~scenerios_json_path") paths = {"scenerios_json_path": scenerios_json_path} self.task = get_predefined_task(mode, PATHS=paths) # if auto_reset is set to true, the task generator will automatically reset the task # this can be activated only when the mode set to 'ScenerioTask' auto_reset = rospy.get_param("~auto_reset") # if the distance between the robot and goal_pos is smaller than this value, task will be reset self.delta_ = rospy.get_param("~delta") robot_odom_topic_name = rospy.get_param("robot_odom_topic_name", "odom") auto_reset = auto_reset and mode == "ScenerioTask" self.curr_goal_pos_ = None if auto_reset: rospy.loginfo( "Task Generator is set to auto_reset mode, Task will be automatically reset as the robot approaching the goal_pos" ) self.reset_task() self.robot_pos_sub_ = rospy.Subscriber( robot_odom_topic_name, Odometry, self.check_robot_pos_callback) else: # declare new service task_generator, request are handled in callback task generate self.task_generator_srv_ = rospy.Service('task_generator', Empty, self.reset_srv_callback)
def __init__(self): mode = rospy.get_param("task_mode") self.task = get_predefined_task(mode) #declare new service task_generator, request are handled in callback task generate self.task_service_server = rospy.Service('task_generator', Empty, self.callback_task_generate)
import time import os import sys from stable_baselines3 import A2C from rl_agent.envs.flatland_gym_env import FlatlandEnv from task_generator.tasks import get_predefined_task import rospy import rospkg rospy.init_node("test") # task = get_predefined_task() task = get_predefined_task( mode="ScenerioTask", PATHS={ "scenerios_json_path": "/home/joe/ssd/projects/arena-rosnav-ws/src/arena-rosnav/tmp/example_json_path.json" }) models_folder_path = rospkg.RosPack().get_path('simulator_setup') arena_local_planner_drl_folder_path = rospkg.RosPack().get_path( 'arena_local_planner_drl') env = FlatlandEnv( task, os.path.join(models_folder_path, 'robot', 'myrobot.model.yaml'), os.path.join(arena_local_planner_drl_folder_path, 'configs', 'default_settings.yaml'), "rule_00", True, ) model = A2C('MlpPolicy', env, verbose=1)
import os from stable_baselines3 import A2C from rl_agent.envs.flatland_gym_env import FlatlandEnv from task_generator.tasks import get_predefined_task import rospy import rospkg rospy.init_node("test") task = get_predefined_task() models_folder_path = rospkg.RosPack().get_path('simulator_setup') arena_local_planner_drl_folder_path = rospkg.RosPack().get_path('arena_local_planner_drl') env = FlatlandEnv(task,os.path.join(models_folder_path,'robot','myrobot.model.yaml'), os.path.join(arena_local_planner_drl_folder_path,'configs','default_settings.yaml'),True, ) model = A2C('MlpPolicy', env, verbose=1) import time s = time.time() model.learn(total_timesteps=3000) print("steps per second: {}".format(1000/(time.time()-s))) # obs = env.reset() # for i in range(1000): # action, _state = model.predict(obs, deterministic=True) # obs, reward, done, info = env.step(action) # env.render() # if done: # obs = env.reset()
import time import os import sys from stable_baselines3 import A2C from rl_agent.envs.flatland_gym_env import FlatlandEnv from task_generator.tasks import get_predefined_task import rospy import rospkg rospy.init_node("test") # task = get_predefined_task() task = get_predefined_task( mode="ScenerioTask", PATHS={ "scenerios_json_path": "/home/joe/ssd/projects/arena-rosnav-ws/src/arena-rosnav/simulator_setup/scenerios/example_scenerio.json" }) models_folder_path = rospkg.RosPack().get_path('simulator_setup') arena_local_planner_drl_folder_path = rospkg.RosPack().get_path( 'arena_local_planner_drl') env = FlatlandEnv( task, os.path.join(models_folder_path, 'robot', 'myrobot.model.yaml'), os.path.join(arena_local_planner_drl_folder_path, 'configs', 'default_settings.yaml'), "rule_00", True, ) model = A2C('MlpPolicy', env, verbose=1)
def __init__(self): self.task = get_predefined_task() self.task_service_server = rospy.Service('task_generator', Empty, self.callback_task_generate)