Methods and devices for controlling stowable steering wheels

The stowable steering wheel system addresses the lack of precise control in existing systems by using sensor-based adjustments and a programmable circuit to ensure safe and comfortable steering wheel positioning, preventing collisions and optimizing space.

DE102024120199A1Pending Publication Date: 2025-01-23FORD GLOBAL TECH LLC
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
DE102024120199
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-07-21
Filing Date
2024-07-15
Publication Date
2025-01-23

AI Technical Summary

Technical Problem

Existing stowable steering wheel systems lack precise control over the positioning and movement of the steering wheel, particularly in response to obstacles and user preferences, leading to potential safety hazards and discomfort during vehicle operation.

Method used

A stowable steering wheel system with a sensor-based control mechanism that includes a programmable circuit to adjust the steering wheel position based on obstacle detection and user inputs, utilizing mechanical and Hall sensors, pulse width modulation, and a feedback mechanism to ensure precise and safe movement.

Benefits of technology

The system provides robust and precise control of the steering wheel position, ensuring safe operation by preventing collisions with obstacles and optimizing space utilization, enhancing user comfort and safety.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Methods and devices for controlling stowable steering wheels are disclosed herein. An exemplary device disclosed herein includes a steering column assembly comprising a sensor, a first section, and a second section movable relative to the first section, machine-readable instructions, and a programmable circuit for instantiating or executing at least one of the following: moving the first section relative to the second section, determining, based on an output from the sensor, that the first section has encountered an obstacle, and stopping the movement of the first section after determining that the first section has encountered the obstacle.
Need to check novelty before this filing date? Find Prior Art

Description

AREA OF REVELATION

[0001] This disclosure relates generally to stowable steering wheels, and more particularly to methods and apparatus for controlling stowable steering wheels. GENERAL STATE OF THE ART

[0002] A steering wheel is configured to change a vehicle's direction of travel based on rotation of the steering wheel. For example, a driver turning the wheel in a given direction causes a system of pivot joints to interact, translating the rotational movement of the steering wheel into pivoting movement of one or more road wheels. Common steering systems include rack and pinion systems. Rack and pinion systems utilize a gear (e.g., a pinion) at the base of the steering column that causes a rack to move from side to side, thereby transferring movement to the road wheels. Modern vehicle steering wheels can be configured to retract toward the dashboard to allow for additional interior space. SUMMARY

[0003] An exemplary apparatus disclosed herein includes a steering column assembly including a sensor, a first portion, and a second portion movable relative to the first portion, machine-readable instructions, and programmable circuitry for at least one of instantiating or executing the machine-readable instructions to move the first portion relative to the second portion, determining that the first portion has encountered an obstacle based on an output of the sensor, and stopping movement of the first portion upon determining that the first portion has encountered the obstacle.

[0004] An exemplary computer-readable medium disclosed herein includes instructions that, when executed, cause the programmable circuit to move at least one portion of a steering column assembly relative to a second portion of the steering column assembly, determine that the first portion has encountered an obstacle based on a sensor output, and stop movement of the first portion upon determining that the first portion has encountered the obstacle.

[0005] An exemplary method disclosed herein includes moving a first portion of a steering column assembly relative to a second portion of the steering column assembly, determining, based on a sensor output, that the first portion has encountered an obstacle, and upon determining that the first portion has encountered the obstacle, stopping movement of the first portion. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 depicts a vehicle in which examples disclosed here may be implemented. Fig. 2 is a schematic representation of a steering system which includes the steering wheel Fig. 1 includes. Fig. 3 is a perspective view of the steering system of the vehicle of Fig. 1. Fig. 4 is a block diagram of an exemplary implementation of the steering wheel position control circuit of Fig. 1. Fig. Figure 5 is an example current, steering wheel position, and electric motor position diagram during normal operation. Fig. Figure 6 is an example current, steering wheel position, and electric motor position diagram during operation when an obstacle is encountered. Fig. 7 and Fig. 8 depict flow diagrams representative of example machine-readable instructions and / or example operations that may be executed, instantiated, and / or performed by an example programmable circuit to implement the steering wheel position control circuit of Fig. 4 to be implemented. Fig. 9 is a block diagram of an example processing platform including programmable circuitry structured to execute, instantiate, and / or perform the example machine-readable instructions and / or the example operations from the Fig. 7 and Fig. 8 to perform the steering wheel position control circuit from Fig. 4 to be implemented. Fig. 10 is a block diagram of an exemplary implementation of the programmable circuit of Fig. 9. Fig. 11 is a block diagram of another exemplary implementation of the programmable circuit of Fig. 9.

[0006] In general, the same reference numerals are used throughout the drawing(s) and the accompanying written description to refer to the same or similar parts. The figures are not necessarily to scale.

[0007] As used in this specification, to say that any part (e.g., a layer, sheet, area, region, or plate) is in any way on top of another part (e.g., positioned on, overlying, disposed on, or formed on, etc.) means that the part being referred to is either in contact with the other part or that the part being referred to is overlying the other part with one or more intermediate parts therebetween. DETAILED DESCRIPTION

[0008] In recent years, the range of steering wheel positions of stowable steering systems has increased. A steering column of a stowable steering system can move a steering wheel toward or away from an operator (e.g., away from or toward an instrument panel, etc.) based on operating conditions and / or operator preference. In particular, in a stowed position, the steering column can move the steering wheel closer to an instrument panel to provide more space for an operator when the vehicle is not being driven. For example, the stowed position provides more room for entering and exiting the driver's seat. Additionally, the stowed position of a steering wheel provides additional space for working, entertaining (e.g., for media displayed on an instrument panel screen, etc.), eating, and sleeping in the driver's seat while the vehicle is off or parked.When an operator of the vehicle is ready to drive, the steering column can move the steering wheel away from the instrument panel and toward the driver (e.g., from a stowed position to an operating position, etc.). Thus, the movement of the steering column and steering wheel can provide additional space when needed, while still allowing the operator to control the steering wheel from a comfortable position while driving.

[0009] Examples disclosed herein include stowable steering wheel systems that provide robust, precise control of steering wheel position and movement. Examples disclosed herein determine the position of the steering column and / or the steering wheel via at least two independent techniques to determine whether the position of the steering column is correct. An exemplary first technique described herein uses a mechanical sensor disposed on the steering column to determine the position of the steering wheel. In some examples disclosed herein, if the determined positions of the steering wheel do not meet a similarity threshold, the system may generate an alert for the operator(s) of the vehicle. An exemplary second technique described herein uses a Hall sensor disposed on the electric motor of the steering system to determine the position of the steering column and / or the steering wheel.Examples disclosed herein use pulse width modulation (PWM) to modify the speed of the steering wheel based on the determined position of the steering wheel and the commanded position of the steering wheel. Some examples disclosed herein include a steering control system that detects whether the steering wheel encounters an obstacle, such as a body part of an operator, during movement and stops the movement of the steering wheel in response.

[0010] In the present context, the orientation of some features is described with reference to a transverse axis, a vertical axis, and a longitudinal axis of the vehicle associated with the features. In the present context, the longitudinal axis of the vehicle is parallel to the centerline of the vehicle. The terms "rear" and "front" refer to directions along the longitudinal axis closer to the rear of the vehicle and the front of the vehicle, respectively. In the present context, the vertical axis of the vehicle is perpendicular to the ground on which the vehicle is resting. In the present context, unless otherwise specified, the term "above" describes the relationship of two parts relative to the ground and the vertical axis. A first part is above a second part if the second part has at least a part between the ground and the first part.Likewise, in the present context, a first part is "below" a second part if the first part is closer to the ground than the second part. In the present context, the transverse axis of the vehicle is perpendicular to the longitudinal and vertical axes and generally parallel to the vehicle's axles.

[0011] As noted above, a first part may be located above or below a second part, with one or more of the following true: other parts are there between, no other parts are there between, the first and second parts are touching, or the first and second parts are not in direct contact with each other. As used in this specification, to say that any part (e.g., a layer, film, area, region, or plate) is in any way above another part (e.g., positioned upon, overlying, disposed upon, or formed upon, etc.) means that the referenced part is either in contact with the other part or that the referenced part is above the other part with one or more intermediate parts therebetween.

[0012] In the present context, connection references (e.g., attached, coupled, connected, and joined) may imply intermediate links between the elements referred to by the connection reference and / or relative movement between those elements, unless otherwise specified. Accordingly, connection references do not necessarily imply that two elements are directly connected and / or have a fixed relationship. In the present context, the statement that any part is in "contact" with another part is defined to mean that there is no intermediate part between the two parts.

[0013] Unless expressly stated otherwise, descriptors such as "first," "second," "third," etc., are used herein without implying or otherwise indicating any meaning of priority, physical order, arrangement in a list, and / or order, but are used merely as labels and / or arbitrary names to distinguish elements for a better understanding of the disclosed examples. In some examples, the descriptor "first" may be used in the detailed description to refer to an element, while the same element may be referred to in a patent claim with a different descriptor such as "second" or "third." In such cases, it is understood that such descriptors serve merely to uniquely identify, in the context of discussion (e.g., within a claim), elements that might otherwise have the same name.

[0014] In the present context, "approximately" and "about" modify their subject / values ​​to recognize the potential presence of variations that occur in real-world applications. For example, "approximately" and "about" may modify dimensions that may not be exact due to manufacturing tolerances and / or other real-world imperfections, as would be apparent to one of ordinary skill in the art. For example, "approximately" and "about" may indicate that such dimensions may be within a tolerance range of + / -10%, unless otherwise noted in the description below.

[0015] In the present context, "substantially real-time" refers to occurring in a nearly instantaneous manner, recognizing that there may be real-world delays for computation time, transmission, etc. Thus, unless otherwise noted, "substantially real-time" refers to + 1 second. In some examples used herein, the term "substantially" is used to describe a relationship between two parts that is within three degrees of the stated relationship (e.g., a substantially collinear relationship is within three degrees of collinear, a substantially perpendicular relationship is within three degrees of perpendicular, a substantially parallel relationship is within three degrees of parallel, etc.).

[0016] As used herein, the term "in communication," including variations thereof, includes direct communication and / or indirect communication through one or more intervening components and does not require direct physical (e.g., wired) communication and / or constant communication, but rather additionally includes selective communication at periodic intervals, scheduled intervals, aperiodic intervals, and / or on one-off events.

[0017] In the present context, a "programmable circuit" is defined as including (i) one or more special-purpose electrical circuits (e.g., an application-specific integrated circuit (ASIC)) structured to perform (a) specific operation(s) and including one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors), and / or (ii) one or more general-purpose electrical semiconductor-based circuits programmable with instructions to perform (a) specific function(s) and / or operation(s) and including one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors). Examples of a programmable circuit include programmable microprocessors, such as central processing units (CPUs), capable of executing first instructions,to perform one or more operations and / or functions, field-programmable gate arrays (FPGAs), which may be programmed with second instructions to cause the FPGAs to be configured and / or structured to instantiate one or more operations and / or functions corresponding to the first instructions, graphics processing units (GPUs), which may execute first instructions to perform one or more operations and / or functions, digital signal processors (DSPs), which may execute first instructions to perform one or more operations and / or functions, XPUs, network processor units (NPUs), one or more microcontrollers, which may execute first instructions to perform one or more operations and / or functions, and / or integrated circuits, such as application-specific integrated circuits (ASICs). For example, an XPU may be implemented by a heterogeneous computing system,that includes multiple types of programmable circuitry (e.g., one or more FPGAs, one or more CPUs, one or more GPUs, one or more NPUs, one or more DSPs, etc., and / or any combination thereof), and orchestration technology (e.g., application programming interface(s) (API(s)) that can assign a computational task(s) to any one or more of the multiple types of programmable circuitry) is suitable and available to perform the computational task(s).

[0018] Fig. 1 illustrates an exemplary vehicle 100 implemented according to the teachings of this disclosure. In the illustrated example of Fig. 1, the example vehicle 100 includes an example steering wheel 104, an example instrument panel 106 (e.g., the instrument panel, dash panel, etc.), an example passenger compartment 108, and an example temperature sensor 110. In the illustrated example of Fig. 1, the exemplary vehicle 100 is an off-road vehicle (SUV). In other examples, the vehicle 100 may be any type of vehicle (e.g., a van, a coupe, a sedan, a pickup truck, a semi-trailer truck, a minivan, a rail vehicle, an all-terrain vehicle (ATV), a watercraft, a piece of construction equipment, an agricultural machine, etc.). In the illustrated example of Fig. 1, the vehicle 100 is a two-axle vehicle. In other examples, the vehicle 100 may include additional axles and / or additional wheels. The exemplary vehicle 100 may have a ladder frame construction and / or a monocoque construction.

[0019] The steering wheel 104 is movable (e.g., slidable, sliding, etc.) between a first position (e.g., a stowed position, etc.) and a second position (e.g., an operating position, etc.). When the steering wheel 104 is in the first position, a person sitting in the driver's seat of the vehicle 100 has additional space within the passenger compartment 108. For example, when the steering wheel 104 is in the stowed position, the additional space within the passenger compartment 108 allows a driver to more easily enter or exit the vehicle 100 and / or perform activities such as reading, writing, sleeping, or eating when the vehicle 100 is parked. The steering wheel 104 may be positioned farther from the instrument panel 106 and closer to a rear of the vehicle 100 in the operating position to allow the driver to operate the steering wheel 104 (e.g., turn, etc.).) while in a comfortable position.

[0020] The temperature sensor 110 is a device that outputs a digital value indicative of a temperature associated with the vehicle 100. For example, the temperature sensor 110 may output a value corresponding to an interior temperature of the vehicle 100 (e.g., a temperature within the passenger compartment 108 of the vehicle 100, etc.). In some such examples, the temperature sensor 110 may be associated with a climate control system of the vehicle 100 (e.g., a heater of the vehicle 100, an air conditioning system of the vehicle 100, etc.). In some examples, the temperature sensor 110 may be located beneath a passenger seat or a driver seat of the vehicle 100 (e.g., if the vehicle 100 has independent temperature controls for the passenger seat and the driver seat, etc.).Additionally or alternatively, the temperature sensor 110 may output a sensor value corresponding to a temperature within the steering system associated with the steering wheel 104 and / or an ambient temperature of the vehicle 100.

