{"id":6343,"date":"2024-08-27T10:41:12","date_gmt":"2024-08-27T10:41:12","guid":{"rendered":"https:\/\/www.mixtile.com\/?page_id=6343"},"modified":"2024-10-11T09:19:06","modified_gmt":"2024-10-11T09:19:06","slug":"capture-3d-point-clouds-and-detect-objects","status":"publish","type":"page","link":"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/","title":{"rendered":"3D\u70b9\u7fa4\u306e\u30ad\u30e3\u30d7\u30c1\u30e3\u3068\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u691c\u51fa"},"content":{"rendered":"<section class=\"section\" id=\"section_1869037370\">\n\t\t<div class=\"bg section-bg fill bg-fill\" >\n\n\t\t\t\n\t\t\t\n\t\t\t\n\t<div class=\"is-border\"\n\t\tstyle=\"border-color:rgb(235, 235, 235);border-width:1px 0px 0px 0px;\">\n\t<\/div>\n\n\t\t<\/div>\n\n\t\t\n\n\t\t<div class=\"section-content relative\">\n\t\t\t\n\n<div class=\"row\"  id=\"row-1004070004\">\n\n\n\t<div id=\"col-1822488284\" class=\"col medium-12 small-12 large-11\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n\t<div id=\"text-399742475\" class=\"text\">\n\t\t\n\n<h1 style=\"text-align: left;\"><span style=\"font-size: 160%;\"><strong><span style=\"font-weight: 600; color: #ffffff;\">Robotic Sensing with YDLIDAR OS30A and Mixtile Blade 3<\/span><\/strong><\/span><\/h1>\n<p>&nbsp;<\/p>\n<p><span class=\"inline-comment-marker valid active\" style=\"color: #ffffff; font-size: 115%;\">Boost your robot&#8217;s navigation with YDLIDAR OS30A and Mixtile Blade 3: Capture 3D point clouds and detect objects using ROS1 and YOLO.<\/span><\/p>\n\t\t\n<style>\n#text-399742475 {\n  font-size: 0.85rem;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1822488284 > .col-inner {\n  padding: 0px 0px 0px 0px;\n  margin: 10px 0px -68px 0px;\n}\n@media (min-width:550px) {\n  #col-1822488284 > .col-inner {\n    padding: 0px 0px 0px 15px;\n  }\n}\n<\/style>\n\t<\/div>\n\n\t\n\n<\/div>\n\n\t\t<\/div>\n\n\t\t\n<style>\n#section_1869037370 {\n  padding-top: 0px;\n  padding-bottom: 0px;\n  min-height: 400px;\n  background-color: rgb(246, 246, 246);\n}\n#section_1869037370 .section-bg.bg-loaded {\n  background-image: url(https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/240829-RoboSencing-Banner-BG.jpg);\n}\n#section_1869037370 .section-bg {\n  background-position: 50% 50%;\n}\n#section_1869037370 .ux-shape-divider--top svg {\n  height: 150px;\n  --divider-top-width: 100%;\n}\n#section_1869037370 .ux-shape-divider--bottom svg {\n  height: 150px;\n  --divider-width: 100%;\n}\n<\/style>\n\t<\/section>\n\t\n\t<section class=\"section\" id=\"section_1312055793\">\n\t\t<div class=\"bg section-bg fill bg-fill  bg-loaded\" >\n\n\t\t\t\n\t\t\t\n\t\t\t\n\n\t\t<\/div>\n\n\t\t\n\n\t\t<div class=\"section-content relative\">\n\t\t\t\n\n<div class=\"row align-center\"  id=\"row-87474130\">\n\n\n\t<div id=\"col-1060280388\" class=\"col medium-9 small-12 large-9\"  >\n\t\t\t\t<div class=\"col-inner text-center\" style=\"background-color:rgb(247, 247, 247);\" >\n\t\t\t\n\t\t\t\n\n<h3>&nbsp;<\/h3>\n<h3 style=\"font-weight: 600;\"><span style=\"font-size: 120%; color: #000000;\">\u3053\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u4f7f\u7528\u3057\u305f\u3082\u306e&nbsp; &nbsp;<\/span><span style=\"color: #808080;\">\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8<\/span><\/h3>\n<hr>\n<h3 class=\"hckui__typography__h3\"><a href=\"https:\/\/www.mixtile.com\/ja\/store\/sbc\/blade-3\/\"><span style=\"color: #00aae7;\">Mixtile Blade 3<\/span><\/a> \u00d71&nbsp; &nbsp; &nbsp; &nbsp; <a href=\"https:\/\/www.mixtile.com\/ja\/store\/accessory\/blade-3-case\/\"><span style=\"color: #00aae7;\">Blade 3 Case<\/span><\/a> \u00d71<\/h3>\n<h3 class=\"hckui__typography__h3\"><a href=\"https:\/\/www.elektor.com\/products\/ydlidar-os30a-3d-depth-camera\"><span style=\"color: #00aae7;\">YDLIDAR OS30A 3D Depth Camera<\/span><\/a> \u00d71&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href=\"https:\/\/www.tp-link.com\/en\/home-networking\/high-gain-adapter\/tl-wn722n\/\"><span style=\"color: #00aae7;\">Wireless USB Adapter<\/span><\/a> \u00d71<\/h3>\n<h3 class=\"hckui__typography__h3\"><a href=\"https:\/\/atolla.us\/products\/atolla-aluminum-4-in-1-usb-c-hub-c102\"><span style=\"color: #00aae7;\">USB C Hub<\/span><\/a> \u00d71 &nbsp; &nbsp; <a href=\"https:\/\/www.seagate.com\/cn\/zh\/support\/internal-hard-drives\/ssd\/barracuda-510-ssd\/\"><span style=\"color: #00aae7;\">SSD, PCIe Gen4 \u00d74 NVMe 1.4, M.2<\/span><\/a> \u00d71<\/h3>\n<p>&nbsp;<\/p>\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1060280388 > .col-inner {\n  padding: 0px 20px 0px 30px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-1553299687\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">\u30b9\u30c8\u30fc\u30ea\u30fc<\/span><\/h3>\n<hr \/>\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">\u306f\u3058\u3081\u306b<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">In the world of robotics, effective navigation is crucial for the successful deployment of autonomous systems. However, relying solely on onboard sensors can limit a robot&#8217;s ability to perceive its environment accurately, especially in complex or dynamic settings. To address this, we can enhance a robot&#8217;s navigational capabilities by integrating external sensors that provide a more comprehensive understanding of its surroundings.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">This series of articles will explore how to achieve this by leveraging a YDLIDAR 3D depth camera, external to the robot, combined with a Mixtile Blade 3 single-board computer running ROS1. The objective is to gather 3D point cloud data and use YOLO (You Only Look Once) for object detection. This setup will allow us to build a more robust sensing system that enhances the robot&#8217;s ability to navigate and interact with its environment effectively.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">In this first article, we will walk through the process of setting up the YDLIDAR 3D depth camera with the Mixtile Blade 3 and running ROS1 to capture and process the 3D point cloud data. Additionally, we will integrate YOLO for real-time object detection. This foundation will pave the way for more advanced navigation and perception capabilities in subsequent parts of the series.<\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-118235050\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Hardware Overview: Mixtile Blade 3<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">The Mixtile Blade 3 is a high-performance single-board computer designed to meet the demanding needs of edge computing applications, including robotics. Powered by the Octa-Core Rockchip RK3588, the Blade 3 delivers robust processing capabilities in a compact Pico-ITX 2.5-inch form factor.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">Key features include:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Octa-Core Rockchip RK3588: Ensures powerful performance for complex computations and real-time processing.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Stackable via Low-latency 4x PCIe Gen3: Offers the flexibility to expand and scale your hardware setup easily.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Rich Interface: Provides a wide range of connectivity options, making it versatile for various peripheral integrations.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Versatile Edge Computing Unit: Ideal for tasks requiring intensive data processing and quick response times, making it a perfect fit for advanced robotics projects.<\/span><\/li>\n<\/ul>\n<div class=\"slider-wrapper relative\" id=\"slider-1424658218\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-container slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": 6000,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_1075463208\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"1020\" height=\"765\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_02x.jpg?resize=1020%2C765&#038;ssl=1\" class=\"attachment-original size-original\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_02x.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_02x.jpg?resize=533%2C400&amp;ssl=1 533w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_02x.jpg?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_02x.jpg?resize=50%2C38&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_02x.jpg?resize=16%2C12&amp;ssl=1 16w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_02x.jpg?resize=600%2C450&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_1075463208 {\n  width: 100%;\n}\n@media (min-width:550px) {\n  #image_1075463208 {\n    width: 50%;\n  }\n}\n<\/style>\n\t<\/div>\n\t\n\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_1725642412\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"1020\" height=\"754\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_03x.jpg?resize=1020%2C754&#038;ssl=1\" class=\"attachment-original size-original\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_03x.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_03x.jpg?resize=541%2C400&amp;ssl=1 541w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_03x.jpg?resize=768%2C568&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_03x.jpg?resize=50%2C37&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_03x.jpg?resize=16%2C12&amp;ssl=1 16w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_03x.jpg?resize=600%2C444&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_1725642412 {\n  width: 100%;\n}\n@media (min-width:550px) {\n  #image_1725642412 {\n    width: 50%;\n  }\n}\n<\/style>\n\t<\/div>\n\t\n\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_844962833\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"1020\" height=\"765\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_04x.jpg?resize=1020%2C765&#038;ssl=1\" class=\"attachment-original size-original\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_04x.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_04x.jpg?resize=533%2C400&amp;ssl=1 533w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_04x.jpg?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_04x.jpg?resize=50%2C38&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_04x.jpg?resize=16%2C12&amp;ssl=1 16w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_04x.jpg?resize=600%2C450&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_844962833 {\n  width: 100%;\n}\n@media (min-width:550px) {\n  #image_844962833 {\n    width: 50%;\n  }\n}\n<\/style>\n\t<\/div>\n\t\n\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_2071884408\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"1020\" height=\"650\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_05x.jpg?resize=1020%2C650&#038;ssl=1\" class=\"attachment-original size-original\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_05x.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_05x.jpg?resize=627%2C400&amp;ssl=1 627w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_05x.jpg?resize=768%2C490&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_05x.jpg?resize=50%2C32&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_05x.jpg?resize=18%2C12&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_05x.jpg?resize=600%2C383&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_2071884408 {\n  width: 100%;\n}\n@media (min-width:550px) {\n  #image_2071884408 {\n    width: 50%;\n  }\n}\n<\/style>\n\t<\/div>\n\t\n\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_1554169427\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"1020\" height=\"765\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_06x.jpg?resize=1020%2C765&#038;ssl=1\" class=\"attachment-original size-original\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_06x.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_06x.jpg?resize=533%2C400&amp;ssl=1 533w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_06x.jpg?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_06x.jpg?resize=50%2C38&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_06x.jpg?resize=16%2C12&amp;ssl=1 16w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_06x.jpg?resize=600%2C450&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_1554169427 {\n  width: 100%;\n}\n@media (min-width:550px) {\n  #image_1554169427 {\n    width: 50%;\n  }\n}\n<\/style>\n\t<\/div>\n\t\n\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_1819220535\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"1020\" height=\"765\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_07x.jpg?resize=1020%2C765&#038;ssl=1\" class=\"attachment-original size-original\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_07x.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_07x.jpg?resize=533%2C400&amp;ssl=1 533w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_07x.jpg?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_07x.jpg?resize=50%2C38&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_07x.jpg?resize=16%2C12&amp;ssl=1 16w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_07x.jpg?resize=600%2C450&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_1819220535 {\n  width: 100%;\n}\n@media (min-width:550px) {\n  #image_1819220535 {\n    width: 50%;\n  }\n}\n<\/style>\n\t<\/div>\n\t\n\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-1424658218 .flickity-slider > * { max-width: 700px !important; }\n     <\/style>\n     \t<\/div>\n\n\n<p><\/br><\/p>\n<p style=\"text-align: left;\"><span style=\"color: #000000;\">To enhance storage capacity and speed, I will add a 500GB SSD (PCIe Gen4 \u00d74 NVMe 1.4, M.2) using the Mixtile Blade 3 Case. This case is designed specifically for the Mixtile Blade 3, featuring a built-in breakout board that transfers the U.2 port to an M.2 Key-M connector, enabling the installation of an M.2 NVMe SSD.<\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-743534368\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Hardware Overview: YDLIDAR OS30A 3D Depth Camera<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">The YDLIDAR OS30A 3D Depth Camera is a sophisticated sensor designed for advanced robotic applications that require accurate depth perception and obstacle detection. Utilizing binocular structured light 3D imaging technology, this camera captures detailed depth information, enabling robots to effectively sense and navigate their environment.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">Key features include:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Binocular Structured Light 3D Imaging: Provides high-resolution depth images, allowing for precise modeling of the environment.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">High-Resolution Output: Delivers 1280 x 920 high-resolution depth images, crucial for detailed environment mapping and object detection.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Dedicated Depth Computing Chip: Optimized for robot obstacle avoidance, ensuring real-time processing and accuracy in dynamic environments.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Compact and Easy to Integrate: The camera\u2019s small form factor and USB2.0 standard output interface make it easy to integrate into various robotic systems, providing flexibility in design and application.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Adaptability to Complex Environments: Engineered to perform in diverse lighting conditions, including all-black environments, strong or weak indoor light, backlight, and semi-outdoor settings. This versatility makes it ideal for a wide range of applications, from indoor navigation to semi-outdoor exploration.<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">The YDLIDAR OS30A is an excellent choice for enhancing a robot&#8217;s environmental awareness. When combined with powerful processing hardware like the Mixtile Blade 3, it enables the collection and processing of detailed 3D point clouds, which can be used for tasks such as obstacle avoidance, mapping, and object detection with YOLO. This camera is essential for developing robots that can effectively navigate and interact with their surroundings, making it a critical component of our enhanced robotic sensing setup.<\/span><\/p>\n\t<div class=\"box has-hover   has-hover box-text-bottom\" >\n\n\t\t<div class=\"box-image\" style=\"width:66%;\">\n\t\t\t\t\t\t<div class=\"\" >\n\t\t\t\t<img width=\"1020\" height=\"765\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_01x.jpg?resize=1020%2C765&#038;ssl=1\" class=\"attachment- size-\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_01x.jpg?w=1024&amp;ssl=1 1024w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_01x.jpg?resize=533%2C400&amp;ssl=1 533w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_01x.jpg?resize=768%2C576&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_01x.jpg?resize=50%2C38&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_01x.jpg?resize=16%2C12&amp;ssl=1 16w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_01x.jpg?resize=600%2C450&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"box-text text-center\" >\n\t\t\t<div class=\"box-text-inner\">\n\t\t\t\t\n\n<h4>The hardware utilized in this project<br \/>\n<\/h4>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-364362415\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">Installing Docker on the Mixtile Blade 3<\/span><\/h3>\n<hr \/>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">To effectively manage and deploy applications in a containerized environment on the Mixtile Blade 3, we will install Docker, a platform that automates the deployment of applications inside lightweight, portable containers. The following steps outline the installation process for Docker on your Mixtile Blade 3.<\/span><\/p>\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Step 1: Set Up Docker\u2019s GPG Key and Repository<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">First, we need to configure the GPG key and add Docker&#8217;s official repository to the list of package sources.<\/span><\/p>\n\t<div id=\"text-3576880828\" class=\"text\">\n\t\t\n\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>sudo install -m <span class=\"hljs-number\" style=\"color: #993366;\">0755<\/span> -d <span class=\"hljs-regexp\" style=\"color: #993366;\">\/etc\/<\/span>apt<span class=\"hljs-regexp\" style=\"color: #993366;\">\/keyrings<\/span><br \/><span class=\"hljs-regexp\">sudo curl -fsSL <span style=\"color: #00aae7;\">https:\/<\/span><\/span><span style=\"color: #00aae7;\"><span class=\"hljs-regexp\">\/download.docker.com\/<\/span>linux<span class=\"hljs-regexp\">\/ubuntu\/g<\/span>pg<\/span> -o <span class=\"hljs-regexp\" style=\"color: #993366;\">\/etc\/<\/span>apt<span class=\"hljs-regexp\" style=\"color: #993366;\">\/keyrings\/<\/span>docker.asc<br \/>sudo chmod a+r <span class=\"hljs-regexp\" style=\"color: #993366;\">\/etc\/<\/span>apt<span class=\"hljs-regexp\" style=\"color: #993366;\">\/keyrings\/<\/span>docker.asc<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-3576880828 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Next, add the Docker repository to your system&#8217;s package sources:<\/span><\/p>\n\t<div id=\"text-1573589432\" class=\"text\">\n\t\t\n\n<pre class=\"hljs coq\"><span style=\"font-size: 110%;\"><code>echo \n\"deb <span style=\"color: #800080;\">[arch=$(dpkg --print-architecture) signed-by=\/etc\/apt\/keyrings\/docker.asc]<\/span> <span style=\"color: #00aae7;\">https:\/\/download.docker.com\/linux\/ubuntu<\/span> \n$(. <span style=\"color: #800080;\">\/etc\/<\/span>os-release &amp;&amp; echo <span style=\"color: #800080;\">\"$VERSION_CODENAME\"<\/span>) stable\" | \nsudo tee <span style=\"color: #800080;\">\/etc\/<\/span>apt<span style=\"color: #800080;\">\/sources.list.d\/<\/span>docker.list &gt; <span style=\"color: #800080;\">\/dev\/<\/span>null\nsudo apt-get update<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-1573589432 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Step 2: Install Docker<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">With the repository added, you can now install Docker and its associated components. Before that, ensure some dependencies are installed:<\/span><\/p>\n\t<div id=\"text-2535065731\" class=\"text\">\n\t\t\n\n<pre class=\"hljs apache\"><span style=\"font-size: 110%;\"><code><span class=\"hljs-attribute\">\u3059\u3069<\/span> apt install libip<span class=\"hljs-number\">4<\/span>tc<span class=\"hljs-number\">2<\/span>=<span style=\"color: #800080;\"><span class=\"hljs-number\">1<\/span>.<span class=\"hljs-number\">8<\/span>.<span class=\"hljs-number\">7<\/span>-<span class=\"hljs-number\">1<\/span>ubuntu<span class=\"hljs-number\">5<\/span><\/span> libxtables<span class=\"hljs-number\">12<\/span>=<span style=\"color: #800080;\"><span class=\"hljs-number\">1<\/span>.<span class=\"hljs-number\">8<\/span>.<span class=\"hljs-number\">7<\/span>-<span class=\"hljs-number\">1<\/span>ubuntu<span class=\"hljs-number\">5<\/span><\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-2535065731 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Now, proceed to install Docker:<\/p>\n<p><\/span><\/p>\n\t<div id=\"text-1029074486\" class=\"text\">\n\t\t\n\n<pre class=\"hljs stata\"><span style=\"font-size: 110%;\"><code>sudo apt-get install docker-ce docker-ce<span style=\"color: #d83131;\">-<span class=\"hljs-keyword\">cli<\/span><\/span> containerd.io docker-buildx<span style=\"color: #d83131;\">-<span class=\"hljs-keyword\">plugin<\/span><\/span> docker-compose<span style=\"color: #d83131;\">-<span class=\"hljs-keyword\">plugin<\/span><\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-1029074486 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1304534188\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Step 3: Configure Docker Storage<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">By default, Docker stores its data in `\/var\/lib\/docker`. For better management and to avoid potential storage issues, we&#8217;ll move Docker&#8217;s data directory to a different location. In this case, we&#8217;ll use `\/data\/docker` (on the SSD).<\/span><\/p>\n\t<div id=\"text-3923886171\" class=\"text\">\n\t\t\n\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Stop the Docker service:<\/span><\/li>\n<\/ul>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>sudo service docker stop\n<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-3923886171 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Move Docker\u2019s data:<br \/>\n<\/span><\/li>\n<\/ul>\n\t<div id=\"text-3033958583\" class=\"text\">\n\t\t\n\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>mkdir -p <span class=\"hljs-regexp\" style=\"color: #800080;\">\/data\/<\/span>docker<br \/>sudo cp -a <span class=\"hljs-regexp\" style=\"color: #800080;\">\/var\/<\/span>lib<span class=\"hljs-regexp\">\/docker\/<\/span> <span class=\"hljs-regexp\" style=\"color: #800080;\">\/data\/<\/span>docker<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-3033958583 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-593401310\" class=\"text\">\n\t\t\n\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Update Docker\u2019s configuration to point to the new data directory:<\/span><\/li>\n<\/ul>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>sudo touch <span class=\"hljs-regexp\" style=\"color: #800080;\">\/etc\/<\/span>docker<span class=\"hljs-regexp\" style=\"color: #800080;\">\/daemon.json<\/span><br \/><span class=\"hljs-regexp\">sudo nano <span style=\"color: #800080;\">\/<\/span><\/span><span style=\"color: #800080;\">etc<\/span><span class=\"hljs-regexp\"><span style=\"color: #800080;\">\/<\/span>docker<span style=\"color: #800080;\">\/<\/span><\/span><span style=\"color: #800080;\">daemon.json<\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-593401310 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-4054095803\" class=\"text\">\n\t\t\n\n<p><span style=\"color: #282828;\">Add the following content to the `daemon.json` file:<\/span><\/p>\n<pre class=\"hljs json\"><span style=\"font-size: 100%;\"><code>{<br \/><span class=\"hljs-attr\">\"data-root\"<\/span>: <span class=\"hljs-string\" style=\"color: #e14d43;\">\"\/data\/docker\"<\/span><br \/>}<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-4054095803 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\"><span style=\"color: #282828;\">Remove the old Docker data directory: <\/span><\/span><\/li>\n<\/ul>\n<p style=\"text-align: left;\"><span style=\"font-size: 110%;\"><code>sudo rm -rf <span class=\"hljs-regexp\" style=\"color: #800080;\">\/var\/<\/span>lib\/docker<\/code><\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\"><span style=\"color: #282828;\">Restart the Docker service:<\/span><\/span><\/li>\n<\/ul>\n<p style=\"text-align: left;\"><span style=\"font-size: 110%;\"><code>sudo service docker <span style=\"color: #800080;\">start<\/span><\/code><\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-901312573\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Step 4: Manage Docker as a Non-Root User<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">To run Docker commands without using `sudo`, you need to add your user to the `docker` group:<\/span><\/p>\n\t<div id=\"text-1067081458\" class=\"text\">\n\t\t\n\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>sudo groupadd docker\nsudo usermod <span style=\"color: #800080;\">-aG docker $USER<\/span>\nnewgrp docker\n<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-1067081458 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Step 5: Verify Docker Installation<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Finally, verify that Docker is installed correctly by running a test container:<\/p>\n<p><\/span><\/p>\n\t<div id=\"text-1030117008\" class=\"text\">\n\t\t\n\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>docker run hello-world\n<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-1030117008 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">This command will download and run a small test container, confirming that Docker is up and running on your Mixtile Blade 3.<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">With Docker successfully installed and configured, you&#8217;re now ready to deploy and manage applications in a containerized environment, which is especially useful for running components like ROS1, object detection with YOLO, and other services on your robotics platform.<\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row align-center\"  id=\"row-851487792\">\n\n\n\t<div id=\"col-778804160\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">Building the Project:<br \/>\nROS SDK and YOLO Object Detection<\/span><\/h3>\n<hr \/>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">With Docker installed and configured on the Mixtile Blade 3, the next step is to build the Docker images that will run the ROS SDK for the YDLIDAR OS30A 3D Depth Camera and a node for YOLO-based object detection. This setup allows us to efficiently manage and deploy these components in a containerized environment, ensuring consistency and ease of use.<\/span><\/p>\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Step 1: Clone the Project Repository<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">Start by cloning the project repository, which contains all the necessary Dockerfiles and configurations.<\/span><\/p>\n\t<div id=\"text-2864634132\" class=\"text\">\n\t\t\n\n<pre class=\"hljs crmsh\"><span style=\"font-size: 110%;\"><code>git <span class=\"hljs-keyword\" style=\"color: #d83131;\">clone<\/span> <span class=\"hljs-title\" style=\"color: #339966;\">--recursive<\/span> git@github.com:andrei-ace\/docker_ros_ydlidar_os30a.git<br \/>cd docker_ros_ydlidar_os30a\/ros<\/code><\/span><\/pre>\n\t\t\n<style>\n#text-2864634132 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Step 2: Build the Docker Images<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">The project includes a `Makefile` that simplifies the process of building the Docker images. These images will include everything needed to run the ROS environment, the YDLIDAR OS30A SDK, and the YOLO object detection node.<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">To build the images, simply run:<\/span><\/p>\n\t<div id=\"text-3219280812\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"font-size: 110%; color: #d83131;\"><code> make build<br \/>\n <\/code><\/span><\/p>\n\t\t\n<style>\n#text-3219280812 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">This command will execute the<\/span>\u00a0<code>build<\/code>\u00a0<span style=\"color: #282828;\">target in the<\/span>\u00a0<code>Makefile<\/code><span style=\"color: #282828;\">, which consists of the following steps:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\"><strong>ROS Core Image:<\/strong>\u00a0Builds the base image for ROS Noetic on Ubuntu Focal, providing the core ROS functionality.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\"><strong>ROS Base Image:<\/strong>\u00a0Extends the core image with additional tools and libraries required for ROS-based development.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\"><strong>Robot Image:<\/strong>\u00a0Adds robot-specific packages and configurations.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\"><strong>Desktop Image:<\/strong>\u00a0Includes desktop tools and GUI-based applications, useful for development and debugging.<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\"><strong>Robot Dog 3D Depth Camera Image:<\/strong>\u00a0Builds the custom image that includes the ROS SDK for the YDLIDAR OS30A and the YOLOv8-based object detection node.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">The custom image for the robot is tagged as <span style=\"color: #808080;\"><code>andreiciobanu1984\/robots:robot-dog-3d-depth-camera<\/code><\/span>. This image is built by combining multiple contexts, including the ROS SDK for the camera from\u00a0<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/github.com\/eYs3D\/eys3d_ros\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;eYs3D&quot;,&quot;href&quot;:&quot;https:\/\/github.com\/eYs3D\/eys3d_ros&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">eYs3D<\/a><\/span>\u00a0and the YOLO detector node, which was inspired by\u00a0<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/github.com\/mats-robotics\/yolov5_ros\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;mats-robotics\/yolov5_ros&quot;,&quot;href&quot;:&quot;https:\/\/github.com\/mats-robotics\/yolov5_ros&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">mats-robotics\/yolov5_ros<\/a><\/span>\u00a0and updated to use YOLOv8 with\u00a0<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/docs.ultralytics.com\/integrations\/ncnn\/\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;NCNN&quot;,&quot;href&quot;:&quot;https:\/\/docs.ultralytics.com\/integrations\/ncnn\/&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">NCNN<\/a><\/span>.<\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-2083592446\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Step 3: Clean Up (Optional)<\/span><\/h3>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">If you need to remove the Docker images for any reason, you can use the `clean` target in the <code>Makefile<\/code>:<\/span><\/p>\n\t<div id=\"text-1699108009\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"font-size: 110%; color: #d83131;\"><code> make clean<br \/>\n <\/code><\/span><\/p>\n\t\t\n<style>\n#text-1699108009 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">This command will delete all the Docker images built during the\u00a0<span style=\"color: #808080;\"><code>make build<\/code>\u00a0<\/span>process.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">The ROS Noetic images used are based on the official Docker images provided by the ROS team at\u00a0<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/github.com\/osrf\/docker_images\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;osrf\/docker_images&quot;,&quot;href&quot;:&quot;https:\/\/github.com\/osrf\/docker_images&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">osrf\/docker_images<\/a><\/span>. These images are widely used in the ROS community and provide a solid foundation for building ROS-based applications.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">The ROS SDK for the YDLIDAR OS30A camera is sourced from the\u00a0<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/github.com\/eYs3D\/eys3d_ros\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;eYs3D ROS repository&quot;,&quot;href&quot;:&quot;https:\/\/github.com\/eYs3D\/eys3d_ros&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">eYs3D ROS repository<\/a><\/span>, which provides the necessary drivers and tools for integrating the camera into your ROS environment.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">The YOLO object detection node was customized from the original implementation found in\u00a0<span style=\"color: #00aae7;\"><a class=\"hckui__typography__linkBlue\" style=\"color: #00aae7;\" href=\"https:\/\/github.com\/mats-robotics\/yolov5_ros\" rel=\"nofollow\" data-ha=\"{&quot;eventName&quot;:&quot;Clicked link&quot;,&quot;customProps&quot;:{&quot;value&quot;:&quot;mats-robotics\/yolov5_ros&quot;,&quot;href&quot;:&quot;https:\/\/github.com\/mats-robotics\/yolov5_ros&quot;,&quot;type&quot;:&quot;story&quot;,&quot;location&quot;:&quot;story&quot;},&quot;clickOpts&quot;:{&quot;delayRedirect&quot;:true}}\">mats-robotics\/yolov5_ros<\/a><\/span>, with updates to support YOLOv8 using the NCNN framework, offering improved accuracy and performance for object detection tasks.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">This setup ensures that your robotics project is equipped with the latest tools and technologies, allowing for precise sensing and robust object detection capabilities.<\/span><\/p>\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Step 4: Running the docker image<\/span><\/h3>\n\t<div id=\"text-416186855\" class=\"text\">\n\t\t\n\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>xhost <span style=\"color: #800080;\">+local:docker<\/span><br \/><br \/>docker run -it --rm --privileged -v <span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:<span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:ro     <br \/>    <span style=\"color: #ed1c24;\">-e<\/span> DISPLAY=<span class=\"hljs-variable\">$DISPLAY<\/span> --net=host andreiciobanu1984<span class=\"hljs-regexp\" style=\"color: #ed1c24;\">\/robots:robot-dog-3d-depth-camera \/<\/span>bin<span class=\"hljs-regexp\">\/bash <\/span><br \/><span class=\"hljs-regexp\"><span style=\"color: #ed1c24;\">    -c<\/span> 'source \/<\/span>robot<span class=\"hljs-regexp\" style=\"color: #800080;\">\/devel\/<\/span>setup.bash; roslaunch robot_dog robot.launch<span class=\"hljs-string\">'<\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-416186855 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-737358868\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">Benchmarks and the Choice of YOLOv8 NCNN for Object Detection<\/span><\/h3>\n<hr \/>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">When developing an advanced robotic sensing platform, choosing the right object detection algorithm is critical to achieving real-time performance. For this project, I opted for YOLOv8 using the NCNN framework due to its superior speed and efficiency on edge devices like the Mixtile Blade 3. Below, we present the benchmarks that guided this decision and the rationale behind choosing YOLOv8 with NCNN.<\/p>\n<p><\/span><\/p>\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Building and Running the Docker Images<\/span><\/h3>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">First, we build the\u00a0<\/span><code>ros:noetic-eys3d-ros<\/code><span style=\"color: #282828;\">\u00a0Docker image, which includes the necessary drivers and libraries to interface with the YDLIDAR OS30A 3D Depth Camera:<\/span><\/p>\n\t<div id=\"text-3687899350\" class=\"text\">\n\t\t\n\n<pre class=\"hljs apache\"><span style=\"font-size: 110%;\"><code><span style=\"color: #ed1c24;\"><span class=\"hljs-attribute\">docker<\/span> build<\/span> --tag=ros:noetic-eys<span class=\"hljs-number\">3<\/span>d-ros --build-context eys<span class=\"hljs-number\">3<\/span>d-ros=..<span style=\"color: #800080;\">\/eys<span class=\"hljs-number\">3<\/span>d_ros eys<span class=\"hljs-number\">3<\/span>d-ros\/<\/span>.<br \/>xhost <span style=\"color: #800080;\">+local:docker<\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-3687899350 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">Next, we test the camera and the object detection performance using different versions of YOLO:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Launching the YDLIDAR camera:<\/span><\/li>\n<\/ul>\n\t<div id=\"text-3329628327\" class=\"text\">\n\t\t\n\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>docker run -it --rm --privileged -v <span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:<span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:ro -e DISPLAY=<span class=\"hljs-variable\">$DISPLAY<\/span> --net=host andreiciobanu1984<span class=\"hljs-regexp\">\/robots:robot-dog-3d-depth-camera <span style=\"color: #800080;\">\/<\/span><\/span><span style=\"color: #800080;\">bin<\/span><span class=\"hljs-regexp\"><span style=\"color: #800080;\">\/<\/span>bash -c <span style=\"color: #ff6600;\">'source \/<\/span><\/span><span style=\"color: #ff6600;\">robot<span class=\"hljs-regexp\">\/devel\/<\/span>setup.bash; roslaunch dm_preview BMVM0S30A.launch<\/span><span class=\"hljs-string\"><span style=\"color: #ff6600;\">'<\/span><\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-3329628327 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2809489185\" class=\"text\">\n\t\t\n\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Testing YOLOv5:<\/span><\/li>\n<\/ul>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>docker run -it --rm --privileged -v <span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:<span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:ro -e DISPLAY=<span class=\"hljs-variable\">$DISPLAY<\/span> --net=host andreiciobanu1984<span class=\"hljs-regexp\">\/robots:robot-dog-3d-depth-camera <span style=\"color: #800080;\">\/<\/span><\/span><span style=\"color: #800080;\">bin<\/span><span class=\"hljs-regexp\"><span style=\"color: #800080;\">\/<\/span>bash -c <span style=\"color: #ff6600;\">'python3 \/<\/span><\/span><span style=\"color: #ff6600;\">robot<span class=\"hljs-regexp\">\/src\/<\/span>robot_dog<span class=\"hljs-regexp\">\/src\/<\/span>test_v5.py<span class=\"hljs-string\">'<\/span><\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-2809489185 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2533645227\" class=\"text\">\n\t\t\n\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Testing YOLOv8 with Torch:<\/span><\/li>\n<\/ul>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>docker run -it --rm --privileged -v <span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:<span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:ro -e DISPLAY=<span class=\"hljs-variable\">$DISPLAY<\/span> --net=host andreiciobanu1984<span class=\"hljs-regexp\">\/robots:robot-dog-3d-depth-camera <span style=\"color: #800080;\">\/<\/span><\/span><span style=\"color: #800080;\">bin<\/span><span class=\"hljs-regexp\"><span style=\"color: #800080;\">\/<\/span>bash -c <span style=\"color: #ff6600;\">'python3 \/<\/span><\/span><span style=\"color: #ff6600;\">robot<span class=\"hljs-regexp\">\/src\/<\/span>robot_dog<span class=\"hljs-regexp\">\/src\/<\/span>test_v8.py<span class=\"hljs-string\">'<\/span><\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-2533645227 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\t<div id=\"text-2033768668\" class=\"text\">\n\t\t\n\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Testing YOLOv8 with NCNN:<\/span><\/li>\n<\/ul>\n<pre class=\"hljs awk\"><span style=\"font-size: 110%;\"><code>docker run -it --rm --privileged -v <span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:<span class=\"hljs-regexp\" style=\"color: #800080;\">\/tmp\/<\/span>.X11-unix:ro -e DISPLAY=<span class=\"hljs-variable\">$DISPLAY<\/span> --net=host andreiciobanu1984<span class=\"hljs-regexp\">\/robots:robot-dog-3d-depth-camera <span style=\"color: #800080;\">\/<\/span><\/span><span style=\"color: #800080;\">bin<\/span><span class=\"hljs-regexp\"><span style=\"color: #800080;\">\/<\/span>bash -c <span style=\"color: #ff6600;\">'python3 \/<\/span><\/span><span style=\"color: #ff6600;\">robot<span class=\"hljs-regexp\">\/src\/<\/span>robot_dog<span class=\"hljs-regexp\">\/src\/<\/span>test_v8_ncnn.py<span class=\"hljs-string\">'<\/span><\/span><\/code><\/span><\/pre>\n\t\t\n<style>\n#text-2033768668 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-164688633\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Benchmark Results<\/span><\/h3>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">From the benchmarks captured (as seen in the images provided), the performance metrics were recorded as follows:<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">YOLOv5:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\" style=\"text-align: left;\">\n<li><span style=\"color: #282828;\">Inference time: Approximately 1147.8ms to 1201.2ms per image (at 480&#215;640 resolution)<\/span><\/li>\n<li><span style=\"color: #282828;\">Preprocessing time: Between 5.4ms to 12.5ms per image<\/span><\/li>\n<li><span style=\"color: #282828;\">Postprocessing time: Approximately 2.6ms to 3.9ms per image<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">YOLOv8 with Torch:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\" style=\"text-align: left;\">\n<li><span style=\"color: #282828;\">Similar results to YOLOv5, with some improvements in preprocessing but overall comparable inference times.<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">YOLOv8 with NCNN:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Inference time: Significantly reduced to around 175.9ms per image (at 640&#215;640 resolution)<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Preprocessing time: As low as 8.7ms to 13.1ms per image<\/span><\/li>\n<li style=\"text-align: left;\"><span style=\"color: #282828;\">Postprocessing time: Slightly reduced, with overall faster processing.<\/span><\/li>\n<\/ul>\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Why YOLOv8 NCNN?<\/span><\/h3>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">The primary reason for choosing YOLOv8 with NCNN over the Torch implementation or previous versions like YOLOv5 is the drastic improvement in inference speed. On edge devices like the Mixtile Blade 3, which rely on efficient use of computational resources, NCNN provides a much faster alternative for real-time object detection. This is critical for applications where quick decision-making is essential, such as in autonomous navigation and obstacle avoidance.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">Moreover, NCNN&#8217;s lightweight nature allows it to run efficiently on ARM-based processors, making it an ideal fit for the Mixtile Blade 3&#8217;s architecture. The benchmarks clearly show that YOLOv8 with NCNN outperforms other configurations in both speed and efficiency, which directly translates into better performance for real-time robotic applications.<\/span><\/p>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">In conclusion, the decision to use YOLOv8 with NCNN in this project was based on its superior speed and efficiency, making it the best choice for enhancing the robot&#8217;s perception capabilities without compromising on performance.<\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-408548340\" class=\"col medium-9 small-12 large-9\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"video video-fit mb\" style=\"padding-top:56.25%;\"><iframe loading=\"lazy\" title=\"Benchmarking YOLO using the Mixtile Blade 3 and YDLIDAR OS30A depth camera\" width=\"1020\" height=\"574\" src=\"https:\/\/www.youtube.com\/embed\/DnEgSWMh5uw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/div>\n\n<h5>Benchmarking YOLO using the Mixtile Blade 3 and YDLIDAR OS30A depth camera<\/h5>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row align-center\"  id=\"row-1487019732\">\n\n\n\t<div id=\"col-1273591496\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">Impact of IR Intensity<br \/>on Object Detection and Depth Sensing<\/span><\/h3>\n<hr \/>\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">In this project, we observed that adjusting the\u00a0<strong>IR intensity<\/strong>\u00a0setting of the YDLIDAR OS30A 3D Depth Camera significantly affects both object detection and depth sensing capabilities. Here\u2019s a summary of our findings and how to optimize the settings for your specific use case.<\/span><\/p>\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Observations:<\/span><\/h3>\n\t<div id=\"text-3564207536\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">IR Intensity Set to 0:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">Impact on Object Detection: With the IR intensity set to 0, the object detection using YOLOv8 performed significantly better. This setting minimizes interference from the camera\u2019s IR sensors, leading to clearer images and more accurate object detection.<\/span><\/li>\n<li><span style=\"color: #282828;\">Impact on Depth Sensing: Disabling IR intensity also disables the camera\u2019s 3D depth sensing capabilities. This means that while object detection accuracy improves, the camera will not provide depth data, which might be critical depending on the application.<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">IR Intensity Set to 3 (Default):<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">Impact on Object Detection: At the default IR intensity of 3, the 3D depth sensing works well, but it introduces noise that negatively impacts the performance of object detection. The camera\u2019s IR emissions create reflections and artifacts in the captured images, leading to less accurate detections.<\/span><\/li>\n<li><span style=\"color: #282828;\">Impact on Depth Sensing: Depth sensing is fully operational, providing 3D point clouds that can be useful for tasks like obstacle avoidance and environment mapping.<\/span><\/li>\n<\/ul>\n\t\t\n<style>\n#text-3564207536 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Potential Solutions<\/span><\/h3>\n\t<div id=\"text-546317030\" class=\"text\">\n\t\t\n\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">To overcome these limitations, a few strategies can be considered:<\/span><\/p>\n<ul class=\"hckui__typography__bodyL\">\n<li><span style=\"color: #282828;\">Alternate Between Modes: One approach could be to alternate between modes\u2014switching between high IR intensity for depth sensing and low or zero IR intensity for object detection. By running these modes in sequence, the robot could gather depth data and then switch to a more optimized setting for object detection.<\/span><\/li>\n<li><span style=\"color: #282828;\">Fine-Tune YOLO Weights: Another solution is to fine-tune the YOLO model weights specifically for the environment and the specific characteristics of the YDLIDAR OS30A camera. This could improve the model\u2019s ability to detect objects accurately, even with the IR intensity set at levels that enable depth sensing.<\/span><\/li>\n<\/ul>\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">These solutions will be explored in more detail in the next article, where I will focus on refining the object detection capabilities to accurately detect the robot and its surroundings under varying conditions. By fine-tuning the YOLO weights and possibly integrating a mode-switching strategy, we aim to optimize both object detection and depth sensing simultaneously.<\/span><\/p>\n\t\t\n<style>\n#text-546317030 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Adjusting the IR Intensity<\/span><\/h3>\n<p class=\"hckui__typography__bodyL\" style=\"text-align: left;\"><span style=\"color: #282828;\">You can adjust the IR intensity on-the-fly using the RQT Reconfigure tool:<\/span><\/p>\n\t<div id=\"text-1358746864\" class=\"text\">\n\t\t\n\n<p style=\"text-align: left;\"><span style=\"font-size: 110%; color: #d83131;\"><code> rosrun rqt_reconfigure rqt_reconfigure<br \/>\n <\/code><\/span><\/p>\n\t\t\n<style>\n#text-1358746864 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n<p style=\"text-align: left;\"><span style=\"color: #282828;\">In the <span style=\"color: #808080;\"><code>rqt_reconfigure<\/code><\/span>\u00a0interface, navigate to the\u00a0<code><span style=\"color: #808080;\">\/camera_BMVM0530A1_node<\/span><\/code>\u00a0settings and modify the\u00a0<span style=\"color: #808080;\"><code>ir_intensity<\/code><\/span>\u00a0parameter. Set it to\u00a0<span style=\"color: #808080;\"><code>0<\/code><\/span>\u00a0for better object detection or leave it at\u00a0<span style=\"color: #808080;\"><code>3<\/code><\/span>\u00a0for depth sensing.<\/span><\/p>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1323108266\" class=\"col medium-9 small-12 large-9\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"slider-wrapper relative\" id=\"slider-1550532841\" >\n    <div class=\"slider slider-nav-circle slider-nav-large slider-nav-light slider-style-normal slider-show-nav\"\n        data-flickity-options='{            \"cellAlign\": \"center\",            \"imagesLoaded\": true,            \"lazyLoad\": 1,            \"freeScroll\": false,            \"wrapAround\": true,            \"autoPlay\": false,            \"pauseAutoPlayOnHover\" : true,            \"prevNextButtons\": true,            \"contain\" : true,            \"adaptiveHeight\" : true,            \"dragThreshold\" : 10,            \"percentPosition\": true,            \"pageDots\": true,            \"rightToLeft\": false,            \"draggable\": true,            \"selectedAttraction\": 0.1,            \"parallax\" : 0,            \"friction\": 0.6        }'\n        >\n        \n\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_282523521\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"1020\" height=\"567\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_08x.jpg?resize=1020%2C567&#038;ssl=1\" class=\"attachment-original size-original\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_08x.jpg?w=1179&amp;ssl=1 1179w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_08x.jpg?resize=720%2C400&amp;ssl=1 720w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_08x.jpg?resize=768%2C427&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_08x.jpg?resize=50%2C28&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_08x.jpg?resize=18%2C10&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_08x.jpg?resize=600%2C333&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_282523521 {\n  width: 100%;\n}\n@media (min-width:550px) {\n  #image_282523521 {\n    width: 50%;\n  }\n}\n<\/style>\n\t<\/div>\n\t\n\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_1437928479\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"1020\" height=\"549\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_09x.jpg?resize=1020%2C549&#038;ssl=1\" class=\"attachment-original size-original\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_09x.jpg?w=1179&amp;ssl=1 1179w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_09x.jpg?resize=743%2C400&amp;ssl=1 743w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_09x.jpg?resize=768%2C414&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_09x.jpg?resize=50%2C27&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_09x.jpg?resize=18%2C10&amp;ssl=1 18w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_09x.jpg?resize=600%2C323&amp;ssl=1 600w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_1437928479 {\n  width: 100%;\n}\n@media (min-width:550px) {\n  #image_1437928479 {\n    width: 50%;\n  }\n}\n<\/style>\n\t<\/div>\n\t\n\n\t<div class=\"img has-hover x md-x lg-x y md-y lg-y\" id=\"image_1851371957\">\n\t\t\t\t\t\t\t\t<div class=\"img-inner dark\" >\n\t\t\t<img width=\"847\" height=\"707\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_10.png?resize=847%2C707&#038;ssl=1\" class=\"attachment-original size-original\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_10.png?w=847&amp;ssl=1 847w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_10.png?resize=479%2C400&amp;ssl=1 479w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_10.png?resize=768%2C641&amp;ssl=1 768w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_10.png?resize=50%2C42&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_10.png?resize=14%2C12&amp;ssl=1 14w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Article_RSB3_10.png?resize=600%2C501&amp;ssl=1 600w\" sizes=\"(max-width: 847px) 100vw, 847px\" data-recalc-dims=\"1\" \/>\t\t\t\t\t\t\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\n<style>\n#image_1851371957 {\n  width: 100%;\n}\n@media (min-width:550px) {\n  #image_1851371957 {\n    width: 50%;\n  }\n}\n<\/style>\n\t<\/div>\n\t\n\n\n     <\/div>\n\n     <div class=\"loading-spin dark large centered\"><\/div>\n\n          <style>\n            #slider-1550532841 .flickity-slider > * { max-width: 100% !important; }\n     <\/style>\n     \t<\/div>\n\n\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-301173347\" class=\"col medium-9 small-12 large-9\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<div class=\"video video-fit mb\" style=\"padding-top:56.25%;\"><p><iframe loading=\"lazy\" title=\"Comparing IR Intensity Settings: YDLIDAR OS30A with YOLO - IR_Intensity 0 vs 3 Performance Test\" width=\"1020\" height=\"574\" src=\"https:\/\/www.youtube.com\/embed\/7IF-Xx6-QsQ?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<\/div>\n\n<h5>Comparing IR Intensity Settings: YDLIDAR OS30A with YOLO &#8211; IR_Intensity 0 vs 3 Performance Test<br \/>\n<\/h5>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-1073642094\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 160%; color: #000000;\">Conclusion<\/span><\/h3>\n\t<div id=\"text-2916879338\" class=\"text\">\n\t\t\n\n<section id=\"story\">\n<div class=\"project-story collapsible-section collapsed hljs-active hljs-monokai\">\n<p class=\"hckui__typography__bodyL\"><span style=\"color: #282828;\">The ability to dynamically adjust the IR intensity provides flexibility in balancing the trade-offs between object detection and depth sensing. By exploring further strategies such as alternating modes or fine-tuning YOLO weights, the camera&#8217;s performance can be optimized to suit a wide range of robotic applications. Stay tuned for the next article, where we will delve into these enhancements to achieve more accurate robot detection and sensing.<\/span><\/p>\n<\/div>\n<\/section>\n<hr>\n<p>\u00a0<\/p>\n\t\t\n<style>\n#text-2916879338 {\n  text-align: left;\n}\n<\/style>\n\t<\/div>\n\t\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n<div class=\"row\"  id=\"row-1071096019\">\n\n\n\t<div id=\"col-1877121530\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">\u30b3\u30fc\u30c9<\/span><\/h3>\n<hr>\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-1877121530 > .col-inner {\n  margin: 0px 0px -30px 0px;\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-1730080024\" class=\"col medium-10 small-12 large-10\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><a href=\"https:\/\/github.com\/andrei-ace\/docker_ros_ydlidar_os30a\"><span style=\"color: #999999;\">https:\/\/github.com\/andrei-ace\/docker_ros_ydlidar_os30a<\/span><\/a><\/h3>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n\t<div id=\"col-832930196\" class=\"col medium-2 small-12 large-2\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<a rel=\"noopener noreferrer\" href=\"https:\/\/github.com\/andrei-ace\/docker_ros_ydlidar_os30a\/archive\/main.zip\" target=\"_blank\" class=\"button primary is-outline expand\"  style=\"border-radius:99px;\">\n    <span>\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<\/span>\n  <\/a>\n\n\n\n\t\t<\/div>\n\t\t\t\t\n<style>\n#col-832930196 > .col-inner {\n  padding: 0px 0px 0px 0px;\n  margin: -14px 0px -20px 0px;\n}\n@media (min-width:550px) {\n  #col-832930196 > .col-inner {\n    margin: 10px 0px -10px 0px;\n  }\n}\n<\/style>\n\t<\/div>\n\n\t\n\n\t<div id=\"col-1611465257\" class=\"col small-12 large-12\"  >\n\t\t\t\t<div class=\"col-inner text-center\"  >\n\t\t\t\n\t\t\t\n\n<h3 style=\"font-weight: 600; text-align: left;\"><span style=\"font-size: 200%; color: #000000;\">\u30af\u30ec\u30b8\u30c3\u30c8<br \/><\/span><\/h3>\n<hr>\n<div class=\"row\"  id=\"row-275786988\">\n\n\n\t<div id=\"col-597496836\" class=\"col medium-10 small-12 large-10\"  >\n\t\t\t\t<div class=\"col-inner\"  >\n\t\t\t\n\t\t\t\n\n  <div class=\"icon-box testimonial-box icon-box-left text-left is-large\">\n                <div class=\"icon-box-img testimonial-image circle\" style=\"width: 90px\">\n              <img width=\"280\" height=\"280\" src=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Andrei-Ciobanu.webp?resize=280%2C280&amp;ssl=1\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Andrei-Ciobanu.webp?w=500&amp;ssl=1 500w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Andrei-Ciobanu.webp?resize=400%2C400&amp;ssl=1 400w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Andrei-Ciobanu.webp?resize=280%2C280&amp;ssl=1 280w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Andrei-Ciobanu.webp?resize=50%2C50&amp;ssl=1 50w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Andrei-Ciobanu.webp?resize=12%2C12&amp;ssl=1 12w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Andrei-Ciobanu.webp?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2024\/08\/Andrei-Ciobanu.webp?resize=100%2C100&amp;ssl=1 100w\" sizes=\"(max-width: 280px) 100vw, 280px\" \/>        <\/div>\n                <div class=\"icon-box-text p-last-0\">\n            \t\t\t\t<div class=\"testimonial-text line-height-small italic test_text first-reset last-reset is-italic\">\n            \n\n<h3 class=\"hckui__typography__h3\"><span style=\"color: #00aae7;\"><strong><a class=\"hckui__typography__link\" style=\"color: #00aae7;\" href=\"https:\/\/www.linkedin.com\/in\/andrei-ciobanu-43060b4\/\">Andrei Ciobanu<\/a><\/strong><\/span><\/h3>\n<p>Tech Enthusiast &amp; Engineer, Based in Timi\u0219oara, Romania<\/p>\n\n          <\/div>\n          <div class=\"testimonial-meta pt-half\">\n             <strong class=\"testimonial-name test_name\"><\/strong>\n                          <span class=\"testimonial-company test_company\"><\/span>\n          <\/div>\n        <\/div>\n  <\/div>\n\n  \n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\n\t\n\n<\/div>\n\n\t\t<\/div>\n\n\t\t\n<style>\n#section_1312055793 {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  min-height: 600px;\n}\n#section_1312055793 .ux-shape-divider--top svg {\n  height: 150px;\n  --divider-top-width: 100%;\n}\n#section_1312055793 .ux-shape-divider--bottom svg {\n  height: 150px;\n  --divider-width: 100%;\n}\n<\/style>\n\t<\/section>\n\t\n\n\n<style>@import url('https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@300;600;900&display=swap');<\/style>","protected":false},"excerpt":{"rendered":"","protected":false},"author":9,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-blank.php","meta":{"spay_email":""},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Capture 3D Point Clouds and Detect Objects | Mixtile<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Capture 3D Point Clouds and Detect Objects | Mixtile\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/\" \/>\n<meta property=\"og:site_name\" content=\"Mixtile\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-11T09:19:06+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/#organization\",\"name\":\"Mixtile Limited\",\"url\":\"https:\/\/www.mixtile.com\/ja\/\",\"sameAs\":[],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/#logo\",\"inLanguage\":\"ja\",\"url\":\"https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2022\/02\/logo.svg\",\"contentUrl\":\"https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2022\/02\/logo.svg\",\"caption\":\"Mixtile Limited\"},\"image\":{\"@id\":\"https:\/\/www.mixtile.com\/ja\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/#website\",\"url\":\"https:\/\/www.mixtile.com\/ja\/\",\"name\":\"Mixtile\",\"description\":\"Hardware for IoT Solutions\",\"publisher\":{\"@id\":\"https:\/\/www.mixtile.com\/ja\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.mixtile.com\/ja\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"ja\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/#webpage\",\"url\":\"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/\",\"name\":\"Capture 3D Point Clouds and Detect Objects | Mixtile\",\"isPartOf\":{\"@id\":\"https:\/\/www.mixtile.com\/ja\/#website\"},\"datePublished\":\"2024-08-27T10:41:12+00:00\",\"dateModified\":\"2024-10-11T09:19:06+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.mixtile.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Capture 3D Point Clouds and Detect Objects\"}]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Capture 3D Point Clouds and Detect Objects | Mixtile","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/","og_locale":"ja_JP","og_type":"article","og_title":"Capture 3D Point Clouds and Detect Objects | Mixtile","og_url":"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/","og_site_name":"Mixtile","article_modified_time":"2024-10-11T09:19:06+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/www.mixtile.com\/ja\/#organization","name":"Mixtile Limited","url":"https:\/\/www.mixtile.com\/ja\/","sameAs":[],"logo":{"@type":"ImageObject","@id":"https:\/\/www.mixtile.com\/ja\/#logo","inLanguage":"ja","url":"https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2022\/02\/logo.svg","contentUrl":"https:\/\/dh19rycdk230a.cloudfront.net\/app\/uploads\/2022\/02\/logo.svg","caption":"Mixtile Limited"},"image":{"@id":"https:\/\/www.mixtile.com\/ja\/#logo"}},{"@type":"WebSite","@id":"https:\/\/www.mixtile.com\/ja\/#website","url":"https:\/\/www.mixtile.com\/ja\/","name":"Mixtile","description":"Hardware for IoT Solutions","publisher":{"@id":"https:\/\/www.mixtile.com\/ja\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mixtile.com\/ja\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"ja"},{"@type":"WebPage","@id":"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/#webpage","url":"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/","name":"Capture 3D Point Clouds and Detect Objects | Mixtile","isPartOf":{"@id":"https:\/\/www.mixtile.com\/ja\/#website"},"datePublished":"2024-08-27T10:41:12+00:00","dateModified":"2024-10-11T09:19:06+00:00","breadcrumb":{"@id":"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mixtile.com\/ja\/capture-3d-point-clouds-and-detect-objects\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mixtile.com\/"},{"@type":"ListItem","position":2,"name":"Capture 3D Point Clouds and Detect Objects"}]}]}},"_links":{"self":[{"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/pages\/6343"}],"collection":[{"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/comments?post=6343"}],"version-history":[{"count":28,"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/pages\/6343\/revisions"}],"predecessor-version":[{"id":6538,"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/pages\/6343\/revisions\/6538"}],"wp:attachment":[{"href":"https:\/\/www.mixtile.com\/ja\/wp-json\/wp\/v2\/media?parent=6343"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}