Active implantable medical devices, bioelectronics, neuromodulation and associated methods

EP4801623A1Pending Publication Date: 2026-09-09REACH NEURO INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
EP2024886911
Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-11-01
Filing Date
2024-10-31
Publication Date
2026-09-09

AI Technical Summary

Technical Problem

Current spinal cord stimulation methods for treating motor dysfunction, such as after a stroke, face challenges in optimizing kinematic parameters for individual patients, leading to inefficiencies and variability in treatment outcomes.

Method used

The use of a machine learning algorithm to identify and optimize kinematic parameters for spinal cord stimulation, allowing for personalized electrical stimulation that reduces motor impairment and enhances physiological function.

Benefits of technology

This approach enables more effective and personalized spinal cord stimulation, improving motor function and reducing impairment by optimizing stimulation parameters for individual patients.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IMGF000027_0001
    Figure IMGF000027_0001
  • Figure 00000044_0000
    Figure 00000044_0000
  • Figure 00000045_0000
    Figure 00000045_0000
Patent Text Reader

Abstract

The disclosure includes a system and method for obtaining, at a stimulator, a set of kinematic parameters, wherein the kinematic parameters are identified and optimized, at least in part by a first machine learning algorithm, specifically for a subject; and delivering, by the stimulator, electrical stimulation via an electrode array, the electrical stimulation defined by the set of kinematic parameters, wherein the electrode array comprises a plurality of electrodes, the electrode array is functionally coupled to the nervous system of the subject by electrical stimulation, and, subsequent to delivering the electrical stimulation defined by the set of kinematic parameters to the subject, the subject achieves a physiological function with reduced motor impairment.
Need to check novelty before this filing date? Find Prior Art

Description

Active Implantable Medical Devices, Bioelectronics, Neuromodulation and Associated MethodsCROSS-REFERENCE TO RELATED APPLICATIONS

[0001] The present application claims priority to U.S. Provisional Patent Application No. 63 / 595,053, titled " Active Implantable Medical Devices, Bioelectronics, Neuromodulation and Associated Methods," and filed November 1, 2023, the contents of which are hereby incorporated by reference in their entirety.BACKGROUND

[0002] Conditions such as stroke may leave an individual without the use of one or more limbs. One of the oldest device-based approaches to stroke treatment is functional electrical stimulation, which bypasses the corticospinal tract and stimulates individual muscles directly.

[0003] Spinal cord stimulation has been used to treat a variety of disorders including pain management. Spinal cord stimulation for pain management involves manually searching for stimulation parameters that yield analgesic effects.SUMMARY

[0004] This specification relates to methods and systems for neuromodulation using spinal cord stimulation. In some implementations, the system includes an electrode array that may include a plurality of electrodes, the electrode array being functionally coupled to a nervous system of a subject by electrical stimulation, the electrical stimulation reducing motor impairment in the subject so that the subject may perform a physiological function; and a stimulator delivering the electrical stimulation via the electrode array, the electrical stimulation defined by a set of kinematic parameters, where the kinematic parameters are identified and optimized, at least in part by a first machine learning algorithm, specifically for the subject and, when delivered to the subject, the subject achieves a physiological function with reduced motor impairment.

[0005] In some implementations the method includes obtaining, at a stimulator, a set of kinematic parameters, wherein the kinematic parameters are identified and optimized, at least in part by a first machine learning algorithm, specifically for a subject; and delivering, by the stimulator, electrical stimulation via an electrode array, the electrical stimulation defined by the set of kinematic parameters, wherein the electrode array comprises a plurality of electrodes, the electrode array is functionally coupled to a nervous system of the subject by electrical stimulation, and, subsequent to delivering the electrical stimulation defined by the set of kinematic parameters to the subject, the subject achieves a physiological function with reduced motor impairment.

[0006] Other implementations of one or more of these aspects include corresponding systems, apparatus, and computer programs, configured to perform the actions of the methods, encoded on computer storage devices.

[0007] The features and advantages described herein are not all-inclusive and many additional features and advantages will be apparent to one of ordinary skill in the art in view of the figures and description. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and not to limit the scope of the inventive subject matter.BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The disclosure is illustrated by way of example, and not by way of limitation in the figures of the accompanying drawings in which like reference numerals are used to refer to similar elements.

[0009] Figure 1A illustrates a block diagram of one example system for neuromodulation using spinal cord stimulation in accordance with some implementations.

[0010] Figure IB illustrates an example of an electrode array that comprises two linear array segments implanted in a patient’s cervical spine in accordance with some implementations.

[0011] Figure 2 illustrates a block diagram of an example computing device in accordance with some implementations.

[0012] Figure 3 illustrates a block diagram of an example neuromodulation determination engine for spinal cord stimulation in accordance with some implementations.

[0013] Figure 4 illustrates a block diagram of an example kinematics model determiner in accordance with some implementations.

[0014] Figure 5 illustrates a block diagram of an example neuromodulation stimulation engine in accordance with some implementations.

[0015] Figures 6A illustrates an example of an unoptimized distribution using Gaussian Process Bayesian Optimization in accordance with some implementations.

[0016] Figures 6B illustrates an example of an example parameter with a peak associated with maximized muscle activation in accordance with some implementations.

[0017] Figure 7 illustrates a representation of muscle activation based on mono-polar stimulation of a 5R electrode in accordance with some implementations.

[0018] Figure 8 illustrates a closed-loop optimization to determine a set of parameters associated with maximum muscle activation for a particular muscle using Gaussian Process Bayesian Optimization in accordance with some implementations.

[0019] Figure 9 illustrates an example of kinematic model training for a reaching task in accordance with some implementations.

[0020] Figure 10 illustrates a flowchart of an example method for neuromodulation using spinal stimulation in accordance with some implementations.

[0021] Figure 11 illustrates a flowchart of an example method for determining a recruitment model in accordance with some implementations.

[0022] Figure 12 illustrates a flowchart of an example method for determining a kinematic model associated with a first kinematic task in accordance with some implementations.DETAILED DESCRIPTION

[0023] Conditions such as stroke may leave an individual without the use of one or more limbs. One of the oldest device-based approaches for stroke treatment is functional electrical stimulation, which bypasses the corticospinal tract and stimulates individual muscles directly. Thus, the functional electrical stimulation forces involuntary activation of muscles, which tends to cause rapid fatigue. Moreover, the electrical stimulation through the skin tends to be uncomfortable, and coordinating the activation of synergistic muscle groups has proved difficult. Despite decades of research into functional electrical stimulation assisted rehabilitation, there has been little evidence demonstrating the benefits of functional electrical stimulation. Additionally, neither of the foregoing approaches restore direct brain control over movement and / or reduce motor impairment, which may be provided by the systems and methods described herein.

[0024] Spinal cord stimulation has been used to treat a variety of disorders including pain management. Spinal cord stimulation for pain management involves manually searching for stimulation parameters that yield analgesic effects. As described herein, spinal cord stimulation may be applied to recover the usage of limbs. However, the application of spinal cord stimulation to regain at least partial usage of limbs is associated with a number of challenges; one or more of which are at least partially overcome by the description here.

[0025] A first challenge is that, while pain treatment is binary (e.g., better or worse). By contrast, using spinal cord stimulation to promote recovery of limb function is more complex. For example, spinal cord stimulation to promote recovery of limb function may require the identification of multiple sets of electrodes and stimulation parameters to achieve targeted treatment of deficits across multiple muscles, which may occasionally be referred to herein as “kinematic parameters,” “kinematic parameter set,” or similar.

[0026] A second challenge with using spinal cord stimulation to treat motor dysfunction is the heterogeneity of the population being treated. For example, where the population being treated includes stroke victims, each patient (i.e., stroke victim) may have a unique set of deficits. As another example, each patient may have a slightly different physiology (e.g., muscle strength, nerve condition, epidural space, etc.) and / or the implantation of the electrode(s) may vary (e.g., from patient-to-patient and / or in relative alignment vertebrae-to- vertebrae within a patient).

[0027] A third challenge is identifying kinematic parameters to ensure balanced facilitation of all targeted muscle groups, since stimulation may affect opposing muscles (e.g., bicep and triceps).

[0028] It should also be understood from the forgoing challenges that to treat motor dysfunction using spinal cord stimulation, it may be desirable to optimize the kinematic parameters to the individual patient, which raises one or more additional challenges, including but limited to the large parameter space (e.g., given the number of permutations or combinations of the multiple electrodes that may be stimulated, the number of parameters that may define the stimulation, and the potential values of each of those parameters.), the amount of time it takes to explore the parameter space and find an optimum set of parameters in that space, particularly using a human-implemented guess-and-check approach, and the number of times it must be repeated for different spaces (e.g., for different muscles, different limbs, different kinematic tasks), etc.

[0029] It should be understood that the foregoing challenges are merely exemplary and that others may exist and that one or more of the challenges are at least partially addressed by the description herein.

[0030] It should be recognized that the description, language, and examples herein are selected for clarity and convenience. Therefore, while the present disclosure makes frequent reference to treating stroke patients, the upper-limbs and associated movements, implantation in epidural spaces and vertebrae in the human neck, etc. It should be understood that these are provided as non-limiting examples and that variations are within the scope of this disclosure. For example, a person having ordinary skill may recognize that placing electrodes in the epidural space of the lumbar and / or sacral spine to restore lower limb function is within the present disclosure.Example System

[0031] Figure 1A is a block diagram of an example system 100 for limb function recovery based on neuromodulation in accordance with some implementations. In the illustrated implementation, the system 100 includes a server 122 communicatively coupled for electronic communication with a stimulator 120 that is coupled to an array of electrodes 124, a wearable sensor 126, a set of electromyography (EMG) sensors 128, and a controller 130 via a network 102. The stimulator coupled to the array of electrodes 124, the wearable sensor 126, the set of EMG sensors 128, and the controller 130 are associated with user 112a as represented by lines 132, 134, 136, and 138, respectively.

[0032] The array of electrodes 124 may occasionally be referred to herein as an “electrode array,” the “array,” “leads,” “contacts,” or similar. The array of electrodes 124 comprises a plurality of electrodes. The array of electrodes 124 may include a plurality of stimulating elements configured to provide electrical stimulation to a desired target area or record electrical activity from a desired target area. The desired target area may be proximate to one or more of the electrodes comprising thearray of electrodes 124. In some implementations, the stimulating elements are also recording elements configured to record electrical activity or electrical signals from a desired area. Alternatively, array of electrodes 124 may include both stimulating elements to provide electrical stimulation to and elements to record electrical signals from a desired area and sensing elements, e.g., configured to detect movement (e.g., flexing and twisting) of the spine. Movement of the spine may be due to flexing or contracting of one or more muscles and / or skeletal structures located proximate to the spine of the patient. This movement can be due to voluntary motor control or involuntary motor control.

[0033] The array of electrodes 124 may be implanted within the patient 112a such that electrodes are disposed proximate the spinal cord of the patient, such as within the epidural space. In some implementations, array of electrodes 124 is implanted within epidural space of the patient proximate the dorsal root. The array of electrodes 124 may include radiopaque markers or other types of markers or indicators to assist with placement and implantation of the array within the patient 112a. In some implementations, the array of electrodes may be external and apply transcutaneous stimulation.

[0034] The exact location of the array 124 implantation may vary depending on the implementation, use case (e.g., for lower-limb or upper-limb), and instance (e.g., variation from patient to patient is expected). In some implementations, the target for electrode array 124 implantation is at the midline (i.e., centered relative to the patient’s right and left) of the spinal cord. However, it should be recognized that the actual location is expected to deviate from the targeted midline based on a number of factors including, but not limited to one or more of the: the surgeon’s skill in implantation, the patient’s physiology, how the patient heals, shifts due to patient movement, etc. In some implementations, an array 124 may include left and right portions (not shown) with left portion implanted on to the left of the midline and the right portion implanted to the right of the midline, to stimulate patient’s the left and right limbs, respectively. In some implementations, the rostral / caudal location varies based on the use case. For example, in some implementations, where the use case relates to upper-limb mobility, the array of electrodes may be implanted in the epidural space of the cervical spinal cord spanning spinal segments C3 to Tl. As another example, in some implementations, where the use case relates to lower-limb mobility, the array of electrodes may be implanted in the lumbar and / or sacral spinal cord.

