प्रौद्योगिकी साझेदारी

MechMind संरचितं प्रकाशकॅमेराप्रतिबिम्बं SDK पायथन् आह्वानं गृह्णाति

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

परीक्षण प्रभाव

मेक-मन संरचित प्रकाश कॅमेरा

मेक् माइण्ड् इत्यस्य संरचिताः प्रकाशकॅमेराः विशेषतः मेक्-आइ श्रृङ्खला औद्योगिक-स्तरीयाः उच्च-सटीक-3D-कैमराः सन्ति येषां उपयोगः औद्योगिकस्वचालनम्, रोबोट्-सञ्चारः, गुणवत्तानिरीक्षणम् इत्यादिषु क्षेत्रेषु व्यापकरूपेण भवति मेक माइण्ड् संरचितस्य प्रकाशकॅमेरा इत्यस्य विस्तृतं विश्लेषणं निम्नलिखितम् अस्ति ।

1. उत्पादस्य अवलोकनम्

मेक माइण्ड् इत्यस्य संरचितप्रकाशकैमराः, यथा मेक-आइ पीआरओ, उच्चगतिसंरचितप्रकाशप्रौद्योगिक्याः उपयोगं कुर्वन्ति येन उच्चसटीकतां गतिं च निर्वाहयन् उत्तमं परिवेशप्रकाशप्रतिरोधं प्रदातुं शक्यते एतेषु कॅमेरासु प्रायः समृद्धदृष्टि-एल्गोरिदम्-मॉड्यूलः भवति तथा च अनेकेषु विशिष्टेषु व्यावहारिक-परिदृश्येषु प्रयोक्तुं शक्यते, यथा निर्माण-कार्य-खण्डस्य लोडिंग्-अनलोडिंग्, उच्च-सटीक-स्थापनम्, संयोजनं, पेच-कठनीकरणं, शैक्षणिक-अनुसन्धानं च

2. कार्यसिद्धान्तः

मेक् माइण्ड् इत्यस्य संरचितप्रकाशकॅमेरा मुख्यतया संरचितप्रकाशप्रक्षेपणस्य सिद्धान्तस्य उपयोगं करोति । ते विशिष्टानि प्रतिमानाः (यथा लेसरद्वारा उत्पद्यमानं संरचितप्रकाशं) छायाचित्रं क्रियमाणस्य वस्तुनः उपरि प्रक्षेपयन्ति, तस्य वस्तुनः रूपरेखा आकारः च कॅमेराद्वारा गृह्यते एषा प्रौद्योगिक्याः वस्तुनः उपरि प्रकाशस्य प्रतिबिम्बस्य अपवर्तनस्य च विश्लेषणं कृत्वा वस्तुनः स्थितिः आकारः च समीचीनतया गणयितुं शक्नोति ।

3. उत्पादविशेषताः

  1. उच्च परिशुद्धता : मेक माइण्ड् इत्यस्य संरचितप्रकाशकॅमेरा अल्पकाले एव उच्चसटीकत्रिविमप्रतिमानं प्राप्तुं शक्नोति । यथा, Mech-Eye PRO इत्यस्य Z-दिशायाः एकबिन्दुपुनरावृत्तिक्षमता 0.05mm (1.0m इत्यत्र) यावत् प्राप्तुं शक्नोति ।
  2. उच्चवेगः: कॅमेरे द्रुतगतिना आँकडा-अधिग्रहणस्य, संसाधनस्य च क्षमता अस्ति उदाहरणार्थं, Mech-Eye PRO इत्यस्य विशिष्टः अधिग्रहणसमयः 0.3~0.6 सेकण्ड् भवति ।
  3. विशालं दृश्यक्षेत्रं विशालं क्षेत्रगहनं च: केचन मॉडल्, यथा Mech-Eye Deep 3D कॅमेरा, बृहत् दृश्यक्षेत्रस्य बृहत् क्षेत्रगहनतायाः च लक्षणं भवति, तथा च सामान्य-स्टैकिंग् प्रकारेषु विविधेषु प्रयोक्तुं शक्यते
  4. परिवेशप्रकाशस्य प्रति प्रबलः प्रतिरोधः: Mech Mind इत्यस्य संरचितप्रकाशकॅमेरा अद्यापि प्रबलपरिवेशप्रकाशहस्तक्षेपस्य (यथा >20000lx) अन्तर्गतं उत्तमं इमेजिंगप्रभावं निर्वाहयितुं शक्नोति।
  5. लचीला परिनियोजनम्: कैमरा देशे विदेशे च अधिकांश मुख्यधारायां रोबोट्-ब्राण्ड्-अनुकूलितः अस्ति, अनुकूलित-रोबोट्-इत्यस्य सम्पूर्णं गति-नियन्त्रणं प्राप्तुं च शक्नोति ।
  6. मुक्तं उपयोगाय च सुलभम्: उपयोक्तृणां गौणविकासस्य एकीकरणस्य च सुविधायै कॅमेरा मित्रवतः उपयोक्तृ-अन्तरफलकं, मुक्त-एपिआइ च प्रदाति ।
  7. स्थिरं विश्वसनीयं च: Mech Mind इत्यस्य संरचितप्रकाशकॅमेराणां उच्चस्थिरता विश्वसनीयता च भवति, यथा Mech-Eye PRO इत्यस्य विफलतानां मध्ये औसतसमयः (MTBF) ≥ 40,000 घण्टाः

