System to localize, characterize, and map a collision of an autonomous mobile device
An autonomous mobile device (AMD) moves within in a physical space. The AMD may encounter features in the physical space, such as flooring transitions, or obstacles that may impede movement. Sensors such as an ultrasonic sensor, optical time of flight sensors, inertial measurement unit (IMU), wheel speed sensors, and motor torque sensors acquire sensor data. Based on the sensor data, a location of an obstacle, and characterize whether that obstacle is traversable or non-traversable, is determined. If traversable, the AMD may continue moving past the obstacle. If non-traversable, the location of the obstacle may be added to a map used for route planning. Based on the location of the non-traversable obstacle, the AMD may move to a recovery location away from the obstacle, and resume moving.
1 . An autonomous mobile device (AMD) comprising:
an inertial measurement unit (IMU);
a set of distance sensors;
a motor torque sensor;
a wheel speed sensor;
one or more motors;
one or more processors; and
one or more non-transitory computer readable media storing instructions which, when executed using the one or more processors, cause the AMD to:
determine physical parameters associated with the AMD;
acquire IMU data using the IMU;
acquire distance data using the set of distance sensors;
acquire motor torque data using the motor torque sensor;
acquire wheel speed data using the wheel speed sensor;
determine a collision event based on one or more of the IMU data, the distance data, the motor torque data, or the wheel speed data;
determine, based on the one or more of the IMU data, the distance data, the motor torque data, or the wheel speed data, that an obstacle is non-traversable;
determine that the distance data indicates a distance to a nearest obstacle that is greater than a first threshold value;
determine velocity residual data based on the physical parameters, the motor torque data, and the wheel speed data;
determine a predicted collision location indicative of a portion of a structure of the AMD that collided with the obstacle based on the IMU data and the velocity residual data;
determine localization data indicative of a location of the AMD in a physical space;
determine, based on the predicted collision location, the physical parameters, the localization data, and one or more of the IMU data, the distance data, the motor torque data, or the wheel speed data, a location of the obstacle with respect to map data that is representative of the physical space;
add the location of the obstacle to the map data; and
operate the one or more motors to move the AMD based on the map data.
2 . The AMD of claim 1 , wherein the one or more non-transitory computer readable media store instructions which, when executed using the one or more processors, cause the AMD to:
determine, based on the physical parameters and the one or more of the IMU data, the distance data, the motor torque data, or the wheel speed data, the portion of the structure of the AMD that collided with the obstacle.
3 . The AMD of claim 1 , wherein
the IMU data and the velocity residual data are used as input to a machine learning module to determine the predicted collision location.
4 . The AMD of claim 1 , wherein the one or more non-transitory computer readable media store instructions which, when executed using the one or more processors, cause the AMD to:
determine an area under the curve (AUC) of the velocity residual data that is associated with the collision event;
determine that the AUC is less than a first threshold value; and
determine a pitch value, based on the IMU data, is greater than a second threshold value.
5 . The AMD of claim 1 , further comprising one or more motors; and
wherein the one or more non-transitory computer readable media store instructions which, when executed using the one or more processors, cause the AMD to:
stop operation of the one or more motors responsive to the determination that the obstacle is non-traversable;
determine, using the map data, a first path that moves the AMD away from the location of the obstacle; and
wherein the one or more motors are operated to move the AMD along the first path.
6 . An autonomous mobile device (AMD) comprising:
a first set of sensors;
one or more processors; and
one or more non-transitory computer readable media storing instructions which, when executed using the one or more processors, cause the AMD to:
operate one or more motors to move the AMD within a physical space;
determine physical parameters associated with the AMD;
acquire sensor data using the first set of sensors;
determine, based on the sensor data, a collision event;
determine localization data indicative of a location of the AMD in the physical space;
determine, based on the physical parameters and the sensor data, a portion of a structure of the AMD that collided with an obstacle;
determine, based on the sensor data, a distance to a nearest obstacle that is greater than a first threshold distance value;
determine velocity residual data based on the physical parameters and the sensor data;
determine an area under the curve (AUC) of the velocity residual data that is associated with the collision event;
determine, based on the sensor data and the AUC, traversability data that is associated with the obstacle;
determine, based on the portion of the structure of the AMD that collided with the obstacle, the physical parameters, and the localization data, a location of the obstacle with respect to map data that is representative of the physical space; and
perform one of:
stop operation of the one or more motors based on the traversability data, or
continue operation of the one or more motors to move the AMD, based on the traversability data.
7 . The AMD of claim 6 , wherein the one or more non-transitory processors, cause the AMD to:
determine a predicted collision location indicative of the portion of the structure of the AMD that collided with the obstacle based on the sensor data and the velocity residual data as input to a machine learning module; and
wherein the location of the obstacle with respect to the map data is further determined based on the predicted collision location.
8 . The AMD of claim 6 , wherein the one or more non-transitory computer readable media store instructions which, when executed using the one or more processors, cause the AMD to:
determine that the obstacle is traversable based on the AUC being less than a second threshold value; and
wherein the operation of the one or more motors is continued responsive to the determination that the obstacle is traversable.
9 . The AMD of claim 6 , wherein the one or more non-transitory computer readable media store instructions which, when executed using the one or more processors, cause the AMD to:
determine that the obstacle is non-traversable based on the AUC being greater than a second threshold value;
wherein the operation of the one or more motors is stopped responsive to the determination that the obstacle is non-traversable; and
add the location of the obstacle to the map data.
10 . The AMD of claim 6 , wherein the one or more non-transitory computer readable media store instructions which, when executed using the one or more processors, cause the AMD to:
determine that the AUC is greater than a first threshold value;
determine a pitch value, based on the sensor data, is not within a threshold range; and
determine that the obstacle is traversable.
11 . The AMD of claim 6 , wherein the one or more non-transitory computer readable media store instructions which, when executed using the one or more processors, cause the AMD to:
determine that the AUC is greater than a first threshold value;
determine a pitch value, based on the sensor data, is within a threshold range;
determine that the obstacle is non-traversable;
wherein the operation of the one or more motors is stopped responsive to the determination that the obstacle is non-traversable; and
add the location of the obstacle to the map data.
12 . The AMD of claim 6 , wherein the operation of the one or more motors is stopped responsive to the traversability data indicating a non-traversable object; and wherein the one or more non-transitory computer readable media store instructions which, when executed using the one or more processors, cause the AMD to:
determine, using the map data, a first path that moves the AMD away from the location of the obstacle; and
operate the one or more motors to move the AMD along the first path.
13 . A computer-implemented method comprising:
determining physical parameters associated with an autonomous mobile device (AMD);
operating one or more motors to move the AMD within a physical space;
acquiring sensor data using a first set of sensors;
determining, based on the sensor data, a collision event with an obstacle;
determining, based on the sensor data, traversability data that is associated with the obstacle;
determining localization data indicative of a location of the AMD in the physical space;
determining, based on the physical parameters and the sensor data, a portion of a structure of the AMD that collided with the obstacle;
determining, based on the sensor data, a distance to a nearest obstacle that is greater than a first threshold distance value;
determining velocity residual data based on the physical parameters and the sensor data;
determining an area under the curve (AUC) of the velocity residual data that is associated with the collision event;
determining, based on the sensor data and the AUC, traversability data that is associated with the obstacle;
determining, based on the portion of the structure of the AMD that collided with the obstacle, the physical parameters, and the localization data, a location of the obstacle with respect to map data that is representative of the physical space; and
performing one of:
stopping operation of the one or more motors based on the traversability data, or
operating the one or more motors to move the AMD based on the traversability data and the location of the obstacle.
14 . The computer-implemented method of claim 13 , further comprising:
determining a predicted collision location indicative of the portion of the structure of the AMD that collided with the obstacle based on the sensor data and the velocity residual data as input to a machine learning module; and
wherein the determining the location of the obstacle with respect to the map data is further based on the predicted collision location.
15 . The computer-implemented method of claim 13 , further comprising:
determining that the obstacle is traversable based on the AUC being less than a second threshold value; and
wherein the operating the one or more motors to move the AMD based on the traversability data and the location of the obstacle is based on the determining that the obstacle is traversable.
16 . The computer-implemented method of claim 13 , further comprising:
determining that the obstacle is non-traversable based on the AUC being greater than a second threshold value;
wherein the stopping the operation of the one or more motors is responsive to the determination that the obstacle is non-traversable; and
adding the location of the obstacle to the map data.
17 . The computer-implemented method of claim 13 , further comprising:
determining that the AUC is greater than a first threshold value;
determining a pitch value, based on the sensor data, is not within a threshold range; and
determining that the obstacle is traversable.
18 . The computer-implemented method of claim 13 , further comprising:
determining that the AUC is greater than a first threshold value;
determining a pitch value, based on the sensor data, is within a threshold range;
determining that the obstacle is non-traversable;
wherein the stopping the operation of the one or more motors is responsive to the determination that the obstacle is non-traversable; and
adding the location of the obstacle to the map data.
19 . The computer-implemented method of claim 13 , further comprising:
determining that the obstacle is non-traversable, wherein the stopping the operation of the one or more motors is performed responsive to the determination that the obstacle is non-traversable;
determining, using the location of the obstacle, a first path that moves the AMD away from the location of the obstacle; and
operating the one or more motors to move the AMD along the first path.