From 281da3ba93e5f452416094fe70049f935a91af8b Mon Sep 17 00:00:00 2001 From: Huowl Date: Mon, 13 Jan 2025 13:41:54 +0300 Subject: [PATCH] init --- jmoves/Dockerfile | 45 + jmoves/apps/article/create_reward_manager.py | 121 + .../apps/article/crerate_squat_trq_plots.py | 140 + jmoves/apps/article/history_mupti_open.py | 24 + .../apps/article/opitimize_preset2_multi.py | 73 + jmoves/apps/article/squat_from_history.py | 52 + jmoves/apps/article/traj_graph_setup.py | 87 + .../first_optimization_setup.ipynb | 424 +++ .../minitaur_optimization.ipynb | 267 ++ .../mechanism_optimizations/parallel_mech.png | Bin 0 -> 12772 bytes .../parallel_optimization.ipynb | 235 ++ .../mechanism_optimizations/trajectories.png | Bin 0 -> 20075 bytes .../main_branch_optimization.ipynb | 289 ++ .../two_link_only_main_branch/mesh/EE.stl | Bin 0 -> 536784 bytes .../two_link_only_main_branch/mesh/G.stl | Bin 0 -> 393384 bytes jmoves/apps/hybrid_loco.png | Bin 0 -> 118388 bytes jmoves/apps/kin_struct.png | Bin 0 -> 67608 bytes jmoves/apps/manipulator.png | Bin 0 -> 108103 bytes .../main_branch_analysis.ipynb | 339 ++ jmoves/apps/mechanism_analysis/mesh/EE.stl | Bin 0 -> 536784 bytes jmoves/apps/mechanism_analysis/mesh/G.stl | Bin 0 -> 393384 bytes .../one_mech_analysis.ipynb | 503 +++ jmoves/apps/optimization_analysis/mesh/EE.stl | Bin 0 -> 536784 bytes jmoves/apps/optimization_analysis/mesh/G.stl | Bin 0 -> 393384 bytes ...ctive_openloop_optimization_analysis.ipynb | 202 + .../optimization_analysis_two_rewards.ipynb | 575 +++ .../reward_vis/joint_reward_dependence.ipynb | 3264 +++++++++++++++++ jmoves/apps/reward_vis/surface_reward.ipynb | 212 ++ jmoves/apps/reward_vis/surface_reward.py | 137 + .../pareto_fronts.png | Bin 0 -> 71669 bytes .../set_two_rewards.ipynb | 186 + jmoves/apps/utils/topologies.png | Bin 0 -> 202256 bytes jmoves/apps/utils/trajectories.png | Bin 0 -> 28422 bytes .../utils/trajectory_setup_two_link.ipynb | 218 ++ .../apps/widjetdemo/create_reward_manager.py | 34 + jmoves/apps/widjetdemo/criteria_calculator.py | 0 jmoves/apps/widjetdemo/loading.gif | Bin 0 -> 97512 bytes .../widjetdemo/mechanical-wolf-running.gif | Bin 0 -> 453213 bytes jmoves/apps/widjetdemo/mesh/EE.stl | Bin 0 -> 536784 bytes jmoves/apps/widjetdemo/mesh/G.stl | Bin 0 -> 393384 bytes jmoves/apps/widjetdemo/mesh/L3.stl | Bin 0 -> 16084 bytes jmoves/apps/widjetdemo/mesh/L4.stl | Bin 0 -> 22684 bytes jmoves/apps/widjetdemo/mesh/L5.stl | Bin 0 -> 78084 bytes jmoves/apps/widjetdemo/mesh/L6.stl | Bin 0 -> 23084 bytes jmoves/apps/widjetdemo/mesh/L7.stl | Bin 0 -> 29784 bytes jmoves/apps/widjetdemo/mesh/L8.stl | Bin 0 -> 39384 bytes .../streamlit_widgets/.streamlit/config.toml | 2 + .../streamlit_widgets/forward_init.py | 62 + .../reward_descriptions/det_mass_matrix.py | 25 + .../reward_descriptions/imf_z.py | 28 + .../reward_descriptions/index_movmnets.py | 13 + .../reward_descriptions/manipulabilty.py | 25 + .../reward_descriptions/manipulabilty_traj.py | 13 + .../reward_descriptions/md_rawards.py | 234 ++ .../reward_descriptions/mean_payload.py | 31 + .../reward_descriptions/min_effort.py | 21 + .../reward_descriptions/min_manipulabilty.py | 16 + .../reward_descriptions/min_payload.py | 252 ++ .../reward_descriptions/min_potentinal_acc.py | 15 + .../potentinal_acc_traj.py | 25 + .../reward_descriptions/z_reduction_ration.py | 25 + .../apps/widjetdemo/streamlit_widgets/run.py | 49 + .../streamlit_widgets/streamlit_forward_v2.py | 415 +++ .../streamlit_widgets/streamlit_forward_v3.py | 397 ++ .../streamlit_widgets/streamlit_inverse.py | 734 ++++ .../streamlit_optimization_v2.py | 767 ++++ .../streamlit_widget_auxiliary.py | 89 + .../streamlit_widgets/trajectory_widget.py | 75 + .../streamlit_widgets/widget_html_tricks.py | 14 + .../widjetdemo/suspension_optimization.ipynb | 827 +++++ .../suspension_optimization_FIXED.ipynb | 920 +++++ .../suspension_optimization_deploy.ipynb | 847 +++++ ...suspension_optimization_one_port_ver.ipynb | 832 +++++ .../suspension_optimization_reset.ipynb | 830 +++++ jmoves/apps/widjetdemo/traj_graph_setup.py | 64 + jmoves/apps/widjetdemo/work_space_finder.py | 107 + .../widjetdemo/workspace_finder_opener.py | 48 + .../auto_robot_design/control/model_based.py | 227 ++ .../control/trajectory_planning.py | 142 + .../description/actuators.py | 256 ++ .../auto_robot_design/description/builder.py | 1480 ++++++++ .../description/kinematics.py | 405 ++ .../description/mechanism.py | 502 +++ .../description/mesh_builder/mesh_builder.py | 247 ++ .../description/mesh_builder/urdf_creater.py | 740 ++++ .../description/mesh_creater.py | 69 + jmoves/auto_robot_design/description/utils.py | 458 +++ .../generator_functions.py | 355 ++ .../respawn_algorithm/links_groups.py | 93 + .../respawn_algorithm/respawn_algorithm.py | 424 +++ .../three_link_generator.py | 398 ++ .../two_link_generator.py | 330 ++ .../restricted_generator/utilities.py | 22 + .../generator/topologies/bounds_preset.py | 200 + .../generator/topologies/graph_manager_2l.py | 713 ++++ .../user_generator/first_connection_three.png | Bin 0 -> 23667 bytes .../user_generator/graph_generator.py | 366 ++ .../generator/user_generator/main_three.png | Bin 0 -> 11811 bytes .../second_connection_three.png | Bin 0 -> 24720 bytes .../motion_planning/bfs_ws.py | 447 +++ .../motion_planning/dataset_generator.py | 470 +++ .../motion_planning/dataset_handler.py | 81 + .../motion_planning/ik_calculator.py | 432 +++ .../motion_planning/many_dataset_api.py | 263 ++ .../motion_planning/trajectory_ik_manager.py | 116 + .../motion_planning/utils.py | 219 ++ .../auto_robot_design/optimization/analyze.py | 66 + .../optimization/optimizer.py | 42 + .../optimization/problems.py | 334 ++ .../optimization/rewards/inertia_rewards.py | 154 + .../rewards/jacobian_and_inertia_rewards.py | 267 ++ .../rewards/pure_jacobian_rewards.py | 363 ++ .../optimization/rewards/reward_base.py | 395 ++ .../auto_robot_design/optimization/saver.py | 66 + .../optimization/test_criteria.py | 22 + .../optimization/visualizer.py | 68 + .../pino_adapter/pino_adapter.py | 25 + jmoves/auto_robot_design/pinokla/__init__.py | 0 .../pinokla/actuation_model.py | 102 + .../pinokla/analyze_squat_history.py | 447 +++ .../pinokla/calc_criterion.py | 628 ++++ .../pinokla/closed_loop_jacobian.py | 355 ++ .../pinokla/closed_loop_kinematics.py | 475 +++ .../pinokla/criterion_agregator.py | 134 + .../pinokla/criterion_math.py | 156 + .../auto_robot_design/pinokla/default_traj.py | 107 + .../pinokla/differtial_inverse_kinematics.py | 551 +++ .../auto_robot_design/pinokla/loader_tools.py | 624 ++++ .../auto_robot_design/pinokla/robot_utils.py | 372 ++ jmoves/auto_robot_design/pinokla/squat.py | 456 +++ .../simulation/evaluation.py | 123 + .../simulation/trajectory_movments.py | 341 ++ .../user_interface/check_in_ellips.py | 171 + .../auto_robot_design/utils/append_saver.py | 43 + jmoves/auto_robot_design/utils/bruteforce.py | 11 + jmoves/auto_robot_design/utils/configs.py | 380 ++ jmoves/auto_robot_design/utils/geom.py | 51 + .../utils/meshcat_vizualizer/vizualizer.py | 86 + .../utils/reward_calculator.py | 21 + .../vizualization/meshcat_utils.py | 18 + jmoves/environment_jmoves.yml | 26 + .../one_mech_from_relative_generator.ipynb | 645 ++++ .../optimization_pipeline_2l.ipynb | 428 +++ .../paramatrized_builder.py | 45 + .../tutorial_1_builder.ipynb | 925 +++++ jmoves/presets/MIT_preset.py | 26 + jmoves/setup.cfg | 5 + jmoves/setup.py | 7 + 148 files changed, 34245 insertions(+) create mode 100644 jmoves/Dockerfile create mode 100644 jmoves/apps/article/create_reward_manager.py create mode 100644 jmoves/apps/article/crerate_squat_trq_plots.py create mode 100644 jmoves/apps/article/history_mupti_open.py create mode 100644 jmoves/apps/article/opitimize_preset2_multi.py create mode 100644 jmoves/apps/article/squat_from_history.py create mode 100644 jmoves/apps/article/traj_graph_setup.py create mode 100644 jmoves/apps/experiments/all_topologies_acc_hl_six_trajectories/first_optimization_setup.ipynb create mode 100644 jmoves/apps/experiments/mechanism_optimizations/minitaur_optimization.ipynb create mode 100644 jmoves/apps/experiments/mechanism_optimizations/parallel_mech.png create mode 100644 jmoves/apps/experiments/mechanism_optimizations/parallel_optimization.ipynb create mode 100644 jmoves/apps/experiments/mechanism_optimizations/trajectories.png create mode 100644 jmoves/apps/experiments/two_link_only_main_branch/main_branch_optimization.ipynb create mode 100644 jmoves/apps/experiments/two_link_only_main_branch/mesh/EE.stl create mode 100644 jmoves/apps/experiments/two_link_only_main_branch/mesh/G.stl create mode 100644 jmoves/apps/hybrid_loco.png create mode 100644 jmoves/apps/kin_struct.png create mode 100644 jmoves/apps/manipulator.png create mode 100644 jmoves/apps/mechanism_analysis/main_branch_analysis.ipynb create mode 100644 jmoves/apps/mechanism_analysis/mesh/EE.stl create mode 100644 jmoves/apps/mechanism_analysis/mesh/G.stl create mode 100644 jmoves/apps/mechanism_analysis/one_mech_analysis.ipynb create mode 100644 jmoves/apps/optimization_analysis/mesh/EE.stl create mode 100644 jmoves/apps/optimization_analysis/mesh/G.stl create mode 100644 jmoves/apps/optimization_analysis/multiobjective_openloop_optimization_analysis.ipynb create mode 100644 jmoves/apps/optimization_analysis/optimization_analysis_two_rewards.ipynb create mode 100644 jmoves/apps/reward_vis/joint_reward_dependence.ipynb create mode 100644 jmoves/apps/reward_vis/surface_reward.ipynb create mode 100644 jmoves/apps/reward_vis/surface_reward.py create mode 100644 jmoves/apps/set_of_experiments_analysis/pareto_fronts.png create mode 100644 jmoves/apps/set_of_experiments_analysis/set_two_rewards.ipynb create mode 100644 jmoves/apps/utils/topologies.png create mode 100644 jmoves/apps/utils/trajectories.png create mode 100644 jmoves/apps/utils/trajectory_setup_two_link.ipynb create mode 100644 jmoves/apps/widjetdemo/create_reward_manager.py create mode 100644 jmoves/apps/widjetdemo/criteria_calculator.py create mode 100644 jmoves/apps/widjetdemo/loading.gif create mode 100644 jmoves/apps/widjetdemo/mechanical-wolf-running.gif create mode 100644 jmoves/apps/widjetdemo/mesh/EE.stl create mode 100644 jmoves/apps/widjetdemo/mesh/G.stl create mode 100644 jmoves/apps/widjetdemo/mesh/L3.stl create mode 100644 jmoves/apps/widjetdemo/mesh/L4.stl create mode 100644 jmoves/apps/widjetdemo/mesh/L5.stl create mode 100644 jmoves/apps/widjetdemo/mesh/L6.stl create mode 100644 jmoves/apps/widjetdemo/mesh/L7.stl create mode 100644 jmoves/apps/widjetdemo/mesh/L8.stl create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/.streamlit/config.toml create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/forward_init.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/det_mass_matrix.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/imf_z.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/index_movmnets.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/manipulabilty.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/manipulabilty_traj.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/md_rawards.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/mean_payload.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_effort.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_manipulabilty.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_payload.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_potentinal_acc.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/potentinal_acc_traj.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/z_reduction_ration.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/run.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/streamlit_forward_v2.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/streamlit_forward_v3.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/streamlit_inverse.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/streamlit_optimization_v2.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/streamlit_widget_auxiliary.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/trajectory_widget.py create mode 100644 jmoves/apps/widjetdemo/streamlit_widgets/widget_html_tricks.py create mode 100644 jmoves/apps/widjetdemo/suspension_optimization.ipynb create mode 100644 jmoves/apps/widjetdemo/suspension_optimization_FIXED.ipynb create mode 100644 jmoves/apps/widjetdemo/suspension_optimization_deploy.ipynb create mode 100644 jmoves/apps/widjetdemo/suspension_optimization_one_port_ver.ipynb create mode 100644 jmoves/apps/widjetdemo/suspension_optimization_reset.ipynb create mode 100644 jmoves/apps/widjetdemo/traj_graph_setup.py create mode 100644 jmoves/apps/widjetdemo/work_space_finder.py create mode 100644 jmoves/apps/widjetdemo/workspace_finder_opener.py create mode 100644 jmoves/auto_robot_design/control/model_based.py create mode 100644 jmoves/auto_robot_design/control/trajectory_planning.py create mode 100644 jmoves/auto_robot_design/description/actuators.py create mode 100644 jmoves/auto_robot_design/description/builder.py create mode 100644 jmoves/auto_robot_design/description/kinematics.py create mode 100644 jmoves/auto_robot_design/description/mechanism.py create mode 100644 jmoves/auto_robot_design/description/mesh_builder/mesh_builder.py create mode 100644 jmoves/auto_robot_design/description/mesh_builder/urdf_creater.py create mode 100644 jmoves/auto_robot_design/description/mesh_creater.py create mode 100644 jmoves/auto_robot_design/description/utils.py create mode 100644 jmoves/auto_robot_design/generator/random_graph_generator/generator_functions.py create mode 100644 jmoves/auto_robot_design/generator/respawn_algorithm/links_groups.py create mode 100644 jmoves/auto_robot_design/generator/respawn_algorithm/respawn_algorithm.py create mode 100644 jmoves/auto_robot_design/generator/restricted_generator/three_link_generator.py create mode 100644 jmoves/auto_robot_design/generator/restricted_generator/two_link_generator.py create mode 100644 jmoves/auto_robot_design/generator/restricted_generator/utilities.py create mode 100644 jmoves/auto_robot_design/generator/topologies/bounds_preset.py create mode 100644 jmoves/auto_robot_design/generator/topologies/graph_manager_2l.py create mode 100644 jmoves/auto_robot_design/generator/user_generator/first_connection_three.png create mode 100644 jmoves/auto_robot_design/generator/user_generator/graph_generator.py create mode 100644 jmoves/auto_robot_design/generator/user_generator/main_three.png create mode 100644 jmoves/auto_robot_design/generator/user_generator/second_connection_three.png create mode 100644 jmoves/auto_robot_design/motion_planning/bfs_ws.py create mode 100644 jmoves/auto_robot_design/motion_planning/dataset_generator.py create mode 100644 jmoves/auto_robot_design/motion_planning/dataset_handler.py create mode 100644 jmoves/auto_robot_design/motion_planning/ik_calculator.py create mode 100644 jmoves/auto_robot_design/motion_planning/many_dataset_api.py create mode 100644 jmoves/auto_robot_design/motion_planning/trajectory_ik_manager.py create mode 100644 jmoves/auto_robot_design/motion_planning/utils.py create mode 100644 jmoves/auto_robot_design/optimization/analyze.py create mode 100644 jmoves/auto_robot_design/optimization/optimizer.py create mode 100644 jmoves/auto_robot_design/optimization/problems.py create mode 100644 jmoves/auto_robot_design/optimization/rewards/inertia_rewards.py create mode 100644 jmoves/auto_robot_design/optimization/rewards/jacobian_and_inertia_rewards.py create mode 100644 jmoves/auto_robot_design/optimization/rewards/pure_jacobian_rewards.py create mode 100644 jmoves/auto_robot_design/optimization/rewards/reward_base.py create mode 100644 jmoves/auto_robot_design/optimization/saver.py create mode 100644 jmoves/auto_robot_design/optimization/test_criteria.py create mode 100644 jmoves/auto_robot_design/optimization/visualizer.py create mode 100644 jmoves/auto_robot_design/pino_adapter/pino_adapter.py create mode 100644 jmoves/auto_robot_design/pinokla/__init__.py create mode 100644 jmoves/auto_robot_design/pinokla/actuation_model.py create mode 100644 jmoves/auto_robot_design/pinokla/analyze_squat_history.py create mode 100644 jmoves/auto_robot_design/pinokla/calc_criterion.py create mode 100644 jmoves/auto_robot_design/pinokla/closed_loop_jacobian.py create mode 100644 jmoves/auto_robot_design/pinokla/closed_loop_kinematics.py create mode 100644 jmoves/auto_robot_design/pinokla/criterion_agregator.py create mode 100644 jmoves/auto_robot_design/pinokla/criterion_math.py create mode 100644 jmoves/auto_robot_design/pinokla/default_traj.py create mode 100644 jmoves/auto_robot_design/pinokla/differtial_inverse_kinematics.py create mode 100644 jmoves/auto_robot_design/pinokla/loader_tools.py create mode 100644 jmoves/auto_robot_design/pinokla/robot_utils.py create mode 100644 jmoves/auto_robot_design/pinokla/squat.py create mode 100644 jmoves/auto_robot_design/simulation/evaluation.py create mode 100644 jmoves/auto_robot_design/simulation/trajectory_movments.py create mode 100644 jmoves/auto_robot_design/user_interface/check_in_ellips.py create mode 100644 jmoves/auto_robot_design/utils/append_saver.py create mode 100644 jmoves/auto_robot_design/utils/bruteforce.py create mode 100644 jmoves/auto_robot_design/utils/configs.py create mode 100644 jmoves/auto_robot_design/utils/geom.py create mode 100644 jmoves/auto_robot_design/utils/meshcat_vizualizer/vizualizer.py create mode 100644 jmoves/auto_robot_design/utils/reward_calculator.py create mode 100644 jmoves/auto_robot_design/vizualization/meshcat_utils.py create mode 100644 jmoves/environment_jmoves.yml create mode 100644 jmoves/examples_and_tutorials/one_mech_from_relative_generator.ipynb create mode 100644 jmoves/examples_and_tutorials/optimization_pipeline_2l.ipynb create mode 100755 jmoves/examples_and_tutorials/paramatrized_builder.py create mode 100644 jmoves/examples_and_tutorials/tutorial_1_builder.ipynb create mode 100644 jmoves/presets/MIT_preset.py create mode 100644 jmoves/setup.cfg create mode 100644 jmoves/setup.py diff --git a/jmoves/Dockerfile b/jmoves/Dockerfile new file mode 100644 index 00000000..129bc6d3 --- /dev/null +++ b/jmoves/Dockerfile @@ -0,0 +1,45 @@ +FROM ubuntu:22.04 + +RUN apt-get update + +# Install base utilities +RUN apt-get update && \ + apt-get install -y wget git && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists/* + +# Install miniconda +ENV CONDA_DIR /opt/conda +RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \ + /bin/bash ~/miniconda.sh -b -p /opt/conda + + +# Put conda in path so we can use conda activate +RUN useradd -m jovyan + +ENV PATH=$CONDA_DIR/bin:$PATH +COPY environment_jmoves.yml . + +# RUN conda env create -f environment_jmoves.yml +RUN conda env update -n base --file environment_jmoves.yml +RUN conda init + +SHELL ["conda", "run", "-n", "base", "/bin/bash", "-c"] + +# Install jupiter stuff +RUN conda run -n base pip install jupyter notebook voila +RUN conda run -n base jupyter server extension enable voila --sys-prefix --enable_nbextensions=True + +# Install our package +WORKDIR /home/jovyan + +COPY . ./jmoves_env +RUN conda run -n base pip install -e ./jmoves_env +RUN conda run -n base pip install ./jmoves_env/meshcat-0.3.2.tar.gz + + +USER jovyan +ENV PATH=$CONDA_DIR/bin:$PATH +RUN conda init + +CMD ["/bin/bash", "-c", "if [ -d /usr/local/bin/before-notebook.d ]; then for file in /usr/local/bin/before-notebook.d/*; do $file ; done; fi && jupyter notebook --no-browser --NotebookApp.allow_origin='*' --NotebookApp.token='' --ip=0.0.0.0 --NotebookApp.allow_remote_access=True"] \ No newline at end of file diff --git a/jmoves/apps/article/create_reward_manager.py b/jmoves/apps/article/create_reward_manager.py new file mode 100644 index 00000000..acfb7443 --- /dev/null +++ b/jmoves/apps/article/create_reward_manager.py @@ -0,0 +1,121 @@ +import multiprocessing +from networkx import Graph +import numpy as np +import matplotlib.pyplot as plt + +from pymoo.algorithms.soo.nonconvex.pso import PSO +from pymoo.core.problem import StarmapParallelization +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains + +from auto_robot_design.optimization.saver import ( + ProblemSaver, ) +from auto_robot_design.description.builder import jps_graph2pinocchio_robot +from auto_robot_design.description.utils import draw_joint_point +from auto_robot_design.optimization.problems import CalculateCriteriaProblemByWeigths, get_optimizing_joints +from auto_robot_design.optimization.optimizer import PymooOptimizer +from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.pinokla.criterion_math import ImfProjections +from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_horizontal_trajectory, get_simple_spline, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory +from auto_robot_design.optimization.rewards.reward_base import PositioningReward, PositioningConstrain, PositioningErrorCalculator, RewardManager +from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability +from auto_robot_design.optimization.rewards.pure_jacobian_rewards import EndPointZRRReward, VelocityReward, ForceEllipsoidReward +from auto_robot_design.optimization.rewards.inertia_rewards import MassReward +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT + + +def get_manager_preset_2_stair_climber(graph: Graph, optimizing_joints: dict, workspace_traj: np.ndarray, step_trajs: list[np.ndarray], squat_trajs: list[np.ndarray]): + dict_trajectory_criteria = { + "MASS": NeutralPoseMass() + } + # criteria calculated for each point on the trajectory + dict_point_criteria = { + "Effective_Inertia": EffectiveInertiaCompute(), + "Actuated_Mass": ActuatedMass(), + "Manip_Jacobian": ManipJacobian(MovmentSurface.XZ) + } + + crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria) + error_calculator = PositioningErrorCalculator( + error_key='error', jacobian_key="Manip_Jacobian") + soft_constrain = PositioningConstrain( + error_calculator=error_calculator, points=[workspace_traj]) + reward_manager = RewardManager(crag=crag) + reward_manager.add_trajectory_aggregator + acceleration_capability = MinAccelerationCapability(manipulability_key='Manip_Jacobian', + trajectory_key="traj_6d", error_key="error", actuated_mass_key="Actuated_Mass") + + heavy_lifting = HeavyLiftingReward( + manipulability_key='Manip_Jacobian', trajectory_key="traj_6d", error_key="error", mass_key="MASS") + # reward_manager.agg_list = + reward_manager.add_trajectory(step_trajs[0], 0) + reward_manager.add_trajectory(step_trajs[1], 1) + reward_manager.add_trajectory(step_trajs[2], 2) + + reward_manager.add_trajectory(squat_trajs[0], 10) + reward_manager.add_trajectory(squat_trajs[1], 11) + reward_manager.add_trajectory(squat_trajs[2], 12) + + reward_manager.add_reward(acceleration_capability, 0, weight=1) + reward_manager.add_reward(acceleration_capability, 1, weight=1) + reward_manager.add_reward(acceleration_capability, 2, weight=1) + + reward_manager.add_reward(heavy_lifting, 10, weight=1) + reward_manager.add_reward(heavy_lifting, 11, weight=1) + reward_manager.add_reward(heavy_lifting, 12, weight=1) + + reward_manager.add_trajectory_aggregator([0, 1, 2], 'mean') + reward_manager.add_trajectory_aggregator([10, 11, 12], 'mean') + + reward_manager.close_trajectories() + + return reward_manager, crag, soft_constrain + + + +def get_manager_preset_2_stair_single(graph: Graph, optimizing_joints: dict, workspace_traj: np.ndarray, step_trajs: list[np.ndarray], squat_trajs: list[np.ndarray]): + dict_trajectory_criteria = { + "MASS": NeutralPoseMass() + } + # criteria calculated for each point on the trajectory + dict_point_criteria = { + "Effective_Inertia": EffectiveInertiaCompute(), + "Actuated_Mass": ActuatedMass(), + "Manip_Jacobian": ManipJacobian(MovmentSurface.XZ) + } + + crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria) + error_calculator = PositioningErrorCalculator( + error_key='error', jacobian_key="Manip_Jacobian") + soft_constrain = PositioningConstrain( + error_calculator=error_calculator, points=[workspace_traj]) + reward_manager = RewardManager(crag=crag) + reward_manager.add_trajectory_aggregator + acceleration_capability = MinAccelerationCapability(manipulability_key='Manip_Jacobian', + trajectory_key="traj_6d", error_key="error", actuated_mass_key="Actuated_Mass") + + heavy_lifting = HeavyLiftingReward( + manipulability_key='Manip_Jacobian', trajectory_key="traj_6d", error_key="error", mass_key="MASS") + # reward_manager.agg_list = + reward_manager.add_trajectory(step_trajs[0], 0) + reward_manager.add_trajectory(step_trajs[1], 1) + reward_manager.add_trajectory(step_trajs[2], 2) + + reward_manager.add_trajectory(squat_trajs[0], 10) + reward_manager.add_trajectory(squat_trajs[1], 11) + reward_manager.add_trajectory(squat_trajs[2], 12) + + reward_manager.add_reward(acceleration_capability, 0, weight=1) + reward_manager.add_reward(acceleration_capability, 1, weight=1) + reward_manager.add_reward(acceleration_capability, 2, weight=1) + + reward_manager.add_reward(heavy_lifting, 10, weight=1) + reward_manager.add_reward(heavy_lifting, 11, weight=1) + reward_manager.add_reward(heavy_lifting, 12, weight=1) + + reward_manager.add_trajectory_aggregator([0, 1, 2], 'mean') + reward_manager.add_trajectory_aggregator([10, 11, 12], 'mean') + + reward_manager.close_trajectories() + + return reward_manager, crag, soft_constrain diff --git a/jmoves/apps/article/crerate_squat_trq_plots.py b/jmoves/apps/article/crerate_squat_trq_plots.py new file mode 100644 index 00000000..45a63e27 --- /dev/null +++ b/jmoves/apps/article/crerate_squat_trq_plots.py @@ -0,0 +1,140 @@ +from auto_robot_design.pinokla.criterion_agregator import load_criterion_traj +import multiprocessing +from networkx import Graph +import numpy as np +import matplotlib.pyplot as plt + +from pymoo.algorithms.soo.nonconvex.pso import PSO +from pymoo.core.problem import StarmapParallelization +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains + +from auto_robot_design.optimization.saver import ( + ProblemSaver, ) +from auto_robot_design.description.builder import jps_graph2pinocchio_robot +from auto_robot_design.description.utils import draw_joint_point +from auto_robot_design.optimization.problems import CalculateCriteriaProblemByWeigths, CalculateMultiCriteriaProblem, get_optimizing_joints +from auto_robot_design.optimization.optimizer import PymooOptimizer +from auto_robot_design.pinokla.analyze_squat_history import get_sample_torque_traj_from_sample_multi +from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.pinokla.criterion_math import ImfProjections +from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_horizontal_trajectory, get_simple_spline, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory +from auto_robot_design.optimization.rewards.reward_base import PositioningReward, PositioningConstrain, PositioningErrorCalculator, RewardManager +from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability +from auto_robot_design.optimization.rewards.pure_jacobian_rewards import EndPointZRRReward, VelocityReward, ForceEllipsoidReward +from auto_robot_design.optimization.rewards.inertia_rewards import MassReward +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT +from auto_robot_design.description.builder import DetailedURDFCreatorFixedEE, ParametrizedBuilder, jps_graph2urdf_by_bulder +import numpy as np + +import matplotlib.pyplot as plt + +from auto_robot_design.description.actuators import t_motor_actuators + +from auto_robot_design.description.utils import ( + all_combinations_active_joints_n_actuator, ) + +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator +from auto_robot_design.pinokla.squat import SquatHopParameters, SimulateSquatHop +from auto_robot_design.optimization.analyze import get_optimizer_and_problem, get_pareto_sample_linspace, get_pareto_sample_histogram, get_urdf_from_problem +from pathlib import Path + + +def get_all_files_in_dir(directory): + try: + # Create a Path object for the directory + path = Path(directory) + + # Use the glob method to match all files in the directory + files = [str(file) for file in path.glob('*') if file.is_file()] + + return files + except Exception as e: + print(f"An error occurred: {e}") + return [] + + +def get_metrics(loaded_dict: dict): + trq_1 = loaded_dict["tau"][:, 0] + trq_2 = loaded_dict["tau"][:, 1] + max_1 = np.max(np.abs(trq_1)) + max_2 = np.max(np.abs(trq_2)) + + agr_max = max([max_1, max_2]) + + mean_1 = np.mean(np.abs(trq_1)) + mean_2 = np.mean(np.abs(trq_2)) + + agr_mean = mean_1 + mean_2 + + max_diff_1 = np.max(np.abs(np.diff(trq_1))) + max_diff_2 = np.max(np.abs(np.diff(trq_2))) + + agr_diff = max([max_diff_1, max_diff_2]) + return agr_mean, agr_max, agr_diff, loaded_dict["Reward"], loaded_dict["X"] + + +def get_all_vector_metrics(directory): + sim_res_files = get_all_files_in_dir(directory) + sim_res = list(map(load_criterion_traj, sim_res_files)) + agr_mean_list = [] + agr_max_list = [] + agr_diff_list = [] + reword_list = [] + param_x_list = [] + for sim_res_i in sim_res: + agr_mean, agr_max, agr_diff, reword, param_x = get_metrics(sim_res_i) + agr_mean_list.append(agr_mean) + agr_max_list.append(agr_max) + agr_diff_list.append(agr_diff) + reword_list.append(reword) + param_x_list.append(param_x) + return agr_mean_list, agr_max_list, agr_diff_list, reword_list, param_x_list + + +PATH_CS = "results\\multi_opti_preset2\\topology_8_2024-05-30_10-40-12\\squat_compare" +agr_mean_list, agr_max_list, agr_diff_list, reword_list, param_x_list = get_all_vector_metrics( + PATH_CS) +save_p = Path(PATH_CS + "/" + "plots" + "/") +save_p.mkdir(parents=True, exist_ok=True) + +plt.figure() +plt.scatter(np.array(reword_list)[:, 0], np.array( + reword_list)[:, 1], c=agr_mean_list, cmap="rainbow") +plt.colorbar() +plt.title("Mean torque in squat_sim on Pareto front") +plt.xlabel("ACC Capability") +plt.ylabel("HeavyLifting") + +save_current1 = save_p / "Mean_torque_in_squat_sim_on_Pareto_front.svg" +save_current2 = save_p / "Mean_torque_in_squat_sim_on_Pareto_front.png" +plt.savefig(save_current1) +plt.savefig(save_current2) + +plt.figure() +plt.scatter(np.array(reword_list)[:, 0], np.array( + reword_list)[:, 1], c=agr_max_list, cmap="rainbow") +plt.colorbar() +plt.title("Max torque in squat_sim on Pareto front") +plt.xlabel("ACC Capability") +plt.ylabel("HeavyLifting") + +save_current1 = save_p / "Max_torque_in_squat_sim_on_Pareto_front.svg" +save_current2 = save_p / "Max_torque_in_squat_sim_on_Pareto_front.png" +plt.savefig(save_current1) +plt.savefig(save_current2) + + +plt.figure() +plt.scatter(np.array(reword_list)[:, 0], np.array( + reword_list)[:, 1], c=agr_diff_list, cmap="rainbow") +plt.colorbar() +plt.title("Max torque diff in squat_sim on Pareto front") +plt.xlabel("ACC Capability") +plt.ylabel("HeavyLifting") +plt.savefig("Max torque diff in squat_sim on Pareto front") +save_current1 = save_p / "Max_torque_diff_in_squat_sim_on_Pareto_front.svg" +save_current2 = save_p / "Max_torque_diff_in_squat_sim_on_Pareto_front.png" +plt.savefig(save_current1) +plt.savefig(save_current2) +plt.show() diff --git a/jmoves/apps/article/history_mupti_open.py b/jmoves/apps/article/history_mupti_open.py new file mode 100644 index 00000000..82f75f14 --- /dev/null +++ b/jmoves/apps/article/history_mupti_open.py @@ -0,0 +1,24 @@ +from pathlib import Path +import matplotlib.pyplot as plt +import numpy as np +import matplotlib.pyplot as plt +from auto_robot_design.optimization.analyze import get_optimizer_and_problem, get_pareto_sample_linspace, get_pareto_sample_histogram + +optimizer, problem, res = get_optimizer_and_problem( + "results\\multi_opti_preset2\\topology_0_2024-05-29_18-48-58") +sample_x, sample_F = get_pareto_sample_linspace(res, 10) +sample_x2, sample_F2 = get_pareto_sample_histogram(res, 10) + + + +save_p = Path(str(PATH_CS) + "/" + "plots") +save_p.mkdir(parents=True, exist_ok=True) + +history_mean = np.array(optimizer.history["Mean"]) + +plt.figure() + +plt.figure() +plt.scatter(sample_F2[:, 0], sample_F2[:, 1]) +plt.title("from res2") +plt.show() diff --git a/jmoves/apps/article/opitimize_preset2_multi.py b/jmoves/apps/article/opitimize_preset2_multi.py new file mode 100644 index 00000000..ccbc84bc --- /dev/null +++ b/jmoves/apps/article/opitimize_preset2_multi.py @@ -0,0 +1,73 @@ +import multiprocessing +import time +import numpy as np +import matplotlib.pyplot as plt + +from pymoo.algorithms.soo.nonconvex.pso import PSO +from pymoo.core.problem import StarmapParallelization +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains + +from auto_robot_design.optimization.saver import ( + ProblemSaver, ) +from auto_robot_design.description.builder import jps_graph2pinocchio_robot +from auto_robot_design.description.utils import draw_joint_point +from auto_robot_design.optimization.problems import CalculateCriteriaProblemByWeigths, CalculateMultiCriteriaProblem, get_optimizing_joints +from auto_robot_design.optimization.optimizer import PymooOptimizer +from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.pinokla.criterion_math import ImfProjections +from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_simple_spline, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory +from auto_robot_design.optimization.rewards.reward_base import PositioningReward, PositioningConstrain, PositioningErrorCalculator, RewardManager +from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability +from auto_robot_design.optimization.rewards.pure_jacobian_rewards import EndPointZRRReward, VelocityReward, ForceEllipsoidReward +from auto_robot_design.optimization.rewards.inertia_rewards import MassReward +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT +from apps.article import create_reward_manager +from apps.article import traj_graph_setup +from pymoo.algorithms.moo.age2 import AGEMOEA2 + + +def run_one_optic_topology(topology_num): + + POP_SIZE = 32 + GEN_SIZE = 90 + N_PROCESS = 4 + + graph, optimizing_joints, constrain_dict, builder, step_trajs, squat_trajs, workspace_trajectory = traj_graph_setup.get_graph_and_traj( + topology_num) + reward_manager, crag, soft_constrain = create_reward_manager.get_manager_preset_2_stair_climber( + graph, optimizing_joints, workspace_traj=workspace_trajectory, step_trajs=step_trajs, squat_trajs=squat_trajs) + + pool = multiprocessing.Pool(N_PROCESS) + runner = StarmapParallelization(pool.starmap) + + actuator = MIT_CHEETAH_PARAMS_DICT["actuator"] + problem = CalculateMultiCriteriaProblem(graph, builder=builder, + jp2limits=optimizing_joints, + crag=crag, + soft_constrain=soft_constrain, + rewards_and_trajectories=reward_manager, + runner=runner, + Actuator=actuator) + + saver = ProblemSaver( + problem, "multi_opti_preset2\\topology_"+str(topology_num), True) + saver.save_nonmutable() + + algorithm = AGEMOEA2(pop_size=POP_SIZE, save_history=True) + optimizer = PymooOptimizer(problem, algorithm, saver) + start = time.time() + res = optimizer.run( + True, **{ + "seed": 5, + "termination": ("n_gen", GEN_SIZE), + "verbose": True + }) + elap = (time.time() - start) / 60 + print(f"Proshlo: {elap} minutes") + + +if __name__ == '__main__': + run_one_optic_topology(8) + # except: + # print(f"Fall optimization topology {i}") \ No newline at end of file diff --git a/jmoves/apps/article/squat_from_history.py b/jmoves/apps/article/squat_from_history.py new file mode 100644 index 00000000..18b9efae --- /dev/null +++ b/jmoves/apps/article/squat_from_history.py @@ -0,0 +1,52 @@ +import multiprocessing +from networkx import Graph +import numpy as np +import matplotlib.pyplot as plt + +from pymoo.algorithms.soo.nonconvex.pso import PSO +from pymoo.core.problem import StarmapParallelization +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains + +from auto_robot_design.optimization.saver import ( + ProblemSaver, ) +from auto_robot_design.description.builder import jps_graph2pinocchio_robot +from auto_robot_design.description.utils import draw_joint_point +from auto_robot_design.optimization.problems import CalculateCriteriaProblemByWeigths, CalculateMultiCriteriaProblem, get_optimizing_joints +from auto_robot_design.optimization.optimizer import PymooOptimizer +from auto_robot_design.pinokla.analyze_squat_history import get_sample_torque_traj_from_sample_multi +from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.pinokla.criterion_math import ImfProjections +from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_horizontal_trajectory, get_simple_spline, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory +from auto_robot_design.optimization.rewards.reward_base import PositioningReward, PositioningConstrain, PositioningErrorCalculator, RewardManager +from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability +from auto_robot_design.optimization.rewards.pure_jacobian_rewards import EndPointZRRReward, VelocityReward, ForceEllipsoidReward +from auto_robot_design.optimization.rewards.inertia_rewards import MassReward +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT +from auto_robot_design.description.builder import DetailedURDFCreatorFixedEE, ParametrizedBuilder, jps_graph2urdf_by_bulder +import numpy as np + +import matplotlib.pyplot as plt + +from auto_robot_design.description.actuators import t_motor_actuators + +from auto_robot_design.description.utils import ( + all_combinations_active_joints_n_actuator, ) + +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator +from auto_robot_design.pinokla.squat import SquatHopParameters, SimulateSquatHop +from auto_robot_design.optimization.analyze import get_optimizer_and_problem, get_pareto_sample_linspace, get_pareto_sample_histogram, get_urdf_from_problem + +paths = [ + "results\\multi_opti_preset2\\topology_0_2024-05-29_18-48-58", + "results\\multi_opti_preset2\\topology_1_2024-05-29_19-37-36", + "results\\multi_opti_preset2\\topology_3_2024-05-29_23-01-44", + "results\\multi_opti_preset2\\topology_4_2024-05-29_23-46-17", + "results\\multi_opti_preset2\\topology_5_2024-05-30_00-32-21", + "results\\multi_opti_preset2\\topology_7_2024-05-30_01-15-44", + "results\\multi_opti_preset2\\topology_8_2024-05-30_10-40-12", + ] + +# for path_i in paths: +# get_sample_torque_traj_from_sample_multi(path_i, False) +get_sample_torque_traj_from_sample_multi("results\\multi_opti_preset2222\\topology_8_2024-05-30_10-40-12", True) \ No newline at end of file diff --git a/jmoves/apps/article/traj_graph_setup.py b/jmoves/apps/article/traj_graph_setup.py new file mode 100644 index 00000000..fadea976 --- /dev/null +++ b/jmoves/apps/article/traj_graph_setup.py @@ -0,0 +1,87 @@ +from networkx import Graph +import numpy as np +import matplotlib.pyplot as plt + +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains + +from auto_robot_design.description.utils import draw_joint_point +from auto_robot_design.optimization.problems import get_optimizing_joints +from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, MIT_CHEETAH_PARAMS_DICT + + +def get_graph_and_traj(graph_number: int) -> tuple[Graph, dict, ParametrizedBuilder, list[np.ndarray], list[np.ndarray], np.ndarray]: + anlge = np.deg2rad(-45) + l1 = 0.21 + l2 = 0.18 + + x_knee = l1 * np.sin(anlge) + y_knee = -l1 * np.cos(anlge) + + y_ee = -y_knee + l2 * np.cos(anlge) + print(x_knee, y_knee, y_ee) + + generator = TwoLinkGenerator() + all_graphs = generator.get_standard_set(-0.105, shift=-0.10) + graph, constrain_dict = all_graphs[graph_number] + + thickness = MIT_CHEETAH_PARAMS_DICT["thickness"] + actuator = MIT_CHEETAH_PARAMS_DICT["actuator"] + density = MIT_CHEETAH_PARAMS_DICT["density"] + body_density = MIT_CHEETAH_PARAMS_DICT["body_density"] + + builder = ParametrizedBuilder(DetailedURDFCreatorFixedEE, + density={"default": density, + "G": body_density}, + thickness={ + "default": thickness, "EE": 0.033}, + actuator={"default": actuator}, + size_ground=np.array( + MIT_CHEETAH_PARAMS_DICT["size_ground"]), + offset_ground=MIT_CHEETAH_PARAMS_DICT["offset_ground_rl"] + ) + + workspace_trajectory = convert_x_y_to_6d_traj_xz( + *get_workspace_trajectory([-0.1, -0.29], 0.07, 0.2, 10, 20)) + + ground_symmetric_step1 = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory( + starting_point=[-0.085, -0.28], step_height=0.06, step_width=0.17, n_points=50)) + + ground_symmetric_step2 = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory( + starting_point=[-0.085 + 0.025, -0.28], step_height=0.05, step_width=-2*(-0.085 + 0.025), n_points=50)) + + ground_symmetric_step3 = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory( + starting_point=[-0.085 + 2 * 0.025, -0.28], step_height=0.04, step_width=-2*(-0.085 + 2 * 0.025), n_points=50)) + + horizontal_trj_1 = convert_x_y_to_6d_traj_xz( + *get_vertical_trajectory(-0.28, 0.04, 0.085, 50)) + horizontal_trj_2 = convert_x_y_to_6d_traj_xz( + *get_vertical_trajectory(-0.28, 0.05, 0.085 - 0.025, 50)) + horizontal_trj_3 = convert_x_y_to_6d_traj_xz( + *get_vertical_trajectory(-0.28, 0.06, 0.085 - 2*0.025, 50)) + + squat_trajs = [horizontal_trj_1, horizontal_trj_2, horizontal_trj_3] + step_trajs = [ground_symmetric_step1, + ground_symmetric_step2, ground_symmetric_step3] + + optimizing_joints = get_optimizing_joints(graph, constrain_dict) + + return graph, optimizing_joints, constrain_dict, builder, step_trajs, squat_trajs, workspace_trajectory + + +if __name__ == "__main__": + graph, optimizing_joints, constrain_dict, builder, step_trajs, squat_trajs, workspace_trajectory = get_graph_and_traj( + 0) + + plt.figure() + draw_joint_point(graph) + for trajectory in step_trajs: + plt.plot(trajectory[:, 0], trajectory[:, 2]) + for trajectory in squat_trajs: + plt.plot(trajectory[:, 0], trajectory[:, 2]) + + plt.scatter(workspace_trajectory[:, 0], + workspace_trajectory[:, 2], marker="1") + plt.figure() + draw_joint_point(graph) + visualize_constrains(graph, constrain_dict) diff --git a/jmoves/apps/experiments/all_topologies_acc_hl_six_trajectories/first_optimization_setup.ipynb b/jmoves/apps/experiments/all_topologies_acc_hl_six_trajectories/first_optimization_setup.ipynb new file mode 100644 index 00000000..e41d11a1 --- /dev/null +++ b/jmoves/apps/experiments/all_topologies_acc_hl_six_trajectories/first_optimization_setup.ipynb @@ -0,0 +1,424 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import multiprocessing\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import os\n", + "import pinocchio as pin\n", + "\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from pymoo.algorithms.moo.age2 import AGEMOEA2\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import MultiCriteriaProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.generator.topologies.bounds_preset import get_preset_by_index_with_bounds\n", + "from auto_robot_design.optimization.saver import ProblemSaver\n", + "from auto_robot_design.utils.configs import inertial_config_two_link_workspace, inertial_config_two_link_six_trajectories, inertial_config_two_link_six_trajectories_v2, jacobian_config_two_link_workspace" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "builder, crag, soft_constrain, reward_manager = jacobian_config_two_link_workspace()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for _, trajectory in reward_manager.trajectories.items():\n", + " plt.plot(trajectory[50:, 0], trajectory[50:, 2])\n", + "gm = get_preset_by_index_with_bounds(-1)\n", + "values = gm.generate_central_from_mutation_range()\n", + "graph = gm.get_graph(values)\n", + "draw_joint_point(graph)\n", + "plt.show(\"trajectories.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABYcAAAYYCAYAAADCUHfkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeViU5foH8O+ALLI4iAuyKCPmoAnmmgsq2ibuK2ZaqS1WHhWzfnaqU1qnsjxlKpV1TCUrzQUxlSTrBJrgLi6oKOYai4jIrrI9vz9eBxhmgBlkeGfg+7muuWTe9X4HnHuee573eRRCCAEiIiIiIiIiIiIialSs5A6AiIiIiIiIiIiIiOofi8NEREREREREREREjRCLw0RERERERERERESNEIvDRERERERERERERI0Qi8NEREREREREREREjRCLw0RERERERERERESNEIvDRERERERERERERI0Qi8NEREREREREREREjRCLw0RERERERERERESNEIvDRERERERERERERI0Qi8NEREREREREREREjRCLw0RERERERERERESNEIvDRERERERERERERI0Qi8NEREREREREREREjRCLw0RERERERERERESNUBO5AyCixqOkpARFRUVyh0EysbW1hZUVv5MkIjJ3paWlKCwslDsMkomNjQ2sra3lDoOIiAzANnbjVZf5msVhIjI5IQTS0tKQlZUldygkIysrK7Rv3x62trZyh0JERFUoLCzEpUuXUFpaKncoJCMXFxe0adMGCoVC7lCIiEgPtrEJqLt8zeIwEZmcJmm1bt0aDg4ObGg0QqWlpUhJSUFqairatWvHvwEiIjMkhEBqaiqsra3Rtm1b3u3RCAkhUFBQgPT0dACAu7u7zBEREZE+bGM3bnWdr1kcJiKTKikpKUtaLVq0kDscklGrVq2QkpKC4uJi2NjYyB0OERFVUlxcjIKCAnh4eMDBwUHucEgmTZs2BQCkp6ejdevWHGKCiMjMsI1NQN3ma3YHICKT0ox/xEYmaYaTKCkpkTkSIiLSR/P+zOF/SPO5jeNYEhGZH7axSaOu8jWLw0RUL3ibC/FvgIjIMvD9mvg3QERk/vheTXX1N8DiMBEREREREREREVEjxOIwEVEDtGjRInTr1k3uMIiIiKgazNdERETmr6HnaxaHichilJSUICYmBhs2bEBMTEy9jV2b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evVq3d6smVM5TY+IizNrJT/+uDRrVmljeHfExEibNklTp0q//rVZW7h5c/O4f/rTym8Hr7MZhmFYHQRgtRdffFG//vWv9ctf/lIvvfQSCWJJqampTifYbdu21YYNGyq8+io+Pt7pJDs1NVWvv/66N0IFAOCqMWPGlHvraGxsrEaOHOlw18u1pSTsQkNDdfr0abfqFQMAAN9lb073xz/+sWaa03lQTk6OZs2apbS0NIfSWXaRkZEaO3asHn/8cS7GQpWRHAaumDFjhlJTUzVx4kS98cYbfn0yeObMGUVHRztNPosWLXKrbuOiRYs0YsQIh2WRkZHKzc31zqeaAABccfLkSSUmJirb3Xr3LtSrV0+PPPKI3n77bQ9GBgAArDJlyhS9/fbb2r59e800p6umwsJCTZgwoVK1klNSUjR79mxFVrZGMPweyWGgjHfeeUc/+9nPrp4QBgYGWh2SJZYtW6bBgwc7LIuNjdWuXbvc7vjeoUMHp6uxPv3000o1DwQAoCpyc3OVnJxcpQRxbGys9u7dq1WrVinJ2zX9AABAjTh16pQ6d+6shIQEa5vTuSE3N7fKjeHj4uKUmZmpVi1auPeEelSbheS/l0YCLkyYMEF/+9vfNGfOHI0dO1bFlegeWpfk5eU5LRs1apTbV1MHBARo1KhRTsvz8/OrHRsAABVp1aqV1q5dq5SUlEo9LyUlRUOGDFHz5s2VkJDgpegAAEBNszenW7BggT777DOrwylXYWFhlRPDkllCIzk5WQoKcu9x/ryHjwC1ER8RANd46KGHFBISoh/96Ec6f/685s6dq+DgYKvDqlFFRUVOy6Kjoys1hqvtXY0LAIA3REZGat68ecrJydHbb7+tt956y+WHvpGRkRo3bpwee+wxdezYUR06dNDIkSP99u4hAADqKp9oTleBCRMmlJsYjo2N1ahRoxx6J+zdu9dpu+zsbD1955168cUXK96hD74GqHkkhwEXUlJSVL9+faWkpGj06NFasGCBQkJCrA6rxkRERDgtc3U18fW42t7VuAAAeFPnzp31+uuv65NPPtH+/fv1zjvvqKioSBEREYqKilJCQsLVevhbt27V3r17dd9991kcNQAA8DSbzaY333xT3bt312uvveZzzelycnJclrxo27at3nzzTd17770Od/O+/PLLWrp0qSZOnOjUEP6lzz/XwxERNKmD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AAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD5EcBgAAAAAAAAA/RHIYAAAAAAAAAPwQyWEAAAAAAAAA8EMkhwEAAAAAAADAD9WzOgAA/uPy5cu6dOmS1WHAIsHBwQoI4DNJAPB1JSUlunjxotVhwCJBQUEKDAy0OgwAgBs4x/ZfnpyvSQ4D8DrDMHTkyBEVFhZaHQosFBAQoPbt2ys4ONjqUAAA5bh48aL27dunkpISq0OBhRo1aqSWLVvKZrNZHQoAwAXOsSF5br4mOQzA6+yTVvPmzdWgQQNONPxQSUmJ8vLylJ+frzZt2vA7AAA+yDAM5efnKzAwUDExMdzt4YcMw9DZs2d19OhRSVJUVJTFEQEAXOEc2795er4mOQzAqy5fvnx10rrhhhusDgcWatasmfLy8lRcXKygoCCrwwEAXKO4uFhnz55VdHS0GjRoYHU4sEhoaKgk6ejRo2revDklJgDAx3CODcmz8zWXAwDwKnv9I04yYS8ncfnyZYsjAQC4Yn9/pvwP7H+3UccSAHwP59iw89R8TXIYQI3gNhfwOwAAtQPv1+B3AAB8H+/V8NTvAMlhAAAAAAAAAPBDJIcBoA6aNm2aunfvbnUYAADgOpivAQDwfXV9viY5DKDWuHz5slauXKkPP/xQK1eurLHatUeOHFFqaqo6dOigkJAQtWjRQomJiXr77bd19uzZGokBAIDagvkaAIDawYo5m/na99SzOgAAcMfChQuVmpqqw4cPX13WunVrvfHGGxo9erTX9rt3714lJCSoUaNG+r//+z9169ZNxcXF2rlzp+bMmaPo6GgNHz7c6XmXLl1SUFCQ1+ICAMAXMV8DAFA7WDFnM1/7Jq4cBuDzFi5cqPvvv99h0pKk3Nxc3X///Vq4cKHX9v3444+rXr162rx5s8aMGaMuXbqoW7duuu+++7R06VINGzZMklkI/u2339aIESMUFhamP/7xj5KkWbNm6cYbb1RwcLA6deqkv//971fH3r9/v2w2m7Zu3Xp1WWFhoWw2m1auXClJWrlypWw2mz7//HP17NlTDRo0UN++fbVjxw6HOF988UW1aNFCEREReuSRR3T+/HmvvSYAALjCfM18DQCoHayas5mvfRPJYQA+7fLly0pNTZVhGE7r7Mt+/vOfe+X2lxMnTmjZsmX6f//v/yksLMzlNmW7g06dOlUjRozQ119/rZ/+9KfKyMhQamqqpkyZouzsbP3v//6vHn74Ya1YsaLSsTz77LN69dVXtXnzZtWrV08//elPr66bN2+epk6dqueff16bN29WVFSU/vznP1f+gAEAqCLmaxPzNQDA11k1ZzNf+zADvuniRcN46SXD6NrVMEJCDCMqyjDuv98wtmyxOrLqkQxj6lSro6g9Vqxw//WaOtV8fX3MuXPnjG+//dY4d+5clZ6/YsUKQ1KFjxUrVng2cMMwNmzYYEgyFi5c6LD8hhtuMMLCwoywsDDjqaeeMgzDMCQZP//5zx2269u3rzF+/HiHZSkpKca9995rGIZh7Nu3z5BkbCnz/7qgoMDheOzH/5///OfqNkuXLjUkXX1N+/TpY/zsZz9z2E98fLxx6623VvnYvaG6vwuAT2K+hmHUifnaMKr3Ps18XXfma8NgzkYdxHwNw2C+vsKqOZv52vM8NV9z5bAvKimRRo2SfvtbacQI6d//lmbNkgICpL/+1eroUJNWrpSee869bR99VFq/3qvhWCE/P9+j21VF2U8vJemLL77Q1q1b1bVrV124cOHq8p49ezpst337diUkJDgsS0hI0Pbt2ysdwy233HL166ioKEnS0aNHr+6nT58+Dttf+z0AL2C+hh3zNfP1FczXgA9ivoYd87Uk6+ds5mvfQ0M6XzRnjrR0qTlh/exnpctHjJAOHbIuLvi21q3NRx1jf6P21HaV0aFDB9lsNuXk5Dgsj42NlSSFhoY6LHd1a8y1E59hGFeXBQQEXF1md+nSJZexlC2+b39+SUmJW8cBwEuYr1EVzNce3zfzNYDrYr5GVdTR+Vqybs5mvvZdXDnsi2bPlho3Nj+pulZMjOP3Nps0bZr03ntS585S/fpSmzbSokWl23z5pTRokBQRITVoICUlSatXO46TlmaOtX+/4/J27aRx45y3W7VKGjJECg+X2raVXnvNOdaPP5bi4syYbr5Zysx08wW4jsWLpf79pYYNzUdCgpSR4bhNZY63ouOozPEeOCA99JDUvLl5zLfdZsZbleNo187cr/1TTZut9DFtmuNYHTo4ri+PJ1+XGtSvXz+1bt3aaRKws9lsiomJUb9+/Ty+7xtuuEF333233nzzTZ05c6bSz+/SpYvWrl3rsGzdunXq0qWLJKlZs2aSHD+RLVs8vzL72bBhg8Oya78H4AXM1+Vjvma+vgbzNfM1YBnm6/IxX/vdfC1ZN2czX/suksO+5uJFacsW6fbbpXpuXti9dKn04ovS00+bt8hMniydPm2u273bfJM8csSc4D78UCoulu66y3wzq6rx46V77jHfcOPjpSeekMr+Z9m0SbrvPnOyzciQUlOlhx+u+v4k85Pe4cPNN9S//lX66CPzzXjJktJtKnu8FR2Hu9sdOmQuX7tW+tOfzD8ebrlFGjlSWras8seRkWHewvLII+b369eXPq79o2bBAsdtXfHW61IDAgMD9cYbb0hy/pTQ/v3rr7+uwMBAr+z/z3/+s4qLi9WzZ0999NFH2r59u3bs2KF//OMfysnJue5+f/nLXyotLU1vv/22du3apenTp2vhwoV68sknJZmfjPbu3Vsvvviivv32W61evVq/+c1vKh1jamqq5syZozlz5mjnzp2aOnWqvvnmmyofMwA3MF+Xj/ma+Zr52iXma8ACzNflY772y/lasnbOZr72UdWufgzPysszi57/6Eely0pKDOPSpdJHWZJhREYaxvHjrsf7f//PMAIDDePAgdJl339vGA0aGEZKSumy994zx9q3z/H5bdsaxtixztvNmFG6rKjIMIKCDOO3vy1dNmqUYTRpYhhli2K/807VC+afOmUYERGGceedzuvKviaVPd6KjsPd7R5+2DCCgw1j1y7H2Hr0MIw+fSp/HHaVKYJ/vW09/bpUgqcKpKenpxutW7d2KJAfExNjpKenV2tcd+Tl5RkTJ0402rdvbwQFBRnh4eHGD37wA+NPf/qTcebMGcMwzIL5GRkZTs/985//bMTGxhpBQUFGx44djffff99h/bfffmv07t3bCA0NNbp3724sW7bMZcH8goKCq8/ZsmWLIcnYV+b/6/PPP280bdrUCA8PN8aOHWs89dRTPlcwn+Y2qFOYr11jvq6Yj87XhuGZ92nm64Krz6mt87VhMGejDmG+do35umJ1fL42DOvmbOZrz/HU7wI1h31V2U9v0tOllJTS78vUT5EkDRsm3XCD63E2bJC6djVvhbFr3Fjq27d6n1QlJZV+HR4utWghlS1W/uWXUr9+UkhI6bIhQ6q+v3XrpKIi6ac/dV5X9hPgyh5vRcfh7naffCL17m3erlJcXLo8MVF66y3zE+vgYPePw9O89brUoNGjR2vEiBFas2aN8vPzFRUVpX79+nntCqSyoqKiNHPmTM2cObPcbYxr/19e8dhjj+mxNZVIxAABAABJREFUxx4r93ldunTR+msaHZQda8CAAU5jd+/e3WnZM888o2eeecZh2UsvvVTufgF4CPO1I+br6mG+rhbmawDlYr52xHxdPXVgvpasm7OZr30PyWFfc8MN5pvYsWOly+6807yN5E9/kubNc35O27blj1dY6PiGZde0afUmr8hIx+8DA6Wyhb6PHpWaNHHcprwJ1h3Hj5v/Rkdff7vKHm9Fx+HudsePm7eUlClq7uDkSalZM/ePw9O89brUsMDAQA0YMMDqMACA+foahmGo6GKRbLn7FCHJiIrSdar0MV+Xh/kaADyL+do1zq+rp47M1xJzNkwkh31NcLBZaP2rr6SSEikgwPwEqmdP883Plet9ItaoUekbZlnHj5vr7Oxvutd+OlOFIuGSpJYtpe+/d1x24kTVxpLMN1lJys29/nbuHq+nNW1q1kB6/nnX6xs3Lt1Oqvg4PM2q1wUA6irma2Ufzdbcr+dqU94mfZX/lb4/970G7ZY+lfSzd4Zp7+E+6hXdSz/q9iPFNY9zfDLztWvM1wDgWczXrnF+XT3M16hjaEjnix55xHxTmTu3+mPFx0vffisdPFi6rKDAvP2id+/SZS1bmv+WfVM9dMj1G547evaU1qyRzp8vXfbJJ1UbS5L69DFvv5gzx3ld2dtM3D1eT0tONvfbubN57Nc+7H9guHscdvZPGIuKqhefVa8LANRlfjpfL925VP3T+qvbrG6a/dVshQWF6efxP9eH932oSakf6FKDED29s7nCgsI0+6vZ6jarm/qn9dcn28t0GGe+do35GgA8z0/n6+vi/Lp68TFfo47hymFfNH682cXyf/9XOnDArKtz/Li0YoX5SWdlpKZKaWnS0KHS735nfoL50ktmjZ6nnirdrndv89O3//s/6Z13pHPnzK6sZWsaVcavfy0tXCiNGiVNmiQdPiw991zVxpKkhg2lF14wxxoyxOzMGhEhbd5sdgp9773KHa+n/f735uSclGTG0LateevP+vVmZ9vZsyt3HHY9epj//uY35rYhIeano/ZPSA8fNh/2ryXH21jsE5NVrwsA1GV+Nl+fOHtCkzMna+7Xc5XYJlEf3f+RRnYeqeDAYMcNX/pe7SdN0sd/76JLY2dqXeE27Vg0V0feGK4f//ZBzbhnhpowXzNfA0BN8bP52i2cXzNfA2WQHPZFAQHSv/4lvfqq9P775htjWJiUkCC9+27lxurY0Zz0nnlGGjfOvJWmRw9p2TKpV6/S7cLCpI8+kn7xC6lDB/Px+99L27dX7Rh69DAnr2efNSew2Fjpr3+V7rnH7SHOnDmjrKws5eXlqaioSBEREbp16lTd8tlnCnz4YXOjuDjpl7+s/PF6WkyMWbdq6lRz4j5+XGre3Nz3tcXxJ06UWreWpk83JyRXx2HXv7852bz7rvTmm+bxTJ0qTZtmrn/3Xec/Cvr0Kf3afhuTVa8LANRlfjRfb/tum+754B6dvXRW7498Xz++5ceyXWnuc735OuiR8eovKSkuTqseGq6lu/6uFftXKPPBTHVjvi79mvkaALzHj+brijjM2YahrpMm6bYVK9To4YfNXgGcXzNfwy/ZjPJaAAIWycnJ0axZs5SWlqZTp045rY+MjNTYsWP1+OOPq1OnThZEiMo4f/689u3bp/bt2yukqp+Uo07gdwGonbZ9t00D0gaoXaN2WvKjJYqOMJu+VGW+zivK05C5Q3Sg8IBWjVulbi261eix4Pp4n4YdvwtA3cI5dt3CezTsPPW7QM1h+IzCwkKNGTNGXbp00YwZM1xOWpJ08uRJzZgxQ507d9aYMWN08uTJGo4UAAD/cOLsCd3zwT1q16idlo9druiI6GrN19ER0VoxdoXaNmqr5A+S9f25710+FwAAVB/n2ADcQXIY1ikuvvrIPXBA/RMStHD+fAVKDo/rmT9/vhITE5Vb091JAQDwA5MzJ+vC+TNaMuZjNaoX7pH5ulFIIy390VKdvXRWkz+Z7P2DAADAH5Q5v77eOXZFOMcG/A/JYVgnKOjqo1W7dvrvt9+qWHJ61K9gmOzsbCUnJ/PpJgAAHrR051LN/Xqujj97UtFN2np0vo6OiNYbyW/og68/0L93/dvbhwIAQN1X5vz6enN2RfO1xDk24G9IDsM6mzZJmzbp6TvvVE/J5WNkq1aa+MQTevXVVzVlyhTFxsa6HCo7O1vjx4+vsdCBqlq5cqVsNpsKCwsr9bxp06apRYsWstls+vjjj8tdBgCe8vK6l5XYJlHGF194Zb5+6JaHlNgmUS9nvVwzBwRUEnM2gFrlyvl1RXN2q/btNWXKFM6xUWcwX1cfyWFYp2dP5YSH66XPP9eXksPjeNu2mrZ4sebv26ehw4YpKipKQ4cOVU5OjhYtWqQ2bdo4DTd//nzt2LGjhg8CNenyZWnlSunDD81/L1/27v7GjRsnm83m9EhOTvbYPuwTmavHkSNHJEnbt2/Xc889p7/85S/Kz8/XPffc43JZdU2bNk3du3ev9jgAar/so9lafWC1Jv1gkmy9enllvrbZbJrYa6JWHVilb45+U8NHCG+q6flaYs4GAPXs6dY5ds6OHRo6dCjn2JDEOTbztame1QHAv82aNctpWdu2bbVhwwatW7dOsbGxOnz48NV1rVu31htvvKGNGzcqPj5eBw8edBrv9ddf93bYsMDChVJqqlTm10GtW0tvvCGNHu29/SYnJ+u9995zWFa/vjs3Y1XOjh071LBhQ4dlzZs3lyTt2bNHkjRixAjZbLZyl/mKS5cuKSgoyOowAFTD3K/nqmmDphrZeaQk783Xo7qMUtMGTTX367l6/s7nvXpMqBlWzdcSc3ZVMGcDdQ/n2HAX59jM11cZgEVOnz5tNGzY0JDk8Fi0aJGRnp5u2Gw2p3U2m82w2WxGenq68a9//ctpfWRkpHH69GmrDw1lnDt3zvj222+Nc+fOVXmM9HTDsNkMQ3J82GzmIz3dgwGXMXbsWGPEiBHlrpdkzJ492xg5cqQRGhpqdOjQwfjXv/7lsM3SpUuNm266yQgJCTEGDBhgvPfee4Yko6CgwDAMw1ixYoXD99eaOnWq0++5q2V2c+bMMTp37mzUr1/f6NSpk/HWW285jHfo0CHjf/7nf4zGjRsbDRo0MG6//XZjw4YNV+Mq+3jvvfcMwzCMAwcOGMOHDzfCwsKMiIgIIyUlxThy5IhDjLfeeqvx17/+1Wjfvr1hs9mMkpISp2PxxO8CgJpx1/t3GSM+HGEYhvfn6+EfDjfufv9uC48WdtV9n7ZqvjYM5mzmbACGwTm2v+Acm/nazlPzNclhWObTTz91+o8SGxtrXLx40WjdurXTurKTV0xMjHHx4kWjffv2Tus//fRTqw8NZVT3zaq42DBat3aetMpOXjEx5nae5s7E1bp1a2Pu3LnGrl27jMmTJxvh4eHGiRMnDMMwjIMHDxr169c3UlNTjZycHOMf//iH0aJFi0pNXEVFRVcnlfz8fCM/P9/lMsMwjHfeeceIiooy0tPTjb179xrp6elGkyZNjLS0tKtjxcbGGv369TPWrFlj7Nq1y/joo4+MdevWGWfPnjWmTJlidO3a9eqYZ8+eNUpKSozbbrvNSExMNDZv3mxs2LDB6NGjh9G/f/+rMU6dOtUICwszBg8ebHz11VfGf//7X040gVqspKTEaPJSE+P3K39vGIb35+vnVj5nNHmpicv3DdSs6rxPWzlfGwZzNnM2AMPgHNtfcI7NfG1Hchi1nqtPUaZMmXL1P3JFjxUrVhhPPPGE03L7f1L4huq+Wa1YUf6kVfaxYoVHwzYMw5y4AgMDjbCwMIfH739vJkwkGb/5zW+ubn/69GnDZrMZn3zyiWEYhvHrX//a6NKli8Ob+K9+9SuXE9e1++jYsePV52RkZDh8clnespiYGGPu3LkOy/7whz8Yffr0MQzDMP7yl78YERERVyfWa9k/nSxr2bJlRmBgoHHw4MGry7755htDkvHFF19cfV5QUJBx9OhR1y/kFZxoArXDyfMnDU2T8eHXHxqG4f35+sOvPzQ0Tcap86esPGwY1XuftnK+NgzmbMNgzgbAOba/4Byb+drOU/M1NYdhmaKiIqdl0dHRys/Pd+v5+fn5io6Odmtc1F5u/jq4vV1lDRw40KluV5MmTa5+fcstt1z9OiwsTBERETp69Kgks8h97969HeoV9enTx+V+1qxZo4iIiKvf16tXubfnY8eO6dChQ3rkkUccugoXFxcrMjJSkrR161bddtttDvFXZPv27YqJiVFMTMzVZTfffLMaNWqk7du3q1evXpLMOmbNmjWrVMwAfNPFyxclSSH1QiR5f76uH1jfYb+onayeryXmbOZsAJxjwx1Wz9nM1743X5MchmXK/ie1y8vLU48ePdx6flRUlDZv3uzWuKi9oqI8u11lhYWFqUOHDuWuv7YovM1mU0lJiSTJMAy399O+fXs1atSoSjFKurrP2bNnKz4+3mFdYGCgJCk0NLTS4xqG4bIY/7XLw8LCKj02AN8UHBgsSTpffF6S9+frC5cvOOwXtZPV87XEnM2cDYBzbLjD6jmb+dr35uuAGtsTcA1Xn0hmZGQoISFBrVu3Lrc7pM1mU0xMjBISEpSRkeG0PsqbZx2ocf36mR1Ty2sWarNJMTHmdr7m5ptv1oYNGxyWXfu9p7Ro0UKtWrXS3r171aFDB4dH+/btJZmfwG7dulXff/+9yzGCg4N1+fJlp2M4ePCgDh06dHXZt99+q5MnT6pLly5eORYA1ooIjlCT0CbadWKXJO/P1ztP7FST0CYKDw734FGgptXm+VpizgZQN3CODXfU5jmb+do7SA7DMgkJCWrYsKHDsr179yozM1NvvPGGJDlNXvbvX3/9dX3yySfat2+fw/rIyEglJCR4MWrUtMBA6cqvg9PkZf/+9dfN7bzhwoULOnLkiMPj+PHjbj33Zz/7mfbs2aMnnnhCO3bs0Ny5c5WWluZy26NHjzrt59KlS5WKddq0aXrhhRf0xhtvaOfOnfr666/13nvvafr06ZKkH/7wh2rZsqVGjhyprKws7d27V+np6Vq/fr0kqV27dtq3b5+2bt2q48eP68KFC7rrrrt0yy236MEHH9RXX32lL774Qj/5yU/Uv39/9ezZs1LxAagdbDabekT10Jf5X0ry/nz9Zf6Xuj3q9nJPWFE7WD1fS8zZzNkAOMeGO6yes5mvfW++JjkMy4SFhWncuHFOyydOnKi+fftqwYIFatWqlcO61q1ba8GCBerbt68mTZrk9Nxx48Zxq1wdNHq0tGCBdM2vg1q3NpePHu29fWdmZioqKsrhkZiY6NZz27Rpo/T0dC1evFi33nqr3n77bf3f//2fy207derktJ8vv/yyUrE++uijevfdd5WWlqZu3bqpf//+SktLu/qpZnBwsJYtW6bmzZvr3nvvVbdu3fTiiy9evSXmvvvuU3JysgYOHKhmzZrpww8/lM1m08cff6zGjRsrKSlJd911l2JjY/XRRx9VKjYAtUuv6F7KOpSli5cvenW+vnj5otYdWqde0b28dSioQVbO1xJzNnM2AM6x4S7Osd3jL/O1zahMwQ7Aw3JyclxeNt+2bVvNnDlTycnJysrKUn5+vqKiopSQkKBPPvlEkyZN0sGDB12O16lTp5oIHW46f/689u3bp/bt2yskJKRaY12+LK1ZYxbGj4oyb3Px5hVI8CxP/i4A8K7so9nqNqubPrr/I43pOsZr8/VH2R/pgfQHlP1Ytro271oTh4br8NT7NPN17cecDdRenGPXfZxjw85Tvwskh2G5MWPGaP78+S7XxcbGauTIkYqOjlZeXp4yMjKcbnOxS0lJ0bx587wZKqrAkxOXYRgquliki5cvKjgwWBHBEdyGXItwognULv3T+qvEKNHqcatls9k8Pl8bhqF+7/VTvYB6WjlupRePBO7y1Ps083Xtx5wN1G6cY9dtnGPDjuQw6oyTJ08qMTFR2dnZVR4jLi5Oa9euVWRkpAcjgydU980q+2i25n49V5vyNumr/K/0/bnSQu9NQpuoR1QP9YrupR91+5Himsd5MnR4GCeaQO2ydOdSDf1wqN4f+b4euvUhj8/X7//3fY39eKyW/mip7r3pXg9Gjqqqzvs083XdwpwN1G6cY9dtnGPDjuQw6pTc3FwlJydXafKKi4tTZmamU+0k+Iaqvlkt3blUL697WasPrFbTBk2VEJOg26Nu10033KSQeiE6X3xeu07s0pf5XyrrUJaOnz2upLZJ+lXCr0gy+ChONIHa58GFD+rfu/6tbx7/RtER0R6br/OK8tT1z1015KYh+sfof3ghclRFVd6nma/rJuZsoPbjHLvu4hwbdh6brw3ARxQWFhopKSmGJLcfKSkpRmFhodWhu7ZihWFI5iM7u3T5998bRlCQufy996o29tSp5vNrgXPnzhnffvutce7cObe2P37muPGj9B8ZmiYjcU6i8VH2R8aF4gvXfc6F4gvGR9kfGYlzEg1Nk/Fg+oPGibMn3Atw0ybDyM11b1tUS2V/FwBY7/iZ40b0q9FG97e7GwXnCgzDqP58XXCuwOj+dncj+tVo99+rvY052zCMyr1P1/h8bRjM2TWIORuoGzjHroQ6Ol8bBufYdZmn5uuA/8/enYdVVXUPHP9eJlFkckjFFOchwXnGNDUVxbHUzAk19U1fh9Ky+c1mszKDyvxZiuaQQ4IDjqlpjimSgEpizoCzCILKtH9/nFAQxAvey7nA+jzPfZQz7L0OFouzzz575X9YWQjTcnZ2ZsWKFYSGhmJjY/PQpx7Ozs5MnjyZyMhIVqxYYfmvuTg7Q+Z1mgID4XGrvY4eDfv2PV4bFijsUhgNf2jIhqgNLOq7iF0jdjGwwUDsrO1yPc/O2o6BDQaya8QuFvVdRHBUMJ5zPAm/FF5AkQshRNFUtlRZNg3ZxNm4s3Rc2JGYhJh7+fr48eNMnjyZkiVL5nhuTvk6JiGGjgs7cjbuLJuGbKJMyTIFfEWPIDnbKJKvhRCicMicsydOnJjrsW3atJF77CKWr0FytjCOjd4BCPGg8+fPk5qayp9//smVK1eIjY0lISEBR0fHe9VUHR73B39B6t1bS1wffKB9vWIF9OkDCxfmv80nn9Q+RUjYpTCeCXiGai7VWD94PW6Obnluw2AwMKzRMDrX6IzPUh86BHRg54ideFbwNEPEQghRPHhW8GTniJ14L/GmwfcN8PP2Y2jDodSrV4/Zs2dz7do19u/fz7vvvvvQfK2U4uewn5m8aTKlbEtZ7s9mydmPJPlaCCEKn3r16jFmzBj8/f358ssvKVeuXJacHRAQwKFDh6hTp47eoRpH8rVRJGcLY8nMYWFxgoKCqFevHk2aNKFr1674+voyYcIEfH196dq1a+EaGAbo0gUuXYKwMLh2DX7/Hfr3v7//yhUYPx7q19eedjo6Qvv2sHVr9rZq1QKD4f4nJwEB2r6dO8HHB0qXBnd3+Prr/F9DcDB4eECJEtqf27ZpfUyfnv3YjO0LFkC9etCwIVy4APHx949JTIQTJ+DwYTh8mGtH9tH9Z2+quVRju+92LWldvQqHDsHdu1nbDwuDzNV0M45LSICoKDh8GLfTV9nRfTnuLu54L/G+v8D+jRtw9CiEhEBEBNy8mf/viRBCFCOeFTwJHxeOT20fhgcNp31Ae5ZHLCc5LZmwsDA6deqUY75OTktmecRynl7wNL5BvvSs05PwceGWe0MhOTvXnH1t/3a6L+xCNaeq9/M15Dtnu0VdZEczf9wdKmfN1yA5WwghTCw0NBSAMWPGZMvZo0ePJioqin2FZeas5Gu5xxYmJYPDwqKkpaWxdu1a+vbtq3copmNrqz3FXLECVq+G1q2hYsX7+y9f1n6gTpsG69bBqlVQvTp07w7792dta9Uq7VWXl156dL9jxmhtBAZCq1YwZUr29oxx5Aj07Qvly2v9v/oqjBqV+znBwTBjBrz5JsydC05OkJam7btzB/7+G1JSoFo1qFGDSYc/ISn5Fuv7rsDF3iXvMQKcOaO9XlSrFjg44HI5nuA+K0hKSWLSxklasvznH+3fo1YtqFBBO0cIIYRRypQsw+LnFhM8OBhrgzWDfh1E5a8qE9YgjNg6sfwS8QuBxwP5JeIXPtz5IX1+6UPlWZUZ9OsgbKxsCB4czM/9fra8pSQyk5yda86edGYOSal3WN9wBi5ptnmPL0OmnO3iWongxjNJSv43X4PkbCGEMIPQ0FBq1qyJk5NTtn3PPPMMVatWJSAgoOADyw/J13KPLUxKlpUQFmXv3r1cvXq1aA0OAwwYAK+8AlWrwsCBWfc1aADLlt3/Oi0NOnWCtWth/nwt0WVo3Fj7c9OmR/c5cSJMmKD9vU0bCAqCDRuytmeMTz/VnrauW6c9IQXtyWVuyTMqSksSZctqier0aXB11fZdvgzp6VryKFGC4BPBLD0XzKLGH+J2ywAV8hbePU88oX1AizcuDre0Unzj/Q2+Qb4MLvsMPZyba/1aZXoudvZsPjsUQojiqUftHvSo3YOjl4/yxeYvWBixkF13d7Hu13X3jilTsgzNKjVjbNOxDPYcTIMnGugYcR5Jzs4xZwef/Y2lf69iUe8FuKkn4OJFqFkzb/FleCBnu8XF8U3r6fjufIXBnoPpYagDNjaSs4UQwoRCQ0Np2rRpjvusrKwYPnw4fn5+fPPNNw+tJ2BRJF/LPbYwGZk5LCxKUFAQlSpVokWLFnqHYlpdumivZuzcCc8/n33//PnQvLn2VM7GBuzsIC4OYmPz32f79vf/Xrq09hQvP+39+Sd06HA/aYH2tDQ3vXppSSsnt25ByZLa6zPAzL0zaVe1HUPrDdSePOaXo+P9v1tba08vU1IY1nAY7aq2Y2bEXO0aMictHQotBAQE4OLiUuD9CiGEqTV4ogEt4ltg+4stF6dcJP7NeK6+fvXen1uGbeGTzp8UroFhkJydWaacfS9fN/bV2jdxzh7m3lvL13tmQlKS7jlb8rUQoihJT08nNDSUJk2aPPSY4cOHEx8fz5o1awowsscg+fo+uceWnP2YZHBYWAylFEFBQfTp0wcrqyL2n6atLbz2mrbuUYUHHtvNmqU9IWzSBJYvh4MHtU/58tprIfn14A9la+t77SmliL8bz9Wkq8TfjUcp9fB2YmOzJ6GHJaUM7u4P35eWpiVnIOJyBLvO7mJiy4kYbG0hNTX3dnNjbZ19m1IYDAYmtJjAzquHOJpwKut+G+Nenti7dy/W1tZ4e3vnKaRq1aoxe/bsLNteeOEFTpw4kad2hBDCUoWEhODp6Ym9vT2OJRwpW6osjiUcMTxszb7CwIJydp7yNZgtZ2fJ1waDlj9NnLMNoOXrszs5ej0ye442ImdLvhZCiJydPn2a+Pj4XAeHa9euTdu2bVn4OEXdCpIF5WuQe+x75B67UJJlJYTFiIiI4NSpU0VvSYkMb7+d8/bFi7UnkPPm3d+WmqqtkWRCyekphMce5s2fu3A49nCWoi9lSpahaaWmtHBrwWDPwXg84XH/xEqVtCeymT349YNySwjW1vcS1NLwpZQrVY6+9frCP2eynvewgYX09Nz7zkG/+v0oZ+fK0n+C+KRJ1/s7jEyU8+fPZ+LEifz444+cO3eOqlWr5jmGDCVLliwcr2kJIYQRQkJCaJ3XVykLAx1zdsTlCCrfiePgP1t48YtyxudrMFvOzpKvQbtmM+TsfvX7Ua5UOZbGbuWTJx949dmInC35WgghcpZRjC63wWEAX19fxo0bR0xMDG5ubgUR2uORe2yN3GNLzn5MRWx6pijMgoKCcHJyomPHjnqHUrAMBm39nsyWLXu8J3yZBJ8IpkNAB2LiY4i6dgIHWwdeafUKy55fRuALgSx7fhmvtHoFB1sH5h2eh+ccTzoEdGBD1AatgZYtYdcu7VWVDBs35j8gBwe4fRvu3uVgzEG8qnhhp6y09jN/H2z/LXSTnHx/W3Jyvr4vdtZ2tH2iKQcvh2ZNfEZUUk1MTGTFihWMGzeOnj17ZivSsHbtWpo3b469vT3lypXjueeeA7SiDmfPnuXVV1/FYDDcm0WX+ZWXv//+G4PBQGRkZJY2Z82aRbVq1e49bT527Bg9evSgdOnSVKhQgWHDhnH1Ub88CCGEmd2+fZujR4/SrFkzvUMpOGbM2Rn52nOOJwnJCdhY2eQtX4PZcvbBCwe0fG1tp12rmXK2nbUdbau05WDCca2PPORsyddCCPFwoaGhuLm5UeHBGbYPGDhwIHZ2dixZsqSAIjMTuceWe2zJ2Xkig8PCYgQFBdGjRw/s7Oz0DqVg9ewJmzdrlUe3b4eZM7Wqqg+umXPhglYJdf9+7e9w/+scKqTeuH2DIauH0HNZT9JVOuUdyjOgwUCCBgXxXof3GOQxiL71+jLIYxDvdXiPoEFBRE+JZnn/5aSrdHyW+jB09VBuvjpeSyq9esH69draTZ99lv/rrVABrKxQUVEcjgmhmWsDbXF9pbJWmHVw0J6AXryoJaw7d7TKp/l8VblZ1daExB1HRUVpCevKFYiJeeR5y5cvp27dutStW5ehQ4eyYMGCewklODiY5557Dh8fH0JDQ9m2bRvNmzcHYPXq1Tz55JN8+OGHxMbGEpvDWlR169alWbNm2X75Wrp0KYMHD8ZgMBAbG0uHDh1o3Lgxhw4dYtOmTVy6dImBDxZdEEKIAnbkyBHS0tKK1+CwmXL25E2T7+Xr5f2XU8WpCp2qd8pTvr5++zq89ZbJc7YyGLR87fKUtlajmXN2s0rNCLlxHJWSAidPGp2zJV8LIcTDHT58+JGzhgFcXFzo27cvAQEBj17KyJLJPbbcY0vOzhNZVkJYhHPnznH48GGmTZumdygF7513tEXi/fy011yaNoXAQBg6NOtxP/4IH3yQdVubNvf//kDy9l7izQnHZBb1XcTQhkMxfFAdDFYkJiayZ88eYmJiSEhIwNHRETc3N7y8vHBwcGBgg4EMeGoAi8MWM2nTJHac2cGe+bOo9vlcbaH/2rVhzhzo2vV+ddS8sLeHunVJOB3J9Ts3qJ1cWktGtWtnfappba1VQT9/HsLDtfPc3LQElg91KnlwPeUmt27fxPHkLW2x/mrVtKSZi59++omh//5beHt7c+vWLbZt28azzz7LJ598wqBBg/gg079Lo0aNAChTpgzW1tY4OjpSMXNCfsCQIUP49ttv+eijjwA4ceIEISEhLFq0CIA5c+bQtGlTPv3003vnzJ8/nypVqnDixAnq1KmTr++HEEI8rpCQEGxtbfHw8Hj0wUWFiXP2+ZvnqQLsOL2DRYP/zdcGAzCNlNRUdmzZkqd8vWnIJjxXr9YGiU2UsxOqu3E9+Sa1Uxzh1CkoVcqsObtO2Tpcv3OdW+4VcbwSrw0QG5GzJV8LIcTDhYaGMmbMGKOO9fX1pXv37oSEhNwblCt05B5b7rElZ+eNEsIC+Pn5KVtbW3Xz5k29Qyn0jlw8olxnuKomPzRR0fHR97YfP35cTZo0STk5OSkg28fZ2VlNmjRJRUZG3jsnOj5aNf6hsXKd4arCLobd7yQkRClQatOmR8Zz+/ZtdezYMXX79u0s268kXlFMRwUeD3zsazbG6mOrFdNRVxOvGn1OZGSksrGxURcvXry37b///a968cUXlVJKlSxZUs2fP/+h57u7u6uvv/46y7YFCxYoZ2fne1/HxMQoa2trtW/fPqWUUv/73/9U48aN7+3v0aOHsrW1VQ4ODlk+gNqwYYPR12IJHvbfghCicBo5cqRq2rSp3mEUWgWSr5V67Jwt+VpTnPK1UpKzhShKYmJiFKB+/fVXo45PTU1VlSpVUhMmTDBzZIWH3GPnTHK2/kyVr2XmsLAIQUFBdO7cGScnJ71DKdSuJV2j+5LuVHOpxnbf7bjYuxAXF8fYsWNZuXJlrufevHkTPz8//Pz8GDBgAPPmzcPN2Y0dvjvY1bEGP/3Vng9HLMQp7jZ8/DE0bgxduuQ7VjtrbfmQO6n5e0qZV3fT7mbp1xg//fQTqampVK5c+d42pRS2trbcuHHDJIveV6pUiY4dO7J06VJat27NsmXL+M9//nNvf3p6Or169eLzzz/P8VwhhNBLkS1GVwDMla87LuzI8Z6tqD72C0rXbgCXLj12zpZ8rZF8LYQorDKK0TVt2vQRR2qsra0ZOnQo8+fP56uvvip+yz4+QO6xH05ydtEhaw4L3V2/fp2dO3fSt29fvUMp9CZtmkRSShLrB6/Hxd6F6Oho2rVrly1pWT/is3rlSjp4eREdHY2LvQtd3Nrx+sablOzZD954A1q00NZwssr/jxBHO0fKlCxD1LXcXzkxlRPXTlCmZBlK25U26vjU1FQWLVrEV199xV9//XXvc+TIEdzd3VmyZAkNGzZk27ZtD23Dzs6OtLS0R/Y1ZMgQli9fzr59+/jnn38YNGjQvX1Nmzbl6NGjVKtWjVq1amX5ODxYZEEIIQpIsSxGZ0LG5mswMl+fPYuLvQvBg4OxSU7l7lvToFs3k+Rsydf3Sb4WQhRGoaGhuLq64u7ubvQ5vr6+XLt2jeDgYDNGVjjIPfbDSc4uQkwxjVmIx7Fo0SIFqJiYGL1DKdTW/71eMR216K9FSimlbty4oRo0aJDj6y3KyE/Tp55ScXFxSimlFv61UDEdFXwiOE9x5faaw7OLnlV9lvV57Gs3Ru9lvVWXRV2MPj4wMFDZ2dndu/7M3n77bdW4cWO1Y8cOZWVlpf73v/+pY8eOqbCwMPX555/fO65Lly6qd+/e6sKFC+rKlStKqeyvvCil1M2bN5W9vb1q1KiR6ty5c5Z90dHRqnz58qp///7qwIED6p9//lGbN29WI0eOVKmpqXn4DuhPXlEVoujYt2+fAtShQ4f0DqXQyUu+zkvOjvv39cz85mulHv5zWvK1prjka6UkZwtRlDz33HOqY8eOeT6vefPmqnfv3maIqPCQe+zcSc7Wn6nytcwcFroLCgqidevWxXb6vqnM3DuTdlXbMbShtrD72LFjOXr0aI7H9q1cmdlDhrDklVeYPWQIfStXpjlk+xw+duxe4YJhDYfRrmo7Zu6ZabKYW7i1YM/5PSSnJZuszZwkpyWz9/xeWri1MPqcn376iWeffRZnZ+ds+55//nn++usvnJycWLlyJWvXrqVx48Z06tSJAwcO3Dvuww8/5MyZM9SsWZPy5cs/tC8nJyd69erFkSNHGDJkSJZ9bm5u7Nmzh7S0NLp164aHhweTJ0/G2dkZq8d4qiyEEI+jWBajM5G85OsaNWoYla+bA2MmTAAkX2cm+VoIIbSZw02aNMnzeb6+vmzYsIErV66YIarCQe6xH05ydhFjosFqIfIlKSlJlSpVSs2YMUPvUAq18Evhiumo5RHLlVLawvjk8DTT3d1drVu3TiUnJ6sdO3aopUuXqh07dqjk5GS1du1aVbVq1RzPy1hA/5fwXxTTURGXIoyOLbcnWQ/GbS75iVuYnsxCEqLokGJ0+WPJ+Vqph/+clnxd/EjOFqJouHHjhgLU4sWL83zu1atXla2trZo9e7YZIrN8lpyz5R5bZJCZw6JI+O2330hKSpL1hh/T0vCllCtVjr71+gIwZ86cbMe4u7uzf/9+kpOTqVGjBh07dmTw4MF07NiRGjVqkJKSwoEDB6hatWq2czPa61e/H+VKlWNp+FKTxO3xhAft3dvj/6c/SimTtPkgpRT+f/rTwb0DDZ5oYJY+hBCiuAkJCZH1hvNB8vXDSb4WQgjT++uvvwDyNXO4bNmy9OzZk4ULF5o4qsJBcvbDSc4uemRwWOgqKCiIevXqUbduXb1DKdQOxhzEq4oXdtZ2JCYmEhAQkO0Yf39/9u7dS//+/blw4UKWfdHR0fTv35+9e/fi7++f7dyAgAASExOxs7ajbZW2HIw5aLLYp7Wdxu5zu1kctthkbWb2c9jP7Dm/h2le08zSvhBCFDcZxeiaN2+udyiFjuTrh5N8LYQQpnf48GFKliyZ7/ttX19fQkNDCQ8PN3Fklk9y9sNJzi56ZHBY6CYtLY21a9fKrOHHpJTicOxhmlXSZnDt2bOH+Pj4LMfUqFEDb29vJk+enOPTw4xtr7zyCt27d6d69epZ9t+8eZM9e/YA0KxSM0JiQ0z2FNKnjg+DPQczadMkYhJiTNJmhpiEGCZvmswQzyH0qN3DpG0LIURxdeTIEdLS0mTmcB5Jvn44yddCCGEeoaGhNGzYEGtr63yd36NHD8qXL1/sZg9Lzn44ydlFkwwOC93s3buXq1evyuDwY0pITuD67evULlsbgJiY7D/8+/Xrx549e7I9zcxMKcX58+fZs2cP/fr1y7Y/NjYWgDpl63D99nVuJd8y0RWAn7cfpWxL4bPUh7g7cSZpM+5OHD5LfShlWwq/7n4maVMIIYQUo8svydc5k3wthBDmk99idBlsbW0ZPHgwixcvJjU11YSRWTbJ2TmTnF10yeCw0E1QUBCVKlWiRQvjq1uK7DKqkNrb2AOQkJCQ7Rg3N7d7iedRYmNjcXNzy7Y9o90S1iWy9GsKZUuVZdOQTZyNO0vHhR0f++lmTEIMHRd25GzcWTYN2USZkmVMFKkQQoiQkBA8PT0pUaKE3qEUKpKvs5N8LYQQ5pOUlMTx48dp2rTpY7Xj6+vLpUuX2Lx5s4kis3ySs7OTnF20yeCw0IVSiqCgIPr06YOVlfxn+DjsrO0AuJN6BwBHR8dsx8TExFCpUiWj2qtUqVKOT0Yz2r2bdjdLv8ZKT0/Pdb9nBU92jtjJ5cTLNPi+AT8f+TnPr9UopVh0ZBENvm/A5cTL7ByxE88KnnlqQ5iPuQoiCCEKlhSjy5/Ckq8h95/Xkq+Lh0f93iaEsHzh4eGkp6c/1sxhgMaNG+Pp6VmslpYoLDlb7rGFqfK1jUlaESKPIiIiOHXqlCwpYQKOdo6UKVmGqGtRADk+kQwMDOSzzz7jySefJDo6OseEYDAYePLJJ/Hy8mLUqFHZ9mckvhPXTlCmZBlK25U2Kj47OzusrKyIiYmhfPny2NnZYTAYcjy2tnNtDo48yNTfpjI8aDg/HPqBl5u+TJ86fXJNlMlpyaw5sYY5IXPYF72PFxu8yJedv6RMyTLcuXPHqDiFeSmluHLlCgaDAVtbW73DEULkU0Yxuv/+9796h1LoWHq+Bu31YYPBwJUrVyhfvrzk62JIKUVycjJXrlzBysoKO7u8P1wQQliG0NBQrK2tH3sZKIPBgK+vL2+//TY3btzA1dXVRBFaLkvP2XKPLUydrw1KpnIJHXz00Ud8+eWXXLlyRX7pNIEuP3fBwdaBoEFBJCYm4ubmlm3B/LVr15KSkkL//v2BrLOCMhLJqlWrsLGxoU+fPlnOdXZ2Jjo6GgcHB/r80ofbKbfZMmyL0fElJycTGxtLUlKS0efsjN3J/Mj5HLxyENcSrjQu25gGrg2o5lgNOys7ktOTOZNwhqM3jvLXtb+4cfcGLcq3YFS9UXSo1MHofkTByfjlqHRp4wcqhBCWZf/+/bRp04ZDhw7J7OF8sPR8DXDr1i0uXLhg9MwiyddFU6lSpahUqZL8ni5EIfaf//yHffv2ERYW9thtXbx4kSeffJJvv/2Wl19+2QTRWT5Lz9lyjy3AdPlaZg4LXQQFBdGjRw/5hdNEWri1YN7heSSnJePg4MCIESPw88u6QPyECRM4cOAAq1atYvLkyVkWzn/yySeZPXs2bdu2pVWrVtnaHzFiBA4ODiSnJbP3/F7GNh2bp/js7OyoWrUqqamppKWlGXVO9erVGdF2BMeuHGP58eWExIaw9J+lXL9z/d4xZezL0KRiE8Y0HcML9V/gqfJP5SkuUbBsbW3zXSlZCGEZpBjd47H0fA1QunRpateuTUpKilHHS74ueqytrbGxsXnoLDQhROEQGhr62OsNZ6hYsSLe3t4EBAQUm8FhS8/Zco8tTJmvZeawKHDnzp3D3d2dX375hRdeeEHvcIqEiMsReM7xZHn/5QxsMJDIyEjq16+f7Th3d3f8/f3x9vZmz549xMbGUqlSJby8vNi4cSMTJ07k3Llz2c6LjIykbt26LI9YzqBfBxExLoIGTzQoiEvLQinFreRbJKclY2dtR2m70nLjIoQQBWjUqFEcOXKEkJAQvUMplCRfCyGEKAgpKSk4Ojry+eefM3nyZJO0uXLlSgYOHHgv1xR1krNFcSKDw6LA+fv7M3XqVK5evYqTk5Pe4RQZHQI6kK7S2TViFwaDgYEDB7Jy5cocj61RowZ9+/bFzc2NmJgYAgMDOX36dI7HDhgwgBUrVqCU4ukFT2NjZcPvI34345UIIYSwVI0aNaJVq1b83//9n96hFFqSr4UQQphbeHg4DRs2ZOfOnbRv394kbd65c4dKlSoxbtw4Pv30U5O0aekkZ4viQgaHRYHr3LkzdnZ2bNy4Ue9QipTgE8H0XNaTRX0XMazRMG7evEm7du2IiIjId5seHh7s3r0bZ2dnFh1ZhG+QL8GDg+lRu4cJIxdCCFEY3L59G0dHR77//nvGjs37cgVCI/laCCGEuS1atAhfX19u3rxp0glZ48aNY/369Zw5c6ZYLBcnOVsUF1Z6ByCKl+vXr7Nz50769u2rdyhFjk8dHwZ7DmbSpknEJMTg7OzMpk2b8r0upIeHB5s2bcLZ2ZmYhBgmb5rMEM8hkrSEEKKYOnLkCGlpaVKI7jFJvhZCCGFuoaGh1KpVy+Rv6vr6+nLhwgV27Nhh0nYtleRsUVzI4LAoUMHBwaSlpdG7d2+9QymS/Lz9KGVbCp+lPsTdiaNy5crs3r2bAQMG5KmdAQMGsHv3bipXrkzcnTh8lvpQyrYUft39Hn2yEEKIIkmK0ZmO5GshhBDmFBoaSpMmTUzebqtWrahbty4LFy40eduWSnK2KA5kcFgUqKCgIFq3bk2lSpX0DqVIKluqLJuGbOJs3Fk6Lux47+nmihUrOH78OJMnT8bZ2TnHc52dnZk8eTKRkZGsWLHi3tPMjgs7cjbuLJuGbKJMyTIFfEVCCCEsRUhICJ6enpQoUULvUAo9yddCCCHMJT093WyDwwaDAV9fX3799Vfi4+NN3r4lkpwtigNZc1gUmNu3b1OuXDn+97//8cYbb+gdTpEWfikc7yXeJKUk4eftx9CGQ+9VHE1MTLxXRfXKlSu8/vrrdO7cmTVr1uDg4ABoFUt/DvuZyZsmU8q2FJuGbMKzgqeelySEEEJnUozO9IzN1wkJCbz//vvcvXuXS5cuSb4WQgjxUP/88w+1atVi48aNeHt7m7z9CxcuULVqVX788UdGjRpl8vYtlbE5e+nSpWzZsoXvv/+e4cOHS84WhYIMDosCs27dOnr37k1kZCR169bVO5wi7/rt60zaOIkl4UtoV7UdE1pMoF/9fthZ22U5ztbWlsaNG3Pw4EGS05IJPB6I/5/+7Dm/h6ENh/KN9zfyNFMIIYo5KUZnPsbm66effpq9e/eSlpYm+VoIIcRDrVq1igEDBnDx4kUqVKhglj66dOlCcnIyO3fuNEv7lsqYnL1hwwZ8fHz4+uuveeWVVyRni0LBRu8ARPERFBREvXr1ZGC4gJQpWYbFzy1msOdgZu6ZyaBfB1GuVDnaVmlLs0rNqFO2DiWsS1CyRUmOux6nzy992Ht+L1eTrtLBvYNUTBVCCHGPFKMzH2PztX1ze9Kt0+kW0I3DVw5LvhZCCJGj0NBQ3NzczDYwDFphumHDhnH69GmqV69utn4sjTE5O71SOnjAglML2PHLDrnHFoWCzBwWBSItLY2KFSsyevRoPvvsM73DKZaOXj7K0vClHIw5SEhsCNdvX7+/Mwm6eHShhVsLBnsOpsETDfQLVAghhMX57rvvePXVV0lISJA1h83sUfnao6wHvZv1lnwthBAiR927d8fa2pr169ebrY/ExEQqVqzIa6+9xvvvv2+2fixdbjnbOtmaTvU6yT22KBRkcFgUiD/++IP27duzf/9+WrVqpXc4xZ5SilvJt0hOS2bs6LGsXraaxMRESpUqpXdoQgghLNCoUaM4cuQIISEheodSrGTO1xdjLuJR24MJEybg7++vd2hCCCEsVMWKFRkzZgwfffSRWft56aWX2LFjBydPnsTKysqsfRUGmXN23dp1sUq14vKly3qHJYRR5P/g4iYgAAwGOHOmQLsNCgqiUqVKtGjR4vEbM8c1XLwIL74ILi7g6Ah9+hT496ggGQwGHEs4UrZUWVo3aQ3Anj17dI5KCCGEpQoJCZElJXSQOV83qNUAg8FARESE3mEJIYSwULGxsVy6dIkmTZqYvS9fX19Onz7N7t27zd5XYZA5Z7tXdCfuRpzeIQlhNBkcFmanlCIoKIg+ffpY5hPF1FTo1g1274Z582DJEjhxAjp1gsREvaMzu/bt2wMyOCyEECJnt2/f5ujRozRv3lzvUIo9R0dHTp8+rXcYQgghLFRoaCgATZs2NXtf7dq1o3r16ixcuNDsfRU2devWJSUlhaSkJL1DEcIoFjhSJ4qaiIgITp06Rd++ffUOJWcrV0JYGPz4IwwYAL17w7JlcPo0/PST3tGZXcZMsIxfJIQQQojMpBid5ahYsSJXrlzROwwhhBAW6vDhw7i6uuLu7m72vqysrBg+fDgrV66UQdAHZDxQ/+OPP3SORAjjyOBwcXXoELRoAfb2ULMmzJ2b/RiDAaZPhwULoF49KFECqlaFtWu1/VeuwPjxUL8+ODhoyzG0bw9bt2Zp5tT776OATtbW4OMDpUuDuzt8/XXOsa1bBx06gJOT9vHygsDA7MedPWtce4+ycaPWT5cu97c1bgy1asGGDflrsxCxsbHB3t6eqKgovUMRQghhgUJCQrC1tcXDw0PvUIq9mjVrkpSURHp6ut6hCCGEsEChoaE0btwYg8FQIP0NHz6chIQEAnO6Xy/G5O1cUdjI4HBxNXYsvPACrFkDbdvCyy/D6tXZjwsOhhkz4M03tYHSSZPg1i1t3+XLcOMGTJumDeiuWgXVq0P37rB//70mQg8fBsB2/HhtX2AgtGoFU6ZkOQ6AOXO0mbulS2uzdpcvh65dIadKq2PGPLo9Y0RGQp06YGUFyclw5462vW5dOH487+0VQuXKlSM2NlbvMIQQQligkJAQPD09KVGihN6hFHuNGjUCICwsTOdIhBBCWKLQ0NACWW84Q40aNWjfvr0sLfGAjGU95O1cUVjY6B2A0MmECfDaa9rfu3WD0FD4+GN47rmsx0VFwT//QNmy2tedO9/f16CBtvxChrQ0bZ3etWth/nxo3Zpz585x5uxZbf/EiVq/AG3aQFCQNuDcWiuIRkICvPGG1kdw8P12u3fX1gV+0KPaM9aNG1Ctmvb3pk3h+nU4eVIrTnfjRt7aKqSqVavG3r179Q5DCCGEBQoJCaFVq1Z6hyEALy8vAHbu3Enjxo31DUYIIYRFiYuL4/Tp0wWy3nBmvr6+jB49mvPnz1OlSpUC7dtSWVlZUbJkSU6ePKl3KEIYRWYOF1fdu2f9uls3bd3dBwdhe/W6PzCck/nzoXlzcHYGGxuws4O4OPh3FuqaNWuwtrbWjv331QpAmxlcocK94wDYu1cbIB41Kns/Njk8x3hUe/lRtqw2KGxtDUppS2sUAw0aNCA9PZ2LFy/qHYoQQggLklGMTtYbtgwZr6keOnRI50iEEEJYmr/++gugQGcOA/Tv3x97e3sWL15coP1aOnk7VxQmMjhcXD044Fu2rDbz99q1rNtzW8h+1ix46SVo0kRb/uHgQe1TvjykpAAQFBTEU/Xra8c7O2c939r63nEAXL2q/enmZtw1PKo9Y7m4aAPaADt3wrFj2vrKN29q+4qBjBlh27Zt0zkSIYQQliSjGF1GYRWhLycnJ2xsbDheTJa9EkIIYbzDhw9TsmRJ6tatW6D9Ojk58dxzz7Fw4UKUUgXatyWrXr06CQkJeochhFFkcLi4enAQ+No1bXZuuXJZt+c0YzfD4sXa7N1588DbW5tB3LjxvaUYrl+/zs6dO41/rSWj7+ho4443lfr1teUzHkxkf/+t7SsGOnbsCMCBAwd0jkQIIYQlkWJ0lsfV1ZULFy7oHYYQQggLExoaSsOGDe+/uVuAfH19+fvvv/nzzz8LvG9LlfF2bkxMjN6hCPFIMjhcXG3enPXrLVu0GcB5SSQGAzg4ZN22bNm9pSmCg4NJS0szfk28Nm205SHmz8++L6c1h03F21ubJfzbb/e3hYVp6w736GG+fi1ItWrVMBgMhIeH6x2KEEIICyLF6CxP5cqVuX79ut5hCCGEsDAFXYwus06dOlG5cmUpTJdJxtu527dv1zkSIR5NBoeLK39/bVmILVtg2DCIiIB33slbGz17aoPMM2bA9u0wcyZMm3ZvKYagoCBatWqFq6urce05OcFnn2lt+fjAqlVa+598AmPG5C22vBg4EBo2hNGjtT7XroVBg6B6dW3ZjGLC0dGR06dP6x2GEEIICxISEiLrDVuYevXqkZKSQlJSkt6hCCGEsBBJSUkcP368wIvRZbC2tmb48OEsW7aMO3fu6BKDpZG3c0VhIoPDxdXcubBkiVZwbt8+bWmIPn3y1sY778Crr4KfH8rHhxsLFxI8ejRxNjacP3+e4OBgeuR15u2ECRAYqBWmGzkS+veH9eu1OM3FxkYbhG7TRhsMHjIEatWCbduyz4wuwipUqMCVK1f0DkMIIYSFkGJ0linjxn/37t06RyKEEMJShIeHk56ertvMYdCWloiLi2PdunW6xWBJqlatipWVlbydKwoFg5IVw8VjiIyMZM6cOQQEBBAfH59tv6OjIyNHjmT8+PEFvjC+yJsePXqwceNG0tLSsLKS50ZCCFHc7d+/nzZt2nDo0CEZILYgBw8epGXLlrz33nt8+OGHeocjhBDCAvzwww9MmDCBW7duYW9vr1scrVu3ply5cqxfv163GCyJi4sLLi4unDlzRu9QhMiVjACJfImLi2PgwIHUr18fPz+/HAeGARISEvDz86NevXoMHDiQmzdvFnCkwliNGjUCICIiQudIhBBCWAIpRmeZMmaFHTlyROdIhBBCWIrQ0FCeeuopXQeGQZs9vGnTJi5duqRrHJaiYsWK8nauKBRkcFjkWXR0NO3atWPlypV5Om/lypW0a9eO6OhoM0WWSWqqcR9xT9u2bQHYsWOHzpEIIYSwBFKMzjLZ2Nhgb2/PiRMn9A5FCCGEhQgNDdVtveHMXnjhBaytrVmyZIneoViEmjVrkpSURHp6ut6hCJErGRwWeRIXF0e3bt04evRovs6PiIjA29vb/DOIbW2N+8hi+fd06NAB0AYDhBBCCClGZ7nKly/PxYsX9Q5DCCGEBUhJSSEsLEzX9YYzlClTht69exMQEICsYAqNGzcGICwsTN9AhHgEG70DEIXL2LFjHzowXKNGDfr164ebmxsxMTEEBgZy6tSpbMdFREQwZswYVqxYYb5ADx407jiZDXWPk5MTNjY2HD9+XO9QhBBC6CyjGN348eP1DkXkwN3dnb179+odhhBCCAsQGRnJ3bt3LWJwGGDEiBH07NmTv/76y2Ji0ouXlxcAv//++72BYiEskQwOC6NFRkbmuJSEu7s73377LT169MhSyGzmzJkEBwczYcIEzp07l+WclStX8vfff5uvSF3z5uZpt4hzdXXl/PnzeochhBBCZ0eOHCEtLY3mkk8tkoeHB7t37yYmJgY3Nze9wxFCCKGj0NBQAIsZfOzWrRsVKlRg4cKFxX5wuH379gAcOnRI50iEyJ0sKyGMNmfOnGzb3N3d2b9/Pz179swyMAxgZWVFr169OHDgAFWrVjWqPaGvypUrc+PGDb3DEEIIoTMpRmfZWrZsCUidACGEENrgcK1atXByctI7FEBbG3/IkCEsXbqUlJQUvcPRVenSpbG1tSUyMlLvUITIlQwOC6MkJiYSEBCQbbu/vz8VK1bM9dyKFSvi7++fbXtAQACJiYmmClGYQN26dUlOTiYpKUnvUIQQQuhIitFZtk6dOgGwf/9+nSMRQgiht9DQUIuboevr68uVK1fYuHGj3qHozsXFRd7OFRZPBoeFUfbs2UN8fHyWbTVq1MDHx8eo83v27En16tWzbLt58yZ79uwxWYzi8WUUHpJ/FyGEKN6kGJ1lc3d3x2AwEBERoXcoQgghdJSenm6Rg8MNGzakcePGLFy4UO9QdFelShV5O1dYPBkcFkaJiYnJtq1fv37ZlpJ4GCsrK/r165dte2xs7GPHJkwnY00kGRwWQojiK6MYnQwOWzZHR0dOnz6tdxhCCCF0dPr0aeLj4y1ucBi0wnTr1q3j2rVreoeiq7p165KSkiJv5wqLJoPDwigJCQnZtuW1AEpOx+fUrtBPxkBARlEDIYQQxY8UoyscKlasyJUrV/QOQwghhI4y7tsscXB48ODBKKVYtmyZ3qHoKuP3qT/++EPnSIR4OBkcFkZxdHTMti2n2cS5yen4nNoV+rGxscHe3p6oqCi9QxFCCKETKUZXONSsWZOkpCTS09P1DkUIIYROQkNDcXNzo0KFCnqHkk358uXp0aNHsV9aQt7OFYWBDA4Lo+Q06zcwMNDoG5L09HQCAwOzba9UqdJjxyZMq1y5crLchxBCFGNSjK5waNSoEQBhYWE6RyKEEEIvhw8ftshZwxl8fX05dOgQx44d0zsU3TRt2hSQt3OFZZPBYWEULy8vnJycsmw7deoUwcHBRp2/fv36bOviOTs74+XlZbIYhWlUq1YtW/FBIYQQxYcUoyscMn6H2rlzp86RCCGE0IslFqPLzMfHhzJlyhTr2cNWVlaULFmSkydP6h2KEA8lg8PCKA4ODowYMSLb9gkTJnDx4sVcz7148SITJ07Mtv2pp54yVXjChBo0aEB6evoj/12FEEIUPVKMrvDIeE310KFDOkcihBBCD7GxsVy6dMmiB4dLlCjBiy++yOLFi0lLS9M7HN3I27nC0sngsDDauHHjsm07d+4crVu3Zt26ddmWmEhPT2ft2rW0atWKc+fOZTv30KFD1KxZk++++47k5GSzxS3yplWrVgBs27ZN50iEEEIUNClGV3g4OTlhY2PD8ePH9Q5FCCGEDjKWKchYtsBSjRgxgpiYGLZu3ap3KLqpVq0aCQkJeochxEPJ4LAwWr169RgwYEC27WfPnqV3797Url2bqVOn8tVXXzF16lRq1apFnz59chwYHjBgACdOnMDb25uJEydSv359li5dKkVVLEDHjh0BOHDggM6RCCGEKGhSjK5wcXV15cKFC3qHIYQQQgeHDx/G1dUVd3d3vUPJVbNmzXjqqaeK9dISHh4epKenExMTo3coQuRIBodFnsybN++hN4ynTp1i1qxZvPbaa8yaNSvbGsMZPDw8mDdvHtWqVSMgIICwsDA8PT0ZMmQITZo0YcOGDSilzHkZIhfVqlXDYDAQHh6udyhCCCEKmBSjK1wqV67M9evX9Q5DCCGEDkJDQ2ncuDEGg0HvUHJlMBjw9fUlKCiImzdv6h2OLjLezt2+fbvOkQiRMxkcFnni7OzMpk2b8j2jyMPDg02bNuHs7JxlW1BQEHv37sXFxQUfHx86dOjAnj17TBW2yCNHR8eHDu4LIYQouqQYXeFSr149UlJSSEpK0jsUIYQQBczSi9FlNnToUJKTk1mxYoXeoehC3s4Vlk4Gh0WeVa5cmd27d+e4xERu7OzsWL16NZUrV85xf5s2bfj999/ZuHEjCQkJtGvXjt69e8sMVh1UqFCBK1eu6B2GEEKIAiTF6AqfjHUmd+/erXMkQgghClJcXBynT5+2+PWGM7i5udGlS5diu7RE1apVsbKykrENYbFkcFjki7OzMytWrOD48eNMnjw5y0zgB4+bPHkye/fuxdnZmbfeeivXdg0GA97e3oSEhLB06VKOHj1Ko0aNGD58uMxkLUC1atUiKSlJ1oAWQohiRIrRFT7PPPMMIIPDQghR3Pz1118AhWbmMGiF6fbs2UNUVJTeoeiidOnSnDlzRu8whMiRDA6Lx1KvXj1mz55NdHQ0mzdvJiAgAH9/fwICAti8eTPR0dHMnj2bNm3a8O233/Lrr7+ycuXKR7ZrZWXFiy++yPHjx/nuu+/YunUrdevWZdKkSVy6dKkArqx4a9SoEQARERE6RyKEEKKgSDG6widjUODIkSM6RyKEEKIgHT58mJIlS1K3bl29QzFanz59cHZ2ZtGiRXqHootKlSrJ27nCYhmUVP4SBUQpRf/+/fnjjz84duwY5cqVM/rcxMRE/Pz8+Pzzz0lNTWXKlCm89tprODk5mTHi4mvdunX07t2bb775hkmTJukdjhBCiAIwatQojhw5QkhIiN6hiDwoWbIk1apV4/jx43qHIoQQooAMGzaMqKgo9u/fr3coeTJ27Fg2b97M6dOnsbIqXnMVfXx82LBhA2lpacXu2oXlk/8iRYExGAx89913pKWl5XnA0cHBgbfeeotTp07x3//+ly+++IIaNWowa9Ys7ty5Y6aIi68OHToAcOjQIZ0jEUIIUVCkGF3hVL58eS5evKh3GEIIIQpQaGhooVlvODNfX1/OnTvHzp079Q6lwDVu3BiAsLAwfQMRIgcyOCwKVMWKFfnmm29YtmwZa9asyfP5ZcqU4fPPP+fkyZM8//zzTJs2jTp16jB//nxSU1PNEHHx5OTkhI2NjcxCEkKIYkKK0RVe7u7uxMfH6x2GEEKIApKUlMTx48cL1XrDGdq2bUutWrWKZWE6Ly8vAH7//Xd9AxEiBzI4LArckCFD6NmzJy+//DI3btzIVxuVK1dm7ty5HDt2jDZt2vDSSy/h6enJ6tWrkZVSTMPV1ZXz58/rHYYQQogCkFGMTgaHCx8PDw/S09OJiYnROxQhhBAFIDw8nPT09EI5OGwwGBg+fDirVq3i1q1beodToNq3bw/I27nCMsngsChwBoOBH374gdu3b/Pqq68+Vlt16tRh+fLlHDp0iKpVq/L888/TunVrduzYYaJoi6/KlSvne/BeCCFE4ZJRjM7T01PvUEQetWzZEkB+9xFCiGIiNDQUa2vrQltAdvjw4SQmJvLrr7/qHUqBKl26NLa2tkRGRuodihDZyOCw0EXlypWZNWsWCxcuZOPGjY/dXrNmzdi8eTPbtm0DoFOnTnTr1k2K6jyGunXrkpyczO3bt/UORQghip+AADAY4MyZAukuJCQET09PSpQoYbpGzXENFy/Ciy+Ciws4OkKfPgX2PbJUnTp1Aih0RYmEEELkT2hoKE899RT29vZ6h5Iv7u7udOzYsVguLeHi4iJv5wqLJIPDQjcjR46ka9eujB07lps3b5qkzU6dOrF//35Wr17NuXPnaN68OS+88AInTpwwSfvFScarxbt379Y5EiGEEOZWKIrRpaZCt26wezfMmwdLlsCJE9CpEyQm6h2dbtzd3TEYDEREROgdihBCiAJQWIvRZebr68uOHTs4e/as3qEUqCpVqsjbucIiyeCw0I3BYGDevHnExcXx+uuvm7Tdfv36ER4ezvz589m3bx9PPfUU//nPf4iOjjZZP0VdxppIe/bs0TkSIYQQ5lRoitGtXAlhYfDjjzBgAPTuDcuWwenT8NNPekenK0dHR06fPq13GEIIIcwsJSWFsLCwQrnecGbPP/88Dg4O/Pzzz3qHUqDq1q1LSkoKSUlJeociRBYyOCx0VbVqVb744gvmzZvHb7/9ZtK2bWxsGDlyJCdOnGDmzJn8+uuv1KpVizfeeIPr16+btK+iKGOQIDQ0VOdIhBCiGDt0CFq0AHt7qFkT5s7NfozBANOnw4IFUK8elCgBVavC2rXa/itXYPx4qF8fHBy05Rjat4etW4H7xei6xsRobe3cCT4+ULo0uLvD11/nHNu6ddChAzg5aR8vLwgMzH7c2bPGtfcoGzdq/XTpcn9b48ZQqxZs2JC/NouIihUrcuXKFb3DEEIIYWaRkZHcvXu30A8Oly5dmueff56FCxcWq4LyGffYf/zxh86RCJGVDA4L3Y0dO5ZnnnmGMWPGmKViqb29PVOmTOGff/7h9ddf57vvvqNGjRp89tlnJBbj11AfxcbGBnt7e6KiovQORQghiq+xY+GFF2DNGmjbFl5+GVavzn5ccDDMmAFvvqkNlE6aBBk59fJluHEDpk3TBnRXrYLq1aF7d9i//14xuieffFI7fswYbV9gILRqBVOmwIPr2c6Zo83cLV1am7W7fDl07Qrr12ePzZj2jBEZCXXqgJUVJCfDnTva9rp14fjxvLdXhNSsWZOkpCTS09P1DkUIIYQZZUzcady4sb6BmMCIESM4efIke/fu1TuUAtOhQwdA3s4VlkcGh4XurKys+Omnn7h8+TJvvvmm2fpxdnbmww8/5J9//mH48OG8//771KpVizlz5pCSkmK2fguzcuXKERsbq3cYQghRfE2YAK+9pq21+/PP0KABfPxx9uOiomDvXhgxAjp31s4ZPFjb16CBtvzCyJHa+rzPPqstzeDoCPPn3ytGZ2trqx0/caLWb5cuMH8+2NpmnZmbkABvvKH1ExysLfHQvTu8/37OM5sf1Z6xbtzQCtEBNG0KNWpAUpK2rZiv39eoUSMAwsLCdI5ECCGEOYWGhlKrVi2cnJz0DuWxdejQAXd392JVmC5jrWh5O1dYGhkcFhYhYybvd999x65du8zaV4UKFfDz8+Pvv/+mS5cu/Pe//6V+/fosW7ZMZtw8oFq1asTHx+sdhhBCFF/du2f9uls3bd3d1NSs23v1grJlH97O/PnQvDk4O4ONDdjZQVwcxMZmL0b375rzgDYzuEIFyPygcO9ebYB41Kjs/djYZN/2qPbyo2xZbVDY2hqU0pbDKMa8vLwA2Llzp86RCCGEMKfDhw8X+iUlMlhZWTFs2DCWL1/O7du39Q6nQFhZWVGyZElOnjypdyhCZCGDw8JiTJgwAS8vL0aNGlUgC7RXr16dRYsWceTIEZ566ikGDx5Ms2bN2LRpU7Fa9yg3DRo0ID09nYsXL+odihBCFE8PDviWLQtpaXDtWtbt7u4Pb2PWLHjpJWjSRFv+4eBB7VO+PGl37mQvRufsnPV8a2vI/IbN1avan25uxl3Do9ozlouLNqAN2rrIx45p6yvfvHl/RnExlVFE9tChQzpHIoQQwlzS09P566+/iszgMMDw4cOJj49nzZo1eodSYOTtXGGJZHBYWAwrKyvmz59PdHQ07777boH16+npydq1a9m9ezelS5eme/fudOzYkX379hVYDJaqVatWAGzbtk3nSIQQoph6cBD42jVtdm65clm35zRjN8Pixdrs3XnzwNtbm0HcuDHcuEFCQgJpaWlZB4cfJaPv6GjjzzGF+vW15TMefID799/avmLMyckJGxsbjhfztZeFEKIoO336NPHx8UVqcLh27dq0bdu2WC0tUa1aNRISEvQOQ4gsZHBYWJQ6derw0UcfMXv27AIfnPXy8mLXrl0EBwdz48YN2rZtS9++fTl69GiBxmFJOnbsCMCBAwd0jkQIIYqpzZuzfr1lizYD2Nra+DYMBnBwyLpt2TJITeVmfDy2trZ4enoa316bNtryEPPnZ9/34HIXpuTtrc0S/u23+9vCwuDkSejRw3z9FhKurq5cuHBB7zCEEEKYScY6tUVpcBjA19eXLVu2EBMTo3coBcLDw4P09PRic72icJDBYWFxXn31VVq0aMGoUaO4k1GJvIAYDAZ69OhBaGgoS5YsITw8HE9PT0aMGMGZM2cKNBZLUK1aNQwGA+Hh4XqHIoQQxZO/v7YsxJYtMGwYRETAO+/krY2ePbVB5hkzuB0czInRo0maOJE7JUtyMTYWd3d3UvMyqOvkBJ99Btu3g48PrFqltf/JJzBmTN5iy4uBA6FhQxg9Wutz7VoYNAiqV9eWzSjmKleuzPXr1/UOQwghhIkopYi/G8/VpKvE343ncOhh3NzcqFChgt6hmdTAgQOxs7Nj8eLFeodSIDLezt2+fbvOkQhxnwwOC4tjbW3NggULOHXqFNOnT9clBisrKwYPHszx48f59ttv2bRpE3Xr1uWVV17h8uXLusSkF0dHR06fPq13GEIIUTzNnQtLlmgF5/bt05aG6NMnb2288w7XfH25+fHH0LMnV376iU43b3Lh9m1uxMVx8uRJKleuzJIlS4xvc8IECAzUCtONHAn9+8P69Vqc5mJjow1Ct2mjDQYPGQK1asG2bdlnRhdD9erVIyUlpUDqNgghhDCPiMsRvL3tbbr83IVyX5TDeYYz5b8oj/MMZ740fEnyC8m8ve1tIi5H6B2qybi4uNC3b18WLlxYLGr/yNu5whIZVHH4v08USp9++invvfce+/fvp0WLFrrGkpiYyDfffMPnn39Oeno6U6dOZcqUKTg5OekaV0GoU6cO0dHRJCYm6h2KEEKIPIqLi2Ps2LGsXLnS6HMGDBjAvHnzcH6wkJywaF988QXTpk1j8+bNdO3aVe9whBBC5EHwiWBm7p3JrrO7KFeqHF5VvGhWqRm1y9bG3saeO6l3GP3GaCo3r8z10te5mnSV9u7tecPrDXrULvxLK23atInu3btz8OBBmjdvrnc4Zmdtbc3TTz/N77//rncoQgAyOCwsWEpKCq1atSIlJYVDhw5RokQJvUPi2rVrzJgxA39/fxwdHXnnnXd4+eWXsbe31zs0s+nRowcbN24kLS0NKyt52UAIIQqL6OhounXrlq+18z08PNi0aROVK1c2Q2TCHA4ePEjLli157733+PDDD/UORwghhBGuJV1j0qZJLA1fSruq7ZjYciJ96/XFztouy3GxsbG4ubnx66+/0rNPT4Iig/D/05/d53YzxHMIft39KFOyjE5X8fjS0tKoUqUKzz//PP7+/nqHY3bOzs64uroWy6UrhWWSkR5hsWxtbVmwYAGRkZF8+umneocDQNmyZfniiy84efIkffv2ZerUqdStW5eAgADS0tL0Ds8sGjVqBEBERNF5dUkIIYq6uLi4fA8Mg/Yz39vbm5s3b5o4sgekphr3EY+UUaDoyJEjOkcihBDCGGGXwmj4Q0M2RG1gUd9F7Bqxi4ENBmJnbUdiYiJbtmwhICAAf39/Zs6cCWhLCNlZ2zGwwUB2jdjFor6LCI4KxnOOJ+GXCm+dGGtra4YOHcqyZctITk7WOxyzq1SpEleuXNE7DCHukcFhYdEaNWrEO++8w6effspff/2ldzj3PPnkk8ybN4+jR4/SsmVLRo4cScOGDQkKCipy6yS1bdsWQF55EUKIQmTs2LEPHRiuUaMGU6dO5auvvmLq1KnUqFEjx+MiIiIYY84CcwC2tsZ9CrhAbWFkY2ODvb09J06c0DsUIYQQjxB2KYxnAp6hgkMFjo4/yrBGwzAYDERGRjJ58mTc3Nzo1q0bI0eOZNKkScyePRvQ7s0mT57M33//jcFgYFijYRwdf5QnHJ6gQ0CHQj1A7Ovry7Vr1wgODtY7FLOrWbMmSUlJpKen6x2KEIAsKyEKgeTkZJo3b461tTV//vkntra2eoeUzcGDB3n77bf57bffaNWqFTNmzOCZZ57ROyyTiI+Px9nZmWHDhrFo0SK9wxFCCPEIkZGR1K9fP9t2d3d3vv32W3r06JFlmaD09HSCg4OZMGEC586dy7G9unXrmifYQ4eMO65ZMzAYzBNDEVK1alUSEhK4ceOG3qEIIYR4iGtJ12j4Q0MqOFRgu+92XOxdHrtGQNydODou7MjlxMuEjwsvtEtMtGjRAjc3N9asWaN3KGaVMQEuNDSUxo0b6x2OEDJzWFg+Ozs7FixYQHh4+L3XaSxNixYt2Lp1K1u3biUtLY2OHTvi7e1NaGio3qE9NicnJ2xsbDh+/LjeoQghhDDCnDlzsm1zd3dn//799OzZM9v68VZWVvTq1YsDBw5QtWpVo9ozmebNjfvIwLBR3N3diY+P1zsMIYQQuZi0aRJJKUmsH7weF3sXoqOjadeuXZ4GhgFWrlxJu3btiI6OxsXeheDBwSSlJDFp4yQzRW5+vr6+bNiwocgvueDl5QXI27nCcsjgsCgUmjVrxuuvv86HH36Y7/UTC8Kzzz7Ln3/+yapVqzhz5gxNmzblxRdf5OTJk3qH9lhcXV05f/683mEIIYR4hMTERAICArJt9/f3p2LFirmeW7FixRyLwAQEBJCYmGiqEIUZeXh4kJ6eTkxMjN6hCCGEyEHwiWCWhi/Fz9sPN0c3k9YIcHN04xvvb1gSvoQNURtMHHnBePHFFzEYDCxdulTvUMyqffv2ABwy9g0qIcxMBodFofH+++9Ts2ZNRo4cSaoFF6cxGAw8//zzRERE8OOPP/LHH39Qv359xo0bV2hv1ipXriyvqAohRCGwZ8+ebDNHa9SogY+Pj1Hn9+zZk+rVq2fZdvPmTfbs2WOyGIX5tGzZEoAdO3boHIkQQoiczNw7k3ZV2zG04VDA9DUChjUcRruq7Zi5xzLfuH2UsmXL0rNnTxYuXKh3KGZVunRpbG1tiYyM1DsUIQAZHBaFiL29PfPnz+fQoUN8/fXXeofzSDY2Nrz00ktERUUxY8YMVqxYQa1atXjrrbcK3UBr3bp1SU5O5vbt23qHIoQQIhc5PYTs169ftqUkHsbKyop+/fpl2x4bG/vYsQnz69SpEwD79+/XORIhhBAPirgcwa6zu5jYcuK94nM5LSXh7u7OunXriIqK4ssvv2TKlCl8+eWXREVFsXbt2hyXgFq5cuW9InUTWkxg59mdHL1suW/c5sbX15fQ0FDCwsL0DsWsXFxc5O1cYTFkcFgUKq1bt+bVV1/lvffe4++//9Y7HKOULFmSqVOncurUKaZOnYqfnx81atTg888/JykpSe/wjNKsWTMAdu/erXMkQgghcpOQkJBtm5ubW57ayOn4nNoVlsfd3R2DwUBERITeoQghhHjA0vCllCtVjr71+gLmqxHQr34/ypUqx9Lwwrk0Q48ePShfvnyRnz1cpUqVQjdpTBRdMjgsCp2PPvqIKlWqMGrUKNLS0vQOx2jOzs589NFH/PPPPwwdOpT33nuPWrVqMXfuXFJSUvQOL1cZayLJa8VCCGHZHB0ds23L65JGOR2fU7vCMjk6OnL69Gm9wxBCCPGAgzEH8arihZ21nVlrBNhZ29G2SlsOxhw0VegFytbWlsGDB7NkyRKLXk7ycdWtW5eUlJRCM2FMFG0yOCwKnVKlSjF//nz27t3Lt99+q3c4eZaRzCMjI+nUqRPjxo3jqaeeYvny5aSnp+sdXo4yZg6HhobqHIkQQojc5DTrNzAw0Oj8kp6eTmBgYLbtlSpVeuzYRMGoWLFika/yLoQQhY1SisOxh2lWSbuvMneNgGaVmhESG4JSygTRFzxfX18uXbrE5s2b9Q7FbDLusf/44w+dIxFCBodFIfX0008zYcIE3nrrLf755x+9w8mXGjVqsHjxYkJDQ6lbty6DBg2iefPmbN682eKSuI2NDfb29kRFRekdihBCiFx4eXnh5OSUZdupU6cIDg426vz169dnm3Xq7OyMl5eXyWIU5lWzZk2SkpIs9oGzEEIURwnJCVy/fZ3aZWsD5q8RUKdsHa7fvs6t5FuPEbV+GjdujKenZ5FeWqJDhw6AvJ0rLIMMDotC67PPPqNixYqMHj26UN8ANWrUiPXr17Nr1y5KlSqFt7c3nTp1srhiMuXKlZOCREIIYeEcHBwYMWJEtu0TJkzg4sWLuZ578eJFJk6cmG37iBEjcHBwMFWIwswaNWoEUOQL+QghRGGSnJYMgL2NPWD+GgElrEtk6bewMRgM+Pr6smbNmiK7Lm/Tpk0BeTtXWAYZHBaFVunSpZk3bx6///47c+fONV9Hv/8OBoP2OZqp4uuNG2Bnp23PYb0oo0yfrp2PNhv6jz/+YN26dVy9epU2bdrQr18/jh079rhXYBLVqlXL9upTofD779r32RiZ/j0symefgbc3lCnzeP+9CSGKhXHjxmXbdu7cOVq3bs26deuyPVBNT09n7dq1tGrVinPnzhnVnkUqoHxt6TJmee/cuVPnSPJI8rUQogizs7YD4E7qHcD8NQLupt3N0q/FMSJnj7axIS0tjeXLl+etbUvNEQ+wsrKiZMmSnDx5Uu9Q8k5ydpEjg8OiUOvcuTNjx45l2rRpnD171rydOTvDihX3vw4MhMedSTV6NOzbd+9Lg8FAz549+euvv/j555/566+/8PT0ZOTIkTnesBekBg0akJ6e/siZZxbn99/hgw+MO/aBfw+L4e8PSUnQvbvekQghCoF69eoxYMCAbNvPnj1L7969qV27NlOnTuWrr75i6tSp1KpViz59+uSYZ6ysrNi8eXPhekOnAPK1JcsoInvo0CGdI8kjyddCiCLM0c6RMiXLEHVNW6bP3DUCTlw7QZmSZShtV/oxoi4AueRsZ2dnvL29cyzclytLzRE5KLRv50rOLnJkcFgUel988QWurq6MGTPGvGv19u6dNXGtWAF9+jxem08+Ca1bZ9tsbW3N0KFD+fvvv/nmm2/YsGEDtWvXZsqUKboVmWnZsiUA27Zt06X/AvGQfw/dnT8Pu3bBq6/qHYkQopCYN28eHh4eOe47deoUs2bN4rXXXmPWrFnZ1hjO8NRTTzF69GgmT55M165dOX/+vDlDNp0CzNeWyMnJCRsbG44fP653KOZjqf8ekq+FEA9hMBhoWqkpIbEhgHlqBAC8++67fP755+yM2kmzSs0wWOKMzcwekbN9fX05cOAAf//9t/FtWmqOyEG1atVyXGKkSLHUfw/J2VnI4LAo9JycnPi///s/tm7dyvz5883XUZcucOkShIXBtWva07L+/e/vv3IFxo+H+vW1p52OjtC+PWzdmr2tWrXuv0bzsIQdEIBdiRJM8PQkunFjEoBXZs9mVpUqfPjhh/lPIuvWQYcO4OSkfby8tCe0mYWEQNeu2jWUKgXt29P93ye4Bw4cuBcfBgPs3Ak+PlC6NLi7w9dfZ7sOo44DOHsWhg2DJ56AEiWgSRMt3vxcR7VqWr8ZTzQzf78ffAXGmH+Ph3xf2LUr/9drLGvr/J8rhCiWnJ2d2bRp00MHiB+lfPnybNmyhblz57JlyxYiIyPx9PTk559/triiqdnokK9N/nMf8p2v2bULV1dXLly4kLf4JF9LvhZCmFULtxbsOb+H5LRks9QI6Nq1K08++STTP5rO9hPbObzuMG+99RZ//vmn5b4B9Iic3at1a360s8PVy6tI5uy+ZcqQnp5+f4kQydmSs3Uig8OiSPD29mbEiBFMmTLl/s2Qqdnaak8xV6yA1au1p18VK97ff/mytkbStGnaD9VVq6B6de01hQeLy61apb1a8dJLj+53zBhsevXCbv16KvTqxWd37/Lbxx9Ts2ZN/Pz8uHv3rvHXMGeO9nS2dGn46SdYvlz7Qbx+/f1jTp7UEsLFi7BgASxbBqmpVBo2jGZAREREtvjo3l1LGq1awZQp2a/XmOPOn9e2794NX3wBa9dCw4bQty9s2ZL36wgMzPo93rfv/mf06KztGfPv8ZDvC88+qyW0vF6vEEKYWeXKldm9e3eOS0zkxtPTkytXrvDnn38C0KVLF8LDw+nVqxfDhw+nf//+XL161Rwhm4aO+dpkP/cfI1/z7LM86+rK9evX8xef5GvJ10IIsxjsOZirSVcJigwCTF8jwM/Pj9WrVzN311xwgKddn2bevHm0atWKKlWqMH78eLZs2UJysgUVqXtEzraPj6dh1ap8np5OWlBQkcvZk9evpymwY8eO/MUnOVtytqkoIYqI69evq0qVKqkePXqo9PR00zW8Y4dSoNSyZUoFBytVu7ZSnTsr9d13Sh08qO1bsCD7eampSiUnK+XiotSYMTm3/f772vk5WbBA2+fnd39bQoJStrYqbvJk9dJLLykrKyvl7u6uFi5cqFJTU3O/jvh4pRwdtdgflJJy/+///a9S1tZKnT17f9v160qVKqVW29god3f3R8an3nvPqOvIctzIkUrZ2SkVFZU1tqZNlWrTJu/XkSG373Fejs3l+6IGDLi/zdjrzY/c/nsTQohcHD9+XE2ePFk5OzsrINvH2dlZTZ48WUVGRqr09HTVv39/Vbp0aXXs2LEs7axcuVKVLVtWVahQQa1bt06nq3kIC8zX+fq5b4J8va9KFQWoxMREyddKSb4WorjJ+P/79Gm9I8mm/YL2qt38dvfuVwcMGJBjXvYFpUB99NJL6ssvv1RTpkxR1atXz/FYQA349+dbenq68vrJS3VY0EEppVRKSor6/fff1SuvvKI+d3FRG0FdNxiUAnVg/HgVHx+vzzciDzl73759ClBbt24tcjk7rWRJtRzUhAkT8haf5GzJ2SYmM4dFkeHq6soPP/zAhg0bWLx4sXk66dIFrl7VXmd4/vns++fPh+bNtYX1bWy0SqtxcfA4i8z/W1gG0J7iVaiAc2IiP/74IxERETRv3hxfX18aNWrE2rVrH/667969kJAAo0Zl32djc//v+/dDgwZQter9ba6u0LYtrSD7msc5xJfj9T7quI0btSfF1appTwszPu3awZ9/QsYTbmOvw9Ry+b7k+LTS2O+LEEIUgHr16jF79myio6PZvHkzAQEB+Pv7ExAQwObNm4mOjmb27NnUrVsXg8HAggULcHd3p2/fvty8efNeO/379yc8PJxmzZrRq1cvxowZY5lr5VlIvs5XeybI10/9+2+ye/fuvMcn+VrytRDCbKa1ncbuc7tZHKbdr+ZWIwDgx59+emSNACsrK4YNGwbAz2E/s+f8HqZ5TQPAxsaGDh068PXXX/N6yZK0a9qU8//29/3331OuXDl8fHyYN28ely5dMuWlGu8RObvV0aOElyhB2x49ilzOtvLyojUQHh6ev/gkZ0vONhEZHBZFSu/evRk8eDCTJ082T9VPW1t47TVtrcIKFbLumzVLe2WiSRPtFYyDB7VP+fKQkpL/Pp2ds35tbX2vvfr167Nq1SoOHDhAhQoV6NOnD15eXux6cI0e0BIuQA6VcbOIi4OyZbNvL1cOF6VISkrK+opTLvEZex334tu1S/seZ/74+UFaGmQMThh7HaaWy/eFGzeybzf2+yKEEAXIwcGBrl274uvry4QJE/D19aVr1644/LuufIbSpUsTFBTE5cuXGTp0aJaf+5UqVWL9+vX83//9H8uWLaNRo0b88ccfBX0pubOwfJ0nJsjXDv/e7GUZHJZ8LflaCKE7nzo+DPYczKRNk4hJiHnsGgFPPfUU7dq1o3///vyw5Acmb5rMEM8h9KjdI9uxhvPnKR0SQsN/6/R8MXMmn3/+OYmJibz88stUqlSJdu3a8eWXX3Ly5MnHus48eUTONoweTaqnJy8aDNzasaPI5WxX4MyZM/mLT3K25GwTkcFhUeT4+flha2vL+PHjzVM05+234Ztvsm9fvFh7kjVvHnh7azOSGjfO+YeaibVs2ZLffvvt3hpSHTp0oEePHvz111/3DypXTvszOjr3xlxc7ieHzK5eJblUKSCHdYdNoVw5bU2jjJv0Bz+urvePg0dfh6nl8n3BxaVgYxFCiAJQq1Ytli5dSnBwMB9++GGWfQaDgTFjxhAWFoabmxsdOnRg2rRpeVsH39wsMF8bxQT52qpMGQCOHDli2thA8rUQovA4dAhatAB7e6hZE+bOzX5MRiGtBQugXj2tYFfVqtrarGB8EdM8FMzy8/ajzwkrYpvVQTk5Ubl+fUIdHJjZtm22Y92B9UACcAZ4JdO+AQMGsHfvXrZu3UqfF/ow7o9xqLsKv+5+OX8/HijAVb58eV555RV+//13Ll26xPz58ylbtizvvfcetWvXxsPDg3fffZeQkBDzF6N9RM4uFxjIupQUVpw6VeRy9i0bm+xv55qK5GxhJBkcFkVO2bJl+e677wgKCmLFihUF17HBoP3CkFnGguoF0r2BLl26cPDgQVauXMk///xDkyZNGDx4sPbkt00b7ZeUf58UZ5E5xlat4NgxyFzk4MYN2LuXJE9PAHbu3Gn6C/D21vqtV0+7UX/wk/E6i7HXkSHj6eLjvvacy/eF1q0fr20hhLBQ3bt35+OPP+aDDz5gzZo12fbXqFGDnTt3MmPGDL755huaN2+e9cGkJdI5Xz+SCfK1oXVr7O3tiYqKMn18kq+FEIXF2LHwwguwZo32mvrLL2tFzx4UHAwzZsCbb8KGDTBpEty6pe3LSxFTMKpgVtmFKwiYf51rVneZNqgs1xZ8j0337rxerx7Hjx9n8uTJlCpZEoB5wEagH3AA+BqYNXAgkZGRrFixAmdnZ67evUpU2yjsK9pz87ubfPHhF3kezC1XrhwjRoxgzZo1XL16ldWrV9OsWTO+//57mjdvTtWqVZk4cSLbtm0jpSBnav6bs5988kk6d+7MwoULi1zO/qdcuexv55qK5GxhJDMuHiKEfvr370///v2ZMGECnTp1onz58ubvtGdP+Phj7ReLli21J9Vff539ideFC9on4++Q9ReGx/whaDAY6N+/P3379mXBggVMnz6d+vXrM2bMGD57802c331Xe5o9cqT25PvQIa1K6IIFWgOTJ2tPvnv2hP/9T3vt5PPPITkZp48/hk6dOHjwIHTq9FhxZvPhh9qaSO3bazG4u2u/jO3bp/1yNm+edpyTE3z2GUycmPt1ZGjaVPvz3Xe1Y+3ttSejGU9Hjf33yOX7wrRppv1ePGjnTm3WwqlT2teHDmnJG6B/f/P2LYQo9t566y1CQkIYNmwYf/75J/Xq1cuy39rammnTpuHt7c2wYcNo2bIlH3zwAdOmTcP6gVlKFsFC8vVDGZvnHpGXyh84YJ4ltiRfP5zkayEsy4QJ2nIFAN26QWio9vP/ueeyHhcVBf/8c//19s6d7+9r0EAbjMyQlqbdB61dqw2kPZgLJk7U+gVtwC0oSBtwzjguIQHeeAM6d6bSkq9ZusSbH09OxK+vH0Ofept6trbMnj2bu/Xrw8svc2PIEOq1bk0LR0fKurigBgzg1bp1oW5dlFL8HPYzkzdNppRtKf4c9ydbnbYydepUYmJi+PHHH7G1tc3zt83BwYF+/frRr18/UlJS+OOPPwgKCiIoKIhvv/0WV1dXevbsSd++fenWrVu2palMKlPOnta8OVtnzCD1+HFsilDODvP2hoAAwsLCaGzq+CRnP5zk7Kx0LYcnhBldvHhRlS1bVr3wwguP11DmSqoPylzZ8u5dpaZOVapSJaXs7ZVq21apffuUqllTqW7d7p+TUa3zYZ8MD6uy6+6ulK+v0eEnJSWpmTNnKldXV1WqVCn18/PPq5Q2bZQqXVr7tG6t1K+/Zj3pwAGtUqmDg1IlSyrl5aXU9u3q1q1bysrKSlWrVk1tGTJEKVA7Fy5Ut27denh8ebmOc+e0iqqVKmmVRytXVqpXL6UCA7NfWGCgUk8/nft1ZPjf/5Ryc1PKykqL5f337+8z9t8jl+9LFib6d8uiQwfj4hNCCDOJj49XTz31lKpbt66Ki4t76HF37txRb775prKyslJt27ZVUQ9Wxzanx8zXaTVqqCvNmqkFCxYoPz8/FdqnT4Hm62yMyXO55KU2bdoog8Gg/njpJaVArfziC7V58+b7OVvyteRrIYqqjP+/9+7Nun3KFKWsrZVKSbm/DZQaOjT39n76SalmzZRycsr6/3XPntn7/OuvrOc++aRSo0ff/3rTJu24JUuUUkpdS7qmhvw6RDEd1W5+O/VL+C/qburdXNtLfWmU+iX8F+X1k5diOmro6qHqWtK1e4csWbJE2draqu7du2e9T8uQOSfmQXp6ugoJCVHvvvuu8vDwUICyt7dXvXr1Uj/99JO6fPmy8Y3lI2en29urfVZWat5LLxWpnP3rr78qQL344otyjy05WzfF86pFsbFkyRIFqNWrV+sdiu5u3Lih3n77bVWqVCnl6uqqZs6cqZKSkow69/jx42rSpEnKyclJAdk+zs7OatKkSSoyMtLMVyGEEEIvJ06cUM7Ozqp3794qLS0t12N3796tatSooUqVKqXmzJmj0tPTCyjKvCtqOS7jeuzs7IrE9QghRJ5lDCT9/XfW7Z98om2/ePH+NlDqnXce3tZXX2nHjB6t1MaN2sDlwYNKlS+fdQKQsYNXixdrx+3YkeWw4BPBqsOCDorpqHIzy6nZLzdWCtTaTX5q9bHValn4MvXB7x+oi+VKqmXNSiimozos6KCCTwTnGPbWrVtV6dKlVYsWLbIP2uZzcPhBUVFR6ssvv1Tt2rVTBoNBWVlZqfbt26tZs2apU6dOPVbbD/Pcc88pJyenIpGzi9rvH6Jwk8FhUaSlp6er3r17qwoVKqhr1649+oRiICYmRo0fP17Z2NgoNzc39X//938qJfPT80xu3LihBgwYkGOyethnwIABuc4qE0IIUXitX79eGQwG9cEHHzzy2ISEBPWf//xHAcrb21tFR0cXQITGK2o5rqhdjxBC5FtuM4dtbJRKTb2/7cEZjw9q0kSp9u2zbktJ0drJz+BwxszhxYtz7C7iUoR6+7e31cwxDZQC5T4ZxXTtU+bzMiq2nL0K6eqpIi5FPDzmf4WEhKgnnnhC1a5dO+tgrYkGhzO7ePGimjdvnvLx8VElSpRQgGrYsKF6//33VWho6GM/JC5KOa4oXYsoOmRwWBR50dHRysXFRQ0bNkzvUEwvJcW4Tw5OnjypBg8erABVp04dtWLFiiwzwS5cuKAaNGiQp6SV8fHw8FAXLlwoqO9C4fMY/25CCKG3jz76SAFq7dq1Rh0fHBysKlasqFxdXdUvv/ySdefDbqbNzKQ5zphryMvP/W3blHrhBaWqVdOWvahRQ6mJE5W6erVgrkfcJ/laiMIp4+fyg4O+Hh5KtWiRddujBoebNlWqe/es2xYt0s7Lz+DwzZva6/qdOmXvK/PPk3/bS4gMV1cTr6r4O/HaAGseX6M/efKkqlWrlqpYsaI6fPiwttEMg8OZxcfHq5UrV6ohQ4YoZ2dnBSh3d3c1efJktWPHjodOTHqYAs9xZvzZL/najCRnPxYrhCji3Nzc+Prrr/n5558JDg7WOxzTsrU17nPnTrZTa9asyZIlSwgNDaVWrVoMHDiQli1bsnXrVm7cuEG3bt04evRovsKKiIjA29ubmzdvPu4VFk2P8e8mhBB6e/vtt+nbty9Dhw7l77//fuTxPXr0ICIigmeffZZBgwYxePBgrl+/XgCR5iwuLq7gc1xefu7PmwdxcVphlk2btMJFy5dD27aQlGQZ11NcSL4WonDz94dZs2DLFhg2DCIi4J138tZGz56webNWxHT7dpg5UyuU9WBBNGNlFP7avl0r/LVqldb+J5/AmDHZDi9dojRlS5XFsYQjBoMhz93VrFmTPXv28OSTT/K2lxfh77+v9Q1aAa5Vq7SPCTk6OtK/f38WL17M5cuX2bJlCz4+PqxcuZKOHTtSsWJFRo4cyZo1a0jKIa9lZvE5Ow8kX5uZ5OzHYqN3AEIUBF9fX1asWMHYsWM5evQoLvlN5pbm4EHjjitR4qG7GjduTHBwMLt27eKtt96ia9euPPHEE1y+fDnH42vUqEG/fv1wc3MjJiaGwMBATmVU+MwkIiKCMWPGsGLFCuNiLE5M8O8mhBB6sbKyYtGiRbRq1Yq+ffty4MABnJyccj2nbNmyLF++nL59+/Lf//4XT09PFixYQNcCijmzjN8FcmK2HJeXn/t+flC+/P1tHTqAqysMHKjdwA8frv/1FBeSr4Uo3ObO1QZiIyKgShXt4VufPnlr4513IDFR+9l84wY0bQqBgTB0aP7jmjABnnxSG7geOVLb5uEBr7+e/zZz8cQTT7Bjxw5OVa2K54cf3t/x3XfaB0Aps/RtZ2dHly5d6NKlC/7+/hw6dIigoCCCgoIICAigZMmSdOvWjb59+9KzZ0/Kli2b5XyLz9l5IPnazCRnPx69py4LUVDOnTunHB0d1UsvvaR3KBYrPT1dff/99zm+xuLu7q7WrVuXrQhRWlqaWrt2rapatWqO58kC+kIIUTRFRkYqJycn1bdv30cWqMvs/Pnz6tlnn1WAWtSpk/Zq68qVSjVvrlSJEtoyCj/8kP3EjFd/589Xqm5dpezslKpSRak1a7T9ly8rNW6cUvXqKVWqlPba7tNPK7Vly70mjh8/rny1W2DVHtR6UAmgzltbq4iXXsoxxx149121r0QJdRPUTVC7QfXNnOMyXiX+/XelevTQqm1XrarUrFn5+K4+xPHjWh+fffbA5uOSs4UQQhjl7t27aujQoQpQs2fP1jscFRkZqT7//HPVunVrBShra2vVsWNH9c0336gzZ84UqRxXlK5FFE0yOCyKlblz5ypAbd68We9QLNakSZNyTFqxsbG5nhcbG5tj8po8eXLBBC6EEKLArV27VgHqo48+ytN5aWlp6ttvv1VjbG2VApXi6KjUF19ohXqGDtUGQn/9NetJoA0g16mjDcj+9pt2zpIl2v6ICKUGDdIGj7dt09oaPlwpa2ul9u1TSmk5LmNw+G9Q/wU15IknVFKvXlr7/x53z/ffKwXqdufO6uVy5ZQ3qP+B+jFzjssYHK5dWyl/f20wesCAnNvLr/nztfY2bcqyWXK2EEKIvEhLS1Ovv/66AtS0adMeu1CcqcTExKgffvhBeXt7K1tbWwWo8uXLF5kcJ/laWDoZHBbFSnp6uurcubOqWrWqio+P1zsci3Pr1i3l5OSULfkYW3RozZo12c51dnZWt27dMnPkQggh9PLBBx8og8Gg1q9fn+dzYz/7TClQH4J655131N27d7UdDRpoFeIzA6Wcne8VZrt165bavHmzWrBggfLz81MLFixQmzdvvp9zUlOVSk5WysVFqTFj7uW4jMHhCZlzXEKCUra2Sr333v3+4uOVcnRUqnNnpVTWHGedKcfd+eEHLTY/v/vn5tRefl29qlTlykq1bq1Uppt4ydlCCFHMPUYBrlmzZilADR8+XCUnJxdw4Lm7efOmCggIuDdIXNhznORrURhIQTpRrBgMBubNm8e1a9d444039A7H4uzZs4f4+Pgs22rUqIGPj49R5/fs2ZPq1atn2Xbz5k327NljshiFEEJYlnfffZdevXoxePBgTpw4kadzK1asCMCTY8bw+eef07p1a209vm7dICwMUlOzntCrF5FXrjB58mTc3Nzo1q0bI0eOZNKkSYwcOZJfunXjhLMzt0uUABsbsLPTirvFxmbLcbvIlONKl4YKFSA29n5fe/dCQgKMGgVkzXFp/x5y8+ZNoqKitC/at79/bk7t5UdKirbW8N27sGwZZCpGJDlbCCGKuccowPXqq6+ybNkyli1bRq9evbh165YOF5AzJycnKlWqREpKSpbthTXHSb4WhYEUpBPFTvXq1ZkxYwYTJ05k4MCBPPPMM3qHZDFiYmKybevXrx9WVsY9R7KysqJfv37MmjUry/bYx705FkIIYbGsrKz4+eefadmyJf369WP//v04OjrmqY2Rr71Gw//8h2HDhtGsWTO2durE02lpcO2aNsj6r19DQuhfv36ObbwKzALmpaXxVloaV4FnO3fm0yNHsEpJyZbjbgL9M+c4a2ttMDbD1avan25u964zpxx38uRJPICI8+dJTku7t71BWhq3Ll7k7OHDefpe3KMU1d59F+f9+4maM4ek69fh+vV7u/fu3ZvtFMnZQghRjDxmAa5BgwZRvnx5+vXrR8eOHQkODuaJJ54wYYD5Z6770n379lGuXDmTxGgsydeiMJDBYVEsjR8/nhUrVvDSSy8RFhaGg4OD3iFZhISEhGzb3P69KTZWTsfn1K4QQoiiw8nJiaCgIFq2bMmIESNYtWoVhkyzXB/p2jWatWlDSEgI7777LgdnzaKNwcCFW7eoVqEC0dHRVAbCjx9/aBNDgZ3A2Ezb/tq2jY+A5Dt38p7jMm4eo6NzPT5ozRr6Aj179eJspu2ngd/Xr2fk+vUP7yMXfkB9oAuww9fXqHMkZwshRDHSvPljN9G5c2d27txJ9+7d8fLyYvPmzdSoUcMEwT0ec92XTp8+nenTp+c3LJORfC0sjQwOi2LJysqKn376iYYNG/LOO+8we/ZsvUOyCDnN9MrpqW1ucjo+rzPIhBBCFD716tVj8eLF9OnTh88++4y3337b+JM3b4Y2bShZsiRfffUVtwIDiYiOpn2TJnz66af88MMPRDyiCQUkPrDtRcAWOBASgvXAgdnOyTXHtWmjLQ8xfz4MGZLleGvuLy3Rt08fWLOG9evWkZzp5q1Sz570ataMkA8+eETk2bl9+y1P/Pwzp774gi8zL1eRydq1a/nggbYlZwshhMirJk2asHfvXry9vWnbti0bNmygadOmusZkrvvS6dOn06tXr3zHlR+Sr0VhIIPDotiqXbs2n3zyCa+99hoDBgzAy8tL75B0l9MTycDAQGbOnGnUay/p6ekEBgZm216pUiWTxCeEEMKy9e7dm/fff593332Xxo0b06NHD+NO9PcHJyfw8ICff6b06dPUXrKE57duZeLEiQ89rUaNGvTr1w83NzeurVxJt/37eQP4E2iOttTEDeDWrVv88ssv2c7PNcc5OcFnn8HEieDjQ7qvL1eXLOFtoBYw6t/DatWqBYCHhwdUq3b/fDs7SpQtS9m83mB/8QUsWABTp1KrdWtITr6/r3x5qFkTgKsZy14Yez0PkJwthBAiQ40aNdizZw8+Pj506NCBwMBAnn32Wd3iMdd9aZs2bQp84FvytSgU9K6IJ4SeUlNTVevWrVWdOnVUUlKS3uHoTiqpCiGEeFxpaWmqZ8+eytnZWUVFReV+8IIFSoFSK1cq1bSpUnZ2StWsqdS8eUoppY4fP34vnyhQ7//7d3d3d7Vu3TqVlpZ2v627d1X6lCnqdpky6rbBoHaDagUqCtTGf88zGAzK99+23B/Mce7uSvn6Zo8xMFCpp59WKfb2Kh7UXlD9MuW4Oz/8oF3D6dNZz3tYe4/SoYPWXk6fTO1JzhZCCGFqCQkJytvbW9na2qqlS5fqFkdRynFF6VpE0SWDw6LYO3bsmCpRooR6/fXX9Q7FIkyaNClb8qlataqKjY3N9bzY2FhVtWrVbOdOnjy5YAIXQghhMeLi4lSdOnVUgwYNVEJCQr7bySknubu75zsnubi4FKkcJzlbCCGEqSUnJ6vhw4crQM2aNUu3OIpSjitK1yKKJuPKIwpRhNWvX5/p06fz1Vdf8eeff+odju7GjRuXbdu5c+do3bo169atIz09Pcu+9PR01q5dS6tWrTh37pxR7QkhhCjanJ2dCQoK4uzZs4wcORKlVJ7bSExMJCAgINt2f39/KlasmOu5FStWxN/fP9v21NTUbNsKc46TnC2EEMLUbG1tCQgI4I033mDKlCm8/vrr2fJJQShKOa4oXYsomgwqP7+tC1HEpKam0rp1a27fvs3hw4cpUaKE3iHpJi4ujnr16nHp0qUc99eoUYO+ffvi5uZGTEwMgYGBnD59OsdjBwwYwIoVK8wZrhBCCAsWGBjIc889x2effcabb76Zp3O3bNlCt27dsmyrUaMGUVFRRq/RV6tWrWw56umnn+aPP/7I8Ryz5bgcBqVzZJP3ciADBw5k5cqVOe6TnC2EECKLgAAYORJOn866Tv5DfPPNN7z66qsMGTKEn376CTs7O7OHmFlOOc4XCADaV6lCiwEDTJPjLl6EV1+FjRshLQ06dYJvvjHqe2QsydfCksngsBD/Cg8Pp1mzZkybNo2PP/5Y73B0ERUVRa9evbh06RIuLi6cOXMm3215eHiwe/dunJ2dTRegEEKIQue9997jk08+YcOGDXh7ext9XkBAACNHjsyyberUqXz55ZdGtzF16lRmzZqVZdv333/P999/T0REhNHtPCjPOc5gMO6427fB3j5Psdy8eZN27doV7PUIIYQonPI4OAywfPlyhg0bRseOHfn1118pXbq0WUPMLKcclzE4XA04a0Qbj8xxqanQrBlcvw6zZkGJEvDGG3D3LoSHg4PDY18HSL4Wlk2WlRDiX56enrz77rvMmDGD0NBQvcMpcNu3b6dVq1Yopfjzzz/ZvXu3Vnk9Hzw8PNi0aZMkLSGEEHzwwQd0796dF198kX/++cfo8xISErJty6l6eW5yOj4tLY1NmzYVbI47eNC4Tz7eXHJ2di746xFCCFFsvPDCC2zatIl9+/bRsWNHLl++XGB9F0iOW7kSwsLgxx9hwADo3RuWLdMG0H/6KZ+RZyf5WlgyGRwWIpM333yTBg0aMHLkSJKTk/UOp8DMnTuXbt260axZM/bv30/t2rWpXLkyu3fvZsCAAXlqa8CAAezevZvKlSubKVohhBCFiZWVFUuWLKF8+fL07duXW7duGXWeo6Njtm0xMTF56jun4x0dHQs+xzVvbtzH2BnGD5CcLYQQIk8OHYIWLbS3VWrWhLlzsx9jMMD06bBgAZ3Gjyfuzh2CDh/mvUaNtIe9V67A+PFQv742u9bREdq3h61bs7YTEKC1tXMn+PhA6dLg7g5ff51zbOvWQYcO4OQETk5UHjiQ/W+8kS3HuQPrgQTgDPDKA80YneM2btT66tLl/rbGjaFWLdiwIfdz80jytbBUMjgsRCZ2dnYsWLCAiIgIPv/8c73DMbvU1FQmTZrEyy+/zMsvv8zGjRtxdXW9t9/Z2ZkVK1Zw/PhxJk+e/NCnlM7OzkyePJnIyEhWrFghTzOFEEJk4eLiQlBQEGfOnOGll14yqkBdTrN+AwMDjS6Kk56eTmBgYLbtlSpVAopejitq1yOEEMKMxo6FF16ANWugbVt4+WVYvTr7ccHBMGMGvPkmVhs3Yv/GGzgoRdu2bTn2++9w4wZMm6YN6K5aBdWrQ/fusH9/9rbGjNH2BQZCq1YwZUr24+bM0Wbuli6tzdpdvhy6dsVhx457Oa7rv4O484CNQD/gAPA10NnBIe85LjIS6tQBKytIToY7d7TtdevC8eNGf0uNJflaWCJZc1iIHLz77rvMnDmTkJAQPD099Q7HLOLi4njhhRfYtm0b/v7+RlU8TUxMZM+ePcTGxpKQkMAXX3xBTEwMcXFxOJhoLSYhhBBF1+rVq3n++ef5/PPPmTZtWq7HJiYm4ubmRnx8fJbta9eupVevXo/sa+3atfTp0yfLNmdnZ6Kjo3PMWQ/mOEdHRypVqoSXl1ehzHGZr2fr1q0sWbKEN954g/fee69QXo8QQggTyFhz+L334MMP72/38AA7Ozh8+P42gwGcneGff6Bs2Xubr1y5go+PD8ePH2f16tV0yZhxm5YG6enwxBPa8gz/939Z+/Tzg4kTtW23bkGZMvDmm/fjSEiAypWhZUv47bescaem3i/a+m97x8eP58+WLUlISMDV1pYXJ0wgdepU7GbMyNv3pHZtbf3lrVu178P163DypDaAvnYtPPB7iKk9+PvHK6+8Qo0aNQgNDZV8LQpM3ksiC1EMvPfeewQGBjJy5Ej279+PTT6qh1uyjMJzly9fZvPmzXTu3Nmo8xwcHOjateu9r3fv3s3y5cuxtrY2V6hCCCGKkOeee463336bt956i8aNG2fJKQ9ycHBgxIgR+Pn5Zdk+YcIEWrRoQcWKFR967sWLF5mYcQOayYgRIx56o/VgjivsMl/PM888w5IlS0hMTJQbTSGEENoM3sy6dYNvvsk6CAvQq1eWgWGA8uXLs2PHDgYMGMAKb2+aurtT9tq1rIOosbHZ+2zf/v7fS5eGChWyHrd3rzZAPGpU9nNzuB+vP3Ys9Rs1ur/h44+xu3Ytp6s1Xtmy2gC3tTUole/lnvLiwd8/PvzwQ27evCn5WhQoWVZCiByUKFGCBQsWEBoayldffaV3OCaVufDcgQMHjB4YzkmzZs0A+OOPP0wVnhBCiCLuww8/pFu3bgwaNIhTp07lemxOb7WcO3eO1q1bs27dumxLTKSnp7N27VpatWrFuXPnjGqvOHB3d8dgMDxWhXQhhBBFyAMDvpQtq838fXBw1d09x9MdHBxY17Ej89LTWX36NKtfeOF+cdXy5SElJftJDy6LYG2d9birV7U/jS0++6j2jOXiAnFx2t937oRjx7QCsTdvavsK2JNPPsmNGzcKvF9RvMngsBAP0bJlS6ZOncr7779PZGSk3uGYRE6F5x5H+3+f/u7Zs8cU4QkhhCiKMgrRnDkDgLW1NUuWLKFMmTL069ePxMTEh55ar169HIu2nD17lt69e1O7dm2mTp3KV199xdSpU6lVqxZ9+vTJcWB4wIAB1K1b1yTXYBKffQbe3tprtQaD1ocZOTo6cvr0abP2IYQQopB4cBD42jVtdm65clm35/IGrfWyZaj27Tn91ls8P28er/3yC+kNG2rrEOdHRt/R0fk7P7/q14eoKG2mcGZ//63tK2D16tUjJSWFpKSkAu9bFF8yOCxELj744APc3d0ZOXIkaWlpeoeTb48qPJdfGTOHQ0NDH7stIYQQxYerqytBQUH8888/jB49OtcCdfPmzcPDwyPHfadOnWLWrFm89tprzJo166GDnx4eHsybN88ksZuMvz8kJWV/tddMKlasyJUrVwqkLyGEEBZu8+asX2/ZAk2aaLNvjWUwYHBw4NNPP8XPz49Zs2Yx95lntKUp8qNNG225ifnzs+/Lb5vG8PbWZglnXuc4LExbd7hHD/P1+xDydq7QgwwOC5GLkiVLMn/+fA4cOJBtzcPCIi4uDh8fH77//nvmzJmDv7+/ydZQtrGxwd7enqioKJO0J4QQovjw8PAgICCAX375JdclnJydndm0adNDB4iN6WfTpk2WV+X7/HnYtQtefbVAuqtZsyZJSUnZluIQQghRDPn7w6xZ2qDwsGEQEQHvvJO3Nnr21AaZZ8xgYoMGhL74In337SPBxobU/AzmOjlpb9Vs3w4+PrBqldb+J5/AmDF5b89YAwdCw4YwerTW59q1MGgQVK8OL71kvn4fokOHDoC8nSsKlgwOC/EIXl5eTJo0iXfeeYeTJ0/qHU6eREVF0bp1aw4ePMjmzZt5+eWXTd5HuXLliM2p4IAQQgiR2aFD0KIF2NtDzZowdy79+/fnzTff5I033uC3337TlleYPh0WLIB69bQ1/6pWpXJICLt372ZU7958BxwDbgHxwE7g2Qe68gUUMLp2bQ67uVG5bl1t3cSvv845tnXroEMH7cbUyQm8vCAwMPtxZ89qN6ylS+fenjEKuJhro3+L9oSFhRVov0IIISzQ3LmwZIlWcG7fPpg3D/r0yVsb77yjPeD08wMfHxqdOUPMt99yJS2NPw8e5NKlS3mPa8IELf8mJMDIkdC/P6xfr8VpLjY22iB0mzbaYPCQIVCrFmzbBjoUhWvatCkgb+eKgmVQub3HJ4QAIDExkYYNG/Lkk0+yY8cOrKws/7nK9u3b6d+/P+XLl2f9+vWPvb7wwzz99NPs3bu3UC+7IYQQwowCArQbPFdXePtt8PSExYu1z6+/ktanDz4+Phw8eJBr169D8+ZaxfO33oIqVSA0VCtOM3gwHD1K/LRprE9O5pd9+7ibmMhgYAjQDjiANtP4+5YtGbx1KyetrKjw8cc4Nm+u3fiuXKndBLdufT++OXNg/Hjt1dERI7SB3z//hHPn4Kefsl5D7dowaRLUrfvw9vIqY9B8wQKtfzNZv349vXr1Yvbs2UyePNls/QghhCjejhw5gre3N6VKlWLz5s3UqlVL75AKnVKlSuHu7s7x48f1DkUUE5Y/wiWEBXBwcOCnn35i165dzJkzR+9wHsnUhedy06BBA9LT07l48aLZ+hBCCFEETJgAr70G3brBzz9Dgwbw8cdYW1uzdOlSXP6tCK6iomDvXm2gtHNn7ZzBg7U2GjTAKTiYwVu3suzSJaZu2IDhxx9JLVmSRR06sHnzZqKjoxn87/E/2tsz8e+/oUsXbQ1DW1vYsOF+TAkJ8MYbWj/BwTBggLYG8Pvva7OqHjRxonYdD2vPgmUUkT106JDOkQghhCjKGjVqxL59+7CxsaFt27aSd/JB3s4VBU0Gh4Uw0jPPPMO4ceN44403LLbat7kKz+WmVatWgDZTWQghhHioBwuvdeumFXxJTaVMmTIEBQUBsMfVFVWmzMPbmT8fmjfHwc2Nrj16MHz0aOxv36aOoyNdu3bFIdMroC2mTmXhwoVaUZfSpaFCBch8s7V3rzZAPGpU9n5yWp//3wFWIOf2LJiTkxM2NjYyC0kIIYTZVatWjT179lCjRg2eeeYZtmzZUrABpKYa97FQ1apVIyEhQe8wRDEig8NC5MHnn39O2bJlGTNmTK6V1fVgzsJzuenYsSMA+/fvN3tfQgghCrGyZbN/nZYG164B4OnpCcDvZ87w9cPW8p01S1sPsEkTWL4cDh7UPuXLQ0pKtsP7jRhBq1atGD9+PCkpKdo6v5mPu3pV+9PNzbhreLCo3YPtWThXV1cuXLigdxhCCCGKgXLlyrFt2zY6dOiAj48PS5YsKbjObW2N+9y5U3Ax5UHG27nR0dF6hyKKCfOPHAlRhDg6OjJv3jy6devGjz/+yBhzVk3Ng6ioKHr16sXly5fZvHkznTt3LrC+q1WrhsFgICIiosD6FEIIUQj9Owic5WsbGyhXLsvmVm3b4v366zRu3JhOnTplPWfxYm327rx597elpsKNGzl2aWVlxffff0+LFi3w9/dnyoMHZPRdTG6+KleuzNGjR/UOQwghRDHh4OBAUFAQY8eOZejQoVy8eJGpU6eav+ODB407rkQJ88aRT61bt+aHH35gx44dDB06VO9wRDEgM4eFyKOuXbsyatQopk6dyvnz5/UOh+3bt9OqVSuUUhw4cKBAB4YzODo6curUqQLvVwghRCGyeXPWr7ds0WYAW1tn2dy5c2c6d+7MwIEDOXv2bNZzDIbslcOXLcv11dCmTZsyfvx43n//fVIfLJ7apo22PMT8+dlPtODXTfOrXr16pKSkkJSUpHcoQgghiglbW1vmz5/P22+/zWuvvcaUKVNIT083b6fNmxv3MRjMG0c+Zbyde+DAAZ0jEcWFDA4LkQ9fffUVjo6O/Oc//9F1eYmMwnPNmzc3e+G53FSoUIErV67o0rcQQohCwt9fWxZiyxYYNgwiIuCdd7IdZmVlxS+//IKTkxP9+vXLOpDZs6c2yDxjBmzfDjNnwrRp8G8xu4f56KOPcHBw4Pr161l3ODnBZ59pbfn4wKpVWvuffALmfjto506tv4w1+w8d0r5etcpsXTZt2hSA3bt3m60PIYQQ4kEGg4FPPvkEf39/Zs+ezdChQ0lOTtY7LItVtWpVrKysCA8P1zsUUUzI4LAQ+eDi4sLcuXPZuHEjixYtKvD+Hyw8t2HDBrMXnstNrVq1SEpKMv8TYCGEEIXX3LmwZAn06gX79mlLQ/Tpk+OhZcqUITAwkMjISMaOHXv/Qew778Crr4KfnzaYu2YNBAZmX8/4AS4uLnz55ZckJSURExOTdeeECVobCQkwciT07w/r12txmtP778OAAfDGG9rX332nfT1ggNm6fOaZZwAZHBZCCKGPCRMmsGLFCn799Vd8fHyIj4/XOySLVbp0ac6cOaN3GKKYMChLq6olRCEybNgw1q9fz9GjR3EztpjNY4qLi+OFF15g27ZtfPvtt7z88ssF0m9u3nrrLWbMmMGRI0do2LCh3uEIIYQoIn755RdefPFFvv76a1555ZXHakspRceOHYmJiSE8PJwSFrrOoDmlpqZia2tLr169WLt2rd7hCCGEKKZ+//13+vTpQ82aNdmwYQMVK1bUOySLU7duXS5cuEBiYqLeoYhiQGYOC/EYvvnmG0qUKMG4ceMKZHmJqKgoWrduzcGDB9m8ebNFDAwDtG3bFoCdO3fqHIkQQoiiZNCgQbz22mu89tpr7Nix47HaMhgMfPfdd5w+fZovv/zSRBEWLjY2Ntjb2xMVFaV3KEIIIYqxZ555hj/++IOLFy/Stm1byUs5kLdzRUGSwWEhHkOZMmWYM2cOa9eu5ZdffnnocUop4u/GczXpKvF34/M1kJxReA7QrfDcw3To0AGAg8ZWhRVCCCGM9Nlnn/HMM88wcOBAzp0791htNWjQgFdffZWPP/6Y06dPmyjCf6WmGvfRWfny5bl48aLeYQghhCjmGjZsyL59+7Czs8PLy0vuJR/QqFEjAMLCwnSORBQHsqyEECaQsczD0aNHqVChAgARlyNYGr6UgzEHORx7mOu37xfBKVOyDE0rNaWFWwsGew7G4wmPXNufO3cuEyZMoGPHjqxYsQKXRxTe0YOtrS2NGzeWpC6EEMLkrl27RvPmzSlTpgy7d++mZMmS+W7r1q1b1K9fnyZNmph2aQVjK57fvg329qbrN4+efvpp9u7dS1pamm4xCCGEEBmuXbtGz549CQ8PZ9WqVXh7e+sdkkXYsGEDPj4+JllaS4hHkcFhIUzgypUrPPXUU3Ts2BHfj32ZuXcmu87uolypcnhV8aJZpWbULlsbext77qTeIepaFCGxIew5v4erSVdp796eN7zeoEftHlnaTU1NZcqUKfj7+zNhwgS+/vprbGxsdLrK3D3xxBNYW1sTGxurdyhCCCGKoL/++ou2bdsyYMAAAgICMBg7GJuDX3/9lf79+7NmzRp69+5tmgAPHTLuuGbNjB9INoNx48bxww8/EB0dXWD1EoQQQojcJCYm8sILL7B582bmz5/PsGHD9A5Jd7du3cLR0ZEhQ4awePFivcMRRZwMDgthIj8u/ZExv46BhtCuajsmtpxI33p9sbO2e+g5yWnJBEUG4f+nP7vP7WaI5xD8uvtRpmQZiyw8l5smTZpw7Ngx7t69q3coQgghiqilS5cyZMgQ/Pz8mDhxYr7bUUrRo0cPjh8/zrFjxyhVqpQJo7RsCxYsYNSoUSxevJghQ4boHY4QQggBaBOj/vOf/zB//nxmzpzJa6+99lgPgosCOzs7GjZsyCFjH0ALkU8yOCzEAxITE9mzZw8xMTEkJCTg6OiIm5sbXl5eODg45HhO2KUwui/pzpUbV7D/3Z5TgacoV66c0e0ppVgctphJmyZRyrYUc5+ey2vDXuPy5cusXLnSotYXfphBgwaxfPlybt++jb2Or8sKIYQo2qZOnco333zDtm3b7q15nx8nT57Ew8OD1157jY8//tiEEVq2s2fPUq1aNSZMmIC/v7/e4QghhBD3KKV47733+OSTT3jllVf46quvsLLKuVRWfu7bC5snnngCg8HApUuX9A5FFHEyOCzEvyIjI5kzZw4BAQHEx8dn2+/s7Iyvry/jx4+nbt2697aHXQrjmYBnqOZSjfnPzqdTi0706NGDd999N8/txSTE0GFuB/659g/u293ZsngLtWvXNt9Fm9AXX3zBtGnT2LJlC126dNE7HCGEEEVUamoq3bp1Izw8nJCQEKpUqZLvtt5//30+++wzwsPDs+T2os7KyooOHTqwY8cOvUMRQgghsvn++++ZMGECAwcOZOHChZQoUeLevvzetxdGTZs2JSIiguTkZL1DEUWcDA6LYi8uLo6xY8eycuVKo88ZMGAA8+bNI9U2lYY/NKSCQwW2+27Hxd6FH374gXHjxuUphoz2fvnlF/479b+UGleK0hVKE/HfCMqULJPXS9LFgQMHaN26Ne+//z7Tp0/XOxwhhBBF2JUrV2jevDlPPPEEu3btyneButu3b+Ph4UGNGjXYsmVLsXl91dnZGVdXV86cOaN3KEIIIUSOfv31VwYPHky7du0IDAwkPT093/ftzs7OZozUfAYPHsyyZctITEwsVktgiYKX8/x8IQpSQIBWmEWHG5To6GjatWuXpwQDsHLlStq1a8fo1aNJSklimxqGS0lXLu7fz7fffpvnOFauXEnNmjV5+eWXGTdyHFHt5vLtz1dJrVYVSpaEmjVh0iS4di3PbReUZs2aAVrBICGEEMKcypcvT2BgIBEREYwbN478znUoWbIk/v7+/Pbbb6xYscLEUVquihUrcuXKFb3DEEIIUZgU8H37888/z5YtWwgJCaFNmza0bt063/ft0dHR2gZTX8P27TBoEFSvbpb79ox77D/++MMk7QnxMDI4LIqtuLg4unXrxtGjR/N1fsTdCIL+CWJGhxm42rsCMHz48Hy3d+3aNdzc3Pj444+p8MtaWpWuxxttEtn/43R44w1YvhzatoWkpHy1b242NjbY29tz4sQJvUMRQghRDDRt2pR58+axcOFCvv/++3y306NHD/r168err76a4+upRVHNmjVJSkoiPT1d71CEEEKIh+rQoQPBwcGcOHGCv//+O19tRERE4O3tzc2bN00cHTBvHsTFwf/+B5s2mfy+vX379gDs2bPnsdsSIjc2egcghF7Gjh370IHcGjVq0K9fP9zc3IiJiSEwMJBTp05lPcgLOAu/zfqN//TwAeBEVFT+2wNiYmIYM2YMK777Drdy5TgZ0J43Uzby+9jfwdUVBg6EVatg+PDHuXSzKVeuHLGxsXqHIYQQopgYOnQoISEhvPLKK3h6et67icqr2bNnU79+faZPn86sWbNMHKXladSoERs3biQsLIzGjRvrHY4QQgjxUN988w2pqak57jP2PjsiIkK7z+7Rw7TB+flB+fL3v+7QwaT37Rkzh0NDQx+rHSEeRWYOC8tx6BC0aAH29trrGHPnZj/GYIDp02HBAqhXD0qUgKpVYe1abf+VKzB+PNSvDw4O4OgI7dvD1q1Zmon97DNWrFxJe2A9kACcAT50dWXdunVERUXx5ZdfMmXKFL788kuiZs3iaoMGxBsM3AR220Lf28CfsGrlKsLCwgBwN7a9qCjWrl1L1apVs13iypUr+fv6dQwGAxNaTGDn2Z0cvXwUPD21A2JiHvc7bTbVqlUrNrOuhBBCWIaZM2fSrl07BgwYwIULF/LVRtWqVfnf//6Hn58f4eHhJo7Q8nh5eQGwc+dOnSMRQghR6BSm+3ag779trVy58v5EprNnwccHSpcGd3f4+uv8fS8yDwxnMOF9u5WVFSVLluTkyZOP3ZYQuZHBYWE5xo6FF16ANWu01zBefhlWr85+XHAwzJgBb74JGzZoa/rcuqXtu3wZbtyAadNg3TrtaV316tC9O+zff6+J7du3AzAP2Aj0A8JLleK9GzfoWa4cVlaZ/teYMwervn0p6+5O6ty5TCxfni1PQs9jQKR2yKpVq4xvD+2HfK9evThw4ECOA8Rz5swBoF/9fpQrVY6l4Uth3z5tZ5Mmefq2FqQGDRqQnp7OxYsX9Q5FCCFEMWFra8vy5cspUaIEzz//PHfu3MlXO6+++ip16tRh3LhxRX65hYwZ1gcPHtQ5EiGEEIVOYbpvB3pmCmnHjh3aX8aM0foKDIRWrWDKlCz9PhYT37fL27miQCgh9LZggVKg1HvvZd3eoIFSTZpk3QZKOTsrdfWqcW2npiqVnKyUi4tSY8YopZS6deuWetneXilQE0Dx7yd4+XKlbG2zxhEfr5Sjo1KdO9/btGbNGsUwlPXA++f6gnHt5WDNmjX3zsn4ODs7q1u3bimllOq9rLd67rsOSlWurFTr1kqlpxt37TqYP3++AtTSpUv1DkUIIUQxc+jQIVWiRAk1atQolZ7PXLl9+3YFqAULFpg2OAtkY2OjmjVrpncYQgghCovCeN8OyjrTueNKltRi8/O7f25CglH37Ua5etXk9+1PP/20srKyMklbQjyMzBwWlqN796xfd+sGYWHw4PpCvXpB2bIPb2f+fGjeHJydwcYG7Oy0ReL/fdq2Z88ebv87q2jXv6fUqFED7/79oUKFe8cBsHcvJCTAqFH3Nvn4+GBV2Yq0HCbHPrK9HPTs2ZPq1atn2Xbz5s17i863KN+YybP2oO7ehWXLtFd0LFTHjh0B2JfxtFQIIYQoIM2aNeP//u//mD9/Pj/88EO+2ujYsSODBw9m2rRpXL9+3cQRWhZXV9d8L8MhhBCiGCsk9+0Z99lpmbpMun1b+0vmGgWlSxt13/5IKSnaWsMmvm/PeDs3OjraJO0JkRMZHBaW48HEUbYspKXBtWtZt7u7P7yNWbPgpZe0VziWL4eDB7VP+fLaD2u0om8ZMuqV9uvXT3slxdr63nEAXL2q/enmdm9TYmoi6fbpkMM94yPby4GVlRX9+vXLtj02NhaUYuisbTQ5n0pS4AqoVi3XtvRWrVo1DAYDEREReocihBCiGBo+fDgTJ05k0qRJ7N69O19tfPnll9y9e5d33nnHxNFZlsqVKxf5AXAhhBBmUEju2x92nw1oA9KZGXHfniulYMQI+PNPbTkNE963t27dGsi0JIYQZiCDw//P3p3HRVX9fxx/DwgqiJg7uJtrLqm5oLi2mktqiZnaLy1bNLds+fZt0xbLNkstrTS1TXPFXMrsW7ih5paZuaamBi65gIgJAvf3x22AkcUBBu7AvJ6PxzyUO/ee+xnAeXvPmXsO3MfVYXL2rDmCWL684/ZixbJu48svzVHAGTOkrl3Nkchmzcz5jP4VFxeX4bDgdCHiwH7udKN0icmJ5l8yXzA1+/ZysH9cXJw0apSq/bhVvfpLl1s0zVGbVgkICNCRI0esLgMA4KHeffddtWvXTn379s3Vp2yCgoL06quv6uOPPy7Sc/I2aNBAV65c0aVLl6wuBQBQmBSS6/Zs93e1UaPMeZe/+UZq3dqlTdvvzv35559d2i6QHp3DcB/ff+/49erV5kiit7fzbdhs5mqn6c2b53CLS0BAQIbDorNaSbRtW/M2k1mzUjf5evtKyr6sLNvLwf4dv/9e+vhjRb47WhG1087r7ipVqqTTp09bXQYAwEP5+Pho4cKF8vHx0T333KOEhIQctzF8+HDdeOONGjZsmJKTk699QCHUokULSdL69estrgQAUKgUkut2+/45qCp3nntO+vhjaeFC6eabXd589erV5eXlpd9++83lbQN2dA7DfUydat5esnq1dP/90u7dUk5v6ezRwwyriROln36S3nrLXAG1TJnUXTIbPQwPD898ZfLSpaU33jDb6t5dWrRI/j9u0PM/2TTjTNZlZNleJlJSUhQeHu6w7SlJTVeskEaN0kHbed1+urRK7dhtrqB66JBT7VqlTp06unTpUpFf6R0A4L4qVqyoJUuWaOfOnRoxYoQMw8jR8cWKFdO0adO0fft2ffLJJ/lUpbU6d+4sSalrHAAA4JRCct2e8t13Cpo9WzNy+PJy5O23zfOOGmV+ennz5rSHC6/bS5UqpT///NNl7QFXo3MY7uPjj6WvvjInrt+0ybzFpFevnLXx/PPSE09IU6aYofDNN1J4uMO8SKGhoSpZooTDYYcPH9bKlSszb3PECLONuDhpyBAZ99yj7nsMLa+TdRnZtneVFStWZJiGoZd91PXdd/XQ4zP1/bQLsrVrZ46IvvqqU+1a5cYbb5Qk5h0GAFiqVatW+uijjzRz5sxcdfC2bdtWDz30kJ577rkieUdM8+bNJUk7d+60thAAQOFSSK7bU+6+W6Hnz2t5ul38SpbMWZ3XYq/l3XfNa/X0Dxdet1euXFl///23y9oDMjAADzRq1ChDksOjevXqxokTJ7I97sSJE0b16tUN3SJDT8uQt3lss2bN8tbeVceOHj3aMAzDSEhKMMq/Vd547n/P5f1FR0QYhjlVvmHs3p22/dw5w/DxMbfPnp27tseNM483DGP58uWGJGPKlCl5rThzR46Y53rjjfxpHwBQpDz++OOGj4+PsWHDhhwf+/fffxtly5Y1HnjgAdcXlp0CyuySJUsaDRo0yGu1WSOzAQB5kOfr9iyus12mgPK6W7duhiQjOTk5rxVnjrz2eHxyGB5p2LBhGbYdO3ZMISEhWr58eYZbVVJSUrRs2TK1adNGx44dk36T5C+pgfn866+/nrf2sqgvfG+4zlw6owFNBuTuhWYmMFBasCDt6/DwjPM95dTQoeaosaSOHTtKUpFexAcAUHi89957CgkJUd++fXO8JkD58uU1ceJEffbZZ9bMzZvPmV2+fHmdPHkyb+0BAJBP8nzd7kR7LpHPeW2/O3fXrl15axPIAp3DcG9z5piT1bt4fp0GDRooLCwsw/ajR4/qrrvuUt26dfXkk0/q3Xff1ZNPPqk6deqoV69eaQFzWtKfklpLfcP66s4778yyvcV33SUvb29NePBBTXrrLT39xBOqf/31urtXL0UdOyZvyeERFham+vXryzAMTd0yVZ1qdFKjio0cG37jDXNV17Jlze/PnDnOv/i77nIMrgULcn4b0NWqVpVCQiRJpUuXVrFixbR37968tQkAgAvYF6jz9vZW3759c7xA3UMPPaQ2bdpo+PDhunLlSj5VmYV8zuwaNWrowoULeWsPAIB8kufr9nTs19nXlJTk3CO9fM7r9u3bS5LWrFmTtzaBLNA5DI81Y8YMNW7cONPnDh8+rEmTJumpp57SpEmTMswJLEmKlFRDunXsrddsT5Kenz1bY//zH739/vs6+OefSpIyfcyYOlWS9MWuLxR5PFLPhD6TsbGpU6VLl6Q778zBK/7XbbdJp05Ju3ZJZ89Ka9ZIffumPf/339Lw4VLDhuZoZ0CA1LGj9MMPGduqU8fsnLY//nXdddfpr7/+Mr+wd/CvXWvOJ1WqlFSjhvTeezmvPSvbtpnzU/XrJ9kv3HNy3qNHzcUUKlaUihc3V9tdvjz3+wEA3EqlSpW0ePFibd++XaNGjcrRsV5eXpo2bZr27Nmjqf9mdIHJ58xu3LixUlJS0j5RTWYDANxMnq/bZebdjBlOLk3n4+Pc4/LltGPyOa/td+du27bN3Ie8hovROQyPFRgYqFWrVmXboZsdr0NeurXirXp27bOKjou+Zns9JbXM5nHv9dfr9MqVCqxYUdFx0Rq9arQGNhmobnW7ZWzs+HFp3TpzEv+c8vExRzEXLJCWLDFHIytXTnv+9Gnp/Hlztdjly6VFi6RatcyO6M2bHdtatMi81eWhhxw2V6lSRefOnXPc9+GHzTbCw6U2baSxYzO2lxvr10u33GK+pnnzzNeXk/MeP25u37DBXG122TKpaVOpd29zBd6c7gcAcEtt2rTR9OnT9cknn+R4gboWLVpo+PDhGjdunKKiovKpwkzkc2a3bt1akhQREeG4L5kNAHATeb1ub9y4sVatWqXAwEDnDti61blH8eJpx+RzXpcqVUrFihXTvn37HPclr+EqVk96DGRr9mxzYvSFCw2jZUvDKF7cMGrXNoyPPsq4r2RO2j5rlmHUr28Yvr6GUa2aYXzzjfn86dOGMWyYYTRoYBh+foZRqpRhdOhgXAwPN8LCwlInqX/g3wnlO0rGCsmIk4w/JWNMuonse/fubdSvX9+o0bCGcf+QMsa2uv5GSkCAYQQEGFfatDHeatcuR+2FhYUZMTExhmEYxvl/zhvNPmpmBL8bbJy9dDb778/Wrc5Pcm+fLH/ePMNYudIw6tY1jFtuMYwPP8y+naQkw0hMNIwyZQzj4YczbzvdZPmGYRj9+/c3JBn//PNP2s8w/QJ1cXHmBP0vvnjtuq+WfrL87783f5ajRxtGSorjfs6ed8gQ83fl4EHH41u0MIy2bXO+HwDArQ0bNszw8fExNm7cmKPjzp8/b1SqVMno169fPlWWTgFl9p9//mlIMkaMGGE+R2YDANxUTEyMw3W7M4969eqlXmfniwK8xq5QoYJRsWJF8wvyGi7GJ4dRODzyiHTvvdI330jt2kmPPWaOyF1t5Upp4kTp2Welb7+VRo2SLl40n8titM6/b18tGDtWe/fu1ejRo+VXsqQkaYak7yT1kfSzpPckTerXT/v27VN4eLi+++479Tt+Vp/PjtFZrwQ907+czs6epmJ33qmnGzTIUXsLFixQYGCgouOi1eWzLjoac1SrBq5S2ZJl8+f7edtt0pkz5u0g99yT8flZs6SWLc2J9YsVk3x9pZgY6cQJp5pv0aKFJCkyMjJt47+3wkgybz+pVMnp9jK1erU5t5P9NpZ001o4uNZ5v/vOHNmtWdNxDqn27aUtW6TExJztBwBwa++//75at26te+65RydykENlypTRO++8owULFuiHzG4DzS/5mNk1atSQzWbT7t27HZ8gswEAbiYwMFALFixIvc7O6pPAgYGBGj16tMaOHatDhw7p+PHjBVNgPl9jV61aVefPn3fcSF7DRYpZXQDglBEjpKeeMv9+xx3SL79Ir70m3X23434HD0qHDplz40jmrRB2jRqZt0TYJSdLN99s3rowa5YafPKJ3n//fSU0bCg99pjODxyoBiEhahUQoHJlysgIC9MT9etL/05iX6t8eb2ekqKfbDZNCb1DvzT4RTP/GKkpvado0A3PqYGPj9PtGYahL3Z9odGrRsvPx09rB69Vk0pN8u/76eNjfj9PnTLfyNMH5qRJ0pNPmqujvvaaVL68ub1bt7S5hq7BPifS+vXrdUvNmubGq8Pb29vp9jK1Zo00cKD05ZdmcI0dm/l+1zrvmTPSyZMZb5Wxi42VKlRwfj8AgFvz9fXVokWLdNNNN6lv376KiIiQr6+vU8cOHDhQM2fO1OOPP67ffvtNxdPfUppf8jmzAwICMs7RSGYDANxUgwYN9P7772vChAmKjIzUiRMnFBcXp4CAAAUFBSk0NFT+/v5KTEzUihUr9Pjjj2vNmjWyZdXR6Sr5nNcNGjTQL7/8okuXLsnPvpG8hovQOYzC4eqF1+64Q5o82RxVKpbu17hnz7SO4czMmiVNm2Z2IqdfnTvdKJf9Qq/N00+rzY03pu1z9WjYxo0qdumSSjz+uFZ++KGefflZHW98XP+39P/0yY5PNKLVCPVp2Cfb9pKjo7Ro93xN3TJVkccjNajpIE3uOjn/PjGc3nPPZb79yy/NkcD0E/YnJZmfunbSTTfdJEnauXOnOQqYH8aOld55x5zQ/9lnpQ4dpFatct5O+fLmvEYTJmT+/HXX5Ww/AIDbq1y5shYvXqxOnTpp9OjRmj59ulPH2Ww2ffjhh2rWrJneeecdPf/88/lc6b/yMbMrV66ctohsfiGzAQAu5u/vr9tvvz3L5319fTV16lTdcccdmjdvngYMGJD/ReXzNfa8efO0fv163ZHHMrNEXnssOodROFzd4VuunPnJ37NnzU5buxo1sm4jp6N1zoyGSWrXt69eqVRJL730UmrovBX5lvov7q/yfuX1wuGqGi1p+cl1SvI9rITkBB04e0CPXj6riJ1f6b7Fs9SpRietHLAy88XnCprNZoZBevPmmeHlpGLFiqlEiRI6cOCAi4tLx/7ze+89cwL7/v2lHTsy/tyupWtX6X//kxo0MG+Jyet+AIBCISQkRB9++KEefvhh3XTTTRo6dKhTxzVq1EhPPPGEXnvtNQ0YMEC1atXK50qz4YLMvv7663XgwAGlpKTk30rVZDYAwAK33367+vbtqyeffFI9evRQ6dKlrSnEBXltvzt3w4YNuuP6611ZXRry2mPROYzC4ezZjF8XK5b25mVXLJtfaReM1jmwnzsqSi+88IIOHDigwYMHKyIiQmsGr9Hvp3/X3N/mKvHgN5Kkkd+N0tF/B77KliyrR2SoXrl62j1snhpVbJS7GvJDjx5m5/nEiVLr1tK2bWY4lCnjuN9ff5kP+98lhxVKy5Urp2PHjmnDhg1qL2nRokUq3bRp6m0+LlOypPT11+aI5sMPmyvE5sQrr5hzHXXsKI0ebQ4wnD5trhB78WLa74uz+wEACo2hQ4dq27Ztevzxx9WkSRO1adPGqePsA8KjR4/WsmXL8rnKbLggs7uWKaPvJL322mtqe+CAbpO0bt063VShgmvzWiKzAQAFbtKkSWrQoIFefvllvfvuu9YU4YK8viE+XpK0fPlydWzcmLyGS9E5jMLh+++ltm3Tvl69Wmre3Pw0r7NcMFrnoG1bc3Rr1izZ/p2D8M8//1SvXr30c2SkGtVtpAm3TJCO15VmDNHuYb8poVqQfL19Vcq3lGzTaqlyUAvJnTqGJen556X4eGnKFLPjvEULKTxcGjTIcb+ZM6WXX3bclu5ndNLbW8nJyZr56adqL+mpp5/WUZkLBDzwwAN658oVZTGzUM41bmx+Mnz4cGn6dGnYMOePrVZN2rpVGjdO+u9/zU+EV6xovu4HH8z5fgCAQmXy5MnatWuX7r77bm3fvl2VK1e+5jGlSpXS+++/r759+2rZsmW66667CqDSTLggs0dJGi1p3LhxekDSbZL+74EHFDNqlB544AENHz5c9V1ZM5kNAChA1apV04svvqgXXnhBQ4YMUePGjQu+CBfktb0n49dff9VXv/5KXsOlbIZhGFYXAWRpzhxpyBCpbFnzDbVxY+mLL8xPAS9dKvXqlbavzWa+qYwfn3lb48aZo3UTJjiO1l2+LLVpI61a5XjOI0cc58utWVPq3Nl83u6DD6SRI82pKYYMUWxKimY+9phqp6To5qNHzRVUc9Kes9aulf7+Wzp8WPrPf6THHzfbkqS+fXPengvExMTokUce0cKFC50+JiwsTDNmzMhypVkAAArCiRMndNNNN+n666/Xjz/+6NQCdYZhqFu3btq7d6/27NkjPz+/ax7jDshrAICnSUxMVJMmTVS5cuWCWZzOBchrFKR8m1oMcKmPP5a++spccG7TJvP2gvQdw854/nnpiSfM0bru3aVvvjFH67JbwO5aRoww24iLk4YMUeBDD2l49epacuWK+vXrp6Tcfir5WsaNk8LCzI5hSfrwQ/PrsLD8Od81REVFqX379jkKLklauHCh2rdvr6ioqHyqDACAawsKCtKiRYv0888/a2xWK3NfxWazaerUqTp58qRef/31fK7QNchrAIAnsi9Ot27dOs2bN8/qcq6JvEZB45PDQD748ccf1bVrVw0dOlTTpk0rFCOTuRUTE6P27dvr999/z3UbNzZqpLVr1157hDO7OaUBAMijTz75RI8++qhmzZqlIUOGOHXMuHHj9MYbb+i3335T/fouvaHTpVyR140bN9aGNWuc+0QSmQ0AcDNhYWHasGGD9u/fb93idNdAXsMKdA4D+WTmzJl6+OGH9d5772nMmDFWl5Nv+vXrl+WIZu3atdWnTx8FBwcrOjpa4eHhOnz4cIb9nH4T+ucfqUSJ3BcLAMA1PPLII/rss8+0fv16tW7d+pr7//PPP2rcuLFq166t1atXu+2AsCvyWiKzAQCF1/Hjx9WgQQM99thj1i1Odw3kNaxA5zCQj5555hm98847+uabb9SzZ8+sd3R2+gk3G9Xbt2+fGjZsmGF7jRo19MEHH6hbt27y8kqbvSYlJUUrV67UiBEjdOzYsdTtN/3756KFC1Uz/bzMV7vpJnNuaQAA8klCQoI6d+6s48ePa/v27apUqdI1j/n222/VvXt3ff3117r33nsLoMqccVVeS2ZmXzOvJTIbAOCWJk6cqBdeeEE7d+60ZnG6bJDXsAqdw0A+SklJ0T333KMffvhBGzZsULNmzTLf0dk3Yzcb1Rs9erSmTJnisK1GjRravHlztqu9nzx5Um3atMkQYKNHj9b777+fH6UCAOC06Oho3XTTTapbt65+/PFH+fj4XPOYu+++W5s3b9a+ffvc7lZV8hoAAJM7L05HXsMqdA4D+Sw+Pl4dO3bUqVOntGXLFgUHB2fcads25xpzo1G9+Ph4BQcH68KFCw7bly1blv2npNPt1+uqRQUDAwMVFRUlf39/l9YKAEBORUZGqnPnzho2bFiGC7XMHDt2TA0bNtSjjz6qSZMmFUCFziGvAQBwtHr1at1xxx366quvNGDAAKvLkURew1p0DgMFIDo6Wq1bt1blypW1du3aIvHmbA/U9GrXrq2DBw863OqSlZSUFNWpU0dHjhxx2P7999/r9ttvd2mtAADkxvTp0zV8+HDNnj1bgwcPvub+9ltVf/nlFzVp0iT/C3QCeQ0AQEbutjgdeQ0rXfs3DECeBQcHa8WKFdq3b58GDRqklJQUq0vKs+jo6Azb+vTp41RwSZKXl5f69OmTYfuJEyfyXBsAAK7w2GOP6aGHHtJjjz2mbU7c5TN27FjVrVtXw4YNc5usJ68BAMho0qRJunDhgl5++WWrS5FEXsNadA4DBaRZs2aaN2+evvnmGz377LNWl5NncXFxGbZlOmVGNjLbP7N2AQCwgs1m0wcffKAbb7xRd999t06fPp3t/r6+vpo2bZoiIyP1+eefF1CV2SOvAQDIqFq1anrxxRc1efJk7d692+pyyGtYis5hoAD17NlT7777rt5++23NnDnT6nLyJCAgIMO2zEY7s5PZ/pm1CwCAVUqUKKElS5YoMTFR/fr105UrV7Ldv0uXLhowYICeeeYZnTt3roCqzBp5DQBA5saOHavrr79ejz/+uKyecZW8hpXoHAYK2JgxY/TYY49p2LBh+vHHH60uJ9cyG5UMDw93+jbalJQUhYeHZ9geFBSU59oAAHClKlWqaOHChYqMjNTTTz99zf3feecdJSQk6Pnnny+A6rJHXgMAkDlfX19NnTpV69at07x58yythbyGlegcBgqYzWbTlClTdPPNN6tv377at2+f1SXlSmhoaIaJ+w8fPqyVK1c6dfyKFSsyTJYfGBio0NBQl9UIAICrdOjQQe+//74mT56sL774Itt9g4KC9Oqrr+rjjz/W1q1bC6jCzJHXAABk7fbbb1ffvn315JNP6sKFC5bVQV7DSnQOAxbw8fHRggULFBwcrO7du+vMmTNWl5Rj/v7+ma7cPmLECJ08eTLbY0+ePKmRI0dm2D548GD5+/u7qkQAAFxq+PDhGjJkiB555BFt3779mvveeOONGjZsmJKTkwuowozIawAAsmdfnG78+PGW1UBew0p0DgMWCQwM1IoVKxQXF6c+ffooISHB6pJybNiwYRm2HTt2TCEhIVq+fHmGW2BSUlK0bNkytWnTRseOHXOqPQAA3IXNZtO0adPUuHFj3X333fr777+z3LdYsWKaNm2atm/frk8++aQAq8yIvAYAIGv2xemmTJli6eJ05DWsYjOsnnUb8HCbNm1Sly5dFBYWps8//1w2m83qknKkX79+WrhwYabP1a5dW71791ZwcLCio6MVHh6e4VYXu7CwMC1YsCA/SwUAwCWOHz+uli1bqlGjRlq9erWKFSuW5b5Dhw7V4sWLtX//flWsWLEAq3REXgMAkLXExEQ1bdpUlSpV0po1ayy7LievYQU6hwE3MG/ePA0YMECvvPKKXnzxRavLyZHY2Fi1b98+TyOsjRs31oYNGxQYGOjCygAAyD/r1q3TLbfcopEjR2rSpElZ7nfmzBnVr19fPXv21Jw5cwquwKuQ1wAAZO+HH37Q7bffrq+++koDBgywpAbyGlZgWgnADdx333165ZVX9NJLL+nrr7+2upwcCQwM1KpVq9S4ceNcHd+4cWOtWrWK4AIAFCodO3bUpEmT9N577+mrr77Kcr/y5ctr4sSJ+uyzz7R+/foCrNAReQ0AQPZuu+02yxenI69hBT45DLgJwzD0f//3f1q4cKEiIiLUtm1bq0vKkdjYWD388MNZ3gKTmbCwMM2YMYPgAgAUSoZhaMiQIZo/f742btyo5s2bZ7pfSkqK2rVrp/j4eO3YsUM+Pj4FXGka8hoAgKwdP35cDRo00KOPPprtnUH5jbxGQaJzGHAjCQkJuvXWW7V//379/PPPqlWrltUl5di+ffv00Ucf6YMPPsh0dfbAwEANHjxYw4YNU/369S2oEAAA1/nnn3/UoUMHnTlzRtu2bVP58uUz3W/Hjh1q1aqV3n77bY0dO7aAq8zIntczZszQpUuXMjxPXgMAPNXEiRP1wgsvaOfOnbn+BK+r2PN6zpw5io2NzfA8eQ1XoHMYcDNnzpxRmzZtVKJECW3cuLHQjvoFBQUpPj5eU6dOVVxcnAICAhQUFKTQ0FD5+/tbXR4AAC5z7NgxtWzZUk2aNNH333+f5QJ1I0eO1Jw5c7Rv3z5VqVKlgKvM3OjRozVlyhRNmDBBpUuXJq8BAB7PXRanSy82NlZlypRRixYtNGTIEPIaLkXnMOCG9u3bp5CQELVp00YrV67MdhV0d1WiRAnVq1dPu3btsroUAADy3Zo1a3TrrbdqzJgxeueddzLdJyYmRg0aNFCnTp00f/78Aq4wc3fccYd++OEHJSUlycuL5UgAAJDcY3G69CIjI9W+fXu9/PLLeumll6wuB0UM/wME3FCDBg20ePFi/fTTTxo5cqQK2xhOYmKiEhISVLduXatLAQCgQHTu3Fnvvvuu3n33Xc2bNy/TfcqUKaN33nlHCxYs0OrVqwu4wswdOnRIfn5+dAwDAJCOOyxOl966deskSe3bt7e4EhRF/C8QcFO33HKLpk+fro8++kiTJ0+2upwc2bJliySpRYsWFlcCAEDBGTVqlAYNGqSHHnpIO3fuzHSfgQMHqlOnThoxYoQSEhIKtsBMnDp1SpUqVbK6DAAA3M6kSZN04cIFjR8/3upStGPHDkl0DiN/0DkMuLGhQ4fq6aef1tixY7V8+XKry3Ha+vXrJUkdOnSwuBIAAAqOzWbTJ598ogYNGqhPnz46e/Zspvt8+OGHOnLkSJbTTxSk+Pj4QrkALgAA+a1atWp68cUXNWXKFO3evdvSWg4cOCBfX1/5+vpaWgeKJjqHATc3ceJE9erVS/fdd1+Wn0JyN9u3b5ckhYSEWFwJAAAFq2TJkgoPD1dcXJz69++vpKSkDPs0atRITzzxhF577TUdOXLEgipNBw8elGEYatKkiWU1AADgzsaOHas6dero8ccft3S6x6ioKJUtW9ay86Noo3MYcHNeXl768ssvVb9+ffXo0UPR0dFWl3RNBw4cUPHixRnVBAB4pBo1amjBggWKiIjQc889l+k+L730ksqXL6/Ro0cXcHVpIiIiJElt27a1rAYAANyZr6+vpk6dqnXr1mW5pkBBiI2NVfXq1S07P4o2OoeBQsDf3z91Wom77rpL8fHxFleUPUY1AQCe7uabb9bbb7+tt99+W/Pnz8/wfKlSpfT+++9r+fLlWrZsmQUVpq0R0LlzZ0vODwBAYWD14nTnz59XUlKSGjZsWODnhmegcxgoJIKDg7VixQrt27dPgwYNUkpKitUlZSk2NlY1atSwugwAACw1ZswYDRw4UA8++KB+/fXXDM/ffffduuOOOzRq1ChdunSpwOvbs2ePvL29VbFixQI/NwAAhYmVi9OtWbNGktS6desCPzc8A53DQCHSrFkzzZs3T998843++9//Wl1Ops6dO6fk5GRGNQEAHs++QF29evXUp08fnTt3LsPzH3zwgU6ePKkJEyYUeH3Hjh1T6dKlC/y8AAAUNlYuTrdp0yZJUqdOnQr0vPAcdA4DhUzPnj317rvv6q233tLMmTOtLicD+/yFjGoCACD5+fkpPDxcsbGxuu+++5ScnOzwfJ06dfSf//xHb7/9tvbv31+gtZ05c0bBwcEFek4AAAorqxans999xAewkF/oHAYKoTFjxuixxx7TsGHD9OOPP1pdjoPNmzdLkrp06WJxJQAAuIeaNWtq/vz5+t///qfnn38+w/PPPvusqlWrphEjRhTYxWZSUpISEhJUr169AjkfAACFnVWL0x0+fFj+/v7y8qILD/mD3yygELLZbJoyZYpuvvlm9e3bV/v27bO6pFS//vqrbDab6tata3UpAAC4jVtvvVVvvfWW3nzzTS1YsMDhuZIlS2rq1Kn63//+l+G5/GIfzG3WrFmBnA8AgKLAisXpTp06xfoAyFd0DgOFlI+PjxYsWKDg4GB1795dZ86csbokSYxqAgCQlbFjx6p///4aMmSIfvvtN4fnunXrpj59+uiJJ54okIvN9evXS5I6duyY7+cCAKAoKejF6S5evKjatWsXyLngmei9AQqxwMBArVixQnFxcerTp48SEhKsLolRTQAAsmCz2TRz5kzVqVNHvXv3zrBA3fvvv6/Y2NgCudjcsWOHJKldu3b5fi4AAIqSglyc7uDBgzIMQ02aNMnX88Cz0TkMFHK1atXSN998o61bt2ro0KEFOjF+ZuLj4xnVBAAgC/7+/lq6dKliYmI0cOBAhwXqqlevnnqxuWvXrnytY//+/fL19ZWvr2++ngcAgKKooBanW7NmjSQpJCQk384B0DkMFAFt27bV7Nmz9eWXX+q1116zrA77qGbTpk0tqwEAAHdXq1Ytff3111q9erVefPFFh+fGjh2runXravjw4UpJScm3GqKjo1WuXLl8ax8AgKKsoBan27JliyQWfEf+onMYKCLuu+8+vfLKK3rppZf09ddfW1LDTz/9JMnsrAYAAFm77bbbNHHiRL3xxhtatGhR6nZfX19NmzZNkZGR+vzzz/Pt/DExMapWrVq+tQ8AQFFXEIvT7dmzR97e3kzdiHxF5zBQhLzwwgsaNGiQBg8erE2bNhX4+bdu3SpJuvnmmwv83AAAFDZPPfWU+vXrp8GDB+v3339P3d6lSxcNGDBAzzzzTIZ5iV3h3LlzSk5O1g033ODytgEA8CT5vTjd0aNHVbp06XxpG7CjcxgoQuwL3bRq1Uq9evXSkSNHCvT89lHNsmXLFuh5AQAojGw2m2bNmqXatWurd+/eOn/+fOpz77zzjhISEvT888+7/Lz2+QtbtWrl8rYBAPAk+b043dmzZxUcHOzydoH06BwGipjixYsrPDxcAQEB6tGjh2JjYwvs3EePHlVgYGCBnQ8AgMLO399f4eHhOnv2rMMCdUFBQXr11Vf18ccfp96Z4yr2u4uYvxAAgLzLr8XpkpKSdPnyZdWrV89lbQKZoXMYKILKly+vlStXKioqSv369VNSUlKBnPfs2bOqUqVKgZwLAICi4vrrr9e8efO0atUqjRs3LnX78OHDdeONN2rYsGGpncausGvXLtlsNtWvX99lbQIA4KnSL043d+5cl7X7888/S5KaNWvmsjaBzNA5DBRRDRo00OLFi/XTTz9p5MiRLh3BzExiYqISEhJUt27dfD0PAABF0R133KHXX39dEyZM0JIlSyRJxYoV07Rp07R9+3Z98sknLjvXoUOH5OfnJy8vLgUAAHAF++J0Tz31lMsWp1u/fr0kqX379i5pD8gK/yMEirBbbrlF06ZN00cffaTJkyfn67m2bNkiSWrRokW+ngcAgKLqP//5j/r27asHHnhAe/bskSS1bdtWDz30kJ577jmdPn3aJec5deqUKlWq5JK2AACAydWL023fvl0SncPIf3QOA0Xcww8/rKefflpjx47V8uXL8+0869atkyR16NAh384BAEBRZrPZNHv2bNWsWVO9e/dWTEyMJGnixIny8vLSM88845LzxMfHq1atWi5pCwAAmFy9ON2BAwfk6+srX19fF1QHZI3OYcADTJw4Ub169dJ9992nnTt35ss5duzYIUkKCQnJl/YBAPAEpUqVUnh4uP7++28NGjRIKSkpKl++vCZOnKjPPvss9RbT3Dp48KAMw1DTpk1dVDEAALBz5eJ0UVFRKleunIsqA7JG5zDgAby8vPTll1+qfv366tGjh6Kjo11+jgMHDqh48eKMagIAkEd16tTR3Llz9e233+rll1+WJD300ENq06aNhg8fritXruS67YiICEkM5gIAkB9cuThdbGysqlWr5qLKgKzROQx4CH9//9RpJe666y7Fx8e7tP2oqCiVLVvWpW0CAOCp7rzzTr322mt65ZVXtHTpUnl5eWnatGnas2ePpk6dmut27WsEdO7c2UWVAgCA9FyxOF1MTIySkpLUsGFDF1cHZETnMOBBgoODtXz5cu3bty/1VlVXiY2NVY0aNVzWHgAAnu6///2v7rnnHv3f//2f9u7dqxYtWmj48OEaN26coqKictXmnj175O3trYoVK7q4WgAAYJfXxensd/q0bt3ahVUBmaNzGPAwzZs317x58/TNN9/ov//9r0vaPHfunJKTkxnVBADAhewL1FWrVk29e/dWbGysXn31Vfn7+2vs2LG5avPo0aMqXbq0iysFAADp5XVxuk2bNkmSOnXq5OrSgAzoHAY8UM+ePfXuu+/qrbfe0syZM/PcHqOaAADkj4CAAC1dulSnTp3S/fffr9KlS+udd97RggULtHr16hy3d/bsWVWpUiUfKgUAAOnlZXG6Xbt2yWaz8QEsFAg6hwEPNWbMGD322GMaNmyYfvzxxzy1tXnzZklSly5dXFEaAABIp27duvrqq6+0YsUKvfrqqxo4cKA6deqkESNGKCEhwel2kpKSlJCQoLp16+ZjtQAAQMrb4nSHDh2Sn5+fvLzotkP+47cM8FA2m01TpkxRly5d1LdvX+3bty/Xbf3666+y2WxcbAIAkE+6d++uV155RePHj9fy5cv14Ycf6siRI3rnnXecbsM+mNusWbN8qhIAAKSX28XpTp06xfoAKDB0DgMezMfHRwsWLFBwcLC6d++uM2fO5Kqdw4cPy9/fn1FNAADy0XPPPac+ffpo0KBB8vb21hNPPKHXXntNR44ccer49evXS5I6duyYn2UCAIB0crM43cWLF1W7du38KwpIh54cwMOVKVNGK1asUFxcnPr06ZOj21PtGNUEACD/eXl56bPPPlPVqlXVp08fjRkzRuXLl9fo0aOdOn7Hjh2SpHbt2uVnmQAAIJ2cLk73xx9/yDAMNWnSpACqA+gcBiCpVq1a+uabb7R161YNHTo0x5Plx8fHM6oJAEABCAgIUHh4uKKjozV8+HBNmjRJy5cv17Jly6557P79+1W8eHH5+voWQKUAAMAuJ4vT2Rd8b9u2bUGUBtA5DMDUtm1bzZ49W19++aVee+01p487ePCgDMNQ06ZN87E6AABgV79+fX311Vf65ptvtHfvXt1xxx0aNWqULl26lO1x0dHRKlu2bAFVCQAA7HKyON2WLVskSZ07dy6AygA6hwGkc9999+nll1/WSy+9pK+//tqpY3766SdJjGoCAFCQevTooZdfflnjx4/X3XffrZMnT2rChAnZHhMTE6Nq1aoVUIUAACA9Zxen27Nnj7y9vZm6EQWGzmEADl588UUNGjRIgwcP1qZNm665/9atWyVJXbp0ye/SAABAOi+88ILuuusuPf300xo6dKjefvtt7d+/P9N9z507p+TkZN1www0FXCUAALBzZnG6o0ePqnTp0gVXFDxeMasLAOBebDabZs6cqT///FO9evXSzz//rFq1ajnsEx8fr8jISEVHR+vHH3+UzWbT9u3bFRoaKn9/f4sqBwDAs3h5eenzzz9X69at9b///U9VqlTRiBEjtHr1atlsNoe83rBhgySpVKlSio+PJ68BALCAfXG6F154QQ8++KAaN27skNdxcXE6deqUqlSpQl6jwNiMnK48BcAjnDlzRm3atFGJEiW0ceNGBQYGat++fZo+fbrmzJmT6W0wgYGBeuCBBzR8+HDVr1/fgqoBAPA8+/btU+vWrdW4cWNt2rRJ7777ro4ePUpeAwDghhITE9W0aVMFBASobdu2+uyzz8hrWIrOYQBZ2rdvn0JCQtSiRQuVK1dOixYtcvrYsLAwzZgxQ4GBgflYIQAAkKRly5apV69eCggIUFxcnNPHkdcAABSsmJgY9erVS+vWrXP6GPIa+YnOYQDZmj9/vvr375+rYxs3bqxVq1apSpUqLq4KAACkFxUVpebNm+vvv//O8bHkNQAABSMqKkp33HGHfv/99xwfS14jv9A5DCBLMTExat++fa6Cy65x48basGEDI5wAAOQT8hoAAPdHXsNd0TkMIEv9+vXTwoULM32udu3a6tOnj4KDgxUdHa3w8HAdPnw4033DwsK0YMGC/CwVAACPRV4DAOD+yGu4KzqHAWRq3759atiwYYbtNWrU0AcffKBu3brJy8srdXtKSopW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IDqHAQAAAAAAAMAD0TkMAAAAAAAAAB6IzmEAAAAAAAAA8EB0DgMAAAAAAACAB6JzGAAAAAAAAAA8EJ3DAAAAAAAAAOCB6BwGAAAAAAAAAA9E5zAAAAAAAAAAeCA6hwEAAAAAAADAA9E5DAAAAAAAAAAeiM5hAAAAAAAAAPBAdA4DAAAAAAAAgAeicxgAAAAAAAAAPBCdwwAAAAAAAADggegcBgAAAAAAAAAPROcwAAAAAAAAAHggOocBAAAAAAAAwAPROQwAAAAAAAAAHojOYQAAAAAAAADwQHQOAwAAAAAAAIAHonMYAAAAAAAAADwQncMAAAAAAAAA4IHoHAYAAAAAAAAAD0TnMAAAAAAAAAB4IDqHAQAAAAAAAMAD0TkMAAAAAAAAAB6IzmEAAAAAAAAA8EB0DgMAAAAAAACAB6JzGAAAAAAAAAA8EJ3DAAAAAAAAAOCB6BwGAAAAAAAAAA9E5zAAAAAAAAAAeCA6hwEAAAAAAADAA9E5DAAAAAAAAAAeiM5hAAAAAAAAAPBAdA4DAAAAAAAAgAeicxgAAAAAAAAAPBCdwwAAAAAAAADggegcBgAAAAAAAAAPROcwAAAAAAAAAHggOocBAAAAAAAAwAPROQwAAAAAAAAAHojOYQAAAAAAAADwQHQOAwAAAAAAAIAHonMYAAAAAAAAADwQncMAAAAAAAAA4IHoHAYAAAAAAAAAD0TnMAAAAAAAAAB4IDqHAQAAAAAAAMAD0TkMAAAAAAAAAB6IzmEAAAAAAAAA8EB0DgMAAAAAAACAB6JzGAAAAAAAAAA8EJ3DAAAAAAAAAOCB6BwGAAAAAAAAAA9E5zAAAAAAAAAAeCA6hwEAAAAAAADAA9E5DAAAAAAAAAAeiM5hAAAAAAAAAPBAdA4DAAAAAAAAgAeicxgAAAAAAAAAPBCdwwAAAAAAAADggegcBgAAAAAAAAAPROcwAAAAAAAAAHggOocBAAAAAAAAwAPROQwAAAAAAAAAHojOYQAAAAAAAADwQHQOAwAAAAAAAIAHonMYAAAAAAAAADwQncMAAAAAAAAA4IHoHAYAAAAAAAAAD0TnMAAAAAAAAAB4IDqHAQAAAAAAAMAD0TkMAAAAAAAAAB6IzmEAAAAAAAAA8EB0DgMAAAAAAACAB6JzGAAAAAAAAAA8EJ3DAAAAAAAAAOCB6BwGAAAAAAAAAA9E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zEZucY1NXqdH5zAKTFxinM79c051y9WVJEVHR2fYp0+fPoqMjNRfV79DpWMYho4fP67IyEj16dMnw/MnTpyQJNUrV0/n/jmni4kXXfQKYIXkZHM0M7P3Qfu2MWMK5pbVzLz88svq16+fdu3apW7dumngwIE6d+6cJOn48eO6++671a1bN+3cuVNDhw7Vs88+m6P2n3rqqdRR1RMnTujEiROZbpOkGTNm6Pnnn9eECRO0d+9evf7663rxxRf12WefSZIuXryoTp06KTo6WsuWLdOvv/6qZ555RikpKbr33nv15JNPqlGjRqlt3nvvvTIMQ71799a5c+e0du1a/fDDDzp06JDuvfdehzr/+OMPLViwQIsXL9bOnTvz8i0FYDHyGrnh7nktkdl2ZDZQdJDZyA13z2zy2lSQec20EigwicmJkqQSxcwVFOPi4jLsExwcnPqP8FpOnDih4ODgDNvt7Rb3Lu5wXhRO69dnHM1MzzCk48fN/Tp3dv35V6xYoVKlSjls+89//qMXX3xRkjln0n333SdJev311zV16lRt2bJFXbt21fTp01W7dm299957stlsql+/vn777Te9+eabGc5TtWpVh6+rVKmi/fv3q1SpUipTpowkqXLlyqnPZ7bt1Vdf1bvvvqu7/70HqFatWtqzZ48+/vhjPfDAA5o7d67+/vtvbd26VWXLlpUk1alTJ/X4UqVKqVixYg5t/vDDD9q1a5eOHDmiatWqSZK++OILNWrUSFu3blWrVq0kSYmJifriiy9UoUIFJ7+zANwVeY3csDqvJTKbzAY8D5mN3LA6s8lr98trOodRYHy9fSVJl5MuS5ICAgIy7BMdHa0WLVo41V5QUJC2bduWYbu93YTkBIfzonBy8v8xTu+XU126dEldhMHO/qYvSU2bNk39u7+/vwICAnT69GlJ5iT3ISEhDrektG3bNtPzrF+/3uHfRLFiOXt7/vvvv3X8+HE99NBDevjhh1O3JyUlKTAwUJK0c+dONW/e3KH+a9m7d6+qVauWGlqSdMMNN6hMmTLau3dvanDVqFGDi0ygiCCvkRtW57VEZpPZgOchs5EbVmc2ee1+eU3nMApMgG+AypYsq4NnD0pSpiOS4eHheuONN1S1alVFRUVlOqeKzWZT1apVFRoaqgcffDDD80FBQZKkA2cPqGzJsirlWyrDPig8/v1xumy/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kZqainr16mkoHREREQFA5cqVsXz5cuzcuRNHjx4tcXv379+HmZmZBpIRFYydw0R6oFGjRti1axcAYPz48VlP+WpSeHg45HI5V1IlIiLSMJlMBn9/f8TGxuL//u//StRW5krqTZs21UQ0IiIiyuGTTz5BmzZt8OWXX+LNmzclauvJkyeoUaOGhpIR5Y+dw0R6wtPTE8uXL4cgCPD09MS9e/c02j7vahIREWmPg4MDpk79//buPT6q+s7/+HvCoKG5TNJfFEjAEIgGTSpI0JCEhotVqaLAQ8P2LrbWx0LxSmtv66WufdjVrbpWS1tX4eF210cjNi7eWBVIloyESpZCAkGiRElIYoMBJmaKCc75/XEMYZhLJskkZzLzej4eeQBnzvme98zY+TSf75zv+bEefvhhvfvuu4Mep7c5XFJSEq5oAADgczabTU899ZTee+89/frXvx70OB6PR263W9OmTQtjOsA/msNADLnrrru0YsUKdXV16fLLL1dnZ2fYxm5vb2dWEwCAYfSTn/xEkydP1urVq2UYxqDG2LVrlyS+OQwAwHDJy8vTnXfeqQcffFAffPDBoMbYu3evJOniiy8OYzLAP5rDQAyx2Wz6wx/+oKKiIn3wwQdaunSpPB7PkMftndXMzs4OQ0oAAODPuHHj9Jvf/EZvvfWWysrKBjVGQ0OD4uPjZbfbw5wOAAD0uu+++/TFL35Rt99++6COr6iokCQVFxeHMRXgH81hIMaMHTtWr732miZPnqwtW7boRz/60ZDH3LNnjyRpxowZQx4LAAAEdvXVV2vZsmW688475XK5Bnx8a2ur0tLShiEZAADolZiYqMcff1wbN27Uyy+/PODjd+7cKYkbvmNk0BwGYpDD4VBlZaUSEhL06KOP6j//8z+HNF5lZaUkZjUBABgJjz/+uI4fP677779/wMe6XC5NmTIl7JkAAIC366+/XldeeaVuu+02ud3uAR1bX18vu92u5OTkYUoH9KE5DMSorKwsvfHGG4qLi9ONN96o//u//xv0WDU1NZKkefPmhSseAAAI4LzzztO9996rJ554QrW1tSEf19bWJo/Ho9zc3GFMBwAAJHNZxyeffFItLS166KGHBnRsU1OTUlJShicYcAaaw0AMKyoq0rp16/TZZ59pwYIF+uijjwY1zr59+2S325WYmBjmhAAAwJ8777xTF1xwgVau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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(18, 20))\n", + "for i in range(9):\n", + " gm = get_preset_by_index_with_bounds(i)\n", + " values = gm.generate_central_from_mutation_range()\n", + " graph = gm.get_graph(values)\n", + " plt.subplot(3, 3, i+1)\n", + " draw_joint_point(graph)\n", + "\n", + "plt.show(\"topologies.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "==========================================================\n", + "n_gen | n_eval | n_nds | eps | indicator \n", + "==========================================================\n", + " 1 | 64 | 5 | - | -\n", + " 2 | 128 | 11 | 0.1823888739 | ideal\n", + " 3 | 192 | 20 | 0.2552256313 | ideal\n", + " 4 | 256 | 31 | 0.3642652518 | ideal\n", + " 5 | 320 | 35 | 0.0110627827 | f\n", + " 6 | 384 | 48 | 0.0071916441 | f\n", + " 7 | 448 | 42 | 0.0273421367 | ideal\n", + " 8 | 512 | 52 | 0.0047785051 | f\n", + " 9 | 576 | 64 | 0.0037340021 | f\n", + " 10 | 640 | 64 | 0.0195425583 | ideal\n", + " 11 | 704 | 64 | 0.1234682782 | ideal\n", + " 12 | 768 | 64 | 0.0022407825 | f\n", + " 13 | 832 | 64 | 0.0233751935 | ideal\n", + " 14 | 896 | 64 | 0.0620960850 | ideal\n", + " 15 | 960 | 64 | 0.0026497453 | f\n", + " 16 | 1024 | 64 | 0.0247361871 | ideal\n", + " 17 | 1088 | 64 | 0.0035061896 | f\n", + " 18 | 1152 | 64 | 0.0029227408 | f\n", + " 19 | 1216 | 64 | 0.0025839918 | ideal\n", + " 20 | 1280 | 64 | 0.0018986150 | f\n", + " 21 | 1344 | 64 | 0.0432332950 | ideal\n", + " 22 | 1408 | 64 | 0.0368871838 | ideal\n", + " 23 | 1472 | 64 | 0.0033067675 | f\n", + " 24 | 1536 | 64 | 0.0017404736 | f\n", + " 25 | 1600 | 64 | 0.0036594846 | f\n", + " 26 | 1664 | 64 | 0.0014927930 | f\n", + " 27 | 1728 | 64 | 0.0286177586 | ideal\n", + " 28 | 1792 | 64 | 0.0088763985 | ideal\n", + " 29 | 1856 | 64 | 0.0020209523 | f\n", + " 30 | 1920 | 64 | 0.0029904198 | ideal\n", + " 1 | 64 | 16 | 0.0814835957 | ideal\n", + " 2 | 128 | 31 | 0.1192515727 | ideal\n", + " 3 | 192 | 39 | 0.0520742424 | ideal\n", + " 4 | 256 | 47 | 0.1543318079 | ideal\n", + " 5 | 320 | 64 | 0.1796334035 | ideal\n", + " 6 | 384 | 64 | 0.0046659195 | f\n", + " 7 | 448 | 64 | 0.0130823715 | ideal\n", + " 8 | 512 | 64 | 0.0079226684 | ideal\n", + " 9 | 576 | 64 | 0.0028287358 | f\n", + " 10 | 640 | 64 | 0.2621304734 | ideal\n", + " 11 | 704 | 64 | 0.0030738279 | f\n", + " 12 | 768 | 64 | 0.0095213011 | ideal\n", + " 13 | 832 | 64 | 0.0029554126 | f\n", + " 14 | 896 | 64 | 0.0198246016 | ideal\n", + " 15 | 960 | 64 | 0.0030320693 | f\n", + " 16 | 1024 | 64 | 0.0027556109 | f\n", + " 17 | 1088 | 64 | 0.0015477988 | f\n", + " 18 | 1152 | 64 | 0.0025192320 | f\n", + " 19 | 1216 | 64 | 0.0137064865 | ideal\n", + " 20 | 1280 | 64 | 0.0019174437 | f\n", + " 21 | 1344 | 64 | 0.0023527327 | f\n", + " 22 | 1408 | 64 | 0.0033721918 | f\n", + " 23 | 1472 | 64 | 0.0016767036 | f\n", + " 24 | 1536 | 64 | 0.0131808607 | ideal\n", + " 25 | 1600 | 64 | 0.0013857540 | f\n", + " 26 | 1664 | 64 | 0.0018165299 | f\n", + " 27 | 1728 | 64 | 0.0022816824 | f\n", + " 28 | 1792 | 64 | 0.0244480595 | ideal\n", + " 29 | 1856 | 64 | 0.0010149071 | f\n", + " 30 | 1920 | 64 | 0.0023764170 | f\n", + " 1 | 64 | 5 | 2.4026267906 | ideal\n", + " 2 | 128 | 8 | 0.1527889430 | ideal\n", + " 3 | 192 | 10 | 0.0476976841 | f\n", + " 4 | 256 | 12 | 0.0079343212 | nadir\n", + " 5 | 320 | 20 | 0.1350465763 | ideal\n", + " 6 | 384 | 32 | 0.0250564248 | ideal\n", + " 7 | 448 | 36 | 0.0377032155 | ideal\n", + " 8 | 512 | 39 | 0.1035523039 | ideal\n", + " 9 | 576 | 43 | 0.2307208050 | ideal\n", + " 10 | 640 | 47 | 0.0556573387 | ideal\n", + " 11 | 704 | 47 | 0.0038693910 | f\n", + " 12 | 768 | 51 | 0.0029116664 | f\n", + " 13 | 832 | 57 | 0.1446581548 | ideal\n", + " 14 | 896 | 64 | 0.0034352326 | f\n", + " 15 | 960 | 64 | 0.0020503741 | f\n", + " 16 | 1024 | 64 | 0.0809737088 | ideal\n", + " 17 | 1088 | 64 | 0.1727470998 | ideal\n", + " 18 | 1152 | 64 | 0.0007960445 | f\n", + " 19 | 1216 | 64 | 0.0065434725 | ideal\n", + " 20 | 1280 | 64 | 0.0011005235 | f\n", + " 21 | 1344 | 64 | 0.0025723872 | f\n", + " 22 | 1408 | 64 | 0.0020223277 | f\n", + " 23 | 1472 | 64 | 0.0051533140 | f\n", + " 24 | 1536 | 64 | 0.0012270975 | f\n", + " 25 | 1600 | 64 | 0.0050390808 | nadir\n", + " 26 | 1664 | 64 | 0.0011070057 | f\n", + " 27 | 1728 | 64 | 0.0021783183 | f\n", + " 28 | 1792 | 64 | 0.0129909923 | ideal\n", + " 29 | 1856 | 64 | 0.0005542901 | f\n", + " 30 | 1920 | 64 | 0.0017924969 | f\n", + " 1 | 64 | 8 | 0.7591508429 | ideal\n", + " 2 | 128 | 17 | 0.3963189742 | ideal\n", + " 3 | 192 | 19 | 0.0181270115 | f\n", + " 4 | 256 | 31 | 0.0201037324 | ideal\n", + " 5 | 320 | 39 | 0.0053246495 | ideal\n", + " 6 | 384 | 48 | 0.1238788152 | ideal\n", + " 7 | 448 | 52 | 0.0155746569 | ideal\n", + " 8 | 512 | 60 | 0.0394089173 | ideal\n", + " 9 | 576 | 64 | 0.0307095007 | ideal\n", + " 10 | 640 | 64 | 0.0673800085 | ideal\n", + " 11 | 704 | 64 | 0.0028084535 | f\n", + " 12 | 768 | 64 | 0.0030394954 | f\n", + " 13 | 832 | 64 | 0.0032990395 | f\n", + " 14 | 896 | 64 | 0.0146497941 | ideal\n", + " 15 | 960 | 64 | 0.0112830536 | ideal\n", + " 16 | 1024 | 64 | 0.0212685732 | ideal\n", + " 17 | 1088 | 64 | 0.0016947727 | f\n", + " 18 | 1152 | 64 | 0.0031719194 | f\n", + " 19 | 1216 | 64 | 0.0125006039 | ideal\n", + " 20 | 1280 | 64 | 0.0359415338 | ideal\n", + " 21 | 1344 | 64 | 0.0980231140 | ideal\n", + " 22 | 1408 | 64 | 0.0013533879 | f\n", + " 23 | 1472 | 64 | 0.0025644847 | f\n", + " 24 | 1536 | 64 | 0.0009354244 | f\n", + " 25 | 1600 | 64 | 0.0020795950 | f\n", + " 26 | 1664 | 64 | 0.0029004823 | f\n", + " 27 | 1728 | 64 | 0.0020384117 | f\n", + " 28 | 1792 | 64 | 0.0317720082 | ideal\n", + " 29 | 1856 | 64 | 0.0163621101 | ideal\n", + " 30 | 1920 | 64 | 0.0003466472 | f\n", + " 1 | 64 | 6 | 1.8546052486 | ideal\n", + " 2 | 128 | 11 | 0.2833092333 | ideal\n", + " 3 | 192 | 17 | 0.2028909593 | ideal\n", + " 4 | 256 | 21 | 0.0140406387 | f\n", + " 5 | 320 | 29 | 0.0191466930 | f\n", + " 6 | 384 | 36 | 0.0094901623 | f\n", + " 7 | 448 | 40 | 0.0559939609 | ideal\n", + " 8 | 512 | 43 | 0.0060592247 | f\n", + " 9 | 576 | 52 | 0.0337373636 | ideal\n", + " 10 | 640 | 53 | 0.0063902678 | nadir\n", + " 11 | 704 | 63 | 0.0039890458 | f\n", + " 12 | 768 | 62 | 0.0249170390 | ideal\n", + " 13 | 832 | 64 | 0.0029074892 | f\n", + " 14 | 896 | 64 | 0.1431329893 | ideal\n", + " 15 | 960 | 64 | 0.0032799045 | f\n", + " 16 | 1024 | 64 | 0.0016793247 | f\n", + " 17 | 1088 | 64 | 0.0037732648 | f\n", + " 18 | 1152 | 64 | 0.0023940071 | f\n", + " 19 | 1216 | 64 | 0.0239208320 | ideal\n", + " 20 | 1280 | 64 | 0.0020501725 | f\n", + " 21 | 1344 | 64 | 0.0274696453 | ideal\n", + " 22 | 1408 | 64 | 0.0017406125 | f\n", + " 23 | 1472 | 64 | 0.0127847811 | ideal\n", + " 24 | 1536 | 64 | 0.0025863141 | f\n", + " 25 | 1600 | 64 | 0.0028108434 | f\n", + " 26 | 1664 | 64 | 0.0451934415 | ideal\n", + " 27 | 1728 | 64 | 0.0015109340 | f\n", + " 28 | 1792 | 64 | 0.0025564148 | f\n", + " 29 | 1856 | 64 | 0.0027474251 | f\n", + " 30 | 1920 | 64 | 0.0011653284 | f\n", + " 1 | 64 | 1 | 7.3199506025 | ideal\n", + " 2 | 128 | 5 | 0.7127218899 | ideal\n", + " 3 | 192 | 9 | 0.0272709074 | nadir\n", + " 4 | 256 | 13 | 0.3430258303 | ideal\n", + " 5 | 320 | 23 | 0.2066913797 | ideal\n", + " 6 | 384 | 32 | 0.2271509634 | ideal\n", + " 7 | 448 | 41 | 0.1521067657 | ideal\n", + " 8 | 512 | 44 | 0.0077647758 | f\n", + " 9 | 576 | 46 | 0.0070763706 | f\n", + " 10 | 640 | 58 | 0.0059670508 | ideal\n", + " 11 | 704 | 62 | 0.0201366509 | ideal\n", + " 12 | 768 | 64 | 0.0023618833 | f\n", + " 13 | 832 | 64 | 0.0058204630 | f\n", + " 14 | 896 | 64 | 0.1091542750 | ideal\n", + " 15 | 960 | 64 | 0.0021253930 | f\n", + " 16 | 1024 | 64 | 0.0741268067 | ideal\n", + " 17 | 1088 | 64 | 0.0015882367 | f\n", + " 18 | 1152 | 64 | 0.0023094031 | f\n", + " 19 | 1216 | 64 | 0.0432148418 | ideal\n", + " 20 | 1280 | 64 | 0.0008385171 | f\n", + " 21 | 1344 | 64 | 0.1318606708 | ideal\n", + " 22 | 1408 | 64 | 0.0192323997 | ideal\n", + " 23 | 1472 | 64 | 0.0007630723 | f\n", + " 24 | 1536 | 64 | 0.0320972080 | ideal\n", + " 25 | 1600 | 64 | 0.0014375474 | f\n", + " 26 | 1664 | 64 | 0.0027465512 | f\n", + " 27 | 1728 | 64 | 0.0282170550 | ideal\n", + " 28 | 1792 | 64 | 0.0174406161 | ideal\n", + " 29 | 1856 | 64 | 0.0014179123 | f\n", + " 30 | 1920 | 64 | 0.0374323761 | ideal\n", + " 1 | 64 | 4 | 3.7964749423 | ideal\n", + " 2 | 128 | 7 | 0.0913846087 | ideal\n", + " 3 | 192 | 11 | 0.2966055957 | ideal\n", + " 4 | 256 | 17 | 0.4959615699 | ideal\n", + " 5 | 320 | 24 | 0.0387158324 | ideal\n", + " 6 | 384 | 30 | 0.0121793953 | f\n", + " 7 | 448 | 35 | 0.0919328347 | ideal\n", + " 8 | 512 | 44 | 0.0135255518 | f\n", + " 9 | 576 | 42 | 0.0081702942 | f\n", + " 10 | 640 | 47 | 0.0038096125 | ideal\n", + " 11 | 704 | 55 | 0.0095348205 | ideal\n", + " 12 | 768 | 62 | 0.0588264356 | ideal\n", + " 13 | 832 | 64 | 0.0275037736 | ideal\n", + " 14 | 896 | 64 | 0.0055246802 | ideal\n", + " 15 | 960 | 64 | 0.0026233934 | f\n", + " 16 | 1024 | 64 | 0.2409881735 | ideal\n", + " 17 | 1088 | 64 | 0.0023542015 | f\n", + " 18 | 1152 | 64 | 0.0040552721 | f\n", + " 19 | 1216 | 64 | 0.0010574365 | f\n", + " 20 | 1280 | 64 | 0.0286624648 | ideal\n", + " 21 | 1344 | 64 | 0.0246690315 | ideal\n", + " 22 | 1408 | 64 | 0.0024953067 | f\n", + " 23 | 1472 | 64 | 0.0034023754 | f\n", + " 24 | 1536 | 64 | 0.0019635418 | f\n", + " 25 | 1600 | 64 | 0.0039306847 | f\n", + " 26 | 1664 | 64 | 0.0017970795 | f\n", + " 27 | 1728 | 64 | 0.0249188851 | ideal\n", + " 28 | 1792 | 64 | 0.0018106339 | f\n", + " 29 | 1856 | 64 | 0.0029838152 | f\n", + " 30 | 1920 | 64 | 0.0023951714 | f\n", + " 1 | 64 | 4 | 7.1344669781 | ideal\n", + " 2 | 128 | 9 | 0.4079188992 | ideal\n", + " 3 | 192 | 19 | 0.6640211836 | ideal\n", + " 4 | 256 | 20 | 0.0299649881 | f\n", + " 5 | 320 | 29 | 0.1525787152 | ideal\n", + " 6 | 384 | 32 | 0.0081254883 | f\n", + " 7 | 448 | 39 | 0.1423491148 | ideal\n", + " 8 | 512 | 55 | 0.0070371008 | f\n", + " 9 | 576 | 64 | 0.0028204889 | f\n", + " 10 | 640 | 64 | 0.0026233187 | f\n", + " 11 | 704 | 64 | 0.0065569190 | ideal\n", + " 12 | 768 | 64 | 0.0053538457 | ideal\n", + " 13 | 832 | 64 | 0.0124631057 | ideal\n", + " 14 | 896 | 64 | 0.0014840398 | f\n", + " 15 | 960 | 64 | 0.0138105800 | ideal\n", + " 16 | 1024 | 64 | 0.0381711036 | ideal\n", + " 17 | 1088 | 64 | 0.0732817366 | ideal\n", + " 18 | 1152 | 64 | 0.0162151834 | ideal\n", + " 19 | 1216 | 64 | 0.0044943195 | ideal\n", + " 20 | 1280 | 64 | 0.0900012086 | ideal\n", + " 21 | 1344 | 64 | 0.0192375134 | ideal\n", + " 22 | 1408 | 64 | 0.0022113849 | f\n", + " 23 | 1472 | 64 | 0.0153857161 | ideal\n", + " 24 | 1536 | 64 | 0.0012899840 | f\n", + " 25 | 1600 | 64 | 0.0025462256 | f\n", + " 26 | 1664 | 64 | 0.0018601980 | f\n", + " 27 | 1728 | 64 | 0.0030043275 | f\n", + " 28 | 1792 | 64 | 0.0019899603 | f\n", + " 29 | 1856 | 64 | 0.0022913436 | f\n", + " 30 | 1920 | 64 | 0.0030910088 | f\n", + " 1 | 64 | 6 | 2.2259383582 | ideal\n", + " 2 | 128 | 11 | 0.3509673577 | ideal\n", + " 3 | 192 | 15 | 0.0202582864 | f\n", + " 4 | 256 | 18 | 0.0148952505 | f\n", + " 5 | 320 | 27 | 0.2447972218 | ideal\n", + " 6 | 384 | 34 | 0.0744559559 | ideal\n", + " 7 | 448 | 40 | 0.1563682055 | ideal\n", + " 8 | 512 | 49 | 0.0118663768 | ideal\n", + " 9 | 576 | 63 | 0.1610571536 | ideal\n", + " 10 | 640 | 64 | 0.0025029502 | f\n", + " 11 | 704 | 64 | 0.0073462119 | ideal\n", + " 12 | 768 | 64 | 0.0026138505 | f\n", + " 13 | 832 | 64 | 0.0057536555 | ideal\n", + " 14 | 896 | 64 | 0.0123442445 | ideal\n", + " 15 | 960 | 64 | 0.0009057472 | f\n", + " 16 | 1024 | 64 | 0.1391919744 | ideal\n", + " 17 | 1088 | 64 | 0.0459112298 | ideal\n", + " 18 | 1152 | 64 | 0.0012463862 | f\n", + " 19 | 1216 | 64 | 0.0021229891 | f\n", + " 20 | 1280 | 64 | 0.0048823341 | ideal\n", + " 21 | 1344 | 64 | 0.0004427347 | f\n", + " 22 | 1408 | 64 | 0.0020243483 | f\n", + " 23 | 1472 | 64 | 0.0033505875 | f\n", + " 24 | 1536 | 64 | 0.0012450714 | f\n", + " 25 | 1600 | 64 | 0.0531820488 | ideal\n", + " 26 | 1664 | 64 | 0.0356203111 | ideal\n", + " 27 | 1728 | 64 | 0.0025945502 | f\n", + " 28 | 1792 | 64 | 0.0050672639 | ideal\n", + " 29 | 1856 | 64 | 0.0393298478 | ideal\n", + " 30 | 1920 | 64 | 0.0006920211 | f\n" + ] + } + ], + "source": [ + "pin.seed(1)\n", + "N_PROCESS = 8\n", + "population_size = 64\n", + "n_generations = 30\n", + "for i in range(0,9):\n", + " pool = multiprocessing.Pool(N_PROCESS)\n", + " runner = StarmapParallelization(pool.starmap)\n", + " topology_index = i\n", + " gm = get_preset_by_index_with_bounds(topology_index)\n", + " # activate multiprocessing\n", + "\n", + " # create the problem for the current optimization\n", + " problem = MultiCriteriaProblem(gm, builder, reward_manager,\n", + " soft_constrain, elementwise_runner=runner, Actuator=builder.actuator['default'])\n", + "\n", + " saver = ProblemSaver(problem, f\"jacobian_workspace\\\\all_topologies_30gen_64pop\\\\topology_{topology_index}\", True)\n", + " saver.save_nonmutable()\n", + " algorithm = AGEMOEA2(pop_size=population_size, save_history=True)\n", + " optimizer = PymooOptimizer(problem, algorithm, saver)\n", + "\n", + " res = optimizer.run(\n", + " True, **{\n", + " \"seed\": 2,\n", + " \"termination\": (\"n_gen\", n_generations),\n", + " \"verbose\": True\n", + " })" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/experiments/mechanism_optimizations/minitaur_optimization.ipynb b/jmoves/apps/experiments/mechanism_optimizations/minitaur_optimization.ipynb new file mode 100644 index 00000000..776a1e56 --- /dev/null +++ b/jmoves/apps/experiments/mechanism_optimizations/minitaur_optimization.ipynb @@ -0,0 +1,267 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import multiprocessing\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import os\n", + "import pinocchio as pin\n", + "\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from pymoo.algorithms.moo.age2 import AGEMOEA2\n", + "from pymoo.decomposition.asf import ASF\n", + "\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import MultiCriteriaProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.description.builder import jps_graph2pinocchio_robot, jps_graph2pinocchio_robot_3d_constraints\n", + "from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian\n", + "from auto_robot_design.pinokla.criterion_math import ImfProjections\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.default_traj import add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory\n", + "from auto_robot_design.optimization.rewards.reward_base import PositioningConstrain, PositioningErrorCalculator, RewardManager\n", + "from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, MinAccelerationCapability\n", + "from auto_robot_design.optimization.rewards.pure_jacobian_rewards import ManipulabilityReward, ZRRReward\n", + "from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT, URDFLinkCreater3DConstraints\n", + "from auto_robot_design.generator.topologies.graph_manager_2l import GraphManager2L, get_preset_by_index\n", + "from auto_robot_design.generator.topologies.bounds_preset import get_preset_by_index_with_bounds\n", + "from auto_robot_design.optimization.saver import ProblemSaver\n", + "from auto_robot_design.utils.configs import inertial_config_two_link_workspace, get_mesh_builder, inertial_config_two_link_six_trajectories, jacobian_config_two_link_workspace\n", + "from auto_robot_design.generator.user_generator.graph_generator import TopologyManager2D\n", + "from auto_robot_design.description.kinematics import JointPoint" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "builder, crag, soft_constrain, reward_manager = jacobian_config_two_link_workspace()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for _, trajectory in reward_manager.trajectories.items():\n", + " plt.plot(trajectory[50:, 0], trajectory[50:, 2])\n", + "gm = get_preset_by_index_with_bounds(-1)\n", + "values = gm.generate_central_from_mutation_range()\n", + "graph = gm.get_graph(values)\n", + "draw_joint_point(graph)\n", + "plt.savefig(\"trajectories.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Ground_connection_0_0': (-0.2001, 0.1999), 'Ground_connection_0_2': (-0.1, 0.1), 'main_knee_2': (-0.30000000000000004, -0.1), 'branch_0': (-0.13, 0.07), 'branch_2': (-0.3, -0.1)}\n" + ] + }, + { + "data": { + "image/png": "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b5jExEQDmEOHDhljjJk3b16t78907NgxM23aNAOYvXv3mr1799a7zRhj/va3v5nOnTubf//732b79u3m3//+t4mLizPTp0+vais1NdUMGzbMFBQUmC1btpiZM2eaRYsWmbKyMvPzn//c9OrVq6rNsrIy43a7Tf/+/c2ll15qVqxYYZYsWWKys7PNiBEjqmqcOHGiiY6ONldeeaVZtWqVWbt2rXG73XXOxdvfhaqfu1dHi0jLKi83pk0bYy6/vHH7gzE5Ocakp1th4LPPjPnDH4x5803r/S1brFDQp48x//qXMe++a0xurtXHihXV7TQ1UKalGfPii8bMmWPMd79rbVu8uHq/ZcuMCQsz5qqrjPnwQ2OmTDHmggu8C5QvvWQdf801xvzzn8Z89JExjz1mzF13Ve3S837MsTYY06ePKXr2WTMGzBdgysFknw6Us2fPNv/v6quNAbMJzE/BXA5m5un/Uw4G88tf/tK89957VYGy5n6Hr7zSGDC5dzuM4zGH1XFRkTGJicakpBgzfboxn3xizI9+ZP0M/vOfJp+HWbXK+nnefXf1z9bz2r27dnurV9fetz5N/T04199vYw0caP1+GmP9bnv+hzZ6tBVUxW+8DRHz5jUcJmu+5s3zadnGGCtQOp1OEx0dXev1+OOPG2OsQPm///u/VfsfP37cOBwO8/HHHxtjjHn44YdNRkZGrXD10EMP1Rsoz+wjPT296phZs2aZM6/L1betW7duZsaMGbW2PfHEEyY3N9cYY8xf//pX0759+6rAe6aJEyeavn371to2Z84c43Q6TVFRUdW2DRs2GMAsW7as6rg2bdqYkpKS+n+Qp/kqUOoZSpFAcvCgNSCn5mhhY2o/BR9+xn/WW7bAtm3Vq8hcdln1e88/b63T/MEH1WtEDx9u3R793e/gn/9sXp333w8/+5n1dW4uvPuutXSf55brM89YgzBmzapeFjAszFomsDmOHbOevbvsMutxAI+rr65a37uyspIJS6CtC/jgA+65917mAAuAr4GHgIdTU/nOd77DfWPH8j3gReD/Tje1GLgeuAZ4/Nlnefzxxyno1AkOHKi1349OneK9Nm24fkcYi7uVU1lZSfjEidba2wsXWivYgPXs4JdfWs8/XnFFo88DgP7WKj188on159luZXse5vfsW5+m/h6c6++3sQ4dgpQU6+vsbOtZyq1b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dYSffravd+/ebNiwgfT0dE6cOMGePXvo0KEDixYtolevXgBUVlbSe0pvNh3cBChMSuBoTIi49Z1b+WjLR2y4b0Ozrkw2pPhYMb1e6sXotNG8ccMbPmtXmsdXgVLPUIpIyPrDFX/g89s+r3qmss1Tbeg3pR/7ju+jtLSU+Ph4Nm3axNdff01cXBzR0dH06tWLfcf30W9KP9o81abqmcnPb/tcYVKCxoebP2TG+hm8cNULPg2TAF3ad+HPV/2ZN9e/yUdbPvJp22IfXaEUEQFGTh/J/F3zqze4IexUGL279aZteFvWblhLedtywtqF4cZdtduI5BGhOwBHAta5rkqNmD4Ct3Gz4I4FOM6xFGlzGGMYPn14qxnANn36dP77v/+bw4cP211Ki9MVShERH8q/Ix8z0fDwJQ8T0yYGHOCOcLOuZB3LipdRfl45tAWDISYihocveRgz0bSK/xmK+NKXJV+yYNcC7h90v1/CJFgDdX428GfM3zWfDSUbmtXGokWLcDqdXHXVVU06LiUlheeff77Wtu9973ts3ry5WXWIRYFSRKSGpy9/mveHvg+T4HHn46y8dyVzbp3DT/gJTIL8vHyOPXxMK+BI0Jqxfgadojpx/cXX+7WfcRnj6BTViRnrZzTr+KlTp3L//fezcOHCeleuaop27dqRkJDgVRuhToFSROQMCxYsACAvL4/sLtl8p+d3+H7e92u9JxKslhcv55Jul5xznklvRTgjGNptKMuLGznVVA0nTpzgn//8Jz/5yU+49tprmT59eq33Z8+eTU5ODm3btqVTp07ccMMNAIwcOZJdu3bxP//zPzgcjqorsNOnT6djx44AbNq0CYfDwVdffVWrzWeffZaUlBQ8Twpu3LiRa665hpiYGBITE7nttts4cOBAk88lWChQioicYc2aNQAMGTKkapvn69WrV9tRkkiLMMawau8qBnQe0CL9Deg8gJV7V9LU4RwzZ87koosu4qKLLuKHP/wh06ZNq2rjww8/5IYbbmD06NGsXr2azz//nJycHADeeecdunbtyuOPP87evXvZu3dvnbYvuugiBgwYwJtvvllr+4wZM7jllltwOBzs3buXESNG0K9fP1asWMEnn3zC/v37ufnmm5v5kwh8mthcROQMW7ZsITIysmoKIYCIiAgiIyPZsmWLjZWJ+NeximOUfltKWnxai/SXHp9O6belHK84TvvI9o0+7tVXX+WHP/whAFdddRXHjx/n888/5/LLL+epp57i+9//PpMmTarav2/fvgDExcXhdDpp3749F1xwQYPt33rrrfzlL3/hiSeeAGDz5s2sXLmS119/HYCXX36Z7Oxsnn66+tGXqVOn0q1bNzZv3kx6enrjfwhBQlcoRUTOsGfPHuLj4+tsj4uLY8+ePTZUJNIyKlwVALQNb/5o36aIdEbW6rcxNm3axLJly/j+963HUMLDw/ne977H1KlTAesOw2WXXeZVXd///vfZtWsXS5YsAeDNN9+kX79+ZGZmArBy5UrmzZtHTExM1eviiy8GYNu2bV71Hah0hVJE5AxHjx6t+p9DTcnJySxv7NKCIgHI89zkycqWWWu93FVeq9/GePXVV6msrCQpKalqmzGGNm3acOjQIdq1a+d1XZ07dyYvL48ZM2YwZMgQ3nrrLX784x9Xve92u7nuuuv43e9+V++xoUhXKEVEajhw4AAul6vqSkRNGRkZuFwuSktLbahMxP/aR7Qnrl0cWw62zKMdmw9uJq5dHDERMY3av7Kyktdff50//elPrFmzpuq1du1akpOTefPNN8nKyuLzzz9vsI2IiAhcLtc5+7r11luZOXMmixcvZtu2bVVXRAGys7PZsGEDKSkp9OzZs9YrOjq6UecSbBQoRURqmDt3LgCDBg2q897gwYNr7SMSbBwOB9mds1m5d2WL9Ldy70oGdB7Q6PkuP/jgAw4dOsTdd99N7969a71uuukmXn31VSZOnMhbb73FxIkTKSwsZP369fz+97+vaiMlJYUFCxawZ8+es47KvuGGGzh69Cg/+clPyMvLq3VF9Kc//SmlpaX84Ac/YNmyZWzfvp05c+Zw1113NSqsBiMFShGRGjzPTOXl5dV5b+TIkQAsXry4JUsSaVEDuwzki91fNOm5xuaocFWwaPciBnYZ2OhjXn31VS6//HJiY2PrvHfjjTeyZs0aOnTowL/+9S9mz55Nv379GDVqFEuXLq3a7/HHH2fnzp306NGD888/v8G+OnTowHXXXcfatWu59dZba73XpUsXvvjiC1wuF1deeSW9e/dmwoQJxMbGEhYWmtFKSy+KiNRw+eWXM3fuXNxud5333G434eHhXHbZZXz66ac2VCfiG2dbbu/Lki/p83IfZt40k5t7+W8anJlfzuT7//4+X/7k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bd/Oyqef4JNh4Sx7ayt3O6ZRc+mH1ViXL9/v+7988X8XErFjB/HAwdPvJwEv3367ddvaM0S85i1sT1i06+cC1hRE33wD27db369YYT2XCXDTTf7tW0SClgKliDTfI49Aejo8/zx897vWIJ20NLjvPuv99HSYN8/a7447rMCZnW1N3TNwoP/q6tYNli+HiRPh4YetW8kJCVbfd1nXI3v16kXbtm35v5Mn+Rp4EJgGOCZNIiI7m2O/fISkt6pzIcD2biMoHPJb0gv+xoUf7eMr4DFg0un3xzudpN56a+1acnOrv/akU7t+LmD9TObPr/7+//7PetWsT0SkibT0ooiErEmTJvHYY4/V2Z6cnMyLL77IVVeNrlopp3NnuOQSNx9//AH3339/nZVyAB5//PHqlXJEREKIAqWIhLRzreV9/fXXV63lPWvWLHbs2FHvvnXW8hYRCSEKlCIS0hYvXszQoUO9bmfRokXk1ry93VIaG2LD9YSTiPiPRnmLSEjLzc3ltdde86qN1157zZ4wCdaAnsa8Tp60pz4RCQm6QikignWlctiwYQ3e/q6P0+mkoKDAvjAJ1ijtxhgw4NwrG4mINJMCpYhIDZMmTWLy5MmcPMsVvbZt2/LII49oAI6IyGkKlCIi9diwYQMPPvggO3fu5MSJE0RHR5OSksKzzz5Lr1697C5PRKRVUaAUEREREa9oUI6IiIiIeEWBUkRERES8okApIiIiIl5RoBQRERERryhQioiIiIhXFChFRERExCsKlCIiIiLiFQVKEREREfGKAqWIiIiIeEWBUkRERES8okApIiIiIl5RoBQRERERryhQioiIiIhXFChFRERExCsKlCIiIiLiFQVKEREREfGKAqWIiIiIeEWBUkRERES8okApIiIiIl5RoBQRERERryhQioiIiIhXFChFRERExCsKlCIiIiLiFQVKEREREfGKAqWIiIiIeEWBUkRERES8okApIiIiIl5RoBQRERERryhQioiIiIhXFChFRERExCsKlCIiIiLiFQVKEREREfGKAqWIiIiIeEWBUkRERES8okApIiIiIl5RoBQRERERryhQioiIiIhXFChFRERExCsKlCIiIiLilf8Psx0GvKbCt+MAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tp = TopologyManager2D()\n", + "# creates ground connection\n", + "tp.add_connection(ground=True, self_mutation_range= [(-0.2001, 0.1999),None,(-0.1, 0.1)], dependent_mutation_range=[(-0.13,0.07),None,(-0.3,-0.1)])\n", + "\n", + "main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + "\n", + "main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None]))\n", + "\n", + "# creates connection on the first link\n", + "tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + "\n", + "main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + "tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + "\n", + "# creates connection on the second link\n", + "tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.5, 0.3)], self_freeze_pos=[0.0,0,-0.4999], dependent_mutation_range=[(-0.2,0.0),None,(-0.0,0.2)])\n", + "\n", + "# creates branch node and one-joint branch in the topology manager. \n", + "branch_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=False, name='branch', attach_ground=False, attach_endeffector=False)\n", + "tp.add_relative_node(branch_jp)\n", + "# adds a dependent connection of the one-joint branch to the \n", + "tp.add_dependent_connection(0,1,connect_head=True)\n", + "# adds independent connection to the second link finishing the branch building\n", + "tp.add_independent_connection(tp.branch_ends[1][1],tp.connections[2].connection_jp)\n", + "tp.set_mutation_ranges()\n", + "print(tp.mutation_ranges)\n", + "tp.visualize()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "draw_joint_point(tp.graph, draw_labels=False)\n", + "plt.savefig(\"./parallel_mech.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints(graph, builder)\n", + "constrain_error, results = soft_constrain.calculate_constrain_error(crag, fixed_robot, free_robot)\n", + "constrain_error" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "==========================================================\n", + "n_gen | n_eval | n_nds | eps | indicator \n", + "==========================================================\n", + " 1 | 64 | 8 | - | -\n", + " 2 | 128 | 17 | 0.4402024994 | ideal\n", + " 3 | 192 | 22 | 0.1168982404 | ideal\n", + " 4 | 256 | 40 | 0.2013661107 | ideal\n", + " 5 | 320 | 51 | 0.0039885716 | ideal\n", + " 6 | 384 | 56 | 0.0023455423 | f\n", + " 7 | 448 | 62 | 0.0070647863 | ideal\n", + " 8 | 512 | 64 | 0.0039795880 | f\n", + " 9 | 576 | 64 | 0.0421053163 | ideal\n", + " 10 | 640 | 64 | 0.0031710128 | f\n", + " 11 | 704 | 64 | 0.0055401735 | ideal\n", + " 12 | 768 | 64 | 0.0304347310 | ideal\n", + " 13 | 832 | 64 | 0.0022856912 | f\n", + " 14 | 896 | 64 | 0.0410465404 | ideal\n", + " 15 | 960 | 64 | 0.0017458914 | f\n", + " 16 | 1024 | 64 | 0.0182113769 | ideal\n", + " 17 | 1088 | 64 | 0.0142385556 | ideal\n", + " 18 | 1152 | 64 | 0.0018558587 | f\n", + " 19 | 1216 | 64 | 0.0041186545 | f\n", + " 20 | 1280 | 64 | 0.0024694616 | f\n", + " 21 | 1344 | 64 | 0.0116946903 | ideal\n", + " 22 | 1408 | 64 | 0.0018411815 | f\n", + " 23 | 1472 | 64 | 0.0041279427 | ideal\n", + " 24 | 1536 | 64 | 0.0017203519 | f\n", + " 25 | 1600 | 64 | 0.0035392389 | f\n", + " 26 | 1664 | 64 | 0.0012451023 | f\n", + " 27 | 1728 | 64 | 0.0031476753 | f\n", + " 28 | 1792 | 64 | 0.0015003391 | f\n", + " 29 | 1856 | 64 | 0.0033838353 | f\n", + " 30 | 1920 | 64 | 0.0018647016 | f\n" + ] + } + ], + "source": [ + "pin.seed(1)\n", + "gm = tp\n", + "# activate multiprocessing\n", + "N_PROCESS = 8\n", + "pool = multiprocessing.Pool(N_PROCESS)\n", + "runner = StarmapParallelization(pool.starmap)\n", + "\n", + "population_size = 64\n", + "n_generations = 30\n", + "\n", + "# create the problem for the current optimization\n", + "problem = MultiCriteriaProblem(gm, builder, reward_manager,\n", + " soft_constrain, elementwise_runner=runner, Actuator=builder.actuator['default'])\n", + "\n", + "saver = ProblemSaver(problem, f\"minitaur\\\\jacobian_set\", True)\n", + "saver.save_nonmutable()\n", + "algorithm = AGEMOEA2(pop_size=population_size, save_history=True)\n", + "optimizer = PymooOptimizer(problem, algorithm, saver)\n", + "\n", + "res = optimizer.run(\n", + " True, **{\n", + " \"seed\": 2,\n", + " \"termination\": (\"n_gen\", n_generations),\n", + " \"verbose\": True\n", + " })" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/experiments/mechanism_optimizations/parallel_mech.png b/jmoves/apps/experiments/mechanism_optimizations/parallel_mech.png new file mode 100644 index 0000000000000000000000000000000000000000..40557ab41709346c6763b095490067bedd96ad24 GIT binary patch literal 12772 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" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for _, trajectory in reward_manager.trajectories.items():\n", + " plt.plot(trajectory[50:, 0], trajectory[50:, 2])\n", + "gm = get_preset_by_index_with_bounds(-1)\n", + "values = gm.generate_central_from_mutation_range()\n", + "graph = gm.get_graph(values)\n", + "draw_joint_point(graph)\n", + "plt.savefig(\"trajectories.png\")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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MjMzFRoaKqeTX4MAUF/8JgXQcKZPlxwOu6vwS05Ojjp27Fjzgg6HdVz1sWmTlJoqtW1rba+q0+z+LteQli+v//EBCHgt7C4AwHnkzjul0aPtrsIvBQUF525AzpQpkjHSggVSeLjUrl39lmtIy5dLjz9OqARQLwRKAA0nJsZ6NHEZGRkyxig5Ofnc7HDrVumxx6Qrr2yY5QCgieGUNxBo9u61Tqc+8IAUHS0lJkoffST16ydFREjPPWct9+230r33SklJUmiodRp2+HDp44+9t9mzp7XN0ocvaWnWaytWSGPHSmFhUlyc9PzzdT+WffukW2+VOnWSWrWS+veX3nuvxv12+t739KCkYcOGeS777rtScrK1rd69pSVL6r9fh0Nyu6Xf/778ecVT2f4u5+9+S733njRihNXL2a6dlJIipaeXvx4fb+3j8cet5xV/fpV7KzdulK64wvoMtGljfQ5WrvS939L158yRLrzQqrNbN2nRIt/LAzgvECiBQLVnj/Taa9J330k//KHVM3bTTdKvfiWdPCnl5kpHj0q//KUVThYskLp3l8aMkdau9dzWggXSp59Kd9xR837vusvaRnq6NHiw9NBD3tvzx4ED1vqrVkl/+pMVWPr1kyZMkJYurXa/O8PD9byky8PCyl9fv1669lopNtaqbepU6fbb677fsWOt9+TTT63nd9xR/vyVV2q/XG2Od9Ys62caFia98YY0b54VCN9/v3yZ9HTPn1npPj/91Lp0odTXX1vBNCfHColvvWUF38svt4KmL4sXS08/LT36qPTBB9YfLwUFvpcFcH4wAALLnj3GSMYsXGg9Hz/emH79rO8//9x6bfNm7/XcbmPOnDGmfXtj7rrL97anTbPW92XOHOu1F18sbzt+3JiWLY357W9rfxy3325McLAxu3d7tg8YYMzQodXu97LBg81pyXO/EycaExFhzKlT5W1/+5u17rRptd9vRZW3UZXqlvN3v8eOGdO2rTGXXea9jaIi77bqfmbGGPPTnxoTFGTMvn3lbd99Z0ybNsZMmuT7GMLDjTl8uOptAjjv0EMJBKr27a2v7dp5fi9Jx45ZX2fPlgYOtAaItGghBQdLeXlSdnbd9zt8ePn3YWFS5851296HH0pDhlinbt3u8kdqqrRunXTmTJX73XHwoL51ODz3u3GjdOmlUkhIedvYsfXfb0Pxd79r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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tp = TopologyManager2D()\n", + "# creates ground connection\n", + "tp.add_connection(ground=True, self_mutation_range= [(-0.2001, 0.1999),None,(-0.1, 0.1)], dependent_mutation_range=[(-0.103,0.097),None,(-0.12,0.08)])\n", + "main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + "main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None]))\n", + "# creates connection on the first link\n", + "tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + "main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + "tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + "# creates connection on the second link\n", + "tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(0.1, 0.7)], self_freeze_pos=[None,0,None], dependent_mutation_range=[(-0.2,0.0),None,(-0.0,0.2)])\n", + "# creates branch node and one-joint branch in the topology manager. \n", + "branch_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=False, name='branch', attach_ground=False, attach_endeffector=False)\n", + "tp.add_relative_node(branch_jp)\n", + "# adds a dependent connection of the one-joint branch to the \n", + "tp.add_dependent_connection(0,1,connect_head=True)\n", + "# adds independent connection to the second link finishing the branch building\n", + "tp.add_independent_connection(tp.branch_ends[1][1],tp.connections[2].connection_jp)\n", + "tp.set_mutation_ranges()\n", + "tp.mutation_ranges\n", + "tp.visualize()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints(graph, builder)\n", + "constrain_error, results = soft_constrain.calculate_constrain_error(crag, fixed_robot, free_robot)\n", + "constrain_error" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "==========================================================\n", + "n_gen | n_eval | n_nds | eps | indicator \n", + "==========================================================\n", + " 1 | 64 | 5 | - | -\n", + " 2 | 128 | 9 | 0.1042092299 | ideal\n", + " 3 | 192 | 14 | 0.4755322511 | ideal\n", + " 4 | 256 | 14 | 0.2213216589 | ideal\n", + " 5 | 320 | 22 | 0.1098060826 | ideal\n", + " 6 | 384 | 30 | 0.3015527793 | ideal\n", + " 7 | 448 | 40 | 0.0128791930 | nadir\n", + " 8 | 512 | 46 | 0.0066764154 | f\n", + " 9 | 576 | 50 | 0.0864637849 | ideal\n", + " 10 | 640 | 55 | 0.0652602425 | ideal\n", + " 11 | 704 | 60 | 0.0780682753 | ideal\n", + " 12 | 768 | 64 | 0.0050197376 | f\n", + " 13 | 832 | 64 | 0.0237020922 | ideal\n", + " 14 | 896 | 64 | 0.0032105474 | f\n", + " 15 | 960 | 64 | 0.1624657743 | ideal\n", + " 16 | 1024 | 64 | 0.0030716825 | f\n", + " 17 | 1088 | 64 | 0.0025604080 | f\n", + " 18 | 1152 | 64 | 0.0024014077 | f\n", + " 19 | 1216 | 64 | 0.0186506748 | ideal\n", + " 20 | 1280 | 64 | 0.0007174587 | f\n", + " 21 | 1344 | 64 | 0.0037840047 | ideal\n", + " 22 | 1408 | 64 | 0.0014271523 | f\n", + " 23 | 1472 | 64 | 0.0025767010 | f\n", + " 24 | 1536 | 64 | 0.0492261904 | ideal\n", + " 25 | 1600 | 64 | 0.0205030635 | ideal\n", + " 26 | 1664 | 64 | 0.0054440129 | ideal\n", + " 27 | 1728 | 64 | 0.0171517735 | ideal\n", + " 28 | 1792 | 64 | 0.0197599893 | ideal\n", + " 29 | 1856 | 64 | 0.0012813815 | f\n", + " 30 | 1920 | 64 | 0.0154350418 | ideal\n" + ] + } + ], + "source": [ + "pin.seed(1)\n", + "topology_index = 0\n", + "gm = get_preset_by_index_with_bounds(topology_index)\n", + "gm = tp\n", + "# activate multiprocessing\n", + "N_PROCESS = 16\n", + "pool = multiprocessing.Pool(N_PROCESS)\n", + "runner = StarmapParallelization(pool.starmap)\n", + "\n", + "population_size = 64\n", + "n_generations = 30\n", + "\n", + "# create the problem for the current optimization\n", + "problem = MultiCriteriaProblem(gm, builder, reward_manager,\n", + " soft_constrain, elementwise_runner=runner, Actuator=builder.actuator['default'])\n", + "\n", + "saver = ProblemSaver(problem, f\"parallel\\\\topology_{topology_index}\", True)\n", + "saver.save_nonmutable()\n", + "algorithm = AGEMOEA2(pop_size=population_size, save_history=True)\n", + "optimizer = PymooOptimizer(problem, algorithm, saver)\n", + "\n", + "res = optimizer.run(\n", + " True, **{\n", + " \"seed\": 2,\n", + " \"termination\": (\"n_gen\", n_generations),\n", + " \"verbose\": True\n", + " })" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/experiments/mechanism_optimizations/trajectories.png b/jmoves/apps/experiments/mechanism_optimizations/trajectories.png new file mode 100644 index 0000000000000000000000000000000000000000..454128243794878c9b00fce266445626c239e66a GIT binary patch literal 20075 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 literal 0 HcmV?d00001 diff --git a/jmoves/apps/experiments/two_link_only_main_branch/main_branch_optimization.ipynb b/jmoves/apps/experiments/two_link_only_main_branch/main_branch_optimization.ipynb new file mode 100644 index 00000000..ba5ddcba --- /dev/null +++ b/jmoves/apps/experiments/two_link_only_main_branch/main_branch_optimization.ipynb @@ -0,0 +1,289 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import multiprocessing\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from pymoo.algorithms.soo.nonconvex.pso import PSO\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains\n", + "from pymoo.algorithms.moo.age2 import AGEMOEA2\n", + "from pymoo.algorithms.moo.nsga2 import NSGA2\n", + "\n", + "from auto_robot_design.optimization.saver import (\n", + " ProblemSaver, )\n", + "from auto_robot_design.description.builder import jps_graph2pinocchio_robot\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import CalculateCriteriaProblemByWeigths, get_optimizing_joints, CalculateMultiCriteriaProblem, MultiCriteriaProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.criterion_math import ImfProjections\n", + "from auto_robot_design.pinokla.default_traj import add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, get_simple_spline, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory, get_horizontal_trajectory\n", + "from auto_robot_design.optimization.rewards.reward_base import PositioningReward, PositioningConstrain, PositioningErrorCalculator, RewardManager\n", + "from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability\n", + "from auto_robot_design.optimization.rewards.pure_jacobian_rewards import EndPointZRRReward, VelocityReward, ForceEllipsoidReward, ZRRReward, MinForceReward, MinManipulabilityReward\n", + "from auto_robot_design.optimization.rewards.inertia_rewards import MassReward\n", + "\n", + "from auto_robot_design.generator.user_generator.graph_generator import TopologyManager2D\n", + "from auto_robot_design.description.kinematics import JointPoint" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABJAElEQVR4nO3deXhU1eH/8c8wECDbRLYsgJBUZmRVASsaBGm1hsWyKGhBC3Vpv1A1VvtzbYvaaq22tqCPaFFIFUNBJH5RNLVfCyhBRFEQkMygiYAkIQVMCAEcGO7vj8uELJNktjCEeb+eZx6Se88951wI+uGce861GIZhCAAAAAhSm0h3AAAAAK0bgRIAAAAhIVACAAAgJARKAAAAhIRACQAAgJAQKAEAABASAiUAAABCQqAEAABASAiUAAAACAmBEgAAACEhUAIAACAkBEoAAACEhEAJAACAkBAoAQAAEJK2ke4AAACIHI/Ho2PHjkW6G4iAdu3ayWq1hqUuAiUAAFHIMAyVlZWpoqIi0l1BBCUlJSklJUUWiyWkegiUAABEIW+Y7Natm2JjY0MOFGhdDMPQ4cOHVV5eLklKTU0NqT4CJQAAUcbj8dSEyc6dO0e6O4iQjh07SpLKy8vVrVu3kKa/WZQDAECU8T4zGRsbG+GeINK8PwOhPkdLoAQAIEoxzY1w/QwQKAEAABASAiUAAEALe/jhh3XhhRdGuhsthkAJAACC5vF4tHr1ai1evFirV6+Wx+Np8TbLysqUnZ2t8847Tx06dFBycrKGDx+u559/XocPH27x9tEQq7wBAEBQli9fruzsbH3zzTc1x3r06KE5c+Zo0qRJLdJmUVGRMjMzlZSUpMcff1wDBw7U8ePH5XK5tGDBAqWlpenHP/5xg+uOHTumdu3atUifwAglAAAIwvLly3XdddfVCZOStGfPHl133XVavnx5i7Q7a9YstW3bVp988ommTJmivn37auDAgbr22mu1cuVKXXPNNZLMxSbPP/+8xo8fr7i4OP3hD3+QJM2bN0/f+973FBMTI4fDoVdeeaWm7q+//loWi0WbNm2qOVZRUSGLxaLVq1dLklavXi2LxaL33ntPQ4cOVWxsrC677DI5nc46/XziiSeUnJyshIQE3XLLLTp69GiL/H6cKQiUAAAgIB6PR9nZ2TIMo8E577G77ror7NPf+/fv17vvvqtf/vKXiouL81mm9qrl2bNna/z48dqyZYtuvvlm5eXlKTs7W/fcc4+2bt2qX/ziF/rZz36mVatWBdyXhx56SH/5y1/0ySefqG3btrr55ptrzi1dulSzZ8/WY489pk8++USpqal67rnnAr/hVoRACQAAAvLBBx80GJmszTAM7d69Wx988EFY2/3yyy9lGIYcDked4126dFF8fLzi4+N133331RyfOnWqbr75ZmVkZKhXr17685//rBkzZmjWrFmy2+26++67NWnSJP35z38OuC+PPfaYRo4cqX79+un+++/XunXrakYh//a3v+nmm2/WrbfeKofDoT/84Q/q169faDd/hiNQAmg9Hn5YYt+88LBYzN9PIAilpaVhLReo+nsnbtiwQZs2bVL//v313Xff1RwfOnRonXLbt29XZmZmnWOZmZnavn17wH0YNGhQzdfe1xZ6X2O4fft2XXrppXXK1//+bMOiHACtx623SllZke4FEPX8fe9zqO+Hru+8886TxWJRYWFhneMZGRmSTr1K0MvXtHj9MGoYRs2xNm3a1BzzauwNMrUX+HivP3HihF/3cTZihBJA69GjhzRsWKR7AUS9yy+/XD169Gj0LSsWi0U9e/bU5ZdfHtZ2O3furKuuukrPPvusqqurA76+b9++Wrt2bZ1j69atU9++fSVJXbt2lVR3ZLX2Ap1A2lm/fn2dY/W/P9sQKAGE19dfm9Opd94ppaVJdrv0r39JgwZJnTpJf/mLWe6//5VmzZL69pXi4qSEBGnECOnf/25Y53nnmXV6P77k5Jjn1qyRxo6V4uOlXr2kv/41+HtZuVIaMEBq39789b33Gp8q9h5fuFA6/3zzmnPPlVasOFVm40bpRz8y7zU21rzf99/3fR9ff133eO/e0owZwd3vG2+cuo9+/aT8/MB/L4BarFar5syZI6nhiJ/3+7/97W+yWq1hb/u5557T8ePHNXToUC1ZskTbt2+X0+nUokWLVFhY2GSb/+///T/l5OTo+eef144dO/T0009r+fLl+vWvfy3JHOEcNmyYnnjiCX3xxRd6//339Zvf/CbgPmZnZ2vBggVasGCBXC6XZs+erW3btgV9z60BgRJAyygulubPlw4ckH78Y+mBB6SpU6UHH5QOH5bKy6Vvv5XuvVd6801p2TIpPV0aPVqq/y/5ZcukDz+Ubrml+XZvu82sIy9P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lACiRmJiolJSUuRyuSLdFeCMZBiGPi39VENSh5yW9oakDtHG0o0K9Om7JUuWyOFwyOFw6MYbb9TChQtr6li5cqUmTZqksWPH6rPPPtN7771XMyOxfPly9ejRQ48++qhKS0tVWlraoG6Hw6EhQ4bo1VdfrXM8NzdXU6dOlcViUWlpqUaOHKkLL7xQn3zyifLz87V3715NmdJyjwic6ZjyBhBV7HY7gRJoRJW7SgeOHFCfzn1OS3v2znYdOHJAh9yHlNA+we/rXnrpJd14442SpKysLB06dEjvvfeerrzySj322GO64YYb9Mgjj9SUv+CCCyRJnTp1ktVqVUJCglJSUhqtf9q0aXr22Wf1+9//XpLkcrm0ceNGvfzyy5KkefPmafDgwXr88cdrrlmwYIF69uwpl8slu93u/2/CWYIRSgBRxW63M+UNNMLtcUuSOrQNfnFGINpb29dp1x9Op1MbNmzQDTfcIElq27atrr/+ei1YsECStGnTJv3whz8MqV833HCDdu7cqfXr10uSXn31VV144YXq16+fJGnjxo1atWqV4uPjaz7nn3++JOmrr74Kqe3WihFKAFHF4XBo8eLFMgyjRbZDAVoz73OTR48fPS3tfef5rk67/njppZd0/Phxde/eveaYYRhq166dvv3227AsrklNTdWoUaOUm5urYcOGafHixfrFL35Rc/7EiRO65ppr9Kc//cnntdGIEUoAUcVut6u6utrns1NAtEuISVCnjp20Y/+O09Kea79LnTp2UnxMvF/ljx8/rpdffll/+ctftGnTpprP5s2b1atXL7366qsaNGiQ3nvvvUbriImJkcfjabatadOmacmSJfrwww/11Vdf1YyIStLgwYO1bds29e7dW+edd16dj/ctXNGGQAkgqjgcDkms9AZ8sVgsGpw6WBtLN56W9jaWbtSQ1CF+zxa89dZb+vbbb3XLLbdowIABdT7XXXedXnrpJc2ePVuLFy/W7NmztX37dm3ZskVPPvlkTR29e/fW+++/rz179jS5KnvSpEk6ePCgZs6cqVGjRtUZEf3lL3+pAwcO6Cc/+Yk2bNigoqIivfvuu7r55pv9CqtnIwIlgKiSnp4uq9XKwhygERenXayC3QUBPdcYDLfHrXW71+nitIv9vuall17SlVdeKZvN1uDctddeq02bNikxMVGvvfaaVqxYoQsvvFA/+MEP9NFHH9WUe/TRR/X111/re9/7nrp27dpoW4mJibrmmmu0efNmTZs2rc65tLQ0FRQUyOPx6Oqrr9aAAQOUnZ0tm82mNm2iM1rxphwAUadPnz665ppr9PTTT0e6K0BEnA1vykF4hOtNOdEZowFENYfDwQgl0IgB3QZoRK8RembDMwHvD+kvwzD0zIZnNLLXSMLkWYJACSDqsBcl0LR7L7tXa3et1aLPF7VI/a98/ooKdhfo3sx7W6R+nH4ESgBRx+FwqKioSG53yz4jBrRWY+1jNXXgVN2Zf6dKqkrCWndJVYmy87M1beA0jekzJqx1I3IIlACijt1ul8fjUXFxcaS7Apyx5mbNVWy7WI3NHauKoxVhqbPiaIXG5o5VbLtYzR09Nyx14sxAoAQQdbyvRWPrIES7pp6R7BzbWfnT8rWzYqdG/WNUyCOVJVUlGvWPUdpZsVP50/LVqWOnkOpDeITrOVkCJYCok5aWpri4OJ6jRNRq166dJOnw4cNNlhuYPFBrZqxReXW5+j/XX69sfiXgAGIYhl7e/LL6P9df5dXlWjNjjQYmDwy67wgv78+A92ciWLx6EUDUsVgsLMxBVLNarUpKSlJ5ebkkKTY2ttHNxfvY+ujjn32se/7vHv30jZ/q+U+e1/8M/h+Nt49v8pWJbo9b/+v6X83bOE8f7vlQP+n/E/35h39Wp46ddPTo6Xm1IxpnGIYOHz6s8vJyJSUlyWq1hlQf+1ACiEo/+clPVFJSojVr1kS6K0BEGIahsrIyVVRU+H3NmtI1WlC4QB//92Od0/4cXdj5QvU/p796J/RWTJsYuU+49XXV19r27TZt2r9J3373rS7uerFuPv9mjUwd2XI3g6AlJSUpJSXF77cVNYZACSAqzZ49W3//+995pzeinsfj0bFjxwK65ov/fqEl25doY+lGfVb2mQ4cPVBzrlOHTroo5SINSR2i6/ter35d+4W7ywiTdu3ahTwy6cWUN4CoZLfbVVZWpoMHDyoxMTHS3QEixmq1BhwqBvccrME9B0syRzoPuQ/J7XErxhqj+Jj4kEe70PqwKAdAVHI4HJLEc5RAiCwWixLaJ6hzbGcltE8gTEYpAiWAqOTdOohACQChI1ACiEqJiYlKSUlhL0oACAMCJYCoxdZBABAeBEoAUctutzNCCQBhQKAEELUcDodcLlfYXj0GANGKQAkgatntdlVXV7MXJQCEiEAJIGp5tw5i2hsAQkOgBBC10tPTZbVaWZgDACEiUAKIWjExMUpPT2eEEgBCRKAEENW8C3MAAMEjUAKIauxFCQChI1ACiGoOh0NFRUVyu92R7goAtFoESgBRzW63y+PxqLi4ONJdAYBWi0AJIKrZ7XZJbB0EAKEgUAKIamlpaYqLi+M5SgAIAYESQFSzWCwszAGAEBEoAUQ9u93OlDcAhIBACSDqsRclAISGQAkg6tntdpWVlengwYOR7goAtEoESgBRz+FwSBKjlAAQJAIlgKjXp08fSQRKAAgWgRJA1LPZbEpOTmZhDgAEiUAJAGJhDgCEgkAJAGLrIAAIBYESAHRqhNIwjEh3BQBaHQIlAMgcoayurlZpaWmkuwIArQ6BEgBkBkpJTHsDQBAIlAAgKSMjQ1arlYU5ABAEAiUASIqJiVF6ejojlAAQBAIlAJzE1kEAEBwCJQCcZLfbCZQAEAQCJQCcZLfbVVRUJLfbHemuAECrQqAEgJMcDoc8Ho+Ki4sj3RUAaFUIlABwElsHAUBwCJQAcFJaWpri4uJ4jhIAAkSgBICTLBYLC3MAIAgESgCoxW63M+UNAAEiUAJALexFCQCBI1ACQC12u11lZWU6ePBgpLsCAK0GgRIAanE4HJLEKCUABIBACQC19OnTRxKBEgACQaAEgFpsNpuSk5NZmAMAASBQAkA9LMwBgMAQKAGgHrYOAoDAECgBoB7vCKVhGJHuCgC0CgRKAKjHbrerurpapaWlke4KALQKBEoAqMdut0sS094A4CcCJQDUk5GRIavVysIcAPATgRIA6omJiVF6ejojlADgJwIlAPjA1kEA4D8CJQD4YLfbCZQA4CcCJQD4YLfbVVRUJLfbHemuAMAZj0AJAD44HA55PB4VFxdHuisAcMYjUAKAD96tg5j2BoDmESgBwIe0tDTFxcWx0hsA/ECgBAAfLBYLC3MAwE8ESgBohN1uZ4QSAPxAoASARrAXJQD4h0AJAI2w2+0qKyvTwYMHI90VADijESgBoBEOh0MSK70BoDkESgBoRJ8+fSQRKAGgOQRKAGiEzWZTcnIyC3MAoBkESgBoAgtzAKB5BEoAaAJ7UQJA8wiUANAE7wilYRiR7goAnLEIlADQBLvdrkOHDqm0tDTSXQGAMxaBEgCaYLfbJYmFOQDQBAIlADQhIyNDVquV5ygBoAkESgBoQkxMjNLT0wmUANAEAiUANMPhcDDlDQBNIFACQDPYOggAmkagBIBm2O12FRUVye12R7orAHBGIlACQDMcDoc8Ho+Ki4sj3RUAOCMRKAGgGd6tg5j2BgDfCJQA0Iy0tDTFxcWxMAcAGkGgBIBmWCwWFuYAQBMIlADgB7vdzgglADSCQAkAfnA4HIxQAkAjCJQA4Ae73a6ysjIdPHgw0l0BgDMOgRIA/OBwOCSx0hsAfCFQAoAf+vTpI4lACQC+ECgBwA82m03JyckszAEAHwiUAOAnFuYAgG8ESgDwE3tRAoBvBEoA8JN3hNIwjEh3BQDOKARKAPCT3W7XoUOHVFpaGumuAMAZhUAJAH6y2+2SxMIcAKiHQAkAfsrIyJDVauU5SgCoh0AJAH6KiYlReno6gRIA6iFQAkAAHA4HU94AUA+BEgACwNZBANAQgRIAAmC321VUVCS32x3prgDAGYNACQABcDgc8ng8Ki4ujnRXAOCMQaAEgAB4tw5i2hsATiFQAkAA0tLSFBcXx8IcAKiFQAkAAbBYLCzMAYB6CJQAECC73c4IJQDUQqAEgAA5HA5GKAGgFgIlAATIbrerrKxMBw8ejHRXAOCMQKAEgAA5HA5JrPQGAC8CJQAEqE+fPpIIlADgRaAEgADZbDYlJyezMAcATiJQAkAQWJgDAKcQKAEgCOxFCQCnECgBIAjeEUrDMCLdFQCIOAIlAATBbrfr0KFDKi0tjXRXACDiCJQAEAS73S5JLMwBABEoASAoGRkZslqtPEcJACJQAkBQYmJilJ6eTqAEABEoASBoDoeDKW8AEIESAILG1kEAYCJQAkCQ7Ha7ioqK5Ha7I90VAIgoAiUABMnhcMjj8ai4uDjSXQGAiCJQAkCQvFsHMe0NINoRKAEgSGlpaYqLi2NhDoCoR6AEgCBZLBYW5gCACJQAEBK73c4IJYCoR6AEgBA4HA5GKAFEPQIlAITAbrerrKxMBw8ejHRXACBiCJQAEAJWegMAgRIAQkKgBAACJQCExGazKTk5mYU5AKIagRIAQsTCHADRjkAJACFiL0oA0Y5ACQAh8gZKwzAi3RUAiAgCJQCEyOFw6NChQyotLY10VwAgIgiUABAiVnoDiHYESgAIUUZGhqxWKyu9AUQtAiUAhCgmJkbp6emMUAKIWgRKAAgDu93OCCWAqEWgBIAwYC9KANGMQAkAYWC321VUVKRjx45FuisAcNoRKAEgDBwOhzwej4qKiiLdFQA47QiUABAGbB0EIJoRKAEgDNLS0hQXF8fCHABRiUAJAGFgsVh4pzeAqEWgBIAwIVACiFYESgAIE4fDwZQ3gKhEoASAMLHb7SorK9PBgwcj3RUAOK0IlAAQJlesXi1Dp2ml99dfSxaL9MQTLd8WADSDQAkAYZLwq19pmNg6CED0IVACQJgk9uunr5OTCZQAog6BEkB08U4V33mnlJYm2e3Sv/4lDRokdeok/eUvZrn//leaNUvq21eKi5MSEqQRI6R//7thneedZ9Zpsahs717fC3Nycswya9ZIY8dK8fFSr17SX/8avnv75BOpc2dpyhTJ+wrIQNrduVO66SapWzepfXvpooukN98MvhyAqEGgBBCdioul+fOlAwekH/9YeuABaepU6cEHpcOHpfJy6dtvpXvvNcPSsmVSero0erS0fn3dupYtkz78ULrlFknNTHnfdptZR16edMkl0t13N6wvGB98IP3wh9L48dLixVK7doG1u3u3eXztWumpp6QVK8yQPWGC9O67gZcDEF0MAIgmxcWGIRnG8uXm9+PHG8agQebXn31mntu8ueF1x48bhtttGElJhnHbbb7rnj3bMCQjPj7eOHHiRN1zCxeadc+de+pYVZVhtGtnGL/9bfD38cc/Gsa//mUYsbGGkZ1tGMG2+7OfGUZMjGHs2FH3+sGDDePSSwMvByCqMEIJIDolJZm/JibW/VqSvNv+LFggDR0q2WxS27ZSTIxUUSGVljZZ9aFDh1TaWJkRI059HR8vJSc3W1+T3n3XHGH1TmNbLMG1+8470rBhUu/e0vHjpz7Dh0sbNkhud2DlAESVtpHuAABEhDd4tWlT92vJDEhPPy3dc490663SH/4gdelinhsz5tTziU1wuVxKS0treMJmq/u91epXfY1avVqaNk1atMgMlHff7btcc+3u2yeVlTWcKveqrJS6dvW/HICoQqAEAF8WLTJH9ebPP3Xs+HHzucpmWK1WFRYWavClg+X2uBVjjVGCYaiRscPQ3H239Oc/mwuH7r9fuvxy6eKLA6+nSxfzWcjHHvN9/pxzAisHIKoQKAHAF4vFDGm1LV5shspGlFeXq5ukmFtj9KvSX2nmEzNrzv1yW5yelfRkwZMaEztLA7oNCE8/vSOnf/2ruVDmhhukTz9tOCLZnKws6f/+Tzr/fHNKPNRyAKIKgRIAfBk3zpzqfuIJ6fvfN7fk+etfTz1v6fXNNypYt0SLtizSkPc26VZJV3zbQfGl8bptym2qHjJQR48fVccjSyXl6Z9b/6n7vpynEb1G6L7M+zQmXP3t2FH65z/N0cnbbpOWLg3s+kcfNZ+PHDFCys42n8ksLzdXrx86dGqk1t9yAKIKgRIAfHnoIam6Wpo715zmHjzY3HLnxhtriuw/vF+r7xmta5duVWatS99e+q2kb6UVv5MMwzx4/lFJeVp/63q9cXSTntnwjMbmjlX54Tgler5T+3D0ecAA89nPWbOkefOkmTObv8arZ0/p44+l2bPNLZT27TP3mRw8WLr55sDLAYgqFsPw/tcOAOCvz/d+rtGvjtbhY4c1N2uubhx0oywnF/fMmTNHd999t/7+97/r8OHDSkhIUFpamjIzMxV3chrdMAwt+nyR7sy/U7HtYpU/LV8DkwdG8pYAIGgESgAI0Od7P9cVOVeod1JvvTX1LaUlmKu5CwsLNW/ePL300kuqrq5ucJ3NZtP06dM1a9YsORwOSVJJVYnG5o7VzoqdWjNjDaESQKtEoASAAOw/vF+Dnh+k5Lhk/Wf6f5TUIUkVFRX6+c9/rtdee83veiZPnqz58+fLZrOp4miFRv1jlPYf3KtN/7NJnTp2avritjytBODMQqAEgABMWz5Nb+94W9tmbVNaQpr27Nmjq6++Wtu2bQu4rgEDBig/P1/du3dXSVWJ0hK7+3fhkSNShw4BtwcALYV/5gKAn1a6Vip3S65envCy0hLSVFFREXSYlKStW7cqKytLa9euVZotTStffVizVz+sOVl/U+a5mY1f2D4sS3gAIGwYoQQAP43MGakTxgm9P+N9WSwWTZkypdFp7oyMDE2cOFFpaWkqKSlRXl6eioqKfJadPHmyli5dKsMwNCJnhKwWq1bPWN2CdwIA4UWgBAA/bC3fqoHzBmrJdUs0pf8UFRYWqm/fvg3K9erVS88++6zGjBmjNt5XOUo6ceKEVq5cqdtvv127du1qcF1hYaEcDoeWbF2iG16/QVtnblX/bv1b9J4AIFzaNF8EAJC7JVddYrtowvkTJEnz5s1rUKZXr15av369xo0bVydMSlKbNm10zTXX6KOPPtK5557b4FpvfRP7TlSX2C7K3ZIb/psAgBZCoAQAP3xc8rEye2Yqxhqj6upq5eTkNCjzzDPPKCUlpcl6UlJS9MwzzzQ4npOTo+rqasVYY3RZz8v0ccnH4eo6ALQ4AiUANMMwDH1a+qmGpA6RJBUUFOjgwYN1ymRkZGjs2LF+1Tdu3Dilp6fXOVZZWamCggJJ0pDUIdpYulE8kQSgtSBQAkAzqtxVOnDkgPp07iNJKikpaVBm4sSJDaa5G9OmTRtNnDixwfHS0lJJkr2zXQeOHNAh96EQeg0Apw+BEgCa4fa4JUkd2pp7P1ZVVTUok5aWFlCdvsp7621vbV+nXQA40xEoAaAZMdYYSdLR40clSQkJCQ3K+Bq1bIqv8t56v/N8V6ddADjTESgBoBkJMQnq1LGTduzfIcn36GJeXp5OnDjhV30nTpxQXl5eg+OpqamSJNd+lzp17KT4mPgQeg0Apw+BEgCaYbFYNDh1sDaWbpQkZWZmKjExsU6ZoqIirVy50q/63nrrLRUXF9c5ZrPZlJlpvh1nY+lGDUkdIovFEobeA0DLI1ACgB8uTrtYBbsL5Pa4FRcXpxkzZjQoc/vtt6usrKzJesrKynTHHXc0OD5jxgzFxcXJ7XFr3e51ujjt4nB1HQBaHIESAPwwdeBU7Tu8T28UviFJmjlzZoMyu3bt0rBhw/Tmm282mP4+ceKEVqxYoUsuucTnm3K89eVtz9O+w/s0deDU8N8EALQQXr0IAH4K9F3eEyZMqPMu7/rT3F613+V9+cLL1bZNW97lDaBVIVACgJ9WulZq3OJxennCy7rpgptUWVmp4cOHa+vWrUHXOWDAAK1du1Y2m00vb35Z09+YrpVTV2pMnzFh7DkAtCwCJQAEYNryaXp7x9vaNmub0hLStGfPHmVlZQUVKgcMGKD8/Hx1795dJVUl6v9cf43tM1aLJi1qgZ4DQMvhGUoACMDcrLmKbRersbljVXG0Qt27d9fatWs1efLkgOqZPHmy1q5dq+7du6viaIXG5o5VbLtYzR09t4V6DgAth0AJAAHoHNtZ+dPytbNip0b9Y5RKqkpks9m0dOlSbd++XdnZ2erYsaPPa202m7Kzs1VYWKilS5fKZrOppKpEo/4xSjsrdip/Wr46dex0mu8IAELHlDcABGHL3i3KejVLh48d1tysubpx0I01+0becccdWr58uR5//HFVVVUpISFBqampyszMVFxcnCTJMAy98vkrys7PVmy7WOVPy9fA5IGRvCUACBqBEgCCdODIAd35zp16dcurGn7ucN1+8e2a2HeiJv54oiwWi956660G17g9buVtz9MzG55Rwe4C3TjoRs3JmsPIJIBWjUAJACF6e8fberLgSa3ZuUZdYrvoiPOIBnUdpDun3an21vb6zvOdXPtd2li6Uet2r9O+w/s0stdI3Zt5L6u5AZwVCJQAECbbyrfplc2v6E+v/Elx58Wp2qiuOdepYycNSR2ii9Mu1tSBU9W/W/8I9hQAwotACQBhVFhYqL59++o///mPhl42VG6PWzHWGMXHxPNubgBnrbaR7gAAnE1cLpckyeFwKKF9QoR7AwCnB9sGAUAYOZ1OxcfHKzU1NdJdAYDThkAJAGHkcrlkt9uZ3gYQVQiUABBG3kAJANGEQAkAYeR0OuVwOCLdDQA4rQiUABAmlZWV2rt3LyOUAKIOgRIAwsS7wptACSDaECgBIEwIlACiFYESAMLE5XIpJSVFiYmJke4KAJxWBEoACBMW5ACIVgRKAAgTtgwCEK0IlAAQBoZhECgBRC0CJQCEQUlJiaqrq5nyBhCVCJQAEAas8AYQzQiUABAGTqdTVqtVGRkZke4KAJx2BEoACAOXy6WMjAy1a9cu0l0BgNOOQAkAYeB0OpnuBhC1CJQAEAYul4sFOQCiFoESAELkdrtVXFzMCCWAqEWgBIAQFRUVyePxMEIJIGoRKAEgRGwZBCDaESgBIEROp1Px8fFKTU2NdFcAICIIlAAQIu8rFy0WS6S7AgARQaAEgBDxDm8A0Y5ACQAhYg9KANGOQAkAIaisrNTevXtZ4Q0gqhEoASAErPAGAAIlAISEQAkABEoACInL5VJKSooSExMj3RUAiBgCJQCEgAU5AECgBICQuFwuFuQAiHoESgAIkmEY7EEJACJQAkDQSkpKVF1dzQglgKhHoASAILHCGwBMBEoACJLT6ZTValV6enqkuwIAEUWgBIAguVwuZWRkKCYmJtJdAYCIIlACQJBYkAMAJgIlAATJ6XSyIAcARKAEgKC43W4VFxczQgkAIlACQFCKiork8XgIlAAgAiUABMW7ZRBT3gBAoASAoLhcLsXHxys1NTXSXQGAiCNQAkAQnE6n7Ha7LBZLpLsCABFHoASAILBlEACcQqAEgCB4RygBAARKAAhYZWWl9u7dy4IcADiJQAkAAdqxY4ckMUIJACcRKAEgQE6nUxKBEgC8CJQAECCXy6WUlBQlJiZGuisAcEYgUAJAgFiQAwB1ESgBIEAul4sFOQBQC4ESAAJgGAZ7UAJAPQRKAAhASUmJqqurGaEEgFoIlAAQAJfLJYkV3gBQG4ESAALgdDpltVqVnp4e6a4AwBmDQAkAAXC5XMrIyFBMTEykuwIAZwwCJQAEgAU5ANAQgRIAAuB0OlmQAwD1ECgBwE9ut1vFxcWMUAJAPQRKAPBTUVGRPB4PgRIA6iFQAoCfvFsGMeUNAHURKAHATy6XS/Hx8UpNTY10VwDgjEKgBAA/OZ1O2e12WSyWSHcFAM4oBEoA8BNbBgGAbwRKAPCTd4QSAFAXgRIA/FBZWam9e/eyIAcAfCBQAoAfduzYIUmMUAKADwRKAPCD0+mURKAEAF8IlADgB5fLpZSUFCUmJka6KwBwxiFQAoAfWJADAI0jUAKAH1wuFwtyAKARBEoAaIZhGOxBCQBNIFACQDNKSkpUXV3NCCUANIJACQDNcLlckljhDQCNIVACQDOcTqesVqvS09Mj3RUAOCMRKAGgGS6XSxkZGYqJiYl0VwDgjESgBIBmsCAHAJpGoASAZjidThbkAEATCJQA0AS3263i4mJGKAGgCQRKAGhCUVGRPB4PgRIAmkCgBIAmeLcMYsobABpHoASAJrhcLsXHxys1NTXSXQGAMxaBEgCa4HQ6ZbfbZbFYIt0VADhjESgBoAlsGQQAzSNQAkATvCOUAIDGESgBoBGVlZXau3cvC3IAoBkESgBoxI4dOySJEUoAaAaBEgAa4XQ6JREoAaA5BEoAaITL5VJKSooSExMj3RUAOKMRKAGgESzIAQD/ECgBoBEul4sFOQDgBwIlAPhgGAZ7UAKAnwiUAOBDSUmJqqurGaEEAD8QKAHAB5fLJYkV3gDgDwIlAPjgdDpltVqVnp4e6a4AwBmPQAkAPrhcLmVkZCgmJibSXQGAMx6BEgB8YEEOAPiPQAkAPrAHJQD4j0AJAPW43W4VFxezwhsA/ESgBIB6ioqK5PF4GKEEAD8RKAGgHu+WQYxQAoB/CJQAUI/L5VJcXJxSU1Mj3RUAaBUIlABQj3dBjsViiXRXAKBVIFACQD0ul4vpbgAIAIESAOphyyAACAyBEgBqqays1N69exmhBIAAECgBoJYdO3ZIEiOUABAAAiUA1OJ0OiURKAEgEARKAKjF5XIpJSVFiYmJke4KALQaBEoAqIUFOQAQOAIlANTClkEAEDgCJQCcZBiGXC4XI5QAECACJQCcVFJSourqagIlAASIQAkAJ7lcLkliyhsAAkSgBICTnE6nrFar0tPTI90VAGhVCJQAcJLL5VJGRoZiYmIi3RUAaFUIlABwEgtyACA4BEoAOIk9KAEgOARKAJDkdrtVXFzMghwACAKBEgAkFRUVyePxMEIJAEEgUAKA2DIIAEJBoAQAmYEyLi5Oqampke4KALQ6BEoA0KkFORaLJdJdAYBWh0AJADJHKJnuBoDgECgBQGwZBAChIFACiHqVlZXau3cvI5QAECQCJYCot2PHDklihBIAgkSgBBD1nE6nJAIlAASLQAkg6rlcLqWkpCgxMTHSXQGAVolACSDqsSAHAEJDoAQQ9dgyCABCQ6AEENUMw5DL5WKEEgBCQKAEENVKSkpUXV1NoASAEBAoAUQ1l8slSUx5A0AICJQAoprL5ZLValV6enqkuwIArRaBEkBUczqdysjIUExMTKS7AgCtFoESQFRjQQ4AhI5ACSCqsQclAISOQAkgarndbhUXF7MgBwBCRKAEELWKi4vl8XgYoQSAEBEoAUQtp9MpiS2DACBUBEoAUcvlcikuLk6pqamR7goAtGoESgBRy7sgx2KxRLorANCqESgBRC2Xy8V0NwCEAYESQNRiD0oACA8CJYCodPDgQZWVlTFCCQBhQKAEEJVcLpckMUIJAGFAoAQQlbxbBhEoASB0BEoAUcnlciklJUWJiYmR7goAtHoESgBRiQU5ABA+BEoAUcnpdLIgBwDChEAJIOoYhsEIJQCEEYESQNQpKSlRdXU1gRIAwoRACSDqeLcMYsobAMKDQAkg6rhcLlmtVqWnp0e6KwBwViBQAog6TqdTGRkZiomJiXRXAOCsQKAEEHVYkAMA4UWgBBB1nE4ngRIAwohACSCquN1uFRcXsyAHAMKIQAkgqhQXF8vj8TBCCQBhRKAEEB4PPyxZLJHuRbOcTqckP7cMsljM+wrFp59Kw4dLCQlmfVdcEVq5cFq9OvT7AwBJbSPdAQBniVtvlbKyIt2LZrlcLsXFxSk1NfX0NHjzzZJhSMuWSTablJgYWrlwWr1aeuQRQiWAkBEoAYRHjx7m5wznXZBjOV2jqdu2SQ88IF19dXjKAcAZiClvIJp8/bU5nXrnnVJammS3S//6lzRokNSpk/SXv5jl/vtfadYsqW9fKS7OnIYdMUL6978b1nneeWad3o8vOTnmuTVrpLFjpfh4qVcv6a9/Df5edu6UbrpJ6tZNat9euugi6c03m23396+8ort81ffGG9KAAWZd/fpJ+fmht2uxSMePS7///anva09l+1vO33a93nxTGjnSHOVMTJQyM6W8vFPne/c223jkEfP72n9+9UcrN26UfvQj82cgNtb8OXj/fd/teq9fuFA6/3yzn+eeK61Y4bs8gLMGgRKIRsXF0vz50oED0o9/bI6MTZ0qPfigdPiwVF4uffutdO+9ZjhZtkxKT5dGj5bWr69b17Jl0ocfSrfc0ny7t91m1pGXJ11yiXT33Q3r88fu3eb1a9dKTz1lBpZBg6QJE6R3322y3Q0Wi3762Wd12/34Y+naa6WePc2+ZWdLP/tZ8O2OHWv+nnz4ofn9Lbec+v655wIvF8j9zptn/pnGx0svvSQtWWIGwrfeOlUmL6/un5m3zQ8/NB9d8PrySzOYlpWZIXHxYjP4XnmlGTR9WblSeuIJ6f77pbffNv/xcuiQ77IAzh4GgOhRXGwYkmEsX25+P368YQwaZH792Wfmuc2bG153/LhhuN2GkZRkGLfd5rvu2bPN631ZuNA8N3fuqWNVVYbRrp1h/Pa3gd/Hz35mGDExhrFjR93jgwcbxqWXNtpuZWWlEScZx63Wuu1OnGgYnToZxpEjp479/e/mtbNnB95ubfXraExT5fxt9+BBw0hIMIwf/rBhHceONTzW1J+ZYRjGL39pGFarYezceerYgQOGERtrGJMn+74Hm80w9u1rvE4AZyVGKIFolJRk/pqYWPdrSTp40Px1wQJp6FBzgUjbtlJMjFRRIZWWBt/uiBGnvo6Pl5KTg6vvnXekYcPMqdvjx099hg+XNmyQ3G6f7bpcLlVL8nTuXLfdjRulyy+XOnQ4dWzs2NDbDRd/2123TqqqMhf41Nc2iEfm16+X+vc3p629zjlHuuyyxkeWr7lG6tw58LYAtGosygGikfdZxzZt6n4tmUHl6aele+4xpz//8AepSxfz3Jgx0rFjwbdrs9X93moNrr59+8xp2HbtfJ+vrJS6dm3QrnfLoLYdOtRtt7zcfIa0Nl+hKNB2w8XfdvftM79PSwtPuxUVdcOkV5cujQfKXr3C0zaAVoVACaChRYvMUb35808dO37cfK7yTNCli/kM4WOP+T5/zjk+D7tcLqWkpKhN/cVDKSnm86S17d8ftnZD5m+73uC/Z0942k1KOhVSa9u379TIdn3BjIQCaPX4mw+gIYvFXN1dm3dBxpkgK0v6v/8zVxLHx/t9mcvlMt+Qs3Nn3RNDh0r/+Y909Oipae933glbuyHzt91LLzXPL1ggTZtW99zx4w3DnnfEuKrKXMVd3yWXSC+8IO3adWqk8ttvzan1MWOCvx8AZx0CJYCGxo0zp7qfeEL6/velTz4xt/ipPyr1zTfmx/u1VHcqdNiwlunfo4+agW/ECHNFdq9e5rT1hx+aK4prj6zW4nQ6NWTIkIaB8oEHpOXLpYkTpTvuMO/Fu6VOGNoNmb/tJiZKf/yjeQ9jx5or1RMSzD+/L780V2rXNniw+etvfmOW7dDBHOX0jnRmZ5tbG40bJ/3ud+aU+5/+ZD6zee+9LXOvAFolAiWAhh56SKqulubONUekBg82t5q58ca65V58sWHwuvTSU18bRsv0r2dPc6uf2bPNMLhvn7k/4+DBdRakfPfdd2ovadmyZSqJidG2bds0ZMgQnTCMunumDR5sBsqHHjJDZUaGueXO6NFBtRup+5Uk3X67ucH800+f2vpowADp//2/hvWOHGkGxRdflJ59VjpxwmzDuxel3S6tWmVuJzVjhnl+8GBzq6KLL265+wXQ6lgMo6X+iw8AkVFYWKh58+YpJydHB72r1mux2WyaPn26Zs2a5d87vQEATSJQAjhrVFRU6Oc//7lee+01v6+ZPHmy5s+fL1v9FegAAL8RKAGcGfxd8NPIKuI9e/bo6quv1rZt2wJuesCAAcrPz1f37t0DvhYAQKAEcKZo7D3g9R05UncDcpkjk8OHDw8qTHoNGDBAa9euZaQSAIJAoARwZvjkE//KDRnSIHxOmTKl0WnujIwMTZw4UWlpaSopKVFeXp6Kiop8lp08ebKWLl0aULcBAARKAK1cYWGh+vbt2+B4r1699Oyzz+rqq8eooKCNSkul1FQpM/OE8vNX6vbbb9euXbt81sdCHQAIDO/yBtCqzZs3r8GxXr16af369XK7xykjo41GjZKmTpVGjZIyMtro2LFr9NFHH+lcH68V9FUfAKBpjFACaLWqq6uVlpbWYGugFStW6Nixa3TddQ23wvTOli9bJrVtu0Ljx4+vc95ms2nPnj2Kq/+mIABAoxihBNBqFRQUNAiTGRkZysoaq+xs3/uqe4/ddZc0evQ4paen1zlfWVmpgoKCFuoxAJydCJQAWq2SkpIGxyZOnKiCgjY1b4L0xTCk3bulgoI2mjhxYoPzpaWl4ewmAJz1CJQAWq2qqqoGx9LS0uRvHiwtNcv7Uy8AoHEESgCtVkJCQoNjJSUlSk317/rUVN+jnL7qBQA0jkAJoNXyNbqYl5enzMwT6tGj8b3SLRapZ09zC6G8vLwG51P9TaQAAEms8gbQivmzyluquziHVd4AEH6MUAJoteLi4jRjxowGx2+//XZddlmZli2T6r+eu0cPM0xedlmZ7rjjjgbXzpgxgzAJAAEiUAJo1WbOnNng2K5duzRs2DC1a/emiopOaNUqKTdXWrVK+uqrE2rbdoUuueQSn2/K8VUfAKBpTHkDaPWae5f3hAkT6rzLu7i42GdZ3uUNAMEhUAJo9SorKzV8+HBt3bo16DoGDBigtWvXymazhbFnABAdmPIG0OrZbDbl5+drwIABQV0/YMAA5efnEyYBIEgESgBnhe7du2vt2rWaPHlyQNdNnjxZa9euVff6q3cAAH5jyhvAWaewsFDPP/+8cnJyVFlZ2eC8zWbTjBkzNHPmTDkcjgj0EADOLgRKAGet6upqFRQUqLS0VFVVVUpISFBqaqoyMzPZGggAwohACQAAgJDwDCUAAABCQqAEAABASAiUAAAACAmBEgAAACEhUAIAACAkBEoAAACEhEAJAACAkBAoAQAAEBICJQAAAEJCoAQAAEBICJQAAAAICYESAAAAISFQAgAAICQESgAAAISEQAkAAICQECgBAAAQEgIlAAAAQkKgBAAAQEgIlAAAAAgJgRIAAAAhIVACAAAgJARKAAAAhIRACQAAgJAQKAEAABASAiUAAABCQqAEAABASAiUAAAACAmBEgAAACEhUAIAACAkBEoAAACEhEAJAACAkBAoAQAAEBICJQAAAEJCoAQAAEBICJQAAAAICYESAAAAISFQAgAAICQESgAAAISEQAkAAICQ/H9hEN+dkbioNQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tp = TopologyManager2D()\n", + "# creates ground connection\n", + "main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + "main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=True, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None]))\n", + "# creates connection on the first link\n", + "tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + "main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + "tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + "\n", + "tp.set_mutation_ranges()\n", + "graph = tp.get_graph(tp.generate_central_from_mutation_range())\n", + "draw_joint_point(graph)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from auto_robot_design.utils.configs import inertial_config_two_link_workspace, get_mesh_builder\n", + "\n", + "builder, crag, soft_constrain, reward_manager = inertial_config_two_link_workspace(open_loop=True)\n", + "\n", + "draw_joint_point(graph,draw_labels=False)\n", + "for _, trajectory in reward_manager.trajectories.items():\n", + " plt.plot(trajectory[:, 0], trajectory[:, 2])\n", + "\n", + "#plt.plot(workspace_trajectory[:, 0], workspace_trajectory[:, 2])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "772b13ae3e46403c8b20f4e6ca80e4ed", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fe3f95014ceb4c8f863d0a5c2e1df95e", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Button(description='run simulation', layout=Layout(height='40px', width='200px'), style=ButtonStyle(button_col…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import ipywidgets as widgets\n", + "import meshcat\n", + "from pinocchio.visualize import MeshcatVisualizer\n", + "from IPython.display import display, clear_output, HTML, IFrame, Image\n", + "from auto_robot_design.description.mesh_builder.urdf_creater import (\n", + " URDFMeshCreator,\n", + " MeshCreator,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.mesh_builder import (\n", + " MeshBuilder,\n", + " jps_graph2pinocchio_meshes_robot,\n", + ")\n", + "import pinocchio as pin\n", + "import time\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "\n", + "\n", + "mesh_builder = get_mesh_builder()\n", + "output = widgets.Output()\n", + "\n", + "fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(tp.graph, mesh_builder)\n", + "visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + ")\n", + "with output:\n", + " visualizer.viewer = meshcat.Visualizer()\n", + "visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + ")\n", + "visualizer.clean()\n", + "visualizer.loadViewerModel()\n", + "visualizer.display(pin.neutral(fixed_robot.model))\n", + "with output:\n", + " output.clear_output(wait=True)\n", + " display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "#output.append_display_data(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "def run_simulation(b):\n", + " global tp\n", + " ik_manager = TrajectoryIKManager()\n", + " ik_manager.set_solver('Open_Loop')\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(tp.graph, mesh_builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " #ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " poses, q_fixed, constraint_errors, reach_array = ik_manager.follow_trajectory(\n", + " trajectory, viz=visualizer\n", + " )\n", + " time.sleep(0.5)\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "first_run_button = widgets.Button(description='run simulation', layout=widgets.Layout(width='200px', height='40px')) \n", + "first_run_button.style.button_color = 'lightblue'\n", + "first_run_button.on_click(run_simulation)\n", + "display(output, first_run_button)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# activate multiprocessing\n", + "N_PROCESS = 8\n", + "pool = multiprocessing.Pool(N_PROCESS)\n", + "runner = StarmapParallelization(pool.starmap)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "==========================================================\n", + "n_gen | n_eval | n_nds | eps | indicator \n", + "==========================================================\n", + " 1 | 128 | 62 | - | -\n", + " 2 | 256 | 128 | 0.0441215963 | ideal\n", + " 3 | 384 | 128 | 0.0622680791 | ideal\n", + " 4 | 512 | 128 | 0.0036430760 | ideal\n", + " 5 | 640 | 128 | 0.0018162148 | f\n", + " 6 | 768 | 128 | 0.0030603123 | f\n", + " 7 | 896 | 128 | 0.0020702303 | f\n", + " 8 | 1024 | 128 | 0.0028053522 | f\n", + " 9 | 1152 | 128 | 0.0017707041 | f\n", + " 10 | 1280 | 128 | 0.0027291066 | f\n", + " 11 | 1408 | 128 | 0.0014643819 | f\n", + " 12 | 1536 | 128 | 0.0027437988 | f\n", + " 13 | 1664 | 128 | 0.0014761236 | f\n", + " 14 | 1792 | 128 | 0.0028692958 | f\n", + " 15 | 1920 | 128 | 0.0022791957 | f\n", + " 16 | 2048 | 128 | 0.0032702161 | f\n", + " 17 | 2176 | 128 | 0.0019449072 | f\n", + " 18 | 2304 | 128 | 0.0026266735 | f\n", + " 19 | 2432 | 128 | 0.0024689649 | f\n", + " 20 | 2560 | 128 | 0.0032799538 | f\n" + ] + } + ], + "source": [ + "population_size = 128\n", + "n_generations = 20\n", + "\n", + "# create the problem for the current optimization\n", + "problem = MultiCriteriaProblem(tp, builder, reward_manager,\n", + " soft_constrain, elementwise_runner=runner, Actuator=builder.actuator['default'])\n", + "\n", + "saver = ProblemSaver(problem, \"test\", True)\n", + "saver.save_nonmutable()\n", + "#algorithm = AGEMOEA2(pop_size=population_size, save_history=True)\n", + "algorithm =NSGA2(pop_size=population_size)\n", + "optimizer = PymooOptimizer(problem, algorithm, saver)\n", + "\n", + "res = optimizer.run(\n", + " True, **{\n", + " \"seed\": 3,\n", + " \"termination\": (\"n_gen\", n_generations),\n", + " \"verbose\": True\n", + " })" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/experiments/two_link_only_main_branch/mesh/EE.stl b/jmoves/apps/experiments/two_link_only_main_branch/mesh/EE.stl new file mode 100644 index 0000000000000000000000000000000000000000..fd809cd3b542bb23824e71b29c236b3682b5aba3 GIT binary patch literal 536784 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

izYNI|wp6^vL)Eu}U zblV^}D`?3iz`(WqGjJjHTtvE8-AUI1-3XyqG zP85LG04Iesg7*6Q%mt%I$w?uiy~;Tt+*h!Y!AT)ypuO&$f6>bkCgh|L(O%``5WL~V zNgbUFS)I&*SGs`-0;f1EE7_`@R z#a|f&XYnc%&p4~ws=3f!?>{~7

kYil22=X?h{)RiLaB`&@0M?!ouEvcWrp;4EHc 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 z%0D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

-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 literal 0 HcmV?d00001 diff --git a/jmoves/apps/hybrid_loco.png b/jmoves/apps/hybrid_loco.png new file mode 100644 index 0000000000000000000000000000000000000000..dc047f2bec32115d5f2fbc14d78caa1c2a7baa50 GIT binary patch literal 118388 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 O;QpM^t->1)5&sW5R9~C` literal 0 HcmV?d00001 diff --git a/jmoves/apps/kin_struct.png b/jmoves/apps/kin_struct.png new file mode 100644 index 0000000000000000000000000000000000000000..390712ba330a6860835fa756c4aed372e8f90cf1 GIT binary patch literal 67608 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 Ie{5d" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tp = TopologyManager2D()\n", + "# creates ground connection\n", + "main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + "main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=True, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None]))\n", + "# creates connection on the first link\n", + "tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + "main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + "tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + "\n", + "tp.set_mutation_ranges()\n", + "graph = tp.get_graph(tp.generate_central_from_mutation_range())\n", + "draw_joint_point(graph)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Characteristics to be calculated" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB/zUlEQVR4nOzdd3RVVd7G8e+5JbnpIQVIgNBCAlJUmlJUsAAWVFQcRcdeUVHHebGOZWYsYxexooKoKKCiKIJYKBIEBAtFSAgtIQmQ3sst5/0jUkNLvSnPZ61ZQ5J99vndHBMe9r57b8M0TRMRERERkRqyeLsAEREREWnaFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFYUKEVERESkVhQoRURERKRWFChFREREpFZs3i5ARKSxMk2TwopCKtwV+Fh9CPIJwjAMb5clItLoKFCKiBxg/Z71zFg3g1/Sf+HXjF/JKc3Z97UwvzD6RvVlQPQAxvUeR6/WvbxYqYhI42GYpml6uwgREW+blzSPZ5c/y9IdS4nwj2BIhyH0i+pHt/BuOGwOylxlbM7ezJqMNSSkJpBVksXpHU/n/iH3c16387xdvoiIVylQikiLll2SzYQFE5ixbgZDY4Zy18C7uLj7xfhYfY54TYW7gi82fcGrq15lWcoyrup9FZPOnUSYX1gDVi4i0ngoUIpIi7V291rO/ehcSpwlTBo1iav7XL3vPZLFxcUkJCSQnp5OYWEhQUFBREdHM2TIEAICAoDK91h+uPZDJiyYgL/dnwVXLaB3m97efEkiIl6hQCkiLdLa3WsZNm0YnUI78fW4r4kOigZg06ZNvPHGG0ybNo2CgoIq14WEhHDttdcyfvx44uPjAUgvTOf8GeezI28HS65bolApIi2OAqWItDjZ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", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from auto_robot_design.utils.configs import get_standard_builder, get_standard_crag, get_standard_trajectories, get_standard_rewards, get_mesh_builder\n", + "builder = get_standard_builder()\n", + "crag = get_standard_crag(open_loop=True)\n", + "trajectories = get_standard_trajectories()\n", + "rewards = get_standard_rewards()\n", + "\n", + "\n", + "draw_joint_point(graph, draw_labels=False)\n", + "for _, trajectory in trajectories.items():\n", + " plt.plot(trajectory[:, 0], trajectory[:, 2])\n", + "\n", + "#plt.plot(workspace_trajectory[:, 0], workspace_trajectory[:, 2])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dict_keys(['workspace', 'step1', 'step2', 'step3', 'central_vertical', 'left_vertical', 'right_vertical'])\n", + "dict_keys(['mass', 'actuated_inertia_matrix', 'z_imf', 'trajectory_manipulability', 'manipulability', 'min_manipulability', 'min_force', 'trajectory_zrr', 'dexterity', 'trajectory_acceleration', 'min_acceleration', 'mean_heavy_lifting', 'min_heavy_lifting'])\n" + ] + } + ], + "source": [ + "print(trajectories.keys())\n", + "print(rewards.keys())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### set the rewards and weights" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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XDB9+nQ4OTmhX79+D81PRPch7RAkIjIkFy5cEK1atRKWlpYCgIiNjS13cK8QQsTGxooOHToIS0tL4enpKb755psyg5Tv/bqwsFC8//77wtvbW5ibmwtXV1fxzDPPiFOnTmnb7Nq1S4SHhwuVSiUcHBxE165dta9dXr7SxzRv3lwolUrh6uoq3n77bVFUVHTfHHfTaDTCy8tL9OjR46Hvz4QJE0S9evWESqUStWrVEsOHDxcpKSna++fMmSNcXV2FTCYTI0eO1D7/V199JRo2bCjMzc1FrVq1RNeuXcXu3buFEP8Ngv7rr79E48aNhVKpFM2bNxdRUVEPzUNE9ycT4q5+YSKiJygsLAydOnXChx9+KHWU+8rNzYW7uzt+/PFH9O/f/4m//q5du9ChQwfcvn0bDg4OT/z1iYwVxwAR0RNXUFCAY8eO4ezZs2jcuLHUccql0WiQkJCA9957D/b29ujTp4/UkYioCnEMEBE9cf/88w9GjBiB3r1747nnnpM6Trni4uLg4+MDDw8PLF++vEJLexCR4eApMCIiIjI5PAVGREREJocFEBEREZkcFkBERERkclgAERERkclhAUREREQmhwUQERERmRwWQERERGRyWAARERGRyWEBRERERCbn/1wDaEuynnOBAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "trajectory_name = 'step3'\n", + "reward_name = 'dexterity'\n", + "trajectory = trajectories[trajectory_name]\n", + "error_calculator = PositioningErrorCalculator(jacobian_key=\"Manip_Jacobian\")\n", + "soft_constraint = PositioningConstrain(error_calculator=error_calculator, points=[trajectory])\n", + "fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints(graph, builder)\n", + "constrain_error, results = soft_constraint.calculate_constrain_error(crag, fixed_robot, free_robot)\n", + "results = results[0]\n", + "reward, reward_list = rewards[reward_name].calculate(results[0], results[1], results[2], Actuator = builder.actuator['default'])\n", + "reward_vector = np.array(reward_list)\n", + "plt.plot(reward_vector)\n", + "plt.xlabel('trajectory step')\n", + "plt.ylabel('step reward')\n", + "plt.title(rewards[reward_name].reward_name)\n", + "plt.legend([f'Total reward {round(reward,2)}'])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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LVqEYcOGwdPTE6GhoZg1axaKi4tbfI9rr7221bm9++67e/hILu5y57E9P5uOfB4BtPm7KUkS/va3v9n2sefz2J7PCZG/jywsl7B+/XrMnz8fS5YsQUZGBhITEzF58mTk5+eLjtZh27dvxxNPPIHdu3cjJSUFJpMJSUlJqK2tbbHfTTfdhJKSEttr06ZNghJ3zpAhQ1rkP3TokO1rr7/+Ot588028++672Lt3L4KDg3HjjTfankPlCPbu3dvi+FJSUgAAd955p20fRzuHtbW1GDFiBN599902v96e8zZ//nx89dVXWLduHXbu3Inz589j6tSpMJvNPXUYl3SpY6yrq8P+/fvx4osvYv/+/diwYQOOHTuGW2+9tdW+c+fObXFu33vvvZ6I3y6XO4/A5X82Hfk8AmhxbCUlJVizZg0kScKMGTNa7Gev57E9nxNCfx9luqgxY8bIycnJLbYNHDhQfu655wQl6jplZWUyAHn79u22bQ8++KB82223iQt1hV566SV5xIgRbX7NYrHIwcHB8muvvWbb1tDQIOt0OnnlypU9lLDrPf3003Lfvn1li8Uiy7Ljn0MA8ldffWX75/act6qqKtnNzU1et26dbZ+ioiJZoVDI33//fY9lb6/fHmNb9uzZIwOQ8/LybNuuueYa+emnn+7ecF2krWO83M+mM57H2267Tb7++utbbHOk8/jbzwnRv48cYbkIg8GA9PR0JCUltdielJSE1NRUQam6jl6vBwD4+fm12L5t2zYEBgaif//+mDt3LsrKykTE67Tjx48jNDQU0dHRuPvuu3Hq1CkAQG5uLkpLS1ucT41Gg2uuucZhz6fBYMBnn32GRx55pMUDPx39HF6oPectPT0dRqOxxT6hoaEYOnSow55bvV4PSZLg4+PTYvvnn3+OgIAADBkyBM8++6xDjQ4Cl/7ZdLbzeObMGXz33XeYPXt2q685ynn87eeE6N9Hp3n4YVcrLy+H2WxGUFBQi+1BQUEoLS0VlKpryLKMhQsXYuLEiRg6dKht++TJk3HnnXciKioKubm5ePHFF3H99dcjPT3dIVZrHDt2LD755BP0798fZ86cwZ/+9CeMHz8eWVlZtnPW1vnMy8sTEfeKff3116iqqsJDDz1k2+bo5/C32nPeSktLoVar4evr22ofR/xdbWhowHPPPYd77723xQPl7rvvPkRHRyM4OBiHDx/G4sWLceDAAdtlQXt3uZ9NZzuPH3/8Mby8vDB9+vQW2x3lPLb1OSH695GF5TIu/D9XwHoSf7vN0Tz55JM4ePAgdu7c2WL7zJkzbX8/dOhQxMfHIyoqCt99912rXzp7NHnyZNvfDxs2DAkJCejbty8+/vhj2+Q+Zzqfq1evxuTJkxEaGmrb5ujn8GI6c94c8dwajUbcfffdsFgsWL58eYuvzZ071/b3Q4cOxVVXXYX4+Hjs378fsbGxPR21wzr7s+mI5xEA1qxZg/vuuw9arbbFdkc5jxf7nADE/T7yktBFBAQEQKlUtmqEZWVlrdqlI3nqqaewceNGbN26FeHh4ZfcNyQkBFFRUTh+/HgPpetanp6eGDZsGI4fP267W8hZzmdeXh62bNmCOXPmXHI/Rz+H7TlvwcHBMBgMOHfu3EX3cQRGoxF33XUXcnNzkZKS0mJ0pS2xsbFwc3Nz2HP7259NZzmPALBjxw7k5ORc9vcTsM/zeLHPCdG/jywsF6FWqxEXF9dqmC4lJQXjx48XlKrzZFnGk08+iQ0bNuCnn35CdHT0Zd9TUVGBgoIChISE9EDCrtfY2Ijs7GyEhITYhmAvPJ8GgwHbt293yPP54YcfIjAwEDfffPMl93P0c9ie8xYXFwc3N7cW+5SUlODw4cMOc26by8rx48exZcsW+Pv7X/Y9WVlZMBqNDntuf/uz6Qznsdnq1asRFxeHESNGXHZfezqPl/ucEP77eEVTdp3cunXrZDc3N3n16tXykSNH5Pnz58uenp7y6dOnRUfrsMcee0zW6XTytm3b5JKSEturrq5OlmVZrqmpkZ955hk5NTVVzs3Nlbdu3SonJCTIYWFhcnV1teD07fPMM8/I27Ztk0+dOiXv3r1bnjp1quzl5WU7X6+99pqs0+nkDRs2yIcOHZLvueceOSQkxGGOr5nZbJYjIyPlRYsWtdjuqOewpqZGzsjIkDMyMmQA8ptvvilnZGTY7pBpz3lLTk6Ww8PD5S1btsj79++Xr7/+ennEiBGyyWQSdVgtXOoYjUajfOutt8rh4eFyZmZmi9/PxsZGWZZl+cSJE/Irr7wi7927V87NzZW/++47eeDAgfKoUaMc4hjb+7PpyOexmV6vlz08POQVK1a0er+9n8fLfU7IstjfRxaWy1i2bJkcFRUlq9VqOTY2tsVtwI4EQJuvDz/8UJZlWa6rq5OTkpLk3r17y25ubnJkZKT84IMPyvn5+WKDd8DMmTPlkJAQ2c3NTQ4NDZWnT58uZ2Vl2b5usVjkl156SQ4ODpY1Go189dVXy4cOHRKYuHN++OEHGYCck5PTYrujnsOtW7e2+bP54IMPyrLcvvNWX18vP/nkk7Kfn5/s7u4uT5061a6O+1LHmJube9Hfz61bt8qyLMv5+fny1VdfLfv5+clqtVru27evPG/ePLmiokLsgV3gUsfY3p9NRz6Pzd577z3Z3d1drqqqavV+ez+Pl/uckGWxv49SU0giIiIiu8U5LERERGT3WFiIiIjI7rGwEBERkd1jYSEiIiK7x8JCREREdo+FhYiIiOweCwsRERHZPRYWIiIisnssLERERGT3WFiIiIjI7rGwEBERkd1jYSEiIiK79/9A+npFYj0R0QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(np.sum(np.abs(np.diff(results[2]['q'], axis=0)),axis=1))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "e67e081c5e4f4aeb9f52ec6f25a17f57", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fbe3bd561418448fba069fd754494259", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Button(description='run simulation', layout=Layout(height='40px', width='200px'), style=ButtonStyle(button_col…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import ipywidgets as widgets\n", + "import meshcat\n", + "from pinocchio.visualize import MeshcatVisualizer\n", + "from IPython.display import display, clear_output, HTML, IFrame, Image\n", + "from auto_robot_design.description.mesh_builder.urdf_creater import (\n", + " URDFMeshCreator,\n", + " MeshCreator,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.mesh_builder import (\n", + " MeshBuilder,\n", + " jps_graph2pinocchio_meshes_robot,\n", + ")\n", + "import pinocchio as pin\n", + "import time\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "\n", + "\n", + "mesh_builder = get_mesh_builder()\n", + "output = widgets.Output()\n", + "\n", + "fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(tp.graph, mesh_builder)\n", + "visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + ")\n", + "with output:\n", + " visualizer.viewer = meshcat.Visualizer()\n", + "visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + ")\n", + "visualizer.clean()\n", + "visualizer.loadViewerModel()\n", + "visualizer.display(pin.neutral(fixed_robot.model))\n", + "with output:\n", + " output.clear_output(wait=True)\n", + " display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "#output.append_display_data(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "def run_simulation(b):\n", + " global tp\n", + " ik_manager = TrajectoryIKManager()\n", + " ik_manager.set_solver('Open_Loop')\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(tp.graph, mesh_builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " #ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " poses, q_fixed, constraint_errors, reach_array = ik_manager.follow_trajectory(\n", + " trajectory, viz=visualizer\n", + " )\n", + " time.sleep(0.5)\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "first_run_button = widgets.Button(description='run simulation', layout=widgets.Layout(width='200px', height='40px')) \n", + "first_run_button.style.button_color = 'lightblue'\n", + "first_run_button.on_click(run_simulation)\n", + "display(output, first_run_button)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/mechanism_analysis/mesh/EE.stl b/jmoves/apps/mechanism_analysis/mesh/EE.stl new file mode 100644 index 0000000000000000000000000000000000000000..fd809cd3b542bb23824e71b29c236b3682b5aba3 GIT binary patch literal 536784 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

izYNI|wp6^vL)Eu}U zblV^}D`?3iz`(WqGjJjHTtvE8-AUI1-3XyqG zP85LG04Iesg7*6Q%mt%I$w?uiy~;Tt+*h!Y!AT)ypuO&$f6>bkCgh|L(O%``5WL~V zNgbUFS)I&*SGs`-0;f1EE7_`@R z#a|f&XYnc%&p4~ws=3f!?>{~7

kYil22=X?h{)RiLaB`&@0M?!ouEvcWrp;4EHc zVh4|kS1+NxF2~)@5heoKUT|&OeJ|-oc2RKxYPD5mp}n3D`(O~9#j8xz1WeUQ^+C;n zW3ku09AP5=rc18kv)(3+&MMEfP152lZ`6Bz+31}?a2BsJ@m#wlUd@H}TB6nsFGrY2 z{q~YewAb6dGM_ho*-{lp&4ErUUK#{v@hTJR#Nt1wrO;kK`(O8Rgo*k2FS^9{TH>{g zyX77b(wAZG?uXs7aMD~btE;(x}=!~p=+TX6D#zT8O z9*Y0bN|>{_2Sb^_Ng-iaGdy3G?Bxg(W;9dqERHa7_{SMqdp(E~^c;@G(>vSspuO(@VS+($){Sd( zwDy`%KxUi~MH1{u&|VvSU2AcKi6sl?Y3()hV|hL=H>Rh(2ij}<4^s?+vu31Nq_x+7 zHpq}4M9ATo+&Ba=KUGYxF_IX|V+po{&Ns65}(;$qjt4p=^8s}~R;$=iH zdj+)DDv9eX2Su2eo48nOuY-f@gQ#??ul*X@>w!zN41%)?;B-pSUI*f|O4Jq^-%ZyX znEmM&iz7@FtF%aKueZ`S1W~nkPx}zG*Qs}A83bp|T=TQmUTb}63?jw(c>4*o*AlTy zEsij8YQ$WvyrgQ|3awS2?Ycdz73`DcY-?J;{B= z;gHiQZ*Mv5-8f>F#StdtbV|`)<+MtNqZLl4Y`Y-Y>l`xOlG77IDIF|^k~hsGKNXBF-?SZl8j zD+w{RKs);(wAX)LuCzG9#N~BEwf6e`UAfy|J?L)tg!UTOagsrB)|S2fwf0&R=dNSt zq_>OR4>bpB=3i@Zgo!eb2Wjm!UmxioW2*MG&p~^geEBDX;H;cDTU~sw$2UsiP zR_nU!Esije#xYcDuS2HEy}S5!Kl{7ttK6CAPd5n8`p{{p)?T}%k$ZRGv|e_9Xs@%c zthG48#MD5XP6_RGr(aVLzi#Mde}wkBRpGQs`Yg`+HStHSz1G87>!^P5xSJgd?KMN( zDvKjboX;{=Yp;#=N*m$dI@|rBz0RC9)gUmydtHXJ*75$_+0jmh_F8Z6B8wwT zyc#e`Yp*+STBXBL*VD>=0qr$%)ntROgxf zTC|bkd5L@Q^4$}(_Bws2%$%8f%(CL3y@t%qRz6X|+ApQmc= z^<`9?o4+6YaAlWUGoif}*woDU=1lM`iXBzcmRs$iy~ea_t2n~Mi0@}lu9SnlA zcos!RIgt@#StdHzc5m3uMZ<-c0T;|XX_Yh4qRQ`*C05H z#~3{0)SGU#*uBe>eN#Wh5hkic_S4#HSXF6b^&fMrGSFVf&FX6qoW)}$YTX~3XuX5) zHCKFJ#StdL|LCf<*WjM=TP;gH-71K)wm$gvF$m7$5ga4+;W5@IXs=^t_EH>S;?MYw zT6^_Pl)w3a-IJ}(a@N+j9tOc#Ja^$OK<`o3L1?d~!@4PsF!3^X2d%v}Dk|&5ew!y) zi=e$O8=qhhoW*l6+@DQ{Te+aU`nT$+IKo86O&zrMI_`8`w9)$UIO`O&*T;z+41%+G zErGfQ6^B{Lc#eASY@;~BM7{@|wD$UHmprjliyLRvhxR&hbt{A5EM60#_RcTEtzyt# z6CO8F9AVyb#?7j)16TE&z?Y8k9)LLk-)3*NPeVEi!Yp;2OUe)Jc4T7_7 z5ALP4*ER9Y&_=f+y;Kym*UqP>dpW`ck9JrA{MJncL3{1eZlytRR=R70wDvkHeRH(o z9obohLVF#QZkm@POz^0U^UuG=tE|voo2Or75S(?%f3((KYd(|jQDtZ=l^NP=hV)as z9AScIAJi5Z+ENvR1~)f$x;kjJa|2ow6Ua0J2ejVURxZWZuF@0hkI)6^~Sv# zM(=_KFruxxh?)bPLS}lo7csHXucy{tFAS2kXpd8^)LZyoTfCj&J#cT7)?OE@4~Ms|sZsAWXwf_`N0_+PaGX|(et0FC%+$MW)f{NAm-eqT2+raa zC+6DI9aR*x*8!p9y&Pd;P1H|Xd+jq>#*)l8JFCm6_xiEzT7%#$US;C>qhAkI4BG2? z-zi>>FfnD+Os&0camf5p-PuE(g7$jj;d+DMEM8^ejY*fjY74a2qg zU0Y9{IX7b^X5*|a*Ov_j!CAb@#H`k-zj6<ZxEctt4!2^4DF{nL3^#YW0sdAOl)g9PiwCyJIb1&$n9>b2(;G`v(^{{XYnc% zCmb#8sV+f#?RRIEmm^Fpe?41kufvPT+NWgEj%p~h*Hf358U$zYDicrJTRW-J&|bHn znCayR6EBBP*V=1=Eixv)32mtsL3?eUXO2N|7WZI>Bj3`NstVQ&=UYwpa)b%9pFf(~ z)$Rk|>$mD5*6+P@Y3+?i7t1ZTNo!d?C5T}(RQl)vE4HiPXmA5(ZE zu2~jGm}nedR%@@73(Gv1HN!Bw$-38`=$fevg0uYUM7UOjK1dpOR5XAW6NlQZMz2Wf z)6{Kogo(BPme<VPezw<+NHmIay|d?7artT?T|( zrvkGX1ZTZFUdFYxo}cHR^Q}M}Th`w`ez2j{H%~Q-BTTrfm(ptOtO+eZoEhBT_C5Hc zRbXcdgW#;{M?zh{P0ZkFaj!LqsDK{!+zl(N-_lmHIKsrw7Yk~&Hq}Y_<~xV=u)~&b zvhE#p7zAheSp{7q+h_AkKi3At1pf}Uf4(bL$FU_Xjxg~hFq_t1+pLyvo+*C^`^EX| z*1>U^41%-j-U-x1hrw+@>~|;FbEeqdv8!_%eQN2|4mg6p~SH}TOc z^14NYaE<9=_lH_r_I4VJBTOt>{LLw9ZELMFl&IO=ZUeQpd-@l~XK~ibi+?$#O2Ho! zWh`luqnrIN)Y`l)%3B;^V&;%nPI1a+FQeC@iT&-`P;2k!e(z?2vu^jh?-Zx3>MXOt z)0F+}LQrdaT#mLl!o=d451dk^z_Cbr?Z=u!?O&nR4*2Jbn+eWJEOXN-YVDPcGEz6G zHrUPqwKjcAm&Fk#V%y(wN|l0I{pD`olRVrm1-16)F%E;^tZLJ4I;BcMpSse||6DZG zt^~FA(-5b{5hixkz2}rF1rdAYPE46|xP1g_?c**f41%+srFiI+Dg{1D`iJ|}5PJjE z+8Cb-7Dt!}-SEsQYVDNv(mzH%9b_j%t9T3f9_ zX^SIFl%4k3DNfns4$?oCmF;a0gIZhpW@>}rtPP!0Yqj?G$I`~=Q9bR0P-~;-6|gwM z#Ga3STCHvIhqN)^YP|glYHfi$eg?r=+=Ee{AzwTc`YTq~qM0p@Fk$xdmR5*06l(3C zHCrm4$+!m}uMwct+R3Zs33AfyJXT4lwXG9cDvmIb){{Zc)E!sKS~O$P>{eT-wGB6# z1ZVv`*-sNU9td&x#{laH)Y^rCtrSN>F&c=bE29Coji;jFg{^N;YrF4hZ(P-$=ee|6 zJLXbDH-A5eW0SkQ)fj56J)ynv&6(hN7pn8VaLa~Td$d%7;s_J%{tDJ=?VKGlGK|!PzZ%vcsI}LZngnO@ zEDD$2%NVNzoU$wW^iv#R;`Y^oTCMeIA^p74yP8%mIAvQ@Hwn(-Srl!oin4k^t!)-O zNO6RT9Ch+)wf043>F22$R=0LQt*!Qaph0jJ&!Tv1S)z zXI(GKm;`5W--Jfy%3_U5KAUtfZn)wI6M21~JEcm&SG;(T083YFx0yL-?+rYj1(80Ql%iVg#I4gGguc&ZaH z5hh}uCOM@_L0pi`YCa$Tb{BzK+vm{$gWxQlyRiH0)_M0vsI{JkeHBNT=rMnql~ z9439R%Jetx15j%lRqSIBoW*l6=8xhRP&FkHm2SH$jxh24(?6WrDO+B~k`^c5xVJ*B zZP&J&L2wqY3{W5L=~eeRJbB${)=_bUiQR2aI;Bd%=34Srrh4Qjw^WFI*d*Q{IEz;} zsH~d(vAZkO+JU88D~>SHro|1Xym23SQPyyihkbDGgj&09Pb-7qtgtgrG!eX1h#v2J ztn*N7i}r7&I5JUv&{=!i*EZH&*kf|U-}*(=+Qw!ZOz`><9+t#z>JO;3ju*b(980e| z#VK1gWdk=~Rp{G4^~!SHYx%7{CG=F8q1M)~`ImkRf$k*eV2XnaD)lIE8)z%G+1SXTKmsrrXhDgN|l0(5i+(nzBgQT!|7aa z5`DZJVS;-X^pf2})y^~dTz&;&41%-19o*-XDh1Xs{p59GnDRoct#mG>mm^H@DB*C7 zS~f(@fLdFpRfIus*7gs_ol>PBAXrvpX?qV+<)GH)I+fbX5hi%F!+N*x0F@VN?cbY9 z8U$xG+IH0`RSJ@G{(v^h+Pzd^sI`Ui_<1?P1drNyuNKi$eLx9AScIA1Gd*I_L_qmojBG2+p#f`RaKvb!KT}=Atnclgh%CaEY z%0D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

-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 literal 0 HcmV?d00001 diff --git a/jmoves/apps/mechanism_analysis/one_mech_analysis.ipynb b/jmoves/apps/mechanism_analysis/one_mech_analysis.ipynb new file mode 100644 index 00000000..1e65fcdc --- /dev/null +++ b/jmoves/apps/mechanism_analysis/one_mech_analysis.ipynb @@ -0,0 +1,503 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from pymoo.decomposition.asf import ASF\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import MultiCriteriaProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.optimization.rewards.reward_base import PositioningConstrain, PositioningErrorCalculator, RewardManager\n", + "from auto_robot_design.optimization.saver import load_checkpoint\n", + "from auto_robot_design.description.builder import jps_graph2pinocchio_robot_3d_constraints\n", + "from auto_robot_design.generator.user_generator.graph_generator import TopologyManager2D\n", + "from auto_robot_design.description.kinematics import JointPoint\n", + "from auto_robot_design.utils.configs import get_standard_builder, get_standard_crag, get_standard_trajectories, get_standard_rewards, get_mesh_builder" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [], + "source": [ + "MECH_FROM_OPTIMIZATION = False" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Praise the Gods for ChatGPT that helps us to create simple way to make directory choosing interface." + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": {}, + "outputs": [], + "source": [ + "if MECH_FROM_OPTIMIZATION:\n", + " import tkinter as tk\n", + " from tkinter import filedialog\n", + "\n", + " def select_directory():\n", + " # Create a root window\n", + " root = tk.Tk()\n", + " # Hide the root window\n", + " root.withdraw()\n", + " # Make the root window the topmost window\n", + " root.call('wm', 'attributes', '.', '-topmost', True)\n", + " # Open directory dialog and store the selected directory path\n", + " directory_path = filedialog.askdirectory(initialdir=\"./\",\n", + " title=\"Select a directory\"\n", + " )\n", + " root.update_idletasks() \n", + " root.destroy()\n", + " # Check if a directory was selected\n", + " if directory_path:\n", + " #print(f\"Selected directory: {directory_path}\")\n", + " return directory_path\n", + " else:\n", + " #print(\"No directory selected\")\n", + " return None\n", + "\n", + " # Call the function to open the directory dialog\n", + " selected_directory = select_directory()\n", + " problem = MultiCriteriaProblem.load(\n", + " selected_directory\n", + " )\n", + "\n", + " checkpoint = load_checkpoint(selected_directory)\n", + " optimizer = PymooOptimizer(problem, checkpoint)\n", + " optimizer.load_history(selected_directory)\n", + " res = optimizer.run()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I have no idea what happens here, but it appears to be a way to get a particular solution from Pareto front using the weights of the criteria " + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": {}, + "outputs": [], + "source": [ + "WEIGHT = 0.5\n", + "if MECH_FROM_OPTIMIZATION:\n", + " F = res.F\n", + " approx_ideal = F.min(axis=0)\n", + " approx_nadir = F.max(axis=0)\n", + " nF = (F - approx_ideal) / (approx_nadir - approx_ideal)\n", + " weights = np.array([WEIGHT, 1-WEIGHT])\n", + "\n", + " decomp = ASF()\n", + " b = decomp.do(nF, 1/weights).argmin()\n", + " best_x = res.X[b]\n", + " graph = problem.graph_manager.get_graph(best_x)\n", + " draw_joint_point(graph)" + ] + }, + { + "cell_type": "code", + "execution_count": 155, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhOUlEQVR4nO3deXxU1R338e9kIENIICFhDWQCJJkBBBRE2VGqVRAVcW3VPiJq605rW9e2oHWrbdWqdRd4WsVHRbAoi7YCCgiyu4GZhCWJLMYQgpBAQibn+eMyWUiALDOZzMzn/XrNK8mde8/53STAl3PvOddmjDECAAAAGikq2AUAAAAgtBEoAQAA0CQESgAAADQJgRIAAABNQqAEAABAkxAoAQAA0CQESgAAADQJgRIAAABNQqAEAABAkxAoAQAA0CQESgAAADQJgRIAAABNQqAEAABAkxAoAQAA0CStgl0AAAAIHq/XqyNHjgS7DARB69atZbfb/dIWgRIAgAhkjNGePXtUVFQU7FIQRAkJCeratatsNluT2iFQAgAQgXxhsnPnzmrbtm2TAwVCizFGJSUlys/PlyR169atSe0RKAEAiDBer7cyTCYlJQW7HARJTEyMJCk/P1+dO3du0uVvJuUAABBhfPdMtm3bNsiVINh8vwNNvY+WQAkAQITiMjf89TtAoAQAAECTECgBAAACbPr06TrttNOCXUbAECgBAECjeb1eLVu2TG+++aaWLVsmr9cb8D737NmjqVOnKj09XW3atFGXLl00atQovfjiiyopKQl4/6iNWd4AAKBR5s6dq6lTp+q7776r3NajRw/94x//0KWXXhqQPrdt26aRI0cqISFBjz76qAYMGKDy8nJ5PB7NmDFDycnJuvjii2sdd+TIEbVu3TogNYERSgAA0Ahz587V5ZdfXiNMStLOnTt1+eWXa+7cuQHp99Zbb1WrVq20bt06XXnllerbt68GDBigyy67TAsWLNBFF10kyZps8uKLL2rixImKjY3Vww8/LEl64YUXlJaWpujoaLndbv373/+ubHvHjh2y2WzatGlT5baioiLZbDYtW7ZMkrRs2TLZbDZ9/PHHGjJkiNq2basRI0YoMzOzRp2PP/64unTponbt2umGG27Q4cOHA/L9aCkIlAAAoEG8Xq+mTp0qY0yt93zbfv3rX/v98vfevXv10Ucf6bbb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Rx06yhqp3LVrl9LS0rSpHl2mpaWpKCur1nZfu15jjUTGto616hs40JqVX5ejs1Prcx4BUd/fA3/r21eaP7/2iGRmpvUeWiy73Vpo4vLLrR9d9b8afD/Kp5+29guE0tLSyvUgfVq1aqWOvj9DJ3DzzTfr73//u+666y796le/0vr16ytnTh8rPz9fhw8frrEtKSmpQcvvTJ8+XXfeeafat2+v8ePHq7S0VOvWrdO+fft011136ec//7keffRRXXLJJXrsscfUrVs3bdy4UcnJyRo+fLh69uyp7du3a9OmTerRo4fatWunc889VwMHDtQ111yjp59+WuXl5br11lt11llnaciQIfWuzZ8YoQRCzQ03WP/Qz57d9LaGDrVGhXJzq7bt22ddeq1+P1zXrtbH6kEnL6/uEFIfQ4ZIy5db9+35LFrUuLYk6z6+uDhrSaVjHb3EnByXrDU9pK65hVJurtLS0iRJCZJGSFotad68ebr55psVdZLLrXa7XTfffLPWr19f673evXtLkvYdKpJNNnWN62qt/7h5s9Snj3Xux758ob8e51GDb6TwwIET1ntS9f098Ldx46zRyP/9r2rbl19a91FecEHg+oVfXHqpNGeO1L17ze09eljbA7kO5eLFi9WtW7car1GjRtXrWKfTqXfffVfvv/++Tj31VL344ot69NFH69zX7XbX6qeuP/cncuONN+rVV1/VrFmzNGDAAJ111lmaNWtW5QhldHS0PvroI3Xu3FkXXHCBBgwYoMcff7zykvhll12mcePGaezYserUqZPefPPNyqfwdOjQQWPGjNG5556r3r1766233mpQbX7VpCk9AJqf12stqdK2rTEPP2wt4TJnjjH9+lmzhqs72azpzEyrnWNn97ZqZc3E9jl40FqqaPx4axaxx2PN0G7Tpu5Z3iebDb5+fc1Z3i+9ZExyctNmeT/7bNXs6HfesWZSP/ywMZMnV+5yxu/iTXHr2rO8yyQzpI5Z3qnVlhOSZLZLZmYds7yr7/f9998bk5pq/t+QNrVneQ8aZM3yXrrUmLfeMubXvzbmxhsbfB6Vli2z9r3zTms295YtxvzwQ9X7eXlVs7/rmhHuU9/fg/r+fOvryBFjBg60ZnS/8461nFXfvsb06mX9ziFg/DWz1xhraaClS42ZPdv6GIilghA4LBsERLLDh4155JGqtSU7dDDm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b9YFF1yguLg4denSRb/4xS9UUFDQ4HMJFwRKADiGx+ORw+GoMeLhdDrlcDi4LIawZozRht0bdHq305ulv9O7na71u9erodM53nrrLbndbrndbl177bWaOXNmZRsLFizQpZdeqgkTJmjjxo36+OOPNWTIEEnS3Llz1aNHDz300EPavXu3du/eXattt9ut008/XW+88UaN7bNnz9bVV18tm82m3bt366yzztJpp52mdevWafHixfr+++915ZVXNvI7Efq45A0Ax/B4PMrIyFBUVNX/ue12u9LT0wmUCGsHyg6o8FChMpIymqU/V5JLhYcKdbDsoNo52tX7uNdee03XXnutJGncuHE6ePCgPv74Y5177rl65JFH9LOf/UwPPvhg5f6nnnqqJCkxMVF2u13t2rVT165dj9v+Nddco+eee05//vOfJVl/J6xfv17/+te/JEkvvPCCBg8erEcffbTymBkzZiglJUUej0cul6v+34QwwQglABwjMzOzzn8QXC4Xl7wR1sq8ZZKkNq2a57GYDrujRr/1kZmZqTVr1uhnP/uZJKlVq1a66qqrNGPGDEnSpk2bdM455zSprp/97GfKycnR6tWrJUlvvPGGTjvtNPXr10+StH79ei1dulRxcXGVrz59+kiStm7d2qS+QxUjlABwDI/HUzn6UZ3b7dbs2bODUBHQPHz3TR4uP9ws/ZV6S2v0Wx+vvfaaysvL1b1798ptxhi1bt1a+/bt88vkmm7dumns2LGaPXu2hg0bpjfffFO/+tWvKt+vqKjQRRddpL/85S91HhuJCJQAUE1JSYny8vKOO0KZm5urQ4cOMSMUYalddDslxiQqa29Ws/Tn2etRYkyi4qLj6rV/eXm5/vWvf+nvf/+7zjvvvBrvXXbZZXrjjTc0cOBAffzxx7r++uvrbCM6Olper/ekfV1zzTW655579POf/1xbt26tHBGVpMGDB+vdd99Vz5491aoVUUrikjcA1JCVZf1D6na7a73n2+bbBwg3NptNg7sN1vrd65ulv/W71+v0bqfXe73LDz74QPv27dMNN9yg/v3713hdfvnleu211zRt2jS9+eabmjZtmrZs2aKvvvpKTzzxRGUbPXv21KeffqqdO3eecFb2pZdeqh9//FG33HKLxo4dW2NE9LbbblNhYaF+/vOfa82aNdq2bZs++ugjTZkypV5hNRwR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Yn29bp319Zw5ge0XQFjjkjeAxrv/fsnlkp5+2gqRNpuUkSHdeqv1vsslLV1q7Td5snW/5eDB1tI9Z5wRuLpSUqS1a6Vp06yAW1BgrUc5eLA0xRqP7Ny5s0499VT984sv9J2kuyTNlGR78EFFDx6sA7+/X93frMqFkrQt5SxtGfYnuZa/rF4L9+hbSdMlPXj0/T906aLEYxdKHz686nPfcySC9X2RrO/JJ59Uff3Pf1qv6vUBQAPxpBwAEetET8p59tlnNW7chBpPyhk5skKLFn2gO+64I3SflAMAAUCgBBDRTvYs70suuaTyWd7z5s3T9u3b69y31rO8ASCCECgBRLTc3Fy5XC6VlpY2ug2HwyGPxyNnXUsBBVp57clDdWrFHU4AAodJOQAimtPp1IoVK+RwOBp1vMPh0IoVK4ITJiVrrc36vA4fDk59ACICI5QAIGukcuTIkce9/F2XHj16aOXKlcELk5I1S7s+Tj/95E82AoBGIlACQDULFy7UAw88oE2bNh13n9NOO02PPvooE3AA4CgCJQDUIT8/X6+99pq2bdumoqIiJSQkqHfv3rrhhhvUuXPnYJcHAC0KgRIAAABNwqQcAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECT/H9ALYJ5ZhurtgAAAABJRU5ErkJggg==", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "if not MECH_FROM_OPTIMIZATION:\n", + " tp = TopologyManager2D()\n", + " # creates ground connection\n", + " tp.add_connection(ground=True, self_mutation_range= [(-0.2001, 0.1999),None,(-0.1, 0.1)], dependent_mutation_range=[(-0.13,0.07),None,(-0.3,-0.1)])\n", + " main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + " tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + " main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + " tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None]))\n", + " # creates connection on the first link\n", + " tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + " main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + " tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + " # creates connection on the second link\n", + " tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.5, 0.3)], self_freeze_pos=[0.0,0,-0.4999], dependent_mutation_range=[(-0.2,0.0),None,(-0.0,0.2)])\n", + " # creates branch node and one-joint branch in the topology manager. \n", + " branch_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=False, name='branch', attach_ground=False, attach_endeffector=False)\n", + " tp.add_relative_node(branch_jp)\n", + " # adds a dependent connection of the one-joint branch to the \n", + " tp.add_dependent_connection(0,1,connect_head=True)\n", + " # adds independent connection to the second link finishing the branch building\n", + " tp.add_independent_connection(tp.branch_ends[1][1],tp.connections[2].connection_jp)\n", + " tp.set_mutation_ranges()\n", + " tp.visualize()\n", + " graph = tp.graph" + ] + }, + { + "cell_type": "code", + "execution_count": 164, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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AdqxY4fVpQDNkmEY+irvKw2OGnxOrjc4arDS8tLk6dN37777ruLj4xUfH68bb7xRCxcurDzHihUrdPXVV2vChAnatm2bPv/8cw0ZMkSStGzZMsXExOjJJ59UXl6e8vLyap07Pj5egwcP1ttvv+2yffHixbrhhhtks9mUl5enUaNGadCgQdq6datWrlyp77//Xtde23SPCDR33PIG4FfsdruysrKsLgNolopKi3S85LguaH/BOble7/a9dbzkuIpLi2VvZa/3cfPnz9eNN94oSRo7dqyKi4v1+eefa8yYMXr66ad1/fXX64knnqhsP3DgQElSu3btFBgYKLvdrs6dO9d5/mnTpumVV17RU089JUnavXu30tLS9K9//UuSNHfuXCUmJuqZZ56pPGbBggXq2rWrdu/erd69e9f/h3CeoIcSgF/p3Lmz8vPzrS4DaJZKK0olSa1beD84wxOtAlu5XLc+du3apS1btuj666+XJLVo0ULXXXedFixYIEnavn27fv7znzeoruuvv14HDhyofDzm7bff1qBBg3ThhRdKktLS0rR69WqFhYVVvvr06SNJ2rt3b4Ou7avooQTgV3r16qVdu3bJ4XAoIIB/UwPVOZ+b/LH8x3NyvZ8qfnK5bn3Mnz9f5eXl6tKlS+U2wzAUFBSkgoKCRhlcExUVpdGjR2vx4sUaNmyY3nnnHf3617+u3O9wOHTVVVfpz3/+s9tj/RG/TQH4Feetr23btllcCdD82Fva1S64nb479t05ud7uY7vVLridwlqG1at9eXm5/vWvf+mvf/2rtm/fXvlKT09XbGys3n77bQ0YMECff/55nedo2bKlKioqznqtadOm6d1339UXX3yhvXv3VvaISlJiYqJ27Nih7t27q1evXi4v5ypc/oZACcCvjBgxQpK0du1aiysBmh+bzabEqESl5aWdk+ul5aVpcNTgek+e/tFHH6mgoEC33XabEhISXF7XXHON5s+fr9mzZ+udd97R7NmztXPnTn3zzTd6/vnnK8/RvXt3rVu3TocOHTrjqOyrr75aP/zwg2bMmKHRo0e79Ij+9re/1fHjx/WrX/1KW7Zs0b59+/TZZ5/p1ltvrVdYPR8RKAH4lZEjR0oyn4ECUNvF0RdrQ/YGj55r9EZpRak2Zm/UxdEX1/uY+fPna8yYMQoPD6+175e//KW2b9+uNm3a6L33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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "if not MECH_FROM_OPTIMIZATION:\n", + " tp = TopologyManager2D()\n", + " # creates ground connection\n", + " tp.add_connection(ground=True, self_mutation_range= [(-0.2001, 0.1999),None,(-0.1, 0.1)], dependent_mutation_range=[(-0.103,0.097),None,(-0.12,0.08)])\n", + " main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + " tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + " main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + " tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None]))\n", + " # creates connection on the first link\n", + " tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + " main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + " tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + " # creates connection on the second link\n", + " tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(0.1, 0.7)], self_freeze_pos=[None,0,None], dependent_mutation_range=[(-0.2,0.0),None,(-0.0,0.2)])\n", + " # creates branch node and one-joint branch in the topology manager. \n", + " branch_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=False, name='branch', attach_ground=False, attach_endeffector=False)\n", + " tp.add_relative_node(branch_jp)\n", + " # adds a dependent connection of the one-joint branch to the \n", + " tp.add_dependent_connection(1,1,connect_head=True)\n", + " # adds independent connection to the second link finishing the branch building\n", + " tp.add_independent_connection(tp.branch_ends[1][1],tp.connections[2].connection_jp)\n", + " tp.set_mutation_ranges()\n", + " tp.mutation_ranges\n", + " tp.visualize()\n", + " graph = tp.graph" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": {}, + "outputs": [], + "source": [ + "# if not MECH_FROM_OPTIMIZATION:\n", + "# tp = TopologyManager2D()\n", + "# # creates ground connection\n", + "# tp.add_connection(ground=True, self_mutation_range= [(-0.2001, 0.0),None,(-0.1, 0.1)], dependent_mutation_range=[(-0.13,0.07),None,(-0.3,-0.1)])\n", + "# main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + "# tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + "# main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + "# tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.02, 0, -0.15], mutation_range=[None,None,(-0.05,0.05)], freeze_pos=np.array([0.02,0,None]))\n", + "# # creates connection on the first link\n", + "# tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + "# main_ankle_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_ankle', attach_ground=False, attach_endeffector=False)\n", + "# tp.add_absolute_node(jp=main_ankle_jp, parent_branch_idx=0, initial_coordinates=[0.02, 0, -0.3], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.02,0,-0.3]))\n", + "# # creates connection on the second link\n", + "# tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4, 0.4)], dependent_mutation_range=[(-0.3,0.1),None,(-0.2,0.2)])\n", + "# main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + "# tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + "# # creates connection on the third link\n", + "# tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.5, 0.3)], self_freeze_pos=[0.1,0,None],dependent_mutation_range=[(-0.2,0.0),None,(-0.0,0.2)])\n", + "\n", + "# tp.add_independent_connection(tp.connections[0].connection_jp, tp.connections[3].connection_jp)\n", + "# tp.set_mutation_ranges()\n", + "# values = tp.generate_central_from_mutation_range()\n", + "# tp.get_graph(values)\n", + "# graph = tp.graph\n", + "# tp.visualize()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The saved results includes the description of the rewards and trajectories, also the soft constrain part. \n", + "A simple visualization of trajectories and mech." + ] + }, + { + "cell_type": "code", + "execution_count": 158, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "builder = get_standard_builder()\n", + "crag = get_standard_crag(open_loop=False)\n", + "trajectories = get_standard_trajectories()\n", + "rewards = get_standard_rewards()\n", + "\n", + "\n", + "for _, trajectory in trajectories.items():\n", + " plt.plot(trajectory[:, 0], trajectory[:, 2])\n", + "\n", + "draw_joint_point(graph, draw_labels=False)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Builder and criterion aggregator can both be obtained from the saved data." + ] + }, + { + "cell_type": "code", + "execution_count": 159, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "dict_keys(['workspace', 'step1', 'step2', 'step3', 'central_vertical', 'left_vertical', 'right_vertical'])\n", + "dict_keys(['mass', 'actuated_inertia_matrix', 'z_imf', 'trajectory_manipulability', 'manipulability', 'min_manipulability', 'min_force', 'trajectory_zrr', 'dexterity', 'trajectory_acceleration', 'min_acceleration', 'mean_heavy_lifting', 'min_heavy_lifting'])\n" + ] + } + ], + "source": [ + "print(trajectories.keys())\n", + "print(rewards.keys())" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "One can get a trajectory from the reward manager and calculate the trajectory following data." + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD+wElEQVR4nOy9eZhdRbU+/J6huzMnEKYkDGGWMUQRGQQSBhERvSrDFZXJAUdQfqCiMuPlfuhFRFS8CEQEUUTA4SqDQhJARIKEGWQIQ0KYAxk66e5zzv7+OF17r1q1qvauvU/36e7U+zx50n361Kna+9SuWvWud61ViqIoQkBAQEBAQEDACEG53QMICAgICAgICGglgnETEBAQEBAQMKIQjJuAgICAgICAEYVg3AQEBAQEBASMKATjJiAgICAgIGBEIRg3AQEBAQEBASMKwbgJCAgICAgIGFEIxk1AQEBAQEDAiEIwbgICAgICAgJGFIJxExBAMGfOHJRKJZRKJcydO9f4exRF2GqrrVAqlTBr1iztb6VSCWedddaAjOvkk09GqVTCBz/4wQH5/DyYPn06jj322Lb1/5Of/ARz5swxXn/uuedQKpXEvw0W7rzzThxxxBGYNm0aOjs7MXHiROy555746U9/ilWrVrVtXBTTp0/PNJ+k+6mek+eeey5+7dhjj8X06dO1tv/1X/+Fm266qTUDDgjwQDBuAgIEjB8/Hpdffrnx+rx58/DMM89g/Pjxxt/uuecefOYzn2n5WPr6+nD11VcDAG6++WYsWbKk5X0MR9iMmylTpuCee+7BIYccMviDAnDmmWdin332wZIlS3Duuefitttuw69//Wvsv//+OOuss/Cd73ynLePKi6z38/TTT8eNN96ovRaMm4B2IRg3AQECjjzySPzud7/D8uXLtdcvv/xy7LHHHth0002NNrvvvjs23njjlo/l97//PV577TUccsghqNfr+MUvftHyPtqNKIqwevXqlnxWV1cXdt99d6y//vot+Twf/Pa3v8U555yDT3/607jrrrtw/PHHY99998XBBx+Mc889F08//TQOPvjgQR9XEWS9n1tuuSVmzpw5SKMKCHAjGDcBAQI+/vGPAwCuvfba+LW3334bv/vd73D88ceLbbhbSlH3d9xxB77whS9gvfXWw+TJk/HRj34UL730UuaxXH755ejs7MSVV16JTTbZBFdeeSWkerdPPPEEPv7xj2PDDTdEV1cXNt10Uxx99NHo6emJ37NkyRJ87nOfwyabbILOzk5MnToVhx12GF555ZX4PcuXL8cpp5yCzTffHJ2dnZg2bRq++tWvZnKnZG1bKpXw5S9/GZdeeim22247dHV1xUbb2Wefjfe85z1Yd911MWHCBLzzne/E5Zdfrl3z9OnT8eijj2LevHmxG1G5RGxuqbvuugv7778/xo8fjzFjxmDPPffE//3f/2nvKfqdnXPOOVhnnXVw8cUXo1QqGX8fP3483ve+98W///jHP8Y+++yDDTbYAGPHjsVOO+2ECy64AH19fVq7WbNmYccdd8Sdd96J3XffHaNHj8a0adNw+umno16va+/Ncv8obrzxRuy8884YNWoUtthiC1x88cXa37O6+bhbqlQqYdWqVfjFL34Rf0ezZs3Cc889h2q1ivPPP9/4jPnz56NUKuG3v/2ts6+AgDRU2z2AgIChiAkTJuCwww7DFVdcgRNOOAFA09Apl8s48sgjcdFFF2X+rM985jM45JBD8Ktf/QovvvgiTj31VHzyk5/E7bffntp28eLFuPXWW/Gxj30M66+/Po455hicd955mD9/Pvbdd9/4fQ8++CDe+973Yr311sM555yDrbfeGkuXLsUf/vAH9Pb2oqurC0uWLMG73/1u9PX14Vvf+hZ23nlnvPHGG7jllluwbNkybLjhhuju7sa+++6LxYsXx+959NFHccYZZ+Dhhx/GX//6V3HTBuDd9qabbsKdd96JM844AxtttBE22GADAM3N9IQTTojZsX/84x/4yle+giVLluCMM84A0NyQDzvsMEycOBE/+clPADQZBhvmzZuHAw88EDvvvDMuv/xydHV14Sc/+QkOPfRQXHvttTjyyCMLf2dLly7FI488giOPPBJjxoxxfa0xnnnmGRx11FGxMfjggw/iu9/9Lp544glcccUV2ntffvll/Od//ie++c1v4pxzzsH//d//4bzzzsOyZctwySWXxO/Lcv8UFi5ciK9+9as466yzsNFGG+Gaa67BSSedhN7eXpxyyimZrsGGe+65B/vttx9mz56N008/HUDzuZo+fTo+9KEP4dJLL8XXv/51VCqVuM0ll1yCqVOn4iMf+UihvgMCEAUEBMS48sorIwDRfffdF91xxx0RgOiRRx6JoiiK3v3ud0fHHntsFEVRtMMOO0T77ruv1hZAdOaZZxqf9cUvflF73wUXXBABiJYuXZo6nnPOOScCEN18881RFEXRs88+G5VKpehTn/qU9r799tsvmjRpUvTqq69aP+v444+POjo6oscee8z6nvPPPz8ql8vRfffdp71+/fXXRwCiP//5z/Frm222WXTMMcfkagsgmjhxYvTmm2/aLz6Konq9HvX19UXnnHNONHny5KjRaMR/k76DKIqiRYsWRQCiK6+8Mn5t9913jzbYYINoxYoV8Wu1Wi3acccdo4033jj+3CLf2T/+8Y8IQPTNb37TeU1p13rVVVdFlUpFuzf77rtvBCD6/e9/r7X57Gc/G5XL5ej55593fqZ0/zbbbLOoVCpFCxcu1NoceOCB0YQJE6JVq1ZFUSTfT3WfFi1aFL92zDHHRJtttpn2WWPHjtXmiIJ6tm688cb4tSVLlkTVajU6++yzxWsJCPBBcEsFBFiw7777Ysstt8QVV1yBhx9+GPfdd5/VJeXChz70Ie33nXfeGQDw/PPPO9tFURS7og488EAAwOabb45Zs2ZpeqDu7m7MmzcPRxxxhFMX8Ze//AWzZ8/GdtttZ33Pn/70J+y4447YZZddUKvV4n8HHXSQNYIsb9v99tsP66yzjvE5t99+Ow444ABMnDgRlUoFHR0dOOOMM/DGG2/g1VdfddwxGatWrcK9996Lww47DOPGjYtfr1Qq+NSnPoXFixfjySef1Nrk/c588cADD+BDH/oQJk+eHF/r0UcfjXq9jn//+9/ae8ePH2+M66ijjkKj0cD8+fPj13zu3w477IAZM2YYn7l8+XL861//aum1UsyaNQszZszAj3/84/i1Sy+9FKVSCZ/73OcGrN+AtQfBuAkIsKBUKuG4447D1VdfjUsvvRTbbLMN9t57b+/PmTx5sva7cp+kCWhvv/12LFq0CIcffjiWL1+Ot956C2+99RaOOOIIdHd3x3qgZcuWoV6vp4qZX3vttdT3vPLKK3jooYfQ0dGh/Rs/fjyiKMLrr7/esrZTpkwxPuOf//xnrEm57LLLcPfdd+O+++7Dt7/9bQDp90zCsmXLEEWR2N/UqVMBAG+88Yb2ep7vTLmBFi1alGlcL7zwAvbee28sWbIEP/zhD3HnnXfivvvuizd83teGG25ofMZGG22kjd/3/qn2rs8cKJx44on429/+hieffBJ9fX247LLLcNhhh4ljCgjwRdDcBAQ4cOyxx+KMM87ApZdeiu9+97uD2rcKRb/wwgtx4YUXin8/4YQTsO6666JSqWDx4sXOz1t//fVT37Peeuth9OjRht6D/r1VbSXtzq9//Wt0dHTgT3/6E0aNGhW/XiSceJ111kG5XMbSpUuNvymRsOu6smLKlCnYaaedcOutt6K7uztVd3PTTTdh1apVuOGGG7DZZpvFry9cuFB8PxV9K7z88ssAEmPM9/6p9q7PHCgcddRR+MY3voEf//jH2H333fHyyy/jS1/60oD2GbD2IDA3AQEOTJs2DaeeeioOPfRQHHPMMYPW77Jly3DjjTdir732wh133GH8+8QnPoH77rsPjzzyCEaPHo19990Xv/3tb53MysEHH4w77rjDcMFQfPCDH8QzzzyDyZMnY9dddzX+8SRtrWqrUCqVUK1WNZHp6tWr8ctf/tJ4b1dXVyYmZ+zYsXjPe96DG264QXt/o9HA1VdfjY033hjbbLNN6udkwemnn45ly5bhxBNPFKOTVq5ciVtvvRVAYtxRIXQURbjsssvEz16xYgX+8Ic/aK/96le/Qrlcxj777BN/Ztb7BwCPPvooHnzwQeMzx48fj3e+851pl5sK13c0atQofO5zn8MvfvELXHjhhdhll12w1157Fe4zIAAIxk1AQCr++7//GzfddJPo1hgoXHPNNVizZg1OPPFEzJo1y/j3jW98A4DO7vT19eE973kPLrvsMtxxxx349a9/jaOOOgorVqwA0AxTXm+99bDPPvvghz/8IW6//XbccMMN+NznPocnnngCAPDVr34V2267LfbZZx9ceOGF+Otf/4pbb70VP//5z3HEEUfg3nvvtY65SFuFQw45BCtXrsRRRx0VJ7/be++9xUionXbaCQ8++CB+85vf4L777sPDDz9s/dzzzz8fb7zxBmbPno3rr78ef/jDH/CBD3wAjzzyCL7//e9bI8B8cfjhh+P000/H5Zdfjr333htXXnkl5s+fj5tvvhlnn302ttlmG/zlL38BABx44IHo7OzExz/+cfzlL3/BjTfeiIMOOgjLli0TP3vy5Mn4whe+gEsuuQS33norvvrVr+Kyyy7TIqN87h/QdMt96EMfwpVXXombb74Zn/zkJ3HbbbfhO9/5TuaILxd22mknzJ07F3/84x+xYMECw7D+4he/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kFApDw23VGBuWoR6iJYKaAGiKMLqvsHPVDy6o1I4x86NN96Ik046CRdddBEOOOAA/OlPf8Jxxx2HjTfeGLNnz8Z9992HDTbYAFdeeSXe//73o1KpAABWrlyJD3zgAzjvvPMwatQo/OIXv8Chhx6KJ598Eptuumnm/v/2t79hwoQJuO222xBFEbq7uzF79mzsvffemD9/PqrVKs477zy8//3vx0MPPYQdd9wRkydPxrx58/Cxj30M8+fPx+TJkzF//vz4M+fOnYt9990XQDMv0cYbb4zrrrsO6623Hv7+97/jc5/7HKZMmYIjjjjCOo5Vq1bhgx/8IPbbbz9cffXVWLRoEU466aRC99qFlStXYrPNNkO9Xscuu+yCc889FzNnzgSAOBM2D+cePXo07rrrrgEbU8DaA+WWanc96GDctAg0pt+3/EJAgMLqvjq2P+OWQe/3sXMOwpjOYsvB97//fRx77LH44he/CAA4+eST8Y9//APf//73MXv2bKy//voAgEmTJmlswowZMzBjxoz49/POOw833ngj/vCHP+DLX/5y5v7Hjh2Ln//857Eb6IorrkC5XMbPf/7z2HC78sorMWnSJMydOxfve9/7sM8++2Du3Ln42Mc+hrlz5+KYY47BL37xCzz22GPYZptt8Pe//x1f+9rXAAAdHR04++yz4/4233xz/P3vf8d1112nGTd8HP/7v/+Ler2OK664AmPGjMEOO+yAxYsX4wtf+ILX/c2Cd7zjHZgzZw522mknLF++HD/84Q+x11574cEHH8TWW2+N8ePHY4899sC5556L7bbbDhtuuCGuvfZa3Hvvvdh6661bPp6AtQ+lICgeWaBuqWDbBKyNePzxx7HXXntpr+211154/PHHne1WrVqFr3/969h+++0xadIkjBs3Dk888QReeOEFr/532mknTd9y//334+mnn8b48eMxbtw4jBs3Duuuuy7WrFmDZ555BgAwa9YszJ07FwAwb948zJ49G/vssw/mzZuH++67D6tXr9au6dJLL8Wuu+6K9ddfH+PGjcNll11mjJOP4/HHH8eMGTO0RI3K1dVq7L777vjkJz+JGTNmYO+998Z1112HbbbZBj/60Y/i9/zyl79EFEWYNm0aurq6cPHFF+Ooo46KmbSAgCIIguIRBuqWCin0A/JidEcFj51zUFv6bQX43I+iKPV5OPXU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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "trajectory_name = 'workspace'\n", + "reward_name = 'min_acceleration'\n", + "trajectory = trajectories[trajectory_name]\n", + "error_calculator = PositioningErrorCalculator(jacobian_key=\"Manip_Jacobian\")\n", + "soft_constraint = PositioningConstrain(error_calculator=error_calculator, points=[trajectory])\n", + "fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints(graph, builder)\n", + "constraint_error, results = soft_constraint.calculate_constrain_error(crag, fixed_robot, free_robot)\n", + "results = results[0]\n", + "if constraint_error == 0:\n", + " reward, reward_list = rewards[reward_name].calculate(results[0], results[1], results[2], Actuator = builder.actuator['default'])\n", + " reward_vector = np.array(reward_list)\n", + " plt.plot(reward_vector)\n", + " plt.xlabel('trajectory step')\n", + " plt.ylabel('step reward')\n", + " plt.title(rewards[reward_name].reward_name)\n", + " plt.legend([f'Total reward {round(reward,2)}'])\n", + " plt.show()\n", + "else:\n", + " print(\"Trajectory not feasible: \", constraint_error)" + ] + }, + { + "cell_type": "code", + "execution_count": 161, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.26848274, 0.09622682], dtype=float32)" + ] + }, + "execution_count": 161, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[0]['Manip_Jacobian'][-1]\n", + "np.linalg.eigvals(results[0]['Manip_Jacobian'][-1])\n", + "np.linalg.svd(results[0]['Manip_Jacobian'][-1],compute_uv=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 162, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(np.linalg.norm(np.diff(results[2]['q'], axis=0),axis=1))\n", + "plt.title('dq ')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 163, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "d48b25733c38489f8e341a3b463abfe8", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "bb64517d696d462797f8e9724b4bf80c", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Button(description='run simulation', layout=Layout(height='40px', width='200px'), style=ButtonStyle(button_col…" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import ipywidgets as widgets\n", + "import meshcat\n", + "from pinocchio.visualize import MeshcatVisualizer\n", + "from IPython.display import display, clear_output, HTML, IFrame, Image\n", + "from auto_robot_design.description.mesh_builder.urdf_creater import (\n", + " URDFMeshCreator,\n", + " MeshCreator,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.mesh_builder import (\n", + " MeshBuilder,\n", + " jps_graph2pinocchio_meshes_robot,\n", + ")\n", + "import pinocchio as pin\n", + "import time\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "\n", + "\n", + "mesh_builder = get_mesh_builder()\n", + "output = widgets.Output()\n", + "\n", + "fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(graph, mesh_builder)\n", + "visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + ")\n", + "with output:\n", + " visualizer.viewer = meshcat.Visualizer()\n", + "visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + ")\n", + "visualizer.clean()\n", + "visualizer.loadViewerModel()\n", + "visualizer.display(pin.neutral(fixed_robot.model))\n", + "with output:\n", + " output.clear_output(wait=True)\n", + " display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "#output.append_display_data(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "def run_simulation(b):\n", + " ik_manager = TrajectoryIKManager()\n", + " ik_manager.set_solver('Open_Loop')\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(graph, mesh_builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " #ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " poses, q_fixed, constraint_errors, reach_array = ik_manager.follow_trajectory(\n", + " trajectory, viz=visualizer\n", + " )\n", + " time.sleep(0.5)\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "first_run_button = widgets.Button(description='run simulation', layout=widgets.Layout(width='200px', height='40px')) \n", + "first_run_button.style.button_color = 'lightblue'\n", + "first_run_button.on_click(run_simulation)\n", + "display(output, first_run_button)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/optimization_analysis/mesh/EE.stl b/jmoves/apps/optimization_analysis/mesh/EE.stl new file mode 100644 index 0000000000000000000000000000000000000000..fd809cd3b542bb23824e71b29c236b3682b5aba3 GIT binary patch literal 536784 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

izYNI|wp6^vL)Eu}U zblV^}D`?3iz`(WqGjJjHTtvE8-AUI1-3XyqG zP85LG04Iesg7*6Q%mt%I$w?uiy~;Tt+*h!Y!AT)ypuO&$f6>bkCgh|L(O%``5WL~V zNgbUFS)I&*SGs`-0;f1EE7_`@R z#a|f&XYnc%&p4~ws=3f!?>{~7

kYil22=X?h{)RiLaB`&@0M?!ouEvcWrp;4EHc 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 z%0D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

-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 literal 0 HcmV?d00001 diff --git a/jmoves/apps/optimization_analysis/multiobjective_openloop_optimization_analysis.ipynb b/jmoves/apps/optimization_analysis/multiobjective_openloop_optimization_analysis.ipynb new file mode 100644 index 00000000..06163e1b --- /dev/null +++ b/jmoves/apps/optimization_analysis/multiobjective_openloop_optimization_analysis.ipynb @@ -0,0 +1,202 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from pymoo.decomposition.asf import ASF\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import MultiCriteriaProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.optimization.saver import load_checkpoint" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Resulting directory path: D:/work/projects/mechanism_builder/apps/experiments/two_link_only_main_branch/results/test_2024-10-31_21-48-01\n" + ] + } + ], + "source": [ + "import tkinter as tk\n", + "from tkinter import filedialog\n", + "\n", + "def select_directory():\n", + " # Create a root window\n", + " root = tk.Tk()\n", + " # Hide the root window\n", + " root.withdraw()\n", + " # Make the root window the topmost window\n", + " root.call('wm', 'attributes', '.', '-topmost', True)\n", + " # Open directory dialog and store the selected directory path\n", + " directory_path = filedialog.askdirectory(initialdir=\"./\",\n", + " title=\"Select a directory\"\n", + " )\n", + " root.update_idletasks() \n", + " root.destroy()\n", + " # Check if a directory was selected\n", + " if directory_path:\n", + " #print(f\"Selected directory: {directory_path}\")\n", + " return directory_path\n", + " else:\n", + " #print(\"No directory selected\")\n", + " return None\n", + "\n", + "# Call the function to open the directory dialog\n", + "selected_directory = select_directory()\n", + "print(f\"Resulting directory path: {selected_directory}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "problem = MultiCriteriaProblem.load(\n", + " selected_directory\n", + ")\n", + "\n", + "checkpoint = load_checkpoint(selected_directory)\n", + "optimizer = PymooOptimizer(problem, checkpoint)\n", + "optimizer.load_history(selected_directory)\n", + "res = optimizer.run()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "history_mean = optimizer.history[\"Mean\"]\n", + "plt.plot(np.arange(len(history_mean)), history_mean)\n", + "labels = []\n", + "for trajectory_idx, rewards in problem.rewards_and_trajectories.rewards.items():\n", + " for reward in rewards:\n", + " labels.append(reward[0].reward_name)\n", + "plt.legend(labels)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Scale f1: [-1.513971144590113, -1.1538154543439547]\n", + "Scale f2: [-5.091745214533023, -3.9130659334402544]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "F = res.F\n", + "fl = F.min(axis=0)\n", + "fu = F.max(axis=0)\n", + "print(f\"Scale f1: [{fl[0]}, {fu[0]}]\")\n", + "print(f\"Scale f2: [{fl[1]}, {fu[1]}]\")\n", + "approx_ideal = F.min(axis=0)\n", + "approx_nadir = F.max(axis=0)\n", + "plt.figure(figsize=(7, 5))\n", + "plt.scatter(F[:, 0], F[:, 1], s=30, facecolors='none', edgecolors='blue')\n", + "plt.scatter(approx_ideal[0], approx_ideal[1], facecolors='none',\n", + " edgecolors='red', marker=\"*\", s=100, label=\"Ideal Point (Approx)\")\n", + "plt.scatter(approx_nadir[0], approx_nadir[1], facecolors='none',\n", + " edgecolors='black', marker=\"p\", s=100, label=\"Nadir Point (Approx)\")\n", + "plt.title(\"Objective Space\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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HA6HfvOb3/iUC7drQwqsPaTa+9nhb3vUps+OZcuWacKECZo8ebKysrJ0zTXXqE+fPsrJyTlj+ezsbPXt21fXXHONsrKyNGnSJI0bN07Lly/3ltm8ebNuv/12DRs2TB999JGGDRum2267TR988EFN/Vr2mTrm+eefNy6Xq1Jlhw8fbgYNGnTW7SdOnDBRUVFm6dKl3nVff/21iYiIMGvXrq1iTWuGP+3xc1u3bjWSzJdffuldd91115nx48dXT+VqWGXboqSkxCQmJpqMjAzvutOnTxuXy2UWL15sjAnfa2P37t1GktmyZYt33ebNm40k89lnn1X6OIMGDTI33HCDz7pwvDYCbY/a+tlRXddHuH52XHnllWbUqFE+69q3b28mTpx4xvIPPvigad++vc+6kSNHmm7dunl/vu2220zv3r19yvTq1csMHjy4mmod+upMj0ig3nnnHTVp0kRt27ZVamqqjhw54t22fft2FRYWqmfPnt51zZs3V8eOHbVp0yYb1a1R+fn5cjgc5W5nvPTSS0pISNAll1yiP/7xjz69BLVBdna2Dh8+7PN3j4mJ0XXXXef9u4frtbF582a5XC517drVu65bt25yuVyVrvc333yjVatWacSIEeW2hdu1UZX2qI2fHdVxfUjh+dlRUFCg7du3+/zNJKlnz55n/d03b95crnyvXr20bds2FRYWVlgmlK+D6hbSL72zrU+fPrr11lt14YUXKjs7W1OmTNENN9yg7du3KyYmRocPH1Z0dLTOP/98n/2aNm2qw4cPW6p1zTh9+rQmTpyoIUOG+LzIaejQoWrVqpUSExP1ySefKC0tTR999JHWr19vsbbVq+xv27RpU5/1TZs21ZdffuktE47XxuHDh9WkSZNy65s0aVLper/wwguKi4vTr3/9a5/14XhtBNoetfWzozquj3D97MjLy1NxcfEZ/78/2+9++PDhM5YvKipSXl6emjVrdtYyoXwdVLew7hGZPn36WQfJlS3btm0L+Pi33367+vXrp44dO2rAgAFas2aNvvjiC61atarC/YwxcjgcAZ83UMFujzKFhYUaPHiwSkpKtHDhQp9tqamp+tWvfqWOHTtq8ODBeu211/TWW29px44dVT6vP2qiLX7+N67M3z0cro0z1c+fej/33HMaOnSoYmNjfdaHyrUhBb89avNnR1Wuj3D47DgXf/+/P1P5n68P5LOkNgnrHpGxY8eec1R1cnJytZ2vWbNmuvDCC7Vnzx5JUmJiogoKCnT8+HGff9kcOXJE3bt3r7bzVlZNtEdhYaFuu+02ZWdn6+233z7na61TUlIUFRWlPXv2KCUlpUrn9kcw2yIxMVFS6b92mjVr5l1/5MgR779swvXa+Pjjj/XNN9+U2/btt9+W+1fbmWzcuFGff/65li1bds6ytq4Nqebao0xt+eyoSnuEy2fH2SQkJMjpdJbrqfjp//c/l5iYeMbykZGRaty4cYVl/Lm+wp6twSm2VGVwZl5enomJiTEvvPCCMebHAWfLli3zlsnNzQ35AWc/5U97FBQUmJtvvtlccskl5siRI5XaZ9euXUaSeffdd6tQy5rh72DVxx57zLvO4/GccbBquF0bZYMRP/jgA++6LVu2VHow4vDhw02XLl0qda5wuDaq2h5lastnR6DtUVs+O6688kozevRon3UXX3xxhYNVL774Yp91o0aNKjdYtU+fPj5levfuXacGq9aZIPLll1+arKwsM2PGDNOwYUOTlZVlsrKyzMmTJ71l2rVrZ1asWGGMMebkyZPmD3/4g9m0aZPJzs42GzZsMFdddZW54IILjNvt9u4zatQo06JFC/PWW2+ZHTt2mBtuuMFcfvnlpqioqMZ/R3/42x6FhYVm4MCBpkWLFmbnzp3m0KFD3sXj8RhjjNm7d6+ZMWOG+fDDD012drZZtWqVad++vencuXNIt4e/bWGMMRkZGcblcpkVK1aYXbt2mTvuuMM0a9asVlwbvXv3NpdddpnZvHmz2bx5s7n00ktN//79fcr8vD2MMSY/P9/Ur1/fLFq0qNwxw/XaMMb/9qjtnx3+tkdt+uxYunSpiYqKMs8++6zZvXu3mTBhgmnQoIE5cOCAMcaYiRMnmmHDhnnL79+/39SvX9/cd999Zvfu3ebZZ581UVFR5rXXXvOWef/9943T6TQZGRnm3//+t8nIyDCRkZE+TybVdnUmiAwfPtxIKrds2LDBW0aSef75540xxpw6dcr07NnT/OIXvzBRUVGmZcuWZvjw4SYnJ8fnuD/88IMZO3asadSokalXr57p379/uTKhyN/2yM7OPmP5n+6Tk5Njrr32WtOoUSMTHR1tWrdubcaNG2eOHj1a87+gH/xtC2NKe0WmTZtmEhMTTUxMjLn22mvNrl27fI4brtfG0aNHzdChQ01cXJyJi4szQ4cONcePH/cp8/P2MMaYzMxMU69ePXPixIlyxwzXa8MY/9ujtn92+Nsete2zY8GCBebCCy800dHRJiUlxafHZvjw4ea6667zKf/OO++Yzp07m+joaJOcnHzGoP73v//dtGvXzkRFRZn27dub5cuXB/vXCCkOY/4zcgYAAKCGhfVTMwAAILwRRAAAgDUEEQAAYA1BBAAAWEMQAQAA1hBEAACANQQRAABgDUEEAABYQxABAADWEEQAAIA1BBEAAGANQQQAAFjz/wFsA9Cf2BbXtwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "optimizer.history[\"F\"]\n", + "plt.scatter(np.array(optimizer.history[\"F\"])[:,0], np.array(optimizer.history[\"F\"])[:,1])\n", + "plt.scatter(res.F[:,0], res.F[:,1])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/optimization_analysis/optimization_analysis_two_rewards.ipynb b/jmoves/apps/optimization_analysis/optimization_analysis_two_rewards.ipynb new file mode 100644 index 00000000..da958677 --- /dev/null +++ b/jmoves/apps/optimization_analysis/optimization_analysis_two_rewards.ipynb @@ -0,0 +1,575 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from pymoo.decomposition.asf import ASF\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import MultiCriteriaProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.optimization.saver import load_checkpoint\n", + "from auto_robot_design.description.builder import jps_graph2pinocchio_robot\n", + "from auto_robot_design.utils.configs import inertial_config_two_link_workspace, get_mesh_builder, inertial_config_two_link_six_trajectories" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Resulting directory path: /home/be2r-lab-210134/Python/auto-robotics-diesign/auto-robotics-design/results/optimization_widget/current_results\n" + ] + } + ], + "source": [ + "import tkinter as tk\n", + "from tkinter import filedialog\n", + "\n", + "def select_directory():\n", + " # Create a root window\n", + " root = tk.Tk()\n", + " # Hide the root window\n", + " root.withdraw()\n", + " # Make the root window the topmost window\n", + " root.call('wm', 'attributes', '.', '-topmost', True)\n", + " # Open directory dialog and store the selected directory path\n", + " directory_path = filedialog.askdirectory(initialdir=\"./\",\n", + " title=\"Select a directory\"\n", + " )\n", + " root.update_idletasks() \n", + " root.destroy()\n", + " # Check if a directory was selected\n", + " if directory_path:\n", + " #print(f\"Selected directory: {directory_path}\")\n", + " return directory_path\n", + " else:\n", + " #print(\"No directory selected\")\n", + " return None\n", + "\n", + "# Call the function to open the directory dialog\n", + "selected_directory = select_directory()\n", + "print(f\"Resulting directory path: {selected_directory}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "problem = MultiCriteriaProblem.load(\n", + " selected_directory\n", + ")\n", + " \n", + "checkpoint = load_checkpoint(selected_directory)\n", + "optimizer = PymooOptimizer(problem, checkpoint)\n", + "optimizer.load_history(selected_directory)\n", + "res = optimizer.run()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "history_mean = optimizer.history[\"Mean\"]\n", + "plt.plot(np.arange(len(history_mean)), history_mean)\n", + "labels = []\n", + "for trajectory_idx, rewards in problem.rewards_and_trajectories.rewards.items():\n", + " for reward in rewards:\n", + " labels.append(reward[0].reward_name)\n", + "plt.legend(labels)\n", + "plt.title(\"Mean values in each generation\")\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "points on front: 44\n", + "Scale f1: [-28.48097977212452, -22.447124453674476]\n", + "Scale f2: [-3.5482689530938085, -1.6860817119507214]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnoAAAHUCAYAAACtVIUPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB01ElEQVR4nO3deZyN5f/H8dcxmMUylomZyWCQJZQ1W2GyZs8eJTVplRSVFgYtIiqpJIlIlr4R2Uq2CNllHfs6JvuMdQxz//64fnM4Zkxzxpk5M8f7+Xjcj5lz39d935/7dtTHtdosy7IQEREREY+Tzd0BiIiIiEj6UKInIiIi4qGU6ImIiIh4KCV6IiIiIh5KiZ6IiIiIh1KiJyIiIuKhlOiJiIiIeCgleiIiIiIeSomeiIiIiIdSoidymyZMmIDNZrNv2bNnp0iRIjz11FMcPXo0w+O5ePEiAwcOZOnSpS6/9o3PeeMWEBDg8nv9lx9//JHPPvssw+/7Xw4cOIDNZmPChAkpllu6dCk2my3Nf042m42BAwfaP2/fvp2BAwdy4MCBJGW7d+9O8eLF03Sf2znXXRL/DIYPH+6W+9evX5/69eu75d4iN8vu7gBEPMX48eMpW7Ysly5d4s8//2TIkCEsW7aMLVu2kCtXrgyL4+LFiwwaNAggXf5n0759e/r06eOwL0eOHC6/z3/58ccf2bp1K717987we7tClSpVWLVqFffee2+azl+1ahVFihSxf96+fTuDBg2ifv36SRKz/v3788orr9xOuOKEr776yt0hiNgp0RNxkQoVKlCtWjUAwsLCuHbtGu+99x6//PILXbt2va1rX7p0CV9fX1eEedsKFy5MzZo1U10+M8WemeTNm9ep93gzZ84tWbJkmu8jzktr8i6SHtR0K5JOEv9HfPDgQQAGDRpEjRo1KFCgAHnz5qVKlSqMGzcOy7IczitevDgtWrRgxowZVK5cGR8fH3sNXXR0NM899xxFihQhZ86chIaGMmjQIK5evQqYJqu77rrLfr/EptXu3bvbr79ixQoaNGhAnjx58PPzo3bt2sydO9clz5xS7Fu3bqV169bkz58fHx8fKlWqxPfff+9wfmJz5pQpU3jnnXcIDg4mb968NGzYkMjISHu5+vXrM3fuXA4ePOjQhJySadOm0bhxY4KCgvD19aVcuXL069ePCxcuOJTr3r07uXPnZs+ePTRr1ozcuXMTEhJCnz59iIuLcygbFRVFx44dyZMnD/7+/nTq1Ino6OhUvavkmm6dufeNTbcTJkygQ4cOgPlHRuL7SGw+Tq759csvv6Ru3boUKlSIXLlyUbFiRYYNG0Z8fHyq4r9Z/fr1qVChAqtWraJ27dr4+vpSvHhxxo8fD8DcuXOpUqUKfn5+VKxYkQULFiS5xu7du+nSpQuFChXC29ubcuXK8eWXXyYpd/bsWfr06UOJEiXw9vamUKFCNGvWjJ07dyYp+8knnxAaGkru3LmpVasWq1evdji+bt06OnfuTPHixe0xP/bYY/a/t4kSu2gsWbKEF154gYCAAAoWLEjbtm2JiopK8i5urk0fPXo0999/P7lz5yZPnjyULVuWt99+O8n1Fy9eTI8ePShYsCB58+alW7duXLhwgejoaDp27Ei+fPkICgqib9++af6zkjuLavRE0smePXsA7InXgQMHeO655yhatCgAq1ev5uWXX+bo0aMMGDDA4dwNGzawY8cO3n33XUJDQ8mVKxfR0dE88MADZMuWjQEDBlCyZElWrVrF+++/z4EDBxg/fjxBQUEsWLCApk2bEh4ezjPPPOMQw7Jly2jUqBH33Xcf48aNw9vbm6+++oqWLVsyZcoUOnXq9J/PZVmWPbFM5OXlZU+0kos9MjKS2rVrU6hQIT7//HMKFizIDz/8QPfu3fn333954403HK739ttvU6dOHb799ltiY2N58803admyJTt27MDLy4uvvvqKZ599lr179zJz5sxU/Xns3r2bZs2a0bt3b3LlysXOnTsZOnQoa9asYfHixQ5l4+PjadWqFeHh4fTp04c///yT9957D39/f/uf1aVLl2jYsCFRUVEMGTKE0qVLM3fu3FS9w5Sk5t43a968OR9++CFvv/02X375JVWqVAFSrsnbu3cvXbp0ITQ0lJw5c7J582Y++OADdu7cyXfffZem2KOjo3nqqad44403KFKkCKNGjeLpp5/m8OHD/O9//+Ptt9/G39+fwYMH06ZNG/bt20dwcDBgmp5r165N0aJFGTFiBIGBgfz222/06tWLkydPEhERAcC5c+d48MEHOXDgAG+++SY1atTg/Pnz/Pnnnxw7doyyZcva4/nyyy8pW7asvS9n//79adasGfv378ff3x8wfy/LlClD586dKVCgAMeOHWP06NFU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LBg7FipUgNy5wdcXWrUCF61IJyIiIhlAiZ4k67XX4NlnzZJoEyfCp5/Cvn3w4INm+hURERHJ/DSPngt42jx6mzZB5crw2WfwyivX98fFQZMmEB0NO3YkvyauiIiIpC9n8g7V6EkS338PwcHw0kuO+729zVJokZHw999uCU1EREScoERPkoiOhjJlIHsy02mXL29+HjuWsTGJiIiI85ToSRKhobB5M1y6lPTY6tXmZ4kSGRuTiIiIOE+JniQRHg5nzsCAAWb0baLTp+Hdd6F6dbj/fvfFJyIiIqmjtW4liZIl4ZNP4NVX4Y8/oE0bk+RNnmyOa9StiIhI1qAaPUlW794myStSBL76CmbNgieegA0boGJFd0cnIiIiqaEaPbmlBg3MJiIiIlmTavREREREPJQSPREREREPpURPRERExEMp0RMRERHxUEr0RERERDyUEj0RERERD6VET0RERMRDKdETERER8VBK9EREREQ8lBI9EREREQ+lRE9ERETEQynRExEREfFQSvREREREPJQSPREREREPpURPRERExEMp0RMRERHxUEr0RERERDyUEj0RERERD6VET0RERMRDKdETERER8VBK9EREREQ8VJZI9A4cOEB4eDihoaH4+vpSsmRJIiIiuHLlSornWZbFwIEDCQ4OxtfXl/r167Nt2zaHMnFxcbz88ssEBASQK1cuWrVqxZEjR9LzcUREREQyRJZI9Hbu3ElCQgJjxoxh27ZtfPrpp3z99de8/fbbKZ43bNgwPvnkE7744gvWrl1LYGAgjRo14ty5c/YyvXv3ZubMmUydOpUVK1Zw/vx5WrRowbVr19L7sURERETSlc2yLMvdQaTFxx9/zOjRo9m3b1+yxy3LIjg4mN69e/Pmm28CpvaucOHCDB06lOeee46YmBjuuusuJk2aRKdOnQCIiooiJCSEefPm0aRJk1TFEhsbi7+/PzExMeTNm9c1DygiIiKSDGfyjixRo5ecmJgYChQocMvj+/fvJzo6msaNG9v3eXt7U69ePVauXAnA+vXriY+PdygTHBxMhQoV7GWSExcXR2xsrMMmIiIiktlkyURv7969jBo1iueff/6WZaKjowEoXLiww/7ChQvbj0VHR5MzZ07y589/yzLJGTJkCP7+/vYtJCQkrY8iIiIikm7cmugNHDgQm82W4rZu3TqHc6KiomjatCkd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xMbC3Xcnf+zuu+HKFbN0mp9fxsYlIiL/zekavQsXLlCoUCEAChQowIkTJwCoWLEiGzZscG10IuJ2998Pv/2W/LEFC6BUKfD1zdiYREQkdZxO9MqUKUNkZCQAlSpVYsyYMRw9epSvv/6aoKAglwcoIu7Vsyf8+Sd88olZKQPMyNspU2DqVHNcA/FFRDInp5tue/fuzbFjxwCIiIigSZMmTJ48mZw5czJhwgRXxycibvboo/D662YZtNGjoXp1M+p2yxbo0sUkeiIikjnd9lq3Fy9eZOfOnRQtWpSAO3SdJK11K3eClSth7FjYvx+CgqB7d2jcWLV5IiIZzZm8I82J3pUrV9i/fz8lS5Yke/Y0L5nrEZToiYiISEZxJu9wuo/exYsXCQ8Px8/Pj/Lly3Po0CEAevXqxUcffZS2iEVERETE5ZxO9N566y02b97M0qVL8fHxse9v2LAh06ZNc2lwIiIiIpJ2Tre5/vLLL0ybNo2aNWs6rHl77733snfvXpcGJyIiIiJp53SN3okTJ+zz6N3owoULDomfiIiIiLiX04le9erVmTt3rv1zYnI3duxYatWq5brIREREROS2ON10O2TIEJo2bcr27du5evUqI0eOZNu2baxatYply5alR4wiIiIikgZO1+jVrl2bv/76i4sXL1KyZEl+//13ChcuzKpVq6hatWp6xCgiIiIiaXDbEyaL5tETERGRjONM3pHqptvY2NhUlVOiIyIiIpI5pDrRy5cvX4qjai3Lwmazce3aNZcEJiIiIiK3J9V99JYsWcLixYtZvHgxixYtwtvbm0mTJtn3JR5PL61ataJo0aL4+PgQFBTEE088QVRUVIrnWJbFwIEDCQ4OxtfXl/r167Nt2zaHMnFxcbz88ssEBASQK1cuWrVqxZEjR9LtOUREREQySpr76OXJk4fNmzdTokQJV8eUrE8//ZRatWoRFBTE0aNH6du3LwArV6685TlDhw7lgw8+YMKECZQuXZr333+fP//8k8jISPLkyQPACy+8wK+//sqECRMoWLAgffr04fTp06xfvx4vL69UxaY+eiIiIpJRnMk7skyid7PZs2fTpk0b4uLiyJEjR5LjlmURHBxM7969efPNNwFTe1e4cGGGDh3Kc889R0xMDHfddReTJk2iU6dOAERFRRESEsK8efNo0qRJqmJRoiciIiIZxZm8w+np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mTNNX7zu3ZMee+EFsNlg9uwMD0sEUKInIiJyWy5dMomet3fSY4n7L17M+LhEQImeiIjIbalWDaKiYN26pMcWL4YLF6B69YyPSwSU6ImIiNyW5s3NGrrdu8O+fdf379xp+uxVrgwPPeS28OQOp0RPRETkNnh5mT54MTFwzz0mqatdG8qVM8d//tn00wOwLEhIcF+scudRoiciInKbypUzNXhff21G1xYrZkbibtkCoaGwaRN06gS+vpA9O9SsCdOnuztquRNoehUREREXyJULevQw242WLTOTKIeEwKBB4O8PM2aYxG/HDoiISHqt48dh/XozkKN2bfDxyZhnEM+TZWr0WrVqRdGiRfHx8SEoKIgnnniCqKioFM/p3r07NpvNYatZs6ZDmbi4OF5++WUCAgLIlSsXrVq14siRI+n5KCIicodISDCJX/XqsHmzmVD5+efh999N0jdwIOzadb38hQsQHg5FikCzZtCggfn9009Ns6+Is7JMohcWFsb06dOJjIzk559/Zu/evbRv3/4/z2vatCnHjh2zb/PmzXM43rt3b2bOnMnUqVNZsWIF58+fp0WLFlzTmjUiInKbVq40K2W8/37SWrk33oCCBU0TL5hErl07mDbNTLZ84AD88w907AivvQYff5zR0YsnyDJNt6+++qr992LFitGvXz/atGlDfHw8OXLkuOV53t7eBAYGJnssJiaGcePGMWnSJBo2bAjADz/8QEhICH/88QdNmjRx7UOIiMgd5ehR8/P++5Me8/GBsmWvl1m2DH77zQzsaNnyermvvoIcOeCDD+DFFyF37vSPWzxHlqnRu9Hp06eZPHkytWvXTjHJA1i6dCmFChWidOnS9OjRg+PHj9uPrV+/nvj4eBo3bmzfFxwcTIUKFVi5cuUtrxkXF0dsbKzDJiIicrOiRc3P5ObYu3gRtm0zAzfAjM4NDYUWLZKW7dULYmNh0aL0i1U8U5ZK9N58801y5cpFwYIFOXToELNmzUqx/COPPMLkyZNZvHgxI0aMYO3atTz88MPExcUBEB0dTc6cOcmfP7/DeYULFyY6OvqW1x0yZAj+/v72LSQk5PYfTkREPE7NmnDvvfD223D+/PX9lgWDB5spWRKXTrt0yTTlJk7FAnD1qhnNe/as+awVNsRZbk30Bg4cmGSwxM3buhv+GfT666+zceNGfv/9d7y8vOjW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noh4hPr169O7d2+33X/gwIFUqlTJbfd3hwMHDmCz2di0adMtyyxduhSbzcbZs2cBmDBhgsMSX3fiexPJSEr0RMRlVq5ciZeXF02bNnV3KOnKZrPxyy+/OOzr27cvixYtypD7b9y4kQ4dOlC4cGF8fHwoXbo0PXr0YNeuXRlyf2fUrl2bY8eO4e/vn+zxm99b9+7dadOmTQZFJ+L5lOiJiMt89913vPzyy6xYsYJDhw65OxynXLt2jYSEhDSfnzt3bgoWLOjCiJI3Z84catasSVxcHJMnT2bHjh1MmjQJf39/+vfvn+73d1bOnDkJDAzEZrMlezyj3pvInUqJnoi4xIULF5g+fTovvPACLVq0YMKECUnKzJ49m2rVquHj40NAQABt27a1H4uLi+ONN94gJCQEb29v7rnnHsaNG2c/vn37dpo1a0bu3LkpXLgwTzzxBCdPnrxlPFeuXOGNN97g7rvvJleuXNSoUYOlS5fajyc2Ic6ZM4d7770Xb29vDh48yNq1a2nUqBEBAQH4+/tTr149NmzYYD+vePHiADz66KPYbDb755ubIBMSEhg8eDBFihTB29ubSpUqsWDBAvvxxGbPGTNmEBYWhp+fH/fffz+rVq265TNdvHiRp556imbNmjF79mwaNmxIaGgoNWrUYPjw4YwZMwYwSWt4eDihoaH4+vpSpkwZRo4c6XCtxJqzQYMGUahQIfLmzctzzz3HlStX7GUWLFjAgw8+SL58+ShYsCAtWrRg7969SeLauXMntWvXxsfHh/Llyzu855ubbm9243sbOHAg33//PbNmzcJms2Gz2Vi6dCkPP/wwPXv2dDjv1KlTeHt7s3jx4lu+LxFRoiciLjJt2jTKlClDmTJlePzxxxk/fjyWZdmPz507l7Zt29K8eXM2btzIokWLqFatmv14t27dmDp1Kp9//jk7duzg66+/Jnfu3AAcO3aMevXqUalSJdatW8eCBQv4999/6dix4y3jeeqpp/jrr7+YOnUq//zzDx06dKBp06bs3r3bXubixYsMGTKEb7/9lm3btlGoUCHOnTvHk08+yfLly1m9ejX33HMPzZo149y5cwCsXbsWgPHjx3Ps2DH755uNHDmSESNGMHz4cP755x+aNGlCq1atHO4P8M4779C3b182bdpE6dKleeyxx7h69Wqy1/ztt984efIkb7zxRrLHE/u+JSQkUKRIEaZPn8727dsZMGAAb7/9NtOnT3cov2jRInbs2MGSJUuYMmUKM2fOZNCgQfbjFy5c4LXXXmPt2rUsWrSIbNmy8eijjyap+Xz99dfp06cPGzdupHbt2rRq1YpTp04lG2NK+vbtS8eOHWnatCnHjh3j2LFj1K5dm2eeeYYff/yRuLg4e9nJkycTHBxMWFiY0/cRuaNYIiIuULt2beuzzz6zLMuy4uPjrYCAAGvhwoX247Vq1bK6du2a7LmRkZEW4FD+Rv3797caN27ssO/w4cMWYEVGRlqWZVn16tWzXnnlFcuyLGvPnj2WzWazjh496nBOgwYNrLfeesuyLMsaP368BVibNm1K8bmuXr1q5cmTx/r111/t+wBr5syZDuUiIiKs+++/3/45ODjY+uCDDxzKVK9e3XrxxRcty7Ks/fv3W4D17bff2o9v27bNAqwdO3YkG8vQoUMtwDp9+nSKMSfnxRdftNq1a2f//OSTT1oFChSwLly4YN83evRoK3fu3Na1a9eSvcbx48ctwNqyZYvDM3z00Uf2MvHx8VaRIkWsoUOHWpZlWUuWLLEA68yZM5Zlmffu7+9vL3/ze3vyySet1q1bO9z38uXLVoECBaxp06bZ91WqVMkaOHCgU+9A5E6kGj0RuW2RkZGsWbOGzp07A5A9e3Y6derEd999Zy+zadMmGjRokOz5mzZtwsvLi3r16iV7fP369SxZsoTcuXPbt7JlywIk25S4YcMGLMuidOnSDucsW7bMoXzOnDm57777HM49fvw4zz//PKVLl8bf3x9/f3/Onz/vVJ/D2NhYoqKiqFOnjsP+OnXqsGPHDod9N94/KCjIHkNyrBtqSP/L119/TbVq1bjrrrvInTs3Y8eOTfIM999/P35+fvbPtWrV4vz58xw+fBgw77ZLly6UKFGCvHnzEhoaCpDkOrVq1bL/nj17dqpVq5bkOW+Ht7c3jz/+uP37tGnTJjZv3kz37t1ddg8RT5Xd3QGISNY3btw4rl69yt13323fZ1kWOXLk4MyZM+TPnx9fX99bnp/SMTBNkS1btmTo0KFJjiUmRzeX9/LyYv369Xh5eTkcS2wOTrzvzYMEunfvzokTJ/jss88oVqwY3t7e1KpVy6HvWmrdfG3LspLsy5EjR5LytxoUUrp0acD0ibsxubrZ9OnTefXVVxkxYgS1atUiT548fPzxx/z9999Oxd2yZUtCQkIYO3YswcHBJCQkUKFChVS9i1sNvkirZ555hkqVKnHkyBG+++47GjRoQLFixVx6DxFPpBo9EbktV69eZeLEiYwYMYJNmzbZt82bN1OsWDEmT54MmJqrW00/UrFiRRISEli2bFmyx6tUqcK2bdsoXrw4pUqVcthy5cqVpHzlypW5du0ax48fT1I+MDAwxedZvnw5vXr1olmzZpQvXx5vb+8kgz5y5MjBtWvXbnmNvHnzEhwczIoVKxz2r1y5knLlyqV4/5Q0btyYgIAAhg0bluzxxAEPy5cvp3bt2rz44otUrlyZUqVKJVvzuXnzZi5dumT/vHr1anLnzk2RIkU4deoUO3bs4N1336VBgwaUK1eOM2fOJHvf1atX23+/evUq69evt9e4OitnzpzJvtuKFStSrVo1xo4dy48//sjTTz+dpuuL3GmU6InIbZkzZw5nzpwhPDycChUqOGzt27e3j5yNiIhgypQpREREsGPHDrZs2WJPWIoXL86TTz7J008/zS+//ML+/ftZunSpffDASy+9xOnTp3nsscdYs2YN+/bt4/fff+fpp59ONikoXbo0Xbt2pVu3bsyYMYP9+/ezdu1ahg4dyrx581J8nlKlSjFp0iR27NjB33//TdeuXZPUOBYvXpxFixYRHR19y+Tn9ddfZ+jQoUybNo3IyEj69evHpk2beOWVV5x+x4ly5crFt99+y9y5c2nVqhV//PEHBw4cYN26dbzxxhs8//zz9mdYt24dv/32G7t27aJ///7JDhq5cuUK4eHhbN++nfnz5xMREUHPnj3Jli0b+fPnp2DBgnzzzTfs2bOHxYsX89prryUb15dffsnMmTPZuXMnL730EmfOnElzIla8eHH++ecfIiMjOXnyJPHx8fZjzzzzDB999BHXrl3j0UcfTdP1Re40SvRE5LaMGzeOhg0bJjshbrt27di0aRMbNmygfv36/PTTT8yePZtKlSrx8MMPOzQljh49mvbt2/Piiy9StmxZevTowYULFwAIDg7mr7/+4tq1azRp0oQKFSrwyiuv4O/vT7Zsyf9nbPz48XTr1o0+ffpQpkwZWrVqxd9//01ISEiKz/Pdd99x5swZKleuzBNPPEGvXr0oVKiQQ5kRI0awcOFCQkJCqFy5crLX6dWrF3369KFPnz5UrFiRBQsWMHv2bO65554U7/9fWrduzcqVK8mRIwddunShbNmyPPbYY8TExPD+++8D8Pzzz9O2bVs6depEjRo1OHXqFC+++GKSazVo0IB77rmHunXr0rFjR1q2bMnAgQMByJYtG1OnTmX9+vVUqFCBV199lY8//jjZmD766COGDh3K/fffz/Lly5k1axYBAQFper4ePXpQpkwZe//Cv/76y37sscceI3v27HTp0gUfH580XV/kTmOznOndKyIiHqF79+6cPXs2yQofmdnhw4cpXrw4a9eupUqVKu4ORyRL0GAMERHJ1OLj4zl27Bj9+vWjZs2aSvJEnKCmWxERydT++usvihUrxvr16/n666/dHY5IlqKmWxEREREPpRo9EREREQ+lRE9ERETEQynRExEREfFQSvREREREPJQSPREREREPpURPRERExEMp0RMRERHxUEr0RERERDzU/wFTs19sQKTrogAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "F = res.F\n", + "print('points on front:',len(F))\n", + "fl = F.min(axis=0)\n", + "fu = F.max(axis=0)\n", + "print(f\"Scale f1: [{fl[0]}, {fu[0]}]\")\n", + "print(f\"Scale f2: [{fl[1]}, {fu[1]}]\")\n", + "approx_ideal = F.min(axis=0)\n", + "approx_nadir = F.max(axis=0)\n", + "plt.figure(figsize=(7, 5))\n", + "plt.scatter(F[:, 0], F[:, 1], s=30, facecolors='none', edgecolors='blue')\n", + "#plt.scatter(-0.04, -5.26,marker=\"p\", s=100,color='orange')\n", + "# plt.scatter(-0.04, -5.26,marker=\"p\", s=100,color='orange')\n", + "plt.title('Pareto Front and initial mechanism')\n", + "plt.xlabel(labels[0])\n", + "plt.ylabel(labels[1])\n", + "# plt.savefig(selected_directory + \"./pareto_front.png\")\n", + "plt.show()\n", + "plt.scatter(F[:, 0], F[:, 1], s=30, facecolors='none', edgecolors='blue')\n", + "plt.scatter(approx_ideal[0], approx_ideal[1], facecolors='none',\n", + " edgecolors='red', marker=\"*\", s=100, label=\"Ideal Point (Approx)\")\n", + "plt.scatter(approx_nadir[0], approx_nadir[1], facecolors='none',\n", + " edgecolors='black', marker=\"p\", s=100, label=\"Nadir Point (Approx)\")\n", + "plt.title('Pareto Front')\n", + "plt.xlabel(labels[0])\n", + "plt.ylabel(labels[1])\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Total history and final front')" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "optimizer.history[\"F\"]\n", + "plt.scatter(np.array(optimizer.history[\"F\"])[:,0], np.array(optimizer.history[\"F\"])[:,1],s=3,facecolors='none', edgecolors='blue')\n", + "# np.array(optimizer.history[\"F\"])[64:,1],s=3,facecolors='none', edgecolors='green')\n", + "plt.scatter(res.F[:,0], res.F[:,1],color='red',s=10)\n", + "plt.xlabel(labels[0])\n", + "plt.ylabel(labels[1])\n", + "plt.title('Total history and final front')" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1920" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(optimizer.history['F'])" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Best regarding ASF: F = [-24.68966678 -3.26054016]\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nF = (F - approx_ideal) / (approx_nadir - approx_ideal)\n", + "q = 0.2\n", + "weights = np.array([q, 1-q])\n", + "decomp = ASF()\n", + "b = decomp.do(nF, 1/weights).argmin()\n", + "best_x = res.X[b]\n", + "print(f\"Best regarding ASF: F = {F[b]}\")\n", + "graph = problem.graph_manager.get_graph(best_x)\n", + "draw_joint_point(graph)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "string is not a file: /home/be2r-lab-210134/Python/auto-robotics-diesign/auto-robotics-design/apps/optimization_analysis/mesh/body.stl", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[18], line 21\u001b[0m\n\u001b[1;32m 18\u001b[0m mesh_builder \u001b[38;5;241m=\u001b[39m get_mesh_builder()\n\u001b[1;32m 19\u001b[0m output \u001b[38;5;241m=\u001b[39m widgets\u001b[38;5;241m.\u001b[39mOutput()\n\u001b[0;32m---> 21\u001b[0m fixed_robot, free_robot \u001b[38;5;241m=\u001b[39m \u001b[43mjps_graph2pinocchio_meshes_robot\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtp\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgraph\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmesh_builder\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 22\u001b[0m visualizer \u001b[38;5;241m=\u001b[39m MeshcatVisualizer(\n\u001b[1;32m 23\u001b[0m fixed_robot\u001b[38;5;241m.\u001b[39mmodel, fixed_robot\u001b[38;5;241m.\u001b[39mvisual_model, fixed_robot\u001b[38;5;241m.\u001b[39mvisual_model\n\u001b[1;32m 24\u001b[0m )\n\u001b[1;32m 25\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m output:\n", + "File \u001b[0;32m~/Python/auto-robotics-diesign/auto-robotics-design/auto_robot_design/description/mesh_builder/mesh_builder.py:161\u001b[0m, in \u001b[0;36mjps_graph2pinocchio_meshes_robot\u001b[0;34m(graph, builder)\u001b[0m\n\u001b[1;32m 157\u001b[0m \u001b[38;5;66;03m# builder.thickness = {link: thickness_aux_branch for link in name_link_in_aux_branch}\u001b[39;00m\n\u001b[1;32m 159\u001b[0m kinematic_graph\u001b[38;5;241m.\u001b[39mdefine_link_frames()\n\u001b[0;32m--> 161\u001b[0m robot, ative_joints, constraints \u001b[38;5;241m=\u001b[39m \u001b[43mbuilder\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate_kinematic_graph\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkinematic_graph\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 163\u001b[0m \u001b[38;5;66;03m# with open(\"robot.urdf\", \"w\") as f:\u001b[39;00m\n\u001b[1;32m 164\u001b[0m \u001b[38;5;66;03m# f.write(robot.urdf())\u001b[39;00m\n\u001b[1;32m 166\u001b[0m act_description, constraints_descriptions \u001b[38;5;241m=\u001b[39m get_pino_description_3d_constraints(\n\u001b[1;32m 167\u001b[0m ative_joints, constraints\n\u001b[1;32m 168\u001b[0m )\n", + "File \u001b[0;32m~/Python/auto-robotics-diesign/auto-robotics-design/auto_robot_design/description/mesh_builder/mesh_builder.py:71\u001b[0m, in \u001b[0;36mMeshBuilder.create_kinematic_graph\u001b[0;34m(self, kinematic_graph, name)\u001b[0m\n\u001b[1;32m 69\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m link \u001b[38;5;129;01min\u001b[39;00m links:\n\u001b[1;32m 70\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_set_link_attributes(link)\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcreate_meshes\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkinematic_graph\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 73\u001b[0m links \u001b[38;5;241m=\u001b[39m kinematic_graph\u001b[38;5;241m.\u001b[39mnodes()\n\u001b[1;32m 74\u001b[0m joints \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mdict\u001b[39m(\n\u001b[1;32m 75\u001b[0m \u001b[38;5;28mfilter\u001b[39m(\u001b[38;5;28;01mlambda\u001b[39;00m kv: \u001b[38;5;28mlen\u001b[39m(kv[\u001b[38;5;241m1\u001b[39m]) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m, kinematic_graph\u001b[38;5;241m.\u001b[39mjoint2edge\u001b[38;5;241m.\u001b[39mitems())\n\u001b[1;32m 76\u001b[0m )\n", + "File \u001b[0;32m~/Python/auto-robotics-diesign/auto-robotics-design/auto_robot_design/description/mesh_builder/mesh_builder.py:116\u001b[0m, in \u001b[0;36mMeshBuilder.create_meshes\u001b[0;34m(self, kinematic_graph, prefix)\u001b[0m\n\u001b[1;32m 114\u001b[0m links \u001b[38;5;241m=\u001b[39m kinematic_graph\u001b[38;5;241m.\u001b[39mnodes()\n\u001b[1;32m 115\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m link \u001b[38;5;129;01min\u001b[39;00m links:\n\u001b[0;32m--> 116\u001b[0m link_mesh \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmesh_creator\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbuild_link_mesh\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlink\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 117\u001b[0m link_mesh\u001b[38;5;241m.\u001b[39mapply_scale([\u001b[38;5;241m1\u001b[39m,\u001b[38;5;241m1\u001b[39m,\u001b[38;5;241m1\u001b[39m])\n\u001b[1;32m 118\u001b[0m name \u001b[38;5;241m=\u001b[39m prefix \u001b[38;5;241m+\u001b[39m link\u001b[38;5;241m.\u001b[39mname \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m.stl\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", + "File \u001b[0;32m~/Python/auto-robotics-diesign/auto-robotics-design/auto_robot_design/description/mesh_builder/urdf_creater.py:127\u001b[0m, in \u001b[0;36mMeshCreator.build_link_mesh\u001b[0;34m(self, link)\u001b[0m\n\u001b[1;32m 125\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m link\u001b[38;5;241m.\u001b[39mname \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpredefind_mesh:\n\u001b[1;32m 126\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpredefind_mesh[link\u001b[38;5;241m.\u001b[39mname],\u001b[38;5;28mstr\u001b[39m):\n\u001b[0;32m--> 127\u001b[0m mesh \u001b[38;5;241m=\u001b[39m \u001b[43mtrimesh\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mload_mesh\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpredefind_mesh\u001b[49m\u001b[43m[\u001b[49m\u001b[43mlink\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 128\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 129\u001b[0m body \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpredefind_mesh[link\u001b[38;5;241m.\u001b[39mname](link)\n", + "File \u001b[0;32m~/Python/anaconda3/envs/j_moves/lib/python3.9/site-packages/trimesh/exchange/load.py:195\u001b[0m, in \u001b[0;36mload_mesh\u001b[0;34m(file_obj, file_type, resolver, **kwargs)\u001b[0m\n\u001b[1;32m 170\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 171\u001b[0m \u001b[38;5;124;03mLoad a mesh file into a Trimesh object\u001b[39;00m\n\u001b[1;32m 172\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[38;5;124;03m Loaded geometry data\u001b[39;00m\n\u001b[1;32m 186\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 188\u001b[0m \u001b[38;5;66;03m# parse the file arguments into clean loadable form\u001b[39;00m\n\u001b[1;32m 189\u001b[0m (\n\u001b[1;32m 190\u001b[0m file_obj, \u001b[38;5;66;03m# file- like object\u001b[39;00m\n\u001b[1;32m 191\u001b[0m file_type, \u001b[38;5;66;03m# str, what kind of file\u001b[39;00m\n\u001b[1;32m 192\u001b[0m metadata, \u001b[38;5;66;03m# dict, any metadata from file name\u001b[39;00m\n\u001b[1;32m 193\u001b[0m opened, \u001b[38;5;66;03m# bool, did we open the file ourselves\u001b[39;00m\n\u001b[1;32m 194\u001b[0m resolver, \u001b[38;5;66;03m# object to load referenced resources\u001b[39;00m\n\u001b[0;32m--> 195\u001b[0m ) \u001b[38;5;241m=\u001b[39m \u001b[43mparse_file_args\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfile_obj\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfile_obj\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfile_type\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfile_type\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mresolver\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresolver\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 197\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 198\u001b[0m \u001b[38;5;66;03m# make sure we keep passed kwargs to loader\u001b[39;00m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;66;03m# but also make sure loader keys override passed keys\u001b[39;00m\n\u001b[1;32m 200\u001b[0m loader \u001b[38;5;241m=\u001b[39m mesh_loaders[file_type]\n", + "File \u001b[0;32m~/Python/anaconda3/envs/j_moves/lib/python3.9/site-packages/trimesh/exchange/load.py:605\u001b[0m, in \u001b[0;36mparse_file_args\u001b[0;34m(file_obj, file_type, resolver, **kwargs)\u001b[0m\n\u001b[1;32m 603\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124muse load_remote to load URL: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfile_obj\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 604\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m file_type \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 605\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mstring is not a file: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfile_obj\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 607\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m file_type \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 608\u001b[0m file_type \u001b[38;5;241m=\u001b[39m file_obj\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m\n", + "\u001b[0;31mValueError\u001b[0m: string is not a file: /home/be2r-lab-210134/Python/auto-robotics-diesign/auto-robotics-design/apps/optimization_analysis/mesh/body.stl" + ] + } + ], + "source": [ + "import ipywidgets as widgets\n", + "import meshcat\n", + "from pinocchio.visualize import MeshcatVisualizer\n", + "from IPython.display import display, clear_output, HTML, IFrame, Image\n", + "from auto_robot_design.description.mesh_builder.urdf_creater import (\n", + " URDFMeshCreator,\n", + " MeshCreator,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.mesh_builder import (\n", + " MeshBuilder,\n", + " jps_graph2pinocchio_meshes_robot,\n", + ")\n", + "import pinocchio as pin\n", + "import time\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "\n", + "tp = problem.graph_manager\n", + "mesh_builder = get_mesh_builder()\n", + "output = widgets.Output()\n", + "\n", + "fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(tp.graph, mesh_builder)\n", + "visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + ")\n", + "with output:\n", + " visualizer.viewer = meshcat.Visualizer()\n", + "visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + ")\n", + "visualizer.clean()\n", + "visualizer.loadViewerModel()\n", + "visualizer.display(pin.neutral(fixed_robot.model))\n", + "with output:\n", + " output.clear_output(wait=True)\n", + " display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "#output.append_display_data(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "def run_simulation(b):\n", + " trajectory = problem.rewards_and_trajectories.trajectories[0]\n", + " ik_manager = TrajectoryIKManager()\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(tp.graph, mesh_builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " poses, q_fixed, constraint_errors, reach_array = ik_manager.follow_trajectory(\n", + " trajectory, viz=visualizer\n", + " )\n", + " time.sleep(0.5)\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "first_run_button = widgets.Button(description='run simulation', layout=widgets.Layout(width='200px', height='40px')) \n", + "first_run_button.style.button_color = 'lightblue'\n", + "first_run_button.on_click(run_simulation)\n", + "display(output, first_run_button)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(F[:, 0], F[:, 1], s=30, facecolors='none', edgecolors='blue')\n", + "plt.scatter(approx_ideal[0], approx_ideal[1], facecolors='none',\n", + " edgecolors='red', marker=\"*\", s=100, label=\"Ideal Point (Approx)\")\n", + "plt.scatter(approx_nadir[0], approx_nadir[1], facecolors='none',\n", + " edgecolors='black', marker=\"p\", s=100, label=\"Nadir Point (Approx)\")\n", + "plt.scatter(F[b, 0], F[b, 1], marker=\"x\", color=\"red\", s=200)\n", + "plt.title('Pareto Front')\n", + "plt.xlabel(labels[0])\n", + "plt.ylabel(labels[1])\n", + "plt.legend()\n", + "plt.show()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Percentage of valid mechanisms: 0.6708333333333333\n" + ] + } + ], + "source": [ + "histF = np.array(optimizer.history[\"F\"])\n", + "validF1 = histF[:,0][histF[:,0]<0]\n", + "validF2 = histF[:,1][histF[:,1]<0]\n", + "print('Percentage of valid mechanisms:', len(validF1)/len(histF))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The maximum result in optimization task: -0.012625784613192081 -1.1112880051749572\n" + ] + } + ], + "source": [ + "worstF1_id = np.argmax(validF1)\n", + "worstF2_id = np.argmax(validF2)\n", + "worst_reward2 = validF2[worstF2_id]\n", + "worst_reward1 = validF1[worstF1_id]\n", + "print('The maximum result in optimization task:', worst_reward1, worst_reward2)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The minimum result in optimization task: F1: -0.17398306727409363 F2: -13.297117033968448 F: weights: [0.2 0.8] [ -0.02127702 -10.55334908]\n" + ] + } + ], + "source": [ + "bestF1_id = np.argmin(validF1)\n", + "bestF2_id = np.argmin(validF2)\n", + "bestF1_x = optimizer.history[\"X\"][np.where(histF[:,0]==validF1[bestF1_id])[0][0]]\n", + "bestF1_reward = validF1[bestF1_id]\n", + "bestF2_x = optimizer.history[\"X\"][np.where(histF[:,1]==validF2[bestF2_id])[0][0]]\n", + "bestF2_reward = validF2[bestF2_id]\n", + "print(\"The minimum result in optimization task: F1:\", bestF1_reward, \" F2: \", bestF2_reward, f\" F: weights: {weights}\", F[b])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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3LlTdOjQQVhbWwsAemfu1dDMdrpu3Tq98cfFxels18x0m56errN92bJlokuXLsLe3l7Y2tqKpk2bihdeeEEcOXJEp9yvv/4qgoODhb29vbCzsxOtW7cWn332mfZ5zWyqxemb8XfZsmXCz89PWFtbC19fX/Hpp5+KpUuXCgA6M/Z6eXmJ8PDwEvssPmNw8dmqb9y4IcaOHStatmwp7O3thYODg2jbtq346quvRH5+frn7ByBee+01nW2lzUJdXFnl/vzzTxEaGqp9r7t27Sq2bt2qU6a0v19VjleUvtmq9+/fL7p16ybs7OxEw4YNxYsvviji4+NLzARdmb8tSpmteseOHeL5558Xzs7OwtbWVgwYMED7/0OjsLBQzJkzR/j6+gobGxsRGBgodu3aVaHZqjMyMsSECRNEo0aNhJ2dnQgKChJ//vlnqdfKzz//LKZOnSoaNmworK2tRY8ePUpc81WdrVoIIb7++mvh4+MjzM3N9c6sffHiRQFAvPzyyyXe19KU9n9YCOmad3BwECEhIdpte/fuFeHh4cLFxUVYWlqKxo0bi/Dw8BKfGRkZGcLMzEzY29vrzKy8cuVKAUAMHTq0xPEe99oRQojMzEwxfvx44ezsLOzs7ETfvn1FcnJyhWernj17tvD29hbW1taiVatWYsmSJaVek8X/Pwuhf3b0LVu2iLZt2worKyvRpEkTMXv2bL37LE5TpryH5r0p7fNbo0uXLqJ+/foiMzNTCFH2+5iYmCjMzMzEuHHjyoxRM1u1PlFRUQKAeP/997XbKlo3/PLLLwKA6Nu3r872iRMnCgBi/vz5JY73uHWAEEKcOnVK9O3bV9jY2AgXFxcxYcIEbSyVma1aIUQ19IkiIiIiIipHZGQkxo0bh7i4OJ3xkqZuwYIFmDp1KpKSkuDv7y93OEQmi92qiYiIiIhkkJCQgAsXLuCDDz7AoEGDmBgTyYzJMRERERGRDIYMGYLr16+jR48etT5rOhGVxG7VREREREREZPK4lBMRERERERGZPCbHREREREREZPKYHBMREREREZHJY3JMREREREREJo/JMREREREREZk8JsdERERERERk8pgcExERERERkcljckxEREREREQmj8kxERERERERmTwmx0RERERERGTyLOQOgIhMR0FBAfLy8uQOg2RiZWUFMzPekyUiqusKCwuRm5srdxgk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oFaruVwTUSVxtmoyGUXXOjaE5FitVuOLL77A5cuX0aRJE7nDISIiqlEKhQIhISEcd1xJFy9eBAD07dsXkydPljcYIgPHbtVkMjTjbAxl3LFarQYAdq0mIiKTERoaioSEBGRkZMgdisE4deoUAGm5JyJ6PEyOyWTY2trC1dUVV69elTuUCmnYsCFatGjB5JiIiExGSEgICgsLsW/fPrlDMRhnzpwBAPj7+8scCZHhY3JMJsWQZqwGpNZjTkxCRESmwsfHB97e3ti9e7fcoRiMCxcuAGDLMVF1YHJMJsXQkuOgoCAkJibi7t27codCRERUKzjuuHKuXr0Kc3NzWFhwKiGix8XkmEyKUqk0mG7VgNRyXFhYiIMHD8odChERUa0IDQ1FYmIi0tPT5Q7FIKSlpcHGxkbuMIiMApNjMimG1nLcokULuLq6sms1ERGZjJCQEADAnj175A3EQGRkZMDR0VHuMIiMApNjMikqlQoZGRm4f/++3KFUiEKhgFqt5qRcRERkMho3bowWLVpw3HEFZWVloUGDBnKHQWQUmByTSSm61rGhUKvVOHToEPLy8uQOhYiIqFZw3HHFPXz4EO7u7nKHQWQUmByTSVEqlQBgcOOO79+/j+PHj8sdChERUa0IDQ3FmTNnkJKSIncodVp2djaEENqb/0T0eJgck0lp3LgxAMNqOe7UqROsra3ZtZqIiExGr169AIBdq8uRmJgIQFoCi4geH5NjMinW1tZwc3MzqOTY2toanTt3ZnJMREQmo1GjRggICGDX6nIkJSUB4BrHRNWFyTGZHKVSaVDJMSB1rY6JiYEQQu5QiIiIakVISAhbjstx9uxZAECbNm1kjoTIODA5JpOjUqkMaswxAAQFBSE1NRUXL16UOxQiIqJaERoaigsXLrDuK4PmvWnevLm8gRAZCSbHZHIMba1jAOjevTsAsGs1ERGZjODgYCgUCrYel+HatWswNzeHhYWF3KEQGQUmx2RyDDE5dnFxQatWrRATEyN3KERERLWifv366NChA8cdlyEtLQ02NjZyh0FkNJgck8lRKpW4e/cu7t69K3colRIUFMSWYyIiMimaccecc0O/27dvo169enKHQWQ0mByTydGsBWho447VajVOnjyJjIwMuUMhIiKqFaGhobh27RrOnTsndyh10v379+Hq6ip3GERGg8kxmRxNcmxoXavV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m1s6zp7VY/du4LPPgN27gTNn9HB13WTyQ6S1/oiIiIhsjdc0RI6PT45JdsHBwbjQyj4HYWFhiI+PR1BQEIqLi5GWloZz586ZbNuvXz8UFhbaMlTTGo0X2TDJlSX+REREzozXNESOjckxya6goACDBw/G9evX292Hh4cHTp06hZCQECtGZiaVyrx2164Bnp62jYWIiIhkw2saIsfG2z4ku5CQEGRmZiI6OrpdHyYeHh7IzMyU50MEAHJyzGvn4WHbOIiIiEhWvKYhcmx8ckydRkFBATQaTavTkUzp168fsrKy5PsQISIiIroFr2mIHBMX5KJOIyQkBIWFhdi8eTMiIyPbbBsZGYktW7agsLCQHyJERETUqfCahsgx8ckxdVqXL1/G2rVrcfbsWVRWVqJ79+4ICwvD/Pnz0bt3b7nDIyIiIjILr2mIHAOTYyIiIiIiIlI8TqsmIiIiIiIixWNyTERERERERIrH5JiIiIiIiIgUj8kxERERERERKR6TYyIiIiIiIlI8JsdERERERESkeEyOiYiIiIiISPGYHBMREREREZHiMTkmIiIiIiIixWNyTERERERERIrH5JiIiIiIiIgUj8kxERERERERKR6TYyIiIiIiIlI8JsdERERERESkeEyOiYiIiIiISPGYHBMREREREZHiMTkmIiIiIiIixWNyTERERERERIrH5JiIiIiIiIgUj8kxERERERERKR6TYyIiIiIiIlI8JsdERERERESkeEyOiYiIiIiISPGYHBMREREREZHiMTkmIiIiIiIixWNyTERERERERIrH5JiIiIiIiIgUj8kxERERERERKR6TYyIiIiIiIlI8JsdERERERESkeEyOiYiIiIiISPGYHBMREREREZHiMTkmIiIiIiIixWNyTERERERERIrH5JiIiIiIiIgUj8kxERERERERKR6TYyIiIiIiIlK8/w+LPDOlOhJUgwAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gm = problem.graph_manager\n", + "plt.figure(figsize=(18, 6))\n", + "plt.subplot(1, 3, 1)\n", + "graph = gm.get_graph(bestF1_x)\n", + "draw_joint_point(graph)\n", + "plt.subplot(1, 3, 2)\n", + "graph = gm.get_graph(bestF2_x)\n", + "plt.title(f'Best mechanism for {labels[0]} and {labels[1]}', loc='center')\n", + "draw_joint_point(graph)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAA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Mq1bt0533323vvjiC+Xn51cMXIcOHdIf/vAHzZw5U/Pnz684dvTo0erRo4eefvppLV68uNrrffvtt3r33Xf1y1/+Us8991zFcR07dtQdd9xR7TEJCQmVrnPy5Ek98cQTOnz4sDp16qRrr71WQUFBatWqlQYPHlzp2NTUVMXGxuqpp56q2DZmzJgq1/D19ZWvr28t71bNyheAadu2bZXX2rZtW2WBGHc7ceKEWrRooZCQkAZdv2/fvtqwYYPOnDlTqQH+5s2bK84PADAWY/YFnjhmr1mzRm+99ZZmzZqlsLCwWq9/JWO21WrV559/rttvv73Swj2TJ0/WW2+9Ve/aAQDuxXh9gaeM159//rmGDBlS8febb75Z7733Xq21Xel4fak1a9bo0KFDFf+MgMbAzGE0SHx8vPbt26f9+/fr3Llz2rx5sxISEjRy5EitXbtW0oXBrEWLFho2bJgkafXq1SopKdHdd9+tkpKSij+BgYEaMWKENmzYUOP1Nm7cKEmaMmVKpe2TJk2q8Wcdt9xyS6W/l39zmJWVVev9DRw4UF9//bVmzJih1atXKz8/v9r9SkpK9Mknn9R6vtrUtGpsQ1eTdce163L9mTNn6vTp07r77ru1b98+HTlyRE8++aS2bNki6cpaXgAA3IMx+wJPG7N37typKVOmaPDgwXX+wHclY/apU6d06623Kj8/X++88442bdqkl19+WZs3b9Ytt9yikpKSetUPAHAvxusLPGW8jo2N1fbt27Vx40bNmzdP//nPfzR69GgVFhY2+Nr1uX651157TX5+ftW2+QDchZnDaJDybyrXrVunrl27qri4WKNGjdKRI0f0xz/+seK1uLg4BQUFSZKOHDkiSRowYEC157xckFj+7VrHjh0rbffz86txps2l28tbHZw9e/ay9yZJv/71rxUSEqK3335br7zyinx9fTV8+HA9//zzuv7662s9vq7Ka6zu28OTJ09W+22nO4WFhencuXMqLCxUcHBwletf2svqUvHx8Xr99dc1e/ZsdevWTdKF2cR//OMf9Zvf/KZSL2IAgDEYs93DnWN2+QfMHj166KOPPqq2RVN117+SMfv555/XV199paysLIWHh0uSHA6HevfurVGjRumdd97RtGnT6nwPAAD3Yrx2D3eN1yEhIRV1DR8+XIMGDdLgwYP1j3/8Q7/4xS8ue/0rGa8vdvz4cS1fvlzjxo1Tp06d6nwcUF9M60ODdO7cWT179tS6deu0du1aXX/99WrdurXi4+OVm5urbdu26fPPP6/UC6ldu3aSpGXLlmn79u1V/mzbtq3G65X/C7588CtXUlLSKK0L/Pz89Nhjj2nnzp06efKk3n33XR06dEhjxoyp0zeFdVX+s85du3ZVeW3Xrl2VfvbZGMr7IF16/cOHD+v48eN1uv60adN0+PBhffvtt8rMzFR6erqkC9+IOhwO9xcNAKgXxmz3cNeY/Z///Ec33nijoqKitGbNmioLxNXkSsfsr776ShERERXBcLnyQKGx1zkAAFwe47V7NNZn7Ouvv14+Pj767rvvLrufOz5jl3vrrbdUVFTEQnRodITDaLAbb7xR69ev19q1azV69GhJUs+ePRUZGanf//73Ki4urjRwjRkzRn5+ftq7d6+uv/76av/UZPjw4ZJUpV/SsmXLruhnkC1atKj1W87WrVtr0qRJeuihh3Ty5EkdOHCgwde7VEREhAYOHKi3335bpaWlFds///xz7dmzR7fddpvbrlWdhIQEBQYGKikpqdL2pKQkWSwWTZgwoU7n8fPzU58+fdS9e3edPn1a//znP3XrrbcqKirK/UUDAOqNMfvKuWPM/uqrr3TjjTeqc+fOWrt2rdq0aVPn61/pmG2z2fTDDz8oOzu70vatW7dKuhBKAACMxXh95RrrM/bGjRtVVlam7t27X3Y/d33Gli60lLDZbBo7dmwDKgbqjrYSaLD4+Hi9/PLLOn78uObOnVtp++uvv642bdpU+slEly5d9Mwzz+i3v/2t9u3bp4SEBLVp00ZHjhzRF198oZCQED399NPVXismJkZ33HGH5syZI19fX40aNUrp6emaM2eOrFZrg3vbxsbG6r333tPixYsVHR2twMBAxcbGavz48bLb7br++uvVvn17ZWVlae7cuYqKilKPHj0qjvfz89OIESOuqCfS888/r9GjR2vy5MmaMWOGjh49ql/96ley2+265557KvbLyspSt27dNG3aNL322msV27/99tuKVWgPHz6swsJCLVu2TNKFFg99+/at8dpt27bV7373Oz355JNq27atbrrpJm3fvl1PPfWU7rvvvkrHvvnmm7r33nv1r3/9S3fffbck6ejRo5ozZ47i4uIUGhqqjIwMvfDCC/Lx8dHf//73Br8nAAD3Ysw2fszes2dPxQf6P//5z8rMzFRmZmbFMd26dVP79u1rvPaVjtkPPfSQ3nnnHY0ePVq/+tWvdNVVVyktLU1/+tOf1LFjR915550Nfl8AAO7BeG38eL1y5Uq9+uqruuWWWxQVFaXi4mJ9+eWXmjt3rrp3717rLN4rHa/Lbdu2Tenp6frNb35zRQv0AXXiAhro1KlTLh8fH1dISIirqKioYvs777zjkuS67bbbqj3ugw8+cI0cOdLVqlUrV4sWLVxRUVGuSZMmudatW1exzx/+8AfXpf/zPHfunOuxxx5zdejQwRUYGOgaPHiwa+vWrS6r1er6xS9+UbHf66+/7pLk2r59e6XjP/30U5ck16efflqx7cCBA66bbrrJFRoa6pLkioqKcrlcLtecOXNcQ4cOdbVr184VEBDgioyMdP30pz91HThwoNI5JblGjBhR63s1bdq0inNXZ82aNa7Bgwe7AgMDXW3btnXdfffdriNHjlTaZ//+/S5JrmnTplXaXv5eVffnD3/4Q621uVwu17x581w9e/asuNc//OEPlf6Zulz/e19ff/31im0nTpxw3XTTTa727du7/P39XZGRka6HH37YdezYscu+FyEhIXWqCwDgHozZxo/Z5fda05+Lx9fLaeiY7XK5XDt37nRNnDjR1blzZ1eLFi1c0dHRrvvuu8918ODBGt8LxmwAaDqM18aP17t373ZNmjTJFRUV5QoMDHQFBga6evfu7Xr88cddJ06cqLWuclcyXrtcLtf999/vslgsrr1799Z6LcZrXCmLy+VyNWr6DDSiLVu2KC4uTu+8846mTp1qdDk1mj59ujZs2KDvv/9eFovFlN/8lZWVqaysTD/96U/1/vvv68yZM0aXBABoQozZzQdjNgCYF+N188F4DXehrQSajbVr12rr1q3q37+/goKC9PXXX+svf/mLevTo0ei9ed0hKytL/v7+iomJMeWiL4899pjmzZsn6cLKrwAA78WY3bwxZgOAOTBeN2+M13AXZg6j2di2bZtmz56tb7/9Vk6nU+3atdOYMWP03HPPVVl529McOHBAx48flyQFBQUpJibG4Iqa3qFDhypWwvX19dW1115rcEUAgMbCmN28MWYDgDkwXjdvjNdwF8JhAAAAAAAAADChhi0/CQAAAAAAAABo1giHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhAiHAQAAAAAAAMCECIcBAAAAAAAAwIQIhwEAAAAAAADAhPyMLgBoblwul5xFThWVFinAN0ChAaGyWCxGlwUAAAzE8wEAwBswngHmQzgM1EHa0TQt2rVI23O2a2fuTp08e7LitbZBbXVd+HUaYBugqbFTZe9gN7BSAADQVHg+AAB4A8YzwNwsLpfLZXQRgKda9d0qvbDlBW3K2qR2we0Ud1Wc+of3V4+wHgr0C9S5knPKPJGpHbk7lHooVccLj2t41HD9Mu6XurnHzUaXDwAAGgHPBwAAb8B4BkAiHAaqdaLwhB5JeUSLdi3SsMhhenjgw5rQe4ICfANqPKaotEgfZHygBV8s0OaDm3Vn7J2aP3a+2ga1bcLKAQBAY+H5AADgDRjPAFyMcBi4xDdHvtHYd8aqsLhQ8xPm665+d1X0WCooKFBqaqpycnLkdDoVGhoqm82muLg4hYSESLrQo+ntb97WIymPKNg/WCl3pii2Y6yRtwQAAK4QzwcAAG/AeAbgUoTDwEW+OfKNbki6QV1ad9HKqStlC7VJkjIyMrRw4UIlJSUpPz+/ynFWq1XTpk3TjBkz1KtXL0lSjjNH4xaNU1ZeljZO38iACQBAM8XzAQDAGzCeAagO4TDwXycKT6jfK/3UMaSj1k9br9aBrZWXl6cHHnhAS5curfN5Jk+erFdffVVWq1V55/I08o2ROlpwVLse3MVPbgAAaGZ4PgAAeAPGMwA18TG6AMBTPJLyiAqLC7Vy6kq1Dmyt7OxsDRs2rF4DpSQtXbpUw4YNU3Z2tloHttaqqatUWFyoRz5+pJEqBwAAjYXnAwCAN2A8A1ATwmFAF1ZpXbRrkeYnzJct1Ka8vDyNGTNG6enpDTpfWlqaEhISdPr0adlCbZqXME/v7HpHH2V+5ObKAQBAY+H5AADgDRjPAFwObSUASSOSRqjMVaZN0zfJYrFoypQpNX6DGh0drYkTJ8pmsyknJ0fJycnat29ftftOnjxZS5Yskcvl0vCk4fK1+GrD9A2NeCcAAMBdeD4AAHgDxjMAl8PMYZhe2tE0bcrapIcHPiyLxaKMjIxqB8qoqCitWLFCGRkZSkxMVHh4uBITE5WRkaHly5crMjKyyjFLly7Vnj17ZLFYNHPATG3M2qj0ow37dhYAADQdng8AAN6A8QxAbQiHYXqLdi1Su+B2mtB7giRp4cKFVfaJiorS559/rqKiIkVHR2vkyJGaOnWqRo4cqejoaBUXF2vbtm3VDpjl55vYZ6LaBbfTol2LGvV+AADAleP5AADgDRjPANSGthIwvdFvjVaIf4g++PEHKigokM1mU35+fqV9li9fruLiYk2aNEmX/l/GYrFIkpYtWyY/Pz/deuutlV63Wq3Kzs5WSEiIbn3vVp0tPqs1P1nTuDcFAACuCM8HAABvwHgGoDbMHIapuVwu7czdqf7h/SVJqampVQbK6OhoJSQkaNasWVUGyvJzSNKjjz6qsWPHqmvXrpVeP336tFJTUyVJ/cP7a0fujmrPAwAAPAPPBwAAb8B4BqAuCIdhas4ip06ePakeYT0kSTk5OVX2mThxolJTU/XDDz/UeB6Xy6VDhw4pNTVVEydOrPJ6bm6uJKlnWE+dPHtSZ4rOuOkOAACAu/F8AADwBoxnAOqCcBimVlRaJEkK9AuUJDmdzir72Gy2isGuNrm5ubLZbFW2l5+3hW+LStcFAACeh+cDAIA3YDwDUBeEwzC1AN8ASdK5knOSpNDQ0Cr75OTkKDw8vE7nCw8Pr/bb2PLzni89X+m6AADA8/B8AADwBoxnAOqCcBimFhoQqrZBbZV5IlOSqv0WNDk5WXFxcercuXNFM/5LWSwWXXXVVYqLi1NycnKV18sH2+9OfKe2QW3VMqClG+8CAAC4E88HAABvwHgGoC4Ih2FqFotF14Vfpx25OyRJcXFxatWqVaV99u3bp5SUFM2bN6/imEvPIUlz587Vxx9/rP3791d63Wq1Ki4uTpK0I3eH+of3r3HQBQAAxuP5AADgDRjPANQF4TBMb4BtgFIPpaqotEghISGaPn16lX1mzpypoUOHatmyZYqIiKj0WufOnbVs2TINHTpUDz/8cJVjp0+frpCQEBWVFmnLoS0aYBvQWLcCAADchOcDAIA3YDwDUBvCYZje1NipOl54XB9kfCBJevDBB6vsc/DgQQ0ePFj+/v7at2+fPv30Uy1atEiffvqp9u7dKz8/Pw0aNEgHDx6scmz5+ZJ3J+t44XFNjZ3aqPcDAACuHM8HAABvwHgGoDYWl8vlMroIwGgjkkaozFWmTdM3yWKxaMqUKVq6dGm1+0ZHR2vChAmy2WzKyclRcnJylZ/WlJs8ebKWLFkil8slx+sO+fn4acP0DY14JwAAwF14PgAAeAPGMwCXQzgMSFr13SolvpuoNye8qZ9c/ROdPn1aw4YNU1paWoPPabfbtXnzZlmtVr359Zua9sE0rZq6Sjf3uNmNlQMAgMbC8wEAwBswngG4HMJh4L/u/Ped+ijzI6XPSJct1Kbs7GwlJCQ0aMC02+1KSUlRRESEcpw5ink5RuN6jNPbt73dCJUDAIDGwvMBAMAbMJ4BqAk9h4H/mp8wX8H+wRq3aJzyzuUpIiJCmzdv1k033VSv80yePFmbN29WRESE8s7ladyicQr2D9b8sfMbqXIAANBYano+mDx5cr3Ow/MBAMBIjGcAakI4DPxXWHCYUu5MUVZelka+MVI5zhxZrVZZrVbZbDY9/PDDslqt1R5rtVo1a9YsZWRkaMmSJbJarcpx5mjkGyOVlZellDtT1DaobRPfEQAAuFI1PR8sWbJEX331lfz8/BQYGFjtsTwfAAA8xeXGs927d2vWrFk1ft4NCgpiPAO8GG0lgEvsOrJLCe8kqLC4UE/EPqHfJP5G//zHP3X//feroKBAqampys3NldPpVGhoqMLDwxUXF6eQkBBJksvl0lvfvKVZKbMU7B+slDtTFNsx1uC7AgAAV+Li54P5CfN1V7+7tHr1ao0dO1ZffPGFTp06xfMBAMDjVTeeWSwWSar28+6cOXMUGRmplStXSmI8A7wR4TBQjZNnT+qRjx/RO7veUcDhAP3rZ//S5NjJCvANqPGYotIiJe9O1oIvFij1UKru6neX5iXM4xtUAAC8xMXPB8Mihyk4LVh7Ptij/d/vr/hgfSmeDwAAnubS8WzmgJma2GditZ93n3nmGb300kvKOZKjFZkrGM8AL0Q4DNQgIyNDfW7pox7TeyizOFPtgttp6FVD1T+8v3qG9VQL3xY6X3pe3534Tjtyd2jLoS06XnhcI6JG6Im4J1ilFQAAL/VR5kd6IfUFbczaqMCyQN3U5yaeDwAAzc7F41lNn3fX/WedXvvoNbWOba284jzGM8ALEQ4DNbj77ru1fv167d27V9+f/l6Ldi3S9pzt2pG7QyfPnqzYr21QW/UP768BtgGaGjtVMR1iDKwaAAA0hfT0dNlH2vWjP/9IJwNP8nwAAGi20o+mX/bz7undp+WIduhvP/sb4xnghQiHgWp8//336tWrl+bNm6eZM2dWes3lculM0RkVlRYpwDdALQNa1vhTUgAA4J2ef/55PfPMMzpx4oQCAwN5PgAAeIXqxrPExEQVFRVp7dq1RpcHoBEQDgPVuOeee7R69Wrt27evxhXIAQCAeTkcDoWFhemDDz4wuhQAABrVSy+9pN/+9rc6deoUn48BL+RjdAGAp9m3b5/eeustPfHEEwx8AACgihMnTmjLli1KTEw0uhQAABpdfHy8zp07p61btxpdCoBGQDgMXOK5555TWFiYHnjgAaNLAQAAHiglJUVlZWW6+WYW4wEAeL/Y2Fi1a9dOn3zyidGlAGgEhMPARbKyspSUlKTHH39cwcHBRpcDAAA80KpVq3TdddfJZrMZXQoAAI3Ox8dHI0eOJBwGvBThMHCRv/zlL2rdurV+/vOfG10KAADwQCUlJfr4449pKQEAMJX4+Hht375d+fn5RpcCwM0Ih4H/OnTokF577TXNnj1bLVu2NLocAADggbZs2aK8vDzCYQCAqcTHx6u0tFSbNm0yuhQAbkY4DPzX888/r9DQUD300ENGlwIAADzUypUr1bFjR/Xv39/oUgAAaDLdunVTZGQkrSUAL0Q4DEjKzs7Wq6++qscee0yhoaFGlwMAADzUypUrdfPNN8vHh8doAIB5WCwWxcfHEw4DXoinWkDS//t//0/BwcGaOXOm0aUAAAAPtW/fPu3evZuWEgAAU4qPj9euXbt09OhRo0sB4EaEwzC9w4cP6x//+IceffRRWa1Wo8sBAAAeatWqVfL399fo0aONLgUAgCY3cuRISdL69esNrgSAOxEOw/RefPFFBQQE6JFHHjG6FAAA4MFWrlypG264gRZUAABTstls6tOnD60lAC9DOAxTO3r0qBYuXKhHHnlEbdq0MbocAADgoZxOpzZs2EBLCQCAqcXHxzNzGPAyhMMwtZdeekk+Pj76xS9+YXQpAADAg61bt05FRUUaN26c0aUAAGCY+Ph47du3TwcOHDC6FABuQjgM0zp+/Lj+9re/6eGHH1bbtm2NLgcAAHiwVatWqXfv3urWrZvRpQAAYJgbbrhBPj4+tJYAvAjhMEzrr3/9qyTpscceM7gSAADgycrKyrRq1SpaSgAATK9169bq378/4TDgRQiHYUonT57UggULNGPGDLVr187ocgAAgAfbuXOnDh8+TDgMAICkUaNGaf369XK5XEaXAsANCIdhSvPmzVNJSYlmz55tdCkAAMDDrVy5Uq1bt9bQoUONLgUAAMPFx8fryJEjSk9PN7oUAG5AOAzTycvL07x58/Tzn/9cHTt2NLocAADg4VauXKkxY8bI39/f6FIAADBcXFycAgICaC0BeAnCYZjOggULdP78eT3++ONGlwIAADxcbm6uduzYQUsJAAD+Kzg4WEOHDtX69euNLgWAGxAOw1Ty8/P117/+VQ888IDCw8ONLgcAAHi4jz76SD4+PkpISDC6FAAAPEZ8fLw2bNigkpISo0sBcIUIh2Eqf/vb31RQUKAnnnjC6FIAAEAzsHLlSg0ZMoQFbAEAuEh8fLzy8/O1Y8cOo0sBcIUIh2EaTqdTc+bM0X333aeIiAijywEAAB7u3LlzWrt2LS0lAAC4xIABAxQaGkrfYcALEA7DNBYuXCin06lf/vKXRpcCAACagY0bN6qgoEDjxo0zuhQAADyKn5+fhg8fTjgMeAHCYZhCQUGBXnzxRd1zzz2KjIw0uhwAANAMrFq1SpGRkbLb7UaXAgCAx4mPj1dqaqrOnj1rdCkArgDhMEzhH//4h06dOqVf//rXRpcCAACaAZfLpZUrVyoxMVEWi8XocgAA8Djx8fE6f/68tm7danQpAK4A4TC83tmzZ/XCCy9o2rRp6tKli9HlAACAZmD37t3av38//YYBAKiB3W5X+/btaS0BNHOEw/B6//znP3X8+HFmDQMAgDpbuXKlgoODNXLkSKNLAQDAI/n4+GjUqFGEw0AzRzgMr3bu3Dk9//zzuuuuu9StWzejywEAAM3EypUrFR8fr8DAQKNLAQDAY8XHx2v79u06ffq00aUAaCDCYXi11157TUeOHNFvfvMbo0sBAADNxMmTJ7VlyxZaSgAAUItRo0aprKxMGzduNLoUAA1EOAyvdf78ef3lL3/RHXfcoZ49expdDgAAaCZWr16t0tJSjRs3zuhSAADwaNHR0YqKiqK1BNCMEQ7DayUlJSk7O1u/+93vjC4FAAA0IytXrtS1116riIgIo0sBAMCjWSwWxcfHa/369UaXAqCBCIfhlYqKivTss8/qRz/6kXr37m10OQAAoJkoKSnRxx9/TEsJAADqKD4+XmlpaTpy5IjRpQBoAMJheKU333xTBw8eZNYwAACol61bt+rUqVO0lAAAoI5GjRolScweBpopwmF4neLiYj377LOaNGmSYmJijC4HAAA0I6tWrVL79u01YMAAo0sBAKBZ6NSpk2JiYug7DDRTfkYXALjbO++8o/379ys5OdnoUhqFy+WSs8ipotIiBfgGKDQgVBaLxeiyAADwCitXrtS4cePk48McCgAA6mrUqFFasWKF0WUAaACLy+VyGV0E4C4lJSXq06eP7Ha7V4XDaUfTtGjXIm3P2a6duTt18uzJitfaBrXVdeHXaYBtgKbGTpW9g93ASgEAaL7279+v6OhoLVu2TLfffrvR5QAA0Gx8+OGHmjBhgvbu3avo6GijywFQD8wchld577339P3332vx4sVGl+IWq75bpRe2vKBNWZvULrid4q6K06ODHlWPsB4K9AvUuZJzyjyRqR25O/Tqzlf13ObnNDxquH4Z90vd3ONmo8sHAKBZWbVqlfz9/TV69GijSwEAoFkZMWKEfHx8tH79esJhoJlh5jC8RmlpqWJiYtSzZ08tX77c6HKuyInCE3ok5REt2rVIwyKH6eGBD2tC7wkK8A2o8Zii0iJ9kPGBFnyxQJsPbtadsXdq/tj5ahvUtgkrBwCg+Ro7dqyKi4u1bt06o0sBAKDZGTRokKKjo/Xuu+8aXQqAemDmMLzG0qVLtWfPHr311ltGl3JFvjnyjca+M1aFxYV6c8KbuqvfXRU9hQsKCpSamqqcnBw5nU6FhobKZrMpLi5OISEhmhIzRZP7Ttbb37ytR1Ie0acHPlXKnSmK7Rhr8F0BAHDlGrPv/pkzZ7R+/Xo9//zzbjkfAABmEx8fr9dee00ul8sj1sVhvR6gbpg5DK9QVlam2NhYRUVF6aOPPjK6nAb75sg3uiHpBnVp3UUrp66ULdQmScrIyNDChQuVlJSk/Pz8KsdZrVZNmzZNM2bMUK9evSRJOc4cjVs0Tll5Wdo4fSMBMQCgWWqqvvvlvRIzMzPVvXt3d5QOAICpfPLJJ7rxxhv1zTffKDbWmM+frNcD1B/hMLzC0qVLNWXKFG3ZskVDhgwxupwGOVF4Qv1e6aeOIR21ftp6tQ5srby8PD3wwANaunRpnc8zefJkvfrqq7Jarco7l6eRb4zU0YKj2vXgLlpMAACajer67vcP719t3/3UQ6k6Xnj8ivru33///frss8+UkZHRCHcDAID3O3v2rNq0aaO//OUvevTRR5v02k393AB4E8JhNHtlZWW65ppr1KlTJ61Zs8bochrszn/fqY8yP1L6jHTZQm3Kzs7WmDFjlJ6eXu9z2e12paSkKCIiQjnOHMW8HKNxPcbp7dveboTKAQBwHyP67rtcLkVERGjq1Kl68cUX3XUrAACYzqhRoxQSEqIVK1Y0yfVYrwe4coTDaPaSk5N122236bPPPtOwYcOMLqdBVn23SonvJurNCW/qJ1f/RHl5eRo2bFiDguFydrtdmzdvltVq1Ztfv6lpH0zTqqmr+FYUAOCxLu67Pz9hfr367ksXQt7yvvvB/sF17ru/c+dO9e/fX+vXr9fIkSMb9R4BAPBmf/7zn/X888/r5MmT8vNr3GWujHpuALwN4TCaNZfLpeuuu05t27bVJ598YnQ5DTYiaYTKXGXaNH2TLBaLpkyZUmMriejoaE2cOFE2m005OTlKTk7Wvn37qt138uTJWrJkiVwul4YnDZevxVcbpm9oxDsBAKBhjOy7/8wzz2jOnDk6fvy4/P393X9zAACYxOeff64hQ4Zo69atGjx4cKNdh/V6APchHEaztmLFCt1yyy3asGGDRowYYXQ5DZJ2NE2xC2O1eNJiTYmZooyMDPXp06fKflFRUfrb3/6mMWPGKDU1Vbm5uQoPD1dcXJxSUlI0c+ZMHTx4sMpxGRkZ6tWrlxanLdaP3/+x0h5MU0yHmKa4NQAA6sTovvsDBw5U165dtXjxYnfcDgAAplVSUqKwsDA98cQT+u1vf9so1zD6uQHwNj5GFwA0lMvl0tNPP63hw4c322BYkhbtWqR2we00ofcESdLChQur7BMVFaXPP/9cRUVFio6O1siRIzV16lSNHDlS0dHRKi4u1rZt2xQZGVnl2PLzTewzUe2C22nRrkWNej8AANTXIymPqLC4UCunrlTrwNbKzs7WsGHD6vUBT7qwQO2wYcOUnZ2t1oGttWrqKhUWF+qRjx+p8ZjDhw9r+/btSkxMvNLbAADA9Pz8/DRixIhG/WWvkc8NgDciHEaz9fHHH2vHjh36/e9/b3QpV2R7znbFXRWnAN8AFRQUKCkpqco+CxYs0JYtWzRp0iT98MMPlV7Lzs7WpEmTtGXLFi1YsKDKsUlJSSooKFCAb4CGXjVU23O2N9atAABQb6u+W6VFuxZpfsJ82UJtysvLa/CCrJKUlpamhIQEnT59WrZQm+YlzNM7u97RR5kfVbv/Rx99JIvForFjx17JbQAAgP+Kj4/Xli1bdPbsWbef2+jnBsAb0VYCzZLL5dKQIUPk6+urzZs3VzSdb25cLpfa/b92enTQo3pyxJNas2aNxowZU2mf6OhoZWRkKDo6ukowXM5isahz587au3evevXqpf3791d6ffXq1brpppv0zMZnNG/bPB1//Hizfc8AAN7F6L77t99+u3Jzc7VlyxZ33hYAAKa1a9cu9evXT2vXrtWNN97o1nMb/dwAeCNmDqNZWrt2rbZt26bf//73zTrkdBY5dfLsSfUI6yFJysnJqbLPxIkTlZqaWmMwLF0ImQ8dOqTU1FRNnDixyuu5ubmSpJ5hPXXy7EmdKTrjpjsAAKDh0o6maVPWJj088GFZLBZlZGRU+wEvKipKK1asUEZGhhITExUeHq7ExERlZGRo+fLl1bZVWrp0qfbs2SOLxaKZA2ZqY9ZGpR+tPKvo/PnzWrNmDS0lAABwI7vdrg4dOri9tYTRzw2AtyIcRrNT3mt40KBBuummm4wu54oUlRZJkgL9AiVJTqezyj42m60i3K1Nbm6ubDZble3l523h26LSdQEAMJLRffc3bdqkM2fOEA4DAOBGFotFo0aN0vr16916XqOfGwBvRTiMZufTTz/Vli1bmv2sYUkK8A2QJJ0rOSdJCg0NrbJPTk6OwsPD63S+8PDwamcfl5/3fOn5StcFAMBIRvfdX7lypa666irFxsa69b4AADC7+Ph4ffnll8rLy3PbOY1+bgC8lZ/RBQD19cwzz6h///5esXBMaECo2ga1VeaJTEmqdtZvcnKynnvuOXXu3FnZ2dmqrk14ec/huLg43XvvvVVeLw+XvzvxndoGtVXLgJZuvhMAAOrH5XJpZ+5OPTroUUlSamqq8vPzK+0THR2thIQERUdHVzv+uVwuWSwWPfroo9q7d6+6du1aqe/+6dOnlZqaqptuukmxYbGa/8V8vf766zpz5oxatmypJUuWKDExsdl/2QwAgKeJj49XWVmZ5s6dqy5dusjpdCo0NFQ2m01xcXEKCQmp1/ma+rmhf3h/zds2r+IYwJsRDsPjFBQUKDU1VTk5OVUGkC+//FIbN27Uhx9+6BX/grZYLLou/DrtyN0hSYqLi1OrVq0qDXL79u1TSkqK5s2bp0mTJslisVQa6Mrfh7lz5+rjjz+ushid1WpVXFycJGlH7g71D+/vFe8dAKB5a6y++y+99FKl13fs2KFVq1bp1a2v6uy4s7r35/dKF3VXevfddxUcHKwZM2aoV69e7rk5AABMLCMjQwsXLpTFYtHTTz9d5XWr1app06bVa+xtqueG6tbrCW1R9Re+gDchHIbHKB9AkpKSqnwDKF0YQEJDQ9WrVy+NHz/egAobxwDbAL2681UVlRYpJCRE06dP1/z58yvtM3PmTG3btk3Lli3TrFmzKg12nTt31ty5czV06FANGjSoyvmnT5+ukJAQFZUWacuhLXrgugca/Z4AAKhNU/Xd/81vfnPhv/T+7wbfyq8XFBRo/vz5mj9/viZPnqxXX31VVqu1bjcBAAAq5OXl6YEHHqh2kbiLnT59ut5jL+v1AI2HnsMwXF5enqZMmaI+ffpo/vz51QbD0oUB5IcfftCePXv0ox/9SKdPn27iShvH1NipOl54XB9kfCBJevDBB6vsc/DgQQ0ePFj+/v7at2+fPv30Uy1atEiffvqp9u7dKz8/Pw0aNEgHDx6scmz5+ZJ3J+t44XFNjZ3aqPcDAEBdNFXf/QrlUyJKa95l6dKlGjZsmLKzs+t0TQAAcEF2draGDRtWazB8qbqOvazXAzQewmEYqrEHkObA3sGu4VHDteCLBXK5XOrdu7cmT55cZb+srCzdcsst6t27t1asWKGcnBytWLFCvXr10q233lptMDx58mT16tVLLpdLC75YoBFRIxTTIaYpbgsAgMuqa9/9uLg4de7cucaWSBaLRVdddZXi4uKUnJxc8wXDJBWqUkuJ6qSlpSkhIcFrvoQGAKCx5eXlacyYMUpPT2/Q8XUZe5vquYH1emBGFld1XbqBJpCXl6dhw4Y1eACRJLvdrs2bNzf7n3+u+m6VEt9N1JsT3tRPrv6JTp8+rWHDhiktLa3B57z4vXnz6zc17YNpWjV1lW7ucbMbKwcAoOFGvzVaIf4h+uDHH6igoEA2m63KL4iWL1+u4uJiTZo0SZKq7bu/bNky+fn56dZbb635Yj+WgloFaUboDNlsNuXk5Cg5OVn79u2rdvfJkydryZIlV3iHAAB4vylTptQ44Ss6OloTJ050y9jb2M8NVqtV2dnZCgkJ0a3v3aqzxWe15idran8DgGaOmcMwzAMPPFBjMBwdHa3Zs2drzpw5mj17tqKjo6vdLy0tTffff39jltkkxvUcp6mxU/VIyiPKcebIarUqJSVFdru9Qeez2+1KSUmR1WpVjjNHs1Jm6c7YOwmGAQAeZYBtgFIPpVbqu3+pmTNnaujQoVq2bJkiIiIqvda5c2ctW7ZMQ4cO1cMPP1zjdSK7RqqVvZUenfyoXnzxRT322GN68cUXlZmZqeXLlysyMrLKMUuXLtWePXuu+B4BAPBmGRkZ1QbDUVFRWrFihTIzM9029jb2c8Ol6/UMsA2owzsANH+EwzBEUw4gzcX8hPkK9g/WuEXjlHcuTxEREdq8eXO1LSYuZ/Lkydq8ebMiIiKUdy5P4xaNU7B/sOaPnV/7wQAANKHG7rsvXXi2+M2bv1F+Sb7u7Hdnpdd8fHw0fvx4bdu2rdpnjIULF175TQIA4MWqGyujoqL0+eefKzExUT4+lWOnKxl7Wa8HaBy0lYAhZs2apfnzK4eV5QNIp06dajzu8OHD1f6LfNasWZo7d25jlNqkdh3ZpRFJIxTVOkqrpq6SLfRCH6WMjAy98sorSkpKqrYPk7+/v2bMmKEHH3xQvXr1kiTlOHM0btE4ZeVlaeP0jYrtGNuk9wIAQF2MSBqhMleZNk3fJIvFUutPUydMmFDpp6n79++/7Pk//PBDvXD8Bfn5+GnD9A017rd8+fLL/rwUAABUdrnWDuPHj6/1+IaMvY313FDe0sLlcsnxuqPW5wbAmxAOo8kZMYA0J7uO7FLCOwkqLC7U/IT5uqvfXRW9kQoKCpSamqrc3Fw5nU6FhoZq9erVSklJ0dGjR+Xn5yeXy6W3vnlLs1JmKdg/WCl3phAMAwA8VmP03S8XHR2tJ5c9qXuW31Nr3/2ysjJ17969yofG1atX66abbrriWgAA8DZr1qzRmDFjKm2Ljo5WZmZmlRnD1WnI2Mt6PYD70VYCTS41NbVKMBwdHa1x48bV6fjExER17dq10rbTp08rNTXVbTUaKbZjrHY9uEvjeozT3R/creFJw7U4bXFFX6WbbrpJ06ZN08yZMzVt2jQ98sgjOnXqlD7b8pkWpy2W43WHpn0wTYk9E7XrwV0EwwAAj+buvvsXG33baP1izS/q1Hffx8dHEydOrLI9Nzf3iusAAMAb5eTkVNk2ceLEOgXDUsPGXtbrAdyPcBhNzogBpLlpG9RWb9/2tlZNXSVfi69+/P6PFfFShG5971Y9s/EZvZf2npJ3J+u9tPeUcjZFAdMCNG79OP34/R/Lz8dPq6au0lsT31LboLZG3woAALVyV9/9SgKlFa1W1Kvvvs1mq7LN6XQ2vAYAALxYdWNkdWPp5TRk7GW9HsC9/IwuAOZj1ADSHN3c42bd3ONmpR9N16Jdi7Q9Z7vmbZunk2dPVuzTNqitwjqFqTijWNvnb1dMhxgDKwYAoP7CgsOUcmeKRiSN0Mg3Rl7ou2+1acmSJbX23Zekn//854qMjNRvfvObCxtCJU2VTpae1Bd3flHnL0ur+wI7NDS0obcFAIBXq26MrG4svZyGjL1X8txgtVo1ffr0y67XwyQrmA0zh9HkjBpAmrOYDjH6c/yfteYna3T88ePK/1V+pf+cf/18HV98XMEFwUaXCgBAg8R2jNXG6Rt1tOCoYl6O0VtfvyWXy6XevXtr7ty5ys7O1urVq5WUlKQFCxYoKSlJb7/9tiRpxIgR6t+//4UTXS1phqQQqd2KdoppX7cvTcvKypScnFxle3h4uJvuEAAA71LdpK3k5GSVlZXV6fgrGXvr89wwb948+fv762c/+5mys7M1d+5c9erVSy6XS29+/aZiXo7R0YKjLOQO02JBOjQ5I5rWe7v8/HyFhYXpr3/9q2bOnGl0OQAANNjJsyf1yMeP6J1d72hY5DDNHDBTE/tMVIBvQLX7X3vtteod01sJv0jQT//xU5VGlEpfS0qRdJYFbwEAaCyesNh8XZ8brr/+el1zzTX6v//7PxWVFil5d7IWfLFAqYdSdVe/uzQvYR4zhmFahMNocp4wgHijG2+8UX5+fkpJSTG6FAAArthHmR/phdQXtDFro9oFt9PQq4aqf3h/9QzrqRa+LXS+9Ly+O/Gd3ln/jjLPZcoV7FJEcYSyl2RLmf87T2RkpLZt26ZOnTrVeK3Dhw9r0KBBOnjwYKXts2bN0ty5cxvpDgEAaP5mzZql+fMr9+g1Yuyt7blh7t/mau/pveqf2F9bDm3R8cLjGhE1Qk/EPcHiczA9wmEYwlMGEG8yb948PfHEEzpx4oRatmxpdDkAALjFxX33d+TuqNJ3v3twd32R/IXe+P/e0MCuA9WnT58q54iKitKCBQs0bty4Sr9SKisr08qVK/Xwww9XebaQpIyMjIp+hAAAoKqMjAyPGnsv99ygs9KNMTdqoG2gpsZOZb0e4L8Ih2EITxtAvMHevXvVvXt3JScna8KECUaXAwCA27lcLp0pOqOi0iIF+AaoZUBLuVwu2Ww23X333XrhhRc0ZcoULV26tNrjo6OjNWHCBNlsNuXk5Cg5OblKm6pykydP1pIlSxrzdgAA8AqeOvZe/Nyw8dONuj3xdu3fv19dunRx2zUAb0A4DMN46gDSnPXp00dxcXH6v//7P6NLAQCgyfz0pz/V1q1b9e233+r06dMaNmyY0tLSGnw+u92uzZs3y2q1urFKAAC8U3MYew8dOqTIyEitWLFCiYmJjXINoLkiHIZhmsMA0tw8/vjjevvtt5WdnV2nxf0AAPAGycnJuu222/T999+rW7duys7OVkJCQoOeMex2u1JSUhQREdEIlQIA4J08fex1uVxq3bq1fv3rX+tXv/pVo10HaI5Ij2AYq9WqlJQU2e32Bh1fPoAQDP9PYmKiDh8+rJ07dxpdCgAATWb06NEKCAjQypUrJUkRERHavHmzJk+eXK/zTJ48WZs3byYYBgCgnjx97LVYLLLb7Vc0OQ3wVoTDMJSnDyDNzdChQ9W6deuKD8cAAJhBy5YtNXLkSK1YsaJim9Vq1ZIlS7R7927NmjWrxi+TrVarZs2apYyMDC1ZsoQvnQEAaCBPH3vtdrvS09Ob5FpAc0JbCXiMjIwMvfLKK0pKStLp06ervB4YGKif/exnevDBB02/+Nzl3HHHHcrMzNSXX35pdCkAADSZv//973r00Ud14sQJtWrVqsrrBQUFmjhxovbt26dHH31UoaGhCg8PV1xcnEJCQgyoGAAA71ZQUKDU1FTl5ubqu+++07PPPqs5c+boZz/7mSFj74IFC/T444/rzJkz8vPza/LrA56KcBge5+IBxOl0KjQ0VAsWLFCbNm20du1ao8vzeO+8847uuusuZWdny2azGV0OAABNIisrS126dNGSJUtq/EXSpEmTdObMGaWkpDRxdQAAmFteXp7atGmjxYsXa8qUKYbU8Omnn2rUqFHKyMhgwhlwEb4qgccJCQnRTTfdVGlbdna2nn/+eZWWlsrX19egypqHhIQE+fj46KOPPtJ9991ndDkAADSJqKgoxcbGauXKlTWGw/n5+bSNAADAAFarVUFBQcrJyTGshvL1jtLS0giHgYvQcxjNgsPhUH5+vr755hujS/F4YWFhGjp0KH2HAQCmk5iYqI8++kilpaXVvl7+iyQAANC0LBaLbDaboeFw+/bt1b59exalAy5BOIxmYcCAAQoICNBnn31mdCnNQmJiotauXatz584ZXQoAAE1m/PjxOn78uLZt21bt606ns9p+xAAAoPEZHQ5LF2YPEw4DlREOo1kIDAzUwIEDCYfrKDExUYWFhdqwYYPRpQAA0GQGDhyodu3aacWKFdW+np+fz8xhAAAMEhERoezsbENrIBwGqiIcRrPhcDj02WefiTUUa9e3b1916dKF1hIAAFPx9fXVuHHjahz/aCsBAIBxPGXmcGZmps6fP29oHYAnIRxGs+FwOHTkyBF9//33Rpfi8SwWixITE7Vy5UrCdACAqSQmJiotLU0HDhyotN3lctFWAgAAA3lKOFxaWqo9e/YYWgfgSQiH0WwMHTpUFouF1hJ1lJiYqKysLKWnpxtdCgAATeamm26Sv79/ldnDZ8+eVWlpKTOHAQAwiM1m05kzZ+R0Og2rISYmRpJoLQFchHAYzYbVatXVV1+tTZs2GV1KszBixAiFhITQWgIAYCqtWrXSiBEjqvQdLv8gSjgMAIAxIiIiJMnQ2cNWq1VXXXUV4TBwEcJhNCvlfYdRu8DAQI0ePZpwGABgOuPHj9eGDRsqzUwq/++0lQAAwBg2m02SDF+ULiYmhnAYuAjhMJoVh8Ohffv2Gd6nqLlITEzU1q1bdfz4caNLAQCgySQmJqqoqEhr166t2Jafny+JmcMAABglPDxckrEzh6ULfYcJh4H/IRxGs+JwOCSJ2cN1dPPNN6usrEwpKSlGlwIAQJOJjo5W3759K/16hrYSAAAYKyQkRFar1SPC4f379+vMmTOG1gF4CsJhNCudOnVS9+7dCYfrKDw8XNdffz2tJQAApjN+/HitWrVKZWVlkmgrAQCAJ7DZbB4RDkvS7t27Da0D8BSEw2h26DtcP4mJiUpJSVFxcbHRpQAA0GQSExN19OhRbd++XRJtJQAA8AQRERGGh8N9+vSRxWKhtQTwX4TDaHYcDod27dqlvLw8o0tpFhITE3X69GmlpqYaXQoAAE1myJAhatu2rVasWCHpwsxhHx8fBQcHG1wZAADmZbPZDF+QLjg4WN26dSMcBv6LcBjNjsPhkMvlIuyso2uvvVbh4eG0lgAAmIqvr69uvvnmivHP6XQqNDRUFovF4MoAADAvT2grIbEoHXAxwmE0O926dVN4eDitJerIx8dH48aNIxwGAJjO+PHj9fXXX+vgwYPKz8+npQQAAAYrD4ddLpehdcTExBAOA/9FOIxmx2Kx0He4nhITE7Vnzx5lZmYaXQoAAE1mzJgx8vPz06pVqypmDgMAAOPYbDYVFRXp5MmThtZht9uVk5NjeB2AJyAcRrPkcDi0fft2nT171uhSmoX4+Hi1aNFCq1atMroUAACajNVq1fDhw7VixQo5nU61atXK6JIAADC1iIgISTK8tYTdbpckpaenG1oH4AkIh9EsORwOFRcX64svvjC6lGahZcuWGjlyJK0lAACmk5iYqPXr1+vkyZPMHAYAwGA2m02SDF+UrmfPnvLz8yMcBkQ4jGbKbrfLarXSWqIeEhMTtXHjRuXn5xtdCgAATWb8+PE6f/68srKyCIcBADBYp06dJBk/czggIEC9evWi7zAgwmE0U76+voqLiyMcrodx48appKREa9asMboUAACaTPfu3dWrVy9lZ2fTVgIAAIMFBASoffv2hofD0oVJZ4TDAOEwmjGHw6EtW7aopKTE6FKahS5dushut9NaAgBgOuPHj9eJEyfUsmVLo0sBAMD0bDabR4XDLpfL6FIAQxEOo9lyOBw6c+aMvvrqK6NLaTYSExP10UcfqbS01OhSAABoMomJiSopKVFBQYHRpQAAYHoREREeEQ7HxMToxIkTOnLkiNGlAIYiHEazdf3116tFixa0lqiHxMREHTt2TNu3bze6FAAAmkxcXJwsFosOHjxodCkAAJiezWYzfEE66cLMYUm0loDpEQ6j2WrRooUGDRpEOFwPgwcPVtu2bWktAQAwFT8/P1ksFmVmZhpdCgAApucpbSWio6MVGBhIOAzTIxxGs+ZwOLR582Z6BNWRr6+vbr75ZsJhAICpnD9/XmVlZTp06JBHzFQCAMDMbDabDh8+bHi7Q19fX/Xt21fp6emG1gEYjXAYzZrD4dCxY8e0Z88eo0tpNhITE/X111/r0KFDRpcCAECTcDqdkiQfHx+tWrXK4GoAADA3m82msrIyHT161OhSKhalA8yMcBjN2pAhQ+Tj40NriXoYM2aMfH19+XAMADCN8nDYbrdrxYoVBlcDAIC5RURESJJHtJYoD4f5NTLMjHAYzVqrVq10zTXXEA7XQ+vWreVwOGgtAQAwjfz8fEnSiBEjtG7dOhUWFhpcEQAA5mWz2STJI1o92e12nTlzhkVrYWqEw2j2hg8fTjhcT4mJifrkk0/4cAwAMIXymcMJCQk6d+6c1q9fb3BFAACYV/v27eXr6+sRM4djYmIkidYSMDXCYTR7DodDBw4c0A8//GB0Kc1GYmIiH44BAKZRHg7369dP3bt359czAAAYyNfXV506dfKIcPiqq65SaGgo4TBMjXAYzd6wYcMkidnD9dCzZ08+HAMATKO8rUSrVq00fvx4rVy5kt6CAAAYyGazeUQ4bLFYWJQOpkc4jGavQ4cO6tWrF+FwPVgsFiUmJvLhGABgCuUzh1u2bKnExERlZ2frq6++MrYoAABMLCIiwiPCYelC3+H09HSjywAMQzgMr+BwOAiH66n8w/HXX39tdCkAADQqp9Opli1bysfHRw6HQ61atdKKFSuMLgsAANOy2WwesSCddCEc/vbbb1VaWmp0KYAhCIfhFRwOh9LS0nTy5EmjS2k2HA6HQkNDaS0BAPB6+fn5Cg0NlST5+/srISGB8Q8AAAN5SlsJ6UI4fP78ee3du9foUgBDEA7DKzgcDklSamqqwZU0HwEBARozZgwfjgEAXs/pdFaEw5I0fvx4bd++XYcPHzawKgAAzMtms+n48eM6f/680aXIbrdLEn2HYVqEw/AKXbp0UUREhDZt2mR0Kc1KYmKivvjiCx05csToUgAAaDROp1OtWrWq+PvYsWPl4+OjVatWGVgVAADmZbPZJMkjvqjt0KGD2rVrRzgM0yIchlewWCz0HW6AsWPHSpI+/vhjgysBAKDxXNxWQpLCwsI0dOhQfj0DAIBBIiIiJMmjWksQDsOsCIfhNRwOh3bs2KGCggKjS2k2OnTooEGDBvHhGADg1S5tKyFd+PXMmjVrdO7cOYOqAgDAvMpnDnvSonSEwzArwmF4DYfDoZKSEm3bts3oUpqVxMRErV69WkVFRUaXAgBAo7i0rYR0oe9wYWGhNmzYYExRAACYWJs2bdSiRQuPmjmcmZnpET2QgaZGOAyvERMTozZt2tBaop4SExN15swZ+jUDALzWpW0lJKlPnz7q2rWrVqxYYVBVAACYl8Vikc1m86hwuKSkRN99953RpQBNzs/oAgB38fHxUVxcHOFwPfXr10+dO3dWcnKyysrKlJOTU/HzW5vNpri4OIWEhBhdJgAADVZdWwmLxaLx48frgw8+0N/+9jdZLBaDqgMAwJw8KRyOiYmRJKWlpSk2NtbgaoCmRTgMr+JwOPT000+ruLhY/v7+RpfTLOzZs0etW7fWwoUL9fLLL1d53Wq1atq0aZoxY4Z69eplQIUAAFyZ6tpKSBd+PTN//nzt2rVL/fr1M6AyAADMKyIiwmPC4datW6tz5870HYYp0VYCXmX48OEqLCzUf/7zH6NL8Xh5eXmaMmWK+vTpo7S0NLlcrmr3O336tObPn6/evXtrypQpOn36dBNXCgDAlamurYQkjRgxQi1btmRhVgAADGCz2TxmQTrpwuxhwmGYETOH4VWuu+46BQUF6bPPPtPAgQONLsdjZWdna8yYMUpPT6/XcUuXLtXu3buVkpKiiIiIRqoOAAD3KSkp0blz56oNhwMCAjRmzBh98MEHuv7662mtBABAE/KkthLShb7DycnJRpcBNDnCYXiVgIAADR48WJ999plmz55tdDkeKS8vr0HBcLm0tDQlJCRo8+bNslqtbq4OAAD3cjqdklRtW4mMjAzl5+dr+/btGjNmTJXXaa0EAEDjsdlsys/P15kzZ9SyZUujy5HdbtecOXNUUFDAl8MwFdpKwOs4HA5t3rxZZWVlRpfikR544IEag+Ho6GjNnj1bc+bM0ezZsxUdHV3tfmlpabr//vsbs0wAANwiPz9fkirNHL64tdLatWtrPJbWSgAANB6bzSZJys3NNbiSC+x2uyRp9+7dBlcCNC3CYXgdh8OhEydOKCMjw+hSPE5GRoaWLl1aZXtUVJRWrFihzMxMvfjii3rsscf04osvKjMzU8uXL1dkZGSVY5YuXao9e/Y0RdkAADRY+czh8nA4Oztbw4YNq3Y8vJylS5dq2LBhHtUbEQCA5qy8VaGntJbo06ePLBYLfYdhOoTD8DqDBw+Wr6+vPvvsM6NL8TgLFy6ssi0qKkqff/65EhMT5eNT+V8JPj4+Gj9+vLZt21ZtQFzd+QAA8CQXt5VwV2slZhADAHDlwsPDJcljvngNCQlRdHQ04TBMh3AYXqdly5a67rrrCIcvUVBQoKSkpCrbFyxYoE6dOl322E6dOmnBggVVticlJamgoMBdJQIA4HYXt5WgtRIAAJ4jNDRUoaGhHjNzWLrQWoJwGGZDOAyv5HA4tGnTJqPL8CipqakVH5DLRUdHa9y4cXU6PjExUV27dq207fTp00pNTXVbjQAAuFv5zOHc3FxaKwEA4GFsNptHhcMxMTGEwzAdwmF4JYfDoUOHDikrK8voUjxGdQPuxIkTq7SSqImPj48mTpxYZbunLB4AAEB1ysPht99+u8prtFYCAMBYnhYO2+12ZWdn69SpU0aXAjQZwmF4pWHDhkkSrSUuUv7h+GLlq8PWVXX7V3deAAA8RX5+vgIDA/Xmm29WeY3WSgAAGCsiIsLjwmFJDV6fAGiOCIfhldq1a6c+ffoQDl+kfJX2i9V3EK5u/+rOCwCAp3A6nWrRogWtlQAA8EA2m81jFqSTpF69esnPz49wGKZCOAyv5XA4CIcvUt2s3+TkZJWVldXp+LKyMiUnJ1fZXr7CLAAAnsjpdCogIKDKdlorAQBgvPK2Ei6Xy+hSJEkBAQHq2bMnfYdhKoTD8FoOh0O7d+/W8ePHjS7FI8TFxalVq1aVtu3bt0+rVq2q0/ErV67U/v37K22zWq2Ki4tzW40AALhb+czhS9FaCQAA49lsNp07d055eXlGl1LBbrcTDsNUCIfhtRwOhyRp8+bNBlfiGUJCQjR9+vQq22fOnKnDhw9f9tjDhw/r4YcfrrJ9+vTpCgkJcVeJAAC4XX5+voKDg6tsp7USAADGK//y1dP6Du/atctjZjMDjY1wGF4rKipKkZGRtJa4yIMPPlhl28GDBzV48GCtWLGiSouJsrIyLV++XIMGDdLBgwfrdD4AADyJ0+lU69atq2yntRIAAMaLiIiQ5FnhcExMjE6cOKGjR48aXQrQJPyMLgBoTPQdrqx3796aPHmyli5dWml7VlaWbrnlFkVHR2vChAkVfZ+Sk5OrtJIoN3nyZPXq1aspygYAoMGcTqeioqKUkZFRaVG68tZK48ePr/UctFYCAKBxlH/R6kmL0tntdklSWlqaOnbsaHA1QONj5jC8msPh0M6dO3XmzBmjS/EYr776asVgd6l9+/bppZde0v/3//1/eumll2oMhu12u1599dXGLBMAALfIz89XmzZtaK0EAIAHatGihcLCwjxq5nC3bt3UokUL+g7DNAiH4dUcDodKS0v1+eefG12Kx7BarUpJSakxIK6N3W5XSkqKrFarmysDAMD9nE6nQkNDaa0EAICHKv/lqqfw9fVV3759lZ6ebnQpQJMgHIZX69Onj8LCwmgtcYmIiAht3rxZkydPrtdxkydP1ubNmyv6QgEA4OmcTqdatWpV0VrpUuWtlXr06KHZs2drzpw5mj17trp3765bb7212mCY1koAALiPp4XD0oVJUcwchlnQcxhezWKxaNiwYYTD1bBarVqyZIkyMjL0yiuvKCkpSadPn652v+nTp+vBBx/kgzAAoNnJz89XaGiopAutlXbv3l3th73y1kq1obUSAADuFRER4XGzdO12uz744AO5XC5ZLBajywEaFTOH4fUcDoc+//xzFRUVGV2KR+rdu7fmzp2r7Oxs+fn5KTIyUgsWLFBSUpJWr16t7OxszZ07l2AYANDslJWVqaCgoCIcprUSAACex2azedSCdNKFMd/pdOrQoUNGlwI0OsJheD2Hw6GzZ89q586dRpfi0UJCQlRaWqqYmBjNnDlT06ZN00033cRiOwCAZqt8QdpWrVpVbKO1EgAAnsVmsyk3N7dK/38jxcTESBKtJWAKhMPwetdee62Cg4O1adMmo0vxaMePH5fL5VJkZKTRpQAA4Bb5+fmSVDFzuFx5a6Xdu3dr1qxZNc4EtlqtmjVrljIyMrRkyRJmDAMA0AhsNptKS0t17Ngxo0upEBkZqZYtWxIOwxQIh+H1/P39NWTIEPoO1+Kbb76RJHXr1s3gSgAAcA+n0ympajhc7uLWSqGhobJarbRWAgCgidlsNknyqEXpLBYLi9LBNFiQDqbgcDg0b948lZWVyceH70Sqk5GRIUnq06ePwZUAAOAe5eHwxW0lqhMSEqLi4mL16NFDM2fObIrSAADAf5W3bMrJydG1115rcDX/Y7fbaU8JUyAlgyk4HA6dOnXK41ZA9SSZmZmSpNjYWIMrAQDAPWpqK1Gd8+fPq2PHjo1dEgAAuESHDh3k4+PjUTOHpQvh8LfffqvS0lKjSwEaFeEwTGHw4MHy8/OjtcRlHDhwQJJ01VVXGVsIAABuUltbiXL5+flyuVyMgQAAGMDPz08dO3ZUdna20aVUYrfbde7cOe3bt8/oUoBGRTgMUwgODlb//v0Jhy8jJydHfn5+tN0AAHiNuobDu3btkkTffQAAjGKz2Txy5rAk+g7D65ECwTQcDoc+++wzuVwuo0vxSMeOHVNwcLDRZQAA4Db5+fkKCAhQixYtLrvf7t27JYmF5wAAMIgnhsMdOnRQWFgY4TC8HuEwTGP48OHKzs6uaJ+AyvLy8mS1Wo0uAwAAt3E6nXXqN/zdd99Jou8+AABGiYiI8Lhw2GKxyG63Ew7D6xEOwzTi4uIkidYSNSgoKFC7du2MLgMAALdxOp1q1apVrfuVf3Hco0ePRq4IAABUxxNnDksiHIYpEA7DNNq2bSu73U44XIOioiJ16tTJ6DIAAHCb/Pz8Os0czs7Olq+vL333AQAwiM1m09GjR1VcXGx0KZXY7XZ99913KioqMroUoNHwBAxTKe87jMqOHj0qSYqKijK4EgAA3KeubSWOHj2qoKCgJqgIAABUx2azyeVy6fDhw0aXUondbldJSUlFCyrAGxEOw1QcDof27NlTEYbigvJV2rt3725wJQAAuE9d20qcOnWqTiEyAABoHDabTZI8rrVETEyMJNFaAl6NcBim4nA4JEmbN282uBLPUr5Ke+/evQ2uBAAA96lrWwn67gMAYKyIiAhJnhcOt2nTRhEREYTD8GqEwzCVzp07q0uXLrSWuERmZqYkVmkHAHiXuraVOH/+PH33AQAwUFhYmPz9/T0uHJYuzB4mHIY3IxyG6TgcDm3atMnoMjxKVlaWpAvhOQAA3qIubSXy8/PlcrkYAwEAMJDFYpHNZlN2drbRpVRht9sJh+HVCIdhOg6HQ1999ZXy8/ONLsVj5OTkyN/fn1XaAQBepS5tJcr77nfr1q0pSgIAADWw2WweOXPYbrdr3759KiwsNLoUoFGQBMF0HA6HysrKtHXrVqNL8RjHjh1jlXYAgNepS1uJb7/9VhJ99wEAMJonh8Mul6tirR7A2xAOw3R69eql9u3b03f4Inl5ebJarUaXAQCA27hcLp05c6bWthLlffftdntTlAUAAGoQERHhkeFw3759JYnWEvBahMMwHYvFomHDhhEOX6SwsFDt27c3ugwAANymsLBQZWVltc4c3r9/vySpR48eTVEWAACogafOHA4JCVF0dDThMLwW4TBMyeFwaNu2bTp//rzRpXiEoqIiVmkHAHiV8rUFaguHc3Jy5OvrS999AAAMZrPZdOrUKZ09e9boUqpgUTp4M56CYUoOh0Pnz5/Xl19+aXQphjty5IgkKSoqyuBKAABwH6fTKan2cPjo0aP03QcAwAPYbDZJ8sjZwzExMYTD8FqEwzCla665Ri1btqS1hP63Snv37t0NrgQAAPcpD4dr6zl86tSpWvcBAACNLyIiQpJnhsN2u10//PCD8vLyjC4FcDvCYZiSn5+fhg4dSjgsVay4yirtAABvUte2EgUFBQoLC2uKkgAAwGV48szh8oVr09PTDa4EcD/CYZiWw+FQamqqSktLjS7FUOWrtPfr18/gSgAAcJ+6tpU4f/48ffcBAPAAoaGhCgkJ8chwuFevXvL19SUchlciHIZpORwOnT592vR9g7KysiT971taAAC8QV3aSuTn58vlcikyMrKpygIAADWwWCyy2WzKzs42upQqWrRooZ49e5o+P4B3IhyGaQ0cOFD+/v6mby2Rk5Mjf39/VmkHAHiV/Px8+fr6KjAwsMZ9yvvud+3atanKAgAAl2Gz2Txy5rB0obUE4TC8EWkQTCsoKEgDBgwwfTh87NgxBQcHG10GAABu5XQ6FRoaKovFUuM+5T8Npe8+AACeISIignAYaGKEwzA1h8Ohzz77TC6Xy+hSDHP69GlZrVajywAAwK2cTudlW0pI9N0HAMDTePLM4ZiYGB07dkxHjx41uhTArQiHYWoOh0O5ubnau3ev0aUYprCwUO3atTO6DAAA3Co/P7/WxegOHDggSerWrVsTVAQAAGpTHg574gQuu90uScwehtchHIapxcXFyWKxmLq1RFFRkcLDw40uAwAAtypvK3E52dnZ8vX1pe8+AAAewmazqaCgQPn5+UaXUkW3bt3UokULwmF4HZ6EYWqtW7dWbGysacPhw4cPS5KioqIMrgQAAPeqS1uJY8eOKSgoqIkqAgAAtbHZbJLkka0l/Pz81KdPn4o1CwBvQTgM0yvvO2xG5au09+jRw+BKAABwr7q0lTh16lStATIAAGg6ERERkjwzHJZYlA7eiXAYpudwOPT9999XzKI1k2+//VaS1KtXL4MrAQDAverSVuLMmTMKCwtroooAAEBtylseeno47Ik9kYGGIhyG6TkcDkky5ezh77//XpJ09dVXG1wJAADuVZe2EkVFRerUqVMTVQQAAGoTFBSkNm3aeHQ4nJ+frx9++MHoUgC3IRyG6dlsNkVHR5syHM7KypL0v75OAAB4i9raSuTn58vlcikyMrIJqwIAALWx2WzKzs42uoxqxcTESBKtJeBVCIcBScOHDzdlOJyTkyN/f3+jywAAwO1qayvxzTffSLqw8jgAAPAcNpvNY2cOR0ZGqmXLloTD8Cp+RhcAeAKHw6E33nhDp0+fltVqNbqcJnP8+HEFBwcbXQYAAG7lcrlqbStR3ne/Z8+eTVUWAACog4iICO3Zs8foMqrl4+Oj3r17a82aNWrfvn3Fl9E2m01xcXEKCQkxukSg3giHAV0Ih10ul7Zs2aKxY8caXU6TycvLU+vWrY0uAwAAtzp37pxKSkouO3M4MzNTktSvX7+mKgsAANSBzWbTp59+anQZVWRkZGjhwoX6+uuvVVxcrHXr1lV63Wq1atq0aZoxYwaLvqNZoa0EIKl79+7q2LGj6VpLFBYWql27dkaXAQCAWzmdTkm6bDh84MABSbSVAADA05S3lXC5XEaXIunCpKopU6aoT58+mj9/voqLi6vd7/Tp05o/f7569+6tKVOm6PTp001cKdAwhMOAJIvFIofDYbpwuLi4WOHh4UaXAQCAW5WHw5drK5GdnS1fX1/5+PA4DACAJ7HZbCouLtbx48eNLkXZ2dkaNmyYli5dWq/jli5dqmHDhnnswnrAxXgaBv7L4XDoiy++0Llz54wupUmUN/jv0qWLsYUAAOBm+fn5ki4/c/jo0aMKCgpqqpIAAEAd2Ww2STJ8Ubq8vDyNGTNG6enpDTo+LS1NCQkJzCCGxyMcBv7L4XCoqKhI27dvN7qUJrFr1y5J/JwWAOB96tJWIi8v77IziwEAgDEiIiIkGR8OP/DAAzUGw9HR0Zo9e7bmzJmj2bNnKzo6utr90tLSdP/99zdmmcAVIxwG/qtfv35q1aqVNm3aZHQpTWL37t2SpD59+hhcCQAA7lWXthJnzpxRWFhYU5UEAADqqGPHjrJYLIaGwxkZGdW2koiKitKKFSuUmZmpF198UY899phefPFFZWZmavny5YqMjKxyzNKlS7Vnz56mKBtoEMJh4L98fX01dOhQ0/QdLl+lPTY21uBKAABwr7q0lSgqKqLvPgAAHsjf318dOnQwNBxeuHBhlW1RUVH6/PPPlZiYWGXNAh8fH40fP17btm2rNiCu7nyApyAcBi7icDi0ZcsWlZaWGl1Kozt48KCk//VzAgDAWzidTlksFoWEhFT7en5+vlwul6666qomrgwAANSFzWYzbDG3goICJSUlVdm+YMECderU6bLHdurUSQsWLKiyPSkpSQUFBe4qEXArwmHgIg6HQ06nU19//bXRpTS63Nxc+fv7G10GAABu53Q6FRoaKovFUu3r33zzjST67gMA4KlsNpthM4dTU1MrfoVULjo6WuPGjavT8YmJieratWulbadPn1ZqaqrbagTciXAYuMiAAQMUEBBgitYSx44dq3FGFQAAzVl5OFyT8sVlevfu3VQlAQCAeoiIiDAsHK7uuhMnTqzSSqImPj4+mjhxYpXtubm5V1wb0BgIh4GLBAYGauDAgaYIh0+fPi2r1Wp0GQAAuF1+fv5lw+Hvv/9ekmS325uqJAAAUA9GzhwuX9j2YvVtx1jd/tWdF/AEhMPAJRwOhz777DO5XC6jS2lUhYWFateundFlAADgdrXNHN6/f78k2koAAOCpbDabjhw5opKSkia/dnXPEPUNqqvb/3LPJoCRCIeBSwwfPlxHjx5VZmam0aU0GpfLpeLiYkVERBhdCgAAbud0OtWqVasaX8/JyZGfn1+dfx4KAACals1mU1lZmY4cOWLItS+VnJyssrKyOh1fVlam5OTkKtvDw8OvuDagMfBEDFxi6NCh8vHx8erWEuXfYkZFRRlcCQAA7ldbW4mjR48qMDCwCSsCAAD1UR7QGtFaIi4ursqXzPv27dOqVavqdPzKlSsrfqVUzmq1Ki4uzm01Au5EOAxcolWrVrr66qu9OhxmlXYAgDerra3EqVOn6LsPAIAHK/+VqxHhcEhIiKZPn15l+8yZM3X48OHLHnv48GE9/PDDVbZPnz6dBeHhsQiHgWqU9x32Vrt375Yk9e3b1+BKAABwv9raShQUFCgsLKwJKwIAAPXRrl07+fn5GbYo3YMPPlhl28GDBzV48GCtWLGiSouJsrIyLV++XIMGDdLBgwfrdD7AU/gZXQDgiRwOh+bPn6+cnJx6r0raHOzdu1eSFBsba3AlAAC4X21tJYqKitSpU6cmrAgAANSHj4+PwsPDDQuHe/furcmTJ2vp0qWVtmdlZemWW25RdHS0JkyYIJvNppycHCUnJ1dpJVFu8uTJ6tWrV1OUDTQI4TBQDYfDIUn67LPP9KMf/cjgatwvKytLkvhgDADwSpdrK5GXlyeXy6XIyMgmrgoAANSHzWZTdna2Ydd/9dVXtXv3bqWlpVV5bd++fXrppZdqPYfdbterr77aGOUBbkNbCaAaHTt2VI8ePby2tURubq4CAgKMLgMAgEZxubYS5R/woqOjm7IkAABQT+Wzco1itVqVkpIiu93eoOPtdrtSUlJY5wAej3AYqIE39x0+duyYgoODjS4DAAC3Kyoq0vnz52ucOZyeni7pws9FAQCA54qIiDA0HC6vYfPmzZo8eXK9jps8ebI2b95csbAe4MkIh4EaOBwO7dq1S6dOnTK6FLfLz89X69atjS4DAAC3czqdklRjOJyZmSlJ6tevX5PVBAAA6s/omcPlrFarlixZot27d2vWrFny86u+Q6vVatWsWbOUkZGhJUuWMGMYzQY9h4EaOBwOuVwupaamKjEx0ehy3KqwsFA9evQwugwAANyuPByuqa3EgQMHJEldu3ZtqpIAAEAD2Gw2nThxQufPn1eLFi2MLke9e/fW3LlztXz5cuXm5uqVV16pWOcgPDxccXFxCgkJMbpMoN4Ih4EaREdHKzw8XJ999plXhcNlZWUqLi7m5y0AAK+Un58vqeaZw9nZ2fLz85OPDz+gAwDAk9lsNklSTk6OR32pe+LECXXq1EnTpk0zuhTALXgqBmpgsVi8su9w+c9yoqKiDK4EAAD3q62txLFjxxQUFNSUJQEAgAa4OBz2JGfOnNFVV11ldBmA2xAOA5fhcDj05Zdf6uzZs0aX4jbffPONJKl79+4GVwIAgPvV1lbi1KlTNb4GAAA8R/mvXT0pHD516pTKysrUs2dPo0sB3IZwGLgMh8Oh4uJibdu2zehS3Gb37t2SpL59+xpcCQAA7ldbW4mCggKFhYU1ZUkAAKABrFargoKCPCocTk1NlSRdffXVBlcCuA/hMHAZdrtdVqvVq1pLfP/995Kk2NhYgysBAMD9ymcOt2zZstrXi4qKFB4e3pQlAQCABrBYLLLZbB4VDn/55ZeSpMGDBxtcCeA+hMPAZfj6+mrYsGFeFQ4fPHhQktShQweDKwEAwP2cTqdCQkLk6+tb5bW8vDy5XC76BAIA0EzYbDZlZ2cbXUaFtLQ0SdK1115rcCWA+xAOA7VwOBzaunWrSkpKjC7FLXJzcxUQEGB0GQAANIr8/PwaW0qU993v1q1bU5YEAAAayNNmDu/bt08BAQHy8/MzuhTAbQiHgVo4HA6dOXNGX331ldGluMXx48cVEhJidBkAADQKp9NZYzhc3ne/V69eTVkSAABooIiICI8Kh3Nzc2W1Wo0uA3ArwmGgFtdff70CAwO9prXE6dOnGcwAAF7L6XSqVatW1b723XffSZL69evXlCUBAIAG8rSZw6dOnVKnTp2MLgNwK8JhoBYBAQEaNGiQ14TDhYWFat++vdFlAADQKC7XViIrK0uS1LVr16YsCQAANJDNZpPT6axYcNZIZWVlOn/+vKKjo40uBXArwmGgDhwOhzZv3iyXy2V0KVekrKxMJSUlioiIMLoUAAAaxeXaSmRnZ8vPz08+PjwCAwDQHNhsNknyiNnD5YvR9e3b1+BKAPfiyRioA4fDoWPHjmnPnj1Gl3JFfvjhB0lSVFSUwZUAANA4LtdW4ujRowoKCmriigAAQEN5Uji8detWSVL//v0NrgRwL8JhoA6GDBkiHx8fbdq0yehSrkj5Ku3du3c3uBIAABrH5dpK5OXl1RgcAwAAz+NJ4XD5IvUOh8PYQgA3IxwG6iA0NFTXXntts+87XL5KOz+DAQB4q8u1lSgoKFBYWFgTVwQAABoqJCREVqvVI8LhPXv2yMfHRx06dDC6FMCtCIeBOnI4HM0+HN63b58kVmkHAHivy7WVKCoqUnh4eBNXBAAAroTNZvOIcPjgwYMKDg42ugzA7QiHgTpyOBzKysrSoUOHjC6lwcpXaW/Xrp3BlQAA0Dhqmjmcl5cnl8ulyMhIA6oCAAANZbPZlJ2dbXQZOnbsGJ+l4ZUIh4E6GjZsmCQ169nDubm5CggIMLoMAAAaRUlJiQoLC6sNh8v77kdHRzd1WQAA4Ap4yszhM2fO6KqrrjK6DMDtCIeBOurQoYN69erVrMPh48ePKyQkxOgyAABoFGfOnJGkasPh9PR0SVKfPn2atCYAAHBlIiIiDA+HT548qbKyMvXs2dPQOoDGQDgM1ENz7zucn5+v1q1bG10GAACNwul0SlK1PYe///57SZLdbm/SmgAAwJUpnznscrkMq2HLli2SpKuvvtqwGoDGQjgM1MPw4cOVnp6uEydOGF1KgxQWFqp9+/ZGlwEAQKPIz8+XVP3M4QMHDkiSunbt2pQlAQCAK2Sz2XT+/HmdOnXKsBq+/PJLSdKQIUMMqwFoLITDQD04HA5JUmpqqsGV1F9ZWZlKSkpks9mMLgUAgEZRPnO4unA4JydHfn5+8vHh8RcAgOak/DOskYvSpaWlSZKuueYaw2oAGgtPx0A9REVFqXPnzs2ytcShQ4ckSV26dDG2EAAAGsnl2kocPXpUQUFBTV0SAAC4QuXhsJF9h/ft26eAgAD5+fkZVgPQWAiHgXqwWCzNtu/w119/LUnq0aOHwZUAANA4LtdWIi8vr9rQGAAAeLbw8HBJxobDOTk5slqthl0faEyEw0A9ORz/P3t3Hh9lee///z2TlQwhEMKSSSAQdpIAAQRkMlBqFShowApHcQFbbatF4KjdTuvvtD12s+qX5RxtD6eVumABWxBFwdpaaAIIsicQQAJJSMISQpIhgSRk5vcHJiUkkG1m7knm9Xw8fJyH99z3fX2GHrxm3vc1n8uuPXv2qLy83OhSWiQrK0uSNHz4cIMrAQDAM27VVqK8vFxRUVHeLgkAALRRcHCwevToYWg4XFJSot69exs2PuBJhMNAC9ntdl29elWffvqp0aW0SHZ2tiRpxIgRBlcCAIBnOBwOhYaGKigoqMFrVVVVfKkDAKCdslqthoXDTqdTlZWVio+PN2R8wNMIh4EWGj58uLp169buWkvk5OTIZDIpMjLS6FIAAPCIsrKyRlcNFxcXy+VyqW/fvgZUBQAA2spqtRq2IV3tZnQJCQmGjA94GuEw0EJms1kpKSnatm2b0aW0yJkzZxQcHGx0GQAAeIzD4Wg0HK79UjdgwABvlwQAANzAyJXDO3bskCSNHTvWkPEBTyMcBlrBbrdr586dqq6uNrqUZisqKpLFYjG6DAAAPMbhcDS66VxmZqYkaejQod4uCQAAuEFMTIxh4fD+/fslSTabzZDxAU8jHAZawW63q6KiQnv37jW6lGYrLS1V165djS4DAACPuVlbiePHj0ui7z4AAO2V1WrVmTNnVFNT4/Wxs7KyZDab1bNnT6+PDXgD4TDQCqNHj1anTp3aVd/hy5cvq0ePHkaXAQCAx9ysrUROTo4kKS4uztslAQAAN7BaraqpqdH58+e9PnZubq7CwsK8Pi7gLYTDQCsEBwdrwoQJ7SYcdjqdunr1qqxWq9GlAADgMTdrK5Gfn6/AwECZzXz0BQCgPar9LmvEpnRFRUWKiory+riAt/AJGWglu92utLQ0OZ1Oo0tpUu2KqX79+hlbCAAAHnSzthLnz59Xp06dDKgIAAC4Q204bETf4UuXLqlPnz5eHxfwFsJhoJXsdruKi4t15MgRo0tp0sGDByVJgwYNMrgSAAA852ZtJUpKShpdUQwAANqHnj17KiAgwOvhcHFxsZxOpwYPHuzVcQFvIhwGWun2229XYGBgu2gtkZWVJUkaPny4wZUAAOA5N2srUV5ezs9BAQBoxwICAtS7d2+vh8Pbt2+XJI0aNcqr4wLeRDgMtJLFYtHo0aPbRTh84sQJSezSDgDo2G7WVqKqqkrR0dEGVAQAANzFarV6PRz+7LPPJEkTJkzw6riANxEOA21gt9vbRTicm5srk8mkbt26GV0KAAAe4XQ6denSpQbhcHFxsVwuF70CAQBo56xWq9c3pMvIyJDEymF0bITDQBvY7Xbl5eXVbfjmq86cOaPg4GCjywAAwGPKy8slqUFbidq++wMHDvR6TQAAwH2MWDl84sQJBQcHKzAw0KvjAt5EOAy0QUpKiiT5/OrhoqIiWSwWo8sAAMBjysrKJKnByuHajWOHDBni9ZoAAID7xMTEeD0cLiwsVEREhFfHBLyNcBhog+7du2v48OE+Hw6XlZWpa9euRpcBAIDHOBwOSQ3D4ePHj0ui7z4AAO2d1WrV+fPnVVVV5bUxS0pK1Lt3b6+NBxiBcBhoo/bQd/jy5cvq2bOn0WUAAOAxteHwjW0lTp06JUmKi4vzdkkAAMCNrFarpGttE73B6XSqsrJSAwYM8Mp4gFEIh4E2stvtOnLkiM6fP290KY1yOp26evWqYmJijC4FAACPuVlbiYKCAgUGBsps5mMvAADtWW047K1N6Wo3oxs+fLhXxgOMwqdkoI3sdrskKS0tzeBKGnfy5ElJrJgCAHRsN2srcf78eXXq1MmIkgAAgBvVhsPe6ju8fft2SdLYsWO9Mh5gFMJhoI369u2rvn37+mxriUOHDkmSBg8ebHAlAAB4zs3aSpSUlLCRDAAAHUBkZKRCQkK8Fg7v379fkmSz2bwyHmAUwmHADXy573BWVpYkfgoDAOjYHA6HgoKCFBISUu94eXm5unfvblBVAADAXUwmk6xWq9fC4aNHj8psNrN/Dzo8wmHADex2u/bt26dLly4ZXUoDJ06ckCQlJSUZXAkAAJ5TVlbWoKWEJFVVVSk6OtqAigAAgLt5MxzOzc1VWFiYV8YCjEQ4DLiB3W5XTU2NduzYYXQpDeTm5spkMqlr165GlwIAgMc4HI4G4XBxcbFcLpf69u1rUFUAAMCdrFar1zakKyoqUlRUlFfGAoxEOAy4wbBhw9S9e3efbC1x5swZBQcHG10GAAAe5XA4GvQbPnjwoCRpwIABRpQEAADcLCYmxmsrhy9dusQDZvgFwmHADUwmk1JSUnwyHL5w4YIsFovRZQAA4FGNtZU4fPiwJGno0KFGlAQAANzMW20liouL5XQ62dgdfoFwGHCTSZMmaefOnaqqqjK6lHpKS0vVrVs3o8sAAMCjGmsr8fnnn0ui7z4AAB2F1WpVaWmpysvLPTpOenq6JGnkyJEeHQfwBYTDgJvY7XZduXJFe/bsMbqUei5fvszuqgCADq+xthKnTp2SJMXFxRlQEQAAcDer1SpJKiws9Og4u3fvliRNmDDBo+MAvoBwGHCT5ORkWSwWn2ot4XQ6VVNTUzeBAgDQUTXWVqKgoECBgYEym/nICwBAR1D73dbTm9JlZmZKkkaNGuXRcQBfwCdlwE0CAwN1++23+1Q4fOLECUlS//79Da4EAADPaqytxPnz59WpUyeDKgIAAO5WGw57uu9wdna2goODFRgY6NFxAF9AOAy4kd1uV3p6upxOp9GlSJIOHTokSRo0aJDBlQAA4FmNtZW4ePGiIiIiDKoIAAC4W3h4uMLDwz0eDhcWFvIZAn6DcBhwI7vdrosXL9b9BMVoR48elSQNHz7c4EoAAPCsxtpKlJeXKyoqyqCKAACAJ1itVo+HwyUlJYqOjvboGICvIBwG3Gj8+PEKCgrymdYStW0lRowYYXAlAAB4jsvlarStRHV1tXr37m1QVQAAwBM8HQ47nU5VVlYqPj7eY2MAvoRwGHCjsLAwjRkzRtu2bTO6FElSXl6eTCZTg5/ZAgDQkVy+fFlOp7PefFdcXCyXy6W4uDgDKwMAAO5mtVo9uiFdbXtGfoELf0E4DLiZ3W7XP//5T7lcLqNLUWFhoYKDg40uAwAAjyorK5OkeiuHDx48KEms+gEAoIOJiYnx6Mrh7du3S5LGjh3rsTEAX0I4DLiZ3W5XQUGBTp48aXQpunDhgjp37mx0GQAAeJTD4ZBUPxw+fPiwJGno0KGG1AQAADyjtq2EpxZkHThwQJJks9k8cn/A1xAOA25WO4H4Qt/hsrIydevWzegyAADwqNpw+Pq2EsePH5ckjRw50pCaAACAZ1itVl2+fFmlpaUeuf/Ro0dlNpvVs2dPj9wf8DWEw4CbRUZGKjEx0SfC4cuXLzOhAQA6vMbaSuTk5EiS+vTpY0hNAADAM6xWqyR5rLVEbm6uLBaLR+4N+CLCYcADavsOG8npdKqmpqZu4gQAoKNqrK1Efn6+AgMDZTbzcRcAgI6k9juupzalKyoqUlRUlEfuDfgiPi0DHmC323Xs2DGdPXvWsBpqf07bv39/w2oAAMAbGmsrcf78eYWFhRlVEgAA8BBPrxy+dOkSvzyCXyEcBjzAbrdLktLS0gyrISMjQ5I0aNAgw2oAAMAbysrKZDab1alTp7pjJSUl9cJiAADQMYSEhKh79+4eCYcvXLggp9OpwYMHu/3egK8iHAY8IDY2Vv379ze0tURWVpYkafjw4YbVAACANzgcDoWHh8tkMtUdKy8v5yehAAB0UFar1SPhcHp6uiQ2tIV/IRwGPMTovsMnTpyQJCUlJRlWAwAA3uBwOBqsEq6qqlJ0dLRBFQEAAE/yVDj82WefSZImTJjg9nsDvopwGPAQu92u/fv31+2g7m15eXkymUz8pBYA0OGVlZXV24yuqKhIktS3b1+jSgIAAB5ktVo9siFdZmamJGnUqFFuvzfgqwiHAQ+x2+1yOp3asWOHIeOfPXtWISEhhowNAIA31baVqHXw4EFJ0oABA4wqCQAAeFBMTIxHVg5nZ2crODhYgYGBbr834KsIhwEPGTx4sHr27GlYa4mioiJZLBZDxgYAwJtubCtR23d/6NChRpUEAAA8yGq1qrCwUE6n0633LSwsVNeuXd16T8DXEQ4DHmIymZSSkmJYOOxwONStWzdDxgYAwJtubCtx/PhxSdKIESOMKgkAAHiQ1WrV1atX61pJuUtJSYl69+7t1nsCvo5wGPAgu92uTz/9VJWVlV4f+/Lly+rZs6fXxwUAwNtubCtx6tQpSVKfPn0MqggAAHiS1WqVJLe2lnA6naqsrFR8fLzb7gm0B4TDgAfZ7XZVVlZq9+7dXh23pqZGNTU1iomJ8eq4AAAY4ca2EgUFBQoMDJTZzEddAAA6otpw2J2b0tXuWTB8+HC33RNoD/jEDHjQyJEj1blzZ6+3lqj9OW3//v29Oi4AAEa4ceXw+fPnFRYWZmBFAADAk3r16iWz2ezWlcO1m8mPHTvWbfcE2gPCYcCDAgMDNXHiRK+HwxkZGZKubYoHAEBHd2PP4ZKSknoriQEAQMcSGBioXr16uTUcPnDggCQpJSXFbfcE2gPCYcDD7Ha70tPTVVNT47Uxa3dp5+cwAAB/cGNbifLyckVFRRlYEQAA8DSr1erWcPjo0aMym83q0aOH2+4JtAeEw4CH2e12lZWV6dChQ14bMzs7W5KUlJTktTEBADBCZWWlqqur660crqqqUnR0tIFVAQAAT3N3OJybmyuLxeK2+wHtBeEw4GHjxo1TUFCQV1tL5ObmymQyqXPnzl4bEwAAI5SVlUlSXThcVFQkSerbt69hNQEAAM+zWq1u3ZCuqKiIXx7BLxEOAx7WqVMnjRs3zqvh8NmzZxUSEuK18QAAMIrD4ZD0r3C4dqfxAQMGGFYTAADwvJiYGLeuHL506ZL69OnjtvsB7QXhMOAFdrtd//znP+Vyubwy3oULF1g1DADwC7XhcG3P4cOHD0uShg0bZlhNAADA86xWq86dO6fq6uo236uoqEhOp5NN3eGXCIcBL7Db7Tpz5oxOnDjhlfHKysrUrVs3r4wFAICRbmwrUTvX0ncfAICOzWq1yuVy6ezZs22+1/bt2yVJo0aNavO9gPaGcBjwgokTJ8pkMnmttcSVK1fUs2dPr4wFAICRbmwrcerUKUniZ6EAAHRwVqtVktzSWuKzzz6TJE2YMKHN9wLaG8JhwAu6du2qESNGeCUcvnr1qmpqahQbG+vxsQAAMNqNbSUKCgoUGBgos5mPuQAAdGS14bA7NqXLyMiQJI0cObLN9wLaGz41A15S23fY044dOyZJ6tevn8fHAgDAaLVtJSwWiyTp/PnzCgsLM7IkAADgBVFRUQoKCnLLyuGTJ08qODhYgYGBbqgMaF8IhwEvsdvt+vzzz1VYWOjRcWqfeNJIHwDgDxwOhzp37ly3UrikpEQREREGVwUAADzNZDLJarW6JRwuKChQ165d214U0A4RDgNeYrfbJcnjq4ezsrIkSQkJCR4dBwAAX+BwOOpaSkhSeXm5unfvbmBFAADAW9wVDpeWlqp3795uqAhofwiHAS+Jjo7WgAEDPB4Onzx5UpKUmJjo0XEAAPAFZWVldZvRSVJVVZWio6MNrAgAAHiLO8Jhp9OpyspKxcfHu6kqoH0hHAa8yBt9h/Py8mQymep6LwIA0JE5HI66cPj8+fOSpLi4OCNLAgAAXmK1Wtu8Id3Bgwcl8etb+C/CYcCL7Ha7Dh48qJKSEo+NcebMGYWEhHjs/gAA+JLr20rUfrkbMGCAkSUBAAAviYmJafPK4R07dkiSxo4d646SgHaHcBjwIrvdLpfLpe3bt3tsjAsXLtT7eS0AAB3Z9W0ljhw5IkkaOnSokSUBAAAvsVqtunjxoi5fvtzqe+zfv1+SlJKS4qaqgPaFcBjwooEDB6pXr14ebS3hcDjUrVs3j90fAABfcn1biePHj0uSRowYYWRJAADAS6xWqySpsLCw1fc4evSozGazoqKi3FUW0K4QDgNeZDKZPN53+MqVK+rZs6fH7g8AgC+5vq1Ebm6uJCk2NtbIkgAAgJfUhsNtaS2Rl5fHnj3wa4TDgJdNmjRJu3fv1pUrV9x+76tXr6qmpoYvxQAAv3F9W4n8/HwFBgbKbOYjLgAA/qA2HG7LpnTnz59n1TD8Gp+cAS+z2+2qqqrSrl273H7vrKwsSVK/fv3cfm8AAHzR9W0lzp8/r7CwMIMrAgAA3tKlSxdZLJY2rRwuLy9Xnz593FgV0L4QDgNelpSUpC5duniktURmZqYkafDgwW6/NwAAvuj6thKlpaWKiIgwuCIAAOAtJpNJVqu11eFwUVGRnE6nhgwZ4ubKgPaDcBjwsoCAANlsNo+Ew7UrhxMTE91+bwAAfE11dbWuXLlSt3K4vLycn4UCAOBn2hIOb9++XZI0cuRId5YEtCuEw4AB7Ha7tm/frpqaGrfeNzs7W5KUkJDg1vsCAOCLHA6HJNWFw1VVVYqOjjayJAAA4GVtCYc/++wzSdLtt9/uzpKAdoVwGDCA3W6Xw+HQgQMH3Hrf06dPy2Qy0W8RAOAXasPhLl266Ny5c5Kkvn37GlkSAADwMqvV2uoN6TIyMiRJI0aMcGdJQLtCOAwY4LbbblNISIjbW0ucOXNGoaGhbr0nAAC+qqysTNK1lcOHDh2SJA0cONDIkgAAgJfFxMSooKBALperxddmZ2crODhYgYGBHqgMaB8IhwEDhISEaNy4cW4Ph4uLi9W5c2e33hMAAF91fVuJw4cPS5KGDh1qZEkAAMDLrFarysvL6z4XtERhYaG6du3q/qKAdoRwGDCI3W7Xtm3bWvV082YcDoe6devmtvsBAODLrm8r8fnnn0uSkpKSjCwJAAB4mdVqlaRW9R0uLS1lvwL4PcJhwCB2u13nz5/XsWPH3HbPy5cvq1evXm67HwAAvuz6thI5OTmSpNjYWCNLAgAAXtbacNjpdKqyslL9+/f3RFlAu0E4DBhk4sSJMpvNbmstUV1dLafTqZiYGLfcDwAAX1e7crhz584qKChQUFCQzGY+3gIA4E9qw+GWbkpXu0F8YmKi22sC2hM+PQMG6dKli0aOHOm2cDgrK0uSFB8f75b7AQDg6xwOh8LCwhQYGKjz58+rU6dORpcEAAC8rFOnTurWrVuLVw7v2LFDkjR27FhPlAW0G4TDgIHsdrvbwuGMjAxJ0uDBg91yPwAAfJ3D4VB4eLgkqaSkRBEREQZXBAAAjGC1WlscDu/fv1+SZLPZPFAR0H4QDgMGstvtOnnyZIt//tKYo0ePSpISEhLafC8AANqDsrKyunC4oqJCUVFRBlcEAACM0Jpw+NixYzKbzXx+gN8jHAYMZLfbJcktq4ezs7Ml0S8JAOA/rl85XFVVxW7jAAD4qdaEw3l5ebJYLB6qCGg/CIcBA/Xq1UuDBw92Szh8+vRpmc1mhYaGuqEyAAB8n8PhUJcuXXTu3DlJUt++fQ2uCAAAGMFqtbb4F7nnz59n1TAgwmHAcO7qO3zmzBmFhIS4oSIAANqH2rYShw4dkiQNHDjQ4IoAAIARYmJiVFBQIJfL1exrysvL1adPHw9WBbQPhMOAwex2uzIyMnTx4sU23ae4uFidO3d2U1UAAPi+2rYShw8fliQNGzbM4IoAAIARrFarqqurdeHChWadX1RUJKfTqSFDhni4MsD3EQ4DBrPb7XK5XEpPT2/TfRwOhyIjI91UFQAAvq+2rcTnn38uSUpKSjK4IgAAYASr1SpJze47vH37dknSqFGjPFUS0G4QDgMG69+/v6xWa5tbS1y5ckW9evVyU1UAAPi+2rYSOTk5kq79pBQAAPiflobDu3fvliRNmDDBYzUB7QXhMGAwk8nU5r7DVVVVcjqdio2NdWNlAAD4ttq2Evn5+QoKCpLZzEdbAAD8Ue/evWUymZq9KV1mZqYkacSIEZ4sC2gX+AQN+AC73a7PPvtMFRUVrbo+KytL0rVVyAAA+IvathJFRUXq1KmT0eUAAACDBAUFqWfPns1eOZydna3g4GAFBgZ6uDLA9xEOAz7Abrerurpan376aauur92lffDgwe4sCwAAn1VTU6Py8nKFh4erpKREERERRpcEAAAMZLVamx0OFxYWqmvXrp4tCGgnCIcBH5CYmKiuXbu2urXEsWPHJEkJCQnuLAsAAJ916dIlSVJ4eLgqKioUFRVlcEUAAMBILQmHS0pKFB0d7eGKgPaBcBjwAWazWTabrdXh8MmTJyURDgMA/IfD4ZAkdenSRVVVVXzBAwDAzzU3HK6pqVFVVZXi4+O9UBXg+wiHAR9ht9u1Y8cOXb16tcXX5uXlyWw2KzQ01AOVAQDge8rKyiRJ1dXVkqS4uDgjywEAAAazWq3N2pDu4MGDklhcBdQiHAZ8hN1uV3l5ufbt29fia8+ePauQkBAPVAUAgG+qXTlcWFgoSRowYICR5QAAAIPFxMTo7NmzTS642rFjhyRp7Nix3igL8HmEw4CPGDt2rEJDQ1vVWqK4uFjh4eEeqAoAAN9UGw7X/nx02LBhRpYDAAAMZrVa5XQ6de7cuVuet3//fkmSzWbzQlWA7yMcBnxEcHCwxo8f36pw2OFwKDIy0gNVAQDgm2rbStT+fHTEiBFGlgMAAAxmtVolqcm+w8eOHZPZbGYzW+ALhMOAD5k0aZLS0tLkcrladN2VK1fUq1cvD1UFAIDvqV05fObMGUn/+kIIAAD8U3PD4dzcXFksFm+UBLQLhMOAD7Hb7SoqKlJWVlazr6mqqpLT6VRsbKwHKwMAwLc4HA6FhITozJkzCgoKktnMx1oAAPxZjx49FBgY2OSmdEVFRawaBq7Dp2jAh9x+++0KCAhoUWuJw4cPS5L69+/vqbIAAPA5ZWVlCg8PV1FRkcLCwowuBwAAGMxsNis6OrrJlcPl5eXq27evl6oCfB/hMOBDOnfurOTk5BaFwxkZGZKkIUOGeKosAAB8jsPhUHh4uEpKShQREWF0OQAAwAdYrdZbhsNFRUVyOp0aPHiwF6sCfBvhMOBj7HZ7i8LhY8eOSZISEhI8VRIAAD7H4XCoS5cuqqio4KehAABAUtPhcHp6uiRp1KhRXqoI8H2Ew4CPsdvtysnJUV5eXrPOz87OliQNHz7ck2UBAOBTattKVFVVKTo62uhyAACAD2gqHP7ss88kSRMmTPBWSYDPIxwGfExKSookNXv18OnTp2U2mxUSEuLJsgAA8CkOh0PBwcGSRN9AAAAgSYqJibnlhnSZmZmSpJEjR3qrJMDnEQ4DPqZHjx4aOnSotm3b1qzzz549q9DQUA9XBQCAb3E4HKqpqZEkDRw40OBqAACAL7Barbpw4YIqKysbfT07O1vBwcEKCAjwcmWA7yIcBnxQS/oOFxcXKzw83MMVAQDgW8rKylRVVSVJGjZsmMHVAAAAX2C1WiVJhYWFjb5eWFiorl27erEiwPcRDgM+yG636/Dhw7pw4UKT5zocDnXr1s0LVQEA4DscDocuX74sSUpKSjK4GgAA4Atqw+Gb9R0uKSlhrwLgBoTDgA+y2+2SpLS0tCbPraysVK9evTxdEgAAPsXhcKiiokLSv74IAgAA/3arcPjq1auqqqpSfHy8t8sCfBrhMOCD4uLiFBsb22RriStXrsjpdKpPnz5eqgwAAN9QGw4HBQXJbOYjLQAAkLp27apOnTo1uindwYMHJUkJCQneLgvwaYFGFwCgIZPJ1Ky+w4cPH5Yk9e/f3xtlAQDgE1wulxwOhwIDAxUWFmZ0OQAAwEeYTCZZrdZGVw7v3LlTkjR27FhvlwX4NJZZAD7Kbrdr7969Ki8vv+k5mZmZkqQhQ4Z4qywAAAxXXl4ul8ulK1euKCIiwuhyAACAD7lZOLx//35Jks1m83JFgG8jHAZ81KRJk3T16tW6p5uNOXr0qCQpMTHRW2UBAGA4h8MhSaqqqlJUVJTB1QAAAF9ys3D46NGjMpvNfHYAbkA4DPioYcOGKTIy8patJU6ePFl3LgAA/qKsrEzStY1l2HEcAABc72bhcF5eniwWiwEVAb6NcBjwUWazWSkpKbcMh0+fPi2z2azg4GAvVgYAgLFqVw5L1zZxBQAAqBUTE9PohnRFRUXq0aOHARUBvo1wGPBhdrtdO3fuVHV1daOvnz17VqGhoV6uCgAAY10fDg8YMMDASgAAgK+xWq1yOBz1Pi9I1/Ys6NOnj0FVAb6LcBjwYXa7XRUVFdq7d2+jr1+8eFHh4eFergoAAGPVtpWQaK0EAADqs1qtkqTCwsK6Y0VFRXI6nRo8eLBRZQE+i3AY8GGjR49WWFjYTVtLOBwORUZGerkqAACMdf1KoBEjRhhYCQAA8DW14fD1fYfT09MlSaNGjTKiJMCnEQ4DPiwoKEgTJky4aThcWVmpXr16ebkqAACM5XA4ZDKZJP3rCyAAAIDUeDi8e/duSdLtt99uSE2ALyMcBnyc3W5XWlqanE5nveNXrlyR0+mkZxIAwO+UlZXJbDYrKCioLiQGAACQJIvFooiIiHqb0mVmZkriF0dAYwiHAR9nt9tVXFysw4cP1zuekZEhSYqPjzeiLAAADFPbViIsLMzgSgAAgC+yWq31Vg6fPHlSISEhCggIMLAqwDcRDgM+bsKECQoMDGzQWqL2yScN9QEA/sbhcMjlcikiIsLoUgAAgA+6MRwuLCzkcwNwE4TDgI+zWCwaPXp0g3D42LFjkqSkpCQjygIAwDBlZWVyuVyKiooyuhQAAOCDbgyHS0pKFB0dbWBFgO8iHAbaAbvdrn/+859yuVx1x06ePClJGjp0qFFlAQBgiNqVw3zJAwAAjbk+HL569aqqqqpoyQjcBOEw0A7Y7XadPn1aOTk5dcdOnz5dtxkPAAD+pKioSJIUFxdncCUAAMAXxcTEKD8/Xy6XSwcPHpQkJSYmGlwV4JsIh4F2ICUlRZLqtZY4e/asQkNDjSoJAADDnDt3TpI0cOBAgysBAAC+yGq1qrKyUhcvXtSOHTskSWPHjjW4KsA3EQ4D7UD37t01fPjweuHwxYsX1aVLFwOrAgDAGBcvXpREayUAANA4q9UqSSooKNCBAwckSRMnTjSyJMBnEQ4D7cSkSZPqhcOXLl1SZGSkgRUBAGCM8vJySdLIkSMNrgQAAPii68Pho0ePymw2s5EtcBOEw0A7YbfblZWVpR/96Ed67LHHdPnyZRUXF+uXv/xl3c9rAQDoqM6dO6df/vKXeuyxx3Tp0iVJ0h//+EfmQAAA0EBAQIAk6fnnn9dnn30ms9nMd2fgJkwul8tldBEAbu2DDz7Qs88+qyNHjtz0nJEjR+qXv/ylpk+f7sXKAADwrA8++ED/8R//UfeT0MYwBwIAAInPDUBrEA4DPiwnJ0cpKSk6ffp0s6+JjY1Venq6+vbt68HKAADwLOZAAADQXHxuAFqPthKAj/rss880ZMiQFk1uknT69GkNHjxYn332mYcqAwDAs5gDAQBAc/G5AWgbVg4DPignJ0dDhgxRZWVlq+8REhKiY8eO8RQUANCuMAcCAIDm4nMD0HaEw4AP6tOnz02fesbHx2v27NmyWq0qKCjQ+vXrlZ2d3ei5sbGxysvL82SpAAC4FXMgAABoLj43AG1HWwnAx3zwwQeNTm5xcXF67733lJV1XDNnvqjo6Kc1c+aLyso6ro0bNzb6lPP06dP68MMPvVE2AABtxhwIAACai88NgHuwchjwMaNGjWqws2pcXJx27typ7dt7a/Fi6fr5LzZWWrZMmjjxjMaPH6/c3NwG99u3b583SgcAoE2YAwEAQHPxuQFwD8JhwIecO3dOvXr1anB848aNqq6+W/fdJ934N9ZkuvZ/33lHCgzcqNTU1AbXnz17Vj179vREyQAAuAVzIAAAaC4+NwDuQ1sJwIf8/ve/b3AsPj5e06bN0OLFDSc36V/HliyRpk+fqf79+zfrvgAA+BLmQAAA0Fx8bgDch3AY8CEnTpxocGz27NlKTzfrJj32JV2b5PLypPR0s2bPnt3g9Zs13QcAwFcwBwIAgObicwPgPoTDgA8pKSlpcMxqtaqwsHnXFxZeO7859wUAwJcwBwIAgObicwPgPoTDgA/p2rVrg2MFBQWKjm7e9dHR185vzn0BAPAlzIEAAKC5+NwAuA/hMOBDBgwY0ODY+vXrZbM5FRv7rwb6NzKZpD59JJvNqfXr1zd4PT4+3t2lAgDgVsyBAACgufjcALiPyeVqrE03ACM0Z8dVqX5zfXZcBQB0BMyBAACgufjcALgPK4cBH9KzZ0+NHDmywfGFCxdq4sQzeucdKSam/muxsdcmt4kTz+ipp55qcO2oUaOY3AAAPo85EAAANBefGwD3IRwGfMwvfvGLBsdyc3M1YcIEBQW9p+xspz75RFq9WvrkE+nECacCAzdq/Pjxys3Nbdb9AADwRcyBAACgufjcALgHbSUAH9SnTx+dPn260dfi4+M1a9YsWa1WFRQUaP369Tp58mSj58bGxiovL8+TpQIA4FbMgQAAoLn43AC0HeEw4INyc3M1ePBgVVZWtvoeISEhOnbsmPr27evGygAA8CzmQAAA0Fx8bgDajrYSgA/q27ev0tLSFBIS0qrrQ0JClJaWxuQGAGh3mAMBAEBz8bkBaDtWDgM+LDc3Vzab7aY/k2lMbGys0tPTmdwAAO0acyAAAGguPjcArcfKYcCH9e3bV3l5edq0aZNGjRp1y3NHjRqlDz74QHl5eUxuAIB2jzkQAAA0F58bgNZj5TDQjpw7d06///3vlZ2drZKSEnXt2lXx8fH6xje+oZ49expdHgAAHsMcCAAAmovPDUDzEQ4DAAAAAAAAgB+irQQAAAAAAAAA+CHCYQAAAAAAAADwQ4TDAAAAAAAAAOCHCIcBAAAAAAAAwA8RDgMAAAAAAACAHyIcBgAAAAAAAAA/RDgMAAAAAAAAAH6IcBgAAAAAAAAA/BDhMAAAAAAAAAD4IcJhAAAAAAAAAPBDhMMAAAAAAAAA4IcIhwEAAAAAAADADxEOAwAAAAAAAIAfIhwGAAAAAAAAAD9EOAwAAAAAAAAAfohwGAAAAAAAAAD8EOEwAAAAAAAAAPghwmEAAAAAAAAA8EOEwwAAAAAAAADghwiHAQAAAAAAAMAPEQ4DAAAAAAAAgB8iHAYAAAAAAAAAP0Q4DAAAAAAAAAB+iHAYAAAAAAAAAPwQ4TAAAAAAAAAA+CHCYQAAAAAAAADwQ4TDAAAAAAAAAOCHCIcBAAAAAAAAwA8RDgMAAAAAAACAHyIcBgAAAAAAAAA/RDgMAAAAAAAAAH6IcBgAAAAAAAAA/BDhMAAAAAAAAAD4IcJhAAAAAAAAAPBDhMMAAAAAAAAA4IcIhwEAAAAAAADADxEOAwAAAAAAAIAfIhwGAAAAAAAAAD9EOAwAAAAAAAAAfohwGAAAAAAAAAD8EOEwAAAAAAAAAPghwmEAAAAAAAAA8EOEwwAAAAAAAADghwiHAQAAAAAAAMAPEQ4DAAAAAAAAgB8iHAYAAAAAAAAAP0Q4DAAAAAAAAAB+iHAYAAAAAAAAAPwQ4TAAAAAAAAAA+CHCYQAAAAAAAADwQ4TDAAAAAAAAAOCHCIcBAAAAAAAAwA8RDgMAAAAAAACAHyIcBgAAAAAAAAA/RDgMAAAAAAAAAH6IcBgAAAAAAAAA/BDhMAAAAAAAAAD4IcJhAAAAAAAAAPBDhMMAAAAAAAAA4IcIhwEAAAAAAADADxEOAwAAAAAAAIAfIhwGAAAAAAAAAD9EOAwAAAAAAAAAfohwGAAAAAAAAAD8EOEwAAAAAAAAAPghwmEAAAAAAAAA8EOEwwAAAAAAAADghwiHAQAAAAAAAMAPEQ4DAAAAAAAAgB8iHAYAAAAAAAAAP0Q4DAAAAAAAAAB+iHAYAAAAAAAAAPwQ4TAAAAAAAAAA+CHCYQAAAAAAAADwQ4TDAAAAAAAAAOCHCIcBAAAAAAAAwA8RDgMAAAAAAACAHyIcBgAAAAAAAAA/RDgMAAAAAAAAAH6IcBgAAAAAAAAA/BDhMAAAAAAAAAD4IcJhAAAAAAAAAPBDhMMAAAAAAAAA4IcIhwEAAAAAAADADxEOAwAAAAAAAIAfIhwGAAAAAAAAAD9EOAwAAAAAAAAAfohwGAAAAAAAAAD8EOEwAAAAAAAAAPghwmEA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gAG6ePGi1q1bp2effVb79+/XG2+80eT4bZmzQ0JC9Pjjj+vOO+9UdHS0cnNztWLFCqWmpmrlypV67LHHmqwfAOA5zNfXGD1f137HffbZZzVlyhT9+c9/Vnl5uX7605/qy1/+sj799NNGg+frx2/LfC1Jzz33nGpqavTTn/60yXMBd2DlMFrljjvuUHZ2tk6ePKkrV64oLS1N06ZN05QpU/TXv/5V0rXJLCQkRCkpKZKkLVu26OrVq3rkkUd09erVun9CQ0M1efJk/eMf/7jpeFu3bpUkzZ07t97x++67r95PRa53zz331Pv32v+A5+TkNPn+xo0bpwMHDujJJ5/Uli1bVFZW1uh5V69e1d/+9rcm79eUm7VkaKpVQ2lpqb71rW/p+9//fqM7tLZl7OaM73Q6JUn/9m//pl//+teaMmWKvvWtb+n3v/+9Pv/88wYbAwAAvI85+xqj52xJ+p//+R89+uijmjRpklJTU/Xmm29q4cKFevPNNxv8/LelYzQ1fnR0tP73f/9Xc+bMUUpKiubNm6dt27YpOTlZP/jBD3T16tUmxwcAeA7z9TVGz9e133FjY2P15z//WVOnTtW9996rzZs3y2w264UXXmj12M0Zf9euXVq6dKl+97vfqVOnTk2OBbgD4TBapfZJ5ccff6y0tDRVV1fry1/+sr7yla/U/Yf8448/ls1mq/sP2tmzZyVJt912m4KCgur9s2bNGhUVFd10vNqna7169ap3PDAwUN27d2/0mhuPh4SESLr2E42m/PCHP9SLL76onTt3avr06erevbvuuOMOffbZZ01e2xK1NTb29LC4uLjRp53X+9GPfqSgoCAtXLhQJSUlKikp0aVLlyRd2yyupKRELpfrluNfuXJFFRUVrRq/tv4bn/hOnTpVJpNJe/fuveX1AADPY852j7bO2TdT+3PcnTt3Njl+W+bsxgQFBenf/u3fdOHCBR0/frzF1wMA3If52j3aOl/XXv+Vr3yl3grm6OhojRw5ssnvuG2dr7/+9a/r3nvv1dixY+u+41+5ckWSVFZWJofDccvrgdYgHEarxMbGavDgwfr444/117/+VWPHjlXXrl11xx13qLCwUJ9++ql27txZrxdSVFSUJOmdd97R7t27G/zz6aef3nS82v9A105+ta5evdqsn2W0VGBgoJ5++mnt3btXxcXFevvtt5WXl6epU6c2+h/51qpd7Xvo0KEGrx06dKjJ1cAZGRk6deqUevfurW7duqlbt266++67JUnz589Xt27dVFpaetPra/sg3Tj+mTNnVFRU1OT4t/o5jaQWt7kAALgfc7Z7tHXOvpnah7hNzZltnbPbOj4AwLOYr92jrfP1rb7julwuj8/XmZmZWrduXd33+27duunXv/61JGnAgAGy2+23vB5oDXoOo9W+8pWvaO3aterTp49mzJghSRo8eLD69u2r/+//+/9UXV1db+KaOnWqAgMDdeLECX3ta19r0ViTJk2SdG0X1usbsr/zzjtt+hlkSEhIk085u3btqvvuu0/5+flasmSJTp06peHDh7d6zOvFxMRo3LhxevPNN/Xss8/WPZncuXOnjh49qiVLltzy+qVLlzZo4L9//379+7//u37yk59o8uTJ6ty5802vnzZtmkJDQ7Vq1SqNHz++7viqVatkMpk0a9asW44/e/Zs/ehHP9KHH36o2bNn1x3/8MMP5XK5GvSZAgAYgzm77do6Z9/M66+/LklNzpltnbMbU11drTVr1igqKkoDBw5s8fUAAPdivm67ts7X48ePV2xsrD766CPV1NTUXV9QUKADBw5o3rx5t7y+rfP1J5980uDYqlWr9Mc//lEbNmxQTEzMLa8HWoNwGK12xx136JVXXlFRUZGWLl1a7/hrr72mbt26acyYMXXH+/Xrp5/97Gf60Y9+pOzsbE2bNk3dunXT2bNntWvXLlkslps2XE9ISNADDzygl156SQEBAfryl7+szMxMvfTSS4qIiGj1apekpCT96U9/0po1axQfH6/Q0FAlJSXp7rvvVmJiosaOHasePXooJydHS5cuVVxcnAYNGlR3fWBgoCZPntymnki//vWvdeedd2rOnDl68sknde7cOf3gBz9QYmKiHn300brzcnJyNGDAAM2fP1+///3vJUmjRo266X0TEhKa3OU1MjJSP/7xj/Xcc88pMjJSd911l3bv3q2f/OQneuyxx+pN0K+//rq+/vWv6w9/+IMeeeQRSdLQoUP1ne98R6+88orCw8M1ffp0HTt2TD/+8Y+VnJzcoH8VAMAYzNnGz9mrV6/WX/7yF82YMUNxcXEqKSnRunXr9Kc//UkLFizQyJEjbzl2W+fsp59+WtXV1bLZbOrdu7fy8vK0YsUK7d+/X6+99lqbNv8BALgH87Xx87XZbNb/+3//T3PnzlVqaqqeeOIJlZeX67/+678UHBysH/7wh7ccu63zdWPf4Wt7R9tstrrV4oBbuYBWunjxostsNrssFourqqqq7vhbb73lkuS69957G71uw4YNrilTpri6dOniCgkJccXFxbnuu+8+18cff1x3zn/+53+6bvx/zytXrriefvppV8+ePV2hoaGuCRMmuHbs2OGKiIhw/fu//3vdea+99ppLkmv37t31rv/kk09cklyffPJJ3bFTp0657rrrLld4eLhLkisuLs7lcrlcL730kmvixImuqKgoV3BwsKtv376ub3zjG65Tp07Vu6ck1+TJk5v8s5o/f37dvRvz0UcfuSZMmOAKDQ11RUZGuh555BHX2bNn651z8uRJlyTX/PnzbzlW7ftct25dk3XVWrZsmWvw4MF17/U///M/6/1v6nL968/1tddeq3f86tWrrl/96leugQMHuoKCglzR0dGuJ554wnXx4sVGx5o/f77LYrE0uzYAQNsxZxs/Z+/YscN1xx13uHr37u0KCgpyhYWFuW677TbXK6+84qqpqWmyrlqtnbN///vfu8aNG+eKjIx0BQYGurp16+aaOnWqa8uWLbf8s2DOBgDvYb42fr6utWHDBtdtt93mCg0NdUVERLjuueceV2ZmZpN11WrLd+wb1f5vd/78+UZfZ75GW5lcrlvsVgX4uO3bt8tms+mtt95q8ucdRlqwYIH+8Y9/6PPPP5fJZPLL1TlOp1NOp1Pf+MY39Oc//7lu4zwAgH9gzm4/mLMBwH8xX7cfzNdwF9pKoN3461//qh07dmjMmDHq1KmTDhw4oF/96lcaNGiQ7r33XqPLa1JOTo6CgoKUkJCgjIwMo8vxuqefflrLli2TJFksFoOrAQB4EnN2+8acDQD+gfm6fWO+hruwchjtxqeffqpnnnlGhw8flsPhUFRUlKZOnapf/vKXio6ONrq8Wzp16pSKiookSZ06dVJCQoLBFXlfXl5e3U64AQEBSk5ONrgiAICnMGe3b8zZAOAfmK/bN+ZruAvhMAAAAAAAAAD4odZtPwkAAAAAAAAAaNcIhwEAAAAAAADADxEOAwAAAAAAAIAfIhwGAAAAAAAAAD9EOAwAAAAAAAAAfohwGAAAAAAAAAD8EOEwAAAAAAAAAPghwmEAAAAAAAAA8EOEwwAAAAAAAADghwiHAQAAAAAAAMAPEQ4DAAAAAAAAgB8iHAYAAAAAAAAAP0Q4DAAAAAAAAAB+iHAYAAAAAAAAAPwQ4TAAAAAAAAAA+CHCYQAAAAAAAADwQ4TDAAAAAAAAAOCHCIcBAAAAAAAAwA8RDgMAAAAAAACAHyIcBgAAAAAAAAA/RDgMAAAAAAAAAH6IcBgAAAAAAAAA/BDhMAAAAAAAAAD4IcJhAAAAAAAAAPBDhMMAAAAAAAAA4IcIhwEAAAAAAADADxEOAwAAAAAAAIAfIhwGAAAAAAAAAD9EOAwAAAAAAAAAfijQ6AIAT3G5XHJUOVRVU6XggGCFB4fLZDIZXRYAALgO8zUAAL6NuRro2AiH0aFknMvQ6kOrtbtgt/YW7lXx5eK61yI7RWp09GjdZr1N85LmKbFnooGVAgDgv5ivAQDwbczVgP8wuVwul9FFAG216dgmvbD9BW3L2aaosCjZ+tg0JnqMBnUfpNDAUF25ekXHLxzXnsI9Ss9LV1FFkSbFTdL3bd/XVwd91ejyAQDwC8zXAAD4NuZqwP8QDqNdu1BxQYs2L9LqQ6uV0jdFT417SrOGzlJwQPBNr6mqqdKGrA1asWuF0nLT9GDSg1o+fbkiO0V6sXIAAPwH8zUAAL6NuRrwX4TDaLcOnj2o6W9NV0V1hZZPW66HRjxU1/eovLxc6enpKigokMPhUHh4uKxWq2w2mywWi6RrfZPePPimFm1epLCgMG1+cLOSeiUZ+ZYAAOhwmK8BAPBtzNWAfyMcRrt08OxBfWnVl9Svaz+9P+99WcOtkqSsrCy9+uqrWrVqlcrKyhpcFxERofnz5+vJJ5/UkCFDJEkFjgLNWD1DOSU52rpgK5MYAABuwnwNAIBvY64GQDiMdudCxQWN+O0I9bL00t/n/11dQ7uqpKRE3/zmN7Vu3bpm32fOnDlauXKlIiIiVHKlRFP+OEXnys/p0BOH+BkMAABtxHwNAIBvY64GIElmowsAWmrR5kWqqK7Q+/PeV9fQrsrPz1dKSkqLJi9JWrdunVJSUpSfn6+uoV21ad4mVVRXaNGHizxUOQAA/oP5GgAA38ZcDUAiHEY7s+nYJq0+tFrLpy2XNdyqkpISTZ06VZmZma26X0ZGhqZNm6bS0lJZw61aNm2Z3jr0lj44/oGbKwcAwH8wXwMA4NuYqwHUoq0E2pXJqybL6XJq24JtMplMmjt37k2fasbHx2v27NmyWq0qKCjQ+vXrlZ2d3ei5c+bM0dq1a+VyuTRp1SQFmAL0jwX/8OA7AQCg42K+BgDAtzFXA6jFymG0GxnnMrQtZ5ueGveUTCaTsrKyGp284uLi9N577ykrK0szZ85UdHS0Zs6cqaysLG3cuFF9+/ZtcM26det09OhRmUwmLbxtobbmbFXmudY9MQUAwJ8xXwMA4NuYqwFcj3AY7cbqQ6sVFRalWUNnSZJeffXVBufExcVp586dqqqqUnx8vKZMmaJ58+ZpypQpio+PV3V1tT799NNGJ7Ha+80eNltRYVFafWi1R98PAAAdEfM1AAC+jbkawPVoK4F248437pQlyKIN929QeXm5rFarysrK6p2zceNGVVdX67777tON/69tMpkkSe+8844CAwOVmppa7/WIiAjl5+fLYrEo9U+pulx9WR89/JFn3xQAAB0M8zUAAL6NuRrA9Vg5jHbB5XJpb+FejYkeI0lKT09vMHnFx8dr2rRpWrx4cYPJq/YekrRkyRJNnz5d/fv3r/d6aWmp0tPTJUljosdoT+GeRu8DAAAax3wNAIBvY64GcCPCYbQLjiqHii8Xa1D3QZKkgoKCBufMnj1b6enpOn369E3v43K5lJeXp/T0dM2ePbvB64WFhZKkwd0Hq/hysS5VXXLTOwAAoONjvgYAwLcxVwO4EeEw2oWqmipJUmhgqCTJ4XA0OMdqtdZNQE0pLCyU1WptcLz2viEBIfXGBQAATWO+BgDAtzFXA7gR4TDaheCAYEnSlatXJEnh4eENzikoKFB0dHSz7hcdHd3oE9La+1bWVNYbFwAANI35GgAA38ZcDeBGhMNoF8KDwxXZKVLHLxyXpEafTK5fv142m02xsbF1DfJvZDKZ1KdPH9lsNq1fv77B67UT4LELxxTZKVKdgzu78V0AANCxMV8DAODbmKsB3IhwGO2CyWTS6OjR2lO4R5Jks9nUpUuXeudkZ2dr8+bNWrZsWd01N95DkpYuXaoPP/xQJ0+erPd6RESEbDabJGlP4R6NiR5z04kQAAA0xHwNAIBvY64GcCPCYbQbt1lvU3peuqpqqmSxWLRgwYIG5yxcuFATJ07UO++8o5iYmHqvxcbG6p133tHEiRP11FNPNbh2wYIFslgsqqqp0va87brNepun3goAAB0W8zUAAL6NuRrA9QiH0W7MS5qnoooibcjaIEl64oknGpyTm5urCRMmKCgoSNnZ2frkk0+0evVqffLJJzpx4oQCAwM1fvx45ebmNri29n7rj6xXUUWR5iXN8+j7AQCgI2K+BgDAtzFXA7ieyeVyuYwuAmiuyasmy+lyatuCbTKZTJo7d67WrVvX6Lnx8fGaNWuWrFarCgoKtH79+gY/d6k1Z84crV27Vi6XS/bX7Ao0B+ofC/7hwXcCAEDHxXwNAIBvY64GUItwGO3KpmObNPPtmXp91ut6eOTDKi0tVUpKijIyMlp9z8TERKWlpSkiIkKvH3hd8zfM16Z5m/TVQV91Y+UAAPgP5msAAHwbczWAWoTDaHce/MuD+uD4B8p8MlPWcKvy8/M1bdq0Vk1iiYmJ2rx5s2JiYlTgKFDCKwmaMWiG3rz3TQ9UDgCA/2C+BgDAtzFXA5DoOYx2aPm05QoLCtOM1TNUcqVEMTExSktL05w5c1p0nzlz5igtLU0xMTEquVKiGatnKCwoTMunL/dQ5QAA+A/mawAAfBtzNQCJcBjtUPew7tr84GbllORoyh+nqMBRoIiICK1du1ZHjhzR4sWLFRER0ei1oaGhCggI0I4dO7R27VpFRESowFGgKX+copySHG1+cLMiO0V6+R0BANDxtGW+lq7tkp6VlcV8DQCAh7Rlro6IiNDixYuZq4EOgLYSaLcOnT2kaW9NU0V1hZZPW66HRjwkk8kkSSovL1d6eroKCwvlcDgUHh6u6OhoDRkyREOHDtVzzz2nH/7wh3rj4BtavHmxwoLCtPnBzUrqlWTwuwIAoGNp6Xx95coVffvb39aHH36oadOmyeVyMV8DAOBBLZmrd+/erTfffFNnzpxRjx49JIm5GmjnCIfRrhVfLtaiDxfprUNvKaVvihbetlCzh81WcEDwTa/5+uNf14asDRq2YJi2n96uh0Y8pGXTlvFUEwAAD2nJfO1yuTRgwAB9ZepXdMd37tCKXSuUnpfOfA0AgAc1d64+ePCgRo4cqU8++UQT7RO1/sh65mqgnSMcRofwwfEP9EL6C9qas1VRYVGa2GeixkSP0eDugxUSEKLKmkodu3BMewr36J8n/6mLVRc1rNMwvTj7RXZOBQDAS5o7X//xr3/Uqaun5Ozk1OS4yfqe7XvM1wAAeEFTc/Xl6sv6+ne/rv4T+6sorEhFFUXM1UA7RziMDiXzXKZWH1qt3QW7tadwj4ovF9e9FtkpUmOix+g2623627K/SeeknTt3GlgtAAD+qan5Oj40Xp+9+5ne/o+3df8d9xtYKQAA/ulWc3VQdZC6lHfRt2Z+S/OS5imhZ4KBlQJoK8JhdFgul0uXqi6pqqZKwQHB6hzcua5v0vvvv6+7775bO3bs0IQJEwyuFAAA/9XYfF1TU6NevXrp29/+tn7+858bXSIAAH7txrn6//36/+nll19WcXGxzGaz0eUBaCPCYfglp9OpIUOGaOzYsXr77beNLgcAANxg/vz52rNnjzIyMowuBQAAXOfvf/+77rjjDh08eFBJSWw8B7R3POKBXzKbzXrqqae0bt06nT592uhyAADADVJTU5WZmanPP//c6FIAAMB1xo8fr4CAAKWnpxtdCgA3IByG33r00UdlsVj0yiuvGF0KAAC4wV133aWQkBC9++67RpcCAACuY7FYlJycTDgMdBCEw/Bb4eHh+vrXv67f/e53qqioMLocAABwnc6dO+vOO+8kHAYAwAfZbDbCYaCDIByGX3vqqad08eJFvfXWW0aXAgAAbpCamqr09HSdP3/e6FIAAMB1bDabTp48qcLCQqNLAdBGhMPwa/Hx8brnnnu0bNkysTcjAAC+5e6775bL5dL7779vdCkAAOA6NptNklg9DHQAhMPwe0uWLFFmZqb+9re/GV0KAAC4Tq9evXT77bfTWgIAAB9jtVrVr18/wmGgAyAcht+bPHmyRowYoaVLlxpdCgAAuEFqaqo++ugj9gcAAMDH0HcY6BgIh+H3TCaTlixZok2bNun48eNGlwMAAK6Tmpqqy5cv6+OPPza6FAAAcB2bzaa9e/eqvLzc6FIAtAHhMCDpgQceUI8ePbR8+XKjSwEAANcZMmSIhgwZog0bNhhdCgAAuI7NZlNNTY127dpldCkA2oBwGJAUGhqqb3/723rttddUUlJidDkAAOA6s2bN0vvvv6+amhqjSwEAAF9ISEhQly5daC0BtHOEw8AXnnjiCVVVVekPf/iD0aUAAIDrpKam6vz589qxY4fRpQAAgC8EBATo9ttvJxwG2jnCYeAL0dHR+rd/+zetWLGClUkAAPiQ8ePHq1evXnr33XeNLgUAAFwnJSVFO3bskNPpNLoUAK1EOAxcZ/HixTp16pQ2btxodCkAAOALZrNZd999tzZs2CCXy2V0OQAA4As2m02lpaXKzMw0uhQArUQ4DFxn7NixstlsWrZsmdGlAACA68yaNUuff/65jhw5YnQpAADgC+PGjVNAQACtJYB2jHAYuMHixYu1detW7d+/3+hSAADAF+644w5ZLBZaSwAA4EMsFouSk5MJh4F2jHAYuMHs2bPVp08fVg8DAOBDQkNDNXXqVG3YsMHoUgAAwHVsNhvhMNCOEQ4DNwgMDNTChQu1evVqnTt3zuhyAADAF1JTU7Vr1y4VFBQYXQoAAPiCzWbTyZMnVVhYaHQpAFqBcBhoxGOPPabAwED99re/NboUAADwhRkzZiggIEDvvfee0aUAAIAv2Gw2SWL1MNBOEQ4DjYiMjNQjjzyiV199VZWVlUaXAwAAJHXv3l12u52+wwAA+BCr1ap+/fopLS3N6FIAtALhMHATixYt0pkzZ7R27VqjSwEAAF9ITU3V3/72NzkcDqNLAQAAX6DvMNB+EQ4DNzFs2DBNnTpVS5culcvlMrocAACga+FwVVWVNm/ebHQpAADgCzabTfv27VN5ebnRpQBoIcJh4BYWL16svXv38gQUAAAf0b9/f40YMYLWEgAA+BCbzaaamhrt2rXL6FIAtBDhMHALU6dO1ZAhQ7Rs2TKjSwEAAF9ITU3Vpk2bVF1dbXQpAABAUkJCgiIiIlhYBbRDhMPALZjNZi1atEh/+ctflJOTY3Q5AABA18LhkpISbdu2zehSAACApICAAN1+++2Ew0A7RDgMNOGRRx5Rly5d9D//8z9GlwIAACSNHj1asbGxtJYAAMCH2Gw27dixQ06n0+hSALQA4TDQhM6dO+uxxx7TypUraa4PAIAPMJlMSk1N1bvvvsumsQAA+AibzabS0lJlZmYaXQqAFiAcBpph4cKFKisr0+uvv250KQAAQNdaS+Tm5mr//v1GlwIAACSNGzdOAQEBtJYA2hnCYaAZ4uLiNHv2bC1btoyfyAAA4AMmT56sLl260FoCAAAfYbFYlJycTDgMtDOEw0AzLVmyREePHtVHH31kdCkAAPi94OBgzZgxg3AYAAAfYrPZCIeBdoZwGGgmm82m0aNHa+nSpUaXAgAAdK21xP79+5WTk2N0KQAAQNe+N588eVIFBQVGlwKgmQiHgWYymUxasmSJtmzZoiNHjhhdDgAAfm/69OkKCgpi9TAAAD7CZrNJEquHgXaEcBhogblz56pXr15avny50aUAAOD3unTpoilTphAOAwDgI6xWq/r160c4DLQjhMNAC4SEhOjJJ5/U66+/ruLiYqPLAQDA782aNUtbt27VxYsX3Xpfl8ulssoyFVUUqayyTC6Xy633BwCgo6LvMNC+EA4DLfStb31LV69e1f/93/8ZXQoAAH7vnnvuUU1NjT744IM23yvjXIb+42//oTvfuFNRv4lSxK8i1OM3PRTxqwhF/SZKd75xp/7jb/+hjHMZbqgcAICOKSUlRfv27VN5ebnXxuShLtB6Jhd/Y4AWe/TRR/W3v/1N2dnZCgwMNLocAAD82m233aZ+/fpp3bp1rbp+07FNemH7C9qWs01RYVGy9bFpTPQYDeo+SKGBobpy9YqOXziuPYV7lJ6XrqKKIk2Km6Tv276vrw76qpvfDQAA7duhQ4c0YsQI/f3vf9eUKVM8Nk7GuQytPrRauwt2a2/hXhVf/teveyM7RWp09GjdZr1N85LmKbFnosfqANo7wmGgFfbv36/k5GStXbtWc+bMMbocAAD82s9//nP96le/UlFRkUJCQpp93YWKC1q0eZFWH1qtlL4pemrcU5o1dJaCA4Jvek1VTZU2ZG3Qil0rlJabpgeTHtTy6csV2SnSHW8FAIB2z+l0KjIyUs8++6x+/OMfu/3+PNQF3ItwGGilL33pS7p69arS0tKMLgUAAL+WkZGhpKQkffDBB5o+fXqzrjl49qCmvzVdFdUVWj5tuR4a8ZBMJpMkqby8XOnp6SooKJDD4VB4eLisVqtsNpssFoukaz9fffPgm1q0eZHCgsK0+cHNSuqV5LH3CABAe1I7H3/44YduuycPdQHPIBwGWmn9+vW69957tXv3bo0dO9bocgAA8Fsul0sDBw7UnXfeqd/+9rdNnn/w7EF9adWX1K9rP70/731Zw62SpKysLL366qtatWqVysrKGlwXERGh+fPn68knn9SQIUMkSQWOAs1YPUM5JTnaumArATEAAJKef/55vfjiiyouLpbZ3PbtrnioC3gO4TDQSjU1NRo4cKBSUlL0xhtvGF0OAAB+7emnn9bbb7+t/Pz8W34JvVBxQSN+O0K9LL309/l/V9fQriopKdE3v/nNFvUsnjNnjlauXKmIiAiVXCnRlD9O0bnyczr0xCFWIwEA/N4nn3yiL3/5yzp48KCSktoWwvJQF/Cstj++AfxUQECAnnrqKa1Zs0aFhYVGlwMAgF+bNWuWzpw5o927d9/yvEWbF6miukLvz3tfXUO7Kj8/XykpKS3ezG7dunVKSUlRfn6+uoZ21aZ5m1RRXaFFHy5qy9sAAKBDGDdunAICApSent6m+1youKDpb01Xv6799Pf5f5c13KqSkhLNnTtXw4YN0/LlyxsNhiWptLRUy5cv19ChQzV37lyVlpbKGm7VJ/M/UVzXOE17a1q9TewAf0U4DLTBN77xDYWEhOjVV181uhQAAPzaxIkT1b17d7377rs3PWfTsU1afWi1lk9bXvflcurUqcrMzGzVmBkZGZo2bVrdl81l05bprUNv6YPjH7T2bQAA0CFYLBYlJye3eY8eHuoCnkdbCaCNalcP5+bmKjQ0tMnzXS6XHFUOVdVUKTggWOHB4XW9kgAAQOstWLBAu3bt0uHDhxt9ffKqyXK6nNq2YJtMJpPmzp170y+X8fHxmj17tqxWqwoKCrR+/XplZ2c3eu6cOXO0du1auVwuTVo1SQGmAP1jwT/c9bYAAGiXlixZonfffVcnT55s1fWbjm3SzLdn6vVZr+vhkQ+rpKREKSkprX6oK0mJiYlKS0tTRESEXj/wuuZvmK9N8zbpq4O+2up7Au0d4TDQRseOHdOQIUP0hz/8QY8++mij52Scy9DqQ6u1u2C39hburffTlchOkRodPVq3WW/TvKR5SuyZ6K3SAQDoUGo3iz127JgGDRpU77WMcxlKejVJa+5bo7kJc5WVlaVhw4Y1uEdcXJz++7//W1OnTlV6eroKCwsVHR0tm82mzZs3a+HChcrNzW1wXVZWloYMGaI1GWt0/5/vV8YTGUromeCx9woAgK9bt26d5s6dq/z8fFmt1hZfz0NdwDtoKwG00eDBgzVjxgwtW7ZMNz5r2XRskyavmqykV5O0cu9KWYIsWjJ+id7+2tta/2/r9fbX3taS8UtkCbJo5d6VSno1SZNXTebnqAAAtMJdd92l0NDQRltLrD60WlFhUZo1dJYkNdoSKi4uTjt37lRVVZXi4+M1ZcoUzZs3T1OmTFF8fLyqq6v16aefqm/fvg2urb3f7GGzFRUWpdWHVrv3zQEA0M7YbDZJalXf4YxzGdqWs01PjXtKJpNJWVlZjQbDcXFxeu+995SVlaWZM2cqOjpaM2fOVFZWljZu3NjonL1u3TodPXpUJpNJC29bqK05W5V5rvWrkYH2jnAYcIPFixfrwIED2rp1q6RrTfMf/MuDmvn2TDldTq25b43yn87Xhvs36LnJz+n+xPs1a+gs3Z94v56b/Jw23L9B+U/na819a+R0OTVj9Qw99JeHaI4PAEALWCwW3XnnnY2Gw7sLdsvWx6bggGCVl5dr1apVDc5ZsWKFtm/frvvuu0+nT5+u91p+fr7uu+8+bd++XStWrGhw7apVq1ReXq7ggGBN7DNRuwtuvTEeAAAdndVqVb9+/VoVDvNQF/Ae2koAbuByuZSYmKjBgwfrp7/9qaa/NV0V1RVaPm25HhrxUF1P4fLycqWnp6ugoEAOh0Ph4eGyWq2y2WyyWCx193rz4JtatHmRwoLCtPnBzUrqlWTk2wMAoN34/e9/r8cff1xnzpxRz549JV2bW6N+E6Ul45foucnP6aOPPtLUqVPrXRcfH6+srCzFx8c3CIZrmUwmxcbG6sSJExoyZEiDHopbtmzRXXfdpZ9t/ZmWfbpMRd8tYl8BAIBfe/jhh5WVlaXdu1v20PTON+6UJciiDfdvUHl5uaxWq8rKyuqds3HjRlVXV+u+++5r8Cve2vn3nXfeUWBgoFJTU+u9HhERofz8fFksFqX+KVWXqy/ro4c/asU7BNo/Vg4DbmAymbR48WJt2LFBk/4wSb0svZT5ZKYeHvlw3U9gFi9eLKvVqqlTp+rRRx/VokWL9Oijj2rq1KmKiYnR4sWL637a8vDIh5X5ZKZ6Wnpq8qrJOnT2kNFvEQCAdmHmzJmSpPfff7/umKPKoeLLxRrU/Vof4oKCggbXzZ49W+np6TcNhqVrIXNeXp7S09M1e/bsBq8XFhZKkgZ3H6ziy8W6VHWpTe8FAID2zmazad++fSovL2/2NS6XS3sL92pM9BhJ19pS3BgMx8fHa9q0aVq8eHGDYLj2HtK1TfGmT5+u/v3713u9tLS0bkXzmOgx2lO4p9H7AP6AcBhwk+lfmy7TwyaFXA7R3+f/XdZwq0pKSjR37lwNGzZMy5cvbzCh1SotLdXy5cs1dOhQzZ07V6WlpbKGW/XJ/E8U1zVO096aRosJAACaoVevXpo4cWK91hJVNVWSpNDAUEmSw+FocJ3Vaq0Ld5tSWFjY6MY6tfcNCQipNy4AAP7KZrOppqZGu3btavY1PNQFvItwGHCTH2z9gYItwar4vwoFVAcoPz9fKSkpN91N9WbWrVunlJQU5efnq2toV22at0kV1RVa9OEiD1UOAEDHkpqaqr/+9a+qqKiQJAUHBEuSrly9IkkKDw9vcE1BQYGio6Obdf/o6OhGv6jW3reyprLeuAAA+KuEhARFRES0qO8wD3UB7yIcBtxg07FNWn1otX49+de6fO6yXnnlFU2dOlWZma3b8TQjI0PTpk2rW0G8bNoyvXXoLX1w/AM3Vw4AQMeTmpqqy5cv66OPrvUODA8OV2SnSB2/cFySGv2CuH79etlsNsXGxt60T7DJZFKfPn1ks9m0fv36Bq/XhsvHLhxTZKdIdQ7u7K63BABAu2Q2m3X77be3KBzmoS7gXYTDgBu8sP0FpfRN0aIvLdJ9992n559//qbBcHx8vJ555hm99NJLeuaZZxQfH9/oeRkZGXr88cclSQ+PeFgpfVP0QvoLHnsPAAB0FIMHD9awYcPqWkuYTCaNjh6tPYV7JF37iWuXLl3qXZOdna3Nmzdr2bJldddcr/bfly5dqg8//LDBZnQRERGy2WySpD2FezQmegyb0QEAoGvz7o4dO+R0Opt1Pg91Ae8iHAbaKONchrblbNNT456SyWTSrFmzdOlSw15FcXFxeu+995SVlaWZM2cqOjpaM2fOVFZWljZu3Ki+ffs2uGbdunV1m9QtvG2htuZsVea51q1GBgDAn6Smpuq9997T1atXJUm3WW9Tel66qmqqZLFYtGDBggbXLFy4UBMnTtQ777yjmJiYeq/FxsbqnXfe0cSJE/XUU081uHbBggWyWCyqqqnS9rztus16m0feFwAA7Y3NZlNpaWmzf1nLQ13AuwiHgTZafWi1osKiNGvoLEnSjh07GpwTFxennTt3qqqqSvHx8ZoyZYrmzZunKVOmKD4+XtXV1fr0008bDYhfffVVSdLsYbMVFRal1YdWe/T9AADQEaSmpurChQvavn27JGle0jwVVRRpQ9YGSdITTzzR4Jrc3FxNmDBBQUFBys7O1ieffKLVq1frk08+0YkTJxQYGKjx48crNze3wbW191t/ZL2KKoo0L2me594cAADtyLhx4xQQEKC0tLRmX8NDXcB7CIeBNtpdsFu2PjYFBwSrvLxcq1atanDO17/+dT3//PP62te+1mA31fz8fN13333avn27VqxY0eDaVatWqby8XMEBwZrYZ6J2F+z21FsBAKDDGDdunHr37l3XWiKxZ6ImxU3Sil0r5HK5NHToUM2ZM6fBdTk5Obrnnns0dOhQvffeeyooKNB7772nIUOGKDU1tdFgeM6cORoyZIhcLpdW7FqhyXGTldAzwePvEQCA9sBisSg5OblFfYd5qAt4j8nlcrmMLgJor1wul6J+E6Ul45foucnP6aOPPtLUqVPrnWMymdTUXzOTyaTY2FidOHFCQ4YMafCTly1btuiuu+7Sz7b+TMs+Xaai7xbxkxcAAJrwrW99S3/72990/PhxmUwmbTq2STPfnqnXZ72uh0c+rNLSUqWkpCgjI6PVYyQmJiotLU0RERF6/cDrmr9hvjbN26SvDvqqG98JAADt25IlS/Tuu+82+K57K5NXTZbT5dS2BdtkMpk0d+5crVu3rtFz4+PjNWvWLFmtVhUUFGj9+vU3HWvOnDlau3atXC6X7K/ZFWgO1D8W/KM1bwvoEFg5DLSBo8qh4svFGtR9kCQ1ugNqc56/uFwu5eXlKT09XbNnz27wemFhoSRpcPfBKr5crEtVDXsaAwCA+lJTU3XixAkdPnxYkjRj8AzNS5qnRZsXqcBRoIiICG3evFmJiYmtun9iYqI2b96siIgIFTgKtHjzYj2Y9CDBMAAAN7DZbDp16lSj35lv5nsTv6e03DS9efBNSdLKlStvOmdnZ2fr5Zdf1rPPPquXX375psFwYmKiVq5cKUl64+AbSs9L1/ds32vhuwE6FsJhoA2qaqokSaGBoZKkvLy8Nt0vMzOz0Z1YHQ6HJCkkIKTeuAAA4Oa+/OUvy2KxaMOGDXXHlk9brrCgMM1YPUMlV0oUExOjtLS0RltM3MqcOXOUlpammJgYlVwp0YzVMxQWFKbl05e7+V0AAND+1W7+1pLWEjzUBbyDcBhog+CAYEnSlatXVFJSot/97ndtut+LL77Y6BPO8PBwSVJlTWW9cQEAwM2FhoZq2rRpdX2HJal7WHdtfnCzckpyNOWPU+q+bK5du1ZHjhzR4sWLFRER0ej9IiIitHjxYmVlZWnt2rV1Xy6n/HGKckpytPnBzYrsFOmttwcAQLthtVrVv3//FoXDEg91AW8gHAbaIDw4XJGdInX8wnF985vfVH5+fqPn9e/fX507d27yfqdOnWp0Q7vo6GhJ0rELxxTZKVKdg5u+FwAAkGbNmqXdu3fX+xlrUq8kbV2wVefKzynhlQS9ceCNuk3qli5dqvz8fG3ZskWrVq3SihUrNG7cOCUkJCg/P19Lly6t23zu9QOvK+GVBJ0rP6etC7YqqVeSge8UAADfZrPZWhwO81AX8Dw2pAPa6M437pSr0qW/Pf63Bq/FxcXpv//7v/XVr35VGzZs0H333SepeX2Ia0VERCg/P18Wi0Wpf0rV5erL+ujhj9xWPwAAHVlxcbF69uyp//7v/9a3v/3t+q9dLtaiDxfprUNvKaVvihbetlCzh81u8Aud3/zmN/rpT3+q0tJS1ahG64+s14pdK5Sel66HRjykZdOW8eUSAIAm/Pa3v9XChQtVWloqi8XSomsPnT2kaW9NU0V1hZZPW66HRjxUt0l7eXm50tPTVVhYKIfDoT//+c86deqUMjIy6sZxuVx64+AbWrx5scKCwrT5wc081AW+wMphoI1us96m9Lx0KaD+8bi4OO3cuVMzZ86U2WzWvffeq3feeUcxMTH1zgsIuOHCGyxYsEAWi0VVNVXanrddt1lvc/dbAACgw4qMjNSkSZPq9R2ue61TpN68901tmrdJAaYA3f/n+xXzcoxS/5Sqn239mf6U8SetP7JepX1KVT62XHf+4U7FvByj+/98vwLNgdo0b5PemP0GwTAAAM1gs9lUU1OjXbt2tfjapF5JOvTEIc0YNEOPbHhEk1ZN0pqMNaqqqZLFYtFdd92l+fPna+HChbr//vuVl5engIAAVdVUaU3GGtlfs2v+hvmaOXimDj1xiGAYuA4rh4E22nVql8b/cby0TlLmv45v3LhRd999d4Pza2pq9M9//lOFhYWKjo7WxYsXde+99970/llZWRoyZIjWZKzR/X++XxlPZCihZ4IH3gkAAB3TsmXL9N3vfldFRUXq0qXLTc/LPJep1YdWa3fBbu0p3KPiy8X/erFCSuyeqHvG3KN5SfOYiwEAaCGn06nIyEg9++yz+vGPf9zq+3xw/AO9kP6CtuZsVVRYlCb2magx0WM0uPtghQSEKPNopp5b+pwm3T9Jhx2HVVRRpMlxk/U92/fYfA5oBOEw0EYfffSRpr49VTJJeu3asfj4eB0/flxmc9OL851OpwYOHNjoRnRz5szR2rVr5XK5ZH/NrkBzoP6x4B/ufQMAAHRwp06dUv/+/bVmzRrNnTu3Wde4XC5dqrqkqpoqBQcEa+TwkZqVOksvv/yyh6sFAKDjmj59uiTpww8/bPO9mnqoO6zbMM2+bTYPdYEmBBpdANDeFRQUSOmSHpQ0QtJBafbs2c0KhiXJbDZr9uzZDb5sxsTEaOXKlZKkNw6+ofS8dG2at8m9xQMA4Af69eunkSNH6t133212OGwymRQeEl7372NGj9GePXs8VSIAAH7BZrPpN7/5jWpqappssdiUhJ4J+vkdP5fU8KHu+NHj9aXJX9LPf/Bzd5QNdGj0HAbayOFwSMclHZQ0XVK4ZLVaW3SPxs7/9re/Xbeb6uLNi/Vg0oP8BAYAgFZKTU3Vpk2bVF1d3arrx4wZo3379snpdLq5MgAA/IfNZlNZWZkyMzObPrkFah/qdg/rrvCQcI1OHq19+/a5dQygoyIcBtooPPyLVUUfSqqWNE/KLshu0T0KCgoaHOvTp49KrpRoxuoZCgsK0/Lpy9teLAAAfmrWrFkqLS3V1q1bW3X9mDFj5HA49Pnnn7u5MgAA/Me4ceMUEBCg9PR0j46TnJysgwcPqqamxqPjAB0B4TDQRnWrfi9LelNSV2ll9UqdLj3drOudTqfWr1/f4Hhw92BN+eMU5ZTkaPODm9kJHQCANhg1apT69u2rd999t1XXjx49WpJoLQEAQBtYLBYlJyd7JRyuqKjQsWPHPDoO0BEQDgNtZLPZ/rXz+TlJr0lVgVUaumKo3jjwhpra8/H9999vsBldpwmd9GTGkzpXfk5bF2xVUq8kD1UPAIB/MJlMuueee/Tuu+82OTc3pnv37oqLiyMcBgCgjVJSUjweDo8aNUqSaC0BNAPhMNBGFotFCxYs+NeBc5JelVxHXXpkwyOatGqS1mSsUVVNVYNrz5w5o6eeeuravwRISpD0denytMuaOWSmDj1xiGAYAAA3SU1NVV5eXqu/KI4ZM0Z79+51c1UAAPgXm82mU6dONdpe0V0iIyMVFxen/fv3e2wMoKMgHAbc4Iknnqh/4LJU8WaFev61p0qKS3T/n+9XzMsxSv1Tqn629WdafXC1fvj6D5V4f6Jy++dK90t6WtIcSU7pd5N+pzdmv0ErCQAA3Gjy5MmKiIhodWuJ2nC4NSuPAQDANTabTZK8snqYlcNA0wiHATcYOnSo5syZ0+D4ufRzyng2Q7Hvxir+YryyPs/SL//+Sz24/kH96uSvdGHKBWm8pCBJeyT9jzSnfI6+OeWb3n4LAAB0eEFBQZoxY0ab+g6XlpbqxIkTbq4MAAD/ER0drf79+3ul7/C+fft4qAs0IdDoAoCOYuXKlTpy5IgyMjIavHZ632md3nfdBnXButZGokbSdd0mEhMTtXLlSk+XCgCA30pNTdXq1at18uRJ9e/fv0XXjhkzRpK0d+9eDRw40BPlAQDgF2w2m1fC4QsXLuj06dPq06ePR8cC2jNWDgNuEhERoc2bNysxMbHpk6skXVaDYHjz5s2KiIjwVIkAAPi9adOmKSgoSBs3bmzxtT169FCfPn3YlA4AgDay2Wzat2+fysvLPTZGcnKyJDalA5rCymHAjWJiYpSWlqbHH39c69ata9G1a9asUUxMjIcqAwAAktSlSxfdcccd+stf/qJhw4apoKBADodD4eHhslqtstlsslgsN71+9OjRhMMAALSRzWZTTU2Ndu3apSlTpnhkjNjYWHXv3l379u3TPffc45ExgI6AlcOAm0VERGjt2rU6cuSIFi9efNOVwBEREVq8eLE++eQTSaJ/IQAAXpCVlaXKykpt27ZNU6dO1aOPPqpFixbp0Ucf1dSpUxUTE6PFixfr6NGjjV7PpnQAALRdQkKCIiIilJaW5rExTCZTXd9hADdHOAx4yNChQ7V06VLl5+dry5YtGjFihJKSkrRq1Spt2bJF+fn5Wrp0qSZPnqzu3btr7969RpcMAECHVVJSorlz52rYsGF1D2YbU1paquXLl2vo0KGaO3euSktL670+ZswYXbx4UadOnfJwxQAAdFxms1m333671zalA3BzhMOAh1ksFt11112Ki4tTXFyc5s+fr7vuuqvuJ6smk0mjR49mwgIAwEPy8/OVkpLS4pZP69atU0pKivLz8+uO1W5KR2sJAADaxmazaceOHaqpqfHYGMnJycrNzVVxcbHHxgDaO8JhwEsCAgJuOunxNBMAAM8oKSnR1KlTlZmZ2arrMzIyNG3atLoVxL169ZLVaiUcBgCgjWw2m8rKylo9RzdH7aZ0+/fv99gYQHtHOAx4SVPhcG5uri5cuODlqgAA6Ni++c1v3vRLZ3x8vJ555hm99NJLeuaZZxQfH9/oeRkZGXr88cfr/r227zAAAGi9cePGKTAw0KOtJQYNGqSwsDAWYwG3QDgMeElAQICcTmejr40ePVqSmLAAAHCjrKysRltJxMXF6b333tPx48f14osv6umnn9aLL76o48ePa+PGjerbt2+Da9atW1e3Sd2YMWO0Z88eNqUDAKANLBaLkpOTPRoOBwQEaMSIEXzXBm6BcBjwErPZfNOVwwMHDlTnzp1ZhQQAgBu9+uqrDY7FxcVp586dmjlzpszm+h+FzWaz7r77bn366aeNBsS19xs9erQuXLig3NxczxQOAICfsNlsbEoHGIxwGPCSW7WVMJvNGjlyJBMWAABuUl5erlWrVjU4vmLFCvXu3fuW1/bu3VsrVqxocHzVqlUqLy+v25SOh7oAALSNzWbTqVOnVFBQ4LExkpOTlZWVpYqKCo+NAbRnhMOAl9wqHJaurUIiHAYAwD3S09NVVlZW71h8fLxmzJjRrOtnzpyp/v371ztWWlqq9PR0Wa1W9e7dm03pAABoI5vNJkkeXT2cnJwsp9OpQ4cOeWwMoD0jHAa8pKlwODk5WceOHdOlS5e8WBUAAB1TYyuQZs+e3aCVxM2YzWbNnj27wfHCwkJJ1x7qEg4DANA20dHR6t+/v0fD4cTERAUEBLAYC7gJwmHAS261IZ107Uumy+XSgQMHvFgVAAAdk8PhaHDMarW26B6NnV97XzalAwDAPTzddzg0NFTDhw8nHAZugnAY8JJbbUgnScOHD1dwcDD9CwEAcIPw8PAGx1raz7Cx82vvO2bMGJ0/f175+fmtKxAAAEi6Fg7v27fPo7+iTU5O1v79+z12f6A9IxwGvKSpthJBQUFKTEzkaSYAAG7Q2Krf9evX3/JXPNdzOp1av359g+PR0dGSVLcpHa0lAABoG5vNppqaGu3atctjY4waNUoHDx7U1atXPTYG0F4RDgNe0lQ4LLEpHQAA7mKz2dSlS5d6x7Kzs7Vp06ZmXf/+++/r5MmT9Y5FRETUbZwTExOjHj16EA4DANBGCQkJioiI8PimdFeuXNHRo0c9NgbQXhEOA17SnHA4OTlZGRkZqqys9FJVAAB0TBaLRQsWLGhwfOHChTpz5swtrz1z5oyeeuqpBscXLFggi8UiSTKZTBozZgztoAAAaCOz2azbb7/do+HwqFGjJInFWEAjCIcBL2lqQzrp2srhq1evKjMz00tVAQDQcT3xxBMNjuXm5mrChAl67733GszLTqdTGzdu1Pjx45Wbm9vk/Wo3pQMAAG2TkpKiHTt2NLmgqrW6du2q/v37Ew4DjSAcBrykOSuHR4wYIbPZzIQFAIAbDB06VHPmzGlwPCcnR/fcc48GDRqkZ555Ri+99JKeeeYZDRw4UKmpqY0Gw3PmzNGQIUPqHRs9erTOnDnT4o3uAABAfTabTWVlZR5dKJWcnMx3baARhMOAl5jN5ibD4bCwMA0ZMoSfqAIA4CYrV65UYmJio69lZ2fr5Zdf1rPPPquXX365QY/hWomJiVq5cmWD47Wb0jFvAwDQNuPGjVNgYKDH+w7v27dPLpfLY2MA7RHhMOAlzVk5LLEpHQAA7hQREaHNmzffNCBuSmJiojZv3qyIiIgGr/Xt21fdu3entQQAAG0UFham5ORkj4fDJSUlysnJ8dgYQHtEOAx4SXPD4eTkZB04cMBjvZYAAPA3MTExSktLa7TFxK3MmTNHaWlpiomJafR1k8mk0aNHEw4DAOAGNpvN4+GwxKZ0wI0IhwEvaUk4XFFRoWPHjnmhKgAA/ENERITWrl2rI0eOaPHixY2uBK49b/HixcrKytLatWtvel4tNqUDAMA9bDabTp065bFe/tHR0erRo4f279/vkfsD7RXhMOAlAQEBDXZFbwxPMwEA8JyhQ4dq6dKlys/P15YtW/S73/1OkvStb31LW7ZsUX5+vpYuXdpg87mbGTNmjAoKCnTmzBlPlg0AQIdns9kkyWOrh00mE5vSAY0INLoAwF80Z0M6SerWrZv69eunvXv3at68eV6oDAAA/2OxWHTXXXfp6tWr+ta3vqUJEyborrvuavF9rt+U7qtf/aq7ywQAwG9ER0crLi5Ob731lsrLy+VwOBQeHi6r1SqbzSaLxdLmMZKTk/XWW2+5oVqg4yAcBrykuW0lJDalAwDAWwICAmQymVRVVdWq6/v166du3bppz549hMMAALRSVlaWXn31VRUUFCgnJ0fvvvtuvdcjIiI0f/58Pfnkk83+dU9jkpOT9etf/1pFRUWKiopqa9lAh0BbCcBLWhIOJycna+/evXK5XB6uCgAA/2YymRQcHNzqcLh2U7q9e/e6uTIAADq+kpISzZ07V8OGDdPy5ctVXV3d6HmlpaVavny5hg4dqrlz56q0tLRV49HGEWiIcBjwkpaGwyUlJcrJyfFwVQAAoC3hsMSmdAAAtEZ+fr5SUlK0bt26Fl23bt06paSkKD8/v8VjDhw4UJ07dyYcBq5DOAx4SXM3pJOutZWQeJoJAIA3tDUcHj16tPLy8nT+/Hk3VgUAQMdVUlKiqVOnKjMzs1XXZ2RkaNq0aS1eQWw2mzVy5Ei+awPXIRwGvKQlK4ejo6PVq1cvfqIKAIAXuGPlsCTmbQAAmumb3/zmTYPh+Ph4PfPMM3rppZf0zDPPKD4+vtHzMjIy9Pjjj7d47OTkZMJh4DqEw4CXmM3mZofDEhMWAADe0tZweMCAAYqIiKC1BAAAzZCVldVoK4m4uDi99957On78uF588UU9/fTTevHFF3X8+HFt3LhRffv2bXDNunXrdPTo0RaNP2rUKB07dkzl5eWtfg9AR0I4DHhJS1YOS9d+oko4DACA57U1HDaZTEpOTiYcBgCgGV599dUGx+Li4rRz507NnDlTZnP9qMpsNuvuu+/Wp59+2mhA3Nj9biU5OVkul0sHDx5sWeFAB0U4DHhJQECAJDW773BycrIKCgp09uxZT5YFAIDfa2s4LLEpHQAAzVFeXq5Vq1Y1OL5ixQr17t37ltf27t1bK1asaHB81apVLVoFnJCQoMDAQBZjAV8gHAa8pDYcbu7qYTalAwDAO9wVDufk5OjChQtuqgoAgI4nPT1dZWVl9Y7Fx8drxowZzbp+5syZ6t+/f71jpaWlSk9Pb3YNISEhSkhI4Ls28AXCYcBLWrpyuH///oqIiGBzGwAAPMxd4bDEpnQAANxKQUFBg2OzZ89u0EriZsxms2bPnt3geGFhYYvqYI8f4F8IhwEvqZ3smrty2GQyadSoUUxYAAB4mDvC4YEDByo8PJzWEgAA3ILD4WhwzGq1tugejZ3f2H1vJTk5WYcOHVJ1dXWLrgM6IsJhwEta2lZCYlM6AAC8wR3hsNlsVnJyMiuHAQC4hfDw8AbHGltNfCuNnd/YfW8lOTlZVVVVOnLkSIuuAzoiwmHAS1oTDicnJ+vEiRMqLS31VFkAAPg9d4TDEpvSAQDQlMZW/a5fv77Z7RedTqfWr1/f4Hh0dHSL6hg5cqQk9vgBJMJhwGtau3JYkvbv3++JkgAAgNwXDo8ePVrZ2dm6ePGiG6oCAKDjsdls6tKlS71j2dnZ2rRpU7Ouf//993Xy5Ml6xyIiImSz2VpUR5cuXTRgwADCYUCEw4DXtHRDOkkaMmSIQkNDmbAAAPCg4OBgVVZWtvk+tZvSMW8DANA4i8WiBQsWNDi+cOFCnTlz5pbXnjlzRk899VSD4wsWLJDFYmlxLcnJySzEAkQ4DHhNa1YOBwYGasSIEfQvBADAg9y1cnjw4MGyWCy0lgAA4BaeeOKJBsdyc3M1YcIEvffeew0WVDmdTm3cuFHjx49Xbm5us+7XHLXhsMvlatX1QEcRaHQBgL8wm689i2lJOCxd+4lqWlqaJ0oCAAByXzgcEBCg5ORkwmEAAG5h6NChmjNnjtatW1fveE5Oju655x7Fx8dr1qxZslqtKigo0Pr16xu0kqg1Z84cDRkypFV1JCcnq7S0VCdPnlR8fHyr7gF0BITDgJe0ZuWwdG3CWrlypS5fvqxOnTp5ojQAAPyau8Jh6dpD3Q8++MAt9wIAoKNauXKljhw5ooyMjAavZWdn6+WXX27yHomJiVq5cmWra0hOTpZ0rR0U4TD8GW0lAC9pSzhcU1OjQ4cOeaIsAAD8njvD4TFjxujzzz9XaWmpW+4HAEBHFBERoc2bNysxMbFV1ycmJmrz5s2KiIhodQ29e/dW79692SsAfo9wGPCS1mxIJ0lJSUkKCAhgwgIAwENCQkLcGg5LbEoHAEBTYmJilJaWpjlz5rToujlz5igtLU0xMTFtriE5OZk5G36PcBjwktauHA4NDdXw4cPZlA4AAA9x58rhIUOGqFOnTvQdBgCgGSIiIrR27VodOXJEixcvvulK4IiICC1evFhZWVlau3Ztm1YMX49wGCAcBrymtRvSSdf6FzJhAQDgGe4MhwMDAzVq1Cge6gIA0AJDhw7V0qVLlZ+fry1btmjVqlWyWq264447tGXLFuXn52vp0qWt3nzuZkaNGqXCwkKdPXvWrfcF2hPCYcBLWrtyWLr2NPPgwYOqrq52d1kAAPg9d4bD0rXWEqwcBgCg5SwWi+666y7Nnz9f/fv3V2xsrO666y5ZLBaPjHf9pnSAvyIcBrykreFwZWWlsrKy3F0WAAB+z93h8OjRo3Xs2DE5HA633RMAAH8THh7u8bk0Pj5e4eHh2r9/v0fHAXwZ4TDgJW0Jh0eNGiWJp5kAAHiCJ1YOu1wuvmgCANAGnTt39ng4bDabNWrUKL5rw68RDgNeUhsOO53OFl/bpUsXDRw4kP6FAAB4gLvD4eHDhys0NJTWEgAAtIE3Vg5LbEoHEA4DXtKWlcMSm9IBAOApwcHBcjqdrZ6jbxQYGKiRI0cSDgMA0AbeDIePHz9OOyj4LcJhwEvM5mt/3Vr7xTM5OVn79+9v1cpjAABwc8HBwZLk9r7DhMMAALSeN8NhSTpw4IDHxwJ8EeEw4CVtXTmcnJyssrIyZWdnu7MsAAD8nifC4TFjxigrK0vl5eVuuycAAP7EW+HwsGHDFBwczC914bcIhwEvcUc4LLEpHQAA7uapcJhN6QAAaL3acNjlcnl0nODgYCUkJPBdG36LcBjwkrZsSCdJPXv2VExMDJvSAQDgZp4Ih4cPH67g4GBaSwAA0Erh4eG6evWqKisrPT4Wm9LBnxEOA17S1pXDEhMWAACe4IlwODg4WCNGjOChLgAArRQeHi5JunTpksfHSk5OVmZmpls/CwDtBeEw4CVt3ZBOura5zd69ez3+sxoAAPyJJ8Jh6VprCVYOAwDQOp07d5Ykr21KV11drcOHD3t8LMDXEA4DXuKulcPnz59XQUGBu8oCAMDveSocHj16tA4fPqyKigq33hcAAH9Qu3LYG+HwyJEjZTKZ+KUu/BLhMOAl7giHR48eLYlN6QAAcCdPrhx2Op06ePCgW+8LAIA/8GY43LlzZw0aNIjv2vBLhMOAl7gjHO7Tp48iIyPpXwgAgBt5KhxOTExUUFAQrSUAAGgFb4bDEnv8wH8RDgNeUhsOO53OVt/DZDIxYQEA4GaeCodDQkKUlJREOAwAQCsYEQ7v37+/Td/ZgfaIcBjwEnesHJautZYgHAYAwH08FQ5L1+ZtwmEAAFrOmxvSSdfC4UuXLunEiRNeGQ/wFYTDgJeYzdf+urU1HE5OTlZOTo4uXLjgjrIAAPB7ngyHx4wZo8zMTF25csXt9wYAoCMLDAxUp06dvBYOjxo1ShJ7/MD/EA4DXuLOlcOStH///raWBAAA5PlwuKamhk3pAABohfDwcK+Fwz179pTVaiUcht8hHAa8xF3h8KBBg2SxWJiwAABwE0+Gw0lJSQoMDKS1BAAArRAeHq5Lly55bbzavsOAPyEcBrzEHRvSSdfaU4wcOVJ79+51R1kAAPg9T4bDoaGhSkhIYN4GAKAVOnfu7LWVw5LYAB5+iXAY8BJ39RyW2JQOAAB3CgoKkuSZcFi61lqClcMAALScN9tKSNfC4bNnz6qwsNBrYwJGIxwGvMRkMslkMrklHE5OTtbRo0e9+vMaAAA6KrPZrMDAQI+Fw6NHj1ZGRoYqKys9cn8AADoqI8JhiU3p4F8IhwEvCggIcFs47HK52NwGAAA3CQ4O9ujK4erqamVkZHjk/gAAdFTeDof79eunrl27Eg7DrxAOA17krnA4ISFBQUFBTFgAALiJJ8PhkSNHKiAggNYSAAC0kLfDYZPJpFGjRvFdG36FcBjwIneFw8HBwUpMTGRzGwAA3MST4XCnTp00fPhwwmEAAFrI2+GwJMJh+B3CYcCLAgIC5HQ63XIvNqUDAMB9PBkOS9fmbcJhAABaxohwODk5WdnZ2SotLfXquIBRCIcBL3LXymHp2oSVkZHh0S+yAAD4C0+Hw2PGjNGhQ4eYtwEAaAGjwmFJOnDggFfHBYxCOAx4kdlsdms4XF1drczMTLfcDwAAf+aNcLiqqop5GwCAFggPD9elS5f0/7N37/FR1Xf+x9+TCUlIMgRCuORCAoMzCZBwi2FyYXWtVVGpiiv+WrQFa9f9aVXa+nhsd7fbbffSdtftBfG3tftoraxVrGAXq8XS1i3SJUC4yzXcAiEXIATMndzn9wdOTEgCk8mZMzOZ1/Px8LGPnjnnez7jih/Pe77n+3W73abdMysrS9HR0bypi7BBOAyYyMiZw3PmzJHFYqFhAQBgAH+Hw3PmzFFERARLSwAAMATx8fHq6upSa2urafccNWqUcnJyeNZG2CAcBkxkZDgcFxenzMxMNqUDAMAA/g6H4+LilJWVRd8GAGAIbDabJAVkaQnCYYQLwmHAREZuSCfRsAAAMIq/w2Hp6tISzBwGAMB7gQyHjxw5ora2NlPvCwQC4TBgIiNnDktXdz7/8MMPDR0TAIBwZEY47OnbHR0dfr0PAAAjRSDD4c7OTh06dMjU+wKBQDgMmMjIDemkqw2rublZJ06cMGxMAADCkVkzh9va2nTkyBG/3gcAgJEiUOFwTk4Oe/wgbBAOAyYyeubwvHnzJImGBQDAMJkRDs+bN08Wi4V1hwEA8FKgwmHPHj88ayMcEA4DJjI6HE5MTFRGRgYPmQAADJMZ4XB8fLwyMzNZdxgAAC8FKhyW2OMH4SMy0AUA4cToDekkGhYAAEaIiopSXV2d3+8ze/Zs/c///I/WrFmjxsZG2Ww2paSkqKioSHFxcX6/PwAAocTTGwMVDr/zzjvq6uqS1Wo1/f6AWQiHARMZPXNYurq5zapVq+R2u2WxWAwdGwCAcOHvmcOlpaV66aWX9M4776i1tVWPPfZYn88TEhK0fPlyPfXUU8rMzPRbHQAAhBKr1arY2Fg1NTWZfm/PHj8nT56kN2NEY1kJwET+CIfnzZuny5cv6+zZs4aOCwBAOPFXOFxXV6eHH35YM2bM0OrVq9Xa2jrgefX19Vq9erWysrL08MMPq76+3vBaAAAIRTabLWAzhyX2+MHIRzgMmCgiIsIvM4clGhYAAMPhj3C4qqpKCxcu1Pr164d03fr167Vw4UJVVVUZWg8AAKEoUOHw+PHjNWXKFJ61MeKxrARgIn/MHE5OTtbEiRO1b98+PfDAA4aODQBAuDA6HK6rq9Ndd92lw4cP+3T9oUOHtGjRIm3dulUJCQmG1QUAQKgJVDgsSTk5OXr//ffZKwAjGuEwYCJ/hMMWi0Xz5s3T3r17DR0XAIBwYnQ4/MQTTwwaDNvtdi1ZskQpKSmqrq7Whg0bVFZW1u+8Q4cO6S//8i+1bt06w+oCACDUBCIc9uwV8D//8z9qa2tjrwCMaCwrAZjIarWqu7vb8HHnz5/Pqy4AAAyDkeFwaWnpgEtJZGRk6N1339WJEyf0/e9/X1/72tf0/e9/XydOnNA777yj9PT0ftesX79ex44dM6QuAABCkZnh8LV7BbS1tQ14HnsFYCQhHAZM5I+Zw9LVhfKrqqpUU1Nj+NgAAIQDI8Phl156qd+xjIwM7dixQ4sXL1ZERN//BI+IiNBnPvMZlZSUDBgQDzQeAADhwqxwmL0CEK4IhwET+WNDOumTXVR/9rOfac2aNXrxxRe1Zs0a/f73v1dzc7Ph9wMAYKQxKhxubm7WmjVr+h1/8cUXNXny5OteO3nyZL344ov9jq9Zs4Z+DgAIW2aEw0btFcAMYoQi1hwGTOSPmcOlpaX68Y9/LEn6xje+0e9z1kICAODGjAqHi4uL1dDQ0OeY3W7Xvffe69X1ixcv1rRp03T69OmeY/X19SouLtadd9457PoAAAg1ZoTD7BWAcMbMYcBERobDvddCGmiWkQdrIQEAcGPR0dGGhMPV1dX9ji1ZsqTfUhKDiYiI0JIlS/odP3fu3LBrAwAgFMXHx6upqclv47NXAMId4TBgIqM2pGMtJAAAjOWZOex2u4c1zkAzm1JSUoY0xkDnm71LOwAAwcLfM4fZKwDhjnAYMJERM4dZCwkAAONFRUVJkjo7O4c1js1m63dsoNnE1zPQ+QONCwBAOLDZbGpqahr2D7gDYa8AgHAYMJUR4fCN1kJ67rnn9IMf/EDPPfec7Hb7gOd51kICAABXecLh4S4tMdCs3w0bNnj95lB3d7c2bNjQ73hycvKw6gIAIFTZbDZ1d3erpaXF8LGN2iugN89eAUCoIBwGTBQRETGscJi1kAAA8A+jwuGioiKNGTOmz7GysjJt3LjRq+t/85vf9NmMTrq6uWxRUdGw6gIAIFR53p7xx9IS7BUAEA4DphruzGHWQgIAwD884XBbW9uwxomLi9OKFSv6HX/66ad1/vz56157/vx5PfPMM/2Or1ixQnFxccOqCwCAUOXPcJi9AgDCYcBUwwmHWQsJAAD/MWrmsCQ9+eST/Y6dPXtW+fn5evfdd/stMdHd3a133nlHLpdLZ8+e9Wo8AADChT/DYfYKAAiHAVNZrVav1xy8FmshAQDgP0aGw1lZWVq6dGm/4+Xl5brvvvvkcDj67BFw00036f777x8wGF66dKkyMzOHXRMAAKHKn+EwewUAUmSgCwDCyXBmDhu1FtIPf/jDPsdZCwkAAGPDYUn66U9/qqNHj+rQoUP9PisrK+vXjweSnZ2tn/70p4bUAwBAqPJnOOzZK6D3RCzPXgGf+cxnbng9ewVgJGDmMGCi4WxIx1pIAAD4j9HhcEJCgjZt2qTs7Gyfrs/OztamTZuUkJBgSD0AAISq+Ph4SVJTU5PhY7NXAEA4DJhqODOHWQsJAAD/MToclqTU1FRt3bp1wCUmrmfp0qXaunWrUlNTDasFAIBQ5Qla/TWxib0CEO4IhwETDSccZi0kAAD8xx/hsHR1BvG6det09OhRrVy5ctCZwAkJCVq5cqVKS0u1bt06ZgwDAPCxiIgIxcfH+y0cZq8AhDvWHAZMNJwN6VgLCQAA//FXOOyRlZWlVatW6ZFHHtGCBQt0991365577pHNZlNycrKKiop4BRUAgEHYbDa/LonIXgEIZ8wcBkw0nJnDrIUEAID/+Dsc9jh69KgkadmyZXr66ae1fPly3XnnnfRjAACuw9/hMHsFIJwRDgMmGk44LLEWEgAA/mJWOHzw4EFJUl5enl/vAwDASOLvcFhirwCEL5aVAEwUERExrHDYsxbS+vXr+xz3rIVkt9v1wAMPKCUlRdXV1dqwYUO/pSQ8WAsJAIBPmBUOHz9+XJLkcDj8eh8AAEYSM8Jh6ZO9AkpLS/WTn/xEappfGQAAtfpJREFUa9asUX19/YDnrVixQk8++STP1Qh5hMOAiYY7c1hiLSQAAPzBrHC4vLxcUVFRiojgBT4AALxlVjjs4dkr4Fvf+pYSExO1YMECff7zn2evAIxIhMOAiYazIZ2HZy2kRYsWDRgQ3whrIQEA0J9Z4fCFCxc0ZswYv94DAICRJj4+XtXV1abf1/PGzz333KOnn37a9PsDZmDKAmAiI2YOS6yFBACA0axWqywWi9/D4fr6ek2YMMGv9wAAYKSx2Wxqamoy/b579uyRJM2bN8/0ewNmIRwGTGRUOCx9shbS0aNHtXLlSkVHRw963sqVK1VaWqp169YxYxgAgAFYLBZFRUX5PRxubW3VlClT/HoPAABGGrOXlfDwbCTrcrlMvzdgFpaVAEw03A3pBuJZC6m8vFxvv/22Xn75ZbW0tLAWEgAAQ+TvcLi6ulput1s33XST3+4BAMBIFKhw+MSJE7JYLJo0aZLp9wbMQjgMmMjImcPXqqio0KhRo/TFL37RL+MDADDS+TscLikpkXR1/X8AAOC9QIXDlZWVGj16tOn3BczEshKAifwZDp8/f17x8fF+GRsAgHDg73D4ww8/lCTdfPPNfrsHAAAjkWfN4eFu8D5UFy9e1Lhx40y9J2A2wmHARFar1W/N7KOPPmKDGwAAhsHf4XBpaakkac6cOX67BwAAI5HNZpMkNTc3m3rfxsZGTZ482dR7AmYjHAZM5M+Zw1euXFFaWppfxgYAIBz4Oxw+c+aMIiMjFRUV5bd7AAAwEnnCYTOXlujs7FRHR4emTp1q2j2BQCAcBkzkr3C4trZWbrdbDofD8LEBAAgX/g6Hz507xyaxAAD4IBDh8IEDByRJM2bMMO2eQCAQDgMmioiI8Es4vGPHDknSrFmzDB8bAIBw4e9w+PLlyxo/frzfxgcAYKTy7K9jZji8e/duSdLcuXNNuycQCITDgIn8NXN4//79kqT58+cbPjYAAOHC3+FwS0uLUlNT/TY+AAAjlWfmcFNTk2n3PHjwoCRpwYIFpt0TCATCYcBE/tqQ7siRI5Kk3Nxcw8cGACBc+DMc9uywbrfb/TI+AAAjWSCWlThx4oQsFoumTJli2j2BQCAcBkzkr5nDp0+fltVqVUxMjOFjAwAQLvwZDu/cuVOSNHPmTL+MDwDASBaIcPjs2bM8YyMsEA4DJvJXOFxdXd2zBhMAAPCNP8Phffv2SZLmzZvnl/EBABjJYmNjFRERYWo4XFNTo7Fjx5p2PyBQCIcBE0VEXP0jZ/TSEmxwAwDA8PkzHD58+LAkKS8vzy/jAwAwklksFsXHx5saDjc2Nmry5Mmm3Q8IFMJhwERWq1WSDJ89zAY3AAAMnz/D4bKyMkVERDADCQAAH9lsNtPC4e7ubrW3tysjI8OU+wGBRDgMmMgf4XBDQ4O6u7s1ffp0w8YEACAc+TMcrqqq0ujRo/0yNgAA4cDMcNiz6XtWVpYp9wMCiXAYMJEnHDZyWYldu3ZJYoMbAACGy5/hcG1trcaNG+eXsQEACAdmhsOe5+w5c+aYcj8gkAiHARP5Y+bwnj17JEm5ubmGjQkAQDjyZzjc1NTEuoUAAAyDmWsOHzhwQJLkcrlMuR8QSITDgIn8EQ57XndZsGCBYWMCABCO/BUOd3Z2qrOzU1OnTjV8bAAAwoXNZlNTU5Mp9zp+/LgkseYwwgLhMGCiiIirf+SMDIc9G9zEx8cbNiYAAOHIX+GwZ/YR6xYCAOA7M5eVOHv2rGJiYnqe4YGRjH/KARP5Y+ZwVVWV4uLiDBsPAIBw5a9wePfu3ZJYtxAAgOEwMxy+cOGCEhISTLkXEGiEw4CJ/LEh3aVLl5SYmGjYeAAAhCt/hcOHDh2SxBJQAAAMh5nhcENDgyZNmmTKvYBAIxwGTOSPmcNNTU1KSUkxbDwAAMKVv8LhEydOSJLS09MNHxsAgHBhVjjc3d2ttrY2+jbCBuEwYCKjw+HW1lZ1dXVp2rRphowHAEA481c4XFFRoZiYGMPHBQAgnJgVDp88eVISewUgfBAOAyYyekM6zxqGM2fONGQ8AADCmb/C4ZqaGtYtBABgmGw2m1paWgx9E3cgO3fulCTNnj3br/cBggXhMGAio2cO79mzR5I0b948Q8YDACCc+Sscbmho0MSJEw0fFwCAcBIfHy/p6tKK/vThhx9KYq8AhA/CYcBERm9Id/jwYUmSy+UyZDwAAMJZVFSUurq6DJ2RxLqFAAAYw2azSZLfl5Y4fvy4JMnhcPj1PkCwIBwGTGT0zOGTJ0/KYrFo/PjxhowHAEA4i4qKkiR1dHQYNuaZM2ck8YAJAMBwecJhf88cPnPmjKKjo3uWhQRGOv5JB0xkdDhcWVmp2NhYQ8YCACDcecJhI5eW2LVrlyQpOzvbsDEBAAhHZs0cvnDhgsaMGePXewDBhHAYMJHR4XBtba3GjRtnyFgAAIQ7f4TDnnUL8/LyDBsTAIBwZFY4XF9fr0mTJvn1HkAwIRwGTOR5LcWocLixsVGTJ082ZCwAAMJddHS0JGPD4WPHjkmSZs6cadiYAACEIzPCYbfbrdbWVk2ZMsVv9wCCDeEwYCIjZw53dnaqs7NT06ZNG/ZYAADAPzOHy8vLNWrUKEVGRho2JgAA4ciMcLi8vFySlJmZ6bd7AMGGcBgwkScc7u7uHvZY+/fvlyRlZWUNeywAAOCfcPj8+fM9D7MAAMB3MTExslqtfg2HS0pKJEk5OTl+uwcQbAiHARMZOXN4z549kqS5c+cOeywAAOCfcPijjz5SUlKSYeMBABCuLBaLbDabX8NhzySsBQsW+O0eQLAhHAZMZGQ4fODAAUmSy+Ua9lgAAMA/4fCVK1eUlpZm2HgAAISz+Ph4v4bD7BWAcEQ4DJjIyA3pTp48KYvFotTU1GGPBQAAjA+Ha2tr5Xa7NX36dEPGAwAg3Pl75vCZM2cUFRXV8+wOhAP+aQdMZOTM4bNnzyomJmbY4wAAgKuMDod37twpidlHAAAYxWazqampyW/js1cAwhHhMGAiIzeku3jxosaOHTvscQAAwFVGh8OedQtzc3MNGQ8AgHDn75nDdXV1mjhxot/GB4IR4TBgIiNnDjc2Nmry5MnDHgcAAFxldDh89OhRSYTDAAAYxd/hcGtrq6ZMmeK38YFgRDgMmMiocLi7u1vt7e3KyMgwoiwAACDjw+HTp0/LarUqNjbWkPEAAAh3/gyHKysr5Xa75XQ6/TI+EKwIhwETGRUOe2Yi0bQAADCO0eFwdXU1wTAAAAbyZzhcUlIiScrJyfHL+ECwIhwGTOTZ8XS44bBng5u5c+cOtyQAAPAxo8PhS5cuKTEx0ZCxAACAf8Nhz14BN998s1/GB4IV4TBgIqNmDh88eFCStGDBgmHXBAAArho1apQk48Lh5uZmpaSkGDIWAADwbzhcWloqSZo9e7ZfxgeCFeEwYCJPONzd3T2scY4fPy5JmjZt2rBrAgAAV0VERCgyMtKQcLi1tVVdXV30agAADBQfH++3cPj06dMaNWqUIiMj/TI+EKwIhwETGTVz+OzZs4qOju5ZpgIAABgjKirKkHB4z549kqQZM2YMeywAAHCVzWZTa2urOjs7DR/7/Pnzstlsho8LBDuSJcBERoXDFy5cUEJCghElAQCAXqKiotTW1jbscfbu3SuJ/QEAADCSJ7xtamoyfOyPPvpISUlJho8LBDvCYcBERm1IV19fr0mTJhlREgAA6MWomcOHDx+WxP4AAAAYyRMO+2NpiStXrmjKlCmGjwsEO8JhwERGzBzu7u5WW1sbTQsAAD8wKhw+efKkLBaLJk6caEBVAABA8l84XFNTI7fbLYfDYei4QCggHAZM5Jk5PJwN6U6fPi1JyszMNKQmAADwCaPC4crKSsXExBhQEQAA8PBXOLxjxw5JUnZ2tqHjAqGAcBgwkcViUURExLBmDu/cuVOSlJOTY1RZAADgY0aFw7W1tRo7duzwCwIAAD38FQ7v27dPknTzzTcbOi4QCgiHAZNZrdZhhcMHDhyQxBqGAAD4g1HhcGNjoyZPnmxARQAAwMNf4XBpaakkad68eYaOC4QCwmHAZMMNhz1Na8aMGUaVBAAAPmZEONzd3a329nZlZGQYVBUAAJCk+Ph4ScaHw2VlZYqMjFRUVJSh4wKhgHAYMNlwl5UoLy9XVFRUz/rFAADAOEaEw0ePHpUkOZ1OI0oCAAAfi46OVmRkpOHh8Llz53qCZyDckC4BJrNarcPakO78+fM9r9IAAABjGREO7969W5I0e/ZsI0oCAAAfs1gsstlshofDly9fVlJSkqFjAqGCcBgw2XCXlairq9OECRMMrAgAAHgYEQ6zPwAAAP5js9nU1NRk6JhXrlxRWlqaoWMCoYJwGDDZcMPh1tZWpaenG1gRAADwMCIcPn78uCRp+vTpRpQEAAB6MXrm8OXLl9Xd3a2bbrrJsDGBUEI4DJhsOOFwdXW13G43TQsAAD8xIhw+e/asoqOj2R8AAAA/MDocLikpkSTNmjXLsDGBUMJ/sQImG86GdJ6mlZOTY2RJAADgY0aEwzU1NRozZoxBFQEAgN6MDof37t0rSbr55psNGxMIJYTDgMmGM3N43759kmhaAAD4ixHhMPsDAADgP0aHw0ePHpXEczbCF+EwYDKr1aru7m6fri0tLZUkzZ0718CKAACAhxHhcFtbG5vaAADgJ0aHw2VlZbJarYqJiTFsTCCUEA4DJhvOzOHTp08rMjJSkZGRBlcFAACk4YfDVVVV7A8AAIAfxcfHGxoOV1dXKz4+3rDxgFBDOAyYbDjh8Pnz52Wz2QyuCAAAeAw3HN65c6ckKTs726iSAABAL0bPHL58+bLGjx9v2HhAqCEcBkw2nHD4o48+UlJSksEVAQAAj+GGwx9++KEk1i0EAMBfjA6Hm5ublZqaath4QKghHAZMFhER4XM43NLSwhqGAAD40XDDYc/+AHPmzDGqJAAA0IvNZlNTU5MhYzU0NKi7u1vTp083ZDwgFBEOAybzdUO6y5cvs4YhAAB+Ntxw2LM/QFRUlIFVAQAAD5vNpra2NnV0dAx7rF27dkmSZs2aNeyxgFBFOAyYzNdlJXbs2CGJpgUAgD8NNxw+d+4cm9oAAOBHnn14jFhaYs+ePZKk+fPnD3ssIFQRDgMm8zUc3rdvnyQpNzfX6JIAAMDHhhsOf/TRR2xqAwCAHxkZDh85ckSStGDBgmGPBYQqwmHAZL6Gw0ePHpXEBjcAAPjTcMPhlpYWNrUBAMCPjAyHT506pYiICN76QVgjHAZM5uuGdGVlZbJarYqJifFDVQAAQPokHHa73UO+1rOpjd1u90NlAABAMjYcrq6uVlxc3LDHAUIZ4TBgMl9nDtO0AADwP89Gcp2dnUO+1rOpzYwZMwytCQAAfMIzy9eIcLi2tpbloBD2CIcBk1mtVnV3dw/5usuXLyspKckPFQEAAA9POOzL0hKe/QHmzZtnaE0AAOATRs4cbm5uVkpKyrDHAUIZ4TBgMl9nDtO0AADwv+GEw55NbfLy8gytCQAAfMKocLilpUVdXV2aPn26EWUBIYtwGDCZL+FwU1OTuru7aVoAAPjZcMLhsrIyRUREaOzYsQZXBQAAPKKiohQVFaWmpqZhjbN7925JLAcFEA4DJvMlHN65c6ckaebMmf4oCQAAfGw44XBVVZVGjx5tdEkAAOAaNptt2DOH9+zZI0maP3++ESUBIYtwGDBZRETEkMPhvXv3SpJyc3P9URIAAPjYcMLh2tpaJSYmGl0SAAC4hhHh8OHDhyVJLpfLiJKAkEU4DJjMlw3pPE2LNQwBAPCv4YTDTU1Nmjx5stElAQCAaxgRDp88eZLloAARDgOm82VZCc8ahmPGjPFTVQAAQPI9HO7s7FRnZ6emTp3qh6oAAEBvRoTDVVVVio2NNagiIHQRDgMm8yUcrqyspGkBAGACX8Ph/fv3S5KysrKMLgkAAFwjPj5+2OEwy0EBVxEOAybzJRy+dOkSTQsAABP4Gg57NrWZM2eO4TUBAIC+jJg53NTUpOTkZIMqAkIX4TBgMl82pGtqalJKSoqfKgIAAB7R0dGShh4OHzp0SJK0YMECw2sCAAB9DTccbm1tVWdnp+x2u4FVAaGJcBgw2VA3pGttbVVXV5emTZvmx6oAAIDk+8zhkydPSpKmTJlieE0AAKCv4YbD+/btk8RyUIBEOAyYbqjLSnia1owZM/xVEgAA+Jiv4fDZs2cVExPjj5IAAMA1bDabmpqafL5+9+7dkqT58+cbVRIQsgiHAZMNNRz2NK158+b5qyQAAPAxX8PhixcvKiEhwR8lAQCAawx35vDhw4clSS6Xy6iSgJBFOAyYbKjhsKdpsYYhAAD+52s43NDQoIkTJ/qjJAAAcI3hhsMnTpyQxWLRhAkTDKwKCE2Ew4DJhhoOe5oWD5wAAPifL+Fwd3e32tralJ6e7q+yAABALzabTR0dHWpra/Pp+srKSsXGxhpcFRCaCIcBk0VERAwpHK6srNTo0aP9WBEAAPCwWq2yWCxDCodPnz4tSXI6nf4qCwAA9GKz2STJ59nDFy9e1Lhx44wsCQhZhMOAyaxWq7q7u70+v7a2lqYFAIBJLBaLoqKihhQO79y5U5KUk5Pjr7IAAEAv8fHxknwPh5uamjR58mQjSwJCFuEwYLKhLivR2NhI0wIAwERDDYcPHDggScrLy/NXSQAAoJfhzBzu7OxUR0eHpk2bZnRZQEgiHAZMNpRwmKYFAID5hhoOHzt2TJI0c+ZMf5UEAAB6GU44vH//fklSVlaWkSUBIYtwGDDZUMJhz0wkmhYAAOYZajhcXl6uUaNGKSKC/7QGAMAMwwmHd+/eLUmaN2+eoTUBoYr/ggVMNpQN6TxNa86cOf4sCQAA9DLUcPj8+fM9D6kAAMD/PH23qalpyNcePHhQkuRyuQytCQhVhMOAyYayIZ2naS1YsMCfJQEAgF6GGg7X1dUpKSnJjxUBAIDehjNz+MSJE7JYLEpJSTG6LCAkEQ4DJhvKshKeppWenu7nqgAAgMdQw+ErV64oLS3NjxUBAIDeIiMjFRMT41M4XFFRoZiYGD9UBYQmwmHAZEMJhysqKhQdHe3nigAAQG9DCYdra2vldrs1ffp0P1cFAAB6s9lsPoXDFy9e1Lhx4/xQERCaCIcBkw0lHK6pqdHYsWP9WxAAAOhjKOHwzp07JUmzZs3yZ0kAAOAa8fHxPoXDDQ0Nmjx5sh8qAkIT4TBgsqGEwzQtAADMN5RweN++fZKk3Nxcf5YEAACu4cvM4e7ubnV0dGjq1Kn+KQoIQYTDgMkiIiK8Coe7u7vV3t6ujIwME6oCAAAeQwmHjx49KkmaP3++P0sCAADX8CUcPnTokCQpMzPTHyUBIYlwGDCZ1WpVd3f3Dc87duyYJMnpdPq7JAAA0MtQwuHTp0/LarUqNjbWz1UBAIDefAmHd+3aJUmaO3euHyoCQhPhMGAyb5eV8KxhOGfOHH+XBAAAehlKOFxdXa24uDg/VwQAAK7lSzh84MABSZLL5fJHSUBIIhwGTOZtOOxpWgsWLPB3SQAAoJehhMOXL19WYmKinysCAADXstlsampqGtI1x48flySWbwR6IRwGTOZtOOxpWtOnT/d3SQAAoJehhMPNzc1KSUnxc0UAAOBavswcrqioUExMjJ8qAkIT4TBgMm83pCsvL1d0dLQiIvhjCgCAmbwNh69cuaKuri5NmzbNhKoAAEBvvoTDNTU1Gjt2rH8KAkIUqRNgMm83pKupqdGYMWNMqAgAAPTmbTi8Z88eSdKMGTP8XRIAALiGL+FwfX29Jk2a5KeKgNBEOAyYzNtlJWhaAAAERlRUlNra2m543t69eyWxeSwAAIEQHx+vxsZGud1ur87v7u5We3s76w0D1yAcBkxmtVol6bqzh91ut1pbWzVlyhSzygIAAB/zdubwkSNHJLF5LAAAgWCz2dTV1aXW1lavzj927JgkKTMz059lASGHcBgwmSccvt7s4fLyckmS0+k0pSYAAPAJb8PhkydPymKxaOLEiSZUBQAAerPZbJLk9dISu3btksQbP8C1CIcBk3kTDpeUlEiScnJyTKkJAAB8wttwuLKyUqNHjzahIgAAcK2hhsMffvihJMnlcvmtJiAUEQ4DJouIuPrH7nrLSniaFq+pAgBgPm/D4YsXL7LjOQAAATLUcPj48eOSJLvd7reagFBEOAyYzJuZw6WlpZKkWbNmmVITAAD4hLfhcGNjoyZPnmxCRQAA4FqecLipqcmr88vLyxUdHd0zYQvAVfyJAEzm7ZrDo0aNomkBABAA3oTD3d3d6ujoYMdzAAACZKgzhy9cuKCEhAR/lgSEJJInwGTehMPnz5/XmDFjzCoJAAD04k04fOTIEUnseA4AQKAMNRyur6/XpEmT/FkSEJIIhwGTeRMOf/TRR5owYYJZJQEAgF6ioqLU1dV13V7t2fGczWMBAAiM+Ph4Sd6Fw93d3Wpra1N6erq/ywJCDuEwYDLPUhHXe+BsbW1VWlqaWSUBAIBeoqKiJEkdHR2DnnPo0CFJbB4LAECgWK1WjR492qtw+PTp05Ikp9Pp77KAkEM4DJjMM3O4u7t7wM/Pnz8vt9sth8NhZlkAAOBjnnD4ektLsOM5AACBZ7PZvAqHd+7cKUmaM2eOv0sCQg7hMGCyGy0rUVJSIknKzs42rSYAAPAJb8Lhs2fPsuM5AAAB5m04vH//fklSXl6enysCQg//NQuY7Ebh8L59+yTRtAAACBRvwuGamho2jwUAIMC8DYePHTsmScrKyvJ3SUDIIRwGTHajcLi0tFQSr7sAABAo3oTDdXV1bB4LAECAeRsOl5eXKyoqijd+gAHwpwIw2Y3C4dOnTysyMrLnwRQAAJjLm3C4ra1NU6ZMMaskAAAwAJvNpqamphued/78ed74AQZBOAyYzPNL5WAb0p07d07x8fFmlgQAAHq5UThcWVnJ5rEAAAQBb2cO19XVaeLEiSZUBIQewmHAZDeaOXz58mUlJSWZWRIAAOjlRuEwm8cCABAcvA2H29ralJ6ebkJFQOghHAZMdqNw+MqVK0pLSzOzJAAA0MuNwuEPP/xQkpSbm2taTQAAoL/4+PgbhsNnz57ljR/gOgiHAZNdLxz+6KOP1N3drenTp5tdFgAA+NiNwmE2jwUAIDh4M3N4586dkqTZs2ebURIQcgiHAZNdLxzmNVUAAALvRuFweXm5IiMjNWrUKDPLAgAA1/AmHN63b58kKS8vz4ySgJBDOAyY7HrhsKdpzZ8/39SaAADAJ24UDrN5LAAAwcFms6mpqUlut3vQc44dOyZJmjVrllllASGFcBgwWUTE1T923d3d/T47cuSIJOnmm282tSYAAPCJG4XDH330kcaPH29mSQAAYAA2m03d3d1qaWkZ9JwzZ85o1KhRioyMNLEyIHQQDgMmu97M4bKyMlmtVsXGxppdFgAA+NiNwuGWlhalpqaaWRIAABiAzWaTpOsuLXHu3DmNGTPGrJKAkEM4DJjseuFwdXW14uLizC4JAAD0cr1wuKGhQd3d3bLb7WaXBQAAruEJh5uamgY9p66uThMmTDCrJCDkEA4DJrteOHzp0iVeUwUAIMCuFw7v2rVLkjRz5kxTawIAAP15M3P4ypUrSktLM6skIOQQDgMmu1443NLSopSUFLNLAgAAvURERCgyMnLAcHjv3r2S2DwWAIBgcKNw+Pz583K73XI4HGaWBYQUwmHAZINtSNfU1KSuri5eUwUAIAhERUUNGA57No/Ny8szuyQAAHCN+Ph4SYOHwyUlJZKknJwc02oCQg3hMGCywWYO7969WxKvqQIAEAwGC4fLysoUERHBxjYAAASBG80c3rdvnyTp5ptvNq0mINQQDgMmGywc5jVVAACCx2DhcFVVlWJjYwNQEQAAuNaNZg4fPXpUkjR37lyzSgJCDuEwYLLBwuFDhw5JkhYsWGB6TQAAoK/BwuFLly5p3LhxAagIAABcKyIiQnFxcYOGw6dPn1ZkZKRGjRplcmVA6CAcBkw2WDjseU117NixAagKAAD0Nlg43NTUpOTk5ABUBAAABmKz2QYNh8+dO9ez9ASAgREOAyYbLByurKzkNVUAAILEQOFwR0eHOjs7NXXq1MAUBQAA+rleOPzRRx8pKSnJ5IqA0EI4DJgsIuLqH7vu7u4+x3lNFQCA4DFQOLx//35JUmZmZgAqAgAAA7HZbGpqahrws5aWFqWlpZlcERBaCIcBkw02c7ipqUkpKSmBKAkAAFxjoHDYs3nsnDlzAlESAAAYwGAzhy9duiS3262bbropAFUBoYNwGDDZQOFwe3u7Ojs7NW3atECVBQAAehkoHPZsHutyuQJREgAAGMBg4XBJSYkkKScnx+ySgJBCOAyYbKBweN++fZKkGTNmBKQmAADQ10Dh8IkTJ2SxWHg9FQCAIBIfHz9gOOx54yc3N9fskoCQQjgMmMyz5nDvcHjXrl2SpLlz5waiJAAAcI2BwuGKigpFR0cHqCIAADCQwWYOHz16VJI0f/58s0sCQgrhMBAAERERfTakO3z4sCQpPz8/UCUBAIBeBgqHL168qLFjxwamIAAAMKDBwuGysjJZrVbFxMQEoCogdBAOAwFgtVr7zBz2vKY6ceLEAFYFAAA8BgqHGxoa6NUAAASZwcLh6upqxcfHB6AiILQQDgMBcG04XFlZqdGjRwewIgAA0Nu14XB3d7fa2tqUnp4ewKoAAMC1BguHL1++rKSkpABUBIQWwmEgAK4Nh3lNFQCA4HJtOFxWViZJcjqdgSoJAAAMwGazqbm5uc/SjZLU0tKi1NTUAFUFhA7CYSAArg2HGxsblZycHMCKAABAb9eGwzt37pQk5eTkBKokAAAwAJvNJrfbrZaWlp5j9fX16u7u1vTp0wNYGRAaCIeBALBarT2/anZ2dqqjo0MZGRkBrgoAAHhcGw4fOHBAknTzzTcHqiQAADAAm80mSX2WlvD8qJudnR2QmoBQQjgMBEBERETPzOHDhw9LkrKysgJZEgAA6OXacPjYsWOSpJkzZwaqJAAAMADPpnO9w+E9e/ZIknJzcwNSExBKCIeBAOi9rMSuXbskSXPmzAlkSQAAoJdrw+GzZ89q1KhRiojgP58BAAgmA80cPnLkiCTe+AG8wX/dAgHQOxw+ePCgJMnlcgWyJAAA0Mu14fD58+d7Hj4BAEDwGCgcLisrk9VqVVxcXKDKAkIG4TAQAL3D4ePHj0sSaw4DABBErg2H6+rqNGHChABWBAAABjJQOFxVVUUwDHiJcBgIgN7hcEVFhWJiYgJcEQAA6O3acPjKlStKS0sLYEUAAGAgA4XDly9f1vjx4wNVEhBSCIeBAIiIiFB3d7ckqaamRmPHjg1sQQAAoI/e4XBNTY3cbrduuummAFcFAACuFRcXJ4vF0iccbm5uVkpKSgCrAkIH4TAQAL1nDjc0NGjixIkBrggAAPTWOxzeuXOnJGnWrFmBLAkAAAzAYrEoPj5eTU1NkqSmpiZ1dXVp+vTpAa4MCA2Ew0AAeMLh7u5utbW1sd4wAABBxhMOu91u7d+/X5I0b968wBYFAAAGZLPZemYO7969WxI/6gLeIhwGAsATDp84cUKSlJmZGeCKAABAb1FRUXK73erq6lJpaakkKTc3N8BVAQCAgfQOh/fs2SNJmj9/fiBLAkIG4TAQAJ5w2POa6uzZswNcEQAA6C0qKkqS1N7ertOnT8tqtWr06NEBrgoAAAwkPj6+Jxw+fPiwJGnBggWBLAkIGYTDQABYrVZ1d3frwIEDkmhaAAAEm97hcHV1teLi4gJcEQAAGEzvmcOnTp1SRESExowZE+CqgNBAOAwEQEREhLq6unT8+HFJksPhCHBFAACgt97h8OXLl5WYmBjgigAAwGB6h8NVVVX8qAsMAeEwEACeZSXKy8sVHR2tiAj+KAIAEEx6h8PNzc1KSUkJcEUAAGAwvcPh2tpaftQFhoBECggATzh84cIFXnUBACAIecLh+vp6dXV1adq0aQGuCAAADKZ3ONzU1MSPusAQEA4DAeAJh+vq6jRhwoRAlwMAAK7hCYf3798vSZoxY0YAqwEAANfjCYdbW1v5URcYIsJhIAA84XBra6vS09MDXQ4AALiGJxz+8MMPJUnz5s0LZDkAAOA6bDabmpqatGfPHknSzJkzA1wREDoIh4EAiIiI6Hnlxel0BrgaAABwLU84fOLECUnSggULAlkOAAC4Ds/MYU84PH/+/ABXBIQOwmEgAKxWq2pqaiRJOTk5Aa4GAABcyxMOnz17VhaLRUlJSQGuCAAADMZms6m5uVkHDx6UJLlcrgBXBIQOwmHARDU1Nfre976no0eP9jStDz/8sCcoBgAAgVdTU6OXX35ZknT06FFFREToe9/7Hv0aAIAgVFNTo/fff1+StGHDBknSf/7nf9K3AS9Z3G63O9BFACPde++9p7/7u7/rWbdwIHPmzNH3vvc93X333SZWBgAAPOjXAACEDvo2YAzCYcCPysvLtXDhQlVWVnp9TVpamoqLi9moDgAAk9CvAQAIHfRtwFgsKwH4ye7du5WZmTmkhiVJlZWVcjqd2r17t58qAwAAHvRrAABCB30bMB4zhwE/KC8vV2Zmptra2nweIzo6WsePH+eXTQAA/IR+DQBA6KBvA/5BOAz4wZQpUwb9JdNut2vJkiVKSUlRdXW1NmzYoLKysgHPTUtLU0VFhT9LBQAgbNGvAQAIHfRtwD9YVgIw2HvvvTdgw8rIyNC7776r0tITWrz4+0pO/poWL/6+SktP6J133hnwl8vKykr99re/NaNsAADCCv0aAIDQQd8G/IeZw4DB5s6d22+31IyMDO3YsUPbtk3WypVS756Wlia98IJUWHheLpdLZ8+e7Tfevn37zCgdAICwQb8GACB00LcB/yEcBgxUU1OjSZMm9Tv+zjvvqKPjM3roIenaP3EWy9X/+9ZbUmTkO7r//vv7XX/hwgVNnDjRHyUDABB26NcAAIQO+jbgXywrARjo5Zdf7nfMbrdr0aJ7tXJl/4YlfXLsK1+R7r57saZNm+bVuAAAwDf0awAAQgd9G/AvwmHAQKdOnep3bMmSJSoujtAg6+ZLutq4Kiqk4uIILVmypN/ngy2kDwAAho5+DQBA6KBvA/5FOAwYqK6urt+xlJQUnTvn3fXnzl0935txAQCAb+jXAACEDvo24F+Ew4CBxo4d2+9YdXW1kpO9uz45+er53owLAAB8Q78GACB00LcB/yIcBgw0ffr0fsc2bNigoqJupaV9sij+tSwWacoUqaioWxs2bOj3ud1uN7pUAADCFv0aAIDQQd8G/Mvidg+0dDcAX3izi6rUd8F8dlEFAMBc9GsAAEIHfRvwL2YOAwaaOHGi5syZ0+/4008/rcLC83rrLSk1te9naWlXG1Zh4Xk988wz/a6dO3cuDQsAAAPRrwEACB30bcC/CIcBg333u9/td+zs2bPKz8/XqFHvqqysW5s3S2vXSps3S6dOdSsy8h25XC6dPXvWq/EAAMDw0K8BAAgd9G3Af1hWAvCDKVOmqLKycsDP7Ha7HnjgAaWkpKi6ulobNmzQ6dOnBzw3LS1NFRUV/iwVAICwRb8GACB00LcB/yAcBvzg7Nmzcjqdamtr83mM6OhoHT9+XOnp6QZWBgAAPOjXAACEDvo24B8sKwH4QXp6urZu3aro6Gifro+OjtbWrVtpWAAA+BH9GgCA0EHfBvyDmcOAH509e1ZFRUWDvvoykLS0NBUXF9OwAAAwCf0aAIDQQd8GjMXMYcCP0tPTVVFRoY0bN2ru3LnXPXfu3Ll67733VFFRQcMCAMBE9GsAAEIHfRswFjOHARPV1NTo5ZdfVllZmerq6jR27FjZ7XY9/vjjmjhxYqDLAwAAol8DABBK6NvA8BAOAwAAAAAAAEAYYlkJAAAAAAAAAAhDhMMAAAAAAAAAEIYIhwEAAAAAAAAgDBEOAwAAAAAAAEAYIhwGAAAAAAAAgDBEOAwAAAAAAAAAYYhwGAAAAAAAAADCEOEwAAAAAAAAAIQhwmEAAAAAAAAACEOEwwAAAAAAAAAQhgiHAQAAAAAAACAMEQ4DAAAAAAAAQBgiHAYAAAAAAACAMEQ4DAAAAAAAAABhiHAYAAAAAAAAAMIQ4TAAAAAAAAAAhCHCYQAAAAAAAAAIQ4TDAAAAAAAAABCGCIcBAAAAAAAAIAwRDgMAAAAAAABAGCIcBgAAAAAAAIAwRDgMAAAAAAAAAGGIcBgAAAAAAAAAwhDhMAAAAAAAAACEIcJhAAAAAAAAAAhDhMMAAAAAAAAAEIYIhwEAAAAAAAAgDBEOAwAAAAAAAEAYIhwGAAAAAAAAgDBEOAwAAAAAAAAAYYhwGAAAAAAAAADCEOEwAAAAAAAAAIQhwmEAAAAAAAAACEOEwwAAAAAAAAAQhgiHAQAAAAAAACAMEQ4DAAAAAAAAQBgiHAYAAAAAAACAMEQ4DAAAAAAAAABhiHAYAAAAAAAAAMIQ4TAAAAAAAAAAhCHCYQAAAAAAAAAIQ4TDAAAAAAAAABCGCIcBAAAAAAAAIAwRDgMAAAAAAABAGCIcBgAAAAAAAIAwRDgMAAAAAAAAAGGIcBgAAAAAAAAAwhDhMAAAAAAAAACEIcJhAAAAAAAAAAhDhMMAAAAAAAAAEIYIhwEAAAAAAAAgDBEOAwAAAAAAAEAYIhwGAAAAAAAAgDBEOAwAAAAAAAAAYYhwGAAAAAAAAADCEOEwAAAAAAAAAIQhwmEAAAAAAAAACEOEwwAAAAAAAAAQhgiHAQAAAAAAACAMEQ4DAAAAAAAAQBgiHAYAAAAAAACAMEQ4DAAAAAAAAABhiHAYAAAAAAAAAMIQ4TAAAAAAAAAAhCHCYQAAAAAAAAAIQ4TDAAAAAAAAABCGCIcBAAAAAAAAIAwRDgMAAAAAAABAGCIcBgAAAAAAAIAwRDgMAAAAAAAAAGGIcBgAAAAAAAAAwhDhMAAAAAAAAACEIcJhAAAAAAAAAAhDhMMAAAAAAAAAEIYIhwEAAAAAAAAgDBEOAwAAAAAAAEAYIhwGAAAAAAAAgDBEOAwAAAAAAAAAYYhwGAAAAAAAAADCEOEwAAAAAAAAAIQhwmEAAAAAAAAACEOEwwAAAAAAAAAQhgiHAQAAAAAAACAMEQ4DAAAAAAAAQBgiHAYAAAAAAACAMEQ4DAAAAAAAAABhiHAYAAAAAAAAAMIQ4TAAAAAAAAAAhCHCYQAAAAAAAAAIQ4TDAAAAAAAAABCGCIcBAAAAAAAAIAwRDgMAAAAAAABAGCIcBgAAAAAAAIAwRDgMAAAAAAAAAGGIcBgAAAAAAAAAwhDhMAAAAAAAAACEIcJhAAAAAAAAAAhDhMMISt/+9rdlsVh8unbNmjWyWCzavXv3Dc/98Y9/rDVr1vh0n6FYsWKFLBaLLBaLsrOz+33+/vvvq6CgQLGxsUpKStKKFStUU1Nzw3E/+OCDnnEH+uv//t//61V9L774orKyshQdHa1p06bpH//xH9XR0XHD6yoqKrRkyRLZ7XbFxcUpISFB8+bN0//7f/9PnZ2dfc79yle+0lNXfHy8V3UBAIIfPdu7ni1JDQ0N+sY3viGn06nY2FilpqZq6dKlOnz4sNf1+dqz9+zZoy9/+cvKycmRzWbTpEmT9OlPf1p//OMf+51LzwaAkYd+7X2/bmxs1LPPPqvU1FRFR0fL6XTq+eefV1dXl9f1+dqvJenv//7vtXjxYqWmpspisWjFihUDnke/hlEIhxGUvvSlL2n79u1+v49ZjUuSJk+erO3bt2vt2rV9jm/ZskV33323Jk2apF//+td64YUX9P777+v2229XW1vbdcecP3++tm/f3u+vL3zhC5KkJUuW3LCu73znO1q5cqUefPBB/e53v9NTTz2l7373u/ryl798w2ubm5s1ZswYffOb39Q777yjX/7yl1q4cKGeeeaZfsH0V7/6VW3fvl333HPPDccFAIQOerZ3PVuSPvOZz2jVqlX6y7/8S23cuFH/+q//qv3796ugoEDl5eU3vH44PfuNN97Qzp079cUvflG//vWv9bOf/UzR0dG6/fbb9eqrr/Y5l54NACMP/dq7ft3Z2ak77rhDr732mv7u7/5Ov/nNb/SZz3xGf/M3f6OvfvWrXtU1nH4tST/60Y906dIl3XfffYqKihr0PPo1DOMGRphXXnnFLcm9a9euG547a9Ys96233ur3mpYvX+7OyMgY8LO8vDz3zJkz3R0dHT3HiouL3ZLcP/7xj4d8r+7ubrfdbndnZGS4u7q6rntubW2tOyYmxv3EE0/0Of6d73zHbbFY3IcPHx7y/d1ut/vhhx92R0ZGultbW/t9tnz5cndcXJxP4wIARpZw6tknTpxwS3L//d//fZ/j27Ztc0ty//CHP7zu9cPt2RcuXOh3rLOz0z179mz39OnTB7yGng0AcLvDq1+/8cYbbknuX/3qV32OP/HEE+6IiAh3aWnpda834hm793N8XFyce/ny5dc9n36N4WLmMIbs8OHDslgsWr9+fc+xPXv2yGKxaNasWX3Ove+++5Sbm9vn2JtvvqmCggLFxcUpPj5ed911l/bt29fnnIFeeWlra9Nzzz2nyZMnKzY2Vrfccov27NmjqVOnDviaRWNjo5588kklJSVp/PjxevDBB1VdXd3z+dSpU3X48GFt2bKl51WMqVOnSpK6u7v1L//yL8rMzNTo0aM1duxYzZ49Wy+88IIvf8sGVVVVpV27dunzn/+8IiMje44XFhbK6XRqw4YNQx5z8+bNKisr02OPPaaIiOv/Ed+0aZNaW1v12GOP9Tn+2GOPye126+233x7y/SVpwoQJioiIkNVq9el6AIAx6NnGGW7PHjVqlCQpISGhz/GxY8dKkmJiYq57/XB79sSJE/sds1qtys3NVUVFxXWvBQD4F/3aOMPt18XFxbJYLLr77rv7HF+8eLG6u7tveL0Rz9g3eo4HjMY/cRiyWbNmKTk5We+//37Psffff1+jR4/WkSNHeppDZ2entmzZok9/+tM95333u9/V5z73Oc2cOVPr1q3TL37xCzU2NurP/uzPdOTIkeve97HHHtOqVav02GOP6de//rX+4i/+QkuWLFFdXd2A53/pS1/SqFGjtHbtWj3//PP64IMP9Oijj/Z8vmHDBtntds2bN69nOQbPv+iff/55ffvb39bnPvc5bdy4UW+++aYef/zxfveyWCz68z//8yH83evr0KFDkqTZs2f3+2z27Nk9nw/Fyy+/rIiIiH7N6Hr3z8nJ6XM8OTlZSUlJXt/f7Xars7NTH330kd58802tWbNGzz33XJ9mDAAwHz37E4Hu2RkZGbr//vv1ox/9SJs3b1ZTU5NKS0v17LPPKj09XZ/97Ge9uv9we3ZvnZ2d+t///d9+wQMAwFz0608Eul+3t7crIiKi50ddj+joaEnSgQMHvLq/kf0a8DeSG/jk9ttv79e4Hn30Ub311lt6//339YUvfEE7d+5UQ0NDT+OqqKjQt771LT399NNavXp1z7V33HGHHA6H/vEf/1FvvvnmgPc7cuSI3njjDX3961/X9773vZ7rJk2apM997nMDXrNo0aI+97l8+bL++q//WufPn9fkyZM1b948jR49WmPGjFF+fn6fa4uLi5WTk6Nvf/vbPcfuuuuufvewWq3Dmh176dIlSVJiYmK/zxITE3s+91ZdXZ3++7//W3fccYfS09O9un90dLTi4uKGdf9/+7d/09/+7d9KutrM/+7v/k7/8i//MqTaAQD+Qc++Khh69vr16/XlL39Zn/rUp3qOzZ49W1u2bNG4ceNueH8jenZv3/72t3Xy5Emf3xQCABiHfn1VoPv1zJkz1dXVpR07dmjhwoU9x7du3dpn/Ovd3+h+DfgbM4fhk9tvv11lZWU6ffq0WltbtXXrVi1atEi33Xab/vCHP0i62syio6N7/oX6u9/9Tp2dnfrCF76gzs7Onr9iYmJ066236oMPPhj0flu2bJEkPfzww32OP/TQQ4POTr3vvvv6/G/PL4febPiyYMECffjhh3rqqaf0u9/9Tg0NDQOe19nZqf/5n/+54Xg3MtiusUPdTfb1119Xa2urvvSlLw373kO5/4oVK7Rr1y797ne/01//9V/r3//93/XMM894XQMAwH/o2VcFQ89+8skn9atf/Uo/+tGPtGXLFr355puKiorSpz71Ka++qxE92+NnP/uZvvOd7+i5557T/fffP6RrAQDGo19fFeh+/cgjjygxMVFPPPGESkpKVFdXpzfeeKMnFPdmyQcj+zVgBmYOwyeeXyrff/99TZs2TR0dHfrUpz6lCxcu6J//+Z97PisqKtLo0aMlSRcuXJAk5eXlDTjm9f4l6/l1bdKkSX2OR0ZGavz48QNec+1xz2sgV65cue53k6S//du/VVxcnF577TX95Cc/kdVq1S233KJ/+7d/080333zD673lqXGgXw8vX7484K+d1/Pyyy9rwoQJXj/kjR8/Xq2trWppaVFsbGy/+1+7ltVgJk+erMmTJ0uS7rzzTo0bN05/8zd/oy9+8YuaN2/ekL4DAMBY9GxjDLdnb9q0SS+//LLWr1+vhx56qOf4nXfeqalTp+rb3/62Xnnlleve34ieLUmvvPKK/uqv/kpPPPGE/v3f/93r6wAA/kO/NsZw+3VSUpI2bdqk5cuX98x+Hj9+vH74wx/q8ccfV2pq6g3vb1S/BszCzGH4JC0tTU6nU++//77+8Ic/6Oabb9bYsWN1++2369y5cyopKdGOHTv6rIWUlJQkSXrrrbe0a9eufn+VlJQMej/Pv+A9zc+js7PTL69lREZG6mtf+5r27t2ry5cv64033lBFRYXuuusutbS0GHaf7OxsSdLBgwf7fXbw4MGez72xb98+7du3T1/4whf6rY80GM86SNfe//z586qtrR3S/XtbsGCBJOn48eM+XQ8AMA492xjD7dn79++X1P8BfuzYsbrppptuuAahUT37lVde0Ze+9CUtX75cP/nJT5jBBABBgn5tDCOesfPy8nTkyBGdPn1ahw4dUnV1tWbMmCFJuuWWW657rb+esQF/IhyGzz796U/rj3/8o/7whz/ojjvukCQ5nU6lp6frH/7hH9TR0dGncd11112KjIzUqVOndPPNNw/412A8/wK+dr2kt956S52dnT5/h+jo6Bv+yjl27Fg99NBD+vKXv6zLly/rzJkzPt/vWqmpqVqwYIFee+01dXV19RzfsWOHjh07pgcffNDrsV5++WVJ0uOPP+71NYsWLVJMTIzWrFnT5/iaNWtksVj0wAMPeD1Wb5s3b5Yk3XTTTT5dDwAwFj17+Ibbs1NSUnrO7+3SpUs6fvy40tLSrnu9ET17zZo1+tKXvqRHH31UP/vZzwiGASDI0K+Hz8hn7KlTp2rWrFkaNWqUfvCDHyglJUVLly697jX+esYG/IllJeCz22+/XT/+8Y9VW1urVatW9Tn+yiuvaNy4cX1emZg6dar+6Z/+Sd/4xjdUVlamRYsWady4cbpw4YJ27typuLg4/eM//uOA95o1a5Y+97nP6Qc/+IGsVqs+9alP6fDhw/rBD36ghIQEr9b9GUhOTo5++ctf6s0335TdbldMTIxycnL0mc98RtnZ2br55ps1YcIElZeXa9WqVcrIyJDD4ei5PjIyUrfeeuuw1kT6t3/7N91xxx1aunSpnnrqKdXU1Ohv/uZvlJ2drccee6znvPLyck2fPl3Lly/vCYI9WltbtXbtWhUWFvb8oumNxMRE/f3f/72++c1vKjExUXfeead27dqlb3/72/rSl76kmTNn9pz76quv6otf/KJ+/vOf6wtf+IIk6Vvf+pYuXLigW265Rampqaqrq9OmTZv005/+VEuXLuWVGQAIEvTswPfsBx98UP/wD/+gJ598UpWVlZo/f77OnTunf//3f1dLS4tWrlx53XsPt2evX79ejz/+uObOnau/+qu/0s6dO/uMP2/evJ7XgwEAgUG/Dny/lqRvfOMbysnJUXJyss6ePauf//znKikp0caNG3uW9BjMcPu1dHU96IsXL0qSurq6VF5errfeekuSdOutt2rChAk+/70BBuQGfPTRRx+5IyIi3HFxce729vae46+//rpbkvvBBx8c8Lq3337bfdttt7nHjBnjjo6OdmdkZLgfeugh9/vvv99zzre+9S33tf94tra2ur/2ta+5J06c6I6JiXHn5+e7t2/f7k5ISHB/9atf7TnvlVdecUty79q1q8/1mzdvdktyb968uefYmTNn3HfeeafbZrO5JbkzMjLcbrfb/YMf/MBdWFjoTkpKckdFRbnT09Pdjz/+uPvMmTN9xpTkvvXWW2/492r58uU9Yw/k97//vTs/P98dExPjTkxMdH/hC19wX7hwoc85p0+fdktyL1++vN/1nr/nP//5z29Yy0BeeOEFt9Pp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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nF = (F - approx_ideal) / (approx_nadir - approx_ideal)\n", + "decomp = ASF()\n", + "weights_vector = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9]\n", + "plt.figure(figsize=(18, 20))\n", + "for i, w in enumerate(weights_vector):\n", + " weights = np.array([w, 1-w])\n", + " b = decomp.do(nF, 1/weights).argmin()\n", + " best_x = res.X[b]\n", + " graph = problem.graph_manager.get_graph(best_x)\n", + " plt.subplot(3, 3, i+1)\n", + " plt.title(f'weights: {weights}')\n", + " draw_joint_point(graph,draw_labels=False)\n", + "plt.suptitle('weights from 0.1 to 0.9')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nF = (F - approx_ideal) / (approx_nadir - approx_ideal)\n", + "decomp = ASF()\n", + "weights_vector = [0.4,0.5,0.6]\n", + "# plt.figure(figsize=(18, 20))\n", + "for i, w in enumerate(weights_vector):\n", + " weights = np.array([w, 1-w])\n", + " b = decomp.do(nF, 1/weights).argmin()\n", + " best_x = res.X[b]\n", + " graph = problem.graph_manager.get_graph(best_x)\n", + " plt.subplot(1, 3, i+1)\n", + " plt.title(f'weights: {weights}')\n", + " draw_joint_point(graph,draw_labels=False)\n", + "# plt.suptitle('weights from 0.1 to 0.9')\n", + "plt.savefig(selected_directory + \"/new_mechs.png\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/reward_vis/joint_reward_dependence.ipynb b/jmoves/apps/reward_vis/joint_reward_dependence.ipynb new file mode 100644 index 00000000..7708afc4 --- /dev/null +++ b/jmoves/apps/reward_vis/joint_reward_dependence.ipynb @@ -0,0 +1,3264 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains\n", + "from pymoo.decomposition.asf import ASF\n", + "from auto_robot_design.description.builder import jps_graph2pinocchio_robot\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import MultiCriteriaProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.criterion_math import ImfProjections\n", + "from auto_robot_design.pinokla.default_traj import add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, get_workspace_trajectory\n", + "from auto_robot_design.optimization.rewards.reward_base import PositioningConstrain, PositioningErrorCalculator, RewardManager\n", + "from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability\n", + "from auto_robot_design.optimization.rewards.pure_jacobian_rewards import VelocityReward, ManipulabilityReward, ZRRReward, MinForceReward, MinManipulabilityReward,DexterityIndexReward\n", + "from auto_robot_design.optimization.rewards.inertia_rewards import MassReward, ActuatedMassReward, TrajectoryIMFReward\n", + "from auto_robot_design.description.actuators import TMotor_AK10_9, TMotor_AK60_6, TMotor_AK70_10, TMotor_AK80_64, TMotor_AK80_9\n", + "from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT, jps_graph2pinocchio_robot_3d_constraints\n", + "from auto_robot_design.generator.topologies.graph_manager_2l import GraphManager2L\n", + "from auto_robot_design.optimization.saver import load_checkpoint\n", + "from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory\n", + "from auto_robot_design.generator.topologies.bounds_preset import get_preset_by_index_with_bounds\n", + "import pinocchio as pin\n", + "pin.seed(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "MECH_FROM_OPTIMIZATION = False\n", + "WEIGHT = 0.5" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "if MECH_FROM_OPTIMIZATION:\n", + " import tkinter as tk\n", + " from tkinter import filedialog\n", + "\n", + " def select_directory():\n", + " # Create a root window\n", + " root = tk.Tk()\n", + " # Hide the root window\n", + " root.withdraw()\n", + " # Make the root window the topmost window\n", + " root.call('wm', 'attributes', '.', '-topmost', True)\n", + " # Open directory dialog and store the selected directory path\n", + " directory_path = filedialog.askdirectory(initialdir=\"./\",\n", + " title=\"Select a directory\"\n", + " )\n", + " root.update_idletasks() \n", + " root.destroy()\n", + " # Check if a directory was selected\n", + " if directory_path:\n", + " #print(f\"Selected directory: {directory_path}\")\n", + " return directory_path\n", + " else:\n", + " #print(\"No directory selected\")\n", + " return None\n", + "\n", + " # Call the function to open the directory dialog\n", + " selected_directory = select_directory()\n", + " print(f\"Resulting directory path: {selected_directory}\")\n", + "\n", + "\n", + " problem = MultiCriteriaProblem.load(\n", + " selected_directory\n", + " )\n", + "\n", + " checkpoint = load_checkpoint(selected_directory)\n", + " optimizer = PymooOptimizer(problem, checkpoint)\n", + " optimizer.load_history(selected_directory)\n", + " res = optimizer.run()\n", + "\n", + " F = res.F\n", + " fl = F.min(axis=0)\n", + " fu = F.max(axis=0)\n", + "\n", + " approx_ideal = F.min(axis=0)\n", + " approx_nadir = F.max(axis=0)\n", + " nF = (F - approx_ideal) / (approx_nadir - approx_ideal)\n", + " weights = np.array([WEIGHT, 1-WEIGHT])\n", + "\n", + " decomp = ASF()\n", + " b = decomp.do(nF, 1/weights).argmin()\n", + " best_x = res.X[b]\n", + "\n", + " graph = problem.graph_manager.get_graph(best_x)\n", + " draw_joint_point(graph)\n", + " initial_x = best_x" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhOUlEQVR4nO3deXxU1R338e9kIENIICFhDWQCJJkBBBRE2VGqVRAVcW3VPiJq605rW9e2oHWrbdWqdRd4WsVHRbAoi7YCCgiyu4GZhCWJLMYQgpBAQibn+eMyWUiALDOZzMzn/XrNK8mde8/53STAl3PvOddmjDECAAAAGikq2AUAAAAgtBEoAQAA0CQESgAAADQJgRIAAABNQqAEAABAkxAoAQAA0CQESgAAADQJgRIAAABNQqAEAABAkxAoAQAA0CQESgAAADQJgRIAAABNQqAEAABAkxAoAQAA0CStgl0AAAAIHq/XqyNHjgS7DARB69atZbfb/dIWgRIAgAhkjNGePXtUVFQU7FIQRAkJCeratatsNluT2iFQAgAQgXxhsnPnzmrbtm2TAwVCizFGJSUlys/PlyR169atSe0RKAEAiDBer7cyTCYlJQW7HARJTEyMJCk/P1+dO3du0uVvJuUAABBhfPdMtm3bNsiVINh8vwNNvY+WQAkAQITiMjf89TtAoAQAAECTECgBAAACbPr06TrttNOCXUbAECgBAECjeb1eLVu2TG+++aaWLVsmr9cb8D737NmjqVOnKj09XW3atFGXLl00atQovfjiiyopKQl4/6iNWd4AAKBR5s6dq6lTp+q7776r3NajRw/94x//0KWXXhqQPrdt26aRI0cqISFBjz76qAYMGKDy8nJ5PB7NmDFDycnJuvjii2sdd+TIEbVu3TogNYERSgAA0Ahz587V5ZdfXiNMStLOnTt1+eWXa+7cuQHp99Zbb1WrVq20bt06XXnllerbt68GDBigyy67TAsWLNBFF10kyZps8uKLL2rixImKjY3Vww8/LEl64YUXlJaWpujoaLndbv373/+ubHvHjh2y2WzatGlT5baioiLZbDYtW7ZMkrRs2TLZbDZ9/PHHGjJkiNq2basRI0YoMzOzRp2PP/64unTponbt2umGG27Q4cOHA/L9aCkIlAAAoEG8Xq+mTp0qY0yt93zbfv3rX/v98vfevXv10Ucf6bbb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Rx06yhqp3LVrl9LS0rSpHl2mpaWpKCur1nZfu15jjUTGto616hs40JqVX5ejs1Prcx4BUd/fA3/r21eaP7/2iGRmpvUeWiy73Vpo4vLLrR9d9b8afD/Kp5+29guE0tLSyvUgfVq1aqWOvj9DJ3DzzTfr73//u+666y796le/0vr16ytnTh8rPz9fhw8frrEtKSmpQcvvTJ8+XXfeeafat2+v8ePHq7S0VOvWrdO+fft011136ec//7keffRRXXLJJXrsscfUrVs3bdy4UcnJyRo+fLh69uyp7du3a9OmTerRo4fatWunc889VwMHDtQ111yjp59+WuXl5br11lt11llnaciQIfWuzZ8YoQRCzQ03WP/Qz57d9LaGDrVGhXJzq7bt22ddeq1+P1zXrtbH6kEnL6/uEFIfQ4ZIy5db9+35LFrUuLYk6z6+uDhrSaVjHb3EnByXrDU9pK65hVJurtLS0iRJCZJGSFotad68ebr55psVdZLLrXa7XTfffLPWr19f673evXtLkvYdKpJNNnWN62qt/7h5s9Snj3Xux758ob8e51GDb6TwwIET1ntS9f098Ldx46zRyP/9r2rbl19a91FecEHg+oVfXHqpNGeO1L17ze09eljbA7kO5eLFi9WtW7car1GjRtXrWKfTqXfffVfvv/++Tj31VL344ot69NFH69zX7XbX6qeuP/cncuONN+rVV1/VrFmzNGDAAJ111lmaNWtW5QhldHS0PvroI3Xu3FkXXHCBBgwYoMcff7zykvhll12mcePGaezYserUqZPefPPNyqfwdOjQQWPGjNG5556r3r1766233mpQbX7VpCk9AJqf12stqdK2rTEPP2wt4TJnjjH9+lmzhqs72azpzEyrnWNn97ZqZc3E9jl40FqqaPx4axaxx2PN0G7Tpu5Z3iebDb5+fc1Z3i+9ZExyctNmeT/7bNXs6HfesWZSP/ywMZMnV+5yxu/iTXHr2rO8yyQzpI5Z3qnVlhOSZLZLZmYds7yr7/f9998bk5pq/t+QNrVneQ8aZM3yXrrUmLfeMubXvzbmxhsbfB6Vli2z9r3zTms295YtxvzwQ9X7eXlVs7/rmhHuU9/fg/r+fOvryBFjBg60ZnS/8461nFXfvsb06mX9ziFg/DWz1xhraaClS42ZPdv6GIilghA4LBsERLLDh4155JGqtSU7dDDm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b9YFF1yguLg4denSRb/4xS9UUFDQ4HMJFwRKADiGx+ORw+GoMeLhdDrlcDi4LIawZozRht0bdHq305ulv9O7na71u9erodM53nrrLbndbrndbl177bWaOXNmZRsLFizQpZdeqgkTJmjjxo36+OOPNWTIEEnS3Llz1aNHDz300EPavXu3du/eXattt9ut008/XW+88UaN7bNnz9bVV18tm82m3bt366yzztJpp52mdevWafHixfr+++915ZVXNvI7Efq45A0Ax/B4PMrIyFBUVNX/ue12u9LT0wmUCGsHyg6o8FChMpIymqU/V5JLhYcKdbDsoNo52tX7uNdee03XXnutJGncuHE6ePCgPv74Y5177rl65JFH9LOf/UwPPvhg5f6nnnqqJCkxMVF2u13t2rVT165dj9v+Nddco+eee05//vOfJVl/J6xfv17/+te/JEkvvPCCBg8erEcffbTymBkzZiglJUUej0cul6v+34QwwQglABwjMzOzzn8QXC4Xl7wR1sq8ZZKkNq2a57GYDrujRr/1kZmZqTVr1uhnP/uZJKlVq1a66qqrNGPGDEnSpk2bdM455zSprp/97GfKycnR6tWrJUlvvPGGTjvtNPXr10+StH79ei1dulRxcXGVrz59+kiStm7d2qS+QxUjlABwDI/HUzn6UZ3b7dbs2bODUBHQPHz3TR4uP9ws/ZV6S2v0Wx+vvfaaysvL1b1798ptxhi1bt1a+/bt88vkmm7dumns2LGaPXu2hg0bpjfffFO/+tWvKt+vqKjQRRddpL/85S91HhuJCJQAUE1JSYny8vKOO0KZm5urQ4cOMSMUYalddDslxiQqa29Ws/Tn2etRYkyi4qLj6rV/eXm5/vWvf+nvf/+7zjvvvBrvXXbZZXrjjTc0cOBAffzxx7r++uvrbCM6Olper/ekfV1zzTW655579POf/1xbt26tHBGVpMGDB+vdd99Vz5491aoVUUrikjcA1JCVZf1D6na7a73n2+bbBwg3NptNg7sN1vrd65ulv/W71+v0bqfXe73LDz74QPv27dMNN9yg/v3713hdfvnleu211zRt2jS9+eabmjZtmrZs2aKvvvpKTzzxRGUbPXv21KeffqqdO3eecFb2pZdeqh9//FG33HKLxo4dW2NE9LbbblNhYaF+/vOfa82aNdq2bZs++ugjTZkypV5hNRwR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Yn29bp319Zw5ge0XQFjjkjeAxrv/fsnlkp5+2gqRNpuUkSHdeqv1vsslLV1q7Td5snW/5eDB1tI9Z5wRuLpSUqS1a6Vp06yAW1BgrUc5eLA0xRqP7Ny5s0499VT984sv9J2kuyTNlGR78EFFDx6sA7+/X93frMqFkrQt5SxtGfYnuZa/rF4L9+hbSdMlPXj0/T906aLEYxdKHz686nPfcySC9X2RrO/JJ59Uff3Pf1qv6vUBQAPxpBwAEetET8p59tlnNW7chBpPyhk5skKLFn2gO+64I3SflAMAAUCgBBDRTvYs70suuaTyWd7z5s3T9u3b69y31rO8ASCCECgBRLTc3Fy5XC6VlpY2ug2HwyGPxyNnXUsBBVp57clDdWrFHU4AAodJOQAimtPp1IoVK+RwOBp1vMPh0IoVK4ITJiVrrc36vA4fDk59ACICI5QAIGukcuTIkce9/F2XHj16aOXKlcELk5I1S7s+Tj/95E82AoBGIlACQDULFy7UAw88oE2bNh13n9NOO02PPvooE3AA4CgCJQDUIT8/X6+99pq2bdumoqIiJSQkqHfv3rrhhhvUuXPnYJcHAC0KgRIAAABNwqQcAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECT/H9ALYJ5ZhurtgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from auto_robot_design.generator.user_generator.graph_generator import TopologyManager2D\n", + "from auto_robot_design.description.kinematics import JointPoint\n", + "if not MECH_FROM_OPTIMIZATION:\n", + " tp = TopologyManager2D()\n", + " # creates ground connection\n", + " tp.add_connection(ground=True, self_mutation_range= [(-0.2001, 0.1999),None,(-0.1, 0.1)], dependent_mutation_range=[(-0.13,0.07),None,(-0.3,-0.1)])\n", + " main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + " tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + " main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + " tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None]))\n", + " # creates connection on the first link\n", + " tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + " main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + " tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + " # creates connection on the second link\n", + " tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.5, 0.3)], self_freeze_pos=[0.0,0,-0.4999], dependent_mutation_range=[(-0.2,0.0),None,(-0.0,0.2)])\n", + " # creates branch node and one-joint branch in the topology manager. \n", + " branch_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=False, name='branch', attach_ground=False, attach_endeffector=False)\n", + " tp.add_relative_node(branch_jp)\n", + " # adds a dependent connection of the one-joint branch to the \n", + " tp.add_dependent_connection(0,1,connect_head=True)\n", + " # adds independent connection to the second link finishing the branch building\n", + " tp.add_independent_connection(tp.branch_ends[1][1],tp.connections[2].connection_jp)\n", + " tp.set_mutation_ranges()\n", + " tp.visualize()\n", + " graph = tp.graph\n", + " initial_x = tp.generate_central_from_mutation_range()" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from auto_robot_design.utils.configs import get_standard_builder, get_standard_crag, get_standard_trajectories, get_standard_rewards, get_mesh_builder\n", + "builder = get_standard_builder()\n", + "crag = get_standard_crag(open_loop=False)\n", + "trajectories = get_standard_trajectories()\n", + "rewards = get_standard_rewards()\n", + "\n", + "\n", + "for _, trajectory in trajectories.items():\n", + " plt.plot(trajectory[:, 0], trajectory[:, 2])\n", + "\n", + "draw_joint_point(graph, draw_labels=False)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Ground_connection_0_0': (-0.2001, 0.1999), 'Ground_connection_0_2': (-0.1, 0.1), 'main_knee_2': (-0.30000000000000004, -0.1), 'branch_0': (-0.13, 0.07), 'branch_2': (-0.3, -0.1)}\n" + ] + } + ], + "source": [ + "if MECH_FROM_OPTIMIZATION:\n", + " gm = problem.graph_manager\n", + " mr = gm.mutation_ranges\n", + " print(gm.mutation_ranges)\n", + "else:\n", + " mr = tp.mutation_ranges\n", + " print(tp.mutation_ranges)" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(-0.30000000000000004, -0.1)\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of invalid points: 5\n" + ] + } + ], + "source": [ + "trajectory_name = 'step1'\n", + "reward_name = 'dexterity'\n", + "trajectory = trajectories[trajectory_name]\n", + "reward_class = rewards[reward_name]\n", + "error_calculator = PositioningErrorCalculator(jacobian_key=\"Manip_Jacobian\")\n", + "soft_constraint = PositioningConstrain(error_calculator=error_calculator, points=[trajectory])\n", + "range_idx = 2\n", + "range = mr[list(mr.keys())[range_idx]]\n", + "print(range)\n", + "values = np.linspace(range[0],range[1],num=50,endpoint=True)\n", + "x = initial_x.copy()\n", + "reward_values = []\n", + "valid_points=[]\n", + "counter = 0\n", + "for value in values:\n", + " x[range_idx] = value\n", + " if MECH_FROM_OPTIMIZATION:\n", + " graph = gm.get_graph(x)\n", + " else:\n", + " graph = tp.get_graph(x)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints(graph, builder=builder)\n", + " constrain_error, results = soft_constraint.calculate_constrain_error(crag, fixed_robot, free_robot)\n", + " if constrain_error == 0:\n", + " reward, reward_list = rewards[reward_name].calculate(results[0][0], results[0][1], results[0][2], Actuator = builder.actuator['default'])\n", + " reward_values.append(reward)\n", + " valid_points.append(value)\n", + " \n", + " else:\n", + " counter+=1\n", + "\n", + "plt.scatter(valid_points, reward_values)\n", + "plt.show()\n", + "print(f\"Number of invalid points: {counter}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "({'IMF': array([0.06887475, 0.06623051, 0.06382249, 0.06161239, 0.05958096,\n", + " 0.05771167, 0.05599214, 0.05440553, 0.05294315, 0.05159524,\n", + " 0.05035215, 0.04920791, 0.04815475, 0.0471864 , 0.04629718,\n", + " 0.04548194, 0.04473599, 0.04405505, 0.04343521, 0.04287289,\n", + " 0.04236321, 0.04190638, 0.04149801, 0.04113552, 0.04081658,\n", + " 0.04053899, 0.04030077, 0.04010005, 0.03993515, 0.03980413,\n", + " 0.03970635, 0.03964002, 0.03960395, 0.039597 , 0.03961815,\n", + " 0.03966648, 0.03974116, 0.03984137, 0.03996646, 0.04011582,\n", + " 0.0402889 , 0.04048525, 0.04070445, 0.04094616, 0.04121012,\n", + " 0.04149611, 0.04180283, 0.0421323 , 0.04248349, 0.0428564 ,\n", + " 0.04325112, 0.04366775, 0.04410648, 0.04456754, 0.04504867,\n", + " 0.04555506, 0.04608475, 0.04663819, 0.04721586, 0.04781829,\n", + " 0.04844607, 0.04909984, 0.04978029, 0.05048814, 0.05122105,\n", + " 0.05198594, 0.05278073, 0.05360635, 0.05446377, 0.05535401,\n", + " 0.05627812, 0.05723723, 0.05823246, 0.05926501, 0.06033609,\n", + " 0.06144697, 0.06259892, 0.06379327, 0.06503134, 0.06631451,\n", + " 0.06764413, 0.06902161, 0.07044834, 0.0719257 , 0.07345508,\n", + " 0.07503785, 0.07667538, 0.07836898, 0.08011995, 0.08192954,\n", + " 0.08379894, 0.08572928, 0.08772947, 0.08978488, 0.09191416,\n", + " 0.09409762, 0.09634647, 0.09866127, 0.10104225, 0.10348973,\n", + " 0.10600398, 0.10858488, 0.11123215, 0.11394558, 0.11672455,\n", + " 0.11956824, 0.12247578, 0.12544602, 0.12847817, 0.13156903,\n", + " 0.13471766, 0.13792239, 0.14118078, 0.14448163, 0.14783995,\n", + " 0.15124413, 0.15469106, 0.1581776 , 0.16170022, 0.16525537,\n", + " 0.16883917, 0.17243429, 0.17606401, 0.17971036, 0.18336867,\n", + " 0.18703452, 0.19070333, 0.19437043, 0.19803113, 0.20168063,\n", + " 0.20531414, 0.20892352, 0.21251148, 0.21606898, 0.21959123,\n", + " 0.2230813 , 0.22651948, 0.2299081 , 0.23324275, 0.23651902,\n", + " 0.23973256, 0.24287914, 0.24595463, 0.24895506, 0.25187653,\n", + " 0.25471538, 0.25746796, 0.26013082, 0.26271465, 0.26518738,\n", + " 0.26756096, 0.26983246, 0.27199915, 0.2740584 , 0.27600777,\n", + " 0.2778449 , 0.2795676 , 0.28117377, 0.28266138, 0.28402856,\n", + " 0.2852735 , 0.28639454, 0.28739002, 0.2882584 , 0.28899452,\n", + " 0.2896035 , 0.29008114, 0.29042608, 0.290637 , 0.29071257,\n", + " 0.2906515 , 0.29045248, 0.29011416, 0.28963518, 0.28901413,\n", + " 0.28824955, 0.2873399 , 0.2862836 , 0.28507894, 0.2837241 ,\n", + " 0.28221712, 0.28055593, 0.27872455, 0.27674878, 0.27461147,\n", + " 0.27230972, 0.2698502 , 0.26720855, 0.26439175, 0.2613956 ,\n", + " 0.25821528, 0.25484553, 0.2512804 , 0.24751325, 0.2435365 ,\n", + " 0.23934163, 0.23492269, 0.23026225, 0.22534949, 0.22016898],\n", + " dtype=float32), 'MANIP': array([0.03923103, 0.04046573, 0.0416264 , 0.04272634, 0.04377156,\n", + " 0.04476732, 0.04571599, 0.04662609, 0.04749903, 0.04833806,\n", + " 0.04914531, 0.04992517, 0.05067926, 0.05140984, 0.05211902,\n", + " 0.05280877, 0.05348092, 0.05413721, 0.05477927, 0.05540865,\n", + " 0.05602729, 0.05663575, 0.05723578, 0.05782869, 0.05841573,\n", + " 0.05899813, 0.05957709, 0.06015375, 0.06072926, 0.06130614,\n", + " 0.06188279, 0.0624616 , 0.06304362, 0.06362995, 0.06422161,\n", + " 0.06481967, 0.0654269 , 0.06604103, 0.06666471, 0.06729899,\n", + " 0.06794494, 0.06860359, 0.06927602, 0.06996328, 0.07066645,\n", + " 0.07138661, 0.07212653, 0.07288401, 0.07366172, 0.07446076,\n", + " 0.07528219, 0.0761271 , 0.07699655, 0.0778916 , 0.0788136 ,\n", + " 0.07976296, 0.08074093, 0.08174848, 0.08278649, 0.0838558 ,\n", + " 0.08495717, 0.08609129, 0.08725872, 0.08845995, 0.08969253,\n", + " 0.09096202, 0.09226578, 0.09360362, 0.0949751 , 0.09637954,\n", + " 0.09781597, 0.09928308, 0.10077924, 0.10230241, 0.10385016,\n", + " 0.10541959, 0.10700734, 0.10860954, 0.11022179, 0.11183913,\n", + " 0.11345606, 0.11506652, 0.11666388, 0.11824099, 0.11979017,\n", + " 0.12130333, 0.12277193, 0.12418717, 0.12553999, 0.12682123,\n", + " 0.12802178, 0.12913261, 0.13014387, 0.13104735, 0.13181993,\n", + " 0.13249104, 0.13303447, 0.13344443, 0.13372025, 0.1338584 ,\n", + " 0.13385575, 0.13371411, 0.13343523, 0.1330201 , 0.13247319,\n", + " 0.13180028, 0.1310064 , 0.13009839, 0.12906623, 0.12795521,\n", + " 0.12675618, 0.12547559, 0.1241244 , 0.1227017 , 0.12123658,\n", + " 0.1197265 , 0.11818088, 0.1166069 , 0.1150129 , 0.11340549,\n", + " 0.11179163, 0.11018206, 0.10857306, 0.10697322, 0.10538785,\n", + " 0.10382062, 0.10227483, 0.10075347, 0.09925896, 0.09779333,\n", + " 0.09635826, 0.09496135, 0.09359049, 0.09225311, 0.09094968,\n", + " 0.08968565, 0.08844992, 0.08724847, 0.08608085, 0.08494658,\n", + " 0.08384509, 0.0827757 , 0.08173764, 0.08073007, 0.07975209,\n", + " 0.07880276, 0.0778811 , 0.07698609, 0.07611579, 0.07527082,\n", + " 0.07444941, 0.07365041, 0.07287275, 0.07211535, 0.0713771 ,\n", + " 0.07065693, 0.06995375, 0.06926648, 0.06859407, 0.06793543,\n", + " 0.0672895 , 0.06665523, 0.06603155, 0.06541743, 0.06481013,\n", + " 0.06421206, 0.06362037, 0.06303403, 0.06245197, 0.06187313,\n", + " 0.06129644, 0.06072081, 0.06014514, 0.05956832, 0.0589892 ,\n", + " 0.05840663, 0.05781941, 0.05722632, 0.05662609, 0.05601742,\n", + " 0.05539896, 0.05476928, 0.05412673, 0.05347024, 0.05279788,\n", + " 0.05210792, 0.0513982 , 0.05066724, 0.04991275, 0.04913245,\n", + " 0.04832387, 0.04748431, 0.04661081, 0.04570011, 0.04474858,\n", + " 0.04375212, 0.04270796, 0.0416074 , 0.04044599, 0.03921667],\n", + " dtype=float32), 'Effective_Inertia': array([[[ 1.7920104 , 0.8407522 ],\n", + " [ 0.8407522 , 6.4994016 ]],\n", + " \n", + " [[ 1.7622006 , 0.6954424 ],\n", + " [ 0.6954424 , 6.1472483 ]],\n", + " \n", + " [[ 1.7391602 , 0.5684717 ],\n", + " [ 0.5684717 , 5.845888 ]],\n", + " \n", + " [[ 1.7214686 , 0.45560557],\n", + " [ 0.45560557, 5.584241 ]],\n", + " \n", + " [[ 1.7081894 , 0.35423985],\n", + " [ 0.35423985, 5.355282 ]],\n", + " \n", + " [[ 1.6986029 , 0.2623595 ],\n", + " [ 0.2623595 , 5.153557 ]],\n", + " \n", + " [[ 1.6921571 , 0.17854188],\n", + " [ 0.17854188, 4.9751787 ]],\n", + " \n", + " [[ 1.6883879 , 0.10119742],\n", + " [ 0.10119742, 4.8158755 ]],\n", + " \n", + " [[ 1.6869547 , 0.02948124],\n", + " [ 0.02948124, 4.6733136 ]],\n", + " \n", + " [[ 1.6875721 , -0.03743396],\n", + " [-0.03743396, 4.545229 ]],\n", + " \n", + " [[ 1.6900066 , -0.10020281],\n", + " [-0.10020281, 4.429868 ]],\n", + " \n", + " [[ 1.694069 , -0.15944952],\n", + " [-0.15944952, 4.325435 ]],\n", + " \n", + " [[ 1.6996007 , -0.21561539],\n", + " [-0.21561539, 4.2307525 ]],\n", + " \n", + " [[ 1.7064703 , -0.26909968],\n", + " [-0.26909968, 4.144718 ]],\n", + " \n", + " [[ 1.7145675 , -0.32024172],\n", + " [-0.32024172, 4.066393 ]],\n", + " \n", + " [[ 1.7238004 , -0.36933145],\n", + " [-0.36933145, 3.994973 ]],\n", + " \n", + " [[ 1.7340909 , -0.41661817],\n", + " [-0.41661817, 3.929765 ]],\n", + " \n", + " [[ 1.745373 , -0.4623173 ],\n", + " [-0.4623173 , 3.8701682 ]],\n", + " \n", + " [[ 1.7575909 , -0.5066158 ],\n", + " [-0.5066158 , 3.8156595 ]],\n", + " \n", + " [[ 1.770697 , -0.54967695],\n", + " [-0.54967695, 3.7657814 ]],\n", + " \n", + " [[ 1.7846797 , -0.59170365],\n", + " [-0.59170365, 3.7200809 ]],\n", + " \n", + " [[ 1.7994515 , -0.6327062 ],\n", + " [-0.6327062 , 3.678299 ]],\n", + " \n", + " [[ 1.8150076 , -0.67285055],\n", + " [-0.67285055, 3.6400754 ]],\n", + " \n", + " [[ 1.8313233 , -0.71223485],\n", + " [-0.71223485, 3.6051295 ]],\n", + " \n", + " [[ 1.8483775 , -0.75094604],\n", + " [-0.75094604, 3.5732107 ]],\n", + " \n", + " [[ 1.8661524 , -0.78906125],\n", + " [-0.78906125, 3.5440948 ]],\n", + " \n", + " [[ 1.884633 , -0.8266493 ],\n", + " [-0.8266493 , 3.517579 ]],\n", + " \n", + " [[ 1.9038067 , -0.8637715 ],\n", + " [-0.8637715 , 3.4934814 ]],\n", + " \n", + " [[ 1.9236633 , -0.90048265],\n", + " [-0.90048265, 3.4716363 ]],\n", + " \n", + " [[ 1.944251 , -0.93692446],\n", + " [-0.93692446, 3.4518414 ]],\n", + " \n", + " [[ 1.965454 , -0.9729601 ],\n", + " [-0.9729601 , 3.4340653 ]],\n", + " \n", + " [[ 1.9873189 , -1.0087162 ],\n", + " [-1.0087162 , 3.4181294 ]],\n", + " \n", + " [[ 2.0098414 , -1.0442278 ],\n", + " [-1.0442278 , 3.4039178 ]],\n", + " \n", + " [[ 2.0330186 , -1.0795257 ],\n", + " [-1.0795257 , 3.391324 ]],\n", + " \n", + " [[ 2.056848 , -1.1146375 ],\n", + " [-1.1146375 , 3.3802502 ]],\n", + " \n", + " [[ 2.081328 , -1.1495873 ],\n", + " [-1.1495873 , 3.3706048 ]],\n", + " \n", + " [[ 2.106501 , -1.1844789 ],\n", + " [-1.1844789 , 3.3623085 ]],\n", + " \n", + " [[ 2.132282 , -1.2191696 ],\n", + " [-1.2191696 , 3.355276 ]],\n", + " \n", + " [[ 2.1587126 , -1.2537547 ],\n", + " [-1.2537547 , 3.349433 ]],\n", + " \n", + " [[ 2.1857932 , -1.2882475 ],\n", + " [-1.2882475 , 3.3447084 ]],\n", + " \n", + " [[ 2.213524 , -1.3226593 ],\n", + " [-1.3226593 , 3.3410358 ]],\n", + " \n", + " [[ 2.2419066 , -1.3569994 ],\n", + " [-1.3569994 , 3.338352 ]],\n", + " \n", + " [[ 2.2709415 , -1.3912752 ],\n", + " [-1.3912752 , 3.3365958 ]],\n", + " \n", + " [[ 2.3006296 , -1.4254917 ],\n", + " [-1.4254917 , 3.3357093 ]],\n", + " \n", + " [[ 2.3309722 , -1.4596525 ],\n", + " [-1.4596525 , 3.3356361 ]],\n", + " \n", + " [[ 2.3619697 , -1.4937592 ],\n", + " [-1.4937592 , 3.3363223 ]],\n", + " \n", + " [[ 2.3936193 , -1.5278654 ],\n", + " [-1.5278654 , 3.3377943 ]],\n", + " \n", + " [[ 2.4259272 , -1.5618641 ],\n", + " [-1.5618641 , 3.3398488 ]],\n", + " \n", + " [[ 2.458891 , -1.5958037 ],\n", + " [-1.5958037 , 3.3425078 ]],\n", + " \n", + " [[ 2.49251 , -1.6296787 ],\n", + " [-1.6296787 , 3.345721 ]],\n", + " \n", + " [[ 2.5267837 , -1.6634821 ],\n", + " [-1.6634821 , 3.3494391 ]],\n", + " \n", + " [[ 2.5617104 , -1.6972053 ],\n", + " [-1.6972053 , 3.353613 ]],\n", + " \n", + " [[ 2.597288 , -1.7308383 ],\n", + " [-1.7308383 , 3.3581932 ]],\n", + " \n", + " [[ 2.6335135 , -1.7643692 ],\n", + " [-1.7643692 , 3.363131 ]],\n", + " \n", + " [[ 2.670312 , -1.7977797 ],\n", + " [-1.7977797 , 3.368463 ]],\n", + " \n", + " [[ 2.707818 , -1.8310653 ],\n", + " [-1.8310653 , 3.3739724 ]],\n", + " \n", + " [[ 2.745958 , -1.8642036 ],\n", + " [-1.8642036 , 3.3796911 ]],\n", + " \n", + " [[ 2.7847261 , -1.8971764 ],\n", + " [-1.8971764 , 3.3855677 ]],\n", + " \n", + " [[ 2.8241148 , -1.9299635 ],\n", + " [-1.9299635 , 3.391551 ]],\n", + " \n", + " [[ 2.8641152 , -1.9625431 ],\n", + " [-1.9625431 , 3.3975887 ]],\n", + " \n", + " [[ 2.9047174 , -1.9948919 ],\n", + " [-1.9948919 , 3.403628 ]],\n", + " \n", + " [[ 2.9459105 , -2.0269842 ],\n", + " [-2.0269842 , 3.4096148 ]],\n", + " \n", + " [[ 2.9876812 , -2.0587935 ],\n", + " [-2.0587935 , 3.4154942 ]],\n", + " \n", + " [[ 3.0300155 , -2.0902908 ],\n", + " [-2.0902908 , 3.4212103 ]],\n", + " \n", + " [[ 3.072763 , -2.1213753 ],\n", + " [-2.1213753 , 3.426736 ]],\n", + " \n", + " [[ 3.11617 , -2.1521544 ],\n", + " [-2.1521544 , 3.4319553 ]],\n", + " \n", + " [[ 3.1600878 , -2.1825242 ],\n", + " [-2.1825242 , 3.4368374 ]],\n", + " \n", + " [[ 3.2044954 , -2.2124496 ],\n", + " [-2.2124496 , 3.4413235 ]],\n", + " \n", + " [[ 3.2493696 , -2.2418926 ],\n", + " [-2.2418926 , 3.4453526 ]],\n", + " \n", + " [[ 3.2946851 , -2.270814 ],\n", + " [-2.270814 , 3.448864 ]],\n", + " \n", + " [[ 3.340415 , -2.2991729 ],\n", + " [-2.2991729 , 3.4517956 ]],\n", + " \n", + " [[ 3.3865292 , -2.3269262 ],\n", + " [-2.3269262 , 3.4540856 ]],\n", + " \n", + " [[ 3.4329965 , -2.3540301 ],\n", + " [-2.3540301 , 3.4556715 ]],\n", + " \n", + " [[ 3.4797823 , -2.3804383 ],\n", + " [-2.3804383 , 3.4564912 ]],\n", + " \n", + " [[ 3.5268505 , -2.4061036 ],\n", + " [-2.4061036 , 3.4564826 ]],\n", + " \n", + " [[ 3.5741615 , -2.4309773 ],\n", + " [-2.4309773 , 3.455584 ]],\n", + " \n", + " [[ 3.6216743 , -2.4550097 ],\n", + " [-2.4550097 , 3.4537349 ]],\n", + " \n", + " [[ 3.6693444 , -2.4781494 ],\n", + " [-2.4781494 , 3.450876 ]],\n", + " \n", + " [[ 3.7171252 , -2.5003448 ],\n", + " [-2.5003448 , 3.4469488 ]],\n", + " \n", + " [[ 3.7649674 , -2.5215428 ],\n", + " [-2.5215428 , 3.4418976 ]],\n", + " \n", + " [[ 3.812819 , -2.5416903 ],\n", + " [-2.5416903 , 3.4356685 ]],\n", + " \n", + " [[ 3.8606253 , -2.5607338 ],\n", + " [-2.5607338 , 3.4282103 ]],\n", + " \n", + " [[ 3.9083295 , -2.5786192 ],\n", + " [-2.5786192 , 3.419475 ]],\n", + " \n", + " [[ 3.9558718 , -2.5952933 ],\n", + " [-2.5952933 , 3.4094186 ]],\n", + " \n", + " [[ 4.00319 , -2.6107028 ],\n", + " [-2.6107028 , 3.3980002 ]],\n", + " \n", + " [[ 4.05022 , -2.624795 ],\n", + " [-2.624795 , 3.3851843 ]],\n", + " \n", + " [[ 4.0968943 , -2.637519 ],\n", + " [-2.637519 , 3.3709395 ]],\n", + " \n", + " [[ 4.143145 , -2.6488247 ],\n", + " [-2.6488247 , 3.3552406 ]],\n", + " \n", + " [[ 4.188901 , -2.6586637 ],\n", + " [-2.6586637 , 3.338067 ]],\n", + " \n", + " [[ 4.23409 , -2.6669905 ],\n", + " [-2.6669905 , 3.3194053 ]],\n", + " \n", + " [[ 4.2786374 , -2.6737611 ],\n", + " [-2.6737611 , 3.299248 ]],\n", + " \n", + " [[ 4.3224683 , -2.678935 ],\n", + " [-2.678935 , 3.277594 ]],\n", + " \n", + " [[ 4.365628 , -2.68244 ],\n", + " [-2.68244 , 3.2543144 ]],\n", + " \n", + " [[ 4.4077754 , -2.6843088 ],\n", + " [-2.6843088 , 3.2297022 ]],\n", + " \n", + " [[ 4.448932 , -2.684281 ],\n", + " [-2.684281 , 3.2033453 ]],\n", + " \n", + " [[ 4.4891148 , -2.6827228 ],\n", + " [-2.6827228 , 3.1758404 ]],\n", + " \n", + " [[ 4.5282 , -2.6794264 ],\n", + " [-2.6794264 , 3.146949 ]],\n", + " \n", + " [[ 4.5660877 , -2.674371 ],\n", + " [-2.674371 , 3.1167183 ]],\n", + " \n", + " [[ 4.602727 , -2.667543 ],\n", + " [-2.667543 , 3.0851824 ]],\n", + " \n", + " [[ 4.6380477 , -2.6589441 ],\n", + " [-2.6589441 , 3.0524065 ]],\n", + " \n", + " [[ 4.6719556 , -2.6485746 ],\n", + " [-2.6485746 , 3.0184634 ]],\n", + " \n", + " [[ 4.7043886 , -2.636436 ],\n", + " [-2.636436 , 2.983413 ]],\n", + " \n", + " [[ 4.735291 , -2.622544 ],\n", + " [-2.622544 , 2.9473321 ]],\n", + " \n", + " [[ 4.7645836 , -2.6069202 ],\n", + " [-2.6069202 , 2.9103117 ]],\n", + " \n", + " [[ 4.792203 , -2.5895855 ],\n", + " [-2.5895855 , 2.872435 ]],\n", + " \n", + " [[ 4.8181024 , -2.5705712 ],\n", + " [-2.5705712 , 2.833791 ]],\n", + " \n", + " [[ 4.8422213 , -2.549917 ],\n", + " [-2.549917 , 2.7944808 ]],\n", + " \n", + " [[ 4.864505 , -2.5276644 ],\n", + " [-2.5276644 , 2.7546043 ]],\n", + " \n", + " [[ 4.884681 , -2.5036871 ],\n", + " [-2.5036871 , 2.7141345 ]],\n", + " \n", + " [[ 4.903175 , -2.4784045 ],\n", + " [-2.4784045 , 2.673449 ]],\n", + " \n", + " [[ 4.919731 , -2.4516838 ],\n", + " [-2.4516838 , 2.6325002 ]],\n", + " \n", + " [[ 4.9342957 , -2.4235945 ],\n", + " [-2.4235945 , 2.5914073 ]],\n", + " \n", + " [[ 4.946856 , -2.3942 ],\n", + " [-2.3942 , 2.5502663 ]],\n", + " \n", + " [[ 4.95717 , -2.363537 ],\n", + " [-2.363537 , 2.5092225 ]],\n", + " \n", + " [[ 4.965679 , -2.3317726 ],\n", + " [-2.3317726 , 2.4683137 ]],\n", + " \n", + " [[ 4.972146 , -2.2989426 ],\n", + " [-2.2989426 , 2.4276772 ]],\n", + " \n", + " [[ 4.97656 , -2.26512 ],\n", + " [-2.26512 , 2.3874023 ]],\n", + " \n", + " [[ 4.9789267 , -2.2303977 ],\n", + " [-2.2303977 , 2.347593 ]],\n", + " \n", + " [[ 4.979256 , -2.1948588 ],\n", + " [-2.1948588 , 2.308337 ]],\n", + " \n", + " [[ 4.9775605 , -2.1585968 ],\n", + " [-2.1585968 , 2.269727 ]],\n", + " \n", + " [[ 4.973862 , -2.1217003 ],\n", + " [-2.1217003 , 2.2318454 ]],\n", + " \n", + " [[ 4.968196 , -2.084398 ],\n", + " [-2.084398 , 2.1949105 ]],\n", + " \n", + " [[ 4.960588 , -2.046504 ],\n", + " [-2.046504 , 2.1587112 ]],\n", + " \n", + " [[ 4.9510574 , -2.0082536 ],\n", + " [-2.0082536 , 2.1234717 ]],\n", + " \n", + " [[ 4.9396577 , -1.969733 ],\n", + " [-1.969733 , 2.08925 ]],\n", + " \n", + " [[ 4.9264255 , -1.9310323 ],\n", + " [-1.9310323 , 2.0561073 ]],\n", + " \n", + " [[ 4.9114103 , -1.8922408 ],\n", + " [-1.8922408 , 2.0240986 ]],\n", + " \n", + " [[ 4.894665 , -1.853444 ],\n", + " [-1.853444 , 1.9932718 ]],\n", + " \n", + " [[ 4.8762436 , -1.8147265 ],\n", + " [-1.8147265 , 1.9636706 ]],\n", + " \n", + " [[ 4.8562055 , -1.7761699 ],\n", + " [-1.7761699 , 1.9353334 ]],\n", + " \n", + " [[ 4.834611 , -1.7378534 ],\n", + " [-1.7378534 , 1.9082929 ]],\n", + " \n", + " [[ 4.811717 , -1.6999732 ],\n", + " [-1.6999732 , 1.8826246 ]],\n", + " \n", + " [[ 4.7872005 , -1.6623496 ],\n", + " [-1.6623496 , 1.8582464 ]],\n", + " \n", + " [[ 4.761319 , -1.6251849 ],\n", + " [-1.6251849 , 1.8352374 ]],\n", + " \n", + " [[ 4.7341456 , -1.5885472 ],\n", + " [-1.5885472 , 1.8136128 ]],\n", + " \n", + " [[ 4.7059917 , -1.5525551 ],\n", + " [-1.5525551 , 1.7933593 ]],\n", + " \n", + " [[ 4.6764297 , -1.5171435 ],\n", + " [-1.5171435 , 1.7745258 ]],\n", + " \n", + " [[ 4.6457906 , -1.4824368 ],\n", + " [-1.4824368 , 1.7570976 ]],\n", + " \n", + " [[ 4.6141453 , -1.4484884 ],\n", + " [-1.4484884 , 1.7410767 ]],\n", + " \n", + " [[ 4.5815673 , -1.415347 ],\n", + " [-1.415347 , 1.7264615 ]],\n", + " \n", + " [[ 4.5481277 , -1.3830582 ],\n", + " [-1.3830582 , 1.7132475 ]],\n", + " \n", + " [[ 4.513899 , -1.3516635 ],\n", + " [-1.3516635 , 1.7014285 ]],\n", + " \n", + " [[ 4.478951 , -1.3212016 ],\n", + " [-1.3212016 , 1.6909965 ]],\n", + " \n", + " [[ 4.443355 , -1.2917078 ],\n", + " [-1.2917078 , 1.6819423 ]],\n", + " \n", + " [[ 4.4071794 , -1.2632143 ],\n", + " [-1.2632143 , 1.6742556 ]],\n", + " \n", + " [[ 4.370493 , -1.2357507 ],\n", + " [-1.2357507 , 1.6679255 ]],\n", + " \n", + " [[ 4.333362 , -1.2093433 ],\n", + " [-1.2093433 , 1.6629404 ]],\n", + " \n", + " [[ 4.295852 , -1.1840162 ],\n", + " [-1.1840162 , 1.6592889 ]],\n", + " \n", + " [[ 4.2580285 , -1.1597251 ],\n", + " [-1.1597251 , 1.6569198 ]],\n", + " \n", + " [[ 4.2199397 , -1.1366245 ],\n", + " [-1.1366245 , 1.6559091 ]],\n", + " \n", + " [[ 4.1816635 , -1.1146624 ],\n", + " [-1.1146624 , 1.6561989 ]],\n", + " \n", + " [[ 4.143257 , -1.0938545 ],\n", + " [-1.0938545 , 1.657781 ]],\n", + " \n", + " [[ 4.1047783 , -1.0742148 ],\n", + " [-1.0742148 , 1.6606482 ]],\n", + " \n", + " [[ 4.0662827 , -1.0557557 ],\n", + " [-1.0557557 , 1.6647943 ]],\n", + " \n", + " [[ 4.027826 , -1.0384886 ],\n", + " [-1.0384886 , 1.6702155 ]],\n", + " \n", + " [[ 3.9894598 , -1.0224236 ],\n", + " [-1.0224236 , 1.6769098 ]],\n", + " \n", + " [[ 3.9512365 , -1.0075706 ],\n", + " [-1.0075706 , 1.6848779 ]],\n", + " \n", + " [[ 3.913206 , -0.9939389 ],\n", + " [-0.9939389 , 1.6941234 ]],\n", + " \n", + " [[ 3.8754168 , -0.98153734],\n", + " [-0.98153734, 1.7046528 ]],\n", + " \n", + " [[ 3.8379157 , -0.9703752 ],\n", + " [-0.9703752 , 1.7164758 ]],\n", + " \n", + " [[ 3.800749 , -0.96046185],\n", + " [-0.96046185, 1.7296065 ]],\n", + " \n", + " [[ 3.7639616 , -0.9518074 ],\n", + " [-0.9518074 , 1.7440624 ]],\n", + " \n", + " [[ 3.727597 , -0.9444228 ],\n", + " [-0.9444228 , 1.7598659 ]],\n", + " \n", + " [[ 3.6916978 , -0.9383202 ],\n", + " [-0.9383202 , 1.777044 ]],\n", + " \n", + " [[ 3.6561933 , -0.93351686],\n", + " [-0.93351686, 1.7956986 ]],\n", + " \n", + " [[ 3.6213574 , -0.9300259 ],\n", + " [-0.9300259 , 1.8157315 ]],\n", + " \n", + " [[ 3.5871115 , -0.9278638 ],\n", + " [-0.9278638 , 1.837255 ]],\n", + " \n", + " [[ 3.5534973 , -0.92705095],\n", + " [-0.92705095, 1.8603206 ]],\n", + " \n", + " [[ 3.5205557 , -0.927611 ],\n", + " [-0.927611 , 1.8849877 ]],\n", + " \n", + " [[ 3.4883282 , -0.92957103],\n", + " [-0.92957103, 1.9113247 ]],\n", + " \n", + " [[ 3.4568565 , -0.9329624 ],\n", + " [-0.9329624 , 1.9394095 ]],\n", + " \n", + " [[ 3.4261835 , -0.9378211 ],\n", + " [-0.9378211 , 1.9693302 ]],\n", + " \n", + " [[ 3.3963535 , -0.9441885 ],\n", + " [-0.9441885 , 2.001187 ]],\n", + " \n", + " [[ 3.3674119 , -0.9521121 ],\n", + " [-0.9521121 , 2.035093 ]],\n", + " \n", + " [[ 3.3394067 , -0.96164644],\n", + " [-0.96164644, 2.0711765 ]],\n", + " \n", + " [[ 3.312389 , -0.972854 ],\n", + " [-0.972854 , 2.109582 ]],\n", + " \n", + " [[ 3.2864115 , -0.9858065 ],\n", + " [-0.9858065 , 2.150473 ]],\n", + " \n", + " [[ 3.2615328 , -1.0005859 ],\n", + " [-1.0005859 , 2.1940346 ]],\n", + " \n", + " [[ 3.237815 , -1.0172864 ],\n", + " [-1.0172864 , 2.2404761 ]],\n", + " \n", + " [[ 3.2153258 , -1.0360159 ],\n", + " [-1.0360159 , 2.2900355 ]],\n", + " \n", + " [[ 3.1941404 , -1.0568982 ],\n", + " [-1.0568982 , 2.3429825 ]],\n", + " \n", + " [[ 3.174341 , -1.0800759 ],\n", + " [-1.0800759 , 2.3996246 ]],\n", + " \n", + " [[ 3.1559708 , -1.1057343 ],\n", + " [-1.1057343 , 2.460376 ]],\n", + " \n", + " [[ 3.1392353 , -1.1340135 ],\n", + " [-1.1340135 , 2.525503 ]],\n", + " \n", + " [[ 3.1241982 , -1.1651595 ],\n", + " [-1.1651595 , 2.5955398 ]],\n", + " \n", + " [[ 3.110992 , -1.1994267 ],\n", + " [-1.1994267 , 2.6710217 ]],\n", + " \n", + " [[ 3.0998065 , -1.2371225 ],\n", + " [-1.2371225 , 2.7525625 ]],\n", + " \n", + " [[ 3.090742 , -1.2785816 ],\n", + " [-1.2785816 , 2.8409147 ]],\n", + " \n", + " [[ 3.084042 , -1.3242136 ],\n", + " [-1.3242136 , 2.936903 ]],\n", + " \n", + " [[ 3.0799453 , -1.3744994 ],\n", + " [-1.3744994 , 3.041525 ]],\n", + " \n", + " [[ 3.078734 , -1.4300113 ],\n", + " [-1.4300113 , 3.1559644 ]],\n", + " \n", + " [[ 3.0807426 , -1.4914333 ],\n", + " [-1.4914333 , 3.2816362 ]],\n", + " \n", + " [[ 3.0863726 , -1.5595902 ],\n", + " [-1.5595902 , 3.4202447 ]],\n", + " \n", + " [[ 3.0961092 , -1.6354841 ],\n", + " [-1.6354841 , 3.5738606 ]],\n", + " \n", + " [[ 3.1105447 , -1.7203441 ],\n", + " [-1.7203441 , 3.7450256 ]],\n", + " \n", + " [[ 3.1304107 , -1.815693 ],\n", + " [-1.815693 , 3.9368913 ]],\n", + " \n", + " [[ 3.1565464 , -1.92324 ],\n", + " [-1.92324 , 4.1530495 ]],\n", + " \n", + " [[ 3.1902452 , -2.045774 ],\n", + " [-2.045774 , 4.3991885 ]],\n", + " \n", + " [[ 3.2329311 , -2.1862547 ],\n", + " [-2.1862547 , 4.681515 ]],\n", + " \n", + " [[ 3.2865505 , -2.3487842 ],\n", + " [-2.3487842 , 5.008584 ]]], dtype=float32), 'Actuated_Mass': array([[[ 0.1378213 , -0.00285384],\n", + " [-0.00285384, 0.1222294 ]],\n", + " \n", + " [[ 0.13841459, -0.00363913],\n", + " [-0.00363913, 0.1225272 ]],\n", + " \n", + " [[ 0.13901891, -0.00442833],\n", + " [-0.00442833, 0.12283572]],\n", + " \n", + " [[ 0.13963877, -0.00522641],\n", + " [-0.00522641, 0.12315682]],\n", + " \n", + " [[ 0.14027564, -0.00603438],\n", + " [-0.00603438, 0.12349099]],\n", + " \n", + " [[ 0.14093092, -0.00685326],\n", + " [-0.00685326, 0.1238388 ]],\n", + " \n", + " [[ 0.14160429, -0.00768205],\n", + " [-0.00768205, 0.12419996]],\n", + " \n", + " [[ 0.14230016, -0.00852566],\n", + " [-0.00852566, 0.1245768 ]],\n", + " \n", + " [[ 0.14301828, -0.00938323],\n", + " [-0.00938323, 0.12496921]],\n", + " \n", + " [[ 0.14375992, -0.01025582],\n", + " [-0.01025582, 0.12537795]],\n", + " \n", + " [[ 0.14452556, -0.01114357],\n", + " [-0.01114357, 0.12580334]],\n", + " \n", + " [[ 0.14531814, -0.0120495 ],\n", + " [-0.0120495 , 0.12624712]],\n", + " \n", + " [[ 0.1461382 , -0.01297386],\n", + " [-0.01297386, 0.12670976]],\n", + " \n", + " [[ 0.1469872 , -0.01391788],\n", + " [-0.01391788, 0.12719221]],\n", + " \n", + " [[ 0.14786656, -0.01488285],\n", + " [-0.01488285, 0.1276955 ]],\n", + " \n", + " [[ 0.14877783, -0.01587012],\n", + " [-0.01587012, 0.12822068]],\n", + " \n", + " [[ 0.14972258, -0.01688111],\n", + " [-0.01688111, 0.1287689 ]],\n", + " \n", + " [[ 0.1507025 , -0.01791731],\n", + " [-0.01791731, 0.12934141]],\n", + " \n", + " [[ 0.15171938, -0.0189803 ],\n", + " [-0.0189803 , 0.12993945]],\n", + " \n", + " [[ 0.152775 , -0.02007173],\n", + " [-0.02007173, 0.13056444]],\n", + " \n", + " [[ 0.15387218, -0.0211942 ],\n", + " [-0.0211942 , 0.1312183 ]],\n", + " \n", + " [[ 0.15501146, -0.02234803],\n", + " [-0.02234803, 0.13190171]],\n", + " \n", + " [[ 0.15619569, -0.02353586],\n", + " [-0.02353586, 0.13261671]],\n", + " \n", + " [[ 0.15742713, -0.02475974],\n", + " [-0.02475974, 0.13336506]],\n", + " \n", + " [[ 0.1587082 , -0.02602187],\n", + " [-0.02602187, 0.13414861]],\n", + " \n", + " [[ 0.16004145, -0.02732453],\n", + " [-0.02732453, 0.13496935]],\n", + " \n", + " [[ 0.16142954, -0.02867018],\n", + " [-0.02867018, 0.13582937]],\n", + " \n", + " [[ 0.16287532, -0.0300614 ],\n", + " [-0.0300614 , 0.13673092]],\n", + " \n", + " [[ 0.16438182, -0.03150092],\n", + " [-0.03150092, 0.13767639]],\n", + " \n", + " [[ 0.1659561 , -0.03299537],\n", + " [-0.03299537, 0.1386708 ]],\n", + " \n", + " [[ 0.16759421, -0.03454082],\n", + " [-0.03454082, 0.13971218]],\n", + " \n", + " [[ 0.16930316, -0.03614383],\n", + " [-0.03614383, 0.14080562]],\n", + " \n", + " [[ 0.17108674, -0.03780788],\n", + " [-0.03780788, 0.14195415]],\n", + " \n", + " [[ 0.17294897, -0.03953664],\n", + " [-0.03953664, 0.14316107]],\n", + " \n", + " [[ 0.17489406, -0.04133399],\n", + " [-0.04133399, 0.14442982]],\n", + " \n", + " [[ 0.17692651, -0.04320408],\n", + " [-0.04320408, 0.1457641 ]],\n", + " \n", + " [[ 0.17905717, -0.04515686],\n", + " [-0.04515686, 0.1471719 ]],\n", + " \n", + " [[ 0.18127953, -0.04718637],\n", + " [-0.04718637, 0.14864975]],\n", + " \n", + " [[ 0.18360442, -0.04930263],\n", + " [-0.04930263, 0.15020575]],\n", + " \n", + " [[ 0.18603751, -0.05151086],\n", + " [-0.05151086, 0.15184462]],\n", + " \n", + " [[ 0.18858476, -0.05381661],\n", + " [-0.05381661, 0.15357144]],\n", + " \n", + " [[ 0.19125253, -0.05622576],\n", + " [-0.05622576, 0.15539156]],\n", + " \n", + " [[ 0.1940475 , -0.05874456],\n", + " [-0.05874456, 0.15731068]],\n", + " \n", + " [[ 0.19697674, -0.06137961],\n", + " [-0.06137961, 0.15933488]],\n", + " \n", + " [[ 0.20004775, -0.0641379 ],\n", + " [-0.0641379 , 0.16147058]],\n", + " \n", + " [[ 0.20326842, -0.06702682],\n", + " [-0.06702682, 0.16372462]],\n", + " \n", + " [[ 0.20665501, -0.0700613 ],\n", + " [-0.0700613 , 0.16610982]],\n", + " \n", + " [[ 0.21020123, -0.07323609],\n", + " [-0.07323609, 0.16862325]],\n", + " \n", + " [[ 0.21392363, -0.07656644],\n", + " [-0.07656644, 0.17127816]],\n", + " \n", + " [[ 0.21783191, -0.08006152],\n", + " [-0.08006152, 0.17408313]],\n", + " \n", + " [[ 0.22193633, -0.08373103],\n", + " [-0.08373103, 0.17704722]],\n", + " \n", + " [[ 0.22624761, -0.08758515],\n", + " [-0.08758515, 0.18018003]],\n", + " \n", + " [[ 0.23077701, -0.09163456],\n", + " [-0.09163456, 0.18349159]],\n", + " \n", + " [[ 0.23553626, -0.09589047],\n", + " [-0.09589047, 0.18699251]],\n", + " \n", + " [[ 0.24053939, -0.10036606],\n", + " [-0.10036606, 0.19069506]],\n", + " \n", + " [[ 0.24579574, -0.10507067],\n", + " [-0.10507067, 0.19460861]],\n", + " \n", + " [[ 0.25132006, -0.11001828],\n", + " [-0.11001828, 0.19874623]],\n", + " \n", + " [[ 0.25712597, -0.115222 ],\n", + " [-0.115222 , 0.20312051]],\n", + " \n", + " [[ 0.26322746, -0.12069533],\n", + " [-0.12069533, 0.20774442]],\n", + " \n", + " [[ 0.26963878, -0.12645212],\n", + " [-0.12645212, 0.21263131]],\n", + " \n", + " [[ 0.27637443, -0.13250645],\n", + " [-0.13250645, 0.21779484]],\n", + " \n", + " [[ 0.28344905, -0.13887264],\n", + " [-0.13887264, 0.22324893]],\n", + " \n", + " [[ 0.29087725, -0.14556503],\n", + " [-0.14556503, 0.2290076 ]],\n", + " \n", + " [[ 0.29867357, -0.15259793],\n", + " [-0.15259793, 0.23508494]],\n", + " \n", + " [[ 0.306834 , -0.15996863],\n", + " [-0.15996863, 0.24148002]],\n", + " \n", + " [[ 0.31540722, -0.16772307],\n", + " [-0.16772307, 0.2482349 ]],\n", + " \n", + " [[ 0.32438898, -0.17585853],\n", + " [-0.17585853, 0.25534886]],\n", + " \n", + " [[ 0.33379123, -0.18438715],\n", + " [-0.18438715, 0.26283422]],\n", + " \n", + " [[ 0.34362435, -0.19331974],\n", + " [-0.19331974, 0.27070215]],\n", + " \n", + " [[ 0.35389698, -0.20266551],\n", + " [-0.20266551, 0.27896243]],\n", + " \n", + " [[ 0.3646155 , -0.21243164],\n", + " [-0.21243164, 0.287623 ]],\n", + " \n", + " [[ 0.37578362, -0.22262284],\n", + " [-0.22262284, 0.29668954]],\n", + " \n", + " [[ 0.38740185, -0.23324086],\n", + " [-0.23324086, 0.306165 ]],\n", + " \n", + " [[ 0.39946687, -0.24428394],\n", + " [-0.24428394, 0.31604913]],\n", + " \n", + " [[ 0.41197106, -0.2557462 ],\n", + " [-0.2557462 , 0.32633778]],\n", + " \n", + " [[ 0.42490163, -0.26761702],\n", + " [-0.26761702, 0.33702245]],\n", + " \n", + " [[ 0.4382401 , -0.27988034],\n", + " [-0.27988034, 0.34808955]],\n", + " \n", + " [[ 0.45196167, -0.29251415],\n", + " [-0.29251415, 0.35951975]],\n", + " \n", + " [[ 0.46603432, -0.30548963],\n", + " [-0.30548963, 0.3712874 ]],\n", + " \n", + " [[ 0.48041832, -0.3187706 ],\n", + " [-0.3187706 , 0.38335988]],\n", + " \n", + " [[ 0.4950657 , -0.33231297],\n", + " [-0.33231297, 0.39569703]],\n", + " \n", + " [[ 0.5099195 , -0.34606424],\n", + " [-0.34606424, 0.4082506 ]],\n", + " \n", + " [[ 0.52491385, -0.35996306],\n", + " [-0.35996306, 0.42096397]],\n", + " \n", + " [[ 0.5399731 , -0.37393907],\n", + " [-0.37393907, 0.43377188]],\n", + " \n", + " [[ 0.55501246, -0.38791284],\n", + " [-0.38791284, 0.4466003 ]],\n", + " \n", + " [[ 0.56993794, -0.40179616],\n", + " [-0.40179616, 0.45936674]],\n", + " \n", + " [[ 0.584647 , -0.41549242],\n", + " [-0.41549242, 0.47198066]],\n", + " \n", + " [[ 0.59902924, -0.42889756],\n", + " [-0.42889756, 0.48434424]],\n", + " \n", + " [[ 0.61296767, -0.44190106],\n", + " [-0.44190106, 0.4963533 ]],\n", + " \n", + " [[ 0.62634045, -0.45438743],\n", + " [-0.45438743, 0.50789887]],\n", + " \n", + " [[ 0.6390225 , -0.4662381 ],\n", + " [-0.4662381 , 0.5188688 ]],\n", + " \n", + " [[ 0.6508878 , -0.47733337],\n", + " [-0.47733337, 0.5291498 ]],\n", + " \n", + " [[ 0.6617979 , -0.48754415],\n", + " [-0.48754415, 0.5386213 ]],\n", + " \n", + " [[ 0.6716377 , -0.4967549 ],\n", + " [-0.4967549 , 0.5471692 ]],\n", + " \n", + " [[ 0.68011785, -0.50469536],\n", + " [-0.50469536, 0.55454206]],\n", + " \n", + " [[ 0.6875282 , -0.5116396 ],\n", + " [-0.5116396 , 0.5609957 ]],\n", + " \n", + " [[ 0.6935634 , -0.517298 ],\n", + " [-0.517298 , 0.5662575 ]],\n", + " \n", + " [[ 0.69813985, -0.52158684],\n", + " [-0.52158684, 0.5702448 ]],\n", + " \n", + " [[ 0.7012266 , -0.5244801 ],\n", + " [-0.5244801 , 0.5729353 ]],\n", + " \n", + " [[ 0.70277494, -0.5259322 ],\n", + " [-0.5259322 , 0.5742863 ]],\n", + " \n", + " [[ 0.7027477 , -0.5259044 ],\n", + " [-0.5259044 , 0.5742588 ]],\n", + " \n", + " [[ 0.7011616 , -0.524414 ],\n", + " [-0.524414 , 0.5728697 ]],\n", + " \n", + " [[ 0.6980413 , -0.5214861 ],\n", + " [-0.5214861 , 0.57014453]],\n", + " \n", + " [[ 0.6934129 , -0.51714396],\n", + " [-0.51714396, 0.56610405]],\n", + " \n", + " [[ 0.68734163, -0.5114495 ],\n", + " [-0.5114495 , 0.560807 ]],\n", + " \n", + " [[ 0.6799115 , -0.5044844 ],\n", + " [-0.5044844 , 0.55433226]],\n", + " \n", + " [[ 0.6712054 , -0.4963272 ],\n", + " [-0.4963272 , 0.5467541 ]],\n", + " \n", + " [[ 0.6613266 , -0.48707548],\n", + " [-0.48707548, 0.53816485]],\n", + " \n", + " [[ 0.65019727, -0.47666067],\n", + " [-0.47666067, 0.5285052 ]],\n", + " \n", + " [[ 0.63834083, -0.46557033],\n", + " [-0.46557033, 0.51822656]],\n", + " \n", + " [[ 0.6256826 , -0.4537411 ],\n", + " [-0.4537411 , 0.50727624]],\n", + " \n", + " [[ 0.61232734, -0.44126925],\n", + " [-0.44126925, 0.49574307]],\n", + " \n", + " [[ 0.59841496, -0.42828894],\n", + " [-0.42828894, 0.48375496]],\n", + " \n", + " [[ 0.5839678 , -0.4148231 ],\n", + " [-0.4148231 , 0.4713359 ]],\n", + " \n", + " [[ 0.5693038 , -0.40116787],\n", + " [-0.40116787, 0.45875955]],\n", + " \n", + " [[ 0.5544197 , -0.3873228 ],\n", + " [-0.3873228 , 0.44602868]],\n", + " \n", + " [[ 0.5394245 , -0.3733898 ],\n", + " [-0.3733898 , 0.43323815]],\n", + " \n", + " [[ 0.52440494, -0.3594506 ],\n", + " [-0.3594506 , 0.42046455]],\n", + " \n", + " [[ 0.50945085, -0.34558922],\n", + " [-0.34558922, 0.4077862 ]],\n", + " \n", + " [[ 0.4946338 , -0.33187217],\n", + " [-0.33187217, 0.39526466]],\n", + " \n", + " [[ 0.48002207, -0.31836313],\n", + " [-0.31836313, 0.38295886]],\n", + " \n", + " [[ 0.46571502, -0.3051537 ],\n", + " [-0.3051537 , 0.37095243]],\n", + " \n", + " [[ 0.45167562, -0.29220986],\n", + " [-0.29220986, 0.3592148 ]],\n", + " \n", + " [[ 0.43798003, -0.27960005],\n", + " [-0.27960005, 0.34780708]],\n", + " \n", + " [[ 0.42466646, -0.26736033],\n", + " [-0.26736033, 0.3367625 ]],\n", + " \n", + " [[ 0.41175842, -0.2555109 ],\n", + " [-0.2555109 , 0.32609814]],\n", + " \n", + " [[ 0.3992741 , -0.24406746],\n", + " [-0.24406746, 0.3158275 ]],\n", + " \n", + " [[ 0.38722706, -0.23304158],\n", + " [-0.23304158, 0.3059599 ]],\n", + " \n", + " [[ 0.37562487, -0.22243895],\n", + " [-0.22243895, 0.29649934]],\n", + " \n", + " [[ 0.36447102, -0.21226154],\n", + " [-0.21226154, 0.28744623]],\n", + " \n", + " [[ 0.35376525, -0.20250782],\n", + " [-0.20250782, 0.27879786]],\n", + " \n", + " [[ 0.34355062, -0.19321522],\n", + " [-0.19321522, 0.2705854 ]],\n", + " \n", + " [[ 0.33372298, -0.18428865],\n", + " [-0.18428865, 0.26272398]],\n", + " \n", + " [[ 0.324325 , -0.17576467],\n", + " [-0.17576467, 0.25524378]],\n", + " \n", + " [[ 0.3153466 , -0.16763298],\n", + " [-0.16763298, 0.24813415]],\n", + " \n", + " [[ 0.30681193, -0.15991345],\n", + " [-0.15991345, 0.2414102 ]],\n", + " \n", + " [[ 0.29863152, -0.1525251 ],\n", + " [-0.1525251 , 0.23500057]],\n", + " \n", + " [[ 0.29083428, -0.14549226],\n", + " [-0.14549226, 0.22892436]],\n", + " \n", + " [[ 0.28340545, -0.13880017],\n", + " [-0.13880017, 0.22316702]],\n", + " \n", + " [[ 0.27633047, -0.13243447],\n", + " [-0.13243447, 0.2177144 ]],\n", + " \n", + " [[ 0.26959467, -0.12638083],\n", + " [-0.12638083, 0.2125525 ]],\n", + " \n", + " [[ 0.26318344, -0.12062494],\n", + " [-0.12062494, 0.2076674 ]],\n", + " \n", + " [[ 0.25708222, -0.11515265],\n", + " [-0.11515265, 0.2030454 ]],\n", + " \n", + " [[ 0.25127673, -0.10995011],\n", + " [-0.10995011, 0.19867311]],\n", + " \n", + " [[ 0.24575298, -0.10500379],\n", + " [-0.10500379, 0.19453757]],\n", + " \n", + " [[ 0.24049734, -0.10030059],\n", + " [-0.10030059, 0.19062619]],\n", + " \n", + " [[ 0.23549661, -0.09582783],\n", + " [-0.09582783, 0.1869269 ]],\n", + " \n", + " [[ 0.23073807, -0.09157331],\n", + " [-0.09157331, 0.18342806]],\n", + " \n", + " [[ 0.22620504, -0.08752107],\n", + " [-0.08752107, 0.18011498]],\n", + " \n", + " [[ 0.2218941 , -0.08366794],\n", + " [-0.08366794, 0.17698392]],\n", + " \n", + " [[ 0.21779035, -0.07999975],\n", + " [-0.07999975, 0.17402184]],\n", + " \n", + " [[ 0.21388286, -0.07650609],\n", + " [-0.07650609, 0.17121895]],\n", + " \n", + " [[ 0.21016136, -0.07317723],\n", + " [-0.07317723, 0.16856611]],\n", + " \n", + " [[ 0.20661604, -0.07000392],\n", + " [-0.07000392, 0.16605473]],\n", + " \n", + " [[ 0.20323764, -0.06697743],\n", + " [-0.06697743, 0.16367665]],\n", + " \n", + " [[ 0.20001733, -0.06408947],\n", + " [-0.06408947, 0.16142417]],\n", + " \n", + " [[ 0.19694677, -0.06133218],\n", + " [-0.06133218, 0.15929005]],\n", + " \n", + " [[ 0.194018 , -0.05869817],\n", + " [-0.05869817, 0.15726742]],\n", + " \n", + " [[ 0.19122355, -0.05618041],\n", + " [-0.05618041, 0.15534985]],\n", + " \n", + " [[ 0.18855633, -0.05377229],\n", + " [-0.05377229, 0.15353125]],\n", + " \n", + " [[ 0.1860096 , -0.05146758],\n", + " [-0.05146758, 0.15180594]],\n", + " \n", + " [[ 0.18357705, -0.04926036],\n", + " [-0.04926036, 0.15016852]],\n", + " \n", + " [[ 0.18125267, -0.0471451 ],\n", + " [-0.0471451 , 0.14861396]],\n", + " \n", + " [[ 0.17903082, -0.04511655],\n", + " [-0.04511655, 0.14713751]],\n", + " \n", + " [[ 0.17690033, -0.04316445],\n", + " [-0.04316445, 0.14573088]],\n", + " \n", + " [[ 0.17486835, -0.04129529],\n", + " [-0.04129529, 0.14439791]],\n", + " \n", + " [[ 0.17292365, -0.03949879],\n", + " [-0.03949879, 0.14313042]],\n", + " \n", + " [[ 0.17106181, -0.03777085],\n", + " [-0.03777085, 0.14192472]],\n", + " \n", + " [[ 0.16927858, -0.0361076 ],\n", + " [-0.0361076 , 0.14077735]],\n", + " \n", + " [[ 0.16756995, -0.03450536],\n", + " [-0.03450536, 0.13968506]],\n", + " \n", + " [[ 0.16593215, -0.03296065],\n", + " [-0.03296065, 0.13864478]],\n", + " \n", + " [[ 0.1643616 , -0.03147023],\n", + " [-0.03147023, 0.13765365]],\n", + " \n", + " [[ 0.16285492, -0.03003101],\n", + " [-0.03003101, 0.13670895]],\n", + " \n", + " [[ 0.16140896, -0.02864009],\n", + " [-0.02864009, 0.13580814]],\n", + " \n", + " [[ 0.16002066, -0.02729473],\n", + " [-0.02729473, 0.13494886]],\n", + " \n", + " [[ 0.1586872 , -0.02599233],\n", + " [-0.02599233, 0.13412885]],\n", + " \n", + " [[ 0.1574059 , -0.02473047],\n", + " [-0.02473047, 0.133346 ]],\n", + " \n", + " [[ 0.15617418, -0.02350682],\n", + " [-0.02350682, 0.13259837]],\n", + " \n", + " [[ 0.15498966, -0.02231921],\n", + " [-0.02231921, 0.13188404]],\n", + " \n", + " [[ 0.15385005, -0.02116558],\n", + " [-0.02116558, 0.1312013 ]],\n", + " \n", + " [[ 0.15275316, -0.02004397],\n", + " [-0.02004397, 0.13054849]],\n", + " \n", + " [[ 0.15169698, -0.01895254],\n", + " [-0.01895254, 0.12992406]],\n", + " \n", + " [[ 0.15067925, -0.01788926],\n", + " [-0.01788926, 0.1293264 ]],\n", + " \n", + " [[ 0.14969885, -0.01685321],\n", + " [-0.01685321, 0.12875456]],\n", + " \n", + " [[ 0.1487536 , -0.01584234],\n", + " [-0.01584234, 0.12820697]],\n", + " \n", + " [[ 0.14784175, -0.01485515],\n", + " [-0.01485515, 0.1276824 ]],\n", + " \n", + " [[ 0.14696136, -0.01388979],\n", + " [-0.01388979, 0.1271795 ]],\n", + " \n", + " [[ 0.1461115 , -0.01294562],\n", + " [-0.01294562, 0.12669758]],\n", + " \n", + " [[ 0.14529046, -0.01202106],\n", + " [-0.01202106, 0.12623547]],\n", + " \n", + " [[ 0.14449684, -0.01111489],\n", + " [-0.01111489, 0.12579222]],\n", + " \n", + " [[ 0.14372924, -0.0102259 ],\n", + " [-0.0102259 , 0.12536691]],\n", + " \n", + " [[ 0.14298634, -0.00935298],\n", + " [-0.00935298, 0.12495873]],\n", + " \n", + " [[ 0.14226682, -0.008495 ],\n", + " [-0.008495 , 0.12456687]],\n", + " \n", + " [[ 0.14156939, -0.00765091],\n", + " [-0.00765091, 0.12419059]],\n", + " \n", + " [[ 0.14089276, -0.00681966],\n", + " [-0.00681966, 0.12382921]],\n", + " \n", + " [[ 0.1402356 , -0.00600022],\n", + " [-0.00600022, 0.12348207]],\n", + " \n", + " [[ 0.13959767, -0.00519294],\n", + " [-0.00519294, 0.12314914]],\n", + " \n", + " [[ 0.13897535, -0.00439408],\n", + " [-0.00439408, 0.12282877]],\n", + " \n", + " [[ 0.13836814, -0.00360389],\n", + " [-0.00360389, 0.12252101]],\n", + " \n", + " [[ 0.13777433, -0.00282123],\n", + " [-0.00282123, 0.12222543]]], dtype=float32), 'Manip_Jacobian': array([[[-0.08421636, -0.2557303 ],\n", + " [ 0.1500645 , -0.01015235]],\n", + " \n", + " [[-0.08097089, -0.2565681 ],\n", + " [ 0.15310808, -0.01461124]],\n", + " \n", + " [[-0.07779163, -0.25737447],\n", + " [ 0.15601507, -0.01892375]],\n", + " \n", + " [[-0.07465901, -0.2581582 ],\n", + " [ 0.1588154 , -0.02312968]],\n", + " \n", + " [[-0.07156891, -0.25892347],\n", + " [ 0.16152215, -0.02724207]],\n", + " \n", + " [[-0.0685176 , -0.25967404],\n", + " [ 0.16414663, -0.03127223]],\n", + " \n", + " [[-0.0655106 , -0.26041123],\n", + " [ 0.16669208, -0.03522331]],\n", + " \n", + " [[-0.0625276 , -0.2611422 ],\n", + " [ 0.16918044, -0.03911775]],\n", + " \n", + " [[-0.05957415, -0.26186776],\n", + " [ 0.17161305, -0.04295653]],\n", + " \n", + " [[-0.05664765, -0.26259056],\n", + " [ 0.17399701, -0.04674669]],\n", + " \n", + " [[-0.05375135, -0.26331145],\n", + " [ 0.17633551, -0.05049444]],\n", + " \n", + " [[-0.05087196, -0.26403564],\n", + " [ 0.17864098, -0.05420655]],\n", + " \n", + " [[-0.04801277, -0.2647638 ],\n", + " [ 0.18091561, -0.05788792]],\n", + " \n", + " [[-0.04517181, -0.26549792],\n", + " [ 0.18316454, -0.0615436 ]],\n", + " \n", + " [[-0.04234718, -0.26623994],\n", + " [ 0.18539253, -0.06517842]],\n", + " \n", + " [[-0.03953708, -0.26699167],\n", + " [ 0.18760413, -0.06879687]],\n", + " \n", + " [[-0.03673976, -0.2677548 ],\n", + " [ 0.18980365, -0.07240329]],\n", + " \n", + " [[-0.03395357, -0.26853105],\n", + " [ 0.1919952 , -0.0760018 ]],\n", + " \n", + " [[-0.03117686, -0.26932204],\n", + " [ 0.19418277, -0.07959636]],\n", + " \n", + " [[-0.02840806, -0.27012935],\n", + " [ 0.19637021, -0.08319083]],\n", + " \n", + " [[-0.02564663, -0.27095383],\n", + " [ 0.19856249, -0.08679577]],\n", + " \n", + " [[-0.02288883, -0.27179843],\n", + " [ 0.20076111, -0.09040185]],\n", + " \n", + " [[-0.02013434, -0.27266398],\n", + " [ 0.20297062, -0.09401885]],\n", + " \n", + " [[-0.01738168, -0.27355188],\n", + " [ 0.20519458, -0.09765033]],\n", + " \n", + " [[-0.01462938, -0.27446368],\n", + " [ 0.20743647, -0.10129981]],\n", + " \n", + " [[-0.01187599, -0.2754008 ],\n", + " [ 0.20969984, -0.10497079]],\n", + " \n", + " [[-0.00912004, -0.2763647 ],\n", + " [ 0.21198815, -0.10866676]],\n", + " \n", + " [[-0.00636009, -0.27735686],\n", + " [ 0.2143049 , -0.11239123]],\n", + " \n", + " [[-0.00359466, -0.2783787 ],\n", + " [ 0.2166536 , -0.11614769]],\n", + " \n", + " [[-0.00081627, -0.27943394],\n", + " [ 0.21904366, -0.11994991]],\n", + " \n", + " [[ 0.00196514, -0.28051993],\n", + " [ 0.22146748, -0.1237817 ]],\n", + " \n", + " [[ 0.00475643, -0.28164005],\n", + " [ 0.22393401, -0.12765624]],\n", + " \n", + " [[ 0.00755911, -0.2827958 ],\n", + " [ 0.22644691, -0.1315772 ]],\n", + " \n", + " [[ 0.01037466, -0.28398862],\n", + " [ 0.22900993, -0.1355483 ]],\n", + " \n", + " [[ 0.01320458, -0.2852201 ],\n", + " [ 0.23162682, -0.13957332]],\n", + " \n", + " [[ 0.0160504 , -0.28649166],\n", + " [ 0.23430146, -0.14365615]],\n", + " \n", + " [[ 0.01892442, -0.28781033],\n", + " [ 0.23704535, -0.14780907]],\n", + " \n", + " [[ 0.02180741, -0.28916728],\n", + " [ 0.23984797, -0.15201986]],\n", + " \n", + " [[ 0.02471091, -0.29056898],\n", + " [ 0.24272047, -0.15630059]],\n", + " \n", + " [[ 0.02763646, -0.29201695],\n", + " [ 0.24566704, -0.16065541]],\n", + " \n", + " [[ 0.0305856 , -0.29351276],\n", + " [ 0.24869198, -0.16508865]],\n", + " \n", + " [[ 0.03355988, -0.29505795],\n", + " [ 0.2517997 , -0.1696047 ]],\n", + " \n", + " [[ 0.03656081, -0.29665402],\n", + " [ 0.25499472, -0.17420807]],\n", + " \n", + " [[ 0.03958993, -0.29830253],\n", + " [ 0.2582816 , -0.17890339]],\n", + " \n", + " [[ 0.04264874, -0.30000496],\n", + " [ 0.2616651 , -0.18369533]],\n", + " \n", + " [[ 0.04573872, -0.3017628 ],\n", + " [ 0.26515004, -0.18858875]],\n", + " \n", + " [[ 0.04887519, -0.30358654],\n", + " [ 0.26874843, -0.1935925 ]],\n", + " \n", + " [[ 0.05203265, -0.3054602 ],\n", + " [ 0.27245152, -0.19870397]],\n", + " \n", + " [[ 0.05522559, -0.30739358],\n", + " [ 0.2762712 , -0.20393205]],\n", + " \n", + " [[ 0.05845525, -0.30938795],\n", + " [ 0.28021255, -0.20928186]],\n", + " \n", + " [[ 0.06172285, -0.31144446],\n", + " [ 0.2842809 , -0.2147587 ]],\n", + " \n", + " [[ 0.06502949, -0.31356427],\n", + " [ 0.28848156, -0.2203679 ]],\n", + " \n", + " [[ 0.06837617, -0.3157484 ],\n", + " [ 0.29281992, -0.22611484]],\n", + " \n", + " [[ 0.07176375, -0.31799763],\n", + " [ 0.2973014 , -0.23200493]],\n", + " \n", + " [[ 0.07520118, -0.32031906],\n", + " [ 0.30193126, -0.23803806]],\n", + " \n", + " [[ 0.07867294, -0.32270098],\n", + " [ 0.3067152 , -0.24423054]],\n", + " \n", + " [[ 0.08218715, -0.3251496 ],\n", + " [ 0.31165832, -0.25058222]],\n", + " \n", + " [[ 0.08574389, -0.32766497],\n", + " [ 0.31676593, -0.25709844]],\n", + " \n", + " [[ 0.08934291, -0.3302469 ],\n", + " [ 0.32204315, -0.2637843 ]],\n", + " \n", + " [[ 0.09298369, -0.3328948 ],\n", + " [ 0.32749486, -0.27064472]],\n", + " \n", + " [[ 0.0966653 , -0.33560783],\n", + " [ 0.33312577, -0.27768436]],\n", + " \n", + " [[ 0.10038642, -0.3383846 ],\n", + " [ 0.33894017, -0.28490758]],\n", + " \n", + " [[ 0.10414527, -0.34122336],\n", + " [ 0.3449421 , -0.2923183 ]],\n", + " \n", + " [[ 0.10793954, -0.34412178],\n", + " [ 0.35113496, -0.29992008]],\n", + " \n", + " [[ 0.1117615 , -0.34707326],\n", + " [ 0.35750654, -0.30769488]],\n", + " \n", + " [[ 0.11561722, -0.3500816 ],\n", + " [ 0.36408862, -0.31568575]],\n", + " \n", + " [[ 0.11949767, -0.35313895],\n", + " [ 0.37086815, -0.32387418]],\n", + " \n", + " [[ 0.12339796, -0.35624036],\n", + " [ 0.37784576, -0.33226073]],\n", + " \n", + " [[ 0.12731226, -0.35938004],\n", + " [ 0.3850209 , -0.34084487]],\n", + " \n", + " [[ 0.1312338 , -0.36255118],\n", + " [ 0.3923919 , -0.34962487]],\n", + " \n", + " [[ 0.13515484, -0.36574608],\n", + " [ 0.39995554, -0.3585976 ]],\n", + " \n", + " [[ 0.1390666 , -0.3689559 ],\n", + " [ 0.40770724, -0.36775842]],\n", + " \n", + " [[ 0.14295912, -0.37217072],\n", + " [ 0.41564056, -0.37710088]],\n", + " \n", + " [[ 0.14682125, -0.37537935],\n", + " [ 0.42374718, -0.38661674]],\n", + " \n", + " [[ 0.15064059, -0.37856945],\n", + " [ 0.43201673, -0.39629546]],\n", + " \n", + " [[ 0.15440346, -0.38172728],\n", + " [ 0.44043642, -0.4061244 ]],\n", + " \n", + " [[ 0.1580948 , -0.3848378 ],\n", + " [ 0.4489911 , -0.4160883 ]],\n", + " \n", + " [[ 0.16169822, -0.3878846 ],\n", + " [ 0.45766282, -0.4261693 ]],\n", + " \n", + " [[ 0.16519596, -0.39084992],\n", + " [ 0.46643096, -0.4363467 ]],\n", + " \n", + " [[ 0.16856895, -0.39371467],\n", + " [ 0.4752718 , -0.44659677]],\n", + " \n", + " [[ 0.17179683, -0.3964585 ],\n", + " [ 0.4841586 , -0.4568928 ]],\n", + " \n", + " [[ 0.17485808, -0.3990599 ],\n", + " [ 0.49306148, -0.46720484]],\n", + " \n", + " [[ 0.17773007, -0.4014962 ],\n", + " [ 0.5019474 , -0.47749984]],\n", + " \n", + " [[ 0.18038934, -0.40374395],\n", + " [ 0.5107801 , -0.4877416 ]],\n", + " \n", + " [[ 0.18281172, -0.40577894],\n", + " [ 0.51952046, -0.49789086]],\n", + " \n", + " [[ 0.18497258, -0.4075766 ],\n", + " [ 0.52812636, -0.5079056 ]],\n", + " \n", + " [[ 0.18684718, -0.4091121 ],\n", + " [ 0.5365532 , -0.5177411 ]],\n", + " \n", + " [[ 0.18841094, -0.41036087],\n", + " [ 0.5447541 , -0.5273505 ]],\n", + " \n", + " [[ 0.18963987, -0.41129896],\n", + " [ 0.55268043, -0.53668517]],\n", + " \n", + " [[ 0.19051093, -0.4119033 ],\n", + " [ 0.5602823 , -0.5456951 ]],\n", + " \n", + " [[ 0.19100246, -0.4121522 ],\n", + " [ 0.5675091 , -0.5543299 ]],\n", + " \n", + " [[ 0.1910947 , -0.4120259 ],\n", + " [ 0.5743105 , -0.56253886]],\n", + " \n", + " [[ 0.19075242, -0.41149062],\n", + " [ 0.58063465, -0.5702777 ]],\n", + " \n", + " [[ 0.18999185, -0.41055933],\n", + " [ 0.5864265 , -0.57747495]],\n", + " \n", + " [[ 0.18872151, -0.40914646],\n", + " [ 0.5915684 , -0.58402556]],\n", + " \n", + " [[ 0.1870712 , -0.4073744 ],\n", + " [ 0.5961929 , -0.59005713]],\n", + " \n", + " [[ 0.18496372, -0.40516958],\n", + " [ 0.6001655 , -0.59543747]],\n", + " \n", + " [[ 0.1823977 , -0.4025294 ],\n", + " [ 0.60344887, -0.6001254 ]],\n", + " \n", + " [[ 0.179381 , -0.39946294],\n", + " [ 0.60602945, -0.6041112 ]],\n", + " \n", + " [[ 0.1759199 , -0.39597675],\n", + " [ 0.60788125, -0.6073697 ]],\n", + " \n", + " [[ 0.17202382, -0.39207911],\n", + " [ 0.60898054, -0.6098738 ]],\n", + " \n", + " [[ 0.16771083, -0.38778865],\n", + " [ 0.6093272 , -0.6116246 ]],\n", + " \n", + " [[ 0.16300085, -0.38312578],\n", + " [ 0.6089215 , -0.61262447]],\n", + " \n", + " [[ 0.15791474, -0.37811074],\n", + " [ 0.6077616 , -0.6128692 ]],\n", + " \n", + " [[ 0.15247914, -0.37277013],\n", + " [ 0.6058623 , -0.61237353]],\n", + " \n", + " [[ 0.14672337, -0.3671338 ],\n", + " [ 0.6032459 , -0.61116153]],\n", + " \n", + " [[ 0.14067678, -0.3612308 ],\n", + " [ 0.59993243, -0.60925233]],\n", + " \n", + " [[ 0.13437125, -0.35509288],\n", + " [ 0.59595114, -0.6066745 ]],\n", + " \n", + " [[ 0.12779374, -0.34871256],\n", + " [ 0.59123987, -0.60336715]],\n", + " \n", + " [[ 0.12107497, -0.3422093 ],\n", + " [ 0.5860387 , -0.59956807]],\n", + " \n", + " [[ 0.11419824, -0.33557287],\n", + " [ 0.5802905 , -0.5952243 ]],\n", + " \n", + " [[ 0.10719405, -0.32883286],\n", + " [ 0.5740275 , -0.59036416]],\n", + " \n", + " [[ 0.10009596, -0.32202333],\n", + " [ 0.5673032 , -0.5850432 ]],\n", + " \n", + " [[ 0.09292313, -0.3151666 ],\n", + " [ 0.5601073 , -0.57924664]],\n", + " \n", + " [[ 0.08572948, -0.3083096 ],\n", + " [ 0.55259943, -0.5731418 ]],\n", + " \n", + " [[ 0.07852776, -0.3014689 ],\n", + " [ 0.54476196, -0.56670785]],\n", + " \n", + " [[ 0.07134356, -0.29467 ],\n", + " [ 0.5366436 , -0.5599929 ]],\n", + " \n", + " [[ 0.06419948, -0.28793547],\n", + " [ 0.5282834 , -0.5530361 ]],\n", + " \n", + " [[ 0.05711687, -0.28128675],\n", + " [ 0.51972574, -0.545882 ]],\n", + " \n", + " [[ 0.0501142 , -0.27474225],\n", + " [ 0.51100755, -0.53856725]],\n", + " \n", + " [[ 0.04320818, -0.2683187 ],\n", + " [ 0.502167 , -0.5311304 ]],\n", + " \n", + " [[ 0.03643662, -0.26205236],\n", + " [ 0.49326503, -0.5236268 ]],\n", + " \n", + " [[ 0.02976399, -0.25591075],\n", + " [ 0.4842809 , -0.51604754]],\n", + " \n", + " [[ 0.02322475, -0.24992679],\n", + " [ 0.47526515, -0.50843537]],\n", + " \n", + " [[ 0.01682776, -0.24410947],\n", + " [ 0.4662481 , -0.5008227 ]],\n", + " \n", + " [[ 0.01057983, -0.23846553],\n", + " [ 0.45725235, -0.4932313 ]],\n", + " \n", + " [[ 0.00448625, -0.2330003 ],\n", + " [ 0.44829866, -0.48568195]],\n", + " \n", + " [[-0.00144908, -0.22771764],\n", + " [ 0.43940616, -0.47819394]],\n", + " \n", + " [[-0.00722358, -0.22262014],\n", + " [ 0.43059093, -0.47078326]],\n", + " \n", + " [[-0.01283579, -0.21770929],\n", + " [ 0.4218672 , -0.46346417]],\n", + " \n", + " [[-0.01828528, -0.21298549],\n", + " [ 0.41324708, -0.4562488 ]],\n", + " \n", + " [[-0.02355651, -0.20845951],\n", + " [ 0.40477955, -0.44918403]],\n", + " \n", + " [[-0.02868462, -0.20410587],\n", + " [ 0.39639267, -0.4422028 ]],\n", + " \n", + " [[-0.03365345, -0.1999359 ],\n", + " [ 0.38813478, -0.4353502 ]],\n", + " \n", + " [[-0.03846531, -0.19594723],\n", + " [ 0.38001156, -0.4286322 ]],\n", + " \n", + " [[-0.04311629, -0.1921381 ],\n", + " [ 0.3720596 , -0.42208683]],\n", + " \n", + " [[-0.047625 , -0.18850163],\n", + " [ 0.36421317, -0.41564593]],\n", + " \n", + " [[-0.05198632, -0.18503684],\n", + " [ 0.35651195, -0.40935045]],\n", + " \n", + " [[-0.05620408, -0.1817399 ],\n", + " [ 0.34895653, -0.40320072]],\n", + " \n", + " [[-0.0602823 , -0.1786068 ],\n", + " [ 0.34154713, -0.39719698]],\n", + " \n", + " [[-0.06422514, -0.17563336],\n", + " [ 0.33428332, -0.39133886]],\n", + " \n", + " [[-0.06803681, -0.17281537],\n", + " [ 0.32716408, -0.3856254 ]],\n", + " \n", + " [[-0.07172159, -0.17014854],\n", + " [ 0.32018784, -0.38005492]],\n", + " \n", + " [[-0.07528377, -0.16762857],\n", + " [ 0.31335258, -0.37462547]],\n", + " \n", + " [[-0.0787276 , -0.16525123],\n", + " [ 0.30665588, -0.36933464]],\n", + " \n", + " [[-0.08205729, -0.16301228],\n", + " [ 0.30009502, -0.3641796 ]],\n", + " \n", + " [[-0.08527701, -0.16090757],\n", + " [ 0.29366693, -0.35915744]],\n", + " \n", + " [[-0.08839081, -0.158933 ],\n", + " [ 0.28736845, -0.3542649 ]],\n", + " \n", + " [[-0.09141024, -0.15707713],\n", + " [ 0.28118852, -0.3494959 ]],\n", + " \n", + " [[-0.09432378, -0.15535168],\n", + " [ 0.27513808, -0.3448511 ]],\n", + " \n", + " [[-0.09714301, -0.1537447 ],\n", + " [ 0.2692069 , -0.34032577]],\n", + " \n", + " [[-0.09987159, -0.15225257],\n", + " [ 0.26339108, -0.33591577]],\n", + " \n", + " [[-0.10251303, -0.1508718 ],\n", + " [ 0.25768673, -0.33161727]],\n", + " \n", + " [[-0.10507074, -0.14959897],\n", + " [ 0.25209 , -0.32742643]],\n", + " \n", + " [[-0.10754798, -0.14843082],\n", + " [ 0.24659707, -0.3233393 ]],\n", + " \n", + " [[-0.10994789, -0.14736421],\n", + " [ 0.24120396, -0.31935212]],\n", + " \n", + " [[-0.11227348, -0.14639615],\n", + " [ 0.23590687, -0.3154609 ]],\n", + " \n", + " [[-0.11452762, -0.14552371],\n", + " [ 0.23070191, -0.3116618 ]],\n", + " \n", + " [[-0.11671307, -0.1447442 ],\n", + " [ 0.22558524, -0.30795106]],\n", + " \n", + " [[-0.11883245, -0.14405495],\n", + " [ 0.22055309, -0.30432484]],\n", + " \n", + " [[-0.12088824, -0.14345348],\n", + " [ 0.21560168, -0.30077934]],\n", + " \n", + " [[-0.12288284, -0.14293742],\n", + " [ 0.2107273 , -0.29731092]],\n", + " \n", + " [[-0.12481849, -0.14250451],\n", + " [ 0.20592628, -0.29391584]],\n", + " \n", + " [[-0.12669732, -0.14215262],\n", + " [ 0.20119499, -0.2905905 ]],\n", + " \n", + " [[-0.12852478, -0.1418814 ],\n", + " [ 0.19651791, -0.28732115]],\n", + " \n", + " [[-0.13029547, -0.14168593],\n", + " [ 0.19191626, -0.28412518]],\n", + " \n", + " [[-0.13201511, -0.14156574],\n", + " [ 0.18737361, -0.2809882 ]],\n", + " \n", + " [[-0.13368537, -0.14151913],\n", + " [ 0.18288659, -0.27790686]],\n", + " \n", + " [[-0.13530782, -0.14154449],\n", + " [ 0.17845176, -0.27487776]],\n", + " \n", + " [[-0.13688393, -0.14164037],\n", + " [ 0.17406574, -0.2718975 ]],\n", + " \n", + " [[-0.1384151 , -0.14180538],\n", + " [ 0.16972516, -0.2689627 ]],\n", + " \n", + " [[-0.13990256, -0.14203827],\n", + " [ 0.16542672, -0.26607007]],\n", + " \n", + " [[-0.14134751, -0.14233786],\n", + " [ 0.16116707, -0.2632163 ]],\n", + " \n", + " [[-0.14275102, -0.14270309],\n", + " [ 0.15694292, -0.260398 ]],\n", + " \n", + " [[-0.14411403, -0.14313297],\n", + " [ 0.15275098, -0.25761196]],\n", + " \n", + " [[-0.14543745, -0.14362666],\n", + " [ 0.14858794, -0.25485486]],\n", + " \n", + " [[-0.14672202, -0.14418335],\n", + " [ 0.1444505 , -0.2521234 ]],\n", + " \n", + " [[-0.14796843, -0.14480239],\n", + " [ 0.14033532, -0.24941419]],\n", + " \n", + " [[-0.14917722, -0.14548323],\n", + " [ 0.13623904, -0.24672395]],\n", + " \n", + " [[-0.1503489 , -0.14622536],\n", + " [ 0.13215826, -0.24404924]],\n", + " \n", + " [[-0.15148377, -0.14702846],\n", + " [ 0.12808952, -0.24138659]],\n", + " \n", + " [[-0.15258211, -0.14789228],\n", + " [ 0.12402929, -0.23873249]],\n", + " \n", + " [[-0.15364198, -0.1488216 ],\n", + " [ 0.1199758 , -0.23607959]],\n", + " \n", + " [[-0.15466745, -0.14980625],\n", + " [ 0.11592226, -0.23343217]],\n", + " \n", + " [[-0.15565637, -0.15085156],\n", + " [ 0.11186607, -0.23078214]],\n", + " \n", + " [[-0.15660845, -0.15195788],\n", + " [ 0.10780318, -0.22812544]],\n", + " \n", + " [[-0.15752536, -0.15312241],\n", + " [ 0.10372506, -0.22545935]],\n", + " \n", + " [[-0.15840228, -0.15435265],\n", + " [ 0.09963549, -0.22277609]],\n", + " \n", + " [[-0.15924051, -0.15564573],\n", + " [ 0.09552602, -0.22007297]],\n", + " \n", + " [[-0.16003905, -0.15700267],\n", + " [ 0.09139176, -0.21734507]],\n", + " \n", + " [[-0.16079661, -0.15842472],\n", + " [ 0.08722744, -0.21458714]],\n", + " \n", + " [[-0.16151169, -0.15991339],\n", + " [ 0.08302736, -0.21179347]],\n", + " \n", + " [[-0.16218239, -0.16147056],\n", + " [ 0.07878538, -0.20895791]],\n", + " \n", + " [[-0.1628065 , -0.16309845],\n", + " [ 0.07449473, -0.2060737 ]],\n", + " \n", + " [[-0.1633813 , -0.16479975],\n", + " [ 0.07014801, -0.20313342]],\n", + " \n", + " [[-0.16390355, -0.16657767],\n", + " [ 0.06573692, -0.2001288 ]],\n", + " \n", + " [[-0.1643683 , -0.16843408],\n", + " [ 0.06126084, -0.19705474]],\n", + " \n", + " [[-0.16477308, -0.1703772 ],\n", + " [ 0.05669226, -0.1938929 ]],\n", + " \n", + " [[-0.16511087, -0.17241132],\n", + " [ 0.0520274 , -0.19063479]],\n", + " \n", + " [[-0.16537452, -0.17454357],\n", + " [ 0.04725227, -0.18726642]]], dtype=float32)},\n", + " {'MASS': 2.9059258604837055, 'POS_ERR': 8.373839578372988e-06},\n", + " {'J_closed': array([[[-8.42163642e-02, -2.55730301e-01],\n", + " [-9.06038768e-18, 2.92095826e-17],\n", + " [ 1.50064492e-01, -1.01523498e-02],\n", + " [ 1.51358217e-16, -4.20705520e-17],\n", + " [ 1.38370375e+00, -3.84605353e-01],\n", + " [ 1.68485768e-16, -4.68312154e-17]],\n", + " \n", + " [[-8.09708935e-02, -2.56568111e-01],\n", + " [-9.78599783e-18, 2.98441611e-17],\n", + " [ 1.53108077e-01, -1.46112382e-02],\n", + " [ 1.52343105e-16, -4.30534735e-17],\n", + " [ 1.39270751e+00, -3.93591136e-01],\n", + " [ 1.69582105e-16, -4.79253633e-17]],\n", + " \n", + " [[-7.77916339e-02, -2.57374475e-01],\n", + " [-1.04877323e-17, 3.04574758e-17],\n", + " [ 1.56015062e-01, -1.89237455e-02],\n", + " [ 1.53339952e-16, -4.40485305e-17],\n", + " [ 1.40182060e+00, -4.02687861e-01],\n", + " [ 1.70691754e-16, -4.90330200e-17]],\n", + " \n", + " ...,\n", + " \n", + " [[-1.64773071e-01, -1.70377200e-01],\n", + " [ 1.11208190e-17, 4.22461691e-17],\n", + " [ 5.66922628e-02, -1.93892895e-01],\n", + " [ 1.53269149e-16, -4.39456475e-17],\n", + " [ 1.40117332e+00, -4.01747314e-01],\n", + " [ 1.70612939e-16, -4.89184949e-17]],\n", + " \n", + " [[-1.65110866e-01, -1.72411326e-01],\n", + " [ 1.17257830e-17, 4.20719538e-17],\n", + " [ 5.20273997e-02, -1.90634791e-01],\n", + " [ 1.52267113e-16, -4.29457360e-17],\n", + " [ 1.39201279e+00, -3.92606209e-01],\n", + " [ 1.69497513e-16, -4.78054343e-17]],\n", + " \n", + " [[-1.65374514e-01, -1.74543581e-01],\n", + " [ 1.23360630e-17, 4.18950456e-17],\n", + " [ 4.72522698e-02, -1.87266419e-01],\n", + " [ 1.51280911e-16, -4.19619334e-17],\n", + " [ 1.38299702e+00, -3.83612371e-01],\n", + " [ 1.68399714e-16, -4.67103056e-17]]]), 'M': array([[[1.07197441e-01, 6.95759728e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [6.95759728e-03, 3.79542356e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [1.14515306e-05, 1.14515306e-05, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.47197047e-01,\n", + " 2.64541739e-02],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 2.64541739e-02,\n", + " 2.20179354e-02]],\n", + " \n", + " [[1.06957138e-01, 6.83744549e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [6.83744549e-03, 3.79542356e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [1.14515306e-05, 1.14515306e-05, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.46756228e-01,\n", + " 2.62337646e-02],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 2.62337646e-02,\n", + " 2.20179354e-02]],\n", + " \n", + " [[1.06721787e-01, 6.71977020e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [6.71977020e-03, 3.79542356e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [1.14515306e-05, 1.14515306e-05, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.46324495e-01,\n", + " 2.60178980e-02],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 2.60178980e-02,\n", + " 2.20179354e-02]],\n", + " \n", + " ...,\n", + " \n", + " [[1.06728219e-01, 6.72298639e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [6.72298639e-03, 3.79542356e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [1.14515306e-05, 1.14515306e-05, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.46324388e-01,\n", + " 2.60178445e-02],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 2.60178445e-02,\n", + " 2.20179354e-02]],\n", + " \n", + " [[1.06963584e-01, 6.84066891e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [6.84066891e-03, 3.79542356e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [1.14515306e-05, 1.14515306e-05, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.46756023e-01,\n", + " 2.62336620e-02],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 2.62336620e-02,\n", + " 2.20179354e-02]],\n", + " \n", + " [[1.07202716e-01, 6.96023498e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [6.96023498e-03, 3.79542356e-03, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [1.14515306e-05, 1.14515306e-05, 1.14515306e-05, 0.00000000e+00,\n", + " 0.00000000e+00],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 1.47194567e-01,\n", + " 2.64529340e-02],\n", + " [0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 2.64529340e-02,\n", + " 2.20179354e-02]]]), 'dq': array([[[ 1. , 0. ],\n", + " [-1.26576227, 1.26549068],\n", + " [ 0. , 0. ],\n", + " [ 0. , 1. ],\n", + " [ 1.38370375, -1.38460535]],\n", + " \n", + " [[ 1. , 0. ],\n", + " [-1.27094689, 1.27069211],\n", + " [ 0. , 0. ],\n", + " [ 0. , 1. ],\n", + " [ 1.39270751, -1.39359114]],\n", + " \n", + " [[ 1. , 0. ],\n", + " [-1.27629736, 1.27605836],\n", + " [ 0. , 0. ],\n", + " [ 0. , 1. ],\n", + " [ 1.4018206 , -1.40268786]],\n", + " \n", + " ...,\n", + " \n", + " [[ 1. , 0. ],\n", + " [-1.27678483, 1.27627978],\n", + " [ 0. , 0. ],\n", + " [ 0. , 1. ],\n", + " [ 1.40117332, -1.40174731]],\n", + " \n", + " [[ 1. , 0. ],\n", + " [-1.27146642, 1.27094803],\n", + " [ 0. , 0. ],\n", + " [ 0. , 1. ],\n", + " [ 1.39201279, -1.39260621]],\n", + " \n", + " [[ 1. , 0. ],\n", + " [-1.2663438 , 1.26581052],\n", + " [ 0. , 0. ],\n", + " [ 0. , 1. ],\n", + " [ 1.38299702, -1.38361237]]]), 'traj_6d_ee': array([[-1.40009922e-01, 5.67152274e-17, -3.40001540e-01],\n", + " [-1.38593981e-01, 5.62667493e-17, -3.37590378e-01],\n", + " [-1.37187838e-01, 5.58236073e-17, -3.35214236e-01],\n", + " [-1.35781735e-01, 5.53834214e-17, -3.32862337e-01],\n", + " [-1.34375673e-01, 5.49461979e-17, -3.30534729e-01],\n", + " [-1.32969649e-01, 5.45119363e-17, -3.28231412e-01],\n", + " [-1.31563720e-01, 5.40814672e-17, -3.25959156e-01],\n", + " [-1.30157419e-01, 5.36531375e-17, -3.23704805e-01],\n", + " [-1.28751109e-01, 5.32277644e-17, -3.21474742e-01],\n", + " [-1.27344807e-01, 5.28053491e-17, -3.19268964e-01],\n", + " [-1.25935517e-01, 5.23860655e-17, -3.17091588e-01],\n", + " [-1.24528845e-01, 5.19695356e-17, -3.14934477e-01],\n", + " [-1.23122158e-01, 5.15559585e-17, -3.12801629e-01],\n", + " [-1.21715461e-01, 5.11453356e-17, -3.10693052e-01],\n", + " [-1.20308752e-01, 5.07376668e-17, -3.08608746e-01],\n", + " [-1.18902031e-01, 5.03329519e-17, -3.06548710e-01],\n", + " [-1.17495296e-01, 4.99311908e-17, -3.04512944e-01],\n", + " [-1.16088549e-01, 4.95323833e-17, -3.02501447e-01],\n", + " [-1.14681787e-01, 4.91365293e-17, -3.00514219e-01],\n", + " [-1.13275011e-01, 4.87436287e-17, -2.98551258e-01],\n", + " [-1.11862683e-01, 4.83531121e-17, -2.96612864e-01],\n", + " [-1.10455549e-01, 4.79660593e-17, -2.94698251e-01],\n", + " [-1.09048409e-01, 4.75819591e-17, -2.92807891e-01],\n", + " [-1.07641249e-01, 4.72008098e-17, -2.90941784e-01],\n", + " [-1.06234070e-01, 4.68226114e-17, -2.89099928e-01],\n", + " [-1.04826870e-01, 4.64473637e-17, -2.87282325e-01],\n", + " [-1.03419650e-01, 4.60750667e-17, -2.85488972e-01],\n", + " [-1.02012411e-01, 4.57057204e-17, -2.83719869e-01],\n", + " [-1.00605152e-01, 4.53393247e-17, -2.81975016e-01],\n", + " [-9.91936000e-02, 4.49749456e-17, -2.80250581e-01],\n", + " [-9.77861972e-02, 4.46143996e-17, -2.78553899e-01],\n", + " [-9.63787759e-02, 4.42568052e-17, -2.76881473e-01],\n", + " [-9.49713391e-02, 4.39021605e-17, -2.75233285e-01],\n", + " [-9.35638874e-02, 4.35504655e-17, -2.73609337e-01],\n", + " [-9.21564214e-02, 4.32017204e-17, -2.72009626e-01],\n", + " [-9.07489419e-02, 4.28559252e-17, -2.70434155e-01],\n", + " [-8.93406856e-02, 4.25123452e-17, -2.68877574e-01],\n", + " [-8.79332781e-02, 4.21724282e-17, -2.67350313e-01],\n", + " [-8.65258469e-02, 4.18354594e-17, -2.65847285e-01],\n", + " [-8.51184090e-02, 4.15014407e-17, -2.64368492e-01],\n", + " [-8.37109650e-02, 4.11703723e-17, -2.62913933e-01],\n", + " [-8.23035156e-02, 4.08422543e-17, -2.61483610e-01],\n", + " [-8.08960613e-02, 4.05170868e-17, -2.60077523e-01],\n", + " [-7.94886029e-02, 4.01948700e-17, -2.58695673e-01],\n", + " [-7.80811410e-02, 3.98756041e-17, -2.57338060e-01],\n", + " [-7.66736765e-02, 3.95592892e-17, -2.56004684e-01],\n", + " [-7.52693591e-02, 3.92456813e-17, -2.54690712e-01],\n", + " [-7.38620738e-02, 3.89352733e-17, -2.53405687e-01],\n", + " [-7.24547914e-02, 3.86278146e-17, -2.52144880e-01],\n", + " [-7.10475092e-02, 3.83233075e-17, -2.50908313e-01],\n", + " [-6.96402274e-02, 3.80217521e-17, -2.49695988e-01],\n", + " [-6.82329462e-02, 3.77231487e-17, -2.48507904e-01],\n", + " [-6.68256660e-02, 3.74274973e-17, -2.47344064e-01],\n", + " [-6.54183868e-02, 3.71347982e-17, -2.46204469e-01],\n", + " [-6.40162853e-02, 3.68453876e-17, -2.45087229e-01],\n", + " [-6.26091662e-02, 3.65586072e-17, -2.43996098e-01],\n", + " [-6.12020676e-02, 3.62747812e-17, -2.42929212e-01],\n", + " [-5.97949675e-02, 3.59939074e-17, -2.41886573e-01],\n", + " [-5.83878657e-02, 3.57159860e-17, -2.40868181e-01],\n", + " [-5.69807618e-02, 3.54410170e-17, -2.39874038e-01],\n", + " [-5.55736557e-02, 3.51690005e-17, -2.38904145e-01],\n", + " [-5.41665470e-02, 3.48999366e-17, -2.37958503e-01],\n", + " [-5.27594355e-02, 3.46338255e-17, -2.37037113e-01],\n", + " [-5.13523209e-02, 3.43706672e-17, -2.36139976e-01],\n", + " [-4.99503244e-02, 3.41111837e-17, -2.35268422e-01],\n", + " [-4.85433050e-02, 3.38539419e-17, -2.34419789e-01],\n", + " [-4.71362822e-02, 3.35996550e-17, -2.33595427e-01],\n", + " [-4.57292508e-02, 3.33483200e-17, -2.32795315e-01],\n", + " [-4.43222104e-02, 3.30999369e-17, -2.32019455e-01],\n", + " [-4.29151606e-02, 3.28545058e-17, -2.31267846e-01],\n", + " [-4.15081011e-02, 3.26120267e-17, -2.30540489e-01],\n", + " [-4.01010316e-02, 3.23724996e-17, -2.29837386e-01],\n", + " [-3.86939521e-02, 3.21359247e-17, -2.29158536e-01],\n", + " [-3.72868624e-02, 3.19023021e-17, -2.28503941e-01],\n", + " [-3.58797627e-02, 3.16716317e-17, -2.27873601e-01],\n", + " [-3.44726531e-02, 3.14439138e-17, -2.27267517e-01],\n", + " [-3.30655338e-02, 3.12191483e-17, -2.26685689e-01],\n", + " [-3.16584052e-02, 3.09973355e-17, -2.26128117e-01],\n", + " [-3.02512677e-02, 3.07784753e-17, -2.25594804e-01],\n", + " [-2.88441220e-02, 3.05625680e-17, -2.25085747e-01],\n", + " [-2.74369686e-02, 3.03496136e-17, -2.24600949e-01],\n", + " [-2.60298084e-02, 3.01396122e-17, -2.24140409e-01],\n", + " [-2.46226422e-02, 2.99325639e-17, -2.23704127e-01],\n", + " [-2.32154709e-02, 2.97284690e-17, -2.23292104e-01],\n", + " [-2.18082955e-02, 2.95273273e-17, -2.22904339e-01],\n", + " [-2.04011171e-02, 2.93291392e-17, -2.22540832e-01],\n", + " [-1.89939369e-02, 2.91339045e-17, -2.22201584e-01],\n", + " [-1.75867559e-02, 2.89416235e-17, -2.21886592e-01],\n", + " [-1.61795754e-02, 2.87522962e-17, -2.21595858e-01],\n", + " [-1.47723966e-02, 2.85659227e-17, -2.21329381e-01],\n", + " [-1.33652206e-02, 2.83825029e-17, -2.21087159e-01],\n", + " [-1.19580487e-02, 2.82020370e-17, -2.20869192e-01],\n", + " [-1.05459353e-02, 2.80240615e-17, -2.20676116e-01],\n", + " [-9.13895511e-03, 2.78495377e-17, -2.20506777e-01],\n", + " [-7.72739114e-03, 2.76779999e-17, -2.20366079e-01],\n", + " [-6.32069532e-03, 2.75094052e-17, -2.20245177e-01],\n", + " [-4.91398094e-03, 2.73437637e-17, -2.20148547e-01],\n", + " [-3.50728354e-03, 2.71810747e-17, -2.20076147e-01],\n", + " [-2.10060131e-03, 2.70213377e-17, -2.20027979e-01],\n", + " [-6.93933341e-04, 2.68645525e-17, -2.20004039e-01],\n", + " [ 7.12722111e-04, 2.67107186e-17, -2.20004326e-01],\n", + " [ 2.11936702e-03, 2.65598357e-17, -2.20028839e-01],\n", + " [ 3.52600283e-03, 2.64119035e-17, -2.20077576e-01],\n", + " [ 4.93263124e-03, 2.62669215e-17, -2.20150536e-01],\n", + " [ 6.33925436e-03, 2.61248896e-17, -2.20247718e-01],\n", + " [ 7.74587395e-03, 2.59858074e-17, -2.20369122e-01],\n", + " [ 9.15249172e-03, 2.58496746e-17, -2.20514747e-01],\n", + " [ 1.05591097e-02, 2.57164910e-17, -2.20684592e-01],\n", + " [ 1.19645841e-02, 2.55869891e-17, -2.20883647e-01],\n", + " [ 1.33711078e-02, 2.54596793e-17, -2.21101647e-01],\n", + " [ 1.47776197e-02, 2.53353222e-17, -2.21343885e-01],\n", + " [ 1.61841524e-02, 2.52139123e-17, -2.21610346e-01],\n", + " [ 1.75907073e-02, 2.50954497e-17, -2.21901032e-01],\n", + " [ 1.89925485e-02, 2.49808377e-17, -2.22219108e-01],\n", + " [ 2.03992774e-02, 2.48682191e-17, -2.22557944e-01],\n", + " [ 2.18060174e-02, 2.47585469e-17, -2.22920989e-01],\n", + " [ 2.32127929e-02, 2.46518232e-17, -2.23308280e-01],\n", + " [ 2.46196031e-02, 2.45480483e-17, -2.23719820e-01],\n", + " [ 2.60264475e-02, 2.44472224e-17, -2.24155609e-01],\n", + " [ 2.74333251e-02, 2.43493460e-17, -2.24615651e-01],\n", + " [ 2.88402348e-02, 2.42544194e-17, -2.25099947e-01],\n", + " [ 3.02418863e-02, 2.41628227e-17, -2.25606867e-01],\n", + " [ 3.16491622e-02, 2.40737476e-17, -2.26139549e-01],\n", + " [ 3.30564939e-02, 2.39876205e-17, -2.26696491e-01],\n", + " [ 3.44638442e-02, 2.39044476e-17, -2.27277711e-01],\n", + " [ 3.58712108e-02, 2.38242293e-17, -2.27883211e-01],\n", + " [ 3.72785910e-02, 2.37469659e-17, -2.28512991e-01],\n", + " [ 3.86859825e-02, 2.36726576e-17, -2.29167050e-01],\n", + " [ 4.00933829e-02, 2.36013046e-17, -2.29845388e-01],\n", + " [ 4.15007900e-02, 2.35329072e-17, -2.30548004e-01],\n", + " [ 4.29082015e-02, 2.34674655e-17, -2.31274898e-01],\n", + " [ 4.43142476e-02, 2.34045452e-17, -2.32021274e-01],\n", + " [ 4.57219543e-02, 2.33450020e-17, -2.32796874e-01],\n", + " [ 4.71296439e-02, 2.32884206e-17, -2.33596785e-01],\n", + " [ 4.85373102e-02, 2.32347980e-17, -2.34420974e-01],\n", + " [ 4.99475443e-02, 2.31831433e-17, -2.35263631e-01],\n", + " [ 5.13553469e-02, 2.31354639e-17, -2.36136751e-01],\n", + " [ 5.27630567e-02, 2.30907508e-17, -2.37034149e-01],\n", + " [ 5.41707186e-02, 2.30489967e-17, -2.37955805e-01],\n", + " [ 5.55783333e-02, 2.30102011e-17, -2.38901715e-01],\n", + " [ 5.69859016e-02, 2.29743637e-17, -2.39871878e-01],\n", + " [ 5.83934246e-02, 2.29414840e-17, -2.40866291e-01],\n", + " [ 5.98009030e-02, 2.29115616e-17, -2.41884951e-01],\n", + " [ 6.12083381e-02, 2.28845961e-17, -2.42927856e-01],\n", + " [ 6.26157311e-02, 2.28605872e-17, -2.43995004e-01],\n", + " [ 6.40230831e-02, 2.28395344e-17, -2.45086392e-01],\n", + " [ 6.54303956e-02, 2.28214374e-17, -2.46202020e-01],\n", + " [ 6.68376700e-02, 2.28062957e-17, -2.47341885e-01],\n", + " [ 6.82506194e-02, 2.27934648e-17, -2.48505825e-01],\n", + " [ 6.96575756e-02, 2.27842995e-17, -2.49694485e-01],\n", + " [ 7.10645034e-02, 2.27780812e-17, -2.50907322e-01],\n", + " [ 7.24713962e-02, 2.27748147e-17, -2.52144370e-01],\n", + " [ 7.38782563e-02, 2.27744998e-17, -2.53405628e-01],\n", + " [ 7.52850859e-02, 2.27771361e-17, -2.54691097e-01],\n", + " [ 7.66918874e-02, 2.27827233e-17, -2.56000774e-01],\n", + " [ 7.80986629e-02, 2.27912610e-17, -2.57334659e-01],\n", + " [ 7.95054146e-02, 2.28027491e-17, -2.58692753e-01],\n", + " [ 8.09121448e-02, 2.28171872e-17, -2.60075055e-01],\n", + " [ 8.23188555e-02, 2.28345751e-17, -2.61481565e-01],\n", + " [ 8.37255489e-02, 2.28549125e-17, -2.62912283e-01],\n", + " [ 8.51322269e-02, 2.28781993e-17, -2.64367209e-01],\n", + " [ 8.65388916e-02, 2.29044351e-17, -2.65846342e-01],\n", + " [ 8.79455449e-02, 2.29336199e-17, -2.67349683e-01],\n", + " [ 8.93521887e-02, 2.29657535e-17, -2.68877233e-01],\n", + " [ 9.07605240e-02, 2.30012767e-17, -2.70434140e-01],\n", + " [ 9.21667986e-02, 2.30393338e-17, -2.72010007e-01],\n", + " [ 9.35730907e-02, 2.30803385e-17, -2.73610095e-01],\n", + " [ 9.49793927e-02, 2.31242882e-17, -2.75234380e-01],\n", + " [ 9.63857066e-02, 2.31711830e-17, -2.76882861e-01],\n", + " [ 9.77920341e-02, 2.32210229e-17, -2.78555541e-01],\n", + " [ 9.91983772e-02, 2.32738077e-17, -2.80252421e-01],\n", + " [ 1.00604738e-01, 2.33295374e-17, -2.81973502e-01],\n", + " [ 1.02011117e-01, 2.33882119e-17, -2.83718785e-01],\n", + " [ 1.03417517e-01, 2.34498313e-17, -2.85488271e-01],\n", + " [ 1.04823940e-01, 2.35143955e-17, -2.87281961e-01],\n", + " [ 1.06230387e-01, 2.35819045e-17, -2.89099858e-01],\n", + " [ 1.07636859e-01, 2.36523583e-17, -2.90941962e-01],\n", + " [ 1.09043359e-01, 2.37257569e-17, -2.92808275e-01],\n", + " [ 1.10449888e-01, 2.38021003e-17, -2.94698799e-01],\n", + " [ 1.11856447e-01, 2.38813885e-17, -2.96613534e-01],\n", + " [ 1.13263038e-01, 2.39636215e-17, -2.98552483e-01],\n", + " [ 1.14669663e-01, 2.40487994e-17, -3.00515647e-01],\n", + " [ 1.16070692e-01, 2.41378985e-17, -3.02505988e-01],\n", + " [ 1.17477319e-01, 2.42289241e-17, -3.04517178e-01],\n", + " [ 1.18883988e-01, 2.43228906e-17, -3.06552559e-01],\n", + " [ 1.20290721e-01, 2.44197992e-17, -3.08612159e-01],\n", + " [ 1.21703348e-01, 2.45188651e-17, -3.10694772e-01],\n", + " [ 1.23110204e-01, 2.46217120e-17, -3.12803252e-01],\n", + " [ 1.24517107e-01, 2.47275056e-17, -3.14935975e-01],\n", + " [ 1.25924057e-01, 2.48362447e-17, -3.17092929e-01],\n", + " [ 1.27331055e-01, 2.49479295e-17, -3.19274118e-01],\n", + " [ 1.28738103e-01, 2.50625599e-17, -3.21479544e-01],\n", + " [ 1.30145202e-01, 2.51801363e-17, -3.23709209e-01],\n", + " [ 1.31552354e-01, 2.53006589e-17, -3.25963118e-01],\n", + " [ 1.32959562e-01, 2.54241278e-17, -3.28241274e-01],\n", + " [ 1.34366827e-01, 2.55505434e-17, -3.30543681e-01],\n", + " [ 1.35769728e-01, 2.56800123e-17, -3.32867244e-01],\n", + " [ 1.37177408e-01, 2.58122418e-17, -3.35217771e-01],\n", + " [ 1.38585212e-01, 2.59474142e-17, -3.37592579e-01],\n", + " [ 1.39993125e-01, 2.60855324e-17, -3.39991677e-01]]), 'traj_6d': array([[-0.14 , 0. , -0.34 , 0. , 0. ,\n", + " 0. ],\n", + " [-0.13859296, 0. , -0.33760006, 0. , 0. ,\n", + " 0. ],\n", + " [-0.13718593, 0. , -0.33522436, 0. , 0. ,\n", + " 0. ],\n", + " ...,\n", + " [ 0.13718593, 0. , -0.33522436, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.13859296, 0. , -0.33760006, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.14 , 0. , -0.34 , 0. , 0. ,\n", + " 0. ]]), 'error': array([[8.73769021e-06],\n", + " [8.67875127e-06],\n", + " [8.66299406e-06],\n", + " [8.60622525e-06],\n", + " [8.53593143e-06],\n", + " [9.73968101e-06],\n", + " [7.77881352e-06],\n", + " [8.41605107e-06],\n", + " [9.01377313e-06],\n", + " [9.58770693e-06],\n", + " [5.28769091e-06],\n", + " [5.38038288e-06],\n", + " [5.43989049e-06],\n", + " [5.46391338e-06],\n", + " [5.69067596e-06],\n", + " [6.38437395e-06],\n", + " [7.09611856e-06],\n", + " [7.82432745e-06],\n", + " [8.56745314e-06],\n", + " [9.32398457e-06],\n", + " [7.03714890e-06],\n", + " [7.41269589e-06],\n", + " [7.78979749e-06],\n", + " [8.15889327e-06],\n", + " [8.51898979e-06],\n", + " [8.86919533e-06],\n", + " [9.20869313e-06],\n", + " [9.53674442e-06],\n", + " [9.85269156e-06],\n", + " [6.42070903e-06],\n", + " [6.93028657e-06],\n", + " [7.46513173e-06],\n", + " [8.01116114e-06],\n", + " [8.56747389e-06],\n", + " [9.13321533e-06],\n", + " [9.70752045e-06],\n", + " [7.16151067e-06],\n", + " [7.45060370e-06],\n", + " [7.75018331e-06],\n", + " [8.04734789e-06],\n", + " [8.34184860e-06],\n", + " [8.63342540e-06],\n", + " [8.92186248e-06],\n", + " [9.20698858e-06],\n", + " [9.48867679e-06],\n", + " [9.76684391e-06],\n", + " [7.18002527e-06],\n", + " [7.56232867e-06],\n", + " [7.96198569e-06],\n", + " [8.36293410e-06],\n", + " [8.76423938e-06],\n", + " [9.16484511e-06],\n", + " [9.56365984e-06],\n", + " [9.95955748e-06],\n", + " [7.76882399e-06],\n", + " [8.03185358e-06],\n", + " [8.27548301e-06],\n", + " [8.51585735e-06],\n", + " [8.75242614e-06],\n", + " [8.98471180e-06],\n", + " [9.21221530e-06],\n", + " [9.43441415e-06],\n", + " [9.65076001e-06],\n", + " [9.86067654e-06],\n", + " [6.10693041e-06],\n", + " [6.27232180e-06],\n", + " [6.41107881e-06],\n", + " [6.53601246e-06],\n", + " [6.64600816e-06],\n", + " [6.74010957e-06],\n", + " [6.81741743e-06],\n", + " [6.87709870e-06],\n", + " [6.91839680e-06],\n", + " [6.94064195e-06],\n", + " [6.94326142e-06],\n", + " [6.92578953e-06],\n", + " [6.88787718e-06],\n", + " [6.82930081e-06],\n", + " [6.74997054e-06],\n", + " [6.64993732e-06],\n", + " [6.52939888e-06],\n", + " [6.38870431e-06],\n", + " [6.37347579e-06],\n", + " [6.42242132e-06],\n", + " [6.46271412e-06],\n", + " [6.49346205e-06],\n", + " [6.51380108e-06],\n", + " [6.52291009e-06],\n", + " [6.52002564e-06],\n", + " [6.50445649e-06],\n", + " [6.47559756e-06],\n", + " [6.43294291e-06],\n", + " [9.95673567e-06],\n", + " [9.63396205e-06],\n", + " [9.68815722e-06],\n", + " [9.14944547e-06],\n", + " [8.60233251e-06],\n", + " [8.26097147e-06],\n", + " [8.25917680e-06],\n", + " [8.23332648e-06],\n", + " [8.18312947e-06],\n", + " [8.10918779e-06],\n", + " [8.01134833e-06],\n", + " [7.88974004e-06],\n", + " [7.74543387e-06],\n", + " [7.57926138e-06],\n", + " [7.39198218e-06],\n", + " [7.18502892e-06],\n", + " [9.89138668e-06],\n", + " [9.32498554e-06],\n", + " [8.74475797e-06],\n", + " [8.16498363e-06],\n", + " [7.58874767e-06],\n", + " [9.94149836e-06],\n", + " [9.73939096e-06],\n", + " [9.49543528e-06],\n", + " [9.22273452e-06],\n", + " [8.92364523e-06],\n", + " [8.60097527e-06],\n", + " [8.25755125e-06],\n", + " [7.89630358e-06],\n", + " [9.86871210e-06],\n", + " [9.12362942e-06],\n", + " [8.35369841e-06],\n", + " [7.60132852e-06],\n", + " [6.86940560e-06],\n", + " [6.16037585e-06],\n", + " [5.95161054e-06],\n", + " [5.95143545e-06],\n", + " [5.91367614e-06],\n", + " [5.84121440e-06],\n", + " [9.95891142e-06],\n", + " [9.44686733e-06],\n", + " [8.90070760e-06],\n", + " [8.34731197e-06],\n", + " [9.04145994e-06],\n", + " [9.07951628e-06],\n", + " [9.12663573e-06],\n", + " [9.11892190e-06],\n", + " [9.06001673e-06],\n", + " [8.95354894e-06],\n", + " [8.80315743e-06],\n", + " [8.61247034e-06],\n", + " [8.38508680e-06],\n", + " [8.12456106e-06],\n", + " [7.83438835e-06],\n", + " [7.51799238e-06],\n", + " [7.17871421e-06],\n", + " [9.85852505e-06],\n", + " [9.01669784e-06],\n", + " [8.21648302e-06],\n", + " [7.42489233e-06],\n", + " [6.98930730e-06],\n", + " [7.14751944e-06],\n", + " [7.25259418e-06],\n", + " [7.30695498e-06],\n", + " [7.31308683e-06],\n", + " [7.27352643e-06],\n", + " [7.19085311e-06],\n", + " [7.06768037e-06],\n", + " [6.90664809e-06],\n", + " [6.71041540e-06],\n", + " [6.48165410e-06],\n", + " [6.22304273e-06],\n", + " [9.48186617e-06],\n", + " [8.75412527e-06],\n", + " [8.02965290e-06],\n", + " [7.29276920e-06],\n", + " [6.92187055e-06],\n", + " [7.20155203e-06],\n", + " [7.42277358e-06],\n", + " [7.58620798e-06],\n", + " [7.69265825e-06],\n", + " [7.74305606e-06],\n", + " [7.73846072e-06],\n", + " [7.68005887e-06],\n", + " [7.56916489e-06],\n", + " [7.40722209e-06],\n", + " [7.19580483e-06],\n", + " [6.93662155e-06],\n", + " [6.63151895e-06],\n", + " [6.28248736e-06],\n", + " [9.98823289e-06],\n", + " [9.11627805e-06],\n", + " [9.17079341e-06],\n", + " [9.71716807e-06],\n", + " [4.61624638e-06],\n", + " [4.92118009e-06],\n", + " [5.16731219e-06],\n", + " [5.35727822e-06],\n", + " [5.48831455e-06],\n", + " [5.55763873e-06],\n", + " [5.56248348e-06],\n", + " [5.50009877e-06],\n", + " [5.36775584e-06],\n", + " [5.16275383e-06],\n", + " [9.47743145e-06],\n", + " [8.80568304e-06],\n", + " [7.98053087e-06],\n", + " [8.20342880e-06]]), 'is_reach': array([1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.,\n", + " 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]), 'q': array([[ 6.71495725e-01, -5.61755223e-01, 0.00000000e+00,\n", + " 2.19576325e-01, 5.96184084e-01],\n", + " [ 6.86553850e-01, -5.94021399e-01, 0.00000000e+00,\n", + " 2.09192469e-01, 6.31511436e-01],\n", + " [ 7.00854799e-01, -6.24828433e-01, 0.00000000e+00,\n", + " 1.99302270e-01, 6.65320444e-01],\n", + " [ 7.14527212e-01, -6.54462574e-01, 0.00000000e+00,\n", + " 1.89803722e-01, 6.97916713e-01],\n", + " [ 7.27622318e-01, -6.83027848e-01, 0.00000000e+00,\n", + " 1.80661614e-01, 7.29407978e-01],\n", + " [ 7.40183900e-01, -7.10613333e-01, 0.00000000e+00,\n", + " 1.71845594e-01, 7.59886727e-01],\n", + " [ 7.52211235e-01, -7.37232870e-01, 0.00000000e+00,\n", + " 1.63339250e-01, 7.89362870e-01],\n", + " [ 7.63811528e-01, -7.63077571e-01, 0.00000000e+00,\n", + " 1.55098344e-01, 8.18044040e-01],\n", + " [ 7.74976493e-01, -7.88143696e-01, 0.00000000e+00,\n", + " 1.47113672e-01, 8.45922291e-01],\n", + " [ 7.85730917e-01, -8.12482263e-01, 0.00000000e+00,\n", + " 1.39367245e-01, 8.73050914e-01],\n", + " [ 7.96071746e-01, -8.36113782e-01, 0.00000000e+00,\n", + " 1.31836687e-01, 8.99449131e-01],\n", + " [ 8.06067225e-01, -8.59128645e-01, 0.00000000e+00,\n", + " 1.24518414e-01, 9.25215904e-01],\n", + " [ 8.15710544e-01, -8.81537469e-01, 0.00000000e+00,\n", + " 1.17394520e-01, 9.50360214e-01],\n", + " [ 8.25017016e-01, -9.03372444e-01, 0.00000000e+00,\n", + " 1.10453094e-01, 9.74915776e-01],\n", + " [ 8.34000419e-01, -9.24662693e-01, 0.00000000e+00,\n", + " 1.03683233e-01, 9.98913109e-01],\n", + " [ 8.42673148e-01, -9.45434580e-01, 0.00000000e+00,\n", + " 9.70749317e-02, 1.02237984e+00],\n", + " [ 8.51046394e-01, -9.65712051e-01, 0.00000000e+00,\n", + " 9.06189674e-02, 1.04534108e+00],\n", + " [ 8.59130280e-01, -9.85516931e-01, 0.00000000e+00,\n", + " 8.43068080e-02, 1.06781969e+00],\n", + " [ 8.66933996e-01, -1.00486916e+00, 0.00000000e+00,\n", + " 7.81305283e-02, 1.08983655e+00],\n", + " [ 8.74465894e-01, -1.02378701e+00, 0.00000000e+00,\n", + " 7.20827408e-02, 1.11141080e+00],\n", + " [ 8.81723756e-01, -1.04230109e+00, 0.00000000e+00,\n", + " 6.61370512e-02, 1.13257522e+00],\n", + " [ 8.88734318e-01, -1.06040128e+00, 0.00000000e+00,\n", + " 6.03246858e-02, 1.15331787e+00],\n", + " [ 8.95494016e-01, -1.07811360e+00, 0.00000000e+00,\n", + " 5.46213571e-02, 1.17366649e+00],\n", + " [ 9.02008648e-01, -1.09545128e+00, 0.00000000e+00,\n", + " 4.90212497e-02, 1.19363487e+00],\n", + " [ 9.08283553e-01, -1.11242650e+00, 0.00000000e+00,\n", + " 4.35189044e-02, 1.21323569e+00],\n", + " [ 9.14323633e-01, -1.12905059e+00, 0.00000000e+00,\n", + " 3.81091364e-02, 1.23248067e+00],\n", + " [ 9.20133398e-01, -1.14533406e+00, 0.00000000e+00,\n", + " 3.27870084e-02, 1.25138068e+00],\n", + " [ 9.25716997e-01, -1.16128668e+00, 0.00000000e+00,\n", + " 2.75478064e-02, 1.26994581e+00],\n", + " [ 9.31078256e-01, -1.17691757e+00, 0.00000000e+00,\n", + " 2.23870184e-02, 1.28818540e+00],\n", + " [ 9.36229705e-01, -1.19227222e+00, 0.00000000e+00,\n", + " 1.72849931e-02, 1.30615116e+00],\n", + " [ 9.41157558e-01, -1.20728666e+00, 0.00000000e+00,\n", + " 1.22679886e-02, 1.32376771e+00],\n", + " [ 9.45872815e-01, -1.22200311e+00, 0.00000000e+00,\n", + " 7.31691373e-03, 1.34108287e+00],\n", + " [ 9.50378335e-01, -1.23642858e+00, 0.00000000e+00,\n", + " 2.42790111e-03, 1.35810372e+00],\n", + " [ 9.54676698e-01, -1.25056956e+00, 0.00000000e+00,\n", + " -2.40280073e-03, 1.37483672e+00],\n", + " [ 9.58770292e-01, -1.26443210e+00, 0.00000000e+00,\n", + " -7.17883056e-03, 1.39128786e+00],\n", + " [ 9.62661333e-01, -1.27802189e+00, 0.00000000e+00,\n", + " -1.19037244e-02, 1.40746271e+00],\n", + " [ 9.66373260e-01, -1.29138093e+00, 0.00000000e+00,\n", + " -1.65821455e-02, 1.42341044e+00],\n", + " [ 9.69866444e-01, -1.30444215e+00, 0.00000000e+00,\n", + " -2.12143570e-02, 1.43904951e+00],\n", + " [ 9.73162825e-01, -1.31724568e+00, 0.00000000e+00,\n", + " -2.58055342e-02, 1.45442672e+00],\n", + " [ 9.76264099e-01, -1.32979586e+00, 0.00000000e+00,\n", + " -3.03588271e-02, 1.46954610e+00],\n", + " [ 9.79171821e-01, -1.34209682e+00, 0.00000000e+00,\n", + " -3.48773803e-02, 1.48441141e+00],\n", + " [ 9.81887445e-01, -1.35415243e+00, 0.00000000e+00,\n", + " -3.93642792e-02, 1.49902611e+00],\n", + " [ 9.84412338e-01, -1.36596632e+00, 0.00000000e+00,\n", + " -4.38225554e-02, 1.51339337e+00],\n", + " [ 9.86747786e-01, -1.37754189e+00, 0.00000000e+00,\n", + " -4.82551908e-02, 1.52751606e+00],\n", + " [ 9.88895003e-01, -1.38888234e+00, 0.00000000e+00,\n", + " -5.26651218e-02, 1.54139684e+00],\n", + " [ 9.90855139e-01, -1.39999068e+00, 0.00000000e+00,\n", + " -5.70552432e-02, 1.55503807e+00],\n", + " [ 9.92657314e-01, -1.41089350e+00, 0.00000000e+00,\n", + " -6.14134017e-02, 1.56847219e+00],\n", + " [ 9.94247579e-01, -1.42154632e+00, 0.00000000e+00,\n", + " -6.57714505e-02, 1.58164121e+00],\n", + " [ 9.95653985e-01, -1.43197504e+00, 0.00000000e+00,\n", + " -7.01181127e-02, 1.59457663e+00],\n", + " [ 9.96877428e-01, -1.44218188e+00, 0.00000000e+00,\n", + " -7.44561716e-02, 1.60727976e+00],\n", + " [ 9.97918841e-01, -1.45216902e+00, 0.00000000e+00,\n", + " -7.87883562e-02, 1.61975189e+00],\n", + " [ 9.98779132e-01, -1.46193846e+00, 0.00000000e+00,\n", + " -8.31173677e-02, 1.63199411e+00],\n", + " [ 9.99459194e-01, -1.47149211e+00, 0.00000000e+00,\n", + " -8.74458805e-02, 1.64400731e+00],\n", + " [ 9.99959904e-01, -1.48083172e+00, 0.00000000e+00,\n", + " -9.17765427e-02, 1.65579222e+00],\n", + " [ 1.00030456e+00, -1.48996087e+00, 0.00000000e+00,\n", + " -9.60903441e-02, 1.66735356e+00],\n", + " [ 1.00044983e+00, -1.49887726e+00, 0.00000000e+00,\n", + " -1.00432380e-01, 1.67868344e+00],\n", + " [ 1.00041848e+00, -1.50758419e+00, 0.00000000e+00,\n", + " -1.04784276e-01, 1.68978615e+00],\n", + " [ 1.00021125e+00, -1.51608302e+00, 0.00000000e+00,\n", + " -1.09148662e-01, 1.70066180e+00],\n", + " [ 9.99829044e-01, -1.52437499e+00, 0.00000000e+00,\n", + " -1.13528056e-01, 1.71131031e+00],\n", + " [ 9.99272751e-01, -1.53246124e+00, 0.00000000e+00,\n", + " -1.17924952e-01, 1.72173142e+00],\n", + " [ 9.98543291e-01, -1.54034282e+00, 0.00000000e+00,\n", + " -1.22341810e-01, 1.73192477e+00],\n", + " [ 9.97641604e-01, -1.54802070e+00, 0.00000000e+00,\n", + " -1.26781061e-01, 1.74188985e+00],\n", + " [ 9.96568656e-01, -1.55549575e+00, 0.00000000e+00,\n", + " -1.31245102e-01, 1.75162603e+00],\n", + " [ 9.95325444e-01, -1.56276881e+00, 0.00000000e+00,\n", + " -1.35736292e-01, 1.76113254e+00],\n", + " [ 9.93924534e-01, -1.56982375e+00, 0.00000000e+00,\n", + " -1.40238197e-01, 1.77038943e+00],\n", + " [ 9.92344050e-01, -1.57669455e+00, 0.00000000e+00,\n", + " -1.44790142e-01, 1.77943393e+00],\n", + " [ 9.90596696e-01, -1.58336561e+00, 0.00000000e+00,\n", + " -1.49376084e-01, 1.78824571e+00],\n", + " [ 9.88683479e-01, -1.58983736e+00, 0.00000000e+00,\n", + " -1.53998199e-01, 1.79682375e+00],\n", + " [ 9.86605543e-01, -1.59611025e+00, 0.00000000e+00,\n", + " -1.58658619e-01, 1.80516679e+00],\n", + " [ 9.84364121e-01, -1.60218477e+00, 0.00000000e+00,\n", + " -1.63359417e-01, 1.81327346e+00],\n", + " [ 9.81960500e-01, -1.60806131e+00, 0.00000000e+00,\n", + " -1.68102603e-01, 1.82114231e+00],\n", + " [ 9.79396020e-01, -1.61374024e+00, 0.00000000e+00,\n", + " -1.72890121e-01, 1.82877183e+00],\n", + " [ 9.76672074e-01, -1.61922189e+00, 0.00000000e+00,\n", + " -1.77723839e-01, 1.83616044e+00],\n", + " [ 9.73790111e-01, -1.62450653e+00, 0.00000000e+00,\n", + " -1.82605550e-01, 1.84330650e+00],\n", + " [ 9.70751634e-01, -1.62959442e+00, 0.00000000e+00,\n", + " -1.87536959e-01, 1.85020832e+00],\n", + " [ 9.67558207e-01, -1.63448575e+00, 0.00000000e+00,\n", + " -1.92519682e-01, 1.85686417e+00],\n", + " [ 9.64211449e-01, -1.63918073e+00, 0.00000000e+00,\n", + " -1.97555237e-01, 1.86327229e+00],\n", + " [ 9.60713041e-01, -1.64367949e+00, 0.00000000e+00,\n", + " -2.02645040e-01, 1.86943089e+00],\n", + " [ 9.57064722e-01, -1.64798217e+00, 0.00000000e+00,\n", + " -2.07790397e-01, 1.87533816e+00],\n", + " [ 9.53268293e-01, -1.65208888e+00, 0.00000000e+00,\n", + " -2.12992496e-01, 1.88099230e+00],\n", + " [ 9.49325610e-01, -1.65599968e+00, 0.00000000e+00,\n", + " -2.18252401e-01, 1.88639148e+00],\n", + " [ 9.45238593e-01, -1.65971465e+00, 0.00000000e+00,\n", + " -2.23571048e-01, 1.89153390e+00],\n", + " [ 9.41009217e-01, -1.66323382e+00, 0.00000000e+00,\n", + " -2.28949235e-01, 1.89641778e+00],\n", + " [ 9.36639515e-01, -1.66655723e+00, 0.00000000e+00,\n", + " -2.34387615e-01, 1.90104137e+00],\n", + " [ 9.32131575e-01, -1.66968489e+00, 0.00000000e+00,\n", + " -2.39886694e-01, 1.90540293e+00],\n", + " [ 9.27487540e-01, -1.67261681e+00, 0.00000000e+00,\n", + " -2.45446819e-01, 1.90950080e+00],\n", + " [ 9.22709602e-01, -1.67535296e+00, 0.00000000e+00,\n", + " -2.51068175e-01, 1.91333336e+00],\n", + " [ 9.17800006e-01, -1.67789335e+00, 0.00000000e+00,\n", + " -2.56750779e-01, 1.91689906e+00],\n", + " [ 9.12761039e-01, -1.68023794e+00, 0.00000000e+00,\n", + " -2.62494475e-01, 1.92019641e+00],\n", + " [ 9.07595037e-01, -1.68238671e+00, 0.00000000e+00,\n", + " -2.68298926e-01, 1.92322400e+00],\n", + " [ 9.02304376e-01, -1.68433961e+00, 0.00000000e+00,\n", + " -2.74163615e-01, 1.92598053e+00],\n", + " [ 8.96891470e-01, -1.68609664e+00, 0.00000000e+00,\n", + " -2.80087835e-01, 1.92846477e+00],\n", + " [ 8.91340006e-01, -1.68766202e+00, 0.00000000e+00,\n", + " -2.86093695e-01, 1.93067227e+00],\n", + " [ 8.85694617e-01, -1.68902639e+00, 0.00000000e+00,\n", + " -2.92133523e-01, 1.93260736e+00],\n", + " [ 8.79896215e-01, -1.69016589e+00, 0.00000000e+00,\n", + " -2.98256488e-01, 1.93423188e+00],\n", + " [ 8.74017154e-01, -1.69113765e+00, 0.00000000e+00,\n", + " -3.04406000e-01, 1.93561585e+00],\n", + " [ 8.68034026e-01, -1.69191823e+00, 0.00000000e+00,\n", + " -3.10608742e-01, 1.93672297e+00],\n", + " [ 8.61943709e-01, -1.69249824e+00, 0.00000000e+00,\n", + " -3.16862629e-01, 1.93755303e+00],\n", + " [ 8.55745009e-01, -1.69288160e+00, 0.00000000e+00,\n", + " -3.23165605e-01, 1.93810564e+00],\n", + " [ 8.49447195e-01, -1.69307340e+00, 0.00000000e+00,\n", + " -3.29515413e-01, 1.93838055e+00],\n", + " [ 8.43052090e-01, -1.69306780e+00, 0.00000000e+00,\n", + " -3.35909609e-01, 1.93837765e+00],\n", + " [ 8.36557670e-01, -1.69286421e+00, 0.00000000e+00,\n", + " -3.42345564e-01, 1.93809694e+00],\n", + " [ 8.29969842e-01, -1.69246748e+00, 0.00000000e+00,\n", + " -3.48820464e-01, 1.93753859e+00],\n", + " [ 8.23292938e-01, -1.69187534e+00, 0.00000000e+00,\n", + " -3.55331315e-01, 1.93670286e+00],\n", + " [ 8.16526105e-01, -1.69108542e+00, 0.00000000e+00,\n", + " -3.61874956e-01, 1.93559017e+00],\n", + " [ 8.09672658e-01, -1.69010085e+00, 0.00000000e+00,\n", + " -3.68448057e-01, 1.93420107e+00],\n", + " [ 8.02737337e-01, -1.68892163e+00, 0.00000000e+00,\n", + " -3.75047132e-01, 1.93253621e+00],\n", + " [ 7.95720952e-01, -1.68754555e+00, 0.00000000e+00,\n", + " -3.81668543e-01, 1.93059639e+00],\n", + " [ 7.88619946e-01, -1.68594857e+00, 0.00000000e+00,\n", + " -3.88308205e-01, 1.92834150e+00],\n", + " [ 7.81450449e-01, -1.68418126e+00, 0.00000000e+00,\n", + " -3.94961875e-01, 1.92585710e+00],\n", + " [ 7.74207239e-01, -1.68222183e+00, 0.00000000e+00,\n", + " -4.01626116e-01, 1.92310065e+00],\n", + " [ 7.66895148e-01, -1.68006574e+00, 0.00000000e+00,\n", + " -4.08296909e-01, 1.92007348e+00],\n", + " [ 7.59512173e-01, -1.67771351e+00, 0.00000000e+00,\n", + " -4.14970007e-01, 1.91677689e+00],\n", + " [ 7.52082290e-01, -1.67515395e+00, 0.00000000e+00,\n", + " -4.21621840e-01, 1.91318945e+00],\n", + " [ 7.44567728e-01, -1.67241084e+00, 0.00000000e+00,\n", + " -4.28286676e-01, 1.90936094e+00],\n", + " [ 7.36996651e-01, -1.66947639e+00, 0.00000000e+00,\n", + " -4.34940513e-01, 1.90526756e+00],\n", + " [ 7.29362359e-01, -1.66634382e+00, 0.00000000e+00,\n", + " -4.41578934e-01, 1.90091060e+00],\n", + " [ 7.21673032e-01, -1.66301702e+00, 0.00000000e+00,\n", + " -4.48197327e-01, 1.89629169e+00],\n", + " [ 7.13926679e-01, -1.65949378e+00, 0.00000000e+00,\n", + " -4.54791051e-01, 1.89141255e+00],\n", + " [ 7.06127853e-01, -1.65577513e+00, 0.00000000e+00,\n", + " -4.61355430e-01, 1.88627489e+00],\n", + " [ 6.98276929e-01, -1.65186056e+00, 0.00000000e+00,\n", + " -4.67885778e-01, 1.88088048e+00],\n", + " [ 6.90409201e-01, -1.64776641e+00, 0.00000000e+00,\n", + " -4.74353182e-01, 1.87525016e+00],\n", + " [ 6.82458267e-01, -1.64346122e+00, 0.00000000e+00,\n", + " -4.80802896e-01, 1.86934851e+00],\n", + " [ 6.74462336e-01, -1.63895823e+00, 0.00000000e+00,\n", + " -4.87204653e-01, 1.86319539e+00],\n", + " [ 6.66422292e-01, -1.63426066e+00, 0.00000000e+00,\n", + " -4.93553645e-01, 1.85679250e+00],\n", + " [ 6.58338355e-01, -1.62936572e+00, 0.00000000e+00,\n", + " -4.99845244e-01, 1.85014160e+00],\n", + " [ 6.50213138e-01, -1.62427417e+00, 0.00000000e+00,\n", + " -5.06074867e-01, 1.84324447e+00],\n", + " [ 6.42047534e-01, -1.61898580e+00, 0.00000000e+00,\n", + " -5.12237978e-01, 1.83610283e+00],\n", + " [ 6.33842837e-01, -1.61350015e+00, 0.00000000e+00,\n", + " -5.18330099e-01, 1.82871836e+00],\n", + " [ 6.25600302e-01, -1.60781708e+00, 0.00000000e+00,\n", + " -5.24346815e-01, 1.82109272e+00],\n", + " [ 6.17320955e-01, -1.60193621e+00, 0.00000000e+00,\n", + " -5.30283783e-01, 1.81322747e+00],\n", + " [ 6.09025943e-01, -1.59588796e+00, 0.00000000e+00,\n", + " -5.36132092e-01, 1.80516442e+00],\n", + " [ 6.00674632e-01, -1.58961074e+00, 0.00000000e+00,\n", + " -5.41898344e-01, 1.79682275e+00],\n", + " [ 5.92288076e-01, -1.58313254e+00, 0.00000000e+00,\n", + " -5.47572174e-01, 1.78824556e+00],\n", + " [ 5.83868574e-01, -1.57645472e+00, 0.00000000e+00,\n", + " -5.53149554e-01, 1.77943438e+00],\n", + " [ 5.75418462e-01, -1.56960645e+00, 0.00000000e+00,\n", + " -5.58640108e-01, 1.77043194e+00],\n", + " [ 5.66933450e-01, -1.56252613e+00, 0.00000000e+00,\n", + " -5.64013734e-01, 1.76115278e+00],\n", + " [ 5.58415743e-01, -1.55524424e+00, 0.00000000e+00,\n", + " -5.69279095e-01, 1.75164301e+00],\n", + " [ 5.49866220e-01, -1.54775992e+00, 0.00000000e+00,\n", + " -5.74432756e-01, 1.74190359e+00],\n", + " [ 5.41285403e-01, -1.54007268e+00, 0.00000000e+00,\n", + " -5.79471192e-01, 1.73193529e+00],\n", + " [ 5.32673414e-01, -1.53218178e+00, 0.00000000e+00,\n", + " -5.84390973e-01, 1.72173877e+00],\n", + " [ 5.24030208e-01, -1.52408628e+00, 0.00000000e+00,\n", + " -5.89188767e-01, 1.71131455e+00],\n", + " [ 5.15355640e-01, -1.51578514e+00, 0.00000000e+00,\n", + " -5.93861339e-01, 1.70066301e+00],\n", + " [ 5.06649468e-01, -1.50727723e+00, 0.00000000e+00,\n", + " -5.98405548e-01, 1.68978441e+00],\n", + " [ 4.97911342e-01, -1.49856132e+00, 0.00000000e+00,\n", + " -6.02818349e-01, 1.67867884e+00],\n", + " [ 4.89140805e-01, -1.48963612e+00, 0.00000000e+00,\n", + " -6.07096783e-01, 1.66734626e+00],\n", + " [ 4.80337291e-01, -1.48050018e+00, 0.00000000e+00,\n", + " -6.11237985e-01, 1.65578645e+00],\n", + " [ 4.71500125e-01, -1.47115200e+00, 0.00000000e+00,\n", + " -6.15239171e-01, 1.64399905e+00],\n", + " [ 4.62601002e-01, -1.46157742e+00, 0.00000000e+00,\n", + " -6.19118933e-01, 1.63197258e+00],\n", + " [ 4.53694320e-01, -1.45179742e+00, 0.00000000e+00,\n", + " -6.22830541e-01, 1.61972601e+00],\n", + " [ 4.44751618e-01, -1.44180083e+00, 0.00000000e+00,\n", + " -6.26394332e-01, 1.60725012e+00],\n", + " [ 4.35771533e-01, -1.43158489e+00, 0.00000000e+00,\n", + " -6.29807761e-01, 1.59454358e+00],\n", + " [ 4.26752782e-01, -1.42114735e+00, 0.00000000e+00,\n", + " -6.33068415e-01, 1.58160509e+00],\n", + " [ 4.17693993e-01, -1.41048587e+00, 0.00000000e+00,\n", + " -6.36173942e-01, 1.56843316e+00],\n", + " [ 4.08593673e-01, -1.39959797e+00, 0.00000000e+00,\n", + " -6.39122045e-01, 1.55502609e+00],\n", + " [ 3.99450209e-01, -1.38848100e+00, 0.00000000e+00,\n", + " -6.41910471e-01, 1.54138196e+00],\n", + " [ 3.90261861e-01, -1.37713213e+00, 0.00000000e+00,\n", + " -6.44537008e-01, 1.52749861e+00],\n", + " [ 3.81026758e-01, -1.36554837e+00, 0.00000000e+00,\n", + " -6.46999481e-01, 1.51337365e+00],\n", + " [ 3.71742898e-01, -1.35372650e+00, 0.00000000e+00,\n", + " -6.49295740e-01, 1.49900444e+00],\n", + " [ 3.62408138e-01, -1.34166309e+00, 0.00000000e+00,\n", + " -6.51423657e-01, 1.48438808e+00],\n", + " [ 3.53020194e-01, -1.32935452e+00, 0.00000000e+00,\n", + " -6.53381116e-01, 1.46952138e+00],\n", + " [ 3.43576633e-01, -1.31679689e+00, 0.00000000e+00,\n", + " -6.55166005e-01, 1.45440088e+00],\n", + " [ 3.34074866e-01, -1.30398606e+00, 0.00000000e+00,\n", + " -6.56776209e-01, 1.43902281e+00],\n", + " [ 3.24512146e-01, -1.29091764e+00, 0.00000000e+00,\n", + " -6.58209601e-01, 1.42338308e+00],\n", + " [ 3.14865346e-01, -1.27754797e+00, 0.00000000e+00,\n", + " -6.59458973e-01, 1.40743220e+00],\n", + " [ 3.05173562e-01, -1.26395133e+00, 0.00000000e+00,\n", + " -6.60531091e-01, 1.39125708e+00],\n", + " [ 2.95411447e-01, -1.25008187e+00, 0.00000000e+00,\n", + " -6.61419920e-01, 1.37480576e+00],\n", + " [ 2.85575556e-01, -1.23593413e+00, 0.00000000e+00,\n", + " -6.62123207e-01, 1.35807291e+00],\n", + " [ 2.75662202e-01, -1.22150204e+00, 0.00000000e+00,\n", + " -6.62638606e-01, 1.34105252e+00],\n", + " [ 2.65667472e-01, -1.20677910e+00, 0.00000000e+00,\n", + " -6.62963696e-01, 1.32373811e+00],\n", + " [ 2.55587213e-01, -1.19175837e+00, 0.00000000e+00,\n", + " -6.63095961e-01, 1.30612272e+00],\n", + " [ 2.45417016e-01, -1.17643243e+00, 0.00000000e+00,\n", + " -6.63032777e-01, 1.28819884e+00],\n", + " [ 2.35152202e-01, -1.16079333e+00, 0.00000000e+00,\n", + " -6.62771397e-01, 1.26995841e+00],\n", + " [ 2.24787793e-01, -1.14483257e+00, 0.00000000e+00,\n", + " -6.62308930e-01, 1.25139273e+00],\n", + " [ 2.14318494e-01, -1.12854100e+00, 0.00000000e+00,\n", + " -6.61642327e-01, 1.23249245e+00],\n", + " [ 2.03738663e-01, -1.11190883e+00, 0.00000000e+00,\n", + " -6.60768353e-01, 1.21324747e+00],\n", + " [ 1.93042283e-01, -1.09492553e+00, 0.00000000e+00,\n", + " -6.59683568e-01, 1.19364692e+00],\n", + " [ 1.82222926e-01, -1.07757974e+00, 0.00000000e+00,\n", + " -6.58384302e-01, 1.17367905e+00],\n", + " [ 1.71273714e-01, -1.05985923e+00, 0.00000000e+00,\n", + " -6.56866619e-01, 1.15333117e+00],\n", + " [ 1.60187274e-01, -1.04175081e+00, 0.00000000e+00,\n", + " -6.55126292e-01, 1.13258956e+00],\n", + " [ 1.48955690e-01, -1.02324016e+00, 0.00000000e+00,\n", + " -6.53158763e-01, 1.11143931e+00],\n", + " [ 1.37570439e-01, -1.00431182e+00, 0.00000000e+00,\n", + " -6.50959101e-01, 1.08986430e+00],\n", + " [ 1.26038728e-01, -9.84943385e-01, 0.00000000e+00,\n", + " -6.48501076e-01, 1.06783994e+00],\n", + " [ 1.14319201e-01, -9.65131100e-01, 0.00000000e+00,\n", + " -6.45821772e-01, 1.04536500e+00],\n", + " [ 1.02416185e-01, -9.44846270e-01, 0.00000000e+00,\n", + " -6.42892956e-01, 1.02240803e+00],\n", + " [ 9.03178235e-02, -9.24066763e-01, 0.00000000e+00,\n", + " -6.39707627e-01, 9.98945842e-01],\n", + " [ 7.79892561e-02, -9.02759204e-01, 0.00000000e+00,\n", + " -6.36273603e-01, 9.74943508e-01],\n", + " [ 6.54593597e-02, -8.80912134e-01, 0.00000000e+00,\n", + " -6.32549906e-01, 9.50388847e-01],\n", + " [ 5.26919485e-02, -8.58490572e-01, 0.00000000e+00,\n", + " -6.28544115e-01, 9.25245521e-01],\n", + " [ 3.96701017e-02, -8.35462255e-01, 0.00000000e+00,\n", + " -6.24245893e-01, 8.99479832e-01],\n", + " [ 2.63750155e-02, -8.11791127e-01, 0.00000000e+00,\n", + " -6.19643668e-01, 8.73054125e-01],\n", + " [ 1.27857531e-02, -7.87436857e-01, 0.00000000e+00,\n", + " -6.14724475e-01, 8.45926318e-01],\n", + " [-1.12111884e-03, -7.62354118e-01, 0.00000000e+00,\n", + " -6.09473720e-01, 8.18049154e-01],\n", + " [-1.53719795e-02, -7.36491679e-01, 0.00000000e+00,\n", + " -6.03874892e-01, 7.89369290e-01],\n", + " [-2.99967125e-02, -7.09791295e-01, 0.00000000e+00,\n", + " -5.97909199e-01, 7.59826152e-01],\n", + " [-4.50294098e-02, -6.82186292e-01, 0.00000000e+00,\n", + " -5.91555122e-01, 7.29350517e-01],\n", + " [-6.04763144e-02, -6.53649306e-01, 0.00000000e+00,\n", + " -5.84793427e-01, 6.97916611e-01],\n", + " [-7.64478723e-02, -6.23996127e-01, 0.00000000e+00,\n", + " -5.77586723e-01, 6.65328727e-01],\n", + " [-9.29654711e-02, -5.93166879e-01, 0.00000000e+00,\n", + " -5.69904241e-01, 6.31527682e-01],\n", + " [-1.10092096e-01, -5.61036946e-01, 0.00000000e+00,\n", + " -5.61705839e-01, 5.96385290e-01]])})" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[0]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.2\n", + "-0.18620689655172415\n", + "-0.1724137931034483\n", + "-0.15862068965517243\n", + "-0.14482758620689656\n", + "-0.13103448275862067\n", + "-0.11724137931034483\n", + "-0.10344827586206896\n", + "-0.0896551724137931\n", + "-0.07586206896551724\n", + "-0.062068965517241365\n", + "-0.0482758620689655\n", + "-0.03448275862068964\n", + "-0.02068965517241378\n", + "-0.006896551724137917\n", + "0.006896551724137945\n", + "0.020689655172413807\n", + "0.03448275862068967\n", + "0.04827586206896553\n", + "0.06206896551724139\n", + "0.07586206896551728\n", + "0.08965517241379312\n", + "0.103448275862069\n", + "0.11724137931034484\n", + "0.13103448275862073\n", + "0.14482758620689656\n", + "0.15862068965517245\n", + "0.1724137931034483\n", + "0.18620689655172418\n", + "0.2\n" + ] + } + ], + "source": [ + "from pinocchio.visualize import MeshcatVisualizer\n", + "import meshcat\n", + "counter = 0\n", + "suspicious_points = []\n", + "for value in values:\n", + " x[range_idx] = value\n", + " graph = gm.get_graph(x)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_robot(graph, builder=builder)\n", + " point_criteria_vector, trajectory_criteria, res_dict_fixed = crag.get_criteria_data(fixed_robot, free_robot, trajectory)\n", + " \n", + " constrain_error, results = soft_constrain.calculate_constrain_error(crag, fixed_robot, free_robot)\n", + " constrain_error\n", + " if constrain_error == 0:\n", + " counter+=1\n", + " if counter==1 or counter==2:\n", + " # viz = MeshcatVisualizer(fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model)\n", + " # viz.viewer = meshcat.Visualizer().open()\n", + " # viz.clean()\n", + " # viz.loadViewerModel()\n", + " # draw_joint_point(graph)\n", + " # plt.show()\n", + " suspicious_points.append(value)\n", + " point_criteria_vector, trajectory_criteria, res_dict_fixed = crag.get_criteria_data(fixed_robot, free_robot, trajectory)\n", + " print(value)\n", + " reward, reward_list = reward_class.calculate(point_criteria_vector, trajectory_criteria, res_dict_fixed, Actuator = actuator)\n", + " reward_values.append(reward)\n", + " valid_points.append(value)\n", + " \n", + " else:\n", + " print(value, constrain_error)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You can open the visualizer by visiting the following URL:\n", + "http://127.0.0.1:7003/static/\n" + ] + } + ], + "source": [ + "x[range_idx] = suspicious_points[1]\n", + "graph = gm.get_graph(x)\n", + "fixed_robot, free_robot = jps_graph2pinocchio_robot(graph, builder=builder)\n", + "viz = MeshcatVisualizer(fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model)\n", + "viz.viewer = meshcat.Visualizer().open()\n", + "viz.clean()\n", + "viz.loadViewerModel()\n", + "point_criteria_vector, trajectory_criteria, res_dict_fixed = crag.get_criteria_data(fixed_robot, free_robot, trajectory, viz=viz)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/reward_vis/surface_reward.ipynb b/jmoves/apps/reward_vis/surface_reward.ipynb new file mode 100644 index 00000000..b48ea2c5 --- /dev/null +++ b/jmoves/apps/reward_vis/surface_reward.ipynb @@ -0,0 +1,212 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Ground_connection_0_0': (-0.2001, 0.1999), 'Ground_connection_0_2': (-0.1, 0.1), 'main_knee_2': (-0.30000000000000004, -0.1), 'branch_0': (-0.13, 0.07), 'branch_2': (-0.3, -0.1)}\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAApQAAAHzCAYAAACe1o1DAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAABhOUlEQVR4nO3deXxU1R338e9kIENIICFhDWQCJJkBBBRE2VGqVRAVcW3VPiJq605rW9e2oHWrbdWqdRd4WsVHRbAoi7YCCgiyu4GZhCWJLMYQgpBAQibn+eMyWUiALDOZzMzn/XrNK8mde8/53STAl3PvOddmjDECAAAAGikq2AUAAAAgtBEoAQAA0CQESgAAADQJgRIAAABNQqAEAABAkxAoAQAA0CQESgAAADQJgRIAAABNQqAEAABAkxAoAQAA0CQESgAAADQJgRIAAABNQqAEAABAkxAoAQAA0CStgl0AAAAIHq/XqyNHjgS7DARB69atZbfb/dIWgRIAgAhkjNGePXtUVFQU7FIQRAkJCeratatsNluT2iFQAgAQgXxhsnPnzmrbtm2TAwVCizFGJSUlys/PlyR169atSe0RKAEAiDBer7cyTCYlJQW7HARJTEyMJCk/P1+dO3du0uVvJuUAABBhfPdMtm3bNsiVINh8vwNNvY+WQAkAQITiMjf89TtAoAQAAECTECgBAAACbPr06TrttNOCXUbAECgBAECjeb1eLVu2TG+++aaWLVsmr9cb8D737NmjqVOnKj09XW3atFGXLl00atQovfjiiyopKQl4/6iNWd4AAKBR5s6dq6lTp+q7776r3NajRw/94x//0KWXXhqQPrdt26aRI0cqISFBjz76qAYMGKDy8nJ5PB7NmDFDycnJuvjii2sdd+TIEbVu3TogNYERSgAA0Ahz587V5ZdfXiNMStLOnTt1+eWXa+7cuQHp99Zbb1WrVq20bt06XXnllerbt68GDBigyy67TAsWLNBFF10kyZps8uKLL2rixImKjY3Vww8/LEl64YUXlJaWpujoaLndbv373/+ubHvHjh2y2WzatGlT5baioiLZbDYtW7ZMkrRs2TLZbDZ9/PHHGjJkiNq2basRI0YoMzOzRp2PP/64unTponbt2umGG27Q4cOHA/L9aCkIlAAAoEG8Xq+mTp0qY0yt93zbfv3rX/v98vfevXv10Ucf6bbb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Rx06yhqp3LVrl9LS0rSpHl2mpaWpKCur1nZfu15jjUTGto616hs40JqVX5ejs1Prcx4BUd/fA3/r21eaP7/2iGRmpvUeWiy73Vpo4vLLrR9d9b8afD/Kp5+29guE0tLSyvUgfVq1aqWOvj9DJ3DzzTfr73//u+666y796le/0vr16ytnTh8rPz9fhw8frrEtKSmpQcvvTJ8+XXfeeafat2+v8ePHq7S0VOvWrdO+fft011136ec//7keffRRXXLJJXrsscfUrVs3bdy4UcnJyRo+fLh69uyp7du3a9OmTerRo4fatWunc889VwMHDtQ111yjp59+WuXl5br11lt11llnaciQIfWuzZ8YoQRCzQ03WP/Qz57d9LaGDrVGhXJzq7bt22ddeq1+P1zXrtbH6kEnL6/uEFIfQ4ZIy5db9+35LFrUuLYk6z6+uDhrSaVjHb3EnByXrDU9pK65hVJurtLS0iRJCZJGSFotad68ebr55psVdZLLrXa7XTfffLPWr19f673evXtLkvYdKpJNNnWN62qt/7h5s9Snj3Xux758ob8e51GDb6TwwIET1ntS9f098Ldx46zRyP/9r2rbl19a91FecEHg+oVfXHqpNGeO1L17ze09eljbA7kO5eLFi9WtW7car1GjRtXrWKfTqXfffVfvv/++Tj31VL344ot69NFH69zX7XbX6qeuP/cncuONN+rVV1/VrFmzNGDAAJ111lmaNWtW5QhldHS0PvroI3Xu3FkXXHCBBgwYoMcff7zykvhll12mcePGaezYserUqZPefPPNyqfwdOjQQWPGjNG5556r3r1766233mpQbX7VpCk9AJqf12stqdK2rTEPP2wt4TJnjjH9+lmzhqs72azpzEyrnWNn97ZqZc3E9jl40FqqaPx4axaxx2PN0G7Tpu5Z3iebDb5+fc1Z3i+9ZExyctNmeT/7bNXs6HfesWZSP/ywMZMnV+5yxu/iTXHr2rO8yyQzpI5Z3qnVlhOSZLZLZmYds7yr7/f9998bk5pq/t+QNrVneQ8aZM3yXrrUmLfeMubXvzbmxhsbfB6Vli2z9r3zTms295YtxvzwQ9X7eXlVs7/rmhHuU9/fg/r+fOvryBFjBg60ZnS/8461nFXfvsb06mX9ziFg/DWz1xhraaClS42ZPdv6GIilghA4LBsERLLDh4155JGqtSU7dDDm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b9YFF1yguLg4denSRb/4xS9UUFDQ4HMJFwRKADiGx+ORw+GoMeLhdDrlcDi4LIawZozRht0bdHq305ulv9O7na71u9erodM53nrrLbndbrndbl177bWaOXNmZRsLFizQpZdeqgkTJmjjxo36+OOPNWTIEEnS3Llz1aNHDz300EPavXu3du/eXattt9ut008/XW+88UaN7bNnz9bVV18tm82m3bt366yzztJpp52mdevWafHixfr+++915ZVXNvI7Efq45A0Ax/B4PMrIyFBUVNX/ue12u9LT0wmUCGsHyg6o8FChMpIymqU/V5JLhYcKdbDsoNo52tX7uNdee03XXnutJGncuHE6ePCgPv74Y5177rl65JFH9LOf/UwPPvhg5f6nnnqqJCkxMVF2u13t2rVT165dj9v+Nddco+eee05//vOfJVl/J6xfv17/+te/JEkvvPCCBg8erEcffbTymBkzZiglJUUej0cul6v+34QwwQglABwjMzOzzn8QXC4Xl7wR1sq8ZZKkNq2a57GYDrujRr/1kZmZqTVr1uhnP/uZJKlVq1a66qqrNGPGDEnSpk2bdM455zSprp/97GfKycnR6tWrJUlvvPGGTjvtNPXr10+StH79ei1dulRxcXGVrz59+kiStm7d2qS+QxUjlABwDI/HUzn6UZ3b7dbs2bODUBHQPHz3TR4uP9ws/ZV6S2v0Wx+vvfaaysvL1b1798ptxhi1bt1a+/bt88vkmm7dumns2LGaPXu2hg0bpjfffFO/+tWvKt+vqKjQRRddpL/85S91HhuJCJQAUE1JSYny8vKOO0KZm5urQ4cOMSMUYalddDslxiQqa29Ws/Tn2etRYkyi4qLj6rV/eXm5/vWvf+nvf/+7zjvvvBrvXXbZZXrjjTc0cOBAffzxx7r++uvrbCM6Olper/ekfV1zzTW655579POf/1xbt26tHBGVpMGDB+vdd99Vz5491aoVUUrikjcA1JCVZf1D6na7a73n2+bbBwg3NptNg7sN1vrd65ulv/W71+v0bqfXe73LDz74QPv27dMNN9yg/v3713hdfvnleu211zRt2jS9+eabmjZtmrZs2aKvvvpKTzzxRGUbPXv21KeffqqdO3eecFb2pZdeqh9//FG33HKLxo4dW2NE9LbbblNhYaF+/vOfa82aNdq2bZs++ugjTZkypV5hNRwR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Yn29bp319Zw5ge0XQFjjkjeAxrv/fsnlkp5+2gqRNpuUkSHdeqv1vsslLV1q7Td5snW/5eDB1tI9Z5wRuLpSUqS1a6Vp06yAW1BgrUc5eLA0xRqP7Ny5s0499VT984sv9J2kuyTNlGR78EFFDx6sA7+/X93frMqFkrQt5SxtGfYnuZa/rF4L9+hbSdMlPXj0/T906aLEYxdKHz686nPfcySC9X2RrO/JJ59Uff3Pf1qv6vUBQAPxpBwAEetET8p59tlnNW7chBpPyhk5skKLFn2gO+64I3SflAMAAUCgBBDRTvYs70suuaTyWd7z5s3T9u3b69y31rO8ASCCECgBRLTc3Fy5XC6VlpY2ug2HwyGPxyNnXUsBBVp57clDdWrFHU4AAodJOQAimtPp1IoVK+RwOBp1vMPh0IoVK4ITJiVrrc36vA4fDk59ACICI5QAIGukcuTIkce9/F2XHj16aOXKlcELk5I1S7s+Tj/95E82AoBGIlACQDULFy7UAw88oE2bNh13n9NOO02PPvooE3AA4CgCJQDUIT8/X6+99pq2bdumoqIiJSQkqHfv3rrhhhvUuXPnYJcHAC0KgRIAAABNwqQcAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECTECgBAADQJARKAAAANAmBEgAAAE1CoAQAAECT/H9ALYJ5ZhurtgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import multiprocessing\n", + "from matplotlib.ticker import LinearLocator\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "from mpl_toolkits.mplot3d import Axes3D\n", + "\n", + "from pymoo.algorithms.soo.nonconvex.pso import PSO\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains\n", + "\n", + "from auto_robot_design.optimization.saver import (\n", + " ProblemSaver, )\n", + "from auto_robot_design.description.builder import jps_graph2pinocchio_robot\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import CalculateCriteriaProblemByWeigths, get_optimizing_joints\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.criterion_math import ImfProjections\n", + "from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_simple_spline, get_vertical_trajectory, create_simple_step_trajectory,get_workspace_trajectory\n", + "from auto_robot_design.optimization.rewards.reward_base import PositioningReward, PositioningConstrain, PositioningErrorCalculator, RewardManager, PositioningReward\n", + "from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability\n", + "from auto_robot_design.optimization.rewards.pure_jacobian_rewards import VelocityReward\n", + "from auto_robot_design.optimization.rewards.inertia_rewards import MassReward, TrajectoryIMFReward\n", + "from auto_robot_design.description.actuators import TMotor_AK10_9, TMotor_AK60_6, TMotor_AK70_10, TMotor_AK80_64, TMotor_AK80_9\n", + "from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT\n", + "from auto_robot_design.utils.configs import get_standard_builder, get_standard_crag, get_standard_trajectories, get_standard_rewards, get_mesh_builder\n", + "\n", + "from auto_robot_design.generator.user_generator.graph_generator import TopologyManager2D\n", + "from auto_robot_design.description.kinematics import JointPoint\n", + "\n", + "tp = TopologyManager2D()\n", + "# creates ground connection\n", + "tp.add_connection(ground=True, self_mutation_range= [(-0.2001, 0.1999),None,(-0.1, 0.1)], dependent_mutation_range=[(-0.13,0.07),None,(-0.3,-0.1)])\n", + "main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + "main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None]))\n", + "# creates connection on the first link\n", + "tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + "main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + "tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + "# creates connection on the second link\n", + "tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.5, 0.3)], self_freeze_pos=[0.0,0,-0.4999], dependent_mutation_range=[(-0.2,0.0),None,(-0.0,0.2)])\n", + "# creates branch node and one-joint branch in the topology manager. \n", + "branch_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=False, name='branch', attach_ground=False, attach_endeffector=False)\n", + "tp.add_relative_node(branch_jp)\n", + "# adds a dependent connection of the one-joint branch to the \n", + "tp.add_dependent_connection(0,1,connect_head=True)\n", + "# adds independent connection to the second link finishing the branch building\n", + "tp.add_independent_connection(tp.branch_ends[1][1],tp.connections[2].connection_jp)\n", + "tp.set_mutation_ranges()\n", + "tp.visualize()\n", + "graph = tp.graph\n", + "initial_x = tp.generate_central_from_mutation_range()\n", + "\n", + "builder = get_standard_builder()\n", + "crag = get_standard_crag(open_loop=False)\n", + "trajectories = get_standard_trajectories()\n", + "rewards = get_standard_rewards()\n", + "\n", + "trajectory_name = 'step1'\n", + "reward_name = 'dexterity'\n", + "trajectory = trajectories[trajectory_name]\n", + "error_calculator = PositioningErrorCalculator(jacobian_key=\"Manip_Jacobian\")\n", + "soft_constraint = PositioningConstrain(error_calculator=error_calculator, points=[trajectory])\n", + "mr = tp.mutation_ranges\n", + "print(tp.mutation_ranges)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "i=0\n", + "i=1\n", + "i=2\n", + "i=3\n", + "i=4\n", + "i=5\n", + "i=6\n", + "i=7\n", + "i=8\n", + "i=9\n", + "i=10\n", + "i=11\n", + "i=12\n", + "i=13\n", + "i=14\n", + "i=15\n", + "i=16\n", + "i=17\n", + "i=18\n", + "i=19\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "nx = 20\n", + "nz = 20\n", + "\n", + "range_idx_1 = 0\n", + "range_idx_2 = 1\n", + "range_1 = mr[list(mr.keys())[range_idx_1]]\n", + "range_2 = mr[list(mr.keys())[range_idx_2]]\n", + "\n", + "\n", + "x = np.linspace(range_1[0],range_1[1],num=nx,endpoint=True)\n", + "z = np.linspace(range_2[0],range_2[1],num=nz,endpoint=True)\n", + "\n", + "X, Z = np.meshgrid(x, z)\n", + "res = np.zeros((nx, nz))\n", + "pos_error = np.zeros((nx, nz))\n", + "\n", + "x=initial_x.copy()\n", + "for i in range(nx):\n", + " for j in range(nz):\n", + " x[range_idx_1] = X[i,j]\n", + " x[range_idx_2] = Z[i,j]\n", + " fixed_robot, free_robot = jps_graph2pinocchio_robot(tp.get_graph(x), builder=builder)\n", + " constrain_error, results = soft_constraint.calculate_constrain_error(crag, fixed_robot, free_robot)\n", + " if constrain_error == 0:\n", + " reward, reward_list = rewards[reward_name].calculate(results[0][0], results[0][1], results[0][2], Actuator = builder.actuator['default'])\n", + " res[i,j] = reward\n", + " \n", + " else:\n", + " res[i,j] = 0\n", + " \n", + " print(f\"i={i}\")\n", + "\n", + "fig = plt.figure()\n", + "ax = fig.add_subplot(111, projection='3d')\n", + "cmhot = plt.get_cmap(\"summer\")\n", + "ax.plot_trisurf(X.flatten(), Z.flatten(), res.flatten(), antialiased=True)\n", + "# ax.plot_surface(X, Z, res, linewidth=0.2, antialiased=True)\n", + "# sct = ax.scatter(X.flatten(), Z.flatten(), res.flatten(), s=np.abs(pos_error.flatten())*5e3, c=np.abs(pos_error.flatten())*10, cmap=cmhot)\n", + "ax.set_zlim(res.min()-0.5, res.max()+0.5)\n", + "ax.zaxis.set_major_locator(LinearLocator(10))\n", + "# A StrMethodFormatter is used automatically\n", + "ax.zaxis.set_major_formatter('{x:.02f}')\n", + "# Add a color bar which maps values to colors.\n", + "# fig.colorbar(sct, shrink=0.5, aspect=5)\n", + "ax.set_xlabel('X')\n", + "ax.set_ylabel('Z')\n", + "ax.set_zlabel('Reward')\n", + "plt.show()\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/reward_vis/surface_reward.py b/jmoves/apps/reward_vis/surface_reward.py new file mode 100644 index 00000000..812ba9af --- /dev/null +++ b/jmoves/apps/reward_vis/surface_reward.py @@ -0,0 +1,137 @@ + +import multiprocessing +from matplotlib.ticker import LinearLocator +import numpy as np +import matplotlib.pyplot as plt +from mpl_toolkits.mplot3d import Axes3D + +from pymoo.algorithms.soo.nonconvex.pso import PSO +from pymoo.core.problem import StarmapParallelization +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains + +from auto_robot_design.optimization.saver import ( + ProblemSaver, ) +from auto_robot_design.description.builder import jps_graph2pinocchio_robot +from auto_robot_design.description.utils import draw_joint_point +from auto_robot_design.optimization.problems import CalculateCriteriaProblemByWeigths, get_optimizing_joints +from auto_robot_design.optimization.optimizer import PymooOptimizer +from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.pinokla.criterion_math import ImfProjections +from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_simple_spline, get_vertical_trajectory, create_simple_step_trajectory,get_workspace_trajectory +from auto_robot_design.optimization.rewards.reward_base import PositioningReward, PositioningConstrain, PositioningErrorCalculator, RewardManager, PositioningReward +from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability +from auto_robot_design.optimization.rewards.pure_jacobian_rewards import VelocityReward +from auto_robot_design.optimization.rewards.inertia_rewards import MassReward, TrajectoryIMFReward +from auto_robot_design.description.actuators import TMotor_AK10_9, TMotor_AK60_6, TMotor_AK70_10, TMotor_AK80_64, TMotor_AK80_9 +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT +from auto_robot_design.utils.configs import get_standard_builder, get_standard_crag, get_standard_trajectories, get_standard_rewards, get_mesh_builder + +from auto_robot_design.generator.user_generator.graph_generator import TopologyManager2D +from auto_robot_design.description.kinematics import JointPoint + +tp = TopologyManager2D() +# creates ground connection +tp.add_connection(ground=True, self_mutation_range= [(-0.2001, 0.1999),None,(-0.1, 0.1)], dependent_mutation_range=[(-0.13,0.07),None,(-0.3,-0.1)]) +main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False) +tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0])) +main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_knee', attach_ground=False, attach_endeffector=False) +tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None])) +# creates connection on the first link +tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)]) +main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True) +tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4])) +# creates connection on the second link +tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.5, 0.3)], self_freeze_pos=[0.0,0,-0.4999], dependent_mutation_range=[(-0.2,0.0),None,(-0.0,0.2)]) +# creates branch node and one-joint branch in the topology manager. +branch_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=False, name='branch', attach_ground=False, attach_endeffector=False) +tp.add_relative_node(branch_jp) +# adds a dependent connection of the one-joint branch to the +tp.add_dependent_connection(0,1,connect_head=True) +# adds independent connection to the second link finishing the branch building +tp.add_independent_connection(tp.branch_ends[1][1],tp.connections[2].connection_jp) +tp.set_mutation_ranges() +tp.visualize() +graph = tp.graph + +thickness = MIT_CHEETAH_PARAMS_DICT["thickness"] +actuator = MIT_CHEETAH_PARAMS_DICT["actuator"] +density = MIT_CHEETAH_PARAMS_DICT["density"] +body_density = MIT_CHEETAH_PARAMS_DICT["body_density"] + + +builder = get_standard_builder() +crag = get_standard_crag(open_loop=False) +trajectories = get_standard_trajectories() +rewards = get_standard_rewards() + +trajectory_name = 'step1' +reward_name = 'dexterity' +trajectory = trajectories[trajectory_name] +error_calculator = PositioningErrorCalculator(jacobian_key="Manip_Jacobian") +soft_constraint = PositioningConstrain(error_calculator=error_calculator, points=[trajectory]) + + +nx = 20 +nz = 20 + +range_idx = 2 +range = mr[list(mr.keys())[range_idx]] +# curr_j, bounds = list(optimizing_joints.items())[0] +curr_j, bounds = list(optimizing_joints.items())[0] +curr_j_2, bounds = list(optimizing_joints.items())[1] + +x = np.linspace(-0.8, 0.8, nx) +z = np.linspace(-0.8, 0.8, nz) +# x = np.linspace(bounds[0], bounds[2], nx) +# z = np.linspace(bounds[1], bounds[3], nz) + +X, Z = np.meshgrid(x, z) +res = np.zeros((nx, nz)) +pos_error = np.zeros((nx, nz)) + +initial_pos_JP = curr_j.r +initial_pos_JP2 = curr_j_2.r +for i in range(nx): + for j in range(nz): + # additional_x = np.array([X[i,j], 0, Z[i,j]]) + # current_x = initial_pos_JP + additional_x + # additional_x = np.array([X[i,j], 0, 0]) + # current_x = initial_pos_JP + additional_x + + # additional_x2 = np.array([Z[i,j], 0, 0]) + # current_x2 = initial_pos_JP2 + additional_x2 + + additional_x = np.array([0, 0, X[i,j]]) + current_x = initial_pos_JP + additional_x + + additional_x2 = np.array([0, 0, Z[i,j]]) + current_x2 = initial_pos_JP2 + additional_x2 + # problem.mutate_JP_by_xopt(current_x[[0,2]]) + problem.mutate_JP_by_xopt([0, current_x[2], 0, current_x2[2]]) + fixed_robot, free_robot = jps_graph2pinocchio_robot(problem.graph, builder=builder) + trajectory = constrain_dictstep + point_criteria_vector, trajectory_criteria, res_dict_fixed = crag.get_criteria_data(fixed_robot, free_robot, trajectory) + reward, reward_list = acceleration_capability.calculate(point_criteria_vector, trajectory_criteria, res_dict_fixed, Actuator = actuator) + res[i,j] = reward + + err = pos_error_reward.calculate(point_criteria_vector, trajectory_criteria, res_dict_fixed, Actuator = actuator) + pos_error[i,j] = err[0] + print(f"i={i}") + +fig = plt.figure() +ax = fig.add_subplot(111, projection='3d') +cmhot = plt.get_cmap("summer") +ax.plot_trisurf(X.flatten(), Z.flatten(), res.flatten(), antialiased=True) +# ax.plot_surface(X, Z, res, linewidth=0.2, antialiased=True) +# sct = ax.scatter(X.flatten(), Z.flatten(), res.flatten(), s=np.abs(pos_error.flatten())*5e3, c=np.abs(pos_error.flatten())*10, cmap=cmhot) +ax.set_zlim(res.min()-0.5, res.max()+0.5) +ax.zaxis.set_major_locator(LinearLocator(10)) +# A StrMethodFormatter is used automatically +ax.zaxis.set_major_formatter('{x:.02f}') +# Add a color bar which maps values to colors. +# fig.colorbar(sct, shrink=0.5, aspect=5) +ax.set_xlabel('X') +ax.set_ylabel('Z') +ax.set_zlabel('Reward') +plt.show() diff --git a/jmoves/apps/set_of_experiments_analysis/pareto_fronts.png b/jmoves/apps/set_of_experiments_analysis/pareto_fronts.png new file mode 100644 index 0000000000000000000000000000000000000000..800b02b5aa572e65d2bc6bc79073c2626342bcbe GIT binary patch literal 71669 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" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "labels = []\n", + "\n", + "plt.figure(figsize=(10, 10))\n", + "for idx, dir in enumerate(subfolders):\n", + " problem = MultiCriteriaProblem.load(\n", + " dir\n", + " )\n", + " \n", + " checkpoint = load_checkpoint(dir)\n", + " optimizer = PymooOptimizer(problem, checkpoint)\n", + " optimizer.load_history(dir)\n", + " res = optimizer.run()\n", + " F = res.F\n", + " plt.scatter(res.F[:,0], res.F[:,1],s=10)\n", + " labels.append(f\"topology {idx}\")\n", + "history_mean = optimizer.history[\"Mean\"]\n", + "reward_labels = []\n", + "for trajectory_idx, rewards in problem.rewards_and_trajectories.rewards.items():\n", + " for reward in rewards:\n", + " reward_labels.append(reward[0].reward_name)\n", + "plt.legend(labels)\n", + "plt.xlabel(list(set(reward_labels))[0])\n", + "plt.ylabel(list(set(reward_labels))[1])\n", + "plt.title(\"Pareto Fronts\")\n", + "plt.savefig('./pareto_fronts.png')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['ZRR Reward', 'Manipulability Reward']" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list(set(reward_labels))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "for _, trajectory in problem.rewards_and_trajectories.trajectories.items():\n", + " plt.plot(trajectory[50:, 0], trajectory[50:, 2])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/utils/topologies.png b/jmoves/apps/utils/topologies.png new file mode 100644 index 0000000000000000000000000000000000000000..a1915f8abc72eca6f8b2f3bc0960cf9bfd6fd274 GIT binary patch literal 202256 zcmeFZcTiJp7d;x}1r!Brh;$2zfE1-kR}nBEMS4f1gB0m41Ph=bqDT>tBE1Kt*C?n+ z?}QqpcR~xj+@1F;_nW!*cW3VZuQQHGJUKb%DSNNI*4pQ_nu-DqH4`-gfuKR&zo(8s zP#uN8?MEr$liq{lKj0rRS2QOU{=EqP8Hj%d;-B>S?=|qxK>RZhh<}jfzZbzj z1M&ZNAW{Q+D47lF7P7Uq^?Pt| zaPB4ok@iix1l55t75(ca0^xbBPQZ1h{i21rxvmlQ^@+*Jw5gW3CL9ho2i4z|-;Ir( zHK<+J(OQZerDp+i-B~H}p-c^HLD3Y_dt6F{u_>R$F3?4y0jj92rRr)nTr1 z8hx&=p%EDsm2TM*yCQ)=XuUH%uc)N-p|rF#R>ZzhYedBSd|>M*v6S_7SERbG?#G|> zWQgE8>5^)=Hif^hEoo?IsERe(n>eRuM0>qE=?-~XdO9~Jr-HP!w01N(qU@fE%3IPY zmY1EjcXtioAoUz=UZlFWcLkHkli$l02(_ODVKlG(Xm&@tf{l`BbV~>a{U_L@~P&Sl*y)OlR}?< zR&m$+XRbbIC*n*nvBGxTLPDCul^(cCLQRgKRjc6#CIn*n?7AKN_zQZeI6s;sNn2e~ zXoVmd6OnBdwZ%ulAuob0$UHZEhw~$M~VEYmu|F zbCJumN=vM;(&*@D#e9Bca220~gaM3Tq&5T0%Bg+$skTRQZRsZD*ZA`<{Dt_IF1@=T zNW(0W+x|9$BP})6y05@=XQ8l-d$F1wz4x>y^Pw!W$dmS0r!IGAYw^e_DA>)kf7btM z{+g1OnZj6wMzEui=(5RN}=OMn+7AE8M!?vPw|*Y!BFBxL~O6 z+_~euH5%l$G*qs*`vBpY1m6p)^L;WLE3?1#v;l|v#KxdgW1$*rUc;u-HYy;aN+*Yf z8-&r+`g=61V99#sFFdhXHP2FJ&eG=Pk~CzJHsmho7<(_dccE9f)YofPhM%@%s-dN& z=jE|8=I7<#PY-n^c#geRWTc*)=}6hx7<44c9InYwA3b`_olW6cV%Lw?XN0ZWFWC2g zm7|kde|L`0Fq1S>Ss4lH&dy)`4tGc9zf-Yyf3;|8G;A_CSY@c*o{AeNFnwX$o%uP4 z&HEam+-q&hX6(mn@9oLxV$(XxfPjEm_QNfOex38Ti3}{)TjHV*_iF>xkD*5t7d@~a z{I*8tqR7G&up+S75L)qn-`yYElP8ZXKVaayFB^Cty&ETF{cgQSr}GVCcy#pocPee2 zAUm6F=h*-TMNxh#gEim7{Y|-6+v~ptPOwUPs*RuzQ32S^rQu48^MT39$<)di6Ku^9 za&r3f=QFJmyskR#{C`%4~J4Nc7mWAE83!%lTH zI;E?K?2O7KZkCg+aaInAhM`xLQ{x%zqeXwiByWZ zuaTk1kG)QuvtWA_C!yoLW0R93tM&7HucVEQ4ZXOD*Db#O8-}G0@qT+N3dIh?`qOQR zZE^T4jf}f%_JbwLH*VYrNdNichxK5Iy+!_K_{hs7C?EhC-r3c)hR?9W)`Z;#q5~O}da}r8+xu$XAg&k7;8sDM}@` ze)@FEg-84T{;txqXX^J}u5S!Zngm@@Y9_Dp^P9qspmbKr)Hm1r3)7-_TW~^lS5Yf+ z2a?R9iXM2I{2VN{yoN{T9F|Sy(9pA@iz}4PsD@}%bPX-#P*XWMkujtnkd=pFm1{v=nkvSjl;Dh zJek+$ebR{6ns$~(_@$Qpy9+*-w=NFG5u>c6KB=ssh9xdh(4`xD3ls`b8Sw15WQ`3m z&(jN==ozB-iO#oJ25L|~pJ(5{e_wI1Gq07Sop-k@g!$@ZXFPkIz-qdem)E4SOH*qr zUrE$+QF9OML2bbCG$VS1!1mThDuwBm57N8Ml8k8&Q}(92x>|NmOYax;kDR;yE><*p zXCtyVm#Zq5;&?N;6`hRlN7Vz0iDg zKl3rK-lgh|*!5|dII4j9uxOR|n~8(fgA1cUv@wGwE>ri##5xyC?%fs%l3?L~yt*T!ScB zf$N*R(EEmQO2F#bvnjnem+9DNxM-89HjQ2)@8b7*o)(YgBr#ME_bdS|NUc7iGPro>v1H#U2^-)1V^!0iH1^A>hR>?0t z+K&$56-XyaUR&;xcIq;<46dTMUx&?Ct%9gsSXy;h<8`+&S1(}N9@i@A)SKE6IpQ*O z%Vt4$jrx~fVRO=I4yMs~mk0AvM}*J#It`2UM$_vv{D-kdm8mcPTI0wXbog+vrC>90 zf32KLBh_WPxkl>AN3U<54W|oha3=gdCi>+$vohC0b4 zdI>dy^QX9FQ)>RH$gb&wd)^#rz3QYyDD;vgQHyzZSK;o|1#WkpkmdGFnO1sH2fr%i zlj==uCOB5|9+p3+`VuQFm_b~yVf*N_PpsWM%YA(F&UNJ6K+n+1)?ChB;UqQNk8HiJ zPg9duLK!t`Hk+Cw61;vHmR?a>&DdPDqcn1`FdE^>Q?QwiyVX(U{kVtQW%_ow_hwZ1 zhnDyt3BvV3?;=OXgL(Y3$|1d1iv#otrMDu9<(d!iczmq5TQ*>wt3h=SXP(^Nq-}}d z(wJCWG~yy0hN1UlA(8-6`fyb_Hnqflu(7F0XcZ7dG?bL|t|uPuDTHeRf*JN*Yw=zz#!a}2yG{H)wNJ#Ld0j$Dcp>v)N_Un9 zryBupl<2$qy2N2P`}gnP&KOaD+l99hsh1T}QM;+C(l=D!a9Q_Whuk4hid0ExPV^J5 zdq7->IdprJbe2iKW-`yfiVbn%L~~+qDPht?(CN{Edrw+#?hV<89x{>5FMbbK7!5ZF z!32gfr?E+`mgaD*efvz6Vq(I$&s5;Qn>yUr_cgxAXEk+wq0rL*V}#~<>hSOTg7;h# z)tq-1r(P#SZyUJig-Je6VA=a|#xiMp;=@!;oKIp4s&gscBX(0=(zD>P$^dHb>Ds+W zI%$F3o(i`qzo~Z@Ck_5JDK3dc202k)oenAT>b_N8ol7{AX~KtScd2uH5v_@$s@^+) zUewA48G9#pJ*SvDDDlCMY4%P#hwAnh&f*Y_A^s=*r@1|~dovPat(Ge3`%Zo^4|}0| z?3iVl_RzaW6dnVO6*Xy6Tb^m#H3tJjY98XpsZhg}N{5^1DV21L<18*ES*v$iJzyBM zIjmps=-Jf=AJt|o=agfGI$*M0A;IYk_?UPMyD2IvcJg4Vk^z@#WA|1=_V)H%Ny!ct zLJAvtZ{@U!gy-@j5=cV>01)=u^AvW(8x~r%_41Yug^RZ3>J_d-GKDmx5*!@dInnUJ z&FVWVUcGEO!KcWojZJE;Sy0?#=~EyrYj!=G&w~-)HDxay=G$&l<7UQk9$N+dXQ(M( zI#yqiB1U*c{#4>e66fQ(c8P+j-rSf!e`-g3e4-t_Y;305ohTxUh9}OQdbsMs$QZDj zWw5`aQ)=&)MpRafzI&It%_WVvj98y}jV%Lt?11%0O|pRTqXVf`RNJ zqD=#nP+qt)kJ;{WsBDqkCBUxsoBqti{^RBe*%-YT=hOv_cN~|mKZs^5NLiRS79t^Vmx-Lds=@WLdJh;(yY{3zI|sW2Qo&GAAV36w z)tP_q+O_M~A9Q7?;?`%ols?s$2`yk}zSOgInT1JdkIm~B+orKoCw%vA`07wT8Fi`2 z0he#|-lk1z^HYM)Qu*C3V{Gi`3PRH{dawHT+DiQtS$>S*TE^tWN2*!wXFh`$ctn+I z@HNz{G~7?ict|yf-=SOO`mU1EQfj=oTQGY6{pBeahb8;xN{7ACW}erPQ;{d@-_j?z zuUl_NY5i=+tdUag%Mb2r=L0_r@*L#(H$RB?`XidH^@q(N9DH7xHs1uDeiWYJbg^F@P%%}Y(wzKX$&!IKJsH!rkPdPZ0m5R zXgJ$Gn!I>3I)9D@uXi~`AzQglB*4UQfS6|uv%JaTyFEFUh%pdFOCuGLSylSMWv*5eXXM*d+i%%L>27VzN6VO`$WLLpxYXCCrf^hr z#$unYBQsPw(T8@%s6WzuKEm@4VNl3489x>AWXK_nTn`SlH1hlXKyEZk-aWJ9C&iH6QDRR$@t$!L>i@<(>PA5E0DN1~nli~f|{vD8kt_3ZgQ zD5C4xcDIF5TtU^|O%wLK9=sVm+cdoTXqoojt zpOx#WMh)7Wi%~@;2fyRdQ5@9+t7yIvpFByM%~pw)3#DaLoQp^N7o8|zi?08^JcT;q zcj#kt=;w0(4deuire+@MrpL8^aq+cEz9R0eZHv~{4Bg2++&oMzv}$2~Y|?Tkw@q4* z?r|uy72A2A(SXNRQr=UUzxY`(Tf8fC_}t1V+PIwWyi`rN!P4b77aJXvGCqn8c`QL()qv3C_KYv>n$GPEFytW?(o!(Iur_3e#PttF-U^c4>j zx4Z}+{}n@ZhTT_ppQ{S6xx|%44z4iWmCl&k0%?C#inz=#jQEaGgn4(TUZEZH^$!+@0roqIBgRQp}2R?BX z2ivU3?dnZ-nFmet)dY{Khr%*j(~-E+Wa8}Q{b`vgWaZK+@?eeS)ZyJFo;^bqm5zea zKgh~EcP25IA}kfcpIVj#@4dWYtWvPs>Fc9GQ{Pkl5nNY)NtS7!(}FT~sxGc)^FxjJ z2b4TJ?Sa~6X|)W&m@-2(v3IT~Co(oRySe!R1qH?Iuh(aKHbxGk+UmltX{)!1*cXjG zt1L3dDd=yk-Q=xy%t}@&tf9}d(OAoc8n=b~oxxBYlMrQDm=$^L|QkpP;xL+OzEIyYshN<6j9<}c={ zl%(Ox<7gQhb-%-kH!UcMOhVkKxXWXUQTrE(3Lgh40Wn(-UXYYD1XKm3cKfT|%R+mB zqdT5!^-Ne---D9xMjl9y;mE_QuU}7Lc@56-CZ)RZ&7{XQzj&wPT+a%n_o$7>h|$(= zM@mb5n%_bBOwpYe%?fwYvKSC*A|ettrA51wExYRv7oJn>6e}@MgfeHu(lA;72sC1< zsSJ?z8{32*s#-d_(nD>+?)9`Y|MdrVvTx#)h@{2=SL+WCH;XIecRdD~xi~de(;Wv( zTF%S(RXwb9x0h9aui)fVa07C_+3v=o7X~R7^SH>TG@kU8UsJMidAh8cNdN_yWFYiC z-B{2AlI`b~5n>_jYYENU(6T0hv9S|o{Wt5jaM%+m%FK1vxK;sY7hc__xd3dJ)3^s& zPiwhL;L2)K;3;~G^EEYr4@>h+Pn>^r{@AgA=?^E&#(p&M+b!zXl`V?Y9X%@WM!)#P z<*UC04t7V9*I-GT7CG3TCl#QHezxaNoeI2Rt9c+Hp8u6BH|6Y$ zqDiq(s@vL`zeJ2G-lPqGLm&QB{buXV)_E(3s*c>Q--PPYebsmG`%{`GaivA`52J`u zPTvIBeA@+TYfseG*9$O-ioAJ7PGdHDH|15pahenby1Jt$gxEz#K9#b`Ngh_2z6@dx zjMnK$+=TT~6wXEwIklN|ecpg_FEo%Dd%WOGkg1dS6@;doLK}k_IoxoU_d5$#XDc1)n@zHv%1)pV!cppN{Af;GF_k3dYdhMIVIW)&TJeKW! zZEdQ7qc9-`2(iih2%2RNCWk#fL_*NM^X?xcuvgoh^sBg5e1e{=d~7#g*c^?V)|?dz+lAY5!daXNHISvfSe zS4kX=XQ^=My@HqB zn~@kS)jsVJFnNWOGebXthtgY#^nUH*WK(#ChWMpaaj!AN-$Rp~4#toW!X($2k&n zW^Qi&rRjl+O7G<`$xBG@q(ySlcdlX*eC@T5W}5$tEmV`2myasu5rCDVcorD~k`T<&EphtPXJiP2-9ZhCNx&(owzgL2(Km$sNR5$+?@9nL zzS`#fYtwBwpfx9)ZV8pF>E`ue?;3Q4$dnz`jOs{HXc~1o>jkhkqZVIREvPXx-u_uO zJQYYO;O>eF)VVMMXly#lg}(8y&lUkgaC^fD4=rw zRu-s30F&+<5QWPoA0Z(-3I;cyId$r@uwCyppdMf}cK{r%Ccp)}PFIP~F1EvED@F5( zJN>!+8Q1#phO9>VgN}FFvYI20nKQCERplk&cgPh;iG z__VV=o6=us#Sl9+?UDA~xyhmaEo-(>rTb?a8h*TnU0Z@wcq*{UAU;Ig%FF)U+8PxW z76yEK0b-EyUG6OIv{a?!OuzrM%O<|hR27M@@!m}dD_RNnx^(H%dRpbCu?K54gI8ZY za5)Ljc}TOTmsnwZL)mO%elZ7%3?4qd{NIxBLg((?=TO~iTXWtEhYc$9q)*@q2ZuFW zpPVr>149NJ0x(EtIM%&ur<)jA%xzKXTR!3RG3nwY8~+G6{39XBw2|bHHuQ>~D_X-d&WPAP_L; zc=cyO_-n4M?_g?n6#1f+ifwz;F~-&FYi%+NyVAhUUtg6rHa3nGvI!^A?#R{E)$qE} zYwodw3;l&Xz{~gK>S^#Alyu7+tc2YqtTpjtXCSO;-M|0p$dMx?4k6E|Qv2!Cr{1Fh z3`I6w=~ab1!-pAkEVq(K)V+X!8cb#{aQv=Y%cE5m6>Y(vgzcg(UA{ayJ@wLJnkxqzd8nV{T8x$p`fvig-&E6(C>m!C)YbB_bnC;xl?;;)b<6QL7z0yW!H z%(CjA70k_3-$zDT2!U$y+hr-JZd3pyAzO0`3&xf>QU29E(Gg!WaOPDN>``2vAf6Sp=Y}e*;|p`N2|0QR#y%v&%w4-S5mQ z`S|!8^}^|h?os^p68JOu+qZ9jt`FglmG~3> z275rnc&#OhyEQu9V)=zLLEFRBOYSZd$^*wqZU0*a2#}vkRfaoke9=4vVHgA>sg<;B$EANgR?wh0lK@XGl3qqsSUlbIRi-tzFprrf)8A8{3pmfB~4$5L?n9JXB zC2sTDvf*DGhAXOY+gn@bXJ==BqTexmSv#WXSTZ7#Ntr)ISl1%XQ{Qe&w<34HM=0i0 z+Wdk!y&vmG6Tz@a8YvE_CBiie<&}}@mX?<9y=v>~fV$Amo=i(iCnbuiB@s zc8q*l&)OMnq8KNt6v`YY8^))5VSg=gY7Kk9t^Da4ufbK;TNk{%kc)##Ak}OSJkQ4( zSKOMa=5QI@Q-Auj^95ZjLD1`K(c=J3Ov3t)Gf;b|)wty7 z6YH;l9;-FMrhoC`MK6<5`#}-HyuUvJ$_OqgDWh<&@iowE%G;MYU?=fzplS{eeBl2k zQNSJai=h1Wi8>^eiB4v(fX!>-ebua(m>4xJZ4}4;)_9ohNDb=q4#pf57~6rOtk`o~ zl8$Agls#D*3hlLOH!!c{vDu(1P>X?jz;)j-1Ji^usb|y%0vhQb?CKKAE zOlD9yC)n9-+ArAPB?W~lw=J{&SD4uLbuT%~&QDzA$CB}X{j8u z-CS$s!w;Q{7`?(LM5LmGdIj^-4EqDE;MMoBLhrwRZAN@O z^4DK~&Fsu$_*b@-9M3K}-6F~JNbWAFBe9~6`5^vA1UvTIb-${%+HrAN_0~vqO8bTnM$YL7}B`T9uBqbtaRj zLvFRt=3EVw+U^O!+Ru@aG0^qFQgt0ToDL}X0qG=#60nUwEt}*=kHB$Nnf=r=oGO_h zdC_ApAtcWYQf|1f)T^7W8QGC2E>b#No`5w-xzIGy)!5iraJ;CLRQ2y& zbE{}R7PmM+CdMeD7K!@^5a9od@_1=0IGB^_ICPmYcq{~&o*^T)4G1G0nceWI}p9jJ+#DT(T~e)zQ%rA6&L4qrMFq#O|bf{Tfb_5LhB) zNV=)v{i08ZsQubK9$^kUn)>*0p7j}6Hd)4lxq5=Ao!JciD$g$tRV(tC6ZBV$&%%XCzh2x8+~ z$upFfPh9DZD84RC#>X|SbAJbv%Mghh{}YKHBM{jUyg{YsV>!$mRt@U}PMASp4@|uj z_UhHqaR9smU%!5RW6>1FxU#bHiv&4xbFYsB<`pHCObhcRjw23$4)*Mtuz)|_``+qr z?BRU^1j)M-X04x++wx2trA2*8OhLIjFXeO2Pg-J7z_wf94Zb?WWCMtW`4B;$lI@`y zl-Gw67W`wD<1`{Qvuu_xtJoe}hp)0-!~~r$MSE7RET9vF;Q)14FO>|_6D+!(`ijBZ zY-c#n#bZ-v9atrpdRh+27p+r_YjlQxtEp=gMPnP1%CRNRpQT+`9rZeF?)T?OO)!4)9>5W8(7r zUg;J)^zG>9YX5Y;)$FrJFJz@sj!EaSZfLy{92%mv{>IwE(jq%hheoPn@)(KlK2Fff z6qB8vdCjMK?HlK9!82Ce-tt9{#~%}W@-eFn&Y&kWMs{XtY3UG5xjZ$z6!+H3Vp6rKv0`D`d2_h4O-89H3b}$|ZU4F@v^Z#`qI287oR-1yQo?2p z^x_2Dlb@Z#txRFPz_Fw@3j3NLYFSnF8{;p@5Zv8e!wJ3qV&v;9Q(?q!p>)>ZwF1RG zF8srXkmgDc0>0|$0DlG`##k|zbdK4S7Iqtm0s1$ckpVbA3!$8xTF9D^sHhCFOR7kek#Ye$v9Fz z1BeF_S`Q{s#^koYm~q2r*{S_w{DuOuKY50lYMYwWg7RY;srxub2HYkmd+vwJ+IHU; z_cI)*9%Pvk=222q<~{UAAR0sM$tQ^OL)W*xcN?2{?wKIm|Qco}4&JKUSpWM1i;~7@H#g&ARhfFW()tF{+$GqgITcQ>n6OY9O07c)Nlw z%XIJC6R@5ywlX5)KcrZU_~mqWYg$-Za$mc4ADn2xuU|hTMc*Q}&!eIzaP@IAy<2JH z#S7CG`raeza_Eg15SIT-%6Gr{ilJ6!*~tT*u{}bW`TzJQV(OLHLlbuoai@ z(bkoDx}HU-rLjo4Xxfk1=LC|`6hG;{Ng^XTRX()?Rh0~BE81JEE{G1-93x22!jk*O zg>jD9W~?X^pU)d+|L}g^J4HkCwu0?t%i+@=A)nkn?Kn?FQ`1pLbC75vLCa<}L&Hxh z36gpfZr{IuXA-uBJhS&yPEHOPt}duSQZP2G7I48GJZD*%;t!wyxR+(7U^Alryxmdl(A+;0yo z6MF0wW6~xpi~D8c)bxFoxWT(3OcA7JypFcEa>F(uC5BlROJ2Vc1tUTTtUqTCZ}28fX*(luJ6 zcSaSF$cF%iiUHwVTJttB)w9A>6!22dWI{O%xjzf7=a#@UmHL~Ia*_A7Q$ zAh+bC;^Pt$^4r_hKwU#W3^~WU>Y#M$+_@+Z1L~|`V9suzXSuHY@f|wutzKbjMnd?_ zn~m%z4^~6A%eJSeua`M%Zlj(YskICAqmd}zQ96%6L~@G@=^L;OCLi$b%$J7v|n z5*GE!2mEyQoe^za`V>@}F3@z$A~ zi2%qa-~yySOB)s7bF>GRn?1@mhplYo+0DhW`#_bolZ#3x<%KzF)%gcPitCB0GvLm8 zjQAEA;Xe4MLxDY#V{&4mz+UYqI4hHEd9pV12g_8#Nk&H??G(-G-+}`y#dSK~!`qlp zJxVpB{by%~56*pQd(#H>|AEP?sI?;UUr~Hq(*^e2Fg9oQU$F6u}*xuN|19n-V z$3I@34x$fz^QOBj->3&H(V*62NakWcB$CSyZ(1khc;E|54aR$Nak+Q3qlu^Lpz~9Q z_Rz^}oseA%O{q`ANBagROK4in6FTb5*t9e7@n`W|pI}88&cccqke=zkO;jt`q`Y=} z+9MHX!hVpGJg3mmHmEx7(q=c^5kK&;q(jgfvrAn|CnJQpU|3^lJJjcUUH1Zb#EkFs zVX;C_lZ&3jxc>3?ntua$7`v}rG5)r;sp`PnrY&KQ5F)Y1!oVrDm9*{mfl~=wk;FNq zs^rD}QMyTk=qpO8RtfLj7sK_7-leNVI$(!$eL7QX*Th+-)?Xc+CF0zcYAF_Xv4mjO zL^Hy5=3PV#S5M~WH{!xQ^YcE`n+xOhY2BK$Lt-v5%5kytKj>fL{@Q19SFZz;0wN8E zk&_|Xb*LJ2m2!iE(wmWw>n_%SjB>*zaGry(h7bPzw*4cmnb1w|RDIDW_VyiGYR=wY zwUPF zRWY7u{lq1;o!VV&*N>4L`ah5z5#VYt*Ea z(J!VWu~vtBg>n(#26wI)p45&(hck-y`nN^Y|(G z;@jr+pVEEa8T~^?&!+js>U=^T(<@KL*B!Eh1o@!>Uf+Fsv1QIGVo2_b{dh+axhveUw56YrC77QFC$ZE#jcx7H&~sytU=3F^kj0PwXg+s-N+ivPkgBPm&%HHmI|CkF`JF+8; z@XY_fscH+}_P>cnJo5y@M9gTCIW4{S#4E9(>Hjx2*B z_5ArNc4I>XGt}JLO6YGO#LTM+u$-Xf>q(yNM>GbLB-&FMU0leWm{CqeD9Zq|_CSi@ zup!R%h}#Jl=QXTZ-cjSUT7D$W`{_oG21*n^f3o(iOlfgzG&b>%(yerH$eTaxmVO7S-_ zzwAbgVqoSr`o_^OP4wO#AMkvXx3o1w+jHoHqQIWZr9?X>{lPugIwTO? z>J>a@$_WV?&fd+FwazOL}pPF)ZJkk5$6wLB>}Vt#&5E{xsQ4?WpInnNd9;w}LrSQfi~m zj7i|p?e{siuv=rt-GE*L#Zz;Che&E{PzndP;km^TtO845~DQj-szvEs!u>tQk?n2k6wjk&J+s_+6MiM5)S^pE~sn9nt6 zE{a$DuNm$fzEI62u(jiiQG%Mks=wvcR!ykhfByP82N)#g_|fBn7{BW?iu+^E-{VR> zj8E!jT1`)!^)o_pZX1?4ZEy1Z`dhFq%^%ym&b@b!>j=_YD>n;t1U1>nMFlK zkI^a*A3mJx`;sCJM&i3&1I1k+*%kqf$|~)vdzr7gjS}Hm z_VMF+WG6HgTLppVf5QI}CxY zx}MLnLF&Bx;EjbotZO%itB2Ogr;k@VTDU-hx);rv->^$6?y~GM8q02RDB7Twzf)Bl z`mOmXLABojBTO1-(2N{$pbF=LV5Y-gwR{)9CyMt>;Sl_5b7MnWP3;|2oSI{+gi3;R z^;)aM4oPD}cDBY#6h9r8M?v>hcq*fyWu|NpEs1YjH5Rn%y)JA&pb1=WMAIbqeh@U5 z>4LDyfqeb?^*NpA&;RbKK&VCmf6Hf7p=b%nc7 z61(?UddNhnGgf%JZN%5*bN{Yyr-H6fl8HxYu%>0w_`NSA6XUZ}(mPY#Tw;{85eeRkimK7ZsN%hOW+rY{ zDQ+_y-<5QS?lX&Q9{_ej!$IHRkt5AHG<2*t2|Avm&t3oAZqPYre5c-0)NXFa!+c@j zib9IKWuI>IZ-wY&EAne}BreW2(0_ULx$ld!V5x;tIz06;=D?uL=`&FGq^^$Bbjh$< zN#g@HHvKXu)A!SLwY3~biLfQj`*|lRb|}xqWZX0qe`#yM({?f&NcDE0SzQU$n~LG2 z?lAB(D->F`g#Rs*RV0NG3G{0DQ?{hK``{BA6kN{vW_z^$G*t zT`?TUdKWDM4MGbEoq&_`^9JVkujz*P*(aNjFKa>{6b`fu&FUo?&nxKdko6#$`(5cs z=v7KY^YI$$u1li{Sbn!fTWRU7Z=a?PYV2@T{j>?Ut|7Bca%xD0E8WnRKaj&;3k!?g zhs6Vef^vXy^M+MNvb#%d{dqArTv8s>DlOT*ULTN?$jsihqEdfutHja(To)6^}o0*_{#43Rs=3%?9L=Q|)#n zb3?-i&b6ujN)JpFpHVjK3R|#sK|7O|tV>z+MI_0(0%CL?WLSFdus?tPR9zevNw?Rm zFL-MqZg6P(-??J-M3pRiRc z%l^S8w#|ps1jPi1-xyk`9-ACT^dP~Q0cMk2K5~k7QllFpfm=*W55&=)%NMF9&#h&b zjk(TgZk3DT1=uMT@nB~}erT?@AQ4ca(=|Em9)t7Pl!F{`;rVNqFUy+!degDj-Q8q- z!(;5nF`zw_A%k}TH$WY?c*F_&gsvGmK;-s`$DIO8}rk5V(d$iAznKmGj3 zkqCOmi^%N$WUZB^_o)NLX}x*JRV#%ea!p2j4YTbB?~Y6npWxiW(a)BNWABoFeuiB@ z>K*mB{e`0V{4h4uD2`-U&!NlL22@VkkKXGum)72}N@$aMIiFJ;r?xj&Qil$iqDSA4 z0N0^B{wtJcbpSXbo`3NGinl%{wT{N~*l7iqxgPCl)b72g>Ei4R9#{6c7SWOJFqwmo zn|(z#A4uk&2F}DxP=|JwDhY~)ffx+N*~JC3WemAGajG>whuv@Mj?czIgG8KqxVY;~ z5*R8PXI*NMp zPYug<+FW;TN<_q2QVR|^xcIxA!FPxOa~=<1S~uI?j=4x)S6u9gmaSbWl2e;#PJ1)CH+0Q#rb3c5&&n%2SX8PMR za?+ZCRFwkCB#`?S!C_%I&_qaGA*3c;qYBrKXXI4DRlU_!0fXn}e#cy9VwC!-j>||= z3R25^V!?Ws2m!u(WxSraTt}A!%OHRaPMQovUI`-DnWKcWPAzWCmPBeHm zIf=*XmpiAyQgog8{r>dGJPaynrx4+yvUD)U0nhP=+lhxApqQ=4jqJ(K_vUqh5=C4r z9hrk3R_>m+rx2dufF`*(IWyXORtwJUi?i=D`Ex2hc%TV-#3X^>=*GonMZz!OEwe$T zb4gw^1P3Q6L_j-}zPT|$U9#lLf6a({E-c<=7Rvi8KM!Y`HOA9g3bi4)%B5a7G?kpe>QK zGRUGNWdslj$xQ&YIUJ<}ji@K;+QA-9&wMJUm&Sl02J`h_+kF0HHfftXVE5fAsHhmc z96$`+S*d5&0+(+KQ1>KLA1VAAI96+c52YoJ@RPx$yG`aW7jzgE8YZD@E7i~*o(I!q z3p17~su2+pno@xb#ozvIp8T)75$+*8LZh)hf5Kd9_4j31daJ4u$%9tzI@oA^By`Bq zFdJ)CuP^wnKS|nodj8EFDnw5sY&b2fABtDE;5H=k;)+k)b}%ta0#^RgEPJ1UEhCG+ z_4F=urt3h2E069^S7wH|rU-oWj#F05G{La+z9J1iDd^=Nn#u~ z{k$>Z>`HvZW0ebLb)mpwUaX<=x4rr=ylZ&JlVaa!Ul`aO5|-$0)`U5-109w$mE}=5 z7!;C{0)wL1@}TEs+8I}qbyVbOTH^*%WpR!tPz`9A_{viIfue>nMYWTlUrBZWkaC-9 zW&~CJ`<%L@%3hRb&n5-~9TrOAmdzg@nkRrDnx|JN56^F~1*uM4YA17NkBFIDpGhIT ze|sz5`>>v!Xjf=Ckh$kn@Mkr!h$$JIn!t_M+?@m4Qf5AhmydmVi^W+y{;!v50(osh z+q+viXkWC&rzSNBxL_&FejLPH{b{r=$PPx&7PMlLWg3ov1MT!jY$7$cCyhv$q`>y5 z7UFh4^zxGW@gbN(X?XTFiOm2x{@UM9J}3_GOoHwu`Ys`PXsRL=^CU|^GpN(9B=;og z83N!HrIv~YD>JYFTu{G5?aseC0Gf2XG)f=7G}l`c2iyVXT?LfH**qlGD)8u0rHll$ z6sZXTUXuna zmvboY+6YM<%qGtvse?Qg+wArS_aQg+cHL0bX1^Wksx~9+Aq@ZQ*9;s$MNoG1L7bI`@bB3Oz1(686FcB0-od7%- zKuI~~rW_X+*ABR!&w|wyATG)GFxQzDLUN)4B?S?yLEr?cY*x1TK*268QRUwXko~MT zX{O}9djCCBa`N&3io51+IvpeN9tluc7CVmM=Wa@>KYlLi6Lt$(U zAVn^pnX)we_aFnoXdyl?D_>Z zQV^jmqqJ@^Gq_GiHO$9)xA>A~z(q|mgav750hJAEwt*2f-yPC&Gd)j9W-4YeX^9NC z?akyu{!A!4%f^<#uxy0X*N+7kUdRIveq7rirhQlYFDP8+0!hTm#f&aeT{+wL#Y{VT z>;|ZSGvk#qz2WbbCV(R+k*vQQg?p3GG@T(l#@*QP!!%MpHUEKJbf_{QAE(M*F$i@d zWNeZIaFSP_oo0I`mX61}{A5|#MNN#n7Smn&?OUf1w{2V(2eiW1M?m`@Q(VYN#p2fO zc1h|z0kXNc-(DH4vPY2q>cKx8?#eg)iG%Cfwanj=Sy@>mQ%BD#7{!CDsXP8t(b;?n zqxp~K1UJEjJRzu03!-cn@cNN^x?g{}o=++4w-R<+)ZCxy8kt%0^04cDtyj^${rs&J z8xA<>2skP#%-F9bhzvmJdyaUpg?(L%6nbf^r}^`u=6imgCdtda@MxGZMTDkBwKp-G z1B}7FaP{zHl>YtAid*Y;K2DCM<)!1WjKEil9HXvvKDtVy4rL2a4@%*|)jN)(wE-kW z7XTgbA;Cs(>qgZeHjO5b;vP#Ef-J;z62&a>Z;1ZJ6ylyLOAV^kz82w1f=qO{n0yY$M%{^8Cn5=pg=2 z?l0~MK;VkX%8_6q2R_)ne*~Uk1BGv?!|*y-zYL6m^Ps7doQn1uJS_$2jn!4|ZAl}L z694a~){v}6-8%J%Oz#Brfmih=-Unv)3HH4>T`vswP|)YGW|* z{S1%kfop%DKAKZLl(-F0STjYQ1`tAKyWNWyFCrm2f}4_N2X`U9MLNfkeXFFK_$AEV zaow)(Ax+M4cnVDwScid4a;7k)fZ$HODj39d%!cg}8jS|#vui9n6`s)Z_d_d`gb&y3 z6Lg+b>$VI?D`EG?{x8bjJD%&d4;%lYNLiIVBZ;gsG7>@xWo2cgC_+djdnHjSB|?$P z-bymEN>N72Y?#T;%FKL@kFI+?zt{7}?|$9)b-ymE}zQ=JK@8c{;A2Bu_9nL>C zQk>OCbD^fK*7!Kf^XZHI4c|PyGkg^m5^l#UWq+iVcTf*wyFnY;a$R-jC6%4KF6Qg1 zLu-CDkffP}G~6Eei5%S&A)G95woFs>!>Sme+~_kPHaNwN|u%(BuOt8-3y2bwZ}&(me>=_h)F`WO6qn5l+3AsCOfm)cR0P;R*0?9IFzW1=VSK{l z9rCw6=$@yxY7S$$MeLtFuR^AjjS`qCMx2jN1v|hvUeV_T0aak{0<{4Iuz>DE+NoWZ zV13>bvZibpzV9(KIax;u;jFs$%%H6pEw81#`??cX#VBB z=X25B+qeobJ?&;lCq|j4X@A}{LDnR6b*MhgzkdCit{3?Fv;r-Pj?Bov952$O4$9qv zV$Luo%+qeFTA#&Ps*fiMPl8WNf2Km?WZ>))NJVet?p{a~%IAAjAUn_b;t@>GlMRO& zB%qn-4pr$A`?G%r`yvYkc7Q~lVEn~|zNYVze7^Ue3mLVk_szwO^NanC0Rbc> z)h7MbotVO~ij>5>b?bHw(`Qye?;=UiGyrpCWMoVP5tN}ddG`NzjW^u()N;Ks9jS$$ z5EdTOPC<@|YeZ+1tsq&$52Q2v1q7ai&D7&*G{C$X=z(4oZh@(j4q!+eo`&Ue;R03b%Xh^gM(2{C0F*BO$|c@HGY7s~zh`DzP#I^5!6Yo~UUc;PiKk47|F3H5AuJ9a z1Lv@^vd*&RFBz9vEl z!iUco`$#}F=t|^J0vI5?r|?J6t%aXrB^nO<<*-(wW@1V(#*2OXAx%MQAjI7*2E*#SVbfI7{r%P-h%d={x zx&3F+KU&bSk|}M1+=nuu#_Q-`wWkzB3!ZgjPxM07?ff15F-I75o`F=8x;7rQ3!^J{ znuhqdW%6T0M`>j~f$;y*6+n;F2soP1fwW{>d>_65H?Iu@o-j3a3_9#gv7~R*;9tYW zS4=R}Zx3NW@m!OaA*Q5?rAL!dX!fNK=zpA%)8`nfr*$5#{6!xL(J8c}dgs(K|LM4n zmjbuAyH<&9-8mdM)i^@hQVb0>$h%2@@JhWeSqrAUmq43`cYyQnPQd9pvSYKoV|{R zBaLeRC2jd0sHL9jxVCV)p@7*K&ytE5u&}QKkaUWb2<~c7JZ+id#WRh-**{!U9);~) zSOV;21QRtsRsxwZH?r~fCjI@Zp7xB5hs%>!?OioUx>;*DOaK4iEO9vMXkrLgHia8e zQBh0F%lTe&PQ}n@q9w;a36!UArsDupa;WTm08gsgseoVe_O8RIRZ!%Z!Lh z{<}nx55k+XE%rHV3gAz3>8+ASHHcHBoWFLkWA|;t;203HILNST(R+ekcmaVdsU~r) z62bNoKCG!3-ZW$YWDzeZq0_kEZ>0n>Vtg7>`g&sZ`k^QXJC_8}&T$LP{ND4j2$h9b z7)aeN*s;?iIpwAnaJV-#)z{xL$CIhjt`rKs&%~UXWI(?LE`f*9u!{byxrK@89TQv= z!>|mOpk#nTh%iDV86rMmlVdL$9zJ(2lYajFgK)U_$m2RNVRVo|W9!5g;E>3=J9 zNyrbvf*&MEL}0}O8{h2unf%Zx{Pc;h)TBbswf79VdR1`u?mPau;f3a6e>sjO!jn-j ze~s0ui4+#iUWeh{4_qqPS6tYbh%UXvX504nGyg*$5g&So2EeJPwTJAv-*fs7^ex!C z{6azih4vc2d$A?yu|LLoK+C^_MdV{sLSVtM4PgamJN$)pHQnDNW)C+mOH0cI7zgga zs_P>`K$C=pUN7a)dIZYH++rG1Dl-B^1?7Jd1KW>v_~O{XvJ^Zd|1CHqX#ksyq5`yD z0Pn+Oh5Y4T_yi>X>g~kao~OEc?UV_g6CM&?iNu|PVvFdV)?#a4VoC~-)}TdtqXTjK z-0t%OxvWF)QZa=??N2KkhX?I?L-N-yBm%3Dy?9YO5b;2-h+w>yo-{SEU--%2>>9jp z=5&`I;Dm|U29f~HF(;9sU>Iv z?}Z@93nDmRBH{PsB=Dw)$AF*16VW}G;$*t-#mUa4{_nG$$MG8^Lsgvb%1|R0Os@T&ooxl~O~eQVcC6Evt4%`@{Miht{P-4-KJ-kj zN4_E8+%2}<6hJ8dA<5K~2g&{u;z(iYs6O@{P&UCkNAd5e6U2f`L7|Oq>07aD2J!4q z7XAEr8i9gfN{ynf2%iPYcAI;@J*uPb&%{X)_)lyHMJDo3AGdbY@8Q_y`H)Edbv*}5 zOG+5IxEx)D3dvE_BKrvo3)kXrRamdB;$OCyj%2h2!9J??ZW*1kJ}|AZ+B?Zk?SR`R&1Xu|ge>Y!eLO0N#qEe%!2BXX3xoD4 zy7H;A{X(s1cp|WGhfQQ8dO|g`R~7rU-IxKh&1*HxgGHJp*wUII3X+(KWXeyjLcbMR z1Ji1Vu0)1&$B#(4Y$yQwPyocl5CQ!7-;RodLs(-0wA|XVJBa^JP9dmxf~_LHR2Tt% z?(L=9Q1mA20#cgB4@F|jGy>z(z&{@T{rv{O2f>y2T!INuBPXS#fRX#xyZ`T5w}AH= zDhXl_x-*K4i^Ble0m?4o;8#dTMMS)vc*?yCMHbv{`uWe21gX}(!9N(923(R`;Qv89 z@4qLFl9qiC4Hr?5RY((!GAKSQ0}~gQXytBM4Hi;O0P^>_YyP>v@yMQCBqu$x`E%hz z&u$*Gf_@z(U-REH(ka#NBAvh96Nt&l`2n#OF%Ry_)|cm9^hYjA-Ei5XWFfsdC5&;) z1=n(Ck}lWVcQJmOa$fs7pc&*h^j0=u8#zCC2dvs**Wtql4q#TN?WbgV4Rink8bqy) zn!%rHE!t93Q|p~Px$W;3AOyybcFCGNkP%;9gtex>e}-BAxbM#8iOLqyUiPz1$+rNf z!SDoa$FKY1Q77D=T$(a!iLag>YK)Q8?mV#4(KxIxCcg8~aEBR~ zo(FQr7JhEE8_*_ZHJehhvOh}v7e`icS_cZ5-P#L5I!2I7VpvNH(N(Vu;W@96J+j2Cz8 z6v2e8ly_lKy@c)U7tZl(7PhuAK*2n`yij915|5la<%XLgN%_n_d5DPMl9VK!OPIax zsq7~!OgL08424jwABM7$s(GSJ^CfabXf}p>&PJ>(k3X%2b?MS6EiLxO#{ElQZZPSu zuIR%laWgN}`z=}3|LvEWb4}!Iulf*Nw_GRY+H&ohnpGR|h-yw)9&fc?^&JYJO1wt9 zLrE#k$1AV%cV=*tU0KfJ@arq_b4jYV@AnVr)eSs-w7!Z>y&GZC&R~(0HLf|u zrEpf;GGB9Hv8z51L*tr(R9gS`LbYA0r2iAvwVXZiTXSkku>Yc-_U%iHqc-PFItj}! zML4s}wQu)XDQeDo2>#2)udF$I2O%4RpD^3~TRh@%@@Ev?Vmf^mUX8!-nj3pF$0JhT zHQP9y`dlPO>ZNm(x!8wVt(uzfk8zSIhYo7&E%(g+Pp9Euop#Cz7eXR$b>GLw zhl->Cx~#0Md@H(`LL|T%>-qE0_SR+4tKSq{G9PKRIs5beLx;}Afl%?p<9QqDExu;Q z{TXjeGWKn7=}mlQU7z#nawM~;1pWE@u7Ysc8j7(^{O%-4f4_KU&3p7%ax@il`BI~~ zj>hoUV_$iB+0EOj#nx8pXzW?;M2q~Ik{<^o##16<&z)Fy8HhV$Mn6YpF=y*t)Q};i z6t+c?McR(9bj7o$#}?jPuz;7moH<>s^uTg%OmxQ%4e?U`4j;FkKTtHy{<=HdB3WKO z`f_PNtm&1GcHAxv8|CQevx~1Aa5pC+y#rDq9e{h%I1Eq~!v(IN!YX+HShGSkoE+{z78pR|3owD87 zKf7m_FG-N_cF*M;)#C~ z1_L``dF@!i@16!P@Gx6)ESFl?m}V|gkQm1s%Rk`bE&pij;or`ud7|o!=UiHEHIa&V zc;c7-Xf@R)HqNEq7-oX~iI1j)juqTarhG$pYDYJGHE9Ut{RM@kGf^)bXSHG^ol8Bb z4C3pMLugtu(frUv&R=K}A<`xBPF3$n>G-4mtToorjVs^ImkvpEwv_oPT~i?}nmrZk3ot zoiIIN?=ju`by; zdmc?GQ`b^N^0Aq2G^T`k*_7!C_5^*vfTc(lf}3tlX9yuZFSW%BZ=KpqLjl)US%)#2NX*})HA zwZWmKzeL*Mfw6mG&TqldhJ=cNrvvda!Ad^Mu2Y>MI!YF;`JxY*gcB|OB4@{>%e!)4 zE09DrDz6!ic~K}EO8XRl-HIMoapAD0_I+m2UEd`%2Rq~r9FUNZtSu`yYUMW6Q@^>} zs}WU8>7Qf|o_9*C$1$zLsnXI99d}BEgOA}(lDjN%Hib}wwqRsTqY>6wD2E@*|EaYE z%U18z&!yxI!+hVGG@6DPFmtQ7n8e69xY0)d5)plr7UucT| zJ>XJw>Bq=HdD&UAgUgfB`^P8rZAJv`W~Cg*lyqg5OjYN~F6O-GiRHIjs_&KV95R5I zjoHzX|LAJgO5WVQ<$=6K!0}Q+5iegRAFW?hgrCd)#Z0+Nww2fV2j)Mip0T7a_+ldY z$!pbTD9$Yrrmu6+QXjm_UMSH=X<=@h(+WUt1AuO zjG6SLU;U+Xb-TsnzW(BswABoxjC5pU@tO-tJ9dV1U-I_)2X^nAeG|UmtMY^Izh9dD zd^+`pe!?}6gMC|dq64~vHo-Egu{rHv&Yc%eKnK`C!A=yo-0x1Y{<0(abAfEohJjie z`U?V+-bhQ^g6kNv(cP@kB|+yDOOE>}4P{7vwUvT=1ala^a$=ngf)KJ3CVFs@LXDgD z`0=)&;9y|^0d+DKdS!NuIm-BDPHI)xc2!$yjhm$da~C$&_{Vi}>e{?mwiC&J`P~0C zIrL)quvd3g7P0$~w@51j<(ggfhhw+ z^MqXtwBcI`glAg=d@o(K+C?w4x(s7pY8M1%`YUA3tHjiplatfkHYPWcw6vt*a_^#p zUzKkbYw4TtJ9j9`N&Y|JHb=~&K2Y-WO|z8roT{}1&;tRwoeZ_liQ3BW|bLR))?JL&v%o!-oHVh%CoJD$2qd?LcM zaF5kh!o(QvTTC2unvGa@DaUV8glLVR;_$D;u;ZD8`$A8(uP#6XUH$RItI-=;BVuBl zB57j|Ps#nTlFxxi>7nzfWyDK>zH5P)%)w23pXb3KxFVbJYoJ?bWk!iiTxxO-o#^HlyJKIFWIv zzeFlgaFHAsX*K|5I_tQn1&VR_C?&&@ClQL-j9N01d-}|XmP~wn*O~Ye&o5pl+~X== z^YmNDx#v^q5+2y4{6bQ@4UR1yX(47sq0L&zA2iNBb6@=+*SrO$TKZ^tWqgX8%Sv&b z!F0V0taP;~sF;<;nS6;ggLM7K_5FP44>2sF_g_3GREY1rKYaM$`Sb1}Dd*0T8qt?m zJQa?BjsBKrOW4i%R}MiKQ#W*u$iR$96T$F zm#c@G+SN{v0WQLkj5e`F-m@AAR+XM=5mr`3{uf6WA5P# zu-gjj-ERd+Un2fROsPTi7*|qKQb-S6=K@@&i3#wk4k>NA;NIs{x-8-+G69VYK_B<& zo{nM~MgUaNeWByg#A&YSu(t`t;rG14h%% zbvUdp7%z7Zq-+h>K5V+fF84S6QvcU-%i%7|jWiK_e2E2JV%0l+?iRTHfkIla0MCpu zhWW4k;Mod)vYEo7`fo62~4JN5{M---RUTWB1oI4@ucy26ZLa9{HXZHAK6?iqB@H)CM z6`zz-7GCxDE(tB2sM|bIk9i#hmq!^5zs>`8AB~6QE=)=ybPPoy|5JEVN z!X3m=oT3GyVeu~q4r%*D$iP@)xc^!Y8XH_sJq=J47^%{8QA?xI(Ibm=1qgum1V7& z1u_cCROktUk_nY5{yaOEU9aeW@Q&a$CgLL1Rhn`=4^UsKH_1sNxR~aj>A1uiIsf8` zr9UMUsa%!v_8OJt~{eN98n;4r6rKOJ{tWF!ARQYQ{}^tf_VMsHlYF`#Zb` zvu}uB2WxnZhE4ypCwpmy^?#FXqz2u!ap6`B91td4s85nTqxP8uU$}@{aWMBA5f_I7 zo`;BTUv&RVg_mAPk?LGJW7PQ~AsiR_P@xyFRNUzk@#CWQZF9S+=Vxk)3U7Trp#LB~ zzH!UePz$HZFeRgV1zoLoUk66+@qBS%xcM%>g^X{>N6!7}Ko(V|;_pahp6uxCL~F7_ zgNAJNT5yy}0Y8iuqAk}^v4{;e_K}g&U)0sr@in~>pY?Ct<+SqSerUQ71g{vXB#cwg z_4*(ByZG{P;fe8nD>0y=K#M@veF(hIz1qI#AT0c8|EFo^wvBt=4d4aH( zkBVEx{NWC93R3r;D_5@EI3hfj7+otwd_=PyqLyM7C0DdReCYqw5$@sF^+|UsG3skx z{i(8A`$m44qw>?U`Ut|s1Wtds#W$aum9={xd2p%EBV)Lsx5YS#Nq9xcYmS@6Fm9E8 zNjk9or$i?c!vTW|&RU05!PKN5>(|rz6sLNM{_)FdXGrST^VjwGp6<=GxpJpY^&aDCE)_n$@Ef-xX-VBSk%zCw^imG7VOAe$3Vz&{k6uy;l~j44KPg{j}-n)+GJ3JHYvxd|@?>;m?E* zlhPbPD{?~A=g*)07CkjU;mO@>cO5sco$sq*N~=6ua+Bunw4|EWvO;SXg;P68 zKv7Cs4vtyk6598JKhb`K7|U-yKqsJQqkc&#H0TQ=W49eXbJ(}%LH+7_GhXX{)j zq_kgM{{Y3cq$Vu~yi!znOPGS#>k{*4Mn9yRFoks?G}FNEEt`FgtaXiMk5*H|Z;d zZDPSy58XL_k^fnW=pzDwDJeU*UbW$ms_hvay#;Hy!(1CTZ_d|~h@nw6zt*jLH~O9J zZH`nw$1ZN4xpAs1fuCmv?J_-*l}_{W-r6)BY5bNpDVp`?P@#dYh)538%e!3luNU{|hyF}3p`w2uWj z%WoARm9Nrq?%!x$#AlPdf7WDXRx8T?U1-3{^1C{fojbQ}BYk;!)Gf2jhb$&@AxXzP z_RGtQDf7#tgB#r4Ne*p$M-}w-{VS9wE5h<5yT`?SQ`#Vl-0kvIHh6Y4z@K!ae6G6z za5OuMrS-?&cDe4f6o015tnoL$E_?N@_l@`I<7ghE;b(K0ca-_zS-60!%agr>P zj;CsrqtE^PaWC^f$5O{W+Pf~hx}H1d-;xpVM&r}@p(k3Q#gqdADQZM>- z(PdyD^r1z5(ACGXirhZMu7Q&NdL*fWK4^?q<|n>hTqH8j4BPd?h;lJjROzgqI=RBEr!>x8fyZ%Kc3m>n4}Pk%-}?0m7zFr&qO2BcIA>Cy>qZth{wqB9+@-12A3 zz2>qPpqMb8gLGxw7rdc;zG>Dfc?Z;C7xWN0&t zrVZhUY+8z;UkqcFj{MpOLen$sn5k(x)-tCBzPrmx`S zKi$V`ra)RrNwrt;qxIO zskHi+kMUJ(CymVJsD7b1H8C@D(8Pol7wx@RfI@-}#c(jh0AQKBhlg*xd7}aW#*m0` zI{bYou`5$s>@&ZY(*bg%|oZf^ALCE6Km6@}vT|!R=}uKThbU-=OkAnz@Rr|F+vbJo)0v0AVzdC>a;c+gm zfU%BS9L{r2k4re+``J1irTxG&Y@%T$O%EG(v_9K@Izj!^&jzL5Ti-I~S=lXBmwlJ? z>T0H^n^zW3PM>|2I6wN`%5a@(LuK=@yX9{Ch?SUtV^58I+oxrm=RU#kC2k2fviQx_sq)J^RV863@K*IGjlq#UZmo$NcxX-Be0ed9s`r z8R^n%Q6^GWT-@4~^TJ>sb@Jz=P4YFT1qB6niBQTLox78|7$wy#>ltNyrCm6FRghIKeEqgpo|}(P zV!w=x41B*&K@TpU_i+S*g=^Swf{Yt+VeK|S!3~gNs+gLxFU*YCeqy~)#0fRSTUBjF-NXpq_HckuT zzY83IOIBAFaW3a^vnaWno14PY1aWQ1N>G>YBCUOXvBto;le#DjE`M*c+cQqITTkUQPLFoq{AbvhD8+UhBjh(!g ze9u^(%i-l?yUdxgL&CxiK@_35G@<$y&N)8ACva306gc5NR&4nyC%1&*Sown+7n25Z zCB1jbe|58edGT}meEo+HuX9gTl1KAeD?dm@<0Xl`u%!%$m`Zp^-4nA|P-?6Jc^4x{Xl%3vNLvF51)?VLVPZ1ld7Mr3&@o?{T zUp+l#^H|wCH^fqB9uG9O^kI_J)Y?O)Y-1yE4N}elTgTkC6I)$3 zP>`$9aC2Ai_>sJ3No_gC4Run}3Q|%Tw96o|bK>HngHmIzyH7rKw=1KX_T$DAa_>QR z?WKBoY@L_|`S0Iv8>r}S@C%U?W}`jAj;g7jT07qNKAfJIo<4o$QyoN~F1T?pt#TV5 z-nY&?Kr)qA_Nnm4_#yh!Sk_f@v zhN>_gdb4Aq*2^`*$_LjoY^8{Z=vH4{nLl60di7lA&3nOgr!X)`@;^(;a~R)u;q=U0 zf9xphX0qvDLc=>cL#Z@(OcazG&P~ozUjD_Pm3A$dVi%Ls^mv#~VBqBMY90!bBEGLV z)o!wiri%klFMZfj7q^ckltuj7=P;V0SD{JO2?+sFC$?z0T^ua7dUa<7dd_f*9vf>0;nE+RdDx`0yR-1%m$rP_|tvQ zU1@OHCQi=eJ8lS>gz<7W?n_wW(n39Z%+N3hw-3_A`z{D!j3o%e6rCdFZewuKg;=pY z$1FN3ifZT1okTW*mM&Vs<3jK7VC$0?FBl1T{$h1&cz1k6c9nZZi8SFtc}j9(a`J$O zha9}1lIVgk+DanY!?Nf<>-AS7HVVfuaqD<-9}%n+nHU9K_!l{W*GPA;n;6=d@C|0F~h`CiJ$u;b|a1bv@*LCIl?ONFPhRJgXI( z#7j^LN2w&~vnic4k4>dA88L0Iso4lRp$epu%fhtX5~@U;4;CWZW7>oYKBnmVL&p zwSRDmbQCbU(|if`Ni8{cJxGdUWauPwN@v+2 zS@G+|$*SI}qwu6)B}*tQ#bDRuT=^;&k`r!w9hkt>{trmU=F3r&78Vy$u!=l}dZ1LgDa;q#_RxC^7Qvy&ShG!+<;N}>x!t#raZpS{i5lGtuNWBqgm*-o;q zzayGY4Ve^Q5-M9+aKOBcve>{>4(eL(m*>7-QG!wC#N6B=NHb&O;y7dw5>vI@W<|P( zz7F{*am&X@tm8mmUl2fWeATD9 zxf3f}QWl8(>s!NE`SJCq<13Mo{`t};&#dQE5VY@i{KjuTG<2%*;`J~Yk*b%8d*UC) z#d%os^5vb~=}J;lD7Y&$i_x z6sVA8T7Y8WHb4)%!Wl#n-QMeU~LgOCn(p;Da0Sykw0l|kLoq-2!UHQqjHGSNM@>qU7K+}o#Ko`SSBcYr**x3dvZ4>z6lM7A zkIzT%0B3>Gu=AHLsg((B3cW{%wkvQ%g#n#2qh`_;92qc}k@Ae9IAnv(X%L^-NAAAjak7!WTWOVyl7`{Kn{V22!H zZ_9T|8dBK`d$bI_(N=-(*GXD?mi$%&4TI?p$H{H=TOP4=nI6>R#7!Jf>5_Oz^KAa! zO#;s{2k4aycrwstO&)ZKZ8o@Mo=eJ8{If2HELE;x4@5xTTiJv@TEAI$vRA!h@<`^> zr{sid-zXeF9L_V_VrDbfsY5<)786_s1_sf))cE*9D~LAXfWW=iO-=XEJ77~_kd%9@ zy=c3upqiQ*C5OxS&?-1DElv&Td{g4u8j!CPqu*RkaT4`5+WR|^kwK`%PGNrhu$Gpj z_rQmH`F@Y2sAWAFQ_~xr=;@ei-CED|s_*I5dP4e^PjT+tHeu0&1K$e>j0FMX;vQ#C$ zPZbg5E^rPC5*??kKXEPakF!@XdeQ^B+~n2etmY?p@MH|aQ%g%z4bhUebkLJe!X@qp z{^#Ug{Y|6%V_d*1w*X;dwWmibD-*`{v}Tgs7p3TLV9BF@b!qeHv1HO5x2~v&NJ&@e zug-vPda<;HhPsTEuV(G* zr+m>+A0)0O6p@i%^|jQiKzp^SnLm5P{6<}LGe4jG^|ixH;ydtV%gCmDfd`4*NM$j^ z0S|>^2>tuM3qODUJj_+&gAIHB^5v?8FvVSK4|EPD1KjwbNs0R&Snq@asVJFvvk7t2 zb^KD_jj;xd_U-&5HT-bTDjG9p%X8;k%?z1z^)IYe|Nea;uEX4cpOk<0wuSCV-Br8S zuVsyU2l7Y~FP+|%WSNcJE+SJU<6M_()u-wG^1_+GUZagV>+h} zUXr?hBtAP|R8Edf*x{DNKvDAnOFy4+d`yQb;>eIOP`|;Q;k_tS2F)!kC?p=3iv<@H z$Y{sP@~$m3;M*TpaC4+47bU418;d{=pIN=zn5N3h$JeMOaPJhr?ei`!uUD75R-dG% zZUBK(v_fTu{2m)emb7KQ!OuUI6ZJH^TZLWI+s3EPrRx=zcAuZvmU~(B)04_&u?3qt zjH;Z1FUThi3;BH%NJDDstU8~#UL>Wy(iNdqdXVoN9l(g34;e9L=_t^~73?MXbv~zQDvGXob zQ)9kK4K9Ry+m@^TCS5=orY2`+`)Tl_=dwsZl{ig$s7Wu+h`O}WAl;ICd3hZH$8?>Sh(!V5G7Cjg8v`)J25l zPj9#ru}AD{k6^wD=bt4>-eB^^)k2TB0%HU-0n(r#P?q+|< z&e@sXz-X^n>ov7Qq5My(sCYtHNU1Gz4e!2wWdq99v_I-(scpg;L_~RdMInF~i;FV* zefjt{S()@1p;eu+7ufK@8~>3FBvRwY?$?22B$RC7vRj^&4C3nV9$haXX+FNE%#heH zLfTvjYnIKdtRXl@&v+Hg`AfLHXk;&KD0JN<>%$(cWa-9`&z|bsUvi5!*E2ub)%ZB| zXLHVjjU*Bs9bNA6LIw%tj1wo-)YjdY8(aV5$E9joYBC8)J?~-0g-avX^hov} zU*#Py)O~AoadsQ&=fDV00|OhI)e)Z@FHTNQ23Qp3IS{`b8al#NR#?bNj7E;a4`J#1 zm5^_o1QL&09=FNK%F9a}IBNr{1m49~lNa&m1Rv}ic5C&1YDo@8xEiT!H!K1*deK?h z-`rzebrLI9=>10mb_F}WswSZAZ?xOzx1ykalQjV1`&5HnS&q9RH$sbn4!ja}`n2ph zMK6+3YKL!(V%-6n7XH+x513m-n@093%h%-ou~jQLDd0PBGgR=TkRF^hU4N$X(OO7vT2 z{`Om-Ph6H4T+K^84Tp72rO|kOTuW3<<$it!hK4;z;^CZ1d-iNb3O)$9VTYXJ=FNA7 zFh)iPV>n);Op|~pOJ6p~p$dVq<#Aa8g;G@H##rVdlreF6gFxpXo4xb!VJI+3X1VX# z(s7$M>s_>>MR+R49muMzd(W}rN~jRV|(49MXY?St5 znTnSGH2A4oS@B_Jim28jA|s`}Xb@PUWnK8%J32nYkC*^M&<(tJfAvAXIg#`+V~uF= zG&8e~uOTSpeeB=o1WClYLx&E5wW}i#_QE>B&6|%iCh1d?WIF=jF?n3q7Wi`K$Lv;rhNFhz0M+(;!|36ZxZ9=iim) zNK*Sw!}6{vv%2*1D0^d56IMCXX1^G+?nRFMo>JI!=W+Vbk!XfH zsGFIYwPS?uYnX#JL~I8R9$ar?7aDSygW$argOH-~o;^E&9zbp_lxriHO@hOc8QJ3p z2?uT%;=m=u=URJFm1vxTSm{ftmka`G_xN}iSaRu+NwZ#>H;9QUSw>Uru_39~oiKYOjFOvZC)Gy4QL*ByA@a1`sJxh-1Xu{(kSvsvYXpw>U7*R_<5+_AbNbe33Pl zpIJvo$GqH^3n+1KYp8NxAs8HgcWt7rn|Mt!@2|yRS5|DP= zxoU@7)G8!hK}K1Oi4!E{zup6dd~m<|&Jm*1-!b$#feQNvbHjDMnE*PrW8^rGXz=TS zmAb>BZW8W)*5GQ~mtcf_|1E;LVcd+9!NmVtA@R-yWix=9 zI$zvc_h&tJPbH#my)RS?d|J8aKf(Q+LLIST<3<%byR;8sr)+K8hV2>1fADqy5$S=e zhkh^~u@$kRr-y$0AjQz^)>HX=0P;MxUKLQJB2_$eCO>dMIYry*SD|dvEk|-Rt4PqY z&^WC6 z!>!Cbp11AZhq}w?^7yoH-)$JK`HHxI-wHyH_x1JCU%zCzUjK|5fkc8BYljOzz)q^Q zgO^~)zd_ubBq144zG66hc=%^;?;7`T+C@sIn@9fA`*YQ}M3p7myy(qBAo8iJdv^d; zE&@BM|4L8-u&&$lq42>D^%nbljVcEr6dPnDSxh&t?Q2eAx8*Za(UVsOQ(V5R9Ise$ zh-YZ_?gxJ+VgI8KA?dGZWgcwVbXc4DySN28vv}2wdG}xS9|FF80Hi^B>Da`5D35>e zV_ZdZnt#If?j9f%8A>lB7`N?aIDeU0+|O^DkVZilu57<$yFpmEcg~T}mY`r#@$e}6 z=g{Col5%0ClE<|j5fRA~=_UH>ZDPL%%Vd+s{3tzkZP(x3ml+ z9tC7&i5gGx@}&nL96oKe0-yp49BPsPy#)V(M-(s5eIAW^u(4!@IoDebmY@~kI{>Fx zeFvYgV~6bG7wZj_x@9igKfNk2Nj}ykzr2Y##8E@TKb|M|QkqjaEr!vLVStU*g|3LLcl7-@pSi{Y1+IebieyfX?c{g+P({j($GS|h*-Kz~nAe4TL z96XOUmw}P-D%ebKTwHgQy#YE1l4+kr0?6vU9`)+j5v|(8B$N(75c~(?S-Nx{tm9Oq zDVe0)eKGlR`LPs#Nn8Jqaqk+!6!c3SD@ffVIlTKWZP>T6>>T@hqT-W|;$}%28K-q) zq90r=PbbQXk#2HQd(XukmbYJsjH1A;%D3-6FfHx+`N6-e_#o}AwwkkBuEM;a0+x6D zx3A%icO%W@K6|$3yTn)Y6$jA{MzJ95O58!<0Di{ZPq$if8-Gy9|B0`! z|1DZw(~XQwL$kCSQdc@ZZyxNlc-1x5!KX1_Ct1AsvT5q3rfP4#1eg3JWw2g_1nqb{ z79{%*R0=k1UT{^#Wq|uoN1wSri7LVrRh_Um+?U;#XWAyi{FW$y+!4i1LN&-+BJU8) zA+Tj!3z5DSWjFlY_xbmH56C8Eu%YjSPh+zp$Q3rT}FI z%uqIi-e;7V_&s$n)4B9aqcu)c{(2yc^Dxi61GFAN@o_~3m7CermISoMfky-?0m%?B zM(V*-TXte=M7WNSY;Bd()~!tOY}-jSKlZBX)*eT8kVh3}&Zn$iT`q(O37!6@CxI?| z6#C)3ups%uIKIQsA=M;ik)bx~qu9v(ji0;vu@-$LT{s`IXPOcxSJ9Z5 znLRvx1a0oib40+esZjyzqJEq6ItV9fxIO0N`JvoGNxgwIj|*B{etp>kVE+xl=+1Eq zygZFGh7$CBQ~Sqc`*YP4#ao$?{G4JL$N{ojSJUO^q$<~>A7(aDw?LqQ98%N%HIac{c zyb=;`qZdwyh5)nwdBG#2@DqVW*t}WSJ=YbGaOj}pkDD~3$EUF=LRl!57eix$w6#$i zMIb>zL8NrtavySt+hZN@01TQm z>LX}yV6PlPZ5)>$R9jQSuyrd1w6Vm`A?c`RE7O=6YNBFdV$w}BAZjIkxiz%He=O)V z=ANc!9geb4iV_(U0B}8_UpVdA+GpmqMnweEvVQ{6kbU(mfzSo)3 zbBcS0@8lw+m5EOi|nyYvIxfLp^#VPJYIB zbUW9p%Vc2+d>@BKa^C%s?k{8!3z^Ln>5g;r|9QImHPySoBSS;C#t&hu7(58Zg<$o* zsThRmhPl-nAbSX$H{2k~18)gHKqa9HPVod2nc=|xV1e_cGZnX=`O;A0sr>J5KX~*fkMAe$ocm~jx={-7tibbrWcC~e|3&N@1N8R9|>Y7N@499^Y$VdEwKYURc5% zX7=>FK@}#I^En}4c`@L70Y@8dyM0d%5T~UmLU0>5$@Jwpwoacp3lX!IG@u(i7hxB3 z5{jr~`rQKR3U{QOxfxhDh?sB4w4{$!5HgZF`*e+7fc00`&u3`pxYo4T?I2-Cj?iiP zp3-d!ptx3g&as{&m<MYsd~&DtgMY<(CU? zc5T@$Gt0w00|RLE%6wkUQXb4IT4!WLdpjyRIs_y!u!cdWy7vr{ykR^!<&RFOR+oAo zZ&u4*KCgG=X7v6vk1roS5f3l49DMM1Gq9{pWSBO+7qGU+OEMp~< zsX}EInJXeB^Vqk}n|6CY@AJOL_kG9l{PApZ-`8~xzj3Ygo6q%PRJe5^2ODK1;&PfA zrH*vfvV#PSFme&vKHliun?RFzQ<~X=b*$VjmK&G6rA+DOJeASG$@P?EZM(na`2GbZ z{D+@+rZ3=Ioz2O~BV)Dzyo{Xl#8CEV&inw}|Z#2BPva{dpScBo|3*ccm%u*C};ih`&JS>_7eyv`^oi9XkD!7YHB z-tCJF6%e_Dx%f`ydsyJZ}RE&a@0T6q(Z27$uk=}D@WQgUGrd*n4;4f9{OSIBN`XHOwNAZCg_EJ(wlJVHRh)nt2m*q zr>LXD`G87d$z>XTHf3KS-27%$n&q(n@37zV24!a7djnLm+?XAzxPpR8CsY=gTn5(N zg6#&k@srKD@HdFvBBo!SR7|41WAM3T80$F7cmu*rmYt{$pl}ye0Zx{?r{}zVS8F$# zntJd?Z(OqX%$jOn4y`CPVfulrn~ZwNvu?d1xLYLb_l9S!R4~jRt3LE~3nSt*fAb2L zkV_mnyfETA@f;~Eo9#aIoa+-zI+y5hIBRuX&!ik+^1=$PA-I4$mtI`NZ?QB(`oe|g zd#Cb$niPs!Pt{qPNN-o9etbOMdd|s74#AGa&EqF%i}m>M<#Xr}cW5=ZpZ)7{tl#A^ z$-Re=1oPgJIW>#g*xTI-#6)P3Kt+7R^9vcO99#QKCL;mB3WL;Y=ApJ*GHXQ&WOh_8 zJNY4aOYZlNx$%btNA(W!x9)&a^HP-FuGYti>{hYnqnV!lXV0eZF+PoQIb2><=%f@E zqtu-{cb0G2Qg14rzIxu(Oxb9k+Ywv3!jr$gXBztM`gb?0ER_^%c-rn9R4Eq`-ciX6 z=yTtA{E&AM$>QkHdfz&^Keb`}eEne82oNvqSa55FU(D3&k`l=g*Dz>N!M%3BLP3Gq zOYiZbw1o>fD0z|PmBkH*D|PuKRYgmsZNqh^zLzYqo$~I6lQmtN<~)41N7Rfu@-)1m zr$uX+o3WB}U7S{)<~}VMFq?04mK}V~MHw9Km3i~!^c6R^PK9iCDUYs4I`l0qxl@xS z<_9!2+lpe2fe}V4galb3mQ|<0Wa^@~$rrrnHRR@2JYx)~G*A3cc;wdQwb~jX>o~5E z__(djb%{iN$*iM;-`5;rv!C;nWOIS}waKlKL0j|O%ugM9p`T@eVawy~z>LMZefnfT zs#w3^LAC7LSwLbu_`4<>jlaS1w>E>%}`Mx@52?iJvRo1Z_eR;4V;_@0O6 zCQU`Ao6b!-=B3KAbs|a4T|mN&nIip~InlEHKDZDqs49m`$7pde+JC4qY|4y>41R8J zj@Pjx2?p%N-v5&{VrvUd*-Vh=c<(QVo>d zE9%!Hk;3$&4()M9l$o^-{jAWeQ;3T4>Jk?+S2 zMJ6S&d3(Iwv_6N~X~0KU+-SnVk5!@d$l-jl_`;}3zxJgiq&uWKUxl(j!I?MXKvFuV z1Y=uU!M^J&c2H85Qd52I4jcQga;f}8h!}eAl$Lt<(36$-Wauvpd3-VKfdspfmX^=S zzwBSm65pZC(cHeuf0IPP#?{ZyUNh;JF!S)*VcAv4Km2NT*@HW?v-)qWcKX$PSy9y^ z^RBfO?zKf9>Tnw{gBGLMBrS5F>IHln&+OT=TZO+sH~Nu!?P&3O2T>uF*uzncsJLiZ zW}FPx6_k`eEN2ktx59tcDQ0?$`CS)Y%dA;5ckP{B=j4tbZ!VQ7&_!SOo{aKf+fAE~ zsdJN`z0d$(G2b>ols$!8%Kp}H&*I{X_guWa7ocTs3$&cy^_?oFk2CXEgW_?Z=ITpe z6PfkR_CL~I4*jpFhJu0up}sU#W8++4kq0_gnl)5O8o8*ZntysB^1yEQ9!^bz#tYln zU82nyC}4l?p=>}$p-}qFkd=;NTQXNg#iMuU4TkJ-7Sz(a`*=j;`R6QHtOgj+AeZB* zj?A($!R0}BR+_2I%8gKK-FCKMo>t;x@kuldwu^{~6=2?$4RXeZL+{_bQ9^2Ysr1d$ zrfT+F4a&olBQa>L2;G(~58F`Cd9s@Hh)rZ=O#-`Wb^A6PCn@7zt>qT;18!5wZXQfq z(Hy(Pg+`0e$B%R}ry5Tc7Z)pASgieP(0d8{^0y{&dh{jtm<}9RJaMWqe~Z+!)Qk+S zoD7YXQU{z6&-KNa_ZTF1de61P1VK5pxhvgl0f^M%#Sk3U2OzhcmeM&@KxE!xn{E8|(WXWrH51;$6|Z~M<;tUOjJG$#!ZgZzz;cy8PP zriIb_VAOz}mZnyURdn{}(B(yweLH#4Gr~GCWrxh@4Acm7!<69-!Z|^^eRi?RA~+~l z-^xnmaLcQ0K1s#zIBQIzG@G0^RlR&kCq18Q8)LJ9_hIC5d$Z0ZPJKS4I_Fm4wbp%6 zAEFM)T%WbKU(5L3)%n}49z3WU|I*GIP!fCo26n?LjVIG_@kpnL?E*_HUz-BY@tRyv zhV0k5p5z!EZPi6(Bpa0xDR!FoxlPz^d3pAANs|FHx>bAr*Z4S1@96L$99cZJ^a%ref&Zx?8DT@w{JuHI&b?d zH`^wlaKu?Y&+W#A(T%qP*EISCCEn#0zo304>=<#i7RkWr53UpGY-u5F>-(GS=Yh#w z2p#)mD87^bM8?`t6&vtw>#1Kq=kM7h8}_M)Y3cWRcP4PixrHggaFT^Z#-tz1HW)J+I}d;zmGQzK)S- zV+Jdouuu>1jM~M|=klf4Rs5(+OCGPno`7}X{=l6*cD_(_!@CRKRIC~>OuITcIk_b0 z3J*l<-5eHpYH*{u*@$`RR)gNse8A<506r!BNwatN&C@ecds7WaOk9u7uARV??Elhf zFV~Y-T_GyUjLdAo(#j8GuevQh#XQ)0SZL0{ghdKPMPA1aDvXyTB@cZ2xG#$u867o- zej?JAEdm$5i?65=TnFhm^vE;AZ(r|N7B?5Vg8 z3AK@{Y!s?m4NI;>RzLC@d3IK;xqE@!RHkjp$X|aEW`xtl!S@p%3~HCu5g!zRkT3t6 zUZEwH6(1!vh^8!=gJpix3nM+9Z`_M2=j~mO8m-YB(@im3K!!yi zT#0=58Khhlt5PP@u6-A_2R=I@WwFBKcc}&FuY8M5QVY)qth-iqacr2YrghJr*02Wa zdb^uV8Ht%@HCYtFfl^8Bjn}v37hJPOv2I_Kr#5d;IUmWuK0KA!aN+FWJb7=~o~LI3 zI-+ZMcI`_ovOR6>>nJu@3-rE4Y0(zKv}m?%A_BSTSSy~^Z{N&Et}0nd(F%s)*|~YF zUJ4U63A3kzQyQ}X-5)y2H9g%!;XDB^ni=YrHVTY<Vz*%=XYjtA^oyYnHpKK!PbNrRa&P- zI`J_VBhX-=R1wMs0DYxwVOJf#EDjCdR#^>7jTsoMB^ zn|hBwFn1z`$7kOB`Sx{0dEb9o;!T5fJ5QX5en-C(Edmk_@8(#6vcJ@WX*30CDZWT^ z>*8Qza{=)(&+oE}u6!Z4v9X|Wb!-5TLlrJ`CRGC7z#aCrxqdbU#9K1|e5eiP9Jl=F z<8-xxM?9{sMXh+3v?HCkS^ zoB}MhwH|esu3l94;KITz%w&$+^^ z*!=0K&6zXG(3*+Xyc@FKf0?d6J3*iDwz7T^f`I)lT9d8OR4ry!SoqF&u^A?^wV-ZcU^a$Qh4?%X{F zhb^l2gaP&Yowl~(-@ktkT9rF@VZL(YmUEtg=hCb{txhOjJWnh8RUzYQvDu!U%skn! zy(3`#rSj6xipe==$MEc&jDy^Z@`~;9+e@E>jrm@7;~OqoS|HD;sj2l=rJqNhr#8pX zz)~g>t49Nk^^_TKV;ov52pcM3!n_@*jNG?+(HvIRqVVlrJx#Ua0MTr~tX;XOkv3v< zAH>O9-WXVms0igD-raHjNXvwU88L!n&iwhxR#sMR52}Id+z2n@x948A-qpdfnqN?3 zklrjzZl4$`szmr`1l5dd7+nKiL|9f9AI>_!g|5IP1Jgj-63~b?#t>fJBjYXm&LpKX zK5#x#DfqqduxQBRWU~cHR!cTGXRjVEd*pQ@WaFb}*@pC(+;SOF59k>O-iJTF7;k;- z*bfKCW2Tg*936(~sj^`vXO1DMF)dlWj#MYZBa05}rkz{(i48` z0a!3jKkaSkF`BFO^|h8vO0wUvI#2S<6%~({lqs-=WT!`mn^L; zUf*@{uv`2Xq6iuU%n?4EU7$qnM?QA9d=<_ z$}shh>JP~%RP0Z5yb6^jT{~3!0rt+rUTNv+U0bQ{e^-24@d5PF_MhInV$~`p@JL6h zJ_PyPxubYSjE=NkJh2I2PS|4g$BBzUMN2Ar=m*LZworM9mxecvdf@o>b28EapV93* zceX+Az7S(1Bg7;G{jNnE(lB%u^S#2zBMX~kgo@ISJx_~`32Q7CwzAP0Ett|N%2s9q#L?|)-z!oJBCJ80n+OV=p$<00`@(J zK!E{zBY5cLWu`nInK%>-M150IBuJeQGtg%doFpc|Ma(s=lT1$SICP4RRe>2y4__Pp z%_oMRJ7{G|HqoPQMY+r!_SaUhX{I=<;^+`Pvl~$v2@uds3 zZ0)W}Ni>VlNNOH~4&!aNp_xNxY6AWZ=67tvDkWpc4J0(^MRej^;u5xfvfh32WI|(< zs5~N}OOuYEMs2rzla5K=%cZ0i<1i7lNi{73{38a#d(Q=OLP9*%@?dcJTH&z$o^{vI z$l;Zyyf~L+CqCbTrD6Loo`%{8KED6vIWUgFjgDPnS(w^9Qr|S?meF+Sp4v7F*tyLz zdgRSfJYqaKQtd_DK%FPsf7_P_xJty0Bu=tB3g?NYe61iN>+ zlZ)i4#doF+NejfNaxu005lfU7V(Vn%JVp>i&BY!jgza5TY@6tjth=nAIkaMFSn0q6 zyLU6gAfr?2N=A!oG_l1+N4vzv#=e`adiwMeCHwm@Zs?mb$4g(`=8E25zgz<@ot-9P zjUC|T@F{mSb(SR@-Xb^tJ!J&22o3HfSZuXp7`aORlMr)>&`+lg&wh}nFwsmp=Bx>D zpin~(J7HC-2!Jn*=n&Wd2K;p}=X$0zlyI9LEBmTAI&Ov?im3XEavL}xOKxuh_PGPo zl-|W%C+$ws=`)W*_@B0T(IPOOUq=gtq5DRd_5gt}+8 z&t}dGz$^gCyvl6G`+fsc(TXW?*LAZf|$vm<%RCzuQmPFg#;1{=M%vat9K_Lpeq&FC}|7ki<5)iARwBuOnX{DfeO%`_h5x|Q14|0{16B@ z-P9B8s27xB^cVnwsUHt85VTh;#@aQ*v7*|~0CoL&K<_Hfa395>DbUz>o0#L9gsFL>;oR3(BWH^t`?!SMZbhL($ zLj}}I6!l@PJUiS5fm5_VGyP7U-2RS;wd`Y;H0;JT~MPIqh<}j+h%J#XzlZJ z>!H~mx$md)x_}j6sp9*U;TD;B&~MZhCqAw8WNZGl5v)!!1mJf+kRt$jzs(V5Ei<)` z^sFqoh{#Bu)L(zQs;k>xIzqEZC=gr_qyx_zw-TZTm~?UR@%PrO#R6KKgz_1>6DVH< zR)&2#sHNpf#)l4Jgmf6};b2caS`%@HGWJBtuUnU(A>XlEC7y=Z6uOq1t7ui9z5xHK z0MuhGZEZn&RkQZyW|tp7Y=Vcd&X~7Z^ZXP7IY_tL*X8BqrJ0$-rbq>V>5DLhfH>`k zWD)$Kz4VU2B|Y?IQN)Qm@`4BBYYQ<=B7%j9x)mH8->>)tS2%J{u*HWdq@@+-*}5$cW{dg$4@sW!a6Y^G`4m5+y1?;u{!F)Mw zg#rp431=%!Fs5a>gv3HbafA{;!!4_twSE2S24v)mV(;ozD2AY2h2%zJpD8}y?Wx^2 z4h)skY9E3|w^4b78t8>qh0!W8y9T=J5B3hh!van2KE3Q(XTFvwVO9Yy7104uGXeKs5qg_@F3hk>8Z!RD zD#0%|9Pm(4@g=e&9{PNsD4J-DJ^X~xD*U!coHr3WUG%Gokm*RNq&i0 zOe@uxkskr_@mC|^AcFMl`X`1?iHqKW00gQbrAyYbYo$yt7hWxa6jTUeo>Y}#^2qjG zxNrfdix9pE3H} zJh$)Nn~z3sFdPiwKTs}&UT_1h4Iu452Gsw%BM|_BR?e>p&dd^QXDk&u-#!U*?rM!cG-3v6{bj*4T(N?~C^D3yWIZ~c{A zis+R=pohVrumik_a7K;e@_*-XsP_?(SqNC=1CE-8$f>@XuqzAdxfDj z$mRvNZhauZbS=7yMk;x-`oMt$cek8dmp%HGmqc$4Ki{l+#PUW+a(e}$N+7{k(U?T` z&n``Fh8f!cd+#(@bx^+^#E@Ujz}FT6gD@I_6qnsx4~2e$u_U*bOzzmscVF&22g<5M z4Fwh1xzKUQoRLdmVbONS=|0;X!Qz4y6DM*CP$=UY8X9r{RF`C=n9-}suj3bt&j1B| zHwzm4UKt>pP`MCgu}ddr5UGsOY2029JLnSrPB!)PV-yi1&{Kphg29A$Ht`6Ce=Q=? z0o;4j|dt(T~7#34AgQ@(n)OSrqq1QxBbS#Bv@u!6x8rai|bu?r#L%$Q)*770BnI_r20w z6d;Pr2J23-7YB2&tC1R@;1k{HO{0}C zEYB4<;?JkMi{HRYGV@5z!TsjIv4b}V2A&gQN46LZ4_#iJa@}_iQ~iSut-GvP(hG7;LcmEEV3M%2+UMpR15lF8sPk@6PWgq^pT(}5qRa$!RrEr6oM zYl;ZoKr2}X2|&FKayW8fJYFyR6P^hb9elh$IxbEHvu}mKxzbYqKtpwV>^}C!cO}UM z&b*g*$1;;r))m;8N@J-GSoozB5c>kRHgRCr$H*B#GEC3N{J}zV_ih!e;!^_3_T4sK@C+4gt*7z7D2B)&!JE%I&R2nl%vWFWnp!GVF8 z2sb=@iZFZ9gt8VQ=!k!}PgDNtsq9fk0$CGqp0EY|=TPUZ&I2f1K;{4(U2?$i9ZVE% z-KWWPV0=SiH~^2ky_PUOo+$pyR@9lvlUfHIP|kFvjs_5dxk65u#T~+i0~Q2rCR9up zq91vCbHwJupy1#D(WI6tL#N{(9P6f2^@t1!wsGY%V*ko+?^=nN?+0WN+Mp6%dKP(} z0g$+PWo5}9Z>XtMmeT^k_-X{CKEA$xAvPs}J@AuAQQBbspdzt%?H!s6sSKT%aN2}A z#;;L?=^#duf-?vmLf5b3t3(gj*-3&m2UYoMtD-EMmRXo{@WHBR#SF1LT*vx9QUe?& zdhU4>1 zIsSd$Q}|b5DXD`$mkZJ&hC1-?2%!YDzU6phu5|{tBp<-0AmG|w&W){Pw(a-;-SE5O zM=6gl+X1w3{B<1XH9QhCWM`t=lC#&b5EL6L`$G1#W3(9hUfaK7=uH=f;)HAo^#|w` z%vksTJc4KQ_L&X~KotZBj&NNdC6x5!iSK4fe1pZxfA6xHY#|`z#-~ob2YNrcv@Pc^ z+-+e}O_~mx^YDl^KR>@QyNU7Km^+AiwA47ERPuDet8{?YMm5(MIv0?J15*2I56N3p z!~gxmtRMT?hbqX2N9tUDH`P^4&1vRPy11c%AG-qQJ!j4wMHIeM1ai)bt-_!C&p3aE zW&T_TRxd&pmzA#ttD$AN!tV_!0>XGOA|#U<9htF~Z$RFAB00TAUqRr%ew`V<*9h7c zD6#&kw<@aU!;I4$avfDnuM+_PY%KH~XM-3|WE{P{z4Lu&-w*-)LEyykO8i7_`(q~d z{K~FJuUzQpcS{Si`#hT7-z=CP6ZqW@&>^9cbrZBL>0(>W2Xb>kiAHoIMdQj{$Jv7i z2g49a@RII(`=)EkrV#NmTF)p9c?4 z`ie`jGTh{qc_-8cc-%&sOX&eoZU+Kuq*;W3>UY?s@)440@S@D*VOD+C@X4NLpf*52 z)e5o4zR2D1tuIoQ$Rfqc%p}4aH*z2mw)p7)5zAY}Uq~~4ZuknpCst%9*sGfHOqkGT zGBMIeYACyQdFtJOh^QxuWdnfNingKo6Iecd{BEKR--d-UI6~mGL0A9fuG8PNVP-rh z&WNzbb&uCSX(`oyui#*QU>*NLPn=k7;7o-T+|1@ypuT<2$qFmDPXy|`sE#CqD^*)p zXM&N}+U~d^D%My2G#*d|%2qpi_?g{Ybfh+DnPUCHW5i#}qm1^WRHn%Y*e60p>?^>u zFuMsTtJ0HH+_Kyjx1fYHZ9rI21(6i!n32yUHk69(=r{ozB6|2)Wrz6wwTn@_CxqUG zJ9em;J|(ALFop~R_<^vA@DoT32+>Q+C&|AcHH9%E4$X8lii0W3^ywpPd@yIcamjY^ zV`bUX#Q(j)mE1vHKX5ezH*6FXEUuc42lO}oZhT~96#Z#@NS^G7LrG|G-|ng1=gM;|6x4F8p^95MkPM5wLzocjB5sl$=i8_yNbnLINn2 z1vmp9*RGKu3=VNGqFPKlNLD*)VIfPNSqK8OwMoYG$SX-A6c4!JgaiqN7mMf^^|cm2 z%FJi=F08zT7a}nNDE{62%62;ca7e-7$1-Z!vSqn^EjYw{dk#VGV51ApN&TrDZ=&o6 zfsrE5#Ui0PvEBl`i1mK_{JGJXJXayXE+KO+1E2#jaEB0+6xd7uL2KY!L!R;2zwG+x zj_!MZ8`GdQo3Xa9h>P-Z{hy(t_b!eHFiU9LBh6yg!Y)beLCQ?(;3%i==njCk6Y#wc zLql_S`{1kCzs;C>09ts{no#`4>1XO^*sfygN;@JJ5eRl^Vq_>;5{`TH{+J!zIhYwt zuu zKCeG!DA+x~qW;AN8FIoyWw*hI&iT7JB&Z&6|NeE%Z$U854l@U$zA)!HgXnW+I}Rgq zWrJSs)osRws@SRglCxkxL9jq0RvxuYtk{B{5d1OVt0xE!4k~drW^(v$se3bx4@d*N zLio`2or{m}I;?do0?*B?u=8mLXjVK>6`dCFV>Z}z>;(mTHfUI5HP7GC6G9 z{<9lnSF!t%b{L4yBu3F0CoFY%r)lI#_!vp59a^ug>YUsX;rwd~ka)h6pEAoz%J8iQ zP6kBXLPdDbeGe4JpbEu%hmXMp;Wt<+VbDIv$G>7fAR;PSX^u(FQX|(K|D*DXv(NqS z;uvL;b_KZ%Dp|(psFJTkVHYL0<+iB^26t|GOb=UPp|SPX#FNVk~-tuG-#1R|lCgVpU=v|kh4 zBrKrAOB7?wT0Vb{sE9nJV|;O7uttVlIiIJ4-#;#doWe`k)2{A=)4*NWx@D+t0*Qnm zt8~#yeBUcl81UF_`k(!V6svo{xu8ghxZC~63&$mr#Ja5MxHpN3uMBr~9s4kabP)rQ zHg|)YsByy^ZXsHH1~ZGo#}ln_%=w`$OM3k#6`l98L>2qweN(4!lm7b zD!s>UxT{0$!mQbGdGv&d4gQE-I#Btwz;*V|+Ps3wNXz6)ce%@?324i&IEinse79?OxK4LKe$N zB>9Q>*YVTf4GKz2SKl}0S+_zt>%H3v*AONe-;S@Nfj23GX>5SbUz9Gvz-Kd}8OXI0 zK|IGPVH6jG8$TOqAWkDKeY?80*4DjRTE;POQTlQ;kFr~FrXldjN|>*1qXQn=uK+DR?+q89o&9UWRspbW&5sU!pL?CVELFTDx3qKtS{1+-Syo1hkV77I z!EDH=bolv@??X2yf#F83-S<~-tsm+xXulU|J~7G@Zh5dF-IczeX2-h2s7zG`(VFAm z4t`! zkhK*|vbVGksfgO%8lTBsn>zRBscfaCtgI0YFTBFo(j178(de*=CN$?)9mP7W~vF-heHEQGXjVV!MQqI{!4p@t{MlPpGsl5kg z%Z){=@<|Ul-P@MJ+}Zpx5)4+4=*8%(mz!6}#3uc{4i+^w&^HoX0mxWe;kDi~r;+;R z53gJaJUrsJ*2sGg0?#ebPu^C-u{Ty@kyXX$*q9)^4B`^~Zpc98A#G>@CId1Q)1t9# z#A_6LT0l2;+WaIO+TrF<_27J%=KKk{q>EdCyUESI*vgm~8+*5boqvH{kEp$!is@Vo zV9A-74ONi4@`o{{?6K$$1z&&dsjJho?=)VB6_i>+;KbE87G zWt(0z?vt_;C@X921+G>6AuA=U!Qs3zmi#a&x#{g-(^ZaRC|O7^0>#{Mms_{=LnC@o1XiQe^Sn|Aks#S|{oU7@X@Gv(44 z(U+j|;GG&Fl+1T%UrC7Jq{_wl90=n8h&xAmiLjHGAr3779i_(-vQTUz>EXK#3;cYv zUhF@ltl!$s&O0BRg~aT&Cuil1gx|H_XtBtq%?-ERXC*3gnNE75OJyzndxpGuU5)ed zd!L@|rg(Y#diU(Js9|8(@7&w5S|D27EUV%9_S4;g$L%tz47S?!9`X5JDfE&GJ-YL| z&zt6`-Y{0>Hp}Ryn+l#00Z~z^1Lj8_?xY_drq4Jf(<8S#{>Jd^hdaK7EIAQ_(HejR zn~YV9`CLypB@1|VxO5?81(2oc)39^#ql#McXr0BJ(MZ_48e&bSh>OWU{VlZ+6&L+CA~2;!VuxMzAlMdc}YNATu>aN&vk`Qwrn$+ zbZq{tmYl^0d`(=uD@0Aw7@wc3X-qfs)(t=X!>I4aOIP~VslOE3jsb zVA<#IqDQ8tOr%XU+*w{)H_GvqzAw@c5&6!rA+mbI8MG%573Jo48$Bxr22yuV>?Ytr7kUG}Br_eakpJ}6%di)q&Z`O)V zL-~^Z4s_EsXhz)G!H5jaiGaE!$g@lH2PS1s&Tf zl@{aSaebxVw{-#Wqr>qlxn;E{4&~TB>`4z29~-61nPjZYR7+nkw%{SPf9t@l(boC% zIEn@b7r&{hTVMJ!%GJ9X$C~f4D`8dXQI3aVn|9#Pu zbE>o0Wlr203G%Q0A--aTtH+$a$=5!)=bGpgCO(YtUik7Q{8Gb;n;yrqC51Jsvt>tT zO!?VFGp%tK3Z_^z=lsHA$Dw@7#21Vi*7YvybMhO|@-(Shn|$TXU>AhCXf8ASVZm%e z9sj#!Ob~3Kla*}^H*U?x9S}YrdH!bCg&gKlxq+uguO+dt?8AHI_v3$MG;yY}8#=rcJvEo=3w;kEvSR;hcP$I6(_%Br(CMsXySmNb zxVg?%wOt&n(s%rM6uwT3w$g=gLU5gvXfN*BbK~7iNFMo89K9f&ATk#I52 zzj!y<&&xa;|LjHd>ye|3(;lXC=MsrV$Spk`g4|MlUDe2eXXg@C&sz8zQ6G|5>|e37 zwZ-rf<~1l2?5Wnlj^g!Y&MmJxKdu@qsQGYyV&q|F*tc(wgFATTc`(DlR-&S?@CW9{ zY;NSb&hyCGEcEf#jG&%R?AN{>%23((?2$ZLKmP4BDOxRw#0V9k$Um6fDw%dkqBnfR zFj!$9`0lJn*mSS>zdmq~ljCrr>W!LQ^i#r?cB>4Qv6nyZ zeS49Q>1mpLT%V%O{|{HXQo!a(+TvjeFu%62f(~P#u`T24_~8rEVar2`UJTEM8+o68 z@j~CInVH3~_+YyZVmWb}&=Gyz6QAy?nCg&_K&$`!=&|O>Vf*@=k!=&nJiH?Queqgn ziynTw{=Cra(kG^W`_qGYgA-1-XAz9d;}r`LkT{Q6a>S+?@^8@@rsvtpx)0m-@=NhE z^}fJ7-<9D*Uxu5!?!6$mB=m6ytjskd&~Nc+naN&k#U%eo@zm6>&syet5L54-+4`;O zO89A_+HiiszG}awKdFk`ZaLfV)rZ5h9yY$Pst~Rf7B;C3RjNf9B)3fK_-kDXnBEaN zAqM`-e{C3sEPm@qUtvhm)%oG_BI=^75AHL|jf6Ucu91Jy*AB^oNrB#v`zArOydbB% z^(Ig6d}-^L1i#6Shk~}Xwf)wf@)zpHmPX}#~!iRr`*qErM}^G#K_T0 zZ96c)CN%?yp7rm)wKF*lu-i;I4W15Kxw6A{NK~6*0RC=OcIYzkyq7fx^Yyrt-zzIi z_$6i;$l0HWg9-WGxL|jn$wa1`!{{;F?_!5k4yz+NH|yvv5EkV<4E*bsb3M5=H8maL z(f(#5pHR86yK>`qi`(}_6Syp^Riz_(vfLhbz6l_j7<1%) zst*3FcTqK|ns^Zt)p&9I!eCFvjV1K$OP%vGZQFiC#ESg*5|H`aL0l(Je>QUOhHcYe={^$z3KKATRKjPi87U95H4Cf}oT z_zKMQ5mz>LpMigStK^97-5-x}t@jN0dO>mgaeCxbpFY<#NquQ42##a$41(_}q6!wC zC-g%9j=Rztl?qSN85=M0>YVE}v3`Db4!9wjPKhssJJ}c+Jhtgr!d{LFs-73loH?h#4vc(?gN(G#2WN&|N73lHQ%G!=jlE*>QYbP%99ktG)Peyig5~1If9a-u`K|{6vVypbAnB6~kRoiZ zTmz+}&Y{RkXPE=?qa=fgKYQ3jaojb?v9qBV^FL`=sGBiWxdDdZzg}IfVqI0kWvJZV z*LJhjv8H0*mNFSfNvQa>>eoy=6vsxc7ZUUs%T{IAenWM4)3cSnWrJewyHtG16eo{} zVKV**1E3CS3v%pJQ_JB(&_kb@mdH63-iY5~ zE@O3fD7`ASAU3ihD$V&w^0o}cjIAv#tp^TWx|BCwy-G+WtF!+{p2^eqJlgT`;JkxPh?y*(nfhk-^G<+_ST;^!${n*Zn4{*0H(jnUXw~?7=t~mK?eO$BALfS$ zSI-7YjEOSJlnp4iQV;ruD`F7~iL|mb%Y!tyir|?bX$?^^=-`;R)x5l%TbK4MrI z%PHWN!yh=A3T?2DS$(tRvrwztMV{JJwSm~E#>qoEIvp)NCm)Pp9((0-<~eNQ7&hxX zLHGS5y+O_qd5Mbu9*aJFFg$yGmXUu31NGzGmR6?#v5Ld*z<&zWT-win&*S>5=f@F@ zN>?2a2~EfS-ucuA4eSLJ_m;D9Wk>feC>?l8I!u6XICO-$N3cNI(xc?t?=b=;qP!a! zFm#m=dqcwP+e?>EPYqDNFQb{d=1y+Ylukp`4aeb_R7q3$vDJ}7-Ifn(KQ(OkZkdkM z%7aOy))#mjIWLc^t6&&mZH*1KI)y)sRlk6Pg$m9xdHxOUdBu+(w{|`6^*pF?rrk4Q zC7BVHR(JoGFQKLGWn$&2KGm@|dBW2NEa@MZ7}4$4&3uq1OOTGXsNRUNGE{z_WNJ-f2s-lulgUsz%z*{Zq{-(J2GWd^vmm|w}hwwr} zCH3O?S;{3OB!q^1WnXd%RWyo1E%@3BsIh;XuFkHgK8@;vIuXF4pcU6fLnC_V2b;yM za{kfyRsx7N4T0EF%fk2G9zjcgy(d(fhXA@9&6KSfLCbWb&oqE-;QPmYH1u$Ent7q) zPqgHd($n1@K0NAIxLmTUeTPcvO&a<^0xf@LG&n)9CrX>_QmYjdmI8o5L&K@Wmq7?^ zFeT0UXV^M}Oc$u?NuKB1mU8K&O6A1#^ZEh3LQ!M{0TCHiS@0ZqNQfCs@3j6yJhq{> z_FoXxldkX6PcxhNZtiei-?xRnZ*NZPx=?NC(SrhadaXr<|%j@qS5 zThS_iM9yHe61+YGh1QckLAfFy4+sukKmnjcaFgNwGi&n{BU%COq`geE5)-Qc{$z>7 zj+s9>2SHS7TJ!dbNA#EJvOhD?OYQ%v0ogcp+SruKXagBrTQ2|xmG-QH8|$W#Fsx7S zXS}%P!Sl*_4a`dkQQ@Y+uGDzvAbg|4ne%`G9}WA+uH{E~!x-30w#Afvdgi3mwV*iNLzia8A?5^0foTJyAqGf*=lkj?oCM zubI*4BNHvAp>=y9y#HsDRVo?&g)bJRry)wr_Uh};!ws83&hI9;p(a@IG;sby)n2CUu4RFU{G=2KBzaLFhA$x8#{x2VN z!Ow&vA79vDRl9-QIYA3uEiLwEXS>&ue}LH$r@xi2L~B!-$d8LM(wZnfUasBm)RBi=vUsIC}w|Llf*b>Qluu^%qoor@0j55Q)+> zxmASE0<8?7PLe+{M-EU+XZpRSI0=0;#5^Fg0c7)vUv3E?ub~5IERfV{|AfX8{2Wn` zW?#~a5eAftiwi|w^9fCrn?0}=J?FCL=T6P+%bqd+ zjtslj(I18yWaVTD6@zB}i){%0?|ZElStp?6A|R9vvuA;FH{uX2UCn3zNyrlo6;qWWIvw`ROa;0~El2@(3hP+={TJy--17 z&eS~gGJ#egLmYhyXuG&3eA6b zygq>i1JX$mKp)y|5uA2Sgj7D8S|^SnePWFuk%VbK4&A?&MqI$(0K7+NRJ7$OH|7ToKDFmpqA_gxJ*ZA6m z_U@G`LC=_okD+Zfy#bJxGXB}0lvf-QUH8rjwL@0!0PbB$ebQFUC`n$ zaF*yO$SMibmcWZFLAdbS_wNaXk9JF>PLR+mQv5vOyK^<@Jh)lnC z3(b^*{jN$t^)SaQOSdx9crO3^_n|Q{^FSxKl97=y9Y%Ek(J>uy(Uuf8xf=~rh&;F( zysNJVRG!o#+f#~;qSREB_8+3zS)S>I3x%Dvs9Zg5XAPkb{tv5)xKSS< zMnG5@nYot{E5%6z$A$|N6?On*jRy8$9XGK?8j}WG zWtxdnF_qJJ%!(9&tenMchn>U#s6w3$laKDr9A#J_$_1P__21`{$iB}+vVz4ls)dhF z0ytk#)S97cL97Z4i!yL5XF^i_f4eBonJ0r_ky5-)3JFW}u1qslXm%Zr+#u724)YXf z!-I5a{4K#1h~(+14ZqKrMJ+Uln_F82XM!tCK>B@JEf(Kh7V+zSV{p-d1MSXy&W6%l zDxVe`?3FBIICtiyq~$JyU1IjTBr3}Tc>>-B1_efjXlRUYe56sW>*l|C-CXn4A8(78 zt!bU*sU9@HdEG7-SDQ=D_m#HqU2n6VDKoLX&35Ul;rspaAbs!CCr$$%Fru)E7*2evDvVNmr0B{SA9SFkZcYOpqGn>eUwzSV5A@I5%ZI;BBU@hphu@96`| zBotY|NKuOqSy{yiJ=P4_%DHnEb%%cTHj3KS43iM|g@KA@L(6=v+Ox@_da)Y}6czdz zAlsE{h)&Y~eDZGaW6I%Ds-D?f(jF&rsHZ^$BZR7=wemXm;(>O3M-CCA6Cd>H(}*fB z#pjw6Nl}X`KqC@TLzr6S%9LS_PU?O0Kggo5hBP=6$UqO*?n&YHVED z18Z_dzv9WGfyrT(IV=>_%y?gtB_JZ|T}X}3!=3yb!jua>DR=Rvk;~PP`1y8JEhpjd zq0SE!wfb}R_`I+21zwMqEAOg2U}hGH^SOVEkVpJnKszEtMF9)Nzy*)N$#2;FYL-&CHD+}STLo7<>S=fs6|$}}=t4 z7hfLnS0#tMIMr6{S2A->Qoy@6RuBr*~}zF8)S|`5E`8AdBo+EoK@p=tEUMmGbu}68Qr)1S_@ezm zYc~_M`d3eOeTjrSi&}sCy`@_ZTfgJ`c9}I|a{SSJu7uR6NY2`BaN4yoQqJ^wF%_ctTd*Q+>6jgKUmr~a=`*M2LMU7jJ->6KBeR}JeyZflCslI*~ zD`BIEsQnxs&KZ>r9#pcNiamGgThY=|*1cXSOR3O_{(;+5BRkJ@#=9+;fAT^*|F^Q8 zrQc#X#eCDP#0>|#)Mc>+8X6i0p!d+dB`WdM%ie~D`Gdy;Dxw|@c9mLYj!7ML8*OPC z?JuZjrKtV8S$N#l%b_!~AMw|{5I@^ZRIT@_IdoLQ@?V#$7p^LydsU@r0ySJo>mW?= zEmxRY{zY@?W*Z|s>CvM{SE_;IiYMhCRqE<%`zp2Q%f$J9W#bDNiMyZKdD611JH+|q zr4gwMLwC~E14^FPB!X;|z%sOZeWxn)o%UJ2m^fWl4+>P{CD<;L(;qg;tzWMRlNwWz znf&xYi}wcTdOX)!#z1AVFgbmA2BxjrlV9e{JDV@-P`OoB(r@aY8`ZzMIy>syZDc*- zs1~l-v?-JMvfm<3;mP3~?R(N+gU25=kXJQe;d7UGWUY`2< zA^N&#DJwf~Y3eL0LE0hdeAJ|6qFP3Suyw=Q$^H=Sc>URD>$B`0KU3$~pOJvC`o$w- z_%STgvahzQfUERd`q+R^Tj^nJ<~*15TeAZ0M}orKYA;zujxV+AQ*R;F^m+ubmeqZ_fAS z#+HN-b%=0gcE@Lw)KszX?cK4%&E!`=#*sbh6)&XknV6U?;^A4_YuQ`=Ugm7v=(Fng z3S7TC5MZ!F_dr_dbd$+W3;YW-gWi#B36-IJEMrA&Fk z;n^axH^-ttj^G2xE%U602mc@T-aMYl{e2%@YO5Wo-7b-m3S|flB+AgBLgq1HB_*>W zWLAnDAu^OPA+x1SnUxF?GOo-GD07*Y@m!Dg{(ScL{LcB~oWH+bd)wRmtmk>Z@ArLQ z*L7d_lm`4MqHcXz2Vdn2f9xiav>xW-S6(f3Vk7Y!TX_+3ux)_yKM@9PA6?%6wTV;M zY1$kLL-B(sco_II3pL(4O3RF23S`6S?EIjd?&&bGem=RuiK?Z<%?<7ZTjxJQO5a%!JizwKN^^ss)8$ z?u@ffpn2yXe>{bY5P5Naqq=!&xT+erloYS9u+qVU4PnA2foP>yz2de%WCQ8?*72=~ zMeA=Vtp+rZDURQndIW00lNJDi+Y22sUuLf5Kkz|eaZVO(zj%N9wq^CZJT0k(A0C)r zZKUN!A{}LLV8qT@QxEk}IasTSKqAH`bz?l%PGlMRW?j0C_po?$82_Q24t8S* zrY?3p4izL8;G2iD-v#7=#s^lk(2l5(GJ>L;k&(WXlSSuuprNaLVASK)!j`b zciYF8w~$Cre4bRkeanMrf4UOfIRD$GQUW%4`>PwV@P|=J{fhT7 zzz&jsX7eW^`F{t=%E-lbb5(`-b6{rMUJpoU@+=WX`-}Rp* zplnARBiC2sF?##@YM7cP!waMD>sL;}^RZioNf4*$Cy{(o$Tm71CqqzKPkfF-FL zR&V_|J{}mpea4wi+94EutN^uB%G_l@SoEP6+?JI@I(DGKPOsPO6&sQ5s4IIKe22UM zZRMHbTeM*msvw|~g$CGA;9sP4PV`*@-B;Duk7|i2J&E#J6_w?c%(m1G^d#lqDn34} zqFxsu^036G<7)+(*o2kgA>}YJcn5Z!LCA~I&?;iq`k;r7#N)NTOc@6%0i^-}uatpT3uI;w!~QZIwK^_XGg&7)8P!B0N|GVCIH?;M89jN6Qc31S@fuXp z8GEihqR<81^=hHR8X3ZPyYrBow;=r!%oQ7A>!~BGrna!N zr@^LJD=_cqEX-yTcc1dCf_2^UY^4;JEPPN@(Qu23J{}YBT;RnPI=_Twe-vqu!%Wv$ zp!w%zo4HPbT^g4Oyc_ZVbJHDGEs#0^fz*THS|jca<6Bz086^o7!T8Ug4H$iyjPz4{ zv?NN>B_H!9o&m-+fq{uP#-6}^TmXmtK=Uoszw1U3PSdCRd7 zI1?*^cg`WuT8u{V<&at$&q38^2EN*n))$%$dp)dZAW)J#OZ2Nr$|rlxHsdZUcV7t3 zd`Bg%fT`5LN1R1JJ-6)Gj}=Rsm*+flPOEF3#_l%rMn)lRcA4@Qc4>=J6wGXND-M1S zh?$|Q<(5dz~}Qsql7t8b*gnP~Rl0#Ck^I_STGGpEhD+GovDN zcPAB1wO(X{7K^CHvn{)H(4e11tQg|+<$isz0nr41U^|qSJ6P|wlzGIW{U%MY0#kjp zKq*oU{Ux5`u`Pb(SpJZf+pUxDv-T3lxCqyHb`_OYMU@tlDaICC;z+SRLSvIQQQr02 zC-L#|ID@jdZ_%Ni>jN~?gW!YH*%_xK`9fSgC_dXPzGS(p*oDLCJjRqIcp4Io?_Q%? zf99C2@sz@-M*!^UpzQ}h_!M<^!&PV1{775oS+ru)ugqz>Id?d~Bf;Yf|)d@flh5MrVNw zp}(Fz0J&FwZJF`y*|o=7(-90`k4+?Op-rkKDQqVI<_m{SXyg3zZ_8z8Iyq^x=UP(a z!G;b|S%&xRc{4opEt)Y$)Jo8o{o<_>+o8A<9&v0Uaqgsn=;i%8%+!O#?#T!9HKygt z9Xx2aM6$e8&X8n9PBK!MU}oc!IkUAh;V9K9bBL#IYNzCW-))>C#+USM5)_RJx%2$` zYilR^d%BD>^&Iq$am%G>(&v)>Io$-We#chS!pu_!rr*YKN3bc>;aFZ!RJ%j8jejs?Fg5w_#**c(|2y%s(T)C2ul;fz^&^AeBtt5GtcV%^639+&9RQ*Rw3)gJ& zgLu{A$gT%-*^gc-R*`h=+|j#Vmj~Xzi~XYg+uH-f4xC^+Q0m;&Ra7uJ+0@u#^*F~o zVCSvU9oK=wsU^sLtq5Ll4s@ve<}&ldDp`tlS|_W@`P5R2mew@y=v4Qx_;AI%gyP=q!gw$@0=XKgDb;?GonS_XCL<0C>g*GFe;e0*kG(Fsacs7Ly$j{3=;Q4K_DS9am-pMX7 z5QQABq}$;eJ3P+LyDfa>;C^C%ZW?MNO3`!}M3rfvuZFD9#qz=sLy?l z7(y5vpyZuvNyE~`#ge$IVa|G7<06;n#;2wND0+v;@~!>m<09^V9tHyw7su*(g*En! zo=Hv3;Rg{B{FD?~&(A|P3KjM|*rwIq*u+%U)N}w7dE`1W3_Mj5{0y#K)iar&DXBF~P%5b_?a53d&zD*ISca>+dM*!DB^QMkj-O$p)Oaw~nO zZ71vFSzo?<`2a3V+b?J>3kH?KV#q+)r19;;n=~Si`09f(^cp48urWOdbCxSv#tm#(Q@w<#gg{4$KGKSCXWbT zxx2r+}{I+~7Z2*6N;G8*;l#~Sd zT+>Ky&uG@ZP3isLz9m3jXNq-4?W%k=yP8JLP<*X;(JEXdsy!w^kxb2DFp~j@&XgV(i zS8|=-03xNwSn5sq4kxK;wU6f4M5y-GipH1wFmi1E@0UnfiS4h`Wl-3fEu=z4^P=FLv$Sg7hp_4XTe-$!R2ZOtnl(fq^dnrZx2VHCT$tULko(slx7=X?F8 zAu#TYZ(Qaz#+*nowU@l47qbLx!|RM9TO`)TQMebEdS(Vcy@(p@?@@?7d4~7ZiR-UD z-ce;Z|8>PxRFZOkCqckfzmN3~v)a$HpT~vVRUltrFMrlg*W{ReU4%CT3;Y(oY)_W; z7c1tzH$3Z^Y>ze5GAUa#@THvJB1JPeRY-QQttrCWur31YDa!h7_mFK?#({}K%uA!X zj_|uZG#Rt)ttn|bAW?Ml=Y=U7I```LG849w#l};<-%}o5*d116ky9v9G<9WWU-pmN z_ri|b7F#E4wM5T|Jj_kVHL?m%!#53XZ_rAaPUTse5@$o!r0eg~KeYX_vtIt}%FDQQ z=MVRx#|KV$KL~Q2IX3Xaz$R)DgqVog`(rzO3e0c1N^P;Uy-O{zF zyq9GEo&9>ZD202_WT~ndB79Zuwa5nVuR?ACAp(y)nI7#`3h`rqgaO-uQ{1v5W^$Bb z(`gaohag3JzjA^%Vn4deWzOVhI<-OHxnalCsR6@^KmNF+xO!r7rctQmT;?^FG4XNR zQS+tw+>$5rnrWup+)vyRdS4j!^DmnveG1x3^Vpo?Do9d(lBZoP`N-jn+U4iQuhZ!V zyHazvGLhqAEIg}gx>7#*QKB_`-aTTTx^S`YZhiCftjP8P=i7cI_R%|CU9*hVKaLUa zH5(Tp1u?VKQ0)wyk+i!rc%odQe(vAvLW`fA?r1D@=nprvvf>q1pPT*qWvV4VTkHpI zh#ddIu+~IF+&)B;5|VFQ@G?3#7be}4&1$MCn*AWY;w7Bq?3f~tg|B}64K~ULZ{Kd* z7kzH^nvY#F1aD+$NH87nRie$#Cc^f?bh%d4nnSd%llQ3hTvN2STajODR#Ki{`Q$+V zr;$k$@Z}SoRKdrRCV|ay_b2O)^*@bE9IB$`Qp7&Z&KeFZ&eRS)k<@eiOm8z^$-%Od zb$ZyLZ)kznB6ThgEK&bSn&Y?ok!%Ot+z;6t60!PzT%vQypv}CW&qK7D8s)F3OqO-I z+}cbVp503h zne@A$&afazVs5J2e9ZRjTXs|Zl)PfLso({d1@7Se_g4hSC#eLY9;3)c?S8<#H7t^7&GWyK}QrTA(p-s@~GK0}wiYReI+^Vc%#LVhws zrXtR2xSGVrh!~~Z1{EGH*m*W%&ePMhEs)zfl%de_3e4aJVLcp3(O+N(J@hu{G4I^e zWzS-^ZSgugMRo*I%rw&CzpFG1^a4o@+h($?^|g(2@E!;si)EN7j~O-Vi;OFRvHBhkR7`Vv)Fd&d*dZPr)sV3zHSu| zM(tPeF;N&byxCKr0l^B?bh%`eQxv!Pv@db1C{1*9jt1on0%AAMd7$ovR*MZ3ApFC! zz@(v2OjWj*57|%Tc{Q_pltZj-h`Q$L(n|WTQW&I5h-xYu~`^Hi8~$Cb8xTN}CJoHp~Y zW{bd9cKw96kM3V}zIXlk%R1_xV%td&B$iiqxd-{|&~S#qZOpt%Qj1S< zWheG^w^QTd%(1aT7!=KcSYpi5NV;7A_IPO}&EBUjD@H8QC$E zCk95b*Y2(N*?(~_6Nmow6>!67{^ixWWA?#(8c5?}S5e@oCLf43Be^tdNDz`ODOyy4 z+|FlkXJk3*+E*QH+LfOT(B`@8;@kjCTLj0C1NY*&xf8yC#FEQL{?9Fo;pcdvGC6(o zxF;<+78e1@XyED^)^a#2e>x6nXA^3IL~+|e0we+G(6Ui#;VCKr47_opqTxfZNAJn< z@;9_V2qO`Lw(As@R5RE*TX;U#xb*ihiviKW151_*<~y`LR$a=T)Y=~SQYJ>>RA1j{ zU$gT_-)OwPf|H4S_10^84Al>VX*zqZ$@iLW+YURyDr3RAZF6O(Fb<2&CJ-FiG0dzJ%d57hOzV$!Thaynu^2CqIA6=}L0` z6;_2XR!{ZG8l%Gxo-5QY?hrVByb}#kRkpeEhw#fT6Rv6>QPdo~TD=9Z1X~62$Mt0g z2)koejb!zM#DEtFgSTM8>LJ+?DYjXT8NR04{x^Hlj|LZc#zl!!l-nD^WQ`Q*IYc zHEY#%`(!<3R?Ft)X~F6#cI$?{y(pMt#zG__n57!{Gq+@MWPGV)Vcf?cv+V(4M1&O9 zjaEZ`fOLH8EzafP%=)cjxALZU!0)lx`TUhDaW_VaRAsVJ$T!2v^Th2Om>0eyngPrts z_=t5l5%8<-A@Mz#oSZyq0j0Z~f;02h0BHIYDZ402-RX=;)M@cv}qprlQnY8Wz*ac|T)C3awK`3pxZ1f)C z0$BKsNPTK{mN{HW$!9fW@gg-kQ??ux;@g`tk$t*uFY&^doU|hW_w<@QjjFT~lBGVxBn^d_Vq>ZPy4@aEoPT8*KIW$(HMIK9%v= zN&v+7F9+SEMPQDJCK?eK%~7y~uE0?r7uh^jdRL85bDW%q7qd$pR1RK6k_6UlY?9uy1J#i$w8F?Pr!3J=l=>#N;?dgl%Dg=HF zh;#@Dv}sGS#%(P)`fxq5ziio4tOvYK;N?akA)&th{;m0*SVZ5^VG-Ivz!@-tP5~^W zn75VGI{tH9CDPP3Yx%t^aa-r>hSl()dRdC+YRamsX?wnz-H%{;YE9f;^2(1;T(jW;GK=hO&IZ?(deDy6k&!H7PL8k6DqiFtf1@zD-nV?d*zQUKHQL zR@&tuW zpK7VvWMKY9bAu_4fZ(&xs|n~@9@FTO2>eF25ejeAdTb{6+mI8qplxUhvFbYtXh4DRPg_OBkE7w?jY=+)5Kxg5u3qQ|Fj8}0EV#*!5({xg2p~E{8t`NB> z&MzpU7&tLut7{sOKWm#e>J^g6no6Ab;So&k2agOJ*a8MefDc?rTps*SHAzZn2!?{< zS+RU>a5W4!a=q>b$so4|0&FIKGrAh2wGo^K0nonZ=dRFZtrK%kYcJNsKPzM{*6C zfOsLeg@Qd@-$4Z6U`>JJGuzSYPazVS1hTIewX+X1D=<6jF}7I({x$pj<{r*bv_Gig z*0#V@8~9#{3eX!IN$RN|N$UH%77BQ$jZcM)fMIKLF|sC}AW;5XJgQqkF~; zKV;b2EaRHSr=H!Fas1)4Hu%S_JMALIT3bUsw_k7WF&VclKZ~qJu;ODdhoN~dC%G&b z__@2B>HoX>=HBz;??f?GNkG5wk@U9g>2h1i=>X5M~14u z^w=i1s9YMORS>?0$PUf`R zx$AFU>g7plT!`FD))MSBe|p&vrP9HQGygd&-$L}qymhPQGrIHFuV+BK$dDHAJ{}Wi zr5!sXGvupaMI^;U=6EvPGuemC(xp1HRbwhK*(X%cbot4mx4f^~aD#Sa-SIR@I+scF z@0rdYbQOsUi)yGjW7fA6Ea$vO1;x~c8Y=Gquj$N*V@&y1A4--i+w42-7s&IDcvyX> z@vtQEu#keTJgiq2P&<`6u!&lx0{1q>D7kWROT33j$&j|=RjM91gns^mKjr50Yyv|= z+jeeJd07nY{PE&H#eo9EhWfUCy5|vmt=9xgMb1_Hg387-1GM7$q1T_*ie%L)ORz3H zjT)OTe75s}>Uh&T9bxBy@dwA5bPk-`DCG32RPUi^mTgK<;FnIHRqhO?XFjgim`P1P z!MKKZula94aJ@vS8a z#dpBqP2tV%?e8Dzdds$?)+q078V&MxsORExhJ1Qiy^Q@C3BT+*m&Q?`KjB%YHo0Vc?>$39 z`sRXa9&1u!#Goc6<#EG7qGn#~pH`D|tnPCz!ni|%yhHTnAOHAl+*Z!fd#-jQq0GdK z`LOsIEHmD({Q2vwbMy#Q=%8+7CYWUBG8bU$?^p{0`&N#M@gEt`N=mmKMPCEJ&NvRY z1r?+Ls{e+7xgje*q%}437y)h zmPAVL*jMtfB&vjpo2;<~tHv6i(t9+EKBKhy>Lon%+^zT*D@pg%xw1dfwihTGOq4Z` zdf0_+I&x}buA4Sd1fY;gA!tY(o^zQ0YS)F7$WyX|_T+iRc@5k8!M+)*!(#K#i5K=W z%cSYd=Dp`XpoRfiXO)EhM|x|!)2Hte_KKikFR~}QR8j4AUt67c9?%#`7bBK~klzxS z@Bl`rsz8KGOismk#x6_>Voo{ABm3{x2t^-EOZ!)AMEBJ9e_A6x7wcr_ABwM@dMyRqaL%3nZZ1F9XKPQF9jC6^PkMn~Kr%ao_S5H6MS1a05f1EQ-d$)idU$*gX zCe~dR-MSf+c==irrJXL5{of)FydLH}q&nEG=Qua;X0Z*`2D&_wTwNv>lq9%)Io!S) zKKq9S8;JFf3loX&)V1j-_W?n!s_55Tn74&Bk+(x%(`Z^~&h-1`mSmlj*@JS8^-|$# zwOOXz4o)ep?-;#zzSMpq_9X13skhjrxq*EXC1+DKRm(j450Xd)%}JVPqkER~o}HDc z>FQ5kTXIX;x5qLya>R}=+ctUW(GL!p(fiGAe=fzcP>T|GFK>HRF(%yVK|ap2QFNn> zzjy1kGD&{7CU1S;2$!-5iN0?asta$bkh9$svaKb2ILO5*)^=&_uHK`wo`*7*!S~^S zK6(O1>rfpeL9M*C-L8_|J`v!AH_yPF%T-_JTGs9EH3r@)r0aAv=Y@m!EPlZtWf;#W^~hzsn&Z%Q;W@nxELmchncLG^_LPYwN`vUP4k$v#pO( zRS(LtzWRD;_-8eLzg{T6=3{#~xqkKsqHNM5JysjG47Q4_^D0Uqk_iA-_xBA z=JW1mNuxjeOoZ~)XMDMQugHG=TcKc2i@6SWX9?53X;PgG#(0nO>BbIr$J{Q~tDVT# zv+ZfX9I@kA8qaaOHJ4so!}s&bv+jjCg<6HjDN`lsRBs_o-R=a%Z1KS_RGH1kl$sMC zs+dxrM&8@RvRSO4DuUf*wnQhxKB>QJCTYQUP2RdXZ=-3f1rxgVtN?_&ucNK^QA6E#eOcQs^4cF zCs-tPVz3d8GA)Gs^n!X$|KraXSp?xbShByYO76C^3u@4?n^>X1X0J3)M2v`qi+{(PO0t78Dd9G4*Cv#Yr)Rfw5bS=SQsE zQc(CZr*M#XD6qNT^5>t=P~cQ2c>CiR<&Wl*e5q%}6z%QXAEkXsKnC(5PY^U#M7jM}V zEmd%_Lp4|Lg1T4?a_A@meLG%S% z6ZNMY+1iZ~C!6Z&{R_IiY8)IyCG9tPX0tzc)X&cTl)zKeIS|FaeR#+I+9!w40(5A_ znDA6Wb_}UF8~J=wNVMiqjOb8XG=)2% zZ+I0==MbfBotV=l+zJYwIxLzoPlq+?mOi>P7zA4VDE8 zIwjo^Ib1!-8r&PJIxbdM2f8k5TvW~B$udbSTrZlroZ_}2DyqMvtxc=_Wv2Y3%}?tY zRmz&k?7l0`uV2^GCPXEUaB`kP(b9^skm-m1+}jv^!R0s~I(ZMJX{+xF8OB3R$p7{!w+X=3jS2owWW<$)6j#a2b!J$Qt;^~wV) zRgxedpWN!T8vvI;uo#r~+9RG)5&~zdxzS?-zM^s0q5{$*Pc45uXfk0mVLSY|Eo6DI zzxH0fM5wLee>3l-VtW@~V^P)rFPXRYw`j*VJG48UD3dK({W=>c#X93d79W+ZZ63XF zE6Is}n+bk)a_o*h{c z;@t6Zos+MC_we%YoWt~YM@T`YfIsN(RLA_!p{4mTDojnbaBxr{J<|kY9Lz;1L=?h= z8=!$mMBy60^~Dhxv@Yjk#+Wgw_|ofDzVKfGU;qlAD812FlL!QmZ|~kS7?tw@STdFj ziFCH@g`pSZiFzs0-{T@AM2rTJd>ha15lL%Px6gT%sZElH1lwQrlDdBsOm zb&bR^p7<86P0xt--zV3iUWf<1oawabfAjgU(POnJ*unp5mAhWzFBJkp_Kt;wlRj-O zj86CC!hw;Acddmn6O-5Hy{^tXF}~}64oJVeqJj^NDHvi1U0?uufq)0~jf|uPjGQrj zo5ndwtE(5`Hu5GY!WTB(Dic(xLo9A3eOpah_aj4&YtQy^E7C}jJ8?ozDkv_KrG6k} zn62NvH{>Eich~n(!EAG0b_u?b_NzO;jahBDEcY~wK^402t#3*$A8P@PQ8q%0Kxi8>Leo}kE{S5Qy`Qw!hp zok4nrfP4rM)l{RrkZd3@paeuPbYm(73S;QK?P%u(U@O&qhJ@M&7`7?YKA<6N@4N0K zDeK(0abtXPQvLe%AGP-B`*%cS`bSA6KM!o(p%d#6yA(>XI3iom^R1CP?Ltw$Hci~< z=7WGpq3S|le#3Ns*Pa>4Lu2A4aTf>4=VE& zvRB%(W|LDaZq8*q3UJ;{vz`aQ`hZvMIVGcC2zz3+^MWFBXlq(BbZofjo zByK-yZp+H7`J~sZjE6wp!gYDc+t-L~Pdtyvxn8z{5G_%cpu|0d@p}&dvxeLrN$mt#>I6bFR1Nt~hZN9kok0eSTGTdDg4>MeNO)E^fb; znyv`B=`ZntU1{37CH+e}p9-gEp^GI%)gqRiv)17TtXNCU$N+Y{{39Ri3IW7nSTWH? zrt|80jO$E6k6w2al;woh7nVGZ0hO!VHIRoi$DZAoQkM8IBA7CdGF`%>Af^1RsK(b2 zyT<#QlBHpS!4+9=N!m-nx2U7WwKz$wikGEc!PaNzY? zj>5t;%w(23e_kE=8UZ`65*kZM@S$@*gvp@s7*b5targD*Z5hYsJeP&(i2GSeAL zfbQ)qHB%$`zdI}nDDjujN_9^co$ydCH_L2mZlh#=QT-~{;$MXSG?!CqmRs%e^C-o0 za`4M(B6Qan;IxYJxy)z;t5 zc|=7+R~f9^vX3l3-8TfK!O+6}&EqpasX`NynnmxP=sfv@cX7cc$>s=cjsfyUZ)2Q7 zAhKh-+_bopa8wSqXQ!aNh+xsCFJ+ytfOe~zaE?ffL&i_6+vnCi@uEkHV!CS`hdxjD zU+&qwPqA>+%a_m_6yPy0JyII%YKRrdx?yM=%utjw((U4KaQ@&(Wukp%wl|1n$$254vXS5?%dinYubY;1#)2rOai&a zr&@q5U6MTU5vAA%xPr|5Ux8p)=nZiqkG zVS70=hULnBIc)^hJnejMZ7zvjyGpe|1Yk6h1t|Xtkczhn=_L9`I<$+O^BVBUJ^nRh z^+ljE@m{dv0bBm*vr&jESp*E8#`^0EUDY+0Wcli<-zb&|MxA zrnOH!%)DLw8RAPwFemDzgr;ABp*cbjk6826bpgR{ePY)R{|yxPIgt|YF3tBW^Bq3? zXlkvz$-l$}vH%w}V_b;o=MED_n1l|>TN&O8O(6c8DP$?I>3sY4o&CFMTJ!tIg{771 zqh*NrEgSA1dvzjX?zhQ?_Z-)%53Ki^bPy;zAUsj|WN`Zjtr4~?n`$xG7~swyEHYmA zkV5fC8R3@;w@+EVhRt^|H@yYimA8j zVbalV{ythvG{okznF)@@yrM?4lmPQ0ZWi`0ay zANsrXa7dI&qB|b)pC&9QpF*DlB_r?lMK`ox;hPZ78ht<0>^VbNl#%1}K;5vb_ z6CVslwTKv&Vo9tc9Y|oATFJ&TT4L0BdWW6`Q0Ph>P|?T>7a2>!r-w+&38@2Wq~6l1 zYEf$<4IrhiNU5GACh~xPO2X_jBA8$OW+We&?5G~h6`zp6(q7rqvpoLks}X#8P#%#J zB}#huMl~2BsGI&LfX+Xq=ZD)kD4H9+A%R`<{dZOza+N0nR+0Y33-~mWQJ&p{2=@Wj zXx*bHPm<6)k%+S^esCYkU7|cd@5RW|s%j}~I|CfZnnYW9@LvY3SgMT};n3S(5k1@Z z!+Iu=OAp{)VDHzjYR1tRsE(^|YeC*X4zNGhKQnJON};baqZAevZnxZM!urhCkUDUs zLNqB01 zF5i00&JFDr-LW5!aHz(GY^vG0-z9pXXs7AS!|wbc0V3+@qJj~O2sS9b7;;3uoZ|ll)^%9@})J( zl5Z<3F=o4{S?x}T`H_2GUPFZP8UZx{qNZa!Z^ly!zo81-MJ{7*TW@)6t-IXU_)z`E zi&jPP=qLMmrh;yCY1q=i$&r8XHP0_^h>{O`1~F(?3k_rF2NO*C)I>+~xQ|S!x~%Nf zDbMx1*Hd92i4&fvw+JXWHDZ6-&dm1FS?Gp>!@`oGwkhzx5Sp)O6WDKDlO&L=7oQ{E zI+AFY-I0{1WaE(MzRX%p?XE@zb&HOQU4!;bvq!$RP$`tIZztN`aqI%< zxa`$Jst!d_lmaHJK_Tpd zx~d&=o}_tk*M(OQBt0W6H%ef^%KnEQO{?1m3+5aeBDY2nyero)M4?yVfyd2>vF8LR z16CEOKhZt~dFCtQSqy%jM34rL4#xXC7DokgRx^%Lx1t8bT`jkK~?(}oG&t*_O zEmqN2+~nl9b#oRSJ%g=txm)=Kg9H#iP&Zy=U*oQd`MHl060RjhpSiBlCqb51MPRvE zBaq9pZ(n8l;yY@vKN4(sFsIK8Gq`*2mXs`R9@^M%)|?nXaNV0WeLh70W;`l$o1up@ zlU5mAJd|ZI1N=1j@HzB=#r7;s=W2SX@p46+SFTF^Lx8RL9A}5Gx~gg*v zMu@3F_V>3{0!kaW$q;H46AX|Shom*;E2=siYH>2_d?r7!Y~=g=^S5lX59#{_(@13p zCgrDvs_SY)005cZYWY-qfD{x1|2i{7d01O!iU%>=M{wd{M1K|0?gx1W(Jm<-R}Zro zW3c0)HVRjf2D^{n1Noxj|FUkuNB^;IsX4H|YiVF){QAU)_7`T6x422} zw#=g)I60e(U7P@^C}I@rjdRi1&_M`&JKYv;6pdH&Zy3ldr^(^V2nuz!n;nggp>nf0m zpgA`kNYiB`EQCt`lljk|KOy`HF1t2Nlq;y5vycILO<&Xx$fSF^u#z@N-@KWH;>oth zW#$6ATs%>vBs*zRL7oQL9aI2+PPl}KTz>o4<*CCEI1p+Bd{Xm&lGvhBtR!V#m>(j+ z&3wz@{TV4gsq_iKdcd5`Yo-Hs;BXuQd7HOkte}t}x@m-U58rJZu2X2Ff>IZUD{o7h zz7`bYH;;~FfLFGs304vy7?dV&X3ZEb8%c%qZJ`Ah9N0gXz1C&g~D7BI7hAJO8`~BJ|Ubr5aA+DQrwd zk1ew7i4+}L`=vNy zF_B$q@el%X%YuK%jEpuheXmZC{~*#COjs}Xanq6Zw_?UPq2Gm;sU&Sfd}D?vIUyl| z=u@48niEpeb+~t*@?Ajz0z5~{Uz#e!H)ZpPUyq4cg^ElY9iaBNmivN>#GGE=q1P#L z%$CG>CPJ7*5Tkz(vVqrW+AmJdblFG$+V5BJQo7qxGYNW;(0HS)G6TKA)@t_{LI8&0 zZy580ipLZk!3Y4Fy;0|C7j8Vi>|ZhXd3xheQO3-xluaaE;s*V9ncqh&O8OX1fS-1R z$`_Rn%H&d8LcPR!=D`OiiEoiBR-^qF!CaxmJA9lg|Yq=Q( zt8CpG(%PRZ!hiux@=k)-ZOhu4b9kVWw8dyM^(vmCP4k{R7rvZmNzqp-3Y#VpRU#2g zex;?7ZP}8QFujwBR{w{Ec)o1HVWku+X);((qZcUx<>mMszeB zMjZw@8ps`r7HG;Lc>}~1f|+Lm^V$`1fq>6}a3DEmOo&V&Aq&QY~T2 zsRj?2NE_Y|@%c97bLj9r<4DM=22&_H?0)ic$DbsEJTZpKw>-XLz`V7MfBWJ10*^6G z(Pc|E=0kEQOfm(PNz!=}NCxDUB&LGkX>-Bj!#m3mipS8Jp<=-qWT+$=wgZ>kq3}e+ zAd8LcfT$WRbOB4~-ZsT*Q9P#PU>_SX5;c;3tfTWCD_kWBa~t(bFoRT%mUJQNDXg=u z!RxwF2CQ@3^DM}F%)S_I&Nlyi2$@78XeCXrHE;o_@aLcqCB2|v-Jr5=bqj6oR`m_~ zo^-% z5h{yH4x-t7rfZ*oE)Tmn7YyTC8pQOLHt(i+$inm?2a*FUwDI2z#6Bdda6%bfO;{TA zH4~L#ft>~YZ@(Q~)P=y^u{Yps)|GdEG8j;+N|H=5V|>NabS;pT>v3rp<1M@5k~QK( z1mgWA`3n7O_ZI!QGdYleLRU4I5B`shuzj3XONiSS^{_oBxUi@;No;;HpqTbtT6ArK zQt0jhMSFXb54)1iF!An^p8F={<7e@IYi8~q`(ZFYSMWq5<^4pb%S><%43jm};)40* zTd&c7`TRKs$%yIl(jsB*%HxIF2OS4VI9pRr-2h&g1Dl2C$l_PLEH(h$PJx{k5{0YQ z#bZ_Ue;-POGybs zB6L86NLqY7Nm^_R3rhk9@MSLox zHkw-DA^DA@qke>=gmnBNlfcPJsW9@)m{578JmBJ+%Zv0g9VKKO3rXm~oX2VNGEMK8 z4PTveUS5B`OHHV}P5(Iw$M4{f=4j}^o9}(s@4%gOO^KJUdcXMecY~bx1bLikQJms) zawV(RJRbT@f5>RDZKzW$$-!n~s4g--^IH7swP1>llQqHI~~b7;k@vv-K!;nq2QeN~;X$&!SI;)QW} zWY^*IOIBe_vi+OyFm2cGRtm(GUEtawRs6%@xc4iiUZcg}(_Q&S1|Pcg4z0Hd(_s0K zu6GR176T|6S615DU&u<;oJZg3rJ$>*PQ(Nn!MRW7q7xtYh zhEmIila3U$@1GRTZp74<=OIBlINZ8r?C*2__6AZ$&o2~61bI~OfCDj>m>`LP4+I;q zUUeKDPX$jYr=*mN)t4v?7}}jv@8a*rZ7Q7QFr4Ggh>S#D=-5PkZNe-9-J3V>_pLi- zS9o0D8&vslpAer{4u$XoPPCW>IS3fQ4w4r>T20QqUq?@HU5X$0+#a0 zjex_kMSq1tv|($_PmfUEe^T>&Q&yIZZlguO%2!=S$NAhsqJTue9NAs&_R7Acl35m9 zr%WegOTVn&`yZdt&;(vzKR-?6v5RKClfx#8%;MJ+KU>J8o%qgUV9?)m2PI-~PUNv# z+uzr2xY_Mc6M!};w8faf)%Dkd{x_V$u;NWeFcvGz_{r?-?4f9V;hsqQ?j&TjW=Kav zB1(=|N5_AI{4et#LuYr++6WWHP5F-5!bT5*9`2Hu(fv8cdi>*l;o|AA$u9fG?N;aN zkJ~ut)ZsiMQaQA^`_dwd%)=aAC%<`kxi2(+-DYo=i#HzZ;LWxY!me#K=h z%MqlLbs$06b`u&ppwfQ0a%lnBVXYkduMr|aObNm`2OV|>oGw-G-#3Gu8;&ljd`)Bm zRh<6D&|l}@`uU9eV36qh#?>T0860Xm2;CWNBHn2%xOllcV(-nWhhL_CcG@(mDajr- zs)Bv-xBfbfNkf0$+OkvNjWm$;uh}}Yu2A+-T-7;V2|YGZMK(#@xk3KJir0SrIKUVn z;S@&yx*?Vb-c}_73wN(@w<4GO&&hKdnIMb}c>f4FOygL>K!AoXuG0*^QX&=S83NOKd z`}?AJCdwOCjzdP!jPoKWJRDJEw1$qPm5Zci3iFe&f#c6<`$yQ)>95>t`z_kBu@bPgsJ$w%6-8k zWxu%ic*0=Ov?C|Y=>21rD>sw_k(Y^p%mdPU2BH>1dtGx>^v7f^ez0 z>3s6!9Uu`A%Um%D2`)lgl}l35a25D|<6Sxu{-&X6gLN|E0Rh^qEZf^yt0SFxO^s7) zCs65~CF%{3I&bAv;5*IEy>j5e+C1^M736Ohh|-_=<*!RirHL*+qNNBnxoCabu=BXK zaS86H0(!_Hjj_{zdNJo?E{BqguIArC5H%pNzcaLdt-GnWo0YWL8N4w~<0)!|mH4yc z9M%))PaQ#qyMe+$dzkQRF|kKT^xy^Vm17I|WKH==lJq+WRY*RBi;P&Bv9z>%x7)G{ z(~hGkpS5<*x_(7FYnODms8uV73C1mJx!=M63+;;(A_C+2zfWJfl!n+f1nx!Ciw-vgr7l29 z<{dlCZFzX!Sin;GzO4rx$>??lj@{%7na^8d&K;swvtwrI*8SQ~@x)TfUZ?|@A~G)! z^Z!{2+5}yJIU4ucF;|FiF6#R6k!Y1c1#qt&LoHD9eop-3GYLYN>bg2jWNL&V+5UeL z9Rt2m>j4mEL0lHyg>A(0*Mwe6$X;oX$jMP8|3X=`VZoq7#H|ek0I;8E@E|t7F;bys zh-rq!U4MLfjka!?+c{uFL8!GF9DFtjRAZ0qf;}CH1#k9Z`<^bW!$2^|ps-+9t^z?v zOOWv{hzA&hvlEO?%BdH+P0tmc5UC>JZ?Db6%^j}{FO)I{1%5{fB+F=z(vF#KZf;hs zTvPdu%t;(fuhLUf_rtYFPAf5Iz+{w z@_r2Hio;zs8lZDmeFjLLIE96p`@sgJN_w}KB)S?zE^PFeV98%gdKLAHI@S7BNpwmh z4BQ-S=3V&{JZ_zuI~nidQ-KDo1hL-|qs_Ox*o-x^-|sgPAK@H-X*b4xpR|yX(744Z zGeTA`$?*Go^DoZNT*T%t-Sa=9(HerU1m25WhzJd(dw>XGVQQf;0QT^ZXy?InGeN0Z zp3F&-yCJbJ7@4Og$=H-#9CG+6!eCdq0Ng>6p@$*bgZz`obfx!z^zg#R44tAc#J6-3 z(`NpY+`4NZPtg>N-ua%OFagAw0)5r=y8Hx~xBTUhog^Ls;&sG)_@KPfirfJS9Qbkz z>QA!EltzrLHDDg1AuNOSGb?~)D!6HQ=#eh{Iw4a@<2|SFOY2tF7ZMI3D*YRDEWu$! zTySwq3`$WP7|(HVAUcrLjfwp2gF5AeoX=sS3C?m6sj70WM z%E(IDLdr;k5ZRO{yQs{Jtn5|x_+2lZ@8|x0@B4c{?)#tfIiJos<^6uYUe9q|*YkSD zwVng)VvVW9+~2}aL489us0_>Jm8?q&mkM_jpgPmXOCT~BKwb8QZF%NY!DNl(-R~?_ z+gMm$;vc`jBM}dCoFE1$Ye5LU00gL!b2EXa#G==rgEA84TR;SGsaEoz-~TwCjd7?c z{;LM$*#!0!KPl$?)pu5GgmV^x6F2w;D0dL8<-2R^CL!BUN0wF5BupjC*uT(gEDs!$ z|Ak(u-#}dovxBoZYoU}Ix5q=8asZL)yx!Ar1dWu-9XLeVxQH)h)ZEFi2=H<&=Xrzv z=Ljsay5wE^*KfCTqE}9JU4T{?0|P5db6;nl?goK2C zM6n*%#dprgy}9!vd0MuSUyyW=WBhAHC?0Pm>J{;ygM%;rFWA+@onv+Cj~hTaNjr$k z`6sMsp~rKv8L#f{T`pc;MQTQ#b62iBArpsa((iCISDXWA3D~1N@;*h!G25ZWI9w5% z;pT4x=X8@KN3xG^UI#eh5K?nk{D#T3aqRxspPiPLMqIXVf}bGi5QLoUX*s|{-UuzJ zzecfl7o^r7fTU!05!`|bCTjr$ulnelhbLIjb`-ULe9V# z>J^k&kyt_sS-v?~wjgk9=sk?^>Bc4}uad8~4oWT0Z%481rG}q|2m{Dk78rWNE>Su! zu=>-d&qVc)snS8LGs7rJ(w~nqOXrc)t*?AYF-4rn#WRwr0ON{au9Z@D4YB&eaYc^B zAH?YiFh7|z<{3tTBxC|iry%4x^ z%7N-j!d{*u>&T5i;EwOx59Lh#`@7V{uZwYh2H4#%eAfo|HB`Tg*UhqeHM$ zfF{3uJ$+sxpl|S-9!XdvctU@Lj15|?w~lDRP(G-UAHh!_JKk{y7))@$3GIhdD7;b# za9P2o@IgF+lE#jIV6eI(K_E-qDd|{WlA&U#1vP!T9iIEO7fZ1&gM0rSy1|t5}byMW%F-Z-~hI%r{j$b>_7%d#?Y;y$FM|dZJ4rNd$jS zd+)mq^nlqP)@j02bMv-s93UR=-nm1{;Qp)@^M~wh^AxvyQTs!Bk+%|<6J%K(y6J)S z{=$`bEfFk8)Zs8{J;23Pj5* zL>bkED#nMC=WQ?kTmGRA#}T|W=;M9gOa!JImEG33JR8=pKM&gumWE`Zl+GE;ek>N& z$Yf_@gUg8EJadSuU7JG^yD?a?mFq^0Y9tpEbQkfb0t*cSe@PZW?Mq^Qb@2rwNvP|Q zP;Z?v#8$#wID86Q{*;A@ecNsq40A`59Sd+kO(fF>h>COnPGN}0yQw~qscuD)Og1)k znBm9jadZ449~Qr~nBc!70X~oDlwIcWV8McdF9T`>!LI^jJahUqL8y)};}xnxRriYa zsS1HHK$&5iWaGfO3YCBB$uq$23MgD&a{A#o z_-gJ4JkDTy;uW2gUa7NpH?jmNU26V{4?j%k?9xn^ZO&1io4IQI;h+A(c??V?9QXQb z%P9|ACsKHlLf<0&Z?BbcEJemXlZw^;2+Eo{*hqlWPyi;x1(g(>Gf0!fKz#Y1-63R= zXuGpAe#Y-G=Fst)8V3G~WM~YjvLm{j-ua#<0hJ665SDj%`Y_!f z;OmGj9S1dF(sepYlpFamCML$DF5V|+`Of;@tWT$to$UJilM+lD-bNj&biSQ>a^qxw z!3p1Zr;(t-x#t#UQ@@P@V!ay4S9=52b)Su%QEde6?h) zm}0Qoq#@d!R~tX9!fJ{aD0{Erh$8M9&P@$-`=~oo{OffA@*t5Y9x;#mH5LoBlA=F? zNaZV>c|v$bLL3rb5#0U+;=2X4f^pxgPlO7^3!%qfJL$rXs$kME?$S+uC+x z*%b;n;~};Fl)S2|C;bKAW||r)mWspEOS}Ds>s7`2{;s{%5l@jW5T`!X*VnhYP3TYN zW7M@eVy}ZEqw_J$l{!wTPfC6H(rX=yH&&mtZShW5^;||njum*J-Uc)c?(P>16PtQ} z4$iLV^xt5Hl$7IQ%49qdKQYcZ)N;urM-k%yNxKxxokT2T?j^0?Jpyv5T$xq+y*Q|| zT!)4y+A)Q6;bnfz&3SgIBZc$ki=A|C=aAruVs<3I=p@3EP3QY{f1g|T$h*<`Y0-wx zJnLlL`GV;)HiOzlvEo+oDO&q62lR?vM%+2)k8Nt|1sK;{W41>-_Rqg4V z8NXZG)p|5z{4HQs>H~jX4&P{Hu(r)c-PqfBjlpzC$xcM+oLbG;K(p=K(s&zw)ry3$q67 zVvB*rwK;x^j>r{Mo4cp?j8V;2GrE7WUD-zS_e#$_!wx-hhF_rvdtbP^^l0Zl`|#nz z?RCfgV%qYmGRAKIPfWYYW;3ih8!k(^Emb_c%lo```QGb)A@*Atu<|iRPZ5%Mgi|h1 zYQh_|`(xb2I>ghJo{4}lx6af6=74PSJXWwkxJ>9%-ch(<^m6NjbPSM*QmG1i)nPrk=#KR!-0M^(s4O7|8=Qes~AVy8CLlq@}e` z6|JMbBl^&7q+5SJ(DF{!_3C7m)B+!)QEjUz>KFgESRYFpuB^RPG4yZGpKxGP8(Jn@ zhcL+5kanyf{UcS6iWuoH*MSbv;4Aq3pbfUWf_$H0+hPI*>%D-0?_dJq2+Fq+^oWm- zkHPj+4t012xjN*0UG#VzPYRcEJEmW#Mk%e%&1-4*s^0J5w9V{t_PJbZxjsJ4`w#{| z#xOLRYNTZK{Ij^#h8qx0E1%jxEfmYRFzS~22CMYog1C|8SN`OsO{73UGf3Ly4))o> z?-vtS$FZZoF@<;=NE?QF1nJRH0safi(WbE2iqg7cPmJRL7j&>^Nu`OZzw&o0(i#GZ z3T_v0Ln1XLtv*2hZ?!VZnu%$_RA|fLTu~3Gm+*9&^;HqQTjO4+%3~4h`t@~IwG63& z?>wrHb(yAeaZ6~-V>CPBA;;jAOcRNi$mhuMS_c&MQVq}ce^X5uEqsVw;-S2U=G|ru zjNjk+S$c_O@2NAxE%JfVhA~#NHzDCqU_4mGrJ|*YGKFL*axKN6ddwXgTt|!}sEf2e zXU$yy52{fecM{HMFt%}ln>j+^{t2W0S+uaFTB-s{T&?F`Vesc0Mlw za4rv+`WtXU15HVP`+Xk(y`K{lDPc%QQIxK#?QjC$GhgIJ+e`Bwx$4{H;U`HvdJ2~2 z2GOL~qirQNJ46v5T6U2ULFyIC7}SykSa}>y91>BD9aK;MFmjdb{6U{y+0fA76ZGy& zoAcyZ>B%agl~$xydRh&80Uk3w`TsHm8Avl?Q|?Ofx5+9~|8I^U+wJ8`V+|$oN#MKp z83iA4Y<^KYvf}B3aXZ%9YheC(%XQ9@Dq* zL^JRU#dbYJ@2Qvx_%dKYL18QQKfOcuw~MGBZ=neZ%Tsk<{3{GjMXEjK;YD*vJ^u23*uw&Oune|*9Ji=haE-4ANWAxz@;&%fYdEI@kV7j-|?KR#sNR z^@M0W;JBH3$)6QD?d1JtM7`VEY-7ZBk=)welhb>as!QGUU(u=*g*#lOApn%(dKWE*%53T z(9uHIq8Q?~#Tuysef~8YF^Y4$$=qBvCkej*IDo1)^dw)bh(d_zhwb+l^dnCJ2BFJS zA}UqzR1$A4{8!rj7ujso!_LCH&Hs*sfW*oE?3j)Mh`2cZfyfs?sG;qjK7Osd=IJM5 z*TP6f$+mb$1Tmug|LZtf=>gg^bwGr^65k|Ds9pM|LHv!X9x0qvKU69gB&h?9<|XV; z?N4f_*|;%eB~-GI+4spI zRAr6TEUP}0l`%Tr=D}40c9cFi161e*lm+XWpB||;YGIdy1R;%J!ROl= ze|tKL4!-hgk>M#HH>C_TmN`j$CU&ItSoKCnVR9mc04*qnGCu`qtSR3}S<*%!b>GbjURTPWlqm5r&>;Hk6>OBT-0;Z7#94qJ?tbL3jRnjPQb_l9>=TlFY{rAGhn?HOrGA6MvhNnnqwDmL& z4>&&JZ37h(F((v&kY_8|BYg|@^>Iltj%P@!1&0VhsckaqcxYo1$y6O6RWhAR`cJ@i z+(JV217kw~2e--9{R>}M?1kv*ZZl$#@3&Lu=eK?1tBA#c2XGAoFp`Qpwo}_4JXbLA zM;Ojjay6HQ?ElL>Vd!~yy)`<9bGU7(zm@1kpwWE)LyU&v5`lg0lYOW1_z9AU{O>P^ z5d}j=|#qXVzUk-Q~?_b6o5ZL#&|wb#?3WHTOcY1quk}WCHsYZBpX|l{I2rE{FkgVh8bQ$O=m$HL$Ti zQQ>x*|1W4kA$s9!y&Kjc+V+K^&V@-fqsjE-B)5$j=MFSPbx^CX{Dcf8{KT+5cP66i zfKe)QYiX)4wEmczTJwa@30BiYP)HCke9*`RfvNwZ;3!c(-l{Z*-j(PJh@U6kl#KdL zMW3~>=|xSTicp9L`rY9{M|c}j0agAuQiH(^yvA=B`vhBpWrlzw!OR-EXWP?Z1A*29 zdkWYS{zOT03pXiC;ocq#CPHW|}$jM~Z^FLcRRe3|s7xIoy#7=3hbmdzi<3F;mw`XLZ zT&{ip6Y^jSreuEV@?1{G!4l1{O|nZnQ^G>)d=ai7J2UL<-H^$4*jbH8GR$*& z7zxow79^3-gD^^LpHK8ML!9S={SOR-a*KkW8hX_K<`JTfdw_wyHP1dc=R2z;Y3v-9 zxyswrF?7gdI=U%I;@iM8PgVa5vRahp_cO4*6Aplh-ai@5D@+48kKK(<@WK@3>gC!t zmyZVOi*77#KX|BCkGONye3i8tjmY6xcgZ9<+2zOfND<*zLt!CLjv6N>yVO^m7ppu! za$O|&>l@)e)aEBP$*)UkXA9%}blsHXT8 z70DnqR;b1HLwK-;f>?Xz{f^~&Fze9xqbcLHi)8*ndcj`$AhRn#810>$I2?v>{@1Qu z%MWb{s*}yb;!J&MA6c)0LHFB!=pNK1u-#F=>}e()5uTc{2Q}}bM~{fjUBU6R=$CVo z=L#8v^woG62ZEoMytATO)iT6P!>{*#Es>vOMK_-Oals}{zm((cPp8v0BQ01#d_V$I-T`&)iHW{IrtGt#=1-~V^;MF)~RLY=ByYG-ppnlu7tQ$(pe-cBVUY)CD2+}ME#e;OkA$fX+9~T{4=lxMS zd7+HCiS6SE7w<^f*-|d{UDwO``k(gs`yeK_Po%@#Wwm! z>2P?9NRv=DKny8hoC>Z+f>D7tdixH^Ov2j~7Su~G^EMYBziHb5Iac4#V{wURt@LX~ z&S&$3j+_qjy;yUp2H(v1);U?(2j39vfFF7lVNQ+i!^`TXrbpG;X3Wm>uf(ZS^vmZz z@@WfCD=>-HER;BwZs62u(@eiI+IHvqD>Xgd3<2HZlKGv&|0JboS*quSZq~}1XnS>e zf!|;Q1NS9%e*XKYsuPyB8`g>#88dQH#JbVShef*irD{19)x^3*imvOcExEn!wf=h9 zQ_2IgeaX~!?%ZL&7Z|X!dWVAXKSLzI=x;y9{T!ny|iO-nZI#S zKu5=&(eW7RX`MAx`_1_NzV{gCy8L9h!9VxB8`Us1*Mw=j2bKPb#2go!34B2Ktoe+g zGFrC73ZOI`0F!_T?}3CN>z^ixq43mKQ%*8#W+ORbyUUN=&BkV)xu42~mkJr_qkdg{ zx-IO6wqZ|N$gMxqG_*7{-RQ^+YNo_HHdIp|GQw>FU438Bpn@M7coFl~Pw4ip-*oAp zxc?|xbkFTbgUSh4GadnM)!yt!(k8OE1D{r_T>2N-m~YyZJ1wgPdF1I z2PZ!S@LTf=`qRm4x^I!)I@C7Q0{Rg;ak*ZI`?28j5zyxsUz z_h<=|FlT=j$63KzrHb3@dee%F=M92_JUfTX?gVZ(pkd-Kwy?0^haAKYZToxgfB?l= zi9LI0N~){<7LVGEv@Sa~@|Rdx3;We4jfQCzm@v&w?r4_~XT~TQoquh(n83w`pvT(F zOP-xSuP|{avirSK+*xw1RcyF{o+Dve?4XUZy$+2`(Y!%&LEG=s{Y9emL0eg*9ltUi zG6_bq)T8jxMu%F4hQSZG8#B(LCn~e^kB_YCf+B5wvpVMY&&Qvpe=6&c1O*P-J@Mj{3#kdo~z0Vykvx(!EsHrvad5P%^FP*D^stWZ4mAgvn#;4J4`%yJTyJ^9|3Z~x)m zZtLa20;f1f8_vs9uIh2eKF6=$xO<${TkbaTCuG^TVCX&s9v_>xZ?8ZFsFrQ98>k?UX7+v5A)D}v2u;Zs z5;idU-h~}YM^Dd*KvwB&=pzekp_34Ip5X_u3Zf^42FnOcN1`8|n6Sxh&Nx=+Iy6$N z4~Ee=@ZWG{sQJ)xNGjvu39qX8Z^2VEl;Oay>3#?`zI*2mi4p59K0253l#D#425S}y zMMcFoW=#*6g$&2e6gmsPQ1;5On~#D=Bib}@P&HN2l3|1spS++vx?4Q2bF|1xOo=tp zdLX##X4digMB&xA)Q<{hf-^!gPTZv5xapqvr{nlZ{V~3P5X)K9^poy{kr9*R_tv~; zvOae{u3lZ$BV^Jb64oVVQS8jXO=&k0U!+7Ac&A-bqRliF4bMxpwA=U==by-~2l%Fl z@87i45xJ<_X1&VZF|k$0UTiDZgY5ik=QnJp6ur@=kllKA!+64!#7OB|m%Lflk8bNI zk15c6a5)m)Joq|mYumOIEqTqDzaJqdH@6OIeh^xf@IvcHUPQH6@@M35hUJE>oW)Q# z`+UwnfGPiPz0q8xj{sf}f@I z45@Emkvd&HJGp9R%!AGzy@}7gdsiS>3_fu29*|OUkCxCh(P$Y(O0gSVrle)hJ-IO^ zLoGYaKt7F%wfC;+^Q4wg|? zH0*icvhaJ$*Hk)($z!GW_>B~QN-$C@#F&k^UCKPrU4Hd&^&7`bhlRR*RvphZ4q4c& z6BQNmGHVWg9gV#!Sy|UTYND%?FfFfJ=7)OH_MiB9ORAc0E?Y}}MAvGiL&U6hi<@Wi&je<2 z8u^~4eX>$uh2Xy)gIUJwn>}ZMK8HH&yv);k_NudGl$p_)X+}(5S3ZSQy=3l+zTb|I#E#7QbOFS*Q|M}29v($X3u^=kykO{@>>n$RKI#5m;V)I)h z+xNpW_bxZHXCgtEhw7aSE0*tci9`6$JhY_$K(ZgXRh|_?n-?x& zbAZj|H$9@CyqNet?sTg{S5EG3Q~9SSyQ`zZ&~K>89PTltFXz>ETp!~=2_w%i9u_I4 z!bK6w0-HhI0Tuf{7iUH!nZ!4nxAF&KmT8HWS(NtsOLqqD$IcGF8U_0IZKB#J7`Toq zswi+_amzREiBdtvnxYB@ugiW;S^uaqR=rQYdP+N4BLre-LBx)UzDlZM%?_txsz$0R ziq(!&-RL5*9G3>9I&XV!mCt^TPnQMx8f0>6yl%LK_pT~H7f(1bv?QhQK%9l46YwHl zOba|gI10x5hIDZZW$;Z7q1eXUs0=nJS^%4r0DKSXx;dqD!gs%R!bgqZj1%lsX`Qz} z;!M}i%*{c>M#6;yRz`7NdKo?}Ib636mS#72cL?(vy{rijvhQtKUNS2DS?GC3)Sr3b zc;l6{j=@2BL~uCetb&teBH|jk2-Dgw41w#nRH?sOoR1RHb(>qiv{3)(5H-I^u=tuR z`EB--XRX#hm~QuKd21OfxGu*2Hju#LElT>FHL`84Ev8dO za?rxL!}u=GZr|=f{REL(X?8w_mbbMcm9MyUIFNwYO_>k3YUXZ!?BX=jvu$#ESy^e{ zOS_+I7ydLXCeXIL$#Hw>Xk&HcfTDt*0~;>0c=&`aFO$Igp>0)1!$P>LkABQ{3<~0R zm3m`*Jh@b8#>A4UcTxOyF{}G;hasEi5|Tn73Cu6Pp!A@!dS!Rxxrm9Zi>TiIEWWlA{1e6lUy^Gm#s-cZw3CI;^9C+DZ8Ya@iqr8sg_AFZRV8dZuu)0h+% zruTa|YGCX}TfVU~*=~s+&~E{CqR!#PH%q73t+nwp6 zqc=XaHZJ+q{Eh#%#}*wmi`RO>H)3$M9460}jQtj-p`sEBm3uhCCO=%e_wMw*RosiM zo3Awq+Kl^nH=YI#J>GaVkeRIgf!yigtLf3A~5`Q3b=I2&K9@stIuT0^tOuZPX`npxxPPS=`Cq%9~< z{<*Z=Rv@XDQ&glUCb7LNT5`Iwm>*d?r=V6w)Gya&W62Nc&gBN|e;Ju<(Ag3*|7owM zfJMjRXhW*#;6ZIO7yxSKIF$ZcJbS~VoT<83RH*RqLZ&76+@*WNC+O_I%*>57oUE^n z+OAOcYw|iK< zMl{=_=Y~cA(3C-)WZqpH+s>)-?EX0XAeczO^DPIQz#$OR#@Ts!JB~bolfRb$>^Qm* z9z_Z_(9@@dfq;jLBkM^xKl_D;hi@H3pH%AnVIcB5n(HS@MEb~ zps%ldKsGCVkg)F#1(Z2=dPWOPLt|y!ifCvc?Rs#-bj~`Xrr6zcd~v$BhS?Oz3+yE7mA0NgLq#`@A1T*Doz?qE9({&i-Qn5akDD_$K0V=k$G~nRd^q0d7XQfl_a}TG4Dog!^B$k0OWnan^W2Hk)M?5LWLYV8@eJ<_ z_;cb^(g=eRnhfFyDP}vw1g-v0OyEDk@IH@Dq13ywU%-;_%KeZ$lepsX*LrM$f!XS- zn?B+fBwWq+>`_08R>J|cU4*dlW{@^=Y3A;$*UbRAR)1^0vuJ6K8@GT*D_2+#tMJ}k zaW7iVQm>LrGYOEdJ`~?Gz0_MhHk5I$P^!CMXsI{C0;5BFP48h+1?X+4Hi>_olc_ALr4-Lcue z-Rx`I?Dt;34nG%KVXR|Q?104wlPK*5Mg<*(k&&@BC&SCpk|p;T4ChA+sXZw7J=fl) zwCY|r-|fq+qCAZ9k$ErF()M7Z+E4h+cm6?3E@k|nNwio=CSoyFEvV2`4ruibY>wg4 zc;k(syL8L0lh8p|0pc{ zTVDsM)}SffARkQ90(3K56-GB|U9##pGBD6n{%|M`6;vADI9A8QZ>)f9cjMH~7b6ii z-SzGUhOzPSclb81Un6aKh$BWkal}RVCu?s$aJ zp_aFFc6QTSYq>7O{{!cy1pFG!4iP}GCa+UkaR>o9(+cdfyXt6V=J1 zv>7;J!T-De;Zn9Io!2Q=0V+NS0W0$hIzv?J+6_0{+s0RehCoa`i{}tVX_nlT4h!f| zc7mqGb9wDU|TOz=#rA`fwwyU-D23S$FI0s;c-YalEW zxRk1W9ksGZ`Q)4AT<_C0)&NUOe*E}>D01pa>-`6i0B?u~ZZaB&E$ovUzMjSgb~UlAXzD=T86otJXZIvYg+qz(0lNPm`)kf=Tk- zFM64erNfe$HZSz72lSazQasORz0_N~Hoi;iY}uEmhHO~Xb!7Z}j~PO92>Lc=bn}3b zKnPFKeniv@AIIS${GA|0$(Ju*Fk6thvJ%g2dC@MQ!cx3nLsoX^guEYei6@rOdqM(3 za(M<$w3FAved;`nn4t)L)>>KVTi`TJ_*E8`&58O{R8-jERe|9hP5_Kgtl(jGJ;VNl z><3p2*1kt$qLy=W-}1EEa@fEm5z>p8H5Q}Rtio?b;q5wp!oHVTEwe)NjMbR#%v8$< zj?~LWypvM{FUEe@^|m>SnumXccsF(gclP^Bf!Hi=9aah3I|WYecf^f($E5kQ?Je(F z56J$hmHDW*ytMX*cvZx44=&|r-(E6z`7-t}>+b#BGcvwb-2C&djMNU@YmJ*07DxX? z={Ze>FMm&oek_*E^5PNFha3d%oe=nUgs5uk!HLw5O@_7Pq!Mi+KIKIwQF9i6a=UqW z{BQv7NI6Up_5z^EDeQvV9Q{zs>d{1|_vtcq8Yjbp^z`NQG$oI5ZXbzR-p1%dYisM! z&I_TN85r&+C2>Gfw7vq(Etalou{kb5581y|oGy)`<&LN4&w&AxZ)zxsObLt-A>|;5 zR1*g{%2;B0;cIfR^YEdzRptfblo&7B&&$i(d%={KcWknDn)@` z1LXfuQ|}cN+zf6CgRRD3s3WYdT-hbUcyAk(jLZ|ms^a?kEwSGJFs|NvD=;UjOXIEQ z`@7ZdAG3QJ_Uw(bHoo?m!gXf%(EzKpSNN@3?@qUK)ONh!=OJGNfDx@4S|*>1JN8^=Y#5yh@|My$ z+r>E>&_o8AOyosH@awI{zehx?EHbWAXZtYuz4_KD%8fr4r`wZYD%86qHQZ7Xcicy2 zVW>IeY8Wqp=g2!j`~X02gkg28z>H08dE1xmMYW6z=eld)=jzT*ixJHyEN`Rj#Z!)~ z;yk~)COWUZVdO{eE*z89>#a1aejI2>)#>}-v!z#bJl6X3^Mc>mRv%lP#=aj^OYd&$ z*ai5*yW8R2Kd?DLqdZ(nOpQ{Oj+$}h$y+xGdy|sZYZ(~u~hcu-f`<~^z=d2 zK#`@82@SAv>-SL8L$vlylJPuyd3bovM+62cJ=v%9psSN}r|nmpMD8$oe?_DHONg z)Nbv5~5 zkaFbrU_&5SB3+;9H!a7ta*q8d^B0GICc&|e9HH<($hc(JMcH#Ec$ctna9wfd(^C(x zKcRcQ(Vk1YDOG0alVtI*+wxhb0N;5E0b$|NId0WgPpCd8n5rs%G7%Qk=G^+rVTGUZS(2I z&e-%HYsj?`pFw}%BPCE9D3dr7rgL+mgf4>7t-sD5IkfsR-J4e=q#9p@sS-9}o<-4j ztuB5&%<*>G417&9RmjTai^kya^Qpy*{eL3>MVz;{+C?lOb^z7RENRPwo&1PlbHQ0fUekSwsMwmmTmry#fz^=yiQD#GEkl;qfjD zJE|KuW+vn}Jd!xkQ|jyBSic_<+n^z1h65_aA3suI@GFH!M{&NuiJ5MQYCw-y(s3ie z0!nNRws|tCTxGdZ9`avVYdxZ1)?TQoogd!dex}&h?gcLFdI}8uajK3i&GPbgb6vQz z$9VBRWOaJ)Rx=5Cp7G!QZn$L{$BmMKd$onQ`TDP4wQJV^U6W;3M9J2eX}S#>jzkn_ zYpJLvQRp@wWW_lEizil3B@?m|25hK>d)qhc_P|spu%IL@4-Mkak&&3k zgh_u1obO^E1m>X#7W+6S$HqQ)yzoBFJJB0;qYiW=TAWe{>>_d>_Ex!<`o@{6HfB)u z)|6(d@*&E`>f1nM2&G^NCON}Ju5ZUk>zkIWjZ|)K`?v8{*)dZ8SjE;+@xuy}dO_Ek z>b-iiJ4<$pG40vwGu#pu$fx<3`gQM!9&ky(!jE!I6<%fACn|}?Uh!LY?2C5#MjrV? zBqU*FNCU>-Uy^miSFoPl)_323^=(t}1Rze6ICbh2l=8J$frSq10UlFQRaF&Cao96w zkY8B4aJbZ}7BF zNhKz+O}C(qX@6m|s_i`sOKYATw&PmMiA}bZuB-gr-(7I??$~R7$B=`ShaU@m9ye#e z!xUz>TxxZ7pT61J?pE^tuFut>FCLSXq36@=EnD69A8D0Z0zVZ*I^)#cOZ6W2ot@}1 zY+f{JUr4ndM)m3Koyov??iQp$lYlzDpn-uCie8x5%?kmQat(X-Tu~yN1%1@BORu&A zBQ=B%-B5c`ds}DY4@{764uR6z6AUsj8ozS&>J}DXe}4nO(}eFuIUE068gae}y%4Fa z;255W4ui=vs8@R^}FZF^_rR* z!oR^;uxoU*7E0j(ZKg=@x~g8oJizbN(Rt8zY+ zr}+?Q8B5qfkU*Bo9#zL>Ah_7`>7ithPET0AVJw6kwQg~dN=rE!h5hB_TsD7xV(T#n z%zBk3!f$4Id$R+6{5?vCamGiiv1lf*}|7g=CF>^X3NwwyeRuEYrnpUgdLrY@eb;&!%Y>xkiKk zG8p-Tmp>I;w(8g|OubHk3aihxF)f_!-2tvnw|-NX{DF_98#je^E#2(oa<~@Y8{nC1 z(>ZYQpMP#iIp{9fTQyCVc)dF#?{Hw{`9hf(aM<9lNQq>p3wQuqTll7EIqD%;i$Es2 z!bFKNJtOi|PEJWL4kEIBPt{4?fik2Mi=v-^`;&s$A4s-N@?pM}EDL+y$T`L5t_lh? zkVV$Eve=HI~;oI{FrKX&mqrQxxC*|{N`S^kc219t=>kfC3?dkn?>@=P zUmyj--&vxSMYWWu?hj_?2!LmGgbo~NQA~sEI+S;c9d0EMYXHg0q~^|y&<*mUdeR(L%Rig&5Ztm??TzYwHq9^X^sm44}%gY{=5g%`R#OWO$n^w}iF=aNnzHs%rs-)>q-n+KL z7C+K^v;$1->~`HiTi3B>XpJGobxp1Mn67}G9;evWQBh^P>{wcC;7Pr(E`asypUaUN zpiTGmKb6MqWv^EV=Xa+&JaY?D&dYVqcc8y1%Cv2KMrhH1CFs22Wg+sbt_bq1Za^+;<30J#b1$Ld5z z%JagRy#4R~EUiwEkeTPvi*WV; zX<1arBw&3}A$33^Mv76NkL7Kv5ROI!5U0_-ksApCcWF77Q9>NZ(a#va;MLCmgg8Q! z#?Nc4Y-|$Hk4+c0=U8z7n<)j>a0%P8PSZ|&RaP1Y(@s=l=P@d@R=nqEN=gbT%!`YQ z*Y-ftnS{I=%%d*YL{fdNcQ)PbE?B1Mq_bs7hj*pt%{0_wX)f3T1qgEvn<0lz$`#Hu zzx4_{d`4^&6@Hf6?~dNOQhF~9BOsWKQTraZ#wI_X6QI$1cZ|Glo^Eadw6L%{kC%Sv+ixkOJ)98sY-*-!nmSS89qQ2d6p=sowhB;*@7(#0zpmi7orcuR z^hcbIYQ!{Bp|L*Rcaoeu)L>q?oCIj)cbT)s$-4;SsYIx1!N&m=xgaeT9*m&1`ZerF zP49A`D`~}Va~8Tp2aJpp#O|KWL&w}j=wO6RzIp?aV%IPi#wA4kP!G2_#Jz{lr*5u6 zp~k~V4Qy|U_5_fv+f-W zf(D3aOZ7f|DTx$k`qfj~NCm#OPT8qn(jE z=$p#zoj%^D72jCIiLY56Em~z^ZLN>p%UgLhnJ_qpD&>JROqrk0%+BsRAmcJ8jI{d{ zZ9jZHJW>7$Az4CCAq!3NLl&0blao)+gdDh(L;1pfRQlKFcbZqKuL#V)-VI;_mA*m! zVYC2I_7=OwDi|iYK!k4zO?v$xpzFatrh^(51DOr>jw707u8W7#4w**IZ%#a=*&Y|y zFDX;-{G!Jejw%kyuK6yyNwxi$oj3qgq7!v$MB7_DdE&~GTi+=7!w5whK?uUbnE-^D z<2?JZh(7>XA%yTtEDAO-90=~T?TXp8KsbrkP;c*UR#Y}uaEwUO#AMw4;H;=vNjqL} z1ahpB=y}nz`vFb6b?cTsRWZD-BQS7%@ygrC$Gfr}gvJGLh+Ih5m%}2BU@jNDO2)T( z$KQ{Nn%`;8tWFxcPcYTycp zGQ>>v>q;lU98L6ASE4<5Srb}aiR!0DBtfv1<5A|pY327M=^Z|<)&3;Yhs)qzbL%5isq$eM69$lmsY~PoWMFi zX1R}9h8y3Q8M})0kIE}%Dp{6yEFinpbn}U?AlH+xE|C}Qfi0rKg95o@FX^Ks(7)5FwYr|Nl;gY}K zou$Qh4coq_9O`<*z`~zefX= zOpAjNC)l-exUIZLv0!2GX>RfoMqB-$;vzC)Fh$I5H~7Udxom{X+2pwX68W#7K%$%7 zz;L@k$7}l`-7kA4|5S^9upU)JJt>aYtco1t_-EIi)!I%QD}vp1TvsV6{rX1jx*Y9o z*`?+*FQPNrRPyQ>r{k&ucf;btRUEWNhprt-JsUMs|IU50a$?7&)R@`MK6olq#lcN4 z5QPJi#8=IeFLh+B#$cWxW<_~;S*r7pN(#;1Q^!IMl)nwTWVt4ZnlXH_tyHpU&~ChW+VJet0sL;;KJx*`{)>QS?A~7-T{eNxBF5vXY(zsyBqYj@;-8w zoa{SZ;F#^`SeK&Aq0Jut_780)o#+#%61!BS=Sf2y)NKM0gMg1f#nQ4CLAm3tp_!NvC1L{H;v#lC~6)# zL`zC0jrvZiA`u(h%gl+w?feG!Zb~P^gabT z=(VW0dO*QKE8>m`HGPeC1%+eR zqLew;ns{~xG;GIVRwa(Y>%A2Zqxai8oD`s3vlY|;G%-n7a{?FKBe8#f=evJ#O(o|m zjM|Po1@Hl>K)aajFqv2YyUrlZ_YjXlzBGyYR0!M-Mg@KR{WGs8VQch=L0Y3ofc3r0 z2_#k82H++QekN_IJ~O~o%t`t$LnUFWWn%qrTma^l_P0ef3loDJ;~l#Ap}M#D54IdV z+PgV!hv@ss+T*AH$sa%Y!~}2J8N)+RbaZufJ+$C|A-~P)vE_hDV?OiY8HzH0kK5~% zhvs1F_wL)b5HukBr8-7vM+=OyzU2tP6*y~oBu{tn;_9sHLi4^YCDTy2jjFzUtsVxX zb(Jn+u*l$XS=sKRAXk7;gu#B5kp3Xsvt8!13Q8){D?$(YqE+^yW6QDwu&(Y&;1Kpo zf_T761c*sdA86wniPLO5cUD6<&n#unk1nehn8#C`=m^$Rk5HdkPWGN{sa=a4KV(|N zqL$B;YkODPsmkD3o}E&<36P@ow6wjD=@628nxiX!oHBnwa4luz8pjuxjv^N>Ze)X) z_9&3eGNhOF)YS6!7BdzZ{+~|&YG-qH(HqtfQoI}~ynbN;_{QWsNaCXD$qe-{C^=TI z5CT&I&NCK-5WsNsaXhwywlVBbf})d(5$y7j_zin?faghRSA_= z0KkmI-^{G6HJB?a!KlzDLQg{5DwNP3oIllUst_#^LUINK%{Ze74!g-vV~o>?IAFbZ zV26dihUziFza$bQJb{s7cydSYA3SmDRM*fDnfp-3n14YDIb|lms?j$_0}&;<{qrdD zoVdkZkjyKsSJQGF+Ya9ls9N_V8@?7F5cmpdemu)tma+-7SkTKXJ@v z{yq6G5km3rd!Q7okC)rhlfb@G7u;ESt?G*Sb`gk^IC;Hb78J9v21B;>UdKdrCI07h zgYHj)>;j0kRUtrVk+{>G=8c7#d3(zS&#&E-bg8L~0V>Ods^} z=n7RG%J8T-@_s%xk7-DKtGw11=r>tCGY z%lCCkYFxr*R;I(wVi=S*L}c2^qxLy8>>)33QDXQZYK!90Mm0q<4&qrfE#U|h5BPKn zt>4;om2Cv_c@mY-tGuej(g(SY%L{89CN)yqg-zP>#j!qo|Ni}D<^pK+KOjkM0MgtE z0WDGXqvB`;f!9gy4G7&!>V{g#$baLAI!5SzVhHXjxVhiabzyY2ZpBmeEnJaBoM$VA z6U>uyRd_E%ysJuGCc0B8sUmvwn;p;&U?2}UjRwOB zkn427f+OjLf;ze{OKaC=A^(*OwpE)z+BHA zKnOCaA(U%Vw5Mc0jQl-H&H1Ul0>7e;p4$=`a=px(a__J6nN++1yyY=glD#6_fv?!F zxowiH9g4T}Z-Wv&-lFjR9WSqTC&6*(f@%ckH||dY?Tb}jcc5+{_k_MYj+9i6(<5hf zb$4M|&S^VIPrc7rmW0&_6~MhJgsVmWpgpO{ZCLM{Q8mimfS`9RaNC_%UG2h z4rYPPd2AJ~P4#E}$B&8uw&A8vD4THX_VMo4T^TP>p#R@VbuQo+axqrF-tU&+9r=`C z8ulsg5Fdw!(uFtIzNox4Vxsh=J$R*iE{F(nAN5)>%`d1CumtL$jIXX9eG_($O2Hx5j_nq z>XR;L5PpN!!3@O(6va+GUc4+%zP-N`%&itMt5nnHGp9t}?S6&u`@K`|_mo@{Pul0E zHA|gZt!<|HCJ2>4%gB>gzhEw*59AD0Sr7u#--sFa^H@igbz36)sFLEyam*ajr_CLQAH)VN*kBC5=PMyjc;6Ip}S7TcsD*f@pj)Kusq zIXlrKuPRAC9-3km5Fwbb?2SyQ0yP8O>L%c;Z%K%ym#ZU52@52yfdK;>f>FD~`NAJq zL+TmStcYJ%OV?kI#TPjy;@0#*@$8FIIj9xfsJGoNU2QvaAG7Sipal~8_pi~#A4znI z?(MYQFojsSCZ+Vw`L0-z9Us|>7THAxD9~~1qpzjum$|d0x_4|mEX;>jm2slS1BiC_ z>Fk^Ps;?V`5;_f8USC z=ks_Ec|Bj(^SaLKJdg7@j&oVtjz!taccwq?8;Md+xdpxqnlUeOtHQ6S1aEI)m5sG& z&{=Z+T(1KCdL96VY&h>gc7?sx9Rp~avv{QmQY17smkze)BQqkO7q z_tdK23uimOvpBVI9}mfr*o^-SRzhr#m(p+k^WF#6B{fxuH^vW#MxJ=H>Q4_H-&rh! zPHVaGYl2RQ+mz0w++QKVhSC2g9Pzg&U*%^ol$RTT;e`qCkH8>cUbX6C8&7;7LdP@Q ziGjE)0krP0a{++w8R0HD;ri>>FAn$65lL|lj@!j4}u&D+c7e)r=>?7puddq;CA1-_R&bv~C>aEx+-&P+r=p5* zX02G$jXye9NX*cT1NQc?KGZp z7_fPBGAClyTA!~rHF^j@zJ`IBfbk=K-e!;tM)&~4IDqVR=LJIS^T8?f!q^0)Xhv;I z;{%bcEFcOZaalrrK5m_QmG*j_u_2DwD0h6ICHt)k0jhd$ttS*}*c$(Xe{COt!kmu~fNA3rG zw`K2&|BM5x+_7x%o!vXS2M z-nw$6*u^`StQ4ADM(<3OOiN|4XtzyT6JXKY7ph{hZ?_gZ(>U)k)BZTvRk8Awb?+VB zi|}%CHXAqZs&V_beE5^#iX0-(*d=;ZBZqQHbbTF6PE)@NK6}ob&&a3+-lp@{*CiP* zk)X2dcmMfgXeQ;x7OP%P%$GkiT6)h8bA72hmc`>Za}>zCoqI>%VIm&x=X`;;K;VU&r{4{Q@P|Kze-GY>IYpZgc2Em z(WF>#)mc|PkhyV1!L<(hLf^87I|P5vqMGk`bcCrifuirW$ z%@Nl9W7kiJ`O)9}-Q=+FLfRpZt%dJ}9VNeq({9?-)Vc_Sz5Jgx`t`^kA2{|&UWl3Q z<0T-*?dYA}JZ90GC}}o_bvRHHXS{?RNXvUdJnb&q$rD-5U*xx8J64aXoo64M zq)8JrslUakP~3Jt?hWGC!WeFo$`E`{E~5S-eg??tJMfhi&#@xaC6YSmUfht%pBMWW z5sK=qQ^WHNQuJ6O^Ttg!K^vK)ivnh+E;%qdmNhR}tZdada{^p`JBIV)nGz;X0x@kM zJb`U}IcD9_2G6yL@Vg)*4EqP(FnR$PW@a#p}kIlV{ zO{e>^5P;hUIo#YvyJ$?ulz)gRh*dHng9Ci0CX~Q$rVzX@uKzCjzfHcXLMH=D$4BZj_y30aciVj5aJ)XO`H&7KdwJiEzUs z=>=vt3IZZ+#M_g`k61DdvsY?t=#rI@0n6Wee1K9Pbl0)_`>|62Bh47y1Mi$3vb|cB zk;H{zmI7pUuMLxKK%H={G+wQ{T*?E8{*V_DRK?vK~xZcng4i8qcUMyv^R%FlfSvERZ(nW9!^z5l; zp;ehsMl>_o^!4=v9VV`zJb2Q+7e0BPNoEetitD|5wqtbFCxE(8Q02Qk--c?}h%=z> zeL;oN;nSUfRRs0v`8Da4_G=BdBg6X(a=2bgTJ}XT&si^^SK*-H*cX8WG@pn^vy%@Gtk9e+PWmSOx zz^%C0gC&WENPLc~M1AdhDZbc&{$_^V&*&`Wil~g!?@r$%&AN#RbkrguK{~Vt?Uty4 zQ9rTe2$oxBdU-LUA<~Sb)gHG#Be(&yUhJwiHnFQ_k3D= zHi=A{PgpKl5m4Z)%BbSMdzZdU=FstXHHp5Yay~doScMlVqBVnn2z$c;Kh*GXG!i#h zH8^1?x`eDGizXO*6o={IbCXNRov5%k<*NIQE?$3)w0!?-XP`^l`laM<{eduQh6VcMaF%&`b{0D(O)<>zLO6W@u7{WFeWxw9DVd^&c^eTl_*yYBUh zUr#cZE8cgZyeWGGwW`tay z2sB%J@qAE`m6e6lLkb2X_?NN^UZngBNtZdvm6I=43&{Zxm4}IFo@;Mo$-L^$-6uJT zn)1}>{j&V=R3v&7BM^tlV(MI?HZ#KEVEx~9Tczz5Er?nE`xf_fko{#l%2j?9r`fRq zdr=E6?wOf@%W{KzM0l3|%P2yzD4JvvMVE-y6tAi zLKOrpc}|Dxm0q{BxV?7A#c!{3jnBN(p+AwI(YGB%;Ou1MZ1L6RCARO4g-3mPPEe>K z{e*(RXF(1^qv5}*nVTik6&13=lyZOx4>UjKX80bp(y%fl3*A;7Ue2T5O|X3YiTH!2 zvyfuPK2cFY!%BY4#X0n)p6&S+qi69M85zK;GiG%{2|G?_7Z#|X*ak;W@q)`7`@DbJ z!suCa%h}FxP+N-k5x;@uRBBNKnFawuLzw6rUnZ9w1;z?oBD&G zD)5uGzb4v^)HP)6-JMWM;9eK8fG;- zA31)A>We_g-~?EKBZ4aPP?eVHuf>9?W;qba#ar>8=v8D4wx&3`JsPqCSZr!;-i#ZJ zt{dDrITP)E#Z@2&(y!$g6e-fktP||25PrDdcEzhhi*wM{$hG=V_sMR?KIe^co}jw= zidV;2av)~e?=bLEYXyt;`ZM7hWM-zEPX;?dOKeiNlz#8j)Ks6bdc$ZRSIfNK$MN>A zeGTpHP%;UUNp#oF3<(AHYknDf8yC*l-L8iuIRClx%0~>akUM1us+$aq5-}mgtT)I| zCQ`|eCGeZXBR-Mnkf|Ba3??3xwd_5i8J8Zl*xZFgLB;CeKE$qnZd^$s&|X^ugeIKYu+0?TMZ@&&iL!s^h~RZGFJ)Wj=zI zkufD7KxoM&!a(&r0zYkTq+uo90Jt-3f{dA;UUR#O3;Ze*4zIP5@m}8Miy6t|~09u^1lKeVTOuVk%u+Dy?O{3{EN8 zqfQJl41P3={`3^W(HoP8+R+IJ>!{|NvXK%!$7ZstuX?Mxs^Ic4w~e-;1{J##-y2m6 z0lZoIV8yH9b&+Bl9sGwgs!oY&YSpF(8P|SnD{3#_taRY{*x1zgiRi$T>Qpc0m97}K9&BZlWY+zX;wjtiXzwgI6-&Z7g2NeYmyW!698ebXi^fk97O5FQ+t( z_ycyVT@aAe;rlL2u)mCP(a6$}vP;pYDyqdQdRhL%svyY$hORH2dmEJW^@pa@O+QRs zlAKXIb&&FqW#K|v|9-QtFZFE0j*pIRy5^cJ!32V^Q~+GiKGI%oV%vDCUc)oVL-!Eszq7$r}0J4 znnPWqF7z|dbLr05`|T-WlY8izthwoGl3Jb1jg^|Vcb(l2IAoRHj&HW^&+lwk9HeK> zPgRoqS@B+@En-wvLuGtH(DW1wkdcBgf2I4qd3Wx{ZPnqGn!No3je;8nBR^l!vsd>O zei+kml<1`T;@lh%F>`m@8{_d1+NZ2vUN~;f*S@wOnho524XvW+2ey3y;|YHZ3R5+@f1OS_)z!$X z7OPUsdTY#wf7jKE$`~nn57rsxQ)6a)wCj}W%C6?GusAiOA9Od!@%WU5oge+iCKvW# zgEJPk-VZC8kpjbSM#dhN_e6k;RTVOA%0B)4T*h@Pg029+KLofJ(ysJJ+Z1oEF}DV< zM$BPK6vW#fMw$#nyBT{M>+%!ED@f8v)sL)cgf4g4_&yZiXhfA~Y9BF_u?Ye_SVxOm zPLxEc%THx^eVaaTu|+iWu|R~N;m(`MnTHP(WgPrQ!!)xT&KWj59pcWeFuLrP_Jrm*j!zzo>K*%0y_fNoFYS-+%W0nD_PW0)fRb#oLt%m8~}O zf%=2mP5Ow`#bB{(=fmic$plH#b(aLtUd?zC!{1Q$EB)0rD2$6Ir!4$wF5w)1L!k(a z$oGm(-{a!r3$Jwa8cS{gQ=vF;(`ne1*b60GGaE|PwBOY`4AOzx zINV(cGO8poyqbXSI)$DL5@B$VD1Ii!45}J|N@08|3Lx&3&=lmf;R9L;3jf_d20z(aaw3>(wM1;_70C~90!_- zdD^k)&AKQP@!coA+AV<4_7c28W5tCu|02cW=K*Mr>}j~RP{X16Sz;B47w2{H6-^y; z64p!B8Eq3{niws(ludE=*-`Y~rtb?n-7mjQS~lk#^IzoP(B8B;n>)y_adN!+b(YK0 zl`F}3pew1iG^AUDExHX}#WEh~-|trk3Ix5vVr+2W;|I=kz~>Z3$fAxj`-y^Dzh!CU zVQ3(w&9~ty!+-dJCX|8?KUg&kq4tne`ca8BMlC4!Ly!p*;we5#_W{fO&NZ7h9S4vx zhVA{WKEI_RJRWjHmom#^SKQ@+WUL@gxnpIHGdZx=A?lTPrNrn0lJZUH*}XoxCS0IT z_e|xds)mM!p1RaMR!Uq%-YU12wAp}FlD3Jdjm>)-QF-br`cqjXYEMP3Zh`~4Hs%Bo z%R?xfj)AV@^}Jf;zw48{(Rjx^bzt^jLwYB}S&&w?5F72xvF7FE#>cPObbc06why(n z0btz50J-27=l!%{J_<}?Iwe23rqTO479?2@`kFk}isK3ik{(8c%zrFk?<4%gSENF% ze6Ou}%lY@FVL0I>bWe7iO!4(yhbG!CKv*9?{G8eT6EPX$Iya;Q;K4k#YqRQ~Nz)!T z|D4wtHXvoy?Qf@u(*4IL0IQcloP+GWjdV77PBy>ju!o3|aQH!z^@j|Gi}~d-R>L+! zL5q>YLwl&}=Cj+X>ohv4+4zzB@86>(Eq{$Z|q!3Rm^S;kW z1?K6EV%y#)e0g2ak_q)1Hzk){1Gr0oBeY%y_#t%ef>)HWyNICo#E0Bkk58IO}0k2|DT5fh{PVX#e?B>hfhCG|A6C z0?y14iL31hnE&gAbmU$#bbFcuRRK(q?>IBW4tUtT&dx&oJ~8;nfYC-~(KT$*Rl#2`g)mn5bbUJI-#|8tn<8@U z4Me2_sq%V|rw)WRUx7B>5md!uK&NrXqRvsjGymqzumf32ZZSKT1^@cKYH*KVi(^jO z9z;L~9&^stZQGciaHiNBEc1L9bUF<$aO7gF${0eQEgsqyV-S;}Jh?v%6Ako0*AfF0 z^ueye`A7&~hS4Jz!!dIpN+DMY$_Yde^0paXP)YA2MD+&LXdK;NoZ!HWoWfO9<&=EM z^<(nN!(ImG@SQXWFC1jrBFF%UK#yqpV;w+n>Z}M~hxZ3%Rru4@x`Wge^~5A+B_unT zF0g*2q53G<>$=pv&PLo8R&3hux8<-iv8byNe`cv*V66@C_MPu(NFO<|oF{D&8HLya zfCB9y97ME2;xQpo!?x{-OJxvrtGM=>ABi-4y7Nok-)`yxw<5^U<4#88L%;k^eKUNk8ReK%Y=7y4ZK)T zKLs>1jrt##lav_p7tZZ492Z5aPHCVHn4hqAuB&t#nDsdo6&2^VkcX%ML!8KPFfEG- zX#h0yq~D9>TgA-mCC|t;w*YY%aDZ*$x8F9dUi)7kE;|5?7yx5w85zu5$U*o5``I5Q zJjcmuRG|oQ z6l!_`#Bj+x^+R^*DmOU4$6(FLfp)Wr8QIeuW!gXN-m4HC^9Pv7`1pJ%_b@#)3wIs3 za9p5#>7WHGzloe@pd#?8m^Zg!-eJd7fFDNXRxNZIzad-{AsBQj4{4%occeg~(FiSuX-u*S4{Uq13YiX<`gyo4D{cR=?V zK-wb=r4xi6To4|G;k&Zq9zeCIPp(J`)TRYrE*CP*pS$v%Sbnt z5a!l3Eu?OH&e z!NADK@v3oLwh@>yAhHur7)jzU-YMZ6;e?qG42!t4%0Q3AE?HKMnCB~D~0+E$<{4nS@ThU2qBj|SLS;StkO1u7#EpBW08 z4M{%a6iF7IgR1W?96-+~&r3KoeM)L8iv73{W==8#Jy(otz`s3)A0<(0V05&sm52F3Q590cHljCiBQICZ zWY0g>tbZT(cm$__=1!t!g|M(A|p&nADx03mBFcq+9TIUmzDpxbo~KI02NjSfj6yVQ<)L^a&-U z=XCHczM=q;o#1ouKye&LC|z6kzQ>*pv>%k0aosaKO8yQ|K9a6NZ{kWCs5$W1&WPR$d0(E|FB zY<7uD)-M5mX%CQS8k*w!aRh=UMw~`b@Z!(M*oeYyVWSfmPlV^mIQgX>TcCA2gw$HN zyX}#7*#G$|OT;`Q{f!Imz-E?f-ou{SIQk^{}DZ2&kOf=3nMW)iLp0!F2roT4Wu_` z$f%eg*^-lUy>N-t{jl&ssq$kFJq)_2YK7LLuyF{5z>+Ag3nd>tu3+1LZIu(Y7!MJwq-*>I_>rqFz8-j6&AwlO~kD@L*Gk1{o z!19A2bjW*&UI7U{f}bkFd_hrB5#d+4{-^-4ifkM7-nM2YW<|K7q=>y@~?;O z&j0Ja?)&o;xTVG8c@kL^%)g0c@KC{Cy#j@hx!e$1-^ zk95na2`0wEcYkjsX4LJ;4z-a6S~qeLU14*a8latzX$kE3 z1J6Ez=7;Aa_+CK6?W^^vYpAg-f&tXYgVc>vh>)>s`C9&qh$P3J3gwxY<(8NroqRnP zM!G)x?kod4p#)3wRMbrS)+KZ|aM=*2cS7KdU;pvrM;_%6*OD6eRTLKf6Lt78Ra0*o z#wzSiIFq&i`bgeueJLHpV9j=@L}VOSMK4nhat0cUY-Pd*twR1p5-Vb+1fE^rleFYy z(sM=nlSf7h1`M;~Y6Wy=RGEo1_c;0axqRzk$q0kwTzII-Ka6utHFDaYdxwsh1RRpr z0RDK|FpHI?T!X8&P{viPQjZ?=7sTWX>Hh#)RE>OCs683ihqVD(+#BIda7G@^#LS#? z3G-Zsld%8Hz2>reqa?@QkW8Bad6EB{Nh7`KqjszyIvQP7(Mk|%iXjJjJ;E-M77KYE zRaz=%trM$4i0_1a27F8%^^y+h9tD2EljA(?)1D(!_nn!MK?Pwvkp;?%CJ^;V$ z3H1;vzXef(Ks4Z`fg>(&X=(ZTj~(peNajU!)2^+n2^kvA2V~KKNLuUp*nzY{;v))D zM~aB)<(1gBSgaG^GlUaPf~VR)A!i)J%p)rMkgHN4l=G>m0namvs$}q7fe!#_QRRv5h2_GBD5* zgBeupg7C5m{{z2`BPiw~%YE?e{QjdJ^276x&jzrQ_2DBpcMM0_;n^B-6R zhq~gpaFCb`A4hEi%Z=_Re@FKXO-34x_Dz*<_Ql1)W zSy};I5ehc&)C}FCh&B|O*KBPGcZ+0QiB%dc#QNm!I*lfzL0C^01X-ag1IsvLZ`Z@`A)5m>*%pBrROOkZIuK=Hr@q2)-bb=6t8(=FOY%1`ZjY z0!%>p0@}Wz3)fc99n`xk_vl}^6|Ca?M6PN$*M1|{7Gtfcg~cVDOZ8+^>L3_siHXo~ zz8>+fO@mSkNJf$r^`nCR*(-3>dTqh5ao?Rh?XMi_j2>y!$m?aa51+)?bGCpkF zTc5U$+%jt0cH{Hzg~81Nrs;mbfCfv&`@djfDh3f2A{!tqr*|M@xcyZ#Ie$fUv()Lq zgXNH0;BY<17Td1aF@p>n9Se3^+8Z1KTNjXugfVvegS&BtVQ5+;go!Zh ze#yXwZEh5T>KD#3wNR`)g^vgsxMAA$oflu$r)zIB*B_|cieygW1Lf=ioaW(|AQeW9 z<(f7azSHkY8%fyOaXukN*N?nBC0JBoS@2Y16&<+JZUesmA;1GvUM5HsPxFK7 zNc4A(6LRHkoTz_2s#hQ!(9*MAM1^;y;h@C!?MJEK zNr(v7a7m&1*#&z^r1dKCdMmMK9e$;d%mz8yhrB#a=B=OV#kEbaNsjv zv>;GX$*JFmF*wkjqZ<$#=1{NSWY-gW%#HfR{s|&pkroqwuD}shcqiE#*;HkXYwHr^ z_o%rCU~=^>!_Ef9fGl1i^LH{d2qg|)7SRW4$Epwj5?5m$fYRe0K>S(-uzRLPvt~ol zEFelIZy?8L=MYC@SbN{H&p>O10!y`n)G=S!LmTIFWFf7Oi-UH~r|Tt$7mg*vDlUZJ}~ z0yD0!81y<%2X)WM+z2$OMPA>67_`k{1?q;ajFRE4BxaM~En3`laUrV*7xBO@3*dwt z@2Ob0>qdCid!zQ;d!ggHon1Ui2V_siZEwh{&qQKnP!&~z*jR2KMa6X6N&6Dwd}367 zMe-bex4AI&TG&l41`myjY78hO|l5tSEyxzsoS7}$(-A1>3(xW4DV?R>o_T~Wru z34+iH9VhB;R~=8F#hj_Ous2?S{NZ@TI1-N+SQWa@1dj!iEMhH5JWS@m)wySXHkUfU zYjLjKBwZB9QSjjd)-XuA4IQf@QzJZ)_J4dD_3nSl@wahbjodp2}4*_IE=#zC{4bn7pCn`I2zuRCpd)+FB}J|6iV}tLtc%!!*+q1_+zc774r7hw#O+ zOI!NoAgU%fQ5Zymsfm({dXgf@uIFf>Myru{D?Sze_U_TfeqZ>}3kc|qf4tjiXg8=c zG{vt6ocZ2o$kGo3#znMOeA#va%|j^m_W%xVC9~-ac78LeH^?k|>#@dhQ-DZLeA%J# z!N)tCj0RT--z2W?9M`6F>%>8!xN=z8Hp+WljvS_pE+vhEJ%X>qJUrg^eZCc z=0dHqz=w%i3la76FoWadID$YYOl;wA4|IPQy4TNP9eLudGA9mlU~9<(P#q9J3LnOJ zC0X&M51;Mo(#s2ix^>ki`m33A-Bmeb12LAoumT`*5#)OjyuPhHY)_)4hyn5YlNcS7 zMB8TQVN{@v`7iyOahiNLz~|~=rF#m#!78zLbc=l9!O`w$hlv0|$+&1=s{6%T9Lrn+ zHj@YDG3>kG9UX}vfW;tsLTyJdDeo>f{q;EIPwxMgL~ZFP|D@HYRwen%{v=~o%f1zh zmpS>aEB5nSFG_f^iMNL*`KaN?Eo_*E5^2~rDonx8Bkfx#^OYJuXFw6rfb zmxxVjWRContF_|M=YIVRxZ~c>RdhU>=tRhs&uztyo)z_J0SdwPlRI`B=#-i~v>14q zqW>}3tew4*@2sC;jZM!|yHPG9!@Ok{Pan}N+|?KET(2T?>juLrRDhBu<%_uGPL(zYUy}J~|J=X( zMCow}vIAOqu>fQV3}Ab+btF#rftHgNzpD27?n)M!w$D)bJ<_rtyr%`l*e11@%>%Yy zzdD;uCTXqazq}svIO<1WX*4dc8k4<$?fPq3{6giB2d=!-oSUF2D}6^RIpt~WfnTN1 zCp8&Z_13$&Ih#%VnT`uT_s9=Yk08Etd->Nspjm&TWbu)QKifHEA-T@Eru%8twvi8G z%61#4Cs~~zJkWY3>LHl4&uYahvljf;XWk7h3EvglZ|uUT2I_!O^74NT>i$bx`0zbs za9%w6td2ePhEv_GI{Y@Kg2@4|S~`qyNG_q}lh01ez~x4r*eT5+%%j;@RMogooVpU9 z4*vqT8GvX_(p|U&h3*J+*f%gRKJ-FE!Xn;^o7>cEmq?bRjllGcq|0Wr-3u0@R{xXu z{{Me2r|53uqrHx^d9biS;j!y?-?8i@7!`uhirc#FwrYF~$GXOxsFun85|&qOpP$Ar zY0)V0|1dLciY{hUPK~Fn=H+sZPSppM6DfH%9d0Q*KSrvx_k8yDF~DQ?nqMh(NYFYw zm|$?kLSLT(mu97)h76i(CYAgs3`slOz4EP>{oG{Ptxq|9JG$K#FJAyH-z)o-q>shH zI>Uu3Lw@1hJWTEv(sUMuZlW|af_e{A67s!yPb9oiZFuW7E~|fCBAF%yV~lIk?5n4$ zz6rNo|M`<{_MrQz1fKkcjJnJl0f0HaU^vg%ltrqy5rU0~8+AO&=8Y zfQezo0=(NwpO2HCh@FWJCT1%ZP7DiQZFQL1_0vvZ>(+a1gU@=ePwpk=ll_g2Q!$1E z+WwY3m-~MHiJ2SdDJ`TRP*&yBT}88gm-eDarJ%D2XNHXORAk-LDt+d9dE0}vPlapR zOEWarZZz(D`gl!l{js~wuhpY3ewY+lI&dMgxOZy&Xa35r@A3v=cUEja|GkdkXT6P= zq{f>s)7O9ho*U8GS2~gK)?-`A4YA5dFr17UgK(-IKd`VCJ%KTxe6-fS=GLDH%dwnm zT}QW^tSkk(uw`LNYM4pbjidEIhxNQR8FV7~fb%E+f#j@0>$6{yV^dZXOpV`j&vTE} zIt*{e(q}1}*1a2g8cGVa^C*`a(o=?8y1#trc@N?$-BVgkGlhVVk$ug%B|;A$7OU9v zrtjQs;2oR9-acHV1vj5eHW0v*0I0PtN!hI5ziS0B*{cCqDX%a@Ic6>gjvJutLpbPtERWX@T~rD`6dNf(`(5eE!(%ZodbwXybUz}Kx? z_EKml6nSZ>({>yQm$mXC*M{^YP{On&e_Hj`+YC2RGbQokeith-o$T2b77+!Z!~^aa zjhg=`zR!-a(S_Z=N?h+)bLiRoYv7MyTm|RH<4rzv7v%VS&*V{8;# zV06lj01S%5$Q)N=3~D~^KbSZ_LA-DR?7){VHw%7wHhlKK(m*53S|&AFoqM&}B-u9E z=GGOxaCD3>u4M&%#o@Uu`&~$?S*)ffq>LhLcd&{KPD8*@=vA;cp0&suK=H+Lj%&Sp zEL1&U0Gr8P$1ky`iZM)AVMy;%!~U_cOGDSW6mJ!Jm9)%_JUo$=xu@Y~NTixRMx>^W z-;chkIplm4s3Dh2M^EB5*+J0iqknWQJlWP0LNstH=jh9-jOspBTKB#=6?)%T`>(Hc zY1az187?x4;yd8=rKo)gC`N7Z$_Xu@XZwWmx)l5@UTYg$Q&jhb=g}45h2n{z+#hZ$ zb>4IRBvEslGQw6pX=T&aPmF9EH|`N7$=+RK(i50SvOj+uu6bXWUg46E zm+x)wInJU)W_oaPaXACV(oK$3-^uKVL0q0kbej8TAf9c31^!R#Mbs>Vi`lWizafLw z2@sqfeiZ2+hwQi66!Oc=tdC#FaGcpCLSIINKos=mZm&q(rqhM-Q_^v+$ENBXff*D3 z`WJg!1*pG{6Tc2f@lpUQ^2wFKn9=oWt~x}yYr4-p;L9nX^2a)N7LeUnctL1jbcS@VHPWxW9`=2Oqu+Yj zUk06JZT)}aGI25R(xZHVIGt*1u$4CjBMkua#}HE`)j-L61V|F5cB%>|;3Tn>ASl!Z zx+_Nq5S84ywlURqZvPx&qKfiZPlQw~W}uVf!}gP&HIXGV%I8ztooM>rScomKWDfU` z{Re)f`fG431`82JN!j$X7+tG~zk+WoOhb}uFB>5;UEsZq#|AJ#= z&Ei=ftmf68dnVGyrU^#vKyBtrE92%|gEExpo#m3|pJ^W$9^ik?@7ox7x*b%SA{CP^ zOkk(bso6jA>lHDp;ZUO*Ik|4ULdA+JZGL^(0-p*}^;6jyo)5_=_!Hon5@D^UBDEi# zdmJp}5}b_X6rwV1M)1 z+l3wxEE4M5#ZnOtgA?Gs8sd=EBSo$JtmEKuagYjd#igRpPJ(y8AgS*c|Epbx*Xdz2 z{|CS&$fA4!<79qy;T1+Yg{Y3Gz0|F|1O$-t*h+O-teyMj&;J7~Uz-F2=7Y@F@hNes zAlndZj?f@Hjpx5P5(i%OMa(H3nz&sooApq175PXd|VX4V~AWnQ>03;2p zVwB%D4-=77P6dKJpIn#&4vBhuKBi#uMLwppkvF3wK97)*6OLIy{|6`h)g0PEblt%1 zsFn<_As6R^dQGVZUXz?TI3(kM9c{rk>ZPvL{GWO~7pEH09zoiw`N(Vi=K!5WmlcHQ32yWiYhFr|<>gfi@B!24t$T)m-sO*9L-|yOY({6j zGj@y~eh8m3Ffj1$eB!%mU5eAGmr_e9*@_8(wLx(TjAx~x@Z@1GG4DO*>l6x4ucw#S z8H7FZX<^d0S5ce-cqAn?fWhne;^~(?wkm4^Vm9|VO3KQf<=?(lfcp@yK=b#{i;1a1 zBC;oK1%-0L3Fp43zWxIE>LO{YDU`?V0Au7mk;0VhSVVcYdgUPs#e_`!+rDkvZR*3c zp_Td)aQ)K@OYl6|Xq|D&1Gd|n!bCAWzI!PRC0RbMPd~T%5ryJy0%;V1CyNCZQYfp5 zUMWt6e;FO!E_{^f(YYUngX89VlPolp6aJxLVcm!`20vn6REJV1P7A>KIsweZ+@j@N z9p%L8sct$f4GH70b0qzY9%Z}$$++Xcu6%uYx9|!6$SpJ~mC?v0t8x6nk}VX9NFjFT z++HvNzt1xS98v1>@O;7{UCqX3gg4!kFt(DD{4C6)&VUIr|1#5U<2l{}<>flJfI=Cx zKu?&(`31}^sjGQ}y80ZPoOkEe1$#akKzI@6%g#L)d28~(ji2MmoQCG!D`apq_#Nne zKfSOF>v!HH4^ zG&HxdId|}&6Bf(q+uZM8wQe2vJ?it6zy~S(;lmYo@7(dDepEL4mN=rE)U6{!efZ7Y zJ^4r~sgLqWwsQI*-n(MdBD^bt_{E)%q%Pwl>N0)+x2CP5Lx1jE!0hlbhgEM)1@#O# zV3%2q59-dplkB%&H!q?zaW(bG;K*fxHCCh@`vx3aJzuhpvFJOaKBe#gi#azZ=uBWNj3Og>iDmk{EP%{?u` zH0HWE;{ajT0IxpciL6YE9Pv7G0#AGdTW*IuI`Up~yCftesc2RaGS;^o#oZQ^u=p)TPFM2E~X=&kLd(ST@ zS{?Gr(8E(V+T6oH1r!0Kdp-!Fbp=tq=iKMPcJHVste=g@`b<&R=hpw(k-biiERWRO z%kM1DtHY~1m`PqflEytoKfX{mJ`K`o9t_V(Nf|ISrtk>Na4x0#*e}FNqSo8QJt{vXgZw2cI4!dy~l$sUvmUd#j~cM{*F8M(PSJ!@Q-%7=sdk z_~T7CmBd7T7D##p9MF1%@H{kdPv)05Xw1x@zUwIxM4YvFP_*Icf{z7L-_=oh`JdF? znS$#%9LQ>V)ga4IR)j{N$yb)|%9$MH~o9np|u6pFeAo$d(Gu|Ky$WM@Z2 zWX~+4ICXD-k$zlBsp^#PPQ#AGOA9FX?~>#1+1kOqL&bEsJ5+&_JxF`yxRk*==f$+^ z;stSM+`cVrhuA(Lt*mEcG+>BWzn8wW8;jF*Nj~V|rVCRw_yuI2U9{-W5aZste68G# z$+fo0-@l*UcvP_hJoN{ftQ1P}=MPVBAjVF2wrqPp(!22l8-91|?{tlLy+_TQ^+HA} zKyQDcAn8%U=ld1W#<>$1n`tW3)?iE`(aVg=_D&^8`)l}zfe zVt4qlH@`eoIbbjRI#LSa3t}%NwNyoVHQ1jzpQ&z8c?`<)iJ8fd{j`*WSK6A2O}IN7 z&vrl3^u^O;J7ArEzOQ>(ZDKvOJs^DvCGClD8uE~%FpR#^EdAEx0_I;nE8Andy(GY9 zxclLXPB(EQ_8I-MBt`4E-B+X5gemcT53FK4ps_)ubY#@JH$=AxgPO%Vu8m-1X>F@P z{l2$S3u}}5>O-H4hZcH;n$$0Q&rYF)KD{k8iJ6;w<;4)hLm82@iZf zt7F@-v2&mx^y{loUrnEPXX1_ft4|$ODB5${-aZ|EHKr}`tkYBG4!wPW9oIxGClV~1 z@AOKva*C$5Rv51$>aIs5l#f9?(m;Xockg0o0wa}aqY)XVUEnPkA|$j;1| z=l4VnD=UmUJCj1C2OmFs#-HWC=W5+%OK*b;qfxPIZBNpJqLo8UCy@}2KHp zo{p`Zo$m<`+s*Mf*|{{f;6x(gBeM!Iu08tla~*b}fD<{VBQYu*>_N|J!E;u;7-cci zqpGW;1GR#Ivi(%a+h|#a&aBxdCK(k;509FSE~I3uuGt#z&L*baXs+ufO_uLXy4#~i zPdFAYUR?k1v(Z1l_g8&wQcq!bv_hnsLcm`6{!G3zQT*}Dk3P*4Jg6 z9VTY%I5{|YhJKx_IAE)cRP^m2NTy!AStFNf{_AnC3SKDNE$TNN zD>xA1z52?8WvwUo4z;5SzT2&SU))$1FKZlmmh_Q#%K7tmvU?`jz3=^D-5ce0X+7sD z&FA}+)t~+OxV&7r>_^{i*o1~#e1AjEmQ(!aZSjtdqZh`fhNEke%tKRWN3%Rb)^S97 z8I7)-=n<}s)!B;-QFcrF4^7>TQ1<+o;fSWm-oo#EQhD}1atv!uPR=W6Tb@rgeNkTk zSs7-Cs1Byhyhe=?Ed98OLJ_4EVx^c!l4!A78T$-fP2}p%va-JVE&d(y?R zG}-&-{uIa_ZE3CYrlv6yqy0O>E8g9?vuMYK)YC3;CNCYHgUqo*B__COUA#&UUspM2 zVNp@$4P0s{ z+4G<)pMn*<-XK>SZZ;8gz(PM-7xs$zV4Q0!x#7M{4 z8LU!KY-{20io^S?kC7#VjLbp;Bb0u962c$3(z=I2DZPnMK18BKHa+x?Wr-yQiJu!% zWVK%!JKE(hrcjO?)>uesV#E3gvXiW#r>VO;z)%gP!-9pq;*x@b{lXkW8`fc0t^9lI z*pp2Vb67*43-!clM#iV_E=+cnlt=5w%2{>E;h)cALSR(K!rtdNiB7Cr|Na7H+UsrW z2iIU%@o{nCsIg^x$k=}q7l>-M3SVDB#uT{=L7K&m2={J> zsWJ5e)Rmt1mQyJ7(*Nb#?gmX$y%tvH?@&R1&S_zVZ29dIzR(nlQ2aln7H6XB%oDGC zlL31&(QrSu+y1|o)gm^RheEk4c=^lb9qP$~WgSp^AYdO*jXaBxa~WKweQ?$eoRqDslSv_QK9=Ff(S1_W=THA*>tH3IcLmx;Vff8EhpLg%V zDTDNQ5m}GiT%OXXiOW!(i9$g4Uc zIxjyTknl-tEZ^wpXeebs+S>xEQG5~dH0o<#i+$_8pM2B#znqr;-1P5%B0=Dp{@NARBeLEM@?8uIcxob zDFL`S-WSXc<}9vY}H z^bG0~?5dxOnjL~wfWepGo6ty~29A!hMT*^F>;;CsTsvhzLA^Pb9105otT?f{jhbxx z=|h=zA8j|NZsXshlve{o_8VkHM|-RwI)Rb<(lb%&st|;{gT@hS6$Q-B5E^&@)TtPp zVzJTJ$A^o7!JR35Ilj9>U@(*!d?y4##BI zE6aZ4G!!xTz<}Mz5doG1C_Dx=KoHE_UO>|!7gx_V1^xAD6b@}*a={`;)pIv|h3d_V zb^tUyjcR8YokV^2Y4pK?b6E643->gy8SUr3uT;ZdJ@TdL!YZYRn%C>Lyx_!u5jLex7EAV8@8W$vspD#StrD@ z7reS5fToM@+~W}V$J~wN@krI)Fiw`d&4s$13N%$q&8mP9i3@&BXB6b zKm)Ms!eMZX<7PLlU(X|t;Bk7S84uDVCbOd}VwICa|Tw!(H;*WZN6A{wFG1mnfj7r}i<_ z-uA6LGcQ+u>D7ZYnd35Db*f;1kGQ%%_7NyaQPOJYf7Bq0|M%EdK0T^HLz6UG_wsIJ z!^?E{>%&IT0an(p^2~?LragI9ZfLcaJm5B!Stku<&}nQy3&llfN3N}SdrB7n#&XQ? zT;%yP(5Sv|aGbpn8WOU4VhlqTP?QN2B*Bz~kAp+n^E4bR<;BX1>(1ZNb;IbT1ZZ>F zYNKX19HiSEJtT|QRJA3#&@g*U=B?OcZ6anLk z0wN(Htx{5=q%`V^f&xlPtCTRnNH@5;h)5|l!U(98#DH|e`}wlF@Bg0jKks|bz4sUh zGr#%9^L*-=k!$xbn3_ztOR_o|c%LJ~ZGN;?b2nYda=XBXd~1FAzFC{id4+`*$oC1b zi4k}@J`N-J0Y}HlO-}O|F@K`Bx0mFxK?X~M3Go^Zn;F!$aI%FaEL2CG~%>kCC=g`P&z?W5kq~ugE@;_j4<+t<2-4QP3l7s28sW{>LafE#Y zKIStQz3lVtqMF@Kig>(EXjwNurcZOy^n_{LwoCiKXcZ;z&L6+LeZ1cA$44qdScHXB zfZ5lf9dKo8dgr^|dME$M+|r$1g@sozG|isToayzAX|?0Y6U|(=nIx+e1lw`!-eR}MndJm7cd3L>hIg7J0jC9Oos*MoB3=FSt{T4eM z+rnn^ElLmk`;;fY-u3#{Yqn$chR&2!V}-ZZ=xINPI4jo)eb#U1Sjp`FF{H3px4^FA zbFoYA&EA%nd;2aG-AY%%xPjBE6R}7wd57}hp;(#}s)9#gOm|}8i9?w22nKvsEX5;j zuA_>a+}vdt_VU;Wo+VLwI)W{3{|+7-Ci5LQ--MCU7uYckVxJA1n;5|C%c9n8U#5WD zvB*SoZJlKMQJQ=4=-K_q+D$i%3cLF}X`dby=5STc-}YzT z#QBeJO4`|qH@ZyD4oW6j=`iZJdwVr=9e?bZ?>ER1(Ug*k2X!^t6R#3$Q|eW0nzikW zoSVV*7qBkB#6_$Ph7q{}TX*bu33Wio=ip!IYuB%Dz%&9;Ordj~Je;<;IO0K&7MRw$ zU38IKXDW!@B6RfuIzkR zRAaKkOE7KWq;yYh|Mz(hm3tP0-}ZYK;go*=?>VuOoD%Gs?RuIheWP zhW^@PB55{V)ZO7U`aXH{AzY0qyirmSwu~^5l^hvY7uPE4$*5cS zrKpGvnftul{M_4WfAW<^uVfty|12XPj+8dV7^gUkrVuS>t5%D?Ee&!?XO725v$(XZ zN}rrRhAK73Wna;Vd|Rz%l8wC#N6F&sAixy6`2^(FErXCvDl+1Y5$c<(Y9fzn}QiX7I~*|HcGg5Da!>KN_t( z7R+>fVyzfdhIv!gyc2VEzhU{v!bb~#jnueoi}=b=+I2+O9Cwtm9e(5`urr};)S18j zeZ$=C(XBGP`juV>>qnzv=#M|{HJABu6XfLh;seb0*#AIV}R3)1s{8o-}9L`rl;M@oHt%h#vPSxiua(?zYS` z<5AImS|)05W#{}$`U>JT1A-n-vdNcJnC_ordn9FII5P!$clL?VLzJUyw|ReOQTfR$$44J!8F{0Q5_K=Ko68&f{xIKx;cinnI6cCl zcfRoD(fRIcw=%yqPs*J8n^nRQXtyxubZ?SL%`tFK8sm`aJnEdaYI=rOxTJ8y^-P{G zruQ@!N>pW7W|e)JPNjZFjD4)`z=FYa;n-rNv#Pr%CVt)aIIT>}S@mSD;)!skOC2?I z?CaeC8ZFB#aExJH2bVv4uCW3mrdG<7L9eWI2r+633%~?D4lR#R8$q)Gv7_meJrv4i znGx+xP6FOVt32zf?u}??$Yl0U{&-&Va9gkc5vxu~OiWMKq(4(!y=7YGwAIADs+b-*IpI zT8{ougY_LXk}Pk_%MbCX9eVWO*SAx>iC<>j7K^WlTAAWT!B&f zFcMcUBUz;4aZtx6P2sDpt-cBz9I{@yxmU8REOtEH&Nkfh-M4%95pnWQC4LSGS@>P8hvodef z!z;R_H^k9mM&;j630AJ`bsiu1L$mGU%#YUU_<@L&Y(&R$N>P`~3?}HlkI(PokI3I>tk-*vFBJP$ zxQ1KpD20-C_g`87yAcw2xnQ*@|_fIU1+__AIVGu`yFeoY|VKFsPbV?n@lS z$b(b{DUnj5q1b;|(O_^&by51~&?Yxf^FhW-ebyKPdPPC*I!!9!kj5N#53O$(->=QuyWO^WE74q;5b6SH6h)vo7Dx+ z4M6}gaIU?(=U?B)NzLwWNQ;|9wV?eYwt6?{ zY30wKZ;+b&64;aTJsc6GkTUBJ+@wgzjIfs7%pBDQ2cDOfQZ;z|=gmT4$*B;XhHMK> zVYYy$hJkd?Q67Snd47MW@ZjQqqJDKMaNz@G2T6YZMA%_NuO^xS4NB9#nZ|gGR2M`3 z0HP?)VfGOL25gUGj(IBS?J|`=;;mBh0V+wKM+X;}hVwyR;zH!OE;f6m4~Y zODo>O4>BP!Jr!E14IWVtMIyFH{%8&|=g$QY!IxYgBbSCaff9!N!>lY(IGLa7t@6CO zho+)t(gk*U`^qpD2^nFwGiB`PT_e}vZt)BhS$~?8C=;(4+;VWNLzJfL=SCKf(g>8VTW=wnawUeq zx9Qng(4c3*>(vRB&b|2Y<6805_lGUW#hPdi)+*JNa2|UJ&XkH`J{eDsRrK0pG8a|K zq)F=uG`1Sx>WP4G(b01=CwXp!)khum)%?BXmaVpyBdj-$0K|J;5v3$W%M7g{HBdkt za$t04;ombL572!+vB6@8*K?@lc#j;>!27KocLg57m88-rd(5RbMKDhP#z#rdox;MF zrefXWS`rqFzr4jwr!$H$Zt)>`MQ~fB0h53V_X-gaa`hq^ob}LUPee;4p#w2TOfdmf z)`=}_RyzK~&A}Mo9>w$Mm;G`8G3sO%hBp=?E^=v+BlAZJbAd^yI+q;MmXu-5Cm1Ro zz6IhnoG~CGI4mp)%KUx=pK1bz%Pfap?-g)WxZLd^UrE(3)|Q$3c^6CUCBCfZu6^x-gcYT}DTIUSydbak2tra+EN@68Q~})Z_v* zj|$1v!7p#iG|bk{lzGs44zE2$!y=8T)e+(-6w_hGEejfA4 ztkOV$R#iGPDKWYZadJWx4jb>4&UFa|#AzD1sbfoh1O-bLZ8ek%NKS#O%n^uk17bdz zpVLoU7Y)m%(UYL{@S|bq8wrj`f?*>W=o?oO3HYq-$!5lf>emqvZrP&F#spkFEoc#? zXMS)ZO7#@-Y#NcU^E@w40&7emfP7AFuE>!FFq+S9xPVZPmJ+u@Oms~Fd~_~AdU4KH z%&JB0=FOXs2!?V2G4I3c)sby1ZCaDJ321k|T$Bag8;kd5q@>H01k{c^JN!|gl+zl7 zYkprI^n0h6&zk|FG7)CGA%zw2W&p@bg~c--9QU4qqvK=29xFX|N!XqU7&$IN=59GN zv*~K+ydhrb$$wW+c2xzS5ZG}tx}?h)vI^yZti>w#Y0aOSXKH=&CvJ~UwR>E+&(yqx zBlBntrKoLOd~NQfgCDA@g5plKauO3&v+2QYXPPW(!o?I2)LJnd3GWqG5*#V_IOvBS z9k>4IKJS2xic|h9&+G`4X3~Q#9@q>8NhW@SB?~n5%%4(ZljB0mUT>LH?H$35$ppVc zzpLu!2IEZ}a$^A03d}z3FMk{d{9CCV3ORiAksVHu9>A<{F5n0TpfYdg_Duh|t|r#- zY?6Z&Z|UNrZ4cEF{j5ss67c+5kl5vCMfYIxK(wul6N~6=#Q=eq$Kq`Oqqz#bvDoYa z3w;zI_d9#>aAKVyA`BcY#?}lhPFN9e5~}VSTIrcj){_W%FDq_bAkRLG05iJV(arL# zc$50gM`{}tI}n1KYse4HpV$eE7k4`i0mdYp^k_6yuP_H6bR2?TERfok@3#xm2Ef@t z;ZKss%bWPWu#!*KeUi54=9O@ho9}(Y99(C2T2DvL-tWi-pyE! zTVI#i4}Q_YL*-L*qeQND@_i#LiNh(PYL)KhF!Gzs3X2g|p0z;Dl~=7tGhV-4$)dT< zI3SMT3oSiJ9W!U-qyqOLp9(;FRdN6Ty0M2m7SPQFtgTPb+z6N67B%fGl`4x5fF%wZHzVj1Wii zcQAKJxi|%(yHz5EDK@w|VAARcaU}@8@lY-zat>iV2U_jvdcg0SkmkBhosH6SN;HyKeeFEA+ZYS>L?3GVsKrV7PF`e1RheVy2bMGW>A+pyq$ef~x*U78IUo(F^=MPif7!Xx_af0@h7IIr)>va}7zTH}uU&Yc@ zDLgvZx~oWkiW3MJ9>w%8h_;lyBL8WkC^3{&_H@S63-!MaThS7k zrj6q_Q6;u^Grg2mjOhlJ{TCNh<1xD&oe%Uk%{c z=tU`z>B25tIA-VvT0~6OJE9qKIrhY4NAX!hm zM}Gc%KT33Ks4>mZ7-%DzdqT@sPo_VaQ|{~*k%I|#=XFuaAKb<;q^D6Ci*px8#s4NH~AJy}AO^wFA2@Bf znwu&YU1xiIe7pm4@8@dx>!!Y9y|TYFvwvz@4yt{jl54Zhy{Z-EXXWMjW}e2LRX}GG zS5#*-Tfr>osdTYB%zV*377_cc+KXYoxI)QMiN*ZbxhIPI#>*yzME9E9A#ly%w^!xc zYgbSt!um&Nn3C;HR9bN|;>h{|ph61ngV>?W(G~_n2NzAFNbT`hfT|h+ft|Qq7)t<5 z?@ZMOnO$jX+qQ}#=^J%IZ?L9*#gpc$behVlrIsmZ7s}*k>(}Bz>@sw`_QrAZ*z1hd zV;(vSO5+!rE;%M4$;IOC300h0 z@wTVdQ7&}16uDn3JFU7gsq1lweD%3te}8}UwjqX#&6%baV1a9b>6^l=Rs&C!&rPXv zzg6*8+s4WJ&Wk%+Y!AxL^H0=@WM)dJ1AcVao4G8A`{3cV6yqS2F>Z&yu1nofaB6Uy zqub4{bvylcvd&a1D{4udF<{QgD@-12)RZi(3u?UBFi9;*9={;KqILW~U0*(!m3`bg zQ?%FXUlm*^2W#KldaQ=Y6hMrS@XGf=#p(D{(eA&&Am=4 zrZv?$xKF>@BI$jYmDG(>{MIqg_rz!)U0OoVcFgflQ77KDBv09&X-resIlXOTg?MI| zVQ6uYi66_egG5=t)8Tw%AW6eLRgE*nYtVh>x}JPtoLTAl%Hhg=I0y@*emeM?9hJpU z*JQI37dP|g1pea@u?&3hUlx(m#l4Ky0bb57fHr;aEk5&EWVSbIz`}u2+8@ed9 zwW-Q_G4t^~+-5B|KX)ES536|TnC|wALO&Sp>wt>ceCw+mnH^Haz#rtCzZ^-D$$l}k zTx>oid%vsrNdvpZbH{Ee10-}Xxn`cs+(Gedm0p-K~->T8ar zy?mIoU2MP6BiURICi_26c}=^_i-*0T<5rn;^`o3aE@v2B;Z#eIEE!K+xHF|JRjD{|5-t$F`= zFz+-BHQ`c{Jw~xkwv3p=hsE8ihdbhLc365?(=TY}oS&I2T_@w@G_KCj3T<~al)R{# z5%uTP$J5ihZNGY2y-?0hw#u-XdZiZc!_2>!7*}v?h z%PEx2x+Sh!G~m>b!zWUe$mJ$_ib>y=GZfJrX&0Pz;O|mvL}n? zgC%FeZHE#wSeMm#Z>|%_-I7*vkZznK#w%Cfa-r!#<7P2Y%a_jDtdPEkg+mZSF`anF zX8j(AYe%_%D3=(^wQzEQT)#e>`KVLO){1ugRnwD2d*!u`xx;YQLQ{? zeKSdY%DH#F+K;_=C_AAtJ)=L5Hj0^2mnGWTKHzTul5z5)qq~vIM*0Qaxw!#WXVmJ% z3hRHWEvp2{n$GYF*jTawM}Q~S;N?xqGf^@T%Kkh2m>4IKA6+O-V-vmh43i*u1O;pU zkbju8#n|Ebh&JD+s+yYqZcfV%Nr}v%jRo`&diurqhua?pk!Pn{?0f?rt&z%(_6yyg zfd;%|XFI|BhLlV1^zv?;Brt`(3sWpp;pXv;8+*MESWe2lQ~{1K&}TbT#3{9qC+eIv zHd2YvFgZ*qmzI!IyvhC2PZPC;vpaqWInRt1W^>C4^ctaNUwt& zFZ6mgCMB`zx|Kw_?G_@eI$)}P$dH;)JF3G)vM*E%<;8&D$$#Oa@`ub2|rGS4`&NMe$(Y5tvltDc0_?F`Fy83+Y>KFr_8`;1 z^@`-?n@tCk&TeFA`5{kxFzhP@2)HsXQF)2bXDdu6D$C!V-OM=OP&C_Z*84R++_C+* zqNRw6G>3F}wsFWC6R#v&JJb2u*QHh~ep%I0Q&rS7ZeT!rCU?8gWkP6c&)`$4d0S({ zP?LL(6`dorJuD?GY-Onf$ISgPO|e?OaF-ieH3tT!x=c`ekQxy!7{Q`_{QPQ$=OD;} zRFB`u$tejmB7woUlAxtJX4Clq*{z3x2@Z(ZBCbIl0~X}!kdgkc$i}c_v_=v~l>UTP zB4!3@pjA=_sScOwX(TC>UTFVOx{M;Bd{T2`cOpEZ=o>qHY0mt<=id*c6m5vunJ}8v zqh6D$`wgoyy{hKP(xYE|ypY_jr)ay`<9*a8@%I1(Dc4=cFNeKlXLubw62_88AsyvA z;Na&WX}kzHu{r*W?zV?kQi~SV5t>CJquldOy-F-P!sm;7#x)Y2B=t!*Zf&-E9KxcN z02+|C_xWk^pjbB@`%kT-J0T@6&c)rT-YsDeCY#_~&5Zx1;MMxjHEL2v(yQCVa-* z+grZMkT(MVvL68=bV%~T3}?UO+lnEq7=0q5l9JIco1=||eTcv%Q3wUNn^sy2bL`_c z`chB1j~~~C`G5-Kd8RbBB`q42z|tE(G> zp3VHtA8SlPZAQljfdO}p)2&KBGqU8IC-r(gOkW#Ix__B?KU2tM_4&s5bpQ27Z5@>y zEkhB>|4^YBMVAaR@_1431KO28ckUyg%dY-@et5Z{i6mf(a{Wmk%S}l_IUdi~9Nye; z;Qi^v{2M1jq}?nlvm%diZ#CWdnN=)K#MFpg;+epj2(k3(OAHn|%jsmT(LQ%+=^T;0 zN|CQx750i;JmxIAn8{)Nb)vvZOkmJ$=jsjbRWlQ;_60q@@wP*Hx^pwjZfV_s20)xk zN8Q3y>|jB^AOU(=g^eD7%_tj~w=QHJkqdyY9fDZAPHH&4gx0^F?Z|m#nv{?kmU49q z^RwAVb*>H*IlH8y1gxk^u!o7m1pkJ}6@bjbsrd{Jiq8uk&5iOotDbX}m6aty8N;p8 zQr+{lN;<^#yggUy@gh}QuLU8Rz&1H0J^?8`{?f&^!6Nu*5Uo|DLy7pTp&ukNEh6%!W4re8dPOPh28TfH4La+I-4CT-}&~LWcOi}=70D(I$Dp3X{faQlcDh`Sj?HV zH~ksaCzc!P#ZvgPna!`FzhpMfizPlx1diJ{KJ~SW?!`rM?|khSe(FaR&n2=ZXk;m# zV?9#kt`6^-$|!Pil2bL0 z)!`blxK3Ft?UEk>5fZ}#<>i!6L7t|CW?xW0;igjbLW$@ z88Nk0Rcgo{A45Uc>2#116!+qvlMSH%hP32gzI0YeLux|g6^(h+bZ`Q4VrkX=_tvdD znEkqFA%(i{Lh18e5e}bm!#J2EIyZ-KW_H#NGJm(fHpvEybNmX9xGu`~Kz~^s_Rz zuIrb77tBs`;e^aET*TC`&3)DibdT6fIGoN+*y2KL0EMeY)0bL;xZn27%$id?S8VO+`|}_;ttQC7gPfSfX3AHc zim(1yTRh#hTYJjL+N_c9J}MfwtcbnXEsQzp}3Ve6dwCy`0veNNN3=*F=i`kvqCP`!5TnqN6o zmE%}6KZr^a!Rzoe3tdBz(UNX>A47Y>rDWj|&%&HAJoA1s!?dIc_bP_*9`)TNsR1Uc z`sR_Y_Js-YC@B{WkLgN-ETppRI%ancDRaeWK8)#q{Yvpk&Ld|q|F408f%eZl;}dih zuR#1FM02qpO6%-2(sD~RH%PtbTr;h;vvn{e+Bx|%Xe5I(P=xztq;W)wnyEIIIDh=5 zDt(=-$%?$NCE^`NzOZ_d>KSNmk+_j~#C~3lRP=8nng^+eko)ZF(fss!Psi(;sGRY| zp4w2y?`ExH)Vt0l?E9*t1y=sDg{luW7eHqA(VMpE@6rhgOgimCn(BOKppqSqvaX{Q zB^XbVg&`A&o|6M;+&~IBSQ%PxmhU1Ie#RtbhxxcK&N~tvKWrGzB{aM!?(yFGvmhqx zF(A(7xM{ZbRyH;gqGLbQrbnPwFylZHzxW(>`o;5(#P`0Fa^~Zu+zF9a!#+jC9dg4FO<&d;6zG%;Co=bIexj~il5#gVYb)RMu*qC zY|~vuk%&OB5V;O9J2b30ULrLr(Sgs>5|uAMn9C-c7hhB`)b{(t?^vRGm3H^e*0D^=Gdm|h|68|i zjR%stg?f@l4(Z@(Sau*AMOUl$6s?V*LwHJ`XwI~LN)Hgod>BYqT_7sawEI=7B2PnW z0(O5KSMAn*ACJy=?1h(&9C}aazYYFavf5Ml2jOBmI4Ub+rsHRro{Z;f022 zr~5cqkEoFrG^4nZU0B~eWKe5~b-DKW<0iLV6rOeL_T!gBklmlQXD;SVw>@fSJ*TK( z()ZuV=o9$RT&_sCa7 zO?BN$@c28~Okdh6_ngu@gW!h`zfW=$Y2cb3M?xZ>fI#)$j-w(Y$2{;Fw``c?IH+ah zumF>|35mEdMwnkECSHr9Onj>6Qx96?|Esh(D)+wS2uA6(0)I(1D0TPi!JfzJ=a(aU z3o6KgR~7F9nK2CovHfE}bJ>O4#--aA@~`@r^;JALpkU-m;Zb0B8-He0c;_cJTT8xe z;^}v`8lCokl86*`@(7I_{`|i$uL^nhTiDntM_!cKNskvn(n$4EXOqu}l5;Lbk;s4K z$Pv1hFC8x%U^gM+5MmJ1KMmAcPBk{!*KVRtOYdCq*T*w1Vtw(?ubdVGy1c2TC#_iG ze~6GI!oKWcqkPzR)AWX+5n8EDgaj8D(w8ppKlWyfqrQvzEmhyv zg-FUyzdK(L8He9gFy89a4}}drKD_MNL4I%QYVHa^FCcI2r&sNDiV{Zwv(}%wT47sQ zl(;aP=ilce88<_GQ-4RYC3gRBE*@N7irH1rzJnV za`;$)-G9JkXb)tvZ>~A;lCU#ey$`N>mAx;$FJKt7M%==S95ax(c2eKcXz5vK%eROeAYknAY(5zh4-gC@G2r7cD>|A%6C zXzYQdPp$yUj@z^M8h@?tdqO3=Qn>p^wHWK!qK~^BSl)h&w6Z0%#<5@6&Hd4ipNlS?P8Zn zhaZi1wGgP03WU1t(7F#9bw@oG{?vupyqZ_A{KHo7=K`w-DUX0j?gfp-!x>-)EFPXlrg_-RV<>_C3q{|YVHP|WuYoUS^k+ia3g@Sp!k zSn8TyY#D7iw0@VAvl?V@u-@6&RxTdb8!52F9))2M1aG1mP>@2J-!kRn@!YhV>Snc; z-JjEZi@f;xmMop+T7VTnmdo0HJPA<%L2n3j3s)VY>C9)wA}4>@0bu~7hldmaKcNRQ$c#Oiy~t&eY)A1 zCPPuFt3za-@pVyOIyH8iYsV+`O*aK5MkK0=TpXXBZqM$o)oXD!p)M4SB)*~Ew=gLW z>tp|{RdFC7IHmJcqjx}8cekwVZ+YHC%!!#XP=`>J%b_7v#!^r@fBq2`QrBZ`M7VZ! zb;U!P6MFr(kO`n;2Z?zAjFvsL4s3%;`k{JgwQ3gTRy{KcPAGb(9xnwR0e-V@+Ie?= zgDMkpImqa)0V;6DjHhbB#Pgq>%o71@nJv7YW^J&0{BQosEDB#UOi~B=dml6zCJ4R6 z{C0dkKMIFR>Je9J4{?@mIi_%F!g$s+7d0woH2fQrz3`&qitud(HK=6bp@8Un+UhaT zG$%ER3M$iGYM5H1FC8%-SsGfZ-C+5g^vGWy|7osTEce{vO?5|auh!Q_9t!&bq?w^W zlAc%1jLI4{D0uL+8TZyzZb_=y?oM{j)H&+F^N z!e&}Qmczp$FX~dK_7?wFtO?fd#e_Zrlv=_oT%}Z5^VmXND^$u z`wyV8{5Qb{dS~1AzY}aucwKqfk+=&`S)_)quKJxJE)Njxr}|d@L$q&|;CLg`V`vQUFT6{cduSLE*?0+a!@)4p#8sLv)C>6^%YPFsq zDky2JTPzLY&u3$orTCzsf$fFd=a^&|es@C?RYizcH~{$s-H<+sAP{H(RL~VXdAE** zMI9@1Zf=hJjmlva)@?@~A$=ss1_5zZ*#iHRP$(vC1;+cKaD>J62LLn`R5DCf8V>>> zx#i&Yw0VE42Bj+HT)a5#=2j?(^9wu_Dk=n%P}Tj4Lx=U+INAtuL39A% z>m63`)>uC_VVD)k$~`_w-0rgG$KUlDtA-W_K*o7}%CL-`@RmHx1~lN!mw z1#3FpB9J`%dQ!`Fj>E^)$z-O&eH;J>$f}@;BH0V~DhBWc3IW@M^v@&rXa%9y4opIS zXoh!wP{?`nAGm-0(j^bJh8)Ck!}JDxAOp@~TYRVEMq zYSghtvs_8i{I87P`&wV-LJ;!jUn?n*e-X{4Ri<|8JyuTI{3vTKS!Y|JgXL8^X{)_f5=m~eW;$o$^3jR9pTbzWSQL( z)XZVV(N~wZ4*cE?65sRnFTkk?D75G!WDtf3Rtc7OA(eJr(srV^TX37TVES7a8*R#@ zd>uf%u~D`*^lbU;43Yzd1LMojDWaY($f&KYRYG?0$nfyZbG{fkuY%TW0WVI%s3>Eg zrAWWjp?HvalSU@#N@47@N$4sH&ni<0j%u>Q^l~-yw5U4vmlv01RxbAxz6+b6C+C08 zDr|c=HajFfZd^Lu%?32TaKEH@=a0#s^-6V*_o~j%sNP!(qVwG5{pU<;BuwU1-(O9C z4_=aN{D=DmxK8KSNUuaxGyVgAxG;SJTd4Oh@69VYTtNT%?v|0JPoRJ}HWum&;70@T zn-Yto?|_RHO12BgkpiPaeHq24a_0!^JzFai`b*W*2b3a33%Mvf7m1K`Gj6Lec(;iW zI8&j*s_7uE#hD(N_@_I1lM>;(jh|qGF|1BY`wPQJH3C3u$b=#F`StIx4@OupK)p3W z5AKFW1G>?wVO_*f5X%FYiXV{uIrwU_WBttlz9L$``+ho2;GQb#>o3ku4v~ar&lP0* zenJ3hKR`7S2y46+C-V)}e~NG-LJiZCZ%a_h6b8__QyR%6}8! zPcYX!-0vh$^}WU;YL|8KxCTuQfP= zq$~njpSiW-!=w}f4&(#2Y~QXqb=bf~vG3FAk;z=&UAy$MS|WqM1NiNhxsJSGPm8UG zGZhr|6;kRtE@K3O@cO%f&nd5Oljq54)xve}zJk7f&c^=TZb2@)AD#(6t~E1uvA0Pl z9%-Bf_VHbnR{tYR>FnT~o{^6_CWmR|hEI!?WKt_N)2`j94*zdaiW7aJT0BQqFJ3+e z!;!M=%m(NE*wd|x*ed#y-@Q7-h*`7d3|qZ-17x1puU{uZYmzt3ZUoixS{9b-(R`R; zdNGCd6BO>xF^u&3Cqw%=wI0>M=v2qY1^ z>~W$!_UU<3d{QVG1G%8ztV37wY=HFTexfFiL~p$UfRMAX7sy4Hk=)?CM#^J-4?X7@ zv)=Z_oT%~8Y_)d?ON{Z5hx^u|Pe9v9^7PMWmpB%-jQha1A95u%byno`!28{j^<=-| zhx8a=spos!T&xsJm88=Z_Z8R&mdqblb+4N%97GHIf$n zdYMlI9Yt*u?DCpdo%DYF-!m;TdRY)-^ zg?ieCUN1A7cQ)%h*9&uN`TAYvE@@^L&DxGL?k`9VK1Mw_GiAsK{v*>=Apj&A!SEOh z9pw!D$-zRaT9;d&!~L{sVsfLjZuLavyhD+Zx@_vrIwyl~w_@>Dt9JHI_r&K|Syjtz zzl>uGDqWIZqD$MMIY)0P(gJu=|I%fsv6PD$Vt2Ccs2r8M)xPx*C)dt^nc3O?*pBk8 zpI@qY>kYSK4uchfqyazQn|04C+91@uJ*F( zdPq>*BbUJ|!O^Pw_v|?_I5>!&Hx$e2L>Nr46!zYk`1}IL&>ZW~w8b-eG197y$18k(N%f5#e8dR-zD+40^>?R*B2ja-K{~Id z;A9S)ujUprv$|&|>w@`nx)aM(i-sfr1MnL$++A-LUu>f&XZSdkm7?B}hM87P^ z_Mr>kJ7RAKY*3iFpc=8bYY;Jrc$EqP-LunXD2*1j?RYt+kt*NmvnW|qY(M<{Oh~R^ zT*~Y!toAk%^qs$jGt+JTX_5>gR2fROij{RPJ+*TDiH&j2--Xp!3za4xux)0#H>$NT zyQfi8D?TykN-ziIM#^z_k@XawjQ$9Bb*lW%ojKGV^Mh14p1Wx_c8$?^ zzcINvXL7*IB1;aFg2NDv9-nDyrTCXcexd2m0l5zacMy&^B=zN5(Hr6QjNkwSFv~3P zpmrEbk30{CY8>SOzo4Mttos^#PI~|{RyYXP(n?!|9bbD!&hC=fv+MXRvG$>&(LP(n zh~zq-t*m@W)({=iQ$BhB@k_k_ZragQo&HJF7)&<(Lv?Xz5z!)JhUXs46p#4eSsjSA z(y1Q%`M3)kRZmN(tK_>(rPO4n^rv$L&Sj-s_yPf)goLwx@2jg7!NZ^}4Le<;p7soi z`v7FM=8&sk&-T?u4mYp_Vx-L@172Wkchm!a`aRp8py7c`?S}l!k|o>ubj@s>6PNIo$Yerd=Fvl$ZpR!o za^IhmI%FQi5hbD0C8V!r<>;tm`;)Z`S}lO~YR=9Dt9)6x@2We?`+}25m)}T{_>J6l zaf@>Ydg$#Q);fK$hbAY|FU9rm=Lr`Va#@~*fh)UY+;s(*dZ*&_BpFpli@(Lt_ReSg3mBkh_S?3TFw_uP(b5@H`$tts3_Orj5{ZG4*L}6N zJ@P|*Qv4cuU-+Z~rczc=HoVysOZf^9-skHVI9U1I7V@)f6RoBnzajCuMj!fVjI=yP zR)xdn(GS7g%^}-Uk&3`7cHOf5RxqC&t=L4TDNa+U_s`Yb1_q40(s`4@CoXcgMim+T z(hGS^zIPTw>B_|g%vGbtk)ffXm_w0`Mu&u6=~jNyoHLbEsxA4x=*%hm=p%o9f*AsY zh)>DByTc!}BcHwWQo_`R!tbSM?Mar09U}cveQdQjsHutx7lUTMP~xAg35$xyE#Qm- z#{PO8SJdphV`HWBi>#Eo%&Ye*Q|s!%^U2jgIF|2=?w5#vJUQLQo{V*c=5#5#FEk%n z*2~DfVTjD3IzxZC`ozi~jS3#_6JZ*UI8x(mx`2PtFn&oFEP`hK8{J@u>yb>aA3e1U z)<0IPZn+-amZ@0s@^kG1$WpT&OPog%UU zqR7%gw12Ym2~S~R5n|C}2y1O9_$~th2u}8v0()v}`H8jb)&*YK@rC{?MV@W5@T@lc zhC%+hxjiB_A8y|7^gGD+Sgv)u~KHJH>o)Gtc8ho zIDl09>yy{bCa*JW7j-^#0^m?qJK@Pe;24_0g-&=2IdTnT7@RWnlGQHn3ZJM`eH?Um zV!oA?yWBcTe6?a8J|4{Sa2`l6A47X+2Dw>s?_e4Pv=&nyi&PIhHRldradw+B4{)Ct zW1oaR1$Aaq$z+Ce_E`CD)h4N_BUTyn-!B#n_k;_-z>!1vYmA~u($T#fyn=Frb-&R> zHq5ih8r1zUoklD>4xJz|)=r|(c^Mn^{z)9up5^_ocAdINNXxx(3hh> z6*UWhzmZ1QcTo%gd8=4F{EjXBn0+#u(1FMN3sO>2_6)1st%GgHg^Ko^k(F1HGM=3= zSj=$SwbN{I$AvTq=YB6FyC z>OQ`{Vkp;7@Mgi{P9Cy#$#g>Wt?xK0ZfX(x4kolMrQ2aj%otfz^0zURVxRbGZqk4g zcSnVR+>dWp+B-(N0#e_4+x6C+379hGq?`yK8DItm21I)kV5t!52JHYDFR^OBS4}%PVhFCdU#09kJUT(B_(D-!9iXM&S!ZgB~9?vOH)K* zQKH7betOt&#A?GT^cc`z(TOP$0%2YF8l47nF)LgOL&UkY61HqNZI5-GCa+EuUc-Pa zw^;`=p(AJ&8fx-0#t1+C^V{2IM#w=e0vq)c_WI^_r#04}PF?qUF2E+9Oh*%7wwJb(VHNSOf!uFJ z%yTpxukaH#GeYrFiIWLEQ3zU~;TNTzWmntXkz=8+f5sz9I04Yt45VqnAt4Di2SYbd z-s9QKJ;y`RgC7aAfi$MSNA6KD+1>)h!4}}8rHk`JWRW*_VY*KTRO5%5|2z1)0qQ{Z z>XULdwze0EoCCUsm$2SB_^!4EDEtGhD=F4_xDi4)4jXMBToRQxN8W?X9|PNsryNZJ z=6n{G-@NG@XRIJ)U%pFs*x*+}b`j+iDL9^qQjs%=O_qYFA9a7JiA%$)41=Rjty{C^ zN!it<@{E!O{AV*luP{V{h?I`z2pN>N1m$Rfs~TQ5iool?9ak3F1Wvm3IgPcIcl?HG@ei1EzY(trmbAJ?S@kE zsVOWkB0cIw)keRF-Htuysd^o47^{fMBf?7o0m3Tfg)UGH`EwgE92Y<8YXjLZ=RqGv zP>=4whX?w;+1?ePraD~1>R+T#ZaF#i?uLE~@}Ay(o zA9NGs3$`T6n2um|C9%NiJk-UvPWA(R0fS@Uwf%X8WZGASsII9J-U9mIwhHTBT`e< z8IdeIM4uyJ@3El^m>u%*K&P_Bsh3QUmpd4$wF71~Bn);&|4E?~BB%^eMvG{o6z$>n z?1gB{B(zhQAViplLh6siv*7$%d5Q4Er7e zTNWFTGnI{dp1l?nk2c0g(pT?xeRkBgdyDe`DmfsVzN@b6h1s|tw8B!mxCt)@16!Wp z>53sU`#S&4K%>;Z3s6)TiDaVC`6ausj=tvBZCnKB+uog|m6`D6%NLu2dl9kE)#|Z0 zPgcmnbgf6X^L2#f6K-z&J*R)C`JT21AO|t=kmb!Oa-8AEkU>XZ|ASH@(P^}scmIA_ zjL$n<$R3JRFiE*O*dfWRqDVFrgojl0H5UCENHU|_S6&Wf4t2x}WXv*>I)EzErsz5JRoj}XUutdi7|*LHYuDhSs9-SA!r{Eec_ z18}@vL8v%xyMe0;6sm^`BZX;D0S8=)Urq5LQ>LC`gy$(#!XMI^AD^FgP~s_p&I~pd ziSi?VTXH2*WF@>B%^RWCAn!_fEepr-ON!y5p8)j4^yedf;M(x_vNPHRDfmo|!OBXc zDXTSfa!{Gc2ap^|+jYmi1)3nQK(FwJtYmdH}2inGDLt~SGmKr|rmS(EZGNErPp;hx4pMOfh7=10>2 z2oT8`WHc9qipK(4JG}1SSJ+hfXxphKx4V#hSz{SfOi4%r77dv&QGhSCL(iD0z*oQY zU`Q1HQ_F$R>G?T?HN>UZDBkWG*e`z@Jfr}Qmw#NWOxBIv77*)l!C9`@y=^&#Cz#x2 z*r)x-g{!oc`#9KIXz?M4cj*;EmdHpuykhxsqVi+?_8?KD>R&J z2>_6q#jZEG{d#3Lq9cHgf1aOTN%`uG^JoS?V7zR*!H>HerO8U7!sM7zw}Mh;bXX#I zCFOkRf3r%QqM~ZRECSJ9ui(EMOB^ByZu|&k+jygmngpgtg{t)$%R`G|kHLR9pKHivc;O%)pFByE z!?dhaII$!2E`*8TEf)WLvkvu4*X%mVnI(7V+9_n`U_U|^5fULp*sqN^1SBNPMG zHW>*^22=6Gqs&Y=ANB&%IJNKj= zo5p^SIE*x2LiB>lWIcZCkiwN?mo)C)K+8-%`Wmw1gZ6=TgKzXUiiX&iFJHRSeoeWQ z{(`F)JBW^WiaeW-a?l*=Ks&s2f0yA|5D7E}KWgC?wlA55a_T&4B2C1yE``ZWQZb>@0L&>vB5Xn(=!E1&-V zi2Hwz;--&ia;H@L4RyKN8>gVefB&G*e@k;^Rp*!KdSH{cZaG$z@xUcyb^1VKIVkeXKG8`KJ zRV=JV4o8h~_^E>(z&Khfa)SpgmAr>>9O1lEBpoRX5TbZl%WvG_J}5JNk74e>zJgJ7qVFvbtl2~VH)T3_MVn}Iu=M2i%lzLg8sN%$Az z{Tqw}*^Uzb+WW_Q5&9B@^hqncG+8K8f+8dTo&!iu(LmBGAc-dpjY{=^>g7blRh373cH*S~uXQ!QtV_2p|Ym%QwD&AzpR> z*2yIu^g9eT#8wa0EDc+sAGMZAsM>ynxIq3JrQ<|7@%s`LhkZN-?w}vlBMsaD9^tFg zI3BsZ4L&ZX3YYaeV~iTu?Zw@yG-ODBQ^dM#Cy>Wd8g)BWhC6Vxl2Oe?>pcX z@T)Dq6a2~s{284fi?|04rQcY-RHmLrv;>)r=Nb4ENl@TU(f}Y#dCeX%Z#YMu9V)hQ zfC9$WIGjSS>}bKXUbzr$6U@Cu;D>b^8RzGjfpS0(tAb>QLuGX9ZJ_7lQcq9H(m{#~ zkQa-~Q}{9}uaWWbMl>zhjd{0md&&p6&-5N3?VH3yq~4OliB>e?gOzXhc7AreKao@( zs9x1x0` z#*P1VXo!Y`lMDcSw%!5}v?TPSmv~2^>N0mYdV$v>m?LE8O3yc>n>GFmPI)c>P5+0k zH;>CX-`{|5(^v-8%vefVP_$`5i%Mk~Qjzw3krvuFl}ZanA&Og@cG|T``;L%yQr+5- zN~NMztLOUMGjqj5R3u0by=4|Q-By^lvdOsZR=&h? zs15j@PL>!t1V=d{I=_ih=pk4P30wAAeg+ZUGW^O10!FkKk^7w>bGaRUG5@MRKN4sH>|g>TAW;=1aLO~Xan93K?)QMIU`Pw- zl?$VpwU~O$_3x&{zrKvDCOkzOJWe;sOl%W8r6pzJ#tv%_0Y$^3=TcB3C{poX7WUf# zAvb~0ifz=4^Ay`v6v1H;M%1@!)~o?*QYL*0Clkzp{Prf|aj?lni~y znhx(S+*jFf<3LL%0H(&zg1coR#jJKH5`!diof^I{a_>g!n~xrv)W;Q=GUJ3`(@qaf z(pwR~24~>GEpOr5L>@Mri~85*s}su`Y9h{?C^E?1LhfLEQ-X`w&FiERhz2iZ? zIQz3qQE_n%=xN9>C4rKD>pTDrk;oy^{E&=$4BPqXCjlc)0=_GR@`0IzY9NaUHvcCC z*&n775SzXg6R>qLvo^-b{}#7~>8#VCLx+g_7P(${V=p`)-wrCnER_1NTcbR=iawDf z1Yrcluxh<3*vRcWLp|wW0CYcZa6mmNroY9{L^;>(-kV9lIDgX!Bc?2biqm&#er!_ zG(rG^!7?C)dGtE+WfRDkMXh=g)gWHw0fO1e$@P#Qpz;uGIy&x2Rw;UBH!c>qp@Z~= z0^%HK54(-r82*|aTOegg(&*f|R3b}jh>_7D^0M~+5Nkcg!@&Lgp3&)Lnixm6B%j<` zKGR`Ce%HT>F~>8&Kq3%Pur_8IB!DoKCIrVPZ8gr=otpP2Q9)$#SV4J6+7U-ZlooFQ z#1K;<#3@A@siYy`ng72h-;*@@Gp#+7^ZDM{*f*FH-8&v~810=J5D@U$&!Xg^@Dh#a z($csu4WR>xFrn}8HbiDCvA6;THA1NG+`$K)HCxPm2GNjb2rG0C*&gWxJi?DmK|MSc zXh8Ax^#v@}MQ>;5zcvF7bwFN!(fKXxFsYTEZ^G>B<2|t3AaG73md;~lH zqc(sse+Y?5K%Il5JnK!8GK=EJVHL{39L>LM`$LH6n6yH!C)yMRFb|urGg*F+n#w0T z^Ue&NiML|da31-Ps7L-F^QOte?<;4t<)Zs*kgt)_K0diwKqE8?ht3z-O&_rEGY!JhQ>#m>| zhp2#LtG@pToM)<0X8bcwtG76ZfI=my;6UD~2sDqLYt2bNh$g>&eN6}fATxD(TdYuu z1>*{>72#>nn+7Rl-pZl}oL`)5LX9X_8uSY@bCdnAmO@5Qbgg3MtZ%lU{h!Xe2xad} z{F$le=lcP=%k$EtD&o=pgW`8M9+#K!X~0Az8l2dEldp=Bs7M{3`B(6*9|1KbHjoQ7lOnCPub}fjhzrVkZf!o3rWot6w$yJXK++{CmPrnAB8pGV5}Ey z4KP3+Y{>?4GS49VEUdpgu@tjnWn z31h%a+<@mm({Jx2o&i|M27m&xFa$o`2y|b^`1b94 z`-Q5s@;~*_a$LDgaNy&vAM(qb2aoEBcR3zf?{Y-B!7$h$&?3@#?Wqy9I%(d$Cxsfi z>MHc_-3yC-d{=vB^3TmzJ@+<1pW1SOU%2=;;p0}q+Y&Fk{8%nJ`p0HH%K^^!(-#j6 ztmvw9EkDaAUvD_;ZGD57JFdZ9?6h+e&VbqKEMZ^(s4`iJ5D_ONbX zBPV}G5In6`F<_{o^7E=y0%*3eCCM_(2x3qq%>s`%=5d>O0m!T*T|NpIQXqatStIcE z9dRpwERaUI-(dOn?>lY@ce=&!-h1w6u@BYI4d&ugQ*9i{gbUBwN( zR~hB!3i9iN4xoPl&Hh1;_pDKR!a?=fvF@EY$-hyaIB|MUsdb-!doohg^qFfg7KUA{ zIG@e%W2n6t+4mzzc|W&x8j|b8(Sp?vvr;IZL~$y1dkn^q6&w-~an6;!&Z42YN-P0c ztm|=`N~r^HClxgqsAQts>Qq~fEm~7mm7r<^S&J&cIdMZ%2@ML`h)ox4@mn!J6$V!s z>bX=kZZhJS2Vv=6$q9AvF(WRmpuBg(cyk&up%`~?b z^C1{tPUE#n;~T%pv(m7zwA|Y-KzTCSdTNcH70+vAh`O|)2 zb>Aa35owI@GD7d%F?Ef076F|UvhzG?Qn-G@X#(q7RLla<3CZ>Lq2UyEa2Wq7r6d;R z|5#BU6RDXHPxxrx$FQ}9J)Y@2R^Su0twKBuGZ8JKb)3d8AUM(^=^zWFqiiQvQb&H> zFds!#K=j}mO8;x{i&Ifi+PryiwC$>HsrKXc`s!BSvN$;*t&DT_CXeDT*qw?rk2P5< zhAsmkfjZ!$wW{5)9Mzw66<+VY~H4%LINg_{Ogn zb!D~kR>`moMwa6KFasV%ER$S`<7$~kf+u4Qi_E&GXZLs&gv1IXE2C8rogfj>V%69H z=EB^_wW1o6(t;-|p6$L@QDI%|o(*STYkR)4(v#}t&k7s4_cKv}B` zyjxm|i(i?F4*RUr@4U{m-fBdY%uhFe{h*Bvo>D|$N8s3)W(xO~t|8KSj{S}YQ&eIE z9tmY%TO+HH;12}!Y?hf}<8XdJKmdT62N*r-bG-2Anw~vWzRGXMx6hqAk2NmlIJn*N|j5yM&E5;`WE2P+QqdxdP&7CaFIen?vp<5dCGE5!$dHw)+N|g;x zQclV;+Ue^%`6lhIN74W|jd#aN>Mk;AJv?qy@>wL@9Yyk~qjfqVgLfiu-A8C9_ycJI z+v#56{-%UO47t4-f?KnF%Clpbl0++mFB-ELm0E`F^KpoceId_6QCbnzkW5b=l5}Vz zJNH1a6}=|Iy}VM=Z7^o-0bk?0W~@`Yf7wIa z?0g;$-vKR0xZ8{ajCX1H6GU10jPTue4j*aY7nHE8ZEvIQ91z=j>VVUd4{8-#?p?>M zX)0`ccDQ?86?f0_;7!cVo*MU6j`Ox$-cw<#H?wCoQ-s4>>RqCGhQCw&39aE)<SX&3h#pCL($B*sb+_Go6fm-R_KL zb(>v!7w3wb>gvUA2C^`6i@p|(y|{P0fLBGVsi|&pZlFRh_i z;O)#gJ>R4fbCc!b#ha;}_JTUo^C^!+k5HY!x*pCqRfV@lx1mPv=q)~PH zTWNK-rL0)9(r2dNp;l55hig=K7H(1cQdyX{narwR#aN%dDwh){4QOyiWx9ETAI{<1 zdl=_`PVL=F3E@Un-wFhUFdJUk7Y=sx0_z#+J;Y~}M(c@^OmDipvbc%AZ+brYZOTqX z@GFEo<%Y$l*(io!XIjX3s0*EnYfF}P#qE$9y-?@aP~iF{b%u)JfKJ&(vLsZ4=*M9f z(XarbI2j||TJq~Af#Xf`4p~=Jb1fUa_gO}~J)383p;Db=5jdA>Y*hP-&nIrh3Mt>2 zsoln2yr&{fu3T9sHwNma|5j%Q=C$g6-B~2%FEMeWEZGwt&4xDdhp$El>*XdYhbQKq z4V*c^p6N$B8ZLjW;i+1sB!%y+u}A+VDBX!gDXpT@zVsw;cYtrYPoW9Q{xR`{fk?M` z?4ThtY#FH?Y*HqOnc>vM7Mo#+N}Bs4?E-H!m%Yh!$tkA0QP^EUTmkKE_sRjvw%(wQ|W;hFxty?m+Q$Z);_Y%sr1(#wUiwY_)9wdb}e z$5N)gKeGEoGrHX*TyQ8(y7S!~-t?MOYEzhvvDWsj%LB%l* zLWBXwPRXc~6W?lzg>3HFxg+sFim^I?YoN#7^`+ZrVs~j$RX}cGjGWNY*DGJbM*4aU4dt+GyyDT$@C-Z3K_&v#5M7`*un(yM z8X~($;nXFTpp(;XOHBk!0uc82y`CN^W=GfZ#`+M?nGgwEQTeIGDGjS$xk-lVFd=2b z?AD5MP)ebj`~3Y2ZV0~(#1DX)2&ni(nw3>sWwo1ggPdV$0iqsVMEXChX@Mi!8h2z$ z!hCrrG2#}f`2K+4{+`prdK~-)<2}tG{LOh*&31)~28Bw%-xq2N6BHU0+Gf=o=cZ$( z10Eso#P#9Sm)z#^*+?D#`MG;i%-!YuvU(%1QTR8AI z&)&|5L$dKeTW4q4;k_dQHP4pi)?P3=KPtT?sK7qv{Kr4ff4)68*_Ju5b-$wL`xS#T zj1>5fCf_2>FN&lQybbNEYd7)SWAMIe93aX};Bz?u{Rujm)IF{bZAUwBWFYoqdB2Bx z-R9jyg>P+X&iDMShLAylX1_*C{i*^7$?+Yxm9(>2M8e#@+{U0>{(MONw7Y)(-r3Mc z#x^Z{tv7;cK#1~9t5&&&kzvGKp)H|Rg=Sc4AU>^p6(zu`CG}2^yr(8NydOs+XWv<* zS&j!^yKULnf_A87u!X&)T)0 z8H6^A0y-f}35{*BObMK^%-`eaEVbz8$Oj+`exi`uc_jmkBTPd-A=DQrowm zjoZH6f6wWI-{MZ4xM>P^carcW*HI{Wvq`?mqkf>l-)Ujg|3jY{YpCE>t4xEfxjS|s z8_f3zb$bn~qm;unbI?Ip0e6T)uNfs{q83~Ip~`>Hx!ZGW+Nq~mU58nZ#mQL?d^`}m zd&4f)V~&rIpc0|COQpU?=UuM?XLcY;DbtIyMvZ3C-@HaT@*U?WPdF@=N{cS!n09%l zn`%BZXJy>V_Ofz0bm3iwZ-V^d>+iXT82ZZ0G3>Qw1#mHjI>k)6v*4u&C#Qe8(x%DY zAC-$QM76W(^|Ev44NKcZJ*W4MJT_-#mOHn5c}k;?vF7+R0?r&9xHGi`xsx?`xsCSj z<>|{Xx4nJy=*rerHKM~bNyx`;%#JUc1#j`MtTZ(&332g4ZP>g1MJnxBipsH%msh?7 z*2gF!l5IGxuhaS^@aa?fvHD4~KGIIi-j-a`a3hhjF8DU}*8ff7b<>RrmMOC%Xa8); zvRkZtf4a(NPS#EDVY}XVj<>hBNASspRjO+wszlcduI5`o88ai3M35LsLRW}uC>#42 zMp|?Z+l6l*565lTvL%i1L*93+e7=IxuhHgtOe;OoW_|uS)2z-?$NP{TG@Ja0^v-Co zRPhLofNw>C&JAXSvn8Aqu3Sh2=1@u&9p-(AN+n7Jk+3F z?m1xO_4H|T6|*w1xP4!`T*EyE^^YC9V>8n@+p7}=Xc2;~ETGau{x1TRy&F)t9o(ZQ zd-xZMBNrM=G4u#$ZgR=@4D(qKkH1@JAWVuQbNGV6DCz^TNn3s;#ZTr{$?!r)WOrGy z$I&0HI)5tr|Mu%?R^C%=kgbtyAaqSPp;a}J8by2R&(jAONc?8~iK?OtZ$y7$VC<{m zb(xj2(Vi)2(VVQE`_^|0s$3GX;XmGA%BOn$-Q#Lg;ru? zJ>$A5*Yec8y)SNSPDG9l=}mdsv96?jxv{CCbWOT;L#$pZ1qV5w9CJXB#7`8Z{H^vy zhX^i7kjECP@J*vg3(L)8YJXsEq6VK5zzSJlMIZx~VBeS*Y#v$M+oXsZ!qH~7>+a-W ztZWjuf-@H_CHQ<5BQ1{;soW$!Ij-cGgY;yZ+Y=;^s1!WvDi)*dyB}F7EuEvV-^63H0rB+W5TlgGz&$LPTI5E}o(sd+nWa9j3y}Kd2M$4Y%Y~j;)xkn6XO_Qn&o*rtAxKDcvdU`EQN-t{Ij zQWTp($Vnx>Joz7*lpL%kfWdN%H3V!lYtagMXez2|Dbd@;@0VyG`T$)Vy-k4H5- z`vF&_j&cL*4o&Hc?-peaQY(HKTfcsIuZ*K%dWO}$i_@IfqRx%9#PD=9^B zun38VArl)Z2snksj5#!(F~TGy=0Z;>3jF}ga5ZC z-^gnBVfv-X%H?y8Rix~+{lbVzgLr_1z1aFHQI+|*ExjhOtY27aSoyaMQSWToXwK<7 zw;vZ6H+PljK>eQeHAU|-?wJ}I)6QKszvx)}a_Ph1*%`qt#}bbD1F|yBFtkD(X>n(1 zM@n2I#uoKGGm}jN1%)R2n9Coh0i` zKx^;K%|h$@IvpBZ##i2c-b7#EzL-%?X_YOk>6 zw1=H{jBICDPkOkM{riJew{LF2-%`}+5L7RhxcRL0i;%%u!z;Hv87VuffuwFbMT|>- z+q~J*+|p8?BdJBkeJuLJI9z!ckK5YX-f#RdoSy9*v-Q_sPe+4LR#UTrVlOyS_0qa^ zeP4qlV_%fR`o1>`4R%d(Ha;BkJqIL4j?@e^FeYfFM~@zV8AmlOY`?kgF7MXDPTQ9Q zPyoxDuU{{AGgj7Rw%8%Ac)W)97SQr7l^wP^tJVYu6yYEibT)Jz(V{+F4O<`fgN50%azJNk_GzqQrQs|D4P8ut%E>_qHdZvA#W` z2M(+^8`gB$_BEe2k=2e6DUTr3MhE5+A^pB3<8-n-%=|esn>pv!&6aIVn*{4mY!Zl= zo_{#_tFspVRdl^4)6q1VzgkhG5kP9R+w2LqHymZ4)J72?3fx69BWYDrDu>7beekDu zZJ=%uVeVDwN_f)}k!sE;D8M%Y16_2Ff!YtZ0I(mFkXH^x+~j~_ra{!gSTXNlj;xoG zjN9>h_oO6zhd$iDHQJf}v2r=df_kxXL8T5#hAko@06tHA<5n0Z+OMgzRDl1@_x2%- z9Y6f8Q)^_vh(%k`0HjQN_6&50n|SY({py!zdk;u%QnFI8yib3$r|XCk^|3Zb-d2Bg z4UGmaM+tx%O%c^N6>J#zotN z^h3<7_W@abVuiz;VRd9@b|y`-C*o|mcAVV6#@?!cy5*V9lJiZn^L9N4j>=EnRu|CL z1V_uVoN0~dNIXwcqG4K;4(-8ocqI%gRZq%)e-gcUs!Pi1^|o9~5o6o7y7b|E^R_SP zI=@s*upCqy&e!}N8N-aufBz~QGQ`jWHw-oDjzR4^&4fECkPlYX8 zh}X|4MFt+%u=Co@40_^OFnM>gOEW0^asmVwA4VpLLT2{V&SOC>{^{0+sfiJfM5jCR zmA@$jeg2sAC3r`aNlBthO^wpxP|Bi76i`crFwl;x`)LoJ7CEhbm#4UZRGj%Vje(Mr z;Y$FIiz5>(87N9Tm67GAFU`GrNTcfI66NE`DCbt2tACywzkeh$>dyU@Lqkf%7u2L3 z4|moVEXf$BgFbwmS)^~?Qp3x%X6*ExjpALsT)@h zwhCjS1s>N}94t`de5cDVq3v7x!$(NkTVG;R z!b^*3?=QNSs(t5Lb%uG<+~eew%B;OEC+63MS;0$XZdT1tj~b~|qR||=f?=&IllWH3 zd(EpEv_P{nEhvj8Z9jTW>kFJ|XiP9>IbW7AlFyTWCr_(6vF7gdn@=?~*;t&5N9pIH z3FxQLaE%hN*{U_lPnw!UXa!|s0=tj@^Xbh`c86N@E2U`(*1XlAp8xW0PwSnjx(e?( z3De_BrIrR)o8-e!l3=nx<38#0qT}k{zaDXs&PflN)tnJaSel;+t(aG;Lpk>CA@f)3 z*^v}ELUR1`7pczal4XO=_wGGvw=isH6BL_x^eis3C5{VsdSq;qB0YsU*CaUvi3vMtwa|XHQ*(}y;Huv5;%e?q-YNdag#HSz1U zYlbH^;qWiH+a%Vd590Zro;mqDl05)h!jA=M>MqPQzX)t!c&H;u^P)~HzP>{)Q~{Qj zkzHk0efLjXh47?BY|GcYvBSWfgbUByzl`Vv=Y{6S)pf%zm^ zDnf!!r?&O$VdC=%m#Eoq(?AXg@-zH4rOCC)1nOr5;5yr`TeIf$6UezA&Gzh*?+OeK zA8x%n&~O)Pf`?4_K@8D}O(8}(e--X+4hli!oMH2v$#|$Vuc-cK;#DdpQ7NbJ$RRCM zSF`Sdk4AS%^UW=fnOWoA8{>4!5+#MlnULoMV6&d9VqU;&iCeK`TrSPk1`5PzJMD*> zUu^)+^+!2G2B$N!I$AXBB*%5Xp=x&A#R)|c@du%b7>&E)i_)#S^eZ@SS20p$_i4m5 z##O3k?@UwbuN^ol4PH~AuyI*xug}6s@m0)i4z45CM@!wLeHM!d+Yt*5J+(u}`MC$| zHDzWZJUoA(qN7tr@HlN=D{!T~jFr_1n)6b+5#l=gsUx47h;smtb111%%=g{Q*fg?& z@~RU>b;b&YRi8mr&<1fiGe|>#@EP&kYjZN;kI_-)kqgu)bld|3Xlq&)Jv=SF9D{gi zZUIXC%}(%}!6}Kf@j}oyp}Bz_Bv{=#>sD$6Efnqc_9M=%+=_Iv6566q@3bRr*vU>~ zVmBh+HB?M2 z+7X6)@MNH{opB zdTH?83C(g3@cjkTj`&ZkV1R6_C1g61X!c{7uGeXGQc40@*#;67k1-o)NANyUFck$_ z4jI5MS_rQmJfAjkaE#WcVwc03@+8E9QpumFiSORMJAAT+*r-;7r^wd*{_C&t$P)cj z92WfPIa~NWy`sLd8x@aN;qjf`dA4-~{W%0eri2?5JGd$7C4s!>+G^R!bx}b7Y)YUI z5JmJKoW^hK%7pzS%-LHTu!yd7oqH3H07BB2d>vJ;kl{%n- z3`+kpX;#>Y=(4a8h5|skhd1mx;b?a&w|%X97yaNkT6?%*6-Bp3Z@NS6hGrlAw`ZBC zQ7E^IwV#rN5}eh8`Z|=W8}NOKT?RJ~Ga4D=u*iqCS5FazazhAKMzn%!*RCC=?fR>7 z_|y?gr9J?c7$lA|-QpWseFe7sT?wpjqaflbTArg&9Pi~0<04ETgd(8XuUy50u&(U` zK~p(+A9jXB&Vk`;VMdU;0BAxgKNbh&>BcM|QXU_KFN-z&ABc3y<=F~K?bVi+7Q;@^ zZv$J78CRzyCqD$vN}dbeRA7s7j!jo)A%Ky0GAvmiCI%TOPb?ZA(y(5&@IzqlHeA9+ z;Ml?!Bj=UO)R>B%`LDv6gXo@!4sSUY+Gam)kmxY%2jur^0x-x3>YJ&+w1sR_ zP=hltj|v^(?1klXrctT3TWR;oAqu5m5#En@Bd~p?nt2gV)2Shs?nyHe!PU6oD&$9V60Zdz+BBnTn!VE{Kg!e#*{8H5jp?~8E` zdVB*a_KP3eUB&hP9O{Ga#Y)q zWl1Um9GHZgv)NjJRgoAs@(jVC(8clq<)G9wcmabQZr{I}5*-DY2@S5ROS|oL@Hhy` z5%(&~!}5tI@JS`SdrWCFf_?%`HkB5%0b*M0cs&jVN*9yH&7UYYEFhJ(ZhxFaVp7Q{ zs!%$pbIDkpxS@MWXY&j#~yus9p% z0x|d}uLjI)lq?s=t%Gmg1mKmoFQFtKpGyz|6FPN=kis4q%e;gDPuykT1mSE*_FPE7 z3wmNlCZT)<#8D6WEMSZxQ{7JeFTiG>ZdMi<0ux6ST>U#uvk26Lk|7U65Z*)vN{IW} zrdTa}6BweIe32lh2>uNYh5e#>L(b5{TY=YwbCu$_b~xYcB3={S(A1&l05pW}hWAt6 zOMDk&p{UxLy}bDbDh$YCZCp1NPGDKvU^NlpbIvL_&-V73fL6<-vWnuzj~$9~TlK<) z3ptI1Jcy@NI~{O~+VU68X&9}gwgPBqhgxi^KSK<|GlV-eZ~rfpA{GLfy=a5oo+}jT zSSFh!6QiKZjVJVA+$+rhjRU(?934g9hOVGQ|NGE6Z;b1Ye7Dv#jcUajrC{P7K+SU- z)wj6<(NM<6HX8`Yz+TqK-br#&h!p{3JFRMzCzP6W&o6#=0x_MC*6^>iN%7a$2apKO z?d&<|=7_9>p!lxl%I%|W#JU2DLqF%tRdNFKKc61X=kbOg7YU*P1tUpjtf=ba^R{(( zg&3<5gLr+8m6R^RG4%UAFes>vaNJ;H)L*M<(BJT{mB=?!az)1gVtT?eBNS<(hhq5s zCp2ZNnb@%~ijD=br-8%RI=nw@a(Y?|CY%`hpLN}c#Cp;7M+mI|vB=554pO17)mC^+ zA_OZICzNp#yn;10S(lsXr_&h%8$EmWj8MnZ6Ldcke+3-qP*v^^SkI)Sj%UE5D8Dpy z_eckBAvN+hp%)<55X7iGBgm{6hatiz+v#k>)4Am#Wy5ta|CL(~;0Ec7OYCLO7z;~i*$7&tHt}B$j zQ3nLpF~HRTm2h6~{f~0#BM+FI1ITPa5e(IYHqPaItnLU% zcbv_@ka{mlhAOZXt$i`Sil`AFh?)W?E*;c4m7xUi_26c=o5odw$JvQr=!%jI)QFm4 zzOW&9Me?+X{X{9sCN&!g%mwj|OjGbIld;K&NUC+u-{+?zD+JSoR0%p{EW**P@Wu47 z{^6dN4yrW&jvddembwTBEfE_?I+GdF#RsVA|B)3D79U6T?_dW|L7Ky%Z$TdBgn4c| zLGSrs)`v5Td^IA#!~92|+$LndPy*Pb&!_TOfvLQi*C`0T?clR=suSvk$Ao#xOel^B zl-n^K_>DXFK&gn_WMWbLxN{UQ?@zehp)rbhyAzOzlPmG62@$T;^Nq1OekNaNTe-9CN%K3`#*f>+KV>DMX~wE@~nKy3Fofalt?!5^eB9QL@^(sA>Tq6qLn6^9b01!99VSP7@h4t@A=A53F%gQ<+KqxezD@lVv9 zLT`yFPdM?PAO%Dh1O54? z8x&@d(5wbHzJgE=&gzj9Q4%MKYJ_xbP-Ycp^!`QRYqwYeG1!pU65xi0URXChp~w(N zE{`Jo7jtkCQC5y%#zwS$Fj@{T*7MCu!6Kw;+S5+1^0V24o7nLNKIRZ60XoTS%F4=b zA&JaC{q(1XSXl#NV1|E$g@>h6^N7L!F0Ul-0DphtfgwD)0Xm9QBvTW15s@|{dL!BQB8N=+T`UX~eZ zJ>oh*%6cs8&566;AsnCu9ue>nR7Bj9ii!JIdYB0wED3?W>hE8Y=YY;aVBbCs&{#u} zcmfL3ZZLk+xr>RxDv_7KjZQ#Xx&wzV#gK;MUfgH#0!U9rV723M*OB=i9mknO{o_ys z&G7q;7>vHbIwS$fcr-G-@)a19l5I^=*5P1L*%&K3@)6#zK>JDChr`$g(pzCJ_7IZR ztxT<07?TN~WrWBRUQt%CaRC+H;GTZqcTb2TNah(BOid_O(Nlqs_FlnSx5oVeOR->A~mgys@u|WEhsJ-PjWvgt{*4 z*+MRpjY=R~f=Nx~PXoTfP%5(HRPoCo2B%q{1&tUXIT3$}h7{)(^ zlVd#5vIg)w94k(FQibT4WMVjgia{F)L-gIGUx6*`L{$YonnBnKir)i*C19!!4jmts z@d;E(UDmsP#zi_vL|CA2r?MDdIFxcKu0T3S+5A5QcE4%T@a}KHNf9~@mV`f}xbvsu z<#Pj3YzRjuRm`9hjEy`&j*r>!_0@00Rq^}Ri_HJ$xRjE*@#L@CPaC8ex-O8e;v!yc z%M0V!tiOYGuLa&WvEU)6<=Rn*Wm>SL$Q_MO{0GSGut6!nw$ly9Il?zmU?1915L#BA zwACS`$4g{(4<^1=R59O*mc;9z`D#{HY}{%y_7AT(6v@K!@@dK}P*kxuu*XSjy$NJV z4@|V6s_$G980vqh1;Y+?^fV@9!y_3>%zOU)XxyG7yit-mHyV<2sS?MB-HS7cObYvX zfcg4$u&Ib$NrcNf`6Qf&tB-;i3;a-+u}Bl%o^RH=M#|b^{ZT zj89vgqLGhYKutu?OAaZ&XX_A6P7D%IS6ZVk)UI|a!D;jgr35T`3Lvb|4WfVfSWl(- z&fdiA3aYeQ$nxANRQAqXg%^v(>>{T=1~&Wt5M<;Kun_86S{QF0dfS|;*4&(g{5th> zsZu8glTYeIe#esIQJm!Q7UDnL+$f+WwmfAu&9s&pP_1QgcFfRYY9wVV>^A3mygUm$ zT{A;k79JkgNnX4#p_rQ;!J1|yWA*$R`;v4mJ}8l6Yh@c7K{Hic}yLt)87 ze~}Ha`X|z17-*1UBfW3G5po|J#igOR51&svA&t{aOgDI_N$gGxlKj~a7oOHI|vKu^8h*pxv<+Q zVCw1WftWwJeE1ZVaO|S)=26VuSuQwapvXBnsEk3_l^{KJjifgT4L)HaI<3%rFTr{y zeCJZ%!{d6RfOs1Qod#npeQ5=Ql>gTa6;NREdtsMzAP?x^c0>yie~oC{aHO1!-meA` zQm%B6hDD|xG+6SaKJ$CTOI8C_;G4*ZW0w>_$i|18uNL- z0_0u6YQ?>)cW7uNRdZE7PWx*}*V;-GNd7UGGIuguxP7a)w@cw5g$Rv_9Tw4c*RH-e z_L0!Gd6IXd5mX_HYvSO7>LNX1e<%tV{1Z9-(-SCY^HJNh0Cbrm-6V=?bh{dRpy`Rg zG2!=ktm9DSR{Pt+M%1iwePJG+9}<@Jw_`6HhJOs`BnT;+R4Xqz?{V@zY{mow;>s7r zQA$N8!>z5>iJF)(J$3m?wk?9uNsrpIwEE{yi*p?_O6PDw68|$8X%#K*(@mx00^oVn zkb-d|F{U6kaGyV)BPO?av|7+vz#`oMRh8cvkI{S@k0O+g1^chNpdy2j4O((YbNurE z{>Yb}$S;eIQ`WDoE$*%p{2{SfSZw@bl;o+B1^Y>rX9o6rXgkYxi;IiXte)y1qW*U4 zthmOley_3(1SlqgBN7xz?%w_-7Jo?I1++6#aTUCvUpIA-Q$B#un+Wks96wyfjwi*m zba=l1K44BK08$Vy0wLW;2O&+wc8{bhHY$EBd;RM(!Y63C%sI(}H$LU;ht5asJX~?n zotuSf_nb_Ni!;f3n^lo6if+C>?XXC;$%W}}N00aaihDpEKb=(mllBUdB%kR&cTOPG zTL44S!J0Z5CxBkqZgbw>Zjj_9+@av5CJgfRx0c6wY=Qi zl4fZz+aoBXw_|~3l0LII=REKHd8AEIIqa2gxjt3%$Mat@edeuJ`YdGTdI{h8yK|u5 z8SjW02I?$g!b6wF1!-Va9-@+bF+3`Y>H+lXB&7{W8GoNMD|4qPegrAw8|m>n1wZGs zQ(Pddx$-+0P_51F*8Tg3}Fn!YERSF9ZP{RDS|ut_BAd=qBRLXuBEJwc!qz zSuY1p`EL5jfOBr|`k_m!Vcwd!jwO*{b>h=2E?hROaAuq<)XI4v=3NqkPcWCVk%c$k z!J(k=%vByD|K1emsU)FzT_;8wrjt7zI(US1Z0bv&nN~u57#QfEg|8%P1TZvZETb7c=he zx;Lm?0>z?;dtt!^JENxT%1G~%Q3KI4D=4?&!9}__>!Ic(nD)5Z4GO2W|I-c`byp;) zfz}`_3Ih=m!Uo~(dAn+1&tM}U?uddbNVFm}T-CJ%aB+;l5|pMD0Fz6HpP+upd8@3U zW20`wXNYK*U~pBWIvU!7$`$u6Gd!e?BOzVuV`Ex#`$0mkZ_xFca(gp1Mo!zFY5p`M z@xZ(>+!x}vym@GkACkffVH_BixO-E0XLrHRBJ0+wSmuxsHga(mDTV+(9E;}6mqs`piy`y%_XOEG_b71NE zf0bjA)w^|1j~Ns;8nQIgbk_cIr^mC-smW?Y+a;z3ytED8JFKxkq zm7vh%g%IEPtkJF-@zQ^qKoOJpKQJr_(Z(YpwFUvA;I39u;KEBALEr21{ln@>)?sl! z=WC<~JpyEt+$wWSzi);}ClQU%TKBJELRUS@BwUjJb2D~dVAA@x4D0&;%CPF`GOQ%8 zu{;0hu=03M9k^rWf(nRub@m^aso`yqICCZu(u3c)oeOo?dwoT^eM;w|Hw*2JGf|tD z{XbHx;;~P)p-1JJD5?Wxm@mLoA=ZEWmK_O2HY->H@Us7DK5IO7V_2oS_UixQLNwPe zpFFz(pDH#(ap%mbj7=1a9%KJg?8Tdq?jKRV&xHk3I^z+e)#5>a~y43_Wl z;veq1f6m2XQ!#6E*1}$U*6|7(R)d0wg@L9fZ)3}3Q^T@ztd}nNfBSUTqfplAfyc51 z+H6Vul)0+EAN=Rfx#ejZbm~=t(xxg_iF(m5Gtt$X3VIJ+S)Xv` zXw|z)`N26b*^dP<(ZBjG*s^uqHpgJ;hm+4);fL)Q)n;z5i2yIAI2iMCzJ3sVZUF{h zC0lM%#^r;TE&5&V-Mi}-FL^S?vwvj5E7kxH9^)PT|BQsVMgKbzBB&^CY(1(NmbW+b zSUVeu+UoDhofcXUGtelLbeFdw?a)}I{OmHbdlL z0$#_xy^&_IuG=_PI}1F(SCP%1CZ+_74YPakjI+PmzTP&dfBU}@sXok72(CkpCtER%~Z z4{x^+dQgGFUiM9ex1#!h!}B#(^XFae%%Un-o?uC{>wHkSVWWAL%h%y_kMV5%{BzZq zjAjrv0rbn5j6`D&mWq#5l5ED?_62?W5azEt*I(cugY$Jn%{SR7vli$&fzE3Mvx~^z z8^Ql!7$w|W+$6{`-%#X@xtKTL@b( zzrO+l(f*3aZ=Pcn2Jd|u=lgS8vL2I9-R zdUYw8vA+k~N4y!|aT;WRp`2>YwPtO0~~lK>Qa8S*Ed|k zJ_O-Q6}7pK$lJ=pY|0wQ1j#%juqRvyUYCe6rM8z}xtzCip9aCN#Lr4`l5cmIjKBb& z5~FXDu=2RSFgZ3?D&DwvXpmQt&^}g~#OA-U!aTq0S5ie3l0<9bT2DfZb2_j6tqTBK zgfBi-=d)DvyBu}>NHLo*seZ+gHuV!X;R7!fyzrg@9-`53yC|Bl%iML6lA(i*AJ~1&FuiZ1o_6^%c!b0o+;9Q=-|z7Q%;jKE76_7xU}c^A$I#7s)1EMuK~-Lp zABUTwj9wBI5E2Uzw1E!J-+zCAq!k6M*V>$8ce?FK?izWIC^Gjq%_wzp&5}0_EX=h# zpCx(MZYx?v;_G;d#loAD#pRE3CLCRj-@iZOIDreT=ng!l9$M6ek%4Jj zwuwkogQaWY0mw_XInYlpVyWATnFxC)z{ONz5EB6-W3Zl3|Do-Bm9z9WnWF!7M&tWy z`7E8sOF*{96VAIVWApZy^IJ)0ir<9I*Y{6}J;pS^v{cXrw5x0GCbTJW8bx>tk>`~eScf>Mx#AJtL#jEq5W{=azX-E|;r zQ{LiPq+!-<(^cf8tx!W2)*O9O7KZEJ*-lwWNkDz82S=Pv=@^fYkWf=850NBc+_mX~ zJ^n`w#gSnr3tT-xT2VNP7Q=$L!(*nUg4GHh*dyu2O;{h4$0X_rR|>KFfMK(CdY>UN zf4KbD>Fm+H#Ij)ncWJkA>Lh8*&YW?!!zu1|Jy(j*GC^N)wk3qEF^n$`$Kbkkz#w7Z zog2n;7|uxT<^~G=5mya7e9yrI#>40M*-fCMQKT5R?EM2%16B0KIPT3|*%k3&ia5!= zZjYo-m5JHeCc4=%>D2Ex{+q6-iis|J*qbdAB_n$SR?LPwn z@~xQY-)aPemB##05IYECB}~{T(xyZW3|6?VlD7hLMqy2_vE;I>@->u$hcIjq2TBdL zf(<6Q+STN|xgCrVlp^(5FsGfmfeb8-tTfdL@F6fNPNm!xelgYiGTi_c8DSU?Z(fbd0^0$3)IHN zmTQ~UrNmX#-?QHy!}K3K`glJ-zeVQS`VfRnsl-r$CJJcbyM+lG-gX-cF%%QG`isrv zB9zF9qYAVa!`VeVERqveU4UjDaAo~yiVj>BJ<%#B5%VO%jKJ()s18e*vdtG3ZR&t* z>B06W`rwNYzEcX9v#RJAISTUeLo#)94x=-EA>9jiLN1sSJ-u>;ns*^5&y3*A>gI{( zd%c?<939v;T=~N&qarZjulHk0Tmpex&|t=i_WHCQ6Is=BlT%YIu>U0?Bba#^gk8ZS zTS<0pZEmIkVxx9CI1Ihqnl#%}=Y6vQbudpuoQSy9nI1iz|D9-vk3XLL$0?;?lp@o7u_1FhPTA zfovhv2V@IbkSBLrKACl;-vpn{jW=+N2sfs}&I*M;SDddfyrSBxJ8X#s1wVgt#2z>) zHP4KyJ3fMcOmmhI5waV(-(&FEvZeXQf-g~%Y?U}Z+Bx{;Kk`?EbWJvv-`biRd>2(s z!=Y;9^2AFF4Nso~17YH7>tQi|UAa6hVs!C`cf%a41@4L|H;YhXLt0Fl4PbQ}j!KTM46n5;yx-)lxGnd;_gDHlfTu0hkcZ0#F&bw3_oZG2eoVQ`6(Wo|HQ{=9p#a zqFbiCjRIg@LFTzUsRLd10?eaaw#Z||(CO1iNrDbA<1$1+!O#fs*qS1<-JtQ>`y z<7qydczv35udn>sxLiv`y|?G1Wq7sHca?uX;}+DSnWn0-s>HB90 z?`($KWdk5+q0!Dd@O@kv7+Sf3Sk{fgj8z@g*;^QG5-k8=U?bpg^)l`W#|Auarfc8J zu0s6VC5C2TgYL@4xt5o5`wM5zsBN?!Jqo(R_9{^Vdylr~Dqt{0Je^w&`-)w=O06o zF|*S1HOoCTorik+2A#l(V)|Wf`NEh>w*I>^Fny?rZX#vzm>Qjf()bz(|vT%dkD>j``((Sz@~d?Vb4R<7*t@@b9n zD&B2)u4mJJhuHJ8-I$macI}9fGb%fw=Pl#-+azA05x53gXo89L6Cn>w<?U+-3}47nKskFiK%pl|=D$!2Vc&*=ee3)IE^-L0oEAeptyk>%GJm?G zvs0#*@S6Q5b|DMt?~`&0uT4L!ufsFOgag`gK9RNGpMzOA;5~V(<^GYGCPAG@_n$mH zH&-zJW%Ob9=0Vrnkj>fwOamj8lp{|`^jWpo_F^u1Z6=|MY< zipCflf5ZVI@+6PP!_%bQCY0z%8TTwOQ%D=)?11uuWL97ZnVelQU)#JJZ3r-DLdtK= zG>{~otXNw8O!TGI5Gypdp#0&(zfq7&GjnBmjTI~4e$ZCHL9iM|%Skx6;s`18iO~1? zd23)bh%g{-*`x?g=e7d4Os#kQJTKVfKoY+>2>JCeI!qmu?!u@502 zHjup$i}T{Qb%F~)wY;&S+FOdWv6Z2}D~Y@x|&d;2$GQ7|HV~lI9-Pc~96Rs%o#IxPEjH`g41D zqG9(RB9IAaOf4UV)3m!=P$xWuhovSsJnsQEQnJ1Q%CG{_mH7MOU7K2kL4kp`%aZ&- z5<;9DC6S$~Lnw_%Zy|Q5&AVkir(T1t2PZ3`h7}a;5BNa`i#K2_jP7U%Z0ZmY#ZkJR zpZctpZf1mwHi}0Pmq#HX9*vy^9k665Ig0qR8_XXvfgpjXTF`$Hx(CG_+*R&doU;0G zgHEd(n*`ZS1O>%_w|j;j>B81!pX_jD7id8UgzEI?cywJ*o|uTDM{%e1YY87gyL~` z&2906?_lSuj34o&TMIs_7-^E6A>!Ghy!YLx8ys0jAfV1m^rbkiCf#FgmXJZ#f~e1; z+7+nVL0(1oaGVUgThk^3(eIlQm1skr>HZNyyXb|sGBbcfywPvVUo z896+$>^|DDQ;|@+>lRi~+&@^jQs6&7&}NYBb?szxhJpQ?`+xon+eBjkK5AI`WDg7u z3SQ1g-&*zT8DWh38KnPB+#0a-td`ql(9c$(D3vd!x(2H2S+B3ky_05aGJdiP5-6)1=tdIP(d^oj_&6qYGfGAmqo{Dh^;Vi9)2a6tO#SCYI!l!^BaEij_Uk?6cxY44Jt3 zC8Fdd8XshQg~DbdFn9P zbfo_(ZIlz5c$ZW4`%C8QWH4)~(YYV0Ni92`h z(A&;1I<-N0q`EJ5!#|W&wzPeIyti8CF%`g;XGog z4BN(WH*R8O{rq?tCN^XdKG7oPumquG5ixGTw?_gb_ChlV8 zW25#{myt^#q$q4Mi;voz0pct@D+sv42plzqhbHlk$f8%C|B2#GR4SDJr@bo=t1*B3 z55{DqY^7`!qU>a8u@nZKB9$f4W~qo4RH*3KGS)a+2Bo5qB$c!)TOk##+N0&jX&I%G zRPX10PQ?7)-+Rr!?{&@mHGkwe&+}dH`~EC<{yu6Z1biyZCVB_jau9@^s5E3yF< z>qIFoomgck)76zGZp4A>Xl44_Z@)D*HSMvI#ZRq;ZM7aq#T0ad&#M~hcUzQ;+SZ4A z3(*pc>Tg^ZvZg2Q97!KwDUN+O8II3Ysu6c=5`ZromntJlTLd-~$$!Wc7}=YSfDdWo zEp&FuE)-$>r_fsLCfMAV*8CA2D^~GHQGKHscDLj=%Sgx}LWJPp94H#pF9m65x3cGNkPdO1X5+im3U;@S4pj@LAZqvBz8+I@g*vhEF09rgJ^Ri2!5 z5WtVlv&kFX1v;I>55EGa`@MQsn>$L>*Gck8eXBs>^UX8GHQlzXN5XhF);&Q6?A9 zH7HtTe|ZrX7Y^2fjsR4o#+3Yg0~B*9UZU1;=jOsQJrswKTHsWMF(Yz61=+|7)B+Q6 zIKQxnoH%=S&X~Gh8rw;@%RC)~-~bbS3mUvHtw~*>sM6<8?AU5t^2`YnqmpOZ^~InB z_RWNf!TCo!XI)QNFi&wbl!JlYOV95Bnw^5O_pSx{UXV2e+^vl67j|N1(n6$e0`g$N z`6cd-_8SKhX&Nd8xI2Uk^rc1Qc5ES%X?LOFj_1wLm>3mK^_p$)LklPKW|HM(&Tl%6 zh9h?IG5STIa=afdj)-mGO ze)0A-?{4Dh`Mx4z5FcGbKhb zk==twaWs~?b{%l2eWM3^!w`f`3aEa*bBw%WGeA^ykA@b8+8c#zx&g?C6G@Qq?YS)t zWzzv=VhO9NU^1R5?Rxh+Vx*PGnkMJ9L7(m^kIe4*pV^5^@vHwO{vMVLDz^O(S4}~gG8KcArKN`D^F}}BQ+wd>4)-=t4#R;Kt@Npv3_W* zyN;s|2IeTA0gRRcl^yNQQITt7v<}wrrI}mY7GmcPiNc?#ao7Qy{L)8tHATSa7IV_Y z1`Qn`el7oN1;fbQ_*qWzX{_%LyOdLd38!nG5y9P)iva;QJ%CivxV0uZZUlSsg1kdr zVXodshS69^Y6$9#1OT}(c8_HM;UHd6<>7Yp{Zkwj_v#_CEdPZ^J#}-&`Z}Yb5lKuG zq#2LJH1XwTL{CJ=6D+{-gbTuDbz^v80R&Cxv_R{;95;d7bV@Y=ItJo3;$8`U0}j7| zN4$5-We8=xNmPNPDG!P09c*67FA2zx$RSW?#ji||C|xEh56ikb_mYwU8e6Io&`PhI zi>4;G5TL4!q3PBBIbz-wkWm0=NIn=*M8;{TdhRH}bOJK8<+vixZ<5Ym0L6S08KNT% zeRtTN(N$xku?q>v6XQ@wB0GPQA|G?g-W^461QwZ&7AOFXS&7bjsUIrnM;>@hhms0F z_!F^J(18SWF^1u-0WTlAFm1p~U;%62adx481i_#kXPm`1vDy=r6DWj`2II0#90!v1 zY|M8512#B9a75>z8wtPfFATGvKrDQ%Kj`pqqo=H*tu0ngl3`*tKsyEzsVN1!S}Rvh z{p$^yVwmvgE;9JN4_BY$AB+!4wTN#3oZaMLoB096A;;9F3qGVkiI;l<3RMjglE;$o zazkS46^It}%fqR|7vA64V*o@2Fr_NXLlZ;9%ay&|u{}B!I970x6xHt~^jl|ihDk^S z;!MI;n+P}&Fh^{?s-c0hV@=l60$OV_aNM^CI7{{RJOn0<^HXf1CofoFOghR_*~p+c z)N2@_GYKr~ieqP$fph$A`^Ms=iBaw(z@#s+5`lZ(1lCBs`EZ;{NK5}&@h1=!1XWla zAQsN#1%hb11VjroD-V}L5x5HRf;ZCVYXk<6VJZynrcSg>ECm-qexjTl7d2t-Qj))c zqPw1sQh0bPTu%48W&#!Uq%mU_VOyhU5OeYys_G$y#+3BJlr7i231^jyJ*K!l*j}g^ zA={9Vc{=?e^ar#*NbV(ay*G?n08p+7SKsM@(h?KX8~^a6JEc%|;i!u6=Y?*=fh!5# z&3E$vFpoyRXnONQ6}M^_{ah;{7w_oCVx*|w+<*EplpO2vW3b2hJHKelCZvg@PSO0e zU&GrzpYaq~#kASjkw!)EZ@Y)sp}D?fUVhFsimGuB61@aBh}5kG;DRc#b0CXf*K%Xu z`8*a9&^Hi-#;3LrvQd-GkK?DNq})QTs(K$pw)Y5!v95M)TL%H_WP%v#-SP9|Q^_1R zM$^d1=#KJql?o$IkEZpYro ztx|cZMP40mdh(Ayo<((FeT~n+*|nnQHA#=a7|9bs`hIzN`PiuQ`5*U3i2{;7-ZKak zS#VFGV`EjJSN>Y}zRv}p6AE#6JzavDadHP>H=*l8^3ujQwV5noI8m2hROk5g$&<=L z6C?~nEOCxa_~Gj)BASLmfdWcH{5OsusDn3_pv#|*wTuje9U7vFi>D!(0jB@A-}y&4 z9ugSmzklib|Agq&$Ykaxhz=T;t?cSk#~XVLpesXg+jw#hiB?;3@+BaziY7(Gqm91^ zoCnkirTiAK1&DnCtLyW${gK$OrbK%E`ahvFyUf4rja5pymt=U;eaFx?H7U1woeR+) z)#ulaT$z4!Ogr4m393Mv<^^O8%9S=`}CQY0=Oy{7c;^^ zsrWNsAW$tDM~e80b-&{)k|G~{o%r@_lKXKPr832?I$Qn6ZduclG%HfI4;>jL%V-}@Mp2nJS#fXqjH zO{5Uh^V)>P`(w?vCMO?_c9jJbGI^aQilD~vXx2VHvFYqRTfcj-E~|lyg6FkM#?u5* zl~qUV2i=$y?+>po%3zHZ!HnDl#^DC)YLDjMkJ3FhdtyVxelRvZQJ_ilH z)K*^Fmiq8Wp`=7$l2P_chT|4EjpxMyKPx1Vzg5RMLMTMPu`P4lOg(VvgO`axQVWZw zS+={bEI;zAMUtVxHIoh}(|Mz{HXW2TNSxN#G%IXUZPwBaNelTi&vquR4ZGsJ@zk*D z{J_9>QNJHZ4?j-s)c_N|1{v?0}s@65cE-$<{(Q>1<7g@Xg z*IomjFc<%Cy#~xT-qTD6?<=mqU?)n`W3Oy#^Dx2*C( z#7C#hif4oOw7ZFAjkMJa57$rgLX$7hLYBJ9fTM3(0qjrqhzNgY7+N;$Fp+}l$J|1T z?L!djHO|#GzcA+Y*TP$#TMGMdBd(9i+gbFr?H2rZWIG^Mt~HB}#J_H2(1s0KGIyIcf7uH~FRdFLKihzq+Zm%x~64L7p4PQ|Mjb zb=aih>L_R5{Hp%ccfg@Ba8pk37U{a8k!~d>jV&l}1X!2`uN*1Joh3gU$j+Q~cBktTd^_e-!nW(@pIOoO$96PiRjrUJzQnS-@(Os(TAk-KCN;rx`~iwKjWN<-u8B{i|FMIrLp|_VYGqX}vs`lYUvd zSzu`!vSICqH+qHlILOUVq(1>d(G-qV>m$)P!JT+iU{>2b5G-&f?yR)+tKSn_n3)(GzFISt(Jl3Cx>QmgUG@#GAd-(f zXQiLhi`)76Y0J~ETcFW|N0XCvQGy{4R62KfLxC7RU-hHuSX^5Ei~H8J@zWiKSmn*W zQTt4ZwQ^OBO7WPeuX`>w(O`O$d&avs$6Gq9GT%jYqk82P89vY3M4Y_*uz279x8#Z3H`4SGxp>#0)GN)-v*Fi0}Mh^~q~_Sy>39<{eL6jgOFd6cSdQm}He(TM;Pu?)u-B}wx$vH!}vkofvu$% zhE4Z!`ebKg3QCK|$4l0b5YFWgD{xPvUS!j9EZ$T!lGvdB)j#yg6?7MM&{_Dw0bz|s zFxx7iH9tODweI=7?bW%K|6!G1Gt1{^tNdt8{Y8G2RZC$62$DP4lgaO zmgE^4aE7(C>Lm-V!v3nuY3u$9v8J}Oqb@q%^8AnsHLJZz8Kb+-6Q74PD}Q{mZFY(( z8bIuaK_YjH=SQbdsL^w?S4a6cq^dWo+2-sJw%IA~OgZbBl@(|h`7)$*L$nuk2g_yC z_ZN%EYF<#_7v}*yZFPH_a2k3_$V+yp4j8f3Ms%RJ$-Xh|e_pmhceI&dH%F@IMiiy< zBX$R^8!)0WAp{4-h5I|tPtfs5IX&}+WU$`j+V;YyS)xtzBkb#}9u%NHT;sdm)`mL{PKIv=svFFJuTz; zvh<9RhyzB2oX+3Tep0d!J!ImF4EyNk2om&!VM@kV?@=h;x}ipj5@X0WVV#^TGV`_Y z>p{>|S@pE}K0@7VpFi)50wqCoUx#s1iZ zxCjZ)8>AreoY8k4#EUcML>sIqb>Adqxi?wl=sa`~kS}p*N*`|%QoQGFgBVjj!RWJX z7t$h0k0|j$T5i}8Ri{L|O3LCKLge9&X+wXBVA^~{7ayRKcYjIN&g+usaqnc5`s6uC z&nM~4JEx6?FpTosN3QK4-b={Hm|UG}H=H6ODXGr*r0<2!q~Gg6(DXmeR?QNS3ddAT zT03c%!MDmu)Dvq@=V@OPdojgFPj%L<`d%>6&Jmx6^`g=C?vZP&`zY0`$;rt>qWfS_ zmDqs2akn6Jn!pNlyT-;w1TtZ1U#3JFeTJ!a%x_X1MM+N0RvdkV-9}la7qP9ljZcqt z)%&SAXdw&VW9Vu=qIra3_WawZ%4qE0`vbb+&p@Q@^@Qq?F_B;<3Sh-R`;!cG>ewvc zDVaoJD9H4JkuduXO+=AU?%DEhbqVS~*Gkrw%rJQm!AW{QV{!xj+0 z$en^|gdLkFzzuYeAqbhaD@J=29 zzZ_B~0BsR)Z1Lz%=d)P=)@U%O0`Mig$9`R^aH*-;-z5-NQ4^Ikq=alszTT80tVidl zi-Zx_?GetfATPa84oS7?_Y!(E9`x<;=sW>^Rx;TL_%kSSoJUastwqQWgJ}$hrx8aV zj|mm)%>@0zK3*Q>2qdhKAk$+Q#blzOL|Ls3*+SpDvp7bNmjk;njAnNsW!Uo#nWR^z z*;FoyVqy#^Kn}qwC=s#8i$0zRV&wr0L`y_JNfegoEs$cK-um$%!1efa&bu-UY10 zzFu2+Q5}iBVQEh0HHvfC8pBw&g4tdK9A2IXeaXHARPpT7rbe$H`3s}PszmN`ac85@ z1>YaSZJGXezag|R5yE@R$wJj~Uf$vTtB06sT_?6M*VnQ3%@_`WtptZM{ddDw30RHr z#moR#@d6P&8TR~$@BlzngG{W1vyVEenQ$~w=zwLBHp{la@;t&W&%1zDg(cW|J+)AF zdi&c6YoD~XwItbbypK0q(pC~UkmEbt{yJCGF@T9;gN2!8oh6cFQT!K%n5Zaa#UQ}!Zpa^tiTICp6WIP;wSXt1R32Uh_>+^EYP-{VU$t?P5)0)9{ zj2DPSMJTWq>-%LFF5LBC2C(1tRY(Lte)dwh#6Yz02F8biFU_U!-DBSTqiw4ue0%)p zY7lAxud)sX=iK4orpW_zOx|3K?m6r`cD-Wg*(}m796o`>El5rW{Irq>Gk;}L_Htby zLkAE%dH(!j+9My>b#tm47S_)>HV+F>yF!Tce>H;!x(nomYe^zI=_>Mw{@t{UD5EzjG{3 zGpsdsk6$iIa!rEW3-$o(xAgP0Df+UHT}qplg<i+6O|X&pkf?q<)K8nf#fi}>L6xmhH$VSJ|SSa1#9;nM$?y*Wr$7J?Xp zZ7@?B!7S>lbDz*=c7@N=M#p!c*SP>=gdxf(G#mpGz%D9s#lh1BAC~3OJtyRJfJ*Sg zG{LU#$3F#(aPZ(k;lw=~AxA6-;k8ZSa#of-KvnjPU?U$pCH92tAS+ z`a&SW#!F7@+WP%l)SOF0FQ?u^AY$jW7cA@$CTrjc8W*W;FQap>o3fOd$(l#W$)Xvz zm;4V0D`;~tUZ-QxoDJYqUW2x=wkM*39pezea42{(zA<@Vv;_hsS4jwl{qYa3R5AAD z<^Oi2_J;Bk;V?83avV}%U=aLw5}$@qc*`!tpE zH&K(F+iSAnUQ^xDSM+4=C*NJWl;qjfG}vcNWd3c#YbSWubuL%m3`D`*RL8}ALG7pQ zqg9=9#?0)+(AS&w|7PZJ-o-^Lr?U9;faXxWYeygAhFF#bb33%59)hQ15GiusK4liopX&Nikdsz#P+vFn;lY(dJ*UFvul(%Y^1ihbLLoSdQQT~ za!j%xsPOB+jCev8Bv?L}rv9=1 z)w!o%zs`~}g;+xSXP1Ice|IU^FmpR^q2h|9RSUP@A3Sti)DDF+(&yt7AF1qqGT-&_ zuQg|s(Z?XzTszoQeS6i5tFj`X%y!0z4_MK_=8E%B{TgqA2vH_UY`49@1`$7 zfVl$p8v>MLq6ZJ3xS-Vs-dj0It{DeV>pL~fyvwBqX~prj)GqXqv2~1qbCMUj>Ba@j zIDr0sv$y`yb^x6@yiK*bI&3pq`omPEDLvN>^!n4hoX8szveTh~DRD4(eHPZ7zN$AZ zZj{+yn7h@&YJFWH@Snb|9F%?hw~cC(X?Is&b7S+;ns-kRw+GTov78P=7*?q5&+_3_ zcDCg*o07haOcbc?*VodS>$k+@yFQ+Y znI)22d%M>om~{xgefOF$i0*J)uZdb0Dk%H73Yg_$wq6kOU9J9mw_07*Q&Z-SQOUkU z<>_aK{9Th?UJtP^JfNp>(0j{q*`ox~NmiZc^8s*W{CE!8w}{KwFMCl8VCx07%4QS? ze52rxZ4!GqM_6Q8J5}Y4L!YCt$UD#;3M)3%Gg=%Nc=+F&v^c%AJ3@Q=_ED}f>gF%hZJ6jqljgxRg!f8jvvJ*DAc)pO4d+yI%6M&|X3wr8WR&&& zM{_>&{dm!P!<&#X<;C1H(WYbL-F#h5-;skD7{>50~d!17}Fgy&G^mZm+k@!Sx?Xjji6iS~7h2Pr6(# zj}(`>YB-*gH&BwIF^2r$Aq@lXL-jsD`bp!ixy$U+h`SGq1x>V5s;rU}>ZxUgdTO{d zrCxlEouo`?v4=Ru=&lT%8oK>p2Nqk(cEbZ49OfpL){(OGMQICqrY&gwv<@~GXFEX2 zT8nzwg&}x}PGVXpj>i0$vEiEHQFyEw6+u8i195G6lX~Wiz;Vk1V^pYxP-USjsujyq z0R0;g^e_AdHcZm(2Sg_JJ~#&>QF`m||)qnUeQ(1N)a!Ny!eL;cY^>%3!r6#}HIm~U5%VKw(Tn}`9jWl@Bn<-OU zxKQTu<;w~tS06-2D=$3w)wwvfsj9)&pjjZ6USBUga-?$wg32=AdA>TSC}XByfOUcV?O`T@ixw|4FvEyJd z`29~}Pd$BfMwIax^Zg%VB$BpSTJoP*g6UEL#z)1YW3DM727W0IA4s9^`(jPuFT)xn7zf|j?r+O*Yr&l z@HedhC8`4cz3LtHE(>MdWz`pEYWL+%`S$x~@%uOI?CodUlqRTNQFrYuN}72&J!N<7 zsO*|g1HuL{pI?~tNp`whz=Tu`z6PWB>>B&ph6eY7oh=*rnHG`ZNl6VUeVL5&-(F`q z24i($Vd03hs@*U7O{;yC{W4SWxQ*%$wvT31_Oy&(@{Xkcx?ap3YEbpRPze4AL*I|k zHt#|c$9JFY)kdFsy1BNt_B5jEJLUa*G2O5F)%BOfj7lGDjS4UhDu5AHVBc2Y0TrOm zq9!$Ri_*p0Um6+irm$XS#&33Vn-s8R=s%4=X!8jF58uoFH>Nj2dHU~YKb(#9-=MMo z{?Wff@b4=4cO(3J7W{i0{(B?P2>g2%{Qnt(uHK%1HVQuaOwgi<<1E$r{mx>u!~X+> CL0!WD literal 0 HcmV?d00001 diff --git a/jmoves/apps/utils/trajectories.png b/jmoves/apps/utils/trajectories.png new file mode 100644 index 0000000000000000000000000000000000000000..a235113bc04056557c0abca11e563472452fcb6d GIT binary patch literal 28422 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" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "tp = TopologyManager2D()\n", + "# creates ground connection\n", + "main_ground_jp = JointPoint(r=None, w=np.array([0, 1, 0]), active=True, name='main_ground',attach_ground=True, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_ground_jp, initial_coordinates=np.array([0, 0, 0]), mutation_range=[None,None,None], freeze_pos=np.array([0,0,0]))\n", + "main_knee_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_knee', attach_ground=False, attach_endeffector=False)\n", + "tp.add_absolute_node(jp=main_knee_jp, parent_branch_idx=0, initial_coordinates=[0.03, 0, -0.2], mutation_range=[None,None,(-0.1,0.1)], freeze_pos=np.array([0.03,0,None]))\n", + "# creates connection on the first link\n", + "tp.add_connection(ground=False, self_mutation_range= [(-0.2,0.2),None,(-0.4,0.4)], dependent_mutation_range=[(-0.1,0.1),None,(-0.1,0.1)])\n", + "main_endeffector_jp = JointPoint(r = None, w=np.array([0, 1, 0]), active=False, name='main_endeffector',attach_ground=False, attach_endeffector=True)\n", + "tp.add_absolute_node(jp=main_endeffector_jp, parent_branch_idx=0, initial_coordinates=np.array([0.0, 0, -0.4]), mutation_range=[None,None,None], freeze_pos=np.array([0.,0,-0.4]))\n", + "tp.set_mutation_ranges()\n", + "graph = tp.get_graph(tp.generate_central_from_mutation_range())\n", + "draw_joint_point(graph)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "workspace_trajectory = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_workspace_trajectory([-0.15, -0.35], 0.14, 0.3, 30, 60)))\n", + "\n", + "ground_symmetric_step1 = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(create_simple_step_trajectory(\n", + " starting_point=[-0.14, -0.34], step_height=0.12, step_width=0.28, n_points=200)))\n", + "\n", + "ground_symmetric_step2 = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.015, -0.34], step_height=0.10, step_width=-2*(-0.14 + 0.015), n_points=200)))\n", + "\n", + "ground_symmetric_step3 = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.025 , -0.34], step_height=0.08, step_width=-2*(-0.14 + 0.025), n_points=200)))\n", + "\n", + "central_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0, 200)))\n", + "\n", + "left_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, -0.12, 200)))\n", + "\n", + "right_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0.12, 200)))\n", + "\n", + "trajectories = [ground_symmetric_step1, ground_symmetric_step2, ground_symmetric_step3, central_vertical, left_vertical, right_vertical]" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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VjaVkleIv0tOTmDEiEcZMuRB5s6dqzqOMCFSKMVti4+PJzS0GQ89NJZRoyaojiPMkMFgICXlAtnZ0fj66mnSpBahoaFYWVmh1+vZs2cPa9euZe3atZw7dw4bGxuaNm2qrDzeraKiIo4cOcK+ffs4ePAgJ06c4MyZGEpLtXh716JevebUqdOcoKAmODp64Ojohr29y1/3ggpRsWbP/og//5zJuXMHCQgIUB1HmAgplOK2Pf300/z8czTz52/GxcVVdRxhRsrKykhLu0hGxjm8vIpp0iSAsLAwSktL2bx5M2vXrmX9+vWkp6fj7e1Njx496NmzJx06dDCb+xILCgrYsmULP/30E+vXryctLQ1HRxcaN25NRERLAgPrY2Xlja2tG46Objg4uGJpaa06tjBDWVmZDB3akT59wli2bJnqOMJESKEUt+XEiRM0btyOnj3/w6BBcqKCKB9Go5H09ARSU8/i4VFAo0b+1Kjhz7p161i1ahXbtm2jpKSEBg0a0LNnT3r06EGLFi3MfqSurKyMAwcOsHbtWtasWcOpU6ewtLSkefPmNG3alrp1W1BaaoNeb4+lpTsuLj44O3ua/X8XUXkWL57D2rUfcPz4DurVq6c6jjABUijFbencuQu7d+ezYMFGsxkREmplZaWQnHwaV9dcGjTwQauFpUuX8s0335CXl8fDDz9Mr1696NGjB0FBQarjKhUbG8u6detYs2YNO3bswN7enieeeILevXtjZeXIpUt5ZGdboNV64erqi7OzFzqdperYwoQVFBQwZEhn2rRxYMOGX1XHESZACqX4V7t27aJt294899xnPPHEANVxhIkrLS0mPv4kVlaJREQ4Ex8fyzfffMP27dvx9PRkyJAhDB06lMDAQNVRq6S4uDjmz5/PggULSE1NpX379rzwwgs0bdqU5OR0LlzIIitLA3jg5OSDq6uPLPARd+WHH75h6dLX2bVrDa1bt1YdR1RxUijFv+rYsSOHDhlZtGhjlV/sIKouo9FIamo8WVlncHbO4PTpgyxfvpykpCTatm3LiBEjeOyxx7C2lvsCb0dxcTE//fQTc+fOZefOnfj5+TF06FAGDBiAVqslISGZmJg00tON6PUuODn54eFRQ+67FLetpKSEIUO60qyZlt9+26w6jqjipFCKf3Ts2DEaN36EZ5+dTr9+A1XHESaqoCCXixePk5d3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vTeVoqIi1ZGqhbCwMC5dukR+fr7qKFXaN998w4IFC3jhhWFcvuwpZdJM7d69DWdnaN++veooohJJoaxGLCwsaN/+Po4dk/sozVnnzl1o3/5J5sz5jcWLv6GsrEx1JLN3daV3VFSU4iRV1969exkyZAgdO/agZs0uBAe3kTJppo4d20n79vfJcYvVjBTKaqZ3796kpp4mJkbe+MyVRqPh5ZdHUbt2a8aNW8Bvv21RHcnshYeHA7J10K0kJCTQq1cvgoPr067daGrXboO1ta3qWKICREefJS3tDL1791YdRVQyKZTVzGOPPYZOl8+ff0rJMGeWlpa888776HTBDB36IadPn1Ydyay5ubnh7u4uhfImCgsL6d69OwaDDU8++SHh4Q9iZWWjOpaoILt2bcXSsoA+ffqojiIqmRTKasbR0ZFWrepy5MhO1VFEBXNxceU///mYpCRbBg8eJ5ueVzBZmHMjo9HIgAEDOHUqjgEDptK4cScsLa1UxxIV6PDhndx3X10cHR1VRxGVTAplNdSjRzdiYvaTnp6qOoqoYLVr12bMmLfZuzeDV199l5wcOSmposjWQTf6z3/+w6pVm3nyyUk89NAT6HSWqiOJCpSenkps7AG6deuqOopQQAplNTRgwAC02gx++22d6iiiEjz44IM8/vgQli07wvTpcygoKFAdySyFhYVx9uxZOanoL99++y0ffjibRx55hccffwkLC53qSKKCbdq0Bq02g+eee051FKGAFMpqyM/Pj/vvr8fOnRtVRxGVZMCA52jRoivTp6/n229XUlJSojqS2QkPDyc7O5vUVBn537FjBy+++Ab16j3FiBHvymrfamLXrk20aVMfX19f1VGEAlIoq6lnnnma+PgDxMZGq44iKoFWq+X119/A27sRr722gJUrf8JgMKiOZVaubh1U3ae9d+7cSe/eg3Fze5C33/4EnU5GJquD2NhoLl48QP/+T6uOIhSRQllNPfvss9jYFMi0dzVia2vHpEkf4egYzqhRs1m37heZni1HISEhaDSaar0wZ9euXfTsORhr66ZMmTIPe3sH1ZFEJdm8eS02NgU8++yzqqMIRaRQVlOOjo507NiKvXs3SqmoRlxcXPnoo+lYWgYzePBHbNki20eVFxsbGwIDA6vtCOWff/5J794vodU2YMqUebi6uqmOJCqJ0Whk796NdOp0Pw4O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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "draw_joint_point(graph,draw_labels=False)\n", + "# Parameters for the circles\n", + "center = np.array([0, 0, 0])\n", + "# position of the knee joint \n", + "knee_pos = np.array([0.03, 0, -0.3])\n", + "ee_pos = np.array([0, 0, -0.4]) \n", + "\n", + "# position of the endeffector\n", + "x_e = 0\n", + "z_e = -0.4\n", + "radius1 = np.linalg.norm(knee_pos - center)+np.linalg.norm(ee_pos - knee_pos)\n", + "radius2 = np.abs(np.linalg.norm(knee_pos - center)-np.linalg.norm(ee_pos - knee_pos))\n", + "\n", + "# Create a figure and axis\n", + "ax = plt.gca()\n", + "\n", + "# Define the outer and inner circles\n", + "outer_circle = Circle(center, radius1, edgecolor='black', facecolor='none')\n", + "inner_circle = Circle(center, radius2, edgecolor='black', facecolor='none')\n", + "\n", + "# Add circles to the plot\n", + "ax.add_patch(outer_circle)\n", + "ax.add_patch(inner_circle)\n", + "\n", + "# Create the paths for the circles\n", + "outer_path = Path.circle(center=center[[0,2]], radius=radius1)\n", + "inner_path = Path.circle(center=center[[0,2]], radius=radius2)\n", + "\n", + "# Create the path patch for the area between the circles\n", + "vertices = np.concatenate([outer_path.vertices, inner_path.vertices[::-1]])\n", + "codes = np.concatenate([outer_path.codes, inner_path.codes])\n", + "path = Path(vertices, codes)\n", + "patch = PathPatch(path, facecolor='blue', alpha=0.3)\n", + "\n", + "# Add the path patch to the plot\n", + "ax.add_patch(patch)\n", + "for trajectory in trajectories:\n", + " plt.plot(trajectory[:, 0], trajectory[:, 2])\n", + "\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "draw_joint_point(graph,draw_labels=False)\n", + "for trajectory in trajectories:\n", + " plt.plot(trajectory[:, 0], trajectory[:, 2])\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "draw_joint_point(graph,draw_labels=False)\n", + "for trajectory in trajectories:\n", + " plt.plot(trajectory[:, 0], trajectory[:, 2])\n", + "plt.plot(workspace_trajectory[:, 0], workspace_trajectory[:, 2])\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/apps/widjetdemo/create_reward_manager.py b/jmoves/apps/widjetdemo/create_reward_manager.py new file mode 100644 index 00000000..15ad2f8f --- /dev/null +++ b/jmoves/apps/widjetdemo/create_reward_manager.py @@ -0,0 +1,34 @@ +from networkx import Graph +import numpy as np + + +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.optimization.rewards.reward_base import PositioningConstrain, PositioningErrorCalculator, RewardManager + + +def get_manager_mock(workspace_traj: np.ndarray): + """Returns fake args for CalculateMultiCriteriaProblem. + + + Args: + workspace_traj (np.ndarray): _description_ + + Returns: + _type_: _description_ + """ + dict_trajectory_criteria = { + + } + # criteria calculated for each point on the trajectory + dict_point_criteria = { + + } + + crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria) + error_calculator = PositioningErrorCalculator( + error_key='error', jacobian_key="Manip_Jacobian") + soft_constrain = PositioningConstrain( + error_calculator=error_calculator, points=[workspace_traj]) + reward_manager = RewardManager(crag=crag) + + return reward_manager, crag, soft_constrain diff --git a/jmoves/apps/widjetdemo/criteria_calculator.py b/jmoves/apps/widjetdemo/criteria_calculator.py new file mode 100644 index 00000000..e69de29b diff --git a/jmoves/apps/widjetdemo/loading.gif b/jmoves/apps/widjetdemo/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..8ac36eac8c8ee8f3d2b466da83618168cb7de9f0 GIT binary patch literal 97512 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

MwktD~*$2zn}fZm7yB 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

4jWq7we?YvA@UV4h$V4utYC>wYa`-lpUkhssp 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 L%g<@!0Qdg~!&$s> literal 0 HcmV?d00001 diff --git a/jmoves/apps/widjetdemo/mechanical-wolf-running.gif b/jmoves/apps/widjetdemo/mechanical-wolf-running.gif new file mode 100644 index 0000000000000000000000000000000000000000..8b663c4a1f8f10f263ad1a02fb85c57b4033d29c GIT binary patch literal 453213 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%0AyWAi`2(uPn%3y#BLe9X(K|x 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%0A?(cDnnFeU||{6Z!IYOZ%RE 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

JpyY(_D3M)E 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�QIQ4G8W{mKTdsRgaiu8a)ulmyuVJ@#-z)nv80 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∋EiS{py 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

@j1qX_o-9Az*!;?o?x)WLt%0lBeBa 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ð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 C(u%|Y literal 0 HcmV?d00001 diff --git a/jmoves/apps/widjetdemo/mesh/EE.stl b/jmoves/apps/widjetdemo/mesh/EE.stl new file mode 100644 index 0000000000000000000000000000000000000000..fd809cd3b542bb23824e71b29c236b3682b5aba3 GIT binary patch literal 536784 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

izYNI|wp6^vL)Eu}U zblV^}D`?3iz`(WqGjJjHTtvE8-AUI1-3XyqG zP85LG04Iesg7*6Q%mt%I$w?uiy~;Tt+*h!Y!AT)ypuO&$f6>bkCgh|L(O%``5WL~V zNgbUFS)I&*SGs`-0;f1EE7_`@R z#a|f&XYnc%&p4~ws=3f!?>{~7

kYil22=X?h{)RiLaB`&@0M?!ouEvcWrp;4EHc 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 z%0D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 literal 0 HcmV?d00001 diff --git a/jmoves/apps/widjetdemo/mesh/G.stl b/jmoves/apps/widjetdemo/mesh/G.stl new file mode 100644 index 0000000000000000000000000000000000000000..26bd756483044fd920c5be95cb75acc81c2d4b73 GIT binary patch literal 393384 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

-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 literal 0 HcmV?d00001 diff --git a/jmoves/apps/widjetdemo/mesh/L3.stl b/jmoves/apps/widjetdemo/mesh/L3.stl new file mode 100644 index 0000000000000000000000000000000000000000..1179fd6ce6d14ccfdd7834abca7b659fc3d6e3f1 GIT binary patch literal 16084 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 bSD3vrf~l->>YBZ3eTCU8BbbW27w7&52B3X6 literal 0 HcmV?d00001 diff --git a/jmoves/apps/widjetdemo/mesh/L4.stl b/jmoves/apps/widjetdemo/mesh/L4.stl new file mode 100644 index 0000000000000000000000000000000000000000..067366252c8ac21ec72c841a78ff1d707285dd28 GIT binary patch literal 22684 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 LT)Wg&?YsX6Gzp5U literal 0 HcmV?d00001 diff --git a/jmoves/apps/widjetdemo/mesh/L5.stl b/jmoves/apps/widjetdemo/mesh/L5.stl new file mode 100644 index 0000000000000000000000000000000000000000..888e27420e920495677a343d5e08af954721883a GIT binary patch literal 78084 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 literal 0 HcmV?d00001 diff --git a/jmoves/apps/widjetdemo/mesh/L6.stl b/jmoves/apps/widjetdemo/mesh/L6.stl new file mode 100644 index 0000000000000000000000000000000000000000..91cf7121922acf1fdeec53bf0a652d6956390ea0 GIT binary patch literal 23084 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 z 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 literal 0 HcmV?d00001 diff --git a/jmoves/apps/widjetdemo/mesh/L7.stl b/jmoves/apps/widjetdemo/mesh/L7.stl new file mode 100644 index 0000000000000000000000000000000000000000..acf8c6e941e4a92db487ef4851c003465426505c GIT binary patch literal 29784 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 RayY}n-}Z1M!!~Bj{{o9-u+#tm literal 0 HcmV?d00001 diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/.streamlit/config.toml b/jmoves/apps/widjetdemo/streamlit_widgets/.streamlit/config.toml new file mode 100644 index 00000000..7c595d0a --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/.streamlit/config.toml @@ -0,0 +1,2 @@ +[client] +showSidebarNavigation = false diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/forward_init.py b/jmoves/apps/widjetdemo/streamlit_widgets/forward_init.py new file mode 100644 index 00000000..a81b3313 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/forward_init.py @@ -0,0 +1,62 @@ +from dataclasses import dataclass + +import meshcat +import numpy as np +import matplotlib.pyplot as plt +import pinocchio as pin +import streamlit as st +from matplotlib.patches import Circle +from auto_robot_design.generator.topologies.bounds_preset import get_preset_by_index_with_bounds +from auto_robot_design.generator.topologies.graph_manager_2l import GraphManager2L +from auto_robot_design.optimization.rewards.reward_base import PositioningConstrain, RewardManager +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.utils.configs import get_standard_builder, get_mesh_builder, get_standard_crag, get_standard_rewards + +pin.seed(1) + +@st.cache_resource +def build_constant_objects(): + optimization_builder = get_standard_builder() + manipulation_builder = get_mesh_builder(manipulation=True) + suspension_builder = get_mesh_builder(manipulation=False) + crag = get_standard_crag() + graph_managers = {f"Структура_{i}": get_preset_by_index_with_bounds(i) for i in range(9)} + reward_dict = get_standard_rewards() + return graph_managers, optimization_builder, manipulation_builder, suspension_builder, crag, reward_dict + +def add_trajectory_to_vis(pin_vis, trajectory, **balls_parameters): + material = meshcat.geometry.MeshPhongMaterial() + material.color = int(0xFF00FF) + material.color = int(0x00FFFF) + material.color = int(0xFFFF00) + material.color = int(0x00FF00) + material.opacity = 0.3 + for idx, point in enumerate(trajectory): + if idx%balls_parameters.get("step_balls", 2)==0: + ballID = "world/ball" + str(idx) + pin_vis.viewer[ballID].set_object(meshcat.geometry.Sphere(balls_parameters.get("radius_balls",0.0075)), material) + T = np.r_[np.c_[np.eye(3), point[:3]+np.array([0,balls_parameters.get("y_offset_balls", -0.04),0])], np.array([[0, 0, 0, 1]])] + pin_vis.viewer[ballID].set_transform(T) + +@st.cache_resource +def get_russian_reward_description(): + reward_description={} + reward_description['mass'] = ("Масса механизма", "Общая масса всех звеньев и моторов") + reward_description['actuated_inertia_matrix'] = ("Обратная инерция", "Величина обратная определителю матрицы инерции в обобщённых координатах актуированных сочленений. Характеризует полную инерцию механизма") + reward_description['z_imf'] = ("Фактор распределения вертикального удара", "Характеризует насколько конструкция ноги ослабляет влияние вертикальных внешних сил на корпус робота") + reward_description['trajectory_manipulability'] = ("Манипулируемость вдоль траектории", "Среднее значение проекции якобиана скоростей концевого эффектора на направление траектории. Показывает соотношение скоростей движения моторов") + reward_description['manipulability'] = ("Манипулируемость", "Среднее значение определителя якобиана скоростей концевого эффектора. В каждой точке характеризует преобразование скоростей моторов в скорость концевого эффектора") + reward_description['min_manipulability'] = ("Минимальная манипулируемость", "Минимальное значение манипулируемости концевого эффектора. Зависит от минимального значения преобразования скоростей моторов в скорость концевого эффектора") + reward_description['min_force'] = ("Минимальное усилие", "Минимальное значение внешней силы необходимое для преодоления единичного момента актуаторов") + reward_description['trajectory_zrr'] = ("Вертикальное передаточное отношение", "Среднее значение вертикального передаточного отношения вдоль траектории. Характеризует способность конструкции ноги выдерживать вертикальное усилие приложенное к концевому эффектору.") + reward_description['dexterity'] = ("Индекс подвижности", "Среднее значение индекса подвижности вдоль траектории. Характеризует отношение силовой и скоростной характеристик механизма, большие значения соотвествуют лучшему балансу.") + reward_description['trajectory_acceleration'] = ("Потенциальное ускорение вдоль траектории", "Среднее значение потенциального ускорения вдоль траектории. Характеризует способность двигателей разгонять концевой эффектор в заданноам направлении.") + reward_description['min_acceleration'] = ("Минимальное потенциальное ускорение", "Минимальное значение потенциального ускорения в точке. Характеризует способность двигателей разгонять концевой эффектор.") + reward_description['mean_heavy_lifting'] = ("Средняя грузоподъемность", "Среднее значение грузоподъемности. Характеризует способность конструкции ноги поднимать груз не превышая пороговых значений моментов актуаторов.") + reward_description['min_heavy_lifting'] = ("Минимальная грузоподъемность", "Минимальное значение грузоподъемности на заданной траектории. Характеризует конструкции ноги непрерывно переносить груз без отклонений от заданной траектории.") + return reward_description + + + + + diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/det_mass_matrix.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/det_mass_matrix.py new file mode 100644 index 00000000..41e29670 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/det_mass_matrix.py @@ -0,0 +1,25 @@ +import streamlit as st + +st.header("Определитель матрицы инерции") + +st.markdown(r""" +Рассматривается матрица инерции в пространстве актуаторов. Матрицей инерции называется квадратная матрица связывающая скорость изменения обобщённых координат с кинетической энергией: + +$$ +E_k=\dot{q}^TA(q)\dot{q}\space, +$$ + +где $q$ - координаты актуированных сочленений. Матрица инерции зависит от конфигурации механизма и поэтому изменяется вдоль траектории. + +Чем меньше определитель этой матрицы, тем меньше энергии нужно затратить для достижения заданной скорости. В качестве критерия используется величина: + +$$ +R = \frac{1}{\overline{\det{A(q)}}}, +$$ + +где усреднение проводится по всем точкам траектории. + +--- + +1. O. Khatib, “Inertial properties in robotic manipulation: An object-level framework,” The international journal of robotics research, vol. 14, no. 1, pp. 19–36, 1995. [https://doi.org/10.1177/027836499501400103](https://doi.org/10.1177/027836499501400103) +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/imf_z.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/imf_z.py new file mode 100644 index 00000000..931be8f1 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/imf_z.py @@ -0,0 +1,28 @@ +import streamlit as st + +st.header("Фактор распределения вертикального удара") + +st.markdown(r""" +Данный критерий измеряет нормированною величину инерции концевого эффектора. Для этого используется матрица инерции в операционном пространстве: + +$$ +\Lambda(x)=(J(q(x))A(q(x))^{-1}J(q(x))^T)^{-1}, +$$ + +где $A$- матрица инерции в пространстве актуированных сочленений, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$ + +Для нормировки используется значение матрицы инерции в операционном пространстве при условии, что каждое сочленение неподвижно $\Lambda_L$. Как критерий нас интересует только проекция на вертикальную ось, поэтому итоговое выражение имеет вид: + +$$ +R=\frac{1}{n}\sum_1^n(1-\frac{z^T\Lambda z}{z^T\Lambda_L z}), +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории. + +--- + + +1. P. M. Wensing, A. Wang, S. Seok, D. Otten, J. Lang and S. Kim, "Proprioceptive Actuator Design in the MIT Cheetah: Impact Mitigation and High-Bandwidth Physical Interaction for Dynamic Legged Robots," in _IEEE Transactions on Robotics_, vol. 33, no. 3, pp. 509-522, June 2017, doi: [10.1109/TRO.2016.2640183](https://doi.org/10.1109/TRO.2016.2640183) +2. V. Batto, T. Flayols, N. Mansard and M. Vulliez, "Comparative Metrics of Advanced Serial/Parallel Biped Design and Characterization of the Main Contemporary Architectures," _2023 IEEE-RAS 22nd International Conference on Humanoid Robots (Humanoids)_, Austin, TX, USA, 2023, pp. 1-7, doi: [10.1109/Humanoids57100.2023.10375224](https://doi.org/10.1109/Humanoids57100.2023.10375224) + +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/index_movmnets.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/index_movmnets.py new file mode 100644 index 00000000..1277a98e --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/index_movmnets.py @@ -0,0 +1,13 @@ +import streamlit as st + +st.header("Индекс подвижности") + +st.markdown(r""" +Следствием закона сохранения энергии является тот факт, что силовые и скоростные характеристики механизма оказываются связаны - чем больше манипулируемость, тем меньше сила и наоборот. Индекс подвижности - это критерий, служащий для получения сбалансированных дизайнов через компромисс между силой и скоростью. Величина критерия равна: + +$$ +R=\frac{1}{n}\sum_1^n\frac{\sigma_{min}}{\sigma_{max}}, +$$ + +где $\sigma_{min}$ - наименьшее сингулярное число Якобиана скоростей, $\sigma_{max}$ - наибольшее сингулярное число Якобиана скоростей, n - число точек на траектории. +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/manipulabilty.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/manipulabilty.py new file mode 100644 index 00000000..3afe7062 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/manipulabilty.py @@ -0,0 +1,25 @@ +import streamlit as st + +st.header("Манипулируемость") + +st.markdown(r""" +Манипулируемость это кинематическая характеристика оценивающая связь между скоростью актуаторов и скоростью концевого эффектора. Данный критерий характеризует полную манипулируемость по всем направлениям. Единичный круг в пространтсве скоростей актуаторов преобразуется Якобианом в эллипс манипулируемости: + +$$ +v^T(JJ^T)^{-1}v=1 +$$ + +Объём(площадь) эллипса пропорционален определителю Якобиана. Чем больше объём, тем большие скорости концевого эффектора достижимы при "единичной" скорости актуаторов $\|q\|=1$. Критерий в точке равен определителю Якобиана, а полное значение вдоль траектории равно: + +$$ +R=\frac{1}{n}\sum_1^n(\det{J}), +$$ + +где $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x},$ n - число точек на траектории. + +--- + +1. V. Batto, T. Flayols, N. Mansard and M. Vulliez, "Comparative Metrics of Advanced Serial/Parallel Biped Design and Characterization of the Main Contemporary Architectures," _2023 IEEE-RAS 22nd International Conference on Humanoid Robots (Humanoids)_, Austin, TX, USA, 2023, pp. 1-7, doi: [10.1109/Humanoids57100.2023.10375224](https://doi.org/10.1109/Humanoids57100.2023.10375224) +2. Spong, M.W.; Hutchinson, Seth; Vidyasagar, M. (2005). [_Robot Modeling and Control_](https://books.google.com/books?id=muCMAAAACAAJ). Wiley. Wiley. [ISBN](https://en.wikipedia.org/wiki/ISBN_(identifier) "ISBN (identifier)") [9780471765790](https://en.wikipedia.org/wiki/Special:BookSources/9780471765790 "Special:BookSources/9780471765790"). + +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/manipulabilty_traj.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/manipulabilty_traj.py new file mode 100644 index 00000000..f93d1e54 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/manipulabilty_traj.py @@ -0,0 +1,13 @@ +import streamlit as st + +st.header("Манипулируемость/Маневренность вдоль траектории") + +st.markdown(r""" +Манипулируемость это кинематическая характеристика оценивающая связь между скоростью актуаторов и скоростью концевого эффектора. В данном критерии рассматривается связь между движением актуаторов и движением по касательной к траектории. Обозначиv $\vec{t}$ - единичный вектор касательной к траектории. Тогда критерий определяется как: + +$$ +R=\frac{1}{n}\sum_1^n(1/\|J^{-1}\vec{t}\|), +$$ + +где $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x},$ n - число точек на траектории. В отдельной точке данный критерий обозначает величину линейной скорости, которая получается при "единичной" скорости актуаторов $\|q\|=1$. +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/md_rawards.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/md_rawards.py new file mode 100644 index 00000000..dcee5c61 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/md_rawards.py @@ -0,0 +1,234 @@ + +MD_REWARD_DESCRIPTION = r"""**1. Определитель матрицы инерции.** + +Рассматривается матрица инерции в пространстве актуаторов. Матрицей инерции называется квадратная матрица связывающая скорость изменения обобщённых координат с кинетической энергией: + +$$ +E_k=\dot{q}^TA(q)\dot{q}\space, +$$ + +где $q$ - координаты актуированных сочленений. Матрица инерции зависит от конфигурации механизма и поэтому изменяется вдоль траектории. + +Чем меньше определитель этой матрицы, тем меньше энергии нужно затратить для достижения заданной скорости. В качестве критерия используется величина: + +$$ +R = \frac{1}{\overline{\det{A(q)}}}, +$$ + +где усреднение проводится по всем точкам траектории. + +--- + +1. O. Khatib, “Inertial properties in robotic manipulation: An object-level framework,” The international journal of robotics research, vol. 14, no. 1, pp. 19–36, 1995. [https://doi.org/10.1177/027836499501400103](https://doi.org/10.1177/027836499501400103) + +**2. Фактор распределения вертикального удара.** + +Данный критерий измеряет нормированною величину инерции концевого эффектора. Для этого используется матрица инерции в операционном пространстве: + +$$ +\Lambda(x)=(J(q(x))A(q(x))^{-1}J(q(x))^T)^{-1}, +$$ + +где $A$- матрица инерции в пространстве актуированных сочленений, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$ + +Для нормировки используется значение матрицы инерции в операционном пространстве при условии, что каждое сочленение неподвижно $\Lambda_L$. Как критерий нас интересует только проекция на вертикальную ось, поэтому итоговое выражение имеет вид: + +$$ +R=\frac{1}{n}\sum_1^n(1-\frac{z^T\Lambda z}{z^T\Lambda_L z}), +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории. + +--- + +1. P. M. Wensing, A. Wang, S. Seok, D. Otten, J. Lang and S. Kim, "Proprioceptive Actuator Design in the MIT Cheetah: Impact Mitigation and High-Bandwidth Physical Interaction for Dynamic Legged Robots," in _IEEE Transactions on Robotics_, vol. 33, no. 3, pp. 509-522, June 2017, doi: [10.1109/TRO.2016.2640183](https://doi.org/10.1109/TRO.2016.2640183) +2. V. Batto, T. Flayols, N. Mansard and M. Vulliez, "Comparative Metrics of Advanced Serial/Parallel Biped Design and Characterization of the Main Contemporary Architectures," _2023 IEEE-RAS 22nd International Conference on Humanoid Robots (Humanoids)_, Austin, TX, USA, 2023, pp. 1-7, doi: [10.1109/Humanoids57100.2023.10375224](https://doi.org/10.1109/Humanoids57100.2023.10375224) + +**3. Манипулируемость/Маневренность вдоль траектории.** + +Манипулируемость это кинематическая характеристика оценивающая связь между скоростью актуаторов и скоростью концевого эффектора. В данном критерии рассматривается связь между движением актуаторов и движением по касательной к траектории. Обозначим $\vec{t}$ - единичный вектор касательной к траектории. Тогда критерий определяется как: + +$$ +R=\frac{1}{n}\sum_1^n(1/\|J^{-1}\vec{t}\|), +$$ + +где $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x},$ n - число точек на траектории. В отдельной точке данный критерий показывает величину линейной скорости, которая получается при "единичной" скорости актуаторов $\|q\|=1$. + +**4. Манипулируемость.** + +Манипулируемость это кинематическая характеристика оценивающая связь между скоростью актуаторов и скоростью концевого эффектора. Данный критерий характеризует полную манипулируемость по всем направлениям. Единичный круг в пространстве скоростей актуаторов преобразуется Якобианом в эллипс манипулируемости: + +$$ +v^T(JJ^T)^{-1}v=1 +$$ + +Объём(площадь) эллипса пропорционален определителю Якобиана. Чем больше объём, тем большие скорости концевого эффектора достижимы при "единичной" скорости актуаторов $\|q\|=1$. Критерий в точке равен определителю Якобиана, а полное значение вдоль траектории равно: + +$$ +R=\frac{1}{n}\sum_1^n(\det{J}), +$$ + +где $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x},$ n - число точек на траектории. + +--- + +1. V. Batto, T. Flayols, N. Mansard and M. Vulliez, "Comparative Metrics of Advanced Serial/Parallel Biped Design and Characterization of the Main Contemporary Architectures," _2023 IEEE-RAS 22nd International Conference on Humanoid Robots (Humanoids)_, Austin, TX, USA, 2023, pp. 1-7, doi: [10.1109/Humanoids57100.2023.10375224](https://doi.org/10.1109/Humanoids57100.2023.10375224) +2. Spong, M.W.; Hutchinson, Seth; Vidyasagar, M. (2005). [_Robot Modeling and Control_](https://books.google.com/books?id=muCMAAAACAAJ). Wiley. Wiley. [ISBN](https://en.wikipedia.org/wiki/ISBN_(identifier) "ISBN (identifier)") [9780471765790](https://en.wikipedia.org/wiki/Special:BookSources/9780471765790 "Special:BookSources/9780471765790"). + +**5. Минимальная манипулируемость.** + +Манипулируемость это кинематическая характеристика оценивающая связь между скоростью актуаторов и скоростью концевого эффектора. Данный критерий зависит от минимального значения скорости концевого эффектора при "единичной" скорости актуаторов $\|q\|=1$. Наименьшее значение определяется наименьшим сингулярным числом Якобиана скоростей. Значение критерия равно: + +$$ +R=\frac{1}{n}\sum_1^n\sigma_{min}, +$$ + +где $\sigma_{min}$ - наименьшее сингулярное число Якобиана скоростей, n - число точек на траектории. + +--- + +1.M. Švejda, "New kinetostatic criterion for robot parametric optimization," _2017 IEEE 4th International Conference on Soft Computing & Machine Intelligence (ISCMI)_, Mauritius, 2017, pp. 66-70, doi: [10.1109/ISCMI.2017.8279599](https://doi.org/10.1109/ISCMI.2017.8279599 + +**6. Минимальное усилие.** + +Транспонированный Якобиан скоростей определяет соотношение между моментами актуаторов и силой приложенной к концевому эффектору в стационарном состоянии: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. + +Для каждой конфигурации существует наименьшая сила, которую могут создавать двигатели при "единичном" моменте актуаторов $\|\tau \|=1$. Данная сила пропорциональна обратному значению наибольшего сингулярного числа Якобиана скоростей. Чем большее значение имеет данная характеристика, тем большие внешние силы способен выдерживать механизм. При использовании данного критерия максимизируется минимальное значение допустимой нагрузки. Итоговый критерий равен: + +$$ +R=\frac{1}{n}\sum_1^n\frac{1}{\sigma_{max}}, +$$ + +где $\sigma_{max}$ - наибольшее сингулярное число Якобиана скоростей, n - число точек на траектории. + +**7. Вертикальное передаточное отношение.** + +Транспонированный Якобиан скоростей определяет соотношение между моментами актуаторов и силой приложенной к концевому эффектору в стационарном состоянии: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. + +Для механизмов ног роботов особое значение имеют внешние силы направленные по вертикали, так как они соответствуют контакту с поверхностью. В качестве критерия используется величина: + +$$ +R=\frac{1}{n}\sum_1^n\frac{1}{\|J^T z\|}, +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории, $J$ - Якобиан скоростей. Чем больше данное значение, тем меньшим моментом актуаторов можно добиться необходимой силы контакта с поверхностью. + +--- + +1. V. Batto, T. Flayols, N. Mansard and M. Vulliez, "Comparative Metrics of Advanced Serial/Parallel Biped Design and Characterization of the Main Contemporary Architectures," _2023 IEEE-RAS 22nd International Conference on Humanoid Robots (Humanoids)_, Austin, TX, USA, 2023, pp. 1-7, doi: [10.1109/Humanoids57100.2023.10375224](https://doi.org/10.1109/Humanoids57100.2023.10375224 + +**8. Индекс подвижности.** + +Следствием закона сохранения энергии является тот факт, что силовые и скоростные характеристики механизма оказываются связаны - чем больше манипулируемость, тем меньше сила и наоборот. Индекс подвижности - это критерий, служащий для получения сбалансированных дизайнов через компромисс между силой и скоростью. Величина критерия равна: + +$$ +R=\frac{1}{n}\sum_1^n\frac{\sigma_{min}}{\sigma_{max}}, +$$ + +где $\sigma_{min}$ - наименьшее сингулярное число Якобиана скоростей, $\sigma_{max}$ - наибольшее сингулярное число Якобиана скоростей, n - число точек на траектории. + +**9. Потенциальное ускорение вдоль траектории.** + +Ускорение концевого эффектора зависит от матрицы инерции механизма и моментов актуаторов. Связь моментов актуаторов и ускорения (при нулевой скорости и отбрасывая гравитацию): $$\tau = H(q)J^{-1} \ddot{x} $$ где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $\ddot{x}$ - ускорение в операционном пространстве. + +Данный критерий направлен на минимизацию моментов необходимых для ускорения вдоль заданной траектории. Обозначим $\vec{t}$ - единичный вектор касательной к траектории. Тогда вектор моментов необходимых для единичного ускорения в данном направлении равен: + +$$ +\tau_u = H(q)J^{-1} \ddot{\vec t} +$$ + +В качестве критерия используется величина + +$$ +R=\frac{1}{n}\sum_1^n\tau_m/max(tau_u), +$$ + +где $\tau_m$ - номинальный пиковый момент двигателя. Данный критерий показывает, какое ускорение вдоль траектории может быть получено из данной конфигурации механизма при подачи максимальных возможных моментов на двигатели. + +--- + +1. M. Švejda, "New kinetostatic criterion for robot parametric optimization," _2017 IEEE 4th International Conference on Soft Computing & Machine Intelligence (ISCMI)_, Mauritius, 2017, pp. 66-70, doi: [10.1109/ISCMI.2017.8279599](https://doi.org/10.1109/ISCMI.2017.8279599) + +**10. Минимальное потенциальное ускорение.** + +Ускорение концевого эффектора зависит от матрицы инерции механизма и моментов актуаторов. Связь моментов актуаторов и ускорения (при нулевой скорости и отбрасывая гравитацию): + +$$J(q)H(q)^{-1} \tau = \ddot{x} $$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $\ddot{x}$ - ускорение в операционном пространстве. + +Данный критерий направлен на максимизацию минимального ускорения, получаемого при при "единичном" моменте актуаторов $\|\tau \|=1$. Значение критерия равно: + +$$ +R=\frac{1}{n}\sum_1^n\sigma_{min}, +$$ + +где $\sigma_{min}$ - наименьшее сингулярное число матрицы $J(q)H(q)^{-1},$ n - число точек на траектории. + +**11. Средняя грузоподъёмность. ** + +В квазистатическом приближении моменты актуаторов и внешняя сила связаны выражением: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. Это выражение можно использовать для оценки грузоподъёмности механизма. Для заданной точки можно рассчитать максимальную вертикальную силу, которую можно получить при заданном пиковом значении момента: + +$$ +f_m = \tau_m / max(J^T z), +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории, $J$ - Якобиан скоростей, $\tau_m$ - номинальный пиковый момент двигателя. + +В качестве критерия мы рассматриваем отношение данной величины к силе тяжести самого механизма, таким образом получая грузоподъёмность в единицах массы механизма. Итоговый критерий: + +$$ +R=\frac{1}{n}\sum_1^n\frac{f_m}{mg}, +$$ + +где $m$ - масса механизма, $g$ - ускорение свободного падения, $n$ - число шагов на траектории. + +--- + +1. G. Kenneally, A. De and D. E. Koditschek, "Design Principles for a Family of Direct-Drive Legged Robots," in _IEEE Robotics and Automation Letters_, vol. 1, no. 2, pp. 900-907, July 2016, doi: [10.1109/LRA.2016.2528294](https://doi.org/10.1109/LRA.2016.2528294) + +**12. Минимальная грузоподъёмность.** + +В квазистатическом приближении моменты актуаторов и внешняя сила связаны выражением: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. Это выражение можно использовать для оценки грузоподъёмности механизма. Для заданной точки можно рассчитать максимальную вертикальную силу, которую можно получить при заданном пиковом значении момента: + +$$ +f_m = \tau_m / max(J^T z), +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории, $J$ - Якобиан скоростей, $\tau_m$ - номинальный пиковый момент двигателя. + +В качестве критерия мы рассматриваем отношение данной величины к силе тяжести самого механизма, таким образом получая грузоподъёмность в единицах массы механизма. При этом нас интересует наименьшее значение данного критерия на траектории. Мотивация данного критерия - механизм должен иметь возможность нести нагрузку во всех точках траектории, поэтому минимальное значение характеризует способность механизма пройти всю траекторию под нагрузкой. Итоговый критерий: + +$$ +R=\min\left( \frac{f_m}{mg}\right), +$$ + +где $m$ - масса механизма, $g$ - ускорение свободного падения, $n$ - число шагов на траектории. + +--- + +1. G. Kenneally, A. De and D. E. Koditschek, "Design Principles for a Family of Direct-Drive Legged Robots," in _IEEE Robotics and Automation Letters_, vol. 1, no. 2, pp. 900-907, July 2016, doi: [10.1109/LRA.2016.2528294](https://doi.org/10.1109/LRA.2016.2528294)""" \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/mean_payload.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/mean_payload.py new file mode 100644 index 00000000..146d52b2 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/mean_payload.py @@ -0,0 +1,31 @@ +import streamlit as st + +st.header("Средняя грузоподъёмность") + +st.markdown(r""" +В квазистатическом приближении моменты актуаторов и внешняя сила связаны выражением: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. Это выражение можно использовать для оценки грузоподъёмности механизма. Для заданной точки можно рассчитать максимальную вертикальную силу, которую можно получить при заданном пиковом значении момента: + +$$ +f_m = \tau_m / max(J^T z), +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории, $J$ - Якобиан скоростей, $\tau_m$ - номинальный пиковый момент двигателя. + +В качестве критерия мы рассматриваем отношение данной величины к силе тяжести самого механизма, таким образом получая грузоподъёмность в единицах массы механизма. Итоговый критерий: + +$$ +R=\frac{1}{n}\sum_1^n\frac{f_m}{mg}, +$$ + +где $m$ - масса механизма, $g$ - ускорение свободного падения, $n$ - число шагов на траектории. + +--- + +1. G. Kenneally, A. De and D. E. Koditschek, "Design Principles for a Family of Direct-Drive Legged Robots," in _IEEE Robotics and Automation Letters_, vol. 1, no. 2, pp. 900-907, July 2016, doi: [10.1109/LRA.2016.2528294](https://doi.org/10.1109/LRA.2016.2528294) +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_effort.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_effort.py new file mode 100644 index 00000000..4741726d --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_effort.py @@ -0,0 +1,21 @@ +import streamlit as st + +st.header("Минимальное усилие") + +st.markdown(r""" +Транспонированный Якобиан скоростей определяет соотношение между моментами актуаторов и силой приложенной к концевому эффектору в стационарном состоянии: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. + +Для каждой конфигурации существует наименьшая сила, которую могут создавать двигатели при "единичном" моменте актуаторов $\|\tau \|=1$. Данная сила пропорциональна обратному значению наибольшего сингулярного числа Якобиана скоростей. Чем большее значение имеет данная характеристика, тем большие внешние силы способен выдерживать механизм. При использовании данного критерия максимизируется минимальное значение допустимой нагрузки. Итоговый критерий равен: + +$$ +R=\frac{1}{n}\sum_1^n\frac{1}{\sigma_{max}}, +$$ + +где $\sigma_{max}$ - наибольшее сингулярное число Якобиана скоростей, n - число точек на траектории. +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_manipulabilty.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_manipulabilty.py new file mode 100644 index 00000000..b73e40b1 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_manipulabilty.py @@ -0,0 +1,16 @@ +import streamlit as st + +st.header("Минимальная манипулируемость") + +st.markdown(r""" +Манипулируемость это кинематическая характеристика оценивающая связь между скоростью актуаторов и скоростью концевого эффектора. Данный критерий зависит от минимального значения скорости концевого эффектора при "единичной" скорости актуаторов $\|q\|=1$. Наименьшее значение определяется наименьшим сингулярным числом Якобиана скоростей. Значение критерия равно: + +$$ +R=\frac{1}{n}\sum_1^n\sigma_{min}, +$$ +где $\sigma_{min}$ - наименьшее сингулярное число Якобиана скоростей, n - число точек на траектории. + +--- + +1. M. Švejda, "New kinetostatic criterion for robot parametric optimization," _2017 IEEE 4th International Conference on Soft Computing & Machine Intelligence (ISCMI)_, Mauritius, 2017, pp. 66-70, doi: [10.1109/ISCMI.2017.8279599](https://doi.org/10.1109/ISCMI.2017.8279599 +""") diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_payload.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_payload.py new file mode 100644 index 00000000..608da6db --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_payload.py @@ -0,0 +1,252 @@ +import streamlit as st + +st.header("Минимальная грузоподъёмность") + +st.markdown(r""" +В квазистатическом приближении моменты актуаторов и внешняя сила связаны выражением: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. Это выражение можно использовать для оценки грузоподъёмности механизма. Для заданной точки можно рассчитать максимальную вертикальную силу, которую можно получить при заданном пиковом значении момента: + +$$ +f_m = \tau_m / max(J^T z), +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории, $J$ - Якобиан скоростей, $\tau_m$ - номинальный пиковый момент двигателя. + +В качестве критерия мы рассматриваем отношение данной величины к силе тяжести самого механизма, таким образом получая грузоподъёмность в единицах массы механизма. При этом нас интересует наименьшее значение данного критерия на траектории. Мотивация данного критерия - механизм должен иметь возможность нести нагрузку во всех точках траектории, поэтому минимальное значение характеризует способность механизма пройти всю траекторию под нагрузкой. Итоговый критерий: + +$$ +R=\min\left( \frac{f_m}{mg}\right), +$$ + +где $m$ - масса механизма, $g$ - ускорение свободного падения, $n$ - число шагов на траектории. + +--- + +1. G. Kenneally, A. De and D. E. Koditschek, "Design Principles for a Family of Direct-Drive Legged Robots," in _IEEE Robotics and Automation Letters_, vol. 1, no. 2, pp. 900-907, July 2016, doi: [10.1109/LRA.2016.2528294](https://doi.org/10.1109/LRA.2016.2528294) +""") + + +MD_REWARD_DESCRIPTION = r"""\#\# 1. Определитель матрицы инерции. + +Рассматривается матрица инерции в пространстве актуаторов. Матрицей инерции называется квадратная матрица связывающая скорость изменения обобщённых координат с кинетической энергией: + +$$ +E_k=\dot{q}^TA(q)\dot{q}\space, +$$ + +где $q$ - координаты актуированных сочленений. Матрица инерции зависит от конфигурации механизма и поэтому изменяется вдоль траектории. +Чем меньше определитель этой матрицы, тем меньше энергии нужно затратить для достижения заданной скорости. В качестве критерия используется величина: + +$$ +R = \frac{1}{\overline{\det{A(q)}}}, +$$ + +где усреднение проводится по всем точкам траектории. + +--- + +O. Khatib, “Inertial properties in robotic manipulation: An object-level framework,” The international journal of robotics research, vol. 14, no. 1, pp. 19–36, 1995. [https://doi.org/10.1177/027836499501400103](https://doi.org/10.1177/027836499501400103) + +\#\# 2. Фактор распределения вертикального удара. + +Данный критерий измеряет нормированною величину инерции концевого эффектора. Для этого используется матрица инерции в операционном пространстве: + +$$ +\Lambda(x)=(J(q(x))A(q(x))^{-1}J(q(x))^T)^{-1}, +$$ + +где $A$- матрица инерции в пространстве актуированных сочленений, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$ +Для нормировки используется значение матрицы инерции в операционном пространстве при условии, что каждое сочленение неподвижно $\Lambda_L$. Как критерий нас интересует только проекция на вертикальную ось, поэтому итоговое выражение имеет вид: + + $$ + R=\frac{1}{n}\sum_1^n(1-\frac{z^T\Lambda z}{z^T\Lambda_L z}), + $$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории. + +--- + +Для более подробной информации: +P. M. Wensing, A. Wang, S. Seok, D. Otten, J. Lang and S. Kim, "Proprioceptive Actuator Design in the MIT Cheetah: Impact Mitigation and High-Bandwidth Physical Interaction for Dynamic Legged Robots," in _IEEE Transactions on Robotics_, vol. 33, no. 3, pp. 509-522, June 2017, doi: [10.1109/TRO.2016.2640183](https://doi.org/10.1109/TRO.2016.2640183) +V. Batto, T. Flayols, N. Mansard and M. Vulliez, "Comparative Metrics of Advanced Serial/Parallel Biped Design and Characterization of the Main Contemporary Architectures," _2023 IEEE-RAS 22nd International Conference on Humanoid Robots (Humanoids)_, Austin, TX, USA, 2023, pp. 1-7, doi: [10.1109/Humanoids57100.2023.10375224](https://doi.org/10.1109/Humanoids57100.2023.10375224) + +\#\# 3. Манипулируемость/Маневренность вдоль траектории. + +Манипулируемость это кинематическая характеристика оценивающая связь между скоростью актуаторов и скоростью концевого эффектора. В данном критерии рассматривается связь между движением актуаторов и движением по касательной к траектории. Обозначиv $\vec{t}$ - единичный вектор касательной к траектории. Тогда критерий определяется как: + +$$ +R=\frac{1}{n}\sum_1^n(1/\|J^{-1}\vec{t}\|), +$$ + +где $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, n - число точек на траектории. В отдельной точке данный критерий обозначает величину линейной скорости, которая получается при "единичной" скорости актуаторов $\|q\|=1$. + +\#\# 4. Манипулируемость. + +Манипулируемость это кинематическая характеристика оценивающая связь между скоростью актуаторов и скоростью концевого эффектора. Данный критерий характеризует полную манипулируемость по всем направлениям. Единичный круг в пространтсве скоростей актуаторов преобразуется Якобианом в эллипс манипулируемости: + +$$ +v^T(JJ^T)^-1v=1 +$$ + +Объём(площадь) эллипса пропорционален определителю Якобиана. Чем больше объём, тем большие скорости концевого эффектора достижимы при "единичной" скорости актуаторов $\|q\|=1$. Критерий в точке равен определителю Якобиана, а полное значение вдоль траектории равно: + +$$ +R=\frac{1}{n}\sum_1^n(\det{J}), +$$ + +где $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, n - число точек на траектории. + +--- +Для более подробной информации: +V. Batto, T. Flayols, N. Mansard and M. Vulliez, "Comparative Metrics of Advanced Serial/Parallel Biped Design and Characterization of the Main Contemporary Architectures," _2023 IEEE-RAS 22nd International Conference on Humanoid Robots (Humanoids)_, Austin, TX, USA, 2023, pp. 1-7, doi: [10.1109/Humanoids57100.2023.10375224](https://doi.org/10.1109/Humanoids57100.2023.10375224) +Spong, M.W.; Hutchinson, Seth; Vidyasagar, M. (2005). [_Robot Modeling and Control_](https://books.google.com/books?id=muCMAAAACAAJ). Wiley. Wiley. [ISBN](https://en.wikipedia.org/wiki/ISBN_(identifier) "ISBN (identifier)") [9780471765790](https://en.wikipedia.org/wiki/Special:BookSources/9780471765790 "Special:BookSources/9780471765790"). + +\#\# 5. Минимальная манипулируемость. + +Манипулируемость это кинематическая характеристика оценивающая связь между скоростью актуаторов и скоростью концевого эффектора. Данный критерий зависит от минимального значения скорости концевого эффектора при "единичной" скорости актуаторов $\|q\|=1$. Наименьшее значение определяется наименьшим сингулярным числом Якобиана скоростей. Значение критерия равно: + +$$ +R=\frac{1}{n}\sum_1^n\sigma_{min}, +$$ +где $\sigma_{min}$ - наименьшее сингулярное число Якобиана скоростей, n - число точек на траектории. + +--- +M. Švejda, "New kinetostatic criterion for robot parametric optimization," _2017 IEEE 4th International Conference on Soft Computing & Machine Intelligence (ISCMI)_, Mauritius, 2017, pp. 66-70, doi: [10.1109/ISCMI.2017.8279599](https://doi.org/10.1109/ISCMI.2017.8279599 + +\#\# 6. Минимальное усилие. + +Транспонированный Якобиан скоростей определяет соотношение между моментами актуаторов и силой приложенной к концевому эффектору в стационарном состоянии: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. +Для каждой конфигурации существует наименьшая сила, которую могут создавать двигатели при "единичном" моменте актуаторов $\|\tau \|=1$. Данная сила пропорциональна обратному значению наибольшего сингулярного числа Якобиана скоростей. Чем большее значение имеет данная характеристика, тем большие внешние силы способен выдерживать механизм. При использовании данного критерия максимизируется минимальное значение допустимой нагрузки. Итоговый критерий равен: + +$$ +R=\frac{1}{n}\sum_1^n\frac{1}{\sigma_{max}}, +$$ + +где $\sigma_{max}$ - наибольшее сингулярное число Якобиана скоростей, n - число точек на траектории. + +\#\# 7. Вертикальное передаточное отношение. + +Транспонированный Якобиан скоростей определяет соотношение между моментами актуаторов и силой приложенной к концевому эффектору в стационарном состоянии: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. +Для механизмов ног роботов особое значение имеют внешние силы направленные по вертикали, так как они соответствуют контакту с поверхностью. В качестве критерия используется величина: + +$$ +R=\frac{1}{n}\sum_1^n\frac{1}{\|J^T z\|}, +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории, $J$ - Якобиан скоростей. Чем больше данное значение, тем меньшим моментом актуаторов можно добиться необходимой силы контакта с поверхностью. + +--- +V. Batto, T. Flayols, N. Mansard and M. Vulliez, "Comparative Metrics of Advanced Serial/Parallel Biped Design and Characterization of the Main Contemporary Architectures," _2023 IEEE-RAS 22nd International Conference on Humanoid Robots (Humanoids)_, Austin, TX, USA, 2023, pp. 1-7, doi: [10.1109/Humanoids57100.2023.10375224](https://doi.org/10.1109/Humanoids57100.2023.10375224 + +\#\# 8. Индекс подвижности. + +Следствием закона сохранения энергии является тот факт, что силовые и скоростные характеристики механизма оказываются связаны - чем больше манипулируемость, тем меньше сила и наоборот. Индекс подвижности - это критерий, служащий для получения сбалансированных дизайнов через компромисс между силой и скоростью. Величина критерия равна: + +$$ +R=\frac{1}{n}\sum_1^n\frac{\sigma_{min}}{\sigma_{max}}, +$$ + +где $\sigma_{min}$ - наименьшее сингулярное число Якобиана скоростей, $\sigma_{max}$ - наибольшее сингулярное число Якобиана скоростей, n - число точек на траектории. + +\#\# 9. Потенциальное ускорение вдоль траектории. + +Ускорение концевого эффектора зависит от матрицы инерции механизма и моментов актуаторов. Связь моментов актуаторов и ускорения (при нулевой скорости и отбрасывая гравитацию): $$\tau = H(q)J^{-1} \ddot{x} $$ где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $\ddot{x}$ - ускорение в операционном пространстве. +Данный критерий направлен на минимизацию моментов необходимых для ускорения вдоль заданной траектории. Обозначиv $\vec{t}$ - единичный вектор касательной к траектории. Тогда вектор моментов необходимых для единичного ускорения в данном направлении равен: + +$$ +\tau_u = H(q)J^{-1} \ddot{\vec t} +$$ + +В качестве критерия используется величина + +$$ +R=\frac{1}{n}\sum_1^n\tau_m/max(tau_u), +$$ + +где $\tau_m$ - номинальный пиковый момент двигателя. Данный критерий показывает, какое ускорение вдоль траектории может быть получено из данной конфигурации механизма при подачи максимальных возможных моментов на двигатели. + +--- +Более подробно данный критерий описан в статье: +M. Švejda, "New kinetostatic criterion for robot parametric optimization," _2017 IEEE 4th International Conference on Soft Computing & Machine Intelligence (ISCMI)_, Mauritius, 2017, pp. 66-70, doi: [10.1109/ISCMI.2017.8279599](https://doi.org/10.1109/ISCMI.2017.8279599) + +\#\# 10. Минимальное потенциальное ускорение. + +Ускорение концевого эффектора зависит от матрицы инерции механизма и моментов актуаторов. Связь моментов актуаторов и ускорения (при нулевой скорости и отбрасывая гравитацию): $$J(q)H(q)^{-1} \tau = \ddot{x} $$где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $\ddot{x}$ - ускорение в операционном пространстве. +Данный критерий направлен на максимизацию минимального ускорения, получаемого при при "единичном" моменте актуаторов $\|\tau \|=1$. Значение критерия равно: + +$$ +R=\frac{1}{n}\sum_1^n\sigma_{min}, +$$ + +где $\sigma_{min}$ - наименьшее сингулярное число матрицы $J(q)H(q)^{-1}$, n - число точек на траектории. + +\#\# 11. Средняя грузоподъёмность. + +В квазистатическом приближении моменты актуаторов и внешняя сила связаны выражением: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. Это выражение можно использовать для оценки грузоподъёмности механизма. Для заданной точки можно рассчитать максимальную вертикальную силу, которую можно получить при заданном пиковом значении момента: + +$$ +f_m = \tau_m / max(J^T z), +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории, $J$ - Якобиан скоростей, $\tau_m$ - номинальный пиковый момент двигателя. +В качестве критерия мы рассматриваем отношение данной величины к силе тяжести самого механизма, таким образом получая грузоподъёмность в единицах массы механизма. Итоговый критерий: + +$$ +R=\frac{1}{n}\sum_1^n\frac{f_m}{mg}, +$$ + +где $m$ - масса механизма, $g$ - ускорение свободного падения, $n$ - число шагов на траектории. + +--- +Данный критерий описан в работе: +G. Kenneally, A. De and D. E. Koditschek, "Design Principles for a Family of Direct-Drive Legged Robots," in _IEEE Robotics and Automation Letters_, vol. 1, no. 2, pp. 900-907, July 2016, doi: [10.1109/LRA.2016.2528294](https://doi.org/10.1109/LRA.2016.2528294) + +\#\# 12. Минимальная грузоподъёмность. + +В квазистатическом приближении моменты актуаторов и внешняя сила связаны выражением: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. Это выражение можно использовать для оценки грузоподъёмности механизма. Для заданной точки можно рассчитать максимальную вертикальную силу, которую можно получить при заданном пиковом значении момента: + +$$ +f_m = \tau_m / max(J^T z), +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории, $J$ - Якобиан скоростей, $\tau_m$ - номинальный пиковый момент двигателя. +В качестве критерия мы рассматриваем отношение данной величины к силе тяжести самого механизма, таким образом получая грузоподъёмность в единицах массы механизма. При этом нас интересует наименьшее значение данного критерия на траектории. Мотивация данного критерия - механизм должен иметь возможность нести нагрузку во всех точках траектории, поэтому минимальное значение характеризует способность механизма пройти всю траекторию под нагрузкой. Итоговый критерий: + +$$ +R=\min\left( \frac{f_m}{mg}\right), +$$ + +где $m$ - масса механизма, $g$ - ускорение свободного падения, $n$ - число шагов на траектории. + +--- +Данный критерий описан в работе: +G. Kenneally, A. De and D. E. Koditschek, "Design Principles for a Family of Direct-Drive Legged Robots," in _IEEE Robotics and Automation Letters_, vol. 1, no. 2, pp. 900-907, July 2016, doi: [10.1109/LRA.2016.2528294](https://doi.org/10.1109/LRA.2016.2528294)""" \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_potentinal_acc.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_potentinal_acc.py new file mode 100644 index 00000000..e7c73cf8 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/min_potentinal_acc.py @@ -0,0 +1,15 @@ +import streamlit as st + +st.header("Минимальное потенциальное ускорение") + +st.markdown(r""" +Ускорение концевого эффектора зависит от матрицы инерции механизма и моментов актуаторов. Связь моментов актуаторов и ускорения (при нулевой скорости и отбрасывая гравитацию): $$J(q)H(q)^{-1} \tau = \ddot{x} $$где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $\ddot{x}$ - ускорение в операционном пространстве. + +Данный критерий направлен на максимизацию минимального ускорения, получаемого при при "единичном" моменте актуаторов $\|\tau \|=1$. Значение критерия равно: + +$$ +R=\frac{1}{n}\sum_1^n\sigma_{min}, +$$ + +где $\sigma_{min}$ - наименьшее сингулярное число матрицы $J(q)H(q)^{-1}$, n - число точек на траектории. +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/potentinal_acc_traj.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/potentinal_acc_traj.py new file mode 100644 index 00000000..2c7c702e --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/potentinal_acc_traj.py @@ -0,0 +1,25 @@ +import streamlit as st + +st.header("Потенциальное ускорение вдоль траектории") + +st.markdown(r""" +Ускорение концевого эффектора зависит от матрицы инерции механизма и моментов актуаторов. Связь моментов актуаторов и ускорения (при нулевой скорости и отбрасывая гравитацию): $$\tau = H(q)J^{-1} \ddot{x} $$ где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $\ddot{x}$ - ускорение в операционном пространстве. + +Данный критерий направлен на минимизацию моментов необходимых для ускорения вдоль заданной траектории. Обозначиv $\vec{t}$ - единичный вектор касательной к траектории. Тогда вектор моментов необходимых для единичного ускорения в данном направлении равен: + +$$ +\tau_u = H(q)J^{-1} \ddot{\vec t} +$$ + +В качестве критерия используется величина + +$$ +R=\frac{1}{n}\sum_1^n\tau_m/max(tau_u), +$$ + +где $\tau_m$ - номинальный пиковый момент двигателя. Данный критерий показывает, какое ускорение вдоль траектории может быть получено из данной конфигурации механизма при подачи максимальных возможных моментов на двигатели. + +--- + +1. M. Švejda, "New kinetostatic criterion for robot parametric optimization," _2017 IEEE 4th International Conference on Soft Computing & Machine Intelligence (ISCMI)_, Mauritius, 2017, pp. 66-70, doi: [10.1109/ISCMI.2017.8279599](https://doi.org/10.1109/ISCMI.2017.8279599) +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/z_reduction_ration.py b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/z_reduction_ration.py new file mode 100644 index 00000000..c7c82e24 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/reward_descriptions/z_reduction_ration.py @@ -0,0 +1,25 @@ +import streamlit as st + +st.header("Вертикальное передаточное отношение") + +st.markdown(r""" +Транспонированный Якобиан скоростей определяет соотношение между моментами актуаторов и силой приложенной к концевому эффектору в стационарном состоянии: + +$$ +\tau=J^Tf, +$$ + +где $\tau$ - моменты актуаторов, $J$ - якобиан связывающий обобщённую скорость $\dot{q}$ и скорость в операционном пространстве $\dot{x}$, $f$ - сила приложенная к концевому эффектору. + +Для механизмов ног роботов особое значение имеют внешние силы направленные по вертикали, так как они соответствуют контакту с поверхностью. В качестве критерия используется величина: + +$$ +R=\frac{1}{n}\sum_1^n\frac{1}{\|J^T z\|}, +$$ + +где $z$ - единичный вектор вдоль оси $Z$, n - число точек на траектории, $J$ - Якобиан скоростей. Чем больше данное значение, тем меньшим моментом актуаторов можно добиться необходимой силы контакта с поверхностью. + +--- + +1. V. Batto, T. Flayols, N. Mansard and M. Vulliez, "Comparative Metrics of Advanced Serial/Parallel Biped Design and Characterization of the Main Contemporary Architectures," _2023 IEEE-RAS 22nd International Conference on Humanoid Robots (Humanoids)_, Austin, TX, USA, 2023, pp. 1-7, doi: [10.1109/Humanoids57100.2023.10375224](https://doi.org/10.1109/Humanoids57100.2023.10375224 +""") \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/run.py b/jmoves/apps/widjetdemo/streamlit_widgets/run.py new file mode 100644 index 00000000..9c3aa943 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/run.py @@ -0,0 +1,49 @@ +import multiprocessing +import streamlit as st +import dill +import sys +from pymoo.algorithms.moo.age2 import AGEMOEA2 +from pymoo.algorithms.soo.nonconvex.pso import PSO +from pymoo.core.problem import StarmapParallelization +from pathlib import Path +from auto_robot_design.optimization.optimizer import PymooOptimizer +from auto_robot_design.optimization.problems import (MultiCriteriaProblem, + SingleCriterionProblem) +from auto_robot_design.optimization.saver import ProblemSaver + +if __name__ == "__main__": + with open(Path(f"./results/optimization_widget/user_{int(sys.argv[1])}/buffer/data.pkl"), "rb") as f: + data = dill.load(f) + N_PROCESS = 10 + pool = multiprocessing.Pool(N_PROCESS) + runner = StarmapParallelization(pool.starmap) + population_size = 64 + n_generations = 30 + graph_manager = data[0] + builder = data[1] + reward_manager = data[3] + soft_constraint = data[4] + actuator = builder.actuator['default'] + num_objs = reward_manager.close_trajectories() + print(num_objs) + if num_objs > 1: + # create the problem for the current optimization + problem = MultiCriteriaProblem(graph_manager, builder, reward_manager, + soft_constraint, elementwise_runner=runner, Actuator=actuator) + + algorithm = AGEMOEA2(pop_size=population_size, save_history=True) + else: + problem = SingleCriterionProblem(graph_manager, builder, reward_manager, + soft_constraint, elementwise_runner=runner, Actuator=actuator) + algorithm = PSO(pop_size=population_size, save_history=True) + saver = ProblemSaver( + problem, Path(f"optimization_widget\\user_{int(sys.argv[1])}\\current_results"), False) + saver.save_nonmutable() + optimizer = PymooOptimizer(problem, algorithm, saver) + + res = optimizer.run( + True, **{ + "seed": 2, + "termination": ("n_gen", n_generations), + "verbose": True + }) diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_forward_v2.py b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_forward_v2.py new file mode 100644 index 00000000..d428e9aa --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_forward_v2.py @@ -0,0 +1,415 @@ +import os +import shutil +import zipfile +import time +from copy import deepcopy +from pathlib import Path +import matplotlib.pyplot as plt +import numpy as np +import pinocchio as pin +import streamlit as st +import streamlit.components.v1 as components +from apps.widjetdemo.streamlit_widgets.reward_descriptions.md_rawards import MD_REWARD_DESCRIPTION +from forward_init import add_trajectory_to_vis, build_constant_objects, get_russian_reward_description +from streamlit_widget_auxiliary import get_visualizer, send_graph_to_visualizer, graph_mesh_visualization, send_robot_to_visualizer, robot_move_visualization + +from auto_robot_design.description.builder import jps_graph2pinocchio_robot_3d_constraints +from auto_robot_design.description.mesh_builder.mesh_builder import ( + jps_graph2pinocchio_meshes_robot) +from auto_robot_design.description.utils import draw_joint_point, draw_joint_point_widjet +from auto_robot_design.generator.topologies.bounds_preset import \ + get_preset_by_index_with_bounds +from auto_robot_design.motion_planning.bfs_ws import ( + BreadthFirstSearchPlanner, Workspace) + +from auto_robot_design.pinokla.default_traj import ( + add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, + create_simple_step_trajectory, get_vertical_trajectory) +from auto_robot_design.utils.configs import get_standard_builder, get_mesh_builder, get_standard_crag, get_standard_rewards +# build and cache constant objects +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, MIT_CHEETAH_PARAMS_DICT +from auto_robot_design.optimization.rewards.reward_base import NotReacablePoints +from auto_robot_design.generator.topologies.graph_manager_2l import scale_graph_manager, scale_jp_graph, plot_one_jp_bounds +from auto_robot_design.pinokla.criterion_math import calculate_mass +from apps.widjetdemo.streamlit_widgets.trajectory_widget import set_step_trajectory, set_vertical_trajectory, user_trajectory +from widget_html_tricks import ChangeWidgetFontSize, font_size + +USER_KEY = 0 + +graph_managers, optimization_builder, _, _, crag, reward_dict = build_constant_objects() +reward_description = get_russian_reward_description() +font_size(20) +user_visualizer, user_vis_url = get_visualizer(USER_KEY) + +st.title("Расчёт характеристик рычажных механизмов") + +# create gm variable that will be used to store the current graph manager and set it to be update for a session +if 'gm' not in st.session_state: + # the session variable for chosen topology, it gets a value after topology confirmation button is clicked + st.session_state.stage = 'topology_choice' + st.session_state.run_simulation_flag = False + + path_to_robots = Path().parent.absolute().joinpath(f"robots/user_{USER_KEY}") + if os.path.exists(path_to_robots): + shutil.rmtree(path_to_robots) + + +def confirm_topology(): + st.session_state.stage = 'joint_point_choice' + # until confirmation I there is no graph mutations, but after that I may need to change something + # session_state.gm is at all stages a graph manager with initial parameters but it is a deepcopy in case I need to return + st.session_state.gm = deepcopy(graph_managers[st.session_state.topology_choice]) + st.session_state.gm.set_mutation_ranges() + st.session_state.current_gm = deepcopy(st.session_state.gm) + # initial joint point positions are the same as slider constants. If stage returned to 'topology_choice' all choices are reset + st.session_state.jp_positions = st.session_state.gm.generate_central_from_mutation_range() + st.session_state.slider_constants = deepcopy(st.session_state.jp_positions) + st.session_state.scale = 1 + +# the radio button and confirm button are only visible until the topology is selected +if st.session_state.stage == 'topology_choice': + st.markdown("""

В данном сценарии предлагается выбрать одну из девяти структур рычажных механизмов и задать положение сочленений кинематической схемы. +После этого будет рассчитано рабочее пространство кинематической схемы и предложены на выбор критерии, которые можно для неё рассчитать.

+ +

Первый шаг - выбор структуры механизма, выберите структуру при помощи кнопок на боковой панели. Для каждой структуры визуализируется пример графа и механизма.

""",unsafe_allow_html=True) + with st.sidebar: + topology_choice = st.radio(label="Выбор структуры рычажного механизма:", + options=graph_managers.keys(), index=0, key='topology_choice') + st.session_state.gm = graph_managers[st.session_state.topology_choice] + st.button(label='Подтвердить выбор структуры', key='confirm_topology', + on_click=confirm_topology,type='primary') + + st.markdown( + """

Для управления инерциальными характеристиками механизма можно задать плотность и сечение элементов конструкции.

""",unsafe_allow_html=True) + density = st.slider(label="Плотность [кг/м^3]", min_value=250, max_value=8000, + value=int(MIT_CHEETAH_PARAMS_DICT["density"]), step=50, key='density') + thickness = st.slider(label="Толщина [м]", min_value=0.01, max_value=0.1, + value=MIT_CHEETAH_PARAMS_DICT["thickness"], step=0.01, key='thickness') + # density = st.number_input(label="Плотность [кг/м^3]", min_value=0.01, max_value=None, + # value=MIT_CHEETAH_PARAMS_DICT["density"], step=10.0, key='density') + # thickness = st.number_input(label="Толщина [м]", min_value=0.01, max_value=None, + # value=MIT_CHEETAH_PARAMS_DICT["thickness"], step=0.01, key='thickness') + st.session_state.visualization_builder = get_mesh_builder(manipulation=True, thickness=thickness, density=density) + st.session_state.optimization_builder = get_standard_builder(thickness, density) + # getting cental graph of the current topology and send it to duo visualization + values = st.session_state.gm.generate_central_from_mutation_range() + graph = st.session_state.gm.get_graph(values) + graph_mesh_visualization(graph,user_visualizer,user_vis_url, labels=2, draw_lines=True, draw_legend=False) + # font tricks + ChangeWidgetFontSize("Выбор структуры рычажного механизма:", "16px") + ChangeWidgetFontSize("Плотность [кг/м^3]", "16px") + ChangeWidgetFontSize("Толщина [м]", "16px") + + +def evaluate_construction(tolerance): + """Calculate the workspace of the robot and create workspace object. Also calculate the mass of the robot""" + st.session_state.stage = 'workspace_visualization' + st.session_state.slider_constants = deepcopy(st.session_state.jp_positions) + gm = st.session_state.current_gm + graph = gm.graph + fixed_robot, free_robot= jps_graph2pinocchio_robot_3d_constraints( + graph, builder=st.session_state.optimization_builder) + # from this point I will change robot only if stage is returned to 'joint_point_choice' + st.session_state.fixed_robot = fixed_robot + st.session_state.free_robot = free_robot + + + fixed_robot_vis, _= jps_graph2pinocchio_meshes_robot( + graph, builder=st.session_state.visualization_builder) + st.session_state.fixed_robot_vis = fixed_robot_vis + + + size_box_bound = np.array([0.5, 0.42])*st.session_state.scale + center_bound = np.array([0, -0.21])*st.session_state.scale + bounds = np.array( + [ + [-size_box_bound[0] / 2 - 0.001, size_box_bound[0] / 2], + [-size_box_bound[1] / 2, size_box_bound[1] / 2], + ] + ) + bounds[0, :] += center_bound[0] + bounds[1, :] += center_bound[1] + start_pos = np.array([0, -0.4])*st.session_state.scale + q = np.zeros(fixed_robot.model.nq) + workspace_obj = Workspace(fixed_robot, bounds, np.array([0.01*st.session_state.scale, 0.01*st.session_state.scale])) + # tolerance = [0.004, 400] + ws_bfs = BreadthFirstSearchPlanner( + workspace_obj, 0, dexterous_tolerance=tolerance) + workspace = ws_bfs.find_workspace(start_pos, q) + st.session_state.workspace = workspace + st.session_state.mass = calculate_mass(fixed_robot) + send_robot_to_visualizer(st.session_state.fixed_robot_vis, user_visualizer) + # this object is used only for user trajectory + st.session_state.trajectory = None + st.session_state.trajectory_history = [] + + +def slider_change(): + # when I change the jp I need to save current positions for new constants and dont fall for the python list trick, so I need to deepcopy + st.session_state.slider_constants = deepcopy(st.session_state.jp_positions) + + +def scale_change(): + graph_scale = st.session_state.scaler/st.session_state.scale + st.session_state.scale = st.session_state.scaler + tmp = deepcopy(st.session_state.jp_positions.copy()) + st.session_state.jp_positions = [i*graph_scale for i in tmp] + st.session_state.slider_constants = deepcopy(st.session_state.jp_positions) + current_gm = deepcopy(st.session_state.gm) + current_gm = scale_graph_manager(current_gm, st.session_state.scale) + current_gm.set_mutation_ranges() + st.session_state.current_gm = current_gm + + +# choose the mechanism for optimization +if st.session_state.stage == 'joint_point_choice': + st.markdown("""

Установите необходимые положения для координат центров сочленений. +Каждое сочленение выбирается отдельно при помощи кнопок и слайдеров на боковой панели. +Если для сочленения нет слайдеров, то данное сочленение в соответствующей структуре является неизменяемым.

""", unsafe_allow_html=True) + st.markdown("""Каждое сочленение относится к одному из четырёх типов: + 1. Неподвижное сочленение - неизменяемое положение. + 2. Cочленение в абсолютных координатах - положение задаётся в абсолютной системе координат в метрах. + 3. Сочленение в относительных координатах - положение задаётся относительно другого сочленения в метрах. + 4. Сочленени задаваемое относительно звена - положение задаётся относительно центра звена в процентах от длины звена. + Для каждого сочленения на боковой панели указан его тип.""") + gm = st.session_state.current_gm + mut_ranges = gm.mutation_ranges + graph = gm.graph + labels = {n: i for i, n in enumerate(graph.nodes())} + with st.sidebar: + st.button(label='Вернуться к выбору топологии', key='return_to_topology_choice', + on_click=lambda: st.session_state.__setitem__('stage', 'topology_choice')) + with st.sidebar: + st.header('Выбор положений сочленений') + jp_label = st.radio(label='Сочленение:', options=labels.values( + ), index=0, key='joint_point_choice', horizontal=True, on_change=slider_change) + jp = list(labels.keys())[jp_label] + if st.session_state.gm.generator_dict[jp].mutation_type.value == 1: + if None in st.session_state.gm.generator_dict[jp].freeze_pos: + st.write("Тип сочленения: Сочленение в абсолютных координатах") + else: + st.write("Тип сочленения: Неподвижное сочленение") + if st.session_state.gm.generator_dict[jp].mutation_type.value == 2: + st.write("Тип сочленения: Сочленение в относительных координатах") + st.write("координаты относительно сочленения: "+str( + labels[st.session_state.gm.generator_dict[jp].relative_to])) + if st.session_state.gm.generator_dict[jp].mutation_type.value == 3: + st.write("Тип сочленения: Сочленение задаваемое относительно звена") + st.write("координаты относительно звена: "+str(labels[st.session_state.gm.generator_dict[jp].relative_to[0]])+':heavy_minus_sign:'+str(labels[st.session_state.gm.generator_dict[jp].relative_to[1]])) + + # here chosen range is from current_gm which is scaled + chosen_range = gm.generator_dict[jp].mutation_range + for i, tpl in enumerate(mut_ranges.items()): + key, value = tpl + # search for the jp in the mutation ranges. the slider changes the value in the jp_positions, which are used for get_graph + # positions are changed every slider move, but constants are changed only by other actions like scaling and jp change + if key[0] == jp: + slider = st.slider( + label=key[1].upper() +' координата сочленения '+str(labels[key[0]]), min_value=value[0], max_value=value[1], value=st.session_state.slider_constants[i], + key="slider_"+str(labels[key[0]])+'_'+key[1]) + st.session_state.jp_positions[i] = slider + lower = 0 + upper = np.inf + # lower_toggle = st.toggle(label='Задать нижний предел манипулируемости', value = False,key='lower_toggle') + # if lower_toggle: + # lower = st.slider(label="нижний предел манипулируемости",min_value=0.0001, max_value=0.001,value=0.0001,step=0.0001,key='lower', format="%f") + # upper_toggle = st.toggle(label = 'Задать верхний предел манипулируемости', value = False, key='upper_toggle') + # if upper_toggle: + # upper = st.slider(label="верхний предел манипулируемости",min_value=10, max_value=100,value=100,step=10, key='upper') + st.markdown("""Высоту механизма можно настроить при помощи изменения общего масштаба механизма.""") + st.slider(label="Масштаб", min_value=0.5, max_value=2.0,value=1.0, step=0.1, key='scaler', on_change=scale_change) + # st.number_input(label="Масштаб", min_value=0.1, max_value=None,value=1.0, step=0.1, key='scaler', on_change=scale_change) + with st.sidebar: + + st.button(label="Рассчитать рабочее пространство", + on_click=evaluate_construction, key="get_workspace", args=[[lower, upper]], type='primary') + # draw the graph + graph = gm.get_graph(st.session_state.jp_positions) + draw_joint_point_widjet(graph, labels=1, draw_lines=True) + plot_one_jp_bounds(gm, jp.name) + + plt.gcf().set_size_inches(4, 4) + st.pyplot(plt.gcf(), clear_figure=True) + # link lengths calculations + with st.sidebar: + for edge in graph.edges(): + vector = edge[0].r - edge[1].r + st.write( + f"Длина звена {labels[edge[0]]}:heavy_minus_sign:{labels[edge[1]]} составляет {np.linalg.norm(vector):.3f} [м]") + + ChangeWidgetFontSize("Масштаб", "16px") + ChangeWidgetFontSize("Сочленение:", "16px") + + +def run_simulation(): + st.session_state.run_simulation_flag = True + + +def calculate_and_display_rewards(trajectory, reward_mask): + point_criteria_vector, trajectory_criteria, res_dict_fixed = crag.get_criteria_data( + st.session_state.fixed_robot, st.session_state.free_robot, trajectory, viz=None) + if sum(reward_mask)>0: + some_text = """Критерии представлены в виде поточечных значений вдоль траектории.""" + st.text(some_text) + col_1, col_2 = st.columns([0.5, 0.5], gap="small") + counter = 0 + try: + for i, reward in enumerate(reward_dict.items()): + if counter % 2 == 0: + col = col_1 + else: + col = col_2 + with col: + if reward_mask[i]: + + calculate_result = reward[1].calculate( + point_criteria_vector, trajectory_criteria, res_dict_fixed, Actuator=st.session_state.optimization_builder.actuator['default']) + # st.text(reward_description[reward[0]][0]+":\n " ) + reward_vector = np.array(calculate_result[1]) + # plt.gcf().set_figheight(3) + # plt.gcf().set_figwidth(3) + plt.plot(reward_vector) + plt.xticks(fontsize=10) + plt.yticks(fontsize=10) + plt.xlabel('шаг траектории', fontsize=12) + plt.ylabel('значение критерия на шаге', fontsize=12) + plt.title(reward_description[reward[0]][0], fontsize=12) + plt.legend( + [f'Итоговое значение критерия: {calculate_result[0]:.2f}'], fontsize=12) + st.pyplot(plt.gcf(), clear_figure=True, + use_container_width=True) + counter += 1 + except NotReacablePoints: + st.text_area( + label="", value="Траектория содержит точки за пределами рабочего пространства. Для рассчёта критериев укажите траекторию внутри рабочей области.") + + +def create_file(graph, user_key=0, id_robot=0): + path_to_robots = Path().parent.absolute().joinpath(f"robots/user_{user_key}") + if not os.path.exists(path_to_robots): + os.makedirs(path_to_robots) + zip_file_name = path_to_robots / f"robot_{id_robot}.zip" + if os.path.exists(zip_file_name): + return zip_file_name + robot_urdf_str, yaml_out = jps_graph2pinocchio_robot_3d_constraints(graph, st.session_state.optimization_builder, True) + path_to_urdf = path_to_robots / f"robot_{id_robot}.urdf" + path_to_yaml = path_to_robots / f"robot_{id_robot}.yaml" + with open(path_to_urdf, "w") as f: + f.write(robot_urdf_str) + with open(path_to_yaml, "w") as f: + f.write(yaml_out) + file_names = [f"robot_{id_robot}.urdf", f"robot_{id_robot}.yaml"] + with zipfile.ZipFile(zip_file_name, 'w') as zip_object: + # Add multiple files to the zip file + for file_name in file_names: + zip_object.write(path_to_robots / file_name, file_name) + return zip_file_name + + +def return_to_jp_choice(): + st.session_state.stage = 'joint_point_choice' + st.session_state.current_gm = deepcopy(st.session_state.gm) + +if st.session_state.stage == 'workspace_visualization': + st.markdown("""Рабочее пространство изображено совместно с графовым представлением механизма. +:large_yellow_square: Жёлтая область - рабочее пространство механизма. +:large_red_square: Красные область - недостижимые точки. +Для выбранной кинематической схемы можно рассчитать набор критериев. Для успешного вычисления критериев необходимо задать желаемую траекторию лежащую внутри рабочего пространства механизма. +Для выбранной страектории достраивается вспомогательный участок ведущий от нейтрального положения к началу траектории. На шрафе данный участок отображается, в 3D симуляции отображается только часть траектории вдоль которой рассчитываются критерии.""") + st.markdown("Выберите траекторию и критерии при помощи конопок на боковой панели!") + gm = st.session_state.current_gm + graph = gm.graph + # points = st.session_state.points + points = st.session_state.workspace.points + workspace = st.session_state.workspace + x = points[:, 0] + y = points[:, 1] + values = workspace.reachabilty_mask.flatten() + x_0 = x[values == 0] + y_0 = y[values == 0] + x_1 = x[values == 1] + y_1 = y[values == 1] + # # Plot the points + plt.plot(x_0, y_0, "s",color="#F8312F", markersize=3, label = "Недостижимые точки", zorder=1) + plt.legend() + plt.plot(x_1, y_1, "s",color="#FFB02E", markersize=3, label = "Достижимые точки", zorder=1) + plt.legend() + # trajectory setting script + trajectory = None + with st.sidebar: + st.button(label="Вернуться к выбору механизма", key="return_to_joint_point_choice", + on_click=return_to_jp_choice) + trajectory_type = st.radio(label='Выберите тип траектории:', options=[ + "Тип 1 (линия)", "Тип 2 (дуга)", "Тип 3 (ломаная)"], index=None, key="trajectory_type") + ChangeWidgetFontSize("Выберите тип траектории:", "16px") + if trajectory_type == "Тип 1 (линия)": + trajectory = set_vertical_trajectory() + if trajectory_type == "Тип 2 (дуга)": + trajectory = set_step_trajectory() + if trajectory_type == "Тип 3 (ломаная)": + st.markdown('Добавляйте точки для построения траектории. Слайдеры задают положение следующей точки.') + trajectory = user_trajectory(st.session_state.workspace.bounds[0],st.session_state.workspace.bounds[1],initial_point=np.array([0,-0.4])*st.session_state.scale) + if trajectory is not None: + trajectory = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(trajectory,initial_point=np.array([0,-0.4])*st.session_state.scale)) + + if trajectory_type is not None and (trajectory_type != "Тип 3 (ломаная)" or (trajectory_type == "Тип 3 (ломаная)" and len(st.session_state.trajectory_history)>1)): + st.button(label="Симуляция движения по траектории", key="run_simulation", + on_click=run_simulation) + with st.form(key="rewards"): + cr = st.form_submit_button( + "Рассчитать значения выбранных критериев", type='primary') + st.header("Критерии") + reward_mask = [] + for key, reward in reward_dict.items(): + reward_mask.append(st.checkbox( + label=reward_description[key][0], value=False, help=reward_description[key][1])) + + if trajectory is not None: + st.markdown("Траектория отображается на графе и визуализации механизма в виде зелёной линии.") + col_1, col_2 = st.columns([0.7, 0.3], gap="medium") + with col_1: + draw_joint_point_widjet(graph, labels=2, draw_legend=True, draw_lines=True) + plt.gcf().set_size_inches(6, 6) + if trajectory is not None: + # plt.plot(trajectory[50:, 0], trajectory[50:, 2], 'green', markersize=2) + plt.plot(trajectory[:, 0], trajectory[:, 2], 'green', markersize=2) + plt.legend(loc="lower left", bbox_to_anchor=(0, 1.02)) + plt.text(0,0.95,'Масса механизма: '+f"{st.session_state.mass:.3f}", transform=plt.gca().transAxes, fontsize=12) + st.pyplot(plt.gcf(), clear_figure=True) + with col_2: + st.text("\n ") + + if st.button(label="Обновить визуализацию механизма") or st.session_state.run_simulation_flag: + send_robot_to_visualizer(st.session_state.fixed_robot_vis, user_visualizer) + if trajectory is not None: + add_trajectory_to_vis(user_visualizer, trajectory[50:]) + + components.iframe(user_vis_url, width=400, + height=400, scrolling=True) + + if trajectory_type is not None and (trajectory_type != "Тип 3 (ломаная)" or (trajectory_type == "Тип 3 (ломаная)" and len(st.session_state.trajectory_history)>1)): + if st.session_state.run_simulation_flag or cr: + calculate_and_display_rewards(trajectory, reward_mask) + + with open(create_file(graph, USER_KEY), "rb") as file: + st.download_button( + "Скачать URDF описание робота", + data=file, + file_name="robot_forw_description.zip", + mime="robot/urdf", + ) + st.markdown("""Вы можете скачать URDF модель полученного механизма для дальнейшего использования. Данный виджет служит для первичной оценки кинематических структур, вы можете использовать редакторы URDF для более точной настройки параметров и физические симуляторы для имитационного моделирования.""") + with st.sidebar: + st.button(label="Посмотреть подробное описание критериев", key="show_reward_description",on_click=lambda: st.session_state.__setitem__('stage', 'reward_description')) + + if st.session_state.run_simulation_flag: + robot_move_visualization(st.session_state.fixed_robot_vis, trajectory,user_visualizer) + +def return_to_workspace(): + st.session_state.stage = 'workspace_visualization' + st.session_state.trajectory = None + st.session_state.trajectory_history = [] + +if st.session_state.stage == 'reward_description': + st.button(label="Вернуться к расчёту критериев", key="return_to_criteria_calculation",on_click=return_to_workspace,type='primary') + st.markdown(MD_REWARD_DESCRIPTION) diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_forward_v3.py b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_forward_v3.py new file mode 100644 index 00000000..ecc3ce1e --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_forward_v3.py @@ -0,0 +1,397 @@ +import time +from copy import deepcopy +from pathlib import Path +import matplotlib.pyplot as plt +import numpy as np +import pinocchio as pin +import streamlit as st +import streamlit.components.v1 as components + + +from forward_init import add_trajectory_to_vis, build_constant_objects, get_russian_reward_description +from streamlit_widget_auxiliary import get_visualizer, send_graph_to_visualizer + +from auto_robot_design.description.builder import jps_graph2pinocchio_robot_3d_constraints +from auto_robot_design.description.mesh_builder.mesh_builder import ( + jps_graph2pinocchio_meshes_robot) +from auto_robot_design.description.utils import draw_joint_point +from auto_robot_design.generator.topologies.bounds_preset import \ + get_preset_by_index_with_bounds +from auto_robot_design.motion_planning.bfs_ws import ( + BreadthFirstSearchPlanner, Workspace) +from auto_robot_design.motion_planning.trajectory_ik_manager import \ + TrajectoryIKManager +from auto_robot_design.pinokla.default_traj import ( + add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, + create_simple_step_trajectory, get_vertical_trajectory) +from auto_robot_design.utils.configs import get_standard_builder, get_mesh_builder, get_standard_crag, get_standard_rewards +# build and cache constant objects +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, MIT_CHEETAH_PARAMS_DICT +from auto_robot_design.optimization.rewards.reward_base import NotReacablePoints +from auto_robot_design.generator.topologies.graph_manager_2l import scale_graph_manager, scale_jp_graph, plot_one_jp_bounds + + +graph_managers, optimization_builder, _, _, crag, reward_dict = build_constant_objects() +reward_description = get_russian_reward_description() + + +st.title("Расчёт характеристик рычажных механизмов") +# create gm variable that will be used to store the current graph manager and set it to be update for a session +if 'gm' not in st.session_state: + # the session variable for chosen topology, it gets a value after topology confirmation button is clicked + st.session_state.stage = 'topology_choice' + st.session_state.run_simulation_flag = False + + +def confirm_topology(): + st.session_state.stage = 'joint_point_choice' + st.session_state.gm = deepcopy(graph_managers[st.session_state.topology_choice]) + st.session_state.gm.set_mutation_ranges() + st.session_state.current_gm = st.session_state.gm + st.session_state.jp_positions = st.session_state.gm.generate_central_from_mutation_range() + st.session_state.slider_constants = deepcopy(st.session_state.jp_positions) + st.session_state.scale = 1 + + +# the radio button and confirm button are only visible until the topology is selected +if st.session_state.stage == 'topology_choice': + st.markdown("""В данном сценарии предлагается выбрать одну из девяти структур рычажных механизмов и задать положение сочленений кинематической схемы. +После этого будет рассчитано рабочее пространство кинематической схемы и предложены на выбор критерии, которые можно для неё рассчитать. + +Первый шаг - выбор структуры механизма, выберите структуру при помощи кнопок на боковой панели. Для каждой структуры визуализируется пример графа и механизма.""") + with st.sidebar: + topology_choice = st.radio(label="Выбор структуры рычажного механизма:", + options=graph_managers.keys(), index=0, key='topology_choice') + st.button(label='Подтвердить выбор структуры', key='confirm_topology', + on_click=confirm_topology) + + st.markdown( + """Для управления инерциальными характеристиками механизма можно задать плотность и сечение элементов конструкции.""") + density = st.number_input(label="Плотность [кг/м^3]", min_value=0.01, max_value=None, + value=MIT_CHEETAH_PARAMS_DICT["density"], step=10.0, key='density') + thickness = st.number_input(label="Толщина [м]", min_value=0.01, max_value=None, + value=MIT_CHEETAH_PARAMS_DICT["thickness"], step=0.01, key='thickness') + st.session_state.visualization_builder = get_mesh_builder(manipulation=True, thickness=thickness, density=density) + st.session_state.gm = graph_managers[st.session_state.topology_choice] + gm = st.session_state.gm + values = gm.generate_central_from_mutation_range() + graph = st.session_state.gm.get_graph(values) + send_graph_to_visualizer(graph, st.session_state.visualization_builder) + col_1, col_2 = st.columns([0.7, 0.3], gap="medium") + with col_1: + st.markdown("Граф выбранной структуры:") + draw_joint_point(graph, labels=2, draw_lines=True) + plt.gcf().set_size_inches(4, 4) + st.pyplot(plt.gcf(), clear_figure=True) + with col_2: + st.markdown("Визуализация мехнизма:") + components.iframe(get_visualizer(st.session_state.visualization_builder).viewer.url(), width=400, + height=400, scrolling=True) + st.session_state.optimization_builder = get_standard_builder(thickness, density) + +from auto_robot_design.optimization.rewards.inertia_rewards import MassReward +from auto_robot_design.pinokla.criterion_math import calculate_mass +def evaluate_construction(tolerance): + """Calculate the workspace of the robot and display it""" + st.session_state.stage = 'workspace_visualization' + st.session_state.slider_constants = deepcopy(st.session_state.jp_positions) + gm = st.session_state.current_gm + graph = gm.graph + fixed_robot, free_robot= jps_graph2pinocchio_robot_3d_constraints( + graph, builder=st.session_state.optimization_builder) + size_box_bound = np.array([0.5, 0.42])*st.session_state.scale + center_bound = np.array([0, -0.21])*st.session_state.scale + bounds = np.array( + [ + [-size_box_bound[0] / 2 - 0.001, size_box_bound[0] / 2], + [-size_box_bound[1] / 2, size_box_bound[1] / 2], + ] + ) + bounds[0, :] += center_bound[0] + bounds[1, :] += center_bound[1] + start_pos = np.array([0, -0.4])*st.session_state.scale + q = np.zeros(fixed_robot.model.nq) + workspace_obj = Workspace(fixed_robot, bounds, np.array([0.01*st.session_state.scale, 0.01*st.session_state.scale])) + + # tolerance = [0.004, 400] + ws_bfs = BreadthFirstSearchPlanner( + workspace_obj, 0, dexterous_tolerance=tolerance) + workspace = ws_bfs.find_workspace(start_pos, q) + st.session_state.workspace = workspace + st.session_state.mass = calculate_mass(fixed_robot) + + +def slider_change(): + st.session_state.slider_constants = deepcopy(st.session_state.jp_positions) + + +def scale_change(): + graph_scale = st.session_state.scaler/st.session_state.scale + st.session_state.scale = st.session_state.scaler + tmp = deepcopy(st.session_state.jp_positions.copy()) + st.session_state.jp_positions = [i*graph_scale for i in tmp] + st.session_state.slider_constants = deepcopy(st.session_state.jp_positions) + current_gm = deepcopy(st.session_state.gm) + current_gm = scale_graph_manager(current_gm, st.session_state.scale) + current_gm.set_mutation_ranges() + st.session_state.current_gm = current_gm + + +# choose the mechanism for optimization +if st.session_state.stage == 'joint_point_choice': + st.write("""Установите необходимые положения для координат центров сочленений. +Каждое сочленение выбирается отдельно при помощи кнопок и слайдеров на боковой панели. +Если для сочленения нет слайдеров, то данное сочленение в соответствующей структуре является неизменяемым.""") + st.markdown("""Каждое сочленение относится к одному из четырёх типов: + 1. Неподвижное сочленение - неизменяемое положение. + 2. Cочленение в абсолютных координатах - положение задаётся в абсолютной системе координат в метрах. + 3. Сочленение в относительных координатах - положение задаётся относительно другого сочленения в метрах. + 4. Сочленени задаваемое относительно звена - положение задаётся относительно центра звена в процентах от длины звена. + Для каждого сочленения на боковой панели указан его тип.""") + gm = st.session_state.current_gm + mut_ranges = gm.mutation_ranges + graph = gm.graph + labels = {n: i for i, n in enumerate(graph.nodes())} + with st.sidebar: + st.button(label='Вернуться к выбору топологии', key='return_to_topology_choice', + on_click=lambda: st.session_state.__setitem__('stage', 'topology_choice')) + with st.sidebar: + st.header('Выбор положений сочленений') + jp_label = st.radio(label='Сочленение', options=labels.values( + ), index=0, key='joint_point_choice', horizontal=True, on_change=slider_change) + jp = list(labels.keys())[jp_label] + if st.session_state.gm.generator_dict[list(labels.keys())[jp_label]].mutation_type.value == 1: + if None in st.session_state.gm.generator_dict[list(labels.keys())[jp_label]].freeze_pos: + st.write("Тип сочленения: Сочленение в абсолютных координатах") + else: + st.write("Тип сочленения: Неподвижное сочленение") + if st.session_state.gm.generator_dict[list(labels.keys())[jp_label]].mutation_type.value == 2: + st.write("Тип сочленения: Сочленение в относительных координатах") + st.write("координаты относительно сочленения: "+str( + labels[st.session_state.gm.generator_dict[list(labels.keys())[jp_label]].relative_to])) + if st.session_state.gm.generator_dict[list(labels.keys())[jp_label]].mutation_type.value == 3: + st.write("Тип сочленения: Сочленение задаваемое относительно звена") + st.write("координаты относительно звена: "+str(labels[st.session_state.gm.generator_dict[list(labels.keys())[ + jp_label]].relative_to[0]])+'->'+str(labels[st.session_state.gm.generator_dict[list(labels.keys())[jp_label]].relative_to[1]])) + + chosen_range = gm.generator_dict[list(labels.keys())[jp_label]].mutation_range + for i, tpl in enumerate(mut_ranges.items()): + key, value = tpl + if key[0] == list(labels.keys())[jp_label]: + slider = st.slider( + label=str(labels[key[0]])+'_'+key[1], min_value=value[0], max_value=value[1], value=st.session_state.slider_constants[i], + key="slider_"+str(labels[key[0]])+'_'+key[1]) + st.session_state.jp_positions[i] = slider + lower = 0 + upper = np.inf + # lower_toggle = st.toggle(label='Задать нижний предел манипулируемости', value = False,key='lower_toggle') + # if lower_toggle: + # lower = st.slider(label="нижний предел манипулируемости",min_value=0.0001, max_value=0.001,value=0.0001,step=0.0001,key='lower', format="%f") + # upper_toggle = st.toggle(label = 'Задать верхний предел манипулируемости', value = False, key='upper_toggle') + # if upper_toggle: + # upper = st.slider(label="верхний предел манипулируемости",min_value=10, max_value=100,value=100,step=10, key='upper') + st.markdown("""Высоту механизма можно настроить при помощи изменения общего масштаба механизма.""") + st.number_input(label="Масштаб", min_value=0.1, max_value=None,value=1.0, step=0.1, key='scaler', on_change=scale_change) + with st.sidebar: + + st.button(label="Рассчитать рабочее пространство", + on_click=evaluate_construction, key="get_workspace", args=[[lower, upper]]) + # draw the graph + graph = gm.get_graph(st.session_state.jp_positions) + send_graph_to_visualizer(graph, st.session_state.visualization_builder) + draw_joint_point(graph, labels=1, draw_lines=True) + plot_one_jp_bounds(gm, jp.name) + + plt.gcf().set_size_inches(4, 4) + st.pyplot(plt.gcf(), clear_figure=True) + # link lengths calculations + with st.sidebar: + for edge in graph.edges(): + vector = edge[0].r - edge[1].r + st.write( + f"Ребро {labels[edge[0]]}->{labels[edge[1]]} имеет длину {np.linalg.norm(vector):.3f} метров") + + +def to_trajectory_choice(): + st.session_state.stage = 'trajectory_choice' + + +def run_simulation(): + st.session_state.run_simulation_flag = True + + +def calculate_and_display_rewards(trajectory, reward_mask): + gm = st.session_state.current_gm + fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints( + gm.graph, st.session_state.optimization_builder) + point_criteria_vector, trajectory_criteria, res_dict_fixed = crag.get_criteria_data( + fixed_robot, free_robot, trajectory, viz=None) + some_text = """Критерии представлены в виде поточечных значений вдоль траектории.""" + st.text(some_text) + col_1, col_2 = st.columns([0.5, 0.5], gap="small") + counter = 0 + try: + for i, reward in enumerate(reward_dict.items()): + if counter % 2 == 0: + col = col_1 + else: + col = col_2 + with col: + if reward_mask[i]: + + calculate_result = reward[1].calculate( + point_criteria_vector, trajectory_criteria, res_dict_fixed, Actuator=st.session_state.optimization_builder.actuator['default']) + # st.text(reward_description[reward[0]][0]+":\n " ) + reward_vector = np.array(calculate_result[1]) + # plt.gcf().set_figheight(3) + # plt.gcf().set_figwidth(3) + plt.plot(reward_vector) + plt.xticks(fontsize=10) + plt.yticks(fontsize=10) + plt.xlabel('шаг траектории', fontsize=12) + plt.ylabel('значение критерия на шаге', fontsize=12) + plt.title(reward_description[reward[0]][0], fontsize=12) + plt.legend( + [f'Итоговое значение критерия: {calculate_result[0]:.2f}'], fontsize=12) + st.pyplot(plt.gcf(), clear_figure=True, + use_container_width=True) + counter += 1 + except NotReacablePoints: + st.text_area( + label="", value="Траектория содержит точки за пределами рабочего пространства. Для рассчёта критериев укажите траекторию внутри рабочей области.") + + + +def create_file(graph): + robot_urdf_str = jps_graph2pinocchio_robot_3d_constraints( + graph, st.session_state.optimization_builder, True) + path_to_robots = Path().parent.absolute().joinpath("robots") + path_to_urdf = path_to_robots / "robot_forward.urdf" + return robot_urdf_str + + +if st.session_state.stage == 'workspace_visualization': + st.markdown("""Рабочее пространство изображено совместно с графовым представлением механизма. +:large_yellow_square: Жёлтая область - рабочее пространство механизма. +:large_red_square: Красные область - недостижимые точки. +Для выбранной кинематической схемы можно рассчитать набор критериев. Для успешного вычисления критериев необходимо задать желаемую траекторию лежащую внутри рабочего пространства механизма.""") + st.text("Выберите траекторию и критерии при помощи конопок на боковой панели:") + gm = st.session_state.current_gm + graph = gm.graph + # points = st.session_state.points + points = st.session_state.workspace.points + workspace = st.session_state.workspace + x = points[:, 0] + y = points[:, 1] + values = workspace.reachabilty_mask.flatten() + x_0 = x[values == 0] + y_0 = y[values == 0] + x_1 = x[values == 1] + y_1 = y[values == 1] + # # Plot the points + plt.plot(x_0, y_0, "sr", markersize=3, label = "недостижимые точки",zorder=1) + plt.legend() + plt.plot(x_1, y_1, "sy", markersize=3, label = "достижимые точки",zorder=1) + plt.legend() + # trajectory setting script + trajectory = None + with st.sidebar: + st.button(label="Вернуться к выбору механизма", key="return_to_joint_point_choice", + on_click=lambda: st.session_state.__setitem__('stage', 'joint_point_choice')) + trajectory_type = st.radio(label='Выберите тип траектории', options=[ + "вертикальная", "шаг"], index=None, key="trajectory_type") + if trajectory_type == "вертикальная": + height = st.slider( + label="высота", min_value=0.02*st.session_state.scale, max_value=0.3*st.session_state.scale, value=0.1*st.session_state.scale) + x = st.slider(label="x", min_value=-0.3*st.session_state.scale, + max_value=0.3*st.session_state.scale, value=0.0*st.session_state.scale) + z = st.slider(label="z", min_value=-0.4*st.session_state.scale, + max_value=-0.2*st.session_state.scale, value=-0.3*st.session_state.scale) + trajectory = convert_x_y_to_6d_traj_xz( + *add_auxilary_points_to_trajectory(get_vertical_trajectory(z, height, x, 100),initial_point=np.array([0,-0.4])*st.session_state.scale)) + if trajectory_type == "шаг": + start_x = st.slider( + label="начало_x", min_value=-0.3*st.session_state.scale, max_value=0.3*st.session_state.scale, value=-0.14*st.session_state.scale) + start_z = st.slider( + label="начало_z", min_value=-0.4*st.session_state.scale, max_value=-0.2*st.session_state.scale, value=-0.34*st.session_state.scale) + height = st.slider( + label="высота", min_value=0.02*st.session_state.scale, max_value=0.3*st.session_state.scale, value=0.1*st.session_state.scale) + width = st.slider(label="width", min_value=0.1*st.session_state.scale, + max_value=0.6*st.session_state.scale, value=0.2*st.session_state.scale) + trajectory = convert_x_y_to_6d_traj_xz( + *add_auxilary_points_to_trajectory( + create_simple_step_trajectory( + starting_point=[start_x, start_z], + step_height=height, + step_width=width, + n_points=100, + ),initial_point=np.array([0,-0.4])*st.session_state.scale + ) + ) + if trajectory_type is not None: + st.button(label="Симуляция движения по траектории", key="run_simulation", + on_click=run_simulation) + with st.form(key="rewards"): + st.header("Критерии") + reward_mask = [] + for key, reward in reward_dict.items(): + reward_mask.append(st.checkbox( + label=reward_description[key][0], value=False, help=reward_description[key][1])) + cr = st.form_submit_button( + "Рассчитать значения выбранных критериев") + + col_1, col_2 = st.columns([0.7, 0.3], gap="medium") + with col_1: + draw_joint_point(graph, labels=2, draw_legend=True, draw_lines=True) + plt.gcf().set_size_inches(6, 6) + if trajectory_type is not None: + # plt.plot(trajectory[50:, 0], trajectory[50:, 2], 'green', markersize=2) + plt.plot(trajectory[:, 0], trajectory[:, 2], 'green', markersize=2) + plt.legend(loc="lower left", bbox_to_anchor=(0, 1.02)) + plt.text(0,0.95,'Масса механизма: '+f"{st.session_state.mass:.3f}", transform=plt.gca().transAxes, fontsize=12) + st.pyplot(plt.gcf(), clear_figure=True) + with col_2: + st.text("\n ") + st.text("\n ") + st.text("\n ") + st.text("\n ") + st.text("\n ") + st.text("\n ") + st.text("\n ") + if trajectory_type is not None: + add_trajectory_to_vis(get_visualizer( + st.session_state.visualization_builder), trajectory[50:]) + components.iframe(get_visualizer(st.session_state.visualization_builder).viewer.url(), width=400, + height=400, scrolling=True) + + if trajectory_type is not None: + if st.session_state.run_simulation_flag or cr: + calculate_and_display_rewards(trajectory, reward_mask) + + st.download_button( + "Скачать URDF описание робота", + data=create_file(graph), + file_name="robot_forward.urdf", + mime="robot/urdf", + ) + st.markdown(r"""||.j4||Вы можете скачать URDF модель полученного механизма для дальнейшего использования. Данный виджет служит для первичной оценки кинематических структур, вы можете использовать редакторы URDF для более точной настройки параметров и физические симуляторы для имитационного модеирования.""") + # st.button(label="Посмотреть подробное описание критериев", key="show_reward_description",on_click=lambda: st.session_state.__setitem__('stage', 'reward_description')) + if st.session_state.run_simulation_flag: + ik_manager = TrajectoryIKManager() + fixed_robot, _ = jps_graph2pinocchio_meshes_robot( + graph, st.session_state.visualization_builder) + ik_manager.register_model( + fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model + ) + ik_manager.set_solver("Closed_Loop_PI") + _ = ik_manager.follow_trajectory( + trajectory, viz=get_visualizer(st.session_state.visualization_builder) + ) + time.sleep(1) + get_visualizer(st.session_state.visualization_builder).display( + pin.neutral(fixed_robot.model)) + st.session_state.run_simulation_flag = False + +# if st.session_state.stage == 'reward_description': +# st.button(label="Вернуться к расчёту критериев", key="return_to_criteria_calculation",on_click=lambda: st.session_state.__setitem__('stage', 'workspace_visualization')) +# # st.markdown(MD_REWARD_DESCRIPTION) \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_inverse.py b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_inverse.py new file mode 100644 index 00000000..e4c98208 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_inverse.py @@ -0,0 +1,734 @@ +import time +from copy import deepcopy +from pathlib import Path +import zipfile +import os +import shutil +import matplotlib.pyplot as plt +import numpy as np +import pinocchio as pin +import streamlit as st +import streamlit.components.v1 as components +from apps.widjetdemo.streamlit_widgets.reward_descriptions.md_rawards import MD_REWARD_DESCRIPTION +from forward_init import ( + add_trajectory_to_vis, + build_constant_objects, + get_russian_reward_description, +) +from matplotlib.patches import Circle +from streamlit_widget_auxiliary import get_visualizer, send_graph_to_visualizer + +from auto_robot_design.description.builder import ( + jps_graph2pinocchio_robot_3d_constraints, +) +from auto_robot_design.description.mesh_builder.mesh_builder import ( + jps_graph2pinocchio_meshes_robot, +) +from auto_robot_design.description.utils import draw_joint_point, draw_joint_point_widjet +from auto_robot_design.generator.topologies.bounds_preset import ( + get_preset_by_index_with_bounds, +) +from auto_robot_design.generator.topologies.graph_manager_2l import ( + plot_2d_bounds, + plot_one_jp_bounds, +) +from auto_robot_design.motion_planning.bfs_ws import Workspace +from auto_robot_design.motion_planning.dataset_generator import set_up_reward_manager +from auto_robot_design.motion_planning.many_dataset_api import ManyDatasetAPI +from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager +from auto_robot_design.pinokla.default_traj import ( + add_auxilary_points_to_trajectory, + convert_x_y_to_6d_traj_xz, +) +from auto_robot_design.user_interface.check_in_ellips import ( + Ellipse, + SnakePathFinder, + check_points_in_ellips, +) + +# constant objects +( + graph_managers, + optimization_builder, + manipulation_builder, + suspension_builder, + crag, + reward_dict, +) = build_constant_objects() +reward_description = get_russian_reward_description() +general_reward_keys = [ + "actuated_inertia_matrix", + "z_imf", + "manipulability", + "min_manipulability", + "min_force", + "dexterity", + "min_acceleration", + "mean_heavy_lifting", + "min_heavy_lifting", +] +suspension_reward_keys = [ + "z_imf", + "min_acceleration", + "mean_heavy_lifting", + "min_heavy_lifting", +] +manipulator_reward_keys = [ + "manipulability", + "min_manipulability", + "min_force", + "dexterity", + "min_acceleration", +] +USER_KEY = 0 +WORKSPACE_COLORS_VIZUALIZATION_RED = "#dd2e44" +WORKSPACE_COLORS_VIZUALIZATION_YELLOW = "#fdcb58" +dataset_paths = [Path("./datasets/top_0"), Path("./datasets/top_1"),Path("./datasets/top_2"), Path("./datasets/top_3"),Path("./datasets/top_4"),Path("./datasets/top_5"),Path("./datasets/top_6"), Path("./datasets/top_7"), Path("./datasets/top_8")] +user_visualizer, user_vis_url = get_visualizer(USER_KEY) + +st.title("Генерация механизмов по заданной рабочей области") +# starting stage +if not hasattr(st.session_state, "stage"): + st.session_state.stage = "class_choice" + st.session_state.gm = get_preset_by_index_with_bounds(-1) + st.session_state.run_simulation_flag = False + st.session_state["slider_version"] = 1 + path_to_robots = Path().parent.absolute().joinpath(f"robots/user_{USER_KEY}") + if os.path.exists(path_to_robots): + shutil.rmtree(path_to_robots) + +def type_choice(t): + if t == "free": + st.session_state.type = "free" + st.session_state.visualization_builder = optimization_builder + st.session_state.reward_keys = general_reward_keys + elif t == "suspension": + st.session_state.type = "suspension" + st.session_state.visualization_builder = suspension_builder + st.session_state.reward_keys = suspension_reward_keys + elif t == "manipulator": + st.session_state.type = "manipulator" + st.session_state.visualization_builder = manipulation_builder + st.session_state.reward_keys = manipulator_reward_keys + st.session_state.stage = "topology_choice" + + +# chose the class of optimization +if st.session_state.stage == "class_choice": + some_text = r"""В данном сценарии происходит генерация механизмов по заданной рабочей области. Предлагается выбрать один из трёх типов задач для синтеза механизма: + +- Абстрактный механизм; +- Подвеска колёсного робота; +- Робот-манипулятор. + +Для каждого типа подготовлен свой набор критериев, используемых при генерации механизма и модель визуализации.""" + st.markdown(some_text) + col_1, col_2, col_3 = st.columns(3, gap="medium", vertical_alignment= 'bottom') + with col_1: + st.button( + label="Абстрактный механизм", + key="free", + on_click=type_choice, + args=["free"], + ) + st.image("./apps/kin_struct.png") + with col_2: + st.button( + label="Подвеска", + key="suspension", + on_click=type_choice, + args=["suspension"], + ) + st.image("./apps/hybrid_loco.png") + with col_3: + st.button( + label="Манипулятор", + key="manipulator", + on_click=type_choice, + args=["manipulator"], + ) + st.image("./apps/manipulator.png") + + +def confirm_topology(topology_list, topology_mask): + """Confirm the selected topology and move to the next stage.""" + # if only one topology is chosen, there is an option to choose the optimization ranges + if len(topology_list) == 1: + st.session_state.stage = "jp_ranges" + st.session_state.gm = topology_list[0][1] + graph = st.session_state.gm.get_graph(st.session_state.gm.generate_central_from_mutation_range()) + _,_=jps_graph2pinocchio_meshes_robot(graph, st.session_state.visualization_builder) + st.session_state.gm_clone = deepcopy(st.session_state.gm) + st.session_state.current_generator_dict = deepcopy( + st.session_state.gm.generator_dict + ) + # st.session_state.gm_clone = deepcopy(st.session_state.gm) + st.session_state.datasets = [ + x for i,x in enumerate(dataset_paths) if topology_mask[i] is True + ] + else: + for _, gm in topology_list: + graph = gm.get_graph(gm.generate_central_from_mutation_range()) + _,_=jps_graph2pinocchio_meshes_robot(graph, st.session_state.visualization_builder) + st.session_state.gm_clone = deepcopy(st.session_state.gm) + st.session_state.stage = "ellipsoid" + st.session_state.datasets = [ + x for i, x in enumerate(dataset_paths) if topology_mask[i] is True + ] + # create a deep copy of the graph manager for further updates + st.session_state.topology_list = topology_list + st.session_state.topology_mask = topology_mask + + +if st.session_state.stage == "topology_choice": + some_text = """Предлагается выбор из девяти топологических структур механизмов. +В процессе генерации будут учитываться только выбранные топологические структуры. +Для визуализации выбора предлагаются примеры механизмов каждой структуры.""" + st.text(some_text) + topology_name = lambda x: f"Топология {x}" + with st.sidebar: + st.header("Выбор структуры") + st.write( + "При выборе только одной структуры доступна опция выбора границ для параметров генерации" + ) + topology_mask = [0]*9 + for i, gm in enumerate(graph_managers.items()): + if i == 0: + topology_mask[i] = st.checkbox(label=topology_name(i), value=True) + else: + topology_mask[i]=st.checkbox(label=topology_name(i), value=False) + chosen_topology_list = [ + x for i, x in enumerate(graph_managers.items()) if topology_mask[i] is True + ] + + if sum(topology_mask) > 0: + st.button( + label="Подтвердить выбор", + key="confirm_topology", + on_click=confirm_topology, + args=[chosen_topology_list, topology_mask], + type="primary" + ) + + plt.figure(figsize=(10, 10)) + for i in range(9): + if i < len(chosen_topology_list): + gm = chosen_topology_list[i][1] + plt.subplot(3, 3, i + 1) + gm.get_graph(gm.generate_central_from_mutation_range()) + draw_joint_point_widjet(gm.graph, labels=2, draw_legend=False) + plt.title(topology_name(chosen_topology_list[i][0][-1])) + else: + plt.subplot(3, 3, i + 1) + plt.axis("off") + + st.pyplot(plt.gcf(), clear_figure=True, use_container_width=True) + + +def confirm_ranges(): + """Confirm the selected ranges and move to the next stage.""" + st.session_state.stage = "ellipsoid" + gm_clone = st.session_state.gm_clone + for key, value in gm_clone.generator_dict.items(): + for i, values in enumerate(value.mutation_range): + if values is None: + continue + if values[0] == values[1]: + current_fp = gm.generator_dict[key].freeze_pos + current_fp[i] = values[0] + gm_clone.freeze_joint(key, current_fp) + + gm_clone.set_mutation_ranges() + + +def return_to_topology(): + """Return to the topology choice stage.""" + st.session_state.stage = "topology_choice" + + +def joint_choice(): + st.session_state.current_generator_dict = deepcopy( + st.session_state.gm_clone.generator_dict + ) + + +# second stage +if st.session_state.stage == "jp_ranges": + axis = ["x", "y", "z"] + # form for optimization ranges. All changes affects the gm_clone and it should be used for optimization + # initial nodes + initial_generator_info = st.session_state.gm.generator_dict + initial_mutation_ranges = st.session_state.gm.mutation_ranges + gm = st.session_state.gm_clone + generator_info = gm.generator_dict + graph = gm.graph + labels = {n: i for i, n in enumerate(graph.nodes())} + with st.sidebar: + # return button + st.button( + label="Назад к выбору топологии", + key="return_to_topology", + on_click=return_to_topology, + ) + + # set of joints that have mutation range in initial generator and get current jp and its index on the graph picture + + mutable_jps = [key[0] for key in initial_mutation_ranges.keys()] + options = [(jp, idx) for jp, idx in labels.items() if jp in mutable_jps] + current_jp = st.radio( + label="Выбор сочленения для установки границ", + options=options, + index=0, + format_func=lambda x: x[1], + key="joint_choice", + on_change=joint_choice, + ) + # we can get current jp generator info in the cloned gm which contains all the changes + current_generator_info = generator_info[current_jp[0]] + for i, mut_range in enumerate(current_generator_info.mutation_range): + if mut_range is None: + continue + # we can get mutation range from previous activation of the corresponding radio button + left_value, right_value = st.session_state.current_generator_dict[ + current_jp[0] + ].mutation_range[i] + name = f"{labels[current_jp[0]]}_{axis[i]}" + toggle_value = not left_value == right_value + current_on = st.toggle(f"Отключить оптимизацию " + name, value=toggle_value) + init_values = initial_generator_info[current_jp[0]].mutation_range[i] + if current_on: + mut_range = st.slider( + label=name, + min_value=init_values[0], + max_value=init_values[1], + value=(left_value, right_value), + ) + generator_info[current_jp[0]].mutation_range[i] = mut_range + else: + current_value = st.number_input( + label="Insert a value", + value=(left_value + right_value) / 2, + key=name, + min_value=init_values[0], + max_value=init_values[1], + ) + # if current_value < init_values[0]: + # current_value = init_values[0] + # if current_value > init_values[1]: + # current_value = init_values[1] + mut_range = (current_value, current_value) + generator_info[current_jp[0]].mutation_range[i] = mut_range + + st.button( + label="подтвердить диапазоны оптимизации", + key="ranges_confirm", + on_click=confirm_ranges, + ) + # here should be some kind of visualization for ranges + gm.set_mutation_ranges() + plot_one_jp_bounds(gm, current_jp[0].name) + center = gm.generate_central_from_mutation_range() + graph = gm.get_graph(center) + # here I can insert the visualization for jp bounds + + draw_joint_point_widjet(graph, labels=1, draw_legend=True, draw_lines=True) + # here gm is a clone + + # plot_2d_bounds(gm) + st.pyplot(plt.gcf(), clear_figure=True) + # this way we set ranges after each step, but without freezing joints + some_text = """Диапазоны оптимизации определяют границы пространства поиска механизмов в процессе +оптимизации. x - горизонтальные координаты, z - вертикальные координаты. +Отключенные координаты не будут участвовать в оптимизации и будут иметь постоянные +значения во всех механизмах.""" + st.text(some_text) + # st.text("x - горизонтальные координаты, z - вертикальные координаты") + + +def reward_choice(): + st.session_state.stage = "rewards" + +def reset_sliders(): + st.session_state["slider_version"] = st.session_state["slider_version"] + 1 + +if st.session_state.stage == "ellipsoid": + st.markdown("""Задайте необходимую рабочую область для генерации механизмов. + Рабочее пространство всех сгенерированных решений будет включать заданную область. + Область задаётся в виде эллипса, определяемого своим центром, радиусами и углом. + +:large_yellow_square: Желтая область - допустимая область для задния рабочего пространства. +:large_red_square: Красная область - желаемая область рабочего пространства.""") +# some_text = """Задайте необходимую рабочую область для генерации механизмов. +# Рабочее пространство всех сгенерированных решений будет включать заданную область. +# Область задаётся в виде эллипса, определяемого своим центром, радиусами и углом.""" + warning_text = """ + + + + + Warning Alert + + + + +
+ Внимаение! Граница эллипса выходит за область определения: \n + Пожалуйста, выберете параметры эллипса, входящий в область определения +
+ + + """ + with st.sidebar: + st.header("Выбор рабочего пространства") + with st.form(key="ellipse"): + x = st.slider( + label="х координата центра", min_value=-0.3, max_value=0.3, value=0.0, key=f"ellips_params_x_{st.session_state['slider_version']}" + ) + y = st.slider( + label="z координата центра", min_value=-0.4, max_value=-0.2, value=-0.33, key=f"ellips_params_y_{st.session_state['slider_version']}" + ) + x_rad = st.slider( + label="х радиус", min_value=0.02, max_value=0.3, value=0.06, key=f"ellips_params_x_rad_{st.session_state['slider_version']}" + ) + y_rad = st.slider( + label="z радиус", min_value=0.02, max_value=0.3, value=0.05, key=f"ellips_params_y_rad_{st.session_state['slider_version']}" + ) + angle = st.slider(label="наклон", min_value=0, max_value=180, value=33, key=f"ellips_angle_{st.session_state['slider_version']}") + st.form_submit_button(label="Задать рабочее пространство") + st.button( + label="Вернуть эллипс к начальным параметрам", key="back_ellipse", on_click=reset_sliders, + ) + st.session_state.ellipsoid_params = [x, y, x_rad, y_rad, angle] + ellipse = Ellipse(np.array([x, y]), np.deg2rad(angle), np.array([x_rad, y_rad])) + point_ellipse = ellipse.get_points() + + size_box_bound = np.array([0.5, 0.42]) + center_bound = np.array([0, -0.21]) + bounds = np.array( + [ + [-size_box_bound[0] / 2 - 0.001, size_box_bound[0] / 2], + [-size_box_bound[1] / 2, size_box_bound[1] / 2], + ] + ) + bounds[0, :] += center_bound[0] + bounds[1, :] += center_bound[1] + start_pos = np.array([0, -0.4]) + workspace_obj = Workspace(None, bounds, np.array([0.01, 0.01])) + points = workspace_obj.points + mask = check_points_in_ellips(points, ellipse, 0.02) + rev_mask = np.array(1 - mask, dtype="bool") + plt.figure(figsize=(10, 10)) + plt.scatter(points[rev_mask, :][:, 0], points[rev_mask, :][:, 1], s=2, marker="s", c=WORKSPACE_COLORS_VIZUALIZATION_RED) + plt.scatter(points[mask, :][:, 0], points[mask, :][:, 1], s=2, marker="s", c=WORKSPACE_COLORS_VIZUALIZATION_YELLOW) + + # plt.plot(point_ellipse[0, :], point_ellipse[1, :], "g", linewidth=1) + graph = st.session_state.gm.get_graph( + st.session_state.gm.generate_central_from_mutation_range() + ) + draw_joint_point(graph, labels=2, draw_legend=False, draw_lines=True, offset_lim=0.05) + plt.gcf().set_size_inches(4, 4) + st.pyplot(plt.gcf(), clear_figure=True) + + if not workspace_obj.point_in_bound(point_ellipse.T): + st.html(warning_text) + else: + with st.sidebar: + st.button( + label="Перейти к целевой функции", key="rewards", on_click=reward_choice, type="primary" + ) + + +def generate(): + st.session_state.stage = "generate" + + +if st.session_state.stage == "rewards": + some_text = """Укажите критерий оценки для отбора лучших механизмов. +Необходимо задать точку рассчёта критерия в рабочей области механизма. +Используйте боковую панель для установки точки расчёта.""" + st.text(some_text) + x, y, x_rad, y_rad, angle = st.session_state.ellipsoid_params + ellipse = Ellipse(np.array([x, y]), np.deg2rad(angle), np.array([x_rad, y_rad])) + point_ellipse = ellipse.get_points() + size_box_bound = np.array([0.5, 0.42]) + center_bound = np.array([0, -0.21]) + bounds = np.array( + [ + [-size_box_bound[0] / 2 - 0.001, size_box_bound[0] / 2], + [-size_box_bound[1] / 2, size_box_bound[1] / 2], + ] + ) + bounds[0, :] += center_bound[0] + bounds[1, :] += center_bound[1] + start_pos = np.array([0, -0.4]) + workspace_obj = Workspace(None, bounds, np.array([0.01, 0.01])) + st.session_state.ws = workspace_obj + points = workspace_obj.points + mask = check_points_in_ellips(points, ellipse, 0.02) + rev_mask = np.array(1 - mask, dtype="bool") + plt.figure(figsize=(10, 10)) + plt.scatter(points[rev_mask, :][:, 0], points[rev_mask, :][:, 1], s=2, marker="s", c=WORKSPACE_COLORS_VIZUALIZATION_RED) + plt.scatter(points[mask, :][:, 0], points[mask, :][:, 1], s=2, marker="s", c=WORKSPACE_COLORS_VIZUALIZATION_YELLOW) + # plt.plot(point_ellipse[0, :], point_ellipse[1, :], "g", linewidth=1) + with st.sidebar: + st.header("Выбор точки вычисления") + x_p = st.slider( + label="х координата", min_value=-0.25, max_value=0.25, value=0.0 + ) + y_p = st.slider( + label="z координата", min_value=-0.42, max_value=0.0, value=-0.3 + ) + if st.session_state.type == "free": + reward_keys = general_reward_keys + chosen_reward_idx = st.radio( + label="Выбор целевой функции", + options=range(len(reward_keys)), + index=0, + format_func=lambda x: reward_description[reward_keys[x]][0], + ) + st.session_state.chosen_reward = reward_dict[reward_keys[chosen_reward_idx]] + st.session_state.reward_name = reward_description[reward_keys[chosen_reward_idx]][0] + if st.session_state.type == 'suspension': + reward_keys = suspension_reward_keys + chosen_reward_idx = st.radio(label='Выбор целевой функции', options=range(len(reward_keys)), index=0, format_func=lambda x: reward_description[reward_keys[x]][0]) + st.session_state.chosen_reward = reward_dict[reward_keys[chosen_reward_idx]] + st.session_state.reward_name = reward_description[reward_keys[chosen_reward_idx]][0] + if st.session_state.type == "manipulator": + reward_keys = manipulator_reward_keys + chosen_reward_idx = st.radio(label='Выбор целевой функции', options=range(len(reward_keys)), index=0, format_func=lambda x: reward_description[reward_keys[x]][0]) + st.session_state.chosen_reward = reward_dict[reward_keys[chosen_reward_idx]] + st.session_state.reward_name = reward_description[reward_keys[chosen_reward_idx]][0] + st.button(label="Сгенерировать механизмы", key="generate", on_click=generate, type="primary") + st.session_state.point = [x_p, y_p] + + Drawing_colored_circle = Circle((x_p, y_p), radius=0.01, color="g") + plt.gca().add_artist(Drawing_colored_circle) + plt.gcf().set_size_inches(4, 4) + plt.gca().axes.set_aspect(1) + st.pyplot(plt.gcf(), clear_figure=True) + st.sidebar.button(label="Посмотреть подробное описание критериев", key="show_reward_description",on_click=lambda: st.session_state.__setitem__('stage', 'reward_description')) + +def show_results(): + st.session_state.stage = "results" + + +def reset(): + delattr(st.session_state, "stage") + + +if st.session_state.stage == "generate": + empt = st.empty() + st.text("Начался процесс генерации. Подождите пару минут...") + with empt: + st.image(str(Path("./apps/widjetdemo/mechanical-wolf-running.gif").absolute())) + dataset_api = ManyDatasetAPI(st.session_state.datasets) + + x, y, x_rad, y_rad, angle = st.session_state.ellipsoid_params + ellipse = Ellipse(np.array([x, y]), np.deg2rad(angle), np.array([x_rad, y_rad])) + index_list = dataset_api.get_indexes_cover_ellipse(ellipse) + print(len(index_list)) + des_point = np.array(st.session_state.point) + traj = np.array( + add_auxilary_points_to_trajectory(([des_point[0]], [des_point[1]])) + ).T + dataset = dataset_api.datasets[0] + graph = dataset.graph_manager.get_graph( + dataset.graph_manager.generate_random_from_mutation_range() + ) + robot, __ = jps_graph2pinocchio_robot_3d_constraints(graph, dataset.builder) + traj_6d = robot.motion_space.get_6d_traj(traj) + reward_manager = set_up_reward_manager(traj_6d, st.session_state.chosen_reward) + sorted_indexes = dataset_api.sorted_indexes_by_reward( + index_list, 10, reward_manager + ) + if len(sorted_indexes) == 0: + st.markdown( + """Для заданного рабочего пространства и топологий не удалось найти решений, рекомендуется изменить требуемую рабочую область и/или топологии""" + ) + st.button(label="Перезапуск сценария", on_click=reset) + else: + n = min(len(sorted_indexes), 10) + graphs = [] + for topology_idx, index, value in sorted_indexes[:n]: + gm = dataset_api.datasets[topology_idx].graph_manager + x = dataset_api.datasets[topology_idx].get_design_parameters_by_indexes( + [index] + ) + graph = gm.get_graph(x[0]) + graphs.append((deepcopy(graph),value)) + st.session_state.graphs = graphs + with empt: + st.button( + label="Результаты генерации", key="show_results", on_click=show_results + ) + + +def run_simulation(**kwargs): + st.session_state.run_simulation_flag = True + +def create_file(graph, user_key=0, id_robot=0): + path_to_robots = Path().parent.absolute().joinpath(f"robots/user_{user_key}") + if not os.path.exists(path_to_robots): + os.makedirs(path_to_robots) + zip_file_name = path_to_robots / f"robot_{id_robot}.zip" + if os.path.exists(zip_file_name): + return zip_file_name + robot_urdf_str, yaml_out = jps_graph2pinocchio_robot_3d_constraints(graph, optimization_builder, True) + path_to_urdf = path_to_robots / f"robot_{id_robot}.urdf" + path_to_yaml = path_to_robots / f"robot_{id_robot}.yaml" + with open(path_to_urdf, "w") as f: + f.write(robot_urdf_str) + with open(path_to_yaml, "w") as f: + f.write(yaml_out) + file_names = [f"robot_{id_robot}.urdf", f"robot_{id_robot}.yaml"] + with zipfile.ZipFile(zip_file_name, 'w') as zip_object: + # Add multiple files to the zip file + for file_name in file_names: + zip_object.write(path_to_robots / file_name, file_name) + return zip_file_name + + +if st.session_state.stage == "results": + description_text = r"""По заданной рабочей области и кртерию сгенерировано 10 механизмов. Механизмы ранжированные по убыванию значения критерия в указанной точке. + Для верификации механизма можно провизуализировать движение по рабочему пространству. На схеме механизма показан траектория движения по рабочей области. + +Вы можете скачать URDF модель полученного механизма для дальнейшего использования. Данный виджет служит для первичной генерации кинематических структур, +вы можете использовать редакторы URDF для детализации робота и физические симуляторы для имитационного модеирования. + """ + st.markdown(description_text) + vis_builder = st.session_state.visualization_builder + idx = st.select_slider( + label="Лучшие по заданному критерию механизмы:", + options=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], + value=1, + help="Перемещайте ползунок для выбора одного из 10 лучших дизайнов", + ) + graph = st.session_state.graphs[idx - 1][0] + reward = st.session_state.graphs[idx - 1][1] + st.text(f"Значение критерия '{st.session_state.reward_name}' для дизайна {reward:.2f}") + send_graph_to_visualizer(graph, user_visualizer, vis_builder) + create_file(graph, USER_KEY, id_robot=idx ) + col_1, col_2 = st.columns(2, gap="medium", vertical_alignment= 'center') + x, y, x_rad, y_rad, angle = st.session_state.ellipsoid_params + ellipse = Ellipse(np.array([x, y]), np.deg2rad(angle), np.array([x_rad, y_rad])) + points_on_ellps = ellipse.get_points(0.1).T + ws = st.session_state.ws + reach_ws_points = ws.points + mask_ws_n_ellps = check_points_in_ellips(reach_ws_points, ellipse, 0.1) + # plt.plot(points_on_ellps[:,0], points_on_ellps[:,1], "r", linewidth=3) + # plt.scatter(pts[:,0],pts[:,1]) + snake_finder = SnakePathFinder( + points_on_ellps[0], ellipse, coef_reg=np.prod(ws.resolution) + ) # max_len_btw_pts= np.linalg.norm(dataset.workspace.resolution), + traj = snake_finder.create_snake_traj(reach_ws_points[mask_ws_n_ellps, :]) + + final_trajectory = convert_x_y_to_6d_traj_xz( + *add_auxilary_points_to_trajectory((traj[:, 0], traj[:, 1])) + ) + + with col_1: + st.header("Cхема механизма") + draw_joint_point(graph, labels=2, draw_legend=False, draw_lines=True, offset_lim=0.05) + rev_mask = np.array(1 - mask_ws_n_ellps, dtype="bool") + # plt.plot(points_on_ellps[:, 0], points_on_ellps[:, 1], "g") + plt.scatter( + reach_ws_points[rev_mask, :][:, 0], reach_ws_points[rev_mask, :][:, 1], s=2, marker="s", + c=WORKSPACE_COLORS_VIZUALIZATION_RED + ) + plt.scatter( + reach_ws_points[mask_ws_n_ellps, :][:, 0], + reach_ws_points[mask_ws_n_ellps, :][:, 1], + marker="s", + c=WORKSPACE_COLORS_VIZUALIZATION_YELLOW + ) + plt.plot(traj[:, 0], traj[:, 1], "r") + Drawing_colored_circle = Circle(st.session_state.point, radius=0.01, color="r") + plt.gca().add_artist(Drawing_colored_circle) + plt.gcf().set_size_inches(7, 7) + st.pyplot(plt.gcf(), clear_figure=True) + with col_2: + st.header("Робот") + add_trajectory_to_vis(user_visualizer, final_trajectory, step_balls=1) + # add_trajectory_to_vis(get_visualizer(vis_builder, cam_pos=[0.09, 0.09, 0.09]), final_trajectory, step_balls=1, y_offset_balls=0.04) + components.iframe( + user_vis_url, + width=310, + height=310, + scrolling=True, + ) + st.button( + label="Визуализация движения", key="run_simulation", on_click=run_simulation + ) + # with open(path_to_urdf, "r") as f: + # st.download_button( + # "Скачать URDF описание робота", + # data=f, + # file_name="robot.urdf", + # mime="robot/urdf", + + # ) + with open(create_file(graph, USER_KEY, id_robot=idx), "rb") as file: + st.download_button( + "Скачать URDF описание робота", + data=file, + file_name="robot_inv_description.zip", + mime="robot/urdf", + ) + if st.session_state.type == "free": + if st.session_state.run_simulation_flag: + ik_manager = TrajectoryIKManager() + # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder) + fixed_robot, _ = jps_graph2pinocchio_robot_3d_constraints( + graph, vis_builder + ) + ik_manager.register_model( + fixed_robot.model, + fixed_robot.constraint_models, + fixed_robot.visual_model, + ) + ik_manager.set_solver("Closed_Loop_PI") + # with st.status("simulation..."): + _ = ik_manager.follow_trajectory( + final_trajectory, viz=user_visualizer + ) + time.sleep(1) + user_visualizer.display(pin.neutral(fixed_robot.model)) + st.session_state.run_simulation_flag = False + else: + if st.session_state.run_simulation_flag: + ik_manager = TrajectoryIKManager() + # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder) + fixed_robot, _ = jps_graph2pinocchio_meshes_robot(graph, vis_builder) + ik_manager.register_model( + fixed_robot.model, + fixed_robot.constraint_models, + fixed_robot.visual_model, + ) + ik_manager.set_solver("Closed_Loop_PI") + # with st.status("simulation..."): + _ = ik_manager.follow_trajectory( + final_trajectory, viz=user_visualizer + ) + time.sleep(1) + user_visualizer.display(pin.neutral(fixed_robot.model)) + st.session_state.run_simulation_flag = False + +if st.session_state.stage == 'reward_description': + st.button(label="Вернуться к выбору критериев", key="return_to_criteria_calculation",on_click=lambda: st.session_state.__setitem__('stage', 'rewards')) + st.markdown(MD_REWARD_DESCRIPTION) \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_optimization_v2.py b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_optimization_v2.py new file mode 100644 index 00000000..6035cca4 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_optimization_v2.py @@ -0,0 +1,767 @@ +import subprocess +import time +from copy import deepcopy +from pathlib import Path +import os +import shutil +import zipfile +import dill +import matplotlib.pyplot as plt +import numpy as np +import pinocchio as pin +import streamlit as st +import streamlit.components.v1 as components +from forward_init import (add_trajectory_to_vis, build_constant_objects, + get_russian_reward_description) +from pymoo.decomposition.asf import ASF +from streamlit_widget_auxiliary import get_visualizer, send_graph_to_visualizer, graph_mesh_visualization, robot_move_visualization +from pathlib import Path +from auto_robot_design.description.builder import (jps_graph2pinocchio_robot_3d_constraints) +from auto_robot_design.description.mesh_builder.mesh_builder import jps_graph2pinocchio_meshes_robot +from auto_robot_design.description.utils import draw_joint_point, draw_joint_point_widjet +from auto_robot_design.generator.topologies.bounds_preset import get_preset_by_index_with_bounds +from auto_robot_design.generator.topologies.graph_manager_2l import plot_one_jp_bounds, scale_graph_manager +from auto_robot_design.motion_planning.trajectory_ik_manager import \ + TrajectoryIKManager +from auto_robot_design.optimization.optimizer import PymooOptimizer +from auto_robot_design.optimization.problems import (MultiCriteriaProblem, + SingleCriterionProblem) +from auto_robot_design.optimization.rewards.reward_base import ( + PositioningConstrain, PositioningErrorCalculator, RewardManager) +from auto_robot_design.optimization.saver import load_checkpoint +from auto_robot_design.pinokla.default_traj import ( + add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, + create_simple_step_trajectory, get_vertical_trajectory) +from auto_robot_design.utils.configs import get_standard_builder, get_mesh_builder, get_standard_crag, get_standard_rewards +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, MIT_CHEETAH_PARAMS_DICT +from auto_robot_design.optimization.rewards.reward_base import NotReacablePoints +from apps.widjetdemo.streamlit_widgets.reward_descriptions.md_rawards import MD_REWARD_DESCRIPTION +from widget_html_tricks import ChangeWidgetFontSize, font_size +from apps.widjetdemo.streamlit_widgets.trajectory_widget import set_step_trajectory, set_vertical_trajectory, user_trajectory + + +# st.set_page_config(layout = "wide", initial_sidebar_state = "expanded") +graph_managers, default_optimization_builder, default_mesh_builder,_, crag, reward_dict = build_constant_objects() +reward_description = get_russian_reward_description() +default_x_range = np.array([-0.3,0.3]) +default_z_range = np.array([-0.42,0.0]) +user_key=1 +axis = ['x', 'y', 'z'] +font_size(20) +user_visualizer, user_vis_url = get_visualizer(user_key) + +def show_loaded_results(dir="./results/optimization_widget/current_results (copy_2)"): + st.session_state.results_saved = True + st.session_state.stage = "results" + st.session_state.results_exist = True + st.session_state.run_simulation_flag = False + selected_directory = dir + with open(Path(dir).absolute().joinpath("out.txt"),'r')as file: + n_obj = int(file.readline()) + st.session_state.n_obj = n_obj + if n_obj == 1: + problem = SingleCriterionProblem.load(selected_directory) + checkpoint = load_checkpoint(selected_directory) + optimizer = PymooOptimizer(problem, checkpoint) + optimizer.load_history(selected_directory) + res = optimizer.run() + st.session_state.optimizer = optimizer + st.session_state.problem = problem + st.session_state.res = res + st.session_state.reward_manager=problem.rewards_and_trajectories + st.session_state.optimization_builder = problem.builder + st.session_state.visualization_builder = default_mesh_builder + st.session_state.gm = problem.graph_manager + if n_obj >= 2: + problem = MultiCriteriaProblem.load(selected_directory) + checkpoint = load_checkpoint(selected_directory) + optimizer = PymooOptimizer(problem, checkpoint) + optimizer.load_history(selected_directory) + res = optimizer.run() + st.session_state.optimizer = optimizer + st.session_state.problem = problem + st.session_state.res = res + st.session_state.reward_manager=problem.rewards_and_trajectories + st.session_state.optimization_builder = problem.builder + st.session_state.visualization_builder = default_mesh_builder + st.session_state.gm = problem.graph_manager + + + +@st.dialog("Выберите папку с результатами оптимизации") +def load_results(): + st.session_state.load_results = True + options = [f for f in Path(f"./results/optimization_widget/user_{user_key}").iterdir() if (f.is_dir()and("current_results" not in f.name and "buffer" not in f.name))] + path = st.radio(label="Выберите папку с результатами оптимизации", options=options, index=0, key='results_dir',format_func=lambda x:x.name) + if st.button("Загрузить результаты"): + show_loaded_results(path) + st.rerun() + + +st.title("Оптимизация рычажных механизмов") + +# gm is the first value that gets set. List of all values that should be update for each session +if 'stage' not in st.session_state: + st.session_state.user_key = user_key + st.session_state.reward_manager = RewardManager(crag=crag) + error_calculator = PositioningErrorCalculator(jacobian_key="Manip_Jacobian") + st.session_state.soft_constraint = PositioningConstrain( + error_calculator=error_calculator, points=[]) + st.session_state.stage = "topology_choice" + st.session_state.gm_clone = None + + # states that I need to create trajectory groups and associated rewards + st.session_state.trajectory_idx = 0 + st.session_state.trajectory_groups = [] + st.session_state.trajectory_buffer = {} + st.session_state.opt_rewards_dict = {} + + st.session_state.run_simulation_flag = False + st.session_state.results_exist = False + + path_to_robots = Path().parent.absolute().joinpath(f"robots/user_{user_key}") + if os.path.exists(path_to_robots): + shutil.rmtree(path_to_robots) + + +def confirm_topology(): + """Confirm the selected topology and move to the next stage.""" + #next stage + st.session_state.stage = "ranges_choice" + # create a deep copy of the graph manager for further updates + # We need three instances of the gm. Initial gm has initial parameters, gm_clone has scaled parameters, + # and current_gm has current parameters that will be used in optimization + st.session_state.gm.set_mutation_ranges() + st.session_state.gm_clone = deepcopy(st.session_state.gm) + st.session_state.current_gm = deepcopy(st.session_state.gm) + st.session_state.current_generator_dict = deepcopy(st.session_state.gm.generator_dict) + st.session_state.scale = 1 + +# def topology_choice(): +# """Update the graph manager based on the selected topology.""" +# st.session_state.gm = graph_managers[st.session_state.topology_choice] + +# the radio button and confirm button are only visible until the topology is selected +if st.session_state.stage == "topology_choice": + some_text = """

Данный сценарий предназначен для оптимизации рычажных механизмов. +Первый шаг - выбор структуры механизма для оптимизации. Структура определяет звенья +и сочленения механизма. Рёбра графа соответствуют твердотельным звеньям, +а вершины - сочленениям и концевому эффектору. +Предлагается выбор из девяти структур, основанных на двухзвенной главной цепи.

""" + st.markdown(some_text, unsafe_allow_html=True) + with st.sidebar: + st.radio(label="Выбор структруры для оптимизации:", options=graph_managers.keys(), + index=0, key='topology_choice') + st.button(label='Подтвердить выбор структуры', key='confirm_topology', + on_click=confirm_topology,type='primary') + ChangeWidgetFontSize("Выбор структруры для оптимизации:", "16px") + st.markdown( + """

Для управления инерциальными характеристиками механизма можно задать плотность и сечение элементов конструкции.

""", unsafe_allow_html=True) + density = st.slider(label="Плотность [кг/м^3]", min_value=250, max_value=8000, + value=int(MIT_CHEETAH_PARAMS_DICT["density"]), step=50, key='density') + thickness = st.slider(label="Толщина [м]", min_value=0.01, max_value=0.1, + value=MIT_CHEETAH_PARAMS_DICT["thickness"], step=0.01, key='thickness') + + st.session_state.visualization_builder = get_mesh_builder(thickness=thickness, density=density) + st.session_state.optimization_builder = get_standard_builder(thickness, density) + st.session_state.gm = graph_managers[st.session_state.topology_choice] + gm = st.session_state.gm + values = gm.generate_central_from_mutation_range() + graph = st.session_state.gm.get_graph(values) + graph_mesh_visualization(graph,user_visualizer,user_vis_url, labels=2, draw_lines=True, draw_legend=False) + if Path(f"./results/optimization_widget/user_{user_key}").exists(): + options = [f for f in Path(f"./results/optimization_widget/user_{user_key}").iterdir() if (f.is_dir()and("current_results" not in f.name and "buffer" not in f.name))] + if len(options) > 0: + if st.button("Загрузить одну из прошлых оптимизаций"): + load_results() + ChangeWidgetFontSize('Подтвердить выбор структуры', "16px") + ChangeWidgetFontSize("Плотность [кг/м^3]", "16px") + ChangeWidgetFontSize("Толщина [м]", "16px") + +def confirm_ranges(): + """Confirm the selected ranges and move to the next stage.""" + st.session_state.stage = "trajectory_choice" + current_gm = st.session_state.current_gm + for key, value in current_gm.generator_dict.items(): + for i, values in enumerate(value.mutation_range): + if values is None: + continue + if values[0] == values[1]: + current_fp = gm.generator_dict[key].freeze_pos + current_fp[i] = values[0] + current_gm.freeze_joint(key, current_fp) + + current_gm.set_mutation_ranges() + # this object is used only for user trajectory + st.session_state.trajectory = None + st.session_state.trajectory_history = [] + + +def return_to_topology(): + """Return to the topology choice stage.""" + st.session_state.__delattr__("stage") + +def joint_choice(): + st.session_state.current_generator_dict = deepcopy(st.session_state.current_gm.generator_dict) + +def scale_change(): + graph_scale = st.session_state.scaler/st.session_state.scale + st.session_state.scale = st.session_state.scaler + tmp = deepcopy(st.session_state.gm) + st.session_state.gm_clone = scale_graph_manager(tmp, st.session_state.scale) + st.session_state.gm_clone.set_mutation_ranges() + current_gm = deepcopy(st.session_state.current_gm) + st.session_state.current_gm = scale_graph_manager(current_gm, graph_scale) + st.session_state.current_gm.set_mutation_ranges() + st.session_state.current_generator_dict = deepcopy(st.session_state.current_gm.generator_dict) + + +# second stage +if st.session_state.stage == "ranges_choice": + st.markdown("""Для выбранной топологии необходимо задать диапазоны оптимизации. В нашей системе есть 4 типа сочленений: + 1. Неподвижное сочленение - неизменяемое положение. Нельзя выбрать для изменения. + 2. Cочленение в абсолютных координатах - положение задаётся в абсолютной системе координат в метрах. + 3. Сочленение в относительных координатах - положение задаётся относительно другого сочленения в метрах. + 4. Сочленени задаваемое относительно звена - положение задаётся относительно центра звена в процентах от длины звена. + Для каждого сочленения на боковой панели указан его тип. + x - горизонтальные координаты, z - вертикальные координаты. Размеры указаны в метрах. Для изменения высоты конструкции необходимо изменять общий масштаб. + По умолчанию активированы все возможные оптимизируемые величины для каждого сочленения и заданы максимальные диапазоны оптимизации. Используйте переключатель на боковой панели, чтобы визуализировать и изменять диапазоны каждого оптимизируемого сочленения. + Если отключить оптимизацию величины, то её значение будет постоянным и его можно задать в соответствующем окне на боковой панели. Значение должно быть в максимальном диапазоне оптимизации""", unsafe_allow_html=True) + + # form for optimization ranges. All changes affects the gm_clone and it should be used for optimization + # initial nodes + st.markdown("""Высоту механизма можно настроить при помощи изменения общего масштаба механизма.""") + st.slider(label="Масштаб", min_value=0.5, max_value=2.0,value=1.0, step=0.1, key='scaler', on_change=scale_change) + # gm is initial graph, gm_clone is scaled gm so it has scaled initial ranges, current_gm is scaled current gm with current ranges + initial_generator_info = st.session_state.gm_clone.generator_dict + initial_mutation_ranges = st.session_state.gm_clone.mutation_ranges + gm = st.session_state.current_gm + generator_info = gm.generator_dict + graph = gm.get_graph(gm.generate_central_from_mutation_range()) + labels = {n:i for i,n in enumerate(graph.nodes())} + with st.sidebar: + # return button + st.button(label="Назад к выбору топологии", + key="return_to_topology", on_click=return_to_topology) + + # set of joints that have mutation range in initial generator and get current jp and its index on the graph picture + + mutable_jps = [key[0] for key in initial_mutation_ranges.keys()] + options = [(jp, idx) for jp, idx in labels.items() if jp in mutable_jps] + current_jp = st.radio(label="Выбор сочленения для установки диапазона оптимизации", options=options, index=0, format_func=lambda x:x[1],key='joint_choice', on_change=joint_choice,horizontal=True) + st.markdown("""Переключатель позволяет выбрать диапазоны оптимизации для каждого сочленения. Значения по умолчанию соответствуют максимыльным диапазонам оптимизации.""") + jp_label = current_jp[1] + jp = list(labels.keys())[jp_label] + if st.session_state.gm.generator_dict[jp].mutation_type.value == 1: + if None in st.session_state.gm.generator_dict[jp].freeze_pos: + st.write("Тип сочленения: Сочленение в абсолютных координатах") + else: + st.write("Тип сочленения: Неподвижное сочленение") + if st.session_state.gm.generator_dict[jp].mutation_type.value == 2: + st.write("Тип сочленения: Сочленение в относительных координатах") + st.write("координаты относительно сочленения: "+str( + labels[st.session_state.gm.generator_dict[jp].relative_to])) + if st.session_state.gm.generator_dict[jp].mutation_type.value == 3: + st.write("Тип сочленения: Сочленение задаваемое относительно звена") + st.write("координаты относительно звена: "+str(labels[st.session_state.gm.generator_dict[jp].relative_to[0]])+':arrow_right:'+str(labels[st.session_state.gm.generator_dict[jp].relative_to[1]])) + + + # we can get current jp generator info in the cloned gm which contains all the changes + current_generator_info = generator_info[current_jp[0]] + for i, mut_range in enumerate(current_generator_info.mutation_range): + if mut_range is None: + continue + # we can get mutation range from previous activation of the corresponding radio button + left_value, right_value = st.session_state.current_generator_dict[current_jp[0]].mutation_range[i] + # name = f"{labels[current_jp[0]]}_{axis[i]}" + name = f"{axis[i]}".upper() + toggle_value = not left_value == right_value + current_on = st.toggle(f"Отключить оптимизацию "+name+" координаты", value=toggle_value) + init_values = initial_generator_info[current_jp[0]].mutation_range[i] + if current_on: + mut_range = st.slider( + label=name+' координата сочленения '+str(labels[current_jp[0]]), min_value=init_values[0], max_value=init_values[1], value=(left_value, right_value)) + generator_info[current_jp[0]].mutation_range[i] = mut_range + else: + current_value = st.number_input(label="Insert a value", value=( + left_value + right_value)/2, key=name, min_value=init_values[0], max_value=init_values[1]) + # if current_value < init_values[0]: + # current_value = init_values[0] + # if current_value > init_values[1]: + # current_value = init_values[1] + mut_range = (current_value, current_value) + generator_info[current_jp[0]].mutation_range[i] = mut_range + + st.button(label="подтвердить диапазоны оптимизации", + key='ranges_confirm', on_click=confirm_ranges, type='primary') + # here should be some kind of visualization for ranges + gm.set_mutation_ranges() + plot_one_jp_bounds(gm, current_jp[0].name) + center = gm.generate_central_from_mutation_range() + graph = gm.get_graph(center) + # here I can insert the visualization for jp bounds + draw_joint_point_widjet(graph, labels=1, draw_lines=True) + # draw_joint_point(graph, labels=1, draw_legend=True,draw_lines=True) + st.pyplot(plt.gcf(), clear_figure=True) + + +def add_trajectory(trajectory, idx, name='unnamed'): + """Create a new trajectory group with a single trajectory.""" + # trajectory buffer is necessary to store all trajectories until the confirmation and adding to reward manager + st.session_state.trajectory_buffer[idx] = (trajectory,name) + st.session_state.trajectory_groups.append([idx]) + st.session_state.trajectory_idx += 1 + # this object is used only for user trajectory + st.session_state.trajectory = None + st.session_state.trajectory_history = [] + +def remove_trajectory_group(): + """Remove the last added trajectory group.""" + # we only allow to remove the last added group and that should be enough + for idx in st.session_state.trajectory_groups[-1]: + del st.session_state.trajectory_buffer[idx] + st.session_state.trajectory_groups.pop() + + +def add_to_group(trajectory, idx, name='unnamed'): + """Add a trajectory to the last added group.""" + st.session_state.trajectory_buffer[idx] = (trajectory, name) + st.session_state.trajectory_groups[-1].append(idx) + st.session_state.trajectory_idx += 1 + # this object is used only for user trajectory + st.session_state.trajectory = None + st.session_state.trajectory_history = [] + +def start_optimization(rewards_tf): + """Start the optimization process.""" + # print(st.session_state.trajectory_groups) + st.session_state.stage = "optimization" + #auxilary parameter just to rerun once in before optimization + st.session_state.rerun = True + # rewards_tf = trajectories + # add all trajectories to the reward manager and soft constraint + for idx_trj, trj in st.session_state.trajectory_buffer.items(): + st.session_state.reward_manager.add_trajectory(trj[0], idx_trj, trj[1]) + st.session_state.soft_constraint.add_points_set(trj[0]) + # add all rewards to the reward manager according to trajectory groups + rewards = list(reward_dict.values()) + for trj_list_idx, trajectory_list in enumerate(st.session_state.trajectory_groups): + for trj in trajectory_list: + for r_idx, r in enumerate(rewards_tf[trj_list_idx]): + if r: + st.session_state.reward_manager.add_reward( + rewards[r_idx], trj, 1) + # we only allow mean aggregation for now + st.session_state.reward_manager.add_trajectory_aggregator( + trajectory_list, 'mean') + # add all necessary objects to a buffer folder for the optimization script + graph_manager = deepcopy(st.session_state.current_gm) + reward_manager = deepcopy(st.session_state.reward_manager) + sf = deepcopy(st.session_state.soft_constraint) + builder = deepcopy(st.session_state.optimization_builder) + data = (graph_manager, builder, crag, reward_manager, sf) + if not Path(f"./results/optimization_widget/user_{user_key}/buffer").exists(): + Path(f"./results/optimization_widget/user_{user_key}/buffer").mkdir(parents=True) + with open(Path(f"./results/optimization_widget/user_{user_key}/buffer/data.pkl"), "wb+") as f: + dill.dump(data, f) + + +def return_to_ranges(): + """Return to the ranges choice stage.""" + st.session_state.stage = "ranges_choice" + st.session_state.trajectory_groups = [] + st.session_state.trajectory_buffer = {} + st.session_state.trajectory_idx = 0 + st.session_state.reward_manager = RewardManager(crag=crag) + st.session_state.gm.set_mutation_ranges() + st.session_state.gm_clone = deepcopy(st.session_state.gm) + st.session_state.current_gm = deepcopy(st.session_state.gm) + st.session_state.current_generator_dict = deepcopy(st.session_state.gm.generator_dict) + st.session_state.scale = 1 + + +# when ranges are set we start to choose the reward+trajectory +# each trajectory should be added to the manager +if st.session_state.stage == "trajectory_choice": + # graph is only for visualization so it still gm + graph = st.session_state.current_gm.graph + trajectory = None + with st.sidebar: + st.button(label="Назад к выбору диапазонов оптимизации", + key="return_to_ranges", on_click=return_to_ranges) + # currently only choice between predefined parametrized trajectories + trajectory_type = st.radio(label='Выберите тип траектории:', options=[ + "Тип 1 (линия)", "Тип 2 (дуга)", "Тип 3 (ломаная)"], index=0, key="trajectory_type") + ChangeWidgetFontSize("Выберите тип траектории:", "16px") + if trajectory_type == "Тип 1 (линия)": + trajectory = set_vertical_trajectory() + if trajectory_type == "Тип 2 (дуга)": + trajectory = set_step_trajectory() + if trajectory_type == "Тип 3 (ломаная)": + trajectory = user_trajectory(default_x_range*st.session_state.scale,default_z_range*st.session_state.scale,initial_point=np.array([0,-0.4])*st.session_state.scale) + if trajectory is not None: + trajectory = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(trajectory,initial_point=np.array([0,-0.4])*st.session_state.scale)) + + if trajectory_type != "Тип 3 (ломаная)" or (trajectory_type == "Тип 3 (ломаная)" and len(st.session_state.trajectory_history)>1): + # no more than 2 groups for now + if len(st.session_state.trajectory_groups) < 2: + st.button(label="Добавить траекторию к новой группе", key="add_trajectory", args=( + trajectory, st.session_state.trajectory_idx,f"Траектория {st.session_state.trajectory_idx} {trajectory_type}"), on_click=add_trajectory) + # if there is at leas one group we can add to group or remove group + if st.session_state.trajectory_groups: + st.button(label="Добавить траекторию к текущей группе", key="add_to_group", args=[ + trajectory, st.session_state.trajectory_idx,f"Траектория {st.session_state.trajectory_idx} {trajectory_type}"], on_click=add_to_group) + st.button(label="Удалить текущую группу", key="remove_group", + on_click=remove_trajectory_group) + # for each reward trajectories should be assigned + # top visualization of current trajectory + + st.markdown("""

Для оптимизации используются кинематические критерии, рассчитываемые вдоль траекторий. Траектория определяет множество точек в котором будут рассчитаны выбранные критерии. +Если критерий нужно рассчитать вдоль более чем одной траектории необходимо создать группу траекторий. При помощи кнопок на боковой панели выберите траектории и соответствующие им критерии.

+""", unsafe_allow_html=True) + st.button(label="Посмотреть подробное описание критериев", key="show_reward_description",on_click=lambda: st.session_state.__setitem__('stage', 'reward_description')) + + draw_joint_point_widjet(graph,labels=2, draw_legend=False, draw_lines=True) + plt.gcf().set_size_inches(4, 4) + if trajectory is not None: + plt.plot(trajectory[:, 0], trajectory[:, 2]) + st.pyplot(plt.gcf(), clear_figure=True) + + trajectories = [[0]*len(list(reward_dict.keys()))]*len(st.session_state.trajectory_groups) + if st.session_state.trajectory_groups: + st.write("Выберите критерии для каждой группы траекторий:") + rewards_counter = [] + for i, t_g in enumerate(st.session_state.trajectory_groups): + st.write(f"Группа {i} траектории и критерии:") + cols = st.columns(2) + with cols[0]: + st.text("Граф и выбранные траектории:") + draw_joint_point(graph, labels=2, draw_legend=False) + for idx in st.session_state.trajectory_groups[i]: + current_trajectory = st.session_state.trajectory_buffer[idx][0] + plt.plot(current_trajectory[:, 0], current_trajectory[:, 2]) + st.pyplot(plt.gcf(), clear_figure=True) + with cols[1]: + st.header("Критерии:") + reward_idxs = [0]*len(list(reward_dict.keys())) + for reward_idx, reward in enumerate(reward_dict.items()): + current_checkbox = st.checkbox( + label=reward_description[reward[0]][0], value=False, key=reward[1].reward_name+str(i), help=reward_description[reward[0]][1]) + reward_idxs[reward_idx] = current_checkbox + trajectories[i] = reward_idxs + rewards_counter.append(sum(reward_idxs)) + # we only allow to start optimization if there is at least one group and all groups have at least one reward + if st.session_state.trajectory_groups and all([r > 0 for r in rewards_counter]): + st.button(label="Старт оптимизации", + key="start_optimization", on_click=start_optimization, args=[trajectories], type='primary') + + +def show_results(): + st.session_state.stage = "results" + st.session_state.results_exist = True + n_obj = st.session_state.reward_manager.close_trajectories() + selected_directory = Path(f"./results/optimization_widget/user_{user_key}/current_results") + st.session_state.n_obj = n_obj + if n_obj == 1: + problem = SingleCriterionProblem.load(selected_directory) + checkpoint = load_checkpoint(selected_directory) + optimizer = PymooOptimizer(problem, checkpoint) + optimizer.load_history(selected_directory) + res = optimizer.run() + st.session_state.optimizer = optimizer + st.session_state.problem = problem + st.session_state.res = res + if n_obj >= 2: + problem = MultiCriteriaProblem.load(selected_directory) + checkpoint = load_checkpoint(selected_directory) + optimizer = PymooOptimizer(problem, checkpoint) + optimizer.load_history(selected_directory) + res = optimizer.run() + st.session_state.optimizer = optimizer + st.session_state.problem = problem + st.session_state.res = res + + +if st.session_state.stage == "optimization": + # I have to rerun to clear the screen + if st.session_state.rerun: + st.session_state.rerun = False + st.rerun() + + graph = st.session_state.current_gm.graph + graph_mesh_visualization(graph,user_visualizer,user_vis_url, labels=2, draw_lines=True, draw_legend=False) + # col_1, col_2 = st.columns([0.7, 0.3], gap="medium") + # with col_1: + # # st.header("Графовое представление:") + # draw_joint_point(graph, labels=2, draw_legend=False, draw_lines=True) + # plt.gcf().set_size_inches(4, 4) + # st.pyplot(plt.gcf(), clear_figure=True) + # with col_2: + # send_graph_to_visualizer(graph, user_visualizer,st.session_state.visualization_builder) + # components.iframe(user_vis_url, width=400, + # height=400, scrolling=True) + st.text("Идёт процесс оптимизации, пожалуйста подождите...") + empt = st.empty() + with empt: + st.image(str(Path('./apps/widjetdemo/mechanical-wolf-running.gif').absolute())) + if not Path(f"./results/optimization_widget/user_{user_key}/current_results").exists(): + Path(f"./results/optimization_widget/user_{user_key}/current_results").mkdir(parents=True) + file = open( + Path(f"./results/optimization_widget/user_{user_key}/current_results/out.txt"), 'w') + subprocess.run( + ['python', "apps/widjetdemo/streamlit_widgets/run.py", str(user_key)], stdout=file) + file.close() + + # the button should appear after the optimization is done + with empt: + st.button(label="Show results", key="show_results", on_click=show_results) + # st.button(label="Show results", key="show_results", on_click=show_results) + + +def run_simulation(**kwargs): + st.session_state.run_simulation_flag = True + +def translate_labels(labels, reward_dict, reward_description): + for i, label in enumerate(labels): + for key, value in reward_dict.items(): + if value.reward_name == label: + labels[i] = reward_description[key][0] +def translate_reward_name(name, reward_dict, reward_description): + for key, value in reward_dict.items(): + if value.reward_name == name: + return reward_description[key][0] + + +def calculate_and_display_rewards(graph,trajectory, reward_mask): + + fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints( + graph, st.session_state.optimization_builder) + point_criteria_vector, trajectory_criteria, res_dict_fixed = crag.get_criteria_data( + fixed_robot, free_robot, trajectory, viz=None) + if sum(reward_mask)>0: + some_text = """

Критерии представлены в виде поточечных значений вдоль траектории.

""" + st.markdown(some_text,unsafe_allow_html=True) + col_1, col_2 = st.columns([0.5, 0.5], gap="small") + counter = 0 + try: + for i, reward in enumerate(reward_dict.items()): + if counter % 2 == 0: + col = col_1 + else: + col = col_2 + with col: + if reward_mask[i]: + + calculate_result = reward[1].calculate( + point_criteria_vector, trajectory_criteria, res_dict_fixed, Actuator=st.session_state.optimization_builder.actuator['default']) + # st.text(reward_description[reward[0]][0]+":\n " ) + reward_vector = np.array(calculate_result[1]) + # plt.gcf().set_figheight(3) + # plt.gcf().set_figwidth(3) + plt.plot(reward_vector) + plt.xticks(fontsize=10) + plt.yticks(fontsize=10) + plt.xlabel('шаг траектории', fontsize=12) + plt.ylabel('значение критерия на шаге', fontsize=12) + plt.title(reward_description[reward[0]][0], fontsize=12) + plt.legend( + [f'Итоговое значение критерия: {calculate_result[0]:.2f}'], fontsize=12) + st.pyplot(plt.gcf(), clear_figure=True, + use_container_width=True) + counter += 1 + except NotReacablePoints: + st.text_area( + label="", value="Траектория содержит точки за пределами рабочего пространства. Для рассчёта критериев укажите траекторию внутри рабочей области.") + +def create_file(graph, user_key=0, id_robot=0): + path_to_robots = Path().parent.absolute().joinpath(f"robots/user_{user_key}") + if not os.path.exists(path_to_robots): + os.makedirs(path_to_robots) + zip_file_name = path_to_robots / f"robot_{id_robot}.zip" + if os.path.exists(zip_file_name): + return zip_file_name + robot_urdf_str, yaml_out = jps_graph2pinocchio_robot_3d_constraints(graph, st.session_state.optimization_builder, True) + path_to_urdf = path_to_robots / f"robot_{id_robot}.urdf" + path_to_yaml = path_to_robots / f"robot_{id_robot}.yaml" + with open(path_to_urdf, "w") as f: + f.write(robot_urdf_str) + with open(path_to_yaml, "w") as f: + f.write(yaml_out) + file_names = [f"robot_{id_robot}.urdf", f"robot_{id_robot}.yaml"] + with zipfile.ZipFile(zip_file_name, 'w') as zip_object: + # Add multiple files to the zip file + for file_name in file_names: + zip_object.write(path_to_robots / file_name, file_name) + return zip_file_name + +def save_results(): + initial_path = Path(f"./results/optimization_widget/user_{user_key}/current_results") + new_path = Path(f"./results/optimization_widget/user_{user_key}/results_"+time.strftime("%Y-%m-%d_%H-%M-%S")) + shutil.copytree(initial_path, new_path) + st.session_state.results_saved = True + +if st.session_state.stage == "results": + n_obj = st.session_state.n_obj + if n_obj == 1: + optimizer = st.session_state.optimizer + problem = st.session_state.problem + ten_best = np.argsort(np.array(optimizer.history["F"]).flatten())[:10] + st.markdown("""

Результатом оптимизации является набор механизмов с наилучшими значениями заданного критерия, найденными в процессе оптимизации. +Для каждого полученного механизма можно рассчитать критерии вдоль траекторий использованных в процессе оптмизации

""",unsafe_allow_html=True) + idx = st.select_slider(label="Лучшие по заданному критерию механизмы:", options=[ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], value=1, help='10 механизмов с наибольшими значением выбранного критерия, 1 соответствует максимальному значению критерия') + x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) + y = [] + for i in ten_best: + y.append(optimizer.history["F"][i][0]*-1) + best_id = ten_best[idx-1] + best_x = optimizer.history["X"][best_id] + graph = problem.graph_manager.get_graph(best_x) + send_graph_to_visualizer(graph, user_visualizer, st.session_state.visualization_builder) + with st.sidebar: + trajectories = problem.rewards_and_trajectories.trajectories + trj_idx = st.radio(label="Выбор траектории:", options=trajectories.keys( + ), index=0, key='opt_trajectory_choice', format_func=lambda x: problem.rewards_and_trajectories.trajectory_names[x]) + trajectory = trajectories[trj_idx] + + st.button(label='Визуализация движения', key='run_simulation', on_click=run_simulation, kwargs={ + "graph": graph, "trajectory": trajectory}) + st.header("Характеристики:") + reward_idxs = [0]*len(list(reward_dict.values())) + for reward_idx, reward in enumerate(reward_dict.items()): + current_checkbox = st.checkbox( + label=reward_description[reward[0]][0], value=False, key=reward[1].reward_name+str(reward_idx), help=reward_description[reward[0]][1]) + reward_idxs[reward_idx] = current_checkbox + graph_mesh_visualization(graph, user_visualizer,user_vis_url, labels=2, draw_lines=True, draw_legend=False) + with st.sidebar: + bc = st.button(label="Рассчитать значения выбранных критериев", key="calculate_rewards", type='primary') + + plt.figure(figsize=(3,3)) + plt.scatter(x,np.array(y)) + st.markdown("""Значения критерия оптимизации для лучших механизмов. График показывыает величину разброса результатов. Для каждого механизма можно рассчитать критерии вдоль указанных для оптимизации траекторий.""") + st.pyplot(plt.gcf(), clear_figure=True,use_container_width=False) + if bc: + calculate_and_display_rewards(graph, trajectory, reward_idxs) + + if n_obj >= 2: + if n_obj>2: + import itertools + st.markdown("Для отображения результатов выберите пару критериев, для построения проекции Парето фронта") + reward_manager:RewardManager = st.session_state.problem.rewards_and_trajectories + supp = [[x[0], True] for x in reward_manager.agg_list] + choice_list = [] + for key, value in reward_manager.rewards.items(): + for i, tp in enumerate(supp): + if key in tp[0] and tp[1]: + tp[1]=False + for reward in value: + choice_list.append((f'группы {i}',reward[0].reward_name)) + pairs = list(itertools.combinations(choice_list, 2)) + pairs_of_idx = list(itertools.combinations(list(range(len(choice_list))), 2)) + choice = st.radio(label="Выберите пару критериев для построения графика Парето фронта", options=list(range(len(pairs))), index=0, key='pair_choice',format_func = lambda x:f'Траектории {pairs[x][0][0]}, критерий {translate_reward_name(pairs[x][0][1], reward_dict, reward_description)} и траектории {pairs[x][1][0]}, критерий {translate_reward_name(pairs[x][1][1], reward_dict, reward_description)}') + idx_pair = pairs_of_idx[choice] + labels = [choice_list[idx_pair[0]][1], choice_list[idx_pair[1]][1]] + translate_labels(labels, reward_dict, reward_description) + else: + idx_pair = [0,1] + labels = [] + for trajectory_idx, rewards in st.session_state.problem.rewards_and_trajectories.rewards.items(): + for reward in rewards: + if reward[0].reward_name not in labels: + labels.append(reward[0].reward_name) + translate_labels(labels, reward_dict, reward_description) + + st.markdown("""Результатом оптимизации является набор механизмов, которые образуют Парето фронт по заданным группам критериев.""") + res = st.session_state.res + optimizer = st.session_state.optimizer + problem = st.session_state.problem + F = res.F[:, idx_pair] + approx_ideal = F.min(axis=0) + approx_nadir = F.max(axis=0) + nF = (F - approx_ideal) / (approx_nadir - approx_ideal) + w1 = st.slider(label="Выбор решения из Парето фронта при помощи указания относительного веса:", min_value=0.01, + max_value=0.99, value=0.5) + weights = np.array([w1, 1-w1]) + decomp = ASF() + b = decomp.do(nF, 1/weights).argmin() + best_x = res.X[b] + graph = problem.graph_manager.get_graph(best_x) + with st.sidebar: + trajectories = st.session_state.reward_manager.trajectories + trj_idx = st.radio(label="Выберите траекторию из заданных перед оптимизацией:", options=trajectories.keys( + ), index=0, key='opt_trajectory_choice', format_func=lambda x: problem.rewards_and_trajectories.trajectory_names[x]) + trajectory = trajectories[trj_idx] + st.button(label='Визуализация движения', key='run_simulation', on_click=run_simulation, kwargs={ + "graph": graph, "trajectory": trajectory}) + with st.form("reward_form_mlt"): + st.header("Характеристики:") + reward_idxs = [0]*len(list(reward_dict.values())) + for reward_idx, reward in enumerate(reward_dict.items()): + current_checkbox = st.checkbox( + label=reward_description[reward[0]][0], value=False, key=reward[1].reward_name+str(reward_idx), help=reward_description[reward[0]][1]) + reward_idxs[reward_idx] = current_checkbox + bc = st.form_submit_button(label="Рассчитать значения выбранных критериев", type='primary') + plt.plot(trajectory[:, 0], trajectory[:, 2]) + graph_mesh_visualization(graph, user_visualizer, user_vis_url, labels=2, draw_lines=True, draw_legend=False) + add_trajectory_to_vis(user_visualizer, trajectory) + # send_graph_to_visualizer(graph, st.session_state.visualization_builder) + # col_1, col_2 = st.columns([0.7,0.3], gap="medium") + # with col_1: + # # st.header("Графовое представление") + # draw_joint_point(graph, labels=2, draw_legend=False, draw_lines=True) + # + # plt.gcf().set_size_inches(4, 4) + # st.pyplot(plt.gcf(), clear_figure=True) + # with col_2: + # # st.header("Робот") + + # components.iframe(get_visualizer(st.session_state.visualization_builder).viewer.url(), width=400, + # height=400, scrolling=True) + st.text('Красный маркер указывает точку соответствующую заданному весу') + + plt.figure(figsize=(7, 5)) + plt.xlabel(labels[0]) + plt.ylabel(labels[1]) + plt.scatter(F[:, 0]*-1, F[:, 1]*-1, s=30, + facecolors='none', edgecolors='blue') + # plt.scatter(approx_ideal[0], approx_ideal[1], facecolors='none', + # edgecolors='red', marker="*", s=100, label="Ideal Point (Approx)") + # plt.scatter(approx_nadir[0], approx_nadir[1], facecolors='none', + # edgecolors='black', marker="p", s=100, label="Nadir Point (Approx)") + plt.scatter(F[b, 0]*-1, F[b, 1]*-1, marker="x", color="red", s=200) + if n_obj==2: + plt.title("Парето фронт") + else: + plt.title('Проекция Парето фронта на плоскость выбранных критериев') + st.pyplot(plt.gcf(),clear_figure=True) + + if bc: + calculate_and_display_rewards(graph, trajectory, reward_idxs) + + with open(create_file(graph, user_key), "rb") as file: + st.download_button( + "Скачать URDF описание робота", + data=file, + file_name="robot_opt_description.zip", + mime="robot/urdf", + ) + st.markdown("""Вы можете скачать URDF модель полученного механизма для дальнейшего использования. Данный виджет служит для оптимизации кинематических структур в рамках заданных ограничений, вы можете использовать редакторы URDF для более точной настройки параметров и физические симуляторы для имитационного модеирования.""") + if "results_saved" in st.session_state: + st.markdown("""

Результаты оптимизации сохранены.

""",unsafe_allow_html=True) + else: + st.button(label="Сохранить результаты оптимизации", key="save_results", on_click=save_results) + with st.sidebar: + st.button(label="Посмотреть подробное описание критериев", key="show_reward_description",on_click=lambda: st.session_state.__setitem__('stage', 'reward_description')) + + # We need a flag to run the simulation in the frame that was just created + if st.session_state.run_simulation_flag: + fixed_robot_vis, _ = jps_graph2pinocchio_meshes_robot(graph, st.session_state.visualization_builder) + robot_move_visualization(fixed_robot_vis, trajectory, user_visualizer) + + +if st.session_state.stage == 'reward_description': + if st.session_state.results_exist: + st.button(label="Вернуться", key="return_to_criteria_calculation",on_click=lambda: st.session_state.__setitem__('stage', 'results'),type='primary') + else: + st.button(label="Вернуться", key="return_to_criteria_calculation",on_click=lambda: st.session_state.__setitem__('stage', 'trajectory_choice'),type='primary') + st.markdown(MD_REWARD_DESCRIPTION) \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_widget_auxiliary.py b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_widget_auxiliary.py new file mode 100644 index 00000000..2a0f4248 --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/streamlit_widget_auxiliary.py @@ -0,0 +1,89 @@ +import streamlit as st +import streamlit.components.v1 as components +import time +from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager +import meshcat +import matplotlib.pyplot as plt +from pinocchio.visualize import MeshcatVisualizer +import pinocchio as pin +from auto_robot_design.description.mesh_builder.mesh_builder import ( + MeshBuilder, + jps_graph2pinocchio_meshes_robot, +) +import dill +from auto_robot_design.description.utils import draw_joint_point, draw_joint_point_widjet +from auto_robot_design.utils.configs import get_standard_builder, get_mesh_builder, get_standard_crag, get_standard_rewards +from auto_robot_design.generator.topologies.bounds_preset import get_preset_by_index_with_bounds + + +@st.cache_resource +def get_visualizer(user_key=0, **camera_params): + _gm = get_preset_by_index_with_bounds(8) + base_graph = _gm.get_graph(_gm.generate_central_from_mutation_range()) + builder = get_mesh_builder(manipulation=False) + fixed_robot, _ = jps_graph2pinocchio_meshes_robot(base_graph, builder) + # create a pinocchio visualizer object with current value of a robot + visualizer = MeshcatVisualizer( + fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model + ) + # create and setup a meshcat visualizer + visualizer.viewer = meshcat.Visualizer() + # visualizer.viewer["/Background"].set_property("visible", False) + visualizer.viewer["/Grid"].set_property("visible", False) + visualizer.viewer["/Axes"].set_property("visible", False) + visualizer.viewer["/Cameras/default/rotated/"].set_property( + "position", camera_params.get("cam_pos", [0, 0.0, 1]) + ) + # load a model to the visualizer and set it into the neutral position + visualizer.clean() + visualizer.loadViewerModel() + visualizer.display(pin.neutral(fixed_robot.model)) + + return visualizer, visualizer.viewer.url() + +def send_graph_to_visualizer(graph, visualizer, visualization_builder): + fixed_robot, _ = jps_graph2pinocchio_meshes_robot( + graph, visualization_builder) + visualizer.model = fixed_robot.model + visualizer.collision = fixed_robot.visual_model + visualizer.visual_model = fixed_robot.visual_model + visualizer.rebuildData() + visualizer.clean() + visualizer.loadViewerModel() + visualizer.display(pin.neutral(fixed_robot.model)) + +def send_robot_to_visualizer(robot, visualizer): + visualizer.model = robot.model + visualizer.collision = robot.visual_model + visualizer.visual_model = robot.visual_model + visualizer.rebuildData() + visualizer.clean() + visualizer.loadViewerModel() + visualizer.display(pin.neutral(robot.model)) + +def graph_mesh_visualization(graph, visualizer, url,**kwargs): + send_graph_to_visualizer(graph, visualizer, st.session_state.visualization_builder) + col_1, col_2 = st.columns([0.7, 0.3], gap="medium") + with col_1: + st.markdown("Граф выбранной структуры:") + draw_joint_point_widjet(graph,**kwargs) + plt.gcf().set_size_inches(4, 4) + st.pyplot(plt.gcf(), clear_figure=True) + with col_2: + st.markdown("Визуализация механизма:") + components.iframe(url, width=400, + height=400, scrolling=True) + st.markdown("Используйте мышь для вращения, сдвига и масштабирования модели.") + +def robot_move_visualization(fixed_robot, trajectory, visualizer): + ik_manager = TrajectoryIKManager() + ik_manager.register_model( + fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model + ) + ik_manager.set_solver("Closed_Loop_PI") + _ = ik_manager.follow_trajectory( + trajectory, viz=visualizer + ) + time.sleep(1) + visualizer.display(pin.neutral(fixed_robot.model)) + st.session_state.run_simulation_flag = False \ No newline at end of file diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/trajectory_widget.py b/jmoves/apps/widjetdemo/streamlit_widgets/trajectory_widget.py new file mode 100644 index 00000000..5ba7d35d --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/trajectory_widget.py @@ -0,0 +1,75 @@ +import numpy as np +import matplotlib.pyplot as plt +import pinocchio as pin +from matplotlib.patches import Circle +import streamlit as st +from auto_robot_design.pinokla.default_traj import ( + add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, + create_simple_step_trajectory, get_vertical_trajectory) + +def set_vertical_trajectory(): + height = st.slider( + label="длина вдоль Z", min_value=0.02*st.session_state.scale, max_value=0.3*st.session_state.scale, value=0.1*st.session_state.scale) + x = st.slider(label="X координата начала", min_value=-0.3*st.session_state.scale, + max_value=0.3*st.session_state.scale, value=0.0*st.session_state.scale) + z = st.slider(label="Z координата начала", min_value=-0.4*st.session_state.scale, + max_value=-0.2*st.session_state.scale, value=-0.3*st.session_state.scale) + trajectory = convert_x_y_to_6d_traj_xz( + *add_auxilary_points_to_trajectory(get_vertical_trajectory(z, height, x, 100),initial_point=np.array([0,-0.4])*st.session_state.scale)) + return trajectory + +def set_step_trajectory(): + start_x = st.slider( + label="X координата начала", min_value=-0.3*st.session_state.scale, max_value=0.3*st.session_state.scale, value=-0.14*st.session_state.scale) + start_z = st.slider( + label="Z координата начала", min_value=-0.4*st.session_state.scale, max_value=-0.2*st.session_state.scale, value=-0.34*st.session_state.scale) + height = st.slider( + label="Высота", min_value=0.02*st.session_state.scale, max_value=0.3*st.session_state.scale, value=0.1*st.session_state.scale) + width = st.slider(label="Ширина", min_value=0.1*st.session_state.scale, + max_value=0.6*st.session_state.scale, value=0.28*st.session_state.scale) + trajectory = convert_x_y_to_6d_traj_xz( + *add_auxilary_points_to_trajectory( + create_simple_step_trajectory( + starting_point=[start_x, start_z], + step_height=height, + step_width=width, + n_points=100, + ),initial_point=np.array([0,-0.4])*st.session_state.scale + ) + ) + return trajectory + +def add_point_toTrajectory(X,Y): + # in our current framework a trajectory is represented as two lists, one for x coordinates and one for z coordinates + prev_trajectory = st.session_state.trajectory + st.session_state.trajectory_history.append([X,Y]) + if prev_trajectory is None: + st.session_state.trajectory = [np.array([X]),np.array([Y])] + else: + prev_x = prev_trajectory[0][-1] + prev_y = prev_trajectory[1][-1] + step_length = np.linalg.norm(np.array([X,Y])-np.array([prev_x, prev_y])) + new_x = np.linspace(prev_x, X, int(step_length/0.005))[1:] + new_y = np.linspace(prev_y, Y, int(step_length/0.005))[1:] + prev_trajectory[0] = np.concatenate((prev_trajectory[0], new_x)) + prev_trajectory[1] = np.concatenate((prev_trajectory[1], new_y)) + st.session_state.trajectory = prev_trajectory + +def clear_trajectory(): + st.session_state.trajectory = None + st.session_state.trajectory_history = [] + +def user_trajectory(x_range,z_range,initial_point = np.array([0,-0.4]),): + st.markdown('Добавляйте точки для построения траектории. Слайдеры задают положение следующей точки. траектория должна содержать минимум 2 точки') + X = st.slider(label="X координата", min_value=x_range[0], max_value=x_range[1], value=initial_point[0], step=0.01, key="x") + Y = st.slider(label="Z координата", min_value=z_range[0], max_value=z_range[1], value=initial_point[1], step=0.01, key="z") + Drawing_colored_circle = Circle((X, Y), radius=0.005, color="g",zorder=4) + plt.gca().add_artist(Drawing_colored_circle) + st.button(label = "Добавить точку", key="add_point", help="Add point to trajectory", on_click=add_point_toTrajectory, args=(X,Y)) + st.button(label = "Очистить траекторию", key="clear_trajectory", on_click=clear_trajectory) + if len(st.session_state.trajectory_history) > 0: + st.write("Опорные точки траектории:") + for point in st.session_state.trajectory_history: + st.write(f"X: {point[0]}, Z: {point[1]}") + + return st.session_state.trajectory diff --git a/jmoves/apps/widjetdemo/streamlit_widgets/widget_html_tricks.py b/jmoves/apps/widjetdemo/streamlit_widgets/widget_html_tricks.py new file mode 100644 index 00000000..1778ff2b --- /dev/null +++ b/jmoves/apps/widjetdemo/streamlit_widgets/widget_html_tricks.py @@ -0,0 +1,14 @@ +import streamlit as st +import streamlit.components.v1 as components + +def font_size(size): + st.markdown("""""", unsafe_allow_html=True) + + +def ChangeWidgetFontSize(wgt_txt, wch_font_size = '12px'): + htmlstr = """ """ + + htmlstr = htmlstr.replace('|wgt_txt|', "'" + wgt_txt + "'") + components.html(f"{htmlstr}", height=0, width=0) diff --git a/jmoves/apps/widjetdemo/suspension_optimization.ipynb b/jmoves/apps/widjetdemo/suspension_optimization.ipynb new file mode 100644 index 00000000..d890d3e7 --- /dev/null +++ b/jmoves/apps/widjetdemo/suspension_optimization.ipynb @@ -0,0 +1,827 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 139, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "os.environ[\"MESHCAT_WEB_ROOT_PATH\"] = \"/\"\n", + "os.environ[\"MESHCAT_PUBLIC_HOST\"] = \"172.17.0.2\"\n", + "#os.environ[\"MESHCAT_WEB_PORT\"] = \"7008\"\n", + "# os.environ[\"MESHCAT_WEB_PUBLIC_PORT\"] = \"7008\"" + ] + }, + { + "cell_type": "code", + "execution_count": 140, + "metadata": {}, + "outputs": [], + "source": [ + "import multiprocessing\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import os\n", + "import pinocchio as pin\n", + "import meshcat\n", + "import time\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from pymoo.algorithms.moo.age2 import AGEMOEA2\n", + "from pymoo.decomposition.asf import ASF\n", + "from pymoo.algorithms.soo.nonconvex.pso import PSO\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import SingleCriterionProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.pinokla.calc_criterion import (\n", + " ActuatedMass,\n", + " EffectiveInertiaCompute,\n", + " MovmentSurface,\n", + " NeutralPoseMass,\n", + " ManipJacobian,\n", + ")\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.default_traj import (\n", + " add_auxilary_points_to_trajectory,\n", + " convert_x_y_to_6d_traj_xz,\n", + " get_vertical_trajectory,\n", + " create_simple_step_trajectory,\n", + " get_workspace_trajectory,\n", + ")\n", + "from auto_robot_design.optimization.rewards.reward_base import (\n", + " PositioningConstrain,\n", + " PositioningErrorCalculator,\n", + " RewardManager,\n", + ")\n", + "from auto_robot_design.optimization.rewards.pure_jacobian_rewards import ZRRReward\n", + "from auto_robot_design.description.builder import (\n", + " ParametrizedBuilder,\n", + " DetailedURDFCreatorFixedEE,\n", + " URDFLinkCreater3DConstraints,\n", + " jps_graph2pinocchio_robot,\n", + " MIT_CHEETAH_PARAMS_DICT,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.mesh_builder import (\n", + " MeshBuilder,\n", + " jps_graph2pinocchio_meshes_robot,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.urdf_creater import (\n", + " URDFMeshCreator,\n", + " MeshCreator,\n", + ")\n", + "from auto_robot_design.generator.topologies.graph_manager_2l import (\n", + " GraphManager2L,\n", + " get_preset_by_index,\n", + " MutationType,\n", + ")\n", + "from auto_robot_design.generator.topologies.bounds_preset import (\n", + " get_preset_by_index_with_bounds,\n", + ")\n", + "from auto_robot_design.optimization.saver import ProblemSaver\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "from pinocchio.visualize import MeshcatVisualizer\n", + "import ipywidgets as widgets\n", + "from IPython.display import display, clear_output, HTML, IFrame, Image\n", + "import asyncio\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "from auto_robot_design.simulation.trajectory_movments import TrajectoryMovements\n", + "\n", + "pin.seed(1)\n", + "from auto_robot_design.optimization.saver import (\n", + " load_checkpoint,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 141, + "metadata": {}, + "outputs": [], + "source": [ + "thickness = MIT_CHEETAH_PARAMS_DICT[\"thickness\"]\n", + "actuator = MIT_CHEETAH_PARAMS_DICT[\"actuator\"]\n", + "density = MIT_CHEETAH_PARAMS_DICT[\"density\"]\n", + "body_density = MIT_CHEETAH_PARAMS_DICT[\"body_density\"]\n", + "\n", + "\n", + "old_builder = ParametrizedBuilder(\n", + " URDFLinkCreater3DConstraints,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.12},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"],\n", + ")\n", + "\n", + "\n", + "predined_mesh = {\"G\": \"../../mesh/body.stl\", \"EE\": \"../../mesh/wheel_small.stl\"}\n", + "\n", + "mesh_creator = MeshCreator(predined_mesh)\n", + "urdf_creator = URDFMeshCreator()\n", + "builder = MeshBuilder(\n", + " urdf_creator,\n", + " mesh_creator,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.12},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 142, + "metadata": {}, + "outputs": [], + "source": [ + "# 1) trajectories\n", + "\n", + "workspace_trajectory = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " get_workspace_trajectory([-0.15, -0.35], 0.14, 0.3, 30, 60)\n", + " )\n", + ")\n", + "# ground_symmetric_step = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory(\n", + "# starting_point=[-0.1, -0.31], step_height=0.05, step_width=0.2, n_points=50))\n", + "\n", + "ground_symmetric_step1 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14, -0.34],\n", + " step_height=0.12,\n", + " step_width=0.28,\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "ground_symmetric_step2 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.015, -0.34],\n", + " step_height=0.10,\n", + " step_width=-2 * (-0.14 + 0.015),\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "ground_symmetric_step3 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.025, -0.34],\n", + " step_height=0.08,\n", + " step_width=-2 * (-0.14 + 0.025),\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "central_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0, 100))\n", + ")\n", + "\n", + "# new_trj = central_vertical.copy()\n", + "# for i in range(10):\n", + "# if i%2==1:\n", + "# new_trj = np.concatenate([new_trj,central_vertical], axis=0 )\n", + "# else:\n", + "# new_trj = np.concatenate([new_trj,np.flip(central_vertical,axis=0)], axis=0)\n", + "\n", + "left_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, -0.12, 100))\n", + ")\n", + "\n", + "right_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0.12, 100)))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 143, + "metadata": {}, + "outputs": [], + "source": [ + "# 2) characteristics to be calculated\n", + "# criteria that either calculated without any reference to points, or calculated through the aggregation of values from all points on trajectory\n", + "dict_trajectory_criteria = {\n", + " \"MASS\": NeutralPoseMass(),\n", + "}\n", + "# criteria calculated for each point on the trajectory\n", + "dict_point_criteria = {\n", + " \"Effective_Inertia\": EffectiveInertiaCompute(),\n", + " \"Actuated_Mass\": ActuatedMass(),\n", + " \"Manip_Jacobian\": ManipJacobian(MovmentSurface.XZ),\n", + "}\n", + "# special object that calculates the criteria for a robot and a trajectory\n", + "crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria)" + ] + }, + { + "cell_type": "code", + "execution_count": 144, + "metadata": {}, + "outputs": [], + "source": [ + "# set the rewards and weights for the optimization task\n", + "zrr = ZRRReward(\n", + " manipulability_key=\"Manip_Jacobian\", trajectory_key=\"traj_6d\", error_key=\"error\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 145, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def add_trajectory_to_vis(pin_vis, trajectory):\n", + " material = meshcat.geometry.MeshPhongMaterial()\n", + " material.color = int(0xFF00FF)\n", + " material.color = int(0x00FFFF)\n", + " material.color = int(0xFFFF00)\n", + " material.opacity = 0.3\n", + " for idx, point in enumerate(trajectory):\n", + " if idx <150 and idx%2==0:\n", + " ballID = \"world/ball\" + str(idx)\n", + " pin_vis.viewer[ballID].set_object(meshcat.geometry.Sphere(0.01), material)\n", + " T = np.r_[np.c_[np.eye(3), point[:3]+np.array([0,-0.04,0])], np.array([[0, 0, 0, 1]])]\n", + " pin_vis.viewer[ballID].set_transform(T)\n", + "\n", + "display(\n", + " HTML(\n", + " \"\"\"\n", + "\n", + "\"\"\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### First step: Choose the topology for optimization\n", + "### Second step: Choose the placement of an actuator and trajectory\n", + "### Third step: results" + ] + }, + { + "cell_type": "code", + "execution_count": 146, + "metadata": {}, + "outputs": [], + "source": [ + "objects = {f\"Topology_{i}\": get_preset_by_index_with_bounds(i) for i in range(9) if i not in [3, 5]}" + ] + }, + { + "cell_type": "code", + "execution_count": 147, + "metadata": {}, + "outputs": [], + "source": [ + "global_output = widgets.Output()\n", + "\n", + "metric_out = lambda x: f\"Метрики оптимизированного механизма: \\n Передаточное отношение по вертикальной оси: {x:.2f}\"\n", + "\n", + "# Create widget for meshcat output\n", + "output = widgets.Output()\n", + "output_1 = widgets.Output()\n", + "output_2 = widgets.Output()\n", + "output_3 = widgets.Output()\n", + "output_4 = widgets.Output()\n", + "fake_output = widgets.Output()\n", + "# Create the radio button widget\n", + "radio_buttons = widgets.RadioButtons(\n", + " options=objects, description=\"Выберите топологию для оптимизации:\", disabled=False,\n", + " layout=widgets.Layout(width='350px', height='250px')) \n", + "\n", + "# Set initial value to None\n", + "radio_buttons.value = None\n", + "\n", + "proceed_button = widgets.Button(description='Подтвердите выбор',disabled= True,\n", + " layout=widgets.Layout(width='200px', height='40px')) # Set width and height)\n", + "proceed_button.style.button_color = 'lightgreen'\n", + "first_run_button = widgets.Button(description='Визуализировать движение',\n", + " layout=widgets.Layout(width='200px', height='40px')) # Set width and height)\n", + "first_run_button.style.button_color = 'lightblue'\n", + "\n", + "# global variables\n", + "slider_value = None\n", + "trajectory = None\n", + "n_moving_joint = -1\n", + "active_joint = None\n", + "# Set initial value of the gm\n", + "gm: GraphManager2L = get_preset_by_index_with_bounds(-1)\n", + "_values = gm.generate_central_from_mutation_range()\n", + "gm.get_graph(_values)\n", + "\n", + "# fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + "fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + "\n", + "visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + ")\n", + "with fake_output:\n", + " visualizer.viewer = meshcat.Visualizer()\n", + "visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + ")\n", + "visualizer.clean()\n", + "visualizer.loadViewerModel()\n", + "visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "\n", + "def prepare_optimizer(name):\n", + " global trajectory, gm\n", + " reward_manager = RewardManager(crag=crag)\n", + " reward_manager.add_trajectory(trajectory, 0)\n", + " reward_manager.add_reward(zrr, 0, 1)\n", + " N_PROCESS = 16\n", + " pool = multiprocessing.Pool(N_PROCESS)\n", + " runner = StarmapParallelization(pool.starmap)\n", + "\n", + " population_size = 32\n", + " # create the problem for the current optimization\n", + " error_calculator = PositioningErrorCalculator(\n", + " error_key='error', jacobian_key=\"Manip_Jacobian\")\n", + " soft_constrain = PositioningConstrain(error_calculator=error_calculator, points = [trajectory])\n", + " problem = SingleCriterionProblem(gm, old_builder, reward_manager,\n", + " soft_constrain, \n", + " elementwise_runner=runner,\n", + " Actuator=actuator)\n", + " saver = ProblemSaver(problem, name, False)\n", + "\n", + " algorithm = PSO(pop_size=population_size, save_history=True)\n", + " optimizer = PymooOptimizer(problem, algorithm, saver)\n", + " return saver, optimizer\n", + "\n", + "def run_optimization(saver, optimizer, central_values):\n", + " global trajectory, gm, visualizer\n", + " if os.path.exists(os.path.join(saver.path, \"optimized_topology.jpg\")):\n", + " problem = SingleCriterionProblem.load(saver.path)\n", + " checkpoint = load_checkpoint(saver.path)\n", + " optimizer = PymooOptimizer(problem, checkpoint)\n", + " optimizer.load_history(saver.path)\n", + " res = optimizer.run()\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(np.round(best_x, 4))\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + " trj_ids = np.where(np.array(optimizer.history[\"F\"])<0)[0]\n", + " trj_values = np.array(optimizer.history[\"X\"])[trj_ids,:]\n", + " closest_x = min(trj_values,key=lambda x: np.linalg.norm(np.array(x)-np.array(central_values))) \n", + " else:\n", + " with output_1:\n", + " clear_output(wait=True)\n", + " print(\"Optimization in progress\")\n", + " display(Image(\"./loading.gif\"))\n", + " # create the problem for the current optimization\n", + " n_generations = 50\n", + " saver.save_nonmutable()\n", + " res = optimizer.run(\n", + " True,\n", + " **{\"seed\": 1, \"termination\": (\"n_gen\", n_generations), \"verbose\": False},\n", + " )\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " #print(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + "\n", + " draw_joint_point(graph)\n", + " plt.savefig(os.path.join(saver.path, \"optimized_topology.jpg\"))\n", + " plt.close()\n", + " trj_ids = np.where(np.array(optimizer.history[\"F\"])<0)[0]\n", + " trj_values = np.array(optimizer.history[\"X\"])[trj_ids,:]\n", + " closest_x = min(trj_values,key=lambda x: np.linalg.norm(np.array(x)-np.array(central_values))) \n", + " graph = gm.get_graph(closest_x)\n", + " draw_joint_point(graph)\n", + " plt.savefig(os.path.join(saver.path, \"closest_topology.jpg\"))\n", + " plt.close()\n", + " with output_4:\n", + " print(metric_out(-optimizer.history[\"F\"][best_id][0])) \n", + "\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.get_graph(closest_x), builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " #fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.get_graph(np.round(best_x,4)), builder)\n", + " visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + " )\n", + " with fake_output:\n", + " visualizer.viewer = meshcat.Visualizer()\n", + " visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + " )\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " with output_2:\n", + " output_2.clear_output(wait=True)\n", + " display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + " return best_x, closest_x\n", + "\n", + "def go_to_point(robot, point):\n", + " to_start_from_init = add_auxilary_points_to_trajectory(np.array([point]).T)\n", + " traj_6d = convert_x_y_to_6d_traj_xz(to_start_from_init[0], to_start_from_init[1])\n", + " traj_manager = TrajectoryIKManager()\n", + " traj_manager.register_model(robot.model, robot.constraint_models)\n", + " traj_manager.set_solver(traj_manager.default_name)\n", + " pos, q_arrs, __, reach_array = traj_manager.follow_trajectory(\n", + " traj_6d, np.zeros(robot.model.nq)\n", + " )\n", + " result_q = np.zeros(robot.model.nq)\n", + " if reach_array[-1]:\n", + " result_q = q_arrs[-1]\n", + " else:\n", + " raise Exception(\"Point is not reachable\")\n", + " return result_q\n", + "\n", + "def simulate(out, path, subpath, values,title=\"\"):\n", + " if os.path.exists(os.path.join(path, subpath)):\n", + " with out:\n", + " display(Image(os.path.join(path, subpath)))\n", + " else:\n", + " global gm, trajectory\n", + " #robo, __ = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " graph = gm.get_graph(np.round(values,4))\n", + " robo, __ = jps_graph2pinocchio_meshes_robot(graph, builder)\n", + " name_ee = \"EE\"\n", + " point = trajectory[50,[0,2]]\n", + " start_q = go_to_point(robo, point)\n", + " test = TrajectoryMovements(trajectory[:,[0,2]][[50, 75, 99],:], 1, 0.01, name_ee)\n", + " pin.framesForwardKinematics(robo.model, robo.data, start_q)\n", + " time, __, __ = test.prepare_trajectory(robo)\n", + " __, __, __, tau_arr, pos_ee, __ = test.simulate(robo, start_q, False)\n", + " with out:\n", + " out.clear_output(wait=True)\n", + " for i in range(tau_arr.shape[1]):\n", + "\n", + " plt.plot(\n", + " time,\n", + " tau_arr[:, i],\n", + " linewidth=2,\n", + " label=f\"Привод {i+1}: макс {np.max(np.abs(tau_arr[:,i])):.2f} Нм; средний {np.mean(np.abs(tau_arr[:,i])):.2f} Нм\",\n", + " )\n", + " plt.title(title)\n", + " plt.xlabel(\"Время, [c]\")\n", + " plt.ylabel(\"Момент на приводе, [Нм]\")\n", + " plt.ylim((-15, 15))\n", + " plt.xlim((0, 1.0))\n", + " plt.yticks(np.arange(-15, 15.1, 5))\n", + " plt.grid()\n", + " plt.legend()\n", + " plt.savefig(os.path.join(path, subpath))\n", + " plt.show()\n", + "\n", + "# create and attach callback to the radio_buttons change\n", + "def on_selection_change(change):\n", + " global gm, visualizer\n", + " #output.clear_output(wait=True)\n", + " if proceed_button.disabled:\n", + " proceed_button.disabled = False\n", + " gm = change['new']\n", + " values = gm.generate_central_from_mutation_range()\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "radio_buttons.observe(on_selection_change, names=\"value\")\n", + "\n", + "\n", + "def on_slider_change(change):\n", + " global n_moving_joint, slider_value, visualizer, gm\n", + " values = gm.generate_central_from_mutation_range()\n", + " slider_value = change[\"new\"]\n", + " values[n_moving_joint] = change[\"new\"]\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "# set the default trajectory name for the case if user didnt choose anything\n", + "trajectory_name = \"central_vertical\"\n", + "\n", + "\n", + "def on_trajectory_change(change):\n", + " global trajectory, visualizer, trajectory_name\n", + " trajectory_name = change[\"new\"]\n", + " with output:\n", + " if change[\"new\"] == \"left_vertical\":\n", + " trajectory = left_vertical\n", + " elif change[\"new\"] == \"central_vertical\":\n", + " trajectory = central_vertical\n", + " elif change[\"new\"] == \"right_vertical\":\n", + " trajectory = right_vertical\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(visualizer.model))\n", + "\n", + "\n", + "def proceed_to_optimization_stage(b):\n", + " global visualizer\n", + " with global_output:\n", + " clear_output(wait=True)\n", + " gm.freeze_joint(active_joint, active_joint.r)\n", + " gm.set_mutation_ranges()\n", + " central_values = gm.generate_central_from_mutation_range()\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + "\n", + " # visualizer.clean()\n", + " # add_trajectory_to_vis(visualizer, trajectory)\n", + " # visualizer.loadViewerModel()\n", + "\n", + " with global_output:\n", + " display(widgets.HBox([output, output_1]))\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " # poses, q_fixed, constraint_errors,reach_array = ik_manager.follow_trajectory(trajectory, viz=visualizer)\n", + " name = f\"widget\\\\{gm.name}\" + f\"_{slider_value}\" + f\"_{trajectory_name}\"\n", + " saver, optimizer = prepare_optimizer(name)\n", + " \n", + " # clear_output(wait = True)\n", + " # display(widgets.VBox([widgets.HBox([output, output_1,]), widgets.HBox([output_2, output_3]),first_run_button]))\n", + " best_x,closest_x = run_optimization(saver, optimizer,central_values)\n", + " simulate(output_1, saver.path, \"initial_plot.jpg\", closest_x, \"Исходный механизм\")\n", + " simulate(output_3, saver.path, \"optimized_plot.jpg\", best_x, \"Оптимизированный механизм\")\n", + " global_output.clear_output(wait=True)\n", + " with global_output:\n", + " display(\n", + " widgets.VBox(\n", + " [\n", + " widgets.HBox(\n", + " [\n", + " output,\n", + " output_1,\n", + " ]\n", + " ),\n", + " widgets.HBox([output_2, output_3]),\n", + " first_run_button,\n", + " output_4\n", + " ]\n", + " )\n", + " )\n", + "\n", + "\n", + "# Function to handle proceed button click\n", + "def proceed_to_next_stage(b):\n", + " global active_joint, n_moving_joint, slider_value, trajectory\n", + " \n", + " with global_output:\n", + " clear_output(wait=True)\n", + " \n", + " if radio_buttons.value is not None:\n", + " radio_buttons.unobserve_all()\n", + " # this block finds the second actuator and the values for the slider\n", + " for i, key in enumerate(list(gm.mutation_ranges.keys())):\n", + " joint = gm.get_node_by_name(key[:-2])\n", + " if joint.active:\n", + " value = gm.generator_dict[joint]\n", + " if (\n", + " value.mutation_type == MutationType.ABSOLUTE\n", + " or value.mutation_type == MutationType.RELATIVE\n", + " ) and key[-1] == \"0\":\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[key][0],\n", + " gm.mutation_ranges[key][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " elif (\n", + " value.mutation_type == MutationType.RELATIVE_PERCENTAGE\n", + " and key[-1] == \"2\"\n", + " ):\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][0],\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " radio_buttons.close()\n", + " # create and start observing widgets for actuator position and trajectory choice\n", + " slider = widgets.SelectionSlider(\n", + " options=values,\n", + " value=values[0],\n", + " description=\"Выберите положение мотора:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"450px\", height=\"50px\"),\n", + " )\n", + " slider.observe(on_slider_change, names=\"value\")\n", + " slider_trajectory = widgets.RadioButtons(\n", + " options=[\"left_vertical\", \"central_vertical\", \"right_vertical\"],\n", + " value=\"central_vertical\",\n", + " description=\"Выберите траекторию:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"500px\", height=\"100px\"),\n", + " )\n", + " slider_trajectory.observe(on_trajectory_change, names=\"value\")\n", + " # change the button description and callback\n", + " proceed_button.description = \"Перейти к оптимизации\"\n", + " proceed_button.on_click(proceed_to_next_stage, remove=True)\n", + " proceed_button.on_click(proceed_to_optimization_stage)\n", + " pos = gm.generate_central_from_mutation_range()\n", + " slider_value = values[0]\n", + " pos[n_moving_joint] = values[0]\n", + " output.clear_output(wait=True)\n", + " \n", + " trajectory = central_vertical\n", + " gm.get_graph(pos)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(\n", + " gm.graph, builder\n", + " )\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " first_run_button.on_click(run_simulation)\n", + " \n", + " #output_1.clear_output()\n", + " with global_output:\n", + " #display(widgets.HBox([widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]), output]))\n", + "\n", + " #display(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button]),output]))\n", + " # with output_1:\n", + " # display(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]))\n", + " \n", + " output_2.append_display_data(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]))\n", + " #global_output.append_display_data(widgets.HBox([output_1, output]))\n", + " display(widgets.HBox(children=[output_2, output]))\n", + " #display(output_1, output)\n", + "\n", + "def run_simulation(b):\n", + " global gm\n", + " ik_manager = TrajectoryIKManager()\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " poses, q_fixed, constraint_errors, reach_array = ik_manager.follow_trajectory(\n", + " trajectory, viz=visualizer\n", + " )\n", + " time.sleep(0.5)\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "proceed_button.on_click(proceed_to_next_stage)\n", + "\n", + "\n", + "#widgets.VBox([radio_buttons, proceed_button])\n", + "#widgets.HBox([output,radio_buttons, output])\n", + "output.append_display_data(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "output_1.append_display_data(widgets.VBox([radio_buttons, proceed_button]))\n", + "\n", + "#global_output.append_display_data(widgets.HBox([output_1, output]))\n", + "# global_output.append_display_data(output)\n", + "\n", + " #display(widgets.HBox([widgets.VBox([radio_buttons, proceed_button]), output]))\n", + " # display(widgets.VBox([radio_buttons, proceed_button]), output)\n", + " \n", + " # with output:\n", + " # output.clear_output(wait=True)\n", + " # display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 148, + "metadata": {}, + "outputs": [], + "source": [ + "with global_output:\n", + " #global_output.clear_output(wait=True)\n", + " display(widgets.HBox([output_1, output]))\n", + " #display(widgets.VBox(children=[output, widgets.VBox(children=[radio_buttons, proceed_button])], \n", + " #layout=widgets.Layout(width='50%', justify_content='space-around')))" + ] + }, + { + "cell_type": "code", + "execution_count": 149, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6c9f73e491f64325ba546256069381e4", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output(outputs=({'output_type': 'display_data', 'data': {'text/plain': 'HBox(children=(Output(outputs=({\\'outp…" + ] + }, + "execution_count": 149, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "global_output" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/jmoves/apps/widjetdemo/suspension_optimization_FIXED.ipynb b/jmoves/apps/widjetdemo/suspension_optimization_FIXED.ipynb new file mode 100644 index 00000000..dd29976b --- /dev/null +++ b/jmoves/apps/widjetdemo/suspension_optimization_FIXED.ipynb @@ -0,0 +1,920 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "os.environ[\"MESHCAT_WEB_ROOT_PATH\"] = \"/\"\n", + "os.environ[\"MESHCAT_PUBLIC_HOST\"] = \"172.17.0.2\"\n", + "os.environ[\"MESHCAT_WEB_PORT\"] = \"7000\"\n", + "os.environ[\"MESHCAT_WEB_PUBLIC_PORT\"] = \"7000\"" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "import multiprocessing\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import os\n", + "import pinocchio as pin\n", + "import meshcat\n", + "import time\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from pymoo.algorithms.moo.age2 import AGEMOEA2\n", + "from pymoo.decomposition.asf import ASF\n", + "from pymoo.algorithms.soo.nonconvex.pso import PSO\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import SingleCriterionProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.pinokla.calc_criterion import (\n", + " ActuatedMass,\n", + " EffectiveInertiaCompute,\n", + " MovmentSurface,\n", + " NeutralPoseMass,\n", + " ManipJacobian,\n", + ")\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.default_traj import (\n", + " add_auxilary_points_to_trajectory,\n", + " convert_x_y_to_6d_traj_xz,\n", + " get_vertical_trajectory,\n", + " create_simple_step_trajectory,\n", + " get_workspace_trajectory,\n", + ")\n", + "from auto_robot_design.optimization.rewards.reward_base import (\n", + " PositioningConstrain,\n", + " PositioningErrorCalculator,\n", + " RewardManager,\n", + ")\n", + "from auto_robot_design.optimization.rewards.pure_jacobian_rewards import ZRRReward\n", + "from auto_robot_design.description.builder import (\n", + " ParametrizedBuilder,\n", + " DetailedURDFCreatorFixedEE,\n", + " URDFLinkCreater3DConstraints,\n", + " jps_graph2pinocchio_robot,\n", + " MIT_CHEETAH_PARAMS_DICT,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.mesh_builder import (\n", + " MeshBuilder,\n", + " jps_graph2pinocchio_meshes_robot,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.urdf_creater import (\n", + " URDFMeshCreator,\n", + " MeshCreator,\n", + ")\n", + "from auto_robot_design.generator.topologies.graph_manager_2l import (\n", + " GraphManager2L,\n", + " get_preset_by_index,\n", + " MutationType,\n", + ")\n", + "from auto_robot_design.generator.topologies.bounds_preset import (\n", + " get_preset_by_index_with_bounds,\n", + ")\n", + "from auto_robot_design.optimization.saver import ProblemSaver\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "from pinocchio.visualize import MeshcatVisualizer\n", + "import ipywidgets as widgets\n", + "from IPython.display import display, clear_output, HTML, IFrame, Image\n", + "import asyncio\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "from auto_robot_design.simulation.trajectory_movments import TrajectoryMovements\n", + "\n", + "pin.seed(1)\n", + "from auto_robot_design.optimization.saver import (\n", + " load_checkpoint,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "thickness = MIT_CHEETAH_PARAMS_DICT[\"thickness\"]\n", + "actuator = MIT_CHEETAH_PARAMS_DICT[\"actuator\"]\n", + "density = MIT_CHEETAH_PARAMS_DICT[\"density\"]\n", + "body_density = MIT_CHEETAH_PARAMS_DICT[\"body_density\"]\n", + "\n", + "\n", + "old_builder = ParametrizedBuilder(\n", + " URDFLinkCreater3DConstraints,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.12},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"],\n", + ")\n", + "\n", + "\n", + "predined_mesh = {\"G\": \"../../mesh/body.stl\", \"EE\": \"../../mesh/wheel_small.stl\"}\n", + "\n", + "mesh_creator = MeshCreator(predined_mesh)\n", + "urdf_creator = URDFMeshCreator()\n", + "builder = MeshBuilder(\n", + " urdf_creator,\n", + " mesh_creator,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.12},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# 1) trajectories\n", + "\n", + "workspace_trajectory = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " get_workspace_trajectory([-0.15, -0.35], 0.14, 0.3, 30, 60)\n", + " )\n", + ")\n", + "# ground_symmetric_step = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory(\n", + "# starting_point=[-0.1, -0.31], step_height=0.05, step_width=0.2, n_points=50))\n", + "\n", + "ground_symmetric_step1 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14, -0.34],\n", + " step_height=0.12,\n", + " step_width=0.28,\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "ground_symmetric_step2 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.015, -0.34],\n", + " step_height=0.10,\n", + " step_width=-2 * (-0.14 + 0.015),\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "ground_symmetric_step3 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.025, -0.34],\n", + " step_height=0.08,\n", + " step_width=-2 * (-0.14 + 0.025),\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "central_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0, 100))\n", + ")\n", + "\n", + "left_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, -0.12, 100))\n", + ")\n", + "\n", + "right_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0.12, 100))\n", + ")\n", + "\n", + "# set up special classes for reward calculations\n", + "error_calculator = PositioningErrorCalculator(\n", + " error_key=\"error\", jacobian_key=\"Manip_Jacobian\"\n", + ")\n", + "# soft_constrain = PositioningConstrain(\n", + "# error_calculator=error_calculator, points=[workspace_trajectory])\n", + "soft_constrain = PositioningConstrain(\n", + " error_calculator=error_calculator, points=[ground_symmetric_step1]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "# 2) characteristics to be calculated\n", + "# criteria that either calculated without any reference to points, or calculated through the aggregation of values from all points on trajectory\n", + "dict_trajectory_criteria = {\n", + " \"MASS\": NeutralPoseMass(),\n", + "}\n", + "# criteria calculated for each point on the trajectory\n", + "dict_point_criteria = {\n", + " \"Effective_Inertia\": EffectiveInertiaCompute(),\n", + " \"Actuated_Mass\": ActuatedMass(),\n", + " \"Manip_Jacobian\": ManipJacobian(MovmentSurface.XZ),\n", + "}\n", + "# special object that calculates the criteria for a robot and a trajectory\n", + "crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "# set the rewards and weights for the optimization task\n", + "zrr = ZRRReward(\n", + " manipulability_key=\"Manip_Jacobian\", trajectory_key=\"traj_6d\", error_key=\"error\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "class SetCamTarget:\n", + " \"\"\"Set the camera target point.\"\"\"\n", + "\n", + " __slots__ = [\"value\"]\n", + "\n", + " def __init__(self, pos):\n", + " self.value = pos\n", + "\n", + " def lower(self):\n", + " return {\"type\": \"set_target\", \"path\": \"\", \"value\": list(self.value)}\n", + "\n", + "\n", + "def add_trajectory_to_vis(pin_vis, trajectory):\n", + " material = meshcat.geometry.MeshPhongMaterial()\n", + " material.color = int(0xFF00FF)\n", + " material.opacity = 0.3\n", + " for idx, point in enumerate(trajectory):\n", + " ballID = \"world/ball\" + str(idx)\n", + " pin_vis.viewer[ballID].set_object(meshcat.geometry.Sphere(0.01), material)\n", + " T = np.r_[np.c_[np.eye(3), point[:3]], np.array([[0, 0, 0, 1]])]\n", + " pin_vis.viewer[ballID].set_transform(T)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### First step: Choose the topology for optimization\n", + "### Second step: Choose the placement of an actuator and trajectory\n", + "### Third step: results" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "/opt/conda/lib/python3.9/runpy.py:127: RuntimeWarning: 'meshcat.servers.zmqserver' found in sys.modules after import of package 'meshcat.servers', but prior to execution of 'meshcat.servers.zmqserver'; this may result in unpredictable behaviour\n", + " warn(RuntimeWarning(msg))\n", + "Port: 6000 in use, trying another...\n", + "Traceback (most recent call last):\n", + " File \"/opt/conda/lib/python3.9/runpy.py\", line 197, in _run_module_as_main\n", + " return _run_code(code, main_globals, None,\n", + " File \"/opt/conda/lib/python3.9/runpy.py\", line 87, in _run_code\n", + " exec(code, run_globals)\n", + " File \"/opt/conda/lib/python3.9/site-packages/meshcat/servers/zmqserver.py\", line 442, in \n", + " main()\n", + " File \"/opt/conda/lib/python3.9/site-packages/meshcat/servers/zmqserver.py\", line 427, in main\n", + " bridge = ZMQWebSocketBridge(zmq_url=results.zmq_url,\n", + " File \"/opt/conda/lib/python3.9/site-packages/meshcat/servers/zmqserver.py\", line 217, in __init__\n", + " self.app.listen(port, **listen_kwargs)\n", + " File \"/opt/conda/lib/python3.9/site-packages/tornado/web.py\", line 2211, in listen\n", + " server.listen(\n", + " File \"/opt/conda/lib/python3.9/site-packages/tornado/tcpserver.py\", line 183, in listen\n", + " sockets = bind_sockets(\n", + " File \"/opt/conda/lib/python3.9/site-packages/tornado/netutil.py\", line 162, in bind_sockets\n", + " sock.bind(sockaddr)\n", + "OSError: [Errno 98] Address already in use\n", + "\n" + ] + }, + { + "ename": "RuntimeError", + "evalue": "the meshcat server process exited prematurely with exit code 1", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mRuntimeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[18], line 44\u001b[0m\n\u001b[1;32m 38\u001b[0m fixed_robot, free_robot \u001b[38;5;241m=\u001b[39m jps_graph2pinocchio_meshes_robot(gm\u001b[38;5;241m.\u001b[39mgraph, builder)\n\u001b[1;32m 40\u001b[0m visualizer \u001b[38;5;241m=\u001b[39m MeshcatVisualizer(\n\u001b[1;32m 41\u001b[0m fixed_robot\u001b[38;5;241m.\u001b[39mmodel, fixed_robot\u001b[38;5;241m.\u001b[39mvisual_model, fixed_robot\u001b[38;5;241m.\u001b[39mvisual_model\n\u001b[1;32m 42\u001b[0m )\n\u001b[0;32m---> 44\u001b[0m visualizer\u001b[38;5;241m.\u001b[39mviewer \u001b[38;5;241m=\u001b[39m \u001b[43mmeshcat\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mVisualizer\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 45\u001b[0m \u001b[38;5;66;03m# from meshcat.jupyter import JupyterVisualizer\u001b[39;00m\n\u001b[1;32m 46\u001b[0m \u001b[38;5;66;03m# visualizer.viewer = JupyterVisualizer()\u001b[39;00m\n\u001b[1;32m 47\u001b[0m \u001b[38;5;66;03m# visualizer.viewer = meshcat.Visualizer(zmq_url=\"tcp://*:8890\")\u001b[39;00m\n\u001b[1;32m 48\u001b[0m \n\u001b[1;32m 49\u001b[0m \n\u001b[1;32m 50\u001b[0m \u001b[38;5;66;03m# isualizer.viewer.window.send(SetCamTarget([0,-0.3,0]))\u001b[39;00m\n\u001b[1;32m 51\u001b[0m visualizer\u001b[38;5;241m.\u001b[39mviewer[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m/Background\u001b[39m\u001b[38;5;124m\"\u001b[39m]\u001b[38;5;241m.\u001b[39mset_property(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvisible\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;28;01mFalse\u001b[39;00m)\n", + "File \u001b[0;32m/opt/conda/lib/python3.9/site-packages/meshcat/visualizer.py:92\u001b[0m, in \u001b[0;36mVisualizer.__init__\u001b[0;34m(self, zmq_url, window, server_args)\u001b[0m\n\u001b[1;32m 90\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, zmq_url\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, window\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, server_args\u001b[38;5;241m=\u001b[39m[]):\n\u001b[1;32m 91\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m window \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m---> 92\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mwindow \u001b[38;5;241m=\u001b[39m \u001b[43mViewerWindow\u001b[49m\u001b[43m(\u001b[49m\u001b[43mzmq_url\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mzmq_url\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstart_server\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mzmq_url\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mserver_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserver_args\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 93\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 94\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mwindow \u001b[38;5;241m=\u001b[39m window\n", + "File \u001b[0;32m/opt/conda/lib/python3.9/site-packages/meshcat/visualizer.py:20\u001b[0m, in \u001b[0;36mViewerWindow.__init__\u001b[0;34m(self, zmq_url, start_server, server_args)\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, zmq_url, start_server, server_args):\n\u001b[1;32m 19\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m start_server:\n\u001b[0;32m---> 20\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mserver_proc, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mzmq_url, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mweb_url \u001b[38;5;241m=\u001b[39m \u001b[43mstart_zmq_server_as_subprocess\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 21\u001b[0m \u001b[43m \u001b[49m\u001b[43mzmq_url\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mzmq_url\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mserver_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mserver_args\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 23\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 24\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mserver_proc \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n", + "File \u001b[0;32m/opt/conda/lib/python3.9/site-packages/meshcat/servers/zmqserver.py:70\u001b[0m, in \u001b[0;36mstart_zmq_server_as_subprocess\u001b[0;34m(zmq_url, server_args)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28mprint\u001b[39m(outs\u001b[38;5;241m.\u001b[39mdecode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf-8\u001b[39m\u001b[38;5;124m\"\u001b[39m))\n\u001b[1;32m 69\u001b[0m \u001b[38;5;28mprint\u001b[39m(errs\u001b[38;5;241m.\u001b[39mdecode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf-8\u001b[39m\u001b[38;5;124m\"\u001b[39m))\n\u001b[0;32m---> 70\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mthe meshcat server process exited prematurely with exit code \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[38;5;28mstr\u001b[39m(server_proc\u001b[38;5;241m.\u001b[39mpoll()))\n\u001b[1;32m 71\u001b[0m zmq_url \u001b[38;5;241m=\u001b[39m match_zmq_url(line)\n\u001b[1;32m 72\u001b[0m web_url \u001b[38;5;241m=\u001b[39m match_web_url(server_proc\u001b[38;5;241m.\u001b[39mstdout\u001b[38;5;241m.\u001b[39mreadline()\u001b[38;5;241m.\u001b[39mstrip()\u001b[38;5;241m.\u001b[39mdecode(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mutf-8\u001b[39m\u001b[38;5;124m\"\u001b[39m))\n", + "\u001b[0;31mRuntimeError\u001b[0m: the meshcat server process exited prematurely with exit code 1" + ] + } + ], + "source": [ + "objects = {f\"Topology_{i}\": get_preset_by_index_with_bounds(i) for i in range(9)}\n", + "\n", + "metric_out = lambda x: f\"Метрики оптимизированного механизма: \\n Передаточное отношение по вертикальной оси: {x:.2f}\"\n", + "\n", + "# Create widget for meshcat output\n", + "output = widgets.Output()\n", + "output_1 = widgets.Output()\n", + "output_2 = widgets.Output()\n", + "output_3 = widgets.Output()\n", + "output_4 = widgets.Output()\n", + "# Create the radio button widget\n", + "radio_buttons = widgets.RadioButtons(\n", + " options=objects, description=\"Choose a topology for optimization:\", disabled=False\n", + ")\n", + "# Set initial value to None\n", + "radio_buttons.value = None\n", + "\n", + "proceed_button = widgets.Button(\n", + " description=\"Confirm choice\", layout=widgets.Layout(width=\"200px\", height=\"40px\")\n", + ") # Set width and height)\n", + "proceed_button.style.button_color = \"lightgreen\"\n", + "first_run_button = widgets.Button(\n", + " description=\"run_simulation\", layout=widgets.Layout(width=\"200px\", height=\"40px\")\n", + ") # Set width and height)\n", + "first_run_button.style.button_color = \"lightblue\"\n", + "\n", + "# global variables\n", + "slider_value = None\n", + "trajectory = None\n", + "n_moving_joint = -1\n", + "active_joint = None\n", + "# Set initial value of the gm\n", + "gm: GraphManager2L = get_preset_by_index_with_bounds(-1)\n", + "_values = gm.generate_central_from_mutation_range()\n", + "gm.get_graph(_values)\n", + "\n", + "# fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + "fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + "\n", + "visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + ")\n", + "\n", + "visualizer.viewer = meshcat.Visualizer()\n", + "# from meshcat.jupyter import JupyterVisualizer\n", + "# visualizer.viewer = JupyterVisualizer()\n", + "# visualizer.viewer = meshcat.Visualizer(zmq_url=\"tcp://*:8890\")\n", + "\n", + "\n", + "# isualizer.viewer.window.send(SetCamTarget([0,-0.3,0]))\n", + "visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + ")\n", + "visualizer.clean()\n", + "visualizer.loadViewerModel()\n", + "visualizer.display(pin.neutral(fixed_robot.model))\n", + "with output:\n", + " output.clear_output(wait=True)\n", + " display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "\n", + "def prepare_optimizer(name):\n", + " global trajectory, gm\n", + " reward_manager = RewardManager(crag=crag)\n", + " reward_manager.add_trajectory(trajectory, 0)\n", + " reward_manager.add_reward(zrr, 0, 1)\n", + " N_PROCESS = 8\n", + " pool = multiprocessing.Pool(N_PROCESS)\n", + " runner = StarmapParallelization(pool.starmap)\n", + "\n", + " population_size = 4\n", + " # create the problem for the current optimization\n", + "\n", + " problem = SingleCriterionProblem(\n", + " gm,\n", + " old_builder,\n", + " reward_manager,\n", + " soft_constrain,\n", + " elementwise_runner=runner,\n", + " Actuator=actuator,\n", + " )\n", + " saver = ProblemSaver(problem, name, False)\n", + "\n", + " algorithm = PSO(pop_size=population_size, save_history=True)\n", + " optimizer = PymooOptimizer(problem, algorithm, saver)\n", + " return saver, optimizer\n", + "\n", + "\n", + "def run_optimization(saver, optimizer):\n", + " global trajectory, gm, visualizer\n", + " if os.path.exists(os.path.join(saver.path, \"optimized_topology.jpg\")):\n", + " problem = SingleCriterionProblem.load(saver.path)\n", + " checkpoint = load_checkpoint(saver.path)\n", + " optimizer = PymooOptimizer(problem, checkpoint)\n", + " optimizer.load_history(saver.path)\n", + " res = optimizer.run()\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + " else:\n", + "\n", + " # create the problem for the current optimization\n", + " with output_2:\n", + " print(\"Optimization...\")\n", + " n_generations = 10\n", + " saver.save_nonmutable()\n", + " res = optimizer.run(\n", + " True,\n", + " **{\"seed\": 1, \"termination\": (\"n_gen\", n_generations), \"verbose\": False},\n", + " )\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + " draw_joint_point(graph)\n", + " plt.savefig(os.path.join(saver.path, \"optimized_topology.jpg\"))\n", + " plt.close()\n", + " with output_4:\n", + " print(metric_out(-optimizer.history[\"F\"][best_id][0]))\n", + "\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + " )\n", + " visualizer.viewer = meshcat.Visualizer()\n", + " # isualizer.viewer.window.send(SetCamTarget([0,-0.3,0]))\n", + " visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + " )\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " with output_2:\n", + " output_2.clear_output(wait=True)\n", + " display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "\n", + "\n", + "def go_to_point(robot, point):\n", + " to_start_from_init = add_auxilary_points_to_trajectory(np.array([point]).T)\n", + " traj_6d = convert_x_y_to_6d_traj_xz(to_start_from_init[0], to_start_from_init[1])\n", + " traj_manager = TrajectoryIKManager()\n", + " traj_manager.register_model(robot.model, robot.constraint_models)\n", + " traj_manager.set_solver(traj_manager.default_name)\n", + " pos, q_arrs, __, reach_array = traj_manager.follow_trajectory(\n", + " traj_6d, np.zeros(robot.model.nq)\n", + " )\n", + " result_q = np.zeros(robot.model.nq)\n", + " if reach_array[-1]:\n", + " result_q = q_arrs[-1]\n", + " else:\n", + " raise Exception(\"Point is not reachable\")\n", + " return result_q\n", + "\n", + "\n", + "def simulate(out, path, subpath):\n", + " # # if os.path.exists(os.path.join(path, subpath)):\n", + " # # with out:\n", + " # # display(Image(os.path.join(path, subpath)))\n", + " # else:\n", + " global gm, trajectory\n", + " # robo, __ = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " robo, __ = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " name_ee = \"EE\"\n", + " point = trajectory[50, [0, 2]]\n", + " start_q = go_to_point(robo, point)\n", + " test = TrajectoryMovements(trajectory[:, [0, 2]][[50, 75, 99], :], 1, 0.01, name_ee)\n", + " pin.framesForwardKinematics(robo.model, robo.data, start_q)\n", + " # # q, vq, acc, tau, pos_ee, power\n", + " time, __, __ = test.prepare_trajectory(robo)\n", + " __, __, __, tau_arr, pos_ee, __ = test.simulate(robo, start_q, False)\n", + " # des_traj = np.array(ground_symmetric_step1).T\n", + " # plt.plot(pos_ee[:,0], pos_ee[:,2])\n", + " # plt.plot(des_traj[:,0], des_traj[:,1], \".\")\n", + " with out:\n", + " for i in range(tau_arr.shape[1]):\n", + " plt.plot(\n", + " time,\n", + " tau_arr[:, i],\n", + " linewidth=2,\n", + " label=f\"Привод {i+1}: макс {np.max(np.abs(tau_arr[:,i])):.2f} Нм; средний {np.mean(np.abs(tau_arr[:,i])):.2f} Нм\",\n", + " )\n", + " plt.xlabel(\"Время, [c]\")\n", + " plt.ylabel(\"Момент на приводе, [Нм]\")\n", + " plt.ylim((-15, 15))\n", + " plt.xlim((0, 1.0))\n", + " plt.yticks(np.arange(-15, 15.1, 5))\n", + " plt.grid()\n", + " plt.legend()\n", + " plt.savefig(os.path.join(path, subpath))\n", + " plt.show()\n", + "\n", + "\n", + "# create and attach callback to the radio_buttons change\n", + "def on_selection_change(change):\n", + " global gm, visualizer\n", + " # output.clear_output(wait=True)\n", + " gm = change[\"new\"]\n", + " values = gm.generate_central_from_mutation_range()\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "\n", + "radio_buttons.observe(on_selection_change, names=\"value\")\n", + "\n", + "\n", + "def on_slider_change(change):\n", + " global n_moving_joint, slider_value, visualizer, gm\n", + " values = gm.generate_central_from_mutation_range()\n", + " slider_value = change[\"new\"]\n", + " values[n_moving_joint] = change[\"new\"]\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "\n", + "trajectory_name = \"central_vertical\"\n", + "\n", + "\n", + "def on_trajectory_change(change):\n", + " global trajectory, visualizer, trajectory_name\n", + " trajectory_name = change[\"new\"]\n", + " with output:\n", + " if change[\"new\"] == \"left_vertical\":\n", + " trajectory = left_vertical\n", + " elif change[\"new\"] == \"central_vertical\":\n", + " trajectory = central_vertical\n", + " elif change[\"new\"] == \"right_vertical\":\n", + " trajectory = right_vertical\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(visualizer.model))\n", + " # output.clear_output(wait = True)\n", + " # plt.plot(trajectory[50:, 0], trajectory[50:, 2])\n", + " # draw_joint_point(gm.graph)\n", + " # plt.show()\n", + "\n", + "\n", + "def proceed_to_optimization_stage(b):\n", + " global visualizer\n", + " clear_output(wait=True)\n", + " gm.freeze_joint(active_joint, active_joint.r)\n", + " gm.set_mutation_ranges()\n", + " # display(output)\n", + "\n", + " ik_manager = TrajectoryIKManager()\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " # time.sleep(5)\n", + " visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + " )\n", + " visualizer.viewer = meshcat.Visualizer()\n", + " visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0, 0.5]\n", + " )\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " display(widgets.HBox([output, output_1]))\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " # poses, q_fixed, constraint_errors,reach_array = ik_manager.follow_trajectory(trajectory, viz=visualizer)\n", + " name = f\"widget\\\\{gm.name}\" + f\"_{slider_value}\" + f\"_{trajectory_name}\"\n", + " saver, optimizer = prepare_optimizer(name)\n", + " simulate(output_1, saver.path, \"initial_plot.jpg\")\n", + " clear_output(wait=True)\n", + " display(\n", + " widgets.VBox(\n", + " [\n", + " widgets.HBox(\n", + " [\n", + " output,\n", + " output_1,\n", + " ]\n", + " ),\n", + " widgets.HBox([output_2, output_3]),\n", + " ]\n", + " )\n", + " )\n", + " run_optimization(saver, optimizer)\n", + " simulate(output_3, saver.path, \"optimized_plot.jpg\")\n", + " clear_output(wait=True)\n", + " display(\n", + " widgets.VBox(\n", + " [\n", + " widgets.HBox(\n", + " [\n", + " output,\n", + " output_1,\n", + " ]\n", + " ),\n", + " widgets.HBox([output_2, output_3]),\n", + " first_run_button,\n", + " output_4\n", + " ]\n", + " )\n", + " )\n", + "\n", + "\n", + "# Function to handle proceed button click\n", + "def proceed_to_next_stage(b):\n", + " global active_joint, n_moving_joint, slider_value, trajectory\n", + " if radio_buttons.value is not None:\n", + " radio_buttons.unobserve_all()\n", + " clear_output(wait=True)\n", + " # this block finds the second actuator and the values for the slider\n", + " for i, key in enumerate(list(gm.mutation_ranges.keys())):\n", + " joint = gm.get_node_by_name(key[:-2])\n", + " if joint.active:\n", + " value = gm.generator_dict[joint]\n", + " if (\n", + " value.mutation_type == MutationType.ABSOLUTE\n", + " or value.mutation_type == MutationType.RELATIVE\n", + " ) and key[-1] == \"0\":\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[key][0],\n", + " gm.mutation_ranges[key][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " elif (\n", + " value.mutation_type == MutationType.RELATIVE_PERCENTAGE\n", + " and key[-1] == \"2\"\n", + " ):\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][0],\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " # create and start observing widgets for actuator position and trajectory choice\n", + " slider = widgets.SelectionSlider(\n", + " options=values,\n", + " value=values[0],\n", + " description=\"Chose the motor position:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"500px\", height=\"50px\"),\n", + " )\n", + " slider.observe(on_slider_change, names=\"value\")\n", + " slider_trajectory = widgets.RadioButtons(\n", + " options=[\"left_vertical\", \"central_vertical\", \"right_vertical\"],\n", + " value=\"central_vertical\",\n", + " description=\"Chose the trajectory:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"500px\", height=\"100px\"),\n", + " )\n", + " slider_trajectory.observe(on_trajectory_change, names=\"value\")\n", + " # change the button description and callback\n", + " proceed_button.description = \"Proceed to optimization stage\"\n", + " proceed_button.on_click(proceed_to_next_stage, remove=True)\n", + " proceed_button.on_click(proceed_to_optimization_stage)\n", + " pos = gm.generate_central_from_mutation_range()\n", + " print(values)\n", + " slider_value = values[0]\n", + " pos[n_moving_joint] = values[0]\n", + " output.clear_output(wait=True)\n", + " with output:\n", + " trajectory = central_vertical\n", + " gm.get_graph(pos)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(\n", + " gm.graph, builder\n", + " )\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " # plt.plot(trajectory[50:, 0], trajectory[50:, 2])\n", + " # draw_joint_point(gm.get_graph(pos))\n", + " # plt.show()\n", + " display(\n", + " HTML(\n", + " \"\"\"\n", + " \n", + " \"\"\"\n", + " )\n", + " )\n", + " first_run_button.on_click(run_simulation)\n", + " display(\n", + " widgets.HBox(\n", + " [\n", + " widgets.VBox(\n", + " [\n", + " slider,\n", + " slider_trajectory,\n", + " widgets.HBox([proceed_button, first_run_button]),\n", + " ]\n", + " ),\n", + " output,\n", + " ]\n", + " )\n", + " )\n", + " else:\n", + " print(\"Please make a selection first.\")\n", + "\n", + "\n", + "def run_simulation(b):\n", + " global gm\n", + " ik_manager = TrajectoryIKManager()\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " poses, q_fixed, constraint_errors, reach_array = ik_manager.follow_trajectory(\n", + " trajectory, viz=visualizer\n", + " )\n", + " time.sleep(0.5)\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "\n", + "proceed_button.on_click(proceed_to_next_stage)\n", + "\n", + "display(\n", + " HTML(\n", + " \"\"\"\n", + "\n", + "\"\"\"\n", + " )\n", + ")\n", + "# display(widgets.HBox([widgets.VBox([radio_buttons, proceed_button]), output]))\n", + "# display(radio_buttons, proceed_button,output)\n", + "\n", + "# draw_joint_point(get_preset_by_index_with_bounds(-1).get_graph(get_preset_by_index_with_bounds(-1).generate_central_from_mutation_range()))\n", + "# plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f7b33dbb5ecf427a80816d4e0c6ce153", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "RadioButtons(description='Choose a topology for optimization:', options={'Topology_0': \n", + " .widget-radio-box label {\n", + " color: blue !important;\n", + " }\n", + " /* Ensure the color stays the same when an option is selected */\n", + " .widget-radio-box input[type=\"radio\"]:checked + label {\n", + " color: blue !important;\n", + " }\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def add_trajectory_to_vis(pin_vis, trajectory):\n", + " material = meshcat.geometry.MeshPhongMaterial()\n", + " material.color = int(0xFF00FF)\n", + " material.color = int(0x00FFFF)\n", + " material.color = int(0xFFFF00)\n", + " material.opacity = 0.3\n", + " for idx, point in enumerate(trajectory):\n", + " if idx <150 and idx%2==0:\n", + " ballID = \"world/ball\" + str(idx)\n", + " pin_vis.viewer[ballID].set_object(meshcat.geometry.Sphere(0.01), material)\n", + " T = np.r_[np.c_[np.eye(3), point[:3]+np.array([0,-0.04,0])], np.array([[0, 0, 0, 1]])]\n", + " pin_vis.viewer[ballID].set_transform(T)\n", + "\n", + "display(\n", + " HTML(\n", + " \"\"\"\n", + "\n", + "\"\"\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### First step: Choose the topology for optimization\n", + "### Second step: Choose the placement of an actuator and trajectory\n", + "### Third step: results" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Topology_0': ,\n", + " 'Topology_1': ,\n", + " 'Topology_2': ,\n", + " 'Topology_3': ,\n", + " 'Topology_4': ,\n", + " 'Topology_5': ,\n", + " 'Topology_6': ,\n", + " 'Topology_7': ,\n", + " 'Topology_8': }" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "objects = {f\"Topology_{i}\": get_preset_by_index_with_bounds(i) for i in range(9) if i not in [3, 5]}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "metadata": {}, + "outputs": [], + "source": [ + "global_output = widgets.Output()\n", + "\n", + "\n", + "\n", + "metric_out = lambda x: f\"Метрики оптимизированного механизма: \\n Передаточное отношение по вертикальной оси: {x:.2f}\"\n", + "\n", + "# Create widget for meshcat output\n", + "output = widgets.Output()\n", + "output_1 = widgets.Output()\n", + "output_2 = widgets.Output()\n", + "output_3 = widgets.Output()\n", + "output_4 = widgets.Output()\n", + "fake_output = widgets.Output()\n", + "# Create the radio button widget\n", + "radio_buttons = widgets.RadioButtons(\n", + " options=objects, description=\"Выберите топологию для оптимизации:\", disabled=False,\n", + " layout=widgets.Layout(width='350px', height='250px')) \n", + "\n", + "# Set initial value to None\n", + "radio_buttons.value = None\n", + "\n", + "proceed_button = widgets.Button(description='Подтвердите выбор',disabled= True,\n", + " layout=widgets.Layout(width='200px', height='40px')) # Set width and height)\n", + "proceed_button.style.button_color = 'lightgreen'\n", + "first_run_button = widgets.Button(description='Визуализировать движение',\n", + " layout=widgets.Layout(width='200px', height='40px')) # Set width and height)\n", + "first_run_button.style.button_color = 'lightblue'\n", + "\n", + "# global variables\n", + "slider_value = None\n", + "trajectory = None\n", + "n_moving_joint = -1\n", + "active_joint = None\n", + "# Set initial value of the gm\n", + "gm: GraphManager2L = get_preset_by_index_with_bounds(-1)\n", + "_values = gm.generate_central_from_mutation_range()\n", + "gm.get_graph(_values)\n", + "\n", + "# fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + "fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + "\n", + "visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + ")\n", + "with fake_output:\n", + " visualizer.viewer = meshcat.Visualizer(server_args=[\"--port=7077\", \"--public-port=7077\", \"--root-path=/first/\"])\n", + "visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + ")\n", + "visualizer.clean()\n", + "visualizer.loadViewerModel()\n", + "visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "\n", + "def prepare_optimizer(name):\n", + " global trajectory, gm\n", + " reward_manager = RewardManager(crag=crag)\n", + " reward_manager.add_trajectory(trajectory, 0)\n", + " reward_manager.add_reward(zrr, 0, 1)\n", + " N_PROCESS = 16\n", + " pool = multiprocessing.Pool(N_PROCESS)\n", + " runner = StarmapParallelization(pool.starmap)\n", + "\n", + " population_size = 32\n", + " # create the problem for the current optimization\n", + " error_calculator = PositioningErrorCalculator(\n", + " error_key='error', jacobian_key=\"Manip_Jacobian\")\n", + " soft_constrain = PositioningConstrain(error_calculator=error_calculator, points = [trajectory])\n", + " problem = SingleCriterionProblem(gm, old_builder, reward_manager,\n", + " soft_constrain, \n", + " elementwise_runner=runner,\n", + " Actuator=actuator)\n", + " saver = ProblemSaver(problem, name, False)\n", + "\n", + " algorithm = PSO(pop_size=population_size, save_history=True)\n", + " optimizer = PymooOptimizer(problem, algorithm, saver)\n", + " return saver, optimizer\n", + "\n", + "def run_optimization(saver, optimizer, central_values):\n", + " global trajectory, gm, visualizer\n", + " if os.path.exists(os.path.join(saver.path, \"optimized_topology.jpg\")):\n", + " problem = SingleCriterionProblem.load(saver.path)\n", + " checkpoint = load_checkpoint(saver.path)\n", + " optimizer = PymooOptimizer(problem, checkpoint)\n", + " optimizer.load_history(saver.path)\n", + " res = optimizer.run()\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(np.round(best_x, 4))\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + " trj_ids = np.where(np.array(optimizer.history[\"F\"])<0)[0]\n", + " trj_values = np.array(optimizer.history[\"X\"])[trj_ids,:]\n", + " closest_x = min(trj_values,key=lambda x: np.linalg.norm(np.array(x)-np.array(central_values))) \n", + " else:\n", + " with output_1:\n", + " clear_output(wait=True)\n", + " print(\"Optimization in progress\")\n", + " display(Image(\"./loading.gif\"))\n", + " # create the problem for the current optimization\n", + " n_generations = 50\n", + " saver.save_nonmutable()\n", + " res = optimizer.run(\n", + " True,\n", + " **{\"seed\": 1, \"termination\": (\"n_gen\", n_generations), \"verbose\": False},\n", + " )\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " #print(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + "\n", + " draw_joint_point(graph)\n", + " plt.savefig(os.path.join(saver.path, \"optimized_topology.jpg\"))\n", + " plt.close()\n", + " trj_ids = np.where(np.array(optimizer.history[\"F\"])<0)[0]\n", + " trj_values = np.array(optimizer.history[\"X\"])[trj_ids,:]\n", + " closest_x = min(trj_values,key=lambda x: np.linalg.norm(np.array(x)-np.array(central_values))) \n", + " graph = gm.get_graph(closest_x)\n", + " draw_joint_point(graph)\n", + " plt.savefig(os.path.join(saver.path, \"closest_topology.jpg\"))\n", + " plt.close()\n", + " with output_4:\n", + " print(metric_out(-optimizer.history[\"F\"][best_id][0])) \n", + "\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.get_graph(closest_x), builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " #fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.get_graph(np.round(best_x,4)), builder)\n", + " visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + " )\n", + " with fake_output:\n", + " visualizer.viewer = meshcat.Visualizer(server_args=[\"--port=7000\", \"--public-port=7080\", \"--root-path=/second/\"])\n", + " visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + " )\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " with output_2:\n", + " output_2.clear_output(wait=True)\n", + " display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + " return best_x, closest_x\n", + "\n", + "def go_to_point(robot, point):\n", + " to_start_from_init = add_auxilary_points_to_trajectory(np.array([point]).T)\n", + " traj_6d = convert_x_y_to_6d_traj_xz(to_start_from_init[0], to_start_from_init[1])\n", + " traj_manager = TrajectoryIKManager()\n", + " traj_manager.register_model(robot.model, robot.constraint_models)\n", + " traj_manager.set_solver(traj_manager.default_name)\n", + " pos, q_arrs, __, reach_array = traj_manager.follow_trajectory(\n", + " traj_6d, np.zeros(robot.model.nq)\n", + " )\n", + " result_q = np.zeros(robot.model.nq)\n", + " if reach_array[-1]:\n", + " result_q = q_arrs[-1]\n", + " else:\n", + " raise Exception(\"Point is not reachable\")\n", + " return result_q\n", + "\n", + "def simulate(out, path, subpath, values,title=\"\"):\n", + " if os.path.exists(os.path.join(path, subpath)):\n", + " with out:\n", + " display(Image(os.path.join(path, subpath)))\n", + " else:\n", + " global gm, trajectory\n", + " #robo, __ = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " graph = gm.get_graph(np.round(values,4))\n", + " robo, __ = jps_graph2pinocchio_meshes_robot(graph, builder)\n", + " name_ee = \"EE\"\n", + " point = trajectory[50,[0,2]]\n", + " start_q = go_to_point(robo, point)\n", + " test = TrajectoryMovements(trajectory[:,[0,2]][[50, 75, 99],:], 1, 0.01, name_ee)\n", + " pin.framesForwardKinematics(robo.model, robo.data, start_q)\n", + " time, __, __ = test.prepare_trajectory(robo)\n", + " __, __, __, tau_arr, pos_ee, __ = test.simulate(robo, start_q, False)\n", + " with out:\n", + " out.clear_output(wait=True)\n", + " for i in range(tau_arr.shape[1]):\n", + "\n", + " plt.plot(\n", + " time,\n", + " tau_arr[:, i],\n", + " linewidth=2,\n", + " label=f\"Привод {i+1}: макс {np.max(np.abs(tau_arr[:,i])):.2f} Нм; средний {np.mean(np.abs(tau_arr[:,i])):.2f} Нм\",\n", + " )\n", + " plt.title(title)\n", + " plt.xlabel(\"Время, [c]\")\n", + " plt.ylabel(\"Момент на приводе, [Нм]\")\n", + " plt.ylim((-15, 15))\n", + " plt.xlim((0, 1.0))\n", + " plt.yticks(np.arange(-15, 15.1, 5))\n", + " plt.grid()\n", + " plt.legend()\n", + " plt.savefig(os.path.join(path, subpath))\n", + " plt.show()\n", + "\n", + "# create and attach callback to the radio_buttons change\n", + "def on_selection_change(change):\n", + " global gm, visualizer\n", + " #output.clear_output(wait=True)\n", + " if proceed_button.disabled:\n", + " proceed_button.disabled = False\n", + " gm = change['new']\n", + " values = gm.generate_central_from_mutation_range()\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "radio_buttons.observe(on_selection_change, names=\"value\")\n", + "\n", + "\n", + "def on_slider_change(change):\n", + " global n_moving_joint, slider_value, visualizer, gm\n", + " values = gm.generate_central_from_mutation_range()\n", + " slider_value = change[\"new\"]\n", + " values[n_moving_joint] = change[\"new\"]\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "# set the default trajectory name for the case if user didnt choose anything\n", + "trajectory_name = \"central_vertical\"\n", + "\n", + "\n", + "def on_trajectory_change(change):\n", + " global trajectory, visualizer, trajectory_name\n", + " trajectory_name = change[\"new\"]\n", + " with output:\n", + " if change[\"new\"] == \"left_vertical\":\n", + " trajectory = left_vertical\n", + " elif change[\"new\"] == \"central_vertical\":\n", + " trajectory = central_vertical\n", + " elif change[\"new\"] == \"right_vertical\":\n", + " trajectory = right_vertical\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(visualizer.model))\n", + "\n", + "\n", + "def proceed_to_optimization_stage(b):\n", + " global visualizer\n", + " with global_output:\n", + " clear_output(wait=True)\n", + " gm.freeze_joint(active_joint, active_joint.r)\n", + " gm.set_mutation_ranges()\n", + " central_values = gm.generate_central_from_mutation_range()\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + "\n", + " # visualizer.clean()\n", + " # add_trajectory_to_vis(visualizer, trajectory)\n", + " # visualizer.loadViewerModel()\n", + "\n", + " with global_output:\n", + " display(widgets.HBox([output, output_1]))\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " # poses, q_fixed, constraint_errors,reach_array = ik_manager.follow_trajectory(trajectory, viz=visualizer)\n", + " name = f\"widget\\\\{gm.name}\" + f\"_{slider_value}\" + f\"_{trajectory_name}\"\n", + " saver, optimizer = prepare_optimizer(name)\n", + " \n", + " # clear_output(wait = True)\n", + " # display(widgets.VBox([widgets.HBox([output, output_1,]), widgets.HBox([output_2, output_3]),first_run_button]))\n", + " best_x,closest_x = run_optimization(saver, optimizer,central_values)\n", + " simulate(output_1, saver.path, \"initial_plot.jpg\", closest_x, \"Исходный механизм\")\n", + " simulate(output_3, saver.path, \"optimized_plot.jpg\", best_x, \"Оптимизированный механизм\")\n", + " global_output.clear_output(wait=True)\n", + " with global_output:\n", + " display(\n", + " widgets.VBox(\n", + " [\n", + " widgets.HBox(\n", + " [\n", + " output,\n", + " output_1,\n", + " ]\n", + " ),\n", + " widgets.HBox([output_2, output_3]),\n", + " first_run_button,\n", + " output_4\n", + " ]\n", + " )\n", + " )\n", + "\n", + "\n", + "# Function to handle proceed button click\n", + "def proceed_to_next_stage(b):\n", + " global active_joint, n_moving_joint, slider_value, trajectory\n", + " \n", + " with global_output:\n", + " clear_output(wait=True)\n", + " \n", + " if radio_buttons.value is not None:\n", + " radio_buttons.unobserve_all()\n", + " # this block finds the second actuator and the values for the slider\n", + " for i, key in enumerate(list(gm.mutation_ranges.keys())):\n", + " joint = gm.get_node_by_name(key[:-2])\n", + " if joint.active:\n", + " value = gm.generator_dict[joint]\n", + " if (\n", + " value.mutation_type == MutationType.ABSOLUTE\n", + " or value.mutation_type == MutationType.RELATIVE\n", + " ) and key[-1] == \"0\":\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[key][0],\n", + " gm.mutation_ranges[key][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " elif (\n", + " value.mutation_type == MutationType.RELATIVE_PERCENTAGE\n", + " and key[-1] == \"2\"\n", + " ):\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][0],\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " radio_buttons.close()\n", + " # create and start observing widgets for actuator position and trajectory choice\n", + " slider = widgets.SelectionSlider(\n", + " options=values,\n", + " value=values[0],\n", + " description=\"Выберите положение мотора:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"450px\", height=\"50px\"),\n", + " )\n", + " slider.observe(on_slider_change, names=\"value\")\n", + " slider_trajectory = widgets.RadioButtons(\n", + " options=[\"left_vertical\", \"central_vertical\", \"right_vertical\"],\n", + " value=\"central_vertical\",\n", + " description=\"Выберите траекторию:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"500px\", height=\"100px\"),\n", + " )\n", + " slider_trajectory.observe(on_trajectory_change, names=\"value\")\n", + " # change the button description and callback\n", + " proceed_button.description = \"Перейти к оптимизации\"\n", + " proceed_button.on_click(proceed_to_next_stage, remove=True)\n", + " proceed_button.on_click(proceed_to_optimization_stage)\n", + " pos = gm.generate_central_from_mutation_range()\n", + " slider_value = values[0]\n", + " pos[n_moving_joint] = values[0]\n", + " output.clear_output(wait=True)\n", + " \n", + " trajectory = central_vertical\n", + " gm.get_graph(pos)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(\n", + " gm.graph, builder\n", + " )\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " first_run_button.on_click(run_simulation)\n", + " \n", + " #output_1.clear_output()\n", + " with global_output:\n", + " #display(widgets.HBox([widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]), output]))\n", + "\n", + " #display(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button]),output]))\n", + " # with output_1:\n", + " # display(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]))\n", + " \n", + " output_2.append_display_data(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]))\n", + " #global_output.append_display_data(widgets.HBox([output_1, output]))\n", + " display(widgets.HBox(children=[output_2, output]))\n", + " #display(output_1, output)\n", + "\n", + "def run_simulation(b):\n", + " global gm\n", + " ik_manager = TrajectoryIKManager()\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " poses, q_fixed, constraint_errors, reach_array = ik_manager.follow_trajectory(\n", + " trajectory, viz=visualizer\n", + " )\n", + " time.sleep(0.5)\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "proceed_button.on_click(proceed_to_next_stage)\n", + "\n", + "\n", + "#widgets.VBox([radio_buttons, proceed_button])\n", + "#widgets.HBox([output,radio_buttons, output])\n", + "output.append_display_data(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "output_1.append_display_data(widgets.VBox([radio_buttons, proceed_button]))\n", + "\n", + "#global_output.append_display_data(widgets.HBox([output_1, output]))\n", + "# global_output.append_display_data(output)\n", + "\n", + " #display(widgets.HBox([widgets.VBox([radio_buttons, proceed_button]), output]))\n", + " # display(widgets.VBox([radio_buttons, proceed_button]), output)\n", + " \n", + " # with output:\n", + " # output.clear_output(wait=True)\n", + " # display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": {}, + "outputs": [], + "source": [ + "with global_output:\n", + " #global_output.clear_output(wait=True)\n", + " display(widgets.HBox([output_1, output]))\n", + " #display(widgets.VBox(children=[output, widgets.VBox(children=[radio_buttons, proceed_button])], \n", + " #layout=widgets.Layout(width='50%', justify_content='space-around')))" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a285c5dda322477297984ba22968d052", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output(outputs=({'output_type': 'display_data', 'data': {'text/plain': 'HBox(children=(Output(outputs=({\\'outp…" + ] + }, + "execution_count": 93, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "global_output" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.19" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/jmoves/apps/widjetdemo/suspension_optimization_one_port_ver.ipynb b/jmoves/apps/widjetdemo/suspension_optimization_one_port_ver.ipynb new file mode 100644 index 00000000..593b1f3a --- /dev/null +++ b/jmoves/apps/widjetdemo/suspension_optimization_one_port_ver.ipynb @@ -0,0 +1,832 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "os.environ[\"MESHCAT_WEB_ROOT_PATH\"] = \"/\"\n", + "os.environ[\"MESHCAT_PUBLIC_HOST\"] = \"172.17.0.2\"\n", + "# os.environ[\"MESHCAT_WEB_PORT\"] = \"7008\"\n", + "# os.environ[\"MESHCAT_WEB_PUBLIC_PORT\"] = \"7008\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import multiprocessing\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import os\n", + "import pinocchio as pin\n", + "import meshcat\n", + "import time\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from pymoo.algorithms.moo.age2 import AGEMOEA2\n", + "from pymoo.decomposition.asf import ASF\n", + "from pymoo.algorithms.soo.nonconvex.pso import PSO\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import SingleCriterionProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.pinokla.calc_criterion import (\n", + " ActuatedMass,\n", + " EffectiveInertiaCompute,\n", + " MovmentSurface,\n", + " NeutralPoseMass,\n", + " ManipJacobian,\n", + ")\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.default_traj import (\n", + " add_auxilary_points_to_trajectory,\n", + " convert_x_y_to_6d_traj_xz,\n", + " get_vertical_trajectory,\n", + " create_simple_step_trajectory,\n", + " get_workspace_trajectory,\n", + ")\n", + "from auto_robot_design.optimization.rewards.reward_base import (\n", + " PositioningConstrain,\n", + " PositioningErrorCalculator,\n", + " RewardManager,\n", + ")\n", + "from auto_robot_design.optimization.rewards.pure_jacobian_rewards import ZRRReward\n", + "from auto_robot_design.description.builder import (\n", + " ParametrizedBuilder,\n", + " DetailedURDFCreatorFixedEE,\n", + " URDFLinkCreater3DConstraints,\n", + " jps_graph2pinocchio_robot,\n", + " MIT_CHEETAH_PARAMS_DICT,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.mesh_builder import (\n", + " MeshBuilder,\n", + " jps_graph2pinocchio_meshes_robot,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.urdf_creater import (\n", + " URDFMeshCreator,\n", + " MeshCreator,\n", + ")\n", + "from auto_robot_design.generator.topologies.graph_manager_2l import (\n", + " GraphManager2L,\n", + " get_preset_by_index,\n", + " MutationType,\n", + ")\n", + "from auto_robot_design.generator.topologies.bounds_preset import (\n", + " get_preset_by_index_with_bounds,\n", + ")\n", + "from auto_robot_design.optimization.saver import ProblemSaver\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "from pinocchio.visualize import MeshcatVisualizer\n", + "import ipywidgets as widgets\n", + "from IPython.display import display, clear_output, HTML, IFrame, Image\n", + "import asyncio\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "from auto_robot_design.simulation.trajectory_movments import TrajectoryMovements\n", + "\n", + "pin.seed(1)\n", + "from auto_robot_design.optimization.saver import (\n", + " load_checkpoint,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "thickness = MIT_CHEETAH_PARAMS_DICT[\"thickness\"]\n", + "actuator = MIT_CHEETAH_PARAMS_DICT[\"actuator\"]\n", + "density = MIT_CHEETAH_PARAMS_DICT[\"density\"]\n", + "body_density = MIT_CHEETAH_PARAMS_DICT[\"body_density\"]\n", + "\n", + "\n", + "old_builder = ParametrizedBuilder(\n", + " URDFLinkCreater3DConstraints,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.12},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"],\n", + ")\n", + "\n", + "\n", + "predined_mesh = {\"G\": \"../../mesh/body.stl\", \"EE\": \"../../mesh/wheel_small.stl\"}\n", + "\n", + "mesh_creator = MeshCreator(predined_mesh)\n", + "urdf_creator = URDFMeshCreator()\n", + "builder = MeshBuilder(\n", + " urdf_creator,\n", + " mesh_creator,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.12},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# 1) trajectories\n", + "\n", + "workspace_trajectory = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " get_workspace_trajectory([-0.15, -0.35], 0.14, 0.3, 30, 60)\n", + " )\n", + ")\n", + "# ground_symmetric_step = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory(\n", + "# starting_point=[-0.1, -0.31], step_height=0.05, step_width=0.2, n_points=50))\n", + "\n", + "ground_symmetric_step1 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14, -0.34],\n", + " step_height=0.12,\n", + " step_width=0.28,\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "ground_symmetric_step2 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.015, -0.34],\n", + " step_height=0.10,\n", + " step_width=-2 * (-0.14 + 0.015),\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "ground_symmetric_step3 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.025, -0.34],\n", + " step_height=0.08,\n", + " step_width=-2 * (-0.14 + 0.025),\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "central_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0, 100))\n", + ")\n", + "\n", + "# new_trj = central_vertical.copy()\n", + "# for i in range(10):\n", + "# if i%2==1:\n", + "# new_trj = np.concatenate([new_trj,central_vertical], axis=0 )\n", + "# else:\n", + "# new_trj = np.concatenate([new_trj,np.flip(central_vertical,axis=0)], axis=0)\n", + "\n", + "left_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, -0.12, 100))\n", + ")\n", + "\n", + "right_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0.12, 100)))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# 2) characteristics to be calculated\n", + "# criteria that either calculated without any reference to points, or calculated through the aggregation of values from all points on trajectory\n", + "dict_trajectory_criteria = {\n", + " \"MASS\": NeutralPoseMass(),\n", + "}\n", + "# criteria calculated for each point on the trajectory\n", + "dict_point_criteria = {\n", + " \"Effective_Inertia\": EffectiveInertiaCompute(),\n", + " \"Actuated_Mass\": ActuatedMass(),\n", + " \"Manip_Jacobian\": ManipJacobian(MovmentSurface.XZ),\n", + "}\n", + "# special object that calculates the criteria for a robot and a trajectory\n", + "crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# set the rewards and weights for the optimization task\n", + "zrr = ZRRReward(\n", + " manipulability_key=\"Manip_Jacobian\", trajectory_key=\"traj_6d\", error_key=\"error\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def add_trajectory_to_vis(pin_vis, trajectory):\n", + " material = meshcat.geometry.MeshPhongMaterial()\n", + " material.color = int(0xFF00FF)\n", + " material.opacity = 0.3\n", + " for idx, point in enumerate(trajectory):\n", + " if idx <150 and idx%2==0:\n", + " ballID = \"world/ball\" + str(idx)\n", + " pin_vis.viewer[ballID].set_object(meshcat.geometry.Sphere(0.01), material)\n", + " T = np.r_[np.c_[np.eye(3), point[:3]+np.array([0,-0.04,0])], np.array([[0, 0, 0, 1]])]\n", + " pin_vis.viewer[ballID].set_transform(T)\n", + "\n", + "display(\n", + " HTML(\n", + " \"\"\"\n", + "\n", + "\"\"\"))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### First step: Choose the topology for optimization\n", + "### Second step: Choose the placement of an actuator and trajectory\n", + "### Third step: results" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "global_output = widgets.Output()\n", + "\n", + "objects = {f\"Topology_{i}\": get_preset_by_index_with_bounds(i) for i in range(9)}\n", + "\n", + "metric_out = lambda x: f\"Метрики оптимизированного механизма: \\n Передаточное отношение по вертикальной оси: {x:.2f}\"\n", + "\n", + "# Create widget for meshcat output\n", + "output = widgets.Output()\n", + "output_1 = widgets.Output()\n", + "output_2 = widgets.Output()\n", + "output_3 = widgets.Output()\n", + "output_4 = widgets.Output()\n", + "fake_output = widgets.Output()\n", + "# Create the radio button widget\n", + "radio_buttons = widgets.RadioButtons(\n", + " options=objects, description=\"Выберите топологию для оптимизации:\", disabled=False,\n", + " layout=widgets.Layout(width='350px', height='250px')) \n", + "\n", + "# Set initial value to None\n", + "radio_buttons.value = None\n", + "\n", + "proceed_button = widgets.Button(description='Подтвердите выбор',disabled= True,\n", + " layout=widgets.Layout(width='200px', height='40px')) # Set width and height)\n", + "proceed_button.style.button_color = 'lightgreen'\n", + "first_run_button = widgets.Button(description='Визуализировать движение',\n", + " layout=widgets.Layout(width='200px', height='40px')) # Set width and height)\n", + "first_run_button.style.button_color = 'lightblue'\n", + "\n", + "# global variables\n", + "slider_value = None\n", + "trajectory = None\n", + "n_moving_joint = -1\n", + "active_joint = None\n", + "# Set initial value of the gm\n", + "gm: GraphManager2L = get_preset_by_index_with_bounds(-1)\n", + "_values = gm.generate_central_from_mutation_range()\n", + "gm.get_graph(_values)\n", + "\n", + "# fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + "fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + "\n", + "visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + ")\n", + "with fake_output:\n", + " visualizer.viewer = meshcat.Visualizer()\n", + "visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + ")\n", + "visualizer.clean()\n", + "visualizer.loadViewerModel()\n", + "visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "\n", + "def prepare_optimizer(name):\n", + " global trajectory, gm\n", + " reward_manager = RewardManager(crag=crag)\n", + " reward_manager.add_trajectory(trajectory, 0)\n", + " reward_manager.add_reward(zrr, 0, 1)\n", + " N_PROCESS = 8\n", + " pool = multiprocessing.Pool(N_PROCESS)\n", + " runner = StarmapParallelization(pool.starmap)\n", + "\n", + " population_size = 32\n", + " # create the problem for the current optimization\n", + " error_calculator = PositioningErrorCalculator(\n", + " error_key='error', jacobian_key=\"Manip_Jacobian\")\n", + " soft_constrain = PositioningConstrain(error_calculator=error_calculator, points = [trajectory])\n", + " problem = SingleCriterionProblem(gm, old_builder, reward_manager,\n", + " soft_constrain, \n", + " elementwise_runner=runner,\n", + " Actuator=actuator)\n", + " saver = ProblemSaver(problem, name, False)\n", + "\n", + " algorithm = PSO(pop_size=population_size, save_history=True)\n", + " optimizer = PymooOptimizer(problem, algorithm, saver)\n", + " return saver, optimizer\n", + "\n", + "def run_optimization(saver, optimizer, central_values):\n", + " global trajectory, gm, visualizer, visualizer2\n", + " if os.path.exists(os.path.join(saver.path, \"optimized_topology.jpg\")):\n", + " problem = SingleCriterionProblem.load(saver.path)\n", + " checkpoint = load_checkpoint(saver.path)\n", + " optimizer = PymooOptimizer(problem, checkpoint)\n", + " optimizer.load_history(saver.path)\n", + " res = optimizer.run()\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(np.round(best_x, 4))\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + " trj_ids = np.where(np.array(optimizer.history[\"F\"])<0)[0]\n", + " trj_values = np.array(optimizer.history[\"X\"])[trj_ids,:]\n", + " closest_x = min(trj_values,key=lambda x: np.linalg.norm(np.array(x)-np.array(central_values))) \n", + " else:\n", + " with output_1:\n", + " clear_output(wait=True)\n", + " print(\"Optimization in progress\")\n", + " display(Image(\"./loading.gif\"))\n", + " # create the problem for the current optimization\n", + " n_generations = 50\n", + " saver.save_nonmutable()\n", + " res = optimizer.run(\n", + " True,\n", + " **{\"seed\": 1, \"termination\": (\"n_gen\", n_generations), \"verbose\": False},\n", + " )\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " #print(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + "\n", + " draw_joint_point(graph)\n", + " plt.savefig(os.path.join(saver.path, \"optimized_topology.jpg\"))\n", + " plt.close()\n", + " trj_ids = np.where(np.array(optimizer.history[\"F\"])<0)[0]\n", + " trj_values = np.array(optimizer.history[\"X\"])[trj_ids,:]\n", + " closest_x = min(trj_values,key=lambda x: np.linalg.norm(np.array(x)-np.array(central_values))) \n", + " graph = gm.get_graph(closest_x)\n", + " draw_joint_point(graph)\n", + " plt.savefig(os.path.join(saver.path, \"closest_topology.jpg\"))\n", + " plt.close()\n", + " with output_4:\n", + " print(metric_out(-optimizer.history[\"F\"][best_id][0])) \n", + "\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.get_graph(best_x), builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " #fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " #fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.get_graph(np.round(best_x,4)), builder)\n", + " # visualizer2 = MeshcatVisualizer(\n", + " # fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + " # )\n", + " # with fake_output:\n", + " # visualizer2.viewer = meshcat.Visualizer()\n", + " # visualizer2.viewer[\"/Background\"].set_property(\"visible\", False)\n", + " # visualizer2.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + " # visualizer2.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + " # visualizer2.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " # \"position\", [0, 0.0, 0.8]\n", + " # )\n", + " # visualizer2.clean()\n", + " # add_trajectory_to_vis(visualizer2, trajectory)\n", + " # visualizer2.loadViewerModel()\n", + " # visualizer2.display(pin.neutral(fixed_robot.model))\n", + " # with output_2:\n", + " # output_2.clear_output(wait=True)\n", + " # display(IFrame(src=visualizer2.viewer.url(), width=\"400px\", height=\"400px\"))\n", + " # print(visualizer2.viewer.url())\n", + " return best_x, closest_x\n", + "\n", + "def go_to_point(robot, point):\n", + " to_start_from_init = add_auxilary_points_to_trajectory(np.array([point]).T)\n", + " traj_6d = convert_x_y_to_6d_traj_xz(to_start_from_init[0], to_start_from_init[1])\n", + " traj_manager = TrajectoryIKManager()\n", + " traj_manager.register_model(robot.model, robot.constraint_models)\n", + " traj_manager.set_solver(traj_manager.default_name)\n", + " pos, q_arrs, __, reach_array = traj_manager.follow_trajectory(\n", + " traj_6d, np.zeros(robot.model.nq)\n", + " )\n", + " result_q = np.zeros(robot.model.nq)\n", + " if reach_array[-1]:\n", + " result_q = q_arrs[-1]\n", + " else:\n", + " raise Exception(\"Point is not reachable\")\n", + " return result_q\n", + "\n", + "def simulate(out, path,subpath, values):\n", + " if os.path.exists(os.path.join(path, subpath)):\n", + " with out:\n", + " display(Image(os.path.join(path, subpath)))\n", + " else:\n", + " global gm, trajectory\n", + " #robo, __ = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " graph = gm.get_graph(np.round(values,4))\n", + " robo, __ = jps_graph2pinocchio_meshes_robot(graph, builder)\n", + " name_ee = \"EE\"\n", + " point = trajectory[50,[0,2]]\n", + " start_q = go_to_point(robo, point)\n", + " test = TrajectoryMovements(trajectory[:,[0,2]][[50, 75, 99],:], 1, 0.01, name_ee)\n", + " pin.framesForwardKinematics(robo.model, robo.data, start_q)\n", + " time, __, __ = test.prepare_trajectory(robo)\n", + " __, __, __, tau_arr, pos_ee, __ = test.simulate(robo, start_q, False)\n", + " with out:\n", + " out.clear_output(wait=True)\n", + " for i in range(tau_arr.shape[1]):\n", + " plt.plot(\n", + " time,\n", + " tau_arr[:, i],\n", + " linewidth=2,\n", + " label=f\"Привод {i+1}: макс {np.max(np.abs(tau_arr[:,i])):.2f} Нм; средний {np.mean(np.abs(tau_arr[:,i])):.2f} Нм\",\n", + " )\n", + " plt.xlabel(\"Время, [c]\")\n", + " plt.ylabel(\"Момент на приводе, [Нм]\")\n", + " plt.ylim((-15, 15))\n", + " plt.xlim((0, 1.0))\n", + " plt.yticks(np.arange(-15, 15.1, 5))\n", + " plt.grid()\n", + " plt.legend()\n", + " plt.savefig(os.path.join(path, subpath))\n", + " plt.show()\n", + "\n", + "# create and attach callback to the radio_buttons change\n", + "def on_selection_change(change):\n", + " global gm, visualizer\n", + " #output.clear_output(wait=True)\n", + " if proceed_button.disabled:\n", + " proceed_button.disabled = False\n", + " gm = change['new']\n", + " values = gm.generate_central_from_mutation_range()\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "radio_buttons.observe(on_selection_change, names=\"value\")\n", + "\n", + "\n", + "def on_slider_change(change):\n", + " global n_moving_joint, slider_value, visualizer, gm\n", + " values = gm.generate_central_from_mutation_range()\n", + " slider_value = change[\"new\"]\n", + " values[n_moving_joint] = change[\"new\"]\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "# set the default trajectory name for the case if user didnt choose anything\n", + "trajectory_name = \"central_vertical\"\n", + "\n", + "\n", + "def on_trajectory_change(change):\n", + " global trajectory, visualizer, trajectory_name\n", + " trajectory_name = change[\"new\"]\n", + " with output:\n", + " if change[\"new\"] == \"left_vertical\":\n", + " trajectory = left_vertical\n", + " elif change[\"new\"] == \"central_vertical\":\n", + " trajectory = central_vertical\n", + " elif change[\"new\"] == \"right_vertical\":\n", + " trajectory = right_vertical\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(visualizer.model))\n", + "\n", + "\n", + "def proceed_to_optimization_stage(b):\n", + " global visualizer\n", + " with global_output:\n", + " clear_output(wait=True)\n", + " gm.freeze_joint(active_joint, active_joint.r)\n", + " gm.set_mutation_ranges()\n", + " central_values = gm.generate_central_from_mutation_range()\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + "\n", + " # visualizer.clean()\n", + " # add_trajectory_to_vis(visualizer, trajectory)\n", + " # visualizer.loadViewerModel()\n", + "\n", + " with global_output:\n", + " display(widgets.HBox([output, output_1]))\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " # poses, q_fixed, constraint_errors,reach_array = ik_manager.follow_trajectory(trajectory, viz=visualizer)\n", + " name = f\"widget\\\\{gm.name}\" + f\"_{slider_value}\" + f\"_{trajectory_name}\"\n", + " saver, optimizer = prepare_optimizer(name)\n", + " \n", + " # clear_output(wait = True)\n", + " # display(widgets.VBox([widgets.HBox([output, output_1,]), widgets.HBox([output_2, output_3]),first_run_button]))\n", + " best_x,closest_x = run_optimization(saver, optimizer,central_values)\n", + " simulate(output_1, saver.path, \"initial_plot.jpg\", closest_x)\n", + " simulate(output_3, saver.path, \"optimized_plot.jpg\", best_x)\n", + " global_output.clear_output(wait=True)\n", + " with global_output:\n", + " display(\n", + " widgets.VBox(\n", + " [\n", + " widgets.HBox(\n", + " [\n", + " output,\n", + " output_1,\n", + " ]\n", + " ),\n", + " widgets.HBox([output_2, output_3]),\n", + " first_run_button,\n", + " output_4\n", + " ]\n", + " )\n", + " )\n", + " #display(widgets.VBox([output,output_1, output_3]))\n", + "\n", + "\n", + "# Function to handle proceed button click\n", + "def proceed_to_next_stage(b):\n", + " global active_joint, n_moving_joint, slider_value, trajectory\n", + " \n", + " with global_output:\n", + " clear_output(wait=True)\n", + " \n", + " if radio_buttons.value is not None:\n", + " radio_buttons.unobserve_all()\n", + " # this block finds the second actuator and the values for the slider\n", + " for i, key in enumerate(list(gm.mutation_ranges.keys())):\n", + " joint = gm.get_node_by_name(key[:-2])\n", + " if joint.active:\n", + " value = gm.generator_dict[joint]\n", + " if (\n", + " value.mutation_type == MutationType.ABSOLUTE\n", + " or value.mutation_type == MutationType.RELATIVE\n", + " ) and key[-1] == \"0\":\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[key][0],\n", + " gm.mutation_ranges[key][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " elif (\n", + " value.mutation_type == MutationType.RELATIVE_PERCENTAGE\n", + " and key[-1] == \"2\"\n", + " ):\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][0],\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " radio_buttons.close()\n", + " # create and start observing widgets for actuator position and trajectory choice\n", + " slider = widgets.SelectionSlider(\n", + " options=values,\n", + " value=values[0],\n", + " description=\"Выберите положение мотора:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"450px\", height=\"50px\"),\n", + " )\n", + " slider.observe(on_slider_change, names=\"value\")\n", + " slider_trajectory = widgets.RadioButtons(\n", + " options=[\"left_vertical\", \"central_vertical\", \"right_vertical\"],\n", + " value=\"central_vertical\",\n", + " description=\"Выберите траекторию:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"500px\", height=\"100px\"),\n", + " )\n", + " slider_trajectory.observe(on_trajectory_change, names=\"value\")\n", + " # change the button description and callback\n", + " proceed_button.description = \"Proceed to optimization stage\"\n", + " proceed_button.on_click(proceed_to_next_stage, remove=True)\n", + " proceed_button.on_click(proceed_to_optimization_stage)\n", + " pos = gm.generate_central_from_mutation_range()\n", + " slider_value = values[0]\n", + " pos[n_moving_joint] = values[0]\n", + " output.clear_output(wait=True)\n", + " \n", + " trajectory = central_vertical\n", + " gm.get_graph(pos)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(\n", + " gm.graph, builder\n", + " )\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " first_run_button.on_click(run_simulation)\n", + " \n", + " #output_1.clear_output()\n", + " with global_output:\n", + " #display(widgets.HBox([widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]), output]))\n", + "\n", + " #display(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button]),output]))\n", + " # with output_1:\n", + " # display(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]))\n", + " \n", + " output_2.append_display_data(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]))\n", + " #global_output.append_display_data(widgets.HBox([output_1, output]))\n", + " display(widgets.HBox(children=[output_2, output]))\n", + " #display(output_1, output)\n", + "\n", + "def run_simulation(b):\n", + " global gm\n", + " ik_manager = TrajectoryIKManager()\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " poses, q_fixed, constraint_errors, reach_array = ik_manager.follow_trajectory(\n", + " trajectory, viz=visualizer\n", + " )\n", + " time.sleep(0.5)\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "proceed_button.on_click(proceed_to_next_stage)\n", + "\n", + "\n", + "#widgets.VBox([radio_buttons, proceed_button])\n", + "#widgets.HBox([output,radio_buttons, output])\n", + "output.append_display_data(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "print(visualizer.viewer.url())\n", + "\n", + "output_1.append_display_data(widgets.VBox([radio_buttons, proceed_button]))\n", + "\n", + "#global_output.append_display_data(widgets.HBox([output_1, output]))\n", + "# global_output.append_display_data(output)\n", + "\n", + " #display(widgets.HBox([widgets.VBox([radio_buttons, proceed_button]), output]))\n", + " # display(widgets.VBox([radio_buttons, proceed_button]), output)\n", + " \n", + " # with output:\n", + " # output.clear_output(wait=True)\n", + " # display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "with global_output:\n", + " #global_output.clear_output(wait=True)\n", + " display(widgets.HBox([output_1, output]))\n", + " #display(widgets.VBox(children=[output, widgets.VBox(children=[radio_buttons, proceed_button])], \n", + " #layout=widgets.Layout(width='50%', justify_content='space-around')))" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "321fdffe58c14d9bb9a6c4797145e922", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output(outputs=({'output_type': 'display_data', 'data': {'text/plain': 'HBox(children=(Output(outputs=({\\'outp…" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "global_output" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.19" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/jmoves/apps/widjetdemo/suspension_optimization_reset.ipynb b/jmoves/apps/widjetdemo/suspension_optimization_reset.ipynb new file mode 100644 index 00000000..1437d559 --- /dev/null +++ b/jmoves/apps/widjetdemo/suspension_optimization_reset.ipynb @@ -0,0 +1,830 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 119, + "metadata": {}, + "outputs": [], + "source": [ + "import multiprocessing\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import os\n", + "import pinocchio as pin\n", + "import meshcat\n", + "import time\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from pymoo.algorithms.moo.age2 import AGEMOEA2\n", + "from pymoo.decomposition.asf import ASF\n", + "from pymoo.algorithms.soo.nonconvex.pso import PSO\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import SingleCriterionProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.pinokla.calc_criterion import (\n", + " ActuatedMass,\n", + " EffectiveInertiaCompute,\n", + " MovmentSurface,\n", + " NeutralPoseMass,\n", + " ManipJacobian,\n", + ")\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.default_traj import (\n", + " add_auxilary_points_to_trajectory,\n", + " convert_x_y_to_6d_traj_xz,\n", + " get_vertical_trajectory,\n", + " create_simple_step_trajectory,\n", + " get_workspace_trajectory,\n", + ")\n", + "from auto_robot_design.optimization.rewards.reward_base import (\n", + " PositioningConstrain,\n", + " PositioningErrorCalculator,\n", + " RewardManager,\n", + ")\n", + "from auto_robot_design.optimization.rewards.pure_jacobian_rewards import ZRRReward\n", + "from auto_robot_design.description.builder import (\n", + " ParametrizedBuilder,\n", + " DetailedURDFCreatorFixedEE,\n", + " URDFLinkCreater3DConstraints,\n", + " jps_graph2pinocchio_robot,\n", + " MIT_CHEETAH_PARAMS_DICT,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.mesh_builder import (\n", + " MeshBuilder,\n", + " jps_graph2pinocchio_meshes_robot,\n", + ")\n", + "from auto_robot_design.description.mesh_builder.urdf_creater import (\n", + " URDFMeshCreator,\n", + " MeshCreator,\n", + ")\n", + "from auto_robot_design.generator.topologies.graph_manager_2l import (\n", + " GraphManager2L,\n", + " get_preset_by_index,\n", + " MutationType,\n", + ")\n", + "from auto_robot_design.generator.topologies.bounds_preset import (\n", + " get_preset_by_index_with_bounds,\n", + ")\n", + "from auto_robot_design.optimization.saver import ProblemSaver\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "from pinocchio.visualize import MeshcatVisualizer\n", + "import ipywidgets as widgets\n", + "from IPython.display import display, clear_output, HTML, IFrame, Image\n", + "import asyncio\n", + "from auto_robot_design.motion_planning.trajectory_ik_manager import TrajectoryIKManager\n", + "from auto_robot_design.simulation.trajectory_movments import TrajectoryMovements\n", + "\n", + "pin.seed(1)\n", + "from auto_robot_design.optimization.saver import (\n", + " load_checkpoint,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "metadata": {}, + "outputs": [], + "source": [ + "thickness = MIT_CHEETAH_PARAMS_DICT[\"thickness\"]\n", + "actuator = MIT_CHEETAH_PARAMS_DICT[\"actuator\"]\n", + "density = MIT_CHEETAH_PARAMS_DICT[\"density\"]\n", + "body_density = MIT_CHEETAH_PARAMS_DICT[\"body_density\"]\n", + "\n", + "\n", + "old_builder = ParametrizedBuilder(\n", + " URDFLinkCreater3DConstraints,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.12},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"],\n", + ")\n", + "\n", + "\n", + "predined_mesh = {\"G\": \"../../mesh/body.stl\", \"EE\": \"../../mesh/wheel_small.stl\"}\n", + "\n", + "mesh_creator = MeshCreator(predined_mesh)\n", + "urdf_creator = URDFMeshCreator()\n", + "builder = MeshBuilder(\n", + " urdf_creator,\n", + " mesh_creator,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.12},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"],\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "metadata": {}, + "outputs": [], + "source": [ + "# 1) trajectories\n", + "\n", + "workspace_trajectory = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " get_workspace_trajectory([-0.15, -0.35], 0.14, 0.3, 30, 60)\n", + " )\n", + ")\n", + "# ground_symmetric_step = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory(\n", + "# starting_point=[-0.1, -0.31], step_height=0.05, step_width=0.2, n_points=50))\n", + "\n", + "ground_symmetric_step1 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14, -0.34],\n", + " step_height=0.12,\n", + " step_width=0.28,\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "ground_symmetric_step2 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.015, -0.34],\n", + " step_height=0.10,\n", + " step_width=-2 * (-0.14 + 0.015),\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "ground_symmetric_step3 = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(\n", + " create_simple_step_trajectory(\n", + " starting_point=[-0.14 + 0.025, -0.34],\n", + " step_height=0.08,\n", + " step_width=-2 * (-0.14 + 0.025),\n", + " n_points=100,\n", + " )\n", + " )\n", + ")\n", + "\n", + "central_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0, 100))\n", + ")\n", + "\n", + "\n", + "left_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, -0.12, 100))\n", + ")\n", + "\n", + "right_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0.12, 100)))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "metadata": {}, + "outputs": [], + "source": [ + "# 2) characteristics to be calculated\n", + "# criteria that either calculated without any reference to points, or calculated through the aggregation of values from all points on trajectory\n", + "dict_trajectory_criteria = {\n", + " \"MASS\": NeutralPoseMass(),\n", + "}\n", + "# criteria calculated for each point on the trajectory\n", + "dict_point_criteria = {\n", + " \"Effective_Inertia\": EffectiveInertiaCompute(),\n", + " \"Actuated_Mass\": ActuatedMass(),\n", + " \"Manip_Jacobian\": ManipJacobian(MovmentSurface.XZ),\n", + "}\n", + "# special object that calculates the criteria for a robot and a trajectory\n", + "crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria)" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "metadata": {}, + "outputs": [], + "source": [ + "# set the rewards and weights for the optimization task\n", + "zrr = ZRRReward(\n", + " manipulability_key=\"Manip_Jacobian\", trajectory_key=\"traj_6d\", error_key=\"error\"\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 124, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def add_trajectory_to_vis(pin_vis, trajectory):\n", + " material = meshcat.geometry.MeshPhongMaterial()\n", + " material.color = int(0xFF00FF)\n", + " material.opacity = 0.3\n", + " for idx, point in enumerate(trajectory):\n", + " if idx <150 and idx%2==0:\n", + " ballID = \"world/ball\" + str(idx)\n", + " pin_vis.viewer[ballID].set_object(meshcat.geometry.Sphere(0.01), material)\n", + " T = np.r_[np.c_[np.eye(3), point[:3]+np.array([0,-0.04,0])], np.array([[0, 0, 0, 1]])]\n", + " pin_vis.viewer[ballID].set_transform(T)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "display(\n", + " HTML(\n", + " \"\"\"\n", + "\n", + "\"\"\"))\n", + "objects = {f\"Topology_{i}\": get_preset_by_index_with_bounds(i) for i in range(9)}\n", + "metric_out = lambda x: f\"Метрики оптимизированного механизма: \\n Передаточное отношение по вертикальной оси: {x:.2f}\"\n", + "# create output widgets\n", + "global_output = widgets.Output()\n", + "output = widgets.Output()\n", + "output_1 = widgets.Output()\n", + "output_2 = widgets.Output()\n", + "output_3 = widgets.Output()\n", + "output_4 = widgets.Output()\n", + "fake_output = widgets.Output()\n", + "reset = widgets.Button(description=\"Перезапуск\")\n", + "\n", + "def reset_callback(_):\n", + " global_output.clear_output()\n", + " output.clear_output()\n", + " output_1.clear_output()\n", + " output_2.clear_output()\n", + " output_3.clear_output()\n", + " output_4.clear_output()\n", + " fake_output.clear_output()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Create the radio button widget\n", + "radio_buttons = widgets.RadioButtons(\n", + " options=objects, description=\"Выберите топологию для оптимизации:\", disabled=False,\n", + " layout=widgets.Layout(width='350px', height='250px')) \n", + "\n", + "# Set initial value to None\n", + "radio_buttons.value = None\n", + "\n", + "# create and attach callback to the radio_buttons change\n", + "def on_selection_change(change):\n", + " global gm, visualizer, proceed_button\n", + " #output.clear_output(wait=True)\n", + " if proceed_button.disabled:\n", + " proceed_button.disabled = False\n", + " gm = change['new']\n", + " values = gm.generate_central_from_mutation_range()\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "radio_buttons.observe(on_selection_change, names=\"value\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "proceed_button = widgets.Button(description='Подтвердите выбор',disabled= True,\n", + " layout=widgets.Layout(width='200px', height='40px')) # Set width and height)\n", + "proceed_button.style.button_color = 'lightgreen'\n", + "first_run_button = widgets.Button(description='Визуализировать движение',\n", + " layout=widgets.Layout(width='200px', height='40px')) # Set width and height)\n", + "first_run_button.style.button_color = 'lightblue'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# global variables\n", + "slider_value = None\n", + "trajectory = None\n", + "n_moving_joint = -1\n", + "active_joint = None\n", + "# Set initial value of the gm\n", + "gm: GraphManager2L = get_preset_by_index_with_bounds(-1)\n", + "_values = gm.generate_central_from_mutation_range()\n", + "gm.get_graph(_values)\n", + "\n", + "# fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + "fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + "\n", + "visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + ")\n", + "with fake_output:\n", + " visualizer.viewer = meshcat.Visualizer()\n", + "visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + ")\n", + "visualizer.clean()\n", + "visualizer.loadViewerModel()\n", + "visualizer.display(pin.neutral(fixed_robot.model))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def prepare_optimizer(name):\n", + " global trajectory, gm\n", + " reward_manager = RewardManager(crag=crag)\n", + " reward_manager.add_trajectory(trajectory, 0)\n", + " reward_manager.add_reward(zrr, 0, 1)\n", + " N_PROCESS = 8\n", + " pool = multiprocessing.Pool(N_PROCESS)\n", + " runner = StarmapParallelization(pool.starmap)\n", + "\n", + " population_size = 32\n", + " # create the problem for the current optimization\n", + " error_calculator = PositioningErrorCalculator(\n", + " error_key='error', jacobian_key=\"Manip_Jacobian\")\n", + " soft_constrain = PositioningConstrain(error_calculator=error_calculator, points = [trajectory])\n", + " problem = SingleCriterionProblem(gm, old_builder, reward_manager,\n", + " soft_constrain, \n", + " elementwise_runner=runner,\n", + " Actuator=actuator)\n", + " saver = ProblemSaver(problem, name, False)\n", + "\n", + " algorithm = PSO(pop_size=population_size, save_history=True)\n", + " optimizer = PymooOptimizer(problem, algorithm, saver)\n", + " return saver, optimizer\n", + "\n", + "def run_optimization(saver, optimizer, central_values):\n", + " global trajectory, gm, visualizer\n", + " if os.path.exists(os.path.join(saver.path, \"optimized_topology.jpg\")):\n", + " problem = SingleCriterionProblem.load(saver.path)\n", + " checkpoint = load_checkpoint(saver.path)\n", + " optimizer = PymooOptimizer(problem, checkpoint)\n", + " optimizer.load_history(saver.path)\n", + " res = optimizer.run()\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(np.round(best_x, 4))\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + " trj_ids = np.where(np.array(optimizer.history[\"F\"])<0)[0]\n", + " trj_values = np.array(optimizer.history[\"X\"])[trj_ids,:]\n", + " closest_x = min(trj_values,key=lambda x: np.linalg.norm(np.array(x)-np.array(central_values))) \n", + " else:\n", + " with output_1:\n", + " clear_output(wait=True)\n", + " print(\"Optimization in progress\")\n", + " display(Image(\"./loading.gif\"))\n", + " # create the problem for the current optimization\n", + " n_generations = 50\n", + " saver.save_nonmutable()\n", + " res = optimizer.run(\n", + " True,\n", + " **{\"seed\": 1, \"termination\": (\"n_gen\", n_generations), \"verbose\": False},\n", + " )\n", + " best_id = np.argmin(optimizer.history[\"F\"])\n", + " #print(optimizer.history[\"F\"])\n", + " best_x = optimizer.history[\"X\"][best_id]\n", + " graph = gm.get_graph(best_x)\n", + "\n", + " draw_joint_point(graph)\n", + " plt.savefig(os.path.join(saver.path, \"optimized_topology.jpg\"))\n", + " plt.close()\n", + " trj_ids = np.where(np.array(optimizer.history[\"F\"])<0)[0]\n", + " trj_values = np.array(optimizer.history[\"X\"])[trj_ids,:]\n", + " closest_x = min(trj_values,key=lambda x: np.linalg.norm(np.array(x)-np.array(central_values))) \n", + " graph = gm.get_graph(closest_x)\n", + " draw_joint_point(graph)\n", + " plt.savefig(os.path.join(saver.path, \"closest_topology.jpg\"))\n", + " plt.close()\n", + " with output_4:\n", + " print(metric_out(-optimizer.history[\"F\"][best_id][0])) \n", + "\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.get_graph(closest_x), builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " #fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.get_graph(np.round(best_x,4)), builder)\n", + " visualizer = MeshcatVisualizer(\n", + " fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model\n", + " )\n", + " with fake_output:\n", + " visualizer.viewer = meshcat.Visualizer()\n", + " visualizer.viewer[\"/Background\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + " visualizer.viewer[\"/Cameras/default/rotated/\"].set_property(\n", + " \"position\", [0, 0.0, 0.8]\n", + " )\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " with output_2:\n", + " output_2.clear_output(wait=True)\n", + " display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + " return best_x, closest_x\n", + "\n", + "\n", + "def go_to_point(robot, point):\n", + " to_start_from_init = add_auxilary_points_to_trajectory(np.array([point]).T)\n", + " traj_6d = convert_x_y_to_6d_traj_xz(to_start_from_init[0], to_start_from_init[1])\n", + " traj_manager = TrajectoryIKManager()\n", + " traj_manager.register_model(robot.model, robot.constraint_models)\n", + " traj_manager.set_solver(traj_manager.default_name)\n", + " pos, q_arrs, __, reach_array = traj_manager.follow_trajectory(\n", + " traj_6d, np.zeros(robot.model.nq)\n", + " )\n", + " result_q = np.zeros(robot.model.nq)\n", + " if reach_array[-1]:\n", + " result_q = q_arrs[-1]\n", + " else:\n", + " raise Exception(\"Point is not reachable\")\n", + " return result_q\n", + "\n", + "def simulate(out, path,subpath, values):\n", + " if os.path.exists(os.path.join(path, subpath)):\n", + " with out:\n", + " display(Image(os.path.join(path, subpath)))\n", + " else:\n", + " global gm, trajectory\n", + " #robo, __ = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " graph = gm.get_graph(np.round(values,4))\n", + " robo, __ = jps_graph2pinocchio_meshes_robot(graph, builder)\n", + " name_ee = \"EE\"\n", + " point = trajectory[50,[0,2]]\n", + " start_q = go_to_point(robo, point)\n", + " test = TrajectoryMovements(trajectory[:,[0,2]][[50, 75, 99],:], 1, 0.01, name_ee)\n", + " pin.framesForwardKinematics(robo.model, robo.data, start_q)\n", + " time, __, __ = test.prepare_trajectory(robo)\n", + " __, __, __, tau_arr, pos_ee, __ = test.simulate(robo, start_q, False)\n", + " with out:\n", + " out.clear_output(wait=True)\n", + " for i in range(tau_arr.shape[1]):\n", + " plt.plot(\n", + " time,\n", + " tau_arr[:, i],\n", + " linewidth=2,\n", + " label=f\"Привод {i+1}: макс {np.max(np.abs(tau_arr[:,i])):.2f} Нм; средний {np.mean(np.abs(tau_arr[:,i])):.2f} Нм\",\n", + " )\n", + " plt.xlabel(\"Время, [c]\")\n", + " plt.ylabel(\"Момент на приводе, [Нм]\")\n", + " plt.ylim((-15, 15))\n", + " plt.xlim((0, 1.0))\n", + " plt.yticks(np.arange(-15, 15.1, 5))\n", + " plt.grid()\n", + " plt.legend()\n", + " plt.savefig(os.path.join(path, subpath))\n", + " plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 125, + "metadata": {}, + "outputs": [], + "source": [ + "def on_slider_change(change):\n", + " global n_moving_joint, slider_value, visualizer, gm\n", + " values = gm.generate_central_from_mutation_range()\n", + " slider_value = change[\"new\"]\n", + " values[n_moving_joint] = change[\"new\"]\n", + " gm.get_graph(values)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "# set the default trajectory name for the case if user didnt choose anything\n", + "trajectory_name = \"central_vertical\"\n", + "\n", + "\n", + "def on_trajectory_change(change):\n", + " global trajectory, visualizer, trajectory_name\n", + " trajectory_name = change[\"new\"]\n", + " with output:\n", + " if change[\"new\"] == \"left_vertical\":\n", + " trajectory = left_vertical\n", + " elif change[\"new\"] == \"central_vertical\":\n", + " trajectory = central_vertical\n", + " elif change[\"new\"] == \"right_vertical\":\n", + " trajectory = right_vertical\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(visualizer.model))\n", + "\n", + "\n", + "def proceed_to_optimization_stage(b):\n", + " global visualizer\n", + " with global_output:\n", + " clear_output(wait=True)\n", + " gm.freeze_joint(active_joint, active_joint.r)\n", + " gm.set_mutation_ranges()\n", + " central_values = gm.generate_central_from_mutation_range()\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + "\n", + " # visualizer.clean()\n", + " # add_trajectory_to_vis(visualizer, trajectory)\n", + " # visualizer.loadViewerModel()\n", + "\n", + " with global_output:\n", + " display(widgets.HBox([output, output_1]))\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " # poses, q_fixed, constraint_errors,reach_array = ik_manager.follow_trajectory(trajectory, viz=visualizer)\n", + " name = f\"widget\\\\{gm.name}\" + f\"_{slider_value}\" + f\"_{trajectory_name}\"\n", + " saver, optimizer = prepare_optimizer(name)\n", + " \n", + " # clear_output(wait = True)\n", + " # display(widgets.VBox([widgets.HBox([output, output_1,]), widgets.HBox([output_2, output_3]),first_run_button]))\n", + " best_x,closest_x = run_optimization(saver, optimizer,central_values)\n", + " simulate(output_1, saver.path, \"initial_plot.jpg\", closest_x)\n", + " simulate(output_3, saver.path, \"optimized_plot.jpg\", best_x)\n", + " global_output.clear_output(wait=True)\n", + " with global_output:\n", + " display(\n", + " widgets.VBox(\n", + " [\n", + " widgets.HBox(\n", + " [\n", + " output,\n", + " output_1,\n", + " ]\n", + " ),\n", + " widgets.HBox([output_2, output_3]),\n", + " first_run_button,\n", + " output_4\n", + " ]\n", + " )\n", + " )\n", + "\n", + "\n", + "# Function to handle proceed button click\n", + "def proceed_to_next_stage(b):\n", + " global active_joint, n_moving_joint, slider_value, trajectory\n", + " \n", + " with global_output:\n", + " clear_output(wait=True)\n", + " \n", + " if radio_buttons.value is not None:\n", + " radio_buttons.unobserve_all()\n", + " # this block finds the second actuator and the values for the slider\n", + " for i, key in enumerate(list(gm.mutation_ranges.keys())):\n", + " joint = gm.get_node_by_name(key[:-2])\n", + " if joint.active:\n", + " value = gm.generator_dict[joint]\n", + " if (\n", + " value.mutation_type == MutationType.ABSOLUTE\n", + " or value.mutation_type == MutationType.RELATIVE\n", + " ) and key[-1] == \"0\":\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[key][0],\n", + " gm.mutation_ranges[key][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " elif (\n", + " value.mutation_type == MutationType.RELATIVE_PERCENTAGE\n", + " and key[-1] == \"2\"\n", + " ):\n", + " active_joint = joint\n", + " values = np.round(\n", + " np.linspace(\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][0],\n", + " gm.mutation_ranges[active_joint.name + \"_2\"][1],\n", + " 5,\n", + " endpoint=True,\n", + " ),\n", + " 3,\n", + " )\n", + " n_moving_joint = i\n", + " radio_buttons.close()\n", + " # create and start observing widgets for actuator position and trajectory choice\n", + " slider = widgets.SelectionSlider(\n", + " options=values,\n", + " value=values[0],\n", + " description=\"Выберите положение мотора:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"450px\", height=\"50px\"),\n", + " )\n", + " slider.observe(on_slider_change, names=\"value\")\n", + " slider_trajectory = widgets.RadioButtons(\n", + " options=[\"left_vertical\", \"central_vertical\", \"right_vertical\"],\n", + " value=\"central_vertical\",\n", + " description=\"Выберите траекторию:\",\n", + " disabled=False,\n", + " continuous_update=False,\n", + " orientation=\"horizontal\",\n", + " readout=True,\n", + " style={\"description_width\": \"200px\"},\n", + " layout=widgets.Layout(width=\"500px\", height=\"100px\"),\n", + " )\n", + " slider_trajectory.observe(on_trajectory_change, names=\"value\")\n", + " # change the button description and callback\n", + " proceed_button.description = \"Proceed to optimization stage\"\n", + " proceed_button.on_click(proceed_to_next_stage, remove=True)\n", + " proceed_button.on_click(proceed_to_optimization_stage)\n", + " pos = gm.generate_central_from_mutation_range()\n", + " slider_value = values[0]\n", + " pos[n_moving_joint] = values[0]\n", + " output.clear_output(wait=True)\n", + " \n", + " trajectory = central_vertical\n", + " gm.get_graph(pos)\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph,builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(\n", + " gm.graph, builder\n", + " )\n", + " visualizer.model = fixed_robot.model\n", + " visualizer.collision = fixed_robot.visual_model\n", + " visualizer.visual_model = fixed_robot.visual_model\n", + " visualizer.rebuildData()\n", + " visualizer.clean()\n", + " add_trajectory_to_vis(visualizer, trajectory)\n", + " visualizer.loadViewerModel()\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + " first_run_button.on_click(run_simulation)\n", + " \n", + " #output_1.clear_output()\n", + " with global_output:\n", + " #display(widgets.HBox([widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]), output]))\n", + "\n", + " #display(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button]),output]))\n", + " # with output_1:\n", + " # display(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]))\n", + " \n", + " output_2.append_display_data(widgets.VBox([slider, slider_trajectory, widgets.HBox([proceed_button, first_run_button])]))\n", + " #global_output.append_display_data(widgets.HBox([output_1, output]))\n", + " display(widgets.HBox(children=[output_2, output]))\n", + " #display(output_1, output)\n", + "\n", + "def run_simulation(b):\n", + " global gm\n", + " ik_manager = TrajectoryIKManager()\n", + " # fixed_robot, free_robot = jps_graph2pinocchio_robot(gm.graph, builder)\n", + " fixed_robot, free_robot = jps_graph2pinocchio_meshes_robot(gm.graph, builder)\n", + " ik_manager.register_model(\n", + " fixed_robot.model, fixed_robot.constraint_models, fixed_robot.visual_model\n", + " )\n", + " ik_manager.set_solver(\"Closed_Loop_PI\")\n", + " poses, q_fixed, constraint_errors, reach_array = ik_manager.follow_trajectory(\n", + " trajectory, viz=visualizer\n", + " )\n", + " time.sleep(0.5)\n", + " visualizer.display(pin.neutral(fixed_robot.model))\n", + "\n", + "proceed_button.on_click(proceed_to_next_stage)\n", + "\n", + "\n", + "#widgets.VBox([radio_buttons, proceed_button])\n", + "#widgets.HBox([output,radio_buttons, output])\n", + "output.append_display_data(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + "output_1.append_display_data(widgets.VBox([radio_buttons, proceed_button]))\n", + "\n", + "#global_output.append_display_data(widgets.HBox([output_1, output]))\n", + "# global_output.append_display_data(output)\n", + "\n", + " #display(widgets.HBox([widgets.VBox([radio_buttons, proceed_button]), output]))\n", + " # display(widgets.VBox([radio_buttons, proceed_button]), output)\n", + " \n", + " # with output:\n", + " # output.clear_output(wait=True)\n", + " # display(IFrame(src=visualizer.viewer.url(), width=\"400px\", height=\"400px\"))\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 126, + "metadata": {}, + "outputs": [], + "source": [ + "with global_output:\n", + " #global_output.clear_output(wait=True)\n", + " display(widgets.HBox([output_1, output]))\n", + " #display(widgets.VBox(children=[output, widgets.VBox(children=[radio_buttons, proceed_button])], \n", + " #layout=widgets.Layout(width='50%', justify_content='space-around')))" + ] + }, + { + "cell_type": "code", + "execution_count": 127, + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "6aea026890344a4ba42d7a133cd6e5ec", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output(outputs=({'output_type': 'display_data', 'data': {'text/plain': 'HBox(children=(Output(outputs=({\\'outp…" + ] + }, + "execution_count": 127, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "global_output" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/jmoves/apps/widjetdemo/traj_graph_setup.py b/jmoves/apps/widjetdemo/traj_graph_setup.py new file mode 100644 index 00000000..506fdec7 --- /dev/null +++ b/jmoves/apps/widjetdemo/traj_graph_setup.py @@ -0,0 +1,64 @@ +from networkx import Graph +import numpy as np +import matplotlib.pyplot as plt + +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains + +from auto_robot_design.description.utils import draw_joint_point +from auto_robot_design.optimization.problems import get_optimizing_joints +from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, MIT_CHEETAH_PARAMS_DICT + + +def get_graph_and_traj(graph_number: int) -> tuple[Graph, dict, ParametrizedBuilder, list[np.ndarray], list[np.ndarray], np.ndarray]: + anlge = np.deg2rad(-45) + l1 = 0.21 + l2 = 0.18 + + x_knee = l1 * np.sin(anlge) + y_knee = -l1 * np.cos(anlge) + + y_ee = -y_knee + l2 * np.cos(anlge) + print(x_knee, y_knee, y_ee) + + generator = TwoLinkGenerator() + all_graphs = generator.get_standard_set(-0.105, shift=-0.10) + graph, constrain_dict = all_graphs[graph_number] + + thickness = MIT_CHEETAH_PARAMS_DICT["thickness"]/2 + actuator = MIT_CHEETAH_PARAMS_DICT["actuator"] + density = MIT_CHEETAH_PARAMS_DICT["density"] + body_density = MIT_CHEETAH_PARAMS_DICT["body_density"] + + builder = ParametrizedBuilder(DetailedURDFCreatorFixedEE, + density={"default": density, + "G": body_density}, + thickness={ + "default": thickness, "EE": 0.033/2}, + actuator={"default": actuator}, + size_ground=np.array( + MIT_CHEETAH_PARAMS_DICT["size_ground"]), + offset_ground=MIT_CHEETAH_PARAMS_DICT["offset_ground_rl"] + ) + + workspace_trajectory = convert_x_y_to_6d_traj_xz( + *get_workspace_trajectory([-0.1, -0.29], 0.07, 0.2, 10, 20)) + + optimizing_joints = get_optimizing_joints(graph, constrain_dict) + + return graph, optimizing_joints, constrain_dict, builder, workspace_trajectory + + +if __name__ == "__main__": + graph, optimizing_joints, constrain_dict, builder, workspace_trajectory = get_graph_and_traj( + 0) + + plt.figure() + + plt.scatter(workspace_trajectory[:, 0], + workspace_trajectory[:, 2], marker="1") + + draw_joint_point(graph) + plt.figure() + draw_joint_point(graph) + visualize_constrains(graph, constrain_dict) diff --git a/jmoves/apps/widjetdemo/work_space_finder.py b/jmoves/apps/widjetdemo/work_space_finder.py new file mode 100644 index 00000000..d5214c7c --- /dev/null +++ b/jmoves/apps/widjetdemo/work_space_finder.py @@ -0,0 +1,107 @@ +from functools import partial +import time +from joblib import Parallel, cpu_count, delayed +import numpy as np + + +from auto_robot_design.description.builder import jps_graph2pinocchio_robot +from auto_robot_design.optimization.problems import CalculateMultiCriteriaProblem +from auto_robot_design.pinokla.calc_criterion import folow_traj_by_proximal_inv_k_2 +from auto_robot_design.description.builder import jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT +from apps.widjetdemo import create_reward_manager +from apps.widjetdemo import traj_graph_setup + +from auto_robot_design.utils.append_saver import chunk_list, save_result_append +from auto_robot_design.utils.bruteforce import get_n_dim_linspace + + +def test_graph(problem: CalculateMultiCriteriaProblem, workspace_trj: np.ndarray, x_vec: np.ndarray): + """Mutate graph by x and check workspace reachability. + + Args: + problem (CalculateMultiCriteriaProblem): _description_ + workspace_trj (np.ndarray): _description_ + x_vec (np.ndarray): _description_ + + Returns: + _type_: _description_ + """ + problem.mutate_JP_by_xopt(x_vec) + fixed_robot, free_robot = jps_graph2pinocchio_robot( + problem.graph, problem.builder) + poses, q_array, constraint_errors, reach_array = folow_traj_by_proximal_inv_k_2(fixed_robot.model, fixed_robot.data, + fixed_robot.constraint_models, fixed_robot.constraint_data, "EE", workspace_trj) + return poses, q_array, constraint_errors, reach_array, x_vec + + +def convert_res_to_dict(poses, q_array, constraint_errors, reach_array, x_vec): + return {"poses": poses, "q_array": q_array, "constraint_errors": constraint_errors, "reach_array": reach_array, "x_vec": x_vec} + + +def stack_dicts(dict_list, stack_func=np.stack): + """ + Stacks dictionaries containing numpy arrays using the specified stacking function. + + Parameters: + dict_list (list of dict): List of dictionaries to stack. + stack_func (function): Numpy stacking function to use (e.g., np.vstack, np.hstack, np.concatenate). + + Returns: + dict: A dictionary with stacked numpy arrays. + """ + # Initialize an empty dictionary to hold the stacked arrays + stacked_dict = {} + + # Iterate through the keys of the first dictionary (assuming all dicts have the same keys) + for key in dict_list[0].keys(): + # Stack the arrays for the current key across all dictionaries + stacked_dict[key] = stack_func([d[key] for d in dict_list]) + + return stacked_dict + + +def test_chunk(problem: CalculateMultiCriteriaProblem, x_vecs: np.ndarray, workspace_trj: np.ndarray, file_name): + grabbed_fun = partial(test_graph, problem, workspace_trj) + parallel_results = [] + cpus = cpu_count(only_physical_cores=True) + parallel_results = Parallel(cpus, backend="multiprocessing", verbose=100, timeout=60 * 1000)(delayed(grabbed_fun)(i) + for i in x_vecs) + list_dict = [] + for i in parallel_results: + list_dict.append(convert_res_to_dict(*i)) + staced_res = stack_dicts(list_dict) + save_result_append(file_name, staced_res) + return staced_res + + +if __name__ == '__main__': + start_time = time.time() + TOPOLGY_NAME = 0 + FILE_NAME = "WORKSPACE_TOP" + str(TOPOLGY_NAME) + ".npz" + # Needs only for create problem mutate graph by x + graph, optimizing_joints, constrain_dict, builder, workspace_trajectory = traj_graph_setup.get_graph_and_traj( + TOPOLGY_NAME) + reward_manager, crag, soft_constrain = create_reward_manager.get_manager_mock( + workspace_trajectory) + + actuator = MIT_CHEETAH_PARAMS_DICT["actuator"] + # Problem needs only for mutate graph by x + problem = CalculateMultiCriteriaProblem(graph, builder=builder, + jp2limits=optimizing_joints, + crag=[], + soft_constrain=soft_constrain, + rewards_and_trajectories=reward_manager, + Actuator=actuator) + + x_opt, opt_joints, upper_bounds, lower_bounds = problem.convert_joints2x_opt() + + vecs = get_n_dim_linspace(upper_bounds, lower_bounds) + chunk_vec = list(chunk_list(vecs, 100)) + for num, i_vec in enumerate(chunk_vec): + try: + test_chunk(problem, i_vec, workspace_trajectory, FILE_NAME) + except: + print("FAILD") + print(f"Tested chunk {num} / {len(chunk_vec)}") + ellip = (time.time() - start_time) / 60 + print(f"Remaining minute {ellip}") diff --git a/jmoves/apps/widjetdemo/workspace_finder_opener.py b/jmoves/apps/widjetdemo/workspace_finder_opener.py new file mode 100644 index 00000000..09f864d3 --- /dev/null +++ b/jmoves/apps/widjetdemo/workspace_finder_opener.py @@ -0,0 +1,48 @@ +import numpy as np +import matplotlib.pyplot as plt + + +from auto_robot_design.pinokla.default_traj import get_workspace_trajectory + +from auto_robot_design.user_interface.check_in_ellips import Ellipse, check_points_in_ellips + +def get_indices_by_point(mask: np.ndarray, reach_array: np.ndarray): + mask_true_sum = np.sum(mask) + reachability_sums = reach_array @ mask + target_indices = np.where(reachability_sums == mask_true_sum) + return target_indices[0] + +data = np.load("test_workspace_BF_RES_0.npz") +reach_arrays = data["reach_array"] +q_arrays = data["q_array"] + + +mask[55] = False +mask[0] = False +mask[10] = False + + +# def plot_ellipse(ellipse): +TOPOLGY_NAME = 0 +points_x, points_y = get_workspace_trajectory([-0.15, -0.35], 0.2, 0.3, 10, 10) +ellipse = Ellipse(np.array([0, -0.25]), np.deg2rad(30), np.array([0.05, 0.1])) +point_ellipse = ellipse.get_points() + + +points = np.vstack([points_x.flatten(), points_y.flatten()]) +mask = check_points_in_ellips(points, ellipse) +rev_mask = np.array(1-mask, dtype="bool") + + +target_indices = get_indices_by_point(mask, reach_arrays) + + +print(len(target_indices)) + + + +plt.figure(figsize=(10,10)) +plt.plot(point_ellipse[0,:], point_ellipse[1,:], "g", linewidth=3) +plt.scatter(points[:,rev_mask][0],points[:,rev_mask][1]) +plt.scatter(points[:,mask][0],points[:,mask][1]) +plt.show() diff --git a/jmoves/auto_robot_design/control/model_based.py b/jmoves/auto_robot_design/control/model_based.py new file mode 100644 index 00000000..181d671b --- /dev/null +++ b/jmoves/auto_robot_design/control/model_based.py @@ -0,0 +1,227 @@ +import numpy as np +import pinocchio as pin +from scipy.spatial.transform import Rotation as R + +from auto_robot_design.pinokla.closed_loop_jacobian import ( + constraint_jacobian_active_to_passive, + ConstraintFrameJacobian, + jacobian_constraint, +) + + +class TorqueComputedControl: + def __init__( + self, robot, Kp: np.ndarray, Kd: np.ndarray, use_dJdt_term: bool = False + ): + """ + Initialize class for computed torque control for a robot. + + Args: + robot: The robot model. + Kp: The proportional gain matrix of shape (nmot, nmot). + Kd: The derivative gain matrix of shape (nmot, nmot). + use_dJdt_term: A boolean indicating whether to use the dJ/dt term in the control law. + """ + + self.robot = robot + self.use_dJdt = use_dJdt_term + + nmot = len(robot.actuation_model.idqmot) + assert Kp.shape == (nmot, nmot) + assert Kd.shape == (nmot, nmot) + + self.Kp = Kp + self.Kd = Kd + + self.ids_mot = robot.actuation_model.idqmot + self.ids_vmot = robot.actuation_model.idvmot + + self.ids_free = self.robot.actuation_model.idqfree + self.ids_vfree = self.robot.actuation_model.idvfree + + self.tauq = np.zeros(robot.model.nv) + + self.prev_Jmot = np.zeros((len(self.ids_vfree), len(self.ids_vmot))) + self.prev_Jfree = np.zeros((len(self.ids_vfree), len(self.ids_vfree))) + + def compute( + self, + q: np.ndarray, + vq: np.ndarray, + q_a_ref: np.ndarray, + vq_a_ref: np.ndarray, + ddq_a_ref: np.ndarray, + ): + """ + Compute the control torque for the robot based on the given inputs. + + Args: + q (np.ndarray): The joint positions of the robot. + vq (np.ndarray): The joint velocities of the robot. + q_a_ref (np.ndarray): The desired joint positions for the active joints. + vq_a_ref (np.ndarray): The desired joint velocities for the active joints. + ddq_a_ref (np.ndarray): The desired joint accelerations for the active joints. + + Returns: + np.ndarray: The control torque for the robot. + + """ + if self.use_dJdt: + Jmot, Jfree = jacobian_constraint( + self.robot.model, + self.robot.data, + self.robot.constraint_models, + self.robot.constraint_data, + self.robot.actuation_model, + q, + ) + epsilon = 1e-6 + Jmot_ = np.zeros((self.robot.nq, Jmot.shape[0], Jmot.shape[1])) + Jfree_ = np.zeros((self.robot.nq, Jfree.shape[0], Jfree.shape[1])) + for i in range(len(self.robot.nq)): + q_ = q.copy() + q_[i] += epsilon + Jmot_i, Jfree_i = jacobian_constraint( + self.robot.model, + self.robot.data, + self.robot.constraint_models, + self.robot.constraint_data, + self.robot.actuation_model, + q_, + ) + Jmot_[i, :, :] = Jmot_i + Jfree_[i, :, :] = Jfree_i + d_Jmot = np.dot(Jmot_, vq) + d_Jfree = np.dot(Jfree_, vq) + # d_Jmot = ((Jmot - self.prev_Jmot) / DT).round(6) + # d_Jfree = ((Jfree - self.prev_Jfree) / DT).round(6) + a_d = -np.linalg.pinv(Jfree) @ ( + d_Jmot @ vq[self.ids_vmot] + d_Jfree @ vq[self.ids_vfree] + ) + else: + a_d = np.zeros(len(self.ids_vfree)) + + q_a = q[self.ids_mot] + vq_a = vq[self.ids_vmot] + + M = pin.crba(self.robot.model, self.robot.data, q) + g = pin.computeGeneralizedGravity(self.robot.model, self.robot.data, q) + C = pin.computeCoriolisMatrix(self.robot.model, self.robot.data, q, vq) + + Jda, E_tau = constraint_jacobian_active_to_passive( + self.robot.model, + self.robot.data, + self.robot.constraint_models, + self.robot.constraint_data, + self.robot.actuation_model, + q, + ) + + Ma = Jda.T @ E_tau.T @ M @ E_tau @ Jda + ga = Jda.T @ E_tau.T @ g + Ca = Jda.T @ E_tau.T @ C @ E_tau @ Jda + + tau_a = ( + Ma @ ddq_a_ref + + Ca @ vq_a_ref + + ga + - Ma @ self.Kp @ (q_a - q_a_ref) + - Ma @ self.Kd @ (vq_a - vq_a_ref) + ) + self.tauq[self.ids_mot] = tau_a + + return self.tauq + + +class OperationSpacePDControl: + def __init__( + self, robot, Kp: np.ndarray, Kd: np.ndarray, id_frame_end_effector: int + ): + """ + Initialize class for operation space PD control for a robot. + + Args: + robot: The robot model. + Kp: The proportional gain matrix of shape (6, 6). + Kd: The derivative gain matrix of shape (6, 6). + id_frame_end_effector: The ID of the end effector frame. + + Returns: + None + """ + + self.robot = robot + self.id_frame = id_frame_end_effector + + assert Kp.shape == (6, 6) + assert Kd.shape == (6, 6) + + self.Kp = Kp + self.Kd = Kd + + self.ids_mot = robot.actuation_model.idqmot + self.ids_vmot = robot.actuation_model.idvmot + + self.ids_free = self.robot.actuation_model.idqfree + self.ids_vfree = self.robot.actuation_model.idvfree + + self.tauq = np.zeros(robot.model.nv) + + def compute(self, q: np.ndarray, vq, x_ref: np.ndarray, dx_ref: np.ndarray): + """ + Compute the control input for the robot based on the given state and reference values. + + Args: + q (np.ndarray): The joint positions of the robot. + vq: The joint velocities of the robot. + x_ref (np.ndarray): The desired reference state. + dx_ref (np.ndarray): The desired reference state velocity. + + Returns: + np.ndarray: The computed control input for the robot. + + """ + J_closed = ConstraintFrameJacobian( + self.robot.model, + self.robot.data, + self.robot.constraint_models, + self.robot.constraint_data, + self.robot.actuation_model, + q, + self.id_frame, + self.robot.data.oMf[self.id_frame].action @ dx_ref, + ) + x_body_curr = np.concatenate( + ( + self.robot.data.oMf[self.id_frame].translation, + R.from_matrix(self.robot.data.oMf[self.id_frame].rotation).as_rotvec(), + ) + ) + # vq_a_ref = vq_cstr[self.ids_vmot] + Jda, __ = constraint_jacobian_active_to_passive( + self.robot.model, + self.robot.data, + self.robot.constraint_models, + self.robot.constraint_data, + self.robot.actuation_model, + q, + + ) + + g = pin.computeGeneralizedGravity(self.robot.model, self.robot.data, q) + + vq_a = vq[self.ids_vmot] + + # first = self.Kp @ (x_ref - x_body_curr) + # second = self.Kd @ (dx_ref - J_closed @ vq_a) + # third = J_closed.T@(first + second) + # tau_a = third + Jda.T @ E_tau.T @ g + tau_a = ( + J_closed.T + @ (self.Kp @ (x_ref - x_body_curr) + self.Kd @ (dx_ref - J_closed @ vq_a)) + + Jda.T @ g + ) + + self.tauq[self.ids_mot] = tau_a + + return self.tauq diff --git a/jmoves/auto_robot_design/control/trajectory_planning.py b/jmoves/auto_robot_design/control/trajectory_planning.py new file mode 100644 index 00000000..2dca7e5a --- /dev/null +++ b/jmoves/auto_robot_design/control/trajectory_planning.py @@ -0,0 +1,142 @@ +import warnings +import numpy as np +import matplotlib.pyplot as plt +from scipy.interpolate import CubicSpline +import scipy.linalg as la + + +def calculate_polynom_coeffs_by_n_points(time_point_arr, v0, vf, alp_f): + """ + Calculates the polynomial coefficients based on the given time points and boundary conditions. + + Parameters: + - time_point_arr (numpy.ndarray): Array of time points and corresponding positions. + - v0 (float): Initial velocity. + - vf (float): Final velocity. + - alp_f (float): Final acceleration. + + Returns: + - numpy.ndarray: Array of polynomial coefficients. + + Raises: + - Warning: If the system fails to solve for the polynomial coefficients. + + """ + t0 = time_point_arr[0, 0] + p0 = time_point_arr[0, 1] + tf = time_point_arr[-1, 0] + pf = time_point_arr[-1, 1] + N = time_point_arr.shape[0] + 3 + A = np.array( + [ + [t0**i for i in range(N)], + [i * t0 ** np.abs(i - 1) for i in range(N)], + *[[t**i for i in range(N)] for t in time_point_arr[1:-1, 0]], + [tf**i for i in range(N)], + [i * tf ** np.abs(i - 1) for i in range(N)], + [i * (i - 1) * tf ** np.abs(i - 2) for i in range(N)], + ] + ) + rhs = np.array([p0, v0, *time_point_arr[1:-1, 1], pf, vf, alp_f]) + x = la.solve(A, rhs) + if not np.isclose(A @ x, rhs).all(): + warnings.warn("Failed to solve the system for polynom, try again") + x = la.solve(A, rhs) + return x + + +def trajectory_planning( + q_via_points, v0, vf, alpf, time_end: float = 1.0, dt: float = 0.1, plot=False +): + """ + Generate a trajectory plan based on via points using polynomial interpolation. + + Args: + q_via_points (list): List of via points for each joint. Each element of the list + is a 1D array representing the via points for a single joint. + v0 (float): Initial velocity. + vf (float): Final velocity. + alpf (float): Acceleration limit per joint. + time_end (float, optional): End time of the trajectory. Defaults to 1.0. + dt (float, optional): Time step for evaluating the trajectory. Defaults to 0.1. + plot (bool, optional): Whether to plot the trajectory. Defaults to False. + + Returns: + tuple: A tuple containing the time array, joint position trajectory array, + joint velocity trajectory array, and joint acceleration trajectory array. + """ + + N = len(q_via_points[0]) + 3 + q_traj = lambda t, b: np.sum(np.array([t**i for i in range(N)]).T * b, axis=1) + dq_traj = lambda t, b: np.sum( + np.array([i * t ** np.abs(i - 1) for i in range(N)]).T * b, axis=1 + ) + ddq_traj = lambda t, b: np.sum( + np.array([i * (i - 1) * t ** np.abs(i - 1) for i in range(N)]).T * b, axis=1 + ) + + time_array = np.linspace(0, time_end, len(q_via_points[0])) + polynom_coefs = [] + # Sample data points + for q in q_via_points: + assert len(q) == N - 3 + time_point_arr = np.array([time_array, q]).T + polynom_coefs.append( + calculate_polynom_coeffs_by_n_points(time_point_arr, v0, vf, alpf) + ) + + # Create a dense set of points where we evaluate the spline + time_arr = np.arange(0, time_end + dt, dt) + q_traj_arr = np.zeros((time_arr.size, np.array(q_via_points).shape[0])) + dq_traj_arr = np.zeros((time_arr.size, np.array(q_via_points).shape[0])) + ddq_traj_arr = np.zeros((time_arr.size, np.array(q_via_points).shape[0])) + + for i, b in enumerate(polynom_coefs): + q_traj_arr[:, i] = q_traj(time_arr, b) + dq_traj_arr[:, i] = dq_traj(time_arr, b) + ddq_traj_arr[:, i] = ddq_traj(time_arr, b) + + if plot: + # Plot the spline interpolation + plt.figure() + for i in range(np.array(q_via_points).shape[0]): + plt.subplot( + np.array(q_via_points).shape[0], + 3, + 3 * i + 1, + ) + plt.plot(time_arr, q_traj_arr[:, i], label="interpolated") + plt.plot(time_array, q_via_points[i], "o", label="via points") + plt.ylabel(f"q{i}") + plt.legend() + plt.grid() + plt.xlim([0, time_end]) + plt.subplot( + np.array(q_via_points).shape[0], + 3, + 3 * i + 2, + ) + plt.plot(time_arr, dq_traj_arr[:, i]) + plt.ylabel(f"dq{i}") + plt.grid() + plt.xlim([0, time_end]) + plt.subplot( + np.array(q_via_points).shape[0], + 3, + 3 * i + 3, + ) + plt.plot(time_arr, ddq_traj_arr[:, i]) + plt.ylabel(f"ddq{i}") + plt.grid() + plt.xlim([0, time_end]) + plt.show() + return (time_arr, q_traj_arr, dq_traj_arr, ddq_traj_arr) + + +if __name__ == "__main__": + q_via_points = [ + [0, 0.1, 0.2, 0.3, 0.4], + [0.5, 0.3, 1, 2, 3], + [0.5, 0.7, 0.2, 0.1, 0.3], + ] + trajectory_planning(q_via_points, 0, 0, 0, 2, dt=0.01, plot=True) diff --git a/jmoves/auto_robot_design/description/actuators.py b/jmoves/auto_robot_design/description/actuators.py new file mode 100644 index 00000000..97b0fbc2 --- /dev/null +++ b/jmoves/auto_robot_design/description/actuators.py @@ -0,0 +1,256 @@ +from dataclasses import dataclass, field + +import numpy as np + + +@dataclass +class Actuator: + mass: float = 0.0 + inertia: float = 0.0 + peak_effort: float = 0.0 + peak_velocity: float = 0.0 + size: list[float] = field(default_factory=list) + reduction_ratio: float = 0.0 + nominal_effort: float = 0.0 + nominal_speed: float = 0.0 + + def get_max_effort(self): + return self.peak_effort * 0.6 + + def get_max_vel(self): + max_vel_rads = self.peak_velocity * 2 * np.pi / 60 + return max_vel_rads * 0.6 + + def torque_weight_ratio(self): + return self.get_max_effort() / self.mass + + +@dataclass +class RevoluteActuator: + mass: float = 0.0 + inertia: float = 0.0 + peak_effort: float = 0.0 + peak_velocity: float = 0.0 + size: list[float] = field(default_factory=list) + reduction_ratio: float = 0.0 + + def get_max_effort(self): + return self.peak_effort * 0.6 + + def get_max_vel(self): + max_vel_rads = self.peak_velocity * 2 * np.pi / 60 + return max_vel_rads * 0.6 + + def torque_weight_ratio(self): + return self.get_max_effort() / self.mass + + def calculate_inertia(self): + Izz = 1 / 2 * self.mass * self.size[0] + Iyy = 1 / 12 * self.mass * self.size[1] + 1 / 4 * self.mass * self.size[0] + Ixx = Iyy + return np.diag([Ixx, Iyy, Izz]) + + +@dataclass +class RevoluteUnit(RevoluteActuator): + def __init__(self) -> None: + self.mass = 0.1 + self.peak_effort = 1000 + self.peak_velocity = 100 + self.size = [0.016, 0.03] + + +@dataclass +class CustomActuators_KG3(RevoluteActuator): + def __init__(self): + self.mass = 3 + self.peak_effort = 420 + self.peak_velocity = 320 + self.size = [0.06, 0.08] + self.reduction_ratio = 1 / 9 + + +@dataclass +class CustomActuators_KG2(RevoluteActuator): + def __init__(self): + self.mass = 2 + self.peak_effort = 180 + self.peak_velocity = 300 + self.size = [0.045, 0.06] + self.reduction_ratio = 1 / 6 + + +@dataclass +class CustomActuators_KG1(RevoluteActuator): + def __init__(self): + self.mass = 1 + self.peak_effort = 80 + self.peak_velocity = 220 + self.size = [0.048, 0.06] + self.reduction_ratio = 1 / 10 + + +@dataclass +class TMotor_AK10_9(RevoluteActuator): + def __init__(self): + self.mass = 0.960 + self.inertia: float = 1002 * 1e-07 + self.peak_effort = 48 + self.peak_velocity = 297.5 + self.size = [0.045, 0.062] + self.reduction_ratio = 1 / 9 + self.nominal_effort = 18 + self.nominal_speed = 220 * 2 * np.pi / 60 + + +@dataclass +class TMotor_AK70_10(RevoluteActuator): + def __init__(self): + self.mass = 0.521 + self.inertia: float = 414 * 1e-07 + self.peak_effort = 24.8 + self.peak_velocity = 382.5 + self.size = [0.0415, 0.05] + self.reduction_ratio = 1 / 10 + self.nominal_effort = 10 + self.nominal_speed = 310 * 2 * np.pi / 60 + + +@dataclass +class TMotor_AK60_6(RevoluteActuator): + def __init__(self): + self.mass = 0.368 + self.inertia: float = 243.5 * 1e-07 + self.peak_effort = 9 + self.peak_velocity = 285 + self.size = [0.034, 0.0395] + self.reduction_ratio = 1 / 6 + self.nominal_effort = 3 + self.nominal_speed = 420 * 2 * np.pi / 60 + + +@dataclass +class TMotor_AK80_64(RevoluteActuator): + def __init__(self): + self.mass = 0.850 + self.inertia: float = 564.5 * 1e-07 + self.peak_effort = 120 + self.peak_velocity = 54.6 + self.size = [0.0445, 0.062] + self.reduction_ratio = 1 / 64 + self.nominal_effort = 6 + self.nominal_speed = 600 * 2 * np.pi / 60 + + +@dataclass +class TMotor_AK80_9(RevoluteActuator): + def __init__(self): + self.mass = 0.485 + self.inertia: float = 607 * 1e-07 + self.peak_effort = 18 + self.peak_velocity = 475 + self.size = [0.0425, 0.0385] + self.reduction_ratio = 1 / 9 + self.nominal_effort = 9 + self.nominal_speed = 390 * 2 * np.pi / 60 + +@dataclass +class MIT_Actuator(RevoluteActuator): + def __init__(self): + self.mass = 0.440 + self.inertia: float = 0.0023 + self.peak_effort = 17 + self.peak_velocity = 381.97 + self.size = [0.048, 0.04] + self.reduction_ratio = 1 / 6 + self.continous_effort = 6.9 + self.nominal_effort = 9 + self.nominal_speed = 390 * 2 * np.pi / 60 + + +@dataclass +class Unitree_H1_Motor(RevoluteActuator): + def __init__(self): + self.reduction_ratio = 1 / 24 + self.mass = 2.3 + self.inertia: float = 260 * 1e-6 + self.peak_effort = 15 / self.reduction_ratio + self.peak_velocity = 3000 / 2 / np.pi * 60 * self.reduction_ratio + self.size = [0.108/2, 0.074] + self.nominal_effort = 4.5 / self.reduction_ratio + self.nominal_speed = 2640 * 2 * np.pi / 60 * self.reduction_ratio + + +@dataclass +class Unitree_GO_Motor(RevoluteActuator): + def __init__(self): + self.mass = 0.530 + self.peak_effort = 23.7 + self.peak_velocity = 30 / 2 / np.pi * 60 + self.size = [0.0478, 0.041] + self.reduction_ratio = 1 / 6.33 + self.nominal_effort = 0.7 + self.nominal_speed = 1600 * 2 * np.pi / 60 + + +@dataclass +class Unitree_B1_Motor(RevoluteActuator): + def __init__(self): + self.mass = 1.740 + self.peak_effort = 140 + self.peak_velocity = 297.5 + self.size = [0.0535, 0.074] + self.reduction_ratio = 1 / 10 + +@dataclass +class Unitree_B2_Motor(RevoluteActuator): + def __init__(self): + self.reduction_ratio = 1 / 15 + + self.mass = 2.2 + self.inertia = 2630 * 1e-07 + self.peak_effort = 13.4 / self.reduction_ratio + self.peak_velocity = 297.5 + self.size = [0.120/2, 0.075] + self.nominal_effort = 4.5 / self.reduction_ratio + self.nominal_speed = 380 * self.reduction_ratio + + + +@dataclass +class Unitree_A1_Motor(RevoluteActuator): + def __init__(self): + self.mass = 0.605 + self.peak_effort = 33.5 + self.peak_velocity = 21 / 2 / np.pi * 60 + self.size = [0.0459, 0.044] + self.reduction_ratio = 1 / 6.33 + + +@dataclass +class MyActuator_RMD_MT_RH_17_100_N(RevoluteActuator): + def __init__(self): + self.mass = 0.590 + self.peak_effort = 40 + self.peak_velocity = 100 + self.size = [0.076 / 2, 0.0605] + self.reduction_ratio = 1 / 36 + self.nominal_effort = 18 + self.nominal_speed = 90 * 2 * np.pi / 60 + + +t_motor_actuators = [ + TMotor_AK10_9(), + TMotor_AK60_6(), + TMotor_AK70_10(), + TMotor_AK80_64(), + TMotor_AK80_9(), +] + +unitree_actuators = [Unitree_A1_Motor(), Unitree_B1_Motor(), Unitree_GO_Motor()] + +all_actuators = ( + t_motor_actuators + unitree_actuators + [MyActuator_RMD_MT_RH_17_100_N()] +) + +main_actuators = [*t_motor_actuators, Unitree_B2_Motor(), Unitree_H1_Motor()] \ No newline at end of file diff --git a/jmoves/auto_robot_design/description/builder.py b/jmoves/auto_robot_design/description/builder.py new file mode 100644 index 00000000..fe11829b --- /dev/null +++ b/jmoves/auto_robot_design/description/builder.py @@ -0,0 +1,1480 @@ +from copy import deepcopy +from itertools import combinations +from typing import Union +from pyparsing import List, Tuple + +import odio_urdf as urdf +import networkx as nx +import numpy.linalg as la +import numpy as np +from scipy.spatial.transform import Rotation as R +import modern_robotics as mr + +from auto_robot_design.description.actuators import Actuator, RevoluteUnit, TMotor_AK80_9, MIT_Actuator +from auto_robot_design.description.kinematics import ( + Joint, + JointPoint, + Link, + Mesh, + Sphere, + Box, +) +from auto_robot_design.description.mechanism import JointPoint2KinematicGraph, KinematicGraph +from auto_robot_design.description.utils import tensor_inertia_sphere_by_mass +from auto_robot_design.pino_adapter.pino_adapter import get_pino_description, get_pino_description_3d_constraints +from auto_robot_design.pinokla.loader_tools import build_model_with_extensions + +RED_COLOR = np.array([[245/ 255, 84/ 255, 84/ 255, 1]]) + +BLUE_COLOR = np.array([[39, 105, 205, 1], + [40, 109, 204, 1], + [95, 128, 213, 1], + [132, 149, 222, 1], + [164, 170, 231, 1], + [193, 193, 240, 1]], dtype=np.float64) +BLUE_COLOR[:,:3] = BLUE_COLOR[:,:3] / 255 + +GREEN_COLOR = np.array([[17, 90, 57, 1], + [4, 129, 75, 1], + [0, 169, 92, 1], + [0, 211, 107, 1], + [0, 255, 119, 1]], dtype=np.float64) +GREEN_COLOR[:,:3] = GREEN_COLOR[:,:3] / 255 + + + +DEFAULT_DENSITY = 2700 / 2.8 +DEFAULT_THICKNESS = 0.04 +DEFAULT_JOINT_DAMPING = 0.05 +DEFAULT_JOINT_FRICTION = 0 +DEFAULT_ACTUATOR = TMotor_AK80_9() + +DEFAULT_PARAMS_DICT = { + "density": DEFAULT_DENSITY, + "thickness": DEFAULT_THICKNESS, + "joint_damping": DEFAULT_JOINT_DAMPING, + "joint_friction": DEFAULT_JOINT_FRICTION, + "actuator": DEFAULT_ACTUATOR, +} + +MIT_DENSITY = 723.52 +MIT_THICKNESS = 0.0335 +MIT_JOINT_DAMPING = 0.05 +MIT_JOINT_FRICTION = 0 +MIT_ACTUATOR = MIT_Actuator() +MIT_BODY_SIZE = [0.28, 0.19, 0.098] +MIT_OFFSET_GROUND_FL = np.array([-MIT_BODY_SIZE[0]/2 - 0.096/2, MIT_BODY_SIZE[1]/2 + MIT_THICKNESS/2, 0]) +MIT_OFFSET_GROUND_RL = np.array([MIT_BODY_SIZE[0]/2 + 0.096/2, MIT_BODY_SIZE[1]/2 + MIT_THICKNESS/2, 0]) +MIT_BODY_DENSITY = (3.3 + (0.54-0.44))/ 4 / np.prod(MIT_BODY_SIZE) + + +MIT_CHEETAH_PARAMS_DICT = { + "density": MIT_DENSITY, + "thickness": MIT_THICKNESS, + "joint_damping": MIT_JOINT_DAMPING, + "joint_friction": MIT_JOINT_FRICTION, + "actuator": MIT_ACTUATOR, + "body_density": MIT_BODY_DENSITY, + "size_ground": MIT_BODY_SIZE, + "offset_ground_fl": MIT_OFFSET_GROUND_FL, + "offset_ground_rl": MIT_OFFSET_GROUND_RL, +} + +def add_branch(G: nx.Graph, branch: Union[List[JointPoint], List[List[JointPoint]]]): + """ + Add a branch to the given graph. + + Parameters: + - G (nx.Graph): The graph to which the branch will be added. + - branch (Union[List[JointPoint], List[List[JointPoint]]]): The branch to be added. It can be a list of JointPoints or a list of lists of JointPoints. + + Returns: + None + """ + + is_list = [isinstance(br, List) for br in branch] + if all(is_list): + for b in branch: + add_branch(G, b) + else: + for i in range(len(branch) - 1): + if isinstance(branch[i], List): + for b in branch[i]: + G.add_edge(b, branch[i + 1]) + elif isinstance(branch[i + 1], List): + for b in branch[i + 1]: + G.add_edge(branch[i], b) + else: + G.add_edge(branch[i], branch[i + 1]) + + +def add_branch_with_attrib( + G: nx.Graph, + branch: Union[List[Tuple[JointPoint, dict]], List[List[Tuple[JointPoint, dict]]]], +): + is_list = [isinstance(br, List) for br in branch] + if all(is_list): + for b in branch: + add_branch_with_attrib(G, b) + else: + for ed in branch: + G.add_edge(ed[0], ed[1], **ed[2]) + + +def calculate_transform_with_2points(p1: np.ndarray, + p2: np.ndarray, + vec: np.ndarray = np.array([0, 0, 1])): + """Calculate transformation from `vec` to vector build with points `p1` and `p2` + + Args: + p1 (np.ndarray): point of vector's start + p2 (np.ndarray): point of vector's end + vec (np.ndarray, optional): Vector tansform from. Defaults to np.array([0, 0, 1]). + + Returns: + tuple: position: np.ndarray, rotation: scipy.spatial.rotation, length: float + """ + v_l = p2 - p1 + angle = np.arccos(np.inner(vec, v_l) / la.norm(v_l) / la.norm(vec)) + axis = mr.VecToso3(vec[:3]) @ v_l[:3] + if not np.isclose(np.sum(axis), 0): + axis /= la.norm(axis) + + rot = R.from_rotvec(axis * angle) + pos = (p2 + p1) / 2 + length = la.norm(v_l) + + return pos, rot, length + +class URDFLinkCreator: + """ + Class responsible for creating URDF links and joints. + """ + + def __init__(self) -> None: + pass + + @classmethod + def create_link(cls, link: Link): + """ + Create a URDF link based on the given Link object. + + Args: + link (Link): The Link object containing the link information. + + Returns: + urdf_link: The created URDF link. + """ + if link.geometry.shape == "mesh": + pos_joint_in_local = [] + H_l_w = mr.TransInv(link.frame) + for j in link.joints: + pos_joint_in_local.append(H_l_w @ np.r_[j.jp.r, 1]) + + joint_pos_pairs = combinations(pos_joint_in_local, 2) + body_origins = [] + for j_p in joint_pos_pairs: + pos, rot, vec_len = calculate_transform_with_2points(j_p[0][:3], j_p[1][:3]) + if vec_len > link.geometry.get_thickness(): + length = vec_len - link.geometry.get_thickness() + else: + length = vec_len + body_origins.append( + (pos.tolist(), rot.as_euler("xyz").tolist(), length) + ) + inertia = ( + link.inertial_frame, + link.geometry.size.moment_inertia_frame(link.inertial_frame), + ) + urdf_link = cls._create_mesh( + link.geometry, link.name, inertia, body_origins, cls.trans_matrix2xyz_rpy(link.inertial_frame) + ) + elif link.geometry.shape == "box": + origin = cls.trans_matrix2xyz_rpy(link.inertial_frame) + # link_origin = cls.trans_matrix2xyz_rpy(link.frame) + urdf_link = cls._create_box(link.geometry, link.name, origin, origin) + elif link.geometry.shape == "sphere": + origin = cls.trans_matrix2xyz_rpy(link.inertial_frame) + # link_origin = cls.trans_matrix2xyz_rpy(link.frame) + urdf_link = cls._create_sphere(link.geometry, link.name, origin, origin) + else: + pass + return urdf_link + + @classmethod + def create_joint(cls, joint: Joint): + """ + Create a URDF joint based on the given Joint object. + + Args: + joint (Joint): The Joint object containing the joint information. + + Returns: + dict: A dictionary containing the created URDF joint and additional information. + """ + if joint.link_in is None or joint.link_out is None: + return {"joint": []} + origin = cls.trans_matrix2xyz_rpy(joint.frame) + if joint.is_constraint: + color1 = joint.link_in.geometry.color + color1[3] = 0.5 + color2 = joint.link_out.geometry.color + color2[3] = 0.5 + + name_link_in = joint.jp.name + "_" + joint.link_in.name + "Pseudo" + rad_in = joint.link_in.geometry.get_thickness() / 1.4 + urdf_pseudo_link_in = urdf.Link( + urdf.Visual( + urdf.Geometry(urdf.Sphere(float(rad_in))), + urdf.Material( + urdf.Color(rgba=color1), name=name_link_in + "_Material" + ), + # name=name_link_in + "_Visual", + ), + urdf.Inertial( + urdf.Mass(float(joint.actuator.mass / 2)), + urdf.Inertia( + **cls.convert_inertia( + tensor_inertia_sphere_by_mass( + joint.actuator.mass / 2, rad_in + ) + ) + ), + ), + name=name_link_in, + ) + urdf_joint_in = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_link_in), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name + "_" + joint.link_in.name + "_revolute", + type="revolute", + ) + + name_link_out = joint.jp.name + "_" + joint.link_out.name + "Pseudo" + rad_out = joint.link_out.geometry.get_thickness() / 1.4 + urdf_pseudo_link_out = urdf.Link( + urdf.Visual( + urdf.Geometry(urdf.Sphere(float(rad_out))), + urdf.Material( + urdf.Color(rgba=color2), name=name_link_out + "_Material" + ), + # name=name_link_out + "_Visual", + ), + urdf.Inertial( + urdf.Mass(float(joint.actuator.mass / 2)), + urdf.Inertia( + **cls.convert_inertia( + tensor_inertia_sphere_by_mass( + joint.actuator.mass / 2, rad_out + ) + ) + ), + ), + name=name_link_out, + ) + + H_in_j = joint.frame + H_w_in = joint.link_in.frame + + H_w_out = joint.link_out.frame + + H_out_j = mr.TransInv(H_w_out) @ H_w_in @ H_in_j + + out_origin = cls.trans_matrix2xyz_rpy(H_out_j) + + urdf_joint_out = urdf.Joint( + urdf.Parent(link=joint.link_out.name), + urdf.Child(link=name_link_out), + urdf.Origin( + xyz=out_origin[0], + rpy=out_origin[1], + ), + name=joint.jp.name + "_" + joint.link_in.name + "_Weld", + type="fixed", + ) + + out = { + "joint": [ + urdf_pseudo_link_in, + urdf_joint_in, + urdf_joint_out, + urdf_pseudo_link_out, + ], + "constraint": [name_link_in, name_link_out], + } + else: + urdf_joint = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=joint.link_out.name), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name, + type="revolute", + ) + out = {"joint": [urdf_joint]} + if joint.jp.active: + connected_unit = RevoluteUnit() + connected_unit.size = [ + joint.link_in.geometry.get_thickness() / 2, + joint.link_in.geometry.get_thickness(), + ] + elif not joint.actuator.size: + unit_size = [ + joint.link_in.geometry.get_thickness() / 2, + joint.link_in.geometry.get_thickness(), + ] + joint.actuator.size = unit_size + connected_unit = joint.actuator + else: + connected_unit = joint.actuator + + name_joint_link = joint.jp.name + "_" + joint.link_in.name + "Unit" + name_joint_weld = joint.jp.name + "_" + joint.link_in.name + "_WeldUnit" + Rp_j = mr.TransToRp(joint.frame) + color = joint.link_in.geometry.color + color[3] = 0.9 + rot_a = R.from_matrix( + Rp_j[0] @ R.from_rotvec([np.pi / 2, 0, 0]).as_matrix() + ).as_euler("xyz") + urdf_joint_weld = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_joint_link), + urdf.Origin( + xyz=Rp_j[1].tolist(), + rpy=rot_a.tolist(), + ), + name=name_joint_weld, + type="fixed", + ) + urdf_unit_link = urdf.Link( + urdf.Visual( + urdf.Geometry( + urdf.Cylinder( + length=connected_unit.size[1], radius=connected_unit.size[0] + ) + ), + urdf.Material( + urdf.Color(rgba=color), name=name_joint_link + "_Material" + ), + # name=name_joint_link + "_Visual", + ), + urdf.Inertial( + urdf.Inertia( + **cls.convert_inertia(connected_unit.calculate_inertia()) + ), + urdf.Mass(float(connected_unit.mass)), + ), + name=name_joint_link, + ) + + if joint.jp.active: + out["active"] = joint.jp.name + name_actuator_link = ( + joint.jp.name + "_" + joint.link_in.name + "Actuator" + ) + name_actuator_weld = ( + joint.jp.name + "_" + joint.link_in.name + "_WeldActuator" + ) + pos = Rp_j[1] + joint.jp.w * ( + joint.actuator.size[1] / 2 + connected_unit.size[1] / 2 + ) + urdf_actuator_weld = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_actuator_link), + urdf.Origin( + xyz=pos.tolist(), + rpy=rot_a.tolist(), + ), + name=name_actuator_weld, + type="fixed", + ) + urdf_actuator_link = urdf.Link( + urdf.Visual( + urdf.Geometry( + urdf.Cylinder( + length=joint.actuator.size[1], + radius=joint.actuator.size[0], + ) + ), + urdf.Material( + urdf.Color(rgba=color), + name=name_actuator_link + "_Material", + ), + # name=name_actuator_link + "_Visual", + ), + urdf.Inertial( + urdf.Inertia( + **cls.convert_inertia(joint.actuator.calculate_inertia()) + ), + urdf.Mass(float(joint.actuator.mass)), + ), + name=name_actuator_link, + ) + out["joint"].append(urdf_actuator_weld) + out["joint"].append(urdf_actuator_link) + + out["joint"].append(urdf_unit_link) + out["joint"].append(urdf_joint_weld) + return out + + @classmethod + def trans_matrix2xyz_rpy(cls, H): + """ + Convert a transformation matrix to XYZ and RPY representation. + + Args: + H: The transformation matrix. + + Returns: + tuple: A tuple containing the XYZ position and RPY orientation. + """ + Rp = mr.TransToRp(H) + rpy = R.from_matrix(Rp[0]).as_euler("xyz").tolist() + return (Rp[1].tolist(), rpy) + + @classmethod + def convert_inertia(cls, tensor_inertia): + """ + Convert the tensor inertia to a dictionary representation. + + Args: + tensor_inertia: The tensor inertia. + + Returns: + dict: A dictionary containing the converted inertia values. + """ + x, y, z = tuple(range(3)) + Ixx = tensor_inertia[x][x] + Iyy = tensor_inertia[y][y] + Izz = tensor_inertia[z][z] + Ixy = tensor_inertia[x][y] + Ixz = tensor_inertia[x][z] + Iyz = tensor_inertia[y][z] + return {"ixx": Ixx, "ixy": Ixy, "ixz": Ixz, "iyy": Iyy, "iyz": Iyz, "izz": Izz} + + @classmethod + def _create_box(cls, geometry: Box, name, origin, inertia_origin): + """ + Create a URDF box based on the given Box geometry. + + Args: + geometry (Box): The Box geometry object. + name: The name of the box. + origin: The origin of the box. + inertia_origin: The origin of the inertia. + + Returns: + urdf.Link: The created URDF link. + """ + name_m = name + "_" + "Material" + urdf_material = urdf.Material(urdf.Color(rgba=geometry.color), name=name_m) + name_c = name + "_" + "Collision" + name_v = name + "_" + "Visual" + urdf_geometry = urdf.Geometry(urdf.Box(geometry.size)) + urdf_inertia_origin = urdf.Origin( + xyz=inertia_origin[0], + rpy=inertia_origin[1], + ) + urdf_origin = urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ) + + visual = urdf.Visual( + urdf_origin, + urdf_geometry, + urdf_material, + # name = name_v + ) + collision = urdf.Collision(urdf_origin, urdf_geometry, name=name_c) + inertial = urdf.Inertial( + urdf_inertia_origin, + urdf.Mass(float(geometry.mass)), + urdf.Inertia(**cls.convert_inertia(geometry.inertia)), + ) + + return urdf.Link(visual, collision, inertial, name=name) + + @classmethod + def _create_sphere(cls, geometry: Sphere, name, origin, inertia_origin): + """ + Create a URDF sphere based on the given Sphere geometry. + + Args: + geometry (Sphere): The Sphere geometry object. + name: The name of the sphere. + origin: The origin of the sphere. + inertia_origin: The origin of the inertia. + + Returns: + urdf.Link: The created URDF link. + """ + name_m = name + "_" + "Material" + urdf_material = urdf.Material(urdf.Color(rgba=geometry.color), name=name_m) + + name_c = name + "_" + "Collision" + name_v = name + "_" + "Visual" + urdf_geometry = urdf.Geometry(urdf.Sphere(geometry.size[0])) + urdf_inertia_origin = urdf.Origin( + xyz=inertia_origin[0], + rpy=inertia_origin[1], + ) + urdf_origin = urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ) + + visual = urdf.Visual( + urdf_origin, + urdf_geometry, + urdf_material, + # name = name_v + ) + collision = urdf.Collision(urdf_origin, urdf_geometry, name=name_c) + inertial = urdf.Inertial( + urdf_inertia_origin, + urdf.Mass(geometry.mass), + urdf.Inertia(**cls.convert_inertia(geometry.inertia)), + ) + + return urdf.Link(visual, collision, inertial, name=name) + + @classmethod + def _create_mesh(cls, geometry: Mesh, name, inertia, body_origins, link_origin=None): + """ + Create a URDF mesh based on the given Mesh geometry. + + Args: + geometry (Mesh): The Mesh geometry object. + name: The name of the mesh. + inertia: The inertia of the mesh. + body_origins: The origins of the mesh bodies. + + Returns: + urdf.Link: The created URDF link. + """ + name_m = name + "_" + "Material" + urdf_material = urdf.Material(urdf.Color(rgba=geometry.color), name=name_m) + origin_I = cls.trans_matrix2xyz_rpy(inertia[0]) + urdf_inertia_origin = urdf.Origin(xyz=origin_I[0], rpy=origin_I[1]) + visual_n_collision = [] + to_mesh = "D:\\Files\\Working\\auto-robotics-design\\testing_ground\\mesh\\" + name + ".obj" + urdf_geometry = urdf.Geometry(urdf.Mesh(to_mesh, 1)) + urdf_origin = urdf.Origin( + xyz=link_origin[0], + rpy=link_origin[1], + ) + for id, origin in enumerate(body_origins): + name_c = name + "_" + str(id) + "_Collision" + name_v = name + "_" + str(id) + "_Visual" + thickness = geometry.get_thickness() + urdf_geometry = urdf.Geometry(urdf.Box([thickness, thickness, origin[2]])) + urdf_origin = urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ) + visual = urdf.Visual( + urdf_origin, + urdf_geometry, + urdf_material, + # name = name_v + ) + + collision = urdf.Collision(urdf_origin, urdf_geometry, name=name_c) + visual_n_collision += [visual, collision] + visual_n_collision += [collision] + inertial = urdf.Inertial( + urdf_inertia_origin, + urdf.Mass(float(geometry.size.mass)), + urdf.Inertia(**cls.convert_inertia(inertia[1])), + ) + return urdf.Link(*visual_n_collision, inertial, name=name) + + +class DetailedURDFCreatorFixedEE(URDFLinkCreator): + def __init__(self) -> None: + super().__init__() + + @classmethod + def create_joint(cls, joint: Joint): + if joint.link_in is None or joint.link_out is None: + return {"joint": []} + origin = cls.trans_matrix2xyz_rpy(joint.frame) + if joint.is_constraint: + color1 = joint.link_in.geometry.color + color1[3] = 0.5 + color2 = joint.link_out.geometry.color + color2[3] = 0.5 + + name_link_in = joint.jp.name + "_" + joint.link_in.name + "Pseudo" + rad_in = joint.link_in.geometry.get_thickness() / 1.4 + urdf_pseudo_link_in = urdf.Link( + urdf.Visual( + urdf.Geometry(urdf.Sphere(float(rad_in))), + urdf.Material( + urdf.Color(rgba=color1), name=name_link_in + "_Material" + ), + # name=name_link_in + "_Visual", + ), + urdf.Inertial( + urdf.Mass(float(joint.actuator.mass / 2)), + urdf.Inertia( + **cls.convert_inertia( + tensor_inertia_sphere_by_mass( + joint.actuator.mass / 2, rad_in + ) + ) + ), + ), + name=name_link_in, + ) + urdf_joint_in = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_link_in), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name + "_" + joint.link_in.name + "_revolute", + type="revolute", + ) + + name_link_out = joint.jp.name + "_" + joint.link_out.name + "Pseudo" + rad_out = joint.link_out.geometry.get_thickness() / 1.4 + urdf_pseudo_link_out = urdf.Link( + urdf.Visual( + urdf.Geometry(urdf.Sphere(float(rad_out))), + urdf.Material( + urdf.Color(rgba=color2), name=name_link_out + "_Material" + ), + # name=name_link_out + "_Visual", + ), + urdf.Inertial( + urdf.Mass(float(joint.actuator.mass / 2)), + urdf.Inertia( + **cls.convert_inertia( + tensor_inertia_sphere_by_mass( + joint.actuator.mass / 2, rad_out + ) + ) + ), + ), + name=name_link_out, + ) + + H_in_j = joint.frame + H_w_in = joint.link_in.frame + H_w_out = joint.link_out.frame + H_out_j = mr.TransInv(H_w_out) @ H_w_in @ H_in_j + out_origin = cls.trans_matrix2xyz_rpy(H_out_j) + urdf_joint_out = urdf.Joint( + urdf.Parent(link=joint.link_out.name), + urdf.Child(link=name_link_out), + urdf.Origin( + xyz=out_origin[0], + rpy=out_origin[1], + ), + name=joint.jp.name + "_" + joint.link_in.name + "_Weld", + type="fixed", + ) + + out = { + "joint": [ + urdf_pseudo_link_in, + urdf_joint_in, + urdf_joint_out, + urdf_pseudo_link_out, + ], + "constraint": [name_link_in, name_link_out], + } + else: + if "EE" in [l.name for l in joint.links]: + urdf_joint = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=joint.link_out.name), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + name=joint.jp.name, + type="fixed", + ) + else: + urdf_joint = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=joint.link_out.name), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name, + type="revolute", + ) + out = {"joint": [urdf_joint]} + if joint.jp.active: + connected_unit = RevoluteUnit() + if joint.link_in.name == "G": + connected_unit.size = [ + joint.link_out.geometry.get_thickness() / 2, + joint.link_out.geometry.get_thickness(), + ] + else: + connected_unit.size = [ + joint.link_in.geometry.get_thickness() / 2, + joint.link_in.geometry.get_thickness(), + ] + elif not joint.actuator.size: + if joint.link_in.name == "G": + unit_size = [ + joint.link_out.geometry.get_thickness() / 2, + joint.link_out.geometry.get_thickness(), + ] + else: + unit_size = [ + joint.link_in.geometry.get_thickness() / 2, + joint.link_in.geometry.get_thickness(), + ] + joint.actuator.size = unit_size + connected_unit = joint.actuator + else: + connected_unit = joint.actuator + + name_joint_link = joint.jp.name + "_" + joint.link_in.name + "Unit" + name_joint_weld = joint.jp.name + "_" + joint.link_in.name + "_WeldUnit" + Rp_j = mr.TransToRp(joint.frame) + color = joint.link_in.geometry.color + color[3] = 0.9 + rot_a = R.from_matrix( + Rp_j[0] @ R.from_rotvec([np.pi / 2, 0, 0]).as_matrix() + ).as_euler("xyz") + urdf_joint_weld = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_joint_link), + urdf.Origin( + xyz=Rp_j[1].tolist(), + rpy=rot_a.tolist(), + ), + name=name_joint_weld, + type="fixed", + ) + urdf_unit_link = urdf.Link( + urdf.Visual( + urdf.Geometry( + urdf.Cylinder( + length=connected_unit.size[1], radius=connected_unit.size[0] + ) + ), + urdf.Material( + urdf.Color(rgba=color), name=name_joint_link + "_Material" + ), + # name=name_joint_link + "_Visual", + ), + urdf.Inertial( + urdf.Inertia( + **cls.convert_inertia(connected_unit.calculate_inertia()) + ), + urdf.Mass(float(connected_unit.mass)), + ), + name=name_joint_link, + ) + + if joint.jp.active: + out["active"] = joint.jp.name + name_actuator_link = ( + joint.jp.name + "_" + joint.link_in.name + "Actuator" + ) + name_actuator_weld = ( + joint.jp.name + "_" + joint.link_in.name + "_WeldActuator" + ) + pos = Rp_j[1] + joint.jp.w * ( + joint.actuator.size[1] / 2 + connected_unit.size[1] / 2 + ) + urdf_actuator_weld = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_actuator_link), + urdf.Origin( + xyz=pos.tolist(), + rpy=rot_a.tolist(), + ), + name=name_actuator_weld, + type="fixed", + ) + urdf_actuator_link = urdf.Link( + urdf.Visual( + urdf.Geometry( + urdf.Cylinder( + length=joint.actuator.size[1], + radius=joint.actuator.size[0], + ) + ), + urdf.Material( + urdf.Color(rgba=color), + name=name_actuator_link + "_Material", + ) + # name=name_actuator_link + "_Visual", + ), + urdf.Inertial( + urdf.Inertia( + **cls.convert_inertia(joint.actuator.calculate_inertia()) + ), + urdf.Mass(float(joint.actuator.mass)), + ), + name=name_actuator_link + ) + out["joint"].append(urdf_actuator_weld) + out["joint"].append(urdf_actuator_link) + + out["joint"].append(urdf_unit_link) + out["joint"].append(urdf_joint_weld) + return out + + +class URDFLinkCreater3DConstraints(URDFLinkCreator): + def __init__(self) -> None: + super().__init__() + + @classmethod + def create_joint(cls, joint: Joint): + """ + Create a URDF joint based on the given Joint object. + + Args: + joint (Joint): The Joint object containing the joint information. + + Returns: + dict: A dictionary containing the created URDF joint and additional information. + """ + if joint.link_in is None or joint.link_out is None: + return {"joint": []} + origin = cls.trans_matrix2xyz_rpy(joint.frame) + if joint.is_constraint: + color1 = joint.link_in.geometry.color + color1[3] = 0.5 + color2 = joint.link_out.geometry.color + color2[3] = 0.5 + + name_link_in = joint.jp.name + "_" + joint.link_in.name + "Pseudo" + rad_in = joint.link_in.geometry.get_thickness() / 1.4 + urdf_pseudo_link_in = urdf.Link( + urdf.Visual( + urdf.Geometry(urdf.Sphere(float(rad_in))), + urdf.Material( + urdf.Color(rgba=color1), name=name_link_in + "_Material" + ), + # name=name_link_in + "_Visual", + ), + urdf.Inertial( + urdf.Mass(float(joint.actuator.mass / 2)), + urdf.Inertia( + **cls.convert_inertia( + tensor_inertia_sphere_by_mass( + joint.actuator.mass / 2, rad_in + ) + ) + ), + ), + name=name_link_in, + ) + urdf_joint_in = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_link_in), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name + "_" + joint.link_in.name + "_Weld", + type="fixed", + ) + + name_link_out = joint.jp.name + "_" + joint.link_out.name + "Pseudo" + rad_out = joint.link_out.geometry.get_thickness() / 1.4 + urdf_pseudo_link_out = urdf.Link( + urdf.Visual( + urdf.Geometry(urdf.Sphere(float(rad_out))), + urdf.Material( + urdf.Color(rgba=color2), name=name_link_out + "_Material" + ), + # name=name_link_out + "_Visual", + ), + urdf.Inertial( + urdf.Mass(float(joint.actuator.mass / 2)), + urdf.Inertia( + **cls.convert_inertia( + tensor_inertia_sphere_by_mass( + joint.actuator.mass / 2, rad_out + ) + ) + ), + ), + name=name_link_out, + ) + + H_in_j = joint.frame + H_w_in = joint.link_in.frame + + H_w_out = joint.link_out.frame + + H_out_j = mr.TransInv(H_w_out) @ H_w_in @ H_in_j + + out_origin = cls.trans_matrix2xyz_rpy(H_out_j) + + urdf_joint_out = urdf.Joint( + urdf.Parent(link=joint.link_out.name), + urdf.Child(link=name_link_out), + urdf.Origin( + xyz=out_origin[0], + rpy=out_origin[1], + ), + name=joint.jp.name + "_" + joint.link_out.name + "_Weld", + type="fixed", + ) + + out = { + "joint": [ + urdf_pseudo_link_in, + urdf_joint_in, + urdf_joint_out, + urdf_pseudo_link_out, + ], + "constraint": [name_link_in, name_link_out], + } + else: + if "EE" in [l.name for l in joint.links]: + urdf_joint = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=joint.link_out.name), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name, + type="revolute", + ) + else: + urdf_joint = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=joint.link_out.name), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name, + type="revolute", + ) + # urdf_joint = urdf.Joint( + # urdf.Parent(link=joint.link_in.name), + # urdf.Child(link=joint.link_out.name), + # urdf.Origin( + # xyz=origin[0], + # rpy=origin[1], + # ), + # urdf.Axis(joint.jp.w.tolist()), + # urdf.Limit( + # lower=joint.pos_limits[0], + # upper=joint.pos_limits[1], + # effort=joint.actuator.get_max_effort(), + # velocity=joint.actuator.get_max_vel(), + # ), + # urdf.Dynamics( + # damping=joint.damphing_friction[0], + # friction=joint.damphing_friction[1], + # ), + # name=joint.jp.name, + # type="revolute", + # ) + out = {"joint": [urdf_joint]} + if joint.jp.active: + connected_unit = RevoluteUnit() + if joint.link_in.name == "G": + connected_unit.size = [ + joint.link_out.geometry.get_thickness() / 2, + joint.link_out.geometry.get_thickness(), + ] + else: + connected_unit.size = [ + joint.link_in.geometry.get_thickness() / 2, + joint.link_in.geometry.get_thickness(), + ] + elif not joint.actuator.size: + if joint.link_in.name == "G": + unit_size = [ + joint.link_out.geometry.get_thickness() / 2, + joint.link_out.geometry.get_thickness(), + ] + else: + unit_size = [ + joint.link_in.geometry.get_thickness() / 2, + joint.link_in.geometry.get_thickness(), + ] + joint.actuator.size = unit_size + connected_unit = joint.actuator + else: + connected_unit = joint.actuator + + name_joint_link = joint.jp.name + "_" + joint.link_in.name + "Unit" + name_joint_weld = joint.jp.name + "_" + joint.link_in.name + "_WeldUnit" + Rp_j = mr.TransToRp(joint.frame) + color = joint.link_in.geometry.color + color[3] = 0.9 + rot_a = R.from_matrix( + Rp_j[0] @ R.from_rotvec([np.pi / 2, 0, 0]).as_matrix() + ).as_euler("xyz") + urdf_joint_weld = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_joint_link), + urdf.Origin( + xyz=Rp_j[1].tolist(), + rpy=rot_a.tolist(), + ), + name=name_joint_weld, + type="fixed", + ) + urdf_unit_link = urdf.Link( + urdf.Visual( + urdf.Geometry( + urdf.Cylinder( + length=connected_unit.size[1], radius=connected_unit.size[0] + ) + ), + urdf.Material( + urdf.Color(rgba=color), name=name_joint_link + "_Material" + ), + # name=name_joint_link + "_Visual", + ), + urdf.Inertial( + urdf.Inertia( + **cls.convert_inertia(connected_unit.calculate_inertia()) + ), + urdf.Mass(float(connected_unit.mass)), + ), + name=name_joint_link, + ) + + if joint.jp.active: + out["active"] = joint.jp.name + name_actuator_link = ( + joint.jp.name + "_" + joint.link_in.name + "Actuator" + ) + name_actuator_weld = ( + joint.jp.name + "_" + joint.link_in.name + "_WeldActuator" + ) + pos = Rp_j[1] + joint.jp.w * ( + joint.actuator.size[1] / 2 + connected_unit.size[1] / 2 + ) + urdf_actuator_weld = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_actuator_link), + urdf.Origin( + xyz=pos.tolist(), + rpy=rot_a.tolist(), + ), + name=name_actuator_weld, + type="fixed", + ) + urdf_actuator_link = urdf.Link( + urdf.Visual( + urdf.Geometry( + urdf.Cylinder( + length=joint.actuator.size[1], + radius=joint.actuator.size[0], + ) + ), + urdf.Material( + urdf.Color(rgba=color), + name=name_actuator_link + "_Material", + ), + # name=name_actuator_link + "_Visual", + ), + urdf.Inertial( + urdf.Inertia( + **cls.convert_inertia(joint.actuator.calculate_inertia()) + ), + urdf.Mass(float(joint.actuator.mass)), + ), + name=name_actuator_link, + ) + out["joint"].append(urdf_actuator_weld) + out["joint"].append(urdf_actuator_link) + + out["joint"].append(urdf_unit_link) + out["joint"].append(urdf_joint_weld) + return out + +class Builder: + def __init__(self, creater) -> None: + self.creater = creater + + def create_kinematic_graph(self, kinematic_graph, name="Robot"): + + links = kinematic_graph.nodes() + joints = dict( + filter(lambda kv: len(kv[1]) > 0, kinematic_graph.joint2edge.items()) + ) + + urdf_links = [] + urdf_joints = [] + for link in links: + urdf_links.append(self.creater.create_link(link)) + + active_joints = [] + constraints = [] + for joint in joints: + info_joint = self.creater.create_joint(joint) + + urdf_joints += info_joint["joint"] + + if "active" in info_joint.keys(): + active_joints.append(info_joint["active"]) + + if "constraint" in info_joint.keys(): + constraints.append(info_joint["constraint"]) + + urdf_objects = urdf_links + urdf_joints + + urdf_robot = urdf.Robot(*urdf_objects, name=name) + + return urdf_robot, active_joints, constraints + + +class ParametrizedBuilder(Builder): + """ + A builder class that allows for parameterized construction of objects. + + Args: + creater: The object that creates the instance of the builder. + density (Union[float, dict]): The density of the object being built. Defaults to 2700 / 2.8. + thickness (float): The thickness of the object being built. Defaults to 0.04. + joint_damping (Union[float, dict]): The damping of the joints in the object being built. Defaults to 0.05. + joint_friction (Union[float, dict]): The friction of the joints in the object being built. Defaults to 0. + size_ground (np.ndarray): The size of the ground for the object being built. Defaults to np.zeros(3). + actuator: The actuator used in the object being built. Defaults to TMotor_AK80_9(). + + Attributes: + density (Union[float, dict]): The density of the object being built. + actuator: The actuator used in the object being built. + thickness (float): The thickness of the object being built. + size_ground (np.ndarray): The size of the ground for the object being built. + joint_damping (Union[float, dict]): The damping of the joints in the object being built. + joint_friction (Union[float, dict]): The friction of the joints in the object being built. + """ + + def __init__( + self, + creater, + density: Union[float, dict] = 2700 / 2.8, + thickness: Union[float, dict] = 0.01, + joint_damping: Union[float, dict] = 0.05, + joint_friction: Union[float, dict] = 0, + joint_limits: Union[dict, tuple] = (-np.pi, np.pi), + size_ground: np.ndarray = np.zeros(3), + offset_ground: np.ndarray = np.zeros(3), + actuator: Union[Actuator, dict]=TMotor_AK80_9(), + ) -> None: + super().__init__(creater) + self.density = density + self.actuator = actuator + self.thickness = thickness + self.size_ground = size_ground + self.offset_ground = offset_ground + self.joint_damping = joint_damping + self.joint_friction = joint_friction + self.joint_limits = joint_limits + self.attributes = ["density", "joint_damping", "joint_friction", "joint_limits", "actuator", "thickness"] + self.joint_attributes = ["joint_damping", "joint_friction", "actuator", "joint_limits"] + self.link_attributes = ["density", "thickness"] + + def create_kinematic_graph(self, kinematic_graph: KinematicGraph, name="Robot"): + # kinematic_graph = deepcopy(kinematic_graph) + # kinematic_graph.G = list(filter(lambda n: n.name == "G", kinematic_graph.nodes()))[0] + # kinematic_graph.EE = list(filter(lambda n: n.name == "EE", kinematic_graph.nodes()))[0] + for attr in self.attributes: + self.check_default(getattr(self, attr), attr) + joints = kinematic_graph.joint_graph.nodes() + for joint in joints: + self._set_joint_attributes(joint) + links = kinematic_graph.nodes() + for link in links: + self._set_link_attributes(link) + + return super().create_kinematic_graph(kinematic_graph, name) + + + def _set_joint_attributes(self, joint): + if joint.jp.active: + joint.actuator = self.actuator[joint.jp.name] if joint.jp.name in self.actuator else self.actuator["default"] + damping = self.joint_damping[joint.jp.name] if joint.jp.name in self.joint_damping else self.joint_damping["default"] + friction = self.joint_friction[joint.jp.name] if joint.jp.name in self.joint_friction else self.joint_friction["default"] + limits = self.joint_limits[joint.jp.name] if joint.jp.name in self.joint_limits else self.joint_limits["default"] + joint.damphing_friction = (damping, friction) + joint.pos_limits = limits + + def _set_link_attributes(self, link): + if link.name == "G" and self.size_ground.any(): + link.geometry.size = list(self.size_ground) + pos = self.offset_ground + link.inertial_frame = mr.RpToTrans(np.eye(3), pos) + else: + link.thickness = self.thickness[link.name] if link.name in self.thickness else self.thickness["default"] + link.geometry.density = self.density[link.name] if link.name in self.density else self.density["default"] + + def check_default(self, params, name): + if not isinstance(params, dict): + setattr(self, name, {"default": params}) + if "default" not in getattr(self, name): + getattr(self, name)["default"] = DEFAULT_PARAMS_DICT[name] + + +def jps_graph2urdf_by_bulder( + graph: nx.Graph, + builder: ParametrizedBuilder +): + """ + Converts a graph representation of a robot's kinematic structure to a URDF file using a builder. + + Args: + graph (nx.Graph): The graph representation of the robot's kinematic structure. + builder (ParametrizedBuilder): The builder object used to create the URDF. + + Returns: + tuple: A tuple containing the URDF representation of the robot, the actuator description, and the constraints descriptions. + """ + kinematic_graph = JointPoint2KinematicGraph(graph) + kinematic_graph.define_main_branch() + kinematic_graph.define_span_tree() + # thickness_aux_branch = 0.025 + i = 1 + k = 1 + name_link_in_aux_branch = [] + for link in kinematic_graph.nodes(): + if link in kinematic_graph.main_branch.nodes(): + # print("yes") + link.geometry.color = BLUE_COLOR[i,:].tolist() + i = (i + 1) % 6 + else: + link.geometry.color = GREEN_COLOR[k,:].tolist() + name_link_in_aux_branch.append(link.name) + k = (k + 1) % 5 + + # builder.thickness = {link: thickness_aux_branch for link in name_link_in_aux_branch} + + kinematic_graph.define_link_frames() + + robot, ative_joints, constraints = builder.create_kinematic_graph(kinematic_graph) + + act_description, constraints_descriptions = get_pino_description( + ative_joints, constraints + ) + + return robot.urdf(), act_description, constraints_descriptions + +def jps_graph2pinocchio_robot( + graph: nx.Graph, + builder: ParametrizedBuilder +): + """ + Converts a Joint Point Structure (JPS) graph to a Pinocchio robot model. + + Args: + graph (nx.Graph): The Joint Point Structure (JPS) graph representing the robot's kinematic structure. + builder (ParametrizedBuilder): The builder object used to create the kinematic graph. + + Returns: + tuple: A tuple containing the robot model with fixed base and free base. + """ + + kinematic_graph = JointPoint2KinematicGraph(graph) + kinematic_graph.define_main_branch() + kinematic_graph.define_span_tree() + + # thickness_aux_branch = 0.025 + i = 1 + k = 1 + name_link_in_aux_branch = [] + for link in kinematic_graph.nodes(): + if link in kinematic_graph.main_branch.nodes(): + # print("yes") + link.geometry.color = BLUE_COLOR[i,:].tolist() + i = (i + 1) % 6 + else: + link.geometry.color = GREEN_COLOR[k,:].tolist() + name_link_in_aux_branch.append(link.name) + k = (k + 1) % 5 + + # builder.thickness = {link: thickness_aux_branch for link in name_link_in_aux_branch} + kinematic_graph.define_link_frames() + + robot, ative_joints, constraints = builder.create_kinematic_graph(kinematic_graph) + + act_description, constraints_descriptions = get_pino_description( + ative_joints, constraints + ) + + fixed_robot = build_model_with_extensions(robot.urdf(), + joint_description=act_description, + loop_description=constraints_descriptions, + actuator_context=kinematic_graph, + fixed=True) + + free_robot = build_model_with_extensions(robot.urdf(), + joint_description=act_description, + loop_description=constraints_descriptions, + actuator_context=kinematic_graph, + fixed=False) + + return fixed_robot, free_robot + +def jps_graph2pinocchio_robot_3d_constraints( + graph: nx.Graph, + builder: ParametrizedBuilder, + back_urdf_str = False +): + """ + Converts a Joint Point Structure (JPS) graph to a Pinocchio robot model. + + Args: + graph (nx.Graph): The Joint Point Structure (JPS) graph representing the robot's kinematic structure. + builder (ParametrizedBuilder): The builder object used to create the kinematic graph. + + Returns: + tuple: A tuple containing the robot model with fixed base and free base. + """ + + kinematic_graph = JointPoint2KinematicGraph(graph) + kinematic_graph.define_main_branch() + kinematic_graph.define_span_tree() + + # thickness_aux_branch = 0.025 + i = 1 + k = 1 + name_link_in_aux_branch = [] + for link in kinematic_graph.nodes(): + if link in kinematic_graph.main_branch.nodes(): + # print("yes") + link.geometry.color = BLUE_COLOR[i,:].tolist() + i = (i + 1) % 6 + else: + link.geometry.color = GREEN_COLOR[k,:].tolist() + name_link_in_aux_branch.append(link.name) + k = (k + 1) % 5 + + # builder.thickness = {link: thickness_aux_branch for link in name_link_in_aux_branch} + + kinematic_graph.define_link_frames() + + robot, ative_joints, constraints = builder.create_kinematic_graph(kinematic_graph) + + act_description, constraints_descriptions = get_pino_description_3d_constraints( + ative_joints, constraints + ) + + if back_urdf_str: + yaml_output = (f"closed_loop: {constraints} \n", + f"type: {['3d' for __ in range(len(constraints))]} \n", + f"name_mot: {ative_joints} \n", + f"joint_name: {[]} \n", + f"joint_type: {[]} \n" + ) + return (robot.urdf(), "".join(yaml_output)) + fixed_robot = build_model_with_extensions(robot.urdf(), + joint_description=act_description, + loop_description=constraints_descriptions, + actuator_context=kinematic_graph, + fixed=True) + + free_robot = build_model_with_extensions(robot.urdf(), + joint_description=act_description, + loop_description=constraints_descriptions, + actuator_context=kinematic_graph, + fixed=False) + + + return fixed_robot, free_robot + +def create_dict_jp_limit(joints, limit): + jp2limits = {} + for jp, lim in zip(joints, limit): + jp2limits[jp] = lim + return jp2limits diff --git a/jmoves/auto_robot_design/description/kinematics.py b/jmoves/auto_robot_design/description/kinematics.py new file mode 100644 index 00000000..676f64cc --- /dev/null +++ b/jmoves/auto_robot_design/description/kinematics.py @@ -0,0 +1,405 @@ +from abc import abstractmethod +import array +from copy import deepcopy +from dataclasses import dataclass, field +from itertools import combinations, product +from typing import Optional + +import numpy as np +from numpy.core.multiarray import zeros as zeros +import numpy.linalg as la + +import networkx as nx +import modern_robotics as mr +from trimesh import Trimesh +from trimesh.convex import convex_hull + +from auto_robot_design.description.actuators import RevoluteUnit +from typing import Union + + +@dataclass +class JointPoint: + """Describe a point in global frame where a joint is attached""" + + r: np.ndarray = field(default_factory=np.zeros(3)) + w: np.ndarray = field(default_factory=np.zeros(3)) + active: bool = False + attach_ground: bool = False + attach_endeffector: bool = False + name: str = "" # noqa: F811 + + instance_counter: int = 0 + + def __post_init__(self): + JointPoint.instance_counter += 1 + self.__instance_counter = JointPoint.instance_counter + if self.name == "": + self.name = "J" + str(self.__instance_counter) + + def reser_id_counter(self): + JointPoint.instance_counter = 0 + + def __hash__(self) -> int: + return hash( + ( + # self.w[0], + # self.w[1], + # self.w[2], + self.attach_ground, + self.attach_endeffector, + self.__instance_counter, + ) + ) + + def __eq__(self, __value: object) -> bool: + return hash(self) == hash(__value) + + +def create_mesh_from_joints(joints, thickness, frame=np.eye(4)) -> Trimesh: + points = {} + for j in joints: + points[j] = ((mr.TransInv(frame) @ np.r_[j.jp.r, 1])[:3], j.jp.w) + pairs_p = combinations(points.keys(), 2) + mesh = Trimesh() + for p1, p2 in pairs_p: + link_points = [] + vector = points[p2][0] - points[p1][0] + vector = vector / la.norm(vector) if la.norm(vector) != 0 else vector + ort_vector = np.cross(points[p1][1], vector) + ort_vector = ort_vector / \ + la.norm(ort_vector) if la.norm(ort_vector) != 0 else ort_vector + variants = product((ort_vector, -ort_vector), (1, -1)) + for v in variants: + link_points.append( + points[p1][0] + (v[0] - v[1] * p1.jp.w) * thickness / 2) + link_points.append( + points[p2][0] + (v[0] - v[1] * p2.jp.w) * thickness / 2) + mesh = mesh.union(convex_hull(link_points)) + + return mesh + + +class Geometry: + + def __init__( + self, + density: float = 0, + size: Union[list[float], Trimesh] = [], + mass: float = 0, + inertia: np.ndarray = np.zeros((3, 3)), + color: list[float] = [0, 0, 0, 0] + ) -> None: + self.shape: str = "" + self._size: list[float] | Trimesh = size + self._density: float = density + self.color = color + if mass == 0 and np.sum(inertia) == 0: + self.calculate_inertia() + else: + self.mass: float = mass + self.inertia = inertia + + @property + def size(self): + return self._size + + @size.setter + def size(self, values: Union[list[float], Trimesh]): # noqa: F811 + self._size = values + self.calculate_inertia() + + @property + def density(self): + return self._density + + @density.setter + def density(self, values: float): # noqa: F811 + self._density = values + self.calculate_inertia() + + @abstractmethod + def calculate_inertia(self) -> tuple[float, np.ndarray]: + return self.mass, self.inertia + + @abstractmethod + def get_thickness(self): + return 0 + + +class Box(Geometry): + def __init__( + self, + density: float = 0, + size: Union[list[float], Trimesh] = [], + mass: float = 0, + inertia: np.ndarray = np.zeros((3, 3)), + color: list[float] = [0, 0, 0, 0] + ) -> None: + super().__init__(density, size, mass, inertia, color) + self.shape = "box" + + def calculate_inertia(self): + + self.mass = np.prod(self.size) * self.density + def inertia(a1, a2): return 1 / 12 * self.mass * (a1**2 + a2**2) + + inertia_xx = inertia(*self.size[1:]) + inertia_yy = inertia(self.size[1], self.size[2]) + inertia_zz = inertia(*self.size[:-1]) + + self.inertia = np.diag([inertia_xx, inertia_yy, inertia_zz]) + + return self.mass, self.inertia + + def get_thickness(self): + return self.size[1] + + +class Sphere(Geometry): + def __init__( + self, + density: float = 0, + size: list[float] = [], + mass: float = 0, + inertia: np.ndarray = np.zeros((3, 3)), + color: list[float] = [0, 0, 0, 0] + ) -> None: + super().__init__(density, size, mass, inertia, color) + self.shape = "sphere" + + def calculate_inertia(self): + self.mass = 4 / 3 * np.pi * self.size[0] ** 3 * self.density + central_inertia = 2 / 5 * self.mass * self.size[0] ** 2 + + self.inertia = np.diag([central_inertia for __ in range(3)]) + + return self.mass, self.inertia + + def get_thickness(self): + return self.size[0] + + +class Mesh(Geometry): + def __init__( + self, + density: float = 0.0, + size: Trimesh = Trimesh(), + mass: float = 0.0, + inertia: np.ndarray = np.zeros((3, 3)), + color: list[float] = [0, 0, 0, 0] + ) -> None: + super().__init__(density, size, mass, inertia, color) + num_points = len(self.size.vertices) / 2 + + self.density = density + # self.density = density / (num_points - 1) + self.shape = "mesh" + + def calculate_inertia(self): + self.mass = self._size.mass + self._size.density = self.density + + self.inertia = self._size.moment_inertia + + return self.mass, self.inertia + + def get_thickness(self): + thickness = max( + map(lambda x: x[0][1] - x[1][1], combinations(self.size.vertices, 2))) + return thickness + + +class Link: + instance_counter: int = 0 + + def __init__( + self, + joints: set[JointPoint], + name: str = "", + geometry: Optional[Geometry] = None, + frame: np.ndarray = np.eye(4), + inertial_frame: np.ndarray = np.eye(4), + density: float = 2700 /4, + thickness: float = 0.01, + ) -> None: + self.joints: set[JointPoint] = joints + self.name: str = name + self.geometry = geometry + + self._frame: np.ndarray = deepcopy(frame) + self._inertial_frame: np.ndarray = deepcopy(inertial_frame) + + self._density: float = density + + self._thickness: tuple[float] = thickness + self.define_geometry() + + Link.instance_counter += 1 + self.instance_counter = Link.instance_counter + if self.name == "": + self.name = "L" + str(self.instance_counter) + + @property + def density(self): + return self._density + + @density.setter + def density(self, value: float): + self._density = value + self.geometry.density = value + # self.define_geometry() + + @property + def thickness(self): + return self._thickness + + @thickness.setter + def thickness(self, value: float): + self._thickness = value + self.define_geometry() + + @property + def frame(self): + return self._frame + + @frame.setter + def frame(self, value: np.ndarray): + self._frame = value + self.define_geometry() + + @property + def inertial_frame(self): + return self._inertial_frame + + @inertial_frame.setter + def inertial_frame(self, value: np.ndarray): + self._inertial_frame = value + # self.define_geometry() + + def define_geometry(self): + num_joint = len(self.joints) + if self.geometry and np.sum(self.geometry.color) > 0: + color = self.geometry.color + else: + color = (np.r_[np.random.uniform(0, 1, 3), 1]).tolist() + if self.name == "G": + size = [self._thickness * 2 for __ in range(3)] + self.geometry = Box(self._density, size, color=color) + elif num_joint == 1: + self.geometry = Sphere( + self._density, [self._thickness/1.4], color=color) + elif num_joint == 2: + joint_list = list(self.joints) + vector = joint_list[1].jp.r - joint_list[0].jp.r + length = la.norm(vector) + # thickness = min((length * self._thickness, self._thickness)) + # thickness = max((thickness, 0.015)) + # print(length) + if length > self.thickness: + length = length - self._thickness + size = [self._thickness, self._thickness, length] + self.geometry = Box(self._density, size, color=color) + elif num_joint > 2: + # print(max_length) + # thickness = min((max_length * self._thickness, self._thickness)) + # thickness = max((thickness, 0.015)) + mesh = create_mesh_from_joints(self.joints, self._thickness) + self.geometry = Mesh(self._density, mesh, color=color) + else: + raise Exception("Zero joints") + + def str(self): + return {self.name: tuple(j.jp.name for j in self.joints)} + + def __hash__(self) -> int: + return hash((self.name, *self.joints)) + + def __eq__(self, __value: object) -> bool: + return self.joints == __value.joints + + +class Joint: + def __init__(self, joint_point: JointPoint, + is_constraint: bool = False, + links: set[Link] = set(), + frame: np.ndarray = np.eye(4)) -> None: + self.jp = joint_point + self.is_constraint = is_constraint + self.links = deepcopy(links) + self._link_in = None + self._link_out = None + self.frame = deepcopy(frame) + self.pos_limits = (-np.pi, np.pi) + self.actuator = RevoluteUnit() + self.damphing_friction = deepcopy((0, 0)) + + @property + def link_in(self): + return self._link_in + + @link_in.setter + def link_in(self, value: Link): # noqa: F811 + self._link_in = value + self.links = self.links | set([value]) + + @property + def link_out(self): + return self._link_out + + @link_out.setter + def link_out(self, value: Link): # noqa: F811 + self._link_out = value + self.links = self.links | set([value]) + + def str(self): + str_repr = {self.jp.name: tuple(l.name for l in self.links)} + if self.link_in: + str_repr["in"] = self.link_in.name + if self.link_out: + str_repr["out"] = self.link_out.name + return str_repr + + def __hash__(self) -> int: + return hash(( + self.jp, + )) + + def __eq__(self, __value: object) -> bool: + return hash(self) == hash(__value) + + +def get_ground_joints(graph: nx.Graph): + if isinstance(list(graph.nodes())[0], JointPoint): + joint_nodes = graph.nodes() + return filter(lambda n: n.attach_ground, joint_nodes) + else: + joint_nodes = graph.nodes() + return filter(lambda n: n.jp.attach_ground, joint_nodes) + + +def get_endeffector_joints(graph: nx.Graph): + if isinstance(list(graph.nodes())[0], JointPoint): + joint_nodes = graph.nodes() + return filter(lambda n: n.attach_endeffector, joint_nodes) + else: + joint_nodes = graph.nodes() + return filter(lambda n: n.jp.attach_endeffector, joint_nodes) + + +if __name__ == "__main__": + # print("Kinematic description of the mechanism") + # Define the joint points + # joint_points = [ + # JointPoint(r=np.array([0, 0, 0]), attach_ground=True), + # JointPoint(r=np.array([1, 0, 0])), + # JointPoint(r=np.array([0, 1, 0])), + # JointPoint(r=np.array([0, 0, 1])), + # JointPoint(r=np.array([1, 1, 0])), + # JointPoint(r=np.array([1, 0, 1])), + # JointPoint(r=np.array([0, 1, 1])), + # JointPoint(r=np.array([1, 1, 1]), attach_endeffector=True), + # ] + # print(joint_points[0] == joint_points[1]) + # print(joint_points[0] == joint_points[0]) + pass \ No newline at end of file diff --git a/jmoves/auto_robot_design/description/mechanism.py b/jmoves/auto_robot_design/description/mechanism.py new file mode 100644 index 00000000..12aa100c --- /dev/null +++ b/jmoves/auto_robot_design/description/mechanism.py @@ -0,0 +1,502 @@ +from collections import deque +from itertools import combinations +from copy import deepcopy +from shlex import join +from typing import Optional +from matplotlib import pyplot as plt +from mediapy import set_ffmpeg + +import numpy as np +import numpy.linalg as la + +from scipy.spatial.transform import Rotation as R + +import modern_robotics as mr +from modern_robotics import VecToso3 +import networkx as nx + +from auto_robot_design.description.kinematics import ( + Joint, + Link, + get_ground_joints, + get_endeffector_joints, +) +from auto_robot_design.description.utils import ( + calc_weight_for_span, + draw_joint_point, + get_pos, + weight_by_dist_active, +) + + +class KinematicGraph(nx.Graph): + def __init__(self, incoming_graph_data=None, **attr): + super().__init__(incoming_graph_data, **attr) + self.EE: Optional[Link] = None + self.G: Optional[Link] = None + self.main_branch: nx.Graph = nx.Graph() + self.kinematic_tree: nx.Graph = nx.Graph() + self.joint_graph: nx.Graph = nx.Graph() + self.jps_graph: nx.Graph = nx.Graph() + + @property + def name2joint(self): + return {j.jp.name: j for j in self.joint_graph.nodes()} + + @property + def name2jp(self): + return {j.jp.name: j.jp for j in self.jps_graph.nodes()} + + @property + def name2link(self): + return {l.name: l for l in self.nodes()} + + @property + def active_joints(self): + return set(map(lambda x: x, filter(lambda j: j.jp.active, self.joint_graph.nodes()))) + + def define_main_branch(self): + ground_joints = sorted( + list(get_ground_joints(self.joint_graph)), + key=lambda x: la.norm(x.jp.r), + ) + main_G_j = ground_joints[0] + ee_joints = sorted( + list(get_endeffector_joints(self.joint_graph)), + key=lambda x: la.norm(x.jp.r - main_G_j.jp.r), + ) + main_EE_j = ee_joints[0] + + j_in_m_branch = nx.shortest_path( + self.joint_graph, main_G_j, main_EE_j, weight=weight_by_dist_active + ) + main_branch = [self.G] + # print([(j.jp.name, l.name) for j in j_in_m_branch for l in j.links]) + for i in range(0, len(j_in_m_branch)): + main_branch.append( + (j_in_m_branch[i].links - set(main_branch)).pop() + ) + self.main_branch = self.subgraph(main_branch) + return self.main_branch + + def define_span_tree(self, main_branch=None): + if main_branch: + self.main_branch = self.subgraph(main_branch) + main_branch = self.main_branch + + for edge in self.edges(data=True): + weight = calc_weight_for_span(edge, self) + self[edge[0]][edge[1]]["weight"] = weight + + for m_edge in main_branch.edges(): + self[m_edge[0]][m_edge[1]]["weight"] = ( + self[m_edge[0]][m_edge[1]]["weight"] + 1000 + ) + + self.kinematic_tree = nx.maximum_spanning_tree(self, algorithm="prim") + return self.kinematic_tree + + @property + def joint2edge(self): + edges = self.edges(data=True) + j2edge = {j: set() for j in self.joint_graph.nodes()} + for data in edges: + j2edge[data[2]["joint"]] = set((data[0], data[1])) + return j2edge + + # def get_next_link(self, joint: Joint, prev_link): + # joint.link_in = prev_link + # joint.link_out = (self.joint2edge[joint] - set([prev_link])).pop() + # return joint.link_out + + def get_in_joint(self, prev_link, next_link): + in_joint: Joint = self[prev_link][next_link]["joint"] + in_joint.link_out = next_link + in_joint.link_in = prev_link + return in_joint + + def set_link_frame_by_joints(self,link, in_j, out_j): + ez = np.array([0,0,1]) + v_w = out_j.jp.r - in_j.jp.r + angle = np.arccos(np.inner(ez, v_w) / + la.norm(v_w) / + la.norm(ez)) + + axis = mr.VecToso3(ez) @ v_w + if np.sum(axis) == 0 and angle in (0.0, np.pi): + axis = in_j.jp.w + else: + axis /= la.norm(axis) + + + rot = R.from_rotvec(axis * angle) + pos = in_j.jp.r + + link.frame = mr.RpToTrans(rot.as_matrix(), + pos) + + pos_link_joints = [j.jp.r for j in link.joints] + mean_pos = np.mean(pos_link_joints, axis=0) + link.inertial_frame[:,3] = np.round(mr.TransInv(link.frame) @ np.r_[mean_pos, 1], 5) + + def define_link_frames(self): + links = self.nodes() - set([self.G]) + + path_from_G = nx.shortest_path(self.kinematic_tree, self.G) + path_main_branch: list = nx.shortest_path(self.kinematic_tree, self.G, self.EE) + + for link in links: + path_G_link = path_from_G[link] + prev_link = path_G_link[-2] + if len(link.joints) == 2: + close_j_to_G: Joint = self.get_in_joint(prev_link,link) + out_joint = (link.joints - set([close_j_to_G])).pop() + if out_joint.link_in is None: + out_joint.link_in = link + elif out_joint.link_out is None: + out_joint.link_out = link + self.set_link_frame_by_joints(link, close_j_to_G, out_joint) + + elif len(link.joints) > 2: + if link in path_main_branch: + num = path_main_branch.index(link) + prev_link = path_main_branch[num-1] + + in_joint = self.get_in_joint(prev_link,link) + out_joints = link.joints - set([in_joint]) + j2edge = self.joint2edge + + joint_tree = set(filter(lambda j: tuple(j2edge[j]) in self.kinematic_tree.edges(),out_joints)) + joint_main = set(filter(lambda j: tuple(j2edge[j]) in self.main_branch.edges(),joint_tree)) + + if joint_main: + out_joint = joint_main.pop() + elif joint_tree: + out_joint = sorted(list(joint_tree), + key=lambda out_j: la.norm(out_j.jp.r - in_joint.jp.r), + reverse=True)[0] + else: + out_joint = sorted(list(out_joints), + key=lambda out_j: la.norm(out_j.jp.r - in_joint.jp.r), + reverse=True)[0] + self.set_link_frame_by_joints(link, in_joint, out_joint) + # out_joint.link_in = link + # other_out_joint = out_joints - set([out_joint]) + for j in out_joints: + if j.link_in is None: + j.link_in = link + elif j.link_out is None: + j.link_out = link + else: + in_joint = self.get_in_joint(prev_link,link) + link.frame[:3,3] = in_joint.jp.r + + for edges in self.kinematic_tree.edges(data=True): + joint: Joint = self[edges[0]][edges[1]]["joint"] + prev_link = joint.link_in + next_link = joint.link_out + joint.frame = mr.TransInv(prev_link.frame) @ next_link.frame + + for edges in self.edges() - self.kinematic_tree.edges(): + + joint: Joint = self[edges[0]][edges[1]]["joint"] + prev_link = joint.link_in + next_link = joint.link_out + joint.is_constraint = True + # print(prev_link.name, joint.jp.name)#, next_link.name) + prev_in_joint = list(filter(lambda j: j.link_in and j.link_in == prev_link, prev_link.joints))[0] + + rot, __ = mr.TransToRp(prev_in_joint.frame) + pos = mr.TransInv(prev_link.frame) @ np.r_[joint.jp.r, 1] + + joint.frame = mr.RpToTrans(rot, pos[:3]) + + def set_random_actuators(self, actuators: list): + """ + Sets random actuators for the active joints in the mechanism. + + Parameters: + - actuators (list): A list of available actuators. + + Returns: + - None + + Example usage: + >>> from auto_robot_design.description.mechanism import KinematicGraph + >>> from auto_robot_design.description.actuators import t_motor_actuators + >>> mechanism = KinematicGraph() + >>> mechanism.set_random_actuators(t_motor_actuators) + """ + active_joints = [j for j in self.joint_graph.nodes() if j.jp.active] + list_actuators = np.random.choice(actuators, len(active_joints)) + + for joint, actuator in zip(active_joints, list_actuators): + joint.actuator = actuator + + def set_actuator_to_all_joints(self, actuator): + """ + Sets the actuator for all active joints in the mechanism. + + Parameters: + - actuator: The actuator object to be set for all joints. + + Returns: + None + """ + active_joints = [j for j in self.joint_graph.nodes() if j.jp.active] + for joint in active_joints: + joint.actuator = actuator + + def set_joint2actuator(self, joint2actuator): + """ + Sets the actuator for each joint in the mechanism. + + Parameters: + - joint2actuator (dict): A dictionary with the joint name as the key and the actuator as the value. + + Returns: + None + """ + if isinstance(joint2actuator, dict): + for joint, actuator in joint2actuator.items(): + self.name2joint[joint].actuator = actuator + elif isinstance(joint2actuator, (tuple, list)): + for joint, actuator in joint2actuator: + self.name2joint[joint].actuator = actuator + else: + raise ValueError("joint2actuator must be a dictionary or a tuple(list) of tuples(lists).") + + +def JointPoint2KinematicGraph(jp_graph: nx.Graph): + """ + Converts a joint point graph to a kinematic graph. + + Args: + jp_graph (nx.Graph): The joint point graph to convert. + + Returns: + KinematicGraph: The converted kinematic graph. + """ + + # Change JP nodes to external nodes with kinematic and dynamic properties + JP2Joint = {} + for jp in jp_graph.nodes(): + JP2Joint[jp] = Joint(jp) + jps_graph = deepcopy(jp_graph) + joint_graph: nx.Graph = nx.relabel_nodes(jp_graph, JP2Joint) + + # Create ground and end-effector links + ground_joints = set([JP2Joint[jp] for jp in get_ground_joints(jp_graph)]) + ee_joints = set([JP2Joint[jp] for jp in get_endeffector_joints(jp_graph)]) + + ground_link = Link(ground_joints, "G") + ee_link = Link(ee_joints, "EE") + + for joint in ground_joints: + joint.link_in = ground_link + for joint in ee_joints: + joint.link_out = ee_link + + # Create stack of joints and add ground joints + stack_joints: deque[Joint] = deque(maxlen=len(JP2Joint.values())) + stack_joints += list(ground_joints) + + # Create expedited set of joints + exped_j = set() + # Create list of links + links: list[Link] = [ee_link, ground_link] + + while stack_joints: + # Get the current joint + current_joint = stack_joints.pop() + # current_joint = JP2Joint[curr_jp] + # Get the link that the current joint is connected to + L = next(iter(current_joint.links)) + # Add the current joint to the expedited set + exped_j.add(current_joint) + L1 = joint_graph.subgraph(L.joints) + # Get the neighbors of the current joint that are not in the link + N = set(joint_graph.neighbors(current_joint)) - L.joints + nextN = {} + lenNN = {} + # Get the neighors of the neighbors of the current joint. + # And calculate the number of neighbors that are in the link + for n in N: + nextN[n] = set(joint_graph.neighbors(n)) + lenNN[n] = len(nextN[n] & L.joints) + if len(L.joints) <= 2: # If the link has less than or equal to 2 joints + # Create a new link with the current joint and the neighbors + L2 = Link(joints=(N | set([current_joint]))) + for j in L2.joints: + j.links.add(L2) + # If the link has more than 2 joints and number of neighbors is 1 + elif len(N) == 1: + N = N.pop() + if lenNN[N] == 1: + L2 = Link(joints=set([N, current_joint])) + for j in L2.joints: + j.links.add(L2) + else: + L.joints.add(N) + N.links.add(L) + continue + # Otherwise + else: + more_one_adj_L1 = set(filter(lambda n: lenNN[n] > 1, N)) + for n in more_one_adj_L1: + L.joints.add(n) + n.links.add(L) + less_one_adj_L1 = N - more_one_adj_L1 + if len(less_one_adj_L1) > 1: + N = less_one_adj_L1 + L2 = Link(joints=(N | set([current_joint]))) + for j in L2.joints: + j.links.add(L2) + else: + N = list(less_one_adj_L1)[0] + L2 = Link(joints=set([N, current_joint])) + N.links.add(L2) + links.append(L2) + # Add the neighbors to the stack + if isinstance(N, set): + intersting_joints = set(filter(lambda n: len(n.links) < 2, N)) + stack_joints += list(intersting_joints) + else: + intersting_joints = N if len(N.links) < 2 else set() + stack_joints.append(N) + stack_joints = deque(filter(lambda j: len(j.links) < 2, stack_joints)) + + kin_graph = KinematicGraph() + kin_graph.EE = ee_link + kin_graph.G = ground_link + kin_graph.joint_graph = joint_graph + kin_graph.jps_graph = jps_graph + # Add edges to the kinematic graph + for joint in joint_graph.nodes(): + connected_links = list(joint.links) + if len(connected_links) == 2: + kin_graph.add_edge(connected_links[0], connected_links[1], joint=joint) + Link.instance_counter = 0 + return kin_graph + + +def define_link_frames( + graph, + span_tree, + init_link="G", + in_joint=None, + main_branch=[], + all_joints=set(), + **kwargs +): + if init_link == "G" and in_joint is None: + kwargs = {} + kwargs["ez"] = np.array([0, 0, 1, 0]) + kwargs["joint2edge"] = { + data[2]["joint"]: set((data[0], data[1])) + for data in span_tree.edges(data=True) + } + + kwargs["get_next_link"] = lambda joint, prev_link: ( + (kwargs["joint2edge"][joint] - set([prev_link])).pop() + ) + + graph.nodes()["EE"]["frame_geom"] = ( + np.array([0, 0, 0]), + np.array([0, 0, 0, 1]), + ) + + graph.nodes()["G"]["frame"] = (np.array([0, 0, 0]), np.array([0, 0, 0, 1])) + graph.nodes()["G"]["frame_geom"] = (np.array([0, 0, 0]), np.array([0, 0, 0, 1])) + graph.nodes()["G"]["H_w_l"] = mr.RpToTrans(np.eye(3), np.zeros(3)) + graph.nodes()["G"]["m_out"] = ( + span_tree[main_branch[0]][main_branch[1]]["joint"], + main_branch[1], + ) + graph.nodes()["G"]["out"] = { + j: kwargs["get_next_link"](j, "G") + for j in graph.nodes()["G"]["link"].joints + } + for j in graph.nodes()["G"]["out"]: + define_link_frames( + graph, span_tree, "G", j, main_branch, all_joints, **kwargs + ) + return graph + + data_prev_link = graph.nodes()[init_link] + link = kwargs["get_next_link"](in_joint, init_link) + + graph.nodes()[link]["in"] = (in_joint, init_link) + sorted_out_jj = sorted( + list( + graph.nodes()[link]["link"].joints + & set(kwargs["joint2edge"].keys()) - set([in_joint]) + ), + key=lambda x: la.norm(x.r - in_joint.r), + reverse=True, + ) + + H_w_L1 = data_prev_link["H_w_l"] + if sorted_out_jj: + if link in main_branch: + i = np.argwhere(np.array(main_branch) == link).squeeze() + graph.nodes()[link]["m_out"] = ( + span_tree[main_branch[i]][main_branch[i + 1]]["joint"], + main_branch[i + 1], + ) + else: + graph.nodes()[link]["m_out"] = ( + sorted_out_jj[0], + kwargs["get_next_link"](sorted_out_jj[0], link), + ) + graph.nodes()[link]["out"] = { + j: kwargs["get_next_link"](j, link) for j in sorted_out_jj + } + ee_jj = graph.nodes()[link]["m_out"][0].r + v_w = graph.nodes()[link]["m_out"][0].r - in_joint.r + else: + if link == "EE": + ee_jj = all_joints - set( + map(lambda x: x[2]["joint"], graph.edges(data=True)) + ) + else: + ee_jj = (all_joints - set(kwargs["joint2edge"].keys())) & graph.nodes()[ + link + ]["link"].joints + if ee_jj: + # G.nodes()[link]["out"] = {j for j in ee_jj} + ee_jj = sorted( + list(ee_jj), + key=lambda x: la.norm(x.r - in_joint.r), + reverse=True, + ) + graph.nodes()[link]["m_out"] = (ee_jj[0],) + ee_jj = ee_jj[0].r + v_w = ee_jj - in_joint.r + else: + ee_jj = in_joint.r + v_w = np.array([0, 0, 1]) + ez_l_w = H_w_L1 @ kwargs["ez"] + angle = np.arccos(np.inner(ez_l_w[:3], v_w) / la.norm(v_w) / la.norm(ez_l_w[:3])) + axis = mr.VecToso3(ez_l_w[:3]) @ v_w + axis /= la.norm(axis) + + pos = mr.TransInv(H_w_L1) @ np.array([*in_joint.r.tolist(), 1]) + pos = np.round(pos, 15) + rot = R.from_rotvec(axis * angle) + H_w_L2 = H_w_L1 @ mr.RpToTrans(rot.as_matrix(), pos[:3]) + graph.nodes()[link]["H_w_l"] = H_w_L2 + graph.nodes()[link]["frame"] = (pos[:3], rot.as_quat()) + graph.nodes()[link]["frame_geom"] = ( + ((mr.TransInv(H_w_L2) @ np.array([*ee_jj.tolist(), 1])) / 2)[:3], + np.array([0, 0, 0, 1]), + ) + if link == "EE": + return graph + if graph.nodes()[link].get("out", {}): + for jj_out in graph.nodes()[link]["out"]: + if jj_out in kwargs["joint2edge"].keys(): + define_link_frames( + graph, span_tree, link, jj_out, main_branch, all_joints, **kwargs + ) + return graph diff --git a/jmoves/auto_robot_design/description/mesh_builder/mesh_builder.py b/jmoves/auto_robot_design/description/mesh_builder/mesh_builder.py new file mode 100644 index 00000000..35dc57c1 --- /dev/null +++ b/jmoves/auto_robot_design/description/mesh_builder/mesh_builder.py @@ -0,0 +1,247 @@ + +from pathlib import Path +import os + +from typing import Union +import networkx as nx +import numpy as np +import modern_robotics as mr +import odio_urdf as urdf +from auto_robot_design.description.actuators import Actuator, TMotor_AK80_9 +from auto_robot_design.description.builder import BLUE_COLOR, DEFAULT_PARAMS_DICT, GREEN_COLOR, RED_COLOR, Builder, ParametrizedBuilder +from auto_robot_design.description.mechanism import JointPoint2KinematicGraph, KinematicGraph +from auto_robot_design.description.mesh_builder.urdf_creater import MeshCreator, URDFMeshCreator +from auto_robot_design.pino_adapter.pino_adapter import get_pino_description_3d_constraints +from auto_robot_design.pinokla.loader_tools import build_model_with_extensions + + +class MeshBuilder(ParametrizedBuilder): + """ + A builder class that allows for parameterized construction of objects. + + Args: + creater: The object that creates the instance of the builder. + density (Union[float, dict]): The density of the object being built. Defaults to 2700 / 2.8. + thickness (float): The thickness of the object being built. Defaults to 0.04. + joint_damping (Union[float, dict]): The damping of the joints in the object being built. Defaults to 0.05. + joint_friction (Union[float, dict]): The friction of the joints in the object being built. Defaults to 0. + size_ground (np.ndarray): The size of the ground for the object being built. Defaults to np.zeros(3). + actuator: The actuator used in the object being built. Defaults to TMotor_AK80_9(). + + Attributes: + density (Union[float, dict]): The density of the object being built. + actuator: The actuator used in the object being built. + thickness (float): The thickness of the object being built. + size_ground (np.ndarray): The size of the ground for the object being built. + joint_damping (Union[float, dict]): The damping of the joints in the object being built. + joint_friction (Union[float, dict]): The friction of the joints in the object being built. + """ + + def __init__( + self, + creator: URDFMeshCreator, + mesh_creator: MeshCreator, + mesh_path = None, + density: Union[float, dict] = 2700 / 2.8, + thickness: Union[float, dict] = 0.01, + joint_damping: Union[float, dict] = 0.05, + joint_friction: Union[float, dict] = 0, + joint_limits: Union[dict, tuple] = (-np.pi, np.pi), + size_ground: np.ndarray = np.zeros(3), + offset_ground: np.ndarray = np.zeros(3), + actuator: Union[Actuator, dict]=TMotor_AK80_9(), + ) -> None: + super().__init__(creator, density, thickness, joint_damping, joint_friction, joint_limits, size_ground, offset_ground, actuator) + self.creater = creator + self.mesh_creator: MeshCreator = mesh_creator + self.mesh_path = mesh_path + + def create_kinematic_graph(self, kinematic_graph: KinematicGraph, name="Robot"): + # kinematic_graph = deepcopy(kinematic_graph) + # kinematic_graph.G = list(filter(lambda n: n.name == "G", kinematic_graph.nodes()))[0] + # kinematic_graph.EE = list(filter(lambda n: n.name == "EE", kinematic_graph.nodes()))[0] + for attr in self.attributes: + self.check_default(getattr(self, attr), attr) + joints = kinematic_graph.joint_graph.nodes() + for joint in joints: + self._set_joint_attributes(joint) + links = kinematic_graph.nodes() + for link in links: + self._set_link_attributes(link) + self.create_meshes(kinematic_graph) + + links = kinematic_graph.nodes() + joints = dict( + filter(lambda kv: len(kv[1]) > 0, kinematic_graph.joint2edge.items()) + ) + + urdf_links = [] + urdf_joints = [] + for link in links: + urdf_links.append(self.creater.create_link(link)) + # print(link.name, link.geometry.mass) + + active_joints = [] + constraints = [] + for joint in joints: + info_joint = self.creater.create_joint(joint) + + urdf_joints += info_joint["joint"] + + if "active" in info_joint.keys(): + active_joints.append(info_joint["active"]) + + if "constraint" in info_joint.keys(): + constraints.append(info_joint["constraint"]) + + urdf_objects = urdf_links + urdf_joints + + urdf_robot = urdf.Robot(*urdf_objects, name=name) + + return urdf_robot, active_joints, constraints + + def create_meshes(self, kinematic_graph, prefix=""): + if self.mesh_path is None: + dirpath = Path().parent.absolute() + path_to_mesh = dirpath.joinpath("mesh") + if not path_to_mesh.exists(): + os.mkdir(path_to_mesh) + self.mesh_path = path_to_mesh + + self.creater.set_path_to_mesh(self.mesh_path) + self.creater.set_prefix_name_mesh(prefix) + + links = kinematic_graph.nodes() + for link in links: + link_mesh = self.mesh_creator.build_link_mesh(link) + link_mesh.apply_scale([1,1,1]) + name = prefix + link.name + ".stl" + link_mesh.export(Path(self.mesh_path).joinpath(name)) + + +def jps_graph2pinocchio_meshes_robot( + graph: nx.Graph, + builder: MeshBuilder + ): + """ + Converts a Joint Point Structure (JPS) graph to a Pinocchio robot model. + + Args: + graph (nx.Graph): The Joint Point Structure (JPS) graph representing the robot's kinematic structure. + builder (ParametrizedBuilder): The builder object used to create the kinematic graph. + + Returns: + tuple: A tuple containing the robot model with fixed base and free base. + """ + + kinematic_graph = JointPoint2KinematicGraph(graph) + kinematic_graph.define_main_branch() + kinematic_graph.define_span_tree() + + # thickness_aux_branch = 0.025 + i = 1 + k = 1 + name_link_in_aux_branch = [] + for link in kinematic_graph.nodes(): + if link.name == "G": + link.geometry.color = RED_COLOR[0,:].tolist() + elif link in kinematic_graph.main_branch.nodes(): + # print("yes") + link.geometry.color = BLUE_COLOR[i,:].tolist() + i = (i + 1) % 6 + else: + link.geometry.color = GREEN_COLOR[k,:].tolist() + name_link_in_aux_branch.append(link.name) + k = (k + 1) % 5 + + # builder.thickness = {link: thickness_aux_branch for link in name_link_in_aux_branch} + + kinematic_graph.define_link_frames() + + robot, ative_joints, constraints = builder.create_kinematic_graph(kinematic_graph) + + # with open("robot.urdf", "w") as f: + # f.write(robot.urdf()) + + act_description, constraints_descriptions = get_pino_description_3d_constraints( + ative_joints, constraints + ) + fixed_robot = build_model_with_extensions(robot.urdf(), + joint_description=act_description, + loop_description=constraints_descriptions, + actuator_context=kinematic_graph, + fixed=True) + + free_robot = build_model_with_extensions(robot.urdf(), + joint_description=act_description, + loop_description=constraints_descriptions, + actuator_context=kinematic_graph, + fixed=False) + + return fixed_robot, free_robot + + +if __name__ == "__main__": + import pinocchio as pin + import meshcat + import time + from pinocchio.visualize import MeshcatVisualizer + from auto_robot_design.description.mesh_builder.urdf_creater import URDFMeshCreator, MeshCreator, create_mesh_manipulator_base + from auto_robot_design.description.builder import MIT_CHEETAH_PARAMS_DICT + from auto_robot_design.generator.topologies.bounds_preset import get_preset_by_index_with_bounds + from auto_robot_design.description.actuators import TMotor_AK60_6 + + thickness = MIT_CHEETAH_PARAMS_DICT["thickness"] + actuator = TMotor_AK60_6()#MIT_CHEETAH_PARAMS_DICT["actuator"] + density = MIT_CHEETAH_PARAMS_DICT["density"] + body_density = MIT_CHEETAH_PARAMS_DICT["body_density"] + + # predined_mesh = {"G":"mesh/body.stl", + # "EE":"mesh/wheel_small.stl"} + + predined_mesh = {"G":create_mesh_manipulator_base, + "EE":"mesh/uhvat.stl"} + + mesh_creator = MeshCreator(predined_mesh) + urdf_creator = URDFMeshCreator() + + # builder = MeshBuilder(urdf_creator, + # mesh_creator, + # density={"default": density, "G": body_density}, + # thickness={"default": thickness}, + # actuator={"default": actuator}, + # size_ground=np.array( + # MIT_CHEETAH_PARAMS_DICT["size_ground"]), + # #offset_ground=MIT_CHEETAH_PARAMS_DICT["offset_ground_rl"] + # ) + + builder = MeshBuilder(urdf_creator, + mesh_creator, + density={"default": density, "G": body_density}, + thickness={"default": 0.01}, + actuator={"default": actuator}, + size_ground=np.array( + MIT_CHEETAH_PARAMS_DICT["size_ground"]), + ) + + gm = get_preset_by_index_with_bounds(0) + x_centre = gm.generate_random_from_mutation_range() + graph_jp = gm.get_graph(x_centre) + + robot, __ = jps_graph2pinocchio_meshes_robot(graph_jp, builder) + + viz = MeshcatVisualizer( + robot.model, robot.visual_model, robot.visual_model) + viz.viewer = meshcat.Visualizer().open() + time.sleep(2) + viz.viewer["/Background"].set_property("visible", False) + viz.viewer["/Grid"].set_property("visible", False) + viz.viewer["/Axes"].set_property("visible", False) + viz.viewer["/Cameras/default/rotated/"].set_property("position", [ + 0, -0.1, 0.5]) + viz.clean() + viz.loadViewerModel() + q = pin.neutral(robot.model) + pin.framesForwardKinematics(robot.model, robot.data, q) + viz.display(q) + time.sleep(10) \ No newline at end of file diff --git a/jmoves/auto_robot_design/description/mesh_builder/urdf_creater.py b/jmoves/auto_robot_design/description/mesh_builder/urdf_creater.py new file mode 100644 index 00000000..d682653f --- /dev/null +++ b/jmoves/auto_robot_design/description/mesh_builder/urdf_creater.py @@ -0,0 +1,740 @@ + +from itertools import combinations +from attr import dataclass +import numpy as np +from scipy.spatial.transform import Rotation as R + +import manifold3d as m3d +import trimesh +import modern_robotics as mr +import odio_urdf as urdf + +from auto_robot_design.description.actuators import RevoluteUnit +from auto_robot_design.description.builder import URDFLinkCreator +from auto_robot_design.description.kinematics import ( + Box, + Joint, + Link, + Mesh, + Sphere +) +from auto_robot_design.description.utils import tensor_inertia_sphere_by_mass +from auto_robot_design.utils.geom import calculate_rot_vec2_to_vec1, calculate_transform_with_2points + +def manifold2trimesh(manifold): + mesh = manifold.to_mesh() + + if mesh.vert_properties.shape[1] > 3: + vertices = mesh.vert_properties[:, :3] + colors = (mesh.vert_properties[:, 3:] * 255).astype(np.uint8) + else: + vertices = mesh.vert_properties + colors = None + + return trimesh.Trimesh( + vertices=vertices, faces=mesh.tri_verts, vertex_colors=colors + ) + +def beautiful_cutout_holders(height, length, alp=1): + + x1 = np.linspace(-1,2,200) + y1 = np.tanh(x1*alp) + x2 = np.linspace(2,3,100) + y2 = np.ones_like(x2) * y1[-1] + x3 = np.linspace(-2,1,200) + y3 = -np.tanh(x3*alp) + + x3_r = np.linspace(3,6,200) + + x4 = np.linspace(x3_r[-1], x1[0], 100) + y4 = np.linspace(y3[-1], y1[0], 100) + + x = np.r_[x1, x2, x3_r, x4] + y = np.r_[y1, y2, y3, y4] + + coeff_x = length / (np.max(x) - np.min(x)) + coeff_y = height / (np.max(y) - np.min(y)) + + + y = coeff_y*y + x = coeff_x*x + + offset_x = -(np.max(x) + np.min(x)) / 2 + offset_y = -(np.max(y) + np.min(y)) / 2 + x += offset_x + y += offset_y + return x,y + + +def create_mesh_manipulator_base(link): + height_base = 0.15 + radius_rack = 0.02 + thickness = 0.01 + pos_jps = [j.jp.r for j in link.joints] + + raduis_actuators = [j.actuator.size[0] for j in link.joints] + height_actuators = [j.actuator.size[1] for j in link.joints] + jps_pos_mean = np.mean(pos_jps, axis=0)+np.array([0, height_base/2+np.mean(height_actuators)/2, 0]) + + pos_jps_db = np.repeat(pos_jps, 2, axis=0) + + k = 0 + for m in range(len(pos_jps_db)): + pos_jps_db[m,[0,2]] = pos_jps_db[m,[0,2]] + (-1)**m * raduis_actuators[k] + if m // 2 == 1: + k +=1 + + up_right_point_table = np.max(pos_jps_db, axis=0) + down_left_point_table = np.min(pos_jps_db, axis=0) + + width = up_right_point_table[0] - down_left_point_table[0] + length = up_right_point_table[2] - down_left_point_table[2] + + table_m3d = m3d.Manifold.cube([width, length, 0.03], True) + + diag_table_length = np.sqrt(width**2 + length**2) + length_rack = diag_table_length * 1.3 + + rot = np.rad2deg(np.arctan2(length, width)) + + x,y = beautiful_cutout_holders(height_base, length_rack, 5) + custom_md = m3d.CrossSection.hull_points(np.c_[x,y]).extrude(1).translate([0, 0, -0.5]).rotate([90, 0,0]).translate([0,0,-height_base*0.1]) + box = m3d.Manifold.cube([length_rack,thickness, height_base], True) + cylinder_1 = m3d.Manifold.cylinder(height_base,radius_rack,circular_segments=40, center=True).translate([length_rack/2+radius_rack,0,0]) + cylinder_2 = m3d.Manifold.cylinder(height_base,radius_rack,circular_segments=40, center=True).translate([-(length_rack/2+radius_rack),0,0]) + holder = (box - custom_md + cylinder_1 + cylinder_2) + first_holder = holder.rotate([0,0,rot]) + second_holder = holder.rotate([0,0,-rot]) + body = first_holder + second_holder+table_m3d.translate([0,0,height_base/2-0.03/2]) + + return body.rotate([90, 0, 0]).translate(jps_pos_mean) + +class MeshCreator: + LOCOMOTION_RADIUS_SCALER = {"InActuator": 1, "InRevoluteUnit": 1, "OutActuator": 0.4, "OutRevoluteUnit": 1, "EE": 1.7} + LOCOMOTION_HEIGHT_SCALER = {"InActuator": 1, "InRevoluteUnit": 0.6, "OutActuator": 1.5, "OutRevoluteUnit": 1.5, "EE": 1.4} + MANIPULATOR_RADIUS_SCALER = {"InActuator": 1, "InRevoluteUnit": 1, "OutActuator": 0.4, "OutRevoluteUnit": 1, "EE": 0.5} + MANIPULATOR_HEIGHT_SCALER = {"InActuator": 1, "InRevoluteUnit": 0.6, "OutActuator": 1.5, "OutRevoluteUnit": 1.5, "EE": 1.4} + + def __init__(self, predefind_mesh: dict[str, str] = {}): + self.predefind_mesh = predefind_mesh + self.radius_scaler = self.LOCOMOTION_RADIUS_SCALER + self.height_scaler = self.LOCOMOTION_HEIGHT_SCALER + + + def build_link_mesh(self, link: Link): + if link.name in self.predefind_mesh: + if isinstance(self.predefind_mesh[link.name],str): + mesh = trimesh.load_mesh(self.predefind_mesh[link.name]) + else: + body = self.predefind_mesh[link.name](link) + mesh = manifold2trimesh(body) + else: + body = self.build_link_m3d(link) + mesh = manifold2trimesh(body) + + return mesh + + def build_link_m3d(self, link: Link): + in_joints = [j for j in link.joints if j.link_in == link] + out_joints = [j for j in link.joints if j.link_out == link] + joint_bodies = [] + substract_bodies = [] + frame = mr.TransInv(link.frame @ link.inertial_frame) + for j in out_joints: + pos = (frame @ np.hstack((j.jp.r, [1])))[:3] + ort_move = frame[:3,:3] @ j.jp.w + rot = calculate_rot_vec2_to_vec1(ort_move) + tranform = mr.RpToTrans(rot.as_matrix(), pos) + size = j.actuator.size + if "G" in [l.name for l in j.links]: + joint_bodies.append( + m3d.Manifold. + cylinder(size[1], size[0], circular_segments=32, center=True). + transform(tranform[:3,:]) + ) + substract_bodies.append( + m3d.Manifold() + ) + else: + if isinstance(j.actuator, RevoluteUnit): + r_scale = self.radius_scaler["OutRevoluteUnit"] # 1 + height_scale = self.height_scaler["OutRevoluteUnit"] # 1.5 + # joint_bodies.append( + # m3d.Manifold. + # cylinder(size[1]*height_scale, size[0]*r_scale, circular_segments=32, center=True). + # transform(tranform[:3,:]) + # ) + subtract_size = [0.001, 0] + else: + r_scale = self.radius_scaler["OutActuator"]#0.4 + height_scale = self.height_scaler["OutActuator"]#1.5 + subtract_size = [0.001, 0] + joint_bodies.append( + m3d.Manifold. + cylinder(size[1]*height_scale, size[0]*r_scale, circular_segments=32, center=True). + transform(tranform[:3,:]) + ) + substract_bodies.append( + m3d.Manifold. + cylinder(size[1]+subtract_size[1], size[0]+subtract_size[0], circular_segments=32, center=True). + transform(tranform[:3,:]) + ) + for j in in_joints: + pos = (frame @ np.hstack((j.jp.r, [1])))[:3] + ort_move = frame[:3,:3] @ j.jp.w + rot = calculate_rot_vec2_to_vec1(ort_move) + tranform = mr.RpToTrans(rot.as_matrix(), pos) + size = j.actuator.size + + if isinstance(j.actuator, RevoluteUnit): + r_scale = self.radius_scaler["InRevoluteUnit"] #1 + height_scale = self.height_scaler["InRevoluteUnit"]#0.6 + else: + r_scale = self.radius_scaler["InActuator"]#1 + height_scale = self.height_scaler["InActuator"]#1 + if "EE" in [l.name for l in j.links]: + r_scale = self.radius_scaler["EE"]#1.7 + height_scale = self.height_scaler["EE"]#1.4 + joint_bodies.append( + m3d.Manifold. + cylinder(size[1]*height_scale, size[0]*r_scale, circular_segments=32, center=True). + transform(tranform[:3,:]) + ) + + js = in_joints + out_joints + num_joint = len(in_joints + out_joints) + + j_points = [] + for j in js: + j_points.append( + (frame @ np.hstack((j.jp.r, [1])))[:3] + ) + if num_joint == 1: + body_link = joint_bodies[0] + elif num_joint == 2: + pos, rot, vec_len = calculate_transform_with_2points(j_points[1], j_points[0]) + if link.name == "G": + thickness = 0.02 + else: + thickness = link.geometry.get_thickness()/2 + if vec_len > thickness: + length = vec_len - thickness + else: + length = vec_len + Hb = mr.RpToTrans(rot.as_matrix(), pos) + link_part1 = (m3d.Manifold.cylinder(length, thickness, circular_segments=32, center=True). + transform(Hb[:3,:])) + link_part2 = (m3d.Manifold.cylinder(length, thickness, circular_segments=32, center=True). + transform(Hb[:3,:])) + + body_1 = m3d.Manifold.batch_hull([link_part1, joint_bodies[0]]) + body_2 = m3d.Manifold.batch_hull([link_part2, joint_bodies[1]]) + + body_link = body_1 + body_2 + elif num_joint == 3: + joint_pos_pairs = combinations(range(len(j_points)), 2) + body_link = m3d.Manifold() + for k, m in joint_pos_pairs: + oth_point = (set(range(3)) - set([k,m])).pop() + pos, rot, vec_len = calculate_transform_with_2points(j_points[k], j_points[m]) + thickness = link.geometry.get_thickness()/2 + if vec_len > thickness: + length = vec_len - thickness + else: + length = vec_len + Hb = mr.RpToTrans(rot.as_matrix(), pos) + link_part = (m3d.Manifold.cylinder(length, thickness, circular_segments=32, center=True). + transform(Hb[:3,:])) + body_part = m3d.Manifold.batch_hull([link_part, joint_bodies[oth_point]]) + # body_part = link_part + body_link = body_link + body_part + for sub_body in substract_bodies: + body_link = body_link - sub_body + + return body_link + +class URDFMeshCreator(URDFLinkCreator): + def __init__(self) -> None: + super().__init__() + self.mesh_path = None + self.prefix_name = None + + def set_path_to_mesh(self, path_to_mesh): + self.mesh_path = path_to_mesh + + def set_prefix_name_mesh(self, prefix): + self.prefix_name = prefix + + def create_link(self, link: Link): + """ + Create a URDF link based on the given Link object. + + Args: + link (Link): The Link object containing the link information. + + Returns: + urdf_link: The created URDF link. + """ + if link.geometry.shape == "mesh": + pos_joint_in_local = [] + H_l_w = mr.TransInv(link.frame) + for j in link.joints: + pos_joint_in_local.append(H_l_w @ np.r_[j.jp.r, 1]) + + joint_pos_pairs = combinations(pos_joint_in_local, 2) + body_origins = [] + for j_p in joint_pos_pairs: + pos, rot, vec_len = calculate_transform_with_2points(j_p[0][:3], j_p[1][:3]) + if vec_len > link.geometry.get_thickness(): + length = vec_len - link.geometry.get_thickness() + else: + length = vec_len + body_origins.append( + (pos.tolist(), rot.as_euler("xyz").tolist(), length) + ) + inertia = ( + link.inertial_frame, + link.geometry.size.moment_inertia_frame(link.inertial_frame), + ) + urdf_link = self._create_mesh( + link.geometry, link.name, inertia, body_origins, self.trans_matrix2xyz_rpy(link.inertial_frame) + ) + elif link.geometry.shape == "box": + origin = self.trans_matrix2xyz_rpy(link.inertial_frame) + # link_origin = self.trans_matrix2xyz_rpy(link.frame) + urdf_link = self._create_box(link.geometry, link.name, origin, origin) + elif link.geometry.shape == "sphere": + origin = self.trans_matrix2xyz_rpy(link.inertial_frame) + # link_origin = self.trans_matrix2xyz_rpy(link.frame) + urdf_link = self._create_sphere(link.geometry, link.name, origin, origin) + else: + pass + return urdf_link + + def create_joint(self, joint: Joint): + """ + Create a URDF joint based on the given Joint object. + + Args: + joint (Joint): The Joint object containing the joint information. + + Returns: + dict: A dictionary containing the created URDF joint and additional information. + """ + if joint.link_in is None or joint.link_out is None: + return {"joint": []} + origin = self.trans_matrix2xyz_rpy(joint.frame) + if joint.is_constraint: + color1 = joint.link_in.geometry.color + color1[3] = 0.5 + color2 = joint.link_out.geometry.color + color2[3] = 0.5 + + name_link_in = joint.jp.name + "_" + joint.link_in.name + "Pseudo" + rad_in = joint.link_in.geometry.get_thickness() / 1.4 + urdf_pseudo_link_in = urdf.Link( + # urdf.Visual( + # urdf.Geometry(urdf.Sphere(float(rad_in))), + # urdf.Material( + # urdf.Color(rgba=color1), name=name_link_in + "_Material" + # ), + # # name=name_link_in + "_Visual", + # ), + urdf.Inertial( + urdf.Mass(float(joint.actuator.mass / 2)), + urdf.Inertia( + **self.convert_inertia( + tensor_inertia_sphere_by_mass( + joint.actuator.mass / 2, rad_in + ) + ) + ), + ), + name=name_link_in, + ) + urdf_joint_in = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_link_in), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name + "_" + joint.link_in.name + "_Weld", + type="fixed", + ) + + name_link_out = joint.jp.name + "_" + joint.link_out.name + "Pseudo" + rad_out = joint.link_out.geometry.get_thickness() / 1.4 + urdf_pseudo_link_out = urdf.Link( + # urdf.Visual( + # urdf.Geometry(urdf.Sphere(float(rad_out))), + # urdf.Material( + # urdf.Color(rgba=color2), name=name_link_out + "_Material" + # ), + # # name=name_link_out + "_Visual", + # ), + urdf.Inertial( + urdf.Mass(float(joint.actuator.mass / 2)), + urdf.Inertia( + **self.convert_inertia( + tensor_inertia_sphere_by_mass( + joint.actuator.mass / 2, rad_out + ) + ) + ), + ), + name=name_link_out, + ) + + H_in_j = joint.frame + H_w_in = joint.link_in.frame + + H_w_out = joint.link_out.frame + + H_out_j = mr.TransInv(H_w_out) @ H_w_in @ H_in_j + + out_origin = self.trans_matrix2xyz_rpy(H_out_j) + + urdf_joint_out = urdf.Joint( + urdf.Parent(link=joint.link_out.name), + urdf.Child(link=name_link_out), + urdf.Origin( + xyz=out_origin[0], + rpy=out_origin[1], + ), + name=joint.jp.name + "_" + joint.link_out.name + "_Weld", + type="fixed", + ) + + out = { + "joint": [ + urdf_pseudo_link_in, + urdf_joint_in, + urdf_joint_out, + urdf_pseudo_link_out, + ], + "constraint": [name_link_in, name_link_out], + } + else: + if "EE" in [l.name for l in joint.links]: + urdf_joint = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=joint.link_out.name), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + name=joint.jp.name, + type="revolute", + ) + else: + urdf_joint = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=joint.link_out.name), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name, + type="revolute", + ) + urdf_joint = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=joint.link_out.name), + urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ), + urdf.Axis(joint.jp.w.tolist()), + urdf.Limit( + lower=joint.pos_limits[0], + upper=joint.pos_limits[1], + effort=joint.actuator.get_max_effort(), + velocity=joint.actuator.get_max_vel(), + ), + urdf.Dynamics( + damping=joint.damphing_friction[0], + friction=joint.damphing_friction[1], + ), + name=joint.jp.name, + type="revolute", + ) + out = {"joint": [urdf_joint]} + if joint.jp.active: + connected_unit = RevoluteUnit() + if joint.link_in.name == "G": + connected_unit.size = [ + joint.link_out.geometry.get_thickness() / 2, + joint.link_out.geometry.get_thickness(), + ] + else: + connected_unit.size = [ + joint.link_in.geometry.get_thickness() / 2, + joint.link_in.geometry.get_thickness(), + ] + elif not joint.actuator.size: + if joint.link_in.name == "G": + unit_size = [ + joint.link_out.geometry.get_thickness() / 2, + joint.link_out.geometry.get_thickness(), + ] + else: + unit_size = [ + joint.link_in.geometry.get_thickness() / 2, + joint.link_in.geometry.get_thickness(), + ] + joint.actuator.size = unit_size + connected_unit = joint.actuator + else: + connected_unit = joint.actuator + + name_joint_link = joint.jp.name + "_" + joint.link_in.name + "Unit" + name_joint_weld = joint.jp.name + "_" + joint.link_in.name + "_WeldUnit" + Rp_j = mr.TransToRp(joint.frame) + color = joint.link_in.geometry.color + color[3] = 0.9 + rot_a = R.from_matrix( + Rp_j[0] @ R.from_rotvec([np.pi / 2, 0, 0]).as_matrix() + ).as_euler("xyz") + urdf_joint_weld = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_joint_link), + urdf.Origin( + xyz=Rp_j[1].tolist(), + rpy=rot_a.tolist(), + ), + name=name_joint_weld, + type="fixed", + ) + urdf_unit_link = urdf.Link( + # urdf.Visual( + # urdf.Geometry( + # urdf.Cylinder( + # length=connected_unit.size[1], radius=connected_unit.size[0] + # ) + # ), + # urdf.Material( + # urdf.Color(rgba=color), name=name_joint_link + "_Material" + # ), + # # name=name_joint_link + "_Visual", + # ), + urdf.Inertial( + urdf.Inertia( + **self.convert_inertia(connected_unit.calculate_inertia()) + ), + urdf.Mass(float(connected_unit.mass)), + ), + name=name_joint_link, + ) + + if joint.jp.active: + out["active"] = joint.jp.name + name_actuator_link = ( + joint.jp.name + "_" + joint.link_in.name + "Actuator" + ) + name_actuator_weld = ( + joint.jp.name + "_" + joint.link_in.name + "_WeldActuator" + ) + pos = Rp_j[1] + joint.jp.w * ( + joint.actuator.size[1] / 2 + connected_unit.size[1] / 2 + ) + urdf_actuator_weld = urdf.Joint( + urdf.Parent(link=joint.link_in.name), + urdf.Child(link=name_actuator_link), + urdf.Origin( + xyz=pos.tolist(), + rpy=rot_a.tolist(), + ), + name=name_actuator_weld, + type="fixed", + ) + urdf_actuator_link = urdf.Link( + # urdf.Visual( + # urdf.Geometry( + # urdf.Cylinder( + # length=joint.actuator.size[1], + # radius=joint.actuator.size[0], + # ) + # ), + # urdf.Material( + # urdf.Color(rgba=color), + # name=name_actuator_link + "_Material", + # ), + # # name=name_actuator_link + "_Visual", + # ), + urdf.Inertial( + urdf.Inertia( + **self.convert_inertia(joint.actuator.calculate_inertia()) + ), + urdf.Mass(float(joint.actuator.mass)), + ), + name=name_actuator_link, + ) + out["joint"].append(urdf_actuator_weld) + out["joint"].append(urdf_actuator_link) + + out["joint"].append(urdf_unit_link) + out["joint"].append(urdf_joint_weld) + return out + + def _create_box(self, geometry: Box, name, origin, inertia_origin): + """ + Create a URDF box based on the given Box geometry. + + Args: + geometry (Box): The Box geometry object. + name: The name of the box. + origin: The origin of the box. + inertia_origin: The origin of the inertia. + + Returns: + urdf.Link: The created URDF link. + """ + name_m = name + "_" + "Material" + urdf_material = urdf.Material(urdf.Color(rgba=geometry.color), name=name_m) + name_c = name + "_" + "Collision" + name_v = name + "_" + "Visual" + # urdf_geometry = urdf.Geometry(urdf.Box(geometry.size)) + to_mesh = str(self.mesh_path.joinpath(self.prefix_name + name + ".stl")) + urdf_geometry = urdf.Geometry(urdf.Mesh(to_mesh, [1,1,1])) + urdf_inertia_origin = urdf.Origin( + xyz=inertia_origin[0], + rpy=inertia_origin[1], + ) + urdf_origin = urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ) + + visual = urdf.Visual( + urdf_origin, + urdf_geometry, + urdf_material, + # name = name_v + ) + collision = urdf.Collision(urdf_origin, urdf_geometry, name=name_c) + inertial = urdf.Inertial( + urdf_inertia_origin, + urdf.Mass(float(geometry.mass)), + urdf.Inertia(**self.convert_inertia(geometry.inertia)), + ) + + return urdf.Link(visual, collision, inertial, name=name) + + def _create_sphere(self, geometry: Sphere, name, origin, inertia_origin): + """ + Create a URDF sphere based on the given Sphere geometry. + + Args: + geometry (Sphere): The Sphere geometry object. + name: The name of the sphere. + origin: The origin of the sphere. + inertia_origin: The origin of the inertia. + + Returns: + urdf.Link: The created URDF link. + """ + name_m = name + "_" + "Material" + urdf_material = urdf.Material(urdf.Color(rgba=geometry.color), name=name_m) + + name_c = name + "_" + "Collision" + name_v = name + "_" + "Visual" + # urdf_geometry = urdf.Geometry(urdf.Sphere(geometry.size[0])) + to_mesh = str(self.mesh_path.joinpath(self.prefix_name + name + ".stl")) + urdf_geometry = urdf.Geometry(urdf.Mesh(to_mesh, [1,1,1])) + urdf_inertia_origin = urdf.Origin( + xyz=inertia_origin[0], + rpy=inertia_origin[1], + ) + urdf_origin = urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ) + + visual = urdf.Visual( + urdf_origin, + urdf_geometry, + urdf_material, + # name = name_v + ) + collision = urdf.Collision(urdf_origin, urdf_geometry, name=name_c) + inertial = urdf.Inertial( + urdf_inertia_origin, + urdf.Mass(geometry.mass), + urdf.Inertia(**self.convert_inertia(geometry.inertia)), + ) + + return urdf.Link(visual, collision, inertial, name=name) + + def _create_mesh(self, geometry: Mesh, name, inertia, body_origins, link_origin=None): + """ + Create a URDF mesh based on the given Mesh geometry. + + Args: + geometry (Mesh): The Mesh geometry object. + name: The name of the mesh. + inertia: The inertia of the mesh. + body_origins: The origins of the mesh bodies. + + Returns: + urdf.Link: The created URDF link. + """ + name_m = name + "_" + "Material" + urdf_material = urdf.Material(urdf.Color(rgba=geometry.color), name=name_m) + origin_I = self.trans_matrix2xyz_rpy(inertia[0]) + urdf_inertia_origin = urdf.Origin(xyz=origin_I[0], rpy=origin_I[1]) + visual_n_collision = [] + to_mesh = str(self.mesh_path.joinpath(self.prefix_name + name + ".stl")) + urdf_geometry = urdf.Geometry(urdf.Mesh(to_mesh, [1,1,1])) + urdf_origin = urdf.Origin( + xyz=link_origin[0], + rpy=link_origin[1], + ) + visual = urdf.Visual( + urdf_origin, + urdf_geometry, + urdf_material, + # name = name_v + ) + for id, origin in enumerate(body_origins): + name_c = name + "_" + str(id) + "_Collision" + name_v = name + "_" + str(id) + "_Visual" + thickness = geometry.get_thickness() + urdf_geometry = urdf.Geometry(urdf.Box([thickness, thickness, origin[2]])) + urdf_origin = urdf.Origin( + xyz=origin[0], + rpy=origin[1], + ) + + collision = urdf.Collision(urdf_origin, urdf_geometry, name=name_c) + # visual_n_collision += [visual, collision] + visual_n_collision += [collision] + visual_n_collision += [visual] + inertial = urdf.Inertial( + urdf_inertia_origin, + urdf.Mass(float(geometry.size.mass)), + urdf.Inertia(**self.convert_inertia(inertia[1])), + ) + return urdf.Link(*visual_n_collision, inertial, name=name) \ No newline at end of file diff --git a/jmoves/auto_robot_design/description/mesh_creater.py b/jmoves/auto_robot_design/description/mesh_creater.py new file mode 100644 index 00000000..2c4cc091 --- /dev/null +++ b/jmoves/auto_robot_design/description/mesh_creater.py @@ -0,0 +1,69 @@ +import manifold3d as m3d +import trimesh +import numpy as np + +# Helper to convert a Manifold into a Trimesh +def manifold2trimesh(manifold): + mesh = manifold.to_mesh() + + if mesh.vert_properties.shape[1] > 3: + vertices = mesh.vert_properties[:, :3] + colors = (mesh.vert_properties[:, 3:] * 255).astype(np.uint8) + else: + vertices = mesh.vert_properties + colors = None + + return trimesh.Trimesh( + vertices=vertices, faces=mesh.tri_verts, vertex_colors=colors + ) + + +# Helper to display interactive mesh preview with trimesh +def showMesh(mesh): + scene = trimesh.Scene() + scene.add_geometry(mesh) + # scene.add_geometry(trimesh.creation.axis()) + display(scene.show()) + +if __name__ == "__main__": + from auto_robot_design.generator.topologies.bounds_preset import ( + get_preset_by_index_with_bounds, + ) + from auto_robot_design.description.mechanism import JointPoint2KinematicGraph, KinematicGraph + from auto_robot_design.description.builder import ( + ParametrizedBuilder, + URDFLinkCreater3DConstraints, + jps_graph2pinocchio_robot_3d_constraints, + ) + import meshcat + from pinocchio.visualize import MeshcatVisualizer + from auto_robot_design.pinokla.closed_loop_kinematics import ( + closedLoopProximalMount, + ) + + builder = ParametrizedBuilder(URDFLinkCreater3DConstraints) + + gm = get_preset_by_index_with_bounds(5) + x_centre = gm.generate_central_from_mutation_range() + graph_jp = gm.get_graph(x_centre) + + kinematic_graph = JointPoint2KinematicGraph(graph_jp) + kinematic_graph.define_main_branch() + kinematic_graph.define_span_tree() + kinematic_graph.define_link_frames() + + links = kinematic_graph.nodes() + + for link in links: + in_joints = [j for j in link.joints if j.link_in == link] + out_joints = [j for j in link.joints if j.link_out == link] + + num_joint = len(link.joints) + + if num_joint == 1: + + elif num_joint == 2: + + elif num_joint > 2: + + diff --git a/jmoves/auto_robot_design/description/utils.py b/jmoves/auto_robot_design/description/utils.py new file mode 100644 index 00000000..9d117474 --- /dev/null +++ b/jmoves/auto_robot_design/description/utils.py @@ -0,0 +1,458 @@ +from itertools import permutations +import networkx as nx +import numpy as np +import numpy.linalg as la +import matplotlib.pyplot as plt + +from auto_robot_design.description.kinematics import Link +from trimesh import Trimesh +from scipy.spatial.transform import Rotation as R +import modern_robotics as mr + +# from auto_robot_design.description.mechanism import KinematicGraph + +def all_combinations_active_joints_n_actuator(graph: nx.Graph, actuators): + """ + Generates all possible combinations of active joints and actuators. + + Args: + graph (nx.Graph): The graph representing the robot design. + actuators (list): List of available actuators. + + Returns: + list: List of tuples representing pairs of name of active joints and actuators. + """ + try: + active_joints = [j.jp.name for j in graph.active_joints] + except AttributeError: + active_joints = [j.name for j in graph.nodes() if j.active] + + combination_actuator = permutations(actuators, len(active_joints)) + pairs_joint_actuator = [] + for combination in combination_actuator: + pairs_joint_actuator.append(tuple(zip(active_joints, combination))) + return pairs_joint_actuator + + +def trans2_xyz_rpy(trans: np.ndarray) -> tuple[list[float]]: + rot, pos = mr.TransToRp(trans) + return (pos.tolist(), R.from_matrix(rot).as_euler("xyz")) + +def trans2_xyz_quat(trans: np.ndarray) -> tuple[list[float]]: + rot, pos = mr.TransToRp(trans) + return (pos.tolist(), R.from_matrix(rot).as_quat("xyz")) + +def tensor_inertia_sphere(density, r): + mass = 4/3 * np.pi * r**3 * density + central_inertia = 2/5 * mass * r**2 + + tensor_inertia = np.diag([central_inertia for __ in range(3)]) + + return mass, tensor_inertia + +def tensor_inertia_sphere_by_mass(mass, r): + central_inertia = 2/5 * mass * r**2 + + tensor_inertia = np.diag([central_inertia for __ in range(3)]) + + return tensor_inertia + +def tensor_inertia_box(density, x, y, z): + mass = x*y*z*density + inertia = lambda a1, a2: 1/12 * mass * (a1**2 + a2**2) + + inertia_xx = inertia(y, z) + inertia_yy = inertia(x, z) + inertia_zz = inertia(x, y) + + tensor_inertia = np.diag([inertia_xx, inertia_yy, inertia_zz]) + + return mass, tensor_inertia + +def tensor_inertia_mesh(density, mesh: Trimesh): + mesh.density = density + return mesh.mass, mesh.moment_inertia + +def weight_by_dist_active(e1, e2, d): + dist = la.norm(e1.jp.r - e2.jp.r) + w = dist * 2 if any([j.jp.active for j in [e1, e2]]) else dist + return np.round(1/w, 3) + +def calc_weight_for_span(edge, graph: nx.Graph): + length_to_EE = [nx.shortest_path_length(graph, graph.EE, target=e) for e in edge[:2]] + edge_min_length = np.argmin(length_to_EE) + min_length_to_EE = min(length_to_EE) + next_joints_link = edge[edge_min_length].joints - set([edge[-1]["joint"]]) + if next_joints_link: + length_next_j_to_j = max([la.norm(edge[-1]["joint"].jp.r - next_j.jp.r) for next_j in next_joints_link]) + else: + length_next_j_to_j = 0 + if edge[-1]["joint"].jp.active: + weight = np.round(len(graph.nodes()) * 100 + min_length_to_EE * 10 + length_next_j_to_j/10, 3) + else: + weight = np.round(min_length_to_EE * 10 + length_next_j_to_j/10, 3) + # print(edge[0].name, edge[1].name, weight) + return weight + + +def calc_weight_for_main_branch(edge, graph: nx.Graph): + pass + + +def get_pos(G: nx.Graph): + """Return the dictionary of type {node: [x_coordinate, z_coordinate]} for the JP graph + + Args: + G (nx.Graph): a graph with JP nodes + + Returns: + dict: dictionary of type {node: [x_coordinate, z_coordinate]} + """ + pos = {} + for node in G: + pos[node] = [node.r[0], node.r[2]] + + return pos + + +def plot_link(L: Link, graph: nx.Graph, color): + sub_g_l = graph.subgraph(L.joints) + pos = get_pos(sub_g_l) + nx.draw( + sub_g_l, + pos, + node_color=color, + linewidths=1.5, + edge_color=color, + node_shape="o", + node_size=100, + width=5, + with_labels=False, + ) + +def draw_links(kinematic_graph, JP_graph: nx.Graph): + links = kinematic_graph.nodes() + EE_joint = next(iter(kinematic_graph.EE.joints)) + colors = range(len(links)) + draw_joint_point(JP_graph) + for link, color in zip(links, colors): + sub_graph_l = JP_graph.subgraph(set([j.jp for j in link.joints])) + name_link = link.name + options = { + "node_color": "orange", + "edge_color": "orange", + "alpha": color/len(links), + "width": 5, + "edge_cmap": plt.cm.Blues, + "linewidths": 1.5, + "node_shape": "o", + "node_size": 100, + "with_labels": False, + } + pos = get_pos(sub_graph_l) + list_pos = [p for p in pos.values()] + if len(list_pos) == 1: + pos_name = np.array(list_pos).squeeze() + np.ones(2) * 0.2 * la.norm(EE_joint.jp.r)/5 + else: + pos_name = np.mean([p for p in pos.values()], axis=0) + nx.draw(sub_graph_l, pos, **options) + plt.text(pos_name[0],pos_name[1], name_link, fontsize=15) + +def draw_joint_point(graph: nx.Graph, labels=0, draw_legend=True, draw_lines=False, **kwargs): + pos = get_pos(graph) + pos_list = [p for p in pos.values()] + pos_matrix = np.array(pos_list) + min_x, min_y = np.round(np.min(pos_matrix, axis=0),2) + max_x, max_y = np.round(np.max(pos_matrix, axis=0),2) + for key, value in pos.items(): + value + G_pos = np.array( + list( + map( + lambda n: [n.r[0], n.r[2]], + filter(lambda n: n.attach_ground, graph), + ) + ) + ) + EE_pos = np.array( + list( + map( + lambda n: [n.r[0], n.r[2]], + filter(lambda n: n.attach_endeffector, graph), + ) + ) + ) + active_j_pos = np.array( + list( + map( + lambda n: [n.r[0], n.r[2]], + filter(lambda n: n.active, graph), + ) + ) + ) + if labels==0: + labels = {n:n.name for n in graph.nodes()} + elif labels==1: + labels = {n:i for i,n in enumerate(graph.nodes())} + else: + labels = {n:str() for n in graph.nodes()} + nx.draw( + graph, + pos, + node_color="w", + linewidths=3, + edgecolors="k", + node_shape="o", + node_size=150, + with_labels=False, + width=2, + ) + #pos_labels = {g:np.array(p) + np.array([-0.2, 0.2])*la.norm(EE_pos)/5 for g, p in pos.items()} + pos_labels = {} + coef = 1000 + pos_additions = [np.array([0.2, 0.2])*la.norm(EE_pos)/coef, np.array([0.2, -0.2])*la.norm(EE_pos)/coef, + np.array([0.2,-0.2])*la.norm(EE_pos)/coef, np.array([-0.2, -0.2])*la.norm(EE_pos)/coef] + for g,p in pos.items(): + pos_flag = False + for pos_addition in pos_additions: + new_pos = np.array(p) + pos_addition + if all([la.norm(new_pos-op)>la.norm(EE_pos)/5 for op in pos_labels.values()]): + pos_labels[g] = new_pos + pos_flag = True + break + if not pos_flag: + pos_labels[g] = np.array(p) + nx.draw_networkx_labels( + graph, + pos_labels, + labels, + font_color = "#ff5A00", + font_family = "monospace", + font_size=20 + ) + + #"#fe8a18" + if nx.is_weighted(graph): + edge_labels = nx.get_edge_attributes(graph, "weight") + nx.draw_networkx_edge_labels( + graph, + pos, + edge_labels, + font_color = "c", + font_family = "monospace" + + ) + plt.plot(G_pos[:,0], G_pos[:,1], "ok", label="Ground") + plt.axis("equal") + + import matplotlib.ticker as ticker + if draw_lines: + ax = plt.gca() + ax.set_axis_on() + # ax.set_title('JP graph') + ax.set_ylabel('z [м]') + ax.set_xlabel('x [м]') + ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True) + # ax.set_xticks(np.arange(min_x,max_x+0.1,0.1)) + # ax.set_yticks(np.arange(min_y-0.1,max_y+0.1,0.1)) + ax.set_xlim(min_x-kwargs.get("offset_lim", 0.1), max_x+kwargs.get("offset_lim", 0.1)) + ax.set_ylim(min_y-kwargs.get("offset_lim", 0.1), max_y+kwargs.get("offset_lim", 0.1)) + pass + + + # plt.axis('on') + if EE_pos.size != 0: + plt.plot(EE_pos[:,0], EE_pos[:,1], "ob", label="EndEffector") + plt.plot(active_j_pos[:,0], active_j_pos[:,1], "og", + markersize=20, + fillstyle="none", label="Active") + if draw_legend: plt.legend() + + +def draw_joint_point_widjet(graph: nx.Graph, labels=0, draw_legend=True, draw_lines=False): + pos = get_pos(graph) + pos_list = [p for p in pos.values()] + pos_matrix = np.array(pos_list) + min_x, min_y = np.min(pos_matrix, axis=0) + max_x, max_y = np.max(pos_matrix, axis=0) + for key, value in pos.items(): + value + G_pos = np.array( + list( + map( + lambda n: [n.r[0], n.r[2]], + filter(lambda n: n.attach_ground, graph), + ) + ) + ) + EE_pos = np.array( + list( + map( + lambda n: [n.r[0], n.r[2]], + filter(lambda n: n.attach_endeffector, graph), + ) + ) + ) + active_j_pos = np.array( + list( + map( + lambda n: [n.r[0], n.r[2]], + filter(lambda n: n.active, graph), + ) + ) + ) + if labels==0: + labels = {n:n.name for n in graph.nodes()} + elif labels==1: + labels = {n:i for i,n in enumerate(graph.nodes())} + else: + labels = {n:str() for n in graph.nodes()} + nx.draw( + graph, + pos, + node_color="w", + linewidths=3, + edgecolors="k", + node_shape="o", + node_size=250, + with_labels=False, + width=2, + ) + #pos_labels = {g:np.array(p) + np.array([-0.2, 0.2])*la.norm(EE_pos)/5 for g, p in pos.items()} + pos_labels = {} + coef = 1000 + pos_additions = [np.array([0.2, 0.2])*la.norm(EE_pos)/coef, np.array([0.2, -0.2])*la.norm(EE_pos)/coef, + np.array([0.2,-0.2])*la.norm(EE_pos)/coef, np.array([-0.2, -0.2])*la.norm(EE_pos)/coef] + for g,p in pos.items(): + pos_flag = False + for pos_addition in pos_additions: + new_pos = np.array(p) + pos_addition + if all([la.norm(new_pos-op)>la.norm(EE_pos)/5 for op in pos_labels.values()]): + pos_labels[g] = new_pos + pos_flag = True + break + if not pos_flag: + pos_labels[g] = np.array(p) + nx.draw_networkx_labels( + graph, + pos_labels, + labels, + font_color = "#ff5A00", + font_family = "monospace", + font_size=12 + ) + + #"#fe8a18" + if nx.is_weighted(graph): + edge_labels = nx.get_edge_attributes(graph, "weight") + nx.draw_networkx_edge_labels( + graph, + pos, + edge_labels, + font_color = "c", + font_family = "monospace" + + ) + plt.plot(G_pos[:,0], G_pos[:,1], "o", label="Прикреплён к базе", color="silver", ms=10) + plt.axis("equal") + + import matplotlib.ticker as ticker + if draw_lines: + ax = plt.gca() + ax.set_axis_on() + # ax.set_title('JP graph') + ax.set_ylabel('z [м]') + ax.set_xlabel('x [м]') + ax.tick_params(left=True, bottom=True, labelleft=True, labelbottom=True) + # ax.set_xticks(np.arange(min_x-0.1,max_x+0.1,0.1)) + # ax.set_yticks(np.arange(min_y-0.1,max_y+0.1,0.1)) + ax.set_xlim(min_x-0.1, max_x+0.1) + ax.set_ylim(min_y-0.1, max_y+0.1) + pass + + + # plt.axis('on') + if EE_pos.size != 0: + plt.plot(EE_pos[:,0], EE_pos[:,1], "o", label="Рабочий инструмент", ms=10, color="lightsteelblue") + plt.plot(active_j_pos[:,0], active_j_pos[:,1], "og", + markersize=22, + fillstyle="none", label="Актуирован") + if draw_legend: plt.legend() + +def draw_kinematic_graph(graph: nx.Graph): + elarge = [(u, v) for (u, v, d) in graph.edges(data=True) if d["joint"].jp.active] + esmall = [(u, v) for (u, v, d) in graph.edges(data=True) if not d["joint"].jp.active] + labels = {l:l.name for l in graph.nodes()} + pos = nx.planar_layout(graph) + nx.draw_networkx_nodes(graph, pos, node_size=700) + nx.draw_networkx_edges(graph, pos, edgelist=elarge, width=6) + nx.draw_networkx_edges( + graph, pos, edgelist=esmall, width=6, alpha=0.5, edge_color="b", style="dashed" + ) + nx.draw_networkx_labels(graph, pos, labels, font_size=20, font_family="sans-serif") + + # edge_labels = nx.get_edge_attributes(graph, "weight") + edge_labels = {(u, v):d["joint"].jp.name for (u, v, d) in graph.edges(data=True)} + nx.draw_networkx_edge_labels(graph, pos, edge_labels) + ax = plt.gca() + ax.margins(0.08) + plt.axis("off") + plt.tight_layout() + + +def draw_link_frames(kinematic_graph: nx.Graph): + ex = np.array([1, 0, 0, 0]) + ez = np.array([0, 0, 1, 0]) + p = np.array([0, 0, 0, 1]) + H = np.eye(4) + max_length = np.max([la.norm(n.inertial_frame[:3,3]) for n in kinematic_graph.nodes()]) + scale = max_length/4 + plt.figure(figsize=(15,15)) + for link in kinematic_graph.nodes(): + H_w_l = link.frame + Hg = link.inertial_frame + H = H_w_l + ex_l = H @ ex + ez_l = H @ ez + p_l = H @ p + + ex_g_l = ( + H @ Hg @ ex + ) + ez_g_l = ( + H @ Hg @ ez + ) + p_g_l = H @ Hg @ p + + plt.arrow(p_l[0], p_l[2], ex_l[0] * scale, ex_l[2] * scale, color="r") + plt.arrow(p_l[0], p_l[2], ez_l[0] * scale, ez_l[2] * scale, color="b") + plt.arrow(p_g_l[0], p_g_l[2], ex_g_l[0] * scale, ex_g_l[2] * scale, color="g") + plt.arrow(p_g_l[0], p_g_l[2], ez_g_l[0] * scale, ez_g_l[2] * scale, color="c") + + +def draw_joint_frames(kinematic_graph: nx.Graph): + ex = np.array([1, 0, 0, 0]) + ez = np.array([0, 0, 1, 0]) + p = np.array([0, 0, 0, 1]) + H = np.eye(4) + max_length = np.max([la.norm(n.inertial_frame[:3,3]) for n in kinematic_graph.nodes()]) + scale = max_length/4 + plt.figure(figsize=(15,15)) + for edges in kinematic_graph.edges(data=True): + joint = edges[2]["joint"] + H_l_j = joint.frame + H_w_l = joint.link_in.frame + H = H_w_l @ H_l_j + ex_l = H @ ex + ez_l = H @ ez + p_l = H @ p + + + plt.arrow(p_l[0], p_l[2], ex_l[0] * scale, ex_l[2] * scale, color="r") + plt.arrow(p_l[0], p_l[2], ez_l[0] * scale, ez_l[2] * scale, color="b") + +def calculate_inertia(length): + Ixx = 1 / 12 * 1 * (0.001**2 * length**2) + Iyy = 1 / 12 * 1 * (0.001**2 * length**2) + Izz = 1 / 12 * 1 * (0.001**2 * 0.001**2) + return {"ixx": Ixx, "ixy": 0, "ixz": 0, "iyy": Iyy, "iyz": 0, "izz": Izz} \ No newline at end of file diff --git a/jmoves/auto_robot_design/generator/random_graph_generator/generator_functions.py b/jmoves/auto_robot_design/generator/random_graph_generator/generator_functions.py new file mode 100644 index 00000000..ef700eb6 --- /dev/null +++ b/jmoves/auto_robot_design/generator/random_graph_generator/generator_functions.py @@ -0,0 +1,355 @@ +"""Functions for generating random graph for a mechanism with two DoF + + The link lengths and joint positions are randomly sampled from the parametrized ranges. +""" +import networkx as nx +import numpy as np +from typing import Tuple, List + +from auto_robot_design.description.kinematics import JointPoint +from auto_robot_design.description.builder import add_branch +from auto_robot_design.description.utils import draw_joint_point + +pi = np.pi + +def build_main_branch( + n_link_options: Tuple[float] = (2, 3, 4), + length_range: Tuple[float] = (0.2, 1.4), + angle_range: Tuple[float] = (-pi / 3, pi / 3), + ender_fixed: bool = True, +): + """Create the list of joints that represents the main branch of the mechanism + + Each link and angle are randomly sampled from uniform distribution within parametrized boundaries. + + Args: + n_link_options (Tuple[float], optional): options for amount of links in the branch. Defaults to (2, 3, 4). + length_range (Tuple[float], optional): range of link lengths. Defaults to (0.2, 1.4). + angle_range (Tuple[float], optional): range of default joint angles. Defaults to (-pi / 3, pi / 3). + ender_fixed (bool, optional): option that determined if the end-effector is directly under the ground joint. Defaults to True. + + Returns: + Tuple[List[Joint_Point], int]: returns the list of joints to construct the new branch in the graph and the number of DoF + """ + # required for calculating DoF + body_counter = 0 + joint_counter = 0 + # sample the number of links in the main branch + main_branch_links = np.random.choice(n_link_options) + # create ground point and branch + ground_joint = JointPoint( + r=np.zeros(3), # main ground is always in the origin of coordinate system + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name="Ground_main", + ) + joint_counter += 1 + main_branch = [ground_joint] + for i in range(main_branch_links - 1): + # sample length and angle for new joint placement + sampled_length = np.random.uniform(*length_range) + sampled_angle = np.random.uniform(*angle_range) + x = sampled_length * np.sin(sampled_angle) + y = 0 + z = -sampled_length * np.cos(sampled_angle) + # the position is calculated relative to the previous joint + new_coordenates = main_branch[-1].r + np.array([x, y, z]) + main_branch.append( + JointPoint(r=new_coordenates, w=np.array([0, 1, 0]), name=f"J{i}m") + ) + joint_counter += 1 + body_counter += 1 + + # the last point in the branch is the end-effector + sampled_length = np.random.uniform(*length_range) + if ender_fixed: + x = -main_branch[-1].r[0]# set the ee to the 0 position in x + y = 0 + if sampled_length > abs(main_branch[-1].r[0]): + # the z coordinate can be calculated according to sampled length + z = -((sampled_length**2 - main_branch[-1].r[0] ** 2) ** 0.5) + else: + # the sampled length is too short, the z shift is set to be the min_length/2 (just an arbitrary number to not set it zero) + z = -length_range[0]/2 + new_coordenates = main_branch[-1].r + np.array([x, y, z]) + main_branch.append( + JointPoint( + r=new_coordenates, + w=np.array([0, 1, 0]), + attach_endeffector=True, + name=f"EEJoint", + ) + ) + body_counter += 1 + else: + sampled_angle = np.random.uniform(*angle_range) + x = sampled_length * np.sin(sampled_angle) + y = 0 + z = -sampled_length * np.cos(sampled_angle) + new_coordenates = main_branch[-1].r + np.array([x, y, z]) + main_branch.append( + JointPoint( + r=new_coordenates, + w=np.array([0, 1, 0]), + attach_endeffector=True, + name=f"EEJoint", + ) + ) + body_counter += 1 + + return main_branch, 3 * body_counter - 2 * joint_counter + + +def find_connect_point( + first_point: np.array, + second_point: np.array, + length_factor: float = 0.8, + width_factor: float = 0.5, +) -> np.array: + center = (first_point + second_point) / 2 + half_length = np.linalg.norm(second_point - first_point) / 2 + direction = second_point - center + ort_direction = np.cross(direction, np.array([0, 1, 0])) + sample_length_shift = np.random.uniform(-length_factor, length_factor) + sample_width_shift = np.random.uniform(-width_factor, width_factor) + total_shift = ( + direction * sample_length_shift + + ort_direction + / np.linalg.norm(ort_direction) + * (length_factor - abs(sample_length_shift)) + * sample_width_shift + * half_length + ) + pos = center + total_shift + return pos + + +def sample_secondary_branch( + graph, + main_branch, + length_range: Tuple[float] = (0.3, 0.6), + dof_reduction: int = 0, + branch_id=0, +): + local_joints = 0 + local_bodies = 0 + length_constrains = length_range + # chose first body to connect joint. Secondary branch always starts from some body. + # each branch can be attached to a body from second branch only once + idx_set = set(range(len(main_branch))) + idx_sample = np.random.choice(list(idx_set)) + idx_set.difference_update({idx_sample}) # remove sampled element from index list + secondary_branch = [] # initialize secondary branch + if idx_sample != 0: + # get positions of first and second joints + first_joint = main_branch[idx_sample - 1].r + second_joint = main_branch[idx_sample].r + pos = find_connect_point(first_joint, second_joint) + new_joint = JointPoint(r=pos, w=np.array([0, 1, 0]), name=f"J0_{branch_id}") + local_joints += 1 + secondary_branch = [ + [main_branch[idx_sample - 1], main_branch[idx_sample]], + new_joint, + ] + else: + # idx == 0 means attached to ground + pos = np.array([np.random.uniform(-1, 1), 0, 0]) + new_joint = JointPoint( + r=pos, w=np.array([0, 1, 0]), attach_ground=True, name=f"J0_{branch_id}" + ) + local_joints += 1 + secondary_branch.append(new_joint) + + # idx from the main branch that shows the attachment to a body from main branch + new_joint.attached = idx_sample + current_joint = new_joint + attach = False + i = 0 + while not attach > 0: + i += 1 + if i < 3: + attach = np.random.choice( + [True, False] + ) # randomly choose if the new joint is to be attached to main branch + else: + attach = True + if attach: + # the joint is to be attached to a body from the main branch + if current_joint.attached != -1: + # the current is attached to body and the new to be attached, hence the bodies shouldn't be adjacent + attached_idx = current_joint.attached + # removes the links between adjacent bodies + new_set = idx_set.difference( + set([attached_idx - 1, attached_idx, attached_idx + 1]) + ) + if len(new_set) == 0: + return False # there is no way to connect the branch + idx_sample = np.random.choice(list(new_set)) + else: + idx_sample = np.random.choice(list(idx_set)) + + idx_set.difference_update({idx_sample}) # drop used index from the set + # find a point to attach + if idx_sample != 0: + # get positions of first and second joints + first_joint = main_branch[idx_sample - 1].r + second_joint = main_branch[idx_sample].r + pos = find_connect_point(first_joint, second_joint) + + new_joint = JointPoint( + r=pos, + w=np.array([0, 1, 0]), + attach_endeffector=False, + name=f"J{i}_{branch_id}", + ) + local_joints += 1 + local_bodies += 1 + secondary_branch += [ + new_joint, + [main_branch[idx_sample - 1], main_branch[idx_sample]], + ] + else: + pos = np.array([np.random.uniform(-1, 1), 0, 0]) + new_joint = JointPoint( + r=pos, + w=np.array([0, 1, 0]), + active=False, + attach_ground=True, + name=f"J{i}_{branch_id}", + ) + secondary_branch.append(new_joint) + local_joints += 1 + local_bodies += 1 + new_joint.attached = idx_sample + else: + # we don't need a point to be attached on bodies, hence we only sample a random point, but it must be below z = 0 + new_pos = np.array([0, 0, 0]) + while new_pos[2] > -0.1: + sampled_length = np.random.uniform(*length_constrains) + sampled_angle = np.random.uniform(0, 2 * pi) + x = sampled_length * np.cos(sampled_angle) + y = 0 + z = sampled_length * np.sin(sampled_angle) + new_pos = current_joint.r + np.array([x, y, z]) + + new_joint = JointPoint( + r=new_pos, + w=np.array([0, 1, 0]), + active=False, + attach_endeffector=False, + name=f"J{i}_{branch_id}", + ) + new_joint.attached = -1 + secondary_branch.append(new_joint) + local_joints += 1 + local_bodies += 1 + current_joint = new_joint + + # if the initial secondary branch reduces dof too hard the building is failed + delta_dof = 3 * local_bodies - 2 * local_joints + if delta_dof < dof_reduction: + return False + # get joint from secondary branch + triangle_list = [x for x in secondary_branch if type(x) is JointPoint] + triangle_idx = set(range(1, len(triangle_list))) + if delta_dof - dof_reduction > min(len(triangle_idx), len(idx_set)): + return False + + add_branch(graph, secondary_branch) + j = 0 + while delta_dof > dof_reduction: + j += 1 + i += 1 + # if len(triangle_idx)==0 or len(idx_set)==0: return False + triangle_sample = np.random.choice(list(triangle_idx)) + triangle_idx.difference_update({triangle_sample}) + idx_sample = np.random.choice(list(idx_set)) + idx_set.difference_update({idx_sample}) + first_joint_triangle = triangle_list[triangle_sample - 1].r + second_joint_triangle = triangle_list[triangle_sample].r + new_pos = find_connect_point(first_joint_triangle, second_joint_triangle) + new_joint_triangle = JointPoint( + r=new_pos, + w=np.array([0, 1, 0]), + active=False, + attach_endeffector=False, + name=f"J{i}_{j}_{branch_id}", + ) + i += 1 + if idx_sample != 0: + first_joint = main_branch[idx_sample - 1].r + second_joint = main_branch[idx_sample].r + new_pos = find_connect_point(first_joint, second_joint) + new_joint = JointPoint( + r=new_pos, + w=np.array([0, 1, 0]), + active=False, + attach_endeffector=False, + name=f"J{i}_{j}_{branch_id}", + ) + new_branch = [ + [triangle_list[triangle_sample - 1], triangle_list[triangle_sample]], + new_joint_triangle, + new_joint, + [main_branch[idx_sample - 1], main_branch[idx_sample]], + ] + else: + pos = np.array([np.random.uniform(-1, 1), 0, 0]) + new_joint = JointPoint( + r=pos, + w=np.array([0, 1, 0]), + active=False, + attach_ground=True, + name=f"J{i}_{branch_id}", + ) + new_branch = [ + [triangle_list[triangle_sample - 1], triangle_list[triangle_sample]], + new_joint_triangle, + new_joint, + ] + local_bodies += 1 + local_joints += 2 + add_branch(graph, new_branch) + delta_dof = 3 * local_bodies - 2 * local_joints + + return graph + + +def generate_graph(): + graph = nx.Graph() + main_branch, dof = build_main_branch(angle_range=(-pi / 12, pi / 12)) + add_branch(graph, main_branch) + # dof = body_counter * 3 - 2 * joint_counter + # # print(dof) + zero_reduction = True + b_idx = 0 + while dof > 2 or zero_reduction: + if zero_reduction: + sample_dof_reduction = np.random.randint(0, dof - 1) + zero_reduction = False + else: + sample_dof_reduction = np.random.randint(1, dof - 1) + i = 0 + while not sample_secondary_branch( + graph, main_branch, branch_id=b_idx, dof_reduction=-sample_dof_reduction + ): + if i > 50: + return False + i += 1 + dof -= sample_dof_reduction + b_idx += 1 + + return graph + + +if __name__ == "__main__": + for i in range(1000): + body_counter = 0 + joint_counter = 0 + graph = generate_graph() + + if graph: + draw_joint_point(graph) + else: + print("Fail!") diff --git a/jmoves/auto_robot_design/generator/respawn_algorithm/links_groups.py b/jmoves/auto_robot_design/generator/respawn_algorithm/links_groups.py new file mode 100644 index 00000000..dbc8080b --- /dev/null +++ b/jmoves/auto_robot_design/generator/respawn_algorithm/links_groups.py @@ -0,0 +1,93 @@ +from copy import deepcopy + + +class LinkGroups: + def __init__(self, defalut_class_joint) -> None: + self.dof = 0 + self.class_joint = defalut_class_joint + + def create_branch(self, n: int) -> list: + return [deepcopy(self.class_joint) for __ in range(n)] + + def get_all_groups(self) -> list: + props_class = dir(self) + groups_methods = [ + method for method in props_class if method.startswith("get_group") + ] + groups = [] + for method in groups_methods: + groups.append(getattr(self, method)()) + return groups + + +class LinkGroups1D(LinkGroups): + def __init__(self, defalut_class_joints) -> None: + super().__init__(defalut_class_joints) + self.dof = 1 + + def get_group_3n4p(self) -> tuple[list, tuple]: + return [self.create_branch(6)], ([0,0], [0,5]) + + def get_group_5n7p(self) -> tuple[list, tuple]: + branchs = [] + br1 = self.create_branch(7) + branchs.append(br1) + br2 = [[br1[2], br1[3]]] + self.create_branch(2) + [[br1[4], br1[5]]] + branchs.append(br2) + return branchs, ([0,0], [0,6]) + + +class LinkGroupsM1D(LinkGroups): + def __init__(self, defalut_class_joints) -> None: + super().__init__(defalut_class_joints) + self.dof = -1 + + def get_group_1n2p(self) -> tuple[list, tuple]: + return [self.create_branch(4)], ([0,0], [0,3]) + + def get_group_3n5p(self) -> tuple[list, tuple]: + br1 = self.create_branch(6) + br2 = [[br1[2], br1[3]]] + self.create_branch(2) + return [br1, br2], ([0,0], [0,5], [1, 2]) + + def get_group_5n8p(self) -> tuple[list, tuple]: + br1 = self.create_branch(7) + br2 = [[br1[2], br1[3]]] + self.create_branch(2) + [[br1[4], br1[5]]] + br3 = [[br2[2], br2[3]]] + self.create_branch(2) + return [br1, br2, br3], ([0,0], [0,6], [2, 2]) + + +class LinkGroups0D(LinkGroups): + def __init__(self, defalut_class_joint) -> None: + super().__init__(defalut_class_joint) + self.dof = 0 + + def get_group_2n3p(self) -> tuple[list, tuple]: + return [self.create_branch(5)], ([0,0], [0,2]) + + def get_group_4n6p_v1(self) -> tuple[list, tuple]: + br1 = self.create_branch(6) + br2 = [[br1[2], br1[3]]] + self.create_branch(3) + return [br1, br2], ([0,0], [0,5], [1,3]) + + def get_group_4n6p_v2(self) -> tuple[list, tuple]: + br1 = self.create_branch(6) + br2 = [[br1[1], br1[2]]] + self.create_branch(2) + [[br1[3], br1[4]]] + return [br1, br2], ([0,0], [0,5]) + + def get_group_6n9p(self) -> tuple[list, tuple]: + br1 = self.create_branch(6) + br2 = [[br1[2], br1[3]]] + self.create_branch(4) + br3 = [[br2[1], br2[2]]] + self.create_branch(3) + return [br1, br2, br3], ([0,0], [0, 5], [1,4], [2, 3]) + + +class LinkGroupsM2D(LinkGroups): + def __init__(self, defalut_class_joint) -> None: + super().__init__(defalut_class_joint) + self.dof = -2 + + def get_group_2n4p(self) -> tuple[list, tuple]: + br1 = self.create_branch(5) + br2 = [[br1[1], br1[2]]] + self.create_branch(2) + return [br1, br2], ([0,0], [0,4], [1,2]) diff --git a/jmoves/auto_robot_design/generator/respawn_algorithm/respawn_algorithm.py b/jmoves/auto_robot_design/generator/respawn_algorithm/respawn_algorithm.py new file mode 100644 index 00000000..6bb30c8e --- /dev/null +++ b/jmoves/auto_robot_design/generator/respawn_algorithm/respawn_algorithm.py @@ -0,0 +1,424 @@ +import networkx as nx +import numpy as np +from typing import Tuple, List + + +from auto_robot_design.description.kinematics import JointPoint +from auto_robot_design.description.builder import add_branch +from auto_robot_design.description.utils import draw_joint_point + + +class Generator: + def __init__( + self, + num_main_links: Tuple[float] = (2, 3, 4), + length_link_bounds: Tuple[float] = (0.1, 0.9), + length_main_branch_bounds: Tuple[float] = (0.6, 1.0), + dof_mechanism: float = 2, + length_factor: float = 1.2, + width_factor: float = 0.5, + ) -> None: + self.num_main_link = num_main_links + self.length_link_bounds = length_link_bounds + self.length_main_branch_bounds = length_main_branch_bounds + self.dof_mechanism = dof_mechanism + self.length_factor = length_factor + self.width_factor = width_factor + + def create_main_branch( + self, angle_bounds: Tuple[float] = (-np.pi * 2 / 3, -np.pi / 3) + ): + # sample the number of links in the main branch + num_links = np.random.choice(self.num_main_link) + # sample lengths of links and normalize them + length_main_branch = np.random.uniform(*self.length_main_branch_bounds) + lengths = np.random.uniform(*self.length_link_bounds, size=num_links) + lengths /= np.sum(lengths) + lengths *= length_main_branch + ground_joint = JointPoint( + r=np.zeros(3), + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name="G0main", + ) + + body_counter = 1 + joint_counter = 1 + main_branch = [ground_joint] + for i in range(num_links - 1): + sampled_angle = np.random.uniform(*angle_bounds) + x = lengths[i] * np.cos(sampled_angle) + y = 0 + z = lengths[i] * np.sin(sampled_angle) + new_coordinates = main_branch[-1].r + np.array([x, y, z]) + main_branch.append( + JointPoint(r=new_coordinates, w=np.array([0, 1, 0]), name=f"J{i}m") + ) + body_counter += 1 + joint_counter += 1 + sampled_angle = np.random.uniform(*angle_bounds) + x = lengths[-1] * np.cos(sampled_angle) + y = 0 + z = lengths[-1] * np.sin(sampled_angle) + new_coordinates = main_branch[-1].r + np.array([x, y, z]) + main_branch.append( + JointPoint( + r=new_coordinates, + w=np.array([0, 1, 0]), + name="Jee", + attach_endeffector=True, + ) + ) + body_counter += 1 + return main_branch, 3 * (body_counter - 1 - joint_counter) + 1 * joint_counter + + def find_connect_point( + self, + first_point: np.array, + second_point: np.array, + ) -> np.array: + center = (first_point + second_point) / 2 + half_length = np.linalg.norm(second_point - first_point) / 2 + direction = second_point - center + ort_direction = np.cross(direction, np.array([0, 1, 0])) + sample_length_shift = np.random.uniform(-self.length_factor, self.length_factor) + sample_width_shift = np.random.uniform(-self.width_factor, self.width_factor) + total_shift = ( + direction * sample_length_shift + + ort_direction + / np.linalg.norm(ort_direction) + * (self.length_factor - abs(sample_length_shift)) + * sample_width_shift + * half_length + ) + pos = center + total_shift + + return pos + + def sample_secondary_branch( + self, + graph, + main_branch, + length_range: Tuple[float] = (0.3, 0.6), + dof_reduction: int = 0, + branch_id=0, + ): + local_joints = 0 + local_bodies = 0 + length_constrains = length_range + # chose first body to connect joint. Secondary branch always starts from some body. + # each branch can be attached to a body from second branch only once + idx_set = set(range(len(main_branch))) + idx_sample = np.random.choice(list(idx_set)) + idx_set.difference_update( + {idx_sample} + ) # remove sampled element from index list + secondary_branch = [] # initialize secondary branch + if idx_sample != 0: + # get positions of first and second joints + first_joint = main_branch[idx_sample - 1].r + second_joint = main_branch[idx_sample].r + pos = self.find_connect_point(first_joint, second_joint) + new_joint = JointPoint(r=pos, w=np.array([0, 1, 0]), name=f"J0_{branch_id}") + local_joints += 1 + secondary_branch = [ + [main_branch[idx_sample - 1], main_branch[idx_sample]], + new_joint, + ] + else: + # idx == 0 means attached to ground + pos = self.find_connect_point(np.array([0, 0, 0]), np.array([0, 0, 0.2])) + new_joint = JointPoint( + r=pos, w=np.array([0, 1, 0]), attach_ground=True, name=f"J0_{branch_id}" + ) + local_joints += 1 + secondary_branch.append(new_joint) + + # usually number link in the branch is 4 + max_link_num = 4 + num_link = np.random.choice(range(1, max_link_num)) + # idx from the main branch that shows the attachment to a body from main branch + new_joint.attached = idx_sample + current_joint = new_joint + attach = False + i = 0 + while not attach > 0: + i += 1 + # randomly choose if the new joint is to be attached to main branch + if num_link == i: + attach = True + if attach: + # the joint is to be attached to a body from the main branch + if current_joint.attached != -1: + # the current is attached to body and the new to be attached, hence the bodies shouldn't be adjacent + attached_idx = current_joint.attached + # removes the links between adjacent bodies + new_set = idx_set.difference( + set([attached_idx - 1, attached_idx, attached_idx + 1]) + ) + if len(new_set) == 0: + return False # there is no way to connect the branch + idx_sample = np.random.choice(list(new_set)) + else: + idx_sample = np.random.choice(list(idx_set)) + + idx_set.difference_update({idx_sample}) # drop used index from the set + # find a point to attach + if idx_sample != 0: + # get positions of first and second joints + first_joint = main_branch[idx_sample - 1].r + second_joint = main_branch[idx_sample].r + pos = self.find_connect_point(first_joint, second_joint) + + new_joint = JointPoint( + r=pos, + w=np.array([0, 1, 0]), + attach_endeffector=False, + name=f"J{i}_{branch_id}", + ) + local_joints += 1 + local_bodies += 1 + secondary_branch += [ + new_joint, + [main_branch[idx_sample - 1], main_branch[idx_sample]], + ] + else: + pos = self.find_connect_point( + np.array([0, 0, 0]), np.array([0, 0, 0.2]) + ) + new_joint = JointPoint( + r=pos, + w=np.array([0, 1, 0]), + active=False, + attach_ground=True, + name=f"J{i}_{branch_id}", + ) + secondary_branch.append(new_joint) + local_joints += 1 + local_bodies += 1 + new_joint.attached = idx_sample + else: + # we don't need a point to be attached on bodies, hence we only sample a random point, but it must be below z = 0 + new_pos = self.find_connect_point( + np.array([0, 0, 0]), np.array([0, 0, 0.2]) + ) + + new_joint = JointPoint( + r=new_pos, + w=np.array([0, 1, 0]), + active=False, + attach_endeffector=False, + name=f"J{i}_{branch_id}", + ) + new_joint.attached = -1 + secondary_branch.append(new_joint) + local_joints += 1 + local_bodies += 1 + current_joint = new_joint + + # if the initial secondary branch reduces dof too hard the building is failed + delta_dof = 3 * local_bodies - 2 * local_joints + if delta_dof < dof_reduction: + return False + # get joint from secondary branch + triangle_list = [x for x in secondary_branch if type(x) is JointPoint] + triangle_idx = set(range(1, len(triangle_list))) + if delta_dof - dof_reduction > min(len(triangle_idx), len(idx_set)): + return False + + add_branch(graph, secondary_branch) + j = 0 + while delta_dof > dof_reduction: + j += 1 + i += 1 + # if len(triangle_idx)==0 or len(idx_set)==0: return False + triangle_sample = np.random.choice(list(triangle_idx)) + triangle_idx.difference_update({triangle_sample}) + idx_sample = np.random.choice(list(idx_set)) + idx_set.difference_update({idx_sample}) + first_joint_triangle = triangle_list[triangle_sample - 1].r + second_joint_triangle = triangle_list[triangle_sample].r + new_pos = self.find_connect_point( + first_joint_triangle, second_joint_triangle + ) + new_joint_triangle = JointPoint( + r=new_pos, + w=np.array([0, 1, 0]), + active=False, + attach_endeffector=False, + name=f"J{i}_{j}_{branch_id}", + ) + i += 1 + if idx_sample != 0: + first_joint = main_branch[idx_sample - 1].r + second_joint = main_branch[idx_sample].r + new_pos = self.find_connect_point(first_joint, second_joint) + new_joint = JointPoint( + r=new_pos, + w=np.array([0, 1, 0]), + active=False, + attach_endeffector=False, + name=f"J{i}_{j}_{branch_id}", + ) + new_branch = [ + [ + triangle_list[triangle_sample - 1], + triangle_list[triangle_sample], + ], + new_joint_triangle, + new_joint, + [main_branch[idx_sample - 1], main_branch[idx_sample]], + ] + else: + pos = self.find_connect_point( + np.array([0, 0, 0]), np.array([0, 0, 0.2]) + ) + new_joint = JointPoint( + r=pos, + w=np.array([0, 1, 0]), + active=False, + attach_ground=True, + name=f"J{i}_{branch_id}", + ) + new_branch = [ + [ + triangle_list[triangle_sample - 1], + triangle_list[triangle_sample], + ], + new_joint_triangle, + new_joint, + ] + local_bodies += 1 + local_joints += 2 + add_branch(graph, new_branch) + delta_dof = 3 * local_bodies - 2 * local_joints + + return graph + + +def generate_graph(): + graph = nx.Graph() + generator = Generator() + main_branch, dof = generator.create_main_branch() + add_branch(graph, main_branch) + # dof = body_counter * 3 - 2 * joint_counter + # # print(dof) + zero_reduction = True + b_idx = 0 + while dof > 2 or zero_reduction: + if zero_reduction: + sample_dof_reduction = np.random.randint(0, dof - 1) + zero_reduction = False + else: + sample_dof_reduction = np.random.randint(1, dof - 1) + i = 0 + while not generator.sample_secondary_branch( + graph, main_branch, branch_id=b_idx, dof_reduction=-sample_dof_reduction + ): + if i > 50: + return False + i += 1 + dof -= sample_dof_reduction + b_idx += 1 + + return graph + + +class RespawnAlgorithm(Generator): + def __init__( + self, + groups_libary, + num_main_links: Tuple[float] = (2, 3, 4), + length_link_bounds: Tuple[float] = (0.1, 0.9), + length_main_branch_bounds: Tuple[float] = (0.6, 1), + dof_mechanism: float = 2, + length_factor: float = 1.2, + width_factor: float = 0.5, + ) -> None: + super().__init__( + num_main_links, + length_link_bounds, + length_main_branch_bounds, + dof_mechanism, + length_factor, + width_factor, + ) + self.groups_libary = groups_libary + + + def sample_secondary_branch( + self, + graph, + main_branch, + length_range: Tuple[float] = (0.3, 0.6), + dof_reduction: int = 0, + branch_id=0, + ): + local_joints = 0 + local_bodies = 0 + length_constrains = length_range + # chose first body to connect joint. Secondary branch always starts from some body. + # each branch can be attached to a body from second branch only once + idx_set = set(range(len(main_branch))) + idx_sample = np.random.choice(list(idx_set)) + idx_set.difference_update( + {idx_sample} + ) # remove sampled element from index list + + all_groups = {g.dof:g.get_all_groups() for g in self.groups_libary} + dof_group = np.random.choice(all_groups.keys()) + group, id_outs = np.random.choice(all_groups[dof_group]) + + idx_set = set(range(len(main_branch))) + for id in id_outs: + idx_sample = np.random.choice(list(idx_set)) + idx_set.difference_update( + {idx_sample} + ) # remove sampled element from index list + + if idx_sample != 0: + # get positions of first and second joints + first_joint = main_branch[idx_sample - 1].r + second_joint = main_branch[idx_sample].r + group[id[0]][id[1]] = [main_branch[idx_sample-1],main_branch[idx_sample]] + else: + # idx == 0 means attached to ground + pos = self.find_connect_point(np.array([0, 0, 0]), np.array([0, 0, 0.2])) + new_joint = JointPoint( + r=pos, w=np.array([0, 1, 0]), attach_ground=True, name=f"J0_{branch_id}" + ) + group[id[0]][id[1]] = new_joint + + # idx from the main branch that shows the attachment to a body from main branch + new_joint.attached = idx_sample + current_joint = new_joint + attach = False + i = 0 + + # if the initial secondary branch reduces dof too hard the building is failed + delta_dof = 3 * local_bodies - 2 * local_joints + if delta_dof < dof_reduction: + return False + # get joint from secondary branch + triangle_list = [x for x in secondary_branch if type(x) is JointPoint] + triangle_idx = set(range(1, len(triangle_list))) + if delta_dof - dof_reduction > min(len(triangle_idx), len(idx_set)): + return False + + add_branch(graph, secondary_branch) + j = 0 + + return graph + +if __name__ == "__main__": + for i in range(1000): + body_counter = 0 + joint_counter = 0 + graph = generate_graph() + + if graph: + draw_joint_point(graph) + else: + # print("Fail!") + pass diff --git a/jmoves/auto_robot_design/generator/restricted_generator/three_link_generator.py b/jmoves/auto_robot_design/generator/restricted_generator/three_link_generator.py new file mode 100644 index 00000000..624639d0 --- /dev/null +++ b/jmoves/auto_robot_design/generator/restricted_generator/three_link_generator.py @@ -0,0 +1,398 @@ +import numpy as np +from typing import Tuple, List +import networkx as nx + +from auto_robot_design.description.kinematics import JointPoint +from auto_robot_design.description.builder import add_branch +from auto_robot_design.description.utils import draw_joint_point +import itertools + +from auto_robot_design.generator.restricted_generator.utilities import set_circle_points +class ThreeLinkGenerator(): + def __init__(self) -> None: + self.variants_2l = 5 + self.variants_4l_t1 = 4 + self.variants_4l_t2 = 24 + self.total_variants = self.variants_2l + \ + self.variants_4l_t1 + self.variants_4l_t2 + self.constrain_dict = {} # should be updated after creating each joint + self.current_main_branch = [] + self.graph = nx.Graph() + + def reset(self): + """Reset the graph builder.""" + self.constrain_dict = {} # should be updated after creating each joint + self.current_main_branch = [] + self.graph = nx.Graph() + + def build_standard_threelink(self, middle_length=0.4, middle_pos=0.5, nominal_length=1, right_shift=0.2): + """Create a two-link branch to connect last or middle link with some link above or ground. + + Args: + middle_length (float, optional): length of middle link. Defaults to 0.4. + middle_pos (float, optional): center of middle link. Defaults to 0.5. + nominal_length (int, optional): length from ground to end-effector. Defaults to 1. + right_shift (float, optional): shift to the right of the middle link. Defaults to 0.2. + """ + ground_joint = JointPoint( + r=np.zeros(3), + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name="Main_ground" + ) + self.constrain_dict[ground_joint.name] = { + 'optim': False, 'x_range': (-0.2, 0.2), 'z_range': (-0.2, 0.2)} + self.current_main_branch.append(ground_joint) + # works only for three-links main branch + top_joint_pos = np.array( + [right_shift, 0, -(middle_pos-middle_length*0.5)]) + bot_joint_pos = np.array( + [right_shift, 0, -(middle_pos+middle_length*0.5)]) + top_joint = JointPoint( + r=top_joint_pos, w=np.array([0, 1, 0]), name="Main_top") + self.current_main_branch.append(top_joint) + self.constrain_dict[top_joint.name] = { + 'optim': False, 'x_range': (-0.2, 0.2), 'z_range': (-0.2, 0.2)} + bot_joint = JointPoint( + r=bot_joint_pos, w=np.array([0, 1, 0]), name="Main_bot") + self.current_main_branch.append(bot_joint) + self.constrain_dict[bot_joint.name] = { + 'optim': False, 'x_range': (-0.2, 0.2), 'z_range': (-0.2, 0.2)} + ee = JointPoint( + r=np.array([0, 0, -nominal_length]), + w=np.array([0, 1, 0]), + attach_endeffector=True, + name="Main_ee" + ) + self.constrain_dict[ee.name] = { + 'optim': False, 'x_range': (-0.2, 0.2), 'z_range': (-0.2, 0.2)} + self.current_main_branch.append(ee) + + add_branch(self.graph, self.current_main_branch) + + def add_2l_branch(self, inner: bool = True, shift=0.25, variant=0, branch_idx=0): + """Adds a two-link chain top the main chain + + Args: + inner (bool, optional): inner or outer chain. Defaults to True. + shift (float, optional): shift in x direction. Defaults to 0.25. + variant (int, optional): the variant of connection. Defaults to 0. + branch_idx (int, optional): index of the branch for naming. Defaults to 0. + """ + # we have several possible connection points and create a joint for each at the start + if inner: + ground_connection = np.array([-shift, 0, 0]) + else: + ground_connection = np.array([shift, 0, 0]) + + link_connection_points = [ + (self.current_main_branch[i-1].r + self.current_main_branch[i].r)/2 for i in range(1, len(self.current_main_branch))] + + # create joints for each possible point, not all of them will be used in the final graph + # ground is always active + ground = JointPoint(r=ground_connection, + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name=f"2L_{branch_idx}_ground") + self.constrain_dict[ground.name] = { + 'optim': True, 'x_range': (-0.2, 0.2)} + # create connection dict + connection_joints = {ground: []} + for i, point in enumerate(link_connection_points): + new_joint = JointPoint(r=point, w=np.array( + [0, 1, 0]), name=f'2L_{branch_idx}_connection_{i}') + self.constrain_dict[new_joint.name] = { + 'optim': True, 'x_range': (-0.2, 0.2), 'z_range': (-0.2, 0.2)} + connection_joints[new_joint] = [ + [self.current_main_branch[i], self.current_main_branch[i+1]]] + + # create all ordered pairs of indexes + pairs = list(itertools.combinations( + list(range(len(connection_joints))), 2)) + # only works for three-links, remove the first pair to remove connection between ground and first link + pairs.pop(0) + self.variants_2l = len(pairs) + if variant >= self.variants_2l: + raise Exception('variant for two-link branch is out of range') + branch = [] + pair = pairs[variant] # actual pair for the variant + top_joint: JointPoint = list(connection_joints)[pair[0]] + bot_joint: JointPoint = list(connection_joints)[pair[1]] + # create joints in the branch, currently depends on the type of the branch + if inner: + knee_point = (top_joint.r + bot_joint.r) / \ + 2 + np.array([-shift, 0, 0]) + else: + knee_point = (top_joint.r + bot_joint.r) / \ + 2 + np.array([shift, 0, 0]) + branch_knee_joint = JointPoint(r=knee_point, w=np.array( + [0, 1, 0]), name=f"branch_{branch_idx}_knee") + self.constrain_dict[branch_knee_joint.name] = { + 'optim': True, 'x_range': (-0.4, 0.4), 'z_range': (-0.4, 0.4)} + + branch += connection_joints[top_joint] + branch.append(top_joint) + branch.append(branch_knee_joint) + branch.append(bot_joint) + branch += connection_joints[bot_joint] + top_joint.active = True + + add_branch(self.graph, branch) + + return pair[0], pair[1] + + def add_4l_branch_type1(self, inner: bool = True, shift=0.5, variant=0, branch_idx=0): + """Adds four-link with triangle in center and three links connected to the main branch. + + It is a symmetrical branch. + + Args: + inner (bool, optional): inner or outer chain. Defaults to True. + shift (float, optional): shift in x direction. Defaults to 0.25. + variant (int, optional): the variant of connection. Defaults to 0. + branch_idx (int, optional): index of the branch for naming. Defaults to 0. + + """ + # we have several possible connection points and create a joint for each at the start + if inner: + ground_connection = np.array([-shift, 0, 0]) + else: + ground_connection = np.array([shift, 0, 0]) + + link_connection_points = [ + (self.current_main_branch[i-1].r + self.current_main_branch[i].r)/2 for i in range(1, len(self.current_main_branch))] + + # create joints for each possible point, not all of them will be used in the final graph + # ground is always active + ground = JointPoint(r=ground_connection, + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name=f"4LT1_{branch_idx}_ground") + self.constrain_dict[ground.name] = { + 'optim': True, 'x_range': (-0.2, 0.2)} + # create connection dict + connection_joints = {ground: []} + for i, point in enumerate(link_connection_points): + new_joint = JointPoint(r=point, w=np.array( + [0, 1, 0]), name=f'4LT1_{branch_idx}_connection_{i}') + self.constrain_dict[new_joint.name] = { + 'optim': True, 'x_range': (-0.2, 0.2), 'z_range': (-0.2, 0.2)} + connection_joints[new_joint] = [ + [self.current_main_branch[i], self.current_main_branch[i+1]]] + + # create branch joints + branch = [] + if inner: + triplet_top = JointPoint(r=np.array([-shift, 0, self.current_main_branch[1].r[2]]), w=np.array( + [0, 1, 0]), name=f"4LT1_{branch_idx}_triplet_top") + self.constrain_dict[triplet_top.name] = { + 'optim': True, 'x_range': (-0.3, 0.3), 'z_range': (-0.3, 0.3)} + triplet_mid = JointPoint(r=np.array([-shift, 0, (self.current_main_branch[1].r[2]+self.current_main_branch[2].r[2])/2]), w=np.array( + [0, 1, 0]), name=f"4LT1_{branch_idx}_triplet_mid") + self.constrain_dict[triplet_mid.name] = {'optim': True, + 'x_range': (-0.3, 0.3), 'z_range': (-0.3, 0.3)} + triplet_bot = JointPoint(r=np.array([-shift, 0, self.current_main_branch[2].r[2]]), w=np.array( + [0, 1, 0]), name=f"4LT1_{branch_idx}_triplet_bot") + self.constrain_dict[triplet_bot.name] = {'optim': True, + 'x_range': (-0.3, 0.3), 'z_range': (-0.3, 0.3)} + else: + triplet_top = JointPoint(r=np.array([shift, 0, self.current_main_branch[1].r[2]]), w=np.array( + [0, 1, 0]), name=f"4LT1_{branch_idx}_triplet_top") + self.constrain_dict[triplet_top.name] = {'optim': True, + 'x_range': (-0.3, 0.3), 'z_range': (-0.3, 0.3)} + triplet_mid = JointPoint(r=np.array([shift, 0, (self.current_main_branch[1].r[2]+self.current_main_branch[2].r[2])/2]), w=np.array( + [0, 1, 0]), name=f"4LT1_{branch_idx}_triplet_mid") + self.constrain_dict[triplet_mid.name] = {'optim': True, + 'x_range': (-0.3, 0.3), 'z_range': (-0.3, 0.3)} + triplet_bot = JointPoint(r=np.array([shift, 0, self.current_main_branch[2].r[2]]), w=np.array( + [0, 1, 0]), name=f"4LT1_{branch_idx}_triplet_bot") + self.constrain_dict[triplet_bot.name] = {'optim': True, + 'x_range': (-0.3, 0.3), 'z_range': (-0.3, 0.3)} + triplets = list(itertools.combinations( + list(range(len(connection_joints))), 3)) + self.variants_4l_t1 = len(triplets) + if variant >= self.variants_4l_t1: + raise Exception( + 'variant for four-link type_1 branch is out of range') + triplet = triplets[variant] + + top_connection: JointPoint = list(connection_joints)[triplet[0]] + top_connection.active = True + mid_connection: JointPoint = list(connection_joints)[triplet[1]] + bot_connection: JointPoint = list(connection_joints)[triplet[2]] + + branch += connection_joints[top_connection] + branch.append(top_connection) + branch.append(triplet_top) + branch.append(triplet_bot) + branch.append(bot_connection) + branch += connection_joints[bot_connection] + + add_branch(self.graph, branch) + + secondary_branch = [] + secondary_branch += connection_joints[mid_connection] + secondary_branch.append(mid_connection) + secondary_branch.append(triplet_mid) + secondary_branch.append([triplet_top, triplet_bot]) + + add_branch(self.graph, secondary_branch) + + return triplet[0], triplet[2] + + def add_4l_branch_type2(self, inner: bool = True, shift=0.5, variant=0, branch_idx=0): + """Adds four-link with triangle in center and three links connected to the main branch. + + It is an asymmetrical branch. + + Args: + inner (bool, optional): inner or outer chain. Defaults to True. + shift (float, optional): shift in x direction. Defaults to 0.25. + variant (int, optional): the variant of connection. Defaults to 0. + branch_idx (int, optional): index of the branch for naming. Defaults to 0. + + """ + # we have several possible connection points and create a joint for each at the start + if inner: + ground_connection = np.array([-shift, 0, 0]) + else: + ground_connection = np.array([shift, 0, 0]) + + link_connection_points = [ + (self.current_main_branch[i-1].r + self.current_main_branch[i].r)/2 for i in range(1, len(self.current_main_branch))] + + # create joints for each possible point, not all of them will be used in the final graph + # ground is always active + ground = JointPoint(r=ground_connection, + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name=f"4LT2_{branch_idx}_ground") + self.constrain_dict[ground.name] = { + 'optim': True, 'x_range': (-0.2, 0.2)} + # create connection dict + connection_joints = {ground: []} + for i, point in enumerate(link_connection_points): + new_joint = JointPoint(r=point, w=np.array( + [0, 1, 0]), name=f'4LT2_{branch_idx}_connection_{i}') + self.constrain_dict[new_joint.name] = { + 'optim': True, 'x_range': (-0.2, 0.2), 'z_range': (-0.2, 0.2)} + connection_joints[new_joint] = [ + [self.current_main_branch[i], self.current_main_branch[i+1]]] + + branch = [] + triplets = list(itertools.combinations( + list(range(len(connection_joints))), 3)) + # the branch is not symmetric, therefore for each triplet of connection points we have 6 different ways to connect + variants = [] + for triplet in triplets: + triplet_variants = list(itertools.permutations(triplet)) + variants += triplet_variants + + self.variants_4l_t2 = len(variants) + if variant >= self.variants_4l_t2: + raise Exception( + 'variant for four-link type_2 branch is out of range') + triplet = variants[variant] + + first_connection: JointPoint = list(connection_joints)[triplet[0]] + second_connection: JointPoint = list(connection_joints)[triplet[1]] + third_connection: JointPoint = list(connection_joints)[triplet[2]] + + top_idx = min(triplet) + list(connection_joints)[top_idx].active = True + + # connections = [connection_joints.keys[x] for x in triplet] + + new_pos_list = set_circle_points( + first_connection.r, third_connection.r, second_connection.r, 4) + branch += connection_joints[first_connection] + branch.append(first_connection) + triangle_joints = [] + for i, pos in enumerate(new_pos_list): + joint = JointPoint(r=pos, w=np.array( + [0, 1, 0]), name=f"4LT2_{branch_idx}_j{i}") + self.constrain_dict[joint.name] = { + 'optim': True, 'x_range': (-0.4, 0.4), 'z_range': (-0.4, 0.4)} + branch.append(joint) + if i == 0 or i == 1: + triangle_joints.append(joint) + + branch.append(third_connection) + branch+=connection_joints[third_connection] + add_branch(self.graph, branch) + + secondary_branch = [] + secondary_branch += connection_joints[second_connection] + secondary_branch.append(second_connection) + secondary_branch.append(triangle_joints) + add_branch(self.graph, secondary_branch) + + return triplet[0], triplet[2] + + def get_graph(self, inner_variant=0, outer_variant=10, inner_shift=0.5, outer_shift=0.5): + self.reset() + self.build_standard_threelink() + # inner branch + if inner_variant < self.variants_2l: + self.add_2l_branch(inner=True, variant=inner_variant, + shift=inner_shift, branch_idx=0) + elif inner_variant < self.variants_2l+self.variants_4l_t1: + self.add_4l_branch_type1( + inner=True, variant=inner_variant-self.variants_2l, shift=inner_shift, branch_idx=0) + else: + self.add_4l_branch_type2(inner=True, variant=inner_variant-self.variants_2l - + self.variants_4l_t1, shift=inner_shift, branch_idx=0) + + # outer branch + if outer_variant < self.variants_2l: + self.add_2l_branch(inner=False, variant=outer_variant, + shift=outer_shift, branch_idx=1) + elif outer_variant < self.variants_2l+self.variants_4l_t1: + self.add_4l_branch_type1( + inner=False, variant=outer_variant-self.variants_2l, shift=outer_shift, branch_idx=1) + else: + self.add_4l_branch_type2(inner=False, variant=outer_variant - + self.variants_2l-self.variants_4l_t1, shift=outer_shift, branch_idx=1) + return self.graph, self.constrain_dict + + def filter_constrain_dict(self): + list_names = list(map(lambda x: x.name, self.graph.nodes)) + self.constrain_dict = dict(filter(lambda x:x[0] in list_names, self.constrain_dict.items())) + + def get_all_topologies(self, main_shift=0.2, main_length=0.4, main_pos=0.5,inner_shift=0.5,outer_shift=0.5, nominal_length = 1): + result = [] + for inner_variant in range(self.total_variants): + for outer_variant in range(self.total_variants): + self.reset() + self.build_standard_threelink(right_shift=main_shift,middle_length=main_length,middle_pos=main_pos, nominal_length=nominal_length) + if inner_variant < self.variants_2l: + top_in, bot_in = self.add_2l_branch(inner=True, variant=inner_variant, + shift=inner_shift, branch_idx=0) + elif inner_variant < self.variants_2l+self.variants_4l_t1: + top_in, bot_in = self.add_4l_branch_type1( + inner=True, variant=inner_variant-self.variants_2l, shift=inner_shift, branch_idx=0) + else: + top_in, bot_in = self.add_4l_branch_type2(inner=True, variant=inner_variant-self.variants_2l - + self.variants_4l_t1, shift=inner_shift, branch_idx=0) + + if outer_variant < self.variants_2l: + top_out, bot_out =self.add_2l_branch(inner=False, variant=outer_variant, + shift=outer_shift, branch_idx=1) + elif outer_variant < self.variants_2l+self.variants_4l_t1: + top_out, bot_out =self.add_4l_branch_type1( + inner=False, variant=outer_variant-self.variants_2l, shift=outer_shift, branch_idx=1) + else: + top_out, bot_out =self.add_4l_branch_type2(inner=False, variant=outer_variant - + self.variants_2l-self.variants_4l_t1, shift=outer_shift, branch_idx=1) + + if top_in!=top_out and bot_in!=bot_out: + self.filter_constrain_dict() + result.append((self.graph, self.constrain_dict)) + + return result + + diff --git a/jmoves/auto_robot_design/generator/restricted_generator/two_link_generator.py b/jmoves/auto_robot_design/generator/restricted_generator/two_link_generator.py new file mode 100644 index 00000000..a3802da5 --- /dev/null +++ b/jmoves/auto_robot_design/generator/restricted_generator/two_link_generator.py @@ -0,0 +1,330 @@ +import numpy as np +import matplotlib.pyplot as plt +import matplotlib.patches as patches +from typing import Tuple, List +import networkx as nx +from copy import deepcopy +import networkx + +from auto_robot_design.description.kinematics import JointPoint +from auto_robot_design.description.builder import add_branch +from auto_robot_design.description.utils import draw_joint_point +import itertools +from auto_robot_design.generator.restricted_generator.utilities import set_circle_points + + +class TwoLinkGenerator(): + """Generates all possible graphs with two links in main branch + """ + + def __init__(self) -> None: + self.variants = list(range(7)) + self.constrain_dict = {} # should be updated after creating each joint + self.current_main_branch = [] + self.graph = nx.Graph() + self.ground_x_movement = (-0.1, 0.1) + self.ground_z_movement = (-0.01,0.1) + self.free_x_movement = (-0.15, 0.15) + self.free_z_movement = (-0.15, 0.15) + self.bound_x_movement = (-0.1, 0.1) + self.bound_z_movement = (-0.1, 0.1) + + def reset(self): + """Reset the graph builder.""" + self.constrain_dict = {} # should be updated after creating each joint + self.current_main_branch = [] + self.graph = nx.Graph() + + #def build_standard_two_linker(self, knee_pos: float = -0.148, nominal_length=0.27577, right_shift=-0.148): old version + def build_standard_two_linker(self, knee_pos: float = -0.15, nominal_length=0.3, right_shift=0): + ground_joint = JointPoint( + r=np.zeros(3), + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name="Main_ground" + ) + # graph_dict = {"TL_ground": ground_joint} + self.constrain_dict[ground_joint.name] = {'optim': False, + 'x_range': (-0.2, 0.2), 'z_range': (-0.2, 0.2)} + self.current_main_branch.append(ground_joint) + + knee_joint_pos = np.array([right_shift, 0, knee_pos]) + knee_joint = JointPoint( + r=knee_joint_pos, w=np.array([0, 1, 0]), name="Main_knee") + self.constrain_dict[knee_joint.name] = { + 'optim': True, 'x_range': (-0.1, 0.1), 'z_range': (-0.1, 0.1)} + self.current_main_branch.append(knee_joint) + ee = JointPoint( + r=np.array([0, 0, -nominal_length]), + w=np.array([0, 1, 0]), + attach_endeffector=True, + name="Main_ee" + ) + self.current_main_branch.append(ee) + self.constrain_dict[ee.name] = { + 'optim': False, 'x_range': (-0.2, 0.2), 'z_range': (-0.2, 0.2)} + + add_branch(self.graph, self.current_main_branch) + + def add_2l_branch(self, inner: bool = True, shift=0.25, ground: bool = True): + + # we have several possible connection points and create a joint for each at the start + if inner: + ground_connection = np.array([-shift, 0, 0]) + else: + ground_connection = np.array([shift, 0, 0]) + + link_connection_points = [ + (self.current_main_branch[i-1].r + self.current_main_branch[i].r)/2 for i in range(1, len(self.current_main_branch))] + + # create joints for each possible point, not all of them will be used in the final graph + # ground is always active + ground_joint = JointPoint(r=ground_connection, + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name=f"2L_ground") + self.constrain_dict[ground_joint.name] = { + 'optim': True, 'x_range': self.ground_x_movement, 'z_range': self.ground_z_movement} + # create connection dict + connection_joints = {ground_joint: []} + + top_link_joint = JointPoint(r=link_connection_points[0], w=np.array([ + 0, 1, 0]), active=True, name=f'2L_top') + self.constrain_dict[top_link_joint.name] = { + 'optim': True, 'x_range': self.bound_x_movement, 'z_range': self.bound_z_movement} + connection_joints[top_link_joint] = [ + [self.current_main_branch[0], self.current_main_branch[1]]] + + bot_link_joint = JointPoint( + r=link_connection_points[1], w=np.array([0, 1, 0]), name=f'2L_bot') + self.constrain_dict[bot_link_joint.name] = { + 'optim': True, 'x_range': self.bound_x_movement, 'z_range': self.bound_z_movement} + connection_joints[bot_link_joint] = [ + [self.current_main_branch[1], self.current_main_branch[2]]] + + branch = [] + if ground: + top_joint: JointPoint= ground_joint + else: + top_joint: JointPoint = top_link_joint + bot_joint: JointPoint = bot_link_joint + + # create joints in the branch, currently depends on the type of the branch + if inner: + knee_point = (top_joint.r + bot_joint.r) / \ + 2 + np.array([-shift, 0, 0]) + else: + knee_point = (top_joint.r + bot_joint.r) / \ + 2 + np.array([shift, 0, 0]) + branch_knee_joint = JointPoint(r=knee_point, w=np.array( + [0, 1, 0]), name=f"2L_knee") + self.constrain_dict[branch_knee_joint.name] = { + 'optim': True, 'x_range': self.free_x_movement, 'z_range': self.free_z_movement} + + branch += connection_joints[top_joint] + branch.append(top_joint) + branch.append(branch_knee_joint) + branch.append(bot_joint) + branch += connection_joints[bot_joint] + top_joint.active = True + + add_branch(self.graph, branch) + + def add_4l_branch(self, inner: bool = True, shift=0.5, variant=0): + # we have several possible connection points and create a joint for each at the start + if inner: + ground_connection = np.array([-shift, 0, 0]) + else: + ground_connection = np.array([shift, 0, 0]) + + link_connection_points = [ + (self.current_main_branch[i-1].r + self.current_main_branch[i].r)/2 for i in range(1, len(self.current_main_branch))] + + # create joints for each possible point, not all of them will be used in the final graph + # ground is always active + if variant not in [1,3]: + ground_joint = JointPoint(r=ground_connection, + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name="4L_ground") + else: + ground_joint = JointPoint(r=ground_connection, + w=np.array([0, 1, 0]), + attach_ground=True, + active=False, + name="4L_ground") + self.constrain_dict[ground_joint.name] = { + 'optim': True, 'x_range': self.ground_x_movement, 'z_range': self.ground_z_movement} + # create connection dict + connection_joints = {ground_joint: []} + top_link_joint = JointPoint( + r=link_connection_points[0], w=np.array([0, 1, 0]), name=f'4L_top') + self.constrain_dict[top_link_joint.name] = { + 'optim': True, 'x_range': self.bound_x_movement, 'z_range': self.bound_z_movement} + connection_joints[top_link_joint] = [ + [self.current_main_branch[0], self.current_main_branch[1]]] + + bot_link_joint = JointPoint( + r=link_connection_points[1], w=np.array([0, 1, 0]), name=f'4L_bot') + self.constrain_dict[bot_link_joint.name] = { + 'optim': True, 'x_range': self.bound_x_movement, 'z_range': self.bound_z_movement} + connection_joints[bot_link_joint] = [ + [self.current_main_branch[1], self.current_main_branch[2]]] + + # triangle with 3 connections + if variant == 0: + pos_1 = np.array([ground_joint.r[0], 0, bot_link_joint.r[2]]) + pos_2 = np.array([ground_joint.r[0], 0, bot_link_joint.r[2]/2]) + j1 = JointPoint(r=pos_1, + w=np.array([0, 1, 0]), + name="4LT1_triplet_bot") + self.constrain_dict[j1.name] = { + 'optim': True, 'x_range':self.free_x_movement, 'z_range': self.free_z_movement} + j2 = JointPoint(r=pos_2, + w=np.array([0, 1, 0]), + name="4LT1_triplet_top") + self.constrain_dict[j2.name] = { + 'optim': True, 'x_range':self.free_x_movement, 'z_range': self.free_z_movement} + + branch = [] + branch += connection_joints[bot_link_joint] + branch.append(bot_link_joint) + branch.append(j1) + branch.append(j2) + branch.append(ground_joint) + branch += connection_joints[ground_joint] + add_branch(self.graph, branch) + + j3 = JointPoint(r=(pos_1+pos_2)/2, + w=np.array([0, 1, 0]), + name="4LT1_triplet_mid") + self.constrain_dict[j3.name] = { + 'optim': True, 'x_range':self.free_x_movement, 'z_range': self.free_z_movement} + + secondary_branch = [] + secondary_branch += connection_joints[top_link_joint] + secondary_branch.append(top_link_joint) + secondary_branch.append(j3) + secondary_branch.append([j1, j2]) + + add_branch(self.graph, secondary_branch) + + else: + new_joints = [ground_joint, top_link_joint, bot_link_joint] + permutation = list(itertools.permutations(new_joints))[variant-1] + + new_joint_pos = set_circle_points( + permutation[0].r, permutation[2].r, permutation[1].r, 4) + + branch = [] + branch += connection_joints[permutation[0]] + branch.append(permutation[0]) + triangle_joints = [] + for i, pos in enumerate(new_joint_pos): + flag = False + if i == 1 and variant in [1,3]: + flag = True + joint = JointPoint(r=pos, w=np.array( + [0, 1, 0]), active=flag,name=f"4LT2_j{i}") + self.constrain_dict[joint.name] = { + 'optim': True, 'x_range':self.free_x_movement, 'z_range': self.free_z_movement} + branch.append(joint) + if i < 2: + triangle_joints.append(joint) + + branch.append(permutation[2]) + branch += connection_joints[permutation[2]] + add_branch(self.graph, branch) + + secondary_branch = [triangle_joints, permutation[1] + ] + connection_joints[permutation[1]] + + add_branch(self.graph, secondary_branch) + + def filter_constrain_dict(self): + list_names = list(map(lambda x: x.name, self.graph.nodes)) + self.constrain_dict = dict(filter(lambda x:x[0] in list_names, self.constrain_dict.items())) + + def get_standard_set(self, knee_pos=-0.148, shift=0.1): + result_list = [] + for inner in [True, False]: + for ground in [True, False]: + self.reset() + self.build_standard_two_linker(knee_pos=knee_pos) + self.add_2l_branch(inner=inner, ground=ground, shift=shift) + self.filter_constrain_dict() + result_list.append((self.graph, self.constrain_dict)) + for i in self.variants: + self.reset() + self.build_standard_two_linker(knee_pos=knee_pos) + self.add_4l_branch(inner=inner, variant=i, shift=shift) + self.filter_constrain_dict() + result_list.append((self.graph, self.constrain_dict)) + return result_list + + +def get_constrain_space(constrain_dict: dict): + space = [] + for key in constrain_dict: + item = constrain_dict[key] + if item['optim']: + space.append(item.get('x_range')) + space.append(item.get('z_range')) + space = [x for x in space if x is not None] + space = np.array(space) + return space + + +def get_changed_graph(graph, constrain_dict, change_vector): + new_graph: networkx.Graph = deepcopy(graph) + vector_dict = {} + i = 0 + for key in constrain_dict: + if constrain_dict[key]['optim']: + vector = np.zeros(3) + if constrain_dict[key].get('x_range'): + vector[0] = change_vector[i] + i += 1 + if constrain_dict[key].get('z_range'): + vector[2] = change_vector[i] + i += 1 + vector_dict[key] = vector + + for node in new_graph.nodes: + if node.name in vector_dict: + node.r = node.r + vector_dict[node.name] + + return new_graph + +def visualize_constrains(graph, constrain_dict): + #draw_joint_point(graph) + name2coord = dict(map(lambda x: (x.name, (x.r[0],x.r[2])), graph.nodes())) + optimizing_joints = dict( + filter(lambda x: x[1]["optim"], constrain_dict.items())) + for key, value in optimizing_joints.items(): + x, z = name2coord.get(key) + plt.plot(x, z, marker="o", markeredgecolor="red", markerfacecolor="green") + width = value.get('x_range',[-0.01,0.01]) + x = x + width[0] + width = abs(width[0]-width[1]) + height = value.get('z_range',[-0.01,0.01]) + z = z + height[0] + height = abs(height[0]-height[1]) + rect = patches.Rectangle((x, z), width = width, height= height, linewidth=1, edgecolor='r', facecolor='none') + plt.gca().add_patch(rect) + plt.show() + + +if __name__ == '__main__': + gen = TwoLinkGenerator() + graph, constrain_dict = gen.get_standard_set()[0] + space = get_constrain_space(constrain_dict) + random_vector = np.zeros(len(space)) + for j, r in enumerate(space): + random_vector[j] = np.random.uniform(low=r[0], high=r[1]) + + get_changed_graph(graph, constrain_dict, random_vector) + draw_joint_point(graph) diff --git a/jmoves/auto_robot_design/generator/restricted_generator/utilities.py b/jmoves/auto_robot_design/generator/restricted_generator/utilities.py new file mode 100644 index 00000000..63c90c38 --- /dev/null +++ b/jmoves/auto_robot_design/generator/restricted_generator/utilities.py @@ -0,0 +1,22 @@ +import numpy as np + +def set_circle_points(pos_1, pos_2, add_pos, n): + center = (pos_1+pos_2)/2 + vec = pos_1-center + if np.linalg.norm(add_pos-center) > np.linalg.norm(pos_1-center): + pos_turn = center + np.array([vec[0]*np.cos(np.pi/n)-vec[2]*np.sin( + np.pi/n), 0, vec[2]*np.cos(np.pi/n)+vec[0]*np.sin(np.pi/n)]) + neg_turn = center + np.array([vec[0]*np.cos(-np.pi/n)-vec[2]*np.sin(-np.pi/n), + 0, vec[2]*np.cos(-np.pi/n)+vec[0]*np.sin(-np.pi/n)]) + new_pos_list = [] + crit = int((-0.5+int(np.linalg.norm(pos_turn-add_pos) + < np.linalg.norm(neg_turn-add_pos)))*2) + for i in range(crit*1, crit * n, crit): + angle = i*np.pi/n + new_pos_list.append(center + np.array([vec[0]*np.cos(angle)-vec[2]*np.sin( + angle), 0, vec[2]*np.cos(angle)+vec[0]*np.sin(angle)])) + else: + new_pos_list = [] + for i in range(1, n): + new_pos_list.append(pos_1 + (pos_2-pos_1)/n*i) + return new_pos_list \ No newline at end of file diff --git a/jmoves/auto_robot_design/generator/topologies/bounds_preset.py b/jmoves/auto_robot_design/generator/topologies/bounds_preset.py new file mode 100644 index 00000000..f464b487 --- /dev/null +++ b/jmoves/auto_robot_design/generator/topologies/bounds_preset.py @@ -0,0 +1,200 @@ +from auto_robot_design.generator.topologies.graph_manager_2l import GraphManager2L + + +def set_preset_bounds(graph_manager, bounds): + """ + Set preset bounds for the joint points in the graph manager. + + Args: + graph_manager (GraphManager): The graph manager object. + bounds (dict): A dictionary containing the bounds for each generator info. + The keys are the names of the generators, and the values are tuples + representing the lower and upper bounds for each generator. + + Returns: + None + """ + nam2jp = {jp.name: jp for jp in graph_manager.generator_dict.keys()} + + for name, (init_coord, range) in bounds.items(): + jp = nam2jp[name] + graph_manager.generator_dict[jp].mutation_range = range + if init_coord != "Skip": + graph_manager.generator_dict[jp].initial_coordinate = init_coord + +bounds_3n2p_02 = { + "Ground_connection": ([0,0,0.001], [(-0.2, 0.0), None, (-0.03, 0.07)]), + "Main_knee": ("Skip", [None, None, (-0.1, 0.1)]), + "Main_connection_2": (None, [(-0.2, 0.2), None, (-0.3, 0.6)]), + "branch_1": (None, [(-0.05, 0.1), None, (-0.3, -0.1)]) +} +bounds_3n2p_12 = { + "Main_knee": ("Skip", [None, None, (-0.1, 0.1)]), + "Main_connection_1": (None, [(-0.2, 0.2), None, (-0.6, 0.4)]), + "Main_connection_2": (None, [(-0.2, 0.2), None, (-0.3, 0.6)]), + "branch_1": (None, [(-0.05, 0.15), None, (-0.1, 0.1)]) +} + +bounds_6n4p_s_012 = { + "Ground_connection": ([0,0,0.001], [(-0.2, 0.0), None, (-0.03, 0.1)]), + "Main_knee": ("Skip", [None, None, (-0.1, 0.1)]), + "Main_connection_1": (None, [(-0.2, 0.2), None, (-0.6, 0.4)]), + "Main_connection_2": (None, [(-0.2, 0.2), None, (-0.3, 0.6)]), + "branch_0": (None, [(-0.1, 0.05), None, (-0.25, -0.01)]), + "branch_1": (None, [(-0.1, -0.02), None, (-0.1, 0.1)]), + "branch_2": (None, [(-0.1, -0.02), None, (0.05, 0.15)]) +} +bounds_6n4p_a_012 = { + "Ground_connection": ([0,0,0.001], [(-0.2, 0.0), None, (-0.03, 0.1)]), + "Main_knee": ("Skip", [None, None, (-0.1, 0.1)]), + "Main_connection_1": (None, [(-0.2, 0.2), None, (-0.6, 0.4)]), + "Main_connection_2": (None, [(-0.2, 0.2), None, (-0.3, 0.6)]), + "branch_0": (None, [(-0.1, 0.05), None, (-0.15, -0.01)]), + "branch_1": (None, [(-0.1, -0.02), None, (-0.15, 0.05)]), + "branch_2": (None, [(-0.15, -0.02), None, (0.05, 0.15)]) +} +bounds_6n4p_a_120 = { + "Ground_connection": ([0,0,0.001], [(-0.2, 0.0), None, (-0.03, 0.1)]), + "Main_knee": ("Skip", [None, None, (-0.1, 0.1)]), + "Main_connection_1": (None, [(-0.2, 0.2), None, (-0.6, 0.4)]), + "Main_connection_2": (None, [(-0.2, 0.2), None, (-0.3, 0.6)]), + "branch_2": (None, [(-0.1, 0.05), None, (-0.15, -0.01)]), + "branch_0": (None, [(-0.1, -0.02), None, (-0.15, 0.0)]), + "branch_1": (None, [(-0.15, -0.02), None, (0.05, 0.15)]) +} +bounds_6n4p_a_102 = { + "Ground_connection": ([0,0,0.001], [(-0.2, 0.0), None, (-0.03, 0.1)]), + "Main_knee": ("Skip", [None, None, (-0.1, 0.1)]), + "Main_connection_1": (None, [(-0.2, 0.2), None, (-0.6, 0.4)]), + "Main_connection_2": (None, [(-0.2, 0.2), None, (-0.3, 0.6)]), + "branch_1": (None, [(-0.1, 0.05), None, (-0.25, -0.01)]), + "branch_0": (None, [(-0.1, -0.02), None, (-0.1, 0.1)]), + "branch_2": (None, [(-0.1, -0.02), None, (0.05, 0.15)]) +} +bounds_6n4p_a_210 = { + "Ground_connection": ([0,0,0.001], [(-0.2, 0.0), None, (-0.03, 0.1)]), + "Main_knee": ("Skip", [None, None, (-0.1, 0.1)]), + "Main_connection_1": (None, [(-0.2, 0.2), None, (-0.6, 0.4)]), + "Main_connection_2": (None, [(-0.2, 0.2), None, (-0.3, 0.6)]), + "branch_2": (None, [(-0.1, 0.05), None, (-0.15, 0.05)]), + "branch_1": (None, [(-0.1, -0.02), None, (-0.1, 0.1)]), + "branch_0": (None, [(-0.15, -0.02), None, (0.08, 0.2)]) +} +bounds_6n4p_a_201 = { + "Ground_connection": ([0,0,0.001], [(-0.2, 0.0), None, (-0.03, 0.1)]), + "Main_knee": ("Skip", [None, None, (-0.1, 0.1)]), + "Main_connection_1": (None, [(-0.2, 0.2), None, (-0.6, 0.4)]), + "Main_connection_2": (None, [(-0.2, 0.2), None, (-0.3, 0.6)]), + "branch_1": (None, [(-0.1, 0.05), None, (-0.15, 0.05)]), + "branch_2": (None, [(-0.1, -0.02), None, (-0.1, 0.1)]), + "branch_0": (None, [(-0.15, -0.02), None, (0.08, 0.2)]) +} + +bounds_preset_6n4p_a_021 = { + "Ground_connection": ([0,0,0.001], [(-0.2, 0.0), None, (-0.03, 0.1)]), + "Main_knee": ("Skip", [None, None, (-0.1, 0.1)]), + "Main_connection_1": (None, [(-0.2, 0.2), None, (-0.6, 0.4)]), + "Main_connection_2": (None, [(-0.2, 0.2), None, (-0.3, 0.6)]), + "branch_0": (None, [(-0.1, 0.05), None, (-0.2, -0.05)]), + "branch_2": (None, [(-0.1, -0.02), None, (-0.1, 0.1)]), + "branch_1": (None, [(-0.15, -0.02), None, (0.08, 0.2)]) +} + +def get_preset_by_index_with_bounds(idx: int): + if idx == -1: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4, fully_actuated=True) + gm.set_mutation_ranges() + return gm + + if idx == 0: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4) + gm.build_3n2p_branch([0, 2]) + set_preset_bounds(gm, bounds_3n2p_02) + gm.set_mutation_ranges() + return gm + + if idx == 1: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4) + gm.build_3n2p_branch([1, 2]) + set_preset_bounds(gm, bounds_3n2p_12) + gm.set_mutation_ranges() + return gm + + if idx == 2: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_symmetric([0, 1, 2]) + set_preset_bounds(gm, bounds_6n4p_s_012) + gm.set_mutation_ranges() + return gm + + if idx == 3: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([0, 1, 2]) + set_preset_bounds(gm, bounds_6n4p_a_012) + gm.set_mutation_ranges() + return gm + + if idx == 4: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([0, 2, 1]) + set_preset_bounds(gm, bounds_preset_6n4p_a_021) + gm.set_mutation_ranges() + return gm + + if idx == 5: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([1, 0, 2]) + set_preset_bounds(gm, bounds_6n4p_a_102) + gm.set_mutation_ranges() + return gm + + if idx == 6: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([1, 2, 0]) + set_preset_bounds(gm, bounds_6n4p_a_120) + gm.set_mutation_ranges() + return gm + + if idx == 7: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([2, 0, 1]) + set_preset_bounds(gm, bounds_6n4p_a_201) + gm.set_mutation_ranges() + return gm + + if idx == 8: + gm = GraphManager2L() + gm.name =f"topology_{idx}" + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([2, 1, 0]) + set_preset_bounds(gm, bounds_6n4p_a_210) + gm.set_mutation_ranges() + return gm diff --git a/jmoves/auto_robot_design/generator/topologies/graph_manager_2l.py b/jmoves/auto_robot_design/generator/topologies/graph_manager_2l.py new file mode 100644 index 00000000..e64ee934 --- /dev/null +++ b/jmoves/auto_robot_design/generator/topologies/graph_manager_2l.py @@ -0,0 +1,713 @@ +"""This module contains the class for the five bar mechanism topology manager.""" +from dataclasses import dataclass, field +from enum import Enum +from typing import List, Optional, Tuple, Union +import networkx as nx +import numpy as np +import numpy.linalg as la +import matplotlib.pyplot as plt +from auto_robot_design.description.kinematics import JointPoint +from auto_robot_design.description.builder import add_branch + + +class MutationType(Enum): + """Enumerate for mutation types.""" + #UNMOVABLE = 0 # Unmovable joint that is not used for optimization + ABSOLUTE = 1 # The movement of the joint are in the absolute coordinate system and are relative to the initial position + RELATIVE = 2 # The movement of the joint are relative to some other joint or joints and doesn't have an initial position + # The movement of the joint are relative to some other joint or joints and doesn't have an initial position. The movement is in percentage of the distance between the joints. + RELATIVE_PERCENTAGE = 3 + + +@dataclass +class GeneratorInfo: + """Information for node of a generator.""" + mutation_type: int = MutationType.ABSOLUTE + initial_coordinate: np.ndarray = np.zeros(3) + mutation_range: List[Optional[Tuple]] = field( + default_factory=lambda: [None, None, None]) + relative_to: Optional[Union[JointPoint, List[JointPoint]]] = None + freeze_pos: List[Optional[Tuple]] = field( + default_factory=lambda: [None, 0, None]) + + +@dataclass +class ConnectionInfo: + """Description of a point for branch connection.""" + connection_jp: JointPoint + jp_connection_to_main: List[JointPoint] + relative_mutation_range: List[Optional[Tuple]] # this parameter is used to set the mutation range of the branch joints + + +class GraphManager2L(): + def __init__(self) -> None: + self.graph = nx.Graph() + self.generator_dict = {} + self.current_main_branch = [] + self.main_connections: List[ConnectionInfo] = [] + self.mutation_ranges = {} + self.name = "Default" + + def reset(self): + """Reset the graph builder.""" + self.generator_dict = {} + self.current_main_branch = [] + self.graph = nx.Graph() + self.mutation_ranges = {} + + def get_node_by_name(self, name:str): + for node in self.graph.nodes: + if node.name == name: + return node + return None + + def build_main(self, length: float, fully_actuated: bool = False): + """Builds the main branch and create nodes for the connections. + + Args: + length (float): length of the main branch that we use as a reference for all sizes. + """ + ground_joint = JointPoint( + r=None, + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name="Main_ground" + ) + self.current_main_branch.append(ground_joint) + self.generator_dict[ground_joint] = GeneratorInfo(freeze_pos=[0, 0, 0]) + + ground_connection_jp = JointPoint( + r=None, + w=np.array([0, 1, 0]), + attach_ground=True, + active=False, # initial value is false, it should be changed in branch attachment process + name="Ground_connection" + ) + + self.generator_dict[ground_connection_jp] = GeneratorInfo(mutation_type= MutationType.ABSOLUTE, initial_coordinate=np.array( + [0, 0, 0.001]), mutation_range=[(-0.2, 0.), None, (-0.03, 0.07)]) + + ground_connection_description = ConnectionInfo( + ground_connection_jp, [], [(-0.05, 0.1), None, (-0.3, -0.1)]) + self.main_connections.append(ground_connection_description) + + knee_joint_pos = np.array([0.03, 0, -length/2]) + knee_joint = JointPoint( + r=None, w=np.array([0, 1, 0]), active=fully_actuated, name="Main_knee") + self.current_main_branch.append(knee_joint) + + self.generator_dict[knee_joint] = GeneratorInfo( + MutationType.ABSOLUTE, initial_coordinate=knee_joint_pos.copy(), mutation_range=[None, None, (-0.1, 0.1)],freeze_pos=[0.03,0,None]) + + first_connection = JointPoint(r=None, w=np.array([ + 0, 1, 0]), name="Main_connection_1") + # self.generator_dict[first_connection] = GeneratorInfo(MutationType.RELATIVE, None, mutation_range=[ + # (-0.05, 0.05), None, (-0.15, 0.15)], relative_to=[ground_joint, knee_joint]) + self.generator_dict[first_connection] = GeneratorInfo(MutationType.RELATIVE_PERCENTAGE, None, mutation_range=[ + (-0.2, 0.2), None, (-0.6, 0.3)], relative_to=[ground_joint, knee_joint]) + first_connection_description = ConnectionInfo( + first_connection, [ground_joint, knee_joint], [(-0.1, 0.0), None, (-0.1, 0.1)]) + self.main_connections.append(first_connection_description) + + ee = JointPoint( + r=None, + w=np.array([0, 1, 0]), + attach_endeffector=True, + name="Main_ee" + ) + self.current_main_branch.append(ee) + self.generator_dict[ee] = GeneratorInfo( + initial_coordinate=np.array([0, 0, -length]), freeze_pos=[0,0,-length]) + + second_connection = JointPoint(r=None, w=np.array([0, 1, 0]), name="Main_connection_2") + # self.generator_dict[second_connection] = GeneratorInfo(MutationType.RELATIVE, None, mutation_range=[ + # (-0.05, 0.05), None, (-0.15, 0.15)], relative_to=[knee_joint, ee]) + self.generator_dict[second_connection] = GeneratorInfo(MutationType.RELATIVE_PERCENTAGE, None, mutation_range=[(-0.2, 0.2), None, (-0.6, 0.3)], relative_to=[knee_joint, ee]) + second_connection_description = ConnectionInfo( + second_connection, [knee_joint, ee], [(-0.1, 0), None, (0, 0.1)]) + self.main_connections.append(second_connection_description) + + add_branch(self.graph, self.current_main_branch) + + def build_3n2p_branch(self, connection_list: List[int]): + """Generate a trivial branch that only have one node. + + Args: + connection_list (List[int]): List of connection point indexes that we want to connect the branch to. + """ + branch_joint = JointPoint( + r=None, + w=np.array([0, 1, 0]), + name="branch_1" + ) + self.generator_dict[branch_joint] = GeneratorInfo(MutationType.RELATIVE, None, + mutation_range=self.main_connections[ + connection_list[0]].relative_mutation_range, + relative_to=self.main_connections[connection_list[0]].connection_jp) + + for connection in connection_list: + connection_description = self.main_connections[connection] + jp = connection_description.connection_jp + jp_connection_to_main = connection_description.jp_connection_to_main + if len(jp_connection_to_main) == 0: + # if the connection_description is empty, it means that the connection is directly to the ground + self.graph.add_edge(jp, branch_joint) + + else: + self.graph.add_edge(jp, branch_joint) + for cd in jp_connection_to_main: + self.graph.add_edge(cd, jp) + + if connection == min(connection_list): + jp.active = True + + def build_6n4p_symmetric(self, connection_list: List[int]): + branch_jp_counter = 0 + branch_joints = [] + for connection in connection_list: + connection_description = self.main_connections[connection] + jp = connection_description.connection_jp + jp_connection_to_main = connection_description.jp_connection_to_main + branch_jp = JointPoint( + r=None, + w=np.array([0, 1, 0]), + name=f"branch_{branch_jp_counter}" + ) + branch_joints.append(branch_jp) + branch_jp_counter += 1 + self.generator_dict[branch_jp] = GeneratorInfo(MutationType.RELATIVE, None, + mutation_range=self.main_connections[ + connection].relative_mutation_range, + relative_to=self.main_connections[connection].connection_jp) + if len(jp_connection_to_main) == 0: + self.graph.add_edge(jp, branch_jp) + jp.active = True + + elif len(jp_connection_to_main) == 2: + self.graph.add_edge(jp, branch_jp) + for cd in jp_connection_to_main: + self.graph.add_edge(cd, jp) + + self.graph.add_edge(branch_joints[0], branch_joints[1]) + self.graph.add_edge(branch_joints[1], branch_joints[2]) + self.graph.add_edge(branch_joints[2], branch_joints[0]) + + def build_6n4p_asymmetric(self, connection_list: float): + """Connects the 4l asymmetric branch to the main branch + + Args: + connection_list (float): list of connecting points indexes for branch connection to main. Linkage chain of the largest length between the first and the third indices + """ + if connection_list[0]+connection_list[1] == 1: + branch_1_active = True + else: + branch_1_active = False + + connection_description = self.main_connections[connection_list[0]] + jp = connection_description.connection_jp + jp_connection_to_main = connection_description.jp_connection_to_main + branch_jp_0 = JointPoint( + r=None, + w=np.array([0, 1, 0]), + name="branch_0" + ) + self.generator_dict[branch_jp_0] = GeneratorInfo(MutationType.RELATIVE, None, + mutation_range=connection_description.relative_mutation_range, + relative_to=jp) + if len(jp_connection_to_main) == 0: + self.graph.add_edge(jp, branch_jp_0) + jp.active = not branch_1_active + else: + self.graph.add_edge(jp, branch_jp_0) + for cd in jp_connection_to_main: + self.graph.add_edge(cd, jp) + + connection_description = self.main_connections[connection_list[1]] + jp = connection_description.connection_jp + jp_connection_to_main = connection_description.jp_connection_to_main + + branch_jp_1 = JointPoint( + r=None, + w=np.array([0, 1, 0]), + name="branch_1" + ) + branch_jp_1.active = branch_1_active + self.generator_dict[branch_jp_1] = GeneratorInfo(MutationType.RELATIVE, None, + mutation_range=connection_description.relative_mutation_range, + relative_to=jp) + if len(jp_connection_to_main) == 0: + self.graph.add_edge(jp, branch_jp_1) + jp.active = not branch_1_active + else: + self.graph.add_edge(jp, branch_jp_1) + for cd in jp_connection_to_main: + self.graph.add_edge(cd, jp) + self.graph.add_edge(branch_jp_0, branch_jp_1) + self.graph.add_edge(branch_jp_0, jp) + connection_description = self.main_connections[connection_list[2]] + jp = connection_description.connection_jp + jp_connection_to_main = connection_description.jp_connection_to_main + branch_jp_2 = JointPoint( + r=None, + w=np.array([0, 1, 0]), + name="branch_2" + ) + self.generator_dict[branch_jp_2] = GeneratorInfo(MutationType.RELATIVE, None, + mutation_range=connection_description.relative_mutation_range, + relative_to=jp) + if len(jp_connection_to_main) == 0: + self.graph.add_edge(jp, branch_jp_2) + if not branch_1_active: + jp.active = True + else: + self.graph.add_edge(jp, branch_jp_2) + for cd in jp_connection_to_main: + self.graph.add_edge(cd, jp) + self.graph.add_edge(branch_jp_2, branch_jp_1) + + def freeze_joint(self, joint: JointPoint, freeze_pos: List[Optional[Tuple]]): + """Freeze the position of the joint. + + Args: + joint (JointPoint): the joint to be frozen. + freeze_pos (List[Optional[Tuple]]): the position to be frozen. + """ + self.generator_dict[joint].freeze_pos = freeze_pos + + def set_mutation_ranges(self): + """Traverse the generator_dict to get all mutable parameters and their ranges. + """ + self.mutation_ranges = {} + # remove all auxiliary joint points from generator_dict + keys = list(self.generator_dict) + for key in keys: + if key not in self.graph.nodes: + del self.generator_dict[key] + axes = ['x', 'y','z'] + for idx, pare in enumerate(self.generator_dict.items()): + key, value = pare + if value.mutation_type == MutationType.RELATIVE or value.mutation_type == MutationType.RELATIVE_PERCENTAGE: + for i, r in enumerate(value.mutation_range): + if r is not None and value.freeze_pos[i] is None: + self.mutation_ranges[(key, axes[i])] = r + + elif value.mutation_type == MutationType.ABSOLUTE: + for i, r in enumerate(value.mutation_range): + if r is not None and value.freeze_pos[i] is None: + self.mutation_ranges[(key, axes[i])] = ( + r[0]+value.initial_coordinate[i], r[1]+value.initial_coordinate[i]) + + def generate_random_from_mutation_range(self): + """Sample random values from the mutation ranges. + + Returns: + List[float]: a vector of parameters that are sampled from the mutation ranges. + """ + result = [] + for _, value in self.mutation_ranges.items(): + result.append(np.random.uniform(value[0], value[1])) + return result + + def generate_central_from_mutation_range(self): + """Return values from center of the mutation ranges. + + Returns: + List[float]: a vector of parameters that are centered on the mutation ranges. + """ + result = [] + for _, value in self.mutation_ranges.items(): + result.append((value[0]+value[1])/2) + return result + + def get_graph(self, parameters: List[float]): + """Produce a graph of the set topology from the given parameters. + + Args: + parameters List[float]: list of mutations. + + Raises: + Exception: raise an exception if the number of parameters is not equal to the number of mutation ranges. + + Returns: + nx.Graph: the graph of a mechanism with the given parameters. + """ + if len(parameters) != len(list(self.mutation_ranges.keys())): + raise ValueError( + 'Wrong number of parameters for graph specification!') + + parameter_counter = 0 + for jp, gi in self.generator_dict.items(): + if jp.r is None: + jp.r = np.full(3, np.nan) + + if gi.mutation_type == MutationType.ABSOLUTE: + for i, r in enumerate(gi.mutation_range): + if gi.freeze_pos[i] is not None: + jp.r[i] = gi.freeze_pos[i] + elif r is not None: + jp.r[i] = parameters[parameter_counter] + parameter_counter += 1 + elif gi.initial_coordinate[i] is not None: + jp.r[i] = gi.initial_coordinate[i] + else: + raise ValueError(f"Failed to assign value for Joint Point {jp.name} coordinate {i}") + + elif gi.mutation_type == MutationType.RELATIVE: + if isinstance(gi.relative_to, list) and len(gi.relative_to) == 2: + jp.r = (gi.relative_to[0].r + gi.relative_to[1].r)/2 + + for i, r in enumerate(gi.mutation_range): + if gi.freeze_pos[i] is not None: + parameter = gi.freeze_pos[i] + elif r is not None: + parameter =parameters[parameter_counter] + parameter_counter += 1 + else: + raise ValueError(f"Failed to assign value for Joint Point {jp.name} coordinate {i}") + + if isinstance(gi.relative_to, JointPoint): + # if relative point is relative to a single joint we just add parameter to the coordinate of this joint + jp.r[i] = gi.relative_to.r[i] + parameter + else: + if len(gi.relative_to) == 2: + # TODO: this part would fail in 3D case + # if relative point is relative to two joints we calculate the direction of the link between these joints + # and use its direction as z axis and the orthogonal direction as the x axis. Then we add the parameter to the center of the link. + link_direction = gi.relative_to[0].r - \ + gi.relative_to[1].r + link_ortogonal = np.array( + [-link_direction[2], link_direction[1], link_direction[0]]) + link_length = np.linalg.norm(link_direction) + if i == 0: + jp.r += parameter * link_ortogonal/link_length + if i == 2: + jp.r += parameter * link_direction/link_length + # jp.r += parameters[parameter_counter]*link_direction/link_length + # jp.r += parameters[parameter_counter]*np.array([-link_direction[2],link_direction[1],link_direction[0]])/link_length + + elif gi.mutation_type == MutationType.RELATIVE_PERCENTAGE: + if isinstance(gi.relative_to, list) and len(gi.relative_to) == 2: + jp.r = (gi.relative_to[0].r + gi.relative_to[1].r)/2 + + for i, r in enumerate(gi.mutation_range): + if gi.freeze_pos[i] is not None: + parameter = gi.freeze_pos[i] + elif r is not None: + parameter =parameters[parameter_counter] + parameter_counter += 1 + else: + raise ValueError(f"Failed to assign value for Joint Point {jp.name} coordinate {i}") + + if isinstance(gi.relative_to, JointPoint): + raise ValueError( + 'Relative percentage mutation type should have a list of joints as relative_to') + else: + #TODO: this part would fail in 3D case + if len(gi.relative_to) == 2: + link_direction = gi.relative_to[0].r - \ + gi.relative_to[1].r + link_ortogonal = np.array( + [link_direction[2], link_direction[1], -link_direction[0]]) + link_length = np.linalg.norm(link_direction) + if i == 0: + jp.r += parameter * link_ortogonal + if i == 2: + jp.r += parameter * link_direction + + return self.graph + +from matplotlib import patches +def plot_one_jp_bounds(graph_manager, jp): + jp = graph_manager.get_node_by_name(jp) + info:GeneratorInfo = graph_manager.generator_dict[jp] + if info.mutation_type == MutationType.ABSOLUTE: + if graph_manager.mutation_ranges.get((jp, 'x')) is None: + x_range = (info.freeze_pos[0]-0.001, info.freeze_pos[0]+0.001) + elif graph_manager.mutation_ranges[(jp, 'x')][0] == graph_manager.mutation_ranges[(jp, 'x')][1]: + x_range = (graph_manager.mutation_ranges[(jp, 'x')][0]-0.01, graph_manager.mutation_ranges[(jp, 'x')][1]+0.01) + else: + x_range = graph_manager.mutation_ranges[(jp, 'x')] + if graph_manager.mutation_ranges.get((jp, 'z')) is None: + z_range = (info.freeze_pos[2]-0.001, info.freeze_pos[2]+0.001) + elif graph_manager.mutation_ranges[(jp, 'z')][0] == graph_manager.mutation_ranges[(jp, 'z')][1]: + z_range = (graph_manager.mutation_ranges[(jp, 'z')][0]-0.01, graph_manager.mutation_ranges[(jp, 'z')][1]+0.01) + else: + z_range = graph_manager.mutation_ranges[(jp, 'z')] + + rect = patches.Rectangle( + (x_range[0], z_range[0]), + width=x_range[1]-x_range[0], + height=z_range[1]-z_range[0], + angle=0, + linewidth=1, + edgecolor='r', + facecolor="none", + ) + plt.gca().add_patch(rect) + + if info.mutation_type == MutationType.RELATIVE: + if graph_manager.mutation_ranges.get((jp, 'x')) is None: + x_range = (info.freeze_pos[0]-0.001+info.relative_to.r[0], info.freeze_pos[0]+0.001+info.relative_to.r[0]) + elif graph_manager.mutation_ranges[(jp, 'x')][0] == graph_manager.mutation_ranges[(jp, 'x')][1]: + x_range = (graph_manager.mutation_ranges[(jp, 'x')][0]-0.001+info.relative_to.r[0], graph_manager.mutation_ranges[(jp, 'x')][0]+0.001+info.relative_to.r[0]) + else: + x_range = (graph_manager.mutation_ranges[(jp, 'x')][0]+info.relative_to.r[0], info.relative_to.r[0]+graph_manager.mutation_ranges[(jp, 'x')][1]) + if graph_manager.mutation_ranges.get((jp, 'z')) is None: + z_range = (info.freeze_pos[2]-0.001+ info.relative_to.r[2], info.freeze_pos[2]+0.001+ info.relative_to.r[2]) + elif graph_manager.mutation_ranges[(jp, 'z')][0] == graph_manager.mutation_ranges[(jp, 'z')][1]: + z_range = (graph_manager.mutation_ranges[(jp, 'z')][0]-0.001+ info.relative_to.r[2], graph_manager.mutation_ranges[(jp, 'z')][1]+0.001+ info.relative_to.r[2]) + else: + z_range = (graph_manager.mutation_ranges[(jp, 'z')][0]+ info.relative_to.r[2], info.relative_to.r[2]+graph_manager.mutation_ranges[(jp, 'z')][1]) + + rect = patches.Rectangle( + (x_range[0], z_range[0]), + width=x_range[1]-x_range[0], + height=z_range[1]-z_range[0], + angle=0, + linewidth=1, + edgecolor='b', + facecolor="none", + ) + plt.gca().add_patch(rect) + + if info.mutation_type == MutationType.RELATIVE_PERCENTAGE: + link_vector = info.relative_to[0].r-info.relative_to[1].r + link_length = np.linalg.norm(link_vector) + link_cener = (info.relative_to[1].r+info.relative_to[0].r)/2 + if graph_manager.mutation_ranges.get((jp, 'x')) is None: + x_range = (info.freeze_pos[0] * link_length -0.001+link_cener[0], info.freeze_pos[0]*link_length+0.001+link_cener[0]) + elif graph_manager.mutation_ranges[(jp, 'x')][0] == graph_manager.mutation_ranges[(jp, 'x')][1]: + x_range = (graph_manager.mutation_ranges[(jp, 'x')][0]* link_length-0.001+link_cener[0], graph_manager.mutation_ranges[(jp, 'x')][0]* link_length+0.001+link_cener[0]) + else: + x_range = (graph_manager.mutation_ranges[(jp, 'x')][0]* link_length+link_cener[0], link_cener[0]+graph_manager.mutation_ranges[(jp, 'x')][1]* link_length) + if graph_manager.mutation_ranges.get((jp, 'z')) is None: + z_range = (info.freeze_pos[2]* link_length-0.001+link_cener[2], info.freeze_pos[2]* link_length+0.001+link_cener[2]) + elif graph_manager.mutation_ranges[(jp, 'z')][0] == graph_manager.mutation_ranges[(jp, 'z')][1]: + z_range = (graph_manager.mutation_ranges[(jp, 'z')][0]* link_length-0.001+link_cener[2], graph_manager.mutation_ranges[(jp, 'z')][0]* link_length+0.001+link_cener[2]) + else: + z_range = (graph_manager.mutation_ranges[(jp, 'z')][0]* link_length+link_cener[2], link_cener[2]+graph_manager.mutation_ranges[(jp, 'z')][1]* link_length) + + u = np.array([0, 0, 1]) + v = link_vector/link_length + angle_rad = np.arctan2(u[0]*v[2] - u[2]*v[0], np.dot(u, v)) # atan2(det, dot) + angle_deg = np.degrees(angle_rad) + # angle = np.arccos(np.inner(link_vector, np.array([0, 0, 1]))/link_length) + rect = patches.Rectangle( + (x_range[0], z_range[0]), + width=x_range[1]-x_range[0], + height=z_range[1]-z_range[0], + angle=angle_deg, + rotation_point = (link_cener[0], link_cener[2]), + linewidth=1, + edgecolor='g', + facecolor="none", + ) + plt.gca().add_patch(rect) + +def plot_2d_bounds(graph_manager): + """ + Plot 2D bounds for each joint points in the graph manager. Different colors are used for different types of mutations. + Absolute mutations are red, relative mutations are blue, and relative percentage mutations are green. + + Args: + graph_manager (GraphManager): The graph manager object containing generator information. + + Returns: + None + """ + for jp, gen_info in graph_manager.generator_dict.items(): + # if gen_info.mutation_type == MutationType.UNMOVABLE: + # continue + ez = np.array([1, 0, 0]) + x_bound = (-0.001, + 0.001) if gen_info.mutation_range[0] is None else gen_info.mutation_range[0] + z_bound = (-0.001, + 0.001) if gen_info.mutation_range[2] is None else gen_info.mutation_range[2] + bound = np.array([x_bound, z_bound]) + + if gen_info.mutation_type == MutationType.ABSOLUTE: + pos_initial = np.array( + [gen_info.initial_coordinate[0], gen_info.initial_coordinate[2]]) + xz_rect_start = pos_initial + bound[:, 0] + wh_rect = bound[:, 1] - bound[:, 0] + angle = 0 + rot_point = np.zeros(2) + color = "r" + + elif gen_info.mutation_type == MutationType.RELATIVE: + + if isinstance(gen_info.relative_to, JointPoint): + rel_jp_xz = np.array( + [gen_info.relative_to.r[0], gen_info.relative_to.r[2]]) + xz_rect_start = rel_jp_xz + bound[:, 0] + wh_rect = bound[:, 1] - bound[:, 0] + angle = 0 + rot_point = np.zeros(2) + else: + if len(gen_info.relative_to) == 2: + xz_rect_start = ( + gen_info.relative_to[0].r + gen_info.relative_to[1].r)/2 + link_direction = gen_info.relative_to[0].r - \ + gen_info.relative_to[1].r + link_ortogonal = np.array( + [-link_direction[2], link_direction[1], link_direction[0]]) + link_length = np.linalg.norm(link_direction) + angle = np.arccos(np.inner(ez, link_ortogonal/link_length) / + la.norm(link_ortogonal/link_length) / + la.norm(ez)) + + xz_rect_start[0] += (np.array([bound[0, 0], 0, 0]) * + link_ortogonal/link_length)[0] + + xz_rect_start[1] += (np.array([0, 0, bound[1, 0]]) * + link_direction/link_length)[2] + + wh_rect = bound[:, 1] - bound[:, 0] + rot_point = ( + gen_info.relative_to[1].r + gen_info.relative_to[0].r)/2 + color = "b" + + elif gen_info.mutation_type == MutationType.RELATIVE_PERCENTAGE: + + if len(gen_info.relative_to) == 2: + xz_rect_start = ( + gen_info.relative_to[1].r + gen_info.relative_to[0].r)[[0, 2]]/2 + + link_direction = gen_info.relative_to[0].r - \ + gen_info.relative_to[1].r + link_ortogonal = np.array( + [-link_direction[2], link_direction[1], link_direction[0]]) + link_length = np.linalg.norm(link_direction) + angle = np.arccos(np.inner(ez, link_ortogonal/link_length) / + la.norm(link_ortogonal/link_length) / + la.norm(ez)) + + bound = bound * link_length + + if np.isclose(abs(angle), np.pi): + angle = 0 + + # rot = R.from_rotvec(axis * angle) + + # start_rect_pos = rot.as_matrix() @ np.array([bound[0,0], 0, bound[1,0]]) + + xz_rect_start[0] += bound[0, 0] # start_rect_pos[0] + xz_rect_start[1] += bound[1, 0] # start_rect_pos[2] + + wh_rect = np.abs(bound[:, 1] - bound[:, 0]) + rot_point = ( + gen_info.relative_to[1].r + gen_info.relative_to[0].r)[[0, 2]]/2 + color = "g" + + rect = patches.Rectangle( + (xz_rect_start[0], xz_rect_start[1]), + width=wh_rect[0], + height=wh_rect[1], + angle=-np.rad2deg(angle), + rotation_point=(rot_point[0], rot_point[1]), + linewidth=1, + edgecolor=color, + facecolor="none", + ) + plt.gca().add_patch(rect) + + +def get_preset_by_index(idx: int): + if idx == -1: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4, fully_actuated=True) + gm.set_mutation_ranges() + return gm + + if idx == 0: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4) + gm.build_3n2p_branch([0, 2]) + gm.set_mutation_ranges() + return gm + + if idx == 1: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4) + gm.build_3n2p_branch([1, 2]) + gm.set_mutation_ranges() + return gm + + if idx == 2: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_symmetric([0, 1, 2]) + gm.set_mutation_ranges() + return gm + + if idx == 3: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([0, 1, 2]) + gm.set_mutation_ranges() + return gm + + if idx == 4: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([0, 2, 1]) + gm.set_mutation_ranges() + return gm + + if idx == 5: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([1, 0, 2]) + gm.set_mutation_ranges() + return gm + + if idx == 6: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([1, 2, 0]) + gm.set_mutation_ranges() + return gm + + if idx == 7: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([2, 0, 1]) + gm.set_mutation_ranges() + return gm + + if idx == 8: + gm = GraphManager2L() + gm.reset() + gm.build_main(0.4) + gm.build_6n4p_asymmetric([2, 1, 0]) + gm.set_mutation_ranges() + return gm + +def scale_jp_graph(graph, scale): + for jp in graph.nodes: + jp.r = jp.r*scale + return graph + +def scale_graph_manager(graph_manager, scale): + for jp in graph_manager.graph.nodes: + generator_info:GeneratorInfo = graph_manager.generator_dict[jp] + if generator_info.initial_coordinate is not None: + generator_info.initial_coordinate = np.array(generator_info.initial_coordinate)*scale + if generator_info.mutation_type != MutationType.RELATIVE_PERCENTAGE: + for i, r in enumerate(generator_info.mutation_range): + if r is not None: + generator_info.mutation_range[i] = (r[0]*scale, r[1]*scale) + for i, r in enumerate(generator_info.freeze_pos): + if r is not None: + generator_info.freeze_pos[i] = r*scale + return graph_manager \ No newline at end of file diff --git a/jmoves/auto_robot_design/generator/user_generator/first_connection_three.png b/jmoves/auto_robot_design/generator/user_generator/first_connection_three.png new file mode 100644 index 0000000000000000000000000000000000000000..fc0636ef886a09544708f56bed84926f3bb8c0af GIT binary patch literal 23667 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 psG|OJ!2ecK{r}{ZNTw}6#qgs6rA1g(&F+ literal 0 HcmV?d00001 diff --git a/jmoves/auto_robot_design/generator/user_generator/graph_generator.py b/jmoves/auto_robot_design/generator/user_generator/graph_generator.py new file mode 100644 index 00000000..c52e195f --- /dev/null +++ b/jmoves/auto_robot_design/generator/user_generator/graph_generator.py @@ -0,0 +1,366 @@ +"""This module contains the class for the five bar mechanism topology manager.""" +from dataclasses import dataclass, field +from enum import Enum +from typing import List, Optional, Tuple, Union +import networkx as nx +import numpy as np +import numpy.linalg as la +import matplotlib.pyplot as plt +from auto_robot_design.description.kinematics import JointPoint +from auto_robot_design.description.builder import add_branch +from auto_robot_design.description.utils import draw_joint_point + + +class MutationType(Enum): + """Enumerate for mutation types.""" + # UNMOVABLE = 0 # Unmovable joint that is not used for optimization + ABSOLUTE = 1 # The movement of the joint are in the absolute coordinate system and are relative to the initial position + RELATIVE = 2 # The movement of the joint are relative to some other joint or joints and doesn't have an initial position + # The movement of the joint are relative to some other joint or joints and doesn't have an initial position. The movement is in percentage of the distance between the joints. + RELATIVE_PERCENTAGE = 3 + + +@dataclass +class GeneratorInfo: + """Information for node of a generator.""" + mutation_type: int = MutationType.ABSOLUTE + initial_coordinates: np.ndarray = np.zeros(3)# this is the position for calculation of range using mutation_range + mutation_range: List[Optional[Tuple]] = field( + default_factory=lambda: [None, None, None]) + relative_to: Optional[Union[JointPoint, List[JointPoint]]] = None + freeze_pos: List[Optional[Tuple]] = field( + default_factory=lambda: [None, 0, None]) + vis_pos: Optional[np.ndarray] = None + + +@dataclass +class ConnectionInfo: + """Description of a point for branch connection.""" + connection_jp: JointPoint # joint point that is used for connection + connection_base: Optional[List[JointPoint]] + # this parameter is used to set the mutation range of the branch joints + relative_initial_coordinates: np.ndarray = np.zeros(3) + relative_mutation_range: List[Optional[Tuple]] = field(default_factory=lambda: [None, None, None]) + freeze_pos: List[Optional[Tuple]] = field(default_factory=lambda: [None, 0, None]) + + +class TopologyManager2D(): + def __init__(self) -> None: + self.graph = nx.Graph() + self.mutation_ranges = {} + self.branch_ends = [] + self.edges = [] + self.generator_dict = {} + self.connections = [] + self.connection_buffer = [] + self.ground_connection_counter = 0 + self.connection_counter = 0 + + def add_absolute_node(self, jp: JointPoint, initial_coordinates, mutation_range, freeze_pos=[None, 0, None], parent_branch_idx=None, vis_pos=None): + """Adds a joint point to the graph with absolute mutation type. + + Absolute mutation requires initial coordinates and mutation range. Final coordinates are calculated as initial_coordinates + value from mutation_range. + Joint properties are set by JointPoint object. + Args: + jp (JointPoint): joint to be added to the mechanism. + initial_coordinates (_type_): reference coordinates to calculate the final position. + mutation_range (_type_): range of possible joint positions. + freeze_pos (list, optional): override mutation range and sets the corresponding position to the frozen value. Defaults to [None,0,None]. + parent_branch_idx (_type_, optional): The joint must become the end of a branch.If None the new branch is created. Defaults to None. + + Raises: + ValueError: JP names must be unique. + """ + if jp.name in self.mutation_ranges: + raise ValueError( + f"Joint point {jp.name} already exists in the graph.") + + if parent_branch_idx is None: + self.branch_ends.append([jp, jp]) + self.graph.add_node(jp) + else: + self.graph.add_edge(self.branch_ends[parent_branch_idx][1], jp) + #self.edges.append((self.branch_ends[parent_branch_idx][1], jp)) + self.connection_buffer = [self.branch_ends[parent_branch_idx][1], jp] + self.branch_ends[parent_branch_idx][1] = jp + self.generator_dict[jp] = GeneratorInfo( + mutation_type=MutationType.ABSOLUTE, initial_coordinates=initial_coordinates, mutation_range=mutation_range, freeze_pos=freeze_pos) + + # if vis_pos is not None: + # self.generator_dict[jp].vis_pos = vis_pos + # else: + # self.generator_dict[jp].vis_pos = freeze_pos + # for i, pos in enumerate(freeze_pos): + # if pos is None: + # self.generator_dict[jp].vis_pos[i] = initial_coordinates[i]+(mutation_range[i][1]-mutation_range[i][0])/2 + + def add_connection(self, self_mutation_range: np.ndarray, dependent_mutation_range:np.ndarray, relative_initial_coordinates=np.zeros(3), self_freeze_pos:list=[None, 0, None], dependent_freeze_pos:list=[None, 0, None], ground=True, self_vis_pos=None): + """Create a connection point on either ground or the last added link. + + A connection point has two mutation ranges: one for connection point on the link and another for the dependent joint on the branch. + The connection can be used to attach some independent branch, in that case dependent range is not used. + + Args: + self_mutation_range (np.ndarray): mutation range for the connection point. + dependent_mutation_range (np.ndarray): + ground (bool, optional): If true adds connection to ground, else to the last added link. Defaults to True. + """ + + if ground: + ground_connection_jp = JointPoint( + r=None, + w=np.array([0, 1, 0]), + attach_ground=True, + active=True, + name=f"Ground_connection_{self.ground_connection_counter}" + ) + self.ground_connection_counter += 1 + self.connections.append(ConnectionInfo( + connection_jp=ground_connection_jp, relative_initial_coordinates=relative_initial_coordinates,connection_base=None, relative_mutation_range=dependent_mutation_range, freeze_pos=dependent_freeze_pos)) + self.generator_dict[ground_connection_jp] = GeneratorInfo(mutation_type=MutationType.ABSOLUTE, initial_coordinates=np.zeros(3), mutation_range=self_mutation_range, freeze_pos=self_freeze_pos) + else: + connection_jp = JointPoint(r=None, w=np.array( + [0, 1, 0]), attach_ground=False, active=False, name=f"Connection_{self.connection_counter}") + self.connection_counter += 1 + self.connections.append(ConnectionInfo( + connection_jp=connection_jp, connection_base=self.connection_buffer, relative_mutation_range=dependent_mutation_range, relative_initial_coordinates=relative_initial_coordinates,freeze_pos=dependent_freeze_pos)) + self.generator_dict[connection_jp] = GeneratorInfo(mutation_type=MutationType.RELATIVE_PERCENTAGE,relative_to=self.connection_buffer, initial_coordinates=None, mutation_range=self_mutation_range, freeze_pos=self_freeze_pos) + + def add_relative_node(self, jp: JointPoint, initial_coordinates=np.zeros(3), mutation_range=None, parent_branch_idx=None, freeze_pos=[None, 0, None]): + """Add a joint that has position relative to another joint. + + Args: + jp (JointPoint): joint to be added to the mechanism. + mutation_range (_type_, optional): mutation range. None value means the node is to be linked to a connection. Defaults to None. + parent_branch_idx (_type_, optional): If None the node starts a new branch, else connects to the corresponding branch. Defaults to None. + freeze_pos (list, optional): override mutation range if needed. Defaults to [None, 0, None]. + + Raises: + ValueError: JP names must be unique. + """ + if jp.name in self.mutation_ranges: + raise ValueError( + f"Joint point {jp.name} already exists in the graph.") + # if parent branch is None we add a new branch + if parent_branch_idx is None: + self.branch_ends.append([jp, jp]) + self.graph.add_node(jp) + self.generator_dict[jp] = GeneratorInfo( + mutation_type=MutationType.RELATIVE, relative_to=None, mutation_range=mutation_range, freeze_pos=freeze_pos) + else: + parent_jp = self.branch_ends[parent_branch_idx][1] + self.graph.add_edge(parent_jp, jp) + self.branch_ends[parent_branch_idx][1] = jp + self.generator_dict[jp] = GeneratorInfo( + mutation_type=MutationType.RELATIVE, relative_to=parent_jp, mutation_range=mutation_range, freeze_pos=freeze_pos) + self.connection_buffer = [parent_jp, jp] + + def add_dependent_connection(self, connection_idx, branch_idx, connect_head=True): + connection = self.connections[connection_idx] + jp = connection.connection_jp + # if the connection is used in topology we add its edges to the graph + link_jp = connection.connection_base + if link_jp is not None: + for parent_jp in link_jp: + self.graph.add_edge(parent_jp, jp) + + if connect_head: + connected_jp = self.branch_ends[branch_idx][0] + self.generator_dict[connected_jp].relative_to = jp + self.generator_dict[connected_jp].mutation_range = connection.relative_mutation_range + + else: + connected_jp = self.branch_ends[branch_idx][1] + self.generator_dict[connected_jp].relative_to = jp + self.generator_dict[connected_jp].mutation_range = connection.relative_mutation_range + + self.graph.add_edge(jp, connected_jp) + + def add_independent_connection(self, node_1, node_2): + for connection in self.connections: + if connection.connection_jp == node_1 and not connection.connection_base is None: + for parent_jp in connection.connection_base: + self.graph.add_edge(parent_jp, node_1) + if connection.connection_jp == node_2 and not connection.connection_base is None: + for parent_jp in connection.connection_base: + self.graph.add_edge(parent_jp, node_2) + + self.graph.add_edge(node_1, node_2) + + # def add_connection_node(self,jp,mutation_range, parent_pair, freeze_pos=[None,0,None]): + + # self.generator_dict[jp.name] = GeneratorInfo(mutation_type=MutationType.RELATIVE, relative_to=parent_pair, mutation_range=mutation_range,freeze_pos=freeze_pos) + + def get_pos(self): + """Return the dictionary of type {label: [x_coordinate, z_coordinate]} for the JP graph + + Args: + G (nx.Graph): a graph with JP nodes + + Returns: + dict: dictionary of type {node: [x_coordinate, z_coordinate]} + """ + pos = {} + for node in self.graph: + pos[node] = [node.r[0], node.r[2]] + + return pos + + def visualize(self, draw_labels=True): + 'Visualize the current graph' + self.set_mutation_ranges() + self.graph = self.get_graph( + self.generate_central_from_mutation_range()) + draw_joint_point(self.graph, draw_labels=draw_labels) + + def freeze_joint(self, joint: JointPoint, freeze_pos: List[Optional[Tuple]]): + """Freeze the position of the joint. + + Args: + joint (JointPoint): the joint to be frozen. + freeze_pos (List[Optional[Tuple]]): the position to be frozen. + """ + self.generator_dict[joint].freeze_pos = freeze_pos + + def set_mutation_ranges(self): + """Traverse the generator_dict to get all mutable parameters and their ranges. + """ + self.mutation_ranges = {} + # remove all auxiliary joint points from generator_dict + keys = list(self.generator_dict) + for key in keys: + if key not in self.graph.nodes: + del self.generator_dict[key] + + for key, value in self.generator_dict.items(): + if value.mutation_type == MutationType.RELATIVE or value.mutation_type == MutationType.RELATIVE_PERCENTAGE: + for i, r in enumerate(value.mutation_range): + if r is not None and value.freeze_pos[i] is None: + self.mutation_ranges[key.name+'_'+str(i)] = r + elif value.mutation_type == MutationType.ABSOLUTE: + for i, r in enumerate(value.mutation_range): + if r is not None and value.freeze_pos[i] is None: + self.mutation_ranges[key.name+'_'+str(i)] = ( + r[0]+value.initial_coordinates[i], r[1]+value.initial_coordinates[i]) + + def generate_random_from_mutation_range(self): + """Sample random values from the mutation ranges. + + Returns: + List[float]: a vector of parameters that are sampled from the mutation ranges. + """ + result = [] + for _, value in self.mutation_ranges.items(): + result.append(np.random.uniform(value[0], value[1])) + return result + + def generate_central_from_mutation_range(self): + """Return values from center of the mutation ranges. + + Returns: + List[float]: a vector of parameters that are centered on the mutation ranges. + """ + result = [] + for _, value in self.mutation_ranges.items(): + result.append((value[0]+value[1])/2) + return result + + def get_graph(self, parameters: List[float]): + """Produce a graph of the set topology from the given parameters. + + Args: + parameters List[float]: list of mutations. + + Raises: + Exception: raise an exception if the number of parameters is not equal to the number of mutation ranges. + + Returns: + nx.Graph: the graph of a mechanism with the given parameters. + """ + if len(parameters) != len(list(self.mutation_ranges.keys())): + raise ValueError( + 'Wrong number of parameters for graph specification!') + + parameter_counter = 0 + for jp, gi in self.generator_dict.items(): + if jp.r is None: + jp.r = np.full(3, np.nan) + + if gi.mutation_type == MutationType.ABSOLUTE: + for i, r in enumerate(gi.mutation_range): + if gi.freeze_pos[i] is not None: + jp.r[i] = gi.freeze_pos[i] + elif r is not None: + jp.r[i] = parameters[parameter_counter] + parameter_counter += 1 + elif gi.initial_coordinate[i] is not None: + jp.r[i] = gi.initial_coordinates[i] + else: + raise ValueError( + f"Failed to assign value for Joint Point {jp.name} coordinate {i}") + + elif gi.mutation_type == MutationType.RELATIVE: + if isinstance(gi.relative_to, list) and len(gi.relative_to) == 2: + jp.r = (gi.relative_to[0].r + gi.relative_to[1].r)/2 + + for i, r in enumerate(gi.mutation_range): + if gi.freeze_pos[i] is not None: + parameter = gi.freeze_pos[i] + elif r is not None: + parameter = parameters[parameter_counter] + parameter_counter += 1 + else: + raise ValueError( + f"Failed to assign value for Joint Point {jp.name} coordinate {i}") + + if isinstance(gi.relative_to, JointPoint): + # if relative point is relative to a single joint we just add parameter to the coordinate of this joint + jp.r[i] = gi.relative_to.r[i] + parameter + else: + if len(gi.relative_to) == 2: + # TODO: this part would fail in 3D case + # if relative point is relative to two joints we calculate the direction of the link between these joints + # and use its direction as z axis and the orthogonal direction as the x axis. Then we add the parameter to the center of the link. + link_direction = gi.relative_to[0].r - \ + gi.relative_to[1].r + link_ortogonal = np.array( + [-link_direction[2], link_direction[1], link_direction[0]]) + link_length = np.linalg.norm(link_direction) + if i == 0: + jp.r += parameter * link_ortogonal/link_length + if i == 2: + jp.r += parameter * link_direction/link_length + # jp.r += parameters[parameter_counter]*link_direction/link_length + # jp.r += parameters[parameter_counter]*np.array([-link_direction[2],link_direction[1],link_direction[0]])/link_length + + elif gi.mutation_type == MutationType.RELATIVE_PERCENTAGE: + if isinstance(gi.relative_to, list) and len(gi.relative_to) == 2: + jp.r = (gi.relative_to[0].r + gi.relative_to[1].r)/2 + + for i, r in enumerate(gi.mutation_range): + if gi.freeze_pos[i] is not None: + parameter = gi.freeze_pos[i] + elif r is not None: + parameter = parameters[parameter_counter] + parameter_counter += 1 + else: + raise ValueError( + f"Failed to assign value for Joint Point {jp.name} coordinate {i}") + + if isinstance(gi.relative_to, JointPoint): + raise ValueError( + 'Relative percentage mutation type should have a list of joints as relative_to') + else: + # TODO: this part would fail in 3D case + if len(gi.relative_to) == 2: + link_direction = gi.relative_to[0].r - \ + gi.relative_to[1].r + link_ortogonal = np.array( + [-link_direction[2], link_direction[1], link_direction[0]]) + link_length = np.linalg.norm(link_direction) + if i == 0: + jp.r += parameter * link_ortogonal + if i == 2: + jp.r += parameter * link_direction + + return self.graph diff --git a/jmoves/auto_robot_design/generator/user_generator/main_three.png b/jmoves/auto_robot_design/generator/user_generator/main_three.png new file mode 100644 index 0000000000000000000000000000000000000000..d7ffbb0d87b106f4b0ce87b2e62cd0688132a301 GIT binary patch literal 11811 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 literal 0 HcmV?d00001 diff --git a/jmoves/auto_robot_design/generator/user_generator/second_connection_three.png b/jmoves/auto_robot_design/generator/user_generator/second_connection_three.png new file mode 100644 index 0000000000000000000000000000000000000000..9e78f480c306746b534dd9a49b38ff0bb9c4e7b9 GIT binary patch literal 24720 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 None: + + self.workspace = workspace + self.verbose = verbose + self.dext_tolerance = dexterous_tolerance + self.num_indexes = self.workspace.mask_shape + + # Варианты движения при обходе сетки (8-связности) + self.motion = self.get_motion_model() + + def find_workspace(self, start_pos, prev_q): + """Поиск рабочее пространство с помощью алгоритма BFS. Алгоритм работает по сетке, которая задается в `workspace`. Обход выполняется по 4-связности. + Перед основным циклом ищется ближайшая стартовая точка на сетке от `start_pos`. Найденная точка считается начальной и добавляется в очередь. + + Общие описание алгоритма: Из очереди достается нода и находяться для нее соседи, которые не выходят за бонды. После отбора идет проверка, что сосед это не проверенная точка (не находится в `closed_set`), + не нахдоится в очереди (`open_set`). Если со соседом все хорошо, то запускатеся алгоритм ОК из рассматриваемой точки `current` в соседа `node`. Если решение есть, то соседнию точку считаем достижимой и добавлем ее в очередь. + Иначе, нода заносится в `bad_nodes`, множество в которые алгоритм ОК не смог дойти. Алгоритм заканчивает работу, когда очередь опустеет + Args: + start_pos (np.ndarray): Стартовая точка алгоритма + prev_q (np.ndarray): Предыдущее значение в конфигурационном пространстве + + Returns: + Workspace: обновляет переменную `workspace` и возвращает её. + """ + robot = self.workspace.robot + ws = self.workspace + pin.framesForwardKinematics(robot.model, robot.data, prev_q) + if self.verbose > 1: + pos_6d = robot.motion_space.get_6d_point(start_pos) + pin.framesForwardKinematics( + robot.model, robot.data, np.zeros(robot.model.nq)) + + q = prev_q + pin.forwardKinematics(robot.model, robot.data, q) + ballID = "world/ball" + "_start" + material = meshcat.geometry.MeshPhongMaterial() + material.color = int(0x00FF00) + + viz = MeshcatVisualizer( + robot.model, robot.visual_model, robot.visual_model) + viz.viewer = meshcat.Visualizer().open() + viz.viewer["/Background"].set_property("visible", False) + viz.viewer["/Grid"].set_property("visible", False) + viz.viewer["/Axes"].set_property("visible", False) + viz.viewer["/Cameras/default/rotated/"].set_property("position", [ + 0, -0.1, 0.5]) + viz.clean() + viz.loadViewerModel() + + material.opacity = 1 + viz.viewer[ballID].set_object( + meshcat.geometry.Sphere(0.001), material) + T = np.r_[np.c_[np.eye(3), pos_6d[:3]], np.array([[0, 0, 0, 1]])] + viz.viewer[ballID].set_transform(T) + pin.framesForwardKinematics(robot.model, robot.data, q) + viz.display(q) + + bound_pos = product(ws.bounds[0, :], ws.bounds[1, :]) + + for k, pos in enumerate(bound_pos): + ballID = "world/ball" + "_bound_" + str(k) + material = meshcat.geometry.MeshPhongMaterial() + material.color = int(0x0000FF) + material.opacity = 1 + pos_3d = np.array([pos[0], 0, pos[1]]) + viz.viewer[ballID].set_object( + meshcat.geometry.Sphere(0.003), material) + T = np.r_[np.c_[np.eye(3), pos_3d], np.array([[0, 0, 0, 1]])] + viz.viewer[ballID].set_transform(T) + + pin.framesForwardKinematics(robot.model, robot.data, q) + viz.display(q) + + # Функция для заполнения сетки нодами и обхода их BFS + # Псевдо первая нода, определяется по стартовым положению, может не лежать на сетки + pseudo_start_node = self.Node(start_pos, -1, q_arr=prev_q) + + start_index_on_grid = ws.calc_index(start_pos) + start_pos_on_grid = ws.calc_grid_position( + start_index_on_grid) + # Настоящая стартовая нода, которая лежит на сетки. Не имеет предков + start_n = self.Node(start_pos_on_grid, -1) + # Проверка достижимости стартовой ноды из псевдо ноды + self.transition_function(pseudo_start_node, start_n) + start_n.parent = None + + if not start_n.is_reach: + raise Exception("Start position of workspace is not reachable") + + del pseudo_start_node, start_index_on_grid, start_pos_on_grid + # Словари для обхода bfs + open_set, closed_set, bad_nodes = dict(), dict(), dict() + queue = deque() + open_set[ws.calc_grid_index(start_n.pos)] = start_n + + if self.verbose > 0: + points = ws.points + plt.plot(points[:, 0], points[:, 1], "xy") + + queue.append(ws.calc_grid_index(start_n.pos)) + while len(open_set) != 0: + # Вытаскиваем первую из очереди ноду + c_id = queue.popleft() + current = open_set.pop(c_id) + + closed_set[c_id] = current + + if self.verbose > 1: + viz.display(current.q_arr) + boxID = "world/box" + "_ws_" + str(c_id) + material = meshcat.geometry.MeshPhongMaterial() + material.opacity = 0.5 + if current.is_reach: + plt.plot(current.pos[0], current.pos[1], "xc") + # time.sleep(0.5) + material.color = int(0x00FF00) + else: + material.color = int(0xFF0000) + plt.plot(current.pos[0], current.pos[1], "xr") + pos_3d = np.array([current.pos[0], 0, current.pos[1]]) + size_box = np.array( + [ws.resolution[0], 0.001, ws.resolution[1]]) + viz.viewer[boxID].set_object( + meshcat.geometry.Box(size_box), material) + T = np.r_[np.c_[np.eye(3), pos_3d], np.array([[0, 0, 0, 1]])] + viz.viewer[boxID].set_transform(T) + # time.sleep(2) + + if self.verbose > 0: + # for stopping simulation with the esc key. + plt.gcf().canvas.mpl_connect( + "key_release_event", + lambda event: [exit(0) if event.key == "escape" else None], + ) + if len(closed_set.keys()) % 1 == 0: + plt.pause(0.001) + + # Соседние ноды + neigb_node = {} + for i, moving in enumerate(self.motion): + new_pos = current.pos + moving[:-1] * self.workspace.resolution + node = self.Node(new_pos, c_id) + + # Проверка что ноды не вышли за бонды + if self.verify_node(node): + n_id = ws.calc_grid_index(node.pos) + neigb_node[n_id] = node + else: + continue + + for n_id, node in neigb_node.items(): + if (n_id not in closed_set) and (n_id not in open_set) and (n_id not in bad_nodes): + self.transition_function(current, node) + if node.is_reach: + open_set[n_id] = node + queue.append(n_id) + else: + bad_nodes[n_id] = node + if self.verbose > 0: + plt.plot(node.pos[0], node.pos[1], "xr") + + if self.verbose > 1: + line_id = "world/line" + "_from_" + \ + str(c_id) + "_to_" + str(n_id) + verteces = np.zeros((2, 3)) + verteces[0, :] = robot.motion_space.get_6d_point(current.pos)[ + :3] + verteces[1, :] = robot.motion_space.get_6d_point(node.pos)[ + :3] + + material = meshcat.geometry.LineBasicMaterial() + material.opacity = 1 + material.linewidth = 50 + if bool(node.is_reach): + material.color = 0x66FFFF + else: + material.color = 0x990099 + pts_meshcat = meshcat.geometry.PointsGeometry( + verteces.astype(np.float32).T) + viz.viewer[line_id].set_object( + meshcat.geometry.Line(pts_meshcat, material)) + + if self.verbose > 0: + if not bool(current.is_reach): + plt.plot(current.pos[0], current.pos[1], "xr") + else: + plt.plot(current.pos[0], current.pos[1], "xc") + + reach_index = {} + for idx, node in closed_set.items(): + index = ws.calc_index(node.pos) + reach_index[idx] = index + self.workspace.reachable_index.update(reach_index) + # dext_index = [1 / n.cost for n in closed_set.values()] + # print(np.nanmax(dext_index), np.nanmin(dext_index)) + return self.workspace + + def transition_function(self, from_node: Node, to_node: Node): + # Функция для перехода от одной ноды в другую. + # По сути рассчитывает IK, где стартовая точка `from_node` (известны кушки) + # в `to_node` + robot = self.workspace.robot + ee_id = robot.model.getFrameId(robot.ee_name) + robot_ms = robot.motion_space + q, min_feas, is_reach = closed_loop_ik_pseudo_inverse( + robot.model, + robot.constraint_models, + robot_ms.get_6d_point(to_node.pos), + ee_id, + onlytranslation=True, + q_start=from_node.q_arr, + ) + # q, min_feas, is_reach = closedLoopInverseKinematicsProximal( + # robot.model, + # robot.constraint_models, + # robot_ms.get_6d_point(to_node.pos), + # ee_id, + # onlytranslation=True, + # q_start=from_node.q_arr, + # ) + + if is_reach: + + dq_dqmot, __ = constraint_jacobian_active_to_passive( + robot.model, + robot.data, + robot.constraint_models, + robot.constraint_data, + robot.actuation_model, + q, + ) + + pin.framesForwardKinematics(robot.model, robot.data, q) + Jfclosed = ( + pin.computeFrameJacobian( + robot.model, robot.data, q, ee_id, pin.LOCAL_WORLD_ALIGNED + ) + @ dq_dqmot + ) + # Подсчет числа обусловленности Якобиана или индекса маневренности + __, S, __ = np.linalg.svd( + Jfclosed[robot.motion_space.indexes, :], hermitian=True + ) + + dext_index = np.abs(S).max() / np.abs(S).min() + # dext_index = np.linalg.norm(np.linalg.det(Jfclosed[robot.motion_space.indexes, :])) + # m = Jfclosed[robot.motion_space.indexes, :] + # lower_value = np.abs(np.linalg.det(m / np.linalg.norm(m,axis=0))) + # # if self.dext_tolerance[1] != np.inf: + + # lower_check = lower_value >= self.dext_tolerance[0] + # upper_check = dext_index <= self.dext_tolerance[1] + + # is_reach = lower_check and upper_check + # if self.dext_tolerance[1] != np.inf: + + # lower_check = dext_index >= self.dext_tolerance[0] + # upper_check = dext_index <= self.dext_tolerance[1] + + # is_reach = lower_check and upper_check + + to_node.transit_to_node( + from_node, q, 1 / dext_index, bool(is_reach) + ) + else: + dext_index = np.inf + + def verify_node(self, node): + pos = node.pos + return self.workspace.point_in_bound(pos) + + @staticmethod + def get_motion_model(): + # dx, dy, cost + motion = [ + # [1, -1, np.sqrt(2)], + [1, 0, 1], + # [1, 1, np.sqrt(2)], + [0, 1, 1], + # [-1, 1, np.sqrt(2)], + [-1, 0, 1], + # [-1, -1, np.sqrt(2)], + [0, -1, 1], + ] + + return motion + + +if __name__ == "__main__": + from auto_robot_design.generator.topologies.bounds_preset import ( + get_preset_by_index_with_bounds, + ) + from auto_robot_design.user_interface.check_in_ellips import ( + Ellipse, + check_points_in_ellips + ) + from auto_robot_design.description.builder import ( + ParametrizedBuilder, + URDFLinkCreater3DConstraints, + jps_graph2pinocchio_robot_3d_constraints, + ) + + builder = ParametrizedBuilder(URDFLinkCreater3DConstraints) + + gm = get_preset_by_index_with_bounds(0) + x_centre = gm.generate_central_from_mutation_range() + graph_jp = gm.get_graph(x_centre) + + robo, __ = jps_graph2pinocchio_robot_3d_constraints( + graph_jp, builder=builder) + + center_bound = np.array([0, -0.3]) + size_box_bound = np.array([0.1, 0.1]) + + start_pos = center_bound + pos_6d = np.zeros(6) + pos_6d[[0, 2]] = start_pos + + id_ee = robo.model.getFrameId(robo.ee_name) + + pin.framesForwardKinematics(robo.model, robo.data, np.zeros(robo.model.nq)) + + init_pos = robo.data.oMf[id_ee].translation[[0, 2]] + traj_init_to_center = add_auxilary_points_to_trajectory( + ([start_pos[0]], [start_pos[1]]), init_pos + ) + + point_6d = robo.motion_space.get_6d_traj(np.array(traj_init_to_center).T) + ik_manager = TrajectoryIKManager() + ik_manager.register_model(robo.model, robo.constraint_models) + # ik_manager.set_solver("Closed_Loop_PI") + ik_manager.set_solver("Closed_Loop_Proximal") + + poses_6d, q_fixed, constraint_errors,reach_array = ik_manager.follow_trajectory(point_6d) + + # poses_6d, q_fixed, constraint_errors, reach_array = ( + # closed_loop_pseudo_inverse_follow( + # robo.model, + # robo.data, + # robo.constraint_models, + # robo.constraint_data, + # robo.ee_name, + # point_6d, + # ) + # ) + # start_pos = init_pos + # pos_6d = np.zeros(6) + + # q = np.zeros(robo.model.nq) + q = q_fixed[-1] + + bounds = np.array( + [ + [-size_box_bound[0] / 2, size_box_bound[0] / 2], + [-size_box_bound[1] / 2, size_box_bound[1] / 2], + ] + ) + bounds[0, :] += center_bound[0] + bounds[1, :] += center_bound[1] + + workspace = Workspace(robo, bounds, np.array([0.01, 0.01])) + ws_bfs = BreadthFirstSearchPlanner(workspace, 1)#, np.array([1, 40])) + workspace = ws_bfs.find_workspace(start_pos, q) + + ax = plt.gca() + ellipse = Ellipse(np.array([0.04,-0.31]), 0, np.array([0.04, 0.01])) + points_on_ellps = ellipse.get_points(0.1).T + + ax.plot(points_on_ellps[:,0], points_on_ellps[:,1], "g") + + print(workspace.check_points_in_ws(points_on_ellps)) + + reach_ws_points = workspace.points + mask_ws_n_ellps = check_points_in_ellips(reach_ws_points, ellipse, 0.02) + ax.plot(reach_ws_points[mask_ws_n_ellps,:][:,0],reach_ws_points[mask_ws_n_ellps,:][:,1], "gx") + + print(workspace.check_points_in_ws(reach_ws_points[mask_ws_n_ellps,:])) + plt.show() + plt.figure() + print(ellipse_in_workspace(ellipse, workspace, verbose=1)) + plt.show() + + print(workspace.reachabilty_mask) diff --git a/jmoves/auto_robot_design/motion_planning/dataset_generator.py b/jmoves/auto_robot_design/motion_planning/dataset_generator.py new file mode 100644 index 00000000..f8f7bb20 --- /dev/null +++ b/jmoves/auto_robot_design/motion_planning/dataset_generator.py @@ -0,0 +1,470 @@ +import os +import csv +import glob +import pathlib +import time +from copy import deepcopy +import concurrent.futures +from typing import Optional +import dill +from joblib import cpu_count +from tqdm import tqdm + +import matplotlib.pyplot as plt +import numpy as np +import pandas as pd +import pinocchio as pin + + +from auto_robot_design.description.builder import ( + MIT_CHEETAH_PARAMS_DICT, + ParametrizedBuilder, + URDFLinkCreater3DConstraints, + jps_graph2pinocchio_robot_3d_constraints, +) + + +from auto_robot_design.description.utils import draw_joint_point +from auto_robot_design.motion_planning.bfs_ws import BreadthFirstSearchPlanner +from auto_robot_design.motion_planning.utils import Workspace, build_graphs +from auto_robot_design.user_interface.check_in_ellips import ( + Ellipse, + check_points_in_ellips, +) +from auto_robot_design.utils.append_saver import chunk_list +from auto_robot_design.utils.bruteforce import get_n_dim_linspace +from presets.MIT_preset import get_mit_builder + + +WORKSPACE_ARGS_NAMES = ["bounds", "resolution", "dexterous_tolerance", "grid_shape"] + + +class WorkspaceOutBodunds(Exception): + pass + +class DatasetGenerator: + def __init__(self, graph_manager, path, workspace_args): + """ + Initializes the DatasetGenerator. + Args: + graph_manager (GraphManager): The manager responsible for handling the graph operations. + path (str): The directory path where the dataset and related files will be saved. + workspace_args (tuple): Arguments required to initialize the workspace. + Attributes: + ws_args (tuple): Stored workspace arguments. + graph_manager (GraphManager): Stored graph manager. + path (pathlib.Path): Path object for the directory where files will be saved. + builder (ParametrizedBuilder): Builder for creating URDF links with 3D constraints. + params_size (int): Size of the parameters generated from the mutation range. + ws_grid_size (int): Size of the workspace grid. + field_names (list): List of field names for the dataset CSV file. + Operations: + - Creates the directory if it does not exist. + - Draws and saves a graph image. + - Serializes the graph manager to a pickle file. + - Saves workspace arguments to a .npz file and writes them to an info.txt file. + - Initializes the dataset CSV file with appropriate headers. + """ + + self.ws_args = workspace_args + self.graph_manager = graph_manager + self.path = pathlib.Path(path) + workspace = Workspace(None, *self.ws_args[:-1]) + + if not self.path.exists(): + self.path.mkdir(parents=True, exist_ok=True) + draw_joint_point( + self.graph_manager.get_graph( + self.graph_manager.generate_central_from_mutation_range() + ) + ) + plt.savefig(self.path / "graph.png") + with open(self.path / "graph.pkl", "wb") as file: + dill.dump(self.graph_manager, file) + wrt_lines = [] + arguments = self.ws_args + (workspace.mask_shape,) + for nm, vls in zip(WORKSPACE_ARGS_NAMES, arguments): + wrt_lines.append(nm + ": " + str(np.round(vls, 3)) + "\n") + np.savez( + self.path / "workspace_arguments.npz", + bounds=arguments[0], + resolution=arguments[1], + dexterous_tolerance=arguments[2], + grid_shape=arguments[3], + ) + + with open(self.path / "info.txt", "w") as file: + file.writelines(wrt_lines) + self.builder = get_mit_builder() + + self.params_size = len(self.graph_manager.generate_random_from_mutation_range()) + self.ws_grid_size = np.prod(workspace.mask_shape) + + dataset_fields_names = ["jp_" + str(i) for i in range(self.params_size)] + dataset_fields_names += ["ws_" + str(i) for i in range(self.ws_grid_size)] + self.field_names = dataset_fields_names + with open(self.path / "dataset.csv", "a", newline="") as f_object: + # Pass the file object and a list of column names to DictWriter() + + dict_writer_object = csv.DictWriter(f_object, fieldnames=self.field_names) + # If the file is empty or you are adding the first row, write the header + + if f_object.tell() == 0: + dict_writer_object.writeheader() + + def _find_workspace(self, joint_positions: np.ndarray): + graph = self.graph_manager.get_graph(joint_positions) + robot, _ = jps_graph2pinocchio_robot_3d_constraints(graph, self.builder) + workspace = Workspace(robot, *self.ws_args[:-1]) + ws_search = BreadthFirstSearchPlanner(workspace, 0, self.ws_args[-1]) + + q = pin.neutral(robot.model) + pin.framesForwardKinematics(robot.model, robot.data, q) + id_ee = robot.model.getFrameId(robot.ee_name) + start_pos = robot.data.oMf[id_ee].translation[[0, 2]] + + workspace = ws_search.find_workspace(start_pos, q) + + return joint_positions, workspace.reachabilty_mask.flatten() + + def save_batch_to_dataset(self, batch, postfix=""): + """ + Save a batch of data to the dataset file. + This method processes a batch of data, combining joint positions and workspace grid data, + and saves it to a CSV file. The data is rounded to three decimal places before saving. + Args: + batch (list): A list of tuples, where each tuple contains joint positions and workspace grid data. + postfix (str, optional): A string to append to the dataset filename. Defaults to "". + Returns: + None + """ + + joints_pos_batch = np.zeros((len(batch), self.params_size)) + ws_grid_batch = np.zeros((len(batch), self.ws_grid_size)) + for k, el in enumerate(batch): + joints_pos_batch[k, :] = el[0] + ws_grid_batch[k, :] = el[1] + sorted_batch = np.hstack((joints_pos_batch, ws_grid_batch)).round(3) + file_dataset = self.path / ("dataset" + postfix + ".csv") + with open(file_dataset, "a", newline="") as f_object: + # Pass the file object and a list of column names to DictWriter() + + dict_writer_object = csv.DictWriter(f_object, fieldnames=self.field_names) + # If the file is empty or you are adding the first row, write the header + + if f_object.tell() == 0: + dict_writer_object.writeheader() + + writer = csv.writer(f_object) + writer.writerows(sorted_batch) + + def _parallel_calculate_batch(self, joint_poses_batch: np.ndarray): + bathch_result = [] + cpus = cpu_count() - 1 + with concurrent.futures.ProcessPoolExecutor(max_workers=cpus) as executor: + futures = [ + executor.submit(self._find_workspace, i) for i in joint_poses_batch + ] + for future in concurrent.futures.as_completed(futures): + bathch_result.append(future.result()) + return bathch_result + + def _calculate_batches(self, batches: np.ndarray, postfix=""): + for batch in batches: + bathch_result = [] + for i in batch: + bathch_result.append(self._find_workspace(i)) + self.save_batch_to_dataset(bathch_result, postfix) + + def start(self, num_points, size_batch): + """ + Generates a dataset by creating points within specified mutation ranges and processes them in batches. + Args: + num_points (int): The number of points to generate. + size_batch (int): The size of each batch. + Raises: + Exception: If an error occurs during batch processing. + Writes: + A file named "info.txt" containing the number of points generated. + A file named "dataset.csv" containing the concatenated results of all processed batches. + """ + + self.graph_manager.generate_central_from_mutation_range() + low_bnds = [value[0] for value in self.graph_manager.mutation_ranges.values()] + up_bnds = [value[1] for value in self.graph_manager.mutation_ranges.values()] + vecs = get_n_dim_linspace(up_bnds, low_bnds, num_points) + batches = list(chunk_list(vecs, size_batch)) + + with open(self.path / "info.txt", "a") as file: + file.writelines("Number of points: " + str(num_points) + "\n") + file.writelines( + "Lower bounds mutation JPs: " + str(np.round(low_bnds, 3)) + "\n" + ) + file.writelines( + "Upper bounds mutation JPs: " + str(np.round(up_bnds, 3)) + "\n" + ) + + cpus = cpu_count() - 1 if cpu_count() - 1 < len(batches) else len(batches) + batches_chunks = list(chunk_list(batches, (len(batches) // cpus) + 1)) + try: + with concurrent.futures.ProcessPoolExecutor(max_workers=cpus) as executor: + futures = [ + executor.submit( + self._calculate_batches, batches, "_" + str(m // cpus) + ) + for m, batches in enumerate(batches_chunks) + ] + except Exception as e: + print(e) + finally: + all_files = glob.glob(os.path.join(self.path, "*.csv")) + df = pd.concat( + (pd.read_csv(f, low_memory=False) for f in all_files), + ignore_index=True, + ) + + for file in all_files: + os.remove(file) + + pd.DataFrame(df).to_csv(self.path / "dataset.csv", index=False) + + # for num, batch in tqdm(enumerate(batches)): + # try: + # batch_results = self._parallel_calculate_batch(batch) + # self.save_batch_to_dataset(batch_results) + # except Exception as e: + # print(e) + + +class Dataset: + def __init__(self, path_to_dir): + """ + Initializes the DatasetGenerator with the specified directory path. + Args: + path_to_dir (str): The path to the directory containing the dataset and other necessary files. + Attributes: + path (pathlib.Path): The path to the directory as a pathlib.Path object. + df (pd.DataFrame): The dataset loaded from 'dataset.csv'. + dict_ws_args (dict): The workspace arguments loaded from 'workspace_arguments.npz'. + ws_args (list): The list of workspace arguments. + workspace (Workspace): The Workspace object initialized with the workspace arguments. + graph_manager (GraphManager): The graph manager loaded from 'graph.pkl'. + params_size (int): The size of the parameters generated by the graph manager. + ws_grid_size (int): The size of the workspace grid. + builder (ParametrizedBuilder): The builder object initialized with URDFLinkCreater3DConstraints. + """ + self.path = pathlib.Path(path_to_dir) + + self.df = pd.read_csv(self.path / "dataset.csv", nrows=2e4) + self.dict_ws_args = np.load(self.path / "workspace_arguments.npz") + self.ws_args = [self.dict_ws_args[name] for name in WORKSPACE_ARGS_NAMES[:-1]] + self.workspace = Workspace(None, *self.ws_args[:-1]) + + with open(self.path / "graph.pkl", "rb") as f: + self.graph_manager = dill.load(f) + self.params_size = len(self.graph_manager.generate_random_from_mutation_range()) + self.ws_grid_size = np.prod(self.workspace.mask_shape) + + self.builder = ParametrizedBuilder(URDFLinkCreater3DConstraints) + + def get_workspace_by_indexes(self, indexes): + """ + Generates a list of workspace objects based on the provided indexes. + Args: + indexes (list): A list of indexes to retrieve workspace data. + Returns: + list: A list of workspace objects with updated robot and reachable index information. + The function performs the following steps: + 1. Initializes an empty list to store reachable indexes. + 2. Iterates over the provided indexes to extract workspace masks and calculates reachable indexes. + 3. Retrieves graphs corresponding to the provided indexes. + 4. Builds robot configurations from the graphs. + 5. Creates a deep copy of the workspace for each index. + 6. Updates each workspace copy with the corresponding robot configuration and reachable indexes. + """ + arr_reach_indexes = [] + for k in indexes: + ws_mask = ( + self.df.loc[k] + .values[self.params_size : self.params_size + self.ws_grid_size] + .reshape(self.dict_ws_args["grid_shape"]) + ) + arr_reach_indexes.append( + { + self.workspace.calc_grid_index_with_index(ind): ind + for ind in np.argwhere(ws_mask == 1).tolist() + } + ) + graphs = self.get_graphs_by_indexes(indexes) + robot_list = list( + build_graphs(graphs, self.builder, jps_graph2pinocchio_robot_3d_constraints) + ) + arr_ws_outs = [deepcopy(self.workspace) for _ in range(len(indexes))] + + for k, ws_out in enumerate(arr_ws_outs): + ws_out.robot = robot_list[k][0] + ws_out.reachable_index = arr_reach_indexes[k] + return arr_ws_outs + + def get_all_design_indexes_cover_ellipse(self, ellipse: Ellipse, indexes: Optional[list] = None): + """ + Get all design indexes that cover the given ellipse. + This method calculates the indexes of designs that cover the specified ellipse + within the workspace. It first verifies that all points on the ellipse are within + the workspace bounds. Then, it creates a mask for the workspace points that fall + within the ellipse and uses this mask to find the relevant design indexes. + Args: + ellipse (Ellipse): The ellipse object for which to find covering design indexes. + Returns: + numpy.ndarray: An array of indexes corresponding to designs that cover the given ellipse. + Raises: + Exception: If any point on the ellipse is out of the workspace bounds. + """ + points_on_ellps = ellipse.get_points(0.1).T + + if indexes is None: + df = self.df + else: + df = self.df.loc[indexes] + for pt in points_on_ellps: + if not self.workspace.point_in_bound(pt): + raise WorkspaceOutBodunds("Input ellipse out of workspace bounds") + ws_points = self.workspace.points + mask_ws_n_ellps = check_points_in_ellips(ws_points, ellipse, 0.1) + ellips_mask = np.zeros(self.workspace.mask_shape, dtype=bool) + for point in ws_points[mask_ws_n_ellps, :]: + index = self.workspace.calc_index(point) + ellips_mask[tuple(index)] = True + ws_bool_flatten = np.asarray( + df.values[:, self.params_size : self.params_size + self.ws_grid_size], + dtype=bool, + ) + ell_mask_2_d = ellips_mask.flatten()[np.newaxis :] + indexes = np.argwhere( + np.sum(ell_mask_2_d * ws_bool_flatten, axis=1) == np.sum(ell_mask_2_d) + ) + return df.index[indexes.flatten()].values + + def get_design_parameters_by_indexes(self, indexes): + """ + Retrieve design parameters based on provided indexes. + Args: + indexes (list or array-like): The indexes of the rows to retrieve from the dataframe. + Returns: + numpy.ndarray: A 2D array containing the design parameters for the specified indexes. + """ + return self.df.loc[indexes].values[:, : self.params_size] + + def get_graphs_by_indexes(self, indexes): + """ + Retrieve graphs based on the provided indexes. + Args: + indexes (list): A list of indexes to retrieve the corresponding design parameters. + Returns: + list: A list of graphs corresponding to the design parameters obtained from the provided indexes. + """ + desigm_parameters = self.get_design_parameters_by_indexes(indexes) + return [ + deepcopy(self.graph_manager.get_graph(des_param)) for des_param in desigm_parameters + ] + + def get_filtered_df_with_jps_limits(self, limits:np.ndarray, indexes: Optional[list] = None): + + if indexes is None: + df = self.df + else: + df = self.df.loc[indexes] + + def filter_func(df): + jps = df.values[:, :self.params_size] + arr_higher_low = np.all(jps >= limits[:,0], axis=1) + arr_lower_upper = np.all(jps <= limits[:,1], axis=1) + arr_in_limits = np.logical_and(arr_higher_low, arr_lower_upper) + return arr_in_limits + + filt_df = df[filter_func(df)] + + return filt_df + + +def set_up_reward_manager(traj_6d, reward): + from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import ( + HeavyLiftingReward, + MinAccelerationCapability, + ) + + from auto_robot_design.optimization.rewards.reward_base import RewardManager + + from auto_robot_design.pinokla.calc_criterion import ( + ActuatedMass, + EffectiveInertiaCompute, + ManipJacobian, + MovmentSurface, + NeutralPoseMass, + ) + + from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator + from auto_robot_design.utils.configs import get_standard_builder, get_mesh_builder, get_standard_crag, get_standard_rewards + # dict_trajectory_criteria = { + # "MASS": NeutralPoseMass(), + # "POS_ERR": TranslationErrorMSE() # MSE of deviation from the trajectory + # } + # # criteria calculated for each point on the trajectory + # dict_point_criteria = { + # # Impact mitigation factor along the axis + # "IMF": ImfCompute(ImfProjections.Z), + # "MANIP": ManipCompute(MovmentSurface.XZ), + # "Effective_Inertia": EffectiveInertiaCompute(), + # "Actuated_Mass": ActuatedMass(), + # "Manip_Jacobian": ManipJacobian(MovmentSurface.XZ) + # } + # # special object that calculates the criteria for a robot and a trajectory + + # crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria) + crag = get_standard_crag() + # set the rewards and weights for the optimization task + + # acceleration_capability = MinAccelerationCapability( + # manipulability_key="Manip_Jacobian", + # trajectory_key="traj_6d", + # error_key="error", + # actuated_mass_key="Actuated_Mass", + # ) + + # heavy_lifting = HeavyLiftingReward( + # manipulability_key='Manip_Jacobian', mass_key='MASS', reachability_key="is_reach") + + + reward_manager = RewardManager(crag=crag) + reward_manager.add_trajectory(traj_6d, 0) + + reward_manager.add_reward(reward, 0, 1) + # reward_manager.add_reward(heavy_lifting, 0, 1) + + return reward_manager + + +def test_dataset_generator(name_path): + from auto_robot_design.generator.topologies.bounds_preset import ( + get_preset_by_index_with_bounds, + ) + + gm = get_preset_by_index_with_bounds(0) + ws_agrs = ( + np.array([[-0.05, 0.05], [-0.4, -0.3]]), + np.array([0.01, 0.01]), + np.array([0, np.inf]), + ) + dataset_generator = DatasetGenerator(gm, name_path, ws_agrs) + + # jp_batch = [] + # for __ in range(10): + # jp_batch.append(gm.generate_random_from_mutation_range()) + # res = dataset_generator._calculate_batch(jp_batch) + # dataset_generator.save_batch_to_dataset(res) + + dataset_generator.start(3, 50) + + +if __name__ == "__main__": + pass diff --git a/jmoves/auto_robot_design/motion_planning/dataset_handler.py b/jmoves/auto_robot_design/motion_planning/dataset_handler.py new file mode 100644 index 00000000..7acb0624 --- /dev/null +++ b/jmoves/auto_robot_design/motion_planning/dataset_handler.py @@ -0,0 +1,81 @@ +import numpy as np +import pandas as pd +from tqdm import tqdm + +from auto_robot_design.generator.topologies.graph_manager_2l import MutationType +from auto_robot_design.motion_planning.dataset_generator import Dataset + + +def calc_n_sort_df_with_ws(dataset: Dataset) -> pd.DataFrame: + upd_df = dataset.df.assign( + total_ws=lambda x: np.sum( + x.values[ + :, dataset.params_size : dataset.params_size + dataset.ws_grid_size + ], + axis=1, + ) + ) + sorted_df = upd_df.sort_values("total_ws", ascending=False) + + return sorted_df + + +def filtered_df_with_ws(df: pd.DataFrame, min_ws: int) -> pd.DataFrame: + return df[df["total_ws"] >= min_ws] + + +def filtered_csv_dataset(dirpath, max_chunksize, min_ws): + dataset = Dataset(dirpath) + path_to_csv_non_filt = dataset.path / "dataset_0.csv" + path_to_csv_filt = dataset.path / "dataset_filt.csv" + for chunk in pd.read_csv(path_to_csv_non_filt, chunksize=max_chunksize): + dataset.df = chunk + sorted_df = calc_n_sort_df_with_ws(dataset) + filt_df = filtered_df_with_ws(sorted_df, min_ws) + if path_to_csv_filt.exists(): + filt_df.to_csv(path_to_csv_filt, mode="a", index_label=False,index=False, header=False) + else: + filt_df.to_csv(path_to_csv_filt, mode="w", index_label=False, index=False,) + + +def update_part_old_dataset(dataset): + mut_ranges_name = dataset.graph_manager.mutation_ranges.keys() + jp_names = [(name[:-2], name[-1:]) for name in mut_ranges_name] + jp_index_s = [(dataset.graph_manager.get_node_by_name(name[0]), name[1]) for name in jp_names] + + # [ for jp in jp_s if dataset.graph_manager.generator_dict[jp].generator_info] + scaler_list = [] + for jp, index in jp_index_s: + mut_type = dataset.graph_manager.generator_dict[jp].mutation_type + if mut_type == MutationType.RELATIVE_PERCENTAGE and index == "0": + scaler_list.append(-1) + else: + scaler_list.append(1) + + scaler_array = np.array(scaler_list) + new_df = dataset.df.apply(lambda x: np.r_[x[:dataset.params_size] * scaler_array, x[dataset.params_size:]], axis=1, raw=True) + + return new_df + + +def update_old_dataset(dirpath, max_chunksize, name_dataset="dataset"): + dataset = Dataset(dirpath) + path_to_csv_filt = dataset.path / (name_dataset + ".csv") + path_new_dataset = dataset.path / (name_dataset + str(1) + ".csv") + for chunk in tqdm(pd.read_csv(path_to_csv_filt, chunksize=max_chunksize)): + dataset.df = chunk + filt_df = update_part_old_dataset(dataset) + if path_to_csv_filt.exists(): + filt_df.to_csv(path_new_dataset, mode="a", index_label=False, index=False, header=False) + else: + filt_df.to_csv(path_new_dataset, mode="w", index_label=False, index=False) + + + +if __name__ == "__main__": + path_func = lambda x: f"/run/media/yefim-work/Samsung_data1/top_{x}" + for i in np.arange(0,9,1): + dirpath = path_func(int(i)) + print(dirpath) + update_old_dataset(dirpath, 1e5) + # filtered_csv_dataset(dirpath, 1e5, 1700) diff --git a/jmoves/auto_robot_design/motion_planning/ik_calculator.py b/jmoves/auto_robot_design/motion_planning/ik_calculator.py new file mode 100644 index 00000000..8044867b --- /dev/null +++ b/jmoves/auto_robot_design/motion_planning/ik_calculator.py @@ -0,0 +1,432 @@ +import pinocchio as pin +import numpy as np +from numpy.linalg import solve, norm, pinv + + +def open_loop_ik(rmodel,cs, target_pos, ideff, q_start=None, eps=1e-5, max_it=100): + """This function is hitting nails with a microscope + + It actually works only for 2 link robot. For more links it will return some result, + since we do not set any additional conditions. + + Args: + rmodel (_type_): pinocchio model + target_pos (_type_): 6d position of the target + ideff (_type_): end-effector id + q_start (_type_, optional): starting position for ik search. Defaults to None. + eps (_type_, optional): precision. Defaults to 1e-5. + max_it (int, optional): max iterations for ik search algorithm. Defaults to 30. + + Returns: + _type_: configuration, error and reachability state + """ + # create copy of the model and corresponding data + model = pin.Model(rmodel) + data = model.createData() + if q_start is None: + q_start = pin.neutral(model) + q = q_start + else: + q = q_start + + # set the SE3 representation of the final position (useless) + target_SE3 = pin.SE3.Identity() + target_SE3.translation = np.array(target_pos[0:3]) + is_reach = False + DT = 3e-1 # Optimization step + for _ in range(max_it): + pin.framesForwardKinematics(model, data, q) + err = data.oMf[ideff].translation-target_SE3.translation + if norm(err) < eps: + is_reach = True + break + J = pin.computeFrameJacobian( + model, data, q, ideff, pin.LOCAL_WORLD_ALIGNED)[:3, :] + v = - pinv(J) @ err + q = pin.integrate(model, q, v * DT) + + return q, norm(err), is_reach + +def closed_loop_velocity_ik(rmodel, rconstraint_model,target_pos, ideff, q_start=None, onlytranslation:bool=True, eps:float=2e-5, max_it:int=100): + model = pin.Model(rmodel) + constraint_model = [pin.RigidConstraintModel(x) for x in rconstraint_model] + starting_ee_position=model.frames[ideff].placement + +def closed_loop_ik_pseudo_inverse(rmodel, + rconstraint_model, + target_pos, ideff, + q_start=None, + onlytranslation:bool=True, + eps:float=2e-5, + max_it:int=100, + alpha:float=0.5, + l:float=1e-5, + q_delta_threshold:float=1): + """Finds the IK solution using constraint Jacobian. + + The target position is added to the list of constraints and treated as a constraint violated in the starting position. + The algorithm uses the pseudo-inverse of the total constraint Jacobian to find the dq that eliminate constrain violation in linearized model. + The linear model solution is integrated with alpha factor to find the new configuration at each step. Parameter l is used to regularize the pseudo-inverse. + We assume that if linear solution is too large, it means the direction to the desired pose is close to singular one and we stop the search. + Large dq leads to chaotic behavior and mechanism reassembly in new configurations. + + Args: + rmodel (_type_): pinocchio model + rconstraint_model (_type_): constraints model + target_pos (_type_): 6d position of the target + ideff (_type_): end-effector id + q_start (_type_, optional): starting position for ik search. Defaults to None. + onlytranslation (bool, optional): True if only desired position do not include ee orientation. Defaults to False. + eps (float, optional): desired error. Defaults to 1e-5. + max_it (int, optional): max number of iterations. Defaults to 100. + alpha (float, optional): step factor. Defaults to 0.5. + l (float, optional): regularization parameter. Defaults to 1e-5. + q_delta_threshold (float, optional): dq threshold. Defaults to 0.5. + + Raises: + Exception: _description_ + + Returns: + _type_: _description_ + """ + # create copy of the model, constraints and corresponding data + model = pin.Model(rmodel) + constraint_model = [pin.RigidConstraintModel(x) for x in rconstraint_model] + # set the SE3 representation of the final position. Here we add final position as a constraint. + target_SE3 = pin.SE3.Identity() + target_SE3.translation = np.array(target_pos[0:3]) + frame_constraint = model.frames[ideff] + parent_joint = frame_constraint.parentJoint # ee parent joint is in the same position as the frame? + placement = frame_constraint.placement # placement is calculated relative to parent joint? + # constraint can include orientation or not + if onlytranslation: + final_constraint = pin.RigidConstraintModel(pin.ContactType.CONTACT_3D, + model, parent_joint, + placement, 0, target_SE3, + pin.ReferenceFrame.LOCAL) + else: + final_constraint = pin.RigidConstraintModel( + pin.ContactType.CONTACT_6D, model, parent_joint, placement, + model.getJointId("universel"), target_pos, + pin.ReferenceFrame.LOCAL) + raise Exception("Not implemented") + + final_constraint.name = "TrajCons" + constraint_model.append(final_constraint) + + data = model.createData() + constraint_data = [cm.createData() for cm in constraint_model] + if q_start is None: + q_start = pin.neutral(model) + q = q_start + else: + q = q_start + #calculates pin joints and frames corresponding to the q. Neutral position is the position in URDF and it has all q=0 + pin.framesForwardKinematics(model, data, q) + constraint_dim = 0 + for cm in constraint_model: + constraint_dim += cm.size() + + is_reach = False + # I dont know why we need kkt here, but it seems to fail without it + kkt_constraint = pin.ContactCholeskyDecomposition(model, constraint_model) + primal_feas_array = np.zeros(max_it) + real_feas_array = np.zeros(max_it) + dim = len(q) + q_array = np.zeros((max_it, dim)) + constr_array = [] + # IK search iteration loop + for k in range(max_it): + pin.computeJointJacobians(model, data, q) + kkt_constraint.compute(model, data, constraint_model, constraint_data)# mb here we actually update constraint_data and we can find more direct way to do it + constraint_value = np.concatenate([ + (pin.log(cd.c1Mc2).np[:cm.size()]) + for (cd, cm) in zip(constraint_data, constraint_model) + ]) + # calculate total constraint Jacobian + LJ = [] + for cm, cd in zip(constraint_model, constraint_data): + Jc = pin.getConstraintJacobian(model, data, cm, cd) + LJ.append(Jc) + J = np.concatenate(LJ) + constr_array.append(constraint_value) + primal_feas = np.linalg.norm(constraint_value, np.inf) + real_constrain_feas = np.linalg.norm(constraint_value[:-3]) + real_feas_array[k] = real_constrain_feas + primal_feas_array[k] = primal_feas + q_array[k] = q + + if primal_feas < eps: + is_reach = True + break + # here we use pseudo inverse with additional regularization and l is parameter of the regularization + dq = (J.T@(np.linalg.inv(J@J.T-l*np.eye(len(constraint_value)))) + ).dot(constraint_value) + + # Jacobian methods use linearization, so any solution works only in small area. + # If the solution step is large, it means the direction is close to singular one. + # TODO: may be we should add some kind of normalization, the solution for dq is actually a direction and it is proportional to current constraints violation + if np.linalg.norm(dq, np.inf) > q_delta_threshold: + break + + q = pin.integrate(model, q, alpha * dq) + # total_delta_q = q-q_start - alternatively we can use total error instead of a step error + + min_feas = primal_feas + min_real_feas = real_constrain_feas + # if the required position is unreachable we choose the position closest to the required point + if not is_reach: + for_sort = np.column_stack( + (primal_feas_array[0:k+1], real_feas_array[0:k+1], q_array[0:k+1, :])) + + def key_sort(x): return x[1] + for_sort = sorted(for_sort, key=key_sort) + finish_q = for_sort[0][2:] + q = finish_q + min_feas = for_sort[0][0] + min_real_feas = for_sort[0][1] + pin.framesForwardKinematics(model, data, q) + + return q, min_feas, is_reach + + +def closed_loop_ik_grad(rmodel, rconstraint_model, target_pos, ideff, q_start=None, onlytranslation=False, eps=1e-5, step=1e-1, max_it=1000000): + + model = pin.Model(rmodel) + constraint_model = [pin.RigidConstraintModel(x) for x in rconstraint_model] + open_loop = False + target_SE3 = pin.SE3.Identity() + target_SE3.translation = np.array(target_pos[0:3]) + frame_constraint = model.frames[ideff] + parent_joint = frame_constraint.parentJoint + placement = frame_constraint.placement + if onlytranslation: + final_constraint = pin.RigidConstraintModel(pin.ContactType.CONTACT_3D, + model, parent_joint, + placement, 0, target_SE3, + pin.ReferenceFrame.LOCAL) + else: + final_constraint = pin.RigidConstraintModel( + pin.ContactType.CONTACT_6D, model, parent_joint, placement, + model.getJointId("universel"), target_pos, + pin.ReferenceFrame.LOCAL) + raise Exception("Not implemented") + + final_constraint.name = "TrajCons" + constraint_model.append(final_constraint) + + data = model.createData() + constraint_data = [cm.createData() for cm in constraint_model] + + if q_start is None: + q_start = pin.neutral(model) + q = q_start + else: + q = q_start + pin.framesForwardKinematics(model, data, q) + constraint_dim = 0 + for cm in constraint_model: + constraint_dim += cm.size() + is_reach = False + kkt_constraint = pin.ContactCholeskyDecomposition(model, constraint_model) + primal_feas_array = np.zeros(max_it) + real_feas_array = np.zeros(max_it) + dim = len(q) + q_array = np.zeros((max_it, dim)) + constr_array = [] + for k in range(max_it): + pin.computeJointJacobians(model, data, q) + kkt_constraint.compute(model, data, constraint_model, constraint_data) + constraint_value = np.concatenate([ + (pin.log(cd.c1Mc2).np[:cm.size()]) + for (cd, cm) in zip(constraint_data, constraint_model) + ]) + + LJ = [] + for cm, cd in zip(constraint_model, constraint_data): + Jc = pin.getConstraintJacobian(model, data, cm, cd) + LJ.append(Jc) + J = np.concatenate(LJ) + constr_array.append(constraint_value) + primal_feas = np.linalg.norm(constraint_value, np.inf) + real_constrain_feas = np.linalg.norm(constraint_value[:-3]) + real_feas_array[k] = real_constrain_feas + primal_feas_array[k] = primal_feas + q_array[k] = q + + if primal_feas < eps: + is_reach = True + break + + grad = 2*J.T.dot(constraint_value)/dim + target = constraint_value.dot(constraint_value)/dim + # grad = np.sign(sum(constraint_value)) * np.sum(J,axis=0) + + # grad = J.T.dot(np.sign(constraint_value))/dim + # target = np.sum(np.abs(constraint_value))/dim + step = 1e-4/np.linalg.norm(grad, np.inf) + q = pin.integrate(model, q, step * grad) + pin.framesForwardKinematics(model, data, q) + total_delta_q = q-q_start + if np.linalg.norm(total_delta_q, np.inf) > 0.2: + break + + pin.framesForwardKinematics(model, data, q) + min_feas = primal_feas + min_real_feas = real_constrain_feas + if not is_reach: + for_sort = np.column_stack( + (primal_feas_array[0:k+1], real_feas_array[0:k+1], q_array[0:k+1, :])) + + def key_sort(x): return x[0] + for_sort = sorted(for_sort, key=key_sort) + finish_q = for_sort[0][2:] + q = finish_q + min_feas = for_sort[0][0] + min_real_feas = for_sort[0][1] + pin.framesForwardKinematics(model, data, q) + + return q, min_feas, is_reach + +def closedLoopInverseKinematicsProximal( + rmodel, + rconstraint_model, + target_pos, + ideff, + q_start=None, + onlytranslation=False, + + max_it=100, + eps=1e-5, + rho=1e-10, + mu=1e-3, + q_delta_threshold:float=0.75 +): + """ + q=inverseGeomProximalSolver(rmodel,rdata,rconstraint_model,rconstraint_data,idframe,pos,only_translation=False,max_it=100,eps=1e-12,rho=1e-10,mu=1e-4) + + Perform inverse kinematics with a proximal solver. + + Args: + rmodel (pinocchio.Model): Pinocchio model. + rdata (pinocchio.Data): Pinocchio data. + rconstraint_model (list): List of constraint models. + rconstraint_data (list): List of constraint data. + target_pos (np.array): Target position. + name_eff (str, optional): Name of the frame. Defaults to "effecteur". + onlytranslation (bool, optional): Only consider translation. Defaults to False. + max_it (int, optional): Maximum number of iterations. Defaults to 100. + eps (float, optional): Convergence threshold for primal and dual feasibility. Defaults to 1e-12. + rho (float, optional): Scaling factor for the identity matrix. Defaults to 1e-10. + mu (float, optional): Penalty parameter. Defaults to 1e-4. + + Returns: + np.array: Joint positions that achieve the desired target position. + + raw here (L84-126):https://gitlab.inria.fr/jucarpen/pinocchio/-/blob/pinocchio-3x/examples/simulation-closed-kinematic-chains.py + """ + TRAJ_CONS_DEVIDER = 1 + model = pin.Model(rmodel) + constraint_model = [pin.RigidConstraintModel(x) for x in rconstraint_model] + # add a contact constraint + target_SE3 = pin.SE3.Identity() + target_SE3.translation = np.array(target_pos[0:3]) + frame_constraint = model.frames[ideff] + parent_joint = frame_constraint.parentJoint + placement = frame_constraint.placement + if onlytranslation: + final_constraint = pin.RigidConstraintModel(pin.ContactType.CONTACT_3D, + model, parent_joint, + placement, 0, target_SE3, + pin.ReferenceFrame.LOCAL) + else: + final_constraint = pin.RigidConstraintModel( + pin.ContactType.CONTACT_6D, model, parent_joint, placement, + model.getJointId("universel"), target_pos, + pin.ReferenceFrame.LOCAL) + raise Exception("Not implemented") + + final_constraint.name = "TrajCons" + constraint_model.append(final_constraint) + + data = model.createData() + constraint_data = [cm.createData() for cm in constraint_model] + + # proximal solver (black magic) + if q_start is None: + q = pin.neutral(model) + else: + q = q_start + constraint_dim = 0 + for cm in constraint_model: + constraint_dim += cm.size() + is_reach = False + # Solve the inverse kinematics for open loop kinematics + # Only translation is considered + # ref: https://gepettoweb.laas.fr/doc/stack-of-tasks/pinocchio/master/doxygen-html/md_doc_b_examples_d_inverse_kinematics.html#autotoc_md44 + + y = np.ones((constraint_dim)) + data.M = np.eye(model.nv) * rho + kkt_constraint = pin.ContactCholeskyDecomposition(model, constraint_model) + primal_feas_array = np.zeros(max_it) + real_feas_array = np.zeros(max_it) + q_array = np.zeros((max_it, len(q))) + for k in range(max_it): + pin.computeJointJacobians(model, data, q) + kkt_constraint.compute(model, data, constraint_model, constraint_data, mu) + constraint_value = np.concatenate([ + (pin.log(cd.c1Mc2).np[:cm.size()]) + for (cd, cm) in zip(constraint_data, constraint_model) + ]) + + LJ = [] + for cm, cd in zip(constraint_model, constraint_data): + Jc = pin.getConstraintJacobian(model, data, cm, cd) + LJ.append(Jc) + J = np.concatenate(LJ) + traj_cons_value = constraint_value[-3:] + # if np.linalg.norm(traj_cons_value) < 0.01: + # traj_cons_value = np.zeros(3) + constraint_value[-3:] = traj_cons_value / TRAJ_CONS_DEVIDER + primal_feas = np.linalg.norm(constraint_value, np.inf) + real_constrain_feas = np.linalg.norm(constraint_value[:-3]) + real_feas_array[k] = real_constrain_feas + primal_feas_array[k] = primal_feas + q_array[k] = q + # dual_feas = np.linalg.norm(J.T.dot(constraint_value + y), np.inf) + if primal_feas < eps: + is_reach = True + break + + rhs = np.concatenate([-constraint_value - y * mu, np.zeros(model.nv)]) + + dz = kkt_constraint.solve(rhs) + dy = dz[:constraint_dim] + dq = dz[constraint_dim:] + + alpha = 0.5 + if np.linalg.norm(dq, np.inf) > q_delta_threshold: + break + q = pin.integrate(model, q, -alpha * dq) + y -= alpha * (-dy + y) + + pin.framesForwardKinematics(model, data, q) + + # pos_e = np.linalg.norm(data.oMf[id_frame].translation - + # np.array(target_pos[0:3])) + min_feas = primal_feas + min_real_feas = real_constrain_feas + if not is_reach: + for_sort = np.column_stack( + (primal_feas_array, real_feas_array, q_array)) + + def key_sort(x): return x[0] + for_sort = sorted(for_sort, key=key_sort) + finish_q = for_sort[0][2:] + q = finish_q + min_feas = for_sort[0][0] + min_real_feas = for_sort[0][1] + pin.framesForwardKinematics(model, data, q) + # print(min_real_feas," ", is_reach) + + return q, min_feas, is_reach \ No newline at end of file diff --git a/jmoves/auto_robot_design/motion_planning/many_dataset_api.py b/jmoves/auto_robot_design/motion_planning/many_dataset_api.py new file mode 100644 index 00000000..3b0b2ce2 --- /dev/null +++ b/jmoves/auto_robot_design/motion_planning/many_dataset_api.py @@ -0,0 +1,263 @@ +import time +import concurrent +import numpy as np +import pandas as pd + +from auto_robot_design.optimization.rewards.reward_base import NotReacablePoints, RewardManager +from auto_robot_design.user_interface.check_in_ellips import ( + Ellipse, +) +from auto_robot_design.motion_planning.dataset_generator import ( + Dataset, + set_up_reward_manager, +) +from auto_robot_design.description.builder import ( + jps_graph2pinocchio_robot_3d_constraints, +) + + +def calc_criteria(id_design, joint_poses, graph_manager, builder, reward_manager): + """ + Calculate the criteria for a given design based on joint poses and reward management. + Args: + id_design (int): Identifier for the design. + joint_poses (list): List of joint poses. + graph_manager (GraphManager): Instance of GraphManager to handle graph operations. + builder (Builder): Instance of Builder to construct robots. + reward_manager (RewardManager): Instance of RewardManager to calculate rewards. + Returns: + tuple: A tuple containing the design identifier and partial rewards. + """ + graph = graph_manager.get_graph(joint_poses) + fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints(graph, builder) + reward_manager.precalculated_trajectories = None + try: + _, partial_rewards, _ = reward_manager.calculate_total( + fixed_robot, free_robot, builder.actuator["default"] + ) + except NotReacablePoints as e: + partial_rewards = [0] + + return id_design, partial_rewards + + +def parallel_calculation_rew_manager(indexes, dataset, reward_manager): + """ + Perform parallel calculations on a subset of a dataset using a reward manager. + This function utilizes a process pool executor to parallelize the computation + of criteria for a subset of the dataset. The results are then aggregated into + a new DataFrame with updated reward values. + Args: + indexes (list): List of indexes to select the subset of the dataset. + dataset (object): The dataset object containing the data and associated parameters. + reward_manager (object): The reward manager object used for calculating rewards. + Returns: + pd.DataFrame: A new DataFrame containing the subset of the dataset with updated reward values. + """ + rwd_mgrs = [reward_manager] * len(indexes) + sub_df = dataset.df.loc[indexes] + designs = sub_df.values[:, : dataset.params_size].round(4) + grph_mngrs = [dataset.graph_manager] * len(indexes) + bldrs = [dataset.builder] * len(indexes) + + with concurrent.futures.ProcessPoolExecutor() as executor: + results = list( + executor.map( + calc_criteria, list(indexes), designs, grph_mngrs, bldrs, rwd_mgrs + ) + ) + new_df = pd.DataFrame(columns=dataset.df.columns) + for k, res in results: + new_df.loc[k] = sub_df.loc[k] + new_df.at[k, "reward"] = np.sum(res) + new_df = new_df.dropna() + return new_df + + +class ManyDatasetAPI: + + def __init__(self, path_to_dirs): + """ + Initializes the DatasetGenerator with a list of directories. + Args: + path_to_dirs (list of str): A list of directory paths where datasets are located. + Attributes: + datasets (list of Dataset): A list of Dataset objects created from the provided directory paths. + """ + self.paths = path_to_dirs + self.datasets = [] + [Dataset(path) for path in path_to_dirs] + + def get_indexes_cover_ellipse(self, ellipse: Ellipse): + """ + Get the indexes of all designs that cover the given ellipse. + Args: + ellipse (Ellipse): The ellipse object for which to find covering design indexes. + Returns: + list: A list of indexes from all datasets that cover the given ellipse. + """ + + list_indexes_2d = [ + dataset.get_all_design_indexes_cover_ellipse(ellipse) + for dataset in self.datasets + ] + + return self._index_2d_to_1d(list_indexes_2d) + + def _indexes_1d_to_2d(self, list_indexes_1d): + list_indexes_2d = [[] for __ in range(len(self.datasets))] + for index in list_indexes_1d: + list_indexes_2d[index[0]].append(index[1]) + list_indexes_2d = tuple( + [np.array(index_list) for index_list in list_indexes_2d] + ) + return list_indexes_2d + + def _index_2d_to_1d(self, list_indexes_2d): + list_indexes_1d = [] + for id_design, indexes in enumerate(list_indexes_2d): + list_indexes_1d += [(id_design, index) for index in indexes] + np.random.shuffle(list_indexes_1d) + return list_indexes_1d + + def sorted_indexes_by_reward(self, indexes, num_samples, reward_manager): + """ + Sorts and returns indexes based on rewards for each dataset. + Args: + indexes (list of np.ndarray): A list of numpy arrays where each array contains indexes for corresponding datasets. + num_samples (int): The number of samples to randomly choose from each dataset. + reward_manager (RewardManager): An instance of RewardManager to calculate rewards. + Returns: + list of pd.Index: A list of pandas Index objects, each containing sorted indexes based on rewards for the corresponding dataset. + """ + + if len(indexes) == 0: + return [] + + indexes = self._indexes_1d_to_2d(indexes) + + samples = [] + for k, dataset in enumerate(self.datasets): + + if len(indexes[k]) > 0: + sample_indexes = np.random.choice(indexes[k].flatten(), num_samples) + df = parallel_calculation_rew_manager( + sample_indexes, dataset, reward_manager + ) + + df.sort_values(["reward"], ascending=False, inplace=True) + df = df[df["reward"] > 0] + samples += [ + (k, index, reward) + for index, reward in zip(df.index, df["reward"].values) + ] + sorted_samples = sorted(samples, key=lambda x: x[-1], reverse=True) + return sorted_samples + + def indexes2graph(self, indexes): + + if len(indexes) == 0: + return [] + + list_graphs = [] + for index in indexes: + dataset = self.datasets[index[0]] + jps = dataset.df.loc[index[1]].values[: dataset.params_size] + + graph = dataset.graph_manager.get_graph(jps) + + if len(index) > 2: + list_graphs.append((graph, *index[2:])) + return list_graphs + + def get_indexes_in_bound(self, indexes, bounds): + + if len(indexes) == 0: + return [] + + indexes = self._indexes_1d_to_2d(indexes) + + indexes_in_bounds = [] + for k, dataset in enumerate(self.datasets): + + if len(indexes[k]) > 0: + index_in_bound = dataset.get_filtered_df_with_jps_limits(bounds[k], indexes[k]) + indexes_in_bounds.append(index_in_bound) + + return self._index_2d_to_1d(indexes_in_bounds) + + +def get_sorted_graph_from_datasets( + many_dataset_api: ManyDatasetAPI, ellipse: Ellipse, rewards: RewardManager +): + valid_design_indexes = many_dataset_api.get_indexes_cover_ellipse(ellipse) + sorted_design_indexes_with_rewards = many_dataset_api.sorted_indexes_by_reward( + valid_design_indexes + ) + sorted_graphs = many_dataset_api.indexes2graph(sorted_design_indexes_with_rewards) + return sorted_graphs + + +def test_dataset_functionality(path_to_dir): + + dataset = Dataset(path_to_dir) + + df_upd = dataset.df.assign( + total_ws=lambda x: np.sum(x.values[:, dataset.params_size :], axis=1) + / dataset.ws_grid_size + ) + + df_upd = df_upd[df_upd["total_ws"] > 100 / dataset.ws_grid_size] + df_upd = df_upd.sort_values(["total_ws"], ascending=False) + from auto_robot_design.pinokla.default_traj import add_auxilary_points_to_trajectory + + des_point = np.array([-0.1, -0.35]) + traj = np.array( + add_auxilary_points_to_trajectory(([des_point[0]], [des_point[1]])) + ).T + test_ws = dataset.get_workspace_by_indexes([0])[0] + traj_6d = test_ws.robot.motion_space.get_6d_traj(traj) + + reward_manager = set_up_reward_manager(traj_6d) + time_start = time.perf_counter() + parallel_calculation_rew_manager(df_upd.head(200).index, dataset, reward_manager) + time_end = time.perf_counter() + + print(f"Time spent {time_end - time_start}") + + +def test_many_dataset_api(list_paths): + + many_dataset = ManyDatasetAPI(list_paths) + + cover_design_indexes = many_dataset.get_indexes_cover_ellipse( + Ellipse(np.array([0.05, -0.21]), 0, np.array([0.1, 0.04])) + ) + from auto_robot_design.pinokla.default_traj import add_auxilary_points_to_trajectory + + des_point = np.array([-0.1, -0.35]) + traj = np.array( + add_auxilary_points_to_trajectory(([des_point[0]], [des_point[1]])) + ).T + test_ws = many_dataset.datasets[0].get_workspace_by_indexes([0])[0] + traj_6d = test_ws.robot.motion_space.get_6d_traj(traj) + + reward_manager = set_up_reward_manager(traj_6d) + + sorted_indexes = many_dataset.sorted_indexes_by_reward( + cover_design_indexes, 10, reward_manager + ) + + # for desing in sorted_indexes: + # print(desing) + # for ind, rew in desing.items(): + # print(ind, rew) + + +if __name__ == "__main__": + + paths = [ + "/var/home/yefim-work/Documents/auto-robotics-design/top_5", + "/var/home/yefim-work/Documents/auto-robotics-design/top_8", + ] + + test_many_dataset_api(paths) diff --git a/jmoves/auto_robot_design/motion_planning/trajectory_ik_manager.py b/jmoves/auto_robot_design/motion_planning/trajectory_ik_manager.py new file mode 100644 index 00000000..5db9e891 --- /dev/null +++ b/jmoves/auto_robot_design/motion_planning/trajectory_ik_manager.py @@ -0,0 +1,116 @@ +from functools import partial +import time +import meshcat +import numpy as np +import pinocchio as pin +from pinocchio.visualize import MeshcatVisualizer + +from auto_robot_design.motion_planning.ik_calculator import ( + closed_loop_ik_pseudo_inverse, open_loop_ik, closedLoopInverseKinematicsProximal) + +IK_METHODS = {"Open_Loop": open_loop_ik, + "Closed_Loop_PI": closed_loop_ik_pseudo_inverse, + "Closed_Loop_Proximal": closedLoopInverseKinematicsProximal} + + +class TrajectoryIKManager(): + def __init__(self) -> None: + self.model = None + self.constraint_models = None + self.solver = None + self.visual_model = None + self.default_name = "Closed_Loop_PI" + # self.default_name = "Closed_Loop_Proximal" + self.frame_name = "EE" + + def register_model(self, model, constraint_models, visual_model=None): + """The function to register a model of a mechanism + + Args: + model (_type_): pinocchio model of a mechanism + constraint_models (_type_): model of constraints + """ + self.model = model + self.constraint_models = constraint_models + if visual_model: + self.visual_model = visual_model + + def set_solver(self, name: str, **params): + """Set the IK solver for trajectory following. + + Function uses names of the solvers from the dictionary IK_METHODS. + Args: + name (str): name of the IK solver algorithm + """ + # try to set the solver and warn if the setting process failed, ib case of a fail set the default solver + try: + self.solver = partial(IK_METHODS[name], **params) + except KeyError: + print( + f'Cannot set solver - wrong name: {name}. Solver set to default value: {self.default_name}') + self.solver = partial(IK_METHODS[self.default_name], {}) + except TypeError: + print( + f"Cannot set solver - wrong parameters for solver: {name}. Solver set to default value: {self.default_name}") + self.solver = partial(IK_METHODS[self.default_name], {}) + + def follow_trajectory(self, trajectory: np.ndarray, q_start: np.ndarray = None, viz=None): + """The function to follow a trajectory. + + Args: + trajectory (np.array): trajectory which should be followed + q_start (np.array, optional): initial point in configuration space. Defaults to None. + + Raises: + Exception: raise an exception if the solver is not set + + Returns: + results of trajectory following: ee positions, configuration space points, constraint errors, reach array + """ + if self.solver: + ik_solver = self.solver + else: + raise ValueError( + "set a solver before an attempt to follow a trajectory") + + frame_id = self.model.getFrameId(self.frame_name) + # create a copy of a registered model + model = pin.Model(self.model) + data = model.createData() + if q_start is not None: + q = q_start + else: + q = pin.neutral(self.model) + + # We initialize all arrays to have the length of the trajectory to have all results of the same shape + # 3D coordinates of the following frame, TODO: consider a way to specify what kind of positioning we need + poses = np.zeros((len(trajectory), 3)) + # reach mask + reach_array = np.zeros(len(trajectory)) + # calculated positions in configuration space + q_array = np.zeros((len(trajectory), len(q))) + # final error for each point + constraint_errors = np.zeros((len(trajectory), 1)) + for idx, point in enumerate(trajectory): + q, min_feas, is_reach = ik_solver( + model, + self.constraint_models, + point, + frame_id, + q_start=q, + ) + # if the point is not reachable, we stop the trajectory following + if not is_reach: + break + if viz: + viz.display(q) + time.sleep(0.03) + + # if the point is reachable, we store the values in corresponding arrays + pin.framesForwardKinematics(model, data, q) + poses[idx] = data.oMf[frame_id].translation + q_array[idx] = q + constraint_errors[idx] = min_feas + reach_array[idx] = is_reach + + return poses, q_array, constraint_errors, reach_array diff --git a/jmoves/auto_robot_design/motion_planning/utils.py b/jmoves/auto_robot_design/motion_planning/utils.py new file mode 100644 index 00000000..d791459b --- /dev/null +++ b/jmoves/auto_robot_design/motion_planning/utils.py @@ -0,0 +1,219 @@ + +import os, pathlib +import numpy as np +import matplotlib.pyplot as plt +import pickle +from auto_robot_design.user_interface.check_in_ellips import ( + Ellipse, + check_points_in_ellips +) + + +def create_bounded_box(center: np.ndarray, bound_range: np.ndarray): + bounds = np.array( + [ + [-bound_range[0] / 2 - 0.001, bound_range[0] / 2], + [-bound_range[1] / 2, bound_range[1] / 2], + ] + ) + bounds[0, :] += center[0] + bounds[1, :] += center[1] + + return bounds + + +class Workspace: + def __init__(self, robot, bounds, resolution: np.ndarray): + ''' Class for working workspace of robot like grid with `resolution` and `bounds`. + Grid's indices go from bottom-right to upper-left corner of bounds + + ''' + self.robot = robot + self.resolution = resolution + self.bounds = bounds + + num_indexes = (np.max(bounds, 1) - np.min(bounds, 1)) / self.resolution + self.mask_shape = np.zeros_like(num_indexes) + self.bounds = np.zeros_like(bounds) + # Bounds correction for removing ucertainties with indices. Indices was calculated with minimal `bounds` and `resolution` + for id, idx_value in enumerate(num_indexes): + residue_div = np.round(idx_value % 1, 6) + + check_bound_size = np.isclose(residue_div, 1.0) + check_min_bound = np.isclose( + bounds[id, 0] % self.resolution[id], 0) + check_max_bound = np.isclose( + bounds[id, 1] % self.resolution[id], 0) + if check_bound_size and check_min_bound and check_max_bound: + self.bounds[id, :] = bounds[id, :] + self.mask_shape[id] = num_indexes[id] + else: + self.bounds[id, 1] = np.round( + bounds[id, 1] + bounds[id, 1] % self.resolution[id], 4) + self.bounds[id, 0] = np.round( + bounds[id, 0] - bounds[id, 0] % self.resolution[id], 4) + self.mask_shape[id] = np.ceil( + (self.bounds[id, 1] - self.bounds[id, 0]) / + self.resolution[id] + ) + self.mask_shape = np.asarray(self.mask_shape.round(4), dtype=int) + 1 + self.bounds = self.bounds.round(4) + self.set_nodes = {} + self.reachable_index = {} + # self.grid_nodes = np.zeros(tuple(self.mask_shape), dtype=object) + + def calc_grid_position(self, indexes): + + pos = indexes * self.resolution + self.bounds[:, 0] + + return pos + + def calc_index(self, pos): + return np.round((pos - self.bounds[:, 0]) / self.resolution).astype(int) + + def calc_grid_index(self, pos): + idx = self.calc_index(pos) + grid_index = 0 + for k, ind in enumerate(idx): + grid_index += ind * np.prod(self.mask_shape[:k]) + + return grid_index + + def calc_grid_index_with_index(self, index): + grid_index = 0 + for k, ind in enumerate(index): + grid_index += ind * np.prod(self.mask_shape[:k]) + return grid_index + + def point_in_bound(self, point: np.ndarray): + return np.all(point >= self.bounds[:, 0] - self.resolution*0.9) and np.all(point <= self.bounds[:, 1] + self.resolution*0.9) + # def update_by_reach_mask(reachable_mask): + + + def check_points_in_ws(self, points: np.ndarray): + + check_array = np.zeros(points.shape[0], dtype=int) + grid_indexes = np.zeros(points.shape[0], dtype=int) + for idx, point in enumerate(points): + check_array[idx] = 1 if self.point_in_bound(point) else 0 + grid_indexes[idx] = self.calc_grid_index(point) + check_in_bound_points = np.all(check_array == 1) + check_reachable_points = set(grid_indexes.tolist()) <= set(self.reachable_index) + check_points_in_ws = False + if check_in_bound_points and check_reachable_points: + check_points_in_ws = True + return check_points_in_ws + + @property + def reachabilty_mask(self): + mask = np.zeros(tuple(self.mask_shape), dtype=bool) + + for index in self.reachable_index.values(): + mask[tuple(index)] = True + + return mask + + @property + def points(self): + points = [] + point = self.bounds[:, 0] + for m in range(self.mask_shape[0]): + for k in range(self.mask_shape[1]): + point = self.bounds[:, 0] + np.array( + self.resolution) * np.array([m, k]) + points.append(point) + # while point[1] <= self.bounds[1, 1]: + + # while point[0] <= self.bounds[0, 1]: + # points.append(point) + # m += 1 + # point = self.bounds[:, 0] + np.array( + # self.resolution) * np.array([m, k]) + # k += 1 + # m = 0 + # point = self.bounds[:, 0] + np.array( + # self.resolution) * np.array([m, k]) + + points = np.array(points) + return points + + @property + def reachable_points(self): + points = np.zeros((len(self.reachable_index), self.mask_shape.size), dtype=float) + for k, reach_index in enumerate(self.reachable_index.values()): + points[k,:] = self.calc_grid_position(reach_index) + return points + + +# def save_workspace(workspace: Workspace, path): +# init_points = workspace.bounds[:,0] +# resolution = workspace.resolution +# reachable_mask = workspace.reachabilty_mask + +# path = pathlib.Path(path) +# if not path.exists(): +# path.mkdir(parents=True, exist_ok=True) + +# name_file = 'workspace_data.npz' +# np.savez_compressed(path / name_file, init_points=init_points, resolution=resolution, reachable_mask=reachable_mask) +# with open(path / "robot.pkl", "wb") as f: +# pickle.dump(workspace.robot, f) + + +# def load_workspace(path): +# path = pathlib.Path(path) +# file_data = np.load(path / 'workspace_data.npz') + +# with open(path / "robot.pkl", "rb") as f: +# robot = pickle.load(f) + +# init_points = file_data["init_points"] +# resolution = file_data["resolution"] +# reachable_mask = file_data["reachabilty_mask"] + +# bounds = np.zeros((init_points.size, 2), dtype=float) +# bounds[:,0] = init_points +# bounds[:,1] = init_points + resolution * np.array(reachable_mask.shape) + +# workspace = Workspace(robot, bounds, resolution) + +# reachable_indexes = np.argwhere(reachable_mask == 1) + +# workspace.mask_shape = reachable_mask.shape +# for index in reachable_indexes: +# workspace.reachable_index[workspace.calc_grid_index_with_index(index)] = index + +# return workspace + + +def ellipse_in_workspace(ellips: Ellipse, workspace: Workspace, strong_check = True, verbose=0): + + if verbose > 0: + grid_points = workspace.points + plt.plot(grid_points[:,0],grid_points[:,1], "rx") + reach_grid_points = workspace.reachable_points + plt.plot(reach_grid_points[:,0],reach_grid_points[:,1], "gx") + + ellips_in_ws = False + points_on_ellps = ellips.get_points(np.min(workspace.resolution)).T + + ellips_in_ws = workspace.check_points_in_ws(points_on_ellps) + + if verbose > 0: + plt.plot(points_on_ellps[:,0], points_on_ellps[:,1], "c") + + if ellips_in_ws and strong_check: + reach_ws_points = workspace.points + mask_ws_n_ellps = check_points_in_ellips(reach_ws_points, ellips, np.max(workspace.resolution)*15) + ellips_in_ws = ellips_in_ws and workspace.check_points_in_ws(reach_ws_points[mask_ws_n_ellps,:]) + + if verbose > 0: + plt.plot(reach_ws_points[mask_ws_n_ellps,:][:,0], reach_ws_points[mask_ws_n_ellps,:][:,1], "xc") + + return ellips_in_ws + + +def build_graphs(graphs, builder, func, *args, **kwargs): + for graph in graphs: + fixed_robot, free_robot = func(graph, builder, *args, **kwargs) + yield fixed_robot, free_robot \ No newline at end of file diff --git a/jmoves/auto_robot_design/optimization/analyze.py b/jmoves/auto_robot_design/optimization/analyze.py new file mode 100644 index 00000000..0672c8d2 --- /dev/null +++ b/jmoves/auto_robot_design/optimization/analyze.py @@ -0,0 +1,66 @@ +from copy import deepcopy +from auto_robot_design.description.builder import jps_graph2urdf_by_bulder +import numpy as np + + + + +from auto_robot_design.optimization.optimizer import PymooOptimizer +from auto_robot_design.optimization.problems import CalculateMultiCriteriaProblem +from auto_robot_design.optimization.saver import load_checkpoint + +def get_optimizer_and_problem(path) -> tuple[PymooOptimizer, CalculateMultiCriteriaProblem]: + problem = CalculateMultiCriteriaProblem.load( + path) + checklpoint = load_checkpoint(path) + + optimizer = PymooOptimizer(problem, checklpoint) + optimizer.load_history(path) + res = optimizer.run() + + return optimizer, problem, res + + +def get_pareto_sample_linspace(res, sample_len: int): + + sample_indices = np.linspace(0, len(res.F) - 1, sample_len, dtype=int) + sample_x = res.X[sample_indices] + sample_F = res.F[sample_indices] + + return sample_x, sample_F + + +def get_pareto_sample_histogram(res, sample_len: int): + """Histogram uses 0 from reword vector + + Args: + res (_type_): _description_ + sample_len (int): _description_ + + Returns: + _type_: _description_ + """ + rewards = res.F + _, bins_edg = np.histogram(rewards[:,0], sample_len) + bin_indices = np.digitize(rewards[:,0], bins_edg, right=True) + bins_set_id = [np.where(bin_indices == i)[0] + for i in range(1, len(bins_edg))] + best_in_bins = [i[0] for i in bins_set_id] + sample_F = rewards[best_in_bins] + sample_X = res.X[best_in_bins] + return sample_X, sample_F + +def get_urdf_from_problem(sample_X: np.ndarray, problem: CalculateMultiCriteriaProblem): + problem.mutate_JP_by_xopt(problem.initial_xopt) + graphs = [] + urdf_j_des_l_des = [] + for x_i in sample_X: + problem.mutate_JP_by_xopt(x_i) + mutated_graph = deepcopy(problem.graph) + + robo_urdf, joint_description, loop_description = jps_graph2urdf_by_bulder( + mutated_graph, problem.builder) + graphs.append(mutated_graph) + urdf_j_des_l_des.append( + (robo_urdf, joint_description, loop_description)) + return graphs, urdf_j_des_l_des \ No newline at end of file diff --git a/jmoves/auto_robot_design/optimization/optimizer.py b/jmoves/auto_robot_design/optimization/optimizer.py new file mode 100644 index 00000000..26b5face --- /dev/null +++ b/jmoves/auto_robot_design/optimization/optimizer.py @@ -0,0 +1,42 @@ +import os +import dill + +import numpy as np + +class PymooOptimizer: + def __init__(self, problem, algortihm, saver=None) -> None: + self.history = {"X": [], "F": [], "Fs": [], "Mean":[]} + self.problem = problem + self.algorithm = algortihm + self.saver = saver + + def load_history(self, path): + with open(os.path.join(path, "history.pkl"), "rb") as f: + self.history.update(dill.load(f)) + + def run(self, checkpoint=False, **opt_params): + + self.algorithm.setup(self.problem, **opt_params) + while self.algorithm.has_next(): + + pop = self.algorithm.ask() + self.algorithm.evaluator.eval(self.problem, pop) + + arrs_F = np.zeros((len(pop), self.problem.n_obj)) + for pop_id, p in enumerate(pop): + self.history["X"].append(p.X) + self.history["F"].append(p.F) + self.history["Fs"].append(p.get("Fs")) + arrs_F[pop_id] = p.F + + self.algorithm.tell(infills=pop) + self.history["Mean"].append(np.mean(arrs_F, axis=0)) + + if checkpoint: + assert self.saver is not None + self.saver.save_history(self.history) + with open(os.path.join(self.saver.path, "checkpoint.pkl"), "wb") as f: + dill.dump(self.algorithm, f) + + res = self.algorithm.result() + return res diff --git a/jmoves/auto_robot_design/optimization/problems.py b/jmoves/auto_robot_design/optimization/problems.py new file mode 100644 index 00000000..f83e5d6e --- /dev/null +++ b/jmoves/auto_robot_design/optimization/problems.py @@ -0,0 +1,334 @@ +import os +from typing import Tuple, Union + +import dill +import numpy as np +from pymoo.core.problem import ElementwiseProblem +from auto_robot_design.description.builder import jps_graph2pinocchio_robot, jps_graph2pinocchio_robot_3d_constraints +from auto_robot_design.generator.topologies.graph_manager_2l import GraphManager2L +from auto_robot_design.optimization.rewards.reward_base import (Reward, RewardManager) +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.description.mesh_builder.mesh_builder import MeshBuilder, jps_graph2pinocchio_meshes_robot + +def get_optimizing_joints(graph, constrain_dict): + """ + Retrieves the optimizing joints from a graph based on the given constraint dictionary. + Adapter constraints from generator to the optimization problem. + + Parameters: + - graph (Graph): The graph containing the joints. + - constrain_dict (dict): A dictionary containing the constraints for each joint. + + Returns: + - optimizing_joints (dict): A dictionary containing the optimizing joints and their corresponding ranges. + + """ + name2jp = dict(map(lambda x: (x.name, x), graph.nodes())) + # filter the joints to be optimized + optimizing_joints = dict( + filter(lambda x: x[1]["optim"] and x[0] in name2jp, constrain_dict.items())) + # the procedure below is rather unstable + optimizing_joints = dict( + map( + lambda x: ( + name2jp[x[0]], + ( + x[1]["x_range"][0], + x[1].get("z_range", [-0.01, 0.01])[0], + x[1]["x_range"][1], + x[1].get("z_range", [0, 0])[1], + ), + ), + optimizing_joints.items(), + )) + return optimizing_joints + + +class CalculateCriteriaProblemByWeigths(ElementwiseProblem): + def __init__(self, graph, builder, jp2limits, rewards_and_trajectories: RewardManager, soft_constrain=None, **kwargs): + if "Actuator" in kwargs: + self.motor = kwargs["Actuator"] + else: + self.motor = None + + self.graph = graph + self.builder = builder + self.jp2limits = jp2limits + self.opt_joints = list(self.jp2limits.keys()) + self.soft_constrain = soft_constrain + self.rewards_and_trajectories: RewardManager = rewards_and_trajectories + self.rewards_and_trajectories.close_trajectories() + + self.initial_xopt, __, upper_bounds, lower_bounds = self.convert_joints2x_opt() + super().__init__( + n_var=len(self.initial_xopt), + n_obj=1, + xu=upper_bounds, + xl=lower_bounds, + **kwargs, + ) + + def _evaluate(self, x, out, *args, **kwargs): + self.mutate_JP_by_xopt(x) + fixed_robot, free_robot = jps_graph2pinocchio_robot( + self.graph, self.builder) + # position constrain + self.rewards_and_trajectories.precalculated_trajectories = None + constrain_error, results = self.soft_constrain.calculate_constrain_error( + self.rewards_and_trajectories.crag, fixed_robot, free_robot) + if constrain_error > 0: + out["F"] = constrain_error + out["Fs"] = self.rewards_and_trajectories.dummy_partial() + return + else: + for i, point_set in enumerate(self.soft_constrain.points): + self.rewards_and_trajectories.check_constrain_trajectory( + point_set, results[i]) + + total_reward, partial_rewards, _ = self.rewards_and_trajectories.calculate_total( + fixed_robot, free_robot, self.motor) + # the form of the output required by the pymoo lib + + out["F"] = total_reward + out["Fs"] = partial_rewards + + def convert_joints2x_opt(self): + x_opt = np.zeros(len(self.opt_joints) * 2) + upper_bounds = np.zeros(len(x_opt)) + lower_bounds = np.zeros(len(x_opt)) + i = 0 + for jp in self.opt_joints: + lims = self.jp2limits[jp] + x_opt[i: i + 2] = np.array([jp.r[0], jp.r[2]]) + upper_bounds[i: i + 2] = np.array(lims[2:]) + x_opt[i: i + 2] + lower_bounds[i: i + 2] = np.array(lims[:2]) + x_opt[i: i + 2] + i += 2 + + return x_opt, self.opt_joints, upper_bounds, lower_bounds + + def mutate_JP_by_xopt(self, x_opt): + num_params_one_jp = len(x_opt) // len(self.opt_joints) + + for id, jp in zip(range(0, len(x_opt), num_params_one_jp), self.opt_joints): + xz = x_opt[id: (id + num_params_one_jp)] + list_nodes = list(self.graph.nodes()) + id = list_nodes.index(jp) + list_nodes[id].r = np.array([xz[0], 0, xz[1]]) + + @classmethod + def load(cls, path, **kwargs): + with open(os.path.join(path, "problem_data.pkl"), "rb") as f: + new_prb_inst: CalculateCriteriaProblemByWeigths = dill.load(f) + new_prb_inst.mutate_JP_by_xopt(new_prb_inst.initial_xopt) + return new_prb_inst + + +class MultiCriteriaProblem(ElementwiseProblem): + def __init__(self, graph_manager: GraphManager2L, builder, rewards_and_trajectories: RewardManager, soft_constrain=None, **kwargs): + if "Actuator" in kwargs: + self.motor = kwargs["Actuator"] + else: + self.motor = None + + self.graph_manager = graph_manager + self.builder = builder + self.soft_constrain = soft_constrain + self.rewards_and_trajectories: RewardManager = rewards_and_trajectories + num_objs = self.rewards_and_trajectories.close_trajectories() + lower_bounds = [value[0] + for key, value in graph_manager.mutation_ranges.items()] + upper_bounds = [value[1] + for key, value in graph_manager.mutation_ranges.items()] + + super().__init__( + n_var=len(lower_bounds), + n_obj=num_objs, # len(self.rewards_and_trajectories.rewards), + xu=upper_bounds, + xl=lower_bounds, + **kwargs, + ) + + def _evaluate(self, x, out, *args, **kwargs): + xr = np.round(x, 4) + graph = self.graph_manager.get_graph(xr) + # fixed_robot, free_robot = jps_graph2pinocchio_robot( + # graph, self.builder) + fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints( + graph, self.builder) + # position constrain + self.rewards_and_trajectories.precalculated_trajectories = None + constrain_error, results = self.soft_constrain.calculate_constrain_error( + self.rewards_and_trajectories.crag, fixed_robot, free_robot) + if constrain_error > 0: + # for multiobjective optimization the constraint error is the same for all objectives + vectors_errs = np.array( + [constrain_error for __ in range(self.n_obj)]) + # print(vectors_errs) + out["F"] = vectors_errs + out["Fs"] = self.rewards_and_trajectories.dummy_partial() + + return + else: + for i, point_set in enumerate(self.soft_constrain.points): + self.rewards_and_trajectories.check_constrain_trajectory( + point_set, results[i]) + + __, partial_rewards, vector_rewards = self.rewards_and_trajectories.calculate_total( + fixed_robot, free_robot, self.motor) + + out["F"] = -np.array(vector_rewards) + out["Fs"] = partial_rewards + + @classmethod + def load(cls, path, **kwargs): + with open(os.path.join(path, "problem_data.pkl"), "rb") as f: + new_prb_inst: MultiCriteriaProblem = dill.load(f) + return new_prb_inst + +class SingleCriterionProblem(ElementwiseProblem): + def __init__(self, graph_manager: GraphManager2L, builder, rewards_and_trajectories: RewardManager, soft_constrain=None, **kwargs): + if "Actuator" in kwargs: + self.motor = kwargs["Actuator"] + else: + self.motor = None + + self.graph_manager = graph_manager + self.builder = builder + self.soft_constrain = soft_constrain + self.rewards_and_trajectories: RewardManager = rewards_and_trajectories + lower_bounds = [value[0] + for key, value in graph_manager.mutation_ranges.items()] + upper_bounds = [value[1] + for key, value in graph_manager.mutation_ranges.items()] + + super().__init__( + n_var=len(lower_bounds), + n_obj=1, + xu=upper_bounds, + xl=lower_bounds, + **kwargs, + ) + + def _evaluate(self, x, out, *args, **kwargs): + """Evaluate the reward for the parameters x + + Args: + x: parameters of the currently evaluating robot + out: the object to store the results in the form required by the pymoo lib + """ + x = np.round(x, 4) + graph = self.graph_manager.get_graph(x) + fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints(graph, self.builder) + # position constrain + self.rewards_and_trajectories.precalculated_trajectories = None + constrain_error, results = self.soft_constrain.calculate_constrain_error( + self.rewards_and_trajectories.crag, fixed_robot, free_robot) + if constrain_error > 0: + out["F"] = constrain_error + out["Fs"] = self.rewards_and_trajectories.dummy_partial() + return + else: + for i, point_set in enumerate(self.soft_constrain.points): + self.rewards_and_trajectories.check_constrain_trajectory( + point_set, results[i]) + + total_reward, partial_rewards, _ = self.rewards_and_trajectories.calculate_total( + fixed_robot, free_robot, self.motor) + # the form of the output required by the pymoo lib + out["F"] = total_reward + out["Fs"] = partial_rewards + + @classmethod + def load(cls, path, **kwargs): + """load the problem from the file problem_data.pkl + + Args: + path: path to folder with the saved problem + + Returns: + SingleCriterionProblem: load problem object from the file + """ + with open(os.path.join(path, "problem_data.pkl"), "rb") as f: + new_prb_inst: SingleCriterionProblem = dill.load(f) + + return new_prb_inst + + +class CalculateMultiCriteriaProblem(ElementwiseProblem): + def __init__(self, graph, builder, jp2limits, rewards_and_trajectories: RewardManager, soft_constrain=None, **kwargs): + if "Actuator" in kwargs: + self.motor = kwargs["Actuator"] + else: + self.motor = None + + self.graph = graph + self.builder = builder + self.jp2limits = jp2limits + self.opt_joints = list(self.jp2limits.keys()) + self.soft_constrain = soft_constrain + self.rewards_and_trajectories: RewardManager = rewards_and_trajectories + num_objs = self.rewards_and_trajectories.close_trajectories() + self.initial_xopt, __, upper_bounds, lower_bounds = self.convert_joints2x_opt() + super().__init__( + n_var=len(self.initial_xopt), + n_obj=num_objs, # len(self.rewards_and_trajectories.rewards), + xu=upper_bounds, + xl=lower_bounds, + **kwargs, + ) + + def _evaluate(self, x, out, *args, **kwargs): + self.mutate_JP_by_xopt(x) + fixed_robot, free_robot = jps_graph2pinocchio_robot( + self.graph, self.builder) + # position constrain + self.rewards_and_trajectories.precalculated_trajectories = None + constrain_error, results = self.soft_constrain.calculate_constrain_error( + self.rewards_and_trajectories.crag, fixed_robot, free_robot) + if constrain_error > 0: + vectors_errs = np.array( + [constrain_error for __ in range(self.n_obj)]) + # print(vectors_errs) + out["F"] = vectors_errs + out["Fs"] = self.rewards_and_trajectories.dummy_partial() + return + else: + for i, point_set in enumerate(self.soft_constrain.points): + self.rewards_and_trajectories.check_constrain_trajectory( + point_set, results[i]) + + __, partial_rewards, vector_rewards = self.rewards_and_trajectories.calculate_total( + fixed_robot, free_robot, self.motor) + # print(vector_rewards) + out["F"] = -np.array(vector_rewards) + out["Fs"] = partial_rewards + + def convert_joints2x_opt(self): + x_opt = np.zeros(len(self.opt_joints) * 2) + upper_bounds = np.zeros(len(x_opt)) + lower_bounds = np.zeros(len(x_opt)) + i = 0 + for jp in self.opt_joints: + lims = self.jp2limits[jp] + x_opt[i: i + 2] = np.array([jp.r[0], jp.r[2]]) + upper_bounds[i: i + 2] = np.array(lims[2:]) + x_opt[i: i + 2] + lower_bounds[i: i + 2] = np.array(lims[:2]) + x_opt[i: i + 2] + i += 2 + + return x_opt, self.opt_joints, upper_bounds, lower_bounds + + def mutate_JP_by_xopt(self, x_opt): + num_params_one_jp = len(x_opt) // len(self.opt_joints) + + for id, jp in zip(range(0, len(x_opt), num_params_one_jp), self.opt_joints): + xz = x_opt[id: (id + num_params_one_jp)] + list_nodes = list(self.graph.nodes()) + id = list_nodes.index(jp) + list_nodes[id].r = np.array([xz[0], 0, xz[1]]) + + @classmethod + def load(cls, path, **kwargs): + with open(os.path.join(path, "problem_data.pkl"), "rb") as f: + new_prb_inst: CalculateMultiCriteriaProblem = dill.load(f) + new_prb_inst.mutate_JP_by_xopt(new_prb_inst.initial_xopt) + return new_prb_inst diff --git a/jmoves/auto_robot_design/optimization/rewards/inertia_rewards.py b/jmoves/auto_robot_design/optimization/rewards/inertia_rewards.py new file mode 100644 index 00000000..97655255 --- /dev/null +++ b/jmoves/auto_robot_design/optimization/rewards/inertia_rewards.py @@ -0,0 +1,154 @@ +from typing import Tuple + +import numpy as np + +from auto_robot_design.optimization.rewards.reward_base import Reward +from auto_robot_design.pinokla.calc_criterion import DataDict + + +class MassReward(Reward): + """Mass of the robot + + Currently mass reward does not include the base""" + + def __init__(self, mass_key: str) -> None: + """Set the dictionary keys for the data + + Args: + mass_key (str): key for the mech mass + """ + self.mass_key = mass_key + super().__init__(name='Mass Reward') + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Just get the total mass from the data dictionaries + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + float: value of the reward + """ + # get the manipulability for each point at the trajectory + mass = trajectory_criteria[self.mass_key] + return -mass, [] + + +class ActuatedMassReward(Reward): + """Determinant of the mass matrix in coordinates of the actuated joints + + Currently mass reward does not include the base""" + + def __init__(self, mass_key: str, reachability_key: str) -> None: + """Set the dictionary keys for the data + + Args: + mass_key (str): key for the mech mass + """ + self.mass_key = mass_key + self.reachability_key = reachability_key + super().__init__(name='Actuated Mass Reward') + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Calculate mean determinant of the mass matrix in actuated coordinates. + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + float: value of the reward + """ + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + mass = np.linalg.det(point_criteria[self.mass_key]) + return 1/np.mean(mass), mass + + +class TrajectoryIMFReward(Reward): + """mean IMF along a trajectory""" + + def __init__(self, imf_key: str, trajectory_key: str, reachability_key: str) -> None: + """Set the dictionary keys for the data + + Args: + imf_key (str): key for the value of the IMF + trajectory_key (str): key for the trajectory points + error_key (str): key for the pose errors + """ + super().__init__(name='Trajectory IMF') + self.imf_key = imf_key + self.trajectory_key = trajectory_key + self.reachability_key = reachability_key + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Calculate the mean IMF along the trajectory + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + float: value of the reward + """ + + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + reward_vector = point_criteria[self.imf_key] + return np.mean(reward_vector), reward_vector + + + +# This reward is deprecated, in order to use it one have to update both constructor and calculate method +# class EndPointIMFReward(Reward): +# """IMF in the trajectory edge points""" + +# def __init__(self, imf_key: str, trajectory_key: str, error_key: str) -> None: +# """Set the dictionary keys for the data + +# Args: +# imf_key (str): key for the value of the IMF +# trajectory_key (str): key for the trajectory points +# error_key (str): key for the pose errors +# """ +# self.imf_key = imf_key +# self.trajectory_key = trajectory_key +# self.error_key = error_key +# super().__init__(name='End Point IMF') + +# def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: +# """Calculate the sum of IMF in starting and end points + +# Args: +# point_criteria (DataDict): all data of the characteristics assigned to each point +# trajectory_criteria (DataDict): all data of the trajectory characteristics +# trajectory_results (DataDict): data of trajectory and trajectory following + +# Returns: +# float: value of the reward +# """ +# IMF: list[np.array] = point_criteria[self.imf_key] +# errors = trajectory_results[self.error_key] +# if errors[0] > 1e-6: +# starting_result = 0 +# else: +# starting_result = IMF[0] + +# if errors[-1] > 1e-6: +# end_result = 0 +# else: +# end_result = IMF[-1] + +# return (starting_result + end_result)/2, [starting_result, end_result] diff --git a/jmoves/auto_robot_design/optimization/rewards/jacobian_and_inertia_rewards.py b/jmoves/auto_robot_design/optimization/rewards/jacobian_and_inertia_rewards.py new file mode 100644 index 00000000..f84bae8b --- /dev/null +++ b/jmoves/auto_robot_design/optimization/rewards/jacobian_and_inertia_rewards.py @@ -0,0 +1,267 @@ +from typing import Tuple + +import numpy as np + +from auto_robot_design.optimization.rewards.reward_base import Reward +from auto_robot_design.pinokla.calc_criterion import DataDict + +GRAVITY = 9.81 + + +def calculate_achievable_forces_z(manipulability_matrices: list[np.array], pick_effort: float, + max_effort_coefficient: float) -> np.ndarray: + + n_steps = len(manipulability_matrices) + + achievable_forces_z = np.zeros(n_steps) + for i in range(n_steps): + # the force matrix is the transpose of Jacobian, it transforms forces into torques + force_matrix = np.transpose(manipulability_matrices[i]) + # calculate torque vector that is required to get unit force in the z direction. + # it also declares the ratio of torques that provides z-directed force + z_unit_force_torques = np.abs(force_matrix @ np.array([0, 1])) + # calculate the factor that max out the higher torque + achievable_force_z = pick_effort * \ + max_effort_coefficient/max(z_unit_force_torques) + # calculate extra force that can be applied to the payload + achievable_forces_z[i] = abs(achievable_force_z) + + return achievable_forces_z + + +class HeavyLiftingReward(Reward): + """Calculate the mass that can be held still using up to max_effort_coef of the motor capacity. + + Final reward is the minimum mass that can be held still at each point at the trajectory. + + Args: + Reward (float): mass capacity + """ + + def __init__(self, + manipulability_key, + mass_key: str, + reachability_key: str, + max_effort_coef=0.7) -> None: + super().__init__(name="Heavy Lifting Reward") + self.max_effort_coefficient = max_effort_coef + self.manip_key = manipulability_key + self.reachability_key = reachability_key + self.mass_key = mass_key + + def calculate(self, point_criteria: DataDict, + trajectory_criteria: DataDict, trajectory_results: DataDict, + **kwargs) -> Tuple[float, list[float]]: + """The reward is the minimum mass that can be held still using up to max_effort_coef of the motor capacity at the trajectory. + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Raises: + KeyError: this function requires motor description + + Returns: + float: value of the reward + list[float]: value of the mass that can be held still at each point + """ + if "Actuator" in kwargs: + pick_effort = kwargs["Actuator"].peak_effort + else: + raise KeyError("Lifting criterion requires the Actuator") + + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if all points are reached + if not is_trajectory_reachable: + return 0, [] + # manipulability is the jacobian between the actuators and endeffector + manipulability_matrices: list[np.array] = point_criteria[self.manip_key] + mass = trajectory_criteria[self.mass_key] + achievable_forces_z_vec = calculate_achievable_forces_z(manipulability_matrices, pick_effort, self.max_effort_coefficient) + reward_vector = achievable_forces_z_vec / (GRAVITY * mass) + reward = np.min(reward_vector) + + return reward, reward_vector + + +class MeanHeavyLiftingReward(Reward): + """Calculate the mass that can be held still using up to 70% of the motor capacity. + + Final reward is the mean of the mass that can be held still at each point. + + Args: + Reward (float): mass capacity + """ + + def __init__(self, manipulability_key, mass_key: str, reachability_key: str, max_effort_coef=0.7) -> None: + super().__init__('Mean Heavy Lifting Reward') + self.max_effort_coefficient = max_effort_coef + self.manip_key = manipulability_key + self.reachability_key = reachability_key + self.mass_key = mass_key + + def calculate(self, point_criteria: DataDict, + trajectory_criteria: DataDict, trajectory_results: DataDict, + **kwargs) -> Tuple[float, list[float]]: + """_summary_ + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Raises: + KeyError: this function requires motor description + + Returns: + float: value of the reward + """ + if "Actuator" in kwargs: + pick_effort = kwargs["Actuator"].peak_effort + else: + raise KeyError("Lifting criterion requires the Actuator") + + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + manipulability_matrices: list[np.array] = point_criteria[ + self.manip_key] + mass = trajectory_criteria[self.mass_key] + achievable_forces_z_vec = calculate_achievable_forces_z( + manipulability_matrices, pick_effort, self.max_effort_coefficient) + reward_vector = achievable_forces_z_vec / (GRAVITY * mass) + reward = np.mean(reward_vector) + + return reward, reward_vector + + +class AccelerationCapability(Reward): + """Calculate the reward that combine effective inertia and force capability. + + At a point it is an acceleration along the trajectory the EE would have in zero gravity if it has zero speed. + The final reward is the mean of the acceleration at each point. + """ + + def __init__(self, manipulability_key: str, trajectory_key: str, reachability_key: str, actuated_mass_key: str, max_effort_coef=0.7) -> None: + super().__init__('Acceleration Capability') + self.max_effort_coefficient = max_effort_coef + self.manip_key = manipulability_key + self.trajectory_key = trajectory_key + self.reachability_key = reachability_key + self.actuated_mass_key = actuated_mass_key + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """_summary_ + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + float: value of the reward + """ + if "Actuator" in kwargs: + pick_effort = kwargs["Actuator"].peak_effort + else: + raise KeyError("Lifting criterion requires the Actuator") + + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + # manipulability is the jacobian between the actuators and endeffector + # get the manipulability for each point at the trajectory + manipulability_matrices: list[np.array] = point_criteria[self.manip_key] + effective_mass_matrices: list[np.array] = point_criteria[self.actuated_mass_key] + trajectory_points = trajectory_results[self.trajectory_key] + # we just get the vector from current point to the next at each point + diff_vector = np.diff(trajectory_points, axis=0)[:, [0, 2]] + n_steps = len(trajectory_points) + reward_vector =np.zeros(n_steps-1)# reward does not exist for the last point + for i in range(n_steps-1): + # get the direction of the trajectory + trajectory_shift = diff_vector[i] + trajectory_direction = trajectory_shift / \ + np.linalg.norm(trajectory_shift) + + # get the manipulability matrix and mass matrix for the current point + manipulability_matrix: np.array = manipulability_matrices[i] + effective_mass_matrix: np.array = effective_mass_matrices[i] + # calculate the matrix that transforms quasi-static acceleration to required torque + acc_2_torque = effective_mass_matrix@np.linalg.inv( + manipulability_matrix) + # calculate the torque vector that provides the unit acceleration in the direction of the trajectory + unit_acc_torque = np.abs(acc_2_torque@trajectory_direction) + # calculate the factor that max out the higher torque + acc = pick_effort*self.max_effort_coefficient/max(unit_acc_torque) + reward_vector[i] = acc + + return np.mean(reward_vector), reward_vector + + +class MinAccelerationCapability(Reward): + """Calculate the reward that combine effective inertia and force capability. + + Final reward is the mean value of the minimum singular value of the manipulability matrix at each point. + """ + + def __init__(self, + manipulability_key: str, + trajectory_key: str, + reachability_key: str, + actuated_mass_key: str, + max_effort_coef=0.7) -> None: + super().__init__(name='Min Acceleration Capability') + self.max_effort_coefficient = max_effort_coef + self.manip_key = manipulability_key + self.trajectory_key = trajectory_key + self.reachability_key = reachability_key + self.actuated_mass_key = actuated_mass_key + + def calculate(self, point_criteria: DataDict, + trajectory_criteria: DataDict, trajectory_results: DataDict, + **kwargs) -> Tuple[float, list[float]]: + """_summary_ + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + float: value of the reward + """ + + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + # get the manipulability for each point at the trajectory + manipulability_matrices: list[np.array] = point_criteria[ + self.manip_key] + effective_mass_matrices: list[np.array] = point_criteria[ + self.actuated_mass_key] + + n_steps = len(is_reached) + reward_vector = np.zeros(n_steps) + for i in range(n_steps): + # get the manipulability matrix and mass matrix for the current point + manipulability_matrix: np.array = manipulability_matrices[i] + effective_mass_matrix: np.array = effective_mass_matrices[i] + # calculate the matrix that transforms quasi-static acceleration to required torque + + torque_2_acc = manipulability_matrix @ np.linalg.inv( + effective_mass_matrix) + step_result = np.min(abs(np.linalg.svd(torque_2_acc, compute_uv=False))) + reward_vector[i] = step_result + + return np.mean(reward_vector), reward_vector diff --git a/jmoves/auto_robot_design/optimization/rewards/pure_jacobian_rewards.py b/jmoves/auto_robot_design/optimization/rewards/pure_jacobian_rewards.py new file mode 100644 index 00000000..100a91e4 --- /dev/null +++ b/jmoves/auto_robot_design/optimization/rewards/pure_jacobian_rewards.py @@ -0,0 +1,363 @@ +from typing import Tuple +import numpy as np +from auto_robot_design.pinokla.calc_criterion import DataDict +from auto_robot_design.optimization.rewards.reward_base import Reward + + +class VelocityReward(Reward): + """Reward the mech for the value of the manipulability along the trajectory + """ + + def __init__(self, manipulability_key: str, trajectory_key: str, reachability_key: str) -> None: + """Set the dictionary keys for the data + + Args: + manipulability_key (str): key for the manipulability matrix + trajectory_key (str): key for the trajectory points + error_key (str): key for the pose errors + """ + super().__init__(name="Velocity Reward") + self.manip_key = manipulability_key + self.trajectory_key = trajectory_key + self.reachability_key = reachability_key + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Calculate the length of the line from zero to the cross of the manipulability ellipsoid and trajectory direction + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + Tuple[float, list[float]]: value of the reward and the reward vector + """ + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + # get the manipulability for each point at the trajectory + manipulability_matrices: list[np.array] = point_criteria[self.manip_key] + trajectory_points = trajectory_results[self.trajectory_key] + diff_vector = np.diff(trajectory_points, axis=0)[:, [0, 2]] + n_steps = len(trajectory_points) + result = 0 + reward_vector = np.zeros(n_steps-1) + for i in range(n_steps-1): + # get the direction of the trajectory + trajectory_shift = diff_vector[i] + trajectory_direction = trajectory_shift / \ + np.linalg.norm(trajectory_shift) + + # get the manipulability matrix for the current point + manipulability_matrix: np.array = manipulability_matrices[i] + # find alpha from A@x = alpha*y, with ||x|| = 1 and y = trajectory_direction + # get inverse of the manipulability matrix + manipulability_matrix_inv = np.linalg.inv(manipulability_matrix) + temp_vec = manipulability_matrix_inv@trajectory_direction + result += 1/np.linalg.norm(temp_vec) + reward_vector[i] = 1/np.linalg.norm(temp_vec) + + return result/(n_steps-1), reward_vector + + +class ManipulabilityReward(Reward): + """Calculate determinant of the manipulability matrix""" + + def __init__(self, manipulability_key: str, trajectory_key: str, reachability_key: str): + super().__init__(name="Manipulability Reward") + self.manip_key = manipulability_key + self.trajectory_key = trajectory_key + self.reachability_key = reachability_key + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Get manipulability for each point in the trajectory and return the mean value + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + Tuple[float, list[float]]: value of the reward and the reward vector + """ + + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + # get the manipulability for each point at the trajectory + manipulability: np.ndarray = point_criteria[self.manip_key] + result = np.mean(manipulability) + reward_vector = list(manipulability) + + return result, reward_vector + + +class MinManipulabilityReward(Reward): + """Calculate the mean of minimum eigenvalue of manipulability matrix """ + + def __init__(self, manipulability_key: str, trajectory_key: str, reachability_key: str): + super().__init__(name='Min manipulability') + self.manip_key = manipulability_key + self.trajectory_key = trajectory_key + self.reachability_key = reachability_key + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Get manipulability for each point in the trajectory and return the mean value + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + Tuple[float, list[float]]: value of the reward and the reward vector + """ + + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + # get the manipulability for each point at the trajectory + manipulability_matrices: list[np.array] = point_criteria[self.manip_key] + + n_steps = len(is_reached) + reward_vector = np.zeros(n_steps) + for i in range(n_steps): + step_result = np.min( + abs(np.linalg.svd(manipulability_matrices[i],compute_uv=False))) + reward_vector[i] = step_result + + return np.mean(reward_vector), reward_vector + + +class MinForceReward(Reward): + """mean value of 1/max_eigen_value """ + + def __init__(self, manipulability_key: str, trajectory_key: str, reachability_key: str) -> None: + """Set the dictionary keys for the data + + Args: + manipulability_key (str): key for the manipulability matrix + error_key (str): key for the pose errors + """ + super().__init__(name="Min Force Reward") + self.manip_key = manipulability_key + self.trajectory_key = trajectory_key + self.reachability_key = reachability_key + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Calculate reduction ratio along the trajectory for each point and return the mean value + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + Tuple[float, list[float]]: value of the reward and the reward vector + """ + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + manipulability_matrices: list[np.array] = point_criteria[self.manip_key] + n_steps = len(is_reached) + reward_vector = np.zeros(n_steps) + for i in range(n_steps): + step_result = 1/np.max( + abs(np.linalg.svd(manipulability_matrices[i],compute_uv=False))) + reward_vector[i] = step_result + + return np.mean(reward_vector), reward_vector + + +class ZRRReward(Reward): + """Reduction ratio along the vertical (z) axis along the trajectory""" + + def __init__(self, manipulability_key: str, trajectory_key: str, reachability_key: str) -> None: + """Set the dictionary keys for the data + + Args: + manipulability_key (str): key for the manipulability matrix + trajectory_key (str): key for the trajectory points + error_key (str): key for the pose errors + """ + super().__init__(name="ZRR Reward") + self.manip_key = manipulability_key + self.trajectory_key = trajectory_key + self.reachability_key = reachability_key + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Calculates the sum of ZRR in starting and end points + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + float: value of the reward + """ + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + manipulability_matrices: list[np.array] = point_criteria[self.manip_key] + n_steps = len(is_reached) + reward_vector = np.zeros(n_steps) + for i in range(n_steps): + force_matrix = np.transpose(manipulability_matrices[i]) + reward_vector[i] = 1/np.linalg.norm(force_matrix@np.array([0, 1])) + + return np.mean(reward_vector), reward_vector + + +class DexterityIndexReward(Reward): + """Calculate the mean of minimum eigenvalue of manipulability matrix """ + + def __init__(self, manipulability_key: str, trajectory_key: str, reachability_key: str): + super().__init__(name='Dexterity Index') + self.manip_key = manipulability_key + self.trajectory_key = trajectory_key + self.reachability_key = reachability_key + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Get manipulability for each point in the trajectory and return the mean value + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + Tuple[float, list[float]]: value of the reward and the reward vector + """ + is_reached = trajectory_results[self.reachability_key] + is_trajectory_reachable = self.check_reachability(is_reached) + # the reward is none zero only if the point is reached + if not is_trajectory_reachable: + return 0, [] + + # get the manipulability for each point at the trajectory + manipulability_matrices: list[np.array] = point_criteria[self.manip_key] + + n_steps = len(is_reached) + reward_vector = [0]*n_steps + for i in range(n_steps): + s = np.linalg.svd(manipulability_matrices[i],compute_uv=False) + step_result = np.min(s)/np.max(s) + reward_vector[i] = step_result + + return np.mean(np.array(reward_vector)), reward_vector + + +# class ForceEllipsoidReward(Reward): +# """Force capability along the trajectory""" + +# def __init__(self, manipulability_key: str, trajectory_key: str, error_key: str) -> None: +# """Set the dictionary keys for the data + +# Args: +# manipulability_key (str): key for the manipulability matrix +# error_key (str): key for the pose errors +# """ +# super().__init__(name="Force Ellipsoid Reward") +# self.manip_key = manipulability_key +# self.trajectory_key = trajectory_key +# self.error_key = error_key + +# def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: +# """Calculate reduction ratio along the trajectory for each point and return the mean value + +# Args: +# point_criteria (DataDict): all data of the characteristics assigned to each point +# trajectory_criteria (DataDict): all data of the trajectory characteristics +# trajectory_results (DataDict): data of trajectory and trajectory following + +# Returns: +# Tuple[float, list[float]]: value of the reward and the reward vector +# """ +# errors = trajectory_results[self.error_key] +# is_trajectory_reachable = self.check_reachability(errors) +# # the reward is none zero only if the point is reached +# if not is_trajectory_reachable: +# return 0, [] + +# manipulability_matrices: list[np.array] = point_criteria[self.manip_key] +# trajectory_points = trajectory_results[self.trajectory_key] +# diff_vector = np.diff(trajectory_points, axis=0)[:, [0, 2]] +# n_steps = len(trajectory_points) +# result = 0 +# reward_vector = [0]*(n_steps-1) +# for i in range(n_steps-1): +# # get the direction of the trajectory +# trajectory_shift = diff_vector[i] +# trajectory_direction = trajectory_shift / \ +# np.linalg.norm(trajectory_shift) + +# manipulability_matrix: np.array = manipulability_matrices[i] +# force_matrix = np.transpose(manipulability_matrix) +# # inverse of the reduction ratio in the trajectory direction +# step_result = 1/np.linalg.norm(force_matrix@trajectory_direction) +# result += step_result +# reward_vector[i] = step_result + +# return result/(n_steps-1), reward_vector + + +# class EndPointZRRReward(Reward): +# """Reduction ratio along the vertical (z) axis in the edge points of the trajectory (stance poses)""" + +# def __init__(self, manipulability_key: str, trajectory_key: str, error_key: str) -> None: +# """Set the dictionary keys for the data + +# Args: +# manipulability_key (str): key for the manipulability matrix +# trajectory_key (str): key for the trajectory points +# error_key (str): key for the pose errors +# """ +# super().__init__(name="End Point ZRR Reward") +# self.manip_key = manipulability_key +# self.trajectory_key = trajectory_key +# self.error_key = error_key + +# def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: +# """Calculates the sum of ZRR in starting and end points + +# Args: +# point_criteria (DataDict): all data of the characteristics assigned to each point +# trajectory_criteria (DataDict): all data of the trajectory characteristics +# trajectory_results (DataDict): data of trajectory and trajectory following + +# Returns: +# float: value of the reward +# """ +# manipulability_matrices: list[np.array] = point_criteria[self.manip_key] +# errors = trajectory_results[self.error_key] +# # the reward is none zero only if the point is reached +# if errors[0] > 1e-6: +# starting_result = 0 +# else: +# starting_pose_matrix = np.transpose(manipulability_matrices[0]) +# starting_result = 1 / \ +# np.linalg.norm(starting_pose_matrix@np.array([0, 1])) +# # the reward is none zero only if the point is reached +# if errors[-1] > 1e-6: +# end_result = 0 +# else: +# end_pose_matrix = np.transpose(manipulability_matrices[-1]) +# end_result = 1/np.linalg.norm(end_pose_matrix@np.array([0, 1])) + +# return (starting_result + end_result)/2, [starting_result, end_result] diff --git a/jmoves/auto_robot_design/optimization/rewards/reward_base.py b/jmoves/auto_robot_design/optimization/rewards/reward_base.py new file mode 100644 index 00000000..0ff68179 --- /dev/null +++ b/jmoves/auto_robot_design/optimization/rewards/reward_base.py @@ -0,0 +1,395 @@ +from operator import itemgetter +from typing import Tuple + +import numpy as np + +from auto_robot_design.pinokla.calc_criterion import DataDict + + +class NotReacablePoints(Exception): + pass + +class Reward(): + """Interface for the optimization criteria""" + + def __init__(self, name) -> None: + self.point_precision = 1e-4 + self.reward_name = name + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Calculate the value of the criterion from the data""" + + raise NotImplementedError("A reward must implement calculate method!") + + def check_reachability(self, is_reach, checked=True, warning=False): + """The function that checks the reachability of the mech for all points at trajectory + + The idea is that the trajectory at the moment of the reward calculation is + already checked for reachability by the workspace checker. + """ + if 0 in is_reach and checked: + if warning: + print( + f'For the reward {self.reward_name} the trajectory has unreachable points with index{np.argmin(is_reach)}') + return False + else: + raise NotReacablePoints( + f"All points should be reachable to calculate a reward {self.reward_name}") + + elif 0 in is_reach: + return False + + return True + + +class DummyReward(Reward): + """The reward that can be used for padding.""" + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + + return 0, [] + + +class PositioningReward(Reward): + """Mean position error for the trajectory""" + + def __init__(self, pos_error_key: str) -> None: + """Set the dictionary keys for the data + + Args: + pos_error_key (str): key for mean position error + """ + self.pos_error_key = pos_error_key + super().__init__(name='Trajectory error') + + def calculate(self, point_criteria: DataDict, trajectory_criteria: DataDict, trajectory_results: DataDict, **kwargs) -> Tuple[float, list[float]]: + """Just get the value for the mean positioning error + + Args: + point_criteria (DataDict): all data of the characteristics assigned to each point + trajectory_criteria (DataDict): all data of the trajectory characteristics + trajectory_results (DataDict): data of trajectory and trajectory following + + Returns: + float: value of the reward + """ + + mean_error = trajectory_criteria[self.pos_error_key] + # the empty list is for the consistency with the other rewards + return -mean_error, [] + + +class PositioningErrorCalculatorOld(): + def __init__(self, error_key): + self.error_key = error_key + self.point_threshold = 1e-4 + + def calculate(self, trajectory_results: DataDict): + errors = trajectory_results[self.error_key] + if np.max(errors) > self.point_threshold: + # return np.mean(errors) + return np.max(errors) + else: + return 0 + + +class PositioningErrorCalculator(): + """Calculate the special error that that is used as self constrain during optimization + """ + + def __init__(self, jacobian_key, calc_isotropic_thr=True, delta_q_threshold=1): + self.jacobian_key = jacobian_key + self.calc_isotropic_thr = calc_isotropic_thr + self.point_threshold = 1e-4 + self.point_isotropic_threshold = 15 + self.point_isotropic_clip = 3*15 + self.delta_q_threshold = delta_q_threshold + + def calculate(self, trajectory_results_jacob: DataDict, trajectory_results_pos: DataDict): + """Normalize self.calculate_eig_error and plus self.calculate_pos_error + + Args: + trajectory_results_jacob (DataDict): _description_ + trajectory_results_pos (DataDict): _description_ + + Returns: + _type_: _description_ + """ + if not np.all(trajectory_results_pos["is_reach"]): + pos_err = (len(trajectory_results_pos["is_reach"])-np.sum(trajectory_results_pos["is_reach"]))*self.point_threshold + return pos_err + else: + pos_err = 0 + #pos_err = self.calculate_pos_error(trajectory_results_pos) + + # self.check_continuity(trajectory_results_pos) + ret = pos_err + if self.calc_isotropic_thr: + isotropic_value = self.calculate_eig_error( + trajectory_results_jacob) + normalized_isotropic_0_1 = isotropic_value / self.point_isotropic_clip + isotropic_same_pos_err = ( + normalized_isotropic_0_1*self.point_threshold) / 2 + ret += isotropic_same_pos_err + return ret + + def calculate_eig_error(self, trajectory_results: DataDict): + """Return max isotropic clipped by self.point_isotropic_clip + + Args: + trajectory_results (DataDict): data describing trajectory following + + Returns: + float: clipped max of the isotropic values + """ + isotropic_values = self.calculate_isotropic_values(trajectory_results) + + max_isotropic_value = np.max(isotropic_values) + if max_isotropic_value > self.point_isotropic_threshold: + clipped_max = np.clip(max_isotropic_value, 0, + self.point_isotropic_clip) + return clipped_max + else: + return 0 + + # def check_continuity(self, trajectory_results_pos): + # """Check if the difference in angles between two points is less then self.delta_q_threshold radian""" + # value = np.max( + # np.sum(np.abs(np.diff(trajectory_results_pos['q'], axis=0)), axis=1)) + # l = len(trajectory_results_pos['q'][0]) + # if value > self.delta_q_threshold: + # #with open('cont_check.txt', 'a') as f: + # #f.write(f'Continuity is violated with value: {value}, {l}\n') + # pass + + # def calculate_pos_error(self, trajectory_results: DataDict): + # """Returns max max value of the errors along trajectory if error at any point exceeds the threshold. + + # Args: + # trajectory_results (DataDict): data describing trajectory following + + # Returns: + # float: max error + # """ + # errors = trajectory_results[self.error_key] + # if np.max(errors) > self.point_threshold: + # # return np.mean(errors) + # return np.max(errors) + # else: + # return 0 + + def calculate_isotropic_values(self, trajectory_results: DataDict) -> np.ndarray: + """Returns max(eigenvalues) divided by min(eigenvalues) for each jacobian in trajectory_results. + + Args: + trajectory_results (DataDict): data describing trajectory following + + Returns: + np.ndarray: max(eigenvalues)/min(eigenvalues) + """ + jacobians = trajectory_results[self.jacobian_key] + isotropic_values = np.zeros(len(jacobians)) + for num, jacob in enumerate(jacobians): + U, S, Vh = np.linalg.svd(jacob) + max_eig_val = np.max(S) + min_eig_val = np.min(S) + isotropic = max_eig_val / min_eig_val + isotropic_values[num] = isotropic + return isotropic_values + + +class PositioningConstrain(): + """Represents the constrains that are used as a part of the reward function""" + def __init__(self, error_calculator, points=None) -> None: + self.points = points + self.calculator = error_calculator + + def add_points_set(self, points_set): + """Adds another trajectory for constrain calculation. + + Args: + points_set (np.array): trajectory description + """ + if self.points is None: + self.points = [points_set] + else: + self.points.append(points_set) + + def calculate_constrain_error(self, criterion_aggregator, fixed_robot, free_robot): + """Calculate the constrain error using defined calculator + + Args: + criterion_aggregator (_type_): _description_ + fixed_robot (_type_): _description_ + free_robot (_type_): _description_ + + Returns: + _type_: _description_ + """ + total_error = 0 + results = [] + for point_set in self.points: + tmp = criterion_aggregator.get_criteria_data( + fixed_robot, free_robot, point_set) + results.append(tmp) + total_error += self.calculator.calculate(tmp[0], tmp[2]) + + return total_error, results + + +class RewardManager(): + """Manager class to aggregate trajectories and corresponding rewards + + User should add trajectories and then add rewards that are calculated for these trajectories. + """ + + def __init__(self, crag) -> None: + self.trajectories = {} + self.rewards = {} + self.crag = crag + self.precalculated_trajectories = None + self.agg_list = [] + self.reward_description = [] + self.trajectory_names = {} + + def add_trajectory(self, trajectory, idx, name="unnamed"): + if not (idx in self.trajectories): + self.trajectories[idx] = trajectory + self.rewards[idx] = [] + self.trajectory_names[idx] = name + else: + raise KeyError( + 'Attempt to add trajectory id that already exist in RewardManager') + + def add_reward(self, reward, trajectory_id, weight): + if trajectory_id in self.trajectories: + self.rewards[trajectory_id].append((reward, weight)) + else: + raise KeyError('Trajectory id not in the trajectories dict') + + def add_trajectory_aggregator(self, trajectory_list, agg_type: str): + if not (agg_type in ['mean', 'median', 'min', 'max']): + raise ValueError('Wrong aggregation type!') + + if not set(trajectory_list).issubset(set(self.trajectories.keys())): + raise ValueError('add trajectory before aggregation') + + for lt, _ in self.agg_list: + if len(set(lt).intersection(set(trajectory_list))) > 0: + raise ValueError('Each trajectory can be aggregated only once') + + if len(set(map(len, itemgetter(*trajectory_list)(self.rewards)))) > 1: + raise ValueError( + 'Each trajectory in aggregation must have the same number of rewards') + + self.agg_list.append((trajectory_list, agg_type)) + + def close_trajectories(self): + total_rewards = 0 + exclusion_list = [] + for lst, _ in self.agg_list: + exclusion_list += lst + tmp = len(self.rewards[lst[0]]) + self.reward_description.append((lst, tmp)) + total_rewards += tmp + + for idx, rewards in self.rewards.items(): + if idx not in exclusion_list: + tmp = len(rewards) + self.reward_description.append((idx, tmp)) + total_rewards += tmp + + return total_rewards + + def calculate_total(self, fixed_robot, free_robot, motor, viz=None): + # trajectory_rewards = [] + partial_rewards = [] + weighted_partial_rewards = [] + for trajectory_id, trajectory in self.trajectories.items(): + rewards = self.rewards[trajectory_id] + if self.precalculated_trajectories and (trajectory_id in self.precalculated_trajectories): + point_criteria_vector, trajectory_criteria, res_dict_fixed = self.precalculated_trajectories[ + trajectory_id] + else: + point_criteria_vector, trajectory_criteria, res_dict_fixed = self.crag.get_criteria_data( + fixed_robot, free_robot, trajectory, viz=viz) + + partial_reward = [trajectory_id] + weighted_partial = [trajectory_id] + for reward, weight in rewards: + reward_value = reward.calculate( + point_criteria_vector, trajectory_criteria, res_dict_fixed, Actuator=motor)[0] + partial_reward.append(reward_value) + weighted_partial.append(weight * reward_value) + # update reward lists + + partial_rewards.append(partial_reward) + weighted_partial_rewards.append(weighted_partial) + + multicriterial_reward = [] + aggregated_partial = [] + exclusion_list = [] + for lst, agg_type in self.agg_list: + exclusion_list += lst + local_partial = [] + local_weighted_partial = [] + for v, w in zip(partial_rewards, weighted_partial_rewards): + if v[0] in lst: + local_partial.append(v) + local_weighted_partial.append(w) + + tmp_array = np.array(local_partial) + tmp_array_weighted = np.array(local_weighted_partial) + + if agg_type == 'mean': + res = np.mean(tmp_array, axis=0) + res_w = np.mean(local_weighted_partial, axis=0) + elif agg_type == 'median': + res = np.median(tmp_array, axis=0) + res_w = np.median(local_weighted_partial, axis=0) + elif agg_type == 'min': + res = np.min(tmp_array, axis=0) + res_w = np.min(local_weighted_partial, axis=0) + elif agg_type == 'max': + res = np.max(tmp_array, axis=0) + res_w = np.max(local_weighted_partial, axis=0) + + multicriterial_reward += list(res[1::]) + aggregated_partial += list(res_w[1::]) + + trajectoryless_partials = [] + for v, w in zip(partial_rewards, weighted_partial_rewards): + if v[0] not in exclusion_list: + multicriterial_reward += v[1::] + aggregated_partial += w[1::] + trajectoryless_partials += v[1::] + + # calculate the total reward + + total_reward = -np.sum(aggregated_partial) + + return total_reward, trajectoryless_partials, multicriterial_reward + + def dummy_partial(self): + """Create partial reward with zeros to add for robots that failed constrains""" + partial_rewards = [] + for trajectory_id, _ in self.trajectories.items(): + rewards = self.rewards[trajectory_id] + partial_reward = [trajectory_id] + for _, _ in rewards: + partial_reward.append(0) + # Draw trianle if chicken usualy dead + partial_rewards += partial_reward[1:] + return partial_rewards + + def check_constrain_trajectory(self, trajectory, results): + """Checks if a trajectory that was used in constrain calculation is also one of reward trajectories. + + If a trajectory is a reward trajectory save its results and use them to avoid recalculation + """ + temp_dict = {} + for trajectory_id, in_trajectory in self.trajectories.items(): + if np.array_equal(trajectory, in_trajectory): + temp_dict[trajectory_id] = results + + self.precalculated_trajectories = temp_dict diff --git a/jmoves/auto_robot_design/optimization/saver.py b/jmoves/auto_robot_design/optimization/saver.py new file mode 100644 index 00000000..73a56c70 --- /dev/null +++ b/jmoves/auto_robot_design/optimization/saver.py @@ -0,0 +1,66 @@ +import os +import time + +import dill +from matplotlib import pyplot as plt +from pymoo.core.callback import Callback +from pymoo.core.problem import Problem + +from auto_robot_design.description.utils import draw_joint_point + + +def load_checkpoint(path: str): + with open(os.path.join(path, "checkpoint.pkl"), "rb") as f: + algorithm = dill.load(f) + return algorithm + + +class ProblemSaver: + def __init__( + self, problem: Problem, folder_name: str, use_date: bool = True + ) -> None: + + self.problem = problem + date = "_" + time.strftime("%Y-%m-%d_%H-%M-%S") if use_date else "" + self.folder_name = str(folder_name) + date + self.use_date = use_date + self.path = self._prepare_folder() + + def _prepare_folder(self): + + folders = ["results", self.folder_name] + path = "./" + for folder in folders: + folder = folder.split('\\') + for sub_folder in folder: + path = os.path.join(path, sub_folder) + if not os.path.exists(path): + os.mkdir(path) + path = os.path.abspath(path) + + return path + + def save_nonmutable(self): + with open(os.path.join(self.path, "problem_data.pkl"), "wb") as f: + dill.dump(self.problem, f) + if hasattr(self.problem, "graph"): + draw_joint_point(self.problem.graph) + else: + draw_joint_point(self.problem.graph_manager.get_graph( + self.problem.graph_manager.generate_central_from_mutation_range())) + plt.savefig(os.path.join(self.path, "initial_mechanism.png")) + plt.close() + + def save_history(self, history): + with open(os.path.join(self.path, "history.pkl"), "wb") as f: + dill.dump(history, f) + + +class CallbackSaver(Callback): + def __init__(self, problem_saver: ProblemSaver) -> None: + super().__init__() + self.problem_saver = problem_saver + + def notify(self, algorithm): + with open(os.path.join(self.problem_saver.path, "checkpoint.pkl"), "wb") as f: + dill.dump(algorithm, f) diff --git a/jmoves/auto_robot_design/optimization/test_criteria.py b/jmoves/auto_robot_design/optimization/test_criteria.py new file mode 100644 index 00000000..b5537235 --- /dev/null +++ b/jmoves/auto_robot_design/optimization/test_criteria.py @@ -0,0 +1,22 @@ +import numpy as np +import numpy.linalg as la + +import pinocchio as pin + +from auto_robot_design.pinokla.loader_tools import build_model_with_extensions + + +def calculate_mass(urdf, joint_description, loop_description): + free_robo = build_model_with_extensions( + urdf, joint_description, loop_description, False + ) + pin.computeAllTerms( + free_robo.model, + free_robo.data, + np.zeros(free_robo.model.nq), + np.zeros(free_robo.model.nv), + ) + total_mass = pin.computeTotalMass(free_robo.model, free_robo.data) + com_dist = la.norm(pin.centerOfMass(free_robo.model, free_robo.data)) + + return total_mass diff --git a/jmoves/auto_robot_design/optimization/visualizer.py b/jmoves/auto_robot_design/optimization/visualizer.py new file mode 100644 index 00000000..94e62e40 --- /dev/null +++ b/jmoves/auto_robot_design/optimization/visualizer.py @@ -0,0 +1,68 @@ + + +import numpy as np +import matplotlib.pyplot as plt +import networkx as nx + + + + +MARKERS = ["o", "s", "*", "p", "D", "^", "v", "X"] + +def prepare_data_to_visualize(data, problem): + """ + Prepare data to visualize + """ + num_joints = len(problem.opt_joints) + + feature_jps = np.reshape(data["X"], (-1 , len(data["X"][0]) // num_joints)) + + costs = np.array([fs for fs in data["Fs"] for __ in range(num_joints)]) + + total_cost = np.array([f for f in data["F"] for __ in range(num_joints)]) + + # Return data to visualize + return feature_jps, costs, total_cost + +def prepare_data_to_visualize_separeate_jps(data, problem): + """ + Prepare data to visualize + """ + num_joints = len(problem.opt_joints) + num_features = len(data["X"][0]) // num_joints + dataX = np.array(data["X"]) + features = [] + for id in range(0, len(dataX[0]), num_features): + features.append(dataX[:,id:id+num_features]) + + costs = np.array(data["Fs"]) + + total_cost = np.array(data["F"]) + + # Return data to visualize + return features, costs, total_cost + + +def draw_jps_cost_on_graph(feature, cost, problem, marker = None): + """ + Draw the cost of each joint on the graph + """ + if marker is None: + marker = "o" + plt.scatter(feature[:,0], feature[:,1], c=cost, marker=marker) + return plt + + +def draw_jps_distribution(feature): + """ + Draw the cost of each joint on the graph + """ + plt.hexbin(feature[:,0], feature[:,1], gridsize=50, cmap="YlOrBr") + return plt + +def draw_costs(cost1, cost2): + + plt.scatter(cost1, cost2) + # plt.xlim(min(cost1)-0.01, max(cost1)+0.01) + # plt.ylim(min(cost2)-0.1, max(cost2)+0.1) + return plt \ No newline at end of file diff --git a/jmoves/auto_robot_design/pino_adapter/pino_adapter.py b/jmoves/auto_robot_design/pino_adapter/pino_adapter.py new file mode 100644 index 00000000..c5da5ec5 --- /dev/null +++ b/jmoves/auto_robot_design/pino_adapter/pino_adapter.py @@ -0,0 +1,25 @@ +def get_pino_description(ative_joints, constraints): + + joint_mot_description = { + "name_mot": ative_joints, + "joint_name": [], + "joint_type": [], + } + loop_description = { + "closed_loop": constraints, + "type": ["6d"] * len(constraints) + } + return joint_mot_description, loop_description + +def get_pino_description_3d_constraints(ative_joints, constraints): + + joint_mot_description = { + "name_mot": ative_joints, + "joint_name": [], + "joint_type": [], + } + loop_description = { + "closed_loop": constraints, + "type": ["3d"] * len(constraints) + } + return joint_mot_description, loop_description diff --git a/jmoves/auto_robot_design/pinokla/__init__.py b/jmoves/auto_robot_design/pinokla/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/jmoves/auto_robot_design/pinokla/actuation_model.py b/jmoves/auto_robot_design/pinokla/actuation_model.py new file mode 100644 index 00000000..e71f1960 --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/actuation_model.py @@ -0,0 +1,102 @@ +import numpy as np +class ActuationModel(): + """ + the actuation model of the robot, + robot_actuation_model(model,names) + argument : + model - robot model + names - list of the name of motor joint name + contain : + self.nq, self.nv size of configuration/velocity space + self.idqmot , self.idvmot the id of the motor joint inside a configuration / velocity vector + self.idfree, self.idvfree the id of the free joint inside a configuration / velocity vector + + """ + def __init__(self, model, names): + self.motname = names + self.motname2id_q = {} + self.motname2id_v = {} + self.idMotJoints = [] + self.getMotId_q(model) + self.getFreeId_q(model) + self.getMotId_v(model) + self.getFreeId_v(model) + + + def __str__(self): + return(print("Id q motor: " + str(self.idqmot) + "\r" "Id v motor: " + str(self.idvmot) )) + + + def getMotId_q(self, model): + """ + GetMotId_q = (model) + Return a list of ids corresponding to the configurations velocity associated with motors joints + + Arguments: + model - robot model from pinocchio + Return: + Lid - List of motors configuration velocity ids + """ + Lidq = [] + for i, name in enumerate(model.names): + if name in self.motname: + self.idMotJoints.append(i) + idq=model.joints[i].idx_q + nq=model.joints[i].nq + for j in range(nq): + Lidq.append(idq+j) + self.motname2id_q[name] = np.array([idq+j for j in range(nq)]) + self.idqmot=Lidq + + def getMotId_v(self,model): + """ + GetMotId_q = (model) + Return a list of ids corresponding to the configurations velocity associated with motors joints + + Arguments: + model - robot model from pinocchio + Return: + Lid - List of motors configuration velocity ids + """ + Lidv = [] + for i, name in enumerate(model.names): + if name in self.motname: + idv=model.joints[i].idx_v + nv=model.joints[i].nv + for j in range(nv): + Lidv.append(idv+j) + self.motname2id_v[name] = np.array([idv+j for j in range(nv)]) + self.idvmot=Lidv + + def getFreeId_q(self,model): + """ + GetFreeId_q = (model) + Return a list of ids corresponding to the configurations vector associated with motors joints + + Arguments: + model - robot model from pinocchio + Return: + Lid - List of motors configuration velocity ids + """ + Lidq=[] + for i in range(model.nq): + if not(i in self.idqmot): + Lidq.append(i) + self.idqfree=Lidq + return(Lidq) + + def getFreeId_v(self,model): + """ + GetFreeId_v = (model) + Return a list of ids corresponding to the configurations velocity vector associated with motors joints + + Arguments: + model - robot model from pinocchio + Return: + Lid - List of motors configuration velocity ids + """ + Lidv=[] + for i in range(model.nv): + if not(i in self.idvmot): + Lidv.append(i) + self.idvfree=Lidv \ No newline at end of file diff --git a/jmoves/auto_robot_design/pinokla/analyze_squat_history.py b/jmoves/auto_robot_design/pinokla/analyze_squat_history.py new file mode 100644 index 00000000..f1173375 --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/analyze_squat_history.py @@ -0,0 +1,447 @@ +from copy import deepcopy +from functools import partial +from pathlib import Path +from typing import Callable +from auto_robot_design.description.builder import DetailedURDFCreatorFixedEE, ParametrizedBuilder, jps_graph2urdf_by_bulder +import numpy as np + +import matplotlib.pyplot as plt + +from auto_robot_design.description.actuators import MyActuator_RMD_MT_RH_17_100_N, RevoluteActuator, t_motor_actuators + +from auto_robot_design.description.utils import ( + all_combinations_active_joints_n_actuator, ) + +from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator +from auto_robot_design.optimization.optimizer import PymooOptimizer +from auto_robot_design.optimization.problems import CalculateCriteriaProblemByWeigths, CalculateMultiCriteriaProblem +from auto_robot_design.optimization.saver import load_checkpoint +from auto_robot_design.pinokla.criterion_agregator import load_criterion_traj, save_criterion_traj +from auto_robot_design.pinokla.squat import SquatHopParameters, SimulateSquatHop +import dill +import os +from auto_robot_design.description.utils import draw_joint_point + +def pareto_front_with_indices(data): + """ + Extract the Pareto front and their indices from a set of multi-objective data points. + + Parameters: + data (np.ndarray): A 2D array where each row is a solution and each column is an objective. + + Returns: + tuple: A tuple containing: + - np.ndarray: A 2D array containing the Pareto front. + - np.ndarray: A 1D array containing the indices of the Pareto front solutions. + """ + # Initialize a boolean array to mark dominated solutions + is_dominated = np.zeros(data.shape[0], dtype=bool) + + # Compare each solution with every other solution + for i in range(data.shape[0]): + for j in range(data.shape[0]): + if i != j: + if all(data[j] <= data[i]) and any(data[j] < data[i]): + is_dominated[i] = True + break + + # Extract non-dominated solutions and their indices + pareto_front = data[~is_dominated] + pareto_indices = np.where(~is_dominated)[0] + + return pareto_front, pareto_indices + + +def reward_vel_with_context(sim_hopp: SimulateSquatHop, robo_urdf: str, + joint_description: dict, loop_description: dict, + x: float): + NUMBER_LAST_VALUE = 150 + TRQ_DEVIDER = 1000 + + q_act, vq_act, acc_act, tau = sim_hopp.simulate(robo_urdf, + joint_description, + loop_description, control_coefficient=float(x)) + trj_f = sim_hopp.create_traj_equation() + t = np.linspace(0, sim_hopp.squat_hop_parameters.total_time, len(q_act)) + q_vq_acc_des = np.array(list(map(trj_f, t))) + vq_des = q_vq_acc_des[:, 1] + tail_vq_des = vq_des[-NUMBER_LAST_VALUE:] + tail_vq_act = vq_act[-NUMBER_LAST_VALUE:] + tail_vq_act = tail_vq_act[:, 0] + vq_erorr = np.mean(np.abs(tail_vq_des - tail_vq_act)) + return vq_erorr + + +def reward_vel_with_context(sim_hopp: SimulateSquatHop, robo_urdf: str, + joint_description: dict, loop_description: dict, + x: float): + NUMBER_LAST_VALUE = 100 + TRQ_DEVIDER = 1000 + + q_act, vq_act, acc_act, tau = sim_hopp.simulate(robo_urdf, + joint_description, + loop_description, control_coefficient=float(x)) + trj_f = sim_hopp.create_traj_equation() + t = np.linspace(0, sim_hopp.squat_hop_parameters.total_time, len(q_act)) + q_vq_acc_des = np.array(list(map(trj_f, t))) + vq_des = q_vq_acc_des[:, 1] + tail_vq_des = vq_des[-NUMBER_LAST_VALUE:] + tail_vq_act = vq_act[-NUMBER_LAST_VALUE:] + tail_vq_act = tail_vq_act[:, 0] + vq_erorr = np.mean(np.abs(tail_vq_des - tail_vq_act)) + # print(f"Errror:{vq_erorr}, x: {x}") + + return vq_erorr + + +def min_vel_error_control_brute_force(min_fun: Callable[[float], float]): + x_vec = np.linspace(0.65, 0.9, 10) + errors = [] + for x in x_vec: + try: + res = min_fun(x) + except: + res = 1 + errors.append(res) + x_and_err = zip(x_vec, errors) + def key_fun(tup): return tup[1] + min_x_and_error = min(x_and_err, key=key_fun) + return min_x_and_error + + +def min_pos_error_control_brute_force(min_fun: Callable[[float], float]): + x_vec = np.linspace(0.65, 0.9, 10) + errors = [] + for x in x_vec: + try: + res = min_fun(x) + except: + res = 1 + errors.append(res) + x_and_err = zip(x_vec, errors) + def key_fun(tup): return tup[1] + min_x_and_error = min(x_and_err, key=key_fun) + return min_x_and_error + + +def get_history_and_problem(path): + problem = CalculateMultiCriteriaProblem.load( + path) + checklpoint = load_checkpoint(path) + + optimizer = PymooOptimizer(problem, checklpoint) + optimizer.load_history(path) + return optimizer.history, problem + + +def get_optimizer_and_problem(path) -> tuple[PymooOptimizer, CalculateMultiCriteriaProblem]: + problem = CalculateMultiCriteriaProblem.load( + path) + checklpoint = load_checkpoint(path) + + optimizer = PymooOptimizer(problem, checklpoint) + optimizer.load_history(path) + res = optimizer.run() + + return optimizer, problem, res + + +def get_pareto_sample_linspace(res, sample_len: int): + + sample_indices = np.linspace(0, len(res.F) - 1, sample_len, dtype=int) + sample_x = res.X[sample_indices] + sample_F = res.F[sample_indices] + + return sample_x, sample_F + + +def get_pareto_sample_histogram(res, sample_len: int): + """Histogram uses 0 from reword vector + + Args: + res (_type_): _description_ + sample_len (int): _description_ + + Returns: + _type_: _description_ + """ + rewards = res.F + _, bins_edg = np.histogram(rewards[:, 0], sample_len) + bin_indices = np.digitize(rewards[:, 0], bins_edg, right=True) + bins_set_id = [np.where(bin_indices == i)[0] + for i in range(1, len(bins_edg))] + best_in_bins = [i[0] for i in bins_set_id if len(i) > 0] + sample_F = rewards[best_in_bins] + sample_X = res.X[best_in_bins] + return sample_X, sample_F + + +def get_urdf_from_problem(sample_X: np.ndarray, problem: CalculateMultiCriteriaProblem): + problem.mutate_JP_by_xopt(problem.initial_xopt) + graphs = [] + urdf_j_des_l_des = [] + for x_i in sample_X: + problem.mutate_JP_by_xopt(x_i) + mutated_graph = deepcopy(problem.graph) + + robo_urdf, joint_description, loop_description = jps_graph2urdf_by_bulder( + mutated_graph, problem.builder) + graphs.append(mutated_graph) + urdf_j_des_l_des.append( + (robo_urdf, joint_description, loop_description)) + return graphs, urdf_j_des_l_des + + +def get_sorted_history(history: dict): + rewards = np.array(history["F"]).flatten() + x_value = np.array(history["X"]) + ids_sorted = np.argsort(rewards) + sorted_reward = rewards[ids_sorted] + sorted_x_values = x_value[ids_sorted] + return sorted_reward, sorted_x_values + + +def get_histogram_data(rewards): + NUMBER_BINS = 10 + _, bins_edg = np.histogram(rewards, NUMBER_BINS) + bin_indices = np.digitize(rewards, bins_edg, right=True) + bins_set_id = [np.where(bin_indices == i)[0] + for i in range(1, len(bins_edg))] + return bins_set_id + + +def get_tested_reward_and_x(sorted_reward: np.ndarray, sorted_x_values: np.ndarray): + bins_set_id = get_histogram_data(sorted_reward) + best_in_bins = [i[0] for i in bins_set_id] + return sorted_reward[best_in_bins], sorted_x_values[best_in_bins] + + +def get_sample_torque_traj_from_sample(path): + + PATH_TO_LOAD_OPTIMISATION_RES = path + PATH_CURRENT_MECH = Path(PATH_TO_LOAD_OPTIMISATION_RES) / "squat_compare" + history, problem = get_history_and_problem(PATH_TO_LOAD_OPTIMISATION_RES) + sorted_reward, sorted_x_values = get_sorted_history(history) + rewards_sample, x_sample = get_tested_reward_and_x( + sorted_reward, sorted_x_values) + + graphs = [] + urdf_j_des_l_des = [] + for x_i in x_sample: + problem.mutate_JP_by_xopt(x_i) + mutated_graph = deepcopy(problem.graph) + + robo_urdf, joint_description, loop_description = jps_graph2urdf_by_bulder( + mutated_graph, problem.builder) + graphs.append(mutated_graph) + urdf_j_des_l_des.append( + (robo_urdf, joint_description, loop_description)) + + sqh_p = SquatHopParameters(hop_flight_hight=0.2, + squatting_up_hight=0.0, + squatting_down_hight=-0.38, + total_time=0.8) + hoppa = SimulateSquatHop(sqh_p) + for i, (robo_urdf_i, joint_description_i, loop_description_i) in enumerate(urdf_j_des_l_des): + opti = partial(reward_vel_with_context, hoppa, robo_urdf_i, joint_description_i, + loop_description_i) + res = min_vel_error_control_brute_force(opti) + q_act, vq_act, acc_act, tau = hoppa.simulate(robo_urdf_i, + joint_description_i, + loop_description_i, + control_coefficient=res[0], + is_vis=False) + max1t = max(np.abs(tau[:, 0])) + max2t = max(np.abs(tau[:, 1])) + trj_f = hoppa.create_traj_equation() + t = np.linspace(0, sqh_p.total_time, len(q_act)) + list__234 = np.array(list(map(trj_f, t))) + + saved_dict = {} + saved_dict["ControlConst"] = res[0] + saved_dict["ControlError"] = res[1] + saved_dict["Reward"] = rewards_sample[i] + saved_dict["X"] = x_sample[i] + saved_dict["pos_act"] = q_act[:, 0] + saved_dict["v_act"] = vq_act[:, 0] + saved_dict["acc_act"] = acc_act[:, 0] + saved_dict["tau"] = tau + saved_dict["HopParams"] = sqh_p + print( + f"Max 1 act: {max1t}, Max 2 act: {max2t}, Reward:{rewards_sample[i]}, Error vel: {res[1]}") + save_criterion_traj(robo_urdf_i, PATH_CURRENT_MECH, + loop_description_i, joint_description_i, saved_dict) + + +def get_sample_torque_traj_from_sample_multi(path, is_vis = False): + + path_to_save_result = Path(path) / "squat_compare" + optimizer, problem, res = get_optimizer_and_problem(path) + sample_X, sample_F = get_pareto_sample_histogram(res, 10) + graphs, urdf_j_des_l_des = get_urdf_from_problem(sample_X, problem) + sqh_p = SquatHopParameters(hop_flight_hight=0.10, + squatting_up_hight=0.0, + squatting_down_hight=-0.04, + total_time=0.2) + hoppa = SimulateSquatHop(sqh_p) + + + for i, (robo_urdf_i, joint_description_i, loop_description_i) in enumerate(urdf_j_des_l_des): + opti = partial(reward_vel_with_context, hoppa, robo_urdf_i, joint_description_i, + loop_description_i) + res = min_vel_error_control_brute_force(opti) + q_act, vq_act, acc_act, tau = hoppa.simulate(robo_urdf_i, + joint_description_i, + loop_description_i, + control_coefficient=res[0], + is_vis=is_vis) + max1t = max(np.abs(tau[:, 0])) + max2t = max(np.abs(tau[:, 1])) + trj_f = hoppa.create_traj_equation() + t = np.linspace(0, sqh_p.total_time, len(q_act)) + list__234 = np.array(list(map(trj_f, t))) + + saved_dict = {} + saved_dict["Graph"] = graphs[i] + saved_dict["ControlConst"] = res[0] + saved_dict["ControlError"] = res[1] + saved_dict["Reward"] = sample_F[i] + saved_dict["X"] = sample_X[i] + saved_dict["pos_act"] = q_act[:, 0] + saved_dict["v_act"] = vq_act[:, 0] + saved_dict["acc_act"] = acc_act[:, 0] + saved_dict["tau"] = tau + saved_dict["HopParams"] = sqh_p + print( + f"Max 1 act: {max1t}, Max 2 act: {max2t}, Reward:{sample_F[i]}, Error vel: {res[1]}") + save_criterion_traj(robo_urdf_i, path_to_save_result, + loop_description_i, joint_description_i, saved_dict) + +# load_criterion_traj() +# plt.figure() + +# plt.plot(q_act[:, 0]) +# plt.plot(list__234[:, 0]) +# plt.title("Position") +# plt.xlabel("Time") +# plt.ylabel("Z-Pos") +# plt.legend(["actual vel", "desired vel"]) +# plt.grid(True) + +# plt.figure() +# plt.plot(acc_act[:, 0]) +# plt.plot(list__234[:, 2]) +# plt.title("Desired acceleration") +# plt.xlabel("Time") +# plt.ylabel("Z-acc") +# plt.legend(["actual acc", "desired acc"]) +# plt.grid(True) + +# plt.figure() +# plt.plot(tau[:, 0]) +# plt.plot(tau[:, 1]) +# plt.title("Actual torques") +# plt.xlabel("Time") +# plt.ylabel("Torques") +# plt.grid(True) + +# plt.show() + +# path = "results\\th_1909_num1_2024-05-08_19-14-25" + +# problem = CalculateCriteriaProblemByWeigths.load( +# path) # **{"elementwise_runner":runner}) +# checklpoint = load_checkpoint(path) + +# optimizer = PymooOptimizer(problem, checklpoint) +# optimizer.load_history(path) + +# hist_flat = np.array(optimizer.history["F"]).flatten() +# not_super_best_id = np.argsort(hist_flat)[0] +# sorted_reward = np.sort(hist_flat) +# sorted_reward_big1 = sorted_reward[np.where(sorted_reward < -0.5)] +# # plt.figure() +# # plt.hist(sorted_reward_big1, 10) +# # plt.show() + +# best_id = np.argsort(hist_flat)[0] +# best_rew = optimizer.history["F"][best_id] +# not_super_best_rew = optimizer.history["F"][not_super_best_id] +# print(f"Best rew: {best_rew}") +# print(f"Tested rew: {not_super_best_rew}") +# problem.mutate_JP_by_xopt(optimizer.history["X"][not_super_best_id]) +# graph = problem.graph + +# #actuator = TMotor_AK10_9() +# actuator = MyActuator_RMD_MT_RH_17_100_N() +# thickness = 0.04 +# builder = ParametrizedBuilder( +# DetailedURDFCreatorFixedEE, +# size_ground=np.array([thickness * 5, thickness * 10, thickness * 2]), +# actuator=actuator, +# thickness=thickness) +# robo_urdf, joint_description, loop_description = jps_graph2urdf_by_bulder( +# graph, builder) + +# sqh_p = SquatHopParameters(hop_flight_hight=0.25, +# squatting_up_hight=0.0, +# squatting_down_hight=-0.38, +# total_time=0.8) +# hoppa = SimulateSquatHop(sqh_p) + +# opti = partial(reward_with_context, hoppa, robo_urdf, joint_description, +# loop_description) + +# res = min_error_control_brute_force(opti) +# x_vec = np.linspace(0.65, 0.9, 10) + + +# q_act, vq_act, acc_act, tau = hoppa.simulate(robo_urdf, +# joint_description, +# loop_description, +# control_coefficient=res[0], +# is_vis=False) + +# trj_f = hoppa.create_traj_equation() +# t = np.linspace(0, sqh_p.total_time, len(q_act)) +# list__234 = np.array(list(map(trj_f, t))) + +# plt.figure() +# plt.plot(acc_act[:, 0]) +# plt.plot(list__234[:, 2]) +# plt.title("Desired acceleration") +# plt.xlabel("Time") +# plt.ylabel("Z-acc") +# plt.legend(["actual acc", "desired acc"]) +# plt.grid(True) + +# plt.figure() +# plt.plot(tau[:, 0]) +# plt.plot(tau[:, 1]) +# plt.title("Actual torques") +# plt.xlabel("Time") +# plt.ylabel("Torques") +# plt.grid(True) + +# plt.figure() + +# plt.plot(vq_act[:, 0]) +# plt.plot(list__234[:, 1]) +# plt.title("Velocities") +# plt.xlabel("Time") +# plt.ylabel("Z-vel") +# plt.legend(["actual vel", "desired vel"]) +# plt.grid(True) + +# plt.figure() + +# plt.plot(q_act[:, 0]) +# plt.plot(list__234[:, 0]) +# plt.title("Position") +# plt.xlabel("Time") +# plt.ylabel("Z-Pos") +# plt.legend(["actual vel", "desired vel"]) +# plt.grid(True) + +# plt.show() +# pass diff --git a/jmoves/auto_robot_design/pinokla/calc_criterion.py b/jmoves/auto_robot_design/pinokla/calc_criterion.py new file mode 100644 index 00000000..680a0ab7 --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/calc_criterion.py @@ -0,0 +1,628 @@ + +import time +from collections import UserDict +from enum import IntFlag, auto +from typing import NamedTuple, Optional + +import numpy as np +import pinocchio as pin +from numpy.linalg import norm +from auto_robot_design.pinokla.closed_loop_jacobian import ( + constraint_jacobian_active_to_passive, +) +from auto_robot_design.pinokla.closed_loop_jacobian import ( + closedLoopInverseKinematicsProximal, + ConstraintFrameJacobian) +from auto_robot_design.pinokla.closed_loop_kinematics import ( + ForwardK, closedLoopProximalMount) +from auto_robot_design.pinokla.criterion_math import (calc_manipulability, + ImfProjections, calc_actuated_mass, calc_effective_inertia, + calc_force_ell_projection_along_trj, calc_IMF, calculate_mass, + convert_full_J_to_planar_xz) +from auto_robot_design.pinokla.loader_tools import Robot + + +class MovmentSurface(IntFlag): + XZ = auto() + ZY = auto() + YX = auto() + + +class PsedoStepResault(NamedTuple): + J_closed: np.ndarray = None + M: np.ndarray = None + dq: np.ndarray = None + + +class DataDict(UserDict): + """Dict to store simulation data. Each value is np.array with same size. + + Args: + UserDict (_type_): _description_ + """ + + def get_frame(self, index): + """Get values with same index. + + Args: + index (_type_): _description_ + + Returns: + _type_: _description_ + """ + extracted_elements = {} + for key, array in self.items(): + extracted_elements[key] = array[index] + return extracted_elements + + def get_data_len(self): + return len(self[next(iter(self))]) + + +def search_workspace( + model, + data, + effector_frame_name: str, + base_frame_name: str, + q_space: np.ndarray, + actuation_model, + constraint_models, + viz=None, +): + """Iterate forward kinematics over q_space and try to minimize constrain value. + + Args: + model (_type_): _description_ + data (_type_): _description_ + effector_frame_name (str): _description_ + base_frame_name (str): _description_ + q_space (np.ndarray): _description_ + actuation_model (_type_): _description_ + constraint_models (_type_): _description_ + viz (_type_, optional): _description_. Defaults to None. + + Returns: + _type_: _description_ + """ + c = 0 + q_start = pin.neutral(model) + workspace_xyz = np.empty((len(q_space), 3)) + available_q = np.empty((len(q_space), len(q_start))) + for q_sample in q_space: + + q_dict_mot = zip(actuation_model.idqmot, q_sample) + for key, value in q_dict_mot: + q_start[key] = value + q3, error = ForwardK( + model, + constraint_models, + actuation_model, + q_start, + 150, + ) + + if error < 1e-11: + if viz: + viz.display(q3) + time.sleep(0.005) + q_start = q3 + pin.framesForwardKinematics(model, data, q3) + id_effector = model.getFrameId(effector_frame_name) + id_base = model.getFrameId(base_frame_name) + effector_pos = data.oMf[id_effector].translation + base_pos = data.oMf[id_base].translation + transformed_pos = effector_pos - base_pos + + workspace_xyz[c] = transformed_pos + available_q[c] = q3 + c += 1 + return (workspace_xyz[0:c], available_q[0:c]) + + +def folow_traj_by_proximal_inv_k( + model, + data, + constraint_models, + constraint_data, + end_effector_frame: str, + traj_6d: np.ndarray, + viz=None, + q_start: np.ndarray = None, +): + """Solve the inverse kinematic problem + + Args: + model (_type_): _description_ + data (_type_): _description_ + constraint_models (_type_): _description_ + constraint_data (_type_): _description_ + end_effector_frame (str): _description_ + traj_6d (np.ndarray): _description_ + viz (_type_, optional): _description_. Defaults to None. + q_start (np.ndarray, optional): _description_. Defaults to None. + + Returns: + np.array: end-effector positions in final state + np.array: joint coordinates in final state + np.array: deviations from the desired position + + """ + if q_start: + q = q_start + else: + q = pin.neutral(model) + + ee_frame_id = model.getFrameId(end_effector_frame) + poses = np.zeros((len(traj_6d), 3)) + q_array = np.zeros((len(traj_6d), len(q))) + constraint_errors = np.zeros((len(traj_6d), 1)) + + for num, i_pos in enumerate(traj_6d): + q, min_feas, is_reach = closedLoopInverseKinematicsProximal( + model, + data, + constraint_models, + constraint_data, + i_pos, + ee_frame_id, + onlytranslation=True, + q_start=q, + ) + if not is_reach: + q = closedLoopProximalMount( + model, data, constraint_models, constraint_data, q + ) + if viz: + viz.display(q) + time.sleep(0.1) + + pin.framesForwardKinematics(model, data, q) + poses[num] = data.oMf[ee_frame_id].translation + q_array[num] = q + constraint_errors[num] = min_feas + + return poses, q_array, constraint_errors + + +def folow_traj_by_proximal_inv_k_2( + model, + data, + constraint_models, + constraint_data, + end_effector_frame: str, + traj_6d: np.ndarray, + viz=None, + q_start: np.ndarray = None, +): + """Solve the inverse kinematic problem + + Args: + model (_type_): _description_ + data (_type_): _description_ + constraint_models (_type_): _description_ + constraint_data (_type_): _description_ + end_effector_frame (str): _description_ + traj_6d (np.ndarray): _description_ + viz (_type_, optional): _description_. Defaults to None. + q_start (np.ndarray, optional): _description_. Defaults to None. + + Returns: + np.array: end-effector positions in final state + np.array: joint coordinates in final state + np.array: deviations from the desired position + + """ + if q_start: + q = q_start + else: + q = pin.neutral(model) + + ee_frame_id = model.getFrameId(end_effector_frame) + poses = np.zeros((len(traj_6d), 3)) + reach_array = np.zeros(len(traj_6d)) + q_array = np.zeros((len(traj_6d), len(q))) + constraint_errors = np.zeros((len(traj_6d), 1)) + + for num, i_pos in enumerate(traj_6d): + q, min_feas, is_reach = closedLoopInverseKinematicsProximal( + model, + data, + constraint_models, + constraint_data, + i_pos, + ee_frame_id, + onlytranslation=True, + q_start=q, + ) + if not is_reach: + q = closedLoopProximalMount( + model, data, constraint_models, constraint_data, q + ) + if viz: + viz.display(q) + time.sleep(0.1) + + pin.framesForwardKinematics(model, data, q) + poses[num] = data.oMf[ee_frame_id].translation + q_array[num] = q + constraint_errors[num] = min_feas + reach_array[num] = is_reach + + return poses, q_array, constraint_errors, reach_array + + +def pseudo_static_step(robot: Robot, q_state: np.ndarray, + ee_frame_name: str) -> PsedoStepResault: + + ee_frame_id = robot.model.getFrameId(ee_frame_name) + pin.framesForwardKinematics(robot.model, robot.data, q_state) + pin.computeJointJacobians(robot.model, robot.data, q_state) + pin.centerOfMass(robot.model, robot.data, q_state) + + # J_closed = ConstraintFrameJacobian( + # robot.model, + # robot.data, + # robot.constraint_models, + # robot.constraint_data, + # robot.actuation_model, + # q_state, + # ee_frame_id, + # robot.data.oMf[ee_frame_id].action @ np.zeros(6), + # ) + _dq_dqmot, __ = constraint_jacobian_active_to_passive( + robot.model, + robot.data, + robot.constraint_models, + robot.constraint_data, + robot.actuation_model, + q_state, + ) + + J_closed = ( + pin.computeFrameJacobian( + robot.model, robot.data, q_state, ee_frame_id, pin.LOCAL_WORLD_ALIGNED + ) + @ _dq_dqmot + ) + #[[0,2]] + LJ = [] + for cm, cd in zip(robot.constraint_models, robot.constraint_data): + Jc = pin.getConstraintJacobian(robot.model, robot.data, cm, cd) + LJ.append(Jc) + + M = pin.crba(robot.model, robot.data, q_state) + # TODO: force Kirill to explain what is this and why we need it + #dq = dq_dqmot(robot.model, robot.actuation_model, LJ) + dq =_dq_dqmot + return PsedoStepResault(J_closed, M, dq) + + +def iterate_over_q_space(robot: Robot, q_space: np.ndarray, + ee_frame_name: str): + zero_step = pseudo_static_step(robot, q_space[0], ee_frame_name) + + res_dict = DataDict() + for key, value in zero_step._asdict().items(): + alocate_array = np.zeros( + (len(q_space), *value.shape), dtype=np.float64) + res_dict[key] = alocate_array + + for num, q_state in enumerate(q_space): + one_step_res = pseudo_static_step(robot, q_state, ee_frame_name) + for key, value in one_step_res._asdict().items(): + res_dict[key][num] = value + + return res_dict + + +class ComputeInterfaceMoment: + """Abstract class for calculate criterion on each step of simulation.""" + + def __init__(self) -> None: + """Determine what type of data is needed for the calculation. + From an free model or fixed base model + """ + self.is_fixed = True + + def __call__( + self, data_frame: dict[str, np.ndarray], robo: Robot = None + ) -> np.ndarray: + """Call on every data frame from data_dict. + + Args: + data_frame (dict[str, np.ndarray]): see get_frame + robo (Robot, optional): model description. Defaults to None. + + Raises: + NotImplemented: _description_ + + Returns: + np.ndarray: _description_ + """ + raise NotImplemented + + def output_matrix_shape(self) -> Optional[tuple]: + return None + + +class ComputeInterface: + """Abstract class for calculate criterion on data trajectory of simulation.""" + + def __init__(self) -> None: + """Determine what type of data is needed for the calculation. + From an free model or fixed base model + """ + self.is_fixed = True + + def __call__(self, data_dict: DataDict, robo: Robot = None): + """Call on output data_dict, that contain whole simulation data. See iterate_over_q_space and pseudo_static_step. + + Args: + data_dict (DataDict): simulation data dict + robo (Robot, optional): model description. Defaults to None. + + Raises: + NotImplemented: _description_ + """ + raise NotImplemented + + +class ImfCompute(ComputeInterfaceMoment): + """Wrapper for IMF. Criterion implementation src is criterion_math""" + + def __init__(self, projection: ImfProjections) -> None: + self.projection = projection + self.is_fixed = False + + def __call__( + self, data_frame: dict[str, np.ndarray], robo: Robot = None + ) -> np.ndarray: + imf = calc_IMF( + data_frame["M"], data_frame["dq"], data_frame["J_closed"], self.projection + ) + return imf + + +class EffectiveInertiaCompute(ComputeInterfaceMoment): + """Wrapper for Effective Inertia. Criterion implementation src is criterion_math""" + + def __init__(self) -> None: + self.is_fixed = True + + def __call__( + self, data_frame: dict[str, np.ndarray], robo: Robot = None + ) -> np.ndarray: + eff_inertia = calc_effective_inertia( + data_frame["M"], data_frame["dq"], data_frame["J_closed"] + ) + return eff_inertia + + +class ActuatedMass(ComputeInterfaceMoment): + """Wrapper for Actuated_Mass. Criterion implementation src is criterion_math""" + + def __init__(self) -> None: + self.is_fixed = True + + def __call__( + self, data_frame: dict[str, np.ndarray], robo: Robot = None + ) -> np.ndarray: + eff_inertia = calc_actuated_mass( + data_frame["M"], data_frame["dq"], data_frame["J_closed"] + ) + return eff_inertia + + +class ManipCompute(ComputeInterfaceMoment): + """Wrapper for manipulability. Criterion implementation src is criterion_math""" + + def __init__(self, surface: MovmentSurface) -> None: + self.surface = surface + self.is_fixed = True + + def __call__( + self, data_frame: dict[str, np.ndarray], robo: Robot = None + ) -> np.ndarray: + if self.surface == MovmentSurface.XZ: + target_J = data_frame["J_closed"] + target_J = convert_full_J_to_planar_xz(target_J) + target_J = target_J[:2, :2] + else: + raise NotImplemented + manip_space = calc_manipulability(target_J) + return manip_space + + +class ManipJacobian(ComputeInterfaceMoment): + """Wrapper for manipulability. Criterion implementation src is criterion_math""" + + def __init__(self, surface: MovmentSurface) -> None: + self.surface = surface + self.is_fixed = True + + def __call__( + self, data_frame: dict[str, np.ndarray], robo: Robot = None + ) -> np.ndarray: + if self.surface == MovmentSurface.XZ: + target_J = data_frame["J_closed"] + target_J = convert_full_J_to_planar_xz(target_J) + target_J = target_J[:2, :2] + else: + raise NotImplemented + + return target_J + + +class ForceCapabilityProjectionCompute(ComputeInterface): + """Wrapper for calculate projection force ellipsoid axis to ez and xz trajectory. Criterion implementation src is criterion_math + Return sum of absolute dot product of trajectory and u1, u2 (axis force ellips), z-axis and u1, u2 (axis force ellips). + + Fucntion Call Returns: + tuple: A tuple containing the following values: + - abs_dot_product_traj_u1: The absolute dot product of the trajectory and u1. + - abs_dot_product_traj_u2: The absolute dot product of the trajectory and u2. + - abs_dot_product_z_u1: The absolute dot product of the z-axis and u1. + - abs_dot_product_z_u2: The absolute dot product of the z-axis and u2. + """ + + def __init__(self) -> None: + self.is_fixed = True + + def __call__(self, data_dict: DataDict, robo: Robot = None) -> np.ndarray: + """ + Calculate projection force ellipsoid axis to ez and xz trajectory. + + Args: + data_dict (DataDict): A dictionary containing the required data for calculation. + robo (Robot, optional): The robot object. Defaults to None. + + Returns: + tuple: A tuple containing the following values: + - abs_dot_product_traj_u1: The absolute dot product of the trajectory and u1. + - abs_dot_product_traj_u2: The absolute dot product of the trajectory and u2. + - abs_dot_product_z_u1: The absolute dot product of the z-axis and u1. + - abs_dot_product_z_u2: The absolute dot product of the z-axis and u2. + """ + + Jc_traj = data_dict["J_closed"] + traj_xz = data_dict["traj_6d_ee"][:, [0, 2]] + + Jc_xz_traj = Jc_traj[:, [0, 2], :] + # U, S, Vh = np.linalg.svd(Jc_xz_traj, hermitian=True) + U, S, Vh = np.linalg.svd(Jc_xz_traj) + USsec = np.array([np.diag(1/s) @ u for u, s in zip(U, S)]) + US1 = USsec[:, 0, :] + US2 = USsec[:, 1, :] + + d_traj_xz = np.diff(traj_xz, axis=0) + d_traj_xz = np.vstack([d_traj_xz, [0, 0]]) + + abs_dot_product_traj_u1 = np.sum( + np.abs(np.sum(US1 * d_traj_xz, axis=1))).squeeze() + abs_dot_product_traj_u2 = np.sum( + np.abs(np.sum(US2 * d_traj_xz, axis=1))).squeeze() + abs_dot_product_z_u1 = np.sum(np.abs(US1[:, 1])).squeeze() + abs_dot_product_z_u2 = np.sum(np.abs(US2[:, 1])).squeeze() + + return ( + abs_dot_product_traj_u1, + abs_dot_product_traj_u2, + abs_dot_product_z_u1, + abs_dot_product_z_u2, + ) + + +class NeutralPoseMass(ComputeInterface): + """Wrapper for calculate total mass of robot. Criterion implementation src is criterion_math""" + + def __init__(self) -> None: + self.is_fixed = False + + def __call__(self, data_dict: DataDict, robo: Robot = None): + return calculate_mass(robo) + + +class ForceEllProjections(ComputeInterface): + """Wrapper for calc_force_ell_projection_along_trj. + + Args: + ComputeInterface (_type_): _description_ + """ + + def __init__(self) -> None: + self.is_fixed = True + + def __call__(self, data_dict: DataDict, robo: Robot = None): + ell_params = calc_force_ell_projection_along_trj( + data_dict["J_closed"], data_dict["traj_6d"] + ) + return ell_params + + +class TranslationErrorMSE(ComputeInterface): + """Calculate mean square error for translation part of end effector trajectory""" + + def __init__(self) -> None: + self.is_fixed = True + + def __call__(self, data_dict: DataDict, robo: Robot = None): + + errors = norm(data_dict["traj_6d"][:, :3] - data_dict["traj_6d_ee"][:, :3], + axis=1) + mean_error = np.mean(errors) + if mean_error < 1e-6: + return 0 + return mean_error + + +def moment_criteria_calc(calculate_desription: dict[str, + ComputeInterfaceMoment], + data_dict_free: DataDict, data_dict_fixed: DataDict, + robo: Robot = None) -> DataDict: + """Calculate all critrion from calculate_desription. Each criterion is + called on data frames that represent the data at each point in time. + + Args: + calculate_desription (dict[str, ComputeInterfaceMoment]): key is criterion name, value is critrion resault + data_dict (DataDict): _description_ + robo (Robot, optional): _description_. Defaults to None. + + Returns: + DataDict: _description_ + """ + res_dict = DataDict() + for key, criteria in calculate_desription.items(): + if criteria.is_fixed: + data_dict = data_dict_fixed + else: + data_dict = data_dict_free + + shape = criteria.output_matrix_shape() + if shape: + res_dict[key] = np.zeros( + (data_dict.get_data_len(), *shape), dtype=np.float32 + ) + else: + frame_data = data_dict.get_frame(0) + zero_step = criteria(frame_data) + res_dict[key] = np.zeros( + (data_dict.get_data_len(), *zero_step.shape), dtype=np.float32 + ) + # Need implement alocate from zero step data size + # raise NotImplemented + + for index in range(data_dict_fixed.get_data_len()): + for key, criteria in calculate_desription.items(): + if criteria.is_fixed: + data_dict = data_dict_fixed + else: + data_dict = data_dict_free + + data_frame = data_dict.get_frame(index) + res_dict[key][index] = criteria(data_frame, robo) + return res_dict + + +def along_criteria_calc(calculate_desription: dict[str, ComputeInterface], + data_dict_free: DataDict, data_dict_fixed: DataDict, + robo_fixed: Robot = None, robo_free: Robot = None) -> dict: + """Each criterion get the entire DataDict and Robot. + + Args: + calculate_desription (dict[str, ComputeInterface]): _description_ + data_dict (DataDict): _description_ + robo (Robot, optional): _description_. Defaults to None. + + Returns: + dict: _description_ + """ + res_dict = {} + for key, criteria in calculate_desription.items(): + if criteria.is_fixed: + data_dict = data_dict_fixed + robo = robo_fixed + else: + data_dict = data_dict_free + robo = robo_free + res_dict[key] = criteria(data_dict, robo) + return res_dict diff --git a/jmoves/auto_robot_design/pinokla/closed_loop_jacobian.py b/jmoves/auto_robot_design/pinokla/closed_loop_jacobian.py new file mode 100644 index 00000000..866c895f --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/closed_loop_jacobian.py @@ -0,0 +1,355 @@ +import pinocchio as pin +import numpy as np +from numpy.linalg import norm +# from loader_tools import * +# from apps.results_humanoid_2023.criterion_test import Li +from auto_robot_design.pinokla.closed_loop_kinematics import * +from pinocchio.robot_wrapper import RobotWrapper +import os +from auto_robot_design.pinokla.loader_tools import completeRobotLoader + +import meshcat +from pinocchio.visualize import MeshcatVisualizer + +def jacobianFinitDiffClosedLoop(model,actuation_model,constraint_model, idframe: int, idref: int, qmot: np.array,q_prec, dq=1e-6,name_mot='mot',fermeture='fermeture'): + """ + J=Jacobian_diff_finis(robot ,idframe: int,idref :int,qo :np.array,dq: float) + return the jacobian of the frame id idframe in the reference frame number idref, with the configuration of the robot rob qo + """ + LJ = [] # the transpose of the Jacobian ( list of list) + + data = model.createData() + q,b=closedLoopForwardKinematics(model, data, qmot, q_prec, name_mot, fermeture) + pin.framesForwardKinematics(model, data, q) + oMf1 = data.oMf[idframe].copy() # require to avoid bad pointing + oMrep = data.oMf[idref].copy() + + RrefXframe = (oMrep.inverse() * oMf1).action + Lidmot=getMotId_q(model,name_mot) + for i in range(len(Lidmot)): # finit difference algorithm + qmot[i] = qmot[i] + dq + nq,b=closedLoopForwardKinematics(model, data, qmot, q_prec, name_mot, fermeture) + pin.framesForwardKinematics(model, data, nq) + oMf1p = data.oMf[idframe] + V = pin.log(oMf1.inverse() * oMf1p).vector / dq + + LJ.append(V.tolist()) + qmot[i] = qmot[i] - dq + + J = np.transpose(np.array(LJ)) + J = RrefXframe @ J + return J + + +def sepJc(model,actuation_model,Jn): + """ + Jmot,Jfree=sepJc(model,actuation_model,Jn) + + Separate a constraint Jacobian `Jn` into Jcmot and Jcfree, the constraint Jacobians associated with the motor joints and free joints. + + Args: + model (pinocchio.Model): Pinocchio model. + actuation_model (ActuationModelFreeFlyer): Actuation model. + Jn (np.array): Constraint Jacobian. + + Returns: + tuple: A tuple containing: + - Jmot (np.array): Constraint Jacobian associated with the motor joints. + - Jfree (np.array): Constraint Jacobian associated with the free joints. + """ + Lidmot=actuation_model.idvmot + Lidfree=actuation_model.idvfree + + + Smot=np.zeros((model.nv,len(Lidmot))) + Smot[Lidmot,range(len(Lidmot))]=1 + + Sfree=np.zeros((model.nv,model.nv-len(Lidmot))) + Sfree[Lidfree,range(len(Lidfree))]=1 + + + Jmot=Jn@Smot + Jfree=Jn@Sfree + return(Jmot,Jfree) + +def dqRowReorder(model,actuation_model,dq): + """ + q=dqRowReorder(model,actuation_model,dq) + + Reorganize the vector/matrix `dq` in accordance with the model. + + Args: + model (pinocchio.Model): Pinocchio model. + actuation_model (ActuationModelFreeFlyer): Actuation model. + dq (np.array): Vector/matrix organized as [dqmot dqfree]. + + Returns: + np.array: Reorganized `dq` vector/matrix. + """ + Lidmot=actuation_model.idvmot + Lidfree=actuation_model.idvfree + imot=0 + ifree=0 + nJ=dq.copy() + for i,dq in enumerate(dq.tolist()): + if i 0.5: + break + y -= alpha * (-dy + y) + + pin.framesForwardKinematics(model, data, q) + + # pos_e = np.linalg.norm(data.oMf[id_frame].translation - + # np.array(target_pos[0:3])) + min_feas = primal_feas + min_real_feas = real_constrain_feas + if not is_reach: + for_sort = np.column_stack( + (primal_feas_array, real_feas_array, q_array)) + + def key_sort(x): return x[0] + for_sort = sorted(for_sort, key=key_sort) + finish_q = for_sort[0][2:] + q = finish_q + min_feas = for_sort[0][0] + min_real_feas = for_sort[0][1] + pin.framesForwardKinematics(model, data, q) + # print(min_real_feas," ", is_reach) + + return q, min_feas, is_reach + + +def closedLoopProximalMount( + model, + data, + constraint_model, + constraint_data, + # actuation_model, + q_prec=None, + max_it=100, + eps=1e-6, + rho=1e-10, + mu=1e-4, +): + """ + q=proximalSolver(model,data,constraint_model,constraint_data,max_it=100,eps=1e-12,rho=1e-10,mu=1e-4) + + Build the robot in respect to the constraints using a proximal solver. + + Args: + model (pinocchio.Model): Pinocchio model. + data (pinocchio.Data): Pinocchio data. + constraint_model (list): List of constraint models. + constraint_data (list): List of constraint data. + actuation_model (ActuationModelFreeFlyer): Actuation model. + q_prec (list or np.array, optional): Initial guess for joint positions. Defaults to []. + max_it (int, optional): Maximum number of iterations. Defaults to 100. + eps (float, optional): Convergence threshold for primal and dual feasibility. Defaults to 1e-12. + rho (float, optional): Scaling factor for the identity matrix. Defaults to 1e-10. + mu (float, optional): Penalty parameter. Defaults to 1e-4. + + Returns: + np.array: Joint positions of the robot respecting the constraints. + + raw here (L84-126):https://gitlab.inria.fr/jucarpen/pinocchio/-/blob/pinocchio-3x/examples/simulation-closed-kinematic-chains.py + """ + + # Lid = actuation_model.idqmot + if q_prec is None: + q_prec = pin.neutral(model) + q = q_prec + + constraint_dim = 0 + for cm in constraint_model: + constraint_dim += cm.size() + # If constraint_dim is 0, then the robot have open loop kinematics + if constraint_dim == 0: + return q + y = np.ones((constraint_dim)) + data.M = np.eye(model.nv) * rho + kkt_constraint = pin.ContactCholeskyDecomposition(model, constraint_model) + + for k in range(max_it): + pin.computeJointJacobians(model, data, q) + kkt_constraint.compute( + model, data, constraint_model, constraint_data, mu) + + constraint_value = np.concatenate( + [ + (pin.log(cd.c1Mc2).np[: cm.size()]) + for (cd, cm) in zip(constraint_data, constraint_model) + ] + ) + + LJ = [] + for cm, cd in zip(constraint_model, constraint_data): + Jc = pin.getConstraintJacobian(model, data, cm, cd) + LJ.append(Jc) + J = np.concatenate(LJ) + + primal_feas = np.linalg.norm(constraint_value, np.inf) + dual_feas = np.linalg.norm(J.T.dot(constraint_value + y), np.inf) + if primal_feas < eps and dual_feas < eps: + # print("Convergence achieved") + break + # print("constraint_value:", np.linalg.norm(constraint_value)) + rhs = np.concatenate([-constraint_value - y * mu, np.zeros(model.nv)]) + + dz = kkt_constraint.solve(rhs) + dy = dz[:constraint_dim] + dq = dz[constraint_dim:] + + alpha = 1.0 + q = pin.integrate(model, q, -alpha * dq) + y -= alpha * (-dy + y) + return q + + +def ForwardK( + model, + constraint_model, + actuation_model, + q_prec=None, + max_it=100, + alpha=0.7, + eps=1e-12, + rho=1e-10, + mu=1e-4, + +): + """ + q=proximalSolver(model,data,constraint_model,constraint_data,max_it=100,eps=1e-12,rho=1e-10,mu=1e-4) + + Build the robot in respect to the constraints using a proximal solver. + + Args: + model (pinocchio.Model): Pinocchio model. + data (pinocchio.Data): Pinocchio data. + constraint_model (list): List of constraint models. + constraint_data (list): List of constraint data. + actuation_model (ActuationModelFreeFlyer): Actuation model. + q_prec (list or np.array, optional): Initial guess for joint positions. Defaults to []. + max_it (int, optional): Maximum number of iterations. Defaults to 100. + eps (float, optional): Convergence threshold for primal and dual feasibility. Defaults to 1e-12. + rho (float, optional): Scaling factor for the identity matrix. Defaults to 1e-10. + mu (float, optional): Penalty parameter. Defaults to 1e-4. + + Returns: + np.array: Joint positions of the robot respecting the constraints. + + raw here (L84-126):https://gitlab.inria.fr/jucarpen/pinocchio/-/blob/pinocchio-3x/examples/simulation-closed-kinematic-chains.py + """ + + Lid = actuation_model.idMotJoints + Lid_q = actuation_model.idqmot + + (reduced_model, reduced_constraint_models, reduced_actuation_model) = freezeJointsWithoutVis( + model, constraint_model, None, Lid, q_prec + ) + + reduced_data = reduced_model.createData() + reduced_constraint_data = [c.createData() + for c in reduced_constraint_models] + + q = np.delete(q_prec, Lid_q, axis=0) + constraint_dim = 0 + for cm in reduced_constraint_models: + constraint_dim += cm.size() + + y = np.ones((constraint_dim)) + reduced_data.M = np.eye(reduced_model.nv) * rho + kkt_constraint = pin.ContactCholeskyDecomposition( + reduced_model, reduced_constraint_models + ) + + for k in range(max_it): + pin.computeJointJacobians(reduced_model, reduced_data, q) + kkt_constraint.compute( + reduced_model, + reduced_data, + reduced_constraint_models, + reduced_constraint_data, + mu, + ) + + constraint_value = np.concatenate( + [ + (pin.log(cd.c1Mc2).np[: cm.size()]) + for (cd, cm) in zip(reduced_constraint_data, reduced_constraint_models) + ] + ) + + # LJ = [] + # for cm, cd in zip(reduced_constraint_models, reduced_constraint_data): + # Jc = pin.getConstraintJacobian(reduced_model, reduced_data, cm, cd) + # LJ.append(Jc) + # J = np.concatenate(LJ) + + primal_feas = np.linalg.norm(constraint_value, np.inf) + # dual_feas = np.linalg.norm(J.T.dot(constraint_value + y), np.inf) + if primal_feas < eps: + # print("Convergence achieved") + break + # print("constraint_value:", np.linalg.norm(constraint_value)) + rhs = np.concatenate( + [-constraint_value - y * mu, np.zeros(reduced_model.nv)]) + + dz = kkt_constraint.solve(rhs) + dy = dz[:constraint_dim] + dq = dz[constraint_dim:] + + q = pin.integrate(reduced_model, q, -alpha * dq) + y -= alpha * (-dy + y) + + q_final = q_prec + free_q_dict = zip(actuation_model.idqfree, q) + for index, value in free_q_dict: + q_final[index] = value + return q_final, primal_feas + + +def ForwardK1( + model, + visual_model, + constraint_model, + collision_model, + actuation_model, + q_prec=None, + max_it=100, + eps=1e-12, + rho=1e-10, + mu=1e-4, +): + Lid = actuation_model.idMotJoints + + Lid_q = actuation_model.idqmot + q_prec2 = np.delete(q_prec, Lid, axis=0) + model2 = model.copy() + constraint_model2 = constraint_model.copy() + reduced_model, reduced_constraint_models, reduced_actuation_model, reduced_visual_model, reduced_collision_model = freezeJoints(model2, + constraint_model2, + actuation_model, + visual_model, + collision_model, + Lid, + q_prec, + ) + + reduced_data = reduced_model.createData() + data = model.createData() + reduced_constraint_data = [c.createData() + for c in reduced_constraint_models] + constraint_data = [c.createData() for c in constraint_model2] + + pin.framesForwardKinematics(reduced_model, reduced_data, q_prec2) + pin.computeAllTerms( + reduced_model, + reduced_data, + q_prec2, + q_prec2) + + q_ooo = closedLoopProximalMount( + reduced_model, + reduced_data, + reduced_constraint_models, + reduced_constraint_data, + reduced_actuation_model, + q_prec2, + max_it=4, + rho=1e-8, + mu=1e-3 + ) + + return q_ooo + + + + diff --git a/jmoves/auto_robot_design/pinokla/criterion_agregator.py b/jmoves/auto_robot_design/pinokla/criterion_agregator.py new file mode 100644 index 00000000..9799b20a --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/criterion_agregator.py @@ -0,0 +1,134 @@ +import os +from hashlib import sha256 +from pathlib import Path + +import numpy as np + +from auto_robot_design.motion_planning.trajectory_ik_manager import ( + IK_METHODS, TrajectoryIKManager) +from auto_robot_design.pinokla.calc_criterion import (ComputeInterfaceMoment, + DataDict, + along_criteria_calc, + iterate_over_q_space, + moment_criteria_calc) +from auto_robot_design.pinokla.loader_tools import ( + Robot, build_model_with_extensions) + + +def calculate_quasi_static_simdata(free_robot: Robot, + fixed_robot: Robot, + ee_frame_name: str, + traj_6d: np.ndarray, + viz=None, alg_name = "Closed_Loop_PI") -> tuple[DataDict, DataDict]: + """Calculate criteria for free model(root joint is universal) and + fixed model (root joint is weld). + + Args: + free_robot (Robot): free model + fixed_robot (Robot): fixed model + ee_frame_name (str): _description_ + traj_6d (np.ndarray): Desired end-effector trajectory + viz (_type_, optional): _description_. Defaults to None. + + Returns: + tuple[DataDict, DataDict]: free data, closed data + """ + # create the trajectory manager and set the solver + ik_manager = TrajectoryIKManager() + ik_manager.register_model(fixed_robot.model, fixed_robot.constraint_models) + ik_manager.set_solver(alg_name) + poses, q_fixed, constraint_errors,reach_array = ik_manager.follow_trajectory(traj_6d) + + # add standard body position to all points in the q space + normal_pose = np.array([0, 0, 0, 0, 0, 0, 1], dtype=np.float64) + free_body_q = np.repeat(normal_pose[np.newaxis, :], len(q_fixed), axis=0) + free_space_q = np.concatenate((free_body_q, q_fixed), axis=1) + # perform calculations of the Jacobians, inertial and dq for free and fixed robots + res_dict_free = iterate_over_q_space(free_robot, free_space_q, + ee_frame_name) + res_dict_fixed = iterate_over_q_space(fixed_robot, q_fixed, ee_frame_name) + # add trajectory following characteristics to the result dictionaries + res_dict_fixed["traj_6d_ee"] = poses + res_dict_free["traj_6d_ee"] = poses + + res_dict_fixed["traj_6d"] = traj_6d + res_dict_free["traj_6d"] = traj_6d + + res_dict_fixed["error"] = constraint_errors + res_dict_free["error"] = constraint_errors + + res_dict_fixed["is_reach"] = reach_array + res_dict_free["is_reach"] = reach_array + + res_dict_fixed['q'] = q_fixed + res_dict_free['q'] = free_space_q + + return res_dict_free, res_dict_fixed + + +class CriteriaAggregator: + """Create models from urdf and calculate criteria for the given trajectory. + """ + + def __init__(self, dict_moment_criteria: dict[str, ComputeInterfaceMoment], + dict_along_criteria: dict[str, ComputeInterfaceMoment], alg_name="Closed_Loop_PI") -> None: + self.dict_moment_criteria = dict_moment_criteria + self.dict_along_criteria = dict_along_criteria + self.end_effector_name = "EE" + self.IK_alg_name = alg_name + + def get_criteria_data(self, fixed_robot, free_robot, traj_6d, n_auxiliary_points:int = 50, viz=None): + """Perform calculating + + Args: + urdf_str (str): _description_ + mot_des (dict): _description_ + loop_des (dict): _description_ + + Returns: + dict: data calculated for each trajectory point + dict: data calculated as a result of the whole simulation + dict: results of trajectory following for the fixed robot + """ + + # perform calculations of the data required to calculate the fancy mech criteria + res_dict_free, res_dict_fixed = calculate_quasi_static_simdata( + free_robot, fixed_robot, self.end_effector_name, traj_6d,viz=viz, alg_name=self.IK_alg_name) + # calculate the criteria that can be assigned to each point at the trajectory + point_criteria_vector = moment_criteria_calc(self.dict_moment_criteria, + res_dict_free, res_dict_fixed) + # calculate criteria that characterize the performance along the whole trajectory + trajectory_criteria = along_criteria_calc(self.dict_along_criteria,res_dict_free, + res_dict_fixed, fixed_robot, free_robot) + # remove the first 50 points from the results, as they belong to the auxiliary part of the trajectory + for d in [point_criteria_vector, res_dict_fixed]: + for k,v in d.items(): + d[k] = v[n_auxiliary_points::] + return point_criteria_vector, trajectory_criteria, res_dict_fixed + + +def save_criterion_traj( + urdf: str, + directory: str, + loop_description: dict, + mot_description: dict, + data_dict: dict, +): + + graph_name = sha256(urdf.encode()).hexdigest() + path_with_name = Path(directory) / graph_name + savable_dict = { + "urdf": urdf, + "loop_description": loop_description, + "mot_description": mot_description, + } + + savable_dict.update(data_dict) + os.makedirs(Path(directory), exist_ok=True) + np.savez(path_with_name, **savable_dict) + + +def load_criterion_traj(name: str): + path = Path(name) + load_data = np.load(path, allow_pickle=True) + return dict(load_data) diff --git a/jmoves/auto_robot_design/pinokla/criterion_math.py b/jmoves/auto_robot_design/pinokla/criterion_math.py new file mode 100644 index 00000000..632ddb01 --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/criterion_math.py @@ -0,0 +1,156 @@ +from enum import IntFlag, auto + +from matplotlib.pylab import LinAlgError +import numpy as np +import pinocchio as pin + +from auto_robot_design.pinokla.loader_tools import Robot + +import numpy.linalg as la + + +class ImfProjections(IntFlag): + X = auto() + Y = auto() + Z = auto() + ALL = auto() + + +def convert_full_J_to_planar_xz(full_J: np.ndarray): + ret = np.row_stack((full_J[0], full_J[2], full_J[4])) + return ret + +def convert_full_J_to_planar_xy(full_J: np.ndarray): + ret = np.row_stack((full_J[0], full_J[1], full_J[3])) + return ret + +def calc_manipulability(jacob: np.ndarray): + U, S, Vh = np.linalg.svd(jacob) + return np.prod(S) + + +def calc_svd_jacobian(jacob: np.ndarray): + U, S, Vh = np.linalg.svd(jacob) + return U, S, Vh + + +def calc_IMF(M: np.ndarray, + dq: np.ndarray, + J_closed: np.ndarray, + projection: ImfProjections = ImfProjections.Z): + + x = np.array([1, 0, 0, 0, 0, 0]) + y = np.array([0, 1, 0, 0, 0, 0]) + z = np.array([0, 0, 1, 0, 0, 0]) + + + Mmot_free = dq.T @ M @ dq + Lambda_free = np.linalg.inv( + J_closed @ np.linalg.inv(Mmot_free) @ J_closed.T) + Lambda_free_lock = np.linalg.inv(J_closed[:6, :6] @ np.linalg.inv( + Mmot_free[:6, :6]) @ J_closed[:6, :6].T) + + if projection == ImfProjections.X: + ret_IMF = 1 - (x.T @ Lambda_free @ x) / (x.T @ Lambda_free_lock @ x) + elif projection == ImfProjections.Y: + ret_IMF = 1 - (y.T @ Lambda_free @ y) / (y.T @ Lambda_free_lock @ y) + elif projection == ImfProjections.Z: + ret_IMF = 1 - (z.T @ Lambda_free @ z) / (z.T @ Lambda_free_lock @ z) + elif projection == ImfProjections.ALL: + ret_IMF = np.linalg.det( + np.identity(6) - Lambda_free @ np.linalg.inv(Lambda_free_lock)) + + return ret_IMF + +def calc_effective_inertia(M: np.ndarray, + dq: np.ndarray, + J_closed: np.ndarray, + projection: ImfProjections = ImfProjections.Z): + + Mmot = dq.T @ M @ dq + J_closed = J_closed[[0,2]] + Lambda = np.linalg.inv( + J_closed @ np.linalg.inv(Mmot) @ J_closed.T) + + return Lambda + +def calc_actuated_mass(M: np.ndarray, + dq: np.ndarray, + J_closed: np.ndarray, + projection: ImfProjections = ImfProjections.Z): + + Mmot = dq.T @ M @ dq + Mmot = Mmot[:2, :2] + return Mmot + + +def calc_force_ellips_space(jacob: np.ndarray): + try: + ret1 = np.linalg.det(np.linalg.inv(jacob).T @ np.linalg.inv(jacob)) + except LinAlgError: + ret1 = 0 + return ret1 + + +def calc_svd_j_along_trj_trans(traj_J_closed): + array_manip = [] + for num, J in enumerate(traj_J_closed): + planar_J = convert_full_J_to_planar_xz(J) + trans_planar_J = planar_J[:2, :2] + # svd_j = calc_svd_jacobian(trans_planar_J) + array_manip.append(trans_planar_J) + + return array_manip + + +def calc_force_ell_projection_along_trj(traj_J_closed, traj_6d): + """ + Calculates the force ellipsoid projection along a trajectory. + + Args: + traj_J_closed (numpy.ndarray): Closed trajectory of Jacobian matrices. + traj_6d (numpy.ndarray): 6-dimensional trajectory. + + Returns: + dict: Dictionary containing the following keys: + - "u1_traj": Absolute dot product of trajectory and u1. + - "u2_traj": Absolute dot product of trajectory and u2. + - "u1_z": Absolute dot product of z-axis and u1. + - "u2_z": Absolute dot product of z-axis and u2. + """ + svd_J = calc_svd_j_along_trj_trans(traj_J_closed) + + d_xy = np.diff(traj_6d[:, np.array([0, 2])], axis=0) + d_xy = np.vstack([d_xy, [0, 0]]) + traj_j_svd = [np.linalg.svd(J_ck) for J_ck in svd_J] + + u1 = np.array([1 / J_svd[1][0] * J_svd[0][0, :] for J_svd in traj_j_svd]) + u2 = np.array([1 / J_svd[1][1] * J_svd[0][1, :] for J_svd in traj_j_svd]) + + abs_dot_product_traj_u1 = np.abs(np.sum(u1 * d_xy, axis=1).squeeze()) + abs_dot_product_traj_u2 = np.abs(np.sum(u2 * d_xy, axis=1).squeeze()) + + abs_dot_product_z_u1 = u1[:, 1] + abs_dot_product_z_u2 = u2[:, 1] + + out = { + "u1_traj": abs_dot_product_traj_u1, + "u2_traj": abs_dot_product_traj_u2, + "u1_z": abs_dot_product_z_u1, + "u2_z": abs_dot_product_z_u2 + } + return out + + +def calculate_mass(robo: Robot): + q_0 = pin.neutral(robo.model) + pin.computeAllTerms( + robo.model, + robo.data, + q_0, + np.zeros(robo.model.nv), + ) + total_mass = pin.computeTotalMass(robo.model, robo.data) + com_dist = la.norm(pin.centerOfMass(robo.model, robo.data)) + + return total_mass diff --git a/jmoves/auto_robot_design/pinokla/default_traj.py b/jmoves/auto_robot_design/pinokla/default_traj.py new file mode 100644 index 00000000..a6f1d506 --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/default_traj.py @@ -0,0 +1,107 @@ +import numpy as np +from scipy.interpolate import CubicSpline +from typing import Tuple + + +def convert_x_y_to_6d_traj(x: np.ndarray, y: np.ndarray): + traj_6d = np.zeros((len(x), 6), dtype=np.float64) + traj_6d[:, 0] = x + traj_6d[:, 1] = y + return traj_6d + + +def convert_x_y_to_6d_traj_xz(x: np.ndarray, y: np.ndarray): + traj_6d = np.zeros((len(x), 6), dtype=np.float64) + traj_6d[:, 0] = x + traj_6d[:, 2] = y + return traj_6d + + +def simple_traj_derivative(traj_6d: np.ndarray, dt: float = 0.001): + traj_6d_v = np.zeros(traj_6d.shape) + # (traj_6d[1:, :] - traj_6d[:-1, :])/dt + traj_6d_v[1:, :] = np.diff(traj_6d, axis=0)/dt + return traj_6d_v + + +def get_simple_spline(): + # Sample data points + x = np.array([-0.5, 0, 0.5]) + y = np.array([-1.02, -0.8, -1.02]) + # y = y - 0.5 + # x = x + 0.4 + # Create the cubic spline interpolator + cs = CubicSpline(x, y) + + # Create a dense set of points where we evaluate the spline + x_traj_spline = np.linspace(x.min(), x.max(), 75) + y_traj_spline = cs(x_traj_spline) + + # Plot the original data points + # plt.plot(x, y, 'o', label='data points') + + # Plot the spline interpolation + # plt.plot(x_traj_spline, y_traj_spline, label='cubic spline') + + # plt.legend() + # plt.show() + return (x_traj_spline, y_traj_spline) + + +def create_simple_step_trajectory(starting_point, step_height, step_width, n_points=75): + x_start = starting_point[0] + x_end = x_start + step_width + x = np.array([x_start, (x_start+x_end)/2, x_end]) + y = [starting_point[1], starting_point[1]+step_height, starting_point[1]] + cs = CubicSpline(x, y) + x_traj_spline = np.linspace(x.min(), x.max(), n_points) + y_traj_spline = cs(x_traj_spline) + return (x_traj_spline, y_traj_spline) + + +def get_vertical_trajectory(starting_point, height, x_shift, n_points=50): + x_trajectory = np.zeros(n_points) + x_trajectory += x_shift + y_trajectory = np.linspace(starting_point, starting_point+height, n_points) + return (x_trajectory, y_trajectory) + + +def get_workspace_trajectory(starting_point, height, width, n_vertical, n_horizontal): + vertical_step = height/(n_vertical-1) + horizontal_step = width/(n_horizontal-1) + current_point = starting_point + x_list = [] + y_list = [] + x_list.append(current_point[0]) + y_list.append(current_point[1]) + for i in range(n_horizontal): + for _ in range(n_vertical-1): + current_point[1] += vertical_step*((0.5-i % 2)*2) + x_list.append(current_point[0]) + y_list.append(current_point[1]) + current_point[0] += horizontal_step + x_list.append(current_point[0]) + y_list.append(current_point[1]) + + return (np.array(x_list[:-1:]), np.array(y_list[:-1:])) + + +def get_horizontal_trajectory(starting_point, width, x_shift, n_points=50): + y_trajectory = np.zeros(n_points) + y_trajectory = np.linspace(starting_point, starting_point, n_points) + x_trajectory = np.linspace(x_shift - width/2, x_shift + width/2, n_points) + return (x_trajectory, y_trajectory) + + +def add_auxilary_points_to_trajectory(trajectory: Tuple[np.array], initial_point=np.array([0, -0.4]), number_points=50): + first_point = np.array([trajectory[0][0], trajectory[1][0]]) + vector = first_point-initial_point + # length = np.linalg.norm(vector) + multipliers = np.linspace(0, 1, number_points+1, endpoint=False)[1:] + # multipliers = np.linspace(0,1,number_points,endpoint=False) + new_x = np.array([initial_point[0]+vector[0]*m for m in multipliers]) + new_y = np.array([initial_point[1]+vector[1]*m for m in multipliers]) + result_x = np.concatenate((new_x, trajectory[0])) + result_y = np.concatenate((new_y, trajectory[1])) + + return (result_x, result_y) diff --git a/jmoves/auto_robot_design/pinokla/differtial_inverse_kinematics.py b/jmoves/auto_robot_design/pinokla/differtial_inverse_kinematics.py new file mode 100644 index 00000000..e2071ab3 --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/differtial_inverse_kinematics.py @@ -0,0 +1,551 @@ +import pinocchio as pin +import numpy as np + +from auto_robot_design.pinokla.closed_loop_kinematics import * + + +def dampfing_least_square(J, damp_coeff = 1e-8): + U, S, Vh = np.linalg.svd(J) + + + e_diag = S / (S**2 + damp_coeff**2) + # E = S / (S**2 + l**2) + + # E = np.zeros((Vh.shape[0], U.shape[0])) + + # E[:Vh.shape[0],:Vh.shape[0]] = np.diag(e_diag) + + # pinvJg = np.dot(Vh.T[:, :E.size], E * U.T) + pinvJ = np.zeros((Vh.shape[0], U.shape[0])) + for i in range(e_diag.shape[0]): + pinvJ += e_diag[i] * np.dot(Vh[:,i][:,np.newaxis], U[:,i][np.newaxis,:]) + + return pinvJ + + +def DiffertialInverseKinematics(model,data,constraint_model,constraint_data,actuation_model,q0,ideff,veff, viz=None): + """ + vq,Jf_cloesd=inverseConstraintKinematicsSpeedOptimized(model,data,constraint_model,constraint_data,actuation_model,q0,ideff,veff) + + Compute the joint velocity `vq` that generates the speed `veff` on frame `ideff`. + Return also `Jf_closed`, the closed loop Jacobian on the frame `ideff`. + + Args: + model (pinocchio.Model): Pinocchio model. + data (pinocchio.Data): Pinocchio data associated with the model. + constraint_model (list): List of constraint models. + constraint_data (list): List of constraint data associated with the constraint models. + actuation_model (ActuationModelFreeFlyer): Actuation model. + q0 (np.array): Initial configuration. + ideff (int): Frame index for which the joint velocity is computed. + veff (np.array): Desired speed on frame `ideff`. + + Returns: + tuple: A tuple containing: + - vq (np.array): Joint velocity that generates the desired speed on frame `ideff`. + - Jf_closed (np.array): Closed loop Jacobian on frame `ideff`. + """ + #update of the jacobian an constraint model + pin.computeJointJacobians(model,data,q0) + LJ=[np.array(())]*len(constraint_model) + arrs_oMc1c2 = [] + arrs_c1Mc2 = [] + for (cm,cd,i) in zip(constraint_model,constraint_data,range(len(LJ))): + LJ[i]=pin.getConstraintJacobian(model,data,cm,cd) + arrs_oMc1c2.append([cd.oMc1, cd.oMc2]) + arrs_c1Mc2.append(cd.oMc2.translation - cd.oMc1.translation) + + #init of constant + Lidmot=actuation_model.idvmot + Lidfree=actuation_model.idvfree + nv=model.nv + nv_mot=len(Lidmot) + nv_free=len(Lidfree) + Lnc=[J.shape[0] for J in LJ] + nc=int(np.sum(Lnc)) + + + Jmot=np.zeros((nc,nv_mot)) + Jfree=np.zeros((nc,nv_free)) + + + + #separation between Jmot and Jfree + + nprec=0 + for J,n in zip(LJ,Lnc): + Smot=np.zeros((nv,nv_mot)) + Smot[Lidmot,range(nv_mot)]=1 + Sfree=np.zeros((nv,nv_free)) + Sfree[Lidfree,range(nv_free)]=1 + + + Jmot[nprec:nprec+n,:]=J@Smot + Jfree[nprec:nprec+n,:]=J@Sfree + + nprec=nprec+n + + # computation of dq/dqmot + + + pinvJfree=np.linalg.pinv(Jfree) + dq_dmot_no=np.concatenate((np.identity(nv_mot),-pinvJfree@Jmot)) + + + #re order dq/dqmot + dq_dmot=dq_dmot_no.copy() + dq_dmot[Lidmot]=dq_dmot_no[:nv_mot,:] + dq_dmot[Lidfree]=dq_dmot_no[nv_mot:,:] + + #computation of the closed-loop jacobian + Jf_closed = pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL)@dq_dmot + # Jf_closed = pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL_WORLD_ALIGNED)@dq_dmot + + # pin.forwardKinematics(model,data, q0) + # data.oMi[model.getFrameId(ideff)] + + #computation of the kinematics + vqmot=np.linalg.pinv(Jf_closed)@veff + vqfree=-pinvJfree@Jmot@vqmot + vqmotfree=np.concatenate((vqmot,vqfree)) # qmotfree=[qmot qfree] + + #reorder of vq + vq=np.zeros(nv) + vq[Lidmot]=vqmotfree[:nv_mot] + vq[Lidfree]=vqmotfree[nv_mot:] + + # if viz: + # for id, oMc1c2 in enumerate(arrs_oMc1c2): + + # ballIDc1 = "world/ball_c1_" + str(id) + # material = meshcat.geometry.MeshPhongMaterial() + # material.color = int(0xFF0000) + + # ballIDc2 = "world/ball_c2_" + str(id) + # material2 = meshcat.geometry.MeshPhongMaterial() + # material2.color = int(0x00FF00) + + # material.opacity = 0.5 + # viz.viewer[ballIDc1].set_object(meshcat.geometry.Sphere(0.002), material) + # viz.viewer[ballIDc1].set_transform(oMc1c2[0].np) + + # viz.viewer[ballIDc2].set_object(meshcat.geometry.Sphere(0.002), material2) + # viz.viewer[ballIDc2].set_transform(oMc1c2[1].np) + + # print(f"constrs: 1. {arrs_c1Mc2[0]}") #2. {arrs_c1Mc2[1]}") + + return(vq,Jf_closed) + +def PlaneDiffertialInverseKinematics(model,data,constraint_model,constraint_data,actuation_model,q0,ideff,veff): + """ + vq,Jf_cloesd=PlaneDiffertialInverseKinematics(model,data,constraint_model,constraint_data,actuation_model,q0,ideff,veff) + + Compute the joint velocity `vq` that generates the speed `veff` on frame `ideff`. + Return also `Jf_closed`, the closed loop Jacobian on the frame `ideff`. + + Args: + model (pinocchio.Model): Pinocchio model. + data (pinocchio.Data): Pinocchio data associated with the model. + constraint_model (list): List of constraint models. + constraint_data (list): List of constraint data associated with the constraint models. + actuation_model (ActuationModelFreeFlyer): Actuation model. + q0 (np.array): Initial configuration. + ideff (int): Frame index for which the joint velocity is computed. + veff (np.array): Desired speed on frame `ideff`. + + Returns: + tuple: A tuple containing: + - vq (np.array): Joint velocity that generates the desired speed on frame `ideff`. + - Jf_closed (np.array): Closed loop Jacobian on frame `ideff`. + """ + #update of the jacobian an constraint model + pin.computeJointJacobians(model,data,q0) + LJ=[np.array(())]*len(constraint_model) + arrs_oMc1c2 = [] + arrs_c1Mc2 = [] + for (cm,cd,i) in zip(constraint_model,constraint_data,range(len(LJ))): + LJ[i]=pin.getConstraintJacobian(model,data,cm,cd) + arrs_oMc1c2.append([cd.oMc1, cd.oMc2]) + arrs_c1Mc2.append(cd.oMc2.translation - cd.oMc1.translation) + + #init of constant + Lidmot=actuation_model.idvmot + Lidfree=actuation_model.idvfree + nv=model.nv + nv_mot=len(Lidmot) + nv_free=len(Lidfree) + Lnc=[J.shape[0] for J in LJ] + nc=int(np.sum(Lnc)) + + + Jmot=np.zeros((nc,nv_mot)) + Jfree=np.zeros((nc,nv_free)) + + + + #separation between Jmot and Jfree + + nprec=0 + for J,n in zip(LJ,Lnc): + Smot=np.zeros((nv,nv_mot)) + Smot[Lidmot,range(nv_mot)]=1 + Sfree=np.zeros((nv,nv_free)) + Sfree[Lidfree,range(nv_free)]=1 + + + Jmot[nprec:nprec+n,:]=J@Smot + Jfree[nprec:nprec+n,:]=J@Sfree + + nprec=nprec+n + + # computation of dq/dqmot + + + # pinvJfree=np.linalg.pinv(Jfree) + pinvJfree=dampfing_least_square(Jfree) + dq_dmot_no=np.concatenate((np.identity(nv_mot),-pinvJfree@Jmot)) + + + #re order dq/dqmot + dq_dmot=dq_dmot_no.copy() + dq_dmot[Lidmot]=dq_dmot_no[:nv_mot,:] + dq_dmot[Lidfree]=dq_dmot_no[nv_mot:,:] + + #computation of the closed-loop jacobian + # Jf_closed = pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL)@dq_dmot + # Jf_closed = pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL_WORLD_ALIGNED)@dq_dmot + Jf_closed = (pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL_WORLD_ALIGNED)@dq_dmot)[[0,2]] + + # pin.forwardKinematics(model,data, q0) + # data.oMi[model.getFrameId(ideff)] + + #computation of the kinematics + # vqmot=np.linalg.pinv(Jf_closed)@veff + # vqmot=dampfing_least_square(Jf_closed)@veff + vqmot=dampfing_least_square(Jf_closed)@veff[[0,2]] + vqfree=-pinvJfree@Jmot@vqmot + vqmotfree=np.concatenate((vqmot,vqfree)) # qmotfree=[qmot qfree] + + #reorder of vq + vq=np.zeros(nv) + vq[Lidmot]=vqmotfree[:nv_mot] + vq[Lidfree]=vqmotfree[nv_mot:] + + # if viz: + # for id, oMc1c2 in enumerate(arrs_oMc1c2): + + # ballIDc1 = "world/ball_c1_" + str(id) + # material = meshcat.geometry.MeshPhongMaterial() + # material.color = int(0xFF0000) + + # ballIDc2 = "world/ball_c2_" + str(id) + # material2 = meshcat.geometry.MeshPhongMaterial() + # material2.color = int(0x00FF00) + + # material.opacity = 0.5 + # viz.viewer[ballIDc1].set_object(meshcat.geometry.Sphere(0.002), material) + # viz.viewer[ballIDc1].set_transform(oMc1c2[0].np) + + # viz.viewer[ballIDc2].set_object(meshcat.geometry.Sphere(0.002), material2) + # viz.viewer[ballIDc2].set_transform(oMc1c2[1].np) + + # print(f"constrs: 1. {arrs_c1Mc2[0]}") #2. {arrs_c1Mc2[1]}") + + return(vq,Jf_closed) + + +def PlaneDiffertialInverseKinematicsMultitasking(model,data,constraint_model,constraint_data,actuation_model,q0,ideff,veff): + """ + vq,Jf_cloesd=PlaneDiffertialInverseKinematicsMultitasking(model,data,constraint_model,constraint_data,actuation_model,q0,ideff,veff) + + Compute the joint velocity `vq` that generates the speed `veff` on frame `ideff`. + Return also `Jf_closed`, the closed loop Jacobian on the frame `ideff`. + + Args: + model (pinocchio.Model): Pinocchio model. + data (pinocchio.Data): Pinocchio data associated with the model. + constraint_model (list): List of constraint models. + constraint_data (list): List of constraint data associated with the constraint models. + actuation_model (ActuationModelFreeFlyer): Actuation model. + q0 (np.array): Initial configuration. + ideff (int): Frame index for which the joint velocity is computed. + veff (np.array): Desired speed on frame `ideff`. + + Returns: + tuple: A tuple containing: + - vq (np.array): Joint velocity that generates the desired speed on frame `ideff`. + - Jf_closed (np.array): Closed loop Jacobian on frame `ideff`. + """ + #update of the jacobian an constraint model + # pin.computeJointJacobians(model,data,q0) + constraint_frame_name = [] + constraint_frame_id = [] + arrs_c1Mc2 = [] + arrs_oMc1c2 = [] + LJ=[np.array(()) for __ in range(len(constraint_model))] + for (cm,cd,i) in zip(constraint_model,constraint_data,range(len(LJ))): + LJ[i]=pin.getConstraintJacobian(model,data,cm,cd) + constraint_frame_name.append(cm.name.split("-")) + constraint_frame_id.append([model.getFrameId(n) for n in constraint_frame_name[-1]]) + # arrs_c1Mc2.append(cd.c1Mc2) + arrs_oMc1c2.append([cd.oMc1, cd.oMc2]) + + # err_cnstr = (pin.log6(cd.oMc2) - pin.log6(cd.oMc1)).np * 10 + # err_cnstr[4] = 0 + + # arrs_c1Mc2.append(cd.oMc1.action @ err_cnstr) + arrs_c1Mc2.append(cd.oMc2.translation - cd.oMc1.translation) + + + #init of constant + Lidmot=actuation_model.idvmot + Lidfree=actuation_model.idvfree + nv=model.nv + nv_mot=len(Lidmot) + nv_free=len(Lidfree) + Lnc=[J.shape[0] for J in LJ] + nc=int(np.sum(Lnc)) + + + Jmot=np.zeros((nc,nv_mot)) + Jfree=np.zeros((nc,nv_free)) + + + + #separation between Jmot and Jfree + + nprec=0 + for J,n in zip(LJ,Lnc): + Smot=np.zeros((nv,nv_mot)) + Smot[Lidmot,range(nv_mot)]=1 + Sfree=np.zeros((nv,nv_free)) + Sfree[Lidfree,range(nv_free)] = 1 + + + Jmot[nprec:nprec+n,:]=J@Smot + Jfree[nprec:nprec+n,:]=J@Sfree + + nprec=nprec+n + + # computation of dq/dqmot + + pinvJfree=np.linalg.pinv(Jfree) + dq_dmot_no=np.concatenate((np.identity(nv_mot),-pinvJfree@Jmot)) + + + #re order dq/dqmot + dq_dmot=dq_dmot_no.copy() + dq_dmot[Lidmot]=dq_dmot_no[:nv_mot,:] + dq_dmot[Lidfree]=dq_dmot_no[nv_mot:,:] + + #computation of the closed-loop jacobian + # Jf_closed = pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL)@dq_dmot + Jf_closed = (pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL_WORLD_ALIGNED)@dq_dmot)[[0,2],:] + Jee = pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL_WORLD_ALIGNED)[[0,2],:] + + + + Jc1 = (pin.computeFrameJacobian(model,data,q0,constraint_frame_id[0][0],pin.LOCAL))[[0,2],:] + Jc2 = (pin.computeFrameJacobian(model,data,q0,constraint_frame_id[1][0],pin.LOCAL))[[0,2],:] + # Jc1_closed = (pin.computeFrameJacobian(model,data,q0,constraint_frame_id[0][0],pin.LOCAL_WORLD_ALIGNED))[[0,2],:] + # Jc2_closed = (pin.computeFrameJacobian(model,data,q0,constraint_frame_id[1][0],pin.LOCAL_WORLD_ALIGNED))[[0,2],:] + # Jf_closed = (pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL)@dq_dmot)[[0,2],:] + # Jf_closed = (pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL_WORLD_ALIGNED)@dq_dmot)[[0,2],:] + + # pin.forwardKinematics(model,data, q0) + # data.oMi[model.getFrameId(ideff)] + + vqmot=np.linalg.pinv(Jf_closed)@veff[[0,2]] + Pee = np.round(np.eye(model.nv) - np.linalg.pinv(Jee) @ Jee, 6) + # if not np.all(np.isclose(Pee, 0)): + #computation of the kinematics + vqfree=-pinvJfree@Jmot@vqmot + vqmotfree=np.concatenate((vqmot,vqfree)) # qmotfree=[qmot qfree] + + #reorder of vq + vq=np.zeros(nv) + vq[Lidmot]=vqmotfree[:nv_mot] + vq[Lidfree]=vqmotfree[nv_mot:] + + # vq += np.linalg.pinv(Jc1 @ Pee) @ (- pin.log6(arrs_c1Mc2[0]).np[[0,2]]/1e-5 - Jc1 @ vq) + # vq += np.linalg.pinv(Jc1 @ Pee) @ (- arrs_c1Mc2[0][[0,2]]/1e-5 - Jc1 @ vq) + vq += np.linalg.pinv(Jc1 @ Pee) @ (- arrs_c1Mc2[0][[0,2]]*70 - Jc1 @ vq) + # vq += np.linalg.pinv(Jc1 @ Pee) @ (- pin.log6(arrs_c1Mc2[0].inverse()).np[[0,2]]/1e-5 - Jc1 @ vq) + + Pc2 = np.round(Pee - np.linalg.pinv(Jc1 @ Pee) @ Jc1 @ Pee, 6) + + # vq += np.linalg.pinv(Jc2 @ Pc2) @ (- arrs_c1Mc2[1][[0,2]]/1e-5 - Jc2 @ vq) + vq += np.linalg.pinv(Jc2 @ Pc2) @ (- arrs_c1Mc2[1][[0,2]]*70 - Jc2 @ vq) + # vq += np.linalg.pinv(Jc2 @ Pc2) @ (- pin.log6(arrs_c1Mc2[1]).np[[0,2]]/1e-5 - Jc2 @ vq) + + + joint_off_ids = list(map(lambda x: model.getJointId(x), filter(lambda x: not x.find("Main_connection"), model.names))) + + # vq[joint_off_ids] = np.zeros_like(joint_off_ids) + + # print(f"c1c2 1 {np.linalg.norm(arrs_c1Mc2[0].translation):.4f}; 2 {np.linalg.norm(arrs_c1Mc2[1].translation):.4f}") + # for id, oMc1c2 in enumerate(arrs_oMc1c2): + + # ballIDc1 = "world/ball_c1_" + str(id) + # material = meshcat.geometry.MeshPhongMaterial() + # material.color = int(0xFF0000) + + # ballIDc2 = "world/ball_c2_" + str(id) + # material2 = meshcat.geometry.MeshPhongMaterial() + # material2.color = int(0x00FF00) + + # material.opacity = 0.5 + # viz.viewer[ballIDc1].set_object(meshcat.geometry.Sphere(0.002), material) + # viz.viewer[ballIDc1].set_transform(oMc1c2[0].np) + + # viz.viewer[ballIDc2].set_object(meshcat.geometry.Sphere(0.002), material2) + # viz.viewer[ballIDc2].set_transform(oMc1c2[1].np) + + # print(f"constrs: 1. {arrs_c1Mc2[0]} 2. {arrs_c1Mc2[1]}") + return(vq,Jf_closed) + + +def PlaneDiffertialInverseKinematicsMultitaskingConstrained(model,data,constraint_model,constraint_data,actuation_model,q0,ideff,veff, viz): + """ + vq,Jf_cloesd=PlaneDiffertialInverseKinematicsMultitaskingConstrained(model,data,constraint_model,constraint_data,actuation_model,q0,ideff,veff) + + Compute the joint velocity `vq` that generates the speed `veff` on frame `ideff`. + Return also `Jf_closed`, the closed loop Jacobian on the frame `ideff`. + + Args: + model (pinocchio.Model): Pinocchio model. + data (pinocchio.Data): Pinocchio data associated with the model. + constraint_model (list): List of constraint models. + constraint_data (list): List of constraint data associated with the constraint models. + actuation_model (ActuationModelFreeFlyer): Actuation model. + q0 (np.array): Initial configuration. + ideff (int): Frame index for which the joint velocity is computed. + veff (np.array): Desired speed on frame `ideff`. + + Returns: + tuple: A tuple containing: + - vq (np.array): Joint velocity that generates the desired speed on frame `ideff`. + - Jf_closed (np.array): Closed loop Jacobian on frame `ideff`. + """ + #update of the jacobian an constraint model + # pin.computeJointJacobians(model,data,q0) + constraint_frame_name = [] + constraint_frame_id = [] + arrs_oMc1c2 = [] + arrs_c1Mc2 = [] + LJ=[np.array(()) for __ in range(len(constraint_model))] + for (cm,cd,i) in zip(constraint_model,constraint_data,range(len(LJ))): + LJ[i]=pin.getConstraintJacobian(model,data,cm,cd) + constraint_frame_name.append(cm.name.split("-")) + constraint_frame_id.append([model.getFrameId(n) for n in constraint_frame_name[-1]]) + arrs_oMc1c2.append([cd.oMc1, cd.oMc2]) + arrs_c1Mc2.append(cd.oMc1.translation - cd.oMc2.translation) + + #init of constant + Lidmot=actuation_model.idvmot + Lidfree=actuation_model.idvfree + nv=model.nv + nv_mot=len(Lidmot) + nv_free=len(Lidfree) + Lnc=[J.shape[0] for J in LJ] + nc=int(np.sum(Lnc)) + + + Jmot=np.zeros((nc,nv_mot)) + Jfree=np.zeros((nc,nv_free)) + + + + #separation between Jmot and Jfree + + nprec=0 + for J,n in zip(LJ,Lnc): + Smot=np.zeros((nv,nv_mot)) + Smot[Lidmot,range(nv_mot)]=1 + Sfree=np.zeros((nv,nv_free)) + Sfree[Lidfree,range(nv_free)] = 1 + + + Jmot[nprec:nprec+n,:]=J@Smot + Jfree[nprec:nprec+n,:]=J@Sfree + + nprec=nprec+n + + # computation of dq/dqmot + + pinvJfree=np.linalg.pinv(Jfree) + dq_dmot_no=np.concatenate((np.identity(nv_mot),-pinvJfree@Jmot)) + + + #re order dq/dqmot + dq_dmot=dq_dmot_no.copy() + dq_dmot[Lidmot]=dq_dmot_no[:nv_mot,:] + dq_dmot[Lidfree]=dq_dmot_no[nv_mot:,:] + + #computation of the closed-loop jacobian + Jf_closed = (pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL_WORLD_ALIGNED)@dq_dmot)[[0,2],:] + # Jee = (pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL_WORLD_ALIGNED)@dq_dmot)[[0,2],:] + # Jc1 = (pin.computeFrameJacobian(model,data,q0,constraint_frame_id[0][0],pin.LOCAL_WORLD_ALIGNED)@dq_dmot)[[0,2],:] + # Jc2 = (pin.computeFrameJacobian(model,data,q0,constraint_frame_id[1][0],pin.LOCAL_WORLD_ALIGNED)@dq_dmot)[[0,2],:] + Jee = (pin.computeFrameJacobian(model,data,q0,ideff,pin.LOCAL_WORLD_ALIGNED))[[0,2],:] + Jc1 = (pin.computeFrameJacobian(model,data,q0,constraint_frame_id[0][1],pin.LOCAL_WORLD_ALIGNED))[[0,2],:] + # Jc2 = (pin.computeFrameJacobian(model,data,q0,constraint_frame_id[1][0],pin.LOCAL_WORLD_ALIGNED))[[0,2],:] + + Jg = np.vstack([Jee, Jc1])#, Jc2]) + + # pin.forwardKinematics(model,data, q0) + # data.oMi[model.getFrameId(ideff)] + + U, S, Vh = np.linalg.svd(Jg) + + l = 1e-8 + + e_diag = S / (S**2 + l**2) + # E = S / (S**2 + l**2) + + # E = np.zeros((Vh.shape[0], U.shape[0])) + + # E[:Vh.shape[0],:Vh.shape[0]] = np.diag(e_diag) + + # pinvJg = np.dot(Vh.T[:, :E.size], E * U.T) + pinvJg = np.zeros((Vh.shape[0], U.shape[0])) + for i in range(e_diag.shape[0]): + pinvJg += e_diag[i] * np.dot(Vh[:,i][:,np.newaxis], U[:,i][np.newaxis,:]) + + # vq = pinvJg @ np.hstack([veff[[0,2]], 10*pin.log6(arrs_c1Mc2[0].inverse()).np[[0,2]], 10*pin.log6(arrs_c1Mc2[1].inverse()).np[[0,2]]]) + # vqmot = pinvJg @ np.hstack([veff[[0,2]], arrs_c1Mc2[0][[0,2]], arrs_c1Mc2[1][[0,2]]]) + vq = pinvJg @ np.hstack([veff[[0,2]], arrs_c1Mc2[0][[0,2]]])#, arrs_c1Mc2[1][[0,2]]]) + + joint_off_ids = list(map(lambda x: model.getJointId(x), filter(lambda x: not x.find("Main_connection"), model.names))) + + # vq[joint_off_ids] = np.zeros_like(joint_off_ids) + + # vqfree=-pinvJfree@Jmot@vqmot + # vqmotfree=np.concatenate((vqmot,vqfree)) # qmotfree=[qmot qfree] + + # #reorder of vq + # vq=np.zeros(nv) + # vq[Lidmot]=vqmotfree[:nv_mot] + # vq[Lidfree]=vqmotfree[nv_mot:] + + # print(f"c1c2 1 {np.linalg.norm(arrs_c1Mc2[0].translation):.4f}; 2 {np.linalg.norm(arrs_c1Mc2[1].translation):.4f}") + # for id, oMc1c2 in enumerate(arrs_oMc1c2): + + # ballIDc1 = "world/ball_c1_" + str(id) + # material = meshcat.geometry.MeshPhongMaterial() + # material.color = int(0xFF0000) + + # ballIDc2 = "world/ball_c2_" + str(id) + # material2 = meshcat.geometry.MeshPhongMaterial() + # material2.color = int(0x00FF00) + + # material.opacity = 0.5 + # viz.viewer[ballIDc1].set_object(meshcat.geometry.Sphere(0.002), material) + # viz.viewer[ballIDc1].set_transform(oMc1c2[0].np) + + # viz.viewer[ballIDc2].set_object(meshcat.geometry.Sphere(0.002), material2) + # viz.viewer[ballIDc2].set_transform(oMc1c2[1].np) + + # # print(f"constrs: 1. {arrs_c1Mc2[0]} 2. {arrs_c1Mc2[1]}") + # print(f"constrs: 1. {arrs_c1Mc2[0]}") + return(vq,Jf_closed) \ No newline at end of file diff --git a/jmoves/auto_robot_design/pinokla/loader_tools.py b/jmoves/auto_robot_design/pinokla/loader_tools.py new file mode 100644 index 00000000..ca095aef --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/loader_tools.py @@ -0,0 +1,624 @@ +from copy import deepcopy +from dataclasses import dataclass, field +import unittest +from typing import Optional, Tuple, Union +import pinocchio as pin +import numpy as np +from pinocchio.robot_wrapper import RobotWrapper +import networkx as nx +import re +import yaml +from yaml.loader import SafeLoader +from warnings import warn + + +from auto_robot_design.pinokla.actuation_model import ActuationModel +import pinocchio as pin + + +# Robot = namedtuple( +# "Robot", +# [ +# "model", +# "constraint_models", +# "actuation_model", +# "visual_model", +# "constraint_data", +# "data", +# ], +# ) + +class MotionSpace: + wrap = {"x": 0, "y": 1, "z": 2, "ang_x": 3, "ang_y": 4, "ang_z": 5} + + def __init__(self, *cartesian_terms): + self.terms = cartesian_terms + + @property + def mask(self): + idx = self.indexes + out = np.zeros(len(self.wrap)) + out[idx,] = np.ones_like(idx) + + return out + + @property + def indexes(self): + return tuple(self.wrap[t] for t in self.terms) + + def get_6d_traj(self, traj: np.ndarray): + + traj_shape = np.shape(traj) + + if traj_shape[1] != len(self.terms): + raise Exception("Wrong size of trajactory") + + out = np.zeros((traj_shape[0], len(self.wrap))) + + out[:, self.indexes] = traj + + return out + + def get_6d_point(self, point: np.ndarray): + + out = np.zeros(len(self.wrap)) + out[self.indexes,] = point + + return out + + def rewind_6d_point(self, point_6d: np.ndarray): + return point_6d[self.indexes,] + + def rewind_6d_traj(self, traj_6d: np.ndarray): + return traj_6d[:, self.indexes] + +@dataclass +class Robot: + model: pin.Model + constraint_models: list = field(default_factory=list) + actuation_model: ActuationModel = field(default_factory=ActuationModel) + visual_model: pin.GeometryModel = field(default_factory=pin.GeometryModel) + constraint_data: list = field(default_factory=list) + data: pin.Data = field(default_factory=pin.Data) + ee_name: str = "EE" + motion_space: MotionSpace = MotionSpace("x", "z") + + + +def make_Robot_copy(robo: Robot): + # Make real copy + copied_constrains = [] + for con in robo.constraint_models: + copied_con = pin.RigidConstraintModel(con) + copied_constrains.append(copied_con) + pass + + copied_con_dates = [] + for con in copied_constrains: + copied_con_data = con.createData() + copied_con_dates.append(copied_con_data) + pass + + copied_model = pin.Model(robo.model) + copied_data = copied_model.createData() + copied_actuator_model = deepcopy(robo.actuation_model) + copied_visual_model = pin.GeometryModel(robo.visual_model) + return copied_model, copied_constrains, copied_actuator_model, copied_visual_model, copied_con_dates, copied_data + +def nameFrameConstraint(model, nomferme="fermeture", Lid=[]): + """ + nameFrameConstraint(model, nomferme="fermeture", Lid=[]) + + Takes a robot model and returns a list of frame names that are constrained to be in contact: Ln=[['name_frame1_A','name_frame1_B'],['name_frame2_A','name_frame2_B'].....] + where names_frameX_A and names_frameX_B are the frames in forced contact by the kinematic loop. + The frames must be named: "...nomfermeX_..." where X is the number of the corresponding kinematic loop. + The kinematics loop can be selectionned with Lid=[id_kinematcsloop1, id_kinematicsloop2 .....] = [1,2,...] + if Lid = [] all the kinematics loop will be treated. + + Argument: + model - Pinocchio robot model + nom_ferme - nom de la fermeture + Lid - List of kinematic loop indexes to select + Return: + Lnames - List of frame names that should be in contact + """ + warn( + "Function nameFrameConstraint depreceated - prefer using a YAML file as complement to the URDF. Should only be used to generate a YAML file" + ) + if Lid == []: + Lid = range(len(model.frames) // 2) + Lnames = [] + for id in Lid: + pair_names = [] + for f in model.frames: + name = f.name + match = re.search(nomferme + str(id), name) + match2 = re.search("frame", f.name) + if match and not (match2): + pair_names.append(name) + if len(pair_names) == 2: + Lnames.append(pair_names) + return Lnames + + +def generateYAML( + path, name_mot="mot", name_spherical="to_rotule", nomferme="fermeture", file=None +): + """ + if robot.urdf inside the path, write a yaml file associate to the the robot. + Write the name of the frame constrained, the type of the constraint, the presence of rotule articulation, + the name of the motor, idq and idv (with the sphrical joint). + """ + + rob = RobotWrapper.BuildFromURDF(path + "/robot.urdf", path) + Ljoint = [] + Ltype = [] + Lmot = [] + for name in rob.model.names: + match = re.search(name_spherical, name) + match_mot = re.search(name_mot, name) + if match: + Ljoint.append(name) + Ltype.append("SPHERICAL") + if match_mot: + Lmot.append(name) + + name_frame_constraint = nameFrameConstraint(rob.model, nomferme) + # Constraint is default to 6D... that is not very general... + constraint_type = ["6d"] * len(name_frame_constraint) + + if file is None: + with open(path + "/robot.yaml", "w") as f: + f.write("closed_loop: " + str(name_frame_constraint) + "\n") + f.write("type: " + str(constraint_type) + "\n") + f.write("name_mot: " + str(Lmot) + "\n") + f.write("joint_name: " + str(Ljoint) + "\n") + f.write("joint_type: " + str(Ltype) + "\n") + else: + file.write("closed_loop: " + str(name_frame_constraint) + "\n") + file.write("type: " + str(constraint_type) + "\n") + file.write("name_mot: " + str(Lmot) + "\n") + file.write("joint_name: " + str(Ljoint) + "\n") + file.write("joint_type: " + str(Ltype) + "\n") + + +def getYAMLcontents(path, name_yaml="robot.yaml"): + with open(path + "/" + name_yaml, "r") as yaml_file: + contents = yaml.load(yaml_file, Loader=SafeLoader) + return contents + + +def completeRobotLoader( + path, name_urdf="robot.urdf", name_yaml="robot.yaml", fixed=True +): + """ + Return model and constraint model associated to a directory, where the name od the urdf is robot.urdf and the name of the yam is robot.yaml + if no type assiciated, 6D type is applied + """ + # Load the robot model using the pinocchio URDF parser + if fixed: + robot = RobotWrapper.BuildFromURDF(path + "/" + name_urdf, path) + else: + robot = RobotWrapper.BuildFromURDF( + path + "/robot.urdf", path, root_joint=pin.JointModelFreeFlyer() + ) + robot.model.names[1] = "root_joint" + + model = robot.model + + yaml_content = getYAMLcontents(path, name_yaml) + + # try to update model + update_joint = yaml_content["joint_name"] + joints_types = yaml_content["joint_type"] + LjointFixed = [] + new_model = pin.Model() + visual_model = robot.visual_model + for place, iner, name, parent, joint in list( + zip( + model.jointPlacements, + model.inertias, + model.names, + model.parents, + model.joints, + ) + )[1:]: + if name in update_joint: + joint_type = joints_types[update_joint.index(name)] + if joint_type == "SPHERICAL": + jm = pin.JointModelSpherical() + if joint_type == "FIXED": + jm = joint + LjointFixed.append(joint.id) + else: + jm = joint + jid = new_model.addJoint(parent, jm, place, name) + new_model.appendBodyToJoint(jid, iner, pin.SE3.Identity()) + + for f in model.frames: + n, parent, placement = f.name, f.parentJoint, f.placement + frame = pin.Frame(n, parent, placement, f.type) + new_model.addFrame(frame, False) + + new_model.frames.__delitem__(0) + new_model, visual_model = pin.buildReducedModel( + new_model, visual_model, LjointFixed, pin.neutral(new_model) + ) + + model = new_model + + # check if type is associated,else 6D is used + try: + name_frame_constraint = yaml_content["closed_loop"] + constraint_type = yaml_content["type"] + + # construction of constraint model + Lconstraintmodel = [] + for L, ctype in zip(name_frame_constraint, constraint_type): + name1, name2 = L + id1 = model.getFrameId(name1) + id2 = model.getFrameId(name2) + Se3joint1 = model.frames[id1].placement + Se3joint2 = model.frames[id2].placement + parentjoint1 = model.frames[id1].parentJoint + parentjoint2 = model.frames[id2].parentJoint + if ctype == "3D" or ctype == "3d": + constraint = pin.RigidConstraintModel( + pin.ContactType.CONTACT_3D, + model, + parentjoint1, + Se3joint1, + parentjoint2, + Se3joint2, + pin.ReferenceFrame.LOCAL, + ) + constraint.name = name1 + "C" + name2 + else: + constraint = pin.RigidConstraintModel( + pin.ContactType.CONTACT_6D, + model, + parentjoint1, + Se3joint1, + parentjoint2, + Se3joint2, + pin.ReferenceFrame.LOCAL, + ) + constraint.name = name1 + "C" + name2 + Lconstraintmodel.append(constraint) + + constraint_models = Lconstraintmodel + except: + print("no constraint") + if fixed: + actuation_model = ActuationModel(model, yaml_content["name_mot"]) + else: + Lmot = yaml_content["name_mot"] + Lmot.append("root_joint") + actuation_model = ActuationModel(model, Lmot) + + return (model, constraint_models, actuation_model, visual_model) + + +def completeRobotLoaderFromStr( + udf_str: str, joint_description: dict, loop_description: dict, fixed=True, root_joint_type=pin.JointModelFreeFlyer(), is_act_root_joint=True +): + """Build pinocchio model from urdf string, actuator(joint) descriptor and loop description. + You have 2 options: + 1) You can create a model whose base will be rigidly attached to the world. + For this set fixed = True. Args root_joint_type and is_act_root_joint not working for this option. + 2) You can create a model whose base will be attached to the world by different type of joint. + If you set is_act_root_joint = True, root_joint is actuated. Generalized coordinates associated with + root_joint locate first in q vector. + Args: + udf_str (str): _description_ + joint_description (dict): _description_ + loop_description (dict): _description_ + fixed (bool, optional): _description_. Defaults to True. + root_joint_type (_type_, optional): _description_. Defaults to pin.JointModelFreeFlyer(). + is_act_root_joint (bool, optional): _description_. Defaults to True. + + Returns: + _type_: _description_ + """ + if fixed: + model = pin.buildModelFromXML(udf_str) + else: + model = pin.buildModelFromXML(udf_str, root_joint=root_joint_type) + model.names[1] = "root_joint" + + visual_model = pin.buildGeomFromUrdfString( + model, udf_str, pin.pinocchio_pywrap_default.GeometryType.VISUAL + ) + robot = RobotWrapper(model, visual_model=visual_model) + + model = robot.model + + # try to update model + update_joint = joint_description["joint_name"] + joints_types = joint_description["joint_type"] + LjointFixed = [] + new_model = pin.Model() + visual_model = robot.visual_model + for place, iner, name, parent, joint in list( + zip( + model.jointPlacements, + model.inertias, + model.names, + model.parents, + model.joints, + ) + )[1:]: + if name in update_joint: + joint_type = joints_types[update_joint.index(name)] + if joint_type == "SPHERICAL": + jm = pin.JointModelSpherical() + if joint_type == "FIXED": + jm = joint + LjointFixed.append(joint.id) + else: + jm = joint + jid = new_model.addJoint(parent, jm, place, name) + new_model.appendBodyToJoint(jid, iner, pin.SE3.Identity()) + + for f in model.frames: + n, parent, placement = f.name, f.parentJoint, f.placement + frame = pin.Frame(n, parent, placement, f.type) + new_model.addFrame(frame, False) + + new_model.frames.__delitem__(0) + new_model, visual_model = pin.buildReducedModel( + new_model, visual_model, LjointFixed, pin.neutral(new_model) + ) + + model = new_model + + # check if type is associated,else 6D is used + try: + name_frame_constraint = loop_description["closed_loop"] + constraint_type = loop_description["type"] + + # construction of constraint model + Lconstraintmodel = [] + for L, ctype in zip(name_frame_constraint, constraint_type): + name1, name2 = L + id1 = model.getFrameId(name1) + id2 = model.getFrameId(name2) + Se3joint1 = model.frames[id1].placement + Se3joint2 = model.frames[id2].placement + parentjoint1 = model.frames[id1].parentJoint + parentjoint2 = model.frames[id2].parentJoint + if ctype == "3D" or ctype == "3d": + constraint = pin.RigidConstraintModel( + pin.ContactType.CONTACT_3D, + model, + parentjoint1, + Se3joint1, + parentjoint2, + Se3joint2, + pin.ReferenceFrame.LOCAL, + ) + constraint.name = name1 + "-" + name2 + else: + constraint = pin.RigidConstraintModel( + pin.ContactType.CONTACT_6D, + model, + parentjoint1, + Se3joint1, + parentjoint2, + Se3joint2, + pin.ReferenceFrame.LOCAL, + ) + constraint.name = name1 + "-" + name2 + Lconstraintmodel.append(constraint) + + constraint_models = Lconstraintmodel + except: + print("no constraint") + if fixed: + actuation_model = ActuationModel(model, joint_description["name_mot"]) + else: + Lmot = joint_description["name_mot"] + if is_act_root_joint: + Lmot.append("root_joint") + actuation_model = ActuationModel(model, Lmot) + + return (model, constraint_models, actuation_model, visual_model) + + +def build_model_with_extensions( + urdf_str: str, + joint_description: dict, + loop_description: dict, + actuator_context: Union[None, tuple, dict, nx.Graph] = None, + fixed=True, + root_joint_type = pin.JointModelFreeFlyer(), + is_act_root_joint = True, + +): + """ + Builds a robot model with extensions based on the provided URDF string, joint + description, loop description,actuator context, and fixed flag. If the actuator_context + is not None, an armature is set for each active connection based on the actuator rotor + inertia and reduction ratio. + + Args: + urdf_str (str): The URDF string representing the robot model. + joint_description (dict): A dictionary describing the active joints of the robot. + loop_description (dict): A dictionary describing the kinematics loops of the robot. + actuator_context (Union[None, tuple, dict, nx.Graph], optional): Field, which have information about what actuator is used for each joint. Defaults to None. + fixed (bool, optional): A flag indicating whether the base robot is fixed. Defaults to True. + is_act_root_joint (bool): See docs for completeRobotLoaderFromStr + + Returns: + Robot: The built robot model with extensions. + """ + + model, constraint_models, actuation_model, visual_model = ( + completeRobotLoaderFromStr(urdf_str, joint_description, loop_description, fixed, root_joint_type, is_act_root_joint) + ) + constraint_data = [c.createData() for c in constraint_models] + data = model.createData() + if actuator_context is not None: + # Perform additional operations based on the actuator context + if isinstance(actuator_context, dict): + + actuator_context = tuple(filter(lambda x: x[0] != "default", actuator_context.items())) + elif isinstance(actuator_context, nx.Graph): + active_joints = actuator_context.active_joints + actuator_context = [] + for act_j in active_joints: + actuator_context.append((act_j.jp.name, act_j.actuator)) + + for joint, actuator in actuator_context: + # It works if motname and idvmot in actuation_model are in the same order + place_mot = actuation_model.motname2id_v[joint] + model.armature[place_mot] = ( + actuator.inertia * actuator.reduction_ratio**-2 + ) + + return Robot( + model, constraint_models, actuation_model, visual_model, constraint_data, data + ) + + +nle = pin.nonLinearEffects + + +def buildModelsFromUrdf( + filename, + package_dirs=None, + root_joint=None, + verbose=False, + meshLoader=None, + geometry_types=[pin.GeometryType.COLLISION, pin.GeometryType.VISUAL], +) -> Tuple[pin.Model, pin.GeometryModel, pin.GeometryModel]: + """Parse the URDF file given in input and return a Pinocchio Model followed by corresponding GeometryModels of types specified by geometry_types, in the same order as listed. + Examples of usage: + # load model, collision model, and visual model, in this order (default) + model, collision_model, visual_model = buildModelsFromUrdf(filename[, ...], geometry_types=[pin.GeometryType.COLLISION,pin.GeometryType.VISUAL]) + model, collision_model, visual_model = buildModelsFromUrdf(filename[, ...]) # same as above + + model, collision_model = buildModelsFromUrdf(filename[, ...], geometry_types=[pin.GeometryType.COLLISION]) # only load the model and the collision model + model, collision_model = buildModelsFromUrdf(filename[, ...], geometry_types=pin.GeometryType.COLLISION) # same as above + model, visual_model = buildModelsFromUrdf(filename[, ...], geometry_types=pin.GeometryType.VISUAL) # only load the model and the visual model + + model = buildModelsFromUrdf(filename[, ...], geometry_types=[]) # equivalent to buildModelFromUrdf(filename[, root_joint]) + """ + if geometry_types is None: + geometry_types = [pin.GeometryType.COLLISION, pin.GeometryType.VISUAL] + if root_joint is None: + model = pin.buildModelFromUrdf(filename) + else: + model = pin.buildModelFromUrdf(filename, root_joint) + + if verbose and not WITH_HPP_FCL and meshLoader is not None: + print( + "Info: MeshLoader is ignored. Pinocchio has not been compiled with HPP-FCL." + ) + if verbose and not WITH_HPP_FCL_BINDINGS and meshLoader is not None: + print( + "Info: MeshLoader is ignored. The HPP-FCL Python bindings have not been installed." + ) + if package_dirs is None: + package_dirs = [] + + lst = [model] + + if not hasattr(geometry_types, "__iter__"): + geometry_types = [geometry_types] + + for geometry_type in geometry_types: + if meshLoader is None or (not WITH_HPP_FCL and not WITH_HPP_FCL_BINDINGS): + geom_model = pin.buildGeomFromUrdf( + model, filename, geometry_type, package_dirs=package_dirs + ) + else: + geom_model = pin.buildGeomFromUrdf( + model, + filename, + geometry_type, + package_dirs=package_dirs, + mesh_loader=meshLoader, + ) + lst.append(geom_model) + + return tuple(lst) + + +########## TEST ZONE ########################## + + +class TestRobotLoader(unittest.TestCase): + def test_complete_loader(self): + import io + + robots_paths = [ + ["robot_simple_iso3D", "unittest_iso3D.txt"], + ["robot_simple_iso6D", "unittest_iso6D.txt"], + ] + + for rp in robots_paths: + path = "robots/" + rp[0] + m, cm, am, vm, collm = completeRobotLoader(path) + joints_info = [ + (j.id, j.shortname(), j.idx_q, j.idx_v) for j in m.joints[1:] + ] + frames_info = [ + (f.name, f.inertia, f.parentJoint, f.parentFrame, f.type) + for f in m.frames + ] + constraint_info = [ + ( + cmi.name, + cmi.joint1_id, + cmi.joint2_id, + cmi.joint1_placement, + cmi.joint2_placement, + cmi.type, + ) + for cmi in cm + ] + mot_info = [(am.idqfree, am.idqmot, am.idvfree, am.idvmot)] + + results = io.StringIO() + results.write( + "\n".join(f"{x[0]} {x[1]} {x[2]} {x[3]}" for x in joints_info) + ) + results.write( + "\n".join(f"{x[0]} {x[1]} {x[2]} {x[3]} {x[4]}" for x in frames_info) + ) + results.write( + "\n".join( + f"{x[0]} {x[1]} {x[2]} {x[3]} {x[4]} {x[5]}" + for x in constraint_info + ) + ) + results.write("\n".join(f"{x[0]} {x[1]} {x[2]} {x[3]}" for x in mot_info)) + results.seek(0) + + # Ground truth is defined from a known good result + with open("unittest/" + rp[1], "r") as truth: + assert truth.read() == results.read() + + def test_generate_yaml(self): + import io + + robots_paths = [ + ["robot_simple_iso3D", "unittest_iso3D_yaml.txt"], + ["robot_simple_iso6D", "unittest_iso6D_yaml.txt"], + ["robot_delta", "unittest_delta_yaml.txt"], + ] + + for rp in robots_paths: + path = "robots/" + rp[0] + results = io.StringIO() + generateYAML(path, file=results) + results.seek(0) + + # Ground truth is defined from a known good result + with open("unittest/" + rp[1], "r") as truth: + assert truth.read() == results.read() + + +if __name__ == "__main__": + unittest.main() diff --git a/jmoves/auto_robot_design/pinokla/robot_utils.py b/jmoves/auto_robot_design/pinokla/robot_utils.py new file mode 100644 index 00000000..f71650bd --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/robot_utils.py @@ -0,0 +1,372 @@ +from copy import deepcopy +import unittest +import numpy as np +import pinocchio as pin +from auto_robot_design.pinokla.actuation_model import ActuationModel +from typing import Tuple + +from auto_robot_design.pinokla.loader_tools import Robot, make_Robot_copy +# from pinocchio import casadi as caspin + + +def qfree(actuation_model, q): + """ + free_q = q2freeq(model, q, name_mot="mot") + Return the non-motor coordinate of q, i.e. the configuration of the non-actuated joints + + Arguments: + model - robot model from pinocchio + q - complete configuration vector + name_mot - string to be found in the motors joints names + Return: + Lid - List of motors configuration velocity ids + """ + Lidmot = actuation_model.idqfree + mask = np.zeros_like(q, bool) + mask[Lidmot] = True + return(q[mask]) + +def qmot(actuation_model, q): + """ + free_q = qmot(model, q, name_mot="mot") + Return the non-motor coordinate of q, i.e. the configuration of the non-actuated joints + + Arguments: + model - robot model from pinocchio + q - complete configuration vector + name_mot - string to be found in the motors joints names + Return: + Lid - List of motors configuration velocity ids + """ + Lidmot = actuation_model.idqmot + mask = np.zeros_like(q, bool) + mask[Lidmot] = True + return(q[mask]) + +def vmot(actuation_model, v): + """ + free_q = qmot(model, q, name_mot="mot") + Return the non-motor coordinate of q, i.e. the configuration of the non-actuated joints + + Arguments: + model - robot model from pinocchio + q - complete configuration vector + name_mot - string to be found in the motors joints names + Return: + Lid - List of motors configuration velocity ids + """ + Lidmot = actuation_model.idvmot + mask = np.zeros_like(v, bool) + mask[Lidmot] = True + return(v[mask]) + +def vfree(actuation_model, v): + """ + free_q = qmot(model, q, name_mot="mot") + Return the non-motor coordinate of q, i.e. the configuration of the non-actuated joints + + Arguments: + model - robot model from pinocchio + q - complete configuration vector + name_mot - string to be found in the motors joints names + Return: + Lid - List of motors configuration velocity ids + """ + Lidmot = actuation_model.idvfree + mask = np.zeros_like(v, bool) + mask[Lidmot] = True + return(v[mask]) + +def mergeq(model, actuation_model, q_mot, q_free, casadiVals=False): + """ + completeq = (qmot,qfree) + concatenate qmot qfree in respect with motor and free id + """ + if not casadiVals: + q=np.zeros(model.nq) + for q_i, idqmot in zip(q_mot, actuation_model.idqmot): + q[idqmot] = q_i + + for q_i,idqfree in zip(q_free, actuation_model.idqfree): + q[idqfree] = q_i + else: + import casadi + q = casadi.MX.zeros(model.nq) + for q_i, idqmot in enumerate(actuation_model.idqmot): + q[idqmot] = q_mot[q_i] + + for q_i, idqfree in enumerate(actuation_model.idqfree): + q[idqfree] = q_free[q_i] + return(q) + +def mergev(model, actuation_model, v_mot, v_free, casadiVals=False): + """ + completeq = (qmot,qfree) + concatenate qmot qfree in respect with motor and free id + """ + if not casadiVals: + v = np.zeros(model.nv) + for v_i, idvmot in zip(v_mot, actuation_model.idvmot): + v[idvmot] = v_i + + for v_i, idvfree in zip(v_free, actuation_model.idvfree): + v[idvfree] = v_i + else: + import casadi + v = casadi.MX.zeros(model.nv) + for v_i, idvmot in enumerate(actuation_model.idvmot): + v[idvmot] = v_mot[v_i] + + for v_i, idvfree in enumerate(actuation_model.idvfree): + v[idvfree] = v_free[v_i] + return(v) + +def freezeJoints(model, constraint_models, actuation_model, visual_model, collision_model, indexToLock, reference=None): + ''' + Reduce the model by freezing all joint whose name contain the key string. + robot: a robot wrapper where the result is stored (destructive mode) + indexToLock: indexes of the joints to lock + ''' + rmodel = model.copy() + rconstraint_model = constraint_models.copy() + if reference is None: + reference = pin.neutral(model) + print('Reducing the model') + reduced_model, (reduced_visual_model, reduced_collision_model) = \ + pin.buildReducedModel( + rmodel, [visual_model, collision_model], indexToLock, reference) + + if rconstraint_model is not None: + print('Reducing the constraint models') + toremove = [] + for cm in rconstraint_model: + print(cm.name) + n1 = model.names[cm.joint1_id] + n2 = model.names[cm.joint2_id] + + # The reference joints might have been frozen + # Then seek for the corresponding frame, that might be either a joint frame + # or a op frame. + idf1 = reduced_model.getFrameId(n1) + f1 = reduced_model.frames[idf1] + idf2 = reduced_model.getFrameId(n2) + f2 = reduced_model.frames[idf2] + + # Make the new reference joints the parent of the frame. + cm.joint1_id = f1.parentJoint + cm.joint2_id = f2.parentJoint + # In the best case, the joint still exist, then it corresponds to a joint frame. + if f1.type != pin.JOINT: + assert (f1.type == pin.FIXED_JOINT) + # If the joint has be freezed, the contact now should be referenced with respect + # to the new joint, which was a parent of the previous. + cm.joint1_placement = f1.placement*cm.joint1_placement + # ! We assume here that the parent of the fixed joint is not also fixed + # Same for the second joint + if f2.type != pin.JOINT: + assert (f2.type == pin.FIXED_JOINT) + cm.joint2_placement = f2.placement*cm.joint2_placement + + if cm.joint1_id == cm.joint2_id: + toremove.append(cm) + print(f'Remove constraint {n1}//{n2} (during freeze)') + + reduced_constraint_models = [ + cm for cm in rconstraint_model if cm not in toremove] + + if actuation_model is not None: + print('Reducing the actuation model') + list_names = [model.names[idMot] for idMot in actuation_model.idMotJoints] + reduced_actuation_model = ActuationModel(reduced_model,list_names) + if list(rconstraint_model)[0] == list(reduced_constraint_models)[0]: + print("AUE") + return(reduced_model, reduced_constraint_models, reduced_actuation_model, reduced_visual_model, reduced_collision_model) + +def freezeJointsWithoutVis(rmodel, rconstraint_model, actuation_model, indexToLock, reference=None): + ''' + Reduce the model by freezing all joint whose name contain the key string. + robot: a robot wrapper where the result is stored (destructive mode) + indexToLock: indexes of the joints to lock + ''' + + model = pin.Model(rmodel) + constraint_models = [ pin.RigidConstraintModel(x) for x in rconstraint_model] + if reference is None: + reference = pin.neutral(model) + #print('Reducing the model') + model.frames.__delitem__(0) + reduced_model = pin.buildReducedModel(model, indexToLock, reference) + + if constraint_models is not None: + #print('Reducing the constraint models') + toremove = [] + for cm in constraint_models: + #print(cm.name) + n1 = model.names[cm.joint1_id] + n2 = model.names[cm.joint2_id] + + # The reference joints might have been frozen + # Then seek for the corresponding frame, that might be either a joint frame + # or a op frame. + idf1 = reduced_model.getFrameId(n1) + f1 = reduced_model.frames[idf1] + idf2 = reduced_model.getFrameId(n2) + f2 = reduced_model.frames[idf2] + + # Make the new reference joints the parent of the frame. + cm.joint1_id = f1.parentJoint + cm.joint2_id = f2.parentJoint + # In the best case, the joint still exist, then it corresponds to a joint frame. + if f1.type != pin.JOINT: + assert (f1.type == pin.FIXED_JOINT) + # If the joint has be freezed, the contact now should be referenced with respect + # to the new joint, which was a parent of the previous. + cm.joint1_placement = f1.placement*cm.joint1_placement + # ! We assume here that the parent of the fixed joint is not also fixed + # Same for the second joint + if f2.type != pin.JOINT: + assert (f2.type == pin.FIXED_JOINT) + cm.joint2_placement = f2.placement*cm.joint2_placement + + if cm.joint1_id == cm.joint2_id: + toremove.append(cm) + print(f'Remove constraint {n1}//{n2} (during freeze)') + + reduced_constraint_models = constraint_models + + reduced_actuation_model = actuation_model + if actuation_model is not None: + print('Reducing the actuation model') + list_names = [model.names[idMot] for idMot in actuation_model.idMotJoints] + reduced_actuation_model = ActuationModel(reduced_model,list_names) + + return(reduced_model, reduced_constraint_models, reduced_actuation_model) + + + +########## TEST ZONE ########################## + +class TestRobotInfo(unittest.TestCase): + + def test_q_splitting(self): + robots_paths = [['robot_simple_iso3D'], + ['robot_simple_iso6D'], + ['robot_delta']] + + results = [[[1, 2],[0, 3, 4]], + [[1, 2],[0, 3, 4, 5, 6, 7, 8]], + [[5, 10],[0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13]]] + + for i, rp in enumerate(robots_paths): + path = "robots/"+rp[0] + m ,cm, am, vm, collm = completeRobotLoader(path) + q = np.linspace(0, m.nq-1, m.nq) + assert (qmot(am, q)==results[i][0]).all() + assert (qfree(am, q)==results[i][1]).all() + assert (mergeq(m, am, qmot(am, q), qfree(am, q)) == q).all() + + def test_v_splitting(self): + robots_paths = [['robot_simple_iso3D'], + ['robot_simple_iso6D'], + ['robot_delta']] + + results = [[[1, 2],[0, 3, 4]], + [[1, 2],[0, 3, 4, 5, 6, 7]], + [[5, 10],[0, 1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13]]] + + for i, rp in enumerate(robots_paths): + path = "robots/"+rp[0] + m ,cm, am, vm, collm = completeRobotLoader(path) + v = np.linspace(0, m.nv-1, m.nv) + + assert (vmot(am, v)==results[i][0]).all() + assert (vfree(am, v)==results[i][1]).all() + assert (mergev(m, am, vmot(am, v), vfree(am, v)) == v).all() + + def test_freeze_joints(self): + robot_path = "robots/robot_simple_iso3D" + m ,cm, am, vm, collm = completeRobotLoader(robot_path) + print("Trying to fix some joints") + id_tofix = [2] + rm ,rcm, ram, rvm, rcollm = freezeJoints(m, cm, am, vm, collm, id_tofix, None) + assert (len(ram.idqmot)==1 and len(ram.idqfree)==3) + assert (len(rcm)==1) + + + +nle = pin.nonLinearEffects + +def buildModelsFromUrdf(filename, package_dirs=None, root_joint=None, verbose=False, meshLoader=None, geometry_types=[pin.GeometryType.COLLISION,pin.GeometryType.VISUAL]) -> Tuple[pin.Model,pin.GeometryModel,pin.GeometryModel]: + """Parse the URDF file given in input and return a Pinocchio Model followed by corresponding GeometryModels of types specified by geometry_types, in the same order as listed. + Examples of usage: + # load model, collision model, and visual model, in this order (default) + model, collision_model, visual_model = buildModelsFromUrdf(filename[, ...], geometry_types=[pin.GeometryType.COLLISION,pin.GeometryType.VISUAL]) + model, collision_model, visual_model = buildModelsFromUrdf(filename[, ...]) # same as above + + model, collision_model = buildModelsFromUrdf(filename[, ...], geometry_types=[pin.GeometryType.COLLISION]) # only load the model and the collision model + model, collision_model = buildModelsFromUrdf(filename[, ...], geometry_types=pin.GeometryType.COLLISION) # same as above + model, visual_model = buildModelsFromUrdf(filename[, ...], geometry_types=pin.GeometryType.VISUAL) # only load the model and the visual model + + model = buildModelsFromUrdf(filename[, ...], geometry_types=[]) # equivalent to buildModelFromUrdf(filename[, root_joint]) + """ + if geometry_types is None: + geometry_types = [pin.GeometryType.COLLISION,pin.GeometryType.VISUAL] + if root_joint is None: + model = pin.buildModelFromUrdf(filename) + else: + model = pin.buildModelFromUrdf(filename, root_joint) + + if verbose and not WITH_HPP_FCL and meshLoader is not None: + print('Info: MeshLoader is ignored. Pinocchio has not been compiled with HPP-FCL.') + if verbose and not WITH_HPP_FCL_BINDINGS and meshLoader is not None: + print('Info: MeshLoader is ignored. The HPP-FCL Python bindings have not been installed.') + if package_dirs is None: + package_dirs = [] + + lst = [model] + + if not hasattr(geometry_types, '__iter__'): + geometry_types = [geometry_types] + + for geometry_type in geometry_types: + if meshLoader is None or (not WITH_HPP_FCL and not WITH_HPP_FCL_BINDINGS): + geom_model = pin.buildGeomFromUrdf(model, filename, geometry_type, package_dirs = package_dirs) + else: + geom_model = pin.buildGeomFromUrdf(model, filename, geometry_type, package_dirs = package_dirs, mesh_loader = meshLoader) + lst.append(geom_model) + + return tuple(lst) + +def add_3d_constrain_current_q(fixed_robo: Robot, end_effector_name, q): + copied_model, copied_con, copied_actuator_model, copied_visual_model, \ + copied_con_dates, copied_data = make_Robot_copy( + fixed_robo) + + ee_id = copied_model.getFrameId(end_effector_name) + target_SE3 = pin.SE3.Identity() + + pin.forwardKinematics(copied_model, copied_data, q) + pin.framesForwardKinematics(copied_model, copied_data, q) + place = copied_data.oMf[ee_id].translation + target_SE3.translation = np.array(place) + frame_constraint = copied_model.frames[ee_id] + parent_joint = frame_constraint.parentJoint + placement = frame_constraint.placement + + final_constraint = pin.RigidConstraintModel(pin.ContactType.CONTACT_3D, + copied_model, parent_joint, + placement, 0, target_SE3, + pin.ReferenceFrame.LOCAL) + + + constraint_data_EE = final_constraint.createData() + copied_con.append(final_constraint) + copied_con_dates.append(constraint_data_EE) + fixed_ee_robo = Robot(copied_model, copied_con, copied_actuator_model, + copied_visual_model, copied_con_dates, copied_data) + return fixed_ee_robo + +if __name__ == "__main__": + from loader_tools import completeRobotLoader + unittest.main() + diff --git a/jmoves/auto_robot_design/pinokla/squat.py b/jmoves/auto_robot_design/pinokla/squat.py new file mode 100644 index 00000000..c9b2a998 --- /dev/null +++ b/jmoves/auto_robot_design/pinokla/squat.py @@ -0,0 +1,456 @@ +from dataclasses import dataclass +from enum import IntFlag, auto +from typing import Callable +from auto_robot_design.pinokla.closed_loop_jacobian import ConstraintFrameJacobian +from auto_robot_design.pinokla.loader_tools import build_model_with_extensions +import pinocchio as pin +import numpy as np +import meshcat +from pinocchio.visualize import MeshcatVisualizer + +from auto_robot_design.pinokla.closed_loop_kinematics import closedLoopInverseKinematicsProximal, closedLoopProximalMount +import numpy as np + + +from auto_robot_design.pinokla.closed_loop_kinematics import closedLoopProximalMount +from auto_robot_design.pinokla.loader_tools import build_model_with_extensions +from auto_robot_design.pinokla.robot_utils import add_3d_constrain_current_q + + +def quartic_func_free_acc(q0, qf, T, qd0=0, qdf=0): + """ + Quartic scalar polynomial as a function. + Final acceleration is unconstrained, start acceleration is zero. + + :param q0: initial value + :type q0: float + :param qf: final value + :type qf: float + :param T: trajectory time + :type T: float + :param qd0: initial velocity, defaults to 0 + :type q0: float, optional + :param qdf: final velocity, defaults to 0 + :type q0: float, optional + :return: polynomial function :math:`f: t \mapsto (q(t), \dot{q}(t), \ddot{q}(t))` + :rtype: callable + + Returns a function which computes the specific quartic polynomial, and its + derivatives, as described by the parameters. + + + """ + + # solve for the polynomial coefficients using least squares + # fmt: off + X = [ + [0.0, 0.0, 0.0, 0.0, 1.0], + [T**4, T**3, T**2, T, 1.0], + [0.0, 0.0, 0.0, 1.0, 0.0], + [4.0 * T**3, 3.0 * T**2, 2.0 * T, 1.0, 0.0], + [0.0, 0.0, 2.0, 0.0, 0.0], + + ] + # fmt: on + coeffs, resid, rank, s = np.linalg.lstsq(X, + np.r_[q0, qf, qd0, qdf, 0], + rcond=None) + + # coefficients of derivatives + coeffs_d = coeffs[0:4] * np.arange(4, 0, -1) + coeffs_dd = coeffs_d[0:3] * np.arange(3, 0, -1) + + return lambda x: ( + np.polyval(coeffs, x), + np.polyval(coeffs_d, x), + np.polyval(coeffs_dd, x), + ) + + +def calculate_final_v(desired_hop_high: float): + g = 9.81 + return np.sqrt(desired_hop_high * 2 * g) + + +class HopDirection(IntFlag): + Z = auto() + Y = auto() + X = auto() + + +@dataclass +class SquatHopParameters: + """ + hop_flight_hight -- describes how far the robot flies after liftoff + total_time: float -- total time of simulation + squatting_down_hight -- coordinate of robot base in start + of squatting respect of base in nominal pose + squatting_up_hight -- coordinate of robot base in end + of squatting respect of base in nominal pose + hop_direction -- now implemented only z + end_effector_name + ground_link_name + + """ + hop_flight_hight: float = 0.2 + total_time: float = 0.7 + squatting_down_hight: float = -0.2 + squatting_up_hight: float = 0.2 + hop_direction: HopDirection = HopDirection.Z + end_effector_name: str = "EE" + ground_link_name: str = "G" + + +class SimulateSquatHop: + + def __init__(self, squat_hop_parameters: SquatHopParameters) -> None: + self.squat_hop_parameters = squat_hop_parameters + + def set_robot(self, + robo_urdf: str, + joint_description: dict, + loop_description: dict, + actuator_context=None): + """Initialized two types of model. + 1) simple model with fixed base + 2) model with 3d constrained end-effector plus base on prismatic joint + Different model needed for correct solve inverse kinematic. + Coordinates associated with base joint located in [0] position in q vector. + + Args: + robo_urdf (str): _description_ + joint_description (dict): _description_ + loop_description (dict): _description_ + actuator_context (_type_, optional): _description_. Defaults to None. + + Raises: + NotImplemented: Only z axis implemented + """ + self.fixed_base_robo = build_model_with_extensions( + robo_urdf, + joint_description=joint_description, + loop_description=loop_description, + actuator_context=None, + fixed=True) + + self.trans_base_robo = build_model_with_extensions( + robo_urdf, + joint_description=joint_description, + loop_description=loop_description, + actuator_context=None, + fixed=False, + root_joint_type=pin.JointModelTranslation(), + is_act_root_joint=False) + + q_nominal = self.calc_nominal_q() + qushka = np.concatenate([np.zeros(2), q_nominal]) + # qushka = q_nominal + self.trans_base_robo = add_3d_constrain_current_q( + self.trans_base_robo, self.squat_hop_parameters.end_effector_name, + qushka) + + if self.squat_hop_parameters.hop_direction == HopDirection.Z: + root_joint_type = pin.JointModelPZ() + else: + raise NotImplemented + + self.hop_robo = build_model_with_extensions( + robo_urdf, + joint_description=joint_description, + loop_description=loop_description, + actuator_context=actuator_context, + fixed=False, + root_joint_type=root_joint_type, + is_act_root_joint=False) + + q_nominal = self.calc_nominal_q() + self.hop_robo = add_3d_constrain_current_q( + self.hop_robo, self.squat_hop_parameters.end_effector_name, + q_nominal) + + self.robo_urdf = robo_urdf + self.joint_description = joint_description + self.loop_description = loop_description + self.actuator_context = actuator_context + + def calc_nominal_q(self): + """Calculate q vector for nominal pose. + Vector is applicable for self.hop_robo. + + Returns: + _type_: _description_ + """ + if len(self.fixed_base_robo.constraint_models) == 0: + # Condition for check open kinematics + q0 = np.array([np.deg2rad(0), np.deg2rad(0)]) + else: + q0 = closedLoopProximalMount(self.fixed_base_robo.model, + self.fixed_base_robo.data, + self.fixed_base_robo.constraint_models, + self.fixed_base_robo.constraint_data) + q0_plus_base_pos = self.add_base_pos(0, q0) + return q0_plus_base_pos + + def add_base_pos(self, q_base: float, q_leg: np.ndarray) -> np.ndarray: + """Extend a vector associated with leg by base_q. + + Args: + q_base (float): associated with base + q_leg (np.ndarray): associated with leg + + Returns: + np.ndarray: q vector + """ + return np.concatenate([np.array([q_base]), q_leg]) + + def calc_start_squat_q(self) -> np.ndarray: + """Calculate q is applicable for self.hop_robo. + Set robot in squat position. For solve inverse kinematic used + self.fixed_base_robo. + + Raises: + NotImplemented: _description_ + + Returns: + np.ndarray: q vector + """ + nominal_q_hop_robot = self.calc_nominal_q() + nominal_q = nominal_q_hop_robot[1:] + + pin.framesForwardKinematics(self.fixed_base_robo.model, + self.fixed_base_robo.data, nominal_q) + ee_name = self.squat_hop_parameters.end_effector_name + ee_id = self.fixed_base_robo.model.getFrameId(ee_name) + if self.squat_hop_parameters.hop_direction == HopDirection.Z: + id_in_vector = 2 + else: + raise NotImplemented + + default_hight = self.fixed_base_robo.data.oMf[ee_id].translation + default_hight[id_in_vector] = default_hight[id_in_vector] - \ + self.squat_hop_parameters.squatting_down_hight + + needed_q, min_feas, is_reach = closedLoopInverseKinematicsProximal( + self.fixed_base_robo.model, + self.fixed_base_robo.data, + self.fixed_base_robo.constraint_models, + self.fixed_base_robo.constraint_data, + default_hight, + ee_id, + onlytranslation=True, + ) + needed_q = self.add_base_pos( + self.squat_hop_parameters.squatting_down_hight, needed_q) + return needed_q, is_reach + + def setup_dynamic(self): + """Initializes the dynamics calculator, also set time_step. + """ + accuracy = 1e-8 + mu_sim = 1e-8 + max_it = 10000 + DT = 10e-4 + self.dynamic_settings = pin.ProximalSettings(accuracy, mu_sim, max_it) + self.time_step = DT + + def simulate(self, + robo_urdf: str, + joint_description: dict, + loop_description: dict, + control_coefficient: float = 0.8, + actuator_context=None, + is_vis=False): + """Simulate squat and hop process. Uses method + self.setup_dynamic + self.set_robot + Args: + robo_urdf (str): _description_ + joint_description (dict): _description_ + loop_description (dict): _description_ + actuator_context (_type_, optional): _description_. Defaults to None. + + Raises: + Exception: _description_ + Returns: + np.ndarray, np.ndarray, np.ndarray: position, velocity, acceleration + """ + self.setup_dynamic() + self.set_robot(robo_urdf, joint_description, loop_description, + actuator_context) + start_squat_q, is_reach = self.calc_start_squat_q() + if not is_reach: + raise Exception("Start squat position is not reached") + traj_fun = self.create_traj_equation() + + pin.computeGeneralizedGravity(self.hop_robo.model, self.hop_robo.data, + start_squat_q) + grav_force = self.hop_robo.data.g[0] + total_mass = pin.computeTotalMass(self.hop_robo.model) + simulate_steps = int(self.squat_hop_parameters.total_time / + self.time_step) + + pin.initConstraintDynamics(self.hop_robo.model, self.hop_robo.data, + self.hop_robo.constraint_models) + vq = np.zeros(self.hop_robo.model.nv) + q = start_squat_q + tau_q = np.zeros(self.hop_robo.model.nv) + + q_act = np.zeros((simulate_steps, self.hop_robo.model.nv)) + vq_act = np.zeros((simulate_steps, self.hop_robo.model.nv)) + acc_act = np.zeros((simulate_steps, self.hop_robo.model.nv)) + tau_act = np.zeros((simulate_steps, 2)) + + if is_vis: + viz = MeshcatVisualizer(self.hop_robo.model, + self.hop_robo.visual_model, + self.hop_robo.visual_model) + viz.viewer = meshcat.Visualizer().open() + viz.viewer["/Background"].set_property("visible", False) + viz.viewer["/Grid"].set_property("visible", False) + viz.viewer["/Axes"].set_property("visible", False) + viz.viewer["/Cameras/default/rotated/"].set_property("position", [0,0,0.5]) + viz.clean() + viz.loadViewerModel() + viz.display(q) + + for i in range(simulate_steps): + current_time = i * self.time_step + des_pos, des_vel, des_acc = traj_fun(current_time) + tau_q = self.get_torques( + des_acc, q, grav_force, total_mass, control_coefficient) + a = pin.constraintDynamics(self.hop_robo.model, self.hop_robo.data, + q, vq, tau_q, + self.hop_robo.constraint_models, + self.hop_robo.constraint_data, + self.dynamic_settings) + + vq += a * self.time_step + q = pin.integrate(self.hop_robo.model, q, vq * self.time_step) + # First coordinate is root_joint + q_act[i] = q + vq_act[i] = vq + acc_act[i] = a + tau_act[i] = self.generalized_q_to_act_torques(tau_q) + + if is_vis: + viz.display(q) + return q_act, vq_act, acc_act, tau_act + + def create_traj_equation(self) -> Callable: + """Returns function(t) -> (pos, vel, acc) + + Returns: + Callable: _description_ + """ + final_v = calculate_final_v(self.squat_hop_parameters.hop_flight_hight) + traj_fun = quartic_func_free_acc( + self.squat_hop_parameters.squatting_down_hight, + self.squat_hop_parameters.squatting_up_hight, + self.squat_hop_parameters.total_time, + qd0=0, + qdf=final_v) + return traj_fun + + def scalar_force_to_wrench(self, force: float): + """Converts scalar force to 6d vector. + + Args: + force (float): scalar + + Raises: + NotImplemented: Only z direction + + Returns: + _type_: _description_ + """ + if self.squat_hop_parameters.hop_direction == HopDirection.Z: + ret_val = np.array([0, 0, force, 0, 0, 0]) + else: + raise NotImplemented + return ret_val + + def act_torques_to_generalized_q(self, torques: np.ndarray) -> np.ndarray: + """Converts a actuator size vector + to a size vector equal to self.hop_robo. + + + Args: + torques (np.ndarray): _description_ + + Returns: + _type_: q vector self.hop_robo.model.nv + """ + id_mt1 = self.hop_robo.actuation_model.idqmot[0] + id_mt2 = self.hop_robo.actuation_model.idqmot[1] + tau = np.zeros(self.hop_robo.model.nv) + tau[id_mt1] = torques[0] + tau[id_mt2] = torques[1] + return tau + + def generalized_q_to_act_torques(self, + generalized_q: np.ndarray) -> np.ndarray: + """Converts a size vector equal to self.hop_robo.model.nv + to an actuator size vector. + + Args: + generalized_q (np.ndarray): Vector of generalized coordinates. + + Returns: + np.ndarray: Vector of torques corresponding to the actuators. + """ + id_mt1 = self.hop_robo.actuation_model.idqmot[0] + id_mt2 = self.hop_robo.actuation_model.idqmot[1] + torques = np.array([generalized_q[id_mt1], generalized_q[id_mt2]]) + return torques + + def get_torques(self, + desired_acceleration: float, + current_q: np.ndarray, + grav_force: float, + total_mass: float, + control_coefficient: float = 0.8) -> np.ndarray: + """Calculate actuator torques. With size self.hop_robo.model.nv. + + Args: + desired_acceleration (float): _description_ + current_q (np.ndarray): _description_ + grav_force (float): _description_ + total_mass (float): Total mass of robot (base + leg) + + Returns: + np.ndarray: _description_ + """ + ground_as_ee_id = self.hop_robo.model.getFrameId( + self.squat_hop_parameters.ground_link_name) + ee_id = self.trans_base_robo.model.getFrameId( + self.squat_hop_parameters.ground_link_name) + + qushka = np.concatenate( + [np.array([0, 0, current_q[0]]), current_q[1:]]) + + # qushka = current_q + pin.framesForwardKinematics(self.trans_base_robo.model, + self.trans_base_robo.data, qushka) + pin.forwardKinematics(self.trans_base_robo.model, + self.trans_base_robo.data, qushka) + pin.computeJointJacobians(self.trans_base_robo.model, + self.trans_base_robo.data, qushka) + J_closed2 = ConstraintFrameJacobian( + self.trans_base_robo.model, + self.trans_base_robo.data, + self.trans_base_robo.constraint_models, + self.trans_base_robo.constraint_data, + self.trans_base_robo.actuation_model, + qushka, + ee_id, + self.trans_base_robo.data.oMf[ground_as_ee_id].action + @ np.zeros(6), + ) + + desired_end_effector_force = control_coefficient * \ + grav_force + total_mass * desired_acceleration + desired_end_effector_wrench = self.scalar_force_to_wrench( + desired_end_effector_force) + desired_q_torques = J_closed2.T @ desired_end_effector_wrench + tau = self.act_torques_to_generalized_q(desired_q_torques) + return tau diff --git a/jmoves/auto_robot_design/simulation/evaluation.py b/jmoves/auto_robot_design/simulation/evaluation.py new file mode 100644 index 00000000..691fad08 --- /dev/null +++ b/jmoves/auto_robot_design/simulation/evaluation.py @@ -0,0 +1,123 @@ +from cProfile import label +import numpy as np +import matplotlib.pyplot as plt +from pyparsing import line + +def power_quality(time: np.ndarray, power: np.ndarray, plot=False): + """ + Evaluate the power quality of the robot + Args: + time (np.ndarray): time (s) + power (np.ndarray): power consumption (W) + plot (bool): power plot in power space and power over time + Returns: + float: power quality + """ + + PQ = np.zeros((power.shape[0], 1)) + + for i in range(power.shape[0]): + PQ[i] = np.sum(power[i])**2 - np.sum(power[i]**2) + + if plot: + plt.figure() + plt.subplot(2, 1, 1) + plt.plot(time, power[:, 0], label='P_1', linewidth=2) + plt.plot(time, power[:, 1], label='P_2') + plt.xlim([time[0], time[-1]]) + plt.xlabel('Time (s)') + plt.ylabel('Power (W)') + plt.legend() + plt.grid() + plt.subplot(2, 1, 2) + plt.plot(time, PQ) + plt.xlim([time[0], time[-1]]) + plt.xlabel('Time (s)') + plt.ylabel('Power Quality') + plt.grid() + plt.figure() + + plt.plot(power[:, 0], power[:, 1]) + plt.xlabel('P_1') + plt.ylabel('P_2') + plt.grid() + plt.axis('equal') + plt.show() + + return np.mean(PQ) + +def movments_in_xz_plane(time: np.ndarray, x: np.ndarray, des_x: np.ndarray, plot=False): + """ + Evaluate the movements in the xz plane + Args: + time (np.ndarray): time (s) + x (np.ndarray): posiotion from simulation + des_x (np.ndarray): desired position + plot (bool): plot the movements + Returns: + float: error tracking trajectory in the xz plane + """ + + error = np.zeros((x.shape[0], 1)) + + for i in range(x.shape[0]): + error[i] = np.linalg.norm((x[i] - des_x[i])) + + if plot: + plt.figure() + plt.subplot(3, 1, 1) + plt.plot(time, des_x[:, 0], label='des', linestyle='--', linewidth=3) + plt.plot(time, x[:, 0], label='real') + plt.xlim([time[0], time[-1]]) + plt.xlabel('Time (s)') + plt.ylabel('X (m)') + plt.grid() + plt.legend() + plt.subplot(3, 1, 2) + plt.plot(time, x[:, 2], label='des', linestyle='--', linewidth=3) + plt.plot(time, x[:, 2], label='real') + plt.xlim([time[0], time[-1]]) + plt.xlabel('Time (s)') + plt.ylabel('Z (m)') + plt.grid() + plt.legend() + plt.subplot(3, 1, 3) + plt.plot(time, error) + plt.xlim([time[0], time[-1]]) + plt.xlabel('Time (s)') + plt.ylabel('Error') + plt.grid() + plt.figure() + plt.plot(des_x[:, 0], des_x[:, 2], label='des', linestyle='--', linewidth=3) + plt.plot(x[:, 0], x[:, 2], label="real") + plt.xlabel('X (m)') + plt.ylabel('Z (m)') + plt.grid() + plt.legend() + plt.axis('equal') + plt.show() + + return np.mean(error) + +def torque_evaluation(time: np.ndarray, torque: np.ndarray, plot = False): + """ + Evaluate the torque + Args: + time (np.ndarray): time (s) + torque (np.ndarray): torque + plot (bool): plot the torque + Returns: + float: torque evaluation + """ + if plot: + plt.figure() + for i in range(torque.shape[1]): + plt.plot(time, torque[:, i], label='tau_' + str(i)) + plt.xlim([time[0], time[-1]]) + plt.xlabel('Time (s)') + plt.ylabel('Torque (Nm)') + plt.grid() + plt.legend() + plt.show() + + return np.max(np.abs(torque), axis=0) \ No newline at end of file diff --git a/jmoves/auto_robot_design/simulation/trajectory_movments.py b/jmoves/auto_robot_design/simulation/trajectory_movments.py new file mode 100644 index 00000000..7dbcda2e --- /dev/null +++ b/jmoves/auto_robot_design/simulation/trajectory_movments.py @@ -0,0 +1,341 @@ +from operator import le +from exceptiongroup import catch +from matplotlib import pyplot as plt +import numpy as np +import pinocchio as pin +from scipy import optimize + +import meshcat +from pinocchio.visualize import MeshcatVisualizer + +from auto_robot_design.control.model_based import OperationSpacePDControl +from auto_robot_design.control.trajectory_planning import trajectory_planning +from auto_robot_design.generator.topologies.bounds_preset import get_preset_by_index_with_bounds +from auto_robot_design.motion_planning.trajectory_ik_manager import IK_METHODS, TrajectoryIKManager +from auto_robot_design.pinokla.closed_loop_kinematics import closedLoopInverseKinematicsProximal, closedLoopProximalMount +from auto_robot_design.pinokla.default_traj import add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, create_simple_step_trajectory + +class TrajectoryMovements: + def __init__(self, trajectory, final_time, time_step, name_ee_frame) -> None: + """ + Initialization of the class for modeling the mechanism by the trajectory of end effector movement. + For trajectory movement class use PD control in operational space with coefficients Kp = (7000, 4200) and Kd = (74, 90). + + Method `simulate` simulates the movement of the mechanism along the trajectory and returns the + position, velocity, acceleration in configuration space, + torque, position of the end effector frame and power. + + For tune the control coefficients use `optimize_control` method. `optimize_control` method uses the scipy.optimize.shgo + method for optimization of the control coefficients. The optimization function is the sum of the squared error of the position of the end effector frame and the sum of the squared torque. + + Args: + trajectory (numpy.ndarray): The desired trajectory via points in x-z plane. + final_time (numpy.ndarray): The time of the final point in trajectory. + time_step (float): The time step for simulation. + name_ee_frame (str): The name of the end-effector frame. + + """ + + Kp = np.zeros((6,6)) + Kp[0,0] = 3000 + Kp[2,2] = 3000 + + Kd = np.zeros((6,6)) + Kd[0,0] = 90 + Kd[2,2] = 90 + + self.Kp = Kp + self.Kd = Kd + + self.name_ee_frame = name_ee_frame + self.traj = trajectory + self.time = final_time + self.time_step = time_step + + self.num_sim_steps = int(self.time / self.time_step) + + + def setup_dynamic(self): + """Initializes the dynamics calculator, also set time_step. + """ + accuracy = 1e-8 + mu_sim = 1e-8 + max_it = 10000 + self.dynamic_settings = pin.ProximalSettings(accuracy, mu_sim, max_it) + + def prepare_trajectory(self, robot): + """ + Prepare the trajectory for simulation. + + Args: + robot: The robot object. + + Returns: + time_arr: Array of time values. + des_traj_6d: Desired 6D trajectory. + des_d_traj_6d: Desired 6D trajectory derivative. + """ + des_trajectories = np.zeros((self.num_sim_steps, 2)) + des_trajectories[:,0] = np.linspace(self.traj[0,0], self.traj[-1,0], self.num_sim_steps) + # cs_z_by_x = np.polyfit(self.traj[:,0], self.traj[:,1], 3) + # des_trajectories[:,1] = np.polyval(cs_z_by_x, des_trajectories[:,0]) + + if self.traj[:,0].max() - self.traj[:,0].min() < 1e-3: + des_trajectories[:,1] = np.linspace(self.traj[0,1], self.traj[-1,1], self.num_sim_steps) + else: + cs_z_by_x = np.polyfit(self.traj[:,0], self.traj[:,1], 3) + des_trajectories[:,1] = np.polyval(cs_z_by_x, des_trajectories[:,0]) + time_arr = np.linspace(0, self.time, self.num_sim_steps) + + des_traj_6d = convert_x_y_to_6d_traj_xz(des_trajectories[:,0], des_trajectories[:,1]) + + des_d_traj_6d = np.diff(des_traj_6d, axis=0) / self.time_step + des_d_traj_6d = np.vstack((des_d_traj_6d, des_d_traj_6d[-1])) + + # q = np.zeros(robot.model.nq) + # Trajectory by points in joint space + + + # traj_points = convert_x_y_to_6d_traj_xz(self.traj[:,0], self.traj[:,1]) + # q_des_points = np.zeros((len(traj_points), robot.model.nq)) + + # frame_id = robot.model.getFrameId(self.name_ee_frame) + # for num, i_pos in enumerate(traj_points): + # q, min_feas, is_reach = closedLoopInverseKinematicsProximal( + # robot.model, + # robot.data, + # robot.constraint_models, + # robot.constraint_data, + # i_pos, + # frame_id, + # onlytranslation=True, + # q_start=q, + # ) + # if not is_reach: + # q = closedLoopProximalMount( + # robot.model, robot.data, robot.constraint_models, robot.constraint_data, q + # ) + # q_des_points[num] = q.copy() + + # q = q_des_points[0] + + # __, q_des_traj, dq_des_traj, ddq_des_traj = trajectory_planning( + # q_des_points.T, 0, 0, 0, self.times[-1], self.time_step, False + # ) + + # self.des_trajectories = { + # "time": time_arr, + # # "q_ref": q_des_traj, + # # "dq_ref": dq_des_traj, + # # "ddq_ref": ddq_des_traj, + # "traj_6d_ref": des_traj_6d, + # "d_traj_6d_ref": des_d_traj_6d, + # } + return time_arr, des_traj_6d, des_d_traj_6d + + def simulate(self, robot, q_start, is_vis=False): + """ + Simulates the trajectory movements of a robot. + + Args: + robot (RobotModel): The robot model. + is_vis (bool, optional): Whether to visualize the simulation. Defaults to False. + + Returns: + tuple: A tuple containing the following simulation data: + - q (numpy.ndarray): The joint positions at each simulation step. + - vq (numpy.ndarray): The joint velocities at each simulation step. + - acc (numpy.ndarray): The joint accelerations at each simulation step. + - tau_act (numpy.ndarray): The actuator torques at each simulation step. + - pos_ee_frame (numpy.ndarray): The end-effector frame positions at each simulation step. + - power (numpy.ndarray): The mechanical power actuators exerted at each simulation step. + """ + self.setup_dynamic() + frame_id = robot.model.getFrameId(self.name_ee_frame) + + __, des_traj_6d, des_d_traj_6d = self.prepare_trajectory(robot) + q = q_start + + control = OperationSpacePDControl(robot, self.Kp, self.Kd, frame_id) + + pin.initConstraintDynamics(robot.model, robot.data, robot.constraint_models) + + vq = np.zeros(robot.model.nv) + tau_q = np.zeros(robot.model.nv) + + q_act = np.zeros((self.num_sim_steps, robot.model.nq)) + vq_act = np.zeros((self.num_sim_steps, robot.model.nv)) + acc_act = np.zeros((self.num_sim_steps, robot.model.nv)) + tau_act = np.zeros((self.num_sim_steps, 2)) + + power = np.zeros((self.num_sim_steps, len(robot.actuation_model.idvmot))) + + pos_ee_frame = np.zeros((self.num_sim_steps, 3)) + + if is_vis: + viz = MeshcatVisualizer(robot.model, robot.visual_model, robot.visual_model) + viz.viewer = meshcat.Visualizer().open() + viz.viewer["/Background"].set_property("visible", False) + viz.viewer["/Grid"].set_property("visible", False) + viz.viewer["/Axes"].set_property("visible", False) + viz.viewer["/Cameras/default/rotated/"].set_property("position", [0,0,0.5]) + viz.clean() + viz.loadViewerModel() + viz.display(q) + + for i in range(self.num_sim_steps): + a = pin.constraintDynamics( + robot.model, + robot.data, + q, + vq, + tau_q, + robot.constraint_models, + robot.constraint_data, + self.dynamic_settings, + ) + + vq += a * self.time_step + + q = pin.integrate(robot.model, q, vq * self.time_step) + try: + tau_q = control.compute(q, vq, des_traj_6d[i], des_d_traj_6d[i]) + except np.linalg.LinAlgError: + return q_act, vq_act, acc_act, tau_act, pos_ee_frame, power + # First coordinate is root_joint + + tau_a = tau_q[control.ids_vmot] + vq_a = vq[control.ids_vmot] + q_act[i] = q + vq_act[i] = vq + acc_act[i] = a + tau_act[i] = tau_a + pos_ee_frame[i] = robot.data.oMf[frame_id].translation + power[i] = tau_a * vq_a + + if is_vis: + viz.display(q) + return q_act, vq_act, acc_act, tau_act, pos_ee_frame, power + + def optimize_control(self, robot): + """ + Optimize the control coefficients for the robot. The optimization function is the sum of the squared error of the position of the end effector frame and the sum of the squared torque. + The `scipy.optimize.shgo` method is used for optimization. + + Args: + robot: The robot object. + + Returns: + Kp: The optimized proportional gain matrix. + Kd: The optimized derivative gain matrix. + """ + def cost(x, robot): + old_Kp = self.Kp + old_Kd = self.Kd + + self.Kp = np.zeros((6,6)) + self.Kd = np.zeros((6,6)) + + self.Kp[0,0] = x[0] + self.Kp[2,2] = x[1] + self.Kd[0,0] = x[2] + self.Kd[2,2] = x[3] + + __, __, __, tau_act, pos_ee_frame, __ = self.simulate(robot,False) + + des_pos_ee_frame = self.des_trajectories["traj_6d_ref"][:,:3] + + pos_error = np.sum(np.linalg.norm(pos_ee_frame - des_pos_ee_frame, axis=1)**2) + + norm_tau = np.sum(np.linalg.norm(tau_act, axis=1)**2)/6e4 + + self.Kp = old_Kp + self.Kd = old_Kd + + return pos_error + norm_tau + + bounds = [[0, 1e4] for __ in range(2)] + bounds = np.vstack((bounds, [[0, 5e3] for __ in range(2)])) + + results = optimize.shgo(cost, bounds, args=(robot,), n=10, iters=1) + + Kp = np.zeros((6,6)) + Kd = np.zeros((6,6)) + + Kp[0,0] = results.x[0] + Kp[2,2] = results.x[1] + Kd[0,0] = results.x[2] + Kd[2,2] = results.x[3] + return Kp, Kd + + +def go_to_point(robot, point): + + to_start_from_init = add_auxilary_points_to_trajectory(np.array([point]).T) + traj_6d = convert_x_y_to_6d_traj_xz(to_start_from_init[0], to_start_from_init[1]) + + traj_manager = TrajectoryIKManager() + traj_manager.register_model(robot.model, robot.constraint_models) + traj_manager.set_solver(traj_manager.default_name) + pos, q_arrs, __, reach_array = traj_manager.follow_trajectory(traj_6d, np.zeros(robot.model.nq)) + + result_q = np.zeros(robot.model.nq) + if reach_array[-1]: + result_q = q_arrs[-1] + else: + raise Exception("Point is not reachable") + + return result_q + + +if __name__ == "__main__": + from auto_robot_design.generator.restricted_generator.two_link_generator import ( + TwoLinkGenerator, + ) + from auto_robot_design.description.builder import ( + ParametrizedBuilder, + URDFLinkCreator, + jps_graph2pinocchio_robot, +) + builder = ParametrizedBuilder(URDFLinkCreator) + + gm = get_preset_by_index_with_bounds(5) + x_centre = gm.generate_central_from_mutation_range() + graph_jp = gm.get_graph(x_centre) + + robo, __ = jps_graph2pinocchio_robot(graph_jp, builder) + + name_ee = "EE" + + + ground_symmetric_step1 = create_simple_step_trajectory( + starting_point=[-0.11, -0.32], step_height=0.07, step_width=0.22, n_points=4) + + start_q = go_to_point(robo, np.array(ground_symmetric_step1)[:,0]) + + + test = TrajectoryMovements(np.array(ground_symmetric_step1).T, 1, 0.01, name_ee) + pin.framesForwardKinematics(robo.model, robo.data, start_q) + + Kp = np.zeros((6,6)) + Kd = np.zeros((6,6)) + + Kp[0,0] = 3000 + Kd[0,0] = 100 + + Kp[2,2] = 3000 + Kd[2,2] = 100 + + test.Kp = Kp + test.Kd = Kd + + + # # q, vq, acc, tau, pos_ee, power + __, __, __, tau_arr, pos_ee, __ = test.simulate(robo, start_q, True) + + + des_traj = np.array(ground_symmetric_step1).T + plt.plot(pos_ee[:,0], pos_ee[:,2]) + plt.plot(des_traj[:,0], des_traj[:,1], ".") + + plt.show() \ No newline at end of file diff --git a/jmoves/auto_robot_design/user_interface/check_in_ellips.py b/jmoves/auto_robot_design/user_interface/check_in_ellips.py new file mode 100644 index 00000000..01a12505 --- /dev/null +++ b/jmoves/auto_robot_design/user_interface/check_in_ellips.py @@ -0,0 +1,171 @@ +from typing import Optional +import numpy as np +import scipy as sp +import matplotlib.pyplot as plt + + +def rotation_matrix(th): + return np.array([[np.cos(th), -np.sin(th)], [np.sin(th), np.cos(th)]]) + + +class Ellipse: + def __init__(self, p_center: np.ndarray, angle: float, axis: np.ndarray) -> None: + self.p_center: np.ndarray = p_center + self.angle: float = angle + self.axis: np.ndarray = axis + + def get_points(self, step=0.1): + E = np.linalg.inv(np.diag(self.axis) ** 2) + R = rotation_matrix(-self.angle) + En = R.T @ E @ R + t = np.arange(0, 2 * np.pi, step) + y = np.vstack([np.cos(t), np.sin(t)]) + x = sp.linalg.sqrtm(np.linalg.inv(En)) @ y + x[0, :] = x[0, :] + self.p_center[0] + x[1, :] = x[1, :] + self.p_center[1] + return x + + def fill_area_with_points(self, points, turns=10): + E = np.linalg.inv(np.diag(self.axis) ** 2) + R = rotation_matrix(-self.angle) + En = R.T @ E @ R + t = np.linspace(0, 2 * turns * np.pi, points) + y = np.vstack( + [ + np.cos(t) * np.exp(-t / (turns * np.pi)), + np.sin(t) * np.exp(-t / (turns * np.pi)), + ] + ) + x = sp.linalg.sqrtm(np.linalg.inv(En)) @ y + x[0, :] = x[0, :] + self.p_center[0] + x[1, :] = x[1, :] + self.p_center[1] + return x + + +class SnakePathFinder: + def __init__( + self, + start_point: np.ndarray, + ellipse: Ellipse, + max_len_btw_pts: Optional[float] = None, + coef_reg: Optional[float] = None, + ) -> None: + self.start_point = start_point + self.ellipse = ellipse + if max_len_btw_pts is None: + self.max_len = np.inf + else: + self.max_len = max_len_btw_pts + if coef_reg is None: + self.coef_ref = 1e-8 + else: + self.coef_ref = coef_reg + + def _nearest_neighbor(self, points, current, visited): + next_points = [] + filt_points = np.array( + list(filter(lambda x: tuple(x.tolist()) not in visited, points)) + ) + + if len(filt_points) > 0: + dist2center = np.linalg.norm(filt_points - self.ellipse.p_center, axis=1) + distance2current = ( + np.linalg.norm(current - filt_points, axis=1) + + self.coef_ref * 1 / dist2center + ) + pts_dist = np.hstack((filt_points, distance2current[:, np.newaxis])) + next_points = list(sorted(pts_dist, key=lambda x: x[-1])) + next_points = np.array(next_points)[:, :-1] + return next_points + + def do_intersect(p1, p2, p3, p4): + def ccw(A, B, C): + return (C[1] - A[0]) * (B[0] - A[0]) > (B[1] - A[1]) * (C[0] - A[0]) + + return ccw(p1, p3, p4) != ccw(p2, p3, p4) and ccw(p1, p2, p3) != ccw(p1, p2, p4) + + def _is_valid_move(self, current_point, next_point): + # check = True + # for i in range(len(trajectory) -1): + # if do_intersect(trajectory[i], trajectory[i+1], current_point, next_point): + # check = False + check = False + if np.linalg.norm(current_point - next_point) <= self.max_len: + check = True + return check + + def create_snake_traj(self, points): + + trajectory = [self.start_point] + visited = set([tuple(self.start_point.tolist())]) + + while len(visited) < len(points): + curr_p = trajectory[-1] + nx_pts = self._nearest_neighbor(points, curr_p, visited) + + # if len(nx_pts)>0 and is_valid_move(curr_p, nx_pts[0], trajectory): + # trajectory.append(nx_pts[0]) + # visited.add(tuple(nx_pts[0].tolist())) + # print(len(visited),"/", len(points)) + + if len(nx_pts) > 0: + for nx_p in nx_pts: + if self._is_valid_move(curr_p, nx_p): + trajectory.append(nx_p) + visited.add(tuple(nx_p.tolist())) + break + else: + break + return np.array(trajectory) + + +def check_points_in_ellips(points: np.ndarray, ellipse: Ellipse, tolerance=0.2): + # https://en.wikipedia.org/wiki/Ellipse + a = ellipse.axis[0] * (1 + tolerance) + b = ellipse.axis[1] * (1 + tolerance) + ang = ellipse.angle + x0 = ellipse.p_center[0] + y0 = ellipse.p_center[1] + + A = a**2 * np.sin(ang) ** 2 + b**2 * np.cos(ang) ** 2 + B = 2 * (b**2 - a**2) * np.sin(ang) * np.cos(ang) + C = a**2 * np.cos(ang) ** 2 + b**2 * np.sin(ang) ** 2 + D = -2 * A * x0 - B * y0 + E = -B * x0 - 2 * C * y0 + F = A * x0**2 + B * x0 * y0 + C * y0**2 - a**2 * b**2 + + ellps_impct_func = ( + lambda point: A * point[0] ** 2 + + C * point[1] ** 2 + + B * np.prod(point) + + D * point[0] + + E * point[1] + + F + ) + + if points.size == 2: + check = np.zeros(1, dtype="bool") + check[0] = True if ellps_impct_func(points) < 0 else False + else: + check = np.zeros(points.shape[0], dtype="bool") + for i in range(points.shape[0]): + check[i] = True if ellps_impct_func(points[i, :]) < 0 else False + return check + + +if __name__ == "__main__": + # def plot_ellipse(ellipse): + ellipse = Ellipse(np.array([-4, 2]), np.deg2rad(45), np.array([1, 2])) + point_ellipse = ellipse.get_points() + + points_x = np.linspace(-5, 5, 50) + points_y = np.linspace(-5, 5, 50) + xv, yv = np.meshgrid(points_x, points_y) + points = np.vstack([xv.flatten(), yv.flatten()]).T + mask = check_points_in_ellips(points, ellipse, 0.2) + rev_mask = np.array(1 - mask, dtype="bool") + plt.figure(figsize=(10, 10)) + plt.plot(point_ellipse[0, :], point_ellipse[1, :], "g", linewidth=3) + plt.scatter(points[rev_mask, :][:, 0], points[rev_mask, :][:, 1]) + plt.scatter(points[mask, :][:, 0], points[mask, :][:, 1]) + plt.show() diff --git a/jmoves/auto_robot_design/utils/append_saver.py b/jmoves/auto_robot_design/utils/append_saver.py new file mode 100644 index 00000000..17e79d01 --- /dev/null +++ b/jmoves/auto_robot_design/utils/append_saver.py @@ -0,0 +1,43 @@ +import os +import numpy as np + + +def chunk_list(lst, chunk_size): + """Yield successive chunks from lst.""" + for i in range(0, len(lst), chunk_size): + yield lst[i:i + chunk_size] + + +def save_result_append(filename, new_data): + """ + Save new data to a .npz file, appending it to existing data if the file already exists. + For each save, complete data is loaded. + Parameters: + filename (str): The name of the .npz file to save the data to. The filename must end with '.npz'. + new_data (dict): A dictionary where keys are the names of the arrays and values are the numpy arrays to be saved. + + Raises: + Exception: If the filename does not end with '.npz'. + + Example: + >>> new_data = {'array1': np.array([[1, 2, 3]]), 'array2': np.array([[4, 5, 6]])} + >>> save_result_append('data.npz', new_data) + + If 'data.npz' already exists and contains arrays with the same keys as in `new_data`, the new arrays are stacked + vertically with the existing arrays. If 'data.npz' does not exist, it is created with the new data. + + """ + filename_str = str(filename) + if not filename_str.endswith(".npz"): + raise Exception("Must end with .npz") + + if os.path.exists(filename): + # Load existing data + existing_data = np.load(filename) + # Append new data + combined_data = {key: np.row_stack( + (existing_data[key], new_data[key])) for key in new_data.keys()} + else: + combined_data = new_data + # Save combined data back to file + np.savez(filename, **combined_data) diff --git a/jmoves/auto_robot_design/utils/bruteforce.py b/jmoves/auto_robot_design/utils/bruteforce.py new file mode 100644 index 00000000..2d37e1c1 --- /dev/null +++ b/jmoves/auto_robot_design/utils/bruteforce.py @@ -0,0 +1,11 @@ +import numpy as np + + +def get_n_dim_linspace(upper_bounds, lower_bounds, point_num = 5): + ranges = np.array([lower_bounds, upper_bounds]).T + + linspaces = [np.linspace(start, stop, point_num) + for start, stop in ranges] + meshgrids = np.meshgrid(*linspaces) + vec = np.array([dim_i.flatten() for dim_i in meshgrids]).T + return vec \ No newline at end of file diff --git a/jmoves/auto_robot_design/utils/configs.py b/jmoves/auto_robot_design/utils/configs.py new file mode 100644 index 00000000..ff4ee5c1 --- /dev/null +++ b/jmoves/auto_robot_design/utils/configs.py @@ -0,0 +1,380 @@ +import numpy as np +from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, MIT_CHEETAH_PARAMS_DICT +from auto_robot_design.pinokla.default_traj import add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory, get_horizontal_trajectory +from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.pinokla.criterion_math import ImfProjections +from auto_robot_design.optimization.rewards.reward_base import PositioningReward, PositioningConstrain, PositioningErrorCalculator, RewardManager +from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability +from auto_robot_design.optimization.rewards.pure_jacobian_rewards import ManipulabilityReward, DexterityIndexReward, VelocityReward, ZRRReward, MinForceReward, MinManipulabilityReward +from auto_robot_design.optimization.rewards.inertia_rewards import MassReward, ActuatedMassReward, TrajectoryIMFReward +from auto_robot_design.description.mesh_builder.urdf_creater import ( + URDFMeshCreator, + MeshCreator, +) +from auto_robot_design.description.mesh_builder.mesh_builder import ( + MeshBuilder, + jps_graph2pinocchio_meshes_robot, +) +from auto_robot_design.description.mesh_builder.urdf_creater import( + create_mesh_manipulator_base +) +from auto_robot_design.description.actuators import TMotor_AK60_6 +import os +from pathlib import Path + + +def is_in_subdirectory(file_path, current_directory): + # Resolve both paths to ensure they are absolute and account for symlinks + file_path = Path(file_path).resolve() + current_directory = Path(current_directory).resolve() + + # Check if file_path is in a subdirectory of current_directory + return file_path.is_relative_to(current_directory) + +def get_mesh_builder(manipulation=False, thickness=None, density=None): + if thickness is None: + thickness = MIT_CHEETAH_PARAMS_DICT["thickness"] + actuator = MIT_CHEETAH_PARAMS_DICT["actuator"] + if density is None: + density = MIT_CHEETAH_PARAMS_DICT["density"] + body_density = MIT_CHEETAH_PARAMS_DICT["body_density"] + + if manipulation: + cwd = Path.cwd() + path = 'mesh/uhvat.stl' + if is_in_subdirectory(path, cwd): + uhvat_path = str(Path.joinpath(Path.cwd(), Path(path))) + else: + p = 0 + while not is_in_subdirectory(path, Path.cwd().parents[p]): + p+=1 + uhvat_path = str(Path.joinpath(Path.cwd().parents[p], Path(path))) + predefined_mesh = {"G": create_mesh_manipulator_base, "EE": uhvat_path} + + actuator = TMotor_AK60_6() + mesh_creator = MeshCreator(predefined_mesh) + urdf_creator = URDFMeshCreator() + mesh_creator.height_scaler = mesh_creator.MANIPULATOR_HEIGHT_SCALER + mesh_creator.radius_scaler = mesh_creator.MANIPULATOR_RADIUS_SCALER + builder = MeshBuilder(urdf_creator, + mesh_creator, + density={"default": density, "G": density}, + thickness={"default": thickness}, + actuator={"default": actuator}, + size_ground=np.array( + [0.1,0.1,0.1]), + ) + else: + cwd = Path.cwd() + path = Path('mesh/body.stl') + if is_in_subdirectory(path, cwd): + body_path = str(Path.joinpath(Path.cwd(), Path('mesh/body.stl'))) + whell_path = str(Path.joinpath(Path.cwd(), Path('mesh/wheel_small.stl'))) + else: + p = 0 + while not is_in_subdirectory(path, Path.cwd().parents[p]): + p+=1 + body_path = str(Path.joinpath(Path.cwd().parents[p], Path('mesh/body.stl'))) + whell_path = str(Path.joinpath(Path.cwd().parents[p], Path('mesh/wheel_small.stl'))) + + predefined_mesh = {"G": body_path, "EE": whell_path} + mesh_creator = MeshCreator(predefined_mesh) + urdf_creator = URDFMeshCreator() + builder = MeshBuilder( + urdf_creator, + mesh_creator, + density={"default": density, "G": body_density}, + thickness={"default": thickness, "EE": 0.003}, + actuator={"default": actuator}, + size_ground=np.array(MIT_CHEETAH_PARAMS_DICT["size_ground"]), + offset_ground=MIT_CHEETAH_PARAMS_DICT["offset_ground_rl"], + ) + return builder + + +def get_standard_builder(thickness=None, density=None): + if thickness is None: + thickness = MIT_CHEETAH_PARAMS_DICT["thickness"] + actuator = MIT_CHEETAH_PARAMS_DICT["actuator"] + if density is None: + density = MIT_CHEETAH_PARAMS_DICT["density"] + body_density = MIT_CHEETAH_PARAMS_DICT["body_density"] + builder = ParametrizedBuilder(DetailedURDFCreatorFixedEE, + density={"default": density, + "G": body_density}, + thickness={ + "default": thickness, "EE": 0.003}, + actuator={"default": actuator} + ) + return builder + + +def get_standard_trajectories(): + trajectory_dict = {} + workspace_trajectory = convert_x_y_to_6d_traj_xz( + *add_auxilary_points_to_trajectory(get_workspace_trajectory([-0.15, -0.35], 0.14, 0.3, 30, 60))) + trajectory_dict['workspace'] = workspace_trajectory + ground_symmetric_step1 = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(create_simple_step_trajectory( + starting_point=[-0.14, -0.34], step_height=0.12, step_width=0.28, n_points=200))) + trajectory_dict['step1'] = ground_symmetric_step1 + ground_symmetric_step2 = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(create_simple_step_trajectory( + starting_point=[-0.14 + 0.015, -0.34], step_height=0.10, step_width=-2*(-0.14 + 0.015), n_points=200))) + trajectory_dict['step2'] = ground_symmetric_step2 + ground_symmetric_step3 = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(create_simple_step_trajectory( + starting_point=[-0.14 + 0.025, -0.34], step_height=0.08, step_width=-2*(-0.14 + 0.025), n_points=200))) + trajectory_dict['step3'] = ground_symmetric_step3 + central_vertical = convert_x_y_to_6d_traj_xz( + *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0, 200))) + trajectory_dict['central_vertical'] = central_vertical + left_vertical = convert_x_y_to_6d_traj_xz( + *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, -0.12, 200))) + trajectory_dict['left_vertical'] = left_vertical + right_vertical = convert_x_y_to_6d_traj_xz( + *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.34, 0.12, 0.12, 200))) + trajectory_dict['right_vertical'] = right_vertical + return trajectory_dict + + +def get_standard_crag(open_loop=False): + # criteria that either calculated without any reference to points, or calculated through the aggregation of values from all points on trajectory + dict_trajectory_criteria = { + "MASS": NeutralPoseMass(), + "POS_ERR": TranslationErrorMSE() # MSE of deviation from the trajectory + } + # criteria calculated for each point on the trajectory + dict_point_criteria = { + # Impact mitigation factor along the axis + "IMF": ImfCompute(ImfProjections.Z), + "MANIP": ManipCompute(MovmentSurface.XZ), + "Effective_Inertia": EffectiveInertiaCompute(), + "Actuated_Mass": ActuatedMass(), + "Manip_Jacobian": ManipJacobian(MovmentSurface.XZ) + } + # special object that calculates the criteria for a robot and a trajectory + if open_loop: + crag = CriteriaAggregator( + dict_point_criteria, dict_trajectory_criteria, alg_name="Open_Loop") + else: + crag = CriteriaAggregator( + dict_point_criteria, dict_trajectory_criteria) + return crag + + +def get_standard_rewards(): + reward_dict = {} + # reward_dict['mass'] = MassReward(mass_key='MASS') + reward_dict['actuated_inertia_matrix'] = ActuatedMassReward( + mass_key='Actuated_Mass', reachability_key="is_reach") + reward_dict['z_imf'] = TrajectoryIMFReward( + imf_key='IMF', trajectory_key="traj_6d", reachability_key="is_reach") + reward_dict['trajectory_manipulability'] = VelocityReward( + manipulability_key='Manip_Jacobian', trajectory_key="traj_6d", reachability_key="is_reach") + reward_dict['manipulability'] = ManipulabilityReward(manipulability_key='MANIP', + trajectory_key="traj_6d", reachability_key="is_reach") + reward_dict['min_manipulability'] = MinManipulabilityReward(manipulability_key='Manip_Jacobian', + trajectory_key="traj_6d", reachability_key="is_reach") + reward_dict['min_force'] = MinForceReward(manipulability_key='Manip_Jacobian', + trajectory_key="traj_6d", reachability_key="is_reach") + reward_dict['trajectory_zrr'] = ZRRReward(manipulability_key='Manip_Jacobian', + trajectory_key="traj_6d", reachability_key="is_reach") + reward_dict['dexterity'] = DexterityIndexReward(manipulability_key='Manip_Jacobian', + trajectory_key="traj_6d", reachability_key="is_reach") + reward_dict['trajectory_acceleration'] = AccelerationCapability(manipulability_key='Manip_Jacobian', + trajectory_key="traj_6d", reachability_key="is_reach", actuated_mass_key="Actuated_Mass") + reward_dict['min_acceleration'] = MinAccelerationCapability( + manipulability_key='Manip_Jacobian', trajectory_key="traj_6d", reachability_key="is_reach", actuated_mass_key="Actuated_Mass") + reward_dict['mean_heavy_lifting'] = MeanHeavyLiftingReward( + manipulability_key='Manip_Jacobian', reachability_key="is_reach", mass_key="MASS") + reward_dict['min_heavy_lifting'] = HeavyLiftingReward( + manipulability_key='Manip_Jacobian', mass_key='MASS', reachability_key="is_reach") + return reward_dict + + +def inertial_config_two_link_six_trajectories(workspace_based=False, open_loop=False): + """Create objects for optimization of two link based robots + + Args: + workspace_based (bool, optional): If true use the workspace trajectory for the soft constraint. Defaults to False. + + Returns: + list: builder, crag, soft_constrain, reward_manager + """ + builder = get_standard_builder() + trajectories = get_standard_trajectories() + crag = get_standard_crag(open_loop) + workspace_trajectory = trajectories['workspace'] + ground_symmetric_step1 = trajectories['step1'] + ground_symmetric_step2 = trajectories['step2'] + ground_symmetric_step3 = trajectories['step3'] + central_vertical = trajectories['central_vertical'] + left_vertical = trajectories['left_vertical'] + right_vertical = trajectories['right_vertical'] + # set the rewards and weights for the optimization task + rewards = get_standard_rewards() + acceleration_capability = rewards['trajectory_acceleration'] + heavy_lifting = rewards['min_heavy_lifting'] + + # set up special classes for reward calculations + error_calculator = PositioningErrorCalculator( + jacobian_key="Manip_Jacobian") + if workspace_based: + soft_constrain = PositioningConstrain( + error_calculator=error_calculator, points=[workspace_trajectory]) + else: + soft_constrain = PositioningConstrain( + error_calculator=error_calculator, points=[ground_symmetric_step1, ground_symmetric_step2, ground_symmetric_step3, central_vertical, left_vertical, right_vertical]) + + # manager should be filled with trajectories and rewards using the manager API + reward_manager = RewardManager(crag=crag) + + reward_manager.add_trajectory(ground_symmetric_step1, 0) + reward_manager.add_trajectory(ground_symmetric_step2, 1) + reward_manager.add_trajectory(ground_symmetric_step3, 2) + + reward_manager.add_trajectory(central_vertical, 3) + reward_manager.add_trajectory(left_vertical, 4) + reward_manager.add_trajectory(right_vertical, 5) + + reward_manager.add_reward(acceleration_capability, 0, 1) + reward_manager.add_reward(acceleration_capability, 1, 1) + reward_manager.add_reward(acceleration_capability, 2, 1) + + reward_manager.add_reward(heavy_lifting, 3, 1) + reward_manager.add_reward(heavy_lifting, 4, 1) + reward_manager.add_reward(heavy_lifting, 5, 1) + + reward_manager.add_trajectory_aggregator([0, 1, 2], 'mean') + reward_manager.add_trajectory_aggregator([3, 4, 5], 'mean') + + return builder, crag, soft_constrain, reward_manager + +def inertial_config_two_link_six_trajectories_v2(workspace_based=False, open_loop=False): + """Create objects for optimization of two link based robots + + Args: + workspace_based (bool, optional): If true use the workspace trajectory for the soft constraint. Defaults to False. + + Returns: + list: builder, crag, soft_constrain, reward_manager + """ + builder = get_standard_builder() + trajectories = get_standard_trajectories() + crag = get_standard_crag(open_loop) + workspace_trajectory = trajectories['workspace'] + ground_symmetric_step1 = trajectories['step1'] + ground_symmetric_step2 = trajectories['step2'] + ground_symmetric_step3 = trajectories['step3'] + central_vertical = trajectories['central_vertical'] + left_vertical = trajectories['left_vertical'] + right_vertical = trajectories['right_vertical'] + # set the rewards and weights for the optimization task + rewards = get_standard_rewards() + acceleration_capability = rewards['min_acceleration'] + heavy_lifting = rewards['mean_heavy_lifting'] + + # set up special classes for reward calculations + error_calculator = PositioningErrorCalculator( + jacobian_key="Manip_Jacobian") + if workspace_based: + soft_constrain = PositioningConstrain( + error_calculator=error_calculator, points=[workspace_trajectory]) + else: + soft_constrain = PositioningConstrain( + error_calculator=error_calculator, points=[ground_symmetric_step1, ground_symmetric_step2, ground_symmetric_step3, central_vertical, left_vertical, right_vertical]) + + # manager should be filled with trajectories and rewards using the manager API + reward_manager = RewardManager(crag=crag) + + reward_manager.add_trajectory(ground_symmetric_step1, 0) + reward_manager.add_trajectory(ground_symmetric_step2, 1) + reward_manager.add_trajectory(ground_symmetric_step3, 2) + + reward_manager.add_trajectory(central_vertical, 3) + reward_manager.add_trajectory(left_vertical, 4) + reward_manager.add_trajectory(right_vertical, 5) + + reward_manager.add_reward(acceleration_capability, 0, 1) + reward_manager.add_reward(acceleration_capability, 1, 1) + reward_manager.add_reward(acceleration_capability, 2, 1) + + reward_manager.add_reward(heavy_lifting, 3, 1) + reward_manager.add_reward(heavy_lifting, 4, 1) + reward_manager.add_reward(heavy_lifting, 5, 1) + + reward_manager.add_trajectory_aggregator([0, 1, 2], 'mean') + reward_manager.add_trajectory_aggregator([3, 4, 5], 'mean') + + return builder, crag, soft_constrain, reward_manager +def inertial_config_two_link_workspace(open_loop=False): + """Create objects for optimization of two link based robots + + Inertial rewards for optimization. + + Args: + workspace_based (bool, optional): If true use the workspace trajectory for the soft constraint. Defaults to False. + + Returns: + list: builder, crag, soft_constrain, reward_manager + """ + builder = get_standard_builder() + trajectories = get_standard_trajectories() + crag = get_standard_crag(open_loop) + workspace_trajectory = trajectories['workspace'] + # set the rewards and weights for the optimization task + rewards = get_standard_rewards() + acceleration_capability = rewards['min_acceleration'] + heavy_lifting = rewards['mean_heavy_lifting'] + + # set up special classes for reward calculations + error_calculator = PositioningErrorCalculator( + jacobian_key="Manip_Jacobian") + soft_constrain = PositioningConstrain( + error_calculator=error_calculator, points=[workspace_trajectory]) + + # manager should be filled with trajectories and rewards using the manager API + reward_manager = RewardManager(crag=crag) + + reward_manager.add_trajectory(workspace_trajectory, 0) + + reward_manager.add_reward(acceleration_capability, 0, 1) + reward_manager.add_reward(heavy_lifting, 0, 1) + + return builder, crag, soft_constrain, reward_manager + + +def jacobian_config_two_link_workspace(open_loop=False): + """Create objects for optimization of two link based robots + + Inertial rewards for optimization. + + Args: + workspace_based (bool, optional): If true use the workspace trajectory for the soft constraint. Defaults to False. + + Returns: + list: builder, crag, soft_constrain, reward_manager + """ + builder = get_standard_builder() + trajectories = get_standard_trajectories() + crag = get_standard_crag(open_loop) + workspace_trajectory = trajectories['workspace'] + # set the rewards and weights for the optimization task + rewards = get_standard_rewards() + manipulability = rewards['manipulability'] + zrr = rewards['trajectory_zrr'] + + # set up special classes for reward calculations + error_calculator = PositioningErrorCalculator( + jacobian_key="Manip_Jacobian") + soft_constrain = PositioningConstrain( + error_calculator=error_calculator, points=[workspace_trajectory]) + + # manager should be filled with trajectories and rewards using the manager API + reward_manager = RewardManager(crag=crag) + + reward_manager.add_trajectory(workspace_trajectory, 0) + + reward_manager.add_reward(manipulability, 0, 1) + reward_manager.add_reward(zrr, 0, 1) + + return builder, crag, soft_constrain, reward_manager diff --git a/jmoves/auto_robot_design/utils/geom.py b/jmoves/auto_robot_design/utils/geom.py new file mode 100644 index 00000000..1a45ba76 --- /dev/null +++ b/jmoves/auto_robot_design/utils/geom.py @@ -0,0 +1,51 @@ +import numpy as np +import numpy.linalg as la +from scipy.spatial.transform import Rotation as R +import modern_robotics as mr + + +def calculate_rot_vec2_to_vec1(vec1: np.ndarray, + vec2: np.ndarray = np.array([0, 0, 1])): + """Calculate transformation from `vec2` to vector `vec1` + + Args: + p1 (np.ndarray): point of vector's start + p2 (np.ndarray): point of vector's end + vec (np.ndarray, optional): Vector transform from. Defaults to np.array([0, 0, 1]). + + Returns: + tuple: position: np.ndarray, rotation: scipy.spatial.rotation, length: float + """ + angle = np.arccos(np.inner(vec2, vec1) / la.norm(vec1) / la.norm(vec2)) + axis = mr.VecToso3(vec2) @ vec1 + if not np.isclose(np.sum(axis), 0): + axis /= la.norm(axis) + + rot = R.from_rotvec(axis * angle) + + return rot + +def calculate_transform_with_2points(p1: np.ndarray, + p2: np.ndarray, + vec: np.ndarray = np.array([0, 0, 1])): + """Calculate transformation from `vec` to vector build with points `p1` and `p2` + + Args: + p1 (np.ndarray): point of vector's start + p2 (np.ndarray): point of vector's end + vec (np.ndarray, optional): Vector transform from. Defaults to np.array([0, 0, 1]). + + Returns: + tuple: position: np.ndarray, rotation: scipy.spatial.rotation, length: float + """ + v_l = p2 - p1 + angle = np.arccos(np.inner(vec, v_l) / la.norm(v_l) / la.norm(vec)) + axis = mr.VecToso3(vec[:3]) @ v_l[:3] + if not np.isclose(np.sum(axis), 0): + axis /= la.norm(axis) + + rot = R.from_rotvec(axis * angle) + pos = (p2 + p1) / 2 + length = la.norm(v_l) + + return pos, rot, length \ No newline at end of file diff --git a/jmoves/auto_robot_design/utils/meshcat_vizualizer/vizualizer.py b/jmoves/auto_robot_design/utils/meshcat_vizualizer/vizualizer.py new file mode 100644 index 00000000..78a7c7d5 --- /dev/null +++ b/jmoves/auto_robot_design/utils/meshcat_vizualizer/vizualizer.py @@ -0,0 +1,86 @@ +import random + +import meshcat +import numpy as np +import pinocchio as pin +from pinocchio.visualize import MeshcatVisualizer as PMV + +# from . import colors + + +# def materialFromColor(color): +# if isinstance(color, meshcat.geometry.MeshPhongMaterial): +# return color +# elif isinstance(color, str): +# material = colors.colormap[color] +# elif isinstance(color, list): +# material = meshcat.geometry.MeshPhongMaterial() +# material.color = colors.rgb2int(*[int(c * 255) for c in color[:3]]) +# if len(color) == 3: +# material.transparent = False +# else: +# material.transparent = color[3] < 1 +# material.opacity = float(color[3]) +# elif color is None: +# material = random.sample(list(colors.colormap), 1)[0] +# else: +# material = colors.black +# return material + + +class MeshcatVisualizer(PMV): + def __init__(self, robot=None, model=None, collision_model=None, visual_model=None, url=None): + if robot is not None: + super().__init__(robot.model, robot.collision_model, robot.visual_model) + elif model is not None: + super().__init__(model, collision_model, visual_model) + + if url is not None: + if url == 'classical': + url = 'tcp://127.0.0.1:6000' + print('Wrapper tries to connect to server <%s>' % url) + server = meshcat.Visualizer(zmq_url=url) + else: + server = None + + if robot is not None or model is not None: + self.initViewer(loadModel=True, viewer=server) + else: + self.viewer = server if server is not None else meshcat.Visualizer() + + def addSphere(self, name, radius, color): + material = materialFromColor(color) + self.viewer[name].set_object(meshcat.geometry.Sphere(radius), material) + + def addCylinder(self, name, length, radius, color=None): + material = materialFromColor(color) + self.viewer[name].set_object(meshcat.geometry.Cylinder(length, radius), material) + + def addBox(self, name, dims, color): + material = materialFromColor(color) + self.viewer[name].set_object(meshcat.geometry.Box(dims), material) + + def applyConfiguration(self, name, placement): + if isinstance(placement, list) or isinstance(placement, tuple): + placement = np.array(placement) + if isinstance(placement, pin.SE3): + R, p = placement.rotation, placement.translation + T = np.r_[np.c_[R, p], [[0, 0, 0, 1]]] + elif isinstance(placement, np.ndarray): + if placement.shape == (7, ): # XYZ-quat + R = pin.Quaternion(np.reshape(placement[3:], [4, 1])).matrix() + p = placement[:3] + T = np.r_[np.c_[R, p], [[0, 0, 0, 1]]] + else: + print('Error, np.shape of placement is not accepted') + return False + else: + print('Error format of placement is not accepted') + return False + self.viewer[name].set_transform(T) + + def delete(self, name): + self.viewer[name].delete() + + def __getitem__(self, name): + return self.viewer[name] \ No newline at end of file diff --git a/jmoves/auto_robot_design/utils/reward_calculator.py b/jmoves/auto_robot_design/utils/reward_calculator.py new file mode 100644 index 00000000..5b529cd7 --- /dev/null +++ b/jmoves/auto_robot_design/utils/reward_calculator.py @@ -0,0 +1,21 @@ +import os +from typing import Tuple, Union + +import dill +import numpy as np +from pymoo.core.problem import ElementwiseProblem + +from auto_robot_design.description.builder import jps_graph2pinocchio_robot, jps_graph2pinocchio_robot_3d_constraints +from auto_robot_design.generator.topologies.graph_manager_2l import GraphManager2L +from auto_robot_design.optimization.rewards.reward_base import (Reward, RewardManager) +from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator +from auto_robot_design.description.mesh_builder.mesh_builder import MeshBuilder, jps_graph2pinocchio_meshes_robot + +def calculate_reward(graph, builder, crag, trajectory, reward, actuator, sf): + fixed_robot, free_robot = jps_graph2pinocchio_robot_3d_constraints(graph, builder) + constraint_error, trajectory_results = sf.calculate_constrain_error(crag, fixed_robot, free_robot) + if constraint_error > 0: + return constraint_error, [] + else: + return reward.calculate(*trajectory_results, actuator = actuator) + diff --git a/jmoves/auto_robot_design/vizualization/meshcat_utils.py b/jmoves/auto_robot_design/vizualization/meshcat_utils.py new file mode 100644 index 00000000..9f799af4 --- /dev/null +++ b/jmoves/auto_robot_design/vizualization/meshcat_utils.py @@ -0,0 +1,18 @@ +import meshcat +from pinocchio.visualize import MeshcatVisualizer + + +def create_meshcat_vizualizer(robot, jupyter_cell=False): + viz = MeshcatVisualizer(robot.model, robot.visual_model, robot.visual_model) + if jupyter_cell: + viz.viewer.jupyter_cell() + else: + viz.viewer = meshcat.Visualizer().open() + viz.viewer["/Background"].set_property("visible", False) + viz.viewer["/Grid"].set_property("visible", False) + viz.viewer["/Axes"].set_property("visible", False) + viz.viewer["/Cameras/default/rotated/"].set_property("position", [0,0,0.5]) + viz.clean() + viz.loadViewerModel() + + return viz \ No newline at end of file diff --git a/jmoves/environment_jmoves.yml b/jmoves/environment_jmoves.yml new file mode 100644 index 00000000..00bffddb --- /dev/null +++ b/jmoves/environment_jmoves.yml @@ -0,0 +1,26 @@ +name: j_moves +channels: + - conda-forge +dependencies: + - python = 3.9 + - numpy + - scipy + - matplotlib + - pip + - olivier.roussel::hpp-fcl + - olivier.roussel::example-robot-data + - olivier.roussel::pinocchio=2.99.0 + - pip: + - networkx + - modern-robotics + - notebook + - mediapy + - tqdm + - trimesh==4.1.4 + - meshcat + - numba + - joblib + - manifold3d + - git+https://github.com/hauptmech/odio_urdf.git + - pymoo + - ipywidgets \ No newline at end of file diff --git a/jmoves/examples_and_tutorials/one_mech_from_relative_generator.ipynb b/jmoves/examples_and_tutorials/one_mech_from_relative_generator.ipynb new file mode 100644 index 00000000..e048b43b --- /dev/null +++ b/jmoves/examples_and_tutorials/one_mech_from_relative_generator.ipynb @@ -0,0 +1,645 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import multiprocessing\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import os\n", + "\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from pymoo.algorithms.moo.age2 import AGEMOEA2\n", + "from pymoo.decomposition.asf import ASF\n", + "from auto_robot_design.optimization.saver import (ProblemSaver)\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import MultiCriteriaProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, MovmentSurface, NeutralPoseMass, ManipJacobian\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.default_traj import add_auxilary_points_to_trajectory, convert_x_y_to_6d_traj_xz, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory\n", + "from auto_robot_design.optimization.rewards.reward_base import PositioningConstrain, PositioningErrorCalculator, RewardManager\n", + "from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, MinAccelerationCapability\n", + "from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT\n", + "from auto_robot_design.generator.topologies.graph_manager_2l import GraphManager2L,get_preset_by_index\n", + "from auto_robot_design.generator.topologies.bounds_preset import get_preset_by_index_with_bounds\n", + "import pinocchio as pin\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "thickness = MIT_CHEETAH_PARAMS_DICT[\"thickness\"]\n", + "actuator = MIT_CHEETAH_PARAMS_DICT[\"actuator\"]\n", + "density = MIT_CHEETAH_PARAMS_DICT[\"density\"]\n", + "body_density = MIT_CHEETAH_PARAMS_DICT[\"body_density\"]\n", + "\n", + "\n", + "builder = ParametrizedBuilder(DetailedURDFCreatorFixedEE,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.033},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(\n", + " MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"]\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "topology_index = 0\n", + "gm = get_preset_by_index_with_bounds(topology_index)\n", + "graph = gm.get_graph(np.array([-0.0063, 0.0023, -0.1615, 0.1506, 0.5051, -0.0372, -0.2922]))\n", + "#graph = gm.get_graph(np.array([-0.0063, 0.0023, -0.1615, 0.1, 0.4, -0.0372, -0.2922]))\n", + "#graph=gm.get_graph(gm.generate_central_from_mutation_range())\n", + "draw_joint_point(graph)\n", + "\n", + "\n", + "#np.array([-0.0063, 0.0023, -0.1615, 0.1506, 0.5051, -0.0372, -0.2922])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'Ground_connection_0': (-0.2, 0.0),\n", + " 'Ground_connection_2': (-0.028999999999999998, 0.07100000000000001),\n", + " 'Main_knee_2': (-0.30000000000000004, -0.1),\n", + " 'Main_connection_2_0': (-0.2, 0.2),\n", + " 'Main_connection_2_2': (-0.3, 0.6),\n", + " 'branch_1_0': (-0.05, 0.1),\n", + " 'branch_1_2': (-0.3, -0.1)}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gm.mutation_ranges" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0. , 0. , -0.4])" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "node = gm.get_node_by_name(\"Main_ee\")\n", + "node.r\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# 1) trajectories\n", + "\n", + "workspace_trajectory = convert_x_y_to_6d_traj_xz(\n", + " *get_workspace_trajectory([-0.12, -0.33], 0.09, 0.24, 30, 60))\n", + "\n", + "\n", + "ground_symmetric_step1 = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(create_simple_step_trajectory(\n", + " starting_point=[-0.11, -0.32], step_height=0.07, step_width=0.22, n_points=50)))\n", + "\n", + "ground_symmetric_step2 = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(create_simple_step_trajectory(\n", + " starting_point=[-0.11 + 0.025, -0.32], step_height=0.06, step_width=-2*(-0.11 + 0.025), n_points=50)))\n", + "\n", + "ground_symmetric_step3 = convert_x_y_to_6d_traj_xz(*add_auxilary_points_to_trajectory(create_simple_step_trajectory(\n", + " starting_point=[-0.11 + 2 * 0.025, -0.32], step_height=0.05, step_width=-2*(-0.11 + 2 * 0.025), n_points=50)))\n", + "\n", + "\n", + "central_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.32, 0.075, 0, 50)))\n", + "\n", + "left_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.32, 0.065, -0.09, 50)))\n", + "\n", + "right_vertical = convert_x_y_to_6d_traj_xz(\n", + " *add_auxilary_points_to_trajectory(get_vertical_trajectory(-0.32, 0.065, 0.09, 50)))\n", + "# 2) characteristics to be calculated\n", + "# criteria that either calculated without any reference to points, or calculated through the aggregation of values from all points on trajectory\n", + "dict_trajectory_criteria = {\n", + " \"MASS\": NeutralPoseMass(),\n", + "}\n", + "# criteria calculated for each point on the trajectory\n", + "dict_point_criteria = {\n", + " \"Effective_Inertia\": EffectiveInertiaCompute(),\n", + " \"Actuated_Mass\": ActuatedMass(),\n", + " \"Manip_Jacobian\": ManipJacobian(MovmentSurface.XZ)\n", + "}\n", + "# special object that calculates the criteria for a robot and a trajectory\n", + "crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria)\n", + "\n", + "# set the rewards and weights for the optimization task\n", + "acceleration_capability = MinAccelerationCapability(manipulability_key='Manip_Jacobian',\n", + " trajectory_key=\"traj_6d\", error_key=\"error\", actuated_mass_key=\"Actuated_Mass\")\n", + "\n", + "heavy_lifting = HeavyLiftingReward(\n", + " manipulability_key='Manip_Jacobian', trajectory_key=\"traj_6d\", error_key=\"error\", mass_key=\"MASS\")\n", + "\n", + "# set up special classes for reward calculations\n", + "error_calculator = PositioningErrorCalculator(\n", + " error_key='error', jacobian_key=\"Manip_Jacobian\")\n", + "# soft_constrain = PositioningConstrain(\n", + "# error_calculator=error_calculator, points=[workspace_trajectory])\n", + "soft_constrain = PositioningConstrain(error_calculator=error_calculator, points = [ground_symmetric_step1,\n", + " ground_symmetric_step2,\n", + " ground_symmetric_step3,\n", + " central_vertical,\n", + " left_vertical,\n", + " right_vertical])\n", + "\n", + "# manager should be filled with trajectories and rewards using the manager API\n", + "reward_manager = RewardManager(crag=crag)\n", + "reward_manager.add_trajectory(ground_symmetric_step1, 0)\n", + "reward_manager.add_trajectory(ground_symmetric_step2, 1)\n", + "reward_manager.add_trajectory(ground_symmetric_step3, 2)\n", + "\n", + "reward_manager.add_trajectory(central_vertical, 3)\n", + "reward_manager.add_trajectory(left_vertical, 4)\n", + "reward_manager.add_trajectory(right_vertical, 5)\n", + "\n", + "reward_manager.add_reward(acceleration_capability, 0, 1)\n", + "reward_manager.add_reward(acceleration_capability, 1, 1)\n", + "reward_manager.add_reward(acceleration_capability, 2, 1)\n", + "\n", + "reward_manager.add_reward(heavy_lifting, 3, 1)\n", + "reward_manager.add_reward(heavy_lifting, 4, 1)\n", + "reward_manager.add_reward(heavy_lifting, 5, 1)\n", + "\n", + "reward_manager.add_trajectory_aggregator([0, 1, 2], 'mean')\n", + "reward_manager.add_trajectory_aggregator([3, 4, 5], 'mean')" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "fixed_robot, free_robot = jps_graph2pinocchio_robot(graph, builder=builder)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "pin.seed(1)\n", + "from auto_robot_design.pinokla.calc_criterion import (\n", + " folow_traj_by_proximal_inv_k_2, iterate_over_q_space)\n", + "\n", + "\n", + "poses, q_array, constraint_errors, reach_array = folow_traj_by_proximal_inv_k_2(fixed_robot.model, fixed_robot.data, fixed_robot.constraint_models,\n", + " fixed_robot.constraint_data, \"EE\", ground_symmetric_step1)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "reach_array" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "pin.seed(1)\n", + "from auto_robot_design.pinokla.calc_criterion import (\n", + " folow_traj_by_proximal_inv_k_2, iterate_over_q_space, closed_loop_pseudo_inverse_follow)\n", + "\n", + "\n", + "poses, q_array, constraint_errors, reach_array = closed_loop_pseudo_inverse_follow(fixed_robot.model, fixed_robot.data, fixed_robot.constraint_models,\n", + " fixed_robot.constraint_data, \"EE\", ground_symmetric_step1)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([1., 1., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,\n", + " 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "reach_array" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "res_dict_fixed = iterate_over_q_space(fixed_robot, q_array, 'EE')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "11.43878664033443" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ev = np.linalg.eigvals(res_dict_fixed['J_closed'][1][[0,2],:])\n", + "max(abs(ev))/min(abs(ev))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[-0.06897888, -0.05028028, -0.02386184, 0.04921294, -0.14461029],\n", + " [-0.06897088, -0.05026621, -0.02386166, 0.04924544, -0.14462087],\n", + " [-0.06897131, -0.05026994, -0.02385868, 0.0492476 , -0.14463016],\n", + " [-0.06897174, -0.05027366, -0.0238557 , 0.04924975, -0.14463945],\n", + " [-0.06897217, -0.05027738, -0.02385271, 0.04925191, -0.14464874],\n", + " [-0.06897259, -0.05028111, -0.02384973, 0.04925406, -0.14465804],\n", + " [-0.06897302, -0.05028483, -0.02384675, 0.04925622, -0.14466733],\n", + " [-0.06897345, -0.05028855, -0.02384376, 0.04925838, -0.14467662],\n", + " [-0.06897388, -0.05029228, -0.02384078, 0.04926053, -0.14468591],\n", + " [-0.06897431, -0.050296 , -0.02383779, 0.04926269, -0.14469521],\n", + " [-0.06897474, -0.05029973, -0.02383481, 0.04926484, -0.1447045 ],\n", + " [-0.06897517, -0.05030345, -0.02383182, 0.049267 , -0.1447138 ],\n", + " [-0.0689756 , -0.05030717, -0.02382884, 0.04926916, -0.14472309],\n", + " [-0.06897603, -0.0503109 , -0.02382586, 0.04927131, -0.14473238],\n", + " [-0.06897646, -0.05031462, -0.02382287, 0.04927347, -0.14474168],\n", + " [-0.06897689, -0.05031835, -0.02381989, 0.04927562, -0.14475098],\n", + " [-0.06897732, -0.05032207, -0.0238169 , 0.04927778, -0.14476027],\n", + " [-0.06897775, -0.0503258 , -0.02381392, 0.04927993, -0.14476957],\n", + " [-0.06897818, -0.05032953, -0.02381093, 0.04928209, -0.14477886],\n", + " [-0.06897861, -0.05033325, -0.02380795, 0.04928425, -0.14478816],\n", + " [-0.06897904, -0.05033698, -0.02380496, 0.0492864 , -0.14479746],\n", + " [-0.06897947, -0.0503407 , -0.02380197, 0.04928856, -0.14480676],\n", + " [-0.0689799 , -0.05034443, -0.02379899, 0.04929072, -0.14481605],\n", + " [-0.06898033, -0.05034816, -0.023796 , 0.04929287, -0.14482535],\n", + " [-0.06898076, -0.05035188, -0.02379302, 0.04929503, -0.14483465],\n", + " [-0.06898119, -0.05035561, -0.02379003, 0.04929718, -0.14484395],\n", + " [-0.06898162, -0.05035934, -0.02378705, 0.04929934, -0.14485325],\n", + " [-0.06898205, -0.05036306, -0.02378406, 0.0493015 , -0.14486255],\n", + " [-0.06898248, -0.05036679, -0.02378107, 0.04930365, -0.14487185],\n", + " [-0.06898291, -0.05037052, -0.02377809, 0.04930581, -0.14488115],\n", + " [-0.06898334, -0.05037425, -0.0237751 , 0.04930796, -0.14489045],\n", + " [-0.06898377, -0.05037797, -0.02377211, 0.04931012, -0.14489975],\n", + " [-0.0689842 , -0.0503817 , -0.02376913, 0.04931228, -0.14490905],\n", + " [-0.06898463, -0.05038543, -0.02376614, 0.04931443, -0.14491836],\n", + " [-0.06898506, -0.05038916, -0.02376315, 0.04931659, -0.14492766],\n", + " [-0.0689855 , -0.05039289, -0.02376017, 0.04931874, -0.14493696],\n", + " [-0.06898593, -0.05039662, -0.02375718, 0.0493209 , -0.14494626],\n", + " [-0.06898636, -0.05040034, -0.02375419, 0.04932306, -0.14495557],\n", + " [-0.06898679, -0.05040407, -0.02375121, 0.04932521, -0.14496487],\n", + " [-0.06898722, -0.0504078 , -0.02374822, 0.04932737, -0.14497417],\n", + " [-0.06898765, -0.05041153, -0.02374523, 0.04932953, -0.14498348],\n", + " [-0.06898808, -0.05041526, -0.02374224, 0.04933168, -0.14499278],\n", + " [-0.06898851, -0.05041899, -0.02373925, 0.04933384, -0.14500209],\n", + " [-0.06898894, -0.05042272, -0.02373627, 0.04933599, -0.14501139],\n", + " [-0.06898938, -0.05042645, -0.02373328, 0.04933815, -0.1450207 ],\n", + " [-0.06898981, -0.05043018, -0.02373029, 0.04934031, -0.14503 ],\n", + " [-0.06899024, -0.05043391, -0.0237273 , 0.04934246, -0.14503931],\n", + " [-0.06899067, -0.05043764, -0.02372431, 0.04934462, -0.14504862],\n", + " [-0.0689911 , -0.05044137, -0.02372133, 0.04934678, -0.14505793],\n", + " [-0.06899153, -0.05044511, -0.02371834, 0.04934893, -0.14506723],\n", + " [-0.06899196, -0.05044884, -0.02371535, 0.04935109, -0.14507654],\n", + " [-0.0689924 , -0.05045257, -0.02371236, 0.04935324, -0.14508585],\n", + " [-0.06899283, -0.0504563 , -0.02370937, 0.0493554 , -0.14509516],\n", + " [-0.06899326, -0.05046003, -0.02370638, 0.04935756, -0.14510447],\n", + " [-0.06899369, -0.05046376, -0.02370339, 0.04935971, -0.14511378],\n", + " [-0.06899412, -0.0504675 , -0.0237004 , 0.04936187, -0.14512309],\n", + " [-0.06899456, -0.05047123, -0.02369741, 0.04936403, -0.1451324 ],\n", + " [-0.06899499, -0.05047496, -0.02369443, 0.04936618, -0.14514171],\n", + " [-0.06899542, -0.05047869, -0.02369144, 0.04936834, -0.14515102],\n", + " [-0.06899585, -0.05048243, -0.02368845, 0.04937049, -0.14516033],\n", + " [-0.06899628, -0.05048616, -0.02368546, 0.04937265, -0.14516964],\n", + " [-0.06899672, -0.05048989, -0.02368247, 0.04937481, -0.14517895],\n", + " [-0.06899715, -0.05049363, -0.02367948, 0.04937696, -0.14518826],\n", + " [-0.06899758, -0.05049736, -0.02367649, 0.04937912, -0.14519757],\n", + " [-0.06899801, -0.05050109, -0.0236735 , 0.04938128, -0.14520689],\n", + " [-0.06899845, -0.05050483, -0.02367051, 0.04938343, -0.1452162 ],\n", + " [-0.06899888, -0.05050856, -0.02366752, 0.04938559, -0.14522551],\n", + " [-0.06899931, -0.0505123 , -0.02366452, 0.04938775, -0.14523483],\n", + " [-0.06899974, -0.05051603, -0.02366153, 0.0493899 , -0.14524414],\n", + " [-0.06900018, -0.05051977, -0.02365854, 0.04939206, -0.14525346],\n", + " [-0.06900061, -0.0505235 , -0.02365555, 0.04939422, -0.14526277],\n", + " [-0.06900104, -0.05052724, -0.02365256, 0.04939637, -0.14527209],\n", + " [-0.06900147, -0.05053097, -0.02364957, 0.04939853, -0.1452814 ],\n", + " [-0.06900191, -0.05053471, -0.02364658, 0.04940068, -0.14529072],\n", + " [-0.06900234, -0.05053844, -0.02364359, 0.04940284, -0.14530004],\n", + " [-0.06900277, -0.05054218, -0.0236406 , 0.049405 , -0.14530935],\n", + " [-0.06900321, -0.05054591, -0.0236376 , 0.04940715, -0.14531867],\n", + " [-0.06900364, -0.05054965, -0.02363461, 0.04940931, -0.14532799],\n", + " [-0.06900407, -0.05055339, -0.02363162, 0.04941147, -0.1453373 ],\n", + " [-0.06900451, -0.05055712, -0.02362863, 0.04941362, -0.14534662],\n", + " [-0.06900494, -0.05056086, -0.02362564, 0.04941578, -0.14535594],\n", + " [-0.06900537, -0.0505646 , -0.02362265, 0.04941794, -0.14536526],\n", + " [-0.06900581, -0.05056833, -0.02361965, 0.04942009, -0.14537458],\n", + " [-0.06900624, -0.05057207, -0.02361666, 0.04942225, -0.1453839 ],\n", + " [-0.06900667, -0.05057581, -0.02361367, 0.04942441, -0.14539322],\n", + " [-0.06900711, -0.05057954, -0.02361068, 0.04942656, -0.14540254],\n", + " [-0.06900754, -0.05058328, -0.02360768, 0.04942872, -0.14541186],\n", + " [-0.06900797, -0.05058702, -0.02360469, 0.04943088, -0.14542118],\n", + " [-0.06900841, -0.05059076, -0.0236017 , 0.04943303, -0.1454305 ],\n", + " [-0.06900884, -0.0505945 , -0.0235987 , 0.04943519, -0.14543982],\n", + " [-0.06900928, -0.05059823, -0.02359571, 0.04943735, -0.14544914],\n", + " [-0.06900971, -0.05060197, -0.02359272, 0.0494395 , -0.14545847],\n", + " [-0.06901014, -0.05060571, -0.02358973, 0.04944166, -0.14546779],\n", + " [-0.06901058, -0.05060945, -0.02358673, 0.04944382, -0.14547711],\n", + " [-0.06901101, -0.05061319, -0.02358374, 0.04944597, -0.14548644],\n", + " [-0.06901145, -0.05061693, -0.02358074, 0.04944813, -0.14549576],\n", + " [-0.06901188, -0.05062067, -0.02357775, 0.04945029, -0.14550508],\n", + " [-0.06901231, -0.05062441, -0.02357476, 0.04945244, -0.14551441],\n", + " [-0.06901275, -0.05062815, -0.02357176, 0.0494546 , -0.14552373]])" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "q_array\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[-2.19116962e-03, 4.81887983e-17, -3.98401150e-01],\n", + " [-4.39758493e-03, 4.82179927e-17, -3.96809319e-01],\n", + " [-6.60159236e-03, 4.82454926e-17, -3.95205416e-01],\n", + " [-8.80186792e-03, 4.82730928e-17, -3.93605449e-01],\n", + " [-1.10021068e-02, 4.83006880e-17, -3.92005471e-01],\n", + " [-1.32023129e-02, 4.83282785e-17, -3.90405481e-01],\n", + " [-1.54024923e-02, 4.83558654e-17, -3.88805483e-01],\n", + " [-1.76026489e-02, 4.83834494e-17, -3.87205480e-01],\n", + " [-1.98027859e-02, 4.84110311e-17, -3.85605475e-01],\n", + " [-2.20029056e-02, 4.84386108e-17, -3.84005467e-01],\n", + " [-2.42030100e-02, 4.84661890e-17, -3.82405459e-01],\n", + " [-2.64031005e-02, 4.84937657e-17, -3.80805451e-01],\n", + " [-2.86031784e-02, 4.85213413e-17, -3.79205444e-01],\n", + " [-3.08032447e-02, 4.85489158e-17, -3.77605437e-01],\n", + " [-3.30033003e-02, 4.85764895e-17, -3.76005432e-01],\n", + " [-3.52033460e-02, 4.86040622e-17, -3.74405428e-01],\n", + " [-3.74033824e-02, 4.86316343e-17, -3.72805426e-01],\n", + " [-3.96034100e-02, 4.86592056e-17, -3.71205426e-01],\n", + " [-4.18034294e-02, 4.86867764e-17, -3.69605427e-01],\n", + " [-4.40034409e-02, 4.87143465e-17, -3.68005430e-01],\n", + " [-4.62034450e-02, 4.87419161e-17, -3.66405434e-01],\n", + " [-4.84034421e-02, 4.87694853e-17, -3.64805440e-01],\n", + " [-5.06034323e-02, 4.87970539e-17, -3.63205448e-01],\n", + " [-5.28034160e-02, 4.88246220e-17, -3.61605457e-01],\n", + " [-5.50033934e-02, 4.88521897e-17, -3.60005468e-01],\n", + " [-5.72033649e-02, 4.88797570e-17, -3.58405480e-01],\n", + " [-5.94033304e-02, 4.89073238e-17, -3.56805493e-01],\n", + " [-6.16032904e-02, 4.89348902e-17, -3.55205508e-01],\n", + " [-6.38032449e-02, 4.89624561e-17, -3.53605523e-01],\n", + " [-6.60031941e-02, 4.89900217e-17, -3.52005539e-01],\n", + " [-6.82031382e-02, 4.90175868e-17, -3.50405557e-01],\n", + " [-7.04030772e-02, 4.90451515e-17, -3.48805574e-01],\n", + " [-7.26030115e-02, 4.90727158e-17, -3.47205592e-01],\n", + " [-7.48029410e-02, 4.91002796e-17, -3.45605611e-01],\n", + " [-7.70028659e-02, 4.91278430e-17, -3.44005630e-01],\n", + " [-7.92027863e-02, 4.91554059e-17, -3.42405648e-01],\n", + " [-8.14027024e-02, 4.91829685e-17, -3.40805667e-01],\n", + " [-8.36026142e-02, 4.92105305e-17, -3.39205686e-01],\n", + " [-8.58025219e-02, 4.92380921e-17, -3.37605704e-01],\n", + " [-8.80024256e-02, 4.92656532e-17, -3.36005721e-01],\n", + " [-9.02023254e-02, 4.92932139e-17, -3.34405738e-01],\n", + " [-9.24022214e-02, 4.93207740e-17, -3.32805753e-01],\n", + " [-9.46021137e-02, 4.93483337e-17, -3.31205768e-01],\n", + " [-9.68020024e-02, 4.93758928e-17, -3.29605782e-01],\n", + " [-9.90018876e-02, 4.94034514e-17, -3.28005794e-01],\n", + " [-1.01201769e-01, 4.94310096e-17, -3.26405804e-01],\n", + " [-1.03401648e-01, 4.94585671e-17, -3.24805813e-01],\n", + " [-1.05601524e-01, 4.94861242e-17, -3.23205820e-01],\n", + " [-1.07801396e-01, 4.95136807e-17, -3.21605825e-01],\n", + " [-1.10001266e-01, 4.95412366e-17, -3.20005828e-01],\n", + " [-1.05517211e-01, 4.84172153e-17, -3.14398297e-01],\n", + " [-1.01026776e-01, 4.73216929e-17, -3.09032762e-01],\n", + " [-9.65362145e-02, 4.62542571e-17, -3.03900600e-01],\n", + " [-9.20455396e-02, 4.52149087e-17, -2.99001807e-01],\n", + " [-8.75547710e-02, 4.42036501e-17, -2.94336387e-01],\n", + " [-8.30639257e-02, 4.32204834e-17, -2.89904341e-01],\n", + " [-7.85730194e-02, 4.22654103e-17, -2.85705673e-01],\n", + " [-7.40820666e-02, 4.13384325e-17, -2.81740384e-01],\n", + " [-6.95910810e-02, 4.04395517e-17, -2.78008476e-01],\n", + " [-6.51000761e-02, 3.95687693e-17, -2.74509950e-01],\n", + " [-6.06090650e-02, 3.87260868e-17, -2.71244807e-01],\n", + " [-5.61180612e-02, 3.79115057e-17, -2.68213049e-01],\n", + " [-5.16270781e-02, 3.71250273e-17, -2.65414675e-01],\n", + " [-4.71361298e-02, 3.63666530e-17, -2.62849686e-01],\n", + " [-4.26452305e-02, 3.56363842e-17, -2.60518080e-01],\n", + " [-3.81577481e-02, 3.49350665e-17, -2.58424082e-01],\n", + " [-3.36675819e-02, 3.42610340e-17, -2.56558927e-01],\n", + " [-2.91775009e-02, 3.36151016e-17, -2.54927081e-01],\n", + " [-2.46875105e-02, 3.29972682e-17, -2.53528531e-01],\n", + " [-2.01976194e-02, 3.24075340e-17, -2.52363270e-01],\n", + " [-1.57078359e-02, 3.18458984e-17, -2.51431288e-01],\n", + " [-1.12181668e-02, 3.13123609e-17, -2.50732574e-01],\n", + " [-6.72861794e-03, 3.08069208e-17, -2.50267117e-01],\n", + " [-2.23919311e-03, 3.03295768e-17, -2.50034904e-01],\n", + " [ 2.25010567e-03, 2.98803275e-17, -2.50035921e-01],\n", + " [ 6.73927876e-03, 2.94591712e-17, -2.50270156e-01],\n", + " [ 1.12283290e-02, 2.90661061e-17, -2.50737593e-01],\n", + " [ 1.57137753e-02, 2.87010117e-17, -2.51434340e-01],\n", + " [ 2.02028246e-02, 2.83640286e-17, -2.52367555e-01],\n", + " [ 2.46918347e-02, 2.80551238e-17, -2.53533937e-01],\n", + " [ 2.91808121e-02, 2.77742969e-17, -2.54933487e-01],\n", + " [ 3.36697687e-02, 2.75215467e-17, -2.56566205e-01],\n", + " [ 3.81587166e-02, 2.72968723e-17, -2.58432094e-01],\n", + " [ 4.26476688e-02, 2.71002728e-17, -2.60531158e-01],\n", + " [ 4.71366378e-02, 2.69317479e-17, -2.62863403e-01],\n", + " [ 5.16256363e-02, 2.67912973e-17, -2.65428839e-01],\n", + " [ 5.61168234e-02, 2.66781521e-17, -2.68222874e-01],\n", + " [ 6.06062794e-02, 2.65938043e-17, -2.71254642e-01],\n", + " [ 6.50957770e-02, 2.65375372e-17, -2.74519662e-01],\n", + " [ 6.95853160e-02, 2.65093514e-17, -2.78017940e-01],\n", + " [ 7.40748980e-02, 2.65092481e-17, -2.81749488e-01],\n", + " [ 7.85645242e-02, 2.65372283e-17, -2.85714316e-01],\n", + " [ 8.30541959e-02, 2.65932932e-17, -2.89912433e-01],\n", + " [ 8.75439146e-02, 2.66774434e-17, -2.94343846e-01],\n", + " [ 9.20336827e-02, 2.67896795e-17, -2.99008562e-01],\n", + " [ 9.65235031e-02, 2.69300017e-17, -3.03906586e-01],\n", + " [ 1.01013380e-01, 2.70984099e-17, -3.09037919e-01],\n", + " [ 1.05503320e-01, 2.72949034e-17, -3.14402562e-01],\n", + " [ 1.09993330e-01, 2.75194812e-17, -3.20000511e-01]])" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "poses" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from pinocchio.visualize import MeshcatVisualizer\n", + "import meshcat\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "You can open the visualizer by visiting the following URL:\n", + "http://127.0.0.1:7000/static/\n" + ] + } + ], + "source": [ + "viz = MeshcatVisualizer(fixed_robot.model, fixed_robot.visual_model, fixed_robot.visual_model)\n", + "viz.viewer = meshcat.Visualizer().open()\n", + "viz.viewer[\"/Background\"].set_property(\"visible\", False)\n", + "viz.viewer[\"/Grid\"].set_property(\"visible\", False)\n", + "viz.viewer[\"/Axes\"].set_property(\"visible\", False)\n", + "viz.viewer[\"/Cameras/default/rotated/\"].set_property(\"position\", [0,0,0.5])\n", + "viz.clean()\n", + "viz.loadViewerModel()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "poses, q_array, constraint_errors, reach_array = closed_loop_ik_grad_follow(fixed_robot.model, fixed_robot.data, fixed_robot.constraint_models,\n", + " fixed_robot.constraint_data, \"EE\", ground_symmetric_step1, viz=viz)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/examples_and_tutorials/optimization_pipeline_2l.ipynb b/jmoves/examples_and_tutorials/optimization_pipeline_2l.ipynb new file mode 100644 index 00000000..99c9ac41 --- /dev/null +++ b/jmoves/examples_and_tutorials/optimization_pipeline_2l.ipynb @@ -0,0 +1,428 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Tutorial for optimization of a mechanism with 2-link main branch. \n", + "Relative generator and multicriterial optimization. \n", + "\n", + "Last update 09.07.2024" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import multiprocessing\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "from pymoo.algorithms.soo.nonconvex.pso import PSO\n", + "from pymoo.core.problem import StarmapParallelization\n", + "from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator, visualize_constrains\n", + "\n", + "from auto_robot_design.optimization.saver import (\n", + " ProblemSaver, )\n", + "from auto_robot_design.description.builder import jps_graph2pinocchio_robot\n", + "from auto_robot_design.description.utils import draw_joint_point\n", + "from auto_robot_design.optimization.problems import CalculateCriteriaProblemByWeigths, get_optimizing_joints, CalculateMultiCriteriaProblem, MultiCriteriaProblem\n", + "from auto_robot_design.optimization.optimizer import PymooOptimizer\n", + "from auto_robot_design.pinokla.calc_criterion import ActuatedMass, EffectiveInertiaCompute, ImfCompute, ManipCompute, MovmentSurface, NeutralPoseMass, TranslationErrorMSE, ManipJacobian\n", + "from auto_robot_design.pinokla.criterion_agregator import CriteriaAggregator\n", + "from auto_robot_design.pinokla.criterion_math import ImfProjections\n", + "from auto_robot_design.pinokla.default_traj import convert_x_y_to_6d_traj_xz, get_simple_spline, get_vertical_trajectory, create_simple_step_trajectory, get_workspace_trajectory, get_horizontal_trajectory\n", + "from auto_robot_design.optimization.rewards.reward_base import PositioningReward, PositioningConstrain, PositioningErrorCalculator, RewardManager\n", + "from auto_robot_design.optimization.rewards.jacobian_and_inertia_rewards import HeavyLiftingReward, AccelerationCapability, MeanHeavyLiftingReward, MinAccelerationCapability\n", + "from auto_robot_design.optimization.rewards.pure_jacobian_rewards import EndPointZRRReward, VelocityReward, ForceEllipsoidReward, ZRRReward, MinForceReward, MinManipulabilityReward\n", + "from auto_robot_design.optimization.rewards.inertia_rewards import MassReward\n", + "from auto_robot_design.description.actuators import TMotor_AK10_9, TMotor_AK60_6, TMotor_AK70_10, TMotor_AK80_64, TMotor_AK80_9\n", + "from auto_robot_design.description.builder import ParametrizedBuilder, DetailedURDFCreatorFixedEE, jps_graph2pinocchio_robot, MIT_CHEETAH_PARAMS_DICT\n", + "from auto_robot_design.generator.topologies.graph_manager_2l import GraphManager2L,get_preset_by_index" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Construct the graph manager for optimization. One can use functions of the GraphManager2L class or one of mechs from preset" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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AMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAym/tWsnhsD87d5aUf/+95OtrlyckVKztqVPt86+Fb76xr/Xaa9fmegBwiyJQAqg4p1NKSir5PjlZ8vc3a/Oxx6TPPzdrAwBwTREoAVTcAw+4BsqkJGnAALM2GzaUunQxawMAcE0RKAFUXK9e0tGj0vbt0vHj9lT44MElx7/7Tho/Xmrd2h65DAiQevSQ/vEP97aaNy+ZRr/clHdCgn1s3Tqpb1+pVi2pSRPpzTcr7562bJHq1JGGDpUKCiRJoyW179ChbNc9cEAaNUqqX1+qXl26807p448rXg8AbgIESgAV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QqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgBVZ+1a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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gm = get_preset_by_index(-1)\n", + "# get the values for central graph and get the actual graph using these values \n", + "center = gm.generate_central_from_mutation_range()\n", + "graph = gm.get_graph(center)\n", + "draw_joint_point(graph)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# alternative way to setup graph manager\n", + "gm = GraphManager2L()\n", + "gm.reset()\n", + "gm.build_main(0.4, fully_actuated=True)\n", + "gm.set_mutation_ranges() # that function creates ranges from the , it must be called before any graph generation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Graph manager provides possible joint point movements and can generate graph from the provided range.\n", + "There are auxiliary functions for generating central and random graphs. The vector for graph generation can be mutated to get the required graph." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Main_knee_2': (-0.30000000000000004, -0.1)}\n", + "[-0.3]\n" + ] + }, + { + "data": { + "image/png": "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AMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAQAAYIRACQAAACMESgAAABghUAIAAMAIgRIAAABGCJQAAAAwQqAEAACAEQIlAAAAjBAoAZTf2rWSw2F/du4sKf/+e8nX1y5PSKhY21On2udfC998Y1/rtdeuzfUA4BZFoARQcU6nlJRU8n1ysuTvb9bmY49Jn39u1gYA4JoiUAKouAcecA2USUnSgAFmbTZsKHXpYtYGAOCaIlACqLhevaSjR6Xt26Xjx+2p8MGDS45/9500frzUurU9chkQIPXoIf3jH+5tNW9eMo1+uSnvhAT72Lp1Ut++Uq1aUpMm0ptvVt49bdki1akjDR0qFRRIkkZLat+hQ9mue+CANGqUVL++VL26dOed0scfV7weANwECJQAKs7Hxx6RTEqSli61RxYbNCg5npNjP1f5zDN2WFq8WGrWTOrdW9q40bWtxYvtqe5HH736dR9/3G4jOVnq3Fl68kn39iris8+kX/zCvqeFC+37K891Dx2yy1NTpT/9SVq+XGrbVho4UFq1qvz1AOAm4X29OwDgJjdkiDR5stS4sT2qd7GICDuYFSkslH7+cztAzZnjOrXdrp3935SUq19z4kRpwgT767vvlpYtk1auNJsqX7VKiouzQ+Obb5Y+Snq1606ZYgfo1FR7xFWS7r9fysiwFxvdd1/56gHATYIRSgBmevWSjh2zp4MffND9+Jw5UseO9gIeb297FXhurpSdXfFr9uhR8nWtWlJwsFl7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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "print(gm.mutation_ranges)\n", + "center = gm.generate_central_from_mutation_range()\n", + "center[0] = -0.3\n", + "print(center)\n", + "graph = gm.get_graph(center)\n", + "draw_joint_point(graph)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The core of the optimization is the builder class that can transform JointPoint graph into the URDF description of a robot. The description includes actuation and constrains to form closed kinematic chains.\n", + "The builder object requires additional information for building the model. In this tutorial the parameters match the real robot parameters. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "thickness = MIT_CHEETAH_PARAMS_DICT[\"thickness\"]\n", + "actuator = MIT_CHEETAH_PARAMS_DICT[\"actuator\"]\n", + "density = MIT_CHEETAH_PARAMS_DICT[\"density\"]\n", + "body_density = MIT_CHEETAH_PARAMS_DICT[\"body_density\"]\n", + "\n", + "\n", + "builder = ParametrizedBuilder(DetailedURDFCreatorFixedEE,\n", + " density={\"default\": density, \"G\": body_density},\n", + " thickness={\"default\": thickness, \"EE\": 0.033},\n", + " actuator={\"default\": actuator},\n", + " size_ground=np.array(\n", + " MIT_CHEETAH_PARAMS_DICT[\"size_ground\"]),\n", + " offset_ground=MIT_CHEETAH_PARAMS_DICT[\"offset_ground_rl\"]\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Implemented Kinematic simulation is trajectory based, therefore one must define trajectories\n", + "Trajectory is a set of 6-dimensional points that specify position and rotation of EE frame." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "workspace_trajectory = convert_x_y_to_6d_traj_xz(\n", + " *get_workspace_trajectory([-0.12, -0.33], 0.09, 0.24, 30, 60))\n", + "\n", + "ground_symmetric_step1 = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory(\n", + " starting_point=[-0.11, -0.32], step_height=0.07, step_width=0.22, n_points=50))\n", + "\n", + "ground_symmetric_step2 = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory(\n", + " starting_point=[-0.11 + 0.025, -0.32], step_height=0.06, step_width=-2*(-0.11 + 0.025), n_points=50))\n", + "\n", + "ground_symmetric_step3 = convert_x_y_to_6d_traj_xz(*create_simple_step_trajectory(\n", + " starting_point=[-0.11 + 2 * 0.025, -0.32], step_height=0.05, step_width=-2*(-0.11 + 2 * 0.025), n_points=50))\n", + "\n", + "central_vertical = convert_x_y_to_6d_traj_xz(\n", + " *get_vertical_trajectory(-0.32, 0.075, 0, 50))\n", + "\n", + "left_vertical = convert_x_y_to_6d_traj_xz(\n", + " *get_vertical_trajectory(-0.32, 0.065, -0.09, 50))\n", + "\n", + "right_vertical = convert_x_y_to_6d_traj_xz(\n", + " *get_vertical_trajectory(-0.32, 0.065, 0.09, 50))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Kinematic simulation is carried out by the CriteriaAggregator object. Its main function is to perform a simulation for a given trajectory and calculate predefined characteristics along this trajectory.\n", + "\n", + "The characteristics to be calculated have to be implemented using the ComputeInterface and aggregated in the dictionaries of the form Name -> Class derived from the ComputeInterface \n", + "\n", + "Currently there are two types of characteristics: \n", + "1) either calculated without any reference to points, or calculated through the aggregation of values from all points on trajectory (dict_trajectory_criteria)\n", + "2) calculated for each point on the trajectory (dict_point_criteria)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 0.09 , 0. , -0.32 , 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.31867347, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.31734694, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.31602041, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.31469388, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.31336735, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.31204082, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.31071429, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.30938776, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.30806122, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.30673469, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.30540816, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.30408163, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.3027551 , 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.30142857, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.30010204, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.29877551, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.29744898, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.29612245, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.29479592, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.29346939, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.29214286, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.29081633, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.2894898 , 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.28816327, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.28683673, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.2855102 , 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.28418367, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.28285714, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.28153061, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.28020408, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.27887755, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.27755102, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.27622449, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.27489796, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.27357143, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.2722449 , 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.27091837, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.26959184, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.26826531, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.26693878, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.26561224, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.26428571, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.26295918, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.26163265, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.26030612, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.25897959, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.25765306, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.25632653, 0. , 0. ,\n", + " 0. ],\n", + " [ 0.09 , 0. , -0.255 , 0. , 0. ,\n", + " 0. ]])" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dict_trajectory_criteria = {\n", + " \"MASS\": NeutralPoseMass(),\n", + " \"POS_ERR\": TranslationErrorMSE() # MSE of deviation from the trajectory\n", + "}\n", + "\n", + "dict_point_criteria = {\n", + " # Impact mitigation factor along the axis\n", + " \"IMF\": ImfCompute(ImfProjections.Z),\n", + " \"MANIP\": ManipCompute(MovmentSurface.XZ),\n", + " \"Effective_Inertia\": EffectiveInertiaCompute(),\n", + " \"Actuated_Mass\": ActuatedMass(),\n", + " \"Manip_Jacobian\": ManipJacobian(MovmentSurface.XZ)\n", + "}\n", + "# special object that calculates the characteristics for a robot and a trajectory\n", + "crag = CriteriaAggregator(dict_point_criteria, dict_trajectory_criteria)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Current optimization process has two steps. Our criteria can be calculated only if a mechanism can reach all points at the trajectory. \n", + "The first step is to check the reachability using PositioningConstrain. If any point is unreachable the mech get negative reward and other rewards are not calculated. That mechanism work instead of constrains in the optimization space. The reachability trajectory can be different from the actual \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# set the rewards and weights for the optimization task\n", + "acceleration_capability = MinAccelerationCapability(manipulability_key='Manip_Jacobian',\n", + " trajectory_key=\"traj_6d\", error_key=\"error\", actuated_mass_key=\"Actuated_Mass\")\n", + "min_velocity = MinManipulabilityReward(\n", + " manipulability_key='Manip_Jacobian', trajectory_key=\"traj_6d\", error_key=\"error\")\n", + "\n", + "min_force = MinForceReward(\n", + " manipulability_key='Manip_Jacobian', trajectory_key=\"traj_6d\", error_key=\"error\")\n", + "heavy_lifting = HeavyLiftingReward(\n", + " manipulability_key='Manip_Jacobian', trajectory_key=\"traj_6d\", error_key=\"error\", mass_key=\"MASS\")\n", + "\n", + "# set up special classes for reward calculations\n", + "error_calculator = PositioningErrorCalculator(\n", + " error_key='error', jacobian_key=\"Manip_Jacobian\")\n", + "soft_constrain = PositioningConstrain(\n", + " error_calculator=error_calculator, points=[workspace_trajectory])\n", + "\n", + "\n", + "# manager should be filled with trajectories and rewards using the manager API\n", + "reward_manager = RewardManager(crag=crag)\n", + "\n", + "reward_manager.add_trajectory(ground_symmetric_step1, 0)\n", + "reward_manager.add_trajectory(ground_symmetric_step2, 1)\n", + "reward_manager.add_trajectory(ground_symmetric_step3, 2)\n", + "\n", + "reward_manager.add_trajectory(central_vertical, 3)\n", + "reward_manager.add_trajectory(left_vertical, 4)\n", + "reward_manager.add_trajectory(right_vertical, 5)\n", + "\n", + "reward_manager.add_reward(acceleration_capability, 0, 1)\n", + "reward_manager.add_reward(acceleration_capability, 1, 1)\n", + "reward_manager.add_reward(acceleration_capability, 2, 1)\n", + "\n", + "reward_manager.add_reward(heavy_lifting, 3, 1)\n", + "reward_manager.add_reward(heavy_lifting, 4, 1)\n", + "reward_manager.add_reward(heavy_lifting, 5, 1)\n", + "\n", + "reward_manager.add_trajectory_aggregator([0, 1, 2], 'mean')\n", + "reward_manager.add_trajectory_aggregator([3, 4, 5], 'mean')" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "j_moves", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/examples_and_tutorials/paramatrized_builder.py b/jmoves/examples_and_tutorials/paramatrized_builder.py new file mode 100755 index 00000000..fb0e6727 --- /dev/null +++ b/jmoves/examples_and_tutorials/paramatrized_builder.py @@ -0,0 +1,45 @@ +import time +import numpy as np + +from auto_robot_design.description.actuators import t_motor_actuators + +from auto_robot_design.description.mesh_builder.mesh_builder import jps_graph2pinocchio_meshes_robot +from auto_robot_design.description.utils import all_combinations_active_joints_n_actuator +from auto_robot_design.description.builder import DetailedURDFCreatorFixedEE, ParametrizedBuilder, jps_graph2urdf_by_bulder, MIT_CHEETAH_PARAMS_DICT, jps_graph2pinocchio_robot_3d_constraints +from auto_robot_design.generator.topologies.graph_manager_2l import get_preset_by_index +from auto_robot_design.pinokla.loader_tools import build_model_with_extensions +from auto_robot_design.vizualization.meshcat_utils import create_meshcat_vizualizer +from auto_robot_design.utils.configs import get_standard_builder, get_mesh_builder, get_standard_crag, get_standard_rewards + +gm = get_preset_by_index(0) + +graph = gm.get_graph(gm.generate_central_from_mutation_range()) + + +thickness = MIT_CHEETAH_PARAMS_DICT["thickness"] + +density = MIT_CHEETAH_PARAMS_DICT["density"] +body_density = MIT_CHEETAH_PARAMS_DICT["body_density"] + + +builder = ParametrizedBuilder(DetailedURDFCreatorFixedEE, + density={"default": density, "G":body_density}, + thickness={"default": thickness, "EE":0.033}, + actuator={"default": MIT_CHEETAH_PARAMS_DICT["actuator"]}, + # size_ground=np.array(MIT_CHEETAH_PARAMS_DICT["size_ground"]), + offset_ground=MIT_CHEETAH_PARAMS_DICT["offset_ground_rl"] +) + +# builder = get_mesh_builder(True) + +# robo_urdf, joint_description, loop_description = jps_graph2urdf_by_bulder(graph, builder) +robot,__ = jps_graph2pinocchio_meshes_robot(graph, builder) + +viz = create_meshcat_vizualizer(robot) +time.sleep(1) +viz.display(np.zeros(robot.model.nq)) + + +# with open("parametrized_builder_test.urdf", "w") as f: +# f.write(robo_urdf) + diff --git a/jmoves/examples_and_tutorials/tutorial_1_builder.ipynb b/jmoves/examples_and_tutorials/tutorial_1_builder.ipynb new file mode 100644 index 00000000..febf08d2 --- /dev/null +++ b/jmoves/examples_and_tutorials/tutorial_1_builder.ipynb @@ -0,0 +1,925 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Мини туториал по Билдеру 25-01-2024" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from auto_robot_design.description.actuators import TMotor_AK80_9\n", + "\n", + "from auto_robot_design.generator.restricted_generator.two_link_generator import TwoLinkGenerator" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Кинематика рычажных механизмов полностью определяется расположением кинематических пар и связей между ними с помощью звеньев. Исходя из этого механизмы можно описать координатами сочленений и связями между ними. Зададим пространство сочленений, как вершины графа $j \\in \\mathcal{J}$. Для описания параметров сочленений, составлен вектор признаков вершин: $x_j = \\begin{bmatrix}x & y & \\mathbb{I}_g & \\mathbb{I}_{ee} & \\mathbb{I}_{weld} & \\mathbb{I}_{act}\\end{bmatrix}$, где $(x, y)$ - пара декартовых координат начального положения сочленения в глобальной системе $\\Psi_\\text{w}$, $\\mathbb{I}$ - функция индикатор является ли соединение фиксированным $\\mathbb{I}_{ee}$, $\\mathbb{I}_{act}$ активируемой и присоединена ли вершина к земле $\\mathbb{I}_g$, или к концевому эффектору (end effector) $\\mathbb{I}_{ee}$. Звенья задаются ребрами между вершинами $\\mathcal{L} \\subseteq \\{(j_k, j_m)| \\; \\forall j_k,\\, j_m \\in \\mathcal{J}, j_k \\neq j_m \\}$ и имеют два атрибута: функция индикатор переменной длины $\\mathbb{I}_{var}$ и активности $\\mathbb{I}_{act}$ звена. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Пайплайн Билдера состоит из несколько этапов, которые заключены в функциях `JointPoint2KinematicGraph`, `KinematicGraph.define_main_branch()`, `KinematicGraph.define_span_tree()`, `KinematicGraph.define_link_frames()`, `Builder.create_kinematic_graph(KinematicGraph)`. Первая функция преобразует *JP* граф в кинематический граф `KinematicGraph`. Три следующие функции являются методами кинематического графа, они требуются определения информации о структуре механизма для создания *URDF* или *MJCF*. И последняя функция собирает *URDF* по входному графу.\n", + "\n", + "Работу каждой функции покажем на примере сгенерированного механизма с двумя звеньями в главной ветке и присоединенной группой 4n6p" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from auto_robot_design.description.utils import draw_joint_point\n", + "\n", + "\n", + "gen = TwoLinkGenerator()\n", + "graph, constrain_dict = gen.get_standard_set()[5]\n", + "draw_joint_point(graph)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Для создания *URDF*, *JP* граф необходимо определить фермы (треугольники) и разделить на тела. Для этой задачи я вывел несколько простых правил и написал алгоритм для обхода графа в глубину, Алгоритм работает для плоских механизмов с вращательными парами. \n", + "\n", + "Условия для определения тел базируется на подсчете соседей у текущей вершины $j$ и у соседних и добавлен, ли джоинт в линк. Алгоритм написан так, чтобы рассматриваемая вершина входило в звено $L_j$. Для текущей вершины $j$ находится соседи $N_j$, которые не входит в звено $L_j$. Обозначим их $\\theta_i \\in \\Theta_j \\subseteq N_j / L_j$. Дальше находится соседи соседей вершин ${W}_j = \\bigcup_{i}Adj [\\theta_i]$. По этим множестам определяется структуру, которую соединяет вершины. Рассмотрим последовательно с простых к сложным случаем." + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "- $|L_j| \\leq 2$ - Из чего следует, что в звено входит два джоинта или меньше (к примеру земля). Это 1 и 2 рисунок. В таком случае сразу создается новое звено, в которое добавляются соседи $\\Theta_j$ и текущая вершина $j$. \n", + "\n", + "- $|L_j| > 2$ - представлены на рисунке 3-6. Тут принципиально разные структуры и необходимо дополнительая проверка. \n", + " - $|\\Theta_j| = 1$ - Сосед у звена один, поэтому это случа 3, 4. Их можно разделить количеством соседей у $\\theta_i$, которые входят в звено $|W_j \\cap L_j|$. Третий рисунок соотвествует одному соседу, тогда создается новое звено. Если имеет два соседа, то вершина присоединяется к звену $L_j$.\n", + " - $|\\Theta_j| = 2$ - Две соседние вершины у звена (рисунки 5-6). Так же различие определяется количеством соседей с вершинами звена $L_j$ у соседей $\\theta_j$ текущей вершины $j$. Алгоритм схож с предыдущем случаем.\n", + "\n", + "Теперь опишем алгоритм обхода графа. \n", + "\n", + "Алгоритм начинается с создания звена земли и энд-еффектора, в них добавляются все вершины, в которых включены соответствующие флаги. В стэк добавляется все вершины земли и запускается основной цикл. В цикле из стэка достается вершина, определяется предыдущее звено, собираются множества для структуры. Проверяются условия, описанные ранее. После этого в стэк добавляются соседи, если к ним не присоединено второе звено. Цикл завершится, когда стэк станет пустым. \n", + "\n", + "В каждом джоинте есть поле, которое содержит звенья присоединения. По этому полю строяться ребра в кинематическом графе. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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qlopLviIGTPadzoyVLZ/nnEtFBV8SGl1K4eqAssxulwuMjIyBqR+ERkaFChFRAaxyMhIsrOzOz9v+Qz2V0DxZ++TOryQr84GZ1T3Y5xO+OpsSB1+mJLPPuBABWzeF2jPzs4mMrKH98xFRHpAK+WIiAxyJ1opJ2nspSQdY6WcooIPKfnsA62UIyIDQoFSROQ0cNttt7Fs2TIAQmwwb7pZMWd0vJmXMtKVhD00Ak9LIw01xZRWt3JAa3mLyABRoBQROQ3U1taSmZnJjh07ANNTOfVs8xoZZ+antNnA6zUDdw5Vmdvcm/cFeibT09PZsGEDLpcriN9ERM5ECpQiIqeJwsJCZs2a1RkqO6QlmEnLQ0PM1EAHKwMDcDqkp6ezatUqUlJSBrBiERkqFChFRE4jtbW13HvvvZ23v3siKyuLBQsWqGdSRPqNAqWIyGkoPz+fJ554gpycHGpra49qd7lcZGdnc//992sAjoj0OwVKEZHTWENDA3l5eRQXF+N2u3E6nSQlJZGRkaGpgURkwChQioiIiEivaGJzEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHpFQVKEREREekVBUoRERER6RUFShERERHplf8Pb3mpxTV+RlEAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from auto_robot_design.description.mechanism import JointPoint2KinematicGraph\n", + "from auto_robot_design.description.utils import draw_links\n", + "\n", + "kinematic_graph = JointPoint2KinematicGraph(graph)\n", + "draw_links(kinematic_graph, graph)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "В итоге на выходе функция мы получаем кинематический граф" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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jODnn3/m888/p1+/fiU+X0RqtrVr19K/f38WLFhAr169AMjNzWXdunW89dZbfP3114wZO5Zr73qcd3/ayfr9qVgtRlFwc0Vh+06NI5jYqzmD4mNUJ08qTMFO5KTCkbqNGzdy1VVX0aJFCyIiIli4cCHPP/88Y8eOJS4uDtM0GTduHDNnzuTHH39UWQQRL/X0008zffp0NmzYQGpqKj/++CMvvfQSDoeD5195k++O1WFpYgqWk6Nx56vw+QNaxzBlWBvqhQa474uQWkfBTmqtkqZck5KS6NmzJyNHjuTZZ58FICIigszMTO644w4eeeQRGjRoADjX4dx3331ERERUdddFpIoMGjSIHTt2UL9+ff766y+uu+46Bt/5OI/M30x2gb1cI3RlsVoMgnytTB3ejsFt49x2XaldFOykViosTQLw6aefMnDgQKKjo5k3bx7ff/8977zzDg6Hg0svvZT27dtz5ZVXMmbMGO69917uuusuWrRoUXStsnbNiUjNlZOTw+zZs9m3bx/9+vXjL0tDnl2YiAFUxotn4XUfHxzPhB4qmSLlp2Antdodd9zBtGnTmDRpEg899BD+/v6sW7eOAQMGcNttt3Ho0CFmzZpFREQEHTp0YNOmTYwbN45p06YpzInUMu+v3MVjb80lZfZkAMK730REz9EuPTd376ai57nqog6XsW396nL3U2o3nTwhtVZaWhq7du0iMDCQ3bt389RTT5GTk8OAAQPIy8tjx44dXHvttURERGC32+nTpw+ff/45//d//6dQJ1LLLNycxLMLE6v0noeow8LNSVV6T6n59OoktVZ4eDhPPvkkY8aMISAggK1bt/LYY49x//3307JlS7Zv387+/fs5cOAAixcvZu7cuTz88MPExsa6XJFeRGq+wxm5PDxvExXZr+oXdxFxE94os93xxe+Qt38LACFt+vPw/E10aVpXde/EZQp2UisVngHZoUMHBg8eTNu2bQkODub1119nypQpvPzyy7z++utcf/31zJ49myNHjvDhhx8SGxsLoFAnUkuYpsnkL7eQXWCv0Jo6i18AftFNz9nGkZtJ3qFtAPjUicO/YWuy8+1M/moz08Z0VikUcYmCndQq69atIzo6mkaNGgEQHBxMq1atePbZZ9m8eTMhISG8+OKL3HPPPbz00kts376drVu3EhsbS+fOnU/bdCEi3m9RQgpL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vaeHN1dHss+lImvW3BXsLBbn+raSNi2Eh+vnuiaICvGnb8t69G3pvUOjGzduZO7cucyZM4dWrVrx6quvKtRVEwp21VxennP3a3Kya+3btIFrrtEvf6leHA4HDocDwzCwWCynhbczi5oWFBSQmppKdHR0KdeCxERYudL9/axIsNu9u3zPCQs7O7gVHlKvozelurLZbMyZM4dPPvmErVu3cvfdd/PAAw8AsG7dOn755RcuvPBCmjdvTosWLbDb7UU/91I1FOyqsYICmDMHDhxwrX3Lls5pJP38iCf8+eefLF26lIkTJ+Lv73/aL3KLxVLqL/Y9e/bw1ltvMWrUKG6//XY2bNjARRddxKRJk/j73/9+VnvTrLzTE3JynOvxyluLrbR1dkFBZ+829ZZivVI7+fj4sHHjRlJSUvjmm29o06YNycnJ3H333cyfP5/WrVuTmppKcHAwq1evpq4nF6HWUlpjV42tWwdff+1a2wsucB4Vph1u4ilLlixh0KBBRVOrxSUmJvL+++/z22+/ERsby3333cfll18OwJYtW2jXrh2XXHIJt956K/369WP27Nn8+9//5ocffqBv375nXe/AAXj//cr5OiZMcB46Xx5798Jvv9WuYr1S+xQWLrbb7VhPDitv376d/v37ExISwltvvUX79u1JT0/n3nvvJSwsjBkzZrB//34ee+wxbr/99qKfe6k8igHVWMeOzuN/fv753O0aNYKRIxXqpOIcDgcbNmzAx8eHdu3aleu5q1evxs/Pj8suu4xDhw7RunVrFi9eTFpaWlEJhKuuuoodO3bQt29flixZQq9evWjUqBFRUVFERUUxatQowsLCePLJJ1mzZg1vv/027du3P+tdf2Wed3rsWPmDXZMmzj8i3qxw1L3wvw6Hg9dee41GjRrxzTffUOfk9uw6deowYcIEli1bxocffsjMmTNJTU1l7dq1CnZVQFGgGjMM6N8f/P1h6dKS28TFwejRmtaR87NixQqmTJnC4MGDueeee8jNzWXUqFH069ePt956q1zXWrhwIfn5+bRs2ZLJkyfTtm1bAKZPn862bduYN28enTt3BiAjI4NnnnmG6dOn07hxY4KDg+nUqRNhYWFFxU379u3Ld999x4EDB84KdoGBzj+u7nZ1RWGxXs1hiJybYRiYpkl2djZ//PEHffr0oU6dOqedOrFlyxbmzJnDb7/9RtOmTfnnP//J1Vdf7eGe1w4KdjVAjx7O4Pbtt6d/PjoaxoyBgADP9EtqNtM0efzxx/njjz9o1KgR+fn5BAUF0apVK2w2G7m5uQSU45tr9erVNGvWjMsvv5whQ4YUff7777+nT58+dOzYsehzN954Iy+++CIJCQk0btyYxo0bc/DgwaKpHoDo6GgyMzPJzMws6m/xTRd16zp3x5ZXcHDJ55zWqeM8A1VEymYYBgEBAWRmZhJ5cgi9MNTNmDGDqVOn0rhxY6688kpGjhxJCx1UXmUU7GqILl2c4e5//3OOKNSpA2PHOl+kRM7HjBkzaN68OeHh4WRlZXHs2DHi4uKIjo4mJSWF48ePU79+/XJds0mTJqxbtw44tR4nMjKStLQ0TNMs+lxcXBy+vr4cPJnM2rRpw7Jly9izZw8XXHABAAcOHCAzM5M2bdoAZ5dBiYoqPdj5+5d+SL3eCIlUnN1ux8fHh8cee4zJkydTUFBAmzZt+PTTT9myZQuDBg1i/PjxDBo0SDtiq5iCXQ3SoYMz3C1ZAjff7CyXIHK+3n33XZ5//nl+/fVXFi9ezNGjR4mLi6NJkyZs376dI0eOUL9+/XKd+9i6dWsSExOLSpsAdOzYkenTp3P06FFiYmIA5+HihfcD6Ny5M2+//Tb3338/zz77LDt37mT27NlceeWVp03PFrLbnSPW9eqVXDIkOFglf0QqU+HmiREjRlCvXj0ef/xxnn32WWJiYrj11ls1SudBCnY1THw8XHSRNkrI+SkMSK+88goxMTH07t2b7du3k5WVRXJyMm3btqVx48ZkZ2eTkpJy2nNc0aZNGxYvXkx+fj5+fn4YhsGgQYN4//33efTRR3njjTew2+1MmzYNh8PBVVddBVD0AtCzZ09uuOEGDhw4wLBhw3jyySeBs0frLBbncXk9erjrX0ZEyqvwd0Pv3r2pV68eAwYM4Pbbb2fQoEFFwU+qnuJBDaRQV3uYpvMs0OJnnFbkVBHDMDh8+DBr167l5ptvBqBLly689957RWvZWrduTX5+PklJSeW+/mWXXcbu3btZvXo1ffr0ISMjg/bt2zNlyhQee+wxevbsyaFDh4iMjOTjjz8uCmxNmjTBMAz69OnDnXfeSWAZZ2RpNE7E8wzDKCp98tJLL5GXl0d8fHyp7cvzJlHOnyKCiIeZpvMs4JIOqD9+HGy209t36+bcvXm+fvjhB3744QduuOEGHnvsMX755Rc2b97M8OHD6dChAytXrsRisZB88riT8qyPueSSS7j++uu55ZZbOHbsGB06dGD58uVcf/31NG/enM2bN9OgQQM6dOhQtOAaoF69ekRERLB79246deoEONfwnHlKhYhUL4Ujc82bNy+1TWH4+/rrrxk4cGCZb9ykYhTsRKpIbm7ph9Tn5bl+nWPHKhbscnJysNlsPPDAAzRr1oyLLrqIffv2cemll/LCCy8QGBhInTp1OHbsGHa7naysLI4ePcq+ffsIDg7mkksuKTFsFb4bf/PNN9m+fTv16tUrmmJ1OBx07NjxtJ2xxQUGBmKaJr///jvDhw8H0FSOiBew2WycOHGCCRMmsGDBAv75z3/y8ssve7pbXk0nT3jAnj2wdWvFptSkeioocBaVPjO4HTvmHJVzh8GD4dJLz//5WVlZZGVlERERgd/JAojXXXcdUVFRvPLKKwQHB3P11Vfzyy+/EBcXR0pKChkZGdjtdv7v//6Pp556itDQ0KIzIMsTwAo3VZQUDH/44QeaNm16znf+IlIzFI7SzZo1i3vuuYfjx48Dzunbn376iZ49e3q4h95LI3ZV7MABmDUL8vOdZ1IOHaqzXWuizExISjo7vKWnV36B25O/H89bcHAwwSfr5BSWH/H19WX37t0cP36c4OBgbrjhBuLj42nWrBnt27endevWp02dwqmaVQAnTpxgx44dxMbG0qhRo9MKlRZ3rmnd/v37V+wLE5FqwWazkZaWxt///ne+/PLL0x4zTZNx48axceNGQkJCPNRD76YRuyqUkgIffuickivUujUMH64NETXNypWlnwZS2S66yHkusDsUBrvCadbIyMhzLnDOysri559/ZvHixezYsYO//vqLI0eOkJeXR/369Zk6dSrXXXedezonIjXSZ599xj/+8Q+OHj1aapu77rqLN998swp7VXso2FWRo0edoa6k6bjmzZ1nvarqfdXLznaG6vIeyZaYCHPnVk6fyhIZCffcU/n3sdvtgHOUzTRNLBYL+/fv54UXXija5NC6dWsuvPBCGjduTN26dfHVN7FIrWa32+natStr164ts+2SJUsYMGBAFfSqdlGwqwKpqfDBB85putI0buwchVFVfPfLzy9900JOjnPE9OSxpi47fBjKeZSq21gs8OijoL0FIlIdJSQk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Su22Z88emjVrxvr16+nQoYOnu+MR+jcQb+LK665pmmRtcRYvNvwCCWl3hdv7Ufi6uzU5nVax3n/8WK1ZYj5z9V6slsqbXzdNB/asE+Ts2cjhec+SfTLY+dRtSOAFp68TMDD4cste9u0rO9QVOt+pTXczDIiIgObNoUsXuPJKGD0aJk1yjirefbfzJI0uXdx/b6l+xo0bh2EY3HHHHWc9dtddd2EYBuPGjXPpWo0aNSIpKYk2bdq4uZci4gmuvO4WHN2LIycdcG6WsPhXznmLVovBjApUw6hJas2I3eKEZLeeLFHowFu3Yk8/XOJj1rB6RA975Kw1eSYme2yHaHEixuX7/P57Jnl55atHkpVl4fDh80t3QUEOwsPtREQ4/4SH207+147PGd81+fmQlOT8I96nfv36RERElLrwuFGjRsyZM4dXXnmFwJN1fHJzc5k9ezaNGzd2+T5Wq5XY8u64cbP8/Hz8qunCTtM0SU1N5dChQ57uiohLvt10oMzX3YLDe4o+9ottUWl9sTtMFickM2VY20q7R3VRK4LdkYw8jmbml93QXSxWwruPJOySIaW++8i32Hj342k4sm0uXfLtt9cA359HZx4BSnuhygOOlfDn+MnHROC9997jlltuwbeUs+86derErl27mD9/PqNHOwt9z58/n0aNGnHBBRcUtfv+++959tln2bJlC1arlW7duvHaa6/RvHlz4OxpyOXLl9O3b1+WLl3KQw89REJCAh06dODDDz+kZcuWLvX92Wef5b///S85OTmMGDGCqKgovv/+ezZs2AA4RxxTU1O57LLLeP311/Hz82PPnj1s3ryZe++9l19//ZWgoCCGDx/O//t//4+QkwcK9+nThw4dOvDqq68W3Wvo0KFERETw0UcfAdC0aVMmTpzIjh07+Pzzz6lTpw6PPfYYEydOLHrOb7/9xu23305iYiJt2rTh0UcfLfVrsdlszJs3j7///e8ufe0inmQJiqDRpE/KbGc/OVoHYA089zRp/pG9lFYwxSc8Fovfuc+IPZqZz9HMPKKqqOSYp9SKYLflYFqlXTtm5DOY9gIwTRw5GeQeSCBz/bek/TIX2/FD1B10Fxa/kqsR+8UGk7vL1b6d77xqCuBPyQEu+zyvKXK68ePH8+GHHxYFuw8++IBbb72V5cuXF7XJysrin//8J23btiUrK4snnniCYcOG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W3ZYiwrx8/pQB7Uk2AEMjI9l7tr9JU7J5mxfTc72shctR179f0Uf5x1MJO9g4jnbB7cdQN2Bd2Ccsc7AajEYGO/Zo5NEarqLL76YvXtLPvvx3Xff5brrruPbb7/l2WefJS8vj5YtWzJv3jwGDDj7jZaIuN+5XndLEtF9JH71mnHix+nYThwib/8W8vafe1OSf8N4IvqMw7/+uU+jqU2vu7Um2I3t2oRZv527XpYrglr3xBpal9y9m8g7kIg98xj27DRMewEWvyB869bHv0E8wW36nraNuzi7w+TmbmevuxMR13377bcllhgBiImJITAwkKVLK28htoic2/m87gZdeBmBzS8hZ/sacnavI+/gVuxZJ3DkZmL4+GEJCMUvujF+cRcR1KoHflGunUddm153a8Uau0LXvb2KDftTPbJDtpDFgA6NIph/Z3fPdUJERKQK6HW36tWKXbGFJvZq7tFvLnBut57Yq7lnOyEiIlIF9Lpb9WpVsBsUH8OA1jFYq/J8sWKsFoMr4mMYFO/6WZMiIiI1lV53q16tCnaGYTBlWBuCfK1U9beYAQT5WZkytK1XlI0QEREpi153q16tCnYA9UIDmDq8HVU9MmwCU69rR3So92+1FhERKaTX3apV64IdwOC2cTw+OL5K7/n44HgGt42r0nuKiIhUB3rdrTq1MtgBTOjRrOibrLIGaAuv+8Q18UzoUXLpExERkdpAr7tVo1aVOynJws1JPDxvE9kFdreeJ2u1GAT5WZl6Xbta+Y5BRESkJHrdrVy1PtgBHM7IZfKXW1iamILFoEJbswuff0V8DFOGtq11c/siIiJl0etu5VGwO8k0TRYlpDBtxU7W7UvFajHK9U6isH2nxhFM7NWcQfExtWoXjoiISHnodbdyKNiVIDEpnZmr97I4IbnoAGOrxaB4GR6HSdE3YFSIHwPjYxnbtQmt48I80WUREZEaS6+77qNgV4ajmXlsPphGQlI6Gbk28m0O/HwshAb4EB8XRtsG4USF1O5hXxEREXfR627FKNiJiIiIeIlaW+5ERERExNso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJdQsBMRERHxEgp2IiIiIl5CwU5ERETESyjYiYiIiHgJBTsRERERL6FgJyIiIuIlFOxEREREvISCnYiIiIiXULATERER8RIKdiIiIiJeQsFORERExEso2ImIiIh4CQU7ERERES+hYCciIiLiJRTsRERERLyEgp2IiIiIl1CwExEREfESCnYiIiIiXkLBTkRERMRLKNiJiIiIeAkFOxEREREvoWAnIiIi4iUU7ERERES8hIKdiIiIiJf4/0EBi6/tol5gAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from auto_robot_design.description.utils import draw_kinematic_graph\n", + "draw_kinematic_graph(kinematic_graph)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Следующий этап -- определить главную ветку и найти span tree. Главную ветку будем определять по геометрической длине звеньев и актуаторам. Это означает, что мы отдаем предпочтение пути от G к EE, которая включает самые длинные звенья и максимальное количество актуаторов. Этот путь определяет функция `networkx.shortest_path()`, которая ищет кратчайший путь взвешенного графа. Веса рассчитываются с помощью функции `utils.weight_by_dist_active()`. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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rJG66GhffRUAEBwIdgAaxW63q7i4WHPmzNHx48fVvXt3TZw4UWlpaUpMTNSpU6d03XXX6YMPPtD48eO1fv169erVS5JqBEHJGrVLSPDHVwIATR+7YgE0ykcffaSuXbsqIyNDnTp10qJFi3TnnXfqq6++UseOHVVRUaHdu3crMzNTixYtUq9eveRwOPS3v/1Nmzdv9nf5ABBUCHYA3HK5XHJ+dyLw98+j+8c//qGpU6dq3bp1evjhh/Wb3/xGy5Yt07PPPqsLL7xQQ4cOlcvlUnx8fFUf77//vhYsWKAvv/zS518LAAQzgh2As6oMcTabTXa7XWVlZXK5XFXP7927V3v37tX111+v7OxsTZgwQVOmTNH06dM1c+ZMNWvWTLfffrtiYmKUlpam6667TgMHDtS0adN0zTXXaPLkyf760gAgKBlmXcfBAwhZZ65/Ky4u1j333KOVK1dq0KBBmjRpkq655hodOnRIF1xwgbp3766srCxNmjRJ999/v3r06CFJOn78uFq1aqW8vDx98MEH2rFjh1q2bKm7775bdru9xvsAABqHYAegypnHlkhSUVGRVq5cqeLiYi1YsEDXXnutFi5cqF27dmnZsmVKT0/X1VdfrY8++kgrV66sdvDw6tWrtXz5ct19991q0aJFjfdyOBxVu2kBAJ7BVCwQwt544w0dOXJEkrWOzjAM2Ww2lZWVSZJeeOEFTZw4Uc8884yeeeYZTZs2TfPnz1daWppmz54tSZo1a5by8/P18ccfa9euXSoqKtLixYt13333qbS0VGFh1Tffu1wumaapsLAwQh0AeBgjdkCIWrdunW688UZNmDBBTz31lBwOh8LCwvT4449ry5YtWrhwoTIzMzVr1ixJ0qpVqyRZo3r//e9/dd1112nHjh264IIL9Nhjj+nVV19VRUWFoqOjtW/fPj3wwAN64IEH/PklAkDIIdgBIaqoqEi///3v9f777+v9999X+/btZZqmRowYodtuu01TpkxRaWmpnnvuOf3qV7/SwYMH1bJlS0nSsWPHdM011yg+Pl5LlixReXm5jh8/rl27dik3N1fXXXdd1fu4XK6qqV0AgHfx0xYIQaZpqlmzZrrkkksUFRWlv/71r5KkNWvW6NixYxo3bpwkKSoqSpdffrnS0tL0u9/9ruq1ycnJmjVrlj744APt3LlTERERateunS655JKqUOdwOKqt1wMAeB8/cYEQVLm2bdCgQbr44ov13nvvKScnR88//7zGjh2rpKQkVVRUSJK6du2qG2+8Ua+88opOnjxZdQ/s0KFDdeWVV2rfvn21vgdr6ADA9wh2QIgyTVMxMTG69NJLFRcXp9mzZ+vEiRO6/PLLJUnh4eGSpMjISI0bN04dO3bUI488UvX6tm3b6t1339X48eP9Uj8AoCbuigWCUEPOhhs4cKBGjx6tf/zjHzp58qQOHDigN954Q1dffbVGjx6txMREnX/++Ro/frzefPNNlZeXKyIiour1Tqez6kw6AIB/sXkCCCKVR4nUN2hVBsDly5frD3/4g9q3b6+7775bc+fO1bp162QYhnr06KFnn31WrVu3VlxcnJe/AgBAYzBiBwSBylGzyo0Khw4d0pYtWzR06NCqnax1GTx4sC688EItX75cqampevXVV5Wbm6sVK1aoqKhIaWlpVW0rj0UBAAQeRuyAJujXv/614uLidN9991V73OVyafbs2Zo3b55atGihhIQEzZ07V+PHj3d77MhHH32ku+66S2PGjNGzzz7r7S8BAOAF/NoNNEFt27ZV165dq/5eUVGhO+64Q+np6ZKkLVu2qKioSE8++aRmzJihvXv3Vm2G+L7K6dgBAwZoypQpVfe8fv95AEDgY8QOaMLy8/MVHx+v0tJS3XTTTXrjjTf085//XHPnzpVkTcn27dtX999/f43RvTNxiDAABAd+kgNNgMvlqvHY22+/rS5duujYsWOKiorS7NmzFRsbWzWSZ5qm2rVrp5kzZ+qpp55SYWFhrX07HA5CHQAECX6aAwHk+wPoLpfrrKNpw4cPV0VFhf79739Lkvr06aMJEyboueeek3T6EOKf/vSncrlcmj9/frX3cTgcklS1EeLpp5/WnDlzlJeX5/GvCwDgGwQ7IABUBroz17I5nU7ZbDbZbDZlZ2dr7ty5WrlypY4ePSpJSkpK0t13362nnnpKJ06cUGRkpO68805lZWXp/fffr+q3ffv2mjp1qn7+85+rpKRETqdThmFUBbrnnntOHTt21J///Gd169ZNCQkJPv7qAQCewho7IIC8/PLLOnDgQNUND4cPH9Z9992nJUuW6IILLlBubq5iYmK0evVqxcXF6cSJEzrvvPP0yCOPaPbs2SorK9PNN9+s7Oxsbdy4sarfo0ePat26dbrqqquqHnvmmWf0xz/+UfHx8brvvvs0ZcoURUZG+vxrBgB4DiN2QIB48cUXdcstt+g///mPPvroI0nSggULVFFRoU8//VTr1q3Trl27tGfPHv3pT39Sfn6+WrZsqTvuuEN//vOfq0btZs2apc2bN+vNN9+s6jslJaUq1JWUlGjAgAF64YUXNGfOHG3dulW33HILoQ4AggDBDvCh2gbInU6nJKl58+aSpI4dO+qtt96SJF144YX64x//qO7du+vdd9/ViBEjVFxcrHnz5mnXrl2SpLvvvlvFxcV65ZVXJFlr7e655x7Fx8fX+l7R0dF66aWXtG3bNt18880EOgAIIgQ7wIcq19D997//1fLly6s917VrVw0bNkzx8fHKysrSqlWrNG7cOKWmpuqee+7R7NmzNWbMGB0/flw2m03//ve/lZ+fr6SkJE2dOlUPPPCATp06paioKD355JMaO3ZsjfevvGqsT58+1e57BQAEB4Id4EMul0s33nijrr32Wl177bXatGlT1XOHDh1SSkqKpk6dqrKyMi1evFiS9Pnnn2vFihX6/e9/rzlz5ig2NlYdOnTQBx98oB07dkiybqJ44403qm18qO2IFABAcCPYAT5ks9l01VVXacSIEUpMTNRjjz2m559/XpI0cOBALV26VP369dNll12mjRs3auvWrdqzZ48OHjyooUOHSpK2b9+u1NRU7d69WxkZGXI6nWrevLl++MMf1ngvAEBo4Sc/4GOXX365WrdurYsuukijR4/Wc889p5dfflkREREaN26ctmzZouuvv16GYWjhwoUaM2aMysrKNG3aNN1999360Y9+pEmTJmn//v168MEHq6ZXAQAg2AFe4nRKtR0mFBkZqcmTJ+vgwYPq2rWr5syZoxdffFEPPfSQ8vLyFBERoa5du2rIkCHauHGjcnJytHz5cnXo0EGbNm3S3LlzNXnyZLVv314SU64AgNM4xw7wsIoKadMm6bPPpBkzpKgo6YxzhyVJZWVl+vGPf6xmzZpp0aJFevfdd/WnP/1Ja9as0XPPPafbb79d27Zt04033qjBgwdr3rx5cjqd1UbnTNOsdqAxAABh/i4ACBbl5dLGjdK6dVJRkfXY6tXSpZfWbBsZGambb75Zjz/+uBYvXqyrr75aLVq00Ouvv66JEydKkvr27av/+7//06BBgySd3tFaGfAIdQCA72PEDmik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z91gEVLBbt6q3Y0+L6e+jPDT5+iYjvLTj0va6dx91mAXH2/thu3XzxqtAwCgqarP527+Z2/LdJRJkhJHTnUb6s5khEWoWffhdbaxGVYdoRLsbP4uwFeyjuRry/48n4Q6SSrKzKj6c1jL09+kpqTjZp6+dVU/5yQhQbrySumuu6SBAwl1CD179+6VYRjatm2bv0vxG/4bIJjU53PXNE0V7fxIkmRERCu296Uer8NlSlv252nX0TrOFwsiIRPsXtmwT3ab9+bXTdMlZ9G3Ktn7uXIWP6ri74JdWIv2iu5SfZ2AIUNZzn2SpObNpQkTrEA3YACBDk3LtGnTZBiGbr311hrPzZw5U4ZhaNq0afXqKzU1VUeOHFHPnj09XCUAf6jP525F7j65SqzAFdk+XbZI75zvZbcZWrB+n1f6DjQhEyM+zDzq0ROuKx382y1y5ufU+pw9PlmtJv2yxpo8U6b2uw7rZ71i1LVrqex2adcuj5cGeETbtm2VmJh41oXHqampeu211/T0008r+rvt26WlpVq0aJE6dOhQ7/ex2+1KSfHvVEl5ebkiIiL8WsPZmKapvLw8HT582N+lAPWydPtBt5+7FTl7q/4ckZLmtVqcLlMfZh7V45N6ee09AkVIBLvjBWXKLSx339BTbHYlDLte8QN+dNbfPkrl0LU39per+FStzwOBYv78+brpppsUfpZdPP369dM333yjN998U1OmWOdBvvnmm0pNTVWXLl2q2v3vf//To48+qp07d8put2vIkCF65plndN5550mypiE7d+6srVu3qm/fvvrkk0908cUXa8WKFbr//vuVmZmpvn376p///Ke6detWr9offfRRPfvssyopKdF1112npKQk/e9//6ua6pw2bZry8vI0aNAgPffcc4qIiNDevXu1Y8cOzZo1S+vXr1dMTIyuvvpqPfXUU4r97gLm0aNHq2/fvvrzn/9c9V4TJ05UYmKiXn75ZUlSp06dNGPGDH399dd644031Lx5cz388MOaMWNG1Ws+++wz/exnP1NWVpZ69uyphx566Kxfi8Ph0OLFi/XTn/60Xl874E+2mESl3vVvt+2cJaenR+3R8XW2LT++T2c7MCUsIUW2iLrviM0tLFduYZmSYoP76JOQmIrdech74an19XPUZvpf1OaW59R68uNKGPET2WMSdGrd6zr54d/lKi8562u9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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "main_branch = kinematic_graph.define_main_branch()\n", + "draw_kinematic_graph(main_branch)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "По полученному графу необходимо получить остовное дерево (span tree) для дальнейших алгоритмов. _Википедия:_ Неформально говоря, остовное дерево получается из исходного графа удалением максимального числа рёбер, входящих в циклы, но без нарушения связности графа. В общем, граф содержит несколько span tree. \n", + "\n", + "Необходимо задать правила для получения удобного span tree для последующих алгоритмов.\n", + "\n", + " - Нельзя разрывать главную ветку\n", + " - Удаленные ребра в среде моделирования будут задаваться, как ограничения в системе (`equation`, `constraint`). \n", + "- Нельзя разрывать ребра, в которых активные кинематические пары. В системе нельзя поставить актуатор на ограничения. \n", + "- Желательно разрывать кинематические циклы при присоединении к основной кин. цепочке. \n", + "- Один из листьев дерева должен быть *EE*.\n", + "\n", + "По данным правилам рассчитываются веса ребер, расчет можно посмотреть в функции `utils.calc_weight_for_span`. А дальше алгоритм из библиотеки `networkx` ищет span tree с максимальной суммой весов. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAHWCAYAAAD6oMSKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB900lEQVR4nO3dd3hUZdrH8e/MpBFSCCQkkV6khCK9SC9SLSA2QCw0e0NdBdu7a1mxYV1FRVQEUURsiCAgoFSlCCGhQwgQQg3pbea8f4wzEgkpkMwkM7/PdXltmHnOmRv2nJx7nnI/JsMwDERERESk0jO7OwARERERKRtK7EREREQ8hBI7EREREQ+hxE5ERETEQyixExEREfEQSuxEREREPIQSOxEREREPocRORERExEMosRMRERHxEErsRERERDyEEjsRERERD6HETkRERMRDKLETERER8RBK7EREREQ8hBI7EREREQ+hxE5ERETEQyixExEREfEQSuxEREREPIQSOxEREREPocRORERExEMosRMRERHxEErsRERERDyEEjsRERERD6HETkRERMRDKLETERER8RBK7EREREQ8hBI7EREREQ+hxE5ERETEQyixExEREfEQSuxEREREPIQSOxEREREPocRORERExEMosRMRERHxEErsRERERDyEEjsRERERD6HETkRERMRDKLETERER8RBK7EREREQ8hBI7EREREQ/h4+4ARESk4jmelkPs4TPEHU0lNSuPPKuBr8VESBVfYqJCaFkrlIhgf3eHKSL/oMROREQAiE9KZda6BJbEHeVEei4AFrMJswkMA0wmsBlgtRkAhAf5MSAmijFd6tE8OsSdoYvIX0yGYRjuDkJERNzDMAwWxyUzfeVeNiemYDGbnIlbSTjat6tbjYk9GzEwJhKTyVSOEYtIUZTYiYh4qWNp2UxZEMvS+GTMf/XGXSjH8f2bR/LC8JbUDA4ou0BFpMSU2ImIeKGF25J4fP5WMvOspeqhK47FbCLQ18KLI1oztFV0mZ1XREpGiZ2IiJf58Ld9PLcwHhNQHg8Ax3mfGhrDuO4NyuETROR8tHhCRMSLPPrWHF65fzQAod1GUq3H6As+V9aBLWTE/kLOoTisGafAbMESWA2/mvUJqNeGf+dmASi5E3EhJXYiIl5i4bYkZq1NuOjzWLPTObnwdbJ2rzvnvfycTPJPHyFz5xr8azXj2YVxRIUGaFhWxEWU2ImIeIFjadk8Pn/rRZ/Hlp3BsblPknt0DwBVGnUksHlPfMOiMQwb1jPHyEnaTebO1YB9WPbxr7fSqX511b0TcQEldiIiHs4wDKYsiCUzz3rR5zr183v2pM5sIfyqh6navGfBBrVjqNqiN2H9xoNhwwAyc61M+WYb79/cXqVQRMqZthQTEfFwi+OSWRqffNGrX7MTt5Ox/RcAQi+/8dyk7iwmkwmT2QLYCxr/HJfM4rjki/p8ESmeEjsREQ/3/qq9mMugoyxt0w8AmPyqENJpeKmONZvscYhI+VJiJyLiweKTUtl0MOWiig8DGNY8snavB6BKw/aY/arYX7dZyT9zjPwzxzCseec93mbApoMp7DiaenGBiEiRNMdORMSDzVqXUOptwgqTe2w/Rr59/1j/S5phTT/N6ZWfkLnjN4y8bABMPn74121F6OU3EVC7+TnnsJhNfLo2gReGt7qoWETk/NRjJyLiwZbEHS2TnSXyTiQ6fzasuRyZcQ8Z25Y6kzoAIz+X7H0bSZ79GKm/f3vOOaw2gyVxRy86FhE5P/XYiYh4qONpOZxIzy2Tc9my0pw/p/z2OVjzqNKoI6E9RuMXXg9bTgaZO9dweuXHGDmZnF72Ib7Va1GlUYcC5zmRnsuJ9BzCg1T6RKQ8qMdORMRDxR4+U2bnsp3VM4c1jyqNOxFx3VP4RzXG5OOLpWo1gtsNoeZ1z4DJDBicXjGTwnat3FaGcYlIQUrsREQ8VNzRVCxlsRwW+/y5s4X1GYvJdO4jJKBOCwKbdAUg73gCeccL7nRhMZuIS9ICCpHyosRORMRDpWbllUmZE8C5ChbAJzQS3xq1z9s2oGE758+5SbsKnscEadn5ZROUiJxDiZ2IiIfKsxoUMhJ6QXxCwp0/W4LDi2gJPme9b808d9g1N99WNkGJyDmU2ImIeChfi4my2sHLN7ze338wiknMzn7/r90nzubno0ePSHnR3SUi4qFCqvhedGFiB5/QmlhCIgDIS0kqsm3e6b9LmvgE1yjwns2A4AAVZBApL0rsREQ8VExUSJnUsHMIbHo5ALaMFLIPxZ+3XeauNc6f/Wu3KPCe1WYQEx1SZjGJSEFK7EREPFTLWqFler6QDtc4V8eeXjodW272OW3SY38h5+A2AKo06lhgbp5DqzKOS0T+pv5wEREPFRHsT3iQ33mLFOce20/61qXFnse/Tgy+YZfgE1qT0B6jSfllJrlH93D000mEdB6Bb0Q9bNkZZO1aQ9rmRQCY/AMJ6zf+nHOFB/mpOLFIOVJiJyLiwQbERPHFH4mFDslm7V5H1u51xZ6jxpAH8Q27BIDQziOwZaWRum4+eScOcnLhtHPamwOrUXPEE/hWr1XgdYvZxICYqAv8m4hISSixExHxYGO61GPOhoNles6w3rcReGln0jb9SPahOKzppzD5+OFb/RKqNO5MSPurMAdUPec4q83glq71CjmjiJQVk1HYfi8iIuIxrn13NVsSU8psheyFMJugTZ1qfH1XN/cFIeIFtHhCRMTDTezZyK1JHdjLnEzs2ci9QYh4ASV2IiIebmBMJP2bR5bZvrGlZTGbuCImkoExkW75fBFvosRORMTDmUwmXhjekkBfC65O7UxAoJ+FF4a1wlRW22CIyHkpsRMR8QI1gwN4cURrXD0iawAvXtuaiGCVOBFxBSV2IiJeYmiraJ4aGuPSz3xqaAxDW0W79DNFvJkSOxERLzKuewNncldeA6OO8z59ZQzjujcop08RkcKo3ImIiBdauC2Jx+dvJTPPWqb7yVrMJgL9LLx4bWv11Im4gRI7EREvdSwtmykLYlkan4zZxEWVRHEcf0VMJC8Ma6U5dSJuosRORMSLGYbB4rhk3l+1l00HU7CYTaXqwXO0b1e3GhN7NmJgTKRWv4q4kRI7EREBID4plVnrElgSd5QT6bmAPXE7u/ydzcCZ+IUH+TEgJooxXerRPDrEHSGLyD8osRMRkXOcSM9h2+EzxCWlkpadT26+DT8fM8EBPsREh9CqVijhQRpuFalolNiJiHiB1NRUTp8+TVRUFP7+SshEPJXKnYiIeCDHd/YjR47wn//8h4YNG3Lrrbfy+uuvuzcwESlXPu4OQEREyp7NZsNisTBp0iROnjzJY489xsmTJ/nvf/+L1WplypQp7g5RRMqBhmJFRDzU4cOHad68OevWrSMmxl6U+IMPPmD69OksXryYGjVqABAbG0teXh5t27Z1Z7giUgY0FCsi4mEc39fnzJlD586dadCgAfn5+QBcc801pKWlsXr1amf7CRMmsGXLFneEKiJlTImdiIiHMZlMGIZB1apVqV+/Pnl5efj4+GCz2ahZsyYjRoxg6tSpAKxcuZL169dz6623lkss+fnw559gtZbL6UXkHzTHTkTEgxiGgclkwmQyMXDgQIKCgggJsdeYM5vt3+UnTJjAjBkz2LlzJ1OnTmXcuHGYzWby8/Px8Smbx0JmJvzxB2zYAOnpYBjQpk2ZnFpEiqA5diIiHsRmszFv3jxuvPHGAq+fnbRZrVZGjRpFlSpVmDVrFocPHyYqKgqbzeZM/i7UqVOwbh1s3gx5eX+/HhkJd94J2pRCpHxpKFZExIN8++23vPPOOwCcOnWK7OxsAOdQbG5uLhaLhSFDhvDpp59y8803ExUVhdVqvaik7sgR+PJLeOstey/d2UkdQHIy7Nt3wacXkRJSYici4kF69erFvHnzAHjttdcIDAzkoYceIjExEbPZjJ+fHwBXXHEFV111FZMnTy6Tzz10COLi7EOu57NmTZl8lIgUQUOxIiIeauPGjfz0008sWLCA3bt3c8UVV/DYY4/RsWPHAu3KYgg2NxemTYOsrKLb3XknREVd1EeJSBGU2ImIeLCcnBz279/Pr7/+yhdffMHvv/9Oy5YteeCBB7jhhhvK9LOWL4dVq4puc9llMHx4mX6siJxFiZ2IiBewWq0cPnyYDRs28NVXX7F8+XLq1avHf/7zHwYPHlwmn5Gebu+1K6q0idkMDz4Ify3UFZEypsRORMTLHDt2jNjYWN58800sFgsff/wxwcHBZXLu776DTZuKbtOtG1xxRZl8nIj8g+rYiYh4mZo1a9K3b1/8/Py46qqrSEpKKrPErmvX4hO7jRuhZ0/w9y+TjxSRs2hVrIiIl8nNzQUgMTGR0NBQmjRpUmbnjoiASy8tuk12tr3OnYiUPSV2IiJextfXF4CXX36Z8ePHl/n5L7+8+Dbr1oHNVuYfLeL1lNiJiHiYoqZOW61WTCYTa9asISEhgQkTJpT559evD9HRRbdJSbHXvRORsqXETkTEA2RlZXH69GkATEXs2+V479lnn+WGG24gMjKyzGMxmUrWa7dmTdEFjUWk9JTYiYhUQo5euaSkJF566SX69OnDuHHj+PDDD897jKMQcUJCAqtXr+b+++8vt/hiYiA0tOg2R45AQkK5hSDilZTYiYhUQo7E7t5772Xp0qU0b96c4OBgXnvtNZYuXVqgjYPtr0ltzz//PH369KF58+blFp/FAp07F99u7dpyC0HEK6mOnYhIJWMYBiaTiR07dtCpUyd+//13mjZtCsDYsWM5efIkCxYscG4Ttnv3bmrVqkVgYCD5+fk0atSImTNn0rdv33KNMycHXnvN/r9FufdeCA8v11BEvIZ67EREKqmZM2fSv39/mjZtSl5eHgAPP/wwK1asYPNZ9URuuOEGlixZAoCPjw+//fZbuSd1YK9T17598e3UaydSdpTYiYhUMiaTCZvNRnBwMPXr1yc7O9tZwqRFixYMHjyY9957D4BvvvmGnTt3MmzYMMA+HFunTh2Xxdq5s30bsaL8+SdkZLgmHhFPp8RORKQSccyeOXDgAG3atOGyyy4jICCgQJsJEybw22+/kZGRweuvv84999wDQH5+vnN41lVCQ6Fly6Lb5OfDhg2uiUfE02mOnYhIJdSlSxe+/vprLrnkEuDveXcAJ0+eZMCAAVxxxRW89tprnDp1iqCgoAJtXCkpCaZPL7pNYCA89BD81fEoIhdIPXYiIpWEY1XrtGnTOHjwoDOpg4K162rUqMGAAQN46aWXuO222wgKCnIWJnaH6Gho0KDoNpmZ9iFZEbk4SuxERCoJxzDqSy+9xOuvvw7Yh1cLG3gZP348PXv25OmnnwaKLlrsCiUpWLx2rbYZE7lYSuxERCoBR/K2ZMkSkpOTqVmzJmBf5epYTHF2gteoUSPmzJlD7dq1MQzD5XPr/qlxY4iIKLrNyZOwa5dr4hHxVJpjJyJSCTh2jejWrRs7duygdevW1KtXj6uvvpohQ4Y4F1AYhoHNZsNisbg54nNt3gzfflt0m7p1YexY18Qj4omU2ImIVHCORQ+bNm2ia9eu/Pjjj6xdu5Y1a9Zw6tQpatWqxaBBg7jmmmucPXkVUX4+vP46pKcX3W78eKhd2yUhiXgcJXYiIhWco7eud+/eNGrUiBkzZgCwZ88eFi1axKpVq0hMTKRatWr06dOHK6+8khYtWrg56sL9+issW1Z0m5gYuOEG18Qj4mmU2ImIVAIZGRl07NiR+fPnn7PH6/Hjx1myZAnLly9n48aNXHrppcybN89NkRYtK8u+zdhfG2UUymSC+++HsDDXxSXiKZTYiYhUArm5uSQnJxfYNcLx69ux4jU7O5sVK1YQGBhIz549sVqtFXKu3Y8/Fl2Q2NcXhg2DCtrpKFKhKbETEalECisy7Hjt6NGjmM3mCj3PDuDUKXjrLfjn0ycoCDp1gg4d7AWLRaT0VO5ERKSCchQk3rZtGxv+6uJyJHWGYRTosbNardxxxx3Mnj3bPcGWQvXqcPZockQEXHMNPPgg9OyppE7kYqjHTkSkgrvmmms4deoU/fr1o0+fPnTp0gV/f/8CbdavX0/Xrl3Zt28f9evXd9v2YSV16JB9EcXll9tr3FXgUEUqFSV2IiIVlCM5W7RoEd988w0bN24kMDCQdu3a0adPH7p3706NGjUAGDVqFMePH+fnn3+usHPrRKT8KbETEakktm3bxuzZs1m1ahX5+fm0aNGCPn36ULduXQYNGsTy5cu5/PLLldiJeDEldiIiFYyjp27Pnj188skn9O/fn8svvxxfX18AEhMTWbJkCZ9//jlpaWkcPnyY8PBwtmzZUuGHYEWkfCmxExGpoG677Ta++uorBgwYQKNGjejRowdDhgzBx8eH1atX06FDB+bNm8cnn3zCY489Rv/+/cnPz8fHx8fdoYuImyixExGpoN555x2eeOIJrr/+ev78809MJhPdu3dn9erVHDt2jH379rk7RBGpYJTYiYhUUFarlXvuuYdbbrmFSy+9lA8++IDFixezfv16OnfuzOjRo+nUqRNt2rRxbjsmIt5NvwVERCogwzCwWCx06dKFf/3rXwQHBzNlyhT69u1LWFgYVatW5Y033uC///0vgJI6EQHUYyciUuHdcMMNVK9enffee4+oqCimTp3Krbfeyrx58zAMgxtuuMGreuy0QETk/JTYiYhUUI4EZteuXTzzzDO0aNGCt99+mz///JPIyEh3h1fu9u/fz/vvv09ycjJXX301wcHB9OvXj9zcXPz8/NwdnkiFpMRORKQCs9lsmEwmHnnkEaZNm8aTTz7Jf/7zH+d7ntxLFxsbS+vWrbnjjjs4deoUx48f5+jRo3Tt2pXIyEh69OjB4MGDPf7fQaQ0lNiJiFQChmHw7bff0q1bNyIiItwdjkvYbDYGDhxI8+bNefPNNwE4duwYv/zyC/fddx8nTpzg4MGD1K5d282RilQcSuxERKTC+vHHHxkxYgRZWVns3LmTL7/8ksWLF1OtWjUsFgtPPfUUHTp0cHeYIhWGEjvxWsfTcog9fIa4o6mkZuWRZzXwtZgIqeJLTFQILWuFEhHsX/yJRC6Arr+Sa9iwITVq1HDOq2vfvj09evSgR48eREVFuTk6kYpF5cnFq8QnpTJrXQJL4o5yIj0XAIvZhNkEhgEmE9gMsNrs33fCg/wYEBPFmC71aB4d4s7QxQPo+isZR3/D7Nmz+emnn7DZbMTHx/Poo4/SrVs3unTpQlBQEAAnT57k0KFDXHbZZZprJ4J67MQLGIbB4rhkpq/cy+bEFCxmk/PBWRKO9u3qVmNiz0YMjIlUqQUpMV1/FyYzM5Pu3btTu3Zt2rdvz7///W8++ugjbrvtNgD27NnD3Llz+e6776hRowaLFi1yb8AiFYQSO/Fox9KymbIglqXxyZj/6g25UI7j+zeP5IXhLakZHFB2gYpH0vV3YRw9b6tWraJ69eq0bNmSnTt3Ur9+fTZu3MgXX3zBunXrsFgstG3blg4dOjBy5EgCAjz330SkpJTYicdauC2Jx+dvJTPPWqoekuJYzCYCfS28OKI1Q1tFl9l5xbPo+itbixYtYsGCBfz+++9Ur16dDh060LdvX7p16+YclhURJXbioT78bR/PLYzHBJTHBe4471NDYxjXvUE5fIJUZrr+ys6KFSv497//TUZGBhEREVx++eX079+fDh06YLFYAPtw9+nTpzGZTISFhWlnCvFqWjwhHufRt+bwyv2jS3VMcIerqd5/ovPPJ36YRkbssmKPG/8ijP/r582bN9OmTZtSfa54nrOvv9BuI6nWo+TXYsqvszmz+vMStY0c+QLPLrT/7InJnSM58/X1ZeXKlTz77LNce+21NG/evEAbAJPJxOLFi5k+fTorVqxQYideTcuHxKMs3JbErLUJ7g5DvJQ7rr9nF8axcFuSSz/TFRyJWbdu3ahbty6+vr7OpM5qtTrbONr17NmTVatWER8fj9lsRoNR4q3UYyce41haNo/P31rgtaC2QwhuN6TYYy1VQs/7Xs0b/4MlqPp53zcBgX4+1Kjleb0mUnKFXX8XI3rc20W+7xNqr99mAh7/eiud6lf3uLp3+fn5+Pj48Nhjj/Hcc88xbtw4atSo4RyCBftCC4BatWpx22238eSTTzJ//nz12onXUmInHsEwDKYsiCUzz1rgdUtgKH4R9S/q3L5htfCpVvSG6zazif/8tJv3b26vh4kXOt/1dzFKet0aQGaulSnfbPO468/Hx/6Iuuuuu3jsscdYsGAB48fbJz9YrVYsFouzbt2xY8eoXbs2n3zyCampqYSEeE/dP5GzaShWPMLiuGSWxieX6erD0rDaDH6OS2ZxXLJbPl/cS9df+cnPzwdg4sSJzJkzh+zsbABnr9327dt5+eWXmTBhgnN+3Ysvvgj8PWQr4k2U2IlHeH/VXsxu7qgwm+xxiPfR9Vd+HAnc888/zx133OGsVffbb78xZcoUHnroIebPn09gYCAPPPAA8+bN44033ihwrIg30VCsVHrxSalsOpji7jCwGbDpYAo7jqbSLErDQN5C11/5cgwt+/v7c/311/Ptt9+yfPlytmzZgtVqpWXLlgwbNowBAwY4h2Uffvhhpk6dymOPPaZtxsTrKLGTSm/WuoRSb9NUXixmE5+uTeCF4a3cHYq4SHldf8lznyT36F5suVmYA6riW6MOVRq2J6jtYCwBhRfk9fTr7/Tp0zzzzDOEhYXRrVs3hg8fTseOHZ3vOxZbPPvssyxduhRASZ14HSV2UuktiTt63oeqNfMMuccPFHsO3+q1MVkKvx3yTh/GlpdV5PEm3wB8q0VhtRksiTvqsQ9WOVdR19/FyD6wxfmzLfMMOZlnyEmMJXXdV9QY+hCBTbqcc4wnX382m40aNWrwf//3f7Ro0YJLL720wHtms9m52GL06NHUq1ePrKwsqlSp4q6QRdxCiZ1UasfTcjiRnnve99M3/0j65h+LPU+tO2ecd+XrsS+eLvZ4/zotiRptn7B9Ij2XE+k5hAd5VukJOVdx19+F8I2oT+ClXfC7pIm9zI7NSt7JQ2TErSB7/2ZsORkcX/ACNa97miqNOpxzvKdef46et2HDhjlfcyR0/+yVW79+PfPmzWP79u3cddddKn0iXkV91FKpxR4+4+4QCrWtgsYlZausr7+Qjtdwybi3qdbzZgIbd8I/qjH+lzQlqFU/Im98luoD77E3NGycXPQmtrycQs/j6defY6Xs+YZZO3bsyKWXXsrLL7/M9u3bMZlMKlgsXkM9dlKpxR1NLXJ+U2m3dCpMUb15hbGYTcQlpdKnac2L+lyp+Iq7/krLfJ65cw7BbQeTe3Q36X8uwZp+isxdawhq0adAG2+4/hxDroUxDAMfHx/uvfdetmzZwtNPP62CxeJV1GMnlVpqVp7by0z8k9kEadn57g5DXMAd119Qm8HOn3MOxp7zvrdcf1OnTuWhhx5i+fLlpKenO183mUzk5eVhNpsZNWoU27dvJz09XYsoxGuox04qtTyrQUUcYcnNt7k7BHEBd1x/vuF1nD9b008W2saTrz/HvLrQ0FAmT57MmjVrSE5OZsKECdxyyy1ERkbi5+cHwIIFC6hdu7aGYcWrKLGTSs3XYqIijq74+ah3wBu45forQY7iydefYzh17NixPPDAAzz66KNYrVZef/11Zs6cSZ06dWjSpAm5ubmsX7+e8ePHExwc7OaoRVzHc+9+8QohVXypAOXrCrAZEByg70zewB3XX97Jg86fLUHVz3nf068/k8lEfn4+fn5+XH/99XzxxRfceOONrF69mq+++orhw4ezb98+DMPgpptu4rbbbnN3yCIu5bl3v3iFmKiQClGY+GxWm0FMtOdU/pfzc8f1l775J+fP/nXOrVfnDdefY77cc889R8OGDTlw4AD169enTZs2tGnThvvvv5/MzEwCAwPdHKmI66nHTiq1lrVC3R1CoVpV0LikbJXl9Zd77AB5p48U2SZt8yLSty4BwFI1jMAmXQtt5+nXn9lsxmq1Ur9+fXr37s27774L4JxLZxiGM6mz2Tx3vqFIYdRjJ5VaRLA/4UF+5y0SW9KdJ0w+/viGRRf6Xkl2ngD7sJilSgjhQX4eVxxWClfc9Zd7bD/pW5cWex7/OjHkHt3DyUVvElCvNVUatsc3oj7mKsF/FyjevoLsA5vtB5jMVB90L2a/gHPO5S3Xn81mw2Kx8L///Y/4+Hjg7/l3Z5c10WpY8TZK7KTSGxATxRd/JBY6JFbSnSd8azbgkrFvFfpeSXaeAAjrN4GwzsMYEBNVovbiGYq6/rJ2ryNr97piz1FjyIP2Hwwb2Qe2FNhO7J/MVUKoMfh+Ai/tfM57FrPJa64/X19fAJo1a0azZs3cHI1IxaGvMlLpjelSr8LMs7PaDG7pWs/dYYgLldX1V6VRB2oMvp+gywbgF9UYS3A4Jh9/TD5+WIKqE9CwPWH9J1Lrzg8L3ScWvOv6S0tLY9WqVQDk5eW5ORqRisNkqMCPeIBr313NlsQUt66QNZugTZ1qfH1XN/cFIW6h68/1fv75Z66//npSUlLcHYpIhaIeO/EIE3s2cnvZE5thj0O8j64/1+vbty9169bl7bffBv7eP7akTp06VR5hibidEjvxCANjIunfPBKLm/YXs5hNXBETycCYku8pK55D15/rWSwW7rnnHqZNmwYUvX+sgyP5S0tL47bbbiMpKalcYxRxByV24hFMJhMvDG9JoK8FVz9aTUCgn4UXhrXSJuNeStefe4waNYqcnBy+/fZbAKxWK8A5W4hlZmaybds2Xn31VbZu3UpwcDDNmzcnJSVF242Jx1FiJx6jZnAAL45oXZIdl8qUAbx4bWsigj2/xIScn64/1wsODub222/nv//9b4HXHQluSkoKa9as4b///S+jR49m8uTJLF++HICpU6fSvHlzr0uGxfNp8YR4nBm/7efZhXEu+7ynhsYwrnsDl32eVGy6/lzr4MGDtGnThmXLltG2bVsMwyA5OZktW7bwzTff8MMPP2AYBmPHjmXSpEmEhYU5j7XZbKpzJx5HiZ14JMfD1USJ9kwvNcd5n74yhrHdvPehKoXT9edad999Nxs2bOC5557jzJkzfPnll6xYsYKoqCjuu+8+7rzzTmdbq9WKYRjs27ePpKQkevXq5cbIRcqeEjvxWAu3JfH4/K1k5lnLtM6dxWwi0M/Ci9e2ZmirwnerENH15zppaWkMHjyYtLQ0jh8/TrNmzXj44YcZOnSos43VasVsNmMymbBarTz99NMsWbKEDz/8kMsuuwzDMDQsKx5BiZ14tGNp2UxZEMvS+GTMJi6qJIXj+CtiInlhWKsCc5qsVivx8fG0bNmyDKIWT+Gq60/gzJkzbNu2jYiICJo2bep8PT8/37li1mq1YrFYAEhKSmLkyJGEhITw3XffaVhWPIYSO/F4hmGwOC6Z91ftZdPBFCxmU6l6UBzt29WtxsSejRgYE+n8Zp+VlcWSJUv44osvWLBgAXPmzGH48OH69i9O5Xn9SeH+ef/9M2lbvnw5s2fPZt26dfj4+LBq1SpCQ0PdEapImdNeseLxTCYTg1pEMahFFPFJqcxal8CSuKPOjdstZhNnlx+zGTgfvOFBfgyIiWJMl3o0jw5xtjl16hRff/0133zzDSaTiaysLHJycvjjjz8YPny4HrziVB7XnxTNZDKxdetW7rnnHpYvX46vry85OTl8/fXXfPXVV+zfv5/IyEhuuukmunfvTnBwsLtDFikz6rETr3UiPYdth88Ql5RKWnY+ufk2/HzMBAf4EBMdQqtaoYQHFRzuSkhI4NNPP2X58uWkp6fTqlUrIiIiWLhwIU2bNuXVV1+lfv367vkLSaVyIdeflI7ZbOadd97BarXy7bffcurUKRo0aED37t3p168frVq1cneIImVOiZ1ICaSlpXHvvfdy4MABDMOgffv23H777Vx66aU88cQTWK1Wnn/+eYKCgtwdqojXc8yre/LJJ3nhhRfo0qULTZs2pVevXvTp04d69eo522rahHgaJXYiJTRu3DgiIyO58cYbueyyy9i9ezejR4/GYrEwc+ZMmjVrRm5uLn5+fu4OVcSrOZK1lJQUqlevzjPPPMP999+vGnbiFZTYiRTD8QDIzMwkMDAQgIyMDCZPnoyvry8vv/wyZrO5wIq71NRUQkJC9PAQcRPH/Xjttdc6h2JBCZ14PiV2IqXg6AkYOXIkX3zxBddccw2DBg1i+fLlBAcHExERwdq1a6lWrRpffvmleu9E3MSRwMXGxjJlyhQ+++wzQkK0AEU8nxI7kVJwJHbz5s3jrbfe4vLLL+fAgQNccsklNG7cmHnz5rF7926OHDnC//73P+68807N4RFxE9174o2U2ImUkmEY2Gw257ArwM6dO3nnnXc4cOAAJpOJatWqMXr0aAYMGODGSEXEoaghWJsNNDornkKJncgFyszM5IcffmDRokXExsYSFBREhw4dGDx4MD179nRWuxeRiscw7P9ZrbBxIzRtCmetrRCptJTYiZSSzWbjf//7H8uXL+fQoUOEhYXRu3dv+vfvT8eOHUlJSSErK4vo6OgCCypExP0cvXNpabB2rT2py8mBjh3hrK1lRSotdSmIlJLZbGbv3r2kpaXx4IMPMmjQIKpXrw5AdnY2n3/+OcuXL+eDDz6gWrVqmucjUgFYrWCxQHIyrF4NcXH2JM9hyxbo0wf+WvguUmmpx06kFBzzdI4fP46fnx9JSUlMmjSJbdu2cffddzNhwgT8/Py4+uqr6dChA6+88op67UQqgCNHYPFiSEg4f5s+faBXL9fFJFIeNF1UpBQck68jIiLw9fXlhhtuIDMzkzvvvJOFCxcyefJkQkJCmDJlCnPnzgVQUidSQRSV1AFs2AD5+a6JRaS8KLETuUDbt2/n+PHjvPjii0yePJlXXnmFr7/+2jnvLjg4mO3bt7s7TBEBLrkEztpJrFAZGbB1q2viESkvmmMncoE6duxIbm4uJ06cwGw206VLFwYOHMizzz4LQO3atYmJiXFzlCLicPnlxffarVkDbduCpsVKZaXETuQCODYZf+yxx1iwYAEbNmzgqquuIi0tjblz59K4cWM+/vhjLZoQqUCaNIHwcDhx4vxtTpyA3bvtbUUqIy2eELkAZ690nTdvHjfeeCMWi4VLL72Uu+++m+HDh1OrVq0Cx5w8eZKePXuydu1abW0k4iYbN8L33xfdpn59uO02V0QjUvY0x07kAphMJhzfiVatWkWnTp349NNPWbRoERMnTnQmdUeOHOFf//oX27dvp0aNGtx+++1kZma6M3QRr9a6NVStWnSbAwfsq2hFKiP12IlcIEfpk+zsbE6fPk3NmjWdK2C3bt3KtGnT+Prrr8nNzWXu3Llcc801bo5YRABWrLD/V5SWLeG661wRjUjZUo+dyAVylD4JCAggOjoai8XC0qVLGTBgAG3btmXbtm28+eabHD16VEmdSAXSsSMUt+NfXBykpLgkHJEypcROpAwcP36cunXrMmTIEHx9fVm0aBFr1qzh1ltvJTQ0lIyMDA4fPgzYF16IiPtUrQpt2hTdxmaD9etdEo5ImVJiJ1IGIiIiuOOOO1izZg0LFy5kwIAB+Pn5kZqaytKlS7n77rtp3bo1NpsNn+K6CkSk3HXtWnxJk40bITvbNfGIlBU9YUQukmOF7BNPPOF87dixYyxZsoR3332XdevWYRgGY8aMIT09nZCQEG0zJuJmNWpA06awY8f52+Tm2pO7bt1cF5fIxVKPnchFOrtW3cGDB3n++efp1asXt99+O3Xq1OG3335jwYIFNGrUiMGDBwPaZkykIrj88uLbrF8PVmv5xyJSVpTYiZShRYsW8dRTT3HNNdeQmJjI3Llz6dq1K9dccw1PP/00Bw8e5Ouvvwbsq2pFxH3q1IF/lJs8R2oqxMa6Jh6RsqDETqQMOKoGTZw4kezsbF588UWioqIwDMP5XlxcHIGBgRw9ehT4e1WtiLiHyVSyXru1a0GFwaSy0JNFpAw4hmNNJhN+fn7O3jhHIePNmzfzxBNPkJuby5AhQ9wZqoicpXlzCAsrus3Ro7B/v2viEblYSuxEyoGjcPHSpUsZNmwYnTt3JiEhgVmzZlG/fn13hycifzGboUuX4tutWVP+sYiUBSV2IuVg1apVtGjRgiuvvJLs7Gx++OEHNm3aRPfu3d0dmoj8Q9u2EBBw/vebNoUePVwXj8jFULkTkTLk2GYsNDSU9u3bs2DBAlq3bn3O+yJScfj52Xej+PXXv1/z8YHLLrPXuwsPd19sIqWlvWJFRMTrpaXB66+Dv789yevUyb5DhUhlo8ROpAylpaWxefNmevbsSX5+vnaZEKlE9u+H2rXB19fdkYhcOI0JiZShdevWcfXVVwPg4+ODvjeJVB4NGiipk8pPiZ1IGerbty9169bl7bffBsCqkvUiIuJCSuxEypDFYuGee+5h2rRpAIUOxebn57s6LBER8RJK7ETK2KhRo8jJyeHbb78F/u61cwzLOpK9rVu3smfPHrKyspzHauhWREQuhhI7kTIWHBzM2LFjefHFF4G/tw5z7E4xd+5cOnXqRL9+/Zg4cSIDBgxwJoFK7ERE5GIosRMpB+PHj2fjxo3ExsY6EzqA9957j0ceeQSbzYa/vz/Tpk3juuuu46677mLXrl2YzWbndmQiIiKlpcROpBzUrVuXWbNmkZub63ztyJEj/Pvf/+aWW27hq6++wjAMjhw5wgMPPEDXrl15/vnn3RixiIh4AiV2IuXk+uuvp127ds4/79mzh7p16zJ+/Hjq16/PuHHjePrppwHo1asXqamp5Ofna2cKERG5YHqCiJQTR4LmGFo1DIPDhw8THByMYRhMnDiRffv2sWjRIn744QfatWun2ncilUR+PmzaVHAbMpGKQImdSDlzJHi9evXCYrEwb948TCYTtWvXZvjw4QwdOpQTJ05w5ZVXAhSYkyciFUtmJqxaZd9+7LvvYOVKyMhwd1Qif9N+RyIu4Nhe7Mknn+Sjjz6iXr16DB06lEmTJhEdHc29995LZGSks71hGErwRCqQU6dg3TrYvBny8v5+PT8ffv8devd2W2giBWivWBEXe+mll8jOzuahhx4iODiYY8eOkZCQwMGDB7FYLAwbNszdIYrIX/LzYf582LEDzve0DAyEhx7SdmRSMSixE3ERRy9cdnY2AQEBAKxYsYK3336b9evXY7VaCQsLo0WLFkyePJm2bdtitVqxWCxujlzEu338MRw4UHSbq66C9u1dEY1I0TTHTsRFHEOrjqRu5cqVXHfddRw+fBjDMHjmmWfYtm0bVatW5f777y9wjIi4z+WXF99mzZrz9+iJuJISOxEXc3SSf/vtt7Rq1Yq1a9fy5ptv8sILL2A2m3nppZfYvn27s2CxOtVF3OvSSyEioug2J0/Crl2uiUekKErsRFzMZDKRkZFBfHw8gwYNAqBfv36YTCa+//57IiIiuPTSS0lOTna2FxH3MZmga9fi261ZU/6xiBRHiZ2IixmGQdWqVTEMg+PHjwMQGhrK+PHjmTx5MpMmTeLIkSO0bt3azZGKiEPr1lC1atFtEhLg8GHXxCNyPkrsRFzMUbD4gQceYM6cOSQkJAD2/WXT0tJYvnw5n3/+OaGhoe4MU0TO4uMDnTsX3069duJuWhUr4kZDhw4lNDSUJ554ghYtWvDjjz9iNpu54oorMJvNGoYVqUAyM2HatIJ17P7JZIIHHoBq1VwWlkgBSuxE3MBRxmT79u3s2LGD1q1bc+mllxZoczwth9jDZ4g7mkpqVh55VgNfi4mQKr7ERIXQslYoEcH+bvobiHinhQvtBYmLEtMuh4gmunfFPZTYiVQg8UmpzFqXwJK4o5xIzwXAYjZhNtlLKZhMYDPAarPftuFBfgyIiWJMl3o0jw5xZ+giXuHUKXjrrXNLm5yypbLDmsBB21Gy0b0r7qPETsTNDMNgcVwy01fuZXNiChazyfnLvyQc7dvVrcbEno0YGBOpIVyRcvTFFxAfb793D9qSibXu5biRggkTBrp3xb2U2Im40bG0bKYsiGVpfDLmv77RXyjH8f2bR/LC8JbUDA4ou0BFxCkxEd76MJu1ebEkGsmYoBTp3Ll070pZUmIn4iYLtyXx+PytZOZZS9VDVxyL2USgr4UXR7RmaKvoMjuviNgt3JbEpLlbybVZS9VDVxzdu1IWlNiJuMGHv+3juYXxF/1N/3wc531qaAzjujcoh08Q8U66d6WiU2In4mIf/raPJ//3BcmfTwEgtNtIqvUYfdHnzU8/xZEP7sLIyQDAv05Loka/qAeESBm5mHs3O2Gr87iSatKmMzs3ryt1nOLdVKBYxIUWbkviuYXx5XLu0z+/50zqzvbswjgWbksql88U8Rblee+ezxHCdO9Kqfm4OwARb3EsLZvH52+lPNa8Ze5eT+bONZgDq2HLTCnwngl4/OutdKpfXbWzRC5AWdy7ftFNiB73drHtTi15j5zEWACCWvbTvSulph47ERcwDIMpC2LJzLOW+bwcW24Wp35+D4CwvmPP/WwgM9fKlG+2oZkXIqVTVveu2S8Av4j6Rf7nExxOzpGdAPiEReNfu7nuXSk1JXYiLrA4Lpml8clluvrVIWXlp1hTj+NftzVBLfsW2sZqM/g5LpnFccll/vkinqw8791/yoj/Faz2/cqqtrDfy7p3pbSU2Im4wPur9mIuhzHYnCM7Sdu0ECw+1Bh4d5FtzSZ7HCJScuV17xYmI3b5Xz+ZqNqyj/N13btSGkrsRMpZfFIqmw6mXFTx4cIYNisnf3obDBuhna/Dt0btItvbDNh0MIUdR1PLNhARD1Ve925h8k4nkXPYvjjDv04LfKtFOd/TvSulocROpJzNWpeApRy+8qeu/5q8Y/vxqRZN6OU3lOgYi9nEp2sTyjwWEU9UXvduYf7uraPQKRW6d6WklNiJlLMlcUfLfH5OXspRzqyeC0D1gXdh8vEr0XFWm8GSuKNlGouIpyqPe/d8Mrb/AoDJx5/AZt3PeV/3rpSUEjuRcnQ8LYcT6bllft5TP72NkZ9DYPMeVGnQrlTHnkjP5UR6TpnHJOJJyuveLUx2Yiz5KfakrUqTLpj9Awttp3tXSkKJnUg5ij18pszPmb5tGdkHtmDyDySs34QLOse2cohLxJOUx717Phmxvzh/Pt/Kdgfdu1IcJXYi5SjuaGqZztGxZp7h9PIZAFTrOQafoOqlPofFbCIuSZOwRYpS1vfu+Rj5eWTu+A0AS1B1Auq3OW9b3btSEkrsRMpRalZemZZKOL3sQ2xZqfhFXUpwu6EXdA6zCdKy88suKBEPVNb37vlk7l6H7a+tAKu26I3JbDlvW927UhLaUkykHOVZDcqqYHx+2knnBOuAeq3JjP+1yPa2zDNkxK0EwKdaFP6XNHW+l5tvK5ugRDxUWd67RTl7NWzVYoZhQfeuFE+JnUg58rWYMJXVt37r39/UU9fPL7Z53slETnz3MgBVW/YrkNj5+aizXqQoZXrvnoc1I4Ws/ZsA8ItshF9E/WKP0b0rxdEVIlKOQqr4uqS4aWnYDAgO0Hc6kaK44t7NiFsJNitQst463btSErpCRMpRTFRImdXB8qkWSb3Hfyi2XcKLVwLgX6clUaNfPOd9q80gJjqkTGIS8VQ1fcru3j0f5zCs2ULVFr2Lba97V0pCiZ1IOWpZK9TdIRSqVQWNS8SdbDaIj4d162DXwfK9R3KPJ5CbbN//tUrD9lgCS/Z5unelOErsRMpRRLA/4UF+RRY6zT22n/StS4s9l3+dGHzDLrnomMKD/AgP8r/o84h4iuxs2LwZ1q+HlBT7a1VM/gTgRzblc+9mxC5z/ly1Zb8Sxal7V0pCiZ1IORsQE8UXfySed1gna/c6snavK/Y8NYY8eNGJncVsYkBMVPENRbzA6dP2ZG7zZsgpZEOHuuYodtsSMSjbe9cwbM4V6+aAIAIbdyr2HLp3paSU2ImUszFd6jFnw0F3hwHY5+jc0rWeu8MQcRvDgMREWLsWduygyJImzSz12GUr+3s3+8CfWNNOAhDYvAcmH99ij9G9KyVlMgxXVOoR8W7XvruaLYkpbl0hazZBmzrV+Pqubu4LQsRNrFaIi7PPnzt8uOTHLcxdzQkj5Tx9dq6he1dKQ+VORFxgYs9Gbi97YjPscYh4k6wsWL0a3ngD5s8vXVIH0NLSyK1JHejeldLRUKyICwyMiaR/80h+2Xms3EsoFMZiNtG3WU0GxkS6/LNF3OHkSfv8uS1bIPf86x+KVdccSR1TJIeMY+eda1eedO9KaWkoVsRFjqVl0+/VlaTn5Lv08WACggJ8WD6pNxHBWlEnnsswICHBPn9u166i58+VlJ8fNIjJ5vnNK8nI1b0rFZ967ERcpGZwAC+OaM09cza59HMN4MVrW+vBIB5t61Z7QpeUVDbnCwmBzp2hXTuoUiWAkEa6d6VyUGIn4kJDW0VzdGgMzy6Mc9lnPjU0hqGtol32eSLusH172SR1tWpB167QvDlYLH+/rntXKgsldiIuNq57AwCeXRiHCcplaMdx3qevjGFstwbl8AkiFUvXrrBz54UdazLZE7kuXaBOHfufC+OKe9d+VpPuXblgmmMn4iYLtyXx+PytZOZZy3RBhcVsItDPwovXtta3ffEahgHTp8PRoyU/xt8f2ra1D7mGhZX8uPK6dw2bFfJzeGN0Z4a1q1tm5xXvonInIm4ytFU0yx7uRZ+mNQF7raqL4Ti+b7OaLJ/UW0mdeBWTyd5rVxLVqsHAgTBpEgwaVLqkDsr+3jVsVgCy9mzg0HsTOf3nsmKOEDk/9diJuJlhGCyOS+b9VXvZdDAFi9lUql4AR/t2dasxsWcjBsZEYjrfWJKIB7Na4fXXIS2t8Pfr1LEnf82agbkMujUu9t41rPmYLD5kH4ojdcMCsnatBaBFixZs27ZN97FcECV2IhVIfFIqs9YlsCTuKCfS7cW3LGZTgR4Bm4Hz4REe5MeAmCjGdKlH8+gQd4QsUqaOHYONG+GKK8DnAmaB//orLDurw8tshpgY+/y52rXLLs5/Ku29a00/TebudaRtWkje8QPnnG/RokUMGjSo/AIWj6XETqSMZGbaewyCg8vmfCfSc9h2+AxxSamkZeeTm2/Dz8dMcIAPMdEhtKoVSniQyiBI5WcYsGePfbuvvXvtr119tb3USGllZsK0afYVre3bQ6dOEBpatvEWp7h7d+PPC3j0vjuLPEe/fv1YunSpiyIWT6LETqQM5ObCp59CejqMGQM1arg7IpGKLy/PXn9u3To4frzgezVrwl13nX+FalH274dLLrEvjqiIMjMzqVu3LidPniyy3ebNm2nTpo1rghKPocUTIhfJaoV58+DQIUhJgRkzSr8fpYg3SUuD5cvtPWvff39uUgf2Idl9+y7s/A0aVNykDiAwMJC777672HavvvqqC6IRT6MeO5GLYBjw7bf2/SjP5ucHN9wAjRu7JSyRCunoUfvuELGx9i9ExWncGG6+ufzjcofk5GTq1atHTk7Oedv4+Piwf/9+apfn5EDxOOqxE7kIy5adm9SBfWh2zhz7MJOINzMMe+HgTz6B996DP/8sWVIH9nl3hfXmeYLIyEjGjBlTZJv8/HzefPNNF0UknkI9diIXaN06+Omn4tsNHFjy+loiniI3157ErVsHxUwlK1L79nDVVWUXV0USHx9PTExMkW1CQkJITEwkJESr3qVk1GMncgG2bStZUgewebN9kriIN0hNhaVL7fPnFi68uKQO7MlhdnbZxFbRNG/enCuvvLLINqmpqXz44Ycuikg8gXrsREpp7177MGtJhpNCQ2HcONCXbfF0R47Y589t3w4228Wfz2KBVq3s9eeioi7+fBXVihUr6NOnT5Ft6taty549e/D19XVRVFKZKbETKYUjR+Djj+3DTMWpUgXGjoWIiHIPS8Rt9u+HFSsgIaFszhcYCB072v8LCiqbc1ZkhmHQsWNHNm7cWGS7OXPmMHLkSBdFJZWZhmJFSujUKZg9u2RJna8vjBqlpE4qJ8MwsJWg281msxcELoukLiLCXpT4oYegTx/vSOoATCYTjzzySLHtXnnlFdQPIyWhHjuREkhPt9enO326+LZmM9x0EzRpUv5xiZSnI0eOcPz4cZo3b46fn1+hbQwD3njDXsPxQjRubB9ubdTowooRe4L8/HwaNWrEwYMHi2z3yy+/0Lt3b9cEJZWWeuxEipGTA599VrKkDuwr+JTUSWW2f/9+rrzySpo2bcqYMWMYMmQIq1atAjinJ88woHPn0p3fx8e+Xdjdd9vr1DVu7L1JHdjr1T344IPFtnvllVfKPxip9JTYiRQhPx/mzrUXVi2Jfv2gbdvyjUmkLB07doz4+Hjg76Tt3XffJTMzk/Xr1/PGG2/g5+fH2LFj2bdvH2ZzwceG2QwdOpRsp4eqVe3DrA89ZB92rVmzzP86ldb48eMJLWZT24ULFzr/vxI5HyV2IudhGLBggX1yeEl07gzdu5dvTCJl6dSpU4wfP54ZM2YAYDabOX36NO+88w633347MTEx9OnTh7fffpuIiAgeffTRQs/j42OvN3c+kZEwbJg9oevVy57gSUHBwcFMnDix2HavvfaaC6KRykxz7EQKYRj2OnXr15esfcuWMGKEdw8nSeWUlpZGcHCw8887d+5k+PDhPPHEE4wePdr5+jfffMP1119PbGwsTZs2LXAOw7DPQ502rWCpkyZN7PPnGjTQvVEShw4dokGDBuTn55+3jZ+fHwkJCUR5cg0YuSjqsRMpxG+/lTypa9jQ3huhB5dURsHBwcTGxjJt2jTAnjgEBwdz4MABrGcVa+zVqxdNmjThgw8+AArOtTOZIDgYYmLsK8I7dIB777WvDG/YUPdGSdWuXbvYkia5ubm88847LopIKiMldiL/sHmzfQ/YkoiOhhtvtA9FiVRGVquVhQsX8vDDD3PixAkaNGhAnTp1WL16Nfv27XO2CwoK4uqrr2bp0qUA58y1s9lg0CD7cOuVV0J4uEv/Gh7j4YcfLrbN//73PzIzM10QjVRGSuxEzrJrF3z/fcnahoXB6NElmzQu4golrT93NovFwpAhQ2jZsqVz1eW4cePYsWMHy5cvd7bz9fUlLy+PSy65hLS0tHPOYzbba88FBl7c38HbXXbZZfTv37/INqdOneLjjz92TUBS6SixE/lLYiLMm1ey7ZCqVoUxY7yniKpUfIZhYDKZMJvNZGRkFJp8nU+jRo245pprmDVrFgCDBw+mU6dOfPLJJ6xZs8bZLj4+ntq1axeYkydlryQFi1977bUCQ+UiDkrsRIDjx+37v+blFd/Wz8/eU1e9evnHJVKUgvPcTGzfvp3rrruODh06cO211zJt2jROnTp1Ttt/CgwMZPDgwZhMJuf8rUcffZT69evTr18/7r77bnr37k1cXBxjx44t37+UMGDAAFq2bFlkm7179/Ldd9+5KCKpTJTYiddLTYVZsyArq/i2Fot9V4lLLin/uETOx9FT45jnlp2dzfTp07nqqqsICgrizTffdC50ePvttwu0PZ+YmBiuvPJKZ2LXvn17Pv74Y9566y2ysrLo0KEDv//+O126dCnHv5mAPUkvyVw7FSyWwqjciXi1rCz46CN7j11JXHedvbSJiKsZhoFhGAUStFdeeYVt27Yxbtw4vvrqKxo2bMj999/vbHP77bdjs9n43//+R9USFI/76aefGDVqFLNmzWLo0KHO4d2z2Wy2YpNEuXg5OTk0aNCApKSkItutWbOGrl27uigqqQx0d4rXysuDzz8veVI3aJCSOnE9x4IIx/y5tLQ0nnzySWfPXL9+/ejevTs33XQT99xzD2azmby/5hT4+flx5MgRqlatWuQG8o732rRpQ58+fXj11VfPaWOz2c5JLKX8+Pv7c9999xXbrrD/r8S76Q4Vr7VlCxSz57ZT9+72QqsiruZI6OLj47nuuusICwvjhRde4OOPP+bgwYPccsstmM1mLr/8cnx9fTEMA19fX3Jzc9m9ezdXXnml8zxFfQZAZGQk119/PTt27GDnzp2YTCZn0mc2m4s8h5S9O+64o9ie1q+//pq9e/e6KCKpDJTYidfq0AF69Ci+XZs29j1gRVzhn4scTp8+Te/evWnRogVBQUE88cQTdO/e3Zlk/XOXAsfrx44d4+DBg/Ts2ROgyB47q9VKfn4+JpOJsLAwIiIiOHbsWIHzietVr16dcePGFdnGMAxncWkR0Bw7Edavt28fVtidcOml9sUSFovr4xLvlp2dTUBAAKdOnWLx4sX06NGD2rVrc/z4ccaPH09gYCCzZ88+79DoCy+8wHfffceaNWvO2yY/Px+fs6prb926lfHjx+Pr68vChQupVq1aefzVpBT2799P48aNi1zVXKVKFRITE6lRo4YLI5OKSj124vU6d7Yvivhn8la7Nlx/vZI6KV//fGBv3bqVwYMH8/nnnwMQFhbGyJEjqV27NjabjYiICLp3787+/ftZsmRJoedIT0/ngw8+4MEHH8RsNpOQkMDjjz/OggULAJxz8BxJ3Q8//EDXrl3p1asXbdu2ZdGiRUrqKogGDRowYsSIIttkZWXx3nvvuSgiqeiU2IkALVrAzTf/vYtEeLh9n0s/P/fGJZ7PbDZz6NAh/vjjDwBq1arFyZMn+eOPP0hPTy8wz81hyJAhhISE8M033zjPcbbff/+dmjVr4uvry0033USDBg1Yt24dzZo1A+y7SAC88847XHrppdxxxx307duXP//8k+nTpxMSElLOf2spjZKUPnnrrbfIzs52QTRS0SmxE/lLgwZw2232/V9vvllbI4lrLFq0iLp16/Lss89y9OhRatSowdVXX83mzZtZvXp1gbaOBK5FixZ07NiR2NhYfv/9d6Bgr93333/P77//zqhRozCZTOzdu5cVK1bQvHlzAH799VfCwsJ47733mDRpEjt27OD555+nbt26LvpbS2l07tyZ7t27F9kmOTmZ2bNnuygiqciU2ImcJToaJk4EjUKJq/z666+Eh4djtVpZtWoVADfddBNWq5Xly5djtVoLLGBwFCcePHgwFovFObx6dq9dZGQk77zzDqmpqXz++ec0aNAAq9XqHIJt06YNc+fOZfPmzdx1113aIqwSKMk2Y++8806p9woWz6PETuQftAhQXMEwDHJzc0lOTuatt94iJSWFX3/9lfT0dBo3bkyXLl34/fffnT1yjoTO8tekz+7du9OmTRvWrl3Lrl27gL9XyD722GPcdddd+Pv7k5+fj81mw2KxOIdgg4ODGThwYIGFE1KxXXXVVVx66aWFvhcZGcl//vMfli1bplXMosRORMQdTCYTfn5+rFmzhj59+jBw4EA2bdrEunXrALjxxhs5ffo0y5YtA/5O6ADnXKq+ffty6tQp4uLiAAokao6Cwj4+Pioq7AHMZvM5c+1atGjBhx9+SGJiIpMnTyYsLEyJnSixExFxl+XLlxMdHU3NmjW54YYbAFi9ejWffPIJHTp0oFOnTqxZs4b4+HgATp06xYwZMxg6dChz587lqquuYtmyZQwbNuycc6ugsOe55ZZbCA8P54orrmDx4sXExsZyyy234Ovrq95XcdKVIB7HarXvKtGunYZVpWJLTU2lZs2aADRt2pTc3FxefvllMjMz6dKlC9dccw3/93//x9dff42vry9vvvkmqampTJgwgWHDhmE2mwkPDy90T1fxPFWqVCEuLo6IiAjnfEnH8LqIgwoUi0cxDPj6a9i2DVq3hmuuUR06qbjGjRuHv78/Pj4+fPDBB0RHR2Oz2bj99tt55plnAOjTpw8rV66kTp06PPbYY9x9991ujlrcqbRJfF5eHkeOHKFevXrlGJVUJBqKFY+Sng7799t/3roVPv8ccnPdG5N4B5sNduyAmTNhz56SHRMZGcl7771HfHw8X331Ffv27aN79+5s3LiR2NhYAJ5++ml+/fVX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c9drErtZ6xKwlGN3nWHYsGacJuvAnxyb/xyZfyV2PtVrU6VhwS5li9nEpxexKlekorjtttswmUzceeed57x39913YzKZuO2220p0rjp16pCUlETLli3LOEoRcYeSPHfzTiRgy7InXP61YzD7B5ZLLN703PWaxRNL4o6W6c4SDof+NxZr6rFC37OE1CRi+ORz5uRZbQY/bj3E6CZek1dLJXbJJZdQrVq18048rlOnDnPnzmXatGlU+Wt/vOzsbD7//HPq1q1b4s+xWCxERUWVScwXKjc3Fz8/P7fGcD6GYZCSksKRI0fcHYpIify49VCxz928YwecP/tFNS63WKw2gyVxR3lheKty+4yKwisSu+NpOZxIzy2+YVkxWwjtdhMhHa4577ePlGwbrTt1w5Z5xnVxiVyADz74gFtvvRVfX99C32/Xrh379u3j66+/ZvRoe6Hvr7/+mjp16tCwYUNnu59++onnnnuO2NhYLBYLXbt25Y033qBRo0aAfRiyQYMGbN68mTZt2rBixQr69OnD0qVLeeyxx4iLi6NNmzbMnDmTpk2blij25557jjfffJOsrCxuvPFGwsPD+emnn5xDnbfddhspKSl07tyZt956Cz8/Pw4cOMC2bdt44IEHWLt2LYGBgYwYMYLXXnuNoKAgAHr37k2bNm14/fXXnZ81bNgwqlWrxscffwxA/fr1mThxInv27GHevHmEhYXx5JNPMnHiROcxGzZs4I477iA+Pp6WLVvyxBNPnPfvkp+fz/z585kwYUKJ/u4i7mQOrEad+z8rtp016+/hUUuVovfYzD2ewPkKpviERmH2K3qP2BPpuZxIzyE8yLNLn3hFl1Hs4fJLniJvepbocW8TPfYtIke+QGiPm7EEhnJmzRecWvIuttys8x5bnt9ORFzp9ttvZ+bMmc4/f/TRR4wdO7ZAm4yMDCZNmsTvv//OsmXLMJvNDB8+HJvNVuS5n3jiCV599VX++OMPfHx8zjnv+cyePZvnn3+eqVOnsnHjRurWrcu77757Trtly5YRHx/Pzz//zA8//EBmZiaDBg0iLCyM33//nXnz5rF06VLuvffeEn3u2V599VU6dOjA5s2bufvuu7nrrrvYsWOH89/jyiuvpGnTpmzcuJH/+7//45FHHin1Z4hURCV9vhlnPSNNflWKbJv00X0kzbi30P9yk3aV6PO2lWM+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RlKlShWWLi2/idgiUrQLee4GXtqZKo06kLV7PVn7N5FzeAfWjNPYstMx+fhhDgjGL6IuftFNCGzWHb/wku1H7U3PXa+YY+dw7bur2ZKY4pYVsg5mE7SpU42v7+rmviBERERcQM9d1/OKVbEOE3s2cuvFBfbl1hN7NnJvECIiIi6g567reVViNzAmkv7NI7G4cn+xs1jMJq6IiWRgTMn3mhQREams9Nx1Pa9K7EwmEy8Mb0mgrwVXX2ImINDPwgvDWnlE2QgREZHi6Lnrel6V2AHUDA7gxRGtcXXPsAG8eG1rIoI9f6m1iIiIg567ruV1iR3A0FbRPDU0xqWf+dTQGIa2inbpZ4qIiFQEeu66jlcmdgDjujdwXmTl1UHrOO/TV8YwrnvhpU9ERES8gZ67ruFV5U4Ks3BbEo/P30pmnrVM95O1mE0E+ll48drWXvmNQUREpDB67pYvr0/sAI6lZTNlQSxL45Mxm7iopdmO46+IieSFYa28bmxfRESkOHrulh8ldn8xDIPFccm8v2ovmw6mYDGbSvVNwtG+Xd1qTOzZiIExkV61CkdERKQ09NwtH0rsChGflMqsdQksiTvq3MDYYjZxdhkem4HzAgwP8mNATBRjutSjeXSIO0IWERGptPTcLTtK7IpxIj2HbYfPEJeUSlp2Prn5Nvx8zAQH+BATHUKrWqGEB3l3t6+IiEhZ0XP34iixExEREfEQXlvuRERERMTTKLETERER8RBK7EREREQ8hBI7EREREQ+hxE5ERETEQyixExEREfEQSuxEREREPIQSOxEREREPocRORERExEMosRMRERHxEErsRERERDyEEjsRERERD6HETkRERMRDKLETERER8RBK7EREREQ8hBI7EREREQ+hxE5ERETEQyixExEREfEQSuxEREREPIQSOxEREREPocRORERExEMosRMRERHxEErsRERERDyEEjsRERERD6HETkRERMRDKLETERER8RBK7EREREQ8hBI7EREREQ+hxE5ERETEQyixExEREfEQSuxEREREPIQSOxEREREPocRORERExEMosRMRERHxEErsRERERDyEEjsRERERD6HETkRERMRDKLETERER8RD/D4VZPhjaD27zAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "kin_tree = kinematic_graph.define_span_tree()\n", + "draw_kinematic_graph(kin_tree)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Осталось определить параметры механизма и фреймы для тел. С параметрами все ясно, а вот как определить фреймы? Для звеньев всего лишь с двумя джоинтами очевидно выставляет фрейм так, чтобы одна из осей была соосна со звеном. Чтобы упростить задачу построения _URDF_, фреймы размещаем во входном джоинте. \n", + "\n", + "Теперь рассмотрим звено более чем с двумя джоинтами. Для них было решено не создавать велосипед, а использовать веса похожие в предыдущих этапах. Однако, теперь есть основные пути -- главная ветка и span_tree. Если выходная вершина входит в главную ветку, то ось фрейм располагается между нее и входным джоинтом. Иначе, проверяется какие джоинты входят в span_tree. И тогда ось фрейма соосна самым длинным вектором проложенным от входного джоинта и джоинта в span_tree. И последний приоритет отдается джоинтам-ограничеиям (не входят span_tree). \n", + "\n", + "Инерциальные фреймы размещяются как средняя точка между джоинтами и он сонаправлен с фреймом тела" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABJ4AAASXCAYAAACgHLUiAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdd3wVVfrH8c+96Y00EpIQSCChJ6GEDqGp9CZiA12x7uqu4uqurh1dV13ddW0/u4INuyJdBYGE0EMLvSaUBNIhpCf3/v4YyAVFpSRMyvf9et0XzJkzM8/E3czlmXOeY7Hb7XZERERERERERERqmNXsAEREREREREREpGFS4klERERERERERGqFEk8iIiIiIiIiIlIrlHgSEREREREREZFaocSTiIiIiIiIiIjUCiWeRERERERERESkVijxJCIiIiIiIiIitUKJJxERERERERERqRVKPImIiIiIiIiISK1Q4klERERERERERGqFEk8iIiIiIiIiIlIrlHgSEREREREREZFaocSTiIiIiIiIiIjUCiWeRERERERERESkVijxJCIiIiIiIiIitcLZ7ABEREREREREpO6x2WyUl5ebHYaYxMXFBScnp4s+jxJPIiIiIiIiInKG8vJy9u/fj81mMzsUMZGfnx8hISFYLJYLPocSTyIiIiIiIiJSzW63k5mZiZOTEy1atMBqVZWexsZut1NcXExWVhYAoaGhF3wuJZ5EREREREREpFplZSXFxcWEhYXh6elpdjhiEg8PDwCysrIIDg6+4Gl3SluKiIiIiIiISLWqqioAXF1dTY5EzHYq8VhRUXHB51DiSURERERERER+4WLq+kjDUBP/G1DiSUREREREREREaoUSTyIiIiIiIiIiJpo2bRpdunQxO4xaocSTiIiIiIiIiNS4qqoqli5dyqeffsrSpUura0fVtiNHjjB16lSio6Nxd3enWbNm9O/fnzfffJPi4uJLEoM4aFU7EREREREREalR33zzDVOnTuXQoUPVbeHh4bz88stMmDCh1q67b98++vXrh5+fH8888wyxsbFUVlaya9cu3n//fcLCwhg7duwvjquoqMDFxaXW4mrMNOJJRERERERERGrMN998w8SJE89IOgEcPnyYiRMn8s0339Tate+66y6cnZ1Zt24d11xzDR06dCA2NparrrqKefPmMWbMGMAomv3mm28ybtw4vLy8ePrppwF44403iIqKwtXVlXbt2vHRRx9VnzstLQ2LxcLGjRur2woKCrBYLCxduhSApUuXYrFYWLx4Md27d8fT05O+ffuyc+fOM+J87rnnaNasGT4+Ptx6662UlpbW2s/EbEo8iYiIiIiIiEiNqKqqYurUqdjt9l/sO9V277331sq0u9zcXH744Qf+/Oc/4+XlddY+p6/S9sQTTzBu3DhSU1O55ZZb+Pbbb5k6dSr3338/W7Zs4Y9//CM333wzS5YsOe9YHnnkEf773/+ybt06nJ2dueWWW6r3ffHFFzzxxBP861//Yt26dYSGhvL666+f/w3XE0o8iYiIiIiIiEiNSEpK+sVIp9PZ7XYOHjxIUlJSjV97z5492O122rVrd0Z706ZN8fb2xtvbmwcffLC6fdKkSdxyyy20bt2aiIgI/vOf/zBlyhTuuusu2rZty3333ceECRP4z3/+c96x/Otf/2LgwIF07NiRf/zjH6xYsaJ6VNNLL73ELbfcwm233Ua7du14+umn6dix48XdfB2mxJOIiIiIiIiI1IjMzMwa7XchTh/VBLBmzRo2btxIp06dKCsrq27v3r37Gf22b99Ov379zmjr168f27dvP+8Y4uLiqv8eGhoKQFZWVvV1+vTpc0b/n283JCouLiIiIiIiIiI14lSSpab6nY/o6GgsFgs7duw4o71169YAeHh4nNF+tul4P09a2e326jar1VrddkpFRcVZYzm9UPmp42022zndR0OjEU8iIiIiIiIiUiMSEhIIDw//RQLnFIvFQosWLUhISKjxawcGBnLFFVfw2muvUVRUdN7Hd+jQgeXLl5/RtmLFCjp06ABAUFAQcOZordMLjZ/PdVatWnVG28+3GxKNeBIRERERERGRGuHk5MTLL7/MxIkTsVgsZ4wOOpWMeumll3BycqqV67/++uv069eP7t27M23aNOLi4rBaraxdu5YdO3YQHx//q8f+/e9/55prrqFbt25cdtllzJkzh2+++YZFixYBxoip3r1789xzzxEZGUlOTg6PPvroecc4depUbrrpJrp3707//v355JNP2Lp1a/XIrIZGI55EREREREREpMZMmDCBr776iubNm5/RHh4ezldffcWECRNq7dpRUVFs2LCByy+/nIceeojOnTvTvXt3Xn31Vf72t7/xz3/+81ePHT9+PC+//DIvvPACnTp14q233mL69OkMGjSous/7779PRUUF3bt3Z+rUqTz99NPnHeO1117L448/zoMPPkh8fDzp6enceeedF3K79YLFfrY1DkVERERERESkUSotLWX//v20atUKd3f3Cz5PVVUVSUlJZGZmEhoaSkJCQq2NdJLaURP/W9BUOxERERERERGpcU5OTmeMFpLGSVPtRERERERERESkVijxJCIiIiIiIiIitUKJJxERERERERERqRVKPImIiIiIiIiISK1Q4klERERERERERGqFEk8iIiIiIiIiIlIrlHgSEREREREREZFaocSTiIiIiIiIiMhZLF26FIvFQkFBwXkdN23aNJo1a4bFYmHWrFm/2tYYKPEkIiIiIiIiIvXelClTsFgsv/gMHz68xq5xKhF1ts+RI0cA2L59O08++SRvvfUWmZmZjBgx4qxtF2vatGl06dLlos9T25zNDkBEREREREREGp6qKkhKgsxMCA2FhARwcqrdaw4fPpzp06ef0ebm5lbj19m5cydNmjQ5oy04OBiAvXv3AjBu3DgsFsuvttUVFRUVuLi41Nr5NeJJRERERERERGrUN99AZCQMHgyTJhl/RkYa7bXJzc2NkJCQMz7+/v4AWCwW3n33Xa688ko8PT1p06YNs2fPPuP4+fPn07ZtWzw8PBg8eDBpaWlnvU5wcPAvrmO1Wpk2bRpjxowBwGq1YrFYztp2yvTp0+nQoQPu7u60b9+e119//YzrHDp0iOuuu46AgAC8vLzo3r07q1evZsaMGTz55JNs2rSpesTVjBkzADhw4ADjxo3D29ubJk2acM0113D06NHqc54aKfX+++/TunVr3NzcsNvtF/Vz/y0a8SQiIiIiIiIiNeabb2DiRPh5LuPwYaP9q69gwgRzYnvyySd5/vnneeGFF3j11VeZPHky6enpBAQEcPDgQSZMmMCf/vQn7rzzTtatW8f9999/Xuf/29/+RmRkJDfffDOZmZkAeHt7/6IN4J133uGJJ57gtddeo2vXrmzYsIHbb78dLy8vbrrpJk6cOMHAgQNp3rw5s2fPJiQkhPXr12Oz2bj22mvZsmULCxcuZNGiRQD4+vpit9sZP348Xl5eLFu2jMrKSu666y6uvfZali5dWn3tPXv28MUXX/D111/jVMvD0JR4EhEREREREZEaUVUFU6f+MukERpvFAvfeC+PG1c60u7lz5+Lt7X1G24MPPshjjz0GGHWgrr/+egCeeeYZXn31VdasWcPw4cN54403aN26Nf/73/+wWCy0a9eO1NRU/v3vf//iOuHh4WdsN2/enJ07d+Lt7Y2fnx8AISEh1fvP1vbPf/6T//73v0w4mYVr1aoV27Zt46233uKmm25i5syZZGdns3btWgICAgCIjo6uPt7b2xtnZ+czzvnjjz+yefNm9u/fT4sWLQD46KOP6NSpE2vXrqVHjx4AlJeX89FHHxEUFHSOP9kLp8STiIiIiIiIiNSIpCQ4dOjX99vtcPCg0W/QoJq//uDBg3njjTfOaDuVtAGIi4ur/ruXlxc+Pj5kZWUBRlHw3r17nzEVrk+fPme9TlJSEj4+PtXbzs7nl17Jzs7m4MGD3Hrrrdx+++3V7ZWVlfj6+gKwceNGunbtekb8v2f79u20aNGiOukE0LFjR/z8/Ni+fXt14ikiIuKSJJ1AiScRERERERERqSGnzSSrkX7ny8vL64xRQT/38yLaFosFm80GcF51jlq1alU9iulCnLrmO++8Q69evc7Yd2rqm4eHx3mf1263n7V4+c/bvby8zvvcF0rFxUVERERERESkRoSG1my/S6ljx46sWrXqjLafb9eUZs2a0bx5c/bt20d0dPQZn1atWgHG6KyNGzeSl5d31nO4urpSVVX1i3s4cOAABw8erG7btm0bx44do0OHDrVyL79HiScRERERERERqREJCRAebtRyOhuLBVq0MPrVhrKyMo4cOXLGJycn55yO/dOf/sTevXu577772LlzJzNnzqxeKe7nsrKyfnGdioqK84p12rRpPPvss7z88svs2rWL1NRUpk+fzosvvgjA9ddfT0hICOPHjyc5OZl9+/bx9ddfs3LlSgAiIyPZv38/GzduJCcnh7KyMi6//HLi4uKYPHky69evZ82aNfzhD39g4MCBdO/e/bziqylKPImIiIiIiIhIjXBygpdfNv7+8+TTqe2XXqqdwuIACxcuJDQ09IxP//79z+nYli1b8vXXXzNnzhw6d+7Mm2++yTPPPHPWvu3atfvFdVJSUs4r1ttuu413332XGTNmEBsby8CBA5kxY0b1iCdXV1d++OEHgoODGTlyJLGxsTz33HPVU/Guuuoqhg8fzuDBgwkKCuLTTz/FYrEwa9Ys/P39GTBgAJdffjmtW7fm888/P6/YapLFfj6TGEVERERERESkQSstLWX//v20atUKd3f3CzrHN98Yq9udXmi8RQsj6XRyETepB2rifwsqLi4iIiIiIiIiNWrCBBg3zli9LjPTqOmUkFB7I52k7lLiSURERERERERqnNVqp1ufQsqrynF1csVq9QF+pfiTNFhKPImIiIiIiIhIjdiStYWZqTNZm7GW9ZnryStxrMgW4BFAt9Bu9AjrwaTYScQEx5gYqVwqqvEkIiIiIiIiItUupK7PvF3zeH7F8ySmJ9LUsyn9WvQjPjSeNoFtcHd2p7SylN25u0nJTCH5YDI5xTkMiBjAg/0eZGSbkbV8R3KhVONJREREREREREyTW5zLPQvvYWbqTPq37M/nEz9nfPvxuDq5/uox5VXlzNoxi1fXvMqomaOYHDuZV0a8QoBHwCWMXC4VjXgSERERERERkWrnOspl89HNjPhkBMUVxbwy/BVuiLsBi+XcazjZ7XY+3vwx9yy8B08XTxZOXkhss9iauAWpITUx4slawzGJiIiIiIiISAO3+ehmBs0YRDOvZmy9ays3dr7xvJJOABaLhRs738jWu7YS7BXMwBkDST2aWksRi1mUeBIRERGRRmf25iL8p2/k1WUFZociIlLv5BbnMuKTEUT6RfLTTT8R5hN2UecL8wljyU1LiPCLYPgnw88oSC71nxJPIiIiItLoPJ9ylIJWBby8K9PsUERE6p17Ft5DcUUxcyfNxc/dr0bO6efux7xJ8yiuKOaeBffUyDmlblDiSUREREQaFZvNzmrvLAD2Ns/hRKnN5IhEROqPebvmMTN1Jq8Mf+WiRzr9XJhPGC8Pf5lPUj9h/u75NXruCzVjxgz8/PzMDqNeU+JJRERERBqVbzYWURlUamx4VvHisnxzAxIRqUeeX/E8/Vv254a4G2rl/DfG3Uj/lv15Pvn5Cz7HihUrcHJyYvjw4ed1XGRkJC+99NIZbddeey27du264FhEiScRERERaWTWZ5aesb0tr/RXeoqIyOm2ZG0hMT2Ru3vefd6FxM+VxWLhLz3+wrL0ZWzN2npB53j//fe5++67Wb58OQcOHLioeDw8PAgODr6oczR2SjyJiIiISKPy9IhAXI94GBvFTnx4dc1OFRERaahmps6kqWdTxrcfX6vXubLDlTT1bMrM1JnnfWxRURFffPEFd955J6NHj2bGjBln7J89ezbdu3fH3d2dpk2bMmHCBAAGDRpEeno6f/3rX7FYLNWJtdOn2u3cuROLxcKOHTvOOOeLL75IZGQkdrsdgG3btjFy5Ei8vb1p1qwZN954Izk5Oed9Lw2FEk8iIiIi0qhYrRaiTvgBEJTpi6tz7by1FxFpaNZmrKVfi364OrnW6nVcnVzp26IvazPWnvexn3/+Oe3ataNdu3bccMMNTJ8+vTohNG/ePCZMmMCoUaPYsGEDixcvpnv37gB88803hIeH89RTT5GZmUlm5i8Xn2jXrh3x8fF88sknZ7TPnDmTSZMmYbFYyMzMZODAgXTp0oV169axcOFCjh49yjXXXHMBP4mGQYknEREREREREflNdrud9ZnriQ+NvyTXiw+NJyUzpTppdK7ee+89brjBqD81fPhwTpw4weLFiwH417/+xXXXXceTTz5Jhw4d6Ny5Mw8//DAAAQEBODk54ePjQ0hICCEhIWc9/+TJk5k50zESa9euXaSkpFRf84033qBbt24888wztG/fnq5du/L++++zZMmSRlsrSoknEREREREREflNheWF5JXk0SawzSW5XtvAtuSV5HGi/MQ5H7Nz507WrFnDddddB4CzszPXXnst77//PgAbN27ksssuu6i4rrvuOtLT01m1ahUAn3zyCV26dKFjx44ApKSksGTJEry9vas/7du3B2Dv3r0Xde36ytnsAERERERERESkbiuvKgfA3dn9klzPzcntjOuei/fee4/KykqaN29e3Wa323FxcSE/Px8PD4+Ljis0NJTBgwczc+ZMevfuzaeffsof//jH6v02m40xY8bw73//+6zHNkZKPImIiIiIiIjIbzpV16m08tKsBFpWVXbGdX9PZWUlH374If/9738ZOnToGfuuuuoqPvnkE+Li4li8eDE333zzWc/h6upKVVXV715r8uTJPPjgg1x//fXs3bu3eoQVQLdu3fj666+JjIzE2VkpF9BUOxERERERERH5HT6uPgR4BLA7d/clud6u3F0EeATg7ep9Tv3nzp1Lfn4+t956KzExMWd8Jk6cyHvvvccTTzzBp59+yhNPPMH27dtJTU3l+eefrz5HZGQkiYmJHD58+DdXoZswYQLHjx/nzjvvZPDgwWeMsPrzn/9MXl4e119/PWvWrGHfvn388MMP3HLLLeeU1GqIlHgSERERERERkd9ksVjoFtqNlMyUS3K9lMwU4kPjsVjObeXR9957j8svvxxfX99f7LvqqqvYuHEjTZo04csvv2T27Nl06dKFIUOGsHr16up+Tz31FGlpaURFRREUFPSr12rSpAljxoxh06ZNTJ48+Yx9YWFhJCcnU1VVxbBhw4iJiWHq1Kn4+vpitTbOFIzFfr4l4kVERERE6rmO7+5ke3QmQXsDyLo1zuxwRETqlNLSUvbv30+rVq1wd3fUdHp48cO8s/4dDt93+JynwF2I8qpymr/YnDu63cG/LvtXrV1Hft+v/W/hfDTOdJuIiIiIiIiInJdJsZPIKc5h1o5ZtXqdb7d/S05xDpNiJ9XqdeTSUOJJRERERERERH5XTHAMAyIG8OqaV6mtyVN2u51X17zKwIiBdAruVCvXkEtLiScREREREREROScP9H2A5QeW8/Hmj2vl/B9t/ojkg8k80O+BWjm/XHpKPImIiIiIiIjIORnVdhSTYidxz8J7yCjMqNFzZxRmMHXhVCbHTmZkm5E1em4xjxJPIiIiIiIiInLOXhn+Cp4unoyaOYqC0oIaOWdBaQGjZo7C08WTV0a8UiPnlLpBiScRERERERER+YVfq+MU6BnIwskLSS9IZ/AHgy965FNGYQaDPxhMekE6CycvJMAj4KLOJzWnJmp5KfEkIiIiIiIiItWcnJwAKC8v/9U+sc1iWTZlGVlFWXR6vRMfbfrovJMUdrudDzd9SKfXO5FVlMWyKcuIbRZ7UbFLzSouLgbAxcXlgs/hXFPBiIiIiIiIiEj95+zsjKenJ9nZ2bi4uGC1nn3MShvfNqy9eS33L7qfP8z6A2+ue5M/dfsT49qOw9XJ9VfPX15Vzne7vuONlDdYeXgl13e6nv9c9h8CPAIoLS2trduS82C32ykuLiYrKws/P7/qZOSFsNhraw1EEREREZE6quO7O9kenUnQ3gCybo0zOxwRkTqnvLyc/fv3Y7PZzqn/ssxlvL/jfdZmr8XfzZ8ugV3o5N+JSJ9IXK2ulNvKSStMY2v+VjbmbiS/LJ8eQT24pf0tDAwdWMt3IxfKz8+PkJAQLBbLBZ9DiScRERERaXSUeBIR+X02m+03p9udzbbsbXy+/XNSMlPYcGQDeaV51fsC3APoGtKV+NB4ru1wLR2DOtZ0yFKDXFxcLmqk0ymaaiciIiIiIiIiv2C1WnF3dz+vY7q16Ea3Ft0AY7rWifITlFeV4+rkirer90WNnJH6SYknEREREREREalxFosFHzcfs8MQk2lVOxERERERERERqRVKPImIiIiIiIiISK1Q4klERERERERERGqFEk8iIiIiIiIiIlIrlHgSEREREREREZFaocSTiIiIiIiIiIjUCiWeRERERERERESkVijxJCIiIiIiIiIitUKJJxERERERERERqRVKPImIiIiIiIiISK1Q4klERERERERERGqFEk8iIiIiIiIiIlIrlHgSEREREREREZFaocSTiIiIiIiIiIjUCiWeRERERERERESkVijxJCIiIiIiIiIitUKJJxERERERERERqRVKPImIiIiIiIiISK1Q4klERERERERERGqFEk8iIiIiIiIiIlIrlHgSEREREREREZFaocSTiIiIiIiIiIjUCiWeRERERERERESkVijxJCIiIiIiIiIitUKJJxERERERERERqRVKPEn98dNPcN110KoVeHhAVBTccw/k5jr6LF0KFgt89plpYdYrFgtMm2Z2FCIi8nOnnmcWC2zd6mjPzwdXV6N9xowLO/e0acbxcvH0HBUREfldSjxJ/fHOO1BQAI8/DgsXwoMPwuefQ9++UFxsdnQiIiI1z9cXvvjCsf3tt+DldXHnvO02WLny4s4hIiIico6czQ5A5Jy98goEBTm2Bw4Ef3+45hr46iv4wx/Mi01ERKQ2jB1rJJ6efNLY/uILGDcOPvjgws8ZHm58RERERC4BjXiS+uP0pNMpsbHGnxkZtXfdefMgJgbc3Iw/Fy/+9aH1p9qnT4f27Y1jWraE2bMdfVJSYOhQ8PEBT08YMAASE888z4wZxrnS0s5sj4yEKVN+2W/ZMhg1Cry9ISIC/ve/X8Y2a5bjPjp2NEaNiYhI3XbFFXD0KGzebEwtX7oUJk507M/Ohrvugg4djJFQPj7Gc+XHH395ruhox/S9X5tqdz7PlXNVh5+jNy1cSNZtnfUcFRERqUVKPEn9dmqqQNeutXP+TZtg/Hgj6fXVV/DXv8Itt/z2MfPmwXPPwT/+AfPnG3WoTpww9u3ZY4zUOnLE+FL96adQWQmXX258kb5Qt98OI0YYUzB69YL77oNVqxz7166Fq66CFi2MPlOnws03X/j1RETk0nBxMUY4ffEFfPMN9O4NISGO/VlZRt2nBx6AOXOMZ1WrVsYz4fTnABj7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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from auto_robot_design.description.utils import draw_link_frames\n", + "\n", + "\n", + "thickness = 0.04\n", + "density = 2700 / 2.8\n", + "\n", + "for n in kinematic_graph.nodes():\n", + " n.thickness = thickness\n", + " n.density = density\n", + "\n", + "for j in kinematic_graph.joint_graph.nodes():\n", + " j.pos_limits = (-np.pi, np.pi)\n", + " if j.jp.active:\n", + " j.actuator = TMotor_AK80_9()\n", + " j.damphing_friction = (0.05, 0)\n", + " \n", + "kinematic_graph.define_link_frames()\n", + "draw_link_frames(kinematic_graph)\n", + "draw_links(kinematic_graph, graph)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`Builder` лишь интерфейс, который для каждого звена и джоинта в графе создает объект. Объект, который будет создавать описан в `DetalizedURDFCreater`. В нем есть две функции `create_joint` для создания объекта джоинт и `create_link` для линков. По информации вершин, метод понимает как собрать объект.\n", + "\n", + "Теперь появился новый билдер `ParametrizedBuilder`. Теперь в нем можно задать кинематические и инерциальные параметры и он будет собирать объекты по ним. Теперь нет необходимости задавать параметры графа по отдельно, достаточно определить их при инициализации `ParametrizedBuilder`.\n", + "\n", + "```python\n", + "thickness = 0.04\n", + "density = 2700 / 2.8\n", + "\n", + "\n", + "builder = ParametrizedBuilder(DetalizedURDFCreaterFixedEE,\n", + " density=density,\n", + " thickness={\"default\": thickness, \"EE\":0.08},\n", + " actuator=TMotor_AK60_6(),\n", + " size_ground=np.array([thickness*5, thickness*10, thickness*2]),\n", + ")\n", + "\n", + "robo_urdf, __, __ = jps_graph2urdf_by_bulder(graph, builder)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from auto_robot_design.description.builder import Builder, URDFLinkCreator\n", + "\n", + "builder = Builder(URDFLinkCreator)\n", + "\n", + "robot, ative_joints, constraints = builder.create_kinematic_graph(kinematic_graph)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "\n", + ">" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "robot.urdf" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "auto-robotics-design", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.18" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/jmoves/presets/MIT_preset.py b/jmoves/presets/MIT_preset.py new file mode 100644 index 00000000..1f65cd46 --- /dev/null +++ b/jmoves/presets/MIT_preset.py @@ -0,0 +1,26 @@ +import numpy as np + +from auto_robot_design.description.builder import ( + ParametrizedBuilder, + URDFLinkCreater3DConstraints, + jps_graph2pinocchio_robot_3d_constraints, + MIT_CHEETAH_PARAMS_DICT, +) + + +def get_mit_builder(): + thickness = MIT_CHEETAH_PARAMS_DICT["thickness"] + actuator = MIT_CHEETAH_PARAMS_DICT["actuator"] + density = MIT_CHEETAH_PARAMS_DICT["density"] + body_density = MIT_CHEETAH_PARAMS_DICT["body_density"] + + builder = ParametrizedBuilder( + URDFLinkCreater3DConstraints, + density={"default": density, "G": body_density}, + thickness={"default": thickness, "EE": 0.033}, + actuator={"default": actuator}, + size_ground=np.array(MIT_CHEETAH_PARAMS_DICT["size_ground"]), + offset_ground=MIT_CHEETAH_PARAMS_DICT["offset_ground_rl"], + ) + + return builder diff --git a/jmoves/setup.cfg b/jmoves/setup.cfg new file mode 100644 index 00000000..c5336964 --- /dev/null +++ b/jmoves/setup.cfg @@ -0,0 +1,5 @@ +[options] +package_dir = + rostok = auto_robot_design +packages = find: +python_requires = >=3.9 \ No newline at end of file diff --git a/jmoves/setup.py b/jmoves/setup.py new file mode 100644 index 00000000..436a50a1 --- /dev/null +++ b/jmoves/setup.py @@ -0,0 +1,7 @@ +import setuptools + +NAME = 'auto-robotics-design' + +setuptools.setup( + name=NAME +) \ No newline at end of file

!KG%k7-zbHC%2gzj6(&3M4Goa*gnda<91h&LMKRM9|CfIVZv| z2w0vtjCmr}>4kaI^IUX@T+}tpqesH>Qr8H-AYl3KFy_0gi(Z)jreQhtP&xIRLQWlH ziGFh+)ob~+N4W5N0G788W8TiX=!H0D8n!nWVs8**VvmIF6I>&FyWjR7!?^!oUGzc( zHx1k4Ok$7Y8aBRqB)B81D%(d*#(fm)q8Im9_HCzC@AKagc>dzkYuiDNDFW!}i^_UN zt8yg5lOGbakl1$VEj}SS5tA=l^}Y?IL4sb~y?U!Awc>WI@+((MN+Pz<-a>lq<^J4x z-iMFXbtFRN=*3-lPS8>kqQkSIMeT)Lwd%f`53Wh59KCopP*o&oDGAZxS5VVwp=1mXZ)1pB07Y!RmJsDn~DT z?&pc&d2m52D2a|XqH9%S*D+*WAQs^IY<0$U3~4Ee?k*V7-QC9eBO`F-%yqN~ZRZB}rNF$tVccZMAiQ||z6WRP|X(qDrj$U>byry(_6G2N!hz^AHV67ReJ}04a^s?S`jWkLUK}$)94up+eCp30Rs2sg) zRJukQ?TMhJBt!?oW|R|}gCtarUN*aWTIbWOO$03^AvzEiOPuH;L#j)3^s*@7pNHo- zBxorK(SfiC=NgKMBvg)G7VTUkJjWqHOG${1PkzEPoGwzQxv-fNpyF?2;5z*gYmwP;mXI*vjss*Nk}8C=NMOZE|bQO*BiYs-b{l8 zE$H(xj4>lHKa`imd60Qw-t=;U7S@ZoVg%;7@~b$Xd-THmF9=#nLU$qLiHKLq6J0|V zLlL!VEcobD0D!BoH5SjfMoh>`iHZCpEl* zO$}N|@Gb=Z?m8M0^s+a;J$8jR$*DmL3HD8{L4scP=DKTy?`BYg77`p|nMOr|UL5%u z(U72*-XvGgX749@T%?5rXK=1Tf?oCprE7%uEP3U$kYFUrHAv9Q-UM}x@V+QC8d^x8 z>^Zdu&zgpoN5uG1myW=qQ3-eAhkKpoN6Z72kP>T$CCl=*4&4 za}8QZ*qnEb>2D#CpqIrJCt_wPov=ESpcmhc&s#+c36wn-ozfUV%;DSdxdtt)7uRGN zS@;*Og9N?w4*keADp^S2P8S-ii(a-qdQA&mos)$GMogi>y6A;*+{>?=1idVmaP5WW hCCNep^RduiUG(BN(ehT&LIP2u&>%rC=5|%}{{Xx4lNta3 literal 0 HcmV?d00001 diff --git a/jmoves/apps/optimization_analysis/mesh/G.stl b/jmoves/apps/optimization_analysis/mesh/G.stl new file mode 100644 index 0000000000000000000000000000000000000000..26bd756483044fd920c5be95cb75acc81c2d4b73 GIT binary patch literal 393384 zcmb?^d0bD=_y4V4X+bJc2^AF*vPRv-5~4`SP9-7PlA=u!;cef^zGcapHT9aA?AiBy z-=plxmi*3ry*}T^+!AJLFap>pd`l z)~{NNdSx&bc#=Z1=OGzb9TKlfJ*y3PS6G-rCw$U9{TLG=}eL+`xsF zH(p4l#g8W;t}aymynq-_9!~^eZSQ()diCS<$TbfZc}~Ob?#UEy&$T7Vhc&FQ%_^}+ zPdoBxd1YqRupwFcW3MO(>FG}FEICi#(8g?if?o1*{w^`a`89Qi7QT@FMK~8YvlzP* z^r>|dhIL^ZSd$>^t?$H6y*fpc&o<#~U<9@&2<2|h(iF>N7G&rvdnZ@bjY+lp7sT`N zm2}q$JqyJ0L?hj}y&XMN5`-E@y2?k}q|%{9u?m(f3AUz}cFZCc6Eh^w_Z#VHxK3Vk z2@tObdTOhbr?HV0mOl57yrYf#oF>MuwI$o0b~+o6M&Hw7+k)__W)JPz;v{CWusg+1 z%G%_GZmhN*txxLBey+QI^SwSik9S4^TIp^Q`)w6Ku>?PVtVs~U$Je2fsS%xVBZ*G)`z+(JL#px4e za?{dy5_$Q6+$+e@q0kPO`EWx9|_k6E^s`BDgons*%ipl5TQgY^=ncR4N z6^SI4lE{b0NI~n$(%0lt(h;sVRI4lrLY*F|N_(5S#~RKpCfZ)5Nf0Lg zN>eUI9X}RyD?~iEv6LuAFC-HeZ_WnRBnSj%dkW0>Rd+1|fwB|W*J3tKkBLfK*PKsQHQOkXC&ZvRAU!fMd9MY;5Hg8u*a zmo5bx3)`)h$0f(IlWxx>|EFa{U9Vn0@Re%x{I0v6)w-*Me~*IDzQ!2s=YDA{Z^=S# zCBwg{UZ&4zt&r1Xedi2V;T}z|MF%f3peM`u*^XzprlkRkdVE`a6s6Agpu+m(UcfF< zA!$q-DX_gieu#6UWiqIy3ss^ua`B6?B-`4BTJ+G!-(IV;J=)TVoS3m#%siRKumt}; zuqHvs`OlX42Q(2UT}fkj{$K>wBnT_oG$h-bW@{JZr7`@Qz`vET&{~@}@5TSd%FwE3 zgIbcmgFb0rZROYY(%}O8;`L5k6DkuPF+Q{j*?aGjcESEMh9%er{~O#gryAL_+_ELR zlg5t1YOrMGXK_ZH%>6$2_s5T!Rf&ge~K4Dz!YcS1$54uwFbO zu=@OQBtZ)zv`5eKV}<*~+pv8-m3Yp{mW0)*%n8<4bzOQ3>uZ-?0;|#1NV<7R`e(gz zXp=~?#_W)q>_}x>e%R|)hAA#%IRw@O^Xke5GHdEF>1(4@hSxr9qjaCZwwGw6+8fpN zs%MpMB&4(rnK3?%^@tLf``p*!p{_E)Pmq5elP*WfS;b@JJ$+&o8`+vpo-4?Gyk|<= z&l&1k7(6mUN*QjXyN>%6Aqhg><|4XuO;2V}{kUA%poBJp-{9>qcPaaz5!>-8fIMEi zNVkbGBq%!+W!}-d5yXs9u*@)0g7lXL_{OZj{(# zsQ&-MJ>G(iM%~>-%g(9F%7PLJukCm}j~lgmE0(r!XiOS7t-zAT& z--)`mzpLgi*|_SjZBF?~-G^4vy$u$PJ_$Cy&1x$pm?SGk6FSLw6!GZth@?H;wVTb8 zl{)Tzv_UH?ovyI^&$M`E;JF|OCr@|PPP>z&%y9{zcwS)y)&y(f+b-gfSxHJz(_nhX zPXCT7s5h42_Z5$LG`CQE8Iq(7x*o!{>PDiiZf4xPGlpPI@c!6hCtbBmQmS$oSbB_WITuaol|e!tcnoeW=B{ zY@&3cb1Q}=7-4bzmF~R~b*mQqKJIO_XGZ3P{@Kx*;k(S^HLML;E#6*PoA3zhS(c1F z4`yLmy@_~1KbPt~>(0$9Jl_PN`&%m(nB0qfUi*ZsPu3$km{t?J@6=x>-|`Tz1?y*` zQ}_EYOL}|MW1(}u(DHS)x!o)7)9pn4-dBjI0sUyutscvo`<Abm1hpRalcC_{phC!0Ot0$>|@Z0|)hc(Sch;&K^d?H)q*F`O~3stZ$E9 zoDJM6_Zj*Y&YaW{#;W_AZSttX7&f3zp@b!P&&cl+*HlhaHjW6+J63J1jP-g9D%0(j zs~h`rngqdnqqDrxF_AT2-&k&CTdsQs8}s`}y@Wry>w~fVxYi27uMM7Z?7jr{;**<< ztxG9Rs>2-#{SY>fA|{&J)hC1y*$Pv zfhFy8mazoez_taUY3m-!&7xy@AFJ9cSZ_1mU%H+rFX;V`4f{I_mlBS zH@T$Wk%vv|2CaJIJ3|($#j`$c#xj<;4*8*LdkpdCGzmi0?h$gGCzIGg=Nj_#Kl;1Q zzv&_27V`ZlxezBmH=o4nZ?4LX6}Evj2}1tM%ItW22sR0V*Kh&?g z1z)CXr*%zbo!L9mtNf|%tKrg!3@!dD=D(fAbCa}9{-&}gDF?Xk5B$x6H3>rOmnGUW zVB={W-Uj~K#`XjuDrA#(uwN?sHux>qDr^Iz1)+n315NF#u!E~ym4-cb>efEC@T7Fe z^P}#|Yj~du$)fsw-JA2u)8+64&5Mu9wZBIx-{1D8EnigAz0WJ%=}+)GyvtJk|7~~o zC4$hVQCj z8qD<|1#sQeJdbpp?Ewh4j`2#kgGGLH!4it^Qf(vvLbbso)&k;Hox1JD(IpgH$E{K| z1wac`d(iWDqm=bO3fhe{yQ;JCe-bljVSD%9x)x$hu!q|-nNG;^q!tt6*vQ)kEOz91 z(P&~jf}fg3c&U3HRh{aAjiLD$Wd+^_A6oUGXSY|=d7ZX+_a}H1_?f7{6SVps#oogc z#F9hb_2{L;2NJAF5cZh`k>_rIy_2)~FE9Kh)NO;nX1bM%B^}i-$P4EulK!z9C6g1W zY~Xf*y_#wuHT))V-#B=WDhMy$YRRXKXQf8_rf}al_`9a_JAwImX{1_%)Nh>bKA|Lf zZ5-+C&VQw1&rSSjf#p7XF1~4~wyL#DDEZVsj_d#gmf$ZW{;TM~JOk>GbC=9bO<_+P z7%)@qLow@?NGg30*#3GC#L;aevhAzDe1F{$r~g%b0R0;jlPP^4ll6ru3`;PA|J6RV ztSx_hG**6J9It$NzL6%wm)D7i%bafsf0qctkTt&~3)7*p!Rg5gmL$QxWR%+lN!^!V zP4KPerIF+IbddYENaSo_gkWAoYgk{9T5hh81Y!U4`;v=!qAXvUq+kg~e5+hUed}M4 z^4F_~QSCKsN&P@JCv2hYdHI9xi>|L}Whs52{(8$nE9uT3BR0ED4>IrJJV2}q?a0B#QH3;ywf|09oFw&3zMt?u{pm3yMOT@S$e}&!IB$> zM$EWw7h*qsm4r13!e8(kuks3E)ng50ytd=@+}dBi3(x;4fQ@#hm08`g-mJfIH5p4V zVzsCKZLoFcBX}D;@ib+_%!1hP)Zua$uaCN(pJ=X;I<(O1{gG!Z%~-Dge~YMJfVkyp z#xgnuvk49SWGumm14Vj7?*=7+Fx&WpPKgX;_dRyV8Ly1ky&gSCTgL^`jEC=a_7*j> zlhQ-<*NzEwp&w2aM(jqzK=!27A{mc6ejZqpAe8zFEO}%g8+B%ljPJrWc*M2OUaWE6 zYr1KjiPGna{zi(5=Y_ zv45Dpwf#K4!V_#fwklhCF@(|orf|Lt?7!d~pYl7DQx z*)>-hbSp{e7}Z|R%QVovYxms>=e!Z3r{1H}V!s-jpqocZD?cYGB^DiJEWzFg?4=L{ zhvB>BTyIx7A!V$B5!h>lZ41JVsS9QAlJ2rYY>a|+VFcDB2w_LlwFzBQm2DT_kuGIV zsXO>y2F7J*@h*e+e*Eo~Ay+SqQAP!Y(NF^`UC)yqgmSx#MXU9@kF-yNi6Bf!TqZX? zJWiRtYcRzUYy&0GmL6~~Ew|0ze7cn2=oLGWwVB4_Eux&^h zxt$X=hj|;gCA?3+(YRKmM`KgTX)PZ&m^?yYy|$N&n+C{)w;@z?Bj$U%NG8L08yKM( z1rdlwf^?$2y7#$sWfa+QWwEs2Ln=2`cz1@MlOX)}@tHKvBSC2r6HX6JvC;jaPIMT> z{i61LsIL3}73V0hF=G4$dfX$O4$B+L9Df@!)10H?MU&>_^<@2ywZ%mz($Cb0nV&r( z9-rw6h^D8sbXj^Fb^JY?UASq;VlL&0E~za@TA?AERGKe(m$l%~@FhH}fWDfWKzF~7 zWLR(CXNGL*p=07kqZR~ff_Rk69=fDt81<+T&3v*9+5J;Y%<9>SSgbZ=UtEui1^KQ1 zvEksEL$@`LqT8yC;%pq+4>l%Han0kF1Zx6+;@@04Ati?PF&xPua6cw%4OvGIA{LBp z2|W*}dzda9G=@_1D26522JW9A+}PyEns+%x&y8-%c{y>Uy2B<7t95sUc&oZS*ckAq zE*muEBrR#zjA04(s$$=wx~GO1{ZmF?OHCNoi{tgNdo`?KkM&}kk*X&(ey$_C_x1#3 z&zdqU!S=8wh%Wu-$Q<9Dpmkm}<@~!Cfi=NeVqKeszdK5cUbN!8wYVS0mT6dO_buYv z8g-ymrpxQH#WU!th}xtj+rE zba))!Dr{riS0h$Fe2W-)#Rd9dRnwGRjM`2oR`O$5g8RYSXkcN=sz>giHg~!*tQRA& zCP6UnWzIs4chRM}omqTM4YTpuD*7kZCm4Y>3Bsq1m6_S1-P9o7m$QLA|5y_+2R2k; z>kjRq&Z(U^8yIoDfrdq~ts=RiexE<|{Y^X0T}yvI>c!cxJ8Hz{T-Ygw%x_5EZG%z2 zvs3KfxDgz zg4ivy?LVzLd1*Gi`&yzWZDKhanJ$K`r(vOJU*tuwCP6r0TS1$C8Nwb^_9i&Oha)se zRX)&xzNaB#ea{EJ?q*eGO)rJ8dYW5+F|f4wHh_{xCT`=1ROgOEBVDGd-fsmkWSsHLxz55Zjo2i@Z*8dvQO8ztHz- z;HW%69O#y+lq=;v%{~xqEnS+~i{QuzjulliFC(*~36Xp%fsJ+Z!j$^IzfqDC3nm`F&S zv&IsS*u6VSX`OM6dL7P{$4DN#i>=wb%zJ2r>OiWXFtfRuFDVcb>7JnJdo|_UtBy zz?uZ%a&nBaKRZ3I?VNow_Wa`*OTbZm^kiam7kD1sJAC)~+%c6!oqjK!N!&^60_SGX z-lbeDE&7H&5?9(;jl`X9S6zOZmdH%cHRF8xIL30VR3C5oSakp(T810TU9Kmxg()p% zEV*4)p^G%Un>+BINJE!zx1?7gNvz}EcCxR5p!1}L6%UexdHQSH#zX!=^ep=*owG|~ zmrl3gT7_+JnuIr_|H=bu*ph0yhA5c*hi&kPW}D2Ef0R^S21fIU zg>&0VlTDIYNlYiX;bTKxKTh8bmoWc|kC;^6G*VjiIf<2n4**NFzIt?)bGU>x3Bu>= zk#hC7W9edGi{O@E8$4on+Cq84`|h*__yDj3+rXLx!7zKS6bhWwA>hmK-fN)ihilg` z2_tZ8!G|2NTP~DbsTMpFSQkcMO#*x%EvBQ}bYYoCEEUW)!z{EOkS z0q*GX-BY!g=_UxxXIRspRYcb6Vj~4ddvFx!=G7g#h>*!|mDlHaFIqY3l_a$dJ4dm1 z0Q&=yc9_$Xt!v32)~a5E^5SUaa?@4PjR$8ruR-KCbJ{DYmfSbao$v??v+?rG_7b&xVTV!3ae-uFobYFaI3H;LD+L|g7l}~C+~Ul(^y|bvx=rm zFX64$fAt`WCD;ZYL)i6wdL~6dRKGd+WUvJHqnVMuPlNW40vp%Ik5DStnl3*XeTe%F z9-3}WJGOF=i#IeN=VzPKYAz1)55tClXjdg#xv{*m7#Dek^Cw~-qB}%ivrpK|c0bhL z`SOrx<&0mBSoh&2iX|8^f44dP^u%6nU7{l50^*e+6?XZ7$xEmqL|ki{<&lNM_=qcx z#6sjJb|5Xu3n5Pm5?Sn00~TH5mH0^z$=8bptRmpGSf#xW*|ErgxomqQHmR*f;*yfm z>FHr!^lqn#+}8yD{@C!ufCV=z6o1>b1H}20$+X_l7SyF?9K#YEiN#+_f{@#=G5vYP zjJ7jNV#nGWu(G<>#6Qn{I2JsP-3r3d#*OLZYi6_xAh0AY!GL{PaYMWu??bRAh;7eo zK>xJ+O}ea1V)rH(u!hoYksk3On0t&l$-uvA)R&xHIXunDxp`zsZx3?9Ngs(np3@sf_doE3&jF^>Y4C;P zxr@;};>y~OvQT#jyEa0hShDh}1%12dJn0a5`=8w__MT%eIrfF0hA6qZ#;8$pLCE$B zB_~qj$V7+<&)6cc4;|i!8|`I+md9N7&B9681atVs}hb?i^x9d1p2 zgSQqla50)k`1b2h4yCmwmXUm`dTxTabM8B_c{85N3*S)^D&j`KJX@S6Af6hr>SJN-G_ADWxz5uCX%O}4?K@DK)Ba1lqUnCeUbrN zl5QsLjr8FVSd$icxEQwH%VgMd<@vs{$^55JCSSE5y*nk zvA-b;20Ys_b*QX82I_6?!IqYI0 zhrpwY$50Tqo0by$PA{Z6i&NN;j{^I6$yn;sNFq4X2DeraCU&|=iW^^%29D%;8JLTK zH3@=ipdmdw>4~&EJcWB6*anX{28dQMPb3NmEWu9@KN~@ayjnr-OgJSqzn;RvTnw0P znvwMQyGSqsYXZOM%?c7V`IKY@2rR+ei=)CEL=r8+)icfvISNc`c$laS0Z>d zz!^jET{|z8EIYW9q;E)NSc0>wuqNORzMM+Brezan$R5BFjNsWKOIt1@FD6kq-#+! zX9K@+c*J4I+PX5OgxrFxEiAz{_u)CSb`(fSQB_AzI>Ff0r$M!nKm-MYtFsDI?n#v#39nHOBK57Nwo%pjfngC zlF6o6IW%)J$9lm`mni!pT55hlI=@r>R?8acBF&E5BTv{GqhJX}M1FZs{n9TN;-&Bd|U2uoQM+Z(p7!`zN?6(;bZ1_my4A^t6={X4YWFjUXIv-hmmly-H#} z@(9eo!DvDFIKL%3ZDz>)3PMHcv8R+@*fU9pOLvidtYz}+^U!wdUVuLGw8>o ztWNClAQMvl%th&yZq80T%@X%DY9l?HY0fNdwuwD&w*H4xWahaqf6VqYWy*=((uvHS zGza)4Ya^C%Ih^~m^#9*8M9ulpG~S+9d1RWh_Uc^juCn?1%%Ikjmq~@w^w)J0RK%3& z7xIVBPE)p4og|6d^b&FWGR_`vqh;SZ)G$R+*7&dxXaFmRWp z>i^%VvbvVc=u?N@Pgay$fGFy?Q%8t+e;Aq$!t=*l|5~%e+qy!npOx^p`Z}^kem+quTTCdC|(ZX}*%z!}D~} zE^}H|ZZH42>rU|ZAod`^9&SOjvf`$NRK4FtioX;w0&4>Hj;DcA{;Qv|Zh;T?U5i;L zn{HX?xH!$v1rkA6pJ}74+~=>X8{C}U+pd=+4eLShT|oyd=!$Y@dB-W0!{VD(UD-M@ zKxtahoMH(^V0*ww`4&c;s;5g6?b8_MUtpF+*cgGm`C}mca8!92k+s9fP{(x1wpJR$ z63q9&nt-{S8cwoZXGpm=X&ko}Bd{je^*Pm$t)EO%()=T+eWaeTQS;dd&f|qWVX#ss z8Ol|cPF6x@4&@M-?}5Ev5QFqOMcp$}sMV8UtnLRx_9;78yfCvl!MqHf&+r<&g3dlu z>F`St9A^SEN3bSXcg1>a$0J5lft_G{T*EAPZ4e7{>&0k6_-*UVPA49qf3G)ZF-JAblV*ue zPdIR`!mWjzAG2JVF|h#aS+D6gfN5l*JjXqC>8B=a>VSYw+fm5nB(w*qq0k;2*8n3X-Z5e&?{|vBf>awT znGxF*w}nnQ;?G6HG1q`cIGa^tIVt<8gF^>~BkMTgZqZJ|=-@0drhyu9kKJg=jQbp* z=~EPj@45|l#cf?LCe3#uJR;BH2yHNGtekXyB#UK+ENHHcw6SMP@)CGU>blz!cuVUJ z8nTpk)ujd}RQ665L| zD(!zXk3*>M#Q)O-Jx@(zF2_ga-akB*%YDW9t}p(_RV{z_2I94Tf74j^4UxGwr)1{u zfH|hJShp9Ka2c|g(JBZvdz!HW;lXTlsjrL~%6JEGO408!oWqSI*!$EoXZL)1GvC3D zWz3t#XddA?+MEfKdb8z!>&aMx+1OYUFqhxWr=2`I(K$8~Sg)prtfKZA(dR!ef|&!n z=dRPuCG@JFAAM~T!+8fWhXHF6gt3>av2KTYv*u?{Xg3z?83NA_P3Oi6a}Xc~*`XRU zcMoCmxyJc;6!G)Gnt&%`RgHOd4`G)EP4dAK%rC&2fNOAG!&tR}>{X=|)0Wf^)#8!A#gwV z{8~#NE7s*&5IbeFm0(>Mfo;P~jN3r(rH^NUL)&nb##8AwQz?_MgJ$jBtr`BPB*z&D9i^=N7`b-^2v4l$c@wu?&s)#i~)-S8hzAfv{ zCNJ+v=ls#@>hp4k4@O{3@C4s?V1<6^H13r>Yq-{!<+|sKhx%BNliQ5hxP^zr_x9C@ z-yvhRs=-n5?Q#oPue7c0*}SSE8<4Yw=2rdRlX`tZ#68C>67Z23*|GSqGV7JRnj0(3 z9Ko7kUlQ)XjyShrHiHgR%n-pgctlk9>dbUz0INQ-B^}vK-zwL!w?y1?JR;zeSzyi9 zJ?qJ$?p38Yry9>ItVs~=zKUa29HVk;yDq2uy6ETYM6a8i4IXjoS_13iJu=t(W(>u8 zvwP{$FRR@XdBpp!b=g72n_uk` z7gLp=xb(OqTm5D$4Q=0sVF^ayy#%~*>^<0uf&1urO+zlz+t}2Y^{>bhN0-+mm&-IP zvfEa1&Q@En(aXOfyZ3Gf9XGxS3wWzxy((pkB@gV$-@EYEp0Pu8Nv`z|;^h6N?3YJ2 zJ)P#p*}xg(_w0<>m$TbN%l(N~b)pAdwc1_BO396dT4MOqRPsMsN{rIAr0}t+gn2-M zkQ|$&Twfeacig+E#gdOFO3BzGTJn6osf0Db?sdRq<)kp3R?Pd$A@1ESB_n@nN!3Rt z(yoi8M7XadwcD%T&OPiBm7B@Y)ZO!y7E7=VY+DeVZR3?%mzU7CCKhDuvr;nEmJpXo zCK9&6BRrNxDzgsVp)U&R(L-)!q%4V$nm0AlTFAmay^s(Zp^;9vC?i8t3E3Q~fmV?j z(aMak7ijTsAJV^~l6qB!p#Gpoc;8rpQhc~Zk{C%mJ6t*oikc^ANz zZYk#YSEI@_I@Z%7>zyKxAp7kUaX|pvx@!%Gz?`c|B^o+*8E~eSXRGf)H+!Y$$N*-u zY!1N^jKJ(I;4`!|Q&P(NG4qwbwHSf#;%ABTFF_ewdkCAiJeZrim>YvN!Pi}QOT|Om ziamt-3^&`BkDcG7enWlLs10xKDy`@IkQBvcDyxnUjgVQyKX^n~-MLjU~*#;}M(21S>OsShBuj z61Y}j8(5Pd94RZ2-}DV-WPfWe28knzn=e?<~?j);E@C&|w7D1Vq`HHcE*$fDL+AhqDoV+Jf57J5S28Z)q_XPZ0dG z1*Mi>e^&3555;ZAQBvN<{L#adgwVV4xuD_4?gn3NH-Ne*&nlS)!c z2bc@+f3s!Au$D{#50TlZ;JjT{V`VcdJ%7)5MF$C2LckRgp!N-|l-g;bB2beXT-9_upsq7Lfk#Ge( z%#GSQR?jJ{pRLvkOIzVAZtj!HrVJ{Qumm#?u_i&tJmw-k@J(gCAD3{PM2x_ipk9Wh zx$?DhQQr5ZJWCHV^X5a;LG8I3b%5;54KL-{SGE$9dXY*42R*yZuzM)SHpCn@LHKgN zP@eYvCz&&R6vuAEj5bb_&~vL+$^(XwjU;lsKFl`c5v$&9k-7p4$q8aCSb}Zfbp__G z*K4}@X-3;VJ0lg9DX01@Ri<1F)NWI+)!J<*CVkTR78k52hn~;g6hT+d=)?*{2L-d{ zFq8AZ1*r{Gl3YOr0U`?=-xfPI?JhhY_*%r<* z0oC}Bs#lE<#dZ9kyWXLT6{W*iZJ5zX(ZX1T0>e=CGgt$|Q0Yg(wIv zYunS<{T-ChAScehi+#vEA~w{Iwsh^NeEuJ!@&9yT1hx(DTBvxk-Z4?}go-CEKm6AH zYCXF5<9@Y)cgl7DR}54(?yluS6w|n@Jo{FH(xBB3-S6O+e-8=Q;lTAdARYyX7Jzu) zl1F6R)T8@M3gpm`Hvu(L48UiZ1T|9d`r!ffOVo8mtzU9%#!uaKt@&z=lq&k#B1#U_ z7QvEqu%RMU8(0%?AR9Z9Z@^qWy!(wI22ESaX@Y2YbQcmh#+tp|5Tq;!*0Vf6dY$5CU+5D3Ok@YtNP}6& z0&P3LN=$q*fSbE`zG6*Kn`%?Eb{tf!yVmxrge90&IxbtkQs?ScYU}AC`QO^6vWquA zaR{d+`n$6BFO@KZRuCTC`$PPETCpKUEjbn|w(<0tz8~G@tNo~4e1!Z8ab=dZJ1SU$ zTgdnP^4vV~z|oEE5AUF0y%>QtLEYNCNX5KhiTuMfheoHG(<>bvWP^4M2Qj~>7mRhdqDzGy(Df#NXpuim!5 z_*$$O%_Ce_f0QDdm3ZFgV?G48YMz_~j zfjfI+G=Ye_o&%|<97ueZ<@OpnX6`(P(S%1xkejh5Hdr2ZUWfj6=B{Z)&zdIrlXX%DV^k{{qs2lwy}PJIkoyx zOWvBLvL@I5iB>F9!({(WJ87?}=Cp^0gB-Y!=T_q9F9?T^j#lQ?jgmd*Z>Cs+XAIT^ zKIF5bmA;2Y%K!D>%-O(*ddcQ=p|^uP&RzAlFRq`U+>PEQ9nT(1ePhh&pCAXhyssO% zFwUI*^>dJab$26Y;?1c`R|mP-2{q%e%d~i<$o{H0dio-c<&AmTx3kRY{uZ@lw`rC&4oa(-Wj)AQ4^5gdMs2lDCSMK4f++=o(SDL*a=ozKG+^(Fzl)`*5}EJ-c!XVkh_8wzvgy9S zs%T2Z+g~L>?!7S?{Go}H&B1IyDfVteNCz} zmzy4R(kOGP`g+29xsvPft5s_zHuiTVHt?&h4A(zTxdP()fWb;q;zjyk^(ML-*2MB) zLaeMB61)G*>7kBHCL!=pI=6 z&NL>ZT6{x}G9{a<4WOf>B4!qZQyFQC|JIMssqr&`DsAhFOh^!48 zqOI7%R|Uq5R;&r0$CH}$$MfUbmi4Bv`L+gZK|!%-8!wRtK?ZD_-AB=|OeEdl_domm z2XXW?^>=G`K=_9$fuZc7a5bd4_Y{A(I@$(rTfi(%j zunJq6mF6r>FH2!q*Uk_F*1y>w@#GDW@QBkdKa&spBBkKVQ#c#=t`^S)cGkc^D%+{{ zy#I&KEPgRYuOS+&&_ zZhM$aou^cnpF#WpOE8z0XXBcU?n;GI@1=-7i43!#F@IMXYrrPluOwx^P;DGAcBP$Y zk<{>K62lVA5$2h)BStl(bN34J?KmERZSbsO~2B+1_&&{Hn45@V(H{ahvpuU zUfoM(Z9)xLr&ET~v`IW0m*>`6b#|og+9T5Ce-N0bjk&ynU<1{0#sw`9FKpmzq~J>6 z4K@mF-o_u|WN(#O6W|<75(elI_%6IM@QAZNLP)(;OSSfFBhk}%LJpLe&W(>vgvMyIHNj`z^&r<47XQhlTwqJ;&?z{3H}A+ z)(S$(`(5PNsB&@qPyTm~f3-Yf=F44V+F3mUOE3cW2{L#-hLM^M=~5IhojkV+toFjc zqIGqdV5Sq#TiTF0fHdsZS@MG_{8)m=2Wx`-^Q{AjcazRiA3)%{a7%bZdbJ!fIxbEc zw47gk@Nb?+*c#`Mw8L>yJ3wFwM&LfdT4KMKWNm0CHNV0m@L1uMPY|k^?nlXv|zrpDgIUkhUBHuc2VQ<)!@e#8#=PbEJYLm?@1l zL2Y%&cUEh82SC0vMqnGf_oH~bRyqjv!igwy9u{l^YZ3$#@9OfSv_$1=VKW(fgs|SL z7yszIEh%dULO))G8OvSa3vvVGZR5KzPn$=)Y1>S3A+3}kPjC8oxH(-h-$7nm(}j43 znbS)%9pq>Skd85@=jS@eC5zQ+B=JUT(RjvI$&2Zx{0VEu zaR)Ig5NiVO`HJSsgTJkmhIv)!*p_8PZB_bOV~IcIbKxH$Ek6y12bRWm~P+a%vD3gwe%LW zGGbWbCsLQQfh!6Ik2GQx6fALyE}~xBoXDpy|F-Jo zg$8n+EDh;7GDX=xw1{RJI+Kdx3TaONB06-SGf8;)FQVzbhO+0lm)d(H_*P*XSQA7P zZ5-qYGfoouQL^%*ei2>ytR9(n6!h8_(aLu9iP@fiZES65F1r@Dpw0IsDuz(k^+4D9 zM6K(Js|N6O=(km^A$M9)K^pibbEAuGU`>MX!*RXTvd(B)KRiLfci|SQ88NZ#>Jxpg zO!(h?DKsvYX0Ms7%a!>*3D%1>0UP(Sv)sKfjW~2oQN(sdbWz88B>#Mcw4+H8oj#); z@jCu*&xc*DFR!@Vm#pp2k8T&=BD(*VGr4l3Lc*GWx7278t*F&inc-Ji!BMN{aN>{} zZ@C924rxpD@s@Xsf5R+!1a)gohgKmsLfyD^7uT)rA7{>DpoZ=3re1&uNbA7jJg#{6 zUDrSvcfFKq6KhFdAC*X#Zblz{^H;47V|u0bjJ~cb~G3 zsY(QVec@ay+!AaXe0|BSd=@IHil@Uzu2mR;?LnQpiUeu8^8tCv)bR?|g>$g5ZOCzV zZY>pFIw2P%j!|&V7)D@C@HLUtBQL%Di=5bJC}$%UqKIl7PmLmCO;F9Mpg?=u*;q+i zI#9u*h!MPvOS3NIN5V{;Re2JZyMl9C>aNz$5+zQZB~H^~@?+G@mwS`Ar-o-AkI3vE zlRq2~Mz1DGSb`CF9)tHhwm5%ct5n5$=VuA`13zc137DBz{j@@pRK@M&7tRLm2i7DA z^*2Xr$23Y+GTVLSY+%H)Gy0j>^MpDRh35GrD8yCiTcx9dC66Hnr9KZe2F2T`cC3P2 zU)53>y{RRKz&SV=4Zjb=>U7LBA0;Ksoy+;b2y7dE=ktz|@|iBmn8J?SGsk)dL$ptA zp+4Hz)21uA8fB%d>m96M37#cx%^t{d0`-NS&k-g%x-A_5c#Dm-E^>_{afkdt zoQZ%l6nvq&xtgs|&|GC3KKnyypp~DJW-KVRAL`$hHYrP_g7KeqbE$p3U($+Z`s;(w zegR_Qu(R}IBR|Eb{ZDxu>~YoiYZut#Vg%L%k)L+^>Erya%J;*@3f6_+$UMTyX+L!V z!~|x{wF)EfyB+)`z!qs^(phNB)LHHUsg+>?pDkgtwDp-OM zJZEB6&SJW{O&4YTVM`8ycO2L@R3j-{NiS^ZqKt-95wQ*2c8rGaj}wlp^XskD30TFL zJ&ak!UfVS6a^hCeVsvc+c}2-}Se3->^vf16h9ww*>zP89kd-qlOg=!9?l$KTI0p;c z2HsL;T^7>$Fnu+kC5OOzF&g5WadlWp(sr7#(~IG|aH|f?gPN&Zc8bf(>OwyRTi8PHw%LuJSOp!6Oo*FVfIgZ%NbVQ7psB zh}|4{U)-78l6XQ!cGI8-V!^(ar0qvTHfPIiv3I6w<4>``>Ro+KuJjwkeiaz8Mf+}v z_5U;>yRR9s%TFGPmUo(vi;z=2;`c)_r&3cu#6GIUn)*(nLA^V&Mj0Bm>NFJ{J?fK; zM971CN5pIE>XVq68fF@QRBZXx84!Ki|D{_B*He3+K-Tpv)ak#zQ|$b)0l_s)`O2z? zHW;u+=9_51ydGSh7tZa%njpvhqy-!AzMNYA>cTp;(y%k82gQ9gT#1z%R2!akKpeQy zl_WxC)z_K3#3!9pFV6C9Raknr6*Sn_kKwyc+QQkwH4liDJly_4951zCw|j4;-EMT^ zbIDNt7;oeA?kdb?P8RiQ+nHert_q8@(!lT2^d;T7IfLf68N{l>nFfy=9~AT7G$CyV z8L=-}2gH6unvnVtMy#z}p4g#_`aG7bzf8xvCemdWhO%caMyyRB5fj#W5}XIgSIxfd zY{POVAE7pvd{|U~hFOf*AiCUjN^b$&ZIZy z2Qyqj7gyGe+yZ%!Rdd8?x~g>p+)AmZQzk9y(VLsQ7|kPM@4TTWHqWG0?FX{7WT@ra z_L#W1C;!Z+jxu81n;#HgT+>CWmlxBZ8MEk-Z~YmTJeh37OfTn%^E!JFtO;s5!P$UY zrhk#GHq~YcaQ?OWE_wy$Uq6Hsv(*eh^~CI(a5kX&fBo5jzwa2c#38+vH_ij-k)QAB zkq}2Y?CWtKoR>Hba+lQic@tgk(x5~`ChZSVMt+UtvKlc0YXauL2P<~Yv7>VN!zM0A z5$7cqz-c9Zo=>HLP75T+OLhN23ljsCIumxt6|gR;S&h%b7Xr`ry{;v7;Or6}(P{J# znw}h}bTZo^TU16DW3QF(sgK4$~pRRc~aQO8X^p+pcG_8iV4 z`bD*^vh{_m))wdmneb|D0o)I~CxUayAp6Y!T9D!f*=K%mqNCc9csSAVE9AkcdeuBQ zZ#XAX{eK-eCla`WP&dXe<5}EsLw0KWGqFSeHssrELl!#(D&Ayz5qUn; z?6~?^^d7I)b(U6brpX3JiSe!p3`;N~vcDm#Rq;TaF{&*fcKdClUZXO}m#|nidYU2Y zJM)E@^W2LV1{$*V^Ph-rr`r<43`4g1<1=wBQ*As82Ofjn4l=#gFvr1rC(*GHpV1D<$_#(lZU`>M1 zcds{iXszg2%S4u!29?-;UKN`)^C7r08m{Rk2wmHBqa%v!=p~y3uG-swvw(RNd0G7W z+?!xcP_xE$DJ@kzsekJU>`Z_m8~5RoIBhRq_Znxl!l`eT0`u=agk^W@Nm^Cb*Sdb~ zecK1uy~a6_a2AAz5esTLh>iV_!JTD_^GC5J$fI9m%}&A@JboiAxV$@@2N&E?pA$RJ z_66iYo@r8@*}V>6pFcLCSb`CJZr`Orm09mP0Mje4x<=<$}@>gfj0gG#KHn3hEakh3xW_KZ-rZ2E( zI5!lxkVjn2a%Qzh*JNe?889rtXUpQM;4n*C)nlm}ELgqKFlMN|IDZhM;jEM&3cE3B z7Tx0Qz#(uyMy4CH+QW{Bt%B4_=^dU(Ebhl#TK`gQ4uS6~h%;spwui*|w^fAZKquCC zKq5`JX2;qdH)c1l921w=S`hp^@Q6UALfMxcb4{V&uG?~Bh5Ljx!Kv&GV%Riobnd~B z94=27XR;=E>*v+(iC5qWdKI~{2f@2(lb1~yu0VmaGeZj@YtweSIJJ%g^rLe|eKs_C zA2lD~$*=_1mcW|SvpMRsp9%ZutKOd6_aH`KO>h=AwCV-4$_HB2?iHMZv2(N7v6mf} zGs@do+r1$>QnG{Yge+5xz`3ZnPlB+_zXAK!ESIjC;?DIP=ZRuX-~-S$VwLg_QpZk> zxV%(sgGV%8){edSx{O}E>9|J~QH=-d0m(G?Ed^T4^iz^A^GrtFwvL3VZA?}Kw{Bd3%S zmC0Vuy0SDTxs;p?$|L<;)%@C4AJUYU#s{?K@61Fj!CAOi6MT7n9jkO+m`~p=YsTe_ z;@r-GC8flpIU$9WO~A%=`&cDd%A&%7Is{8_9xR{LSgB;P@*;gattsy(zKZZo+;{(dbbk6IJrw5XDVdy7XJP7Upzru441icH=rwaO>Sd(5RJ z(@ROzpFC3iwmI~?(VHoXJNyPZmHZ<3uJH>>2_2eGjt?@Iw*Oa3S~bZho^w>hd`+qn zPkw8I;>!q@V7*uqc%urYD4zQ&(fvOoxx7@L4Umg0XvyP3GilhWQqtvWK1r{v+DN)M zQ3=*gr{m5ypzig`NE)29@bI!mI#8>O9GXbT6F*}K=RpfX$JsW@k^BJmx~L9!S^>_S zOewI?W&L^=-_*h$Zc$Ao{!;)eODZPgKWnHA=Nkmx+$rL$Uz{@x>+U)`C4DVqXCCLX zesNAM)&!Lb%X%txE?Bcs#U>Qz(c--Apr&P{+dM)d?yH{ErsX}AuE(ueUqe%hB{-)R zYl0mBxNLGfx;(<^X)opDJ1h2d#2JEf zYH_Q0M5nbj%1$_;Vk6Yp8mP6db6 zoW05;geC@x=bwJeWS$Sj5{%$k#bFoPDP9d-+3GcM9Af4)bLz8%kcLOyNHFA0tY1w? zf~;mi4E|YH8UCXqJDVqQh}!AqwC)Z% zuH3BATB&oX3Y}+PMwSB;Xqpwz3c_q5V9KuQp%^^2Ru-Ia;Se~Vm(Ss~p4CIS{LNbV za@&Ps31%K)+h7Aue(w&aHE)8G-!Tix1TuitoH#WDxcNtO@djhyIYSJqT0oM?7hF@_+0m6Blm@Go5(E6v&n}FN;)~4!A2~ z3ATYX!EFDPrf4ef@u|7fU)1(0CCAp=%l@aTNcbcg9#Qx?P00+&6ipA;5U~U!Y~WOy z$@lE#Mn|ha&*R}d`ZtHhDJ)=@)CkUpS9`0T50A$Rw-)l9=WLUE!6}uW916KH!MV>^ z6YQxSr~7pJp33STJ<8?w;aub|8T$OVS&$zGwJd7+v>WfA#uk>Wl&}P6(ee3%O5<#w zsU1?;{Lvpc1h&EF-KFnZ+OCnB6?Ww#myw5UVA~LPZttQTw1G2n)jZ({ zs6eI96E^X>Ku>+nX#4a>wDPoxK7-iY;SZPl%12B-LT$rkt{J&n$Xr+J8LGO}dWJYV z7w7ZBj_gzuIclwWe&239TSPrQ`6HaPqMpNiXi*Wh=vjyCu>K39TSS`3mcLB%w*dm* zwRUk4)jX(8Mppm(58_eZCUQyNdHL&lq$pU|>jgzLqM#0GZ1wjarc>GLVrh6tZa(dv z$|10g@D)W=dRUvRt)aFmZO%U0vLqw-JY?W|zR>r){{sD3shP$9mnW=V>+^&s1T3YI z7p%wI^&^Hwm9H1og-O zG2r-uyeELb5?p5hYl6L~?+jUn(>x}+8Ot7EL;cmNHgMZrAV*pKznY^g2<{i-La08RR0X*J>_u-kzVjJ}s;W1RGQS zA6ai1R@L+Ue;*EDpkga23J3~zkh9NL>~2&n#2{@t4Ztq!Zd5E(EI2cxene~$18gx- z5ETR)@3lF<@AY5f{p?(4?e|(UyZ6kj*P1_6E4_*1(GBisM|tY1wlwfqpxxb1_uFgZ zf`2NwENft?Eq)1^#pQ3ws`B@hHD4xQvX+YUK2-jW*=H@>G2s1buZ8wiejMMrt5C>A z#`(wC6I9z=Ta{G}59e+l2WVcydMJlYoIZl}P)%XBSNW~X_MYhZfxR7^Nmt}GgMJiS zWo1;P#_=Wby`-N9b@|6uo7PA#PU(KP1+{qhu|88xd-_@&w^-FoO1q%jN?y7~!r9BB zV)4^Y8TU9)>(6u$eBl__6RfNm<)dA{FpfJW&yr@}(%mhWC5c(lI385gS@%X;rFJZz zY+fcPaD5yxyMOBFyW0KrWBKvouYv;S3}ZE{LyjMyT?nnJ^L)0@TikZsT393OW2ODl zE|yR4Tq5<~uItBXsGNm!k;R_0>EyT%rVEjR}D1m8I0eB{s0`!tuH9TpTghM0@o2I^F|xiXWlhC0M^Te?y$cZaDFU^7b?ii?clTt^QNBva}5O}Y+ zqA$FW9oi*r2BJgD;BkTiXJL!0MG||i(OBp|c5Bimgcm?n8znbfscM6BwO2x|9OZwd zRt}ItdaThbQ9pL;2?}h%3LFnsT&e`du^p=)017mA_qT`~FksXH1k@W3(oWj{(vx-ix@34)z2qmj?#Oh0%>QRUUKp zVZ9MExn-tl+p8tryV;02pE1*%TiNoT{PW#?0_49dM`*^aNo5U|Kz62)xn|&i78K{4 z<6Ly8yR_Y39%|E1lTr5!!#U?zfjz-D=T?7tVAp<{6OGOYF>sbT_5^iIwuQ+N6QdEd+ zeE1Gou}{n<#~I{_`{A3av6-gU7A0GDkY9+rBXTcUIe9h17EFH@+0mURg~*B5_mQxK z)$9>u-q!tPswqozpjd%D0Y`Xsh^$)qn@qg9l3m+l#10NH(@Y&I)*{0-%9Jm!5PA2Y zpCom+sKEWe8S+ra9V#4UIn*N=en~9npb^{u%v6(^yO^MlJEi{d!H^79JF?w;_Qd}~Fh+epY6 z{q>ieOjmN;SM)MvA$NyMCYPc)&XB~JlcFM}w<$Y%akyjw3T(j&92-{exVfBpqCd5n-{igRDF zC&*o@H;Nr={YzVD5y^e7=yAJ>59DN!JH5J0k5|bqB44`_Is^7wf$InIti7_YW}1v< zf5)_>ufIlcY{3Kp>8oQBLXON@bMLvcJ{8-ilQ zDi2hZof)TE{)zzWP%P^qk(Y*~N5 zmoyg?*n&9Hq4KJ2i>U941#IgMBX(+smOlQ}l9ul>Vvd1YI=zhpP1Xf- z_dJE2@Tq2)Y}j!XRDhnxum#f=uqT*tx1S;x8Lwmm@{Ti{#g9kQyfzuJ*is;Fc2{DA zEe({5z9BDw25B}ifIC(!u>>mJiCD_ zozdz#8+_h~{fbSe(}P-3TxAT`4^yd{EC`TyrK#zmBR2%11Ex4&Prw8450S?=*rMGq zWi`Wo@m8Cu5etnt9Leeg+LX7(OTCsSks9tIEF~3*fl0ZUiE&IHmq1w;22m9 zD^k)zhMzWKE}j|Gn>x}e=Zx6o@fmdGGe>Au^ydIs zc0EG*$;%8|@DaqGRI0QE{<3w13o8oK3JeI$uQ1sQW26yU+O(JQbpCcLRPJ|n5pA|< z0mBx2CW_}()W%Tx*~htb#GwR1fn#7be9?Oc$j|Q8XHo9wS@AJAtIINIQfo(w2^+Xi zka4&tK#pjn&z^j{AoQc}Nh3BaGlM>#?g+eq|K|x-z4Q&04YrM?4j&f@F;+oc!}t#w zv|b%C9;~4+2#~V}U8CmBGTAUV2AN42wDh2(K)=9y9e5eH1LT{F-%+DA{|O4*DzP6w zG@qOxP>{e7ZxnepidSn zXUWlfA@WR>HJv$qxp0=?^GZ|ZYx7nYm?(`+T_o0+p$9Mr0N|wQ~ol10b8sez&3{&u{ENMP846+-`1jyuC;=UPW-L;J}>&v9?DC#VkmHe7CNe~gAd9WTT< zJI9F4=}+mj6mc)8RMQ&_klX9k=c`|cTpY~8**?RFjR0Ow$14gKr)6eidCIIleB7kA z>@v*oY&i_1+w;wZ`6zK7Ct;bTe4}4?ZuQtrn8CvHIM@>~&+;wgeocDvW;<euG7Rf^1imepd@f#YL*gwh&4np3P0WAv=wUcOw>i5FjOB*ef(AnZw{3T)V3 z9{;-&e|}q3;C+SFDpfddBez=AiBpg6!VDHxh^<<_zm2?NTPMD9YywOZE5--%lj6zw$=bqq8%6+vcQp2Pm)wvv;s3 z;EPr`vj)|x)5fV$!dp0gZxXt)jC)fi0MFggwFcNBgrh`p6MFzPhNu z)%|eQKb7j@=oGr3^I+||#xVX0+_A0azmU^kC5mZAm_P(;CTge9CM}BGR$7W|5lkb& zp5UrAN}>JEzjxaP3cMALAu5{sG-5+TI%~&uj^QU8>hYcTzmQf7C4rcP_q0mYVR9k; z_4)(!^+w%{1p z6SV4ZA#JDEOZ!bnLlWaJ_n^connOgoVeO%{u>p)uuU!fNl^CH>%em~ zw=hjw`6Y&9OW83M-(O@PS?rW(&qFHS&_!RmS9t_$%{WJ+KBq~M|0r+_tcIDNyJ_^x z$qiD!eo)T@`NDh`92@d$Z>Q0~OBR>_}U)JNZ@0OEV3*6~P_`gAiZ^XN= za!)*P*NGjTIg*g4QT*6os76b_k_|rz#cEN}`DA~_PMT>3-47Eg#bQp?8d&EUZCX<@ zysc0KZ#G=WqI&$1>|Y1-AO~27ys4^G_Q!>8EQX5N)vHPKzq!&WwrZZgql$FL#T66{ zyU&*AUWwPRDLq)5`oIeZs`$>;h5}*S8OYkM6l)d`qM zjy(%h%5Y z3yQJN4A@h(wWj>sVL=VwQLT0{2lHNhK(87yp7WXwL~CW9LLpi!xrEAZ9S8R_DxDN ztV%uq#K>J16tK&Stmtz?k;8%c9KZ@o|0vaqcGl*0iIwpTIG!2bx~71|T(+d1FqaOq zmVvg?jEEy_`JS0_d5r>AC%}egY_9QsL zn{?9Q606%fNT3@#Kz-JwYiy`epB2Z3QME4_()oR}+3k&C0$~HUN>m&yd?d9=4`(f* zCM&k!7?{riNATGr$*Xz<8+|hrYC^nYV`kdW`Wq@F%*()@phi`3eQEKIO>9fm;7Wpk zaxN)Uaonoeb_MK>o(-L!rp&8t)NYgV`UbL~@!>MIUo}RPQe7IvqtNcSe!D>-4Yff{`So_YjXkxUC zEtujV@=L6L>uXxo>qfnjVq{EG!4wzc=>@E@wkZwysd2I#a==fLTNV{D*~>Uv01jJQj6b3f*NLcfi3ddtESX+f}O1JL|%Tfl74sl zAhb#$G$}boS0d{{t8!bp^WiOCkxg^k$R)4J*zM&OQqyHcg2MQH84E17kfdOREwZ|M zH{R?)HTrc}b2&A}h?i&VBi3`BBwRaHq(BW!@ZdkKveH%4>;wg-oM5#|wK?2_|4p`W zDUGrdT7@Ymy&spcxfjf(ZD~rYj$JdOyUSzb%%U<0=T2h|{m*@mm;;bd!gnd8^n2B& zXccP2s9iH9i)%UpMYZ8;g=(a@N+}%k;qSFIjAP{!Hf4eW$G~+|RjSsnX3?w}31@cz zSp{>!G50)ujBchn6=*cT#$EG?e(sxa)<_d8FFT~OygMMyZDUU`8Z{tRYq>2}&I`^F z=4gACzo_i3S8#%Ms9HxzkVYoJD%RUgrfIKri<2!h8!5J6j)FK}oAf13o7Fp3_8eV6 zF_980uqVh+Si4+%rdO;S`t(q@68zvTytEjXSSO;lk zRQ7hZ#OsZLs+#wciRvJ_IlIKW5)-P6IPw)j`U6$|?;GZK z>>CZ<>ccZe>GSBYyX3TId)i{QKF^aMk^G8w^!^a2m~MHG)ZN@3TID_w^29D!(M@rl zJgB(=|5@)HSytgdEvg#up!_1zZ)_`i(b|A7yY`l>G*L!`n_R5M_3q`<6)QdYMYRF{ zUjHdc`{qa|!0){*x2;C-|2lTosw$g`@!tG{l`{6-Juxa#biS_Zu5+FK-g zngjh%*ML8mm_;VcSLTYe!;SdX&4by?zk|69z8YC)k()1C(t-vC{F&Q%BFDnJw4kVa zrUpOfHHhuAAI$MqIG(7`3#iHE*fy-^sv*3vA++S~Ez-=&L8yz1>*cCc^IF#6V{+QE z&%=fa3fvDI58i!3YVhbE#w_dTFphn7uWi6DsUMIPDo2WALlwShMm*N64m&YuILCVt z#}F0Oqm1|@{W?tBYq-!V90PlTN*m)K)7!K@J3VzIcZctUrhV^|te95R=c7KK|MMpK zp5jQa7whvzBkq$lNtwZl@~y&?Z`NaumpnP%YGj!{SNq*3m;U^#P;WNm9;R>Tw&+nD z`|9{fp9i0LLe8CTMR9D%Y7D5tHM?KaPOw%VD{u^~hB@JG_4pa@=B#7I0KTX@@CzE< zA*?{kloy4|X?ah~sfb;ce2C@8O zOHWQT;1|bh$;?Dsy2{glud4SSsrpA5b?*J3Az!!1n;pB~i(?B`oR|i=eU_B;sjILo zdj2)wZKo_|QHKZdcCUaM(dsNI8Qqd%DuPHt_|w;jH$Oa>X$*((1e>=35>jE1%g4j10`qfV{g6Mm*ka1DlZ0hvT}@$CZ0Y zS_*NFY)-K!sB5{|i1%{dzzP@i5n^D!*po_i;XqAZeepgPjSGH^Ce{$b9y>bV{$);e~(u4_z88SN4cG;$3iv#+pMlMdQNAm zR_SVp8#h&Ilh2!agf+ME(2Oq*-*(}6BuCmd%l+Uf`tP9@iglCi9iFqDjCC6ifEDD{gW+X<>1lf8Xp?^Rw5TQE-q zds3<1K_zAOu$TOI!Ayp?!fX*yF)FbEpVFeIJn7Orp;cIc>#ajJAXHLTt?MhVhDyqd zppvrkR@?_FDdTv!wJH_cS%d#wHB|P|Z!RbX1Is{B&jXf0_bSDe@7izcU5D)ce)`q9 zce1CP|Kkods;RRKA9crlYm`nws?{c#2LctRpr*Ifcevc6XQ=yjs2i^MeGYZQqoLlq zvPb*0E+)U<>;C`mMH1{?z0t;e%AVo!$kI|_D@+Fw6(a^2^OEG@@`U0)f-kJVoDmqA zFwA4&IsN7Q5sx(Z3*yRx!pasN{?=An0p#JWS7|R&z4>=iv`wejVt$@rmJK}5 zgKF`0H-^ivF2o3w8+;~WPb!tm?l^9>CBS7+%`uXhx2}il3cnDnz}E^~AA_U$#z}!^ z$G2{+sqU$xDtyZQMP5M*>%xeq(!wUgb-&Nm{{vT4>mM_D)>GfJqwXKpJnF1dT(>o> zJO+wFIci-y=oH`6mAQ#+?drjsOq%A`BZ(UhG2q3mY@}L;tOSxyoW_7JU1cNvp3oHT z)NK|tQQF}Vq5s%@L{A*GizPcF6=m`;@&`;ge{AKkwWJr5g+Am7Y zbNE{l+eG2}TpG8Xb<7W;g=Moj-l}!1n!7Z6Lq@Az{!!fOvXkv=w~5}GIGexktLAUV z<`bKbKmkImA502Tsp@;|U}pv{p^3*th7gW{JwYBM)LOq|bA%3F7%ardt*_=LF3(BA zBUd3Ftl92iUgv!td2Za9;%{}Ey88Tt(^K-gt}+H-)%rMNb$8HD zV`lJ7s7&?s_e&y0i}WN+RZ^)&uHbCP>qPqVR*=A3`uSDOZ!LID-q?1g*b|(Irm4(Z zFNx}BO>=hJiRY}wU6h7%Ncjx(<^xx(rFqXs^i+3~DCMk?wYBWty;H~Nd zchKU(Te57t@?J7L>Ij>%YXn^!J(E{Iq2|BC3rJ3}lW?3Dq^Ws!gLh=_11C@n1jV9F zBWMyRumzt>_-Mjv-1sDRbP%H*ZGr^~RHUVv-)Q}q1V+2kxx>`_-o>Xx-lUv~xkf3D=f3{l97xjKh zs(Of&EF2ps=EF{~RoX+esaj-gVR{z!1S9kjQ`qhs_aHYkT%cKDHkHQ{n6EW?O4g^i zLC*sh&0vN_Ko3|HDy)tcRz!c)<6DCskUCWrg+r1bs}l5{YBz>)>=(1JJ{;5IZ5lry z`5zR8bzvY|{`e1#X(+D1Rw2Kl!s);O_7_&QnfruuOv%ElyhVj;$^aG&YtcST4CmN_ z6?pYGjOqXG!|on&*0cH(?!kCcDqDI+BwtuzG_Zx zTp@doDA&h!P>cjcmwyyE23Es2&gf-qeMKWSr}rHGx3iiz3b;#3mbuV|YBfJ%*8swxb89wNaPez4WolAwy|)Nku<&293ckwi=Qj-4)^L2*+D3C2H<)-~)+@aHVJU)x2cyd-6F${W9qx?Q{74h$=kB8dROhr3PNo z0|T9fI~BPX!y8#k$jIFWZ)9db7gT=F0J7?EZ@6h zPb!sZ{BCCMHk%)~Iai1=RjpIh>-$NF2QdQHv15M0{N{rose8r8%6#D5+MnF9LX7c6 zy2FzE{CRL<3yMi~cwcn@+MCisJ+BAQ^J71=*_3d9UKVOkv1N8O-Bt&~9}3Jnpm^N9 z&DO^F^PdsZ1O+}eL54cDw|p03)b5d7f%x8M9UC(}m>=mV_8j*% z1^94EhV+@LMG#}UI)zQ~oyOm6YsWnMy{pWlwhF01i(h}N>}~p<4ENI?biZo^F;E<; zqh(`5{P|mVcZMyV#UGhh_e^^92X)7uV9kWyBDU?s9DdNuf~7vw`Px)?)*Z+2tF4Q@ zq1+hG-2-bEu#x`3e8&`1hAnj->yD;p*g1FX3B~|!yR%`-B6vGvwLq;4x~WrS4oY(m zy{G#<;?Zg7$H037*om-k{`$Hojb)vNeyY4W*MvTGYxhm3z8QYr9eV;! zD$rZg#tq|>f!>NO*e~`3=k5j#zu#jv86he8&J&B!^}HiN1trRQ@1Cx zh*`~f&z6S#{Jw)E*Z?5 zH5(3*@#YOF_5`Dx&h7c8^P8CAAA63sY6LMhR~#k3>zVwcc(vM=XLYQ>Y=3p(zn&ZL zHiz!O_7)VAalJ=A zc-he7*)W6E<~A8RTv0UMV#AAE>aeWUq5{XjY9J49wB~&kvc$T!y)cDw)LUXj6LSi~-NixK6hBvZlX|0&_d%8cEouj1C?h zZOVI{cVY+c_2Nm3VSeE5W%A0%mL7t+f~G@nkb!DDdO8lMd_OaZW1up!y|{r1e`n#w zEVuOL*n$-`rWo*{yRVbQQ1=Ec#DJF!yHDam6vc{Bo%xAQtJ&+&<^r`2lj`z%8}biZj*u}68h~Qw1ZPfXZeqnl znh9qKX5NX4g4UgR{)27IKf{`13qE5oV-Hr{Pie}XmaJuYZCrWEP6K|$>I50S*NP?| zHsHJ89D;8@OX{XI;2t(d$OJn}XqAhbEqCm=gZU(Ol`0V>(ZA-fT56n~_`;R2~ zDrd=-b`Jcuod*l};llH)8uA;RGD!n{ON#x9iqir1JU(_H^FQduW>6{tGeQMFjke}Gh$cq-rNKr9u&8rR_#d7O*5_*n%D=KP3 zJ*5A(PSa)uf213LFWGibI$iPCNZ?Ci?j)?={TU^gal}jMjOir5nS(CW6z+Co=kXt!VU>>!C1O+BM;@EKa35t;GejLww zOcfQl?N|*f;*Z1H$El0y)#3)s{6ZPMvr$WTO|K?7pDm-8=0HYfW;F?OE+Oj|6sGQr z>9KDO7`9-(B=!W)L8ylmH*BvqXW3_JIk$|OW~S4_-;AX8^UJ8^`E>dq$4C;7;8oLD zIeUM$wp~=IpuikRtcJ1Iv^d%4Tz7iI*UBBozZ#$X0dX{&TQ?1cBK@z7c15zl+mu=(&?w;3Y{`jKUTi> z@u&9esd9?9!Zb`#F{W>fY_-ChURqO~9ZxQ!_1b9Zu({Qxl$~${zh=-8Db*!R!&IsM z+Q!IzS2kw#RxZ+F1>Oqx52}*DHMqT9F-^{K6)2mStl285jM{I{pcTE8epu{{kpspM zS|wP`N;j3!bjXn1P*`2UTVXY@sX}Aqn^6Pl2iGbLw*>bCdxDYFs2G`y97L@b8VWJ6 zU+f9ScYn;5U53Rodtgvcew=dxkXt1xayLUS*nxW4(FsMh}WDm??@`qbk*1{#m2t-h6cKSwVqgV4f*F z)gFJ=#Gdu$C$i2`Y{4;bY^eE?KUmhhughmo5!s)Z_t_X2t*_%L9Wg}NS9fm@mD!{^ zynb0Et!P+IcS6RhWtO32+O(YhT108v979P|tUo_g&X1_W4Gp3wwqOP3j;d6oWQtsE z)dLolQI%l@ZWTT@uo7^HuiSp_J=S&ULm>t}nz*&fXsxe2cGf+1=!B@iez6+rr5+w9 zzgnNoX02T-FxP4TGHQK)8Rxl2{Sr@1id>%j&)e6sh49!v1QpIpiQ?k*A&jHE@4mb zUUDx&Zuk9!G%%|_d#);{u9M6)X?j(p$eQJJ8vMQnnL%QfP(N5l9kAIVoz43s*{aJc znR$;_Nzw`6iz+NVg)iD1h@{GIze*x$H61zftU`{&d`YD`my!{o&=3`(qz~{R6`~}p zJoA6UQla($wLPrKzF1WGeIC5nR+L5 zF7}0aS%tXR<@%?}ya0u=h^v7?jNWTl?I{T^4}rM2HdeP)w;C0KLLn|Ho^-^;T<`jf z!N`PRjpwvHQ#X>r@{YUXu?#%M0W)!<>$BQ7AXB!As917QH-3?ta6(YSbv~pin{N=s zTkb3oVqm}Gn9TXex=edEid#9nr`UqY{p2KpkK4l_cD-Imyh`~?Dp;E86t;!& zTI>n3;x80v??S%lMnEPhIHbbPi?_t2d&(^|yCnK-DwkGA&qIDTpED0-ub z?l{-jAFsv79G?p?!lDP4cb)gTeAj()x$gIYyV-E}`J3#b-42TBxh*rWC9PDq)xmc+-LWTl zek8hTqd;N1q@NH2D;9m$sT1^-wQA7@TeZ{Ro;d$Rfb{m;`^xd}W^b(}%y`A@SIDU9 zzC#POe)--u0Rl%BE3hZ1Gx}g6TeM&X&uXz;V>j+YKO_B04Ks0$*Vz;pZ+9AXQ-gis3idcQ%#!^dA$AlHVn?lgRCy2Y zl+{mQzlwy|XOn%ji{ZTLd~%lLx#kgTJtC8y-zzGxC-|aInXNt1B9>eBEfrX-m?;~7 zTE~GszE`1t`wg_!&W9LVa)Tvo!Ax1q$yKTLWtL@xfa1JgsGz{SSImKhZ|7%a8A=SB zF`)w27b|dVSV?ZZHlt`u9Dfr(QK|ym+V;@%n%mY0gkX{J8**fD#%742cP~s}%3_Wz z_5^R1vAZ)?fg-~@Oo)LMxP`DD4k)yv-4a|B3N5aMj4LTC6k6qtOh=(@0E{jB{F73d z=VkU4$dNWdW}5fi9Vn(nioDn9uLI;Y^RgxD8PVoZDQFXzU$)NE5R zhAo(xiuVY_s2M0zK3;Qv#X*L7sF+APFu{lgT9|8mKP%r+Q$`2KbzDYh+`Up6wqQ0Y z_5^G09)`&c6L(8(%;yMHV9fZP9%004buiadF;ij~Z3>f%CU29}>TrfFn3*baQuAkc zv5;@W>D}`Y-0zwmZ@0IAydULGF$c2rh90lz|CZG3;tnwaEJw2%i(1loK#s%;ygC7^ z;eFR6lKt@RN`IDyaqJ7PVZfe%C-Wwp-Tq=q-@yt9Y{3c~57rtuu3)Vf%%N7WS_H4& zz^g^nHPw9U$XDc#owCZ}<$xIWc+WygL&G?>V8!~odVJ==eA4}I^_t(JW z{vJ9R6nHDl;uIAn;VV^S&oA`&ohpF~BMy-nERz*K5qBDM<0z${G|*={zIJ-^V3U2Pa5&_aD5 z0P)248quHQN{`+I4s6N|;(SG6i_E_>iS?Rc$Hq1e<=BGxqWCKVm;;+;FbBQrY*At; zUs0;ZpLD%PYGi>gv{p@68>dQ!3a;I6ey78$gz)?pP{&!yCG~5G3c-`=cyc2!Psk3H@2Z7Q@F|ZoQct?Gh*LF_3#)S(p@Y#MSSC0=L|D1T|DpzgI!#-@m z15Q(8#r26;A@-wMXK&_sHHGFq59inyz8i>&`K`R!mBT4?$BS@|x59f@RG60e%J;uc zW}OPo2qRuj@T6{XR7=wg;7PsRhBnRxFZJm8sdB>YIF?{~ieU@pnTq3Zdy>NB z(GND$zqi6!{gp7}Mhj8ied{ydtgbxB#p#%PUz!;?-+ z+P0!B-H2HhrqlIxM4l;B4GjvBCwADPEg2>fNik~_dxHGhlo0vaL}MEMdIiHIN6h=Y za@L5AZk9p4J}5c7-ByLjXNQ++TfAM#umvk{3xRGN(7aS5rq0Nq`h%4-QEMD38{7Azw^U0RwqRl_W}8A5U6W9`rhQ+U zvwjJ~Y*ehko*<{8Lxg1&>7-AArI|jT(lA&pq*6W3?ImxSScgx@ zU(9e#H9VUkDm>qW%ipS}(zdt8Gkgp%A=D4v!mD(p)WTGG3s2k@F5CGZp%1!EX4rxi zYRqU=?f>J<>NToPE&ky^V!~sS;d=ag*n86Wq4GwiGIeDx-(6^Ud=y{ksmJRbdP@>6 z5aGRDRGct(Wl`5%Xe21G1;49f5vF#>B6E3hZ18oK{G-7#Y~bpVC=dljEM zPE6h;e*D#a?EY7N;OPSQU# z_5}%lsP92a&5EK08awU>j;&Iy%(y^JzFegPH^uOJRbN$(C+$6BLvajIQFvWTGvl-9 zlVf7faoe#c$N-IO#5$Y%le_I>1o|GXBybftmsRq=60bxF&a1*MjaY};H{I5_#c*uF zj7H4ygK7oO3#sAaNYbWztf0U#b^+nDra>8bP^!d`fth)~@c+-u#4&Jem<5m`evf#iuTSRs-;JMVL1QtLBrRo}q30Wb^~ zsY;0V5Rp`fJ;8YUb|)6z|Ge8^P+$vY8{*bNCCp1sEW4e(w&M#?foZWgHZVCZII+9; z?X|=HQQ)>?HO%m4{h+2@4@xio;aOt#W6!2~ysDmBdSRs;58voAT3v62v~^Jo#}-VE z#Pu{_+y_=rZT+=e+VhVB$G~cp>hOCD_H^1dDYJ955CgL&C)n!o#&P=6vv0}~JY8tP zK9Aley#$57mmaU}qbIH3LMT??*21^*Co?w2Bwm`cK#YMadtgs6=T&UR9yf}YB0+(B zh!tXtLxH`RCiSDVZ$t#|bx4nIGN>xGGjXT#G(A4+Q57lWl{;OvPmkZZYAF30q>Pu? z>02}RlH1aP8Bu(38>mn*yNa}9EuomWx!V^Ma}A|%Go|NGs{&VKbAhzsMLKnLWluhxxTKUD3ZSQZYt=cD2INR~LggrsMJ5byw zrrKJdz+1h6crVXb+T-5gf&%vgtKn?dxUik24Wvm>B?ec9!BtzDF9#ax)gL5Sqa5=EKF&-t z{5tuOCDxU}Y*bOP8_259W{o87|BzL&V$u*jzH#L@a;{W~v0|(<+y43*@w^hnu>~t| z3t<%!JU`Of`I8&){J;u)Zx`=y_O%+!DdG zNnP`=1YfC3TWV~pSdif0Xc=2NEGuBDg;%6fW3h$6Nbzf-NgNhQUPeXBFJcSWONXnH z%HXerW8gjkDde)fCeUvKsS+o)>U?+s%N~DKDysn6AMymb;VmAJ%%x*A4a*`bxtt0) zQsHv0?OVXQEV?E+=Tt}y$D=-xRj-0I3qrzWY%%Cqz-ne+lk!-F zr0`7t=LtB%%NWUM-$T>OCQ1$+QNZ#iT$5To7GsEt!Rkw-Yjk&wm7}Qe=~ck2BdtUH6UIAz*;CzdDFw zPq44@hRWx@eAAfPZ(w+o!ps4z^CO2N1=yLGl2-#NsrE)&=!-Fp-`+9^0e|>Ay31~fetEevLw+ZW&JpLCUCD6%m297|5I$Fx|++H6&84z@pb#@9t7qhArI_(N*p+cvHmCKW|SW(N~d}o&*8a$Jaxz`tG=!n)` ztd&;P0{*U_U2nb-_`BGGS=HDRtUdq9m|NZ6T(7E1#(ptp8+!uQeJxY&*f8;|H&pP& zTRC+9Qn_C6Zt_n_RIIG+pZ;-z54{bm);laOU`2Cf1El+bz zw`ocA(S&FjZ`G6(u+9^$>D250DrkNq&GC~<>B!B|@??1S-D+%2m1iGTWAZf2-Mwz4 z@!7MKj{ir2V_-F0A6=_z_7C%NB7 z?o~A#26<9jP+$wDSYuC+tAD~sll#S&7P*RKZX82YM13^UESfWwb_WHvV3s$gbVI9h zR*`zvO<2?`*jMoW@jt>iR$xz%SF|>iJnLVJtxFJN;C^6F@Fr8F(rlX1mcBk0BUeNh zu)Gp0nxXnDVV1Y@uGKQ%iYo6~Fw^kxx6~`ooL+epBV&v57S=xkGQr?|4ts(sN{4?* zJMAoJx92gHZ+-vU3RCPwh0W!+?z8SQD&@xtt-=biA0bH|yn)-_^d;l$WL1xHcJ`K) zwEFS~sgXlD3kkB4hIcQNUUn#FJ=R)D#Jmvt(Qs@Reyf{-wDe318C$Rd^T}1Jk_wq0 zd!m*$Shtk11uNp4m9ra?l{6tpiDB;V$}e^g)tJv{E?@1W&tLp`D$Sg=Uf_je9y;XL z25R_{mo}ONF;tE^!)4XuDo4PrnD%qxr{A1 z296E$&h}lo#g}a9?6>B^-o*;+31)atnR2(1YH}S%6B!fCFiGC&o$gud8vY$xwY9zj zf8%*aGt#lCj4fD!`vke+y$tyDBQ0d>(i(ySQ_^s3sG?NMiQ5h4BsIUIpujZtTldPC z=DnHpFh_Yhr&sI5T_TPX#}Aza1>S0UP8rj}J4)$OMd5tknIAZHowTdjK~P}IJB|lg zLYWf+K|7uk zvXyN9;UXw-j4n6J*fC=>DXCQHhh9!wUbpKyazWos#umJHacp>J_}hv%n?H}_>?d-y z8)fX{CR3^3k0OCuhdse}?d#^epMf>GRpue%S^zi(_5@$_79IJc-N)UH-#G~}@@|ze zCwON}FD{a>Cm5|=(UmXOt1e{?vls3@cwcD-mNTn-D`~`*572YN1|FQdE+eyEiuWtL z)!LEetUY8vT%4gOyt;bub1!O0C+FD-*9Wd#ASxPXbmdWJs!O}9>}71hF>niE9r8U5 zPb&XSl0zNj`0C~Cza>qi6;BF${p@{PYoYh_?>)h=qM=Ksms}G zk0#Q!3Q-LsUj01y`mQyJWs8Tu(Z!P!FEgZN6)xSh43qZ_%?0YBetK;2qCrI3J%OR(8NOCJq#rv73D@rCMIf6}4a^ z;kU|)NR_XxWNg9x(0(mr>vmg82PH*e^v#{mSyMnh?`VCq`P0oF{K2dm)X&te@`` z-##)h*9rO|z4PE-x*1V^zPXGoxax-T#QC2mSaY|^gKwE|A*26zI~n`M3hW7H8s7He zpVoiW?m2HI8AZXO2*Vqws;X)TH`{%HNw$Sqn8gRI2@#;EBX1ZvT}s>g zh@Aw*`nY})uHYfo=2)A$Q9BG2uSNw*O;UA=ZxclY_5^F4?HX&lK8%xh9I7hBz<$q7 zt;LLi!f6jxsNt<|kcIZpi#WMe@n?c9IGz~eU8~yKiO{O4{{>6EPv~llwDVglk!0O( zGGncjy6+%64*feaPN@=e)v>mA0w^*r1q+rH$8}q2J=Y4JRI1P=E3^x2W9796O9ji? z%LiC0j1&#Lcu9x{w713+D_eCof2L6F1Xn@vq`G)F2Pmzge`{;&-j0)*shNa(Zg5q% z)hmy+lBjroN~JxP87IHjwiGP5AJ`L&ArExXj)R_$FrFhQ@P5N;s5Jh0vNjeJ?-tIK zx@^|fcG;29PpHj;k0#VuzaFoR2F0w_(?AvN| ziaJ)_u%t|A6^?;D>8ivyu1s)Is>ICpD6SkYIRN9kW0Q2h`H2cisS?u%R+9g}Dlz7Z z6I}jRB}Q3eu2hM^3cMyAYG)1}ul;c}PBwkjjjBxZE3c^D=i{|YY<0iiE{)f&cQvUz z+b<7%0J$=KPaUm1OPr?p(&DzdtuhD2Yi|%;EtwMo;0WbP3s>G&S~bqE zP}8x8w|p_T0b737nDv4&y~Q*~iz~*gKWWU4K|ME<-%6F3zt2Butap0LuWscCb!BiZ z8Bwt+x4t~%NPjuGdP{~aQ;rz3Uw@iuY8d8dacmg1i#>yNM9TQ*)<(7zt3}0EhwCh8 z+%UNXsZ^SKZ&)lJF8kUa z&~#d(i(%EMsf26Hh;?Oxy1rp0wY}tN&Pz4P2XuWE(m>vJ$X;4hHCj$h zwbCR*X3z<^4=R~K)2(z*oW;J@l81xtcd?r_+~K-LnR4S%>1=+a6E^~akrUla9&E6n zKj#DMrQL4g{GTPQm}$VhTJ0jYW;dZgFuU7`lSAj2{X-XytJ)Y}cvHD@#P7b@KMLO- zCj8Lk4EDvvnPXpAfn&q`;E)0~AQ;xYHk-tI#zI|yy)VfM!}in{s<~`;eM)?Owx@l@ z>GKb3pOCa`N(Gl1LC@Kyw=Za)?UVTxXMKLUN-l}m*ntl6fm#6NkICUp|0=Feea$|n zl~Boa5!K<EC%WvZnnyNzMBepK`f;E%ogE%nN*j0waoj`Pc2P0?dpfh7R7!7- z58~K@V_;8^N1vC)rg+|>t$GCr%w>Gcu_wp?{dkD28EeS?yEC01ic#~~rFTf^AF&^} ze~^jvIGLU9_>#UEH$vQw&(q%zn=MWd^X^Ih>C4zZ?mb_e^T=oz8qU{ z4D3mzDs_LyveNg_4WX0xp<(*G)$6BZe~S*n^8-IuR4T`XPuP$h_vo>?Qv?O>t+=nG zfG2F8e2*F|p2Bh4u>!}2@e&)z)h(;fzD}CV54F?hp88O0%dCU&#KF%MSh?KtDKoTa z%zkH15-OSD>Sfpyj0k)EWc|E{GFoLcpMO-J-&n~>x2dgY$5ee@@#8W%Kw8rld-VD5 z3!IqUSMm*Nw$5WG2PC>rs_n;L4bbPr?kj2VtONbt7@ly8zmmfd?C<5VmH9xM5bO}@xbGzlSZTs~|Ts1$AEjR{_ z4f*HI@>o!Iwrff~KYkoqwKlDU7{2Hrv?L8$wRT$x=~mgQ63Bjdt+$Q5(ggB`rusZG zxSV87?nKMr_k6!^#CiC(Jt)FIzU7Sx-8G33yz?9Q$r@@7aN#}?c|>wE75af= zU{BDh4mEg1D{C6K)st6mYQTLG-jX&Q9fgW@xRRYp^*po&ZxY>vhR^oov!JqEis47n zV^Axh-W{%kr;zKb@`lX@YwxukEhwgcfVZ$8CB!wcwV(z@N_>48)c;CPEf~OO zLcNKvmXFA=NRi8ld7VHQudCvI5&5*n(=kA6h3e22Pl>Tp8~XFSK3{e0KC$`Jn%=mf z&!_%+LXKBy12LXhsCe4kd^+ucs7OeM`^uC1q!SU z{C0;4%&uo3cbRFxSDt62v75bMLqx>RZopr<#j~}cZ3M5d4Xg?FMVB<->kZ=Bo6cpU&kCQ%HrQYj1FFW4i@ig|qI)HzKx}}$9o+QmvZ0PJO1A;`VHK%>kTXio&!}O*SXkSf z%{~^+u>`XTVkSda$%L42hvLWdz`C9sx5DTZzyS9YzFwAHQZjgstv2TG2S25sO(F!2 zLyQ&?v!@yJX_KDPb5;=?OECYW$Z@DYuqs#ev0zu+BKVV^z>qin4pFnF6tf8~DhKXE zi|eFGU&X6w6RPs1Q5I};qX>>AhkwKOhu3wo%oJ**AWg8+?_Y&q$hBZ5xgrAFz-)=I z%h|FD?^xf9-Hhxh@F@O-dwbW;3uFT@Z(`fPK9p$0nX6MSxvEFGuL(z5V-ntmvDHN*xn+0FDe;TBNtfm2QfD6;mR%?>%s_Z z8^+41CQsUJ$kaYze7Qd`EVjBwmI6y9_DV#QSy}Lh^Yq!(^`RVFPiSqx$L_dCT0@4c zh{&#C!EM&)vp(BGg??ZJwhh(A`qkpI8rZY@-9vp6pR$t4oNLIvZ4=neOWin@V8r)N@Rpd#$=b_G=KX_I z1MadboK;)gLqOp72Y#;rM{b27pQj0DLw1G>2&@;Q;j75MD*rVko&}x?exiq(KSK)iOn{h@*lj1bv@ z(_wVC!RW4r(RC}(=Z)$fCnon@C`O1qukWVjQ}Pqox`J>4f!}0~m-V@4&Euqfq;frM zUDZ7MP6FF?H(a=a7=dl8RO5e`@hu@+nDfoH+!LNl@h*Ev$Sz=WXaet&RlCWPwhjWr zF6@4^tjRUN!)u)o$jw>-AAP^AWNZ^ViaB|)CRmHY6VBE(lllGXz}v!e_kz(OvcI;Y zU_(S~Nv_4?hHPZfHQNXb_L#Mv08_%KX?uxxin4C6l30t607S868;&K|E0G=e(8xzD z?9+T!yP_{w$@;wP%pvk-Y;%gM;fZwz2fw_}mKn}tgB+qbt^Sd&V1sLm}G_9T^E z&KbxtBQUPlR{(o8Mhmn=+r%CEF@4(|*1~lvo4<7c#}bT)u>b%3#VXa!{dZV=)2YmU zvse=l^ZsH@z$CEeI-3xf%%U$0;+WGHduRpw8hMQwnP#q>f0WBtm|bWh`*1UwV+rQ> z#hO&AU;mwBWjjZ)YK231Sp{&;y*x$aC{KFjwwjN&161)}&IkGKV$ij=AjOgD`LDX*Og+9WYMcCyMC}UYv(depB@}na>NL%2`b9% z{lS`L&1D}Wdk8if?APZPypNNa5lt!91a;`AsCeR)1UC6$500(lXNhRz!%P+b0M9Fa zSG0iYE zhW9I&y>~nd_|i+*v&8$9SQF$G1^!@H{=~DJZz2Q)w(%17QDR4OV)|9_s@>w>?Aq)E zR`j|j#}Yg~V$ZuS`prD%Bru2Ko*e7N2&@VAmKrZ&Hjo)swO}m2?ylxeO=?I*V_ORO zgTI{A{JW32bT&`nyF05{$IkkMYcvI;InFZN)gHL8D{4wDw))cjVQTJv$3j}#N;zZs z{c!_3T)&rQ&!16{fByd^mjaR%yR5~ri8uk2j})98%Whg>zIP8e^cVGdK#JX zRu$ng(KFXz31&IQnqZG?(s6dO_Gr2Bvlr6X9G%{~ZVd%{n3EZ@ggOWCR>?~=s;!N9 z#1$P6@3av|iNYWBe~h;+Vhwry^Yx`%sTN!h?P(i+I=YdZbo?X32+Wv{nbe^!&Q@Fa z+NvXG&C=soaywbax2}q=O|d38|M0fsK3mP?MMI4_ZiT%P5f$oseClV7+%9D`J6>JK zy*&NZ8B*9-_j`Q5i=+qe$0?B!HozYTkxrLu^4RlX@+qHudb7K(l?|L}VistTn_Pwp z|2x)4717-*vwSd_FBOv_p*7d1HRGJFp3CYAtZZV@`Lh3Em%`jd*V>H+jvm zJc08b^V|;uzB^^CR{iC>Tj^7upR5k?+6Ol?EWsl!j;`%MYktSpSKiv^2*Y|Y0&7yK zLt`+OSRIcTnT^{H7{=c~+#{*Y5yrWTxYzmuKD%z})os%0l+QRancK^^t>&R|wbK z|BCKTZTPG+!J1%S^bG7LKIkbYX1t_$W?&l%L!xqJPkUSkuOf$<@|auU^4u-eSUcdE zR3xt~t^|Yy>TFD_`#eBI{ODr}(HlMF(4kcsZiVfMhQhdZJCT(7yLeoSo{=eXkB*DsL!+7@y_ zMm+R@ew4zlV7~F`Ek)NLV{_izt5%YtH@2G_##yntPcR4`6y#`Cp$vU*cM~^irQIkg8{9Txw zaDBLDshzHspOKN&uBFb#DG!5x5ck}T_z>f6@`1FW8r%wdCE7@sH#gp&^5pOgSY?d5Zq7R&4wtuIJfp>uKF@Tmj@27MuqKsiqiqdN28PQoTGphv)usMA zd&bRyK^@svsXG0c!ecMQ_}!koO7Ln2vv%r9xlsHJ^c3V@dNu}BrmBm70CeRV(@!YSYns@McPJC*%qL@)0*DzM8 zKD1rW>PO9^b@z*iH=QAlu-`Lc|ISZ9t5iQ5EM~5eYpKzb@j_K#jKH>4s^d?0uvtAn zOYx`1aPQ4(UYk~tPOkK&WwB~*bgrtDe7Gf@29Z@U`c>nP|a0m^(ARYONi@-Xv1xK(u@QJ5j1%|>vwdf_G!ln{EeTQ&+GGn zd|KOz;z~M)T7kWUGD0$yYPy9BPO`gO4r^)8I35RaBD^=L`Q z!!>_Q-x2*hCBEcJ{gceNw1swJavTre1>aGN-xFK^mb59v%%p~YBoPp2nX^;Pzx??? zzR1e=U~Aix%rohU?j&9 z99e@SRaB~P%`UUME_(ushKmRs~k{7K)Hh2SS=f6=R?iUjpoMLYW^#!nA|G!r86KpHqY`k*;3$3t&8FA@-883HYtcz zW3_B=rVm|sW;DkVjBqPa^Esw(NX$Y7;juTDSsd4+w?D=5KQM}&o|lryPTn;5m6~rD z_?846_W8#~K^@BGB?Z&GMWZ>^g>6hJRr7)uugUR=ijAuaIa~OC7QK9Z6o36u4KXG! z$@@SbdY-}z|5Ze!RA2hzi<)1b@q)Z`P!I>UGB*C~L|RsRw1BAfUd34Evo>4L(^+lDaV&WZdk%9tJt9@% zp1`)DMoPD>Y|?{#Y5_Y%7=dlzm|K;~6A1dBp1VkbdyX|hO^zlTn_CH_=I{4N>ElF$F9_iIlS`hgMHHbg)~X0Vt~b(ncj0$s_`;&uzBDH0LupXl-KEiRFt^;*$H3wZmy zze0lGYC@z_+*J1MMhkWW5STpxBd~3V#c7htb_{i5#jD2)USU=NtO>rn>{D4qM<+IX z?Rbv;#R$>H_RI6x^0wEsT6b8H`K$TKj8ZZT7~t?K?1i41r=5FCuFh3v$!@O^B-U`;C35cdpbr8TCNfWQ)rm`~K)bw>$FNmf>UgN7|&cUFhdL)nQO^KtyA zf&1fpF_|>96*a5^Z|B*sN!lRAt8v;4HqyTtUHmGM<5t*)i1=YPiS;#WL-W2&nb~ z`gaSYCu`$*r|D{*J3>#=6t<+Vg4KN6Otm!QxgY(Ursj9os-)9DlvUr)c^gxzL zU=dLBK`0*lq&oA(E~lyJgS?4v}b`b zcQ3VF!MX(cYbLiD%UcXobMr6NrScEHz?=F1&s)SZmPOyPnDyRzn%6zY^3F+W-f6h8 zR0(VKX;Z)}PZMd@TVHyotD4IJ)ubV-m3~+N8+wC^-n`lC|EP2IvcLS5P0DTs{D7Up z<^ktvcEf^z&O1N+<+x0_;|5=lQz66QQuV&P;Ay6SQ1;&Xv^!5n*3K8uu=g7Lg*AOL zkk>u?MB5L(uob>cEqq~5s-{DX9&$gx8*D4+gNq-+?x16v56oB%r@KcsX|ZGje8ns1 zBKV5OnjjJ|$cNx^Y>t*Y@!d# zy_~|ei_9e~*`+G`+v-@=(g3VU$v1G6 z{H;9QxV0aD3~X53ugex+OW}20Z&56na9cN`JqwTi!x~znegl>Th;3cY3y2C}HgILFxz z7%d`R_*(E#J4Vl44&zvYa}UIPgDPvyIsZ0|`i6)$aG$C;8}QZrUlZ4tN`%l=`x@N- zTMCW((Vb%nM&L1oGvUvsyscMV+SDmR7+suofiRp?RvC-TSIQP<}m3qst$0Y z8}jiZbIAKX%KlX+M-T326~|UoH0N02T*r`SuV&<_vo*zl=f&vTSo)8g9wFCH_mNVE@K;ZiW-%%oB*BnRw^p+vh4r$E? zoHF2_`W29Eg?9Ak6Ub@UeUlh)8@lWQ{GN1|m}M!^RQk&uxVgP4tMfxdl%6o)!#ds} zo9o*PXgHhL(2y4_S2Hv7jyxRlCZ>AllQCKL^u|I19++^Cq)m6E?pqD`(U!M}%?o?5 z5e^w6$JD=R-i!`hI%L3awYp78`iKau3C_>w*m8Td6|*V`{>F|10=L56s#LeOHslr4)vTv!N1-2htgvm^Rh!y~ zk7)jzZk*YHXD)|0?U4J#wzH!!x?(@}&vN8P3k_M_VXZm7w)mQRzlMzbueV52k`e)t zG17_mny+F*3uTTa_GJdVAow;p=l$<2sd(hVA6i;5i?sm)0^3+##gOkxy-p;eWcS~F z>B>_fM^W#mKgSYm1KWn(+SZQzXQ&73KU%{(6hcPLw2P#)v@yk3FaqXu!QHFG=!-4b zxUF*Fe|Gt@dG0dDlJq3GSQAu^tl_}#P4#8nplIEtV+K4g=L*T{Xh$&u zYl0ofR2#l>MkD5&+*Y`P7%d{yGi~{l+E#4)-9W)B+z)Y<+z4yTTer4n^INpzomN29 zWMm#Wk?25w?t>WNUAbiDIy;K(L7lsE_4vB`mh7fsXTD6y)LMU?SeZN0;4ua~ef@0` z49qa&(hT^%ylZ4ie`W5TJW_`r{A|VSI|lRJqv1Kw{VM6IcA`t+J=i%kpL8Zo=+r(i zx`%F&-qVygeXEtV`R->8*_rZSA$tHvM~jG(b+vhydkxvAkHH*EFaq0#2)Y-w_<;|< zY2lo%0s?#G*8%c$8r>(wua!u^@!u`@z7cxtN8L~Xfio0vt^=^ER9f((k$TLbb|}ZX zFamoECyF=g@mHfC(oM61Ili~?lVR*I1HNa}L!#NMjFoI!kKfo?MBn`h=2(JP8CVlU zt2eRaF7pmR4bxBofmbgWty1+HSBFRUD5J(dx^TQUcn8%sK84>QQxcu1XFmhJ*zW-e zg1C3s_vuiVw@fXjO_I8B+zRUz5vs+txS#nEdJ7^mu>>RV`T^qfi!J!Taz=MvTpiWUi{NxtMGBtQe;`cbvgVPN7hUHI*3e=@u!?mQvuuP7&2 zb4zP;7ilAnnbnnFfn1W6v!9dhPn~J^Ft|Sqo|D#U7kXwq+|9!ulhL-y^(c(5!|OI$ zOJlsdax4i*hFIyy12>cAjXvk#k@4)>m7O|&ieED2> zUd0ydCnGDZh5W(USKzcRVITRlxB+;zcBm6KuDg~^@%H3@?m-XJcMyjZD=MG`#CDAX zALhKC9ZmP*SeL&R-nI67$pEK@6l;Q-PQ9IYAL9%bzQBjKdSk%-f)A2kaiUk)9y}9w zyYkIpnJjE&3jy)a$dGSpyO$i?UXL#S3b~y(vk5J-f_}VQto2T@5&}F<#p)2PKLZ>&0f-XhNZBcgLhOHFCLef z$()Zl35ZfBL!Ni#0I4&*u7HLth^NlHhFd2#>Ow2w{juUVJk|D}B}<1lr1UvN-`u=J z#x91cw5lDRuKc!5Abb1Ok7Ef&l)yK9bGKY_*H=Ld3v=XS>^)fTXpMlt&vx;Rb8wOq zuX>{?3)mwG2&@;Qfdll92XE~f$mS<`@X^+W+oe^7=dj= zP4ZKo{7{Es?99(*!YUlEyhTJe=E)Za4`X$IHxv4S5qNbD^%d?fV=4_zEvJRGPf~AFQwi$thNQ^_W>Gnx`@N;OmDi+l>Rb0D zB_97G>UBz!OWxMf>baFt+-elqJKOCf?dA9{q8JeF^J-~Rzr3Zm)qlX*&?59CUHHf3 zAFuM8rO6==w`kpZexO63)%E$nYieOCc}y>-4Nsk<1;GC>Yf3pam~)b{QYEtH7)g`+ z_K(wsSd>vL!8Wiah!**oB7ZktM{8fUV*?+T)8FMZVS0dKNuSbk>gGY|CDW?X_u_KuYC~!FpH%?SrSU|0Me+m| zWpsn$R)0R1(?>p(+AOZ}58~K~6gi)5q)(nTVUIx91~W>vZ>vbyL(#_hlPPis*G+Wx zz9tMyFamoEm7qORWc!Mp^h!5Rwi7&gYES98=~X1`Rd!`L-3A`^uB-H;>G%|Rz3(;} z;nz$+V0#!1Yq*3IdCJ6X^n*_`p&uB5ZL3r(0#fCfuU61y?;5hw%jNWVu9nVsF%qsv zVs1J8dQwZb*D?aH+D}ZC>72#1_mKJwO9q^R8NOXh<7XL3SQGHE0D=ryOnZzJ5!R>6 z>CKf|x-rg3!f2IhS;%DB({B(>v^QqEHk8wIUvg;AUB=SEZROOWxt4}cHI^#2m(!)T zS{gFg7`!r?mm)v-M%dBlBidBxhac=Z8rAldf{&F`{pnhI>9LV?d|x?@>aC?7o(jT$ zbgEns;leu1$kJj7wt+Q)4ZSJy5wpYe!{>83SsCTjB{qjvPcxC|>~cEIJBOz1HIYO_ z(9SgZ+=x6{wXK=pmD|#C+9WH7R(3RzuqMcZd^K6V(WVx?)%hpIk}(U*DI1hSPxlq= z!P@7-WO;T{6Iy1WVi|)6Yl82nl1Z|S(O$ZhwG?`ez4~BWL7%pzv}~smr582it7fJCKwjl*vDW#s z0V`XROWSYWMJALQu+htNDbL(Rauchtp9xoKQdh`wRb|~M)$GlV=4o9#DVDf?GhpYk za%sP(I|xH$0y0n28U>>4ZNtm{a-o6J6mh+wK0(} zqso4m`Ds6_G*4G6GchASNlxfEOcUUfK{xLxrzOtTnx~_TrD{iECd$^DJJ!Zh#%_3b zxm#=APE+plVM~(b9bQqIA$$5$EIFH1PWRWd)>vFKmary>11Ry5{WHAffPIYCtX@I; zr(0`O^Q%ahyT-z*f;O6O4b>8rdF6A@OTM?kTi)GLL}b*jpqapSG_9tHhEst2WO;4* zA<1M-7dAj$K`#LNP$9&OJyBKAR=`noSg(rI(yW3i+(mO1D_8JE&v-enZ@Q+cTYH8j zwX0T8;|bQ9_EoD$SQG47x+lm7s-$aPEc9l$mC?^~`U=>GvQqy=^s{=+Vz))`ZQa*u zruTUF_w1%|QX?t-q3-wM7WJg~tdhScP19C32CsfEe#JIC@5w*=Y}82Mx0DPJuo`2Y_mbIoorf{3r4|1?%`h6X`z84L^ znpCRBp515{I5F{PYCy3BpM_w1DwVT!H#!&)fldY#pLt*e)&z66FVU8QSKXJb6}&oL ztn*5aJRi{Lh3@ykWoO|0W7$;`*1#~855D|@UOlNhS4nm|5HRnI?)QP2*#QNRZ{iB? zE+yXt_OGgcq)X1H^51#)D3)x?)*<#5?+w73payn{hDJg^N+KHyHY~W#lMtUnf<0i6 zY`llo|2Ub)oI6cZA!bvt{v2X9E0;ZERz1$s`%kB812^jIP29Q@`cW^|fx3f@QFU5T zEWwDbSvq?UC+-47OsznzH(c|(0adj43gT-Jc0q@TUUdWz`N?gyJHJigaurK0mf(J1 zO^`FXHJI9iSJw)wQH;PgUR>7oW9a9@U}N*p_S6v&dnVNu&egCDtO;_L4u8~6pFM>e zJ&vSigLUI`%65h}Hd6O{!_*nt$cSgG8Jy`^2F}nz&kudn&IClO`;in&ZVlA6+WBI- z7Ha~=+oGv7#UYLFyn9oy5jR?A<4VqSZ8SvbD%a_WT|<~9X|MEXI@lP!AY4FT8zv)l z_S#LI4qg?0)uZD8VY?=rVhOe(dKGj&k&bjp;~hTaQ*0e)FN=uG)uXApSsI_*;*Q`I zM&NN%sZQhuYa_l);Zf6Lgju3qqVqj-&s1&YY~62zrqiGw`&M_+{`fS7_svQZBwNyS zty*uMCTN1%RIBaj66ks1c7H19MYCPBVL9(JGxl4_E|rDzJIkR~DLF_Ex;7Ouy~W(u z)fe8gQPwNivVlE$_gVV9L+U{?_PB_^nxLxuy9%~5bS`V2)>Fu2#hIldVv_S`_WI!* zwq;9%;1xz-+mPw))|poLrE%K>g>+7cZZ7%Xo1w+m;}v8zD)Y+oZ&u^)U+rm_e;P1H zKA>0<7pOyzc23t~O%NBpzBirVoyI*n+@tu~VjCi&f8tebU$`EpW1|JHu#HW@x~th| zrE*8{QBSlHfCws%qF93OF40C%lP7=g+EW*!gnJNsC?ZNNPH5+YjVV2cQM;D9-kOg~ z*Dm$Zd2*+Dx;DGD?sxasidQwAPH58rVLfmd#S+{PtO@qWq^sJ=fEd>`TIdHxU`b`S`#`3yjt=tgwC0$>-oE` z)3x}?fS(v}&e^jTjRC~l&m9E>z6T?w=`{6xpxm`zf6t>?R%u+*`?~Nf!8WjMIQem2 zLbudPx|pYNr%ky60(*kd@O?gft2P7rQE3`W16_63HaAYZ z=He9`2Z)t`X!U!9FiW;I)%8{{J6(%4!EV&_-r6r$rtksJ>r*`L_27b2oX3b_IB45j0vrV6Rj*Iu9M*D%IG{w=L051cdpJ(G*Lt z4biKxm;kLE#IVe@pO^EvRQKNA9Jl>CiIdEQ+?{ERxxCN}QN`K8ku+^Tz`4$;&z zi$WS`Vqe%u|liJ<+@hh7ym`9H2SG+YMjP1LdykR7-3cm_#2>qH=bsKjS*fq zwE324yhh;{>2}@@)*K{Nf1Z`%ukU1yV4aw;beS~gjPCcwwaWle=k#XngT`rml<5~i zl73Xz>fn}Tf+onRo*AN@1O52(C|*Ed8;4KtWFD}-lIJTnx^{BV&H}{y+v6oH!8Sy% z=3nip>HR!`ulI;%f4YX6SymBhhqwr<#AS(}b@t;QqL~SflA}p2%Mv zjAmG}DBj{PI%M%sh#va?nxIaR-9-7z(nV6OZBv=W921tLZ>=ftb*7f{fQ{C~TGKVe znGTs@!sc08YaTyPPM6v=oG7=+Su73KPGz`N*O?}4WCLr>@DEM?L2T?hQ8q7LA??1J z%EG3aun;$EP3WQ~bXuATtLtE`xtjVfqG9iea<7K}Nj9aa3|q%GuqLR>>5wG%`nFYy z-!YoGk2hfhG}f9Ahn(nzL=)!F(OT2u44iqznXo^dtTjJ6E9YvC&nL>O=WdjG?}!%= zamgmEx~H|Kid7Q<4b?B|Pmo9Gg-YGl&tqFwo3NJ0tTZPUxzH_ZOjzkEE6vqIF4Q8+ zgn6#F()7Qj#70?tN|d{8fS`Z|84OD>qS;0hW;e@9bKgvfTZ;cLRyJK#MH968w7}ep z?O{!@Uve>4w(3_VRrsD2Y+$`@s+s@g{q?r*4mK9uNtAm{Zz65&x`4%i^|IksnsR$r z`em~Tvma%pdDG67Vl?al97&YVhSicjrY~f<&}wIhm1bCX5rH)UBipnI@>a)qDd@^9 zRfuSwkn9$d9gB!iDJEicC!zeChX{QEu~&Aw9hINmi8HTQro%EBDhYi&uZy= zsDGzY^?DX7hw4SKPt|ra+-eA1wSl*^^xd|95rOq4$_{TA&{LMv*xL0b?8tg8eem9e zepzY4wjR>binMIdu9c@oH5R{)*=&D>w}hF zWX|-_ToaaHOzE)R%IId)OOn6;-a^l8jAPT%O;}=MN{v3k6JVAJ>kFqD^M5z_2XWXU zNgldoE46(U#{^vnfo($`2P)pl#(6gNq@g4nC8FiXl+lcuF5N#MN8!5-S3}am^wlM4ECM=>Rr3W87Q+z$JCdhUQA0_+Mk7JH}tzZM|#hSpY z3CVKXkJ%XW%Gq(d3aDZ zy;l*!21Ua?0TR95j?`(e2~+lvhxBs%2jOx$SzbBx5FKaVmEl&{o@gW1GgpE!)0q$LE!e<%u_nmX-xDRP{>x*dmM>>7rhx7>y>zW1Q7O<33h$x`gwo28#TaY{^t0r%>eFDR+a6d%E z{F{U1ZoTia)$YB8Yn}<5_g^McY6ml4L{#!Yaz*xCw)8`!&~uEyeS*F4_<{1G4|mwZ z#|Z*rHE`Z98%Jri!%kG3C3Zaq%0;~jShB}>0fGC0(U9+)V#N{~rBLt8R9?G*9&df< zCAr>7qKkU#@w8{p$@|TO&W_OI7Q0`OnWqU{k0HrcEU;4wwf_gvx3M0dcd&>&b{5gF z*H>1Lc{T4uFWpS#SXZMSdi>kOH>B=;La}Ygqo4AH_EgWN$JR{d(a%)8guNgS4odX- z3l)Dn^BLK;NcsnHe%=>ayUuJn2oSgx_DZzzaZ(%B!SIwcQ<}urN9*zL_6AZyFrk;% z=<&Us^`)u%1L&{~dOT;ofi!k{0QB58xec3Ze@c=8fhC)U>+zdY4W%S2La`=zM}@Rw z$Ex0y2Hi*&5R110;!Yb0P=ZcM(z;>+9s{(0oUNXlLYy;bd+>CO6 z7E*V-^gSSjkLaVv&7<|C6>A9f@1@5l{rp1?og_41xgIw-t&-Y&S8Ql=39H_Bi8ScT zB#tG%{q=a;b82bY1VXVUsF-zeJ{x=cs-2Rs^+L5)8^$nQsX}*cPTSDyG~?PJu|ge1}1Ub>gfeN-mcF(5}gu2MMTc`iHx**p|$Op#IYp$ zk{)-eEFp(R1yG#L1?$8w6WOB6&$UbbL0}sg4QsgSz1X|D?a9XWllav0db~m67jk1x z0IdsN#phR$>N5gpr}=t3ebpCoAWXSG-am|B39S$Lt3xJnEExmnfptES33CG|)&#ua zB@@^r%WB%wW0E-eqsJ$>eIn;K`%{d-BLWdZf%BQc+co~Ky(jRMP;3K$+kn6ljKCg3wBejyEFs(HD_ zOq%JYWQI-4PiLF&wbHD-4HY?5y2^28Hg7}&Pc(+O5dPOk%oXw?^daZ#{U^IiA!_=)Of(&v7yDAuG>Ju;idtn5AE>{+yd5x7rKMbOMuW9a@opzqjJ`BTvb zmNH+ZITL+d^2{h^s@a#M&t`w5R||{T=&qNfrZxXa@Z~k#RkNML-AmFvOQj!$t={G2{wO4mUI7A0 zuno*!38$9Yw^C+GPCz)stYN*_6RZh1M$VQ>H}rhS!ggsgZY9`2wjm3mQ<-$ceLfl3 zDorkg5p6U7l4K6!juChaVP!dHPL67^gETW&>^VkYP4MRQ|1Hf=wU(ycpDh1MEoM80 zUzT!If25~r#jMEnvZONjBb`brW_kTDOXZc7Fjf<~T1r($g=*%_oFp&rT+CX}$(35( zs+6KT7Bjm^xzeuNl~Myz%nGt{rD0bT!~kDQY2Bny&As$VGL~4%#q8kTT;CYIz#17qSfTh>mLRVKx(w#606Yg45Z zQ@@y%n_Q7{cUDU7bzuyD1YaA`#;G8C&5i@kQr&6dv*dW!VwT@7R~q`TQkoN44Ci~fQql{> zMwQC*#Pmm7jS}C7=hB3p#q8ODT*>W0rDWEw;e^fOg$_Ca~kyB)2&!rM;=az$QV8p2?h;9wG(rjq2*cef3ihOIv zUTI6s136eSF}j?#8D^z9RQF#S=IK@$Nq@%KB;Xd z$w7U>H4SIFP#m#?5m*zP2|G`gP4~n}cArey^BLu|+7m0yJcwKkhKSZ5XRI`J)uvL_ zndLP8o|WdpQ6;A6b7ru-{)&aX_P-$JKEQ-sgNU72YX|xYetS>0)|^=3K*s`CtIOHmZEOfnnh0>Y0(h)DvpLIq-3QZ`+g+J zM|1W|U;9TfEcqN|!n*di)-=&~q*xPF7fT!`X9uNg9z5;ISWgosL#$GotpjZr4&Uk! z-L%5afnMwjd*S1)HD6$)RjPU8$I05TbWNX!JsED*ytfGp9cisO2G>AD9IY2EkIcEN zne(|j!;({g_?Tv`somItV%x9}S36pMf8nlX_YV<)uOLQ41 ztO0NczlqyR{O%e2<@a^lzlZdDY``7?XK}@eJp}69>D80hU+5yA9-U3GB>KJqyAF)U z^HTN_tO;W7`q;=VYIKmxU!S2k+6>ze5#v_`@_|ii=G=^QlAp~o;WaF`k*>FWq_F8G z{LIs>WWS5AbbgTu@3eIrY0}(BQmM8~4CDvT#Mo_X9X zGfG}bKm3(M>irTB@!NIij-I~&F}28%uQRsO_WK$r8(l4DVV$!{@b^;5WUtPidynr@ z?3HrX32HPt|0)GU!U+eyFU3OJ=W|;bw>mRMhiGm0;~&Izci;?jxO1#}-!3xNg%Pgp zbp6QR_5*AzALPZ4$t*y<*;l@Iy`1^l*OyL~l}d_-?^e~96c5MVC}(X})R*49RlJHw z^5Ry%Taiw4d}S=bh}PH2*?u!CY3XMLkq2HGSrxXd240;4-#aPQP5cS_}`o;Uh~NDCVXtxR#MQsrKDS#qHSys`tt)2~h~Zvz5LoUTF8e<@KAS!mGeyP{&jrP-bax}*2K^%`Z_fYI1Xpn9H>vy0Dzx9% z$pQk~Xr5lo63iOYzDA0Tx_iDzfuo;kH`Yv(u>{+|wjp|FQq&7aCIK+h9C!$SYnc9P)7D-u%ePk9#Aj+muT)vJe%p_F-R4%_>`wa@>JiL%~# zsb^1>)fv_VPq@`nrB`pG+53i~4UG5(tIYqN*->Sc3A+Znr%LaxM6-2`lVvQyUWqo| zrdVj!v`wd{@>Asw?TXofAGY*Hex;+ zz`Ffc%&(hF>r|aAV+6KQr(ZFvGv1c&f2s5%d*XHy@xqa^h+fn5!12SLg8faFO2hv4LCd(y>u!8JuLrZ_a z+Ayw|)z#Y2#4nZ7?Qz9yO?w;K{=0(sQ(I5tc%nHqJ26?tl1ljAx%a6tRlawyCioIQ z+?g!&{6WoYqzQKvwjm-mziUM5Zg@byPlx;>zaOR&8{b zv0jY8nxKYIcst%T+d%4D+d;+^rj<8x%BaSY@XgsiZtPuXS!HDNj!AmvWZ5siCw}Qu;Boy~O7n`AB|vyUAFB#|LYI z+EnKy-nU~piQm>##;x4d73@V|BPqA?tt2AMS3%8$n&VFX=;^R3;8wUFq7Cn@;=uC~Sh>QftyK1f_kJS3&U^wH!4M5#%w zRG~gO?*Mu8!vk#SZx7{r)*sMj{jWat|4A^S&TCyAX+F;k5Y~=?-1h10lhPw6p`x|Y zk9@d-NV*>Sul53gn0ggcy%I_7rog} zR;AaLu`XOS8&}hYQ~f_7{9-&K*PqlC5V)2%M#EEddSkl(^JLlJeYw;>qwsGnUyDwe z(vPhW6$I7llQsrROAqRP51FAvA$g?QQ>%}YW&WvLknH*WhBXDm+X6d56Wmd2S85^Z zUd|03DIl|h7ro4o6pa{^jK)Q`;9ZmpFjPkjGHDh}NF7g4p>IRPyqzE^#z^)OG9_th&G z`hk7NnqWm1Hbk4E^gMGc#e4%D%%1(df_k1awLPjo`#ZV?rAj2Asr3+T`CM3yRT)DC zNqt?bPN&kfSQDHy%pR&u1{;&o$5O0Ug%E-!RmQQQ+F^j0vSKW4WTo@uyunN@MhKcz zJ`S_BP?bx5`C+txxb3JzFS-G~BYP@U$Ra)J(-E?A8@>=2ZZJZyt=fF5SbGx?SC77= zN7JAGo$YU+P7U7877>R&J%E}e?WAuGm>Hn z?z!ld<=n1X-?Axk%9IVljQcWFr#JG@bgju)-R~K}N>0PG=^@(04^!kj1xp0Uy<}ah zpAV-AnjnwGy)*snmnOg1Unq=K#9Q47O`t90=XcVLTYEjFA3N@b()gBXvhUUV6t}AE zu4~n2FT{cihd%er^# zE>HD3ufa?dm}BDP^pd~4AYq4X;3?`Cn9o*acbCWCzo@~jijsA$tp3mYeA(;*tyv60dsD@|d+Xb4$puu~KddkX=f@|F>Y1q5z|893l{ zX)c`C9PTOyUpS?~63lObZ9}~!Sd(AM?kdkNIVIS@2s|QiMz1bl9e?+c&n;i8xxQNG zyWZKxLO(ngm;7aqIi#xNT5`6N7Pis-w)tW!6+yJI zQcwRrL>t3%x3+^e3}$<~zUzszbID)+n48viQd&dZZ`#pL!hAFE?Yyz*?>$&--cQ1a zKv#%8hU;ABZzshy*8QG4T!~!vT3DoQ4|i>Om41Q*+rXOObm`L#Z4e-8EgmRETk3R; zUo3hh+Sr;nhi*HQDyyPuX)pq}+NP)Lx#tY!?aT(p&|H|ib;g%(-{plBW%tGP8156R(N4~jKG=H#{_R{XY05AH;2A*Ie65iW)d|uOGjfMzbRo4JF zXzK#frmyEeh`HYiScd;`ddzb;AJ75V91Ne5)Lotw*NDf}<{`ta^F8)7o6|8@h6xDV zYNm}ozdgK=>`YN=-N$*{W2M2I(p$qgmTc>+&n-GXA*ZH#QfynLYToe)GusT_49Fn{BR2iQ0>^ExAuadg{-5n^q1RIPrb zD~#LpS7cI-;#ITLubHXqVr{(t5Plr4)SmJ0iBBC5TA8lTD@)&#E)6~Cn=pMoXLuRO zIHip4e!B{`Mhe!h96wM%WIzU2m)~WizL^KDIIhnle|{iid$j<>1Fvk>=v5cCd_pWY zTdn4w98Z%|Io@>188xrA@B&%i&zpKIQu9&E&yWH~A3)?=>}0*S4PehKM{=A|h0!7+ z9a!H!jf-MaR*d8Z5ILa4<5!2s0gM(AWgoV%%%HxkvgRm`B|Flg60rF>ayi3?Voi`O z>#&ujrMR*F330qprkWQHxJHue0jCAjo?kvOmwc?!lGYjy>C!TBU_j}OJRAzt*wL6*3@9%}~(tP3MVuUgFC&Q`bg zVh4_m<}1dkxu4rbk{jkraVxRsgH~*3&mz3o>%*ft_8lXzCOB#MxSA#1>B#ox#|bvZ zLX^$%w&zGMrBw^L#BppLBSaf7wCmUb|4=sQ`)H1J zy$k_fkz=Pweh*(NBF635z)FThu;@CYIc|k#N&F-=|MuT`lK4Tn9yPD8V|TiRvJT~= zIhJ6(Sd$WydXDXfdVS_|NASA(@bpQ{CvER~(VaKd{9eipVvz4mx88?(`a#!;*-US+ zv2nl!mRMAeO?e)}v83pkn#bE*Ba6MgDb@t}ADPEl`>w8RPuw_qz<#&X;W+rYMA^?EdynSHlq&P#^##-G*vz`I-$nBhgg*MsNo(max` z=S8D|)1pA{Dp>`*AWDWbW$)a4m{IBojwRRzeoClR>s6;%l|+B`^k9sDz^!IqRr7Y? z=Si=hij9VV7&qRZ>1D@oEWsXP+rS&1cabeqU#CW$V|iRPecs3OF)5I}X~rWppH!!i zyl(G9MaGb-xA!xP2n)7z<7n;(m9ozmllI7fEUWsJ}d{Di~as#LX>Y+%;Tjac*hA_CjE&_&JT%C3=V`&vTJ z$B$Uc?rO~0hlb<$`7yw*(d-WKoY_*Sjz4b#@EB#}6U(*=Vx{vg#wY)#q5a121KZX7 z>hQayY?Lp>Xc1BNWjA{;%8=c<5y!CvdxbSYM9R1#-9XTkg!UKve8j48TCeLcu`sch>uSUf;9+{=2Vx z_I=)GW_M<1XHHN)^zt6HOB~4fz^kBDv`6VxJqKg2-@VJy&nfrg^8FoR%+G9IvrimQ z2}RHl-2wX)k;-H8NwM?Pf?)&VRy)s{Af5N@OAy@d#;(RU@b+6pdc2;ZMaG<}A8Y=?^^{o5GQ)nap!seSW@=DZG4ela-XM&r>5! zVe+_J>{x`dLjLkOUqrSTE-Zg^htY|c@jv-AYvEdlrwuoSo10FuoJ+O&)Jgce;Yqf% zU2R0%-TYd_j2+a6q(Q?wef!~4D% zJgrx%L)jR(-PRP&7Jp*9p7`-Y_@O-CtfhTk>si^!=9b(c%W zKrUXzyuYyWh@dsYj^Y2~hka(ZpDIsDQ_uV2%bT~sQypS}UPU?7h_Sw}M2Sx|!|mt+ zu&SLYxX%B`8sGEd0XVw$-}=BpZus$$(@mjg_fKpzCZ)sg53H8f>1QY_z-no;u)f+) zQN-#s4C1s}n!5Jc#)wlQ=Q?ke(KbXC5KT^f9 zV3ZcZdwpejqZ_LD@T7X#eerc=JZteW8VW0!LQ>3Ero*q4Q`n|0s|wl6JAOP0+w`n$ z5u0>P>8oP&UmSkphwi;~420lS2cLXl=O6mR!qd(Pa5RX9|-iSdqJj9oMa*mYUt0^h_w@+3dbEIr31GI!cF{s-C^;YMSiKz zDS~Rk_}a95;rgY4)DH7(QN(%7Gmf`*W%ZXP=hOMDoBX(zTUpt0;n6sL^!zVF~MJZ00KpyTVzm8GI}E zm>t1N^}CC)YJIQgEM}E2kNsu}b}gSXhhx5Il~*eZaGkZ4fBqE-&p+XOUgJ5tQ|Qar zzsD!W?Kyi^p*HvbU^GHoD+nGV;q<5@FO<%6Ap-{cp z78ajyPcw`hmWj);drl`Z?Ia^rjUsW23t20_C8ZaOZBDC9GQ0+#npg zsW^te!Tqc61uS@0Z51D$8!WMehZDjKYdqBm%0bbXj|?*!?`r&lU;7jZx;)(XX?=%X znBvPrkt5_l7Q6G(mnUbNf+yApc*~VLc>IwWm^OXEUw@1QdR5mKrtotwp4~gv{tL16 zV;Q)%D~%T|=?KmZ%wSpmQ)X*dlhZ8SIboRZdF=zX?4S>FB&;e62aC?|y|p?5mC(8w zR1!RG=Rv0JfL=v8)QH*sKg8_$5BaXWy`a`+ zQwYeq%QF1y@^vRoA#U4a=5n?Ue{;kXydOViMIY*5JKFYrCtka7es)zq_;)G3onxM{ zgDvZ+_7i{)JF|6WutI?V$D`vH}lTZ!*ovuCWfdp%Ay;WuX+4czf_ z!0!WGWt_*iaHXrvfc2zGu9(7)VRx8$LT%pOfd5NZS;#zPl~H5!FX1-CPdGg82L1c1Uz&D^hOrWt@O|q zYfO|$PG#e@?mTM;R$53t!-{h}`2BTekiY#jTiwnRt(t}vXnY+9i*8|hpps8mdm>}z zDOP8aJExj7n!dGMAu)ZJnBJk03bA&H89dt$th>RJM_?t~U2!K_n^I2^U>!G*fXbn~Qm`Z>6(bn`->nR5MudBaPLHRXkbIC=5z(uFQ$;3mcF3=C>+6@CAv-CB!_$o`hgTas4 z@{C%1M+GymknS>eR>>L>?rsZdx3hTvDr&?J7px?aaF>moQIpd-AHBTG+rn+lW8STr z8bS3^G-fy6V+}_h|BLx|)$b4b#-Y|?tYuki7~Xj!uN~GE=vA~GYJ}4Yd=HM;#1H<{ z6|zh4YhvtkRyfvI^**QXd5z}$WGlEkZxgS!L%jl^98?o}o>^H#VAMwbpo5x&BB-^P z-zTyZXusNslD8c}#+pbQGVZdF7B%@=d?yB6y2kDV)!gKtry3D3_zm4=-gYKR&!?Sbm8(HL{Kx4X!`V-{Sh39af{ z8d|lq7KQEA96zznP2h&>Z24v%zO0TJOdNHO-Mgw}zj)ZWG@NN|En+%$1S+9csX1!fY$Jd9tIpo!t?rWQR4* zY9E2sz8vHr`V^sVNA@{WSi8etMBP(!P}`{{%*1Bz1bu@-Fs`np>K&!3;DYr=-q%iJ zfmf8bT9vzwu+C2sKYO+UdezuieD@7I&%V_2;(Jtx@LtZ)s#}DZS2h%=guVyq`w_D= z4{?Tb)gnZuO(@iuiR-~M!Q6bSa*CjuFh1&)6MVbhO=!NVIc8%0kIrv6yYX*TPBq~w zUv;&HU2Du6?WM&eFjYZZcWP&DrQ+^qoTX7v>V@3c@MsNNK;=F_1H$C@w7 z{pj7ZBKTswPx7ngKqZueT8p(gxC0~}4aGb}VL4ka&qKEmxVNw zmLh3i8=zNJ#+mx(n=@?2Rd1~BNf8g^^6+7LfAQ;TOIXkaYv=7xWmSGvQ}vG;aTc?L zMEDO9GtagHeJiY$VxP)bycefvH6rGS1AMGENOXi&Kqb^FstM1wP0K*OPiql9yDbC+ z;>u#k8D8Udvxn=wz9~TXRbE`r_^NDqnj&o^t@XRs=FkKE&nzLM`Snqa)dRX zQdRZrs-Hxg8xF8}<}y(@tr=XxdRN-az0AU)s;aLdo8TAny2GsQ0%e>JNiPGp-YpmM z=}>4IfHlLc4zmLlytrSG8H}p2m$gl<%GHQ>8D$_B5d%ahPzgm)ZuAzpk|iE{O&1Hs zsdt2(aNqCCkRwcdtHb~8g1cWEPN83h@?9JCAWO8UJ6+Ts-3#bd8oepJKYN(Hj{6%C zdkJLzhK-Oy)Z86s?Y_EcF#+d(yHG*6#g5EaUg6qO$KhX_0YpLXOV+hpp; zlkD*wTq2lZT76zci|4p+foVS~yMy=EoEKhuhKi*R1^|`3FVe#G7pIxNmmjB^a7EVj zj3~~F7W;9Rb83bb#ulcskRm^R`L-6~uAE}k68!krw^}&%?hI?4q3pe8hMf^f&!WZd zM+1RgMLE=n)cQhHG3hT>UL6EfGR~ldCcd1Vj`io18{?z=h4^9CUpV}QkgyjrwC9*Z zeSc2T_#Kr~EY2pb5x3-yu=+Im`@A^F+Dxs%e;qP~^B)hgpY}Dm({WRncX>DKyil2U zzm)tIr*RBU`_&$(B=DLkbk0A>)_nBgR1?nBt4hSWOLIks>Yc#rqAB>5J;6dFYpOWZ zhyxy&PvqKMVP_StvWjw0O&U%6)o<~%Z?^dHITGl3&C_wFV0HBnTM+8Y+t0!CmS-o} z$Q#N!@qD)r0+Sht#aHqBoLoh-KdTW7T3~LXzWySlXC%zSottLs)0vN}FW-=fd&s}9 zu&-}?xdGRCn+{-|C)}UIdAE`VCN1hDa;2_7CGFF27pF6@)w64Hs!5|cQ&9uA7k3ih zWi{dj?)wah1!jx;$rO!y8BKnPx%QoeQ?*DH2i+-3+K(P$i-9#Aq*xW(>6chmsgoG! z8VOWFIjFU`BD2@P;$lDCC+h~ZwR8tcjp${m0h$|{PW7Gl=Z*u5A>W+_kD zGaP6gZ(84b5qhUA^|F%O+!cSH#+fHXy^L=1&CxON?_tch@}`_r{j5JPeN7Ad#+H%R z=lJvP=qD3pS5~T!pqx!u+)5R(&VA%wv!j7ZUgm1y+`6)oQ$>GHHKDiR{bQnxjko-1 zax6T&tc53OHd2~x1HJ`M+|#0LC5%ny=Qe8Ldp&z;`a#8$Bj^DlY`x`&h@cXR*s=?K zzjE!R>~0ETcAb-AgrSzaG<^tA2}N8xq=kT`rKIK>1>tcfS(qp5-#cO}ORMXB{NuU2dG}+6YwF}<;>Utv`fRtyDoI?b5pmDAib@mq zmEU=>#xPj#?owLbpZDR9t`61nS<*`5@47KRSexTU^rHDyBy7jM)1ufgM1La3LZ%YR zK{cTd&Unjh4Q`O9XbNArMTZph))_Jt_;(M>;h=X{w; zcI+}!e(_0eTp$sHglhjdMKx(-XrLToL$jX8oJ*2+b~S=^1idamf_I% zsd`bj0;33@Nye-06}w5TM;m`j&D;@jymT!?2qGRm^dg3j$B@vs9|NA8(A=`A*%mMX6>N)C9tNfe#&kI{d7 zOt8{dPhEWt<$p}o_ZV)?wxO@QV#&jUZW3(=Z69W)7(N_+@9{_t?|({U*R_MP7(pCZ zaG51Pv4G6oU)acwZw>SCw|C8t>?vl2*JxU|E(cX-wb8E_MT{`|_kLinLfi;9TH=mgLKKa4OkRwE%5E_YD|@XJ)ZPQl z?Vtlj!jBHR&D2(%yD=VmhD0|Ex*aEyI~cEeUitx}9BM?;GFuqFBwSzbnwMCseg7wR zA^g_`Rm+=M82^9ia2cZ@2EVt4lRd)q6?|nCBBtcsA9VME^C~o+tG)g$dJT%um-UPi zox@)J@!)rlx8=va8xegzpV1|KG5+3T0?2XF@JUz}ch~28br)1p{?ofZ5d(2Cpre|Q zgBOYGHa+z3x;7S6FSRPL$cWz4L8(OZbYOuG_7OqZx?RP_-<1QO>(sGi5jFt^TSU0H%x*{} zZT>?)4tk=anlN5%jGv)ABC2O5hEN3MSoXunH^=W4w%jkW-X9LzUu9IYPagJaOjl`cXn;f`Cza^ai}PG1V_a(Zj0o6t zeK4!L+g49wD)WEZ{uz&EqwJ)K!UhU3gTynaj~u-|cEb~_>a0gg3q8H+B3>1bIUu}F z)&C1IKez*|=_ho@-jvr86 z7005sM!h+`G*a0xBVX!w4O%t-xh))z@2tt(+$MEtn#ASl1tDJlFK+ zT3FfGQQGpnKJWesV*$=PN>a4)t=3Oui0^!wd}~e=P|4sD^!L$Mluo>=r;19$YEb<$ z#iJ8Ra-R|XR2&qs*B1T#QYuP*gOn3qY4$bIWaJEa&Dg#`B{Uk0T8rON->->Y`)A0( zozw`AN~X}bij$O)Q&$!FhI6}Pruf=qtQ@v93aBNtO_r5S0nExvZwnNwdd$5ha(yPs z7pC_EDxnrqP56y74RbMT@ zwQo+f3eu?iew=E;dG~d5*ibu8)-I?319FWcwfo>xEaI~9cjDkX^*xs5H)4y}4^ruj$V zG-8gtcxG3aH6M4M%u#X)@a3N{#%Mz`XUT5mAODgvg(AMn8u?7; zPC%pn=pD4#X$p(RIZMySE9W?04q$B$`=;`(g?-@)Mjvg;u$OxDtH;mbF2&}!vQp`a z^|;j36zr>%m2OT^?nlgX8#u}L$k9Hb&>Q#kme_bmHNIEn*PP9u(^YrrYP+hOa-$a# zo+x&=-7TN%+CpX3t*@p~hj~bG+p2M@Nu$Z=>I@IRaJlyN0LW8z%qMtBO=2o@d7&BD zys0LQ+~dM+&b;{ZevG~2j8^pwb%Kd;sq&WwK|m$bap#{k^OR0BcjZ(Q#%&kZfrmeK z%RdHt!?;7nyXL(*g*CM^hs3jP($|}g{C8z@sQ$=RT3Oc-Id1i@4dv1{$w*4mD7S#!>4TK!(iU91$uVZ&t(nD2J@8CS{NUi z&5E@l$Z@~yV$q=7e15HNJbY-1PoMP**0Fvt*J5VP^<8t>FYl1Q5J`@U#qYrR{6?L4 zpt>jr)r1j;Y171vqJ4bn^|7$$o(XjB{gm~+7lM_DO<=OqW40>!Z;sxVrirKJ_VYd0 z#;Q0dg0>I$ciT-BtIMzBEu-y5H=^?@&5}kc+@&E zY3EVHx(B0Gxr$$hXyMd?d^TuqFz<+7n$1lZ-Q75{d9L9+PdxWN$K zM2(<&r9E13@O;k#>nn%}pOeL~q5m2J5kV!CgIcT6EW5NZf5qb-CnWOkBVl zwr)#%^)MXPix;)SY*1Qs)3Z2KSks@ORAgy0VMo+TxOE zc>1Z~S6MZJ>izA4XVAI%EV8At!*ad(B>`2Q8Uh?*fl4R`wH9Y;r&A)OPhG>l3B#cl z?gCHl^od2hY{2Q0n2i4m_m6C1wqjLY=qd4H#|*=P*x{;YcR2b}pMU?JSv_okzJnA| z)bf-ti=AmG9x@!LgmTbPfPMhylf{hnF|198kw87WsR#DCk=R#<3fVHuri{B$W!8xi z+e)(;Uq=I#lnvH`T&{>kuM6fh|2Afn)0`5)dvEJZ5{JY0XBaJc@-u6h*MNtj?d9Kn zVLe|o_{+=tceRUR;(eQtblhmAzVg)9ood3<*SZ%)dZ`1txae4wM?B?FBeJ{P5JFzc ztGB~<(sTAQ(VrhQMPHMUXG~tH-1CwaH^t5?tGRA-3{VM; z`lXt1CpGDbsJtqQH*p`NiW8?YSsGWe(xgIZAH*G^sxiy+5h!|`i$D8TZ2--gstE zt}J@Dj)$?B*+2d3RW{x!gzvwC`TLVISy0B`9Cwb56F5SIzE!-6gCc1AaP5;cTGT3W z5ZZTY#95BH_1oQGsr^GZ<;LCGX`_W>u7jxdUX7qFr)Z6)Q~nk)?(`{X;L?%MYmpW- z=S(GOKoCFJSqr^7nn`;XHsmF9wNUPtR{Fe1Spj_AvstuwyGQc3p-|NrRlj1Io0dbK@0bW zno4s|DKqt`{hP(E;yu!ef{{S4qE@L9y9RC*mvz<2wVoEdtCx{-;xJm4^pzUn`E9K@ zxY$~bSu_%c;X8HzKUR_^K1fxq;QbJsgU?$^6OJgoJ1l3H*fjdHlnf(O2zph(RxMQE z7SgHJ$}GCI(i*W~mx&zjJ__hnv?4+_T3c_imGn+1Pe}(vtlefJZ$|``Tp6H+`S})7 z_{ShlHDNXq!%AV+HCJ-1J{pGB#F=`HrBwKZ2#-|c?pQc2H-+^&xnMq|zR={^d_ z#P0uy+^Elz*fk1$9{*25`KTsbk@fyZ^o;*3#2UKqjDQtiZ}6)& z@BdVIZ*cyauJ!JZf2zPwy5q|>;QoFM%s_xClL8A( zh+NEg;APPRHqASuvdRfLx;IPXD+{mbs3xp`9{x%M^c?^j`aewF^w!wIoFmg&0JcLx z99oj48}Q%n+TtnhAs1#o6VEk+AaG%0UCC=BBK_GiM$u}7boPN5vNsxzPhpHo?Ecd` zL?md0qWlrgAj2xEnGM>XL|!_3PfFmnjhJekWTW*Pe`)nW@X`>!45PjhtD ztc-2C^7{pH>?(I!%*Ct}E0R1U=W|BHh$@FvXf-0!N{A~HhrxqAJ`$Cj#j_iwuO?J^ zt)rSS#>CmrP~qoP2uRxy@(@pA6x(MX$WygLUB9+xQ9N&kEw9t`k&Ys0YiTcNG!Isc z;g~%M#=2Kzv_~m|YQk0c_f^8P-x%?N zI2JPouJ4|281>(s+CBb(3Q_aFyJ@vH3$5x?;ilL-dN3rJT}-7<9DNeih`4<>#O(2d z;q#LK%@!EPFwS?-Wny~T-#PhSrG5yW? zRC>>w3=d{ZJ4uT&}1P zR1^Bv#$FZKnCE3=i#42%PWr}CBYf9piW`W?Z);FlMG=%6cT$%O=Y6r|@3WE&C0~v6 z?yxOabhLW*kzd_EpE`?&1QDb5pw$yv!qGYa_;;)OEgRM0d12rE8dN{C|;` z0TBo5%n*^-a^3NY;{Ee?e_DQOYpU+x6XWkSZ%_P%aB!L-QgD124pbCW7e!ERji!Nq zwrGPK*QVL25XasaIc$dt9py$}gVQ#!dvZ8*@3*rqVmroewFR5S;qb48m!Ohx^lebk3(&WLYC=D<8Mcs9rxTo*T1kbV>k^8_ z%q?3p#qf!Pp?kDJ^_0*%D5F)%`e9#ICR*iYZvwTPdcbJu9j6kydZB#iR9xKz{BR{R z^ZGkZ^-=`YgkSXCehVAq(2TbeR2S_9HKO&FZ=zh89`N;NprAeKiQ`V`(Jmv;>DGRG z_op4NE}p}7IPUl+wv_4tPfUXZm6RYtY3=B=bk)7Vb)u;bDt+uDa@Kpnqn_r_JnRfR zXLZr^g?KgA9Lkp%n00)46i^Rb_D^JD8^iPGD(FGe zEQ6)5v*H8seUPSs`$}TiC7wWEbw>tzWhSLmM-QoSDNKdDY-O&=382 z>Bp?WlLPd~jp{8+Gu zhXuC>TZ~Z1u*qQ^TGikbLAf;=?+<05!LQ+5n-H$zpq31&YX%QHUU{8=6{!Tf3V<)XbNxj=yp;YSO$Eyf`(;=eX#@3t7tpa2%m@m*z+n;EIL#JK6WsNGV71AORp;MH^JsGCN`CQ=yEJQLzVF{&?yie1WytNHu$IzrF-M(+INC&iB_XA?|EbpwAr#i)RwEM5LEB# zLFTX^>kzxtw;XbuX2DQwHb-o9tg1rLt4@zGhp382*uuLGh-j-1hRNS&3pYei3AKv0 zPooL$?*`KHFMJew*hq&l9w+!Vd(*ut&&L?O5rsmQ$jgq<(IY zviS=?|1%V*WaSDoh->?Rd9?Q8R1?O3{C0+qi5cA0uQllK+__rirwj_cIYm%Sn78(j z3(RkIhG(R;QgO_mf)?I+$~Ip1=2R2c@Nm*`jAhZ-3(4`!;xc_#YXL|#wl8j z@W0>zeLp?m?z5VytUA2g3=V$FVmXtlajFUZsS7HD?WGj{-J})l!zjAmk=d;7WN&^b z(F``Nc*e?a_5KTSxu`PS+nmDd{BEhTigHj*8qK9Wt`KF}TBM9@0y__xK|8})wrPR~ zKaBA)&bu;LnGRJ|k^UHqT*)22cL@~}mo)}I1LgyGbdK$CP$Q@&%<_M%GCZ7OA)Gd} zfO^|89w+D~bAMiyAH&F?gxh!7rf**S?!Wkd(;Mt}40YQ_DuQs*O>NsXm_~2-c_`p+7zg+jN@i-J@qo%(87~bZXAQX+#uttr?~3VOogBv z6pc})m=EA%85?oUyCuX-HiL*VcUhxAZ%z@^TC5XS(Fts8$jf#UJ-l301L8m)xYP=E|me9Ep^tcl!M&4@ydoZ%lJv@`O z(|U87*Pz;1j5xHr!d4wn#(B#WPSNP~lI{dY?vxi>%vwWY4EmIOzQvY*^X3#0Ho^>MY`o3Fu(CPUGCflf z27az6R%~sp%Hly0RFg*YX?X>hTJV{VPizZR7kx9R5i2lL$P~-(yewu4p%RKvx8s9@ zJ2;LH6_-{vhA;T+CU3pSjuv{V#s?h*nB#Yh2V^X7BdlBAUbUS!Q6h@hWpJ?WO8n zX*p)@Ievjn*;^HR*D=clX7{cuzK1o(x5EEP=s2gE&~xA)XV}R6MQ4W=Dun8Znfrga zGjN=5c7}oF{6#bS7C`SBMNn>yW)^pa-Y;8;o&%cz%_l;wQX`slt^%cl+lj))O;uLW zJRDRL<`8OG1wOQCCwy8r1v(}uLd|h@S~;i{eUuN^bb#&{Av?5cHXE^`2KVcU-dhbH zVcf0{Zxm_<=T~I2e#4cuXzoh~sJ!_k@6x*i(6tCfP)(SVd~0clPfg@6TXs@$P`yLF z%;1N^E4Bb*(eYF!s5Cr1G=m?X*9oYE@~Jrt5fxya*unc`V!rCRwIV4stMbo zw+jbrU!d$)i_pSW+t|Eq6}cMWvZf|HAGlrIvhY>4gCZz5*7Gv)h96Zsi)piTke-EW zgW5Uh=eXOPzjx*)VYvM`+LCS$N^$>q#8jvC>p<`>}x=U=%HfT`#@F8X=_`Q;5s-u zl~r`8jO`GeaJ}oaK;8x8X#-6{;QeCQW`km0Eia9j%y2T8=m3CMU_k$flWkuHlf2b^* zqbKP#mhj1$Q?wc}Ei?#D__P(58`e_oe$X9{Mq%cVGy4MT?Wv5xw8lZ;6xdc|=xPC# zP=tC<#%fgnv}ofe0-o0e(?E0RJmm_T*T{v>u5AuY;4&Mq+=Ww38cli^f7snDM6}vj zPsNdpy>QI-68nzH%IIDVdYE?ghy4vg#O)nw1m&P;JY%`y3k7BkguZVO+%9VlcIgP3KB@^LC(rx9?jUz@xdnsbr>J+&4Th^;KH)w_ z^v7Ihovb|mvg*c;>Tt{4TND>El~ojR2WLO_K~fkVd zTudUr|E7$fk`wz2d9Q8;Uf<7JqMC5jR-U3?mo|$3eqg6U6zweJ%RCIcZGUU&(2hdx zP{+VKO;b2lAtEhg6kqtxPEZNupxk)Ik~vx*duqCPaq9~b%AP;2RZN+F*Y2fuSj5GD5$m-Z445Pc2Sc{_=DoFKFW;`=wY( zR1@w-%^sqcUtX4-Oqhy;>ZO`68%c7s-mvGETy6YS?w?!8Uk-MWrwy=_1{M|aq2pa- z_a7Eg$2a&?j&hM#jIczjyfzQkSN(iVE~U|{tfCylpA_k$2-1)1`O z3#~c5ind&hD6kx?|2qD<{JYZ{P9@YrwN*hTgZ1A3T$k^5T*IkeilCaX3SaY%`ZxQ^ z>fJ1l@nlUA_nqb zkftO6ctX(3TQH6s7{0R6{=d-Cg@l?9bp732LM z?ILfOY#~ui82egfqW)mgVJS@8LOjL33hwVBA2G3z`e6U0W2NzjrWR7$!b0xb&qa*>2)}kH$=oI`5yz7Py{_)L?6gkx42WgDR3s}8uv^#>gtxdN4F!z_svXFgwiZ8r%b|${QY_;-H9j z8;otr8kdaisQ$Db?}dmJm~EKq8hXHZRmbH0DhshT$2^%IMMQC670gm)ysB-3!@A5< zMyn?H9@NDhH~!!F#X;n#^{JV`=G#<=n(Aqw_k*ITPs>Mj_2N`QIjAPgs6Ik zqeR2Dglth8pQ}b&6AgFg8UGLNmuSH6+F34q3L<9DYs~3YC9{nPvs!;6ayD1}g9tH% zaH@+UN|qZr9z2_d9BcpG$d_sp;KPA*UJ4_?lnO^N7y(8tq?*v<*L4@)S~LX$#-39> zR}`&Ae2h)ziJzxnz4)_gtB57^3B`5EaT`7zTke_Lmj4`MY;CCuNrpM&jJCgPhxG?z zjsG{BrqmwJQuUr_|rg#L*M?F^kiOoiLh8UvM3z3QiARzh1t9NYQmYJDiee8#Qn?F5whs;=8xCIy$v2x%T90pobbOq=^=UdGXDNH$pdG&jV{&2 z_Vjpoay&+bNNH|FFS_p`xo184bDzpjUWSNe!yAZ2gT_GGgE2CdP!7tCc@47B4`A$I z=v04`e5}u#KPShZ(r5kQXdy2}j=-Gx;&NCFq$g~ZsigN{BRV(SL!z3n7R0hS zVsiXoxUzAhii0B5EwB3J2tTrT5?H+PmQU9=wsu8hPbtUS`1?qlr}P}F@F`E|!#`E{ zR&RL3ox4qhh}}UlmGopr#GO)}64iuXMcejr`zw>cKdh>}3+vh`x|F(hlq09wn?Eyk zN=Hv@d8?}{`Iw=TVU$!!rjmk6#;e9n_LQh5^yM5F!_VoazH3HQeUj% ztMHY>D!yt&slMa+Q2QxhR%oxXigHj*=qZ~}l{BfIBKol6-uSb87;Z?Y^4gVM!aF=xl8dBSa+dNrOSJhQLpWRFqJ0U z9bB^BumVSI%bBq%1hpzI`Qe}0uIWg{s*#Ns8|ETn%>H321ik9Z1|#D00tK-+bg^L< zA`Z-nPgW*gx-%UOO~ah5X=*Wd>?*ode^ zXW9INvRm8YUc5eYWOb>q$wEOTF^GO2?JO5ot;wk-JoD-}Rxii&m3nWSBet!z5kbeD z<&%qR@HeY$gws`Lxo(RZy!C1uG4hbJykL~V;q5h6pBUIqTGoD^pb}~o)r9NB9b@&Y zpCn3W{AY@!1vcW-M`yV!=F&R0#0E1xI?LLpK77L>8&UR~v%GD)l4GmIyRrIc>$%e6 z14$}G`FS?tr;Ur;uB{Jum}4Wxo4Uw%0~JJ{XJhr|&*n<+w9^IEMG=%6>slVGDEcob z&pl11z@$nhFzZAf3yzYwYiASqHtsd6_<-?+6-{8#>9?$6yo4Of-#Q8V@-6wV8Yw;p=dRog5mZ9kp|&dY zr!0n?-zC-9I1x_$V*(`>TFLdEj$d470{dEu4xjyLfrasQ)>F}Xt?UCg)3XkrJ*B&RUYvJt7##7qlI*%p@OhPMD&N7(wM&x zG&Y0!(_N)B7lIHV>>Ky}gnq5X#EoE_(jr(M3Mx_221+kczDO{;91y ztPke%@b~E^1#HnKr5(pR&le-^6sPX*JQk>gA$qKD0ZZE&!l@=aA8a{aK-c%YTI z$6qi3?+jb%nOO*@n$XX(!xT~JsE<5g_!w}(`25L@?4+=J4OJX!#5Y9rIq4(ULo(H%$~xqj@!6HV+xkd) zla!zzQ1DK)#Jo|T(n_SClk>!`=!;US=C_m=pC>-8y(s1XD3LHn%Jyl}wd+xGf42$x z*7fql^wXE5eP>FfqN;hq^64dM!SNEw%s)@qUB84igcQWmAFZTXo4Uy@?o7~ANoAIY z*`Y5+jdFYYE9M`ACti}0Z!1=x~7L-WTTHI%tR83xORz~_ZUEPj3k$GaM%Oz?2^Ad?_ z!d#P9mU74S5mIi<6cxwtfq5dn_@dPFoth8hglF5xq4Q#-MV-2BZr z$-!cZzI@L-(Zc7Fbl^paL=h+2<%wI(E=dEkl)mymQ%d$6K3=Mi2r4NRo+p-sUy?>V zE|I7vtgn`1Bi9QaBs~b8qNnVXLyb6beF@8Sca`VlPF6jM6s<-a9k-Kpd0tO`vU#&x`5A#EadOYILn4;JLznXLcYP*S?<@;PBL^Ww={Fo?1aApNAFl6S#Uc+hr?JO;{_1C+Oo_UXl(Ko2mA~DTf;27nz_xJo%MWE2N%* zN+^eVN4Vy`Df+mDLDIwvCSv{wyi+Tj8K zl78rOL(e+AS>P+w+~}ph0S@)QG!< zllAjUO_LrSD=nzRawgu*`_6LuF&l|$!nnIHll2exPnEjnmlo6#ilCZsH)`$#eeT8- z>CMz|Q7_U)T*MvI(#xyyI^AqU`&bwG_{wU0K)8()wsTXe+ zXCr>$@1GHh|JAs|#aG@P!BN8XL$b0O) z_)F9qFa=LZR#oE{`q_xraV~PIt->+%P+xuh`FCY+`{6=$RSz36Z;Xrl<^MxmS`(+Q zzi7JLYw93DbzL9`+CGiupH*@CMti5r!Eu9BEvL3qO?W1Jwz9tU$X5Er3)ge*UBr7W zbdgP+ETq=A%tYm19`ftq``8gY1=@o-L4WV`lkjZYsj7Z_R5Sg-vun5mp2WH0n>1j# zg+$S6#E>6N;e7=Qo|sTg4@ZsO^%)Z#r0iKXP^SD2*6wx#sn2{H*wtkRi=5T~IW}}^ z20u=l@$wa_>8T`bu?@7`zJpb-(?Ft{G@2*#n}B6+IMsEax1Q>y2&xHB+|!#uwbG`% z=EACa`xQ2@Ub~Z(dlDdZxn{Jm(V{Ycap({cUCNZdUr<%m4$46_VQ$>JI=#%t-Zekk1j?1Zcd~f{Z#}&#?pmQ}ysDD) z?(N@*=5_rc-mU>_e?3r7bx}m4D}~}fDQ9WfXNBXyKmPE+axP1VQX?FZL!aajpBKUg=)lwu}$E1Xwpf?1aG}c5?UlqJloEeroU0O z3BTwkG=c7Qd!0y}s7BCsXb2j2aq8;f>yh7vNu_J*X)n??skk+zH|yc?OcVZXVGWg4 zv>j9vM!t-10)_UH!6M#UzoKiA$k@J}ogMK;iX3ADaT~U?yLE!3k9~{8ApHHa=^O0b z;f{6|~9Fwt92B~&lfguYRD2Uo)P;5&E+RT9!#%7=Z`qY>=uXvWVU_ffT+-kTi1 zBC!eQE9Roy^RdgCKt85Io8L=)2WgM05oel7Fyitj!^H-^dc&7Op$$%EyQO@IK4Y{^ zc!IT>L8#q3!^khbDy!%nq?#}`!?r2xPi&=|am`D`K@pS>--Et7D93UQQHga_90j@f zv`6h_?hEpzQm+d|=goVVG)5WcJ&SbEVOO4E`}W#;Dxn#1If zpqg-HS=k@Fw;oD$d=;p-$}AKeTBoqE@A=Y@%Y~w4gTu_{XTEg*D$aaChuNw3id92@ zew18$9WfmDNzex@$P;twyYkPaeoGIR76H%wD@LG7)`sI0IN_rI@QSP@yHEA@5w!W9151eQ4YM7v>S5Xc%V%sZU zxoq(5)HNL^>+8MSB+_=x=9AW4ktm-U@wm$emilarI21qr&sUK$lPTZl7Wjp|<(wy1 zzOWtjdE#w?CqI{=e5(!1Y9;Mk*G+81uWc%!2zUJQZqUz@D_`Dtg5`Uc&05k!-29?O ztZ1DltOGoG(9IG_`HuP@H^#mWD=)nq*pJh<`&IkrolXr1f9eIF@SZ76@9%^%lHMAVw3rxMCRHEA?g4yCdV zJDZ4^P1Oj>p>D_7xq_Xj8!Gx$MXN{)DF@}otd6+K_!J!z<$q^wc!1Pj+bRng<&;(u!&B{R3O_EFX%|3fJ2mH%nNeV?$V@bu`iR6gBH zUvH-k48=Fj;PL*_Mbv@Nf5o(V6zHQ+AnoL%%jkDhOxDCuY<07qU>!-@O{NaQR?7>yd zabIOE>IIFV=-8=K^E*}7Q_0{{Hqi97v*cFRPokP|Kk-;wXuIn)>)Y5#Pjfj_1l5E) zsh7eGCqGZsCufZ^L{85ZhcRFDyXZv2oCU_;%k!rhXclT*A+Kp;2rZbZzkYXyN^*aK z5mB6#sM3Uy#j8v4+L(vFeN<~sud<0VBBqBW8OBb|7B!LkE1pMV@0O{^YawD#jb@xm zsD)G$`VL|q)M1F&qix1rXBl->*r>LIYSL)x`Yh$U$|dMmvrJVcSelnrjYuE7meK)Q zHlJ4^CiK^vZQSltQ#yrpA&zx+lRF%7mwe|N zf3F+ljx*eR$7jN9ak&21kCQT$Ts><sMkqfdfpNIE;s6ObHsek z1VJ_ZKd!zyuBzvG|H8e9Vq?=FA|g^MDD0lA*xiZUfryFS-Cfw-C?YD{-BB#S?!v-C zMHCcl{mt=y-rwIG{=2U``^+=5dt%S->cbWnjUPTy=Kqu5s(uXZbXq=g2s8SBIj&F%^*nvN*;>25 zD&pYk&2ret!NxO><||o~%oR=o7PxTF+2-Gq6&Fsqah6eRr|dm_uyI2A4CTinb1U0V z&Yb!|(Rk|j*k*Zi=wRcd*Yh=g&{m=I%zpT^Q?2S9x>FuT#DS2R3T;I>w1}@?ugdc! zu}(wRT?%bQ$3Tk!hh%xlGR(Lj{g6T>w6C?n922H?#=KLD4$h*-{t92>nE( z>70+!(c4_FWL+0GUOLG9d$%V>z+lvi`rLi+FY4t%c#K$ca-z{`w!1b8Glv@^ycR1F7}2EmPeY7oa=-{G^|u;9Rj0H03hf-N#$R+M0hCz!)Z- zF6F+9sm{Bp#$^s?8I{bkHn)mi<(98L&VjgVrbzTWa6~Uo_4X-k9)r=#@^jRgVloX! z#K~R#xKkl>s}0B9IOU++cp`VQ84-#IDxn-y6MlJFZ~XVhi8Kx2b$-45SHWWlavc2q z_Fn~`_jld6(~*b&W@=x1tI<0xlblR(ucjJH7kjAbD{2+hgz<0z`%E3tkIK^qY5brZ zT0{yW)H%bceuFetQ4XyiPURd;$DdC%cIuePs4i-|wlYw!K^d~(>HWglzArSKf;B*Q zrn4nh{-OzH{C~G9jm4$&c`m{KjkxR74_funL#@0=?BIHTF{!>Dnqz(Vp$-8eY9Q7V@BWCj`B&3o=ALxf zFDp~b*wz=Qgd$Fd>tW8NhwONDwF<`Dq<1pJ5GNY;?V~}g#wrM{jnA3GT0cR#am~^) zQ?l_V#Y+nlq zrcc@FX=;tb!2!=@?zLGQTK30kb$VECuj8kLznB<;74qI%@Moo~i^YSme#6$k?7#!n zk3gK!O&LF%cW&Gtnqp3*T(=2f@;F`_O2h~wa1)4pVbGbu5+uf`sI+HEOe%y z&?0K|`XCc3D7@axK6tYC|F=4{1}hd``^h#&=0_YFmnP?4WqdshfRL_O2@&hM%;_JX z$y`q}+GBhPW`ey`XPfwPHVlT|)sU$XQ&-Wmkeq|-IW^J9ZQ?GTeqUBEg+53%K6GW(9zL?^5W{_9{G`(3u0X!{$~?~nfHy~NEAeKc9KtMu1{ z7v_t;_QPLHUx81ILho6x_3D#hRp@8=vFZdd<3um0y%(PuBj2!k=Y2I#1NxM}yOw>C zrkm4*>rgF%w$k2%H^=E<_)1?<-?KX`!>Z#ww!UIL3;GJfO{@nwD3hJ;<0E#Q#4G0h zE0*W(i&hxE@B9e$7hP_05Oi$5Q3lhL$2Idx$2hJk8lZ(oqj? zpWic|U^SQb`!APei8@V%sm>6vu85xdzGb`gHN+dN)UzKg{1}Q^vn$~fqfrK%^Fgh= zI7@d0pI6PqJU&E|HJc)+Cd_Q)_eLJO;9-&j`oV~qdg#_Qn~n1J7d2Yp7~J~Ef^P(f zhxmWq(@!kIQ+<{UZ1YBLyx7>Zt6M*yt$NNv+XsANeJc9rL!8DOrfftrQx!z~M7?Dl zKeD|k0fHi^COpTIcwc6`SYnEKF;K%nGw@SQ_=H>hMxOXN(bT4CKX}_(5Az0QVTIlR z@dvH?llhS~ck~xp#CSxU={m_&8xgb>wMvVKD)K;{tRG`)aA}~%4_YIDa${b#0uN;N z^+TotSF{M~2SsE2)zBDO_jE()-exFF!b%jyDyOh7WowGPv#=IK@pCL?QB9G4(h`zx zUu1rX>Qz!{Y>XV5*-+kXj``b3EB~cf&uLW>yIUzgqCxdo`QSx!d422kxIaVks zvg88W(oN;~GDgTfAvNV&%z{ZJ>6qnzq{|hytVWG|R@MKRAUoXgm8*lb927zQ!>sbr zC#CG+1&DHboIi}Y#p>NtpA2U@U63C4%F7+E1_71O z@t~S8o*^<>_8#OYpVS=$v{j#XnC0K%GF$(=y3iv0YsSm$;@8FYo5R3mqb0nXb}-bu*P=46L!~FLxaXu zgWk8~q>9_b=ca>zT0$+P-1r6A>lW7F*(Q46Sr#gx2+D`mhgNKri)%W`*7t`)l@6A0 zx!Ps6u3M0(gc)Rfa=WcS~3mmCCXU zXc1JCPWRknrF>Y|PZq8@Lc>Azu6MVDmX^t^LWauGaMx<7w5}yOYr=h!mfwb%EuwjE|bG`o^ry+ z5kOl}3n@2d9h$X7cH8VMhiw_Dv8sp-R%p(>!iK-EB`7zpGazE&c4t`~5!7Ca&~o&z z@<{4_mXiJY^n*2?dT_sem6aVFAP!)4m5%zW%+)SHlxe1iv`e?y-$&}4!LsxN`C)1a zS(l%2-+flmYUkX8RC`*z7soa>3-9}jM_KPCM|P7^&ey>f{)#CZ^& zamN#R(Jqei*%G%8$<{~ZQYG77)2llPxyjhuW0)uhw;t@Y!@B4`bH%oiT`Ne;h1T#6rEG}Yy4eRwU$rr*!x({7=%?73dBGz_cz z%}ZrvG*Tl6mFQihWf&BWuC(u^MhUsBOL<*~L z!8aeGO~MN~OxHlp&gu!!0jnQwN@C?wd<8{NO}Mf>=C$lQxRGQPdO|jiV8@(f_F$+M zK{a6=tO>8>gAt8nqjFk~>Amo~zi1LG(92g)O*-AOyJ^zyMjv_Nr514)@4ez9!(l{ht0i&%rLoECm!b?*fT`Xz&L8O7enxfi}C{ze4V zMG=%6b8L0HFV}ajX1c5!1h32MVV3D5TQ{JFpa`l7=OuIRuZSAwZ+Y;pONMKi6MZheqo#$Qc z8=LMEB=%vIu>ozqvWr;3{?g?igIWXzAJ9Xn#xMP z{Qe-Y$2snn7#;VSP+jz{p@+717Q9;5>LSsghYYORQ)r?3ZIC_xrZn8$z&|Y-1XMy1 z_k#5BbA|;UP)mJ(eD3f{zS_2t2NdoH=SJ&caE^|L_wg6bY-FFhCE z=5&Ofh}gO74x2Hhs-S2sVpD%>Xco3z3~k+6vr=UB9iM6s(%6lT-a?BgKgb%2cib*M zwCoI2LRX{cniI}TtO`Q-_jJ+RvJ*W0sfQ=HdTJ@F3Th$MgjE;5Swq0@baBk4lZJy@ zMKxjl+RHZJatrfUKJ2K;hfK2@cQs&M#Z8&aKT7SZ;`a-~te7=o@%j$1y&`5PTJwbM zjrS7kN*chn=POp@bXBpum;pZdykeIgt2vh+h7n`ZXIBCY0N6U;uW*mQB{MW zn(#a)zB4`rl#(O1b_U&JJ=ndy!oD~4#>#uRmVr5b-wSVX71tTte!Rl;(W+JB8(TnB zuj=x6SZAP;&A93~>F*Wx^_{m^a77RGH(p?#PAa0?O1!_;RhO~LI{}q+y{Cukt1hs{ z*wa)KuIbOi8kt+G%d2ZU0c}Ms)FLuh;AztM7a}^lD;&I`hpSK1Sc!Yp#2>We$FMuh zYDzV+@-EiFOHE^JkNQ5Z+eQz&OTNPDj$L5zGh7iqlEx}FswO5s!u6|!G{&Qm7k-!0&PY4vPA$v&DnHJ!;) zZk=vY!W-!Yzl28_?R>Z0WL%SD57?dMenN}bF!`<+wpiAEiZ54vNO_kKga* z^I<22yS@+56>Pe@w0JSj=Wje?-EhAJ-#9Hl$c$Si(Q0FFpshA7$FGS&&)AX1enN{# zu7jto+in#tOLPOeuR`}fT+iYYuKr`@&|m%j*d3#TvZc0&_k+3tZPi8UVeE*^zh~U1y*p2 zmspBBG%mJRS>>>*;wSEy?B92RZT**1cKS4HxW6<&UR>HBPaJLyW1`#2v1i)?ZACe>h}m0;L3o+wa(=It z5Kz?srN5nK%XU^4b9^vY?Z9OAYlx>PiMet67?N4{i=NoKiHHb8#DIK=8i59QHslN| zR9lP2*jm4$0C!r*IdxhA)iu}N0L>3wWOLmy-!I|DsIaOhqIjmkQpsmWe7$9!N zX{N)hz*W}MnYZ=x0-)< zcW@E-92+4k#I^t`p&V2bR*;-r1X{hEBPUj9ra_!7XMp=#Xs?J*}< z_0O(?a$~J{umiWSh4STIBhXfqLyK@ZQ3gD>ZIMgkjKDf#w(04ISdEEpn%+slCUs%bKCRs%SJW6=84aaQpg<|N0g@<}~REOL&!SkwWpx5J6d@wYo7 zj_xf33+GRhU#B$yDk<9oNAOD=YdE>0pqlV>X8&@~^V($0PEj9XF{^xQM}c{--8CFq zL_%6wI2*E59 zZDnkN)hdc6GB!rNqw)&aLX{aa<&u+)fJ&$zTB{r{r^?PQE##yD{oz;WUr?L zh_CN0A^yV|)-*XlWaVK6;#c^@=&pXN?Jb@xm!>tAoDBeuyH?4TXPK>kbq#`Q!Y|19 z8}jmeA31zjf1oRybe&R*82&s@{`Ma!zh!pIDH-5m&2LJ>6XM5n7U_@KO4*jj0LFam1tvxIh zGB})+m0X|lV#+X}y4u~ggg;LV{QH)gLW@|{`H1ZKv6ND0{4nr~w}ij93i5VOYYJy! z39Y6S;v1uD3T-vo@!_#D)6PzLe>YrHhnFHcpROkT`pfC;<9o?BeBIiLm#_2E7vYNXf$DT zLc4V7S~$$O;of{@_g-_H?#MFE{L41;?|#Fac@k#BY~ICLDbd{-Ir6%u$svd+=f6^+ z5{kIG!Hl*zt0G{0HPhE0Q;jL3ZiQ@JV~$CTJLAOrU>tHBo_yF@$~j+r;?(qNCf}b^ zjVDT;4xy29;Tz2e(=aDaHQ|>qbQYB`O0VjWkBqh&iI!AFjtRH&BWAX2Cz>H5ELo?~ z<*>?(i1BdNScrLwMz<4{5s`9Di=Z47jkBde$7C&xb*^~1tCEgAs*b_WTqjMBc8xaw zf1sJ#S4WFhGsR+ z-wa9nZT@|r!kv&wSV30px4m`mAmVhopQ-q-sm7_lz6Jln+Igy^d)0R#8OWjjuIv0E zM0|(?RGV)XS-4sIC1qf7;SZOhYe(eI&pqVwd(P`hS2(8E=w!wsyTy2Ikbq#0in<( z@A)auDuQ={9@5&EDvK+y;7Aap0>) zX-~Lm&#R@CYYM-&rm>(u4jKgIpcdk)npZuzndctzVt*wKf?7h+c-Qs|g~dhhpZdJg zLxZ4}X#1+snNYZVc~T2jsE@Zb4J zjIv0n55GTK@*(rh*%tnjP;b?23;$`tTBfdTVegn|R>0lX_*mG$am+^0`jS8YV#3pa zm~&uonm;e|#>@c=is1-e^6UWPtfsT1_@YKCnSeFRbJkbj&%mEkO_(39W@`vIHHY<1 zFKwKHdZRI`g4a7OhZf=1xiu8< zC;q%2{$>>`@URE|T#NWqqct>rU4uDhYOSIiR1=;6ZQ2^XO-Tspf3viPgCZy&=5Nob z3&90X*8Wzm@;}cD4m-+J&(|f|K*E9}?ClS;g%|J?wrZi-kBX6-PwhrOR9*i`R7+yp z#4^<<)sO!)>2&||!}OmY|4Ar9wXiFm09VHbXEL>0!|OgWQNAl}q!P-Pf{32pCuGQHQ}26+>YRPY_KVIXJHLT<}Y)m5W~nKyewWtjP#t5Eb9ZZJkEeRFVtbl*F<#8p7it=x)VD93Q{Lro=z+oc5~>jn-L#^_0TA=b6%?#4;<0*;$0|C|O4A ziLwIrt`HZI<&eYnwE}*YrIgI29zZ2AQ>@_E{erx_cR4{d;TI$#uIWlC@raUW z`E6~u^Vrh)5Vhx)gGFnXiM|V4z>My=o>b)(8#Uci(7KkiZlg|D=6gBFYPnE6YtRCy zgw|)InlSstk*ct9`C;L|oq-YK>8HF&W6vHtiQF<)aC_Jj_8`Vd#J93U+{w?_d5qMHTAmEVA*$$maTXyvXXRV%$1COz&gI{jAkp%faKnNdM$@O8U}v zKqWSN^spq#j=vn|C8#E>vHtnFJQKA<@xz@sDp`%Y({sjD;34O$iR2!7=n!9lufQEM z%$T+5l`J-SnR3a#3s6a!VS1R7Re`@a?46HeO@mLe((rl8f!Up4{6yR(b+qFh+`Pq{ zg?O%HWm#T4)?4EfM%FCMl!0Qda%OL54T5q|v`!cMAyal(yh^bj(NTk-eMSAl(`WVH z%J7*hl%uJgG@erqYAxp3KKWQqojFs<_UR7OLUC8uy8=&a=_8iZz>^OT%ky`4eMF1q z7+XK844-PR?#dKt|3vZ$iIG;W@w znEZQc5cG+9)x~o>1s^62J*Wh?q^#CfN99pYhdpwjjt}_&9&;zK46hSrV zbPE>h;L^19O69$+pxq@sSQK;Omo8Qo?umM+RN9GO@9!zn@I=Ji>2^H(vbt|j)d%ys z#&1)GmS~|tOu}7cn?H^`r%GkbiF}>T#$E@_x^Gc--)spzy1e>#e>`_{)NoL4yxPm< z$_Ur>%9l3nGzfZsT-ufo+iskwH1Q<#d# z>2+H=WOh*sP3QxUF-Fk&Yzgl2!cSN`=m89+`THC{vBw7^Ir@~~j~l9SeNVgJlQWuk zSJo`+twHd5dMN5xlHZ)HMdOZ1k*9J`mpV#Bm=^J}J)UElSd{lW=_jsq$Fo4mMR{0n z_09S8?-Q97T1UCmvo}x)<)GH$%<}15Y2n^fxn30GulnjC++fR>H}Dk=#_OT)(qi1X zgRgLo(8Kupw!Fk6bziNS*Bkk;P-CV4^Bxf18RG>-N&e}u7C|-P{OZ*UxqrtX<*euq zR2RL*w1_U}p2_r@1C+Y4+AERrX%Qi@&!tDPdP?=hz2F|kSq>{vjF%~dd)qDaur0DA zFJ3NxUm4E0LXbz2;#;g5q^&l;g;#z%%r=iR|Ngl60GphE)o+h@@BxnMlX_k^7kIS% zoN{@8HJ}oT=(yVezI`imuXGi$xw;ED2P7$fC-?xBwAqTaep|WoDp&`NYQi|nnl5nG zCrO!#2-?c&m;v_ft;ko@&W|YH$_HGdy_I{T1L3`g6}ZTv{KqYOaUQF%U0zv?H?HO& zhU={0catJq8K>3^yVl+l`dxU#_r@r&56C>rB7Dx@NEmq-4T$x+k zjfCDuF#dnoFQ)q&s6kLoSfL{Oplm*@E+4jAi}*PaqhX@|vMc4VKFD}nTm12xwewe_ zqbnmvm)4be+MP(C5^5FY*6D`VJ}w=mT;xSuB49e6`51&1bOu}x6jxI%q1+}t&-_(W zgkQrv$wmXedQDwPow+JrPH?%!7aku5R6^Hx>AEkTiQ5)02v|r zj?1wj7rC)w1h}lTgdPp8c!nWJV--c~bZu(ykMV-!}@?+^UrYUc@K#Op!s)rK${<4_3>Vl%t zDt)T_D3e&}%0nR+zr1D)`pQD^bXH+|J#-HH#1lu1v-ez?mTGg`q5xKqnYTiA1I8X^it(J<@S2$C{dx%vgW$ z%xO8uVigY@5f1deqX?=A&-QJ+CM}(2@C_rh9P}Ea)?$3gdfb)yIh_w0IT+}*L=jpJ zH=k%(W?#6eR@NxkiW%{94t`=;lWJ*l_8+T_PoGg)jICC4_Sg4|mQm}5nQnX-1ys^z zB%YPA_{coR))G_`MnG6c%eUSS6AS$q1vGCy&8M$LEXCbE<)$gov&RTX#Qni9e?PG= z#vnn_T14Eb{c_9tmL_O7LgNRuifY31wZ{&~&ly(YsPzaKhf&b4<1$%br63VK7SAgc zc*jDU*AkZaejL!`J##IqUWwnAB*@r)$4sX?L;#Jn<``RT>z2g=ai@}M!g$d)3G(Na zXQt%f2n`3|N=UyYnJoNlO+htb@4iluYlpuu^+yC{rwA=ad405Wb)6Ml9qSv=iU_o? zI^)R3T76;LrmFAS7Nw(Q*ODf^2j!qw4Cd2M+ArrF2vLd)?Jn}SNtQ6HX9@lgPY+mO#Q%#m#d(3+>a#tf z=3e>Dx~9^2)-a%w@WGbQA-Nb&S`(OW7kT@{%`(TXjWQIp2+Fa)0q(2kmE^v=RE|+Q zqvgcoO_Z*iB7jOL2j#}`K*S|Pv_M3m5KG{;CHbEsL4qQvCd_{Ea-A$+GE{LKJsht3 z;ak6Q37#IQMNmz+M<2gVejnRX>32uVLG@bd%U;~Uv0SYj&DQU3z~ml`THs#!kD*K@6X8>v7K~a# z5tJLxK~D8E75z08=EWD*)ZsjmYpwyAyCy5dfcv;=<;}vo-(z1DYvymVMZ|>oN5NF` z5ch%AR&!%AG@3B0%9N2}5mt9BnrmbfK{%v4j!_Bapqg~L zxEHHs+rFbAO7;-pR_5{OWxN&g2gm$%>+_;n@9QCTEX-r$KlB!Ie0{e@c1MKUW^bX9 z{O`(GGU09r)r6UJJ_pL{mnK4T-5aKZ|GSnPH{K1=5rjsQuK%mGGGX{=C^340DeHe% z#+@B$AzuHxVhV0Z3km+;{~s1VK&vXctdntw=&^TYB1Jf%PpTibiBC0Xtl%;`O1NWR z-5z%*IO%^^#^6&=Lk!rX>UjK)PYfI-OY&AQ*H%Qy%a$;;ohARASa;bbI;ZjId~ta zV^FPcYRI3j=IeFX_A4Q^(5HX@_qc*1$X#p5@rdaEu#%t>ilA2|j`^fj(u5Txd!Cr5 zMUZQ^EspHgX6MB#dzHg!Yfo_#J*eCEjD5B&Q7sG#Ug{#_ zKY#dFbMocG(;<3W2`htVl&U%e}nihY&&VTHVez1z0iHbEs6q3zwhQ&VN* z34@_Y-zS1f6ueVas}7}I4xyTGSKl>Ru8tfGEnDg2AM{pjHR}9@5N~`Ys+R1kfK`Vz zR)rT|F3X@F7kVUU{GhG8@ENRLS7L-(vv||vWwK)=BF>x=8VS*>;nU^as0qnuJILqu z-mt5U6?|$0EO1mg@u-^>G;DT;ow6z?Y6Mw9*K22)$Lk6>=Iff*fZhH*q>W8A4Pu2i z?qFFZv78om;!gwI*=j4;ub1TzakXg;s2rfK?h&Wmgj`tcbN8Tt8R8s2<_U^S)Y(=?Zf@;FJ41+5? zGQ1Frf7ORYTMVF-eZ&eqbr&ly7{F)3JyvY9n@HHHp0r3~BM+*PU`z>d~)M#P57o^YVUJ7IN6feT*@5WDvd`})~g zP(F4O&rPI0V70u}S$K!Wm0?BoJkhQlo*p2Qd6x}vdGmety04p{nlQ4zRdvV?T_RrJ zs|mZCVE(g=XDsNDy%^cT3eF{_GtYVUqOhA4)Ny&i?$uUT=#OUm!PG)2qDj*rcot#> zPZmF7rs@uY?m2)a{E(U=1w+8;ixNf3L|12r6J zb*#Xy&0|(v@1WV|Mns`NFw}h^iVJ_B?BQLl@Lc3wmYY^VP-}I%AL-?x$;m0g=0tOF zU5w-LA)O7b?jgGOH2`b(nl*0hDJIXybGI((Ec;(gB@{kRi zTUI2k!YgBL8k^g`tOyut1sR9an0IaUZO|bn6rNo^Co;>q!?^WU(BtwGHrYdq@HuG( z0lglwwE1e(%i`)zFetLJ-1xXY{5))c_WM)W>`iW>@fzG2>wKM^8sjeJEHQvv)HOEo zjQYHqSlbC2w5cqoKCBN^@@1C+_U}kx$8+5T)r4`DR*vvxaa9?$rU9%}&-rY*%Iu0) z636gdk=@>8R-$#qd>l;;jxcmtRT;9j0nk>IgK}eR)a44$aZE`$rC$?`Rn3MQVAht~ ztXaH=pxl_h6(xRk%)KiQ2Fb1DQ?e4ItV>|>!V@%N*JNR6pnEZ3Cv4&&NBm;CT zahKHz^biz{=jbonLF>;&WwYeQKzo!Tw0=zN?+%lSE|uLyAlx$VQ7&&^D6oE{`K@lBs&vS3&Db_sC1+6O4*9C&2 zX354u45)-!rR5lzPzlPz7 zXf2|`40m{+&;@g5Fqn+*@CgOZGv~uDf}*vEBXixsFQ$vk3uhWXE~H@$Qv@)>UME2{ zVTPtdUa;$ZfBEiXP57FFqZX9JT3mA!1u_gU=<;b+1?#@_v$29d-%Ttj+8#Y`bJPp0 zZ}yixvT6ct)#wktqXs6ja<&fn5JK^WJJoy2zdvdK)wSlg0q(|}Wh(|c3d)VyLW8~G znz5&x^+${FENca^8zg(?X)h=mv+s@Yh3xb(a+=N$hE>D))yh-s!|n2dA}BZRrJkt< z1FBAzf!6*StEeA!O5r|t$#}Nlw)%v-RiX;4ZWk^CKLo6>Y@nBjcYOk{h?lRd3j@b4JeHLvw6u4 zR(+SF(BnJ2{p2fbK^=SHpkOZ52G`gWj0wPZ)DVAY5nW!+URDFBBoue`>sPwPOg$V0 z)r2#d*Hyu0PfPu7*oK#G>ckknyvC?0BxW#wt3$(#~Y`PrN}X zVlC4zXc5#Zibg-q*96DvUNW?*uf`AR`R?}kjvAA~He66+CN{3D0ht{FWU1G_KwH&m zW(DbUFR~tP6@(U1Zf7mnG_<~4-Pa4Kgd#Q%#IL2Wvux)^bq25^C=|l19*R%%-SJ8J z|KE4?%^4MI1>4`wy`t%l}LtQIQHDM&j)(OV>i(|x|j$DKIR47k8t0zR( zJ}VA3d17HlAr8f=9Qy4OjK`g0M7!2pQVHdt-1x;(ew^{soncD!p?%`@>0FW1++GQY zEy#<+=ZXZQy>iFC5ML>B#kBhNO1*6bkz;wOamKloBa~xH_X*l6D>hdw2(nkM7R--` zwVq^j>K)C0e07!OkL8LAzV^!Uyn>t}cI?F(u%7nHv+zR5G3DY!qv60-zWct120<;M zXr0a@dZ01*=PgBUz9RbP<%;le_KM4o0=)W*T=9Cay)vzzH81=zS3DSQulQycK#l?R z2N*5N+*Rs*vXBLTVyjX1%H~N0_ATiw)rq#x?a11Ch(zaAmV;W}KAS~E@aKAG2BXX`I%RtL|0 zF|W@h$EvGQdAEm(3W%u6)|#lKNVd7v?8_HJs3tXnEj{dW>xpz_Qm5Pb z&R4cY#B6;Z&Ds)OHKLkyx-q_fGAv~x_;UoWat&~jYsIst>A(ifBp6CKMP%7yYXI& z9{yXcE!B86B386*AzbE8hKAh?3YDZ5Goz>PaMNhg=`Qx(Vrq?6Ev++zXIhxqC-2g7 zP;T6V{1j_yfr!;{12noQ2i1i6GTi-47PzLrc50T=A)e<|y|t?3z=J0i zl|M&a7R4W4!ZQuEhrN_h*D+Fk&tc^{R_amj!O>XT$9C_Zn$5gxP5PlmVSRjaywyCM@j+CjtcOBzJmF=lj+imv?f%=iB+ zJoMEU5h1ni$x&_FLJ7a~8U$^nwW^5EeL1arTd@9oR-qDV6}1-c!DbJnK^F#HveqiJ zM@Qm`Wp#yq`Z{Oc9M9LPPqZPsHhQIr__C7FA9go<-tL0-vj9Rc#p%RKXIL?f)j8PFy4!4pcaNnSbbx-A8xcPo| zeB#2N^fmvU;p)n%ChV*I(NYW>3>NhlD|XY(x?=meaH>~(l@y*i*7$SH2%dRnj(oSq zMwY*7r}#FiBI1|XNSnuYise&Jv2&G;ynoS7nN?MdB+qO+)_A*FFWz>|JV_-@*V)Js zN9~kFBdZ9i3E#Cn2FueEv-r^QQ4pJM0hRAy%&xadWVsnsmCzhJ>PLT zSPa-|0f`F@JaR^eNQuV0PfhiFT8zrEtxI3IHSZiZ_0u9K2SsDtYnkct&5c;z{^VFV zTEY@aueaolzto=zO`Wv`^^CyT*WA239U>RI`H2)EzMNqvIjdhpW zbe5493-ZmSCTRSqanS-!`+a9M#)XJ`$rjLO(N9);kZM))L0#m)5;eFjdQK(O53N<} zy~fFJUB0n8#&JOP(h;PZbh^+{6J*$@rhNVDDA->Bv(8{IdWQvTdbf@NWBl&^Vy8z2 zt5&U8EPV@h;iY$t(IDukEh=OQZ)fXxQKO1jk-kVqRt@Ak9*zO3i(WC58~1BpERt7i z1o8!lpc0Cpe3Fg_wm;ItD^3?LTEzRGW2Hq-0COES4$57yfRVTISkajwV%m8Na2WH2 zU7HsoZvC}@tE2MRpH1orhU%hZnK%CIP53yV5{hVwh}NyYFy9?2V#Kg0nca0SyB(%Q z(5sSi;|zI3lq`H`FI$)oLHmcIbvo8@p^Tm8%<8lotFek&LgPqrM%Hbi>`}&zHEugr z6Jbi9sMJ4PtzEKEvT~jXj`ZtpYgS}Xmip6vLXucTkF)`{W~>M_8wPQ>DLGSAg#881>D8HjEvgh^I`wUuqW$}6KcM`;k0gQD?-+sx6j zcK4g(vF%^3&roD%6i zKRTgBP!5X58CjTza;^DIHhJbGV@~>3IdP#*N$PWz(_Wz5m?f=ZW#v=GQ8r=vB#l+n z5~>N$%KXwR-nR94*A?2{rTwPmsMNxs%rb@YZ%eg)Pz3b}GtgXq9WwNuv5JaeZTd@vSlTd}!Ka zkL{BEu#FFue^9h0bcIMWTV$Cyq0p4d04@}oT9ae-gmz8@^}tvF(Rmh zT17Qs)wj~QeAkAjEDEnHzr`6c;9N2;;{Pvkw&PZpv(o-~6 zQ4XpJ@4?U6d}VYTv#2!17_cZq>gFc%&-pmCh%GBW@qM9jtcjP_s)x%mWZi|yym-mK zoNChP&aF%dZgOfae>i-q#t&+hb_DyD8Jy6vXCHn&T04RxL$m(fcYE=^(^~be`tgMH zgPpn0&Z$P)idv;b9LjZ7b``GA3rw73tY1Gvt{j@muig5?PqxgEx9X?z{%L=>_G%yI z;i9y68O(nS)80|RwKL?brKvnI^$(|-FpBkAS;aYaA@93E%Rv!+8f8eg38{SlZS_8P zn{BIil45N$L=Z$L!X1;Z4ob)LRs35M ztshPOGUUwDsr=BHKYVw!3_1BoDi6Znm=`D4QHg%IfPd*Y$w(#C4{cvraC@cG>J@xq zuSrI#mm;Vpj7jyMVm!Nl0}D<1DAL>Iip6;qloh**@OhncMOFzr#Wb)8AJH*aG%aPP z9A8ufts3%psxezw@-a#0Lnz|x)?9G_E5%y72lLWxb4ApH3QCm|D&nnas2wup9%l(Q_%e@@I5 z&M9`v7-to6unGDBrIb5|XPPL2wwn0Aep|I82oWWpPBsoNp;x+lg_)>?T1YkFS+ds= z#%uGZDJ{0mlX}-}~Aty|UFTo9?T+83!a? zQKI5D%NJ2L@--rs5B3lRN7~4C;r7a^ulW&9)e9L9{_1305&P404R0+&XJ=c%Xo_lXtn0l%P(;&P2I=tIRe2k6h*31|c@?oUmOb3e*gkuS z1`&rV|0>_#Jpr7eF@o+=TVvnI62^<0qBID)yRcuEC%mWGE3tZY-{4(ZsPT?_C8O1m zd4ftx7R?hqX4xycg#|dZ7VGxi>0r$MRM>cG-w4s>U9RXp68mSkHK!a}L@T$N#`nLg z8)N;KYpkLiwsv{KX`wwlm7N-%xe>->>>-@}>eOB&c z)txhWV1+yxIBXB|Tlt>*S?0+;-}bW9Kkv~G&xBCezQ`)1sIP~SN+@Dhp**>L&|bDA zO-0l>&tXc>T+_4NRgHE|IkGI~BXV5&l~X>d2_qmHDiERnZW>v(s)mE=rJ8Uiv!pJZ zE>TEWw6Cn;&^5@DC!g(N%P+j+O3OT%nYfE}h<=AwStQnll@|($80X4HDp}PjPbTl$ z#gc}<<64gIr9xp?vqh$f=^jR^mm;Vp%qUl}E|lqSEoxq`Ybu z!Ocv5?q04;yMCAzKA(wJO}QNeM=xA5y(&2aVyRZZMHcHb#54dbH>aAPC}hC`rsUOR553v&Qbqw)@M>@eH2jx zXMpqkorF3Aq-b0N_*zvFAA(FJx=hj_s9wJhTjlw^bH&8yE6A~Fl(#bbU~$vH4wH;j zLOCcm=0aK%3fHTb47u9b!`OO;4alp`Jf=z@e~vlV%N}>;EpOM<!umz zdj+jk?_m5&9S{mJZ=TmyGcKz66T|Vjq-JkaIS%3zN6ql4a;(eP&&;_d%V5UE=FjKU z=JU)s0soVz85hIxX{Y9zq?#~>9y3Q~uK8|if|(;bTr=lStFxqphC_>JbH5?1JDY2& zkC`K>gmO?#I$ecIp%D6PZg8E)TB~T*y1@xH5RX^BbIAboyzHS+Xw}C(VTs~lq!Kk7 zVgTNQYgz>4^W2!&3jThHF`bxEMuVUn+Wc_J-xg44t~6bKTFyu%)ON~^`#6}@(Y8XR z#1oj+QO(}C4xbH=eRV}sNW8n-lb?QVqN8C z@NCI#)0wU2?3DlMqMlO=F*6?Kft-J8R>DgU52Kp<@jpxGm7(P*-VdMc`unxBFxMn) zMLD#HwlAziE6k=lx@>DPW8`z`)!SJKnlr;>6Zu>o!{0NT%`koGZ~oo+*bK}mJ8x+* zf%~<_nONhQBF0WKqraBXqA@4A-!gF-zc-IAyR6BpL=jXIK1*BbtjKmZ zR-P{#X5883tWqq(oLhODpDW)PY0jE_x1lSKFsA*>_0&*Vj$=Oa;dXiALoefqF7f}5 ztFw-)YJ2|vkpqZ;iiHRYf&nUBDy+Sa-Q5y`fGDO{ipP5-}@3UjYyj5yh9#f?5mf(ydMgMuiXVkD$!caccpsOsT7_Y_@ z#jyWVRf>l*Ke4AozsjKoeKA?#IjYF-<#$yTs>TW%(?^J5!x9X$*7>PXST$LzZd`t& zlTtXp=@w^1X1th=ip?czsnkMiAX85oTXwt{nvh_q^v+Ga zjC1CiuY~$e3RO@~xMwu)HlKTOoZ;|JJJsEQ^YVBG^Y1$={w<6CzPiy_S=g}1Q`Ilp zdWM(V&+`+g81SdEN-YokixejmGD|0u|^TBw|z1Mb>EL0(Im4#OCH~O>|Bg0qE zr=p_K{EiB>P{mT;B1N}cO%Z$li*X7na;|q%sD&!r+=>*p9kf*zw?@=7{`_Z>;X~eZ zMyqDic+?ZlH1w)r?EQI?;aG(wj9RE)>Pe@274K^7@)Z?34{7PFP)|6=Qr4Oe!Irz+ZY^2pIiPLA-+6#FZ-I)!cde!K zOcipBsl`8u+*h%Ru}^PUJx&j2Mio-}sAp6xXVY1>XB4maxIfx0=0y zT0AEqt>9!a2^_tr^0W6tL4O08Ve2wk-7cQo|F#~s zO~_=W0z7&9XUINF%3(>_n!;{}4wih`z|#kZNeaq#qH5d$T0sXZX0PWrFNVRo(|Q=X z?J09e@#IuNW8<8#wGJxvThAw7lVd!*iiA9#$tuQsa_R}8x(|MduHV=2spG?e60)+7 z{YU3Ig$%bH8JXo8MAPy9W*QI2`j|9 z{u1%mSM#Pv!hw>$Xoicr3LZT36SB5y zWwLu;-T7|(|Ki0t%%Zh+&Rs@56JDEo^GDTU!5x1^j-B7KIdyz_M`X*+y_(5hPx0ex zqL7JoSwTJN zbghm(7LG^j@bf=nB?Uc-wh5nV{IM{;cjx=_V}V*|?ld-zWwd!B3j5aQ|6Gd&+FA%j zHr)Dm?0h$0E-NNX&-L_p1}BVp?)dUUf@3psR#4gpV_8ZFO0EZ z_E!-dwJ!PK)<|5F@t=iqim4}^&WB$WYfHI^Lks)D=rYJensl4pZRN+KuovzZyT;bM z^y39~cr7fw#ike2o}5c2Uly4Ys)%t)KS|+ksRz4}cUYyRvKrU>DEGwJ{w2gi?^sDe z{a&uChZE-MY|Luy&fpN4CI+uF6Gu~Gfm#mx=%K~kbXJ(=%W1Z_>ZNO%Xg%Ld?7k2S z^eCE@tVkYyQKT<8&(9p|5A&azz*yTy>`l`EKG<3hA-FE75=SGi`(gM_@$Qv;m}SK+;^4E@&*QS8c&Wf z7EX%aQBQc2kU>B#<%+NS5OJTA_=!pbq!_dv)Dx~&7mvmCB}_aFj{?e_ZykttpTzU5F2400?4*a78mTPr zx^@@s)a;!ozoVsSq4a{5laUTPb}s~Bam;eh!vAh z8VfuJNY(df3|Zm3{ff}tTy9*|cz~1@jUiXxJF?)8Sny}9vU^@Xur7hMt|#l2j7Wcp zE-rJ!)3&6EypLOyAAz!hvd<_*4N2o0(!|^=Ta-5S`T_Mt6*M-kPQa1o31NGcie;i< z7SP`K)k(EqZ8x*xu&i@GWAdn;P`Nl#5ntxA)?w~^F!D>Y z3qG^@Gd;L4Gljb%m#vJ`Sag9Q#erAoVf@*+C(xrPm0MO^L8kZS!!`LNWO`EzWqQ-t zSe^2-C8Rv7&Rd?76*LA_<6Gad5-_~IACFwq9cKR4!`eEzti~aCiRn#Q-}nv}Qv%!` z`twdFx&!5dQ*Jo*gey!Pt>A9h8g6CPO;Sv>!X2k3S?uDEI((u%?#{J(#y*tRYW8

!KG%k7-zbHC%2gzj6(&3M4Goa*gnda<91h&LMKRM9|CfIVZv| z2w0vtjCmr}>4kaI^IUX@T+}tpqesH>Qr8H-AYl3KFy_0gi(Z)jreQhtP&xIRLQWlH ziGFh+)ob~+N4W5N0G788W8TiX=!H0D8n!nWVs8**VvmIF6I>&FyWjR7!?^!oUGzc( zHx1k4Ok$7Y8aBRqB)B81D%(d*#(fm)q8Im9_HCzC@AKagc>dzkYuiDNDFW!}i^_UN zt8yg5lOGbakl1$VEj}SS5tA=l^}Y?IL4sb~y?U!Awc>WI@+((MN+Pz<-a>lq<^J4x z-iMFXbtFRN=*3-lPS8>kqQkSIMeT)Lwd%f`53Wh59KCopP*o&oDGAZxS5VVwp=1mXZ)1pB07Y!RmJsDn~DT z?&pc&d2m52D2a|XqH9%S*D+*WAQs^IY<0$U3~4Ee?k*V7-QC9eBO`F-%yqN~ZRZB}rNF$tVccZMAiQ||z6WRP|X(qDrj$U>byry(_6G2N!hz^AHV67ReJ}04a^s?S`jWkLUK}$)94up+eCp30Rs2sg) zRJukQ?TMhJBt!?oW|R|}gCtarUN*aWTIbWOO$03^AvzEiOPuH;L#j)3^s*@7pNHo- zBxorK(SfiC=NgKMBvg)G7VTUkJjWqHOG${1PkzEPoGwzQxv-fNpyF?2;5z*gYmwP;mXI*vjss*Nk}8C=NMOZE|bQO*BiYs-b{l8 zE$H(xj4>lHKa`imd60Qw-t=;U7S@ZoVg%;7@~b$Xd-THmF9=#nLU$qLiHKLq6J0|V zLlL!VEcobD0D!BoH5SjfMoh>`iHZCpEl* zO$}N|@Gb=Z?m8M0^s+a;J$8jR$*DmL3HD8{L4scP=DKTy?`BYg77`p|nMOr|UL5%u z(U72*-XvGgX749@T%?5rXK=1Tf?oCprE7%uEP3U$kYFUrHAv9Q-UM}x@V+QC8d^x8 z>^Zdu&zgpoN5uG1myW=qQ3-eAhkKpoN6Z72kP>T$CCl=*4&4 za}8QZ*qnEb>2D#CpqIrJCt_wPov=ESpcmhc&s#+c36wn-ozfUV%;DSdxdtt)7uRGN zS@;*Og9N?w4*keADp^S2P8S-ii(a-qdQA&mos)$GMogi>y6A;*+{>?=1idVmaP5WW hCCNep^RduiUG(BN(ehT&LIP2u&>%rC=5|%}{{Xx4lNta3 literal 0 HcmV?d00001 diff --git a/jmoves/apps/mechanism_analysis/mesh/G.stl b/jmoves/apps/mechanism_analysis/mesh/G.stl new file mode 100644 index 0000000000000000000000000000000000000000..26bd756483044fd920c5be95cb75acc81c2d4b73 GIT binary patch literal 393384 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 M%QlyY7d@i?51J5qi2wiq literal 0 HcmV?d00001 diff --git a/jmoves/apps/manipulator.png b/jmoves/apps/manipulator.png new file mode 100644 index 0000000000000000000000000000000000000000..274c685a69870697612328c68ce2e9b21d5b5ac6 GIT binary patch literal 108103 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 literal 0 HcmV?d00001 diff --git a/jmoves/apps/experiments/two_link_only_main_branch/mesh/G.stl b/jmoves/apps/experiments/two_link_only_main_branch/mesh/G.stl new file mode 100644 index 0000000000000000000000000000000000000000..26bd756483044fd920c5be95cb75acc81c2d4b73 GIT binary patch literal 393384 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