4. अनुप्रयोगक्षेत्राणि

मेक् माइण्ड् इत्यस्य संरचितप्रकाशकॅमेराणां उपयोगः वाहन, विमानन, मोल्ड् निर्माण, औद्योगिकस्वचालनम् इत्यादिषु क्षेत्रेषु बहुधा भवति । वाहनक्षेत्रे ते शीघ्रं सटीकतया च कारस्य शरीरस्य पृष्ठस्य आकारसूचनाः प्राप्तुं शक्नुवन्ति; .

5. सारांशः

मेक माइण्ड् इत्यस्य संरचितप्रकाशकैमरा औद्योगिकस्वचालनम्, रोबोट् नेविगेशन इत्यादिषु क्षेत्रेषु महत्त्वपूर्णां भूमिकां निर्वहन्ति यतोहि तेषां उच्चसटीकता, उच्चगतिः, विशालदृश्यक्षेत्रं, विशालक्षेत्रगहनता, परिवेशप्रकाशस्य प्रति प्रबलप्रतिरोधः, स्थिरता च विश्वसनीयता च भवति प्रौद्योगिक्याः निरन्तरं उन्नतिः, अनुप्रयोगपरिदृश्यानां निरन्तरविस्तारेण च मेक माइण्ड् इत्यस्य संरचितप्रकाशकैमराः अधिकक्षेत्रेषु स्वस्य अद्वितीयं मूल्यं प्रदर्शयिष्यन्ति इति अपेक्षा अस्ति

पायथन् विकासवातावरणं स्थापयन्तु

आभासी वातावरणं रचयन्तु

opencv-python संकुलं डाउनलोड् कुर्वन्तु

Mecamander Camera Capture Package इत्येतत् डाउनलोड् कुर्वन्तु

  1. pip install MechEyeAPI
  2. pip install python-opencv

चरणविश्लेषणम्

कॅमेरा संयोजयन्तु

  1. def ConnectCamera(self):
  2. camera_infos = Camera.discover_cameras()
  3. if len(camera_infos) != 1:
  4. print("相机连接出现异常,检查网线")
  5. return
  6. error_status = self.camera.connect(camera_infos[0])
  7. if not error_status.is_ok():
  8. show_error(error_status)
  9. return

कॅमेरा विच्छेदं कुर्वन्तु

  1. def DisConnectCamera(self):
  2. self.camera.disconnect()
  3. print("Disconnected from the camera successfully.")

2D चित्राणि 3D चित्राणि च संग्रहयन्तु

  1. def connect_and_capture(self):
  2. # Obtain the 2D image resolution and the depth map resolution of the camera.
  3. resolution = CameraResolutions()
  4. show_error(self.camera.get_camera_resolutions(resolution))
  5. print_camera_resolution(resolution)
  6. time1 = time.time()
  7. # Obtain the 2D image.
  8. frame2d = Frame2D()
  9. show_error(self.camera.capture_2d(frame2d))
  10. row, col = 222, 222
  11. color_map = frame2d.get_color_image()
  12. print("The size of the 2D image is {} (width) * {} (height).".format(
  13. color_map.width(), color_map.height()))
  14. rgb = color_map[row * color_map.width() + col]
  15. print("The RGB values of the pixel at ({},{}) is R:{},G:{},B{}n".
  16. format(row, col, rgb.b, rgb.g, rgb.r))
  17. Image2d = color_map.data()
  18. time2 = time.time()
  19. print('grab 2d image : '+str((time2-time1)*1000)+'ms')
  20. # if not confirm_capture_3d():
  21. # return
  22. # Obtain the depth map.
  23. frame3d = Frame3D()
  24. show_error(self.camera.capture_3d(frame3d))
  25. depth_map = frame3d.get_depth_map()
  26. print("The size of the depth map is {} (width) * {} (height).".format(
  27. depth_map.width(), depth_map.height()))
  28. depth = depth_map[row * depth_map.width() + col]
  29. print("The depth value of the pixel at ({},{}) is depth :{}mmn".
  30. format(row, col, depth.z))
  31. Image3d = depth_map.data()
  32. time3 = time.time()
  33. print('grab depth image : '+str((time3-time2)*1000)+'ms')
  34. return Image2d,Image3d
  35. # Obtain the point cloud.
  36. # point_cloud = frame3d.get_untextured_point_cloud()
  37. # print("The size of the point cloud is {} (width) * {} (height).".format(
  38. # point_cloud.width(), point_cloud.height()))
  39. # point_xyz = point_cloud[row * depth_map.width() + col]
  40. # print("The coordinates of the point corresponding to the pixel at ({},{}) is X: {}mm , Y: {}mm, Z: {}mmn".
  41. # format(row, col, point_xyz.x, point_xyz.y, point_xyz.z))

