User control devices for transporters

The UCP system in personal vehicles addresses the challenge of automatic environmental interaction by integrating sensors and processors to navigate obstacles, stairs, doors, and elevators, improving safety and reliability.

JP2026099798APending Publication Date: 2026-06-18DEKA PRODUCTS LP

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
DEKA PRODUCTS LP
Filing Date
2026-03-04
Publication Date
2026-06-18

AI Technical Summary

Technical Problem

Personal vehicles lack the ability to automatically detect and react to important environmental features, such as obstacles, stairs, doors, and elevator thresholds, compromising safety and reliability during user operation.

Method used

A user-controlled processor (UCP) system that integrates sensors and processors to navigate obstacles, stairs, doors, and elevators, using a combination of user input, sensor data, and automated processing modes to control the vehicle's movement and positioning.

Benefits of technology

Enhances safety and reliability by enabling the vehicle to autonomously navigate complex environments, including stairs, doors, and elevators, and facilitates storage and recharging without user intervention.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026099798000001
    Figure 2026099798000001
  • Figure 2026099798000002
    Figure 2026099798000002
  • Figure 2026099798000003
    Figure 2026099798000003
Patent Text Reader

Abstract

To provide user-controlled devices for vehicles that meet enhanced safety and reliability requirements. [Solution] A user control device for a transporter. The user control device can communicate with the transporter via an electrical interface that can facilitate communication and data processing between a user interface device and a controller that can control the movement of the transporter. The user control device can perform automated actions based on the environment in which the transporter operates and the desired movement of the transporter's user. External applications can enable monitoring and control of the transporter.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] (Cross - reference to Related Applications) This application claims the benefit of U.S. Provisional Application No. 62 / 322,522, filed on April 14, 2016, entitled USER CONTROL DEVICE FOR A TRANSPORTER (Attorney Docket No. R52), which is hereby incorporated by reference in its entirety.

[0002] The present teachings generally relate to personal vehicles, and more specifically to user control devices for vehicles that enhance requirements for safety and reliability. Currently, personal vehicles can ascend and descend stairs. Such a device can include a plurality of wheels that can rotate about an axis fixed to a cluster arm. The cluster arm can rotate about the axis such that the wheels can rest on a continuous staircase. Currently, a user can board or alight from an automobile or other enclosed vehicle, and can load or unload a personal vehicle into or from an enclosed vehicle.

Background Art

[0003] What is needed is a user control device that can automatically determine the location of important features of the personal vehicle's environment and can automatically cause the personal vehicle to react to the important features.

Summary of the Invention

Means for Solving the Problems

[0004] The user-controlled devices of this teaching may include, but are not limited to, a user-controlled processor (UCP) assist that provides enhanced functionality to users of personal vehicles such as the transporter of this teaching, for example, assisting the transporter user in avoiding obstacles, going through doors, going up stairs, riding elevators, and parking / transporting the transporter. The UCP assist may receive user input and / or input from a base processor (PBP) that can control the transporter and enable the activation of automatically or manually selected processing modes. The command processor may enable a invoked mode by generating a move command based on at least previous move commands, user data, and sensor data. The command processor may receive user data, which may include signals from a joystick that can provide indication of the desired direction and speed of movement of the transporter. User data may also include mode selection to which the transporter may transition. Modes such as door mode, restroom mode, extended stair mode, elevator mode, dynamic storage mode, and static storage / charging mode may be selected. Any of these modes may include a mode of moving to a fixed position, or the user may instruct the transporter to move directly to a position. The UCP assist can generate commands such as move commands, which may include, but are not limited to, speed and direction, and these move commands can be provided to the PBP, which can transmit this information to the wheel motor drive unit and cluster motor drive unit.

[0005] Sensor data can be collected by a sensor handling processor, which may include, but is not limited to, a transporter geometric shape processor, a point cloud library (PCL) processor, a simultaneous localization and mapping (SLAM) processor, and an obstacle processor. Movement commands can also be provided to the sensor handling processor. Sensors can provide environmental information, which may include, but is not limited to, geometric information about obstacles and the transporter. Sensors may include at least one time-of-flight sensor, which can be mounted anywhere on the transporter. Multiple sensors may be mounted on the transporter. The PCL processor can collect and process the environmental information and produce PCL data, which can be processed by the PCL library.

[0006] The transporter geometry processor in this instruction can receive transporter geometry information from sensors, perform any processing necessary to prepare the transporter geometry information for use by a mode-dependent processor, and provide the transporter geometry information to the mode-dependent processor. The transporter geometry can be used to automatically determine whether the transporter can fit into and through a space, such as a staircase structure and a door. The SLAM processor can determine navigation information based on, for example, user information, environmental information, and movement commands, but is not limited to these. The transporter can then proceed, at least partially, along a path set up by the navigation information. The obstacle processor can locate obstacles and their distances. Obstacles can include, but are not limited to, doors, stairs, cars, and various miscellaneous features near the transporter's path.

[0007] The methods for obstacle handling in this teaching may include, but are not limited to, the steps of receiving a move command and user information; receiving and segmenting PCL data; identifying at least one plane in the segmented PCL data; and identifying at least one obstacle in at least one plane. The methods for obstacle handling may further include at least the steps of determining at least one situation identifier based on the obstacle, user information, and move command; and at least the steps of determining the distance between the transporter and the obstacle based on the situation identifier. The methods for obstacle handling may also include the steps of accessing at least one allow command associated with the distance, obstacle, and situation identifier. The methods for obstacle handling may still further include the steps of accessing an automated response to an allow command; mapping a move command to one of the allow commands; and providing the move command and the mapped allow command and associated automated response to a mode-dependent processor.

[0008] Obstacles can be stationary or mobile. Distance can include fixed quantities and / or dynamically varying quantities. Movement commands can include, but are not limited to, follow commands, obstacle pass commands, obstacle pass-by commands, and obstacle non-follow commands. Obstacle data can be stored and retrieved, for example, locally and / or in cloud-based storage areas. The method may optionally include the steps of storing obstacle data and enabling access to the stored obstacle data by an external system of the transporter. The method for obstacle handling may optionally include the steps of collecting sensor data from a time-of-flight camera mounted on the transporter, analyzing the sensor data using a point cloud library (PCL), tracking moving objects using SLAM based on the transporter's location, identifying planes in the obstacle data, and providing an automated response associated with a mapped allow command to a mode-dependent processor. The method for obstacle handling may optionally receive a resume command and, following the resume command, provide an automated response associated with a move command and a mapped allow command to a mode-dependent processor. The automated response may include speed control commands.

[0009] The obstacle processor in this instruction may include, but is not limited to, a navigation / PCL data processor. The navigation / PCL processor can receive move commands and user information, and can receive and segment PCL data from a PCL processor, identify planes in the segmented PCL data, and identify obstacles in the planes. The obstacle processor may include a distance processor. The distance processor can determine a situation identifier based on user information, move commands, and obstacles. The distance processor can determine the distance between the transporter and the obstacle, at least based on the situation identifier. The moving object processor and / or stationary object processor can access permission commands related to distance, obstacles, and situation identifiers. The moving object processor and / or stationary object processor can access automatic responses from an automatic response list associated with permission commands. The moving object processor and / or stationary object processor can access move commands and map move commands to one of the permission commands. The moving object processor and / or stationary object processor can provide the move command and the mapped permission command and associated automatic responses to a mode-dependent processor. Movement commands can include follow commands, pass commands, side-by-side commands, move to a fixed position command, and non-follow commands. The Navi / PCL processor can store obstacles in local memory and / or on a memory cloud, and can allow external systems of the transporter to access the stored obstacles.

[0010] The method of navigating stairs as taught hereby may include, but is not limited to, the steps of receiving a stair command and receiving environmental information from sensors and / or obstacle processors mounted on the transporter. The method of navigating stairs may also include, but is not limited to, the steps of locating stair structures within the environmental information and receiving a selection of one of the stair structures located by the sensors and / or obstacle processors. The method of navigating stairs may also include the steps of measuring the characteristics of the selected stair structure and, if applicable, locating obstacles on the selected stair structure based on the environmental information. The method of navigating stairs may also include the steps of locating the last step of the selected stair structure based on the environmental information and providing a move command to move the transporter over the selected stair structure based on the measured characteristics, the last step, and, if applicable, obstacles. The method of navigating stairs may continue providing move commands until the last step is reached. The characteristics may include, but are not limited to, the riser height, riser surface texture, and riser surface temperature of the selected stair structure. An alert may be generated if the surface temperature is outside the threshold range and the surface texture is outside the static friction setting.

[0011] This method optionally includes the steps of: locating at least one staircase structure based on GPS data; constructing a map of the selected staircase structure using SLAM; saving the map; and updating the map while the transporter is moving. This method optionally includes the steps of: accessing the geometry of the transporter; comparing the geometry with at least one property of the selected staircase structure; and correcting the transporter's movement based on the comparison. The property may, but is not limited to, the height of at least one riser of the selected staircase structure, the surface texture of at least one riser, and the surface temperature of at least one riser. This method optionally includes the step of generating an alert if the surface temperature is outside a threshold range and the surface texture is outside a static friction setting. The threshold range may, but is not limited to, temperatures below 33°F. The static friction setting may, but is not limited to, carpet texture. This method may optionally include steps of determining the topography of the area surrounding a selected staircase structure based on sensor data, and generating an alert if the topography is not flat. This method may optionally include steps of accessing a set of extreme conditions.

[0012] The stair navigation processor of this instruction may include, but is not limited to, a stair structure processor that receives at least one stair command contained in user information, and a stair structure locator that receives environmental information from sensors mounted on the transporter, for example, through an obstacle processor. The stair structure locator can locate stair structures in the environmental information based on the environmental information and can receive a selection of stair structures. A stair characteristics processor can measure the characteristics of the selected stair structure and, if applicable, locate obstacles on the selected stair structure based on the environmental information. A stair movement processor can locate the last step of the selected stair structure based on the environmental information and can provide a movement command to the movement processor based on the characteristics, the last step, and, if applicable, obstacles, instructing the transporter to move along the selected stair structure. The stair structure locator can locate stair structures based on GPS data and can build and save a map of the selected stair structure. The map can be saved for use locally and / or by other devices unrelated to the transporter. The stair structure processor can access the transporter's geometry, compare the geometry with the properties of the selected stair structure, and modify the transporter's navigation based on the comparison. The stair structure processor can optionally generate an alert if the surface temperature of the risers of the selected stair structure is outside a threshold range, or if the surface texture of the selected stair structure is outside the static friction setting. The stair movement processor can determine the topography of the area surrounding the selected stair structure based on environmental information, and generate an alert if the topography is not flat. The stair movement processor can access a set of extreme conditions that can be used to modify the movement commands generated by the stair movement processor.

[0013] When a transporter crosses a door threshold, and the door may include a door swing, hinge location, and doorway, the method of navigating the door in this teaching may include the step of receiving and segmenting environmental information from sensors mounted on the transporter. The environmental information may include the geometric shape of the transporter. The method may include the step of identifying a plane in the segmented sensor data and the step of identifying a door in the plane. The method of navigating the door may include the step of measuring the door based on the environmental information. The method of navigating the door may include the step of determining the door swing and providing a move command to move the transporter to access the door handle. As the door opens, the method of navigating the door may include the step of providing a move command to move the transporter away from the door by a distance based on the door measurement. The method of navigating the door may include the step of providing a move command to move the transporter forward through the doorway. The transporter may maintain the door in the open position if the door swing is toward the transporter.

[0014] The teaching method for processing sensor data can determine the door hinge side, door direction and angle, and distance to the door through information from the sensors. The teaching motion processor can generate commands to the PBP such as start / stop left turn, start / stop right turn, start / stop forward movement, start / stop backward movement, etc., and can facilitate door modes by stopping the transporter, canceling any targets the transporter may be heading towards, and centering the joystick. The teaching door processor can determine whether the door is, for example, a push door, a sliding door, or a sliding door. The door processor can determine the width of the door and the x / y / z location of the door pivot point based on the transporter's current position and orientation. The door processor can determine the distance from the transporter to the door if it determines that the number of valid points in the door image derived from a set of obstacles and / or PCL data exceeds a threshold. The door processor can determine whether the door is moving based on a series of samples of PCL data from the sensor processor. In some configurations, the door processor can assume that the side of the transporter is at the same height as the handle side of the door, and can use this assumption to determine the width of the door, along with the position of the door pivot point. Based on the door swing and door width, the door processor can generate commands to move the transporter through the door. The transporter itself can keep the door open while the transporter crosses the door threshold.

[0015] In some configurations, the transporter can automatically negotiate the use of restroom facilities. Restroom and restroom cubicle doors can be positioned as discussed herein, and the transporter can be moved to a location relative to the door as discussed herein. Restroom fixtures can be positioned as obstacles as discussed herein, and the transporter can be automatically positioned near the fixtures to provide the user with access to, for example, a toilet, sink, and changing table. The transporter can be automatically navigated to exit restroom cubicles and restrooms through door and obstacle handling as discussed herein. The transporter can automatically traverse door thresholds based on the transporter's geometry.

[0016] For example, the method of this teaching for automatically storing a transporter inside a vehicle such as a wheelchair-accessible van (though not limited to such vehicles) can assist the user's independent use of the vehicle. When the user gets out of the transporter and, potentially, gets into the vehicle as the driver, the transporter can be left parked outside the vehicle. If the transporter is to be carried by the user inside the vehicle for later use, the dynamic parking mode of this teaching provides the transporter with a move command, causing it to store itself, either automatically or in response to the command, and in addition, to be retrieved into the vehicle door. The transporter can be instructed to store itself through a command received, for example, from an external application. In some configurations, a computer-driven device such as a mobile phone, laptop, and / or tablet can be used to run one or more external applications and generate information that can ultimately control the transporter. In some configurations, the transporter can automatically enter dynamic parking mode after the user gets out of the transporter. The movement command may include a command to locate the vehicle door into which the transporter will enter for storage, and a command to direct the transporter towards the vehicle door. The dynamic parking mode may determine error conditions, for example, if the vehicle door is too small for the transporter to enter, and may alert the user to these error conditions, for example, through audio alerts via the audio interface and / or messages to one or more external applications. If the vehicle door is wide enough for the transporter to enter, the dynamic parking mode may provide a vehicle control command to instruct the vehicle to open the vehicle door. The dynamic parking mode may determine when the vehicle door is open and whether there is space for the transporter to be stored.The dynamic parking mode can invoke methods for obstacle handling and assist in determining the status of the vehicle doors and whether there is enough space to store the transporter within the vehicle. If there is sufficient space for the transporter, the dynamic parking mode can provide a move command, allowing the transporter to move into the storage space within the vehicle. Vehicle control commands can be applied to instruct the vehicle to lock the transporter in place and close the vehicle doors. When the transporter is needed again, one or more external applications can be used, for example, to return the transporter to the user. The transporter's status can be recalled, and vehicle control commands can be applied to instruct the vehicle to unlock the transporter and open the vehicle doors. The vehicle doors can be located, and the transporter can be moved through the vehicle doors to, for example, a passenger door commanded by one or more external applications. In some configurations, the vehicle can be tagged in place, for example, at the vehicle entrance door where the transporter can be stored.

