Go2Py_SIM/examples/07-CaT-Parkour-RL-controlle...

2517 lines
222 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"RL policy based on the [SoloParkour: Constrained Reinforcement Learning for Visual Locomotion from Privileged Experience](https://arxiv.org/abs/2409.13678). "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Flat Ground"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test In Simulation"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"pygame 2.6.1 (SDL 2.28.4, Python 3.10.12)\n",
"Hello from the pygame community. https://www.pygame.org/contribute.html\n"
]
}
],
"source": [
"from Go2Py.robot.fsm import FSM\n",
"from Go2Py.robot.remote import KeyboardRemote, XBoxRemote\n",
"from Go2Py.robot.safety import SafetyHypervisor\n",
"from Go2Py.sim.mujoco import Go2Sim\n",
"from Go2Py.control.cat_parkour import *\n",
"import torch"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from Go2Py.robot.model import FrictionModel\n",
"friction_model = None\n",
"Fs = np.zeros(12)\n",
"mu_v = np.zeros(12)\n",
"#mu_v[[2,5,8,11]] = np.array([0.2167, -0.0647, -0.0420, -0.0834])\n",
"#Fs[[2,5,8,11]] = np.array([1.5259, 1.2380, 0.8917, 2.2461])\n",
"\n",
"#mu_v[[0,3,6,9]] = np.array([0., 0., 0., 0.])\n",
"#Fs[[0,3,6,9]] = np.array([1.5, 1.5, 1.5, 1.5])\n",
"#mu_v[[2,5,8,11]] = np.array([0., 0., 0., 0.])\n",
"#Fs[[2,5,8,11]] = np.array([1.5, 1.5, 1.5, 1.5])\n",
"\n",
"friction_model = FrictionModel(Fs=1.5, mu_v=0.3)\n",
"##friction_model = FrictionModel(Fs=0., mu_v=0.)\n",
"#friction_model = FrictionModel(Fs=Fs, mu_v=mu_v)\n",
"robot = Go2Sim(dt = 0.001, friction_model=friction_model)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"map = np.zeros((1200, 1200))\n",
"map[:200, :200] = 50\n",
"robot.updateHeightMap(map)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Put your stick at reset and do not touch it while calibrating\n"
]
}
],
"source": [
"remote = XBoxRemote() # KeyboardRemote()\n",
"robot.sitDownReset()\n",
"safety_hypervisor = SafetyHypervisor(robot)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def getRemote(remote):\n",
" commands = remote.getCommands()\n",
" commands[0] *= 0.6\n",
" commands[1] = max(commands[1], 0) * 0.6\n",
" zero_commands_xy = np.logical_or(\n",
" np.linalg.norm(commands[:2]) <= 0.2,\n",
" commands[1] <= 0.2\n",
" )\n",
" if zero_commands_xy:\n",
" commands[:2] = np.zeros_like(commands[:2])\n",
" commands[2] = 0\n",
" print(commands)\n",
" return commands"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"class CaTController:\n",
" def __init__(self, robot, remote, checkpoint):\n",
" self.remote = remote\n",
" self.robot = robot\n",
" self.policy = Policy(checkpoint)\n",
" self.command_profile = CommandInterface()\n",
" self.agent = CaTAgent(self.command_profile, self.robot)\n",
" self.hist_data = {}\n",
"\n",
" def init(self):\n",
" self.obs = self.agent.reset()\n",
" self.policy_info = {}\n",
" self.command_profile.yaw_vel_cmd = 0.0\n",
" self.command_profile.x_vel_cmd = 0.0\n",
" self.command_profile.y_vel_cmd = 0.0\n",
"\n",
" def update(self, robot, remote):\n",
" if not hasattr(self, \"obs\"):\n",
" self.init()\n",
" commands = getRemote(remote)\n",
" self.command_profile.yaw_vel_cmd = -commands[2]\n",
" self.command_profile.x_vel_cmd = commands[1]\n",
" self.command_profile.y_vel_cmd = -commands[0]\n",
"\n",
" self.obs = self.agent.get_obs()\n",
" action = self.policy(self.obs, self.policy_info)\n",
" _, self.ret, self.done, self.info = self.agent.step(action)\n",
" for key, value in self.info.items():\n",
" if key in self.hist_data:\n",
" self.hist_data[key].append(value)\n",
" else:\n",
" self.hist_data[key] = [value]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'q': array([-0.02489972, 1.26249508, -2.82800513, 0.04556739, 1.25053519,\n",
" -2.79318037, -0.3062963 , 1.28285276, -2.82290189, 0.26406768,\n",
" 1.29357252, -2.84247318]),\n",
" 'dq': array([ 0.05639392, -0.00138966, 0.26148655, -0.06824655, -0.00160641,\n",
" 0.1753318 , -0.05681151, 0.01524675, 0.2468449 , 0.06539485,\n",
" 0.01677717, 0.29524517]),\n",
" 'tau_est': array([0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.])}"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"robot.getJointStates()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/Go2py/Go2Py/control/cat_parkour.py:100: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n",
" actor_sd = torch.load(checkpoint_path, map_location=\"cpu\")\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Exported model has been tested with ONNXRuntime, and the result looks good!\n",
"p_gains: [20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20.]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0.23611101 0. ]\n",
"[0. 0.26843012 0. ]\n",
"[0. 0.29316842 0. ]\n",
"[0. 0.32559739 0. ]\n",
"[0. 0.35136111 0. ]\n",
"[0. 0.36655933 0. ]\n",
"[0. 0.37256537 0. ]\n",
"[0. 0.3831675 0. ]\n",
"[0. 0.39495986 0. ]\n",
"[0. 0.40979185 0. ]\n",
"[0. 0.4265282 0. ]\n",
"[0. 0.44436322 0. ]\n",
"[0. 0.45511184 0. ]\n",
"[0. 0.45994597 0. ]\n",
"[0. 0.4644505 0. ]\n",
"[0. 0.46650135 0. ]\n",
"[0. 0.47443005 0. ]\n",
"[0. 0.48893245 0. ]\n",
"[0. 0.49803307 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.50471662 0. ]\n",
"[0. 0.50654773 0. ]\n",
"[0. 0.50654773 0. ]\n",
"[0. 0.50654773 0. ]\n",
"[0. 0.50654773 0. ]\n",
"[0. 0.50654773 0. ]\n",
"[0. 0.50530258 0. ]\n",
"[0. 0.50530258 0. ]\n",
"[0. 0.50530258 0. ]\n",
"[0. 0.50530258 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.50407573 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.5028672 0. ]\n",
"[0. 0.50478987 0. ]\n",
"[0. 0.50478987 0. ]\n",
"[0. 0.50643787 0. ]\n",
"[0. 0.50643787 0. ]\n",
"[0. 0.50643787 0. ]\n",
"[0. 0.50643787 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50815911 0. ]\n",
"[0. 0.50266578 0. ]\n",
"[0. 0.49682454 0. ]\n",
"[0. 0.49230169 0. ]\n",
"[0. 0.49045227 0. ]\n",
"[0. 0.48904232 0. ]\n",
"[0. 0.48904232 0. ]\n",
"[0. 0.48904232 0. ]\n",
"[0. 0.48512374 0. ]\n",
"[0. 0.47823876 0. ]\n",
"[0. 0.47250739 0. ]\n",
"[0. 0.46992552 0. ]\n",
"[0. 0.46822259 0. ]\n",
"[0.08252003 0.46673939 0. ]\n",
"[0.14424677 0.46673939 0. ]\n",
"[0.21324301 0.46556748 0. ]\n",
"[0.2704286 0.46556748 0. ]\n",
"[0.31820227 0.46556748 0. ]\n",
"[0.3724947 0.46556748 0. ]\n",
"[0.41821753 0.46556748 0. ]\n",
"[0.4361441 0.46556748 0. ]\n",
"[0.45167192 0.46556748 0. ]\n",
"[0.46038801 0.46556748 0. ]\n",
"[0.46663209 0.46556748 0. ]\n",
"[0.46881112 0.46556748 0. ]\n",
"[0.46881112 0.46556748 0. ]\n",
"[0.46881112 0.46556748 0. ]\n",
"[0.46881112 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.47075209 0.46556748 0. ]\n",
"[0.46095565 0.47289192 0. ]\n",
"[0.29752903 0.49819787 0. ]\n",
"[0.25352745 0.51861475 0. ]\n",
"[0.1874976 0.52949155 0. ]\n",
"[0. 0.53381297 0. ]\n",
"[0. 0.53659626 0. ]\n",
"[0. 0.53835412 0. ]\n",
"[-0.09718516 0.54020355 0. ]\n",
"[-0.14715617 0.53443555 0. ]\n",
"[-0.19533269 0.52013457 0. ]\n",
"[-0.23894974 0.50585191 0. ]\n",
"[-0.27066458 0.49570756 0. ]\n",
"[-0.28679666 0.49034241 0. ]\n",
"[-0.29307737 0.48838312 0. ]\n",
"[-0.29836928 0.48704641 0. ]\n",
"[-0.30040181 0.48567307 0. ]\n",
"[-0.30179346 0.48567307 0. ]\n",
"[-0.30311186 0.48849298 0. ]\n",
"[-0.30311186 0.49460889 0. ]\n",
"[-0.30311186 0.50310525 0. ]\n",
"[-0.30311186 0.509624 0. ]\n",
"[-0.30311186 0.51220587 0. ]\n",
"[-0.30311186 0.51385386 0. ]\n",
"[-0.30311186 0.51550186 0. ]\n",
"[-0.30032857 0.51550186 0. ]\n",
"[-0.28890244 0.52026275 0. ]\n",
"[-0.26844893 0.5310663 0. ]\n",
"[-0.23847365 0.53941617 0. ]\n",
"[-0.21968646 0.55391856 0. ]\n",
"[-0.20943224 0.5772286 0. ]\n",
"[-0.20390229 0.5772286 0. ]\n",
"[-0.20219935 0.5772286 0. ]\n",
"[-0.18262478 0.5772286 0. ]\n",
"[-0.16918443 0.5772286 0. ]\n",
"[-0.1589119 0.5772286 0. ]\n",
"[-0.14741252 0.5772286 0. ]\n",
"[-0.14290799 0.5772286 0. ]\n",
"[-0.13787244 0.5772286 0. ]\n",
"[-0.13787244 0.5772286 0. ]\n",
"[-0.13596808 0.5772286 0. ]\n",
"[-0.12941271 0.5772286 0. ]\n",
"[-0.12066 0.5772286 0. ]\n",
"[-0.09729503 0.5772286 0. ]\n",
"[-0.07200739 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0.06657106 0.5772286 0. ]\n",
"[0.2133895 0.5772286 0. ]\n",
"[0.25067091 0.5772286 0. ]\n",
"[0.2869269 0.57448194 0. ]\n",
"[0.30228992 0.57103945 0. ]\n",
"[0.3171036 0.56757865 0. ]\n",
"[0.32874947 0.56373332 0. ]\n",
"[0.34517453 0.55327768 0. ]\n",
"[0.35903604 0.54668568 0. ]\n",
"[0.36667177 0.54271217 0. ]\n",
"[0.3695283 0.54000212 0. ]\n",
"[0.37135941 0.53619341 0. ]\n",
"[0.37511319 0.53460035 0. ]\n",
"[0.38011212 0.53192693 0. ]\n",
"[0.38252919 0.52641528 0. ]\n",
"[0.3924538 0.52057404 0. ]\n",
"[0.40528989 0.51476942 0. ]\n",
"[0.41695406 0.50989867 0. ]\n",
"[0.42167833 0.5086352 0. ]\n",
"[0.42460811 0.50565049 0. ]\n",
"[0.42667726 0.50438702 0. ]\n",
"[0.42867317 0.50876338 0. ]\n",
"[0.40902536 0.52260657 0. ]\n",
"[0.39642731 0.52912533 0. ]\n",
"[0.38545896 0.53557084 0. ]\n",
"[0.37782323 0.54047821 0. ]\n",
"[0.36520688 0.55111696 0. ]\n",
"[0.34750004 0.5772286 0. ]\n",
"[0.32417169 0.5772286 0. ]\n",
"[0.30809454 0.5772286 0. ]\n",
"[0.29249348 0.5772286 0. ]\n",
"[0.25521207 0.5772286 0. ]\n",
"[0.21628266 0.5772286 0. ]\n",
"[0.18396356 0.5772286 0. ]\n",
"[0.13163042 0.5772286 0. ]\n",
"[0.11438135 0.5772286 0. ]\n",
"[0.09878029 0.5772286 0. ]\n",
"[0.09077834 0.5772286 0. ]\n",
"[0.08631043 0.5772286 0. ]\n",
"[0.08480892 0.5772286 0. ]\n",
"[0.08480892 0.5772286 0. ]\n",
"[0.08338065 0.5772286 0. ]\n",
"[0.07541532 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[-0.06662393 0.5772286 0. ]\n",
"[-0.0858689 0.5772286 0. ]\n",
"[-0.13226924 0.5772286 0. ]\n",
"[-0.18180078 0.5772286 0. ]\n",
"[-0.22408112 0.5772286 0. ]\n",
"[-0.25759045 0.5772286 0. ]\n",
"[-0.28066244 0.5772286 0. ]\n",
"[-0.29441408 0.5772286 0. ]\n",
"[-0.2997243 0.5772286 0. ]\n",
"[-0.30329497 0.5772286 0. ]\n",
"[-0.3064811 0.5772286 0. ]\n",
"[-0.3064811 0.5772286 0. ]\n",
"[-0.30840377 0.5772286 0. ]\n",
"[-0.30990528 0.5772286 0. ]\n",
"[-0.30704874 0.5772286 0. ]\n",
"[-0.29047719 0.5772286 0. ]\n",
"[-0.27161675 0.5772286 0. ]\n",
"[-0.25775525 0.5772286 0. ]\n",
"[-0.23519597 0.5772286 0. ]\n",
"[-0.21904557 0.5772286 0. ]\n",
"[-0.20728984 0.5772286 0. ]\n",
"[-0.17876114 0.5772286 0. ]\n",
"[-0.1564399 0.5772286 0. ]\n",
"[-0.13997822 0.5772286 0. ]\n",
"[-0.12776471 0.5772286 0. ]\n",
"[-0.1219784 0.5772286 0. ]\n",
"[-0.11097342 0.5772286 0. ]\n",
"[-0.10919725 0.5772286 0. ]\n",
"[-0.10679849 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10273343 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.5772286 0. ]\n",
"[-0.10394196 0.56160923 0. ]\n",
"[-0.10394196 0.53388621 0. ]\n",
"[-0.09883316 0.5036912 0. ]\n",
"[-0.06979175 0.44537033 0. ]\n",
"[0. 0.28681447 0. ]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0.28978086 0. ]\n",
"[0. 0.3254509 0. ]\n",
"[0. 0.3669988 0. ]\n",
"[0. 0.41363718 0. ]\n",
"[0. 0.4756569 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[-0.06464633 0.5772286 0. ]\n",
"[-0.10341094 0.5772286 0. ]\n",
"[-0.12933946 0.5772286 0. ]\n",
"[-0.16969714 0.5772286 0. ]\n",
"[-0.20007526 0.5772286 0. ]\n",
"[-0.21847793 0.5772286 0. ]\n",
"[-0.24922227 0.5772286 0. ]\n",
"[-0.2711956 0.5772286 0. ]\n",
"[-0.31462954 0.56109652 0. ]\n",
"[-0.34861495 0.55056763 0. ]\n",
"[-0.37033193 0.54448834 0. ]\n",
"[-0.40019734 0.52670826 0. ]\n",
"[-0.43522648 0.49649494 0. ]\n",
"[-0.45600959 0.48146152 0. ]\n",
"[-0.46697794 0.47278205 0. ]\n",
"[-0.47148247 0.46935788 0. ]\n",
"[-0.47926469 0.45692464 0. ]\n",
"[-0.49759411 0.43672749 0. ]\n",
"[-0.5214901 0.41105532 0. ]\n",
"[-0.53762219 0.39479506 0. ]\n",
"[-0.54351836 0.38783684 0. ]\n",
"[-0.54866378 0.38172093 0. ]\n",
"[-0.55163018 0.37866297 0. ]\n",
"[-0.55455996 0.37725302 0. ]\n",
"[-0.55455996 0.37725302 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37606279 0. ]\n",
"[-0.55580511 0.37805871 0. ]\n",
"[-0.55580511 0.38509017 0. ]\n",
"[-0.55580511 0.39550919 0. ]\n",
"[-0.54262112 0.41010314 0. ]\n",
"[-0.51883499 0.43590349 0. ]\n",
"[-0.49962664 0.45467237 0. ]\n",
"[-0.48486789 0.46743521 0. ]\n",
"[-0.46448763 0.48349405 0. ]\n",
"[-0.44559057 0.50603502 0. ]\n",
"[-0.43134453 0.51848657 0. ]\n",
"[-0.37551397 0.5772286 0. ]\n",
"[-0.32444429 0.5772286 0. ]\n",
"[-0.26894333 0.5772286 0. ]\n",
"[-0.23816236 0.5772286 0. ]\n",
"[-0.19276913 0.5772286 0. ]\n",
"[-0.17962176 0.5772286 0. ]\n",
"[-0.16101768 0.5772286 0. ]\n",
"[-0.14558141 0.5772286 0. ]\n",
"[-0.13164666 0.5772286 0. ]\n",
"[-0.12386444 0.5772286 0. ]\n",
"[-0.1195064 0.5772286 0. ]\n",
"[-0.11732738 0.5772286 0. ]\n",
"[-0.11732738 0.5772286 0. ]\n",
"[-0.11732738 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11562444 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.11386658 0.5772286 0. ]\n",
"[-0.10932542 0.5772286 0. ]\n",
"[-0.1018728 0.5772286 0. ]\n",
"[-0.09473147 0.5772286 0. ]\n",
"[-0.08647316 0.5772286 0. ]\n",
"[-0.07587103 0.5772286 0. ]\n",
"[-0.06308988 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0.0743899 0.5772286 0. ]\n",
"[0.09202349 0.5772286 0. ]\n",
"[0.11027967 0.5772286 0. ]\n",
"[0.13591521 0.5772286 0. ]\n",
"[0.1660736 0.5772286 0. ]\n",
"[0.18806524 0.5772286 0. ]\n",
"[0.19681795 0.5772286 0. ]\n",
"[0.20485653 0.5772286 0. ]\n",
"[0.21181475 0.5772286 0. ]\n",
"[0.22184923 0.5772286 0. ]\n",
"[0.24675234 0.5772286 0. ]\n",
"[0.27652619 0.5772286 0. ]\n",
"[0.3040661 0.56624194 0. ]\n",
"[0.33396813 0.55547501 0. ]\n",
"[0.35520902 0.54620959 0. ]\n",
"[0.38241932 0.53234808 0. ]\n",
"[0.40541807 0.520336 0. ]\n",
"[0.41724704 0.51405529 0. ]\n",
"[0.42175157 0.5102832 0. ]\n",
"[0.4336721 0.50074311 0. ]\n",
"[0.44824774 0.48625903 0. ]\n",
"[0.46064436 0.47148197 0. ]\n",
"[0.47853431 0.45137637 0. ]\n",
"[0.48882515 0.4400418 0. ]\n",
"[0.49917093 0.42672962 0. ]\n",
"[0.50310782 0.4214194 0. ]\n",
"[0.51295919 0.40924252 0. ]\n",
"[0.54178087 0.37410351 0. ]\n",
"[0.55745518 0.34202245 0. ]\n",
"[0.56792913 0.32352823 0. ]\n",
"[0.57259846 0.31660663 0. ]\n",
"[0.58153428 0.31069215 0. ]\n",
"[0.58153428 0.30757926 0. ]\n",
"[0.58153428 0.30640735 0. ]\n",
"[0.58153428 0.30514388 0. ]\n",
"[0.58210193 0.30514388 0. ]\n",
"[0.58268788 0.30514388 0. ]\n",
"[0.58153428 0.30514388 0. ]\n",
"[0.58210193 0.30514388 0. ]\n",
"[0.58268788 0.30514388 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58210193 0.30400859 0. ]\n",
"[0.58210193 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58210193 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.58268788 0.30400859 0. ]\n",
"[0.57239704 0.32486494 0. ]\n",
"[0.55068007 0.37044129 0. ]\n",
"[0.35042982 0.5772286 0. ]\n",
"[0.19621368 0.5772286 0. ]\n",
"[0.17510098 0.5772286 0. ]\n",
"[0.16292409 0.5772286 0. ]\n",
"[0.15552641 0.5772286 0. ]\n",
"[0.1480921 0.5772286 0. ]\n",
"[0.12824286 0.5772286 0. ]\n",
"[0.11110367 0.5772286 0. ]\n",
"[0.09238972 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0. 0.5772286 0. ]\n",
"[0.06105941 0.5772286 0. ]\n",
"[0.06864021 0.5772286 0. ]\n",
"[0.07169817 0.5772286 0. ]\n",
"[0.07673372 0.5772286 0. ]\n",
"[0.09325034 0.5772286 0. ]\n",
"[0.31525418 0.54154026 0. ]\n",
"[0.34246449 0.53185368 0. ]\n",
"[0.40322073 0.50081636 0. ]\n",
"[0.44064863 0.47113406 0. ]\n",
"[0.47285787 0.44656055 0. ]\n",
"[0.49724826 0.42275611 0. ]\n",
"[0.51475368 0.40460981 0. ]\n",
"[0.52346977 0.39593034 0. ]\n",
"[0.54185412 0.38100679 0. ]\n",
"[0.5535366 0.36075471 0. ]\n",
"[0.58268788 0.33825036 0. ]\n",
"[0.58268788 0.29285713 0. ]\n",
"[0.58268788 0.23631244 0. ]\n",
"[0.58268788 0.2186056 0. ]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0.15953654 0.20578782 0. ]\n",
"[0.12967113 0.20831476 0. ]\n",
"[0.10777104 0.21007262 0. ]\n",
"[0.09321372 0.2118488 0. ]\n",
"[0.08314261 0.20633716 0. ]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n"
]
}
],
"source": [
"from Go2Py import ASSETS_PATH\n",
"import os\n",
"#checkpoint_path = os.path.join(ASSETS_PATH, 'checkpoints/SoloParkour/parkour_flat_test_4_24-21-28-37.pt')\n",
"#checkpoint_path = os.path.join(ASSETS_PATH, 'checkpoints/SoloParkour/parkour_flat_test_no_ang_rew_25-03-14-28.pt')\n",
"#checkpoint_path = os.path.join(ASSETS_PATH, 'checkpoints/SoloParkour/parkour_flat_test_base_ori_hard_25-02-53-00.pt')\n",
"checkpoint_path = os.path.join(ASSETS_PATH, 'checkpoints/SoloParkour/parkour_flat_test_solo_heading_yaw_deadzone_25-22-45-23.pt')\n",
"\n",
"controller = CaTController(robot, remote, checkpoint_path)\n",
"decimation = 20\n",
"fsm = FSM(robot, remote, safety_hypervisor, control_dT=decimation * robot.dt, user_controller_callback=controller.update)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x717aa3239990>]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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VatWWc8884x14oknWieddJJzfSqVso455hhr2bJl1nPPPWf9+c9/tjo7O63rr7++Ei9p3KxZs8aaO3eudeyxx1qf/vSnncsnwn44cOCANWfOHOviiy+2nnrqKWvTpk3Wgw8+aG3cuNG5zde//nWrvb3duv/++63nn3/eev/732/NmzfPGhkZcW5zxhlnWAsXLrT+8Y9/WI8//rh1+OGHWx/96Ecr8ZLGxNe+9jVrypQp1gMPPGBt3rzZuueee6yWlhbr+9//vnObet0Pf/7zn60vfOEL1r333msBsO677z7p+mK87r6+Pqurq8u64IILrJdeesn6zW9+YzU2Nlq33npruV5mToL2Q29vr7Vs2TLr7rvvttavX2+tXr3aOv74463FixdLj1Hv+4Fy7733WgsXLrRmzJhh3XzzzdJ15doPLGzy4Pjjj7c+9alPOf+n02lrxowZ1ooVKyq4VaVlz549FgDr0UcftSzL/gJHIhHrnnvucW7z6quvWgCs1atXW5Zlf/BN07R6enqc2/zkJz+x2trarHg8Xt4XME4GBgasI444wlq5cqV16qmnOsJmouyHz33uc9bJJ5/se30mk7G6u7utb33rW85lvb29ViwWs37zm99YlmVZr7zyigXAevrpp53b/OUvf7EMw7B27NhRuo0vImeddZb1iU98Qrrsgx/8oHXBBRdYljVx9oO6kBXrdf/4xz+2Jk2aJH0vPve5z1lvectbSvyKxkbQgi5Ys2aNBcDasmWLZVkTaz9s377dOuSQQ6yXXnrJmjNnjiRsyrkfOBSVg0QigbVr12LZsmXOZaZpYtmyZVi9enUFt6y09PX1AQAmT54MAFi7di2SyaS0H+bPn4/Zs2c7+2H16tVYsGABurq6nNssX74c/f39ePnll8u49ePnU5/6FM466yzp9QITZz/84Q9/wJIlS3Deeedh2rRpWLRoEX76058612/evBk9PT3Sfmhvb8cJJ5wg7YeOjg4sWbLEuc2yZctgmiaeeuqp8r2YcXDSSSdh1apVeO211wAAzz//PJ544gmceeaZACbOflAp1utevXo1TjnlFESjUec2y5cvx4YNG3Dw4MEyvZri0tfXB8Mw0NHRAWDi7IdMJoOPf/zjuPbaa3H00Ud7ri/nfmBhk4N9+/YhnU5LixQAdHV1oaenp0JbVVoymQyuuuoqvOMd78AxxxwDAOjp6UE0GnW+rAK6H3p6erT7SVxXK9x111149tlnsWLFCs91E2U/bNq0CT/5yU9wxBFH4MEHH8QVV1yB//iP/8Cdd94JwH0dQd+Lnp4eTJs2Tbo+HA5j8uTJNbMfrrvuOnzkIx/B/PnzEYlEsGjRIlx11VW44IILAEyc/aBSrNddD98VyujoKD73uc/hox/9qDPscaLsh2984xsIh8P4j//4D+315dwPdTfdmxk/n/rUp/DSSy/hiSeeqPSmlJ1t27bh05/+NFauXImGhoZKb07FyGQyWLJkCf7v//2/AIBFixbhpZdewi233IKLLrqowltXPn7729/iV7/6FX7961/j6KOPxrp163DVVVdhxowZE2o/MLlJJpM4//zzYVkWfvKTn1R6c8rK2rVr8f3vfx/PPvssDMOo9OawY5OLzs5OhEIhT9XL7t270d3dXaGtKh1XXnklHnjgATz88MOYOXOmc3l3dzcSiQR6e3ul29P90N3drd1P4rpaYO3atdizZw/e9ra3IRwOIxwO49FHH8UPfvADhMNhdHV1TYj9MH36dLz1rW+VLjvqqKOwdetWAO7rCPpedHd3Y8+ePdL1qVQKBw4cqJn9cO211zquzYIFC/Dxj38cn/nMZxw3b6LsB5Vive56+K4ArqjZsmULVq5c6bg1wMTYD48//jj27NmD2bNnO8fNLVu24JprrsHcuXMBlHc/sLDJQTQaxeLFi7Fq1Srnskwmg1WrVmHp0qUV3LLiYlkWrrzyStx333146KGHMG/ePOn6xYsXIxKJSPthw4YN2Lp1q7Mfli5dihdffFH68IovubpIViunn346XnzxRaxbt875WbJkCS644ALn74mwH97xjnd4yv1fe+01zJkzBwAwb948dHd3S/uhv78fTz31lLQfent7sXbtWuc2Dz30EDKZDE444YQyvIrxMzw8DNOUD5OhUAiZTAbAxNkPKsV63UuXLsVjjz2GZDLp3GblypV4y1vegkmTJpXp1YwPIWpef/11/O1vf8OUKVOk6yfCfvj4xz+OF154QTpuzpgxA9deey0efPBBAGXeDwWlGk9Q7rrrLisWi1l33HGH9corr1if/OQnrY6ODqnqpda54oorrPb2duuRRx6xdu3a5fwMDw87t7n88sut2bNnWw899JD1zDPPWEuXLrWWLl3qXC/KnN/znvdY69ats/76179aU6dOrakyZx20KsqyJsZ+WLNmjRUOh62vfe1r1uuvv2796le/spqamqxf/vKXzm2+/vWvWx0dHdbvf/9764UXXrDOPvtsbbnvokWLrKeeesp64oknrCOOOKLqy5wpF110kXXIIYc45d733nuv1dnZaX32s591blOv+2FgYMB67rnnrOeee84CYH33u9+1nnvuOafapxivu7e31+rq6rI+/vGPWy+99JJ11113WU1NTVVV5hy0HxKJhPX+97/fmjlzprVu3Trp2Ekre+p9P+hQq6Isq3z7gYVNnvzwhz+0Zs+ebUWjUev444+3/vGPf1R6k4oKAO3Pz3/+c+c2IyMj1v/5P//HmjRpktXU1GR94AMfsHbt2iU9zptvvmmdeeaZVmNjo9XZ2Wldc801VjKZLPOrKS6qsJko++GPf/yjdcwxx1ixWMyaP3++ddttt0nXZzIZ60tf+pLV1dVlxWIx6/TTT7c2bNgg3Wb//v3WRz/6UaulpcVqa2uzLrnkEmtgYKCcL2Nc9Pf3W5/+9Ket2bNnWw0NDdahhx5qfeELX5AWrXrdDw8//LD2mHDRRRdZllW81/38889bJ598shWLxaxDDjnE+vrXv16ul5gXQfth8+bNvsfOhx9+2HmMet8POnTCplz7wbAs0kKTYRiGYRimhuEcG4ZhGIZh6gYWNgzDMAzD1A0sbBiGYRiGqRtY2DAMwzAMUzewsGEYhmEYpm5gYcMwDMMwTN3AwoZhGIZhmLqBhQ3DMAzDMHUDCxuGYRiGYeoGFjYMwzAMw9QNLGwYhmEYhqkbWNgwDMMwDFM3/P8vVgSw+BdXCgAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.plot(np.array(controller.hist_data[\"body_angular_vel\"])[:, 0, 2])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Slippage Analysis"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"contacts = []\n",
"feet_vels = []\n",
"\n",
"while True:\n",
" if remote.xbox_controller.digital_cmd[1]:\n",
" break\n",
" contact_state = robot.getFootContact()>15\n",
" sites = ['FR_foot', 'FL_foot', 'RR_foot', 'RL_foot']\n",
" feet_vel = [np.linalg.norm(robot.getFootVelInWorld(s)) for s in sites]\n",
" contacts.append(contact_state)\n",
" feet_vels.append(feet_vel)\n",
" time.sleep(0.01)\n",
"\n",
"feet_vels = np.stack(feet_vels)\n",
"contacts = np.stack(contacts)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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8pWvoL29HWvWrMFnP/tZnHbaaTj77LPrPttzzz2Hc889F2vXrsXcuXPR1NTkOMi+8pWvYOvWrVizZg1Gjx6NrVu3YmBgwPMaiqLgU5/6FM466yyoqorvfOc7+MhHPoItW7Zg2LBhePHFFzF+/Hjce++9eN/73odcLof29nY8+eST+NznPofvfve7uOCCC7Bt2zZ89rOfRXNzM2688Ub09PRg2LBhRt8MDg6itbUVF154YZbMk0KUy2WsW7cOS5cuzXQIGwRZnzYesj6NF8Rz6QeBDbumpibMnDkTAHDmmWfixRdfxJ133om777677t8WCgWcccYZ2Lp1q+fvNTc3o7m52fHv7QOkWq1CkiTIsgxZltFfquC0r68L0KL48NYty9HWVN+119PTg+9973u466678KlPfQoAMGvWLFx44YUAgPvvvx+Dg4P4xS9+gSFDhgAA7rrrLnzwgx/Ev/3bv2HcuHGQJAkjR47E97//feRyOZx66ql4//vfjz//+c/4v//3/2L06NGG4TNx4kTj3lOmTMH1119v/Pz3f//3WLt2LR588EGce+65dZ+NxEiOGTPGcl079uzZgzPOOMMwFk888UTj/9yucemll1qu8eMf/xgjRozAk08+iQ984APG340aNcryd7feeiu+/OUvG887c+ZM3Hrrrbjhhhtw0003AYAxRgCtpJgkSY7jKUN6kPVf4yHr08YDtz7t3AM89wPg/H8Eho5lfz/OCPIdRtaxUxTFEg/nhWq1ijfeeAMTJkyIettUY9OmTSgWi7jkkktc///00083jDpAc1cqimLJMJ47d64lRmzChAk4ePCg572r1SpuvfVWzJs3D6NGjcLQoUPx6KOPYvfu3b6ezS8+97nP4f7778d73vMe3HDDDXjmmWfq/s2BAwdw9dVXY9asWRg+fDja29vR29trPJsbXnvtNdxyyy0YOnSo8e/qq69GR0cH+vv7I7UjQ4YMGTKkAA/+jWbY/eqvRD+JcARi7FatWoUVK1Zg6tSp6OnpwX333Yf169fj0UcfBQBceeWVmDRpEm677TYAwC233IJzzz0XM2fORGdnJ/793/8du3btMlyDLNBayOGtW5aH+ltFUdDT3YNh7cNClRRrLfgLxG9tbQ18bSfYLXhJkuomFfz7v/877rzzTnz3u9/FvHnzMGTIEFx77bUolUqxPtuKFSuw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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"start = 300\n",
"end = 1200\n",
"plt.plot(contacts[start:end,0])\n",
"plt.plot(feet_vels[start:end,0])\n",
"plt.legend(['contact state', 'foot velocity'])\n",
"plt.grid(True)\n",
"plt.tight_layout()\n",
"plt.savefig('foot_slipping_fric0.2.png')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**To Do**\n",
"- Train a policy without any actuator friction and check the plots for friction 0.2 and 0.6 \n",
"- Do the same experiment for the walk-these-ways policy\n",
"- While testing the walk these ways, check the output of the adaptation module for various friction numbers, any correlation?"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"fsm.close()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Foot Contanct Analysis"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"np.array(controller.hist_data[\"body_pos\"])[0, 0, -1]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"plt.plot(np.array(controller.hist_data[\"body_pos\"])[:, 0, -1])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"# Assuming 'controller.hist_data[\"torques\"]' is a dictionary with torque profiles\n",
"torques = np.array(controller.hist_data[\"body_linear_vel\"])[:, 0, :, 0]\n",
"\n",
"# Number of torque profiles\n",
"torque_nb = torques.shape[1]\n",
"\n",
"# Number of rows needed for the grid, with 3 columns per row\n",
"n_cols = 3\n",
"n_rows = int(np.ceil(torque_nb / n_cols))\n",
"\n",
"# Create the figure and axes for subplots\n",
"fig, axes = plt.subplots(n_rows, n_cols, figsize=(15, 5 * n_rows))\n",
"\n",
"# Flatten the axes array for easy indexing (in case of multiple rows)\n",
"axes = axes.flatten()\n",
"\n",
"# Plot each torque profile\n",
"for i in range(torque_nb):\n",
" axes[i].plot(np.arange(torques.shape[0]) * robot.dt * decimation, torques[:, i])\n",
" axes[i].set_title(f'Torque {i+1}')\n",
" axes[i].set_xlabel('Time')\n",
" axes[i].set_ylabel('Torque Value')\n",
" axes[i].grid(True)\n",
"\n",
"# Remove any empty subplots if torque_nb is not a multiple of 3\n",
"for j in range(torque_nb, len(axes)):\n",
" fig.delaxes(axes[j])\n",
"\n",
"# Adjust layout\n",
"plt.tight_layout()\n",
"plt.savefig(\"torque_profile.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"# Assuming 'controller.hist_data[\"torques\"]' is a dictionary with torque profiles\n",
"torques = np.array(controller.hist_data[\"torques\"])\n",
"\n",
"# Number of torque profiles\n",
"torque_nb = torques.shape[1]\n",
"\n",
"# Number of rows needed for the grid, with 3 columns per row\n",
"n_cols = 3\n",
"n_rows = int(np.ceil(torque_nb / n_cols))\n",
"\n",
"# Create the figure and axes for subplots\n",
"fig, axes = plt.subplots(n_rows, n_cols, figsize=(15, 5 * n_rows))\n",
"\n",
"# Flatten the axes array for easy indexing (in case of multiple rows)\n",
"axes = axes.flatten()\n",
"\n",
"# Plot each torque profile\n",
"for i in range(torque_nb):\n",
" axes[i].plot(np.arange(torques.shape[0]) * robot.dt * decimation, torques[:, i])\n",
" axes[i].set_title(f'Torque {i+1}')\n",
" axes[i].set_xlabel('Time')\n",
" axes[i].set_ylabel('Torque Value')\n",
" axes[i].grid(True)\n",
"\n",
"# Remove any empty subplots if torque_nb is not a multiple of 3\n",
"for j in range(torque_nb, len(axes)):\n",
" fig.delaxes(axes[j])\n",
"\n",
"# Adjust layout\n",
"plt.tight_layout()\n",
"plt.savefig(\"torque_profile.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Extract the joint position data for the first joint over time\n",
"joint_pos = np.array(controller.hist_data[\"joint_vel\"])[:, 0]\n",
"\n",
"# Number of data points in joint_pos\n",
"n_data_points = len(joint_pos)\n",
"\n",
"# Since you're plotting only one joint, no need for multiple subplots in this case.\n",
"# But to follow the grid requirement, we'll replicate the data across multiple subplots.\n",
"# For example, let's assume you want to visualize this data 9 times in a 3x3 grid.\n",
"\n",
"n_cols = 3\n",
"n_rows = int(np.ceil(torque_nb / n_cols))\n",
"\n",
"# Create the figure and axes for subplots\n",
"fig, axes = plt.subplots(n_rows, n_cols, figsize=(15, 5 * n_rows))\n",
"\n",
"# Flatten the axes array for easy indexing (in case of multiple rows)\n",
"axes = axes.flatten()\n",
"\n",
"# Plot the same joint position data in every subplot (as per grid requirement)\n",
"for i in range(n_rows * n_cols):\n",
" axes[i].plot(joint_pos[:, i])\n",
" axes[i].set_title(f'Joint Position {i+1}')\n",
" axes[i].set_xlabel('Time')\n",
" axes[i].set_ylabel('Position Value')\n",
"\n",
"# Adjust layout\n",
"plt.tight_layout()\n",
"plt.savefig(\"joint_position_profile.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"# Assuming 'controller.hist_data[\"foot_contact_forces_mag\"]' is a dictionary with foot contact force magnitudes\n",
"foot_contact_forces_mag = np.array(controller.hist_data[\"foot_contact_forces_mag\"])\n",
"\n",
"# Number of feet (foot_nb)\n",
"foot_nb = foot_contact_forces_mag.shape[1]\n",
"\n",
"# Number of rows needed for the grid, with 3 columns per row\n",
"n_cols = 3\n",
"n_rows = int(np.ceil(foot_nb / n_cols))\n",
"\n",
"# Create the figure and axes for subplots\n",
"fig, axes = plt.subplots(n_rows, n_cols, figsize=(15, 5 * n_rows))\n",
"\n",
"# Flatten the axes array for easy indexing (in case of multiple rows)\n",
"axes = axes.flatten()\n",
"\n",
"# Plot each foot's contact force magnitude\n",
"for i in range(foot_nb):\n",
" axes[i].plot(foot_contact_forces_mag[:, i])\n",
" axes[i].set_title(f'Foot {i+1} Contact Force Magnitude')\n",
" axes[i].set_xlabel('Time')\n",
" axes[i].set_ylabel('Force Magnitude')\n",
"\n",
"# Remove any empty subplots if foot_nb is not a multiple of 3\n",
"for j in range(foot_nb, len(axes)):\n",
" fig.delaxes(axes[j])\n",
"\n",
"# Adjust layout\n",
"plt.tight_layout()\n",
"plt.savefig(\"foot_contact_profile.png\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Extract the joint acceleration data for the first joint over time\n",
"joint_acc = np.array(controller.hist_data[\"joint_acc\"])[:, 0]\n",
"\n",
"# Number of data points in joint_acc\n",
"n_data_points = len(joint_acc)\n",
"\n",
"# Number of feet (foot_nb)\n",
"foot_nb = joint_acc.shape[1]\n",
"\n",
"# Number of rows needed for the grid, with 3 columns per row\n",
"n_cols = 3\n",
"n_rows = int(np.ceil(foot_nb / n_cols))\n",
"\n",
"# Create the figure and axes for subplots\n",
"fig, axes = plt.subplots(n_rows, n_cols, figsize=(15, 5 * n_rows))\n",
"\n",
"# Flatten the axes array for easy indexing\n",
"axes = axes.flatten()\n",
"\n",
"# Plot the same joint acceleration data in every subplot (as per grid requirement)\n",
"for i in range(n_rows * n_cols):\n",
" axes[i].plot(joint_acc[:, i])\n",
" axes[i].set_title(f'Joint Acceleration {i+1}')\n",
" axes[i].set_xlabel('Time')\n",
" axes[i].set_ylabel('Acceleration Value')\n",
"\n",
"# Adjust layout to prevent overlap\n",
"plt.tight_layout()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Extract the joint jerk data over time\n",
"joint_jerk = np.array(controller.hist_data[\"joint_jerk\"])[:, 0]\n",
"\n",
"# Number of data points in joint_jerk\n",
"n_data_points = len(joint_jerk)\n",
"\n",
"# Number of joints (assuming the second dimension corresponds to joints)\n",
"num_joints = joint_jerk.shape[1]\n",
"\n",
"# Number of columns per row in the subplot grid\n",
"n_cols = 3\n",
"# Number of rows needed for the grid\n",
"n_rows = int(np.ceil(num_joints / n_cols))\n",
"\n",
"# Create the figure and axes for subplots\n",
"fig, axes = plt.subplots(n_rows, n_cols, figsize=(15, 5 * n_rows))\n",
"\n",
"# Flatten the axes array for easy indexing\n",
"axes = axes.flatten()\n",
"\n",
"# Plot the joint jerk data for each joint\n",
"for i in range(num_joints):\n",
" axes[i].plot(joint_jerk[:, i])\n",
" axes[i].set_title(f'Joint Jerk {i+1}')\n",
" axes[i].set_xlabel('Time')\n",
" axes[i].set_ylabel('Jerk Value')\n",
"\n",
"# Hide any unused subplots\n",
"for i in range(num_joints, len(axes)):\n",
" fig.delaxes(axes[i])\n",
"\n",
"# Adjust layout to prevent overlap\n",
"plt.tight_layout()\n",
"plt.show()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Extract the foot contact rate data over time\n",
"foot_contact_rate = np.array(controller.hist_data[\"foot_contact_rate\"])[:, 0]\n",
"\n",
"# Number of data points in foot_contact_rate\n",
"n_data_points = foot_contact_rate.shape[0]\n",
"\n",
"# Number of feet (assuming the second dimension corresponds to feet)\n",
"num_feet = foot_contact_rate.shape[1]\n",
"\n",
"# Number of columns per row in the subplot grid\n",
"n_cols = 3\n",
"# Number of rows needed for the grid\n",
"n_rows = int(np.ceil(num_feet / n_cols))\n",
"\n",
"# Create the figure and axes for subplots\n",
"fig, axes = plt.subplots(n_rows, n_cols, figsize=(15, 5 * n_rows))\n",
"\n",
"# Flatten the axes array for easy indexing\n",
"axes = axes.flatten()\n",
"\n",
"# Plot the foot contact rate data for each foot\n",
"for i in range(num_feet):\n",
" axes[i].plot(foot_contact_rate[:, i])\n",
" axes[i].set_title(f'Foot Contact Rate {i+1}')\n",
" axes[i].set_xlabel('Time')\n",
" axes[i].set_ylabel('Contact Rate')\n",
"\n",
"# Hide any unused subplots\n",
"for i in range(num_feet, len(axes)):\n",
" fig.delaxes(axes[i])\n",
"\n",
"# Adjust layout to prevent overlap\n",
"plt.tight_layout()\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test on Real Robot (ToDo)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"pygame 2.6.1 (SDL 2.28.4, Python 3.10.12)\n",
"Hello from the pygame community. https://www.pygame.org/contribute.html\n"
]
}
],
"source": [
"from Go2Py.robot.fsm import FSM\n",
"from Go2Py.robot.remote import XBoxRemote\n",
"from Go2Py.robot.safety import SafetyHypervisor\n",
"from Go2Py.control.cat_parkour import *"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"from Go2Py.robot.interface import GO2Real\n",
"import numpy as np\n",
"robot = GO2Real(mode='lowlevel')"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Put your stick at reset and do not touch it while calibrating\n"
]
}
],
"source": [
"remote = XBoxRemote() # KeyboardRemote()\n",
"safety_hypervisor = SafetyHypervisor(robot)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'q': [0.06103205680847168,\n",
" 1.305066704750061,\n",
" -2.814870834350586,\n",
" 0.03419072926044464,\n",
" 1.2731844186782837,\n",
" -2.831963300704956,\n",
" -0.35298794507980347,\n",
" 1.2857441902160645,\n",
" -2.8204946517944336,\n",
" 0.33624452352523804,\n",
" 1.2935254573822021,\n",
" -2.8247439861297607],\n",
" 'dq': [0.10076361894607544,\n",
" -0.05038180947303772,\n",
" 0.04246226325631142,\n",
" 0.027128666639328003,\n",
" 0.05813286080956459,\n",
" -0.010110062547028065,\n",
" -0.015502095222473145,\n",
" -0.03875523805618286,\n",
" 0.0,\n",
" -0.023253142833709717,\n",
" 0.0,\n",
" -0.02022012509405613],\n",
" 'tau_est': [-0.12369140982627869,\n",
" 0.12369140982627869,\n",
" -0.2844902276992798,\n",
" -0.17316797375679016,\n",
" -0.07421484589576721,\n",
" 0.3319052755832672,\n",
" 0.049476563930511475,\n",
" 0.049476563930511475,\n",
" 0.0,\n",
" 0.049476563930511475,\n",
" -0.024738281965255737,\n",
" 0.09483008086681366],\n",
" 'temperature': [25.0,\n",
" 23.0,\n",
" 25.0,\n",
" 24.0,\n",
" 23.0,\n",
" 25.0,\n",
" 25.0,\n",
" 25.0,\n",
" 26.0,\n",
" 25.0,\n",
" 25.0,\n",
" 25.0]}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"robot.getJointStates()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Make sure the robot can take commands from python. The next cell should make the joints free to move (no damping)."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"Cell \u001b[0;32mIn[5], line 13\u001b[0m\n\u001b[1;32m 11\u001b[0m tau[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0.0\u001b[39m\n\u001b[1;32m 12\u001b[0m robot\u001b[38;5;241m.\u001b[39msetCommands(q, dq, kp, kd, tau)\n\u001b[0;32m---> 13\u001b[0m \u001b[43mtime\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msleep\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m0.02\u001b[39;49m\u001b[43m)\u001b[49m\n",
"\u001b[0;31mKeyboardInterrupt\u001b[0m: "
]
}
],
"source": [
"import numpy as np\n",
"import time\n",
"start_time = time.time()\n",
"\n",
"while time.time()-start_time < 30:\n",
" q = np.zeros(12) \n",
" dq = np.zeros(12)\n",
" kp = np.ones(12)*0.0\n",
" kd = np.ones(12)*0.0\n",
" tau = np.zeros(12)\n",
" tau[0] = 0.0\n",
" robot.setCommands(q, dq, kp, kd, tau)\n",
" time.sleep(0.02)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"def getRemote(remote):\n",
" commands = remote.getCommands()\n",
" commands[0] *= 0.6\n",
" commands[1] = max(commands[1], 0) * 0.6\n",
" zero_commands_xy = np.linalg.norm(commands[:2]) <= 0.2\n",
" if zero_commands_xy:\n",
" commands[:2] = np.zeros_like(commands[:2])\n",
" commands[2] = 0\n",
" print(commands)\n",
" return commands"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"class CaTController:\n",
" def __init__(self, robot, remote, checkpoint):\n",
" self.remote = remote\n",
" self.robot = robot\n",
" self.policy = Policy(checkpoint)\n",
" self.command_profile = CommandInterface()\n",
" self.agent = CaTAgent(self.command_profile, self.robot)\n",
" self.hist_data = {}\n",
"\n",
" def init(self):\n",
" self.obs = self.agent.reset()\n",
" self.policy_info = {}\n",
" self.command_profile.yaw_vel_cmd = 0.0\n",
" self.command_profile.x_vel_cmd = 0.0\n",
" self.command_profile.y_vel_cmd = 0.0\n",
"\n",
" def update(self, robot, remote):\n",
" if not hasattr(self, \"obs\"):\n",
" self.init()\n",
" commands = getRemote(remote)\n",
" self.command_profile.yaw_vel_cmd = -commands[2]\n",
" self.command_profile.x_vel_cmd = commands[1]\n",
" self.command_profile.y_vel_cmd = -commands[0]\n",
"\n",
" self.obs = self.agent.get_obs()\n",
" action = self.policy(self.obs, self.policy_info)\n",
" _, self.ret, self.done, self.info = self.agent.step(action)\n",
" for key, value in self.info.items():\n",
" if key in self.hist_data:\n",
" self.hist_data[key].append(value)\n",
" else:\n",
" self.hist_data[key] = [value]\n",
"\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Exported model has been tested with ONNXRuntime, and the result looks good!\n",
"p_gains: [20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20. 20.]\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/Go2py/Go2Py/control/cat_parkour.py:100: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.\n",
" actor_sd = torch.load(checkpoint_path, map_location=\"cpu\")\n"
]
}
],
"source": [
"from Go2Py import ASSETS_PATH \n",
"import os\n",
"checkpoint_path = os.path.join(ASSETS_PATH, 'checkpoints/SoloParkour/parkour_flat_test_no_ang_rew_25-03-14-28.pt')\n",
"\n",
"\n",
"controller = CaTController(robot, remote, checkpoint_path)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[ 0.20090864 -0. 0. ]\n",
"[ 0.20272144 -0. 0. ]\n",
"[ 0.20272144 -0. 0. ]\n",
"[ 0.20451593 -0. 0. ]\n",
"[ 0.20621887 -0. 0. ]\n",
"[ 0.20621887 -0. 0. ]\n",
"[ 0.20828802 -0. 0. ]\n",
"[ 0.21000926 -0. 0. ]\n",
"[ 0.21000926 -0. 0. ]\n",
"[ 0.21000926 -0. 0. ]\n",
"[ 0.21000926 -0. 0. ]\n",
"[ 0.21000926 -0. 0. ]\n",
"[ 0.21182206 -0. 0. ]\n",
"[ 0.21182206 -0. 0. ]\n",
"[ 0.21182206 -0. 0. ]\n",
"[ 0.21182206 -0. 0. ]\n",
"[ 0.21182206 -0. 0. ]\n",
"[ 0.21182206 -0. 0. ]\n",
"[ 0.21182206 -0. 0. ]\n",
"[ 0.21182206 -0. 0. ]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n",
"[0. 0. 0.]\n"
]
}
],
"source": [
"fsm = FSM(robot, remote, safety_hypervisor, control_dT=1./50., user_controller_callback=controller.update)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"fsm.close()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "b1-env",
"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.10.12"
}
},
"nbformat": 4,
"nbformat_minor": 2
}