[0021] Fig. 2 is a schematic representation of an exemplary movable steering column assembly 200 incorporating the steering wheel 104 of Fig. 1. In the illustrated example from Fig. 2, the exemplary movable steering column assembly 200 is controlled by an exemplary steering wheel position control circuit 202. In the illustrated example of Fig. 2, the movable steering column assembly 200 includes an exemplary first portion 204, an exemplary second portion 206, an exemplary housing 208, and an exemplary electric motor 212. In the illustrated example of Fig. 2, the exemplary movable steering column assembly 200 includes an exemplary first sensor 214 and an exemplary second sensor 216, both of which communicate with the steering wheel position control circuit 202 via an exemplary bus 220. In the illustrated example of Fig. 2, the movable steering column assembly 200 includes an exemplary feedback actuator assembly 222.

[0022] The first portion 204 and the second portion 206 are components of the steering column of the vehicle 100. The exemplary first portion 204 is the movable portion of the movable steering column assembly 200. In some examples, the first portion 204 is an upper shell of the movable steering column assembly 200, and the second portion 206 is a lower shell of the movable steering column assembly 200. The first portion 204 is rigidly coupled to the steering wheel 104, allowing the first portion 204 to move with the steering wheel 104 during operation. The exemplary second portion 206 is mechanically coupled to the first portion 204 and allows relative movement thereof. In some examples, the exemplary second portion 206 is a lower shell of the movable steering column assembly 200.For example, the first portion 204 may be coupled to the second portion 206 via an example support system that allows the first portion 204 to move into and out of the second portion 206 (e.g., to be stowed within the second portion 206, etc.). In some such examples, the first portion 204 is telescopically coupled to the second portion 206. An example configuration of the first portion 204, the second portion 206, and the housing 208 is described below in connection with FIG. Fig. 3 described.

[0023] The electric motor 212 exerts a force that moves the first portion 204 relative to the second portion 206 during operation of the movable steering column assembly 200. For example, the electric motor 212 may be implemented by any suitable type of electric motor (e.g., a universal motor, an AC motor, a brushless DC motor, etc.). In some examples, the electric motor 212 is a rotary motor. In some such examples, the movable steering column assembly 200 may include a gear assembly that converts the generated torque of the electric motor 212 into a linear displacement of the first portion 204 relative to the second portion 206. In some examples, the electric motor 212 may be powered by one or more batteries of the vehicle 100 (e.g.,a starting, lighting, and ignition battery (SLI battery) of the vehicle 100, a battery of a battery electric vehicle (BEV), etc.) are supplied with power.

[0024] The first sensor 214 measures the position of the first portion 204 relative to the second portion 206. For example, the first sensor 214 may be implemented by a mechanical sensor (e.g., a sliding sensor, a spring sensor, etc.) coupled to the first portion 204 and / or the second portion 206. Additionally or alternatively, the first sensor 214 may be implemented by any other suitable sensor(s) (e.g., one or more optical sensors, one or more potentiometers, one or more linear Hall sensors, one or more magnetostrictive sensors, one or more linear encoders, one or more inductive sensors, etc.). In some examples, the second portion 206 is fixedly coupled to the housing 208, which is fixedly coupled to the vehicle 100 (e.g., to a frame of the vehicle 100, to a body of the vehicle 100, etc.).), the first sensor 214 determines the absolute position of the first portion 204 within the vehicle 100. In some such examples, the output of the first sensor 214 may be used by the steering wheel position control circuit 202 to determine the absolute position of the first portion 204 within the vehicle 100. Example outputs of the first sensor 214 are described below in connection with FIGS. Fig. 5 and Fig. 6 described.

[0025] The second sensor 216 measures the position of the electric motor 212. For example, the second sensor 216 may include a Hall sensor that measures each rotation of the electric motor 212 (e.g., each pulse of the electric motor 212, etc.). In other examples, the second sensor 216 may be implemented by any other suitable sensor that measures the rotation of the electric motor 212 (e.g., an optical sensor, a mechanical sensor, a potentiometer, an encoder, an inductive sensor, etc.). In some examples, because the movement of the first portion 204 is linearly proportional to the rotation of the electric motor 212 (e.g., a single rotation of the electric motor 212 causes a fixed degree of movement of the first portion 204, etc.), the output of the second sensor 216 may be used to monitor the position of the first portion 204 relative to a previous position of the first portion 204.In some such examples, the output of the second sensor 216 may be used by the steering wheel position control circuit 202 to determine the relative position of the first portion 204. Example outputs of the second sensor 216 are described below in connection with FIGS. Fig. 5 and Fig. 6 described.

[0026] In the illustrated example from Fig. 2, the steering wheel position control circuit 202, the electric motor 212, and the sensors 214, 216 communicate via bus 220. In some examples, bus 220 may be implemented by the controller area network (CAN) bus of the vehicle 100. In other examples, bus 220 may be implemented by any other suitable system. In other examples, bus 220 may be absent. In some such examples, the steering wheel position control circuit 202, the electric motor 212, and the sensors 214, 216 may communicate via a wireless connection.

[0027] In the illustrated example from Fig. 2, the movable steering column assembly 200 includes the feedback actuator assembly 222. The feedback actuator assembly 222 provides tactile feedback to an operator of the movable steering column assembly 200.

[0028] In some such examples, the feedback actuator assembly 222 may be used in a steer-by-wire system to compensate for a lack of tactile feedback associated with the mechanical connection between the steering wheel 104 and a steering gear of the vehicle 100. In some examples, the electric motor 212 may be a component of the feedback actuator assembly 222. In some such examples, the feedback actuator assembly 222 may be missing. In some such examples, the steering wheel position control circuit 202 may be a component of an electric control unit (ECU) associated with the feedback actuator assembly 222.

[0029] Fig. 3 is a perspective view of the movable steering column assembly 200 of Fig. 2 of the vehicle 100 from Fig. 1. In the illustrated example from Fig. 3, the movable steering column assembly 200 includes the first section 204 of Fig. 2, the second section 206 from Fig. 2, the housing 208 from Fig. 2, an exemplary steering shaft 301, an exemplary first actuator 302, an exemplary second actuator 304, and an exemplary transmission system 306.

[0030] During operation, the first actuator 302 causes the first portion 204 to shift relative to the second portion 206. In the illustrated example of Fig. 3, the first actuator 302 includes the electric motor 212 from Fig. 2 and an exemplary lead screw 308. The gear system 306 enables the relative movement of the first section 204 and the second section 206. In some examples, the gear system 306 may be implemented by a rack and pinion drive that couples the first section 204 and the second section 206. In some examples, the first sensor 214 may be made of Fig. 2 may be implemented by a sensor (e.g., a mechanical sensor, etc.) coupled to the transmission system 306.

[0031] During operation, rotation of the electric motor 212 causes rotation of the lead screw 308, which causes operation of the gear system 306 and relative movement of the first section 204 and the second section 206. In other examples, the lead screw 308 and the gear system 306 may be omitted. In some such examples, the electric motor 212 may cause relative movement of the first section 204 and the second section 206 by any other suitable means. The rotation of the electric motor 212 causes the operation of the first actuator 302 and the longitudinal movement of the first section 204 relative to the second section 206. In the illustrated example, the relationship between the rotational travel of the electric motor 212 and the displacement of the first section 204 relative to the second section 206 is mechanically fixed (e.g., non-variable, etc.) and is based on the gearing of the lead screw 308 and the gear system 306.In this case, the steering wheel position control circuit 202 can determine the position of the first portion 204 relative to the second portion 206 by monitoring the rotation of the electric motor 212 (e.g., via the second sensor 216 of FIG. Fig. 2 etc.).

[0032] During operation, the second actuator 304 controls the position of the first portion 204. In some examples, operation of the second actuator 304 controls the height of the first portion 204 (e.g., the vertical position of the steering wheel 104 within the passenger compartment 108, the height of the steering wheel 104 within the vehicle 100, etc.). In some examples, the second actuator 304 may be omitted.

[0033] The steering shaft 301 is rotatably coupled within the first section 204. In the illustrated example of Fig. 3, the steering shaft 301 is concentric with the first portion 204. In other examples, the steering shaft 301 and the first portion 204 may have any other suitable relationship. Here, the operation of the first actuator 302 controls the longitudinal position of the first portion 204 (e.g., the axial position of the first portion 204, a distance between the steering wheel 104 and the instrument panel 106, etc.). In the illustrated example of Fig. 3, the steering shaft 301 includes an exemplary end 310. In some examples, a steering wheel (e.g., the steering wheel 104 of the Fig. 1 and Fig. 2, etc.) may be coupled to the end 310. During operation, the steering shaft 301 may rotate within the first portion 204 and is otherwise fixed to the first portion 204. In some such examples, as the first portion 204 moves relative to the second portion 206, the steering shaft 301 moves with the first portion 204, allowing the position of the steering wheel 104 to be controlled via operation of the movable steering column assembly 200.

[0034] Fig. 4 is a block diagram of an exemplary implementation of the steering wheel position control circuit 202 of Fig. 2, to enable the operation of the movable steering column assembly 200 from the Fig. 2 and Fig. 3. In the illustrated example from Fig. 4, the steering wheel position control circuit 202 includes an example user interface circuit 402, an example system interface circuit 404, an example sensor interface circuit 406, an example position determination circuit 408, an example position comparison circuit 410, an example obstacle detection circuit 412, and an example speed adjustment circuit 414. The steering wheel position control circuit 202 may be instantiated (e.g., creating an instance thereof, inducing it for an arbitrary period of time, materializing, implementing, etc.) by a programmable circuit, such as a central processing unit (CPU), that executes first instructions. Additionally or alternatively, the steering wheel position control circuit 202 may be implemented by (i) an application-specific integrated circuit (ASIC) (e.g.,Creating an instance thereof, inducing it for any period of time, materializing it, implementing it, etc.) and / or (ii) a field-programmable gate array (FPGA) structured and / or configured to perform operations corresponding to the first instructions in response to the execution of second instructions. It is understood that some or all of the circuitry of the . Fig. 4 can thus be instantiated at the same or different times. Some or all of the circuits from Fig. 4 may, for example, be instantiated in one or more threads that execute concurrently on hardware and / or sequentially on hardware. Moreover, in some examples, some or all of the circuitry from Fig. 4 be implemented by a microprocessor circuit that executes instructions and / or an FPGA circuit that performs operations for implementing one or more virtual machines and / or one or more containers.

[0035] User interface circuitry 402 accesses inputs from an interface of vehicle 100. For example, user interface circuitry 402 may access a request to move the longitudinal position of steering wheel 104 within passenger compartment 108 of vehicle 100 (e.g., a request to stow steering wheel 104, a request to extend steering wheel 104, etc.). In some examples, user interface circuitry 402 may detect input via steering wheel 104 (e.g., via a button disposed thereon, etc.) and / or an interface of instrument panel 106 (e.g., via a button on instrument panel 106, via a touchscreen of instrument panel 106, etc.). In some examples, the user interface circuit 402 may generate a request to move the longitudinal position in response to another user input (e.g., an ignition of the vehicle 100, an adjustment of a driver seat of the vehicle 100, etc.).In some examples, the user interface circuit 402 may detect a request to move the longitudinal position of the steering wheel 104 from an autonomous driving system of the vehicle 100, etc.

[0036] In some examples, user interface circuitry 402 may generate an alert indicating that a discrepancy has occurred in movable steering column assembly 200. For example, user interface circuitry 402 may generate an alert based on a command from position comparison circuitry 410. Additionally or alternatively, user interface circuitry 402 may generate an alert in response to a command from obstacle detection circuitry 412. In some examples, user interface circuitry 402 may provide a visual alert (e.g., via a dashboard indicator / warning light, a display on steering wheel 104, a screen of vehicle 100, a screen of a user device of a user of vehicle 100, etc.), an audible alert (e.g., via a speaker of vehicle 100, via a speaker of a user device of a user of vehicle 100, etc.), and / or tactile feedback (e.g.,B. tactile feedback via a seat of the vehicle 100, tactile feedback via the steering wheel 104, etc.). In some examples, the user interface circuit 402 may generate an alert indicating that the vehicle 100 requires service to correct the detected discrepancy. In some examples, the user interface circuit 402 is instantiated by a programmable circuit that executes user interface instructions and / or is configured to perform operations such as those illustrated by the flowcharts of FIG. Fig. 7 and Fig. 8 reproduced.

[0037] In some examples, the steering wheel position control circuit 202 includes a means for interacting with a user. For example, the means for interacting with a user may be implemented by the user interface circuit 402. In some examples, the user interface circuit 402 may be implemented by a programmable circuit, such as the exemplary programmable circuit 912 of Fig. 9. For example, the user interface circuit 402 may be instantiated by the exemplary microprocessor 1000 of Fig. 10, which contains machine-executable instructions, such as those executed at least by blocks 702, 713, 720 of Fig. 7. In some examples, the user interface circuit 402 may be instantiated by a hardware logic circuit implemented by an ASIC, an XPU, or the FPGA circuit 1100 of Fig. 11 that is configured and / or structured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the user interface circuit 402 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the user interface circuit 402 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational amplifier (op-amp), a logic circuit, etc.) that are configured or structured to execute some or all of the machine-readable instructions and / or to perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0038] The system interface circuit 404 controls the operation of the first actuator 302 Fig. 3 and / or the second actuator 304 from Fig. 3 to remove the steering wheel 104 from the Fig. 1 and Fig. 2 into a desired position. For example, the system interface circuit 404 may initiate movement of the steering wheel 104 based on a command accessed by the user interface circuit 402. For example, the system interface circuit 404 may cause the operation of the first actuator 302 to Fig. 3 and the electric motor 212 from the Fig. 2 and Fig. 3 causes the longitudinal translation of the first portion 204 of the movable steering column assembly 200 relative to the second portion 206 of the movable steering column assembly 200. In some such examples, the system interface circuit 404 may send a command to the first actuator 302 (e.g., an electrical signal, etc.) to begin rotating the electric motor 212 in a direction corresponding to the accessed command (e.g., a first direction to move the steering wheel 104 toward the instrument panel 106, a second direction to move the steering wheel away from the instrument panel 106, etc.). In some examples, the system interface circuit 404 may cease operating the actuator 302 in response to the obstacle detection circuit 412 detecting an obstacle and / or the position determination circuit 408 determining that the desired position has been reached.In some examples, system interface circuitry 404 is instantiated by a programmable circuit that executes system interface instructions and / or is configured to perform operations such as those illustrated by the flowcharts of FIG. Fig. 7 and Fig. 8 reproduced.

[0039] In some examples, the steering wheel position control circuit 202 includes a means for interacting with a movable steering system. For example, the means for interacting with a movable steering system may be implemented by the system interface circuitry 404. In some examples, the system interface circuitry 404 may be implemented by a programmable circuit, such as the exemplary programmable circuitry 912 of Fig. 9. For example, the user interface circuit 404 may be instantiated by the exemplary microprocessor 1000 of Fig. 10, which contains machine-executable instructions, such as those executed at least by blocks 704, 718 of Fig. 7. In some examples, the user interface circuit 404 may be instantiated by a hardware logic circuit implemented by an ASIC, an XPU, or the FPGA circuit 1100 of Fig. 11 that is configured and / or structured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the system interface circuit 404 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the system interface circuit 404 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational amplifier (op-amp), a logic circuit, etc.) that are configured or structured to execute some or all of the machine-readable instructions and / or to perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0040] The sensor interface circuit 406 accesses, requests, and / or receives sensor data from sensors associated with the sensors of the vehicle 100. For example, the sensor interface circuit 406 may receive sensor data from the temperature sensor 110. Fig. 1, the first sensor 214 from Fig. 2 and / or the second sensor 216. In some examples, the sensor interface circuit 406 may access sensor data from other sensors of the vehicle 100 (e.g., another temperature sensor of the vehicle 100, etc.). In some examples, the sensor interface circuit 406 may convert the data received from the sensors 110, 214, 216 into a numerical (e.g., human-readable, etc.) form. In some examples, the sensor interface circuit 406 is instantiated by a programmable circuit that executes sensor interface instructions and / or is configured to perform operations, such as those described by the flowcharts of the Fig. 7 and Fig. 8 reproduced.

[0041] In some examples, the steering wheel position control circuit 202 includes a means for sensor interaction. For example, the means for sensor interaction may be implemented by the sensor interface circuit 406. In some examples, the sensor interface circuit 406 may be implemented by a programmable circuit, such as the exemplary programmable circuit 912 of Fig. 9. For example, the sensor interface circuit 406 may be instantiated by the exemplary microprocessor 1000 of Fig. 10, which contains machine-executable instructions, such as those executed at least by block 706 of Fig. 7 and block 802 from Fig. 8. In some examples, the sensor interface circuit 406 may be instantiated by a hardware logic circuit implemented by an ASIC, an XPU, or the FPGA circuit 1100 of Fig. 11 that is configured and / or structured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the sensor interface circuit 406 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the sensor interface circuit 406 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational amplifier (op-amp), a logic circuit, etc.) that are configured or structured to execute some or all of the machine-readable instructions and / or to perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0042] The position determining circuit 408 determines the position of the first portion 204 and / or the steering wheel 104 of the movable steering column assembly 200. For example, the position determining circuit 408 may determine the position of the first portion 204 relative to the second portion 206 using sensor data from the first sensor 214 and / or the second sensor 216 accessed by the sensor interface circuit 406. For example, the position determining circuit 408 may use sensor information from the first sensor 214 (e.g., a mechanical sensor, etc.) to determine the position of the first portion 204 relative to the second portion 206. Additionally or alternatively, the position determining circuit 408 may determine a position using sensor information from the second sensor 216 (e.g., a Hall-effect sensor coupled to the electric motor 212, etc.).In some such examples, the position determining circuit 408 may determine the position of the first portion 204 based on a starting position of the first portion 204 and an amount (e.g., a number, etc.) of rotations of the electric motor 212. In some examples, the position determining circuit 408 is instantiated by a programmable circuit that executes position determining instructions and / or is configured to perform operations such as those illustrated by the flowcharts of FIG. Fig. 7 and Fig. 8 reproduced.

[0043] In some examples, the steering wheel position control circuit 202 includes a means for determining the position of a portion of a steering system. For example, the means for determining the position of a portion of a steering system may be implemented by the position determining circuit 408. In some examples, the position determining circuit 408 may be implemented by a programmable circuit, such as the exemplary programmable circuit 912 of Fig. 9. For example, the position determination circuit 408 can be instantiated by the exemplary microprocessor 1000 of Fig. 10, which contains machine-executable instructions, such as those executed at least by blocks 708, 710, 726 of Fig. 7. In some examples, the position determination circuit 408 may be instantiated by a hardware logic circuit implemented by an ASIC, an XPU, or the FPGA circuit 1100 of Fig. 11 that is configured and / or structured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the position-determining circuit 408 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the position-determining circuit 408 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational amplifier (op-amp), a logic circuit, etc.) that are configured or structured to execute some or all of the machine-readable instructions and / or to perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0044] The position comparison circuit 410 determines whether the difference between the estimated positions meets a threshold. For example, the position comparison circuit 410 may compare the first estimated position and the second estimated position to determine an absolute difference between the estimated positions and / or a relative difference between the estimated position values. In some examples, the threshold may be based on a user preference, a manufacturer setting, and / or a geometric characteristic of the vehicle 100. In some such examples, the position comparison circuit 410 may access the threshold from memory associated with the vehicle 100. Additionally or alternatively, the threshold may be an absolute value (e.g., 10 millimeters, 1 centimeter, etc.). In other examples, the threshold may be a percentage (e.g.,a maximum percentage difference between the first estimated position and the second estimated position, etc.). In some examples, the position comparison circuit 410 is instantiated by a programmable circuit that executes position comparison instructions and / or is configured to perform operations such as those illustrated by the flowcharts of FIG. Fig. 7 and Fig. 8 reproduced.

[0045] In some examples, the steering wheel position control circuit 202 includes a means for comparing positions. For example, the means for comparing positions may be implemented by the position comparison circuit 410. In some examples, the position comparison circuit 410 may be implemented by a programmable circuit, such as the exemplary programmable circuit 912 of Fig. 9. For example, the position comparison circuit 410 can be instantiated by the exemplary microprocessor 1000 of Fig. 10 which contains machine-executable instructions, such as those executed at least by block 712 of Fig. 7. In some examples, the position comparison circuit 410 may be instantiated by a hardware logic circuit implemented by an ASIC, an XPU, or the FPGA circuit 1100 of Fig. 11 that is configured and / or structured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the position comparison circuit 410 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the position comparison circuit 410 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational amplifier (op-amp), a logic circuit, etc.) that are configured or structured to execute some or all of the machine-readable instructions and / or to perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, however, other structures are equally suitable.

[0046] The example obstacle detection circuit 412 determines whether the movable steering column assembly 200 has encountered an obstacle during operation. For example, the obstacle detection circuit 412 may determine whether the steering wheel 104 has contacted an object (e.g., cargo, an operator of the vehicle 100, etc.) within the passenger compartment 108 of the vehicle 100 during a stowing or deploying movement. In some examples, the obstacle detection circuit 412 may detect an obstacle by determining whether a parameter of the electric motor 212 is within an expected range of parameters associated with normal, unblocked operation of the electric motor 212. For example, the obstacle detection circuit 412 may determine whether a current draw of the electric motor 212 is within a range of draw currents for the electric motor 212.Additionally or alternatively, the obstacle detection circuit 412 may determine whether an electric motor parameter proportional to the current drawn by the motor 212 (e.g., output electric motor force, electric motor power, electric motor torque, etc.) is within a range. In some examples, if the electric motor parameter is not within the range, the obstacle detection circuit 412 may determine that an obstacle has been encountered, causing the system interface circuit 404 to stop operation of the movable steering column assembly 200.

[0047] In some examples, the obstacle detection circuit 412 may dynamically determine a range of electric motor parameters corresponding to unobstructed movement of the first portion 204 (e.g., normal, unblocked operation of the electric motor 212, etc.) based on a temperature of the movable steering column assembly 200. In some such examples, the temperature of the movable steering column assembly 200 may change the range of electric motor parameter values ​​associated with normal, unblocked operation of the electric motor 212 via thermal expansion and / or temperature-based viscosity changes of lubricant. In some examples, the obstacle detection circuit 412 may determine the electric motor parameter range based on a lookup table stored in memory associated with the vehicle 100.In some such examples, the lookup table used by obstacle detection circuitry 412 may be generated experimentally and / or analytically. In other examples, obstacle detection circuitry 412 may determine the range analytically (e.g., via expected thermal expansion of components, via expected viscosity change of a lubricant of movable steering column assembly 200, etc.).

[0048] In some examples, if the parameter exceeds the parameter range, the obstacle detection circuit 412 may determine whether an inrush current of the electric motor 212 is present and not indicate that an obstacle has been encountered if the electric motor 212 experiences an inrush current. Additionally or alternatively, if the parameter exceeds the parameter range, the obstacle detection circuit 412 may determine whether the electric motor 212 is blocked due to an end position of the movable steering column assembly 200 and not indicate that an obstacle has been encountered if the electric motor 212 experiences such a blockage. In some examples, the obstacle detection circuit 412 is instantiated by a programmable circuit that executes obstacle detection instructions and / or is configured to perform operations such as those described by the flowcharts of the Fig. 7 and Fig. 8 reproduced.

[0049] In some examples, the steering wheel position control circuit 202 includes a means for detecting an obstacle. For example, the means for detecting an obstacle may be implemented by the obstacle detection circuit 412. In some examples, the obstacle detection circuit 412 may be implemented by a programmable circuit, such as the exemplary programmable circuit 912 of Fig. 9. For example, the obstacle detection circuit 412 may be implemented by the exemplary microprocessor 1000 of Fig. 10 which contains machine-executable instructions, such as those executed at least by block 716 of Fig. 7 and / or blocks 804, 806, 808, 810, 812, 814 from Fig. 8. In some examples, the obstacle detection circuit 412 may be instantiated by a hardware logic circuit implemented by an ASIC, an XPU, or the FPGA circuit 1100 of Fig. 11 that is configured and / or structured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the obstacle detection circuit 412 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the obstacle detection circuit 412 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational amplifier (op-amp), a logic circuit, etc.) that are configured or structured to execute some or all of the machine-readable instructions and / or to perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, however, other structures are equally suitable.

[0050] The speed adjustment circuit 414 adjusts the translation speed of the steering wheel 104. For example, the speed adjustment circuit 414 may adjust the translation speed of the first portion 204 to be adjusted based on a current position of the steering wheel 104, a user preference, and / or a manufacturer setting. In some examples, the speed adjustment circuit 414 may adjust the translation speed via pulse width modulation (PWM). In some examples, the speed adjustment circuit 414 may adjust the translation speed to a speed between a lower speed value (e.g., approximately 11 millimeters per second, etc.) and an upper speed value (e.g., approximately 44 millimeters per second, etc.).In some examples, the speed adjustment circuit 414 may increase the translation speed when the steering wheel 104 is not near the desired position and / or decrease the translation speed when the steering wheel 104 is near the desired position. In some examples, the speed adjustment circuit 414 may adjust the translation speed to reduce the volume and / or sonic variations of the movable steering column assembly 200 (e.g., to prevent large changes in the torque applied to the gear system 306 of the movable steering column assembly 200, etc.). In some examples, the speed adjustment circuit 414 is instantiated by a programmable circuit that executes speed adjustment instructions and / or is configured to perform operations such as those illustrated by the flowcharts of FIG. Fig. 7 and Fig. 8 reproduced.

[0051] In some examples, the steering wheel position control circuit 202 includes a means for adjusting a speed of the movable steering system. For example, the means for adjusting a speed of the movable steering system may be implemented by the speed adjustment circuit 414. In some examples, the speed adjustment circuit 414 may be implemented by a programmable circuit, such as the exemplary programmable circuit 912 of Fig. 9. For example, the speed setting circuit 414 may be implemented by the exemplary microprocessor 1000 of Fig. 10, which includes machine-executable instructions, such as those executed at least by blocks 722, 724 of Fig. 7. In some examples, the speed adjustment circuit 414 may be instantiated by a hardware logic circuit implemented by an ASIC, an XPU, or the FPGA circuit 1100 of Fig. 11 that is configured and / or structured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the speed adjustment circuit 414 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the speed adjustment circuit 414 may be implemented by at least one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, an FPGA, an ASIC, an XPU, a comparator, an operational amplifier (op-amp), a logic circuit, etc.) that are configured or structured to execute some or all of the machine-readable instructions and / or to perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally suitable.

[0052] While an exemplary manner of implementing the steering wheel position control circuit 202 of Fig. 2 in Fig. 4, one or more elements, processes and / or devices shown in Fig. 4 may be combined, separated, rearranged, omitted, eliminated, and / or implemented in any other manner. Furthermore, the exemplary user interface circuit 402, the exemplary system interface circuit 404, the exemplary sensor interface circuit 406, the exemplary position determination circuit 408, the exemplary position comparison circuit 410, the exemplary obstacle detection circuit 412, the speed adjustment circuit 414, and / or more generally, the exemplary steering wheel position control circuit 202 of Fig. 4 may be implemented by hardware alone or by hardware in combination with software and / or firmware. Thus, for example, any of the example user interface circuitry 402, the example system interface circuitry 404, the example sensor interface circuitry 406, the example position determination circuitry 408, the example position comparison circuitry 410, the example obstacle detection circuitry 412, the speed adjustment circuitry 414, and / or more generally, the example steering wheel position control circuitry 202 could be implemented by a programmable circuitry in combination with machine-readable instructions (e.g.,Firmware or software), a processor circuit, analog circuit(s), digital circuit(s), logic circuit(s), programmable processor(s), programmable microcontroller(s), graphics processing unit(s) (GPU(s)), digital signal processor(s) (DSP(s)), ASIC(s), programmable logic device(s) (PLD(s)), and / or field programmable logic device(s) (FPLD(s)), such as FPGAs. Further, the example steering wheel position control circuit 202 of FIG. Fig. 4 one or more elements, processes and / or devices in addition to or instead of the Fig. 4 and / or may include more than one of any or all of the illustrated elements, processes, and devices.