[0035] The number of electrodes in the array of electrodes 124 may vary depending on the implementation. For example, the number of electrodes may vary based on the targeted set of limbs (e.g., upper, lower, or both) in the use case, the number of array segments and degree of overlap, the inter-electrode spacing in a linear array of electrodes, etc.

[0036] In some implementations, the electrodes comprising the array of electrodes 124 are implanted in specified locations relative to the patient’s anatomy. For example, a first electrode in thearray of electrodes 124 is implanted proximal to the dorsal root entry zone of spinal segment C3, a second electrode is implanted proximal to the dorsal root entry zone of spinal segment C43, and so forth to cover C3-T1 portion of the cervical spinal cord. In some implementations, the electrodes comprising the array of electrodes 124 have a fixed location relative to one another (e.g., in a linear array) and the array of electrodes 124 is implanted to span a relevant portion of the spine.

[0037] Referring now to Figure IB, an example of an electrode array 124, which is illustrated as comprising two linear array segments in Figure 1A, is illustrated in context 100B (i.e., as implanted in the patient 112 A) in accordance with some implementations. As illustrated, a first linear electrode array segment, labeled as “Electrode R 124R,” is implanted in the epidural space rostral relative to a second linear electrode array segment, labeled as “Electrode C 128C,” which is implanted in the epidural space caudal relative to the first linear electrode array, hence the “R” and “C” labels. As illustrated, the electrode array 124 (comprising electrodes R 124R and 124 C) span a portion of the spinal cord relevant to limb mobility, which in the illustrated example includes C3-T1 of the cervical spinal cord and associated with upper-limb mobility.

[0038] In the illustrated example of Figure 2B, the electrode array 124 comprises sixteen (16) electrodes, as each electrode array segment 124R and 124C includes eight (8) electrodes. The eight (8) electrodes of electrode R 124R are represented as 1R-8R, and eight (8) electrodes of electrode C 124C are represented as 124R and 1C-8C.

[0039] It should be understood that the electrode arrays 124 illustrated in Figures 1A and IB are merely examples provided for clarity and convenience and that variations are expected and within the scope of this disclosure. For example, while the electrode array 124 is illustrated as comprising two linear array segments (i.e., rostral electrode array R 124R and caudal electrode array C 124 C), the electrode array 124 may comprise more or fewer segments depending on the implementation and / or use case. As another example, the degree of overlap between electrode segments and / or the presence of overlap may vary from what is illustrated in Figure IB and depend on the implementation and / or use case. As another example, electrode array segments may be positioned laterally (e.g., right and left of the midline) relative to one another. As another example, the number of electrodes and / or their relative spacing may deviate from the example illustrated in Figure IB and depend on the implementation and / or use case. As another example, Figure IB is illustrated in the context of the cervical spine, which is relevant to a use case involving upper-limb mobility, but other contexts and use cases (e.g., lumbar and / or sacral spine for a lower-limb use case) are within the scope of this disclosure. As another example, where Figure IB represents a desired, or target, implantation of the electrode array 124, some degree of variation from Figure IB in actual instances of implantation and / or from patient-to-patient is to be expected, e.g., based on variation in vertebrae size relative to electrode array size and spacing, positioning of the array(s) 124 during implantation and / or shift postimplantation, etc.

[0040] In some implementations, an electrode in the array of electrodes 124 may apply electric stimulation at its location. In some implementations, the electric stimulation applied by an electrode in the array of electrodes is associated with a set of parameters. Examples of parameters include, but are not limited to, a current amplitude, a pulse width, a frequency, etc. of a waveform. In some implementations the waveform is a biphasic square wave. However, the waveform may vary depending on the implementation. For example, the waveform may be a sine wave, monophasic pulses, triangle wave, etc. In some implementations, at least one electrode in array 124 is configured to be monopolar where the current delivered through it returns through the case of the stimulator 120. Either the electrode or the case may be the cathode and the other the anode. In some implementations, one or more electrodes are configured to be bipolar or multipolar in that one or more electrodes acts as a cathode and one or more other electrodes acts as an anode. In some implementations stimulation is delivered through multiple sets of monopolar or multipolar configurations of electrodes such that stimulation pulses are interleaved in time relative to pulses delivered through other sets of electrodes. In some implementations, each electrode in the electrode array 124 applies either a biphasic and charge-balanced pulse or a monophasic with passive charge balance pulse to ensure no net charge accumulation at the associated electrode. In some implementations, the electric stimulation by a particular electrode (or set of electrodes) in the array 124 and the associated parameters are determined by the stimulator 120.

[0041] Referring again to Figure 1A, the stimulator 120 is coupled to the electrode array 124. In some implementations, stimulator 120, which may also be referred to herein as a “neurostimulator,” “neuromodulator, or similar, is configured to provide electrical signals to electrode array 124 to provide electrical stimulation to a desired area. In some implementations, the stimulator 120 selectively activates, deactivates, and controls the parameters applied at one or more electrodes of the electrode array 124. In some implementations, the stimulator 120 is implanted in the patient 112A (not shown) and powered by a battery (not shown).

[0042] In some implementations, the parameters applied by the electrodes, whether during training or by one or more of the resulting models, are not sufficient or intended to induce involuntary motor function. Rather, the stimulation applied by the electrodes modulates the excitability of the motoneurons (where the motoneurons are part of a motor unit used to elicit muscle activity needed to perform a certain movement) so, e.g., the neurological signals for voluntary movement, which may not be sufficient absent modulation, are sufficient to reach the corresponding muscles and result in muscle behavior generally consistent with the patient’s intended movement and / or limb behavior.

[0043] In some implementations, the one or more parameters are restricted to an associated permissible range. For example, in some implementations, a permissible amplitude range is one or more of a 0-10 mA, 0-25 mA, or a percentage of motor threshold amplitude. In some implementations, the parameters may be restricted to be below a motor threshold, e.g., restricted to arange of 0-20% of motor threshold amplitude or 0-80% of motor threshold amplitude, where the motor threshold amplitude refers to the stimulation amplitude needed to evoke (involuntary) muscle activity as a result of the stimulation itself, as may be the case for kinematic parameters and / or parameters maximizing muscle activation in some implementations. In some implementations, the parameters may be restricted but exceed a motor threshold, e.g., restricted to a range of 0-120% of motor threshold amplitude or 0-180% of motor threshold amplitude, as may be the case for determining the parameters that maximize muscle activation in some implementations . For example, in some implementations, a permissible frequency range is one or more of 0-100 Hz, 0-200 Hz, 0-10 kHz. For example, in some implementations, a permissible range of pulse frequencies may be 0-400 pS or 0-4 mS. It should be understood that the preceding are merely example ranges and other ranges may be used, e.g., a sub-range within the ranges described above.

[0044] In some implementations, the stimulator 120 is communicatively coupled to the server 122 (e.g., via network 102) to receive test parameters determined by the neuromodulation determination engine 226 that the stimulator 120 applies to control the parameters applied at one or more electrodes of the electrode array 124 during training of one or more models.

[0045] In some implementations, the stimulator 120 is communicatively coupled to one or more of the controller 130 and the server 122 (e.g., via network 102) to receive one or more kinematic models (described below) that the stimulator 120 applies to control the parameters applied at the electrodes of the electrode array 124.

[0046] In some implementations, the stimulator 120 is communicatively coupled to the controller 130 (e.g., via network 102) to receive a user-selected kinematic model (described below) that the stimulator 120 applies to control the parameters applied at one or more electrodes of the electrode array 124.

[0047] A wearable sensor 126 is a set of one or more sensors worn by the user 112a. Wearable sensors 126 may be included in one or more form factors including, but not limited to, a smartwatch, a smart ring, chest strap, etc. The wearable sensor 126 may include one or more of a gyroscope, accelerometer, magnetometer, pedometer, heart rate monitor, thermometer, galvanic skin sensor, breathing monitor, oximeter, barometer, etc. In some implementations, the wearable sensor 126 is communicatively coupled to the neuromodulation determination engine 226 to provide wearable sensor data that may be used to train a kinematic model (described further below). For example, gyroscope data from a smartwatch may represent a patient’ s tremor when reaching during training of a kinematic model, and the training of the kinematic model may be trained to reduce such a tremor (or balance tremor reduction with one or more other objectives). As another example, heart rate monitor data and / or galvanic skin sensor data may represent exertion by the patient (i.e., an elevated heart rate and / or sweating, respectively), which may be used by the neuromodulationdetermination engine 226 to train one or more models to take patient exertion into account when training the one or more models.

[0048] The EMG sensors 128 are sensors that measure muscle response (e.g., in mV). In some implementations, the EMG sensors 128 are communicatively coupled (e.g., via the network 102) to the neuromodulation determination engine 226.

[0049] In some implementations, the EMG sensors 128 are placed on, in, or near the muscles, or muscle groups, associated with the location of the electrode array(s) 124. For example, assume the electrode array 124 is an array of sixteen (16) electrodes arranged in a linear array in the epidural space of the cervical spinal cord spanning spinal segments C3 to Tl, which is associated with control of the upper-limbs are located, the EMG sensors 128 may be placed on muscles associated with the upper limbs, such as the biceps, triceps, latissimus dorsi, trapezius, deltoids, pronator teres, flexor carpi radialis longs, palmaris longus, flexor carpi ulnaris, flexor digitorum superficialis, abductor pollicis, brachioradialis, etc. In another example in which the electrode are 124 is arranged in a linear array in the epidural space of the spinal cord spanning spinal segments of the lumbar and / or sacral spinal cord, which is associated with control of the lower-limbs, the EMG sensors 128 may be placed on muscles associated with the lower limbs, such as the glutes, hamstring, quadriceps, tibialis anterior, gastrocnemius, soleus and plantaris, etc.

[0050] Other sensors (not shown) may also be included and used without departing from the scope of this disclosure. For example, the system 100 may include a camera (i.e., a sensor) and motion capture software may be used to evaluate a patient’s movement and score the motion (e.g., measure and score how linear a person’s reach) which may may be communicatively coupled (e.g., via the network) to the neuromodulation determination engine 226 and used to train a model associated with reaching (i.e., an example of a kinematic task) in accordance with some implementations. As another example, the system 100 may include one or more dynamometers (i.e., sensors), which may be used to evaluate grip strength and / or the torque a user can apply at a joint, which may be communicatively coupled (e.g., via the network) to the neuromodulation determination engine 226 and used to train a model associated with open doors and jar (i.e., an example of a kinematic tasks) in accordance with some implementations.

[0051] A controller 130 is a computing device that includes a processor, a memory, and network communication capabilities (e.g., a communication unit). The controller 130 is coupled for electronic communication to the network 102, as illustrated by signal line 148, and may be accessed by a user 112a / x. In some implementations, the controller 130 may send and receive data to and from other entities of the system 100 (e.g., a server 122 and / or stimulator 120). Examples of controllers 130 may include, but are not limited to, mobile phones (e.g., feature phones, smart phones, etc.), tablets, laptops, desktops, netbooks, portable media players, personal digital assistants, or a custom developed piece of hardware, etc.

