Automatically transitioning robot to operating mode optimized for specific terrain
By integrating sensors and processors in the robot, automatically detecting stairs and switching to 'stair mode', the problem of robots in the prior art requiring manual switching mode is solved, and the convenience and safety of operation are improved.
Patent Information
- Application Number
- CN202380060329.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-06-23
- Filing Date
- 2023-06-20
- Publication Date
- 2025-04-11
AI Technical Summary
When existing robots encounter stairs, they require the operator to manually switch to 'stair mode'. This is not only cumbersome, but may also lead to robot safety risks when the operator ignores or forgets to switch.
By integrating sensors and processors in the robot, sensor data is used to detect stairs in the environment in real time and automatically switch to 'stair mode' according to the predicted path to ensure that the robot adopts the appropriate operating mode when passing through the stairs.
It realizes that the robot automatically switches to the appropriate mode when encountering stairs, improves the convenience and safety of operation and reduces the possibility of manual errors by the operator.
Smart Images

Figure CN119816794A_ABST
Abstract
Description
Background Art
[0001] A robot is typically a reprogrammable and versatile manipulator, usually designed to move materials, parts, tools, or specialized equipment through variable programmed motions to perform tasks. A robot can be a physically anchored manipulator (e.g., an industrial robot arm), a mobile robot that moves throughout an environment (e.g., using legs, wheels, or traction-based mechanisms), or some combination of manipulators and mobile robots. Robots are used in a variety of industries, including, for example, manufacturing, warehouse logistics, transportation, hazardous environments, exploration, and healthcare. Summary of the invention
[0002] In some embodiments of the present disclosure, a mobile robot includes: a robot body; one or more motion-based structures coupled to the body, configured to move the mobile robot in an environment; one or more sensors supported by the body, configured to output data about one or more sensed conditions of the environment; at least one processor; and at least one computer-readable medium encoded with instructions, which, when executed by the at least one processor, cause the mobile robot to: receive data corresponding to one or more positions of the mobile robot along a path followed by the mobile robot within the environment at a first time by the one or more sensors; determine, based on the data, that there are one or more stairs in a first area of the environment; determine that the mobile robot is expected to enter the first area when the mobile robot is at a position along the path followed by the mobile robot at the first time; and control the mobile robot to operate in a first operating mode associated with traversing the stairs when it is determined that there are one or more stairs in the first area and the mobile robot is expected to enter the first area.
[0003] In some embodiments, a mobile robot includes: a robot body; one or more motion-based structures coupled to the body, configured to move the mobile robot in an environment; one or more sensors supported by the body, configured to output data about one or more sensed conditions of the environment; at least one processor; and at least one computer-readable medium encoded with instructions, which, when executed by at least one processor, cause the mobile robot to: determine the presence of one or more stairs in a first area of the environment based on data received from one or more sensors of the robot operating within the environment; determine that the mobile robot is expected to enter the first area when an operator guides the mobile robot to move in the environment; and when it is determined that one or more stairs are present in the first area and the mobile robot is expected to enter the first area, control the mobile robot to operate in a first operating mode associated with traversing stairs.
[0004] In some embodiments, a mobile robot includes: a robot body; one or more motion-based structures coupled to the body, configured to move the mobile robot in an environment; one or more sensors supported by the body, configured to output data about one or more sensed conditions of the environment; at least one processor; and at least one computer-readable medium encoded with instructions, which, when executed by the at least one processor, cause the mobile robot to: receive data corresponding to one or more positions of the mobile robot along a path followed by the mobile robot within the environment at a first time by one or more sensors of the robot; determine based on the data that a first condition exists in the terrain in a first area of the environment; determine that the mobile robot is expected to enter the first area when the mobile robot is at a position along the path followed by the mobile robot at the first time; and control the mobile robot to operate in a first operating mode associated with the first condition when it is determined that the first condition exists in the terrain in the first area and the mobile robot is expected to enter the first area.
[0005] In some embodiments, a mobile robot includes: a robot body; one or more motion-based structures coupled to the body, configured to enable the mobile robot to move in an environment; one or more sensors supported by the body, configured to output data about one or more sensed conditions of the environment; at least one processor; and at least one computer-readable medium encoded with instructions, which, when executed by the at least one processor, cause the mobile robot to: determine, based on data received from one or more sensors of the robot operating within the environment, that a first condition exists in terrain in a first area of the environment; determine, when an operator directs the mobile robot to move in the environment, that the mobile robot is expected to enter the first area; and when it is determined that the first condition exists in the terrain in the first area and the mobile robot is expected to enter the first area, control the mobile robot to operate in a first operating mode associated with traversing terrain where the first condition exists.
[0006] In some embodiments, the method involves: receiving, by one or more sensors of the robot, data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first time; determining, based on the data, that there are one or more stairs in a first area of the environment; determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first time; and when it is determined that there are one or more stairs in the first area and the robot is expected to enter the first area, controlling the robot to operate in a first operating mode associated with traversing stairs.
[0007] In some embodiments, the method involves: determining, based on data received from one or more sensors of a robot operating within the environment, that there are one or more stairs in a first area of the environment; determining, when an operator guides the robot to move within the environment, that the robot is expected to enter the first area; and when it is determined that there are one or more stairs in the first area and the robot is expected to enter the first area, controlling the robot to operate in a first operating mode associated with traversing stairs.
[0008] In some embodiments, the method involves: receiving, by one or more sensors of the robot, data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first time; determining, based on the data, that a first condition exists in the terrain in a first area of the environment; determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first time; and controlling the robot to operate in a first operating mode associated with the first condition when it is determined that the first condition exists in the terrain in the first area and the robot is expected to enter the first area.
[0009] In some embodiments, the method involves: determining, based on data received from one or more sensors of a robot operating within the environment, that a first condition exists in terrain in a first area of the environment; determining that the robot is expected to enter the first area when an operator directs the robot to move in the environment; and when it is determined that the first condition exists in the terrain in the first area and the robot is expected to enter the first area, controlling the robot to operate in a first operating mode associated with traversing terrain where the first condition exists.
[0010] In some embodiments, the system includes: at least one processor and at least one computer-readable medium encoded with instructions, which, when executed by the at least one processor, cause the system to: receive data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first time by one or more sensors of the robot; determine based on the data that there are one or more stairs in a first area of the environment; when the robot is at a position along the path followed by the robot at the first time, determine that the robot is expected to enter the first area; and when it is determined that there are one or more stairs in the first area and the robot is expected to enter the first area, control the robot to operate in a first operating mode associated with traversing stairs.
[0011] In some embodiments, the system includes: at least one processor and at least one computer-readable medium encoded with instructions, which, when executed by the at least one processor, cause the system to: determine the presence of one or more stairs in a first area of the environment based on data received from one or more sensors of a robot operating within the environment; determine that the robot is expected to enter the first area when an operator guides the robot to move in the environment; and when it is determined that one or more stairs are present in the first area and the robot is expected to enter the first area, control the robot to operate in a first operating mode associated with traversing stairs.
[0012] In some embodiments, a system includes at least one processor and at least one computer-readable medium encoded with instructions, which, when executed by the at least one processor, cause the system to: receive data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first time by one or more sensors of the robot; determine, based on the data, that a first condition exists in the terrain in a first area of the environment; determine that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first time, and when it is determined that the first condition exists in the terrain in the first area and the robot is expected to enter the first area, control the robot to operate in a first operating mode associated with the first condition.
[0013] In some embodiments, the system includes: at least one processor and at least one computer-readable medium encoded with instructions, which when executed by the at least one processor causes the system to: determine that a first condition exists in terrain in a first area of the environment based on data received from one or more sensors of the robot operating within the environment; determine that the robot is expected to enter the first area when an operator guides the robot to move in the environment; and when it is determined that the first condition exists in the terrain in the first area and the robot is expected to enter the first area, control the robot to operate in a first operating mode associated with traversing terrain where the first condition exists.
[0014] In some embodiments, at least one non-transitory computer-readable medium is encoded with instructions that, when executed by at least one processor of the system, cause the system to: receive data corresponding to one or more positions of the robot along a path followed by the robot within the environment at a first time by one or more sensors of the robot; determine, based on the data, that there are one or more stairs in a first area of the environment; determine that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first time; and when it is determined that there are one or more stairs in the first area and the robot is expected to enter the first area, control the robot to operate in a first operating mode associated with traversing stairs.
[0015] In some embodiments, at least one non-transitory computer-readable medium is encoded with instructions that, when executed by at least one processor of the system, cause the system to: determine, based on data received from one or more sensors of a robot operating within the environment, that there are one or more stairs in a first area of the environment; determine, when an operator directs the robot to move in the environment, that the robot is expected to enter the first area; and when it is determined that there are one or more stairs in the first area and the robot is expected to enter the first area, control the robot to operate in a first operating mode associated with traversing stairs.
[0016] In some embodiments, at least one non-transitory computer-readable medium is encoded with instructions that, when executed by at least one processor of the system, cause the system to: receive data corresponding to one or more positions of the robot along a path followed by the robot within the environment at a first time by one or more sensors of the robot; determine, based on the data, that a first condition exists in the terrain in a first area of the environment; determine that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first time; and when it is determined that the first condition exists in the terrain in the first area and the robot is expected to enter the first area, control the robot to operate in a first operating mode associated with the first condition.
[0017] In some embodiments, at least one non-transitory computer-readable medium is encoded with instructions that, when executed by at least one processor of the system, cause the system to: determine, based on data received from one or more sensors of a robot operating within the environment, that a first condition exists in terrain in a first area of the environment; determine, when an operator directs the robot to move within the environment, that the robot is expected to enter the first area; and, when it is determined that the first condition exists in the terrain in the first area and the robot is expected to enter the first area, control the robot to operate in a first operating mode associated with traversing terrain where the first condition exists.
[0018] The foregoing device and method embodiments can be implemented with any suitable combination of the aspects, features and actions described above or further described in detail below. These and other aspects, embodiments and features of the present teachings can be more fully understood from the following description in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0019] Various aspects and embodiments will be described with reference to the following drawings. It should be understood that the drawings are not necessarily drawn to scale. In the drawings, each identical or nearly identical component shown in the various figures is represented by the same reference numeral. For clarity, not every component may be labeled in every drawing.
[0020] Figure 1A is a perspective view of an example robot standing on top of a landing of stairs;
[0021] Figure 1B is a robot (such as Figure 1A A schematic diagram of an example system of a robot;
[0022] Figure 2A and Figure 2B is used for robots (such as Figure 1A A schematic diagram of an example stair tracker for a robot;
[0023] Figure 3 This includes robots (such as Figure 1A A block diagram of an example stair mode setting selector and associated components of a robot);
[0024] Figure 4 can be set by stair mode selectors (such as Figure 3 Example decision tree executed by the Stair Mode Settings selector shown;
[0025] Figure 5 is a stair mode setting selector (such as Figure 3 The stair mode setting selector shown in ) can be based on a decision tree (such as Figure 4 ) is applied to robots such as Figure 1A a table of examples of setting values for robots); and
[0026] Figure 6 An example configuration of a robotic device in accordance with some embodiments is shown. DETAILED DESCRIPTION
[0027] Various techniques and other features that a robot can employ to navigate an environment that includes stairs are described in previously filed patent applications by the assignee of the present disclosure. U.S. Patent Application Publication No. 2021 / 0323618 (“the '618 Publication”); U.S. Patent Application Publication No. 2021 / 0333804 (“the '804 Publication”); and U.S. Patent No. 11,123,869 (“the '869 Patent”), the entire contents of each of which are incorporated herein by reference. As described in those applications, a robot can be configured so that it can be selectively placed in an operating mode specifically designed for sensing and traversing stairs. This operating mode is referred to herein as “stair mode.” Examples of specific settings for a robot that can (A) facilitate perception of the nuances of stairs, and (B) optimally control aspects of the robot to successfully traverse stairs are described in the '804 Publication and the '869 Patent and are also described in more detail below.
[0028] The '618 disclosure also describes how a robot may undergo an initial mapping process during which the robot may move through an environment (typically in response to commands input by a user into a tablet or other controller) to collect data about the environment (e.g., via one or more sensors), and may generate a topological map defining "waypoints" of the robot and "edges" representing paths between corresponding pairs of such waypoints. Individual waypoints may, for example, represent sensor data, fiducials, and / or robot pose information at a particular time and location, while individual edges may topologically connect waypoints and define local transformations between reference frames of interconnected waypoints. When the robot detects stairs during such an initial mapping process, it may annotate the map accordingly to identify the area where stairs were detected. After such a topological map has been generated, the robot may autonomously traverse a path including waypoints identified on the map, and based on annotations in the map indicating areas where stairs were detected, may automatically enter a "stairs mode" prior to entering the indicated area.
[0029] The inventors of the present disclosure have recognized and appreciated that the aforementioned methods may be improved. For example, in the absence of a previously generated map identifying the location of stairs, the robot may not enter "stair mode" unless the robot's operator explicitly instructs the robot to do so. For example, after the robot is steered to the bottom or top of the stairs using a joystick on a controller, etc., and before the joystick is moved again to steer the robot to begin traversing (e.g., up or down) the stairs, the operator may need to click a button or other element on the controller to convert the robot from its current operating mode and corresponding gait (e.g., "walking", "crawling", "jogging", etc.) to "stair mode". Imposing such a requirement on the operator of the robot (i.e., manually converting the robot into and out of "stair mode") is inconvenient for the operator and potentially dangerous for the robot if the operator neglects to make such a conversion. For example, if the robot is not converted to "stair mode" before attempting to traverse the stairs, the robot may tumble down the stairs and be damaged or otherwise cause harm in various ways. To facilitate manual switching in and out of "stair mode," some previous systems include at least one additional, easily accessible user interface (UI) element on a controller for the robot, thereby increasing the complexity and clutter of the user interface.
[0030] Some embodiments of the present disclosure provide a robot that is configured to automatically transition into and out of a "stair mode" as the robot travels along a path through an environment. As described above, in some existing embodiments, transitioning the robot to "stair mode" includes configuring the robot, for example by adjusting one or more settings, to (A) facilitate perception of stairs, and (B) enable the robot to successfully traverse the stairs. According to some embodiments of the present disclosure, the robot may be configured to employ some or all of the "stair perception" functionality to identify stairs at at least certain times, when it also does not employ the "stair traversal" functionality. As explained in more detail below, in some embodiments, by continuously employing at least some aspects of the "stair perception" functionality, the robot can reliably detect stairs as it moves through its environment, and may be able to accurately predict when it also needs to implement the "stair traversal" functionality to enable the robot to successfully traverse the stairs.
[0031] In some embodiments, the robot may be configured to detect the presence or absence of stairs in the robot's environment using sensor data acquired as the robot travels along a path. For example, the robot may be configured such that if an operator uses a joystick or the like to steer the robot in the direction of a staircase, then as the robot approaches the staircase, the robot may acquire and use sensor data to identify the presence of the staircase, and then automatically switch the robot to "stair mode" if the robot determines that its planned path will intersect the identified staircase. Additionally, as explained in more detail below, similar techniques may be employed to identify areas that include other features within an environment (e.g., ice, steep hills, loose gravel, etc.), and then automatically transition the robot to a dedicated operating mode to enable efficient and safe traversal over or through such areas, e.g., when the robot determines that its planned path will intersect an area where such a feature is located.
[0032] Figure 1A An example of an environment 10 for a robot 100 is shown. Environment 10 generally refers to a spatial region associated with a certain type of terrain. Figure 1A As shown, such terrain may include terrain that can be traversed by robot 100 (e.g., using Figure 1BThe robot 100 may be configured to navigate stairs 20, 20a-n, or stair-like terrain of the robot 100 (e.g., control system 170 shown). One or more systems of the robot 100 may be responsible for coordinating the robot 100 and / or moving the robot 100 in the environment 10. As the robot 100 moves in the environment 10, such systems may analyze the terrain, plan the motion trajectory of the robot 100 (e.g., using path generator 174, step planner 176, body planner 178), and / or instruct the robot 100 to perform various movements (e.g., using one or more controllers 172). In some implementations, the robot 100 may use the various systems of the robot 100 to attempt to successfully traverse the environment 10 while avoiding collisions and / or damage to the robot 100 or the environment 10.
[0033] Stairs 20, 20a-n generally refer to a group of more than one staircases 20 (i.e., a group of "n" stairs 20) that are designed to connect vertical distances. To connect vertical distances, the stairs 20a-n generally extend a horizontal distance at a given vertical height rise on a pitch (or pitch line). Each staircase 20 may include treads 22 and risers 24. The treads 22 of a staircase 20 refer to the horizontal portion of the staircase 20 that is stepped on, while the risers 24 refer to the vertical portion of the staircase 20 between each tread 22. The treads 22 of each staircase 20 span a tread depth "d" measured from the outer edge 26 of the staircase 20 to the risers 24 between the stairs 20. For residential, commercial, or industrial structures, some staircases 20 also include a flange as part of the edge 26 for safety purposes. As Figure 1A As shown, the flange is a portion of the tread 22 that protrudes beyond the riser 24 below the tread 22. For example, the flange (shown as edge 26a) is a portion of the tread 22a and protrudes beyond the riser 24a.
[0034] A set of stairs 20 may be preceded by or include a landing or support surface 12 (e.g., a horizontal support surface). For example, a "landing" refers to a horizontal landing or support surface 12 at the top of a set of stairs 20 or at a location between stairs 20. For example, a landing occurs at a change in direction of a stair 20 or between a particular number of stairs 20 (e.g., a flight of stairs 20 connecting two floors). Figure 1A The robot 100 is shown standing on a platform at the top of a set of stairs 20. In addition, the set of stairs 20 can be constrained between one or more walls and / or railings. In some examples, the walls can include a toe board (e.g., a skirting-like structure or runner at the end of the tread 22) or a stringer. In the case of an industrial staircase 20 that is not fully enclosed, the staircase 20 can include a stringer (e.g., a metal stringer) that serves as a toe board.
[0035] Stair-like terrain more generally refers to terrain that changes in elevation over a distance. Stair-like terrain can resemble stairs in terms of elevation changes (e.g., an inclined pitch for elevation gain or a descending pitch for elevation loss). However, in the case of stair-like terrain, the contours of treads 22 and risers 24 are less distinct. Instead, stair-like terrain can refer to terrain that has tread-like portions that allow the robot to have sufficient traction to position a standing limb and ascend or descend over adjacent vertical obstacles (similar to risers) within the terrain, either sequentially or simultaneously, using a guide limb. For example, stair-like terrain can include gravel, inclined gravel, damaged or deteriorated traditional stairs, etc.
[0036] Reference Figure 1A , the robot 100 may include a body 110 having motion-based structures (such as legs 120a-d) coupled to the body 110, which enable the robot 100 to move in the environment 10. Figure 6 An illustrative system diagram that may represent some of the operating components of the robot 100 is described. Figure 1A As shown, in some embodiments, each leg 120 may be an articulated structure such that one or more joints J allow the member 122 of the leg 120 to move. For example, each leg 120 may include a hip joint J that couples the upper member 122, 122u of the leg 120 to the body 110. H , and coupling the upper member 122u of the leg 120 to the lower member 122 of the leg 120 L Knee joint J K For impact detection, the hip joint J H It can be further decomposed into the abduction-adduction rotation of the JH (designated as "J Hx ”), which occurs on the frontal plane of the robot 100 (i.e., in the x-axis A X and z-axis A Z The XZ plane extends in the direction of the hip joint J H flexion-extension rotation (designated as “J Hy ”), which occurs in the sagittal plane of the robot 100 (ie, in the y-axis A Y and z-axis A Z The YZ plane extends in the direction of Figure 1A A quadruped robot having four legs 120a - d is depicted, but it should be understood that the robot 100 may include any number of legs or motion-based structures (eg, a biped or humanoid robot having two legs) that provide a means for traversing terrain within the environment 10 .
[0037] To traverse terrain, each leg 120 may have a distal end 124 that contacts a surface 122 of the terrain (i.e., a traction surface). In other words, the distal end 124 of the leg 120 is the end of the leg 120 that the robot 100 uses to pivot, position, or generally provide traction during movement of the robot 100. For example, the distal end 124 of the leg 120 may correspond to a "foot" of the robot 100. In some examples, although not shown, the distal end 124 of the leg 120 may include an ankle joint J. A , so that the distal end 124 is hinged relative to the lower member 122L of the leg 120.
[0038] The robot 100 may have a vertical gravity axis (eg, shown as a Z-axis A) along the direction of gravity. Z ) and the center of mass CM, which is the point where the sum of the weighted relative positions of the distributed mass of the robot 100 is zero. The robot 100 may also have a relative position based on CM relative to the vertical gravity axis A. Z The posture P of the robot 100 (i.e., a fixed reference frame relative to gravity) is defined to define a particular posture or stance taken by the robot 100. The posture of the robot 100 may be defined by the orientation or angular position of the robot 100 in space. Movement of the legs 120 relative to the body 110 changes the posture P of the robot 100 (i.e., a combination of the position of the robot's CM and the posture or orientation of the robot 100). Here, height (i.e., vertical distance) generally refers to the height along (e.g., parallel to) the z-direction (i.e., z-axis A). Z ) The sagittal plane of the robot 100 corresponds to the Y-axis A Y and Z-axis A Z In other words, the sagittal plane divides the robot 100 into left and right sides. Approximately perpendicular to the sagittal plane, the ground plane (also called the transverse plane) passes through the x-axis A X and the y-axis A Y The ground plane refers to the support surface 12 where the distal ends 124 of the legs 120 of the robot 100 can generate traction to help the robot 100 move in the environment 10. Another anatomical plane of the robot 100 is a frontal plane extending through the body 110 of the robot 100 (e.g., from the left side of the robot 100 with the first leg 120a to the right side of the robot 100 with the second leg 120b). The frontal plane passes through the x-axis A in the x-direction. X and z-axis A Z The XZ plane extends in the direction of the axis.
[0039] As a legged robot moves in an environment 10, the robot's legs 120 may undergo a gait cycle. In general, a gait cycle begins when the leg 120 touches down or contacts the support surface 12, and ends when the same leg 120 contacts the support surface 12 again. The touchdown of the leg 120 may also be referred to as a "footfall," which defines the point or location at which the distal end 124 of the motion-based structure 120 falls into contact with the support surface 12. The gait cycle may be primarily divided into two phases, a swing phase and a stance phase. During the swing phase, the leg 120 performs (i) lift-off from the support surface 12 (sometimes also referred to as toe-off and the transition between the stance phase and the swing phase), (ii) knee joint J of the leg 120. K flexion at the knee joint J of leg 120, (iii) K 120 , and (iv) touching down (or landing) back on the support surface 12. Herein, the leg 120 in the swing phase is referred to as the swing leg 120. SW When swinging legs 120 SW Perform swing phase 120 SW , the other leg 120 performs a stance phase. The stance phase refers to the period of time when the distal end 124 (e.g., foot) of the leg 120 is on the support surface 12. During the stance phase, the leg 120 performs (i) initial support surface contact, which triggers the transition from the swing phase to the stance phase, (ii) a load response, in which the leg 120 inhibits support surface contact, and (iii) an intermediate stance support, which is used when the contralateral leg (i.e., the swing leg 120) SW ) when lifted off and swung to the equilibrium position (approximately halfway through the swing phase), and (iv) terminal stance support, which starts from the robot's CM being above the leg 120 until the contralateral leg 120 touches down on the support surface 12. Herein, the leg 120 in the stance phase is referred to as the stance leg 120. ST .
[0040] To enable the robot to perceive the environment 10, the robot 100 may include a sensor system 130 having one or more sensors 132, 132a-n. The sensors 132 may include vision / image sensors, inertial sensors (e.g., inertial measurement units (IMUs)), force sensors, and / or motion sensors. Some examples of sensors 132 include cameras (such as stereo cameras, scanning light detection and ranging (LIDAR) sensors, or scanning laser detection and ranging (LADAR) sensors). In some embodiments, the robot 100 may include two stereo cameras at the front end of the body 110 of the robot 100 (i.e., the "head" of the robot 100 adjacent to the front legs 120a-b of the robot 100) as sensors 132, and one stereo camera at the rear end of the body 110 of the robot 100 (adjacent to the rear legs 120c-d of the robot 100) as a sensor 132. In some embodiments, the respective sensors 132 may have corresponding fields of view F V , thereby defining a sensing range or area corresponding to the sensor 132. For example, Figure 1A The field of view F of the robot 100 is depicted V Each sensor 132 may be pivotable and / or rotatable such that the sensor 132 may change its field of view F about one or more axes (eg, an x-axis, a y-axis, or a z-axis relative to a ground plane). V .
[0041] Reference Figure 1A and Figure 1B In some embodiments, the sensor system 130 may include (one or more) sensors 132 coupled to the joint J. In some embodiments, these sensors 132 may be coupled to motors (e.g., sensors 132, 132a-b) that operate the joint J of the robot 100. Here, these sensors 132 may generate joint dynamics 134 (134) in the form of joint-based sensor data 134. JD ). Joint dynamics 134 collected as joint-based sensor data 134 JD The joint angles may include (e.g., the angle of the upper member 122u relative to the lower member 122 L ), joint velocity (e.g., joint angular velocity or joint angular acceleration), and / or joint torque (also referred to as joint force) experienced at the joint J. Here, the joint-based sensor data 134 generated by the one or more sensors 132 may be raw sensor data, further processed to form different types of joint dynamics 134, JDdata, or some combination of the two. For example, the sensor 132 can measure the joint position (or the position of (one or more) members 122 coupled at the joint J), and the system of the robot 100 can perform further processing to derive the velocity and / or acceleration from the position data. In other examples, one or more sensors 132 can be configured to directly measure velocity and / or acceleration.
[0042] When the sensor 132 is used to survey the field of view F V When the sensor system 130 can generate a signal corresponding to the field of view F V 10 . In some embodiments, the sensor data 134 may be image data corresponding to a three-dimensional volumetric point cloud generated by the three-dimensional volumetric image sensor 132 . Additionally or alternatively, the sensor system 130 may collect posture data of the robot 100 as the robot 100 maneuvers in the environment 10 , which may include inertial measurement data (e.g., measured by an IMU). In some embodiments, such posture data may include kinematic data and / or orientation data about the robot 100 , for example, kinematic data and / or orientation data about a joint J or other portion of a leg 120 of the robot 100 . Using the sensor data 134 , the perception system 180 of the robot 100 may generate a perception map 182 about the terrain of the environment 10 .
[0043] As the robot 100 maneuvers in the environment 10, the sensor system 130 may collect sensor data 134 related to the topography of the environment 10 and / or the structure of the robot 100 (e.g., joint dynamics and / or odometry of the robot 100). For example, Figure 1A The robot 100 is depicted standing on a landing (i.e., a horizontal support surface) of a set of stairs 20 in the environment 10 of the robot 100. Here, the sensor system 130 may collect sensor data 134 regarding the set of stairs 20. As the sensor system 130 collects the sensor data 134, the computing system 140 may store, process, and / or transmit the sensor data 134 to various systems of the robot 100 (e.g., the control system 170, the perception system 180, and / or the stair tracker 200). To perform computational tasks related to the sensor data 134, the computing system 140 of the robot 100 may include data processing hardware 142 and memory hardware 144. The data processing hardware 142 may be configured to execute instructions stored in the memory hardware 144 to perform computational tasks related to the activities (e.g., movement and / or movement-based activities) of the robot 100. In general, the computing system 140 refers to one or more instances of the data processing hardware 142 and / or the memory hardware 144.
[0044] Continue to refer to Figure 1A and Figure 1B In some embodiments, the computing system 140 may be a local system located on the robot 100. When located on the robot 100, the computing system 140 may be centralized (i.e., in a single location / area on the robot 100, e.g., the body 110 of the robot 100), decentralized (i.e., located at various locations around the robot 100), or a hybrid combination of the two (e.g., where most of the hardware is centralized and a small amount of hardware is decentralized). A decentralized computing system 140 may, for example, allow processing to occur at active locations (e.g., at the motors of the joints that move the legs 120), while a centralized computing system 140 may, for example, allow a central processing hub that communicates with systems located at various locations on the robot 100 (e.g., communicating with the motors of the joints that move the legs 120).
[0045] Additionally or alternatively, the computing system 140 may employ and / or interact with computing resources located remotely from the robot 100. For example, the computing system 140 may communicate with a remote system 160 (e.g., a remote computer / server or a cloud-based environment) via the network 150. Much like the computing system 140, the remote system 160 may include remote computing resources, such as remote data processing hardware 162 and remote memory hardware 164. Here, sensor data 134 or other processed data (e.g., data processed locally by the computing system 140) may be stored in the remote system 160 and may be accessible to the computing system 140. In some embodiments, the computing system 140 may be configured to utilize the remote resources 162, 164 as an extension of the computing resources 142, 144, such that resources of the computing system 140 may reside on resources of the remote system 160.
[0046] In some embodiments, Figure 1A and Figure 1BAs shown, the robot 100 may include a control system 170 and a perception system 180. The perception system 180 may be configured to receive sensor data 134 from the sensor system 130 and process the sensor data 134 to generate one or more perception maps 182. The perception system 180 may transmit such perception map(s) 182 to the control system 170 in order to perform controlled actions for the robot 100, such as moving the robot 100 in the environment 10. In some embodiments, by having the perception system 180 separate from the control system 170 but in communication with the control system 170, the processing of the control system 170 may be focused on controlling the robot 100, while the processing of the perception system 180 may be focused on interpreting the sensor data 134 collected by the sensor system 130. For example, these systems 170, 180 may perform their processing in parallel to ensure accurate, smooth movement of the robot 100 in the environment 10.
[0047] In some embodiments, the control system 170 may include at least one controller 172, a path generator 174, a step locator 176, and a body planner 178. The control system 170 may be configured to communicate with at least one sensor system 130 and any other systems of the robot 100 (e.g., the perception system 180 and / or the stair tracker 200). The control system 170 may use the hardware 140 to perform operations and other functions. The controller(s) 172 may be configured to control the movement of the robot 100 to traverse the environment 10 based on input or feedback from the systems of the robot 100 (e.g., the control system 170, the perception system 180, and / or the stair tracker 200). This may include movement between postures and / or behaviors of the robot 100. For example, the controller(s) 172 may control different footstep patterns, leg patterns, body movement patterns, or vision system sensing patterns.
[0048] In some embodiments, the controller(s) 172 may include a plurality of controllers 172, wherein each of the controllers 172 may be configured to operate the robot 100 at a fixed cadence. A fixed cadence refers to a fixed timing of the stepping or swinging phase of the legs 120. For example, a separate controller 172 may instruct the robot 100 to move the legs 120 (e.g., take a step) at a particular frequency (e.g., a step every 250 milliseconds, 350 milliseconds, etc.). With a plurality of controllers 172, wherein each controller 172 is configured to operate the robot 100 at a fixed cadence, the robot 100 may experience variable timing by switching between different controllers 172. In some embodiments, the robot 100 may continuously switch / select a fixed cadence controller 172 (e.g., reselecting a controller 170 every three milliseconds) as the robot 100 traverses the environment 10.
[0049] In some embodiments, the control system 170 may additionally or alternatively include a dedicated controller 172 dedicated to a specific control purpose. For example, the control system 170 may include one or more stair controllers 172 that are dedicated to planning and coordinating the movement of the robot to traverse a set of stairs 20. For example, the stair controller 172 may ensure that the swing leg 120 SW The footstep path maintains a swing height to cross the riser 24 and / or edge 26 of the stair 20. Other dedicated controllers 172 may include a path generator 174, a step locator 176, and / or a master planner 178.
[0050] Reference Figure 1B , the path generator 174 can be configured to determine the horizontal motion of the robot 100. As used herein, the term "horizontal motion" refers to the translation (i.e., movement in the XY plane) and / or yaw (i.e., movement around the Z-axis A) of the robot 100. Z 10). The path generator 174 can determine obstacles within the environment 10 surrounding the robot 100 based on the sensor data 134. The path generator 174 can determine a planned path for the robot's body 110 within some future period (e.g., within the next 1-1.5 seconds). However, such determination of the planned path for the body 110 by the path generator 174 can occur more frequently (such as hundreds of times per second). In this way, in some embodiments, the path generator 174 can determine a new planned path for the body 110 every few milliseconds, where each new trajectory is planned for a period of about 1-1.5 seconds in the future.
[0051] The path generator 174 may communicate information about the currently planned path and identified obstacles to the step locator 176 so that the step locator 176 may identify foot placements for the legs 120 of the robot 100 (e.g., where to place the distal ends 124 of the legs 120 of the robot 100). The step locator 176 may generate foot placements (i.e., where the robot 100 should step) using input from the perception system 180 (e.g., the perception map 182). Much like the step locator 176, the body planner 178 may receive input from the perception system 180 (e.g., the perception map(s) 182). In general, the body planner 178 may be configured to adjust the dynamics (e.g., rotations, such as pitch or yaw and / or height of the CM) of the body 110 of the robot 100 to successfully move in the environment 10.
[0052] The perception system 180 can enable the robot 100 to move more accurately in terrain with various obstacles. As the sensors 132 collect sensor data 134 of the space around the robot 100 (i.e., the robot's environment 10), the perception system 180 can use the sensor data 134 to form one or more perception maps 182 of the environment 10. In some embodiments, the perception system 180 can also be configured to modify an existing perception map 182 (e.g., by projecting the sensor data 134 onto a pre-existing map) and / or remove information from the perception map 182.
[0053] In some embodiments, the one or more perception maps 182 generated by the perception system 180 may include a ground height map, a no-step map, and a subject obstacle map. A ground height map refers to a map 182 generated by the perception system 180 based on voxels from a voxel map. In some embodiments, the ground height map may function such that at each XY position within a grid of the map 182 (e.g., designated as a cell of the ground height map), the ground height map specifies a height. In other words, the ground height map may convey that at a particular XY position in a horizontal plane, the robot 100 should step at a certain height.
[0054] A no-stepping map generally refers to a map 182 that defines areas where the robot 100 is not allowed to step, so as to provide suggestions to the robot 100 when the robot 100 can step at a specific horizontal position (i.e., a position in the XY plane). In some embodiments, much like a ground height map, the no-stepping map can be divided into a grid of cells, where each cell represents a specific area in the environment 10 of the robot 100. For example, each cell can correspond to three square centimeters in the XY plane within the environment 10. When the perception system 180 generates a no-stepping map, the perception system 180 can generate a Boolean map, where the Boolean map identifies "no-stepping" areas and "stepping" areas. A no-stepping area refers to an area of one or more cells where obstacles are present, and a stepping area refers to an area of one or more cells where the presence of obstacles is not perceived. The perception system 180 can further process the Boolean map so that the no-stepping map includes a signed distance field. Here, the signed distance field for the no-step map may include a distance to the boundary of the obstacle (eg, the distance to the boundary of the no-step region) and a vector "v" to the boundary of the obstacle (eg, defining the closest direction to the boundary of the no-step region).
[0055] The main body obstacle map generally determines whether the main body 110 of the robot 100 overlaps with the location in the XY plane relative to the robot 100. In other words, the main body obstacle map can identify obstacles of the robot 100 to indicate whether the robot 100 is at risk of collision or potential damage with obstacles near or at the same location by overlapping at the location in the environment 10. As an obstacle map of the main body 110 of the robot 100, the system of the robot 100 (e.g., the control system 170) can use the main body obstacle map to identify the boundary adjacent to or closest to the robot 100 and to identify the direction (e.g., the best direction) to move the robot 100 to avoid the obstacle. In some embodiments, much like other maps 182, the perception system 182 can generate the main body obstacle map based on a grid of cells (e.g., a grid of cells in the XY plane). Here, each cell within the main body obstacle map can include a distance to the obstacle and a vector pointing to the nearest cell identified as part of the obstacle (i.e., the boundary of the obstacle).
[0056] There may be situations where certain types of structures within the environment 10 may routinely result in bad sensor data 134. However, even when bad sensor data 134 is present, the robot 100 may still attempt to navigate and / or perform tasks within the environment 10. One type of structure that often results in bad sensor data 134 is stairs 20. This is particularly problematic because stairs 20 are a fairly common structural feature in commercial and residential environments. Furthermore, bad sensor data 134 for stair navigation may be problematic because stairs also typically require precise leg movement and foot placement for successful traversal. Since stairs can be a difficult feature to navigate from a coordination perspective, bad sensor data 134 may significantly exacerbate the robot's navigation challenges.
[0057] The sensors 132 may generate bad sensor data 134 for a variety of reasons. With respect to stairs 20, two separate problems may generally occur. One problem generally involves ascending stairs, while the other problem involves descending stairs. With respect to ascending stairs, open riser stairs 20 may pose a problem for the robot 100. In the case of open riser stairs 20, the sensor(s) 132 of the robot 100 may be at a sensing height equal to the height of the one or more stairs 20. At this height, the sensors 132 may generate far sensor data 134 through the open risers 24 and near sensor data 134 for the edges 26 of the stairs 20. In other words, when the sensors 132 cannot see the risers 24 on an open riser stair, the edges 26 of the treads 22 of the stairs 20 may appear to the robot 100 as floating steps and may be mistakenly identified by the robot's perception system 180 as an obstacle to the robot 100 rather than a stair. When the robot 100 is about to descend or is in the act of descending a set of stairs 20, the sensor 132 (such as a stereo camera) may generate poor sensor data 134 due to the repetitive structure and lines that define a typical staircase. For example, a stereo camera specifically functions by trying to find two different images that are part of the same object in the real world and using parallax to determine the distance of the object. However, based on the repetitive lines of the stairs when viewing the stairs from top to bottom, the sensor 132 is more likely to mismatch the same object and therefore generate poor sensor data 134. This is particularly common for industrial or grid-like stairs because the grid introduces more repetitive lines that the sensor 132 is more likely to mismatch. Although not all stairs are grid-like, this poses a problem for the navigation of the robot 100 because the robot 100 may often be deployed in an industrial environment 10. Although these scenarios do not occur for every type of staircase, a robot 100 that struggles to climb up one type of staircase and climb down another type of staircase may limit the versatility and robustness of the robot to successfully traverse the environment.
[0058] In order to try to solve some of these sensor data problems, such as Figure 1B As illustrated in , the robot 100 can use a system called a stair tracker 200 to detect and track features of the stair 20. The stair tracker 200 can allow the robot 100 to understand ambiguous data. Figure 2A and Figure 2BIn some embodiments, the stair tracker 200 may be configured to receive the sensor data 134 and output a stair model 202. Such a stair model 202 may represent some form of floor height and a series of stairs 20. In some embodiments, the stair model 202 may represent the configuration of the stairs and / or the location of the stairs relative to the robot 100. Here, the stairs 20 are line segments with a direction, a position, and an extent in either direction. The stair tracker 200 may generally assume that the stairs 20 are horizontally constrained and include a minimum / maximum rise and a minimum / maximum extension. Alternatively, the slope may be constrained to a minimum / maximum value.
[0059] like Figure 2A As shown in , in some embodiments, to generate the stair model 202, the stair tracker 200 may include a detector 210 and a detection tracker 220. The detector 210 of the stair tracker 200 may receive the sensor data 134 from the sensor system 130 and generate one or more detected features 212. Such detected features 212 may correspond to different structural features of the stairs 20, such as an edge 26, a tread 22, a riser 24, a wall 28, and / or some combination thereof. As the robot 100 approaches a set of stairs 20, the detector 210 may be used to determine the detected features 212 corresponding to the features of the stairs 20 (e.g., the edge 26 of the first stair 20). Figure 2B 212e). The detector 210 may generate a i Once the detector 210 determines that at a specific time t i t , the detector tracker 220 can monitor whether the detected feature 212e remains the best representation of the actual feature of the stair 20 during future time steps. In other words, as the sensor system 130 captures the sensor data 134, the stair tracker 200 can receive the sensor data 134 (e.g., at a particular frequency). The detector 210 can be based on the detected feature 212e from the first time step t 1 The sensor data 134 and the sensor data from the previous time step t i-1 The aggregated sensor data 134 are used to determine at the first time step t 1 Detector 210 may transmit detected feature 212 to detection tracker 220, and detection tracker 220 may establish detected feature 212 as a tracked detection 222 (also referred to as a primary detection) or an initial detection when no primary detection exists at detection tracker 220. In other words, when detection tracker 220 is not tracking a stair feature corresponding to detected feature 212 received from detector 210, detection tracker 212 may use the first time step t 1The detected feature 212 initiates the tracking process for the stair feature. Figure 2B It shows that the detection tracker 220 will be at the first time step t 1 The first detection features 212, 212e of the edge 26 of the staircase 20 at 1 Identified as the tracked detection 222. At the first time step t 1 The second time step after t 2 At the second time step t, the stair tracker 200 receives 2 At and / or at the first time step t 1 and the second time step t 2 The sensor data 134 generated during the time period between t and t is used as the latest sensor data 134. Using the latest sensor data 134, the detector 210 i-1 Generate another detected feature 212. For example, the detector 210 at the second time step t 2 The second detected features 212, 212e of the edge 26 of the staircase 20 are generated at 2 .
[0060] To perform its tracking process, when the detection tracker 220 receives the second detected features 212, 212 2 , the detection tracker 220 can determine that at the second time step t 2 The second detected feature 212 received at 2 Is it similar to the one from the first time step t 1 The first detected feature 212 1 (now tracked detection 222). When the first and second detected features 212 are similar, detection tracker 220 may merge the first and second detected features 212 together to update tracked detection 222. Here, during the merge operation, detection tracker 220 may merge detected features 212 with tracked detection 222 using an average (e.g., a weighted average weighted by the confidence errors in detected features 212). 2 With the first detected feature 212 1 When the detection tracker 220 is not similar, it can determine that the feature corresponding to the second detected feature 212 2 t , whether there is a replacement tracked feature 224 for the stair feature (i.e., whether it was previously identified as a replacement tracked feature 224 at the detection feature 212 by the detection tracker 220). When there is no replacement tracked feature 224, the detection tracker 220 may, at the second time step t 2 The second detected feature 212 2t is established as a replacement tracked feature 224. When the replacement tracked feature 224 already exists, the detection tracker 220 can determine that at the second time step t 2 The second detected feature 212 at 2 Is it similar to the existing alternative tracked feature 224. When the second time step t 2 The second detected feature 212 at 2 Similar to the existing alternative tracking feature 224, the detection tracker 220 can be used to track the second time step t 2 The second detected feature 212 at 2 Merge (e.g., using an average or weighted average) with the existing alternative tracked features 224. 2 The second detected feature 212 at 2 When the detection tracker 200 is not similar to the existing alternative tracked feature 224, the detection tracker 200 may generate a value equal to 2 The second detected feature 212 at 2 Another alternative tracked feature 224 of . In some examples, detection tracker 220 may be configured to track and / or store multiple alternative detections 224 .
[0061] By using the tracking process of the detection tracker 220 in conjunction with the detector 210, the stair tracker 200 can review each detection to prevent the stair tracker 200 from relying on the detection unfavorably. In other words, where the robot 100 is constantly collecting sensor data 134 about its environment (e.g., at a frequency of 15 Hz), reliance on a single detection from a snapshot of the sensor data 134 may result in inaccuracies regarding the actual location of features of the stair 20. For example, the robot 100 may move or change its pose P between a first time and a second time, thereby generating sensor data 134 for an area of the stair 20 that was previously occluded, partially occluded, or generally poorly captured. Here, a system that performs only a single detection at a first time may suffer from incomplete sensor data 134 and inaccurately detect features. In contrast, by constantly tracking each detection based on the most recent sensor data 134 available to the stair tracker 200 over a period of time, the stair tracker 200 can generate a bimodal probability distribution of detected stair features (e.g., primary detections and alternative detections). Utilizing the bimodal probability distribution of the features of the stair 20, the stair tracker 200 is able to generate an accurate representation of the features of the stair 20 for inclusion in the stair model 202. Furthermore, the detection and tracking process allows for a detection at any particular moment that corresponds to any poor sensor data 134, because the detection is tracked and averaged over time with other detections (e.g., detections that may be based on better data or based on a larger data aggregation over multiple detections). Thus, while a single detection may appear noisy at any moment, the merging and alternate swapping operations of the detection tracker 220 develop an accurate representation of the stair features over time.
[0062] These stair features may then be incorporated into the stair model 202, which is generated by the stair tracker 200 and transmitted to various systems of the robot 100 (e.g., systems that control the robot 100 to traverse the stair 20). In some configurations, the stair tracker 200 may incorporate the tracked feature 222 into the stair model 202 once the tracked feature 222 has been detected by the detector 210 and tracked by the detection tracker 220 for a number of iterations. For example, when the detection tracker 220 has tracked the same feature for three to five detection / tracking cycles, the stair tracker 200 may incorporate the tracked detection 222 for the feature (i.e., the detection that has been updated for a number of detection cycles) into the stair model 202. In other words, the stair detector 200 may determine that the tracked detection 222 has matured into the most likely candidate for the feature of the stair 20 in the detection and tracking process.
[0063] When the sensor 132 peers down a set of stairs 20, this descending perspective (vantage point) of the sensor 132 produces sensor data 134 of different quality than when the sensor 132 peers up a set of stairs 20. For example, peering up a set of stairs 20 has a perspective that obscures some of the treads 22 and risers 24 of the stairs 20, while peering down the set of stairs 20 has a perspective that obscures a portion of the risers 24 and treads 22. Due to these differences and other reasons, the stair tracker 200 can have separate functions dedicated to going up stairs (e.g., an upstairs tracker) and going down stairs (e.g., a downstairs tracker). For example, each type of stair tracker can be part of the stair tracker 200, but can be implemented as a separate software module. In some configurations, each type of stair tracker, although implemented via separate modules, can coordinate with each other. For example, when the robot 100 changes direction during stair navigation (e.g., on the stairs 20), the upstairs tracker can pass information to the downstairs tracker (or vice versa).
[0064] Figure 3 An additional module (i.e., stair mode setting selector 302) is shown according to some embodiments of the present disclosure, which may be included in the robot 100 (e.g., as a Figure 1B or otherwise) to enable the robot to automatically transition to "stair mode". Figure 4 It shows that it can be Figure 3 An example decision tree 400 employed by the stair mode setting selector 302 is shown. Figure 5 is a diagram showing the stair mode settings selector 302 ( Figure 3 ) in executing the decision tree 400 ( Figure 4 500 of the values of the settings of the robot 100 adjusted during operation. Figure 5 As shown, the table 500 may include columns 502, 504, 506, and 508 corresponding to respective groups of setting values that may be selected by the stair mode setting selector 302. The manner in which the setting values shown in the columns 502, 504, 506, and 508 of the table 500 may be used to control various aspects of the robot 100 to facilitate automatic recognition and traversal of the stairs 20 is described in detail below.
[0065] like Figure 3, in some embodiments, the stair mode setting selector 302 may receive input indicating a selection of one of a plurality (e.g., three) possible operating modes (e.g., “on,” “off,” or “auto”) of the stair mode setting selector 302 (e.g., based on a user selection of a UI control). As shown, in some embodiments, a control device 318 (such as a tablet or other mobile device that may be operated to control the robot 100 or otherwise provide input to the robot 100) may include UI elements 320a, 320b, 320c that may be selected by a user to indicate a desired operating mode of the stair mode setting selector 302. As shown, in some embodiments, the UI elements 320a, 320b, 320c and other control options related to the perception system 180 may be accessed from a drop-down menu 322 that is viewed in response to selecting a “perception” tab 324, etc., from a menu presented by the control device 318. Although not shown in FIG. Figure 3 , but it should be understood that the control device 318 may also be configured with additional UI elements to enable a user to manipulate or otherwise direct the operation of the robot 100.
[0066] In addition, if Figure 3 , in some implementations, the stair mode setting selector 302 may receive both (A) first data indicating that a stair 20 has been detected within the environment 10 of the robot 100, and (B) second data indicating a planned path 310 of the robot 100. In the example shown, the first data includes one or more stair models 202 determined by the stair tracker 202, and the second data includes an indication of the planned path 310 of the body 110 of the robot 100, as determined by the path generator 174. Based on the selected mode, e.g., "on", "off", or "auto", the stair mode setting selector 302 may apply an appropriate setting value (described in detail below), such as, for example, in table 500 ( Figure 5 4, 506, and 508 of the selected columns 506 and 508. For example, when the "off" mode is selected, some or all of the setting values in column 502 may be applied; when the "on" mode is selected, some or all of the setting values in column 504 may be applied; and when the "auto" mode is selected, some or all of the setting values in the selected columns 506 and 508 may be applied. The columns 506, 508 used at a given time may be determined, for example, based on the received first data (e.g., the stair model(s) 202) and the received second data (e.g., the planned path 310).
[0067] In some embodiments, the stair mode setting selector 302 may be configured to output a setting value (selected by Figure 3 312, 314, and 316 in FIG. 5 ). In particular, the “off” setting value (indicated according to column 502) is indicated by arrow 312, the “auto-passive” setting value (indicated according to column 506) is indicated by arrow 314, and the “on” setting value (indicated according to column 504) and the “auto-active” setting value (indicated according to column 508) are indicated by arrow 316. Because the “on” setting value (indicated according to column 504) and the “auto-active” setting value (indicated according to column 508) are the same in the illustrated example, in some implementations, a single column may be used to represent the setting values for both cases.
[0068] As previously described, some existing systems provide the operator with the ability to manually switch the "stair mode" between an "on" state and an "off" state (e.g., switch between the setting values of columns 502 and 504) before and after the user guides the robot through the stairs. Columns 506 and 508 show the same settings as columns 502 and 504, but show how the values of these settings can be dynamically changed when the robot 100 is operating in an automatic stair mode (referred to herein as "automatic" or "automatic stair" mode) according to the present disclosure. In particular, column 506 shows the setting values for a scenario where the robot 100 is operating in the "automatic stair" mode but has not yet determined that the stairs 20 are about to be traversed (referred to herein as the "automatic-passive" state), while column 508 shows the setting values for a scenario where the robot 100 is also operating in the "automatic stair" mode but has actually determined that the stairs 20 are about to be traversed (referred to herein as the "automatic-active" state). As explained below, in some implementations, when the stair mode setting selector 302 determines that the robot 100 recently left the stairs (e.g., in the case where it is on a landing between stairs), and / or the robot 100 is currently on a stair 20 (e.g., preventing the stair tracker 200 from identifying the stair 20 in some cases), the stair mode setting selector 302 can additionally apply the "auto-active" setting (per column 508) instead of the "auto-passive" setting (per column 506).
[0069] By comparing columns 508 and 504, it can be seen that when the robot 100 is operating in the "Auto-Active" state (according to column 508), various settings may have the same values as when the robot 100 is operating with the "Stair Mode" turned "On" (according to column 504). On the other hand, by comparing columns 502 and 506, it can be seen that when the robot 100 is operating in the "Auto-Passive" state (according to column 506), only two of the settings shown (i.e., "Pitch Limiter" and "Stair Tracker") have values that are different from when the robot is operating with the "Stair Mode" turned "Off" (according to column 502). Additionally, by comparing columns 506 and 504, it can be seen that when the robot 100 is operating in the "Auto-Passive" state (according to column 506), only two of the settings shown (i.e., "Pitch Limiter" and "Stair Tracker") have values that are the same as when the robot 100 is operating with the "Stair Mode" turned "On" (according to column 504).
[0070] As explained in more detail below, when the robot 100 is operating in the “auto-passive” state (per column 506), the indicated values of the “pitch limiter” and “stair tracker” settings (i.e., “pitch limiter=on” and “stair tracker=on”) may enable the robot 100 to identify a stair 20 within the environment 10, thereby enabling the stair mode setting selector 302 to determine whether the robot 100 is about to traverse the identified stair in view of the planned path 310 provided by the path generator 174. The values of the remaining settings may not be changed, so as to allow the robot 100 to continue moving in the environment 10 without taking any additional actions to enable traversal of the stair 20. In some implementations, only after the robot 100 has determined that a stair 20 within the environment 10 is about to be traversed while in the “auto-passive” state (per column 506), the values of the remaining settings will be switched to the values shown in column 508, thereby enabling the robot 100 to take specific actions to ensure that the identified stair 20 can be safely traversed. Advantageously, the operator of the robot 100 need not manually switch the robot 100 from one mode to another before and after traversing the stairs 20. Instead, when the robot 100 is operating in the “automatic stair” mode, as disclosed herein, the operator can simply maneuver the robot 100 in the environment 10, and the robot 100 will automatically determine by itself whether and when to enable its robust stair traversal capability.
[0071] As mentioned above, according to some embodiments of the present disclosure, Figure 4 The decision tree 400 shown in FIG. 4 can be configured by the staircase mode setting selector 302 ( Figure 34 ). As described in detail below, based on the various inputs received by the stair mode setting selector 302, the stair mode setting selector 302 can use the decision tree 400 to select one of the columns 502, 504, 506, 506 of the table 500 for determining certain setting values for the robot 100. In particular, when the stair mode setting selector 302 reaches the node 404 of the decision tree 400, it can apply the setting from the "off" column 502; when the stair mode setting selector 302 reaches the node 406 of the decision tree 400, it can apply the setting from the "on" column 504; when the stair mode setting selector 302 reaches the node 416 of the decision tree 400, it can apply the setting from the "auto-passive" column 506; and when the stair mode setting selector 302 reaches the node 418 of the decision tree 400, it can apply the setting from the "auto-active" column 508. Furthermore, as described in detail below, in some embodiments, the evaluation performed at decision 414 may use a first criterion and / or threshold (per block 410) or a second criterion and / or threshold (per block 412), depending on the outcome of the previous decision 408. As explained below, using such different criteria and / or thresholds to make decision 414 may introduce hysteresis into the setpoint selection process, thereby preventing undesirably rapid switching between the "auto-active" and "auto-passive" states. In some embodiments, the sequence of decisions 402, 408, and 414 may be performed hundreds of times per second, thereby ensuring that the transition from the "auto-passive" state to the "auto-active" state (and vice versa) occurs quickly enough to ensure that the robot 100 is always in an optimal state.
[0072] like Figure 4 As shown, the decision tree 400 may include an initial decision 402, at which the stair mode setting selector 302 may determine which of a plurality of operating modes the operator has selected (e.g., based on Figure 3 For example, as described above, an operator of the robot 100 may select one of the UI elements 320a-c on the control device 318 (e.g., a physical switch / button on a handheld controller, a "soft" switch / button on a tablet, etc.) to select one of "on," "off," or "auto" as the operating mode for the stair mode setting selector 302.
[0073] As shown, when the "off" operating mode has been selected (e.g., in response to an operator selecting UI element 320c on control device 318), stair mode setting selector 302 may apply the settings from the "off" column 502 of table 500 ( Figure 5 As previously mentioned, the application of these settings can correspond to Figure 3Similarly, when the “On” mode of operation has been selected (e.g., in response to an operator selecting UI element 320b on control device 318), stair mode setting selector 302 may apply the settings from the “On” column 504 of table 500 ( Figure 5 As previously mentioned, the application of these settings can correspond to Figure 3 However, when the “automatic” mode has been selected (eg, in response to an operator selecting UI element 320a on control device 318 ), stair mode selector 302 may proceed to decision 408 of decision tree 400 .
[0074] like Figure 4 As shown, at decision 408, the stair mode setting selector 302 can determine whether the robot 100 is already using the "on" setting (according to column 504 of table 500) or the "auto-active" setting (according to column 508 of table 500). When the stair mode setting selector 302 determines that the robot 100 is already using the "on" setting or the "auto-active" setting, it can use the first criteria and / or threshold (according to block 410) to make a decision 414 (described in detail below). On the other hand, when the stair mode setting selector 302 determines that the robot 100 is not already using the "on" setting or the "auto-active" setting, it can instead use the second criteria and / or threshold to make a decision 414 (according to block 412).
[0075] like Figure 4 As indicated in , at decision 414, the stair mode setting selector 302 may use a first criterion and / or threshold (according to box 410) or a second criterion and / or threshold (according to box 412) to determine whether the robot 100 is approaching the stair 20, is currently on the stair 20, or has recently left the stair 20.
[0076] As shown, when the stair mode setting selector 302 determines (according to decision 414) that the robot 100 is not approaching stairs, is not currently on stairs, and has not recently left stairs, the stair mode setting selector 302 may proceed to node 416 where it may apply the setting value from the “Auto-Passive” column 506 of the table 500 (e.g., Figure 5 As mentioned above, the application of those setting values can correspond to Figure 3 314 shown in . In addition, as described above, when the "Auto-Passive" settings are applied (per column 506), some of these settings (e.g., "Pitch Limiter" = "On" and "Stair Tracker" = "On") may configure the robot 100 to actively "find" stairs, while some or all of the remaining settings need not be set to configure the robot 100 to expertly traverse stairs.
[0077] On the other hand, when the stair mode setting selector 302 determines (according to decision 414) that the robot 100 is approaching stairs, is currently on stairs, or has recently left stairs, the stair mode setting selector 302 may instead proceed to node 418, where the stair mode setting selector 302 may apply the setting value from the "Auto-Active" column 508 of the table 500 ( Figure 5 As mentioned above, the application of those setting values can correspond to Figure 3 In addition, as described above, when the "auto-active" setting value is applied (according to column 508), the robot 100 can be configured to both accurately perceive and skillfully traverse the stairs 20.
[0078] In some embodiments, the first criteria and / or threshold (per block 410) and the second criteria and / or threshold (per block 412) may differ in one or more important respects. For example, the respective criteria and / or thresholds may be set so as to introduce hysteresis into the process that prevents undesirably rapid switching between the "auto-active" and "auto-passive" states. Examples of thresholds and / or criteria that may be set in this manner will now be described.
[0079] As described above, in some embodiments, the stair model 202 generated by the stair tracker 200 can represent both the configuration of the stairs and the location of the stairs relative to the robot 100. Furthermore, as also described above, in some embodiments, the path generator 174 can determine the planned path 310 of the robot for some future period (e.g., the next 1-1.5 seconds), where adjustments to the planned path 310 by the path generator 174 occur rapidly, such as hundreds of times per second.
[0080] In some embodiments, when decision 414 uses the second criteria and / or threshold applied according to block 412, stair mode setting selector 302 can determine whether the planned path 310 for the next 1-1.5 seconds (if followed) will intersect the location of stair 20 indicated by stair model 202. When stair mode setting selector 302 determines (according to decision 414) that such a condition is satisfied, stair mode setting selector 302 can apply column 508 ( Figure 5As shown in column 508, and as also described in more detail below, the value of at least one of these settings (e.g., "Speed Limit") can affect the speed of the robot 100, such as by slowing the robot 100 to traverse a staircase. However, adjusting the speed of the robot 100 in this manner may result in a corresponding change to the planned path 310. Due to the deceleration of the robot 100, such a change may result in the planned path 310 no longer intersecting the location of the stair 20 for a subsequent 1-1.5 seconds. For this reason, after the stair mode setting selector 302 has applied the "Auto-Active" setting value (per box 418), the stair mode setting selector 302 may immediately begin using the first criterion and / or threshold when making the decision 414 (per box 410). ... Figure 4 As shown, this switching of the criteria and / or thresholds used to make decision 414 may occur when the stair mode setting selector 302 determines at decision 408 that the robot 100 is using the “auto-active” setting.
[0081] In some embodiments, the first criterion and / or threshold (per block 410) may account for the reduced speed of the robot 100 after the “auto-active” setting has been applied, such as by causing the stair mode setting selector 302 to determine, for example, at decision 414, whether the subsequent 1-1.5 seconds of the planned path 310, if followed, will result in the robot 100 moving along substantially the same planned path 304 that the stair mode setting selector 302 previously determined (e.g., when the decision 414 used the second criterion and / or threshold per block 412) would intersect the stairs 20, albeit over a shorter distance along the path. To achieve such a result, the first criterion and / or threshold may, for example, include a condition that if the stair mode setting selector 302 determines that the subsequent 1-1.5 seconds of the planned path 310, if followed, will result in the robot 100 moving along substantially the same planned path 304 that the stair mode setting selector 302 previously determined would intersect the stairs 20, then an affirmative (i.e., “yes”) result is forced at decision 414. To make such a determination, stair mode setting selector 302 may, for example, determine whether two planned paths are within a threshold degree of similarity.
[0082] In other embodiments, similar results may be achieved by using different time periods to determine the planned path 304 evaluated at the decision 414 when the first criterion and / or threshold and the second criterion and / or threshold are used to make the decision 414. For example, in some embodiments, using the second criterion and / or threshold (per block 412) may cause the stair mode setting selector 302 to determine, for example, at the decision 414, whether the planned path 310 for the next 500 milliseconds (if followed) will intersect the location of the stair 20 indicated by the stair model 202, while using the first criterion and / or threshold (per block 412) may cause the stair mode setting selector 302 to determine, for example, at the decision 414, whether the planned path 310 for the next 1-1.5 seconds (if followed) will intersect the location of the stair 20 indicated by the stair model 202.
[0083] In some implementations, the first criterion and / or threshold used according to block 410 and / or the second criterion and / or threshold used according to block 412 may depend on the current state of the robot 100 and may be dynamically updated as the robot 100 operates. For example, in some implementations, the stair mode setting selector 302 may set the first criterion and / or threshold and / or the second criterion and / or threshold based on the current speed and / or gait of the robot 100. As an example, if the robot 100 is currently operating in the "auto-passive" state (according to Figure 5 506 of the table 500 shown in FIG. 4 ), the stair mode setting selector 302 can adjust the duration of the future time period during which it will determine whether the planned path 310 will intersect a staircase (e.g., from 1.5 seconds to 750 milliseconds) based on the current speed and / or gait of the robot 100 (at decision 414). Such speed-based and / or gait-based adjustments to the second criteria and / or thresholds can, for example, help ensure that the robot 100 has sufficient time to decelerate after transitioning from the “auto-passive” state to the “auto-active” state and before encountering an identified stair 20.
[0084] As another example of different criteria and / or thresholds that may be used according to blocks 410 and 412, it may be desirable to avoid transitioning from the "auto-active" state to the "auto-passive" state during brief periods when the robot 100 is on a landing between different portions of a staircase. Thus, in some embodiments, the first criteria and / or threshold used according to block 410 may regulate the circumstances under which the robot 100 will transition from the "auto-active" state to the "auto-passive" state. For example, in some embodiments, the first criteria and / or threshold used according to block 410 may allow a negative (i.e., "no") result at decision 414 only if the robot 100 has traveled more than 1 meter (e.g., a typical size of a landing between stairs) and the planned path 310 does not intersect the location of the stair 20 within a subsequent 1-1.5 seconds. Using a distance threshold rather than a time threshold to determine whether the robot 100 has recently left the stairs may be preferred because operators typically pause the forward motion of the robot 100 after reaching a landing between stairs.
[0085] In some embodiments, rapid switching between the "auto-active" and "auto-passive" states may be additionally or alternatively inhibited by configuring the first criteria and / or threshold and / or the second criteria and / or threshold to include a requirement that a threshold amount of time must elapse after switching from one state to another (e.g., switching from the "auto-passive" state to the "auto-active" state) before allowing a transition back to the previous state (e.g., switching from the "auto-passive" state to the "auto-passive" state).
[0086] Many other configurations of the first criteria and / or thresholds and / or second criteria and / or thresholds for introducing hysteresis and / or other desired behavior into the operation of the stair mode setting selector 302 are likewise possible.
[0087] As described above, in some embodiments, decision 414 may also involve determining whether the robot is currently on a stair 20. In some embodiments, for example, the stair tracker 200 may be configured to determine that the robot 100 is currently on a stair 20 based on the sensor data 134 and / or the kinematic data. When the stair mode setting selector 302 determines at decision 414 that the robot 100 is currently on a stair (using the stair tracker 200 or otherwise), the stair mode setting selector 302 may automatically place the robot 100 in an “auto-active” state (per node 418 of the decision tree 400), even if the stair mode setting selector 302 has not yet determined that the planned path 310 will intersect the location of the stair 20 indicated by the stair model 202. Taking this step may allow the robot 100 to successfully navigate the stair 20 in the event of a failure of the stair tracker 200 to accurately identify the stair 20 within the robot's planned path.
[0088] Table 500 ( Figure 5 However, it should be understood that in other embodiments or for other purposes, different, fewer or additional settings may be used, for example, to enable the robot 100 to automatically enter the "ice field" state, the "steep slope" state, the "loose gravel" state, etc.
[0089] The values of the "Gait" setting shown in Table 500 can determine the allowed values of the current gait of the robot 100. Examples of possible "Gait" setting values include (1) "Crawl", in which the robot 100 lifts one leg 120 at a time as it moves, (2) "Walk" (which may alternatively be referred to as "Trot"), in which the robot 100 lifts a pair of diagonal legs 120 at a time, (3) "Jog", in which the robot 100 also lifts a pair of diagonal legs 120 at a time, but at a faster pace than the "Walk" mode and also includes a flight phase during which all four legs 120 are in the air, (4) "Stair Trot", in which the robot lifts a pair of diagonal legs 120 at a time and in a manner optimized for traversing stairs. And (5) "Jump", in which the robot 100 performs five rapid jumps with a pair of diagonal legs 120, then five rapid jumps with another pair of diagonal legs 120, and then repeats. As shown in Table 500 ( Figure 5 As shown in columns 504 and 508 of Table 500 (shown in Table 500), when the "Stair Mode" has been set to "On" (according to column 504) or the Stair Mode Setting Selector 302 determines to switch the robot 100 to the "Auto-Active" mode (according to column 508), the value of the "Gait" setting can be set to "Stair Trot". Figure 5 As shown in columns 502 and 506 of the present invention, when the "Stair Mode" has been set to "Off" (according to column 502) or the Stair Mode Setting Selector 302 determines to switch the robot 100 to the "Auto-Passive" state (according to column 506), the "Gait" setting may be allowed to adopt any other possible value of the above-mentioned gait.
[0090] The "Speed Limit" setting controls the maximum speed that the robot 100 is allowed to travel. When the value of the "Speed Limit" setting is set to "Stairs" (e.g., according to Figure 5 500), the maximum speed may be reduced to a level that ensures safe traversal of stair 20. In some embodiments, the speed limit for stair traversal may depend on one or more dimensions and / or other characteristics of the staircase, e.g., as determined by stair tracker 200. For example, the stair traversal speed limit may be reduced when stair tracker 200 identifies narrower, steeper, and / or larger stairs.
[0091] When set to “On”, the “Pitch Limiter” setting may control the pitch of the robot 100 when the robot is backing up (i.e., moving in reverse) and the stair tracker 200 cannot determine (e.g., due to poor sensor data quality or other reasons) whether a stair 20 exists behind the robot 200, thereby ensuring that the field of view of the sensor 132 at the rear of the robot 100 is sufficiently downward to enable the robot 100 to accurately identify the downward stair 20. In particular, when the “Pitch Limiter” setting value is set to “On”, the robot 100 may be prevented from assuming a posture while moving in reverse when the stair tracker 200 cannot determine whether a stair 20 exists, wherein the pitch of the body 110 of the robot 100 causes the field of view of the rear sensor 132 to move upward by more than a threshold angle. When the “Pitch Limiter” setting value is set to “Off” (e.g., according to Figure 5 502 of table 500 ), the above-described pitch control is not employed.
[0092] The "Stair Tracker" setting may determine whether the stair tracker 200 (described above) is actively operating. As shown in Table 500 ( Figure 5 As indicated in columns 502, 504, 506, and 508 of FIG. 2 (shown in FIG. 2 ), the value of the “Stair Tracker” setting may be set to “On” unless the “Stair Mode” has been set to “Off” (per column 502).
[0093] The "No Step Area Adjustment" setting can determine whether special adjustments and / or filtering are to be performed when the robot 100 identifies a "No Step Area" when traversing stairs. Figure 1B As described above, in some embodiments, the perception system 180 can generate a "no-step map" that defines areas that the robot 100 is not allowed to step into, so as to provide suggestions to the robot 100 when the robot 100 can step at a specific horizontal position (i.e., a position in the XY plane). In some embodiments, the process for generating such a "no-step map" can be slightly adjusted to enable the robot 100 to successfully traverse the stairs 20.
[0094] As shown in Table 500 ( Figure 5 As shown in columns 504 and 508 of Table 500 (shown in Table 500), when the "Stair Mode" has been set to "On" (according to column 504) or the Stair Mode Setting Selector 302 determines to switch the robot 100 to the "Auto-Active" state (according to column 508), the value of the "No Step Area Adjustment" setting can be set to "Yes". Figure 5As shown in columns 502 and 506 of the control panel (as shown in FIG. 5 ), when the “Stair Mode” has been set to “Off” (according to column 502) or the Stair Mode Setting Selector 302 determines to transition the robot 100 to the “Auto-Passive” state (according to column 506), the value of the “No Step Area Adjustment” setting can alternatively be set to “No”.
[0095] The “voxel map adjustment” setting can determine whether the perception system 180 is to make special assumptions, such as to account for bad or missing sensor data, when generating a voxel map while traversing the stairs 20. For example, due to the pitch of the body 110 of the robot 100 while traveling up the stairs, the field of view of the sensor 132 may not include part of the top stair landing, or for open riser stairs, problems may arise because the field of view of the sensor 132 includes the bottom surface of the top landing instead of the top surface. In some embodiments, when the value of the “voxel map adjustment” setting is “yes” (e.g., according to Figure 5 504 and 508 of table 500 shown in the figure), for locations where sensor data is missing or ambiguous, perception system 180 can generate voxel data by assuming that the surface at the unknown or occluded location is flat (i.e., horizontal with respect to the direction of gravity). On the other hand, when the value of the "Voxel Map Adjustment" setting is "No" (e.g., according to Figure 5 502 and 506 of table 500 shown), for locations where sensor data is missing or ambiguous, the perception system 180 can generate voxel data by assuming that the surface at the unknown or occluded location will be consistent with the current ground plane perceived by the robot 100, which may or may not be horizontal with respect to the direction of gravity.
[0096] The "Multi-step mu estimation" setting can determine how the coefficient of friction (μ) of the ground surface is determined during movement of the robot 100. In some embodiments, when the value of the "Multi-step mu estimation" setting is "yes" (e.g., according to Figure 5 502 and 506 of the table 500 shown in FIG. 500 ), when the μ estimate for a given step indicates that there is relatively smooth ground beneath the robot 100, the perception system 180 may assume that the robot 100 has encountered smooth ground and may automatically use the same μ estimate for the next few steps of the robot 100. On the other hand, when the value of the “multi-step mu estimate” setting is “No” (e.g., according to Figure 5 504 and 508 of table 500 shown), perception system 180 may instead avoid extending estimates of μ that indicate a smooth surface beneath a given step to subsequent steps.
[0097] The "Contact Normal" setting can control how the direction perpendicular to the surface beneath the robot 100 is determined, for example, to inform friction-based force distribution decisions. In some embodiments, when the value of the "Contact Normal" setting is "Measured" (e.g., based on Figure 5 502 and 506 of table 500 shown in FIG. 500 ), the contact normal under the robot 100 can be extracted from the grid-based terrain determined by the perception system 180. On the other hand, when the value of the “Contact Normal” setting is “Vertical” (e.g., according to Figure 5 504 and 508 of table 500 shown), the perception system 180 may alternatively determine that all contact normals associated with the stair being traversed are perpendicular with respect to the direction of gravity.
[0098] The "Body Bias" setting can control whether the robot 100 can assume a specific posture. In some embodiments, when the value of the "Body Bias" setting is "Allowed" (e.g., according to Figure 5 502 and 506 of the table 500 shown in FIG. 500 ), the robot 100 may be allowed to assume any of a variety of different postures, for example, in response to an operator command input via the control device 318. On the other hand, when the value of the "body offset" setting is "not allowed" (for example, according to Figure 5 504 and 508 of the table 500 shown), the robot 100 may alternatively be forced to assume a particular posture when traversing the stairs 20, with any user input to assume other postures being ignored.
[0099] Figure 6 An example configuration of a robotic device (or "robot") 600 is shown in accordance with some embodiments. The robotic device 600 may correspond, for example, to the robot 100 described above. The robotic device 600 represents an exemplary robotic device configured to perform any of the techniques described herein. The robotic device 600 may be configured to operate autonomously, semi-autonomously, and / or using directions provided by a user, and may exist in various forms, such as a humanoid robot, a bipedal robot, a quadrupedal robot, or other mobile robots, among other examples. Additionally, the robotic device 600 may also be referred to as a robotic system, a mobile robot, or a robot, among other names.
[0100] like Figure 6As shown, the robotic device 600 may include (one or more) processors 602, data storage devices 604, program instructions 606, controllers 608, (one or more) sensors 610, (one or more) power sources 612, mechanical components 614, and electrical components 616. The robotic device 600 is shown for illustrative purposes and may include more or fewer components without departing from the scope of the present disclosure. The various components of the robotic device 600 can be connected in any manner (including via electronic communication devices, such as wired or wireless connections). In addition, in some examples, the components of the robotic device 600 can be located on multiple different physical entities rather than on a single physical entity.
[0101] The processor(s) 602 may operate as one or more general purpose processors or special purpose processors (e.g., digital signal processors, application specific integrated circuits, etc.). The processor(s) 602 may correspond, for example, to the data processing hardware 142 of the robot 100 described above. The processor(s) 602 may be configured to execute computer readable program instructions 606 stored in the data storage device 604 and executable to provide the operation of the robotic device 600 described herein. For example, the program instructions 606 may be executable to provide the operation of the controller 608, wherein the controller 608 may be configured to activate and / or deactivate the mechanical components 614 and the electrical components 616. The processor(s) 602 may operate and enable the robotic device 600 to perform various functions, including the functions described herein.
[0102] The data storage device 604 may exist as various types of storage media (such as memory). The data storage device 604 may correspond, for example, to the memory hardware 144 of the robot 100 described above. The data storage device 604 may include or take the form of one or more non-transitory computer-readable storage media that can be read or accessed by the (one or more) processors 602. The one or more computer-readable storage media may include volatile and / or non-volatile storage components (such as optical, magnetic, organic or other memory or disk storage devices) that may be integrated with the (one or more) processors 602 in whole or in part. In some embodiments, the data storage device 604 may be implemented using a single physical device (e.g., one optical, magnetic, organic or other memory or disk storage device unit), while in other embodiments, the data storage device 604 may be implemented using two or more physical devices that may be in electronic communication (e.g., via wired or wireless communication). In addition, in addition to the computer-readable program instructions 606, the data storage device 604 may include additional data, such as diagnostic data and other possibilities.
[0103] The robotic device 600 may include at least one controller 608, which may be docked with the robotic device 600, and may be integrated with the robotic device, or separate from the robotic device 600. The controller 608 may serve as a link between parts of the robotic device 600, such as a link between mechanical components 614 and / or electrical components 616. In some instances, the controller 608 may serve as an interface between the robotic device 600 and another computing device. In addition, the controller 608 may serve as an interface between the robotic system 600 and (one or more) users. The controller 608 may include various components for communicating with the robotic device 600, including one or more joysticks or buttons and other features. The controller 608 may also perform other operations for the robotic device 600. Other examples of controllers may also exist.
[0104] In addition, the robotic device 600 may include one or more sensors 610, such as image sensors, force sensors, proximity sensors, motion sensors, load sensors, position sensors, touch sensors, depth sensors, ultrasonic range sensors, and / or infrared sensors, or combinations thereof, etc. The sensor(s) 610 may correspond, for example, to the sensors 132 of the robot 100 described above. The sensor(s) 610 may provide sensor data to the processor(s) 602 to allow for proper interaction of the robotic system 600 with the environment and monitoring of the operation of the system of the robotic device 600. The sensor data may be used to evaluate various factors for activating and deactivating mechanical components 614 and electrical components 616 by the controller 608 and / or the computing system of the robotic device 600.
[0105] The sensor(s) 610 may provide information indicative of the environment of the robotic device to the controller 608 and / or computing system for use in determining operation of the robotic device 600. For example, the sensor(s) 610 may capture data corresponding to the topography of the environment or the location of nearby objects, which may assist in environmental recognition and navigation, etc. In an example configuration, the robotic device 600 may include a sensor system that may include a camera, radar, a laser radar (LIDAR), a time-of-flight camera, a global positioning system (GPS) transceiver, and / or other sensors for capturing information of the environment of the robotic device 600. The sensor(s) 610 may monitor the environment in real time and detect obstacles, elements of the terrain, weather conditions, temperature, and / or other parameters of the environment for the robotic device 600.
[0106] Additionally, the robotic device 600 may include other sensors 610 configured to receive information indicative of a state of the robotic device 600, including sensor(s) 610 that may monitor the state of various components of the robotic device 600. The sensor(s) 610 may measure the activity of the system of the robotic device 600 and receive information based on the operation of various features of the robotic device 600, such as the operation of extendable legs, arms, or other mechanical and / or electrical features of the robotic device 600. The sensor data provided by the sensors may enable the computing system of the robotic device 600 to determine errors in operation and monitor the overall functionality of components of the robotic device 600.
[0107] For example, the computing system can use sensor data to determine the stability of the robotic device 600 during operation and measurements related to power levels, communication activities, parts that need repair, and other information. As an example configuration, the robotic device 600 may include (one or more) gyroscopes, (one or more) accelerometers, and / or other possible sensors to provide sensor data related to the operating state of the robotic device. In addition, (one or more) sensors 610 can also monitor the current state of functions (such as gait) that the robotic system 600 may currently be operating. Additionally, (one or more) sensors 610 can measure the distance between a given robotic leg of the robotic device and the center of mass of the robotic device. Other example uses of (one or more) sensors 610 may also exist.
[0108] Additionally, the robotic device 600 may also include one or more power sources 612 configured to provide power to various components of the robotic device 600. Among possible power systems, the robotic device 600 may include a hydraulic system, an electrical system, a battery, and / or other types of power systems. As an example, the robotic device 600 may include one or more batteries configured to provide power to the components via a wired and / or wireless connection. In the example, the components of the mechanical components 614 and the electrical components 616 may each be connected to a different power source or may be powered by the same power source. The components of the robotic system 600 may also be connected to multiple power sources.
[0109] Within the example configuration, any suitable type of power source can be used to power the robotic device 600, such as gasoline and / or electric engines. In addition, (one or more) power sources 612 can be charged using various types of charging, such as wired connection to an external power source, wireless charging, combustion, or other examples. Other configurations are also possible. Additionally, the robotic device 600 may include a hydraulic system that is configured to use fluid power to provide power to the mechanical components 614. For example, the components of the robotic device 600 can be operated based on hydraulic fluid transmitted to various hydraulic motors and hydraulic cylinders throughout the hydraulic system. The hydraulic system of the robotic device 600 can transmit a large amount of power through small tubes, flexible hoses, or other connecting rods between the components of the robotic device 600. Other power sources may be included in the robotic device 600.
[0110] Mechanical components 614 may represent the hardware of the robotic system 600, which may enable the robotic device 600 to operate and perform physical functions. As a few examples, the robotic device 600 may include (one or more) actuators, (one or more) extendable legs ("legs"), (one or more) arms, (one or more) wheels, one or more structural bodies for accommodating computing systems or other components, and / or other mechanical components. The mechanical components 614 may depend on the design of the robotic device 600, and may also be based on the functions and / or tasks that the robotic device 600 may be configured to perform. Thus, depending on the operation and function of the robotic device 600, different mechanical components 614 may be available for the robotic device 600 to utilize. In some examples, the robotic device 600 may be configured to add and / or remove mechanical components 614, which may involve assistance from a user and / or other robotic devices. For example, the robotic device 600 may be initially configured with four legs, but may be changed by a user or the robotic device 600 to remove two of the four legs to operate as a bipedal robot. Other examples of mechanical components 614 may be included.
[0111] The electrical components 616 may include, for example, various components capable of processing, transmitting, providing an electric charge or an electrical signal. In possible examples, the electrical components 616 may include wires, circuits, and / or wireless communication transmitters and receivers to enable the operation of the robotic device 600. The electrical components 616 may interact with the mechanical components 614 to enable the robotic device 600 to perform various operations. For example, the electrical components 616 may be configured to provide power from (one or more) power sources 612 to the various mechanical components 614. In addition, the robotic device 600 may include an electric motor. Other examples of electrical components 616 may also exist.
[0112] In some embodiments, the robotic device 600 may also include communication link(s) 618 configured to send and / or receive information. The communication link(s) 618 may transmit data indicative of the status of various components of the robotic device 600. For example, information read in by the sensor(s) 610 may be transmitted to a separate device via the communication link(s) 618. Other diagnostic information indicative of the integrity or health of the power source 612, mechanical components 614, electrical components 618, processor 602, data storage device 604, and / or controller 608 may be transmitted to an external communication device via the communication link 618.
[0113] In some implementations, the robotic device 600 may receive information processed by the processor(s) 602 at the communication link(s) 618. For example, the received information may indicate data accessible by the processor 602 during execution of the program instructions 606. Additionally, the received information may change aspects of the controller 608 that may affect the behavior of the mechanical component 614 or the electrical component 616. In some cases, the received information indicates a query requesting a specific piece of information (e.g., an operational status of one or more of the components of the robotic device 600), and the processor(s) 602 may then send the specific piece of information back to the communication link(s) 618.
[0114] In some cases, the communication link(s) 618 comprise a wired connection. The robotic device 600 may include one or more ports to dock the communication link(s) 618 to an external device. In addition to or as an alternative to a wired connection, the communication link(s) 618 may include a wireless connection. Some example wireless connections may utilize a cellular connection such as CDMA, EVDO, GSM / GPRS, or 4G telecommunications (such as WiMAX or LTE). Alternatively or additionally, the wireless connection may utilize a Wi-Fi connection to send data to a wireless local area network (WLAN). In some embodiments, the wireless connection may also communicate via an infrared link, radio, Bluetooth, or a near field communication (NFC) device.
[0115] The above embodiments may be implemented in any of a variety of ways. For example, embodiments may be implemented using hardware, software, or a combination thereof. When implemented in software, the software code may be executed on any suitable processor or set of processors, whether arranged in a single computer or distributed between multiple computers. It should be understood that any component or set of components that perform the functions described above may generally be considered to be one or more controllers that control the functions described above. One or more controllers may be implemented in a variety of ways, such as using dedicated hardware or using one or more processors programmed using microcode or software to perform the functions described above.
[0116] Various aspects of the present technology can be used alone, in combination, or in various arrangements not specifically described in the embodiments described above, and therefore its application is not limited to the details and arrangements of the components set forth in the foregoing description or shown in the drawings. For example, aspects described in one embodiment can be combined in any manner with aspects described in other embodiments.
[0117] In addition, some embodiments may be implemented as one or more methods for which examples have been provided. The actions performed as part of the method(s) may be ordered in any suitable manner. Thus, embodiments may be constructed in which the actions are performed in an order different from the order shown, which may include performing some actions simultaneously, even though shown as sequential actions in illustrative embodiments.
[0118] The use of ordinal terms such as "first," "second," "third," etc., to modify claim elements in the claims does not by itself imply any priority, precedence, or order of one claim element relative to another claim element, or a temporal order of performing the acts of a method. Such terms are merely used as labels to distinguish one claim element with a particular name from another element with the same name (but for the use of ordinal terms).
[0119] The phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising,” “having,” “containing,” “involving,” and variations thereof, is intended to encompass the items listed thereafter and additional items.
[0120] Having described several embodiments in detail, various modifications and improvements will be readily apparent to those skilled in the art. Such modifications and improvements are intended to fall within the spirit and scope of the present technology. Therefore, the foregoing description is only exemplary and is not intended to be limiting.
[0121] What is claimed is.
Claims
1. A method comprising: receiving, by one or more sensors of the robot, data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first occasion; determining, based on the data, that one or more stairs exist in a first area of the environment; determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity; as well as When it is determined that one or more stairs exist in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operation mode associated with traversing stairs.
2. The method according to claim 1, wherein: Determining that the robot is expected to enter the first area further includes: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
3. The method according to claim 1, further comprising: determining that the robot is not intended to enter any area of the environment that includes a staircase when the robot is operating in the first operating mode and is at a position along the path followed by the robot at the first occasion; as well as When it is determined that the robot is not intended to enter any area of the environment that includes stairs, the robot is controlled to operate in a second operating mode associated with traversing terrain other than stairs.
4. The method according to claim 3, further comprising: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; as well as When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
5. The method according to claim 4, further comprising: When the robot is operating in the first operating mode, a second criterion and / or threshold value different from the first criterion and / or threshold value is used to determine whether the robot is intended to enter any area of the environment that includes stairs.
6. The method according to claim 3, wherein: Controlling the robot to operate in the first operating mode further comprises adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of stairs, and Controlling the robot to operate in the second operating mode further includes adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain other than stairs.
7. The method according to claim 3, wherein: At least a first value of the first setting for the second operating mode enables the robot to recognize stairs within the environment.
8. The method according to claim 1, further comprising: determining that the robot is currently on stairs when the robot is at a position along the path followed by the robot at the first time; as well as When it is determined that the robot is currently on the stairs, the robot is controlled to operate in the first operation mode.
9. The method according to claim 1, further comprising: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain other than stairs, Wherein, controlling the robot to operate in the first operating mode is based at least in part on receiving the first command.
10. The method according to claim 1, further comprising: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; as well as Based on receiving the second command, the robot is controlled to operate in the first operation mode.
11. The method according to claim 1, further comprising: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain other than stairs; as well as Based on receiving the third command, the robot is controlled to operate in the second operation mode.
12. The method according to claim 1, wherein: The path is determined before the robot travels along the path.
13. A method comprising: determining, based on data received from one or more sensors of a robot operating within an environment, that one or more stairs exist in a first area of the environment; When the operator guides the robot to move in the environment, determining that the robot is expected to enter the first area; as well as When it is determined that one or more stairs exist in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operation mode associated with traversing stairs.
14. The method according to claim 13, wherein: Determining that the robot is expected to enter the first area further includes: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
15. The method of claim 13, wherein: The data corresponds to one or more positions along a path followed by the robot within the environment at a first occasion, and The determining that the robot is expected to enter the first area includes determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity.
16. The method according to claim 13, further comprising: when the robot is operating in the first operating mode and the operator directs the robot to move in the environment, determining that the robot is not intended to enter any area of the environment that includes stairs; as well as When it is determined that the robot is not intended to enter any area of the environment that includes stairs, the robot is controlled to operate in a second operating mode associated with traversing terrain other than stairs.
17. The method according to claim 16, further comprising: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; as well as When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
18. The method according to claim 17, further comprising: When the robot is operating in the first operating mode, a second criterion and / or threshold value different from the first criterion and / or threshold value is used to determine whether the robot is intended to enter any area of the environment that includes stairs.
19. The method of claim 16, wherein: Controlling the robot to operate in the first operating mode further comprises adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of stairs, and Controlling the robot to operate in the second operating mode further includes adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain other than stairs.
20. The method of claim 16, wherein: At least a first value of the first setting for the second operating mode enables the robot to recognize stairs within the environment.
21. The method of claim 13, further comprising: When the operator guides the robot to move in the environment, determining that the robot is currently on a staircase; as well as When it is determined that the robot is currently on the stairs, the robot is controlled to operate in the first operation mode.
22. The method of claim 13, further comprising: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain other than stairs, Wherein, controlling the robot to operate in the first operating mode is based at least in part on receiving the first command.
23. The method of claim 13, further comprising: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; as well as Based on receiving the second command, the robot is controlled to operate in the first operation mode.
24. The method of claim 13, further comprising: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain other than stairs; as well as Based on receiving the third command, the robot is controlled to operate in the second operation mode.
25. A method comprising: receiving, by one or more sensors of the robot, data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first occasion; determining, based on the data, that a first condition exists in terrain in a first area of the environment; determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity; as well as When it is determined that the first condition exists in the terrain in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operating mode associated with the first condition.
26. The method according to claim 25, wherein: Determining that the robot is expected to enter the first area further includes: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
27. The method of claim 25, further comprising: determining that the robot is not intended to enter any area of the environment that includes terrain where the first condition exists while the robot is operating in the first operating mode and at a position along the path followed by the robot at the first opportunity; as well as When it is determined that the robot is not intended to enter any area of the environment including terrain where the first condition exists, the robot is controlled to operate in a second operating mode associated with traversing terrain where the first condition does not exist.
28. The method according to claim 27, further comprising: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; as well as When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
29. The method according to claim 28, further comprising: When the robot is operating in the first operating mode, second criteria and / or thresholds different from the first criteria and / or thresholds are used to determine whether the robot is expected to enter any area of the environment that includes terrain where the first condition exists.
30. The method of claim 27, wherein: Controlling the robot to operate in the first operating mode further comprises adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of terrain where the first condition exists, and Controlling the robot to operate in the second operating mode also includes adjusting the values of the one or more settings to configure the one or more systems to enable traversal of terrain in which the first condition does not exist.
31. The method of claim 27, wherein: At least a first value for the first setting for the second operating mode enables the robot to recognize that a first condition of terrain exists within the environment.
32. The method of claim 25, further comprising: determining that the robot is currently on terrain where the first condition exists when the robot is at a position along the path followed by the robot at the first opportunity; as well as When it is determined that the robot is currently on terrain where the first condition exists, the robot is controlled to operate in the first operating mode.
33. The method of claim 25, further comprising: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain in which the first condition is not present, Wherein, controlling the robot to operate in the first operating mode is based at least in part on receiving the first command.
34. The method of claim 25, further comprising: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; as well as Based on receiving the second command, the robot is controlled to operate in the first operation mode.
35. The method of claim 25, further comprising: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain other than terrain in which the first condition exists; as well as Based on receiving the third command, the robot is controlled to operate in the second operation mode.
36. The method of claim 25, wherein: The path is determined before the robot travels along the path.
37. A method comprising: determining, based on data received from one or more sensors of a robot operating within an environment, that a first condition exists in terrain in a first area of the environment; When the operator guides the robot to move in the environment, determining that the robot is expected to enter the first area; as well as When it is determined that the first condition exists for the terrain in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operating mode associated with traversing the terrain where the first condition exists.
38. The method of claim 37, wherein: Determining that the robot is expected to enter the first area further includes: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
39. The method of claim 37, wherein: The data corresponds to one or more positions along a path followed by the robot within the environment at a first occasion; and The determining that the robot is expected to enter the first area includes determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity.
40. The method of claim 37, further comprising: while the robot is operating in the first operating mode and the operator is directing the robot to move within the environment, determining that the robot is not intended to enter any area of the environment that includes terrain where the first condition exists; as well as When it is determined that the robot is not intended to enter any area of the environment including terrain where the first condition exists, the robot is controlled to operate in a second operating mode associated with traversing terrain where the first condition does not exist.
41. The method of claim 40, further comprising: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; as well as When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
42. The method of claim 17, further comprising: When the robot is operating in the first operating mode, second criteria and / or thresholds different from the first criteria and / or thresholds are used to determine whether the robot is expected to enter any area of the environment that includes terrain where the first condition exists.
43. The method of claim 40, wherein: Controlling the robot to operate in the first operating mode further comprises adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of terrain where the first condition exists, and Controlling the robot to operate in the second operating mode also includes adjusting the values of the one or more settings to configure the one or more systems to enable traversal of terrain in which the first condition does not exist.
44. The method of claim 40, wherein: At least a first value for the first setting for the second operating mode enables the robot to recognize that a first condition of terrain exists within the environment.
45. The method of claim 37, further comprising: When the operator directs the robot to move in the environment, determining that the robot is currently on terrain where the first condition exists; as well as When it is determined that the robot is currently on terrain where the first condition exists, the robot is controlled to operate in the first operating mode.
46. The method of claim 37, further comprising: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain in which the first condition is not present, Wherein, controlling the robot to operate in the first operating mode is based at least in part on receiving the first command.
47. The method of claim 37, further comprising: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; as well as Based on receiving the second command, the robot is controlled to operate in the first operation mode.
48. The method of claim 37, further comprising: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain in which the first condition is absent; as well as Based on receiving the third command, the robot is controlled to operate in the second operation mode.
49. A system comprising: at least one processor; as well as at least one computer-readable medium encoded with instructions that, when executed by the at least one processor, cause the system to: receiving, by one or more sensors of the robot, data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first occasion; determining, based on the data, that one or more stairs exist in a first area of the environment; determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity; as well as When it is determined that one or more stairs exist in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operation mode associated with traversing stairs.
50. The system of claim 49, wherein: The at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to determine that the robot is expected to enter the first area at least in part by: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
51. The system of claim 49, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: determining that the robot is not intended to enter any area of the environment that includes a staircase when the robot is operating in the first operating mode and is at a position along the path followed by the robot at the first occasion; as well as When it is determined that the robot is not intended to enter any area of the environment that includes stairs, the robot is controlled to operate in a second operating mode associated with traversing terrain other than stairs.
52. The system of claim 51, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; and When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
53. The system of claim 52, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode, a second criterion and / or threshold value different from the first criterion and / or threshold value is used to determine whether the robot is intended to enter any area of the environment that includes stairs.
54. The system of claim 51, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: controlling the robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of stairs; as well as The robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain other than stairs.
55. The system of claim 51, wherein: At least a first value of the first setting for the second operating mode enables the robot to recognize stairs within the environment.
56. The system of claim 49, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: determining that the robot is currently on stairs when the robot is at a position along the path followed by the robot at the first time; as well as When it is determined that the robot is currently on the stairs, the robot is controlled to operate in the first operation mode.
57. The system of claim 49, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain other than stairs; as well as Based at least in part on receiving the first command, the robot is controlled to operate in the first operating mode.
58. The system of claim 49, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; as well as Based on receiving the second command, the robot is controlled to operate in the first operation mode.
59. The system of claim 49, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain other than stairs; as well as Based on receiving the third command, the robot is controlled to operate in the second operation mode.
60. The system of claim 49, wherein: The path is determined before the robot travels along the path.
61. A system comprising: at least one processor; as well as at least one computer-readable medium encoded with instructions that, when executed by the at least one processor, cause the system to: determining, based on data received from one or more sensors of a robot operating within an environment, that one or more stairs exist in a first area of the environment; When the operator guides the robot to move in the environment, determining that the robot is expected to enter the first area; as well as When it is determined that one or more stairs exist in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operation mode associated with traversing stairs.
62. The system of claim 61, wherein: The at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to determine that the robot is expected to enter the first area at least in part by: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
63. The system of claim 61, wherein: The data corresponds to one or more locations along a path followed by the robot within the environment at a first time, and the at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: The robot is determined to be expecting to enter the first area at least in part by determining that the robot is expecting to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity.
64. The system of claim 61, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: when the robot is operating in the first operating mode and the operator directs the robot to move in the environment, determining that the robot is not intended to enter any area of the environment that includes stairs; as well as When it is determined that the robot is not intended to enter any area of the environment that includes stairs, the robot is controlled to operate in a second operating mode associated with traversing terrain other than stairs.
65. The system of claim 64, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; and When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
66. The system of claim 65, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode, a second criterion and / or threshold value different from the first criterion and / or threshold value is used to determine whether the robot is intended to enter any area of the environment that includes stairs.
67. The system of claim 64, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: controlling the robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of stairs; as well as The robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain other than stairs.
68. The system of claim 64, wherein: At least a first value of the first setting for the second operating mode enables the robot to recognize stairs within the environment.
69. The system of claim 61, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the operator guides the robot to move in the environment, determining that the robot is currently on a staircase; as well as When it is determined that the robot is currently on the stairs, the robot is controlled to operate in the first operation mode.
70. The system of claim 61, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain other than stairs; as well as Based at least in part on receiving the first command, the robot is controlled to operate in the first operating mode.
71. The system of claim 61, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; as well as Based on receiving the second command, the robot is controlled to operate in the first operation mode.
72. The system of claim 61, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain other than stairs; as well as Based on receiving the third command, the robot is controlled to operate in the second operation mode.
73. A system comprising: at least one processor; as well as at least one computer-readable medium encoded with instructions that, when executed by the at least one processor, cause the system to: receiving, by one or more sensors of the robot, data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first occasion; determining, based on the data, that a first condition exists in terrain in a first area of the environment; determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity; as well as When it is determined that the first condition exists in the terrain in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operating mode associated with the first condition.
74. The system of claim 73, wherein: The at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to determine that the robot is expected to enter the first area at least in part by: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
75. The system of claim 73, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: determining that the robot is not intended to enter any area of the environment that includes terrain where the first condition exists while the robot is operating in the first operating mode and at a position along the path followed by the robot at the first opportunity; as well as When it is determined that the robot is not intended to enter any area of the environment including terrain where the first condition exists, the robot is controlled to operate in a second operating mode associated with traversing terrain where the first condition does not exist.
76. The system of claim 75, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; and When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
77. The system of claim 76, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode, second criteria and / or thresholds different from the first criteria and / or thresholds are used to determine whether the robot is expected to enter any area of the environment that includes terrain where the first condition exists.
78. The system of claim 75, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: controlling the robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of terrain in which the first condition exists; as well as The robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain in which the first condition is absent.
79. The system of claim 75, wherein: At least a first value for the first setting for the second operating mode enables the robot to recognize that a first condition of terrain exists within the environment.
80. The system of claim 73, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: determining that the robot is currently on terrain where the first condition exists when the robot is at a position along the path followed by the robot at the first opportunity; as well as When it is determined that the robot is currently on terrain where the first condition exists, the robot is controlled to operate in the first operating mode.
81. The system of claim 73, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain in which the first condition is not present; as well as Based at least in part on receiving the first command, the robot is controlled to operate in the first operating mode.
82. The system of claim 73, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; as well as Based on receiving the second command, the robot is controlled to operate in the first operation mode.
83. The system of claim 73, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in the second operating mode associated with traversing terrain other than terrain in which the first condition exists; as well as Based on receiving the third command, the robot is controlled to operate in the second operation mode.
84. The system of claim 73, wherein: The path is determined before the robot travels along the path.
85. A system comprising: at least one processor; as well as at least one computer-readable medium encoded with instructions that, when executed by the at least one processor, cause the system to: determining, based on data received from one or more sensors of a robot operating within an environment, that a first condition exists in terrain in a first area of the environment; When the operator guides the robot to move in the environment, determining that the robot is expected to enter the first area; as well as When it is determined that the first condition exists for the terrain in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operating mode associated with traversing the terrain where the first condition exists.
86. The system of claim 85, wherein: The at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to determine that the robot is expected to enter the first area at least in part by: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
87. The system of claim 85, wherein: The data corresponds to one or more locations along a path followed by the robot within the environment at a first time, and the at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: The robot is determined to be expecting to enter the first area at least in part by determining that the robot is expecting to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity.
88. The system of claim 85, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: while the robot is operating in the first operating mode and the operator is directing the robot to move within the environment, determining that the robot is not intended to enter any area of the environment that includes terrain where the first condition exists; as well as When it is determined that the robot is not intended to enter any area of the environment including terrain where the first condition exists, the robot is controlled to operate in a second operating mode associated with traversing terrain where the first condition does not exist.
89. The system of claim 88, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; and When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
90. The system of claim 89, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode, second criteria and / or thresholds different from the first criteria and / or thresholds are used to determine whether the robot is expected to enter any area of the environment that includes terrain where the first condition exists.
91. The system of claim 88, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: controlling the robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of terrain in which the first condition exists; as well as The robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain in which the first condition is absent.
92. The system of claim 88, wherein: At least a first value for the first setting for the second operating mode enables the robot to recognize that a first condition of terrain exists within the environment.
93. The system of claim 85, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the operator directs the robot to move in the environment, determining that the robot is currently on terrain where the first condition exists; as well as When it is determined that the robot is currently on terrain where the first condition exists, the robot is controlled to operate in the first operating mode.
94. The system of claim 85, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain in which the first condition is not present; as well as Based at least in part on receiving the first command, the robot is controlled to operate in the first operating mode.
95. The system of claim 85, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; as well as Based on receiving the second command, the robot is controlled to operate in the first operation mode.
96. The system of claim 85, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain in which the first condition is absent; as well as Based on receiving the third command, the robot is controlled to operate in the second operation mode.
97. At least one non-transitory computer-readable medium encoded with instructions that, when executed by at least one processor of a system, cause the system to: receiving, by one or more sensors of the robot, data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first occasion; determining, based on the data, that one or more stairs exist in a first area of the environment; determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity; as well as When it is determined that one or more stairs exist in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operation mode associated with traversing stairs.
98. The at least one non-transitory computer-readable medium of claim 97, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to determine that the robot is expected to enter the first area, at least in part, by: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
99. The at least one non-transitory computer readable medium of claim 97, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: determining that the robot is not intended to enter any area of the environment that includes stairs when the robot is operating in the first operating mode and is at a position along the path followed by the robot at the first occasion; and When it is determined that the robot is not intended to enter any area of the environment that includes stairs, the robot is controlled to operate in a second operating mode associated with traversing terrain other than stairs.
100. The at least one non-transitory computer readable medium of claim 99, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; and When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
101. The at least one non-transitory computer readable medium of claim 100, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode, a second criterion and / or threshold value different from the first criterion and / or threshold value is used to determine whether the robot is intended to enter any area of the environment that includes stairs.
102. The at least one non-transitory computer readable medium of claim 99, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: controlling the robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of stairs; and The robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain other than stairs.
103. The at least one non-transitory computer-readable medium of claim 99, wherein: At least a first value of the first setting for the second operating mode enables the robot to recognize stairs within the environment.
104. The at least one non-transitory computer readable medium of claim 97, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: determining that the robot is currently on stairs when the robot is at a position along the path followed by the robot at the first opportunity; and When it is determined that the robot is currently on the stairs, the robot is controlled to operate in the first operation mode.
105. The at least one non-transitory computer readable medium of claim 97, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain other than stairs; and Based at least in part on receiving the first command, the robot is controlled to operate in the first operating mode.
106. The at least one non-transitory computer readable medium of claim 97, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; and Based on receiving the second command, the robot is controlled to operate in the first operation mode.
107. The at least one non-transitory computer readable medium of claim 97, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain other than stairs; and Based on receiving the third command, the robot is controlled to operate in the second operation mode.
108. The at least one non-transitory computer-readable medium of claim 97, wherein: The path is determined before the robot travels along the path.
109. At least one non-transitory computer-readable medium encoded with instructions that, when executed by at least one processor of a system, cause the system to: determining, based on data received from one or more sensors of a robot operating within an environment, that one or more stairs exist in a first area of the environment; When the operator guides the robot to move in the environment, determining that the robot is expected to enter the first area; as well as When it is determined that one or more stairs exist in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operation mode associated with traversing stairs.
110. The at least one non-transitory computer-readable medium of claim 109, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to determine that the robot is expected to enter the first area at least in part by: Determining a planned path for the robot; as well as Determining that the planned path intersects the first area; The robot is determined to be expecting to enter the first area at least in part by determining that the robot is expecting to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity.
111. The at least one non-transitory computer readable medium of claim 109, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode and the operator directs the robot to move in the environment, determining that the robot is not intended to enter any area of the environment that includes stairs; and When it is determined that the robot is not intended to enter any area of the environment that includes stairs, the robot is controlled to operate in a second operating mode associated with traversing terrain other than stairs.
112. The at least one non-transitory computer readable medium of claim 111, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; and When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
113. The at least one non-transitory computer readable medium of claim 112, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode, a second criterion and / or threshold value different from the first criterion and / or threshold value is used to determine whether the robot is intended to enter any area of the environment that includes stairs.
114. The at least one non-transitory computer readable medium of claim 111, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: controlling the robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of stairs; and The robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain other than stairs.
115. The at least one non-transitory computer-readable medium of claim 111, wherein: At least a first value of the first setting for the second operating mode enables the robot to recognize stairs within the environment.
116. The at least one non-transitory computer readable medium of claim 109, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the operator guides the robot to move in the environment, determining that the robot is currently on a staircase; and When it is determined that the robot is currently on the stairs, the robot is controlled to operate in the first operation mode.
117. The at least one non-transitory computer readable medium of claim 109, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain other than stairs; and Based at least in part on receiving the first command, the robot is controlled to operate in the first operating mode.
118. The at least one non-transitory computer readable medium of claim 109, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; and Based on receiving the second command, the robot is controlled to operate in the first operation mode.
119. The at least one non-transitory computer readable medium of claim 109, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain other than stairs; and Based on receiving the third command, the robot is controlled to operate in the second operation mode.
120. At least one non-transitory computer-readable medium encoded with instructions that, when executed by at least one processor of a system, cause the system to: receiving, by one or more sensors of the robot, data corresponding to one or more positions of the robot along a path followed by the robot within an environment at a first occasion; determining, based on the data, that a first condition exists in terrain in a first area of the environment; determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity; as well as When it is determined that the first condition exists in the terrain in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operating mode associated with the first condition.
121. The at least one non-transitory computer readable medium of claim 120, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to determine that the robot is expected to enter the first area at least in part by: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
122. The at least one non-transitory computer readable medium of claim 120, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: determining that the robot is not expected to enter any area of the environment that includes terrain where the first condition exists while the robot is operating in the first operating mode and at a position along the path followed by the robot at the first opportunity; and When it is determined that the robot is not intended to enter any area of the environment including terrain where the first condition exists, the robot is controlled to operate in a second operating mode associated with traversing terrain where the first condition does not exist.
123. The at least one non-transitory computer readable medium of claim 122, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; and When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
124. The at least one non-transitory computer readable medium of claim 122, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode, second criteria and / or thresholds different from the first criteria and / or thresholds are used to determine whether the robot is expected to enter any area of the environment that includes terrain where the first condition exists.
125. The at least one non-transitory computer readable medium of claim 122, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: controlling the robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of terrain where the first condition exists; and The robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain in which the first condition is absent.
126. The at least one non-transitory computer readable medium of claim 122, wherein: At least a first value of the first setting for the second operating mode enables the robot to identify terrain within the environment where the first condition exists.
127. The at least one non-transitory computer readable medium of claim 120, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: determining that the robot is currently on terrain where the first condition exists when the robot is at a position along the path followed by the robot at the first opportunity; and When it is determined that the robot is currently on terrain where the first condition exists, the robot is controlled to operate in the first operating mode.
128. The at least one non-transitory computer readable medium of claim 120, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain in which the first condition is not present; and Based at least in part on receiving the first command, the robot is controlled to operate in the first operating mode.
129. The at least one non-transitory computer readable medium of claim 120, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; and Based on receiving the second command, the robot is controlled to operate in the first operation mode.
130. The at least one non-transitory computer readable medium of claim 120, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain other than terrain in which the first condition exists; and Based on receiving the third command, the robot is controlled to operate in the second operation mode.
131. The at least one non-transitory computer readable medium of claim 120, wherein: The path is determined before the robot travels along the path.
132. At least one non-transitory computer-readable medium encoded with instructions that, when executed by at least one processor of a system, cause the system to: determining, based on data received from one or more sensors of a robot operating within an environment, that a first condition exists in terrain in a first area of the environment; When the operator guides the robot to move in the environment, determining that the robot is expected to enter the first area; as well as When it is determined that the first condition exists for the terrain in the first area and the robot is expected to enter the first area, the robot is controlled to operate in a first operating mode associated with traversing the terrain where the first condition exists.
133. The at least one non-transitory computer-readable medium of claim 132, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to determine that the robot is expected to enter the first area, at least in part, by: determining a planned path for the robot; and It is determined that the planned path intersects the first area.
134. The at least one non-transitory computer readable medium of claim 132, wherein: The data corresponds to one or more locations along a path followed by the robot within the environment at a first time, and the at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: The robot is determined to be expected to enter the first area at least in part by determining that the robot is expected to enter the first area when the robot is at a position along the path followed by the robot at the first opportunity.
135. The at least one non-transitory computer readable medium of claim 132, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode and the operator directs the robot to move in the environment, determining that the robot is not expected to enter any area of the environment that includes terrain where the first condition exists; and When it is determined that the robot is not intended to enter any area of the environment including terrain where the first condition exists, the robot is controlled to operate in a second operating mode associated with traversing terrain where the first condition does not exist.
136. The at least one non-transitory computer readable medium of claim 135, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: before determining that the robot is expected to enter the first area, controlling the robot to operate in the second operation mode; and When the robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the robot is expected to enter the first area.
137. The at least one non-transitory computer readable medium of claim 136, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the robot is operating in the first operating mode, second criteria and / or thresholds different from the first criteria and / or thresholds are used to determine whether the robot is expected to enter any area of the environment that includes terrain where the first condition exists.
138. The at least one non-transitory computer readable medium of claim 135, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: controlling the robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the robot to enable traversal of terrain where the first condition exists; and The robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain in which the first condition is absent.
139. The at least one non-transitory computer readable medium of claim 135, wherein: At least a first value for the first setting for the second operating mode enables the robot to recognize that a first condition of terrain exists within the environment.
140. The at least one non-transitory computer readable medium of claim 132, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: When the operator directs the robot to move in the environment, determining that the robot is currently on terrain where the first condition exists; and When it is determined that the robot is currently on terrain where the first condition exists, the robot is controlled to operate in the first operating mode.
141. The at least one non-transitory computer readable medium of claim 132, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain in which the first condition is not present; and Based at least in part on receiving the first command, the robot is controlled to operate in the first operating mode.
142. The at least one non-transitory computer readable medium of claim 132, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the robot to operate in the first operating mode; and Based on receiving the second command, the robot is controlled to operate in the first operation mode.
143. The at least one non-transitory computer readable medium of claim 132, further encoded with additional instructions that, when executed by the at least one processor, further cause the system to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the robot to operate in a second operating mode associated with traversing terrain in which the first condition is absent; and Based on receiving the third command, the robot is controlled to operate in the second operation mode.
144. A mobile robot comprising: Robot body; one or more motion-based structures coupled to the body, the one or more motion-based structures configured to move the mobile robot within an environment; one or more sensors supported by the body, the one or more sensors configured to output data regarding one or more sensed conditions of the environment; at least one processor; as well as at least one computer-readable medium encoded with instructions that, when executed by the at least one processor, cause the mobile robot to: receiving, by the one or more sensors, data corresponding to one or more positions of the mobile robot along a path followed by the mobile robot within the environment at a first occasion; determining, based on the data, that one or more stairs exist in a first area of the environment; determining that the mobile robot is expected to enter the first area when the mobile robot is at a position along the path followed by the mobile robot at the first timing; and When it is determined that one or more stairs exist in the first area and the mobile robot is expected to enter the first area, the mobile robot is controlled to operate in a first operation mode associated with traversing stairs.
145. The mobile robot of claim 144, wherein: The at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to determine that the mobile robot is expected to enter the first area at least in part by: determining a planned path for the mobile robot; and It is determined that the planned path intersects the first area.
146. The mobile robot of claim 144, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: determining that the mobile robot is not intended to enter any area of the environment that includes stairs when the mobile robot is operating in the first operating mode and is at a position along the path followed by the mobile robot at the first opportunity; and When it is determined that the mobile robot is not intended to enter any area of the environment that includes stairs, the mobile robot is controlled to operate in a second operating mode associated with traversing terrain other than stairs.
147. The mobile robot of claim 146, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: Before determining that the mobile robot is expected to enter the first area, controlling the mobile robot to operate in the second operation mode; and When the mobile robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the mobile robot is expected to enter a first area.
148. The mobile robot of claim 147, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: When the mobile robot is operating in the first operating mode, a second criterion and / or threshold value different from the first criterion and / or threshold value is used to determine whether the mobile robot is expected to enter any area of the environment that includes stairs.
149. The mobile robot of claim 146, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: controlling the mobile robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the mobile robot to enable traversal of stairs; as well as The mobile robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain other than stairs.
150. The mobile robot of claim 146, wherein: At least a first value of the first setting for the second operating mode enables the mobile robot to recognize stairs within the environment.
151. The mobile robot of claim 144, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: determining that the mobile robot is currently on stairs when the mobile robot is at a position along the path followed by the mobile robot at the first opportunity; as well as When it is determined that the mobile robot is currently on the stairs, the mobile robot is controlled to operate in the first operation mode.
152. The mobile robot of claim 144, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the mobile robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain other than stairs; as well as Based at least in part on receiving the first command, the mobile robot is controlled to operate in the first operating mode.
153. The mobile robot of claim 144, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the mobile robot to operate in the first operating mode; as well as Based on receiving the second command, the mobile robot is controlled to operate in the first operation mode.
154. The mobile robot of claim 144, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the mobile robot to operate in a second operating mode associated with traversing terrain other than stairs; as well as Based on receiving the third command, the mobile robot is controlled to operate in the second operation mode.
155. The mobile robot of claim 144, wherein: The path is determined before the robot travels along the path.
156. A mobile robot comprising: Robot body; one or more motion-based structures coupled to the body, the one or more motion-based structures configured to move the mobile robot within an environment; one or more sensors supported by the body, the one or more sensors configured to output data regarding one or more sensed conditions of the environment; at least one processor; as well as at least one computer-readable medium encoded with instructions that, when executed by the at least one processor, cause the mobile robot to: determining, based on data received from the one or more sensors of a robot operating within the environment, that one or more stairs exist in a first area of the environment; When the operator guides the mobile robot to move in the environment, determining that the mobile robot is expected to enter the first area; and When it is determined that one or more stairs exist in the first area and the mobile robot is expected to enter the first area, the mobile robot is controlled to operate in a first operation mode associated with traversing stairs.
157. The mobile robot of claim 156, wherein: The at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to determine that the mobile robot is expected to enter the first area at least in part by: determining a planned path for the mobile robot; and It is determined that the planned path intersects the first area.
158. The mobile robot of claim 156, wherein: The data corresponds to one or more locations along a path followed by the mobile robot within the environment at a first opportunity, and the at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: The mobile robot is determined to anticipate entering the first area at least in part by determining that the mobile robot is expected to enter the first area when the mobile robot is at a position along the path followed by the mobile robot at the first opportunity.
159. The mobile robot of claim 156, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: When the mobile robot is operating in the first operating mode and the operator directs the mobile robot to move around the environment, determining that the mobile robot is not expected to enter any area of the environment that includes stairs; and When it is determined that the mobile robot is not intended to enter any area of the environment that includes stairs, the mobile robot is controlled to operate in a second operating mode associated with traversing terrain other than stairs.
160. The mobile robot of claim 159, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: Before determining that the mobile robot is expected to enter the first area, controlling the mobile robot to operate in the second operation mode; and When the mobile robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the mobile robot is expected to enter the first area.
161. The mobile robot of claim 160, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: When the mobile robot is operating in the first operating mode, a second criterion and / or threshold value different from the first criterion and / or threshold value is used to determine whether the mobile robot is expected to enter any area of the environment that includes stairs.
162. The mobile robot of claim 159, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: controlling the mobile robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the mobile robot to enable traversal of stairs; as well as The mobile robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain other than stairs.
163. The mobile robot of claim 159, wherein: At least a first value of the first setting for the second operating mode enables the mobile robot to recognize stairs within the environment.
164. The mobile robot of claim 156, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: When the operator guides the mobile robot to move in the environment, determining that the mobile robot is currently on a staircase; and When it is determined that the mobile robot is currently on the stairs, the mobile robot is controlled to operate in the first operation mode.
165. The mobile robot of claim 156, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the mobile robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain other than stairs; as well as Based at least in part on receiving the first command, the mobile robot is controlled to operate in the first operating mode.
166. The mobile robot of claim 156, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the mobile robot to operate in the first operating mode; as well as Based on receiving the second command, the mobile robot is controlled to operate in the first operation mode.
167. The mobile robot of claim 156, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the mobile robot to operate in a second operating mode associated with traversing terrain other than stairs; as well as Based on receiving the third command, the mobile robot is controlled to operate in the second operation mode.
168. A mobile robot comprising: Robot body; one or more motion-based structures coupled to the body, the one or more motion-based structures configured to move the mobile robot within an environment; one or more sensors supported by the body, the one or more sensors configured to output data regarding one or more sensed conditions of the environment; at least one processor; as well as at least one computer-readable medium encoded with instructions that, when executed by the at least one processor, cause the mobile robot to: receiving, by the one or more sensors of the robot, data corresponding to one or more positions of the mobile robot along a path followed by the mobile robot within the environment at a first occasion; determining, based on the data, that a first condition exists in terrain in a first area of the environment; determining that the mobile robot is expected to enter the first area when the mobile robot is at a position along the path followed by the mobile robot at the first timing; as well as When it is determined that the first condition exists in the terrain in the first area and the mobile robot is expected to enter the first area, the mobile robot is controlled to operate in a first operating mode associated with the first condition.
169. The mobile robot of claim 168, wherein: The at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to determine that the mobile robot is expected to enter the first area at least in part by: determining a planned path for the mobile robot; and It is determined that the planned path intersects the first area.
170. The mobile robot of claim 168, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: determining that the mobile robot is not expected to enter any area of the environment that includes terrain where the first condition exists while the mobile robot is operating in the first operating mode and at a position along the path followed by the mobile robot at the first opportunity; as well as When it is determined that the mobile robot is not intended to enter any area of the environment including terrain where the first condition exists, the mobile robot is controlled to operate in a second operating mode associated with traversing terrain where the first condition does not exist.
171. The mobile robot of claim 170, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: Before determining that the mobile robot is expected to enter the first area, controlling the mobile robot to operate in the second operation mode; and When the mobile robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the mobile robot is expected to enter a first area.
172. The mobile robot of claim 171, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: When the mobile robot is operating in the first operating mode, a second criterion and / or threshold different from the first criterion and / or threshold is used to determine whether the mobile robot is expected to enter any area of the environment that includes terrain where the first condition exists.
173. The mobile robot of claim 170, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: controlling the mobile robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the mobile robot to enable traversal of terrain where the first condition exists; as well as The mobile robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain in which the first condition does not exist.
174. The mobile robot of claim 170, wherein: At least a first value of the first setting for the second operating mode enables the mobile robot to identify terrain within the environment where the first condition exists.
175. The mobile robot of claim 168, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: determining that the mobile robot is currently on terrain where the first condition exists when the mobile robot is at a position along the path followed by the mobile robot at the first opportunity; as well as When it is determined that the mobile robot is currently on terrain where the first condition exists, the mobile robot is controlled to operate in the first operation mode.
176. The mobile robot of claim 168, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the mobile robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain in which the first condition is not present; as well as Based at least in part on receiving the first command, the mobile robot is controlled to operate in the first operating mode.
177. The mobile robot of claim 168, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the mobile robot to operate in the first operating mode; as well as Based on receiving the second command, the mobile robot is controlled to operate in the first operation mode.
178. The mobile robot of claim 168, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the mobile robot to operate in a second operating mode associated with traversing terrain other than terrain in which the first condition exists; as well as Based on receiving the third command, the mobile robot is controlled to operate in the second operation mode.
179. The mobile robot of claim 168, wherein: The path is determined before the robot travels along the path.
180. A mobile robot comprising: Robot body; one or more motion-based structures coupled to the body, the one or more motion-based structures configured to move the mobile robot within an environment; one or more sensors supported by the body, the one or more sensors configured to output data regarding one or more sensed conditions of the environment; at least one processor; as well as at least one computer-readable medium encoded with instructions that, when executed by the at least one processor, cause the mobile robot to: determining, based on data received from the one or more sensors of a robot operating within the environment, that a first condition exists in terrain in a first area of the environment; When the operator guides the mobile robot to move in the environment, determining that the mobile robot is expected to enter the first area; as well as When it is determined that the first condition exists for the terrain in the first area and the mobile robot is expected to enter the first area, the mobile robot is controlled to operate in a first operation mode associated with traversing the terrain where the first condition exists.
181. The mobile robot of claim 179, wherein: The at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to determine that the mobile robot is expected to enter the first area at least in part by: determining a planned path for the mobile robot; and It is determined that the planned path intersects the first area.
182. The mobile robot of claim 179, wherein: The data corresponds to one or more locations along a path followed by the mobile robot within the environment at a first opportunity, and the at least one computer-readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: The mobile robot is determined to be expecting to enter the first area at least in part by determining that the mobile robot is expecting to enter the first area when the mobile robot is at a position along the path followed by the mobile robot at the first opportunity.
183. The mobile robot of claim 179, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: When the mobile robot is operating in the first operating mode and the operator is directing the mobile robot to move in the environment, determining that the mobile robot is not expected to enter any area of the environment that includes terrain where the first condition exists; and When it is determined that the mobile robot is not intended to enter any area of the environment including terrain where the first condition exists, the mobile robot is controlled to operate in a second operating mode associated with traversing terrain where the first condition does not exist.
184. The mobile robot of claim 182, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: Before determining that the mobile robot is expected to enter the first area, controlling the mobile robot to operate in the second operation mode; and When the mobile robot is operating in the second operating mode, a first criterion and / or threshold is used to determine whether the mobile robot is expected to enter a first area.
185. The mobile robot of claim 184, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: When the mobile robot is operating in the first operating mode, a second criterion and / or threshold different from the first criterion and / or threshold is used to determine whether the mobile robot is expected to enter any area of the environment that includes terrain where the first condition exists.
186. The mobile robot of claim 183, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: controlling the mobile robot to operate in the first operating mode at least in part by adjusting values of one or more settings to configure one or more systems of the mobile robot to enable traversal of terrain where the first condition exists; as well as The mobile robot is controlled to operate in the second operating mode at least in part by adjusting values of the one or more settings to configure the one or more systems to enable traversal of terrain in which the first condition does not exist.
187. The mobile robot of claim 183, wherein: At least a first value of the first setting for the second operating mode enables the mobile robot to identify terrain within the environment where the first condition exists.
188. The mobile robot of claim 180, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: When the operator guides the mobile robot to move in the environment, determining that the mobile robot is currently on terrain where the first condition exists; and When it is determined that the mobile robot is currently on terrain where the first condition exists, the mobile robot is controlled to operate in the first operation mode.
189. The mobile robot according to claim 180, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a first command at a first time, corresponding to a first user input, the first command instructing the mobile robot to automatically transition between the first operating mode and a second operating mode associated with traversing terrain in which the first condition is not present; as well as Based at least in part on receiving the first command, the mobile robot is controlled to operate in the first operating mode.
190. The mobile robot according to claim 180, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a second command at a second time, corresponding to a second user input, the second command instructing the mobile robot to operate in the first operating mode; as well as Based on receiving the second command, the mobile robot is controlled to operate in the first operation mode.
191. The mobile robot of claim 180, wherein: The at least one computer readable medium is further encoded with additional instructions that, when executed by the at least one processor, further cause the mobile robot to: receiving a third command at a third time, corresponding to a third user input, the third command instructing the mobile robot to operate in a second operating mode associated with traversing terrain in which the first condition is absent; as well as Based on receiving the third command, the mobile robot is controlled to operate in the second operation mode.
Citation Information
Patent Citations
Robotically negotiating stairs
US11123869B2
Identifying Stairs from Footfalls
US20210323618A1
Perception and Fitting for a Stair Tracker
US20210333804A1