[0053] Fig. 5 illustrates an exemplary relationship 500 between parameters of the movable steering column assembly 200 from the Fig. 2 and Fig. 3 during an operation over an entire span (e.g., movement from a fully extended position to a fully stowed position, etc.). The example relationship 500 includes an example first diagram 502, an example second diagram 504, an example third diagram 506, and an example fourth diagram 507. In the illustrated example of Fig. 5, the diagrams 502, 504, 506 have an exemplary x-axis 508. In the illustrated example from Fig. 5, the first diagram 502, the second diagram 504, the third diagram 506, and the fourth diagram 507 have an exemplary first y-axis 510, an exemplary second y-axis 512, an exemplary third y-axis 514, and an exemplary fourth y-axis 515, respectively.

[0054] The x-axis 508 measures the independent variable time. In the illustrated example from Fig. 5, an example first time 516 (T1), an example second time 518 (T2), an example third time 520 (T3), and an example fourth time 522 (T4) are marked on the x-axis 508. In some examples, the elapsed time between T1 and T4 depends on how fast the movable steering column assembly 200 translates and the total travel of the movable steering column assembly 200. The x-axis 508 may have any suitable units of measurement (e.g., milliseconds, seconds, etc.). The time durations between each of the times 516, 518, 520, 522 are for illustrative purposes only. In other examples, the distance between times 516, 518, 520, 522 may be different (e.g., the distance between the second time 518 and the third time 520, etc.).

[0055] The first y-axis 510 of the first diagram 502 measures the position of the first section 204 from Fig. 2 and / or the steering wheel 104 from the Fig. 1 and Fig. 2. In the illustrated example from Fig. 5, a value of P1 on the first y-axis 510 indicates that the movable steering column assembly 200 is in the fully stowed state, and P2 indicates that the movable steering column assembly 200 is in the fully extended state. In some examples, the first y-axis 510 may have any suitable travel units (e.g., millimeters, inches, etc.). In some examples, the y-axis may have relative travel units (e.g., a percentage position between fully stowed and fully extended, etc.).

[0056] The second y-axis 512 of the second diagram 504 measures the current consumption of the electric motor 212. In the illustrated example from Fig. 5, the second y-axis 512 extends between i min and i max , which is the maximum rated current of the electric motor 212. In some examples, the second y-axis 512 may have any suitable current units (e.g., amperes, etc.). The third y-axis 514 of the third diagram 506 and the fourth y-axis 515 measure the output of the second sensor 216 Fig. 2. In the illustrated example from Fig. 5, the third y-axis 514 and the fourth y-axis 515 extend between V min and V max , which are the minimum voltage output by the second sensor 216 and the maximum voltage output by the second sensor 216, respectively. In some examples, the third y-axis 514 and / or the fourth y-axis 515 may include any suitable voltage units (e.g., volts, etc.) and / or any other suitable quantity representative of a sensor output.

[0057] In the illustrated example from Fig. 5, the first diagram 502 includes an exemplary line 524 that tracks the movement of the first portion 204 between receiving a command to shift at the first time 516 and the end of operation of the electric motor 212 at the fourth time 522. For example, the steering wheel position control circuit 202 (e.g., via the user interface circuit 402 of Fig. 4 etc.) at the first time 516, detect a command to move the movable steering column assembly 200 from a fully stowed position to a fully extended position and a command to operate the electric motor 212 (e.g., via the system interface circuit 404 of Fig. 4 etc.). In the illustrated example from Fig. 5, the electric motor 212 begins to rotate in a stationary state at the second time 518, causing the first portion 204 and the steering wheel 104 to translate at a constant speed until the third time 520. In the illustrated example of Fig. 5, the movable steering column assembly 200 reaches the end position at the third time 520 and the electric motor 212 blocks. At the fourth time 522, the steering wheel position control circuit 202 detects that the first portion 204 has reached the desired position (e.g., the fully stowed position, etc.) and terminates the operation of the electric motor 212 (e.g., turns off the electric motor 212, etc.).

[0058] In the illustrated example from Fig. 5, the second graph 504 includes an example first line 526 and an example second line 528 that track the current draw of the electric motor 212 at the first position 204 between receiving a command to move at the first time 516 and ceasing operation of the electric motor 212 at the fourth time 522 at a first temperature and a second temperature, respectively. The first line 526 includes an example first inrush current segment 529, an example first steady-state segment 530, and an example first stall segment 532. The second line 528 includes an example second inrush current segment 534, an example second steady-state segment 536, and an example second stall segment 538.

[0059] In some examples, the first line 526 corresponds to operation of the movable steering column assembly 200 at normal operating temperatures (e.g., 70 degrees Fahrenheit, etc.) and the second line 528 corresponds to operation of the movable steering column assembly 200 at cold operating temperatures (e.g., 0 degrees Fahrenheit, etc.). In some examples, a reduction in the viscosity of a lubricant used by the movable steering column assembly 200 and / or thermal contraction at cold temperatures may change an amount of torque required to operate the electric motor 212 of the first actuator 302. That is, lower temperatures of the movable steering column assembly 200 may increase an amount of current required to operate the electric motor 212. In the illustrated example of Fig. 5, the increased current demand of the electric motor 212 at cold temperatures results in the second line 528 being vertically displaced from the first line 526.

[0060] The inrush current segments 529, 534 are portions of the lines 524, 526 that correspond to a surge in current consumption caused by the turning on of the motor 212. The inrush current segments 529, 534 are periods of increased current consumption compared to the current consumption associated with the stationary segments 530 and 536, respectively. In the illustrated example from Fig. 5, the inrush current segments 529, 534 of the lines 524, 526 occur at T1 when the operation of the electric motor 212 begins, and end at T2 when the current consumption of the electric motor 212 stabilizes and has reached a steady state. In the illustrated example from Fig. 5, the inrush current segments 529, 534 generally have a parabolic shape. In other examples, the inrush current segments 529, 534 may have any other suitable shape depending on the configuration of the electric motor 212 (e.g., if the electric motor 212 is an AC motor, the inrush current segment would be sinusoidal, etc.).

[0061] The stationary segments 530, 536 are sections of the lines 524, 526 that correspond to the current consumption during stationary operation of the electric motor 212. In the illustrated example from Fig. 5, the stationary segments 530, 536 of the lines 524, 526 begin at T2, after the inrush current segments 529, 534, respectively, and end at T3 when the movable steering column assembly 200 reaches the end position. In the illustrated example from Fig. 5, the current draw values ​​of the stationary segments 530, 536 may be used to generate an example first electric motor parameter range 539 and an example second electric motor parameter range 540. For example, the current draw of the electric motor 212 may be monitored by the manufacturer at a variety of temperatures. In some such examples, a lookup table may be generated based on the current draw of the electric motor 212 at each of the variety of temperatures. In some such examples, the lookup table may correlate the temperature of the movable steering column assembly 200 and a range of expected current draws of the electric motor 212 at the temperature.Additionally or alternatively, the lookup table may be analytically generated based on a geometry of the movable steering column assembly 200, the viscosity of the lubricant of the movable steering column assembly 200, the thermal properties of the materials of the movable steering column assembly 200, etc. It is understood that the current draw of the electric motor 212 includes noise (not illustrated). Accordingly, the electric motor parameter ranges 539, 540 represent a band of current draws, including noise, corresponding to steady-state operation of the electric motor 212 at normal temperatures and cold temperatures, respectively.

[0062] The blocking segments 532, 538 correspond to the current consumption of the electric motor 212 while the electric motor 212 is blocked. In the illustrated example from Fig. 5, the blocking segments 532, 538 of the lines 524, 526 begin at T3 when the movable steering column assembly 200 reaches the end position and the stationary segments 530 and 536 end, respectively. In the illustrated example from Fig. 5, the blocking segments 532, 538 of lines 524, 526 end at T4 when the electric motor 212 ceases operation (e.g., turns off, etc.). The blocking segments 532, 538 occur because the movable steering column assembly 200 approaches the end position (e.g., a pinion of the transmission system 306 is near the end of a rack of the transmission system 306, etc.), thereby preventing the translation of the first section 204 and rotation of the electric motor 212. In the illustrated example of Fig. 5, however, the electric motor 212 continues to apply an increased amount of torque to the first section 204, thereby increasing the current draw of the electric motor 212. Lines 524, 526 end at T4, at which the steering wheel position control circuit 202 detects that the movable steering column assembly 200 has reached the end position and terminates operation of the electric motor 212.

[0063] In the illustrated example from Fig. 5, the third plot 506 and the fourth plot 507 include an example first line 542 and an example second line 544 that track the output of the second sensor 216 during the translation of the first portion 204 between receiving a command to translate at the first time 516 and the end of operation of the electric motor 212 at the fourth time 522. In some examples, the first line 542 corresponds to operation of the movable steering column assembly 200 at normal operating temperatures (e.g., 70 degrees Fahrenheit, etc.). In some such examples, the first line 542 corresponds to the output of the second sensor 216 during current draw of the electric motor 212, represented by the first line 526 of the second plot 504. In the illustrated example, the second line 544 corresponds to operation of the movable steering column assembly 200 at cold operating temperatures (e.g., 0 degrees Fahrenheit, etc.).In some examples, the reduction in viscosity of a lubricant used by the movable steering column assembly 200 and / or thermal contraction at cold temperatures may slow the operation of the electric motor 212. In some such examples, the second line 544 corresponds to the output of the second sensor 216 during current draw of the electric motor 212, represented by the second line 528 of the second graph 504. In the illustrated example of FIG. Fig. 5, the slower rotation of the electric motor 212 at cold temperatures causes the width and spacing of the pulses of the second line 544 to be longer than the width and spacing of the pulses of the first line 542.

[0064] In the illustrated example from Fig. 5, lines 542, 544 are depicted as square waves. In some such examples, lines 542, 544 have been filtered to produce square waves (e.g., via a high-pass filter, via a Schmitt trigger, via a comparator, etc.). In other examples, the first line 542 and / or the second line 544 may be depicted as sinusoidal wave(s). Each rotation of the electric motor 212 corresponds to a wave (e.g., a pulse) of lines 542, 544. At the second time 518, the motor 212 begins to rotate, and lines 542, 544 begin to vary between V max and V minto oscillate. At the third time 520, the electric motor 212 begins to stall and rotates more slowly, increasing the width of each oscillation of lines 542, 544. Between the third time 520 and the fourth time 522, the rotation of the electric motor 212 slows as the electric motor 212 continues to stall, causing the width and spacing of lines 542, 544 to gradually increase until the fourth time 522. At the fourth time 522, the steering wheel position control circuit 202 detects that the movable steering column assembly 200 has reached the end position and terminates the operation of the electric motor 212, ending line 542.

[0065] It is understood that diagrams 502, 504, 506, axes 508, 510, 512, 514, 515, and lines 524, 526, 528, 542, 544 are included for illustrative purposes only and are not to scale. For example, portions of lines 524, 526, 528, 542, 544 may be longer, shorter, and / or exaggerated for demonstration purposes. It is understood that the time periods between one or more of the times 516, 518, 520, 522 may vary based on the condition of the movable steering column assembly 200. For example, the duration between the second time 518 and the third time 520 may be greater at colder temperatures due to the slower operation of the electric motor 212 (e.g., corresponding to the second line 528 of the second diagram 504 and the second line 544 of the fourth diagram 507, etc.) than at comparatively warmer temperatures (e.g.,corresponding to the first line 526 of the second diagram 504 and the first line 542 of the third diagram 506, etc.).

[0066] Fig. 6 is an exemplary illustration of an exemplary relationship 600 between parameters of the movable steering column assembly 200 of Fig. 2 and Fig. 3 during operation when an obstacle is encountered. The exemplary relationship 600 includes an exemplary first diagram 602, an exemplary second diagram 604, and an exemplary third diagram 606. The diagrams 602, 604, 606 indicate the x-axis 508 Fig. 5. In the illustrated example from Fig. 6, the first diagram 602, the second diagram 604 and the third diagram 606 show the first y-axis 510 Fig. 5, the second y-axis 512 from Fig. 5 and the third y-axis 514 from Fig. 5. In the illustrated example from Fig. 6, an exemplary first time 608 (T1), an exemplary second time 610 (T2), an exemplary third time 612 (T3), and an exemplary fourth time 614 (T4) are marked on the x-axis 508.

[0067] In the illustrated example from Fig. 6, the first diagram 602 includes an exemplary line 616 that tracks the movement of the first portion 204 between receiving a command to shift at the first time 608 and turning off the electric motor 212 at the fourth time 614. For example, the steering wheel position control circuit 202 (e.g., via the user interface circuit 402 of Fig. 4, etc.) at the first time 608 may detect a command to move the movable steering column assembly 200 from a fully stowed position to a fully extended position and send a command to operate the electric motor 212 (e.g., via the system interface circuit 404, etc.). In the illustrated example of Fig. 6, at the second time 610, the electric motor 212 begins to rotate in a stationary state, causing the first section 204 and the steering wheel 104 to translate at a constant speed until the third time 612. At the third time 612, the movable steering column assembly 200 encounters an obstacle (e.g., a person, cargo, etc.), causing the electric motor 212 to begin stalling before the movable steering column assembly 200 reaches the desired position. At the fourth time 614, the steering wheel position control circuit 202 (e.g., the obstacle detection circuit 412, etc.) detects the obstacle and turns off the electric motor 212, causing the first section 204 to stop moving.

[0068] In the illustrated example from Fig. 6, the second diagram 604 includes an exemplary line 618 corresponding to the first line 526 of Fig. 5 before the third time 612. In the illustrated example from Fig. 6, the electric motor 212 begins to stall at the third time 612, before the movable steering column assembly 200 has reached the desired position. When the electric motor 212 stalls, the current consumption of the electric motor 212 increases. At the fourth time 614, the line 618 exceeds the upper limit of the electric motor parameter range 539, which is detected by the steering wheel position control circuit 202 (e.g., via the obstacle detection circuit 412, etc.) and thereby identified as the movable steering column assembly 200 having encountered an obstacle.