[0052] For simplicity a controller 130 is illustrated in Figure 1; however, it should be understood that there may be any number of controllers 130. The controller 130 may be used, as illustrated by line 152, by a user 112x that is a programmer or clinician during an initial configuration and set-up period and subsequently used, as represented by signal line 38, by a user 112a that is a patient, e.g., to switch between kinematic models applied by the stimulator 120 based on the task the patient 112a intends to perform. For example, the patient 112a may select a general model as a default, but when the user intends to carry groceries the patient 112a may select an associated model (e.g., which may maximize the user’s strength but makes a tradeoff, e.g., may sacrifice range of motion in the patient’s elbow).

[0053] In some implementations, the user 112a and / or 112x is a human user and occasionally referred to based on their role with respect to the system 100, e.g., “patient” or “subject” with regard to user 112a (i.e., the user 112 who has the electrode array 124 and stimulator 120 functionally coupled to his / her nervous system) or “programmer” or “clinician” with regard to user 112x.

[0054] The network 102 may be a conventional type, wired and / or wireless, and may have numerous different configurations including a star configuration, token ring configuration, or other configurations. For example, the network 102 may include one or more local area networks (LAN), wide area networks (WAN) (e.g., the Internet), personal area networks (PAN), public networks, private networks, virtual networks, virtual private networks, peer-to-peer networks, near field networks (e.g., Bluetooth®, NFC, etc.), cellular (e.g., 4G or 5G), and / or other interconnected data paths across which multiple devices may communicate.

[0055] The server 122 is a computing device that includes a hardware and / or virtual server that includes a processor, a memory, and network communication capabilities (e.g., a communication unit). The server 122 may be communicatively coupled to the network 102, as indicated by signal line 116. In some implementations, the server 122 may send and receive data to and from other entities of the system 100 (e.g., one or more of the controller 130, the sensors 126 and 128, the stimulator 120, etc.).

[0056] Other variations and / or combinations are also possible and contemplated. It should be understood that the system 100 illustrated in Figure 1 is representative of an example system 100 and that a variety of different system environments and configurations are contemplated and are within the scope of the present disclosure. For example, various acts and / or functionality may be moved from one component to another (e.g., from the server 122 to the stimulator 120, from the controller 130 to the server 122, or vice versa), data may be consolidated into a single data store or further segmented into additional data stores, and some implementations may include additional or fewer computing devices, services, and / or networks, and may implement various functionality clientside or server-side. Furthermore, various entities of the system 100 may be integrated into a single computing device or system or divided into additional computing devices or systems, etc. Additional,fewer, or different sensors may be present. The number of electrodes per array, the number of arrays, the amount of overlap (or lack thereof) between two arrays, etc. may vary depending on the implementation.

[0057] Figure 2 is a block diagram of an example computing device 200. In the illustrated example, the computing device 200 includes a processor 202, a memory 204, and a communication unit 208. In some implementations, the computing device 200 represents a server 122 and includes an instance of the neuromodulation determination engine 226 and omits an instance of the neuromodulation stimulation engine 228, as illustrated in example of Figure 1A. In some implementations, the computing device 200 represents a stimulator and includes an instance of the neuromodulation stimulation engine 228 and omits an instance of the neuromodulation determination engine 226, as illustrated in the example of Figure 1 A. In some implementations, the computing device 200 represents a controller 130 and includes an instance of the neuromodulation determination engine 226 and an instance of the neuromodulation stimulation engine 228.

[0058] The processor 202 may execute software instructions by performing various input / output, logical, and / or mathematical operations. The processor 202 may have various computing architectures to process data signals including, for example, a complex instruction set computer (CISC) architecture, a reduced instruction set computer (RISC) architecture, and / or an architecture implementing a combination of instruction sets. The processor 202 may be physical and / or virtual, and may include a single processing unit or a plurality of processing units and / or cores. In some implementations, the processor 202 may be capable of generating and providing electronic display signals to a display device, supporting the display of images, capturing and transmitting images, and performing complex tasks and determinations. In some implementations, the processor 202 may be coupled to the memory 204 via the bus 206 to access data and instructions therefrom and store data therein. The bus 206 may couple the processor 202 to the other components of the computing device 200 including, for example, the memory 204, the communication unit 208.

[0059] The memory 204 may store and provide access to data for the other components of the computing device 200. The memory 204 may be included in a single computing device or distributed among a plurality of computing devices. In some implementations, the memory 204 may store instructions and / or data that may be executed by the processor 202. The instructions and / or data may include code for performing the techniques described herein or a portion thereof. The memory 204 is also capable of storing other instructions and data, including, for example, an operating system, hardware drivers, other software applications, databases, etc. The memory 204 may be coupled to the bus 206 for communication with the processor 202 and the other components of the computing device 200.

[0060] The memory 204 may include one or more non-transitory computer-usable (e.g., readable, writeable) device, a static random access memory (SRAM) device, a dynamic randomaccess memory (DRAM) device, an embedded memory device, a discrete memory device (e.g., a PROM, FPROM, ROM), a hard disk drive, an optical disk drive (CD, DVD, Blu-ray™, etc.) mediums, which can be any tangible apparatus or device that can contain, store, communicate, or transport instructions, data, computer programs, software, code, routines, etc., for processing by or in connection with the processor 202. In some implementations, the memory 204 may include one or more of volatile memory and non-volatile memory. It should be understood that the memory 204 may be a single device or may include multiple types of devices and configurations. In some implementations, the memory 204 stores one or more of the neuromodulation determination engine 226 and the neuromodulation stimulation engine 228 for execution by the processor 202 to provide the features and functionality described herein.

[0061] The communication unit 208 is hardware for receiving and transmitting data by linking the processor 202 to the network 102 and other processing systems. The communication unit 208 receives data and transmits the data via the network 102. The communication unit 208 is coupled to the bus 206. In one implementation, the communication unit 208 may include a port for direct physical connection to the network 102 or to another communication channel. For example, the computing device 200 may be the server 122, and the communication unit 208 may include an RJ45 port or other port for wired communication with the network 102 (or directly with one or more other system 100 components). In another implementation, the neuromodulation determination engine 226 and associated functionality is executed by a microprocessor (which may be processor 202 or a another processor (not shown)) inside the stimulator 120 and the communication unit 208 may be an interface included in the microprocessor (such as an analog amplifier, ADC, SPI interface, I2C interface, CAN interface, UART interface, USB interface, TTL interface, or similar) to directly send and receive data to the sensors 126 / 128 and the stimulator 120. In another implementation, the communication unit 208 may include a wireless transceiver (not shown) for exchanging data via the network 102 or any other communication channel using one or more wireless communication methods, such as IEEE 802.11, IEEE 802.16, Bluetooth® or another suitable wireless communication method.

[0062] In yet another implementation, the communication unit 208 may include a cellular communications transceiver for sending and receiving data over a cellular communications network such as via short messaging service (SMS), multimedia messaging service (MMS), hypertext transfer protocol (HTTP), direct data connection, WAP, e-mail or another suitable type of electronic communication. In still another implementation, the communication unit 208 may include a wired port and a wireless transceiver. The communication unit 208 also provides other connections to the network 102 for distribution of files and / or media objects using standard network protocols such as TCP / IP, HTTP, HTTPS, and SMTP as will be understood to those skilled in the art.

[0063] It should be apparent to one skilled in the art that the computing device 200 may include other processors, operating systems, inputs (e.g., keyboard, mouse, one or more sensors, microphone, etc.), outputs (e.g., a speaker, display, haptic motor, etc.), and physical configurations without departing from the scope of the disclosure.

[0064] Referring now to Figure 3, a block diagram of an example neuromodulation determination engine 226 is illustrated in accordance with one implementation. As illustrated in Figure 3, the neuromodulation determination engine 226 may include a testing stimulation output engine 302, a sensor data receiver 304, a recruitment determiner 306, and a kinematics model determiner 308.

[0065] The test stimulation output engine 302 may include software and / or logic for outputting test stimulation parameters for application to one or more electrodes in the electrode array 124. The test stimulation output engine 302 is communicatively coupled to the electrode array 124. For example, the test stimulation output engine 302 may be communicatively coupled (e.g., via the network 102) to the stimulator 120, which is coupled to the electrode array 124, and the stimulator 120 causes the electrodes in the array 124 to apply the test parameters.

[0066] In some implementations, the test stimulation output engine 302 outputs test stimulation parameters during a model training phase. For example, in some implementations, the test stimulation output engine 302 outputs a first set of test parameters and first sensor data is collected measuring a patient’s response (e.g., muscle activation, kinematic task performance, etc.), which may be used to train a model (e.g., a recruitment model or a kinematic model). In some implementations, the test stimulation output engine 302 outputs test stimulation parameters repeatedly during a model training phase. For example, in some implementations, the test stimulation output engine 302 outputs a second set of test parameters and second sensor data is collected. In some implementations, test parameters are repeatedly output until the model determiner (e.g., recruitment determiner 306 or kinematics model determiner 308) determines the associated model.

[0067] The sensor data receiver 304 may include software and / or logic for receiving sensor data. The sensor data receiver 304 is communicatively coupled to obtain sensor data. For example, the sensor data receiver 304 may be communicatively coupled to one or more of the EMG sensor(s) 128, the wearable sensor(s) 126, or the other sensors to obtain sensor data (e.g., electronically via the network 102). As another example, in some implementations, a portion of sensor data may be obtained via manual input using an input device (e.g., using a keyboard, touchscreen, etc.).

[0068] The sensor data received by the sensor data receiver 304 may vary based on a number of factors including, but not limited to, the timing, the available sensors, the model being trained, the kinematic task of interest, etc.

[0069] For example, in some implementations, assume that the recruitment determiner 306 uses only the parameter sets applied by the electrodes and EMG data received by the sensor datareceiver 304 from the EMG sensors 128 representing the muscle response invoked by each parameter set. Also, assume that the kinematics model determiner 308 is determining a kinematic model that maximizes grip strength and uses data received by the sensor data receiver 304 from the grip dynamometer sensor. In this example, the data received by the sensor data receiver 304 varies in timing, sensors, and the associated model. Now, assume that the kinematics model determiner 308 determines a kinematic model for reaching and uses sensor data received by the sensor data receiver 304 describing the linearity of motion (e.g., from a camera-based motion capture system, a gyroscope, or other sensors), the data received by the sensor data receiver 304 in this example varies from that of the dynamometer and EMG sensor examples above.

[0070] The recruitment determiner 306 may include software and / or logic for determining muscle recruitment. In some implementations, muscle recruitment is determined by generating one or more of a muscle model that maps muscle response throughout a parameter space (e.g. different sets of electrodes and various associated parameters) and a recruitment model that describes the parameter set(s) associated with maximum (absolute and / or selective) muscle activation of one or more muscles.

[0071] For clarity and convenience, the recruitment determiner 306 is discussed herein with frequent reference to an example use case involving upper stroke mobility and makes reference to the electrode arrays 124C and 124R implanted in the cervical spine as illustrated in Figure IB and one or more electrodes therein, and one or more muscles by name (e.g., bicep). However, it should be understood that the description herein may be applied to different electrode array configurations, in different portions of the spine (e.g., lumbar or sacral instead of cervical), different limbs (e.g., lower instead of upper limbs), different muscles (e.g., different muscle(s) in an upper limb or a muscle in a lower limb), etc.

[0072] The implantation of the electrode array 124 may vary patient-to-patient.Additionally, in the context of stroke patients, the neurological damage and deficits may vary from patient-to-patient. In some implementations the recruitment determiner 306 may effectively determine which electrode(s) and associated parameters maximize recruitment of which muscle(s), that information may be used to better treat the particular patient given their specific implantation and set of deficits.

