# US 12,001,761 B2 · Computer aided design for brick and block constructions and control software to control a machine to construct a building

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,761 B2
- Document ID: US12001761B2
- Status: Granted
- Kind: B2
- Application number: 16/317,772
- Filed: 2017-07-17
- Published: 2019-08-15
- Granted: 2024-06-04
- Earliest claimed: 2016-07-15
- Assignees: Fastbrick IP Pty Ltd
- Applicants: Fastbrick IP Pty Ltd
- Inventors: Mark Pivac
- Web page: https://patentgrep.com/patent/US12001761B2

## CPC

- G06F 30/13: Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
- B25J 5/00: Manipulators mounted on wheels or on carriages (B25J1/00 takes precedence; program-controlled manipulators B25J9/00)
- B25J 9/023: {Cartesian coordinate type}
- B25J 9/161: {Hardware, e.g. neural networks, fuzzy logic, interfaces, processor}
- B25J 9/1612: {characterised by the hand, wrist, grip control}
- B25J 9/162: {Mobile manipulator, movable base with manipulator arm mounted on it}
- B25J 9/1633: {compliant, force, torque control, e.g. combined with position control}
- B25J 9/1635: {flexible-arm control}
- B25J 9/1638: {compensation for arm bending/inertia, pay load weight/inertia}
- B25J 9/1651: {acceleration, rate control}
- B25J 9/1664: {characterised by motion, path, trajectory planning}
- B25J 9/1674: {characterised by safety, monitoring, diagnostic}
- B25J 9/1679: {characterised by the tasks executed}
- B25J 9/1684: {Tracking a line or surface by means of sensors}
- B25J 9/1694: {characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion}
- B25J 13/089: {Determining the position of the robot with reference to its environment}
- B25J 19/021: {Optical sensing devices}
- B25J 19/022: {using lasers}
- B28D 1/003: {Multipurpose machines; Equipment therefor}
- B28D 1/10: with provision for measuring
- B28D 1/186: {Tools therefor, e.g. having exchangeable cutter bits (B28D1/181 takes precedence; bits for picks or pick-holders for mining or quarrying E21C35/18)}
- B28D 7/005: {Devices for the automatic drive or the program control of the machines}
- B28D 7/04: for supporting or holding work {or conveying or discharging work (B28D1/047, B28D5/0041, B28D5/0052 take precedence)}
- B60P 1/48: using pivoted arms raisable above load-transporting element ({for refuse collecting vehicles B65F3/041}; load engaging elements B66C1/00 - B66C3/00)
- E04B 1/02: Structures consisting primarily of load-supporting, block-shaped, or slab-shaped elements (E04B1/32 - E04B1/36 take precedence)
- E04G 21/22: for setting building elements with mortar, e.g. bricklaying machines
- G05B 19/4097: characterised by using design data to control NC machines, e.g. CAD/CAM (G05B19/4093 takes precedence)
- G05B 19/416: characterised by control of velocity, acceleration or deceleration (G05B19/19 takes precedence)
- G05B 19/41815: {characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell}
- G05B 19/4182: {manipulators and conveyor only}
- G06F 16/00: Information retrieval; Database structures therefor; File system structures therefor
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- H04W 4/70: Services for machine-to-machine communication [M2M] or machine type communication [MTC]
- B25J 9/1697: {Vision controlled systems}
- B60P 3/28: for transporting cranes (vehicles using cranes for self-loading or self-unloading B60P1/54; mobile or travelling cranes B66C)
- B66C 13/22: for electric drives (transmitting control pulses B66C13/40; systems or devices of general application H02P)
- E04B 2/04: Walls having neither cavities between, nor in, the solid elements
- E04F 21/023: {for applying adhesive, e.g. glue or mortar, on the covering elements, in particular tiles}
- G01C 15/002: {Active optical surveying means (optical plumbing G01C15/105)}
- G01S 17/66: Tracking systems using electromagnetic waves other than radio waves
- G05B 2219/35207: Design agent selects planning agent, which selects fabrication agent
- G05B 2219/39001: Robot, manipulator control
- G05B 2219/39172: Vehicle, coordination between manipulator arm and its moving vehicle
- G05B 2219/40257: Flexible macro manipulator with rigid attached micromanipulator
- G05B 2219/40298: Manipulator on vehicle, wheels, mobile
- G05B 2219/40513: Planning of vehicle and of its manipulator arm
- G05B 2219/45086: Brick laying, masonry robot
- G06F 2111/20: Configuration CAD, e.g. designing by assembling or positioning modules selected from libraries of predesigned modules
- Y02B 10/30: Wind power
- Y02P 90/02: Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- B25J: MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES ({manipulators specially adapted for use in surgery A61B34/70; manipulators used in cleaning hollow articles B08B9/04}; manipulators associated with rolling mills B21B39/20; manipulators associated with forging machines B21J13/10; {manipulators associated with picking-up and placing mechanisms B23P19/007}; means for holding wheels or parts thereof B60B30/00; {vehicles with ground-engaging propulsion means, e.g. walking members B62D57/02, B62D57/032; devices for picking-up and depositing articles or materials between conveyors B65G47/90, B65G47/91; manipulators with gripping or holding means for transferring packages B65H67/065}; cranes B66C; {manipulators used in the protection or supervision of pipe-line installations F17D5/00; walking equipment adapted for nuclear steam-generators F22B37/006}; manipulators specially adapted for, or associated with, nuclear reactors G21C; {apparatus used for handling wafers during manufacture or treatment of semiconductor H10P72/50})
- B28D: WORKING STONE OR STONE-LIKE MATERIALS
- B60P: VEHICLES ADAPTED FOR LOAD TRANSPORTATION OR TO TRANSPORT, TO CARRY, OR TO COMPRISE SPECIAL LOADS OR OBJECTS (vehicles with special provisions for transporting patients or disabled persons, or their personal conveyances A61G3/00)
- E04B: GENERAL BUILDING CONSTRUCTIONS; WALLS, e.g. PARTITIONS; ROOFS; FLOORS; CEILINGS; INSULATION OR OTHER PROTECTION OF BUILDINGS (border constructions of opening in walls, floors or ceilings E06B1/00; {electromagnetic shielding H05K9/0001})
- E04G: SCAFFOLDING; FORMS; SHUTTERING; BUILDING IMPLEMENTS OR AIDS, OR THEIR USE; HANDLING BUILDING MATERIALS ON THE SITE; REPAIRING, BREAKING-UP OR OTHER WORK ON EXISTING BUILDINGS
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)
- B66C: CRANES; LOAD-ENGAGING ELEMENTS OR DEVICES FOR CRANES, CAPSTANS, WINCHES, OR TACKLES ({specially adapted for lifting invalids A61G7/10;} rope, cable, or chain winding mechanisms, braking or detent devices therefor B66D; specially adapted for nuclear reactors G21)
- E04F: FINISHING WORK ON BUILDINGS, e.g. STAIRS, FLOORS (windows, doors E06B)
- G01C: MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY (measuring liquid level G01F; radio navigation, determining distance or velocity by use of propagation effects, e.g. Doppler effects, propagation time, of radio waves, analogous arrangements using other waves G01S)
- G01S: RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- Y02B: CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02P: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS

## Abstract

Computer aided design software for designing a building or other structure of brick construction, where in addition to the usual three dimensional modelling and rendering typical of CAD software, tabular data describing the spatial location and orientation of each brick is provided, including information regarding which bricks are cut to length so as to be shortened, and where they are located along each course, and which bricks are machined, drilled or routed for services or other special fittings. Data pertaining to this is compiled in a database for access by control software to control a brick laying machine to build a building or other structure from bricks. The database may receive via interface with a scanner data being a measure of the elevation of the footings and/or concrete pad that has been constructed according to the building plan and for each brick of the first course, to determine how much material must be machined off the bottom of each brick so that when the first course is laid, the tops of the bricks of the first course are at the same level. This machining data is stored for each brick with the tabular data produced by computer aided design software, so that the control software can control the brick laying machine to machine and cut each brick as per the stored data, and convey each brick to the stored position on the footing, pad or previously laid course of bricks, with application of adhesive prior to positioning of the brick.

## Claims

### Claim 1

A computer-implemented method for designing a brick construction implemented by a brick laying machine, the method comprising:
receiving input building plan data from a user;
generating, from said building plan data, data representative of a scale top-plan view of walls with predetermined known wall length dimensions;
generating a virtual extrusion of length commensurate with the wall height;
determining brick by brick placement data for said walls, including the identification of a position and orientation in three dimensions of each brick relative to a point of origin, including determining brick stepping and brick nesting at wall intersections, and having regard to a predetermined minimum cut brick length—determination of cut length data for individual bricks to be cut to length in order to meet the required dimensions of wall length;
compiling a brick placement database including brick type, position and orientation in three dimensions of each brick relative to said point of origin, and cut length data for each brick identified as to be cut to length; and
determining a brick laying order indicative of an order in which each brick is to be laid, and creating in the brick placement database an index number allocated to each brick to identify the brick laying order, wherein the database includes a dependency data field associated with each brick that is indicative of one or more other bricks that must be previously laid to avoid laying arm collisions with the one or more other previously laid bricks;
wherein the brick placement database is used by a brick laying machine to cut and optionally to machine each brick in accordance with data stored in the brick placement database, the brick laying machine conveying each brick one by one according to the brick laying order identified by the stored index numbers allocated to each brick, and applying adhesive and locating each brick according to data stored in the brick placement database on a footing, pad or previously laid course of bricks, with application of adhesive prior to positioning of each brick, to thereby lay the bricks.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 having a first table containing one or more user selectable settings allowing stock brick type and size parameters to be stored and selected for walls.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1 wherein said building plan data is representative of a scale top-plan view of external walls and internal walls.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1 further comprising generating footing data and/or concrete pad data including the dimensions, position and orientation of the footings and/or concrete pad relative to a point of origin, relative height off-set between the bottom of external walls and optionally the bottom of internal walls and between different sections of the internal walls and optionally determining the required volume of concrete to form the pad.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1 further comprising allowing user input of and storing positioning data for voids and/or apertures in said extrusion, said voids and/or apertures being of dimensions commensurate with the height and width of doors and windows to be fitted in the completed building.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1 further comprising allowing user input of and storing services positioning data for at least one of plumbing, electrical and ICT (Information and Communication Technology) and sound and vision cabling and connection points in external walls and in internal walls; generating positioning data for channels in said walls to carry services and recesses in said walls for said connection points; generating machining data for the location of recesses and cavities to be machined in individual bricks according to the positioning data of said channels and recesses;
and storing said machining data in said brick placement database.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1 wherein a reference position on each brick is a centroid of all dimensions of each brick, trimmed or whole, not taking into account any routed cut-outs or recesses.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1 wherein different spacings between adjacent bricks and thicknesses of adhesive or mortar between adjacent bricks are accounted for and adjacent brick spacing A and brick base spacing B are stored in the brick placement database.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, further comprising storing coordinates of a cut for cut bricks in the brick placement database.

