From f440233705ce51d48bad1a59736589842ed4880a Mon Sep 17 00:00:00 2001 From: Viktor Vorobev <vorobev@in.tum.de> Date: Fri, 10 Sep 2021 11:02:45 +0000 Subject: [PATCH] Merged in NRRPLT-8239-actualization (pull request #34) [NRRPLT-8239] Update Documentation * [NRRPLT-8242] Fix docstrings look for missing empty line ^( +)\w.*$\n\1: look for missing descr indent ^( +)(:.*)$\n\1\w look for missing : ^ +:\w+ [^:]+$ * [NRRPLT-8241] Update layout * [NRRPLT-8144] Updated tutorials with new api * [NRRPLT-8144] Included pip install in main page * [NRRPLT-8239] Update formatting and references Approved-by: Eloy Retamino --- hbp_nrp_virtual_coach/doc/Makefile | 2 +- hbp_nrp_virtual_coach/doc/source/conf.py | 3 + .../doc/source/developer_manual.rst | 17 ++ hbp_nrp_virtual_coach/doc/source/index.rst | 13 +- .../doc/source/introduction.rst | 28 +-- .../doc/source/python_api.rst | 10 + .../doc/source/tutorials.rst | 18 ++ .../tutorials/img/experiment_workflow.png | Bin 0 -> 77280 bytes .../doc/source/tutorials/index.rst | 19 ++ .../doc/source/tutorials/interacting_exp.rst | 236 ++++++++++++++++++ .../doc/source/tutorials/launching_exp.rst | 69 +++++ 11 files changed, 392 insertions(+), 23 deletions(-) create mode 100644 hbp_nrp_virtual_coach/doc/source/developer_manual.rst create mode 100644 hbp_nrp_virtual_coach/doc/source/tutorials.rst create mode 100644 hbp_nrp_virtual_coach/doc/source/tutorials/img/experiment_workflow.png create mode 100644 hbp_nrp_virtual_coach/doc/source/tutorials/index.rst create mode 100644 hbp_nrp_virtual_coach/doc/source/tutorials/interacting_exp.rst create mode 100644 hbp_nrp_virtual_coach/doc/source/tutorials/launching_exp.rst diff --git a/hbp_nrp_virtual_coach/doc/Makefile b/hbp_nrp_virtual_coach/doc/Makefile index cc83591..13f23ee 100644 --- a/hbp_nrp_virtual_coach/doc/Makefile +++ b/hbp_nrp_virtual_coach/doc/Makefile @@ -10,7 +10,7 @@ BUILDDIR = build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source +ALLSPHINXOPTS = -t standalone -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source diff --git a/hbp_nrp_virtual_coach/doc/source/conf.py b/hbp_nrp_virtual_coach/doc/source/conf.py index 7134af9..6fddafc 100644 --- a/hbp_nrp_virtual_coach/doc/source/conf.py +++ b/hbp_nrp_virtual_coach/doc/source/conf.py @@ -42,6 +42,9 @@ apidoc_module_dir = '../../pynrp' # General information about the project. project = u'Virtual Coach' +# These files will be included in the whole docs and are omitted during standalone build +exclude_patterns.append('tutorials/index.rst') + # Output file base name for HTML help builder. htmlhelp_basename = 'pynrp_doc' diff --git a/hbp_nrp_virtual_coach/doc/source/developer_manual.rst b/hbp_nrp_virtual_coach/doc/source/developer_manual.rst new file mode 100644 index 0000000..f8b9788 --- /dev/null +++ b/hbp_nrp_virtual_coach/doc/source/developer_manual.rst @@ -0,0 +1,17 @@ +.. _virtual_coach_dev_space: + +.. sectionauthor:: Viktor Vorobev <vorobev@in.tum.de> + +.. seealso:: + + :ref:`User manual<virtual_coach_intro>` / + :ref:`Tutorials<virtual-coach-tutorial>` / + :ref:`Code API reference<virtual-coach-api>` + +Virtual Coach developer space +============================= + +.. toctree:: + :maxdepth: 2 + + python_api \ No newline at end of file diff --git a/hbp_nrp_virtual_coach/doc/source/index.rst b/hbp_nrp_virtual_coach/doc/source/index.rst index 35a3865..1a6dcd2 100644 --- a/hbp_nrp_virtual_coach/doc/source/index.rst +++ b/hbp_nrp_virtual_coach/doc/source/index.rst @@ -5,12 +5,17 @@ Virtual Coach Welcome to the Virtual Coach documentation! -Contents: +.. include:: introduction.rst + +---------------------------------- + +In the :doc:`Tutorials section<tutorials>` you can find the information on how to get started with the Virtual Coach. + +.. rubric:: Contents: .. toctree:: :maxdepth: 2 - introduction - python_api - + tutorials + developer_manual diff --git a/hbp_nrp_virtual_coach/doc/source/introduction.rst b/hbp_nrp_virtual_coach/doc/source/introduction.rst index d77a6c1..0032b80 100644 --- a/hbp_nrp_virtual_coach/doc/source/introduction.rst +++ b/hbp_nrp_virtual_coach/doc/source/introduction.rst @@ -1,27 +1,19 @@ -Introduction -============ +.. _virtual_coach_intro: -The Virtual Coach is a Python API that allows you to run and interact with experiments by scripting them instead of having to use the Web Cockpit. It is especially ideal for running learning experiments, where usually one experiment has to be run multiple times, each time with a different parameterization, and where intermediate results have to be saved to compare the effectiveness of different parameters at the end. Scripting experimetns does not restrict the viusalization. While an experiment is running from the Virtual Coach, you may still open the frontend and visualize what is happening in your experiments. +.. sectionauthor:: Eloy Retamino <retamino@ugr.es> -Users now can launch experiments from the Virtual Coach, interact with the simulation by adding, deleting or editing Transfer Functions and State Machines as well as modify the Brain Model and the Neural Populations on the fly. Also, CSV data that is being saved during a simulation can be accessed from the Virtual Coach and you can then plot the data using your own plotting functions for example. Additionally, you can reuse the same reset functionality found in the Web Cockpit from the Virtual Coach, meaning that after certain events have occured (a collision for example), or after running a simulation for a certain amount of time you can either reset the robot pose, the brain model, the environment or reset the whole simulation. +.. This page is used in nrp-documentation -There is a necessary configuration file that must be copied from the user-scripts repository ($HBP/user-scripts/config_files/VirtualCoach/config.json) to the VirtualCoach repository in order for the Virtual Coach to run. You can either copy this file manually, or you can just run the configure_nrp script in the user-scripts to automatically copy it. +The Virtual Coach is a Python API that allows you to run and interact with experiments by scripting them instead of having to use the Web Frontend. It is especially ideal for running learning experiments, where usually one experiment has to be run multiple times, each time with a different parameterization, and where intermediate results have to be saved to compare the effectiveness of different parameters at the end. Scripting experimetns does not restrict the viusalization. While an experiment is running from the Virtual Coach, you may still open the frontend and visualize what is happening in your experiments. -There is a special alias for running the Virtual Coach. For this alias to work, $HBP/user-scripts/nrp_aliases has to be sourced in your bash.rc. Again, the configure_nrp script takes care of that automatically. The Virtual Coach alias is `cle-virtual-coach` and can be run in three different ways: +Users now can launch experiments from the Virtual Coach, interact with the simulation by adding, deleting or editing :term:`Transfer Functions<TF>` and State Machines as well as modify the Brain Model and the Neural Populations on the fly. Also, CSV data that is being saved during a simulation can be accessed from the Virtual Coach and you can then plot the data using your own plotting functions for example. Additionally, you can reuse the same reset functionality found in the Web Cockpit from the Virtual Coach, meaning that after certain events have occured (a collision for example), or after running a simulation for a certain amount of time you can either reset the robot pose, the brain model, the environment or reset the whole simulation. -1. **Launch a Jupyter Notebook session** +You can use developer's space for checking the :ref:`desciption of the API<virtual-coach-api>`, and if you have the local Virtual Coach repository you can check out the **VirtualCoach/examples** directory for some examples. Each example includes a **README** that may be useful to read before running it. Note that examples in the repository may be saved in a jupyter notebook as it makes it easier to run everything step-by-step and visualize results in place. - To launch a Jupyter Notebook session just run `cle-virtual-coach jupyter notebook` in a terminal. Of course, Jupyter Notebook has to be installed prior. +.. rubric:: Stand-alone installation -2. **Launch an interactive python interpreter session** +The Virtual Coach can be installed with pip independently of the rest of the NRP: - To launch an interactive python interpreter session just run `cle-virtual-coach python` in a terminal. - -3. **Launch a python script with arguments** - - To launch a python script `foo.py` with arguments `a b c` just run `cle-virtual-coach foo.py a b c`. - -This information is also available in the alias help `cle-virtual-coach -h`. - -In the next page you will find a desciption of the API, and if you have the local Virtual Coach repository you can check out the VirtualCoach/examples directory for some examples. Each example includes a README that may be useful to read before running it. Note that examples in the repository may be saved in a jupyter notebook as it makes it easier to run everything step-by-step and visualize results in place. +.. code-block:: bash + pip3 install pynrp diff --git a/hbp_nrp_virtual_coach/doc/source/python_api.rst b/hbp_nrp_virtual_coach/doc/source/python_api.rst index 745a415..3898bfd 100644 --- a/hbp_nrp_virtual_coach/doc/source/python_api.rst +++ b/hbp_nrp_virtual_coach/doc/source/python_api.rst @@ -1,3 +1,13 @@ +.. _virtual-coach-api: + +.. sectionauthor:: Viktor Vorobev <vorobev@in.tum.de> + +.. seealso:: + + :ref:`User manual<virtual_coach_intro>` / + :ref:`Tutorials<virtual-coach-tutorial>` / + :ref:`Developer pages<virtual_coach_dev_space>` + Python developer API ==================== diff --git a/hbp_nrp_virtual_coach/doc/source/tutorials.rst b/hbp_nrp_virtual_coach/doc/source/tutorials.rst new file mode 100644 index 0000000..e5f622e --- /dev/null +++ b/hbp_nrp_virtual_coach/doc/source/tutorials.rst @@ -0,0 +1,18 @@ +.. _virtual-coach-tutorials: + +.. sectionauthor:: Eloy Retamino <retamino@ugr.es> + +.. seealso:: + + :ref:`User manual<virtual_coach_intro>` / + :ref:`Code API reference<virtual-coach-api>` / + :ref:`Developer pages<virtual_coach_dev_space>` + +Virtual Coach Tutorials +======================= + +.. toctree:: + :maxdepth: 2 + + tutorials/launching_exp + tutorials/interacting_exp diff --git a/hbp_nrp_virtual_coach/doc/source/tutorials/img/experiment_workflow.png b/hbp_nrp_virtual_coach/doc/source/tutorials/img/experiment_workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..6cb2fe55748d2bf8cff49ef8e4d01f278fa96929 GIT binary patch literal 77280 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 literal 0 HcmV?d00001 diff --git a/hbp_nrp_virtual_coach/doc/source/tutorials/index.rst b/hbp_nrp_virtual_coach/doc/source/tutorials/index.rst new file mode 100644 index 0000000..40075cf --- /dev/null +++ b/hbp_nrp_virtual_coach/doc/source/tutorials/index.rst @@ -0,0 +1,19 @@ +.. _virtual-coach-tutorial: + +.. sectionauthor:: Eloy Retamino <retamino@ugr.es> + +.. seealso:: + + :ref:`User manual<virtual_coach_intro>` / + :ref:`Code API reference<virtual-coach-api>` / + :ref:`Developer pages<virtual_coach_dev_space>` + +.. this page is included in the whole docs + +Virtual Coach Tutorial +====================== + +.. toctree:: + + launching_exp + interacting_exp diff --git a/hbp_nrp_virtual_coach/doc/source/tutorials/interacting_exp.rst b/hbp_nrp_virtual_coach/doc/source/tutorials/interacting_exp.rst new file mode 100644 index 0000000..cdb44fe --- /dev/null +++ b/hbp_nrp_virtual_coach/doc/source/tutorials/interacting_exp.rst @@ -0,0 +1,236 @@ +.. _virtual-coach-tutorials-interact: + +.. sectionauthor:: Eloy Retamino <retamino@ugr.es> + +Interacting with an Experiment from the Virtual Coach +=============================================================== + +In the :ref:`previous section <virtual-coach-tutorials-launch>` we successfully launched a simulation of the Template Husky experiment. In this tutorial, we will interact with the simulation through the Virtual Coach. + +Getting and Setting Simulation States +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +When an experiment is launched, it is initially in the *paused* state. This means the experiment has to be explicitly started. In general, we can query the simulation state by calling: + +.. code-block:: python + + sim.get_state() + +The state of the simulation is returned as a string. In this case calling ``get_state()`` will return *paused*. The possible states we can set a simulation to are *paused*, *started* and *stopped*. We can alternatively start and pause the simulation by calling: + +.. code-block:: python + + sim.pause() + sim.start() + +Note that the timeout for a simulation is 15 minutes. + +Transfer Functions +^^^^^^^^^^^^^^^^^^ +From the Virtual Coach, we can view transfer functions, modify them, delete them, or add new ones. The transfer functions unique identifiers are their function names. To know the names of the transfer functions defined in an experiments, we can call: + +.. code-block:: python + + sim.print_transfer_functions() + +which would just print out the names of the transfer functions. In the case of the Template Husky experiment, this call will print out: *turn_around*, *csv_spike_monitor*, *all_neurons_spike_monitor*, *grab_image*, and *csv_joint_state_monitor*. To actually see the code of a transfer function, we can use the get_transfer_function call, which takes the transfer function name as a parameter and returns the code in a string. We will get the code of the turn-around transfer function and store it in a variable: + +.. code-block:: python + + turn_around_tf = sim.get_transfer_function('turn_around') + +If you're using a jupyter notebook, you can use the ``%load`` command to load the transfer function code in a cell. This will allow you to see the code syntax highlighted and properly indented and will make it easier to modify the functions: + +.. code-block:: python + + %load turn_around_tf + +This should load this function in a new cell in the jupyter notebook: + +.. code-block:: python + + import hbp_nrp_cle.tf_framework as nrp + from hbp_nrp_cle.robotsim.RobotInterface import Topic + import geometry_msgs.msg + @nrp.MapSpikeSink("output_neuron", nrp.brain.neurons[1], nrp.leaky_integrator_alpha) + @nrp.Neuron2Robot(Topic('/husky/husky/cmd_vel', geometry_msgs.msg.Twist)) + # Example TF: get output neuron voltage and output constant on robot actuator. You could do something with the voltage here and command the robot accordingly. + def turn_around(t, output_neuron): + voltage=output_neuron.voltage + return geometry_msgs.msg.Twist(linear=geometry_msgs.msg.Vector3(0,0,0), + angular=geometry_msgs.msg.Vector3(0,0,5)) + +You can modify the code however you want and then save it as a string. Here we'll just increase the angular velocity by modifying the last line in the above code and replacing the number 5 with 10. We will save the modified code as a string in the variable *turn_around_tf*: + +.. code-block:: python + + turn_around_tf = """ + import hbp_nrp_cle.tf_framework as nrp + from hbp_nrp_cle.robotsim.RobotInterface import Topic + import geometry_msgs.msg + @nrp.MapSpikeSink("output_neuron", nrp.brain.neurons[1], nrp.leaky_integrator_alpha) + @nrp.Neuron2Robot(Topic('/husky/husky/cmd_vel', geometry_msgs.msg.Twist)) + # Example TF: get output neuron voltage and output constant on robot actuator. You could do something with the voltage here and command the robot accordingly. + def turn_around(t, output_neuron): + voltage=output_neuron.voltage + return geometry_msgs.msg.Twist(linear=geometry_msgs.msg.Vector3(0,0,0), + angular=geometry_msgs.msg.Vector3(0,0,10)) + """ + +This modified transfer function will only make the robot spin faster in this experiment. If you open your frontend web cockpit and join the running experiment, you will see the robot spinning faster once we actually apply the transfer function. To apply the transfer function we use the call edit_transfer_function which takes as parameters the name of the transfer function to be modified and the modified code. + +.. code-block:: python + + sim.edit_transfer_function('turn_around', turn_around_tf) + +The Virtual Coach will maintain the simulation state after setting the transfer function. This means that if the simulation was running, the Virtual Coach will modify the transfer function and then automatically start the simulation again. + +As a user you can also delete transfer functions from the Virtual Coach. You just need to provide the name of the transfer function and use it in the following call: + +.. code-block:: python + + sim.delete_transfer_function('turn_around') + +This will delete the turn_around transfer function we just modified. If you have a frontend web cockpit joined on your simulation, you will notice that the robot stopped spinning since the transfer function responsible for that behavior has been deleted. Note that deletion and addition of transfer functions are not reflected in the frontend. If you want more proof that the transfer function has been deleted, you can revisit the print_transfer_functions call and make sure that it doesn't print out turn_around. + +We can also add new transfer functions. For this we only need to provide the transfer function code as a string parameter to the add_transfer_function function. We don't have to provide a name since the name will just be the function's name. Remember that transfer functions definition names have to be unique, so duplicate function names will result in errors. Here we'll create three transfer functions that store Spike, Joint and Robot positions into csv files. + +.. code-block:: python + + csv_spike_monitor = """@nrp.MapCSVRecorder("recorder", filename="all_spikes.csv", headers=["id", "time"]) + @nrp.MapSpikeSink("record_neurons", nrp.brain.record, nrp.spike_recorder) + @nrp.Neuron2Robot(Topic('/monitor/spike_recorder', cle_ros_msgs.msg.SpikeEvent)) + def csv_spike_monitor(t, recorder, record_neurons): + for i in range(0, len(record_neurons.times)): + recorder.record_entry( + record_neurons.times[i][0], + record_neurons.times[i][1] + )""" + + sim.add_transfer_function(csv_spike_monitor) + +.. code-block:: python + + csv_joint_state_monitor = """@nrp.MapRobotSubscriber("joint_state", Topic('/husky/joint_states', sensor_msgs.msg.JointState)) + @nrp.MapCSVRecorder("recorder", filename="all_joints_positions.csv", headers=["Name", "time", "Position"]) + def csv_joint_state_monitor(t, joint_state, recorder): + if not isinstance(joint_state.value, type(None)): + for i in range(0, len(joint_state.value.name)): + recorder.record_entry(joint_state.value.name[i], t, joint_state.value.position[i])""" + + sim.add_transfer_function(csv_joint_state_monitor) + +.. code-block:: python + + csv_robot_position = """@nrp.MapCSVRecorder("recorder", filename="robot_position.csv", headers=["x", "y", "z"]) + @nrp.MapRobotSubscriber("position", Topic('/gazebo/model_states', gazebo_msgs.msg.ModelStates)) + @nrp.MapVariable("robot_index", global_key="robot_index", initial_value=None) + @nrp.Robot2Neuron() + def csv_robot_position(t, position, recorder, robot_index): + if not isinstance(position.value, type(None)): + + # determine if previously set robot index has changed + if robot_index.value is not None: + + # if the value is invalid, reset the index below + if robot_index.value >= len(position.value.name) or\ + position.value.name[robot_index.value] != 'husky': + robot_index.value = None + + # robot index is invalid, find and set it + if robot_index.value is None: + + # 'husky' is the bodyModel declared in the bibi, if not found raise error + robot_index.value = position.value.name.index('husky') + + # record the current robot position + recorder.record_entry(position.value.pose[robot_index.value].position.x, + position.value.pose[robot_index.value].position.y, + position.value.pose[robot_index.value].position.z)""" + + sim.add_transfer_function(csv_robot_position) + + +Those transfer functions will log the simulation time to the log console every two seconds. + + +Getting CSV Data +^^^^^^^^^^^^^^^^ + +With the transfer functions that we wrote, we can access all csv data from the Virtual Coach and plot or analyze the data. To know what kind of data is being saved to csv files in an experiment, you can print out the names of the csv files first using this call: + +.. code-block:: python + + vc.print_csv_last_run_files(exp_id) + +In the case of the Template Husky experiment, this will print out *all_spikes.csv* and *all_joints_positions.csv* and *robot_position.csv*. We can now get the data from any one of these files. Note that these files will be populated only if a simulation has been running. Here we will get and print out the Spike data: + +.. code-block:: python + + spikes = vc.print_csv_last_run_file(exp_id, 'all_spikes.csv') + print(spikes) + [[u'id', u'time', u'Simulation_reset'], + [u'3.0', u'0.10000000000000001', u'RESET'], + [u'4.0', u'2.6000000000000001', u''], + [u'3.0', u'57.200000000000003', u'']] + +In the code snippet above you can notice the additional *Simulation_reset* column which automatically keeps track of *reset* events. + +We can also write our own custom functions to plot the data we got. The following is a custom function that will plot each spike from the csv file as a blue dot. Note also that the first line in the csv data is a header that need to be accounted for when plotting. + +.. code-block:: python + + from StringIO import StringIO + import pandas as pd + import matplotlib.pyplot as plt + + spikes_df = pd.read_csv(StringIO(spikes), sep=",") + spikes_df.plot.scatter('time','id') + plt.show() + +State Machines +^^^^^^^^^^^^^^ +Through the Virtual Coach, users can interact with the simulation state machines the same way they can with the transfer functions. Currently we have only one experiment that contains a state machine. Let's stop our current simulation and start it and see how we can interact with the state machines. + +.. code-block:: python + + sim.stop() + exp_id = vc.clone_experiment_to_storage('ScreenSwitchingHuskyExperiment') + sim = vc.launch_experiment(exp_id) + +After the experiment has been started, we can retrieve the names of the defined state machines. + +.. code-block:: python + + sim.print_state_machines() + +This call should print out *HuskyAwareScreenControlling*. To retrieve the code of the state machine, we will have to use its name we just got. + +.. code-block:: python + + sm = sim.get_state_machine('HuskyAwareScreenControlling') + +Since state machines are also python scripts, we can load them in jupyter notebooks with the ``%load`` command like we did with the transfer functions. Additionally, we can also edit and delete them, or add new ones, exactly like we interact with transfer functions. Below are the calls for editing, deleting and adding state machines. + +.. code-block:: python + + sim.edit_state_machine(state_machine_name, state_machine_code) + sim.delete_state_machine(state_machine_name) + sim.add_state_machine(state_machine_name, state_machine_code) + +The only difference between interacting with state machines and transfer functions is that the state machines' are not the python function names. Therefore, when adding a new state machine, the user has to explicitly give it a name. + +Reset Functionality +^^^^^^^^^^^^^^^^^^^ + +It is also possible to reset certain aspects of the simulation from the Virtual Coach, exactly as it is possible from the web cockpit. There are four **reset types** possible from the Virtual Coach: *Robot Frame*, *Environment*, *Brain*, and the *Full Simulation*. You can reset all simulation aspects with the same call: + + +.. code-block:: python + + sim.reset('robot_pose') + sim.reset('world') + sim.reset('brain') + sim.reset('full') + +If you want to look at more concrete example experiments run from the Virtual Coach, you can check out the **hbp_nrp_virtual_coach/examples** directory. + diff --git a/hbp_nrp_virtual_coach/doc/source/tutorials/launching_exp.rst b/hbp_nrp_virtual_coach/doc/source/tutorials/launching_exp.rst new file mode 100644 index 0000000..1de0fe9 --- /dev/null +++ b/hbp_nrp_virtual_coach/doc/source/tutorials/launching_exp.rst @@ -0,0 +1,69 @@ +.. _virtual-coach-tutorials-launch: + +.. sectionauthor:: Eloy Retamino <retamino@ugr.es> + +Launching an Experiment from the Virtual Coach +======================================================== + +Starting the Virtual Coach +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +There is a special alias for running the Virtual Coach. For this alias to work, :code:`$HBP/user-scripts/nrp_aliases` has to be sourced in your *bash.rc*. The ``configure_nrp`` script takes care of that automatically. The Virtual Coach alias is :code:`cle-virtual-coach` and can be run in three different ways: + +There are different ways to start a Virtual Coach instance. With a local :abbr:`NRP (Neurorobotics Platform)` install you can use the alias :code:`cle-virtual-coach` in three different ways: + +1. **Launch a Jupyter Notebook session** + + To launch a Jupyter Notebook session just run :code:`cle-virtual-coach jupyter notebook` in a terminal. Of course, Jupyter Notebook has to be installed prior. + +2. **Launch an interactive python interpreter session** + + To launch an interactive python interpreter session just run :code:`cle-virtual-coach python` in a terminal. + +3. **Launch a python script with arguments** + + To launch a python script *foo.py* with arguments *a b c* just run :code:`cle-virtual-coach foo.py a b c`. + +This information is also available in the alias help :code:`cle-virtual-coach -h`. + +Launching a Simulation +^^^^^^^^^^^^^^^^^^^^^^ +The first thing we need to do is to import the Virtual Coach and create a VirtualCoach instance connected to an NRP server. + +.. code-block:: python + + from pynrp.virtual_coach import VirtualCoach + vc = VirtualCoach(environment='http://localhost:9000', storage_username='nrpuser', storage_password='password') + +Here we chose the local machine as the NRP server. The Virtual Coach can connect to NRP servers running in other locations by setting the *environment* parameter to the proper URL. For example, it is possible to connect to the NRP server running at *148.187.97.37* by executing this command: + +.. code-block:: python + + vc = VirtualCoach('http://148.187.97.37', oidc_username='<your-hbp-username>', oidc_password='<your-hbp-password>') + +Notice that parameters *storage_username* and *storage_password* are replaced with *oidc_username* and *oidc_password*. The latter must be used when :term:`OIDC` authentication is required, the former are used otherwise. + +Once we created a VirtualCoach instance, we can use it to check out the current state of our environment. We can see a list of the available experiments to run, a list of the available servers to run experiments on, and a list of the currently running experiments. + +.. code-block:: python + + vc.print_templates() + vc.print_available_servers() + vc.print_running_experiments() + +After making sure our experiments exist and enough resources are available, we can attempt to launch an experiment. In this next section we will launch the Template Husky experiment. We first need to clone the experiment in our storage. To launch a specific experiment, we need to specify its configuration name, which we can get from the cloned experiment list. + +.. code-block:: python + + exp_id = vc.clone_experiment_to_storage('ExDTemplateHusky') + vc.print_cloned_experiments() + sim = vc.launch_experiment(exp_id) + + +Launching an experiment can take some time and once it's been successfully launched, we'll get a `Simulation Successfully Created` log. + +We can also make sure that the experiment has been launched by querying the Virtual Coach for currently running experiments. + +---------------------------------- + +Read more about the **interaction with the experiment throught the Virtual Coach** in the :ref:`following tutorial <virtual-coach-tutorials-interact>`. \ No newline at end of file -- GitLab