JP7577010B2 - Planned travel route creation device for a mobile object, and planned travel route creation program for a mobile object - Google Patents
Planned travel route creation device for a mobile object, and planned travel route creation program for a mobile object Download PDFInfo
- Publication number
- JP7577010B2 JP7577010B2 JP2021053455A JP2021053455A JP7577010B2 JP 7577010 B2 JP7577010 B2 JP 7577010B2 JP 2021053455 A JP2021053455 A JP 2021053455A JP 2021053455 A JP2021053455 A JP 2021053455A JP 7577010 B2 JP7577010 B2 JP 7577010B2
- Authority
- JP
- Japan
- Prior art keywords
- area
- route
- movement
- creating
- planned
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Description
本発明は、障害物を有した移動対象領域内を、移動体が障害物を避けて移動できるように、障害物を避けた移動体の移動予定ルートを作成する装置等に関する。 The present invention relates to a device that creates a planned movement route for a moving object that avoids obstacles so that the moving object can move through a target movement area that includes obstacles while avoiding the obstacles.
本出願人による発明である移動体の移動制御システムとして、移動対象面(移動対象領域)上を移動させる移動体の移動予定情報(移動予定ルート)を作成する移動予定情報作成処理と、移動体を移動予定情報に基づいて移動させるとともに、移動情報取得手段により取得された移動体の実際の移動情報と移動予定情報とを比較して移動体の移動を制御する移動制御処理と、を備えた移動体の移動制御システムが開示されている(特許文献1参照)。 The applicant has invented a mobile object movement control system that includes a movement schedule information creation process that creates movement schedule information (planned movement route) for a mobile object that moves on a movement target surface (movement target area), and a movement control process that moves the mobile object based on the movement schedule information and controls the movement of the mobile object by comparing the actual movement information of the mobile object acquired by a movement information acquisition means with the movement schedule information (see Patent Document 1).
上述した移動体の移動制御方法では、移動体を移動予定ルートとしてのジグザグなルートに沿って移動させるようにしているため、移動対象領域の形状によっては、非効率なルートで移動体を移動させる可能性があるという課題があった。
本発明は、上記課題に鑑み、移動対象領域の形状に応じて、効率的な移動予定ルートを的確に作成できるようにした移動体の移動予定ルート作成装置等を提供するものである。
In the above-mentioned method for controlling the movement of a moving body, the moving body is caused to move along a zigzag route as the planned movement route, so there was a problem that depending on the shape of the target movement area, the moving body may be caused to move along an inefficient route.
In view of the above-mentioned problems, the present invention provides a planned movement route creation device for a moving object, which is capable of accurately creating an efficient planned movement route in accordance with the shape of a target movement area.
本発明に係る移動体の移動予定ルート作成装置は、移動体を移動対象領域内の柱を避けて移動させるための移動予定ルートを作成する移動体の移動予定ルート作成装置であって、移動対象領域の位置を示す移動対象領域のXY座標情報に基づいて移動対象領域を区画する移動対象領域境界線で囲まれた移動対象領域を作成する移動対象領域作成手段と、移動対象領域内の柱の角の位置を示すXY座標情報に基づいて移動対象領域内に存在する柱を区画する柱領域境界線で囲まれた柱領域を作成する柱領域作成手段と、移動対象領域の位置を示すXY座標情報及び移動対象領域内の柱の角の位置を示すXY座標情報を利用して柱を避けた移動可能領域内を複数の分割領域に分割する移動可能領域分割手段と、複数の各分割領域内での移動体の移動予定ルートを作成する分割領域内移動予定ルート作成手段と、を備え、移動可能領域分割手段は、柱同士を繋ぐ第1の境界線、柱と移動対象領域境界線とを繋ぐ第2の境界線、柱と第1の境界線又は第2の境界線とを繋ぐ第3の境界線を作成して、移動対象領域内をこれら境界線で区画することにより、これら境界線、柱領域境界線、移動対象領域境界線で形成された分割領域境界線で囲まれた分割領域を作成する分割領域作成手段と、複数の各分割領域及び各柱領域にそれぞれ識別情報を付与して複数の各分割領域を認識する分割領域認識手段と、を備え、分割領域内移動予定ルート作成手段は、移動対象領域をY軸に沿って等間隔に区切るX軸と平行な複数の横直線を作成する横直線作成手段と、移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する縦直線作成手段と、分割領域境界線と横直線との交点を認識する第1の交点認識手段と、分割領域境界線と縦直線との交点を認識する第2の交点認識手段と、各分割領域境界線上の交点を横直線で繋いで形成されたY軸に沿って進む分割領域毎のジグザグな第1のルートを作成する第1のルート作成手段と、各分割領域境界線上の交点を縦直線で繋いで形成されたX軸に沿って進む分割領域毎のジグザグな第2のルートを作成する第2のルート作成手段と、分割領域毎の第1のルートに沿って移動する場合の移動効率を算出する第1の移動効率算出手段と、分割領域毎の第2のルートに沿って移動する場合の移動効率を算出する第2の移動効率算出手段と、同じ分割領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該分割領域内での移動予定ルートとして選択するルート選択手段と、を備えたことを特徴とする。
また、分割領域作成手段は、移動対象領域内に存在する複数の柱を、柱の重心のX座標情報の近いもの同士、柱の重心のY座標情報の近いもの同士に、グループ分けする柱グループ分け手段と、各柱の複数の角にそれぞれ識別情報を付与して柱の角を認識する柱角認識手段と、柱の重心のX座標情報の近いもの同士としてグループ分けされた一方の柱の角と他方の柱の角とを接続する第1の境界線としての第1の接続線、及び、柱の重心のY座標情報の近いもの同士としてグループ分けされた一方の柱の角と他方の柱の角とを接続する第1の境界線としての第1の接続線を作成する第1の接続線作成手段と、柱のうち第1の接続線が接続されていない角と移動対象領域境界線とを接続する第2の境界線としての第2の接続線を作成する第2の接続線作成手段と、柱のうち第1の接続線及び第2の接続線が接続されていない角と既に作成した第1の接続線又は第2の接続線とを接続する第3の境界線としての第3の接続線を作成する第3の接続線作成手段と、を備えたことを特徴とする。
また、分割領域間での移動体の移動予定ルートを作成する分割領域間移動予定ルート作成手段を備えたことを特徴とする。
また、分割領域間移動予定ルート作成手段は、一方の分割領域の分割領域内移動予定ルートの終点と他方の分割領域の分割領域内移動予定ルートの始点とを直線で繋いだ分割領域間移動予定ルートを作成する分割領域間直線移動予定ルート作成手段と、分割領域間直線移動予定ルート作成手段で作成した分割領域間直線移動予定ルートと移動対象領域境界線又は柱領域境界線とが接触した場合に、移動対象領域境界線又は柱領域境界線と接触しない分割領域間移動予定ルートである分割領域間迂回移動予定ルートを作成する分割領域間迂回移動予定ルート作成手段と、を備えたことを特徴とする。
本発明に係る移動体を移動対象領域内の障害物を避けて移動させるための移動予定ルートを作成する移動体の移動予定ルート作成処理プログラムは、コンピュータを、移動対象領域の位置を示す移動対象領域のXY座標情報に基づいて移動対象領域を区画する移動対象領域境界線で囲まれた移動対象領域を作成する移動対象領域作成手段、移動対象領域内の柱の位置を示すXY座標情報に基づいて移動対象領域内に存在する柱を区画する柱領域境界線で囲まれた柱領域を作成する柱領域作成手段、柱同士を繋ぐ第1の境界線、柱と移動対象領域境界線とを繋ぐ第2の境界線、柱と第1の境界線又は第2の境界線とを繋ぐ第3の境界線を作成して、移動対象領域内をこれら境界線で区画することにより、これら境界線、柱領域境界線、移動対象領域境界線で形成された分割領域境界線で囲まれた分割領域を作成する分割領域作成手段、複数の各分割領域及び各柱領域にそれぞれ識別情報を付与して複数の各分割領域を認識する分割領域認識手段、移動対象領域をY軸に沿って等間隔に区切るX軸と平行な複数の横直線を作成する横直線作成手段、移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する縦直線作成手段、分割領域境界線と横直線との交点を認識する第1の交点認識手段、分割領域境界線と縦直線との交点を認識する第2の交点認識手段、各分割領域境界線上の交点を横直線で繋いで形成されたY軸に沿って進む分割領域毎のジグザグな第1のルートを作成する第1のルート作成手段、
各分割領域境界線上の交点を縦直線で繋いで形成されたX軸に沿って進む分割領域毎のジグザグな第2のルートを作成する第2のルート作成手段、同じ分割領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該分割領域内での移動予定ルートとして選択するルート選択手段、として機能させるための移動体の移動予定ルート作成処理プログラムとした。
本発明によれば、移動対象領域の形状に応じて、移動対象領域内の障害物を避けて移動体を移動させるための効率的な移動予定ルートを的確に作成できるようにした移動体の移動予定ルート作成装置、及び、移動予定ルート作成処理プログラムを提供できる。
The planned movement route creation device for a moving body according to the present invention is a planned movement route creation device for a moving body that creates a planned movement route for moving the moving body while avoiding pillars within a movement target area, and includes a movement target area creation means that creates a movement target area surrounded by a movement target area boundary line that divides the movement target area based on XY coordinate information of the movement target area that indicates the position of the movement target area, a pillar area creation means that creates a pillar area surrounded by a pillar area boundary line that divides a pillar that exists within the movement target area based on XY coordinate information that indicates the position of a corner of a pillar within the movement target area, and a pillar area creation means that creates a pillar area surrounded by a pillar area boundary line that divides a pillar that exists within the movement target area based on XY coordinate information that indicates the position of the movement target area and the ... corner of a pillar within the movement target area. The mobile area dividing means divides a movable area avoiding pillars into a plurality of divided areas, and a divided area planned movement route creating means creates a planned movement route of the moving body within each of the plurality of divided areas, the movable area dividing means creating a first boundary line connecting pillars , a second boundary line connecting the pillar and the movement target area boundary line, and a third boundary line connecting the pillar and the first boundary line or the second boundary line, and dividing the movement target area with these boundaries, thereby creating a divided area surrounded by the divided area boundary line formed by these boundaries, the pillar area boundary line, and the movement target area boundary line, and a divided area creating means assigning identification information to each of the plurality of divided areas and each pillar area. and divided area recognizing means for recognizing each of the plurality of divided areas by dividing the area to be moved into a plurality of horizontal lines parallel to the X-axis at equal intervals along the Y-axis, and the intra-divided area planned movement route creating means includes horizontal line creating means for creating a plurality of horizontal lines parallel to the X-axis that divide the area to be moved into into a plurality of vertical lines parallel to the Y-axis that divide the area to be moved into into into a plurality of vertical lines parallel to the X-axis that divide the area to be moved into ... The system is characterized by comprising: a second route creation means for creating a zigzag second route for each divided area that proceeds along an X-axis formed by connecting the intersections with vertical straight lines; a first movement efficiency calculation means for calculating the movement efficiency when moving along the first route for each divided area; a second movement efficiency calculation means for calculating the movement efficiency when moving along the second route for each divided area; and a route selection means for comparing the movement efficiency when moving along the first route and the movement efficiency when moving along the second route within the same divided area, and selecting the route with the better movement efficiency from the first route and the second route as the planned movement route within the divided area.
The divided area creating means is characterized by comprising: a pillar grouping means for grouping a plurality of pillars existing within the movement target area into groups of pillars having similar X-coordinate information of their center of gravity and pillars having similar Y-coordinate information of their center of gravity; a pillar corner recognizing means for recognizing the corners of the pillars by assigning identification information to a plurality of corners of each pillar ; a first connecting line creating means for creating a first connecting line as a first boundary line connecting a corner of one pillar grouped as having similar X-coordinate information of its center of gravity and a corner of the other pillar , and a first connecting line as a first boundary line connecting a corner of one pillar grouped as having similar Y-coordinate information of its center of gravity and a corner of the other pillar , the first connecting line being a first boundary line connecting a corner of one pillar not connected to the first connecting line and a corner of the other pillar, the second connecting line creating means for creating a second connecting line as a second boundary line connecting a corner of the pillar not connected to the first connecting line and the movement target area boundary line; and a third connecting line creating means for creating a third connecting line as a third boundary line connecting a corner of the pillar not connected to the first and second connecting lines and the already created first connecting line or second connecting line.
The present invention is also characterized by comprising an inter-division area planned movement route creating means for creating a planned movement route of the mobile object between the division areas.
The inter-divided area planned movement route creation means is characterized by comprising: an inter-divided area straight line planned movement route creation means for creating a planned movement route between divided areas by connecting an end point of a planned movement route within one divided area and a start point of a planned movement route within the divided area of the other divided area with a straight line; and an inter-divided area detour planned movement route creation means for creating an inter-divided area detour planned movement route, which is a planned movement route between divided areas that does not come into contact with the movement target area boundary line or the pillar area boundary line, when the planned straight line movement route between divided areas created by the inter-divided area straight line movement planned route creation means comes into contact with the movement target area boundary line or the pillar area boundary line.
A planned movement route creation processing program for a moving body according to the present invention, which creates a planned movement route for moving a moving body while avoiding obstacles within a movement target area, comprises: a movement target area creation means for creating a movement target area surrounded by movement target area boundary lines that divide the movement target area based on XY coordinate information of the movement target area that indicates the position of the movement target area; a pillar area creation means for creating a pillar area surrounded by pillar area boundary lines that divide pillars present within the movement target area based on XY coordinate information that indicates the position of a pillar within the movement target area; a first boundary line connecting pillars , a second boundary line connecting the pillar and the movement target area boundary line, and a third boundary line connecting the pillar and the first boundary line or the second boundary line, and creating a boundary line connecting the pillar and the movement target area boundary line to divide the movement target area by these boundary lines, a divided area creation means for creating a divided area surrounded by a divided area boundary formed by a line, a pillar area boundary, and a movement target area boundary; a divided area recognition means for recognizing each of the plurality of divided areas by assigning identification information to each of the plurality of divided areas and each pillar area; a horizontal line creation means for creating a plurality of horizontal lines parallel to the X axis which divide the movement target area at equal intervals along the Y axis; a vertical line creation means for creating a plurality of vertical lines parallel to the Y axis which divide the movement target area at equal intervals along the X axis; a first intersection recognition means for recognizing an intersection between the divided area boundary line and the horizontal lines; a second intersection recognition means for recognizing an intersection between the divided area boundary line and the vertical lines; a first route creation means for creating a zigzag first route for each divided area proceeding along the Y axis formed by connecting the intersections on each divided area boundary line with horizontal lines;
The program is a planned movement route creation processing program for a moving body to function as a second route creation means for creating a zigzag second route for each divided area that proceeds along an X-axis formed by connecting the intersections on the boundary lines of each divided area with vertical straight lines, and a route selection means for comparing the movement efficiency when moving along the first route within the same divided area with the movement efficiency when moving along the second route, and selecting the route with the better movement efficiency from the first route and the second route as the planned movement route within the divided area.
According to the present invention, it is possible to provide a planned movement route creation device for a moving body, and a planned movement route creation processing program, which are capable of accurately creating an efficient planned movement route for moving a moving body while avoiding obstacles within a target movement area, in accordance with the shape of the target movement area.
実施形態に係る移動体の移動予定ルート作成装置は、移動体を移動対象領域内の障害物を避けて移動させるための移動体の移動予定ルート、即ち、当該移動対象領域内を移動させる移動体の障害物回避移動予定ルートを作成する装置である。
当該移動体の移動予定ルート作成装置は、移動対象領域作成手段と、障害物領域作成手段と、移動可能領域分割手段と、分割領域内移動予定ルート作成手段と、分割領域間移動予定ルート作成手段とを備える。
即ち、移動対象領域作成手段は、移動対象領域の位置を示す移動対象領域のXY座標情報(即ち、移動対象領域の平面座標情報)に基づいて移動対象領域を区画する移動対象領域境界線で囲まれた移動対象領域を作成する手段である。
障害物領域作成手段は、移動対象領域内の障害物の位置を示すXY座標情報に基づいて移動対象領域内に存在する障害物を区画する障害物領域境界線で囲まれた障害物領域を作成する手段である。
移動可能領域分割手段は、移動対象領域の位置を示すXY座標情報及び移動対象領域内の障害物の位置を示すXY座標情報を利用して障害物を避けた移動可能領域内を複数の分割領域に分割する手段である。
分割領域内移動予定ルート作成手段は、複数の各分割領域内での移動体の移動予定ルートを作成する手段である。
分割領域間移動予定ルート作成手段は、分割領域間での移動体の移動予定ルートを作成する手段である。
The planned movement route creation device for a moving body of the embodiment is a device that creates a planned movement route for a moving body to move while avoiding obstacles within a target movement area, i.e., an obstacle avoidance planned movement route for a moving body moving within the target movement area.
The planned movement route creation device for a moving object includes a movement target area creation means, an obstacle area creation means, a movable area dividing means, an intra-divided area planned movement route creation means, and an inter-divided area planned movement route creation means.
That is, the movement target area creation means is a means for creating a movement target area surrounded by a movement target area boundary line that divides the movement target area based on the XY coordinate information of the movement target area (i.e., the planar coordinate information of the movement target area) indicating the position of the movement target area.
The obstacle area creation means is means for creating an obstacle area surrounded by obstacle area boundaries that partition obstacles present within the movement target area based on XY coordinate information indicating the position of the obstacle within the movement target area.
The movable area dividing means divides the movable area into a plurality of divided areas by using XY coordinate information indicating the position of the target area of movement and XY coordinate information indicating the positions of obstacles within the target area of movement, while avoiding obstacles.
The intra-divided area planned movement route creation means is means for creating a planned movement route of the mobile object within each of the plurality of divided areas.
The inter-divided area planned movement route creation means is a means for creating a planned movement route of a moving object between the divided areas.
そして、移動可能領域分割手段は、分割領域作成手段と、分割領域認識手段とを備える。
当該分割領域作成手段は、障害物同士を繋ぐ第1の境界線、障害物と移動対象領域境界線とを繋ぐ第2の境界線、障害物と第1の境界線又は第2の境界線とを繋ぐ第3の境界線を作成して、移動対象領域内をこれら境界線で区画することにより、これら境界線、障害物領域境界線、移動対象領域境界線で形成された分割領域境界線で囲まれた分割領域を作成する手段である。
分割領域認識手段は、複数の各分割領域及び各障害物領域にそれぞれ識別情報を付与して複数の各分割領域を認識する手段である。
また、分割領域内移動予定ルート作成手段は、横直線作成手段と、縦直線作成手段と、第1の交点認識手段と、第2の交点認識手段と、第1のルート作成手段と、第2のルート作成手段と、第1の移動効率算出手段と、第1の移動効率算出手段と、ルート選択手段とを備える。
横直線作成手段は、移動対象領域をY軸に沿って等間隔に区切るX軸と平行な複数の横直線を作成する手段である。
縦直線作成手段は、移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する手段である。
第1の交点認識手段は、分割領域境界線と横直線との交点を認識する手段である。
第2の交点認識手段は、分割領域境界線と縦直線との交点を認識する手段である。
第1のルート作成手段は、各分割領域境界線上の交点を横直線で繋いで形成されたY軸に沿って進む分割領域毎のジグザグな第1のルートを作成する手段である。
第2のルート作成手段は、各分割領域境界線上の交点を縦直線で繋いで形成されたX軸に沿って進む分割領域毎のジグザグな第2のルートを作成する手段である。
第1の移動効率算出手段は、分割領域毎の第1のルートに沿って移動する場合の移動効率を算出する手段である。
第2の移動効率算出手段は、分割領域毎の第2のルートに沿って移動する場合の移動効率を算出する手段である。
ルート選択手段は、同じ分割領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該分割領域内での移動予定ルートとして選択する手段である。
そして、上記分割領域作成手段は、より具体的には、移動対象領域内に存在する複数の障害物を、X座標情報の近いもの同士、Y座標情報の近いもの同士に、グループ分けする障害物グループ分け手段と、各障害物の複数の角にそれぞれ識別情報を付与して障害物の角を認識する障害物角認識手段と、X座標情報の近いもの同士としてグループ分けされた一方の障害物の角と他方の障害物の角とを接続する第1の接続線、及び、Y座標情報の近いもの同士としてグループ分けされた一方の障害物の角と他方の障害物の角とを接続する第1の接続線を作成する第1の接続線作成手段と、障害物のうち第1の接続線が接続されていない角と移動対象領域境界線とを接続する第2の接続線を作成する第2の接続線作成手段と、障害物のうち第1の接続線及び第2の接続線が接続されていない角と既に作成した第1の接続線又は第2の接続線とを接続する第3の接続線を作成する第3の接続線作成手段とを備えた構成とした。
また、上記分割領域間移動予定ルート作成手段は、より具体的には、一方の分割領域の分割領域内移動予定ルートの終点と他方の分割領域の分割領域内移動予定ルートの始点とを直線で繋いだ分割領域間移動予定ルートを作成する分割領域間直線移動予定ルート作成手段と、分割領域間直線移動予定ルート作成手段で作成した分割領域間直線移動予定ルートと移動対象領域境界線又は障害物領域境界線とが接触した場合に、移動対象領域境界線又は障害物領域境界線と接触しない分割領域間移動予定ルートである分割領域間迂回移動予定ルートを作成する分割領域間迂回移動予定ルート作成手段とを備えた構成とした。
The movable area dividing means includes a divided area creating means and a divided area recognizing means.
The divided area creation means creates a first boundary line connecting obstacles to each other, a second boundary line connecting the obstacles to the movement target area boundary line, and a third boundary line connecting the obstacles to the first boundary line or the second boundary line, and divides the movement target area with these boundary lines, thereby creating a divided area surrounded by divided area boundary lines formed by these boundaries, the obstacle area boundary line, and the movement target area boundary line.
The divided area recognition means is a means for recognizing each of the plurality of divided areas by providing identification information to each of the plurality of divided areas and each of the obstacle areas.
In addition, the planned movement route creation means within the divided area includes a horizontal line creation means, a vertical line creation means, a first intersection recognition means, a second intersection recognition means, a first route creation means, a second route creation means, a first movement efficiency calculation means, a first movement efficiency calculation means, and a route selection means.
The horizontal line creating means creates a plurality of horizontal lines parallel to the X axis that divide the movement target area at equal intervals along the Y axis.
The vertical line creating means creates a plurality of vertical lines parallel to the Y axis that divide the movement target area at equal intervals along the X axis.
The first intersection recognition means is a means for recognizing an intersection between a divided area boundary line and a horizontal straight line.
The second intersection recognition means is a means for recognizing an intersection between a divided area boundary line and a vertical straight line.
The first route creation means creates a zigzag first route for each divided area that proceeds along the Y axis formed by connecting the intersections on the boundaries of the divided areas with horizontal straight lines.
The second route creation means creates a zigzag second route for each divided area that proceeds along the X-axis formed by connecting the intersections on the boundaries of the divided areas with vertical straight lines.
The first movement efficiency calculation means is means for calculating the movement efficiency when moving along the first route for each divided area.
The second movement efficiency calculation means is means for calculating the movement efficiency when moving along the second route for each divided area.
The route selection means is a means for comparing the travel efficiency when moving along a first route and the travel efficiency when moving along a second route within the same divided area, and selecting the route having the better travel efficiency from the first route and the second route as the planned travel route within the divided area.
More specifically, the divided area creating means includes obstacle grouping means for grouping a plurality of obstacles present within the movement target area into groups of obstacles having similar X-coordinate information and obstacles having similar Y-coordinate information; obstacle angle recognizing means for recognizing the corners of the obstacles by assigning identification information to a plurality of corners of each obstacle; first connection line creating means for creating a first connection line connecting a corner of one obstacle grouped as having similar X-coordinate information to a corner of the other obstacle grouped as having similar Y-coordinate information, and a first connection line connecting a corner of one obstacle grouped as having similar Y-coordinate information to a corner of the other obstacle grouped as having similar Y-coordinate information; second connection line creating means for creating a second connection line connecting a corner of the obstacle not connected to the first connection line to the movement target area boundary line; and third connection line creating means for creating a third connection line connecting a corner of the obstacle not connected to the first and second connection lines to the already created first connection line or second connection line.
In addition, more specifically, the inter-divided area planned movement route creation means is configured to include an inter-divided area straight line planned movement route creation means for creating a planned movement route between divided areas by connecting an end point of a planned movement route within one divided area and a start point of a planned movement route within the divided area of the other divided area with a straight line, and an inter-divided area detour planned movement route creation means for creating an inter-divided area detour planned movement route, which is a planned movement route between divided areas that does not come into contact with the movement target area boundary line or the obstacle area boundary line, when the straight line planned movement route between divided areas created by the inter-divided area straight line planned movement route creation means comes into contact with the movement target area boundary line or the obstacle area boundary line.
実施形態に係る移動予定ルート作成装置を構成する、移動対象領域作成手段、障害物領域作成手段、障害物グループ分け手段、障害物角認識手段、第1の接続線作成手段、第2の接続線作成手段、第3の接続線作成手段、分割領域認識手段、横直線作成手段、縦直線作成手段、第1の交点認識手段、第2の交点認識手段、第1のルート作成手段、第2のルート作成手段、第1の移動効率算出手段、第2の移動効率算出手段、ルート選択手段、分割領域間移動予定ルート作成手段は、制御手段により実現され、当該各手段を実行する制御手段は、各手段が実行する処理の手順を示す処理プログラムと、当該処理プログラムによる情報処理を実現するコンピュータ等のハードウエア資源とにより構成される。
換言すれば、実施形態に係る移動予定ルート作成処理プログラムは、コンピュータを、上述した移動対象領域作成手段、障害物領域作成手段、障害物グループ分け手段、障害物角認識手段、第1の接続線作成手段、第2の接続線作成手段、第3の接続線作成手段、分割領域認識手段、横直線作成手段、縦直線作成手段、第1の交点認識手段、第2の交点認識手段、第1のルート作成手段、第2のルート作成手段、第1の移動効率算出手段、第2の移動効率算出手段、ルート選択手段、分割領域間移動予定ルート作成手段として機能させるプログラムである。
The movement target area creation means, obstacle area creation means, obstacle grouping means, obstacle angle recognition means, first connecting line creation means, second connecting line creation means, third connecting line creation means, divided area recognition means, horizontal line creation means, vertical line creation means, first intersection recognition means, second intersection recognition means, first route creation means, second route creation means, first movement efficiency calculation means, second movement efficiency calculation means, route selection means, and inter-divided area planned movement route creation means, which constitute the planned movement route creation device of the embodiment, are realized by a control means, and the control means which executes each of the means is composed of a processing program that indicates the procedure of processing executed by each means, and hardware resources such as a computer that realizes information processing by the processing program.
In other words, the planned movement route creation processing program of the embodiment is a program that causes a computer to function as the above-mentioned movement target area creation means, obstacle area creation means, obstacle grouping means, obstacle angle recognition means, first connecting line creation means, second connecting line creation means, third connecting line creation means, divided area recognition means, horizontal line creation means, vertical line creation means, first intersection recognition means, second intersection recognition means, first route creation means, second route creation means, first movement efficiency calculation means, second movement efficiency calculation means, route selection means, and inter-divided area planned movement route creation means.
上述した移動対象領域作成手段及び障害物領域作成手段により、図1,図13に示した移動対象領域及び障害物領域の作成処理(phase1)が実行される。
障害物グループ分け手段により、図2,図14に示した障害物グループ分け処理(phase2)が実行される。
障害物角認識手段により、図3,図15に示した障害物角認識処理(phase3)が実行される。
第1の接続線作成手段により、図4,図16に示した障害物間境界線作成処理(phase4)が実行される。
第2の接続線作成手段及び第3の接続線作成手段により、図5,図6,図17に示した分割領域区分け処理(phase5)が実行される。
分割領域認識手段により、図7,図8,図18,図26乃至図28に示した分割領域認識処理(phase6)が実行される。
また、横直線作成手段により、図9,図19に示した等間隔直線経路作成処理(phase7)が実行される。
第1の交点認識手段により、図10,図19に示した交点座標抽出処理(phase8)、及び、図11,図20,図29に示したエリア毎交点座標抽出処理(phase9)が実行される。
第1のルート作成手段により、図12,図21,図29,図30に示した分割領域内ジグザグ移動予定ルート作成処理(phase10)が実行される。
第1の移動効率算出手段により、分割領域毎の第1のルートに沿って移動する場合の図22に示した移動コスト計算処理(phase11)が実行される。
縦直線作成手段により、等間隔直線経路作成処理(phase7)を置き換えた処理である図23のステップS230に示したphase12が実行される。
第2の交点認識手段により、交点座標抽出処理(phase8)を置き換えた処理である図23のステップS240に示したphase13、及び、エリア毎交点座標抽出処理(phase9)と同じ処理である図23のステップS250に示したphase14が実行される。
第2のルート作成手段により、分割領域内ジグザグ移動予定ルート作成処理(phase10)を置き換えた処理である図23のステップS260に示したphase15が実行される。
第2の移動効率算出手段により、図23のステップS270に示したphase16が実行される。つまり、分割領域毎の第2のルートに沿って移動する場合において、図22に示した移動コスト計算処理(phase11)と同じ移動コスト計算処理が実行される。
ルート選択手段により、図24に示したルート選択処理(phase17)が実行される。
分割領域間移動予定ルート作成手段により、図12,図25に示した分割領域間移動予定ルート作成処理が実行される。
尚、分割領域間移動予定ルート作成手段の分割領域間直線移動予定ルート作成手段によって、分割領域間直線移動予定ルート作成処理(図25の経路探索アルゴリズム部分以外の部分)が実行されるとともに、分割領域間移動予定ルート作成手段の分割領域間迂回移動予定ルート作成手段によって、分割領域間迂回移動予定ルート作成処理としての図25の経路探索アルゴリズム部分の処理が実行される。
The above-mentioned movement target area creating means and obstacle area creating means execute the movement target area and obstacle area creating process (phase 1) shown in FIG. 1 and FIG.
The obstacle grouping means executes the obstacle grouping process (phase 2) shown in FIG. 2 and FIG.
The obstacle angle recognition means executes the obstacle angle recognition process (phase 3) shown in FIG. 3 and FIG.
The first connection line generating means executes the obstacle boundary line generating process (phase 4) shown in FIG. 4 and FIG.
The second connection line creating means and the third connection line creating means execute the division area division process (phase 5) shown in FIGS.
The divided area recognition means executes the divided area recognition process (phase 6) shown in FIGS.
Further, the horizontal straight line creating means executes the equally spaced straight line path creating process (phase 7) shown in FIG. 9 and FIG.
The first intersection recognition means executes the intersection coordinate extraction process (phase 8) shown in Figs. 10 and 19, and the area-specific intersection coordinate extraction process (phase 9) shown in Figs.
The first route creation means executes the process of creating a zigzag movement planned route within a divided area (phase 10) shown in Figs.
The first movement efficiency calculation means executes the movement cost calculation process (phase 11) shown in FIG. 22 when moving along the first route for each divided area.
The vertical straight line creating means executes
The second intersection recognition means executes
The second route generating means executes
The second movement efficiency calculation means executes
The route selection means executes the route selection process (phase 17) shown in FIG.
The inter-divided area planned travel route creating means executes the inter-divided area planned travel route creating process shown in FIG. 12 and FIG.
In addition, the inter-divided area straight-line movement planned route creation means of the inter-divided area movement planned route creation means executes the inter-divided area straight-line movement planned route creation process (the part other than the route search algorithm part of Figure 25), and the inter-divided area detour movement planned route creation means of the inter-divided area movement planned route creation means executes the processing of the route search algorithm part of Figure 25 as the inter-divided area detour movement planned route creation process.
移動体は、実施形態に係る移動体の移動予定ルート作成装置により作成された移動予定ルートに基づいて、移動対象領域内の移動対象面である例えば床面Fを移動することができるように構成された移動体1である(図31参照)。
制御手段は、例えば図31に示すように、移動体1に搭載されている。
従って、この場合、移動体1の移動予定ルートを作成するとともに、当該作成された移動予定ルート(移動予定情報(XY座標情報))に基づいて移動体1の移動制御を行う制御手段50を備えた移動体1となる。
尚、移動体1の移動予定ルートを作成する制御手段は、移動体1に搭載されたコンピュータではなく、移動体1とは別個のパーソナルコンピュータ等のコンピュータと、当該コンピュータにより処理される上述した処理プログラムとにより構成されてもよい。この場合、当該コンピュータに、後述するように、移動体1を移動させる移動対象領域のXY座標情報と当該移動対象領域内の障害物のXY座標情報とを入力して、移動対象領域及び障害物を認識させて、移動予定ルートを作成させる。そして、当該作成された移動予定ルートを移動体1の制御手段に入力することによって、当該移動体1の制御手段が、当該移動予定ルートに基づいて移動体1を移動対象領域内の移動可能領域内で移動させることができるようになる。
The moving body is a moving
The control means is mounted on the moving
Therefore, in this case, the moving
The control means for creating the planned movement route of the moving
移動予定ルート作成処理においては、まず、例えば屋内における移動対象領域Aとしての例えば床面領域と壁との境界位置における壁の角のXY座標情報、及び、当該移動対象領域Aとしての床面領域内に存在する障害物Bとしての柱(以下、柱Bという)の角のXY座標情報を、コンピュータに予め入力しておく。これにより、コンピュータは、入力されたXY座標情報を、当該コンピュータが管理する表示画面D上でのXY座標情報に変換して、記憶手段に記録する。
即ち、予めコンピュータに、移動対象領域Aの位置を示す移動対象領域のXY座標情報として、床面領域と壁との境界位置における壁の角のXY座標情報と、柱(障害物)Bの位置を示すXY座標情報として、柱Bの角のXY座標情報とを入力しておく。
尚、コンピュータは、当該移動対象領域A及び柱(障害物)Bを認識して例えば表示画面Dに表示し(図1参照)、最終的には、作成した移動予定ルートを認識して例えば表示画面Dに表示する(図12参照)。
In the process of creating a planned movement route, first, XY coordinate information of a corner of a wall at a boundary position between a floor surface area and a wall as a target movement area A indoors, and XY coordinate information of a corner of a pillar (hereinafter referred to as pillar B) as an obstacle B existing in the floor surface area as the target movement area A are inputted in advance to a computer. Then, the computer converts the inputted XY coordinate information into XY coordinate information on a display screen D managed by the computer, and records the converted information in a storage means.
That is, the XY coordinate information of the corner of the wall at the boundary position between the floor area and the wall is inputted into the computer in advance as the XY coordinate information of the area to be moved indicating the position of area A, and the XY coordinate information of the corner of pillar B is inputted as the XY coordinate information of the area to be moved indicating the position of pillar (obstacle) B.
Furthermore, the computer recognizes the target movement area A and the pillar (obstacle) B and displays them, for example, on a display screen D (see Figure 1), and finally recognizes the created planned movement route and displays it, for example, on a display screen D (see Figure 12).
尚、本発明において、XY座標情報は、移動対象領域Aでの実際のXY座標情報、及び、表示画面Dを制御するコンピュータが当該実際のXY座標情報に基づいて表示画面D上で管理するXY座標情報である。
コンピュータが表示画面D上で管理する、X軸方向の最小間隔、及び、Y軸方向の最小間隔は、コンピュータが搭載するXY座標間隔設定プログラムに基づいて、実際の移動対象領域A上における一定の間隔に設定できるようになっている。
例えば、コンピュータが表示画面D上で管理するX軸方向の最小間隔及びY軸方向の最小間隔が、実際の10cmに対応するように設定される。この場合、例えば実際の移動対象領域Aの外に設定された基準点OからX軸方向の正方向に10cm離れた位置a、当該位置aからY軸方向の正方向に10cm離れた位置bは、コンピュータによって、表示画面D上における基準点Oを基準としたXY座標値、a=(1,0),b=(1,1)として記録されて管理されることになる。
また、実際の移動対象領域Aを区画する壁の角のXY座標情報、実際の各柱B,B…の各角のXY座標情報は、例えば、実際の移動対象領域Aの外に設定された基準点Oから、壁の各角の位置までの距離、当該基準点Oから各柱B,B…の各角の位置までの距離を、測距計などの測定手段を用いて測定した測定値を入力したり、あるいは、設計図等から入力することにより、記憶手段に記録される。
例えば、図1に示すように、移動対象領域Aの一番左下の角から左斜め下の位置を基準点Oに決めた場合を例にして説明する。
この場合、測定した当該基準点Oから各角までの距離をコンピュータに入力することで、当該コンピュータが、XY座標間隔設定プログラムに基づいて、例えば距離10cmを表示画面DのXY座標軸上の一目盛に換算したXY座標値としてファイルに記録する。
例えば、ある角が、当該基準点OからX軸方向の正方向に100cm、基準点OからY軸方向の正方向に100cm離れた位置にあれば、当該角のXY座標値は(10,10)として記録される。尚、例えば、ある角が、当該基準点OからX軸方向の正方向に94cm、当該原点からY軸方向の正方向に96cm離れた位置にあれば、例えば四捨五入されて、当該角のXY座標値は(9,10)として記録される。
In the present invention, the XY coordinate information refers to actual XY coordinate information in the movement target area A, and XY coordinate information managed on the display screen D by the computer controlling the display screen D based on the actual XY coordinate information.
The minimum spacing in the X-axis direction and the minimum spacing in the Y-axis direction that the computer manages on the display screen D can be set to a constant spacing on the actual target movement area A based on an XY coordinate spacing setting program installed in the computer.
For example, the minimum interval in the X-axis direction and the minimum interval in the Y-axis direction managed by the computer on the display screen D are set to correspond to an actual 10 cm. In this case, for example, a position a 10 cm away in the positive direction of the X-axis direction from a reference point O set outside the actual movement target area A, and a
In addition, the XY coordinate information of the corners of the walls partitioning the actual target area A of movement and the XY coordinate information of each corner of each of the actual pillars B, B... are recorded in the memory means, for example, by inputting the measured values measured using a measuring means such as a range finder, such as the distance from a reference point O set outside the actual target area A of movement to the position of each corner of the wall, and the distance from the reference point O to the position of each corner of each of the pillars B, B..., or by inputting them from a design drawing, etc.
For example, as shown in FIG. 1, a case will be described in which the position diagonally downward to the left from the bottom left corner of the movement target area A is determined as the reference point O.
In this case, the measured distance from the reference point O to each corner is input into a computer, and the computer records in a file, based on an XY coordinate interval setting program, a distance of, for example, 10 cm, as an XY coordinate value converted into one scale on the XY coordinate axis of the display screen D.
For example, if a certain corner is located 100 cm away from the reference point O in the positive direction along the X-axis and 100 cm away from the reference point O in the positive direction along the Y-axis, the XY coordinate values of the corner are recorded as (10, 10). Note that if a certain corner is located 94 cm away from the reference point O in the positive direction along the X-axis and 96 cm away from the origin in the positive direction along the Y-axis, the XY coordinate values of the corner are recorded as (9, 10), for example, by rounding off.
最初に、移動対象領域及び障害物領域の作成処理(phase1)では、コンピュータが、移動対象領域作成処理プログラム及び障害物領域作成処理プログラムの手順に従って、例えば図1に示すように、当該移動対象領域A及び移動対象領域A内の複数の柱B,B…を表示画面Dに表示する。
即ち、コンピュータが、例えば図1に示すように、表示画面Dに、移動対象領域A内と移動対象領域A外との境界線、即ち、移動対象領域境界線Cを作成することによって移動対象領域Aを表示するとともに、当該移動対象領域A内に存在する複数の柱B,B…を表示する。この場合、移動対象領域境界線Cは、例えば移動対象領域Aとしての床面領域と壁との境界位置における壁の角のXY座標情報を繋いで作成され、柱Bの境界線(障害物領域境界線)は、例えば柱Bの角のXY座標情報を繋いで作成される。
具体的には、コンピュータは、移動対象領域作成処理プログラム及び障害物領域作成処理プログラムの手順に従って、図13のフローチャートに示すような移動対象領域及び障害物領域の作成処理(phase1)を行う。
まず、移動対象領域Aの位置を示すXY座標情報、例えば移動対象領域Aを区切る壁(境界)の角のXY平面座標を記録したファイルからデータ(壁(境界)の角のXY座標値)を取り出すことにより、表示画面Dに移動対象領域境界線Cを作成する(ステップS1)。即ち、表示画面D上に、移動対象領域Aを区切る壁(境界)のすべての角を表示するとともに、各角を直線で繋ぐことにより、表示画面Dに移動対象領域境界線Cを表示する。
次に、柱本数管理変数初期化、即ち、柱本数管理変数nを1に設定する(ステップS2)。尚、柱本数管理変数とは、調べる対象となる柱を指定するための変数であり、記憶手段に逐次記録されて管理される。
そして、障害物として例えば柱Bの位置を示すXY座標情報、n番目の柱Bの角のXY座標を記録したファイルが存在するか否かを判定する(ステップS3)。
即ち、移動対象領域及び障害物領域の作成処理では、コンピュータが、移動対象領域Aの角、例えば移動対象領域Aとなる床面領域と壁との境界位置における壁の角のXY座標を記録した壁角座標記録ファイル、床面領域内に存在する各柱B,B…の角のXY座標を記録した柱角座標記録ファイル、柱本数管理変数レジスタのような記憶手段を使用して処理を行う。
次に、ステップS3において、n番目の柱の角のXY座標を記録したファイルが存在すると判定された場合、n番目の柱の角のXY座標を記録したファイルからデータを取り出して表示画面Dにn番目の柱を表示した(ステップS4)後、柱本数管理変数nをn+1に更新して(ステップS5)、ステップS3に戻る。
ステップS3において、n番目の柱の角のXY座標を記録したファイルが存在しないと判定された場合、移動対象領域A内のすべての柱Bが表示画面Dに表示されたことを認識して、移動対象領域及び障害物領域の作成処理(phase1)を終了し、障害物グループ分け処理(phase2)に進む。
以上の移動対象領域及び障害物領域の作成処理(phase1)により、例えば図1に示すように、表示画面Dに、移動対象領域Aの境界となる移動対象領域境界線Cと、移動対象領域A内に存在するn個の柱(柱内領域(障害物領域))B,B…が表示される(例えば図1に示すように、B(n)=B(1),B(2),B(3),B(4)の柱が表示される)。
つまり、コンピュータに認識された移動対象領域A及び柱(柱内領域(障害物領域))B,B…が作成されることになる。
First, in the process of creating a movement target area and an obstacle area (phase 1), the computer displays the movement target area A and a number of pillars B, B... within the movement target area A on a display screen D, for example as shown in Figure 1, in accordance with the procedures of the movement target area creation processing program and the obstacle area creation processing program.
1, the computer displays the movement target area A on a display screen D by creating a boundary line between the inside and outside of the movement target area A, i.e., a movement target area boundary line C, and also displays a number of pillars B, B... that exist within the movement target area A. In this case, the movement target area boundary line C is created, for example, by connecting XY coordinate information of a wall corner at the boundary position between the floor area as the movement target area A and the wall, and the boundary line of pillar B (obstacle area boundary line) is created, for example, by connecting XY coordinate information of the corner of pillar B.
Specifically, the computer performs a process (phase 1) of creating a movement target area and an obstacle area as shown in the flowchart of FIG. 13, in accordance with the procedures of a movement target area creating process program and an obstacle area creating process program.
First, data (XY coordinate values of the corners of the walls (boundaries)) is extracted from a file that records XY coordinate information indicating the position of the movement target area A, for example, the XY plane coordinates of the corners of the walls (boundaries) that separate the movement target area A, to create the movement target area boundary line C on the display screen D (step S1). That is, all corners of the walls (boundaries) that separate the movement target area A are displayed on the display screen D, and the movement target area boundary line C is displayed on the display screen D by connecting each corner with a straight line.
Next, the pillar number control variable is initialized, that is, the pillar number control variable n is set to 1 (step S2). The pillar number control variable is a variable for specifying the pillar to be checked, and is successively recorded in the storage means and managed.
Then, it is determined whether or not there exists a file recording XY coordinate information indicating the position of an obstacle, for example, a pillar B, and the XY coordinates of the corner of the n-th pillar B (step S3).
That is, in the process of creating the movement target area and obstacle area, the computer performs the process using storage means such as a wall angle coordinate recording file which records the XY coordinates of the corners of the movement target area A, for example the corners of the wall at the boundary position between the floor area which becomes the movement target area A and the wall, a pillar angle coordinate recording file which records the XY coordinates of the corners of each pillar B, B... existing within the floor area, and a pillar number management variable register.
Next, in step S3, if it is determined that a file recording the XY coordinates of the corner of the nth pillar exists, data is extracted from the file recording the XY coordinates of the corner of the nth pillar and the nth pillar is displayed on the display screen D (step S4), after which the pillar number management variable n is updated to n+1 (step S5), and the process returns to step S3.
If it is determined in step S3 that a file recording the XY coordinates of the corner of the nth pillar does not exist, it is recognized that all pillars B within the movement target area A are displayed on the display screen D, the movement target area and obstacle area creation process (phase 1) is terminated, and the process proceeds to obstacle grouping process (phase 2).
By the above-described process of creating the movement target area and obstacle area (phase 1), for example, as shown in FIG. 1, a movement target area boundary line C which is the boundary of the movement target area A, and n pillars (pillar interior areas (obstacle areas)) B, B... existing within the movement target area A are displayed on the display screen D (for example, as shown in FIG. 1, pillars B(n) = B(1), B(2), B(3), B(4) are displayed).
In other words, a movement target area A and pillars (intra-pillar areas (obstacle areas)) B, B . . . recognized by the computer are created.
障害物グループ分け処理(phase2)では、コンピュータが、障害物グループ分け処理プログラムの手順に従って、図2に示すように、柱Bの中心座標を基準として、X座標値が近い柱B同士、Y座標値が近い柱B同士をそれぞれグルーピングする。グルーピングは番号を割り振ることで行う。従って、各柱B,B…には、X軸方向の番号及びY軸方向の番号がそれぞれ割り付けられることになる。即ち、図2の最も左側の柱B(1)の番号は1-1となり、図2の最も右側の柱B(5)の番号は4-3となる。例えば、図2の最も右側の柱B(5)の番号4-3の意味は、当該柱B(5)は、X軸方向の4番目のグループに属し、かつ、Y軸方向の3番目のグループに属しているということを意味する。 In the obstacle grouping process (phase 2), the computer, following the procedure of the obstacle grouping process program, groups pillars B with similar X coordinate values and pillars B with similar Y coordinate values, using the center coordinate of pillar B as a reference, as shown in Figure 2. The grouping is performed by assigning numbers. Therefore, each pillar B, B... is assigned a number in the X-axis direction and a number in the Y-axis direction. That is, the number of the leftmost pillar B (1) in Figure 2 is 1-1, and the number of the rightmost pillar B (5) in Figure 2 is 4-3. For example, the number 4-3 of the rightmost pillar B (5) in Figure 2 means that the pillar B (5) belongs to the fourth group in the X-axis direction and the third group in the Y-axis direction.
即ち、コンピュータは、障害物グループ分け処理プログラムの手順に従って、図14のフローチャートに示すような障害物グループ分け処理(phase2)を行う。
障害物グループ分け処理(phase2)では、まず、変数初期化処理を行う。即ち、柱本数管理変数nを0、比較対象管理変数pを0、グループ番号変数gxを1に設定する。(ステップS11)。
即ち、障害物グループ分け処理では、コンピュータが、柱本数管理変数レジスタ、比較対象管理変数レジスタ、グループ番号変数レジスタ、柱グループ番号記録ファイルのような記憶手段を使用して処理を行う。
次に、柱本数管理変数nの値と柱の本数が一致しているか否かを判定する(ステップS12)。
ステップS12において、nの値と柱の本数が一致していないと判定された場合、グループ化未処理の柱が存在していると認識して、柱本数管理変数nをn+1に設定してグループ化対象の柱を更新し(ステップS13)、n番(例えば図2の柱Bのカッコ内の番号)目の柱に既にX軸方向グループ番号gxが付与されているか否かを判定する(ステップS14)。例えば、n=1(1番目)の柱(例えば図2の柱B(1))に既にX軸方向グループ番号gxが付与されているか否かを判定する。尚、図2の場合、柱の本数が「5」であり、nの値の最大値は「5」である。
ステップS14において、n番目の柱にX軸方向グループ番号gxが付与されていないと判定された場合、n番目の柱にX軸方向グループ番号gxを付与する(ステップS15)。グループ番号は、各柱のグループ番号を記録する柱グループ番号記録ファイルに記録される。
その後、n+pの値と柱の本数が一致しているか否かを判定する(ステップS16)。
尚、比較対象管理変数pとは、比較対象となる柱のことであり、例えば、図2の柱B(1)の比較対象となる柱は、図2の柱B(2),柱B(3),柱B(4),柱B(5)であり、この場合、例えば、図2の柱B(2)のpの値は1,柱B(3)のpの値は2,柱B(4)のpの値は3,柱B(5)のpの値は4となる。従って、図2の場合、1番目の柱B(1)では比較対象となる柱の数pの最大値は4であり、2番目の柱B(2)では比較対象となる柱の数pの最大値は3であり、3番目の柱B(3)では比較対象となる柱の数pの最大値は2であり、4番目の柱B(4)では比較対象となる柱の数pの最大値は1となるので、n+pの値の最大値と柱の本数とが一致する。即ち、図2の場合、柱の本数が「5」であり、n+pの値の最大値も「5」である。
ステップS16において、n+pの値と柱の本数が一致していないと判定された場合、比較対象となる柱が残っていると認識して、pをp+1に設定して比較対象となる柱を更新し(ステップS17)、n番目の柱の中心座標(以下、「柱の重心」という)とn+p番目の柱の重心のX座標の差exを計算した(ステップS18)後、差exの絶対値が基準値E以下か否かを判定する(ステップS19)。
ステップS19において、差exの絶対値が基準値E以下であると判定された場合、n+p番目の柱に既にX軸方向グループ番号gxが付与されているか否かを判定する(ステップS20)。
ステップS20において、n+p番目の柱に既にX軸方向グループ番号gxが付与されていると判定された場合、ステップS16に戻って、n番目の柱と次の比較対象であるn+p番目の柱との比較処理(ステップS17~ステップS19)を行う。
ステップS20において、n+p番目の柱にX軸方向グループ番号gxが付与されていないと判定された場合、n+p番目の柱にX軸方向グループ番号gxを付与した(ステップS21)後、ステップS16に戻って、n番目の柱と次の比較対象であるn+p番目の柱との比較処理(ステップS17~ステップS19)を行う。
即ち、n番目の柱の重心とn+p番目の柱の重心のX座標の差exの絶対値が基準値E以下であれば、n+p番目の柱には、n番目の柱に付与されているX軸方向グループ番号gxと同じ番号が付与される。
また、ステップS19において、差exの絶対値が基準値E以下でない場合(ステップS19でNo)は、ステップS16に戻って、n番目の柱と次の比較対象であるn+p番目の柱との比較処理(ステップS17~ステップS19)を行う。
また、ステップS16において、n+pの値と柱の本数が一致していると判定された場合、gxをgx+1に設定するとともに、pを0に設定して(ステップS22)、ステップS12に戻る。つまり、比較対象であるn+p番目の柱に対するX軸方向グループ番号を更新してn番目の柱との比較処理に進む。
尚、ステップS19において、重心のX座標の差exの絶対値が基準値E以下でないと判定されたn+p番目の柱には、X軸方向グループ番号の付与処理が終了するまでには、ステップS22を経て、X軸方向グループ番号が付与されることになる。
ステップS14において、n番目の柱に既にX軸方向グループ番号gxが付与されていると判定された場合、ステップS12に戻る。
また、ステップS12において、nの値と柱の本数が一致していると判定された場合、すべての柱にX軸方向グループ番号gxが付与されたことを認識し、Y軸方向グループ番号gyの付与について、X軸方向グループ番号gxの付与と同様の処理を行う(ステップS23)ことによって、障害物グループ分け処理(phase2)を終了し、次の処理である、障害物角認識処理(phase3)に進む。
That is, the computer performs the obstacle grouping process (phase 2) as shown in the flowchart of FIG. 14 in accordance with the procedure of the obstacle grouping process program.
In the obstacle grouping process (phase 2), first, variable initialization process is performed. That is, the pillar number management variable n is set to 0, the comparison target management variable p is set to 0, and the group number variable gx is set to 1 (step S11).
That is, in the obstacle grouping process, the computer performs the process using storage means such as the pillar number control variable register, the comparison object control variable register, the group number variable register, and the pillar group number recording file.
Next, it is determined whether the value of the pillar number control variable n matches the number of pillars (step S12).
If it is determined in step S12 that the value of n does not match the number of columns, it is recognized that there are columns that have not yet been grouped, and the column number management variable n is set to n+1 to update the columns to be grouped (step S13), and it is determined whether the nth column (e.g., the number in parentheses of column B in FIG. 2) has already been assigned the X-axis direction group number gx (step S14). For example, it is determined whether the n=1 (first) column (e.g., column B(1) in FIG. 2) has already been assigned the X-axis direction group number gx. In the case of FIG. 2, the number of columns is "5", and the maximum value of n is "5".
If it is determined in step S14 that the n-th pillar has not been assigned the X-axis direction group number gx, the n-th pillar is assigned the X-axis direction group number gx (step S15). The group number is recorded in a pillar group number record file that records the group number of each pillar.
Thereafter, it is determined whether the value of n+p matches the number of columns (step S16).
The comparison target management variable p refers to the column to be compared. For example, the columns to be compared with column B(1) in FIG. 2 are column B(2), column B(3), column B(4), and column B(5) in FIG. 2. In this case, for example, the value of p for column B(2) in FIG. 2 is 1, the value of p for column B(3) is 2, the value of p for column B(4) is 3, and the value of p for column B(5) is 4. Therefore, in the case of FIG. 2, the maximum value of the number of columns to be compared p for the first column B(1) is 4, the maximum value of the number of columns to be compared p for the second column B(2) is 3, the maximum value of the number of columns to be compared p for the third column B(3) is 2, and the maximum value of the number of columns to be compared p for the fourth column B(4) is 1, so the maximum value of n+p and the number of columns match. That is, in the case of FIG. 2, the number of columns is "5", and the maximum value of n+p is also "5".
If it is determined in step S16 that the value of n+p does not match the number of pillars, it is recognized that there are remaining pillars to be compared, and the pillars to be compared are updated by setting p to p+1 (step S17). After calculating the difference ex between the central coordinate of the nth pillar (hereinafter referred to as the "centre of gravity of the pillar") and the X-coordinate of the centre of gravity of the n+pth pillar (step S18), it is determined whether the absolute value of the difference ex is less than or equal to a reference value E (step S19).
If it is determined in step S19 that the absolute value of the difference ex is equal to or smaller than the reference value E, it is determined whether or not the X-axis direction group number gx has already been assigned to the (n+p)th column (step S20).
If it is determined in step S20 that the (n+p)th column has already been assigned the X-axis direction group number gx, the process returns to step S16 and a comparison process (steps S17 to S19) is performed between the nth column and the next comparison target, the (n+p)th column.
If it is determined in step S20 that the (n+p)th column has not been assigned the X-axis direction group number gx, the (n+p)th column is assigned the X-axis direction group number gx (step S21), and then the process returns to step S16 to compare the nth column with the next comparison target, the (n+p)th column (steps S17 to S19).
In other words, if the absolute value of the difference ex of the X-coordinate between the center of gravity of the nth column and the center of gravity of the n+pth column is less than or equal to a reference value E, the n+pth column is assigned the same X-axis direction group number gx as that assigned to the nth column.
Furthermore, in step S19, if the absolute value of the difference ex is not less than or equal to the reference value E (No in step S19), the process returns to step S16 and a comparison process (steps S17 to S19) is performed between the nth column and the next comparison target, the n+pth column.
If it is determined in step S16 that the value of n+p matches the number of columns, gx is set to gx+1, p is set to 0 (step S22), and the process returns to step S12. That is, the X-axis direction group number for the (n+p)th column to be compared is updated, and the process proceeds to comparison with the nth column.
In addition, in step S19, if it is determined that the absolute value of the difference ex of the X-coordinate of the center of gravity is not less than the reference value E, the (n+p)th column will be assigned an X-axis direction group number via step S22 before the process of assigning the X-axis direction group number is completed.
If it is determined in step S14 that the n-th column has already been assigned the X-axis direction group number gx, the process returns to step S12.
Furthermore, if it is determined in step S12 that the value of n matches the number of pillars, it is recognized that the X-axis direction group number gx has been assigned to all pillars, and the same process as that for assigning the X-axis direction group number gx is performed for assigning the Y-axis direction group number gy (step S23), thereby terminating the obstacle grouping process (phase 2) and proceeding to the next process, which is the obstacle angle recognition process (phase 3).
障害物角認識処理(phase3)では、コンピュータが、障害物角認識処理プログラムの手順に従って、例えば図3に示すように、断面正方形状の柱B1、断面長方形状の柱B2、断面円形状の柱B3、断面L字形状の柱B4等の柱Bの角に番号を付けて柱Bの角を認識する。
尚、例えば図3に示すように、各柱B,B…の各角部に1~4までの番号を1つずつ付けていくが、断面円形状の柱B3(丸柱)のように角部が無い場合は、丸柱の外周円においてX軸に平行で丸柱の中心座標を通過する直線とY軸に平行で丸柱の中心座標を通過する直線とに交差する4点を角と見做して当該4つの角にそれぞれ番号を付与する。
In the obstacle angle recognition process (phase 3), the computer recognizes the corners of pillars B, such as pillar B1 with a square cross-section, pillar B2 with a rectangular cross-section, pillar B3 with a circular cross-section, and pillar B4 with an L-shaped cross-section, by assigning numbers to the corners of the pillars B in accordance with the procedures of the obstacle angle recognition process program, for example as shown in FIG. 3.
As shown in FIG. 3, for example, a number from 1 to 4 is assigned to each corner of each column B, B.... However, in the case of a column B3 (round column) with a circular cross section that has no corners, the four points on the outer periphery of the round column that intersect a line parallel to the X-axis and passing through the center coordinates of the round column with a line parallel to the Y-axis and passing through the center coordinates of the round column are regarded as corners, and a number is assigned to each of the four corners.
即ち、コンピュータは、障害物角認識処理プログラムの手順に従って、図15のフローチャートに示すような障害物角認識処理(phase3)を行う。
障害物角認識処理(phase3)においては、まず、柱本数管理変数初期化処理を行う。即ち、柱本数管理変数nを0に設定する(ステップS31)。
次に、nの値と柱の本数が一致しているか否かを判定する(ステップS32)。
ステップS32において、nの値と柱の本数が一致していないと判定された場合、番号付け未処理の柱が存在していることを認識して、nをn+1に更新した(ステップS33)後、n番目の柱の角のうち、最もY軸座標の値が大きい角が複数あるか否かを判定する(ステップS34)。
ステップS34において、n番目の柱の角のうち、最もY軸座標の値が大きい角が1つであると判定された場合(ステップS34でNo)、n番目の柱について、最もY軸座標の値が大きい角に角番号1を付与し(ステップS35、例えば図3の柱B1、柱B3参照)、その後、n番目の柱の角のうち、最もX軸座標の値が大きい角が複数あるか否かを判定する(ステップS37)。尚、角番号は、各柱の角番号を記録する柱角番号記録ファイルに記録される。
即ち、障害物角認識処理では、コンピュータが、柱本数管理変数レジスタ、柱角座標記録ファイル、柱角番号記録ファイルのような記憶手段を使用して処理を行う。
ステップS34において、n番目の柱の角のうち、最もY軸座標の値が大きい角が複数あると判定された場合(ステップS34でYes)、n番目の柱について、最もY軸座標の値が大きい角同士を比較し、最もX軸座標の値が小さい角に角番号1を付与する(ステップS36、例えば図3の柱B2、柱B4参照)。つまり、最もY軸座標の値が大きい複数の角のうちX軸座標の値が小さい方の角に角番号1を付与し、その後、ステップS37に進む。
ステップS37において、n番目の柱の角のうち、最もX軸座標の値が大きい角が1つであると判定された場合(ステップS37でNo)、n番目の柱について、最もX軸座標の値が大きい角に角番号2を付与し(ステップS38、例えば図3の柱B1、柱B3参照)、その後、n番目の柱の角のうち、最もY軸座標の値が小さい角が複数あるか否かを判定する(ステップS40)。
ステップS37において、n番目の柱の角のうち、最もX軸座標の値が大きい角が複数あると判定された場合(ステップS37でYes)、n番目の柱について、最もX軸座標の値が大きい角同士を比較し、最もY軸座標の値が大きい角に角番号2を付与する(ステップS39、例えば図3の柱B2、柱B4参照)。つまり、最もX軸座標の値が大きい複数の角のうちY軸座標の値が大きい方の角に角番号2を付与し、その後、ステップS40に進む。
ステップS40において、n番目の柱の角のうち、最もY軸座標の値が小さい角が1つであると判定された場合(ステップS40でNo)、n番目の柱について、最もY軸座標の値が小さい角に角番号3を付与し(ステップS41、例えば図3の柱B1、柱B3参照)、その後、n番目の柱の角のうち、最もX軸座標の値が小さい角が複数あるか否かを判定する(ステップS43)。
ステップS40において、n番目の柱の角のうち、最もY軸座標の値が小さい角が複数あると判定された場合(ステップS39でYes)、n番目の柱について、最もY軸座標の値が小さい角同士を比較し、最もX軸座標の値が大きい角に角番号3を付与する(ステップS42、例えば図3の柱B2、柱B4参照)。つまり、最もY軸座標の値が小さい複数の角のうちX軸座標の値が大きい方の角に角番号3を付与し、その後、ステップS43に進む。
ステップS43において、n番目の柱の角のうち、最もX軸座標の値が小さい角が1つであると判定された場合(ステップS43でNo)、n番目の柱について、最もX軸座標の値が小さい角に角番号4を付与し(ステップS44、例えば図3の柱B1、柱B3参照)、その後、ステップS32に戻る。
ステップS43において、n番目の柱の角のうち、最もX軸座標の値が小さい角が複数あると判定された場合(ステップS43でYes)、n番目の柱について、最もX軸座標の値が小さい角同士を比較し、最もY軸座標の値が小さい角に角番号4を付与する(ステップS45、例えば図3の柱B2、柱B4参照)。つまり、最もX軸座標の値が小さい複数の角のうちY軸座標の値が小さい方の角に角番号4を付与し、その後、ステップS32に戻る。
そして、ステップS32において、nの値と柱の本数が一致していると判定された場合、すべての柱B,B…の各角に番号が付与されたことを認識して、障害物角認識処理(phase3)を終了し、障害物間境界線作成処理(phase4)に進む。
That is, the computer performs the obstacle angle recognition process (phase 3) as shown in the flowchart of FIG. 15 in accordance with the procedure of the obstacle angle recognition process program.
In the obstacle angle recognition process (phase 3), first, a pillar number control variable initialization process is performed, that is, the pillar number control variable n is set to 0 (step S31).
Next, it is determined whether the value of n matches the number of columns (step S32).
If it is determined in step S32 that the value of n does not match the number of columns, it is recognized that there are columns that have not yet been numbered, and n is updated to n+1 (step S33). After that, it is determined whether there are multiple corners of the nth column that have the largest Y-axis coordinate value (step S34).
In step S34, if it is determined that there is only one corner with the highest Y-axis coordinate value among the corners of the n-th pillar (No in step S34), the corner with the highest Y-axis coordinate value for the n-th pillar is assigned corner number 1 (step S35, see, for example, pillars B1 and B3 in FIG. 3), and then it is determined whether there are multiple corners with the highest X-axis coordinate value among the corners of the n-th pillar (step S37). Note that the corner numbers are recorded in a pillar corner number record file that records the corner numbers of each pillar.
That is, in the obstacle angle recognition process, the computer performs the process using storage means such as a pole number management variable register, a pole angle coordinate recording file, and a pole angle number recording file.
In step S34, if it is determined that there are multiple corners with the largest Y-axis coordinate value among the corners of the n-th column (Yes in step S34), the corners with the largest Y-axis coordinate value for the n-th column are compared with each other, and the corner with the smallest X-axis coordinate value is assigned corner number 1 (step S36; see, for example, columns B2 and B4 in FIG. 3). In other words, the corner with the smallest X-axis coordinate value among the multiple corners with the largest Y-axis coordinate value is assigned
In step S37, if it is determined that there is one corner of the nth column with the largest X-axis coordinate value (No in step S37),
In step S37, if it is determined that there are multiple corners with the largest X-axis coordinate value among the corners of the nth column (Yes in step S37), the corners with the largest X-axis coordinate value for the nth column are compared, and the corner with the largest Y-axis coordinate value is assigned corner number 2 (step S39; see, for example, columns B2 and B4 in FIG. 3). In other words, the corner with the largest Y-axis coordinate value among the multiple corners with the largest X-axis coordinate value is assigned
In step S40, if it is determined that there is one corner of the nth column with the smallest Y-axis coordinate value (No in step S40),
In step S40, if it is determined that there are multiple corners with the smallest Y-axis coordinate value among the corners of the nth column (Yes in step S39), the corners with the smallest Y-axis coordinate value for the nth column are compared, and the corner with the largest X-axis coordinate value is assigned the corner number 3 (step S42; see, for example, columns B2 and B4 in FIG. 3). In other words, the corner with the largest X-axis coordinate value among the multiple corners with the smallest Y-axis coordinate value is assigned the
In step S43, if it is determined that there is one corner of the nth column that has the smallest X-axis coordinate value (No in step S43),
In step S43, if it is determined that there are multiple corners with the smallest X-axis coordinate value among the corners of the nth column (Yes in step S43), the corners with the smallest X-axis coordinate values for the nth column are compared, and the corner with the smallest Y-axis coordinate value is assigned corner number 4 (step S45; see, for example, columns B2 and B4 in FIG. 3). In other words, the corner with the smallest Y-axis coordinate value among the multiple corners with the smallest X-axis coordinate values is assigned
Then, in step S32, if it is determined that the value of n matches the number of pillars, it is recognized that numbers have been assigned to each corner of all the pillars B, B..., and the obstacle angle recognition process (phase 3) is terminated, and the process proceeds to the obstacle boundary line creation process (phase 4).
第1の接続線作成手段による障害物間境界線作成処理(phase4)では、コンピュータが、障害物間境界線作成処理プログラムの手順に従って、図4に示すように、柱B,B間の境界線、即ち、柱間境界線(障害物間境界線(第1の境界線))を作成する。例えば、同じグループ番号を持ち、かつ最も近い柱B,B同士の間に柱間境界線を作る。即ち、図4においては、X軸方向の同じ3グループである番号3-1の柱B(4)と番号3-3の柱B(3)とが柱間境界線Mで繋がれ、Y軸方向の同じ1グループである番号1-1の柱B(1)と番号3-1の柱B(4)とが柱間境界線Mで繋がれ、Y軸方向の同じ3グループである番号3-3の柱B(3)と番号4-3の柱B(5)とが柱間境界線Mで繋がれた例を示している。つまり、各柱毎に、境界線を繋ぐのに最適な柱を選択して、柱同士を境界線で繋ぐようにしている。
尚、図4においては、柱間境界線Mとして、X軸方向に沿ったクランク状の境界線、あるいは、Y軸方向に沿ったクランク状の境界線を作成した例を示したが、柱間境界線Mは、X軸方向及びY軸方向と交差する斜め直線状の境界線や、なめらかな曲線状の境界線を作成してもよい。
In the obstacle boundary line creation process (phase 4) by the first connection line creation means, the computer creates a boundary line between pillars B, B, i.e., an obstacle boundary line (obstacle boundary line (first boundary line)), as shown in FIG. 4, in accordance with the procedure of the obstacle boundary line creation process program. For example, an obstacle boundary line is created between pillars B, B that have the same group number and are closest to each other. That is, FIG. 4 shows an example in which pillar B (4) with number 3-1 and pillar B (3) with number 3-3, which are in the same 3 group in the X-axis direction, are connected by an obstacle boundary line M, pillar B (1) with number 1-1 and pillar B (4) with number 3-1, which are in the same 1 group in the Y-axis direction, are connected by an obstacle boundary line M, and pillar B (3) with number 3-3 and pillar B (5) with number 4-3, which are in the same 3 group in the Y-axis direction, are connected by an obstacle boundary line M. That is, for each pillar, the most suitable pillar for connecting the boundary line is selected, and the pillars are connected by the boundary line.
In addition, in Figure 4, an example is shown in which a crank-shaped boundary line along the X-axis direction or a crank-shaped boundary line along the Y-axis direction is created as the inter-column boundary line M, but the inter-column boundary line M may also be a diagonal straight boundary line that intersects with the X-axis direction and the Y-axis direction, or a smoothly curved boundary line.
即ち、コンピュータは、障害物間境界線作成処理プログラムの手順に従って、図16のフローチャートに示すような障害物間境界線作成処理(phase4)を行う。
まず、変数初期化処理を行う。即ち、柱本数管理変数nを0、比較対象管理変数pを0に設定する(ステップS51)。
次に、nの値と柱の本数が一致しているか否かを判定する(ステップS52)。
ステップS52において、nの値と柱の本数が一致していなければ(ステップS52でNo)、接続先候補登録変数sの初期化、即ち、sをNull(無)に設定し(ステップS53)する。さらに、nをn+1に設定した(ステップS54)後、n番目の柱について、正のX軸方向に既に境界線が接続されているか否かを判定する(ステップS55)。
即ち、障害物間境界線作成処理では、コンピュータが、上述した柱本数管理変数レジスタ、比較対象管理変数レジスタ、接続先候補登録変数レジスタ、柱角座標記録ファイル、柱角番号記録ファイルのような記憶手段を使用して処理を行う。
尚、接続先候補登録変数sとは、接続候補を一時的に記録する変数のことである。
ステップS55において、n番目の柱について、正のX軸方向に境界線が接続されていなければ(ステップS55でNo)、n+pの値と柱の本数が一致しているか否かを判定する(ステップS56)。
ステップS56において、n+pの値と柱の本数が一致していなければ(ステップS56でNo)、比較対象となる柱が残っているということなので、pをp+1に更新した(ステップS57)後、n番目の柱のX軸方向グループ番号とn+p番目の柱のX軸方向グループ番号とが同一か否かを判定する(ステップS58)。
ステップS58において、n番目の柱のX軸方向グループ番号とn+p番目の柱のX軸方向グループ番号とが同一であると判定された場合、n+p番目の柱の重心(中心座標)はn番目の柱から見て正のX軸方向にあるか否かを判定する(ステップS59)。
ステップS58において、n番目の柱のX軸方向グループ番号とn+p番目の柱のX軸方向グループ番号とが同一ではないと判定された場合、ステップS56に戻る。
ステップS59において、n+p番目の柱の重心がn番目の柱から見て正のX軸方向にないと判定された場合、ステップS56に戻る。
ステップS59において、n+p番目の柱の重心がn番目の柱から見て正のX軸方向にあると判定された場合、s=Nullであるか否かを判定する(ステップS60)。
ステップS60において、s=Nullであれば、n番目の柱とn+p番目の柱の重心間の距離L*を計算した(ステップS61)後、n+pを接続先候補変数sに代入し(ステップS62)、ステップS56に戻る。
ステップS60において、s=Nullでなければ、n番目の柱とn+p番目の柱の重心間の距離Lを計算した(ステップS63)後、L*>Lであるか否かを判定する(ステップS64)。
ステップS64において、L*>Lであれば、L*にLを代入し(ステップS65)、n+pを接続先候補変数sに代入した(ステップS66)後に、ステップS56に戻る。
ステップS64において、L*>Lでなければ、ステップS56に戻る。
ステップS56において、n+pの値と柱の本数が一致していると判定された場合、s=Nullであるか否かを判定し(ステップS67)、s=Nullであれば、ステップS52に戻り、s=Nullでなければ、n番目の柱の2番角とs番目の柱の4番角の間に境界線M(例えば図4において柱B(1)の2番角から右方向に延長して柱B(4)の4番角に繋がる境界線M)を引き、その後、ステップS52に戻る。
そして、ステップS52において、nの値と柱の本数が一致していると判定された場合、正のX軸方向境界線への接続処理が終了し、その後、負のX軸方向境界線への接続処理、正のY軸方向境界線への接続処理、負のY軸方向境界線への接続処理のそれぞれについて、正のX軸方向境界線への接続処理と同様の処理で行う(ただし、X軸方向の境界線の接続は角番号2と角番号4とで行い、Y軸方向の境界線の接続は角番号1と角番号3とで行う)(ステップS69)。
そして、当該負のX軸方向境界線への接続処理、正のY軸方向境界線への接続処理、負のY軸方向境界線への接続処理が終了したら、次の分割領域区分け処理(phase5)に進む。
That is, the computer performs an obstacle boundary line creation process (phase 4) as shown in the flowchart of FIG. 16 in accordance with the procedure of the obstacle boundary line creation process program.
First, a variable initialization process is performed, that is, the column number management variable n is set to 0, and the comparison target management variable p is set to 0 (step S51).
Next, it is determined whether the value of n matches the number of columns (step S52).
In step S52, if the value of n does not match the number of columns (No in step S52), the connection candidate registration variable s is initialized, that is, s is set to Null (step S53). Furthermore, after setting n to n+1 (step S54), it is determined whether or not a boundary line has already been connected to the nth column in the positive X-axis direction (step S55).
That is, in the obstacle-to-obstacle boundary line creation process, the computer performs the process using storage means such as the above-mentioned pillar number management variable register, comparison target management variable register, connection candidate registration variable register, pillar corner coordinate recording file, and pillar corner number recording file.
The connection candidate registration variable s is a variable for temporarily recording connection candidates.
In step S55, if no boundary line is connected in the positive X-axis direction for the n-th pillar (No in step S55), it is determined whether the value of n+p matches the number of pillars (step S56).
In step S56, if the value of n+p does not match the number of columns (No in step S56), this means that there are columns remaining to be compared, so p is updated to p+1 (step S57), and then it is determined whether the X-axis direction group number of the nth column is the same as the X-axis direction group number of the n+pth column (step S58).
If it is determined in step S58 that the X-axis direction group number of the nth column and the X-axis direction group number of the (n+p)th column are the same, it is determined whether the center of gravity (central coordinates) of the (n+p)th column is in the positive X-axis direction as viewed from the nth column (step S59).
If it is determined in step S58 that the X-axis direction group number of the nth column and the X-axis direction group number of the (n+p)th column are not the same, the process returns to step S56.
If it is determined in step S59 that the center of gravity of the (n+p)th column is not in the positive X-axis direction as viewed from the nth column, the process returns to step S56.
If it is determined in step S59 that the center of gravity of the (n+p)th column is in the positive X-axis direction as viewed from the nth column, it is determined whether or not s=Null (step S60).
In step S60, if s = Null, the distance L* between the centers of gravity of the nth pillar and the (n+p)th pillar is calculated (step S61), and then n+p is substituted for the connection destination candidate variable s (step S62), and the process returns to step S56.
If s=Null is not satisfied in step S60, the distance L between the centers of gravity of the nth pillar and the (n+p)th pillar is calculated (step S63), and then it is determined whether L*>L is satisfied (step S64).
If L*>L in step S64, L is substituted for L* (step S65), n+p is substituted for the connection destination candidate variable s (step S66), and the process returns to step S56.
If it is determined in step S64 that L*>L is not satisfied, the process returns to step S56.
If it is determined in step S56 that the value of n+p matches the number of pillars, it is determined whether s=Null (step S67). If s=Null, the process returns to step S52. If s=Null is not true, the process returns to step S52. If s=Null is not true, the process draws a boundary line M between the second corner of the nth pillar and the fourth corner of the sth pillar (for example, in FIG. 4, a boundary line M that extends rightward from the second corner of pillar B(1) to connect to the fourth corner of pillar B(4)), and then returns to step S52.
Then, in step S52, if it is determined that the value of n and the number of pillars match, the connection process to the positive X-axis direction boundary line is terminated, and then the connection process to the negative X-axis direction boundary line, the connection process to the positive Y-axis direction boundary line, and the connection process to the negative Y-axis direction boundary line are each performed in the same manner as the connection process to the positive X-axis direction boundary line (however, the connection to the boundary line in the X-axis direction is made between
Then, when the process of connecting to the negative X-axis direction boundary line, the process of connecting to the positive Y-axis direction boundary line, and the process of connecting to the negative Y-axis direction boundary line are completed, the process proceeds to the next divided area division process (phase 5).
以下、障害物間境界線作成処理(phase4)について、さらに具体的に説明する。
図4の柱を例にして説明すると、ステップS58で、n=1番目の柱としての柱B(1)とn+p=2番目の柱としての柱B(2)は、X軸方向グループ番号が同じではないので、ステップS57を経て、ステップS58で、柱B(1)とn+p=3番目の柱としての柱B(3)とが比較される。柱B(1)とB(3)もX軸方向グループ番号が同じではないので、さらに、ステップS57を経て、ステップS58で、柱B(1)とn+p=4番目の柱としての柱B(4)とが比較される。柱B(1)とB(4)は、X軸方向グループ番号が同じであり、ステップS59、ステップS60を経て、ステップS60において、柱B(1)とB(4)の重心間の距離L*が計算された後、柱B(4)の番号、n+p=「4」が、接続先候補変数sとして記憶される。その後、ステップS57を経て、ステップS58で、柱B(1)とn+p=5番目の柱としての柱B(5)とが比較される。柱B(1)とB(5)もX軸方向グループ番号が同じではないので、ステップS57に戻って、ステップS67を経て、ステップS68において、柱B(1)の2番角とB(4)の4番角とが境界線で繋がれる。
尚、図4の例では、X軸方向グループ番号が同じ柱が3つ以上存在しないが、例えば、図4において、柱B(1)及びB(4)とX軸方向グループ番号が同じ図外の柱B(6)が存在した場合には、ステップS63において、柱B(1)と当該柱B(6)の重心間の距離Lが計算される。その後、ステップS64において、柱B(1)と柱B(6)の重心間の距離Lが柱B(1)とB(4)の重心間の距離L*よりも小さければ、柱B(6)の番号、n+p=「6」が、接続先候補変数sとして記憶され、ステップS67を経て、ステップS68において、柱B(1)の2番角と柱B(6)の4番角とが境界線で繋がれることになる。
The obstacle boundary line creation process (phase 4) will now be described in more detail.
4 as an example, in step S58, column B(1) as the n=1th column and column B(2) as the n+p=2nd column do not have the same X-axis group number, so in step S57, column B(1) is compared with column B(3) as the n+p=3rd column in step S58. Since columns B(1) and B(3) also do not have the same X-axis group number, column B(1) is compared with column B(4) as the n+p=4th column in step S57. Columns B(1) and B(4) have the same X-axis group number, so in step S60, after steps S59 and S60, the distance L* between the centers of gravity of columns B(1) and B(4) is calculated, and the number of column B(4), n+p="4", is stored as the connection candidate variable s. After that, in step S57, column B(1) is compared with column B(5) which is the n+p=5th column in step S58. Since columns B(1) and B(5) do not have the same X-axis direction group number, the process returns to step S57, and in step S67, in step S68, the second corner of column B(1) and the fourth corner of column B(4) are connected with a boundary line.
In the example of Fig. 4, three or more columns do not have the same X-axis direction group number, but if, for example, there is a column B(6) not shown in Fig. 4 that has the same X-axis direction group number as columns B(1) and B(4), the distance L between the centers of gravity of column B(1) and column B(6) is calculated in step S63. Then, in step S64, if the distance L between the centers of gravity of column B(1) and column B(6) is smaller than the distance L* between the centers of gravity of column B(1) and column B(4), the number of column B(6), n+p = "6", is stored as the connection destination candidate variable s, and after step S67, in step S68, the second corner of column B(1) and the fourth corner of column B(6) are connected by a boundary line.
第2の接続線作成手段及び第3の接続線作成手段による分割領域区分け処理(phase5)では、コンピュータが、分割領域区分け処理プログラムの手順に従って、図5に示すように、柱Bと移動対象領域境界線Cとを繋ぐ境界線N(第2の境界線)、又は、柱Bと柱間境界線M(第1の境界線)又は境界線N(第2の境界線)とを繋ぐ境界線Q(第3の境界線)を作成して、移動対象領域Aを境界線C,M,N,Qで区画された複数の移動可能領域となる複数の分割領域E,E…(図6参照)に区分けする。
つまり、障害物間境界線作成処理(phase4)において、柱間境界線Mで繋がれなかった柱Bの角部と移動対象領域境界線Cとを繋ぐ境界線N(第2の境界線)、又は、柱間境界線M(第1の境界線)で繋がれなかった柱Bの角部と柱間境界線M(第1の境界線)又は境界線N(第2の境界線)とを繋ぐ境界線Q(第3の境界線)を作成する。
これにより、移動対象領域Aが、境界線C,M,N,Qで区画された複数の移動可能領域となる複数の分割領域E,E…(図6参照)に区分けされることになる。
In the divided area division process (phase 5) using the second connection line creation means and the third connection line creation means, the computer creates a boundary line N (second boundary line) connecting the pillar B and the movement target area boundary line C, or a boundary line Q (third boundary line) connecting the pillar B and the inter-pillar boundary line M (first boundary line) or the boundary line N (second boundary line) as shown in Figure 5, in accordance with the procedures of the divided area division process program, and divides the movement target area A into a number of divided areas E, E... (see Figure 6) which are a number of movable areas partitioned by boundaries C, M, N, Q.
In other words, in the obstacle-to-obstacle boundary creation process (phase 4), a boundary line N (second boundary line) is created that connects the corner of pillar B that is not connected by the inter-pillar boundary line M to the movement target area boundary line C, or a boundary line Q (third boundary line) that connects the corner of pillar B that is not connected by the inter-pillar boundary line M (first boundary line) to the inter-pillar boundary line M (first boundary line) or boundary line N (second boundary line).
As a result, the movement target area A is divided into a plurality of divided areas E, E . . . (see FIG. 6) which are a plurality of movable areas partitioned by boundary lines C, M, N, and Q.
即ち、コンピュータは、分割領域区分け処理プログラムの手順に従って、図17のフローチャートに示すような分割領域区分け処理(phase5)を行う。
分割領域区分け処理(phase5)では、まず、変数初期化処理を行う。即ち、柱本数管理変数nを0に設定する(ステップS71)。
次に、nの値と柱の本数が一致しているか否かを判定する(ステップS72)。
ステップS72において、nの値と柱の本数が一致していなければ、比較対象となる柱が残っているということなので、柱角番号管理変数初期化、即ち、柱角番号管理変数cを1に設定し(ステップS73)、さらに、柱本数管理変数nをn+1に更新し(ステップS74)、n番目の柱の角番号cの角について、既に境界線が接続されているか否かを判定する(ステップS75)。
即ち、分割領域区分け処理では、コンピュータが、柱本数管理変数レジスタ、柱角番号管理変数レジスタ、柱角座標記録ファイル、柱角番号記録ファイルのような記憶手段を使用して処理を行う。
ステップS75において、n番目の柱の角番号cの角に境界線が接続されていなければ、c=1であるか否かを判定する(ステップS76)。
ステップS76において、c=1でなければ、c=2であるか否かを判定する(ステップS77)。
ステップS77において、c=2でなければ、c=3であるか否かを判定する(ステップS78)。
ステップS78において、c=3でなければ、角番号4から壁、柱、境界線のいずれかに接触するまで負のX軸方向に境界線Nを伸ばす(ステップS79、例えば図5の柱B(1)、柱B(2)、柱B(3)参照)。その後、柱角番号管理変数cをc+1に更新し(ステップS80)、c=5であるか否かを判定する(ステップS81)。
ステップS76において、c=1であれば、角番号1から壁、柱、境界線のいずれかに接触するまで正のY軸方向に境界線Nを伸ばす(ステップS82、例えば図5の柱B(1)、柱B(2)、柱B(3)参照)。その後、ステップS80に進む。
また、ステップS77において、c=2であれば、角番号2から壁、柱、境界線のいずれかに接触するまで正のX軸方向に境界線Nを伸ばす(ステップS83、例えば図5の柱B(2)、柱B(4)参照)。その後、ステップS80に進む。
また、ステップS78において、c=3であれば、角番号3から壁、柱、境界線のいずれかに接触するまで負のY軸方向に境界線Nを伸ばす(ステップS84、例えば図5の柱B(1)、柱B(2)、柱B(4)参照)。その後、ステップS80に進む。
即ち、各角番号から境界線を伸ばす処理が終了した(ステップS82,ステップS83,ステップS84,ステップS79)後は、柱角番号管理変数cをc+1に更新し(ステップS80)、c=5であるか否かを判定する(ステップS81)。
ステップS81において、c=5であれば、ステップS72に戻り、次の比較対象となる柱への処理に移行する。
ステップS81において、c=5でなければ、ステップS75に戻り、ステップS75~ステップS84までの処理を行う。
そして、ステップS72において、nの値と柱の本数が一致していれば、分割領域区分け処理(phase5)を終了し、分割領域認識処理(phase6)に進む。
That is, the computer performs the divided area division process (phase 5) as shown in the flowchart of FIG. 17 in accordance with the procedure of the divided area division process program.
In the division area division process (phase 5), first, a variable initialization process is performed, that is, the column number management variable n is set to 0 (step S71).
Next, it is determined whether the value of n matches the number of columns (step S72).
In step S72, if the value of n does not match the number of pillars, it means that there are still pillars to be compared, so the pillar corner number management variable is initialized, i.e., the pillar corner number management variable c is set to 1 (step S73), and further, the pillar number management variable n is updated to n+1 (step S74), and it is determined whether or not a boundary line has already been connected for the corner of the nth pillar with corner number c (step S75).
That is, in the division area division process, the computer performs the process using storage means such as a column number management variable register, a column corner number management variable register, a column corner coordinate recording file, and a column corner number recording file.
In step S75, if no boundary line is connected to the corner with corner number c of the n-th pillar, it is determined whether c=1 (step S76).
If it is not determined in step S76 that c=1, it is determined whether or not c=2 (step S77).
If it is not determined in step S77 that c=2, it is determined whether or not c=3 (step S78).
In step S78, if c=3 is not satisfied, the boundary line N is extended in the negative X-axis direction from
In step S76, if c=1, the boundary line N is extended in the positive Y-axis direction from
Also, in step S77, if c=2, the boundary line N is extended in the positive X-axis direction from
Also, in step S78, if c=3, the boundary line N is extended in the negative Y-axis direction from
That is, after the process of extending the boundary line from each corner number is completed (steps S82, S83, S84, S79), the column corner number control variable c is updated to c+1 (step S80), and it is determined whether c=5 (step S81).
If c=5 in step S81, the process returns to step S72 and moves to the process for the next column to be compared.
If it is determined in step S81 that c=5, the process returns to step S75, and the processes in steps S75 to S84 are repeated.
Then, in step S72, if the value of n matches the number of columns, the divided area division process (phase 5) is terminated, and the process proceeds to the divided area recognition process (phase 6).
分割領域認識処理(phase6)では、コンピュータが、分割領域認識処理プログラムの手順に従って、移動対象領域Aにおいて線で区切られた複数の各エリア(壁外領域(移動対象領域A外領域)、柱B内領域(障害物領域)、分割領域のすべて)にそれぞれ識別情報としての番号を所定の順番で付与することにより、複数の各分割領域E,E…を認識する。
当該分割領域認識処理(phase6)は、例えば、図8,図23~図25に示すような、塗りつぶし処理にてエリアを抽出していき、抽出したエリア毎に個別のエリア番号を付けた後、各分割領域E,E…を認識する処理である。
In the divided area recognition process (phase 6), the computer recognizes each of the multiple divided areas E, E... by assigning numbers as identification information in a predetermined order to each of the multiple areas separated by lines in the movement target area A (the area outside the wall (the area outside the movement target area A), the area inside the pillar B (obstacle area), and all of the divided areas) in accordance with the procedures of the divided area recognition process program.
The divided area recognition process (phase 6) is a process in which areas are extracted by a filling process, for example, as shown in Figures 8 and 23 to 25, an individual area number is assigned to each extracted area, and then each divided area E, E... is recognized.
コンピュータは、分割領域認識処理プログラムの手順に従って、図18のフローチャートに示すような分割領域認識処理(phase6)を行う。
分割領域認識処理では、コンピュータが、塗りつぶし判定兼エリア番号記録配列ファイル、X軸方向探索管理変数レジスタ、Y軸方向探索管理変数レジスタ、エリア番号管理変数レンジスタ、X軸方向塗りつぶし管理変数レジスタ、Y軸方向塗りつぶし管理変数レジスタ、塗りつぶし管理ファイル、塗りつぶし管理変数一時保留レジスタのような記憶手段を使用し、これら記憶手段に記憶される値を参照しながら処理を行う。
まず、変数初期化を行う。即ち、塗りつぶし判定兼エリア番号記録配列Stack[Xmax][Ymax]を[0,0,0,・・・・]に、X軸方向探索管理変数iを0に、Y軸方向探索管理変数jを0に、エリア番号管理変数aを1に設定する(ステップS91)。つまり、X軸方向探索管理変数レジスタを0に、Y軸方向探索管理変数レジスタを0にして、塗りつぶし判定兼エリア番号記録配列ファイルにおける各XY座標位置の値を全部0に維持するとともに、エリア番号管理変数レンジスタを1に設定して、移動対象領域Aの外側の領域を「1」に塗りつぶす処理から行う。
初めに、i>Xmaxであるか否かを判定し(ステップS92)、i>Xmaxでなければ、Stack[i][j]=0であるか否かを判定する(ステップS93)。
ステップS93において、Stack[i][j]=0であれば、Stack[i][j]を-1にする(ステップS94)ことにより、例えば、図8(b),(f)、図23(b),(d)、図24(b),(d),(f)、図25(b)の状態となる。
その後、塗りつぶし管理変数初期化、即ち、X軸方向塗りつぶし管理変数fiをiに、Y軸方向塗りつぶし管理変数fjをjに設定する(ステップS95)。
塗りつぶし管理とは、エリア毎に塗りつぶし処理を行う場合において、既にエリア番号が付けられたエリアの塗りつぶし処理を行わないために、各XY座標位置の値の管理を、塗りつぶし判定兼エリア番号記録配列ファイルとは別の塗りつぶし管理ファイルで行うようにしている。即ち、塗りつぶし判定兼エリア番号記録配列ファイルでの各XY座標位置の値であるStack[i][j]を、塗りつぶし管理ファイルでの各XY座標位置の値であるStack[fi][fj]に置き換えて管理する(例えば、図23(d)参照)ことにより、既にエリア番号が付けられたエリアの各XY座標位置の値の探索を行わないようにして、塗りつぶし処理の処理スピードを速くできるようにしている。
次に、fi>Xmaxであるか否かを判定する(ステップS97)。
ステップS97において、fi>Xmaxでなければ、Stack[fi][fj]=-1であるか否かを判定する(ステップS98)。
ステップS98において、Stack[fi][fj]=-1であれば(ステップS98でYES)、ステップS98Aに進んで、塗りつぶし管理変数一時保留レジスタにおいて、miをfiに設定し、mjをfjに設定してから、Stack[fi][fj]をaに設定する(ステップS99)。
そして、座標(fi+1,fj)が存在し、かつ座標(fi,fj)との間に壁、柱、境界線が通っておらず、かつStack[fi+1][fj]が0であるか否かを判定する(ステップS100)。つまり、a(最初は「1」)に設定された座標[fi][fj]と当該座標[fi][fj]のX軸方向+側の座標(fi+1,fj)との間に壁、柱、境界線が無く、かつ、座標(fi+1,fj)が0であれば(ステップS100でYesの場合)、Stack[fi+1][fj]を-1に設定する(ステップS104)。その後、ステップS101に進む。
ステップS100でNoの場合、即ち、(fi,fj)と(fi+1,fj)との間に壁、柱、境界線が通っていた場合、ステップS101に進んで、座標(fi-1,fj)が存在し、かつ座標(fi,fj)との間に壁、柱、境界線が通っておらず、かつStack[fi-1][fj]が0であるか否かを判定する。つまり、a(最初は「1」)に設定された座標[fi][fj]と当該座標[fi][fj]のX軸方向-側の座標(fi-1,fj)との間に壁、柱、境界線が無く、かつ、座標(fi-1,fj)が0であれば(ステップS101でYesの場合)、Stack[fi-1][fj]を-1に設定する(ステップS105)。その後、ステップS105Aに進んで、miをfi-1に設定(ただし、fi=0のときを除く)した後、ステップS102に進む。
ステップS101でNoの場合、即ち、(fi,fj)と(fi-1,fj)との間に壁、柱、境界線が通っていた場合、ステップS102に進んで、座標(fi,fj+1)が存在し、かつ座標(fi,fj)との間に壁、柱、境界線が通っておらず、かつStack[fi][fj+1]が0であるか否かを判定する。つまり、a(最初は「1」)に設定された座標[fi][fj]と当該座標[fi][fj]のY軸方向+側の座標(fi,fj+1)との間に壁、柱、境界線が無く、かつ、座標(fi,fj+1)が0であれば(ステップS102でYesの場合)、Stack[fi][fj+1]を-1に設定する(ステップS106)。その後、ステップS103に進む。
ステップS102でNoの場合、即ち、(fi,fj)と(fi,fj+1)との間に壁、柱、境界線が通っていた場合、ステップS103に進んで、座標(fi,fj-1)が存在し、かつ座標(fi,fj)との間に壁、柱、境界線が通っておらず、かつStack[fi][fj-1]が0であるか否かを判定する。つまり、a(最初は「1」)に設定された座標[fi][fj]と当該座標[fi][fj]のY軸方向-側の座標(fi,fj-1)との間に壁、柱、境界線が無く、かつ、座標(fi,fj-1)が0であれば(ステップS103でYesの場合)、Stack[fi][fj-1]を-1に設定する(ステップS107)。その後、ステップS107Aに進んで、mjをfj-1に設定(ただし、fi=0のときを除く)した後、ステップS103Aに進んで、fiをmiに、fjをmjに設定する。
ステップS103でNoの場合、即ち、(fi,fj)と(fi,fj-1)との間に壁、柱、境界線が通っていた場合も、ステップS103Aに進んで、fiをmiに、fjをmjに設定する。
ステップS103Aの処理後、ステップS97に戻る。
また、ステップS98において、Stack[fi][fj]=-1でなければ、fiをfi+1に設定して(ステップS108)、ステップS97に戻る。
ステップS97において、fi>Xmaxであれば、ステップS109に進んで、fiを0に、fjをfj+1に設定した後、fj>Ymaxであるか否かを判定する(ステップS110)。
ステップS110において、fj>Ymaxでなければ、ステップS98に進み、fj>Ymaxであれば、ステップS111に進む。
以上により、例えば、図8(c)~(f)、図23(c),(d)の状態となる。
ステップS111においては、a=1であるか否かを判定し、a=1でなければ、ステップS112に進んで、a番目の区画の4方向が柱(座標が解っている)と接しており、かつ接触している柱の番号nが全て同じであるか否かを判定する。
ステップS111においては、a=1であれば、a=1番目の区画を壁外であると判定し(ステップS115)、その後、ステップS112に進む。
ステップS112でNoであれば、aをa+1に設定し(ステップS113)、iをi+1に設定して(ステップS114)、ステップS92に戻る。
ステップS112でYesの場合、a番目の区画は、柱内であると判定し(ステップS116)、その後、ステップS113に進む。
即ち、領域の境界線の四方(図6の上下左右)が柱Bの境界線と一致し、柱Bの境界線が同じ番号の柱Bの境界線であるという柱内領域条件を満たすとコンピュータが判定した場合は、当該領域が柱内領域であると判定する。つまり、a=1ではなく、かつ、柱内領域条件を満たさない領域が、分割領域であると認識される。
換言すれば、ステップS110において、fj>Ymaxであると判定された場合、1つのエリアの塗りつぶし処理が終了し、ステップS111,112でNoであれば、その塗りつぶした領域が分割領域であり、当該分割領域に番号aが付与されて認識されることになる。
また、ステップS93において、Stack[i][j]=0でなければ、iをi+1に設定して(ステップS114)、ステップS92に戻る。
また、ステップS92において、i>Xmaxであれば、iを0、jをj+1に設定し(ステップS117)、その後、j>Ymaxであるか否かを判定し(ステップS118)、j>Ymaxでなければ、ステップS93に戻り、j>Ymaxであれば、分割領域認識処理(phase6)を終了する。
以上により、移動対象領域Aの分割処理(phase1~phase6)が終了し、続いて、移動ルートの作成処理(phase7~phase11)に進む。
The computer performs the divided area recognition process (phase 6) as shown in the flowchart of FIG. 18 in accordance with the procedure of the divided area recognition process program.
In the divided area recognition process, the computer uses storage means such as a fill-in judgment and area number recording array file, an X-axis direction search management variable register, a Y-axis direction search management variable register, an area number management variable range register, an X-axis direction fill-in management variable register, a Y-axis direction fill-in management variable register, a fill-in management file, and a fill-in management variable temporary holding register, and performs the process while referring to the values stored in these storage means.
First, variables are initialized. That is, the fill-in judgment and area number recording array Stack[Xmax][Ymax] is set to [0,0,0,...], the X-axis direction search management variable i is set to 0, the Y-axis direction search management variable j is set to 0, and the area number management variable a is set to 1 (step S91). That is, the X-axis direction search management variable register is set to 0, the Y-axis direction search management variable register is set to 0, and all values of each XY coordinate position in the fill-in judgment and area number recording array file are maintained at 0, and the area number management variable range register is set to 1, and the process begins with filling the area outside the movement target area A with "1".
First, it is determined whether i>Xmax is satisfied (step S92), and if i>Xmax is not satisfied, it is determined whether Stack[i][j]=0 is satisfied (step S93).
In step S93, if Stack[i][j]=0, Stack[i][j] is set to -1 (step S94), resulting in, for example, the states shown in Figures 8(b) and (f), Figures 23(b) and (d), Figures 24(b), (d), and (f), and Figure 25(b).
Thereafter, the filling control variables are initialized, that is, the X-axis direction filling control variable fi is set to i, and the Y-axis direction filling control variable fj is set to j (step S95).
In the fill management, when performing fill processing for each area, in order not to fill areas that already have area numbers, the values of each XY coordinate position are managed in a fill management file that is separate from the fill judgment and area number record array file. That is, the values of each XY coordinate position in the fill judgment and area number record array file, Stack[i][j], are replaced with the values of each XY coordinate position in the fill management file, Stack[fi][fj] (see FIG. 23(d) for example), so that the values of each XY coordinate position in areas that already have area numbers are not searched for, thereby making it possible to speed up the fill processing.
Next, it is determined whether fi>Xmax (step S97).
If fi>Xmax is not satisfied in step S97, it is determined whether Stack[fi][fj]=-1 is satisfied (step S98).
In step S98, if Stack[fi][fj] = -1 (YES in step S98), proceed to step S98A, set mi to fi and mj to fj in the fill management variable temporary holding register, and then set Stack[fi][fj] to a (step S99).
Then, it is determined whether or not the coordinate (fi+1, fj) exists, there is no wall, pillar, or boundary between the coordinate (fi, fj), and Stack[fi+1][fj] is 0 (step S100). In other words, if there is no wall, pillar, or boundary between the coordinate [fi][fj] set to a (initially "1") and the coordinate (fi+1, fj) on the positive side of the X-axis direction of the coordinate [fi][fj], and the coordinate (fi+1, fj) is 0 (Yes in step S100), Stack[fi+1][fj] is set to -1 (step S104). Then, proceed to step S101.
If the answer is No in step S100, that is, if a wall, pillar, or boundary line passes between (fi, fj) and (fi+1, fj), proceed to step S101 to determine whether or not the coordinate (fi-1, fj) exists, there is no wall, pillar, or boundary line between the coordinate (fi, fj), and Stack[fi-1][fj] is 0. In other words, if there is no wall, pillar, or boundary line between the coordinate [fi][fj] set to a (initially "1") and the coordinate (fi-1, fj) on the negative side of the X-axis direction of the coordinate [fi][fj], and the coordinate (fi-1, fj) is 0 (if the answer is Yes in step S101), then set Stack[fi-1][fj] to -1 (step S105). Thereafter, the process proceeds to step S105A, where mi is set to fi-1 (except when fi=0), and the process proceeds to step S102.
If the answer is No in step S101, that is, if a wall, pillar, or boundary line passes between (fi, fj) and (fi-1, fj), the process proceeds to step S102, where it is determined whether or not the coordinate (fi, fj+1) exists, there is no wall, pillar, or boundary line between the coordinate (fi, fj), and Stack[fi][fj+1] is 0. In other words, if there is no wall, pillar, or boundary line between the coordinate [fi][fj] set to a (initially "1") and the coordinate (fi, fj+1) on the Y-axis direction + side of the coordinate [fi][fj], and the coordinate (fi, fj+1) is 0 (if the answer is Yes in step S102), Stack[fi][fj+1] is set to -1 (step S106). Then, the process proceeds to step S103.
If the answer is No in step S102, that is, if a wall, pillar, or boundary line passes between (fi, fj) and (fi, fj+1), proceed to step S103 to determine whether or not the coordinate (fi, fj-1) exists, there is no wall, pillar, or boundary line between the coordinate (fi, fj), and Stack[fi][fj-1] is 0. In other words, if there is no wall, pillar, or boundary line between the coordinate [fi][fj] set to a (initially "1") and the coordinate (fi, fj-1) on the negative side of the Y-axis direction of the coordinate [fi][fj], and the coordinate (fi, fj-1) is 0 (if the answer is Yes in step S103), then Stack[fi][fj-1] is set to -1 (step S107). Thereafter, the process proceeds to step S107A, where mj is set to fj-1 (except when fi=0), and then the process proceeds to step S103A, where fi is set to mi and fj is set to mj.
If step S103 is No, that is, if there is a wall, pillar, or boundary line between (fi, fj) and (fi, fj-1), the process also proceeds to step S103A, where fi is set to mi and fj is set to mj.
After the processing of step S103A, the process returns to step S97.
If it is not determined in step S98 that Stack[fi][fj]=-1, fi is set to fi+1 (step S108), and the process returns to step S97.
If fi>Xmax in step S97, the process proceeds to step S109, where fi is set to 0 and fj is set to fj+1, and then it is determined whether fj>Ymax (step S110).
In step S110, if fj>Ymax is not satisfied, the process proceeds to step S98, and if fj>Ymax is satisfied, the process proceeds to step S111.
As a result of the above, the states shown in FIGS. 8(c) to (f) and FIGS. 23(c) and (d) are obtained, for example.
In step S111, it is determined whether a = 1, and if a = 1 is not true, the process proceeds to step S112 to determine whether the a-th section is in contact with pillars (whose coordinates are known) on all four sides and whether the numbers n of the pillars in contact are all the same.
In step S111, if a=1, it is determined that the a=1th section is outside the wall (step S115), and then the process proceeds to step S112.
If the answer is No in step S112, a is set to a+1 (step S113), i is set to i+1 (step S114), and the process returns to step S92.
If the answer is Yes in step S112, it is determined that the a-th section is inside a pillar (step S116), and then the process proceeds to step S113.
That is, if the computer determines that the four sides of the boundary line of an area (top, bottom, left, and right in FIG. 6) match the boundary lines of column B, and that the boundary lines of column B are the boundary lines of column B with the same number, the computer determines that the area is an area inside a column. In other words, an area where a=1 is not satisfied and does not satisfy the condition for an area inside a column is recognized as a divided area.
In other words, if it is determined in step S110 that fj > Ymax, the filling process for one area is completed, and if the answer is No in steps S111 and S112, the filled area is a divided area, and the divided area is assigned the number a and recognized.
If it is determined in step S93 that Stack[i][j]=0 is not met, i is set to i+1 (step S114), and the process returns to step S92.
Also, in step S92, if i>Xmax, i is set to 0 and j is set to j+1 (step S117), and then it is determined whether j>Ymax is true (step S118). If j>Ymax is not true, the process returns to step S93; if j>Ymax is true, the divided area recognition process (phase 6) is terminated.
This completes the division process (phases 1 to 6) of the movement target area A, and the process then proceeds to the creation process of the movement route (phases 7 to 11).
分割領域認識処理(phase6)を、上述したステップSと図8,図26~図28とを参照しながら説明する。
尚、図8では、2つのエリアを塗りつぶし処理にて抽出し、抽出したエリア毎に個別の番号を付けた例を示している。
図26~図28では、複数のエリアを塗りつぶし処理にて抽出し、抽出したエリア毎に個別の番号を昇順に付けた例を示している。
まず、ステップS91では、図8(a),図26(a)に示すように、塗りつぶし判定兼エリア番号記録配列ファイル、即ち、移動対象領域A全体と移動対象領域Aの周辺を含む領域全体の各XY座標位置を示すXY座標マトリクスStack[Xmax][Ymax]の値を全部0にする。
そして、ステップS92,93,94,95を経て、図8(b),図26(b)に示す状態となる。
そして、ステップS97~S107Aを経て、図8(c)~(f),図26(c)に示す処理が行われる。
尚、ステップS105A、ステップS107Aは、図8(e)(f)に示すような凹部がある場合に座標位置を戻して検索する処理である。つまり、この場合、X方向における-方向やY方向における-方向に座標を戻して処理を行うために、当該戻した座標位置を、塗りつぶし管理変数一時保留レジスタに変数mi,mjとして一時的に保留して処理を行うようにしている。
そして、任意のエリアの座標すべてに番号aが付けられた後(ステップS110でYESの場合)、そのエリアが、壁外領域(移動対象領域A外領域)か、柱内領域が、分割領域かの判定が行われ(ステップS111,112)、その後、次のエリアの番号が更新されて(ステップS113)、次のエリアの塗りつぶし処理に移行していく(図8(f),(g)、図26(d)、図27(a)~(f)、図28(a)~(d)参照)。
ステップS113でエリア毎に昇順で番号が付けられる。尚、図26~図28においては、エリアaに番号1が付与され、エリアbに番号2が付与され、エリアcに番号3が付与され、エリアdに番号4が付与され、エリアeに番号5が付与され、エリアfに番号6が付与された例を示している。つまり、各エリア毎に昇順で番号が付けられた例を示している。
The divided region recognition process (phase 6) will be described with reference to the above-mentioned step S and to FIGS.
In addition, FIG. 8 shows an example in which two areas are extracted by painting processing, and each extracted area is assigned an individual number.
26 to 28 show examples in which a plurality of areas are extracted by painting, and each extracted area is assigned an individual number in ascending order.
First, in step S91, as shown in Figures 8(a) and 26(a), the values of the fill-in judgment and area number recording array file, i.e., the XY coordinate matrix Stack[Xmax][Ymax] indicating each XY coordinate position of the entire area to be moved A and the entire area including the periphery of the area to be moved A, are all set to 0.
Then, through steps S92, S93, S94 and S95, the state shown in FIG. 8(b) and FIG. 26(b) is reached.
Then, through steps S97 to S107A, the processes shown in FIGS. 8(c) to (f) and FIG. 26(c) are carried out.
In addition, steps S105A and S107A are processes for returning the coordinate position and searching when there is a recess as shown in Fig. 8(e) and (f). That is, in this case, in order to perform processing by returning the coordinate in the negative direction in the X direction or the negative direction in the Y direction, the returned coordinate position is temporarily stored as variables mi and mj in the filling management variable temporary storage register and then processed.
Then, after the number a has been assigned to all coordinates of any area (YES in step S110), a determination is made as to whether the area is an area outside the wall (area outside the area to be moved A) or an area inside the pillar, which is a divided area (steps S111, 112), after which the number of the next area is updated (step S113) and the process proceeds to fill in the next area (see Figures 8 (f) and (g), Figure 26 (d), Figures 27 (a) to (f), and Figures 28 (a) to (d)).
In step S113, a number is assigned to each area in ascending order. Note that Figures 26 to 28 show an example in which area a is assigned
次に、移動ルートの作成処理(phase7~phase11)においては、まず、等間隔直線経路作成処理(phase7)が行われる。
等間隔直線経路作成処理(phase7)では、コンピュータが、等間隔直線経路作成処理プログラムの手順に従って、移動対象領域A内に、Y軸方向に沿った間隔が等間隔の複数の横直線S,S…を設定して、後述する分割領域内ジグザグ移動予定ルートの元となる等間隔直線経路を作成する。図9では、移動対象領域A内に、Y軸方向に沿った間隔が等間隔の複数の横直線S,S…を設定した例を示している。
即ち、等間隔直線経路作成処理(phase7)を実行する手段は、移動対象領域AをY軸に沿って等間隔に区切るX軸と平行な複数の横直線S,S…を作成する横直線作成手段として機能する。
Next, in the process of creating a travel route (
In the equally-spaced straight-line path creation process (phase 7), the computer sets a plurality of horizontal straight lines S, S... at equal intervals along the Y-axis direction within the movement target area A in accordance with the procedure of the equally-spaced straight-line path creation process program, and creates an equally-spaced straight-line path that is the basis of a zigzag movement planned route within a divided area, which will be described later. Fig. 9 shows an example in which a plurality of horizontal straight lines S, S... at equal intervals along the Y-axis direction are set within the movement target area A.
That is, the means for executing the equally spaced straight line path creation process (phase 7) functions as a horizontal straight line creation means for creating a plurality of horizontal straight lines S, S... parallel to the X axis that divide the movement target area A at equal intervals along the Y axis.
次に、交点座標抽出処理(phase8)では、コンピュータが、交点座標抽出処理プログラムの手順に従って、図10に示すように、各エリア(壁外領域(移動対象領域A外領域)、柱内領域、分割領域のすべて)を区画する境界線C,M,N,Q,柱Bの境界線(障害物領域境界線)と複数の直線S,S…との交点座標G,G…を抽出する。 Next, in the intersection coordinate extraction process (phase 8), the computer follows the procedure of the intersection coordinate extraction process program to extract the intersection coordinates G, G... of the boundaries C, M, N, Q and the boundary of pillar B (obstacle area boundary) that divide each area (the area outside the wall (area outside the area A to be moved), the area inside the pillar, and all divided areas) with multiple straight lines S, S..., as shown in Figure 10.
即ち、コンピュータは、等間隔直線経路作成処理プログラム及び交点座標抽出処理プログラムの手順に従って、図19のフローチャートに示すような等間隔直線経路作成処理(phase7)及び交点座標抽出処理(phase8)を行う。
まず、境界線本数管理変数初期化、即ち、境界線本数管理変数mを0に設定する(ステップS121)。
次に、探索範囲の最も小さなy座標の値(外壁の最も下端のy座標)を特定し、その値をyに設定する(ステップS122)。
そして、X軸に平行で切片がyである直線Sを定義する(ステップS123)。
次に、m番目の境界線(壁、柱の外周を含む)は直線Sと交点を持つか否かを判定する(ステップS124)。
ステップS124において、m番目の境界線が直線Sとの交点を持つと判定された場合、その交点の座標を交点座標記録ファイルに記録し(ステップS125)、その後、mをm+1とし(ステップS126)、mの値が境界線の総本数と一致したか否かを判定する(ステップS127)。
ステップS124において、m番目の境界線が直線Sとの交点を持たないと判定された場合、ステップS126に進む。
ステップS127において、mの値が境界線の総本数と一致しなければ、一致するまで、ステップS124~ステップS126の処理を繰り返す。
ステップS127において、mの値が境界線の総本数と一致すれば、yをy+レーン間距離に設定し(ステップS128)、yの値が探索範囲の上限を超えたか否かを判定する(ステップS129)。
ステップS129において、yの値が探索範囲の上限を超えていなければ、超えるまで、ステップS118~ステップS118の処理を繰り返す、
ステップS129において、yの値が探索範囲の上限を超えた場合には、交点抽出処理を終了して、エリア毎交点座標抽出処理(phase9)に移行する。
即ち、等間隔直線経路作成処理及び交点座標抽出処理では、コンピュータが、境界線本数管理変数レジスタ、各直線Sのy座標記録ファイル、交点座標記録ファイルのような記憶手段を使用しながら処理を行う。
That is, the computer performs the equally spaced straight line path creation process (phase 7) and the intersection coordinate extraction process (phase 8) as shown in the flowchart of FIG. 19, in accordance with the procedures of the equally spaced straight line path creation process program and the intersection coordinate extraction process program.
First, the boundary line number control variable m is initialized, that is, the boundary line number control variable m is set to 0 (step S121).
Next, the smallest y coordinate value in the search range (the y coordinate of the lowest end of the exterior wall) is identified, and this value is set as y (step S122).
Then, a straight line S that is parallel to the X-axis and has an intercept of y is defined (step S123).
Next, it is determined whether the m-th boundary line (including the periphery of the wall and the pillar) has an intersection with the line S (step S124).
If it is determined in step S124 that the mth boundary line has an intersection with the straight line S, the coordinates of the intersection are recorded in the intersection coordinate recording file (step S125), and then m is set to m+1 (step S126), and it is determined whether the value of m matches the total number of boundary lines (step S127).
If it is determined in step S124 that the m-th boundary line does not have an intersection with the line S, the process proceeds to step S126.
If the value of m does not match the total number of borders in step S127, the processes in steps S124 to S126 are repeated until the value of m matches the total number of borders.
In step S127, if the value of m matches the total number of boundary lines, y is set to y+the lane distance (step S128), and it is determined whether the value of y exceeds the upper limit of the search range (step S129).
In step S129, if the value of y does not exceed the upper limit of the search range, the processes in steps S118 to S118 are repeated until the value of y exceeds the upper limit of the search range.
In step S129, if the value of y exceeds the upper limit of the search range, the intersection extraction process is terminated and the process proceeds to the intersection coordinate extraction process for each area (phase 9).
That is, in the equally spaced straight line path creation process and the intersection coordinate extraction process, the computer performs the process while using storage means such as a boundary line number management variable register, a y coordinate recording file for each straight line S, and an intersection coordinate recording file.
尚、ステップS122における、y←探索範囲…の「探索範囲」とは、Cで囲まれた移動対象領域Aのことである。
また、ステップS123での「直線Sを定義」とは、例えば図9に示した直線Sのことである。従って、図19の移動予定ルート候補線作成処理では、図9の下から上に向けて順番に直線Sを1本ずつ引いていって、直線Sを引く毎に、当該直線Sと各境界線との交点座標を記録するという処理を繰り返している。尚、移動対象領域境界線Cの下端位置及び上端位置の水平線上にも直線Sが設定される。
また、ステップS128での「レール間距離」とは、上下方向(Y軸方向)に隣り合う直線S,S間の距離のことであり、この「レール間距離」の値(長さ)は予め適当な長さ(例えば、10cm)に決めておく。
従って、分割領域内ジグザグ移動予定ルートの元となる各直線S,S…とすべての境界線との交点の座標がすべて交点座標記録ファイルに記録される。
この場合、例えば、交点座標記録ファイルには、XY座標が小さい順に交点に番号が付けられて、各交点のX座標及びY座標が記録される(図12の交点XY座標を指した○数字参照)。
In step S122, the "search range" in y←search range . . . refers to the movement target area A surrounded by C.
Moreover, "define straight line S" in step S123 refers to, for example, the straight line S shown in Fig. 9. Therefore, in the process of creating a proposed movement route candidate line in Fig. 19, the process of drawing straight lines S one by one in order from bottom to top in Fig. 9 and recording the coordinates of the intersections between the straight line S and each boundary line each time a straight line S is drawn is repeated. Note that straight lines S are also set on the horizontal lines at the bottom and top end positions of the movement target area boundary line C.
In addition, the "distance between rails" in step S128 refers to the distance between adjacent straight lines S, S in the vertical direction (Y-axis direction), and the value (length) of this "distance between rails" is determined in advance to an appropriate length (for example, 10 cm).
Therefore, the coordinates of the intersections between each of the straight lines S, S . . . that form the basis of the planned zigzag movement route within the divided area and all of the boundary lines are all recorded in the intersection coordinate recording file.
In this case, for example, in the intersection coordinate recording file, the intersections are numbered in ascending order of X and Y coordinates, and the X and Y coordinates of each intersection are recorded (see the circled numbers indicating the intersection X and Y coordinates in FIG. 12).
エリア毎交点座標抽出処理(phase9)では、コンピュータが、エリア毎交点座標抽出処理プログラムの手順に従って、各エリア毎に、各エリアを区画する境界線C,M,N,Q,柱Bの境界線(障害物領域境界線)上の交点座標G,G…を抽出する。
図11では、エリア番号6が付与された分割領域Eを区画する境界線C,N上の交点座標G,G…を抽出した例を示している。
In the area-by-area intersection coordinate extraction process (phase 9), the computer extracts, for each area, the coordinates of intersections G, G... on the boundary lines C, M, N, Q and the boundary line of pillar B (obstacle area boundary line) that divide each area, in accordance with the procedures of the area-by-area intersection coordinate extraction process program.
FIG. 11 shows an example in which intersection coordinates G, G . . . on boundaries C, N that define a divided area E to which
コンピュータは、エリア毎交点座標抽出処理プログラムの手順に従って、図20のフローチャートに示すようなエリア毎交点座標抽出処理(phase9)を行う。
まず、変数初期化を行う。即ち、交点数管理変数kを0、エリア番号管理変数aを1に設定する(ステップS131)。
次に、kの値が、交点座標抽出処理において交点座標記録ファイルに記録された交点数を超えたか否かを判定する(ステップS132)。
ステップS132において、kの値が、交点座標記録ファイルに記録された交点数を超えていないと判定された場合には、エリアaのaの値がエリア数を超えたか否かを判定する(ステップS133)。
ステップS133において、aの値がエリア数を超えていない場合には、k番目の交点がエリアaに隣接しているか否かを判定する(ステップS134)。
ステップS134において、k番目の交点がエリアaに隣接していると判定された場合には、a番目のエリア用の交点座標記録ファイルにすでにk番目の交点と全く同じ座標が代入されているか否かを判定する(ステップS135)。
ステップS134において、k番目の交点がエリアaに隣接していないと判定された場合には、kをk+1に設定し(ステップS137)、その後、ステップS1132に戻る。
ステップS135において、a番目のエリア用の交点座標記録ファイルにすでにk番目の交点と全く同じ座標が記録されていると判定された場合、ステップS137に進む。
ステップS135において、a番目のエリア用の交点座標記録ファイルにk番目の交点と全く同じ座標が記録されていないと判定された場合、a番目のエリア用の交点座標記録ファイルにk番目の交点座標を記録し(ステップS136)、その後、ステップS137に進む。
ステップS132において、kの値が交点数を超えたと判定された場合には、kを0に、aをa+1に設定し(ステップS138)し、その後、ステップS133に進む。
ステップS133において、aの値がエリア数を超えたと判定された場合には、エリア毎交点座標抽出処理(phase9)を終了して、分割領域内ジグザグ移動予定ルート作成処理(phase10)に移行する。
即ち、エリア毎交点座標抽出処理では、コンピュータが、交点数管理変数レジスタ、エリア番号管理変数レジスタ、交点座標記録ファイル、エリア毎の交点座標記録ファイルのような記憶手段を使用しながら処理を行う。
The computer performs an area-by-area intersection coordinate extraction process (phase 9) as shown in the flow chart of FIG. 20 in accordance with the procedure of the area-by-area intersection coordinate extraction process program.
First, variables are initialized: the intersection number management variable k is set to 0, and the area number management variable a is set to 1 (step S131).
Next, it is determined whether or not the value of k exceeds the number of intersections recorded in the intersection coordinate recording file in the intersection coordinate extraction process (step S132).
If it is determined in step S132 that the value of k does not exceed the number of intersections recorded in the intersection coordinate recording file, it is determined whether the value of a of area a exceeds the number of areas (step S133).
If the value of a does not exceed the number of areas in step S133, it is determined whether or not the kth intersection is adjacent to area a (step S134).
If it is determined in step S134 that the kth intersection is adjacent to area a, it is determined whether or not the same coordinates as the kth intersection have already been assigned to the intersection coordinate recording file for the ath area (step S135).
If it is determined in step S134 that the k-th intersection is not adjacent to area a, k is set to k+1 (step S137), and then the process returns to step S1132.
If it is determined in step S135 that the intersection coordinate recording file for the a-th area already has the same coordinates as the k-th intersection recorded therein, the process proceeds to step S137.
If it is determined in step S135 that the intersection coordinate recording file for the a-th area does not have coordinates identical to those of the k-th intersection recorded therein, the coordinates of the k-th intersection are recorded in the intersection coordinate recording file for the a-th area (step S136), and then the process proceeds to step S137.
If it is determined in step S132 that the value of k exceeds the number of intersections, k is set to 0 and a is set to a+1 (step S138), and then the process proceeds to step S133.
If it is determined in step S133 that the value of a exceeds the number of areas, the process of extracting intersection coordinates for each area (phase 9) is terminated, and the process proceeds to the process of creating a planned zigzag movement route within the divided area (phase 10).
That is, in the area-by-area intersection coordinate extraction process, the computer performs the process while using storage means such as the intersection number management variable register, the area number management variable register, the intersection coordinate recording file, and the intersection coordinate recording file for each area.
エリア毎交点座標抽出処理(phase9)では、例えばXY座標値の小さい交点から順番に1つずつどのエリアに隣接しているのかを判定していくことにより、エリア毎に交点の番号と交点のXY座標とがエリア毎の交点座標記録ファイルに記録される。つまり、エリア毎に交点座標が抽出されて、エリア毎の交点座標記録ファイルに記録される(図29(a)参照)。
まず初めに、ステップS131において、交点数管理変数kが0、エリア番号管理変数aが1に設定されるので、エリアa=1、即ち、移動対象領域Aを囲む境界線Cと交わる交点を所定の順番(例えば、XY座標が最小である交点をk=1とし、X座標、Y座標の小さい交点から順番にkの値を+1していく。)で記録していく。そして、各エリア毎に、交点座標抽出処理において交点座標記録ファイルに記録された交点の座標が各エリアに隣接しているか否かを調べていく(ステップS132~S134)ことにより、各エリア毎の交点座標記録ファイルを作成する(ステップS136)。
つまり、エリア毎交点座標抽出処理(phase9)では、各エリアと各交点との対応付け(ステップS136)を行っているものである。
即ち、各エリアを区画する線上と直線Sとの交点座標を、エリア毎の交点座標として抽出して記録している。
以上のように、交点座標抽出処理(phase8)、及び、エリア毎交点座標抽出処理(phase9)を実行する手段は、各エリアを区画する境界線C,M,N,Q,柱Bの境界線(移動対象領域境界線、境界線、障害物領域境界線)と各横直線S,S…との交点を認識する第1の交点認識手段として機能する。即ち、分割領域境界線と横直線との交点を認識する第1の交点認識手段として機能する。
In the area-by-area intersection coordinate extraction process (phase 9), for example, by determining which area each intersection is adjacent to, starting from the intersection with the smallest XY coordinate value, the intersection number and the XY coordinate of the intersection are recorded in the intersection coordinate recording file for each area. In other words, the intersection coordinates are extracted for each area and recorded in the intersection coordinate recording file for each area (see FIG. 29(a)).
First, in step S131, the intersection number management variable k is set to 0 and the area number management variable a is set to 1, so that area a=1, i.e., the intersections that intersect with the boundary line C surrounding the movement target area A, are recorded in a predetermined order (for example, the intersection with the smallest XY coordinate is set to k=1, and the value of k is incremented by 1 in order from the intersection with the smallest X and Y coordinates). Then, for each area, it is checked whether the coordinates of the intersections recorded in the intersection coordinate recording file in the intersection coordinate extraction process are adjacent to each area (steps S132 to S134), and an intersection coordinate recording file for each area is created (step S136).
That is, in the area-by-area intersection coordinate extraction process (phase 9), each area is associated with each intersection (step S136).
That is, the coordinates of the intersection between the line dividing each area and the straight line S are extracted and recorded as the coordinates of the intersection for each area.
As described above, the means for executing the intersection coordinate extraction process (phase 8) and the area-specific intersection coordinate extraction process (phase 9) function as a first intersection recognition means for recognizing the intersections between the boundaries C, M, N, Q and pillar B dividing each area (movement target area boundary, boundary, obstacle area boundary) and each horizontal straight line S, S.... In other words, it functions as a first intersection recognition means for recognizing the intersections between the divided area boundary and the horizontal straight line.
分割領域内ジグザグ移動予定ルート作成処理(phase10)では、コンピュータが、分割領域内ジグザグ移動予定ルート作成処理プログラムの手順に従って、図12に示すように、各分割領域E,E…毎に、X軸に沿って直線S上で隣り合う座標G,G同士を繋げるとともに、Y軸に沿って隣り合う直線S,S間の交点座標G,G同士を繋げることによって、各分割領域E,E…内でのジグザグな分割領域内ジグザグ移動予定ルートHを作成する。
ジグザグな分割領域内ジグザグ移動予定ルートHとは、X軸方向の一方方向に進んだ後X軸方向の一方方向とは反対の他方方向に折り返す経路が繰り返されるルートのことである。尚、等間隔直線経路作成処理において、X軸方向に沿った間隔が等間隔の複数の縦直線が設定される場合には、Y軸方向の一方方向に進んだ後Y軸方向の一方方向とは反対の他方方向に折り返す経路が繰り返される分割領域内ジグザグ移動予定ルートが作成されることになる。
また、エリア毎の交点座標記録ファイルに記録されている交点は、交点の番号が飛び飛びの状態で記録される。例えば、図12において、XY座標値の小さい交点から順番に交点の番号が付けられて1つずつどのエリアに隣接しているのかを判定していく場合、交点の番号は、図12の○内の番号のように付与される。例えば、図12の番号2が付与されたエリア(分割領域)の交点座標記録ファイルには、図26(a)に示すように、交点の番号が1,2,6,7,11,12,16,17,18の交点が順番に記録される。しかしながら、例えば図26(a)の記録順に交点を辿った場合、のこぎり状のルートとなってしまう。そこで、分割領域内ジグザグ移動予定ルート作成処理(phase10)では、図26(b)に示すように、エリア毎のソート後交点座標記録ファイルに、各交点のXY座標がジグザグ経路を形成するルートの始点から終点の位置まで順番に並ぶように、各交点の記録順を並び変えるようにしている。例えば、図29(b)に示すように、図12の番号2が付与されたエリア(分割領域)のソート後交点座標記録ファイルには、各交点は、交点の番号16,18,12,11,6,7,2,1の順番で記録される。従って、分割領域においては、エリア(分割領域)毎のソート後交点座標記録ファイルに記録された順番で交点座標を辿る分割領域内ジグザグ移動予定ルートが作成されることになる。
In the process of creating a planned zigzag movement route within a divided area (phase 10), the computer follows the procedures of the process of creating a planned zigzag movement route within a divided area program to create a zigzag planned zigzag movement route H within each divided area E, E... by connecting adjacent coordinates G, G on a straight line S along the X-axis for each divided area E, E..., as shown in Figure 12, and connecting intersection coordinates G, G between adjacent straight lines S, S along the Y-axis.
The zigzag planned movement route H in the divided area is a route that repeats a route that moves in one direction in the X-axis direction and then turns back in the other direction opposite to the one direction in the X-axis direction. Note that, in the equally spaced straight line route creation process, when a plurality of vertical straight lines with equal intervals along the X-axis direction are set, a zigzag planned movement route in the divided area is created that repeats a route that moves in one direction in the Y-axis direction and then turns back in the other direction opposite to the one direction in the Y-axis direction.
In addition, the intersections recorded in the intersection coordinate recording file for each area are recorded with the intersection numbers being discontinuous. For example, in FIG. 12, when the intersection numbers are assigned in order from the intersection with the smallest XY coordinate value and it is determined which area each intersection is adjacent to, the intersection numbers are assigned as shown in the circles in FIG. 12. For example, in the intersection coordinate recording file for the area (divided area) assigned the
コンピュータは、分割領域内ジグザグ移動予定ルート作成処理プログラムの手順に従って、図21のフローチャートに示すような分割領域内ジグザグ移動予定ルート作成処理(phase10)を行う。
まず、変数初期化を行う。即ち、エリア番号管理変数aを1に、ソート管理変数iを1に、ソート基準変更変数jを1に設定する(ステップS141)。
尚、ソート管理変数iとは、ソートによって順番を入れ換えた数値を配列のどこにいれるかを管理する変数であり、ソート基準変更変数jとは、ルートがのこぎり状ではなくジグザグな矩形波状のルートになるようにするために並べ替えの基準を変更する際の管理変数である。
分割領域内ジグザグ移動予定ルート作成処理では、コンピュータが、エリア番号管理変数レジスタ、ソート管理変数レジスタ、ソート基準変更変数レジスタ、エリア毎の交点座標記録ファイル、エリア毎のソート後交点座標記録ファイルのような記憶手段を使用しながら処理を行う。
次に、aの値がエリア数の上限を超えている否かを判定する(ステップS142)。
ステップS142において、aの値がエリア数の上限を超えていないと判定された場合、a番目のエリアは有効なエリアか、即ち、壁外、あるいは、柱内部ではないか否かを判定する(ステップS143)。
ステップS143において、a番目のエリアが有効なエリアであると判定された場合、このa番目のエリア用の交点座標記録ファイルの中でY座標が最も大きい交点座標を検索する(ステップS144)。
そして、ステップS145において、Y座標が最も大きい交点座標が複数あったか否かを判定する。
ステップS145において、Y座標が最も大きい交点座標が1個だけあったと判定された場合、ステップS144で検索された座標データを、a番目のエリア用のソート後交点座標記録ファイルのi番目に移し変える(ステップS146)。つまり、iが「1」であれば、Y座標が最も大きい交点座標を有した交点の番号とXY座標値とを、a番目のエリア用のソート後交点座標記録ファイルの一番最初の記録領域に記録する。即ち、Y座標が最も大きい交点の記録順を1番目にする。
尚、ステップS146では、a番目のエリア用の交点座標記録ファイルに記録されていたi番目のデータをa番目のエリア用のソート後交点座標記録ファイルのi番目に移し変えるので、このi番目のデータはa番目のエリア用の交点座標記録ファイルから削除される。
従って、次回のステップS144では、i番目のデータが除かれたa番目のエリア用の交点座標記録ファイルのデータの中で、Y座標が最も大きい座標を検索する。
尚、エリア用の交点座標記録ファイルからデータを削除せずに、エリア用の交点座標記録ファイルをコピーした処理用記録ファイルを用いて処理を行い、当該処理用記録ファイルのデータを削除するようにしてもよい。
また、ステップS145において、各分割領域での移動開始位置候補となる交点座標を抽出し、その後のステップにおいて、ソート後交点座標記録ファイルの1番目に記録される交点座標を、各分割領域での移動開始位置となる交点座標に決めて、各分割領域において、移動開始位置となる交点座標から移動終了位置となる交点座標まで直線Sを辿って交点座標位置で進路を変えるジグザグ経路を作成するものである。
ステップS145において、Y座標が最も大きい座標が2個あったと判定された場合、ソート基準変更変数jの値が奇数か否かを判定し(ステップS150)、jの値が奇数であると判定された場合には、Y座標が最も大きくかつX座標が最も小さい座標を検索し(ステップS151)、その後、jをj+1に設定する(ステップS152)。そして、検索された座標データを、a番目のエリア用のソート後交点座標記録ファイルのi番目に移し変える処理(ステップS146)に進む。
また、ステップS150において、jの値が偶数であると判定された場合には、Y座標が最も大きくかつX座標が最も大きい座標を検索し(ステップS153)、その後、jをj+1に設定した(ステップS152)後、ステップS146に進む。
また、ステップS145において、Y座標が最も大きい座標が3個以上あったと判定された場合は、Y座標が最も大きくかつX座標が最も小さい座標と、Y座標が最も大きくかつX座標が最も小さい座標以外の座標(中間の交点座標)を削除する(ステップS154)。その後、ステップS145において、Y座標が最も大きい座標が2個あったと判定された場合と同じ処理が行われて、ステップS146に進む。
ここで、例えば、図12のエリア2では、最初、ステップS144において、交点の番号16、番号17、番号18のY座標が最も大きい座標として検索され、ステップS145,S154を経て、交点番号17が削除される。そして、j=1なので、ステップS151に進んで、番号16の交点のXY座標が検索される。その後、jがj+1に設定され(ステップS152)、エリア2(分割領域)のソート後交点座標記録ファイルの一番最初の記録領域に、交点の番号16とそのXY座標とが記録される(図29(b)参照)。その後、ステップS144において、番号11の交点座標と番号12の交点座標とがY座標が最も大きい座標であるとして検索され、ステップS145において、Y座標が最も大きい座標が2個あったと判定された場合、この際には、j=2なので、ステップS153に進んで、Y座標が最も大きくかつX座標が最も大きい座標を有した番号12の交点座標が検索されて、エリア2(分割領域)のソート後交点座標記録ファイルの3番目の記録領域に、交点の番号12と当該交点のXY座標とが記録される(図29(b)参照)。
即ち、Y座標が最も大きい座標が複数あった場合に、X座標が最も小さい座標を検索するか、X座標が最も大きい座標を検索するかという基準を、jの値に基づいて、切り替えることにより、ルートがのこぎり状ではなくジグザグな矩形波状のルートとなるように工夫している。
ステップS146の後、エリア用のソート後交点座標記録ファイルのi-1番目の座標からi番目の座標を直線で結んだとき、外壁や柱と接触するか否かを判定する(ステップS147)。接触しなければ、iをi+1に更新して(ステップS147E)、a番目のエリア用の交点座標記録ファイルに座標データが残っているか否かを判定する(ステップS148)。
ステップS147において、直線が外壁や柱と接触すると判定された場合、エリア用のソート後交点座標記録ファイルのi番目の座標データをi+1番目に移動させた後、i番目の領域にi+1番目のX座標とi+1番目のY座標を書き込む(ステップS147A)。その後、iをi+2に更新して(ステップS147B)、ステップS148に進む。
即ち、ステップS147A,S147Bでは、図30(a)に示すように、ルートが外壁や柱と接触する場合、図30(b)に示すように、ルートが外壁や柱と接触しないように修正している。
次に、ステップS148において、a番目のエリア用の交点座標記録ファイルに座標データが残っていると判定された場合は、ステップS144に戻る。
ステップS148において、a番目のエリア用の交点座標記録ファイルに座標データが残っていないと判定された場合は、ステップS147Cに進んで、a番目のエリア用のソート後交点座標記録ファイルの1番目と2番目のY座標の値が同一か否かを判定する。
ステップS147Cにおいて、1番目と2番目のY座標の値が同一ではないと判定された場合、1番目に記録された座標情報を消去し、i番目の座標情報をi-1番目に移し替える(ステップS147D)。
即ち、図12に示すように、例えば3番エリアや11番エリアにおいては、ソート後交点座標記録ファイルの1番目のY座標と2番目のY座標の値は同一ではないため、2番目の交点座標位置(交点3s,11s)を始点とし、ソート後交点座標記録ファイルの3番目以降の交点座標の記録順を1つずつ繰り上げていく。
つまり、ステップS147C,S147Dでは、各分割領域での移動開始位置となる交点座標と次の交点座標とを繋ぐルート(経路)がX軸と平行なルートとなるように、各分割領域での移動開始位置となる交点座標を決める処理を行っている。
ステップS147Cにおいて、1番目と2番目のY座標の値が同一であると判定された場合、ステップS149に進んで、aをa+1に、iを1に、jを1に設定し、S142に戻る。即ち、現在処理中のエリアaのソート処理を終了し、次のエリアのソート処理に移行する。
ステップS143において、a番目のエリアが有効なエリアではないと判定された場合、ステップS149に進んで、aをa+1に、iを1に、jを1に設定し、ステップS142に戻る。即ち、次のエリアのソート処理に移行する。
ステップS142において、aの値がエリア数の上限を超えていると判定された場合には、分割領域内ジグザグ移動予定ルート作成処理(phase10)を終了し、移動コスト計算処理(phase11)に移行する。
即ち、a番目のエリア用のソート後交点座標記録ファイルに記録された交点座標を記録順に辿るルートが分割領域内ジグザグ移動予定ルートとして作成されることになる(図26(b)、図12のエリア2において点線で示した分割領域内ジグザグ移動予定ルートH参照)。
つまり、分割領域内ジグザグ移動予定ルート作成処理(phase10)においては、例えば図12に示すように、エリア2内における移動開始予定地点(座標)2sと移動終了予定地点(座標)2eとを繋ぐジグザグな分割領域内ジグザグ移動予定ルートHが作成される。また、各エリア(2~19までの柱領域7,10,12,16,18を除いたエリア)の移動開始予定地点(座標)Ns及び移動終了予定地点(座標)Ne(Nは2~19までの7,10,12,16,18を除いた整数)が決まり、これら移動開始予定地点(座標)Nsと移動終了予定地点(座標)Neとを繋ぐジグザグな分割領域内ジグザグ移動予定ルート(分割領域毎の第1のルート)Hが作成される。
以上のように、分割領域内ジグザグ移動予定ルート作成処理(phase10)を実行する手段は、各分割領域境界線上の交点を横直線で繋いで形成されたY軸に沿って進む分割領域毎のジグザグな第1のルートを作成する第1のルート作成手段として機能する。
The computer performs a process (phase 10) of creating a planned zigzag movement route within a divided area as shown in the flowchart of FIG. 21, in accordance with the procedure of a program for creating a planned zigzag movement route within a divided area.
First, variables are initialized: area number management variable a is set to 1, sort management variable i is set to 1, and sort criterion change variable j is set to 1 (step S141).
The sort control variable i is a variable that controls where in the array the numerical values that have been rearranged by sorting are to be placed, and the sort criterion change variable j is a control variable that is used when changing the sorting criteria so that the root becomes a zigzag rectangular wave root rather than a sawtooth root.
In the process of creating a planned zigzag movement route within a divided area, the computer performs the process using storage means such as an area number management variable register, a sorting management variable register, a sorting criterion change variable register, an intersection coordinate recording file for each area, and a post-sort intersection coordinate recording file for each area.
Next, it is determined whether the value of a exceeds the upper limit of the number of areas (step S142).
If it is determined in step S142 that the value of a does not exceed the upper limit of the number of areas, it is determined whether the a-th area is a valid area, that is, whether it is not outside a wall or inside a pillar (step S143).
If it is determined in step S143 that the a-th area is a valid area, the intersection coordinates with the largest Y coordinate are searched for in the intersection coordinate recording file for this a-th area (step S144).
Then, in step S145, it is determined whether there are a plurality of intersection coordinates with the largest Y coordinate.
If it is determined in step S145 that there is only one intersection coordinate with the largest Y coordinate, the coordinate data searched in step S144 is moved to the i-th position of the sorted intersection coordinate recording file for the a-th area (step S146). That is, if i is "1", the intersection number and the X and Y coordinate values of the intersection with the largest Y coordinate are recorded in the first recording area of the sorted intersection coordinate recording file for the a-th area. That is, the intersection with the largest Y coordinate is recorded first.
In step S146, the i-th data recorded in the intersection coordinate recording file for the a-th area is moved to the i-th data in the sorted intersection coordinate recording file for the a-th area, and this i-th data is deleted from the intersection coordinate recording file for the a-th area.
Therefore, in the next step S144, the coordinate with the largest Y coordinate is searched for among the data in the intersection coordinate recording file for the a-th area from which the i-th data has been removed.
It is also possible to carry out processing using a processing record file which is a copy of the area intersection coordinate record file, without deleting the data from the area intersection coordinate record file, and then delete the data from the processing record file.
In addition, in step S145, intersection coordinates that are candidates for the start position of movement in each divided area are extracted, and in the subsequent step, the intersection coordinate recorded first in the intersection coordinate recording file after sorting is determined to be the intersection coordinate that will be the start position of movement in each divided area, and a zigzag route is created in each divided area by tracing a straight line S from the intersection coordinate that is the start position of movement to the intersection coordinate that is the end position of movement, and changing course at the intersection coordinate position.
If it is determined in step S145 that there are two coordinates with the largest Y coordinate, it is determined whether the value of the sorting criterion change variable j is odd (step S150), and if it is determined that the value of j is odd, the coordinate with the largest Y coordinate and the smallest X coordinate is searched for (step S151), and then j is set to j+1 (step S152).Then, the process proceeds to a process of transferring the searched coordinate data to the i-th position in the sorted intersection coordinate recording file for the a-th area (step S146).
Also, if it is determined in step S150 that the value of j is an even number, the coordinate with the largest Y coordinate and the largest X coordinate is searched for (step S153), and then j is set to j+1 (step S152), after which the process proceeds to step S146.
If it is determined in step S145 that there are three or more coordinates with the largest Y coordinate, the coordinate with the largest Y coordinate and the smallest X coordinate and the coordinate with the largest Y coordinate and the smallest X coordinate (intermediate intersection coordinates) are deleted (step S154). After that, the same process as when it is determined in step S145 that there are two coordinates with the largest Y coordinate is performed, and the process proceeds to step S146.
For example, in
That is, when there are multiple coordinates with the largest Y coordinate, the criterion for searching for the coordinate with the smallest X coordinate or the coordinate with the largest X coordinate is switched based on the value of j, so that the route becomes a zigzag rectangular wave route rather than a sawtooth route.
After step S146, it is determined whether a straight line connecting the (i-1)th coordinate to the i-th coordinate in the sorted intersection coordinate recording file for area contacts an exterior wall or a pillar (step S147). If there is no contact, i is updated to i+1 (step S147E), and it is determined whether coordinate data remains in the intersection coordinate recording file for the a-th area (step S148).
If it is determined in step S147 that the straight line contacts an exterior wall or a pillar, the i-th coordinate data in the sorted intersection coordinate recording file for area is moved to the i+1th coordinate data, and the i+1th X coordinate and the i+1th Y coordinate are written in the i-th region (step S147A). Then, i is updated to i+2 (step S147B), and the process proceeds to step S148.
That is, in steps S147A and S147B, when the route comes into contact with an exterior wall or a pillar as shown in FIG. 30(a), the route is corrected so as not to come into contact with the exterior wall or the pillar as shown in FIG. 30(b).
Next, in step S148, if it is determined that coordinate data remains in the intersection coordinate recording file for the a-th area, the process returns to step S144.
If it is determined in step S148 that no coordinate data remains in the intersection coordinate recording file for the a-th area, the process proceeds to step S147C to determine whether the first and second Y coordinate values in the sorted intersection coordinate recording file for the a-th area are the same.
If it is determined in step S147C that the first and second Y coordinate values are not the same, the first recorded coordinate information is erased, and the i-th coordinate information is moved to the (i-1)th coordinate information (step S147D).
That is, as shown in FIG. 12, for example, in
That is, in steps S147C and S147D, a process is performed to determine the intersection coordinates that will be the start position of movement in each divided area so that the route (path) connecting the intersection coordinates that are the start position of movement in each divided area to the next intersection coordinates is a route parallel to the X-axis.
If it is determined in step S147C that the first and second Y coordinate values are the same, the process proceeds to step S149, where a is set to a+1, i to 1, and j to 1, and the process returns to S142. That is, the sorting process of the currently processed area a ends, and the process moves to the sorting process of the next area.
If it is determined in step S143 that the a-th area is not a valid area, the process proceeds to step S149, where a is set to a+1, i to 1, and j to 1, and the process returns to step S142. That is, the process proceeds to sorting of the next area.
If it is determined in step S142 that the value of a exceeds the upper limit of the number of areas, the process of creating a zigzag movement planned route within the divided area (phase 10) is terminated, and the process proceeds to the movement cost calculation process (phase 11).
In other words, a route that follows the intersection coordinates recorded in the sorted intersection coordinate recording file for the ath area in the order in which they were recorded is created as the planned zigzag movement route within the divided area (see Figure 26 (b) and the planned zigzag movement route H within the divided area shown by the dotted line in
That is, in the process of creating a zigzag movement route within the divided area (phase 10), for example, as shown in Fig. 12, a zigzag movement route H is created within the divided area that connects the planned start point (coordinate) 2s and the planned end point (coordinate) 2e in the
As described above, the means for executing the process for creating a planned zigzag movement route within a divided area (phase 10) functions as a first route creation means for creating a first zigzag route for each divided area that proceeds along the Y axis formed by connecting the intersections on the boundary lines of each divided area with horizontal straight lines.
移動コスト計算処理(phase11)では、コンピュータが、移動コスト計算処理プログラムの手順に従って、phase10で作成された各分割領域内ジグザグ移動予定ルート(各第1のルート)H,H…の移動コストを計算する。つまり、各分割領域内ジグザグ移動予定ルートH,H…毎に、直進距離の合計、旋回角度の合計、旋回回数を考慮して移動コストを計算する。
In the movement cost calculation process (phase 11), the computer calculates the movement cost of each of the planned zigzag movement routes (first routes) H, H... within each divided area created in
コンピュータは、移動コスト計算処理プログラムの手順に従って、図22のフローチャートに示すような、移動コスト計算処理(phase11)を行う。
まず、エリア(分割領域)番号、及び、総コスト配列ファイルの初期化を行う。即ち、エリア番号管理変数aを1に設定するとともに、エリア毎の総コスト配列ファイルの総コスト配列CtHorizontal[amax]を[0,0,0,・・・・]に設定する(ステップS201)。また、ソート後交点座標管理変数iを1に設定する(ステップS202)。
移動コスト計算処理では、コンピュータが、エリア番号管理変数レジスタ、エリア毎のソート後交点座標記録ファイル、エリア毎の総コスト配列ファイルのような記憶手段を使用しながら処理を行う。
尚、総コスト配列ファイルとは、各エリアの走行ルートのコストを記憶しておくファイルのことであり、総コスト配列CtHorizontalとは、エリア毎の第1のルートの総コスト(移動効率評価値)のことである。また、ソート後交点座標管理変数とは、エリアの走行ルートの何番目の曲がり角(交点)かを管理する変数である。
次に、a番目のエリア用のソート後交点座標記録ファイルのi番目の座標からi+1番目の座標間の距離Lを計算する(ステップS203)。
そして、距離Lと直進移動コスト変換定数Ksを積算して直線移動時のコストCsを計算し(ステップS204)、直線移動時のコストCsを総コスト配列CtHorizontal[a]に足し加えた(ステップS205)後、iをi+1に設定し(ステップS206)、a番目のエリア用のソート後交点座標記録ファイルにi番目の座標データがあるか否かを判定する(ステップS207)
ステップS207でYesの場合、総コスト配列CtHorizontal[a]に停止に要するコストCstop(定数)を加える(ステップS208)。つまり、旋回行動に移るには一旦停止する必要がある。停止は、旋回の角度によらず一定であると考えられる。よって、ここで定数コストを加える。具体的な値は移動体1の停止性能(加速性能)に依存する。
次に、a番目のエリア用のソート後座標記録領域のi-1番目の座標からi番目の座標を向くベクトルとi番目の座標からi+1番目の座標を向くベクトルとの成す角θを計算する(ステップS209)。
そして、θと旋回移動コスト変換定数Kcを積算して直線移動時のコストCcを計算して(ステップS210)、直線移動時のコストCcを総コスト配列CtHorizontal[a]に足し加え(ステップS211)、その後、ステップS203に戻る。
ステップS207でNoの場合、aをa+1に設定し(ステップS212)、その後、
aの値がエリア数の上限amaxを超えたか否かを判定する(ステップS213)。
ステップS213でNoの場合、ステップS202に戻り、ステップS213でYesの場合、移動コスト計算処理(phase11)を終了して、別ルート作成処理(phase12~phase16)に移行する。
尚、直進移動コスト変換定数Ks、旋回移動コスト変換定数Kcは、XY座標情報で得られる長さ、角度の単位を無次元量化するための定数である。
また、移動体1の左右のタイヤ間の距離や、かけられる遠心力の上限等により、移動体1の個体差によっても、直進性能、旋回性能が違ってくる。
従って、XY座標情報で得られる単位の違い、移動体1の個体差(性能の違い)等に応じて、直進移動コスト変換定数Ks、旋回移動コスト変換定数Kcを設定することになる。
The computer performs a movement cost calculation process (phase 11) as shown in the flowchart of FIG. 22 in accordance with the procedure of the movement cost calculation process program.
First, the area (division area) number and the total cost array file are initialized. That is, the area number management variable a is set to 1, and the total cost array CtHorizontal[amax] in the total cost array file for each area is set to [0,0,0,...] (step S201). In addition, the post-sort intersection coordinate management variable i is set to 1 (step S202).
In the movement cost calculation process, the computer performs the process while using storage means such as an area number management variable register, a sorted intersection coordinate recording file for each area, and a total cost array file for each area.
The total cost array file is a file that stores the cost of the travel route in each area, and the total cost array CtHorizontal is the total cost (travel efficiency evaluation value) of the first route in each area. Also, the sorted intersection coordinate management variable is a variable that manages the number of the corner (intersection) on the travel route in the area.
Next, the distance L between the i-th coordinate and the (i+1)-th coordinate in the sorted intersection coordinate recording file for the a-th area is calculated (step S203).
Then, the distance L is multiplied by the straight-line movement cost conversion constant Ks to calculate the cost Cs of straight-line movement (step S204), and the cost Cs of straight-line movement is added to the total cost array CtHorizontal[a] (step S205). After that, i is set to i+1 (step S206), and it is determined whether the i-th coordinate data is present in the sorted intersection coordinate recording file for the a-th area (step S207).
If the answer is Yes in step S207, the cost Cstop (constant) required for stopping is added to the total cost array CtHorizontal[a] (step S208). In other words, a temporary stop is required to move on to a turning action. The stopping time is considered to be constant regardless of the turning angle. Therefore, a constant cost is added here. The specific value depends on the stopping performance (acceleration performance) of the moving
Next, an angle θ between a vector extending from the (i-1)th coordinate to the i-th coordinate in the post-sort coordinate recording area for the a-th area and a vector extending from the i-th coordinate to the (i+1)th coordinate is calculated (step S209).
Then, θ and the turning movement cost conversion constant Kc are multiplied to calculate the linear movement cost Cc (step S210), and the linear movement cost Cc is added to the total cost array CtHorizontal[a] (step S211), after which the process returns to step S203.
If the answer is No in step S207, set a to a+1 (step S212), and then
It is determined whether the value of a exceeds the upper limit amax of the number of areas (step S213).
If the answer is No in step S213, the process returns to step S202, and if the answer is Yes in step S213, the movement cost calculation process (phase 11) is terminated and the process proceeds to the alternative route creation process (phases 12 to 16).
The straight movement cost conversion constant Ks and the turning movement cost conversion constant Kc are constants for converting the units of length and angle obtained from the XY coordinate information into dimensionless quantities.
In addition, the straight-line performance and cornering performance vary depending on the individual moving
Therefore, the straight movement cost conversion constant Ks and the turning movement cost conversion constant Kc are set according to the difference in units obtained from the XY coordinate information, the individual differences (differences in performance) of the moving
コンピュータは、別ルート作成処理プログラムの手順に従って、図23のフローチャートに示すような、別ルート作成処理(phase12~phase16)を行う。
最初に、等間隔直線経路作成処理(phase7)の処理で定義されるX軸と平行な直線S,S…をX軸に垂直なもの、即ち、Y軸と平行な直線に置き換えて実行して、これをphase12とする(ステップS230)。
即ち、phase12は、縦直線作成手段によって、移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する処理である。
次に、交点座標抽出処理(phase8)の処理で、直線の移動方向をX軸に垂直にしたうえで実行して、これをphase13とする(ステップS240)とする。
さらに、エリア毎交点座標抽出処理(phase9)をそのまま実行して、これをphase14とする(ステップS250)とする。
即ち、phase13,14は、第2の交点認識手段によって、分割領域境界線と縦直線との交点を認識する処理である。
次に、分割領域内ジグザグ移動予定ルート作成処理(phase10)の処理で条件分岐の処理部分のX軸座標をY軸座標に、Y軸座標をX軸座標に置き換えて実行する。このとき、phase10の場合とは別の記録ファイルに結果を保存する。以上をphase15とする(ステップS260)。
即ち、phase15は、第2のルート作成手段によって、各分割領域境界線上の交点を縦直線で繋いで形成されたX軸に沿って進む分割領域毎のジグザグな第2のルートを作成する処理である。
最後に、移動コスト計算処理(phase11)での総コスト配列CtHorizontalを総コスト配列CtVerticalに置き換えて処理を実行する。このとき、phase11の場合とは別の記録ファイルに結果を保存する。以上をphase16とする(ステップS270)。
即ち、phase16は、第2の移動効率算出手段によって、分割領域毎の第2のルートに沿って移動する場合の移動効率を算出する処理である。
そして、ルート選択処理(phase17)に移行する。
The computer performs the alternative route creation process (
First, the straight lines S, S... parallel to the X-axis defined in the equally spaced straight line path creation process (phase 7) are replaced with straight lines perpendicular to the X-axis, i.e., parallel to the Y-axis, and this is set as phase 12 (step S230).
That is,
Next, in the intersection coordinate extraction process (phase 8), the movement direction of the straight line is set perpendicular to the X-axis, and this is set as phase 13 (step S240).
Furthermore, the intersection coordinate extraction process for each area (phase 9) is executed as is, and this is set as phase 14 (step S250).
That is, phases 13 and 14 are processes in which the second intersection recognition means recognizes the intersections between the divided area boundary lines and the vertical lines.
Next, in the process of creating a zigzag movement route within the divided area (phase 10), the X-axis coordinates of the processing part of the conditional branch are replaced with Y-axis coordinates, and the Y-axis coordinates are replaced with X-axis coordinates. At this time, the results are saved in a recording file different from that of
That is,
Finally, the total cost array CtHorizontal in the movement cost calculation process (phase 11) is replaced with the total cost array CtVertical, and the process is executed. At this time, the result is saved in a record file different from that in
That is,
Then, the process proceeds to route selection processing (phase 17).
ルート選択処理(phase17)では、コンピュータが、ルート選択処理プログラムの手順に従って、同じ分割領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該分割領域内での移動予定ルートとして選択する。 In the route selection process (phase 17), the computer follows the procedures of the route selection process program to compare the travel efficiency when traveling along a first route and a second route within the same divided area, and selects the route with the better travel efficiency from the first route and the second route as the planned travel route within the divided area.
コンピュータは、ルート選択処理プログラムの手順に従って、図24のフローチャートに示すような、ルート選択処理(phase17)を行う。
まず、変数初期化を行う。即ち、エリア番号管理変数aを1に設定する(ステップS281)。
ルート選択処理では、コンピュータが、エリア番号管理変数レジスタ、エリア毎の第1のルートの総コストCtHorizontal[a]を記録するファイル、エリア毎の第2のルートの総コストCtVertical[a]を記録するファイルのような記憶手段を使用しながら処理を行う。
次に、エリアaにおける、水平方向移動時(第1のルート選択時)の総コストCtHorizontal[a]と垂直方向移動時(第2のルート選択時)の総コストCtVertical[a]とを比較する(ステップS282)。
ステップS282において、総コストCtHorizontal[a]の方がコストが低いと判定された場合は、エリア番号aではphase10で作成したエリア用ソート後交点座標記録ファイルをアクティブにする(ステップS283)。つまり、当該エリア(分割領域)aにおいては、第1のルートを当該エリア(分割領域)内aでの移動予定ルートとして選択する。
ステップS282において、総コストCtVertical[a]の方がコストが低い、又は、総コストCtVertical[a]のコストと総コストCtHorizontal[a]のコストとが同値と判定された場合は、エリア番号aではphase15で作成したエリア用ソート後交点座標記録ファイルをアクティブにする(ステップS286)。つまり、当該エリア(分割領域)aにおいては、第2のルートを当該エリア(分割領域)内aでの移動予定ルートとして選択する。
ステップS283の後、又は、ステップS286の後、aをa+1に設定し(ステップS284)、aの値がエリア数の上限amaxを超えたか否かを判定する(ステップS284)。
ステップS284でNoであれば、ステップS282に戻り、ステップS284でYesであれば、ルート選択処理を終了して、分割領域間移動予定ルート作成処理(phase18)に移行する。
The computer performs a route selection process (phase 17) as shown in the flowchart of FIG. 24 in accordance with the procedure of the route selection process program.
First, variables are initialized, that is, the area number management variable a is set to 1 (step S281).
In the route selection process, the computer performs the process using storage means such as an area number management variable register, a file that records the total cost CtHorizontal[a] of the first route for each area, and a file that records the total cost CtVertical[a] of the second route for each area.
Next, the total cost CtHorizontal[a] of horizontal movement (when the first route is selected) in area a is compared with the total cost CtVertical[a] of vertical movement (when the second route is selected) (step S282).
If it is determined in step S282 that the total cost CtHorizontal[a] is lower, the sorted intersection coordinate record file for area number a created in
In step S282, if it is determined that the total cost CtVertical[a] is lower or that the total cost CtVertical[a] and the total cost CtHorizontal[a] are equal, the sorted intersection coordinate record file for area number a created in
After step S283 or step S286, a is set to a+1 (step S284), and it is determined whether or not the value of a has exceeded the upper limit amax of the number of areas (step S284).
If the answer is No in step S284, the process returns to step S282, whereas if the answer is Yes in step S284, the route selection process is terminated and the process proceeds to the process of creating a planned movement route between divided areas (phase 18).
分割領域間移動予定ルート作成処理(phase18)では、コンピュータが、分割領域内ジグザグ移動予定ルート作成処理プログラムの手順に従って、図12に示すように、n番目の分割領域Eからn+1番目の分割領域Eへの移動予定ルートである分割領域間移動予定ルートを生成する。まず、分割領域間直線移動予定ルート作成処理により、前の分割領域(エリア)の移動終了予定地点(座標)2eと後の分割領域(エリア)の移動開始予定地点(座標)2sとを一直線で結ぶ分割領域間直線移動予定ルートIを作成する。
つまり、n番目の分割領域毎のソート後交点座標記録ファイルの最後に記録された交点の座標位置とn+1番目の分割領域毎のソート後交点座標記録ファイルの最初に記録された交点の座標位置とを一直線で結ぶ分割領域間直線移動予定ルートIを作成する。
ただし、移動終了予定地点(座標)2eと移動開始予定地点(座標)2sとを一直線で結んだ場合に、柱Bと接触(衝突)してしまう場合には、任意の経路探索アルゴリズムを応用した分割領域間迂回移動予定ルート作成処理によって、迂回経路を生成する。
In the inter-divided area planned movement route creation process (phase 18), the computer generates an inter-divided area planned movement route, which is a planned movement route from the nth divided area E to the n+1th divided area E, in accordance with the procedures of an intra-divided area zigzag movement planned route creation process program, as shown in Fig. 12. First, by the inter-divided area straight line movement planned route creation process, an inter-divided area straight line movement planned route I is created that connects in a straight line the planned movement end point (coordinate) 2e of the previous divided area (area) and the planned movement start point (coordinate) 2s of the subsequent divided area (area).
In other words, a planned straight-line movement route I between divided areas is created, which connects in a straight line the coordinate position of the intersection recorded at the end of the sorted intersection coordinate recording file for each nth divided area and the coordinate position of the intersection recorded at the beginning of the sorted intersection coordinate recording file for each n+1th divided area.
However, if connecting the planned end point (coordinate) 2e and the planned start point (coordinate) 2s of the movement in a straight line would result in contact (collision) with pillar B, a detour route is generated by a process for creating a detour route between divided areas using an arbitrary route search algorithm.
コンピュータは、分割領域間移動予定ルート作成処理プログラムの手順に従って、図25のフローチャートに示すような分割領域間移動予定ルート作成処理(phase18)を行う。
まず、変数初期化を行う。即ち、エリア番号管理変数aを1に、移動先エリア管理変数iを1に設定する(ステップS161)。
分割領域間移動予定ルート作成処理では、コンピュータが、エリア番号管理変数レジスタ、移動先エリア管理変数レジスタ、エリア毎のソート後交点座標記録ファイル、経路探索コスト計算配列ファイル、エリア毎の経路記録ファイルのような記憶手段を使用しながら処理を行う。
次に、aの値がエリア数の上限を超えているか否かを判定し(ステップS162)、上限を超えていなければ、a番目のエリアは有効なエリアか否かを判定し(ステップS163)、a番目のエリアが有効なエリアであれば、a+i番目のエリアは有効なエリアか否かを判定する(ステップS164)。
ステップS164において、a+i番目のエリアが有効なエリアであると判定された場合、a番目のエリア用のソート後交点座標記録ファイルの最後の座標とa+i番目のエリア用のソート後交点座標記録ファイルの最初の座標を直線で結んだとき、外壁や柱と接触するか否かを判定する(ステップS165)。即ち、番号の小さいエリアの移動終了予定地点eと番号の大きいエリアの移動開始予定地点sとを直線で結んだとき、外壁や柱と接触するか否かを判定する。
ステップS165において、Yesの場合(直線が外壁や柱と接触すると判定された場合)、経路探索アルゴリズム処理に移行する。
経路探索アルゴリズム処理では、まず、a番目のエリア用のソート後交点座標記録ファイルの最後の座標、即ち、a番目の分割領域の移動終了予定地点eとなる交点座標の位置(経路探索アルゴリズムにおけるスタート地点)を現在位置とする(ステップS166)。
次に、経路探索アルゴリズムのコスト計算配列初期化を行う。つまり、コストC1[Xmax][Ymax]←[0,0,0,・・・・]、コストC2[Xmax][Ymax]←[0,0,0,・・・・]を行う(ステップS167)。
まず、現在位置から見て上下左右周囲8方向とスタート地点間の距離を計算する。例えば、コストを求めたい位置の周辺のC1を調べ、最も小さいC1に+1する(ただし、初期化時から変化してないC1は無視する)。計算されたコストはその位置に相当する配列番号のC1に代入する(ステップS168A)。
次に、現在位置から見て上下左右周囲8方向からa+i番目のエリア用のソート後交点座標記録ファイルの最初の交点座標(経路探索アルゴリズムにおけるゴール地点)までの推定距離を計算する。例えば、コストを求めたい位置とゴールとの直線距離を計算し、その計算されたコストはその位置に相当する配列番号のC2に代入する(ステップS168B)。
現在位置から見て上下左右周囲8方向それぞれについて、計算済みフラグを立てる(ステップS169)。
コスト計算済みフラグが立っている座標のうち、外壁や柱がなく、かつ最も総コスト(C1[*][**]+C2[*][**])が低い場所(座標)があるか否かを判定する(ステップS170)。
ステップS170において、該当する座標を発見できなかった場合は、エラーと判定して終了する。
ステップS170において、該当する座標が1箇所だけあった場合、当該座標位置へ移動し、その座標に到達済みフラグを立てる(ステップS171)。
また、ステップS170において、該当する座標が複数あった場合、同値の座標のうち、所定の優先順位で一か所を決めた後、ステップに進む。所定の優先順位は、ゴールまでの推定距離が小さい方>スタートからの距離が大きい方>最も原点座標に近い方とする(ステップS174)。その後、ステップS171に進む。
そして、a+i番目のエリア用のソート後交点座標記録ファイルの最初の座標に到達したか否かを判定する(ステップS172)。
a+i番目のエリア用のソート後交点座標記録ファイルの最初の座標に到達したと判定された場合(ステップS172でYES)、現在位置から見て上下左右周囲8方向のうち、到達済みフラグが立っており、かつ最も高いコストの場所があるか否かを判定する(ステップS173)。即ち、ステップS173においては、スタート地点に戻るような処理を行って、移動軌跡の履歴を探索するものである。
ステップS173において、該当する座標を発見できなかった場合は、エラーと判定して終了する。
ステップS173において、該当する座標が1箇所だけあった場合、最もコストが高い方へ移動する。このとき移動先の座標に経路確定フラグを立てる(ステップS173A)。
そして、a番目のソート後交点座標記録ファイルの最後の座標に到達したか否かを判定する(ステップS174)。
また、ステップS173において、該当する座標が複数あった場合、同値の座標のうち、スタートまでの物理的距離(ユークリッド距離)が最も近い方へ移動し、このとき移動先の座標に経路確定フラグを立てる(ステップS173B)。その後、ステップS174に進む。
ステップS174において、a番目のエリア用のソート後交点座標記録ファイルの最後の座標に到達したと判定された場合(ステップS174でYES)、記録された移動右軌跡を逆転させて、これをa番目のエリア探索後の移動の経路(分割領域間移動予定ルートI)として経路記録ファイルに登録する(ステップS175)。その後、ステップS176に進む。
ステップS165において、Noの場合(直線が外壁や柱と接触しないと判定された場合)は、a番目のエリア用のソート後交点座標記録ファイルの最後の座標からa+i番目のエリア用のソート後交点座標記録ファイルの最初の座標を結ぶ直線をa番目のエリア探索後の移動の経路として経路記録ファイルに登録し(ステップS178)、その後、ステップS176に進んで、aをa+iに、iを1に更新した後、ステップS162に戻る。
ステップS163において、a番目のエリアは有効なエリアではないと判定された場合には、ステップS176に進んで、aをa+iに、iを1に更新し、ステップS162に戻る。
ステップS164において、a+i番目のエリアは有効なエリアではないと判定された場合、iをi+1に設定した(ステップS179)後、a+iの値がエリア数の上限を超えているか否かを判定する(ステップS180)。ステップS180において、a+iの値がエリア数の上限を超えていないと判定された場合は、ステップS164に戻り、ステップS180において、a+iの値がエリア数の上限を超えていると判定された場合は、分割領域間移動予定ルート作成処理(phase11)を終了する。
ステップS162において、aの値がエリア数の上限を超えていると判定された場合には、分割領域間移動予定ルート作成処理(phase11)を終了する。
The computer performs a process (phase 18) of creating a planned route between divided areas as shown in the flowchart of FIG. 25, in accordance with the procedure of the program for creating a planned route between divided areas.
First, variables are initialized: the area number management variable a is set to 1, and the destination area management variable i is set to 1 (step S161).
In the process of creating a planned route for movement between divided areas, the computer performs the process using storage means such as an area number management variable register, a destination area management variable register, a sorted intersection coordinate recording file for each area, a route search cost calculation array file, and a route recording file for each area.
Next, it is determined whether the value of a exceeds the upper limit of the number of areas (step S162), and if the upper limit is not exceeded, it is determined whether the a-th area is a valid area (step S163), and if the a-th area is a valid area, it is determined whether the (a+i)th area is a valid area (step S164).
If it is determined in step S164 that the a+i-th area is a valid area, it is determined whether a straight line connecting the last coordinate in the sorted intersection coordinate recording file for the a-th area and the first coordinate in the sorted intersection coordinate recording file for the a+i-th area will contact an exterior wall or a pillar (step S165). That is, it is determined whether a straight line connecting the planned movement end point e of the smaller numbered area and the planned movement start point s of the larger numbered area will contact an exterior wall or a pillar.
If the answer is Yes in step S165 (if it is determined that the straight line comes into contact with an exterior wall or a pillar), the process proceeds to path search algorithm processing.
In the route search algorithm processing, first, the last coordinate in the sorted intersection coordinate recording file for the a-th area, i.e., the intersection coordinate position which is the planned end point e of movement of the a-th divided area (the starting point in the route search algorithm) is set as the current position (step S166).
Next, the cost calculation arrays of the route search algorithm are initialized, that is, cost C1[Xmax][Ymax]←[0,0,0,...] and cost C2[Xmax][Ymax]←[0,0,0,...] are initialized (step S167).
First, calculate the distance between the starting point and the eight surrounding directions (up, down, left, right, etc.) from the current position. For example, look up C1 around the position for which you want to find the cost, and add +1 to the smallest C1 (however, ignore C1 that has not changed since initialization). The calculated cost is assigned to C1 of the array number corresponding to that position (step S168A).
Next, the estimated distance from the current position to the first intersection coordinate (the goal point in the route search algorithm) in the sorted intersection coordinate record file for the a+ith area is calculated from the eight surrounding directions (up, down, left, right, etc.) For example, the straight-line distance between the position for which the cost is to be calculated and the goal is calculated, and the calculated cost is substituted for C2 of the array number corresponding to that position (step S168B).
A calculation completion flag is set for each of the eight directions surrounding the current position, up, down, left, right, and so on (step S169).
Among the coordinates for which the cost calculation completion flag is set, it is determined whether there is a location (coordinate) that has no exterior walls or pillars and has the lowest total cost (C1[*][**] + C2[*][**]) (step S170).
If no corresponding coordinates are found in step S170, an error is determined and the process ends.
In step S170, if there is only one corresponding coordinate, the process moves to that coordinate position and sets an arrival flag for that coordinate (step S171).
Also, in step S170, if there are multiple corresponding coordinates, one of the coordinates with the same value is selected according to a predetermined priority order, and then the process proceeds to step S174. The predetermined priority order is the one with the shortest estimated distance to the goal > the one with the longest distance from the start > the one closest to the origin coordinates (step S174). Then, the process proceeds to step S171.
Then, it is determined whether or not the first coordinate of the sorted intersection coordinate recording file for the a+ith area has been reached (step S172).
If it is determined that the first coordinate in the sorted intersection coordinate record file for the a+ith area has been reached (YES in step S172), it is determined whether or not there is a location with an reached flag and the highest cost among the eight surrounding directions (up, down, left, right, and so on) from the current position (step S173). That is, in step S173, a process is performed to return to the start point, and the history of the movement trajectory is searched.
If no corresponding coordinates are found in step S173, it is determined that an error has occurred and the process ends.
In step S173, if there is only one corresponding coordinate, the process moves to the coordinate with the highest cost, and a route determination flag is set for the destination coordinate (step S173A).
Then, it is determined whether or not the last coordinate in the a-th sorted intersection coordinate recording file has been reached (step S174).
Also, in step S173, if there are multiple corresponding coordinates, the process moves to the one with the closest physical distance (Euclidean distance) to the start among the coordinates with the same value, and at this time, a route determination flag is set for the destination coordinates (step S173B).Then, the process proceeds to step S174.
In step S174, if it is determined that the last coordinate in the sorted intersection coordinate recording file for the a-th area has been reached (YES in step S174), the recorded right movement trajectory is reversed and this is registered in the route recording file as the route of movement after the a-th area search (planned inter-division movement route I) (step S175).Then, the process proceeds to step S176.
If the answer is No in step S165 (if it is determined that the straight line does not come into contact with an exterior wall or a pillar), a straight line connecting the last coordinate in the sorted intersection coordinate recording file for the a-th area to the first coordinate in the sorted intersection coordinate recording file for the (a+i)th area is registered in the route recording file as the route for movement after searching the a-th area (step S178), and then the process proceeds to step S176, where a is updated to a+i and i to 1, and the process returns to step S162.
If it is determined in step S163 that the a-th area is not a valid area, the process proceeds to step S176, where a is updated to a+i and i to 1, and the process returns to step S162.
If it is determined in step S164 that the a+i-th area is not a valid area, i is set to i+1 (step S179), and then it is determined whether the value of a+i exceeds the upper limit of the number of areas (step S180). If it is determined in step S180 that the value of a+i does not exceed the upper limit of the number of areas, the process returns to step S164, and if it is determined in step S180 that the value of a+i exceeds the upper limit of the number of areas, the process of creating a planned route between divided areas (phase 11) is terminated.
If it is determined in step S162 that the value of a exceeds the upper limit of the number of areas, the process of creating a planned inter-divided area movement route (phase 11) is terminated.
分割領域間移動予定ルート作成処理(phase18)によれば、例えば図12に示すような分割領域間移動予定ルートが作成される。
即ち、例えばa番目の分割領域の終点交点座標とa+i番目の分割領域の開始交点座標とを結び、分割領域aと分割領域a+i間の移動予定ルートIを生成する
図12において、矢印直線23(I)は分割領域2の移動終了予定地点(交点座標)2eと分割領域3の移動開始予定地点(交点座標)3sとを繋ぐ分割領域間移動予定ルート、矢印直線34(I)は分割領域3の移動終了予定地点3eと分割領域4の移動開始予定地点4sとを繋ぐ分割領域間移動予定ルート、矢印直線45(I)は分割領域4の移動終了予定地点4eと分割領域5の移動開始予定地点5sとを繋ぐ分割領域間移動予定ルート、矢印直線56(I)は分割領域5の移動終了予定地点5eと分割領域6の移動開始予定地点6sとを繋ぐ分割領域間移動予定ルートである。
また、矢印直線68(I)は分割領域6の移動終了予定地点6eと分割領域8の移動開始予定地点8sとを繋ぐ分割領域間移動予定ルートであり、矢印直線89(I)は分割領域8の移動終了予定地点8eと分割領域9の移動開始予定地点9sとを繋ぐ分割領域間移動予定ルート、矢印直線911(I)は分割領域9の移動終了予定地点9eと領域11の移動開始予定地点11sとを繋ぐ分割領域間移動予定ルート、柱12を迂回する直線1113(I)は分割領域11の移動終了予定地点11eと分割領域13の移動開始予定地点12sとを繋ぐ分割領域間移動予定ルートであり、経路探索アルゴリズム処理により探索された分割領域間移動予定ルートである。
また、矢印直線1314(I)は分割領域13の移動終了予定地点13eと分割領域14の移動開始予定地点14sとを繋ぐ分割領域間移動予定ルート、矢印直線1415(I)は分割領域14の移動終了予定地点14eと分割領域15の移動開始予定地点15sとを繋ぐ分割領域間移動予定ルート、矢印直線1517(I)は分割領域15の移動終了予定地点15eと分割領域17の移動開始予定地点17sとを繋ぐ分割領域間移動予定ルート、矢印直線1719(I)は分割領域17の移動終了予定地点17eと分割領域19の移動開始予定地点19sとを繋ぐ分割領域間移動予定ルートである。
尚、図12の例では、すべての分割領域間移動予定ルートが、ステップS178により決められた分割領域間直線移動予定ルートIとなり、分割領域間迂回移動予定ルート作成処理により決められた分割領域間迂回移動予定ルートは無いが、ステップS178により決められた分割領域間直線移動予定ルートIが外壁や柱と接触すると判定される例においては、分割領域間直線移動予定ルートIの代わりに、分割領域間迂回移動予定ルート作成処理に基づいて分割領域間迂回移動予定ルートが作成されることになる。例えば、仮に、図12において、柱16がもっと大きな柱である場合には、矢印直線1415(I)が柱16と接触する可能性があり、この場合は、経路探索アルゴリズム処理に基づいて、柱16を迂回する分割領域間迂回移動予定ルートが作成されることになる。
According to the process of creating a planned movement route between divided areas (phase 18), a planned movement route between divided areas as shown in FIG. 12, for example, is created.
That is, for example, the end intersection coordinates of the a-th divided area are connected to the start intersection coordinates of the a+i-th divided area to generate a planned movement route I between divided areas a and a+i. In FIG. 12 , the arrow line 23 (I) is a planned movement route between divided areas connecting the planned movement end point (intersection coordinates) 2e of divided
In addition, the straight arrow line 68 (I) is a planned movement route between divided areas connecting the
In addition, arrow line 1314 (I) is a planned inter-divided area movement route connecting
In the example of Fig. 12, all the planned routes between divided areas are the planned straight-line movement routes I between divided areas determined by step S178, and there is no planned detour movement route between divided areas determined by the process of creating a detour movement route between divided areas. However, in an example in which it is determined that the planned straight-line movement route I between divided areas determined by step S178 comes into contact with an exterior wall or a pillar, a planned detour movement route between divided areas is created based on the process of creating a detour movement route between divided areas instead of the planned straight-line movement route I between divided areas. For example, if the
従って、移動体1は、予め作成された最適な分割領域間移動予定ルートを辿って分割領域間を移動できるようになり、移動体に、分割領域間の移動を効率的に行わせることができるようになる。
As a result, the
実施形態に係る移動体の移動予定ルート作成装置、及び、移動予定ルート作成処理プログラムによれば、第1のルート及び第2のルートのうち移動効率の良いルートを選択するようにしたので、各分割領域の形状に応じて、移動対象領域内の障害物を避けて移動体を移動させるための効率的な移動予定ルートを的確に作成できるようになる。 The planned movement route creation device for a moving body and the planned movement route creation processing program according to the embodiment select the route with the best movement efficiency from the first route and the second route, so that it becomes possible to accurately create an efficient planned movement route for moving the moving body while avoiding obstacles in the target movement area according to the shape of each divided area.
そして、上述した移動体の移動予定ルート作成装置により作成された移動予定ルート(移動予定情報)に基づいて移動体1が移動対象領域A内の柱(障害物)Bを避けて移動対象領域A内を効率的に自走できるようになる。
Then, based on the planned movement route (planned movement information) created by the above-mentioned planned movement route creation device for the moving body, the moving
即ち、図31に示すように、移動体1の制御手段50が、移動予定ルート(移動予定情報)に基づいて移動体1の移動を制御するとともに、移動情報取得手段としての例えば自動追尾型のトータルステーション(以下、TSと言う)等により取得される移動体1の実際の移動情報(移動体の逐次位置情報)と移動予定ルート(移動予定情報)とを用いて移動体1の移動を制御する移動体1の移動制御システムを構築できるようになる。
尚、当該移動体1の移動制御方法としては、例えば、本出願人による発明である特許文献1(特開2020-154400号公報)に開示された移動制御方法を採用すればよい。
That is, as shown in FIG. 31, a control means 50 of the moving
In addition, as a method for controlling the movement of the moving
移動体1の一例について説明する。尚、以下の説明においては、前、後、上、下、左、右は、図31に示した方向と定義して説明する。
図31に示すように、移動体1は、基体10と、基体10の下側に設けられた移動手段20と、基体10の表面側に設けられたTSの視準となるプリズム等のターゲットT2と、基体10に設けられて移動体1の前側を昇降させる昇降装置40と、制御手段50と、床面Fを撮影するための図外の撮像手段(カメラ)とを備えている。
尚、撮像手段は、例えば、基体10の下面(床面Fと対向する下面)側において、移動体1の左右幅間に亘って延長するように設けられており、移動体1が床面F上を移動した場合に、移動体1の下面の左右幅間に対向する床面Fを撮影できるように構成されている。
An example of the moving
As shown in Figure 31, the
Furthermore, the imaging means is provided, for example, on the underside of the base 10 (the underside opposite the floor surface F) so as to extend across the left and right width of the moving
移動手段20は、例えば、基体10の前側下部に設けられた左右の前側車輪21L,21Rと、基体10の後側下部に設けられた左右の後側車輪22L,22Rと、後側車輪22L,22Rの駆動源としてのモータ23L,23Rと、図外の駆動制御回路とを備える。
尚、モータ23L,23Rの各モータ軸には、それぞれ、後側車輪22L,22Rの回転量に基づいて移動体1の移動距離(移動量)を検出するための移動量検出手段としてのエンコーダ25L,25Rが取付けられている。
The moving means 20 includes, for example, left and right
ターゲットT2は、TSから発射される光を反射させる反射プリズム等で構成される。当該ターゲットT2は、例えば、基体10の上面の前側における左右間の中央位置に設置される。
Target T2 is composed of a reflecting prism or the like that reflects the light emitted from TS. Target T2 is installed, for example, at a central position between the left and right sides on the front side of the upper surface of
制御手段50は、移動体1の移動方向(進行方向)を変更する際、昇降装置40の図外のリニアアクチュエータのロッドを縮退状態から伸長させて転動体45を床面Fに押し付けることにより基体10の前側を上方に移動させて移動体1の前側車輪21L,21Rを床面Fから浮かせた状態で、左右の後側車輪22L,22Rのモータ23L,23Rを制御して床面Fに接触している左右の後側車輪22L,22Rを互いに反対方向に回転させる。
この場合、移動体1を前進させる回転方向に一方の後側車輪を回転させるとともに、移動体1を後進させる回転方向に他方の後側車輪を回転させることによって、移動体1の回転中心線を回転中心として、左右の後側車輪22L,22Rと転動体45とが床面F上を転動するので、床面F上において、移動体1が回転中心線を回転中心として左方向又は右方向にスムーズに回転する。よって、移動体1の水平方向の向きがスムーズに変更されるようになる。
When changing the movement direction (travel direction) of the
In this case, by rotating one rear wheel in a direction that moves the moving
尚、移動体1として、撮像手段(カメラ)を搭載して床面を撮影する撮像手段搭載移動体を例示したが、移動体は、例えば掃除機を搭載して床面を掃除する掃除機搭載移動体等の特定処理機能搭載移動体、又は、特定処理機能を搭載しない移動体であってもよい。
Note that, as the
また、実施形態では、移動対象領域Aの外側のエリア、即ち、壁外領域をエリア1に設定したために、図20のエリア毎交点座標抽出処理(phase9)のステップS131の変数初期化、図21の分割領域内ジグザグ移動予定ルート作成処理(phase10)のステップS141の変数初期化、図22の移動コスト処理(phase11)のステップS201の変数初期化、図24のルート選択処理(phase17)のステップS281の変数初期化、図25の分割領域間移動予定ルート作成処理(phase18)のステップS161の変数初期化において、エリア番号管理変数aを1に設定して処理を開始する例を示したが、エリア1は分割された領域ではないので、これら各処理の変数初期化において、エリア番号管理変数aを2に設定して、エリア2から処理を開始するようにしてもよい。
In the embodiment, the area outside the movement target area A, i.e., the outside wall area, is set to
また、実施形態では、分割領域間移動予定ルート作成手段を備えた装置を例示したが、分割領域間移動予定ルート作成手段を備えない装置であってもよい。即ち、分割領域間の移動ルートは特に定めないようにしてもよい。 In the embodiment, a device equipped with a means for creating a planned movement route between divided areas is exemplified, but the device may not be equipped with a means for creating a planned movement route between divided areas. In other words, a movement route between divided areas may not be specifically determined.
また、実施形態では、移動対象領域内を分割した例を示したが、本発明においては、移動対象領域内を分割しない装置としてもよい。
つまり、障害物を避けた移動可能領域内を、Y軸に沿って進むジグザグな第1のルートと、X軸に沿って進むジグザグな第2のルートとを作成して、第1のルートに沿って移動する場合の移動効率と、第2のルートに沿って移動する場合の移動効率とを算出して、第1のルート及び第2のルートのうち移動効率の良いルートを当該移動可能領域内での移動予定ルートとして選択する装置としてもよい。
即ち、本発明に係る移動体の移動予定ルート作成装置は、移動対象領域の位置を示す移動対象領域のXY座標情報に基づいて移動対象領域を区画する移動対象領域境界線で囲まれた移動対象領域を作成する移動対象領域作成手段と、移動対象領域内の障害物の位置を示すXY座標情報に基づいて移動対象領域内に存在する障害物を区画する障害物領域境界線で囲まれた障害物領域を作成する障害物領域作成手段と、移動対象領域の位置を示すXY座標情報及び移動対象領域内の障害物の位置を示すXY座標情報を利用して障害物を避けた移動可能領域を認識する移動可能領域認識手段と、移動可能領域内において移動体の移動予定ルートを作成する移動予定ルート作成手段と、を備え、移動予定ルート作成手段は、移動対象領域をY軸に沿って等間隔に区切るX軸と平行な複数の横直線を作成する横直線作成手段と、移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する縦直線作成手段と、所定領域境界線及び障害物領域境界線と横直線との交点を認識する第1の交点認識手段と、所定領域境界線及び障害物領域境界線と縦直線との交点を認識する第2の交点認識手段と、第1の交点認識手段で認識された複数の交点を移動可能領域内の横直線で繋いで形成されたY軸に沿って進むジグザグな第1のルートを作成する第1のルート作成手段と、第2の交点認識手段で認識された複数の交点を移動可能領域内の縦直線で繋いで形成されたX軸に沿って進むジグザグな第2のルートを作成する第2のルート作成手段と、第1のルートに沿って移動する場合の移動効率を算出する第1の移動効率算出手段と、第2のルートに沿って移動する場合の移動効率を算出する第2の移動効率算出手段と、移動可能領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該移動可能領域内での移動予定ルートとして選択するルート選択手段と、を備えた構成の移動体の移動予定ルート作成装置であってもよい。
また、この場合、本発明における移動予定ルート作成処理プログラムは、コンピュータを、上述した移動対象領域作成手段、障害物領域作成手段、移動可能領域認識手段、横直線作成手段、縦直線作成手段、第1の交点認識手段、第2の交点認識手段、第1のルート作成手段、第2のルート作成手段、第1の移動効率算出手段、第2の移動効率算出手段、ルート選択手段として機能させるプログラムであればよい。
以上のような移動予定ルート作成装置、及び、移動予定ルート作成処理プログラムであっても、移動対象領域の形状に応じて、移動対象領域内の障害物を避けて移動体を移動させるための効率的な移動予定ルートを的確に作成できるようになる。
Furthermore, in the embodiment, an example in which the movement target area is divided has been shown, but in the present invention, the device may be one in which the movement target area is not divided.
In other words, the device may create a first zigzag route that moves along the Y axis and a second zigzag route that moves along the X axis within a movable area that avoids obstacles, calculate the movement efficiency when moving along the first route and the movement efficiency when moving along the second route, and select the route with the better movement efficiency from the first route and the second route as the planned movement route within the movable area.
That is, the planned movement route creation device for a moving body according to the present invention comprises: a movement target area creation means for creating a movement target area surrounded by a movement target area boundary line that divides the movement target area based on XY coordinate information of the movement target area indicating the position of the movement target area; an obstacle area creation means for creating an obstacle area surrounded by an obstacle area boundary line that divides an obstacle present in the movement target area based on XY coordinate information indicating the position of an obstacle in the movement target area; a movable area recognition means for recognizing a movable area that avoids obstacles by using the XY coordinate information indicating the position of the movement target area and the XY coordinate information indicating the position of an obstacle in the movement target area; and a planned movement route creation means for creating a planned movement route for the moving body within the movable area, wherein the planned movement route creation means comprises a horizontal line creation means for creating a plurality of horizontal lines parallel to the X-axis that divide the movement target area at equal intervals along the Y-axis; a vertical line creation means for creating a plurality of vertical lines parallel to the Y-axis that divide the movement target area at equal intervals along the X-axis; and a predetermined area boundary line and an obstacle area boundary line and an intersection point between the horizontal line and the obstacle area boundary line. a first route creation means for creating a zigzag first route proceeding along a Y-axis formed by connecting the plurality of intersections recognized by the first intersection recognition means with horizontal straight lines within the movable area; a second route creation means for creating a zigzag second route proceeding along an X-axis formed by connecting the plurality of intersections recognized by the second intersection recognition means with vertical straight lines within the movable area; a first movement efficiency calculation means for calculating movement efficiency when moving along the first route; a second movement efficiency calculation means for calculating movement efficiency when moving along the second route; and a route selection means for comparing the movement efficiency when moving along the first route within the movable area with the movement efficiency when moving along the second route, and selecting the route having the better movement efficiency from the first route and the second route as the planned movement route within the movable area.
In this case, the planned movement route creation processing program in the present invention may be a program that causes a computer to function as the above-mentioned movement target area creation means, obstacle area creation means, movable area recognition means, horizontal line creation means, vertical line creation means, first intersection recognition means, second intersection recognition means, first route creation means, second route creation means, first movement efficiency calculation means, second movement efficiency calculation means, and route selection means.
With the above-described planned movement route creation device and planned movement route creation processing program, it becomes possible to accurately create an efficient planned movement route for moving a moving body while avoiding obstacles within a target movement area, in accordance with the shape of the target movement area.
また、上記では、移動対象領域内の障害物を避けて移動体を移動させるための効率的な移動予定ルートを作成する装置を示したが、本発明においては、障害物がない移動対象領域内においても、移動対象領域の形状に応じて、効率的な移動予定ルートを的確に作成できるようにした装置としてもよい。
即ち、本発明に係る移動体の移動予定ルート作成装置は、移動体を移動対象領域内で移動させるための移動予定ルートを作成する移動体の移動予定ルート作成装置であって、移動対象領域の位置を示す移動対象領域のXY座標情報に基づいて移動対象領域を区画する移動対象領域境界線で囲まれた移動対象領域を作成する移動対象領域作成手段と、移動対象領域内において移動体の移動予定ルートを作成する移動予定ルート作成手段と、を備え、移動予定ルート作成手段は、移動対象領域をY軸に沿って等間隔に区切るX軸と平行な複数の横直線を作成する横直線作成手段と、移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する縦直線作成手段と、移動対象領域境界線と横直線との交点を認識する第1の交点認識手段と、移動対象領域境界線と縦直線との交点を認識する第2の交点認識手段と、第1の交点認識手段で認識された複数の交点を移動対象領域内の横直線で繋いで形成されたY軸に沿って進むジグザグな第1のルートを作成する第1のルート作成手段と、第2の交点認識手段で認識された複数の交点を移動対象領域内の縦直線で繋いで形成されたX軸に沿って進むジグザグな第2のルートを作成する第2のルート作成手段と、第1のルートに沿って移動する場合の移動効率を算出する第1の移動効率算出手段と、第2のルートに沿って移動する場合の移動効率を算出する第2の移動効率算出手段と、移動対象領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該移動対象領域内での移動予定ルートとして選択するルート選択手段と、を備えた移動体の移動予定ルート作成装置であってもよい。
また、この場合、本発明における移動予定ルート作成処理プログラムは、コンピュータを、上述した移動対象領域作成手段、横直線作成手段、縦直線作成手段、第1の交点認識手段、第2の交点認識手段、第1のルート作成手段、第2のルート作成手段、第1の移動効率算出手段、第2の移動効率算出手段、ルート選択手段として機能させるプログラムであればよい。
以上のような移動予定ルート作成装置、及び、移動予定ルート作成処理プログラムであっても、所期の目的である、移動対象領域の形状に応じて、効率的な移動予定ルートを的確に作成できるようになる。
In addition, the above describes an apparatus that creates an efficient planned movement route for moving a moving body while avoiding obstacles within a target area for movement, but in the present invention, the apparatus may be capable of accurately creating an efficient planned movement route according to the shape of a target area for movement, even within a target area for movement that does not contain obstacles.
That is, the planned movement route creation device for a moving body according to the present invention is a planned movement route creation device for a moving body that creates a planned movement route for moving a moving body within a movement target area, and includes a movement target area creation means for creating a movement target area surrounded by movement target area boundary lines that partition the movement target area based on XY coordinate information of the movement target area that indicates the position of the movement target area, and a planned movement route creation means for creating a planned movement route for the moving body within the movement target area, and the planned movement route creation means includes a horizontal line creation means for creating a plurality of horizontal lines parallel to the X axis that divide the movement target area at equal intervals along the Y axis, a vertical line creation means for creating a plurality of vertical lines parallel to the Y axis that divide the movement target area at equal intervals along the X axis, a first intersection recognition means for recognizing an intersection between the movement target area boundary line and the horizontal line, a second intersection recognition means for recognizing an intersection between the movement target area boundary line and the vertical line, and a first intersection recognition means for recognizing an intersection between the movement target area boundary line and the vertical line. The device may be a planned movement route creation device for a moving object, comprising: a first route creation means for creating a zigzag first route proceeding along a Y axis formed by connecting a plurality of intersections recognized by the point recognition means with horizontal straight lines within a movement target area; a second route creation means for creating a zigzag second route proceeding along an X axis formed by connecting a plurality of intersections recognized by the second intersection recognition means with vertical straight lines within the movement target area; a first movement efficiency calculation means for calculating movement efficiency when moving along the first route; a second movement efficiency calculation means for calculating movement efficiency when moving along the second route; and a route selection means for comparing the movement efficiency when moving along the first route within the movement target area with the movement efficiency when moving along the second route, and selecting the route having the better movement efficiency from the first route and the second route as the planned movement route within the movement target area.
In this case, the planned movement route creation processing program in the present invention may be a program that causes a computer to function as the above-mentioned movement target area creation means, horizontal line creation means, vertical line creation means, first intersection recognition means, second intersection recognition means, first route creation means, second route creation means, first movement efficiency calculation means, second movement efficiency calculation means, and route selection means.
The above-described planned travel route planning device and planned travel route planning processing program also enable accurate creation of an efficient planned travel route in accordance with the shape of a target travel area, which is the desired purpose.
また、各実施形態では、移動対象領域として、建物内の床面を移動させる例を示したが、移動対象領域は、建物外の道路や空き地等の面であってもよい。
また、障害物Bは、柱以外の障害物、例えば間仕切り壁、固定設備、重量物等であってもかまわない。
また、移動対象領域の位置を示す移動対象領域のXY座標情報や障害物の位置を示すXY座標情報は、角のXY座標情報でなく、移動対象領域の位置や障害物の位置を確認できるXY座標情報であればよい。
Furthermore, in each embodiment, an example has been shown in which the floor surface inside a building is moved as the target area of movement, but the target area of movement may be the surface of a road, an open space, or the like outside the building.
Furthermore, obstacle B may be an obstacle other than a pillar, such as a partition wall, fixed equipment, heavy objects, etc.
Furthermore, the XY coordinate information of the target area to be moved, which indicates the position of the target area to be moved, and the XY coordinate information of the obstacle to be moved do not have to be XY coordinate information of corners, but may be any XY coordinate information that can confirm the position of the target area to be moved or the position of the obstacle.
また、上記では、移動体の移動制御システムにおいて、移動体の実際の移動情報を取得して移動体に送信する移動情報取得手段として、自動追尾機能を備えたTS(トータルステーション)を用いた例を示したが、移動情報取得手段としては、TS以外の手段、例えば、GPS、レーザ測位システム等の移動体自己位置認識システムを用いてもよい。 In the above, an example was given in which a TS (total station) with an automatic tracking function was used as a means for acquiring actual movement information of a moving body in a moving body movement control system and transmitting it to the moving body, but the movement information acquisition means may be means other than a TS, for example, a moving body self-position recognition system such as a GPS or a laser positioning system.
1 移動体、A 移動対象領域、B 柱(障害物)、
C,M,N,Q 境界線(第1,第2,第3の境界線)、E 分割領域、
H 分割領域内ジグザグ移動予定ルート(第1のルート、第2のルート)、
I 分割領域間移動予定ルート。
1 Moving object, A Moving target area, B Pillar (obstacle),
C, M, N, Q: boundary lines (first, second, third boundary lines), E: divided area,
H: Zigzag movement planned route within the divided area (first route, second route),
I Planned route for travel between divided areas.
Claims (5)
移動対象領域の位置を示す移動対象領域のXY座標情報に基づいて移動対象領域を区画する移動対象領域境界線で囲まれた移動対象領域を作成する移動対象領域作成手段と、
移動対象領域内の柱の角の位置を示すXY座標情報に基づいて移動対象領域内に存在する柱を区画する柱領域境界線で囲まれた柱領域を作成する柱領域作成手段と、
移動対象領域の位置を示すXY座標情報及び移動対象領域内の柱の角の位置を示すXY座標情報を利用して柱を避けた移動可能領域内を複数の分割領域に分割する移動可能領域分割手段と、
複数の各分割領域内での移動体の移動予定ルートを作成する分割領域内移動予定ルート作成手段と、
を備え、
移動可能領域分割手段は、
柱同士を繋ぐ第1の境界線、柱と移動対象領域境界線とを繋ぐ第2の境界線、柱と第1の境界線又は第2の境界線とを繋ぐ第3の境界線を作成して、移動対象領域内をこれら境界線で区画することにより、これら境界線、柱領域境界線、移動対象領域境界線で形成された分割領域境界線で囲まれた分割領域を作成する分割領域作成手段と、
複数の各分割領域及び各柱領域にそれぞれ識別情報を付与して複数の各分割領域を認識する分割領域認識手段と、
を備え、
分割領域内移動予定ルート作成手段は、
移動対象領域をY軸に沿って等間隔に区切るX軸と平行な複数の横直線を作成する横直線作成手段と、
移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する縦直線作成手段と、
分割領域境界線と横直線との交点を認識する第1の交点認識手段と、
分割領域境界線と縦直線との交点を認識する第2の交点認識手段と、
各分割領域境界線上の交点を横直線で繋いで形成されたY軸に沿って進む分割領域毎のジグザグな第1のルートを作成する第1のルート作成手段と、
各分割領域境界線上の交点を縦直線で繋いで形成されたX軸に沿って進む分割領域毎のジグザグな第2のルートを作成する第2のルート作成手段と、
分割領域毎の第1のルートに沿って移動する場合の移動効率を算出する第1の移動効率算出手段と、
分割領域毎の第2のルートに沿って移動する場合の移動効率を算出する第2の移動効率算出手段と、
同じ分割領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該分割領域内での移動予定ルートとして選択するルート選択手段と、
を備えたことを特徴とする移動体の移動予定ルート作成装置。 A planned movement route creation device for a moving object that creates a planned movement route for moving the moving object while avoiding pillars in a movement target area,
a movement target area creating means for creating a movement target area surrounded by a movement target area boundary line that divides the movement target area based on XY coordinate information of the movement target area indicating the position of the movement target area;
a pillar region creating means for creating a pillar region surrounded by a pillar region boundary line that divides the pillars existing within the movement target region based on XY coordinate information indicating the positions of the corners of the pillars within the movement target region;
a movable area dividing means for dividing a movable area avoiding the pillars into a plurality of divided areas using XY coordinate information indicating the position of the movement target area and XY coordinate information indicating the positions of the corners of the pillars within the movement target area;
a division area planned movement route creation means for creating a planned movement route of a moving object within each of the plurality of division areas;
Equipped with
The movable area dividing means
a divided area creating means for creating a first boundary line connecting pillars to each other, a second boundary line connecting the pillars to the movement target area boundary line, and a third boundary line connecting the pillars to the first boundary line or the second boundary line, and dividing the movement target area with these boundaries to create a divided area surrounded by divided area boundary lines formed by these boundaries, the pillar area boundary line, and the movement target area boundary line;
a divided area recognition means for recognizing each of the plurality of divided areas by assigning identification information to each of the plurality of divided areas and each of the pillar areas;
Equipped with
The division area movement planned route creation means includes:
a horizontal line creating means for creating a plurality of horizontal lines parallel to an X axis that divides the movement target area at equal intervals along a Y axis;
a vertical line creating means for creating a plurality of vertical lines parallel to a Y axis that divides the movement target area at equal intervals along an X axis;
a first intersection recognition means for recognizing an intersection between a divided area boundary line and a horizontal line;
a second intersection recognition means for recognizing an intersection between a divided area boundary line and a vertical line;
a first route creation means for creating a zigzag first route for each divided area proceeding along a Y axis formed by connecting intersections on the boundaries of each divided area with horizontal straight lines;
a second route creation means for creating a zigzag second route for each divided area that proceeds along an X-axis formed by connecting intersections on the boundaries of each divided area with vertical straight lines;
a first movement efficiency calculation means for calculating a movement efficiency when moving along a first route for each divided area;
a second movement efficiency calculation means for calculating a movement efficiency when moving along a second route for each divided area;
a route selection means for comparing a travel efficiency when moving along a first route and a travel efficiency when moving along a second route within the same divided area, and selecting the route having better travel efficiency from the first route and the second route as a planned travel route within the divided area;
A planned movement route creation device for a moving object, comprising:
移動対象領域内に存在する複数の柱を、柱の重心のX座標情報の近いもの同士、柱の重心のY座標情報の近いもの同士に、グループ分けする柱グループ分け手段と、
各柱の複数の角にそれぞれ識別情報を付与して柱の角を認識する柱角認識手段と、
柱の重心のX座標情報の近いもの同士としてグループ分けされた一方の柱の角と他方の柱の角とを接続する第1の境界線としての第1の接続線、及び、柱の重心のY座標情報の近いもの同士としてグループ分けされた一方の柱の角と他方の柱の角とを接続する第1の境界線としての第1の接続線を作成する第1の接続線作成手段と、
柱のうち第1の接続線が接続されていない角と移動対象領域境界線とを接続する第2の境界線としての第2の接続線を作成する第2の接続線作成手段と、
柱のうち第1の接続線及び第2の接続線が接続されていない角と既に作成した第1の接続線又は第2の接続線とを接続する第3の境界線としての第3の接続線を作成する第3の接続線作成手段と、
を備えたことを特徴とする請求項1に記載の移動体の移動予定ルート作成装置。 The division area creation means includes:
a pillar grouping means for grouping a plurality of pillars existing within a movement target area into groups of pillars having similar X-coordinate information of their centers of gravity and pillars having similar Y-coordinate information of their centers of gravity ;
a column corner recognition means for recognizing the column corners by providing identification information to each of a plurality of corners of each column ;
a first connection line creating means for creating a first connection line as a first boundary line connecting a corner of one column and a corner of another column grouped together based on the X-coordinate information of the center of gravity of the columns being similar, and a first connection line as a first boundary line connecting a corner of one column and a corner of another column grouped together based on the Y-coordinate information of the center of gravity of the columns being similar;
a second connection line creating means for creating a second connection line as a second boundary line connecting a corner of the pillar to which the first connection line is not connected and the movement target area boundary line;
a third connection line creating means for creating a third connection line as a third boundary line connecting a corner of the column to which the first connection line and the second connection line are not connected and the already created first connection line or second connection line;
2. The device for generating a planned movement route for a moving body according to claim 1, further comprising:
一方の分割領域の分割領域内移動予定ルートの終点と他方の分割領域の分割領域内移動予定ルートの始点とを直線で繋いだ分割領域間移動予定ルートを作成する分割領域間直線移動予定ルート作成手段と、
分割領域間直線移動予定ルート作成手段で作成した分割領域間直線移動予定ルートと移動対象領域境界線又は柱領域境界線とが接触した場合に、移動対象領域境界線又は柱領域境界線と接触しない分割領域間移動予定ルートである分割領域間迂回移動予定ルートを作成する分割領域間迂回移動予定ルート作成手段と、
を備えたことを特徴とする請求項3に記載の移動体の移動予定ルート作成装置。 The inter-division area movement planned route creation means includes:
an inter-divided area straight line planned movement route creation means for creating an inter-divided area planned movement route by connecting an end point of an intra-divided area planned movement route of one divided area with a straight line to a start point of an intra-divided area planned movement route of the other divided area;
an inter-divided area detour planned movement route creation means for creating an inter-divided area detour planned movement route which is an inter-divided area planned movement route that does not come into contact with the movement target area boundary line or the pillar area boundary line when the inter-divided area straight line planned movement route created by the inter-divided area straight line planned movement route creation means comes into contact with the movement target area boundary line or the pillar area boundary line;
4. The device for creating a planned movement route for a moving body according to claim 3, further comprising:
コンピュータを、
移動対象領域の位置を示す移動対象領域のXY座標情報に基づいて移動対象領域を区画する移動対象領域境界線で囲まれた移動対象領域を作成する移動対象領域作成手段、
移動対象領域内の柱の位置を示すXY座標情報に基づいて移動対象領域内に存在する柱を区画する柱領域境界線で囲まれた柱領域を作成する柱領域作成手段、
柱同士を繋ぐ第1の境界線、柱と移動対象領域境界線とを繋ぐ第2の境界線、柱と第1の境界線又は第2の境界線とを繋ぐ第3の境界線を作成して、移動対象領域内をこれら境界線で区画することにより、これら境界線、柱領域境界線、移動対象領域境界線で形成された分割領域境界線で囲まれた分割領域を作成する分割領域作成手段、
複数の各分割領域及び各柱領域にそれぞれ識別情報を付与して複数の各分割領域を認識する分割領域認識手段、
移動対象領域をY軸に沿って等間隔に区切るX軸と平行な複数の横直線を作成する横直線作成手段、
移動対象領域をX軸に沿って等間隔に区切るY軸と平行な複数の縦直線を作成する縦直線作成手段、
分割領域境界線と横直線との交点を認識する第1の交点認識手段、
分割領域境界線と縦直線との交点を認識する第2の交点認識手段、
各分割領域境界線上の交点を横直線で繋いで形成されたY軸に沿って進む分割領域毎のジグザグな第1のルートを作成する第1のルート作成手段、
各分割領域境界線上の交点を縦直線で繋いで形成されたX軸に沿って進む分割領域毎のジグザグな第2のルートを作成する第2のルート作成手段、
同じ分割領域内を第1のルートに沿って移動する場合の移動効率と第2のルートに沿って移動する場合の移動効率とを比較して、第1のルート及び第2のルートのうち移動効率の良いルートを当該分割領域内での移動予定ルートとして選択するルート選択手段、
として機能させるための移動体の移動予定ルート作成処理プログラム。 A program for creating a planned movement route for a moving object, the program creating a planned movement route for moving the moving object while avoiding pillars in a target movement area,
Computer,
a movement target area creating means for creating a movement target area surrounded by a movement target area boundary line that divides the movement target area based on XY coordinate information of the movement target area indicating the position of the movement target area;
a pillar region creating means for creating a pillar region surrounded by a pillar region boundary line that divides pillars existing within the movement target region based on XY coordinate information indicating the position of the pillar within the movement target region;
a divided area creating means for creating a first boundary line connecting pillars to each other, a second boundary line connecting the pillars to the movement target area boundary line, and a third boundary line connecting the pillars to the first boundary line or the second boundary line, and dividing the movement target area with these boundaries to create a divided area surrounded by divided area boundary lines formed by these boundaries, the pillar area boundary line, and the movement target area boundary line;
a divided area recognition means for recognizing each of the plurality of divided areas by assigning identification information to each of the plurality of divided areas and each of the pillar areas;
a horizontal line creating means for creating a plurality of horizontal lines parallel to the X-axis which divide the movement target area at equal intervals along the Y-axis;
a vertical line creating means for creating a plurality of vertical lines parallel to a Y axis which divide the movement target area at equal intervals along an X axis;
a first intersection recognition means for recognizing an intersection between a divided area boundary line and a horizontal straight line;
a second intersection recognition means for recognizing an intersection between a divided area boundary line and a vertical line;
a first route creation means for creating a zigzag first route for each divided area proceeding along a Y axis formed by connecting intersections on the boundaries of each divided area with horizontal straight lines;
a second route creation means for creating a zigzag second route for each divided area proceeding along an X-axis formed by connecting intersections on the boundaries of each divided area with vertical straight lines;
a route selection means for comparing a travel efficiency when moving along a first route and a travel efficiency when moving along a second route within the same divided area, and selecting the route having better travel efficiency from the first route and the second route as a planned travel route within the divided area;
A program for creating a planned movement route for a moving object to function as the above.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021053455A JP7577010B2 (en) | 2021-03-26 | 2021-03-26 | Planned travel route creation device for a mobile object, and planned travel route creation program for a mobile object |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2021053455A JP7577010B2 (en) | 2021-03-26 | 2021-03-26 | Planned travel route creation device for a mobile object, and planned travel route creation program for a mobile object |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022150727A JP2022150727A (en) | 2022-10-07 |
| JP7577010B2 true JP7577010B2 (en) | 2024-11-01 |
Family
ID=83464484
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021053455A Active JP7577010B2 (en) | 2021-03-26 | 2021-03-26 | Planned travel route creation device for a mobile object, and planned travel route creation program for a mobile object |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7577010B2 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120221237A1 (en) | 2011-02-25 | 2012-08-30 | Dongguk University Industry-Academic Cooperation Foundation | Apparatus and method of cell-based path planning for mobile body |
-
2021
- 2021-03-26 JP JP2021053455A patent/JP7577010B2/en active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20120221237A1 (en) | 2011-02-25 | 2012-08-30 | Dongguk University Industry-Academic Cooperation Foundation | Apparatus and method of cell-based path planning for mobile body |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2022150727A (en) | 2022-10-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN113467456B (en) | A path planning method for specific target search in unknown environment | |
| CN113050632B (en) | Map exploration method and chip for robot to explore unknown area and robot | |
| JP7085296B2 (en) | Robot repositioning method | |
| US11430341B2 (en) | System and method for optimizing unmanned aerial vehicle based warehouse management | |
| CN109189074B (en) | Indoor autonomous mapping method for storage environment | |
| KR101242252B1 (en) | Method for building simantic grid map and method for exploring an environment using simantic grid map | |
| US11288526B2 (en) | Method of collecting road sign information using mobile mapping system | |
| CN114740898B (en) | Three-dimensional track planning method based on free space and A-algorithm | |
| CN108363065A (en) | Object detecting system | |
| JP2020532786A (en) | Path planning method for autonomous mobile robots, autonomous mobile robots and storage media | |
| CN104142971A (en) | Method and apparatus for constructing map for mobile robot | |
| CN101480795A (en) | Method and apparatus for planning path of mobile robot | |
| JP7722947B2 (en) | Tour route creation device | |
| CN110705385B (en) | Method, device, equipment and medium for detecting angle of obstacle | |
| CN114897215B (en) | Optimizing multi-UAV reconnaissance mission allocation method based on unsupervised learning discrete pigeon flock | |
| CN111966097A (en) | Map building method, system and terminal based on grid map regionalization exploration | |
| CN115830230B (en) | Multi-view geometric structure three-dimensional modeling system and method | |
| KR20210004763A (en) | Cleaning Robot Apparatus Using Rectangular Map Decomposition and Method for Planning Coverage Path Using the Same | |
| CN118192588A (en) | Autonomous exploration method and system based on hybrid frontier sampling and hierarchical planning | |
| WO2019026074A1 (en) | Path planning within a traversed area | |
| JP7577010B2 (en) | Planned travel route creation device for a mobile object, and planned travel route creation program for a mobile object | |
| EP4293458B1 (en) | Method and device for pool cleaning | |
| JP7598788B2 (en) | Planned travel route creation device for a mobile object, and planned travel route creation program for a mobile object | |
| JP7722948B2 (en) | Tour route creation device | |
| CN117631697A (en) | Map construction method, device, equipment and storage medium based on air-ground cooperation |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231204 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20240628 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240723 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240822 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20241015 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20241022 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7577010 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |