WO2024009767A1 - キャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラム - Google Patents

キャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラム Download PDF

Info

Publication number
WO2024009767A1
WO2024009767A1 PCT/JP2023/022872 JP2023022872W WO2024009767A1 WO 2024009767 A1 WO2024009767 A1 WO 2024009767A1 JP 2023022872 W JP2023022872 W JP 2023022872W WO 2024009767 A1 WO2024009767 A1 WO 2024009767A1
Authority
WO
WIPO (PCT)
Prior art keywords
coordinate system
transformation matrix
coordinate
sensor
robot
Prior art date
Application number
PCT/JP2023/022872
Other languages
English (en)
French (fr)
Inventor
慶明 佐藤
Original Assignee
ソニーグループ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Publication of WO2024009767A1 publication Critical patent/WO2024009767A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C11/00Photogrammetry or videogrammetry, e.g. stereogrammetry; Photographic surveying
    • G01C11/02Picture taking arrangements specially adapted for photogrammetry or photographic surveying, e.g. controlling overlapping of pictures
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C15/00Surveying instruments or accessories not provided for in groups G01C1/00 - G01C13/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics

Definitions

  • the present disclosure relates to a calibration execution device, a calibration system, a method, and a program. More specifically, the present invention relates to a calibration execution device, a calibration system, a method, and a program for calibrating a sensor such as a camera mounted on a mobile device such as a robot and evaluating a calibration result.
  • a sensor such as a camera is attached to the mobile device.
  • sensors installed in mobile devices include depth cameras that can take distance images with distance stored in each pixel, and LiDAR (Light Detection and Ranging) sensors that measure the distance to obstacles using laser light. )and so on.
  • LiDAR Light Detection and Ranging
  • Each of these sensors individually measures the surrounding environment, such as the distance and direction to an obstacle.
  • the position and direction of obstacles are measured using a coordinate system unique to each sensor. That is, the camera determines the coordinate position of the obstacle using, for example, a camera coordinate system with the camera lens position as the origin.
  • LiDAR determines the coordinate position of the obstacle using, for example, a LiDAR coordinate system whose origin is the laser light output position within LiDAR.
  • the robot itself has its own robot coordinate system.
  • the robot coordinate system for example, a coordinate system having an origin at the center position of the robot or the like is used. In order for the robot to travel safely, it is necessary to accurately calculate the position of the obstacle on this robot coordinate system.
  • the position of the obstacle P in the depth camera coordinate system ( ⁇ D ) calculated using the captured image of the depth camera (depth camera coordinate position (x D , y D , z D )), or the LiDAR coordinates calculated by LiDAR.
  • the position of the obstacle P in the system ( ⁇ L ) (LiDAR coordinate position (x L , y L , z L )), etc. is expressed as the position of the obstacle P in the robot coordinate system ( ⁇ R ) (robot coordinate position (x R , It is necessary to perform a coordinate transformation process to convert into y R , z R )).
  • ( ⁇ ) is used as a symbol indicating a coordinate system.
  • ( ⁇ A ) means the coordinate system of device A.
  • a coordinate transformation matrix (T) is used in the coordinate transformation process. For example, the coordinate position (x C , y C , z C ) of the camera coordinate system ( ⁇ C ) of a certain point P in space is changed to the coordinate position (x R , y R , z R ) of the robot coordinate system ( ⁇ R ) . )
  • a coordinate transformation matrix R T C is used in the coordinate transformation process to transform the coordinates into ( ).
  • the coordinate position (x L , y L , z L ) of the LiDAR coordinate system ( ⁇ L ) of point P is converted to the coordinate position (x R , y R , z R ) of the robot coordinate system ( ⁇ R ).
  • a coordinate transformation matrix LTC is used for the coordinate transformation processing.
  • B P indicates the position coordinates (x A , y A , z A ) of the point P in the coordinate system A
  • B P indicates the position coordinates (x B , y B , z A ) of the point P in the coordinate system B.
  • B ) means.
  • the process of calculating a unique coordinate transformation matrix corresponding to a combination of a robot and a sensor is performed as a so-called sensor calibration process.
  • the sensor calibration process includes a process for calibrating sensor detection data and various processes executed as adjustment processes. For example, processes such as adjusting the mounting position and angle of the sensor, and adjusting parameters corresponding to the sensor are also part of the calibration process.
  • Non-Patent Document 1 Zhang Zhengyou. A flexible new technique for camera calibration. IEEE Transactions on pattern analysis and machine intelligence 22.11, 2000).
  • the process of calculating a unique coordinate transformation matrix corresponding to the combination of a robot and a sensor is also performed as one of the sensor calibration processes.
  • calculating a coordinate transformation matrix for converting the camera coordinate system to the robot coordinate system perform a calibration success/failure judgment to check whether the calibration was successful, that is, whether the correct coordinate transformation matrix was calculated. Is required.
  • the present disclosure has been made, for example, in view of the above-mentioned problems, and the present disclosure has been made in view of the above-mentioned problems.
  • a first aspect of the present disclosure includes: a calibration execution unit that executes sensor calibration processing; a display information generation unit that generates image data that allows confirmation of whether or not the calibration process in the calibration execution unit is successful;
  • the calibration execution unit includes: As the calibration process, a process of calculating a coordinate transformation matrix for converting a sensor coordinate system corresponding to the sensor to another second coordinate system is executed,
  • the display information generation unit includes:
  • the present invention provides a calibration execution device that generates image data that allows visually confirming whether or not the coordinate transformation matrix calculated by the calibration execution unit is a correct coordinate transformation matrix.
  • a second aspect of the present disclosure includes: A calibration system that includes a mobile device equipped with a sensor and a calibration execution device, The calibration execution device includes: inputting sensor detection information from the mobile device, calculating a coordinate transformation matrix for converting a sensor coordinate system corresponding to the sensor to another second coordinate system, and outputting the calculated coordinate transformation matrix to the mobile device;
  • the mobile device includes: Execute autonomous movement applying the coordinate transformation matrix input from the calibration execution device,
  • the calibration execution device further includes:
  • the calibration system includes a display information generation unit that generates image data that allows checking whether the coordinate transformation matrix has been calculated correctly.
  • a third aspect of the present disclosure includes: A calibration execution method executed by a calibration execution device, The calibration execution unit a calibration execution step of inputting sensor detection information and calculating a coordinate transformation matrix for converting the sensor coordinate system corresponding to the sensor into another second coordinate system;
  • the display information generation section The calibration execution method includes an image data generation step of generating image data that allows visually confirming whether or not the coordinate transformation matrix calculated in the calibration execution step is a correct coordinate transformation matrix.
  • a fourth aspect of the present disclosure includes: A calibration execution method executed in a calibration system having a mobile device equipped with a sensor and a calibration execution device,
  • the calibration execution device includes: A coordinate transformation matrix that inputs sensor detection information from the mobile device, calculates a coordinate transformation matrix that transforms a sensor coordinate system corresponding to the sensor into another second coordinate system, and outputs the calculated coordinate transformation matrix to the mobile device.
  • a generation step The mobile device includes: executing an autonomous movement execution step of executing autonomous movement applying the coordinate transformation matrix input from the calibration execution device;
  • the calibration execution device further includes:
  • the calibration execution method includes, in the coordinate transformation matrix generation step, a display information generation step of generating image data that allows checking whether or not the coordinate transformation matrix has been correctly calculated.
  • a fifth aspect of the present disclosure is: A program that causes a calibration execution device to execute calibration, In the calibration execution section, inputting sensor detection information and executing a calibration process for calculating a coordinate transformation matrix for converting the sensor coordinate system corresponding to the sensor into another second coordinate system; In the display information generation section, The present invention is a program for generating image data that allows visually confirming whether or not the coordinate transformation matrix is a correct coordinate transformation matrix.
  • the program of the present disclosure is, for example, a program that can be provided by a storage medium or a communication medium that is provided in a computer-readable format to an information processing device or computer system that can execute various program codes.
  • a program can be provided by a storage medium or a communication medium that is provided in a computer-readable format to an information processing device or computer system that can execute various program codes.
  • processing according to the program can be realized on an information processing device or computer system.
  • a system is a logical collective configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same housing.
  • a configuration is realized that generates and displays an image that allows visually confirming whether or not the coordinate transformation matrix calculated in sensor calibration is correct.
  • it includes a calibration execution section that executes sensor calibration, and a display information generation section that generates image data that allows confirmation of whether or not the calibration processing in the calibration execution section is successful.
  • the calibration execution unit calculates a coordinate transformation matrix for converting the sensor coordinate system corresponding to the sensor into another second coordinate system, and the display information generation unit determines whether the calculated coordinate transformation matrix is a correct coordinate transformation matrix.
  • Image data that can be visually confirmed for example, image data in which the origin and coordinate axes constituting the sensor coordinate system are superimposed on a three-dimensional image of the sensor, is generated and displayed.
  • This configuration realizes a configuration that generates and displays an image that allows visually confirming whether or not the coordinate transformation matrix calculated in sensor calibration is correct. Note that the effects described in this specification are merely examples and are not limiting, and additional effects may also be provided.
  • FIG. 1 is a diagram illustrating an example configuration of a robot that is an example of a moving device according to the present disclosure.
  • FIG. 2 is a diagram illustrating a coordinate system of a sensor mounted on a robot and a robot coordinate system.
  • FIG. 2 is a diagram illustrating a coordinate transformation matrix that performs coordinate transformation between different coordinate systems.
  • FIG. 2 is a diagram illustrating a coordinate transformation matrix that performs coordinate transformation between different coordinate systems.
  • FIG. 3 is a diagram illustrating an example of individual differences among manufacturing robots.
  • FIG. 7 is a diagram illustrating a problem when processing using a coordinate transformation matrix calculated based on the designed sensor mounting position and orientation is performed when the sensor is installed in a position and orientation different from the designed one.
  • FIG. 1 is a diagram illustrating an example configuration of a calibration system including a calibration execution device according to the present disclosure.
  • FIG. 1 is a diagram illustrating an example configuration of a calibration system including a calibration execution device according to the present disclosure.
  • FIG. 2 is a diagram illustrating a sensor coordinate system, which is a coordinate system of each sensor mounted on a robot, a robot coordinate system, and a scanner coordinate system.
  • FIG. 6 is a diagram illustrating an example of a point cloud ( L P L ) detected by LiDAR when a robot is running in a room with rectangular walls.
  • FIG . 6 is a diagram illustrating a calculation process of a coordinate transformation matrix ( R T Shows part of the point cloud detected by LiDAR ( LPL ) and part of the point cloud detected by 3D scanner ( SPS ) when the robot is running in a room with rectangular walls. It is a diagram.
  • FIG. 6 is a diagram illustrating a specific example of processing executed by a relative position calculation unit.
  • FIG. 3 is a diagram illustrating an example of display data generated by a display information generation unit (visualized data generation unit) and output to a display unit.
  • FIG. 3 is a diagram illustrating an example of display data generated by a display information generation unit (visualized data generation unit) and output to a display unit.
  • FIG. 6 is a diagram illustrating an example of a display image on the display unit when the viewpoint position is changed.
  • FIG. 2 is an explanatory diagram of an example of the configuration of an online calibration system including a calibration execution device according to a second embodiment.
  • FIG. 2 is an explanatory diagram of an example of the configuration of an online calibration system including a calibration execution device according to a second embodiment.
  • FIG. 1 is a diagram illustrating an example of the configuration of an online calibration system including a calibration execution device according to a second embodiment.
  • FIG. 2 is a diagram illustrating a sensor coordinate system, which is a coordinate system of each sensor attached to a robot, a robot coordinate system, a fixed depth camera coordinate system, a chessboard coordinate system, and a map coordinate system.
  • 7 is a diagram illustrating an example of the relationship between a coordinate system and a coordinate transformation matrix used in Example 2.
  • FIG. FIG. 3 is a diagram illustrating a detailed configuration of a calibration execution device according to a second embodiment.
  • FIG. 7 is a diagram illustrating an example of the configuration of an online calibration system including a calibration execution device according to a third embodiment.
  • FIG. 7 is a diagram illustrating an example of the configuration of an online calibration system including a calibration execution device according to a third embodiment.
  • FIG. 7 is a diagram illustrating an example of the configuration of an online calibration system including a calibration execution device according to a third embodiment.
  • FIG. 2 is a diagram illustrating a sensor coordinate system, which is a coordinate system of each sensor attached to robot B, a robot B coordinate system, and a map coordinate system.
  • FIG. 7 is a diagram illustrating an example of the relationship between a coordinate system and a coordinate transformation matrix used in Example 3;
  • FIG. 7 is a diagram illustrating an example of the relationship between a coordinate system and a coordinate transformation matrix used in Example 3;
  • FIG. 7 is a diagram illustrating a detailed configuration and processing of a calibration execution device according to a third embodiment.
  • FIG. 7 is a diagram illustrating a detailed configuration and processing of a calibration execution device according to a third embodiment.
  • FIG. 12 is a diagram illustrating calibration processing in Example 4.
  • FIG. 7 is a diagram illustrating a configuration example of a calibration system including a calibration execution device according to a fourth embodiment.
  • FIG. 7 is a diagram illustrating a detailed configuration and processing of a calibration execution device according to a fourth embodiment.
  • FIG. 3 is a diagram illustrating an example of display data generated by a display information generation unit (visualized data generation unit) and output to a display unit.
  • FIG. 3 is a diagram illustrating an example of display data generated by a display information generation unit (visualized data generation unit) and output to a display unit.
  • FIG. 2 is a diagram illustrating an example of the hardware configuration of a calibration execution device according to the present disclosure.
  • sensors mounted on mobile devices such as robots and self-driving vehicles
  • cameras and LiDAR Light Detection and Ranging
  • LiDAR Light Detection and Ranging
  • each of these multiple sensors individually measures the surrounding environment, for example, the distance and direction to an obstacle.
  • the position and direction of obstacles are measured using each sensor's unique coordinate system.
  • the camera uses, for example, a camera coordinate system with the camera lens position as the origin
  • LiDAR uses, for example, the LiDAR coordinate system with the laser light output position within the LiDAR as the origin, to determine the coordinate position of the obstacle.
  • the robot itself has its own robot coordinate system.
  • the robot coordinate system for example, a coordinate system having an origin at the center position of the robot or the like is used.
  • a coordinate system may be used in which the origin is a certain point on the robot ground plane, for example, the intersection of a perpendicular from the robot center position and the robot ground plane. In order for the robot to travel safely, it is necessary to accurately calculate the position information of obstacles in this robot coordinate system.
  • FIG. 1 shows an example of a robot 10 that is an example of a moving device according to the present disclosure.
  • the robot 10 shown in FIG. 1 is a robot that analyzes the surrounding environment based on sensor detection information and moves autonomously.
  • the robot 10 is equipped with a plurality of different sensors 11 to 14. That is, a camera 11, a depth camera 12, a LiDAR 13, an IMU 14, and these sensors are installed.
  • the depth camera 12 is a camera that detects object distance, such as a stereo camera, for example.
  • LiDAR 13 is a sensor that measures the distance to an obstacle using laser light.
  • the IMU is an inertial measurement unit, and is a sensor that detects acceleration, angular velocity, etc. of the robot 10.
  • Each of these sensors 11 to 14 calculates sensor detection values based on the sensor's own coordinate system, such as the coordinate position of an obstacle, based on the sensor's own coordinate system.
  • FIG. 2 shows an example of a coordinate system corresponding to each of the sensors 11 to 14 and a robot coordinate system.
  • FIG. 2 shows the following coordinate systems.
  • R Robot coordinate system
  • ⁇ R Camera coordinate system
  • ⁇ C Camera coordinate system
  • D Depth camera coordinate system
  • L LiDAR coordinate system
  • I IMU coordinate system
  • ( ⁇ ) is used as a symbol indicating a coordinate system.
  • ( ⁇ A ) means the coordinate system of device A.
  • the robot coordinate system ( ⁇ R ) has its origin at the intersection of a perpendicular line from the center position of the robot 10 and the robot ground plane, the X axis is in front of the robot 10, the Y axis is in the left side direction, and the upward direction is the This is a coordinate system with the Z axis.
  • the camera coordinate system ( ⁇ C ) is, for example, a coordinate system with the lens position of the camera 11 as the origin, the front optical axis direction of the camera 11 as the Z axis, the lower surface direction as the Y axis, and the right direction as the X axis. be.
  • the depth camera coordinate system ( ⁇ D ) has, for example, the center of gravity of the depth camera 12 as its origin, the front optical axis direction of the depth camera 12 as the Z axis, the lower surface direction as the Y axis, and the right direction as the X axis. It is a coordinate system.
  • the LiDAR coordinate system ( ⁇ L ) is a coordinate system having, for example, the center of gravity of the LiDAR 13 as its origin, the front of the LiDAR 10 as the X axis, the left side direction as the Y axis, and the upward direction as the Z axis.
  • the IMU coordinate system ( ⁇ I ) is a coordinate system whose origin is, for example, the center of gravity of the IMU 14, the X axis is in front of the IMU 10, the Y axis is in the left side direction, and the Z axis is in the upper direction.
  • the robot coordinate system of the robot 10 and the coordinate system of each sensor are different.
  • the sensor such as the depth camera 12 uses the coordinates of the obstacle in the depth camera coordinate system ( ⁇ D ) as the position of the obstacle. The position will be calculated.
  • the robot 10 calculates the coordinate position of the obstacle in the robot coordinate system ( ⁇ R ) based on the coordinate position of the obstacle in the depth camera coordinate system ( ⁇ D ), and calculates the distance from the robot 10 to the obstacle. It performs control such as acquiring the direction and selecting a driving route that avoids contact with obstacles.
  • a coordinate transformation matrix (T) is used in the coordinate transformation process.
  • the coordinate position (x D , y D , z D ) of the depth camera coordinate system ( ⁇ D ) of a certain point P in space is changed to the coordinate position (x R , y R , z ) of the robot coordinate system ( ⁇ R ) .
  • a coordinate transformation matrix ( R T D ) is used in the coordinate transformation process to transform the image into R ).
  • the coordinate position (x L , y L , z L ) of the LiDAR coordinate system ( ⁇ L ) of point P is converted to the coordinate position (x R , y R , z R ) of the robot coordinate system ( ⁇ R ).
  • a coordinate transformation matrix ( LTC ) is used for the coordinate transformation process.
  • B P indicates the position coordinates (x A , y A , z A ) of the point P in the coordinate system A
  • B P indicates the position coordinates (x B , y B , z A ) of the point P in the coordinate system B.
  • B ) means.
  • the T in the upper right represents transposition.
  • the coordinate transformation matrix is a homogeneous transformation matrix with 4 rows and 4 columns. Therefore, when performing coordinate transformation on the position coordinates of point P, the product is calculated in the form of homogeneous coordinates, which is a four-dimensional column vector with 1 added as the fourth element.
  • the coordinate transformation matrix A T B which is a homogeneous transformation matrix in a three-dimensional space, is a 4-by-4 homogeneous transformation matrix shown in (Equation 1) below.
  • the upper left 3 rows and 3 columns are rotation matrices representing angles
  • the upper right 3 rows and 1 column are translation matrices
  • the bottom row is (0, 0, 0, 1).
  • the rotation matrix with 3 rows and 3 columns is a three-dimensional column vector in which each column from the left represents the direction of the x-axis, y-axis, and z-axis, and is a unit vector with a length of 1. Coordinate transformations can be executed one after another by multiplying these homogeneous transformation matrices.
  • the upper left subscript (A) of the coordinate transformation matrix A T B is the reference coordinate system corresponding to the coordinate system after the transformation, and the lower right subscript (B) is the coordinate system to be transformed.
  • a coordinate transformation matrix that performs coordinate transformation between different coordinate systems will be described with reference to FIGS. 3 and 4.
  • FIG. 3 shows the robot 10 equipped with the LiDAR 13.
  • the robot 10 has a robot coordinate system ( ⁇ R ) unique to the robot, and the LiDAR 13 has a LiDAR coordinate system ( ⁇ L ) unique to LiDAR.
  • the right side of FIG. 3 shows both the robot coordinate system ( ⁇ R ) and the LiDAR coordinate system ( ⁇ L ).
  • the robot coordinate system ( ⁇ R ) is, for example, a coordinate system indicated by a solid line whose origin (OR) is the intersection of a perpendicular from the center position of the robot 10 and the ground plane of the robot in contact with the robot.
  • the LiDAR coordinate system ( ⁇ L ) is a coordinate system indicated by a dotted line with the center of gravity of the LiDAR 13 as the origin (OL).
  • the robot coordinate system ( ⁇ R ) shown by the solid line and the LiDAR coordinate system ( ⁇ L ) shown by the dotted line are different systems with different origins. It becomes a coordinate system.
  • Position coordinates ( LP ) of point P on LiDAR coordinate system ( ⁇ L ) ( zL , yL , zL )
  • Position coordinates ( R P) of point P on the robot coordinate system ( ⁇ R ) (z R , y R , z R )
  • the robot 10 calculates the coordinate position of the obstacle in the robot coordinate system ( ⁇ R ) from the coordinate position of the obstacle on the LiDAR coordinate system ( ⁇ L ), and moves from the robot 10 to the obstacle. It is possible to control the vehicle by acquiring the distance and direction of the vehicle and selecting a travel route that does not come into contact with obstacles.
  • the coordinate transformation matrix can be determined based on design information such as the mounting position and angle of each sensor for the robot.
  • design information such as the mounting position and angle of each sensor for the robot.
  • a process of calculating a coordinate transformation matrix unique to the combination of a robot and a sensor is executed as a sensor calibration process.
  • FIG. 5 is a diagram illustrating an example of individual differences among manufacturing robots.
  • FIG. 5(1) is a diagram showing an example of a designed mounting position and posture (tilt) of LiDAR on a robot. In terms of design, it is assumed that the LiDAR 13 is mounted vertically at the center of the upper surface of the robot 10.
  • FIG. 5(2) shows an example of the LiDAR mounting position and posture (tilt) of an actually manufactured robot.
  • the LiDAR mounting position is slightly shifted to the rear left from the center of the upper surface of the robot, and is mounted at an angle.
  • the difference between the designed and actual configurations is emphasized.
  • the LiDAR mounting positions are also different, and the inclinations are also various.
  • FIG. 6 shows the following figures.
  • LiDAR coordinate system ( ⁇ L1 ) corresponding to the designed LiDAR mounting position and posture
  • LiDAR coordinate system ( ⁇ L2 ) corresponding to the LiDAR mounting position and posture of the manufactured robot
  • ⁇ L1 LiDAR coordinate system
  • ⁇ L2 LiDAR coordinate system
  • the robot shown in FIG. 6(1) has the designed robot configuration shown in FIG. 5(1), and LiDAR is mounted vertically at the center position on the top surface of the robot.
  • robot a shown in FIG. 6(2) corresponds to robot a shown in FIG. 5.
  • the LiDAR mounting position is slightly shifted to the rear left from the center of the top surface of the robot, and is mounted at an angle.
  • LiDER in FIGS. 6(1) and 6(2) each show a LiDAR coordinate system.
  • the designed LiDAR coordinate system ( ⁇ L1 ) shown in (1) has three axes (xyz axes) corresponding to the posture (tilt) of the LiDAR, with the designed center of gravity of the LiDAR as the origin (OL1), that is, as shown in the figure. It is a coordinate system having XL1 axis, YL1 axis, and ZL1 axis.
  • the LiDAR coordinate system ( ⁇ L2 ) of the robot a shown in (2) has the center of gravity of the LiDAR of the robot a as the origin (OL2), and has three axes (x, y, and z axes) according to the posture (tilt) of the LiDAR, that is, the This is a coordinate system having two XL axes, two YL axes, and two ZL axes as shown in FIG.
  • the origin position is different between the designed LiDAR mounting position and posture-compatible LiDAR coordinate system ( ⁇ L1 shown in (1) and the LiDAR mounting position and posture-compatible LiDAR coordinate system ( ⁇ L2 ) of robot a shown in (2). , and the directions of each coordinate axis are also different.
  • FIG. 6(3) is a diagram showing two coordinate systems together in a three-dimensional space in which the origins (OR) of the robot coordinate systems are aligned.
  • the designed LiDAR coordinate system ( ⁇ L1 ) and the LiDAR coordinate system ( ⁇ L2 ) of robot a differ in the origin position and also in the direction of each coordinate axis.
  • FIG. 7 also shows the robot coordinate system ( ⁇ R ) of robot 10.
  • the robot coordinate system is a coordinate system whose origin (OR) is, for example, a certain point on the robot ground plane, such as the intersection of a perpendicular from the robot center position and the robot ground plane.
  • Robot coordinate system ( ⁇ R ) shown by a solid line A designed LiDAR coordinate system ( ⁇ L1 ) corresponding to the designed position and orientation of LiDAR, LiDAR coordinate system ( ⁇ L2 ) corresponding to the LiDAR position and orientation of robot a,
  • the three-dimensional position coordinates (x, y, z) in these three coordinate systems are as follows, as shown in the figure.
  • the above relational expression holds true.
  • the calibration process shown in FIG. 8(2) ie, the calibration process for calculating a unique coordinate transformation matrix for each sensor mounted on the robot, is required for each robot.
  • the calibration execution device of the present disclosure thus executes a calibration process that calculates a coordinate transformation matrix unique to the combination of a robot and a sensor mounted on the robot, and further calculates the coordinate transformation matrix calculated as a result of the calibration. It has a configuration that makes it possible to visually confirm whether or not the calculation is correct.
  • the configuration of the apparatus of the present disclosure and a plurality of embodiments for executing processing will be sequentially described.
  • Example 1 Regarding the configuration and processing of the calibration execution device
  • the configuration and processing of the calibration execution device according to Example 1 of the present disclosure will be described below.
  • FIG. 9 is a diagram illustrating an example configuration of a calibration system 50 including the calibration execution device 30 of the present disclosure.
  • a calibration system 50 shown in FIG. 9 is a system that includes a robot 10, a 3D scanner 20, and a calibration execution device 30.
  • the robot 10 is an autonomous mobile robot and is equipped with a plurality of sensors.
  • the robot 10 is an example of a moving device according to the present disclosure, and the moving device according to the present disclosure includes various types of moving objects such as self-driving vehicles in addition to robots.
  • the 3D scanner 20 measures the three-dimensional shape of surrounding objects.
  • the 3D scanner 20 has a built-in color camera and can acquire color information in addition to the three-dimensional shape.
  • the 3D scanner 20 performs a scanning process that irradiates a laser beam over 360 degrees of the surrounding area and inputs the reflected light, measures distances to surrounding objects, and obtains a three-dimensional shape of the surrounding environment.
  • the robot 10 is similar to the robot 10 described above with reference to FIG. 1, and is a robot that analyzes the surrounding environment based on sensor detection information and moves autonomously. As shown in FIG. 9, the robot 10 is equipped with a plurality of different sensors 11-14. That is, a camera 11, a depth camera 12, a LiDAR 13, an IMU 14, and these sensors are installed.
  • the depth camera 12 is a camera that detects object distance, such as a stereo camera.
  • the LiDAR 13 is a sensor that measures the distance to an obstacle using laser light, as described above.
  • the IMU is an inertial measurement unit, and is a sensor that detects acceleration, angular velocity, etc. of the robot 10.
  • the robot 10 shown in FIG. 9 is equipped with a camera 11, a depth camera 12, a LiDAR 13, and an IMU 14 as a plurality of different types of sensors.
  • the configuration is not limited to this, and configurations in which various other types of sensors are installed may be used.
  • the processing of the present disclosure is applicable not only to a configuration in which multiple types of sensors are installed, but also to a configuration in which a single sensor is installed.
  • the sensors 11 to 14 attached to the robot 10 shown in FIG. calculate.
  • the calibration execution device 30 can be configured by, for example, a data processing device such as a PC.
  • the calibration execution device 30 has a configuration capable of communicating with the robot 10 and the 3D scanner 20.
  • the calibration execution device 30 inputs sensor detection information of each of the sensors 11 to 14 mounted on the robot 10, and further inputs scanner detection information from the 3D scanner 20.
  • the calibration execution device 30 executes a calibration process for each of the sensors 11 to 14 mounted on the robot 10 based on this input information. Specifically, a process of calculating a coordinate transformation matrix corresponding to the sensor is executed.
  • the sensor-compatible coordinate transformation matrix is a coordinate transformation matrix that transforms position coordinates on a sensor-specific coordinate system to position coordinates on a robot coordinate system.
  • the calibration execution device 30 further displays display data, which is visualization data for checking the calibration results, which makes it possible to visually check whether the coordinate transformation matrix calculated as the calibration result has been calculated correctly. Generate and output to the display unit.
  • the visualization data for checking the calibration results is image data that allows checking whether the coordinate transformation matrix corresponding to the sensor has been calculated correctly. A specific example of this image data will be described later.
  • the calibration execution device 30 inputs detection information of each sensor from the robot 10, and further inputs scanner detection information (surrounding three-dimensional shape information) from the 3D scanner 20.
  • the calibration execution device 30 uses this input information to execute a calibration process that calculates a coordinate transformation matrix corresponding to each sensor of the robot 10.
  • the coordinate transformation matrix corresponding to each sensor calculated as a result of the calibration process executed by the calibration execution device 30 is transmitted to the robot 10 and stored in the storage unit within the robot 10.
  • the robot 10 converts the position coordinates on the coordinate system unique to each sensor to the position coordinates on the robot coordinate system using the coordinate transformation matrix corresponding to the sensor stored in the storage unit. Based on the subsequent position coordinates on the robot coordinate system, the relative positions of surrounding obstacles with respect to the robot 10 are analyzed, and autonomous movement is performed by selecting a running route that avoids collisions or contact with obstacles.
  • the calibration system 50 shown in FIG. 9 is an example of a system in which the robot 10 and the calibration execution device 30 are configured as separate devices, for example, as shown in FIG. A configuration such as a calibration system 50b that integrates the device 30 may be used.
  • the calibration execution device 30 within the robot 10 executes a calibration process that calculates a coordinate transformation matrix corresponding to each sensor mounted on the robot 10.
  • the scanner coordinate system which is the coordinate system of the 3D scanner 20, will be described.
  • FIG. 11 shows the following coordinate systems.
  • R Robot coordinate system
  • ⁇ R C
  • C Camera coordinate system
  • ⁇ C Depth camera coordinate system
  • ⁇ D L
  • ⁇ L LiDAR coordinate system
  • I IMU coordinate system
  • ⁇ I IMU coordinate system
  • S Scanner coordinate system
  • the robot coordinate system ( ⁇ R ) has its origin at the intersection of a perpendicular line from the center position of the robot 10 and the robot ground plane, the X axis is in front of the robot 10, the Y axis is in the left side direction, and the upward direction is the This is a coordinate system with the Z axis.
  • the camera coordinate system ( ⁇ C ) is, for example, a coordinate system with the lens position of the camera 11 as the origin, the front optical axis direction of the camera 11 as the Z axis, the lower surface direction as the Y axis, and the right direction as the X axis. be.
  • the depth camera coordinate system ( ⁇ D ) has, for example, the center of gravity of the depth camera 12 as its origin, the front optical axis direction of the depth camera 12 as the Z axis, the lower surface direction as the Y axis, and the right direction as the X axis. It is a coordinate system.
  • the LiDAR coordinate system ( ⁇ L ) is a coordinate system having, for example, the center of gravity of the LiDAR 13 as its origin, the front of the LiDAR 10 as the X axis, the left side direction as the Y axis, and the upward direction as the Z axis.
  • the IMU coordinate system ( ⁇ I ) is a coordinate system whose origin is, for example, the center of gravity of the IMU 14, the X axis is in front of the IMU 10, the Y axis is in the left side direction, and the Z axis is in the upper direction.
  • the scanner coordinate system ( ⁇ S ) is a coordinate system in which the center of gravity of the 3D scanner 20 is the origin, the orthogonal axes of the horizontal plane are the XY axes, and the axis extending vertically upward is the Z axis.
  • the robot coordinate system of the robot 10 As shown in FIG. 11, the robot coordinate system of the robot 10, the coordinate systems of the sensors 11 to 14, and the coordinate systems of the 3D scanner 20 are different from each other.
  • each sensor of the robot 10 obtains the coordinate position of an obstacle using a coordinate system specific to each sensor.
  • the depth camera 12 calculates the coordinate position of the obstacle in the depth camera coordinate system ( ⁇ D ) as the position of the obstacle.
  • the robot 10 calculates the coordinate position of the obstacle on the robot coordinate system ( ⁇ R ) based on the coordinate position of the obstacle in the depth camera coordinate system ( ⁇ D ), and calculates the distance from the robot 10 to the obstacle.
  • the vehicle performs control such as acquiring the direction and direction and selecting a route that avoids contact with obstacles.
  • the position of the obstacle P in the depth camera coordinate system ( ⁇ D ) calculated using the captured image of the depth camera 12 (depth camera coordinate position (x D , y D , z D )), or the position calculated by LiDAR 13 Regarding the position of the obstacle P in the LiDAR coordinate system ( ⁇ L ) (LiDAR coordinate position (x L , y L , z L )), the position of the obstacle P in the robot coordinate system ( ⁇ R ) (robot coordinate position ( R , y R , z R )).
  • the coordinate transformation matrix (T) is used in the coordinate transformation process.
  • the coordinate position (x D , y D , z D ) of the depth camera coordinate system ( ⁇ D ) of a certain point P in space is changed to the coordinate position (x R , y R , z ) of the robot coordinate system ( ⁇ R ) .
  • a coordinate transformation matrix R T D is used in the coordinate transformation processing to transform the coordinates into R ).
  • the coordinate position (x L , y L , z L ) of the LiDAR coordinate system ( ⁇ L ) of point P is converted to the coordinate position (x R , y R , z R ) of the robot coordinate system ( ⁇ R ).
  • a coordinate transformation matrix ( RTL ) is used for the coordinate transformation processing.
  • ( AP ) indicates the position coordinates ( xA , yA , zA ) of point P in coordinate system A
  • ( BP ) indicates the position coordinates (xB, zA) of point P in coordinate system B.
  • y B , z B ).
  • the calibration execution device 30 shown in FIGS. 9 and 10 executes the process of calculating a coordinate transformation matrix specific to the combination of the robot and the sensor as a sensor calibration process.
  • FIG. 12 shows a detailed configuration of the calibration execution device 30 and data input by the calibration execution device 30 from the robot 10 and the 3D scanner 20.
  • the calibration execution device 30 includes a calibration execution unit 31, a relative position calculation unit 32, an external coordinate system compatible coordinate transformation matrix calculation unit 33, a display information generation unit (visualization data generation unit) 34, an input It has a section 35 and a display section 36.
  • FIG. 12 shows a camera 11, a depth camera 12, a LiDAR 13, and an IMU 14 as the sensors 11 to 14 mounted on the robot 10.
  • the types of sensors mounted on the robot 10 are not limited to these, and a configuration in which various other types of sensors are mounted may be used.
  • the processing of the present disclosure is applicable not only to a configuration in which multiple types of sensors are installed, but also to a configuration in which a single sensor is installed.
  • the calibration execution unit 31 of the calibration execution device 30 calculates a coordinate transformation matrix for each of the sensors 11 to 14 mounted on the robot 10. That is, the calibration execution unit 31 inputs sensor detection information etc. from each sensor 11 to 14 of the robot 10 and executes a process of calculating a coordinate transformation matrix corresponding to each sensor.
  • the calibration execution device 30 receives the following information from each sensor 11 to 14 of the robot 10. From the camera 11, a captured image of the camera 11 and internal parameters of the camera 11 From the depth camera 12, a distance image (depth image) that is a captured image of the depth camera 12, and internal parameters of the depth camera 12 From the LiDAR 13, a detected value of LiDAR Point cloud ( L P L ) information from the IMU 14, angular velocity, acceleration, etc. of the robot 10, which are IMU detection information.
  • the calibration execution device 30 inputs the above information from each sensor 11 to 14 of the robot 10.
  • the point cloud ( LPL ) information which is the LiDAR detection value inputted from the LiDAR 13 , is point cloud information indicating the object position in the three-dimensional space around the LiDAR 13.
  • ( LPL ) indicates point cloud data on the LiDAR coordinate system.
  • the subscript (L) on the upper left of ( L P L ) means the coordinate system, and (P L ) means the three-dimensional point group of LiDAR.
  • the point cloud ( L P L ) detected by the LiDAR 13 indicates the object position in the three-dimensional space around the LiDAR 13.
  • the point group becomes a point group indicating the positions of the walls in four directions, as shown in FIG.
  • the LiDAR 13 is a type of LiDAR that scans a single laser beam in the horizontal direction, and can obtain a point group that looks like a wall surface sliced horizontally by the laser beam.
  • the shape of this sliced cross section depends on the height and orientation of the LiDAR 13 installed.
  • the calibration execution unit 31 inputs sensor detection information etc. from each sensor 11 to 14 of the robot 10 and executes the following process of calculating a coordinate transformation matrix corresponding to each sensor.
  • a coordinate matrix for converting the sensor coordinate system of each sensor 11 to 14 mounted on the robot 10 into the robot coordinate system ( ⁇ R ) will be indicated as ( R T X ).
  • X means identifiers of various sensors.
  • the calibration execution unit 31 of the calibration execution device 30 calculates the coordinate transformation matrix ( R T X ) of each of the sensors 11 to 14 mounted on the robot 10.
  • the process of calculating the coordinate transformation matrix is performed using a known calibration technique. Specifically, it can be calculated by applying, for example, the structure described in the following non-patent literature.
  • Non-patent document 2 (Dhallet al. Ankit,. LiDAR-camera calibration using 3D-3D point correspondences. arXiv preprint arXiv:1705.09785, 2017.)
  • Non-patent document 3 (Banerjeeet al. Koyel,. Online camera lidar fusion and object detection on hybrid data for autonomous driving. 2018 IEEE Intelligent Vehicles Symposium (IV). IEEE, 2018.)
  • Non-patent document 4 (PusztaiIvn Eichhardt, and Levente Hajder.Zoltn,. Accurate calibration of multi-lidar-multi-camera systems. Proceedings of the IEEE International Conference on Computer Vision Workshops., 2017.)
  • Non-patent document 5 (Irene FassiLegnaniGiovanni.
  • the calibration execution unit 31 inputs each sensor detection information etc. from each sensor 11 to 14 of the robot 10 and creates a coordinate transformation matrix ( R T X ) that converts the coordinate system of each sensor into the robot coordinate system. Execute the calculation process. Note that, as explained earlier using (Formula 1), the coordinate transformation matrix R T It is shown as a four-column homogeneous transformation matrix.
  • the upper left 3 rows and 3 columns represent the rotation matrix
  • the upper right 3 rows and 1 column represent the translation.
  • the matrix elements of the coordinate transformation matrix ( R T (a) (R 00 , R 10 , R 20 ) is the X-axis direction of the sensor coordinate system ( ⁇ (b) (R 01 , R 11 , R 21 ) is the Y-axis direction of the sensor coordinate system ( ⁇ (c) (R 02 , R 12 , R 22 ) is the Z-axis direction of the sensor coordinate system ( ⁇ (d) (t 0 , t 1 , t 2 ) are the origin position coordinates of the sensor coordinate system ( ⁇ Note that each direction of the coordinate axes (X-axis, Y-axis, Z-axis) shown in (a) to (d) above and the origin position are directions in the robot coordinate system ( ⁇ R ), which is the coordinate system after coordinate transformation, and the coordinate position.
  • the relative position calculation unit 32 executes alignment processing between the scanner coordinate system ( ⁇ S ) of the 3D scanner 20 and the robot coordinate system ( ⁇ R ) of the robot 10 .
  • the relative position calculation unit 32 inputs a colored point cloud ( SPS ) from the 3D scanner 20, inputs a point cloud ( LPL ) from the LiDAR 13 of the robot 10, and uses these input point cloud information to calculate , executes alignment processing between the scanner coordinate system ( ⁇ S ) and the robot coordinate system ( ⁇ R ).
  • SPS colored point cloud
  • LPL point cloud
  • FIG. 15 shows a part of the point cloud ( L P L ) detected by the LiDAR 13 when the robot 10 is running in a room with rectangular walls, and a portion of the point cloud (L P L ) detected by the 3D scanner 20. It is a figure showing a part of point group ( SPS ) to detect.
  • the LiDAR 13 is a type of LiDAR that scans a single laser beam in the horizontal direction, and can obtain a point group that looks like the laser beam slices a wall surface horizontally.
  • the shape of this sliced cross section depends on the height and orientation of the LiDAR 13 installed.
  • the point cloud input from the 3D scanner 20 is a point cloud representing the surface of the object, which is 360 degrees horizontally and in a vertical direction from below to vertically above, excluding the area directly below the 3D scanner 20. .
  • ( s p si ) indicates one point that constitutes the point group ( S P S ).
  • ( S x Si , S y Si , S z Si ) is the coordinate position of the point ( s psi ) .
  • point group coordinate conversion processing for converting a point group on a certain coordinate system to a point group on a different coordinate system can be executed by applying a point group coordinate conversion formula.
  • a point cloud that converts a depth camera detection point group ( S P S ) indicated by a depth camera coordinate system ( ⁇ D ) into a scanner coordinate system point group ( S P S ) indicated by a 3D scanner coordinate system ( ⁇ S ).
  • the coordinate transformation formula ( S P D ) is shown as (Equation 3) below. Calculations are performed using four-dimensional homogeneous coordinates.
  • the relative position calculation unit 32 first aligns the point cloud of the LiDAR 13 and the point cloud of the 3D scanner 20.
  • the relative position calculation unit 32 first detects the floor surface (robot ground surface) from the point group of the 3D scanner 20 and calculates the height (H S ) of the 3D scanner 20 from the floor.
  • the point cloud ( SPS ) input from the 3D scanner 20 includes a point cloud on the floor surface (robot ground surface).
  • the floor surface (robot ground surface) has a large area and is located below the 3D scanner 20, and the normal line of the surface is almost parallel to the z-axis direction of the coordinate system of the 3D scanner 20, so it is easy to touch the floor surface (robot ground surface). can be detected.
  • the relative position calculation unit 32 calculates the height (H L ) from the floor surface (robot ground surface) to the LiDAR 13. This height is a value located in the 3rd row and 4th column of the 4th row and 4th column of the coordinate transformation matrix ( R T L ) of the LiDAR 13 obtained by the calibration execution unit 31.
  • (t 0 , t 1 , t 2 ) indicates the origin position coordinates of the sensor coordinate system ( ⁇
  • This value corresponds to the difference in height (Z direction) from the origin of the lidar coordinate system ( ⁇ L ). That is, the value corresponds to the height (H L ) from the floor (robot ground plane) to the LiDAR 13.
  • the relative position calculating unit 32 utilizes the calculated height (H L ) of the LiDAR 13, that is, the height (H L ) from the floor surface (robot ground surface) to the LiDAR 13, as shown in FIG.
  • a part of the point cloud is extracted from the spherical point cloud ( SPS ) input from the 3D scanner 20.
  • the point group located at the height (H SL ) (H S ) ⁇ (H L ) of the origin position of the LiDAR coordinate system ( ⁇ L ) from the origin of the scanner coordinate system ( ⁇ S ) of the 3D scanner 20 Extract ( SP HSL ).
  • the relative position calculation unit 32 calculates the difference between a part of the point cloud ( S P HSL ) extracted from the spherical point cloud ( S P S ) input from the 3D scanner 20 and the point cloud of the LiDAR 13. Perform alignment.
  • the positioning process of the point cloud can be executed using a known existing process such as ICP (Iterative Closest Point).
  • ICP Intelligent Closest Point
  • the relative position calculation unit 32 aligns the point cloud of the LiDAR 13 based on a part of the point cloud ( SP HSL ) extracted by slicing from the point cloud ( SPS ) input from the 3D scanner 20.
  • a coordinate transformation matrix ( S T L ) necessary for the calculation is calculated according to the following (Equation 4).
  • the coordinate transformation matrix ( S T L ) shown in the above (Equation 4) transforms a point group on the LiDAR coordinate system ( ⁇ L ) of the LiDAR 13 to a point group on the scanner coordinate system ( ⁇ S ) of the 3D scanner 20. This is the conversion formula for
  • Equation 4 is based on a part of the point cloud ( S P HSL ) sliced and extracted from the point cloud ( S P S ) input from the 3D scanner 20 and points on the LiDAR coordinate system ( ⁇ L ).
  • the problem is to find a coordinate transformation matrix ( T ) that minimizes the positional error with respect to the group ( LPL ).
  • the coordinate transformation matrix ( S T L ) calculated by the above (Equation 4) can be obtained by repeated convergence calculations of ICP.
  • This coordinate transformation matrix ( S T L ) is a coordinate transformation matrix that transforms the LiDAR coordinate system ( ⁇ L ) of the LiDAR 13 into the scanner coordinate system ( ⁇ S ) of the 3D scanner 20.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 receives the following coordinate transformation matrix as input from the calibration execution unit 31.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 further receives the following coordinate transformation matrix from the relative position calculation unit 32.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 inputs these plural coordinate transformation matrices and transforms the coordinate system ( ⁇ X ) of each sensor 11 to 14 of the robot 10 into the scanner coordinate system ( ⁇ S ).
  • a coordinate transformation matrix ( STX ) is calculated.
  • a coordinate transformation matrix (S T C ) for converting the camera coordinate system ( ⁇ C ) corresponding to the camera 11 into the scanner coordinate system ( ⁇ S ) can be calculated according to the following (Equation 5a).
  • Equation 5a The coordinate transformation matrix shown on the right side of the above (Equation 5a) can all be calculated based on the input value or input value from the relative position calculation unit 32 or the calibration execution unit 31.
  • the coordinate transformation matrix ( S T L ) is a coordinate transformation matrix ( S T L ) that transforms the LiDAR coordinate system ( ⁇ L ) of the LiDAR 13 into the scanner coordinate system ( ⁇ S ) of the 3D scanner 20, and the relative position It is input from the calculation unit 32.
  • ( R T L ) ⁇ 1 is the inverse matrix of the coordinate transformation matrix ( R T L ), and the coordinate transformation matrix ( R T L ) input from the calibration execution unit 31, that is, the LiDAR coordinate system of the LiDAR 13 ( It can be calculated from a LiDAR compatible coordinate transformation matrix ( R T L ) that transforms ⁇ L ) into the robot coordinate system ( ⁇ R ).
  • the coordinate transformation matrix ( R T C ) is a camera-compatible coordinate transformation matrix ( R T C ) that transforms the camera coordinate system ( ⁇ C ) of the camera 11 into the robot coordinate system ( ⁇ R ) , and is It is input from 31.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 uses the input value from the relative position calculation unit 32 or the calibration execution unit 31, or a matrix that can be calculated based on the input value, to convert the camera coordinate system.
  • a coordinate transformation matrix (S T C ) that transforms ( ⁇ C ) into the scanner coordinate system ( ⁇ S ) is calculated.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 executes similar processing for each sensor mounted on the robot 10.
  • a coordinate transformation matrix (S T D ) that transforms the depth camera coordinate system ( ⁇ D ) corresponding to the depth camera 12 into the scanner coordinate system ( ⁇ S ) is calculated according to the following (Equation 5b).
  • Equation 5b The coordinate transformation matrix shown on the right side of the above (Equation 5b) can all be calculated based on the input value or input value from the relative position calculation unit 32 or the calibration execution unit 31.
  • the coordinate transformation matrix ( S T L ) for converting the LiDAR coordinate system ( ⁇ L ) compatible with LiDAR 13 into the scanner coordinate system ( ⁇ S ) is input from the relative position calculation unit 32, and is a coordinate transformation matrix compatible with the external coordinate system. No new calculation processing by the calculation unit 33 is required.
  • a coordinate transformation matrix (S T I ) that transforms the IMU coordinate system ( ⁇ I ) compatible with the IMU 14 into the scanner coordinate system ( ⁇ S ) is calculated according to the following (Equation 5c).
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 calculates a coordinate transformation matrix (S T X ) that transforms the coordinate system ( ⁇ ) is calculated.
  • the coordinate transformation matrix ( S T X ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33 , that is, the coordinate system ( ⁇
  • the coordinate transformation matrix ( S T X ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33 , that is, the coordinate system ( ⁇ ).
  • the coordinate transformation matrix ( S T X ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33 is the following coordinate transformation matrix ( S T X ).
  • the display information generation unit (visualized data generation unit) 34 calculates the coordinates of each sensor 11 to 14 of the robot 10 based on these coordinate transformation matrices ( S T X ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33.
  • the output signal is output to the section 36.
  • the input unit 35 is configured with a mouse, a keyboard, etc., and inputs viewpoint information of a three-dimensional image drawn on the display unit 36 by the display information generation unit (visualization) data generation unit 34.
  • the display information generation unit (visualized data generation unit) 34 determines a viewpoint direction based on the viewpoint information input from the input unit 35, and displays three-dimensional image data of the robot 10 observed from the determined viewpoint direction on the display unit. Output to 36.
  • the three-dimensional image data of the robot 10 generated by the display information generating section (visualized data generating section) 34 and output to the display section 36 is a three-dimensional image shown on the scanner coordinate system ( ⁇ S ), and the three-dimensional image data of the robot 10 is This is an image in which the coordinate axes (X-axis, Y-axis, Z-axis) constituting the coordinate system ( ⁇ X ) of each sensor 11 to 14 of the robot 10 are superimposed on the original image.
  • FIG. 17 shows an example of display data generated by the display information generation unit (visualized data generation unit) 34 and output to the display unit 36.
  • a three-dimensional image of the robot 10 as shown in FIG. 17 is displayed on the display unit 36 of the calibration execution device 30.
  • the three-dimensional image of the robot 10 is composed of, for example, a group of points indicating a three-dimensional image of an object such as the robot 10.
  • the point cloud is a point cloud formed by information detected by the 3D scanner 20.
  • the display data is generated using known computer graphics techniques, such as the configuration described in Non-Patent Document 7 (KamRyeol, et al. Hyeong. Rviz: a toolkit for real domain data visualization. Telecommunication Systems 60.2, 2015.). Can be generated.
  • the coordinate axes ( X -axis, Y-axis, Z-axis) that make up the coordinate system ( ⁇ It is.
  • the three-dimensional image on the scanner coordinate system ( ⁇ S ) of the robot 10 is a three-dimensional image generated by scanning processing (scanning processing) by the 3D scanner 20.
  • This three-dimensional image of the robot 10 also includes three-dimensional images of each sensor mounted on the robot 10, that is, the camera 11, the depth camera 12, the LiDAR 13, and the IMU 14.
  • the user inputs the IMU mounting position measured in advance to the calibration execution device 30, and the display information generation unit 34 generates a three-dimensional image of the IMU 14 based on the input information. Generate and output.
  • the three-dimensional image of the robot 10 displayed on the display unit 36 includes sensor-compatible coordinate systems ( ⁇ The coordinate axes (X-axis, Y-axis, Z-axis) that make up the image ( X ) are also displayed.
  • each axis may be displayed in a different color. It will be done. For example, the X-axis may be displayed in red, the Y-axis in green, and the Z-axis in blue.
  • the display information generation unit 34 calculates the coordinate axes (X-axis, Y-axis, Z-axis) constituting these sensor-compatible coordinate systems ( ⁇ Obtained from the coordinate transformation matrix ( STX ).
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 calculates the following coordinate transformation matrix ( S T X ) and outputs it to the display information generation unit 34.
  • This coordinate transformation matrix ( S T C ) that transforms the camera coordinate system ( ⁇ C ) of the camera 11 into the scanner coordinate system ( ⁇ S )
  • This coordinate transformation matrix ( S T C ) can be expressed as the following (Formula 1c), similar to (Formula 1) and (Formula 1b) described above.
  • (R 00 , R 10 , R 20 ) is the X-axis direction of the sensor coordinate system
  • ⁇ (b) (R 01 , R 11 , R 21 ) is the Y-axis direction of the sensor coordinate system
  • ⁇ (c) (R 02 , R 12 , R 22 ) is the Z-axis direction of the sensor coordinate system
  • ⁇ (d) (t 0 , t 1 , t 2 ) are the origin position coordinates of the sensor coordinate system ( ⁇
  • each direction of the coordinate axes (X-axis, Y-axis, Z-axis) shown in (a) to (d) above and the origin position are directions in the scanner coordinate system ( ⁇ S ), which is the coordinate system after coordinate transformation, and the coordinate position.
  • the coordinate axes (X-axis, Y-axis, Z-axis) constituting the camera coordinate system ( ⁇ C ) of the camera 11 are the coordinate transformation matrices calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33 described above.
  • STC the coordinate transformation matrix calculation unit 33 described above.
  • other sensor - compatible coordinate systems ( ⁇ Y-axis, Z-axis) are acquired from the coordinate transformation matrix ( S T X ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33 described above.
  • the display example shown in FIG. 17 is a coordinate axis display example when the calibration process executed by the calibration execution unit 31 is successful and a correct coordinate transformation matrix is calculated.
  • the origin is set at the lens position of the camera 11 mounted on the robot 10 shown in FIG.
  • the X axis is set to the right.
  • the camera coordinate system ( ⁇ C ) is displayed at the center position of the camera 11 in the three-dimensional image because the calibration process executed in the calibration execution unit 31 was successful and the correct coordinate transformation matrix was obtained. It means that it has been calculated.
  • the calibration execution unit 31 receives sensor detection information from each of the sensors 11 to 14 of the robot 10, and executes the following process of calculating a coordinate transformation matrix corresponding to each sensor. For example, a process of calculating a camera-compatible coordinate transformation matrix ( R T C ) that transforms the camera coordinate system ( ⁇ C ) of the camera 11 into the robot coordinate system ( ⁇ R ) is executed.
  • FIG. 17 Other sensor coordinate systems shown in FIG. 17, namely, the depth camera coordinate system ( ⁇ D ) of the depth camera 12, the LiDAR coordinate system ( ⁇ L ) of the LiDAR 13, and the IMU coordinate system ( ⁇ I ) of the IMU 14, are also used.
  • the origin is set in the correct position and the coordinate axes are set in the correct direction.
  • the sensor-compatible coordinate system ( ⁇ The display is different from the display of X ).
  • FIG. 18 shows a display example when the coordinate transformation matrix generation process by the calibration execution unit 31 fails and a correct coordinate transformation matrix cannot be calculated.
  • the camera coordinate system ( ⁇ C ) shown in FIG. 18 has no origin at the lens position of the camera 11 of the robot 10, and the origin is set at a position shifted from the camera 11. Further, the coordinate axes, which should originally have the Z axis in the front optical axis direction of the camera 11, the Y axis on the lower side, and the X axis on the right side, are tilted. This is clearly a different representation from the correct camera coordinate system ( ⁇ C ).
  • the coordinate axes have correct positions and directions, and the calculation process of the LiDAR compatible coordinate transformation matrix ( R T L ) and the IMU compatible coordinate transformation matrix ( R T I ) in the calibration execution unit 31 is as follows. confirmed to be successful.
  • the display unit 36 of the calibration execution device 30 of the present disclosure displays each image on the scanner coordinate system ( ⁇ S ) along with the three-dimensional image of the robot 10 shown on the scanner coordinate system ( ⁇ S ). An image in which the coordinate system ( ⁇ X ) corresponding to the sensor is superimposed is displayed.
  • the user can calibrate the calibration execution unit 31 by checking the origin position and the direction (tilt) of the seat surface axis of the coordinate system ( ⁇ It becomes possible to determine whether the calibration process in , that is, the calculation process of the sensor corresponding target transformation matrix ( R T X ) was successful.
  • the display information generation section (visualized data generation section) 34 determines the viewpoint direction based on the viewpoint information input from the input section 35, and determines the direction of the robot 10 observed from the determined viewpoint direction. Three-dimensional image data is output to the display section 36. The user can operate the viewpoint from the input unit 35 and observe the relative positional relationship between the point group representing the three-dimensional image of the object such as the robot 10 and the sensor coordinate transformation matrix in any direction and at any magnification.
  • FIG. 19 shows an example of a display image on the display unit 36 when the viewpoint position is changed.
  • FIG. 19(a) is an example of a display image when the robot 10 is observed from the front right side.
  • FIG. 19(b) is an example of a display image when the robot 10 is observed from the front left side direction.
  • FIG. 19(c) is an example of a display image when the robot 10 is observed from the lower side of the front right side.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 of the calibration execution device 30 shown in FIG. 12 converts the coordinate system ( ⁇
  • An example of calculating a coordinate transformation matrix ( S T X ) for converting into ⁇ S ) has been described.
  • the display information generation unit (visualization data generation unit) 34 calculates the coordinates of each sensor 11 to 14 of the robot 10 based on the coordinate transformation matrix ( S T X ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33.
  • a "coordinate transformation matrix” is used as a method of expressing the coordinate system, position, and orientation of the sensors.
  • the method of expressing the coordinate system, position and orientation of the sensors is not limited to the "coordinate transformation matrix", and other methods may be applied.
  • a method for expressing the coordinate system, position, and orientation of sensors there is a known method of expressing the coordinate system, position, and orientation of sensors using a set of quaternions in which three numbers represent translation and four numbers represent rotation.
  • a method that uses Euler angles which represent three numbers for translation and three numbers for rotation. Euler angles are a method commonly used in ROS (Robot Operating System) and the like.
  • Embodiment 2 which will be described below, is an embodiment in which the sensor-compatible coordinate transformation matrix ( RTX ) is sequentially updated online while the robot 10 is running.
  • FIG. 20 shows a configuration example of an online calibration system 60 including the calibration execution device 30 of the second embodiment.
  • the online calibration system 60 shown in FIG. 20 is a system that includes a robot 100, a fixed depth camera 40, and a calibration execution device 30. Further, a chess board 45 is attached to the running surface of the robot 100. The chess board 45 is composed of regular black and white patterns.
  • the robot 100 is an autonomous mobile robot and is equipped with multiple sensors. Note that the robot 100 is an example of a moving device according to the present disclosure, and the moving device according to the present embodiment also includes various types of moving objects such as self-driving vehicles in addition to robots.
  • the fixed depth camera 40 measures the distance (depth) to surrounding objects.
  • the fixed depth camera 40 may have a built-in color camera. In this case, color information can be acquired in addition to distance information. Note that instead of a color camera, a type that outputs the reflectance of a subject as an image may be used.
  • the robot 100 is a robot similar to the robot of the first embodiment described above, and is a robot that analyzes the surrounding environment based on sensor detection information and moves autonomously. As shown in FIG. 20, the robot 100 is equipped with a plurality of different sensors 101 to 104. That is, a camera 101, a depth camera 102, a LiDAR 103, an IMU 104, and these sensors are installed.
  • the sensors 101 to 104 attached to the robot 100 shown in FIG. Calculate based on the system.
  • the calibration execution device 30 can be configured by, for example, a data processing device such as a PC.
  • the calibration execution device 30 has a configuration capable of communicating with the robot 100 and the fixed depth camera 40.
  • the calibration execution device 30 inputs sensor detection information of each of the sensors 101 to 104 mounted on the robot 100, and further inputs fixed depth camera detection information such as distance information from the fixed depth camera 40.
  • the calibration execution device 30 executes a calibration process for each of the sensors 11 to 14 mounted on the robot 100. Specifically, a process of calculating a coordinate transformation matrix corresponding to the sensor is executed.
  • the sensor-compatible coordinate transformation matrix is a coordinate transformation matrix that transforms position coordinates on a sensor-specific coordinate system to position coordinates on a robot coordinate system.
  • the calibration execution device 30 further displays display data, which is visualization data for checking the calibration results, which makes it possible to visually check whether the coordinate transformation matrix calculated as the calibration result has been calculated correctly. Generate and output to the display unit.
  • the visualization data for checking the calibration results is image data that allows checking whether the coordinate transformation matrix corresponding to the sensor has been calculated correctly. A specific example of this image data will be described later.
  • the calibration execution device 30 inputs detection information of each sensor from the robot 100, and further inputs fixed depth camera detection information (distance information of surrounding objects) from the fixed depth camera 40.
  • the calibration execution device 30 uses this input information to execute a calibration process that calculates a coordinate transformation matrix corresponding to each sensor of the robot 100.
  • the coordinate transformation matrix corresponding to each sensor calculated as a result of the calibration process executed by the calibration execution device 30 is transmitted to the robot 100 and stored in the storage unit within the robot 100.
  • the robot 100 converts the position coordinates on the coordinate system specific to each sensor to the position coordinates on the robot coordinate system using the coordinate transformation matrix corresponding to the sensor stored in the storage unit. Based on the subsequent position coordinates on the robot coordinate system, the relative positions of surrounding obstacles with respect to the robot 100 are analyzed, and autonomous movement is performed by selecting a running route that avoids collisions or contact with obstacles.
  • the online calibration system 60 shown in FIG. 20 is an example of a system in which the robot 100 and the calibration execution device 30 are configured as separate devices, for example, as shown in FIG. It is also possible to adopt a configuration such as an online calibration system 60b that integrates the simulation execution device 30.
  • the calibration execution device 30 within the robot 100 executes a calibration process that calculates a coordinate transformation matrix corresponding to each sensor mounted on the robot 100.
  • the sensors mounted on the robot 100 that is, the camera 101, the depth camera 102, the LiDAR 103, and the IMU 104, the sensor coordinate system that is the coordinate system of each of these sensors, and the robot coordinate system of the robot 100.
  • the following describes the fixed depth camera coordinate system, which is the coordinate system of the fixed depth camera 40, the chessboard coordinate system of the chessboard 45, and the map coordinate system.
  • FIG. 22 shows the following coordinate systems.
  • R Robot coordinate system ( ⁇ R )
  • C Camera coordinate system ( ⁇ C )
  • D Depth camera coordinate system ( ⁇ D )
  • L LiDAR coordinate system ( ⁇ L )
  • I IMU coordinate system ( ⁇ I )
  • FD Fixed depth camera coordinate system ( ⁇ FD )
  • B Chessboard coordinate system ( ⁇ B )
  • O Map coordinate system ( ⁇ O )
  • the robot coordinate system ( ⁇ R ) has its origin at the intersection of the perpendicular from the center position of the robot 100 and the robot ground plane, with the front of the robot 100 as the X-axis, the left side direction as the Y-axis, and the top as the This is a coordinate system with the Z axis.
  • the camera coordinate system ( ⁇ C ) is, for example, a coordinate system with the lens position of the camera 11 as the origin, the front optical axis direction of the camera 11 as the Z axis, the lower surface direction as the Y axis, and the right direction as the X axis. be.
  • the depth camera coordinate system ( ⁇ D ) has, for example, the center of gravity of the depth camera 12 as its origin, the front optical axis direction of the depth camera 12 as the Z axis, the lower surface direction as the Y axis, and the right direction as the X axis. It is a coordinate system.
  • the LiDAR coordinate system ( ⁇ L ) is a coordinate system having, for example, the center of gravity of the LiDAR 13 as its origin, the front of the LiDAR 10 as the X axis, the left side direction as the Y axis, and the upward direction as the Z axis.
  • the IMU coordinate system ( ⁇ I ) is a coordinate system whose origin is, for example, the center of gravity of the IMU 14, the X axis is in front of the IMU 10, the Y axis is in the left side direction, and the Z axis is in the upper direction.
  • the fixed depth camera coordinate system ( ⁇ FD ) has the lens position of the fixed depth camera 40 as the origin, the front optical axis direction of the fixed depth camera 40 is the Z axis, the lower side direction is the Y axis, and the right direction is the X axis.
  • the coordinate system is
  • the chessboard coordinate system ( ⁇ B ) is a coordinate system with one vertex of the chessboard 45 as the origin, the orthogonal axes of the robot running surface as the X and Y axes, and the axis extending vertically upward as the Z axis. be.
  • the map coordinate system ( ⁇ O ) is a reference coordinate used when the robot 100 estimates its own position.
  • the robot 100 calculates the robot 100 position (self-position) on the map coordinate system ( ⁇ O ), and travels according to a travel route set on the map coordinate system ( ⁇ O ).
  • the robot coordinate system of the robot 100, the coordinate system of each sensor, the fixed depth camera, the chessboard, and the map coordinate systems are different from each other.
  • each sensor of the robot 100 obtains the coordinate position of an obstacle using a coordinate system unique to each sensor.
  • the depth camera 102 calculates the coordinate position of the obstacle in the camera coordinate system ( ⁇ D ) as the position of the obstacle.
  • the robot 100 calculates the coordinate position of the obstacle on the robot coordinate system ( ⁇ R ) and the map coordinate system ( ⁇ O ) based on the coordinate position of the obstacle in the depth camera coordinate system ( ⁇ D ), and
  • the vehicle performs control such as acquiring the distance and direction to obstacles and selecting a driving route that avoids contact with obstacles.
  • the coordinate transformation matrix (T) is used in the coordinate transformation process.
  • the coordinate position (x D , y D , z D ) of the depth camera coordinate system ( ⁇ D ) of a certain point P in space is changed to the coordinate position (x R , y R , z ) of the robot coordinate system ( ⁇ R ) .
  • a coordinate transformation matrix R T D is used in the coordinate transformation processing to transform the coordinates into R ).
  • the coordinate position (x L , y L , z L ) of the LiDAR coordinate system ( ⁇ L ) of point P is converted to the coordinate position (x R , y R , z R ) of the robot coordinate system ( ⁇ R ).
  • a coordinate transformation matrix R T L is used for the coordinate transformation process.
  • the calibration execution device 30 shown in FIGS. 20 and 21 executes such sequential correction of the coordinate transformation matrix, that is, online calibration.
  • FIG. 23 shows an example of the relationship between the coordinate system and the coordinate transformation matrix used in the second embodiment.
  • the required coordinate transformation matrix is the coordinate transformation matrix ( OTFD ) indicated by the dashed arrow .
  • the coordinate transformation matrix ( O T FD ) is a coordinate transformation matrix that transforms the fixed depth camera coordinate system ( ⁇ FD ) of the fixed depth camera 40 into the map coordinate system ( ⁇ O ).
  • Coordinate transformation matrix (OTFD ) that transforms the chessboard coordinate system ( ⁇ B ) to the fixed depth camera coordinate system ( ⁇ FD )
  • Coordinate transformation matrix (C T B ) that transforms the chessboard coordinate system ( ⁇ B ) to the camera coordinate system ( ⁇ C )
  • Coordinate transformation matrix ( RTC ) that transforms the camera coordinate system ( ⁇ C ) to the robot coordinate system ( ⁇ R )
  • Coordinate transformation matrix (OT R ) that transforms the robot coordinate system ( ⁇ R ) to the map coordinate system ( ⁇ O )
  • a coordinate transformation matrix ( O T FD ) that transforms the fixed depth camera coordinate system ( ⁇ FD ) into the map coordinate system ( ⁇ O ) can be calculated according to the following (Equation 6).
  • a coordinate transformation matrix (O T FD ) that transforms the fixed depth camera coordinate system ( ⁇ FD ) to the map coordinate system ( ⁇ O ) can be calculated .
  • the coordinate transformation matrix ( OTR ) is a coordinate transformation matrix that transforms the robot coordinate system ( ⁇ R ) into the map coordinate system ( ⁇ O ).
  • Coordinate transformation matrix (FD T B ) that transforms the chessboard coordinate system ( ⁇ B ) to the fixed depth camera coordinate system ( ⁇ FD )
  • Coordinate transformation matrix (C T B ) that transforms the chessboard coordinate system ( ⁇ B ) to the camera coordinate system ( ⁇ C ) It is effective to improve the precision of these two types of coordinate transformation matrices ( FDTB ) and ( CTB ).
  • the camera 101 of the robot 100 and the fixed depth camera 40 take pictures of the chess board 45 multiple times, average the captured images, and perform two types of coordinate transformations. Processing to calculate the matrices ( FDTB ) and ( CTB ) is effective.
  • the results of using several chess boards of different sizes may be averaged.
  • the reference used for positioning is not limited to the chessboard, and existing markers such as an AR marker, a QR code (registered trademark), an ArUco marker, and a spherical marker may be used.
  • FIG. 24 is a diagram illustrating the detailed configuration of the calibration execution device 30 of the second embodiment.
  • FIG. 24 shows the detailed configuration of the calibration execution device 30 and data input by the calibration execution device 30 from the robot 100 and the fixed depth camera 40.
  • the calibration execution device 30 includes an online calibration execution section 37, a relative position calculation section 32, an external coordinate system compatible coordinate transformation matrix calculation section 33, and a display information generation section (visualization data generation section) 34. , an input section 35, and a display section 36.
  • the calibration execution device 30 of the second embodiment has a configuration in which the calibration execution unit 31 of the calibration execution device 30 described with reference to FIG. 12 in the first embodiment is replaced with an online calibration execution unit 37. .
  • FIG. 24 shows a camera 101, a depth camera 102, a LiDAR 103, and an IMU 104 as the sensors 101 to 104 mounted on the robot 100.
  • the online calibration execution unit 37 of the calibration execution device 30 calculates a coordinate transformation matrix for each of the sensors 101 to 104 mounted on the robot 100. That is, the online calibration execution unit 37 inputs sensor detection information etc. from each sensor 101 to 104 of the robot 100, and executes a process of calculating a coordinate transformation matrix corresponding to each sensor.
  • the calculation process of the coordinate transformation matrix corresponding to this sensor is the same process as in the first embodiment described above.
  • the online calibration execution unit 37 inputs sensor detection information etc. from each sensor 101 to 104 of the robot 100, and executes the following process of calculating a coordinate transformation matrix corresponding to each sensor.
  • the relative position calculation unit 32 executes alignment processing between the fixed depth camera coordinate system ( ⁇ FD ) of the fixed depth camera 40 and the robot coordinate system ( ⁇ R ) of the robot 10, and converts the robot coordinate system ( ⁇ R ) into A coordinate transformation matrix ( FDTR ) is calculated to transform the fixed depth camera coordinate system ( ⁇ FD ).
  • the coordinate transformation matrix ( FDTR ) calculated by the relative position calculation section 32 is input to the external coordinate system compatible coordinate transformation matrix calculation section 33.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 receives the following coordinate transformation matrix from the online calibration execution unit 37.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 further receives the following coordinate transformation matrix from the relative position calculation unit 32.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 inputs these plural coordinate transformation matrices and converts the coordinate system ( ⁇ A coordinate transformation matrix ( FDTX ) to be transformed is calculated.
  • the coordinate transformation matrix ( FDTC ) for converting the camera coordinate system ( ⁇ C ) corresponding to the camera 101 into the fixed depth camera coordinate system ( ⁇ FD ) can be calculated according to the following (Equation 8). .
  • the coordinate transformation matrix ( FDTR ) is a coordinate transformation matrix ( FDTR ) that transforms the robot coordinate system ( ⁇ R) into the fixed depth camera coordinate system ( ⁇ FD ) , and is input.
  • R T C is a camera-compatible coordinate transformation matrix ( R T C ) that converts the camera coordinate system ( ⁇ C ) of the camera 11 into the robot coordinate system ( ⁇ R ), and the online calibration execution unit 37 Input from
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 uses input values from the relative position calculation unit 32 or online calibration execution unit 37, or a matrix that can be calculated based on the input values, to A coordinate transformation matrix ( FD T X ) that transforms the coordinate system ( ⁇
  • the coordinate transformation matrix ( FD T ) The coordinate transformation matrix ( FD T
  • the coordinate transformation matrix ( FDTX ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33 is the following coordinate transformation matrix ( FDTX ) .
  • the display information generation unit (visualization data generation unit) 34 calculates the coordinates of each sensor 101 to 104 of the robot 100 based on these coordinate transformation matrices ( FD T X ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33.
  • a three-dimensional image is generated in which the coordinate axes (X-axis, Y-axis, Z-axis) constituting the system ( ⁇ and outputs it to the display section 36.
  • the input unit 35 is configured with a mouse, a keyboard, etc., and inputs viewpoint information of a three-dimensional image drawn on the display unit 36 by the display information generation unit (visualization) data generation unit 34.
  • the display information generation unit (visualized data generation unit) 34 determines a viewpoint direction based on the viewpoint information input from the input unit 35, and displays three-dimensional image data of the robot 10 observed from the determined viewpoint direction on the display unit. Output to 36.
  • the three-dimensional image data of the robot 100 generated by the display information generating section (visualized data generating section) 34 and output to the display section 36 is a three-dimensional image shown on a fixed depth camera coordinate system ( ⁇ FD ), and the three-dimensional image data of the robot 100 is This is an image in which coordinate axes (X-axis, Y-axis, Z-axis) constituting the coordinate system ( ⁇ X ) of each sensor 101 to 104 of robot 100 are superimposed on the three-dimensional image.
  • the displayed image is similar to the images shown in FIGS. 17 to 19 described above in Example 1.
  • the display unit 36 of the calibration execution device 30 displays a fixed depth camera coordinate system ( ⁇ FD ) along with a three-dimensional image of the robot 100 shown on the fixed depth camera coordinate system ( ⁇ FD ). ) is displayed in which the coordinate system ( ⁇ X ) corresponding to each sensor is superimposed.
  • the user can perform online calibration by checking the origin position of the coordinate system ( ⁇ It becomes possible to determine whether the calibration process in the unit 37, that is, the calculation process of the sensor-corresponding standard transformation matrix ( RTX ) has been successful.
  • one robot executes online calibration, and the camera of another robot is used to perform online calibration. Verify the correctness of the results.
  • the coordinate transformation matrix of a camera of a certain robot that has undergone online calibration is superimposed and displayed on a point cloud (three-dimensional image) obtained from a depth camera mounted on another robot. , to verify the correctness of the camera coordinate transformation matrix obtained through online calibration.
  • relative position information between robots is required, but in this third embodiment, relative positions and angles between multiple robots are calculated using self-position estimation information executed by each robot. calculate. For example, if multiple robots are performing position estimation on a map with the same coordinate system, the position information is used.
  • FIG. 25 shows a configuration example of an online calibration system 70 including the calibration execution device 30 of the third embodiment.
  • the online calibration system 70 shown in FIG. 25 is a system that includes a robot A 110, a robot B 120, and a calibration execution device 30.
  • Both robot A110 and robot B120 are autonomous mobile robots and are equipped with multiple sensors.
  • the robot A110 and the robot B120 are robots similar to the robot of the first embodiment described above, and are robots that analyze the surrounding environment based on sensor detection information and move autonomously.
  • the robot A110 is equipped with a plurality of different sensors 111-114. That is, a camera A111, a depth camera A112, a LiDAR 113, an IMU 114, and these sensors are installed.
  • the robot B120 is equipped with a camera B121 and a depth camera B122.
  • the sensors attached to the robot A110 and the robot B120 shown in FIG. Calculate based on the system.
  • the calibration execution device 30 can be configured by, for example, a data processing device such as a PC.
  • the calibration execution device 30 has a configuration capable of communicating with the robot A 110 and the robot B 120.
  • the calibration execution device 30 inputs sensor detection information of each sensor mounted on the robot A 110 and the robot B 120.
  • the calibration execution device 30 executes a calibration process for each of the sensors 111 to 114 mounted on the robot A110. Specifically, a process of calculating a coordinate transformation matrix corresponding to the sensor is executed.
  • the sensor-compatible coordinate transformation matrix is a coordinate transformation matrix that transforms position coordinates on a sensor-specific coordinate system to position coordinates on a robot coordinate system.
  • the calibration execution device 30 further displays display data, which is visualization data for checking the calibration results, which makes it possible to visually check whether the coordinate transformation matrix calculated as the calibration result has been calculated correctly. Generate and output to the display unit.
  • the visualization data for checking the calibration results is image data that allows checking whether the coordinate transformation matrix corresponding to the sensor has been calculated correctly. A specific example of this image data will be described later.
  • the calibration execution device 30 receives the detection information of each sensor from the robot A110 and the robot B120.
  • the calibration execution device 30 uses this input information to execute a calibration process that calculates a coordinate transformation matrix corresponding to each sensor of the robot A110.
  • the coordinate transformation matrix corresponding to each sensor calculated as a result of the calibration process executed by the calibration execution device 30 is stored in the storage unit within the robot A110.
  • the robot A110 converts the position coordinates on the coordinate system specific to each sensor to the position coordinates on the robot coordinate system using the coordinate transformation matrix corresponding to the sensor stored in the storage unit. Based on the position coordinates on the subsequent robot coordinate system, the relative positions of surrounding obstacles with respect to the robot A110 are analyzed, and autonomous movement is performed by selecting a running route that avoids collisions or contact with obstacles.
  • the online calibration system 70 shown in FIG. 25 is an example of a system in which the robot A 110 and the calibration execution device 30 are configured as separate devices, but for example, as shown in FIG. It is also possible to adopt a configuration such as an online calibration system 70b that integrates the calibration execution device 30.
  • the calibration execution device 30 in the robot A110 executes a calibration process that calculates a coordinate transformation matrix corresponding to each sensor mounted on the robot A110.
  • the sensors attached to the robot A110 that is, the camera A111, the depth camera A112, the LiDAR113, and the IMU114, the sensor coordinate system that is the coordinate system of each of these sensors, the robot coordinate system, and the coordinate system of the robot A110 are as follows. This is a coordinate system similar to the coordinate system described in Example 2 with reference to FIG.
  • FIG. 27 shows the camera B121 and depth camera B122 mounted on the robot B120, the sensor coordinate system that is the coordinate system of each of these sensors, the robot B coordinate system of the robot B120, and the map coordinate system.
  • the robot B coordinate system ( ⁇ RB ) has its origin at the intersection of the perpendicular from the center position of the robot B120 and the robot ground plane, the X axis is in front of the robot B120, the Y axis is in the left side direction, and the upward direction is It is a coordinate system with the Z axis as (CB)
  • Camera B coordinate system ( ⁇ CB ) is, for example, a coordinate system with the lens position of camera B121 as the origin, the front optical axis direction of camera B121 as the Z axis, the lower surface direction as the Y axis, and the right direction as the X axis. It is.
  • the depth camera B coordinate system ( ⁇ DB ) has, for example, the center of gravity of the depth camera B122 as its origin, the front optical axis direction of the depth camera B122 as the Z axis, the lower side direction as the Y axis, and the right direction as the X axis. This is the coordinate system.
  • the map coordinate system ( ⁇ O ) is a reference coordinate used when the robot 100 estimates its own position.
  • the robot 100 calculates the robot 100 position (self-position) on the map coordinate system ( ⁇ O ), and travels according to a travel route set on the map coordinate system ( ⁇ O ).
  • FIG. 28 shows an example of the relationship between the coordinate system and the coordinate transformation matrix used in the third embodiment.
  • a processing example using robot B's depth camera B122 and a processing example using robot B's camera B121 can be executed.
  • the coordinate transformation matrix required in the processing example using the depth camera B122 of the robot B120 is the coordinate transformation matrix ( DB T XA ) indicated by the dashed arrow.
  • the coordinate transformation matrix ( DB T XA ) is a coordinate transformation matrix that transforms the sensor coordinate system ( ⁇ XA ) of the robot A to the depth camera B coordinate system ( ⁇ DB ) of the robot B.
  • this coordinate transformation matrix ( DBTXA ) In order to calculate this coordinate transformation matrix ( DBTXA ), as shown in FIG. 28 , the following plural coordinate transformation matrices are used. That is, (1) Coordinate transformation matrix (RB T DB ) that transforms the depth camera B coordinate system ( ⁇ DB ) of robot B to the robot B coordinate system ( ⁇ RB ) (2) Coordinate transformation matrix ( RBTO ) that transforms the map coordinate system ( ⁇ O ) to the robot B coordinate system ( ⁇ RB ) (3) Coordinate transformation matrix ( OTRA ) that transforms the robot A coordinate system ( ⁇ RA) to the map coordinate system ( ⁇ O ) (4) Coordinate transformation matrix (RA T XA ) that transforms the sensor coordinate system of robot A ( ⁇ XA ) to the robot A coordinate system ( ⁇ RA )
  • the coordinate transformation matrix ( DB T XA ) that transforms the sensor coordinate system of robot A ( ⁇ can do.
  • the coordinate transformation matrix required in the processing example using the camera B121 of the robot B120 is the coordinate transformation matrix ( CBTXA ) indicated by the dashed arrow shown in FIG.
  • the coordinate transformation matrix ( CB T XA ) is a coordinate transformation matrix that transforms the sensor coordinate system ( ⁇ XA ) of robot A to the camera B coordinate system ( ⁇ CB ) of robot B.
  • Coordinate transformation matrix (RB T CB ) that transforms the camera B coordinate system ( ⁇ CB ) of robot B to the robot B coordinate system ( ⁇ RB )
  • Coordinate transformation matrix ( RBTO ) that transforms the map coordinate system ( ⁇ O ) to the robot B coordinate system ( ⁇ RB )
  • Coordinate transformation matrix ( OTRA ) that transforms the robot A coordinate system ( ⁇ RA) to the map coordinate system ( ⁇ O )
  • Coordinate transformation matrix (RA T XA ) that transforms the sensor coordinate system of robot A ( ⁇ XA ) to the robot A coordinate system ( ⁇ RA )
  • a coordinate transformation matrix ( CB T XA ) that transforms the sensor coordinate system ( ⁇ be able to.
  • FIG. 30 is a diagram illustrating an example of processing using the depth camera B122 of the robot B120.
  • FIG. 31 is a diagram illustrating an example of processing using camera B121 of robot B120.
  • FIG. 30 shows a detailed configuration of the calibration execution device 30 and data input to the calibration execution device 30 from the robot A 110 and the robot B 120.
  • the calibration execution device 30 includes an online calibration execution section 37, a relative position calculation section 32, an external coordinate system compatible coordinate transformation matrix calculation section 33, and a display information generation section (visualization data generation section) 34. , an input section 35, and a display section 36.
  • the calibration execution device 30 of the third embodiment has the same configuration as the calibration execution device 30 described with reference to FIG. 24 in the second embodiment.
  • FIG. 30 shows a (color) camera A111, a depth camera A112, an IMU 114, a wheel odometry 115, and a self-position estimation unit 116 as the configuration of the robot A110. Further, as the configuration of the robot B120, a (color) camera B121, a depth camera B122, a self-position estimation unit 123, and a sensor coordinate transformation matrix DB (database) 124 are shown.
  • the self-position estimating unit 116 of the robot A110 generates a coordinate transformation matrix ( OTRA ) necessary for calculating the self-position of the robot A110 on the map coordinate system ( ⁇ O ), that is, the robot A coordinate system ( ⁇ O).
  • OTRA coordinate transformation matrix
  • RA to the map coordinate system ( ⁇ O ) is calculated, and the calculated coordinate transformation matrix ( OTRA ) is sent to the online calibration execution unit of the calibration execution device 30. 37 and is output to the relative position calculation section 32.
  • the self-position estimating unit 123 of the robot B120 calculates the coordinate transformation matrix ( OTRB ) necessary for calculating the self-position of the robot B120 on the map coordinate system ( ⁇ O ), that is, the robot B coordinates.
  • a coordinate transformation matrix ( OTRB ) that transforms the system ( ⁇ RB ) into the map coordinate system ( ⁇ O ) is calculated, and the calculated coordinate transformation matrix ( OTRB ) is used for relative position calculation of the calibration execution device 30. It is output to section 32.
  • the sensor coordinate transformation matrix DB (database) 124 of the robot B120 stores a coordinate transformation matrix (RB T DB ) that transforms the depth camera B coordinate system ( ⁇ DB ) of the robot B 120 into the robot B coordinate system ( ⁇ RB ).
  • this coordinate transformation matrix ( RB T DB ) is output to the relative position calculation unit 32 of the calibration execution device 30 .
  • the online calibration execution unit 37 of the calibration execution device 30 calculates a coordinate transformation matrix ( RA T XA ) of each sensor (AX) mounted on the robot A110.
  • the calculation process of the coordinate transformation matrix ( RA T XA ) corresponding to the sensor is the same process as in the first embodiment described above.
  • the relative position calculation unit 32 inputs the following data.
  • a coordinate transformation matrix ( OTRA ) from the self-position estimating unit 116 of the robot A110 that is, a coordinate transformation matrix ( OTRA ) that transforms the robot A coordinate system ( ⁇ RA ) into the map coordinate system ( ⁇ O ) .
  • a coordinate transformation matrix ( OTRB ) from the self-position estimating unit 123 of the robot B120 that is, a coordinate transformation matrix ( OTRB ) that transforms the robot B coordinate system ( ⁇ RB ) into the map coordinate system ( ⁇ O ) .
  • the relative position calculation unit 32 inputs each of these data and creates a coordinate transformation matrix ( DB T XA ) for converting the sensor coordinate system of robot A ( ⁇ ) is calculated.
  • the calculation process of this coordinate transformation matrix ( DB T XA ) is executed according to the previously explained (Equation 9).
  • the coordinate transformation matrix ( DB T XA ) calculated by the relative position calculation unit 32 that is, the coordinate transformation matrix ( DB T XA ) is input to the external coordinate system compatible coordinate transformation matrix calculation unit 33 .
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 receives coordinates from the online calibration execution unit 37 to convert the sensor coordinate system ( ⁇ XA ) of each sensor ( XA ) of the robot A 110 into the robot A coordinate system ( ⁇ RA ). Input the transformation matrix ( RATXA ) .
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 converts the sensor coordinate system ( ⁇ Input the coordinate transformation matrix ( DBTXA ) to be converted into .
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 inputs these plural coordinate transformation matrices and transforms the robot coordinate system ( ⁇ RA ) of the robot A 110 into the depth camera B coordinate system ( ⁇ DB ) of the robot B 120.
  • a coordinate transformation matrix ( DBTRA ) is calculated.
  • the coordinate transformation matrix ( DB T RA ) for converting the robot coordinate system ( ⁇ RA ) of the robot A 110 to the depth camera B coordinate system ( ⁇ DB ) of the robot B 120 can be calculated according to the following (Equation 11). can.
  • the coordinate transformation matrix shown on the right side of the above (Equation 11) can all be calculated based on the input value or input value from the relative position calculation unit 32 or the online calibration execution unit 37.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 uses input values from the relative position calculation unit 32 or online calibration execution unit 37, or a matrix that can be calculated based on the input values, to A coordinate transformation matrix (DB T RA ) that transforms the robot coordinate system ( ⁇ RA ) of robot A 110 to the depth camera B coordinate system ( ⁇ DB ) of robot B 120 is calculated.
  • DB T RA coordinate transformation matrix
  • the coordinate transformation matrix ( DB T RA ) is input to the display information generation unit (visualized data generation unit) 34 of the calibration execution device 30 shown in FIG.
  • the display information generation unit (visualized data generation unit) 34 converts the coordinate transformation matrix ( DB T RA ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33 , that is, the robot coordinate system ( ⁇ RA ) of the robot A 110 into the robot
  • the coordinate axes ( X axis , Y axis , Z A three-dimensional image showing the axis) on the depth camera B coordinate system ( ⁇ DB ) of the robot B120 is generated and output to the display unit 36 along with the three-dimensional image of the robot A110.
  • the input unit 35 is configured with a mouse, a keyboard, etc., and inputs viewpoint information of a three-dimensional image drawn on the display unit 36 by the display information generation unit (visualization) data generation unit 34.
  • the display information generation unit (visualized data generation unit) 34 determines a viewpoint direction based on the viewpoint information input from the input unit 35, and displays three-dimensional image data of the robot 10 observed from the determined viewpoint direction on the display unit. Output to 36.
  • the three-dimensional image data of the robot A110 that is generated by the display information generating unit (visualized data generating unit) 34 and output to the display unit 36 is a three-dimensional image shown on the depth camera B coordinate system ( ⁇ DB ) of the robot B120.
  • ⁇ DB depth camera B coordinate system
  • X-axis, Y-axis, Z-axis constituting the coordinate system ( ⁇ XA ) of each sensor of robot A110 are superimposed on a three-dimensional image of robot A110.
  • the displayed image is similar to the images shown in FIGS. 17 to 19 described above in Example 1.
  • the depth camera of the robot B120 is displayed on the display unit 36 of the calibration execution device 30 along with the three-dimensional image of the robot A110 shown on the depth camera B coordinate system ( ⁇ DB ) of the robot B120.
  • An image in which the coordinate system ( ⁇ XA ) corresponding to each sensor on the B coordinate system ( ⁇ DB ) is superimposed is displayed.
  • the user can check the origin position of the coordinate system ( ⁇ It becomes possible to determine whether the calibration process, that is, the calculation process of the sensor corresponding target transformation matrix ( RA T XA ) has been successful.
  • FIG. 31 shows the detailed configuration of the calibration execution device 30 and data input by the calibration execution device 30 from the robot A 110 and the robot B 120.
  • the calibration execution device 30 includes an online calibration execution section 37, a relative position calculation section 32, an external coordinate system compatible coordinate transformation matrix calculation section 33, and a display information generation section (visualization data generation section) 34. , an input section 35, and a display section 36.
  • FIG. 31 also shows a (color) camera A111, a depth camera A112, an IMU 114, a wheel odometry 115, and a self-position estimation unit 116 as the configuration of a robot A110. Further, as the configuration of the robot B120, a (color) camera B121, a camera B121, a self-position estimation unit 123, and a sensor coordinate transformation matrix DB (database) 124 are shown.
  • the self-position estimating unit 116 of the robot A110 generates a coordinate transformation matrix ( OTRA ) necessary for calculating the self-position of the robot A110 on the map coordinate system ( ⁇ O ), that is, the robot A coordinate system ( ⁇ O).
  • OTRA coordinate transformation matrix
  • RA to the map coordinate system ( ⁇ O ) is calculated, and the calculated coordinate transformation matrix ( OTRA ) is sent to the online calibration execution unit of the calibration execution device 30. 37 and is output to the relative position calculation section 32.
  • the self-position estimating unit 123 of the robot B120 calculates the coordinate transformation matrix ( OTRB ) necessary for calculating the self-position of the robot B120 on the map coordinate system ( ⁇ O ), that is, the robot B coordinates.
  • a coordinate transformation matrix ( OTRB ) that transforms the system ( ⁇ RB ) into the map coordinate system ( ⁇ O ) is calculated, and the calculated coordinate transformation matrix ( OTRB ) is used for relative position calculation of the calibration execution device 30. It is output to section 32.
  • the sensor coordinate transformation matrix DB (database) 124 of the robot B120 stores a coordinate transformation matrix ( RB T CB ) that transforms the camera B coordinate system ( ⁇ CB ) of the robot B 120 into the robot B coordinate system ( ⁇ RB ), This coordinate transformation matrix ( RB T CB ) is output to the relative position calculation unit 32 of the calibration execution device 30 .
  • the online calibration execution unit 37 of the calibration execution device 30 calculates a coordinate transformation matrix ( RA T XA ) of each sensor (AX) mounted on the robot A110.
  • the calculation process of the coordinate transformation matrix ( RA T XA ) corresponding to the sensor is the same process as in the first embodiment described above.
  • the relative position calculation unit 32 inputs the following data.
  • a coordinate transformation matrix ( OTRA ) from the self-position estimating unit 116 of the robot A110 that is, a coordinate transformation matrix ( OTRA ) that transforms the robot A coordinate system ( ⁇ RA ) into the map coordinate system ( ⁇ O ) .
  • a coordinate transformation matrix ( OTRB ) from the self-position estimating unit 123 of the robot B120 that is, a coordinate transformation matrix ( OTRB ) that transforms the robot B coordinate system ( ⁇ RB ) into the map coordinate system ( ⁇ O ) .
  • the relative position calculation unit 32 inputs each of these data and creates a coordinate transformation matrix ( CBTXA ) for converting the sensor coordinate system of robot A ( ⁇ XA) into the camera B coordinate system of robot B ( ⁇ CB ) . Calculate.
  • the calculation process of this coordinate transformation matrix ( CB T XA ) is performed according to the above-mentioned (Equation 10).
  • the coordinate transformation matrix ( CBTXA ) calculated by the relative position calculation unit 32 that is, the coordinate transformation matrix ( CB ) that transforms the sensor coordinate system ( ⁇ T XA ) is input to the external coordinate system compatible coordinate transformation matrix calculation unit 33 .
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 receives coordinates from the online calibration execution unit 37 to convert the sensor coordinate system ( ⁇ XA ) of each sensor ( XA ) of the robot A 110 into the robot A coordinate system ( ⁇ RA ). Input the transformation matrix ( RATXA ) .
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 converts the sensor coordinate system ( ⁇ Input the coordinate transformation matrix ( CBTXA ) to be transformed.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 inputs these plural coordinate transformation matrices and calculates coordinates for transforming the robot coordinate system ( ⁇ RA ) of the robot A 110 into the camera B coordinate system ( ⁇ CB ) of the robot B 120. Calculate the transformation matrix ( CBTRA ).
  • the coordinate transformation matrix ( CB T RA ) for converting the robot coordinate system ( ⁇ RA ) of the robot A 110 to the camera B coordinate system ( ⁇ CB ) of the robot B 120 can be calculated according to the following (Equation 12). .
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 uses input values from the relative position calculation unit 32 or online calibration execution unit 37, or a matrix that can be calculated based on the input values, to A coordinate transformation matrix (CB T RA ) that transforms the robot coordinate system ( ⁇ RA ) of robot A 110 to the camera B coordinate system ( ⁇ CB ) of robot B 120 is calculated.
  • CB T RA coordinate transformation matrix
  • the coordinate transformation matrix ( CB T RA ) is input to the display information generation unit (visualized data generation unit) 34 of the calibration execution device 30 shown in FIG. 31 .
  • the display information generation unit (visualized data generation unit) 34 converts the coordinate transformation matrix ( CB T RA ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33 , that is, the robot coordinate system ( ⁇ RA ) of the robot A 110 into the robot
  • the coordinate axes (X - axis, Y- axis , Z - axis) constituting the coordinate system ( ⁇ ) on the camera B coordinate system ( ⁇ CB ) of the robot B 120 and outputs it to the display unit 36 along with the (color) image of the robot A 110.
  • the input unit 35 is composed of a mouse, a keyboard, etc., and inputs movement instructions consisting of position and direction information to the robot B120.
  • the robot B120 determines the position and direction of the viewpoint based on the viewpoint information input from the input unit 35, moves to the determined viewpoint position and direction, and displays (color) image data of the robot B120 on the display unit 36. Output to. Specifically, by moving the robot B 120 according to the viewpoint position and direction given from the input unit 35, the viewpoint direction of the (color) camera 121 is changed, and the (color) image data observed from there is applied to the robot A 110. A three-dimensional image displaying the coordinate system ⁇ XA of each sensor is displayed on the display unit 36 in a superimposed manner.
  • the three-dimensional image data of the robot A110 generated by the display information generating unit (visualized data generating unit) 34 and output to the display unit 36 is a three-dimensional image shown on the camera B coordinate system ( ⁇ CB ) of the robot B120, This is an image in which the coordinate axes (X-axis, Y-axis, Z-axis) constituting the coordinate system ( ⁇ XA ) of each sensor of the robot A110 are superimposed on a (color) image of the robot A110.
  • the displayed image is similar to the images shown in FIGS. 17 to 19 described above in Example 1.
  • the display section 36 of the calibration execution device 30 displays a (color) image of the robot A110 shown on the camera B coordinate system ( ⁇ CB ) of the robot B120.
  • An image in which the coordinate system ( ⁇ XA ) corresponding to each sensor on the camera B coordinate system ( ⁇ CB ) of B120 is superimposed is displayed.
  • the user can perform the online calibration execution unit 37 by checking the origin position of the coordinate system ( ⁇ It becomes possible to determine whether the calibration process in , that is, the calculation process of the sensor corresponding target transformation matrix ( RA T XA ) was successful.
  • Embodiment 4 is an embodiment in which, for example, as shown in FIG. 32, in a configuration in which a plurality of cameras are fixed, calibration processing is performed for these fixed cameras.
  • the example shown in FIG. 32 has a configuration including a plurality of columns 200 to which a plurality of cameras 201 are attached.
  • Typical examples of applications that use such multiple cameras include volumetric capture processing that simultaneously acquires the three-dimensional shape and surface color of an object, or three-dimensional measurement processing of human joint positions.
  • FIG. 33 shows an example of the calibration system 80 of the fourth embodiment.
  • the calibration system 80 includes a plurality of cameras 201 to be calibrated, a 3D scanner 211, and a calibration execution device 30 that executes calibration processing.
  • chess boards 221 and 222 that can be photographed by a plurality of cameras 201 are attached to the floor surface.
  • the chess boards 221 and 222 are composed of regular black and white patterns.
  • Images and internal parameters of the plurality of cameras 201 are transmitted to the calibration execution device 30.
  • Colored point cloud information ( SPS ) which is detection data of the 3D scanner 211 , is also transmitted to the calibration execution device 30.
  • the calibration execution device 30 uses these input data to execute calibration processing for each of the plurality of cameras 201. Specifically, a process of calculating a coordinate transformation matrix for each of the plurality of cameras 201 is executed.
  • the calculated coordinate transformation matrix is a coordinate transformation matrix that transforms the coordinate system of each camera into a calibration coordinate system that is one reference coordinate system.
  • the calibration execution device 30 further displays display data, which is visualization data for checking the calibration results, which makes it possible to visually check whether the coordinate transformation matrix calculated as the calibration result has been calculated correctly. Generate and output to the display unit.
  • the visualization data for checking the calibration results is image data that makes it possible to check whether the coordinate transformation matrix for each camera has been calculated correctly. A specific example of this image data will be described later.
  • FIG. 34 shows the detailed configuration of the calibration execution device 30 and data input by the calibration execution device 30 from the camera 201 and the 3D scanner 211.
  • the camera 201 is composed of a plurality of cameras a to n.
  • the calibration execution device 30 includes a calibration execution unit 31, a relative position calculation unit 32, an external coordinate system compatible coordinate transformation matrix calculation unit 33, a display information generation unit (visualization data generation unit) 34, an input It has a section 35 and a display section 36.
  • the calibration execution device 30 of the fourth embodiment has the same configuration as the calibration execution device 30 described with reference to FIG. 12 in the first embodiment.
  • the calibration execution unit 31 of the calibration execution device 30 calculates a coordinate transformation matrix for each of the plurality of cameras (cameras a to n).
  • the calibration execution unit 31 inputs captured images and internal parameters of each camera from a plurality of cameras (cameras a to n), and executes a process of calculating a coordinate transformation matrix corresponding to each camera.
  • a camera-compatible coordinate transformation matrix ( CL T CX ) is calculated that transforms the camera coordinate system ( ⁇ Cx ) of each camera into a calibration coordinate system ( ⁇ CL ) that is a predefined reference coordinate system.
  • the camera-compatible coordinate transformation matrix ( CLTCX ) calculated by the calibration execution unit 31 is output to the relative position calculation unit 32 and the external coordinate system-compatible coordinate transformation matrix calculation unit 33.
  • the relative position calculation unit 32 executes alignment processing between the scanner coordinate system ( ⁇ S ) of the 3D scanner 211 and the calibration coordinate system ( ⁇ CL ), which is the reference coordinate system used by the calibration execution unit 31, and A coordinate transformation matrix (S T CL ) that transforms the calibration coordinate system ( ⁇ CL ) into the scanner coordinate system ( ⁇ S ) is calculated.
  • the coordinate transformation matrix ( STCL ) calculated by the relative position calculation section 32 is input to the external coordinate system compatible coordinate transformation matrix calculation section 33.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 receives the following coordinate transformation matrix as input from the calibration execution unit 31.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 further receives the following coordinate transformation matrix from the relative position calculation unit 32.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 inputs these plural coordinate transformation matrices and calculates a coordinate transformation matrix for converting the coordinate system ( ⁇ CX ) of each camera a to n into the scanner coordinate system ( ⁇ S ). ( STCX ) is calculated.
  • a coordinate transformation matrix ( S T CX ) for converting the coordinate system ( ⁇ CX ) of each camera a to n to the scanner coordinate system ( ⁇ S ) can be calculated according to the following (Equation 13).
  • the coordinate transformation matrix shown on the right side of the above (Equation 13) is the input value from the relative position calculation unit 32 and the calibration execution unit 31.
  • the external coordinate system compatible coordinate transformation matrix calculation unit 33 converts the coordinate systems ( ⁇ CX ) of the cameras a to n based on the input values from the relative position calculation unit 32 and the calibration execution unit 31.
  • a coordinate transformation matrix ( STCX ) for transformation into the coordinate system ( ⁇ S ) is calculated.
  • These coordinate transformation matrices ( S T CX ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33 are input to the display information generation unit (visualized data generation unit) 34 of the calibration execution device 30 shown in FIG. .
  • the display information generation unit (visualized data generation unit) 34 calculates the coordinate systems ( ⁇ CX ) of the cameras a to n based on the coordinate transformation matrix ( S T CX ) calculated by the external coordinate system compatible coordinate transformation matrix calculation unit 33.
  • a three-dimensional image in which the constituent coordinate axes (X-axis, Y-axis, Z-axis) are shown on the scanner coordinate system ( ⁇ S ) is generated and output to the display unit 36 along with the three-dimensional images of cameras a to n. do.
  • the input unit 35 is configured with a mouse, a keyboard, etc., and inputs viewpoint information of a three-dimensional image drawn on the display unit 36 by the display information generation unit (visualization) data generation unit 34.
  • the display information generation unit (visualization data generation unit) 34 determines a viewpoint direction based on the viewpoint information input from the input unit 35, and generates three-dimensional image data of cameras a to n observed from the determined viewpoint direction. It is output to the display section 36.
  • the three-dimensional image data of cameras a to n generated by the display information generating section (visualized data generating section) 34 and output to the display section 36 is a three-dimensional image shown on the scanner coordinate system ( ⁇ S ), and the three-dimensional image data of the cameras a This is an image in which the coordinate axes (X-axis, Y-axis, Z-axis) constituting the coordinate system ( ⁇ CX ) of each camera a to n are superimposed on the three-dimensional images of cameras a to n.
  • FIG. 36 An example of a display image is shown in FIG. 36.
  • the display unit 36 of the calibration execution device 30 displays coordinate axes (X A superimposed display image of the Y-axis, Y-axis, and Z-axis) is output.
  • the coordinate system ( ⁇ CX ) of all cameras a to n has the lens of each camera as the origin, the optical axis direction in front of the camera as the Z axis, and the coordinate system perpendicular to the Z axis.
  • the Y axis is set downward, and the X axis is set perpendicular to the Z axis and to the right.
  • CLTCX camera-compatible coordinate transformation matrix
  • a camera-compatible coordinate transformation matrix ( CLTCX ) that transforms the camera coordinate system ( ⁇ Cx) of each camera into a calibration coordinate system ( ⁇ CL ) that is a predefined reference coordinate system is created. This is display data that allows you to confirm that the calculation is correct.
  • the configuration may also be such that an identifier indicating the type of axis such as "X-axis”, "Y-axis", "Z-axis”, etc. is also displayed.
  • each axis may be displayed in a different color. It will be done. For example, the X-axis may be displayed in red, the Y-axis in green, and the Z-axis in blue.
  • FIG . 36 shows an example of display data when the correct camera-compatible coordinate transformation matrix ( CLTCX ) has not been calculated in the calibration execution unit 31.
  • the origin of the camera coordinate system ( ⁇ Ca ) of camera a is set at a position away from the lens position of camera a. This means that the calibration execution unit 31 has not calculated the correct camera-compatible coordinate transformation matrix ( CL T Ca ) for camera a.
  • the user can perform calibration by checking the origin position and the direction (tilt) of the seat axis of each camera coordinate system ( ⁇ CX ) displayed together with the three-dimensional images of cameras a to n. It becomes possible to determine whether the calibration process in the unit 31, that is, the calculation process of the camera-compatible coordinate transformation matrix ( CLTCX ) has been successful.
  • the calibration execution device 30 can be configured as an independent device separate from the robot 10, or may be configured integrally with the robot 10. A configuration example of the calibration execution device 30 will be described with reference to FIG. 37.
  • a CPU (Central Processing Unit) 301 functions as a data processing unit that executes various processes according to programs stored in a ROM (Read Only Memory) 302 or a storage unit 308. For example, processing according to the sequence described in the embodiment described above is executed.
  • a RAM (Random Access Memory) 303 stores programs executed by the CPU 301, data, and the like. These CPU 301, ROM 302, and RAM 303 are interconnected by a bus 304.
  • the CPU 301 is connected to an input/output interface 305 via a bus 304, and the input/output interface 305 includes various switches, keyboards, touch panels, mice, microphones, and detection data of various sensors such as user input units, cameras, LiDAR, GPS, etc.
  • An input section 306 consisting of an acquisition section, etc.
  • an output section 307 consisting of a display, a speaker, etc. are connected.
  • the CPU 301 receives commands, situation data, etc. input from the input unit 306, executes various processes, and outputs the processing results to, for example, the output unit 307.
  • a storage unit 308 connected to the input/output interface 305 is made up of, for example, a hard disk, and stores programs executed by the CPU 301 and various data.
  • the communication unit 309 functions as a transmitting/receiving unit for data communication via a network such as the Internet or a local area network, and communicates with an external device.
  • a drive 310 connected to the input/output interface 305 drives a removable medium 311 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card, and records or reads data.
  • a removable medium 311 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory such as a memory card
  • a calibration execution unit that executes sensor calibration processing; a display information generation unit that generates image data that allows confirmation of whether or not the calibration process in the calibration execution unit is successful;
  • the calibration execution unit includes: As the calibration process, a process of calculating a coordinate transformation matrix for converting a sensor coordinate system corresponding to the sensor to another second coordinate system is executed,
  • the display information generation unit includes: A calibration execution device that generates image data that allows visually confirming whether or not a coordinate transformation matrix calculated by the calibration execution unit is a correct coordinate transformation matrix.
  • the second coordinate system is The calibration execution device according to (1), which is a mobile device coordinate system compatible with a mobile device equipped with the sensor.
  • the image data generated by the display information generation section is The calibration execution device according to (1) or (2), which is image data in which an origin and coordinate axes constituting the sensor coordinate system are superimposed and displayed on a three-dimensional image of the sensor.
  • the image data generated by the display information generation section is The calibration execution device according to any one of (1) to (3), which is image data in which an origin and coordinate axes constituting the sensor coordinate system are superimposed and displayed on a three-dimensional image of a mobile device equipped with the sensor.
  • the image data generated by the display information generation section is If the coordinate transformation matrix calculated by the calibration execution unit is correct, The image data is image data in which both the origin position and the coordinate axis direction of the sensor coordinate system with respect to the sensor image in the image data match the original sensor coordinate system, If the coordinate transformation matrix calculated by the calibration execution unit is incorrect, Calibration execution according to any one of (1) to (4), wherein at least one of the origin position and coordinate axis direction of the sensor coordinate system with respect to the sensor image in the image data does not match the original sensor coordinate system.
  • the image data generated by the display information generation section is Image data that is a three-dimensional image of the sensor or a three-dimensional image of a mobile device equipped with the sensor on an external coordinate system different from either the sensor coordinate system or the second coordinate system (1) to (5)
  • the calibration execution device according to any one of the above.
  • the calibration execution device includes: The calibrator according to any one of (1) to (6), further comprising an external coordinate system compatible coordinate transformation matrix calculation unit that transforms the sensor coordinate system to an external coordinate system different from either the sensor coordinate system or the second coordinate system. tion execution device.
  • the external coordinate system compatible coordinate transformation matrix calculation unit Inputting a coordinate transformation matrix for transforming the sensor coordinate system generated by the calibration execution unit into a second coordinate system, and transforming the sensor coordinate system into the external coordinate system using the coordinate transformation matrix (7) Calibration execution device described.
  • the calibration execution device includes: an external device that generates an image or point cloud information on the external coordinate system;
  • the display information generation unit includes: The calibration execution device according to (7) or (8), which generates the image data by inputting an image on the external coordinate system or point cloud information from the external device.
  • the external device is The calibration execution device according to (9), which is a device that generates an image or point cloud information of the sensor or a mobile device equipped with the sensor.
  • the external device is The calibration execution device according to (9) or (10), which is a 3D scanner, a camera, or a depth camera.
  • the calibration execution device includes: The calibration execution device according to any one of (6) to (11), further comprising a relative position calculation unit that calculates a coordinate transformation matrix for converting the second coordinate system to the external coordinate system.
  • the external coordinate system compatible coordinate transformation matrix calculation unit a coordinate transformation matrix that transforms a sensor coordinate system corresponding to the sensor generated by the calibration execution unit into a second coordinate system; inputting a coordinate transformation matrix for converting the second coordinate system calculated by the relative position calculation unit to the external coordinate system;
  • the calibration execution device according to (12) which calculates a coordinate transformation matrix that transforms the sensor coordinate system into the external coordinate system using the two input coordinate transformation matrices.
  • the display information generation unit includes: Using a coordinate transformation matrix that transforms the sensor coordinate system calculated by the external coordinate system compatible coordinate transformation matrix calculation unit to the external coordinate system,
  • the calibration execution device according to (13) which generates image data in which coordinate axes constituting the sensor coordinate system are superimposed and displayed on a three-dimensional image of the sensor or a three-dimensional image of a mobile device equipped with the sensor.
  • the image data generated by the display information generation section is The calibration execution device according to any one of (1) to (14), which is image data in which each axis of coordinate axes constituting the sensor coordinate system is superimposed and displayed as coordinate axes of different colors on a three-dimensional image of the sensor.
  • the calibration execution unit includes: The calibration execution device according to any one of (1) to (15), which executes an online calibration process of sequentially calculating the coordinate transformation matrix.
  • a calibration system comprising a mobile device equipped with a sensor and a calibration execution device,
  • the calibration execution device includes: inputting sensor detection information from the mobile device, calculating a coordinate transformation matrix for converting a sensor coordinate system corresponding to the sensor to another second coordinate system, and outputting the calculated coordinate transformation matrix to the mobile device;
  • the mobile device includes: Execute autonomous movement applying the coordinate transformation matrix input from the calibration execution device,
  • the calibration execution device further includes: A calibration system including a display information generation unit that generates image data that allows checking whether the coordinate transformation matrix has been calculated correctly.
  • a calibration execution method executed by a calibration execution device The calibration execution unit a calibration execution step of inputting sensor detection information and calculating a coordinate transformation matrix for converting the sensor coordinate system corresponding to the sensor into another second coordinate system;
  • the display information generation section A calibration execution method comprising an image data generation step of generating image data that allows visually confirming whether or not the coordinate transformation matrix calculated in the calibration execution step is a correct coordinate transformation matrix.
  • a calibration execution method executed in a calibration system having a mobile device equipped with a sensor and a calibration execution device includes: A coordinate transformation matrix that inputs sensor detection information from the mobile device, calculates a coordinate transformation matrix that transforms a sensor coordinate system corresponding to the sensor into another second coordinate system, and outputs the calculated coordinate transformation matrix to the mobile device.
  • a generation step The mobile device includes: executing an autonomous movement execution step of executing autonomous movement applying the coordinate transformation matrix input from the calibration execution device;
  • the calibration execution device further includes: A calibration execution method, in the coordinate transformation matrix generation step, a display information generation step of generating image data that allows checking whether or not the coordinate transformation matrix has been correctly calculated.
  • a program for executing calibration in a calibration execution device In the calibration execution section, inputting sensor detection information and executing a calibration process for calculating a coordinate transformation matrix for converting the sensor coordinate system corresponding to the sensor into another second coordinate system; In the display information generation section, A program that generates image data that allows visually confirming whether or not the coordinate transformation matrix is a correct coordinate transformation matrix.
  • a program that records the processing sequence can be installed and executed in the memory of a computer built into dedicated hardware, or the program can be installed on a general-purpose computer that can execute various types of processing. It is possible to install and run it.
  • the program can be recorded in advance on a recording medium.
  • the program can be received via a network such as a LAN (Local Area Network) or the Internet, and installed on a recording medium such as a built-in hard disk.
  • a system is a logical collective configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same housing.
  • the configuration generates and displays an image that allows visually confirming whether or not the coordinate transformation matrix calculated in sensor calibration is correct.
  • it includes a calibration execution section that executes sensor calibration, and a display information generation section that generates image data that allows confirmation of whether or not the calibration processing in the calibration execution section is successful.
  • the calibration execution unit calculates a coordinate transformation matrix for converting the sensor coordinate system corresponding to the sensor into another second coordinate system, and the display information generation unit determines whether the calculated coordinate transformation matrix is a correct coordinate transformation matrix.
  • Image data that can be visually confirmed for example, image data in which the origin and coordinate axes constituting the sensor coordinate system are superimposed on a three-dimensional image of the sensor, is generated and displayed.
  • This configuration realizes a configuration that generates and displays an image that allows visually confirming whether or not the coordinate transformation matrix calculated in sensor calibration is correct.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Position Input By Displaying (AREA)

Abstract

センサ・キャリブレーションにおいて算出した座標変換行列が正しいか否かを視覚的に確認可能な画像を生成して表示する。センサのキャリブレーションを実行するキャリブレーション実行部と、キャリブレーション実行部におけるキャリブレーション処理が成功したか否かを確認可能な画像データを生成する表示情報生成部を有する。キャリブレーション実行部は、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出し、表示情報生成部は、算出した座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データ、例えばセンサの三次元画像上にセンサ座標系を構成する原点および座標軸を重畳表示した画像データを生成して表示する。

Description

キャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラム
 本開示は、キャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラムに関する。さらに詳細には、ロボット等の移動装置に装着されたカメラ等のセンサのキャリブレーション処理や、キャリブレーション結果の評価処理を行うキャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラムに関する。
 ロボットや自動運転車両等の移動装置が自律走行を行う場合、周囲の障害物の位置など、周囲状況を把握することが必要となる。
 移動装置が障害物にぶつかることなく安全に目的地まで自律走行するためには、障害物の位置や方向を正確に把握することが必要であり、この処理のためにロボットや自動運転車両等の移動装置にはカメラ等のセンサが装着されている。
 ロボット等の移動装置の多くは複数のセンサを搭載し、これら複数のセンサによる計測データを統合して処理することで、周囲環境の高精度な解析を実現している。
 移動装置に搭載されるセンサとしては、例えばカメラの他、各画素に距離を格納した距離画像を撮影できるデプスカメラ、レーザ光による障害物までの距離を計測するセンサであるLiDAR(Light Detection and Ranging)などがある。
 これらのセンサの各々は個別に周囲環境、例えば障害物までの距離や方向を計測する。障害物の位置や方向は、各センサ独自の座標系を用いて計測される。
 すなわち、カメラは例えばカメラのレンズ位置を原点としたカメラ座標系を用いて、障害物の座標位置を求める。
 また、LiDARは、例えばLiDAR内のレーザ光出力位置を原点としたLiDAR座標系を用いて、障害物の座標位置を求める。
 さらに、ロボット自体にもロボット独自のロボット座標系がある。
 ロボット座標系は、例えばロボットの中心位置等を原点とした座標系等が用いられる。ロボットが安全走行するためには、このロボット座標系上の障害物位置を正確に算出することが必要となる。
 例えばデプスカメラの撮影画像を用いて算出したデプスカメラ座標系(Σ)における障害物Pの位置(デプスカメラ座標位置(x,y,z))や、LiDARによって算出されたLiDAR座標系(Σ)における障害物Pの位置(LiDAR座標位置(x,y,z))等を、ロボット座標系(Σ)における障害物Pの位置(ロボット座標位置(x,y,z))に変換する座標変換処理を行うことが必要となる。
 なお、本明細書では座標系を示す記号として(Σ)を用いる。(Σ)は、機器Aの座標系を意味する。
 座標変換処理には、座標変換行列(T)が利用される。
 例えば、空間上のある点Pのカメラ座標系(Σ)の座標位置(x,y,z)を、ロボット座標系(Σ)の座標位置(x,y,z)に変換する座標変換処理には、座標変換行列が利用される。
 同様に、点PのLiDAR座標系(Σ)の座標位置(x,y,z)を、ロボット座標系(Σ)の座標位置(x,y,z)に変換する座標変換処理には、座標変換行列を利用する。
 なお、座標変換行列は、座標系(Σ)上の点Pの位置座標であるP=(x,y,z)を、座標系(Σ)上の点Pの位置座標であるP=(x,y,z)に変換する処理に適用する行列である。
 ここで、Pは、座標系Aにおける点Pの位置座標(x,y,z)を示し、Pは、座標系Bにおける点Pの位置座標(x,y,z)を意味する。
 しかし、例えばロボットを多数、製造する場合、製造ロボット各々の部品の加工精度や、組み立て時の組付けの精度、センサ固有の個体差等が存在する。従って、各センサ対応の座標変換行列についてもロボット各々固有の座標変換行列を算出することが必要となる。
 すなわち、1台のロボットごとにそのロボットに装着されたセンサ単位で固有の座標変換行列を決定することが必要となる。
 このようなロボットとセンサとの組み合わせ対応の固有の座標変換行列を算出することで、センサ検出情報に基づく高精度な周囲状況解析、例えばロボットから障害物までの距離や方向を解析することが可能となる。
 ロボットとセンサとの組み合わせ対応の固有の座標変換行列を算出する処理は、いわゆるセンサのキャリブレーション処理として行われる。
 なお、センサ・キャリブレーション処理には、センサ検出データの校正処理や、調整処理として実行される様々な処理が含まれる。例えばセンサの取り付け位置や角度の調整、センサ対応パラメータの調整等の処理もキャリブレーション処理である。
 カメラのキャリブレーションとして、白黒パターンからなるチェスボードの撮影画像を利用して行う処理が知られている。この処理は、zhangの方法として、例えば非特許文献1(Zhang Zhengyou. A flexible new technique for camera calibration.IEEE Transactions on pattern analysis and machine intelligence 22.11,2000.)に記載されている。
 前述したように、ロボットとセンサとの組み合わせ対応の固有の座標変換行列を算出する処理も、センサのキャリブレーション処理の一つとして行われる。
 カメラ座標系をロボット座標系に変換する座標変換行列の算出処理を行う場合、キャリブレーションが成功したか否か、すなわち正しい座標変換行列が算出されたか否かを確認するキャリブレーション成否判定を行うことが必要となる。
 しかし、従来の座標変換行列の成否判定処理の多くは、例えば、座標変換行列を適用して得られる座標の誤差を示す数値データを算出し、算出した数値と規定のしきい値とを比較する処理として実行されている。
 このような誤差を示す数値データを用いた処理では、しきい値の設定次第でキャリブレーションの成否が判断され、誤ったしきい値設定による誤判定が発生する可能性がある。また、誤差の発生した要因や誤差を解消するための改善策を導き出すことが困難になるという問題がある。
Zhang Zhengyou. A flexible new technique for camera calibration. IEEE Transactions on pattern analysis and machine intelligence 22.11,2000. Dhallet al.Ankit,. LiDAR-camera calibration using 3D-3D point correspondences. arXiv preprint arXiv:1705.09785, 2017. Banerjeeet al.Koyel,. Online camera lidar fusion and object detection on hybrid data for autonomous driving. 2018 IEEE Intelligent Vehicles Symposium (IV). IEEE, 2018. PusztaiIvn Eichhardt, and Levente Hajder.Zoltn,. Accurate calibration of multi-lidar-multi-camera systems. Proceedings of the IEEE International Conference on Computer Vision Workshops., 2017. Irene FassiLegnaniGiovanni. Hand to sensor calibration: A geometrical interpretation of the matrix equation AX =XB. Journal of Robotic Systems, 2005. LegnaniGiovanni. Optimization of hand-to-camera calibration using geometrical interpretation of matrix equation AX = XB. International Journal of Robotics and Automation, 2018. KamRyeol, et al.Hyeong. Rviz: a toolkit for real domain data visualization. Telecommunication Systems 60.2, 2015. TrevorJB, et al.Alexander. Efficient organized point cloud segmentation with connected components. Semantic Perception Mapping and Exploration (SPME), 2012
 本開示は、例えば上記問題点に鑑みてなされたものであり、ロボットや自動運転車両などの移動装置に装着したカメラ等のセンサのキャリブレーション処理として実行される座標変換行列の算出処理において、正しい座標変換行列が算出されたか否かを判断可能とした可視化データを生成して表示部に表示することで、キャリブレーションが成功したか否かを視覚的に判断することを可能とし、また誤差の発生レベルについても容易に把握可能としたキャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラムを提供することを目的とする。
 本開示の第1の側面は、
 センサのキャリブレーション処理を実行するキャリブレーション実行部と、
 前記キャリブレーション実行部におけるキャリブレーション処理が成功したか否かを確認可能な画像データを生成する表示情報生成部を有し、
 前記キャリブレーション実行部は、
 前記キャリブレーション処理として、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出する処理を実行し、
 前記表示情報生成部は、
 前記キャリブレーション実行部が算出した座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データを生成するキャリブレーション実行装置にある。
 さらに、本開示の第2の側面は、
 センサを装着した移動装置と、キャリブレーション実行装置を有するキャリブレーション・システムであり、
 前記キャリブレーション実行装置が、
 前記移動装置からセンサ検出情報を入力して、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出し、算出した座標変換行列を前記移動装置に出力し、
 前記移動装置が、
 前記キャリブレーション実行装置から入力した座標変換行列を適用した自律移動を実行し、
 前記キャリブレーション実行装置は、さらに、
 前記座標変換行列が正しく算出されたか否かを確認可能な画像データを生成する表示情報生成部を有するキャリブレーション・システムにある。
 さらに、本開示の第3の側面は、
 キャリブレーション実行装置が実行するキャリブレーション実行方法であり、
 キャリブレーション実行部が、
 センサの検出情報を入力し、該センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出するキャリブレーション実行ステップと、
 表示情報生成部が、
 前記キャリブレーション実行ステップにおいて算出した前記座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データを生成する画像データ生成ステップを有するキャリブレーション実行方法にある。
 さらに、本開示の第4の側面は、
 センサを装着した移動装置と、キャリブレーション実行装置を有するキャリブレーション・システムにおいて実行するキャリブレーション実行方法であり、
 前記キャリブレーション実行装置が、
 前記移動装置からセンサ検出情報を入力して、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出し、算出した座標変換行列を前記移動装置に出力する座標変換行列生成ステップと、
 前記移動装置が、
 前記キャリブレーション実行装置から入力した座標変換行列を適用した自律移動を実行する自律移動実行ステップを実行し、
 前記キャリブレーション実行装置は、さらに、
 前記座標変換行列生成ステップにおいて、前記座標変換行列が正しく算出されたか否かを確認可能な画像データを生成する表示情報生成ステップを実行するキャリブレーション実行方法にある。
 さらに、本開示の第5の側面は、
 キャリブレーション実行装置において、キャリブレーションを実行させるプログラムであり、
 キャリブレーション実行部に、
 センサの検出情報を入力させて、該センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出するキャリブレーション処理を実行させ、
 表示情報生成部に、
 前記座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データを生成させるプログラムにある。
 なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
 本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 本開示の一実施例の構成によれば、センサ・キャリブレーションにおいて算出した座標変換行列が正しいか否かを視覚的に確認可能な画像を生成して表示する構成が実現される。
 具体的には、例えば、センサのキャリブレーションを実行するキャリブレーション実行部と、キャリブレーション実行部におけるキャリブレーション処理が成功したか否かを確認可能な画像データを生成する表示情報生成部を有する。キャリブレーション実行部は、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出し、表示情報生成部は、算出した座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データ、例えばセンサの三次元画像上にセンサ座標系を構成する原点および座標軸を重畳表示した画像データを生成して表示する。
 本構成により、センサ・キャリブレーションにおいて算出した座標変換行列が正しいか否かを視覚的に確認可能な画像を生成して表示する構成が実現される。
 なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
本開示の移動装置の一例であるロボットの構成例について説明する図である。 ロボットに装着されたセンサの座標系とロボット座標系について説明する図である。 異なる座標系間の座標変換を行う座標変換行列について説明する図である。 異なる座標系間の座標変換を行う座標変換行列について説明する図である。 製造ロボットの個体差の例について説明する図である。 設計と異なる位置や姿勢でセンサが取り付けられた場合に、設計上のセンサ装着位置や姿勢に基づいて算出される座標変換行列を用いた処理を行った場合の問題点について説明する図である。 ロボット座標系(Σ)と、LiDAR座標系(ΣL1)と、ロボットaのLiDAR座標系(ΣL2)を併せて示した図である 1台のロボットごとに、そのロボットに装着されたセンサ単位で固有の座標変換行列を算出するキャリブレーション処理が必要となる理由について説明する図である。 本開示のキャリブレーション実行装置を含むキャリブレーション・システムの一構成例について説明する図である。 本開示のキャリブレーション実行装置を含むキャリブレーション・システムの一構成例について説明する図である。 ロボットに装着されたセンサ各々の座標系であるセンサ座標系と、ロボット座標系、およびスキャナ座標系について説明する図である。 キャリブレーション実行装置の詳細構成について説明する図である。 ロボットが長方形の壁を持つ部屋内を走行している場合にLiDARが検出する点群()の例について説明する図である。 各センサの座標系をロボット座標系に変換する座標変換行列()の算出処理と座標変換行列()の行列要素の意味について説明する図である。 ロボットが長方形の壁を持つ部屋内を走行している場合のLiDARが検出する点群()の一部と、3Dスキャナが検出する点群()の一部を示した図である。 相対位置算出部が実行する処理の具体例について説明する図である。 表示情報生成部(可視化データ生成部)が生成し、表示部に出力する表示データの一例を示す図である。 表示情報生成部(可視化データ生成部)が生成し、表示部に出力する表示データの一例を示す図である。 視点位置を変更した場合の表示部の表示画像の例について説明する図である。 実施例2のキャリブレーション実行装置を含むオンライン・キャリブレーション・システムの一構成例について説明図である。 実施例2のキャリブレーション実行装置を含むオンライン・キャリブレーション・システムの一構成例について説明図である。 ロボットに装着されたセンサ各々の座標系であるセンサ座標系と、ロボット座標系、および固定デプスカメラ座標系、チェスボード座標系、地図座標系について説明する図である。 実施例2において利用される座標系と座標変換行列の関係性の一例について説明する図である。 実施例2のキャリブレーション実行装置の詳細構成について説明する図である。 実施例3のキャリブレーション実行装置を含むオンライン・キャリブレーション・システムの一構成例について説明する図である。 実施例3のキャリブレーション実行装置を含むオンライン・キャリブレーション・システムの一構成例について説明する図である。 ロボットBに装着されたセンサ各々の座標系であるセンサ座標系と、ロボットB座標系、および地図座標系について説明する図である。 実施例3において利用される座標系と座標変換行列の関係性の一例について説明する図である。 実施例3において利用される座標系と座標変換行列の関係性の一例について説明する図である。 実施例3のキャリブレーション実行装置の詳細構成と処理について説明する図である。 実施例3のキャリブレーション実行装置の詳細構成と処理について説明する図である。 実施例4のキャリブレーション処理について説明する図である。 実施例4のキャリブレーション実行装置を含むキャリブレーション・システムの一構成例について説明する図である。 実施例4のキャリブレーション実行装置の詳細構成と処理について説明する図である。 表示情報生成部(可視化データ生成部)が生成し、表示部に出力する表示データの一例を示す図である。 表示情報生成部(可視化データ生成部)が生成し、表示部に出力する表示データの一例を示す図である。 本開示のキャリブレーション実行装置のハードウェア構成例について説明する図である。
 以下、図面を参照しながら本開示のキャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
 1.センサのキャリブレーション処理の概要と問題点について
 2.(実施例1)キャリブレーション実行装置の構成と処理について
 3.(実施例2)オンライン・キャリブレーションを実行するキャリブレーション実行装置の構成と処理について
 4.(実施例3)他の移動装置の観測情報を利用したオンライン・キャリブレーションを実行するキャリブレーション実行装置の構成と処理について
 5.(実施例4)複数の固定カメラのキャリブレーションを実行する実施例について
 6.キャリブレーション実行装置のハードウェア構成例について
 7.本開示の構成のまとめ
  [1.センサのキャリブレーション処理の概要と問題点について]
 まず、センサのキャリブレーション処理の概要と問題点について説明する。
 前述したように、ロボットや自動運転車両等の移動装置が障害物にぶつかることなく安全に目的地まで走行するためには、障害物の位置や方向を正確に把握することが必要である。
 この安全走行のため、自律型移動装置の多くは複数のセンサを搭載し、複数センサの計測データの統合処理により周囲環境の高精度な解析を実現している。
 ロボットや自動運転車両等の移動装置が搭載するセンサには、例えばカメラや、レーザ光による障害物までの距離を計測するセンサであるLiDAR(Light Detection and Ranging)などがある。
 前述したように、これらの複数のセンサ各々は個別に周囲環境、例えば障害物までの距離や方向を計測する。障害物の位置や方向は、各センサ独自の座標系を用いて計測する。カメラは、例えばカメラのレンズ位置を原点としたカメラ座標系、またLiDARは、例えばLiDAR内のレーザ光出力位置を原点としたLiDAR座標系を用いて、障害物の座標位置を求める。
 さらに、ロボット自体にもロボット固有のロボット座標系がある。
 ロボット座標系は、例えばロボットの中心位置等を原点とした座標系等が用いられる。あるいは、ロボット接地面上のある点、例えばロボット中心位置からの垂線とロボット接地面との交点を原点とした座標系等が用いられる。ロボットが安全に走行するためには、このロボット座標系における障害物の位置情報を正確に算出することが必要となる。
 図1に、本開示の移動装置の一例であるロボット10の例を示す。
 図1に示すロボット10は、センサ検出情報に基づいて周囲環境を解析し、自律的に移動するロボットである。
 図1に示すように、ロボット10には、複数の異なるセンサ11~14が装着されている。すなわち、カメラ11、デプスカメラ12、LiDAR13、IMU14、これらのセンサが装着されている。
 なお、デプスカメラ12は、例えばステレオカメラ等のオブジェクト距離を検出するカメラである。LiDAR13は、レーザ光による障害物までの距離を計測するセンサである。IMUは、慣性計測装置(Inertial Measurement Unit)であり、ロボット10の加速度、角速度等を検出するセンサである。
 これらの各センサ11~14は、いずれもセンサ独自の座標系に基づくセンサ検出値、例えば障害物の座標位置などをセンサ独自の座標系に基づいて算出する。
 図2に各センサ11~14対応の座標系とロボット座標系の例を示す。図2には以下の各座標系を示している。
 (R)ロボット座標系(Σ
 (C)カメラ座標系(Σ
 (D)デプスカメラ座標系(Σ
 (L)LiDAR座標系(Σ
 (I)IMU座標系(Σ
 なお、前述したように、本明細書では座標系を示す記号として(Σ)を用いる。(Σ)は、機器Aの座標系を意味する。
 (R)ロボット座標系(Σ)は、例えばロボット10の中心位置からの垂線とロボット接地面との交点を原点とし、ロボット10の前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 (C)カメラ座標系(Σ)は、例えばカメラ11のレンズ位置を原点とし、カメラ11の前方光軸方向をZ軸、下側面方向をY軸、右方向をX軸とした座標系である。
 (D)デプスカメラ座標系(Σ)は、例えばデプスカメラ12の重心位置を原点とし、デプスカメラ12の前方光軸方向をZ軸、下側面方向をY軸、右方向をX軸とした座標系である。
 (L)LiDAR座標系(Σ)は、例えばLiDAR13の重心位置を原点とし、LiDAR10前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 (I)IMU座標系(Σ)は、例えばIMU14の重心位置を原点とし、IMU10の前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 なお、この図2に示すロボットやセンサの各座標系の原点位置や座標軸方向の設定は一例であり、この図2に示す座標系の設定に限らず、様々な設定が可能である。
 このように、ロボット10のロボット座標系や、各センサの座標系はそれぞれ異なっており、例えばデプスカメラ12等のセンサは障害物の位置として、デプスカメラ座標系(Σ)における障害物の座標位置を算出することになる。
 ロボット10は、このデプスカメラ座標系(Σ)における障害物の座標位置に基づいて、ロボット座標系(Σ)における障害物の座標位置を算出して、ロボット10から障害物までの距離や方向を取得して障害物に接触しないような走行ルートを選択して走行するといった制御を行う。
 すなわち、例えばデプスカメラ12の撮影画像を用いて算出したカメラ座標系(Σ)における障害物Pの位置(カメラ座標位置(x,y,z))や、LiDAR13によって算出されたLiDAR座標系(Σ)における障害物Pの位置(LiDAR座標位置(x,y,z))について、ロボット座標系(Σ)における障害物Pの位置(ロボット座標位置(x,y,z))に変換する座標変換処理を行うことが必要となる。
 座標変換処理には座標変換行列(T)が利用される。
 例えば、空間上のある点Pのデプスカメラ座標系(Σ)の座標位置(x,y,z)を、ロボット座標系(Σ)の座標位置(x,y,z)に変換する座標変換処理には、座標変換行列()が利用される。
 同様に、点PのLiDAR座標系(Σ)の座標位置(x,y,z)を、ロボット座標系(Σ)の座標位置(x,y,z)に変換する座標変換処理には、座標変換行列()を利用する。
 なお、座標変換行列は、座標系(Σ)上の点Pの位置座標であるP=(x,y,z)を、座標系(Σ)上の点Pの位置座標であるP=(x,y,z)に変換する処理に適用する行列である。
 ここで、Pは、座標系Aにおける点Pの位置座標(x,y,z)を示し、Pは、座標系Bにおける点Pの位置座標(x,y,z)を意味する。
 すなわち、以下の関係式が成立する。
 (P)=()(P)
 (x,y,z,1)=()(x,y,z,1)
 ここで、右上のTは転置を表す。後で説明するように座標変換行列は4行4列の同次変換行列である。そのため点Pの位置座標を座標変換するときの計算は、4個目の要素として1を追加した4次元の列ベクトルである同次座標の形で積を計算する。
 三次元空間での同次変換行列である座標変換行列は、具体的には、以下の(式1)に示す4行4列の同次変換行列である。
Figure JPOXMLDOC01-appb-M000001
 上記式中に示すように、この4行4列の行列中、左上3行3列が角度を表す回転行列、右上3行1列は並進を表す行列、下の1行は(0,0,0,1)からなる行列である。
 3行3列の回転行列は左から各列がx軸,y軸,z軸の方向をあらわす三次元の列ベクトルで長さが1の単位ベクトルである。この同次変換行列を掛け合わせることで次々と座標変換を実行することができる。
 座標変換行列の左上の添え字(A)は、変換後の座標系に相当する基準座標系、右下の添え字(B)は、変換対象とする座標系である。
 上述したように、座標変換行列は、座標系(Σ)上の点Pの位置座標である(P)=(x,y,z)を、座標系(Σ)上の点Pの位置座標である(P)=(x,y,z)に変換する処理に適用する行列である。
 図3、図4を参照して、異なる座標系間の座標変換を行う座標変換行列について説明する。
 図3の左側には、LiDAR13を装着したロボット10を示している。
 ロボット10は、ロボット固有のロボット座標系(Σ)を有し、LiDAR13は、LiDAR固有のLiDAR座標系(Σ)を有している。
 図3の右側には、ロボット座標系(Σ)と、LiDAR座標系(Σ)を併せて示している。
 ロボット座標系(Σ)は、例えばロボット10の中心位置からの垂線とロボット接ロボット接地面との交点を原点(OR)とした実線で示す座標系である。一方、LiDAR座標系(Σ)は、LiDAR13の重心位置を原点(OL)とした点線で示す座標系である。
 ロボット10の中心位置と、LiDAR13の重心位置は空間上の異なる位置にあるため、実線で示すロボット座標系(Σ)と、点線で示すLiDAR座標系(Σ)は、異なる原点を有する異なる座標系となる。
 例えば、図3の右側の図に示す三次元空間上のある点Pについて、実線で示すロボット座標系(Σ)と、点線で示すLiDAR座標系(Σ)各々の座標系における三次元位置座標(x,y,z)は、図に示すように、以下の通りである。
 LiDAR座標系(Σ)上の点Pの位置座標(P)=(z,y,z
 ロボット座標系(Σ)上の点Pの位置座標(P)=(z,y,z
 次に、図4を参照して、座標変換行列を適用した座標変換処理について説明する。
 図4「(a)座標変換行列の定義」に示すように、
 LiDAR座標系(Σ)上の点Pの位置座標(P)=(z,y,z)を、
 ロボット座標系(Σ)上の点Pの位置座標(P)=(z,y,z)に変換する座標変換行列が、
 座標変換行列=(
 である。
 図4「(b)座標変換行列を適用した座標変換処理」に示すように、
 (z,y,z,1)=()(z,y,z,1)
 上記の座標変換行列()を適用した算出式に従って、
 LiDAR座標系(Σ)上の点Pの位置座標(P)=(z,y,z)から、
 ロボット座標系(Σ)上の点Pの位置座標(P)=(z,y,z)を算出することができる。
 このような処理によって、ロボット10は、LiDAR座標系(Σ)上の障害物の座標位置から、ロボット座標系(Σ)における障害物の座標位置を算出して、ロボット10から障害物までの距離や方向を取得して障害物に接触しないような走行ルートを選択して走行するといった制御を行うことができる。
 座標変換行列は、例えば同じ構成を持つロボットを多数、製造する場合、そのロボットに対する各センサの装着位置や角度などの設計情報に基づいて決定することが可能である。しかし、製造するロボット各々の部品の加工精度や、組み立て時の組付けの精度、センサ固有の個体差等が存在するため、ロボット各々固有の調整処理が必要となる。
 すなわち、1台のロボットごとに、そのロボットに装着されたセンサ単位で固有の座標変換行列を決定することが必要となる。
 本開示の処理は、このロボットとセンサの組み合わせ固有の座標変換行列を算出する処理をセンサ・キャリブレーション処理として実行する。
 図5は、製造ロボットの個体差の例について説明する図である。
 図5(1)は、ロボットに対するLiDARの設計上の装着位置と姿勢(傾き)の一例を示す図である。
 設計上は、ロボット10の上面中央位置に垂直にLiDAR13を装着する仕様であるとする。
 図5(2)は、実際に製造されたロボットのLiDARの装着位置と姿勢(傾き)の例を示している。
 例えばロボットaは、LiDARの装着位置がロボットの上面中央からやや左後方にずれた位置にあり、さらに傾いて取り付けられている。
 なお、図では、より理解しやすくするため、設計と実際との構成のずれを強調して示している。
 図5(2)に示すロボットb~dも、それぞれLiDARの装着位置がばらばらであり、傾きも様々な状態となっている。
 このように、製造するロボット各々の部品の加工精度や、組み立て時の組付けの精度、センサ固有の個体差等が存在するため、ロボット各々固有の調整処理として、センサ・キャリブレーションを行うことが必要となる。
 具体的には、1台のロボットごとに、そのロボットに装着されたセンサ単位で固有の座標変換行列を決定することが必要となる。
 設計と異なる位置や姿勢でセンサが取り付けられたロボットに、設計上のセンサ装着位置や姿勢に基づいて算出される座標変換行列を用いた処理を行うと、例えば障害物Pのロボットに対する正しい相対位置や方向を算出することができなくなる。
 図6以下を参照して、このような状況が発生する理由について説明する。
 図6には、以下の各図を示している。
 (1)設計上のLiDAR装着位置、姿勢対応のLiDAR座標系(ΣL1
 (2)製造されたロボットaのLiDAR装着位置、姿勢対応のLiDAR座標系(ΣL2
 (3)ロボット座標系の原点(OR)を一致させた三次元空間に2つの座標系を併せて示した図
 図6(1)に示すロボットは、図5(1)に示す設計上のロボット構成であり、ロボットの上面中央位置に垂直にLiDARが装着されている。
 一方、図6(2)に示すロボットaは、図5に示すロボットaに相当する。ロボットaは、LiDARの装着位置がロボットの上面中央からやや左後方にずれた位置にあり、さらに傾いて取り付けられている。
 図6(1),(2)のLiDERには、それぞれLiDAR座標系を示している。
 (1)に示す設計上のLiDAR座標系(ΣL1)は、設計上のLiDARの重心を原点(OL1)として、LiDARの姿勢(傾き)に応じた3軸(xyz軸)、すなわち図に示すXL1軸、YL1軸、ZL1軸を有する座標系である。
 一方、(2)に示すロボットaのLiDAR座標系(ΣL2)は、ロボットaのLiDARの重心を原点(OL2)として、LiDARの姿勢(傾き)に応じた3軸(xyz軸)、すなわち図に示すXL2軸、YL2軸、ZL2軸を有する座標系である。
 (1)に示す設計上のLiDAR装着位置、姿勢対応のLiDAR座標系(ΣL1と、(2)示すロボットaのLiDAR装着位置、姿勢対応のLiDAR座標系(ΣL2とでは、原点位置が異なり、さらに各座標軸の方向も異なる。
 図6(3)は、ロボット座標系の原点(OR)を一致させた三次元空間に2つの座標系を併せて示した図である。
 この(3)に図示すように、設計上のLiDAR座標系(ΣL1)と、ロボットaのLiDAR座標系(ΣL2)とでは、原点位置が異なり、さらに各座標軸の方向も異なる。
 図7は、図6(3)に示した設計上のLiDAR座標系(ΣL1)と、ロボットaのLiDAR座標系(ΣL2)に加えて、さらに、ロボット10のロボット座標系(Σ)を併せて示した図である。
 ロボット座標系は、例えばロボット接地面上のある点、例えばロボット中心位置からの垂線とロボット接地面との交点を原点(OR)とした座標系である。
 図7の右側の図に示す三次元空間上のある点Pについて、
 実線で示すロボット座標系(Σ)、
 設計上のLiDARの位置、姿勢に対応する設計上のLiDAR座標系(ΣL1)、
 ロボットaのLiDARの位置、姿勢に対応するLiDAR座標系(ΣL2)、
 これら3つの座標系における三次元位置座標(x,y,z)は、図に示すように、以下の通りである。
 ロボット座標系(Σ)上の点Pの位置座標:(P)=(z,y,z
 設計上のLiDAR座標系(ΣL1)の位置座標:(L1P)=(zL1,yL1,zL1
 ロボットaのLiDAR座標系(ΣL2)の位置座標:(L2P)=(zL2,yL2,zL2
 次に、図8を参照して、1台のロボットごとに、そのロボットに装着されたセンサ単位で固有の座標変換行列を算出するキャリブレーション処理が必要となる理由について説明する。
 まず、図8(a)を参照して、ロボットaに設計上のLiDAR座標系(ΣL1)対応の座標変換行列が適用できない理由について説明する。
 設計上のLiDAR座標系(ΣL1)対応の座標変換行列L1は、設計上のLiDAR座標系(ΣL1)上の点Pの位置座標:(L1P)=(zL1,yL1,zL1)を、ロボット座標系(Σ)上の点Pの位置座標:(P)=(z,y,z)に変換する座標変換行列であり、
 (z,y,z,1)=(L1)(zL1,yL1,zL1,1)、すなわち、
 (P)=(L1)(L1P)
 上記関係式は成立する。
 しかし、
 設計上のLiDAR座標系(ΣL1)の位置座標:(L1P)=(zL1,yL1,zL1
 ロボットaのLiDAR座標系(ΣL2)の位置座標:(L2P)=(zL2,yL2,zL2
 これら2つの位置座標は異なっている。
 従って、設計上のLiDAR座標系(ΣL1)対応の座標変換行列(L1)を利用しても、ロボットaのLiDAR座標系(ΣL2)の位置座標:(L2P)=(zL2,yL2,zL2)から、ロボット座標系(Σ)上の点Pの位置座標:(P)=(z,y,z)を算出することはできない。
 具体的には、
 (z,y,z,1)=(L1)(zL2,yL2,zL2,1)
 上記式は成立しない。すなわち、
 (P)=(L1)(L2P)
 上記関係式は成立しない。
 従って、図8(2)に示すキャリブレーション処理、すなわち、1台のロボットごとに、そのロボットに装着されたセンサ単位で固有の座標変換行列を算出するキャリブレーション処理が必要となる。
 必要となるキャリブレーション処理は、ロボットaのLiDAR座標系(ΣL2)の位置座標:(L2P)=(zL2,yL2,zL2)から、ロボット座標系(Σ)上の点Pの位置座標:(P)=(z,y,z)を算出するための固有の座標変換行列(L2)を算出する処理である。
 具体的には、
 (z,y,z,1)=(L2)(zL2,yL2,zL2,1)
 上記式が成立する。すなわち、
 (P)=(L2)(L2P)
 上記関係式が成立するロボットaとロボットaに装着されたセンサの組み合わせ固有の座標変換行列(L2)を算出するキャリブレーション処理を行うことが必要となる。
 本開示のキャリブレーション実行装置は、このようにロボットとロボットに装着されたセンサの組み合わせ固有の座標変換行列を算出するキャリブレーション処理を実行し、さらに、そのキャリブレーション結果として算出した座標変換行列が正しく算出されているか否かを視覚的に確認することを可能とした構成を有する。
 以下、本開示の装置の構成、および処理を実行する複数の実施例について、順次、説明する。
  [2.(実施例1)キャリブレーション実行装置の構成と処理について]
 以下、本開示の実施例1に係るキャリブレーション実行装置の構成と処理について説明する。
 図9は、本開示のキャリブレーション実行装置30を含むキャリブレーション・システム50の一構成例を示す図である。
 図9に示すキャリブレーション・システム50は、ロボット10、3Dスキャナ20、キャリブレーション実行装置30を有するシステムである。
 ロボット10は、自律移動型ロボットであり、複数のセンサを搭載している。なお、ロボット10は、本開示の移動装置の一例であり、本開示の移動装置は、ロボット以外にも例えば自動運転車両等、各種の移動体を含む。
 3Dスキャナ20は、周囲オブジェクトの三次元形状を計測する。3Dスキャナ20には、カラーカメラが内蔵され三次元形状に加えて色情報も取得することができる。3Dスキャナ20は、周囲360度にレーザ光線を照射して、その反射光を入力する走査処理を行い、周囲オブジェクトの距離を測距して周囲環境の三次元形状を取得する。
 ロボット10は、先に図1を参照して説明したロボット10と同様のロボットであり、センサ検出情報に基づいて周囲環境を解析し、自律的な移動を行うロボットである。
 図9に示すように、ロボット10は、複数の異なるセンサ11~14を装着している。すなわち、カメラ11、デプスカメラ12、LiDAR13、IMU14、これらのセンサが装着されている。
 デプスカメラ12は、例えばステレオカメラ等のオブジェクト距離を検出するカメラである。LiDAR13は、前述したようにレーザ光による障害物までの距離を計測するセンサである。IMUは、慣性計測装置(Inertial Measurement Unit)であり、ロボット10の加速度、角速度等を検出するセンサである。
 なお、図9に示すロボット10は、複数種類の異なるセンサとして、カメラ11、デプスカメラ12、LiDAR13、IMU14、これらのセンサを装着しているが、ロボット10に装着されるセンサの種類はこれらに限られるものではなく、その他の様々な種類のセンサを装着した構成であってもよい。
 また、本開示の処理は、複数種類のセンサを装着した構成のみならず、1つのセンサを装着した構成に対しても適用可能である。
 前述したように、図9に示すロボット10に装着されたセンサ11~14は、いずれもセンサ独自の座標系に基づくセンサ検出値、例えば障害物の座標位置などをセンサ独自の座標系に基づいて算出する。
 キャリブレーション実行装置30は、例えばPC等のデータ処理装置によって構成可能である。
 キャリブレーション実行装置30は、ロボット10や、3Dスキャナ20と通信可能な構成を有する。
 キャリブレーション実行装置30は、ロボット10に装着されたセンサ11~14各々のセンサ検出情報を入力し、さらに、3Dスキャナ20からスキャナ検出情報を入力する。
 キャリブレーション実行装置30は、これらの入力情報に基づいて、ロボット10に装着されたセンサ11~14各々のキャリブレーション処理を実行する。具体的には、センサ対応の座標変換行列を算出する処理を実行する。センサ対応の座標変換行列とは、センサ固有の座標系上の位置座標をロボット座標系上の位置座標に変換する座標変換行列である。
 キャリブレーション実行装置30は、さらに、キャリブレーション結果として算出した座標変換行列が正しく算出されているか否かを視覚的に確認することを可能としたキャリブレーション結果確認用の可視化データである表示データを生成して表示部に出力する。
 キャリブレーション結果確認用の可視化データは、センサ対応の座標変換行列が正しく算出されたか否かを確認可能とした画像データである。この画像データの具体例については後述する。
 図9に示すように、キャリブレーション実行装置30は、ロボット10から各センサの検出情報を入力し、さらに、3Dスキャナ20からスキャナ検出情報(周囲の三次元形状情報)を入力する。
 キャリブレーション実行装置30は、これらの入力情報を利用してロボット10のセンサ各々に対応する座標変換行列を算出するキャリブレーション処理を実行する。
 キャリブレーション実行装置30によって実行されたキャリブレーション処理結果として算出されたセンサ各々に対応する座標変換行列は、ロボット10に送信され、ロボット10内の記憶部に格納される。
 ロボット10は、自律移動を行う際に、記憶部に格納されたセンサ対応の座標変換行列を用いて、各センサ固有の座標系上の位置座標をロボット座標系上の位置座標に変換し、変換後のロボット座標系上の位置座標に基づいて、ロボット10に対する周囲障害物の相対位置を解析して、障害物への衝突や接触を避けるような走行ルートを選択して自律移動を行う。
 なお、図9に示すキャリブレーション・システム50は、ロボット10と、キャリブレーション実行装置30を別の装置として構成したシステム例であるが、例えば、図10に示すように、ロボット10とキャリブレーション実行装置30を一体化したキャリブレーション・システム50bのような構成としてもよい。
 図10に示す構成では、ロボット10内のキャリブレーション実行装置30が、ロボット10に装着されたセンサ各々に対応する座標変換行列を算出するキャリブレーション処理を実行する。
 次に、図11を参照して、ロボット10に装着されたセンサ、すなわち、カメラ11、デプスカメラ12、LiDAR13、IMU14、これらのセンサ各々の座標系であるセンサ座標系と、ロボット10のロボット座標系、および3Dスキャナ20の座標系であるスキャナ座標系について説明する。
 図11には以下の各座標系を示している。
 (R)ロボット座標系(Σ
 (C)カメラ座標系(Σ
 (D)デプスカメラ座標系(Σ
 (L)LiDAR座標系(Σ
 (I)IMU座標系(Σ
 (S)スキャナ座標系(Σ
 (R)ロボット座標系(Σ)は、例えばロボット10の中心位置からの垂線とロボット接地面との交点を原点とし、ロボット10の前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 (C)カメラ座標系(Σ)は、例えばカメラ11のレンズ位置を原点とし、カメラ11の前方光軸方向をZ軸、下側面方向をY軸、右方向をX軸とした座標系である。
 (D)デプスカメラ座標系(Σ)は、例えばデプスカメラ12の重心位置を原点とし、デプスカメラ12の前方光軸方向をZ軸、下側面方向をY軸、右方向をX軸とした座標系である。
 (L)LiDAR座標系(Σ)は、例えばLiDAR13の重心位置を原点とし、LiDAR10前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 (I)IMU座標系(Σ)は、例えばIMU14の重心位置を原点とし、IMU10の前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 (S)スキャナ座標系(Σ)は、3Dスキャナ20の重心位置を原点とし、水平面の直交軸をXY軸とし、垂直上方に伸びる軸をZ軸とした座標系である。
 なお、この図11に示すロボットやセンサ、および3Dスキャナ各々の座標系の原点や各座標軸の方向は一例であり、各座標系の原点や座標軸方向は、図11に示す設定に限らず、様々な設定が利用可能である。
 図11に示すように、ロボット10のロボット座標系、各センサ11~14の座標系、3Dスキャナ20の各座標系はそれぞれ異なっている。
 先に説明したように、例えばロボット10の各センサは、各センサ固有の座標系を用いて、障害物の座標位置を取得する。
 例えば、デプスカメラ12は障害物の位置として、デプスカメラ座標系(Σ)における障害物の座標位置を算出する。
 ロボット10は、このデプスカメラ座標系(Σ)における障害物の座標位置に基づいて、ロボット座標系(Σ)上の障害物の座標位置を算出して、ロボット10から障害物までの距離や方向を取得して障害物に接触しないような走行ルートを選択して走行するといった制御を行う。
 すなわち、例えばデプスカメラ12の撮影画像を用いて算出したデプスカメラ座標系(Σ)における障害物Pの位置(デプスカメラ座標位置(x,y,z))や、LiDAR13によって算出されたLiDAR座標系(Σ)における障害物Pの位置(LiDAR座標位置(x,y,z))について、ロボット座標系(Σ)における障害物Pの位置(ロボット座標位置(x,y,z))に変換する座標変換処理を行う。
 前述したように、座標変換処理には座標変換行列(T)が利用される。
 例えば、空間上のある点Pのデプスカメラ座標系(Σ)の座標位置(x,y,z)を、ロボット座標系(Σ)の座標位置(x,y,z)に変換する座標変換処理には、座標変換行列が利用される。
 同様に、点PのLiDAR座標系(Σ)の座標位置(x,y,z)を、ロボット座標系(Σ)の座標位置(x,y,z)に変換する座標変換処理には、座標変換行列()を利用する。
 前述したように、座標変換行列()は、座標系(Σ)上の点Pの位置座標である(P)=(x,y,z)を、座標系(Σ)上の点Pの位置座標である(P)=(x,y,z)に変換する処理に適用する行列である。
 ここで、(P)は、座標系Aにおける点Pの位置座標(x,y,z)を示し、(P)は、座標系Bにおける点Pの位置座標(x,y,z)を意味する。
 すなわち、以下の関係式が成立する。
 (P)=()(P)
 (x,y,z,1)=()(x,y,z,1)
 ただし、前述したように、ロボットは各々の部品の加工精度や、組み立て時の組付けの精度、センサ固有の個体差等が存在するため、座標変換行列は、ロボットごと、かつ、ロボットに装着されたセンサ単位で固有の座標変換行列を決定して利用することが必要となる。
 図9や図10に示すキャリブレーション実行装置30は、このロボットとセンサの組み合わせ固有の座標変換行列を算出する処理をセンサ・キャリブレーション処理として実行する。
 次に、図12を参照して、キャリブレーション実行装置30の詳細構成について説明する。
 図12には、キャリブレーション実行装置30の詳細構成と、キャリブレーション実行装置30がロボット10、および3Dスキャナ20から入力するデータを示している。
 図12に示すように、キャリブレーション実行装置30は、キャリブレーション実行部31、相対位置算出部32、外部座標系対応座標変換行列算出部33、表示情報生成部(可視化データ生成部)34、入力部35、表示部36を有する。
 なお、図12にはロボット10に装着されたセンサ11~14として、カメラ11、デプスカメラ12、LiDAR13、IMU14を示している。
 なお、前述したように、ロボット10に装着されるセンサの種類はこれらに限られるものではなく、その他の様々な種類のセンサを装着した構成であってもよい。
 また、本開示の処理は、複数種類のセンサを装着した構成のみならず、1つのセンサを装着した構成に対しても適用可能である。
 キャリブレーション実行装置30のキャリブレーション実行部31は、ロボット10に装着されたセンサ11~14各々の座標変換行列を算出する。
 すなわち、キャリブレーション実行部31は、ロボット10の各センサ11~14から各センサ検出情報等を入力して、各センサ対応の座標変換行列の算出処理を実行する。
 図12に示すように、キャリブレーション実行装置30は、ロボット10の各センサ11~14から以下の情報を入力する。
 カメラ11から、カメラ11の撮影画像と、カメラ11の内部パラメータ
 デプスカメラ12から、デプスカメラ12の撮影画像である距離画像(デプス画像)と、デプスカメラ12の内部パラメータ
 LiDAR13から、LiDARの検出値である点群()情報
 IMU14から、IMU検出情報であるロボット10の角速度、加速度等
 キャリブレーション実行装置30は、ロボット10の各センサ11~14から上記の各情報を入力する。
 なお、LiDAR13から入力するLiDARの検出値である点群()情報とは、LiDAR13周囲の3次元空間上のオブジェクト位置を示す点群情報である。
 ()は、LiDAR座標系上の点群データを示す。()の左上の添え字(L)が座標系を意味し、(P)がLiDARの3次元点群を意味する。
 例えば図13に示すように、ロボット10が長方形の壁を持つ部屋内を走行している場合、LiDAR13が検出する点群()は、LiDAR13周囲の3次元空間上のオブジェクト位置を示す点群は、図13に示すように、4方向の壁の位置を示す点群となる。
 LiDAR13は、1本のレーザ光線を水平方向に走査するタイプのLiDARであり、レーザ光線が壁面を水平にスライスしたような点群が取得できる。このスライスされた断面の形状はLiDAR13が設置された高さや向きに依存する。
 キャリブレーション実行部31は、ロボット10の各センサ11~14から各センサ検出情報等を入力して、以下の各センサ対応の座標変換行列の算出処理を実行する。
 (a)カメラ11のカメラ座標系(Σ)をロボット座標系(Σ)に変換するカメラ対応座標変換行列()の算出処理
 (b)デプスカメラ12のデプスカメラ座標系(Σ)をロボット座標系(Σ)に変換するデプスカメラ対応座標変換行列()の算出処理
 (c)LiDAR13のLiDAR座標系(Σ)をロボット座標系(Σ)に変換するLiDAR対応座標変換行列()の算出処理
 (d)IMU14のIMU座標系(Σ)をロボット座標系(Σ)に変換するIMU対応座標変換行列()の算出処理
 なお、以下では、ロボット10に搭載された各センサ11~14のセンサ座標系をロボット座標系(Σ)に変換する座標行列を()として示す。Xは様々なセンサの識別子を意味する。
 このように、キャリブレーション実行装置30のキャリブレーション実行部31は、ロボット10に装着されたセンサ11~14各々の座標変換行列()を算出する。
 なお、座標変換行列の算出処理は既知のキャリブレーション技術を用いて実行される。
 具体的には、例えば以下の非特許文献の記載構成等を適用して算出することができる。
 非特許文献2(Dhallet al.Ankit,. LiDAR-camera calibration using 3D-3D point correspondences. arXiv preprint arXiv:1705.09785, 2017.)
 非特許文献3(Banerjeeet al.Koyel,. Online camera lidar fusion and object detection on hybrid data for autonomous driving. 2018 IEEE Intelligent Vehicles Symposium (IV). IEEE, 2018.)
 非特許文献4(PusztaiIvn Eichhardt, and Levente Hajder.Zoltn,. Accurate calibration of multi-lidar-multi-camera systems. Proceedings of the IEEE International Conference on Computer Vision Workshops., 2017.)
 非特許文献5(Irene FassiLegnaniGiovanni. Hand to sensor calibration: A geometrical interpretation of the matrix equation AX =XB. Journal of Robotic Systems, 2005.)
 非特許文献6( LegnaniGiovanni. Optimization of hand-to-camera calibration using geometrical interpretation of matrix equation AX = XB. International Journal of Robotics and Automation, 2018.)
 このように、キャリブレーション実行部31は、ロボット10の各センサ11~14から各センサ検出情報等を入力して、各センサの座標系をロボット座標系に変換する座標変換行列()の算出処理を実行する。
 なお、先に(式1)を用いて説明したと同様、三次元空間での同次変換行列である座標変換行列は、具体的には、以下の(式1b)に示す4行4列の同次変換行列として示される。
Figure JPOXMLDOC01-appb-M000002
 上記の4行4列の行列中、左上3行3列が角度を表す回転行列、右上3行1列は並進を表す行列である。
 座標変換行列()の行列要素の意味について図14を参照して説明する。
 座標変換行列()の行列要素は、具体的には、図14に示すように、以下の各軸や、原点位置を示す要素によって構成される。
 (a)(R00,R10,R20)は、変換対象のセンサ座標系(Σ)のX軸方向、
 (b)(R01,R11,R21)は、変換対象のセンサ座標系(Σ)のY軸方向、
 (c)(R02,R12,R22)は、変換対象のセンサ座標系(Σ)のZ軸方向、
 (d)(t,t,t)は、変換対象のセンサ座標系(Σ)の原点位置座標、
 なお、上記(a)~(d)に示す座標軸(X軸、Y軸、Z軸)の各方向と、原点位置は、座標変換後の座標系であるロボット座標系(Σ)における方向、および座標位置である。
 相対位置算出部32は、3Dスキャナ20のスキャナ座標系(Σ)とロボット10のロボット座標系(Σ)の位置合わせ処理を実行する。
 相対位置算出部32は、3Dスキャナ20から、色付き点群()を入力し、ロボット10のLiDAR13から点群()を入力し、これらの入力点群情報を利用して、スキャナ座標系(Σ)とロボット座標系(Σ)の位置合わせ処理を実行する。
 図15は、先に説明した図13と同様、ロボット10が長方形の壁を持つ部屋内を走行している場合のLiDAR13が検出する点群()の一部と、3Dスキャナ20が検出する点群()の一部を示した図である。
 前述したように、LiDAR13は1本のレーザ光線を水平方向に走査するタイプのLiDARであり、レーザ光線が壁面を水平にスライスしたような点群が取得できる。このスライスされた断面の形状はLiDAR13が設置された高さや向きに依存する。
 一方、3Dスキャナ20から入力する点群は、水平は360°、垂直方向は3Dスキャナ20の直下を除く下方から鉛直上方までほぼ全天球に相当する範囲にあるオブジェクト表面を示す点群となる。
 なお、3Dスキャナ20から入力する点群()は、以下に示す(式2)として示すことができる。
Figure JPOXMLDOC01-appb-M000003
 上記(式2)において、(si)は、点群()を構成する1つの点を示している。(SiSiSi)は、点(si)の座標位置である。
 なお、ある座標系上の点群を異なる座標系の点群に変換する点群の座標変換処理は、点群座標変換式を適用して実行することができる。
 例えば、デプスカメラ座標系(Σ)で示されるデプスカメラ検出点群()を3Dスキャナ座標系(Σ)で示されるスキャナ座標系点群()に変換する点群座標変換式()は、以下の(式3)として示される。計算は4次元の同次座標として行う。
Figure JPOXMLDOC01-appb-M000004
 相対位置算出部32は、まず、LiDAR13の点群と、3Dスキャナ20の点群の位置合わせを行う。
 相対位置算出部32は、まず3Dスキャナ20の点群から床面(ロボット接地面)を検出して3Dスキャナ20の床からの高さ(H)を算出する。3Dスキャナ20から入力する点群()には床面(ロボット接地面)の点群が含まれている。床面(ロボット接地面)は面積が大きく、また3Dスキャナ20の下方にあり、面の法線がほぼ3Dスキャナ20の座標系のz軸方向と平行なため簡単に床面(ロボット接地面)を検出できる。
 なお、この床面(ロボット接地面)検出処理には、例えば非特許文献8(TrevorJB, et al.Alexander. Efficient organized point cloud segmentation with connected components. Semantic Perception Mapping and Exploration (SPME), 2012)に記載の処理を適用することが可能である。
 次に、相対位置算出部32は、床面(ロボット接地面)からLiDAR13までの高さ(H)を求める。この高さは、キャリブレーション実行部31で得られたLiDAR13の座標変換行列()の4行4列の座標変換行列の3行4列に位置する値である。
 すなわち、先に図14を参照して説明したように、前述した(式1b)の4行4列の座標変換行列()中の4列目にある(t,t,t)は、変換対象のセンサ座標系(Σ)の原点位置座標を示しており、この中の(t)は、ロボット座標系(Σ)の原点(ロボット接地面の位置)から、ライダー座標系(Σ)の原点との高さ(Z方向)の差分に相当する値である。すなわち、床面(ロボット接地面)からLiDAR13までの高さ(H)に相当する値を示している。
 次に、相対位置算出部32は、算出したLiDAR13の高さ(H)、すなわち、床面(ロボット接地面)からLiDAR13までの高さ(H)を利用して、図16に示すように、3Dスキャナ20から入力した全天球の点群()から一部の点群を抽出する。具体的には、3Dスキャナ20のスキャナ座標系(Σ)の原点からLiDAR座標系(Σ)の原点位置の高さ(HSL)=(H)-(H)にある点群(HSL)を抜き出す。
 相対位置算出部32は、このようにして、3Dスキャナ20から入力した全天球の点群()から抽出した一部の点群(HSL)と、LiDAR13の点群との位置合わせを行う。
 点群の位置合わせ処理は、既存処理として知られるICP(Iterative closest point)などを用いて実行できる。
 次に、相対位置算出部32は、3Dスキャナ20から入力した点群()からスライスして抽出した一部の点群(HSL)を基準として、LiDAR13の点群を位置合わせするのに必要な座標変換行列()を、以下の(式4)に従って算出する。
Figure JPOXMLDOC01-appb-M000005
 上記(式4)に示す座標変換行列()は、LiDAR13のLiDAR座標系(Σ)上の点群を、3Dスキャナ20のスキャナ座標系(Σ)上の点群に変換するための変換式である。
 なお、上記(式4)は、3Dスキャナ20から入力した点群()からスライスして抽出した一部の点群(HSL)と、LiDAR座標系(Σ)上の点群()との位置誤差を最小にする座標変換行列(T)を求める問題となっている。
 上記(式4)によって算出される座標変換行列()は、ICPの繰り返しの収束計算で求めることができる。
 この座標変換行列()は、LiDAR13のLiDAR座標系(Σ)を、3Dスキャナ20のスキャナ座標系(Σ)に変換する座標変換行列である。
 次に、図12に示すキャリブレーション実行装置30中の外部座標系対応座標変換行列算出部33が実行する処理について説明する。
 外部座標系対応座標変換行列算出部33は、キャリブレーション実行部31から、以下の座標変換行列を入力する。
 (a)カメラ11のカメラ座標系(Σ)をロボット座標系(Σ)に変換するカメラ対応座標変換行列(
 (b)デプスカメラ12のデプスカメラ座標系(Σ)をロボット座標系(Σ)に変換するデプスカメラ対応座標変換行列(
 (c)LiDAR13のLiDAR座標系(Σ)をロボット座標系(Σ)に変換するLiDAR対応座標変換行列(
 (d)IMU14のIMU座標系(Σ)をロボット座標系(Σ)に変換するIMU対応座標変換行列(
 外部座標系対応座標変換行列算出部33は、さらに、相対位置算出部32から、以下の座標変換行列を入力する。
 (e)LiDAR13のLiDAR座標系(Σ)を、3Dスキャナ20のスキャナ座標系(Σ)に変換する座標変換行列(
 外部座標系対応座標変換行列算出部33は、これら複数の座標変換行列を入力して、ロボット10の各センサ11~14の座標系(Σ)を、スキャナ座標系(Σ)に変換する座標変換行列()を算出する。
 なお、例えば、カメラ11対応のカメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列()は、以下の(式5a)に従って算出することができる。
  =()(-1
              ・・・・・(式5a)
 上記(式5a)の右辺に示す座標変換行列は、すべて、相対位置算出部32、またはキャリブレーション実行部31からの入力値、または入力値に基づいて算出可能である。
 例えば、座標変換行列()は、LiDAR13のLiDAR座標系(Σ)を、3Dスキャナ20のスキャナ座標系(Σ)に変換する座標変換行列()であり、相対位置算出部32から入力される。
 また、(-1は、座標変換行列()の逆行列であり、キャリブレーション実行部31から入力する座標変換行列()、すなわち、LiDAR13のLiDAR座標系(Σ)をロボット座標系(Σ)に変換するLiDAR対応座標変換行列()から算出することができる。
 さらに、座標変換行列()は、カメラ11のカメラ座標系(Σ)をロボット座標系(Σ)に変換するカメラ対応座標変換行列()であり、キャリブレーション実行部31から入力される。
 このように、外部座標系対応座標変換行列算出部33は、相対位置算出部32、またはキャリブレーション実行部31からの入力値、または入力値に基づいて算出可能な行列を用いて、カメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列()を算出する。
 外部座標系対応座標変換行列算出部33は、ロボット10に装着されたセンサ各々について、同様の処理を実行する。
 デプスカメラ12対応のデプスカメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列()は、以下の(式5b)に従って算出する。
  =()(-1
              ・・・・・(式5b)
 上記(式5b)の右辺に示す座標変換行列は、すべて、相対位置算出部32、またはキャリブレーション実行部31からの入力値、または入力値に基づいて算出可能である。
 LiDAR13対応のLiDAR座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列()については、相対位置算出部32から入力されており、外部座標系対応座標変換行列算出部33による新たな算出処理は必要ない。
 IMU14対応のIMU座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列()は、以下の(式5c)に従って算出する。
  =()(-1
              ・・・・・(式5c)
 上記(式5c)の右辺に示す座標変換行列は、すべて、相対位置算出部32、またはキャリブレーション実行部31からの入力値、または入力値に基づいて算出可能である。
 このように、外部座標系対応座標変換行列算出部33は、ロボット10の各センサ11~14の座標系(Σ)を、スキャナ座標系(Σ)に変換する座標変換行列()を算出する。
 外部座標系対応座標変換行列算出部33が算出した座標変換行列()、すなわち、ロボット10の各センサ11~14の座標系(Σ)を、スキャナ座標系(Σ)に変換する座標変換行列()は、図12に示すキャリブレーション実行装置30の表示情報生成部(可視化データ生成部)34に入力される。
 外部座標系対応座標変換行列算出部33が算出した座標変換行列()は、以下の座標変換行列()である。
 (a)カメラ11のカメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列(
 (b)デプスカメラ12のデプスカメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列(
 (c)LiDAR13のLiDAR座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列(
 (d)IMU14のIMU座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列(
 外部座標系対応座標変換行列算出部33が算出したこれらの座標変換行列()が、図12に示すキャリブレーション実行装置30の表示情報生成部(可視化データ生成部)34に入力される。
 表示情報生成部(可視化データ生成部)34は、外部座標系対応座標変換行列算出部33が算出したこれらの座標変換行列()に基づいて、ロボット10の各センサ11~14の座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)を、スキャナ座標系(Σ)上に示した三次元画像を生成して、ロボット10の三次元画像に併せて表示部36に出力する。
 なお、入力部35は、マウスやキーボードなどで構成され、表示情報生成部(可視化)データ生成部34が表示部36に描画する三次元画像の視点情報を入力する。
 表示情報生成部(可視化データ生成部)34は、入力部35から入力された視点の情報に基づいて、視点方向を決定し、決定した視点方向から観察したロボット10の三次元画像データを表示部36に出力する。
 表示情報生成部(可視化データ生成部)34が生成し表示部36に出力するロボット10の三次元画像データは、スキャナ座標系(Σ)上に示した三次元画像であり、ロボット10の三次元画像に併せて、ロボット10の各センサ11~14の座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)を重畳表示した画像である。
 図17に表示情報生成部(可視化データ生成部)34が生成し、表示部36に出力する表示データの一例を示す。
 キャリブレーション実行装置30の表示部36には、例えば図17に示すようなロボット10の三次元画像が表示される。
 なお、ロボット10の三次元画像は、例えば、ロボット10等のオブジェクトの三次元画像を示す点群によって構成される。点群は3Dスキャナ20による検出情報によって構成される点群である。
 なお、表示データは既知のコンピュータグラフィックス技術、例えば非特許文献7(KamRyeol, et al.Hyeong. Rviz: a toolkit for real domain data visualization. Telecommunication Systems 60.2, 2015.)に記載の構成を適用して生成可能である。
 さらに、図17に示すように、ロボット10の三次元画像上にロボット10の各センサ11~14の座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)が重畳表示される。
 ロボット10、および、各センサ11~14の座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)は、いずれも3Dスキャナ20対応のスキャナ座標系(Σ)上のデータである。
 ロボット10のスキャナ座標系(Σ)上の三次元画像は、3Dスキャナ20によるスキャン処理(走査処理)によって生成される三次元画像である。
 このロボット10の三次元画像には、ロボット10に装着された各センサ、すなわちカメラ11、デプスカメラ12、LiDAR13、IMU14の三次元画像も含まれる。なお、例えばIMU等のロボット10の内部構成については、例えばユーザが予め計測したIMU装着位置をキャリフブレーション実行装置30に入力し、表示情報生成部34が入力情報に基づいてIMU14の三次元画像を生成して出力する。
 図17に示すように、表示部36に表示されるロボット10の三次元画像には、ロボット10に装着された各センサ、すなわちカメラ11、デプスカメラ12、LiDAR13、IMU14のセンサ対応座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)も表示される。
 なお、センサ対応座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)については、例えば、各軸に対応づけて「X軸」、「Y軸」、「Z軸」等の軸の種類を示す識別子を併せて表示する構成としてもよい。さらに、より分かりやすくするため、各軸に異なる色を設定して表示する構成としてもよい。れる。例えば、X軸は赤色、Y軸は緑色、Z軸は青色等の色分けをして表示してもよい。
 表示情報生成部34は、これらのセンサ対応座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)を、先に説明した外部座標系対応座標変換行列算出部33が算出した座標変換行列()から取得する。
 先に説明したように、外部座標系対応座標変換行列算出部33は、以下の座標変換行列()を算出して、表示情報生成部34に出力する。
 (a)カメラ11のカメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列(
 (b)デプスカメラ12のデプスカメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列(
 (c)LiDAR13のLiDAR座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列(
 (d)IMU14のIMU座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列(
 例えば、「(a)カメラ11のカメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列()」
 この座標変換行列()は、先に説明した(式1)や(式1b)と同様、以下の(式1c)として示すことができる。
Figure JPOXMLDOC01-appb-M000006
 先に(式1)や(式1b)、さらに図14を参照して説明したように、
 上記の4行4列の行列中、左上3行3列が角度を表す回転行列、右上3行1列は並進を表す行列である。
 具体的には、先に図14を参照して説明したように、
 (a)(R00,R10,R20)は、変換対象のセンサ座標系(Σ)のX軸方向、
 (b)(R01,R11,R21)は、変換対象のセンサ座標系(Σ)のY軸方向、
 (c)(R02,R12,R22)は、変換対象のセンサ座標系(Σ)のZ軸方向、
 (d)(t,t,t)は、変換対象のセンサ座標系(Σ)の原点位置座標、
 なお、上記(a)~(d)に示す座標軸(X軸、Y軸、Z軸)の各方向と、原点位置は、座標変換後の座標系であるスキャナ座標系(Σ)における方向、および座標位置である。
 このように、カメラ11のカメラ座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)は、先に説明した外部座標系対応座標変換行列算出部33が算出した座標変換行列()から取得することができる。
 他のセンサ対応座標系(Σ)についても同様であり、表示情報生成部34は、カメラ11、デプスカメラ12、LiDAR13、IMU14のセンサ対応座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)を、先に説明した外部座標系対応座標変換行列算出部33が算出した座標変換行列()から取得する。
 これらのセンサ対応座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)の各方向と、原点位置は、座標変換後の座標系であるスキャナ座標系(Σ)における方向、および座標位置である。
 従って、図17に示すようセンサ対応座標系(Σ)の座標軸表示が可能となる。
 なお、図17に示す表示例は、キャリブレーション実行部31において実行したキャリブレーション処理が成功し、正しい座標変換行列が算出された場合の座標軸表示例である。
 例えばカメラ11のカメラ座標系(Σ)は、図17に示すロボット10に装着されたカメラ11のレンズ位置に原点が設定され、カメラ11の前方光軸方向にZ軸、下側にY軸、右方向にX軸が設定されている。
 これらの原点位置や各座標軸の方向は、カメラ座標系(Σ)が正しく表示された結果である。
 このように、カメラ座標系(Σ)が、三次元画像中のカメラ11の中心位置に表示されるのは、キャリブレーション実行部31において実行したキャリブレーション処理が成功し、正しい座標変換行列が算出されたことを意味する。
 前述したように、キャリブレーション実行部31は、ロボット10の各センサ11~14から各センサ検出情報等を入力して、以下の各センサ対応の座標変換行列の算出処理を実行する。例えば、カメラ11のカメラ座標系(Σ)をロボット座標系(Σ)に変換するカメラ対応座標変換行列()の算出処理を実行する。
 このカメラ対応座標変換行列()が正しく算出されていれば、先に(式5a)を参照して説明したる座標変換行列()の算出式、すなわち、
  =()(-1
              ・・・・・(式5a)
 上記のカメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列()の行列要素によって決定されるカメラ座標系(Σ)の原点や座標軸(X軸、Y軸、Z軸)が正しく算出される。
 この結果、図17に示すカメラ座標系(Σ)は、ロボット10のカメラ11のレンズ位置に原点が設定され、カメラ11の前方光軸方向にZ軸、下側にY軸、右方向にX軸が設定された正しいカメラ座標系(Σ)の表示となる。
 図17に示すその他のセンサ座標系、すなわち、デプスカメラ12のデプスカメラ座標系(Σ)、LiDAR13のLiDAR座標系(Σ)、IMU14のIMU座標系(Σ)、これらの座標系もすべて正しい位置に原点が設定され、正しい方向に座標軸が設定されている。
 ユーザは、これらの表示画像を確認することで、キャリブレーション実行部31におけるキャリブレーション処理が成功したことを確認することができる。
 すなわち、キャリブレーション実行部31が実行した以下の各センサ対応の座標変換行列の算出処理が成功したことを確認することができる。
 (a)カメラ11のカメラ座標系(Σ)をロボット座標系(Σ)に変換するカメラ対応座標変換行列()の算出処理
 (b)デプスカメラ12のデプスカメラ座標系(Σ)をロボット座標系(Σ)に変換するデプスカメラ対応座標変換行列()の算出処理
 (c)LiDAR13のLiDAR座標系(Σ)をロボット座標系(Σ)に変換するLiDAR対応座標変換行列()の算出処理
 (d)IMU14のIMU座標系(Σ)をロボット座標系(Σ)に変換するIMU対応座標変換行列()の算出処理
 しかし、例えば、キャリブレーション実行部31によるキャリブレーション処理、すなわち、座標変換行列生成処理に失敗し、正しい座標変換行列が算出できなかった場合には、図17に示すようなセンサ対応座標系(Σ)の表示と異なる表示がなされる。
 キャリブレーション実行部31による座標変換行列生成処理が失敗し、正しい座標変換行列が算出できなかった場合の表示例を図18に示す。
 図18に示すカメラ座標系(Σ)は、ロボット10のカメラ11のレンズ位置に原点がなく、カメラ11からずれた位置に原点が設定されている。また、本来、カメラ11の前方光軸方向にZ軸、下側にY軸、右方向にX軸が設定されているべき座標軸が傾いている。
 これは、明らかに正しいカメラ座標系(Σ)とは異なる表示である。
 これは、キャリブレーション実行部31におけるカメラ対応座標変換行列()が正しく算出されていないことを意味する。この結果、先に(式5a)を参照して説明したる座標変換行列()の算出式、すなわち、
  =()(-1
              ・・・・・(式5a)
 上記のカメラ座標系(Σ)をスキャナ座標系(Σ)に変換する座標変換行列()の行列要素によって決定されるカメラ座標系(Σ)の原点や座標軸(X軸、Y軸、Z軸)が正しく算出されなかったことを意味する。
 このように、キャリブレーション実行部31におけるカメラ対応座標変換行列()が正しく算出されていない場合には、図18に示すようにカメラ座標系(Σ)の原点位置や各座標軸の方向がずれて表示されることになる。
 図18に示す表示例においては、デプスカメラ12の座標軸もずれた位置にあり、キャリブレーション実行部31におけるデプスカメラ対応座標変換行列()も正しく算出されていないことが確認される。
 LiDAR13とIMU14については、座標軸が正しい位置、方向を有しており、キャリブレーション実行部31におけるLiDAR対応座標変換行列()と、IMU対応座標変換行列()の算出処理は成功していることが確認される。
 このように、本開示のキャリブレーション実行装置30の表示部36には、スキャナ座標系(Σ)上に示したロボット10の三次元画像に併せて、スキャナ座標系(Σ)上の各センサ対応の座標系(Σ)が重畳表示した画像が表示される。
 ユーザは、ロボット10の三次元画像に併せて表示される各センサ11~14の座標系(Σ)の原点位置や座表軸の方向(傾き)を確認することで、キャリブレーション実行部31におけるキャリブレーション処理、すなわち、センサ対応標変換行列()の算出処理が成功したか否かを判定することが可能となる。
 なお、前述したように、表示情報生成部(可視化データ生成部)34は、入力部35から入力された視点の情報に基づいて、視点方向を決定し、決定した視点方向から観察したロボット10の三次元画像データを表示部36に出力する。
 ユーザは入力部35から視点を操作して好きな方向、拡大率でロボット10等のオブジェクトの三次元画像を示す点群とセンサ座標変換行列の相対的な位置関係を観察することができる。
 視点位置を変更した場合の表示部36の表示画像の例を図19に示す。
 図19(a)は、ロボット10を右側面前方方向から観察した表示画像の例である。
 図19(b)は、ロボット10を前方左側面方向から観察した表示画像の例である。
 図19(c)は、ロボット10を前方右側面の下側方向から観察した表示画像の例である。
 ユーザは、このようにロボット10の筐体と、各センサの座標変換行列を重ね合わせた三次元画像を様々な方向から観察することが可能であり、これらの画像により、キャリブレーションが成功しているか否か、すなわち正しい座標変換行列()が算出されているか否かを直感的に確認することができる。
 なお、上述した実施例では、図12に示すキャリブレーション実行装置30の外部座標系対応座標変換行列算出部33がロボット10の各センサ11~14の座標系(Σ)を、スキャナ座標系(Σ)に変換する座標変換行列()を算出する実施例を説明した。
 すなわち、表示情報生成部(可視化データ生成部)34が、外部座標系対応座標変換行列算出部33が算出した座標変換行列()に基づいて、ロボット10の各センサ11~14の座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)を、スキャナ座標系(Σ)上に示した三次元画像を生成して、ロボット10の三次元画像に併せて表示部36に出力する実施例である。
 このように、上述の実施例では、センサ類の座標系、位置と姿勢の表現手法として「座標変換行列」を用いている。しかし、センサ類の座標系、位置と姿勢の表現手法は、「座標変換行列」に限られず、その他の手法を適用してもよい。
 例えば、センサ類の座標系、位置と姿勢の表現手法として、並進の3個の数字と、回転を4個の数字で表現したクォータニオンの組で表現する方法が知られている。
 また、並進の3個の数字と、回転を3個の数字で表すオイラー角を利用する手法もある。オイラー角は、ROS (Robot Operating System)などで一般的に使われている手法である。
 この他、さらに、例えばコンピュータビジョン分野でよく利用される手法として、並進の3個の数字と、回転を3個の数字の回転ベクトルで表す合計6自由度で表現する手法もある。
 なおクォータニオンと座標変換行列の回転行列と回転ベクトルとオイラー角は相互に変換可能である。
 このように、センサ類の座標系、位置と姿勢の表現手法には、様々な手法があり、上述の実施例で用いた「座標変換行列」の代わりに、これら他の手法を適用する構成も可能である。
  [3.(実施例2)オンライン・キャリブレーションを実行するキャリブレーション実行装置の構成と処理について]
 次に、実施例2として、オンライン・キャリブレーションを実行するキャリブレーション実行装置の構成と処理について説明する。
 先に説明した実施例1は、ロボット10の個体差、すなわち、ロボット各々の部品の加工精度や、組み立て時の組付けの精度、センサ固有の個体差等が存在するため、ロボット固有のセンサ対応座標変換行列()を算出して利用する実施例として説明した。
 しかし、ロボット10が走行すると、走行に伴う振動等が発生し、ロボットに装着されたセンサ、すなわちカメラ11、デプスカメラ12、LiDAR13、IMU14等のセンサにも位置ずれや傾きが発生する場合がある。
 このように、ロボット10の走行中にセンサの位置ずれや傾きが発生すると、先の実施例1に従って算出したロボット固有のセンサ対応座標変換行列()を利用しても、ロボット10の走行中に正しい座標変換が実行できなくなる場合がある。
 以下に説明する実施例2は、ロボット10の走行中に逐次、センサ対応座標変換行列()の更新処理をオンラインで実行する実施例である。
 本実施例2のキャリブレーション実行装置30を含むオンライン・キャリブレーション・システム60の一構成例を図20に示す。
 図20に示すオンライン・キャリブレーション・システム60は、ロボット100、固定デプスカメラ40、キャリブレーション実行装置30を有するシステムである。
 また、ロボット100の走行面にはチェスボード45が取り付けられている。
 チェスボード45は、規則的な白黒パターンによって構成される。
 ロボット100は、自律移動型ロボットであり、複数のセンサを搭載している。なお、ロボット100は、本開示の移動装置の一例であり、本実施例の移動装置も、ロボット以外にも例えば自動運転車両等、各種の移動体を含む。
 固定デプスカメラ40は、周囲オブジェクトまでの距離(デプス)を計測する。固定デプスカメラ40は、カラーカメラを内蔵した構成としてもよい。この場合、距離情報に加えて色情報も取得することができる。なお、カラーカメラの代わりに被写体の反射率を画像として出力するタイプを利用してもよい。
 ロボット100は、先に説明した実施例1のロボットと同様のロボットであり、センサ検出情報に基づいて周囲環境を解析し、自律的な移動を行うロボットである。
 図20に示すように、ロボット100は、複数の異なるセンサ101~104を装着している。すなわち、カメラ101、デプスカメラ102、LiDAR103、IMU104、これらのセンサが装着されている。
 実施例1で説明したと同様、図20に示すロボット100に装着されたセンサ101~104は、いずれもセンサ独自の座標系に基づくセンサ検出値、例えば障害物の座標位置などをセンサ独自の座標系に基づいて算出する。
 キャリブレーション実行装置30は、例えばPC等のデータ処理装置によって構成可能である。
 キャリブレーション実行装置30は、ロボット100や、固定デプスカメラ40と通信可能な構成を有する。
 キャリブレーション実行装置30は、ロボット100に装着されたセンサ101~104各々のセンサ検出情報を入力し、さらに、固定デプスカメラ40から距離情報等の固定デプスカメラ検出情報を入力する。
 キャリブレーション実行装置30は、これらの入力情報に基づいて、ロボット100に装着されたセンサ11~14各々のキャリブレーション処理を実行する。具体的には、センサ対応の座標変換行列を算出する処理を実行する。センサ対応の座標変換行列とは、センサ固有の座標系上の位置座標をロボット座標系上の位置座標に変換する座標変換行列である。
 キャリブレーション実行装置30は、さらに、キャリブレーション結果として算出した座標変換行列が正しく算出されているか否かを視覚的に確認することを可能としたキャリブレーション結果確認用の可視化データである表示データを生成して表示部に出力する。
 キャリブレーション結果確認用の可視化データは、センサ対応の座標変換行列が正しく算出されたか否かを確認可能とした画像データである。この画像データの具体例については後述する。
 図20に示すように、キャリブレーション実行装置30は、ロボット100から各センサの検出情報を入力し、さらに、固定デプスカメラ40から固定デプスカメラ検出情報(周囲のオブジェクトの距離情報)を入力する。
 キャリブレーション実行装置30は、これらの入力情報を利用してロボット100のセンサ各々に対応する座標変換行列を算出するキャリブレーション処理を実行する。
 キャリブレーション実行装置30によって実行されたキャリブレーション処理結果として算出されたセンサ各々に対応する座標変換行列は、ロボット100に送信され、ロボット100内の記憶部に格納される。
 ロボット100は、自律移動を行う際に、記憶部に格納されたセンサ対応の座標変換行列を用いて、各センサ固有の座標系上の位置座標をロボット座標系上の位置座標に変換し、変換後のロボット座標系上の位置座標に基づいて、ロボット100に対する周囲障害物の相対位置を解析して、障害物への衝突や接触を避けるような走行ルートを選択して自律移動を行う。
 なお、図20に示すオンライン・キャリブレーション・システム60は、ロボット100と、キャリブレーション実行装置30を別の装置として構成したシステム例であるが、例えば、図21に示すように、ロボット100とキャリブレーション実行装置30を一体化したオンライン・キャリブレーション・システム60bのような構成としてもよい。
 図21に示す構成では、ロボット100内のキャリブレーション実行装置30が、ロボット100に装着されたセンサ各々に対応する座標変換行列を算出するキャリブレーション処理を実行する。
 次に、図22を参照して、ロボット100に装着されたセンサ、すなわち、カメラ101、デプスカメラ102、LiDAR103、IMU104、これらのセンサ各々の座標系であるセンサ座標系と、ロボット100のロボット座標系、および固定デプスカメラ40の座標系である固定デプスカメラ座標系、チェスボード45のチェスボード座標系、さらに、地図座標系について説明する。
 図22には以下の各座標系を示している。
 (R)ロボット座標系(Σ
 (C)カメラ座標系(Σ
 (D)デプスカメラ座標系(Σ
 (L)LiDAR座標系(Σ
 (I)IMU座標系(Σ
 (FD)固定デプスカメラ座標系(ΣFD
 (B)チェスボード座標系(Σ
 (O)地図座標系(Σ
 (R)ロボット座標系(Σ)は、例えばロボット100の中心位置からの垂線とロボット接地面との交点を原点とし、ロボット100の前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 (C)カメラ座標系(Σ)は、例えばカメラ11のレンズ位置を原点とし、カメラ11の前方光軸方向をZ軸、下側面方向をY軸、右方向をX軸とした座標系である。
 (D)デプスカメラ座標系(Σ)は、例えばデプスカメラ12の重心位置を原点とし、デプスカメラ12の前方光軸方向をZ軸、下側面方向をY軸、右方向をX軸とした座標系である。
 (L)LiDAR座標系(Σ)は、例えばLiDAR13の重心位置を原点とし、LiDAR10前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 (I)IMU座標系(Σ)は、例えばIMU14の重心位置を原点とし、IMU10の前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 (FD)固定デプスカメラ座標系(ΣFD)は、固定デプスカメラ40のレンズ位置を原点とし、固定デプスカメラ40の前方光軸方向をZ軸、下側面方向をY軸、右方向をX軸とした座標系である。
 (B)チェスボード座標系(Σ)は、チェスボード45の1つの頂点を原点とし、ロボット走行面状の直交軸をX,Y軸、垂直上方に伸びる軸をZ軸とした座標系である。
 (O)地図座標系(Σ)は、ロボット100が自己位置を推定する場合に利用する基準座標である。本実施例2において、ロボット100は、地図座標系(Σ)上におけるロボット100位置(自己位置)を算出し、地図座標系(Σ)上に設定された走行ルートに従って走行する。
 図22に示すように、ロボット100のロボット座標系、各センサの座標系、固定デプスカメラ、チェスボード、地図座標の各座標系はそれぞれ異なっている。
 先の実施例1において説明したと同様、例えばロボット100の各センサは、各センサ固有の座標系を用いて、障害物の座標位置を取得する。
 例えば、デプスカメラ102は障害物の位置として、カメラ座標系(Σ)における障害物の座標位置を算出する。
 ロボット100は、このデプスカメラ座標系(Σ)における障害物の座標位置に基づいてロボット座標系(Σ)や地図座標系(Σ)上の障害物の座標位置を算出し、ロボット100から障害物までの距離や方向を取得して障害物に接触しないような走行ルートを選択して走行するといった制御を行う。
 前述したように、座標変換処理には座標変換行列(T)が利用される。
 例えば、空間上のある点Pのデプスカメラ座標系(Σ)の座標位置(x,y,z)を、ロボット座標系(Σ)の座標位置(x,y,z)に変換する座標変換処理には、座標変換行列が利用される。
 同様に、点PのLiDAR座標系(Σ)の座標位置(x,y,z)を、ロボット座標系(Σ)の座標位置(x,y,z)に変換する座標変換処理には、座標変換行列を利用する。
 ただし、前述したように、ロボット100の走行中にセンサの位置ずれや傾きが発生すると、固定的な座標変換行列は利用できなくなり、遂次修正することが必要となる。図20や図21に示すキャリブレーション実行装置30は、このような座標変換行列の逐次修正、すなわちオンライン、キリブレーションを実行する。
 本実施例2において利用される座標系と座標変換行列の関係性の一例を図23に示す。
 本実施例2において、必要となる座標変換行列は、破線の矢印で示した座標変換行列(FD)である。
 座標変換行列(FD)は、固定デプスカメラ40の固定デプスカメラ座標系(ΣFD)を、地図座標系(Σ)に変換する座標変換行列である。
 この座標変換行列(FD)を算出するために、図23に示すように、以下の複数の座標変換行列を利用する。すなわち、
 (1)チェスボード座標系(Σ)を、固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD
 (2)チェスボード座標系(Σ)をカメラ座標系(Σ)に変換する座標変換行列(
 (3)カメラ座標系(Σ)を、ロボット座標系(Σ)に変換する座標変換行列(
 (4)ロボット座標系(Σ)を、地図座標系(Σ)に変換する座標変換行列(
 具体的には、固定デプスカメラ座標系(ΣFD)を、地図座標系(Σ)に変換する座標変換行列(FD)は、以下の(式6)に従って算出することができる。
 (FD)=()()()(FD-1
                  ・・・・・(式6)
 上記式に従って、固定デプスカメラ座標系(ΣFD)を、地図座標系(Σ)に変換する座標変換行列(FD)を算出することができる。
 次に、上記(式6)に従って算出された座標変換行列(FD)を利用して、ロボット座標系(Σ)を、固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD)を以下の(式7)に従って算出する。
 (FD)=(FD)(
                  ・・・・・(式7)
 なお、上記(式7)において、
 座標変換行列()は、ロボット座標系(Σ)を、地図座標系(Σ)に変換する座標変換行列である。
 なお、相対位置計算の精度を向上させるためには、例えば、
 (1)チェスボード座標系(Σ)を、固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD
 (2)チェスボード座標系(Σ)をカメラ座標系(Σ)に変換する座標変換行列(
 これらの2種類の座標変換行列(FD)、()の精度を高めることが有効となる。
 このためには、例えば、ロボット100のカメラ101、および固定デプスカメラ40によるチェスボード45の撮影処理を複数回、撮影して、撮影画像の平均化処理などを実行して、2種類の座標変換行列(FD)、()を算出する処理が有効である。
 また、サイズの異なるチェスボードをいくつか用いた結果を平均したりしてもよい。また位置合わせの基準に用いるものはチェスボードに限らずARマーカ、QRコード(登録商標)、ArUcoマーカ、球体のマーカなど既存のマーカを用いてもよい。
 図24は、本実施例2のキャリブレーション実行装置30の詳細構成について説明する図である。
 図24には、キャリブレーション実行装置30の詳細構成と、キャリブレーション実行装置30がロボット100、および固定デプスカメラ40から入力するデータを示している。
 図24に示すように、キャリブレーション実行装置30は、オンライン・キャリブレーション実行部37、相対位置算出部32、外部座標系対応座標変換行列算出部33、表示情報生成部(可視化データ生成部)34、入力部35、表示部36を有する。
 実施例2のキャリブレーション実行装置30は、先の実施例1において図12を参照して説明したキャリブレーション実行装置30のキャリブレーション実行部31をオンライン・キャリブレーション実行部37に置き換えた構成となる。
 なお、図24にはロボット100に装着されたセンサ101~104として、カメラ101、デプスカメラ102、LiDAR103、IMU104を示している。
 キャリブレーション実行装置30のオンライン・キャリブレーション実行部37は、ロボット100に装着されたセンサ101~104各々の座標変換行列を算出する。
 すなわち、オンライン・キャリブレーション実行部37は、ロボット100の各センサ101~104から各センサ検出情報等を入力して、各センサ対応の座標変換行列の算出処理を実行する。
 このセンサ対応の座標変換行列の算出処理は先に説明した実施例1と同様の処理である。
 オンライン・キャリブレーション実行部37は、ロボット100の各センサ101~104から各センサ検出情報等を入力して、以下の各センサ対応の座標変換行列の算出処理を実行する。
 (a)カメラ11のカメラ座標系(Σ)をロボット座標系(Σ)に変換するカメラ対応座標変換行列()の算出処理
 (b)デプスカメラ12のデプスカメラ座標系(Σ)をロボット座標系(Σ)に変換するデプスカメラ対応座標変換行列()の算出処理
 (c)LiDAR13のLiDAR座標系(Σ)をロボット座標系(Σ)に変換するLiDAR対応座標変換行列()の算出処理
 (d)IMU14のIMU座標系(Σ)をロボット座標系(Σ)に変換するIMU対応座標変換行列()の算出処理
 相対位置算出部32は、固定デプスカメラ40の固定デプスカメラ座標系(ΣFD)とロボット10のロボット座標系(Σ)の位置合わせ処理を実行して、ロボット座標系(Σ)を、固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD)を算出する。
 相対位置算出部32が算出した座標変換行列(FD)は、外部座標系対応座標変換行列算出部33に入力される。
 次に、図24に示すキャリブレーション実行装置30中の外部座標系対応座標変換行列算出部33が実行する処理について説明する。
 外部座標系対応座標変換行列算出部33は、オンライン・キャリブレーション実行部37から、以下の座標変換行列を入力する。
 (a)カメラ11のカメラ座標系(Σ)をロボット座標系(Σ)に変換するカメラ対応座標変換行列(
 (b)デプスカメラ12のデプスカメラ座標系(Σ)をロボット座標系(Σ)に変換するデプスカメラ対応座標変換行列(
 (c)LiDAR13のLiDAR座標系(Σ)をロボット座標系(Σ)に変換するLiDAR対応座標変換行列(
 (d)IMU14のIMU座標系(Σ)をロボット座標系(Σ)に変換するIMU対応座標変換行列(
 外部座標系対応座標変換行列算出部33は、さらに、相対位置算出部32から、以下の座標変換行列を入力する。
 (e)ロボット座標系(Σ)を、固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD
 外部座標系対応座標変換行列算出部33は、これら複数の座標変換行列を入力して、ロボット100の各センサ101~104の座標系(Σ)を、固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD)を算出する。
 なお、例えば、カメラ101対応のカメラ座標系(Σ)を固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD)は、以下の(式8)に従って算出することができる。
  FD=(FD)(
              ・・・・・(式8)
 上記(式8)の右辺に示す座標変換行列は、すべて、相対位置算出部32、またはオンライン・キャリブレーション実行部37からの入力値、または入力値に基づいて算出可能である。
 例えば、座標変換行列(FD)は、ロボット座標系(Σ)を、固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD)であり、相対位置算出部32から入力される。
 また、()は、カメラ11のカメラ座標系(Σ)をロボット座標系(Σ)に変換するカメラ対応座標変換行列()であり、オンライン・キャリブレーション実行部37から入力される。
 このように、外部座標系対応座標変換行列算出部33は、相対位置算出部32、またはオンライン・キャリブレーション実行部37からの入力値、または入力値に基づいて算出可能な行列を用いて、ロボット100の各センサ101~104の座標系(Σ)を、固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD)を算出する。
 外部座標系対応座標変換行列算出部33が算出した座標変換行列(FD)、すなわち、ロボット100の各センサ101~104の座標系(Σ)を、固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD)は、図24に示すキャリブレーション実行装置30の表示情報生成部(可視化データ生成部)34に入力される。
 なお、外部座標系対応座標変換行列算出部33が算出する座標変換行列(FD)は、以下の座標変換行列(FD)である。
 (a)カメラ101のカメラ座標系(Σ)を固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD
 (b)デプスカメラ102のデプスカメラ座標系(Σ)を固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD
 (c)LiDAR103のLiDAR座標系(Σ)を固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD
 (d)IMU104のIMU座標系(Σ)を固定デプスカメラ座標系(ΣFD)に変換する座標変換行列(FD
 外部座標系対応座標変換行列算出部33が算出したこれらの座標変換行列(FD)が、図24に示すキャリブレーション実行装置30の表示情報生成部(可視化データ生成部)34に入力される。
 表示情報生成部(可視化データ生成部)34は、外部座標系対応座標変換行列算出部33が算出したこれらの座標変換行列(FD)に基づいて、ロボット100の各センサ101~104の座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)を、固定デプスカメラ座標系(ΣFD)上に示した三次元画像を生成して、ロボット100の三次元画像に併せて表示部36に出力する。
 なお、入力部35は、マウスやキーボードなどで構成され、表示情報生成部(可視化)データ生成部34が表示部36に描画する三次元画像の視点情報を入力する。
 表示情報生成部(可視化データ生成部)34は、入力部35から入力された視点の情報に基づいて、視点方向を決定し、決定した視点方向から観察したロボット10の三次元画像データを表示部36に出力する。
 表示情報生成部(可視化データ生成部)34が生成し表示部36に出力するロボット100の三次元画像データは、固定デプスカメラ座標系(ΣFD)上に示した三次元画像であり、ロボット100の三次元画像に併せて、ロボット100の各センサ101~104の座標系(Σ)を構成する座標軸(X軸、Y軸、Z軸)を重畳表示した画像である。
 表示画像は、先に実施例1において説明した図17~図19に示す画像と同様の画像である。
 本実施例2においても、キャリブレーション実行装置30の表示部36には、固定デプスカメラ座標系(ΣFD)上に示したロボット100の三次元画像に併せて、固定デプスカメラ座標系(ΣFD)上の各センサ対応の座標系(Σ)を重畳表示した画像が表示される。
 ユーザは、ロボット100の三次元画像に併せて表示される各センサ101~104の座標系(Σ)の原点位置や座表軸の方向(傾き)を確認することで、オンライン・キャリブレーション実行部37におけるキャリブレーション処理、すなわち、センサ対応標変換行列()の算出処理が成功したか否かを判定することが可能となる。
  [4.(実施例3)他の移動装置の観測情報を利用したオンライン・キャリブレーションを実行するキャリブレーション実行装置の構成と処理について]
 次に、実施例3として、他の移動装置の観測情報を利用したオンライン・キャリブレーションを実行するキャリブレーション実行装置の構成と処理について説明する。
 本実施例3は、例えば、複数台のロボットが協調して動作するような環境において、一台のロボットがオンライン・キャリブレーションを実行し、さらに他のロボットのカメラを用いてオンライン・キャリブレーションの結果の正しさを検証する。
 本実施例3は、オンライン・キャリブレーションを行ったあるロボットのカメラの座標変換行列を、他のロボットに搭載されたデプスカメラから得られた点群(三次元画像)に重畳して表示して、オンライン・キャリブレーションで得られたカメラの座標変換行列の正しさを検証する。
 なお、この実施例3では、ロボット同士の相対位置情報が必要になるが、本実施例3では、各ロボットが実行する自己位置推定情報を用いて、複数台のロボット間の相対位置と角度を計算する。例えば、複数台のロボットが同じ座標系の地図上で位置推定を実施している場合は、その位置情報を用いる。
 本実施例3のキャリブレーション実行装置30を含むオンライン・キャリブレーション・システム70の一構成例を図25に示す。
 図25に示すオンライン・キャリブレーション・システム70は、ロボットA110、ロボットB120、キャリブレーション実行装置30を有するシステムである。
 ロボットA110、ロボットB120は、いずれも自律移動型ロボットであり、複数のセンサを搭載している。
 ロボットA110、ロボットB120は、先に説明した実施例1のロボットと同様のロボットであり、センサ検出情報に基づいて周囲環境を解析し、自律的な移動を行うロボットである。
 図25に示すように、ロボットA110は、複数の異なるセンサ111~114を装着している。すなわち、カメラA111、デプスカメラA112、LiDAR113、IMU114、これらのセンサを装着している。
 ロボットB120は、カメラB121、デプスカメラB122を装着している。
 実施例1で説明したと同様、図25に示すロボットA110、ロボットB120に装着されたセンサは、いずれもセンサ独自の座標系に基づくセンサ検出値、例えば障害物の座標位置などをセンサ独自の座標系に基づいて算出する。
 キャリブレーション実行装置30は、例えばPC等のデータ処理装置によって構成可能である。
 キャリブレーション実行装置30は、ロボットA110、ロボットB120と通信可能な構成を有する。
 キャリブレーション実行装置30は、ロボットA110、ロボットB120に装着されたセンサ各々のセンサ検出情報を入力する。
 キャリブレーション実行装置30は、これらの入力情報に基づいて、ロボットA110に装着されたセンサ111~114各々のキャリブレーション処理を実行する。具体的には、センサ対応の座標変換行列を算出する処理を実行する。センサ対応の座標変換行列とは、センサ固有の座標系上の位置座標をロボット座標系上の位置座標に変換する座標変換行列である。
 キャリブレーション実行装置30は、さらに、キャリブレーション結果として算出した座標変換行列が正しく算出されているか否かを視覚的に確認することを可能としたキャリブレーション結果確認用の可視化データである表示データを生成して表示部に出力する。
 キャリブレーション結果確認用の可視化データは、センサ対応の座標変換行列が正しく算出されたか否かを確認可能とした画像データである。この画像データの具体例については後述する。
 図25に示すように、キャリブレーション実行装置30はロボットA110、ロボットB120から各センサの検出情報を入力する。
 キャリブレーション実行装置30は、これらの入力情報を利用してロボットA110のセンサ各々に対応する座標変換行列を算出するキャリブレーション処理を実行する。
 キャリブレーション実行装置30によって実行されたキャリブレーション処理結果として算出されたセンサ各々に対応する座標変換行列は、ロボットA110内の記憶部に格納される。
 ロボットA110は、自律移動を行う際に、記憶部に格納されたセンサ対応の座標変換行列を用いて、各センサ固有の座標系上の位置座標をロボット座標系上の位置座標に変換し、変換後のロボット座標系上の位置座標に基づいて、ロボットA110に対する周囲障害物の相対位置を解析して、障害物への衝突や接触を避けるような走行ルートを選択して自律移動を行う。
 なお、図25に示すオンライン・キャリブレーション・システム70は、ロボットA110と、キャリブレーション実行装置30を別の装置として構成したシステム例であるが、例えば、図26に示すように、ロボットA110とキャリブレーション実行装置30を一体化したオンライン・キャリブレーション・システム70bのような構成としてもよい。
 図26に示す構成では、ロボットA110内のキャリブレーション実行装置30が、ロボットA110に装着されたセンサ各々に対応する座標変換行列を算出するキャリブレーション処理を実行する。
 ロボットA110に装着されたセンサ、すなわち、カメラA111、デプスカメラA112、LiDAR113、IMU114、これらのセンサ各々の座標系であるセンサ座標系と、ロボットA110のロボット座標系、および度図座標系は、先に実施例2において図22を参照して説明した座標系と同様の座標系である。
 図27に、ロボットB120に装着されたカメラB121、デプスカメラB122、これらのセンサ各々の座標系であるセンサ座標系と、ロボットB120のロボットB座標系、および地図座標系を示す。
 (RB)ロボットB座標系(ΣRB)は、例えばロボットB120の中心位置からの垂線とロボット接地面との交点を原点とし、ロボットB120の前方をX軸、左側面方向をY軸、上方向をZ軸とした座標系である。
 (CB)カメラB座標系(ΣCB)は、例えばカメラB121のレンズ位置を原点とし、カメラB121の前方光軸方向をZ軸、下側面方向をY軸、右方向をX軸とした座標系である。
 (DB)デプスカメラB座標系(ΣDB)は、例えばデプスカメラB122の重心位置を原点とし、デプスカメラB122の前方光軸方向をZ軸、下側面方向をY軸、右方向をX軸とした座標系である。
 (O)地図座標系(Σ)は、ロボット100が自己位置を推定する場合に利用する基準座標である。本実施例3において、ロボット100は、地図座標系(Σ)上におけるロボット100位置(自己位置)を算出し、地図座標系(Σ)上に設定された走行ルートに従って走行する。
 本実施例3において利用される座標系と座標変換行列の関係性の一例を図28に示す。
 本実施例3では、ロボットBのデプスカメラB122を利用した処理例とロボットBのカメラB121を利用した処理例が実行できる。
 ロボットB120のデプスカメラB122を利用した処理例において必要となる座標変換行列は、破線の矢印で示した座標変換行列(DBXA)である。
 座標変換行列(DBXA)は、ロボットAのセンサ座標系(ΣXA)を、ロボットBのデプスカメラB座標系(ΣDB)に変換する座標変換行列である。
 この座標変換行列(DBXA)を算出するために、図28に示すように、以下の複数の座標変換行列を利用する。すなわち、
 (1)ロボットBのデプスカメラB座標系(ΣDB)を、ロボットB座標系(ΣRB)に変換する座標変換行列(RBDB
 (2)地図座標系(Σ)を、ロボットB座標系(ΣRB)に変換する座標変換行列(RB
 (3)ロボットA座標系(ΣRA)を、地図座標系(Σ)に変換する座標変換行列(RA
 (4)ロボットAのセンサ座標系(ΣXA)を、ロボットA座標系(ΣRA)に変換する座標変換行列(RAXA
 具体的には、ロボットAのセンサ座標系(ΣXA)を、ロボットBのデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBXA)は、以下の(式9)に従って算出することができる。
 (DBXA)=(RBDB-1RB-1RA)(RAXA
                  ・・・・・(式9)
 上記式に従って、ロボットAのセンサ座標系(ΣXA)を、ロボットB120のデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBXA)を算出することができる。
 一方、ロボットB120のカメラB121を利用した処理例において必要となる座標変換行列は、図29に示す破線の矢印で示した座標変換行列(CBXA)である。
 座標変換行列(CBXA)は、ロボットAのセンサ座標系(ΣXA)を、ロボットBのカメラB座標系(ΣCB)に変換する座標変換行列である。
 この座標変換行列(CBXA)を算出するために、図29に示すように、以下の複数の座標変換行列を利用する。すなわち、
 (1)ロボットBのカメラB座標系(ΣCB)を、ロボットB座標系(ΣRB)に変換する座標変換行列(RBCB
 (2)地図座標系(Σ)を、ロボットB座標系(ΣRB)に変換する座標変換行列(RB
 (3)ロボットA座標系(ΣRA)を、地図座標系(Σ)に変換する座標変換行列(RA
 (4)ロボットAのセンサ座標系(ΣXA)を、ロボットA座標系(ΣRA)に変換する座標変換行列(RAXA
 具体的には、ロボットAのセンサ座標系(ΣXA)を、ロボットBのカメラB座標系(ΣCB)に変換する座標変換行列(CBXA)は、以下の(式10)に従って算出することができる。
 (CBXA)=(RBCB-1RB-1RA)(RAXA
                  ・・・・・(式10)
 上記式に従って、ロボットAのセンサ座標系(ΣXA)を、ロボットB120のカメラB座標系(ΣCB)に変換する座標変換行列(CBXA)を算出することができる。
 次に、図30、図31を参照して、本実施例3のキャリブレーション実行装置30の詳細構成について説明する。
 なお、図30は、ロボットB120のデプスカメラB122を利用した処理例を説明する図である。
 図31は、ロボットB120のカメラB121を利用した処理例を説明する図である。
 まず、図30を参照して、ロボットB120のデプスカメラB122を利用した処理例について説明する。
 図30には、キャリブレーション実行装置30の詳細構成と、キャリブレーション実行装置30がロボットA110、およびロボットB120から入力するデータを示している。
 図30に示すように、キャリブレーション実行装置30は、オンライン・キャリブレーション実行部37、相対位置算出部32、外部座標系対応座標変換行列算出部33、表示情報生成部(可視化データ生成部)34、入力部35、表示部36を有する。
 実施例3のキャリブレーション実行装置30は、先の実施例2において図24を参照して説明したキャリブレーション実行装置30と同様の構成となる。
 なお、図30には、ロボットA110の構成として、(カラー)カメラA111、デプスカメラA112、IMU114、ホイールオドメトリ115、自己位置推定部116を示している。
 また、ロボットB120の構成として、(カラー)カメラB121、デプスカメラB122、自己位置推定部123、センサ座標変換行列DB(データベース)124を示している。
 ロボットA110の自己位置推定部116は、地図座標系(Σ)上でのロボットA110の自己位置を算出するために必要となる座標変換行列(RA)、すなわち、ロボットA座標系(ΣRA)を地図座標系(Σ)に変換する座標変換行列(RA)を算出して、算出した座標変換行列(RA)を、キャリブレーション実行装置30のオンライン・キャリブレーション実行部37と、相対位置算出部32に出力する。
 同様に、ロボットB120の自己位置推定部123は、地図座標系(Σ)上でのロボットB120の自己位置を算出するために必要となる座標変換行列(RB)、すなわち、ロボットB座標系(ΣRB)を地図座標系(Σ)に変換する座標変換行列(RB)を算出して、算出した座標変換行列(RB)を、キャリブレーション実行装置30の相対位置算出部32に出力する。
 ロボットB120のセンサ座標変換行列DB(データベース)124は、ロボットB120のデプスカメラB座標系(ΣDB)を、ロボットB座標系(ΣRB)に変換する座標変換行列(RBDB)を格納し、この座標変換行列(RBDB)を、キャリブレーション実行装置30の相対位置算出部32に出力する。
 キャリブレーション実行装置30のオンライン・キャリブレーション実行部37は、ロボットA110に装着されたセンサ(AX)各々の座標変換行列(RAXA)を算出する。
 このセンサ対応の座標変換行列(RAXA)の算出処理は先に説明した実施例1と同様の処理である。
 相対位置算出部32は、以下の各データを入力する。
 (1)ロボットA110の自己位置推定部116から座標変換行列(RA)、すなわち、ロボットA座標系(ΣRA)を地図座標系(Σ)に変換する座標変換行列(RA
 (2)ロボットB120の自己位置推定部123から座標変換行列(RB)、すなわち、ロボットB座標系(ΣRB)を地図座標系(Σ)に変換する座標変換行列(RB
 (3)ロボットB120のセンサ座標変換行列DB(データベース)124から座標変換行列(RBDB)、すなわち、ロボットB120のデプスカメラB座標系(ΣDB)を、ロボットB座標系(ΣRB)に変換する座標変換行列(RBDB
 相対位置算出部32は、これらの各データを入力して、ロボットAのセンサ座標系(ΣXA)を、ロボットBのデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBXA)を算出する。
 この座標変換行列(DBXA)の算出処理は、先に説明した(式9)に従って実行される。
 相対位置算出部32が算出した座標変換行列(DBXA)、すなわち、ロボットAのセンサ座標系(ΣXA)を、ロボットBのデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBXA)は、外部座標系対応座標変換行列算出部33に入力される。
 次に、図30に示すキャリブレーション実行装置30中の外部座標系対応座標変換行列算出部33が実行する処理について説明する。
 外部座標系対応座標変換行列算出部33は、オンライン・キャリブレーション実行部37から、ロボットA110の各センサ(XA)のセンサ座標系(ΣXA)をロボットA座標系(ΣRA)に変換する座標変換行列(RAXA)を入力する。
 さらに、外部座標系対応座標変換行列算出部33は、相対位置算出部32から、ロボットA110の各センサ(XA)のセンサ座標系(ΣXA)をロボットB120のデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBXA)を入力する。
 外部座標系対応座標変換行列算出部33は、これら複数の座標変換行列を入力して、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBRA)を算出する。
 なお、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBRA)は、以下の(式11)に従って算出することができる。
  (DBRA)=(DBXA)(RAXA-1
              ・・・・・(式11)
 上記(式11)の右辺に示す座標変換行列は、すべて、相対位置算出部32、またはオンライン・キャリブレーション実行部37からの入力値、または入力値に基づいて算出可能である。
 このように、外部座標系対応座標変換行列算出部33は、相対位置算出部32、またはオンライン・キャリブレーション実行部37からの入力値、または入力値に基づいて算出可能な行列を用いて、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBRA)を算出する。
 外部座標系対応座標変換行列算出部33が算出した座標変換行列(DBRA)、すなわち、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBRA)は、図30に示すキャリブレーション実行装置30の表示情報生成部(可視化データ生成部)34に入力される。
 表示情報生成部(可視化データ生成部)34は、外部座標系対応座標変換行列算出部33が算出した座標変換行列(DBRA)、すなわち、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のデプスカメラB座標系(ΣDB)に変換する座標変換行列(DBRA)に基づいて、ロボットA110の各センサの座標系(ΣXA)を構成する座標軸(X軸、Y軸、Z軸)を、ロボットB120のデプスカメラB座標系(ΣDB)上に示した三次元画像を生成して、ロボットA110の三次元画像に併せて表示部36に出力する。
 なお、入力部35は、マウスやキーボードなどで構成され、表示情報生成部(可視化)データ生成部34が表示部36に描画する三次元画像の視点情報を入力する。
 表示情報生成部(可視化データ生成部)34は、入力部35から入力された視点の情報に基づいて、視点方向を決定し、決定した視点方向から観察したロボット10の三次元画像データを表示部36に出力する。
 表示情報生成部(可視化データ生成部)34が生成し表示部36に出力するロボットA110の三次元画像データは、ロボットB120のデプスカメラB座標系(ΣDB)上に示した三次元画像であり、ロボットA110の三次元画像に併せて、ロボットA110の各センサの座標系(ΣXA)を構成する座標軸(X軸、Y軸、Z軸)を重畳表示した画像である。
 表示画像は、先に実施例1において説明した図17~図19に示す画像と同様の画像である。
 本実施例3においても、キャリブレーション実行装置30の表示部36には、ロボットB120のデプスカメラB座標系(ΣDB)上に示したロボットA110の三次元画像に併せて、ロボットB120のデプスカメラB座標系(ΣDB)上の各センサ対応の座標系(ΣXA)を重畳表示した画像が表示される。
 ユーザは、ロボットA110の三次元画像に併せて表示される各センサの座標系(ΣXA)の原点位置や座表軸の方向(傾き)を確認することで、オンライン・キャリブレーション実行部37におけるキャリブレーション処理、すなわち、センサ対応標変換行列(RAXA)の算出処理が成功したか否かを判定することが可能となる。
 次に、図31を参照して、ロボットB120のカメラB121を利用した処理例について説明する。
 図31には、キャリブレーション実行装置30の詳細構成と、キャリブレーション実行装置30がロボットA110、およびロボットB120から入力するデータを示している。
 図31に示すように、キャリブレーション実行装置30は、オンライン・キャリブレーション実行部37、相対位置算出部32、外部座標系対応座標変換行列算出部33、表示情報生成部(可視化データ生成部)34、入力部35、表示部36を有する。
 図31にも、図30と同様、ロボットA110の構成として、(カラー)カメラA111、デプスカメラA112、IMU114、ホイールオドメトリ115、自己位置推定部116を示している。
 また、ロボットB120の構成として、(カラー)カメラB121、カメラB121、自己位置推定部123、センサ座標変換行列DB(データベース)124を示している。
 ロボットA110の自己位置推定部116は、地図座標系(Σ)上でのロボットA110の自己位置を算出するために必要となる座標変換行列(RA)、すなわち、ロボットA座標系(ΣRA)を地図座標系(Σ)に変換する座標変換行列(RA)を算出して、算出した座標変換行列(RA)を、キャリブレーション実行装置30のオンライン・キャリブレーション実行部37と、相対位置算出部32に出力する。
 同様に、ロボットB120の自己位置推定部123は、地図座標系(Σ)上でのロボットB120の自己位置を算出するために必要となる座標変換行列(RB)、すなわち、ロボットB座標系(ΣRB)を地図座標系(Σ)に変換する座標変換行列(RB)を算出して、算出した座標変換行列(RB)を、キャリブレーション実行装置30の相対位置算出部32に出力する。
 ロボットB120のセンサ座標変換行列DB(データベース)124は、ロボットB120のカメラB座標系(ΣCB)を、ロボットB座標系(ΣRB)に変換する座標変換行列(RBCB)を格納し、この座標変換行列(RBCB)を、キャリブレーション実行装置30の相対位置算出部32に出力する。
 キャリブレーション実行装置30のオンライン・キャリブレーション実行部37は、ロボットA110に装着されたセンサ(AX)各々の座標変換行列(RAXA)を算出する。
 このセンサ対応の座標変換行列(RAXA)の算出処理は先に説明した実施例1と同様の処理である。
 相対位置算出部32は、以下の各データを入力する。
 (1)ロボットA110の自己位置推定部116から座標変換行列(RA)、すなわち、ロボットA座標系(ΣRA)を地図座標系(Σ)に変換する座標変換行列(RA
 (2)ロボットB120の自己位置推定部123から座標変換行列(RB)、すなわち、ロボットB座標系(ΣRB)を地図座標系(Σ)に変換する座標変換行列(RB
 (3)ロボットB120のセンサ座標変換行列DB(データベース)124から座標変換行列(RBCB)、すなわち、ロボットB120のカメラB座標系(ΣCB)を、ロボットB座標系(ΣRB)に変換する座標変換行列(RBCB
 相対位置算出部32は、これらの各データを入力して、ロボットAのセンサ座標系(ΣXA)を、ロボットBのカメラB座標系(ΣCB)に変換する座標変換行列(CBXA)を算出する。
 この座標変換行列(CBXA)の算出処理は、先に説明した(式10)に従って実行される。
 相対位置算出部32が算出した座標変換行列(CBXA)、すなわち、ロボットAのセンサ座標系(ΣXA)を、ロボットBのカメラB座標系(ΣCB)に変換する座標変換行列(CBXA)は、外部座標系対応座標変換行列算出部33に入力される。
 次に、図31に示すキャリブレーション実行装置30中の外部座標系対応座標変換行列算出部33が実行する処理について説明する。
 外部座標系対応座標変換行列算出部33は、オンライン・キャリブレーション実行部37から、ロボットA110の各センサ(XA)のセンサ座標系(ΣXA)をロボットA座標系(ΣRA)に変換する座標変換行列(RAXA)を入力する。
 さらに、外部座標系対応座標変換行列算出部33は、相対位置算出部32から、ロボットA110の各センサ(XA)のセンサ座標系(ΣXA)をロボットB120のカメラB座標系(ΣCB)に変換する座標変換行列(CBXA)を入力する。
 外部座標系対応座標変換行列算出部33は、これら複数の座標変換行列を入力して、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のカメラB座標系(ΣCB)に変換する座標変換行列(CBRA)を算出する。
 なお、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のカメラB座標系(ΣCB)に変換する座標変換行列(CBRA)は、以下の(式12)に従って算出することができる。
  (CBRA)=(CBXA)(RAXA-1
              ・・・・・(式12)
 上記(式12)の右辺に示す座標変換行列は、すべて、相対位置算出部32、またはオンライン・キャリブレーション実行部37からの入力値、または入力値に基づいて算出可能である。
 このように、外部座標系対応座標変換行列算出部33は、相対位置算出部32、またはオンライン・キャリブレーション実行部37からの入力値、または入力値に基づいて算出可能な行列を用いて、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のカメラB座標系(ΣCB)に変換する座標変換行列(CBRA)を算出する。
 外部座標系対応座標変換行列算出部33が算出した座標変換行列(CBRA)、すなわち、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のカメラB座標系(ΣCB)に変換する座標変換行列(CBRA)は、図31に示すキャリブレーション実行装置30の表示情報生成部(可視化データ生成部)34に入力される。
 表示情報生成部(可視化データ生成部)34は、外部座標系対応座標変換行列算出部33が算出した座標変換行列(CBRA)、すなわち、ロボットA110のロボット座標系(ΣRA)を、ロボットB120のカメラB座標系(ΣCB)に変換する座標変換行列(CBRA)に基づいて、ロボットA110の各センサの座標系(ΣXA)を構成する座標軸(X軸、Y軸、Z軸)を、ロボットB120のカメラB座標系(ΣCB)上に示した三次元画像を生成して、ロボットA110の(カラー)画像に併せて表示部36に出力する。
 なお、入力部35は、マウスやキーボードなどで構成され、ロボットB120に位置と方向の情報からなる移動指示を入力する。
 ロボットB120は、入力部35から入力された視点の情報に基づいて、視点の位置と方向を決定し、決定した視点の位置と方向へ移動してロボットB120の(カラー)画像データを表示部36に出力する。
 具体的には、入力部35から与えた視点位置と方向に従ってロボットB120を動かすことで、(カラー)カメラ121の視点方向を変更して、そこから観察した(カラー)画像データに、ロボットA110の各センサの座標系ΣXAを表示した三次元画像を、重畳して表示部36に表示する。
 表示情報生成部(可視化データ生成部)34が生成し表示部36に出力するロボットA110の三次元画像データは、ロボットB120のカメラB座標系(ΣCB)上に示した三次元画像であり、ロボットA110の(カラー)画像に併せて、ロボットA110の各センサの座標系(ΣXA)を構成する座標軸(X軸、Y軸、Z軸)を重畳表示した画像である。
 表示画像は、先に実施例1において説明した図17~図19に示す画像と同様の画像である。
 本実施例3の処理例2においても、キャリブレーション実行装置30の表示部36には、ロボットB120のカメラB座標系(ΣCB)上に示したロボットA110の(カラー)画像に併せて、ロボットB120のカメラB座標系(ΣCB)上の各センサ対応の座標系(ΣXA)を重畳表示した画像が表示される。
 ユーザは、ロボットA110の(カラー)画像に併せて表示される各センサの座標系(ΣXA)の原点位置や座表軸の方向(傾き)を確認することで、オンライン・キャリブレーション実行部37におけるキャリブレーション処理、すなわち、センサ対応標変換行列(RAXA)の算出処理が成功したか否かを判定することが可能となる。
  [5.(実施例4)複数の固定カメラのキャリブレーションを実行する実施例について]
 次に、実施例4として、複数の固定カメラのキャリブレーションを実行する実施例について説明する。
 本実施例4は、例えば、図32に示すように、複数台のカメラが固定されている構成において、これらの固定カメラのキャリブレーション処理を行う実施例である。
 図32に示す例は、複数のカメラ201が装着された支柱200を複数有する構成である。このような複数台のカメラを使う用途の代表的な例として、例えばある物体の三次元形状と表面色を同時に取得するボリュメトリックキャプチャ処理、あるいは人の関節位置の三次元計測処理等がある。
 これらの様々な処理において、三次元情報を十分な精度で取得するには、複数のカメラの光軸方向が、規定の方向を向いていることが必要であり、このためには、ある一つの基準座標系を用いて、各カメラ座標系の設定状態を確認することが必要であり、このためには、各カメラ座標系を一つの基準座標系に変換する高精度な座標変換行列を生成するキャリブレーション処理を行うことが必要となる。
 図33に本実施例4のキャリブレーション・システム80の例を示す。
 図33に示すように、キャリブレーション・システム80は、キャリブレーション対象となる複数のカメラ201と、3Dスキャナ211と、キャリブレーション処理を実行するキャリブレーション実行装置30を有する。
 また、床面には複数のカメラ201によって撮影可能なチェスボード221,222が取り付けられている。
 チェスボード221,222は、規則的な白黒パターンによって構成される。
 複数のカメラ201の画像や内部パラメータは、キャリブレーション実行装置30に送信される。
 3Dスキャナ211の検出データである色付き点群情報()もキャリブレーション実行装置30に送信される。
 キャリブレーション実行装置30は、これらの入力データを利用して、複数台のカメラ201各々のキャリブレーション処理を実行する。具体的には、複数台のカメラ201各々の座標変換行列を算出する処理を実行する。算出する座標変換行列は、カメラ各々の座標系を、1つの基準座標系であるキャリブレーション座標系に変換する座標変換行列である。
 キャリブレーション実行装置30は、さらに、キャリブレーション結果として算出した座標変換行列が正しく算出されているか否かを視覚的に確認することを可能としたキャリブレーション結果確認用の可視化データである表示データを生成して表示部に出力する。
 キャリブレーション結果確認用の可視化データは、各カメラ対応の座標変換行列が正しく算出されたか否かを確認可能とした画像データである。この画像データの具体例については後述する。
 図34を参照して、本実施例4のキャリブレーション実行装置30の詳細構成について説明する。
 図34には、キャリブレーション実行装置30の詳細構成と、キャリブレーション実行装置30がカメラ201、および3Dスキャナ211から入力するデータを示している。カメラ201は、複数のカメラa~nによって構成されている。
 図34に示すように、キャリブレーション実行装置30は、キャリブレーション実行部31、相対位置算出部32、外部座標系対応座標変換行列算出部33、表示情報生成部(可視化データ生成部)34、入力部35、表示部36を有する。
 実施例4のキャリブレーション実行装置30は、先の実施例1において図12を参照して説明したキャリブレーション実行装置30と同様の構成となる。
 キャリブレーション実行装置30のキャリブレーション実行部31は、複数のカメラ(カメラa~n)各々の座標変換行列を算出する。
 キャリブレーション実行部31は、複数のカメラ(カメラa~n)から、各カメラの撮影画像と内部パラメータを入力して、各カメラ対応の座標変換行列の算出処理を実行する。
 具体的には、各カメラのカメラ座標系(ΣCx)を、予め規定した基準座標系であるキャリブレーション座標系(ΣCL)に変換するカメラ対応座標変換行列(CLCX)を算出する。なお、カメラ座標系(ΣCx)、およびカメラ対応座標変換行列(CLCX)中に示すcxのxはカメラ識別子=a~nであり、caはカメラa、cbはカメラb、cnはカメラcnを意味する。
 キャリブレーション実行部31が算出したカメラ対応座標変換行列(CLCX)は、相対位置算出部32と、外部座標系対応座標変換行列算出部33に出力される。
 相対位置算出部32は、3Dスキャナ211のスキャナ座標系(Σ)と、キャリブレーション実行部31が利用した基準座標系であるキャリブレーション座標系(ΣCL)の位置合わせ処理を実行して、キャリブレーション座標系(ΣCL)を、スキャナ座標系(Σ)に変換する座標変換行列(CL)を算出する。
 相対位置算出部32が算出した座標変換行列(CL)は、外部座標系対応座標変換行列算出部33に入力される。
 次に、図34に示すキャリブレーション実行装置30中の外部座標系対応座標変換行列算出部33が実行する処理について説明する。
 外部座標系対応座標変換行列算出部33は、キャリブレーション実行部31から、以下の座標変換行列を入力する。
 (a)各カメラa~nのカメラ座標系(ΣCx)を、予め規定した基準座標系であるキャリブレーション座標系(ΣCL)に変換するカメラ対応座標変換行列(CLCX
 外部座標系対応座標変換行列算出部33は、さらに、相対位置算出部32から、以下の座標変換行列を入力する。
 (b)キャリブレーション座標系(ΣCL)を、スキャナ座標系(Σ)に変換する座標変換行列(CL
 外部座標系対応座標変換行列算出部33は、これら複数の座標変換行列を入力して、各カメラa~nの座標系(ΣCX)を、スキャナ座標系(Σ)に変換する座標変換行列(CX)を算出する。
 なお各カメラa~nの座標系(ΣCX)を、スキャナ座標系(Σ)に変換する座標変換行列(CX)は、以下の(式13)に従って算出することができる。
  CX=(CL)(CLCX
              ・・・・・(式13)
 上記(式13)の右辺に示す座標変換行列は、相対位置算出部32と、キャリブレーション実行部31からの入力値である。
 このように、外部座標系対応座標変換行列算出部33は、相対位置算出部32と、キャリブレーション実行部31からの入力値に基づいて、カメラa~nの座標系(ΣCX)を、スキャナ座標系(Σ)に変換する座標変換行列(CX)を算出する。
 外部座標系対応座標変換行列算出部33が算出した座標変換行列(CX)、すなわち、カメラa~nの座標系(ΣCX)を、スキャナ座標系(Σ)に変換する座標変換行列(CX)は、図34に示すキャリブレーション実行装置30の表示情報生成部(可視化データ生成部)34に入力される。
 外部座標系対応座標変換行列算出部33が算出したこれらの座標変換行列(CX)が、図34に示すキャリブレーション実行装置30の表示情報生成部(可視化データ生成部)34に入力される。
 表示情報生成部(可視化データ生成部)34は、外部座標系対応座標変換行列算出部33が算出した座標変換行列(CX)に基づいて、カメラa~nの座標系(ΣCX)を構成する座標軸(X軸、Y軸、Z軸)を、スキャナ座標系(Σ)上に示した三次元画像を生成して、カメラa~nの三次元画像に併せて表示部36に出力する。
 なお、入力部35は、マウスやキーボードなどで構成され、表示情報生成部(可視化)データ生成部34が表示部36に描画する三次元画像の視点情報を入力する。
 表示情報生成部(可視化データ生成部)34は、入力部35から入力された視点の情報に基づいて、視点方向を決定し、決定した視点方向から観察したカメラa~nの三次元画像データを表示部36に出力する。
 表示情報生成部(可視化データ生成部)34が生成し表示部36に出力するカメラa~nの三次元画像データは、スキャナ座標系(Σ)上に示した三次元画像であり、カメラa~nの三次元画像に併せて、カメラa~n各々の座標系(ΣCX)を構成する座標軸(X軸、Y軸、Z軸)を重畳表示した画像である。
 表示画像の一例を図36に示す。
 図36に示すように、キャリブレーション実行装置30の表示部36には、カメラa~nの三次元画像データに併せて、カメラa~n各々の座標系(ΣCX)を構成する座標軸(X軸、Y軸、Z軸)の重畳表示画像が出力される。
 なお、図36に示す表示データの例は、カメラa~n全ての座標系(ΣCX)が、各カメラのレンズを原点とし、カメラ前方の光軸方向をZ軸とし、Z軸に垂直な下方向にY軸、Z軸の直交右方向にX軸が設定されている。これは、キャリブレーション実行部31において、正しいカメラ対応座標変換行列(CLCX)が算出されたことを意味する。
 すなわちキャリブレーション実行部31において、各カメラのカメラ座標系(ΣCx)を、予め規定した基準座標系であるキャリブレーション座標系(ΣCL)に変換するカメラ対応座標変換行列(CLCX)が正しく算出されていることを確認できる表示データである。
 なお、先に実施例1において図17を参照して説明したように、カメラ座標系(ΣCx)を構成する座標軸(X軸、Y軸、Z軸)については、例えば、各軸に対応づけて「X軸」、「Y軸」、「Z軸」等の軸の種類を示す識別子を併せて表示する構成としてもよい。さらに、より分かりやすくするため、各軸に異なる色を設定して表示する構成としてもよい。れる。例えば、X軸は赤色、Y軸は緑色、Z軸は青色等の色分けをして表示してもよい。
 キャリブレーション実行部31において、正しいカメラ対応座標変換行列(CLCX)が算出されていない場合の表示データの例を図36に示す。
 図36に示す表示データにおいてカメラaのカメラ座標系(ΣCa)は、カメラaのレンズ位置から離れた位置に原点が設定されている。
 これは、キャリブレーション実行部31において、カメラaの正しいカメラ対応座標変換行列(CLCa)が算出されていないことを意味する。
 このように、ユーザは、カメラa~nの三次元画像に併せて表示される各カメラ座標系(ΣCX)の原点位置や座表軸の方向(傾き)を確認することで、キャリブレーション実行部31におけるキャリブレーション処理、すなわち、カメラ対応座標変換行列(CLCX)の算出処理が成功したか否かを判定することが可能となる。
  [6.キャリブレーション実行装置のハードウェア構成例について]
 次に、図37を参照して、本開示のキャリブレーション実行装置30のハードウェア構成例について説明する。
 なお、先に説明したように、キャリブレーション実行装置30は、ロボット10とは別の独立した装置として構成可能であり、あるいは、ロボット10と一体化して構成してもよい。
 図37を参照してキャリブレーション実行装置30の構成例について説明する。
 CPU(Central Processing Unit)301は、ROM(Read Only Memory)302、または記憶部308に記憶されているプログラムに従って各種の処理を実行するデータ処理部として機能する。例えば、上述した実施例において説明したシーケンスに従った処理を実行する。RAM(Random Access Memory)303には、CPU301が実行するプログラムやデータなどが記憶される。これらのCPU301、ROM302、およびRAM303は、バス304により相互に接続されている。
 CPU301はバス304を介して入出力インタフェース305に接続され、入出力インタフェース305には、各種スイッチ、キーボード、タッチパネル、マウス、マイクロフォン、さらに、ユーザ入力部やカメラ、LiDAR GPS等、各種センサの検出データ取得部などよりなる入力部306、ディスプレイ、スピーカなどよりなる出力部307が接続されている。
 CPU301は、入力部306から入力される指令や状況データ等を入力し、各種の処理を実行し、処理結果を例えば出力部307に出力する。
 入出力インタフェース305に接続されている記憶部308は、例えばハードディスク等からなり、CPU301が実行するプログラムや各種のデータを記憶する。通信部309は、インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
 入出力インタフェース305に接続されているドライブ310は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア311を駆動し、データの記録あるいは読み取りを実行する。
  [7.本開示の構成のまとめ]
 以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
 なお、本明細書において開示した技術は、以下のような構成をとることができる。
 (1) センサのキャリブレーション処理を実行するキャリブレーション実行部と、
 前記キャリブレーション実行部におけるキャリブレーション処理が成功したか否かを確認可能な画像データを生成する表示情報生成部を有し、
 前記キャリブレーション実行部は、
 前記キャリブレーション処理として、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出する処理を実行し、
 前記表示情報生成部は、
 前記キャリブレーション実行部が算出した座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データを生成するキャリブレーション実行装置。
 (2) 前記第2座標系は、
 前記センサを装着した移動装置対応の移動装置座標系である(1)に記載のキャリブレーション実行装置。
 (3) 前記表示情報生成部が生成する画像データは、
 前記センサの三次元画像上に、前記センサ座標系を構成する原点および座標軸を重畳表示した画像データである(1)または(2)に記載のキャリブレーション実行装置。
 (4) 前記表示情報生成部が生成する画像データは、
 前記センサを装着した移動装置の三次元画像上に、前記センサ座標系を構成する原点および座標軸を重畳表示した画像データである(1)~(3)いずれかに記載のキャリブレーション実行装置。
 (5) 前記表示情報生成部が生成する画像データは、
 前記キャリブレーション実行部が算出した座標変換行列が正しい場合、
 前記画像データ内のセンサ画像に対するセンサ座標系の原点位置、および座標軸方向のいずれも本来のセンサ座標系に一致する画像データであり、
 前記キャリブレーション実行部が算出した座標変換行列が正しくない場合、
 前記画像データ内のセンサ画像に対するセンサ座標系の原点位置、および座標軸方向の少なくともいずれかが本来のセンサ座標系に一致しない画像データである(1)~(4)いずれかに記載のキャリブレーション実行装置。
 (6) 前記表示情報生成部が生成する画像データは、
 前記センサ座標系、および前記第2座標系のいずれとも異なる外部座標系上に前記センサの三次元画像、または前記センサを装着した移動装置の三次元画像を描画した画像データである(1)~(5)いずれかに記載のキャリブレーション実行装置。
 (7) 前記キャリブレーション実行装置は、
 前記センサ座標系を、前記センサ座標系および前記第2座標系のいずれとも異なる外部座標系に変換する外部座標系対応座標変換行列算出部を有する(1)~(6)いずれかに記載のキャリブレーション実行装置。
 (8) 前記外部座標系対応座標変換行列算出部は、
 前記キャリブレーション実行部が生成したセンサ座標系を第2座標系に変換する座標変換行列を入力し、該座標変換行列を利用して前記センサ座標系を前記外部座標系に変換する(7)に記載のキャリブレーション実行装置。
 (9) 前記キャリブレーション実行装置は、
 前記外部座標系上の画像、または点群情報を生成する外部装置を有し、
 前記表示情報生成部は、
 前記外部装置から、前記外部座標系上の画像、または点群情報を入力して前記画像データを生成する(7)または(8)に記載のキャリブレーション実行装置。
 (10) 前記外部装置は、
 前記センサ、または前記センサを装着した移動装置の画像、または点群情報を生成する装置である(9)に記載のキャリブレーション実行装置。
 (11) 前記外部装置は、
 3Dスキャナ、またはカメラ、またはデプスカメラである(9)または(10)に記載のキャリブレーション実行装置。
 (12) 前記キャリブレーション実行装置は、
 前記第2座標系を前記外部座標系に変換する座標変換行列を算出する相対位置算出部を有する(6)~(11)いずれかに記載のキャリブレーション実行装置。
 (13) 前記外部座標系対応座標変換行列算出部は、
 前記キャリブレーション実行部が生成したセンサ対応のセンサ座標系を第2座標系に変換する座標変換行列と、
 前記相対位置算出部が算出した前記第2座標系を前記外部座標系に変換する座標変換行列を入力し、
 入力した2つの座標変換行列を利用して、前記センサ座標系を前記外部座標系に変換する座標変換行列を算出する(12)に記載のキャリブレーション実行装置。
 (14) 前記表示情報生成部は、
 前記外部座標系対応座標変換行列算出部が算出した前記センサ座標系を前記外部座標系に変換する座標変換行列を利用して、
 前記センサの三次元画像、または前記センサを装着した移動装置の三次元画像上に、前記センサ座標系を構成する座標軸を重畳表示した画像データを生成する(13)に記載のキャリブレーション実行装置。
 (15) 前記表示情報生成部が生成する画像データは、
 前記センサの三次元画像上に、前記センサ座標系を構成する座標軸の各軸を異なる色の座標軸として重畳表示した画像データである(1)~(14)いずれかに記載のキャリブレーション実行装置。
 (16) 前記キャリブレーション実行部は、
 前記座標変換行列を逐次、算出するオンライン・キャリブレーション処理を実行する(1)~(15)いずれかに記載のキャリブレーション実行装置。
 (17) センサを装着した移動装置と、キャリブレーション実行装置を有するキャリブレーション・システムであり、
 前記キャリブレーション実行装置が、
 前記移動装置からセンサ検出情報を入力して、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出し、算出した座標変換行列を前記移動装置に出力し、
 前記移動装置が、
 前記キャリブレーション実行装置から入力した座標変換行列を適用した自律移動を実行し、
 前記キャリブレーション実行装置は、さらに、
 前記座標変換行列が正しく算出されたか否かを確認可能な画像データを生成する表示情報生成部を有するキャリブレーション・システム。
 (18) キャリブレーション実行装置が実行するキャリブレーション実行方法であり、
 キャリブレーション実行部が、
 センサの検出情報を入力し、該センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出するキャリブレーション実行ステップと、
 表示情報生成部が、
 前記キャリブレーション実行ステップにおいて算出した前記座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データを生成する画像データ生成ステップを有するキャリブレーション実行方法。
 (19) センサを装着した移動装置と、キャリブレーション実行装置を有するキャリブレーション・システムにおいて実行するキャリブレーション実行方法であり、
 前記キャリブレーション実行装置が、
 前記移動装置からセンサ検出情報を入力して、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出し、算出した座標変換行列を前記移動装置に出力する座標変換行列生成ステップと、
 前記移動装置が、
 前記キャリブレーション実行装置から入力した座標変換行列を適用した自律移動を実行する自律移動実行ステップを実行し、
 前記キャリブレーション実行装置は、さらに、
 前記座標変換行列生成ステップにおいて、前記座標変換行列が正しく算出されたか否かを確認可能な画像データを生成する表示情報生成ステップを実行するキャリブレーション実行方法。
 (20) キャリブレーション実行装置において、キャリブレーションを実行させるプログラムであり、
 キャリブレーション実行部に、
 センサの検出情報を入力させて、該センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出するキャリブレーション処理を実行させ、
 表示情報生成部に、
 前記座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データを生成させるプログラム。
 なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
 また、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 以上、説明したように、本開示の一実施例の構成によれば、センサ・キャリブレーションにおいて算出した座標変換行列が正しいか否かを視覚的に確認可能な画像を生成して表示する構成が実現される。
 具体的には、例えば、センサのキャリブレーションを実行するキャリブレーション実行部と、キャリブレーション実行部におけるキャリブレーション処理が成功したか否かを確認可能な画像データを生成する表示情報生成部を有する。キャリブレーション実行部は、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出し、表示情報生成部は、算出した座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データ、例えばセンサの三次元画像上にセンサ座標系を構成する原点および座標軸を重畳表示した画像データを生成して表示する。
 本構成により、センサ・キャリブレーションにおいて算出した座標変換行列が正しいか否かを視覚的に確認可能な画像を生成して表示する構成が実現される。
  10 ロボット
  11 カメラ
  12 デプスカメラ
  13 LiDAR
  14 IMU
  20 3Dスキャナ
  30 キャリブレーション実行装置
  31 キャリブレーション実行部
  32 相対位置算出部
  33 外部座標系対応座標変換行列算出部
  34 表示情報生成部(可視化データ生成部)
  35 入力部
  36 表示部
  37 オンライン・キャリブレーション実行部
  40 固定デプスカメラ
  50 キャリブレーション・システム
  60 オンライン・キャリブレーション・システム
 100 ロボット
 101 カメラ
 102 デプスカメラ
 103 LiDAR
 104 IMU
 110 ロボットA
 111 カメラA
 112 デプスカメラA
 113 LiDAR
 114 IMU
 115 ホイールオドメトリ
 116 自己位置推定部
 120 ロボットB
 121 カメラB
 122 デプスカメラB
 123 自己位置推定部
 124 センサ座標変換行列DB
 200 支柱
 201 カメラ
 211 3Dスキャナ
 301 CPU
 302 ROM
 303 RAM
 304 バス
 305 入出力インタフェース
 306 入力部
 307 出力部
 308 記憶部
 309 通信部
 310 ドライブ
 311 リムーバブルメディア

Claims (20)

  1.  センサのキャリブレーション処理を実行するキャリブレーション実行部と、
     前記キャリブレーション実行部におけるキャリブレーション処理が成功したか否かを確認可能な画像データを生成する表示情報生成部を有し、
     前記キャリブレーション実行部は、
     前記キャリブレーション処理として、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出する処理を実行し、
     前記表示情報生成部は、
     前記キャリブレーション実行部が算出した座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データを生成するキャリブレーション実行装置。
  2.  前記第2座標系は、
     前記センサを装着した移動装置対応の移動装置座標系である請求項1に記載のキャリブレーション実行装置。
  3.  前記表示情報生成部が生成する画像データは、
     前記センサの三次元画像上に、前記センサ座標系を構成する原点および座標軸を重畳表示した画像データである請求項1に記載のキャリブレーション実行装置。
  4.  前記表示情報生成部が生成する画像データは、
     前記センサを装着した移動装置の三次元画像上に、前記センサ座標系を構成する原点および座標軸を重畳表示した画像データである請求項1に記載のキャリブレーション実行装置。
  5.  前記表示情報生成部が生成する画像データは、
     前記キャリブレーション実行部が算出した座標変換行列が正しい場合、
     前記画像データ内のセンサ画像に対するセンサ座標系の原点位置、および座標軸方向のいずれも本来のセンサ座標系に一致する画像データであり、
     前記キャリブレーション実行部が算出した座標変換行列が正しくない場合、
     前記画像データ内のセンサ画像に対するセンサ座標系の原点位置、および座標軸方向の少なくともいずれかが本来のセンサ座標系に一致しない画像データである請求項1に記載のキャリブレーション実行装置。
  6.  前記表示情報生成部が生成する画像データは、
     前記センサ座標系、および前記第2座標系のいずれとも異なる外部座標系上に前記センサの三次元画像、または前記センサを装着した移動装置の三次元画像を描画した画像データである請求項1に記載のキャリブレーション実行装置。
  7.  前記キャリブレーション実行装置は、
     前記センサ座標系を、前記センサ座標系および前記第2座標系のいずれとも異なる外部座標系に変換する外部座標系対応座標変換行列算出部を有する請求項1に記載のキャリブレーション実行装置。
  8.  前記外部座標系対応座標変換行列算出部は、
     前記キャリブレーション実行部が生成したセンサ座標系を第2座標系に変換する座標変換行列を入力し、該座標変換行列を利用して前記センサ座標系を前記外部座標系に変換する請求項7に記載のキャリブレーション実行装置。
  9.  前記キャリブレーション実行装置は、
     前記外部座標系上の画像、または点群情報を生成する外部装置を有し、
     前記表示情報生成部は、
     前記外部装置から、前記外部座標系上の画像、または点群情報を入力して前記画像データを生成する請求項7に記載のキャリブレーション実行装置。
  10.  前記外部装置は、
     前記センサ、または前記センサを装着した移動装置の画像、または点群情報を生成する装置である請求項9に記載のキャリブレーション実行装置。
  11.  前記外部装置は、
     3Dスキャナ、またはカメラ、またはデプスカメラである請求項9に記載のキャリブレーション実行装置。
  12.  前記キャリブレーション実行装置は、
     前記第2座標系を前記外部座標系に変換する座標変換行列を算出する相対位置算出部を有する請求項6に記載のキャリブレーション実行装置。
  13.  前記外部座標系対応座標変換行列算出部は、
     前記キャリブレーション実行部が生成したセンサ対応のセンサ座標系を第2座標系に変換する座標変換行列と、
     前記相対位置算出部が算出した前記第2座標系を前記外部座標系に変換する座標変換行列を入力し、
     入力した2つの座標変換行列を利用して、前記センサ座標系を前記外部座標系に変換する座標変換行列を算出する請求項12に記載のキャリブレーション実行装置。
  14.  前記表示情報生成部は、
     前記外部座標系対応座標変換行列算出部が算出した前記センサ座標系を前記外部座標系に変換する座標変換行列を利用して、
     前記センサの三次元画像、または前記センサを装着した移動装置の三次元画像上に、前記センサ座標系を構成する座標軸を重畳表示した画像データを生成する請求項13に記載のキャリブレーション実行装置。
  15.  前記表示情報生成部が生成する画像データは、
     前記センサの三次元画像上に、前記センサ座標系を構成する座標軸の各軸を異なる色の座標軸として重畳表示した画像データである請求項1に記載のキャリブレーション実行装置。
  16.  前記キャリブレーション実行部は、
     前記座標変換行列を逐次、算出するオンライン・キャリブレーション処理を実行する請求項1に記載のキャリブレーション実行装置。
  17.  センサを装着した移動装置と、キャリブレーション実行装置を有するキャリブレーション・システムであり、
     前記キャリブレーション実行装置が、
     前記移動装置からセンサ検出情報を入力して、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出し、算出した座標変換行列を前記移動装置に出力し、
     前記移動装置が、
     前記キャリブレーション実行装置から入力した座標変換行列を適用した自律移動を実行し、
     前記キャリブレーション実行装置は、さらに、
     前記座標変換行列が正しく算出されたか否かを確認可能な画像データを生成する表示情報生成部を有するキャリブレーション・システム。
  18.  キャリブレーション実行装置が実行するキャリブレーション実行方法であり、
     キャリブレーション実行部が、
     センサの検出情報を入力し、該センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出するキャリブレーション実行ステップと、
     表示情報生成部が、
     前記キャリブレーション実行ステップにおいて算出した前記座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データを生成する画像データ生成ステップを有するキャリブレーション実行方法。
  19.  センサを装着した移動装置と、キャリブレーション実行装置を有するキャリブレーション・システムにおいて実行するキャリブレーション実行方法であり、
     前記キャリブレーション実行装置が、
     前記移動装置からセンサ検出情報を入力して、センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出し、算出した座標変換行列を前記移動装置に出力する座標変換行列生成ステップと、
     前記移動装置が、
     前記キャリブレーション実行装置から入力した座標変換行列を適用した自律移動を実行する自律移動実行ステップを実行し、
     前記キャリブレーション実行装置は、さらに、
     前記座標変換行列生成ステップにおいて、前記座標変換行列が正しく算出されたか否かを確認可能な画像データを生成する表示情報生成ステップを実行するキャリブレーション実行方法。
  20.  キャリブレーション実行装置において、キャリブレーションを実行させるプログラムであり、
     キャリブレーション実行部に、
     センサの検出情報を入力させて、該センサ対応のセンサ座標系を他の第2座標系に変換する座標変換行列を算出するキャリブレーション処理を実行させ、
     表示情報生成部に、
     前記座標変換行列が正しい座標変換行列であるか否かを視覚的に確認可能な画像データを生成させるプログラム。
PCT/JP2023/022872 2022-07-08 2023-06-21 キャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラム WO2024009767A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022-110233 2022-07-08
JP2022110233 2022-07-08

Publications (1)

Publication Number Publication Date
WO2024009767A1 true WO2024009767A1 (ja) 2024-01-11

Family

ID=89453266

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/022872 WO2024009767A1 (ja) 2022-07-08 2023-06-21 キャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラム

Country Status (1)

Country Link
WO (1) WO2024009767A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014128845A (ja) * 2012-12-28 2014-07-10 Fanuc Ltd ロボットシステム表示装置
WO2022176928A1 (ja) * 2021-02-18 2022-08-25 ファナック株式会社 教示装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014128845A (ja) * 2012-12-28 2014-07-10 Fanuc Ltd ロボットシステム表示装置
WO2022176928A1 (ja) * 2021-02-18 2022-08-25 ファナック株式会社 教示装置

Similar Documents

Publication Publication Date Title
WO2021093240A1 (en) Method and system for camera-lidar calibration
JP6465789B2 (ja) デプスカメラの内部パラメータを算出するプログラム、装置及び方法
JP6280525B2 (ja) カメラのミスキャリブレーションの実行時決定のためのシステムと方法
JP4492654B2 (ja) 3次元計測方法および3次元計測装置
JP5852364B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP4533659B2 (ja) レーザー計測により地図画像を生成する装置及び方法
JP6444027B2 (ja) 情報処理装置、情報処理装置の制御方法、情報処理システムおよびプログラム
JP7376268B2 (ja) 三次元データ生成装置及びロボット制御システム
CA2573728A1 (en) Method and apparatus for machine-vision
CN108283021A (zh) 使用来自机器人的相机的相机图像的检测边缘和从环境的三维模型取得的检测边缘来定位环境中的机器人
CN112258590B (zh) 一种基于激光的深度相机外参标定方法、设备及其存储介质
CN107025663A (zh) 视觉系统中用于3d点云匹配的杂波评分系统及方法
US11446822B2 (en) Simulation device that simulates operation of robot
JP5030953B2 (ja) 第2の対象物に対する第1対象物の相対位置を決定する方法及びシステム及び、対応するコンピュータプログラム及び対応するコンピュータ可読記録媒体
KR101782317B1 (ko) 3차원 스캐너를 이용한 로봇 캘리브레이션 장치 및 이를 이용한 로봇 캘리브레이션 방법
CN113196165A (zh) 信息投影系统、控制装置以及信息投影方法
Chang et al. Calibrating a mobile camera's parameters
WO2024009767A1 (ja) キャリブレーション実行装置、キャリブレーション・システム、および方法、並びにプログラム
CN115100287B (zh) 外参标定方法及机器人
KR20210057964A (ko) 촬영장비를 구비한 이동체의 위치정보를 판단하는 방법 및 시스템
CN115063489A (zh) 一种外参标定方法、装置、设备和存储介质
Rashd et al. Open-box target for extrinsic calibration of LiDAR, camera and industrial robot
CN117795552A (zh) 用于进行基于视觉的工具定位的方法和装置
CN111742349B (zh) 信息处理装置、信息处理方法以及信息处理存储介质
US20240013436A1 (en) Unconstrained calibration system and method for sensor suites in robotics