[0069] In the illustrated example from Fig. 6, the third diagram 606 includes an exemplary line 620 corresponding to the first line 542 of Fig. 5 before the third time 612. In the illustrated example from Fig. 6, the electric motor 212 begins to stall at the third time 612, before the movable steering column assembly 200 has reached the desired position. When the electric motor 212 stalls, the rotation of the electric motor 212 slows, thereby expanding the width of the oscillations of the line 620. Between the third time 612 and the fourth time 614, while the resistance from the encountered obstacle causes the rotation of the electric motor 212 to slow and / or stall, the width and spacing of the line 620 gradually increase until the fourth time 614. At the fourth time 614, the steering wheel position control circuit 202 (e.g., the obstacle detection circuit 412, etc.) detects the obstacle and turns off the electric motor 212, causing the first portion 204 to stop moving.

[0070] In the illustrated example from Fig. 6, the steering wheel position control circuit 202 detects the obstacle being encountered at the third time 612 by the current draw of the electric motor 212 exceeding the first electric motor parameter range 539 when no inrush current is occurring (e.g., the behavior of line 618 between the first time 608 and line 620, etc.) or near an end position of the movable steering column assembly 200. In other examples, other electric motor parameters proportional to the current draw may be used in place of the current draw by the steering wheel position control circuit 202 (e.g., the torque of the electric motor 212, the power of the electric motor 212, etc.). Additionally or alternatively, the steering wheel position control circuit 202 may detect the obstruction in another way.For example, the steering wheel position control circuit 202 may detect via the first sensor 214 that the displacement of the first portion 204 has slowed and / or stopped at the third time 612. For example, the steering wheel position control circuit 202 may detect the width of the oscillations of the line 620, which increases at the third time 612.

[0071] It is understood that diagrams 602, 604, 606, axes 508, 510, 512, 514, and lines 616, 618, 620 are included for illustrative purposes only and are not drawn to scale. For example, portions of lines 616, 618, 620 may be shown longer, shorter, and / or exaggerated for demonstration purposes.

[0072] Flowcharts representative of exemplary machine-readable instructions that may be executed by a programmable circuit to implement the steering wheel position control circuit 202 of Fig. 4, and / or which are representative of exemplary operations that may be performed by a programmable circuit to implement the steering wheel position control circuit 202 of Fig. 4 to implement and / or instantiate are in the Fig. 7 and Fig. 8. The machine-readable instructions may be one or more executable programs or a portion(s) of one or more executable programs for execution by a programmable circuit, such as the programmable circuit 912 illustrated in the exemplary programmable circuit platform 900 described below in connection with Fig. 9 and / or may be one or more functions or part(s) of functions to be performed by the exemplary programmable circuit (e.g., an FPGA) described below in connection with the Fig. 10 and / or 11. In some examples, the machine-readable instructions cause an operation, task, etc., to be performed and / or performed in an automated manner in the real world. In this context, "automated" means without human intervention.

