From 233041d6445ec61f1de8af425547840a8f3d855b Mon Sep 17 00:00:00 2001 From: Diego Ferigo Date: Sat, 3 Jun 2023 10:21:24 +0200 Subject: [PATCH] Add sim-to-sim validation --- Chapters/Part_1/chapter_3.tex | 1 + Chapters/Part_2/chapter_7.tex | 2 + Chapters/Part_2/chapter_8.tex | 294 +- Chapters/epilogue.tex | 7 +- FrontBackmatter/contents.tex | 2 +- classicthesis-config.tex | 1 + images/contributions/chapter_8/cartpole.png | Bin 0 -> 18045 bytes .../chapter_8/cartpole_benchmark_mujoco.tikz | 955 ++++++ .../chapter_8/cartpole_jaxsim_vs_mujoco.tikz | 682 ++++ .../chapter_8/learning_curves.tikz | 2874 +++++++++++++++++ thesis.tex | 37 +- zotero.bib | 96 + 12 files changed, 4910 insertions(+), 41 deletions(-) create mode 100644 images/contributions/chapter_8/cartpole.png create mode 100644 images/contributions/chapter_8/cartpole_benchmark_mujoco.tikz create mode 100644 images/contributions/chapter_8/cartpole_jaxsim_vs_mujoco.tikz create mode 100644 images/contributions/chapter_8/learning_curves.tikz diff --git a/Chapters/Part_1/chapter_3.tex b/Chapters/Part_1/chapter_3.tex index f81a1ad..a0d8a99 100644 --- a/Chapters/Part_1/chapter_3.tex +++ b/Chapters/Part_1/chapter_3.tex @@ -593,6 +593,7 @@ \subsection{Policy Gradient} \end{remark*} \subsection{Generalized Advantage Estimation} +\label{sec:gae} Policy gradient methods are not uniquely defined by the final forms of Equation~\eqref{equation:policy_gradient_final} and Equation~\eqref{equation:policy_gradient_reward_to_go}. They are just two specific cases of a more general formulation expressed in the following form: diff --git a/Chapters/Part_2/chapter_7.tex b/Chapters/Part_2/chapter_7.tex index 0623985..8e158aa 100644 --- a/Chapters/Part_2/chapter_7.tex +++ b/Chapters/Part_2/chapter_7.tex @@ -594,6 +594,7 @@ \section{Validation} The box should start accelerating only when the applied force is able to overcome the opposing effects due to friction. We conclude this section by validating the contact model on non-flat terrain. We simulate a falling box over an inclined plane characterised by different coefficients of friction, and compare its trajectory with the Mujoco simulator~\parencite{todorov_mujoco_2012}. +The specifications of the machine used to execute the validation experiments are reported in Table~\ref{tab:laptop_specifications_validation}. \subsection{Bouncing Ball} @@ -674,6 +675,7 @@ \subsection{Sliding Box on Flat Terrain} \end{figure} \subsection{Sliding Box on Inclined Plane} +\label{sec:sliding_box_inclined_plane} \begin{figure} \centering diff --git a/Chapters/Part_2/chapter_8.tex b/Chapters/Part_2/chapter_8.tex index 14cc0a2..3092dbe 100644 --- a/Chapters/Part_2/chapter_8.tex +++ b/Chapters/Part_2/chapter_8.tex @@ -625,11 +625,10 @@ \subsection{Soft-contacts Algorithm} \State $x_{cp}, y_{cp}, z_{cp} = \pos[W]_{cp}$ \State $z_T = \mathcal{H}(x_{cp}, y_{cp})$ -\State ${}^W \dot{\mathbf{m}} = -(K / D) {}^W \mathbf{m}$ +\State ${}^W \dot{\mathbf{m}} = -(K / D) \, {}^W \mathbf{m}$ \Comment{Material relaxation dynamics} \State $\forcesix[W]_{cp} = \zeros_6$ -% \If{$z_{cp} < z_T$} \LComment{Compute normal force} \State $\hat{\mathbf{n}} = \mathcal{S}(x_{cp}, y_{cp})$ \State $\mathbf{h} = \left[0, 0, z_T - z_{cp}\right]^\top$ @@ -641,17 +640,12 @@ \subsection{Soft-contacts Algorithm} \LComment{Compute tangential force} \State $\forcelin_\parallel = \zeros_3$ -% \State ${}^W \dot{\mathbf{m}} = \vellin_\parallel$ -\If{$\mu \neq 0$ and $z_{cp} > z_T$} - % \If{$z_{cp} > z_T$} - % \Comment{Contact not active or deactivated} - - % \Else - % \Comment{Contact active} - \State $\vellin^\perp = (\posd[W]_C \cdot \hat{\mathbf{n}}) \hat{\mathbf{n}}$ + +\If{$\mu \neq 0$ and $z_{cp} < z_T$} + \State $\vellin^\perp = \left( \posd[W]_C \cdot \hat{\mathbf{n}} \right) \hat{\mathbf{n}}$ \State $\vellin^\parallel = \posd[W]_C - \vellin^\perp$ - \State $\forcelin_\parallel = -\sqrt{\delta}(K {}^W \mathbf{m} + D \vellin^\parallel)$ + \State $\forcelin_\parallel = -\sqrt{\delta}(K \, {}^W \mathbf{m} + D \vellin^\parallel)$ \Comment{Compute sticking force} \State ${}^W \dot{\mathbf{m}} = \vellin_\parallel$ @@ -660,14 +654,12 @@ \subsection{Soft-contacts Algorithm} \If{$\norm{\forcelin_\parallel} > f_{cone}$} \Comment{Compute slipping force} \State $\forcelin_\parallel = \left(f_{cone} / \norm{\forcelin_\parallel}\right) \forcelin_\parallel$ - \State ${}^W \dot{\mathbf{m}} = -(\forcelin_\parallel + K \sqrt{\delta} {}^W \mathbf{m}) / (D \sqrt{\delta})$ + \State ${}^W \dot{\mathbf{m}} = -(\forcelin_\parallel + K \sqrt{\delta} \, {}^W \mathbf{m}) / (D \sqrt{\delta})$ \EndIf - % \EndIf \EndIf \LComment{Compute 6D contact force in the world frame} \State $\forcesix[W]_{cp} = \transfor[W]^C [(\forcelin_\perp + \forcelin_\parallel)^\top, \zeros^\top_3]^\top$ -% \EndIf \State \textbf{outputs} $\left(\forcesix[W]_{cp}, {}^W \dot{\mathbf{m}}\right)$ @@ -718,7 +710,9 @@ \subsection{Features} % \end{remark*} -\begin{sidewaystable} +\begin{landscape} +% \begin{sidewaystable} +\begin{table} \centering \small \caption{Comparison of modern physics engines similar to \jaxsim. ${[*]}$ \jaxsim is developed with a differentiable framework, but this functionality has to be finalised.} @@ -741,7 +735,9 @@ \subsection{Features} \textbf{\jaxsim} & Python & Reduced & \ck & \ck & \ck & $[*]$ & \ck & & \ck & \ck \\ \bottomrule \end{tblr} -\end{sidewaystable} +\end{table} +% \end{sidewaystable} +\end{landscape} \subsection{Benchmarks} @@ -909,7 +905,260 @@ \subsubsection{Scalability} \label{fig:jaxsim_benchmark_parallel} \end{figure} -\pagebreak +\newpage +\section{Validation} +\label{sec:jaxsim_validation} + +In this section, we perform a validation of \jaxsim for generating synthetic data for robot learning. +We develop an environment exposing the \texttt{gym.Env} interface with \jaxsim, and show the sampling performance that can be reached by stepping a large number of parallel environments on a laptop \ac{GPU}. +We then plug the vectorized environment in a \ac{RL} pipeline for training a policy with the \ac{PPO} algorithm. +Finally, for presenting evidence that the data generated through the methods proposed in this thesis can be used in an out-of-distribution setting, we execute and evaluate the policy on a comparable dynamics simulated this time with Mujoco. + +The out-of-distribution validation is also known in the literature as sim-to-sim~\parencite{salvato_crossing_2021, muratore_robot_2022, bellegarda_robust_2021, du_auto-tuned_2021}. +Given that one of the assumptions for an effective transfer is the availability of a robust policy trained in the original setting, we consider as target task to learn the swing-up of an underactuated cartpole. +This task is similar to the canonical benchmark of cartpole balancing~\parencite{brockman_openai_2016}, in which the pole starts from an almost balanced configuration and the actions space is discrete (selecting either a positive of negative constant force to apply to the cart). +This cartpole balancing, however, is excessively simple, and it is not really representative of the typical problems in robotics, usually characterised by continuous action spaces. +The swing-up task makes the policy learning much more difficult by starting the episodes with an arbitrary pole position (also pointing down). +This diversity makes a big difference since it requires the policy to be considerably long-sighted, to the extent to learn to perform some initial swing to build up momentum before attempting to perform a proper balancing. + +All experiments presented in this section have been executed on a laptop whose specifications are reported in Table~\ref{tab:laptop_specifications_validation}. + +\begin{table} + \small + \centering + \begin{tblr}{ + colspec={Q[c, m]Q[c, m]}, + row{even} = {bg=gray9}, + row{1} = {font=\bfseries\footnotesize}, + } + \toprule + Specification & Value \\ + \midrule + Intel CPU & i7-10750H \\ + Nvidia GPU & GeForce GTX 1650 Ti Mobile \\ + CUDA cores & 1024 \\ + Operating system & Ubuntu 22.04 \\ + Nvidia driver & 530.41.03 \\ + CUDA & 11.2.2 \\ + cuDNN & 8.8.0.121 \\ + \jax & 0.3.15 \\ + Mujoco & 2.3.5 \\ + \bottomrule + \end{tblr} + \caption{Specifications of the machine used to execute the validation experiments.} + \label{tab:laptop_specifications_validation} +\end{table} + +\subsection{Sampling Experience for Robot Learning} + +The cartpole is a fixed-base model composed by a pole (shaped as a long and thin cylinder) connected through an un-actuated revolute joint to a cart (shaped as a box). +The cart can move along a track, whose displacement is simulated as a prismatic joint. +The linear force corresponding to this prismatic joint is the control input of the system. +Figure~\ref{fig:cartpole_swingup} reports a visualisation of the cartpole model. + +\begin{figure} + \centering + \includegraphics[width=0.85\textwidth]{images/contributions/chapter_8/cartpole.png} + \caption{Illustration of the cartpole model in the $\theta = d = 0$ configuration.} + \label{fig:cartpole_swingup} +\end{figure} + +\begin{table} + \small + \centering + \begin{tblr}{ + colspec={Q[c, m]Q[c, m]}, + row{even} = {bg=gray9}, + row{1} = {font=\bfseries\footnotesize}, + } + \toprule + Property & Value \\ + \midrule + Integrator & Semi-implicit Euler \\ + Integrator step & $0.0005\,$~s \\ + Environment step & $0.050\,$~s \\ + Control frequency & $20\,$Hz \\ + Action dimension & 1 \\ + Observation dimension & 4 \\ + Action space & $[-50,\, 50]\,$~N \\ + {Maximum episode steps} & $200$ \\ + Parallel environments & $512$ \\ + Equivalent \ac{RTF} & $24.38$ \\ + \bottomrule + \end{tblr} + \caption{Properties of the environment implementing the cartpole swing-up task.} + \label{tab:environment_properties_cartpole} +\end{table} + +\begin{table} + \small + \centering + \begin{tblr}{ + colspec={Q[c, m]Q[c, m]}, + row{even} = {bg=gray9}, + row{1} = {font=\bfseries\footnotesize}, + } + \toprule + Parameter & Value \\ + \midrule + Discount rate $\gamma$ & $0.95$ \\ + Clip parameter $\epsilon$ & $0.1$ \\ + Target \acs{KL} divergence & $0.025$ \\ + Learning rate $\alpha$ & $0.0003$ \\ + \acs{GAE} parameter $\lambda$ & $0.9$ \\ + Batch size & $2560$ \\ + Minibatch size & $256$ \\ + Number of \small{SGD} epochs & $10$ \\ + \bottomrule + \end{tblr} + \caption{PPO parameters for the the cartpole swing-up environment.} + \label{tab:ppo_parameters_cartpole} +\end{table} + +\begin{description} +% +\item[Observation] +The observation of the system is composed of the position and velocity of both joints. +If $\theta \in [-\pi,\, \pi]\,$rad is the angle of the un-actuated revolute joint (where $\theta = 0$ is a balanced pole), $d \in [-2.5,\, 2.5]\,$m the displacement of the prismatic joint, and $\omega = \dot{\theta}$ the pole velocity, we can define the observation as $\mathbf{o} = ( d, \dot{d}, \theta, \omega) \in \realn^4$. +% +\item[Action] +The action of the system is the linear force $a = f \in [-50,\, 50]\,\text{N}$ corresponding to the joint moving the cart. +It's worth noting that the action is continuous and its magnitude is not large enough to accelerate the cart and bring the pole in vertical position without swinging first. +% +\item[Environment details] +The environment simulates the physics with \jaxsim. +We use a semi-implicit Euler integrator with a step of $500\,\mu$s. +After the agent sets an action through the exposed \texttt{gym.Env} interface, we step the environment for $0.050\,$s, therefore performing $100$ physics steps each time. +The resulting control frequency, that is the update rate at which the policy applies its actions, results equal to $20\,$Hz. +The environment is implemented as a continuous control task with termination only occurring if the observation is outside its space. +In absence of termination, episodes are truncated after $200$ steps. +All environment properties are reported in Table~\ref{tab:environment_properties_cartpole}. +% +\item[Reward] +The reward function used to learn the swing-up task is the following: +% +\begin{align*} + &r_t(s_t, a_t, s_{t+1}) = \\ + &\quad r_{\text{alive}} + r_{\text{balance}} - 0.001 \, c_{\text{action}} - 0.1 \, c_{\text{vel}} - 0.5 \, c_{\text{displacement}} + , +\end{align*} +% +where $r_{\text{alive}}$ is set to $1.0$ when the environment is not terminal and $0$ otherwise, $r_{\text{balance}} = \cos{\theta}$ rewards the pole to be in a balanced state (characterised by $\theta=0)$, $c_{\text{action}} = \lVert \tau \rVert$ penalises large actuated forces, $c_{\text{vel}} = \lVert \Shaped \rVert$ penalises large joint velocities, and $c_{\text{displacement}} = \abs{d}$ penalises the cart to be far from the middle point of the track. +% +\item[Agent Networks] +We want to train a policy with \ac{RL} capable of bringing the pole to a balancing position from any state belonging to the observation space, and maintain the balance as long as possible. +The agent is composed of two neural networks corresponding to the actor --the policy-- and the critic --the return--, having two hidden layers with $512$ neurons each with {\small ReLU} activation function. +The input layer of both networks has a size of $4$ (the observation dimension). +The critic network has an output layer with just one dimension corresponding to the return, correctly bootstrapped from the value function is case of episode truncation. +The actor network encodes a univariate Gaussian distribution (the environment action is a scalar), therefore it has one output corresponding to the distribution mean and has a free parameter part of the optimisation parameters corresponding to the logarithm of the distribution's variance. +The variance is initialised with the value of $\log \sigma = \log(0.05)$. +The neural networks are optimised with Adam~\parencite{kingma_adam_2017} using a learning rate $\alpha = 0.0003$. +% +\item[Algorithm] +For the same reasons explained in Chapter~\ref{ch:learning_from_scratch}, we train the policy with the \ac{PPO} algorithm introduced in Section~\ref{sec:ppo}, configured with the clip parameter $\epsilon=0.1$. +We estimate the return from the advantage computed with \ac{GAE}, introduced in Section~\ref{sec:gae} as $R_t = \hat{A}^\text{GAE}_t + V_t$, configured with $\lambda=0.9$ and a discount rate $\gamma = 0.95$. +We use the \ac{PPO} implementation of \texttt{stable-baselines3}~\parencite{raffin_stable-baselines3_2021} that, instead of using a \ac{KL} penalty, stops the training epochs when the approximated \ac{KL} divergence exceeds a given value. +All the \ac{PPO} parameters are reported in Table~\ref{tab:ppo_parameters_cartpole}. +% +\item[Sampling] +We optimise the policy by acquiring five samples from $512$ parallelised environments running on \ac{GPU}, resulting to an equivalent \ac{RTF} of about $25$ on the machine used to run the experiments. +The number of environments has been selected by choosing the best equivalent \ac{RTF} of the \ac{JIT}-compiled vectorized \texttt{gym.Env.step} through a grid-search in the $N_\text{envs} = 2^p,\, p \in \{1,\, 2,\, 3,\, \dots, 12\}$ range. +The collected batch of trajectories, containing a total of $2560$ samples and equivalent to about 2 minutes of experience, is then split in $10$ minibatches of $256$ samples. +We perform $10$ optimisation epochs on the same batch of trajectories, that can be interrupted earlier in case the approximated \ac{KL} divergence \wrt the distribution corresponding to the previous policy exceeds $0.025$. +Before optimising the \acp{NN} of the agent, the collected observations and rewards are normalized by computing a running mean and standard variance. +Finally, in order to obtain a more robust policy, we inject some Gaussian noise with zero mean and $\sigma=0.05$ to the actions before being applied to the environment. +% +\end{description} + +\begin{figure} + \centering + \resizebox{0.75\textwidth}{!}{ + \includegraphics{images/contributions/chapter_8/learning_curves.tikz}} + \caption{Learning curves of the cartpole swing-up task. The plot reports the mean and standard deviation of the average rewards $\hat{r}_t^{(k)}$ computed over $k=10$ different training executions. For each individual training, the average reward $\hat{r}_t$ in the considered parallel setting is computed by averaging at each time step the $512$ rewards received from the vectorized \texttt{gym.Env.step}.} + \label{fig:learning_curve_cartpole_swingup} +\end{figure} + +\newpage +Figure~\ref{fig:learning_curve_cartpole_swingup} shows the learning curve of 10 trainings initialised with different seeds. +The policy is able to learn effective swing-up and balancing behaviours in $500000$ steps, corresponding to about $7$ hours of equivalent experience. +On the machine used to run this experiment, each training runs for approximately $15$ minutes. +The reward grows mostly monotonically with a limited variance, showing that the chosen parameters ensure stable policy updates, preventing optimisation steps too large that would destroy the previously obtained performance. + +\subsection{Sim-to-sim Policy Transfer} + +\begin{table} + \small + \centering + \begin{tblr}{ + colspec={Q[c, m]Q[c, m]}, + row{even} = {bg=gray9}, + row{1} = {font=\bfseries\footnotesize}, + } + \toprule + Property & Value \\ + \midrule + \texttt{timestep} & $0.001$ \\ + \texttt{integrator} & \texttt{RK4} \\ + \texttt{solver} & \texttt{Newton} \\ + \texttt{iterations} & $100$ \\ + \texttt{contype} & $0$ \\ + \bottomrule + \end{tblr} + \caption{Mujoco properties used for the sim-to-sim evaluation of the trained cartpole swing-up policy. Refer to the official documentation at \url{https://mujoco.readthedocs.io} for a detailed explanation of the options.} + \label{tab:mujoco_parameters} +\end{table} + +In this section, we attempt to evaluate the trained policy in an out-of-distribution setting. +This setting could represent any environment that differs from the one where the policy has been trained. +It serves as evidence that it's possible to deploy a policy obtained from training over synthetic data generated efficiently by a parallel simulator into an equivalent environment running on a different runtime. +In particular, this experiment can be seen as a sim-to-sim policy transfer. + +Similarly to Section~\ref{sec:sliding_box_inclined_plane}, we use the Mujoco simulator as out-of-distribution setting. +We translated the \ac{URDF} of the cartpole model loaded in \jaxsim in the training environment to an equivalent \ac{MJCF} that can be imported in Mujoco. +Then, we included in the same file the configuration of the physics engine, whose parameters are reported in Table~\ref{tab:mujoco_parameters}. +The chosen parameters expose a simulation characterised by the same control rate ($20\,$Hz), but in this case the physics is simulated in a different simulator using an integrator of a different family and different constraint solver. + +The Mujoco environment is only used for producing the state-action trajectory $\tau$ from a given initial observation $\mathbf{o}_0$, where the action is obtained by performing inference of the trained policy. +In order to perform a proper exploitation of the policy, we sample deterministically by taking the inferred mean of the Gaussian distribution described by the policy, \ie $a_t = \mu_{\boldsymbol{\theta}}(\mathbf{o}_t)$. + +The first evaluation we perform in this setting is a comparison between the swing-up trajectory obtained by running the policy in the training environment simulated with \jaxsim and the out-of-distribution environment simulated with Mujoco. +In order to obtain a meaningful comparison, we consider as initial observation the cart resting in the center of its track and the pole pointing down, both with zero velocity, \ie $\mathbf{o}_0 = (0, 0, \pi, 0)$. +The two trajectories are shown in Figure~\ref{fig:cartpole_trajectory_jaxsim_vs_mujoco}, where it can be noticed that the policy performance are comparable in both simulators. +The policy is able to succeed in the swing-up task and the resulting trajectories in both simulators are almost identical. + +As second evaluation, starting from the same initial observation $\mathbf{o}_0$ considered in the first evaluation, we assess the policy swing-up performance on different variations of the cartpole environment simulated with the out-of-distribution Mujoco. +In particular, we modify some physical parameters and evaluate whether the learned policy is robust enough to succeed in the task. +In the first variation, we double the mass of both the cart and the pole, taking care to compute the new $3\times 3$ inertia matrices corresponding to the primitive shape of the bodies. +In the second variation, in addition to the increased masses, we include joint damping, \ie a frictional force proportional to the joint velocity that opposes the motion direction. +For a revolute joint, its contribution is $\tau_\text{damping} = - k_v \dot{\theta}$. +Figure~\ref{fig:cartpole_mujoco_change_parameters} reports the curves simulated in the out-of-distribution Mujoco simulator using out-of-distribution model parameters. +Despite the out-of-distribution environment, it can be seen that the policy learned in a highly parallel setting simulated with \jaxsim on \ac{GPU} succeeds in swing-up task. +As it can be expected, the performance are affected by the change of parameters. +For example, the policy is able to reach the balancing state by using only one swing in the setting with nominal parameters. +Instead, in the two variations, the policy needs two swings. + +It's worth noting that the policy has been trained only using the nominal parameters. +Often, in order to obtain more robust policies, the inertial parameters of the simulated model become part of domain randomization. +In our case, we did not randomize any parameter. + +\begin{figure} + \centering + \resizebox{0.99\textwidth}{!}{ + \includegraphics{images/contributions/chapter_8/cartpole_jaxsim_vs_mujoco} + } + \caption{Sim-to-sim comparison of the trajectories obtained by exploiting the swing-up policy learned in a \jaxsim environment. The \jaxsim curves correspond to an in-distribution setting, where the policy is evaluated in the same simulator that generated training data. Instead, the Mujoco curves correspond to an out-of-distribution setting, where the policy is evaluate in a simulator different from the one that generated training data. Note that $\theta$, due to its range, is projected in the $[-\pi,\, \pi]$ range.} + \label{fig:cartpole_trajectory_jaxsim_vs_mujoco} +\end{figure} + +\begin{figure} + \centering + \resizebox{0.99\textwidth}{!}{ + \includegraphics{images/contributions/chapter_8/cartpole_benchmark_mujoco} + } + \caption{Trajectories of the cartpole swing-up policy acting on the out-of-distribution environment simulated in Mujoco. The \emph{nominal} curves are obtained by running the policy on a cartpole model having nominal masses of both the cart and the pole, and with no joint damping. The \emph{mass} curves show the obtained trajectories with the model having the masses of both bodies multiplied by $2x$. The \emph{mass+damping} curves are generated in a setting that extends the \emph{mass} one by also considering for both joints a damping with $k_v=0.015$. Note that in this case, we removed the bounds of the pole angle, showing more clearly the number of swings used by the policy to reach the balancing state.} + \label{fig:cartpole_mujoco_change_parameters} +\end{figure} + \section{Conclusions} In this chapter, we proposed \jaxsim, a new physics engine capable of executing multibody simulations on modern hardware accelerators. @@ -923,11 +1172,16 @@ \section{Conclusions} Applications requiring sampling experience with high throughput such as those characterising \ac{RL} research, would benefit the most from these performances. Furthermore, generating physics data directly in the same device where function approximators are optimised would remove any overhead related to the data transfer from the \ac{CPU}. We intend to investigate these directions in future activities. +Finally, we trained a policy to solve a continuous control problem simulated with \jaxsim, providing details on the parallelization level that can be reached for sampling synthetic data in a characteristic robot learning application. +Then, to provide evidence that it's possible to deploy policies obtained from training by sampling from highly parallel simulators, we performed a sim-to-sim transfer and evaluated the policy performance on a out-of-distribution simulator and physical parameters. +The obtained \ac{RL} setting is much simpler compared to one adopted in Chapter~\ref{ch:learning_from_scratch}. +The possibility to parallelize sampling on hardware accelerators removes the need to rely on distributed settings running on a cluster of machines, that is difficult to create, maintain, and handle. +A single-process application can deploy both sampling and \acp{NN} on the same \ac{GPU}, with no overhead related to network transport. +Beyond being easier to deploy in a {\small HPC} setting, this approach may lead to a faster development and prototyping. \jaxsim still presents multiple limitations in this first version. -Firstly, the shown performances were obtained in a setting where no exteroception was necessary. -Integrating basic rendering functionality would surely affect performance. +Firstly, the shown performance were obtained in a setting where no exteroception was necessary. +Integrating basic rendering functionality would surely negatively affect them. Furthermore, collisions between links are not yet supported, limiting the adoption for robot manipulation. Finally, it does not yet allow enforcing additional dynamic constraints like joint limits, and closed kinematic chains. - To conclude, although the automatic differentiation capability provided by the \jax framework has not yet been thoroughly tested with the \jaxsim algorithms, its combination with the smooth dynamics given by the contact-aware state-space representation opens up exciting research directions that will be explored in the future. diff --git a/Chapters/epilogue.tex b/Chapters/epilogue.tex index 33dcf8f..ee76698 100644 --- a/Chapters/epilogue.tex +++ b/Chapters/epilogue.tex @@ -125,10 +125,11 @@ \subsection*{\autoref{ch:scaling_rigid_body_simulations}: Scaling Rigid Body Sim To conclude the discussion on the features related to \jax, our algorithms are not yet compatible with its \ac{AD} capability. The activities to assess the support and implement \ac{AD} support are ongoing, and we expect they will enable us to start investigating all the new emerging methodologies involving differentiable simulations. -Other activities planned for the near future involve the \ac{RL} stack built over \jaxsim. -The combination of an environment interfacing with \jaxsim and \ac{RL} algorithms implemented in \jax would result in a single application whose data never leaves the hardware accelerator. +Other activities planned for the near future involve enhancing the \ac{RL} stack built over \jaxsim. +The combination of an environment interfacing with \jaxsim and \ac{RL} algorithms implemented in \jax results in a single application whose data never leaves the hardware accelerator. Therefore, beyond the sampling performance of parallel simulations, the complete pipeline would also prevent the data transfer overhead that is always present when some computation has to happen on \acp{CPU}. -We already implemented a \jax version of \ac{PPO} and tested on the canonical examples of inverted pendulum and cartpole swing-up, but the results are too preliminary and have not been included in this thesis. +In Section~\ref{sec:jaxsim_validation}, we provided a continuous control validation by sampling from a cartpole environment simulated entirely on \ac{GPU}. +However, we used an existing \ac{PPO} implementation not developed in \jax, therefore it was not possible to compile in \ac{JIT} the entire collection of the batch but only an individual parallelized sample. Future work will continue this activity, extending the investigation to contact-rich locomotion problems. Finally, we would like to embed these environments in Gym-Ignition, creating a new \jaxsim \scenario component, so that all the benefits of future real-time backends could be applicable on \jaxsim experiments. Towards this goal, Gym-Ignition should switch to the upcoming functional version of \verb|gym.Env| that has been recently proposed upstream. diff --git a/FrontBackmatter/contents.tex b/FrontBackmatter/contents.tex index 06ca8dd..2a3449a 100644 --- a/FrontBackmatter/contents.tex +++ b/FrontBackmatter/contents.tex @@ -210,7 +210,7 @@ \nomenclature[L, 17]{$\langle \mathcal{S}, \mathcal{A}, \mathcal{R}, \mathcal{P}, \mathcal{\rho}_0 \rangle$}{Tuple defining a Markov Decision Process} \nomenclature[L, 18]{$V^\pi(s)$}{State-value function for policy $\pi$ at state $s$} \nomenclature[L, 18]{$Q^\pi(s, a)$}{Action-value function for policy $\pi$ at state-action pair $(s, a)$} - \nomenclature[L, 19]{$A^\pi(s, a)$}{Advantage function for policy $pi$ at state-action pair $(s, a)$} + \nomenclature[L, 19]{$A^\pi(s, a)$}{Advantage function for policy $\pi$ at state-action pair $(s, a)$} \nomenclature[L, 20]{$\mathbb{E}[\cdot]$}{Expected value of a random variable} \nomenclature[L, 21]{$\hat{\mathbb{E}}[\cdot]$}{Empirical average estimating the expected value of a random variable from samples} diff --git a/classicthesis-config.tex b/classicthesis-config.tex index 646fc92..cda2f9b 100644 --- a/classicthesis-config.tex +++ b/classicthesis-config.tex @@ -128,6 +128,7 @@ % 4. Setup floats: tables, (sub)figures, and captions % **************************************************************************************************** +\usepackage{pdflscape} \usepackage{rotating} \usepackage{tabularx} % better tables \setlength{\extrarowheight}{3pt} % increase table row height diff --git a/images/contributions/chapter_8/cartpole.png b/images/contributions/chapter_8/cartpole.png new file mode 100644 index 0000000000000000000000000000000000000000..f19570a31aff5bf19357a61f161c90b63cf96e28 GIT binary patch literal 18045 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 literal 0 HcmV?d00001 diff --git a/images/contributions/chapter_8/cartpole_benchmark_mujoco.tikz b/images/contributions/chapter_8/cartpole_benchmark_mujoco.tikz new file mode 100644 index 0000000..2e65bf0 --- /dev/null +++ b/images/contributions/chapter_8/cartpole_benchmark_mujoco.tikz @@ -0,0 +1,955 @@ +% This file was created with tikzplotlib v0.10.1. +\begin{tikzpicture} + +\definecolor{darkgray176}{RGB}{176,176,176} +\definecolor{indianred2048062}{RGB}{204,80,62} +\definecolor{seagreen1513384}{RGB}{15,133,84} +\definecolor{teal29105150}{RGB}{29,105,150} + +\begin{groupplot}[group style={group size=1 by 3}] +\nextgroupplot[ +width=0.98*\textwidth, +height=0.8*\axisdefaultheight, +scaled x ticks=manual:{}{\pgfmathparse{#1}}, +tick align=outside, +tick pos=left, +title={\textbf{Cartpole swing-up trajectories with out-of-distribution parameters and simulator}}, +x grid style={darkgray176!30}, +xmajorgrids, +xmin=-0.5, xmax=10.5, +xtick style={color=black}, +xticklabels={}, +y grid style={darkgray176!30}, +ylabel={Pole angle $\theta$ [rad]}, +ymajorgrids, +ymin=-0.428858034986458, ymax=6.61225360864816, +ytick style={color=black}, +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + anchor=north east, + draw=white!80!black, +}, +] +\addlegendentry{nominal} +\addlegendentry{mass} +\addlegendentry{mass+damping} +\addplot [teal29105150] +table {% +0 3.14159274101257 +0.0499999523162842 3.11316442489624 +0.100000023841858 3.029217004776 +0.149999976158142 2.89824342727661 +0.200000047683716 2.73735928535461 +0.25 2.5680468082428 +0.299999952316284 2.41170239448547 +0.350000023841858 2.28390908241272 +0.399999976158142 2.19294714927673 +0.450000047683716 2.14294624328613 +0.5 2.13666033744812 +0.549999952316284 2.17623066902161 +0.600000023841858 2.26421642303467 +0.649999976158142 2.40401554107666 +0.700000047683716 2.59872937202454 +0.75 2.84934735298157 +0.799999952316284 3.15100049972534 +0.850000023841858 3.50543355941772 +0.899999976158142 3.88264894485474 +0.950000047683716 4.23039865493774 +1 4.53415298461914 +1.04999995231628 4.79751300811768 +1.10000002384186 5.02463150024414 +1.14999997615814 5.21915435791016 +1.20000004768372 5.38505220413208 +1.25 5.52796697616577 +1.29999995231628 5.65329122543335 +1.35000002384186 5.76173830032349 +1.39999997615814 5.85205841064453 +1.45000004768372 5.92473888397217 +1.5 5.9816780090332 +1.54999995231628 6.02631378173828 +1.60000002384186 6.06209897994995 +1.64999997615814 6.09090852737427 +1.70000004768372 6.11374855041504 +1.75 6.13175058364868 +1.79999995231628 6.1459379196167 +1.89999997615814 6.16585254669189 +2 6.17880010604858 +2.20000004768372 6.19638776779175 +2.45000004768372 6.21899080276489 +3 6.2739782333374 +3.20000004768372 6.28569269180298 +3.40000009536743 6.29125213623047 +3.65000009536743 6.29172992706299 +4.94999980926514 6.28203392028809 +7.34999990463257 6.28315734863281 +10 6.28318500518799 +}; +\addplot [seagreen1513384] +table {% +0 3.14159274101257 +0.0499999523162842 3.12737798690796 +0.100000023841858 3.08535408973694 +0.149999976158142 3.01776647567749 +0.200000047683716 2.92952942848206 +0.350000023841858 2.62188720703125 +0.399999976158142 2.53420686721802 +0.450000047683716 2.46666502952576 +0.5 2.42466759681702 +0.549999952316284 2.41208434104919 +0.600000023841858 2.43159580230713 +0.649999976158142 2.48502612113953 +0.700000047683716 2.57373929023743 +0.75 2.69829940795898 +0.799999952316284 2.85773730278015 +0.850000023841858 3.04890275001526 +0.899999976158142 3.26606345176697 +0.950000047683716 3.50950789451599 +1.04999995231628 4.0357985496521 +1.10000002384186 4.2825493812561 +1.14999997615814 4.50202655792236 +1.20000004768372 4.68788623809814 +1.25 4.83674240112305 +1.29999995231628 4.94769191741943 +1.35000002384186 5.02182006835938 +1.39999997615814 5.06094121932983 +1.45000004768372 5.06656932830811 +1.5 5.03937196731567 +1.54999995231628 4.97903060913086 +1.60000002384186 4.8844165802002 +1.64999997615814 4.7540111541748 +1.70000004768372 4.5864405632019 +1.75 4.38077020645142 +1.79999995231628 4.13698577880859 +1.85000002384186 3.85720920562744 +1.89999997615814 3.54757308959961 +2 2.88925981521606 +2.15000009536743 1.85401403903961 +2.20000004768372 1.55851316452026 +2.25 1.30029225349426 +2.29999995231628 1.07738780975342 +2.34999990463257 0.886365175247192 +2.40000009536743 0.72206974029541 +2.45000004768372 0.578912734985352 +2.5 0.454472303390503 +2.54999995231628 0.350138902664185 +2.59999990463257 0.266948223114014 +2.65000009536743 0.203443765640259 +2.70000004768372 0.156808614730835 +2.75 0.123730421066284 +2.79999995231628 0.101237535476685 +2.84999990463257 0.0870523452758789 +2.90000009536743 0.0792902708053589 +2.95000004768372 0.0762373208999634 +3.04999995231628 0.0787324905395508 +3.25 0.0909607410430908 +3.34999990463257 0.0901103019714355 +3.45000004768372 0.081243634223938 +3.54999995231628 0.0655739307403564 +3.84999990463257 0.0103480815887451 +3.95000004768372 -0.00236403942108154 +4.05000019073486 -0.0107022523880005 +4.15000009536743 -0.0149328708648682 +4.30000019073486 -0.0151280164718628 +4.5 -0.00835633277893066 +4.84999990463257 0.00531435012817383 +5.05000019073486 0.00726318359375 +5.34999990463257 0.00327968597412109 +5.75 -0.00186848640441895 +6.15000009536743 -0.00116312503814697 +6.84999990463257 0.000665068626403809 +8.85000038146973 1.00135803222656e-05 +10 8.82148742675781e-06 +}; +\addplot [indianred2048062] +table {% +0 3.14159274101257 +0.0499999523162842 3.127436876297 +0.100000023841858 3.08582830429077 +0.149999976158142 3.01936626434326 +0.200000047683716 2.93325781822205 +0.350000023841858 2.63873529434204 +0.399999976158142 2.55710244178772 +0.450000047683716 2.49586009979248 +0.5 2.46001195907593 +0.549999952316284 2.45308256149292 +0.600000023841858 2.47734642028809 +0.649999976158142 2.53414821624756 +0.700000047683716 2.62429928779602 +0.75 2.74772834777832 +0.799999952316284 2.90267753601074 +0.850000023841858 3.08518075942993 +0.899999976158142 3.28895664215088 +0.950000047683716 3.51513457298279 +1.04999995231628 4.00232458114624 +1.10000002384186 4.22979307174683 +1.14999997615814 4.43061113357544 +1.20000004768372 4.59798669815063 +1.25 4.72808170318604 +1.29999995231628 4.81948947906494 +1.35000002384186 4.87262201309204 +1.39999997615814 4.88866710662842 +1.45000004768372 4.86869955062866 +1.5 4.81318521499634 +1.54999995231628 4.72196531295776 +1.60000002384186 4.59456825256348 +1.64999997615814 4.43059015274048 +1.70000004768372 4.23008728027344 +1.75 3.99427461624146 +1.79999995231628 3.72676396369934 +1.89999997615814 3.13162565231323 +1.95000004768372 2.79632949829102 +2.04999995231628 2.07625985145569 +2.09999990463257 1.76077783107758 +2.15000009536743 1.48621475696564 +2.20000004768372 1.25158298015594 +2.25 1.05484640598297 +2.29999995231628 0.892646074295044 +2.34999990463257 0.759428739547729 +2.40000009536743 0.648389101028442 +2.45000004768372 0.55292022228241 +2.5 0.467167019844055 +2.59999990463257 0.309610962867737 +2.65000009536743 0.236144542694092 +2.70000004768372 0.168265700340271 +2.75 0.107647061347961 +2.79999995231628 0.0551607608795166 +2.84999990463257 0.0108542442321777 +2.90000009536743 -0.0256514549255371 +2.95000004768372 -0.0548015832901001 +3 -0.0771408081054688 +3.04999995231628 -0.0932321548461914 +3.09999990463257 -0.10357141494751 +3.15000009536743 -0.10861074924469 +3.20000004768372 -0.108807563781738 +3.25 -0.104635000228882 +3.29999995231628 -0.0965436697006226 +3.34999990463257 -0.0849307775497437 +3.45000004768372 -0.0529919862747192 +3.75 0.0587311983108521 +3.84999990463257 0.08613121509552 +3.90000009536743 0.095963716506958 +3.95000004768372 0.102633357048035 +4 0.105760931968689 +4.05000019073486 0.105126738548279 +4.09999990463257 0.100800395011902 +4.15000009536743 0.0932033061981201 +4.25 0.0710544586181641 +4.5 0.00765824317932129 +4.59999990463257 -0.0109573602676392 +4.69999980926514 -0.0233756303787231 +4.80000019073486 -0.0296239852905273 +4.90000009536743 -0.0304961204528809 +5 -0.0270965099334717 +5.15000009536743 -0.0166442394256592 +5.44999980926514 0.00780320167541504 +5.59999990463257 0.0145895481109619 +5.75 0.0158199071884155 +5.94999980926514 0.0106453895568848 +6.40000009536743 -0.00470054149627686 +6.59999990463257 -0.00606143474578857 +6.90000009536743 -0.00262999534606934 +7.34999990463257 0.00261390209197998 +7.75 0.00113165378570557 +8.39999961853027 -0.000965595245361328 +10 -0.000184416770935059 +}; + +\nextgroupplot[ +width=0.98*\textwidth, +height=0.8*\axisdefaultheight, +scaled x ticks=manual:{}{\pgfmathparse{#1}}, +tick align=outside, +tick pos=left, +x grid style={darkgray176!30}, +xmajorgrids, +xmin=-0.5, xmax=10.5, +xtick style={color=black}, +xticklabels={}, +y grid style={darkgray176!30}, +ylabel={Cart position $d$ [m]}, +ymajorgrids, +ymin=-0.533162417307961, ymax=1.32599500023271, +ytick style={color=black}, +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + anchor=north east, + draw=white!80!black, +}, +] +\addlegendentry{nominal} +\addlegendentry{mass} +\addlegendentry{mass+damping} +\addplot [teal29105150] +table {% +0 0 +0.0499999523162842 0.019012451171875 +0.100000023841858 0.0758955478668213 +0.149999976158142 0.167281746864319 +0.200000047683716 0.285481095314026 +0.25 0.42038881778717 +0.299999952316284 0.560904979705811 +0.350000023841858 0.697999477386475 +0.399999976158142 0.826302289962769 +0.450000047683716 0.94251012802124 +0.5 1.04367899894714 +0.549999952316284 1.12720656394958 +0.600000023841858 1.19019103050232 +0.649999976158142 1.22924363613129 +0.700000047683716 1.24148786067963 +0.75 1.22509467601776 +0.799999952316284 1.18036949634552 +0.850000023841858 1.09977996349335 +0.899999976158142 0.994075059890747 +0.950000047683716 0.893744945526123 +1 0.80928373336792 +1.04999995231628 0.737652540206909 +1.10000002384186 0.675179719924927 +1.14999997615814 0.619478702545166 +1.20000004768372 0.569486379623413 +1.25 0.52622652053833 +1.29999995231628 0.490436434745789 +1.45000004768372 0.395806670188904 +1.5 0.361668467521667 +1.60000002384186 0.292282462120056 +1.64999997615814 0.258697271347046 +1.70000004768372 0.225936889648438 +1.75 0.194191098213196 +1.79999995231628 0.163695812225342 +1.85000002384186 0.134603142738342 +1.89999997615814 0.107106566429138 +1.95000004768372 0.0814223289489746 +2 0.0576845407485962 +2.04999995231628 0.0359920263290405 +2.09999990463257 0.0164226293563843 +2.15000009536743 -0.000980019569396973 +2.20000004768372 -0.0161834955215454 +2.25 -0.029173731803894 +2.29999995231628 -0.0399761199951172 +2.34999990463257 -0.0486328601837158 +2.40000009536743 -0.0552521944046021 +2.45000004768372 -0.0599976778030396 +2.5 -0.063002347946167 +2.54999995231628 -0.0644195079803467 +2.59999990463257 -0.0644369125366211 +2.65000009536743 -0.0632408857345581 +2.70000004768372 -0.0610123872756958 +2.75 -0.0579200983047485 +2.84999990463257 -0.0498518943786621 +3 -0.0354187488555908 +3.15000009536743 -0.0210957527160645 +3.25 -0.0127717256546021 +3.34999990463257 -0.00587987899780273 +3.45000004768372 -0.000560283660888672 +3.54999995231628 0.00317895412445068 +3.65000009536743 0.00546109676361084 +3.75 0.00652170181274414 +3.90000009536743 0.00642657279968262 +4.09999990463257 0.00445318222045898 +4.59999990463257 -0.00164914131164551 +4.84999990463257 -0.00309062004089355 +5.15000009536743 -0.00336909294128418 +7 -0.00200200080871582 +9.94999980926514 -0.00203800201416016 +10 -0.00203800201416016 +}; +\addplot [seagreen1513384] +table {% +0 0 +0.0499999523162842 0.00950634479522705 +0.100000023841858 0.0379698276519775 +0.149999976158142 0.0849701166152954 +0.200000047683716 0.149004936218262 +0.25 0.227373123168945 +0.299999952316284 0.316799402236938 +0.350000023841858 0.413825392723083 +0.5 0.717469215393066 +0.549999952316284 0.8134605884552 +0.600000023841858 0.903050541877747 +0.649999976158142 0.984267234802246 +0.700000047683716 1.05500972270966 +0.75 1.11329555511475 +0.799999952316284 1.15762758255005 +0.850000023841858 1.18711233139038 +0.899999976158142 1.20140409469604 +0.950000047683716 1.19471395015717 +1 1.16426491737366 +1.04999995231628 1.11574673652649 +1.10000002384186 1.05390322208405 +1.14999997615814 0.981622338294983 +1.20000004768372 0.900310039520264 +1.25 0.811433076858521 +1.39999997615814 0.529704809188843 +1.45000004768372 0.43991494178772 +1.5 0.354740381240845 +1.54999995231628 0.274582147598267 +1.60000002384186 0.199295878410339 +1.64999997615814 0.128455877304077 +1.70000004768372 0.0621521472930908 +1.75 0.00101149082183838 +1.79999995231628 -0.0543900728225708 +1.85000002384186 -0.103915572166443 +1.89999997615814 -0.148486256599426 +2 -0.23242199420929 +2.04999995231628 -0.256365895271301 +2.09999990463257 -0.25565767288208 +2.15000009536743 -0.249871969223022 +2.20000004768372 -0.246229887008667 +2.25 -0.245240926742554 +2.29999995231628 -0.246075868606567 +2.34999990463257 -0.248424768447876 +2.40000009536743 -0.253158330917358 +2.45000004768372 -0.261140108108521 +2.5 -0.27062714099884 +2.54999995231628 -0.277476072311401 +2.59999990463257 -0.278488159179688 +2.65000009536743 -0.272762656211853 +2.70000004768372 -0.260740041732788 +2.75 -0.243544340133667 +2.79999995231628 -0.222366809844971 +2.84999990463257 -0.198178648948669 +2.90000009536743 -0.171886801719666 +3.04999995231628 -0.089552640914917 +3.09999990463257 -0.0636260509490967 +3.15000009536743 -0.0395869016647339 +3.20000004768372 -0.0180047750473022 +3.25 0.000634312629699707 +3.29999995231628 0.0159546136856079 +3.34999990463257 0.0277074575424194 +3.40000009536743 0.0358268022537231 +3.45000004768372 0.0404481887817383 +3.5 0.0418832302093506 +3.54999995231628 0.0405533313751221 +3.59999990463257 0.0369718074798584 +3.65000009536743 0.0317045450210571 +3.75 0.0182329416275024 +3.90000009536743 -0.00298762321472168 +3.95000004768372 -0.009116530418396 +4 -0.014452338218689 +4.05000019073486 -0.0188910961151123 +4.09999990463257 -0.0223748683929443 +4.15000009536743 -0.0248913764953613 +4.19999980926514 -0.0264656543731689 +4.25 -0.027147650718689 +4.30000019073486 -0.0270053148269653 +4.40000009536743 -0.0246149301528931 +4.5 -0.0201339721679688 +4.84999990463257 -0.00107824802398682 +4.94999980926514 0.00228273868560791 +5.05000019073486 0.00410079956054688 +5.15000009536743 0.00448489189147949 +5.30000019073486 0.00308430194854736 +5.80000019073486 -0.00424456596374512 +5.94999980926514 -0.00468134880065918 +6.15000009536743 -0.00400805473327637 +6.69999980926514 -0.00128722190856934 +7.05000019073486 -0.00153505802154541 +7.69999980926514 -0.00231456756591797 +10 -0.0020296573638916 +}; +\addplot [indianred2048062] +table {% +0 0 +0.0499999523162842 0.00950253009796143 +0.100000023841858 0.0379323959350586 +0.149999976158142 0.0848188400268555 +0.200000047683716 0.148600697517395 +0.25 0.226526618003845 +0.299999952316284 0.315297722816467 +0.350000023841858 0.411461234092712 +0.5 0.711578369140625 +0.549999952316284 0.806179285049438 +0.600000023841858 0.894288063049316 +0.649999976158142 0.973990917205811 +0.700000047683716 1.04327929019928 +0.75 1.10028576850891 +0.799999952316284 1.14371228218079 +0.850000023841858 1.17291986942291 +0.899999976158142 1.18778693675995 +0.950000047683716 1.18203568458557 +1 1.15188884735107 +1.04999995231628 1.10227918624878 +1.10000002384186 1.03738701343536 +1.14999997615814 0.959969401359558 +1.20000004768372 0.871989369392395 +1.25 0.775573492050171 +1.29999995231628 0.673943638801575 +1.39999997615814 0.468926548957825 +1.45000004768372 0.370574712753296 +1.5 0.276982545852661 +1.54999995231628 0.188712120056152 +1.60000002384186 0.105926632881165 +1.64999997615814 0.0288997888565063 +1.70000004768372 -0.0417933464050293 +1.75 -0.10572075843811 +1.79999995231628 -0.163009643554688 +1.85000002384186 -0.214813351631165 +1.89999997615814 -0.263411164283752 +1.95000004768372 -0.287912011146545 +2 -0.278084754943848 +2.04999995231628 -0.2571120262146 +2.09999990463257 -0.238086342811584 +2.15000009536743 -0.22255527973175 +2.29999995231628 -0.182314157485962 +2.34999990463257 -0.170916438102722 +2.40000009536743 -0.164104580879211 +2.45000004768372 -0.164179086685181 +2.5 -0.172871947288513 +2.54999995231628 -0.1908860206604 +2.59999990463257 -0.217397332191467 +2.65000009536743 -0.249939441680908 +2.75 -0.320370316505432 +2.79999995231628 -0.353200793266296 +2.84999990463257 -0.382329702377319 +2.90000009536743 -0.406847357749939 +2.95000004768372 -0.426079154014587 +3 -0.439598917961121 +3.04999995231628 -0.447165966033936 +3.09999990463257 -0.448655247688293 +3.15000009536743 -0.44406259059906 +3.20000004768372 -0.433526158332825 +3.25 -0.417322516441345 +3.29999995231628 -0.395828127861023 +3.34999990463257 -0.369486927986145 +3.40000009536743 -0.338848829269409 +3.45000004768372 -0.304659962654114 +3.5 -0.267884969711304 +3.70000004768372 -0.115323305130005 +3.75 -0.0799684524536133 +3.79999995231628 -0.0471334457397461 +3.84999990463257 -0.0175420045852661 +3.90000009536743 0.0081484317779541 +3.95000004768372 0.0293830633163452 +4 0.0457135438919067 +4.05000019073486 0.0568856000900269 +4.09999990463257 0.0629335641860962 +4.15000009536743 0.0642228126525879 +4.19999980926514 0.0613921880722046 +4.25 0.0551869869232178 +4.30000019073486 0.0464013814926147 +4.34999990463257 0.0358304977416992 +4.44999980926514 0.0121642351150513 +4.55000019073486 -0.01100754737854 +4.59999990463257 -0.0213189125061035 +4.65000009536743 -0.0303747653961182 +4.69999980926514 -0.037971019744873 +4.75 -0.0439836978912354 +4.80000019073486 -0.0483617782592773 +4.84999990463257 -0.0511152744293213 +4.90000009536743 -0.0523005723953247 +4.94999980926514 -0.0520071983337402 +5 -0.0503549575805664 +5.05000019073486 -0.0474947690963745 +5.09999990463257 -0.0436025857925415 +5.19999980926514 -0.0334981679916382 +5.44999980926514 -0.00446927547454834 +5.55000019073486 0.00468134880065918 +5.59999990463257 0.00821065902709961 +5.65000009536743 0.0109634399414062 +5.69999980926514 0.0129225254058838 +5.75 0.0140993595123291 +5.80000019073486 0.014528751373291 +5.90000009536743 0.0134128332138062 +6 0.0102936029434204 +6.15000009536743 0.00369417667388916 +6.30000019073486 -0.00292909145355225 +6.40000009536743 -0.00639927387237549 +6.5 -0.00873517990112305 +6.59999990463257 -0.0098426342010498 +6.69999980926514 -0.00979709625244141 +6.84999990463257 -0.00804257392883301 +7.34999990463257 0.000424623489379883 +7.5 0.00100338459014893 +7.69999980926514 0.000244498252868652 +8.25 -0.0032728910446167 +8.5 -0.00321042537689209 +9.35000038146973 -0.00156271457672119 +10 -0.00225186347961426 +}; + +\nextgroupplot[ +width=0.98*\textwidth, +height=0.8*\axisdefaultheight, +tick align=outside, +tick pos=left, +x grid style={darkgray176!30}, +xmajorgrids, +xmin=-0.5, xmax=10.5, +xtick style={color=black}, +y grid style={darkgray176!30}, +ylabel={Force applied to cart $f$ [N]}, +ymajorgrids, +ymin=-26.2798247337341, ymax=42.3187670707703, +ytick style={color=black}, +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + anchor=north east, + draw=white!80!black, +}, +] +\addlegendentry{nominal} +\addlegendentry{mass} +\addlegendentry{mass+damping} +\addplot [teal29105150] +table {% +0 15.5939607620239 +0.0499999523162842 15.520676612854 +0.100000023841858 13.037878036499 +0.149999976158142 9.61607646942139 +0.25 0.730765581130981 +0.299999952316284 -2.35638570785522 +0.350000023841858 -4.05070400238037 +0.399999976158142 -5.46542835235596 +0.450000047683716 -6.77976369857788 +0.5 -7.73431205749512 +0.549999952316284 -9.09086608886719 +0.600000023841858 -10.2340679168701 +0.649999976158142 -10.9837198257446 +0.700000047683716 -11.3140077590942 +0.75 -10.8572015762329 +0.799999952316284 -18.7454528808594 +0.850000023841858 -4.44649028778076 +0.899999976158142 4.84866809844971 +0.950000047683716 4.59893894195557 +1 3.25690722465515 +1.04999995231628 2.52445650100708 +1.10000002384186 2.13095307350159 +1.14999997615814 2.29954981803894 +1.20000004768372 3.44255042076111 +1.25 3.1438524723053 +1.29999995231628 0.945952892303467 +1.35000002384186 -0.0995728969573975 +1.39999997615814 -0.613557577133179 +1.45000004768372 -0.454593181610107 +1.5 0.192463159561157 +1.54999995231628 0.557344675064087 +1.60000002384186 0.468252539634705 +1.64999997615814 0.486636519432068 +1.70000004768372 0.59409499168396 +1.75 0.655533909797668 +1.79999995231628 0.699015140533447 +1.85000002384186 0.798288702964783 +1.89999997615814 0.863532900810242 +2 0.935891389846802 +2.04999995231628 0.954321384429932 +2.15000009536743 0.974729061126709 +2.20000004768372 0.970592379570007 +2.25 0.947738885879517 +2.29999995231628 0.92967414855957 +2.34999990463257 0.852154016494751 +2.40000009536743 0.788204550743103 +2.45000004768372 0.735793113708496 +2.59999990463257 0.493512868881226 +2.65000009536743 0.417134046554565 +2.70000004768372 0.34711766242981 +2.75 0.265109539031982 +2.79999995231628 0.19122838973999 +2.84999990463257 0.128156065940857 +2.95000004768372 0.021661639213562 +3 -0.0252951383590698 +3.04999995231628 -0.0653047561645508 +3.09999990463257 -0.0983569622039795 +3.15000009536743 -0.125717759132385 +3.20000004768372 -0.145013809204102 +3.25 -0.157893180847168 +3.29999995231628 -0.165747761726379 +3.34999990463257 -0.16906201839447 +3.45000004768372 -0.169271469116211 +3.5 -0.162108540534973 +3.59999990463257 -0.138792514801025 +3.75 -0.0954494476318359 +3.79999995231628 -0.0793169736862183 +3.95000004768372 -0.0442237854003906 +4.09999990463257 -0.0155829191207886 +4.25 0.00502192974090576 +4.40000009536743 0.017408013343811 +4.55000019073486 0.0226800441741943 +4.75 0.0217399597167969 +5.05000019073486 0.0122110843658447 +5.44999980926514 0.00010216236114502 +5.80000019073486 -0.00347757339477539 +6.34999990463257 -0.00157356262207031 +7.19999980926514 0.000505566596984863 +10 6.91413879394531e-06 +}; +\addplot [seagreen1513384] +table {% +0 15.5939607620239 +0.0499999523162842 15.5483503341675 +0.100000023841858 15.0517749786377 +0.149999976158142 13.3556661605835 +0.200000047683716 11.004150390625 +0.299999952316284 5.66796636581421 +0.399999976158142 0.307034492492676 +0.450000047683716 -1.86212491989136 +0.5 -3.85764694213867 +0.600000023841858 -7.11573123931885 +0.649999976158142 -8.82696914672852 +0.700000047683716 -10.1905851364136 +0.75 -11.1719121932983 +0.850000023841858 -12.5356960296631 +0.899999976158142 -22.8873767852783 +1 -15.7105150222778 +1.04999995231628 -12.5722913742065 +1.10000002384186 -10.6292123794556 +1.14999997615814 -9.04035377502441 +1.20000004768372 -6.60694217681885 +1.25 -2.70202302932739 +1.29999995231628 0.513923168182373 +1.35000002384186 2.80659747123718 +1.39999997615814 4.20211315155029 +1.45000004768372 4.80246877670288 +1.5 4.71114158630371 +1.54999995231628 4.09843158721924 +1.60000002384186 3.19204926490784 +1.64999997615814 3.1159200668335 +1.75 2.49207544326782 +1.79999995231628 1.7422126531601 +1.89999997615814 -0.33929717540741 +1.95000004768372 -1.03285264968872 +2 34.1125831604004 +2.04999995231628 14.1368865966797 +2.09999990463257 3.57156133651733 +2.15000009536743 0.952624797821045 +2.20000004768372 0.462041020393372 +2.25 0.0576977729797363 +2.29999995231628 -0.879440665245056 +2.34999990463257 -2.68613219261169 +2.40000009536743 -3.03205919265747 +2.45000004768372 -0.0728875398635864 +2.5 3.74255299568176 +2.54999995231628 5.19275569915771 +2.59999990463257 5.26579141616821 +2.65000009536743 4.54771709442139 +2.70000004768372 3.50678253173828 +2.75 2.66911578178406 +2.79999995231628 1.97149884700775 +2.90000009536743 0.434381365776062 +3 -0.866186857223511 +3.04999995231628 -1.4260630607605 +3.09999990463257 -1.91591954231262 +3.15000009536743 -2.3717782497406 +3.20000004768372 -2.72233486175537 +3.25 -2.99458789825439 +3.29999995231628 -3.13226318359375 +3.34999990463257 -3.09842991828918 +3.40000009536743 -2.89960026741028 +3.45000004768372 -2.57039570808411 +3.5 -2.18652868270874 +3.59999990463257 -1.22946858406067 +3.65000009536743 -0.784151434898376 +3.70000004768372 -0.391867876052856 +3.75 -0.0643924474716187 +3.79999995231628 0.207567691802979 +3.84999990463257 0.429673314094543 +3.90000009536743 0.597144246101379 +3.95000004768372 0.710273504257202 +4 0.781934499740601 +4.05000019073486 0.816150426864624 +4.09999990463257 0.809849977493286 +4.15000009536743 0.779927730560303 +4.19999980926514 0.730541944503784 +4.25 0.668222665786743 +4.30000019073486 0.586024045944214 +4.34999990463257 0.491402864456177 +4.40000009536743 0.402989864349365 +4.44999980926514 0.306830644607544 +4.59999990463257 0.00141704082489014 +4.65000009536743 -0.0885822772979736 +4.69999980926514 -0.166700959205627 +4.75 -0.230480790138245 +4.80000019073486 -0.278677463531494 +4.84999990463257 -0.311882972717285 +4.90000009536743 -0.329241871833801 +4.94999980926514 -0.331223011016846 +5 -0.319196581840515 +5.05000019073486 -0.295417189598083 +5.09999990463257 -0.262594938278198 +5.34999990463257 -0.0509960651397705 +5.40000009536743 -0.0153040885925293 +5.44999980926514 0.0161787271499634 +5.5 0.04292893409729 +5.55000019073486 0.0646121501922607 +5.59999990463257 0.0811101198196411 +5.65000009536743 0.0925499200820923 +5.69999980926514 0.0991678237915039 +5.75 0.101333618164062 +5.80000019073486 0.0995268821716309 +5.90000009536743 0.0865063667297363 +6 0.0647627115249634 +6.25 0.00144100189208984 +6.34999990463257 -0.017413854598999 +6.44999980926514 -0.0296354293823242 +6.55000019073486 -0.0350520610809326 +6.65000009536743 -0.0344771146774292 +6.80000019073486 -0.0255258083343506 +7.19999980926514 0.00574004650115967 +7.34999990463257 0.0107396841049194 +7.55000019073486 0.0105091333389282 +7.90000009536743 0.00120937824249268 +8.19999980926514 -0.00371861457824707 +8.55000019073486 -0.00226199626922607 +9.14999961853027 0.00127720832824707 +10 -0.000420212745666504 +}; +\addplot [indianred2048062] +table {% +0 15.5939607620239 +0.0499999523162842 15.5354099273682 +0.100000023841858 15.0025386810303 +0.149999976158142 13.2687253952026 +0.200000047683716 10.8791847229004 +0.299999952316284 5.52836990356445 +0.399999976158142 0.259945273399353 +0.450000047683716 -1.92690682411194 +0.5 -3.92053914070129 +0.649999976158142 -8.74668216705322 +0.700000047683716 -10.0694169998169 +0.75 -10.8939580917358 +0.799999952316284 -11.4569244384766 +0.850000023841858 -11.9334268569946 +0.899999976158142 -23.1617069244385 +1.04999995231628 -14.154839515686 +1.10000002384186 -12.1492357254028 +1.14999997615814 -9.83982944488525 +1.20000004768372 -7.18163919448853 +1.25 -3.01608276367188 +1.29999995231628 0.120339155197144 +1.35000002384186 2.50882983207703 +1.39999997615814 4.05655097961426 +1.45000004768372 4.56769418716431 +1.5 4.57700729370117 +1.54999995231628 4.07200336456299 +1.60000002384186 3.96518659591675 +1.64999997615814 3.76872539520264 +1.70000004768372 3.43790769577026 +1.75 2.78378081321716 +1.79999995231628 1.85426473617554 +1.85000002384186 0.852705955505371 +1.89999997615814 39.2006492614746 +2 4.88767290115356 +2.04999995231628 0.829306125640869 +2.09999990463257 0.441462874412537 +2.15000009536743 1.028315782547 +2.20000004768372 1.20706105232239 +2.25 -0.341105103492737 +2.29999995231628 -3.10087656974792 +2.34999990463257 -5.4143328666687 +2.40000009536743 -7.17361497879028 +2.45000004768372 -8.31033992767334 +2.5 -8.23518180847168 +2.54999995231628 -6.78589200973511 +2.65000009536743 -1.21341621875763 +2.70000004768372 0.948808908462524 +2.75 2.47381520271301 +2.79999995231628 3.38009715080261 +2.84999990463257 4.09732341766357 +2.90000009536743 4.60260534286499 +2.95000004768372 4.89380741119385 +3 5.07613372802734 +3.04999995231628 5.15852165222168 +3.09999990463257 5.1243748664856 +3.15000009536743 4.95596361160278 +3.20000004768372 4.67889404296875 +3.25 4.33179903030396 +3.29999995231628 3.93202042579651 +3.34999990463257 3.39901065826416 +3.40000009536743 2.66835427284241 +3.54999995231628 0.00767278671264648 +3.59999990463257 -0.672966718673706 +3.75 -2.45000839233398 +3.79999995231628 -3.05866050720215 +3.84999990463257 -3.57131433486938 +3.90000009536743 -4.00436401367188 +3.95000004768372 -4.33360004425049 +4 -4.43768310546875 +4.05000019073486 -4.28171396255493 +4.09999990463257 -3.83089971542358 +4.19999980926514 -2.58125615119934 +4.25 -1.87957751750946 +4.30000019073486 -1.23932349681854 +4.34999990463257 -0.648844003677368 +4.40000009536743 -0.132075309753418 +4.44999980926514 0.300155520439148 +4.5 0.652803659439087 +4.55000019073486 0.932989597320557 +4.59999990463257 1.14568328857422 +4.65000009536743 1.29083466529846 +4.69999980926514 1.36776268482208 +4.75 1.38858199119568 +4.80000019073486 1.36066484451294 +4.84999990463257 1.30141019821167 +4.90000009536743 1.21532607078552 +4.94999980926514 1.10311472415924 +5 0.962586402893066 +5.05000019073486 0.807267785072327 +5.09999990463257 0.640040874481201 +5.19999980926514 0.280190467834473 +5.30000019073486 -0.0827970504760742 +5.34999990463257 -0.244121670722961 +5.40000009536743 -0.383161544799805 +5.44999980926514 -0.496577024459839 +5.5 -0.582364320755005 +5.55000019073486 -0.641577005386353 +5.59999990463257 -0.672548770904541 +5.65000009536743 -0.673568725585938 +5.69999980926514 -0.65637469291687 +5.75 -0.616556763648987 +5.80000019073486 -0.554877638816833 +5.84999990463257 -0.476263284683228 +6.05000019073486 -0.120394110679626 +6.09999990463257 -0.0392366647720337 +6.15000009536743 0.034543514251709 +6.19999980926514 0.0993950366973877 +6.25 0.154694795608521 +6.30000019073486 0.199155330657959 +6.34999990463257 0.231175899505615 +6.40000009536743 0.251533389091492 +6.44999980926514 0.261793375015259 +6.5 0.26303505897522 +6.55000019073486 0.254929423332214 +6.59999990463257 0.239159107208252 +6.65000009536743 0.217308282852173 +6.69999980926514 0.18996000289917 +6.80000019073486 0.124739408493042 +7.05000019073486 -0.0385557413101196 +7.09999990463257 -0.064452052116394 +7.15000009536743 -0.0855569839477539 +7.19999980926514 -0.101575493812561 +7.25 -0.112316846847534 +7.30000019073486 -0.117862224578857 +7.34999990463257 -0.118492007255554 +7.40000009536743 -0.113857626914978 +7.5 -0.093222975730896 +7.65000009536743 -0.0510944128036499 +7.80000019073486 -0.00778985023498535 +7.90000009536743 0.0161279439926147 +8 0.0334899425506592 +8.10000038146973 0.0433659553527832 +8.19999980926514 0.0459102392196655 +8.30000019073486 0.0422691106796265 +8.44999980926514 0.0285452604293823 +8.80000019073486 -0.0100536346435547 +8.94999980926514 -0.0180414915084839 +9.10000038146973 -0.0190005302429199 +9.30000019073486 -0.0122296810150146 +9.69999980926514 0.00508999824523926 +9.89999961853027 0.00783455371856689 +10 0.00748765468597412 +}; +\end{groupplot} + +\draw ({$(current bounding box.south west)!0.51!(current bounding box.south east)$}|-{$(current bounding box.south west)!-0.04!(current bounding box.north west)$}) node[ + anchor=south, + text=black, + rotate=0.0 +]{Time [s]}; +\end{tikzpicture} diff --git a/images/contributions/chapter_8/cartpole_jaxsim_vs_mujoco.tikz b/images/contributions/chapter_8/cartpole_jaxsim_vs_mujoco.tikz new file mode 100644 index 0000000..4894f3b --- /dev/null +++ b/images/contributions/chapter_8/cartpole_jaxsim_vs_mujoco.tikz @@ -0,0 +1,682 @@ +% This file was created with tikzplotlib v0.10.1. +\begin{tikzpicture} + +\definecolor{darkgray176}{RGB}{176,176,176} +\definecolor{indianred2048062}{RGB}{204,80,62} +\definecolor{teal29105150}{RGB}{29,105,150} + +\begin{groupplot}[group style={group size=1 by 3}] +\nextgroupplot[ +width=0.98*\textwidth, +height=0.8*\axisdefaultheight, +scaled x ticks=manual:{}{\pgfmathparse{#1}}, +tick align=outside, +tick pos=left, +title={\textbf{Sim-to-sim comparison of cartpole swing-up trajectories}}, +x grid style={darkgray176!30}, +xmajorgrids, +xmin=-0.5, xmax=10.5, +xtick style={color=black}, +xticklabels={}, +y grid style={darkgray176!30}, +ylabel={Pole angle $\theta$ [rad]}, +ymajorgrids, +ymin=-3.3464425162473, ymax=3.45054670929632, +ytick style={color=black}, +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + anchor=north east, + draw=white!80!black +}, +] +\addlegendentry{\jaxsim} +\addlegendentry{Mujoco} +\addplot [teal29105150] +table {% +0 3.12828063964844 +0.0499999523162842 3.08973956108093 +0.100000023841858 3.02917838096619 +0.149999976158142 2.95181894302368 +0.25 2.77702474594116 +0.299999952316284 2.6979808807373 +0.350000023841858 2.63771986961365 +0.399999976158142 2.60506439208984 +0.450000047683716 2.6073534488678 +0.5 2.65015053749084 +0.549999952316284 2.73693060874939 +0.600000023841858 2.86878252029419 +0.649999976158142 3.04197525978088 +0.700000047683716 -3.03748846054077 +0.75 -2.78491187095642 +0.850000023841858 -2.16993522644043 +0.899999976158142 -1.89504849910736 +0.950000047683716 -1.66008424758911 +1 -1.46315765380859 +1.04999995231628 -1.30036675930023 +1.10000002384186 -1.16649794578552 +1.14999997615814 -1.05624032020569 +1.20000004768372 -0.965004682540894 +1.25 -0.888532161712646 +1.29999995231628 -0.823412895202637 +1.35000002384186 -0.767791152000427 +1.39999997615814 -0.72126030921936 +1.45000004768372 -0.685214519500732 +1.5 -0.662487506866455 +1.54999995231628 -0.657304525375366 +1.60000002384186 -0.675146698951721 +1.64999997615814 -0.720012187957764 +1.70000004768372 -0.792727708816528 +1.75 -0.893112063407898 +1.79999995231628 -1.02188420295715 +1.85000002384186 -1.18090629577637 +1.89999997615814 -1.37279200553894 +1.95000004768372 -1.59993529319763 +2 -1.8638322353363 +2.04999995231628 -2.16430830955505 +2.09999990463257 -2.49803972244263 +2.15000009536743 -2.85696887969971 +2.20000004768372 3.0549693107605 +2.29999995231628 2.26932859420776 +2.34999990463257 1.92361342906952 +2.40000009536743 1.62233877182007 +2.45000004768372 1.35905873775482 +2.5 1.12626707553864 +2.54999995231628 0.918895244598389 +2.59999990463257 0.73847508430481 +2.65000009536743 0.590020418167114 +2.70000004768372 0.476671934127808 +2.75 0.397546410560608 +2.79999995231628 0.346388339996338 +2.84999990463257 0.313953638076782 +2.90000009536743 0.293228387832642 +2.95000004768372 0.27950918674469 +3.04999995231628 0.261070966720581 +3.15000009536743 0.244996786117554 +3.25 0.222989320755005 +3.29999995231628 0.20787513256073 +3.34999990463257 0.18962824344635 +3.45000004768372 0.145071983337402 +3.65000009536743 0.0436937808990479 +3.75 0.00320017337799072 +3.84999990463257 -0.0275084972381592 +3.90000009536743 -0.0391875505447388 +3.95000004768372 -0.0482983589172363 +4.05000019073486 -0.0594476461410522 +4.15000009536743 -0.0630413293838501 +4.25 -0.0616987943649292 +4.40000009536743 -0.0545977354049683 +5.15000009536743 -0.0103991031646729 +5.40000009536743 -0.0031052827835083 +5.69999980926514 0.000843405723571777 +6.19999980926514 0.00169563293457031 +9 -4.76837158203125e-06 +10 -1.19209289550781e-07 +}; +\addplot [indianred2048062] +table {% +0 3.14159274101257 +0.0499999523162842 3.12841296195984 +0.100000023841858 3.09000372886658 +0.149999976158142 3.02959418296814 +0.200000047683716 2.95245027542114 +0.299999952316284 2.77854895591736 +0.350000023841858 2.70033621788025 +0.399999976158142 2.64125347137451 +0.450000047683716 2.6101701259613 +0.5 2.61448645591736 +0.549999952316284 2.65977168083191 +0.600000023841858 2.74946117401123 +0.649999976158142 2.88445234298706 +0.700000047683716 3.06046462059021 +0.75 -3.01709961891174 +0.799999952316284 -2.76439499855042 +0.899999976158142 -2.15505146980286 +0.950000047683716 -1.88420593738556 +1 -1.65372931957245 +1.04999995231628 -1.46192443370819 +1.10000002384186 -1.30490899085999 +1.14999997615814 -1.17753517627716 +1.20000004768372 -1.07466351985931 +1.25 -0.991733312606812 +1.29999995231628 -0.92469310760498 +1.35000002384186 -0.870853781700134 +1.39999997615814 -0.829620122909546 +1.45000004768372 -0.802276968955994 +1.5 -0.792054533958435 +1.54999995231628 -0.803150177001953 +1.60000002384186 -0.839268326759338 +1.64999997615814 -0.902688264846802 +1.70000004768372 -0.994869589805603 +1.75 -1.11740469932556 +1.79999995231628 -1.27220284938812 +1.85000002384186 -1.461594581604 +1.89999997615814 -1.68766963481903 +1.95000004768372 -1.95152020454407 +2 -2.2521960735321 +2.04999995231628 -2.58497595787048 +2.09999990463257 -2.94019150733948 +2.15000009536743 2.97896265983582 +2.25 2.22001838684082 +2.29999995231628 1.88686096668243 +2.34999990463257 1.5971622467041 +2.40000009536743 1.34546029567719 +2.45000004768372 1.12487685680389 +2.5 0.92871356010437 +2.54999995231628 0.755142211914062 +2.59999990463257 0.607916593551636 +2.65000009536743 0.491432905197144 +2.70000004768372 0.406946182250977 +2.75 0.350964784622192 +2.79999995231628 0.315355062484741 +2.84999990463257 0.292256832122803 +2.90000009536743 0.276500940322876 +3 0.253287196159363 +3.09999990463257 0.230611085891724 +3.15000009536743 0.216920733451843 +3.20000004768372 0.200592279434204 +3.25 0.181232929229736 +3.34999990463257 0.134451508522034 +3.5 0.0574408769607544 +3.54999995231628 0.0351225137710571 +3.59999990463257 0.0154869556427002 +3.65000009536743 -0.00152981281280518 +3.70000004768372 -0.0159744024276733 +3.75 -0.0279232263565063 +3.84999990463257 -0.044538140296936 +3.95000004768372 -0.0527807474136353 +4.05000019073486 -0.0549479722976685 +4.19999980926514 -0.0514926910400391 +4.40000009536743 -0.0409291982650757 +4.84999990463257 -0.0158613920211792 +5.09999990463257 -0.00675451755523682 +5.40000009536743 -0.00098109245300293 +5.80000019073486 0.00123274326324463 +7.19999980926514 9.8109245300293e-05 +10 0 +}; + +\nextgroupplot[ +width=0.99*\textwidth, +height=0.8*\axisdefaultheight, +scaled x ticks=manual:{}{\pgfmathparse{#1}}, +tick align=outside, +tick pos=left, +x grid style={darkgray176!30}, +xmajorgrids, +xmin=-0.5, xmax=10.5, +xtick style={color=black}, +xticklabels={}, +y grid style={darkgray176!30}, +ylabel={Cart position $d$ [m]}, +ymajorgrids, +ymin=-0.631790527701378, ymax=0.67541010081768, +ytick style={color=black}, +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + anchor=north east, + draw=white!80!black +}, +] +\addlegendentry{\jaxsim} +\addlegendentry{Mujoco} +\addplot [teal29105150] +table {% +0 0.00890243053436279 +0.0499999523162842 0.0350052118301392 +0.100000023841858 0.0771286487579346 +0.149999976158142 0.133326053619385 +0.200000047683716 0.200749754905701 +0.25 0.275750160217285 +0.299999952316284 0.353763818740845 +0.350000023841858 0.429482340812683 +0.399999976158142 0.497620105743408 +0.450000047683716 0.553164601325989 +0.5 0.591783046722412 +0.549999952316284 0.610209941864014 +0.600000023841858 0.606362819671631 +0.649999976158142 0.580616354942322 +0.700000047683716 0.536728620529175 +0.75 0.457116484642029 +0.799999952316284 0.330049991607666 +0.850000023841858 0.183290719985962 +0.899999976158142 0.0418491363525391 +0.950000047683716 -0.0884727239608765 +1 -0.206520676612854 +1.04999995231628 -0.310338258743286 +1.10000002384186 -0.398048877716064 +1.14999997615814 -0.468464016914368 +1.20000004768372 -0.521247506141663 +1.25 -0.555911421775818 +1.29999995231628 -0.572372317314148 +1.35000002384186 -0.571665406227112 +1.39999997615814 -0.55568265914917 +1.45000004768372 -0.527414083480835 +1.5 -0.490539312362671 +1.60000002384186 -0.408573150634766 +1.64999997615814 -0.371230363845825 +1.70000004768372 -0.337037682533264 +1.79999995231628 -0.27104377746582 +1.85000002384186 -0.236450910568237 +1.89999997615814 -0.199932217597961 +1.95000004768372 -0.16098940372467 +2 -0.118803739547729 +2.04999995231628 -0.0728247165679932 +2.09999990463257 -0.0231015682220459 +2.15000009536743 0.0295578241348267 +2.20000004768372 0.0837509632110596 +2.25 0.156019926071167 +2.29999995231628 0.236790895462036 +2.34999990463257 0.298767566680908 +2.40000009536743 0.341155767440796 +2.45000004768372 0.365291714668274 +2.5 0.372175097465515 +2.54999995231628 0.366458415985107 +2.59999990463257 0.357807874679565 +2.65000009536743 0.35550332069397 +2.70000004768372 0.36490261554718 +2.75 0.387304067611694 +2.79999995231628 0.419624328613281 +2.90000009536743 0.493313670158386 +2.95000004768372 0.52774441242218 +3 0.557626366615295 +3.04999995231628 0.581999063491821 +3.09999990463257 0.600204229354858 +3.15000009536743 0.611686706542969 +3.20000004768372 0.615991830825806 +3.25 0.612850427627563 +3.29999995231628 0.602138757705688 +3.34999990463257 0.584131240844727 +3.40000009536743 0.559529066085815 +3.45000004768372 0.529090285301208 +3.5 0.49378502368927 +3.54999995231628 0.454969644546509 +3.70000004768372 0.332336902618408 +3.75 0.292792439460754 +3.79999995231628 0.254786610603333 +3.84999990463257 0.218716621398926 +3.90000009536743 0.184960007667542 +3.95000004768372 0.15387237071991 +4 0.125602841377258 +4.05000019073486 0.100119590759277 +4.09999990463257 0.0773657560348511 +4.15000009536743 0.0571831464767456 +4.19999980926514 0.0393478870391846 +4.25 0.0236907005310059 +4.30000019073486 0.0100297927856445 +4.34999990463257 -0.00180017948150635 +4.40000009536743 -0.0119644403457642 +4.44999980926514 -0.0206114053726196 +4.5 -0.027857780456543 +4.55000019073486 -0.0338411331176758 +4.59999990463257 -0.0386948585510254 +4.65000009536743 -0.042540431022644 +4.69999980926514 -0.0454915761947632 +4.75 -0.0476570129394531 +4.80000019073486 -0.0491417646408081 +4.84999990463257 -0.0500349998474121 +4.94999980926514 -0.0503547191619873 +5.05000019073486 -0.0491746664047241 +5.15000009536743 -0.0470380783081055 +5.34999990463257 -0.041523814201355 +5.59999990463257 -0.0347222089767456 +5.80000019073486 -0.0304003953933716 +6 -0.0272568464279175 +6.19999980926514 -0.0251579284667969 +6.44999980926514 -0.0236357450485229 +6.75 -0.0228226184844971 +7.25 -0.0225495100021362 +10 -0.0227161645889282 +}; +\addplot [indianred2048062] +table {% +0 0 +0.0499999523162842 0.00881421566009521 +0.100000023841858 0.034833550453186 +0.149999976158142 0.0768800973892212 +0.200000047683716 0.133003950119019 +0.25 0.200346350669861 +0.299999952316284 0.275237441062927 +0.350000023841858 0.35309100151062 +0.399999976158142 0.428573966026306 +0.450000047683716 0.496377110481262 +0.5 0.551440954208374 +0.549999952316284 0.589408278465271 +0.600000023841858 0.606992483139038 +0.649999976158142 0.602147817611694 +0.700000047683716 0.575459480285645 +0.75 0.530866503715515 +0.799999952316284 0.451065182685852 +0.850000023841858 0.324338912963867 +0.899999976158142 0.178063750267029 +0.950000047683716 0.0366272926330566 +1 -0.0941169261932373 +1.04999995231628 -0.212679147720337 +1.10000002384186 -0.316718101501465 +1.14999997615814 -0.404213786125183 +1.20000004768372 -0.47402036190033 +1.25 -0.525506615638733 +1.29999995231628 -0.558065176010132 +1.35000002384186 -0.572020173072815 +1.39999997615814 -0.569268941879272 +1.45000004768372 -0.55285120010376 +1.5 -0.526931762695312 +1.54999995231628 -0.495857954025269 +1.60000002384186 -0.462857246398926 +1.64999997615814 -0.429202437400818 +1.70000004768372 -0.394768834114075 +1.75 -0.358934760093689 +1.79999995231628 -0.320860743522644 +1.85000002384186 -0.280032634735107 +1.89999997615814 -0.236078023910522 +1.95000004768372 -0.18831729888916 +2 -0.136427760124207 +2.04999995231628 -0.0809823274612427 +2.09999990463257 -0.0232033729553223 +2.15000009536743 0.0355653762817383 +2.20000004768372 0.111127614974976 +2.25 0.195897340774536 +2.29999995231628 0.264551520347595 +2.34999990463257 0.316031932830811 +2.40000009536743 0.351408958435059 +2.45000004768372 0.370806813240051 +2.5 0.375476717948914 +2.59999990463257 0.367850542068481 +2.65000009536743 0.371694803237915 +2.70000004768372 0.386312961578369 +2.75 0.410823345184326 +2.79999995231628 0.440624475479126 +2.84999990463257 0.471022963523865 +2.90000009536743 0.498998641967773 +2.95000004768372 0.522289514541626 +3 0.539729356765747 +3.04999995231628 0.550746440887451 +3.09999990463257 0.554946184158325 +3.15000009536743 0.551987648010254 +3.20000004768372 0.54172420501709 +3.25 0.524322152137756 +3.29999995231628 0.500394821166992 +3.34999990463257 0.470903635025024 +3.40000009536743 0.437037706375122 +3.45000004768372 0.400330066680908 +3.54999995231628 0.324892044067383 +3.59999990463257 0.288179755210876 +3.65000009536743 0.25282096862793 +3.70000004768372 0.219209909439087 +3.75 0.187657237052917 +3.79999995231628 0.158442258834839 +3.84999990463257 0.131726503372192 +3.90000009536743 0.107518434524536 +3.95000004768372 0.0857696533203125 +4 0.0663524866104126 +4.05000019073486 0.0491009950637817 +4.09999990463257 0.0338577032089233 +4.15000009536743 0.020465612411499 +4.19999980926514 0.00879073143005371 +4.25 -0.00129985809326172 +4.30000019073486 -0.00992894172668457 +4.34999990463257 -0.0172281265258789 +4.40000009536743 -0.0233333110809326 +4.44999980926514 -0.0283607244491577 +4.5 -0.0324239730834961 +4.55000019073486 -0.0356357097625732 +4.59999990463257 -0.0381040573120117 +4.65000009536743 -0.039919376373291 +4.69999980926514 -0.0411621332168579 +4.80000019073486 -0.0422399044036865 +4.90000009536743 -0.0418741703033447 +5 -0.0405844449996948 +5.19999980926514 -0.0366964340209961 +5.5 -0.0307084321975708 +5.69999980926514 -0.0276848077774048 +5.90000009536743 -0.0255707502365112 +6.15000009536743 -0.0239710807800293 +6.44999980926514 -0.0230597257614136 +6.94999980926514 -0.0226665735244751 +9.89999961853027 -0.02271568775177 +10 -0.02271568775177 +}; + +\nextgroupplot[ +width=0.99*\textwidth, +height=0.8*\axisdefaultheight, +tick align=outside, +tick pos=left, +x grid style={darkgray176!30}, +xmajorgrids, +xmin=-0.5, xmax=10.5, +xtick style={color=black}, +y grid style={darkgray176!30}, +ylabel={Force applied to cart $f$ [N]}, +ymajorgrids, +ymin=-25.1923530578613, ymax=17.3741691589355, +ytick style={color=black}, +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + anchor=north east, + draw=white!80!black +}, +] +\addlegendentry{\jaxsim} +\addlegendentry{Mujoco} +\addplot [teal29105150] +table {% +0 7.22933101654053 +0.0499999523162842 6.90207624435425 +0.100000023841858 6.32859230041504 +0.149999976158142 5.42100811004639 +0.200000047683716 4.14687442779541 +0.25 2.58467864990234 +0.299999952316284 0.515276074409485 +0.399999976158142 -3.88790082931519 +0.450000047683716 -5.96117973327637 +0.5 -7.50577974319458 +0.549999952316284 -8.61604690551758 +0.600000023841858 -9.13747310638428 +0.649999976158142 -8.31422328948975 +0.700000047683716 -6.33481073379517 +0.75 -23.257511138916 +0.799999952316284 -17.7160568237305 +0.850000023841858 -2.0039644241333 +0.899999976158142 3.09535670280457 +0.950000047683716 3.72238874435425 +1 5.06463956832886 +1.04999995231628 6.29326009750366 +1.10000002384186 7.32018852233887 +1.14999997615814 7.71118783950806 +1.20000004768372 7.81918144226074 +1.25 8.22388172149658 +1.29999995231628 7.92653036117554 +1.35000002384186 7.33710241317749 +1.39999997615814 6.30399894714355 +1.45000004768372 4.79155397415161 +1.5 3.18720054626465 +1.60000002384186 -0.828768849372864 +1.64999997615814 -1.36188519001007 +1.75 0.0335919857025146 +1.79999995231628 0.53402853012085 +1.85000002384186 0.642840147018433 +1.89999997615814 0.402592301368713 +1.95000004768372 0.27892529964447 +2 0.127048492431641 +2.04999995231628 -0.228793263435364 +2.09999990463257 -0.492278575897217 +2.15000009536743 -0.533463478088379 +2.20000004768372 -0.0438318252563477 +2.25 15.4393272399902 +2.29999995231628 -4.82834959030151 +2.34999990463257 -6.47109746932983 +2.40000009536743 -6.26959419250488 +2.45000004768372 -6.5345606803894 +2.5 -6.49109983444214 +2.54999995231628 -3.30576181411743 +2.59999990463257 1.23575913906097 +2.65000009536743 4.12180995941162 +2.70000004768372 5.39663076400757 +2.75 5.01427793502808 +2.84999990463257 0.446870446205139 +2.95000004768372 -1.81358420848846 +3 -2.32077383995056 +3.09999990463257 -2.85167288780212 +3.15000009536743 -3.04018068313599 +3.20000004768372 -3.21372294425964 +3.25 -3.24813985824585 +3.29999995231628 -3.29619455337524 +3.40000009536743 -2.69155955314636 +3.45000004768372 -2.34745788574219 +3.5 -1.86065101623535 +3.59999990463257 -0.528856515884399 +3.65000009536743 0.0371658802032471 +3.70000004768372 0.355319976806641 +3.75 0.526922225952148 +3.79999995231628 0.727855324745178 +3.84999990463257 0.877295732498169 +3.90000009536743 1.05789351463318 +3.95000004768372 1.18671071529388 +4 1.19490802288055 +4.05000019073486 1.17090392112732 +4.09999990463257 1.15480709075928 +4.15000009536743 1.0460342168808 +4.19999980926514 0.972355246543884 +4.25 0.906895160675049 +4.30000019073486 0.821828603744507 +4.34999990463257 0.767959117889404 +4.40000009536743 0.683352947235107 +4.44999980926514 0.641496777534485 +4.59999990463257 0.468937158584595 +4.69999980926514 0.370583772659302 +4.80000019073486 0.279679298400879 +4.84999990463257 0.247013330459595 +4.90000009536743 0.210584282875061 +4.94999980926514 0.184504389762878 +5.09999990463257 0.0936516523361206 +5.19999980926514 0.0493795871734619 +5.30000019073486 0.0188789367675781 +5.40000009536743 -0.00356149673461914 +5.5 -0.0180238485336304 +5.59999990463257 -0.0265772342681885 +5.75 -0.0315145254135132 +5.94999980926514 -0.030137300491333 +6.25 -0.0209922790527344 +6.69999980926514 -0.00819253921508789 +7.15000009536743 -0.00207018852233887 +7.80000019073486 0.000114798545837402 +10 1.19209289550781e-07 +}; +\addplot [indianred2048062] +table {% +0 7.22933197021484 +0.0499999523162842 6.90288639068604 +0.100000023841858 6.32860660552979 +0.149999976158142 5.41723680496216 +0.200000047683716 4.13550186157227 +0.25 2.56257319450378 +0.299999952316284 0.480666875839233 +0.350000023841858 -1.7945431470871 +0.450000047683716 -6.04088068008423 +0.5 -7.56744384765625 +0.549999952316284 -8.7059326171875 +0.600000023841858 -9.16715335845947 +0.649999976158142 -8.23786067962646 +0.700000047683716 -6.24103307723999 +0.75 -23.1848068237305 +0.799999952316284 -17.4136085510254 +0.850000023841858 -2.07990741729736 +0.899999976158142 2.85365509986877 +0.950000047683716 3.67996978759766 +1.04999995231628 6.58129978179932 +1.10000002384186 7.4976601600647 +1.14999997615814 7.94723415374756 +1.20000004768372 8.24588775634766 +1.25 8.56696128845215 +1.29999995231628 8.00359725952148 +1.35000002384186 6.95196151733398 +1.39999997615814 5.4132776260376 +1.45000004768372 3.41205883026123 +1.5 1.71932089328766 +1.54999995231628 0.650655746459961 +1.60000002384186 0.574363470077515 +1.64999997615814 0.625057816505432 +1.70000004768372 0.870755672454834 +1.75 0.960698366165161 +1.79999995231628 0.723125457763672 +1.85000002384186 0.461954474449158 +1.89999997615814 0.330698132514954 +1.95000004768372 -0.174191832542419 +2 -0.56350839138031 +2.04999995231628 -0.578842043876648 +2.09999990463257 0.102494955062866 +2.15000009536743 14.9047269821167 +2.20000004768372 -3.68910050392151 +2.25 -5.51284074783325 +2.29999995231628 -5.41098308563232 +2.34999990463257 -5.79524898529053 +2.40000009536743 -6.36348819732666 +2.45000004768372 -5.44280385971069 +2.5 -1.62004935741425 +2.54999995231628 1.89433884620667 +2.59999990463257 4.08388185501099 +2.65000009536743 4.46958827972412 +2.70000004768372 3.2725088596344 +2.75 0.649245977401733 +2.84999990463257 -1.82059442996979 +2.90000009536743 -2.43413972854614 +2.95000004768372 -2.76438927650452 +3 -2.88924431800842 +3.04999995231628 -3.07263517379761 +3.09999990463257 -3.15169620513916 +3.15000009536743 -3.17159175872803 +3.20000004768372 -2.98918271064758 +3.25 -2.63670301437378 +3.29999995231628 -2.16481280326843 +3.34999990463257 -1.62289249897003 +3.40000009536743 -0.867696285247803 +3.45000004768372 -0.165898442268372 +3.5 0.246776938438416 +3.59999990463257 0.642847895622253 +3.65000009536743 0.792241811752319 +3.75 1.03929150104523 +3.79999995231628 1.06595206260681 +3.84999990463257 1.05697762966156 +3.90000009536743 1.0340963602066 +3.95000004768372 0.956934809684753 +4 0.900716423988342 +4.05000019073486 0.828515768051147 +4.19999980926514 0.659697771072388 +4.25 0.612848043441772 +4.30000019073486 0.547633409500122 +4.44999980926514 0.399682760238647 +4.5 0.350879430770874 +4.55000019073486 0.306310653686523 +4.69999980926514 0.201528787612915 +4.75 0.178205728530884 +4.84999990463257 0.116938591003418 +4.90000009536743 0.0910664796829224 +4.94999980926514 0.0696830749511719 +5 0.0516270399093628 +5.09999990463257 0.0240956544876099 +5.19999980926514 0.00269067287445068 +5.30000019073486 -0.0112292766571045 +5.40000009536743 -0.019273042678833 +5.55000019073486 -0.0243669748306274 +5.75 -0.0234584808349609 +6.84999990463257 -0.00193357467651367 +7.59999990463257 5.340576171875e-05 +10 -8.34465026855469e-07 +}; +\end{groupplot} + +\draw ({$(current bounding box.south west)!0.58!(current bounding box.south east)$}|-{$(current bounding box.south west)!-0.04!(current bounding box.north west)$}) node[ + anchor=south, + text=black, + rotate=0.0 +]{Time [s]}; +\end{tikzpicture} diff --git a/images/contributions/chapter_8/learning_curves.tikz b/images/contributions/chapter_8/learning_curves.tikz new file mode 100644 index 0000000..786fe87 --- /dev/null +++ b/images/contributions/chapter_8/learning_curves.tikz @@ -0,0 +1,2874 @@ +% This file was created with tikzplotlib v0.10.1. +\begin{tikzpicture} + +\definecolor{darkgray176}{RGB}{176,176,176} +\definecolor{silver180200168}{RGB}{180,200,168} +\definecolor{teal}{RGB}{0,128,128} + +\begin{axis}[ +width=0.8*\textwidth, +height=\axisdefaultheight, +tick align=outside, +tick pos=left, +title={\textbf{Average reward of the cartpole swing-up task}}, +x grid style={darkgray176!30}, +xlabel={Samples}, +xmajorgrids, +xmin=-24601.6, xmax=527897.6, +xtick style={color=black}, +y grid style={darkgray176!30}, +ymajorgrids, +ymin=-0.485883057615086, ymax=2.3, +ytick style={color=black}, +% +legend cell align={left}, +legend style={ + fill opacity=0.8, + draw opacity=1, + text opacity=1, + at={(0.97,0.03)}, + anchor=south east, + draw=white!80!black +}, +] +\addlegendimage{area legend, draw=silver180200168, fill=silver180200168} +\addlegendentry{$\pm \sigma$} +\path [draw=silver180200168, fill=silver180200168] +(axis cs:512,-0.0334432687843966) +--(axis cs:512,-0.0760355292017089) +--(axis cs:1024,-0.125564428506183) +--(axis cs:1536,-0.0605580029320801) +--(axis cs:2048,-0.163199088858746) +--(axis cs:2560,-0.229005380119447) +--(axis cs:3072,-0.281221640693616) +--(axis cs:3584,-0.308396103122968) +--(axis cs:4096,-0.356177379306277) +--(axis cs:4608,-0.359452369357445) +--(axis cs:5120,-0.365342311456732) +--(axis cs:5632,-0.376970275057085) +--(axis cs:6144,-0.34130159432209) +--(axis cs:6656,-0.319149785802188) +--(axis cs:7168,-0.300639728071469) +--(axis cs:7680,-0.283195445250103) +--(axis cs:8192,-0.29291294073075) +--(axis cs:8704,-0.287722661778006) +--(axis cs:9216,-0.301426230878208) +--(axis cs:9728,-0.326385485294115) +--(axis cs:10240,-0.332162544861962) +--(axis cs:10752,-0.342705373770876) +--(axis cs:11264,-0.311559804686294) +--(axis cs:11776,-0.304788521304883) +--(axis cs:12288,-0.295106821098414) +--(axis cs:12800,-0.278606045437036) +--(axis cs:13312,-0.275634774346427) +--(axis cs:13824,-0.262178953084814) +--(axis cs:14336,-0.252871023547725) +--(axis cs:14848,-0.24673306179309) +--(axis cs:15360,-0.254717432173942) +--(axis cs:15872,-0.263025906265022) +--(axis cs:16384,-0.26831542417566) +--(axis cs:16896,-0.283465750498615) +--(axis cs:17408,-0.299454319507425) +--(axis cs:17920,-0.279578541628238) +--(axis cs:18432,-0.281828064216883) +--(axis cs:18944,-0.271934503363371) +--(axis cs:19456,-0.261573531707471) +--(axis cs:19968,-0.271349837238113) +--(axis cs:20480,-0.282269784000755) +--(axis cs:20992,-0.285293587273408) +--(axis cs:21504,-0.286227234280024) +--(axis cs:22016,-0.290833505172999) +--(axis cs:22528,-0.280966742502568) +--(axis cs:23040,-0.27607076288107) +--(axis cs:23552,-0.270784124295394) +--(axis cs:24064,-0.273128075472102) +--(axis cs:24576,-0.279033197053553) +--(axis cs:25088,-0.267116803801847) +--(axis cs:25600,-0.276663010343161) +--(axis cs:26112,-0.278597464242176) +--(axis cs:26624,-0.2841256506801) +--(axis cs:27136,-0.27040398007958) +--(axis cs:27648,-0.261613720646101) +--(axis cs:28160,-0.255852323682162) +--(axis cs:28672,-0.262980753874717) +--(axis cs:29184,-0.273563050227888) +--(axis cs:29696,-0.266995541584986) +--(axis cs:30208,-0.251941849503592) +--(axis cs:30720,-0.243573312897101) +--(axis cs:31232,-0.221684729275884) +--(axis cs:31744,-0.212908114852037) +--(axis cs:32256,-0.199639122784816) +--(axis cs:32768,-0.20544544283046) +--(axis cs:33280,-0.209032342526209) +--(axis cs:33792,-0.213192013694462) +--(axis cs:34304,-0.206634759101954) +--(axis cs:34816,-0.198007480576792) +--(axis cs:35328,-0.188973471150921) +--(axis cs:35840,-0.190370827298048) +--(axis cs:36352,-0.197746182690931) +--(axis cs:36864,-0.203581101721657) +--(axis cs:37376,-0.218269339612834) +--(axis cs:37888,-0.212798070938695) +--(axis cs:38400,-0.210736798892768) +--(axis cs:38912,-0.188650830381709) +--(axis cs:39424,-0.172492987321114) +--(axis cs:39936,-0.160705941084626) +--(axis cs:40448,-0.150907749000352) +--(axis cs:40960,-0.141824576083381) +--(axis cs:41472,-0.138015822147632) +--(axis cs:41984,-0.117686520276718) +--(axis cs:42496,-0.102582279061538) +--(axis cs:43008,-0.0971939293563254) +--(axis cs:43520,-0.114279416595973) +--(axis cs:44032,-0.113708222540842) +--(axis cs:44544,-0.113552544274656) +--(axis cs:45056,-0.109478667284214) +--(axis cs:45568,-0.0909483107633721) +--(axis cs:46080,-0.0860209364626829) +--(axis cs:46592,-0.0717811329307197) +--(axis cs:47104,-0.0665053302301164) +--(axis cs:47616,-0.0545481765891385) +--(axis cs:48128,-0.0553780478781278) +--(axis cs:48640,-0.054678718206497) +--(axis cs:49152,-0.0675333048713339) +--(axis cs:49664,-0.0500689414840588) +--(axis cs:50176,-0.0585854072593439) +--(axis cs:50688,-0.052267163529977) +--(axis cs:51200,-0.044567087390368) +--(axis cs:51712,-0.0474751953094755) +--(axis cs:52224,-0.0452715889797723) +--(axis cs:52736,-0.0189944829242448) +--(axis cs:53248,-0.00772879733183334) +--(axis cs:53760,-0.0126545241499927) +--(axis cs:54272,-0.00451450020196591) +--(axis cs:54784,-0.00295952229374213) +--(axis cs:55296,0.00920659399335619) +--(axis cs:55808,0.0289960944986077) +--(axis cs:56320,0.020356359714843) +--(axis cs:56832,0.0327799237236525) +--(axis cs:57344,0.0355698031678987) +--(axis cs:57856,0.0560948952753775) +--(axis cs:58368,0.0683528183178387) +--(axis cs:58880,0.0808946386522734) +--(axis cs:59392,0.0869486531628597) +--(axis cs:59904,0.111895125674853) +--(axis cs:60416,0.129821325662684) +--(axis cs:60928,0.135313532708542) +--(axis cs:61440,0.140816111698435) +--(axis cs:61952,0.147648547522729) +--(axis cs:62464,0.154817267808887) +--(axis cs:62976,0.161859096173051) +--(axis cs:63488,0.174512578708121) +--(axis cs:64000,0.179939573198627) +--(axis cs:64512,0.18219152071853) +--(axis cs:65024,0.189825577057455) +--(axis cs:65536,0.19908636844489) +--(axis cs:66048,0.216535443501563) +--(axis cs:66560,0.214420496862485) +--(axis cs:67072,0.218088305504439) +--(axis cs:67584,0.227751818492921) +--(axis cs:68096,0.230517661873082) +--(axis cs:68608,0.234824650215634) +--(axis cs:69120,0.25468681848303) +--(axis cs:69632,0.263424682407577) +--(axis cs:70144,0.272359224619714) +--(axis cs:70656,0.291709459585572) +--(axis cs:71168,0.301062502834479) +--(axis cs:71680,0.316808095364967) +--(axis cs:72192,0.333878791485555) +--(axis cs:72704,0.343045300966601) +--(axis cs:73216,0.347652738245132) +--(axis cs:73728,0.363728806051772) +--(axis cs:74240,0.372964102697192) +--(axis cs:74752,0.38522079388629) +--(axis cs:75264,0.3979370011553) +--(axis cs:75776,0.40572157147448) +--(axis cs:76288,0.403721147780325) +--(axis cs:76800,0.406955223784909) +--(axis cs:77312,0.414186925848186) +--(axis cs:77824,0.432813301935538) +--(axis cs:78336,0.445425305204329) +--(axis cs:78848,0.454722925297336) +--(axis cs:79360,0.453283720968416) +--(axis cs:79872,0.463391263805286) +--(axis cs:80384,0.479017347767354) +--(axis cs:80896,0.482527485121749) +--(axis cs:81408,0.493906145728829) +--(axis cs:81920,0.495707134971078) +--(axis cs:82432,0.520745347277226) +--(axis cs:82944,0.536893803695373) +--(axis cs:83456,0.552200745811822) +--(axis cs:83968,0.560475323108861) +--(axis cs:84480,0.572092640562651) +--(axis cs:84992,0.577940716699118) +--(axis cs:85504,0.586662137985437) +--(axis cs:86016,0.599440854444497) +--(axis cs:86528,0.616251206008562) +--(axis cs:87040,0.629086980683932) +--(axis cs:87552,0.637892333090929) +--(axis cs:88064,0.643430384284504) +--(axis cs:88576,0.658283310295728) +--(axis cs:89088,0.676250583913821) +--(axis cs:89600,0.683191434023462) +--(axis cs:90112,0.691538213335899) +--(axis cs:90624,0.701916081098436) +--(axis cs:91136,0.714599187150386) +--(axis cs:91648,0.726760377155372) +--(axis cs:92160,0.743227492090961) +--(axis cs:92672,0.758121472311662) +--(axis cs:93184,0.769560297766694) +--(axis cs:93696,0.786177504693726) +--(axis cs:94208,0.799439223129374) +--(axis cs:94720,0.812056957584811) +--(axis cs:95232,0.818763848776477) +--(axis cs:95744,0.832524462263531) +--(axis cs:96256,0.848875229682059) +--(axis cs:96768,0.863822048263162) +--(axis cs:97280,0.884811268461535) +--(axis cs:97792,0.904556511434662) +--(axis cs:98304,0.930816209029891) +--(axis cs:98816,0.950037692620479) +--(axis cs:99328,0.973022082360685) +--(axis cs:99840,0.993460816609024) +--(axis cs:100352,1.01700475344197) +--(axis cs:100864,1.03548583102274) +--(axis cs:101376,1.05213362436407) +--(axis cs:101888,1.06734024563051) +--(axis cs:102400,1.08187498962027) +--(axis cs:102912,1.09381725341381) +--(axis cs:103424,1.10685927957272) +--(axis cs:103936,1.07008138405385) +--(axis cs:104448,1.08021028437552) +--(axis cs:104960,1.08888398786989) +--(axis cs:105472,1.09296289225943) +--(axis cs:105984,1.10151996329365) +--(axis cs:106496,1.10965543879152) +--(axis cs:107008,1.11910270306344) +--(axis cs:107520,1.12121771533532) +--(axis cs:108032,1.12617222783189) +--(axis cs:108544,1.13960597062398) +--(axis cs:109056,1.14818750870993) +--(axis cs:109568,1.16803923828978) +--(axis cs:110080,1.17853110555557) +--(axis cs:110592,1.19055835861709) +--(axis cs:111104,1.1950388345025) +--(axis cs:111616,1.21188931415738) +--(axis cs:112128,1.22619003757199) +--(axis cs:112640,1.23381308645326) +--(axis cs:113152,1.24104523072328) +--(axis cs:113664,1.24057462009595) +--(axis cs:114176,1.25751764817297) +--(axis cs:114688,1.27061216849448) +--(axis cs:115200,1.27365103907229) +--(axis cs:115712,1.27314339372188) +--(axis cs:116224,1.27585647955449) +--(axis cs:116736,1.28610601543425) +--(axis cs:117248,1.29432879684735) +--(axis cs:117760,1.30120483867881) +--(axis cs:118272,1.30542080623036) +--(axis cs:118784,1.314831342148) +--(axis cs:119296,1.32582894908445) +--(axis cs:119808,1.32192855373256) +--(axis cs:120320,1.32641466941081) +--(axis cs:120832,1.32917884070751) +--(axis cs:121344,1.33439391954201) +--(axis cs:121856,1.33744628010929) +--(axis cs:122368,1.3436046153856) +--(axis cs:122880,1.34825914636887) +--(axis cs:123392,1.35556703814262) +--(axis cs:123904,1.35853269422296) +--(axis cs:124416,1.36738519183833) +--(axis cs:124928,1.36697929642257) +--(axis cs:125440,1.36917701693144) +--(axis cs:125952,1.37332724256734) +--(axis cs:126464,1.38306783456598) +--(axis cs:126976,1.38299518165794) +--(axis cs:127488,1.38702933419858) +--(axis cs:128000,1.39222602927759) +--(axis cs:128512,1.39470036640653) +--(axis cs:129024,1.39196637026404) +--(axis cs:129536,1.39833966706706) +--(axis cs:130048,1.40313769345866) +--(axis cs:130560,1.40893799410728) +--(axis cs:131072,1.41251475748667) +--(axis cs:131584,1.40907398116215) +--(axis cs:132096,1.40360781843973) +--(axis cs:132608,1.40488887177682) +--(axis cs:133120,1.40934007370137) +--(axis cs:133632,1.40101146103777) +--(axis cs:134144,1.41111661255121) +--(axis cs:134656,1.41088317789684) +--(axis cs:135168,1.40706532326312) +--(axis cs:135680,1.40393167170393) +--(axis cs:136192,1.40404874858009) +--(axis cs:136704,1.39461456857543) +--(axis cs:137216,1.40336702611051) +--(axis cs:137728,1.3969430797719) +--(axis cs:138240,1.39750948855605) +--(axis cs:138752,1.4004151776149) +--(axis cs:139264,1.39864955926851) +--(axis cs:139776,1.40762905935156) +--(axis cs:140288,1.4190979392633) +--(axis cs:140800,1.42139936545853) +--(axis cs:141312,1.42115279947858) +--(axis cs:141824,1.43187935604861) +--(axis cs:142336,1.43643966142299) +--(axis cs:142848,1.43612433801119) +--(axis cs:143360,1.42974064855823) +--(axis cs:143872,1.43071643045407) +--(axis cs:144384,1.43376493300493) +--(axis cs:144896,1.42471229086244) +--(axis cs:145408,1.41069761489708) +--(axis cs:145920,1.41592543234123) +--(axis cs:146432,1.41529379254442) +--(axis cs:146944,1.41165785098843) +--(axis cs:147456,1.40995673937121) +--(axis cs:147968,1.39813432082184) +--(axis cs:148480,1.39039083895492) +--(axis cs:148992,1.39426898387474) +--(axis cs:149504,1.39035490236994) +--(axis cs:150016,1.38186258283537) +--(axis cs:150528,1.38177510817397) +--(axis cs:151040,1.37787748522385) +--(axis cs:151552,1.37485118341225) +--(axis cs:152064,1.37334661195498) +--(axis cs:152576,1.36861243606186) +--(axis cs:153088,1.35506424316921) +--(axis cs:153600,1.3470818217148) +--(axis cs:154112,1.35279486618612) +--(axis cs:154624,1.35768285929549) +--(axis cs:155136,1.36107497983246) +--(axis cs:155648,1.36244185067002) +--(axis cs:156160,1.37574004626717) +--(axis cs:156672,1.38548057408884) +--(axis cs:157184,1.39637442042707) +--(axis cs:157696,1.40168819506096) +--(axis cs:158208,1.40530608012066) +--(axis cs:158720,1.40371193881528) +--(axis cs:159232,1.40242780925515) +--(axis cs:159744,1.39923331842206) +--(axis cs:160256,1.40098822580769) +--(axis cs:160768,1.39700820951828) +--(axis cs:161280,1.39348570768343) +--(axis cs:161792,1.39409268848974) +--(axis cs:162304,1.38444156930401) +--(axis cs:162816,1.39060013698573) +--(axis cs:163328,1.39223189749058) +--(axis cs:163840,1.3912291379589) +--(axis cs:164352,1.39212897791263) +--(axis cs:164864,1.39743375416323) +--(axis cs:165376,1.40029101489641) +--(axis cs:165888,1.40872965294633) +--(axis cs:166400,1.40614370053924) +--(axis cs:166912,1.41026569969885) +--(axis cs:167424,1.40852750197696) +--(axis cs:167936,1.40169592478495) +--(axis cs:168448,1.40159969820336) +--(axis cs:168960,1.40518567668861) +--(axis cs:169472,1.41178704366957) +--(axis cs:169984,1.41003425641843) +--(axis cs:170496,1.4175878352573) +--(axis cs:171008,1.42639921379439) +--(axis cs:171520,1.42187654689129) +--(axis cs:172032,1.41093275656763) +--(axis cs:172544,1.41485839380852) +--(axis cs:173056,1.41484286251342) +--(axis cs:173568,1.42695671475681) +--(axis cs:174080,1.42404692736111) +--(axis cs:174592,1.42839326221005) +--(axis cs:175104,1.43526550390572) +--(axis cs:175616,1.43741993135483) +--(axis cs:176128,1.43573478380241) +--(axis cs:176640,1.44610707174951) +--(axis cs:177152,1.45266956751566) +--(axis cs:177664,1.45297306487076) +--(axis cs:178176,1.45206711351007) +--(axis cs:178688,1.4569691844654) +--(axis cs:179200,1.45467559634391) +--(axis cs:179712,1.4629934317224) +--(axis cs:180224,1.4703078730031) +--(axis cs:180736,1.47639248382073) +--(axis cs:181248,1.48576737761526) +--(axis cs:181760,1.49690492655591) +--(axis cs:182272,1.49782286643862) +--(axis cs:182784,1.50554253863019) +--(axis cs:183296,1.50253158148879) +--(axis cs:183808,1.50706918616638) +--(axis cs:184320,1.5111031465163) +--(axis cs:184832,1.51850662681647) +--(axis cs:185344,1.51877388134981) +--(axis cs:185856,1.5223987929491) +--(axis cs:186368,1.52592145637169) +--(axis cs:186880,1.53625163683144) +--(axis cs:187392,1.54181338178845) +--(axis cs:187904,1.54903774165152) +--(axis cs:188416,1.55157564105061) +--(axis cs:188928,1.55477013826551) +--(axis cs:189440,1.5564367297922) +--(axis cs:189952,1.56776449287549) +--(axis cs:190464,1.56758844095457) +--(axis cs:190976,1.57239990797007) +--(axis cs:191488,1.57842359517611) +--(axis cs:192000,1.58102525101898) +--(axis cs:192512,1.58073004495381) +--(axis cs:193024,1.58573632128056) +--(axis cs:193536,1.5788654936077) +--(axis cs:194048,1.58750646383654) +--(axis cs:194560,1.59475479262369) +--(axis cs:195072,1.59698739601486) +--(axis cs:195584,1.60263274044919) +--(axis cs:196096,1.60360854225245) +--(axis cs:196608,1.60585111036691) +--(axis cs:197120,1.60817858474433) +--(axis cs:197632,1.61072761643659) +--(axis cs:198144,1.61968032718528) +--(axis cs:198656,1.63281978106689) +--(axis cs:199168,1.64281163909717) +--(axis cs:199680,1.64597427615263) +--(axis cs:200192,1.64688063566485) +--(axis cs:200704,1.65398791340945) +--(axis cs:201216,1.66004470649184) +--(axis cs:201728,1.66414737488606) +--(axis cs:202240,1.66299969353997) +--(axis cs:202752,1.66230613756602) +--(axis cs:203264,1.66940629068686) +--(axis cs:203776,1.67485911643897) +--(axis cs:204288,1.6811360077742) +--(axis cs:204800,1.68430704783309) +--(axis cs:205312,1.68906130728106) +--(axis cs:205824,1.69078293145255) +--(axis cs:206336,1.66715139056146) +--(axis cs:206848,1.67167298718575) +--(axis cs:207360,1.67281909345868) +--(axis cs:207872,1.6785106823399) +--(axis cs:208384,1.6694327823461) +--(axis cs:208896,1.67100293969858) +--(axis cs:209408,1.66975255973042) +--(axis cs:209920,1.66613653700666) +--(axis cs:210432,1.66831003674105) +--(axis cs:210944,1.66857536305617) +--(axis cs:211456,1.67029703591962) +--(axis cs:211968,1.67451292529261) +--(axis cs:212480,1.67227406039299) +--(axis cs:212992,1.66743445120332) +--(axis cs:213504,1.66676486047555) +--(axis cs:214016,1.66130643172187) +--(axis cs:214528,1.65857850327679) +--(axis cs:215040,1.65476435572935) +--(axis cs:215552,1.65151352487086) +--(axis cs:216064,1.64655386834065) +--(axis cs:216576,1.64619408217526) +--(axis cs:217088,1.6418387225859) +--(axis cs:217600,1.64250211147116) +--(axis cs:218112,1.64295055476848) +--(axis cs:218624,1.63693848972382) +--(axis cs:219136,1.63470701820279) +--(axis cs:219648,1.63116198266542) +--(axis cs:220160,1.63287062287043) +--(axis cs:220672,1.62851769714696) +--(axis cs:221184,1.62526939731435) +--(axis cs:221696,1.62400298613407) +--(axis cs:222208,1.62624506070925) +--(axis cs:222720,1.62823452348653) +--(axis cs:223232,1.62787172608544) +--(axis cs:223744,1.62669359071934) +--(axis cs:224256,1.62828755872273) +--(axis cs:224768,1.62149060115154) +--(axis cs:225280,1.62459372875092) +--(axis cs:225792,1.62142278890173) +--(axis cs:226304,1.62159776527845) +--(axis cs:226816,1.61885640475556) +--(axis cs:227328,1.61464746079452) +--(axis cs:227840,1.6130348176198) +--(axis cs:228352,1.61531938377092) +--(axis cs:228864,1.61195566230458) +--(axis cs:229376,1.60959409444654) +--(axis cs:229888,1.61225505151603) +--(axis cs:230400,1.61175517911916) +--(axis cs:230912,1.61275642296427) +--(axis cs:231424,1.61195091739711) +--(axis cs:231936,1.60694144805801) +--(axis cs:232448,1.60695781291589) +--(axis cs:232960,1.59995420161114) +--(axis cs:233472,1.60096142714456) +--(axis cs:233984,1.60476776840843) +--(axis cs:234496,1.60268251991228) +--(axis cs:235008,1.60036315706109) +--(axis cs:235520,1.59544920650579) +--(axis cs:236032,1.58823537673979) +--(axis cs:236544,1.58028260495509) +--(axis cs:237056,1.58044496000239) +--(axis cs:237568,1.58090154089575) +--(axis cs:238080,1.5836382316731) +--(axis cs:238592,1.58356602396523) +--(axis cs:239104,1.59171407381882) +--(axis cs:239616,1.58943655558222) +--(axis cs:240128,1.59493711928413) +--(axis cs:240640,1.59713435610331) +--(axis cs:241152,1.59933914039295) +--(axis cs:241664,1.60174402556299) +--(axis cs:242176,1.60075165460089) +--(axis cs:242688,1.60298918499029) +--(axis cs:243200,1.59904595784993) +--(axis cs:243712,1.60129235734716) +--(axis cs:244224,1.59703561182704) +--(axis cs:244736,1.59170670503321) +--(axis cs:245248,1.59067096626633) +--(axis cs:245760,1.58955137128489) +--(axis cs:246272,1.57951990392006) +--(axis cs:246784,1.5747494459288) +--(axis cs:247296,1.5803358744355) +--(axis cs:247808,1.5752271965993) +--(axis cs:248320,1.5728352203386) +--(axis cs:248832,1.56387134342664) +--(axis cs:249344,1.55448131880821) +--(axis cs:249856,1.54996974961295) +--(axis cs:250368,1.54515696653724) +--(axis cs:250880,1.53929422856888) +--(axis cs:251392,1.54445208344333) +--(axis cs:251904,1.53950086100113) +--(axis cs:252416,1.53816538881017) +--(axis cs:252928,1.5382188302686) +--(axis cs:253440,1.53625313917441) +--(axis cs:253952,1.53615593247053) +--(axis cs:254464,1.52983603745422) +--(axis cs:254976,1.53451987662906) +--(axis cs:255488,1.53575730353316) +--(axis cs:256000,1.52761865172396) +--(axis cs:256512,1.51907656079044) +--(axis cs:257024,1.51785163004118) +--(axis cs:257536,1.51650374371636) +--(axis cs:258048,1.51068974390949) +--(axis cs:258560,1.50866648722729) +--(axis cs:259072,1.50193699512455) +--(axis cs:259584,1.50183016745364) +--(axis cs:260096,1.50216019754085) +--(axis cs:260608,1.49826101357924) +--(axis cs:261120,1.50145362408887) +--(axis cs:261632,1.49658070520062) +--(axis cs:262144,1.49883154744389) +--(axis cs:262656,1.49120033232895) +--(axis cs:263168,1.49721042804165) +--(axis cs:263680,1.49524216144956) +--(axis cs:264192,1.49321398694039) +--(axis cs:264704,1.49660781474227) +--(axis cs:265216,1.50080761412111) +--(axis cs:265728,1.49937492552638) +--(axis cs:266240,1.49574803648751) +--(axis cs:266752,1.50014357105384) +--(axis cs:267264,1.50282553786888) +--(axis cs:267776,1.50449581965099) +--(axis cs:268288,1.50577839943782) +--(axis cs:268800,1.50437134537804) +--(axis cs:269312,1.49799404392183) +--(axis cs:269824,1.50321853458423) +--(axis cs:270336,1.50474239956559) +--(axis cs:270848,1.50145384861047) +--(axis cs:271360,1.498384294671) +--(axis cs:271872,1.49791007250839) +--(axis cs:272384,1.49766492143547) +--(axis cs:272896,1.49740855210671) +--(axis cs:273408,1.5085036203306) +--(axis cs:273920,1.51095111854256) +--(axis cs:274432,1.51533114636324) +--(axis cs:274944,1.51246432630815) +--(axis cs:275456,1.52054440672644) +--(axis cs:275968,1.52678759105962) +--(axis cs:276480,1.52801434720379) +--(axis cs:276992,1.532361253245) +--(axis cs:277504,1.53436415148196) +--(axis cs:278016,1.53121658706588) +--(axis cs:278528,1.52671160700499) +--(axis cs:279040,1.52800979518487) +--(axis cs:279552,1.52747607705965) +--(axis cs:280064,1.52265831545465) +--(axis cs:280576,1.52136971755975) +--(axis cs:281088,1.51501173466243) +--(axis cs:281600,1.51891386177213) +--(axis cs:282112,1.51778020360397) +--(axis cs:282624,1.51480259094932) +--(axis cs:283136,1.52248707966956) +--(axis cs:283648,1.52581948183092) +--(axis cs:284160,1.53231034353578) +--(axis cs:284672,1.53736939963523) +--(axis cs:285184,1.55050519177383) +--(axis cs:285696,1.55589563815384) +--(axis cs:286208,1.56224666251175) +--(axis cs:286720,1.56296325168736) +--(axis cs:287232,1.56187158172912) +--(axis cs:287744,1.56547452060295) +--(axis cs:288256,1.57034750942304) +--(axis cs:288768,1.57467557149474) +--(axis cs:289280,1.56875407342902) +--(axis cs:289792,1.56865243932337) +--(axis cs:290304,1.56664841186675) +--(axis cs:290816,1.56802255963913) +--(axis cs:291328,1.57308766946885) +--(axis cs:291840,1.57754179792411) +--(axis cs:292352,1.57581676194613) +--(axis cs:292864,1.57742288513043) +--(axis cs:293376,1.58072800984513) +--(axis cs:293888,1.57931166459037) +--(axis cs:294400,1.58654918715198) +--(axis cs:294912,1.59182942282591) +--(axis cs:295424,1.59638069436805) +--(axis cs:295936,1.59947080727046) +--(axis cs:296448,1.60914899431231) +--(axis cs:296960,1.615761307582) +--(axis cs:297472,1.61932974524278) +--(axis cs:297984,1.61573136113043) +--(axis cs:298496,1.61831993155531) +--(axis cs:299008,1.61502157590089) +--(axis cs:299520,1.61779204620357) +--(axis cs:300032,1.61945370788526) +--(axis cs:300544,1.62227557728652) +--(axis cs:301056,1.62841629421458) +--(axis cs:301568,1.63163595992654) +--(axis cs:302080,1.63645405088842) +--(axis cs:302592,1.64291218628505) +--(axis cs:303104,1.65075534579288) +--(axis cs:303616,1.65976701972489) +--(axis cs:304128,1.66511910073128) +--(axis cs:304640,1.67086734019655) +--(axis cs:305152,1.67176875201136) +--(axis cs:305664,1.67237947419065) +--(axis cs:306176,1.67093389806576) +--(axis cs:306688,1.67602459449831) +--(axis cs:307200,1.67601308241853) +--(axis cs:307712,1.67700378144061) +--(axis cs:308224,1.68544424433908) +--(axis cs:308736,1.67664406280166) +--(axis cs:309248,1.67821287375194) +--(axis cs:309760,1.67592357073593) +--(axis cs:310272,1.68142497060108) +--(axis cs:310784,1.68016287605161) +--(axis cs:311296,1.67536915244006) +--(axis cs:311808,1.67655739769343) +--(axis cs:312320,1.68156807708283) +--(axis cs:312832,1.68002674119085) +--(axis cs:313344,1.68413892701652) +--(axis cs:313856,1.68411801164286) +--(axis cs:314368,1.68279035521413) +--(axis cs:314880,1.6799529126992) +--(axis cs:315392,1.67874641665579) +--(axis cs:315904,1.67659190380396) +--(axis cs:316416,1.67809571012367) +--(axis cs:316928,1.674570683498) +--(axis cs:317440,1.67480106593107) +--(axis cs:317952,1.67396692373769) +--(axis cs:318464,1.67649151220517) +--(axis cs:318976,1.67515260417243) +--(axis cs:319488,1.67368590863942) +--(axis cs:320000,1.67409705721789) +--(axis cs:320512,1.67616477227477) +--(axis cs:321024,1.67822439642159) +--(axis cs:321536,1.67165898415774) +--(axis cs:322048,1.67245142051807) +--(axis cs:322560,1.66771141317657) +--(axis cs:323072,1.66476529289367) +--(axis cs:323584,1.66122113551606) +--(axis cs:324096,1.66535858592476) +--(axis cs:324608,1.66629925724855) +--(axis cs:325120,1.67175475248321) +--(axis cs:325632,1.67819867543912) +--(axis cs:326144,1.67902286550382) +--(axis cs:326656,1.68044081359822) +--(axis cs:327168,1.69067080247833) +--(axis cs:327680,1.69069580218087) +--(axis cs:328192,1.689759136496) +--(axis cs:328704,1.68894875216241) +--(axis cs:329216,1.68768285975324) +--(axis cs:329728,1.68861228385301) +--(axis cs:330240,1.69376150174365) +--(axis cs:330752,1.6910764589231) +--(axis cs:331264,1.68697212178688) +--(axis cs:331776,1.68265378883014) +--(axis cs:332288,1.68346151563332) +--(axis cs:332800,1.68480289737871) +--(axis cs:333312,1.6831403391154) +--(axis cs:333824,1.68197970732691) +--(axis cs:334336,1.67966426537867) +--(axis cs:334848,1.67529696108451) +--(axis cs:335360,1.6718375133574) +--(axis cs:335872,1.67373913989172) +--(axis cs:336384,1.67183909014061) +--(axis cs:336896,1.67245688010765) +--(axis cs:337408,1.66942569122916) +--(axis cs:337920,1.66829468697828) +--(axis cs:338432,1.66717430345056) +--(axis cs:338944,1.66603841985707) +--(axis cs:339456,1.66893530996218) +--(axis cs:339968,1.6703113490211) +--(axis cs:340480,1.67142674715664) +--(axis cs:340992,1.66839140404768) +--(axis cs:341504,1.66686844144827) +--(axis cs:342016,1.66071462690868) +--(axis cs:342528,1.65468384884251) +--(axis cs:343040,1.65410033437023) +--(axis cs:343552,1.65310757819642) +--(axis cs:344064,1.66163892379317) +--(axis cs:344576,1.6703558721736) +--(axis cs:345088,1.6680800743411) +--(axis cs:345600,1.66847726644423) +--(axis cs:346112,1.66662445306828) +--(axis cs:346624,1.66858161197127) +--(axis cs:347136,1.67032680271791) +--(axis cs:347648,1.67548447407315) +--(axis cs:348160,1.66704848227092) +--(axis cs:348672,1.65945491749279) +--(axis cs:349184,1.65511498271164) +--(axis cs:349696,1.64767211489502) +--(axis cs:350208,1.64640604483615) +--(axis cs:350720,1.6423583309316) +--(axis cs:351232,1.63836460430685) +--(axis cs:351744,1.63218806721973) +--(axis cs:352256,1.6321974530212) +--(axis cs:352768,1.62991763873666) +--(axis cs:353280,1.62562835612985) +--(axis cs:353792,1.62176254716759) +--(axis cs:354304,1.62340474845909) +--(axis cs:354816,1.62266286631456) +--(axis cs:355328,1.61825595273677) +--(axis cs:355840,1.62241330867277) +--(axis cs:356352,1.62119243468703) +--(axis cs:356864,1.61591152612267) +--(axis cs:357376,1.6134969529126) +--(axis cs:357888,1.6193446248437) +--(axis cs:358400,1.61574275848144) +--(axis cs:358912,1.61265041224252) +--(axis cs:359424,1.60645717996618) +--(axis cs:359936,1.60187894710793) +--(axis cs:360448,1.59580596995461) +--(axis cs:360960,1.5949782386584) +--(axis cs:361472,1.59213185918961) +--(axis cs:361984,1.59186550014392) +--(axis cs:362496,1.58702799343608) +--(axis cs:363008,1.58067455643503) +--(axis cs:363520,1.58196919439552) +--(axis cs:364032,1.57847634661705) +--(axis cs:364544,1.58393820886367) +--(axis cs:365056,1.58089413266473) +--(axis cs:365568,1.57922604238132) +--(axis cs:366080,1.58568743547285) +--(axis cs:366592,1.58488384474148) +--(axis cs:367104,1.5796576063185) +--(axis cs:367616,1.58242793036825) +--(axis cs:368128,1.58275902581182) +--(axis cs:368640,1.58583171354442) +--(axis cs:369152,1.5844381634962) +--(axis cs:369664,1.58478787175248) +--(axis cs:370176,1.58765864157522) +--(axis cs:370688,1.58539833459512) +--(axis cs:371200,1.58056119469157) +--(axis cs:371712,1.58356888915061) +--(axis cs:372224,1.58548804858296) +--(axis cs:372736,1.58223982175027) +--(axis cs:373248,1.58368346406846) +--(axis cs:373760,1.57539561166291) +--(axis cs:374272,1.58112698239177) +--(axis cs:374784,1.58069661718579) +--(axis cs:375296,1.58088042279307) +--(axis cs:375808,1.57960201695361) +--(axis cs:376320,1.58240594957041) +--(axis cs:376832,1.58671242152806) +--(axis cs:377344,1.58118540025894) +--(axis cs:377856,1.58051802266187) +--(axis cs:378368,1.57737047111569) +--(axis cs:378880,1.58225092171192) +--(axis cs:379392,1.58565165332154) +--(axis cs:379904,1.59227322682803) +--(axis cs:380416,1.59514936128973) +--(axis cs:380928,1.59217577566539) +--(axis cs:381440,1.58759915950524) +--(axis cs:381952,1.59324149181584) +--(axis cs:382464,1.59035862584743) +--(axis cs:382976,1.59062626005774) +--(axis cs:383488,1.58742416864718) +--(axis cs:384000,1.58377360028275) +--(axis cs:384512,1.5826340957699) +--(axis cs:385024,1.57707824684045) +--(axis cs:385536,1.57757534315723) +--(axis cs:386048,1.58356414129109) +--(axis cs:386560,1.58573869934695) +--(axis cs:387072,1.58853865818726) +--(axis cs:387584,1.58945955802855) +--(axis cs:388096,1.58900118202481) +--(axis cs:388608,1.59096460444971) +--(axis cs:389120,1.5941804013553) +--(axis cs:389632,1.58736067107461) +--(axis cs:390144,1.58642474077776) +--(axis cs:390656,1.59062179933369) +--(axis cs:391168,1.60052625562052) +--(axis cs:391680,1.60611557092792) +--(axis cs:392192,1.61356401761949) +--(axis cs:392704,1.6193043649481) +--(axis cs:393216,1.62340610766217) +--(axis cs:393728,1.62442418025609) +--(axis cs:394240,1.62899059051707) +--(axis cs:394752,1.63181046766917) +--(axis cs:395264,1.63813561569815) +--(axis cs:395776,1.63881238898414) +--(axis cs:396288,1.63738919351387) +--(axis cs:396800,1.64201697511624) +--(axis cs:397312,1.64156190238943) +--(axis cs:397824,1.64749713294809) +--(axis cs:398336,1.65099596682683) +--(axis cs:398848,1.64631272172887) +--(axis cs:399360,1.6519724096329) +--(axis cs:399872,1.6587761045697) +--(axis cs:400384,1.6614542883721) +--(axis cs:400896,1.66579859915878) +--(axis cs:401408,1.66660381424449) +--(axis cs:401920,1.66938394244726) +--(axis cs:402432,1.67396619999939) +--(axis cs:402944,1.67958426041028) +--(axis cs:403456,1.6866998531574) +--(axis cs:403968,1.6916034551147) +--(axis cs:404480,1.69661234530948) +--(axis cs:404992,1.69866857204756) +--(axis cs:405504,1.69945213172814) +--(axis cs:406016,1.69951153476929) +--(axis cs:406528,1.70639279946014) +--(axis cs:407040,1.70791521558253) +--(axis cs:407552,1.71499442139663) +--(axis cs:408064,1.72111688732793) +--(axis cs:408576,1.7254364748005) +--(axis cs:409088,1.73320544397576) +--(axis cs:409600,1.73918587226678) +--(axis cs:410112,1.73862584835686) +--(axis cs:410624,1.7420996661586) +--(axis cs:411136,1.73922579792894) +--(axis cs:411648,1.73750729116945) +--(axis cs:412160,1.73848192474633) +--(axis cs:412672,1.73565406027923) +--(axis cs:413184,1.73688698291784) +--(axis cs:413696,1.7342244969027) +--(axis cs:414208,1.742115285774) +--(axis cs:414720,1.7398136448972) +--(axis cs:415232,1.74103562307457) +--(axis cs:415744,1.73337720439031) +--(axis cs:416256,1.72956168401803) +--(axis cs:416768,1.73130008820415) +--(axis cs:417280,1.72747123889476) +--(axis cs:417792,1.72405969980091) +--(axis cs:418304,1.72661670851219) +--(axis cs:418816,1.72145438418088) +--(axis cs:419328,1.71415126761888) +--(axis cs:419840,1.71516964223569) +--(axis cs:420352,1.71604215271454) +--(axis cs:420864,1.71218221800443) +--(axis cs:421376,1.70887784570879) +--(axis cs:421888,1.70828052757849) +--(axis cs:422400,1.7094158454828) +--(axis cs:422912,1.70719717275537) +--(axis cs:423424,1.70462084171716) +--(axis cs:423936,1.70110807422227) +--(axis cs:424448,1.70344586246435) +--(axis cs:424960,1.70185683109837) +--(axis cs:425472,1.69723540860597) +--(axis cs:425984,1.70185169162234) +--(axis cs:426496,1.70131903783917) +--(axis cs:427008,1.70378873909928) +--(axis cs:427520,1.70934975228572) +--(axis cs:428032,1.70714931799406) +--(axis cs:428544,1.70883317990151) +--(axis cs:429056,1.70700060068726) +--(axis cs:429568,1.71090876012541) +--(axis cs:430080,1.71268348335799) +--(axis cs:430592,1.71019982119047) +--(axis cs:431104,1.71066051575504) +--(axis cs:431616,1.70094661968447) +--(axis cs:432128,1.69876730052389) +--(axis cs:432640,1.69959403526592) +--(axis cs:433152,1.69996568828638) +--(axis cs:433664,1.69390099191728) +--(axis cs:434176,1.69282619017016) +--(axis cs:434688,1.69484167584988) +--(axis cs:435200,1.69410604700433) +--(axis cs:435712,1.69120720819917) +--(axis cs:436224,1.68734615079325) +--(axis cs:436736,1.68581418408128) +--(axis cs:437248,1.68491507559056) +--(axis cs:437760,1.68646978584397) +--(axis cs:438272,1.68724767148548) +--(axis cs:438784,1.68771944914447) +--(axis cs:439296,1.68818595185262) +--(axis cs:439808,1.68892171765634) +--(axis cs:440320,1.68755887209669) +--(axis cs:440832,1.68266541942238) +--(axis cs:441344,1.68184246672837) +--(axis cs:441856,1.68726010547198) +--(axis cs:442368,1.68853659186018) +--(axis cs:442880,1.69002847106164) +--(axis cs:443392,1.68888028058826) +--(axis cs:443904,1.68370707273737) +--(axis cs:444416,1.67964575603326) +--(axis cs:444928,1.6763646318176) +--(axis cs:445440,1.67404883277308) +--(axis cs:445952,1.66821803654581) +--(axis cs:446464,1.66582023064361) +--(axis cs:446976,1.66351120911402) +--(axis cs:447488,1.66535124614002) +--(axis cs:448000,1.65782473748654) +--(axis cs:448512,1.66082985216269) +--(axis cs:449024,1.66096850657552) +--(axis cs:449536,1.66261365431434) +--(axis cs:450048,1.65768763848908) +--(axis cs:450560,1.64851782712423) +--(axis cs:451072,1.63944570158536) +--(axis cs:451584,1.63329527677116) +--(axis cs:452096,1.63626360500678) +--(axis cs:452608,1.63479180211964) +--(axis cs:453120,1.63035248943287) +--(axis cs:453632,1.6313525932612) +--(axis cs:454144,1.62876559809925) +--(axis cs:454656,1.62654545327179) +--(axis cs:455168,1.62478438615574) +--(axis cs:455680,1.62264288060558) +--(axis cs:456192,1.61856444324817) +--(axis cs:456704,1.61950109378324) +--(axis cs:457216,1.61562344939524) +--(axis cs:457728,1.62020245758686) +--(axis cs:458240,1.62397791911734) +--(axis cs:458752,1.62265366802288) +--(axis cs:459264,1.62158843333281) +--(axis cs:459776,1.6138687073326) +--(axis cs:460288,1.61210753674973) +--(axis cs:460800,1.61229031163052) +--(axis cs:461312,1.6153595945571) +--(axis cs:461824,1.61361149717854) +--(axis cs:462336,1.61255986553391) +--(axis cs:462848,1.60806177867726) +--(axis cs:463360,1.61179927555319) +--(axis cs:463872,1.60885128781282) +--(axis cs:464384,1.60810445610864) +--(axis cs:464896,1.60507212055016) +--(axis cs:465408,1.60776448694148) +--(axis cs:465920,1.60923806690209) +--(axis cs:466432,1.61044958736337) +--(axis cs:466944,1.60492036923625) +--(axis cs:467456,1.60578727009058) +--(axis cs:467968,1.60462403549263) +--(axis cs:468480,1.60438298298015) +--(axis cs:468992,1.61030315450197) +--(axis cs:469504,1.6091359624144) +--(axis cs:470016,1.60308466291796) +--(axis cs:470528,1.60009584779812) +--(axis cs:471040,1.59884021453924) +--(axis cs:471552,1.59502590216795) +--(axis cs:472064,1.5896716434438) +--(axis cs:472576,1.59045773827122) +--(axis cs:473088,1.58497762677021) +--(axis cs:473600,1.58508854182349) +--(axis cs:474112,1.5828954740705) +--(axis cs:474624,1.5753084730162) +--(axis cs:475136,1.57323502699764) +--(axis cs:475648,1.57663718210473) +--(axis cs:476160,1.57988228745415) +--(axis cs:476672,1.57594869546443) +--(axis cs:477184,1.57795323587878) +--(axis cs:477696,1.5751804028709) +--(axis cs:478208,1.5751720199403) +--(axis cs:478720,1.57792860964224) +--(axis cs:479232,1.58388598369047) +--(axis cs:479744,1.58420271172714) +--(axis cs:480256,1.58541406863379) +--(axis cs:480768,1.58392772270147) +--(axis cs:481280,1.58631773352896) +--(axis cs:481792,1.58739817498931) +--(axis cs:482304,1.59299818835788) +--(axis cs:482816,1.59904205032256) +--(axis cs:483328,1.60077762407296) +--(axis cs:483840,1.60684326003481) +--(axis cs:484352,1.61254395154603) +--(axis cs:484864,1.6190731478783) +--(axis cs:485376,1.61947528471453) +--(axis cs:485888,1.61741165713721) +--(axis cs:486400,1.62100703372727) +--(axis cs:486912,1.62221322848814) +--(axis cs:487424,1.62641987561424) +--(axis cs:487936,1.62740367773727) +--(axis cs:488448,1.62308698950414) +--(axis cs:488960,1.62681997061044) +--(axis cs:489472,1.63099522485894) +--(axis cs:489984,1.63040510370694) +--(axis cs:490496,1.63022484103933) +--(axis cs:491008,1.62590099070908) +--(axis cs:491520,1.6258848976526) +--(axis cs:492032,1.62295546870422) +--(axis cs:492544,1.62635224474419) +--(axis cs:493056,1.63042960669656) +--(axis cs:493568,1.62655451921828) +--(axis cs:494080,1.63346443244687) +--(axis cs:494592,1.64071250761195) +--(axis cs:495104,1.64746734125413) +--(axis cs:495616,1.65140842405684) +--(axis cs:496128,1.65347833865006) +--(axis cs:496640,1.65855970488686) +--(axis cs:497152,1.66034147932256) +--(axis cs:497664,1.66466700378386) +--(axis cs:498176,1.66833763113676) +--(axis cs:498688,1.66210792022426) +--(axis cs:499200,1.65992528585239) +--(axis cs:499712,1.65761386779446) +--(axis cs:500224,1.66422281515955) +--(axis cs:500736,1.66238925615994) +--(axis cs:501248,1.66182599350828) +--(axis cs:501760,1.67133663075093) +--(axis cs:502272,1.67510312174731) +--(axis cs:502784,1.68470763060705) +--(axis cs:502784,1.72529902386052) +--(axis cs:502784,1.72529902386052) +--(axis cs:502272,1.72060858398548) +--(axis cs:501760,1.71868666727579) +--(axis cs:501248,1.7133515693882) +--(axis cs:500736,1.71428216616785) +--(axis cs:500224,1.71209984367155) +--(axis cs:499712,1.70678029866463) +--(axis cs:499200,1.70667036911748) +--(axis cs:498688,1.71250749471538) +--(axis cs:498176,1.71326870373775) +--(axis cs:497664,1.71389901066665) +--(axis cs:497152,1.70892555170522) +--(axis cs:496640,1.70513774381339) +--(axis cs:496128,1.70373452678091) +--(axis cs:495616,1.69945523326765) +--(axis cs:495104,1.6974819712775) +--(axis cs:494592,1.68836836776991) +--(axis cs:494080,1.6814733053074) +--(axis cs:493568,1.67744471058504) +--(axis cs:493056,1.68087648193389) +--(axis cs:492544,1.68041547441686) +--(axis cs:492032,1.67519424065431) +--(axis cs:491520,1.67723269729805) +--(axis cs:491008,1.67619132162406) +--(axis cs:490496,1.67872089507185) +--(axis cs:489984,1.67504026328712) +--(axis cs:489472,1.67315105544626) +--(axis cs:488960,1.67515058741792) +--(axis cs:488448,1.67171487145152) +--(axis cs:487936,1.67067032080466) +--(axis cs:487424,1.66893148605861) +--(axis cs:486912,1.66813913707251) +--(axis cs:486400,1.66428843112463) +--(axis cs:485888,1.66081962718101) +--(axis cs:485376,1.66132914037512) +--(axis cs:484864,1.65886456208446) +--(axis cs:484352,1.65271546370872) +--(axis cs:483840,1.65118877874089) +--(axis cs:483328,1.65063953598576) +--(axis cs:482816,1.65218051751637) +--(axis cs:482304,1.64895021708528) +--(axis cs:481792,1.6459435938792) +--(axis cs:481280,1.64687458178221) +--(axis cs:480768,1.64474632885709) +--(axis cs:480256,1.64338898938841) +--(axis cs:479744,1.64685304761577) +--(axis cs:479232,1.65101153609713) +--(axis cs:478720,1.6523784243461) +--(axis cs:478208,1.64922851483537) +--(axis cs:477696,1.64671125987343) +--(axis cs:477184,1.64697113436757) +--(axis cs:476672,1.64438739561443) +--(axis cs:476160,1.64366125108576) +--(axis cs:475648,1.64157192485263) +--(axis cs:475136,1.64146065678058) +--(axis cs:474624,1.64653790638406) +--(axis cs:474112,1.65609804511582) +--(axis cs:473600,1.66091710688735) +--(axis cs:473088,1.66413736305774) +--(axis cs:472576,1.66616033507918) +--(axis cs:472064,1.66733637270549) +--(axis cs:471552,1.67171993338845) +--(axis cs:471040,1.67310689277581) +--(axis cs:470528,1.67374859112583) +--(axis cs:470016,1.67103374617087) +--(axis cs:469504,1.66942019635315) +--(axis cs:468992,1.67135279251943) +--(axis cs:468480,1.66803772794669) +--(axis cs:467968,1.67074964391745) +--(axis cs:467456,1.67126041131296) +--(axis cs:466944,1.67103411375742) +--(axis cs:466432,1.67513797363123) +--(axis cs:465920,1.67167392740202) +--(axis cs:465408,1.67259915456114) +--(axis cs:464896,1.67606852209295) +--(axis cs:464384,1.68313594758853) +--(axis cs:463872,1.68203488166674) +--(axis cs:463360,1.68181119438964) +--(axis cs:462848,1.68221501986899) +--(axis cs:462336,1.68490527407638) +--(axis cs:461824,1.68417356460059) +--(axis cs:461312,1.68787998040485) +--(axis cs:460800,1.68837047518443) +--(axis cs:460288,1.69409840889352) +--(axis cs:459776,1.69211914152828) +--(axis cs:459264,1.69281650737669) +--(axis cs:458752,1.69592401262158) +--(axis cs:458240,1.7004024660824) +--(axis cs:457728,1.69947981299892) +--(axis cs:457216,1.69899301285758) +--(axis cs:456704,1.69945612094433) +--(axis cs:456192,1.70042299113559) +--(axis cs:455680,1.70293027896265) +--(axis cs:455168,1.70357535482882) +--(axis cs:454656,1.70635361568282) +--(axis cs:454144,1.70501708796776) +--(axis cs:453632,1.70154448495223) +--(axis cs:453120,1.69836861017592) +--(axis cs:452608,1.70406956196505) +--(axis cs:452096,1.70542965025876) +--(axis cs:451584,1.7057600687107) +--(axis cs:451072,1.70319304322041) +--(axis cs:450560,1.70616991801709) +--(axis cs:450048,1.70877393441612) +--(axis cs:449536,1.71155553982203) +--(axis cs:449024,1.71106176012816) +--(axis cs:448512,1.711769493158) +--(axis cs:448000,1.7112059645761) +--(axis cs:447488,1.71957117662662) +--(axis cs:446976,1.71590805918937) +--(axis cs:446464,1.71797557569975) +--(axis cs:445952,1.71947220507252) +--(axis cs:445440,1.71998927499417) +--(axis cs:444928,1.7245070388523) +--(axis cs:444416,1.72570736389819) +--(axis cs:443904,1.72735950354593) +--(axis cs:443392,1.73281919929366) +--(axis cs:442880,1.72853670767272) +--(axis cs:442368,1.72911889374955) +--(axis cs:441856,1.72634498850581) +--(axis cs:441344,1.72403723985668) +--(axis cs:440832,1.72143975489434) +--(axis cs:440320,1.72701534395037) +--(axis cs:439808,1.72504257044569) +--(axis cs:439296,1.71966801638097) +--(axis cs:438784,1.71916599050276) +--(axis cs:438272,1.71820349725551) +--(axis cs:437760,1.72242053000034) +--(axis cs:437248,1.72406728344561) +--(axis cs:436736,1.72724105104146) +--(axis cs:436224,1.73032648669704) +--(axis cs:435712,1.73686527693778) +--(axis cs:435200,1.7413726313689) +--(axis cs:434688,1.74886081085025) +--(axis cs:434176,1.74658608921139) +--(axis cs:433664,1.74698553170723) +--(axis cs:433152,1.75351151860295) +--(axis cs:432640,1.75133736016755) +--(axis cs:432128,1.74733570701701) +--(axis cs:431616,1.75068443066011) +--(axis cs:431104,1.75334771023367) +--(axis cs:430592,1.75414570509881) +--(axis cs:430080,1.75709992683669) +--(axis cs:429568,1.75697734401293) +--(axis cs:429056,1.75457966139471) +--(axis cs:428544,1.75747608113016) +--(axis cs:428032,1.75598320370138) +--(axis cs:427520,1.76279884184888) +--(axis cs:427008,1.75851613091028) +--(axis cs:426496,1.75873015699267) +--(axis cs:425984,1.76384788698092) +--(axis cs:425472,1.76043452035637) +--(axis cs:424960,1.75855538631962) +--(axis cs:424448,1.75424358725519) +--(axis cs:423936,1.75213289132152) +--(axis cs:423424,1.75711896377723) +--(axis cs:422912,1.76063558183177) +--(axis cs:422400,1.76381266018694) +--(axis cs:421888,1.7659438425551) +--(axis cs:421376,1.77012647627263) +--(axis cs:420864,1.77446225760608) +--(axis cs:420352,1.77675897143585) +--(axis cs:419840,1.77895093123699) +--(axis cs:419328,1.78210241749918) +--(axis cs:418816,1.78451753312906) +--(axis cs:418304,1.78680765943673) +--(axis cs:417792,1.78595574532762) +--(axis cs:417280,1.79052656041303) +--(axis cs:416768,1.78860236430152) +--(axis cs:416256,1.79117711833255) +--(axis cs:415744,1.79043018947867) +--(axis cs:415232,1.79346141001125) +--(axis cs:414720,1.79201356088005) +--(axis cs:414208,1.79291515013126) +--(axis cs:413696,1.78774384903156) +--(axis cs:413184,1.78951092070167) +--(axis cs:412672,1.79179728379576) +--(axis cs:412160,1.79619045612813) +--(axis cs:411648,1.79389725960496) +--(axis cs:411136,1.79482772378329) +--(axis cs:410624,1.80128537610294) +--(axis cs:410112,1.7989994006929) +--(axis cs:409600,1.79908155399511) +--(axis cs:409088,1.79332054516901) +--(axis cs:408576,1.78905065609613) +--(axis cs:408064,1.78508873695052) +--(axis cs:407552,1.78494332783546) +--(axis cs:407040,1.78299195796865) +--(axis cs:406528,1.78198144906477) +--(axis cs:406016,1.77881918119377) +--(axis cs:405504,1.77803983654963) +--(axis cs:404992,1.77602688197307) +--(axis cs:404480,1.77325536481761) +--(axis cs:403968,1.76551576726698) +--(axis cs:403456,1.75852147316875) +--(axis cs:402944,1.75410702822836) +--(axis cs:402432,1.748794092375) +--(axis cs:401920,1.7397519285559) +--(axis cs:401408,1.7369082990177) +--(axis cs:400896,1.73587525372303) +--(axis cs:400384,1.73011616244617) +--(axis cs:399872,1.72726132286505) +--(axis cs:399360,1.72178481501218) +--(axis cs:398848,1.71744534517047) +--(axis cs:398336,1.71620417682942) +--(axis cs:397824,1.71639739869806) +--(axis cs:397312,1.71195906635139) +--(axis cs:396800,1.70766058465367) +--(axis cs:396288,1.70724830177371) +--(axis cs:395776,1.7040076452861) +--(axis cs:395264,1.69958064488718) +--(axis cs:394752,1.6892351208996) +--(axis cs:394240,1.68537305417455) +--(axis cs:393728,1.67909469821977) +--(axis cs:393216,1.67834865929562) +--(axis cs:392704,1.67495988132529) +--(axis cs:392192,1.67033178602859) +--(axis cs:391680,1.664640005466) +--(axis cs:391168,1.66225869139989) +--(axis cs:390656,1.65890271708785) +--(axis cs:390144,1.65770762934784) +--(axis cs:389632,1.65776929170347) +--(axis cs:389120,1.66182740183328) +--(axis cs:388608,1.65805711728347) +--(axis cs:388096,1.65453929781026) +--(axis cs:387584,1.65607726477075) +--(axis cs:387072,1.65350889147534) +--(axis cs:386560,1.64873375977445) +--(axis cs:386048,1.64760089205645) +--(axis cs:385536,1.64274947076429) +--(axis cs:385024,1.6391879193257) +--(axis cs:384512,1.6393098027181) +--(axis cs:384000,1.63597194755659) +--(axis cs:383488,1.63854411946032) +--(axis cs:382976,1.63649102970028) +--(axis cs:382464,1.63080068475025) +--(axis cs:381952,1.6357968385459) +--(axis cs:381440,1.63084519822232) +--(axis cs:380928,1.63452866462489) +--(axis cs:380416,1.63575166530255) +--(axis cs:379904,1.63266043809494) +--(axis cs:379392,1.62625485605881) +--(axis cs:378880,1.62293760971974) +--(axis cs:378368,1.61484068823479) +--(axis cs:377856,1.61743902300179) +--(axis cs:377344,1.61862349586823) +--(axis cs:376832,1.62389594964685) +--(axis cs:376320,1.63083302422353) +--(axis cs:375808,1.63257945162449) +--(axis cs:375296,1.63280052341288) +--(axis cs:374784,1.631411428998) +--(axis cs:374272,1.63218358371323) +--(axis cs:373760,1.63387886388816) +--(axis cs:373248,1.6401415259606) +--(axis cs:372736,1.63507900004536) +--(axis cs:372224,1.63982778137174) +--(axis cs:371712,1.63720728967826) +--(axis cs:371200,1.63668455189395) +--(axis cs:370688,1.64147488646965) +--(axis cs:370176,1.6409359055882) +--(axis cs:369664,1.64255215890222) +--(axis cs:369152,1.63792746417626) +--(axis cs:368640,1.64041493898907) +--(axis cs:368128,1.63969744638974) +--(axis cs:367616,1.63871363092181) +--(axis cs:367104,1.63389535876221) +--(axis cs:366592,1.63745897586562) +--(axis cs:366080,1.63268323986101) +--(axis cs:365568,1.62875947613802) +--(axis cs:365056,1.63024085570288) +--(axis cs:364544,1.63425919191348) +--(axis cs:364032,1.62927908381747) +--(axis cs:363520,1.63672504437054) +--(axis cs:363008,1.63636091972759) +--(axis cs:362496,1.63696983235957) +--(axis cs:361984,1.64151421856663) +--(axis cs:361472,1.64464523763258) +--(axis cs:360960,1.64507086785267) +--(axis cs:360448,1.64910027780999) +--(axis cs:359936,1.65218931834266) +--(axis cs:359424,1.6627046599951) +--(axis cs:358912,1.66125722667229) +--(axis cs:358400,1.6640248892449) +--(axis cs:357888,1.66981680449436) +--(axis cs:357376,1.67132859647822) +--(axis cs:356864,1.67388742596683) +--(axis cs:356352,1.67798341380433) +--(axis cs:355840,1.67820545164922) +--(axis cs:355328,1.68416734476327) +--(axis cs:354816,1.68644218596985) +--(axis cs:354304,1.69038138779155) +--(axis cs:353792,1.68441911110324) +--(axis cs:353280,1.68820660984861) +--(axis cs:352768,1.68705550955364) +--(axis cs:352256,1.69285478913342) +--(axis cs:351744,1.69475774675199) +--(axis cs:351232,1.69885644767078) +--(axis cs:350720,1.69943247096642) +--(axis cs:350208,1.70629022143945) +--(axis cs:349696,1.70674311244398) +--(axis cs:349184,1.713082125158) +--(axis cs:348672,1.71411371260604) +--(axis cs:348160,1.71619405432256) +--(axis cs:347648,1.72409242673949) +--(axis cs:347136,1.72026881773395) +--(axis cs:346624,1.71534095971536) +--(axis cs:346112,1.71545001108474) +--(axis cs:345600,1.714032156472) +--(axis cs:345088,1.71462542795945) +--(axis cs:344576,1.71679055944838) +--(axis cs:344064,1.70873302330029) +--(axis cs:343552,1.70136923420764) +--(axis cs:343040,1.70210653942802) +--(axis cs:342528,1.70562647131336) +--(axis cs:342016,1.70939538319108) +--(axis cs:341504,1.7091751683521) +--(axis cs:340992,1.70944138398937) +--(axis cs:340480,1.71357156116919) +--(axis cs:339968,1.71328512376781) +--(axis cs:339456,1.71073736775707) +--(axis cs:338944,1.70605475805623) +--(axis cs:338432,1.70310559817429) +--(axis cs:337920,1.70401805670023) +--(axis cs:337408,1.70696201571495) +--(axis cs:336896,1.70705423102945) +--(axis cs:336384,1.70647644569772) +--(axis cs:335872,1.70762845422492) +--(axis cs:335360,1.70810648527426) +--(axis cs:334848,1.70883690077317) +--(axis cs:334336,1.71281029369021) +--(axis cs:333824,1.71520342319092) +--(axis cs:333312,1.71483107938639) +--(axis cs:332800,1.71524928096842) +--(axis cs:332288,1.71544477980035) +--(axis cs:331776,1.71666253698461) +--(axis cs:331264,1.72098630351632) +--(axis cs:330752,1.72427793743183) +--(axis cs:330240,1.72607865062222) +--(axis cs:329728,1.72033080350616) +--(axis cs:329216,1.72114224653034) +--(axis cs:328704,1.72149563500634) +--(axis cs:328192,1.72010336214175) +--(axis cs:327680,1.72429642135816) +--(axis cs:327168,1.72463593684212) +--(axis cs:326656,1.72277770545632) +--(axis cs:326144,1.72837115603639) +--(axis cs:325632,1.72739104240974) +--(axis cs:325120,1.72806882404819) +--(axis cs:324608,1.72258907118926) +--(axis cs:324096,1.7176756979119) +--(axis cs:323584,1.71667212245904) +--(axis cs:323072,1.71882639366285) +--(axis cs:322560,1.72486066210272) +--(axis cs:322048,1.72674368933249) +--(axis cs:321536,1.72424969785139) +--(axis cs:321024,1.73119227595665) +--(axis cs:320512,1.73043702078915) +--(axis cs:320000,1.73050755602709) +--(axis cs:319488,1.73058320414133) +--(axis cs:318976,1.74247715768151) +--(axis cs:318464,1.75327130417823) +--(axis cs:317952,1.75680040685688) +--(axis cs:317440,1.76383168695234) +--(axis cs:316928,1.76377665038609) +--(axis cs:316416,1.76732417796457) +--(axis cs:315904,1.76840998525794) +--(axis cs:315392,1.7717275153607) +--(axis cs:314880,1.77459176345119) +--(axis cs:314368,1.77344198083425) +--(axis cs:313856,1.78161666111708) +--(axis cs:313344,1.78463980837439) +--(axis cs:312832,1.78204468518767) +--(axis cs:312320,1.78363988726752) +--(axis cs:311808,1.78218790260514) +--(axis cs:311296,1.78165045877685) +--(axis cs:310784,1.78276970810082) +--(axis cs:310272,1.78362298349315) +--(axis cs:309760,1.7820706555158) +--(axis cs:309248,1.78245011911788) +--(axis cs:308736,1.77722518852494) +--(axis cs:308224,1.7902716125173) +--(axis cs:307712,1.78511367390826) +--(axis cs:307200,1.78329881708088) +--(axis cs:306688,1.78449507893396) +--(axis cs:306176,1.78090532169442) +--(axis cs:305664,1.77841224274025) +--(axis cs:305152,1.77527457538381) +--(axis cs:304640,1.77437977248792) +--(axis cs:304128,1.77213560204408) +--(axis cs:303616,1.76952869959303) +--(axis cs:303104,1.76183703060084) +--(axis cs:302592,1.75788500851217) +--(axis cs:302080,1.75163105106096) +--(axis cs:301568,1.74530065316081) +--(axis cs:301056,1.74189556089588) +--(axis cs:300544,1.73826725892346) +--(axis cs:300032,1.73642640213473) +--(axis cs:299520,1.7327443304953) +--(axis cs:299008,1.73148811205748) +--(axis cs:298496,1.7282250156302) +--(axis cs:297984,1.72613860566653) +--(axis cs:297472,1.72477880213288) +--(axis cs:296960,1.71852681759161) +--(axis cs:296448,1.71020450221123) +--(axis cs:295936,1.70263807364833) +--(axis cs:295424,1.69574501990439) +--(axis cs:294912,1.69093825688043) +--(axis cs:294400,1.68467909642348) +--(axis cs:293888,1.67749681019601) +--(axis cs:293376,1.67538148087179) +--(axis cs:292864,1.67385310371597) +--(axis cs:292352,1.66872514653099) +--(axis cs:291840,1.66938545597701) +--(axis cs:291328,1.66345958664662) +--(axis cs:290816,1.6616379590304) +--(axis cs:290304,1.65893699582607) +--(axis cs:289792,1.65762038950871) +--(axis cs:289280,1.65293467424111) +--(axis cs:288768,1.65306977465403) +--(axis cs:288256,1.64754346462919) +--(axis cs:287744,1.64173468819527) +--(axis cs:287232,1.63745923784971) +--(axis cs:286720,1.63667392101356) +--(axis cs:286208,1.63303041972013) +--(axis cs:285696,1.63018759365987) +--(axis cs:285184,1.62251356569625) +--(axis cs:284672,1.61512998317552) +--(axis cs:284160,1.60907803507533) +--(axis cs:283648,1.60172566895216) +--(axis cs:283136,1.59427627250153) +--(axis cs:282624,1.58782657166243) +--(axis cs:282112,1.58623406464761) +--(axis cs:281600,1.58747867058389) +--(axis cs:281088,1.58478010953767) +--(axis cs:280576,1.58915196390272) +--(axis cs:280064,1.58757636698441) +--(axis cs:279552,1.5850066493556) +--(axis cs:279040,1.58320394367379) +--(axis cs:278528,1.57333418649311) +--(axis cs:278016,1.57312500751416) +--(axis cs:277504,1.565249883467) +--(axis cs:276992,1.56489478832685) +--(axis cs:276480,1.56045512824458) +--(axis cs:275968,1.5585013843123) +--(axis cs:275456,1.55302988603889) +--(axis cs:274944,1.54953546974112) +--(axis cs:274432,1.55115007991258) +--(axis cs:273920,1.55022189569283) +--(axis cs:273408,1.5490895840562) +--(axis cs:272896,1.54257659448918) +--(axis cs:272384,1.54111418086387) +--(axis cs:271872,1.5442817341959) +--(axis cs:271360,1.54955873767457) +--(axis cs:270848,1.55573754431817) +--(axis cs:270336,1.55586619404327) +--(axis cs:269824,1.55518367229906) +--(axis cs:269312,1.55053890239284) +--(axis cs:268800,1.55237564532483) +--(axis cs:268288,1.54734208007326) +--(axis cs:267776,1.54381474328417) +--(axis cs:267264,1.54446923211936) +--(axis cs:266752,1.53968972942044) +--(axis cs:266240,1.53242620914954) +--(axis cs:265728,1.53865429187808) +--(axis cs:265216,1.54023187220555) +--(axis cs:264704,1.54472664339157) +--(axis cs:264192,1.54660904979925) +--(axis cs:263680,1.5506611128066) +--(axis cs:263168,1.55669470973959) +--(axis cs:262656,1.55450343353645) +--(axis cs:262144,1.55858678016197) +--(axis cs:261632,1.55717966382495) +--(axis cs:261120,1.56121951191208) +--(axis cs:260608,1.56249083125011) +--(axis cs:260096,1.56235968497998) +--(axis cs:259584,1.56190138872718) +--(axis cs:259072,1.56650013729193) +--(axis cs:258560,1.57428496087084) +--(axis cs:258048,1.57822209219245) +--(axis cs:257536,1.5864741503428) +--(axis cs:257024,1.58930647794693) +--(axis cs:256512,1.59810759726022) +--(axis cs:256000,1.60414221996266) +--(axis cs:255488,1.6088988385337) +--(axis cs:254976,1.60542298233464) +--(axis cs:254464,1.5977066730031) +--(axis cs:253952,1.59896679962535) +--(axis cs:253440,1.60078054740959) +--(axis cs:252928,1.59806847263212) +--(axis cs:252416,1.59482647337715) +--(axis cs:251904,1.59654584727799) +--(axis cs:251392,1.60487407641865) +--(axis cs:250880,1.6100781710146) +--(axis cs:250368,1.61405819423402) +--(axis cs:249856,1.61890898926518) +--(axis cs:249344,1.62192252169124) +--(axis cs:248832,1.62475470786555) +--(axis cs:248320,1.6252432827687) +--(axis cs:247808,1.62669924065002) +--(axis cs:247296,1.62836289621303) +--(axis cs:246784,1.6231558606631) +--(axis cs:246272,1.62766313918632) +--(axis cs:245760,1.6352953618375) +--(axis cs:245248,1.64017022095135) +--(axis cs:244736,1.64068575381475) +--(axis cs:244224,1.64339087682888) +--(axis cs:243712,1.6478978001041) +--(axis cs:243200,1.64489286784394) +--(axis cs:242688,1.64981762623729) +--(axis cs:242176,1.64800388246427) +--(axis cs:241664,1.64776816015691) +--(axis cs:241152,1.64643362130086) +--(axis cs:240640,1.64482410140494) +--(axis cs:240128,1.64663708442091) +--(axis cs:239616,1.63920988348322) +--(axis cs:239104,1.64309192027106) +--(axis cs:238592,1.64080033891532) +--(axis cs:238080,1.63812301584252) +--(axis cs:237568,1.63960130256745) +--(axis cs:237056,1.63910958069497) +--(axis cs:236544,1.6373451044813) +--(axis cs:236032,1.64069063570711) +--(axis cs:235520,1.64100540812263) +--(axis cs:235008,1.64418855921781) +--(axis cs:234496,1.643384253975) +--(axis cs:233984,1.64465557797007) +--(axis cs:233472,1.64440714842122) +--(axis cs:232960,1.6448743330735) +--(axis cs:232448,1.65229832779017) +--(axis cs:231936,1.6537319050645) +--(axis cs:231424,1.65439169675495) +--(axis cs:230912,1.65378755279065) +--(axis cs:230400,1.65222353033014) +--(axis cs:229888,1.65614008834813) +--(axis cs:229376,1.65338063340368) +--(axis cs:228864,1.65588281624502) +--(axis cs:228352,1.65649892588619) +--(axis cs:227840,1.65627151347529) +--(axis cs:227328,1.66140526306182) +--(axis cs:226816,1.66273905384199) +--(axis cs:226304,1.66859849136354) +--(axis cs:225792,1.66239623293666) +--(axis cs:225280,1.66033744483136) +--(axis cs:224768,1.66305164711269) +--(axis cs:224256,1.66752317740843) +--(axis cs:223744,1.66191242986118) +--(axis cs:223232,1.65949104321451) +--(axis cs:222720,1.66351151564848) +--(axis cs:222208,1.66087688879195) +--(axis cs:221696,1.65936469379268) +--(axis cs:221184,1.66361556009439) +--(axis cs:220672,1.66737249290873) +--(axis cs:220160,1.67090415561494) +--(axis cs:219648,1.67083984456779) +--(axis cs:219136,1.67183122175623) +--(axis cs:218624,1.67611303642687) +--(axis cs:218112,1.6830987381877) +--(axis cs:217600,1.68314621621962) +--(axis cs:217088,1.68266720537548) +--(axis cs:216576,1.68911624124682) +--(axis cs:216064,1.68639741074976) +--(axis cs:215552,1.69441002639341) +--(axis cs:215040,1.6953279460468) +--(axis cs:214528,1.70240492666084) +--(axis cs:214016,1.70593595374566) +--(axis cs:213504,1.70722504196962) +--(axis cs:212992,1.70827825166454) +--(axis cs:212480,1.71102142760637) +--(axis cs:211968,1.70973865049983) +--(axis cs:211456,1.71105671128341) +--(axis cs:210944,1.71326026260319) +--(axis cs:210432,1.71470116914918) +--(axis cs:209920,1.71647498699168) +--(axis cs:209408,1.71737639671126) +--(axis cs:208896,1.72116644203084) +--(axis cs:208384,1.72213737347251) +--(axis cs:207872,1.72870045730129) +--(axis cs:207360,1.72915249890655) +--(axis cs:206848,1.73363105320599) +--(axis cs:206336,1.72789168977695) +--(axis cs:205824,1.76265319046395) +--(axis cs:205312,1.75611879232336) +--(axis cs:204800,1.75117301541265) +--(axis cs:204288,1.74869284659295) +--(axis cs:203776,1.74319394400475) +--(axis cs:203264,1.73885354870788) +--(axis cs:202752,1.73359814977122) +--(axis cs:202240,1.73059482894408) +--(axis cs:201728,1.73217076836033) +--(axis cs:201216,1.72848069501231) +--(axis cs:200704,1.72552791674644) +--(axis cs:200192,1.72248906555011) +--(axis cs:199680,1.71824444359794) +--(axis cs:199168,1.71410426012202) +--(axis cs:198656,1.70872828145784) +--(axis cs:198144,1.69826224453566) +--(axis cs:197632,1.69484152124469) +--(axis cs:197120,1.69065958361184) +--(axis cs:196608,1.686262325208) +--(axis cs:196096,1.68353169351079) +--(axis cs:195584,1.68079538928624) +--(axis cs:195072,1.67839783552303) +--(axis cs:194560,1.67591287902014) +--(axis cs:194048,1.67113761524364) +--(axis cs:193536,1.66640686835352) +--(axis cs:193024,1.66802582471591) +--(axis cs:192512,1.66357631173751) +--(axis cs:192000,1.66282457473804) +--(axis cs:191488,1.65787119308714) +--(axis cs:190976,1.65090321908258) +--(axis cs:190464,1.64407000052468) +--(axis cs:189952,1.64340403086568) +--(axis cs:189440,1.63359954253034) +--(axis cs:188928,1.62534902188243) +--(axis cs:188416,1.61904764324606) +--(axis cs:187904,1.61245971486892) +--(axis cs:187392,1.60671709106611) +--(axis cs:186880,1.59934768849264) +--(axis cs:186368,1.59062407234009) +--(axis cs:185856,1.58899687808502) +--(axis cs:185344,1.58543218446624) +--(axis cs:184832,1.58553034715015) +--(axis cs:184320,1.58494768970469) +--(axis cs:183808,1.57978863842291) +--(axis cs:183296,1.57158611159086) +--(axis cs:182784,1.56803733345175) +--(axis cs:182272,1.56211163124789) +--(axis cs:181760,1.55576014956689) +--(axis cs:181248,1.54341826833172) +--(axis cs:180736,1.53554001859258) +--(axis cs:180224,1.5278535225484) +--(axis cs:179712,1.52488328725265) +--(axis cs:179200,1.51930370644423) +--(axis cs:178688,1.52236112929236) +--(axis cs:178176,1.51272690692135) +--(axis cs:177664,1.50992526690024) +--(axis cs:177152,1.50295427412409) +--(axis cs:176640,1.49962661459542) +--(axis cs:176128,1.49118686503901) +--(axis cs:175616,1.48861171513182) +--(axis cs:175104,1.48565443888543) +--(axis cs:174592,1.47942229620719) +--(axis cs:174080,1.47526952822498) +--(axis cs:173568,1.4790352655383) +--(axis cs:173056,1.46757090423764) +--(axis cs:172544,1.46980157862506) +--(axis cs:172032,1.46905785375129) +--(axis cs:171520,1.47853749771029) +--(axis cs:171008,1.48040107983882) +--(axis cs:170496,1.47519785521098) +--(axis cs:169984,1.47175464434428) +--(axis cs:169472,1.47415132155296) +--(axis cs:168960,1.46152867379534) +--(axis cs:168448,1.46151674485323) +--(axis cs:167936,1.46282108353194) +--(axis cs:167424,1.46960700145613) +--(axis cs:166912,1.47219531405883) +--(axis cs:166400,1.46778100893155) +--(axis cs:165888,1.47328216538971) +--(axis cs:165376,1.47288284451926) +--(axis cs:164864,1.47185413560446) +--(axis cs:164352,1.46761852843003) +--(axis cs:163840,1.46772617915477) +--(axis cs:163328,1.457036698177) +--(axis cs:162816,1.45575511839881) +--(axis cs:162304,1.45267667737955) +--(axis cs:161792,1.45659623308332) +--(axis cs:161280,1.45727691453031) +--(axis cs:160768,1.46042010518757) +--(axis cs:160256,1.46475250593877) +--(axis cs:159744,1.45928587630063) +--(axis cs:159232,1.45944921808544) +--(axis cs:158720,1.45940831734702) +--(axis cs:158208,1.45749361849654) +--(axis cs:157696,1.46111264608438) +--(axis cs:157184,1.45479405724987) +--(axis cs:156672,1.45356486375131) +--(axis cs:156160,1.44619439685813) +--(axis cs:155648,1.44888904611045) +--(axis cs:155136,1.45662472386242) +--(axis cs:154624,1.4610934084775) +--(axis cs:154112,1.4603240674227) +--(axis cs:153600,1.46043172816233) +--(axis cs:153088,1.45612800720453) +--(axis cs:152576,1.46822186291504) +--(axis cs:152064,1.46857547246921) +--(axis cs:151552,1.4713198867239) +--(axis cs:151040,1.46996176701269) +--(axis cs:150528,1.47221097490417) +--(axis cs:150016,1.47807039986621) +--(axis cs:149504,1.4828656628865) +--(axis cs:148992,1.48943954501856) +--(axis cs:148480,1.49160577885567) +--(axis cs:147968,1.49329956140629) +--(axis cs:147456,1.49941000744817) +--(axis cs:146944,1.50171603525587) +--(axis cs:146432,1.49879454384514) +--(axis cs:145920,1.49627990854086) +--(axis cs:145408,1.49135604803086) +--(axis cs:144896,1.49355845605362) +--(axis cs:144384,1.49337760133369) +--(axis cs:143872,1.49265214453048) +--(axis cs:143360,1.48629486943029) +--(axis cs:142848,1.49783194133175) +--(axis cs:142336,1.50305492653316) +--(axis cs:141824,1.50086082679084) +--(axis cs:141312,1.49480169048014) +--(axis cs:140800,1.49697381104717) +--(axis cs:140288,1.49550284540052) +--(axis cs:139776,1.4944151213012) +--(axis cs:139264,1.48489709070348) +--(axis cs:138752,1.4877203274769) +--(axis cs:138240,1.48554332122727) +--(axis cs:137728,1.48433670023143) +--(axis cs:137216,1.49157741825213) +--(axis cs:136704,1.48935536779349) +--(axis cs:136192,1.49349368174982) +--(axis cs:135680,1.49364024756547) +--(axis cs:135168,1.48890157289624) +--(axis cs:134656,1.48811459999698) +--(axis cs:134144,1.48840096978474) +--(axis cs:133632,1.48534340587157) +--(axis cs:133120,1.48771502533318) +--(axis cs:132608,1.48220098626379) +--(axis cs:132096,1.48114524848401) +--(axis cs:131584,1.48415498877847) +--(axis cs:131072,1.48575278279239) +--(axis cs:130560,1.48584030296933) +--(axis cs:130048,1.47723796644531) +--(axis cs:129536,1.47305209660153) +--(axis cs:129024,1.46966625068831) +--(axis cs:128512,1.47016223994143) +--(axis cs:128000,1.46806258140534) +--(axis cs:127488,1.46536392693662) +--(axis cs:126976,1.46462878253577) +--(axis cs:126464,1.46467372606655) +--(axis cs:125952,1.4624158453512) +--(axis cs:125440,1.45498523149781) +--(axis cs:124928,1.44912119770752) +--(axis cs:124416,1.44485733827079) +--(axis cs:123904,1.44601759350251) +--(axis cs:123392,1.44396557923284) +--(axis cs:122880,1.44288506411969) +--(axis cs:122368,1.44139204255682) +--(axis cs:121856,1.4351212216064) +--(axis cs:121344,1.43105540633722) +--(axis cs:120832,1.43080665173125) +--(axis cs:120320,1.42753059190553) +--(axis cs:119808,1.42131729628136) +--(axis cs:119296,1.42167576346327) +--(axis cs:118784,1.41237906486309) +--(axis cs:118272,1.39973730422678) +--(axis cs:117760,1.39866745779776) +--(axis cs:117248,1.39373652712269) +--(axis cs:116736,1.38752190886221) +--(axis cs:116224,1.37517466670499) +--(axis cs:115712,1.3745104572363) +--(axis cs:115200,1.3695122709068) +--(axis cs:114688,1.36107873235935) +--(axis cs:114176,1.34877898619041) +--(axis cs:113664,1.33824562476606) +--(axis cs:113152,1.33274094463469) +--(axis cs:112640,1.32239512890398) +--(axis cs:112128,1.31290308217212) +--(axis cs:111616,1.30320077699026) +--(axis cs:111104,1.29416012428871) +--(axis cs:110592,1.28429847469835) +--(axis cs:110080,1.27665326303359) +--(axis cs:109568,1.27121527964346) +--(axis cs:109056,1.26094788057501) +--(axis cs:108544,1.25947292758595) +--(axis cs:108032,1.2488385557327) +--(axis cs:107520,1.24274727999949) +--(axis cs:107008,1.24348169267319) +--(axis cs:106496,1.2333061261103) +--(axis cs:105984,1.22669786940647) +--(axis cs:105472,1.22112479001687) +--(axis cs:104960,1.21347594272129) +--(axis cs:104448,1.20540519037062) +--(axis cs:103936,1.19484465295809) +--(axis cs:103424,1.25016261150131) +--(axis cs:102912,1.23418517713416) +--(axis cs:102400,1.21582872299089) +--(axis cs:101888,1.20047742064533) +--(axis cs:101376,1.18143544065418) +--(axis cs:100864,1.16445132832005) +--(axis cs:100352,1.14619456391428) +--(axis cs:99840,1.12315845415279) +--(axis cs:99328,1.10128270483468) +--(axis cs:98816,1.07801103885179) +--(axis cs:98304,1.05586664344394) +--(axis cs:97792,1.03439152503242) +--(axis cs:97280,1.01200835749207) +--(axis cs:96768,0.988287757747912) +--(axis cs:96256,0.971946379704838) +--(axis cs:95744,0.956143562487603) +--(axis cs:95232,0.939144844994619) +--(axis cs:94720,0.931116791596401) +--(axis cs:94208,0.920148856807875) +--(axis cs:93696,0.909633427281624) +--(axis cs:93184,0.896130581112245) +--(axis cs:92672,0.886214789272343) +--(axis cs:92160,0.87665337695478) +--(axis cs:91648,0.857858155572548) +--(axis cs:91136,0.841482449908431) +--(axis cs:90624,0.831451966638191) +--(axis cs:90112,0.819063914691151) +--(axis cs:89600,0.809242780920568) +--(axis cs:89088,0.800325124799954) +--(axis cs:88576,0.785824093962726) +--(axis cs:88064,0.767670625699619) +--(axis cs:87552,0.758650805986936) +--(axis cs:87040,0.738427649033456) +--(axis cs:86528,0.728422475873278) +--(axis cs:86016,0.711057296769741) +--(axis cs:85504,0.695455782515798) +--(axis cs:84992,0.680840931580281) +--(axis cs:84480,0.673633713134201) +--(axis cs:83968,0.660460604436716) +--(axis cs:83456,0.654305705663452) +--(axis cs:82944,0.641038281073655) +--(axis cs:82432,0.631685815438448) +--(axis cs:81920,0.613124752524586) +--(axis cs:81408,0.607798353407184) +--(axis cs:80896,0.600589428378497) +--(axis cs:80384,0.585557436655965) +--(axis cs:79872,0.570576307660476) +--(axis cs:79360,0.554335098634426) +--(axis cs:78848,0.544631632545236) +--(axis cs:78336,0.5299725720146) +--(axis cs:77824,0.515250377401938) +--(axis cs:77312,0.503719449257533) +--(axis cs:76800,0.490509411663967) +--(axis cs:76288,0.486390029104224) +--(axis cs:75776,0.479845630948841) +--(axis cs:75264,0.468500869205894) +--(axis cs:74752,0.463586060640116) +--(axis cs:74240,0.456818784208223) +--(axis cs:73728,0.446502154617983) +--(axis cs:73216,0.431967815626615) +--(axis cs:72704,0.431311173676665) +--(axis cs:72192,0.415607440484948) +--(axis cs:71680,0.405256916593983) +--(axis cs:71168,0.389023263468516) +--(axis cs:70656,0.375583807718429) +--(axis cs:70144,0.366670499528502) +--(axis cs:69632,0.355833150753976) +--(axis cs:69120,0.34415773348882) +--(axis cs:68608,0.327721528991555) +--(axis cs:68096,0.319042840737391) +--(axis cs:67584,0.313107137426667) +--(axis cs:67072,0.308896794460512) +--(axis cs:66560,0.297028097787964) +--(axis cs:66048,0.293372652324677) +--(axis cs:65536,0.2863516245382) +--(axis cs:65024,0.274704202894895) +--(axis cs:64512,0.256196223428875) +--(axis cs:64000,0.259368793605675) +--(axis cs:63488,0.26118071750197) +--(axis cs:62976,0.24264049054849) +--(axis cs:62464,0.233065366722915) +--(axis cs:61952,0.223490296989401) +--(axis cs:61440,0.215802601279893) +--(axis cs:60928,0.20910252124228) +--(axis cs:60416,0.194595322748604) +--(axis cs:59904,0.175798262827682) +--(axis cs:59392,0.153901196167387) +--(axis cs:58880,0.145083437027128) +--(axis cs:58368,0.133856131444717) +--(axis cs:57856,0.124462833845135) +--(axis cs:57344,0.108264984555929) +--(axis cs:56832,0.104400239689767) +--(axis cs:56320,0.0999635509624171) +--(axis cs:55808,0.100120638416843) +--(axis cs:55296,0.0902990643497027) +--(axis cs:54784,0.0798239311596155) +--(axis cs:54272,0.0805493382754014) +--(axis cs:53760,0.0592549867166342) +--(axis cs:53248,0.0645325233675247) +--(axis cs:52736,0.0517809091975652) +--(axis cs:52224,0.0236180171564355) +--(axis cs:51712,0.0199861629518601) +--(axis cs:51200,0.0145892452023847) +--(axis cs:50688,0.0109225517117524) +--(axis cs:50176,0.011907154301795) +--(axis cs:49664,0.0134655127777342) +--(axis cs:49152,0.00385860379428551) +--(axis cs:48640,0.00126824243825072) +--(axis cs:48128,-0.0100208386902547) +--(axis cs:47616,-0.0247992087349104) +--(axis cs:47104,-0.0360269280891002) +--(axis cs:46592,-0.0420900559312653) +--(axis cs:46080,-0.0566352703057523) +--(axis cs:45568,-0.0622770705489996) +--(axis cs:45056,-0.0755857650199356) +--(axis cs:44544,-0.0835432218269684) +--(axis cs:44032,-0.0713564886854318) +--(axis cs:43520,-0.0784775410985369) +--(axis cs:43008,-0.0630342018866565) +--(axis cs:42496,-0.0745402077072769) +--(axis cs:41984,-0.0784348817145472) +--(axis cs:41472,-0.0858482932469579) +--(axis cs:40960,-0.0903558927213386) +--(axis cs:40448,-0.0947851705484306) +--(axis cs:39936,-0.1124550993509) +--(axis cs:39424,-0.128224090962066) +--(axis cs:38912,-0.138616664566068) +--(axis cs:38400,-0.159091023154454) +--(axis cs:37888,-0.180273115928702) +--(axis cs:37376,-0.177314710648461) +--(axis cs:36864,-0.163917142366247) +--(axis cs:36352,-0.170140309731611) +--(axis cs:35840,-0.156478238751526) +--(axis cs:35328,-0.159024612272715) +--(axis cs:34816,-0.158736606519132) +--(axis cs:34304,-0.162287047358015) +--(axis cs:33792,-0.15520823422246) +--(axis cs:33280,-0.158380948188508) +--(axis cs:32768,-0.167720343824408) +--(axis cs:32256,-0.163376086904987) +--(axis cs:31744,-0.174385164785495) +--(axis cs:31232,-0.180131022131045) +--(axis cs:30720,-0.200047765526466) +--(axis cs:30208,-0.201326612980255) +--(axis cs:29696,-0.204208724144052) +--(axis cs:29184,-0.205955082920037) +--(axis cs:28672,-0.211670819053869) +--(axis cs:28160,-0.207178801086514) +--(axis cs:27648,-0.218144606715988) +--(axis cs:27136,-0.218374023798211) +--(axis cs:26624,-0.232584564874105) +--(axis cs:26112,-0.224540322157387) +--(axis cs:25600,-0.235199670703821) +--(axis cs:25088,-0.239504067620407) +--(axis cs:24576,-0.248989531640186) +--(axis cs:24064,-0.23557101660526) +--(axis cs:23552,-0.2366186023337) +--(axis cs:23040,-0.239165166462852) +--(axis cs:22528,-0.236741855481721) +--(axis cs:22016,-0.231557203726179) +--(axis cs:21504,-0.223113983241813) +--(axis cs:20992,-0.228960719111069) +--(axis cs:20480,-0.235142052900016) +--(axis cs:19968,-0.227629602930163) +--(axis cs:19456,-0.222892660521773) +--(axis cs:18944,-0.224016309987811) +--(axis cs:18432,-0.22933286624089) +--(axis cs:17920,-0.242318928205424) +--(axis cs:17408,-0.249628729246964) +--(axis cs:16896,-0.243096775311484) +--(axis cs:16384,-0.232701978686065) +--(axis cs:15872,-0.233642892672769) +--(axis cs:15360,-0.225504757883103) +--(axis cs:14848,-0.230306397744162) +--(axis cs:14336,-0.219455415717533) +--(axis cs:13824,-0.23396962851732) +--(axis cs:13312,-0.235955620683949) +--(axis cs:12800,-0.241062689315769) +--(axis cs:12288,-0.264371626707968) +--(axis cs:11776,-0.277331494045092) +--(axis cs:11264,-0.276772386363745) +--(axis cs:10752,-0.298155011744374) +--(axis cs:10240,-0.281248905690948) +--(axis cs:9728,-0.279085375243066) +--(axis cs:9216,-0.256843507098444) +--(axis cs:8704,-0.250247135952781) +--(axis cs:8192,-0.258139916468848) +--(axis cs:7680,-0.246082121759788) +--(axis cs:7168,-0.270189839894166) +--(axis cs:6656,-0.286996765224228) +--(axis cs:6144,-0.308269636584618) +--(axis cs:5632,-0.332495377700076) +--(axis cs:5120,-0.325037104340596) +--(axis cs:4608,-0.324030998743944) +--(axis cs:4096,-0.310737464878392) +--(axis cs:3584,-0.277455676933567) +--(axis cs:3072,-0.247456073939181) +--(axis cs:2560,-0.187238741401997) +--(axis cs:2048,-0.129340684999517) +--(axis cs:1536,-0.0256835370774362) +--(axis cs:1024,-0.0390980740860079) +--(axis cs:512,-0.0334432687843966) +--cycle; + +\addplot [semithick, teal] +table {% +512 -0.0547393560409546 +1024 -0.0823312997817993 +1536 -0.0431207418441772 +2048 -0.146269917488098 +2560 -0.20812201499939 +3072 -0.264338850975037 +3584 -0.292925834655762 +4096 -0.333457469940186 +4608 -0.341741681098938 +5120 -0.345189690589905 +5632 -0.354732871055603 +6144 -0.324785590171814 +6656 -0.303073287010193 +7168 -0.285414814949036 +7680 -0.264638781547546 +8192 -0.275526404380798 +8704 -0.268984913825989 +9216 -0.2791348695755 +9728 -0.302735447883606 +10240 -0.306705713272095 +10752 -0.320430159568787 +11264 -0.294166088104248 +11776 -0.291059970855713 +12288 -0.279739260673523 +12800 -0.259834408760071 +13312 -0.255795240402222 +13824 -0.248074293136597 +14336 -0.236163258552551 +15360 -0.240111112594604 +15872 -0.248334407806396 +16384 -0.250508666038513 +16896 -0.263281226158142 +17408 -0.27454149723053 +17920 -0.260948777198792 +18432 -0.255580425262451 +18944 -0.24797534942627 +19456 -0.242233037948608 +19968 -0.249489784240723 +20480 -0.258705854415894 +20992 -0.257127165794373 +21504 -0.2546706199646 +22016 -0.261195421218872 +22528 -0.258854269981384 +23040 -0.257617950439453 +23552 -0.253701329231262 +24064 -0.254349589347839 +24576 -0.264011383056641 +25088 -0.253310441970825 +25600 -0.255931377410889 +26112 -0.251568913459778 +26624 -0.258355140686035 +27136 -0.244389057159424 +27648 -0.239879131317139 +28160 -0.231515526771545 +28672 -0.23732578754425 +29184 -0.239759087562561 +29696 -0.235602140426636 +30208 -0.22663426399231 +30720 -0.221810579299927 +31232 -0.200907826423645 +31744 -0.193646669387817 +32256 -0.181507587432861 +32768 -0.186582922935486 +33280 -0.183706641197205 +34304 -0.184460878372192 +34816 -0.178372025489807 +35328 -0.173999071121216 +35840 -0.173424482345581 +36352 -0.183943271636963 +36864 -0.183749079704285 +37376 -0.197792053222656 +37888 -0.196535587310791 +38400 -0.184913873672485 +38912 -0.163633704185486 +39936 -0.136580467224121 +40448 -0.122846484184265 +40960 -0.116090297698975 +41472 -0.111932039260864 +41984 -0.0980607271194458 +42496 -0.0885612964630127 +43008 -0.0801141262054443 +43520 -0.0963784456253052 +44032 -0.0925323963165283 +44544 -0.0985479354858398 +45056 -0.0925321578979492 +45568 -0.0766127109527588 +46080 -0.0713281631469727 +46592 -0.0569355487823486 +47104 -0.051266074180603 +47616 -0.0396736860275269 +48128 -0.0326994657516479 +48640 -0.026705265045166 +49152 -0.0318373441696167 +49664 -0.0183017253875732 +50176 -0.0233391523361206 +50688 -0.0206723213195801 +51200 -0.014988899230957 +51712 -0.0137444734573364 +52224 -0.0108268260955811 +52736 0.0163931846618652 +53248 0.0284018516540527 +53760 0.0233001708984375 +54272 0.0380173921585083 +54784 0.038432240486145 +55296 0.0497528314590454 +55808 0.0645583868026733 +56320 0.0601599216461182 +56832 0.0685900449752808 +57344 0.0719174146652222 +57856 0.0902788639068604 +58368 0.101104497909546 +58880 0.112989068031311 +59392 0.12042498588562 +59904 0.143846750259399 +60416 0.162208318710327 +60928 0.172208070755005 +61440 0.178309321403503 +61952 0.185569405555725 +62976 0.202249765396118 +63488 0.217846632003784 +64000 0.219654202461243 +64512 0.219193935394287 +65024 0.232264876365662 +65536 0.242718935012817 +66048 0.254954099655151 +66560 0.255724310874939 +67584 0.270429491996765 +68096 0.2747802734375 +68608 0.281273126602173 +69120 0.299422264099121 +70144 0.319514870643616 +70656 0.333646655082703 +71168 0.345042943954468 +71680 0.361032485961914 +72192 0.374743103981018 +72704 0.387178182601929 +73216 0.38981032371521 +73728 0.405115485191345 +74752 0.424403429031372 +75776 0.44278359413147 +76288 0.445055603981018 +76800 0.448732376098633 +77312 0.458953142166138 +77824 0.474031805992126 +78336 0.487698912620544 +78848 0.499677300453186 +79360 0.503809452056885 +79872 0.5169837474823 +80384 0.532287359237671 +81408 0.550852298736572 +81920 0.554415941238403 +82432 0.576215505599976 +82944 0.588966131210327 +83456 0.603253245353699 +83968 0.610467910766602 +84480 0.622863173484802 +84992 0.629390835762024 +85504 0.641058921813965 +86016 0.655249118804932 +86528 0.67233681678772 +87040 0.683757305145264 +87552 0.698271512985229 +88064 0.7055504322052 +89088 0.738287925720215 +89600 0.746217131614685 +90112 0.755300998687744 +91136 0.778040885925293 +91648 0.792309284210205 +92160 0.809940457344055 +92672 0.822168111801147 +93184 0.832845449447632 +93696 0.847905397415161 +94720 0.871586799621582 +95232 0.878954410552979 +96256 0.91041088104248 +96768 0.926054954528809 +97280 0.948409795761108 +97792 0.969474077224731 +98304 0.993341445922852 +98816 1.0140243768692 +99328 1.03715240955353 +99840 1.058309674263 +100352 1.08159971237183 +100864 1.09996855258942 +101888 1.133908867836 +103424 1.17851090431213 +103936 1.13246297836304 +104448 1.14280772209167 +104960 1.15117990970612 +105472 1.15704381465912 +106496 1.17148077487946 +107008 1.18129217624664 +107520 1.18198251724243 +108032 1.18750536441803 +108544 1.19953942298889 +109056 1.20456767082214 +109568 1.2196272611618 +110080 1.22759222984314 +110592 1.23742842674255 +111104 1.24459946155548 +111616 1.25754499435425 +112128 1.26954650878906 +113152 1.28689312934875 +113664 1.28941011428833 +114176 1.30314826965332 +114688 1.31584548950195 +115200 1.32158160209656 +116224 1.32551562786102 +116736 1.33681392669678 +117248 1.34403264522552 +117760 1.34993612766266 +118272 1.352578997612 +118784 1.363605260849 +119296 1.37375235557556 +119808 1.37162292003632 +120320 1.37697267532349 +121856 1.38628375530243 +122368 1.39249837398529 +122880 1.39557206630707 +123392 1.39976632595062 +123904 1.40227508544922 +124416 1.40612125396729 +124928 1.4080502986908 +125440 1.41208112239838 +126464 1.42387080192566 +126976 1.42381203174591 +127488 1.42619657516479 +128000 1.43014430999756 +128512 1.43243134021759 +129024 1.43081629276276 +130048 1.4401878118515 +130560 1.44738912582397 +131072 1.44913375377655 +131584 1.44661450386047 +132096 1.44237649440765 +132608 1.44354498386383 +133120 1.44852757453918 +133632 1.44317746162415 +134144 1.44975876808167 +134656 1.44949889183044 +135168 1.44798350334167 +136192 1.44877123832703 +136704 1.44198501110077 +137216 1.44747221469879 +137728 1.44063985347748 +138240 1.44152641296387 +138752 1.44406771659851 +139264 1.44177329540253 +139776 1.45102214813232 +140288 1.45730042457581 +140800 1.45918655395508 +141312 1.45797729492188 +141824 1.46637010574341 +142336 1.46974730491638 +142848 1.46697819232941 +143360 1.45801770687103 +143872 1.46168434619904 +144384 1.46357131004333 +144896 1.45913541316986 +145408 1.45102679729462 +145920 1.45610272884369 +146432 1.45704412460327 +146944 1.45668697357178 +147456 1.4546834230423 +147968 1.44571697711945 +148480 1.44099831581116 +148992 1.44185423851013 +149504 1.43661034107208 +150016 1.42996644973755 +151040 1.42391967773438 +151552 1.42308557033539 +152576 1.418417096138 +153088 1.40559613704681 +153600 1.40375673770905 +154624 1.40938818454742 +155136 1.40884983539581 +155648 1.40566539764404 +156160 1.41096723079681 +156672 1.41952276229858 +157696 1.43140041828156 +159232 1.43093848228455 +159744 1.42925953865051 +160256 1.43287038803101 +161280 1.42538130283356 +161792 1.42534446716309 +162304 1.41855907440186 +162816 1.42317759990692 +163328 1.42463433742523 +163840 1.42947769165039 +164352 1.42987370491028 +164864 1.43464398384094 +165376 1.43658697605133 +165888 1.44100594520569 +166400 1.43696236610413 +166912 1.4412305355072 +167424 1.43906724452972 +167936 1.43225848674774 +168448 1.43155825138092 +168960 1.43335711956024 +169472 1.4429692029953 +169984 1.44089448451996 +170496 1.4463928937912 +171008 1.45340013504028 +171520 1.45020699501038 +172032 1.43999528884888 +172544 1.44233000278473 +173056 1.44120693206787 +173568 1.45299601554871 +174080 1.44965827465057 +174592 1.45390772819519 +175104 1.46045994758606 +175616 1.46301579475403 +176128 1.46346080303192 +176640 1.47286689281464 +177152 1.47781193256378 +177664 1.48144912719727 +178176 1.48239696025848 +178688 1.4896651506424 +179200 1.48698961734772 +179712 1.49393832683563 +180224 1.49908065795898 +180736 1.50596630573273 +181248 1.51459276676178 +181760 1.52633249759674 +182272 1.52996730804443 +182784 1.536789894104 +183296 1.53705883026123 +183808 1.54342889785767 +184832 1.55201852321625 +185344 1.55210304260254 +185856 1.55569779872894 +186368 1.55827271938324 +186880 1.56779968738556 +187904 1.58074867725372 +189440 1.59501814842224 +189952 1.60558426380157 +190464 1.6058292388916 +191488 1.61814737319946 +192000 1.62192487716675 +192512 1.62215316295624 +193024 1.62688112258911 +193536 1.6226361989975 +194560 1.635333776474 +195072 1.63769257068634 +195584 1.64171409606934 +196608 1.64605677127838 +197632 1.65278458595276 +198144 1.65897130966187 +198656 1.67077398300171 +199168 1.67845797538757 +199680 1.68210935592651 +200192 1.68468487262726 +201216 1.69426274299622 +201728 1.69815909862518 +202240 1.69679725170135 +202752 1.69795215129852 +203264 1.70412993431091 +203776 1.7090265750885 +204288 1.7149144411087 +204800 1.71774005889893 +205824 1.72671806812286 +206336 1.69752156734467 +206848 1.70265197753906 +207360 1.70098578929901 +207872 1.70360553264618 +208384 1.69578504562378 +208896 1.69608473777771 +209920 1.69130575656891 +210944 1.69091784954071 +211456 1.69067692756653 +211968 1.69212579727173 +212480 1.69164776802063 +212992 1.68785631656647 +213504 1.68699491024017 +214528 1.68049168586731 +215040 1.67504620552063 +215552 1.67296183109283 +216064 1.66647565364838 +216576 1.66765511035919 +217088 1.66225302219391 +218112 1.66302466392517 +218624 1.65652573108673 +219136 1.65326917171478 +219648 1.65100085735321 +220160 1.6518874168396 +221184 1.64444243907928 +221696 1.64168381690979 +222720 1.64587306976318 +223232 1.64368140697479 +223744 1.64430296421051 +224256 1.64790534973145 +224768 1.64227116107941 +225792 1.64190948009491 +226304 1.64509809017181 +226816 1.64079773426056 +227840 1.63465321063995 +228352 1.63590919971466 +229376 1.63148736953735 +229888 1.63419759273529 +230400 1.63198935985565 +230912 1.63327193260193 +231424 1.63317131996155 +231936 1.63033664226532 +232448 1.62962806224823 +232960 1.62241423130035 +233472 1.62268424034119 +233984 1.62471163272858 +234496 1.62303340435028 +235008 1.62227582931519 +236032 1.61446297168732 +236544 1.60881388187408 +238592 1.61218321323395 +239104 1.61740303039551 +239616 1.61432325839996 +240128 1.62078714370728 +240640 1.62097918987274 +241664 1.62475609779358 +242176 1.62437772750854 +242688 1.62640345096588 +243200 1.62196946144104 +243712 1.6245950460434 +244736 1.61619627475739 +245248 1.61542057991028 +245760 1.61242341995239 +246272 1.60359156131744 +246784 1.59895265102386 +247296 1.60434937477112 +247808 1.60096323490143 +248320 1.59903919696808 +248832 1.59431302547455 +249344 1.58820188045502 +249856 1.58443939685822 +250880 1.57468616962433 +251392 1.57466304302216 +251904 1.56802332401276 +252416 1.56649589538574 +252928 1.56814360618591 +253440 1.5685168504715 +253952 1.56756138801575 +254464 1.56377136707306 +254976 1.5699714422226 +255488 1.57232809066772 +256000 1.56588041782379 +256512 1.55859208106995 +257024 1.55357909202576 +257536 1.55148899555206 +258048 1.54445588588715 +258560 1.54147577285767 +259072 1.53421854972839 +259584 1.53186583518982 +260096 1.53225994110107 +260608 1.53037595748901 +261120 1.53133654594421 +261632 1.52688014507294 +262144 1.52870917320251 +262656 1.52285182476044 +263168 1.52695262432098 +263680 1.52295160293579 +264192 1.51991152763367 +264704 1.52066719532013 +265216 1.52051973342896 +265728 1.51901459693909 +266240 1.51408708095551 +266752 1.51991665363312 +267264 1.5236474275589 +267776 1.52415525913239 +268800 1.52837347984314 +269312 1.52426648139954 +269824 1.52920114994049 +270336 1.53030431270599 +270848 1.52859568595886 +271360 1.52397155761719 +271872 1.52109587192535 +272384 1.51938951015472 +272896 1.51999258995056 +273408 1.52879655361176 +273920 1.53058648109436 +274432 1.53324055671692 +274944 1.53099989891052 +275968 1.54264450073242 +276480 1.54423475265503 +276992 1.54862797260284 +277504 1.54980707168579 +278016 1.552170753479 +278528 1.55002284049988 +279040 1.55560684204102 +279552 1.55624139308929 +280064 1.55511736869812 +280576 1.55526089668274 +281088 1.54989588260651 +281600 1.55319631099701 +282624 1.55131459236145 +283136 1.55838167667389 +283648 1.56377255916595 +284160 1.57069420814514 +284672 1.57624971866608 +285184 1.58650934696198 +285696 1.59304165840149 +286208 1.59763848781586 +286720 1.59981858730316 +287232 1.59966540336609 +287744 1.60360455513 +288768 1.61387264728546 +289280 1.610844373703 +289792 1.6131364107132 +290304 1.61279273033142 +290816 1.61483025550842 +291328 1.6182736158371 +291840 1.62346363067627 +292352 1.62227094173431 +292864 1.62563800811768 +293376 1.62805473804474 +293888 1.6284042596817 +294400 1.63561415672302 +294912 1.64138388633728 +295936 1.65105438232422 +296448 1.65967679023743 +296960 1.66714406013489 +297472 1.67205429077148 +297984 1.67093503475189 +298496 1.6732724905014 +299008 1.67325484752655 +300032 1.67794001102448 +300544 1.68027138710022 +301056 1.68515586853027 +301568 1.68846833705902 +302592 1.70039856433868 +303104 1.70629620552063 +303616 1.71464788913727 +304640 1.72262358665466 +305152 1.72352170944214 +305664 1.72539591789246 +306176 1.72591960430145 +306688 1.73025989532471 +307200 1.72965598106384 +307712 1.73105871677399 +308224 1.73785793781281 +308736 1.72693467140198 +309248 1.73033154010773 +309760 1.7289971113205 +310272 1.73252391815186 +310784 1.73146629333496 +311296 1.72850978374481 +311808 1.72937262058258 +312320 1.73260402679443 +312832 1.7310357093811 +313344 1.73438942432404 +313856 1.73286736011505 +314368 1.72811615467072 +314880 1.72727239131927 +315904 1.72250092029572 +316416 1.7227098941803 +316928 1.71917366981506 +317440 1.71931636333466 +317952 1.71538364887238 +318464 1.7148814201355 +319488 1.70213460922241 +320512 1.70330095291138 +321024 1.70470833778381 +321536 1.69795429706573 +322048 1.69959759712219 +322560 1.69628608226776 +323072 1.69179582595825 +323584 1.6889466047287 +324608 1.69444417953491 +325120 1.69991183280945 +325632 1.70279490947723 +326144 1.70369696617126 +326656 1.70160925388336 +327168 1.70765340328217 +327680 1.70749616622925 +328192 1.70493125915527 +328704 1.70522224903107 +329216 1.70441257953644 +329728 1.70447158813477 +330240 1.70992004871368 +330752 1.70767724514008 +331776 1.69965815544128 +333824 1.69859158992767 +334336 1.69623732566833 +334848 1.69206690788269 +335360 1.68997204303741 +335872 1.69068384170532 +336384 1.68915772438049 +336896 1.68975555896759 +338432 1.68513989448547 +338944 1.6860466003418 +339456 1.68983638286591 +339968 1.69179821014404 +340480 1.6924991607666 +340992 1.68891644477844 +341504 1.68802177906036 +342016 1.68505501747131 +342528 1.68015515804291 +343040 1.67810344696045 +343552 1.67723846435547 +344576 1.69357323646545 +345088 1.69135272502899 +346112 1.69103717803955 +346624 1.69196128845215 +347136 1.69529783725739 +347648 1.69978845119476 +348160 1.69162130355835 +348672 1.68678426742554 +349184 1.68409860134125 +349696 1.67720758914948 +350208 1.67634809017181 +350720 1.67089545726776 +351232 1.66861057281494 +351744 1.66347289085388 +352256 1.66252613067627 +352768 1.65848660469055 +353280 1.65691745281219 +353792 1.65309083461761 +354304 1.65689301490784 +354816 1.65455257892609 +355328 1.65121161937714 +356352 1.64958786964417 +356864 1.64489948749542 +357376 1.64241278171539 +357888 1.64458072185516 +358400 1.63988387584686 +359424 1.63458096981049 +359936 1.62703418731689 +360448 1.62245309352875 +361472 1.61838853359222 +361984 1.61668980121613 +362496 1.6119989156723 +363008 1.60851776599884 +363520 1.60934710502625 +364032 1.60387766361237 +364544 1.60909867286682 +365056 1.60556745529175 +365568 1.60399270057678 +366080 1.60918533802032 +366592 1.61117136478424 +367104 1.60677647590637 +367616 1.61057078838348 +368128 1.61122822761536 +368640 1.61312329769135 +369152 1.61118280887604 +369664 1.61366999149323 +370176 1.61429727077484 +370688 1.61343657970428 +371200 1.60862290859222 +372224 1.61265790462494 +372736 1.60865938663483 +373248 1.61191248893738 +373760 1.60463726520538 +374272 1.6066552400589 +374784 1.60605406761169 +375296 1.60684049129486 +375808 1.60609078407288 +376320 1.60661947727203 +376832 1.60530424118042 +377344 1.59990441799164 +377856 1.5989785194397 +378368 1.59610557556152 +378880 1.60259425640106 +379392 1.60595321655273 +379904 1.61246681213379 +380416 1.61545050144196 +380928 1.61335217952728 +381440 1.6092221736908 +381952 1.6145191192627 +382464 1.61057960987091 +382976 1.61355865001678 +383488 1.61298418045044 +384000 1.60987281799316 +384512 1.61097192764282 +385024 1.60813307762146 +385536 1.61016237735748 +386048 1.61558246612549 +386560 1.61723625659943 +387072 1.62102377414703 +387584 1.62276840209961 +388096 1.6217702627182 +389120 1.62800395488739 +389632 1.62256503105164 +390144 1.62206614017487 +390656 1.62476229667664 +391168 1.63139247894287 +391680 1.63537776470184 +392192 1.64194786548615 +392704 1.64713215827942 +393216 1.65087735652924 +393728 1.65175938606262 +394240 1.65718185901642 +394752 1.66052281856537 +395264 1.66885817050934 +395776 1.67140996456146 +396288 1.67231869697571 +397312 1.67676043510437 +397824 1.68194723129272 +398336 1.68360006809235 +398848 1.6818790435791 +399360 1.68687856197357 +399872 1.69301867485046 +400384 1.69578528404236 +400896 1.70083689689636 +401408 1.7017560005188 +401920 1.70456790924072 +402432 1.7113801240921 +403968 1.72855961322784 +404480 1.73493385314941 +404992 1.73734772205353 +405504 1.73874592781067 +406016 1.73916530609131 +406528 1.74418711662292 +407040 1.74545359611511 +407552 1.74996888637543 +408064 1.75310277938843 +408576 1.75724351406097 +409600 1.76913368701935 +410112 1.76881265640259 +410624 1.77169251441956 +411136 1.76702678203583 +411648 1.76570224761963 +412160 1.7673362493515 +412672 1.76372563838959 +413184 1.76319897174835 +413696 1.76098418235779 +414208 1.76751518249512 +414720 1.76591360569 +415232 1.76724851131439 +415744 1.76190364360809 +416256 1.76036942005157 +417280 1.75899887084961 +417792 1.75500774383545 +418304 1.75671219825745 +418816 1.75298595428467 +419328 1.74812686443329 +420352 1.7464005947113 +421888 1.73711216449738 +422400 1.73661422729492 +423424 1.73086988925934 +423936 1.72662043571472 +424448 1.72884476184845 +424960 1.73020613193512 +425472 1.72883498668671 +425984 1.73284983634949 +426496 1.73002457618713 +427008 1.73115241527557 +427520 1.73607432842255 +428032 1.73156630992889 +428544 1.73315465450287 +429056 1.73079013824463 +429568 1.73394310474396 +430080 1.73489165306091 +430592 1.73217272758484 +431104 1.73200416564941 +431616 1.72581553459167 +432128 1.72305154800415 +432640 1.72546565532684 +433152 1.72673857212067 +433664 1.72044324874878 +434176 1.71970617771149 +434688 1.72185122966766 +436224 1.70883631706238 +437248 1.70449113845825 +437760 1.70444512367249 +438272 1.70272552967072 +439296 1.7039270401001 +439808 1.70698213577271 +440320 1.70728707313538 +440832 1.7020525932312 +441344 1.70293986797333 +441856 1.70680260658264 +442368 1.70882773399353 +442880 1.70928263664246 +443392 1.71084976196289 +443904 1.7055332660675 +446464 1.69189786911011 +446976 1.68970966339111 +447488 1.69246125221252 +448000 1.68451535701752 +448512 1.68629968166351 +449024 1.68601512908936 +449536 1.68708455562592 +450048 1.68323075771332 +451072 1.6713193655014 +451584 1.66952764987946 +452096 1.67084658145905 +452608 1.66943073272705 +453120 1.66436052322388 +453632 1.66644859313965 +454144 1.66689133644104 +454656 1.66644954681396 +455168 1.66417992115021 +455680 1.66278660297394 +456192 1.65949368476868 +456704 1.65947866439819 +457216 1.65730822086334 +458240 1.66219019889832 +459776 1.65299391746521 +460288 1.65310299396515 +460800 1.65033042430878 +461312 1.65161979198456 +461824 1.64889252185822 +462336 1.64873254299164 +462848 1.64513838291168 +463360 1.64680528640747 +463872 1.64544308185577 +464384 1.64562022686005 +464896 1.6405702829361 +465920 1.64045596122742 +466432 1.6427937746048 +466944 1.63797724246979 +467456 1.63852381706238 +468480 1.63621032238007 +468992 1.6408280134201 +470528 1.63692224025726 +471040 1.63597357273102 +471552 1.63337290287018 +472064 1.62850403785706 +472576 1.62830901145935 +473088 1.62455749511719 +473600 1.62300276756287 +474112 1.61949670314789 +474624 1.6109231710434 +475136 1.60734784603119 +475648 1.60910451412201 +476160 1.61177182197571 +476672 1.61016809940338 +477184 1.6124621629715 +477696 1.61094582080841 +478208 1.61220026016235 +479232 1.6174488067627 +480256 1.6144015789032 +480768 1.61433696746826 +481280 1.61659610271454 +481792 1.61667084693909 +482816 1.62561130523682 +483328 1.62570858001709 +484352 1.63262975215912 +484864 1.63896882534027 +485376 1.64040219783783 +485888 1.639115691185 +486400 1.6426477432251 +487424 1.64767563343048 +487936 1.64903700351715 +488448 1.64740097522736 +488960 1.65098524093628 +490496 1.65447282791138 +491008 1.65104615688324 +491520 1.65155875682831 +492032 1.64907491207123 +492544 1.65338385105133 +493056 1.65565299987793 +493568 1.65199959278107 +494080 1.65746891498566 +494592 1.66454041004181 +495104 1.67247462272644 +497152 1.68463349342346 +497664 1.68928301334381 +498176 1.69080317020416 +499200 1.68329787254333 +499712 1.68219709396362 +500224 1.68816137313843 +500736 1.68833565711975 +501248 1.68758881092072 +501760 1.69501161575317 +502272 1.69785583019257 +502784 1.70500338077545 +}; +\end{axis} + +\end{tikzpicture} diff --git a/thesis.tex b/thesis.tex index 961f134..8c8dda4 100644 --- a/thesis.tex +++ b/thesis.tex @@ -34,27 +34,31 @@ \pgfplotsset{compat=newest} \usepgfplotslibrary{groupplots} -%******************************************************************** +% ======================================= % Note: Make all your adjustments in here -%******************************************************* +% ======================================= + \input{classicthesis-config} -%******************************************************************** +% ============== % Bibliographies -%******************************************************* +% ============== + \addbibresource{zotero.bib} -%******************************************************************** +% =========== % Hyphenation -%******************************************************* +% =========== + %\hyphenation{put special hyphenation here} % Sequential numbering document-wise of footnotes \counterwithout{footnote}{chapter} -% ******************************************************************** +% ================== % GO!GO!GO! MOVE IT! -%******************************************************* +% ================== + \begin{document} \frenchspacing \raggedbottom @@ -65,9 +69,9 @@ \pagenumbering{arabic} \pagestyle{plain} -%******************************************************************** +% =========== % Frontmatter -%******************************************************* +% =========== %\include{FrontBackmatter/dirty_titlepage} \include{FrontBackmatter/titlepage} @@ -81,9 +85,9 @@ \clearpage\include{FrontBackmatter/copyright} % \cleardoublepage\include{FrontBackmatter/acknowledgments} -%******************************************************************** +% ========== % Mainmatter -%******************************************************* +% ========== \cleardoublepage \pagestyle{scrheadings} @@ -105,9 +109,9 @@ \part{Contribution}\label{part:contribution} \include{Chapters/Part_2/chapter_7} \include{Chapters/Part_2/chapter_8} -% ******************************************************************** +% ========== % Backmatter -%******************************************************* +% ========== \cleardoublepage\include{Chapters/epilogue} \cleardoublepage\include{FrontBackmatter/bibliography} @@ -119,9 +123,8 @@ \part{Contribution}\label{part:contribution} \part{Appendix} \include{Chapters/appendix} -% ******************************************************************** +% ===================================== % Game Over: Restore, Restart, or Quit? -%******************************************************* +% ===================================== \end{document} -% ******************************************************************** diff --git a/zotero.bib b/zotero.bib index 78eb035..79b287f 100644 --- a/zotero.bib +++ b/zotero.bib @@ -3090,3 +3090,99 @@ @inproceedings{todorov_convex_2014 pages = {6054--6061}, file = {Todorov - 2014 - Convex and analytically-invertible dynamics with c.pdf:/home/dferigo/Zotero/storage/P5DDZM5I/Todorov - 2014 - Convex and analytically-invertible dynamics with c.pdf:application/pdf}, } + +@article{raffin_stable-baselines3_2021, + title = {Stable-{Baselines3}: {Reliable} {Reinforcement} {Learning} {Implementations}}, + volume = {22}, + issn = {1533-7928}, + shorttitle = {Stable-{Baselines3}}, + url = {http://jmlr.org/papers/v22/20-1364.html}, + abstract = {Stable-Baselines3 provides open-source implementations of deep reinforcement learning (RL) algorithms in Python. The implementations have been benchmarked against reference codebases, and automated unit tests cover 95\% of the code. The algorithms follow a consistent interface and are accompanied by extensive documentation, making it simple to train and compare different RL algorithms. Our documentation, examples, and source-code are available at https://github.com/DLR-RM/stable-baselines3.}, + number = {268}, + urldate = {2023-05-26}, + journal = {Journal of Machine Learning Research}, + author = {Raffin, Antonin and Hill, Ashley and Gleave, Adam and Kanervisto, Anssi and Ernestus, Maximilian and Dormann, Noah}, + year = {2021}, + pages = {1--8}, + file = {Full Text PDF:/home/dferigo/Zotero/storage/VYS4Q5C5/Raffin et al. - 2021 - Stable-Baselines3 Reliable Reinforcement Learning.pdf:application/pdf;Source Code:/home/dferigo/Zotero/storage/5FJR88C5/stable-baselines3.html:text/html}, +} + +@misc{kingma_adam_2017, + title = {Adam: {A} {Method} for {Stochastic} {Optimization}}, + shorttitle = {Adam}, + url = {http://arxiv.org/abs/1412.6980}, + doi = {10.48550/arXiv.1412.6980}, + abstract = {We introduce Adam, an algorithm for first-order gradient-based optimization of stochastic objective functions, based on adaptive estimates of lower-order moments. The method is straightforward to implement, is computationally efficient, has little memory requirements, is invariant to diagonal rescaling of the gradients, and is well suited for problems that are large in terms of data and/or parameters. The method is also appropriate for non-stationary objectives and problems with very noisy and/or sparse gradients. The hyper-parameters have intuitive interpretations and typically require little tuning. Some connections to related algorithms, on which Adam was inspired, are discussed. We also analyze the theoretical convergence properties of the algorithm and provide a regret bound on the convergence rate that is comparable to the best known results under the online convex optimization framework. Empirical results demonstrate that Adam works well in practice and compares favorably to other stochastic optimization methods. Finally, we discuss AdaMax, a variant of Adam based on the infinity norm.}, + urldate = {2023-05-26}, + publisher = {arXiv}, + author = {Kingma, Diederik P. and Ba, Jimmy}, + month = jan, + year = {2017}, + note = {arXiv:1412.6980 [cs]}, + keywords = {Computer Science - Machine Learning}, + file = {arXiv Fulltext PDF:/home/dferigo/Zotero/storage/S4R6CY99/Kingma and Ba - 2017 - Adam A Method for Stochastic Optimization.pdf:application/pdf;arXiv.org Snapshot:/home/dferigo/Zotero/storage/SPL9QAXB/1412.html:text/html}, +} + +@article{salvato_crossing_2021, + title = {Crossing the {Reality} {Gap}: {A} {Survey} on {Sim}-to-{Real} {Transferability} of {Robot} {Controllers} in {Reinforcement} {Learning}}, + volume = {9}, + issn = {2169-3536}, + shorttitle = {Crossing the {Reality} {Gap}}, + doi = {10.1109/ACCESS.2021.3126658}, + abstract = {The growing demand for robots able to act autonomously in complex scenarios has widely accelerated the introduction of Reinforcement Learning (RL) in robots control applications. However, the trial and error intrinsic nature of RL may result in long training time on real robots and, moreover, it may lead to dangerous outcomes. While simulators are useful tools to accelerate RL training and to ensure safety, they often are provided only with an approximated model of robot dynamics and of its interaction with the surrounding environment, thus resulting in what is called the reality gap (RG): a mismatch of simulated and real control-law performances caused by the inaccurate representation of the real environment in simulation. The most undesirable result occurs when the controller learnt in simulation fails the task on the real robot, thus resulting in an unsuccessful sim-to-real transfer. The goal of the present survey is threefold: (1) to identify the main approaches to face the RG problem in the context of robot control with RL, (2) to point out their shortcomings, and (3) to outline new potential research areas.}, + journal = {IEEE Access}, + author = {Salvato, Erica and Fenu, Gianfranco and Medvet, Eric and Pellegrino, Felice Andrea}, + year = {2021}, + note = {Conference Name: IEEE Access}, + keywords = {Faces, Process control, Reality gap, reinforcement learning, Reinforcement learning, Robot control, robotics, sim-to-real, Task analysis, Training}, + pages = {153171--153187}, + file = {IEEE Xplore Abstract Record:/home/dferigo/Zotero/storage/HC4H6JDQ/stamp.html:text/html;IEEE Xplore Full Text PDF:/home/dferigo/Zotero/storage/W7KM2P45/Salvato et al. - 2021 - Crossing the Reality Gap A Survey on Sim-to-Real .pdf:application/pdf}, +} + +@misc{bellegarda_robust_2021-1, + title = {Robust {Quadruped} {Jumping} via {Deep} {Reinforcement} {Learning}}, + url = {http://arxiv.org/abs/2011.07089}, + doi = {10.48550/arXiv.2011.07089}, + abstract = {In this paper we consider a general task of jumping varying distances and heights for a quadrupedal robot in noisy environments, such as off of uneven terrain and with variable robot dynamics parameters. To accurately jump in such conditions, we propose a framework using deep reinforcement learning to leverage the complex solution of nonlinear trajectory optimization for quadrupedal jumping. While the standalone optimization limits jumping to take-off from flat ground and requires accurate assumption of robot dynamics, our proposed approach improves the robustness to allow jumping off of significantly uneven terrain with variable robot dynamical parameters. Through our method, the quadruped is able to jump distances of up to 1 m and heights of up to 0.4 m, while being robust to environment noise of foot disturbances of up to 0.1 m in height as well as with 5\% variability of its body mass and inertia. This behavior is learned through just a few thousand simulated jumps in PyBullet, and we perform a sim-to-sim transfer to Gazebo. Video results can be found at https://youtu.be/jkzvL2o3g-s.}, + urldate = {2023-05-30}, + publisher = {arXiv}, + author = {Bellegarda, Guillaume and Nguyen, Quan}, + month = mar, + year = {2021}, + note = {arXiv:2011.07089 [cs, eess]}, + keywords = {Computer Science - Machine Learning, Computer Science - Robotics, Electrical Engineering and Systems Science - Systems and Control}, + file = {arXiv Fulltext PDF:/home/dferigo/Zotero/storage/NZQEVQ5U/Bellegarda and Nguyen - 2021 - Robust Quadruped Jumping via Deep Reinforcement Le.pdf:application/pdf;arXiv.org Snapshot:/home/dferigo/Zotero/storage/ZKZEFEYY/2011.html:text/html}, +} + +@inproceedings{du_auto-tuned_2021, + title = {Auto-{Tuned} {Sim}-to-{Real} {Transfer}}, + doi = {10.1109/ICRA48506.2021.9562091}, + abstract = {Policies trained in simulation often fail when transferred to the real world due to the ‘reality gap’ where the simulator is unable to accurately capture the dynamics and visual properties of the real world. Current approaches to tackle this problem, such as domain randomization, require prior knowledge and engineering to determine how much to randomize system parameters in order to learn a policy that is robust to sim-to-real transfer while also not being too conservative. We propose a method for automatically tuning simulator system parameters to match the real world using only raw RGB images of the real world without the need to define rewards or estimate state. Our key insight is to reframe the auto-tuning of parameters as a search problem where we iteratively shift the simulation system parameters to approach the real world system parameters. We propose a Search Param Model (SPM) that, given a sequence of observations and actions and a set of system parameters, predicts whether the given parameters are higher or lower than the true parameters used to generate the observations. We evaluate our method on multiple robotic control tasks in both sim-to-sim and sim-to-real transfer, demonstrating significant improvement over naive domain randomization. Project videos at https://yuqingd.github.io/autotuned-sim2real/.}, + booktitle = {2021 {IEEE} {International} {Conference} on {Robotics} and {Automation} ({ICRA})}, + author = {Du, Yuqing and Watkins, Olivia and Darrell, Trevor and Abbeel, Pieter and Pathak, Deepak}, + month = may, + year = {2021}, + note = {ISSN: 2577-087X}, + keywords = {Automation, Conferences, Knowledge engineering, Predictive models, Search problems, Task analysis, Visualization}, + pages = {1290--1296}, + file = {IEEE Xplore Abstract Record:/home/dferigo/Zotero/storage/SHA7TE7Y/stamp.html:text/html;Submitted Version:/home/dferigo/Zotero/storage/NNM4JVB8/Du et al. - 2021 - Auto-Tuned Sim-to-Real Transfer.pdf:application/pdf}, +} + +@article{muratore_robot_2022-1, + title = {Robot {Learning} {From} {Randomized} {Simulations}: {A} {Review}}, + volume = {9}, + issn = {2296-9144}, + shorttitle = {Robot {Learning} {From} {Randomized} {Simulations}}, + url = {https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9038844/}, + doi = {10.3389/frobt.2022.799893}, + abstract = {The rise of deep learning has caused a paradigm shift in robotics research, favoring methods that require large amounts of data. Unfortunately, it is prohibitively expensive to generate such data sets on a physical platform. Therefore, state-of-the-art approaches learn in simulation where data generation is fast as well as inexpensive and subsequently transfer the knowledge to the real robot (sim-to-real). Despite becoming increasingly realistic, all simulators are by construction based on models, hence inevitably imperfect. This raises the question of how simulators can be modified to facilitate learning robot control policies and overcome the mismatch between simulation and reality, often called the “reality gap.” We provide a comprehensive review of sim-to-real research for robotics, focusing on a technique named “domain randomization” which is a method for learning from randomized simulations.}, + urldate = {2023-05-30}, + journal = {Frontiers in Robotics and AI}, + author = {Muratore, Fabio and Ramos, Fabio and Turk, Greg and Yu, Wenhao and Gienger, Michael and Peters, Jan}, + month = apr, + year = {2022}, + pmid = {35494543}, + pmcid = {PMC9038844}, + pages = {799893}, + file = {PubMed Central Full Text PDF:/home/dferigo/Zotero/storage/74G2AAQN/Muratore et al. - 2022 - Robot Learning From Randomized Simulations A Revi.pdf:application/pdf}, +}