[0073] In some implementations, the recruitment determiner 306 determines which electrode(s) recruit, stimulate, or potentiate control of which muscle(s) and at with what parameters to identify the electric parameters and electrode(s) that maximize activation of each muscle of interest. For example, in some implementations, the recruitment determiner 306 determines a first set of electrodes and first set of electrical parameters, which may vary electrode-to-electrode, that are applied by that first set of one or more electrodes that maximize bicep activation as measured by EMG sensors 128 associated with the bicep, determines a second set of electrodes and second set of electrical parameters applied by that second set of one or more electrodes that maximize tricepsactivation as measured by EMG sensors 128 associated with the bicep, determines a third set of electrodes and third set of electrical parameters applied by that third set of one or more electrodes that maximize deltoid activation as measured by EMG sensors 128 associated with the deltoid, and so forth for each muscle or muscle group in the patient’s upper limbs or each muscle or muscle group of interest in the patient’s upper limbs.

[0074] In some implementations, the set of electrodes and the associated parameters that maximize a muscle, or muscle group’s, activation are determined, by the recruitment determiner 306, based on one or more muscle models generated by the recruitment determiner 306. In some implementations, the recruitment determiner 306 determines maximum activation in absolute terms. For example, the recruitment determiner 306 determines the electrode(s) and associated parameters that maximize bicep activation as measured by voltage using the EMG sensors associated with the bicep. In some implementations, the recruitment determiner 306 determines maximum activation in terms of maximum activation relative to other muscles, which may be referred to as “maximized selective activation,” “maximized selectivity,” or similar. For example, the recruitment determiner 306 determines the electrode(s) and associated parameters that maximize bicep activation as measured by the EMG sensors relative to activation of other muscles or muscle groups.

[0075] To better understand some of the features and benefits of the recruitment determiner 306 it may be beneficial to understand and contrast to the human-implemented trial-and-error process. In the human-implemented trial-and-error process, a programmer or clinician would select an electrode, input a set of parameters for that electrode, look at the EMG sensor readings for the EMG sensors associated with the bicep, select a new electrode and / or new parameters, analyze how the EMG sensor data changed, and repeat until the trial-and-error until the programmer is satisfied that he / she has found the electrode and set of parameters that maximizes the activation of the bicep. The programmer then moves to the next muscle or muscle group (e.g., triceps) and repeats the process to determine which singular electrode and set of parameters maximize the activation of the triceps.

[0076] It should be understood that the human-implemented guess-and-check process is time consuming as the parameter space to be explored is large (e.g., the number of available electrodes in the array 124 times number of available amplitudes times number of available frequencies times number of available pulse widths, etc.). Additionally, that time is multiplied by the number of muscles or muscle groups of interest in the limb, as the human-implemented process is performed serially for each of the multiple muscles or muscle groups of interest that are associated with a limb. Furthermore, the human-implemented process often uses one electrode at a time and ignores the potential to use multiple electrodes simultaneously to achieve improved recruitment / activation / stimulation, as the multi-polar interactions may become too complex and non- intuitive / unpredictable for a human clinician to explore and optimize. Over time a human clinician may develop a better understanding of the parameter space in general and obtain some modestperformance gains, but the number of iterations will generally remain high and be time consuming. The variation in the time to outcome and the overall outcome for a patient being dependent upon the availability, skill, and potentially luck of the programmer (e.g., moving to a global maximized activation rather than a local maximum) is sub-optimal. The time-consuming nature increases costs and inconvenience to the patient. Moreover, it may subject the patient to additional risks. For example, in some implementations, it may be desirable to determine muscle recruitment and maximized muscle activation after implantation, but while the patient is still under anesthesia / unconscious, as there is generally less neurological activity and cause and effect between electrode stimulation and resulting EMG data may be cleaner and more accurate. However, anesthesia carries risks, and it may be desirable to reduce the amount of time the patient is under anesthesia.

[0077] The recruitment determiner 306 applies machine learning to the set of one or more electrodes and associated parameters that maximize (absolutely and / or selectively depending on the implementation) activation of one or more muscles or muscle groups. The varieties of supervised, semi-supervised, and unsupervised machine learning algorithms that may be used, by recruitment determiner 306, to determine the set of one or more electrodes and associated parameters that maximize (absolutely and / or selectively) activation of one or more muscles or muscle groups are so numerous as to defy a complete list. Example algorithms include, but are not limited to, a decision tree; a gradient boosted tree; boosted stumps; a random forest; a support vector machine; a neural network; a recurrent neural network; long short-term memory; transformer; logistic regression (with regularization), linear regression (with regularization); stacking; a Markov model; Markov chain; and others.

[0078] For clarity and convenience, some example implementations are described below with reference to some example machine learning algorithms. For example, the below describes some example implementations using Gaussian Process Bayesian Optimization (GP-BO) of an Upper Confidence Bound type, but other types (e.g., Lower Confidence Bound, etc.), regression algorithms, Bayesian processes, etc. may be used without departing from the description herein. As another example, the below describes some example implementations using Large Language Models, but other models and variations are within the scope of this disclosure.

[0079] In some implementations, the recruitment determiner 306 uses GP-BO to determine maximized muscle activation. In some implementations, the recruitment determiner 306 uses GP-BO to determine maximized muscle activation by initializing the model with an initial distribution, using GP-BO to generate sets of exploratory test parameters, using GP-BO to generate sets of optimizing test parameters, and identifying a maximum (absolute and / or relative depending on the implementation) .

[0080] In some implementations, the recruitment determiner 306 initializing the model with an initial distribution. Many machine learning algorithms suffer from the cold start problem where there’s not sufficient data upon which to train and / or overfitting where the model is trained to fit too closely to a small data set, which may not accurately reflect a population, and the model subsequently performs poorly when applied to data post-training.

[0081] The GP-BO algorithm, while it does require initialization with an initial distribution, may be initialized with a uniform distribution (not shown). Therefore, the recruitment determiner 306 may begin using GP-BO without access to, or utilization of, any data describing prior electrode array 124 implantations, any data describing prior muscle models, any data describing electrodes and associated parameters previously found to maximize activation, etc. in accordance with some implementations .

[0082] Note that, while GP-BO, may be initialized with an (arbitrary) uniform distribution, that may not always be the case. For example, assume EMG sensors 128 are attached to the multiple muscles (or muscle groups) of interest (e.g., bicep, deltoids, triceps, etc.); in some implementations, the recruitment determiner 306 when testing electrode and parameter sets to generate the muscle model and determining maximized activation of a first target muscle (e.g., the bicep) may simultaneously gather EMG data describing activation of other muscles (e.g., the deltoid, triceps, etc.) responsive to those tested electrode and parameter set pairings. A portion of that dataset may be represented in an initial distribution used by the recruitment determiner 306 when testing electrode and parameter sets to generate the muscle model and determining maximized activation for another target muscle or muscle group (e.g., the deltoid) for that patient. The datasets generated when generating the recruitment muscle models of the bicep and deltoid may then be represented in an initial distribution used by the recruitment determiner 306 when testing electrode and parameter sets to generate the muscle model and determining maximized activation for yet another target muscle or muscle group (e.g., the triceps), and so forth.

[0083] It should therefore be recognized that the GP-BO based example implementation may provide some efficiencies. For example, information gained while generating muscle models of other, prior muscles, or muscle groups, may be leveraged to initialize the distribution associated with another muscle or muscle group. For example, referring to Figure 6A, which illustrates an unoptimized distribution 600A associated with bicep recruitment in accordance with some implementations, assume that muscle model generation and maximized activation determination has already been performed for another muscle (e.g., the latissimus muscles) and during that process, electrode 5R in the electrode array 124R was stimulated alone a number of times with different parameter values. Distribution 600 A may represent the initial distribution for bicep recruitment with respect to electrode 5R based on EMG data associated with the bicep and obtained during muscle model generation and maximized activation determination for that other muscle or muscle group.Therefore, rather than being initialized as a uniform distribution, i.e., a plane (not shown), the initial distribution has peaks and valleys based on previous electrode and test parameters set pairings. Thus, the parameter space for the bicep muscle model is already partially explored and the recruitment determiner 306 may converge on the optimized activation parameter set for the bicep, an example of which is illustrated by the peak in 600B in Figure 6B, more quickly and / or in fewer iterations.

[0084] In another example, the recruitment determiner 306 may execute at multiple, different times for the same patient. For example, the recruitment determiner 306 may determine the muscle models and maximized activation parameter sets a first time during array 124 implantation while the patient is unconscious. The recruitment determiner 306 may re-execute using the muscle models determined while the patient was unconscious for a particular muscle as the initial distribution for that muscle and re-generate the muscle models and re-determine a maximized activation parameter sets in accordance with some implementations. Since a patient’s condition is not static, e.g., due to one or more of healing, neuroplasticity, additional damage or degradation (e.g., from age or additional strokes), shifting of the electrodes, etc., the recruitment determiner 306 may re-execute using the previously determined muscle model for a particular muscle as the initial distribution for that muscle and re-generate the muscle models and re-determine the maximized activation parameter sets in accordance with some implementations.

[0085] In another example, as muscle models are generated for more patients, in some implementations, the recruitment determiner 306 may use an additional layer of machine learning to identify patterns, or commonalities, or generate a composite muscle model to use at initialization for a new patient (e.g., rather than a uniform distribution).

[0086] In some implementations, the recruitment determiner 306 may narrow the parameter space. In some implementations, the recruitment determiner 306 restricts the candidate electrode parameter space based on one or more explicit, anatomically based rules. For example, assume the bicep brachii nerves that control the bicep are typically located near the C5 vertebrae, where the 5R electrode in the rostral electrode array 124R is implanted in some implementations. In some implementations, the recruitment determiner 306, when determining the muscle model and maximized activation parameter set, may eliminate or decrease the probability it will test one or more electrodes based on their distance from the C5 vertebrae, e.g., electrodes 5C-8C of array 124C or more electrodes are eliminated from testing. In some implementations, the recruitment determiner 306 restricts reduces a parameter space based on machine learning. For example, as muscle models from more patients are generated, in some implementations, machine learning may be applied to determine patterns, such as areas of the parameter space disproportionately associated with minimums to the degree that they can be eliminated and / or areas of the parameter space disproportionately associated with maximums to the degree test parameters should be restricted to that parameter space.

[0087] In some implementations, the recruitment determiner 306 uses GP-BO to generate sets of exploratory test parameters during an exploration phase and sets of optimizing test parameters during an exploitation phase. In some implementations, the number of iterations, i.e., max number of test sets, that the recruitment determiner 306 may use to generate a muscle model (e.g., for the bicep) is capped. The cap may vary depending on the implementation. As an example, the cap may be 100 iterations. However, the GP-BO method may, and often does, converge on a maximum before reaching that cap.

[0088] The exploratory test parameters and exploration phase explore the parameter space. For example, they may be broadly distributed across the parameter space and, when applied to a uniform, initial distribution, may result in a recruitment distribution similar to 600A. The division of potential iterations / queries / test parameter sets between exploration and exploitation may vary depending on the implementation. Assigning too many iterations to exploration may fail to result in identification of the true, maximized muscle activation parameter set during the exploitation phase. Assigning too few iterations to exploration may fail to identify a global maximum and result in identifying a local maximum muscle activation parameter set. In some implementations, the division of permitted iterations is 20% and 80%. However, the division may vary without departing from the description herein. For example, the exploration phase percentage may be between 10% and 50% or any sub-range therein. In some implementations, the division between the exploration and the exploitation phases may be fixed values. In some implementations, the division between the exploration and the exploitation phases may be dependent upon GP-BO hyperparameters, effectively allowing the GP-BO algorithm to self-balance between the exploration and exploitation phases.

