diff --git a/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_15-59-08.xml b/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_15-59-08.xml new file mode 100644 index 0000000000000000000000000000000000000000..3e9970eb4c06a3066152b94121c1f4657665f8ae --- /dev/null +++ b/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_15-59-08.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<ArucoCameraParameters xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <CalibrationDateTime>2021-03-09T15:59:08.0512312+01:00</CalibrationDateTime> + <CameraNumber>1</CameraNumber> + <ImageHeights> + <int>960</int> + </ImageHeights> + <ImageWidths> + <int>1280</int> + </ImageWidths> + <CalibrationFlagsValue>256</CalibrationFlagsValue> + <FixAspectRatioValue>0</FixAspectRatioValue> + <ReprojectionErrors> + <double>0.89586298412416676</double> + </ReprojectionErrors> + <CameraMatricesType>CV_64F</CameraMatricesType> + <CameraMatricesValues> + <ArrayOfArrayOfDouble> + <ArrayOfDouble> + <double>1279.9448660607227</double> + <double>0</double> + <double>670.97194700978923</double> + </ArrayOfDouble> + <ArrayOfDouble> + <double>0</double> + <double>1284.6184330276076</double> + <double>471.209869484367</double> + </ArrayOfDouble> + <ArrayOfDouble> + <double>0</double> + <double>0</double> + <double>1</double> + </ArrayOfDouble> + </ArrayOfArrayOfDouble> + </CameraMatricesValues> + <DistCoeffsType>CV_64F</DistCoeffsType> + <DistCoeffsValues> + <ArrayOfArrayOfDouble> + <ArrayOfDouble> + <double>-0.045799425064689127</double> + <double>0.5820918389282751</double> + <double>-0.0030995472753458731</double> + <double>0.0049251216711557223</double> + <double>-1.5633276941605898</double> + </ArrayOfDouble> + </ArrayOfArrayOfDouble> + </DistCoeffsValues> + <OmnidirXisType>CV_8U</OmnidirXisType> + <OmnidirXisValues> + <ArrayOfArrayOfDouble /> + </OmnidirXisValues> +</ArucoCameraParameters> \ No newline at end of file diff --git a/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_15-59-08.xml.meta b/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_15-59-08.xml.meta new file mode 100644 index 0000000000000000000000000000000000000000..578dba06273d630fad68027556b18436c538f2c0 --- /dev/null +++ b/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_15-59-08.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 70d2260e70d536146a97ffe48edb1f39 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_17-37-58.xml b/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_17-37-58.xml new file mode 100644 index 0000000000000000000000000000000000000000..3c3a90d35f12353c9b5826ea8965410e66afe703 --- /dev/null +++ b/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_17-37-58.xml @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="utf-8"?> +<ArucoCameraParameters xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <CalibrationDateTime>2021-03-09T17:37:58.5654759+01:00</CalibrationDateTime> + <CameraNumber>1</CameraNumber> + <ImageHeights> + <int>960</int> + </ImageHeights> + <ImageWidths> + <int>1280</int> + </ImageWidths> + <CalibrationFlagsValue>256</CalibrationFlagsValue> + <FixAspectRatioValue>0</FixAspectRatioValue> + <ReprojectionErrors> + <double>0.308045019292313</double> + </ReprojectionErrors> + <CameraMatricesType>CV_64F</CameraMatricesType> + <CameraMatricesValues> + <ArrayOfArrayOfDouble> + <ArrayOfDouble> + <double>1471.3858809603546</double> + <double>0</double> + <double>653.550972674778</double> + </ArrayOfDouble> + <ArrayOfDouble> + <double>0</double> + <double>1469.774763904695</double> + <double>495.8477014870985</double> + </ArrayOfDouble> + <ArrayOfDouble> + <double>0</double> + <double>0</double> + <double>1</double> + </ArrayOfDouble> + </ArrayOfArrayOfDouble> + </CameraMatricesValues> + <DistCoeffsType>CV_64F</DistCoeffsType> + <DistCoeffsValues> + <ArrayOfArrayOfDouble> + <ArrayOfDouble> + <double>-0.039989135895226728</double> + <double>1.5633596681965716</double> + <double>-0.00037515916798020111</double> + <double>0.0010915746720105916</double> + <double>-5.2755667893774305</double> + </ArrayOfDouble> + </ArrayOfArrayOfDouble> + </DistCoeffsValues> + <OmnidirXisType>CV_8U</OmnidirXisType> + <OmnidirXisValues> + <ArrayOfArrayOfDouble /> + </OmnidirXisValues> +</ArucoCameraParameters> \ No newline at end of file diff --git a/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_17-37-58.xml.meta b/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_17-37-58.xml.meta new file mode 100644 index 0000000000000000000000000000000000000000..26dd4053da4b8bc1cba8aa88f40a0d817cbc9817 --- /dev/null +++ b/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-03-09_17-37-58.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2ab19c08990cd7549b37d79414a2e7b8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ArucoUnity/CameraParameters/old.meta b/Assets/ArucoUnity/CameraParameters/old.meta new file mode 100644 index 0000000000000000000000000000000000000000..aaf32f501b0991dbac57d24dc9c017f98d91943c --- /dev/null +++ b/Assets/ArucoUnity/CameraParameters/old.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b9d6be9ececbde4f8c996d4f0c41c99 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-02-09_17-16-52.xml b/Assets/ArucoUnity/CameraParameters/old/Logitech HD Webcam C270 - 2021-02-09_17-16-52.xml similarity index 100% rename from Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-02-09_17-16-52.xml rename to Assets/ArucoUnity/CameraParameters/old/Logitech HD Webcam C270 - 2021-02-09_17-16-52.xml diff --git a/Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-02-09_17-16-52.xml.meta b/Assets/ArucoUnity/CameraParameters/old/Logitech HD Webcam C270 - 2021-02-09_17-16-52.xml.meta similarity index 100% rename from Assets/ArucoUnity/CameraParameters/Logitech HD Webcam C270 - 2021-02-09_17-16-52.xml.meta rename to Assets/ArucoUnity/CameraParameters/old/Logitech HD Webcam C270 - 2021-02-09_17-16-52.xml.meta diff --git a/Assets/ArucoUnity/Scenes/CalibrateCamera.unity b/Assets/ArucoUnity/Scenes/CalibrateCamera.unity index a9ed8ed66d0acb2909d7d81a70e5c3e47f73ff19..d9f9cfb9176743f4bee27fc0ba406e8c0ab9b898 100644 --- a/Assets/ArucoUnity/Scenes/CalibrateCamera.unity +++ b/Assets/ArucoUnity/Scenes/CalibrateCamera.unity @@ -259,12 +259,12 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: dictionaryName: 0 - markerSideLength: 0.02 + markerSideLength: 0.018571 markerBorderBits: 1 marginsLength: 0 squaresNumberX: 7 squaresNumberY: 5 - squareSideLength: 0.03 + squareSideLength: 0.027857 --- !u!4 &351674421 Transform: m_ObjectHideFlags: 0 diff --git a/Assets/ArucoUnity/Scripts/Cameras/Displays/ArucoCameraDisplay.cs b/Assets/ArucoUnity/Scripts/Cameras/Displays/ArucoCameraDisplay.cs index 76a6d67f19bb0215e81fd18a41ad5f318efa09c9..6504677e0b3eaf59a7bda6d399c74cbaa8c39c6f 100644 --- a/Assets/ArucoUnity/Scripts/Cameras/Displays/ArucoCameraDisplay.cs +++ b/Assets/ArucoUnity/Scripts/Cameras/Displays/ArucoCameraDisplay.cs @@ -154,6 +154,8 @@ namespace ArucoUnity.Cameras.Displays Vector2 cameraF = ArucoCameraUndistortion.RectifiedCameraMatrices[cameraId].GetCameraFocalLengths(); float fovY = 2f * Mathf.Atan(0.5f * imageHeight / cameraF.y) * Mathf.Rad2Deg; + print(cameraF.y); + print(imageHeight); Cameras[cameraId].fieldOfView = fovY; BackgroundCameras[cameraId].fieldOfView = fovY; } diff --git a/Assets/ArucoUnity/Scripts/Utilities/WebcamController.cs b/Assets/ArucoUnity/Scripts/Utilities/WebcamController.cs index d60b92bfc5afe36d49b017195b89a08128c84be3..d3dc11271ef75cea3fec2ee33fad3cd6d6ceb06b 100644 --- a/Assets/ArucoUnity/Scripts/Utilities/WebcamController.cs +++ b/Assets/ArucoUnity/Scripts/Utilities/WebcamController.cs @@ -102,8 +102,9 @@ namespace ArucoUnity.Cameras foreach (var webcamId in Ids) { var webcamDevice = WebCamTexture.devices[webcamId]; + Devices.Add(webcamDevice); - Textures.Add(new WebCamTexture(webcamDevice.name)); + Textures.Add(new WebCamTexture(webcamDevice.name, 1280, 960)); } } diff --git a/Assets/Scenes/Main.unity b/Assets/Scenes/Main.unity index 43665c7f400958ca66560db811d6da08a4011828..1641f14259b6b51debdb5368d4f011571be6be43 100644 --- a/Assets/Scenes/Main.unity +++ b/Assets/Scenes/Main.unity @@ -2396,7 +2396,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 0 + m_IsActive: 1 --- !u!64 &1015708696 MeshCollider: m_ObjectHideFlags: 0 @@ -2468,8 +2468,8 @@ Transform: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1015708695} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} + m_LocalPosition: {x: -0.1, y: 0, z: -1.1} + m_LocalScale: {x: 0.42, y: 0.1, z: 0.66} m_Children: [] m_Father: {fileID: 782819392} m_RootOrder: 6 diff --git a/Assets/WebcamCalibration.cs b/Assets/WebcamCalibration.cs index d32b697bbea24fa22229bc2a457e94b0c2db95d2..81c86cde0d4aa9af601f000405cc3b32c70e6079 100644 --- a/Assets/WebcamCalibration.cs +++ b/Assets/WebcamCalibration.cs @@ -22,10 +22,12 @@ public class WebcamCalibration : MonoBehaviour private List<ConfigurableController> ArucoWebcamScripts; private bool doCalibrate; private List<Quaternion> calibrationData; + private Quaternion calibratedRotation; // Start is called before the first frame update void Start() { + calibratedRotation = Quaternion.Euler(new Vector3(0, 180f, 0)); doCalibrate = false; calibrationData = new List<Quaternion>(); @@ -125,13 +127,13 @@ public class WebcamCalibration : MonoBehaviour float angleValue2 = Quaternion.Angle(angle2, Quaternion.Euler(new Vector3(0, 180f, 0))); return angleValue1.CompareTo(angleValue2); }); + + updateRotationFromValues(); } } - // Update is called once per frame - void Update() + public void updateRotationFromValues() { - Quaternion calibratedRotation = Quaternion.Euler(new Vector3(0, 180f, 0)); if (calibrationData.Count > 0) { //get median of all values @@ -146,10 +148,14 @@ public class WebcamCalibration : MonoBehaviour WebcamInfosText.text = "Webcam Calibration \n \n" + "Positions tracked : " + calibrationData.Count + "\n" + - "Deviation : " + System.Math.Round(meanDeviation/calibrationData.Count, 4) + "� \n" + + "Deviation : " + System.Math.Round(meanDeviation / calibrationData.Count, 4) + "� \n" + "(R) Reset"; } + } + // Update is called once per frame + void Update() + { //keep ignoring OT rigid body rotation WebcamDisplay.transform.rotation = calibratedRotation; ARucoWebcam.transform.rotation = calibratedRotation; @@ -172,6 +178,35 @@ public class WebcamCalibration : MonoBehaviour { switchCalibrationAruco(); } - + + if (Input.GetKey(KeyCode.DownArrow)) + { + calibratedRotation = Quaternion.Euler(new Vector3( + calibratedRotation.eulerAngles.x + 0.01f, + calibratedRotation.eulerAngles.y, + calibratedRotation.eulerAngles.z)); + } + else if (Input.GetKey(KeyCode.UpArrow)) + { + calibratedRotation = Quaternion.Euler(new Vector3( + calibratedRotation.eulerAngles.x - 0.01f, + calibratedRotation.eulerAngles.y, + calibratedRotation.eulerAngles.z)); + } + else if (Input.GetKey(KeyCode.LeftArrow)) + { + calibratedRotation = Quaternion.Euler(new Vector3( + calibratedRotation.eulerAngles.x, + calibratedRotation.eulerAngles.y - 0.01f, + calibratedRotation.eulerAngles.z)); + } + else if (Input.GetKey(KeyCode.RightArrow)) + { + calibratedRotation = Quaternion.Euler(new Vector3( + calibratedRotation.eulerAngles.x, + calibratedRotation.eulerAngles.y + 0.01f, + calibratedRotation.eulerAngles.z)); + } + } } diff --git a/Assets/WebcamVisionTexture.cs b/Assets/WebcamVisionTexture.cs index cddef5ac133a1fc1ece99a8aa742ec9e0cb18b3d..b1c7a57593605477e5ec1ecae6eadb87fe0b5ea0 100644 --- a/Assets/WebcamVisionTexture.cs +++ b/Assets/WebcamVisionTexture.cs @@ -52,9 +52,12 @@ public class WebcamVisionTexture : MonoBehaviour public void startCam() { - capture = new VideoCapture(0); - capture.Set(21, 0.25); //disable auto exposure - capture.Set(15, 150); //fix exposure + capture = new VideoCapture(WebcamID); + capture.Set(VideoCaptureProperties.FrameWidth, 10000); + capture.Set(VideoCaptureProperties.FrameHeight, 10000); + + capture.Set(VideoCaptureProperties.AutoExposure, 0.25); //disable auto exposure + capture.Set(VideoCaptureProperties.Exposure, 150); //fix exposure BackgroundDisplay.GetComponent<Renderer>().material.mainTexture = backgroundText; } @@ -180,7 +183,7 @@ public class WebcamVisionTexture : MonoBehaviour diffImage.Dispose(); grayDiff.Dispose(); maskImg.Dispose(); - //smaskedImg.Dispose(); + maskedImg.Dispose(); foregroundText.SetPixels32(c); foregroundText.Apply(); diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 804d745d372c68384a35694caabbc1ddf5da1bef..535bbf2bbd6b2c6b70b7b5a7f723414ffaa24fdb 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -6,31 +6,31 @@ EditorUserSettings: serializedVersion: 4 m_ConfigSettings: RecentlyUsedScenePath-0: - value: 22424703114646741d0b020126686a1e1f030165082d2b3f621d0f32e1eb3d36e5a802fbe63934353705dc3f01300471e704001fef + value: 22424703114646741d0b020126686a1e1f030165082d2b3f62041c21e9e52607c6e222ece42e302e762fee2e0f3b131bf71e0c08e2041838120bf30b5fea1e1a05dc flags: 0 RecentlyUsedScenePath-1: - value: 22424703114646741d0b020126686a1e1f030165082d2b3f62041c21e9e52607c6e222ece42e302e762fee2e0f3b131bf71e0c08e2041838120bf30b5fea1e1a05dc + value: 22424703114646741d0b020126686a1e1f030165082d2b3f620e0f32fbf33739eee279cef53b262f3a03e339373d0431f7441c05ff1f13 flags: 0 RecentlyUsedScenePath-2: - value: 22424703114646741d0b020126686a1e1f030165082d2b3f620e0f32fbf33739eee279cef53b262f3a03e339373d0431f7441c05ff1f13 + value: 22424703114646741d0b020126686a1e1f030165082d2b3f620d1230f7ed3136f6d805eae63431392b4dcb33072b0c3afc1e3a08f705040e033dfe0b1ffa5e061fcc0cdc flags: 0 RecentlyUsedScenePath-3: - value: 22424703114646741d0b020126686a1e1f030165082d2b3f620d1230f7ed3136f6d805eae63431392b4dcb33072b0c3afc1e3a08f705040e033dfe0b1ffa5e061fcc0cdc + value: 22424703114646741d0b020126686a1e1f030165082d2b3f62051231e0f97b14ede534f0d4393a323c4cfa320d2a18 flags: 0 RecentlyUsedScenePath-4: - value: 22424703114646741d0b020126686a1e1f030165082d2b3f62051231e0f97b14ede534f0d4393a323c4cfa320d2a18 + value: 22424703114646741d0b020126686a1e1f030165082d2b3f620d1230f7ed3136f6d805eae63431392b4dcb33072b0c3afc1e3a08f705040e0322f20c13e65e061fcc0cdc flags: 0 RecentlyUsedScenePath-5: - value: 22424703114646741d0b020126686a1e1f030165082d2b3f620d1230f7ed3136f6d805eae63431392b4dcb33072b0c3afc1e3a08f705040e0322f20c13e65e061fcc0cdc + value: 22424703114646741d0b020126686a1e1f030165082d2b3f620f1c30e7df103df6e235fde828701a3801ea18012a043ce6051b38f50e040e5f1bf30705e6 flags: 0 RecentlyUsedScenePath-6: - value: 22424703114646741d0b020126686a1e1f030165082d2b3f620f1c30e7df103df6e235fde828701a3801ea18012a043ce6051b38f50e040e5f1bf30705e6 + value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23663b3aece13811c9a809cdc217100f7624cd1e2d154e17f70b0d4bd30d0c0e121af21c5fea1e1a05dc flags: 0 RecentlyUsedScenePath-7: - value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23663b3aece13811c9a809cdc217100f7624cd1e2d154e17f70b0d4bd30d0c0e121af21c5fea1e1a05dc + value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23663b3aece13811c9a809cdc217100f7624cd1e2d154e17f70b0d4bd30d0c0e121af21c51b738121fc158e615c60b0ec41510cbdf0e98adc0d8ddfec1 flags: 0 RecentlyUsedScenePath-8: - value: 224247031146466b011b0b2b1e30102219180c07233c2f3f23663b3aece13811c9a809cdc217100f7624cd1e2d154e17f70b0d4bd30d0c0e121af21c51b738121fc158e615c60b0ec41510cbdf0e98adc0d8ddfec1 + value: 224247031146467a1f1b0f2d252d56040f582b2929262323620a1c3febe22639f6e215e8ea3f2d3d7717e1351027 flags: 0 RecentlyUsedScenePath-9: value: 22424703114646680e0b0227036c72111f19563f22213229