Method and apparatus for controlling stowable steering wheel

By using sensors and programmable circuits in the steering wheel system, precise control of the steering wheel position and movement and obstacle detection are achieved, solving the problems of inaccurate steering wheel control and inability to detect obstacles in the existing technology, and improving driving safety. .

CN119329598APending Publication Date: 2025-01-21FORD GLOBAL TECH LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202410945443.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-07-21
Filing Date
2024-07-15
Publication Date
2025-01-21

AI Technical Summary

Technical Problem

The prior art is difficult to achieve robust and precise control of the position and movement of the retractable steering wheel, especially in the event of an obstacle, ineffective stopping the movement of the steering wheel.

Method used

A system including sensors, programmable circuits and machine-readable instructions is used to detect the position and motion status of the steering wheel through the sensors, and the programmable circuit is used to instantiate and execute instructions to achieve precise position control of the steering wheel and obstacle detection.

Benefits of technology

It achieves robust and precise control of the position and movement of the steering wheel, and can effectively stop the movement of the steering wheel when an obstacle is detected, improving driving safety.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119329598A_ABST
    Figure CN119329598A_ABST
Patent Text Reader

Abstract

A method and apparatus for controlling a stowable steering wheel is disclosed herein. An example apparatus disclosed herein includes: a steering column assembly including: a sensor; a first portion; the second part can move relative to the first part; a machine readable instruction; and programmable circuitry to instantiate or execute at least one of 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 after determining that the first portion has encountered the obstacle.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to retractable steering wheels and, more particularly, to methods and apparatus for controlling a retractable steering wheel. Background Art

[0002] The steering wheel is configured to change the direction of travel of the vehicle based on the rotation of the steering wheel. For example, the driver rotates the wheel in a given direction to cause the pivot joint system to interact, thereby converting the rotational motion of the steering wheel into the pivotal motion of one or more running wheels. Known steering systems include rack and pinion systems. Rack and pinion systems rely on a gear (e.g., a pinion) at the base of the steering column that translates the rack from one side to the other, thereby transmitting the motion to the running wheels. Modern vehicle steering wheels can be configured to retract toward the dashboard to allow additional cabin space. Summary of the invention

[0003] An example device disclosed herein includes: a steering column assembly, the steering column assembly comprising: a sensor; a first part; and a second part, the second part being movable relative to the first part; machine-readable instructions; and a programmable circuit, the programmable circuit being used to instantiate or execute at least one of the machine-readable instructions to: move the first part relative to the second part; determine, based on an output of the sensor, that the first part has encountered an obstacle; and stop movement of the first part after determining that the first part has encountered the obstacle.

[0004] Example computer-readable media disclosed herein include instructions that, when executed, cause a programmable circuit to at least: move a first portion of a steering column assembly relative to a second portion of the steering column assembly; determine, based on sensor output, that the first portion has encountered an obstacle; and, after determining that the first portion has encountered the obstacle, stop movement of the first portion.

[0005] An example method disclosed herein includes: moving a first portion of a steering column assembly relative to a second portion of the steering column assembly; determining that the first portion has encountered an obstacle based on sensor output; and stopping movement of the first portion after determining that the first portion has encountered the obstacle. BRIEF DESCRIPTION OF THE DRAWINGS

[0006] Figure 1 A vehicle is depicted in which examples disclosed herein may be implemented.

[0007] Figure 2 Yes Figure 1 Schematic diagram of the steering system with a steering wheel.

[0008] Figure 3yes Figure 1 A perspective view of a steering system of a vehicle.

[0009] Figure 4 yes Figure 1 0026] A block diagram of an example implementation of a steering wheel position controller circuit.

[0010] Figure 5 are example current, steering wheel position, and motor position graphs during normal operation.

[0011] Figure 6 are example current, steering wheel position, and motor position graphs when an obstacle is encountered during operation.

[0012] Figure 7 and Figure 8 Depicted are flowcharts representing example machine-readable instructions and / or example operations that may be executed, instantiated, and / or performed by example programmable circuits to implement Figure 4 Steering wheel position controller circuit.

[0013] Fig. 9 is a block diagram of an example processing platform including programmable circuitry structured to execute, instantiate and / or perform example machine-readable instructions and / or perform Figure 7 and 8 Example operations to implement Figure 4 Steering wheel position controller circuit.

[0014] Fig.10 yes Fig. 9 A block diagram of an example implementation of a programmable circuit.

[0015] Fig.11 yes Fig. 9 A block diagram of another example implementation of a programmable circuit.

[0016] Generally, the same reference numbers will be used to refer to the same or like parts throughout the drawings and accompanying written description.The drawings are not necessarily drawn to scale.

[0017] As used in this patent, the statement that any part (e.g., a layer, film, region, area, or plate) is in any way located on another part (e.g., positioned on, located on, disposed on, or formed on, etc.) indicates that the referenced part is in contact with the other part, or the referenced part is above the other part with one or more intermediate parts located therebetween. DETAILED DESCRIPTION

[0018] In recent years, the range of positions of the steering wheel of a retractable steering system has increased. The steering column of a retractable steering system can move the steering wheel toward or away from the operator (e.g., away from or toward the dashboard, etc.) based on operating conditions and / or operator preferences. Specifically, the steering column can move the steering wheel closer to the dashboard in the retracted position to provide more space for the operator when the vehicle is not being driven. For example, the retracted position provides more space for getting in and out of the driver's seat. In addition, the retracted position of the steering wheel provides additional space for working, entertainment (e.g., media presented on a screen of the dashboard, etc.), eating and sleeping in the driver's seat when the vehicle is closed or parked. When the operator of the vehicle is ready to drive, the steering column can move the steering wheel away from the dashboard and toward the driver (e.g., from the retracted position to the operating position, etc.). Therefore, the movement of the steering column and the steering wheel can provide additional space when needed, while also enabling the operator to control the steering wheel in a comfortable position while driving.

[0019] The examples disclosed herein include a retractable steering wheel system that provides robust and precise control of the position and movement of the steering wheel. The examples disclosed herein determine the position of the steering column and / or the steering wheel via at least two independent technologies to determine whether the position of the steering column is accurate. The example first technology 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 position of the steering wheel does not meet a similarity threshold, the system can generate a warning for the operator of the vehicle. The example second technology described herein uses a Hall effect sensor disposed on an electric motor of the steering system to determine the position of the steering column and / or the steering wheel. The examples disclosed herein use pulse width modulation (PWM) to modify the rotation speed of the steering wheel based on the determined position of the steering wheel and the command 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 the operator) during movement, and stops the movement of the steering wheel in response thereto.

[0020] As used herein, the orientation of some features is described with reference to the transverse axis, vertical axis, and longitudinal axis of the vehicle associated with the feature. As used herein, the longitudinal axis of the vehicle is parallel to the centerline of the vehicle. The terms "rear" and "front" are used to refer to the direction closer to the rear of the vehicle and the front of the vehicle along the longitudinal axis, respectively. As used herein, the vertical axis of the vehicle is perpendicular to the ground on which the vehicle is located. As used herein, unless otherwise specified, the term "above" describes the relationship of two parts relative to the earth and the vertical axis. If the second part has at least a portion between the earth and the first part, the first part is above the second part. Similarly, as used herein, when the first part is closer to the earth than the second part, the first part is "below" the second part. As used herein, the transverse axis of the vehicle is perpendicular to the longitudinal axis and the vertical axis, and is generally parallel to the axles of the vehicle.

[0021] As described above, the first part can be above or below the second part in one or more of the following forms: there are other parts between them, there are no other parts between them, the first part and the second part touch, or the first part and the second part are not in direct contact with each other. As used in this patent, the statement that any part (e.g., a layer, film, region, area, or plate) is in any way located on another part (e.g., positioned on it, located on it, disposed on it, or formed on it, etc.) indicates that the referenced part is in contact with the other part, or the referenced part is above the other part, with one or more intermediate parts located between them.

[0022] As used herein, unless otherwise indicated, connection references (e.g., attachment, coupling, connection, and coupling) may include intermediate members between the elements referenced by the connection reference and / or relative movement between these elements. Thus, a connection reference does not necessarily infer that two elements are directly connected and / or are in a fixed relationship to each other. As used herein, stating that any part is "in contact with" another part is defined to mean that there is no intermediate part between the two parts.

[0023] Unless otherwise specifically stated, descriptors such as "first," "second," "third," etc., used herein do not in any way impose or otherwise indicate any meaning of priority, physical order, arrangement in a list, and / or ordering, but are merely used as labels and / or arbitrary names to distinguish elements to facilitate understanding of the disclosed examples. In some examples, the descriptor "first" may be used to refer to an element in the detailed description, while a different descriptor such as "second" or "third" may be used in the claims to refer to the same element. In such instances, it should be understood that such descriptors are only used to clearly identify these elements in the context of the discussion (e.g., within the claims), where the elements, for example, may otherwise share the same name.

[0024] As used herein, "approximately" and "about" modify their subject matter / values ​​to recognize the potential for 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 will be understood by one of ordinary skill in the art. For example, unless otherwise stated in the following description, "approximately" and "about" may indicate that such dimensions may be within a tolerance range of + / - 10%.

[0025] As used herein, "substantially real time" refers to occurring in a nearly instantaneous manner, recognizing that there may be real-world delays for computation time, transmission, etc. Therefore, unless otherwise specified, "substantially real time" refers to real time + / - 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 collinearity, a substantially perpendicular relationship is within three degrees of perpendicularity, a substantially parallel relationship is within three degrees of parallelism, etc.).

[0026] As used herein, the phrase "communicate" (including variations thereof) encompasses direct communication and / or indirect communication through one or more intermediate components, and does not require direct physical (e.g., wired) communication and / or continuous communication, but also includes selective communication at periodic intervals, scheduled intervals, non-periodic intervals and / or one-time events.

[0027] As used herein, "programmable circuitry" is defined to include: (i) one or more special purpose circuits (e.g., application specific circuits (ASICs)) that are structured to perform specific operations and include 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 semiconductor-based circuits that can be programmed with instructions to perform specific functions and / or operations and include one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors). Examples of programmable circuitry include programmable microprocessors, such as a central processing unit (CPU) that can execute a first instruction to perform one or more operations and / or functions, a graphics processor unit (GPU) that can be programmed with a second instruction to cause a configuration and / or structure for instantiating one or more operations and / or functions corresponding to the first instruction, a digital signal processor (DSP) that can execute a first instruction to perform one or more operations and / or functions, an XPU, a network processing unit (NPU), one or more microcontrollers that can execute a first instruction 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 circuits (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 combinations thereof) and orchestration technology (e.g., an application programming interface (API)) that can assign computing tasks to any one or more types of the multiple types of programmable circuits that are most suitable and available to perform the computing tasks.