[0089] The GP-BO method generates a test parameter set, which may be sent to the stimulator 120 (e.g., via the testing stimulation output engine 302 and network 102), and the identified one or more electrodes for test in the electrode array 124 apply their specified test parameters. The GP-BO algorithm is applied to analyze the patient’s response, i.e., a resulting muscle activation responsive to the application of the parameter set to the associated electrode set, and the GP-BO determines the next test parameter set. In some implementations, the resulting muscle activation is objectively measured by one or more sensors. For example, the muscle activation is measured in terms of maximum voltage registered by one or more EMG sensors associated with the one or more muscles including a target muscle (e.g., the bicep) responsive to stimulation using the test parameter set. In some implementations, the recruitment determiner 306 uses a machine learning model, e.g., GP-BO, to find the parameter set, which includes the values and associated electrode(s), that maximize the objective measure of activation (e.g., voltage detected by the EMG sensors 128). In some implementations, the objective measure of muscle activation that is being maximized may be normalized.

[0090] The test parameters sets (including the values and the electrode(s) associated therewith) and the resulting objective measures of muscle activation may be referred to as “training data” with reference to the muscle model and determination of the parameter sets associated with the maximized muscle activation of a target muscle. The collection of electrical parameter sets with values that maximize muscle activation for each of one or more target muscles (e.g., the parameter set that maximizes bicep activation, the parameter set that maximizes triceps activation, etc. in the upperlimb use case) may be referred to collectively herein a “recruitment model.”

[0091] While Figure 6B technically illustrates a muscle model 600B generated by discretizing the amplitude parameter (restricted to the 0-3 mA range as illustrated) into 0.2 mA increments, testing each of the electrodes 1R-8R in the rostral electrode array 124R, (maintaining a constant pulse width and 1 Hz frequency for simplicity of illustration and discussion) and sampling each point in that discretized sample space, the GP-BO method converges on the same maximum (i.e. electrode 5R and 3 mA to maximally active the bicep with fixed pulse width and frequency). In an accurate representation of a muscle model generated by the GP-BO process, the distribution may not be as smooth and may have other peaks or valleys, since every point is not tested.

[0092] It should be recognized that, while the maximum amplitude (i.e., 3 mA in Figure 6B) is frequently associated with maximum activation, it is not always the case. In some implementations, the peak associated with stimulating electrode 5R at 3 mA in Figure 6B is the absolute maximum activation. In some implementations, the peak associated with stimulating electrode 5R at 3 mA in Figure 6B is a selective activation maximum activation, where the peak is associated with a maximized delta between the EMG data associated with the bicep and one or more other muscle(s), as determined by the recruitment determiner 306.

[0093] It should also be recognized that the parameter space illustrated in Figures 6A and 6B were selected for clarity of illustration and explanation. The parameter spaces may be much larger than illustrated. For example, the parameter space may include one or more of mono-polar (as illustrated) or multi-polar, the parameter ranges may vary, the parameter range may be discretized differently (e.g., 0.1 mA increments), etc.

[0094] Referring now to Figure 7, an illustration 700 of the muscles activated by electrode 5R is illustrated in accordance with some implementations. In Figure 7, a diagram of the electrode arrays 124R and 124C as implanted in Figure IB are illustrated by the lines of blocks labeled at 124 R and 124C, respectively. Electrode 5R shaded to indicate mono-polar stimulation at electrode 5R. To the left of the bisection line 702, a representation 704 of at least a portion of the human musculature visible, when viewing the front of a human body, is illustrated, particularly those muscles association with upper-limb mobility. To the right of the bisection line 702, a representation 706 of at least a portion of the human musculature visible, when viewing the back of a human body, is illustrated, particularly those muscles association with upper-limb mobility. The shading indicates whichmuscles are activated and the relative degree of activation, where the darker the shading; the greater the stimulation (e.g., as measured by resulting EMG data). As illustrated in the example, a mono- polar stimulation at electrode 5R induces more stimulation to the bicep 708 relative to the triceps 710, deltoids 712, and trapezius muscles 714, which are also stimulated in accordance with some implementations .

[0095] Referring now to Figure 8, an illustration of an example closed loop-optimization process using GP-BO is illustrated in accordance with some implementations. While the use of the GP-BO process by the recruitment determiner 306 may at a high-level have some analogies to the human-implemented guess-and-check method, the GP-BO method outperforms. For example, in some implementations, the GP-BO process converges on the maximum by reducing the tested / sampled portion of the available parameter space by 80% and by reducing the number of iterations by 65% over a trained programmer performing the human implemented guess and check method. This reduction may save time, e.g., the process may be performed in a minute or two versus hours. These improvements were measured in the context of mono-polar stimulation (i.e., one electrode and only one electrode at a time). Performance gains may be more significant when considering multi-polar stimulation and associated recruitment models, which are not presently attempted by human programmers / clinicians due to the complex interactions multi-polar stimulation may create.

[0096] The computerized determination of the test parameter sets (and associated electrode(s)) enabled by using GP-BO may expedite the determination of the muscle model(s) and recruitment model(s). In some implementations, the system 100 may require a human-in-the-loop for application of the test parameter set(s) to the patient 112a (e.g., initially, until the system instills confidence that there are no issues that may harm the patient). In some implementations, the computerized determination of the test parameter sets (and associated electrode(s)) along with connectivity (e.g., via the network 102) to the stimulator 120 may provide automated application of the test parameter sets to the patient and EMG sensors 128 to obtain the patient’s response permit rapid (e.g. on the order of seconds or a few minutes) determination of the muscle models and associated maximized muscle activation parameter sets. For example, determining the various muscle models and associated maximum muscle activation parameter sets for the upper limbs and associated muscles using a stimulation pulse at 1 Hz was performed repeatedly during experimentation and took approximately 100 seconds. It should be understood that human or mental performance of the GP-BO process, given the complexity of the math, is impractical and is unlikely to be faster than the human- implemented guess-and-check process, and unlikely to enable less experienced or specialized personnel oversee or perform the process.

[0097] Depending on the implementation and use case, the muscle model and / or recruitment model for one or more muscles, may be used to generate a kinematic model that is delivered to andtreats the patient differently. In some implementations, the muscle model and / or recruitment model for one or more muscles may be used indirectly to reduce the parameter space and expedite training of the machine-learning-derived kinematic model (described below). In some implementations, the recruitment model may be used directly as a kinematic model. For example, assume that a task of interest is to perform a bicep curl or pull; in some implementations, the kinematic model for that task may be the same as the recruitment model that maximizes activation of the bicep. In some implementations, the muscle model and / or recruitment model for one or more muscles used to determine a kinematic model without machine learning. For example, assume that reaching balances activation of bicep and triceps; in some implementations, the kinematic model is derived by combining the recruitment model of the bicep and triceps. For example, the kinematic model is delivered such that delivery of stimulation using the parameter set maximizing bicep activation is interleaved with the parameter set maximizing tricep activation.

[0098] In some implementations, the recruitment determiner 306 is communicatively coupled to the testing stimulation output engine 302 and the sensor data receiver 304. For example, the recruitment determiner 306 is communicatively coupled to provide a test set of electrical parameters to the testing stimulation output engine 302, and communicatively coupled to obtain sensor data representing results of application of the test set of electrical parameters to the patient via the electrode array. For example, the recruitment determiner 306 may be communicatively coupled to one or more of the memory 204 and a data storage (not shown) to store sensor data and associated test parameters and maximized muscle activation parameter sets. In some implementations, the test set of electrical parameters may be communicatively coupled to one or more components or subcomponents of the neuromodulation determination engine 226, such as the kinematics model determiner 308.

[0099] The kinematics model determiner 308 may include software and / or logic for generating one or more kinematic models. The types of limb movement needed to perform a task, where “task” may also referred to herein as a “kinematic task,” “motor outcome,” “physiological function,” or similar, may involve more than a singular muscle (e.g., the just the bicep). For example, it is not uncommon for a kinematic task to require use and / or orchestration of multiple muscles and / or groups of muscles for successful completion. Those multiple muscles (or groups) may include two or more muscles in opposition, such as the triceps and biceps for the extension-flexion involved in a reaching task. In some implementations, the kinematics model determiner 308 determines a set of electrical parameters including their values and associated electrode(s) that facilitate performance of one or more kinematic tasks. A set of electrical parameters including their values and associated electrode(s) that facilitate performance of one or more kinematic tasks may be referred to as a “kinematic model,” a “kinematic parameter set,” or similar.

[0100] The kinematics model determiner 308 is communicatively coupled to obtain a kinematic model from one or more of the stimulator 120 and the controller 130. For example, thekinematics model determiner 308 may be communicatively coupled to the memory 204 and one or more of the stimulator 120 and the controller 130 may retrieve (e.g., via network 102) one or more kinematic models therefrom. As another example, the kinematics model determiner 308 may be communicatively coupled to one or more of the stimulator 120 and the controller 130 and send one or more kinematic models thereto.

[0101] Referring now to Figure 4, a block diagram of an example kinematics model determiner 308 is illustrated in accordance with some implementations. In the illustrated implementation, the kinematics model determiner 308 includes a target kinematics determiner 402, a muscle determiner 404, a kinematic performance measure obtainer 406, and a kinematic model trainer 408.

[0102] In some implementations, the kinematic model determiner 308 may determine more than one kinematic model, which may be selected and applied to the patient. For example, a default or general model may be determined by the kinematic model determiner 308 and applied by the stimulator 120 for general tasks, and the patient 112a may select a more specialized kinematic model determined by the kinematic model determiner 308 and applied by the stimulator 120 when the patient 112a intends to perform the associated task.

[0103] The target kinematics determiner 402 may include software and / or logic for identifying a target kinematic task for training / determination of the kinematic model to be associated with that task. The target kinematic task may also occasionally be referred to herein as the “kinematic task,” “task of interest,” “intended task,” “desired task,” or similar. Examples of target tasks related to upper-limb mobility may include, but are not limited to reaching, griping, lifting, throwing, etc. Examples of target tasks related to lower-limb mobility may include, but are not limited to squatting, kicking, climbing stairs, walking, jumping, etc. Examples of general target tasks may include, but are not limited to maximizing a range of motion for one or more joints of interest, maximizing a torque production at one or more joints of interest, maximizing the co-activation of muscles involved in certain synergies involved in a kinematic task of interest, etc.

[0104] In some implementations, there may be a “general” task trained for versatility (e.g., balances factors such as range of motion, strength or torque, linearity of motion, smoothness of motion, etc., which may each be weighted), and the general task model may be used as default kinematic model. In some implementations, the general task kinematic model is a composite derived from, or that combines, a plurality kinematic models associated with other kinematic tasks or a subset thereof (e.g., a subset of the most frequently performed tasks). For example, the general task kinematic model interleaves delivery of the various, associated kinematic models (e.g., reaching kinematic model, picking something up kinematic model, gripping interactive model, etc. then repeats). It should be recognized that the frequency of interleaving, the number of kinematic models interleaved, and their associated tasks may vary based on the implementation and use case. It shouldalso be recognized that other methods of derivation, or combination, are contemplated and within the scope of this disclosure, such as determining the general kinematic model’ s parameter set mathematically from the set of constituent kinematic models. In some implementations, the kinematic model for one kinematic task could be used in whole or in part as the kinematic model for other, similar tasks. The second kinematic model, not being derived independently using machine learning. For example, a first kinematic model may optimize stimulation for reaching and grasping a block, this same kinematic model may then be used to assist a patient also in opening a cabinet door as the movements involved are similar. Alternatively, a portion of the first kinematic model may be preserved and used as the kinematic model for a different task. For example, just the electrode sets which contribute to the grasping movement involved in reaching and grasping for a block are used as the kinematic model for carrying a heavy load of groceries inside from the car.

[0105] For clarity and convenience, the description herein makes frequent reference to an example in which the kinematic task is reaching. In some implementations, the identification of the target kinematic task may be based on user input. For example, a user 112x or 112a selects “reaching” from a pre-populated list of suggested tasks. As another example, the user 112x inputs “Reaching” as the name of the kinematic model to be determined.

[0106] The target kinematics determiner 402 is communicatively coupled to one or more components or subcomponents of the kinematics model determiner 308, such as muscle determiner 404 and / or the kinematics model trainer 408.

[0107] The muscle determiner 404 may include software and / or logic for determining the one or more muscles associated with the target kinematic task. For example, assume that the kinematic task is reaching; in some implementations, the muscle determiner 404 may determine that the muscles required for reaching include the deltoid for raising the upper-arm, the bicep and triceps for controlling the flexion and extension of the arm, perhaps some of the forearm muscles for controlling hand rotation and lifting the hand, etc. Depending on the implementation, the muscle determiner 404 may determine the one or more muscles by means of various mechanisms. In some implementations, the muscle determiner 404 may determine the one or more muscles using a database or look-up. For example, responsive to selection of a reaching kinematic task, the muscle determiner 404 accesses a storage that identifies the muscle(s) previously identified and associated with the reaching task. In some implementations, the muscle determiner 404 may determine the one or more muscles based on user input. For example, programmer 112x may determine (e.g., based on knowledge of human anatomy) the muscles relevant to the task of interest.

[0108] The muscle determiner 404 is communicatively coupled to one or more components or subcomponents of the kinematics model determiner 308, such as muscle the kinematics model trainer 408.

[0109] In some implementations, the muscle determiner 404 may be optionally omitted from the kinematics model determiner 308. For example, in some implementations, the kinematics model trainer 408 may train a kinematics model without prior knowledge of the relationship between electrodes, their parameters, and resulting muscle activation. For example, as described above, the muscle model(s) and / or recruitment model(s) may used by the kinematics model trainer 408 (described below) to reduce the parameter space, which may expedite the training of a kinematics model. However, in some implementations, the kinematics model trainer 408 may train the kinematics model without that knowledge (e.g., using GP-BO to explore within the full parameter space before optimizing). While using prior knowledge and reducing the parameter space may provide increased efficiency, in some implementations, it may be preferred to train within the full parameter space, as it may yield unexpected and useful synergies. For example, in some implementations, rather than trying to balance stimulation of a first electrode for bicep activation and a second electrode for triceps activation based on the recruitment model and the determined muscles for reaching, the kinematic model may be trained within the full parameter space (without the muscle model and / or recruitment model) and identify a third electrode that yields better kinematic performance of the reaching task (e.g., provides a balanced activation of the triceps and bicep and / or interferes less with the activation of other muscles used in the task). In some implementations, such discovered synergies may be used in subsequent kinematic model trainings.

[0110] The kinematic performance measure obtainer 406 may include software and / or logic for obtaining a metric describing the performance of the kinematic task, which may also be occasionally referred to herein as a “performance metric” or similar. The metric describing the performance of the task may vary based on the task.

[0111] For example, assume again that the task is reaching; in some implementations, the metric describing the performance of the kinematic task may be based on how closely the patient’ s hand follows an ideal path (i.e., a straight line to and from a target). For example, referring now to Figure 9, a diagram of a center-out task for training a reaching model is illustrated in accordance with some implementations. In the center-out task, the patient 112a moves his / her hand from a central target to one of the outer targets (Right, Left, or Top), back to center, then to the next target. An example of a path representative of what a stroke patient’s actual, initial path as compared to the ideal path is illustrated at 904. Depending on the implementation, the path length may be obtained using various means. In some implementations, a camera-based motion capture system may objectively generate the path length (i.e., an example of a performance metric). In some implementations, the path length may be estimated by the programmer 112x.

[0112] In an example in which the kinematic task is gripping, the patient may be asked to squeeze a digital grip dynamometer (i.e. a sensor) and the performance metric may be the reading of the digital grip dynamometer. When the task is associated with range of motion, the performancemetric may be based on one or more of inertial measurement units, a goniometer, and a camera-based motion capture system. When the task utilizes maximum torque upon a joint, the performance metric may be based on one or more of a handheld dynamometer or a robotic dynamometer. It should be understood that the foregoing are merely examples provided with reference to upper-limbs and other limbs, tasks, sensors, readings / measurements / metrics, may be used without departing from the description herein. For example, a fine motor skill task may be associated with a performance metric generated by a gyroscope in a smart watch, a number of beads threaded onto a string or dowel in a given time, etc.

[0113] The kinematic model trainer 408 may include software and / or logic for training a kinematic model for a task using machine learning. The varieties of supervised, semi-supervised, and unsupervised machine learning algorithms that may be used, by the kinematic model trainer 408, to determine the set of one or more electrodes and associated parameters including their values that maximize the performance metric for a task. Example algorithms include, but are not limited to, a decision tree; a gradient boosted tree; boosted stumps; a random forest; a support vector machine; a neural network; a recurrent neural network; long short-term memory; transformer; logistic regression (with regularization), linear regression (with regularization); stacking; a Markov model; Markov chain; support vector machines; and others.

[0114] For clarity and convenience, some example implementations are described below with reference to some example machine learning algorithms. For example, the below describes some example implementations using Gaussian Process Bayesian Optimization (GP-BO) of an Upper Confidence Bound type, but other types (e.g., Power Confidence Bound, etc.), regression algorithms, Bayesian processes, etc. may be used without departing from the description herein. As another example, the below describes some example implementations using Large Language Models, but other models and variations are within the scope of this disclosure.

[0115] In some implementations, the kinematic model trainer 408 minimizes a loss function based on the performance metric and associated parameter set including the parameter values and associated electrodes. For example, referring to Figure 9, which describes the training of a reaching kinematic model; in some implementations, GP-BO is used to minimize the cost function:

[0116] As can be seen in the above equation, the cost reduces as the patient’ s path approaches the ideal path.

[0117] Many tasks may involve multiple muscles which may be activated by stimulation at different electrodes or sets of electrodes, thus the kinematic model is frequently multi-polar, where multiple different electrodes in the array are each applying different parameter values and which may interact (e.g., through constructive and / or destructive interference). The number of multi-polarcombinations may itself be quite large and when compounded by the number of parameters and possible parameter values (even if discretized), the parameter space for the kinematic model is large. In some implementations, the kinematic model trainer 408 may reduce the parameter space based on the set of parameters associated with maximized activation of the muscles determined to be associated with task performance. For example, the kinematic model trainer 408, when training a reaching kinematic model, restricts the electrode parameter space to only explore and optimize by applying stimulus on the 2R and 5R-7R electrodes.

[0118] In some implementations, the amplitude parameter space may be reduced based on the muscle models. For example, referring again to Figure 6B, while 3mA maximized bicep activation, but assume that values above 2 mA enabled the patient to perform some voluntary movement via bicep contraction. In some implementations, the kinematic model trainer 408 may use that minimum and / or maximum to reduce the parameter space. For example, in some implementations, the kinematics model trainer may explore and optimize using only values between 2 mA and 3 mA on electrode 5R, or between 1.6 mA and 3.4 mA to provide some additional margin for error or interactions with other poles (e.g., constructive or destructive interference). Either way, the parameter space may be reduced based on the muscle models. It should be recognized that, while the foregoing describes reduction of the amplitude and electrode parameter spaces, other parameter spaces may be reduced for one or more other parameters (e.g., frequency, pulse width, etc.)

[0119] In some implementations, the full electrode parameter space may be available for exploration and optimization. In some implementations, the waveform (e.g., pulse width and frequency) may be constant during determination of the muscle model(s) and variable for optimization during kinematic model training.

[0120] As described above with reference to the recruitment determiner 306, when using GP- BO an initial model or distribution is provided. In some implementations, the initial model is based on the restricted parameter based on the muscle model(s)as described above. In some implementations, the kinematics model may be a uniform distribution with peaks added based on the maximized muscle activation parameter set for the muscles implicated in the target task. In some implementations, the model may be initialized based on a prior training / existing model. For example, the patient 112a has been using the kinematic model, but perceived performance has degraded, which could be due to rehabilitation, healing, neuroplasticity, etc., and the existing kinematic model is used to initialize the model for retraining. In some implementations, the kinematics model may be initialized based on another patient’s kinematic model or a composite of multiple patients’ kinematic models. For example, machine learning is applied to other patients’ reaching kinematic models to determine patterns or commonalities, which are represented in an initial distribution optimized for the patient 112a using GP-BO.

[0121] Once initialized, GP-BO is applied to successively generate kinematic test parameter sets to explore the parameter space and find a final set of kinematic parameters values that optimizes the task performance metric (or minimizes a cost function based thereon). It should be understood that GP-BO (or other Bayesian optimization methods) may generate various kinematic test parameter sets during exploration and optimization / exploitation phases, and that the application of machine learning (e.g., GP-BO) may reduce iterations, save time, etc. in a manner analogous to the discussion of GP-BO, etc. that were discussed above with reference to the application of GP-BO to maximize muscle activation (rather than maximize a performance metric or minimize an associated cost function). Therefore, for the sake of brevity, those details are not discussed with reference to the generation of the kinematic model. Depending on the implementation, the application of the kinematic test parameter sets may maintain a human-in-the-loop in that human input (e.g., approval via a selection of a graphical element in a UI displayed on the controller 130) may be required for application to the patient, or their application may be automated to expedite training.

[0122] It should be recognized that, by optimizing the task performance metric (or minimizes a cost function based thereon), the effect, when the associated kinematic parameter set is applied the patient 112a via the stimulator 120 and electrode array 124, is one or more of reduced motor impairment in the patient, restored physiological function, and better performance of a task.

[0123] The kinematic model trainer 408 outputs a set of kinematic parameters, which may include a plurality of electrodes and the parameter values applied at each to stimulate the patient’ s nervous system (e.g., spinal cord), which may also occasionally be referred herein to as “a kinematic model.”

[0124] The training process may be repeated for various other tasks to create a library or collection of available kinematic models, which may be sent to the stimulator 120 for application to the patient 112a via the associated electrodes in the electrode array 124.

[0125] In some implementations, the stimulator 120 includes an instance of the neuromodulation stimulation engine 228. An example box diagram of the neuromodulation stimulation engine 228 is illustrated at Figure 5 in accordance with some implementations. In the illustrated implementation, the neuromodulation stimulation engine 228 includes a model selector 502, a model receiver 504, and a stimulation output engine 506.

[0126] In some implementations, multiple kinematic models are trained for the patient 112a and available to the user. The model selector 502 may include software and / or logic for at least partially enabling user selection of a desired kinematic model or associated task. For example, in some implementations, the controller 130 (e.g., tablet, laptop, smart phone, etc.) may present a user interface to the user with multiple portions each associated with a kinematic model for different tasks, and the patient 112a (or other user) may select the task / kinematic model to be applied by the stimulator 120 and switch between models / tasks and the stimulator 120 is communicatively coupledto receive those user selections and act upon them. In some implementations, the controller 130 may present another user interface that the user 112a / x may use to modify one or more parameters associated with a kinematic model or initiate a (re)training of the kinematic model and / or recruitment model.

[0127] The model receiver 504 is communicatively coupled to receive a kinematic model from one or more of the kinematics model determiner 308 or controller 130. In some implementations, the model receiver 504 may receive kinematic models post-training and store them in memory 204. In some implementations, the stimulator 120 may store a library of all available, trained kinematic models for the patient 112a on the patient’s stimulator 120. In some implementations, the memory 204 of the stimulator 120 may be limited. For example, in some implementations, the memory 204 may be sufficient to only store a subset of the available kinematic models (e.g., only the kinematic model in use, or the kinematic model in use and a number of previously used kinematic models and / or most frequently used kinematic models), and the stimulator 120 may download a different kinematic model to replace the model in use responsive to selection of that different kinematic model.