सम्पूर्ण परीक्षण कोड

  1. # With this sample, you can connect to a camera and obtain the 2D image, depth map, and point cloud data.
  2. import time
  3. from mecheye.shared import *
  4. from mecheye.area_scan_3d_camera import *
  5. from mecheye.area_scan_3d_camera_utils import *
  6. import cv2
  7. class ConnectAndCaptureImages(object):
  8. def __init__(self):
  9. self.camera = Camera()
  10. def connect_and_capture(self):
  11. # Obtain the 2D image resolution and the depth map resolution of the camera.
  12. resolution = CameraResolutions()
  13. show_error(self.camera.get_camera_resolutions(resolution))
  14. print_camera_resolution(resolution)
  15. time1 = time.time()
  16. # Obtain the 2D image.
  17. frame2d = Frame2D()
  18. show_error(self.camera.capture_2d(frame2d))
  19. row, col = 222, 222
  20. color_map = frame2d.get_color_image()
  21. print("The size of the 2D image is {} (width) * {} (height).".format(
  22. color_map.width(), color_map.height()))
  23. rgb = color_map[row * color_map.width() + col]
  24. print("The RGB values of the pixel at ({},{}) is R:{},G:{},B{}n".
  25. format(row, col, rgb.b, rgb.g, rgb.r))
  26. Image2d = color_map.data()
  27. time2 = time.time()
  28. print('grab 2d image : '+str((time2-time1)*1000)+'ms')
  29. # if not confirm_capture_3d():
  30. # return
  31. # Obtain the depth map.
  32. frame3d = Frame3D()
  33. show_error(self.camera.capture_3d(frame3d))
  34. depth_map = frame3d.get_depth_map()
  35. print("The size of the depth map is {} (width) * {} (height).".format(
  36. depth_map.width(), depth_map.height()))
  37. depth = depth_map[row * depth_map.width() + col]
  38. print("The depth value of the pixel at ({},{}) is depth :{}mmn".
  39. format(row, col, depth.z))
  40. Image3d = depth_map.data()
  41. time3 = time.time()
  42. print('grab depth image : '+str((time3-time2)*1000)+'ms')
  43. return Image2d,Image3d
  44. # Obtain the point cloud.
  45. # point_cloud = frame3d.get_untextured_point_cloud()
  46. # print("The size of the point cloud is {} (width) * {} (height).".format(
  47. # point_cloud.width(), point_cloud.height()))
  48. # point_xyz = point_cloud[row * depth_map.width() + col]
  49. # print("The coordinates of the point corresponding to the pixel at ({},{}) is X: {}mm , Y: {}mm, Z: {}mmn".
  50. # format(row, col, point_xyz.x, point_xyz.y, point_xyz.z))
  51. def main(self):
  52. # List all available cameras and connect to a camera by the displayed index.
  53. if find_and_connect(self.camera):
  54. d2,d3 = self.connect_and_capture()
  55. self.camera.disconnect()
  56. print("Disconnected from the camera successfully.")
  57. return d2,d3
  58. def GrabImages(self):
  59. d2, d3 = self.connect_and_capture()
  60. return d2, d3
  61. def ConnectCamera(self):
  62. camera_infos = Camera.discover_cameras()
  63. if len(camera_infos) != 1:
  64. print("相机连接出现异常,检查网线")
  65. return
  66. error_status = self.camera.connect(camera_infos[0])
  67. if not error_status.is_ok():
  68. show_error(error_status)
  69. return
  70. def DisConnectCamera(self):
  71. self.camera.disconnect()
  72. print("Disconnected from the camera successfully.")
  73. if __name__ == '__main__':
  74. #pip install MechEyeAPI
  75. print('初始化相机对象')
  76. MechMindGraber = ConnectAndCaptureImages()
  77. # d2,d3 = a.main()
  78. print('连接相机')
  79. MechMindGraber.ConnectCamera()
  80. for i in range(60):
  81. print(str(i)+'rn')
  82. print('采集亮度图和深度图')
  83. d2,d3 = MechMindGraber.GrabImages()
  84. cv2.imshow('1',d2)
  85. cv2.waitKey()
  86. cv2.imshow('1', d3)
  87. cv2.waitKey()
  88. print('断开连接')
  89. MechMindGraber.DisConnectCamera()