[0028] Figure 1 An example vehicle 100 is shown implemented in accordance with the teachings of the present disclosure. Figure 1 In the illustrated example, the example vehicle 100 includes an example steering wheel 104, an example instrument panel 106 (eg, instrument panel, dashboard, etc.), an example passenger compartment 108, and an example temperature sensor 110. Figure 1 In the illustrated example, the example vehicle 100 is a sport utility vehicle (SUV). In other examples, the vehicle 100 may be any type of vehicle (e.g., a van, a convertible, a sedan, a pickup truck, a semi-trailer truck, a minivan, a rail vehicle, an all-terrain vehicle (ATV), a boat, construction equipment, farming equipment, etc.). Figure 1 In the illustrated example, the vehicle 100 is a dual axle vehicle. In other examples, the vehicle 100 may have additional axles and / or additional wheels. The example vehicle 100 may have a body-on-frame split configuration and / or a unibody configuration.

[0029] The steering wheel 104 is movable (e.g., translatable, slidable, 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 in the passenger compartment 108 enables the driver to more easily enter and exit the vehicle 100 and / or perform activities such as reading, writing, sleeping, or eating when the vehicle 100 is parked. In the operating position, the steering wheel 104 can be positioned farther away from the dashboard 106 and closer to the rear of the vehicle 100 to enable the driver to operate (e.g., rotate, etc.) the steering wheel 104 while being in a comfortable position.

[0030] 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 internal temperature of the vehicle 100 (e.g., a temperature within a 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 conditioner of the vehicle 100, etc.). In some examples, the temperature sensor 110 may be disposed under 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 a steering system associated with the steering wheel 104 and / or an ambient temperature of the vehicle 100.

[0031] Figure 2 Yes Figure 1 A schematic diagram of an example movable steering column assembly 200 with a steering wheel 104 is shown. Figure 2 In the illustrated example, the example movable steering column assembly 200 is controlled by the example steering wheel position controller circuit 202. Figure 2 In the illustrated example, the movable steering column assembly 200 includes an example first portion 204, an example second portion 206, an example housing 208, and an example motor 212. Figure 2 In the illustrated example, the example movable steering column assembly 200 includes an example first sensor 214 and an example second sensor 216, both of which communicate with the steering wheel position controller circuit 202 via an example bus 220. Figure 2 In the illustrated example, the movable steering column assembly 200 includes an example feedback actuator assembly 222 .

[0032] The first portion 204 and the second portion 206 are components of a steering column of the vehicle 100. The example first portion 204 is a movable portion of a movable steering column assembly 200. In some examples, the first portion 204 is an upper cover of the movable steering column assembly 200, and the second portion 206 is a lower cover of the movable steering column assembly 200. The first portion 204 is rigidly coupled to the steering wheel 104, which enables the first portion 204 to move with the steering wheel 104 during operation. The example second portion 206 is mechanically coupled to the first portion 204 and enables relative movement thereof. In some examples, the example second portion 206 is a lower cover of the movable steering column assembly 200. For example, the first portion 204 can be coupled to the second portion 206 via an example rack system, which enables the first portion 204 to be moved into and out of the second portion 206 (e.g., stored in the second portion 206, etc.). In some such examples, the first portion 204 is telescopically coupled to the second portion 206. The following description will be made in conjunction with the description of the embodiment of the present invention. Figure 3 Example configurations of first portion 204 , second portion 206 , and housing 208 are described.

[0033] The motor 212 applies 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 motor 212 can 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 motor 212 is a rotary motor. In some such examples, the movable steering column assembly 200 can include a gear assembly that converts the torque generated by the motor 212 into a linear translation of the first portion 204 relative to the second portion 206. In some examples, the motor 212 can be powered via one or more batteries of the vehicle 100 (e.g., a starting, lighting, and ignition (SLI) battery of the vehicle 100, a battery of a battery electric vehicle (BEV), etc.).

[0034] The first sensor 214 measures the position of the first portion 204 relative to the second portion 206. For example, the first sensor 214 can 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 can be implemented by any other suitable sensor (e.g., one or more optical sensors, one or more potentiometers, one or more linear Hall effect sensors, one or more magnetostrictive sensors, one or more linear encoders, one or more inductive sensors, etc.). In some examples, because the second portion 206 is fixedly coupled to the housing 208, which is fixedly coupled to the vehicle 100 (e.g., coupled to the frame of the vehicle 100, coupled to the body of the vehicle 100, etc.), the first sensor 214 outputs the absolute position of the first portion 204 within the vehicle 100. In some such examples, the output of the first sensor 214 can be used by the steering wheel position controller circuit 202 to determine the absolute position of the first portion 204 within the vehicle 100. The following is in conjunction with Figure 5 and Figure 6 An example output of the first sensor 214 is described.

[0035] The second sensor 216 measures the position of the motor 212. For example, the second sensor 216 may include a Hall effect sensor that measures each rotation of the motor 212 (e.g., each pulse of the motor 212, etc.). In other examples, the second sensor 216 may be implemented by any other suitable sensor that measures the rotation of the 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 motor 212 (e.g., a single rotation of the motor 212 causes a fixed amount of movement of the first portion 204, etc.), the output of the second sensor 216 can be used to monitor the position of the first portion 204 relative to the previous position of the first portion 204. In some such examples, the steering wheel position controller circuit 202 can use the output of the second sensor 216 to determine the relative position of the first portion 204. The following is combined with Figure 5 and Figure 6 An example output of the second sensor 216 is described.

[0036] exist Figure 2In the illustrated example of , the steering wheel position controller circuit 202, the motor 212, and the sensors 214, 216 communicate via a bus 220. In some examples, the bus 220 may be implemented by a controller area network (CAN) bus of the vehicle 100. In other examples, the bus 220 may be implemented by any other suitable system. In other examples, the bus 220 may not be present. In some such examples, the steering wheel position controller circuit 202, the motor 212, and / or the sensors 214, 216 may communicate via a wireless connection.

[0037] exist Figure 2 In the illustrated example of , the movable steering column assembly 200 includes a feedback actuator assembly 222. The feedback actuator assembly 222 provides tactile feedback to an operator of the movable steering column assembly 200. In some such examples, the feedback actuator assembly 222 may be used in a steer-by-wire system to compensate for the lack of tactile feedback associated with the mechanical connection between the steering wheel 104 of the vehicle 100 and the steering gear. In some examples, the motor 212 may be a component of the feedback actuator assembly 222. In some such examples, the feedback actuator assembly 222 may not be present. In some such examples, the steering wheel position controller circuit 202 may be a component of an electronic control unit (ECU) associated with the feedback actuator assembly 222.

[0038] Figure 3 yes Figure 1 100 of vehicles Figure 2 A perspective view of the movable steering column assembly 200 is shown. Figure 3 In the example shown, the movable steering column assembly 200 includes Figure 2 The first part 204, Figure 2 The second part 206, Figure 2 The housing 208 , the example steering shaft 301 , the example first actuator 302 , the example second actuator 304 , and the example gear system 306 .

[0039] During operation, the first actuator 302 translates the first portion 204 relative to the second portion 206. Figure 3 In the example shown, the first actuator 302 includes Figure 2 The motor 212 and the example lead screw 308. The gear system 306 facilitates the relative movement of the first portion 204 and the second portion 206. In some examples, the gear system 306 can be implemented by a rack and pinion system that couples the first portion 204 and the second portion 206. In some examples, Figure 2 The first sensor 214 may be implemented by a sensor (eg, a mechanical sensor, etc.) coupled to the gear system 306 .

[0040] During operation, rotation of the motor 212 causes rotation of the lead screw 308, which causes operation of the gear system 306 and relative movement of the first portion 204 and the second portion 206. In other examples, the lead screw 308 and the gear system 306 may not be present. In some such examples, the motor 212 may cause relative movement of the first portion 204 and the second portion 206 by any other suitable means. Rotation of the motor 212 causes operation of the first actuator 302 and longitudinal movement of the first portion 204 relative to the second portion 206. In the example shown, the relationship between the rotation distance of the motor 212 and the displacement of the first portion 204 relative to the second portion 206 is mechanically fixed (e.g., non-variable, etc.) and is based on the gear transmission of the lead screw 308 and the gear system 306. To this end, the steering wheel position controller circuit 202 may monitor the rotation of the motor 212 (e.g., via Figure 2 a second sensor 216, etc.) to determine the position of the first part 204 relative to the second part 206.

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

[0042] The steering shaft 301 is rotatably coupled within the first portion 204. Figure 3 In the illustrated example, 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. To this end, 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, the distance between the steering wheel 104 and the dashboard 106, etc.). Figure 3 In the example shown, the steering shaft 301 includes an example end 310. In some examples, a steering wheel (e.g., Figure 1 and Figure 2 The steering wheel 104 of the movable steering column assembly 200 can be coupled to the end 310. During operation, the steering shaft 301 can rotate within the first portion 204 and is otherwise fixed to the first portion 204. In some such examples, when the first portion 204 moves relative to the second portion 206, the steering shaft 301 moves with the first portion 204, which supports the control of the position of the steering wheel 104 via operation of the movable steering column assembly 200.

[0043] Figure 4 yes Figure 2 The steering wheel position controller circuit 202 is used to control Figure 2 and Figure 3 A block diagram of an example implementation of the operation of the movable steering column assembly 200 is shown. Figure 4 In the illustrated example, the steering wheel position controller circuit 202 includes an example user interface circuit 402, an example system interface circuit 404, an example sensor interface circuit 406, an example position determiner circuit 408, an example position comparator circuit 410, an example obstacle detector circuit 412, and an example speed adjuster circuit 414. The steering wheel position controller circuit 202 may be instantiated (e.g., create an instance, form, concretize, implement, etc.) by a programmable circuit, such as a central processing unit (CPU) that executes a first instruction. Additionally or alternatively, the steering wheel position controller circuit 202 may be instantiated (e.g., create an instance, form, concretize, implement, etc.) by (i) an application specific integrated circuit (ASIC) and / or (ii) a field programmable gate array (FPGA), which is structured and / or configured to perform operations corresponding to the first instruction in response to executing a second instruction. It should be understood that Figure 4 Some or all of the circuits may thus be instantiated at the same or different times. Figure 4 Some or all of the circuit system of can be instantiated in one or more threads that are executed simultaneously on hardware and / or serially on hardware, for example. In addition, in some examples, Figure 4 Some or all of the circuits may be implemented by microprocessor circuits executing instructions and / or FPGA circuits performing operations to implement one or more virtual machines and / or containers.

[0044] The user interface circuit 402 accesses input from an interface of the vehicle 100. For example, the user interface circuit 402 may access a request to move the longitudinal 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 release the steering wheel 104, etc.). In some examples, the user interface circuit 402 may detect input via the steering wheel 104 (e.g., via a button disposed thereon, etc.), and / or input via an interface of the instrument panel 106 (e.g., via a button on the instrument panel 106, via a touch screen of the 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., ignition of the vehicle 100, adjustment of the driver's seat of the vehicle 100, etc.). In some examples, the user interface circuit 402 may detect the request to move the longitudinal position of the steering wheel 104 from an autonomous driving system of the vehicle 100, etc.

[0045] In some examples, the user interface circuit 402 can generate an alert indicating that a discrepancy has occurred in the movable steering column assembly 200. For example, the user interface circuit 402 can generate an alert based on a command from the position comparator circuit 410. Additionally or alternatively, the user interface circuit 402 can generate an alert in response to a command from the obstacle detector circuit 412. In some examples, the user interface circuit 402 can 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 audio 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., via tactile feedback of a seat of the vehicle 100, via tactile feedback of the steering wheel 104, etc.). In some examples, the user interface circuit 402 can generate an alert indicating that the vehicle 100 requires maintenance to resolve the detected discrepancy. In some examples, user interface circuitry 402 is instantiated by programmable circuitry that executes user interface instructions and / or is configured to perform operations, such as by Figure 7 and Figure 8 The flowchart represents those operations.

[0046] In some examples, the steering wheel position controller circuit 202 includes a means for interfacing with a user. For example, the means for interfacing with a user can be implemented by the user interface circuit 402. In some examples, the user interface circuit 402 can be implemented by a programmable circuit (such as Fig. 9 For example, the user interface circuit 402 may be instantiated by Fig.10 of executing machine-executable instructions (such as those consisting of at least Figure 7 In some examples, the user interface circuit 402 may be instantiated by a hardware logic circuit that may be implemented by an ASIC, an XPU, or Fig.11 The FPGA circuit 1100 is implemented, and the FPGA circuit is configured and / or structured to perform operations corresponding to machine-readable instructions. In addition or alternatively, the user interface circuit 402 can be instantiated by any other combination of hardware, software and / or firmware. For example, the user interface circuit 402 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), and the one or more hardware circuits are configured and / or structured to perform some or all of the machine-readable instructions, and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.

[0047] System interface circuit 404 controls Figure 3 The first actuator 302 and / or Figure 3 The second actuator 304 is operated to Figure 1 and Figure 2 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 enable Figure 3 The first actuator 302 and Figure 2 and Figure 3 The system interface circuit 404 may control the operation of the motor 212 to cause the first portion 204 of the movable steering column assembly 200 to longitudinally translate 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 (e.g., an electrical signal, etc.) to the first actuator 302 to begin rotating the 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 stop operating the actuator 302 in response to the obstacle detector circuit 412 detecting an obstacle and / or the position determiner circuit 408 determining that the target position has been reached. In some examples, the system interface circuit 404 is instantiated by a programmable circuit that executes system interface instructions and / or is configured to perform operations, such as by Figure 7 and Figure 8 The flowchart represents those operations.

[0048] In some examples, the steering wheel position controller circuit 202 includes means for interfacing with a movable steering system. For example, the means for interfacing with a movable steering system may be implemented by the system interface circuit 404. In some examples, the system interface circuit 404 may be implemented by a programmable circuit such as Fig. 9 For example, the system interface circuit 404 can be instantiated by Fig.10 of executing machine-executable instructions (such as those consisting of at least Figure 7 In some examples, the system interface circuit 404 may be instantiated by a hardware logic circuit that may be implemented by an ASIC, an XPU, or Fig.11The system interface circuit 404 may be implemented by an FPGA circuit 1100 configured and / or structured to perform operations corresponding to 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 circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are configured and / or structured to perform some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.

[0049] The sensor interface circuit 406 accesses, requests, and / or receives sensor data from sensors associated with the vehicle 100. For example, the sensor interface circuit 406 may receive sensor data from Figure 1 The temperature sensor 110, Figure 2 The sensor interface circuit 406 may receive sensor data from the first sensor 214 and / or the second sensor 216 of the vehicle 100. 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 form (e.g., a human-readable form, etc.). In some examples, the sensor interface circuit 406 is instantiated by a programmable circuit that executes sensor interface circuit instructions and / or is configured to perform operations, such as by Figure 7 and Figure 8 The flowchart represents those operations.

[0050] In some examples, the steering wheel position controller circuit 202 includes means for sensor interfacing. For example, the means for determining can be implemented by the sensor interface circuit 406. In some examples, the sensor interface circuit 406 can be implemented by a programmable circuit such as Fig. 9 For example, the sensor interface circuit 406 can be instantiated by Fig.10 of executing machine-executable instructions (such as those consisting of at least Figure 7 Box 706 and Figure 8 In some examples, the sensor interface circuit 406 can be instantiated by a hardware logic circuit, which can be implemented by an ASIC, an XPU, or Fig.11The sensor interface circuit 406 may be implemented by an FPGA circuit 1100 configured and / or structured to perform operations corresponding to 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 circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), the one or more hardware circuits being configured and / or structured to execute some or all of the machine-readable instructions, and / or to execute some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.

[0051] The position determiner circuit 408 determines the position of the first portion 204 of the movable steering column assembly 200 and / or the steering wheel 104. For example, the position determiner circuit 408 can use sensor data from the first sensor 214 and / or the second sensor 216 accessed by the sensor interface circuit 406 to determine the position of the first portion 204 relative to the second portion 206. For example, the position determiner circuit 408 can 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 determiner circuit 408 can use sensor information from the second sensor 216 (e.g., a Hall effect sensor coupled to the motor 212, etc.) to determine the position. In some such examples, the position determiner circuit 408 can determine the position of the first portion 204 based on a starting position of the first portion 204 and an amount of rotation (e.g., number of times, etc.) of the motor 212. In some examples, the position determiner circuit 408 is instantiated by a programmable circuit that executes position determiner instructions and / or is configured to perform operations, such as by Figure 7 and Figure 8 The flowchart represents those operations.

[0052] In some examples, the steering wheel position controller circuit 202 includes means for determining the position of a portion of the steering system. For example, the means for determining the position of a portion of the steering system can be implemented by the position determiner circuit 408. In some examples, the position determiner circuit 408 can be implemented by a programmable circuit such as Fig. 9 For example, the position determiner circuit 408 can be instantiated by Fig.10 of executing machine-executable instructions (such as those consisting of at least Figure 7In some examples, the location determiner circuit 408 may be instantiated by a hardware logic circuit that may be implemented by an ASIC, an XPU, or Fig.11 The position determiner circuit 408 may be implemented by an FPGA circuit 1100 configured and / or structured to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the position determiner circuit 408 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the position determiner circuit 408 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are configured and / or structured to execute some or all of the machine-readable instructions and / or to execute some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.

[0053] The position comparator circuit 410 determines whether the difference between the estimated positions meets a threshold. For example, the position comparator circuit 410 can compare the first estimated position and the second estimated position to determine the absolute difference between the estimated positions and / or the relative difference between the estimated position values. In some examples, the threshold can be based on user preferences, manufacturer settings, and / or geometric properties of the vehicle 100. In some such examples, the position comparator circuit 410 can access the threshold from a memory associated with the vehicle 100. Additionally or alternatively, the threshold can be an absolute value (e.g., 10 millimeters, 1 centimeter, etc.). In other examples, the threshold can be a percentage (e.g., the maximum percentage difference between the first estimated position and the second estimated position, etc.). In some examples, the position comparator circuit 410 is instantiated by a programmable circuit that executes a position comparator instruction and / or is configured to perform operations, such as by Figure 7 and Figure 8 The flowchart represents those operations.

[0054] In some examples, the steering wheel position controller circuit 202 includes means for comparing positions. For example, the means for comparing positions can be implemented by a position comparator circuit 410. In some examples, the position comparator circuit 410 can be implemented by a programmable circuit such as Fig. 9 For example, the position comparator circuit 410 can be instantiated by Fig.10 of executing machine-executable instructions (such as those consisting of at least Figure 7In some examples, the position comparator circuit 410 can be instantiated by a hardware logic circuit that can be implemented by an ASIC, an XPU, or Fig.11 The position comparator circuit 410 may be implemented by an FPGA circuit 1100 configured and / or structured to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the position comparator circuit 410 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the position comparator circuit 410 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), the one or more hardware circuits being configured and / or structured to perform some or all of the machine-readable instructions, and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.

[0055] The example obstacle detector circuit 412 determines whether the movable steering column assembly 200 encounters an obstacle during operation. For example, the obstacle detector circuit 412 can determine whether the steering wheel 104 has contacted an object (e.g., cargo, an operator of the vehicle 100, etc.) in the passenger compartment 108 of the vehicle 100 during a stowed or deployed movement. In some examples, the obstacle detector circuit 412 can detect an obstacle by determining whether a parameter of the motor 212 is within an expected range of parameters associated with normal, non-stalled operation of the motor 212. For example, the obstacle detector circuit 412 can determine whether the current draw of the motor 212 is within a draw current range of the motor 212. Additionally or alternatively, the obstacle detector circuit 412 can determine whether a motor parameter (e.g., output motor force, motor power, motor torque, etc.) proportional to the draw current of the motor 212 is within a certain range. In some examples, if the motor parameter is not within the range, the obstacle detector circuit 412 can determine that an obstacle has been encountered and cause the system interface circuit 404 to stop the operation of the movable steering column assembly 200.

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

[0057] In some examples, if the parameter exceeds the parameter range, the obstacle detector circuit 412 can determine an inrush of current for the motor 212, and if the motor 212 is experiencing an inrush of current, there is no indication that an obstacle has been present. Additionally or alternatively, if the parameter exceeds the parameter range, the obstacle detector circuit 412 can determine if the motor 212 is stalled due to the end of travel of the movable steering column assembly 200, and if the motor 212 is experiencing such a stall, there is no indication that an obstacle has been present. In some examples, the obstacle detector circuit 412 is instantiated by a programmable circuit that executes obstacle detector instructions and / or is configured to perform operations, such as by Figure 7 and Figure 8 The flowchart represents those operations.

[0058] In some examples, the steering wheel position controller circuit 202 includes means for detecting obstacles. For example, the means for detecting obstacles can be implemented by the obstacle detector circuit 412. In some examples, the obstacle detector circuit 412 can be implemented by a programmable circuit (such as Fig. 9 For example, the obstacle detector circuit 412 can be instantiated by Fig.10 of executing machine-executable instructions (such as those consisting of at least Figure 7 Box 716 and / or Figure 8 The obstacle detector circuit 412 may be instantiated by a hardware logic circuit that may be implemented by an ASIC, an XPU, or Fig.11The obstacle detector circuit 412 may be implemented by an FPGA circuit 1100 configured and / or structured to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the obstacle detector circuit 412 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the obstacle detector circuit 412 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are configured and / or structured to execute some or all of the machine-readable instructions and / or to execute some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.

[0059] The speed adjuster circuit 414 adjusts the translation speed of the steering wheel 104. For example, the speed adjuster circuit 414 may adjust the translation speed of the first portion 204 to be adjusted based on the current position of the steering wheel 104, user preferences, and / or manufacturer settings. In some examples, the speed adjuster circuit 414 may adjust the translation speed via pulse width modulation (PWM). In some examples, the speed adjuster circuit 414 may adjust the translation speed to a speed between a lower speed value (e.g., approximately 11 millimeters per second, etc.) and a higher speed value (e.g., approximately 44 millimeters per second, etc.). In some examples, the speed adjuster circuit 414 may increase the translation speed when the steering wheel 104 is not close to the target position, and / or decrease the translation speed when the steering wheel 104 is close to the target position. In some examples, the speed adjuster circuit 414 may adjust the translation speed to reduce the loudness and / or sound fluctuations 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 adjuster circuit 414 is instantiated by a programmable circuit that executes speed adjuster instructions and / or is configured to perform operations, such as by Figure 7 and Figure 8 The flowchart represents those operations.

[0060] In some examples, the steering wheel position controller circuit 202 includes means for adjusting the speed of the movable steering system. For example, the means for adjusting the speed of the movable steering system can be implemented by the speed adjuster circuit 414. In some examples, the speed adjuster circuit 414 can be implemented by a programmable circuit such as Fig. 9 For example, the speed regulator circuit 414 can be instantiated by Fig.10 of executing machine-executable instructions (such as those consisting of at least Figure 7In some examples, the speed adjuster circuit 414 can be instantiated by a hardware logic circuit, which can be implemented by an ASIC, an XPU, or Fig.11 The speed adjuster circuit 414 may be implemented by an FPGA circuit 1100 configured and / or structured to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the speed adjuster circuit 414 may be instantiated by any other combination of hardware, software, and / or firmware. For example, the speed adjuster circuit 414 may be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are configured and / or structured to perform some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.

[0061] Although Figure 4 The implementation is shown in Figure 2 The steering wheel position controller circuit 202 is an example of a Figure 4 One or more of the elements, processes and / or devices shown in the drawings may be combined, divided, rearranged, omitted, eliminated and / or implemented in any other manner. In addition, Figure 4 The example user interface circuit 402, the example system interface circuit 404, the example sensor interface circuit 406, the example position determiner circuit 408, the example position comparator circuit 410, the example obstacle detector circuit 412, the speed regulator circuit 414, and / or the more general example steering wheel position controller circuit 202 may be implemented solely by hardware, or by hardware in combination with software and / or firmware. Thus, for example, any of the example user interface circuit 402, the example system interface circuit 404, the example sensor interface circuit 406, the example position determiner circuit 408, the example position comparator circuit 410, the example obstacle detector circuit 412, the speed regulator circuit 414, and / or the more general example steering wheel position controller circuit 202 may be implemented by programmable circuitry in combination with machine-readable instructions (e.g., firmware or software), processor circuitry, analog circuitry, digital circuitry, logic circuitry, a programmable processor, a programmable microcontroller, a graphics processing unit (GPU), a digital signal processor (DSP), an ASIC, a programmable logic device (PLD), and / or a field programmable logic device (FPLD) (such as an FPGA). Furthermore, Figure 4 The example steering wheel position controller circuit 202 may include one or more components, processes and / or devices in addition to or in place of Figure 4Those shown in, and / or may include more than one of any or all of the shown elements, processes and devices.

[0062] Figure 5 The diagram shows the movement of the vehicle during full-stroke operation (e.g., moving from a fully extended position to a fully stowed position, etc.). Figure 2 and Figure 3 The example relationship 500 includes an example first graph 502, an example second graph 504, an example third graph 506, and an example fourth graph 507. Figure 5 In the illustrated example of FIG. 5 , the graphs 502 , 504 , 506 have an example x-axis 508 . Figure 5 In the illustrated example, first graph 502, second graph 504, third graph 506, and fourth graph 507 have example first y-axis 510, example second y-axis 512, example third y-axis 514, and example fourth y-axis 515, respectively.

[0063] The x-axis 508 measures the independent variable time. Figure 5 In the illustrated example, 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 running time between T1 and T4 depends on the speed at which the movable steering column assembly 200 translates and the total travel of the movable steering column assembly 200. The x-axis 508 can have any suitable measurement units (e.g., milliseconds, seconds, etc.). The duration between the corresponding times 516, 518, 520, 522 is for illustrative purposes only. In other examples, the distances between the times 516, 518, 520, 522 can be different (e.g., the distance between the second time 518 and the third time 520, etc.).

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

[0065] The second y-axis 512 of the second graph 504 measures the current draw of the motor 212. Figure 5 In the example shown, the second y-axis 512 is at i 最小 and i belonging to the maximum rated current of the motor 212 最大 In some examples, the second y-axis 512 can have any suitable current units (e.g., amperes, etc.). The third y-axis 514 and the fourth y-axis 515 of the third graph 506 measure Figure 2 The output of the second sensor 216. Figure 5 In the example shown, the third y-axis 514 and the fourth y-axis 515 are at V respectively belonging to the minimum voltage output by the second sensor 216. 最小 and V belonging to the maximum voltage output by the second sensor 216 最大 In some examples, third y-axis 514 and / or fourth y-axis 515 can have any suitable units of voltage (eg, volts, etc.) and / or another suitable quantity representing sensor output.

[0066] exist Figure 5 In the illustrated example of FIG. 5 , the first graph 502 includes an example line 524 that tracks the movement of the first portion 204 between receiving a translation command at a first time 516 and ending operation of the motor 212 at a fourth time 522. For example, at the first time 516, the steering wheel position controller circuit 202 (e.g., via Figure 4 The user interface circuit 402 of the embodiment of the present invention can detect the command to move the movable steering column assembly 200 from the fully stowed position to the fully extended position and send a command to operate the motor 212 (e.g., via Figure 4 system interface circuit 404, etc.). Figure 5 In the illustrated example of , at the second time 518, the motor 212 begins to rotate in a steady state, which causes the first portion 204 and the steering wheel 104 to translate at a constant speed until a third time 520. Figure 5 In the illustrated example, at a third time 520, the movable steering column assembly 200 reaches the end of travel and the motor 212 stalls. At a fourth time 522, the steering wheel position controller circuit 202 detects that the first portion 204 has reached the target position (e.g., a fully stowed position, etc.) and stops operation of the motor 212 (e.g., de-energizes the motor 212, etc.).

[0067] exist Figure 5In the illustrated example of , the second graph 504 includes an example first line 526 and an example second line 528, which track the current draw of the motor 212 of the first portion 204 at the first temperature and the second temperature, respectively, between receiving the translation command at the first time 516 and ending the operation of the motor 212 at the fourth time 522. The first line 526 includes an example first inrush section 529, an example first steady-state section 530, and an example first stall section 532. The second line 528 includes an example second inrush section 534, an example second steady-state section 536, and an example second stall section 538.

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

[0069] Inrush segments 529, 534 are portions of lines 524, 526 that correspond to surges in current draw caused by motor 212 being turned on. Inrush segments 529, 534 are periods of increased current draw compared to the current draw associated with steady-state segments 530, 536, respectively. Figure 5 In the illustrated example, the inrush current segments 529, 534 of lines 524, 526 occur at T1 when operation of the motor 212 begins, and end at T2 when the current draw of the motor 212 has stabilized and reached a steady-state condition. Figure 5 In the illustrated example, the shape of the inrush flow sections 529, 534 is generally parabolic. In other examples, the inrush flow sections 529, 534 may have any other suitable shape, depending on the configuration of the motor 212 (e.g., if the motor 212 is an AC motor, the inrush flow section will be sinusoidal, etc.).

[0070] Steady-state segments 530, 536 are portions of lines 524, 526 corresponding to current draw during steady-state operation of motor 212. Figure 5 In the example shown, the steady-state segments 530, 536 of the lines 524, 526 begin at T2 after the surge segments 529, 534, respectively, and end at T3 when the movable steering column assembly 200 reaches the end of travel. Figure 5 In the illustrated example, the current draw values ​​of the steady-state segments 530, 536 can be used to generate an example first motor parameter range 539 and an example second motor parameter range 540. For example, a manufacturer may monitor the current draw of the motor 212 at multiple temperatures. In some such examples, a lookup table may be generated based on the current draw of the motor 212 at each of the multiple temperatures. In some such examples, the lookup table may relate the temperature of the movable steering column assembly 200 to the expected current draw range of the motor 212 at the temperature. Additionally or alternatively, the lookup table may be analytically generated based on the 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 material of the movable steering column assembly 200, etc. It should be understood that the current draw of the motor 212 includes noise (not shown). Therefore, the motor parameter ranges 539, 540 represent current draw bands (including noise) corresponding to steady-state operation of the motor 212 at normal and cold temperatures, respectively.

[0071] Stall sections 532, 538 correspond to the current draw of motor 212 when motor 212 is stalled. Figure 5 In the example shown in FIG. 5 , the stall sections 532 , 538 of lines 524 , 526 , respectively, begin at T3 when the movable steering column assembly 200 reaches the end of travel, and the steady-state sections 530 , 536 end. Figure 5 In the example shown in FIG. 5 , the stall sections 532 , 538 of the lines 524 , 526 end at T4 when the motor 212 stops operating (e.g., power is removed, etc.). The stall sections 532 , 538 occur because the movable steering column assembly 200 approaches the end of travel (e.g., the pinion of the gear system 306 approaches the end of the rack of the gear system 306, etc.), which inhibits the translation of the first portion 204 and the rotation of the motor 212. However, in Figure 5 In the illustrated example, the motor 212 continues to apply increasing amounts of torque to the first portion 204, which increases the current draw of the motor 212. Lines 524, 526 end at T4, when the steering wheel position controller circuit 202 detects that the movable steering column assembly 200 has reached the end of travel and stops operation of the motor 212.

[0072] exist Figure 5In the illustrated example, the third graph 506 and the fourth graph 507 include an example first line 542 and an example second line 544 that track the output of the second sensor 216 during translation between the first portion 204 receiving a translation command at a first time 516 and the end of operation of the motor 212 at a fourth time 522. In some examples, the first line 542 corresponds to the operation of the movable steering column assembly 200 at a normal operating temperature (e.g., 70 degrees Fahrenheit, etc.). In some such examples, the first line 542 corresponds to the output of the second sensor 216 during the current draw of the motor 212 represented by the first line 526 of the second graph 504. In the illustrated example, the second line 544 corresponds to the operation of the movable steering column assembly 200 at a cold operating temperature (e.g., 0 degrees Fahrenheit, etc.). In some examples, a decrease in viscosity of a lubricant used by the movable steering column assembly 200 and / or thermal contraction at cold temperatures can slow down the operation of the motor 212. In some such examples, second line 544 corresponds to the output of second sensor 216 during the current draw of motor 212 represented by second line 528 of second graph 504. Figure 5 In the illustrated example, the slower rotation of the 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 .

[0073] exist Figure 5 In the example shown in 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, first line 542 and / or second line 544 may be depicted as sine waves. Each rotation of motor 212 corresponds to a wave (e.g., a pulse) of lines 542, 544. At second time 518, motor 212 begins to rotate, and lines 542, 544 begin to rotate at V 最大 With V 最小 At a third time 520, the motor 212 begins to stall and the rotation slows, which increases the width of each oscillation of the lines 542, 544. Between the third time 520 and the fourth time 522, as the motor 212 continues to stall, the rotation of the motor slows 212, which gradually increases the width and spacing of the lines 542, 544 until the fourth time 522. At the fourth time 522, the steering wheel position controller circuit 202 detects that the movable steering column assembly 200 has reached the end of travel and stops the operation of the motor 212, and the line 542 ends.

[0074] It should be appreciated that the graphs 502, 504, 506, the axes 508, 510, 512, 514, 515, and the lines 524, 526, 528, 542, 544 are included for illustrative purposes only and are not drawn to scale. For example, portions of the lines 524, 526, 528, 542, 544 may be longer, shorter, and / or enlarged for illustrative purposes. It should be appreciated that the duration 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, due to the deceleration operation of the motor 212, the duration between the second time 518 and the third time 520 may be longer at colder temperatures (e.g., corresponding to the second line 528 of the second graph 504 and the second line 544 of the fourth graph 507, etc.) than at warmer temperatures (e.g., corresponding to the first line 526 of the second graph 504 and the first line 542 of the third graph 506, etc.).

[0075] Figure 6 During operation when encountering obstacles Figure 2 and Figure 3 An example illustration of an example relationship 600 between parameters of the movable steering column assembly 200. The example relationship 600 includes an example first graph 602, an example second graph 604, and an example third graph 606. The graphs 602, 604, 606 have Figure 5 The x-axis line 508. Figure 6 In the example shown in FIG. 1 , the first graph 602 , the second graph 604 , and the third graph 606 have Figure 5 A first y-axis 510, Figure 5 The second y-axis 512 and Figure 5 The third y-axis 514. Figure 6 In the illustrated example of , an example first time 608 ( T1 ), an example second time 610 ( T2 ), an example third time 612 ( T3 ), and an example fourth time 614 ( T4 ) are labeled on the x-axis 508 .

[0076] exist Figure 6 In the illustrated example of FIG. 6 , the first graph 602 includes an example line 616 that tracks the movement of the first portion 204 between receiving a translation command at a first time 608 and de-energizing the motor 212 at a fourth time 614. For example, at the first time 608, the steering wheel position controller circuit 202 (e.g., via Figure 4 The user interface circuit 402 of the system 200 may detect a command to move the movable steering column assembly 200 from the fully stowed position to the fully deployed position and send a command to operate the motor 212 (e.g., via the system interface circuit 404, etc.). Figure 6In the illustrated example of , at a second time 610, the motor 212 begins to rotate in a steady-state condition, which causes the first portion 204 and the steering wheel 104 to translate at a constant speed until a third time 612. At the third time 612, the movable steering column assembly 200 encounters an obstacle (e.g., a person, cargo, etc.), which causes the motor 212 to begin to stall before the movable steering column assembly 200 has reached the target position. At a fourth time 614, the steering wheel position controller circuit 202 (e.g., the obstacle detector circuit 412, etc.) detects the obstacle and de-energizes the motor 212, which causes the first portion 204 to stop moving.

[0077] exist Figure 6 In the example shown in FIG. 6 , the second graph 604 includes an example line 618 similar to the example line 618 before the third time 612. Figure 5 The first line 526. Figure 6 In the illustrated example of FIG. 6 , at a third time 612, the motor 212 begins to stall before the movable steering column assembly 200 reaches the target position. As the motor 212 stalls, the current draw of the motor 212 increases. At a fourth time 614, the line 618 exceeds the upper boundary of the motor parameter range 539, which is detected by the steering wheel position controller circuit 202 (e.g., via the obstacle detector circuit 412, etc.) and identified as the movable steering column assembly 200 encountering an obstacle.

[0078] exist Figure 6 In the illustrated example, the third graph 606 includes an example line 620 similar to the example line 620 before the third time 612. Figure 5 Line 542. Figure 6 In the illustrated example, at the third time 612, the motor 212 begins to stall before the movable steering column assembly 200 reaches the target position. When the motor 212 stalls, the rotation of the motor 212 slows down, which widens the oscillation width of the line 620. Between the third time 612 and the fourth time 614, the resistance of the encountered obstacle causes the rotation of the motor 212 to slow down and / or stall, which gradually increases the width and spacing of the line 620 until the fourth time 614. At the fourth time 614, the steering wheel position controller circuit 202 (e.g., the obstacle detector circuit 412, etc.) detects the obstacle and de-energizes the motor 212, which stops the first portion 204 from moving.

[0079] exist Figure 6In the illustrated example of , the steering wheel position controller circuit 202 detects an obstacle encountered at a third time 612 via the current draw of the motor 212 exceeding the first motor parameter range 539 when not experiencing an inrush current (e.g., the behavior of the line 618 between the first time 608 and the line 620, etc.) or approaching the end of travel of the movable steering column assembly 200. In other examples, other motor parameters proportional to the current draw may be used in place of the current draw of the steering wheel position controller circuit 202 (e.g., the torque of the motor 212, the power of the motor 212, etc.). Additionally or alternatively, the steering wheel position controller circuit 202 may detect an obstacle in other ways. For example, the steering wheel position controller circuit 202 may detect via the first sensor 214 that the translation of the first portion 204 slows down and / or stops at the third time 612. For example, the steering wheel position controller circuit 202 may detect an increased oscillation width of the line 620 at the third time 612.

[0080] It should be understood that the graphs 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 longer, shorter, and / or enlarged for illustrative purposes.

[0081] Figure 7 and Figure 8 A flowchart representing example machine readable instructions that may be executed by a programmable circuit to implement and / or instantiate Figure 4 The steering wheel position controller circuit 202 and / or representation may be implemented and / or instantiated by a programmable circuit. Figure 4 The machine-readable instructions may be one or more executable programs or a portion of one or more executable programs executed by a programmable circuit, such as the following in conjunction with Fig. 9 The programmable circuit 912 shown in the example programmable circuit platform 900 discussed above and / or may be a combination of the following Fig.10 and / or Fig.11 The example programmable circuit (e.g., FPGA) discussed herein performs one or more functions or a portion of a function. In some examples, the machine-readable instructions cause an operation, task, etc. to be performed and / or executed in an automated manner in the real world. As used herein, "automated" means without human involvement.

[0082] The program may be embodied in instructions (e.g., software and / or firmware) stored in one or more non-transitory computer-readable and / or machine-readable storage media (such as cache memory, magnetic storage devices or disks (e.g., floppy disks, hard disk drives (HDDs), etc.), optical storage devices or disks (e.g., Blu-ray discs, compact disks (CDs), digital versatile disks (DVDs), etc.), redundant arrays of independent disks (RAID), registers, ROM, solid-state drives (SSDs), SSD memory, non-volatile memory (e.g., electrically erasable programmable read-only memory (EEPROM), flash memory, etc.), volatile memory (e.g., any type of random access memory (RAM), etc.), and / or any other storage device or storage disk. The non-transitory computer-readable and / or machine-readable storage media may be embodied in instructions (e.g., software and / or firmware) stored in one or more non-transitory computer-readable and / or machine-readable storage media (e.g., cache memory, magnetic storage devices or disks (e.g., floppy disks, hard disk drives (HDDs), etc.), optical storage devices or disks (e.g., Blu-ray discs, compact disks (CDs), digital versatile disks (DVDs), etc.), redundant arrays of independent disks (RAID), registers, ROM, solid-state drives (SSDs), SSD memory, non-volatile memory (e.g., electrically erasable programmable read-only memory (EEPROM), flash memory, etc.), volatile memory (e.g., any type of random access memory (RAM), etc.), and / or any other storage device or storage disk. The instructions of the reading medium may be programmed and / or executed by programmable circuits located 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 rather than programmable circuits, and / or embodied in dedicated hardware. 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, a 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 facilitate communications between a server and an endpoint client hardware device). Similarly, a non-transitory computer-readable storage medium may include one or more media. In addition, although reference is made to Figure 7 and Figure 8The flowchart shown in describes an example program, but many other methods of implementing the example steering wheel position controller circuit 202 may be used instead. For example, the execution order of the blocks of the flowchart may be changed, and / or some of the blocks described may be changed, eliminated, or combined. Additionally or alternatively, any or all of the blocks in the flowchart may be implemented by one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuits, FPGAs, ASICs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are structured to perform corresponding operations without executing software or firmware. The programmable circuits may be distributed at different network locations and / or local to one or more hardware devices (e.g., single-core processors (e.g., single-core CPUs), multi-core processors (e.g., multi-core CPUs, XPUs, etc.). For example, the programmable circuit may be a CPU and / or FPGA located in the same package (e.g., the same integrated circuit (IC) package or in two or more separate housings), one or more processors in a single machine, multiple processors distributed on multiple servers in a server rack, multiple processors distributed on one or more server racks, etc., and / or any combination thereof.

[0083] The machine-readable instructions described herein may be stored in one or more of a compressed format, an encrypted format, a segmented format, a compiled format, an executable format, a packaged format, etc. The 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.), etc.) or a data structure (e.g., stored as portions of instructions, code, representation of code, etc.) that can be used to create, manufacture, and / or generate machine-executable instructions. For example, the machine-readable instructions may be segmented and stored on one or more storage devices, disks, and / or computing devices (e.g., servers) located in the same or different locations of a network or a collection of networks (e.g., in the cloud, in an edge device, etc.). The machine-readable instructions may need to be installed, modified, adapted, updated, combined, supplemented, configured, decrypted, decompressed, unpacked, distributed, redistributed, compiled, etc., so that they can be directly read, interpreted, and / or executed by a computing device and / or other machine. For example, machine-readable instructions may be stored in multiple portions that are separately compressed, encrypted, and / or stored on separate computing devices, wherein the portions, 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 may together form a program such as the programs described herein.

[0084] In another example, the machine-readable instructions may be stored in a state in which they can be read by programmable circuits, but a library (e.g., a dynamic link library (DLL)), a software development kit (SDK), an application programming interface (API), etc., may need to be added in order to execute the machine-readable instructions on a particular computing device or other device. In another example, the machine-readable instructions and / or corresponding programs may need to be configured (e.g., to store settings, input data, record network addresses, etc.) before they can be executed in whole or in part. Thus, as used herein, a machine-readable, computer-readable, and / or machine-readable medium may include instructions and / or programs regardless of the specific format or state of the machine-readable instructions and / or programs.

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

[0086] As mentioned above, the present invention may be implemented using executable instructions (eg, computer-readable instructions and / or machine-readable instructions) stored on one or more non-transitory computer-readable media and / or machine-readable media. Figure 7 and Figure 8Example operation of. As used herein, the terms non-transitory computer-readable medium, non-transitory computer-readable storage medium, non-transitory machine-readable medium and / or non-transitory machine-readable storage medium are explicitly defined to include any type of computer-readable storage device and / or storage disk, and exclude propagation signals and exclude transmission media. Examples of such non-transitory computer-readable medium, non-transitory computer-readable storage medium, non-transitory machine-readable medium and / or non-transitory machine-readable storage medium include optical storage devices, magnetic storage devices, HDDs, flash memories, read-only memories (ROMs), CDs, DVDs, caches, any type of RAM, registers and / or any other storage device or storage disk in which information is stored for any duration (e.g., extended time periods, permanently, for transient situations, for temporary buffering and / or for caching information). As used herein, the terms "non-transitory computer-readable storage device" and "non-transitory machine-readable storage device" are defined to include any physical (mechanical, magnetic and / or electrical) hardware to retain information over a period of time, but exclude propagation signals and exclude transmission media. Examples of non-transitory computer-readable storage devices and / or non-transitory machine-readable storage devices include any type of random access memory, any type of read-only memory, solid-state memory, flash memory, optical disks, magnetic disks, disk drives, and / or redundant arrays of independent disks (RAID) systems. As used herein, the term "device" 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 manufactured to execute computer-readable instructions, machine-readable instructions, etc.

[0087] "Including" and "comprising" (and all forms and tenses thereof) are used herein as open-ended terms. Thus, whenever a claim uses any form of "include" or "comprising" (e.g., includes, comprises, contains, encompasses, has, etc.) as a preamble or within any type of claim formulation, it should be understood that additional elements, items, etc. may be present without falling outside the scope of the corresponding claim or formulation. As used herein, when the phrase "at least" is used as a transitional term, such as in the preamble of a claim, it is open-ended in the same way that the terms "include" and "comprising" are open-ended. The term "and / or" when used, for example, in a form such as A, B, and / or C refers to any combination or subset of A, B, C, such as (1) only A, (2) only B, (3) only C, (4) A and B, (5) A and C, (6) B and C, and (7) A and B and C. As used herein in the context of describing structures, components, articles, objects, and / or things, the phrase "at least one of A and B" is intended to refer to embodiments that include any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing structures, components, articles, objects, and / or things, the phrase "at least one of A or B" is intended to refer to embodiments that include any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. As used herein in the context of describing the performance or execution of processes, instructions, actions, activities, and / or steps, the phrase "at least one of A and B" is intended to refer to embodiments that include any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing the performance or execution of a process, instruction, action, activity, and / or step, the phrase "at least one of A or B" is intended to refer to an embodiment that includes any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.

[0088] As used herein, singular references (e.g., "a / an," "first," "second," etc.) do not exclude the plural. As used herein, the term "a / an" object refers to one or more of the object. The terms "a / an," "one or more," and "at least one" are used interchangeably herein. In addition, although listed separately, multiple devices, elements, or actions may be implemented by, for example, the same entity or object. In addition, although individual features may be included in different examples or claims, these may be combined, and inclusion in different examples or claims does not mean that the combination of features is not feasible and / or disadvantageous.

[0089] Figure 7is a flowchart representing example machine-readable instructions and / or example operations 700 that may be executed, instantiated, and / or performed by a programmable circuit to operate Figure 2 and Figure 3 The movable steering column assembly 200 is provided. Figure 3 The example machine-readable instructions and / or example operations 700 of the system begin at block 702, where the user interface circuit 402 accesses input from an interface of the vehicle 100. For example, the user interface circuit 402 may access a request to move the longitudinal 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 release the steering wheel 104, etc.). In some examples, the user interface circuit 402 may detect input via the steering wheel 104 (e.g., via a button disposed thereon, etc.), and / or input via an interface of the instrument panel 106 (e.g., via a button on the instrument panel 106, via a touch screen of the instrument panel 106, etc.). In some examples, the user interface circuit 402 may generate the request to move the longitudinal position in response to another user input (e.g., ignition of the vehicle 100, adjustment of the driver's seat of the vehicle 100, etc.). In some examples, the user interface circuit 402 may detect the request to move the longitudinal position of the steering wheel 104 from an autonomous driving system of the vehicle 100, etc.

[0090] 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 Figure 3 The first actuator 302 and Figure 2 and Figure 3 The system interface circuit 404 may control the operation of the motor 212 to cause 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 (e.g., an electrical signal, etc.) to the first actuator 302 to begin rotating the 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.).

[0091] 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 Figure 1 The temperature sensor 110, Figure 2The sensor interface circuit 406 may receive sensor data from the first sensor 214 and / or the second sensor 216 of the vehicle 100. 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 form (e.g., a human-readable form, etc.).

[0092] At block 708, the position determiner circuit 408 uses a first method to determine a first estimated position of the steering wheel 104 relative to the instrument panel 106 of the vehicle 100. For example, the position determiner 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 gear system 306 that enables the relative position thereof, the position determiner 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 the position of the steering wheel 104 and / or the first portion 204 (e.g., the first sensor value may be correlated to the first position, the second sensor value may be correlated to 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 gear system 306 implementing the same relative thereto, the position determiner circuit 408 may determine the position of the steering wheel 104 and / or the first portion 204 without a 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 determiner 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.

[0093] At block 710, the position determiner 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 determiner 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 determiner circuit 408 may use sensor information from the second sensor 216 (e.g., a Hall effect sensor coupled to the motor 212, etc.) to determine the position. In some such examples, the position determiner 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 rotation of the motor 212. For example, the position determiner circuit 408 may determine the displacement of the first portion 204 based on the number of revolutions of the motor 212 and a relationship between the rotation of the motor 212 and the translation of the first portion 204 (e.g., based on properties of the first actuator 302 and / or the gear 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 determiner circuit 408 may have a higher resolution than other methods (e.g., the first method of block 708, etc.) for determining the position of the first portion 204 and / or the steering wheel 104. In some such examples, the position determiner circuit 408 does not use the second method if the starting position of the steering wheel 104 and / or the first portion 204 is unknown (e.g., a power outage occurred in the vehicle 100, etc.).

[0094] At box 712, the position comparator circuit 410 determines whether the difference between the estimated positions meets a threshold. For example, the position comparator circuit 410 can compare the first estimated position and the second estimated position to determine the absolute difference between the estimated positions and / or the relative difference between the estimated position values. In some examples, the threshold can be based on user preferences, manufacturer settings, and / or geometric properties of the vehicle 100. In some examples, the threshold can be an absolute value (e.g., 10 mm, 1 cm, etc.). In other examples, the threshold can be a percentage (e.g., the maximum percentage difference between the first estimated position and the second estimated position, etc.). If the position comparator circuit 410 determines that the difference between the first estimated position value and the second estimated position value meets the threshold, the operation 700 proceeds to box 714. If the position comparator circuit 410 determines that the difference between the first estimated position value and the second estimated position value does not meet the threshold, the operation 700 proceeds to box 713.

[0095] At box 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 can generate an alert based on a command from the position comparator circuit 410. In some examples, the user interface circuit 402 can 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 audio 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., via tactile feedback of a seat of the vehicle 100, via tactile feedback of the steering wheel 104, etc.). In some examples, the user interface circuit 402 can generate an alert indicating that the vehicle 100 is to be serviced to resolve the detected discrepancy (e.g., recalibration of the sensors 214, 216, etc.).

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

[0097] At block 716, the system interface circuit 404 determines whether an obstacle is detected during execution of block 714. For example, the system interface circuit 404 may perform block 714 and / or Figure 8 During operation 800 of the system interface circuit 404, it is determined whether the obstacle detector circuit 412 has determined that the steering wheel 104 and / or the first portion 204 has encountered an obstacle. In some examples, the system interface circuit 404 can access a memory of the vehicle 100 to determine whether the obstacle detector 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 operation 700 proceeds to block 718. If the system interface circuit 404 determines that an obstacle has not been detected, the operation 700 proceeds to block 722.

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

[0099] At block 720, the user interface circuit 402 generates an alert indicating that the movable steering column assembly 200 has encountered an obstacle. For example, the user interface circuit 402 may generate the alert in response to a command from the obstacle detector circuit 412. 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 audio 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., via tactile feedback of a seat of the vehicle 100, via tactile feedback of the steering wheel 104, etc.). In some examples, the user interface circuit 402 may generate an alert indicating that the obstacle should be removed from the path of the movable steering column assembly 200.

[0100] At block 722, the speed adjuster circuit 414 determines whether to adjust the translation speed of the first portion 204. For example, the speed adjuster circuit 414 may determine whether to adjust the translation speed of the first portion 204 based on the current position of the steering wheel 104, user preferences, and / or manufacturer settings. If the speed adjuster circuit 414 determines that the translation speed is to be adjusted, the operation 700 proceeds to block 724. If the speed adjuster circuit 414 determines that the translation speed is not to be adjusted, the operation 700 proceeds to block 726.

[0101] At box 724, the speed adjuster circuit 414 adjusts the translation speed of the steering wheel 104. For example, the speed adjuster circuit 414 can adjust the translation speed via pulse width modulation (PWM). In some examples, the speed adjuster circuit 414 can adjust the translation speed to a speed between a lower speed (e.g., approximately 11 millimeters per second, etc.) and a higher speed (e.g., approximately 44 millimeters per second, etc.). In some examples, the speed adjuster circuit 414 can increase the translation speed when the steering wheel 104 is not close to the target position, and / or reduce the translation speed when the steering wheel 104 is close to the target position. In some examples, the speed adjuster circuit 414 can adjust the translation speed to reduce the loudness and / or sound fluctuations of the movable steering column assembly 200 (e.g., to prevent large changes in torque applied to the gear system 306 of the movable steering column assembly 200, etc.).

[0102] At block 726, the position determiner circuit 408 determines whether the steering wheel 104 has reached the target position. For example, the position determiner circuit 408 may determine whether the target position has been reached via the estimated position determined during execution of block 708 and / or block 710. In some examples, the position determiner circuit 408 may determine whether the target position has been reached via sensor information from the first sensor 214 and / or the second sensor 216. If the position determiner circuit 408 determines that the target position has been reached, the operation 700 ends. If the position determiner circuit 408 determines that the target position has not been reached, the operation 700 returns to block 706.

[0103] Figure 8 is a method that can 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 Figure 7 714, etc.) of example machine readable instructions and / or a flowchart of example operations 800. Figure 3 The example machine readable instructions and / or example operations 800 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 associated with the temperature of the movable steering column assembly 200. Figure 1 In some examples, sensor interface circuit 406 may access sensor data from other temperature sensors of vehicle 100 (e.g., an external temperature sensor of vehicle 100, etc.). In some examples, sensor interface circuit 406 may convert data received from sensor 110 into a numerical form (e.g., a human-readable form, etc.).

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

[0105] At block 806, the obstacle detector circuit 412 determines whether the motor parameters are within the motor parameter range. For example, the obstacle detector circuit 412 may determine whether the motor parameters (e.g., the current draw of the motor 212, etc.) are within the range determined by the obstacle detector circuit 412 during execution of block 804. If the obstacle detector circuit 412 determines that the motor parameters are within the motor parameter range, the operation 800 proceeds to block 812. If the obstacle detector circuit 412 determines that the motor parameters are not within the motor parameter range (e.g., are outside of the range, etc.), the operation 800 proceeds to block 808.

[0106] At block 808, the obstacle detector circuit 412 determines whether the motor 212 is experiencing an inrush current (eg, Figure 5 For example, obstacle detector circuit 412 may determine whether operation of motor 212 has been recently initiated by comparing the time since system interface circuit 404 sent a command to motor 212 (e.g., executing block 704, etc.) to a threshold time (e.g., 10 milliseconds, 50 milliseconds, 500 milliseconds, 1 second, etc.). Additionally or alternatively, obstacle detector circuit 412 may determine whether 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 has previously occurred during the current operation of motor 212, etc.). If obstacle detector circuit 412 determines that an inrush current is occurring, operation 800 proceeds to block 812. If obstacle detector circuit 412 determines that an inrush current is not currently occurring, operation 800 proceeds to block 810.

[0107] At block 810, the obstacle detector circuit 412 determines whether the movable steering column assembly 200 is approaching the end of travel. For example, the obstacle detector circuit 412 can determine whether the movable steering column assembly 200 is approaching the fully stowed position and / or the fully deployed position. In some such examples, the obstacle detector circuit 412 can use data from the first sensor 214 to determine the absolute position of the first portion 204. In some examples, the increased current draw is associated with the motor 212 overcoming the movable steering column assembly 200 (e.g., Figure 3 The stall caused by operating at the mechanical limit of the gear system 306 (such as the end of the rack associated with the gear system 306, etc.) (for example, Figure 5 Stall section 532, Figure 5 If the obstacle detector circuit 412 determines that the movable steering column assembly 200 is near the end of travel, the operation 800 proceeds to block 812. If the obstacle detector circuit 412 determines that the movable steering column assembly 200 is near the end of travel, the operation 800 proceeds to block 814.

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

[0109] Fig. 9 is structured to execute and / or instantiate Figure 7 and Figure 8 Example machine readable instructions and / or example operations to implement Figure 4 The programmable circuit platform 900 is a block diagram of an example programmable circuit platform 900 for the steering wheel position controller circuit 202. The programmable circuit platform 900 can 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 cell phone, a smart phone, an iPad, etc.). TM , tablet computers, personal digital assistants (PDAs), Internet appliances, DVD players, CD players, digital video recorders, Blu-ray players, game consoles, headsets (e.g., augmented reality (AR) headsets, virtual reality (VR) headsets, etc.) or other wearable devices, or any other type of computing device and / or electronic device.

[0110] 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 can be implemented by one or more integrated circuits, logic circuits, FPGAs, microprocessors, CPUs, GPUs, DSPs, and / or microcontrollers from any desired series or manufacturer. The programmable circuit 912 can be implemented by one or more semiconductor-based (e.g., silicon-based) devices. 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 determiner circuit 408, the position comparator circuit 410, the obstacle detector circuit 412, and the speed regulator circuit 414.

[0111] The programmable circuit 912 of the illustrated example includes a local memory 913 (e.g., cache, registers, etc.). The programmable circuit 912 of the illustrated example communicates with main memories 914, 916 including a volatile memory 914 and a non-volatile memory 916 via a bus 918. The volatile memory 914 may be composed of a synchronous dynamic random access memory (SDRAM), a dynamic random access memory (DRAM), Dynamic Random Access Memory The non-volatile memory 916 may be implemented by 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, or any other type of circuitry from any desired family or manufacturer to manage the flow of data to and from the main memory 914, 916.

[0112] The programmable circuit platform 900 of the illustrated example also includes an interface circuit 920. The interface circuit 920 can be implemented by hardware according to any type of interface standard, such as an Ethernet interface, a universal serial bus (USB) interface, interface, a near field communication (NFC) interface, a peripheral component interconnect (PCI) interface, and / or a peripheral component interconnect express (PCIe) interface.

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

[0114] One or more output devices 924 are also connected to the interface circuit 920 of the illustrated example. The output device 924 can be implemented, for example, by a display device (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 switch (IPS) display, a touch screen, etc.), a tactile output device, a printer, and / or a speaker. Therefore, the interface circuit 920 of the illustrated example typically includes a graphics driver card, a graphics driver chip, and / or a graphics processor circuit, such as a GPU.

[0115] The interface circuitry 920 of the illustrated example also includes communication devices, such as transmitters, receivers, transceivers, modems, residential gateways, wireless access points, and / or network interfaces to facilitate data exchange with external machines (e.g., any type of computing device) via a network 926. Communications may be made through, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a beyond-line-of-sight wireless system, a line-of-sight wireless system, a mobile telephone system, an optical connection, etc.

[0116] 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 solid-state storage disks or devices, such as flash memory devices and / or SSDs.

[0117] Can be Figure 7 and Figure 8 The machine-readable instructions 932 implemented by the machine-readable instructions 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 non-transitory computer-readable storage medium (such as a CD or DVD) that may be removable.

[0118] Fig.10 yes Fig. 9 912 of a programmable circuit. In this example, Fig. 9 The programmable circuit 912 is implemented by the microprocessor 1000. For example, the microprocessor 1000 may be a general-purpose microprocessor (eg, a general-purpose microprocessor circuit). The microprocessor 1000 executes Figure 7 and / or Figure 8 Some or all of the machine readable instructions of the flowchart of Figure 2 The circuits of are effectively instantiated as logic circuits to perform operations corresponding to these machine-readable instructions. In some such examples, Figure 4The circuits are instantiated by hardware circuits of the microprocessor 1000 in combination with machine-readable instructions. For example, the microprocessor 1000 may be implemented by multi-core hardware circuits, such as a CPU, DSP, GPU, 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 may 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 in the cores 1002 at the same or 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 cores in the cores 1002. The software program may correspond to a thread executed by Figure 7 and Figure 8 A flowchart may represent a portion or all of machine-readable instructions and / or operations.

[0119] The core 1002 can communicate via a first example bus 1004. In some examples, the first bus 1004 can be implemented by a communication bus to perform communications associated with one or more cores in the core 1002. For example, the first bus 1004 can 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 can be implemented by any other type of computing or electrical bus. The core 1002 can obtain data, instructions, and / or signals from one or more external devices via an example interface circuit 1006. The core 1002 can output data, instructions, and / or signals to one or more external devices via the interface circuit 1006. Although the core 1002 of this example includes an example local memory 1020 (e.g., a level 1 (L1) cache that can be divided into an L1 data cache and an L1 instruction cache), the microprocessor 1000 also includes an example shared memory 1010 that can be shared by the cores (e.g., a level 2 (L2 cache)) for high-speed access to data and / or instructions. Data and / or instructions can 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 can be a cache memory and a main memory (e.g., a cache memory) including multiple levels. Fig. 9Cache memory is part of a storage device hierarchy of main memory 914, 916). Generally, higher level memory in the hierarchy exhibits shorter access times and has smaller storage capacity than lower level memory. Changes to the various levels of the cache hierarchy are managed (e.g., coordinated) by a cache coherence policy.

[0120] Each core 1002 may be referred to as a CPU, DSP, GPU, etc., or any other type of hardware circuit. Each core 1002 includes a control unit circuit 1014, an arithmetic and logic (AL) circuit (sometimes referred to as an ALU) 1016, a plurality of registers 1018, a local memory 1020, and a second example bus 1022. Other structures may exist. 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 a semiconductor-based circuit structured to control (e.g., coordinate) data movement within the corresponding core 1002. The AL circuit 1016 includes a semiconductor-based circuit that is structured to perform one or more mathematical and / or logical operations on 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 other examples, 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, AL circuit 1016 may be referred to as an arithmetic logic unit (ALU).

[0121] Registers 1018 are semiconductor-based structures for storing data and / or instructions, such as the results of one or more of the operations performed by the AL circuit 1016 of the corresponding core 1002. For example, registers 1018 may include vector registers, SIMD registers, general registers, flag registers, segment registers, machine-specific registers, instruction pointer registers, control registers, debug registers, memory management registers, machine check registers, etc. Registers 1018 may be arranged in a manner such as Fig.10 Alternatively, the registers 1018 may be organized in any other arrangement, format, or structure (such as by being 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.

[0122] 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, there may be 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 aggregation / common mesh stations (CMSs), one or more shifters (e.g., barrel shifters), and / or other circuits. The microprocessor 1000 is a semiconductor device manufactured to include many transistors interconnected to implement the above structures in one or more integrated circuits (ICs) contained in one or more packages.

[0123] The microprocessor 1000 may include one or more accelerators (e.g., acceleration circuits, hardware accelerators, etc.) and / or collaborate with the one or more accelerators. In some examples, the accelerator is implemented by a logic circuit to perform certain tasks faster and / or more efficiently than a general-purpose processor can perform certain tasks. Examples of accelerators include ASICs and FPGAs, such as those discussed herein. GPUs, DSPs, and / or other programmable devices may also be accelerators. The accelerator may be on the microprocessor 1000, in the same chip package as the microprocessor 1000, and / or in one or more packages separate from the microprocessor 1000.

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

[0125] More specifically, Fig.10 The microprocessor 1000 (which is a general-purpose device that can be programmed to perform the Figure 7 and Figure 8 Compared to a flowchart representation of some or all of the machine-readable instructions, but the interconnections and logic circuits of the general-purpose device are fixed once manufactured, Fig.11 The example FPGA circuit 1100 includes interconnects and logic circuits, which can be configured, structured, programmed and / or interconnected in different ways after manufacturing to instantiate, for example, corresponding to Figure 7 and Figure 8In particular, FPGA circuit 1100 can be considered to be an array of logic gates, interconnects, and switches. The switches can be programmed to change the way the logic gates are interconnected through the interconnects, effectively forming one or more dedicated logic circuits (unless and until FPGA circuit 1100 is reprogrammed). The configured logic circuits enable the logic gates to cooperate in different ways to perform different operations on data received by the input circuits. Those operations may correspond to the operations performed by Figure 7 and Figure 8 To this end, FPGA circuit 1100 may be configured and / or structured to correspond to Figure 7 and Figure 8 Some or all of the operations / functions of the machine-readable instructions of the flowchart are effectively instantiated as dedicated logic circuits, thereby performing the operations / functions corresponding to these software instructions in a dedicated manner similar to an ASIC. Therefore, the FPGA circuit 1100 can execute the operations / functions corresponding to the software instructions faster than a general-purpose microprocessor. Figure 7 and Figure 8 Some or all of the operations / functions of the machine-readable instructions.

[0126] exist Fig.11 In some examples, 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, a binary file can be compiled and / or generated based on instructions in a hardware description language (HDL) such as Lucid, Very High Speed ​​Integrated Circuit (VHSIC) Hardware Description Language (VHDL), or Verilog. For example, a user (e.g., a human user, a machine user, etc.) can write code or a program corresponding to one or more operations / functions in the HDL; the code / program can be translated into a low-level language as needed; and the code / program (e.g., code / program in a low-level language) can be converted into a binary file (e.g., by a compiler, a software application, etc.). In some examples, Fig.11 The FPGA circuit 1100 can access and / or load a binary file to enable Fig.11 The FPGA circuit 1100 is configured and / or structured to perform one or more operations / functions. For example, a binary file can be implemented 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, which can be implemented by Fig.11 The FPGA circuit 1100 is accessed to enable Fig.11 Configuration and / or structuring of FPGA circuit 1100 or portions thereof.

[0127] In some examples, a binary file is compiled, generated, transformed, and / or otherwise output from a unified software platform for programming the FPGA. For example, the unified software platform can translate a first instruction (e.g., code or program) corresponding to one or more operations / functions of a high-level language (e.g., C, C++, Python, etc.) into a second instruction corresponding to one or more operations / functions of the HDL. In some such examples, a binary file is compiled, generated, and / or otherwise output from the unified software platform based on the second instruction. In some examples, Fig.11 The FPGA circuit 1100 can access and / or load a binary file to enable Fig.11 The FPGA circuit 1100 is configured and / or structured to perform one or more operations / functions. For example, a binary file can be implemented 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, which can be implemented by Fig.11 The FPGA circuit 1100 is accessed to enable Fig.11 Configuration and / or structuring of FPGA circuit 1100 or portions thereof.

[0128] Fig.11 FPGA circuit 1100 includes example input / output (I / O) circuit 1102 to obtain data from and / or output data to example configuration circuit 1104 and / or external hardware 1106. For example, configuration circuit 1104 can be implemented by an interface circuit that can obtain a binary file that can be implemented by a bitstream, data, and / or machine-readable instructions to configure FPGA circuit 1100 or portions thereof. In some such examples, configuration circuit 1104 can obtain the binary file from a user, a machine (e.g., a hardware circuit (e.g., a programmable or dedicated circuit) that can implement an artificial intelligence / machine learning (AI / ML) model to generate a binary file), etc. and / or any combination thereof. In some examples, external hardware 1106 can be implemented by an external hardware circuit. For example, external hardware 1106 can be implemented by Fig.10 The microprocessor 1000 is implemented as shown.

[0129] FPGA circuit 1100 also includes an array of example logic gate circuits 1108, a plurality of example configurable interconnects 1110, and example storage circuits 1112. Logic gate circuits 1108 and configurable interconnects 1110 may be configured to instantiate one or more operations / functions that may correspond to Figure 7 and Figure 8 At least some of the machine-readable instructions and / or other desired operations. Fig.11The logic gate circuits 1108 shown in the figure are manufactured in blocks or groups. Each block includes a semiconductor-based electrical structure that can be configured as a logic circuit. In some examples, the electrical structure includes a logic gate (e.g., an AND gate, an OR gate, a NOT gate, etc.) that provides a basic building block for the logic circuit. An electrically controlled switch (e.g., a transistor) is present in each of the logic gate circuits 1108 to support configuring the electrical structure and / or the logic gate to form a circuit for performing the desired operation / function. The logic gate circuits 1108 may include other electrical structures, such as a lookup table (LUT), a register (e.g., a flip-flop or a latch), a multiplexer, etc.

[0130] The configurable interconnect 1110 of the illustrated example is a conductive path, trace, via, or the like, which may include an electrically controlled switch (e.g., a transistor) whose state may be changed by programming (e.g., using an HDL instruction language) to activate or deactivate a connection between one or more of the logic gate circuits 1108 to program a desired logic circuit.

[0131] The storage circuit 1112 of the illustrated example is structured to store the results of one or more of the operations performed by the corresponding logic gates. The storage circuit 1112 may be implemented by registers, etc. In the illustrated example, the storage circuit 1112 is distributed between the logic gate circuits 1108 to facilitate access and increase execution speed.

[0132] Fig.11 The example FPGA circuit 1100 also includes an example dedicated operation circuit 1114. In this example, the dedicated operation circuit 1114 includes a dedicated circuit 1116, which can be called to implement common functions to avoid the need to program these functions on site. Examples of such dedicated circuits 1116 include memory (e.g., DRAM) controller circuits, PCIe controller circuits, clock circuits, transceiver circuits, memories, and multiplier-accumulator circuits. There may be other types of dedicated circuits. In some examples, the FPGA circuit 1100 may also include an example general-purpose programmable circuit 1118, such as an example CPU 1120 and / or an example DSP 1122. There may be other general-purpose programmable circuits 1118 in addition or alternatively, such as GPUs, XPUs, etc. that can be programmed to perform other operations.

[0133] Although Fig.10 and Fig.11 Shows Fig. 9 Two example implementations of the programmable circuit 912 are shown, but many other approaches are also contemplated. For example, the FPGA circuit may include an onboard CPU, such as Fig.10 One or more of the example CPUs 1120. Thus, Fig. 9 The programmable circuit 912 can also be configured to at least Fig.10 An example microprocessor 1000 with Fig.11 In some such hybrid examples, Fig.10 One or more cores 1002 may execute Figure 7 and Figure 8 The flowchart represents a first portion of machine-readable instructions to perform a first operation / function, Fig.11 The FPGA circuit 1100 may be configured and / or structured to perform operations corresponding to Figure 7 and Figure 8 A second operation / function of a second portion of the machine-readable instructions represented by a flowchart, and / or the ASIC may be configured and / or structured to perform the operation corresponding to the operation of Figure 7 and Figure 8 The flowchart represents a third operation / function of a third portion of the machine readable instructions.

[0134] It should be understood that Figure 4 Some or all of the circuits of may thus be instantiated at the same or different times. Fig.10 The same and / or different portions of microprocessor 1000 may be programmed to execute portions of machine-readable instructions at the same and / or different times. In some examples, Fig.11 The same and / or different portions of FPGA circuit 1100 may be configured and / or structured to perform operations / functions corresponding to respective portions of machine-readable instructions at the same and / or different times.

[0135] In some examples, Figure 4 Some or all of the circuits of can be instantiated, for example, in one or more threads that execute simultaneously and / or serially. Fig.10 The microprocessor 1000 can execute machine-readable instructions in one or more threads that execute simultaneously and / or serially. In some examples, Fig.11 The FPGA circuit 1100 can be configured and / or structured to perform operations / functions simultaneously and / or serially. In addition, in some examples, Figure 4 Some or all of the circuitry may be located in Fig.10 The microprocessor 1000 is implemented within one or more virtual machines and / or containers.

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

[0137] Methods and devices for controlling a retractable steering wheel are disclosed herein. Additional examples and combinations thereof include the following:

[0138] Example 1 includes a device comprising: a steering column assembly, the steering column assembly comprising: a sensor; a first part; and a second part, the second part being movable relative to the first part; machine-readable instructions; and a programmable circuit, the programmable circuit being used to instantiate or execute at least one of the machine-readable instructions to: move the first part relative to the second part; determine, based on an output of the sensor, that the first part has encountered an obstacle; and stop movement of the first part after determining that the first part has encountered the obstacle.

[0139] 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 used to instantiate or execute at least one of 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 satisfies a threshold, and upon determining that the difference does not satisfy the threshold, generate an alarm indicating a difference in the steering column assembly.

[0140] Example 3 includes the apparatus of Example 2, wherein the first sensor is a mechanical sensor disposed on at least one of the first portion or the second portion.

[0141] Example 4 includes the apparatus of Example 2, further comprising a motor for moving the first portion relative to the second portion, and wherein the second sensor is a Hall effect sensor associated with the motor.

[0142] Example 5 includes the apparatus of Example 1, further comprising a motor, and wherein the programmable circuit is used 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 motor is within a parameter range.

[0143] Example 6 includes the apparatus of Example 5, wherein the programmable circuit is to instantiate or execute at least one of the machine-readable instructions to determine the parameter range based on a temperature of the steering column assembly.

[0144] Example 7 includes the apparatus of Example 5, wherein the parameter is a current draw of the motor.

[0145] Example 8 includes a non-transitory machine-readable storage medium comprising instructions to cause a programmable circuit to at least: move a first portion of a steering column assembly relative to a second portion of the steering column assembly; determine, based on a sensor output, that the first portion has encountered an obstacle; and, after determining that the first portion has encountered the obstacle, stop movement of the first portion.

[0146] Example 9 includes the non-transitory 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 used 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 satisfies a threshold, and after determining that the difference does not satisfy the threshold, generate an alarm indicating a difference in the steering column assembly.

[0147] Example 10 includes the non-transitory 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.

[0148] Example 11 includes the non-transitory machine-readable storage medium of Example 9, wherein the second sensor is a Hall effect sensor associated with a motor of the steering column assembly.

[0149] Example 12 includes the non-transitory 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 a motor of the steering column assembly is within a parameter range.

[0150] Example 13 includes the non-transitory 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.

[0151] Example 14 includes the non-transitory machine-readable storage medium of Example 12, wherein the parameter is a current draw of the motor.

[0152] 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 that the first portion has encountered an obstacle based on sensor output; and stopping movement of the first portion after determining that the first portion has encountered the obstacle.

[0153] Example 16 includes the method of Example 15, wherein the sensor output is a first sensor output of a first sensor, and further includes determining a first estimated position of the first part based on the first sensor output; determining a second estimated position of the first part based on a second sensor output of a second sensor; and determining whether a difference between the first estimated position and the second estimated position satisfies a threshold, and after determining that the difference does not satisfy the threshold, generating an alarm indicating a difference in the steering column assembly.

[0154] 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 effect sensor associated with a motor of the steering column assembly.

[0155] 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 a motor of the steering column assembly is within a parameter range.

[0156] Example 19 includes the method of Example 18, further comprising determining the parameter range based on a temperature of the steering column assembly.

[0157] Example 20 includes the method of Example 18, wherein the parameter is the current draw of the motor. The appended claims are hereby incorporated by reference into this detailed description. Although certain example systems, devices, articles, and methods have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all systems, devices, articles, and methods that fully fall within the scope of the claims of this patent.

Claims

1. A device comprising: A steering column assembly, the steering column assembly comprising: sensor; Part I; and a second portion, the second portion being movable relative to the first portion; machine-readable instructions; and programmable circuitry for instantiating or executing at least one of the machine-readable instructions to: moving the first portion relative to the second portion; determining, based on an output of the sensor, that the first portion has encountered an obstacle; and After determining that the first portion has encountered the obstacle, movement of the first portion is stopped.

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 to instantiate or execute at least one of the machine-readable instructions to: determining a first estimated position of the first portion based on the first sensor output; determining a second estimated position of the first portion based on a second sensor output of a second sensor; as well as determining whether a difference between the first estimated position and the second estimated position satisfies a threshold; and After determining that the difference does not satisfy the threshold, an alert is generated indicating the difference in the steering column assembly.

3. The apparatus 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 apparatus of any one of claims 2 or 3, further comprising a motor for moving the first part relative to the second part, and wherein the second sensor is a Hall Effect sensor associated with the motor.

5. The apparatus of claim 1 further comprising a motor, and wherein the programmable circuit is configured 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 motor is within a parameter range.

6. The apparatus of claim 5, wherein the programmable circuit is to instantiate or execute at least one of the machine-readable instructions to determine the parameter range based on a temperature of the steering column assembly.

7. The apparatus of claim 5, wherein the parameter is the current draw of the motor.

8. 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 the sensor output, that the first portion has encountered an obstacle; as well as After determining that the first portion has encountered the obstacle, movement of the first portion is stopped.

9. The method of claim 8, wherein the sensor output is a first sensor output of a first sensor, and further comprising determining a first estimated position of the first portion based on the first sensor output; determining a second estimated position of the first portion based on a second sensor output of a second sensor; as well as determining whether a difference between the first estimated position and the second estimated position satisfies a threshold; and After determining that the difference does not satisfy the threshold, an alert is generated indicating the difference 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 Effect sensor associated with a motor of the steering column assembly. 12 . The method of claim 9 , wherein said determining whether said steering column assembly has encountered said obstacle comprises determining whether a parameter of a motor of said steering column assembly is within a parameter range. 13 . The method of claim 12 , further comprising determining the parameter range based on a temperature of the steering column assembly.

14. The method of claim 12, wherein the parameter is the current draw of the motor.

15. A non-transitory machine-readable storage medium comprising instructions which, when executed, cause a processor to perform the method of any one of claims 8 to 14.