[0128] The stimulation output engine 506 may include software and / or logic for applying electrical parameter sets to the patient 112a via the electrode array 124. For example, the stimulation output engine 506 is communicatively coupled to receive test sets of electrical parameters from the recruitment determiner 306 or kinematics model determiner 308 during training of a recruitment model or kinematic model, respectively, and the stimulation output engine 506 applies the specified parameter values to the specified electrodes. As another example, the stimulation output engine 506 obtains a kinematic model and applies the specified kinematic parameter values to the specified electrodes. For example, the stimulation output engine 506 is communicatively coupled to the model receiver 504 to obtain a kinematic model and applies the kinematic model to the patient 112a via the electrode array 124.

[0129] The foregoing description repeatedly references example implementations using machine learning in the form of GP-BO with reference to determining a recruitment model and / or a kinematic model; however, it bears repeating that GP-BO is merely one example of a machine learning algorithm that may be used and others exist. For example, other regression models, other Bayesian optimizations, neural networks, large language models (LLM) and generative artificial intelligence may be used without departing from the disclosure herein.

[0130] For example, in some implementations, the neuromodulation determination model 226 or one or more components thereof (e.g., the recruitment determiner 306 and kinematics model determiner 308) may use generative Al and / or LLM. In some implementations, an LLM may be generative and have conversational memory. A generative LLM may produce entirely new material(e.g. parameter sets including parameter values for one or more electrodes, answers to patient or programmer inquiries) not directly provided to it.

[0131] Conversational memory allows an LLM to use information provided to it in previous prompts in its answers to new questions. This feature is helpful in generating “realistic” feeling chats enabled by natural back-and-forth exchanges of information.

[0132] In the context of optimizing stimulation for neuromodulation using SCS, it is non- obvious that a generally trained LLM would prove useful, as it is not aware of the domain specific knowledge necessary to make good decisions. However, a trained model can be biased with new information using conversational memory that it can then remember when producing new outputs. In other words, the model can be “primed” with any and all know-how used today by our engineers to program stimulation. This would include an understanding of the anatomy of the spinal cord, an understanding of the physiological effects of changing different stimulation parameters, an understanding of how to probe or test the system in order to make decisions on how stimulation should be adjusted, and any other knowledge that is relevant to the programming process.

[0133] Using this information, the LLM model could then generate (e.g. it is a generative model) a novel response based on logically combining the information provided to it. A user 112a / x could ask the model how stimulation should be adjusted in order to achieve a specific outcome. For example, primed with information about the mapping between electrodes and muscle groups, the user might ask the model, “which electrode should I use to improve potentiation of the bicep?”. The LLM model may then suggest the electrode it knows is mapped to the bicep in accordance with some implementations .

[0134] In another example, the user 112a / x might ask “which electrode would most selectively activate the bicep?”. In this case, the model might choose a different electrode knowing that the electrode which yields the highest activation of bicep may have combined undesired effects with other muscles. As another example, the user 112a / x might ask “How do I reduce hand shaking while reaching?”. In this case, the model might choose to add one or more other or different electrodes knowing that those electrodes are associated with activating forearm musculature and tend to stabilize the hand / wrist.

[0135] In some implementations, the LLM model may be primed with information about how changing parameters such as amplitude, frequency, or pulse width of the stimulation waveform affects the motor outcome of stimulation, prior test parameters and associated patient responses. For example, the LLM is primed with data including one or more or test parameter sets and associated sensor data, such as EMG data for recruitment models and / or performance metrics for kinematics models); previously generated muscle models (e.g., human-generated using guess-and-check, generated using GP-BO, etc.); previously generated kinematic models (e.g., human-generated usingguess-and-check, generated using GP-BO, etc.), etc. and may recommend adjustments to these parameters based on a user prompt.

[0136] In some implementations, where a human programmer 112x remains in the loop, the LLM may make predictions or suggestions that may not have been made by a “standard” human programmer 112x but by a highly trained programmer, thereby improving results in human- implemented implementations and reducing the expertise needed and learning curve for effectively programming the stimulator 120 with one or more models. For example, presently, proper manual programming is based on know-how that has been developed over years of research. By contrast, an LLM primed with information that would typically be used by a trained programmer and some logic they may apply during the programming process (e.g., rules about human anatomy). The information could be loaded into the neuromodulation determination engine 226, and used by the clinician (e.g., via a controller 130 such as a clinician’s or patient’s tablet) to adjust stimulation parameters, and the model would guide the user 112a / x through logical steps that a trained programmer would perform, thus allowing successful optimization without a skilled operator being present.

[0137] As another example, imagine a patient, who would like to make adjustments, as they feel the present model’s stimulation is not helping them enough with elbow extension. Instead of calling their clinician or relying on customer support, they could prompt the LLM with a query about what change(s) to make to achieve the desired outcome, and it would recommend a setting based on its primed logic or outright modify the setting based on its recommendation depending on the implementation.

[0138] In some implementations, the LLM may be primed with large sets of unstructured data and derive a useful outcome. Even the most skilled operators may not be able to keep all data collected over the course of using the stimulator 120 in-mind when making manual decisions about how to adjust stimulation. Going through large data sets of physiological testing, kinematic evaluations, patient inputs, and historical setting adjustments (that may have happened months or years prior), and much more, would be an impossible task for a human, and it ultimately limits the complexity of stimulation patterns that can be identified by a human operator. By contrast, an LLM may learn over the lifetime of the patient’s use to understand which changes had the best outcomes in the past, and how stimulation might be tuned in the present to get a similar result. Not only could an LLM identify new patterns of stimulation based on historical data, but it may also obviate the need to cull through or pre-process the data.

[0139] If properly equipped, the LLM could identify patterns from the raw data (e.g., sensor data and parameter sets during testing and / or during day-to-day operation). Any and all data collected in any context may be made available to the LLM and it could sift through the noise to provide a useful output. Such implementations may enable even more complex and optimized stimulation patterns that would not have been possible even for the most trained individual to produce.Example Methods

[0140] Figures 10-12 are flowcharts of example methods 1000-1200 that may, in accordance with some implementations, be performed by the systems described above with reference to Figures 1A-5. The methods 1000, 1100, and 1200 of Figures 10-12 are provided for illustrative purposes, and it should be understood that many variations exist and are within the scope of the disclosure herein.

[0141] Figure 10 illustrates a flowchart of an example method 1000 for neuromodulation using spinal stimulation in accordance with some implementations. The method 1000 begins at block 1002. At block 1002, the stimulator 120 obtains a set of kinematic parameters identified and optimized, at least in part by a first machine learning algorithm, specifically for a subject. At block 1004, the stimulator 120 via the electrode array delivers electrical stimulation defined by the set of kinematic parameters via the electrode array that is functionally coupled to a nervous system of the subject by electrical stimulation.

[0142] Figure 11 illustrates a flowchart of an example method 1100 for determining a recruitment model in accordance with some implementations. The method 1100 begins at block 1102. At block 1102, the stimulator 120 applies a first test set of electrical parameters to a first set of electrodes in the electrode array 124. At block 1104, the recruitment determiner 306 obtains first data including objective measures, by one or more sensors, of muscle activation responsive to the first test set of electrical parameters. At block 1106, the recruitment determiner 306 determine, using a machine learning algorithm, a next test set of electrical parameters and a next set of electrodes based on the objective measures of muscle activation. At block 1108, the stimulator 120 applies the next test set of machine-learning-identified, electrical parameters to the next set of machine-learning- identified electrodes in the electrode array 124. At block 1110, the recruitment determiner 306 obtains next data including objective measures, by one or more sensors, of muscle activation responsive to the next test set of electrical parameters. At block 1112, the recruitment determiner 306 determines whether it has converged on an optimum set of muscle activation parameters, wherein the optimum set of muscle activation parameters maximizes an activation of a first muscle. If not (1112- NO), blocks 1106-1112 are repeated until the recruitment determiner 306 determines that it has converged (1112- YES) on the optimum set of muscle activation parameters, which may also be referred to as the recruitment model.

[0143] Figure 12 illustrates a flowchart of an example method 1200 for determining a kinematic model associated with a first kinematic task in accordance with some implementations. The method 1200 begins at block 1202. At block 1202, the stimulator 120 applies a first test set of electrical parameters to a first set of electrodes in the electrode array. At block 1204, the kinematics model determiner 308 (or a component thereof) obtains first data including a measure of a first instance of first kinematic task performance. At block 1206, the kinematics model determiner 308 (ora component thereof) determines, using a machine learning algorithm, a next set of electrical test parameters and a next set of electrodes based on the measure of first kinematic task performance. At block 1208, the stimulator 120 applies the next set of machine-learning-identified, electrical test parameters to the next set of machine-learning-identified electrodes in the electrode array 124. At block 1210, the kinematics model determiner 308 (or a component thereof) obtains next data including a measure of a next instance of first kinematic task performance responsive to the next set of test parameters. At block 1212, the kinematics model determiner 308 (or a component thereof) determines whether it has converged on an optimum set of kinematic parameters. If not (1212-NO), blocks 1206-1212 are repeated until the kinematics model determiner 308 (or a component thereof) determines that it has converged (1112- YES) on the optimum set of kinematic parameters, which may also be referred to as the first kinematic task model.Other Considerations

[0144] It should be understood that the above-described examples are provided by way of illustration and not limitation and that numerous additional use cases are contemplated and encompassed by the present disclosure. In the above description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it should be understood that the technology described herein may be practiced without these specific details. Further, various systems, devices, and structures are shown in block diagram form in order to avoid obscuring the description. For instance, various implementations are described as having particular hardware, software, and user interfaces. However, the present disclosure applies to any type of computing device that can receive data and commands, and to any peripheral devices providing services.

[0145] Reference in the specification to “one implementation” or “an implementation” or “some implementations” means that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation. The appearances of the phrase “in some implementations” in various places in the specification are not necessarily all referring to the same implementations.

[0146] In some instances, various implementations may be presented herein in terms of algorithms and symbolic representations of operations on data bits within computer memory. An algorithm is here, and generally, conceived to be a self-consistent set of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.

[0147] It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout this disclosure, discussions utilizing terms including “processing,” “computing,” “calculating,” “determining,” “displaying,” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system’s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.

[0148] Various implementations described herein may relate to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program may be stored in a computer readable storage medium, including, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, flash memories including USB keys with nonvolatile memory or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.

[0149] The technology described herein can take the form of a hardware implementation, a software implementation, or implementations containing both hardware and software elements. For instance, the technology may be implemented in software, which includes but is not limited to firmware, resident software, microcode, etc. Furthermore, the technology can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any non-transitory storage apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.

[0150] A data processing system suitable for storing and / or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories that provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution. Input / output or I / O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I / O controllers.

[0151] Network adapters may also be coupled to the system to enable the system to become coupled to other data processing systems, storage devices, remote printers, etc., through interveningprivate and / or public networks. Wireless (e.g., Wi-Fi™) transceivers, Ethernet adapters, and modems, are just a few examples of network adapters. The private and public networks may have any number of configurations and / or topologies. Data may be transmitted between these devices via the networks using a variety of different communication protocols including, for example, various Internet layer, transport layer, or application layer protocols. For example, data may be transmitted via the networks using transmission control protocol / Internet protocol (TCP / IP), user datagram protocol (UDP), transmission control protocol (TCP), hypertext transfer protocol (HTTP), secure hypertext transfer protocol (HTTPS), dynamic adaptive streaming over HTTP (DASH), real-time streaming protocol (RTSP), real-time transport protocol (RTP) and the real-time transport control protocol (RTCP), voice over Internet protocol (VOIP), file transfer protocol (FTP), WebSocket (WS), wireless access protocol (WAP), various messaging protocols (SMS, MMS, XMS, IMAP, SMTP, POP, WebDAV, etc.), or other known protocols.

[0152] Finally, the structure, algorithms, and / or interfaces presented herein are not inherently related to any particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method blocks. The required structure for a variety of these systems will appear from the description above. In addition, the specification is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the specification as described herein.