[0017] The method for storing / recharging the transporter in this instruction can, potentially, assist the user in storing and potentially recharging the transporter while the user is sleeping. After the user dismounts from the transporter, a command can be initiated by one or more external applications to move the transporter, possibly without a person inside, to the storage / docking area. In some configurations, a mode selection by the user while the user is using the transporter can initiate the automatic storage / docking function after the user dismounts from the transporter. When the transporter is needed again, a command can be initiated by one or more external applications to move the transporter towards the user. The method for storing / recharging the transporter may, but is not limited to, include the steps of locating at least one storage / charging area and providing at least one move command to move the transporter from the first location to the storage / charging area. A method for storing / recharging a transporter may include the steps of locating a charging dock within a storage / charging area and providing at least one move command to connect the transporter to the charging dock. Optionally, a method for storing / recharging a transporter may include the step of providing at least one move command to move the transporter to a first location when the transporter receives an activation command. If no storage / charging area exists, or no charging dock exists, or the transporter cannot connect to a charging dock, a method for storing / recharging a transporter may optionally include the steps of providing at least one alert to the user and providing at least one move command to move the transporter to a first location. The method of negotiating with an elevator while operating a transporter can assist a user in ascending or descending an elevator while riding in the transporter.A move command is provided to move the transporter into the elevator, for example, when the elevator is automatically located, when the user selects the desired elevator direction, and when the elevator arrives and the doors open. The geometry of the elevator can be determined, and a move command is provided to move the transporter to a location that allows the user to select the desired activity from the elevator selection panel. The transporter's location can also be appropriate for exiting the elevator. When the elevator doors open, a move command is provided to move the transporter and allow it to exit the elevator completely. The present invention provides, for example, the following: (Item 1) A method for reacting to at least one obstacle while operating a transporter, The steps include receiving at least one move command and user information, Steps include receiving and segmenting obstacle data, The steps include identifying at least one plane within the segmented obstacle data, The steps include identifying the at least one obstacle in the at least one plane, The steps include determining at least one status identifier based on at least one obstacle, user information, and at least one movement command, The steps include determining the distance between the transporter and the at least one obstacle based on the at least one situation identifier, The steps include accessing at least one authorization command associated with the distance, the at least one obstacle, and the at least one status identifier, The steps include accessing at least one automated response to the at least one move command, The steps include mapping the at least one move command to one of the at least one permit commands, The steps include at least moving the transporter based on the at least one move command and the at least one automated response associated with the mapped permission command, and Methods that include... (Item 2) The method according to item 1, wherein the at least one obstacle includes at least one moving object. (Item 3) The method according to item 1, wherein the distance includes a dynamically fluctuating quantity. (Item 4) The method according to item 1, wherein the at least one move command includes at least one obstacle passage command. (Item 5) The method according to item 1, further comprising the step of analyzing the obstacle data using a point cloud library (PCL). (Item 6) The method according to item 2, further comprising the step of tracking the at least one moving object using simultaneous localization and mapping (SLAM) with location-based detection and tracking of moving objects (DATMO) of the transporter. (Item 7) A transporter, wherein the transporter automatically reacts to at least one obstacle encountered while operating the transporter, and the transporter A navigation / PCL processor that receives at least one move command and user information, wherein the navigation / PCL processor receives and segments PCL data from a PCL processor, the navigation / PCL processor identifies a plane in the segmented PCL data, and the navigation / PCL processor identifies at least one obstacle in the plane, A distance processor that determines a situation identifier based on at least the user information, at least one movement command, and at least one obstacle, wherein the distance processor determines the distance between the transporter and the at least one obstacle based on the situation identifier, An object processor that accesses a permission command related to the distance, the at least one obstacle, and the situation identifier, wherein the object processor accesses an automatic response associated with the permission command, the object processor accesses the at least one movement command, and the object processor maps at least one of the at least one movement command and the permission command. At least one mode-dependent processor that receives an automatic response associated with the at least one movement command and the mapped permission command, wherein the at least one mode-dependent processor enables mode-specific processing. A transporter comprising the above. (Item 8) The transporter according to item 7, wherein the navi / PCL processor includes the step of storing the at least one obstacle in a memory cloud and enabling an external system of the transporter to access the at least one stored obstacle. (Item 9) A method for enabling a transporter to navigate stairs, comprising: Receiving at least one stair command; Receiving environmental information from a sensor mounted on the transporter; Identifying at least one stair structure based on the environmental information; Receiving a selection of a stair structure selected from the at least one stair structure; Measuring at least one characteristic of the selected stair structure based on the environmental information; Identifying at least one obstacle on the selected stair structure, if applicable, based on the environmental information; Identifying the last step of the selected stair structure based on the environmental information; The steps of providing at least one move command based on the measured at least one characteristic, the last step, and, if applicable, the obstacle, to move the transporter on the selected staircase structure, Methods that include... (Item 10) The method according to item 9, further comprising the step of locating the at least one staircase structure based on GPS data. (Item 11) The method according to item 9, further comprising the step of constructing a map of the selected staircase structure using SLAM. (Item 12) The method according to item 9, wherein the at least one characteristic includes the surface texture of the at least one kick plate. (Item 13) A transporter for navigating stairs, A staircase structure processor that receives at least one staircase command contained within user information, A stair structure locator that receives environmental information from a sensor mounted on the transporter, wherein the stair structure locator identifies the stair structure in the environmental information and receives a selection of the stair structure options, A stair characteristic processor for measuring at least one characteristic of the selected stair structure, wherein the stair characteristic processor, based on the environmental information, if applicable, locates obstacles on the selected stair structure. A stair movement processor that locates the last step of the selected stair structure based on the environmental information, wherein the stair movement processor provides at least one movement command based on the at least one characteristic, the last step, and, if applicable, the obstacle, instructing the transporter to move along the selected stair structure. Equipped with a transporter. (Item 14) A method for negotiating a door within a transporter, including at least one handle, a door swing, and a doorway, wherein the method is A step of receiving and segmenting environmental information from a sensor mounted on the transporter, wherein the environmental information includes the geometric shape of the transporter. The steps include identifying at least one plane within the segmented environmental information, The steps include identifying a door in at least one of the planes, A step of measuring the door based on the segmented environmental information, The steps include providing a first of the at least one move command to access the at least one handle and moving the transporter, If the door swing is toward the transporter, as the door opens, provide a second of the at least one move command, moving the transporter away from the door by a distance based on the measured door, A third of the aforementioned at least one movement command, comprising the steps of moving the transporter forward through the doorway. Methods that include... (Item 15) The sensor is the method described in item 14, including a time-of-flight sensor. (Item 16) A transporter for negotiating with a door, wherein the door includes at least one handle, a door swing, and a doorway, and the transporter is A sensor processor that determines the hinge side of the door and the direction and angle of the door from the sensor data, A move processor that generates at least one move command and moves the transporter, A door processor for determining the characteristics of the door, wherein the door processor determines the distance from the transporter to the door, determines the width of the door, generates at least one movement command, and moves the transporter through the door based on the door swing and the width of the door, and Equipped with a transporter. (Item 17) A method for storing a transporter inside a vehicle, wherein the vehicle has a storage compartment, the storage compartment has a door, and the method is The steps include receiving sensor data from a sensor mounted on the transporter and segmenting it, The steps include identifying at least one plane within the segmented sensor data, The steps include identifying a door in at least one of the planes, A step of measuring the door, including the width of the door, If the door is smaller than a pre-selected size related to the size of the transporter, the step of generating an alert; A step of positioning the transporter for access to the door, wherein the positioning step is based on the width of the door, The steps include generating a signal to open the door, A step of moving the transporter forward through the aforementioned doorway, The steps include generating a signal and closing the door. Methods that include... (Item 18) The method according to item 17, further comprising the step of generating a signal and locking the transporter inside the vehicle. (Item 19) A method for housing a transporter, wherein the transporter includes a sensor, and the method is The steps include: locating at least one storage / charging area by processing sensor data from the aforementioned sensor; The steps include providing at least one move command to move the transporter from the pre-selected location to at least one located storage / charging area, The steps include: locating the charging dock within the storage / charging area by processing the aforementioned sensor data; The steps include providing at least one move command and connecting the transporter and the charging dock. Methods that include... (Item 20) A method for negotiating with an elevator while operating a transporter, wherein the transporter includes sensors, the elevator includes an elevator sill and an elevator door, and the method is The steps include: locating the elevator by processing sensor data from the aforementioned sensor; Providing at least one first movement command, the steps of moving the transporter through the elevator door, over the elevator threshold, and into the elevator, The steps include: determining the geometric shape of the elevator by processing the aforementioned sensor data; The steps include providing at least one second movement command to move the transporter to a floor selection / exit location relative to the elevator threshold, When the elevator door is opened, the device provides at least one third movement command to move the transporter through the elevator door across the elevator threshold and completely exit the elevator. Methods that include... [Brief explanation of the drawing]

[0018] This instruction will be easier to understand by referring to the following explanation, which is considered in conjunction with the accompanying drawings.

[0019] [Figure 1] Figure 1 is a schematic diagram of the transporter described in this instruction. [Figure 2A] Figures 2A-2D are schematic block diagrams of the transporter components of this instruction. [Figure 2B] Figures 2A-2D are schematic block diagrams of the transporter components of this instruction. [Figure 2C] Figures 2A-2D are schematic block diagrams of the transporter components of this instruction. [Figure 2D] Figures 2A-2D are schematic block diagrams of the transporter components of this instruction. [Figure 3A] Figures 3A-3B are schematic block diagrams of the mode processing described in this instruction. [Figure 3B] Figures 3A-3B are schematic block diagrams of the mode processing described in this instruction. [Figure 4] Figure 4 is a schematic block diagram of the electronic components of the transporter described in this instruction. [Figure 5A] Figure 5A is a line drawing representation of the exemplary visual interface for this instruction. [Figure 5B] Figure 5B is a line drawing representation of the exemplary manual interface for this instruction. [Figure 6] Figure 6 is a line drawing representation of an exemplary manual interface switch / button in this instruction. [Figure 6A] Figure 6A is a schematic diagram of the user-controlled device case described in this instruction. [Figure 6B1] Figures 6B1 and 6B2 are schematic diagrams of the manual interface cover and UCP-assisted connection in this instruction. [Figure 6B2] Figures 6B1 and 6B2 are schematic diagrams of the manual interface cover and UCP-assisted connection in this instruction. [Figure 6B3] Figures 6B3 and 6B4 are schematic diagrams of the UCP assist holder described in this instruction. [Figure 6B4] Figures 6B3 and 6B4 are schematic diagrams of the UCP assist holder described in this instruction. [Figure 6C1] Figures 6C1 and 6C2 are schematic diagrams of the UCP-assisted connection device described in this instruction. [Figure 6C2] Figures 6C1 and 6C2 are schematic diagrams of the UCP-assisted connection device described in this instruction. [Figure 6D1] Figures 6D1 and 6D2 are schematic diagrams of the mounting board for the UCP-assisted connection device of this teaching. [Figure 6D2] Figures 6D1 and 6D2 are schematic diagrams of the mounting board for the UCP-assisted connection device of this teaching. [Figure 6D3] Figures 6D3 and 6D4 are schematic diagrams of the UCP-assisted connection device mounted on the mounting board for the UCP-assisted connection device. [Figure 6D4] Figures 6D3 and 6D4 are schematic diagrams of the UCP-assisted connection device mounted on the mounting board for the UCP-assisted connection device. [Figure 6D5] Figures 6D5 and 6D6 are schematic diagrams of other configurations of the UCP-assisted connection device described in this teaching. [Figure 6D6] Figures 6D5 and 6D6 are schematic diagrams of other configurations of the UCP-assisted connection device described in this teaching. [Figure 6E] Figure 6E is a line drawing of the sensor positioning configuration for the transporter in this instruction. [Figure 7A] Figures 7A-7E are charts of the communication packet information for this instruction. [Figure 7B] Figures 7A-7E are charts of the communication packet information for this instruction. [Figure 7C] Figures 7A-7E are charts of the communication packet information for this instruction. [Figure 7D] Figures 7A-7E are charts of the communication packet information for this instruction. [Figure 7E] Figures 7A-7E are charts of the communication packet information for this instruction. [Figure 8] Figure 8 is a graph of the manual interface response template for this instruction. [Figure 9]Figure 9 is a control flow diagram of the process described in this instruction. [Figure 10] Figure 10 is a schematic block diagram of the components of the UCP assist in this instruction. [Figure 11A1] Figures 11A1-11A2 are schematic block diagrams of the obstacle detection method described in this instruction. [Figure 11A2] Figures 11A1-11A2 are schematic block diagrams of the obstacle detection method described in this instruction. [Figure 11B] Figure 11B is a schematic block diagram of the obstacle detection components in this instruction. [Figure 12A] Figures 12A-12D show computer-generated representations of transporters configured with sensors. [Figure 12B] Figures 12A-12D show computer-generated representations of transporters configured with sensors. [Figure 12C] Figures 12A-12D show computer-generated representations of transporters configured with sensors. [Figure 12D] Figures 12A-12D show computer-generated representations of transporters configured with sensors. [Figure 13A] Figure 13A is a schematic block diagram of the extended stair climbing method described in this instruction. [Figure 13B] Figure 13B is a schematic block diagram of the components of the extended stair climbing method described in this instruction. [Figure 14A1] Figures 14A1-14A2 are schematic block diagrams of the door passage method described in this instruction. [Figure 14A2] Figures 14A1-14A2 are schematic block diagrams of the door passage method described in this instruction. [Figure 14B] Figure 14B is a schematic block diagram of the door passage components in this instruction. [Figure 15A] Figure 15A is a schematic block diagram of the restroom navigation method described in this instruction. [Figure 15B] Figure 15B is a schematic block diagram of the components of the restroom navigation system in this instruction. [Figure 16A1]Figures 16A1-16A2 are schematic block diagrams of the dynamic storage method described in this instruction. [Figure 16A2] Figures 16A1-16A2 are schematic block diagrams of the dynamic storage method described in this instruction. [Figure 16B] Figure 16B is a schematic block diagram of the components of the dynamic storage described in this instruction. [Figure 17A] Figure 17A is a schematic block diagram of the storage / charging method described in this instruction. [Figure 17B] Figure 17B is a schematic block diagram of the storage / charging components of this instruction. [Figure 18A] Figure 18A is a schematic block diagram of the elevator navigation method described in this instruction. [Figure 18B] Figure 18B is a schematic block diagram of the elevator navigation components in this instruction. [Modes for carrying out the invention]

[0020] The configuration of the user-controlled device in this instruction will be discussed in detail below in relation to transporters, for example, wheelchairs, etc. Various types of transporters can interface with the user-controlled device. The user-controlled device can communicate with the transporter via an electrical interface that can facilitate communication and data processing between the user interface device and a controller that can control the movement of the transporter. The user-controlled device can perform automated actions based on the environment in which the transporter operates and the desired movement of the transporter's user. External applications can enable monitoring and control of the transporter.

