2019-09-28 21:42:04 +03:00
|
|
|
<template>
|
2020-06-26 04:39:14 -07:00
|
|
|
<div>
|
2020-07-31 13:50:50 -07:00
|
|
|
<v-row
|
|
|
|
|
no-gutters
|
|
|
|
|
class="pa-3"
|
|
|
|
|
>
|
|
|
|
|
<v-col
|
|
|
|
|
cols="12"
|
|
|
|
|
md="7"
|
2020-06-26 04:39:14 -07:00
|
|
|
>
|
2020-07-31 13:50:50 -07:00
|
|
|
<v-card
|
|
|
|
|
class="mb-3 pr-6 pb-3"
|
|
|
|
|
color="primary"
|
|
|
|
|
dark
|
|
|
|
|
>
|
|
|
|
|
<v-card-title>Camera Settings</v-card-title>
|
|
|
|
|
<div class="ml-5">
|
|
|
|
|
<CVselect
|
|
|
|
|
v-model="currentCameraIndex"
|
|
|
|
|
name="Camera"
|
|
|
|
|
select-cols="10"
|
|
|
|
|
:list="$store.getters.cameraList"
|
|
|
|
|
@input="handleInput('currentCamera',currentCameraIndex)"
|
|
|
|
|
/>
|
|
|
|
|
<CVnumberinput
|
|
|
|
|
v-if="cameraSettings.isFovConfigurable"
|
|
|
|
|
v-model="cameraSettings.fov"
|
|
|
|
|
tooltip="Field of view (in degrees) of the camera measured across the diagonal of the frame"
|
|
|
|
|
name="Diagonal FOV"
|
|
|
|
|
/>
|
|
|
|
|
<br>
|
|
|
|
|
<CVnumberinput
|
|
|
|
|
v-model="cameraSettings.tilt"
|
|
|
|
|
name="Camera pitch"
|
|
|
|
|
tooltip="How many degrees above the horizontal the physical camera is tilted"
|
|
|
|
|
:step="0.01"
|
|
|
|
|
/>
|
|
|
|
|
<br>
|
|
|
|
|
<v-btn
|
|
|
|
|
style="margin-top:10px"
|
|
|
|
|
small
|
|
|
|
|
color="secondary"
|
|
|
|
|
@click="sendCameraSettings"
|
|
|
|
|
>
|
|
|
|
|
<v-icon left>
|
|
|
|
|
mdi-content-save
|
|
|
|
|
</v-icon>
|
|
|
|
|
Save Camera Settings
|
|
|
|
|
</v-btn>
|
|
|
|
|
</div>
|
|
|
|
|
</v-card>
|
|
|
|
|
<v-card
|
|
|
|
|
class="pr-6 pb-3"
|
|
|
|
|
color="primary"
|
2020-06-26 04:39:14 -07:00
|
|
|
dark
|
2020-07-31 13:50:50 -07:00
|
|
|
>
|
|
|
|
|
<v-card-title>Camera Calibration</v-card-title>
|
|
|
|
|
<div class="ml-5">
|
|
|
|
|
<v-row>
|
|
|
|
|
<v-col cols="8">
|
|
|
|
|
<CVselect
|
|
|
|
|
v-model="resolutionIndex"
|
|
|
|
|
name="Resolution"
|
|
|
|
|
:list="stringResolutionList"
|
|
|
|
|
/>
|
|
|
|
|
</v-col>
|
|
|
|
|
<v-col
|
|
|
|
|
cols="4"
|
|
|
|
|
align-self="center"
|
|
|
|
|
>
|
|
|
|
|
<CVnumberinput
|
|
|
|
|
v-model="squareSize"
|
|
|
|
|
name="Square Size (in)"
|
|
|
|
|
tooltip="Length of one side of the checkerboard's square in inches"
|
|
|
|
|
label-cols="unset"
|
|
|
|
|
/>
|
|
|
|
|
</v-col>
|
|
|
|
|
</v-row>
|
|
|
|
|
<v-row>
|
|
|
|
|
<v-col>
|
|
|
|
|
<v-btn
|
|
|
|
|
small
|
|
|
|
|
color="secondary"
|
|
|
|
|
:disabled="checkResolution"
|
|
|
|
|
@click="sendCalibrationMode"
|
|
|
|
|
>
|
|
|
|
|
{{ calibrationModeButton.text }}
|
|
|
|
|
</v-btn>
|
|
|
|
|
</v-col>
|
|
|
|
|
<v-col>
|
|
|
|
|
<v-btn
|
|
|
|
|
small
|
|
|
|
|
color="red"
|
|
|
|
|
:disabled="checkCancellation"
|
|
|
|
|
@click="sendCalibrationFinish"
|
|
|
|
|
>
|
|
|
|
|
{{ cancellationModeButton.text }}
|
|
|
|
|
</v-btn>
|
|
|
|
|
</v-col>
|
|
|
|
|
<v-col>
|
|
|
|
|
<v-btn
|
|
|
|
|
color="accent"
|
|
|
|
|
small
|
|
|
|
|
outlined
|
|
|
|
|
@click="downloadBoard"
|
|
|
|
|
>
|
|
|
|
|
<v-icon left>
|
|
|
|
|
mdi-download
|
|
|
|
|
</v-icon>
|
|
|
|
|
Download Checkerboard
|
|
|
|
|
</v-btn>
|
|
|
|
|
<a
|
|
|
|
|
ref="calibrationFile"
|
|
|
|
|
style="color: black; text-decoration: none; display: none"
|
|
|
|
|
:href="require('../assets/chessboard.png')"
|
|
|
|
|
download="Calibration Board.png"
|
|
|
|
|
/>
|
|
|
|
|
</v-col>
|
|
|
|
|
</v-row>
|
|
|
|
|
<v-row v-if="isCalibrating">
|
|
|
|
|
<v-col>
|
|
|
|
|
<span>Snapshot Amount: {{ snapshotAmount }}</span>
|
|
|
|
|
</v-col>
|
|
|
|
|
</v-row>
|
|
|
|
|
<div v-if="isCalibrating">
|
|
|
|
|
<v-checkbox
|
|
|
|
|
v-model="isAdvanced"
|
|
|
|
|
label="Advanced Menu"
|
|
|
|
|
dark
|
|
|
|
|
/>
|
|
|
|
|
<div v-if="isAdvanced">
|
|
|
|
|
<CVslider
|
|
|
|
|
v-model="$store.getters.pipeline.exposure"
|
|
|
|
|
name="Exposure"
|
|
|
|
|
:min="0"
|
|
|
|
|
:max="100"
|
|
|
|
|
@input="e=> handleInput('exposure', e)"
|
|
|
|
|
/>
|
|
|
|
|
<CVslider
|
|
|
|
|
v-model="$store.getters.pipeline.brightness"
|
|
|
|
|
name="Brightness"
|
|
|
|
|
:min="0"
|
|
|
|
|
:max="100"
|
|
|
|
|
@input="e=> handleInput('brightness', e)"
|
|
|
|
|
/>
|
|
|
|
|
<CVslider
|
|
|
|
|
v-if="$store.getters.pipeline.gain !== -1"
|
|
|
|
|
v-model="$store.getters.pipeline.gain"
|
|
|
|
|
name="Gain"
|
|
|
|
|
:min="0"
|
|
|
|
|
:max="100"
|
|
|
|
|
@input="e=> handleInput('gain', e)"
|
|
|
|
|
/>
|
|
|
|
|
<CVselect
|
|
|
|
|
v-model="$store.getters.pipeline.videoModeIndex"
|
|
|
|
|
name="FPS"
|
|
|
|
|
:list="stringFpsList"
|
|
|
|
|
@input="changeFps"
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</v-card>
|
|
|
|
|
</v-col>
|
|
|
|
|
<v-col
|
|
|
|
|
class="pl-md-3 pt-3 pt-md-0"
|
|
|
|
|
cols="12"
|
|
|
|
|
md="5"
|
|
|
|
|
>
|
|
|
|
|
<CVimage
|
|
|
|
|
:address="$store.getters.streamAddress[1]"
|
|
|
|
|
:disconnected="!$store.state.backendConnected"
|
|
|
|
|
scale="100"
|
|
|
|
|
style="border-radius: 5px;"
|
2020-06-26 04:39:14 -07:00
|
|
|
/>
|
2020-07-31 13:50:50 -07:00
|
|
|
</v-col>
|
|
|
|
|
</v-row>
|
2020-06-26 04:39:14 -07:00
|
|
|
<v-snackbar
|
|
|
|
|
v-model="snack"
|
|
|
|
|
top
|
|
|
|
|
:color="snackbar.color"
|
|
|
|
|
>
|
|
|
|
|
<span>{{ snackbar.text }}</span>
|
|
|
|
|
</v-snackbar>
|
|
|
|
|
</div>
|
2019-09-28 21:42:04 +03:00
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2020-07-31 13:50:50 -07:00
|
|
|
import CVselect from '../components/common/cv-select';
|
|
|
|
|
import CVnumberinput from '../components/common/cv-number-input';
|
|
|
|
|
import CVslider from '../components/common/cv-slider';
|
|
|
|
|
import CVimage from "../components/common/cv-image";
|
2019-10-29 23:58:06 +02:00
|
|
|
|
2019-09-28 21:42:04 +03:00
|
|
|
export default {
|
2020-07-31 13:50:50 -07:00
|
|
|
name: 'Cameras',
|
2019-10-29 23:58:06 +02:00
|
|
|
components: {
|
2019-09-28 21:42:04 +03:00
|
|
|
CVselect,
|
2020-01-25 23:11:02 +02:00
|
|
|
CVnumberinput,
|
2020-07-31 13:50:50 -07:00
|
|
|
CVslider,
|
|
|
|
|
CVimage
|
2019-09-28 21:42:04 +03:00
|
|
|
},
|
|
|
|
|
data() {
|
Add solvePNP, 3d tab on the UI, and some other misc bug fixes (#35)
* Rebase solvePNP on master
* added 3D tab minimap and csv reader
* More solvePNP
* Create draw pipe for pnp data
* SolvePNP piping work
* Move sorting into solvepnppipe
* Create calibration pipeline
* Update CalibrateSolvePNPPipeline.java
* add camera tilt angle
* Add calibration slider and snapshot button to 3D view
* Mirror updates in the socket handler
* add 3d calibration mode to the pipeline manager
* created calibration functions in ui and backend
* Start plumbing calibration
* Add snapshot and other handling to the RequestHandler
* added select resolution before starting calibration
* Rename solvePNPPipe to bounding box solve pnp pipe
* Update BoundingBoxSolvePNPPipe.java
* Add Mat serializer and CameraCalibrationConfig
* Begun calibration saving, fixed UI/Backend snapshot count mismatch
* Add (unplumbed) option to set checkerboard size
This will allow users to change the units their calibration is in
* Create chessboard.png
* Fix calibration NPE
* changed string serialization to a json send
* bug fixed cancellation button
* Fix spelling of snapshot in 3d.vue
* Plumb resolution change
* Set resolution during config, start on config serialization
* Update .gitignore
* Config fixes
* Start transition away from cvpipeline3d
* fix NPE on uncalibrated cameras
* clear list on fail
* Fix video mode index error
* ignore getters in camera calibration config
* Create json constructor for jsonmat
* get solvePNP mostly returning sane values
* Fix solvePNP bug and add unit test
* FIx calibration mat truncation
* added capture amount model upload and minimap data
* Standardize on meters in calibration and bounding box
* fix json out of bounds and handle null calibration more gracefully
* don't put text on calibrate image, go back to inches
* convert distance to meters
this means calibration will need to be in inches
* Actually save raw contor
* Update GroupContoursPipe.java
* Add all calibration return to camera capture
* hard code 2019 target
* bugfixed draw2d added fail calib popup, merge end and cancel
added the res index to the calib start
* Clarify error message and draw more fancy rectangles
* Cleanup memory in solvepnp
* re did minimap component
* fix npe if left/right is null
* remove references to 2d
* try-catch running the current pipeline
* Add method to find corners using the harris corner detector
* Possibly fix left/right missmatch
* Fix 3D Tab error
* FIx file permissions, mat serializer adjustments
* fixed mini map for field coordinates
* mini map changes fov
* Update SolvePNPPipe.java
* get rid of target corners
* some memory leak fixes
* fixed mini map location
* added position under minimap
* changed player fov look
* put all targets in the web send
* re did target send to ui added target tables, bugfix calibration
* fixed y position
* Add tilt angle to capture properties
* maybe fix y axis in minimap
* Add square size to onCalibrationEnding
* Possibly add square size to UI
* fix NPE with pitch
* Fix bug with sending multiple targets
* Only instantiate 3d stuff if we are in 3d mode
* Fix array list exceptions
* Fix bug in sort contors
list was truncated too early
* added download chess, tilt setting and ordinal tilt,
* added square size connection
* removed unused code
* Update pom version to 2.1-RELEASE
* Send camera calibrations to UI
* Stream pose list to a LIst
* Only stream necessary parts of the aux list entry
* Make broadcastMessage synchronized to prevent ConcurrentModificationExceptions
* added fps counter changed squaresize steps bug fixes in tables
* bugfix camera settings cam wont change
Authored-by: oriagranat9 <oriagranat9@gmail.com>
2019-12-31 04:53:20 -08:00
|
|
|
return {
|
|
|
|
|
isCalibrating: false,
|
|
|
|
|
resolutionIndex: undefined,
|
|
|
|
|
calibrationModeButton: {
|
|
|
|
|
text: "Start Calibration",
|
|
|
|
|
color: "green"
|
|
|
|
|
},
|
|
|
|
|
cancellationModeButton: {
|
|
|
|
|
text: "Cancel Calibration",
|
|
|
|
|
color: "red"
|
|
|
|
|
},
|
2020-01-25 23:11:02 +02:00
|
|
|
snackbar: {
|
|
|
|
|
color: "success",
|
|
|
|
|
text: ""
|
|
|
|
|
},
|
2019-12-31 16:38:52 -08:00
|
|
|
squareSize: 1.0,
|
Add solvePNP, 3d tab on the UI, and some other misc bug fixes (#35)
* Rebase solvePNP on master
* added 3D tab minimap and csv reader
* More solvePNP
* Create draw pipe for pnp data
* SolvePNP piping work
* Move sorting into solvepnppipe
* Create calibration pipeline
* Update CalibrateSolvePNPPipeline.java
* add camera tilt angle
* Add calibration slider and snapshot button to 3D view
* Mirror updates in the socket handler
* add 3d calibration mode to the pipeline manager
* created calibration functions in ui and backend
* Start plumbing calibration
* Add snapshot and other handling to the RequestHandler
* added select resolution before starting calibration
* Rename solvePNPPipe to bounding box solve pnp pipe
* Update BoundingBoxSolvePNPPipe.java
* Add Mat serializer and CameraCalibrationConfig
* Begun calibration saving, fixed UI/Backend snapshot count mismatch
* Add (unplumbed) option to set checkerboard size
This will allow users to change the units their calibration is in
* Create chessboard.png
* Fix calibration NPE
* changed string serialization to a json send
* bug fixed cancellation button
* Fix spelling of snapshot in 3d.vue
* Plumb resolution change
* Set resolution during config, start on config serialization
* Update .gitignore
* Config fixes
* Start transition away from cvpipeline3d
* fix NPE on uncalibrated cameras
* clear list on fail
* Fix video mode index error
* ignore getters in camera calibration config
* Create json constructor for jsonmat
* get solvePNP mostly returning sane values
* Fix solvePNP bug and add unit test
* FIx calibration mat truncation
* added capture amount model upload and minimap data
* Standardize on meters in calibration and bounding box
* fix json out of bounds and handle null calibration more gracefully
* don't put text on calibrate image, go back to inches
* convert distance to meters
this means calibration will need to be in inches
* Actually save raw contor
* Update GroupContoursPipe.java
* Add all calibration return to camera capture
* hard code 2019 target
* bugfixed draw2d added fail calib popup, merge end and cancel
added the res index to the calib start
* Clarify error message and draw more fancy rectangles
* Cleanup memory in solvepnp
* re did minimap component
* fix npe if left/right is null
* remove references to 2d
* try-catch running the current pipeline
* Add method to find corners using the harris corner detector
* Possibly fix left/right missmatch
* Fix 3D Tab error
* FIx file permissions, mat serializer adjustments
* fixed mini map for field coordinates
* mini map changes fov
* Update SolvePNPPipe.java
* get rid of target corners
* some memory leak fixes
* fixed mini map location
* added position under minimap
* changed player fov look
* put all targets in the web send
* re did target send to ui added target tables, bugfix calibration
* fixed y position
* Add tilt angle to capture properties
* maybe fix y axis in minimap
* Add square size to onCalibrationEnding
* Possibly add square size to UI
* fix NPE with pitch
* Fix bug with sending multiple targets
* Only instantiate 3d stuff if we are in 3d mode
* Fix array list exceptions
* Fix bug in sort contors
list was truncated too early
* added download chess, tilt setting and ordinal tilt,
* added square size connection
* removed unused code
* Update pom version to 2.1-RELEASE
* Send camera calibrations to UI
* Stream pose list to a LIst
* Only stream necessary parts of the aux list entry
* Make broadcastMessage synchronized to prevent ConcurrentModificationExceptions
* added fps counter changed squaresize steps bug fixes in tables
* bugfix camera settings cam wont change
Authored-by: oriagranat9 <oriagranat9@gmail.com>
2019-12-31 04:53:20 -08:00
|
|
|
snapshotAmount: 0,
|
|
|
|
|
hasEnough: false,
|
2020-01-25 23:11:02 +02:00
|
|
|
snack: false,
|
|
|
|
|
isAdvanced: false
|
Add solvePNP, 3d tab on the UI, and some other misc bug fixes (#35)
* Rebase solvePNP on master
* added 3D tab minimap and csv reader
* More solvePNP
* Create draw pipe for pnp data
* SolvePNP piping work
* Move sorting into solvepnppipe
* Create calibration pipeline
* Update CalibrateSolvePNPPipeline.java
* add camera tilt angle
* Add calibration slider and snapshot button to 3D view
* Mirror updates in the socket handler
* add 3d calibration mode to the pipeline manager
* created calibration functions in ui and backend
* Start plumbing calibration
* Add snapshot and other handling to the RequestHandler
* added select resolution before starting calibration
* Rename solvePNPPipe to bounding box solve pnp pipe
* Update BoundingBoxSolvePNPPipe.java
* Add Mat serializer and CameraCalibrationConfig
* Begun calibration saving, fixed UI/Backend snapshot count mismatch
* Add (unplumbed) option to set checkerboard size
This will allow users to change the units their calibration is in
* Create chessboard.png
* Fix calibration NPE
* changed string serialization to a json send
* bug fixed cancellation button
* Fix spelling of snapshot in 3d.vue
* Plumb resolution change
* Set resolution during config, start on config serialization
* Update .gitignore
* Config fixes
* Start transition away from cvpipeline3d
* fix NPE on uncalibrated cameras
* clear list on fail
* Fix video mode index error
* ignore getters in camera calibration config
* Create json constructor for jsonmat
* get solvePNP mostly returning sane values
* Fix solvePNP bug and add unit test
* FIx calibration mat truncation
* added capture amount model upload and minimap data
* Standardize on meters in calibration and bounding box
* fix json out of bounds and handle null calibration more gracefully
* don't put text on calibrate image, go back to inches
* convert distance to meters
this means calibration will need to be in inches
* Actually save raw contor
* Update GroupContoursPipe.java
* Add all calibration return to camera capture
* hard code 2019 target
* bugfixed draw2d added fail calib popup, merge end and cancel
added the res index to the calib start
* Clarify error message and draw more fancy rectangles
* Cleanup memory in solvepnp
* re did minimap component
* fix npe if left/right is null
* remove references to 2d
* try-catch running the current pipeline
* Add method to find corners using the harris corner detector
* Possibly fix left/right missmatch
* Fix 3D Tab error
* FIx file permissions, mat serializer adjustments
* fixed mini map for field coordinates
* mini map changes fov
* Update SolvePNPPipe.java
* get rid of target corners
* some memory leak fixes
* fixed mini map location
* added position under minimap
* changed player fov look
* put all targets in the web send
* re did target send to ui added target tables, bugfix calibration
* fixed y position
* Add tilt angle to capture properties
* maybe fix y axis in minimap
* Add square size to onCalibrationEnding
* Possibly add square size to UI
* fix NPE with pitch
* Fix bug with sending multiple targets
* Only instantiate 3d stuff if we are in 3d mode
* Fix array list exceptions
* Fix bug in sort contors
list was truncated too early
* added download chess, tilt setting and ordinal tilt,
* added square size connection
* removed unused code
* Update pom version to 2.1-RELEASE
* Send camera calibrations to UI
* Stream pose list to a LIst
* Only stream necessary parts of the aux list entry
* Make broadcastMessage synchronized to prevent ConcurrentModificationExceptions
* added fps counter changed squaresize steps bug fixes in tables
* bugfix camera settings cam wont change
Authored-by: oriagranat9 <oriagranat9@gmail.com>
2019-12-31 04:53:20 -08:00
|
|
|
}
|
2019-10-12 18:09:05 +03:00
|
|
|
},
|
2020-06-26 04:39:14 -07:00
|
|
|
computed: {
|
|
|
|
|
checkResolution() {
|
|
|
|
|
return this.resolutionIndex === undefined;
|
|
|
|
|
},
|
|
|
|
|
checkCancellation() {
|
|
|
|
|
if (this.isCalibrating) {
|
|
|
|
|
return false
|
|
|
|
|
} else if (this.checkResolution) {
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
currentCameraIndex: {
|
|
|
|
|
get() {
|
|
|
|
|
return this.$store.state.currentCameraIndex;
|
|
|
|
|
},
|
|
|
|
|
set(value) {
|
|
|
|
|
this.$store.commit('currentCameraIndex', value);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
filteredResolutionList: {
|
|
|
|
|
get() {
|
|
|
|
|
let tmp_list = [];
|
|
|
|
|
for (let i in this.$store.state.resolutionList) {
|
|
|
|
|
if (this.$store.state.resolutionList.hasOwnProperty(i)) {
|
|
|
|
|
let res = JSON.parse(JSON.stringify(this.$store.state.resolutionList[i]));
|
|
|
|
|
if (!tmp_list.some(e => e.width === res.width && e.height === res.height)) {
|
|
|
|
|
res['actualIndex'] = parseInt(i);
|
|
|
|
|
tmp_list.push(res);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return tmp_list;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
filteredFpsList() {
|
|
|
|
|
let selectedRes = this.$store.state.resolutionList[this.resolutionIndex];
|
|
|
|
|
let tmpList = [];
|
|
|
|
|
for (let i in this.$store.state.resolutionList) {
|
|
|
|
|
if (this.$store.state.resolutionList.hasOwnProperty(i)) {
|
|
|
|
|
let res = JSON.parse(JSON.stringify(this.$store.state.resolutionList[i]));
|
|
|
|
|
if (!tmpList.some(e => e['fps'] === res['fps'])) {
|
|
|
|
|
if (res.width === selectedRes.width && res.height === selectedRes.height) {
|
|
|
|
|
res['actualIndex'] = parseInt(i);
|
|
|
|
|
tmpList.push(res);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return tmpList;
|
|
|
|
|
},
|
|
|
|
|
stringFpsList() {
|
|
|
|
|
let tmp = [];
|
|
|
|
|
for (let i of this.filteredFpsList) {
|
|
|
|
|
tmp.push(i['fps']);
|
|
|
|
|
}
|
|
|
|
|
return tmp;
|
|
|
|
|
},
|
|
|
|
|
stringResolutionList: {
|
|
|
|
|
get() {
|
|
|
|
|
let tmp = [];
|
|
|
|
|
for (let i of this.filteredResolutionList) {
|
|
|
|
|
tmp.push(`${i['width']} X ${i['height']}`)
|
|
|
|
|
}
|
|
|
|
|
return tmp
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
cameraSettings: {
|
|
|
|
|
get() {
|
2020-07-31 13:50:50 -07:00
|
|
|
return this.$store.getters.currentCameraSettings;
|
2020-06-26 04:39:14 -07:00
|
|
|
},
|
|
|
|
|
set(value) {
|
|
|
|
|
this.$store.commit('cameraSettings', value);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2019-10-29 23:58:06 +02:00
|
|
|
methods: {
|
2020-03-19 14:02:49 +02:00
|
|
|
downloadBoard() {
|
2020-07-31 13:50:50 -07:00
|
|
|
this.axios.get("http://" + this.$address + require('../assets/chessboard.png'), {responseType: 'blob'}).then((response) => {
|
2020-03-19 14:02:49 +02:00
|
|
|
require('downloadjs')(response.data, "Calibration Board", "image/png")
|
|
|
|
|
})
|
|
|
|
|
},
|
2020-01-25 23:26:07 +02:00
|
|
|
changeFps() {
|
2020-05-25 22:46:44 +03:00
|
|
|
this.handleInput('videoModeIndex', this.filteredFpsList[this.$store.getters.pipeline['videoModeIndex']]['actualIndex']);
|
2020-01-25 23:11:02 +02:00
|
|
|
},
|
2019-10-29 23:58:06 +02:00
|
|
|
sendCameraSettings() {
|
2019-11-09 21:26:02 +02:00
|
|
|
const self = this;
|
|
|
|
|
this.axios.post("http://" + this.$address + "/api/settings/camera", this.cameraSettings).then(
|
|
|
|
|
function (response) {
|
2019-11-30 19:24:03 +02:00
|
|
|
if (response.status === 200) {
|
2019-11-09 21:26:02 +02:00
|
|
|
self.$store.state.saveBar = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
)
|
2019-10-16 08:10:06 +03:00
|
|
|
},
|
Add solvePNP, 3d tab on the UI, and some other misc bug fixes (#35)
* Rebase solvePNP on master
* added 3D tab minimap and csv reader
* More solvePNP
* Create draw pipe for pnp data
* SolvePNP piping work
* Move sorting into solvepnppipe
* Create calibration pipeline
* Update CalibrateSolvePNPPipeline.java
* add camera tilt angle
* Add calibration slider and snapshot button to 3D view
* Mirror updates in the socket handler
* add 3d calibration mode to the pipeline manager
* created calibration functions in ui and backend
* Start plumbing calibration
* Add snapshot and other handling to the RequestHandler
* added select resolution before starting calibration
* Rename solvePNPPipe to bounding box solve pnp pipe
* Update BoundingBoxSolvePNPPipe.java
* Add Mat serializer and CameraCalibrationConfig
* Begun calibration saving, fixed UI/Backend snapshot count mismatch
* Add (unplumbed) option to set checkerboard size
This will allow users to change the units their calibration is in
* Create chessboard.png
* Fix calibration NPE
* changed string serialization to a json send
* bug fixed cancellation button
* Fix spelling of snapshot in 3d.vue
* Plumb resolution change
* Set resolution during config, start on config serialization
* Update .gitignore
* Config fixes
* Start transition away from cvpipeline3d
* fix NPE on uncalibrated cameras
* clear list on fail
* Fix video mode index error
* ignore getters in camera calibration config
* Create json constructor for jsonmat
* get solvePNP mostly returning sane values
* Fix solvePNP bug and add unit test
* FIx calibration mat truncation
* added capture amount model upload and minimap data
* Standardize on meters in calibration and bounding box
* fix json out of bounds and handle null calibration more gracefully
* don't put text on calibrate image, go back to inches
* convert distance to meters
this means calibration will need to be in inches
* Actually save raw contor
* Update GroupContoursPipe.java
* Add all calibration return to camera capture
* hard code 2019 target
* bugfixed draw2d added fail calib popup, merge end and cancel
added the res index to the calib start
* Clarify error message and draw more fancy rectangles
* Cleanup memory in solvepnp
* re did minimap component
* fix npe if left/right is null
* remove references to 2d
* try-catch running the current pipeline
* Add method to find corners using the harris corner detector
* Possibly fix left/right missmatch
* Fix 3D Tab error
* FIx file permissions, mat serializer adjustments
* fixed mini map for field coordinates
* mini map changes fov
* Update SolvePNPPipe.java
* get rid of target corners
* some memory leak fixes
* fixed mini map location
* added position under minimap
* changed player fov look
* put all targets in the web send
* re did target send to ui added target tables, bugfix calibration
* fixed y position
* Add tilt angle to capture properties
* maybe fix y axis in minimap
* Add square size to onCalibrationEnding
* Possibly add square size to UI
* fix NPE with pitch
* Fix bug with sending multiple targets
* Only instantiate 3d stuff if we are in 3d mode
* Fix array list exceptions
* Fix bug in sort contors
list was truncated too early
* added download chess, tilt setting and ordinal tilt,
* added square size connection
* removed unused code
* Update pom version to 2.1-RELEASE
* Send camera calibrations to UI
* Stream pose list to a LIst
* Only stream necessary parts of the aux list entry
* Make broadcastMessage synchronized to prevent ConcurrentModificationExceptions
* added fps counter changed squaresize steps bug fixes in tables
* bugfix camera settings cam wont change
Authored-by: oriagranat9 <oriagranat9@gmail.com>
2019-12-31 04:53:20 -08:00
|
|
|
sendCalibrationMode() {
|
|
|
|
|
const self = this;
|
|
|
|
|
let data = {};
|
|
|
|
|
let connection_string = "/api/settings/";
|
|
|
|
|
if (self.isCalibrating === true) {
|
|
|
|
|
connection_string += "snapshot"
|
|
|
|
|
} else {
|
|
|
|
|
connection_string += "startCalibration";
|
2020-01-01 22:06:09 +02:00
|
|
|
data['resolution'] = this.filteredResolutionList[this.resolutionIndex].actualIndex;
|
Add solvePNP, 3d tab on the UI, and some other misc bug fixes (#35)
* Rebase solvePNP on master
* added 3D tab minimap and csv reader
* More solvePNP
* Create draw pipe for pnp data
* SolvePNP piping work
* Move sorting into solvepnppipe
* Create calibration pipeline
* Update CalibrateSolvePNPPipeline.java
* add camera tilt angle
* Add calibration slider and snapshot button to 3D view
* Mirror updates in the socket handler
* add 3d calibration mode to the pipeline manager
* created calibration functions in ui and backend
* Start plumbing calibration
* Add snapshot and other handling to the RequestHandler
* added select resolution before starting calibration
* Rename solvePNPPipe to bounding box solve pnp pipe
* Update BoundingBoxSolvePNPPipe.java
* Add Mat serializer and CameraCalibrationConfig
* Begun calibration saving, fixed UI/Backend snapshot count mismatch
* Add (unplumbed) option to set checkerboard size
This will allow users to change the units their calibration is in
* Create chessboard.png
* Fix calibration NPE
* changed string serialization to a json send
* bug fixed cancellation button
* Fix spelling of snapshot in 3d.vue
* Plumb resolution change
* Set resolution during config, start on config serialization
* Update .gitignore
* Config fixes
* Start transition away from cvpipeline3d
* fix NPE on uncalibrated cameras
* clear list on fail
* Fix video mode index error
* ignore getters in camera calibration config
* Create json constructor for jsonmat
* get solvePNP mostly returning sane values
* Fix solvePNP bug and add unit test
* FIx calibration mat truncation
* added capture amount model upload and minimap data
* Standardize on meters in calibration and bounding box
* fix json out of bounds and handle null calibration more gracefully
* don't put text on calibrate image, go back to inches
* convert distance to meters
this means calibration will need to be in inches
* Actually save raw contor
* Update GroupContoursPipe.java
* Add all calibration return to camera capture
* hard code 2019 target
* bugfixed draw2d added fail calib popup, merge end and cancel
added the res index to the calib start
* Clarify error message and draw more fancy rectangles
* Cleanup memory in solvepnp
* re did minimap component
* fix npe if left/right is null
* remove references to 2d
* try-catch running the current pipeline
* Add method to find corners using the harris corner detector
* Possibly fix left/right missmatch
* Fix 3D Tab error
* FIx file permissions, mat serializer adjustments
* fixed mini map for field coordinates
* mini map changes fov
* Update SolvePNPPipe.java
* get rid of target corners
* some memory leak fixes
* fixed mini map location
* added position under minimap
* changed player fov look
* put all targets in the web send
* re did target send to ui added target tables, bugfix calibration
* fixed y position
* Add tilt angle to capture properties
* maybe fix y axis in minimap
* Add square size to onCalibrationEnding
* Possibly add square size to UI
* fix NPE with pitch
* Fix bug with sending multiple targets
* Only instantiate 3d stuff if we are in 3d mode
* Fix array list exceptions
* Fix bug in sort contors
list was truncated too early
* added download chess, tilt setting and ordinal tilt,
* added square size connection
* removed unused code
* Update pom version to 2.1-RELEASE
* Send camera calibrations to UI
* Stream pose list to a LIst
* Only stream necessary parts of the aux list entry
* Make broadcastMessage synchronized to prevent ConcurrentModificationExceptions
* added fps counter changed squaresize steps bug fixes in tables
* bugfix camera settings cam wont change
Authored-by: oriagranat9 <oriagranat9@gmail.com>
2019-12-31 04:53:20 -08:00
|
|
|
data['squareSize'] = this.squareSize;
|
|
|
|
|
self.hasEnough = false;
|
|
|
|
|
}
|
|
|
|
|
this.axios.post("http://" + this.$address + connection_string, data).then(
|
|
|
|
|
function (response) {
|
|
|
|
|
if (response.status === 200) {
|
|
|
|
|
if (self.isCalibrating) {
|
|
|
|
|
self.snapshotAmount = response.data['snapshotCount'];
|
|
|
|
|
self.hasEnough = response.data['hasEnough'];
|
|
|
|
|
if (self.hasEnough === true) {
|
|
|
|
|
self.cancellationModeButton.text = "Finish Calibration";
|
|
|
|
|
self.cancellationModeButton.color = "green";
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
self.calibrationModeButton.text = "Take Snapshot";
|
|
|
|
|
self.isCalibrating = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
sendCalibrationFinish() {
|
|
|
|
|
const self = this;
|
|
|
|
|
let connection_string = "/api/settings/endCalibration";
|
|
|
|
|
let data = {};
|
|
|
|
|
data['squareSize'] = this.squareSize;
|
2020-01-25 23:11:02 +02:00
|
|
|
self.axios.post("http://" + this.$address + connection_string, data).then((response) => {
|
|
|
|
|
if (response.status === 200) {
|
|
|
|
|
self.snackbar = {
|
|
|
|
|
color: "success",
|
|
|
|
|
text: "calibration successful. \n" +
|
|
|
|
|
"accuracy: " + response.data['accuracy'].toFixed(5)
|
|
|
|
|
};
|
Add solvePNP, 3d tab on the UI, and some other misc bug fixes (#35)
* Rebase solvePNP on master
* added 3D tab minimap and csv reader
* More solvePNP
* Create draw pipe for pnp data
* SolvePNP piping work
* Move sorting into solvepnppipe
* Create calibration pipeline
* Update CalibrateSolvePNPPipeline.java
* add camera tilt angle
* Add calibration slider and snapshot button to 3D view
* Mirror updates in the socket handler
* add 3d calibration mode to the pipeline manager
* created calibration functions in ui and backend
* Start plumbing calibration
* Add snapshot and other handling to the RequestHandler
* added select resolution before starting calibration
* Rename solvePNPPipe to bounding box solve pnp pipe
* Update BoundingBoxSolvePNPPipe.java
* Add Mat serializer and CameraCalibrationConfig
* Begun calibration saving, fixed UI/Backend snapshot count mismatch
* Add (unplumbed) option to set checkerboard size
This will allow users to change the units their calibration is in
* Create chessboard.png
* Fix calibration NPE
* changed string serialization to a json send
* bug fixed cancellation button
* Fix spelling of snapshot in 3d.vue
* Plumb resolution change
* Set resolution during config, start on config serialization
* Update .gitignore
* Config fixes
* Start transition away from cvpipeline3d
* fix NPE on uncalibrated cameras
* clear list on fail
* Fix video mode index error
* ignore getters in camera calibration config
* Create json constructor for jsonmat
* get solvePNP mostly returning sane values
* Fix solvePNP bug and add unit test
* FIx calibration mat truncation
* added capture amount model upload and minimap data
* Standardize on meters in calibration and bounding box
* fix json out of bounds and handle null calibration more gracefully
* don't put text on calibrate image, go back to inches
* convert distance to meters
this means calibration will need to be in inches
* Actually save raw contor
* Update GroupContoursPipe.java
* Add all calibration return to camera capture
* hard code 2019 target
* bugfixed draw2d added fail calib popup, merge end and cancel
added the res index to the calib start
* Clarify error message and draw more fancy rectangles
* Cleanup memory in solvepnp
* re did minimap component
* fix npe if left/right is null
* remove references to 2d
* try-catch running the current pipeline
* Add method to find corners using the harris corner detector
* Possibly fix left/right missmatch
* Fix 3D Tab error
* FIx file permissions, mat serializer adjustments
* fixed mini map for field coordinates
* mini map changes fov
* Update SolvePNPPipe.java
* get rid of target corners
* some memory leak fixes
* fixed mini map location
* added position under minimap
* changed player fov look
* put all targets in the web send
* re did target send to ui added target tables, bugfix calibration
* fixed y position
* Add tilt angle to capture properties
* maybe fix y axis in minimap
* Add square size to onCalibrationEnding
* Possibly add square size to UI
* fix NPE with pitch
* Fix bug with sending multiple targets
* Only instantiate 3d stuff if we are in 3d mode
* Fix array list exceptions
* Fix bug in sort contors
list was truncated too early
* added download chess, tilt setting and ordinal tilt,
* added square size connection
* removed unused code
* Update pom version to 2.1-RELEASE
* Send camera calibrations to UI
* Stream pose list to a LIst
* Only stream necessary parts of the aux list entry
* Make broadcastMessage synchronized to prevent ConcurrentModificationExceptions
* added fps counter changed squaresize steps bug fixes in tables
* bugfix camera settings cam wont change
Authored-by: oriagranat9 <oriagranat9@gmail.com>
2019-12-31 04:53:20 -08:00
|
|
|
self.snack = true;
|
|
|
|
|
}
|
|
|
|
|
self.isCalibrating = false;
|
|
|
|
|
self.hasEnough = false;
|
|
|
|
|
self.snapshotAmount = 0;
|
|
|
|
|
self.calibrationModeButton.text = "Start Calibration";
|
|
|
|
|
self.cancellationModeButton.text = "Cancel Calibration";
|
|
|
|
|
self.cancellationModeButton.color = "red";
|
|
|
|
|
}
|
2020-01-25 23:11:02 +02:00
|
|
|
).catch(() => {
|
|
|
|
|
self.snackbar = {
|
|
|
|
|
color: "error",
|
|
|
|
|
text: "calibration failed"
|
|
|
|
|
};
|
|
|
|
|
self.snack = true;
|
|
|
|
|
self.isCalibrating = false;
|
|
|
|
|
self.hasEnough = false;
|
|
|
|
|
self.snapshotAmount = 0;
|
|
|
|
|
self.calibrationModeButton.text = "Start Calibration";
|
|
|
|
|
self.cancellationModeButton.text = "Cancel Calibration";
|
|
|
|
|
self.cancellationModeButton.color = "red";
|
|
|
|
|
});
|
Add solvePNP, 3d tab on the UI, and some other misc bug fixes (#35)
* Rebase solvePNP on master
* added 3D tab minimap and csv reader
* More solvePNP
* Create draw pipe for pnp data
* SolvePNP piping work
* Move sorting into solvepnppipe
* Create calibration pipeline
* Update CalibrateSolvePNPPipeline.java
* add camera tilt angle
* Add calibration slider and snapshot button to 3D view
* Mirror updates in the socket handler
* add 3d calibration mode to the pipeline manager
* created calibration functions in ui and backend
* Start plumbing calibration
* Add snapshot and other handling to the RequestHandler
* added select resolution before starting calibration
* Rename solvePNPPipe to bounding box solve pnp pipe
* Update BoundingBoxSolvePNPPipe.java
* Add Mat serializer and CameraCalibrationConfig
* Begun calibration saving, fixed UI/Backend snapshot count mismatch
* Add (unplumbed) option to set checkerboard size
This will allow users to change the units their calibration is in
* Create chessboard.png
* Fix calibration NPE
* changed string serialization to a json send
* bug fixed cancellation button
* Fix spelling of snapshot in 3d.vue
* Plumb resolution change
* Set resolution during config, start on config serialization
* Update .gitignore
* Config fixes
* Start transition away from cvpipeline3d
* fix NPE on uncalibrated cameras
* clear list on fail
* Fix video mode index error
* ignore getters in camera calibration config
* Create json constructor for jsonmat
* get solvePNP mostly returning sane values
* Fix solvePNP bug and add unit test
* FIx calibration mat truncation
* added capture amount model upload and minimap data
* Standardize on meters in calibration and bounding box
* fix json out of bounds and handle null calibration more gracefully
* don't put text on calibrate image, go back to inches
* convert distance to meters
this means calibration will need to be in inches
* Actually save raw contor
* Update GroupContoursPipe.java
* Add all calibration return to camera capture
* hard code 2019 target
* bugfixed draw2d added fail calib popup, merge end and cancel
added the res index to the calib start
* Clarify error message and draw more fancy rectangles
* Cleanup memory in solvepnp
* re did minimap component
* fix npe if left/right is null
* remove references to 2d
* try-catch running the current pipeline
* Add method to find corners using the harris corner detector
* Possibly fix left/right missmatch
* Fix 3D Tab error
* FIx file permissions, mat serializer adjustments
* fixed mini map for field coordinates
* mini map changes fov
* Update SolvePNPPipe.java
* get rid of target corners
* some memory leak fixes
* fixed mini map location
* added position under minimap
* changed player fov look
* put all targets in the web send
* re did target send to ui added target tables, bugfix calibration
* fixed y position
* Add tilt angle to capture properties
* maybe fix y axis in minimap
* Add square size to onCalibrationEnding
* Possibly add square size to UI
* fix NPE with pitch
* Fix bug with sending multiple targets
* Only instantiate 3d stuff if we are in 3d mode
* Fix array list exceptions
* Fix bug in sort contors
list was truncated too early
* added download chess, tilt setting and ordinal tilt,
* added square size connection
* removed unused code
* Update pom version to 2.1-RELEASE
* Send camera calibrations to UI
* Stream pose list to a LIst
* Only stream necessary parts of the aux list entry
* Make broadcastMessage synchronized to prevent ConcurrentModificationExceptions
* added fps counter changed squaresize steps bug fixes in tables
* bugfix camera settings cam wont change
Authored-by: oriagranat9 <oriagranat9@gmail.com>
2019-12-31 04:53:20 -08:00
|
|
|
}
|
2019-09-28 21:42:04 +03:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="" scoped>
|
2019-10-29 23:58:06 +02:00
|
|
|
|
2019-09-28 21:42:04 +03:00
|
|
|
</style>
|