[0153] The foregoing description has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the specification to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the disclosure be limited not by this detailed description, but rather by the claims of this application. As should be understood by those familiar with the art, the specification may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. Eikewise, the particular naming and division of the modules, routines, features, attributes, methodologies and other aspects are not mandatory or significant, and the mechanisms that implement the specification or its features may have different names, divisions and / or formats.

[0154] Furthermore, the modules, routines, features, attributes, methodologies, engines, and other aspects of the disclosure can be implemented as software, hardware, firmware, or any combination of the foregoing. Also, wherever an element, an example of which is a module, of the specification is implemented as software, the element can be implemented as a standalone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and / or in every and any other way known now or in the future. Additionally, the disclosure is in no way limited to implementation in any specificprogramming language, or for any specific operating system or environment. Accordingly, the disclosure is intended to be illustrative, but not limiting, of the scope of the subject matter set forth in the following claims.

Claims

WHAT IS CLAIMED IS:

1. A system comprising: an electrode array comprising a plurality of electrodes, the electrode array being functionally coupled to a nervous system of a subject by electrical stimulation, the electrical stimulation reducing motor impairment in the subject so that the subject may perform a physiological function; and a stimulator delivering the electrical stimulation via the electrode array, the electrical stimulation defined by a set of kinematic parameters, wherein the kinematic parameters are identified and optimized, at least in part by a first machine learning algorithm, specifically for the subject and, when delivered to the subject, the subject achieves a physiological function with reduced motor impairment.

2. The system according to claim 1 comprising: a processor; and a memory, the memory storing instructions that, when executed by the processor, cause the system to: apply a first test set of electrical parameters to a first set of electrodes in the electrode array; obtain first data including objective measures, by one or more sensors, of muscle activation responsive to the first test set of electrical parameters; determine, using a second machine learning algorithm, a next test set of electrical parameters and a next set of electrodes based on the objective measures of muscle activation, wherein the next set of electrodes may be the same or differ from the first set of electrodes; apply the next test set of machine-learning-identified, electrical parameters to the next set of machine-learning-identified electrodes in the electrode array; obtain next data including objective measures, by one or more sensors, of muscle activation responsive to the next test set of electrical parameters; and repeat the determination of the next test set of parameters and the next set of electrodes using the second machine learning algorithm, the application of the next test set of parameters to the next set of electrodes, and obtaining the objective measures of muscle activation until the second machine learning algorithm converges on an optimum set of muscle activation parameters, where in the optimum set of muscle activation parameters maximizes an activation of a first muscle.

3. The system according to claim 2, wherein the second machine learning algorithm includes Gaussian Process-Bayesian Optimization.

4. The system according to claim 2, wherein the objective measures of muscle activation includes electromyography data from a plurality of electromyography sensors, and wherein maximized activation of the first muscle is one or more of an absolute activation of the first muscle and a selective activation of the first muscle relative to one or more other muscles.

5. The system according to claim 2, wherein the determination of the next test set of parameters and the next set of electrodes using the second machine learning algorithm, the application of the next test set of parameters to the next set of electrodes, and obtainment of the objective measures of muscle activation until the second machine learning algorithm converges on the optimum set of parameters are repeated for each muscle in a set of muscles, the set of muscles including the first muscle.

6. The system according to claim 1 comprising: a processor; and a memory, the memory storing instructions that, when executed by the processor, cause the system to: apply an initial set of test parameters to a first set of electrodes in the electrode array; obtain first data including a measure of a first instance of first kinematic task performance; determine, using the first machine learning algorithm, a next set of electrical test parameters and a next set of electrodes based on the measure of first kinematic task performance, wherein the next set of electrodes may be the same or differ from the first set of one or more electrodes; apply the next set of machine-learning-identified, electrical test parameters to the next set of machine-learning-identified electrodes in the electrode array; obtain next data including a measure of a next instance of first kinematic task performance responsive to the next set of test parameters; and repeat the determination of the next test set of test parameters and the next set of electrodes using the first machine learning algorithm, the application of the next set of test parameters to the next set of electrodes, and the obtainment of objective measures of the next instance of first kinematic task performance until the first machine learning algorithm converges on the first set of kinematic parameters as optimum.

7. The system according to claim 1, wherein the first machine learning algorithm includes Gaussian Process-Bayesian Optimization.

8. The system according to claim 6, wherein the memory stores instructions that, when executed by the processor, cause the system to: apply an initial set of test parameters to a first set of electrodes in the electrode array; obtain first data including a measure of a first instance of second kinematic task performance; determine, using the first machine learning algorithm, a next set of electrical test parameters and a next set of electrodes based on the measure of second kinematic task performance, wherein the next set of electrodes may be the same or differ from the first set of one or more electrodes; apply the next set of machine-learning-identified, electrical test parameters to the next set of machine-learning-identified electrodes in the electrode array; obtain next data including a measure of a next instance of second kinematic task performance responsive to the next set of test parameters; and repeat the determination of the next test set of test parameters and the next set of electrodes using the first machine learning algorithm, the application of the next set of test parameters to the next set of electrodes, and the obtainment of objective measures of the next instance of second kinematic task performance until the first machine learning algorithm converges on a second set of kinematic parameters as optimum for second kinematic task performance.

9. The system according to claim 8, wherein one or more of the first set of kinematic parameters and second set of kinematic parameters include at least one of: a kinematic parameter set that balances various factors for general use; a kinematic parameter set that maximizes grip strength, wherein a kinematic task includes gripping, and wherein the measure of a gripping kinematic task performance data includes data from a digital grip dynamometer. a kinematic parameter set that maximizes join torque production, wherein a kinematic task includes using a joint to apply torque, and wherein a measure of performance of a joint torque producing kinematic task includes data from a digital hand-held dynamometer; and a kinematic parameter set that maximizes a range of motion, wherein the range of motion may be active, passive, or both, and wherein a measure of performance of a range of motion kinematic task includes data from one or more of a set of inertial measurement units, a goniometer, and camera-based motion capture.

10. The system according to claim 1 comprising: a controller comprising: a processor; and a memory, the memory storing instructions that, when executed by the processor, cause the system to: present, to a user, a user interface, the user interface including a first user- selectable portion of the user interface associated with a first kinematic task and a second user-selectable portion of the user interface associated with a second kinematic task; receive user input selecting the first kinematic task, the first kinematic task associated with the set of kinematic parameters, the set of electrical kinematic parameters optimized, through machine learning, for the first kinematic task; and cause the stimulator to deliver the set of kinematic parameters to the subject subsequent to user selection of the first kinematic task.

11. A method comprising : obtaining, at a stimulator, a set of kinematic parameters, wherein the kinematic parameters are identified and optimized, at least in part by a first machine learning algorithm, specifically for a subject; and delivering, by the stimulator, electrical stimulation via an electrode array, the electrical stimulation defined by the set of kinematic parameters, wherein the electrode array comprises a plurality of electrodes, the electrode array is functionally coupled to a nervous system of the subject by electrical stimulation, and, subsequent to delivering the electrical stimulation defined by the set of kinematic parameters to the subject, the subject achieves a physiological function with reduced motor impairment.

12. The method according to claim 11 comprising: applying a first test set of electrical parameters to a first set of electrodes in the electrode array; obtaining first data including objective measures, by one or more sensors, of muscle activation responsive to the first test set of electrical parameters; determining, using a second machine learning algorithm, a next test set of electrical parameters and a next set of electrodes based on the objective measures of muscle activation, wherein the next set of electrodes may be the same or differ from the first set of electrodes;applying the next test set of machine-learning-identified, electrical parameters to the next set of machine-learning-identified electrodes in the electrode array; obtaining next data including objective measures, by one or more sensors, of muscle activation responsive to the next test set of electrical parameters; and repeating the determination of the next test set of parameters and the next set of electrodes using the second machine learning algorithm, the application of the next test set of parameters to the next set of electrodes, and obtaining the objective measures of muscle activation until the second machine learning algorithm converges on an optimum set of muscle activation parameters, where in the optimum set of muscle activation parameters maximizes an activation of a first muscle.

13. The method according to claim 12, wherein the second machine learning algorithm includes Gaussian Process-Bayesian Optimization.

14. The method according to claim 12, wherein the objective measures of muscle activation includes electromyography data from a plurality of electromyography sensors, and wherein maximized activation of the first muscle is one or more of an absolute activation of the first muscle and a selective activation of the first muscle relative to one or more other muscles.

15. The method according to claim 12, wherein the determination of the next test set of parameters and the next set of electrodes using the second machine learning algorithm, the application of the next test set of parameters to the next set of electrodes, and obtainment of the objective measures of muscle activation until the second machine learning algorithm converges on the optimum set of parameters are repeated for each muscle in a set of muscles, the set of muscles including the first muscle.

16. The method according to claim 11 comprising: applying an initial set of test parameters to a first set of electrodes in the electrode array; obtaining first data including a measure of a first instance of first kinematic task performance; determining, using the first machine learning algorithm, a next set of electrical test parameters and a next set of electrodes based on the measure of first kinematic task performance, wherein the next set of electrodes may be the same or differ from the first set of one or more electrodes; applying the next set of machine-learning-identified, electrical test parameters to the next set of machine-learning-identified electrodes in the electrode array; obtaining next data including a measure of a next instance of first kinematic task performance responsive to the next set of test parameters; andrepeating the determination of the next test set of test parameters and the next set of electrodes using the first machine learning algorithm, the application of the next set of test parameters to the next set of electrodes, and the obtainment of objective measures of the next instance of first kinematic task performance until the first machine learning algorithm converges on the first set of kinematic parameters as optimum.

17. The method according to claim 11, wherein the first machine learning algorithm includes Gaussian Process-Bayesian Optimization.

18. The method according to claim 16 comprising: applying an initial set of test parameters to a second set of electrodes in the electrode array; obtaining second data including a measure of a first instance of second kinematic task performance; determining, using the first machine learning algorithm, a next set of electrical test parameters and a next set of electrodes based on the measure of second kinematic task performance, wherein the next set of electrodes may be the same or differ from the first set of one or more electrodes; applying the next set of machine-learning-identified, electrical test parameters to the next set of machine-learning-identified electrodes in the electrode array; obtaining next data including a measure of a next instance of second kinematic task performance responsive to the next set of test parameters; and repeating the determination of the next test set of test parameters and the next set of electrodes using the first machine learning algorithm, the application of the next set of test parameters to the next set of electrodes, and the obtainment of objective measures of the next instance of second kinematic task performance until the first machine learning algorithm converges on a second set of kinematic parameters as optimum for the second kinematic task.

19. The method according to claim 18, wherein one or more of the first set of kinematic parameters and second set of kinematic parameters include at least one of: a kinematic parameter set that balances various factors for general use; a kinematic parameter set that maximizes grip strength, wherein a kinematic task includes gripping, and wherein the measure of a gripping kinematic task performance data includes data from a digital grip dynamometer. a kinematic parameter set that maximizes join torque production, wherein a kinematic task includes using a joint to apply torque, and wherein a measure ofperformance of a joint torque producing kinematic task includes data from a digital hand-held dynamometer; and a kinematic parameter set that maximizes a range of motion, wherein the range of motion may be active, passive, or both, and wherein a measure of performance of a range of motion kinematic task includes data from one or more of a set of inertial measurement units, a goniometer, and camera-based motion capture.

20. The method according to claim 11 comprising: presenting, to a user, a user interface, the user interface including a first user-selectable portion of the user interface associated with a first kinematic task and a second user- selectable portion of the user interface associated with a second kinematic task; receiving user input selecting the first kinematic task, the first kinematic task associated with the set of kinematic parameters, the set of electrical kinematic parameters optimized, through machine learning, for the first kinematic task; and causing the stimulator to deliver the set of kinematic parameters to the subject subsequent to user selection of the first kinematic task.