[0021] Referring here to Figure 1, the transporter 120 may include, but is not limited to, a user control device 131, a seat 105, a chassis 104, a base 160, a first wheel 101, a second wheel 102, a third wheel 103, and a cluster 121. The UCD 131 can receive user and sensor inputs and provide that information to the base 160. The UCD 131 may include, but is not limited to, a UCP 130 and a UCP assist 145. The UCP assist may also be positioned independently of the UCP 130 and may be positioned anywhere on the transporter 120, including, but is not limited to, the sides and rear of the transporter 120. The base 160 may control the movement of, for example, the wheels 101 and 102, the cluster 121, and the seat 105, based on inputs from the UCD 131 and other factors, including, but is not limited to, automated enforcement of requirements for safety and reliability.

[0022] Continuing to refer to Figure 1, the transporter 120 can operate in functional modes, such as, for example, a standard mode 201 (Figure 3A) in which the transporter 120 can operate with the drive wheels 101 and caster wheels 103, and a standard mode 217 (Figure 3A) in which the transporter 120 can operate with the drive wheels 101 / 102, be dynamically stabilized through onboard sensors, and operate with the chassis 104, casters 103, and seat 105 raised. The transporter 120 can also operate in a balanced mode 219 (Figure 3A) in which the transporter 120 can operate with the drive wheels 102, have a seat 105 at an elevated height, and be dynamically stabilized through onboard sensors. The transporter 120 can further operate in a stair mode 215 (Figure 3A) in which the transporter 120 can ascend and descend stairs using the wheel cluster 121 (Figure 1) and be dynamically stabilized. The transporter 120 can also operate in remote mode 205 (Figure 3A), in which the transporter 120 may operate with the drive wheels 101 / 102, and may be unused. The transporter 120 can optionally operate in docking mode 203 (Figure 3A), in which the transporter 120 may operate with the drive wheels 101 / 102 and caster wheels 103, thereby lowering the chassis 104. Some of the modes of the transporter 120 are described in U.S. Patent No. 6,343,664, issued 2 February 2002, entitled “Operating Modes for Stair Climbing in Cluster-wheel Vehicle” (incorporated herein by reference).

[0023] Referring primarily to Figures 2A-2D, the board 160 (Figure 1) may include, but is not limited to, at least one processor 43A-43D (Figures 2C / 2D), at least one motor drive unit 1050, 19, 21, 25, 27, 31, 33, 37 (Figures 2C / 2D), at least one inertial system 1070, 23, 29, 35 (Figures 2C / 2D), and at least one power controller 11A / B (Figure 2B). The board 160 (Figure 1) may be coupled to, for example, the UCD 131 (Figure 2A) via, for example, electronic communication means 53C and protocols such as the Controller Area Network (CAN) bus protocol. The UCD131 (Figure 2A) can optionally be communicatively coupled to electronic devices 140A (Figure 2A), such as tablets and personal computers, telephones, and lighting systems, and may potentially run external applications 140 (Figure 4). The UCD131 (Figure 2A) can optionally include at least one manual interface, such as a joystick 133 (Figure 5B) and at least one push button 141A / B / C (Figure 6), at least one visual interface, such as a display (Figure 5A), and optionally at least one UCP assist 145 (Figure 4). The UCD131 (Figure 2A) can optionally be communicatively coupled to a peripheral control module 1144, a sensor assist module 1141, and autonomous control modules 1142 / 1143. Communication can be enabled by, for example, the CAN bus protocol and the Ethernet® protocol, for example. Other protocols may also be used.

[0024] Continuing to refer mainly to Figures 2A-2D, in some configurations, each at least one processor 43A-43D (Figure 2C / 2D) may include, but is not limited to, at least one cluster motor drive unit 1050, 27 (Figure 2C / 2D), at least one right wheel motor drive unit 19, 31 (Figure 2C), at least one left wheel motor drive unit 21, 33 (Figure 2C / 2D), at least one seat motor drive unit 25, 37 (Figure 2C / D), and at least one inertial sensor pack 1070, 23, 29, 35 (Figure 2C / 2D). The base 160 may further include at least one cluster brake 57, 69 (Figure 2C / 2D), at least one cluster motor 83, 89 (Figure 2C / 2D), at least one right wheel brake 59, 73 (Figure 2C / 2D), at least one left wheel brake 63, 77 (Figure 2C / 2D), at least one right wheel motor 85, 91 (Figure 2C / 2D), at least one left wheel motor 87, 93 (Figure 2C / 2D), at least one seat motor 45, 47 (Figure 2C / 2D), at least one seat brake 65, 79 (Figure 2C / 2D), at least one cluster position sensor 55, 71 (Figure 2C / 2D), and at least one manual brake release device 61, 75 (Figure 2C / 2D).

[0025] Continuing to refer mainly to Figures 2A-2D, the base 160 (Figure 2C) can be used to drive the cluster 121 (Figure 1) of wheels 101 / 102 (Figure 1) that form the ground contact module. The ground contact module can be mounted on the cluster 121 (Figure 1), and each wheel 101 / 102 (Figure 1) of the ground contact module can be driven by a wheel motor drive unit, such as a right wheel motor drive unit 19 (Figure 2C) or a redundant right wheel motor drive unit B31 (Figure 2D). The cluster 121 (Figure 1) can rotate about the cluster axis, and the rotation is controlled by, for example, a cluster motor drive unit 1050 (Figure 2C) or a redundant cluster motor drive unit B27 (Figure 2D). For example, but not limited to, at least one of the following sensors can sense the state of the transporter 120 (Figure 1): at least one cluster position sensor 55 / 71 (Figure 2C / 2D), at least one manual brake release device sensor 61 / 75 (Figure 2C / 2D), at least one motor current sensor (not shown), and at least one inertial sensor pack 17, 23, 29, 35 (Figure 2C / 2D).

[0026] Continuing to refer to Figures 2A-2D, processors 43A-43D (Figures 2C / 2D) can be electronically coupled to UCD131 (Figure 2A) to receive control inputs and to other controllers to control peripheral and special functions of transporter 120 (Figure 1). Communication 53A-53C (Figure 2B) between UCD131 (Figure 2A), power controllers 11A / 11B (Figure 2B), and processors 43A-43D (Figures 2C / D), respectively, can follow any protocol, including but not limited to the CAN bus protocol. At least one Vbus 95, 97 (Figure 2B) can connect at least power controllers 11A / B (Figure 2B) to board 160 (Figure 2C) and to components outside board 160 (Figure 2C) via an external Vbus 107 (Figure 2B). In some configurations, processor A1 43A (Figure 2C) can be the master of CAN bus A 53A (Figure 2B). Slaves on CAN bus A 53A (Figure 2B) can be processor A2 43B (Figure 2C), processor B1 43C (Figure 2D), and processor B2 43D (Figure 2D). In some configurations, processor B1 43C (Figure 2D) can be the master of CAN bus B 53B (Figure 2B). Slaves on CAN bus B 53B (Figure 2B) can be processor B2 43C (Figure 2D), processor A1 43A (Figure 2C), and processor A2 43B (Figure 2C). UCD131 (Figure 2A) can be the master of CAN bus C 53C (Figure 2B). Slaves on the CAN bus C 53C (Figure 2B) can be the power controller 11A / B (Figure 2B), processor A1 43A (Figure 2C), processor A2 43B (Figure 2C), processor B1 43C (Figure 2D), and processor B2 43D (Figure 2D). The master node (either processors 43A-43D (Figure 2C / D) or UCD131 (Figure 2A)) can send data to or request data from the slaves.

[0027] Referring primarily to Figures 2C / 2D, in some configurations, the base 160 may include redundant processor sets A / B39 / 41 that control cluster 121 (Figure 1) and rotate the drive wheels 101 / 102 (Figure 1). Right / left wheel motor drive units A / B19 / 21, 31 / 33 may drive the right / left wheel motors A / B85 / 87, 91 / 93 that drive the right and left wheels 101 / 102 (Figure 1) of the transporter 120 (Figure 1). The wheels 101 / 102 (Figure 1) can be coupled to drive together. Turning can be achieved by driving the left wheel motors A / B87 / 93 and the right wheel motors A / B85 / 91 in different ratios. The cluster motor drive unit A / B1050 / 27 can drive cluster motors A / B83 / 89, which can rotate the wheel bases in the forward / rear direction and allow the transporter 120 (Figure 1) to remain horizontal while the front wheels 101 (Figure 1) are higher or lower than the rear wheels 102 (Figure 1). The cluster motors A / B83 / 89 can keep the transporter 120 (Figure 1) horizontal when going up or down curbs and can repeatedly rotate the wheel bases to ascend or descend stairs. The seat motor drive unit A / B25 / 37 can drive seat motors A / B45 / 47, which can raise or lower the seat 105 (Figure 1).

[0028] Further referring to Figures 2C / 2D, the cluster position sensors A / B55 / 71 can sense the position of the cluster 121 (Figure 1) of the wheels 101 / 102 (Figure 1). Signals from the cluster position sensors A / B55 / 71 and the seat position sensors A / B67 / 81 can be communicated between processors 43A-43D and used by processor set A / B39 / 41 to determine, for example, which signals should be sent to the right wheel motor drive unit A / B19 / 31, the cluster motor drive unit A / B15 / 27, and the seat motor drive unit A / B25 / 37. Independent control of the cluster 121 (Figure 1) and the drive wheels 101 / 102 (Figure 1) allows the transporter 120 (Figure 1) to operate in several modes, thereby allowing processors 43A-43D to switch between modes, for example, in response to local terrain. Mode switching can occur, for example, automatically and / or at the request of the user.

[0029] Continuing to refer to Figures 2C / 2D, the inertial sensor packs 1070, 23, 29, and 35 can, for example, sense the orientation of the transporter 120 (Figure 1). Each processor 43A-43D can include an accelerometer and a gyroscope within the inertial sensor packs 1070, 23, 29, and 35. In some configurations, each inertial sensor pack 1070, 23, 29, and 35 can include, for example, four sets of 3-axis accelerometers and 3-axis gyroscopes. The accelerometer and gyroscope data can be fused on each of the processors 43A-43D. Each processor 43A-43D can produce gravity vectors that can be used to calculate the orientation and rotational inertia ratio of the substrate 160 (Figure 1). The fused data can be shared across the processors 43A-43D and can undergo threshold criterion. The threshold criterion can be used to improve the accuracy of the device orientation and rotational inertia ratio. For example, fused data from any of the processors 43A-43D that exceeds a certain threshold can be discarded. Fused data from each of the processors 43A-43D within pre-selected limits can be averaged or processed in any other form, for example, but not limited to these. The inertial sensor packs 1070, 23, 29, and 35 may include, but are not limited to, sensors such as ST(R)microelectronics LSM330DLC, or any sensors that supply 3D digital accelerometers and 3D digital gyroscopes, or any sensors that can further measure gravity and body ratios. Sensor data can be processed, for example, filtered to improve the control of the transporter 120 (Figure 1), but is not limited to these.

[0030] Furthermore, referring mainly to Figures 2C / 2D, the base 160 (Figure 1) is, for example, not limited to, ALLEGRO TMThe ACS709 current sensor IC may be included, or any other sensor capable of sensing at least a pre-selected number of motor currents, having bidirectional sensing, having a user-selectable overcurrent fault setting, and capable of handling peak currents exceeding a pre-selected fault limit. The cluster position sensors A / B55 / 71, seat position sensors A / B67 / 81, and manual brake release device sensors A / B61 / 75 may include, but are not limited to, Hall sensors.

[0031] Referring primarily to Figure 3A, in some configurations, the base processor 100 (Figure 4) can support at least one operating mode, and the active controller 64A can enable navigation between modes. At least one operating mode may include, but is not limited to, standard mode 201 (described with respect to Figure 1), extended mode 217 (described with respect to Figure 1), balanced mode 219 (described with respect to Figure 1), stair mode 215 (described with respect to Figure 1), docking mode 203 (described with respect to Figure 1), and remote mode 205 (described with respect to Figure 1). Service modes may include, but is not limited to, restore mode 161, failsafe mode 167 (Figure 3B), update mode 169 (Figure 3B), self-test mode 171 (Figure 3B), calibration mode 163, power-on mode 207 (Figure 3B), and power-off mode 209 (Figure 3B). Regarding the recovery mode 161, if a power outage occurs when the transporter 120 (Figure 1) is not in one of a set of pre-selected modes, such as, but not limited to, standard mode 201, docking mode 203, or remote mode 205, the transporter 120 (Figure 1) enters recovery mode 161, allowing the transporter 120 (Figure 1) to safely reposition itself to the drive position of standard mode 201. During recovery mode 161, the base processor 100 (Figure 4) can select and activate certain components, such as, for example, seat motor drive units A / B25 / 37 (Figure 2C / 2D) and cluster motor drive units A / B1050 / 27 (Figure 2C / 2D). Functionality may be limited to, for example, controlling the positions of the seat 105 (Figure 1) and cluster 121 (Figure 1).

[0032] Referring primarily to Figure 3B, the transporter 120 (Figure 1) can transition to failsafe mode 167 when the transporter 120 (Figure 1) can no longer operate effectively. In failsafe mode 167, at least some active operations are stopped to protect against potentially erroneous or uncontrolled movements. The transporter 120 (Figure 1) can transition from standard mode 201 (Figure 3A) to update mode 169, enabling communication with an external application 140 (Figure 4), which may, for example, be running outside of the board 160 (Figure 1). The transporter 120 (Figure 1) can transition to self-test mode 171 when the transporter 120 (Figure 1) is first powered on. In self-test mode 171, the electronics within the board 160 (Figure 1) can perform self-diagnosis and synchronize with each other. In some configurations, system self-tests may be performed to check the integrity of the system, such as memory integrity verification tests and disabled circuit tests, which are not easily testable during normal operation. While in self-test mode 171, operational functions may be disabled.

[0033] Referring primarily to Figure 4, the transporter control system 200A may include, but is not limited to, at least one base processor 100 and at least one power controller 11, which can communicate bidirectionally with the system serial bus messaging system 130F via serial bus 143. The system serial bus messaging 130F can communicate bidirectionally with the I / O interface 130G, external communication 130D, UCP 130, and UCP assist 145. The UCP 130 and UCP assist 145 can access peripherals, processors, and controllers through interface modules, which may include, but is not limited to, input / output (I / O) interface 130G, system serial bus (SSB) messaging interface 130F, and external communication interface 130D. In some configurations, the I / O interface 130G may transmit / receive messages to / from at least one of, for example, an audio interface 150, an electronic interface 149, a manual interface 153, and a visual interface 151. The audio interface 150 can transmit data to an audio device, such as a speaker, which can issue an alert, for example, from the UCP 130, when the transporter 120 (Figure 1) requests attention. The electronic interface 149 can transmit / receive messages to / from, for example, a sensor 147, which may include, but is not limited to, a time-of-flight camera and other sensors. The manual interface 153 can transmit / receive messages to / from, for example, a joystick 133 (Figure 5B) and / or switches / buttons 141 / B / C (Figure 6), and / or information illumination such as LED lights, and / or a display 137 (Figure 5A), which may have, for example, a touchscreen. The UCP 130 and UCP Assist 145 can transmit / receive information to / from each other via the I / O interface 130G, system serial bus messaging 130F, external communication 130D, and I / O interface 130G, system serial bus messaging 130F, and external communication 130D.