### Claim 10 (depends on 6)

The computer-implemented method of claim 6 having a first library in which data pertaining to one or more building plans in the form of data sets are stored.

### Claim 11 (depends on 6)

The computer-implemented method of claim 6 wherein walls of a structure to be built are treated as segments extending between intersections of brickwork, where each segment has a course segment extending between intersections of brickwork and window and door opening edges; where any said course segment has a length s, where:
s=n.(b+A)+r+A+p.e+p.A+q.f+q.A−A;
where A is the A value or gap),
b is the stock brick length,
e and f are the end overlap at a brick wall intersection,
p may be 1 (indicating e is equal to the width of a brick at the intersecting wall, or zero (abutting),
q may be 1 (indicating f is equal to the width of a brick at the intersecting wall, or zero (abutting), and
r is the remainder which may be zero or greater than or equal to 0.2 b, preferably 0.25 b, and if this is true, a single brick is cut to length r to complete the course segment;
and if r is less than 0.2 b, preferably 0.25 b,
s=(n−1).(b+A)+2r+2A+p.e+p.A+p.f+q.A−A
where r is the length that two bricks are cut to, to locate within and complete a course segment having n−1 bricks.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11 wherein a next course of bricks are arranged in order to achieve preferred stepping, where a course segment includes two bricks of length r, the immediately overlying course segment includes a single brick of length r balanced on the join between the two bricks of length r, with two bricks cut to length of c=(b+r)/2, located on either side thereof, with bricks of stock brick length b continuing away from at least one of said two bricks cut to length of c, and the course segment length can be described by the following:
s=(n−2).(b+A)+r+A+2(c+A)+p.e+p.A+p.f+q.A−A.

### Claim 13 (depends on 1)

The computer-implemented method of claim 1 further comprising a library of handling identifiers which each identify a unique handling device within said brick laying machine, and generating a handling table identifying individual bricks and associating individual bricks with a particular handling device at a particular time, and updating said handling table as individual bricks progress from handling device to handling device with the elapsing of time.

### Claim 14 (depends on 1)

The computer-implemented method of claim 1 further comprising receiving data from a scanner located at a surveying position to measure a relative surface height of a surface extent where bricks are to be laid, and calculating corrected x y z position and orientation data relative to said point of origin for each brick recorded in said brick placement database, based on a difference between the location of the point of origin and the surveying position, and recording the corrected x y z position and orientation data relative to said surveying position, for use in controlling said brick laying machine.

### Claim 15 (depends on 1)

The computer-implemented method of claim 1 further comprising receiving data from a scanner located at a surveying position to measure a relative surface height of a surface extent where bricks are to be laid, and correcting for the difference in positioning of said surveying position and said point of origin and determining the difference in height of the surface for said at least one location for each brick, from the lowest point and the highest point for each course of bricks and storing the difference in the brick placement database as trim data corresponding with an amount to be machined from a horizontal face of each brick so that the top of each course of bricks is level when laid, the trim data being measured and stored as a trim value array for multiple locations for each brick, so that the brick laying machine may machine a brick to compensate for localised footing or pad height excesses.
