From 5a3877b99677cf93431b431d197d0553687472fe Mon Sep 17 00:00:00 2001 From: walchko Date: Sat, 26 Sep 2020 12:18:25 -0400 Subject: [PATCH 1/2] reorg --- multiped/bin/__init__.py => dev/hex/hex.py | 0 dev/{hex => hex_sim}/params.py | 0 dev/{hex => hex_sim}/robot.py | 3 +- dev/{hex => hex_sim}/test.py | 0 .../{walking-2-legs.gif => biped-robot.gif} | Bin ...-copvyx36cnhwyrvculwn-g1.gif => biped.gif} | Bin ...botics-05-00013-g009.png => quadruped.png} | Bin .../Spider robot kinematics.pdf | Bin 294492 -> 0 bytes .../climbing-hexapods.pdf} | Bin .../hex-with-4dof-legs.pdf} | Bin .../modelling-hexapod.pdf} | Bin multiped/bin/get_leg_angles.py | 108 ----- multiped/bin/get_leg_info.py | 186 -------- multiped/engine.py | 150 ++++--- multiped/kinematics3.py | 423 ++++++++++-------- 15 files changed, 341 insertions(+), 529 deletions(-) rename multiped/bin/__init__.py => dev/hex/hex.py (100%) rename dev/{hex => hex_sim}/params.py (100%) rename dev/{hex => hex_sim}/robot.py (98%) rename dev/{hex => hex_sim}/test.py (100%) rename docs/gait/pics/{walking-2-legs.gif => biped-robot.gif} (100%) rename docs/gait/pics/{1-copvyx36cnhwyrvculwn-g1.gif => biped.gif} (100%) rename docs/gait/pics/{robotics-05-00013-g009.png => quadruped.png} (100%) delete mode 100644 docs/misc/walking-robots-pdfs/Spider robot kinematics.pdf rename docs/{ncomms14494.pdf => misc/walking-robots-pdfs/climbing-hexapods.pdf} (100%) rename docs/{99d15da9cde98069e24b3dc07218d472dc42.pdf => misc/walking-robots-pdfs/hex-with-4dof-legs.pdf} (100%) rename docs/{6360dff3ca1b8f5eafb436bc8855ff49250d.pdf => misc/walking-robots-pdfs/modelling-hexapod.pdf} (100%) delete mode 100644 multiped/bin/get_leg_angles.py delete mode 100644 multiped/bin/get_leg_info.py diff --git a/multiped/bin/__init__.py b/dev/hex/hex.py similarity index 100% rename from multiped/bin/__init__.py rename to dev/hex/hex.py diff --git a/dev/hex/params.py b/dev/hex_sim/params.py similarity index 100% rename from dev/hex/params.py rename to dev/hex_sim/params.py diff --git a/dev/hex/robot.py b/dev/hex_sim/robot.py similarity index 98% rename from dev/hex/robot.py rename to dev/hex_sim/robot.py index 033bdfa..307001c 100644 --- a/dev/hex/robot.py +++ b/dev/hex_sim/robot.py @@ -12,7 +12,6 @@ class Tripod: def __init__(self, neutral, stride, count): self.gait = self.build_forward(neutral, stride, count) self.orientations = [-30, -90, -120, 120, 90, 30] - self. def build_stride(self, n, dist, steps): """ @@ -72,7 +71,7 @@ def rotate_z(self, stride, angle, offset): def gait_world(self): ret = [] - for i in range(6): + # for i in range(6): return ret diff --git a/dev/hex/test.py b/dev/hex_sim/test.py similarity index 100% rename from dev/hex/test.py rename to dev/hex_sim/test.py diff --git a/docs/gait/pics/walking-2-legs.gif b/docs/gait/pics/biped-robot.gif similarity index 100% rename from docs/gait/pics/walking-2-legs.gif rename to docs/gait/pics/biped-robot.gif diff --git a/docs/gait/pics/1-copvyx36cnhwyrvculwn-g1.gif b/docs/gait/pics/biped.gif similarity index 100% rename from docs/gait/pics/1-copvyx36cnhwyrvculwn-g1.gif rename to docs/gait/pics/biped.gif diff --git a/docs/gait/pics/robotics-05-00013-g009.png b/docs/gait/pics/quadruped.png similarity index 100% rename from docs/gait/pics/robotics-05-00013-g009.png rename to docs/gait/pics/quadruped.png diff --git a/docs/misc/walking-robots-pdfs/Spider robot kinematics.pdf b/docs/misc/walking-robots-pdfs/Spider robot kinematics.pdf deleted file mode 100644 index c3d9bbddb7672935e35aa76b5194ac40a503bf74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294492 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�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∋00gV6jmrQq_*v?qz+$<0NEIRWJ-Y5g1; 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 _jquXU2(+#4W7~>xxVulD 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 diff --git a/docs/ncomms14494.pdf b/docs/misc/walking-robots-pdfs/climbing-hexapods.pdf similarity index 100% rename from docs/ncomms14494.pdf rename to docs/misc/walking-robots-pdfs/climbing-hexapods.pdf diff --git a/docs/99d15da9cde98069e24b3dc07218d472dc42.pdf b/docs/misc/walking-robots-pdfs/hex-with-4dof-legs.pdf similarity index 100% rename from docs/99d15da9cde98069e24b3dc07218d472dc42.pdf rename to docs/misc/walking-robots-pdfs/hex-with-4dof-legs.pdf diff --git a/docs/6360dff3ca1b8f5eafb436bc8855ff49250d.pdf b/docs/misc/walking-robots-pdfs/modelling-hexapod.pdf similarity index 100% rename from docs/6360dff3ca1b8f5eafb436bc8855ff49250d.pdf rename to docs/misc/walking-robots-pdfs/modelling-hexapod.pdf diff --git a/multiped/bin/get_leg_angles.py b/multiped/bin/get_leg_angles.py deleted file mode 100644 index c9ca6c7..0000000 --- a/multiped/bin/get_leg_angles.py +++ /dev/null @@ -1,108 +0,0 @@ -#!/usr/bin/env python - -############################################## -# The MIT License (MIT) -# Copyright (c) 2017 Kevin Walchko -# see LICENSE for full details -############################################## - -from __future__ import print_function, division -from pyxl320 import ServoSerial -from pyxl320.Packet import le, makeReadPacket -import argparse -import simplejson as json - - -def writeToFile(data, filename='data.json'): - with open(filename, 'w') as outfile: - json.dump(data, outfile) - - -DESCRIPTION = """ -Returns the angles of servos -""" - - -def handleArgs(): - parser = argparse.ArgumentParser(description=DESCRIPTION, formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument('port', help='serial port or \'dummy\' for testing', type=str) - parser.add_argument('-j', '--json', help='save info to a json file, you must supply a file name: --json my_file.json', type=str) - - args = vars(parser.parse_args()) - return args - - -def getInfo(pkt): - ID = pkt[4] - angle = float((pkt[10] << 8) + pkt[9])/1023 - angle *= 300.0 - return ID, angle - - -def getSingle(ID, ser): - pkt = makeReadPacket(ID, 37, le(2)) - # print('made packet:', pkt) - ID = None - angle = None - - ans = ser.sendPkt(pkt) - if ans: - ans = ans[0] - ID, angle = getInfo(ans) - - return angle - - -def main(): - args = handleArgs() - port = args['port'] - - s = ServoSerial(port=port) - s.open() - - ids = range(1, 13) - - resp = {} - for k in ids: - resp[k] = None - - # as more servos add up, I might need to increase the cnt number??? - for i in ids: - angle = getSingle(i, s) - resp[i] = angle - - cnt = 10 - while cnt: - cnt = 0 - for k, v in resp.items(): - # search through and find servos w/o responses (i.e., None) - if v is None: - cnt += 1 # found a None - angle = getSingle(k, s) - resp[k] = angle - - print('') - print('Servos: 1 - 12') - print('All angles are in {}'.format('degrees')) - print(' {:>13} | {:>13} | {:>13} | {:>13} |'.format('Leg 1', 'Leg 2', 'Leg 3', 'Leg 4')) - print(' {:>4} | {:6} | {:>4} | {:6} | {:>4} | {:6} | {:>4} | {:6} |'.format('ID', 'Angle', 'ID', 'Angle', 'ID', 'Angle', 'ID', 'Angle')) - print('-' * 65) - # for k, v in resp.items(): - # if v is None: - # print('{:4} | {}'.format(k, 'unknown')) - # else: - # print('{:4} | {:6.2f}'.format(k, v)) - for i in range(1, 4): - print(' {:4} | {:6.2f} | {:4} | {:6.2f} | {:4} | {:6.2f} | {:4} | {:6.2f}'.format(i, resp[i], i+3, resp[i+3], i+6, resp[i+6], i+9, resp[i+9])) - print('-' * 65) - print('') - - if args['json']: - print('Saving servo angle info to {}'.format(args['json'])) - writeToFile(resp, args['json']) - - s.close() - - -if __name__ == '__main__': - main() diff --git a/multiped/bin/get_leg_info.py b/multiped/bin/get_leg_info.py deleted file mode 100644 index ab3bf77..0000000 --- a/multiped/bin/get_leg_info.py +++ /dev/null @@ -1,186 +0,0 @@ -#!/usr/bin/env python - -############################################## -# The MIT License (MIT) -# Copyright (c) 2017 Kevin Walchko -# see LICENSE for full details -############################################## - -from __future__ import print_function, division -from pyxl320 import ServoSerial -from pyxl320.Packet import le, makeReadPacket -import argparse -import simplejson as json -from serial import SerialException -import sys -from quadruped.packetDecoder import PacketDecoder - - -def writeToFile(data, filename='data.json'): - with open(filename, 'w') as outfile: - json.dump(data, outfile) - - -def pktToDict(p): - # print('pkt', pkt) - # print('len(pkt)', len(pkt)) - ans = {} - ans['ID'] = p.id - ans['Present Position'] = p.angle() - ans['Present Voltage'] = p.voltage() - ans['Present Load'] = '{:>5.1f}% {}'.format(*p.load()) - ans['Present Temperature'] = p.temperature(PacketDecoder.F) - ans['Hardware Error Status'] = p.hw_error() - - return ans - - -DESCRIPTION = """ -Returns limited info for each leg servo. - -./get_leg_info.py /dev/tty.usbserial-AL034G2K -Opened /dev/tty.usbserial-AL034G2K @ 1000000 - -Servos: 1 - 12 --------------------------------------------------- -Servo: 1 HW Error: 0 -Position [deg]: 139.6 Load: 0.0% CCW -Voltage [V] 7.0 Temperature [F]: 80.6 --------------------------------------------------- -Servo: 2 HW Error: 0 -Position [deg]: 178.9 Load: 4.5% CW -Voltage [V] 7.1 Temperature [F]: 86.0 --------------------------------------------------- -Servo: 3 HW Error: 0 -Position [deg]: 119.1 Load: 0.0% CCW -Voltage [V] 7.1 Temperature [F]: 80.6 --------------------------------------------------- -Servo: 4 HW Error: 0 -Position [deg]: 146.6 Load: 0.8% CCW -Voltage [V] 7.3 Temperature [F]: 80.6 --------------------------------------------------- -Servo: 5 HW Error: 0 -Position [deg]: 275.4 Load: 0.8% CCW -Voltage [V] 7.1 Temperature [F]: 80.6 --------------------------------------------------- -Servo: 6 HW Error: 0 -Position [deg]: 104.1 Load: 0.0% CCW -Voltage [V] 7.3 Temperature [F]: 82.4 --------------------------------------------------- -Servo: 7 HW Error: 0 -Position [deg]: 163.9 Load: 0.0% CCW -Voltage [V] 7.2 Temperature [F]: 80.6 --------------------------------------------------- -Servo: 8 HW Error: 0 -Position [deg]: 279.5 Load: 0.0% CCW -Voltage [V] 7.1 Temperature [F]: 80.6 --------------------------------------------------- -Servo: 9 HW Error: 0 -Position [deg]: 100.3 Load: 0.0% CCW -Voltage [V] 7.1 Temperature [F]: 84.2 --------------------------------------------------- -Servo: 10 HW Error: 0 -Position [deg]: 156.3 Load: 0.0% CCW -Voltage [V] 7.1 Temperature [F]: 82.4 --------------------------------------------------- -Servo: 11 HW Error: 0 -Position [deg]: 280.6 Load: 0.0% CCW -Voltage [V] 7.2 Temperature [F]: 80.6 --------------------------------------------------- -Servo: 12 HW Error: 0 -Position [deg]: 97.7 Load: 0.0% CCW -Voltage [V] 7.1 Temperature [F]: 84.2 --------------------------------------------------- -""" - - -def handleArgs(): - parser = argparse.ArgumentParser(description=DESCRIPTION, formatter_class=argparse.RawTextHelpFormatter) - parser.add_argument('port', help='serial port or \'dummy\' for testing', type=str) - parser.add_argument('-j', '--json', metavar='FILENAME', help='save info to a json file: --json my_file.json', type=str) - - args = vars(parser.parse_args()) - return args - - -def getSingle(ID, ser): - pkt = makeReadPacket(ID, 37, le(50-37+1)) - # print('made packet:', pkt) - - ans = ser.sendPkt(pkt) - if ans: - ans = ans[0] - pd = PacketDecoder(ans, 37) # data packet starts at register 37 - # pd.printPacket() - if pd.checkError(): - raise Exception('Crap!') - ans = pktToDict(pd) - else: - ans = None - - return ans - - -def printServo(s): - print('-'*50) - print('Servo: {} \t\tHW Error: {}'.format(s['ID'], s['Hardware Error Status'])) - print('Position [deg]: {:5.1f} Load: {}'.format(s['Present Position'], s['Present Load'])) - print('Voltage [V] {:4.1f} Temperature [F]: {:5.1f}'.format(s['Present Voltage'], s['Present Temperature'])) - - -def main(): - args = handleArgs() - port = args['port'] - - s = ServoSerial(port=port) - - # open serial port - try: - s.open() - except SerialException as e: - print('-'*20) - print(sys.argv[0], 'encountered an error') - print(e) - exit(1) - - ids = range(1, 13) - - resp = {} - for k in ids: - resp[k] = None - - # get servo data - try: - for i in ids: - data = getSingle(i, s) - resp[i] = data - except Exception as e: - print(e) - exit(1) - - cnt = 10 - while cnt: - cnt = 0 - for k, v in resp.items(): - # search through and find servos w/o responses (i.e., None) - if v is None: - cnt += 1 # found a None - ans = getSingle(k, s) - resp[k] = ans - - print('') - print('Servos: 1 - 12') - for i in range(1, 13): - printServo(resp[i]) - print('-' * 50) - print('') - - if args['json']: - print('Saving servo angle info to {}'.format(args['json'])) - writeToFile(resp, args['json']) - - s.close() - - -if __name__ == '__main__': - main() diff --git a/multiped/engine.py b/multiped/engine.py index 9659e5d..20ec6e0 100644 --- a/multiped/engine.py +++ b/multiped/engine.py @@ -4,8 +4,6 @@ # see LICENSE for full details ############################################## -from __future__ import print_function -from __future__ import division from pyservos import ServoSerial from pyservos import Packet # from pyservos import ServoTypes @@ -23,57 +21,57 @@ def dprint(s): print(s) -def calc_rpm(da, wait): - """ - Given an angular delta and a wait time, calculate the rpm needed to achieve - - [Join Mode] - 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. - If it is set to 0, it means the maximum rpm of the motor is used - without controlling the speed. If it is 1023, it is about 114rpm. - For example, if it is set to 300, it is about 33.3 rpm. - - AX12 max rmp is 59 (max speed 532) - rev min 360 deg deg - --- ------- ------- = 6 ---- - min 60 sec rev sec - - rpm = abs(new_angle - old_angle)/(0.111 * wait * 6) - """ - return int(abs(da)/(0.111*wait*6)) - - -def calc_wait(da, speed): - """ - Given an angular delta and the speed (servo counts), calculate the how long - to wait for the servo to complete the movement - - [Join Mode] - 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. - If it is set to 0, it means the maximum rpm of the motor is used - without controlling the speed. If it is 1023, it is about 114rpm. - For example, if it is set to 300, it is about 33.3 rpm. - - AX12 max rmp is 59 (max speed 532) - rev min 360 deg deg - --- ------- ------- = 6 ---- - min 60 sec rev sec - - da deg - wait = ---------------------------------------- - rpm 360 deg min - 0.111 --- * speed_cnt * ------- * ------ - cnt rev 60 sec - - wait = abs(new_angle - old_angle)/(0.111 * speed * 6) - """ - try: - w = abs(da)/(0.111*speed*6) - except ZeroDivisionError: - w = 1 - print("*** calc_wait() div error: {}".format(speed)) - - return w +# def calc_rpm(da, wait): +# """ +# Given an angular delta and a wait time, calculate the rpm needed to achieve +# +# [Join Mode] +# 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. +# If it is set to 0, it means the maximum rpm of the motor is used +# without controlling the speed. If it is 1023, it is about 114rpm. +# For example, if it is set to 300, it is about 33.3 rpm. +# +# AX12 max rmp is 59 (max speed 532) +# rev min 360 deg deg +# --- ------- ------- = 6 ---- +# min 60 sec rev sec +# +# rpm = abs(new_angle - old_angle)/(0.111 * wait * 6) +# """ +# return int(abs(da)/(0.111*wait*6)) + + +# def calc_wait(da, speed): +# """ +# Given an angular delta and the speed (servo counts), calculate the how long +# to wait for the servo to complete the movement +# +# [Join Mode] +# 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. +# If it is set to 0, it means the maximum rpm of the motor is used +# without controlling the speed. If it is 1023, it is about 114rpm. +# For example, if it is set to 300, it is about 33.3 rpm. +# +# AX12 max rmp is 59 (max speed 532) +# rev min 360 deg deg +# --- ------- ------- = 6 ---- +# min 60 sec rev sec +# +# da deg +# wait = ---------------------------------------- +# rpm 360 deg min +# 0.111 --- * speed_cnt * ------- * ------ +# cnt rev 60 sec +# +# wait = abs(new_angle - old_angle)/(0.111 * speed * 6) +# """ +# try: +# w = abs(da)/(0.111*speed*6) +# except ZeroDivisionError: +# w = 1 +# print("*** calc_wait() div error: {}".format(speed)) +# +# return w class Engine(object): @@ -270,6 +268,52 @@ def moveLegsGait4(self, legs): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # def pprint(self, i, step): # print('***', i, '*'*25) # for leg in step: diff --git a/multiped/kinematics3.py b/multiped/kinematics3.py index 9cc26c2..7295cbe 100644 --- a/multiped/kinematics3.py +++ b/multiped/kinematics3.py @@ -1,9 +1,72 @@ -# #!/usr/bin/env python -# ############################################## -# # The MIT License (MIT) -# # Copyright (c) 2016 Kevin Walchko -# # see LICENSE for full details -# ############################################## +############################################## +# The MIT License (MIT) +# Copyright (c) 2016 Kevin Walchko +# see LICENSE for full details +############################################## + +# import numpy as np +from math import sin, cos, acos, atan2, sqrt, pi, fabs +from math import radians as d2r +from math import degrees as r2d + +class Leg3: + """ + parameter file: + { + "linkLengths": [coxa, femur, tibia], # mm + "servoOffsets": [s0, s1, s2], # radians + "servoLimits": [(min,max), (min,max), (min, max)] # radians + } + """ + def __init__(self, params): + self.linkLengths = params["linkLengths"] + self.servoOffsets = params["servoOffsets"] + self.servoLimits = params["servoLimits"] + + def forward(self, a, b, g, deg=True): + """ + Forward kinematics of the leg where angles a,b,c can be degrees [default] + or radians. + """ + Lc, Lf, Lt = self.linkLengths + + if deg: + a = d2r(a) + b = d2r(b) + g = d2r(g) + + foot = ( + (Lc + Lf*cos(b) + Lt*cos(b + g))*cos(a), + (Lc + Lf*cos(b) + Lt*cos(b + g))*sin(a), + Lf*sin(b) + Lt*sin(b + g), + ) + + return foot + + def inverse(self, a, b, c): + pass + + + + + + + + + + + + + + + + + + + + + + # # from __future__ import print_function # from __future__ import division @@ -19,180 +82,180 @@ # # # class LegException(Exception): -# pass +# pass # # # class Leg3(object): -# """ -# """ -# # these are fixed by the 3D printing, not changing -# coxaLength = 45.0 -# tibiaLength = 55.0 -# femurLength = 104.0 -# s_limits = [ -# [-90, 90], # set limits -# [-90, 90], -# [-150, 0] -# ] -# s_offsets = [150, 150, 150+90] # angle offsets to line up with fk -# -# sit_raw = (150, 270, 100) -# stand_raw = (150, 175, 172) -# sit_angles = None -# stand_angles = None -# -# def __init__(self, channels): -# """ -# Each leg has 3 servos/channels -# """ -# if not len(channels) == 3: -# raise LegException('len(channels) != 3') -# -# Servo.bulkServoWrite = True -# -# # angle offsets to line up with fk -# self.servos = [] -# for i in range(0, 3): -# self.servos.append(Servo(channels[i])) -# self.servos[i].setServoLimits(self.s_offsets[i], *self.s_limits[i]) -# -# self.sit_angles = self.convertRawAngles(*self.sit_raw) -# initAngles = self.convertRawAngles(*self.stand_raw) -# self.stand_angles = initAngles -# self.foot0 = self.fk(*initAngles) # rest/idle position of the foot/leg -# -# def __del__(self): -# pass -# -# def sit(self): -# self.moveFootAngles(*self.sit_angles) -# -# def stand(self): -# self.moveFootAngles(*self.stand_angles) -# -# def convertRawAngles(self, a, b, c): -# return (a-self.s_offsets[0], b-self.s_offsets[1], c-self.s_offsets[2]) -# -# def fk(self, a, b, g): -# """ -# Forward kinematics of the leg, note, angle are all degrees -# """ -# Lc = self.coxaLength -# Lf = self.femurLength -# Lt = self.tibiaLength -# -# a = d2r(a) -# b = d2r(b) -# g = d2r(g) -# -# foot = [ -# (Lc + Lf*cos(b) + Lt*cos(b + g))*cos(a), -# (Lc + Lf*cos(b) + Lt*cos(b + g))*sin(a), -# Lf*sin(b) + Lt*sin(b + g) -# ] -# -# # return np.array(foot) -# return foot -# -# def ik(self, x, y, z): -# """ -# Calculates the inverse kinematics from a given foot coordinate (x,y,z)[mm] -# and returns the joint angles[degrees] -# -# Reference (there are typos) -# https://tote.readthedocs.io/en/latest/ik.html -# -# If the foot (x,y,z) is in a position that does not produce a result (some -# numeric error or invalid foot location), the this returns None. -# """ -# # try: -# Lc = self.coxaLength -# Lf = self.femurLength -# Lt = self.tibiaLength -# -# if sqrt(x**2 + y**2) < Lc: -# print('too short') -# return None -# # elif z > 0.0: -# # return None -# -# a = atan2(y, x) -# f = sqrt(x**2 + y**2) - Lc -# # b1 = atan2(z, f) # takes into account quadrent, z is neg -# -# # you have different conditions depending if z is pos or neg -# if z < 0.0: -# b1 = atan2(f, fabs(z)) -# else: -# b1 = atan2(z, f) -# -# d = sqrt(f**2 + z**2) # <--- -# -# # print('ik pos: {} {} {}'.format(x,y,z)) -# # print('d: {:.3f} f: {:.3f}'.format(d,f)) -# # print('Lc Lf Lt: {} {} {}'.format(Lc,Lf,Lt)) -# # print('num: {:.3f}'.format(Lf**2 + d**2 - Lt**2)) -# # print('den: {:.3f}'.format(2.0 * Lf * d)) -# # print('acos: {:.2f}'.format((Lf**2 + d**2 - Lt**2) / (2.0 * Lf * d))) -# -# guts = ((Lf**2 + d**2 - Lt**2) / (2.0 * Lf * d)) -# if 1.0 < guts or guts < -1.0: -# print('acos crap!: {:.3f} {:.3f} {:.3f} guts: {:.3f}'.format(x, y, z, guts)) -# return None -# b2 = acos((Lf**2 + d**2 - Lt**2) / (2.0 * Lf * d)) # issues? -# b = b1 + b2 -# g = acos((Lf**2 + Lt**2 - d**2) / (2.0 * Lf * Lt)) -# -# # FIXES ################################### -# g -= pi # fix to align fk and ik frames -# -# if z < 0.0: -# b -= pi/2 # -# ############################################## -# # print('b1 b2: {:.2f} {:.2f}'.format(r2d(b1), r2d(b2))) -# # print('ik angles: {:.2f} {:.2f} {:.2f}'.format(r2d(a), r2d(b), r2d(g))) -# return r2d(a), r2d(b), r2d(g) # coxaAngle, femurAngle, tibiaAngle -# -# # except Exception as e: -# # print('ik error:', e) -# # raise e -# -# def moveFoot(self, x, y, z): -# """ -# Attempts to move it's foot to coordinates [x,y,z] -# """ -# try: -# # a, b, c = self.ik(x, y, z) # inverse kinematics -# # angles = [a, b, c] -# angles = self.ik(x, y, z) # inverse kinematics -# # return angles -# if angles is None: -# print('something bad') -# return -# # print('angles: {:.2f} {:.2f} {:.2f}'.format(*angles)) -# for i, servo in enumerate(self.servos): -# # print('i, servo:', i, servo) -# angle = angles[i] -# # print('servo {} angle {}'.format(i, angle)) -# servo.angle = angle -# return angles -# -# except Exception as e: -# print (e) -# raise -# -# def moveFootAngles(self, a, b, c): -# """ -# Attempts to move it's foot to coordinates [x,y,z] -# """ -# try: -# for servo, angle in zip(self.servos, (a, b, c)): -# servo.angle = angle -# -# except Exception as e: -# print('Leg::moveFootAngles() error:', e) -# raise -# -# # def reset(self): -# # # self.angles = self.resting_position -# # self.move(*self.foot0) +# """ +# """ +# # these are fixed by the 3D printing, not changing +# coxaLength = 45.0 +# tibiaLength = 55.0 +# femurLength = 104.0 +# s_limits = [ +# [-90, 90], # set limits +# [-90, 90], +# [-150, 0] +# ] +# s_offsets = [150, 150, 150+90] # angle offsets to line up with fk +# +# sit_raw = (150, 270, 100) +# stand_raw = (150, 175, 172) +# sit_angles = None +# stand_angles = None +# +# def __init__(self, channels): +# """ +# Each leg has 3 servos/channels +# """ +# if not len(channels) == 3: +# raise LegException('len(channels) != 3') +# +# Servo.bulkServoWrite = True +# +# # angle offsets to line up with fk +# self.servos = [] +# for i in range(0, 3): +# self.servos.append(Servo(channels[i])) +# self.servos[i].setServoLimits(self.s_offsets[i], *self.s_limits[i]) +# +# self.sit_angles = self.convertRawAngles(*self.sit_raw) +# initAngles = self.convertRawAngles(*self.stand_raw) +# self.stand_angles = initAngles +# self.foot0 = self.fk(*initAngles) # rest/idle position of the foot/leg +# +# def __del__(self): +# pass +# +# def sit(self): +# self.moveFootAngles(*self.sit_angles) +# +# def stand(self): +# self.moveFootAngles(*self.stand_angles) +# +# def convertRawAngles(self, a, b, c): +# return (a-self.s_offsets[0], b-self.s_offsets[1], c-self.s_offsets[2]) +# +# def fk(self, a, b, g): +# """ +# Forward kinematics of the leg, note, angle are all degrees +# """ +# Lc = self.coxaLength +# Lf = self.femurLength +# Lt = self.tibiaLength +# +# a = d2r(a) +# b = d2r(b) +# g = d2r(g) +# +# foot = [ +# (Lc + Lf*cos(b) + Lt*cos(b + g))*cos(a), +# (Lc + Lf*cos(b) + Lt*cos(b + g))*sin(a), +# Lf*sin(b) + Lt*sin(b + g) +# ] +# +# # return np.array(foot) +# return foot +# +# def ik(self, x, y, z): +# """ +# Calculates the inverse kinematics from a given foot coordinate (x,y,z)[mm] +# and returns the joint angles[degrees] +# +# Reference (there are typos) +# https://tote.readthedocs.io/en/latest/ik.html +# +# If the foot (x,y,z) is in a position that does not produce a result (some +# numeric error or invalid foot location), the this returns None. +# """ +# # try: +# Lc = self.coxaLength +# Lf = self.femurLength +# Lt = self.tibiaLength +# +# if sqrt(x**2 + y**2) < Lc: +# print('too short') +# return None +# # elif z > 0.0: +# # return None +# +# a = atan2(y, x) +# f = sqrt(x**2 + y**2) - Lc +# # b1 = atan2(z, f) # takes into account quadrent, z is neg +# +# # you have different conditions depending if z is pos or neg +# if z < 0.0: +# b1 = atan2(f, fabs(z)) +# else: +# b1 = atan2(z, f) +# +# d = sqrt(f**2 + z**2) # <--- +# +# # print('ik pos: {} {} {}'.format(x,y,z)) +# # print('d: {:.3f} f: {:.3f}'.format(d,f)) +# # print('Lc Lf Lt: {} {} {}'.format(Lc,Lf,Lt)) +# # print('num: {:.3f}'.format(Lf**2 + d**2 - Lt**2)) +# # print('den: {:.3f}'.format(2.0 * Lf * d)) +# # print('acos: {:.2f}'.format((Lf**2 + d**2 - Lt**2) / (2.0 * Lf * d))) +# +# guts = ((Lf**2 + d**2 - Lt**2) / (2.0 * Lf * d)) +# if 1.0 < guts or guts < -1.0: +# print('acos crap!: {:.3f} {:.3f} {:.3f} guts: {:.3f}'.format(x, y, z, guts)) +# return None +# b2 = acos((Lf**2 + d**2 - Lt**2) / (2.0 * Lf * d)) # issues? +# b = b1 + b2 +# g = acos((Lf**2 + Lt**2 - d**2) / (2.0 * Lf * Lt)) +# +# # FIXES ################################### +# g -= pi # fix to align fk and ik frames +# +# if z < 0.0: +# b -= pi/2 # +# ############################################## +# # print('b1 b2: {:.2f} {:.2f}'.format(r2d(b1), r2d(b2))) +# # print('ik angles: {:.2f} {:.2f} {:.2f}'.format(r2d(a), r2d(b), r2d(g))) +# return r2d(a), r2d(b), r2d(g) # coxaAngle, femurAngle, tibiaAngle +# +# # except Exception as e: +# # print('ik error:', e) +# # raise e +# +# def moveFoot(self, x, y, z): +# """ +# Attempts to move it's foot to coordinates [x,y,z] +# """ +# try: +# # a, b, c = self.ik(x, y, z) # inverse kinematics +# # angles = [a, b, c] +# angles = self.ik(x, y, z) # inverse kinematics +# # return angles +# if angles is None: +# print('something bad') +# return +# # print('angles: {:.2f} {:.2f} {:.2f}'.format(*angles)) +# for i, servo in enumerate(self.servos): +# # print('i, servo:', i, servo) +# angle = angles[i] +# # print('servo {} angle {}'.format(i, angle)) +# servo.angle = angle +# return angles +# +# except Exception as e: +# print (e) +# raise +# +# def moveFootAngles(self, a, b, c): +# """ +# Attempts to move it's foot to coordinates [x,y,z] +# """ +# try: +# for servo, angle in zip(self.servos, (a, b, c)): +# servo.angle = angle +# +# except Exception as e: +# print('Leg::moveFootAngles() error:', e) +# raise +# +# # def reset(self): +# # # self.angles = self.resting_position +# # self.move(*self.foot0) From e1313e8c5e3d80efc2cefcc19376459b8352ff7e Mon Sep 17 00:00:00 2001 From: walchko Date: Sat, 5 Dec 2020 11:20:39 -0500 Subject: [PATCH 2/2] up --- dev/hex/hex.py | 49 +++ dev/hex/test.py | 68 +++ docs/jupyter/gait.ipynb | 250 +++++++++++ docs/jupyter/kinematics-R3.ipynb | 730 +++++++++++++++++++++++++++++++ multiped/__init__.py | 1 - multiped/alt/control.py | 1 + multiped/alt/gait.py | 163 +++++++ multiped/alt/ik.py | 75 ++++ multiped/engine.py | 558 +++++++++++++---------- multiped/gait.py | 619 ++++++++++++++++---------- multiped/jsonFile.py | 102 ++--- multiped/kinematics3.py | 73 +++- multiped/robot.py | 88 ++-- multiped/servo.py | 40 +- multiped/utils.py | 25 ++ pyproject.toml | 2 +- readme.md | 4 +- 17 files changed, 2248 insertions(+), 600 deletions(-) mode change 100644 => 100755 dev/hex/hex.py create mode 100755 dev/hex/test.py create mode 100644 docs/jupyter/gait.ipynb create mode 100644 docs/jupyter/kinematics-R3.ipynb create mode 100644 multiped/alt/control.py create mode 100644 multiped/alt/gait.py create mode 100644 multiped/alt/ik.py create mode 100644 multiped/utils.py diff --git a/dev/hex/hex.py b/dev/hex/hex.py old mode 100644 new mode 100755 index e69de29..17f05dd --- a/dev/hex/hex.py +++ b/dev/hex/hex.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python + +############################################## +# The MIT License (MIT) +# Copyright (c) 2016 Kevin Walchko +# see LICENSE for full details +############################################## +# Simple robot + +from multiped import Engine +from multiped import TripodGait + +class Robot(object): + """ + This is a simple class that binds the others together. You could make it + a base class for something fancier. + """ + def __init__(self, data, legType, servoType): + """ + Constructor. + Engine - commands the leg servos to move + gait - Ideally there are several types of gaits for different + walking/running situations. If you don't give it an dict + of gaits, then the default is just the standard + DiscreteRippleGait. + The gaits need to know: + - how high to pick up a leg + - what the neutral leg position is (where is the foot + located when just standing?) + """ + self.engine = Engine(data, servoType) + self.kinematics = legType(data) + + neutral = self.kinematics.getNeutralPos() + + if 'gaits' in data: + self.gaits = data['gaits'] + else: + self.gaits = { + 'crawl': DiscreteRippleGait(65.0, neutral) + } + + + +params = { + +} + +robot = Robot() diff --git a/dev/hex/test.py b/dev/hex/test.py new file mode 100755 index 0000000..7c0fd48 --- /dev/null +++ b/dev/hex/test.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 + +from multiped.gait import TripodGait +from multiped.engine import Engine +from pyservos.ax12 import AX12 + +t = TripodGait() +# ans = t.command(1,0,0,0) + +# print(ans) + +""" +parameter file: +{ + "legs": { + 0: { + "linkLengths": [coxa, femur, tibia], # mm + "servoOffsets": [s0, s1, s2], # radians + "servoLimits": [(min,max), (min,max), (min, max)] # radians + "ids": [4,5,6] # servo ID numbers + } + } +} +""" +params = { + "legs": { + 0: { + "linkLengths": [50, 65, 68], # mm + "servoOffsets": [0, 0, 0], # deg + "servoLimits": [(0,300), (0,300), (0, 300)], # deg + "ids": [1,2,3] # servo ID numbers + }, + 1: { + "linkLengths": [50, 65, 68], # mm + "servoOffsets": [0, 0, 0], # deg + "servoLimits": [(0,300), (0,300), (0, 300)], # deg + "ids": [4,5,6] # servo ID numbers + }, + 2: { + "linkLengths": [50, 65, 68], # mm + "servoOffsets": [0, 0, 0], # deg + "servoLimits": [(0,300), (0,300), (0, 300)], # deg + "ids": [7,8,9] # servo ID numbers + }, + 3: { + "linkLengths": [50, 65, 68], # mm + "servoOffsets": [0, 0, 0], # deg + "servoLimits": [(0,300), (0,300), (0, 300)], # deg + "ids": [10,11,12] # servo ID numbers + }, + 4: { + "linkLengths": [50, 65, 68], # mm + "servoOffsets": [0, 0, 0], # deg + "servoLimits": [(0,300), (0,300), (0, 300)], # deg + "ids": [13,14,15] # servo ID numbers + }, + 5: { + "linkLengths": [50, 65, 68], # mm + "servoOffsets": [0, 0, 0], # deg + "servoLimits": [(0,300), (0,300), (0, 300)], # deg + "ids": [16,17,18] # servo ID numbers + }, + } +} + +# e = Engine(params, None, AX12) +# e.setGait(TripodGait) +# e.move(1,0,0,0) diff --git a/docs/jupyter/gait.ipynb b/docs/jupyter/gait.ipynb new file mode 100644 index 0000000..db8bc6e --- /dev/null +++ b/docs/jupyter/gait.ipynb @@ -0,0 +1,250 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [], + "source": [ + "from multiped.gait import TripodGait" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "from matplotlib import pyplot as plt\n", + "from math import pi, cos, sin, atan2" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [], + "source": [ + "tri = TripodGait()" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [], + "source": [ + "ft = tri.command(1,0,0,0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 84, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAD4CAYAAAAJmJb0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABvwklEQVR4nO2dZ3gc1dWA37tdXVbvWtmSuy3LlpvcC7jgDiFgTAmQQCCEFjAtTuFLAoEEkphQE2wCpjcbjA3uvXdbLqq2ZEuWZKus6pb5fly54SZZu9pdad7nmWdXu7Mz52runDn33HPPEYqioKKioqLSNtG4WwAVFRUVFdehKnkVFRWVNoyq5FVUVFTaMKqSV1FRUWnDqEpeRUVFpQ2jc7cA5xMWFqaYzeZLflddXY2fn1/rCuRG1PY6n+3bt5cqihLu0pNcBrVvn0Ntr/O5Ut/2KCVvNpvZtm3bJb9btWoVI0eObF2B3IjaXucjhMi/ht/kAVWAHbApipIuhAgBPgbMQB5ws6Iop690HLVvn0Ntr/O5Ut/2KCWvcnUURcFSb6PU0kCppZ6SqnpKLfXUNNgJ8TMQ7m8kzN9IWICBUD8jBp3qkXMCoxRFKT3v76eA5YqivCCEeKrx79nNPqqiwOq/EnesCLbngcEfjAHnXoPiwDfEOS1Q8V4UBSzFUHsaIro1++eqkvdwbHYHuwsqWJ9VyrqsUvYWVFBrtTf59xEBRgZ1DGVochhDU8KICfZxobTthqnAyMb384FVXIuStzfAqj+TDJB9mX18QyE0BUKTISxZvo/tC4ExzZdaxbNRFCjLhqI9UJYFpUeg7Ij8rL4SwrvBg5uafVhVyXsgJ6vqWJZv5YP3trEpu4yqehtCQM+YIG4ZEE9UoInwgEaL3d9IeIARX4OWU9UNlFjqKa2qb3xtILfUwvrsMhbuPg5AxzA/hiSHMbJLOCM6h6PTqpb+VVCA74UQCvCmoihvAZGKopxo/L4IiLzUD4UQvwB+ARAZGcmqVasu3mnEF9RVlhFk1KC1157ddLYaTHXF+NYU4ltZiG/RNxis5Wd/VmuKpCKoB+XBPagI6k6tTzQI4cRmuw6LxXLp/0Ub5bLtVez4VR8luHw/QRX7CS4/cME1rjOGU+MbS03YMGp9Yqj2S6D8Gv5vqpL3EBRFYcfRcuZvyOO7fSew2hXiOlQyKTWaocnhDO4USoif4YrH8DPqiA/xveSxDxdbWHukhPVZpXy+o4D/bconJsjEbYMSuaV/PKH+Rlc1zdsZqihKoRAiAvhBCHHw/C8VRVEaHwAX0fhAeAsgPT1duZxfdtWqVQxuis+2rkJad8e24HN0Az75G4gqXiG/84+ETmOg6w3QaTQYLu4HnkK79snXnIIj38PBbyBnDdRXyM+D4qHbOEjMgJi+EJqMyeCLCWipw05V8m6mzmpn0e7jvLcxn72FFQQYdcwalEiKKGbmpNFOOYcQgi5RAXSJCuDeYR1psDlYdegk8zfm8dLSQ/xj+REm947hrgwzveKCnHLOtoKiKIWNryeFEF8CA4BiIUS0oignhBDRwMlWEcYUBHHpchv8gBzelx6G/A2Qtw4OfQu7F4DOB5LHQNdJ0Hmc6td3M8a6Utj8llTseetAsUNANPSYColDIXEwBCe47PyqkncTdVY7/12fyztrczlV3UByhD/PT+vJjLRY/Iw6Vq0qcdm5DToN1/eI4voeURwprmL+xjy+2FHI5zsK6JfYgSfGdWFQx1CXnd9bEEL4ARpFUaoa318P/BFYCNwJvND4+rWbBITwLnJL/xnYrZC/HjK/gYPfSqUitNBxJKTeKq18D7bw2xQ1p2Df57DnYwYXbJWfhXWGIQ/Lh29MGmhax1WqKvlWwmq1UlBQQF1dHTUNNiprbaQYFP4xPpwAow6jXgvUcDTnCABBQUFkZma2imy3ddFxa+cEymoVnl9VzC1vbWJst0iemtCV5Aj/VpHBQ4kEvhTS160DFiiKskQIsRX4RAhxD5AP3HwtBz/TJ5x7rSOh4z1yszWArQYaaqDaBjvWg94HDH6gNTbJh28ymYiLi0Ov1ztJvjaMrV66YnZ/BIeXgsMKEd3JSbqdjhN/DeGd3SKWquRbiYKCAnQmX7Q+oehtDuL0WqKDfPA3XfoSVFVVERAQ0GryKYpCWVkZb0zzYclRB6+vymbcq2uYOSCBh8emENYOffaKouQAqZf4vAwY09LjFxQUEBAQQGhoKIGBgS093OVRFGiwQO0pqC0HxQEah3Tj+IaC7tLX9kyfKCgoICkpyXXyeTtFe2HHe7D3Uxnm6BcBA++D3j+FqF4cXb2ajm5S8KAq+VYhp8RCYWkFgVHBGHUQH+JLsI8e4UHREEIIQkNDKSkp4cFR3fhp/3j+sewIC7Yc5cudhfxyZCd+PqyjGnfvROrq6jCbzVgsFteeSAgZd28MgMA4OYFbe1rGXluKwRAAfqHS5y805/3sXJ9Q+RF1lbDvM6ncj++UI6NukyB1pnSPaT1HtXqOJG0Qq93BW2ty+MfyI7x+QyTRwT6E+RnRaDxHuZ/P+Q+dMH8jz0/ryZ0ZZl5ccpCXlh7i612FvHBjb/omdHCjlG2LVn/Qa7SNFnyIdOfUlkn/8ek80OjAp9G615vcI58noyhQsBW2z4f9X4C1BiJ6wIS/Qq+feOwEt6rkXcTeggqe/HwPmScqmdAzishAExEBJneL1WySI/x5+450Vhws5rkv93Hj6xu4c7CZJ8Z1wc+odh+vRmeQUR7+UVBfBTWlUF0C1SdB79do3Qe7W0r3U3NK+tl3vAclmfJ/0+sm6HuXXJjm4Q9C9S51MrUNdl5ddpi31+YQ6m/kjVn9GN8zqtUmUV3F6K6RfP9YKH9dcpB5G/L44UAxf57RixGd3ZLvS8WZCAGmQLnZrdJ3X10G5UdBFEJtFRzfBTF93C1p6+FwQN4aqdgzF8nVybHpMPmf0HOGdH15CaqSdyKbc8p48vM95JfVcEv/eJ6e2I0gn7YTleBv1PHHqT2ZkhrD7M/3cOd/tzCjbyy/m9SDIN+20852jVYvF1b5RUBDNdSUQUMRvDURIntB6i3SNRFwyUW+3k9ZtrTa93wkH3KmYEi/G9Juh6ie7pbumlBn0ZxAndXOnxdncsvbm1AUWPDzgbxwY2+PU/Bbt26ld+/e1NXVUV1dTY8ePdi3b1+zj5NuDuHbXw/jodHJLNx1nHGvrmHdkdKr/1DFo7hifxACjP7QIRECY2Hiy9K98/2z8Peu8P6NsPczGZ7p7dScgq3vwDtj4V99Ye3LENIJZrwNjx+ECS96rYIH1ZJvMQeOV/Lox7s4VFzFbQMTeGZit6v6qv+waD8HjldecR+73Y5Wq22yHN1jAvnd5B5X3Kd///5MmTKF5557jtraWmbNmkXPntfWeU16LY9f34Xrukfy6Me7mPWfzdyVYWb2+K74GJout4qkKX2iuVytTzS5PwgNDPi53EoOSyt3zyfw+T0yMqfLBBlZ0mmMfDB4A9VlcPg7uXAsa9nZmHau+6McqbShBHBOUfLOyrntTdgdCm+uyeaVHw4T7Gvg3bv6M6prhLvFuipz5syhf//+mEwm/vnPf7b4eL3jgvn218N44Tvpq197pIS/39yH1Pjglgur4nKa3R/CO8OYOTDqObm6ds9HcHAx7P0EdCboOEqurO0yAfzCXN+A5nA6v3El8LdwdINcLxAUf0FMu6dPol4LzrTkXZNz2wM5WlbDY5/sYlv+aSb2iuL/pvW6avKw87maxQ2XWAzlsIOtTk4AORwy/4XikJ8rdhneVVEgrS6hlUumhVaGzOmMZ1c4lpWVYbFYsFqt1NXVOaVijUmv5fdTejC2WyRPfLabGa9v4KHRyTw4Khm9muWySTSlT7iCa+4PGg0kDZPbJBsc23QuncLh72Q/jEmDhMGQOAQSBrV+iGHlcZnX58xW0hj8ENEdhv1GPoyiU9ukYj8fV7prnJNz24NQFIWPtx7jj98cQKsRvPLTVKb1iXVuLLHiAGst+oZyKC+Xit1WL4eTl0RIRY6Qv1Uul2tegM7IfXc/xPPPPEbusePMfuI3zP33604TfWhKGEseHs6chft4ddkRVh4q4ZWbU+kY7iVD+HbIfffdx/PPP09ubi6zZ89m7ty5zT+IVgfmoXIb/xeZD/3gt5C7Fra8BRsbjxnRHRIziKo0Qb4RwlJkTH5L7x9FkQq9LEvmXy/YLi3103nye0MAxA+APjOlYg/t1LLzeRnOUvKuzbmN+3NQV9QrvLuvnl0ldrqFaLi3l4EOFVmsXp3VpN8HBQVRVVV18ReKA629/rxc4nUIFEyAAw0OjQFFY8KhC8Sh0ePQ6FGEBkVoAM3FN4iiAApCcQAOhGJHY7eicTTwwUefotMIbp2QgcNuJ2Pqz1j26TuMGDESm9YHu85EXV1di//P06MgNtXI/APljH9lNTd3MTAmQXfFh6G7r2975L333kOv1zNz5kzsdjsZGRmsWLGC0aNbkP1UCGkdR6fCKMBaB8d3SNdO/gbY9SFdrdVwqFHxm4Klsg9NkRE7Bn8wBkrfvsFfvioOqLfI1Az1VY3vq+TItbSxqIa1+pwMPiEyZe+AX8jXyF4etQK1tRGKcslU2M07iBCx5+fcBh4CFiqKEnzePqcVRbniUsn09HTFE+tgLtlXxDNf7qW63sbs8V25K8Pc7FWrmZmZdOvWWLrLbpVLy+sqZKel8RrofM52bkuDgn9gsGuGkopDjhDqq+WN02ABh03KeewU3Uq/g26T5TC7BTdHcWUdT3y2hzWHSxiWEsZLN6USFXTpBWGtVAdzu6Io6U461njgH4AWeEdRlBeutP+l+vaZPtHaeYqaywV9t6U47Gxa+gmDOoU2Vj06UwEpSy7EauyHV0VrhICoxgdEcmPlrMb3gbEe5YJxd992yuPNo3JuO5GqOit/WHSAz7YX0DM2kFdu7kNK5DXejA4bWE5Kxd7QmKtEa5CTU4aAxsyA5y6HYqtyXUcVGtD7yo1waf3b6qV1dNwCO9+HrW+DTwfoMlEq/I6jzi51byqRgSbm/6w/728+yp+/zWTcq2t4fpqMs/dmhBBa4DXgOqAA2CqEWKgoygH3SuYFaLTU+URD55HIzM3ncbYfnrHYq+R7obmw9q3BX4ZzqjSJFit5j8+5fY0szyzmua/2UVxZx0Ojk3lodErzk3PVVcD+L2HXh9D9Mai0yQgE/yiZDErv4xkWhxBSgetN4FcKT+ZA9nK50i/zG9j1gXwQdZ8q/ZoJg5ucC1sIwe2DEhmaHMajH+/i1x/u5Ns9x/nj1J5EBnpfmodGBgBZjVkqEUJ8hJyDUpV8S7igH3pYZI4X4wxL3qU5t1ubUks9f1h0gEW7j9MlMoDXZ/WjT3PCAR12yFkpFfvBb6RbJKyL9D2Gd2u2NewWDL7Seu82WSaxylsD+76EA1/BrvchOFEWoUi9BUKaloI2KcyPz+4fzH/W5fL3Hw4z9u+reWZiN27pH++NSbBigWPn/V0ADHSTLCoqV6TFSt7VObdbC0VR+GJHIc9/e4CaejuPXdeZ+0d0arr1fjpP5rnYtQCqTkilnjZLWr4xfeHgQe9Q8D9GZ4DksXKb+Fdp2e9eAKtfhNUvSL993zuh+xQ5MrnSobQa7hvRiet7RPH0F3t4+ou9MrPljN6t1JjW5WpBBWcm4+12+6Un5T0EZ0zGn097m2R3d3vb75TzeRwtq+G5r/ex5nAJ/RI78MKMXk3zvdutcGgxbJ8H2Suk7zDlerkMuvP4yxZj8FoMfpD6U7lVFMCej6X//stfwHdPygda3zshousVD5MU5seCewfx8bZj/Hmx9NVP7aglY6jDW/LVFwLx5/0d1/jZBVytkHdmZiYBAQEeP/FqMplIS0tz2vHadSFvN9CulXx5TQNzV2Qxf2MeBq2GP0zpwe2DEq8eOXMqV1rtO9+XaVkDY2Hk0zKJUVBs6wjvboLiYNjjMORRyFsrH3Rb3oZN/5Y++353SR/+Zax7jUZw64AERneN4Ldf7eOTA8VsfmU1T43vyvieUZ7uwtkKpAghkpDK/RZgpntFUlG5NO1Sydfb7PxvYz7/WpFFZZ2Vn/SL47Hrulw2vA84Z7Vve1f63IUGUsbJAsrJYxsXJLVDNBroOEJulhLpytk+D768D76bLX33/e6EiEuH4EUGmnjz9n7867PlfFOg4Zcf7KBfYgeemdiNfomeWZxEURSbEOJXwFJkCOV/FUXZ72axVFQuSbtS8oqi8O3eE7y45CDHTtUyvHM4T0/oSrfoK9TXPJXTaLV/0Gi1x8HIZ6S/vb1Y7U3FP1xWox/80Dnrfus7sPl1iB8krfse0y6y7oUQ9A7X8cCMYXy2vYC//XCYG1/fwA29onlyfBcSQ1ueesHZKIqyGFjsbjnaAuU1DWzKOUV+WTWllnpKLQ2UWuopqaqnrLoBrRCEBRgI8zeetxlIiQygv7kDvoZ2pcaaTbv479Q02PhyZyHvbcjnUHEVXaMCeO/uAQy/XMGLeosMH9z1gVRWQit97P3uguQxXmu1z5kzh5CQEB555BEAnn32WSIiInj44Yede6LzrfvqUjkZvX0efHU/LJkNPW+UtTDj0i8IIdVpNdwyIIHJqTG8vTaHN1fnsHR/EeN7RnFXhpl+iR083Y3jVbRaf/gR9XaFNYdLWJ9dyoasMvYdr+DMmkyTXnNWkcd18KVPfDB2h3JW+R8qqqLUUo/VLn+g1wrSEjowpFMYQ5JDSY0PVvMl/Yg2reTzy6p5b2M+n2w7RlWdje7RgfztJ6lMS4tF+2O/u8Mhl17vWgAHvpbLpDskyWx7abc5N/Xod0/JCu9XwMdua95q06heMOGKiy65++67mTFjBo888ggOh4OPPvqILVu2NP0c14JfGAz5NWQ8BHnrGiOQPoRt/5VL2fvcCr1vufAnRh2PjO3MzAEJvLkmh0+2HeObPSfoERPInRlmpqTGYNJ754P2sjShTzSbq/SJ1uwPdofC8sxiPth8lPVHarApW6SCju/Aw2NSGJIcRrfoQPwM2qs+yBVFoaLWyu6CCjZklbI+u5RXlx/mlWXgZ9Ayulsktw9KpL9ZNQqgDSr5Mks967PL+GpnISsPnUQrxOUtQUWReTUyF8Hez6HiqFz006vR0kwY5BmLlZyE2WwmNDSUnTt3UlxcTFpaGqGhoa1zciHOZS2sq2yMuf8Qlv8Rlj9P7w69wf9nMoGUv0zZHBFo4reTuvPYdZ35alch8zfk8eRne/jL4kxuTo9nbPdI+qiW2zXTGv2h1FLPx1uPsWDzUQrLa4kOMjE2Uccto9IYkBRyTa4WIQTBvgZGdA4/W37ydHUDm3LKWJtVyje7j7No93G6RgVw++BEpvWJbdf1iL2+5XVWO1vzTrHuSCnrskrZ31h4IczfwEOjkrltUOKFKyvtNji6USr2g99AZaGsUp80QubJ7nqDXAzkSq5icQPUuiis7t5772XevHkUFRVx9913O/34TcIUCH3vkNupHNj9ET6b58M3j8A3j8ronG6TZSGK4AT8jDpuG5jIzAEJbMwpY/6GPOnOWZODn0HLoI6hDEkOY1hKGMkR/t5pvTWhT7gCV/WH3cfKeXd9Lov3FtFgd5DRKZTfTurG2G6RrFu7hpFdnFt7oYOfgQm9opnQK5rf3tCdr3cV8t7GfJ79ch8vLD7Ijf3iuCvDjDnM8+Z3XI1XKPk9BeWsK7RycHU2pVX1lFjqpY+uqoHcsmoabA70WkHfhA785vrODEkOo1dsEDqtRlrrJYcbs+Ctl/HsNWUyvUDyWBj9W+g8rvVzXbuJ6dOnM2fOHKxWKwsWLHC3OBDSEUY9w2YGM7J7RGMqhUWw9Gm5RfWGpOFgHopIGExGpzAyOoVRXtPAxuwy1mWVsj6rlOUHZWqkiAAjb97ej7QEz4zM8TSc3R9ySiy8tPQQ3+0rIsCoY+bABGYNSiA5ovXWAfgYtNwyIIGf9o9nx9HT/G9jPh9szuf9TfnMHJjAr8ekEObf/DUsiqJQb68HwKg1eo0x4RVKft76PL7Y2wB7D+Kj1xIWYCDc30hiqC/DO4cxJDns3NCv9jSUZsH2XdIHnL9BRsWALFDcaYy0EJPHysU97QyDwcCoUaMIDg5uVnlBlyMERPaQ28inpIWf+Q0cXiLj7zfOBYSstZk4hOCEwUyI6s6E7l1Bq+fYqRrWZ5WyNquUhBAXj8TaEM7qDyVV9fxj+WE+3HIMo07DI2NTuHdYR/zd6CYRQtAvMYR+iSE8M7Eb/1xxhA82H+Xz7QX8Yngn7h2WdNaNc7ruNHmVeeRV5J19Lasro9pafXarsdZgU2SWTK3Q4qf3u2ALNYWSGJRIUmAS5iAz5kAzHUzuNza8Qsk/NjqBEaYcrhvQE1+lpjFLXaWMgrEUwaHDsL6xYEB1ybkfBsZBp1Fy6b15qLQaveTp6yocDgebNm3i008/dbcoVyako5ywHfJrmZO8cBvkrYf8dbB9Pmx+Q+4ntBCSRHxoCreEJXNL187IxaiXiZxSuYCW9ofqehtvrcnh7bU5NNgczBwgLeXwAM9a7R0RaOL/pvXiZ0OSeOG7Pfxzw2LePXCU2OgiKmz5VDRUnN1Xp9ERHxBPpG8kYT5hFylz4ALlf2bLq8xjTeEabOelSw4yBhFBBPt27qNfZD9Sw1Px1beuEeIVSj5u9RPE7fsMdl5mB98wmUu683gI6yzfR3SH4IR2r9TP58CBA0yaNInp06eTkpLibnGajt50rvIQs2XStOK9Mg956eHG1yMyc6a9AX6+Usbsq1yRlvQHRVFYur+IOV/v52RVPRN6RvHEuC4eWQXMareypWgLm09sZnvxdg5wAN9EG3ZFkFsWQ4Doya090hhq7oY50EyMfww6zbWpRpvDxnHL8QtGBZvyNvH23rd5c8+b6ISObqHd6BfZj4HRAxkQNQCD1rVpk12u5JtbXOGSpN7K4fpQOvfse2FeaWOALB/WTvzpLaV79+7k5OS4W4yWozNAbD+5nY/DDuX5Ms2EylW51v5woqKWOV/v54cDxXSLDuT1Wf08bnWypcHCuuPrWJG/grWFa7FYLeg0OnqF9eKunndJqzoslfVHqvnjov28/W0ddYNCeGJc9DUreJCjgITABBICExgeNxyAVfWrSM9IZ1fJLrYXb2dH8Q4+yPyAefvn4af3Y1jsMMYkjGFo7FD8Dc5/SLpUyTutuELKWI4X6uicOtL5Qqq0HTRa6eZRcQl2h8L7m/J5aekhbA4HT0/oyt1DkzwmhNXSYOGH/B/4Pv97Np/YjNVhJcQUwvXm6xkdP5oB0QPw0V242np8zwCGpoTxt+8PMW9DHt/vL+YPU3swrkeUU2XzN/gzNHYoQ2OHAlBnq2NL0RZWHF3BymMrWZK3BJ1Gx8DogVyfeD3XJV5HgME5k9WutuTV4goqKm2Ag0WVPP3FXnYeLWdYShh/mtaLhFD3T3DbHDY2Ht/IouxFrDi2gnp7PbH+sdza9VZGJ4ymT3gftFdZoe5v1PG7yT2Y2ieWpz7fw33/2864HpH8YUrPK+ezagEmnYnhccMZHjec3zp+y+6S3aw4uoLlR5fzuw2/48+b/8yo+FFM7jSZwTGD0Wv013wuVyv5qxZX8JZC3i3lsoW8L4O7cow7O3d4U/H269tWURSFqjort/1rHQEmPa/+tA9T+8S4PXzw0KlDfJ39NYtzFlNWV0aQMYhpydOY0mkKvcJ6XZN8feKDWfTQUN5Zm8uryw5z/Sur+cPUHkzrE+vS9mo1WvpG9qVvZF8eT3+cfaX7WJSziO9yv2NJ3hJCTCFMTJrIlE5T6BrStdmyuH3i9Wo5t8/g7pzMLeVM7vCm4q4c487OHd5UPO36CiF+D/wcOBOu9UxjUjKEEE8D9wB24NeKoix1i5Aups5qp+B0LRW1Nq7vEcXzU3sS4ue+2qqWBguLcxfzxZEv2F+2H51Gx4i4EUzuNJnhscPRa6/d2j2DXqvhlyM7MaFnFL/5dDePfrybJfuK+NP0XtcUW99chBD0Cu9Fr/BePJH+BOsK17EoZxEfH/qYVcdWsXhG83PiuVrJN6m4goqKh/KKoigvn/+BEKI7Mn98DyAGWCaE6Kwoit0dAroCRVEotTRQXFmHEBDiZ+C1mT3dJsvukt18fuRzluYtpdZWS3JwMk8NeIobkm4g2BTskvOaw/z4+L7B/GddDi9/f5jrX1nDn6b1ZEKvaJec71LotXpGJYxiVMIoKuorKLAUXNOIwtVKXi2uoNLWmAp8pChKPZArhMhCzj1tbO6BFEUhsywTFKDByVK2AIcCoCCMAo2ASmsJGQsynHZ8m82GbkHTVI9dsVNjq8FH58PEpInMSJlxze6Y5qLVCH4xvBMju0Tw+Ce7+eUHO5jaJ4Y/TOlBsG/rjmiCjEEEGYOu6bcuVfJqcQXP4o033uCNN+QiooqKCsxmMytXrnSzVB7Nr4QQdwDbgMcVRTmNnGfadN4+BY2fXURTaryGakJRFMUtPu73332fD979AIDKykpi4+N45/OPADBpwaCVMhmEgX6mfpc9TnNpsDZg0DddScboY0jzS8PUYOLU/lOsZrXTZGkqD/dQ+NZHz8Ldx1mdeYKf9TSQGt409enu+SaX++TV4goX8+KWFzl46uAV97Hb7c1aZt41pCuzB8y+4j73338/999/P1arldGjR/PYY481+fhtESHEMuBSsXLPAq8DzyPt7OeBvwHNyuDVlBqvCR0SqKqq4t+Z/75qn2guV+sTzzz2DM889gzVtfWMHDWKmfc8hK8mlLgOvhfU2q32reZfM/7lNLk8bf6lqYwdDfcUVvDYJ7t4ZbuFW/pH8OwN3QgwXXkuwN3tdfvEq0rr8/DDDzN69GgmT57sblHciqIoY5uynxDibeCbxj/bzDyToiiU11j55QMPkj54GLf9ZAYhfga3R854Mj1jg1j00FBe+eEIb63JZu2RUl76SW8yOoW5W7TLoip5N3A1ixtcF10zb9488vPzmTt3rtOP3ZYQQkQrinKi8c/pwL7G9wuBBUKIvyMnXlOAFlfaaEqfcCZWu4Pj5bW8N38+xceP8e5br+NjbHl0SnvAqNPy1ISuXNdd+upnvr2ZuzLMzB7fFR+DByX9a0RV8u2I7du38/LLL7N27Vo0Gs9YpejB/FUI0QfprskD7gNQFGW/EOIT5II+G/CgN0XWnLHeT1TUsnf3Lha88xrr161VFfw10C8xhMUPD+OvS+Rq2VWHTvLn6b3ISPYsq16909sRc+fO5dSpU4waNYo+ffpw7733ulskj0VRlNsVRemlKEpvRVGmnGfVoyjKnxRF6aQoShdFUb5zp5zNod5mJ7e0mmOnazDotHz70btUlJ9m9OjRan+4RnwNOn4/pQcLfj4QBZj5zmZ+8+luTld7TriUaslfhsqGSvIq8iiqLjqbStRitVBjrcFitWBz2C5KQeqn96ODsQOJQYlE+0WjEZ71DH333XfdLYKKG3AoshD2ycp6BBAb7EOIn4H35s9zt2hthoxOYSx9ZDj/XH6Et9bksOLgSeZM6s7UPk6sDX2NtHslX2+vZ2/JXg6UHSC3Mpe8ijxyK3Ipqyu75P5GrRE/vR86oaPGVkO1tRoF5aL9TFoTCYEJJAUlYQ40k6HLwGq3OmVVnopKU6lpsFFwupY6q51Ak57YYB/0Os8yPtoKJr2WJ8d3ZXJqDE99sZdHPt7F5zsKmBztcKtc7U7J19pq2V2ym+3F29lWtI09JXtocMihVZAxiKTAJIbHDcccZCYpMIkY/xgCDAH46f3w1ftelCjIoTios9VhsVqotlZTVltGXqV8UORV5nGg7AA/5P9At27dOHz6MAatQR5L54uv3tfluaRV2icNNjtFFfWU1zag12pIDPUjyEc1MFqDbtGBfPHLDP63MY+Xlh5iY5adQ44D/GpUMh3ckBaiXSj54upiVhyTGd62F2/H5rChERq6hnTllq63nK3YEurT/Er1GqHBV+97ttpLUlAS6VHpF+zTYG8gMzOTCN8Iam21VNRXcLruNAAGrYEAQwCBhkB8dD5uDV9TlItHJCquxdn/c5vdwcmqesqqGxDImrfhAUa01zjRrvaJa0OrEdw1JInxPaN54r3VvLs+l0+2HeOBkcn8bIgZk771onDarJI/WnmU5UeXs+zoMvaU7AHAHGjm9m63kx6VTlpEmtPyNV8Ng9ZAoF8gokYQHypDrOvsdWf9+6fqTlFWW4ZOozur8Fv75lIUhbKyMkwm16RWVbkYk8lEWVkZBkPLrTuHQ/rdS6rqcSgKHXwNRAaaWuSaUftEy4kKMnFPLyPP/SSDF5cc5MUlB3lvYx6PXteZG/vGodW43qhrU0r+dN1pFucuZmH2Qg6UyZT13UK68VDaQ4xNGEvHYPcVlIiLi6OgoICSkpKLvjtTBb7cVk6hvVAuc0fgq/fFR+fTai4dk8lEXFxcq5xL5VyfKC8vv2ZFancoVNfbqG6wY3co+Og1BProqarSUFXcchnVPuEcukQF8N+7+rMpp4y/LM7kyc/28MaqbGYNSuTGfnEudaV5vZK3OqysLVjLwuyFrC5Yjc1ho1tIN36T/hvGJo4l1t8zSsHp9XqSkpKuul+drY6Nxzcyb/M89tfvp95eT8egjkxNnsqkjpOI8I1oBWlVWoMzfWLVqlXNSu+sKAqbck7xv015LN1fjENRGNE5nPtHdGJQx+a7HFVaj0EdQ/nqwSF8t6+It9bk8MdvDvDS0kNMS4vljsGJdIsOdPo5W6Tk3ZlzO6cih88Pf86i7EWcrj9NqCmUmV1nMqXTFLqEdHHmqVoVk87EqIRRiBxBv4x+LM1bytdZX/PK9lf4x45/MDhmMDel3MSI+BEtqhaj4l0oikJ2STWrD5fw0ZajHDlpIdhXzz1Dk7htYAKJoX7uFlGliQghmNgrmom9otlbUMH/NuXxxY4CPtxylP7mDvykXzxDU8KICfa5+sGagDMs+VbLuV1vr+eH/B/47PBnbC/ejk6jY1T8KKYlTyMjJqNFBXg9kQBDADd1vombOt9EfmU+C7MX8nXW1zy66lHCfMKYnjydGSkziAtQh9NtkRMVtazPKmNDVinrs0sprqwHoFdsEH+9qTdTUmNadQJPxfn0igvirzel8szEbny6rYD3N+fz5OdyDjEpzI+MTqEMSQ5jcMfQa47McZVWdFrObYCc8hy+OPUFz336HBX1FcQHxPNov0eZ2mnqNUXEeCOJgYk8lPYQv0z9JesL1/PZ4c/4z77/8M7edxgcM5hx5nEXFSn2Jg5UH6A2t9YpxxocPdhlxSScidXu4IcDxWzIt7Lj+0OUWBootdSfXbhUWC7/HyF+BgZ3CmVIpzCGJIeqVnsbJNjXwM+Hd+SeoUkcKq5ifVYpG7LL+GpnIR9sPooQMCgplA9/MajZx3aGkndpzm2Ad0veZXfNblJ9U8mIyCDFlIKmVMPe0r1OEN8zuVoO6hu1NzI6ZjQbLRvZWLyRDcc3tJ5wrmKNcw7zeNTjmI1m5xzMxTzwwQ4ANAezCPEzEOZvJMzfSH+zLz+LNZPRKYyuUQFoWiEKQ8X9aDSCbtGBdIsO5N5hHbHaHew+Vs76rDKs9mtbVHVVJe/unNsAKZYUdmzeweQx7Sc1blNzUE9nOnaHnWNVx3Dg3pV1LWHLli0MGDDAKceK8YvBpPP8sD+9VsPSR4ZzcPc2Jl03slXC6VS8C71WQ7o5hHRzyDUf46pK3hNybsf6x3JEe+Raf97m0Wq0mIPM7hajRRzVH6VjkPtCXN1Fl6gAThwUqoJXcRmiJYtuzs+5LYR4FBioKMotQogewAKkHz4GWA6kXG3iVQhRAuRf5uswoPSahfU+1PY6n0RFUcJdfI5LovbtC1Db63wu27db6pN3as7tK92AQohtiqKkX+77toba3raF2rfPoba3dWmRklcU5fYrfPcn4E8tOb6KioqKSstQc46qqKiotGG8Scm/5W4BWhm1ve2H9tZ2tb2tSIsmXlVUVFRUPBtvsuRVVFRUVJqJquRVVFRU2jBeoeSFEOOFEIeEEFlCiKfcLY+zEUL8VwhxUgix77zPQoQQPwghjjS+dnCnjM5ECBEvhFgphDgghNgvhHi48fM22+ZL0db7NbSvvu2p/drjlbwQQgu8BkwAugO3Nma5bEvMA8b/6LOngOWKoqQgF5O1JSVgQ+Y56g4MAh5svKZtuc0X0E76NbSvvu2R/drjlTxy1WyWoig5iqI0AB8hs1y2GRRFWQOc+tHHU4H5je/nA9NaUyZXoijKCUVRdjS+rwIykQns2mybL0Gb79fQvvq2p/Zrb1DyscCx8/6+bEbLNkbkmZQRQBEQ6U5hXIUQwgykAZtpJ21upL32a2gH19mT+rU3KPl2jyLjXNtcrKsQwh/4HHhEUZTK879rq21WuZC2eJ09rV97VJx8WFiYYjabL/lddXU1fn7tp1iC2l7ns3379lJ3JShT+/Y51PY6nyv1bY+ql2c2m9m2bdslv2tqfvW2gtpe5yOEuFwWSJej9u1zqO11Plfq201W8kKI/wKTgJOKovRs/CwE+BgwI7NQ3qwoymkhhAD+AUwEaoC7zkxIXBNr/0avPd9CxafgHwn+UeAfAQFRENJRvldRcTjgxE6I7gOaptc+dWvfVpFUl0JZNliKwHISLMVQ1fheozt3v/tHNN7/kRCWAqZAd0vu8TTHkp8HzAXeO++zM6FBLzTG+T4FzEaGhaU0bgORFaQGXrOUDgeGhnLIWi4v+o+zFkf2guQxkDwW4geC7toK3qp4IZaTkL0CspbJ15oyuGcZxPdvzlHm4a6+3V6xW+HYFnndspZB0Z4Lvxca8IsA/3D58D62GWp+lJJdo5P3e/IY6DQGonqDRp1m/DFNVvKKoqxpnDE+n6nAyMb384FVyBthKvBe4yTDJiFE8PkFRprNiCfYrvSXQx6HHWpOySe9pQiK9krlv3EurH8VDP6QNBy6TIReN4Hee4tbq1yGsmzY9QEc+eGccvALh+Tr5A0fltKsw7m1b7cnbPWw7wt67JsHG/ZDQ9U5RT1mDkSlQkCktNJ9Qy8ejdmtUF1yzsov2CofEMv/KDe/cKnse0yDlHGqwm+kpT75y4UGXS487KIboSmFvOFyha11QBqY09DG1RBcvpeQUzsIyd+Gz6HFNHz3DMdjJlAYOxGrIfjaWugmrlbIu61x1fYqCkEVB4gr+Jqw0i2AoCKoG6eSZnEqpC8W/yRp/Z0CNu9yhkhu7tttB31DBTHHlxBbuBiDtRw/QyjHQzM4FZLG6Q69sev8wE5jgdCyxu1q+IB2OHQZjj6pnJBTO+W9f+Bb9Hs+osYnhoK4yRRFjcahdW+9X3dfX6dNvCqKogghmh2q05RC3tDUyYuJZw4KeeswbHwN8+GPMRd8Bb1vhsEPQkS35oroFtTJqUbsVjjwtRypHd8JPh1g2OMw4OcEB0QRDLi6Mqxn9G0vpOQwbHoNdn8Etjo50sr4FVvyFUaOGkWMU082Tb7YbZD5Nb4b5tL5yJt0LvgE0u+G/j+HwGinnrGpuPv6tlTJF58ZqgohooGTjZ87tZB3sxECkobJrfQIbHoddi2Anf+Tw7jrn4fwLq0mjso14HDA7g9h5Z+hsgBCk+GGv0PqrWDwbQ0JPLNvewNl2fDDHDj4DWiNkHoLDHoAIrrK74+uct25tTroeSP0mCH9+Bvnwtq/w/p/QtptMOo56edvR7RUyS8E7gReaHz9+rzPfyWE+Ag5KVXhNp9lWApM+juMfg62/QfW/wtez4ABv4ARs8En2C1iqVyBgm3w3ZNQuB1i0+GGv0HK9a3tY/X8vu0hWK1WCgoKqKutgbpKqK8C813Q5SE5R6bRQpkCZZkABAUFkZmZ2QqSBUHvZ6HnbExVR4lb9Wv0+76EkbPl/a/Vt4IM7qc5IZQfIieiwoQQBcDvkDfAJ0KIe5CV6G9u3H0x0neShQwz+5kTZb42fENg+BPQ72dykmbT67DnExjzW0i7vVkhdyouovIELPs97PlIhslNfxN63exy5e71fdvNFBw7RoBRYDbZEYoJfGIgMOaySrSqqoqAgIBWk09RFMrKoino8BVJW38PS5+B7fNg/F9kRF4bpznRNbde5qsxl9hXAR68VqFcil8YTPkn9L8HvpsNix6Grf+BiS9BwiB3S9c+sTWQkP8ZbPgS7A0w9DHpdzf6t8rp20zfdgcF26krrcAcG4zQ+UFQHBg8azWrEILQ0FBKSkrgts/g8FJY+jS8fyN0ngDj/yzX27RRPGrF66U4MxR0/hDPAINfgX41UFcOhRVQugFMQTJKoxmYTCbi4uLQ69vH8M+pFO2FL39Jx+K90OUGGPd/bfqGazNY62Dln2DDv2DC54gOZjkpLoS7Jbsk4oxcQkCX8dBplBzNr3kJ/p0B1/0R+t/bJsMuPV7JFxQUEBAQQGhoKIGBLlrd5rBD1XG56k4roENCk60RORQso6CggKSkJNfI1xax22DdK7D6RfDpwN6ez9DrptnulkqlKRTugK9+CSUHpfszIEq6Q70JnRGGPiKj7hb+Gr57AjIXwtTXoEOiu6VzKh7/2KqrqyM0NPTck9gVaLQQFC8jOFCg9DBUFoLiuOpPzwwF6+rqXCdfW+PkQfjPWFj5f9B9Cjy4mbIwddGox2NrgBX/B++MlROssz6Hya82e+TrUQTGwG2fwpR/wfFdMihj+zwZht1G8HhLHnCtgj8fYwCEd5UK3nJSduTgxKuG7LWafN6Oww4bX5OKwuAHP5kHPaa7WyqVptDoVqN4L6TOlJOWbSUyTQjoewd0HAlfPyjn6TIXweR/QpD3p/j34kewi9BoITgBQjpJpVR6GKqK29ST3S1UHof3psIPv4WU6+DBzaqC9wYUBTb+G94eLdMJ3PIhTH/doxT81q1b6d27N3V1dVRXV9OjRw/27dt39R/+mOAEuP1rmPgy5G+QVn3mIucL3Mp4hSXvFkyB0qqvOCr99fVV0lfXTmJrncrBxfD1AzJ3yZS5kDbLYyfoVM6julT63o98L6NQpr4GfqFX/MkfFu3nwPHKK+5jt9vRapsestw9JpDfTe5x2e/79+/PlClTeO6556itrWXWrFn07Nmzyce/AI0GBvwcOo2Gz+6Gj2dB+j0w7k9emwdLVfJXQquDDkkys2FFgZxoCk5U05s2FWudtNy3vCUzBN7032YnD1NxE9kr4cv7oLYcJrwkFZ8HP5jnzJlD//79MZlM/POf/2z5AUM7wT0/wIo/ygii/A2y/0Z6X611Vclfha3btnHPPfewZf1q7KU5DBiRxsfz3qTnoNHePeHkak4elJbQyf0w6EEY+zsZ0aDi2ditcs5k/T8grDPM+gKimm4VX8niPoMrFkOVlZVhsViwWq3U1dU5pxKTzgDX/5/01X95P7w9Slr06fd49APvx3iVkm/KULC5NHko+Ic/UVtTw6yf3kTPxFCZfKmDGfTuzXDncSgK7JgP3z0lJ1dnfgqdr3e3VCpN4VQOfH6vTCfR7y4Y95fWyhPUYu677z6ef/55cnNzmT17NnPnznXewZPHwi83SEX/7eNylDPlX14TNupVSt5dXDAU3LBB5sEuPwqlh+QKPx/vuNgup/a0jEw48LW0fqa/KWOoVTyfPZ/CN49Kn/RP5suc7F7Ce++9h16vZ+bMmdjtdjIyMlixYgWjR4923kn8I+Rq2U2vwbI/wBtDYcbbYB7ivHO4CK9S8k0ZCrqCi4eCwaD3hfJ8qezrqpoUU9+mObpJWoFVJ+TqwcEPtcnVg22O+ipY/CTsXgAJg6XiCo6/+u88iDvuuIM77rgDAK1Wy+bNm11zIo0GMh4C81Dpipw/SebDGv6knL/zUNS7sAmcGQredtttzJ7duCpTZ5CLpwKioe50Y6WaSxdqbtM47LDqRXh3gqzyc8/3MORhVcF7A8d3wpsjZEK4EU/Bnd94nYJ3CzFpcN8a6H2LXLE9fxKUH7v679yEeidehfOHgk899RRbt25lxYoV8kshpDsitDFi5L/jYO3fpOJrD5Qfg/mTYdWfoedNsuPH9nO3VCpXw+GQESPvXCeLedy5CEY97dHWqMdhDJDrBWa8LReKvTEE9n/pbqkuiXpVr0KThoJGf6nsu02WaYwPLYFpr0NYcitL20ooCux8H5Y8DSjS9556i7ulUmkKp3Lgqwfh6AboOsmrJhA9kt43Q1y6dFV+ehdkfiMz2nrQ/1S15J2F0MBN78KMd+Qq2TeGwqY3pNXUlqg8AQtuhoW/guhU+OV6VcF7A4oCW9+B14dC8T5phPz0fY9SRl5LSEe4eymMehYOfAX/HiQNPQ9BVfLORAjo/RN4YBMkDYcls+G9KXA6z92StRxFkREY/x4EuWth/ItymN/B7G7JVK5G+TH43zQZ/pcwEB7YCH1melWst8ej1cOIJ+HnK8A3DD78qRwx1VW4WzJVybuEwGiY+bFcBn58F7w+RBYm8VarvqoYPrkDvrhXLpC5fx0Mul+dXPV0HA7Y8Z7MwXJsK0x6RS5uCopzt2Rtl+hU+MVKWfRm9wL4dwYhZTvcKpJ6l7oKIWSOlgc2Sp/dt4/JFXNHXRTe5Qps9bDuVfhXXzi8BMb+Ae5e0nbnGtoSBdvgP9fBwocgqpd0q6XfrVrvrYHOCGPmwD3LwOBL771/gA9vlfMhbkBV8q4mOB5u/0r66i0n4b/Xy0maikJ3S3Z5FAUOfSddM8t+J11PD2ySRRbUWrieTVWRTAn8zhioOAbT3pChkSFqQZtWJ64f3L+O7I53QO4aeG2grGFcX9WqYqhKvjU446t/aJtcPHFgIcxNl6XHrB5WbKTkkKx9+eEtMu591udw64cyYZOK52Krl5W2/tUP9n0GQx6Bh7ZDn1vbvFttzpw5vPrqq2f/fvbZZ/nHP/7hPoHOR2fkWMKN8Ktt0PPGxmuUDrs+bDX3rRpC2ZoY/GD0c9KN8/1zMhHUtnkw+AFIu9292S2L9sGmf8Oej0HvJ/OWDPi5mlrZ06mvgp0fyOX25Uehy0SZVMtdD+XvnpJx41fAx25rXkx+VC+Y8MJlv7777ruZMWMGjzzyCA6Hg48++ogtW7Y0/fitQWA0TH9DJjdbMhu+ul/ebxm/likkXHifqUreHXQwy/C1nNWw6gVY+gys/Av0uxMG3ieLF7QGDgdkL4eNcyFnlUzVkH6PjBLwC2sdGVSujYpC2PKmNBLqKyB+IEx6FZLHuFuyVsdsNhMaGsrOnTspLi4mLS2N0NAr5713G/H9pa9+z8dy4eQX98IPc+R93+9OWQzdyahK/irMmTOHkJAQHnnkEUAOBSMiInj44YdbfvCOI+RWuF1W39n0uty6TyXQMAAcw10z1K6rgP1fyVJ8pYdkaoaxv4e+d6px056MwyH7ypY35epKxQHdp8pUzvH93S2d5AoW9xlqXZBq+N5772XevHkUFRVx9913O/XYTkejkW603j+FrB+kkbXsd7D6r3KU3/8eGcXmpEly71LyTRgKNhtPGArG9oOb/gPX/QE2vwnb59O3/gs4+FdZoSZ5rHwNiLy24zscULQbspZB1nI4tgUUuyzkMeNt6D5N5uJR8TwsJZC9Ql677BVQUwqGABh4Pwz4haxWpsL06dOZM2cOVquVBQsWuFucpqHRQOdxcjuxR7pvtv1XPsSDE6DTGHnvJw1vkSvXu5S8G2jVoWBQHFz/PIx4kgNf/Z3uhhPy5t73mfw+qheYh0FgLPhHSqXv37gZ/GS5NkuRjOKpanwtPSTzX9eUymNE95FRMinjIH6AGlLnbhQFndUi6xOcuXaWYlkTN28dnNgl9/MNbbzpx0CXCWAKcqvYnobBYGDUqFEEBwc3q7SgxxDdW/rsx/4eDn4rjbG9n8L2d2UARPxASLleJv9r5j3rXUq+CUNBV9DqQ0FjACcjR9B95EhphRfvlRc9a7l80tuaEZHjHykVQ/JY6DgK/MNdJrZKM2mogb8mMdRWB+t/9J3WKEd4o5+T1y4qtc1HybQEh8PBpk2b+PTTT90tSssIiJLumv73gK0Bjm2W82ZZy+DQYmmgNRPvUvJuwq1DQY1GrqKLToVhj8kY9roKae1ZiuVqVEsxNFjAL7zRwo+SRQ78I9WSe56MwRcG/ZKsE+Ukpw6R1+zMtTMFq6OsJnLgwAEmTZrE9OnTSUlpQzWEdQZIGia3sb+XYbLXchjnStU28aihoBDgEyy38C7ulUWl5Yz9PQWrVpHce6S7JfFaunfvTk6Oe1aTtirXaLC5fPwnhBgvhDgkhMgSQjzl6vO5gjNDwXvuucfdoqh4CG2hX6u0D1yq5IUQWuA1YALQHbhVCNHdled0NgcOHCA5OZkxY8a0raGgyjXTFvq1SvvB1e6aAUCWoig5AEKIj4CpwIHmHOR4eS2WWgcn6ywuEPHKGMMT+GHzHgCySy5//pKqen7/5kannbe8vJbXDznveJ6Os9rbPSawNWoBO6VfA/xh0X42HPDua/1gmg+GK9wbP8Zuc8+97Ox7tKm4u2+7WsnHAucXPywABp6/gxDiF8AvACIjI1m1atUFBwgKCsKnoQEFBbvNc8vqORwOysvLnXY8u93u1ON5Os5qb4GjklWrSlou0JW5ar+Gq/dtgIKCeq+/1g6HsVn3prvuZWffo03F3X3b7ROviqK8BbwFkJ6erowcOfKC7zMzMzFHBFHlglVyzsRe7sPS2ROcdrxVq1bx4/9FW6YttvdqfRtg5Ejvb3tmZiado5set++ue9nZ92hTcff1dfXEayFwfvn3uMbPVFS8GbVfq3gNrlbyW4EUIUSSEMIA3AIsdPE5VVRcjdqvPYg33niDPn360KdPH5KSkhg1apS7RfIoXOquURTFJoT4FbAU0AL/VRRlvyvPqaLiatR+fXle3PIiB08dvOI+dru9WetNuoZ0ZfaA2Zf9/v777+f+++/HarUyevRoHnvssSYfuz3gcp+8oiiLgcWuPo+KSmui9mvP4+GHH2b06NFMnjzZ3aJ4FG6fePUG3njjDd544w0AKioqMJvNrFy50s1Sqah4HleyuM/gionXefPmkZ+fz9y5c5163LaAVyn5pgwFm8vVhoKgDgdVVDyZ7du38/LLL7N27Vo0ahK3i1D/I81AHQ6qqHgec+fO5dSpU4waNYo+ffpw7733ulskj8KrLPmmDAVdhTocbDoOxYHVYcWgMSDUTIpeg6IoWB1WNEKDTuM9quHdd991twgejfdcSTeiDgelAiivL+do1VGOVh7lWNUxjlYd5YTlBDW2GmqsNVRbq6mx1VBrqwVAIzT46nzlppdbgD6A2IBY4gPiSQhIICEwgfiA+KucXaUl1NvrKawq5GhV43WrPMoxyzEq6irktbPJa1drrcWm2AAwao346f3w0fngq/fFT+dHuG/4RdctwjfCza1TuRqqkm8C5w8HAdLT03nnnXfcLJVrOV13mj0le9hdspvdJbvJLMukylp19nuBINovmmj/aKJ8o84q8TMK3ag1UmurpcZac/YhUGOroaK+gtXHVlNWV3bB+QK1gfRd0ZfU8FRSw1PpGdYTH51Pazfb67E6rBw+fZjdJ+V121u6l4KqAhSUs/v46/2JD4gnxCeEaF00fnq/s9fNR+eDXbFTa609q/zPPMCPnD7CymMrsTlsZ49l1Br5e/e/E1wdjK9O/l6v0asjOA9CVfJNoD0MB0/XnWZd4To2ndjE7pLd5FfmA6AVWjp36MyEpAmYg8wkBCQQHxhPnH8cBu2114WttlaftSqPVh1l46GN5FXkserYqgvOmxaRxpDYIfSP6q8q/Utgc9jYW7qXtQVr2XFyB/tL91Nnl5XDwn3CSQ1PZXLHycQHxp+1woONwdeshO0OO0U1RWdHc/mV+QgEp2pPcYpTAOg0urMPjQBDQIv6ibNQFOXqO7VRVCXfTlEUhcxTmawtWMuawjXsLdmLgkKwMZg+EX2YljyN1PBUeoT2wFfv6/Tz++n96BrSla4hXQFILktm5MiRF40gvsz6kgUHF2DUGukf1Z9hscMYHjecuIA4p8vkLZx5IK8tXMv6wvVUNlSiFVq6hXTjxs43nh0NRftFO92i1mq0xPrHEusfy2AGA5Cbm4u/4o9fsB+1ttqzI7jKhkqKqoswaA0EGALw1/u7pC9dDUVRKCsrw2Qytfq5PQFVybcj7A47O07uYGneUlYcXUFJrcxo1zO0J79M/SXD4obRPbQ7GuG+eYcOpg6MiB/BiPgRgPQnby/aztrCtawpWMNfCv/CX7b8hY5BHbku8TrGmceR0qHt5/kvri7m+/zv+T7ve3aX7EZBIcQUwsj4kQyLG0ZGTAaBhkC3yBYXF0dBQQGlpaUXfO5wOKiz13Hadppj9mMoKAgh0KPH3+iPUWtsNbeOyWQiLq59GgZeoeQ9fajlyfI5FAe7S3azJHcJP+T/QEltCSatiWFxwxgZP5KMmAzCfMLcLeZlMWqNZMRmkBGbwewBs8mvzGdtwVpWHlvJ23vf5s09b9IpqBPjksYx3jyepKAkd4vsNEprS/k+73uW5i1lx8kdAHTp0MVjHshn0Ov1JCVd+f9eY61h84nNrC5YzdLspVgcFnx1voxKGMW4xHEMiR3iEW6dtojHK3mTyURZWRkGg2d2AE8dCh46dYhvc75lce5iimuKMWqNDIsdxjjzOIbHDXfLsNkZJAYmktg9kVndZ1FaW8oP+T+wNG8pr+96nX/v+jedO3Tm+SHP0z3UOws1WRos/JD/A9/kfMPWoq0oKCQHJ/NgnwcZZx7ntQ8xX71U6KMSRjGsfhi+XXxZmreUZUeX8W3OtwToAxiTOIbJHSeTHpXuEQ+vtoLHK/kzQ8Hy8nKPU6Rn8JSh4MmakyzOWcyinEUcPn0YndAxJHYIj/R7hFHxo/DT+7lbRKcS5hPGrV1v5daut1JcXcwP+T/wff73XhfWZ1fsrClYw6LsRaw8tpJ6ez2JgYncl3of483j6RTcyd0iOhWt0DI4ZjCDYwbz7KBn2Xxi89mR5ldZXxHlF8UNSTcwudPkNtd2dyA8ydWQnp6ubNu27aLPvzzyJUv2LCE6OtoNUrmHEydONKu9hZZCthRtwaE46BXWi0kdJzE+aTwhphAXSuk8WqOwghBiu6Io6S49yWW4VN+ubKjktZ2vsfDwQiwOC8HGYMabxzO502R6hfVqs2GIl7vWtbZaVh1bxaLsRWw4vgG7YqdbSDevHZWdobn38uUI9w3nwT4PXvK7K/Vtj7fkAQ6eOsi+2n0cKTjiblFajfqG+ma119/gz7297mVSx0leO6Rvb/hofVh2dBnJpmTuHng3Q2OHotfq3S2W2/DR+TAhaQITkiZQWlvKktwlLM5dzJqCNe4WrUU0916+HImBidf0O69Q8k8PfJrBtYO9ukRac3F3yTAV16PX6lly4xLWr1nPyISR7hbHowjzCWNW91nM6j7L3aK0GHffy+rshoqKG9Fr2q/lrtI6eJRPXghRAuRf5uswoPQy37VF1PY6n0RFUcJdfI5LovbtC1Db63wu27c9SslfCSHENndNmrkDtb3th/bWdrW9rYvqrlFRUVFpw6hKXkVFRaUN401K/i13C9DKqO1tP7S3tqvtbUW8xievoqKiotJ8vMmSV1FRUVFpJqqSV1FRUWnDeIWSF0KMF0IcEkJkCSGecrc8zkYI8V8hxEkhxL7zPgsRQvwghDjS+NrBnTI6EyFEvBBipRDigBBivxDi4cbP22ybL0Vb79fQvvq2p/Zrj1fyQggt8BowAegO3CqE8O6MRRczDxj/o8+eApYripICLG/8u61gAx5XFKU7MAh4sPGatuU2X0A76dfQvvq2R/Zrj1fywAAgS1GUHEVRGoCPgKlulsmpKIqyBhoLZJ5jKjC/8f18YFpryuRKFEU5oSjKjsb3VUAmEEsbbvMlaPP9GtpX3/bUfu0NSj4WOHbe3wWNn7V1IhVFOdH4vgiIdKcwrkIIYQbSgM20kzY30l77NbSD6+xJ/doblHy7R5Fxrm0u1lUI4Q98DjyiKErl+d+11TarXEhbvM6e1q89Kk4+LCxMMZvNl/yuuroaP7+2VdnoSqjtdT7bt28vdVeCMrVvn0Ntr/O5Ut92Sj55IUQeUAXYAZuiKOlCiBDgY8AM5AE3K4py+krHMZvNXKoyFLg/J3Nro7bX+QghLpcF0uVcrm832BxsWLdGvdZtGHf3bWcWDRmlKMr56TTPzCi/0Bge9hQw24nna/s4HFBxDMqy5FZ6RP5dXyW3BgvUW+R7ewMY/MHo3/gaIN/7dICQThCaDGEp8tUn2N0tUwHsDoVuc5Zg1ChEbV9FuL+RsAAj4f5GwgOM9IwNYoA5BB+D1t2iqriRihorG7JLqaqzcXP/+Gb/3pWVoaYCIxvfzwdWoSr5y6MocDoPjm6E/PWkH14L64rBVnduH2MgBCeCKRACY84pdWMAaA3QUC2VfkPjQ6DeAuVH4cBCUOznjuMXDmFdIGEQJGZA/AB5DJVWxeZw8MiYFHYdysEYFEBpVQMHjldSWlVPVb0NAINWQ7/EDgxNCWNochg9Y4PQatpm7VcVSb3Nzvb806w7Usr6rFL2FlbgUMAc6utWJa8A3wshFOBNRVHeookzykKIXwC/AIiMjGTVqlWXPIHFYrnsd96KqbaYkFM7CKo4QHD5fowNZQBYdQFU+3XidIc0anxjqfGNpdYnhgZDMFypuLNP4/YjhMOKqa4Y35pCfGsK8ak9jv+pPALy/45Y+zIKGqoCOlIR1IPy4B6c7tAHh9bokjZfjrZ4fa+GUafloTEprNIWMnJkvwu+q663sS3/NOuzSll7pJSXlh7ipaWHCPLRM7FXNHdlmOkSpT6Y2wqKorAl9xTvbcxn+cFi6qwOtBpBWnwwvx6TwtDkMFLjg6/p2M5S8kMVRSkUQkQAPwghDp7/paIoSuMD4CIaHwhvgaxofznfVZvw4ykKFO+DzG/g4LdQvFd+HhANnUdKqzohA314VzLXtIKftt4CBVsQ+RsIzN9IYMES4gu+Bp0PJI+BrjdA5/HgG+JaOWgj19eJ+Bl1jOgczojOci6t1FLPhuwyVh08yRc7Cvhwy1EGdQzhrgwzY7tFotOqgXLeSG2Dna92FTJ/Qx4Hi6oI9tXz0/R4hncOZ0BSCAGmlpeHdIqSVxSlsPH1pBDiS+RCj2IhRLSiKCeEENHASWecy+tQFCjYBvu/hIPfQHk+ICBhMFz/J+gyAUI6XtlCdxVGf+g0Wm4AtnrpLjr4beP2DQitfPh0mww9ZoC/W4JT2j1h/kampMYwJTWG307qzifbjvHexnzuf38HMUEmbhuUyG0DEwj2NbhbVJUmUFhey7z1uXy89RiVdTa6RQfy4o29mJIa6/Q5mBYreSGEH6BRFKWq8f31wB+BhcCdwAuNr1+39Fxexel82PMJ7P4QTmWD1ggdR8Lw30DnCZ6pLHWNMnYcCRP+Csd3nlP43z0JS56G5LGQeot8OOkv4RtScTkd/AzcN6IT9w7ryPLMYt7bmM9LSw/x5upsfj0mhdsHJ2LUqZO1nkhFjZXXVmUxb30edkVhfM8o7sowk57YAeEiQ88Zlnwk8GWjgDpggaIoS4QQW4FPhBD3IAsY3+yEc3k2dZXSYt/zMeSvl5+Zh8Gwx7CmTKSgpIK6ujo4VsrV6voGBQWRmZnpepnPw2QyERcXh16vlyOL2L5yG/NbOHkQ9nwkH1yf/UxOAveYBqm3ylGJO0Yi7RytRnB9jyiu7xFF5olKXvjuIP/3bSbzN+Yxe3xXbugV7TLFodI8GmwO3t+Uzz9XHKGi1sqMtDgeu74zscGuN5RarOQVRckBUi/xeRkwpqXH93gUBY5tgR3zpYK31kBoCoz+LfS+GYITACjIzSUgIACz2dykG6+qqoqAgNabWFMUhbKyMgoKCkhKSrp4h4iuMPb3sl15a2H3x7D3c9jxngzR7HsH9JkJ/hGtJrPKObpFBzL/7gGsOVzCnxdn8qsFO3knPpdnb+hGf7Pr51RULo2iKGwtsvG7V1aTX1bDkORQnpnYjR4xQa0mgytDKNs21WXSst3xHpQclOGMvX4ilV1sv4ss27q6uiYreHcghCA0NJSSkpIr76jRnnPp3PAyHPha/g+W/Q5WPC/dOH3vgk6j5L4qrcrwzuEMSQ7j8x0F/O37Q/zkjY1M7RPDnEndCfVv3Yip9k5OiYWnv9jL5tx6Okf68+7P+jOyc3ir6wBVyTcHhwNyV0uldvAbuQAprj9M+ZeclDT6X/Hnnqrgz9Bs+Qx+0nrvMxNKDsn/y+4PIXMRBMZB2iy5BTc/trc9YLVaKSgocIlrrpcf/HdaDJY6G1X1Nnbv3U+Qrx5fQ/Nu+QtceCpNwmp38PbaHF5ddgSjTsOd3Q389rZhbouAUpV8U6g8Abvehx3/k9ExpmBIvwf63g6RPdwtnWcQ3gXG/QnGzIFDi2H7fFj9Aqx+UU7W9r1DWvlaVVmcoaCggICAAEJDQwkMDHTZeeqsdgpO11LTYMNk0hMbbMLQhInZq7rwVC5iX2EFT362hwMnKhnfI4o/Tu3BgR2b3Briqir5y2FrgCPfw8734chSUByQNFwqsa6TQG9yt4Seic4IPabL7XSe/P/tfB8+uV2utO0zE1JnSh9/O+eMC89isbj0PCa9lk7hfpRVN1BUUcfhYgtRQSZC/QxXHL012YWnQp3VzivLDvPO2lxC/Ay8Masv43tGA3DAzbKpSv58zsS07/kI9n0OtafBPxKGPAxpt0NoJ3dL6F10MMPo52DEU5C9XFr3G+bC+n9AdB8ZitnzJs8MJ20lWsuFJ4QgzN9IoElHYXkdx8trqaixEh/ic0Wr3tNdjJ7A7mPlPPrJLnJKqrmlfzxPT+xGkI/njFhVJQ9Qlg37vjgX064zydWeqbdCx1Ggde6/6Q+L9nPgeOUV97Hb7Wi1TZ+47B4TyO8mX9l1tHXrVu655x62bNmC3W5nwIABfPzxx/Ts2bPJ57kmtDroPE5ulpOw9zP5IF3yFCx9FpLHEq7vBfXpV53XUGkZBp0Wc6gvp2usnCiv5XCxhZhgHzr46lWF3kysdgdzV2Qxd2UWkQFGPrh3IEOSw9wt1kW0TyWvKHBi17n0AiWNk17mYTD0Ueg+VSYBa2P079+fKVOm8Nxzz1FbW8usWbNcr+B/jH8EDH5AbiczYbeMve9RtRQO/UtG5XS9AbpMBD/Pu2HaAkIIQvwM+Bu1HDtdS8HpGipr9cR28EGvpkdoElknLTz2yS72FFQwIy2W303p4VHW+/m0HyVfVwFHN0PWMqnYKwtAaCBxCPR7USqWVooCuZrFDa6Lk58zZw79+/fHZDLxz3/+0+nHbxYR3eC6P8CYOexc+DpppkL54D28BMTDED8Iuk6UcyGRPd0SkumsWgmXxVqHcNjAYZf9sRWtaYNOS8cwP0otDRRV1nGk2EJsBx+PVVaegMOhMH9jHi98dxBfg5Z/39aXib2i3S3WFWm7St5yEvI3yO3oBijaByjSFdNpDIx6Ribf8gt1t6StSllZGRaLBavVSl1dnWdU6NFoqQjuCSN/BeP+DEV7z+XO+f45uY8xEOIHQuJg+WCOSZOTvK2Da2olKAqUZOIP/OG7Cg6UWBu/EFLZC9Go+M/baPpD4GouvPPddxo/waCBA3nhtf8woG8fYoJNaDWqVX8+JypqeeLTPazLKmVUl3BevLE3EYEuCMBw2GXdiNIjjdthWU/CGAi3Lmj24bxXySsKWGvBUnyuoEbZkcb3WVB1XO6n95Wx7COflgoiNh0Mvu6V3Y3cd999PP/88+Tm5jJ79mzmzp3rbpEuRAiI7i23UU9DRQHkb5QP6vwNsPwHuZ/WIBO7nS2GknKuKIrrs2Y6r1ZCcCJ1tTVgsIG2BlAaK4AqMqLLYb34N0IrRzUarXx/jfzYffezO29nSP80Sqrqqa63ERfii7/Re1WEs1AUhYW7j/Pbr/Zhcyj8eXovbh0Q77w5jLoKOLoJ8tbJPl60F+z15743BUNYZ4hMuKbDe8cVXPMSaTs+hf3ivKIYlgsLYQCYguTN3nGEdAUkDoHoVDU2u5H33nsPvV7PzJkzsdvtZGRksGLFCkaPHu1u0S5PUBz0/oncQK40ProRCrbIh3npYenecdjO/eauxWAe4iwJXFYrISgoiCq7HrvWn8euu0xIqaIgFBsahxWNowGNw4rWXofGUY8AFAR2rRG71gebzheHxnSBy6eqquqKjXv00UcZOXIkRqORZcuWodXY0PppKK1VyCmxEGQQ1NbVOTXXvzfVDrA0KLx3oJ4tRXaSgzX8vJeRyNocVq/OafoxftRe4bDS4fQeOpzeSXD5fvwteQgcOISOqoAUKqMnNNaRiKPGNxarPvDcNb2G/5vLlbwQYjzwD0ALvKMoygvNP4gGu9YHwhJkBaPzy9z5hZ2z4nxD1URZV+COO+7gjjvuAECr1bJ582Y3S3QN+IVCt0lyO4PdJhepnRnNRXRz5hldVishMzOTgICAa5t/cdigoRpRb0HXYEHXcBpjw2nQ6KSxYwqW94i4ssvlxIkT1NTUYLfb0ev1+Pn5EQCEBCmcqKjlVHUDlQ0Q0bkv3WOcE4zgLbUDVh06yR8/28OpagdPjOvCfcM7XtOiplWrVjFycLqcD8xcBIeXSkNVZ5Jehn43g3kImrj+BOl9cHZWG5cqeSGEFngNuA4oALYKIRYqitK89QHDHmePvZ9XdAwVN6DVyTUMoZ2A8U49tMfWSjirzBtVgsMms6DWVcj1HTVl0pVjCpR1fo2BlzSALue+02oEcR18CTTpKS2Aqa+t4+ExKdw3olObj8CpqrPyl+8OsmDzUVIi/PnvXf3pGXsNqrehBg5+Q8+978C63bKUp2+ozN7abTIkjWiVRZWutuQHAFmNmSoRQnyE9Ge6exGYispV8apaCRqdnIvwDZE5lhqqoLb8nNLX6MCn8fvGOgBNcd8F+uiJDDByfY8oXv7+MN/sOcFfb+pN77hg97TTxSw7UMxzX+2juKqOe4cm8ZtxXTDpmzHvoSjSnbhrAez/Chqq8DeGQr+7pGKPH+T0dTdXw9VniwWOnfd3ATDw/B3aS43XoKCgq/pHz8dutzdrf2dR52T/a1Px0OvrnbUSNJpzVr7ikBZ+7SmoLoHqk7K8o28Id9w2s0nuO41G8NrMvkxNLeK3X+9j2mvruWdoEo9d18XpVYzcRamlnt8v3M83e07QJTKA12f1JS2hQ9MPUH4Udn0oF1SezgW9n7TY+8xkU24DI0e5b97L7ROv7aXG6xn/a1Np7XzyZzCZTKSlpbX6eT3x+raJWglCAz7BcrPbpFVfWwaVhVB5XPru/ULl/NZV5rOu7xHFwI6hvPDdQd5em8vS/cW8MKMXGR64yrOpKIrCFzsKef7bA9TU23nsus7cP6ITBl0TXFJ2q/Svb38XspbLz5KGwcinpNVuaAxPzlvlMvmbgquVfCFw/gqjuMbPVFRUWhutTuYJ8g+X4cc1ZVBzCupOy/KUfqHgE3pFd0KQj56/zOjF1D4xPPX5Hma+s5npabE8Ma4LMa1Q5ciZHDheyZ8WH2B9Vhn9EjvwwoxepEQ2wbA6nS/Tau98HyxFEBADI2ZD2m1niwR5Eq5W8luBFCFEElK53wLMdPE5VVRUrobeR4anBkRDXbkMTa08LtNqN8G6H9QxlCWPDOdfK47w9tpcFu89wd1Dk/jlyE4Emjw7ZPlERS1/+/4wn+8oIMhHzx+n9mDWwEQ0miuMZOxWGaq7fZ602oWAlOulrz35ulb3szcHl0qmKIpNCPErYCkyhPK/iqLsb+5xVh48ybJ8K5Y9xwnzNxLmbyTc30igj05NqqRyATa7A61GqP2iqWi0MuLDN/Ty1r3DfsmfmvRanhjXlZkDE/nb0kO8viqbj7ce45GxKdw6IMHjonAs9TbeXJ3N22tzcDjg58M68uDIZIJ8r/BQOp13ntVeDIGx0mrve7t8SHoBLn/8KIqyGFjckmN8sbOQRZkNfJC584LPDVoNCaG+DO4YypDkUAZ3DLvyBVNpcyiKQtZJC+uzSlmfXcamnDK+fnAIHcPVbJbN5qx1H9No3Zc2Wvcl8NnfZbrtpBFyYvc8YoN9+PtP+/CzIUn8afEB5ny9n3nr8/j1mBQm9opumn/bhVTVWfl0WwH/XpVFqaWBKakxPDGuC/Ehl1n5bquHQ99J5Z69otFqH9dotY/1aKv9UniFtK/+tA/XhZTTObUfpVUNlFrqG7cGDhZV8vmOAv63KR+NgJ6xQWR0CmNUl3AGJIV4pkX33VNy6fIV8LHbmteZonrBhCuvM5szZw4hISE88sgjADz77LNERETw8MMPN/08HkBVnZWl+4ulYs8q5WSVXAIeH+LDDb2iPfOaexMazblwTGstFNXKhTz7PpdlHVN/Kgu/hCVf8LNecUF8+PNBrDh4kr98d5BHPt7F/32bycyBCdw2MIFIV+R5uQLZJRbe25DHZ9sLqG6wMyAphHfu7Eaf+OCLd1YUKNwBuxfIVNh15dJqH/mULGHpJVb7pfAKJa/VCAKNgq5RgRB18fcNNge7C8pZn1XKhqwy3lmbwxurs0mJ8Of2wYlMT4slwMP9hK3B3XffzYwZM3jkkUdwOBx89NFHbNmyxd1iNZlDRVW8tzGPL3cWUtNgJ9TPQEZyGEM6hTIkOezylpnKtaP3kYupHj8Mh76VYYLrXoG1f4O4AdDnVug+7Wy+ICEEY7pFMqpLBGuOlDB/Qx7/XH6Ef6/MYkKvaO4cnIiiXHKBsFOwOxRWHjzJ/I15rD1SikGrYVLvaO7IMF9auVcUwN5PZVx76eHGWhKTZAWzjiPbRDF6r1DyV8Og09DfHEJ/cwiPjIXqehuL957gf5vymfP1fl787iDT+8Zyx2AznZsye+5qrmJxA9S6IITSbDYTGhrKzp07KS4uJi0tjdBQz87CabU7WLq/iPc25rMl9xQGnYbJvWOYNSiB1LjgK0+WqTgPvQl63ii3yhOw9xOp8L95FL79jQwd7DpJboHRaDSCkV0iGNklgrzSav63KZ9Pth1j0e7jhPsIrivfy9DkMDI6hRLsa2iRaCcqalmfVca6IyWsyyqj1FJPZKCRx6/rzC0DEggP+FG20tIsyFwos5wWbpefxQ+Cyf+Use0mZycWcC9tQsn/GD+jjp+kx/OT9Hh2HSvnvY15fLKtgPc3HWVochhPjOtC6qWe6u2Ae++9l3nz5lFUVMTdd9/tbnEuS4PNwYdbjvLayixOVtUT18GHpyZ05eb0eEL8WqYUPJImuPCazVVceNfsvguMliUxM34ti+8cWCiV5uLfyC1ugMwtlHI9hHfFHObHbyd157HrOrNw93E+WXeAhbuOs2DzUYSAXrFBDEkOo1t0IOH+RsIDDIT7my4IrHA4FE7XNFBiqae0qoGTVXXsKahg7ZESskuqAQj1MzAkOYxxPaK4vkfkuYlfuw1O7JbRMZmLzhUJiukrazZ3n9amS3u2SSV/Pn3ig+kT34fnbujOx1uP8c7aHKa+tp5JvaN5YlwXEkMvnU+9wd7AsapjFFUXYbFaqLHWUG2tlputGpvDhp/eDz+dH756X/le70ewMZjEwEQ6mJqxWq4VmT59OnPmzMFqtbJgQfNzU7saRVH4du8JXlp6iPyyGgYmhfCXGb0Y2SUCrWq1O5UWu++EkHn9Y9Kksiw5JJXowUXwwxy5+YZCwmAwD8UvcQi3pvckuiaHIcOGs6egnLVH5LzK22tysDkudOMYtBpC/Q3YHQpl1Q3Yf/S9Sa9hQFIot/RPYEhyGF2jAuTIztYAhVvOpe49thkaLG4rEuRu2rySP0OIn4FfjuzErEEJvL0mp3HFXhG3DohjXJqNwtoscityyavMI68ij+PVx3Eojksey6AxoNVoqbXVXvZ8QcYgzIFmuQWZ6Uc/bA4bOo17/+UGg4FRo0YRHBzcrBqyrcHG7DJe+C6T3QUVdIkM4N27+jOyS3j7mEhtggvP2TjVfScERHSV24gn5DL/3DWQtx7y10nXCIApiFRTInpLf/qFdaafOZlH0jtTbUrneEU9JVX1lFjka6mlgZKqenQaQXiAkTB/A+EBJsL8DYQFGIkL0mOsPAZlhyB3EWxtLLJxYjecuTfDu8mC8YkZMjKoHZaUbDdK/gx6nZ1hvSshOJtFh9fzxalDfLmyAQCT1oQ5yEzPsJ7c0PEGzEFmYv1jz1rp/np/fHW+6Bvz0zsUB7W22rMWfo21hrK6MvIq8uTDojKPDcc38HX217za/VUOnTqEUWfEVyct//OP1Vo4HA42bdrEp59+2qrnvRK5pdW8sr2O3Us2ER1k4qWbejOjb5xqubcCLnPfBSfIqJS0WfLv8mONldrWoz2yUUaw1Fec3d1P50OKfwQpxkCZIvlMSnGTv8y/U2GBk1XSIq+3QH0VVJ24sKiKX7gsrtHvTmmxJ2a0S6X+Y9qFki+uLmblsZUsP7qc7cXbsTqsCAQpHVLoHzCZrKMR7DwSRGRIDE8NS6VfYtMqC2mE5uwD4HyGxw2/4G9Lg4Xsw9lE+EZQY6uhor6C03WyJKhBayDAEECgIRAfnY9LrdYDBw4wadIkpk+fTkpKisvO01QabA7eXpvDP5YfQYuDpyZ05a4Mc/Oy/rkJp9RJ8ABazX0XHA/BP4XUn7Jj1SpGjhghE6adX96uukQq7/oqWb6zIUe+F9pz9SOMAVKZG/zl3EBY58Z6EskyCkjlItqsks8pz2HFsRWsOLqCvaVyQsscaGZm15mkR6WTFpFGkPHcLPqKg8X89qv93Pj6RmYNSuDJ8V2dtjzb3+CPQWsg3DcckH7nOnvd2RHAqbpTlNWWodPoCDAEEGAIcEmYWffu3cnJaXpFG1ey4+hpnv58L4eKq7ihVzTXhZYzbYR3TH45rU6CB+A2950Q4B8hN+dV8VK5BG1KyRdXF7M4dzELsxeSVZ4FQM/Qnjzc92FGx4+mY3DHy/52dNdIBj4ayt++P8y8Dbl8v7+YP07twfiezq/ELoTAR+eDj86HMJ8w7A47FquFyobKs1a+QBBkCSLYGIyvzrfN+KWr6qy8tPQQ/9uUT1SgiXfuSGds98unmPZQ2kydBE9036k4F69X8jXWGpYfXc6i7EVsOrEJBYXe4b15esDTjE4YTZTfJVZPXQY/o445k7vLDHtf7OX+93dwffdI/m96TyICXLdaT6vREmQMIsgYhENxUG2tpsxSRmV9JeV15eg1eoJMQQQbgjHqjFc/oIey8uBJnv5iL8VVddw52MxvxnXx1kLRV62TAE2s8VpV5bbaAQcPHuTmm29m0qRJREVFXVYGZ9cY8NDaAS7D3e1t0R0mhPg98HOgpPGjZxpz1SCEeBq4B7ADv1YUZWlLznU+iqKwu2Q3nx3+jO/zv6fWVkusfyy/6P0LJneaTGJgYouOnxofzMJfDeE/63L5+w+HGffKGv5vWi9u6O18q/7HaISGAEMA6MHXz5cqaxUV9RWU1pRSWlOKj86HDqYOBBoC0XrJaryqOit/+jaTj7Yeo3OkP6/PymheQQYvxaU1Xp1A//79yc3Nvep+zq4x4Im1A1yJu9vrDDPqFUVRXj7/AyFEd2Ra4R5ADLBMCNFZUZRLp7NrIqfrTrMoexFfHPmC7IpsfHW+TEyayOROk0mLSENzlaLFzUGv1XD/iE6M7RbBY5/s5sEFO1iyP4bnp/Zo8Qq9pqLVaAk2BhNsDMZqt1LRUEF5XTnHLccpEkUEGaU7x9UTti1hQ3YpT3y6hxMVtfxyZCceGZuCUecdD6croNZJUPEaXDVWngp8pChKPZArhMhC+jE3XsvBthZt5d2Sd9n76V6sDiu9w3vzx4w/Ms48Dl+9a/OVJEcE8MUvM3h9VTb/WH6ETTllvHhjL0Z3jXTpeX+MXqsnzCeMUFMotbZaTtefPuu/N+qMBBoCnfKQs1gtzN8/v8XHsdocrDh0kq15pwgJMHD30BiiOpTy0aFLl5jLqswif39+i88LMDFp4tlJbheh1klQ8RqcoeR/JYS4A9gGPK4oymmkz3LTefsUNH52EU2p8fpB6Qdk1mYyxH8Ig/0HE2OIgULYUth6ybV6aeG3g4y8vaeeu+dtY1isjpndDPjommZBO7vGayCB+Ov9qXZUU22vpqSm5LL7NofK+kpePvDy1XdsIqZIqAE+zm7Cztucc06lQMFsNDvnYJc6vpPqJKiotAZXVfJCiGVcMvcjzwKvA88DSuPr34BmrahoSo3X3nW92b5xO9eNuq45h3YJt0y0849lR3hjdTY51XpeuqlpNS7Pr/H64pYXOXjq4BX3t9vtzQpp69yhM0/2f/KK+7z5xpu89dZbAFRUVJBoTmT58uUX7nQSNs3cdIlfX516m51/r8zmv+tziQo08X/TejKwY9NWUK5du5Zhw4Zd03l/jElrcvl8hTPqJKiotAZXVfKKooxtyoGEEG8DjWuXneuzDDGFoBeekSrYqNPy5PiuXNc9ksc/2c3MdzZz5+BEZk/oiq/BfZEiGqG5qmJ74IEHeOCBB7BarYwePZrHH3v8ot+cWeDVXPYVVvD4J7s5VFzFLf2TefaGbs1K72zSmK7pvCoqKlempdE10YqinGj8czqwr/H9QmCBEOLvyInXFMB7Epc3gbSEDnz762H8delB3l2fx+rDJfzt5qatlp09YPZV93FlxMXDDz/M6NGjmTx5couPZbU7+PfKbP614gghfgbevas/o7pGOEFKFRUVZ9BS0/OvQog+SHdNHnAfgKIo+4UQnyAXh9iAB1saWeOJ+Bi0/G5yD67vHsUTn+3mJ29s5OfDO/Lo2M4euzR/3rx55OfnM3fu3BYf62BRJU9+toc9BRVM7RPDH6a0XuRRW6MpLrzm0jWk6xUNijfeeIM33ngDkO47s9nMypUrnSqDivtpkZJXFOX2K3z3J+BPLTm+tzC4k6xc/6dvD/Dm6hyW7CviT9N6MTTFs5Ijbd++nZdffpm1a9ei0Vx7JE6d1c6/VhzhzdU5BPro+fdtfZnYy/VrCFScy/3338/9999/1n332GOPuVskFRfglcsNPRF/o46/zOjN5NQYnv1yH7P+s5kZfWN57obuHlPkYu7cuZw6dYpRo0YBkJ6ezjvvvNOsY2zIKuWZL/eSV1bDjX3jePaGbh7TPm+mKS48V+FM911bxe6wU22TmWYVRcHPIGtJeMOCRFXJO5mMTmF89/AwXluZxeursll1qITfTupG19atYXxJ3n333Wv+7enqBv68OJNPtxeQGOrLB/cOZEgToopUPBtnuu+8FZvDxnHL8bP1JHIrcsmtyKWsrgxLg4UaW81la0f46Hzw1fnib/An1BRKUlAS5kCzfG1MVe5uVCXvAkx6LY9f34VJvWN46os9PPrxbv43I5baBjs+Bs9/8p+Pze7g0+0FvLz0EBW1Vh4Y2Ylfj0nx2DkHlabjLPedt1FeV872k9vZVrSN7cXbOVJ+BJvDdvb7DsYOJAUl0S2k29k6EmdSip+JADtTIa664dxrcY1MaX6q7tTZY+k0OqJ0UWzespn0yHT6RfYj2BTcqu1VlbwL6RIVwOf3Z/DB5nwa7Kc4crKKDr4GIgNNGHSefVMpisIPB4p5cclBskuqSU/swPPTetItOtDdoqk4CWe477yBWlstG49vZOPxjWwr3nY2Q61RayQ1PJXbu99OUmASSUFyOz8F+bVQUV9xwahgXdY6Pjv8Ge9nvg9AcnAy6ZHpDIoZREZMBj46nxa38UqoSt7FaDSC2web2X+ghg7+BsqqrZTXWmUpM38jOq3nKPszOey355/mhe8y2Zp3mo7hfrx5ez+u7x7psflxVK6NlrjvPJ2qhirWFKxh+dHlrCtcR62tFh+dD2kRaUxMmkh6VDo9Qntg0Dp/PinIGESfiD70iegDQFpVGkOGDWFf2b6zo4eF2Qv56NBHmLQmhsYOZUziGIbHDSfQ4HwjSlXyrYSvjw8GWw2dIzpwskrWsDxV3UB4gJEQX4Pblb2iKJwoPsnh0joe/nYD4QFG/jS9Jz9Nj3e7bCoqTcHSYOGH/B9Ymr+UzSc2Y3PYCPcJZ0qnKYxNHEu/yH7oNe5ZVKnX6kmLSCMtIo2f83OsDis7inewLH8ZK46uYNnRZeg0OgZGDeR68/Vcl3idzEbrBFQl30rExcVRUFBASUljjhm7g1O1Vo5bHWiEjLn3M+jOunHq6uowmVw/W6soCrVWO1V1No6U1fOfHRU8OrYz9w5Lws87c72rtCPsDjubizazMHshy/OXU2evI84/jtu73c6YxDH0Cuvl1Oy0zkKv0TMweiADowfy9MCn2Vu6l+VHl7Msfxm/2/A7/rz5z4xJGMPUTlMZGD2wRVE86l3cSuj1epKSki76/MDxSv63KZ+vdhZSa7XTNyGY2wcn4n+6iOtGj3KZPAWna/hg81E+3lrAqeoGOob7cfugRL7/TT+nlT1UuTquKPPoTDxVvtyKXL7O+ppFOYs4WXOSAEMAUzpNYUryFHqH9fYq16JGaEgNTyU1PJVH+z7K3tK9LMxeyOLcxSzOXUyEbwSTO05mSvIUOgZdvrrd5VCVvJvpHhPIX2b04qkJXfl8ewHvb8rn0Y9346uD4YXbGZIcSkZyGB3D/FrUceusdnbkn2ZdVinrs8vYW1AOwNhukdwx2MyQ5FCvujFcTWsUxDGZTJSVlWEweOY6A0VRKCsra5URZVNosDewLH8Znx7+lG3F29AIDUNihvBE/ycYFT8Ko9Z7q6adQQhB7/De9A7vzRP9n2DVsVUszF7IvP3z+C73O5bcuKTZ96mq5D2EIB89dw9N4q4MM+uzS3lryQ72FlawZH8RAFGBJjKSQ+lvDiEy0EiYv9xC/Q1ni3AoikJlnY0ySz2llgZKLfXkllazIbuUbXmnqbc50GoEfeKD+fWYFH6SHk9ssGtn9r0clxbEOePCKy8v9xhF+mNMJhNxcXFulSG3IpfPDn/GwuyFlNeXE+cfx8N9H2Zqp6murhvgVoxaI+PM4xhnHkdpbSkFVQXXZIipSt7D0GgEw1LCsRcaGTFiBPllNazPLmVDVhkrD57kix0XJ/MMNOnwNeg4VdNAg81x0fddowK4bWAiQ5JDGZAU0qzskCoX4bSCOEIr+NXOX1FbW4uPjwc/bHc693C1tbW89MVLTdrXrtgptBSiEzpGJYzips43MSh6kEf62V1JmE8YYT7XtvhQVfIejBACc5gf5jA/bhuYiMOhUFheS+l5lnppVT2llnqqG+yE+hmkhR9gOGvpRweZ1KRh145LC+I4FAcR9gisGit6e/t58Da3vf2C+zHQfyCBBNJwuIE1h9e4UDrn49WFvFVaF41GEB/iS3yIa0sethc8oSDOaEa7vdBza6O2t3VRlbxKu8UTCuKoqLga4UkhUkKIEuBy1ZzDgNJWFMfdqO11PomKojRppu78gjhCiEeBgYqi3CKE6AEsQPrhY4DlQMrVJl7Vvn0Banudz2X7tkdZ8le6AYUQ2xRFSW9NedyJ2l6349SCOGrfPofa3tbFo5S8ioqnoBbEUWkrtK84JBUVFZV2hjcp+bfcLUAro7a3/dDe2q62txXxqIlXFRUVFRXn4k2WvIqKiopKM1GVvIqKikobxiuUvBBivBDikBAiSwjxlLvlcTZCiP8KIU4KIfad91mIEOIHIcSRxtcO7pTRmQgh4oUQK4UQB4QQ+4UQDzd+3mbbfCnaer+G9tW3PbVfe7ySF0JogdeACUB34NbGTIBtiXnA+B999hSwXFGUFOSCm7akBGzIXDDdgUHAg43XtC23+QLaSb+G9tW3PbJfe7ySR64szFIUJUdRlAbgI2QmwDaDoihrgFM/+ngqML/x/XxgWmvK5EoURTmhKMqOxvdVQCYyyVebbfMlaPP9GtpX3/bUfu0NSj4WOHbe35fN+tfGiDyzrB4oAiLdKYyrEEKYgTRgM+2kzY20134N7eA6e1K/9gYl3+5RZJxrm4t1FUL4A58DjyiKUnn+d221zSoX0havs6f1a29Q8u0161+xECIaZLIs4KSb5XEqQgg98kb4QFGULxo/btNt/hHttV9DG77OntivvUHJbwVShBBJQggDsvTaQjfL1BosBO5sfH8n8LUbZXEqQtYw+w+QqSjK38/7qs22+RK0134NbfQ6e2q/9ooVr0KIicCrgBb4b2OCqDaDEOJDYCQyJWkx8DvgK+ATIAGZovZmRVF+PIHllQghhgJrgb3AmXqFzyD9l22yzZeirfdraF9921P7tVcoeRUVFRWVa8Mb3DUqKioqKteIquRVVFRU2jCqkldRUVFpw6hKXkVFRaUNoyp5FRUVlTaMquRVVFRU2jCqkldRUVFpw/w/VN8bmb4A+cUAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def plot_feet(ft):\n", + " def plot_foot(o,i):\n", + " x = [v[0] for v in o]\n", + " y = [v[1] for v in o]\n", + " z = [v[2] for v in o]\n", + " plt.subplot(3,2,i)\n", + " plt.plot(x, label='x');\n", + " plt.plot(y, label='y');\n", + " plt.plot(z, label='z');\n", + " plt.grid(True);\n", + "# plt.axis(\"equal\")\n", + " plt.legend();\n", + " for i, leg in enumerate([1,6,2,5,3,4]):\n", + " plot_foot(ft[leg-1], i+1)\n", + " \n", + "plot_feet(ft)" + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAAyL0lEQVR4nO3deXxU5fX48c8hGyRsQiAg24RdBFHCKohssmRQal1qpYpVv1TFiltlALEoAqOt9lfr0lpcsKK4tigBZAuioKwi+xJgRDDsyBYgJHl+f8wlDJg9M3NnJuf9es2Le5+ZyTn3yZPDnTv3PleMMSillIoslexOQCmllP9pcVdKqQikxV0ppSKQFnellIpAWtyVUioCRdudAEBiYqJxOBxFvubkyZMkJCQEJ6EQjB8KOYRr/FWrVh00xtQJQErFKsnYLkhJtvXwqcPsObaH7NxsYqNiaVC9AbWq1CpjpqWPH0h2xw+FHEoSv8ixbYyx/ZGSkmKKk56eXuxrAsnu+KGQQ7jGB1aaEB7bBSluW99d+66JnxhvGI/pNQyzti4m2VXFzJsyxpi2bY3JzCxT3JLGDzS744dCDiWJX9TY1sMyyhYZ+48zdMq3ZOfk2Z1KWBq7YCxZZ7PotRNmvgetD8C/p5/i6vsnw+bNMGGC3Skqm2lxV0F1KjuX7u6F9HtxMUsyDrFuz1G7UwpLu47uAuCl2RCbAzEGuu6G+LMGcnLgo49szlDZTYu7Cprxn23gsqfmsOfnUwC8NrQDKU0usTmr8NS4RmMA+t8Bi5vAyWhIyPE+dza2Mrz6qo3ZqVCgxV0F3PyN+3C40nh7qQeAoV0as3NyKoPa1bc3sTA2se9E4mPiaX0Quu45X9gB8nJz+M/EN1macdC+BJXtQuJsGRWZdh/Josdz6fnrdavFkf54LxLidNiV19B2QwHo2P/3xOacBSAnLpYoA3HZ2aRuWULKlGUALB/bl7rVKtuWq7KH7rkrv8vOyeP6f3x9QWGf8/A1LB/bTwu7Hw1tN5RW3+0i5v4HoE4dot+dhtxzD9Spw5G33s1/XeeJCxg65Vty83SSwIpEi7vyq5cWbKPlk7Pzvyh9/qYr8LidtK5X3ebMIlS9evDKK7B/P9x8s/dY+/79NP/N9XjcTsYNbgPAkoxDNBszi7eW7LQ5YRUsWtyVXyzbcQiHK40X520FYFDbeuyYlMqtnRrZnFnFdk+PZLZPSqV789oAPP35RhyuNNbu/tnexFTA6WdkVS4HT5yh47Pz89ejKwkrxvbjkoRYG7NSvqIqCdPu7cr+Y6fpPGkBADe8vIT42Ci+Gd2XGlVibM5QBYIWd1UmeXmGe6auIH3Lgfy2T+6/Wk9tDGF1q1fG43ayJOMgQ6csIys7l/ZPz+WG9pfy99uuRETsTlH5kR6WUaX2n288NB0zK7+wjx7UGo/bqYU9THRvnojH7eSPfZoD8Nn3P5E8ehafrt5tc2bKn3TPXZXYD8dycbjS8tc7J9fivXu7EB2l+wjh6LH+rXiwT3OGvLyEzXuP8+iH3/Poh98z/9Gedqem/ECLuyrWsdNn6e5eyPHT56+U+XZ0X+rV0HOnw11cdBRzHu7JrkNZ9PyL99TVfi8upnZl4eurc6kSG2VzhqqsdJdLFcoYw2Mffs8V4+fmF/apd3fG43ZqYY8wjWvH43E7eW1oBwAOnTZc9tQcnv58g82ZqbIqd3EXkSgR+U5EZlrrySKyTEQyROQDEdHTJsLQjDV7SB49i0+s47B/uLYpbw9M4NqWtkyLbouKOLYHtavPzsmp9Grk/VD/1hIPDlca8zfuszkzVVr+2HMfCWzyWX8O+JsxpjlwBLjHDzFUkOw4cAKHK42R09cA0KxOApsnDGT0oMvsTcweFXJsiwh3XR7HhqcHUKdaHAD3vrMShyuN3UeybM5OlVS5iruINAScwBRrXYA+wMfWS6YCvypPDBUcp8/m0vuvi+jzwpf5bemP92LBY72oHFPxjrvq2IaEuGhWjO3HnIevyW/r8Vw6N7z8tc7DHwbEezOPMr5Z5GNgMlANeBy4C/jW2rNBRBoBs40xbQt473BgOEBSUlLK9OnTi4x14sQJqlatWuZcy8vu+IHMYfrmbOZ4zuav398+ji71f/ldu919UNb4vXv3XmWM6Via9wRzbBckFPv6yx/P8taG7Pz1G5vHMKR5YI5M2b39oZBDSeIXObYLu0VTcQ9gMPCqtdwLmAkkAhk+r2kErC/uZ+lt9uzJYeHmfabJqJn5jyc++t7k5eUFLX5pBes2e8Ee2/7cVn8pLH5ubp657z8rLxg332w/GLT4wWR3DuW9zV55ToXsDtwgIqlAZaA68HegpohEG2NygIbAnnLEUAGQefQU3SYvzF+/JD6GxU/0plplvQzdomO7EJUqCa/9LoUjJ7PpOHE+uXmG217/FoCVT/YjsWqczRmqc8p8zN0YM9oY09AY4wBuAxYaY4YC6cDN1suGATPKnaXyi7O5edz02tILCnvaQz347qn+Wth96Ngu3iUJsWyflMon91+d39bx2fnc9dZy8nRq4ZAQiPPcRwGPikgGUBt4IwAxVCm9tmg7LcbOZtUPRwCYeGNbPG4nl19aw+bMwoqO7YukNLkEj9vJ6EGtAVi05QBNx8ziP9947E1M+ecKVWPMImCRtbwD6OyPn6vKb6XnMDf/85v89X6XJfH6HSlUqqSTRJWEju2S+cO1zbinRzK3T1nG8p2HGTdjA+NmbGDmH3vQtoHuQNhBpx+IUIdPZtNhwrwL2lY92Y/aekxUBUh0VCU+/EM39h49TdfJ3qmFB//ja6pVjmaJqw/V9dBfUOn0AxEmL8/wf++svKCwf3RfNzxupxZ2FRT1aninFn7nbu+HnOOnc7hi/Fwe+/D7c2caqSDQ4h5B3l++i6ZjZjHPulT8TwNa4XE76eSoZXNmqiLq2bIOHreT+3s1A+CT1btJHj2Lz77/yebMKgYt7hFg40/HcLjSGP3pOgA6NK7JtomDGNG7uc2ZKQWjBrZm84SBNK/rvSDnofe/w+FKY8eBEzZnFtn0mHsYO3Emh2ufT+fQyfNXDS519eHSmlVszEqpX6ocE8X8R6/Fc/Akvf66CIA+L3xJcmICs0deUyGnuAg03XMPQ8YYRn28lrZ//iK/sL91Vyc8bqcWdhXSHIkJeNxOXr79KgB2HjxJ63FzmDRrUzHvVKWlxT3MzFqXSfLoWXyw8kcA7u2RjMftpHfrujZnplTJDb7iUnZOTuW2To0AeH3xDhyuNNK37Lc5s8ihh2XCxA+HTnLXnJPAagD9OKvCnojgvukKnhzcJv/w4u/fWgHAi730E2h5aXEPcafP5nL9P75m2/7zXz4teOxamtWxd8Y8pfylalw0q8Zdx4afjuJ86WsAHl10imk7lzJ9eFdi9B69ZaK9FsKen7OZ1uPm5Bf2+66Iw+N2amFXEenyS2vgcTuZeKN3FuVVPxyhxdjZvLZou82ZhSct7iFo8dYDOFxpvGoN6ps6NGTn5FS6XqoftFTkG9qlCW8OiOe6NkkAPDdnMw5XGis9h23OLLxotQgh+46dpsukBfnretm2qqgqifDvOzteMI3GuTmSVo+7jloJEXf7Wr/T4h4CcnLzGDplGct2nt8z+fzBHrRrqBMuqYqtVkIsHreTFZ7D3GIV9w4T5nFdmyT+9TudAK8oeljGZq8v3k7zsbPzC/szQy7H43ZqYVfKRydHLTxuJ38a0AqAeRv30XTMLN5fvsvmzEKXFnebrN51BIcrjUmzNgPQq1UddkxK5c5uDnsTUyqEjejdnG0TB9GhcU0ARn+6DocrjY0/HbM3sRCkh2WC7OesbDpNnM/Z3POz460Y24861XTGRqVKIiaqEp8+0J2ffj7F1W7vXcVSX/qK2gmxfPlEb6rGaVkD3XMPGmMMI6at5spn5uUX9unDu+JxO7WwK1UGl9asgsft5K27OgFw6GQ2bf/8BaM/XatTC1OO4i4ijUQkXUQ2isgGERlptdcSkXkiss369xL/pRuePlz5I8mjZ5G2LhOAR/q1xON20rVpbZszUwXRsR1eereui8ft5N4eyQC8v9z6e1ubaXNm9irPnnsO8Jgxpg3QFRghIm0AF7DAGNMCWGCtV0hb9x3H4UrjiY/XAtCuQQ22PjuIkf1a2JyZKoaO7TD05OA2bJ4wkOTEBABGvLcahyuNHw6dtDkze5T54JQxJhPItJaPi8gmoAEwBOhlvWwq3vtPjipXlmEmKzuHPn/9kr3HTue3ffVEbxrVircxK1VSOrbDV+WYKNIf78X2Ayfo+8KXAFz7l0W0TKrK53/sQVx0xZmLSfxxbEpEHMBioC2wyxhT02oX4Mi59YveMxwYDpCUlJQyffr0ImOcOHGCqlXtu+y+pPH/s/EMC3bl5K+P7BDHVXX98wVPuPRBqMXv3bv3KmNMx7LEDMbYLki49nWoxf/mpxz+tfZM/vrgpjHc3LJkF0CFQx8UObaNMeV6AFWBVcCvrfWfL3r+SHE/IyUlxRQnPT292NcEUnHxv1ifaZqMmpn/eOp/64KeQ6CFa3xgpQnhsV2QcO3rUIyfl5dnHv1gzQV/n4u37g9qDmVRkvhFje1y7VKKSAzwCTDNGPOp1bxPROobYzJFpD4Q0RM0/3g4i2ueT89fr1+jMgseu5b4WD0dK5zp2I4cIsILt7bnzze0ofvkhRw/k8MdbywHYNmYviRVr2xzhoFRnrNlBHgD2GSMedHnqc+AYdbyMGBG2dMLXdk5eThf+uqCwj7vkZ58M7qvFvYwV9HHdqSqXjmGdU8P4PMHe+S3dZm0gN/86xtycvNszCwwynO2THfgDqCPiKyxHqmAG7hORLYB/az1iPLivK20fHI2G6yr4v56S3s8bictkqrZnJnykwo7tiuCdg29Uws/fcPlACzbeZjmY2cz5asdNmfmX+U5W+ZroLBZe/qW9eeGsqUZB7l9yrL89cFX1Ocfv70K746eihQVcWxXRMOudvC7rk24Z+oKFm05wLNpm3g2bRP/feBqrmoc/pcw6PGDEth//LR1iztvYY+LrsTyMf2oEa9T8SoVzqIqCW//vjMHjp+h08T5ANz46lJiooS/XRvet/rT4l6E3DzDXW8t56ttB/Pb/jeiO1c2qmlfUkopv6tTzXuXs6XbD3L7v5dxNtfw4MIsZh9Yzcu3h+enc51bphBvLdlJszGz8gv7b1t755XWwq5U5Lq6WSIet5ORfb1XkaetyyR59Cw+WvmjzZmVnhb3i6zd/TMOVxpPf74RgKub1SZj4iAGOPQQjFIVxSPXtWRK/3guv7Q6AH/6eC0OVxpb9x23ObOS08MylqOnztJt8gKysnPz25aP6UvdCD0HVilVtOhKQtpD11xwLUv/vy2mXvXKLHw89K9lqfB77sYYHp7+He2fnptf2N+9pwset1MLu1KKRrXi8bid/OuOFAD2HjtNm6e+4KkZ623OrGgVq7inp0O7drB3L6Snc7R5azr/cRr/W/MTACN6N8PjdtKjRaLNiSqlQs2Ay+vhcTsZ1q0JAO988wMOVxpzN+y1ObOCVYjiPm3dNH47oh4nB/QhZ+N6djl7k9V/EAk7Mvjj0vdplVSNLc8O5E8DWtudqlIqxD09pC0bnxlA/RreT/bD/7MKhyuNHw9n2ZzZhSK+uE9bN43hnw9nzMf7iM2B6DyovXYz8TlniDa5DN21nC8e6VmhpgJVSpVPfGw034zuy9xHeua3XfN8OoP+/hXZOaExlUHEF/exC8aSdTaL/nfA4iZwMhoSzs3IW6UKUf98zdb8lFLhq2VSNTxuJ3+5+QoANmUeo+WTs3nz6502Z1YBivuuo7sAaH0Quu7xKewAubmwcKE9iSmlIsYtHRuxc3IqzivqA/DMzI02Z1QBinvjGo0BeGk2xFqFPSsazkQB2dnw8cf2JaeUihgiwiu3d2DzhIGsHd/f7nQiv7hP7DuR+Jh4rrsDXk+B/fHwf7fE8sNNfaFOHfjgA7tTVEpFkMoxUVSvbP9Fj365zV65kxA5APxQzMsSgYPFvKZg8dSiGg2oRCx5ZHOcPWRxuJQ/pezx/cfuHMI1fhNjTB1/J1MSJRzbBQnXvo6U+KGQQ0niFzq2Q6K4l4SIrDRlvA9mJMQPhRwqevxgsntbK3r8UMihvPEj/rCMUkpVRFrclVIqAoVTcX+9gscH+3Oo6PGDye5trejxwf4cyhU/bI65K6WUKrlw2nNXSilVQlrclVIqAoVFcReRgSKyRUQyRMQVhHiNRCRdRDaKyAYRGWm1jxeRPSKyxnqkBjAHj4iss+KstNpqicg8Edlm/RuQW7SLSCufbVwjIsdE5OFAb7+IvCki+0VkvU9bgdssXi9ZY2KtiHTwZy7BIiK3WGMsT0Q6XvTcaGv7tojIAJ/2gP09iMgHPr9fj4issdodInLK57l/+jOuT/xCx1hh/eHn+H8Rkc3WmPqviNS02oOy/VYs//x+jTEh/QCigO1AUyAW+B5oE+CY9YEO1nI1YCvQBhgPPB6k7fYAiRe1PQ+4rGUX8FyQ+n8v0CTQ2w/0BDoA64vbZiAVmA0I0BVYFozfSwC2+TKgFbAI6OjT3sYa63FAsvU3EBXMvwfgBeApa9nh+3sJYH8UOMYK648AxO8PRFvLz/mMt2Btv99+v+Gw594ZyDDG7DDGZAPTgSGBDGiMyTTGrLaWjwObgAaBjFlCQ4Cp1vJU4FdBiNkX2G6MKctVlqVijFkMv7hyuLBtHgK8Y7y+BWqKSP1A5+hvxphNxpgtBTw1BJhujDljjNkJZOD9WwjK34OICHAr8L6/f3YZFdYffmWMmWuMOTe94LdAQ3/HKIbffr/hUNwbAL63Ht9NEAutiDiAq4BlVtOD1ke2NwN1WMRigLkiskpEhlttScaYTGt5L5AUwPjn3MaFf+DB2v5zCttmW8dFEBS2fcHa7muAfcaYbT5tySLynYh8KSLXBCDmOQWNMTt+33fj/XR4TjC232/bGQ7F3TYiUhX4BHjYGHMMeA1oBlwJZOL92BooPYwxHYBBwAgR6en7pPF+hgvoeawiEgvcAHxkNQVz+38hGNscCCIyX0TWF/AI6CfQcubzWy78Tz0TaGyMuQp4FHhPRKoHIH7Ax1hJtl9ExgI5wDSryW/bHywhcZ57YmKicTgcJX79yZMnSUhICFxCIRr/8KnD7Dm2h+zcbGKjYmlQvQG1qtQKeh52939pc1i1atVBY9PEYaUZ23b3q93xQyGHcItf5NgO9BcEJXmkpKSY0khPTy/V6/3Njvjvrn3XDLwnzqyti0l6DNNrGGZ9XTEfL3w56LnY3f+lzQFYacJgbNvdr3bHD4Ucwi1+UWNbD8uEiZn/fIyP3zlD6wMw7ROY+R60PGA4OS7gZ4YqFRS/m7KMv6w4ZXcaEaPY4l4Rzz0ORedu8B1joOtuSDjrXR743Qm7UwtbOrZDy9cZB9lwKDRuLh0JSrLn/jYw8KI2F7DAGNMCWGCtg/fLvxbWYzjeL0eUH9z9QINf3OA7Kxr+fEuivYmFt7fRsa0iVLHF3VTAc49D0eSGw35xg+8oA4+cam9fUmFOx7aKZNFlfF9pzz3O5CLWudvDAZKSkli0aFGJg584caJUr/c3O+J3nfg+lXMFMGRFewt7XC44vlgZ9Fzs7v8A52Db2La7X+2Of05F7gO/xi/sm1bfBxddegv8fNHzR6x/Z+I9P/tc+wJ8Lqku7KFny5RAZqYxDzxgDlapbu4b4jLm/vuNqVPHmIULg56K3f1f2hwo4oyCUBrbdver3fGbjJppmoyaaWsOdveBP8+WKeue+z4RqW+MybQ+mu632vcAjXxe19BqU+VVrx688gop1ax5lNxOePVVe3OKTDq2VUQo66mQnwHDrOVhwAyf9jutMwu6AkfN+Y+4SoUDHdsqIhS75y4i7wO9gEQR2Q38GXADH4rIPcAPeCcYApiFd7a+DCAL+H0AclbKL3Rsq0hWbHE3xvy2kKf6FvBaA4wob1JKBYOObRXJ9ApVpZSKQFrclVIqAmlxV0qpCKTFXSmlIpAWd6WUikBa3JVSKgJpcVdKqQikxV0ppSKQFnellIpAWtyVUioCaXFXSqkIpMVdKaUikBZ3pZSKQFrclVIqAmlxV0qpCKTFXSmlIpAWd6WUikBa3JVSKgJpcVdKqQikxV0ppSKQFnellIpAWtyVUioCaXFXSqkIFF2eN4uIBzgO5AI5xpiOIlIL+ABwAB7gVmPMkfKlqVRw6dhW4c4fe+69jTFXGmM6WusuYIExpgWwwFpXKhzp2FZhKxCHZYYAU63lqcCvAhBDKTvo2FZho7zF3QBzRWSViAy32pKMMZnW8l4gqZwxlLKDjm0V1sp1zB3oYYzZIyJ1gXkistn3SWOMERFT0ButP5jhAElJSSxatKjEQU+cOFGq1/ub3fGBCr/9Qcgh6GPb7n61O/45FbkP/BrfGOOXBzAeeBzYAtS32uoDW4p7b0pKiimN9PT0Ur3e3+yM32TUTNNk1Ezb4htjf/+XNgdgpQmDsW13v9odX8d26eMXNbbLfFhGRBJEpNq5ZaA/sB74DBhmvWwYMKOsMZSyg45tFQnKc1gmCfiviJz7Oe8ZY+aIyArgQxG5B/gBuLX8aSoVVDq2Vdgrc3E3xuwA2hfQfgjoW56klLKTjm0VCfQKVaWUikBa3JVSKgJpcVdKqQikxV0ppSKQFnellIpAWtyVUioCaXFXSqkIpMVdKaUikBZ3pZSKQFrclVIqAmlxV0qpCKTFXSmlIpAWd6WUikBa3JVS9ktP54s3RlDnxBFIT4d27WDvXruzCmta3JVS9kpPJyd1IE0P/YA77Q6yBvQlb9NGmDDB7szCmhZ3pZStfh5+JyY7mxgDXXdD/FlDpdw8Tr//H7tTC2ta3JVStrrud4bFjeFkNCTkeNuyouGRG+LsTSzMlec2e8oGPZoncuTIYbvTUMpvqu3cQ9c95ws7QJSBdhsO2pdUBNA99zDz7r1d+FOnKnanoZTfvPZFDLE+e+xnoiAuF36zSctTeWjvKaVstf69v/Fm5yj2x8OdN8IbV8GBePju7y67UwtrYoyxOwdE5ADeu8mXVCJg52c2jW9v/NLm0MQYUyeQyRSmlGPb7n61L348tahGAyoRSx7ZHGcPWdhx/DHcfgeFju2QKO6lJSIrjTEdNX7FjB8qOfib3dtkd/xQyCGS4uthGaWUikBa3JVSKgKFa3F/XeNX6PgQGjn4m93bZHd8sD+HiIkflsfclVJKFS1c99yVUkoVQYu7UkpFoJAu7iJyi4hsEJE8Eel40XOjRSRDRLaIyACf9oFWW4aI+O0qCBEZLyJ7RGSN9UgtLpdACNT2FRPTIyLrrO1eabXVEpF5IrLN+vcSP8Z7U0T2i8h6n7YC44nXS1Z/rBWRDv7KI5B0bP8ih6CPaytu5I5tY0zIPoDLgFbAIqCjT3sb4HsgDkgGtgNR1mM70BSItV7Txk+5jAceL6C9wFwC1B8B275i4nqAxIvangdc1rILeM6P8XoCHYD1xcUDUoHZgABdgWV2j9sSbqOO7fNxbBnXVuyIHdshvedujNlkjNlSwFNDgOnGmDPGmJ1ABtDZemQYY3YYY7KB6dZrA6mwXALBju0rzBBgqrU8FfiVv36wMWYx/OLqxMLiDQHeMV7fAjVFpL6/cgkUHdsXCKVxDREytkO6uBehAfCjz/puq62wdn950Pp49KbPR7VAx/QVzFi+DDBXRFaJyHCrLckYk2kt7wWSApxDYfHs6pNAqYhj287fYcSObdun/BWR+UC9Ap4aa4yZESq5AK8BE/AOhgnAC8DdwcvOVj2MMXtEpC4wT0Q2+z5pjDEiErRzaoMdr6x0bIeFiB3bIXGee2JionE4HKV+38mTJ0lISPB/QmESPxRyCIf4q1atOmhsmjisJGM7HPowkuP7M4fDpw6z59gesnOziY2KpUH1BtSqUitg8Ysc28H40qK4R0pKiimL9PT0Mr3PX+yOHwo5hEN8YKUJ4bEdDn0YyfH9ksPCheZI84Ym2VXF9BqGWVsXk/QYJn5ivHl37bsBi1/U2A7XY+6ldsPLX+NwpTFnfWbxL1ZKqZJKT4fBg6m6Yzf/nn6Kme9B6wMw7kvIOpvF2AVjbUmrwhT35nWqAnDfu6txuNLYdSjL5oyUUhHhoYcwZ7KJzvPe4DvhLMQYuGWj9+ldR3fZklaFKe4v/uZK5j/aM3+951/SGfj/FnMmJ9fGrJRS4SwrO4frB49jaYM2v7jB9wNO73LjGo1tya3CFHeA5nWr4XE7eeGW9gBs3nucVk/O4YW5BZ1urJRShRv/2QbaPPUFVT3bueqnLb+4wXefnRAfE8/EvhNtya9CFfdzbkppyM7JqdzQ/lIA/rEwA4crjSUZdt85TikV6uZt3IfDlcbbSz0A/G3pm1TBewQgJy72ght8v3796wxtN9SWPCtkcQcQEV767VV8/1R/Ksd4u2HolGU4XGnsP3ba5uyUUqFm95EsHK40/u+dlQAkVY9jw9MDqLfsK2T4cKhTh+h3pxE3/H6oU4fan8+3rbBDCFzEZLca8TFsnjCI73/8mSGvLAGg86QFdG9em3fu7kJUJbE5Q6WUnbJz8rjptaWs23M0v+2Lh3vSql4170q9evDKK94HwM03w6uv2pDphSrsnvvF2jeqicft5KnBbQBYknGIZmNm8ebXO23OTClll5cWbKPlk7PzC/vzN12Bx+08X9hDmBb3i9zdI5ntk1Lp0TwRgGdmbsThSuP7H3+2NzGlVNB8u+MQDlcaL87bCkBqu3rsnJzKrZ0a2ZxZyVX4wzIFiaokvHtvF/YfP03niQsAGPLKEqrERPHtmL7UqBJjc4ZKqUA4eOIMHZ+dn78eEyWsGNuPmvGxNmZVNlrci1C3WmU8bidLMw5y+5RlnDqbS/un53J9+0t56bYr7U5PKeUnecYw7M3lfLn1QH7bJ/dfTUoTv92nI+j0sEwJXN08EY/byUN9mgPw+fc/kTx6Fkv2nLU5M6VUeb3zjYe7v8jKL+yjB7XG43aGdWEHLe6l8mj/Vmx5diCX1a8OwL/XZeNwpZGx/7jNmSmlSmv9nqM4XGk8NWMDAF2Sa5ExcRB/uLaZzZn5hx6WKaW46Chmj7yGHw9ncc3z6QD0e3ExDWpWYf6j11IlNsrmDJVSRTl2+izdJy/k+Jnzl5T+rVcVbhzYzcas/K/ce+4iEiUi34nITGs9WUSWWTd1/UBEwu+biBJoVCuetwcm8M/fpQCw5+dTXPbUHMZ/tsHmzJS/VNSxHamMMTz64RquGD83v7C/c3dnPG4nl1SOvIMY/tiikcAmn/XngL8ZY5oDR4B7/BAjZA1s6z1F6nddvZMDvb3Ug8OVxryN+2zOTPlBhR7bkWTGmj0kj57Fp6v3AHB/r2Z43E56trTlHi5BUa7iLiINAScwxVoXoA/wsfUSv95cNlSJCM/+qh0bnh5AUvU4AP7vnZU4XGnsPqJTC4cjHduRYfuBEzhcaYycvgaAFnWrsnnCQEYNbG1vYkFQrtvsicjHwGSgGvA4cBfwrbVng4g0AmYbY9oW8N7hwHCApKSklOnTp5c6/okTJ6hatWqZ8y+vwuLvPp7Hk0tO5a87qlfiya6ViQ7AVAah2gehFL93796rjDEdS/Nzgzm2w6EPwy1+dq5h3JJT7Ms6X9+eu6YKSQkF78+Gax8UObYLu0VTcQ9gMPCqtdwLmAkkAhk+r2kErC/uZ0XqbfY+WL7LNBk1M//x9/lbg55DoIVDfEp5m71gj+1w6MNwiv/szA0X/N3N/P6noOdQWoG4zV55zpbpDtwgIqlAZaA68HegpohEG2NygIbAnnLECGu3dmrELR0bMuK91cxat5cX523lxXlbmT68K12b1rY7PVU4HdthKH3zfn7/9or89ds6NWLyr9vhPaJW8ZS5uBtjRgOjAUSkF/C4MWaoiHwE3AxMB4YBM8qfZvgSEV4dmsKRk9l0mjifnDzDba9/C8DKJ/uRWDXO5gzVxXRsh5effj7F1e6F+eu1E2L58oneVI2r2Gd6B+L8n1HAoyKSAdQG3ghAjLBzSUIsGZNS+eT+q/PbOj47n2FvLicvr+zfe6ig0rEdQs7m5vHrV5dcUNhnPXQNq8ZdV+ELO/jpIiZjzCJgkbW8A+jsj58biVKaXILH7eT1xduZNGszX249QNMxs5gw5HLu6OawOz11ER3boenVRRk8P+f87TEn3tiWoV2a2JhR6Im8M/fDxPCezciYOIjOybUAGDdjAw5XGut9bgiglLrQCs9hHK60/MLe77IkdkxK1cJeAP3sYqPoqEp8+Idu7D16mq6TvVMLD/7H11SrHM0SVx+qV9aphZUCOHwymw4T5l3QtnrcddRK0IuEC6N77iGgXg3v1MJT7/Z+4j9+Oocrxs/l0Q/XnDvtTqkKKS/PcO/UFRcU9o/u64bH7dTCXgwt7iHk2pZ18Lid3GfNSvfpau8l0zPW6Bl3quJ5b9kumo6ZxfxN+wH404BWeNxOOjlq2ZxZeNDiHoJcg1qzecJAmtf1XrE2cvoaHK40dhw4YXNmSgXexp+O4XClMea/6wDo0Lgm2yYOYkTv5jZnFl70mHuIqhwTxfxHr2XnwZP0/usiAPq88CWO2vHMebgnlWN0amEVWU6cyaHn8+kcPpmd37bU1YdLa1axMavwpXvuIS45MQGP28nLt18FgOdQFq3HzWHSrE3FvFOp8GCMYdTHa2n75y/yC/tbd3XC43ZqYS8HLe5hYvAVl3rvvt6xIQCvL96Bw5XG2gM5xbxTqdCVtjaT33+RxQcrfwTg3h7JeNxOereua3Nm4U+LexgREZ6/uT3rxvfnknjvaZIvrjqDw5VG5tFTxbxbqdDhOXgShyuNEe+tBsBRO57NEwby5OA2NmcWOfSYexiqVjmG757qz4afjuJ86WsAuk1eSIfGNfngD92IidL/s1VoOn02l8H/+JqM/edPDpjcowq/Hdzbxqwik1aBMHb5pTV4e2ACE2/0Tim+etfPtBg7m1cXZdicmVK/9NyczbQeNye/sP/9tivxuJ3Ur6plKBC0VyPA0C5N2DEplX6XJQHw/JwtOFxprPActjkzpWDx1gM4XGm8tmg7ADd1aMjOyakMubKBzZlFNj0sEyEqVRKmDOvIoRNnSHl2PgC3/PMbQC/TVvbYd+w0XSYtyF/XaTWCS4t7hKldNQ6P28nynYe59V/e4t5hwjyua5PEv36XQqUA3OpPKV85uXkMnbKMZTvPf3L8/MEetGtYw8asKh49LBOhOifXwuN28qcBrQCYt3EfTcfM4v3lu2zOTEWy1xdvp/nY2fmF/Zkhl+NxO7Ww20CLe4Qb0bs52yYOokPjmgCM/nQdDlcaG386Zm9iKqKs3nUEhyuNSbM2A9CrVR12TErlTr1HgW30sEwFEBNViU8f6H7B7chSX/pKb0emyu3nLO/tI8/mnp+9VG8fGRrKvOcuIo1EJF1ENorIBhEZabXXEpF5IrLN+vcS/6WryuPSmlXwuJ28dVcnAA6dzKbtn79g1MdrdWphHzq2i2eMYcS01Vz5zLz8wj59eFc8bqcW9hBRnsMyOcBjxpg2QFdghIi0AVzAAmNMC2CBta5CSO/WdfG4ndzbIxmAD1b+SPLoWaStzbQ5s5ChY7sIH54bL+u84+WRfi3xuJ10bVrb5syUrzIXd2NMpjFmtbV8HNgENACGAFOtl00FflXOHFWAPDm4DZsnDKRJ7XgARry3GocrjR8OnbQ5M3vp2C7Y1n3HcbjSeOLjtQBc0bAGW58dxMh+LWzOTBVE/PFxXEQcwGKgLbDLGFPTahfgyLn1i94zHBgOkJSUlDJ9+vRSxz1x4gRVq1Ytc97lZXd8f+aQeSKP0V+fn5/m0qrC+G5ViI0q+tRJu/ugJPF79+69yhjTsSw/PxhjO9T78EyOwfXVKY6cOV8r/nptFRKr+Od8DLu3PxRyKGv8Ise2MaZcD6AqsAr4tbX+80XPHynuZ6SkpJiySE9PL9P7/MXu+IHI4X/f7TZNRs3Mfzw3e1NQ45dWSeIDK00Ij+1Q7sNx/1t3wXiYu2FvUOMHi905lDV+UWO7XP/1ikgM8AkwzRjzqdW8T0TqW8/XB/aXJ4YKriFXNmDn5FR+3cF7afiri7bjcKWxeOsBmzMLroo+tues34vDlcY73/wAwLBuTfC4nVzXJsnmzFRJledsGQHeADYZY170eeozYJi1PAyYUfb0lB1EhBdvvZK14/tTrbL3NMk731yOw5XGvmOnbc4u8Cry2P7xcBYOVxr3vbsKgAY1q7DpmYE8PaStzZmp0irPCc7dgTuAdSKyxmobA7iBD0XkHuAH4NZyZahsU71yDOvGD2Dd7qNc/7J3auEukxbQJbkW0+7tQnTkTi1c4cZ2dk4eQ15ZwqbM8xe3zXukJy2SqtmYlSqPMhd3Y8zXQGHftvUt689Voaddwxp43E7e+cbDUzM2sGznYZqPnc2Y1Na0tDu5AKhoY/u/27K5a87s/PUXbmnPTSkNbcxI+YNemqhK7M5uDoZ2acI9U1ewaMuB/EvNP216hA6NK+z1PGFracZBbp+yLH/9+vaX8tJtV+I9KqXCnRZ3VSpRlYS3f9+ZA8fP0Gmid2rhX7+6lJgoYcXYftSM16mFQ93+46fpPPH8VLyxlWDFk/2pEa9T8UaSiD1oqgKrTjXv1MKuzpUBOJtruPKZeYyYtlqnMghRuXmGO95YdkFh/9+I7rzeP0ELewTS4q7KpXWtKDxuJ4/08x59T1uXSfLoWXy44kebM1O+3lqyk2ZjZvHVtoMAPDW4DR63kysb1bQ3MRUwWtyVX4zs14Ktzw6iXQPvvN1PfLIWhyuNLXuP25xZxbZ29884XGk8/flGALo3r832Sancbc0rpCKXHnNXfhMbXYnP/9iDHw9ncc3z6QAM+H+LqVstjvTHe5GgUwsHzdFTZ+k2eQFZ2bn5bcvH9KVu9co2ZqWCSffcld81qhWPx+3k33d6p7zYf/wMl//5C5783zrMwoXQrh3s3Qvp6eeXlV8YYxg5/TvaPz03v7BPu7cLHrdTC3sFo8VdBcx1bZLwuJ0M69YEgO0fzOTUgFTyNm1i75C+ZA3oy9kN63nn5hZMWzfN5mzD36erd5M8ehYz1vwEwIO9m+NxO+nePNHmzJQd9HOyCrinh7Rl1KDWZDZ+kNjcHCqZXKqt3kh8jvf5gd+dIPnz4QAMbTfUxkzDU8b+4/R7cXH+eut61ZjxYHfioqNszErZTffcVVDEx0bT7LulZHfvzsloSLAKe1Y0POCErLNZjF0w1t4kw9DynYcvKOxf/qkXcx7uqYVd6Z67CqLNm4lfvdJ7nyNLlIE+O+GTy2HX0V325RamGlxSBYDXhnZgULv6NmejQonuuavgeeghyM4GvHvsZ6IgLhdu9p6lR+MajW1MLjw1sO6Lq4VdXUyLuwqeefNg+HBOX1KN/7slljeugv3x8JtbID4mnol9J9qdoVIRwy+32St3EiIH8E6hWlqJwEE/pxNO8UMhh7LFj6cW1WhAJWLJI5vj7CGLwwGK38QYU6cMP7vcSji2w/N3GDnxQyGHssYvdGyHRHEvKxFZacp4b8xIiB8KOVT0+P5g9zZU9PihkEMg4uthGaWUikBa3JVSKgKFe3F/vYLHB/tzqOjx/cHubajo8cH+HPweP6yPuSullCpYuO+5K6WUKoAWd6WUikBhU9xF5BYR2SAieSLS8aLnRotIhohsEZEBPu0DrbYMEXH5MZcPRGSN9fCIyBqr3SEip3ye+6e/Yl4Uf7yI7PGJk+rzXIF9EYAc/iIim0VkrYj8V0RqWu1B6QMrVkB+v8ES7PxFpJGIpIvIRutvaaTVXuh4ClAeHhFZZ8VaabXVEpF5IrLN+jcgd1wXkVY+27lGRI6JyMOB7gMReVNE9ovIep+2ArdZvF6yxsVaEelQpqDGmLB4AJcBrYBFQEef9jbA90AckAxsB6Ksx3agKRBrvaZNAPJ6AXjKWnYA64PQF+OBxwtoL7AvApRDfyDaWn4OeC7IfRCU328k5Q/UBzpYy9WArdaYKXA8BTAPD5B4UdvzgMtadp0bT0H4HewFmgS6D4CeQAffv43CthlIBWYDAnQFlpUlZtjsuRtjNhljthTw1BBgujHmjDFmJ5ABdLYeGcaYHcaYbGC69Vq/EREBbgXe9+fPLYfC+sLvjDFzjTHnpgD7FmgYiDhFCPjvN8CCnr8xJtMYs9paPg5sAhoEMmYpDAGmWstTgV8FIWZfYLsxpixXx5eKMWYx/OIK7MK2eQjwjvH6FqgpIqWePChsinsRGgC+d2PebbUV1u5P1wD7jDHbfNqSReQ7EflSRK7xczxfD1of2d70+QgbjG0uyN149zTOCUYf2LWt/mJr/iLiAK4ClllNBY2nQDHAXBFZJSLDrbYkY0ymtbwXSApwDgC3ceGOWTD7AArfZr+MjZAq7iIyX0TWF/AI+h5ZCXP5LRcOjkygsTHmKuBR4D0RqR6A+K8BzYArrZgvlCVGOXM495qxeCfxPXcrJb/1gQoMEakKfAI8bIw5RpDGk48expgOwCBghIj09H3SeI9NBPQcbRGJBW4APrKagt0HFwjENofUfO7GmH5leNseoJHPekOrjSLay52LiEQDvwZSfN5zBjhjLa8Ske1AS2BlSeOWNL5PHv8GZlqrRfVFqZWgD+4CBgN9rcHp1z4ohl+31Qa25C8iMXgL+zRjzKcAxph9Ps/7jqeAMMbssf7dLyL/xXuIap+I1DfGZFqHIPYHMge8/7GsPrftwe4DS2Hb7JexEVJ77mX0GXCbiMSJSDLQAlgOrABaiEiy9b/0bdZr/aUfsNkYs/tcg4jUEZEoa7mplcsOP8Y8F8f3+NuNwLlv4AvrC78TkYHAE8ANxpgsn/ag9AGB//0GWtDzt74jegPYZIx50ae9sPEUiBwSRKTauWW8X8yvx7vtw6yXDQNmBCoHywWfuoPZBz4K2+bPgDuts2a6Akd9Dt+UXKC/kfbjt8034j32dAbYB3zh89xYvGcebAEG+bSn4j0jYDsw1s/5vA3cd1HbTcAGYA2wGrg+QH3xH2AdsNYaCPWL64sA5JCB97jgGuvxz2D2QaB/v8F4BDt/oAfej/5rfX5vqUWNpwDk0BTvmUHfW+NkrNVeG1gAbAPmA7UCmEMCcAio4dMW0D7A+x9JJnDWqmP3FLbNeM+SecUaF+vwOTuwNA+dfkAppSJQJByWUUopdREt7kopFYG0uCulVATS4q6UUhFIi7tSSkUgLe5KKRWBtLgrpVQE+v/pM/ikfu5ytAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def plot_feet(ft):\n", + " def plot_foot(o,i):\n", + " x = [v[0] for v in o]\n", + " y = [v[1] for v in o]\n", + " z = [v[2] for v in o]\n", + " plt.subplot(3,2,i)\n", + " plt.plot(x, y);\n", + " plt.plot(x[0],y[0],\"og\")\n", + " plt.plot(x[-1],y[-1],\"Xr\")\n", + " plt.axis(\"equal\")\n", + " plt.grid(True);\n", + "\n", + " for i, leg in enumerate([1,6,2,5,3,4]):\n", + " plot_foot(ft[leg-1], i+1)\n", + " \n", + "plot_feet(ft)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def plot_foot(o):\n", + " x = [v[0] for v in o]\n", + " y = [v[1] for v in o]\n", + " z = [v[2] for v in o]\n", + " plt.plot(x, y);\n", + " plt.grid(True);\n", + " \n", + "plot_foot(ft[0])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "150.00000000000003" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "5*pi/6*180/pi" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "59.99999999999999" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pi/3*180/pi" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "'>' not supported between instances of 'list' and 'int'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0ma\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m5\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m6\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m>\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: '>' not supported between instances of 'list' and 'int'" + ] + } + ], + "source": [ + "a=[1,2,3,4,5,6]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/docs/jupyter/kinematics-R3.ipynb b/docs/jupyter/kinematics-R3.ipynb new file mode 100644 index 0000000..7f88136 --- /dev/null +++ b/docs/jupyter/kinematics-R3.ipynb @@ -0,0 +1,730 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# AX-12A Hexapod Kinematics\n", + "\n", + "Kevin Walchko, Phd\n", + "\n", + "25 Feb 2020\n", + "\n", + "-----------\n", + "\n", + "\"Creative
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.\n", + "\n", + "---\n", + "\n", + "**Still in development**\n", + "\n", + "- **Coxa:** hip segment which moves left/right in red\n", + "- **Femur:** blue segment\n", + "- **Tibia:** yellow segment" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "\n", + "import numpy as np\n", + "from matplotlib import pyplot as plt\n", + "# from sympy import symbols, sin, cos, pi, simplify\n", + "# from math import cos, sin, pi, atan2, sqrt, acos\n", + "import math" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Forward Kinematics\n", + "\n", + "The [modified DH parameters](https://en.wikipedia.org/wiki/Denavit%E2%80%93Hartenberg_parameters#Modified_DH_parameters) are:\n", + "\n", + "\n", + "| i |$a_i$ | $\\alpha_i$ | $d_i$ | $\\theta_i$ |\n", + "|---|:------|:-----------|:------|:-----------|\n", + "| 1 | body | 0 | 0 | $\\theta_1$ |\n", + "| 2 | coxa | 90 | 0 | $\\theta_2$ |\n", + "| 3 | femur | 0 | 0 | $\\theta_3$ |\n", + "| 4 | tibia | 90 | 0 | 0 |\n", + "\n", + "- $a_i$: **link length** in mm from $Z_{i-1}$ to $Z_i$ along $X_i$\n", + "- $\\alpha_i$: **twist angle** between $Z_{i-1}$ and $Z_i$ measured about $X_i$\n", + "- $d_i$: **offset distance** between $X_{i-1}$ and $X_i$ along $Z_i$\n", + "- $\\theta_i$: **rotation angle** between $X_{i-1}$ and $X_i$ measured about $Z_i$\n", + "\n", + "| Link | Name | mm |\n", + "|-------|--------|----|\n", + "| $L_1$ | coxa | 50 |\n", + "| $L_2$ | femur | 65 |\n", + "| $L_3$ | tibia | 68 |" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": {}, + "outputs": [], + "source": [ + "from sympy import symbols, sin, cos, pi, simplify\n", + "def makeT(a, alpha, d, theta):\n", + " # create a modified DH homogenious matrix\n", + " return np.array([\n", + " [ cos(theta), -sin(theta), 0, a],\n", + " [sin(theta)*cos(alpha), cos(theta)*cos(alpha), -sin(alpha), -d*sin(alpha)],\n", + " [sin(theta)*sin(alpha), cos(theta)*sin(alpha), cos(alpha), d*cos(alpha)],\n", + " [ 0, 0, 0, 1]\n", + " ])\n", + "\n", + "def simplifyT(tt):\n", + " \"\"\"\n", + " This goes through each element of a matrix and tries to simplify it.\n", + " \"\"\"\n", + " ret = []\n", + " for row in tt:\n", + " m = []\n", + " for col in row:\n", + " m.append(simplify(col))\n", + " ret.append(m[:])\n", + " return np.array(ret)\n", + "\n", + "def subs(tt, m):\n", + " \"\"\"\n", + " This allows you to simplify the trigonomic mess that kinematics can\n", + " create and also substitute in some inputs in the process\n", + " \n", + " Yes, this is basically the same as above. I could combine these into 1\n", + " function, but I wanted to beclearer on what I am doing.\n", + " \"\"\"\n", + " ret = tt.copy()\n", + " for i, row in enumerate(tt):\n", + " for j, col in enumerate(row):\n", + " try:\n", + " ret[i,j] = col.subs(m)\n", + " except:\n", + " ret[i,j] = simplify(col)\n", + " return ret" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": {}, + "outputs": [], + "source": [ + "t1, t2, t3 = symbols('t1 t2 t3')\n", + "l1, l2, l3 = symbols('l1 l2 l3')" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": {}, + "outputs": [], + "source": [ + "# a, alpha, d, theta\n", + "T1 = makeT(0, 0, 0, t1)\n", + "T2 = makeT(l1, pi/2, 0, t2)\n", + "T3 = makeT(l2, 0, 0, t3)\n", + "T4 = makeT(l3, pi/2, 0, 0)" + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T1 = [[cos(t1) -sin(t1) 0 0]\n", + " [sin(t1) cos(t1) 0 0]\n", + " [0 0 1 0]\n", + " [0 0 0 1]]\n", + "T2 = [[cos(t2) -sin(t2) 0 l1]\n", + " [0 0 -1 0]\n", + " [sin(t2) cos(t2) 0 0]\n", + " [0 0 0 1]]\n", + "T3 = [[cos(t3) -sin(t3) 0 l2]\n", + " [sin(t3) cos(t3) 0 0]\n", + " [0 0 1 0]\n", + " [0 0 0 1]]\n", + "T4 = [[1 0 0 l3]\n", + " [0 0 -1 0]\n", + " [0 1 0 0]\n", + " [0 0 0 1]]\n" + ] + } + ], + "source": [ + "print('T1 = ', T1)\n", + "print('T2 = ', T2)\n", + "print('T3 = ', T3)\n", + "print('T4 = ', T4)" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "T = [[(-sin(t2)*sin(t3) + cos(t2)*cos(t3))*cos(t1) sin(t1)\n", + " (sin(t2)*cos(t3) + sin(t3)*cos(t2))*cos(t1)\n", + " (l1 - l3*sin(t2)*sin(t3) + (l2 + l3*cos(t3))*cos(t2))*cos(t1)]\n", + " [(-sin(t2)*sin(t3) + cos(t2)*cos(t3))*sin(t1) -cos(t1)\n", + " (sin(t2)*cos(t3) + sin(t3)*cos(t2))*sin(t1)\n", + " (l1 - l3*sin(t2)*sin(t3) + (l2 + l3*cos(t3))*cos(t2))*sin(t1)]\n", + " [sin(t2)*cos(t3) + sin(t3)*cos(t2) 0 sin(t2)*sin(t3) - cos(t2)*cos(t3)\n", + " l3*sin(t3)*cos(t2) + (l2 + l3*cos(t3))*sin(t2)]\n", + " [0 0 0 1]]\n" + ] + } + ], + "source": [ + "T = T1.dot(T2.dot(T3.dot(T4)))\n", + "print('T = ', T)" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": {}, + "outputs": [], + "source": [ + "Tf = simplify(T)" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\left[\\begin{matrix}\\cos{\\left(t_{1} \\right)} \\cos{\\left(t_{2} + t_{3} \\right)} & \\sin{\\left(t_{1} \\right)} & \\sin{\\left(t_{2} + t_{3} \\right)} \\cos{\\left(t_{1} \\right)} & \\left(l_{1} + l_{2} \\cos{\\left(t_{2} \\right)} + l_{3} \\cos{\\left(t_{2} + t_{3} \\right)}\\right) \\cos{\\left(t_{1} \\right)}\\\\\\sin{\\left(t_{1} \\right)} \\cos{\\left(t_{2} + t_{3} \\right)} & - \\cos{\\left(t_{1} \\right)} & \\sin{\\left(t_{1} \\right)} \\sin{\\left(t_{2} + t_{3} \\right)} & \\left(l_{1} + l_{2} \\cos{\\left(t_{2} \\right)} + l_{3} \\cos{\\left(t_{2} + t_{3} \\right)}\\right) \\sin{\\left(t_{1} \\right)}\\\\\\sin{\\left(t_{2} + t_{3} \\right)} & 0 & - \\cos{\\left(t_{2} + t_{3} \\right)} & l_{2} \\sin{\\left(t_{2} \\right)} + l_{3} \\sin{\\left(t_{2} + t_{3} \\right)}\\\\0 & 0 & 0 & 1\\end{matrix}\\right]$" + ], + "text/plain": [ + "[[cos(t1)*cos(t2 + t3), sin(t1), sin(t2 + t3)*cos(t1), (l1 + l2*cos(t2) + l3*cos(t2 + t3))*cos(t1)], [sin(t1)*cos(t2 + t3), -cos(t1), sin(t1)*sin(t2 + t3), (l1 + l2*cos(t2) + l3*cos(t2 + t3))*sin(t1)], [sin(t2 + t3), 0, -cos(t2 + t3), l2*sin(t2) + l3*sin(t2 + t3)], [0, 0, 0, 1]]" + ] + }, + "execution_count": 175, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "Tf" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "position x: (l1 + l2*cos(t2) + l3*cos(t2 + t3))*cos(t1)\n", + "position y: (l1 + l2*cos(t2) + l3*cos(t2 + t3))*sin(t1)\n", + "position z: l2*sin(t2) + l3*sin(t2 + t3)\n" + ] + } + ], + "source": [ + "print('position x: {}'.format(Tf[0,3]))\n", + "print('position y: {}'.format(Tf[1,3]))\n", + "print('position z: {}'.format(Tf[2,3]))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Math" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": {}, + "outputs": [], + "source": [ + "leg = (50,65,68)" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": {}, + "outputs": [], + "source": [ + "from math import cos, sin, pi, atan2, sqrt, acos\n", + "def forward(t1,t2,t3, links, degrees=True):\n", + " l1,l2,l3 = links\n", + " \n", + " if degrees:\n", + " t1 *= pi/180\n", + " t2 *= pi/180\n", + " t3 *= pi/180\n", + " \n", + " x = (l1 + l2*cos(t2) + l3*cos(t2 + t3))*cos(t1)\n", + " y = (l1 + l2*cos(t2) + l3*cos(t2 + t3))*sin(t1)\n", + " z = l2*sin(t2) + l3*sin(t2 + t3)\n", + " return (x,y,z)" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(115.31727983645297, 115.31727983645295, -48.08326112068523)" + ] + }, + "execution_count": 182, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "forward(45,0,-45, leg)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Inverse Kinematics\n", + "\n", + "![](http://mathworld.wolfram.com/images/eps-gif/LawofCosines_1000.gif)\n", + "\n", + "\n", + "## Law of Cosines\n", + "\n", + "$$\n", + "a^2 = b^2 + c^2 - 2bc \\cos(A) \\rightarrow \\cos(A)=\\frac{-a^2+b^2+c^2}{2bc}\\\\\n", + "b^2 = a^2 + c^2 - 2ac \\cos(B) \\rightarrow \\cos(B)=\\frac{a^2-b^2+c^2}{2ac}\\\\\n", + "c^2 = a^2 + b^2 - 2ab \\cos(C) \\rightarrow \\cos(C)=\\frac{a^2+b^2-c^2}{2ab}\n", + "$$\n", + "\n", + "- [Wolfram: law of cosines](http://mathworld.wolfram.com/LawofCosines.html)\n", + "- [Cosine law calculator](https://www.calculatorsoup.com/calculators/geometry-plane/triangle-law-of-cosines.php)\n", + "\n", + "## Law of Sines\n", + "\n", + "$$\n", + "\\frac{a}{\\sin(A)} = \\frac{b}{\\sin(B)} = \\frac{c}{\\sin(C)}\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": {}, + "outputs": [], + "source": [ + "def cosinelaw(a,b,c):\n", + " # cos(g) = (a^2+b^2-c^2)/2ab\n", + " return acos((a**2+b**2-c**2)/(2*a*b))\n", + "\n", + "def inverse(x,y,z, links, degrees=True):\n", + " \"\"\"\n", + " Azimuth angle is between x and w and lies in the x-y plane\n", + " \n", + " ^ x\n", + " w |\n", + " \\ |\n", + " l1 \\ |\n", + " \\ |\n", + " \\|\n", + " <----------+ (z is out of the page - right hand rule)\n", + " y\n", + " \n", + " Most of the leg moves in the plane defined by w-z\n", + " \n", + " ^ z l3\n", + " | o-----o\n", + " | / \\ l4\n", + " | / l2 E\n", + " | /\n", + " +--o-------------> w\n", + " l1\n", + " \n", + " l1: coxa\n", + " l2: femur\n", + " l3: tibia\n", + " \n", + " All joint angles returned are in degrees: (t1, t2, t3)\n", + " \"\"\"\n", + " # mm\n", + " l1,l2,l3 = links\n", + " \n", + " w = sqrt(x**2+y**2) - l1\n", + " d = sqrt(w**2+z**2)\n", + " \n", + " t1 = atan2(y,x)\n", + " t2 = atan2(z,w)+cosinelaw(l2,d,l3)\n", + " t3 = cosinelaw(l2,l3,d)-pi\n", + " \n", + " if degrees:\n", + " t1 *= 180/pi\n", + " t2 *= 180/pi\n", + " t3 *= 180/pi\n", + " \n", + " return (t1,t2,t3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Test\n", + "\n", + "Let's test that both the forward and inverse kinematics agree ... and they should. The errors are printed below. Please note, that 0 and 360 degrees are the same thing. " + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [], + "source": [ + "# def testAng(a1,a2,a3):\n", + "# # all angles in degrees\n", + " \n", + "# print('*'*25)\n", + " \n", + "# f=forward(a1,a2,a3)\n", + "# print('Pts FK:', f)\n", + " \n", + "# f = f + (180+(a2+a3),)\n", + "# print('debug', f)\n", + "# i=inverse(*f)\n", + "# print('Angles IK [deg]:', i)\n", + " \n", + "# print('Delta Angles:')\n", + "# err = []\n", + "# for a,b in zip([a1,a2,a3,a4],i):\n", + "# err.append(a-b)\n", + " \n", + "# print(' a1:{:.2f} a2:{:.2f} a3:{:.2f} a4:{:.2f}'.format(err[0],err[1],err[2], err[3]))\n", + "\n", + "def testPos(x,y,z, links):\n", + " # a,y,z in mm\n", + " # o in deg measured from the floor, so if the leg is straight down, then o = 90 deg\n", + " \n", + " print('*'*25)\n", + " \n", + " i=inverse(x,y,z,links)\n", + " print('Angles IK [deg]:', i)\n", + " \n", + " f=forward(i[0], i[1], i[2], links)\n", + " print('Pts FK:', f)\n", + " \n", + " print('Delta Angles:')\n", + " err = []\n", + " for a,b in zip([x,y,z],f):\n", + " err.append(a-b)\n", + " \n", + " print(' x:{:.2f} y:{:.2f} z:{:.2f}'.format(err[0],err[1],err[2]))" + ] + }, + { + "cell_type": "code", + "execution_count": 160, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "*************************\n", + "Angles IK [deg]: (0.0, 2.555727551856687, -38.48183952164615)\n", + "Pts FK: (170.0, 0.0, -36.999999999999986)\n", + "Delta Angles:\n", + " x:0.00 y:0.00 z:-0.00\n", + "*************************\n", + "Angles IK [deg]: (0.0, 60.355608437273524, -116.53340171223132)\n", + "Pts FK: (120.00000000000001, 0.0, 7.105427357601002e-15)\n", + "Delta Angles:\n", + " x:-0.00 y:0.00 z:-0.00\n", + "*************************\n", + "Angles IK [deg]: (0.0, 82.61930045217325, -154.05417582934723)\n", + "Pts FK: (80.0, 0.0, -1.4210854715202004e-14)\n", + "Delta Angles:\n", + " x:0.00 y:0.00 z:0.00\n" + ] + } + ], + "source": [ + "testPos(170,0,-37, leg)\n", + "testPos(120,0,0, leg)\n", + "testPos(80,0,0, leg)" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": {}, + "outputs": [], + "source": [ + "# testAng(0,0,0,0)\n", + "# testAng(0,45,-45,-90)\n", + "# testAng(0,0,-90,0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Plot Leg Locations\n", + "\n", + "Let's get a visual of what is going on when we command a leg to a 3d location. The command is:\n", + "\n", + "```python\n", + "plotLeg(x,y,z,orientation)\n", + "```\n", + "\n", + "The *orientation* is the tarsus (foot) angle between the ground plane and the tarsus. Thus, if the tarsus is pointing straight down, the angle is 90 degrees. This is measured from the floor to the tarsus link." + ] + }, + { + "cell_type": "code", + "execution_count": 163, + "metadata": {}, + "outputs": [], + "source": [ + "def rplot(t1, t2, t3, links, degrees=True):\n", + " \"\"\"Given the 3 joint angles (in rads), plot the arm in the x-y and w-z planes\n", + " \n", + " x = (d2 + l1*cos(t2) + l2*cos(t2 + t3))*cos(t1)\n", + " y = (d2 + l1*cos(t2) + l2*cos(t2 + t3))*sin(t1)\n", + " z = l1*sin(t2) + l2*sin(t2 + t3)\n", + " \"\"\"\n", + " l1,l2,l3 = links\n", + "\n", + " ptsx = [0]\n", + " ptsy = [0]\n", + " \n", + " if degrees:\n", + " t1 *= pi/180\n", + " t2 *= pi/180\n", + " t3 *= pi/180\n", + " \n", + " \n", + " # our definition is reverse or these joints\n", + " # link 1\n", + " x0 = l1\n", + " y0 = 0\n", + " ptsx.append(x0)\n", + " ptsy.append(y0)\n", + " \n", + " # link 2\n", + " x1 = x0 + l2*cos(t2)\n", + " y1 = y0 + l2*sin(t2)\n", + " ptsx.append(x1)\n", + " ptsy.append(y1)\n", + " \n", + " # link 3\n", + " x2 = x1 + l3*cos(t2 + t3)\n", + " y2 = y1 + l3*sin(t2 + t3)\n", + " ptsx.append(x2)\n", + " ptsy.append(y2)\n", + " \n", + " plt.subplot(1,2,1,projection='polar')\n", + " plt.plot([0, t1], [0, 1.0])\n", + " plt.grid(True)\n", + " plt.title('Azimuth Angle (x-y plane)\\n')\n", + " \n", + " plt.subplot(1,2,2)\n", + " plt.plot(ptsx, ptsy, 'b-', marker='o')\n", + " plt.axis('equal')\n", + " plt.grid(True)\n", + " plt.title('w-z Plane') \n", + "\n", + "def plotLeg(x, y, z, links):\n", + " \"\"\"Given a point (in inches) and orientation (in rads), this calculates\n", + " the joint angles, then uses those angles to calculate the forward solution\n", + " and prints out the error. It also plots the arm.\n", + " \"\"\"\n", + " angles = inverse(x, y, z, links)\n", + " angles = list(angles)\n", + " \n", + " for i, a in enumerate(angles):\n", + " if a > 180:\n", + " angles[i] = -360 + a\n", + " \n", + " a,b,c = angles\n", + " print(f'Angles: {a:.2f} {b:.2f} {c:.2f}')\n", + " \n", + " print(f'w-z plane (w,z): {sqrt(x**2 + y**2):.2f} {z:.2f}')\n", + "\n", + " rplot(a,b,c,links)" + ] + }, + { + "cell_type": "code", + "execution_count": 164, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Angles: 0.00 25.26 -66.39\n", + "w-z plane (w,z): 160.00 -17.00\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotLeg(160,0,-17, leg)" + ] + }, + { + "cell_type": "code", + "execution_count": 165, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Angles: -45.00 25.38 -111.66\n", + "w-z plane (w,z): 113.14 -40.00\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotLeg(80,-80,-40, leg)" + ] + }, + { + "cell_type": "code", + "execution_count": 166, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Angles: 0.00 -1.92 -92.26\n", + "w-z plane (w,z): 110.00 -70.00\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotLeg(110,0,-70, leg)" + ] + }, + { + "cell_type": "code", + "execution_count": 167, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Angles: 0.00 82.62 -154.05\n", + "w-z plane (w,z): 80.00 0.00\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plotLeg(80,0,0, leg)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "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.8.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/multiped/__init__.py b/multiped/__init__.py index 688e001..7de9670 100644 --- a/multiped/__init__.py +++ b/multiped/__init__.py @@ -19,5 +19,4 @@ __author__ = 'Kevin J. Walchko' __license__ = 'MIT' -# __version__ = '0.5.0' __version__ = version("multiped") diff --git a/multiped/alt/control.py b/multiped/alt/control.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/multiped/alt/control.py @@ -0,0 +1 @@ + diff --git a/multiped/alt/gait.py b/multiped/alt/gait.py new file mode 100644 index 0000000..df7dab0 --- /dev/null +++ b/multiped/alt/gait.py @@ -0,0 +1,163 @@ +from math import sin, cos, pi +import numpy as np +import time + +class Vector: + __data = None + + def __init__(self, x=0,y=0,z=0): + self.__data = [x,y,z] + + def __index__(self, i): + return self.__data[i] + + @property + def x(self): + return self.__data[0] + @x.setter + def x(self, x): + self.__data[0] = x + + @property + def y(self): + return self.__data[1] + @y.setter + def y(self, y): + self.__data[1] = y + + @property + def z(self): + return self.__data[2] + @z.setter + def z(self, z): + self.__data[2] = z + +class Foot: + position = None + orientation = 0 # yaw only + cycle = 0 + + def __init__(self, x=0, y=0, z=0, theta=0, cycle=0): + self.position = Vector(x,y,z) + self.orientation = theta + self.cycle = cycle + +class Twist: + linear = Vector() + angular = Vector() + +class Pose2D: + x = 0 + y = 0 + theta = 0 + + + + +class Gait: + def __init__(self): + self.cycle_period = 25 + + # tripod + self.gait_factor = 1.0 + # self.cycle_leg_number = [1,0,1,0,1,0] # Leg gait order (grouping) ['RR', 'RM', 'RF', 'LR', 'LM', 'LF'] + self.last_time = time.monotonic() + self.cycle_length = ?? # config + self.leg_lift_height = 50 # config + + self.feet = [ + Foot(cycle=1), + Foot(cycle=0), + Foot(cycle=1), + Foot(cycle=0), + Foot(cycle=1), + Foot(cycle=0) + ] + + self.lpf = Pose2D() + + def cyclePeriod(self, base, gait_vel): + period_height = sin(self.cycle_period*pi/self.cycle_length) + + current_time = time.monotonic() + dt = current_time - self.last_time + self.last_time = current_time + + gait_vel.linear.x = pi*base.x / cycle_length * period_height * (1/dt) + gait_vel.linear.y = -pi*base.y / cycle_length * period_height * (1/dt) + gait_vel.angular.z = pi*base.theta * period_height * (1/dt) + + for i, foot in enumerate(self.feet): + if foot.cycle == 0: + period_distance = cos( self.cycle_period * pi / self.cycle_length) + foot.position.x = base.x * period_distance + foot.position.y = base.y * period_distance + foot.position.z = leg_lift_height * period_height + foot.orientation = base.theta * period_distance + elif foot.cycle == 1: + period_distance = cos( self.cycle_period * pi / self.cycle_length) + foot.position.x = -base.x * period_distance + foot.position.y = -base.y * period_distance + foot.position.z = 0 + foot.orientation = -base.theta * period_distance + + def gaitCycle(self, cmd_vel, gait_vel): + base = Pose2D() + base.x = cmd_vel.linear.x / pi * cycle_length + base.y = cmd_vel.linear.y / pi * cycle_length + base.theta = cmd_vel.angular.z / pi * cycle_length + + # Low pass filter on the values to avoid jerky movements due to rapid value changes + smooth_base = self.lpf + smooth_base.x = base.x * 0.05 + ( smooth_base.x * ( 1.0 - 0.05 ) ); + smooth_base.y = base.y * 0.05 + ( smooth_base.y * ( 1.0 - 0.05 ) ); + smooth_base.theta = base.theta * 0.05 + ( smooth_base.theta * ( 1.0 - 0.05 ) ); + + if abs(self.lpf.x) > 0.001 or abs(self.lpf.y) > 0.001 or abs(self.lpf.theta) > 0.0043: + self.is_travelling = True + else: + self.is_travelling = False + + # check if in non-rest position + + if self.is_travelling is True or in_cycle is True: + self.cyclePeriod(self.lpf, gait_vel) + self.cycle_period += 1 + else: + self.cycle_period = 0 + + if self.cycle_period == self.cycle_length: + self.cycle_period = 0 + + # switch sequence on the foot cycle + for foot in self.feet: + if foot.cycle == 0: + foot.cycle = 1 + else: + foot.cycle = 0 + + + + + + + + + + + + + + + + + + + + + + + + + +## diff --git a/multiped/alt/ik.py b/multiped/alt/ik.py new file mode 100644 index 0000000..123d150 --- /dev/null +++ b/multiped/alt/ik.py @@ -0,0 +1,75 @@ +############################################# +# The MIT License (MIT) +# Copyright (c) 2016 Kevin Walchko +# see LICENSE for full details +############################################## + +# import numpy as np +from math import sin, cos, acos, atan2, sqrt, pi, fabs +# from math import radians as d2r +# from math import degrees as r2d +from .utils import constrain +from .utils import cosinelaw +from .utils import rad2deg, deg2rad + +# def sq(x): +# return x*x + +class Leg3: + """ + parameter file: + { + "legs": { + 0: { + "linkLengths": [coxa, femur, tibia], # mm + "servoOffsets": [s0, s1, s2], # radians + "servoLimits": [(min,max), (min,max), (min, max)] # radians + "ids": [4,5,6] # servo ID numbers + } + } + } + """ + def __init__(self, params): + self.linkLengths = params["linkLengths"] + self.servoOffsets = list(deg2rad*x for x in params["servoOffsets"]) + self.servoLimits = list((deg2rad*a, deg2rad*b) for a,b in params["servoLimits"]) + self.ids = params["ids"] + + def forward(self, t1,t2,t3, deg=True): + """ + Forward kinematics of the leg where angles a,b,c can be degrees [default] + or radians. Output is in the same units as the link lengths. + """ + l1,l2,l3 = self.linkLengths + + if degrees: + t1 *= deg2rad + t2 *= deg2rad + t3 *= deg2rad + + x = (l1 + l2*cos(t2) + l3*cos(t2 + t3))*cos(t1) + y = (l1 + l2*cos(t2) + l3*cos(t2 + t3))*sin(t1) + z = l2*sin(t2) + l3*sin(t2 + t3) + return (x,y,z) + + def inverse(self, x,y,z, degrees=False): + """ + Given a point in 3D space (x,y,z), this returns the joint angles in + radians [default] or degrees as a tuple (theta1, theta2, theta3). + """ + # mm + l1,l2,l3 = self.linkLengths + + w = sqrt(x**2+y**2) - l1 + d = sqrt(w**2+z**2) + + t1 = atan2(y,x) + t2 = atan2(z,w)+cosinelaw(l2,d,l3) + t3 = cosinelaw(l2,l3,d)-pi + + if degrees: + t1 *= rad2deg + t2 *= rad2deg + t3 *= rad2deg + + return (t1,t2,t3) diff --git a/multiped/engine.py b/multiped/engine.py index 20ec6e0..17d15fc 100644 --- a/multiped/engine.py +++ b/multiped/engine.py @@ -3,75 +3,41 @@ # Copyright (c) 2016 Kevin Walchko # see LICENSE for full details ############################################## - -from pyservos import ServoSerial -from pyservos import Packet -# from pyservos import ServoTypes -from pyservos.packet import angle2int -from pyservos.utils import le -from multiped.Servo import Servo +# from pyservos.utils import angle2int +from multiped.kinematics3 import Leg3 import time +from colorama import Fore +from pprint import pprint +from math import pi -debug = True +def printError(e): + print(f"{Fore.RED}*** {e} ***{Fore.RESET}") -def dprint(s): - global debug - if debug: - print(s) +def printWarn(w): + print(f"{Fore.YELLOW}*** {w} ***{Fore.RESET}") +def printInfo(i): + print(f">>{Fore.CYAN} {i} {Fore.RESET}") -# def calc_rpm(da, wait): -# """ -# Given an angular delta and a wait time, calculate the rpm needed to achieve -# -# [Join Mode] -# 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. -# If it is set to 0, it means the maximum rpm of the motor is used -# without controlling the speed. If it is 1023, it is about 114rpm. -# For example, if it is set to 300, it is about 33.3 rpm. -# -# AX12 max rmp is 59 (max speed 532) -# rev min 360 deg deg -# --- ------- ------- = 6 ---- -# min 60 sec rev sec -# -# rpm = abs(new_angle - old_angle)/(0.111 * wait * 6) -# """ -# return int(abs(da)/(0.111*wait*6)) +def pprintInfo(i): + print(f">>{Fore.CYAN}") + pprint(i) + print(f"{Fore.RESET}", end="") -# def calc_wait(da, speed): -# """ -# Given an angular delta and the speed (servo counts), calculate the how long -# to wait for the servo to complete the movement -# -# [Join Mode] -# 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. -# If it is set to 0, it means the maximum rpm of the motor is used -# without controlling the speed. If it is 1023, it is about 114rpm. -# For example, if it is set to 300, it is about 33.3 rpm. -# -# AX12 max rmp is 59 (max speed 532) -# rev min 360 deg deg -# --- ------- ------- = 6 ---- -# min 60 sec rev sec -# -# da deg -# wait = ---------------------------------------- -# rpm 360 deg min -# 0.111 --- * speed_cnt * ------- * ------ -# cnt rev 60 sec -# -# wait = abs(new_angle - old_angle)/(0.111 * speed * 6) -# """ -# try: -# w = abs(da)/(0.111*speed*6) -# except ZeroDivisionError: -# w = 1 -# print("*** calc_wait() div error: {}".format(speed)) -# -# return w + +class DummySerial: + enable = True + def write(self, pkt): + if not self.enable: + return + + print(f">>{Fore.CYAN} serial.write[{len(pkt)}]: {Fore.YELLOW}[",end="") + for p in pkt: + print(int(p),end=",") + print(f"]{Fore.RESET}") + class Engine(object): @@ -79,192 +45,259 @@ class Engine(object): This class holds the serial port and talks to the hardware. Other classes ( e.g., gait, legs and servos) do the calculations for walking. """ - + current_move = None last_move = None + gait = None + serial = None + packet = None + legs = [0]*6 - def __init__(self, data, servoType): + def __init__(self, data, serialPort, packet): """ - data: serial port to use, if none, then use dummy port - servoType: AX12 or XL320 or other servo type - curr_pos: current leg position - bcm_pin: which gpio pin is used for the comm - { - 0: [(t0,t1,t2,t3,speed), ...] - 1: [...] - ... - 3: [...] - } + data: various info + serialPort: serial port object """ - if 'bcm_pin' in data: - bcm_pin = data['bcm_pin'] + self.serial = serialPort + if self.serial: + self.serial.open() else: - bcm_pin = None - - # self.wait = wait - # determine serial port - # default to fake serial port - if 'serialPort' in data: - try: - self.serial = ServoSerial(data['serialPort'], pi_pin=bcm_pin) - print('Using servo serial port: {}'.format(data['serialPort'])) - self.serial.open() - - except Exception as e: - print(e) - print('Engine::init(): bye ...') - exit(1) - else: - print('*** Using dummy serial port!!! ***') - self.serial = ServoSerial('dummy') - # raise Exception('No serial port given') - - # handle servos ... how does it know how many servos??? - self.servos_up = {} # check servos are operating - self.servos = [] - for ID, seg in enumerate(['coxa', 'femur', 'tibia', 'tarsus']): - length, offset = data[seg] - self.servos.append(Servo(ID, offset)) - # resp = self.pingServo(ID) # return: (T/F, servo_angle) - # self.servos[ID] = resp[0] - # curr_angle[ID] = - # for s, val in self.servos.items(): - # if val is False: - # print("*** Engine.__init__(): servo[{}] has failed".format(s)) - - self.packet = Packet(servoType) - - # keep track of last location, this is servo angle space - # self.last_move = { - # 0: curr_pos[0][0], - # 1: curr_pos[1][0], - # 2: curr_pos[2][0], - # 3: curr_pos[3][0] - # } - self.last_move = self.getCurrentAngles() - - def getCurrentAngles(self): - """ - Returns the current angles for all servos in DH space as a dictionary. - angles = { - 0: [0.0, 130.26, -115.73, -104.52], - 1: [0.0, 130.26, -115.73, -104.52], - 2: [0.0, 130.26, -115.73, -104.52], - 3: [0.0, 130.26, -115.73, -104.52], - } - - FIXME: actually query the servos and get there angles in DH space - """ - angles = { - 0: [0.0, 130.26, -115.73, -104.52], - 1: [0.0, 130.26, -115.73, -104.52], - 2: [0.0, 130.26, -115.73, -104.52], - 3: [0.0, 130.26, -115.73, -104.52], - } - return angles - - def DH2Servo(self, angle, num): - return self.servos[num].DH2Servo(angle) - - def moveLegsGait4(self, legs): + self.serial = DummySerial() + self.serial.enable = False + + self.packet = packet() + + try: + for leg in range(6): + self.legs[leg] = Leg3(data["legs"][leg]) + except Exception as e: + # print(f"{Fore.RED}*** {e} ***{Fore.RESET}") + printError(e) + raise + + def setGait(self, gait): + self.gait = gait() + + def wait(self, start): """ - gait or sequence? - speed = 1 - 1023 (scalar, all servos move at same rate) - { step 0 step 1 ... - 0: [(t1,t2,t3,t4,speed), (t1,t2,t3,t4,speed), ...] # leg0 - 2: [(t1,t2,t3,t4,speed), (t1,t2,t3,t4,speed), ...] # leg2 - ... - } where t=theta - NOTE: each leg needs the same number of steps and servos per leg - WARNING: these angles are in servo space [0-300 deg] - - [Join Mode] - 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. - If it is set to 0, it means the maximum rpm of the motor is used - without controlling the speed. If it is 1023, it is about 114rpm. - For example, if it is set to 300, it is about 33.3 rpm. - - AX12 max rmp is 59 (max speed 532) - rev min 360 deg deg - --- ------- ------- = 6 ---- - min 60 sec rev sec - - sleep time = | (new_angle - old_angle) /(0.111 * min_speed * 6) | + This will wait until the farthest move is done """ - # get the keys and figure out some stuff - keys = list(legs.keys()) # which legs are we moving - numSteps = len(legs[keys[0]]) # how many steps in the cycle - numServos = len(legs[keys[0]][0])-1 # how many servos per leg, -1 because speed there - - # if self.last_move is None: - # # assume we just turned on and was in the sit position - # # need a better solution - # self.last_move = { - # 0: legs[0][0], - # 1: legs[1][0], - # 2: legs[2][0], - # 3: legs[3][0] - # } - - # curr_move = {} - # for each step in legs - for step in range(numSteps): - # dprint("\nStep[{}]===============================================".format(step)) - data = [] - - # find max time we have to wait for all 4 legs to reach their end - # point. - max_wait = 0 - for legNum in keys: - angles = legs[legNum][step][:4] - speed = legs[legNum][step][4] - # print(" speed", speed) - for a, oa in zip(angles, self.last_move[legNum][:4]): - da = abs(a-oa) - w = calc_wait(da, speed) - # print(" calc_wait: {:.3f}".format(w)) - # print("calc_wait: {}".format(w)) - max_wait = w if w > max_wait else max_wait - - # print(">> found wait", max_wait, " speed:", speed) - - servo_speeds = [100,125,150,200] - - # for legNum in [0,3,1,2]: - for legNum in keys: - # dprint(" leg[{}]--------------".format(legNum)) - leg_angles_speed = legs[legNum][step] - # print(leg_angles_speed) - angles = leg_angles_speed[:4] # 4 servo angles - speed = leg_angles_speed[4] - # print("Speed:", speed, "wait", max_wait) - - for i, DH_angle in enumerate(angles): - # oldangle = self.last_move[legNum][i] - # due to rounding errors, to ensure the other servers finish - # BEFORE time.sleep(max_wait) ends, the the function it - # has less time - # spd = calc_rpm((angle - oldangle), 0.9*max_wait) - # now that i am scaling the spd parameter above, I sometimes - # exceed the original speed number, so saturate it if - # necessary - # spd = spd if spd <= speed else speed - # sl, sh = le(spd) - sl, sh = le(servo_speeds[i]) - servo_angle = self.DH2Servo(DH_angle, i) - al, ah = angle2int(servo_angle) # angle - data.append([legNum*numServos + i+1, al, ah, sl, sh]) # ID, low angle, high angle, low speed, high speed - # data.append([legNum*numServos + i+1, al, ah]) # ID, low angle, high angle, low speed, high speed - - self.last_move[legNum] = leg_angles_speed - - pkt = self.packet.makeSyncWritePacket(self.packet.base.GOAL_POSITION, data) + diff = [0]*18 + for i, (a, b) in enumerate(zip(self.current_move, self.last_move)): + diff[i] = abs(a - b) + mag = max(diff) + speed = 180/pi*1023/300*1/1207.14 # FIXME: this is wrong + + stop = time.time() + delay = mag*speed + dt = stop - start + + # if we haven't taken too much time already, sleep, else return + if delay > dt: + time.sleep(delay - dt) + # printInfo(f"engin.wait(): {1000*delay-dt:.2f} msec") + else: + # print(f"{Fore.RED}Too quick on engine.wait() {Fore.RESET}") + printError("Too quick on engine.wait()") + + self.last_move = self.current_move.copy() + + def move(self, x, y, z, theta): + # get the foot (x,y,z) locations for one cycle + feet = self.gait.command(x,y,z,theta) + pprintInfo(feet[0]) + info = [0]*18 # [[ID, angle], [ID, angle], ...] + if self.current_move is None: + self.current_move = [pi*0.5]*18 + if self.last_move is None: + self.last_move = self.current_move.copy() + + for step in range(len(feet[0])): + start = time.time() + for leg in range(6): + angles = self.legs[leg].inverse(*feet[leg][step]) # (angle, angle, angle) + ids = self.legs[leg].ids + for id, angle in zip(ids, angles): + info[id-1] = (id,) + tuple(angle2int(angle)) # data for servo sync write + self.current_move[id-1] = angle # calc wait time + + # printInfo(self.current_move) + pkt = self.packet.makeSyncWritePacket(self.packet.GOAL_POSITION, info) self.serial.write(pkt) - dprint("sent serial packet leg: {}".format(legNum)) - data = [] - print('max_wait', max_wait) - time.sleep(max_wait) + self.wait(start) # wait for motors to complete move + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + # def moveLegsGait(self, legs): + # """ + # gait or sequence? + # speed = 1 - 1023 (scalar, all servos move at same rate) + # { step 0 step 1 ... + # 0: [(t1,t2,t3,t4,speed), (t1,t2,t3,t4,speed), ...] # leg0 + # 2: [(t1,t2,t3,t4,speed), (t1,t2,t3,t4,speed), ...] # leg2 + # ... + # } where t=theta + # NOTE: each leg needs the same number of steps and servos per leg + # WARNING: these angles are in servo space [0-300 deg] + # + # [Join Mode] + # 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. + # If it is set to 0, it means the maximum rpm of the motor is used + # without controlling the speed. If it is 1023, it is about 114rpm. + # For example, if it is set to 300, it is about 33.3 rpm. + # + # AX12 max rmp is 59 (max speed 532) + # rev min 360 deg deg + # --- ------- ------- = 6 ---- + # min 60 sec rev sec + # + # sleep time = | (new_angle - old_angle) /(0.111 * min_speed * 6) | + # """ + # # get the keys and figure out some stuff + # keys = list(legs.keys()) # which legs are we moving + # numSteps = len(legs[keys[0]]) # how many steps in the cycle + # numServos = len(legs[keys[0]][0])-1 # how many servos per leg, -1 because speed there + # + # # if self.last_move is None: + # # # assume we just turned on and was in the sit position + # # # need a better solution + # # self.last_move = { + # # 0: legs[0][0], + # # 1: legs[1][0], + # # 2: legs[2][0], + # # 3: legs[3][0] + # # } + # + # # curr_move = {} + # # for each step in legs + # for step in range(numSteps): + # # dprint("\nStep[{}]===============================================".format(step)) + # data = [] + # + # # find max time we have to wait for all 4 legs to reach their end + # # point. + # max_wait = 0 + # for legNum in keys: + # angles = legs[legNum][step][:4] + # speed = legs[legNum][step][4] + # # print(" speed", speed) + # for a, oa in zip(angles, self.last_move[legNum][:4]): + # da = abs(a-oa) + # w = calc_wait(da, speed) + # # print(" calc_wait: {:.3f}".format(w)) + # # print("calc_wait: {}".format(w)) + # max_wait = w if w > max_wait else max_wait + # + # # print(">> found wait", max_wait, " speed:", speed) + # + # servo_speeds = [100,125,150,200] + # + # # for legNum in [0,3,1,2]: + # for legNum in keys: + # # dprint(" leg[{}]--------------".format(legNum)) + # leg_angles_speed = legs[legNum][step] + # # print(leg_angles_speed) + # angles = leg_angles_speed[:4] # 4 servo angles + # speed = leg_angles_speed[4] + # # print("Speed:", speed, "wait", max_wait) + # + # for i, DH_angle in enumerate(angles): + # # oldangle = self.last_move[legNum][i] + # # due to rounding errors, to ensure the other servers finish + # # BEFORE time.sleep(max_wait) ends, the the function it + # # has less time + # # spd = calc_rpm((angle - oldangle), 0.9*max_wait) + # # now that i am scaling the spd parameter above, I sometimes + # # exceed the original speed number, so saturate it if + # # necessary + # # spd = spd if spd <= speed else speed + # # sl, sh = le(spd) + # sl, sh = le(servo_speeds[i]) + # servo_angle = self.DH2Servo(DH_angle, i) + # al, ah = angle2int(servo_angle) # angle + # data.append([legNum*numServos + i+1, al, ah, sl, sh]) # ID, low angle, high angle, low speed, high speed + # # data.append([legNum*numServos + i+1, al, ah]) # ID, low angle, high angle, low speed, high speed + # + # self.last_move[legNum] = leg_angles_speed + # + # pkt = self.packet.makeSyncWritePacket(self.packet.base.GOAL_POSITION, data) + # self.serial.write(pkt) + # dprint("sent serial packet leg: {}".format(legNum)) + # data = [] + # print('max_wait', max_wait) + # time.sleep(max_wait) + # + # # time.sleep(1) - # time.sleep(1) @@ -311,8 +344,57 @@ def moveLegsGait4(self, legs): +# def calc_rpm(da, wait): +# """ +# Given an angular delta and a wait time, calculate the rpm needed to achieve +# +# [Join Mode] +# 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. +# If it is set to 0, it means the maximum rpm of the motor is used +# without controlling the speed. If it is 1023, it is about 114rpm. +# For example, if it is set to 300, it is about 33.3 rpm. +# +# AX12 max rmp is 59 (max speed 532) +# rev min 360 deg deg +# --- ------- ------- = 6 ---- +# min 60 sec rev sec +# +# rpm = abs(new_angle - old_angle)/(0.111 * wait * 6) +# """ +# return int(abs(da)/(0.111*wait*6)) +# def calc_wait(da, speed): +# """ +# Given an angular delta and the speed (servo counts), calculate the how long +# to wait for the servo to complete the movement +# +# [Join Mode] +# 0 ~ 1,023(0x3FF) can be used, and the unit is about 0.111rpm. +# If it is set to 0, it means the maximum rpm of the motor is used +# without controlling the speed. If it is 1023, it is about 114rpm. +# For example, if it is set to 300, it is about 33.3 rpm. +# +# AX12 max rmp is 59 (max speed 532) +# rev min 360 deg deg +# --- ------- ------- = 6 ---- +# min 60 sec rev sec +# +# da deg +# wait = ---------------------------------------- +# rpm 360 deg min +# 0.111 --- * speed_cnt * ------- * ------ +# cnt rev 60 sec +# +# wait = abs(new_angle - old_angle)/(0.111 * speed * 6) +# """ +# try: +# w = abs(da)/(0.111*speed*6) +# except ZeroDivisionError: +# w = 1 +# print("*** calc_wait() div error: {}".format(speed)) +# +# return w # def pprint(self, i, step): # print('***', i, '*'*25) diff --git a/multiped/gait.py b/multiped/gait.py index de6e529..6495530 100644 --- a/multiped/gait.py +++ b/multiped/gait.py @@ -4,45 +4,224 @@ # see LICENSE for full details ############################################## -from __future__ import print_function -from __future__ import division from math import cos, sin, sqrt, pi +from multiped.utils import constrain, Rz +import numpy as np + + +class TripodGait: + case = (1,2,1,2,1,2) + home = np.array([60,0,-50]) + body = (0,0,0) + + def compute_strides(self,commandedX,commandedY,commandedZ, commandedR): + # compute stride lengths + self.strideX = 90*commandedX + self.strideY = 90*commandedY + self.strideR = pi/4*commandedR # was 35 + + # compute rotation trig + self.sinRotZ = sin(self.strideR) + self.cosRotZ = cos(self.strideR) + + # print(f">> stride: {self.strideX} {self.strideY} {self.strideR}") + # print(f">> rot: {self.sinRotZ} {self.cosRotZ}\n") + + def compute_amplitudes(self): + # compute total distance from center of body to toe + totalX = self.home[0] + self.body[0] + totalY = self.home[1] + self.body[1] + + # compute rotational offset + rotOffsetX = totalY*self.sinRotZ + totalX*self.cosRotZ - totalX + rotOffsetY = totalY*self.cosRotZ - totalX*self.sinRotZ - totalY + + # compute X and Y amplitude and constrain to prevent legs from crashing into each other + amplitudeX = (self.strideX + rotOffsetX)/2.0 + amplitudeY = (self.strideY + rotOffsetY)/2.0 + amplitudeX = constrain(amplitudeX,-50,50) + amplitudeY = constrain(amplitudeY,-50,50) + + # compute Z amplitude + step_height_multiplier = 1.0 + if (abs(self.strideX + rotOffsetX) > abs(self.strideY + rotOffsetY)): + amplitudeZ = step_height_multiplier * (self.strideX + rotOffsetX) / 4.0 + else: + amplitudeZ = step_height_multiplier * (self.strideY + rotOffsetY) / 4.0 + + return amplitudeX,amplitudeY,amplitudeZ + + def command(self, commandedX, commandedY, commandedZ, commandedR): + """ + Given a command, this returns an array of movments for one cycle + + return: + feet = { + 0: [(x0,y0,z0), (x1,y1,z1), ... (xn,yn,zn)] # leg0, all foot locations for one cycle + 1: [...] + ... + 5: [...] + } + """ + min_cmd = 0.1 + if((abs(commandedX) < min_cmd) or (abs(commandedY) < min_cmd) and (abs(commandedR) > 360)): + return None + + feet = { + 0: [], 1: [], 2: [], 3: [], 4: [], 5: [], + } + + case = ((1,2,1,2,1,2),(2,1,2,1,2,1)) + + for s in (0,1): + self.case = case[s] + max_step = 12 + for i in range(max_step): + steps = self.one_time_step(commandedX, commandedY, commandedZ, commandedR, i/max_step) + for leg in range(6): + feet[leg].append(steps[leg]) + + # print(f">> feet0: {feet[0]}") + return feet + + + def one_time_step(self, commandedX, commandedY, commandedZ, commandedR, dstep): + # print(f">> step: {dstep}") + ret = [0]*6 + self.compute_strides(commandedX, commandedY, commandedZ, commandedR) + amplitudeX,amplitudeY,amplitudeZ = self.compute_amplitudes() + # print(f">> Amp: {amplitudeX} {amplitudeY} {amplitudeZ}") + # numTicks = int(duration / FRAME_TIME_MS / 2.0) # total ticks divided into the two cases + # rot = [-pi/6, -pi/2, -5*pi/6,5*pi/6, pi/2, pi/6] + rot = [-pi/6, -pi/2, -5*pi/6, 5*pi/6+pi, pi/2+pi, pi/6+pi] + for leg_num in [0,1,2,3,4,5]: + # amplitudeX,amplitudeY,amplitudeZ = self.compute_amplitudes() + # print(f">> Amp: {amplitudeX} {amplitudeY} {amplitudeZ}") + if self.case[leg_num] == 1: # move foot forward (raise and lower) + # ret[leg_num] = [0,0,0] + # ret[leg_num][0] = self.home[0] - amplitudeX*cos(pi*dstep) + # ret[leg_num][1] = self.home[1] - amplitudeY*cos(pi*dstep) + # ret[leg_num][2] = self.home[2] + abs(amplitudeZ)*sin(pi*dstep) + # if (dstep >= 1.0): + # self.case[leg_num] = 2 + angle = rot[leg_num] + R = Rz(angle) + m = np.array([ + - amplitudeX*cos(pi*dstep), + - amplitudeY*cos(pi*dstep), + abs(amplitudeZ)*sin(pi*dstep) + ]) + ft = R @ (self.home + m) + ret[leg_num] = ft + + elif self.case[leg_num] == 2: # move foot back (on the ground) + # ret[leg_num] = [0,0,0] + # ret[leg_num][0] = self.home[0] + amplitudeX*cos(pi*dstep) + # ret[leg_num][1] = self.home[1] + amplitudeY*cos(pi*dstep) + # ret[leg_num][2] = self.home[2] + # if (dstep >= 1.0): + # self.case[leg_num] = 1 + angle = rot[leg_num] + R = Rz(angle) + m = np.array([ + + amplitudeX*cos(pi*dstep), + + amplitudeY*cos(pi*dstep), + 0 + ]) + ft = R @ (self.home + m) + ret[leg_num] = ft + + # print(f">> feet: {ret}") + return ret + + + + + + + + + + + + + + + + + + + + -debug = False -def rot_z_tuple(t, c): - """ - t - theta [radians] - c - [x,y,z] - return - (x,y,z) tuple rotated about z-axis - """ - ans = ( - c[0]*cos(t)-c[1]*sin(t), - c[0]*sin(t)+c[1]*cos(t), - c[2] - ) - return ans -# make a static method in Gait? Nothing else uses it -def rot_z(t, c): - """ - t - theta [radians] - c - [x,y,z] - return - [x,y,z] numpy array rotated about z-axis - """ - ans = [ - c[0]*cos(t)-c[1]*sin(t), - c[0]*sin(t)+c[1]*cos(t), - c[2] - ] - return ans + + + + + + + + + + + + + + + + + + + + + + + + + + +# debug = False +# +# +# def rot_z_tuple(t, c): +# """ +# t - theta [radians] +# c - [x,y,z] +# return - (x,y,z) tuple rotated about z-axis +# """ +# ans = ( +# c[0]*cos(t)-c[1]*sin(t), +# c[0]*sin(t)+c[1]*cos(t), +# c[2] +# ) +# +# return ans +# +# +# # make a static method in Gait? Nothing else uses it +# def rot_z(t, c): +# """ +# t - theta [radians] +# c - [x,y,z] +# return - [x,y,z] numpy array rotated about z-axis +# """ +# ans = [ +# c[0]*cos(t)-c[1]*sin(t), +# c[0]*sin(t)+c[1]*cos(t), +# c[2] +# ] +# +# return ans + # class Tripod: # def __init__(self, neutral, forward, back, count): # self.build_forward() @@ -57,198 +236,198 @@ def rot_z(t, c): # return tri -class Gait(object): - """ - Base class for gaits. Gait only plan all foot locations for 1 complete cycle - of the gait. - - Like to add center of mass (CM) compensation, so we know the CM is always - inside the stability triangle. - - Gait knows: - - how many legs - - leg stride (neutral position) - """ - # these are the offsets of each leg - legOffset = [0, 6, 3, 9] - # frame rotations for each leg - # cmrot = [pi/4, -pi/4, -3*pi/4, 3*pi/4] - # frame = [-pi/4, pi/4, 3*pi/4, -3*pi/4] # this seem to work better ... wtf? - frame = [pi/4, -pi/4, -3*pi/4, 3*pi/4] - moveFoot = None - rest = None - scale = 50.0 - - def __init__(self, rest): - # the resting or idle position/orientation of a leg - self.rest = rest - - def command(self, cmd): - """ - Send a command to the quadruped - cmd: [x, y, rotation about z-axis], the x,y is a unit vector and - rotation is in radians - """ - x, y, rz = cmd - d = sqrt(x**2+y**2) - - # handle no movement command ... do else where? - if d <= 0.1 and abs(rz) < 0.1: - x = y = 0.0 - rz = 0.0 - return None - # commands should be unit length, oneCyle scales it - elif 0.1 < d: - x /= d - y /= d - else: - return None - - angle_limit = pi/2 - if rz > angle_limit: - rz = angle_limit - elif rz < -angle_limit: - rz = -angle_limit - - return self.oneCycle_alt(x, y, rz) - - def oneCycle_alt(self, x, y, rz): - raise NotImplementedError('*** Gait: wrong function, this is base class! ***') - - -class DiscreteRippleGait(Gait): - """ - Discrete 12 step gait - """ - steps = 0 - - def __init__(self, height, rest): - """ - height: added to z - rest: the neutral foot position - """ - Gait.__init__(self, rest) - # self.phi = [8/8, 7/8, 1/8, 0/8, 1/8, 2/8, 3/8, 4/8, 5/8, 6/8, 7/8, 8/8] - self.phi = [10/10, 5/10, 0/10, 1/10, 2/10, 3/10, 4/10, 5/10, 6/10, 7/10, 8/10, 9/10] - self.setLegLift(height) - self.steps = len(self.phi) - - def setLegLift(self, lift): - # legs lift in the sequence: 0, 3, 1, 2 - # 0 1 2 3 4 5 6 7 8 9 10 11 - self.z = [0.0, lift, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] # leg height - - def eachLeg(self, index, cmd): - """ - interpolates the foot position of each leg - cmd: - linear (mm) - angle (rads) - """ - rest = self.rest - i = index - phi = self.phi[i] - xx, yy, rzz = cmd - - # rotational commands ----------------------------------------------- - angle = rzz/2-rzz*phi - rest_rot = rot_z(-angle, rest) - - # create new move command - move = [ - xx/2 - phi*xx, - yy/2 - phi*yy, - self.z[i] - ] - - # new foot position: newpos = rot + move ---------------------------- - # newpos = linear_movement + angular_movement - # newpos = move + rest_rot - newpos = [0, 0, 0] - newpos[0] = move[0] + rest_rot[0] - newpos[1] = move[1] + rest_rot[1] - newpos[2] = move[2] + rest_rot[2] - - # print('New [](x,y,z): {:.2f}\t{:.2f}\t{:.2f}'.format(newpos[0], newpos[1], newpos[2])) - return newpos - - def move_cg(self, leg, off, pt, leg_lift): - """ - There is a pattern of which direction to shift based on which leg you - are trying to move and which leg is lifted (not currently providing - support for the robot) - leg - leg number - off - offset in mm to shift cm - leg_lift - which leg is moving through the air currently - - lift 0: x-d 1: y-d 2: x+d 3: y+d - y+d x-d y-d x+d - x+d y+d x-d y-d - y-d x+d y+d x-d - pattern: always x y x y (alternate) - always - + + - - """ - axis = [0, 1, 0, 1] # 0=x, 1=y componets of 3d point - offset = [-off, off, off, -off] # either adding or subtracting offset from point - ia = axis[(leg+leg_lift) % 4] # us mod to rotate through each of these indexes - io = (leg-leg_lift) % 4 - pt[ia] += offset[io] # shift point - return pt - # if leg == 0: - # if leg_lift == 0: pt[0] -= offset # x-d - # elif leg_lift == 1: pt[1] += offset # y+d - # elif leg_lift == 2: pt[0] += offset # x+d - # elif leg_lift == 3: pt[1] -= offset # y-d - # elif leg == 0: - # if leg_lift == 0: pt[1] -= offset # x-d - # elif leg_lift == 1: pt[0] -= offset # y+d - # elif leg_lift == 2: pt[1] += offset # x+d - # elif leg_lift == 3: pt[0] += offset # y-d - - - def oneCycle(self, x, y, rz): - """ - direction of travel x, y (2D plane) or rotation about z-axis - Returns 1 complete cycle for all 4 feet (x,y,z) - """ - - # check if x, y, rz is same as last time commanded, if so, return - # the last cycle response, else, calculate a new response - # ??? - - scale = self.scale - cmd = (scale*x, scale*y, rz) - ret = { - 0: [], - 1: [], - 2: [], - 3: [] - } # 4 leg foot positions for the entire 12 count cycle is returned - - # iteration, there are 12 steps in gait cycle, add a 13th so all feet - # are on the ground at the end, otherwise one foot is still in the air - leg_lift = [0,0,0,3,3,3,1,1,1,2,2,2] - for i in range(0, self.steps): - for legNum in [0, 1, 2, 3]: # order them diagonally - rcmd = rot_z_tuple(self.frame[legNum], cmd) - index = (i + self.legOffset[legNum]) % self.steps - pos = self.eachLeg(index, rcmd) # move each leg appropriately - # print('Foot[{}]: {:.2f} {:.2f} {:.2f}'.format(legNum, *(pos))) - - # shift cg - # fist and last shouldn't move cg?? - # pos = self.move_cg(legNum, 40, pos, leg_lift[i]) - - ret[legNum].append(pos) - - if debug: - print("=[Gait.py]===============================") - for legNum in [0, 1, 2, 3]: - print('Leg[{}]---------'.format(legNum)) - for i, pt in enumerate(ret[legNum]): - print(' {:2}: {:7.2f} {:7.2f} {:7.2f}'.format(i, *pt)) - - return ret +# class Gait(object): +# """ +# Base class for gaits. Gait only plan all foot locations for 1 complete cycle +# of the gait. +# +# Like to add center of mass (CM) compensation, so we know the CM is always +# inside the stability triangle. +# +# Gait knows: +# - how many legs +# - leg stride (neutral position) +# """ +# # these are the offsets of each leg +# legOffset = [0, 6, 3, 9] +# # frame rotations for each leg +# # cmrot = [pi/4, -pi/4, -3*pi/4, 3*pi/4] +# # frame = [-pi/4, pi/4, 3*pi/4, -3*pi/4] # this seem to work better ... wtf? +# frame = [pi/4, -pi/4, -3*pi/4, 3*pi/4] +# moveFoot = None +# rest = None +# scale = 50.0 +# +# def __init__(self, rest): +# # the resting or idle position/orientation of a leg +# self.rest = rest +# +# def command(self, cmd): +# """ +# Send a command to the quadruped +# cmd: [x, y, rotation about z-axis], the x,y is a unit vector and +# rotation is in radians +# """ +# x, y, rz = cmd +# d = sqrt(x**2+y**2) +# +# # handle no movement command ... do else where? +# if d <= 0.1 and abs(rz) < 0.1: +# x = y = 0.0 +# rz = 0.0 +# return None +# # commands should be unit length, oneCyle scales it +# elif 0.1 < d: +# x /= d +# y /= d +# else: +# return None +# +# angle_limit = pi/2 +# if rz > angle_limit: +# rz = angle_limit +# elif rz < -angle_limit: +# rz = -angle_limit +# +# return self.oneCycle_alt(x, y, rz) +# +# def oneCycle_alt(self, x, y, rz): +# raise NotImplementedError('*** Gait: wrong function, this is base class! ***') +# +# +# class DiscreteRippleGait(Gait): +# """ +# Discrete 12 step gait +# """ +# steps = 0 +# +# def __init__(self, height, rest): +# """ +# height: added to z +# rest: the neutral foot position +# """ +# Gait.__init__(self, rest) +# # self.phi = [8/8, 7/8, 1/8, 0/8, 1/8, 2/8, 3/8, 4/8, 5/8, 6/8, 7/8, 8/8] +# self.phi = [10/10, 5/10, 0/10, 1/10, 2/10, 3/10, 4/10, 5/10, 6/10, 7/10, 8/10, 9/10] +# self.setLegLift(height) +# self.steps = len(self.phi) +# +# def setLegLift(self, lift): +# # legs lift in the sequence: 0, 3, 1, 2 +# # 0 1 2 3 4 5 6 7 8 9 10 11 +# self.z = [0.0, lift, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] # leg height +# +# def eachLeg(self, index, cmd): +# """ +# interpolates the foot position of each leg +# cmd: +# linear (mm) +# angle (rads) +# """ +# rest = self.rest +# i = index +# phi = self.phi[i] +# xx, yy, rzz = cmd +# +# # rotational commands ----------------------------------------------- +# angle = rzz/2-rzz*phi +# rest_rot = rot_z(-angle, rest) +# +# # create new move command +# move = [ +# xx/2 - phi*xx, +# yy/2 - phi*yy, +# self.z[i] +# ] +# +# # new foot position: newpos = rot + move ---------------------------- +# # newpos = linear_movement + angular_movement +# # newpos = move + rest_rot +# newpos = [0, 0, 0] +# newpos[0] = move[0] + rest_rot[0] +# newpos[1] = move[1] + rest_rot[1] +# newpos[2] = move[2] + rest_rot[2] +# +# # print('New [](x,y,z): {:.2f}\t{:.2f}\t{:.2f}'.format(newpos[0], newpos[1], newpos[2])) +# return newpos +# +# def move_cg(self, leg, off, pt, leg_lift): +# """ +# There is a pattern of which direction to shift based on which leg you +# are trying to move and which leg is lifted (not currently providing +# support for the robot) +# leg - leg number +# off - offset in mm to shift cm +# leg_lift - which leg is moving through the air currently +# +# lift 0: x-d 1: y-d 2: x+d 3: y+d +# y+d x-d y-d x+d +# x+d y+d x-d y-d +# y-d x+d y+d x-d +# pattern: always x y x y (alternate) +# always - + + - +# """ +# axis = [0, 1, 0, 1] # 0=x, 1=y componets of 3d point +# offset = [-off, off, off, -off] # either adding or subtracting offset from point +# ia = axis[(leg+leg_lift) % 4] # us mod to rotate through each of these indexes +# io = (leg-leg_lift) % 4 +# pt[ia] += offset[io] # shift point +# return pt +# # if leg == 0: +# # if leg_lift == 0: pt[0] -= offset # x-d +# # elif leg_lift == 1: pt[1] += offset # y+d +# # elif leg_lift == 2: pt[0] += offset # x+d +# # elif leg_lift == 3: pt[1] -= offset # y-d +# # elif leg == 0: +# # if leg_lift == 0: pt[1] -= offset # x-d +# # elif leg_lift == 1: pt[0] -= offset # y+d +# # elif leg_lift == 2: pt[1] += offset # x+d +# # elif leg_lift == 3: pt[0] += offset # y-d +# +# +# def oneCycle(self, x, y, rz): +# """ +# direction of travel x, y (2D plane) or rotation about z-axis +# Returns 1 complete cycle for all 4 feet (x,y,z) +# """ +# +# # check if x, y, rz is same as last time commanded, if so, return +# # the last cycle response, else, calculate a new response +# # ??? +# +# scale = self.scale +# cmd = (scale*x, scale*y, rz) +# ret = { +# 0: [], +# 1: [], +# 2: [], +# 3: [] +# } # 4 leg foot positions for the entire 12 count cycle is returned +# +# # iteration, there are 12 steps in gait cycle, add a 13th so all feet +# # are on the ground at the end, otherwise one foot is still in the air +# leg_lift = [0,0,0,3,3,3,1,1,1,2,2,2] +# for i in range(0, self.steps): +# for legNum in [0, 1, 2, 3]: # order them diagonally +# rcmd = rot_z_tuple(self.frame[legNum], cmd) +# index = (i + self.legOffset[legNum]) % self.steps +# pos = self.eachLeg(index, rcmd) # move each leg appropriately +# # print('Foot[{}]: {:.2f} {:.2f} {:.2f}'.format(legNum, *(pos))) +# +# # shift cg +# # fist and last shouldn't move cg?? +# # pos = self.move_cg(legNum, 40, pos, leg_lift[i]) +# +# ret[legNum].append(pos) +# +# if debug: +# print("=[Gait.py]===============================") +# for legNum in [0, 1, 2, 3]: +# print('Leg[{}]---------'.format(legNum)) +# for i, pt in enumerate(ret[legNum]): +# print(' {:2}: {:7.2f} {:7.2f} {:7.2f}'.format(i, *pt)) +# +# return ret # def oneCycle2(self, x, y, rz): diff --git a/multiped/jsonFile.py b/multiped/jsonFile.py index f33e2c2..1b50f00 100644 --- a/multiped/jsonFile.py +++ b/multiped/jsonFile.py @@ -10,71 +10,71 @@ class FileStorageError(Exception): - pass + pass class jsonFile(object): - """ - Store your API keys or other params in a json/yaml file and then import them - with this class. You can also pass a dictionary to this and create a json/yaml - file storage. All key/value pairs are stored in a dictionary called db. - """ - db = None + """ + Store your API keys or other params in a json/yaml file and then import them + with this class. You can also pass a dictionary to this and create a json/yaml + file storage. All key/value pairs are stored in a dictionary called db. + """ + db = None - def read(self, fname): - """ - Reads a Json file - in: file name - out: length of file, dictionary - """ - try: - with open(fname, 'r') as f: - data = json.load(f) + def read(self, fname): + """ + Reads a Json file + in: file name + out: length of file, dictionary + """ + try: + with open(fname, 'r') as f: + data = json.load(f) - self.db = data - return len(self.db), data - except IOError: - raise FileStorageError('Could not open {0!s} for reading'.format((fname))) + self.db = data + return len(self.db), data + except IOError: + raise FileStorageError('Could not open {0!s} for reading'.format((fname))) - def write(self, fname, data=None): - """ - Writes a Json file - """ - try: - if data is None: - data = self.db + def write(self, fname, data=None): + """ + Writes a Json file + """ + try: + if data is None: + data = self.db - with open(fname, 'w') as f: - json.dump(data, f) + with open(fname, 'w') as f: + json.dump(data, f) - except IOError: - raise FileStorageError('Could not open {0!s} for writing'.format((fname))) + except IOError: + raise FileStorageError('Could not open {0!s} for writing'.format((fname))) - def __getitem__(self, keyName): - if keyName in self.db: - return self.db[keyName] - else: - return None + def __getitem__(self, keyName): + if keyName in self.db: + return self.db[keyName] + else: + return None - def __str__(self): - s = [] - for k, v in db.items(): - s.append(str(k) + ': ' + str(v) + '\n') - return ''.join(s) + def __str__(self): + s = [] + for k, v in db.items(): + s.append(str(k) + ': ' + str(v) + '\n') + return ''.join(s) - def __repr__(self): - print(self.__str__()) + def __repr__(self): + print(self.__str__()) - def clear(self): - self.db = None + def clear(self): + self.db = None # # if __name__ == '__main__': -# fs = jsonFile() -# fs.read('walkingeye.json') -# # db = fs.db +# fs = jsonFile() +# fs.read('walkingeye.json') +# # db = fs.db # -# print('serialPort', fs['serialPort']) -# print('') +# print('serialPort', fs['serialPort']) +# print('') # -# print(fs) +# print(fs) diff --git a/multiped/kinematics3.py b/multiped/kinematics3.py index 7295cbe..a835348 100644 --- a/multiped/kinematics3.py +++ b/multiped/kinematics3.py @@ -6,45 +6,74 @@ # import numpy as np from math import sin, cos, acos, atan2, sqrt, pi, fabs -from math import radians as d2r -from math import degrees as r2d +# from math import radians as d2r +# from math import degrees as r2d +from .utils import constrain +from .utils import cosinelaw +from .utils import rad2deg, deg2rad + +# def sq(x): +# return x*x class Leg3: """ parameter file: { - "linkLengths": [coxa, femur, tibia], # mm - "servoOffsets": [s0, s1, s2], # radians - "servoLimits": [(min,max), (min,max), (min, max)] # radians + "legs": { + 0: { + "linkLengths": [coxa, femur, tibia], # mm + "servoOffsets": [s0, s1, s2], # radians + "servoLimits": [(min,max), (min,max), (min, max)] # radians + "ids": [4,5,6] # servo ID numbers + } + } } """ def __init__(self, params): self.linkLengths = params["linkLengths"] - self.servoOffsets = params["servoOffsets"] - self.servoLimits = params["servoLimits"] + self.servoOffsets = list(deg2rad*x for x in params["servoOffsets"]) + self.servoLimits = list((deg2rad*a, deg2rad*b) for a,b in params["servoLimits"]) + self.ids = params["ids"] - def forward(self, a, b, g, deg=True): + def forward(self, t1,t2,t3, deg=True): """ Forward kinematics of the leg where angles a,b,c can be degrees [default] - or radians. + or radians. Output is in the same units as the link lengths. """ - Lc, Lf, Lt = self.linkLengths + l1,l2,l3 = self.linkLengths + + if degrees: + t1 *= deg2rad + t2 *= deg2rad + t3 *= deg2rad + + x = (l1 + l2*cos(t2) + l3*cos(t2 + t3))*cos(t1) + y = (l1 + l2*cos(t2) + l3*cos(t2 + t3))*sin(t1) + z = l2*sin(t2) + l3*sin(t2 + t3) + return (x,y,z) + + def inverse(self, x,y,z, degrees=False): + """ + Given a point in 3D space (x,y,z), this returns the joint angles in + radians [default] or degrees as a tuple (theta1, theta2, theta3). + """ + # mm + l1,l2,l3 = self.linkLengths + + w = sqrt(x**2+y**2) - l1 + d = sqrt(w**2+z**2) - if deg: - a = d2r(a) - b = d2r(b) - g = d2r(g) + t1 = atan2(y,x) + t2 = atan2(z,w)+cosinelaw(l2,d,l3) + t3 = cosinelaw(l2,l3,d)-pi - foot = ( - (Lc + Lf*cos(b) + Lt*cos(b + g))*cos(a), - (Lc + Lf*cos(b) + Lt*cos(b + g))*sin(a), - Lf*sin(b) + Lt*sin(b + g), - ) + if degrees: + t1 *= rad2deg + t2 *= rad2deg + t3 *= rad2deg - return foot + return (t1,t2,t3) - def inverse(self, a, b, c): - pass diff --git a/multiped/robot.py b/multiped/robot.py index 72ad200..b261900 100644 --- a/multiped/robot.py +++ b/multiped/robot.py @@ -1,46 +1,44 @@ #!/usr/bin/env python - -############################################## -# The MIT License (MIT) -# Copyright (c) 2016 Kevin Walchko -# see LICENSE for full details -############################################## -# Simple robot - -from __future__ import print_function -from __future__ import division -from multiped import Engine -from multiped import DiscreteRippleGait -# import time -########################## - - -class Robot(object): - """ - This is a simple class that binds the others together. You could make it - a base class for something fancier. - """ - def __init__(self, data, legType, servoType): - """ - Constructor. - Engine - commands the leg servos to move - gait - Ideally there are several types of gaits for different - walking/running situations. If you don't give it an dict - of gaits, then the default is just the standard - DiscreteRippleGait. - The gaits need to know: - - how high to pick up a leg - - what the neutral leg position is (where is the foot - located when just standing?) - """ - self.engine = Engine(data, servoType) - self.kinematics = legType(data) - - neutral = self.kinematics.getNeutralPos() - - if 'gaits' in data: - self.gaits = data['gaits'] - else: - self.gaits = { - 'crawl': DiscreteRippleGait(65.0, neutral) - } +# +# ############################################## +# # The MIT License (MIT) +# # Copyright (c) 2016 Kevin Walchko +# # see LICENSE for full details +# ############################################## +# # Simple robot +# +# from multiped import Engine +# # from multiped import DiscreteRippleGait +# # import time +# ########################## +# +# +# class Robot(object): +# """ +# This is a simple class that binds the others together. You could make it +# a base class for something fancier. +# """ +# def __init__(self, data, legType, servoType): +# """ +# Constructor. +# Engine - commands the leg servos to move +# gait - Ideally there are several types of gaits for different +# walking/running situations. If you don't give it an dict +# of gaits, then the default is just the standard +# DiscreteRippleGait. +# The gaits need to know: +# - how high to pick up a leg +# - what the neutral leg position is (where is the foot +# located when just standing?) +# """ +# self.engine = Engine(data, servoType) +# self.kinematics = legType(data) +# +# neutral = self.kinematics.getNeutralPos() +# +# if 'gaits' in data: +# self.gaits = data['gaits'] +# else: +# self.gaits = { +# 'crawl': DiscreteRippleGait(65.0, neutral) +# } diff --git a/multiped/servo.py b/multiped/servo.py index 5082b41..0803ad7 100644 --- a/multiped/servo.py +++ b/multiped/servo.py @@ -5,23 +5,23 @@ ############################################## -class Servo(object): - """ - Servo hold the parameters of a servo, it doesn't talk to real servos. This - class does the conversion between DH angles to real servo angles - """ - - def __init__(self, ID, offset=150): - self.offset = offset - # self.minAngle = minmax[0] # DH space - # self.maxAngle = minmax[1] # DH space - self.id = ID - - def DH2Servo(self, angle): - """ - Sets the servo angle and clamps it between [limitMinAngle, limitMaxAngle]. - """ - sangle = angle+self.offset - if sangle > 300 or sangle < 0: - raise Exception('{} angle out of range DH[-150,150]: {:.1f} Servo[0,300]: {:.1f} deg'.format(self.id, angle, sangle)) - return sangle +# class Servo(object): +# """ +# Servo hold the parameters of a servo, it doesn't talk to real servos. This +# class does the conversion between DH angles to real servo angles +# """ +# +# def __init__(self, ID, offset=150): +# self.offset = offset +# # self.minAngle = minmax[0] # DH space +# # self.maxAngle = minmax[1] # DH space +# self.id = ID +# +# def DH2Servo(self, angle): +# """ +# Sets the servo angle and clamps it between [limitMinAngle, limitMaxAngle]. +# """ +# sangle = angle+self.offset +# if sangle > 300 or sangle < 0: +# raise Exception('{} angle out of range DH[-150,150]: {:.1f} Servo[0,300]: {:.1f} deg'.format(self.id, angle, sangle)) +# return sangle diff --git a/multiped/utils.py b/multiped/utils.py new file mode 100644 index 0000000..958bd5c --- /dev/null +++ b/multiped/utils.py @@ -0,0 +1,25 @@ +from math import acos, pi +import numpy as np + +rad2deg = 180/pi +deg2rad = pi/180 + +def constrain(angle, min, max): + angle = angle if angle > min else min + angle = angle if angle < max else max + return angle + +def cosinelaw(a,b,c): + # cos(g) = (a^2+b^2-c^2)/2ab + return acos((a**2+b**2-c**2)/(2*a*b)) + +def Rz(a, degrees=False): + if degrees: + a *= deg2rad + ca = np.cos(a) + sa = np.sin(a) + return np.array( + [[ ca, sa, 0], + [-sa, ca, 0], + [ 0, 0, 1]] + ) diff --git a/pyproject.toml b/pyproject.toml index 8454733..91ec526 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ pyservos = ">=2.0.1" simplejson = "*" [tool.poetry.dev-dependencies] -pytest = "^5.2" +pytest = "*" # mypy = "*" # [mypy-pi_servo_serial] diff --git a/readme.md b/readme.md index b3b972c..0288891 100755 --- a/readme.md +++ b/readme.md @@ -62,8 +62,8 @@ to run. This software talks to both the XL-320 and AX-12A servos from Robotis. Here is *sort* of the layout of the code: ``` - cmd 3d pts DH angles servo packet -robot --> gait -----> legs --------> engine -----------> servos + cmd 3d foot pts servo angles servo packet +robot --> gait -----------> legs ----------> engine -----------> servos ``` - **Robot(data):**