[0034] Continuing to refer primarily to Figure 4, the system serial bus interface 130F can enable communication between the UCP 130, the UCP assist 145, the board processor (PBP) 100 (also shown, for example, as processor A1 43A (Figure 2C), processor A2 43B (Figure 2C), processor B1 43C (Figure 2D), and processor B2 43D (Figure 2D)), and the power controller 11 (also shown, for example, as power controller A11A (Figure 2B) and power controller B11B (Figure 2B)). Messages described herein can be exchanged between the UCP 130, the UCP assist 145, and the PBP 100 using, for example, the system serial bus 143, but are not limited to. The external communication interface 130D can enable communication between, for example, UCP 130, UCP Assist 145, and an external application 140 using wireless communication 144, such as, but not limited to, BLUETOOTH® technology. The UCP 130 and UCP Assist 145 can transmit / receive messages to / from sensor 147, which may be used to enable automatic and / or semi-automatic control of the transporter 120 (Figure 1).

[0035] Referring primarily to Figures 5A, 5B, and 6, the switches and buttons 141A / B / C (Figure 6) associated with the transporter 120 (Figure 1) can generate signals to the I / O interface 130G (Figure 4) upon activation. These signals can be decoded and debounced, for example, by the UCP 130 (Figure 4) and / or PBP 100 (Figure 4). Examples of functions that can be enabled by the switches / buttons 141A / B / C (Figure 6) include, but are not limited to, the height of the seat 105 (Figure 1), the tilt of the seat 105 (Figure 1), mode selection, drive setting menu selection, disabling the joystick 133 (Figure 5B), selection confirmation, power off request, alarm status acknowledgment, and horn activation. Alerts, such as flashing icons, can be provided to direct the user's attention to certain conditions. Conditions may include, but are not limited to, low battery, required inspection, out-of-range temperature, manually disabled parking brake that may prevent user-requested power off, and fatal malfunctions, warnings, or alerts. Switches / buttons 141A / B / C (Figure 6) may have context-dependent functionality and may have secondary functionality if, for example, a switch / button 141A / B / C (Figure 6) is pressed for a period of time. A switch / button 141A / B / C (Figure 6) may be disabled, for example, when a mode change occurs and / or when a battery charger is connected. When the joystick 133 (Figure 5B) is disabled, some other functions may be disabled, for example, but are not limited to, mode selection, drive menu selection, and seat adjustment 105 (Figure 1). A disabled switch / button 141A / B / C (Figure 6) may be re-enabled under certain conditions, for example, when the associated switch / button 141A / B / C (Figure 6) is released. In some configurations, button 141C (Figure 6) can provide a way to indicate that the power is on, and can also provide a means to indicate the device status and / or to acknowledge the device status. In some configurations, button 141B (Figure 6) can provide, for example, an emergency flashing indicator light and / or a power-on flashing indicator light.In some configurations, button 141A (Figure 6) can provide a means to enable horn and / or selection confirmation.

[0036] Referring primarily to Figure 6A, the UCD holder 133A can house manual and visual interfaces such as a joystick 133 (Figure 5B), a display 137 (Figure 5A), and associated electronic equipment. Connector 133C (Figure 6B2) can enable connection to the UCP assist 145 (Figure 4). In some configurations, the UCP assist holder 145A can be attached to the visual / manual interface holder 145C without tools. The UCP assist holder 145A can house the UCP assist 145, which may include a sensor 147A (Figure 12A). Sensor 147A (Figure 12A) may include, but is not limited to, a Texas Instruments(R) OPT8241 time-of-flight sensor, or any device that can provide a three-dimensional location of data sensed by sensor 147A (Figure 12A). The UCP assist holder 145A and connector 133C (Figure 6B2) can be located anywhere on the transporter 120 (Figure 1) and are not limited to being mounted on the visual / manual interface holder 145C.

[0037] Referring primarily to Figures 6B1 and 6B2, the manual / visual interface holder 145C may include, but is not limited to, a visual interface viewing window 137A (Figure 6B1) available on the first side 133E (Figure 6B1) of the manual / visual interface holder 145C, and a manual interface mounting hole 133B (Figure 6B1). A connector 133C (Figure 6B2) may be provided on the second side 133D (Figure 6B2) of the manual / visual interface holder 145C. Any of the viewing window 137A (Figure 6B1), the manual interface mounting hole 133B (Figure 6B1), and the connector 133C (Figure 6B2) may be located on any part of the manual / visual interface holder 145C, or may be completely absent. The manual / visual interface holder 145C, the visual interface viewing window 137A (Figure 6B1), the manual interface mounting hole 133B (Figure 6B1), and the connector 133C (Figure 6B2) can be of any size. The manual / visual interface holder 145C can be constructed from any material suitable for mounting on the visual interface viewing window 137A (Figure 6B1), the manual interface mounting hole 133B (Figure 6B1), and the connector 133C (Figure 6B2). The angle 145M can be associated with various orientations of the UCD holder 133A and therefore can be of various values. The UCD holder 133A can have a fixed orientation or can be hinged.

[0038] Referring primarily to Figures 6B3 and 6B4, the UCP assist holder 145A may include, for example, filter holes 136G and lens holes 136F, which provide visibility to, for example, a TEXAS INSTRUMENTS(R) OPT8241 3D time-of-flight sensor optical filter and lens, for example, a TEXAS INSTRUMENTS(R) OPT8241. The UCP assist holder 145A can be of any shape and size and can be constructed from any material depending on its mounting position on the transporter 120 and, for example, the sensor, processor, and power source provided within the UCP assist holder 145A. The rounded edges on holes 136G and 136F, on the casing 136E, and on the holder 145A can be replaced by any shape of edge. Hole 136H can house control electronics.

[0039] Referring primarily to Figures 6C1 and 6C2, connector 133C may include, but is not limited to, connector wires 133G (Figure 6C1) on a first side 133H (Figure 6C1) of the connector and connector pins 133F that may protrude from a second side 133I (Figure 6C2) of the connector. The connector wires 133G (Figure 6C1) and connector pins 133F can be of any size and shape, and there can be any number of connector wires 133G (Figure 6C1) and connector pins 133F. Furthermore, there can be any number of connectors 133C.

[0040] Referring primarily to Figures 6D1 and 6D2, the mounting board 134J may include, but is not limited to, pin holes 134D, mounting holes 134C, and matching features 134B. The first side 134A of the mounting board may be the same as the second side 134E, or the first side 134A may have different features from the second side 134E. The mounting holes 134C, pin holes 134D, and matching features 134B may be of any size and / or shape, and there may be any number of mounting holes 134C, pin holes 134D, and matching features 134B. The mounting board 134J may be used to mount a connector 133C (Figures 6C1 / 6C2). In some configurations, the mounting board 134J may include pin holes 134D that can accommodate connector pins 133F (Figures 6C1 / 6C2). The mounting board 134J can be provided in multiple components and configurations for housing the connector 133C (Figure 6C1 / 6C2).

[0041] Referring to Figures 6D3 and 6D4, the connector pin 133F is inserted into the pin hole 134D, allowing the connector 133C to be mounted on the mounting board 134J. The connector wire 133G can protrude from the first side 134A (Figure 6D3) of the mounting board, and the connector pin 133F can protrude from the second side 134E (Figure 6D4) of the mounting board. The connector 133C can be positioned at any location on the mounting board 134J and can cross multiple mounting boards 134J. Multiple connectors 133C can be mounted on the mounting board 134J.

[0042] Referring primarily to Figures 6D5 and 6D6, in some configurations, the second configuration connector 139D is mounted on the mounting board 134J (Figure 6D1) and can mount the UCP assist holder 145A (Figure 6A). The arc-shaped conductor 139A on the first side 139E of the second configuration connector can form a hole 139B into which a mating connector (not shown) from the UCP assist holder 145A (Figure 6A) can be inserted. The second side 139F of the second configuration connector may include a protrusion of the second configuration connector pin 139C which can be inserted into the mounting board 134J (Figure 6D1).

[0043] Referring primarily to Figure 6E, the transporter 120 (Figure 1) can be mated with any number of sensors 147 (Figure 4) in any configuration. In some configurations, some of the sensors 147 (Figure 4) are mounted on the back of the transporter 122 to perform specific objectives, such as backup safety. A stereo color camera / illumination 122A, an ultrasonic beam rangefinder 122B, a time-of-flight camera 122D / 122E, and a single-point LiDAR sensor 122F may be mounted to collaboratively detect obstacles behind the transporter 120 (Figure 1), for example, but not limited to these. The PBP 100 (Figure 4) and / or UCP assist 145 (Figure 4) can receive messages that may contain information from the cameras and sensors and can enable the transporter 120 (Figure 1) to react to events that may occur outside the user's field of view. The transporter 120 (Figure 1) may also optionally include a reflector 122C that can be mated with further sensors. The stereo color camera / illumination 122A can also be used as a taillight. Other types of cameras and sensors can also be mounted on the transporter 120 (Figure 1). Information from the cameras and sensors can be used to enable a smooth transition to the balanced mode 219 (Figure 3A) by providing information to the UCP assist 145 (Figure 4), which can then locate any obstacles that may interfere with the transition to the balanced mode 219 (Figure 3A).

[0044] Referring primarily to Figure 7A, the SSB143 (Figure 4) can provide communication, for example, through the use of the CAN bus protocol. Devices connected to the SSB143 (Figure 4) can be programmed to respond to / listen to specific messages received, processed, and transmitted by the SSB messaging 130F (Figure 4). Messages may include packets, but are not limited to, 8 bytes of data and a CAN bus device identifier that can identify the source of the packet. A device receiving a CAN bus packet can ignore invalid CAN bus packets. When an invalid CAN bus packet is received, the receiving device can take alternative measures, for example, depending on the current mode of the transporter 120 (Figure 1), previous CAN bus messages, and the receiving device. Alternative measures can, for example, maintain the stability of the transporter 120 (Figure 1). The bus master of the SSB143 (Figure 4) can transmit master synchronization packets 901 to establish a frame-based bus alive sequence and synchronize the time reference.

[0045] Referring primarily to Figure 7B, the user control panel packet #1903 (Figure 7A) may contain 8 bytes and may have, for example, a packet format 701. The packet format 701 may, but is not limited to, include a status 701A, an error device identification 701B, a request mode 701C, an out-of-control byte 701D, a command speed 701E, a command turn rate 701F, a seat control byte 701G, and system data 701H. The status 701A may, but is not limited to, include possibilities such as self-test in progress, device OK, non-fatal device failure (data OK), and a fatal device failure where the receiving device may ignore the data in the packet. If UCP 130 receives, for example, a device failure status, UCP 130 may post the error to the graphical user interface (GUI) on, for example, display 137 (Figure 5A). The error device ID 701B may include the logical ID of the device whose received communication was determined to be erroneous. Error device ID 701B can be set to zero when no errors are received.

[0046] Referring primarily to Figure 7C, the requested mode code 701C (Figure 7B) can be defined such that a single-bit error cannot indicate another valid mode. For example, the mode code may include, but is not limited to, self-test, standard, extension, stairs, balance, docking, remote, calibration, update, power off, power on, fail sale, restore, flashing indicator light, door, dynamic storage, static storage / charging, restroom, elevator, and extension stairs (their meanings are discussed herein). The requested mode code 701C may indicate whether the requested mode should be processed to either (1) maintain the current mode or perform an authorized mode change, or (2) enable context-dependent processing. In some configurations, special circumstances may require automatic control of the transporter 120 (Figure 1). For example, the transporter 120 (Figure 1) may automatically transition from stairs mode 215 (Figure 3A) to extension mode 217 (Figure 3A) when the transporter 120 (Figure 1) reaches the top of a stair structure. In some configurations, the PBP100 (Figure 4) and / or UCP assist 145 (Figure 4) can modify the PBP100's response to commands from the joystick 133 (Figure 1) by, for example, setting the transporter 120 (Figure 1) to a specific mode. In some configurations, the transporter 120 (Figure 1) can be automatically set to a low-speed drive mode when it transitions from stair mode 215 (Figure 3A). In some configurations, the joystick 133 (Figure 1) can be disabled when the transporter 120 (Figure 1) automatically transitions from stair mode 215 (Figure 3A) to extended mode 217 (Figure 3A). Once a mode is selected by UCP Assist 145 (Figure 4), for example, UCP 130 (Figure 4) via user input (but not limited to), and / or PBP 100 (Figure 4), mode availability can be determined, at least partially, based on the current operating conditions.

[0047] Continuing to refer primarily to Figure 7C, in some configurations, the user may be alerted if a transition from the current mode to a user-selected mode is not possible. Certain modes and mode transitions may require user assistance, as user notification is possible. For example, adjustment of the seat 105 (Figure 1) may be required when positioning the transporter 120 (Figure 1) for determining the center of gravity of the transporter 120 (Figure 1) along with the load on the transporter 120 (Figure 1). The user may be prompted to perform specific actions based on the current mode and / or modes to which a transition may occur. In some configurations, the transporter 120 (Figure 1) may be configured for, for example, high speed, medium speed, medium speed damping, or low speed templates, but not limited to these. The speed of the transporter 120 (Figure 1) may be modified, for example, by using a speed template 700 (Figure 8) that associates output 703 (Figure 8) (and wheel commands) with joystick displacement 702 (Figure 8).

[0048] Referring here to Figure 7D, the uncontrolled byte 701D (Figure 7B) may, but is not limited to, include bit definitions such as power cut-off OK 801A, drive selection 801B, emergency power off request 801C, calibration state 801D, mode restriction 801E, user training 801F, and joystick centering 801G. In some configurations, power cut-off OK 801A may be defined to zero if power cut-off is not currently possible, and drive selection 801B may be defined to specify motor drive unit 1 (bit 6=0) or motor drive unit 2 (bit 6=1). In some configurations, emergency power off request 801C may be defined to indicate whether the emergency power off request is normal (bit 5=0) or the emergency power off request sequence is being processed (bit 5=1), and calibration state 801D may be defined to indicate a request for user calibration (bit 4=1). In some configurations, mode restriction 801E can be defined to indicate whether there are restrictions to enter a particular mode. Bit 3 can be zero if the mode can be entered without restriction. If there are restrictions to enter a mode, for example, the equilibrium critical mode may require certain restrictions to maintain the safety of the passengers on the transporter 120 (Figure 1), and bit 3 can be 1. User training 801F can be defined to indicate whether user training is possible (bit 2=1) or not (bit 2=0), and joystick centering 801G can be defined to indicate whether the joystick 133 (Figure 1) is centered (bit 0-1=2) or not (bit 0-1=1).

[0049] Referring again primarily to Figure 7B, the command speed 701E can be a value representing, for example, forward or backward speed. Forward speed can be a positive value, for example, and backward speed can be a negative value. The command turn ratio 701F can be a value representing left or right command turn ratio. Left turn can be a positive value, and right turn can be a negative value. The value can represent the speed difference between the left and right of wheels 101 / 102 (Figure 1) scaled uniformly to the command speed 701E.

