예제 #1
0
    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)
예제 #2
0
    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)
예제 #3
0
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)
예제 #4
0
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()

예제 #5
0
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)