[0073] The program may be embodied as instructions (e.g., software and / or firmware) stored on one or more persistent computer-readable and / or machine-readable storage media, such as cache memory, a magnetic storage device or disk (e.g., a floppy disk, a hard disk drive (HDD), etc.), an optical storage device or disk (e.g., a Blu-ray disk, a compact disk (CD), a digital versatile disk (DVD), etc.), a redundant array of independent disks (RAID), a register, ROM, a solid state drive (SSD), SSD memory, non-volatile memory (e.g., electrically erasable programmable read-only memory (EEPROM), flash memory, etc.), volatile memory (e.g., random access memory (RAM) of any type, etc.), and / or any other storage device or disk.The instructions of the durable computer-readable and / or machine-readable medium may program and / or be executed by programmable circuitry residing in one or more hardware devices, but the entire program and / or portions thereof may alternatively be executed and / or instantiated by one or more hardware devices other than the programmable circuitry and / or embodied as dedicated hardware. The machine-readable instructions may be distributed across multiple hardware devices and / or executed by two or more hardware devices (e.g., a server and a client hardware device). For example, the client hardware device may be implemented by an endpoint client hardware device (e.g., a hardware device associated with a human and / or machine user) or an intermediate client hardware device gateway (e.g.,a radio access network (RAN) that can enable communication between a server and an endpoint client hardware device. Likewise, the persistent computer-readable storage medium can include one or more media. Although the example program is described with reference to the embodiments described in the . Fig. 7 and Fig. 8, many other methods may alternatively be used to implement the example steering wheel position control circuit 202. For example, the order of execution of the flowcharts may be changed and / or some of the described blocks may be changed, eliminated, or combined. Additionally or alternatively, any or all of the blocks of the flowchart may be implemented by one or more hardware circuits (e.g., processor circuitry, discrete and / or integrated analog and / or digital circuitry, an FPGA, an ASIC, a comparator, an operational amplifier (op-amp), logic circuitry, etc.) structured to perform the corresponding operation without executing software or firmware. The programmable circuit may be implemented at different network locations and / or locally on one or more hardware devices (e.g., a single-core processor (e.g.,B. a single-core CPU), a multi-core processor (e.g., a multi-core CPU, an XPU, etc.). For example, the programmable circuit may be a CPU and / or an FPGA residing in the same package (e.g., in the same integrated circuit (IC) package or in two or more separate packages), one or more processors in a single machine, multiple processors distributed across multiple servers in a server rack, multiple processors distributed across one or more server racks, etc., and / or any combination thereof.

[0074] The machine-readable instructions described herein may be stored in one or more of a compressed format, an encrypted format, a fragmented format, a compiled format, an executable format, a packed format, etc. Machine-readable instructions as described herein may be stored as data (e.g., computer-readable data, machine-readable data, one or more bits (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), a bit stream (e.g., a computer-readable bit stream, a machine-readable bit stream, etc.), or a data structure (e.g., as section(s) of instructions, code, representations of code, etc.) that can be used to create, manufacture, and / or generate machine-executable instructions. For example, the machine-readable instructions may be fragmented and stored on one or more storage devices, disks, and / or computing devices (e.g.,Servers) located at the same or different locations of a network or collection of networks (e.g., in the cloud, on edge devices, etc.). The machine-readable instructions may require one or more of installation, modification, adaptation, updating, combining, amending, configuring, decrypting, decompressing, unpacking, distributing, reassigning, assembling, etc., to make them directly readable, interpretable, and / or executable by a computing device and / or other machine.For example, the machine-readable instructions may be stored in multiple pieces that are individually compressed, encrypted, and / or stored on separate computing devices, which pieces, when decrypted, decompressed, and / or combined, form a set of computer-executable and / or machine-executable instructions that implement one or more functions and / or operations that together may form a program, such as described herein.

[0075] In another example, the machine-readable instructions may be stored in a state where they can be read by programmable circuitry, but may require the addition of a library (e.g., a dynamic link library (DLL)), a software development kit (SDK), an application programming interface (API), etc., to execute the machine-readable instructions on a particular computing device or other device. In another example, the machine-readable instructions may need to be configured (e.g., settings saved, data entered, network addresses recorded, etc.) before the machine-readable instructions and / or the corresponding program(s) can be executed, in whole or in part.Thus, in the present context, machine-readable, computer-readable and / or machine-readable media may contain instructions and / or a program(s) regardless of the particular format or state of the machine-readable instructions and / or program(s).

[0076] The machine-readable instructions described herein may be represented by any past, present, or future instruction language, scripting language, programming language, etc. For example, the machine-readable instructions may be represented using any of the following languages: C, C++, Java, C#, Perl, Python, JavaScript, HyperText Markup Language (HTML), Structured Query Language (SQL), Swift, etc.

[0077] As mentioned above, the example operations from the Fig. 7 and Fig. 8 using executable instructions (e.g., computer-readable and / or machine-readable instructions) stored on one or more persistent computer-readable and / or machine-readable media. For the purposes of this context, the terms persistent computer-readable medium, persistent computer-readable storage medium, persistent machine-readable medium, and persistent machine-readable storage medium are expressly defined to include any type of computer-readable storage device and / or storage disk and exclude propagating signals and exclude transmission media.Examples of such a persistent computer-readable medium, persistent computer-readable storage medium, persistent machine-readable medium, and / or persistent machine-readable storage medium include optical storage devices, magnetic storage devices, an HDD, flash memory, read-only memory (ROM), a CD, a DVD, a cache, RAM of any type, a register, and / or any other storage device or disk in which information is stored for any duration (e.g., for extended periods of time, permanently, for short periods of time, for temporarily buffering and / or caching the information).For the purposes of this context, the terms "persistent computer-readable storage device" and "persistent machine-readable storage device" are defined to include any physical (mechanical, magnetic, and / or electrical) hardware for storing information, but exclude propagating signals and exclude transmission media. Examples of persistent computer-readable storage devices and / or persistent machine-readable storage devices include random-access memory of any type, read-only memory of any type, semiconductor memory, flash memory, optical disks, magnetic disks, disk drives, and / or redundant array of independent disks (RAID) systems.As used herein, the term “apparatus” refers to a physical structure, such as mechanical and / or electrical equipment, hardware and / or circuitry, that may or may not be configured by computer-readable instructions, machine-readable instructions, etc., and / or is made to execute computer-readable instructions, machine-readable instructions, etc.

[0078] "Including" and "comprising" (and all forms and tenses thereof) are used herein as open-ended expressions. Thus, when any form of "include" or "comprising" (e.g., comprises, includes, comprising, including, having, etc.) is used in a claim as a preamble or within a claim recapitulation of any kind, it is understood that additional elements, expressions, etc. may be present without being outside the scope of the corresponding claim or recapitulation. In the present context, the expression "at least," when used, for example, in a claim recapitulation as a transition expression, is open-ended in the same way that the expressions "comprising" and "including" are open-ended.The term "and / or", when used, for example, in a form such as A, B and / or C, means any combination or subset of A, B, C, such as (1) only A, (2) only B, (3) only C, (4) A with B, (5) A with C, (6) B with C, or (7) A with B and C. As used herein in the context of describing structures, components, elements, objects and / or things, the term "at least one of A and B" is intended to refer to implementations that include any of (1) at least one of A, (2) at least one of B, or (3) at least one of A and at least one of B. Likewise, the phrase "at least one of A or B," as used herein in the context of describing structures, components, elements, objects, and / or things, is intended to refer to implementations that include any of (1) at least one of A, (2) at least one of B, or (3) at least one of A and at least one of B.As used herein in connection with a description of the performance or execution of processes, instructions, acts, activities, and / or steps, the phrase “at least one of A and B” shall refer to implementations that include any of (1) at least one of A, (2) at least one of B, or (3) at least one of A and at least one of B. Likewise, the phrase “at least one of A or B,” as used herein in connection with the description of the performance or execution of processes, instructions, acts, activities, and / or steps, shall refer to implementations that include any of (1) at least one of A, (2) at least one of B, or (3) at least one of A and at least one of B.

[0079] In the present context, references to the singular (e.g., "a," "an," "first," "second," etc.) do not exclude a plurality. The term "an" object, in the present context, refers to one or more of such objects. The terms "a" (or "an"), "one or more," and "at least one" are used interchangeably herein. Furthermore, although listed individually, a plurality of means, elements, or acts may be implemented, e.g., by the same entity or object. In addition, while individual features may be included in different examples or claims, they may be combined, and inclusion in different examples or claims does not imply that a combination of features is not possible and / or advantageous.

[0080] Fig. 7 is a flowchart representative of example machine-readable instructions and / or example operations 700 that may be executed, instantiated, and / or performed by a programmable circuit to configure the movable steering column assembly 200 from the Fig. 2 and Fig. 3. The machine-readable instructions and / or the exemplary operations 700 of Fig. 3 begin at block 702, where the user interface circuitry 402 accesses inputs from an interface of the vehicle 100. For example, the user interface circuitry 402 may access a request to move the fore-and-aft position of the steering wheel 104 within the passenger compartment 108 of the vehicle 100 (e.g., a request to stow the steering wheel 104, a request to extend a steering wheel 104, etc.). In some examples, the user interface circuitry 402 may detect an input via the steering wheel 104 (e.g., via a button disposed thereon, etc.) and / or an interface of the instrument panel 106 (e.g., via a button on the instrument panel 106, via a touchscreen of the instrument panel 106, etc.). In some examples, the user interface circuitry 402 may receive a request to move the fore-and-aft position in response to another user input (e.g.,an ignition of the vehicle 100, an adjustment of a driver's seat of the vehicle 100, etc.). In some examples, the user interface circuit 402 may detect a request to move the longitudinal position of the steering wheel 104 from an autonomous driving system of the vehicle 100, etc.

[0081] At block 704, the system interface circuit 404 initiates movement of the steering wheel 104 based on the accessed command. For example, the system interface circuit 404 may cause the operation of the first actuator 302 to Fig. 3 and the electric motor 212 from the Fig. 2 and Fig. 3 causes the longitudinal translation of the first portion 204 of the movable steering column assembly 200 relative to the second portion 206 of the movable steering column assembly 200. In some such examples, the system interface circuit 404 may send a command to the first actuator 302 (e.g., an electrical signal, etc.) to begin rotating the electric motor 212 in a direction corresponding to the accessed command (e.g., a first direction to move the steering wheel 104 toward the instrument panel 106, a second direction to move the steering wheel away from the instrument panel 106, etc.).

[0082] At block 706, the sensor interface circuit 406 accesses sensor data from one or more sensors associated with the vehicle 100. For example, the sensor interface circuit 406 may access sensor data from the temperature sensor 110 Fig. 1, the first sensor 214 from Fig. 2 and / or the second sensor 216. In some examples, the sensor interface circuit 406 may access sensor data from other sensors of the vehicle 100 (e.g., another temperature sensor of the vehicle 100, etc.). In some examples, the sensor interface circuit 406 may convert the data received from the sensors 110, 214, 216 into a numeric (e.g., human-readable, etc.) form.

[0083] At block 708, the position determination circuit 408 determines a first estimated position of the steering wheel 104 relative to the instrument panel 106 of the vehicle 100 using a first method. For example, the position determination circuit 408 may use sensor information from the first sensor 214 to determine the position of the first portion 204 relative to the second portion 206. In some such examples, if the first sensor 214 is a mechanical sensor associated with the first portion 204, the second portion 206, and / or the transmission system 306, thereby enabling the relative thereof, the position determination circuit 408 may determine the position of the steering wheel 104 (e.g., the first portion 204, etc.) by correlating the output of the first sensor 214 with a position of the steering wheel 104 and / or the first portion 204 (e.g.,a first sensor value may be correlated with the first position, a second sensor value may be correlated with the second position, etc.). In some such examples, if the first sensor 214 is a mechanical sensor associated with the first portion 204, the second portion 206, and / or the transmission system 306, thereby enabling the relative thereof, the position determining circuit 408 may determine the position of the steering wheel 104 and / or the first portion 204 without the starting position of the first portion 204 (e.g., a power outage occurs, etc.). In some such examples, depending on the type of sensor implementing the first sensor 214, the first method used by the position determining circuit 408 may have a lower resolution than other methods (e.g., the second method of block 710, etc.) that may be used to determine the position of the first portion 204 and / or the steering wheel 104.

[0084] At block 710, the position determining circuit 408 determines a second estimated position of the steering wheel 104 relative to the instrument panel 106 of the vehicle 100 using a second method. For example, the position determining circuit 408 may use sensor information from the second sensor 216 to determine the position of the first portion 204 relative to the second portion 206. For example, the position determining circuit 408 may determine a position using sensor information from the second sensor 216 (e.g., a Hall sensor coupled to the electric motor 212, etc.). In some such examples, the position determining circuit 408 may determine the position of the first portion 204 based on a starting position of the first portion 204 and an amount of rotations of the electric motor 212.For example, the position determining circuit 408 may determine a displacement of the first portion 204 based on the number of rotations of the electric motor 212 and the relationship between the rotation of the electric motor 212 and the displacement of the first portion 204 (e.g., based on the characteristics of the first actuator 302 and / or the transmission system 306, etc.). In some such examples, depending on the type of sensor implementing the second sensor 216, the second method used by the position determining circuit 408 may have greater resolution than other methods (e.g., the first method of block 708, etc.) that may be used to determine the position of the first portion 204 and / or the steering wheel 104. In some such examples, the position determination circuit 408 does not use the second method when the starting position of the steering wheel 104 and / or the first portion 204 is unknown (e.g.,a power failure occurred in vehicle 100, etc.).

[0085] At block 712, the position comparison circuit 410 determines whether the difference between the estimated positions meets a threshold. For example, the position comparison circuit 410 may compare the first estimated position and the second estimated position to determine an absolute difference between the estimated positions and / or a relative difference between the estimated position values. In some examples, the threshold may be based on a user preference, a manufacturer setting, and / or a geometric characteristic of the vehicle 100. In some examples, the threshold may be an absolute value (e.g., 10 millimeters, 1 centimeter, etc.). In other examples, the threshold may be a percentage (e.g., a maximum percentage difference between the first estimated position and the second estimated position, etc.).If the position comparison circuit 410 determines that the difference between the first estimated position value and the second estimated position meets the threshold, operations 700 proceed to block 714. If the position comparison circuit 410 determines that the difference between the first estimated position value and the second estimated position does not meet the threshold, operations 700 proceed to block 713.

[0086] At block 713, the user interface circuit 402 generates an alert indicating that a discrepancy has occurred in the movable steering column assembly 200. For example, the user interface circuit 402 may generate an alert based on a command from the position comparison circuit 410. In some examples, the user interface circuit 402 may generate a visual alert (e.g., via a dashboard indicator / warning light, an indicator on the steering wheel 104, a screen of the vehicle 100, a screen of a user device of a user of the vehicle 100, etc.), an audible alert (e.g., via a speaker of the vehicle 100, via a speaker of a user device of a user of the vehicle 100, etc.), and / or tactile feedback (e.g., tactile feedback via a seat of the vehicle 100, tactile feedback via the steering wheel 104, etc.).In some examples, the user interface circuit 402 may generate an alert indicating that the vehicle 100 requires service to correct the detected discrepancy (e.g., recalibration of the sensors 214, 216, etc.).

[0087] At block 714, the obstacle detection circuit 412 determines whether the steering wheel 104 and / or the first portion 204 has / have encountered an obstacle. For example, the obstacle detection circuit 412 may determine whether the steering wheel 104 and / or another portion of the movable steering column assembly 200 has / have contacted an object (e.g., a person, cargo in the passenger compartment 108, etc.) during translation. Example operations that may be used to perform block 714 are described below in connection with Fig. 8 described.

[0088] At block 716, the system interface circuitry 404 determines whether an obstacle was detected during the execution of block 714. For example, the system interface circuitry 404 may determine whether the obstacle detection circuitry 412 is detecting the steering wheel 104 and / or the first portion 204 during the execution of block 714 and / or the operations 800 of Fig. 8. In some examples, the system interface circuit 404 may access a memory of the vehicle 100 to determine whether the obstacle detection circuit 412 has set a flag indicating that the steering wheel 104 and / or the first portion 204 has encountered an obstacle and / or has set a flag indicating that the steering wheel 104 and / or the first portion 204 has not encountered an obstacle. If the system interface circuit 404 determines that an obstacle has been detected, the operations 700 proceed to block 718. If the system interface circuit 404 determines that no obstacle has been detected, the operations 700 proceed to block 722.

[0089] At block 718, the system interface circuit 404 stops the movement of the steering wheel 104. For example, the system interface circuit 404 may send an instruction to the first actuator 302 to cease operation. In some examples, the system interface circuit 404 may cause the steering wheel 104 to rebound (e.g., move briefly in an opposite direction to the previous translation, etc.) by sending an instruction to the first actuator 302 to cause the first portion 204 to translate in an opposite direction.

[0090] At block 720, user interface circuitry 402 generates an alert indicating that movable steering column assembly 200 has encountered an obstacle. For example, user interface circuitry 402 may generate an alert in response to a command from obstacle detection circuitry 412. In some examples, user interface circuitry 402 may generate a visual alert (e.g., via a dashboard indicator / warning light, an indicator on steering wheel 104, a screen of vehicle 100, a screen of a user device of a user of vehicle 100, etc.), an audible alert (e.g., via a speaker of vehicle 100, via a speaker of a user device of a user of vehicle 100, etc.), and / or tactile feedback (e.g., tactile feedback via a seat of vehicle 100, tactile feedback via steering wheel 104, etc.).In some examples, the user interface circuit 402 may generate a warning indicating that the obstacle should be removed from the path of the movable steering column assembly 200.

[0091] At block 722, the speed adjustment circuit 414 determines whether to adjust the displacement speed of the first portion 204. For example, the speed adjustment circuit 414 may determine whether to adjust the displacement speed of the first portion 204 based on a current position of the steering wheel 104, a user preference, and / or a manufacturer setting. If the speed adjustment circuit 414 determines to adjust the displacement speed, operations 700 proceed to block 724. If the speed adjustment circuit 414 determines not to adjust the displacement speed, operations 700 proceed to block 726.

[0092] At block 724, the speed adjustment circuit 414 adjusts the displacement speed of the steering wheel 104. For example, the speed adjustment circuit 414 may adjust the displacement speed via pulse width modulation (PWM). In some examples, the speed adjustment circuit 414 may set the displacement speed to a speed between a lower speed (e.g., approximately 11 millimeters per second, etc.) and an upper speed value (e.g., approximately 44 millimeters per second, etc.). In some examples, the speed adjustment circuit 414 may increase the displacement speed when the steering wheel 104 is not near the desired position and / or decrease the displacement speed when the steering wheel 104 is near the desired position.In some examples, the speed adjustment circuit 414 may adjust the displacement speed to reduce the volume and / or sound variations of the movable steering column assembly 200 (e.g., to prevent large changes in the torque applied to the gear system 306 of the movable steering column assembly 200, etc.).

[0093] At block 726, the position determining circuit 408 determines whether the desired position has been reached by the steering wheel 104. For example, the position determining circuit 408 may determine whether the desired position has been reached based on the estimated positions determined during execution of block 708 and / or block 710. In some examples, the position determining circuit 408 may determine whether the desired position has been met based on sensor information for the first sensor 214 and / or the second sensor 216. If the position determining circuit 408 determines that the desired position has been reached, operations 700 end. If the position determining circuit 408 determines that the desired position has not been reached, operations 700 return to block 706.

[0094] Fig. 8 is a flowchart representative of example machine-readable instructions and / or example operations 800 that may be executed, instantiated, and / or performed by a programmable circuit to determine whether the steering column assembly 200 has encountered an obstacle (e.g., executing block 714 of Fig. 7, etc.). The example machine-readable instructions and / or the example operations 800 of Fig. 3 begin at block 802, where the sensor interface circuit 406 accesses sensor data associated with the temperature of the movable steering column assembly 200. For example, the sensor interface circuit 406 may access sensor data from the temperature sensor 110 Fig. 1. In some examples, sensor interface circuitry 406 may access sensor data from other temperature sensors of vehicle 100 (e.g., an outside temperature sensor of vehicle 100, etc.). In some examples, sensor interface circuitry 406 may convert the data received from sensors 110 into a numeric (e.g., human-readable, etc.) form.

[0095] At block 804, the obstacle detection circuit 412 determines an electric motor parameter range based on the temperature. For example, the obstacle detection circuit 412 may determine a range of input currents for the electric motor 212 (e.g., the first electric motor parameter range 539 of Fig. 5, the second electric motor parameter range 540 from Fig. 5, etc.). Additionally or alternatively, the obstacle detection circuit 412 may determine a range for an electric motor parameter that is proportional to the current drawn by the electric motor 212 (e.g., output electric motor force, electric motor power, electric motor torque, etc.). In some examples, the obstacle detection circuit 412 may determine a range of electric motor parameters that corresponds to unobstructed movement of the first portion 204 (e.g., normal, unblocked operation of the electric motor 212, etc.). In some examples, the obstacle detection circuit 412 may determine the electric motor parameter range based on a lookup table stored in memory associated with the vehicle 100. In some such examples, the lookup table used by the obstacle detection circuit 412 may be generated experimentally and / or analytically.In other examples, the obstacle detection circuit 412 may determine the range analytically (e.g., via an expected thermal expansion of components, via an expected viscosity change of a lubricant of the movable steering column assembly 200, etc.).

[0096] At block 806, the obstacle detection circuit 412 determines whether the electric motor parameter is within the electric motor parameter range. For example, the obstacle detection circuit 412 may determine whether the electric motor parameter (e.g., the current draw of the electric motor 212, etc.) is within the range determined by the obstacle detection circuit 412 during the execution of block 804. If the obstacle detection circuit 412 determines that the electric motor parameter is within the electric motor parameter range, operations 800 proceed to block 812. If the obstacle detection circuit 412 determines that the electric motor parameter is not within the electric motor parameter range (e.g., out of range, etc.), operations 800 proceed to block 808.

[0097] At block 808, the obstacle detection circuit 412 determines whether the electric motor 212 is experiencing an inrush current (e.g., the inrush current segments 529, 534 of Fig. 5, etc.). For example, the obstacle detection circuit 412 may determine whether the operating motor 212 was recently initiated by comparing the time since the system interface circuit 404 sent a command to the electric motor 212 (e.g., the execution of block 704, etc.) and a threshold time (e.g., 10 milliseconds, 50 milliseconds, 500 milliseconds, 1 second, etc.). Additionally or alternatively, the obstacle detection circuit 412 may determine whether the electric motor 212 is experiencing an inrush current in any other suitable manner (e.g., using previously received sensor data to determine whether an inrush current previously occurred during the current operation of the electric motor 212, etc.). If the obstacle detection circuit 412 determines that an inrush current is occurring, operations 800 proceed to block 812.If the obstacle detection circuit 412 determines that no inrush current is occurring, operations 800 proceed to block 810.

[0098] At block 810, the obstacle detection circuit 412 determines whether the movable steering column assembly 200 is near the end position. For example, the obstacle detection circuit 412 may determine whether the movable steering column assembly 200 is near a fully stowed position and / or a fully extended position. In some such examples, the obstacle detection circuit 412 may use the data from the first sensor 214 to determine the absolute position of the first portion 204. In some examples, increased current consumption is associated with a jam (e.g., the jam segment 532 of Fig. 5, the blocking segment 538 from Fig. 5 etc.) caused by the electric motor 212 pushing against a mechanical limit of the movable steering column assembly 200 (e.g., an end of a rack associated with the rack and pinion drive 306 of Fig. 3, etc.). If the obstacle detection circuit 412 determines that the movable steering column assembly 200 is near the end position, operations 800 proceed to block 812. If the obstacle detection circuit 412 determines that the movable steering column assembly 200 is near the end position, operations 800 proceed to block 814.

[0099] At block 812, the obstacle detection circuit 412 sets a flag indicating that the movable steering column assembly 200 has not encountered an obstacle. For example, the obstacle detection circuit 412 may make an indication in memory associated with the vehicle 100 that the movable steering column assembly 200 has not encountered an obstacle. At block 814, the obstacle detection circuit 412 sets a flag indicating that the movable steering column assembly 200 has encountered an obstacle. For example, the obstacle detection circuit 412 may make an indication in memory associated with the vehicle 100 that the movable steering column assembly 200 has encountered an obstacle. After executing block 812 or block 814, operations 800 end, and operations 700 return to block 716.

[0100] Fig. 9 is a block diagram of an example programmable circuit platform 900 structured to execute the example machine-readable instructions and / or the example operations of the Fig. 7 and Fig. 8 to execute and / or instantiate the steering wheel position control circuit 202 from Fig. 4. The programmable circuit platform 900 may be, for example, a server, a personal computer, a workstation, a self-learning machine (e.g., a neural network), a mobile device (e.g., a cellular phone, a smartphone, a tablet such as an iPad™), a personal digital assistant (PDA), an internet-enabled device, a DVD player, a CD player, a digital video recorder, a Blu-ray player, a game console, a headset (e.g., an augmented reality (AR) headset, a virtual reality (VR) headset, etc.), or other wearable device, or any other type of computing device and / or electronic device.

[0101] The programmable circuit platform 900 of the illustrated example includes a programmable circuit 912. The programmable circuit 912 of the illustrated example is hardware. For example, the programmable circuit 912 may be implemented by one or more integrated circuits, logic circuits, FPGAs, microprocessors, CPUs, GPUs, DSPs, or microcontrollers from any desired family or manufacturer. The programmable circuit 912 may be implemented by one or more semiconductor-based devices (e.g., silicon-based). In this example, the programmable circuit 912 implements the user interface circuit 402, the system interface circuit 404, the sensor interface circuit 406, the position determination circuit 408, the position comparison circuit 410, the obstacle detection circuit 412, and the speed adjustment circuit 414.

[0102] The programmable circuit 912 of the illustrated example includes a local memory 913 (e.g., a cache, registers, etc.). The programmable circuit 912 of the illustrated example is in communication via a bus 918 with a main memory 914, 916, which includes a volatile memory 914 and a non-volatile memory 916. The volatile memory 914 may be implemented by a synchronous dynamic random access memory (SDRAM), a dynamic random access memory (DRAM), a RAMBUS® dynamic random access memory (RAMBUS® RDRAM®), and / or any other type of RAM device. The non-volatile memory 916 may be implemented by a flash memory and / or any other desired type of memory device. Access to the main memory 914, 916 of the illustrated example is controlled by a memory controller 917.In some examples, the memory controller 917 may be implemented by one or more integrated circuits, logic circuits, microcontrollers from any desired family or manufacturer, or any other type of circuit to handle the flow of data to and from the main memory 914, 916.

[0103] The programmable circuit platform 900 of the illustrated example also includes an interface circuit 920. The interface circuit 920 may be implemented in hardware according to any type of interface standard, such as an Ethernet interface, a Universal Serial Bus (USB) interface, a Bluetooth® interface, a Near Field Communication (NFC) interface, a Peripheral Component Interconnect (PCI) interface, and / or a Peripheral Component Interconnect Express (PCIe) interface.

[0104] In the illustrated example, one or more input devices 922 are connected to the interface circuit 920. The input device(s) 922 enable a user (e.g., a human user, a machine user, etc.) to input data and / or commands into the programmable circuit 912. The input device(s) 922 may be implemented, for example, by an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a trackpad, a trackball, an isopoint device, and / or a speech recognition system.

[0105] One or more output devices 924 are also connected to the interface circuitry 920 of the illustrated example. The output device(s) 924 may be implemented, for example, by display devices (e.g., a light-emitting diode (LED), an organic light-emitting diode (OLED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, an in-place switching (IPS) display, a touchscreen, etc.), a tactile output device, a printer, and / or speakers. The interface circuitry 920 of the illustrated example thus typically includes a graphics driver card, a graphics driver chip, and / or graphics driver processor circuitry, such as a GPU.

[0106] The interface circuitry 920 of the illustrated example also includes a communication device, such as a transmitter, a receiver, a transceiver, a modem, a home gateway, a wireless access point, and / or a network interface, to support data exchange with external machines (e.g., computing devices of any type) over a network 926. Communication may occur, for example, via an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a non-line-of-sight wireless system, a line-of-sight wireless system, a cellular phone system, an optical connection, etc.

[0107] The programmable circuit platform 900 of the illustrated example also includes one or more mass storage disks or devices 928 for storing firmware, software, and / or data. Examples of such mass storage disks or devices 928 include magnetic storage devices (e.g., floppy disks, drives, HDDs, etc.), optical storage devices (e.g., Blu-ray disks, CDs, DVDs, etc.), RAID systems, and / or semiconductor storage disks or devices, such as flash memory devices and / or SSDs.

[0108] The machine-readable instructions 932, which are replaced by the machine-readable instructions from the Fig. 7 and Fig. 8 may be stored in the mass storage device 928, in the volatile memory 914, in the non-volatile memory 916, and / or on at least one permanent computer-readable storage medium, such as a CD or DVD, which may be removable.

[0109] Fig. 10 is a block diagram of an exemplary implementation of the programmable circuit 912 of Fig. 9. In this example, the programmable circuit 912 is made of Fig. 9 by a microprocessor 1000. For example, the microprocessor 1000 may be a general-purpose microprocessor (e.g., a general-purpose microprocessor circuit). The microprocessor 1000 executes some or all of the machine-readable instructions of the flowcharts from the Fig. 7 and Fig. 8 to switch the circuit off Fig. 2 as logic circuits to perform operations corresponding to these machine-readable instructions. In some such examples, the circuitry is Fig. 4 is instantiated by the hardware circuitry of the microprocessor 1000 in combination with the machine-readable instructions. For example, the microprocessor 1000 may be implemented by a multi-core hardware circuit, such as a CPU, a DSP, a GPU, an XPU, etc. Although it may include any number of example cores 1002 (e.g., 1 core), the microprocessor 1000 of this example is a multi-core semiconductor device including N cores. The cores 1002 of the microprocessor 1000 may operate independently or cooperate to execute machine-readable instructions. For example, machine code corresponding to a firmware program, an embedded software program, or a software program may be executed by one of the cores 1002 or may be executed by multiple cores 1002 simultaneously or at different times.In some examples, the machine code corresponding to the firmware program, the embedded software program, or the software program is divided into threads and executed in parallel by two or more of the cores 1002. The software program may correspond to some or all of the machine-readable instructions and / or operations represented by the flowcharts of FIG. Fig. 7 and Fig. 8 are shown.

[0110] The cores 1002 may communicate via a first example bus 1004. In some examples, the first bus 1004 may be implemented by a communication bus to effect communication associated with one or more of the cores 1002. For example, the first bus 1004 may be implemented by at least one of an Inter-Integrated Circuit (I2C) bus, a Serial Peripheral Interface (SPI) bus, a PCI bus, or a PCIe bus. Additionally or alternatively, the first bus 1004 may be implemented by any other type of computational or electrical bus. The cores 1002 may receive data, instructions, and / or signals from one or more external devices through an example interface circuit 1006. The cores 1002 may output data, instructions, and / or signals to the one or more external devices through the interface circuit 1006.Although the cores 1002 of this example include an example local memory 1020 (e.g., a Level 1 (L1) cache that may be divided into an L1 data cache and an L1 instruction cache), the microprocessor 1000 also includes an example shared memory 1010 that may be shared by the cores (e.g., Level 2 (L2) cache) for high-speed access to data and / or instructions. Data and / or instructions may be transferred (e.g., shared) by writing to and / or reading from the shared memory 1010. The local memory 1020 of each of the cores 1002 and the shared memory 1010 may be part of a hierarchy of memory devices that may include multiple levels of cache memory and main memory (e.g., main memory 914, 916 of FIG. Fig. 9). Typically, higher memory levels in the hierarchy have lower access times and smaller storage capacities than lower memory levels. Changes in the different levels of the cache hierarchy are managed (e.g., coordinated) by a cache coherence policy.

[0111] Each core 1002 may be referred to as a CPU, DSP, GPU, etc., or any other type of hardware circuitry. Each core 1002 includes a control unit circuit 1014, an arithmetic and logic (AL) circuit (sometimes referred to as ALU) 1016, a plurality of registers 1018, the local memory 1020, and a second example bus 1022. Other structures may be present. For example, each core 1002 may include a vector unit circuit, a single instruction multiple data (SIMD) unit circuit, a load / store unit (LSU) circuit, a branch / jump unit circuit, a floating-point unit (FPU) circuit, etc. The control unit circuit 1014 includes semiconductor-based circuits structured to control (e.g., coordinate) data movement within the corresponding core 1002.The AL circuit 1016 includes semiconductor-based circuitry structured to perform one or more mathematical and / or logical operations on the data within the corresponding core 1002. The AL circuit 1016 of some examples performs integer-based operations. In other examples, the AL circuit 1016 also performs floating-point operations. In still other examples, the AL circuit 1016 may include a first AL circuit that performs integer-based operations and a second AL circuit that performs floating-point operations. In some examples, the AL circuit 1016 may be referred to as an arithmetic logic unit (ALU).

[0112] Registers 1018 are semiconductor-based structures for storing data and / or instructions, such as results of one or more of the operations performed by the AL circuitry 1016 of the corresponding core 1002. For example, registers 1018 may include (a) vector register, (a) SIMD register, (a) general-purpose register, (a) flag register, (a) segment register, (a) machine-specific register, (a) instruction pointer register, (a) control register, (a) error recovery register, (a) memory management register, (a) machine check register, etc. Registers 1018 may be arranged in a bank, as shown in Fig. 10. Alternatively, the registers 1018 may be organized in any other arrangement, format, or structure, such as distributed throughout the core 1002, to reduce access time. The second bus 1022 may be implemented by at least one of an I2C bus, an SPI bus, a PCI bus, or a PCIe bus.

[0113] Each core 1002 and / or more generally, the microprocessor 1000 may include additional and / or alternative structures to those shown and described above. For example, one or more clock circuits, one or more power supplies, one or more power gates, one or more cache home agents (CHAs), one or more converged / common mesh stops (CMS), one or more shifters (e.g., shift levers), and / or other circuits may be present. The microprocessor 1000 is a semiconductor device fabricated to include many transistors interconnected to implement the above-described structures in one or more integrated circuits (ICs) contained in one or more packages.

[0114] Microprocessor 1000 may include and / or cooperate with one or more accelerators (e.g., accelerator circuitry, hardware accelerator, etc.). In some examples, accelerators are implemented by logic circuitry to perform certain tasks faster and / or more efficiently than can be performed by a general-purpose processor. Examples of accelerators include ASICs and FPGAs, such as those discussed herein. A GPU, a DSP, and / or other programmable device may also be an accelerator. Accelerators may be located on microprocessor 1000, in the same die package as microprocessor 1000, and / or in one or more packages separate from microprocessor 1000.

[0115] Fig. 11 is a block diagram of another exemplary implementation of the programmable circuit 912 of Fig. 9. In this example, the programmable circuit 912 is implemented by an FPGA circuit 1100. For example, the FPGA circuit 1100 may be implemented by an FPGA. The FPGA circuit 1100 may, for example, be used to perform operations otherwise performed by the exemplary microprocessor 1000 of the Fig. 10 executing corresponding machine-readable instructions. However, once configured, the FPGA circuit 1100 instantiates the operations and / or functions corresponding to the machine-readable instructions in hardware and can thus often perform the operations / functions faster than they could be performed by a general-purpose microprocessor executing the corresponding software.

[0116] In particular, in contrast to the microprocessor 1000 described above, Fig. 10 (which is a general-purpose device that can be programmed to carry out any or all of the machine-readable instructions represented by the flowcharts in the Fig. 7 and Fig. 8, but whose interconnections and logic circuits are fixed once they are manufactured) the FPGA circuit 1100 of the example from Fig. 11 Interconnections and logic circuits that can be configured, structured, programmed and / or interconnected in different ways after manufacture, for example to perform some or all of the machine-readable operations / functions according to the machine-readable instructions represented by the flow charts of the Fig. 7 and Fig. 8. In particular, the FPGA circuit 1100 can be thought of as an arrangement of logic gates, interconnections, and switches. The switches can be programmed to change how the logic gates are connected to each other by the interconnections, effectively forming one or more dedicated logic circuits (unless and until the FPGA circuit 1100 is reprogrammed). The configured logic circuits enable the logic gates to interact in different ways to perform different operations on data received by an input circuit. These operations may correspond to some or all of the instructions (e.g., software and / or firmware) represented by the flowcharts from the Fig. 7 and Fig. 8. The FPGA circuit 1100 may be configured and / or structured to perform some or all of the operations / functions according to the machine-readable instructions of the flowchart of the Fig. 7 and Fig. 8 as dedicated logic circuits for performing the operations / functions corresponding to these software instructions in a dedicated manner analogous to an ASIC. Therefore, the FPGA circuit 1100 can perform the operations / functions corresponding to some or all of the machine-readable instructions from the Fig. 7 and Fig. 8, faster than the universal microprocessor can execute them.

[0117] In the example from Fig. 11, the FPGA circuit 1100 is configured and / or structured in response to being programmed (and / or reprogrammed one or more times) based on a binary file. In some examples, the binary file may be compiled and / or generated based on instructions in a hardware description language (HDL), such as Lucid, Very High Speed ​​Integrated Circuits (VHSIC) Hardware Description Language (VHDL), or Verilog. For example, a user (e.g., a human user, a machine user, etc.) may write code or a program corresponding to one or more operations / functions in an HDL; the code / program may be translated into a low-level programming language as needed; and the code / program (e.g., the low-level programming language code / program) may (e.g.,by a compiler, a software application, etc.) into the binary file. In some examples, the FPGA circuit 1100 may be composed of . Fig. 11 access and / or load the binary file to cause the FPGA circuit 1100 to Fig. 11 is configured and / or structured to perform the one or more operations / functions. For example, the binary file may be represented by a bit stream (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), data (e.g., computer-readable data, machine-readable data, etc.), and / or machine-readable instructions specific to the FPGA circuit 1100 of Fig. 11 are accessible to configure and / or structure the FPGA circuit 1100 from Fig. 11 or of (a) part(s) thereof.

[0118] In some examples, the binary file is compiled, built, transformed, and / or otherwise output by a unified software platform used to program FPGAs. For example, the unified software platform may translate first instructions (e.g., code or a program) corresponding to one or more operations / functions in a high-level programming language (e.g., C, C++, Python, etc.) into second instructions corresponding to the one or more operations / functions in an HDL. In some such examples, the binary file is compiled, built, and / or otherwise output by the unified software platform based on the second instructions. In some examples, the FPGA circuit 1100 may be comprised of Fig. 11 access and / or load the binary file to cause the FPGA circuit 1100 to Fig. 11 is configured and / or structured to perform the one or more operations / functions. For example, the binary file may be represented by a bit stream (e.g., one or more computer-readable bits, one or more machine-readable bits, etc.), data (e.g., computer-readable data, machine-readable data, etc.), and / or machine-readable instructions specific to the FPGA circuit 1100 of Fig. 11 are accessible to configure and / or structure the FPGA circuit 1100 from Fig. 11 or of (a) part(s) thereof.

[0119] The FPGA circuit 1100 of the Fig. 11 includes an example input / output (I / O) circuit 1102 for acquiring and / or outputting data to an example configuration circuit 1104 and / or external hardware 1106. For example, the configuration circuit 1104 may be implemented by an interface circuit that may acquire a binary file, which may be implemented by a bit stream, data, and / or machine-readable instructions, to configure the FPGA circuit 1100 or a portion thereof. In some such examples, the configuration circuit 1104 may acquire the binary file from a user, a machine (e.g., a hardware circuit (e.g., a programmed or dedicated circuit) that may implement an artificial intelligence / machine learning (AI / ML) model to create the binary file), etc., or any combination thereof).In some examples, the external hardware 1106 may be implemented by external hardware circuitry. For example, the external hardware 1106 may be implemented by the microprocessor 1000 of FIG. Fig. 10 must be implemented.

[0120] The FPGA circuit 1100 also includes an arrangement of an exemplary logic gate circuit 1108, a plurality of exemplary configurable interconnects 1110, and an exemplary memory circuit 1112. The logic gate circuit 1108 and the configurable interconnects 1110 are configurable to perform one or more operations / functions corresponding to at least some of the machine-readable instructions from the Fig. 7 and Fig. 8, and / or to instantiate other desired operations. The Fig. The logic gate circuit 1108 shown in Figure 11 is fabricated in blocks or groups. Each block includes semiconductor-based electrical structures that can be configured into logic circuits. In some examples, the electrical structures include logic gates (e.g., AND gates, OR gates, NOR gates, etc.) that provide basic building blocks for logic circuits. Electrically controllable switches (e.g., transistors) are present within each of the logic gate circuits 1108 to enable configuration of the electrical structures and / or the logic gates to form circuits for performing desired operations / functions. The logic gate circuit 1108 may include other electrical structures, such as lookup tables (LUTs), registers (e.g., flip-flops or latches), multiplexers, etc.

[0121] The configurable interconnect lines 1110 of the illustrated example are conductive paths, traces, vias, or the like that may include electrically controllable switches (e.g., transistors) whose state may be changed by programming (e.g., using an HDL instruction language) to enable or disable one or more connections between one or more of the logic gate circuits 1108 to program desired logic circuits.

[0122] The memory circuit 1112 of the illustrated example is structured to store the result(s) of one or more operations performed by corresponding logic gates. The memory circuit 1112 may be implemented by registers or the like. In the illustrated example, the memory circuit 1112 is distributed among the logic gate circuit 1108 to facilitate access and increase execution speed.

[0123] The exemplary FPGA circuit 1100 of the Fig. 11 also includes an example dedicated operations circuit 1114. In this example, dedicated operations circuit 1114 includes special-purpose circuitry 1116 that can be called to implement frequently used functions to avoid the need to program those functions in-place. Examples of such special-purpose circuitry 1116 include memory (e.g., DRAM) control circuitry, PCIe control circuitry, clock circuitry, transceiver circuitry, memory, and multiplier-accumulator circuitry. Other types of special-purpose circuitry may be present. In some examples, FPGA circuitry 1100 may also include an example general-purpose programmable circuitry 1118, such as an example CPU 1120 and / or an example DSP 1122. Other general-purpose programmable circuitry 1118 may be present additionally or alternatively, such as a GPU, an XPU, etc.which can be programmed to perform other operations.

[0124] Even if the Fig. 10 and Fig. 11 two exemplary implementations of the programmable circuit 912 from Fig. 9, many other approaches are contemplated. For example, an FPGA circuit may implement an on-board CPU, such as one or more of the exemplary CPU 1120 of Fig. 10. Therefore, the programmable circuit 912 can be Fig. 9 additionally by combining at least the exemplary microprocessor 1000 from Fig. 10 and the exemplary FPGA circuit 1100 from Fig. 11. In some such hybrid examples, one or more cores 1002 may be Fig. 10 execute a first part of the machine-readable instructions represented by the flowcharts from the Fig. 7 and Fig. 8 to perform (a) first operation(s) / function(s), the FPGA circuit 1100 of Fig. 11 be configured and / or structured to perform (a) second operation(s) / function(s) corresponding to a second part of the machine-readable instructions represented by the flowcharts from the Fig. 7 and Fig. 8, and / or an ASIC may be configured and / or structured to perform third operation(s) / function(s) corresponding to a third part of the machine-readable operation(s) / function(s) represented by the flowcharts from the Fig. 7 and Fig. 8 are reproduced.

[0125] It is understood that some or all of the circuits of the Fig. 4 can thus be instantiated at the same or at different times. For example, the same and / or different part(s) of the microprocessor 1000 can be Fig. 10 may be programmed to execute part(s) of machine-readable instructions simultaneously and / or at different times. In some examples, the same and / or different part(s) of the FPGA circuit 1100 may be Fig. 11 be configured and / or structured to perform operations / functions corresponding to (a) part(s) of machine-readable instructions at the same and / or different times.

[0126] In some examples, some or all of the circuits from Fig. 4, for example, be instantiated in one or more threads that execute concurrently and / or in series. For example, the microprocessor 1000 may consist of Fig. 10 machine-readable instructions in one or more threads that execute concurrently and / or in series. In some examples, the FPGA circuit 1100 may be comprised of Fig. 11 may be configured and / or structured to perform operations / functions simultaneously and / or in series. Furthermore, in some examples, some or all of the circuitry of Fig. 4 within one or more virtual machines and / or one or more containers running on the microprocessor 1000 from Fig. 10 are executed, must be implemented.

[0127] In some examples, the programmable circuit 912 may be Fig. 9 in one or more packages. For example, the microprocessor 1000 may be Fig. 10 and / or the FPGA circuit 1100 from Fig. 11 in one or more packages. In some examples, an XPU may be implemented by the programmable circuit 912 of Fig. 9, which may be present in one or more packages. For example, the XPU may be a CPU (e.g., the microprocessor 1000 of Fig. 10, the CPU 1120 from Fig. 11 etc.) in one housing, a DSP (e.g. the DSP 1122 from Fig. 11) in another package, a GPU in yet another package and an FPGA (e.g. the FPGA circuit 1100 from Fig. 11) in yet another housing.

[0128] Disclosed herein are methods and apparatus for controlling stowable steering wheels. Further examples and combinations thereof include the following: Example 1 includes an apparatus comprising a steering column assembly including a sensor, a first portion, and a second portion movable relative to the first portion, machine-readable instructions, and programmable circuitry for at least one of instantiating or executing the machine-readable instructions to move the first portion relative to the second portion, determining that the first portion has encountered an obstacle based on an output of the sensor, and stopping movement of the first portion upon determining that the first portion has encountered the obstacle. Example 2 includes the apparatus of Example 1, wherein the sensor is a first sensor, the output is a first sensor output, and the programmable circuit is for at least one of instantiating or executing the machine-readable instructions to determine a first estimated position of the first portion based on the first sensor output, determine a second estimated position of the first portion based on a second sensor output of a second sensor, and determine whether a difference between the first estimated position and the second estimated position meets a threshold, and upon determining that the difference does not meet the threshold, generate an alert indicating a discrepancy in the steering column assembly. Example 3 includes the device of Example 2, wherein the first sensor is a mechanical sensor disposed on at least one of the first portion or the second portion. Example 4 includes the apparatus of Example 2, further including an electric motor to move the first portion relative to the second portion, and wherein the second sensor is a Hall sensor associated with the electric motor. Example 5 includes the apparatus of Example 1, further including an electric motor, and wherein the programmable circuit is to determine whether the steering column assembly has encountered the obstacle by instantiating or executing at least one of the machine-readable instructions to determine whether a parameter of the electric motor is within a parameter range. Example 6 includes the apparatus of Example 5, wherein the programmable circuit is for at least one of instantiating or executing the machine-readable instructions to determine the parameter range based on a temperature of the steering column assembly. Example 7 includes the device of Example 5, wherein the parameter is a current consumption of the electric motor. Example 8 includes a persistent machine-readable storage medium comprising instructions to cause a programmable circuit to move at least a first portion of a steering column assembly relative to a second portion of the steering column assembly, determine that the first portion has encountered an obstacle based on a sensor output, and stop movement of the first portion upon determining that the first portion has encountered the obstacle. Example 9 includes the persistent machine-readable storage medium of Example 8, wherein the sensor output is a first sensor output of a first sensor, and the programmable circuit is to determine a first estimated position of the first portion based on the first sensor output, determine a second estimated position of the first portion based on a second sensor output of a second sensor, and determine whether a difference between the first estimated position and the second estimated position meets a threshold, and upon determining that the difference does not meet the threshold, generate an alert indicating a discrepancy in the steering column assembly. Example 10 includes the persistent machine-readable storage medium of Example 9, wherein the first sensor is a mechanical sensor disposed on at least one of the first portion or the second portion. Example 11 includes the persistent machine-readable storage medium of Example 9, wherein the second sensor is a Hall effect sensor associated with an electric motor of the steering column assembly. Example 12 includes the persistent machine-readable storage medium of Example 8, wherein the programmable circuit is to determine whether the steering column assembly has encountered the obstacle by determining whether a parameter of an electric motor of the steering column assembly is within a parameter range. Example 13 includes the persistent machine-readable storage medium of Example 12, wherein the programmable circuit is to determine the parameter range based on a temperature of the steering column assembly. Example 14 includes the permanent machine-readable storage medium of Example 12, wherein the parameter is a current consumption of the electric motor. Example 15 includes a method comprising moving a first portion of a steering column assembly relative to a second portion of the steering column assembly, determining, based on a sensor output, that the first portion has encountered an obstacle, and upon determining that the first portion has encountered the obstacle, stopping movement of the first portion. Example 16 includes the method of Example 15, wherein the sensor output is a first sensor output of a first sensor, and further including determining, based on the first sensor output, a first estimated position of the first portion, determining, based on a second sensor output of a second sensor, a second estimated position of the first portion, and determining whether a difference between the first estimated position and the second estimated position meets a threshold, and upon determining that the difference does not meet the threshold, generating an alert indicating a discrepancy in the steering column assembly. Example 17 includes the method of Example 16, wherein the first sensor is a mechanical sensor disposed on at least one of the first portion or the second portion, and the second sensor is a Hall sensor associated with an electric motor of the steering column assembly. Example 18 includes the method of Example 15, wherein determining whether the steering column assembly has encountered the obstacle includes determining whether a parameter of an electric motor of the steering column assembly is within a parameter range. Example 19 includes the method of Example 18, further including determining the parameter range based on a temperature of the steering column assembly. Example 20 includes the method of Example 18, where the parameter is a current draw of the electric motor. The following claims are hereby incorporated by reference into this Detailed Description. While certain exemplary systems, devices, articles of manufacture, and methods have been disclosed herein, the scope of this specification is not so limited. On the contrary, this specification covers all systems, devices, articles of manufacture, and methods that properly fall within the scope of the claims of this specification.

Claims

[1] Device comprising: a steering wheel assembly that includes: a sensor; a first section; and a second portion movable relative to the first portion; machine-readable instructions; and a programmable circuit for at least one of instantiating or executing the machine-readable instructions to: moving the first section relative to the second section; Determining, based on an output of the sensor, that the first section has encountered an obstacle; and after determining that the first section has encountered the obstacle, stopping movement of the first section. [2] The apparatus of claim 1, wherein the sensor is a first sensor, the output is a first sensor output, and the programmable circuit is for at least one of instantiating or executing the machine-readable instructions to: Determining, based on the first sensor output, a first estimated position of the first section; Determining, based on a second sensor output of a second sensor, a second estimated position of the first section; and Determining whether a difference between the first estimated position and the second estimated position meets a threshold; and after determining that the difference does not meet the threshold, generating a warning indicating a discrepancy in the steering column assembly. [3] The device of claim 2, wherein the first sensor is a mechanical sensor disposed on at least one of the first portion or the second portion. [4] The device of claim 2 or 3, further comprising an electric motor for moving the first portion relative to the second portion, and wherein the second sensor is a Hall sensor associated with the electric motor. [5] The apparatus of claim 1, further including an electric motor, and wherein the programmable circuit is to determine whether the steering column assembly has encountered the obstacle by instantiating or executing the machine-readable instructions of at least one of to determine whether a parameter of the electric motor is within a parameter range. [6] The apparatus of claim 5, wherein the programmable circuit is for at least one of instantiating or executing the machine-readable instructions to determine the parameter range based on a temperature of the steering column assembly. [7] The device according to claim 5, wherein the parameter is a current consumption of the electric motor. [8] Method comprising: Moving a first portion of a steering column assembly relative to a second portion of the steering column assembly; Determining, based on a sensor output, that the first section has encountered an obstacle; and after determining that the first section has encountered the obstacle, stopping movement of the first section. [9] The method of claim 8, wherein the sensor output is a first sensor output of a first sensor, and further comprising Determining, based on the first sensor output, a first estimated position of the first section; Determining, based on a second sensor output of a second sensor, a second estimated position of the first section; and Determining whether a difference between the first estimated position and the second estimated position meets a threshold; and after determining that the difference does not meet the threshold, generating a warning indicating a discrepancy in the steering column assembly. [10] The method of claim 9, wherein the first sensor is a mechanical sensor disposed on at least one of the first portion or the second portion. [11] The method of claim 9, wherein the second sensor is a Hall sensor associated with an electric motor of the steering column assembly. [12] The method of claim 9, wherein determining whether the steering column assembly has encountered the obstacle includes determining whether a parameter of an electric motor of the steering column assembly is within a parameter range. [13] The method of claim 12, further including determining the parameter range based on a temperature of the steering column assembly. [14] The method of claim 12, wherein the parameter is a current consumption of the electric motor. [15] A permanent machine-readable storage medium containing instructions which, when executed, cause a processor to perform the method defined in any one of claims 8 to 14.

Citation Information

Cited By

  • Steering device for vehicle

    US12735021B2