[0050] Referring again primarily to Figure 7D, the joystick 133 (Figure 1) can have multiple redundant hardware inputs. For example, signals such as command speed 701E (Figure 7B), command rotation rate 701F (Figure 7B), and joystick centering 801G can be received and processed. The command speed 701E (Figure 7B) and command rotation rate 701F (Figure 7B) can be determined from the first of the multiple hardware inputs, and the joystick centering 801G can be determined from the second of the hardware inputs. The value of joystick centering 801G can indicate when a non-zero command speed 701E (Figure 7B) and a non-zero command rotation rate 701F (Figure 7B) are valid. For example, fault conditions related to the joystick 133 (Figure 1) in the X and Y directions can be detected. For example, each axis of the joystick 133 (Figure 1) can be associated with a dual sensor. Each sensor pair input (X (command speed 701E (Figure 7B)) and Y (command swivel rate 701F (Figure 7B)) can be associated with an independent A / D converter, each with a voltage-referenced channel check input. In some configurations, the command speed 701E (Figure 7B) and command swivel rate 701F (Figure 7B) can be held to zero by a secondary input to avoid mismatch. If the joystick centering 801G is within the minimum dead zone, or if the joystick 133 (Figure 1) is faulty, the joystick 133 (Figure 1) can be indicated as centered. The dead zone can indicate the amount of displacement of the joystick 133 (Figure 1) that may occur before a non-zero output from the joystick 133 (Figure 1) can appear. The dead zone range can be set to include the electrical center position, which may be, for example, 45% to 55% of a defined signal range, but is not limited.

[0051] Referring primarily to Figure 7E, the seat control byte 701G (Figure 7B) can transmit seat adjustment commands. The frame tilt command 921 may include values ​​such as disabled, forward tilt, backward tilt, and idle. The seat height command 923 may include values ​​such as disabled, seat lower, seat raise, and idle.

[0052] Referring again to Figure 7A, the user control packet 905 may include, for example, a header, message ID, and data for messages to and from an external application 140 (Figure 4), primarily via a BLUETOOTH® connection. The PBP packet 907 may include data originating from PBP 100 (Figure 4) and directed to PSC 11 (Figure 4). PBP A1 43A (Figure 2C) may be designated, for example, as the master of SSB 143 (Figure 4), and PBP B1 43C (Figure 2D) may be designated, for example, as the secondary master of SSB 143 (Figure 4) if PBP A1 43A (Figure 2C) is no longer transmitted on the bus. The master of SSB 143 (Figure 4) may transmit master synchronization packets 901 at a periodic rate, for example, every 20ms + / - 1%. Devices communicating using SSB143 (Figure 4) can synchronize message transmission with the start of the master synchronization packet 901.

[0053] Referring primarily to Figure 8, the joystick 133 (Figure 1) can be configured, for example, to have different transfer functions for use under different conditions according to the user's capabilities. The velocity template (transfer function) 700 shows an exemplary relationship between the physical displacement 702 of the joystick 133 (Figure 1) and the output 703 of the joystick 133 (Figure 1) after transfer function processing. Forward and backward movement of the joystick 133 (Figure 1) can be interpreted as a forward longitudinal request and a backward longitudinal request, respectively, from the user's perspective in the seat 105 (Figure 1), and can be equivalent to the X request value of the command velocity 701E (Figure 7). Left and right movement of the joystick 133 (Figure 1) can be interpreted as a left turn request and a right turn request, respectively, from the user's perspective in the seat 105 (Figure 1), and can be equivalent to the Y request value of the command turn rate 701F. The joystick output 703 may be modified, for example, during certain conditions such as battery voltage conditions, seat height 105 (Figure 1), mode, failure conditions of joystick 133 (Figure 1), and when speed correction is required by PBP 100 (Figure 4). The joystick output 703 may be ignored, and the joystick 133 (Figure 1) may be considered centered, for example, when a mode change occurs, or while in update mode 169 (Figure 3B), or when a battery charger is connected, or when in stair mode, or when joystick 133 (Figure 1) is disabled, or under certain fault conditions.

[0054] Continuing to refer primarily to Figure 8, the transporter 120 (Figure 1) can be configured to suit a particular user. In some configurations, the transporter 120 (Figure 1) can be tailored to user capabilities, for example, by setting speed templates and mode limits. In some configurations, the transporter 120 (Figure 1) can receive commands from an external application 140 (Figure 4) running on a device such as, but not limited to, a mobile phone, a computer tablet, and a personal computer. The commands can provide, for example, default and / or dynamically determineable settings for configuration parameters. In some configurations, the user and / or an attendant can configure the transporter 120 (Figure 1).

[0055] Referring here to Figure 9, any of the UCP130, UCP Assist 145, and / or PBP100 can perform a power-on and processing sequence when the UCP130 (Figure 4) and / or PBP100 (Figure 4) and / or UCP Assist 145 (Figure 4) receive a power-on indication 1017. The power-on process 1005 may include integrity checks, which may be performed on stored data and various indicators, but are not limited to those mentioned above. Memory tests may be performed, system and configuration parameters may be established in memory, and the ready-to-operate state may be indicated, for example, by illuminated LEDs, but are not limited to those mentioned above. After the power-on process 1005, a transition to the main loop process 1001 may follow, in which sensor data 1003 may be received and processed, an input message 1027 may be received, and an output message 1013 may be generated periodically, for example, once per frame of SSB143 (Figure 4), but are not limited to those mentioned above. Device data 1009 and communication information 1011 can be accessed. Device data 1009 may include, but is not limited to, device status, which may display device diagnostic data. In some configurations, communication with an external application 140 (Figure 4) may be provided to collect information such as, but is not limited to, application code version number, application code CRC value, and protocol map compatibility information. UCP 130 (Figure 4), UCP assist 145 (Figure 4), and / or PBP 100 (Figure 4) may execute a power-off sequence in response to the receipt of a power-off request 1015. Ongoing activities such as, but is not limited to, data logging and receiving data from, for example, switches / buttons 141A / B / C (Figure 6) and joysticks 133 (Figure 1) may be disabled to ensure a consistent termination. Configuration, usage, service, security, and other information may be stored and remembered during the power-off process 1007.

[0056] Referring here to Figure 10, the UCP Assist 145 can provide the user with extended functionality, such as assisting the user in avoiding obstacles, passing through doors, going up and down stairs, riding elevators, and parking / transporting the transporter 120 (Figure 1), for example. In general, the UCP Assist 145 can receive user input (e.g., UI data 633) and / or input from the PBP 100 (Figure 4), for example, through messages from the user interface device and sensor 147, for example. The UCP Assist 145 can further receive sensor input, for example, through the sensor processing system 661, for example. The UI data 633 and the output from the sensor processing system 661 can inform the command processor 601 to invoke a mode that is automatically or manually selected, for example. The command processor 601 can pass the UI data 633 and the output from the sensor processing system 661 to a processor that can enable the invoked mode. The processor can generate a move command 630 based on at least the previous move command 630, UI data 633, and the output from the sensor processing system 661.

[0057] Continuing to refer to Figure 10, the UCP Assist 145 may include, but is not limited to, a command processor 601, a movement processor 603, a simultaneous localization and mapping (SLAM) processor 609, a point cloud library (PCL) processor 611, a geometric shape processor 613, and an obstacle processor 607. The command processor 601 may receive user interface (UI) data 633 from a message bus. The UI data 633 may include, but is not limited to, signals from a joystick 133 (Figure 1) that provide indications of a desired direction and velocity of movement for the transporter 120 (Figure 1). The UI data 633 may also include selections of alternative modes to which the transporter 120 (Figure 1) may transition. In some configurations, in addition to the modes described with respect to Figures 3A / 3B, the UCP Assist 145 can handle mode selections such as, but are not limited to, door mode 605A, restroom mode 605B, extended stair mode 605C, elevator mode 605D, dynamic parking mode 605E, and static storage / charging mode 605F. Any of these modes may include a mode of moving to a fixed position, or the user may instruct the transporter 120 (Figure 1) to move to a position. The message bus 54 can receive control information regarding the transporter 120 (Figure 1) in the form of UI data 633, and can also receive the results of processing performed by the UCP Assist 145 in the form of commands such as move commands 630, which may include speed and direction, but are not limited to. The movement command 630 can be provided to the PBP 100 (Figure 4), which can transmit this information via the message bus 54 to the wheel motor drive units 19 / 21 / 31 / 33 (Figure 2C / D) and the cluster motor drive units 1050 / 27 (Figure 2C / D). The movement command 630 can be determined by the movement processor 603 based on information provided by the mode-specific processor. The mode-specific processor can determine the mode-dependent data 657, in particular, based on information provided through the sensor handling processor 661.

[0058] Continuing to refer primarily to Figure 10, the sensor handling processor 661 may include, but is not limited to, a transporter geometric shape processor 613, a PCL processor 611, a SLAM processor 609, and an obstacle processor 607. The movement processor 603 can provide movement commands 630 to the sensor handling processor 661 and provide information necessary to determine the future movement of the transporter 120 (Figure 1). Sensor 147 can provide environmental information 651, which may include, for example, geometric information about obstacles 623 and the transporter 120 (Figure 1). In some configurations, sensor 147 may include at least one time-of-flight sensor that can be mounted anywhere on the transporter 120 (Figure 1). Multiple sensors 147 can be mounted on the transporter 120 (Figure 1). The PCL processor 611 can collect and process the environmental information 651 and produce PCL data 655. PCL, a group of code libraries for processing 2D / 3D image data, can, for example, assist in processing environmental information 651. Other processing techniques can also be used.

[0059] Continuing to refer primarily to Figure 10, the transporter geometric shape processor 613 can receive transporter geometric shape information 649 from sensor 147, perform any processing necessary to prepare the transporter geometric shape information 649 for use by the mode-dependent processor, and provide the processed transporter geometric shape information 649 to the mode-dependent processor. The geometric shape of the transporter 120 (Figure 1) can be used, but is not limited to, to automatically determine whether the transporter 120 (Figure 1) can fit in and / or through a space such as a staircase structure and a door. The SLAM processor 609 can determine navigation information 653 based, for example, but is not limited to, UI data 633, environmental information 651, and movement commands 630. The transporter 120 (Figure 1) can, at least partially, proceed along a path set by the navigation information 653. The obstacle processor 607 can locate the obstacle 623 and the distance 621 to the obstacle 623. The obstacle 623 may include, but is not limited to, doors, stairs, cars, and various miscellaneous features near the path of the transporter 120 (Figure 1).

[0060] Referring here to Figures 11A1 and 11A2, a method 650 for handling at least one obstacle 623 (Figure 11B) while navigating the transporter 120 (Figure 1) may include, but are not limited to, a step 1151 (Figure 11A1) of receiving at least one move command 630 (Figure 11B); a step 1153 (Figure 11A1) of receiving and segmenting PCL data 655 (Figure 11B); a step 1155 (Figure 11A1) of identifying at least one plane within the segmented PCL data 655 (Figure 11B); and a step 1157 (Figure 11A1) of identifying at least one obstacle 623 (Figure 11B) within the at least one plane. Method 650 may further include a step 1159 (Figure 11A1) to determine at least one status identifier 624 (Figure 11B) based on at least one obstacle, UI data 633 (Figure 11B), and a move command 630 (Figure 11B), and a step 1161 (Figure 11A1) to determine the distance 621 (Figure 11B) between the transporter 120 (Figure 1) and at least one obstacle 623 (Figure 11B) based on at least one status identifier 624 (Figure 11B). Method 650 may also include a step 1163 (Figure 11A1) to access at least one allow command associated with the distance 621 (Figure 11B), at least one obstacle 623 (Figure 11B), and at least one status identifier 624 (Figure 11B). Method 650 may further include a step 1163 (Figure 11A1) to access at least one auto-responder for at least one grant command; a step 1167 (Figure 11A2) to map at least one move command 630 (Figure 11B) to one of at least one grant commands; and a step 1169 (Figure 11A2) to provide the mode-dependent processor with at least one move command 630 (Figure 11B) and at least one auto-responder associated with the mapped grant command.

[0061] Continuing to refer to Figures 11A1 and 11A2, at least one obstacle 623 (Figure 11B) may optionally include at least one stationary object and / or at least one moving object. Distance 621 (Figure 11B) may optionally include a fixed amount and / or a dynamically varying amount. At least one movement command 630 (Figure 11B) may optionally include a follow command, a command to pass at least one obstacle at least once, a command to proceed alongside at least one obstacle, and at least one obstacle non-follow command. Method 650 may optionally include the steps of storing obstacle data 623 (Figure 11B) and enabling access to the stored obstacle data stored by an external system of the transporter 120 (Figure 1), for example, in a cloud storage device 607G (Figure 11B) and / or a local storage device 607H (Figure 11B). The PCL data 655 (Figure 11B) may optionally include sensor data 147 (Figure 10). The method 650 may optionally include the steps of: collecting sensor data 147 (Figure 10) from at least one time-of-flight sensor mounted on the transporter 120 (Figure 1); analyzing the sensor data 147 (Figure 10) using a point cloud library (PCL); tracking at least one moving object using simultaneous localization and mapping (SLAM) with location-based moving object detection and tracking (DATMO) of the transporter 120 (Figure 1); identifying at least one plane in obstacle data 623 (Figure 11B) using, for example, random sample consensus and a PCL library; and providing at least one auto-responder associated with a mapped permission command to a mode-dependent processor. Method 650 may also optionally include the steps of receiving a resume command and providing the mode-dependent processor with at least one move command 630 (Figure 11B) and at least one auto-response associated with a mapped allow command, following the resume command. The at least one auto-response may optionally include a speed control command.

[0062] Referring here to Figure 11B, the obstacle processor 607 for handling at least one obstacle 623 while navigating the transporter 120 (Figure 1) may include, but is not limited to, a navigation / PCL data processor 607F that receives and segments PCL data 655 from the PCL processor 611, identifies at least one plane within the segmented PCL data 655, and identifies at least one obstacle 623 within the at least one plane. The obstacle processor 607 may further include a distance processor 607E that determines at least one situation identifier 624 based on at least one UI data 633, at least one move command 630, and at least one obstacle 623. The distance processor 607E may determine at least the distance 621 between the transporter 120 (Figure 1) and at least one obstacle 623 based on at least one situation identifier 624. The moving object processor 607D and / or the stationary object processor 607C can access at least one grant command associated with distance 621, at least one obstacle 623, and at least one status identifier 624. The moving object processor 607D and / or the stationary object processor 607C can access at least one auto-responder from the auto-responder list 627 that is associated with at least one grant command. The moving object processor 607D and / or the stationary object processor 607C can access at least one movement command 630, including, for example, a velocity / signal command and a direction command / signal, and can map at least one movement command 630 to one of the at least one grant commands. The moving object processor 607D and / or the stationary object processor 607C can provide the mode-dependent processor with at least one movement command 630 and at least one auto-responder associated with the mapped grant command.

[0063] Continuing to refer to Figure 11B, the stationary object processor 607C may optionally perform any special processing required when encountering at least one stationary object, and the moving object processor 607D may optionally perform any special processing required when encountering at least one moving object. The distance processor 607E may optionally process distance 621, which may be a fixed and / or dynamically varying quantity. At least one movement command 630 may optionally include a follow command, a pass command, a side-movement command, a move to a fixed position command, and a non-follow command. The navigation / PCL processor 607F may optionally store obstacles 623 in, for example, but not limited to, local memory 607H and / or on memory cloud 607G, and may enable access to the stored obstacles 623 by an external system of the transporter 120 (Figure 1), such as, for example, an external application 140 (Figure 4). The PCL processor 611 can optionally collect sensor data 147 (Figure 10) from at least one time-of-flight camera mounted on the transporter 120 (Figure 1), and can analyze the sensor data 147 (Figure 10) using a point cloud library (PCL) to obtain PCL data 655. The moving object processor 607D can optionally track at least one moving object based on the location of the transporter 120 (Figure 1) using navigation information 653 collected by the simultaneous localization and mapping (SLAM) processor 609, and can identify at least one plane using, for example, random sample consensus and the PCL library, and can provide at least one move command 630 to the mode-dependent processor based on at least one automated response associated with a mapped allow command. The obstacle processor 607 can optionally receive a restart command and, following the restart command, provide at least one move command 630 to the mode-dependent processor based on at least one automated response associated with a mapped allow command. At least one automated response may optionally include a speed control command.For example, if the joystick 133 (Figure 1) indicates a direction that could position the transporter 120 (Figure 1) within a collision course with an obstacle 623, such as a wall, then at least one automatic response, including speed control, can protect the transporter 120 (Figure 1) from collision. At least one automatic response can be deactivated by a reverse user command, for example, the joystick 133 (Figure 1) can be released, stopping the movement of the transporter 120 (Figure 1). The joystick 133 (Figure 1) can then be re-engaged to resume the movement of the transporter 120 (Figure 1) toward the obstacle 623.

[0064] Referring primarily to Figures 12A-12D, environmental information 651 (Figure 10) can be received from sensor 147 (Figure 10). Any of the PBP 100 (Figure 4), UCP 130 (Figure 4), and / or UCP assist 145 (Figure 10) can process the process environmental information 651 (Figure 10). In some configurations, the PCL processor 611 (Figure 10) can use sensor 147 (Figure 10) to process the environmental information 651 (Figure 10), i.e., the point cloud library (PCL) function, for example, accordingly. As the transporter 120 (Figure 1) moves along the travel path 2001 (Figure 12D) around the potential obstacle 2001A, the sensor 147 (Figure 10) can detect a box 2005 (Figures 12C-12D) from the sensor 147 (Figure 10), which may contain data that, for example, takes the shape of a point cloud, i.e., a frustum of a cone 2003 (Figures 12B-12D). For example, a sample consensus method from PCL, for example, a random sample consensus method, can be used to find a plane between the point clouds. Any of the UCP 130 (Figure 4), UCP Assist 145 (Figure 10), and PBP 100 (Figure 4) can create a projected cloud and determine the positive correspondence between the point clouds, and from these, the centroid of the projected cloud can be determined. A central reference point 148 can be used to determine the location of environmental conditions relative to the transporter 120. For example, whether the transporter 120 is moving toward or away from an obstacle, or the location of the door hinge relative to the transporter 120, can be determined based on the location of the central reference point 148. Sensor 147 (Figure 10) may include, for example, a time-of-flight sensor 147A.

[0065] Referring primarily to Figure 13A, Method 750 for enabling the transporter 120 (Figure 1) to navigate stairs may include, but is not limited to, a step 1251 of receiving at least one stair command, and a step 1253 of receiving environmental information 651 (Figure 10) from a sensor 147 (Figure 10) mounted on the transporter 120 (Figure 1) through an obstacle processor 607 (Figure 10). Method 750 may further include a step 1255 of locating at least one of the stair structures 643 (Figure 13B) in the environmental information 651 (Figure 10) based on the environmental information 651 (Figure 10), and a step 1257 of receiving a selection of a stair structure 643A (Figure 13B) selected from at least one of the stair structures 643 (Figure 13B). Method 750 may further include a step 1259 to measure at least one characteristic 645 (Figure 13B) of the selected staircase structure 643A (Figure 13B), and a step 1261 to locate, if applicable, obstacles 623 (Figure 13B) on the selected staircase structure 643A (Figure 13B) based on environmental information 651 (Figure 13B). Method 750 may also include a step 1263 to locate the last step of the selected staircase structure 643A (Figure 13B) based on environmental information 651 (Figure 13B), and a step 1265 to provide a move command 630 (Figure 13B) based on the measured at least one characteristic 645 (Figure 13B), the last step, and, if applicable, obstacles 623 (Figure 13B), to move the transporter 120 (Figure 1) onto the selected staircase structure 643A (Figure 13B). If the last staircase has not been reached in step 1267, method 750 can continue to provide a move command 630 (Figure 13B) to move the transporter 120 (Figure 1). Method 750 may optionally include the steps of locating at least one of the staircase structures 643 (Figure 13B) based on GPS data, and building and saving a map of the selected staircase structures 643A (Figure 13B) using, for example, SLAM, but not limited to.Method 750 may also optionally include steps of accessing the geometric shape 649 (Figure 13B) of the transporter 120 (Figure 1), comparing the geometric shape 649 (Figure 13B) with at least one of the characteristics 645 (Figure 13B) of the selected stair structure 643A (Figure 13B), and modifying the steps to be navigated based on the comparison step. At least one of the characteristics 645 (Figure 13B) may optionally include the height of at least one riser of the selected stair structure 643A (Figure 13B), the surface texture of at least one riser, and the surface temperature of at least one riser. Method 750 may optionally include a step of generating an alert if the surface temperature is outside a threshold range and the surface texture is outside a static friction setting. The threshold range may optionally include temperatures below 33°F. The static friction setting may optionally include a carpet texture. Method 750 may further include the steps of determining the topography of the area surrounding the selected staircase structure 643A (Figure 13B) based on environmental information 651 (Figure 13B), and generating an alert if the topography is not flat. Method 750 may also optionally include the step of accessing a set of extreme conditions.

[0066] Referring primarily to Figure 13B, automated stair navigation can be enabled by a stair processor 605C to allow the transporter 120 (Figure 1) to navigate the stairs. A sensor 147 (Figure 10) on the transporter 120 (Figure 1) can determine, where applicable, whether the environmental information 651 (Figure 10) includes at least one stair structure 643. Along with any automatic determination of the location of at least one stair structure 643, the UI data 633 may include a selection of a stair mode 215 (Figure 3A), which can invoke an automatic, semi-automatic, or semi-manual stair climbing process. Either the automatic localization of at least one stair structure 643 or the reception of the UI data 633 can invoke the stair processor 605C for extended stair navigation functionality. The stair processor 605C can receive data from the obstacle processor 607, such as, for example, at least one obstacle 623, the distance 621 to at least one obstacle 623, the situation 624, navigation information 653, and geometric shape information 649 relating to the transporter 120 (Figure 1). The navigation information may include, but is not limited to, possible paths that the transporter 120 (Figure 1) may traverse. The at least one obstacle 623 may include, among other obstacles, at least one stair structure 643. The stair processor 605C can locate at least one stair structure 643 and can determine the selected stair structure 643A automatically or otherwise, for example, but is not limited to, navigation information 653 and / or UI data 633 and / or transporter geometric shape information 649. For example, this can be used to determine the characteristics 645 of the selected stair structure 643A, such as riser information, and the distance 640 to the first stair and the next stair. The staircase processor 605C can determine the movement command 630 of the transporter 120 (Figure 1) based, for example, but not limited to, characteristics 645, distance 621, and navigation information 647.The movement processor 603 can move the transporter 120 (Figure 1) based on the movement command 630 and the distance 640 to the next staircase, and after the staircase from the selected staircase structure 643A has been traversed, control can be transferred to the sensor processing 661. Depending on whether the transporter 120 (Figure 1) has completed traversing the selected staircase structure 643A, the sensor processing 661 can either proceed with navigating the selected staircase structure 643A or continue following the path set by the navigation information 653. While the transporter 120 (Figure 1) is traversing the selected staircase structure 643A, the obstacle processor 607 can detect an obstacle 623 on the selected staircase structure 643A, and the staircase processor 605C can provide a movement command 630 to avoid the obstacle 623. The location of the obstacle 623 can be stored locally on the transporter 120 (Figure 1) and / or outside the transporter 120 (Figure 1) for future use.

[0067] Continuing to refer primarily to Figure 13B, the stair processor 605C may include, but is not limited to, a stair structure processor 641B that receives at least one stair command contained within UI data 633, and a stair structure locator 641A that receives environmental information 651 (Figure 10) from a sensor 147 (Figure 10) mounted on the transporter 120 (Figure 1) via an obstacle processor 607 (Figure 10). The stair structure locator 641A can further locate at least one of the stair structures 643 in the environmental information 651 (Figure 10) based on the environmental information 651 (Figure 10), and can receive a selection of stair structures 643A chosen from at least one of the stair structures 643. The selected stair structure 643A can be stored in the storage device 643B for possible future use. The staircase characteristic processor 641C can measure at least one of the characteristics 645 of the selected staircase structure 643A and, if applicable, can locate at least one obstacle 623 on the selected staircase structure 643A based on environmental information 651. The staircase movement processor 641D can locate the last step of the selected staircase structure 643A based on environmental information 651 and can provide the movement processor 603 with a movement command 630 for the transporter 120 (Figure 1) to move on the selected staircase structure 643A based on the measured at least one characteristic 645, the last step, and, if applicable, at least one obstacle 623. The staircase structure locator 641A can optionally locate at least one of the staircase structures 643 based on GPS data and can build and save a map of the selected staircase structure 643A using SLAM. The map can be saved for local use by the transporter 120 (Figure 1) and / or for use by other devices. The staircase structure processor 641B can optionally access the geometric shape 649 of the transporter 120 (Figure 1), compare the geometric shape 649 with at least one of the characteristics 645 of the selected staircase structure 643A, and modify the navigation of the transporter 120 (Figure 1) based on the comparison.The stair structure processor 641B can optionally generate an alert if the surface temperature of the riser of the selected stair structure 643A is outside the threshold range and the surface texture of the selected stair structure 643A is outside the static friction setting. The stair movement processor 641D can optionally determine the topography of the area surrounding the selected stair structure 643A based on environmental information 651 (Figure 10) and generate an alert if the topography is not flat. The stair movement processor 641D can optionally access a set of extreme conditions.

[0068] Referring primarily to Figures 14A1-14A2, Method 850 for negotiating with door 675 (Figure 14B) while operating transporter 120 (Figure 1), which may include door swing, hinge location, and doorway, may include, but is not limited to, step 1351 (Figure 14A1) of receiving and segmenting environmental information 651 (Figure 10) from sensor 147 (Figure 10) mounted on transporter 120 (Figure 1). The environmental information 651 (Figure 10) may include the geometric shape of transporter 120 (Figure 1). Method 850 may include step 1353 (Figure 14A1) of identifying at least one plane in the segmented sensor data and step 1355 (Figure 14A1) of identifying door 675 (Figure 14B) in at least one plane. Method 850 may further include a step 1357 (Figure 14A1) to measure the door 675 (Figure 14B) and provide a door measurement. Method 850 may also include a step 1361 (Figure 14A1) to determine the door swing. Method 850 may further include, if necessary, a step 1363 (Figure 14A2) to provide at least one move command 630 (Figure 14B) to move the transporter 120 (Figure 1) for access to the handle of the door 675 (Figure 14B), and a step 1365 (Figure 14A2) to provide at least one move command 630 (Figure 14B) to move the transporter 120 (Figure 1) away from the door 675 (Figure 14B) by a distance based on the door measurement as the door 675 (Figure 14B) opens. If door 675 (Figure 14B) is swinging, method 850 may include a step of providing at least one move command to move transporter 120 (Figure 1) relative to door 675 (Figure 14B), and thus positioning door 675 (Figure 14B) for the movement of transporter 120 (Figure 1) through the doorway. Method 850 may also include a step of providing at least one move command 630 (Figure 14B) to move transporter 120 (Figure 1) forward through the doorway, and transporter 120 (Figure 1) maintaining door 675 (Figure 14B) in the open position.

[0069] Referring here to Figure 14B, the sensor processor 661 can determine the hinge side of the door 675, as well as the direction, angle, and distance of the door, through information from sensor 147 (Figure 10). The movement processor 603 can generate commands for the PBP 100 (Figure 4) such as starting / stopping left turns, starting / stopping right turns, starting / stopping forward movement, and starting / stopping backward movement, and can facilitate door mode 605A by stopping the transporter 120 (Figure 1), canceling the target that the transporter 120 (Figure 1) was about to complete, and centering the joystick 133 (Figure 1). The door processor 671B can determine whether the door 675 is, for example, a push door, a sliding door, or a sliding door. The door processor 671B can determine the width of the door 675 by determining the current position and orientation of the transporter 120 (Figure 1) and determining the x / y / z location of the door pivot point. If the door processor 671B determines that the number of valid points in the image of door 675 derived from obstacle 623 and / or PCL data 655 (Figure 10) exceeds a threshold, the door processor 671B can determine the distance from transporter 120 (Figure 1) to door 675. Based on consecutive samples of PCL data 655 (Figure 10) from sensor processor 661, the door processor 671B can determine whether door 675 is moving. In some configurations, the door processor 671B can assume that the side of transporter 120 (Figure 1) is at the same height as the handle side of door 675, and can use this assumption to determine the width of door 675, along with the position of the door pivot point.

[0070] Continuing to refer mainly to Figure 14B, when the door 675 is moving toward the transporter 120 (Figure 1), the door movement processor 671D can generate a movement command 630 and provide it to the movement processor 603, causing the transporter 120 (Figure 1) to move backward by a predetermined or dynamically determined percentage of the amount the door 675 is moving. The movement processor 603 can provide the movement command 630 to the UCP 130, which can receive GUI data 633A and provide the GUI data 633A to the movement processor 603. When the door 675 is moving away from the transporter 120 (Figure 1), the door movement processor 671D can generate a movement command 630 and instruct the transporter 120 (Figure 1) to move forward by a predetermined or dynamically determined percentage of the amount the door 675 is moving. The amount by which the transporter 120 (Figure 1) moves, either forward or backward, can be based on the width of the door 675. The door processor 671B can locate the side of the door 675 that provides the open / close function for the door 675, based on the location of the door pivot point. The door processor 671B can determine the distance to the plane in front of the sensor 147 (Figure 4). The door movement processor 671D can generate a move command 630 and instruct the transporter 120 (Figure 1) to move through the door 675. The door movement processor 671D can wait for a pre-selected amount of time for the transporter 120 (Figure 1) to complete its movement, and the door movement processor 671D can generate a move command 630 and adjust the position of the transporter 120 (Figure 1) based on the position of the door 675. The door processor 671B can determine the door angle and the door pivot point. The door processor 671B can determine whether the door 675 is stationary, whether the door 675 is moving, and in what direction the door 675 is moving. When door mode 605A is completed, the door movement processor 671D can generate a movement command 630 which may instruct the transporter 120 (Figure 1) to interrupt the movement.

[0071] Continuing to primarily refer to Figure 14B, door mode 605A for negotiating with door 675 while operating transporter 120 (Figure 1), which may include door swing, hinge location, and doorway, may include, but is not limited to, sensor processing 661 which receives and segments environmental information 651 from sensor 147 (Figure 10) mounted on transporter 120 (Figure 1), and environmental information 651 which may include the geometric shape 649 of transporter 120 (Figure 1). Door mode 605A may also include door locator 671A which identifies at least one plane in the segmented sensor data and identifies door 675 within at least one plane. Door processor 671B may include the step of measuring door 675 and providing door measurement 645A. The door movement processor 671D can provide at least one movement command 630 if the door measurement 645A is smaller than the geometric shape 649 of the transporter (Figure 1), causing the transporter 120 (Figure 1) to move away from the door 675. The door processor 671B may also include a step of determining the door swing, and the door movement processor 671D can provide at least one movement command 630, causing the transporter 120 (Figure 1) to move forward through the doorway. If the door swing is away from the transporter 120 (Figure 1), the transporter 120 (Figure 1) can open the door 675 and hold the door 675 in the open position. The door movement processor 671D can provide at least one movement command 630 to move the transporter 120 (Figure 1) to access the handle of the door 675, and can provide at least one movement command 630 to move the transporter 120 (Figure 1) away from the door 675 by a distance based on the door measurement 645A as the door 675 opens. The door movement processor 671D can provide at least one movement command 630 to move the transporter 120 (Figure 1) forward through the doorway. The transporter 120 (Figure 1) can hold the door 675 in the open position when the door swing is toward the transporter 120 (Figure 1).

[0072] Referring to Figure 15A, the transporter 120 (Figure 1) can automatically negotiate the use of restroom equipment. The UCP assist 145 (Figure 4) can automatically locate the restroom door, or the door to a restroom stall if there are multiple doors, automatically generate a move command 630 (Figure 15B), move the transporter 120 (Figure 1) through the door, and automatically position the transporter 120 (Figure 1) relative to the restroom equipment. After the use of the restroom equipment is complete, the UCP assist 145 (Figure 4) can automatically locate the door, automatically generate a move command 630 (Figure 15B), move the transporter 120 (Figure 1) through the door, and exit the restroom stall and / or restroom. A method 950 for negotiating with a restroom cubicle inside a restroom while on a transporter 120 (Figure 1), where the restroom cubicle may have a door 675 (Figure 15B), and the door 675 (Figure 15B) may have a door sill and a door swing, may include, but is not limited to, providing at least one move command 630 (Figure 15B) to move the transporter 120 (Figure 1) across the door sill and enter the restroom. Method 950 may also include steps 1453 of providing at least one move command 630 (Figure 15B) to position the transporter 120 (Figure 1) to access the door handle, and step 1455 of providing at least one move command 630 (Figure 15B) to move the transporter 120 (Figure 1) away from the door 675 (Figure 15B) as the door 675 (Figure 15B) closes. Method 950 may also include, if the door swing is away from the transporter 120 (Figure 1), providing at least one move command 630 (Figure 15B) to move the transporter 120 (Figure 1) toward the door 675 (Figure 15B) as the door 675 (Figure 15B) closes, and providing at least one move command 630 (Figure 15B) to position the transporter 120 (Figure 1) beside the first restroom fixture, in step 1459.Method 950 may include a step 1461 in which at least one move command 630 (Figure 15B) is provided to stop the transporter 120 (Figure 1), and a step 1463 in which at least one move command 630 (Figure 15B) is provided to position the transporter 120 (Figure 1) near a second restroom fixture. Method 950 may include a step 1465 in which at least one move command 630 (Figure 15B) is provided to move the transporter across the door threshold and exit the restroom stall.

[0073] Continuing to refer primarily to Figure 15A, the step of automatically traversing the door sill may optionally include, but not limited to, a step 1351 (Figure 14A1) of receiving and segmenting environmental information 651 (Figure 10) from a sensor 147 (Figure 10) mounted on the transporter 120 (Figure 1). The environmental information 651 (Figure 10) may include the geometric shape of the transporter 120 (Figure 1). The step of automatically traversing the door sill may also optionally include a step 1353 (Figure 14A1) of identifying at least one plane in the segmented sensor data and a step 1355 (Figure 14A1) of identifying a door 675 (Figure 14B) in at least one plane. The steps for automatically traversing the door threshold may further optionally include a step 1357 (Figure 14A1) for measuring the door 675 (Figure 14B) and providing a door measurement, and a step 1359 (Figure 14A1) for providing at least one move command 630 (Figure 15B) to move the transporter 120 (Figure 1) away from the door 675 (Figure 14B) if the door measurement is smaller than the geometric shape 649 (Figure 14B) of the transporter (Figure 1). The step of automatically crossing the door threshold may also optionally include a step 1361 (Figure 14A1) of determining the door swing, and if the door swing is away from the transporter 120 (Figure 1), a step 1363 (Figure 14A1) of providing at least one move command 630 (Figure 15B) to move the transporter 120 (Figure 1) forward through the doorway, causing the transporter 120 (Figure 1) to open the door 675 (Figure 14B) and to hold the door 675 (Figure 1) in the open position. The steps for automatically traversing the door threshold may further optionally include steps 1365 (Figure 14A2) which provide at least one move command 630 (Figure 15B) to move the transporter to access the door handle, and steps 1367 (Figure 14A2) which provide at least one move command 630 (Figure 15B) to move the transporter 120 (Figure 1) away from the door 675 (Figure 14B) by a distance based on door measurement as the door 675 (Figure 14B) opens.The step of automatically crossing the door threshold may also optionally include, if the door swing is toward the transporter 120 (Figure 1), providing at least one move command 630 (Figure 15B) to move the transporter 120 (Figure 1) forward through the doorway and causing the transporter 120 (Figure 1) to hold the door 675 (Figure 14B) in the open position. Method 950 may optionally include the steps of automatically locating a restroom and automatically driving the transporter 120 (Figure 1) to the restroom. SLAM techniques may optionally be used to locate a destination, e.g., a restroom. The UCP assist 145 may optionally access a database of frequently visited locations and receive a selection of one of the frequently visited locations, providing at least one move command 630 (Figure 15B) to move the transporter 120 (Figure 1) to the selected location, e.g., a restroom.

[0074] Referring here to Figure 15B, the restroom mode 605B for negotiating with the restroom cubicle within the restroom, with the transporter 120 (Figure 1) on it, may include a door mode 605A, which provides, but is not limited to, at least one move command 630 to move the transporter 120 (Figure 1) across the door sill and into the restroom, where the restroom cubicle may have a door, and the door may have a door sill and a door swing. The restroom may also include, but is not limited to, a toilet, sink, and changing table. The entry / exit processor 681C may provide, but is not limited to, one move command 630 to position the transporter 120 (Figure 1) to access the door handle, and if the door swing is toward the transporter 120 (Figure 1), it may provide, but is not limited to, one move command 630 to move the transporter away from the door as the door closes. The entry / exit processor 681C can provide at least one move command 630 to move the transporter 120 (Figure 1) toward the door 675 as the door 675 closes, if the door swing of the door 675 is away from the transporter 120 (Figure 1). The stationary processor 681B can provide at least one move command 630 to position the transporter 120 (Figure 1) toward a first restroom fixture, and at least one move command to stop the transporter 120 (Figure 1). The stationary processor 681B can also provide at least one move command 630 to position the transporter 120 (Figure 1) toward a second restroom fixture. The entry / exit processor 681C can provide at least one move command 630 to move the transporter across the door sill and exit from the restroom stall.

[0075] Referring here to Figures 16A1 and 16A2, for example, the method 1051 for automatically storing the transporter 120 inside a vehicle such as a wheelchair-accessible van can assist the user's independent use of the vehicle. When the user gets out of the transporter 120 (Figure 1) and, potentially, gets into the vehicle as the driver, the transporter 120 (Figure 1) can be left parked outside the vehicle. If the transporter 120 (Figure 1) is to be carried by the user inside the vehicle for later use, the dynamic parking mode 605E (Figure 16B) provides the transporter 120 (Figure 1) with a move command 630 (Figure 16B), causing it to store itself, either automatically or in response to the command, and in addition, to be retrieved into the vehicle door. The transporter 120 (Figure 1) can be instructed to store itself through a command received, for example, from an external application 140 (Figure 4). In some configurations, computer-driven devices such as mobile phones, laptops, and / or tablets can be used to run one or more external applications 140 (Figure 4) and generate information that can ultimately control the transporter 120 (Figure 1). In some configurations, once the transporter 120 (Figure 1) is set up in parking mode by the user, for example, the transporter 120 (Figure 1) can automatically proceed to dynamic parking mode 605E after the user has exited the transporter 120 (Figure 1). A move command 630 (Figure 16B) may include a command to locate the vehicle door into which the transporter 120 (Figure 1) will enter for storage, and a command to direct the transporter 120 (Figure 1) towards the door. The dynamic parking mode 605E (Figure 16B) can determine error conditions, such as, for example, if the door is too small for the transporter 120 (Figure 1) to enter, and can alert the user to the error conditions, for example, through audio alerts via the audio interface 150 (Figure 4) and / or through messages to an external application 140 (Figure 4).If the door is wide enough for the transporter 120 (Figure 1) to enter, the dynamic parking mode 605E (Figure 16B) can provide a vehicle control command to instruct the vehicle to open the door. The dynamic parking mode 605E (Figure 16B) can determine when the vehicle door is open and whether there is space for the transporter 120 (Figure 1) to be stored. The dynamic parking mode 605E (Figure 16B) can call obstacle handling 607 (Figure 14B) to assist in determining the status of the vehicle door and whether there is enough space inside the vehicle to store the transporter 120 (Figure 1). If the dynamic parking mode 605E (Figure 16B) determines that there is enough space for the transporter 120 (Figure 1), it can provide a move command 630 (Figure 16B) to move the transporter 120 (Figure 1) into the storage space inside the vehicle. The dynamic parking mode 605E (Figure 16B) can provide vehicle control commands to instruct the vehicle to lock the transporter 120 (Figure 1) in place and close the vehicle doors. When the transporter 120 (Figure 1) is needed again, an external application 140 (Figure 1) can be used, for example, to invoke the dynamic parking mode 605E. The dynamic parking mode 605E (Figure 16B) can recall the status of the transporter 120 (Figure 1) and initiate processing by providing vehicle control commands to instruct the vehicle to unlock the transporter 120 (Figure 1) and open the vehicle doors. The dynamic parking mode 605E (Figure 16B) can again locate the vehicle doors or access the door location 675A from, for example, local storage device 607H (Figure 14B) and / or cloud storage device 607G (Figure 14B). The dynamic parking mode 605E (Figure 16B) provides a move command 630 (Figure 16B) which allows the transporter 120 (Figure 1) to be moved through the vehicle doors to, for example, the passenger door commanded by an external application 140 (Figure 4). In some configurations, the vehicle can be tagged to a fixed position, such as the entrance door for storing the transporter 120 (Figure 1).The dynamic parking mode 605E can recognize, for example, but is not limited to, tags such as standards, barcodes, and / or QR CODE(R), and as a result of recognizing the tags, can perform the methods described herein. Other tags may also be included, such as tags in storage compartments to indicate appropriate storage locations and tags on the vehicle passenger doors. The tags may be RFID-enabled, and for example, the transporter 120 (Figure 1) may include an RFID reader.

[0076] Continuing to refer primarily to Figures 16A1 and 16A2, the method 1051 for automatically storing the transporter 120 inside a vehicle may include, but is not limited to, a step 1551 of providing at least one movement command 630 (Figure 16B) to locate a vehicle door into which the transporter 120 (Figure 1) will enter in order to be stored in a storage space inside the vehicle, and a step 1553 of providing at least one movement command 630 (Figure 16B) to direct the transporter 120 (Figure 1) towards the door. In 1555, if the vehicle door is wide enough for the transporter 120 (Figure 1) to enter, the method 1051 may include a step 1557 of providing at least one vehicle control command to instruct the vehicle to open the door. If, in 1559, the door is opened, and in 1561, there is enough space in the vehicle to store the transporter 120 (Figure 1), then method 1051 may include a step 1563 to provide at least one move command 630 (Figure 16B) to move the transporter 120 (Figure 1) into the storage space in the vehicle. Method 1051 may also include a step 1565 to provide at least one vehicle control command to instruct the vehicle to lock the transporter 120 (Figure 1) in place and close the vehicle door. If, in 1555, the vehicle door is not wide enough, or in 1559, the vehicle door is not opened, or in 1561, there is no space for the transporter 120 (Figure 1), then method 1051 may include a step 1567 to alert the user and a step 1569 to provide at least one move command 630 (Figure 16B) to return the transporter 120 (Figure 1) to the user.

[0077] Continuing to refer primarily to Figures 16A1 and 16A2, at least one move command 630 (Figure 16B) for storing the transporter 120 (Figure 100) can be received from and / or automatically generated by an external application 140 (Figure 4). Method 1051 may optionally include a step of alerting the user of error conditions, for example, through an audio alert via an audio interface 150 (Figure 4) and / or through a message to the external application 140 (Figure 4). Method 1051 may optionally invoke obstacle handling 607 (Figure 14B) to locate vehicle doors, determine whether there is sufficient space inside the vehicle to store the transporter 120 (Figure 1), and assist in locating any locking mechanisms inside the vehicle. When the transporter 120 (Figure 1) is needed again, that is, when the user arrives at a destination in the vehicle, an external application 140 (Figure 1) can be used, for example, to activate the transporter 120 (Figure 1). Method 1051 may include steps of recalling the status of the transporter 120 (Figure 1), providing vehicle control commands, and instructing the vehicle to unlock the transporter 120 (Figure 1) and open the vehicle doors. Method 1051 may include steps of locating the vehicle doors, or accessing the location of the vehicle doors from, for example, local storage device 607H (Figure 14B) and / or cloud storage device 607G (Figure 14B). Method 1051 may include steps of providing a move command 630 (Figure 16B) and moving the transporter 120 (Figure 1) through the vehicle doors to, for example, a passenger door commanded by the external application 140 (Figure 4), but not limited to.

[0078] Referring here to Figure 16B, the dynamic parking mode 605E may include a vehicle door processor 691D that can provide at least one move command 630 to locate a vehicle door 675 into which the transporter 120 (Figure 1) will enter to be stored in the storage space within the vehicle. The vehicle door processor 691D may also provide at least one move command 630 to direct the transporter 120 (Figure 1) toward the door 675. If the door 675 is wide enough for the transporter 120 (Figure 1) to enter, the vehicle command processor 691C may provide at least one vehicle control command to instruct the vehicle to open the door 675. If the door 675 is opened and there is enough space within the vehicle to store the transporter 120 (Figure 1), the space processor 691B may provide at least one move command 630 to move the transporter 120 (Figure 1) into the storage space within the vehicle. The vehicle command processor 691C can provide at least one vehicle control command to instruct the vehicle to lock the transporter 120 (Figure 1) in place and close the vehicle's doors 675. If the doors 675 are not wide enough, or if the doors 675 are not opened, or if there is no space for the transporter 120 (Figure 1), the error processor 691E can alert the user and provide at least one move command 630 to return the transporter 120 (Figure 1) to the user.

[0079] Continuing to refer to Figure 16B, the vehicle door processor 691D can optionally recall the status of the transporter 120 (Figure 1), and the vehicle command processor 691C can provide vehicle control commands to instruct the vehicle to unlock the transporter 120 (Figure 1) and open the vehicle's doors 675. The vehicle door processor 691D can again locate the vehicle's doors 675, or access the location of the doors 675 from, for example, the local storage device 607H (Figure 14B) and / or the cloud storage device 607G (Figure 14B) and / or the door database 673B. The vehicle door processor 691D can provide a move command 630 to move the transporter 120 (Figure 1) through the doors 675 to, for example, a passenger door commanded by an external application 140 (Figure 4).

[0080] Referring primarily to Figure 17A, the method 1150 for storing / recharging the transporter 120 (Figure 1) can assist the user in storing and, potentially, recharging the transporter 120 (Figure 1). For example, the transporter 120 (Figure 1) may be recharged while the user is sleeping. After the user dismounts from the transporter 120 (Figure 1), a command can be initiated, for example, in an external application 140 (Figure 4), to move the transporter 120 (Figure 1), presumably without a person on board, to the storage / docking area. In some configurations, a mode selection by the user while using the transporter 120 (Figure 1) can initiate an automatic storage / docking function after the user dismounts from the transporter 120 (Figure 1). When the transporter 120 (Figure 1) is needed again, a command can be initiated by the external application 140 (Figure 4) to return the transporter 120 (Figure 1) to the user. Method 1150 may include, but is not limited to, a step 1651 of locating at least one storage / charging area and a step 1655 of providing at least one move command 630 (Figure 17B) to move the transporter 120 (Figure 1) from a first location to the storage / charging area. Method 1150 may also include a step 1657 of locating a charging dock within the storage / charging area and a step 1663 of providing at least one move command 630 (Figure 17B) to connect the transporter 120 (Figure 1) to the charging dock. Optionally, Method 1150 may include a step of providing at least one move command 630 (Figure 17B) to move the transporter 120 (Figure 1) to a first location when the transporter 120 (Figure 1) receives a start command.If, in 1653, a storage / charging area does not exist, or in 1659, a charging dock does not exist, or in 1666, the transporter 120 (Figure 1) cannot be coupled to a charging dock, the method 1150 may optionally include the step 1665 of providing at least one alert to the user and the step 1667 of providing at least one move command 630 (Figure 17B) to move the transporter 120 (Figure 1) to a first location.

[0081] Referring here to Figure 17B, the static storage / charging mode 605F may include, but is not limited to, a storage / charging area processor 702A that can locate at least one storage / charging area 695 and provide at least one move command 630 to move the transporter 120 (Figure 1) from a first location to the storage / charging area 695. The coupling processor 702D can locate a charging dock within the storage / charging area and provide at least one move command 630 to couple the transporter 120 (Figure 1) with the charging dock. The feedback processor 702B may optionally provide at least one move command 630 when the transporter 120 (Figure 1) receives a start command to move the transporter 120 (Figure 1) to a first location. If a storage / charging area 695 does not exist, or a charging dock does not exist, or the transporter 120 (Figure 1) cannot be coupled to a charging dock, the error processor 702E may optionally provide the user with at least one alert and at least one move command 630 to move the transporter 120 (Figure 1) to a first location.

[0082] Referring here to Figure 18A, the method 1250 for negotiating with the elevator while operating the transporter 120 (Figure 1) can assist the user in ascending or descending the elevator 685 (Figure 18B) while riding in the transporter 120 (Figure 1). Sensor processing 661 can be used, for example, to locate the elevator 685 (Figure 18B), or the elevator location 685A (Figure 18B) can be determined from the local storage device 607H (Figure 14B) and / or the storage cloud 607G (Figure 14B). Once elevator 685 (Figure 18B) is located, and the user selects a desired elevator direction, and elevator 685 (Figure 18B) arrives and the doors open, elevator mode 605D (Figure 18B) provides a move command 630 (Figure 18B) to move transporter 120 (Figure 1) into elevator 685 (Figure 18B). The geometry of elevator 685 (Figure 18B) can be determined, and a move command 630 (Figure 18B) is provided to move transporter 120 (Figure 1) to a location that allows the user to select a desired activity from the elevator selection panel. The location of transporter 120 (Figure 1) can also be suitable for exiting elevator 685 (Figure 18B). When the elevator door is opened, a move command 630 (Figure 18B) is provided to move the transporter 120 (Figure 1) and allow it to exit the elevator 685 (Figure 18B) completely. Method 1250 may include, but is not limited to, a step 1751 to locate the elevator 685 (Figure 18B), which has an elevator door and an elevator sill associated with the elevator door. Method 1250 may include a step 1753 to provide at least one move command 630 (Figure 18B) to move the transporter 120 (Figure 1) through the elevator door and over the elevator sill.Method 1250 may also include a step 1755 of determining the geometric shape of elevator 685 (Figure 18B), and a step 1757 of providing at least one move command 630 (Figure 18B) to move transporter 120 (Figure 1) to a floor selection / exit location relative to the elevator threshold. Method 1250 may also include a step 1759 of providing at least one move command 630 (Figure 18B) to move transporter 120 (Figure 1) across and over the elevator threshold to exit elevator 685 (Figure 18B).

[0083] Referring primarily to Figure 18B, elevator mode 605D may include, but is not limited to, an elevator locator 711A capable of locating an elevator 685 having an elevator door and an elevator sill associated with the elevator door. The elevator locator 711A can store the obstacle 623, elevator 685, and elevator location 685A in, for example, an elevator database 683B. The elevator database 683B can be located locally or remotely from the transporter 120. The entry / exit processor 711B can provide at least one move command 630 to move the transporter 120 (Figure 1) through the elevator door and over the elevator sill to either enter or exit elevator 685. The elevator geometry processor 711D can determine the geometry of elevator 685. The entry / exit processor 711B provides at least one move command 630 that can move the transporter 120 (Figure 1) to the floor selection / exit location relative to the elevator threshold.

[0084] The structure of this instruction relates to a computer system for carrying out the methods discussed herein and a computer-readable medium containing a program for carrying out these methods. Raw data and results can be stored, printed, displayed, transferred to another computer, and / or transferred to other locations for future reading and processing. Communication links can be wired or wireless, for example, using cellular communication systems, military communication systems, and satellite communication systems. Components of System 200A (Figure 4) can operate on computers with varying numbers of CPUs, for example. Other alternative computer platforms can also be used.

[0085] This configuration also covers software and / or firmware and / or hardware for carrying out the methods discussed herein, and computer-readable media for storing the software for carrying out these methods. The various modules described herein may be carried out by the same CPU, or by different CPUs that are tightly or loosely coupled. The various modules may be carried out by specially designed integrated circuits. In accordance with the law, this configuration is described in more or less specific terms with respect to its structural and methodological features. However, since the means disclosed herein come in various forms for carrying out this teaching, it should be understood that this configuration is not limited to the specific features illustrated and described.

[0086] Methods 650 (Figures 11A1-11A2), 750 (Figure 13A), 850 (Figures 14A1-14A2), 950 (Figure 15A), 1050 (Figures 16A1-16A2), 1150 (Figure 17A), and 1250 (Figure 18A) can be implemented electronically, either entirely or in part. Signals representing actions performed by elements of System 200A (Figure 4) and other disclosed configurations can be transmitted via at least one live communication network 143 / 144 (Figure 4). Control and data information can be executed electronically and stored on at least one computer-readable medium. The system can be implemented to run on at least one computer node within at least one live communication network. At least one computer-readable medium in general form may include, for example, but not limited to, a floppy disk, a flexible disk, a hard disk, magnetic tape, or any other magnetic medium, a compact disk read-only memory or any other optical medium, a punch card, paper tape, or any other physical medium with a pattern of holes, random access memory, programmable read-only memory, and erasable programmable read-only memory (EPROM), Flash EPROM, or any other memory chip or cartridge, or any other medium that a computer can read.

[0087] While these instructions are described above in terms of specific configurations, it should be understood that they are not limited to these disclosed configurations. Many modifications and other configurations will come to mind for those skilled in the art, and these are intended and are thus covered by both the disclosure and the accompanying claims. The scope of these instructions is intended to be determined by the proper interpretation and structure of the accompanying claims and their legal equivalents, as understood by those skilled in the art relying on the disclosure in this specification and the accompanying drawings.

Claims

1. A method for reacting to at least one obstacle while operating a transporter, The transporter includes a processor configured to execute instructions for controlling the movement of the transporter, The method described above is The process involves the processor receiving at least one command and user information from the user, The processor receives and segments obstacle data from at least one sensor associated with the transporter, wherein at least one sensor collects the obstacle data when the transporter is moving. The processor includes the step of identifying at least one plane within the segmented obstacle data, The processor includes the step of identifying at least one obstacle in at least one plane, The processor measures at least one characteristic of at least one staircase structure, the processor locates at least one staircase obstacle in at least one staircase structure based on environmental information, The processor performs the steps of locating the last step of at least one of the staircase structures based on the environmental information, The processor determines at least one status identifier based at least one obstacle, user information, and at least one command. The processor performs the steps of determining the distance between the transporter and at least one of the obstacles, The processor accesses at least one authorization command associated with the fault distance, at least one of the obstacles, and at least one of the status identifiers, The processor accesses at least one automated response to at least one command, The processor associates at least one of the aforementioned commands with one of the at least one authorization commands that forms a related authorization command, A step of the processor providing at least one first move command instructing the transporter to move, wherein the processor moves the transporter based at least on at least one auto-response associated with the at least one of the commands and the authorization command associated therewith, The steps include: the processor providing at least one second movement command, the second movement command instructing the transporter to move on at least one staircase structure based on at least one characteristic, the final step of the staircase, and at least one of the staircase obstacles; A method characterized by comprising:

2. The method according to claim 1, characterized in that at least one of the obstacles is at least one moving object.

3. The method according to the 2, further comprising the step of tracking at least one of the moving objects using simultaneous localization and mapping (SLAM) with detection and tracking (DATMO) of the moving object based on the location of the transporter.

4. The method according to claim 1, characterized in that the distance is a dynamically fluctuating quantity.

5. The method according to claim 1, characterized in that at least one of the movement commands is at least one obstacle passage command.

6. A way to enable a transporter to navigate stairs, The transporter includes a processor configured to execute instructions and control the transporter's movement through movement commands, The method described above is The processor receives at least one step command from the user, The processor receives environmental information from a sensor mounted on the transporter, wherein the sensor collects obstacle data as the transporter moves. The processor performs the steps of locating multiple staircase structures based on the environmental information, The step of the processor receiving a selection of a staircase structure from a plurality of staircase structures, wherein the selection is based on the environmental information. The processor measures at least one characteristic of the selected staircase structure based on the environmental information, The processor locates at least one obstacle in the selected staircase structure based on the environmental information, The processor performs the steps of locating at least the stairs of the selected stair structure based on the environmental information, The processor provides at least one stair command and moves the transporter on the selected stair structure based at least one measured characteristic, at least one stair, and at least one obstacle. A method characterized by comprising:

7. The method according to 6, further comprising the step of locating at least one of the staircase structures based on GPS data.

8. The method according to 6, further comprising the step of constructing a map of the selected staircase structure using SLAM.

9. The method according to 6, characterized in that at least one of the characteristics is a surface texture of the surface of at least one riser of the selected staircase structure.

10. A step of determining a situation identifier based at least on user information, at least one of the aforementioned stair commands, and at least one obstacle, The steps include determining the distance between the transporter and at least one of the obstacles when the transporter is moving, The method according to 6, further comprising:

11. As the transporter moves, the steps include accessing the obstacle distance, permission commands associated with at least one obstacle, The steps include: when the transporter moves, accessing the automated response associated with the permission command; The steps include associating at least one of the stair commands with at least one of the permission commands when the transporter moves, The steps include enabling mode-specific processing when the transporter moves, at least based on the automatic response associated with the relevant authorization command, The method according to 10, further comprising:

12. The steps include saving the location of at least one of the obstacles to the cloud, The steps include enabling a system outside the transporter to access at least one of the stored obstacles, The method according to 6, further comprising:

13. A step of segmenting the environmental information, wherein the environmental information is included in point cloud data received from the sensor, and the environmental information includes the geometry of the transporter. The steps include identifying at least one plane within the point cloud data of the segmented environmental information of the transporter, Steps include identifying at least one door in the plane, A step of measuring the door based on the segmented environmental information, A step of determining the handle position of at least one handle associated with the door, The steps include providing at least one first move command to move the transporter toward a handle in order to access at least one of the handles, A step of providing at least one second movement command to move the transporter away from the door by a door distance when the door is opened, wherein the door distance is based at least on measured door characteristics associated with the door measured when the door swings toward the transporter, The steps include providing at least one third movement command to move the transporter through a doorway associated with the door, The method according to 6, further comprising:

14. The method according to 13, characterized in that the measured door characteristics include the swing of the door, the hinge side of the door, the width of the door, and the direction and angle of the door.

15. A step of determining the transverse distance from the transporter to the door, A step of generating at least one move command to move the transporter based at least on the door swing, the width of the door, and the transverse distance, The method according to 14, further comprising:

16. A step of generating an alert if the width is smaller than a pre-selected size related to the size of the transporter, A step of positioning the transporter to access the door, wherein the positioning is based on the width, The steps include generating a first signal for opening the door, A step of moving the transporter through the doorway associated with the door, The steps include generating a second signal to close the door, The method according to 14, further comprising:

17. The method according to 6, characterized in that the sensor includes a time-of-flight sensor.

18. The processor, which processes data from the sensor, performs the steps of locating at least one storage / charging area, The steps include providing at least one first movement command to move the transporter from a pre-selected location to at least one of the storage / charging areas, The processor, which processes data from the sensor, performs the step of locating at least one charging dock within the storage / charging area, The steps include: connecting the transporter to the charging dock with at least one second movement command; The method according to 6, further comprising:

19. The processor, which processes data from the sensor, performs the steps of: The steps include: the processor providing at least one first movement command to a wheel motor drive unit that moves the transporter through an elevator door associated with the elevator, wherein at least one of the first movement commands drives the wheel motor drive unit of the transporter to move over the elevator threshold associated with the elevator door and into the elevator; The processor, which processes data from the sensor, performs the step of determining the geometric shape of the elevator, The processor provides at least one second movement command to drive the wheel motor drive unit of the transporter to a floor selection / exit location associated with the elevator threshold, The processor provides at least one third movement command that drives the wheel motor drive unit of the transporter to cross the elevator threshold and reach the outside of the elevator when the elevator door is open. The method according to 6, further comprising:

20. A transporter for navigating stairs, A processor that receives at least one step command from the user, which is included in the user information. The processor receives environmental information from a sensor mounted on the transporter, the processor identifies at least one staircase structure within the environmental information, and receives a selection of at least one of the staircase structures. The processor measures at least one characteristic of the selected at least one staircase structure, and the processor locates obstacles in the selected at least one staircase structure based on the environmental information. A transporter characterized in that the processor identifies the last step of the selected at least one staircase structure based on the environmental information, and the processor instructs the transporter to move along the selected at least one staircase structure based on at least one characteristic, the last step, and at least one obstacle.