{"id":1000,"date":"2025-08-14T12:00:05","date_gmt":"2025-08-14T12:00:05","guid":{"rendered":"https:\/\/www.astor.com.pl\/en\/?p=1000"},"modified":"2025-08-13T11:37:25","modified_gmt":"2025-08-13T11:37:25","slug":"object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions","status":"publish","type":"post","link":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/","title":{"rendered":"Object Detection &#8216;On the Fly&#8217; with Kawasaki Robotics  &#8211; Comparison of HSENSE and XMOVE Functions"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1022 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-115728.png\" alt=\"\" width=\"712\" height=\"412\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-115728.png 712w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-115728-300x174.png 300w\" sizes=\"auto, (max-width: 712px) 100vw, 712px\" \/><\/p>\n<p>In this article, you will learn:<\/p>\n<ul>\n<li>how to perform precise positioning in handling applications,<\/li>\n<li>what the HSENSE and XMOVE functions are and how they work,<\/li>\n<li>how to use these functions for accurate positioning.<\/li>\n<\/ul>\n<p>In simplified terms, a robot working in a general handling application is typically tasked with moving an object from point A to point B. When all elements are perfectly aligned and in place, this task is straightforward to perform and quick to program. However, as we know, it is extremely rare for everything to be perfectly positioned. For the system to operate efficiently, the elements need to be either positioned accurately or located dynamically. So how do we deal with situations where the dimensions and position of the object may vary from the expected values?<\/p>\n<p>In such cases, we need to equip the robot with a sense of vision or touch to locate and measure the target object. This can be done using 2D or 3D vision systems, which, however, may prove too expensive to achieve a reasonable ROI &#8211; especially considering that only a small fraction of their capabilities may be used in the application.<\/p>\n<p>For basic object detection, simple sensors are often sufficient &#8211; such as optical, capacitive, inductive, or others &#8211; depending on the material and the required type of detection. However, these sensors typically only provide information about the presence of the object. So how can we actually measure and orient the object in space?<\/p>\n<p>By combining object detection data, the robot&#8217;s position, mathematics, and a bit of engineering ingenuity, we can determine and recognize many geometric features of the object as well as its position relative to the robot.<\/p>\n<h4><strong>Definition of the Engineering Problem<\/strong><\/h4>\n<p>Let us now follow the below engineering problem:<\/p>\n<p>At the pick-up station, there are steel discs with known diameter and thickness. They are manually placed into a pick up socket. The stack always contains 3 pieces, and once all are used, it is refilled by the operator. The parts are picked up by a jaw gripper. The robot is equipped with an optical sensor. The sensor spot has a diameter of 2 mm. Our gripper has a clearance of 7 mm between the jaws and the object when the jaws are fully open. A positional error greater than 7 mm will result in a robot collision. How can we find the centers of the circles (discs), which will serve as pick-up positions?<\/p>\n<h4><strong>Calculations<\/strong><\/h4>\n<p>To determine the center of a circle, we need at least 3 points located on its circumference.<\/p>\n<h4><strong>Equation for a Circle in a Plane<\/strong><\/h4>\n<p>For a circle lying on a 2D plane, the calculations are as follows:<\/p>\n<p>1. Plane equations:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1001 aligncenter\" style=\"font-size: 1rem;--tw-scale-x: 1;--tw-scale-y: 1;--tw-scroll-snap-strictness: proximity;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/1.png\" alt=\"\" width=\"308\" height=\"48\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/1.png 308w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/1-300x47.png 300w\" sizes=\"auto, (max-width: 308px) 100vw, 308px\" \/><\/p>\n<p><span style=\"font-size: 1rem\">2. Sub<\/span><span style=\"font-size: 1rem\">stitute the coordinates of 3 points into the equation:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1002 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/2.png\" alt=\"\" width=\"356\" height=\"152\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/2.png 356w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/2-300x128.png 300w\" sizes=\"auto, (max-width: 356px) 100vw, 356px\" \/><\/p>\n<p>3. Form a system of equations based on these formulas:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1003 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/3.png\" alt=\"\" width=\"580\" height=\"105\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/3.png 580w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/3-300x54.png 300w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/p>\n<p>Then, using formulas of squared binomials, we transform the system of equations to obtain values for xs and ys, which denote the center of the desired circle.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1004 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/4.png\" alt=\"\" width=\"768\" height=\"111\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/4.png 768w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/4-300x43.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/p>\n<p>By applying the substitution method<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1005 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/5.png\" alt=\"\" width=\"641\" height=\"51\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/5.png 641w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/5-300x24.png 300w\" sizes=\"auto, (max-width: 641px) 100vw, 641px\" \/><\/p>\n<p>we can find the coordinates xs and ys:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1006 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/6.png\" alt=\"\" width=\"867\" height=\"202\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/6.png 867w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/6-300x70.png 300w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/6-768x179.png 768w\" sizes=\"auto, (max-width: 867px) 100vw, 867px\" \/><\/p>\n<p>By substituting the known coordinates of the points on the circle into the above formulas, we obtain the coordinates of the circle center.<\/p>\n<h4><strong>Equations for 3D Space<\/strong><\/h4>\n<p>The above derivation is a simplification because the robot operates in 3D space. To stay focused on the core topic of this article, the derivation for the 3D case is presented in an appendix at the end of the article.<\/p>\n<h4><strong>Recording the calculation in the robot program<\/strong><\/h4>\n<p>The 2D plane point calculations are already quite complex and time-consuming to manually implement as mathematical functions in a robot program. Fortunately, we don&#8217;t need to write them ourselves, as a ready-made function exists for finding the circle center: CCENTER.<\/p>\n<p>CCENTER(pose1, pose2, pose3, pose4)<\/p>\n<p>Points 1\u20133 must lie on the circle, and the fourth point serves to copy the desired orientation.<\/p>\n<p>&nbsp;<\/p>\n<h4><strong>Engineering problem software<\/strong><\/h4>\n<p>Mathematical part complete. How do we now find 3 points on the edge of our object?<\/p>\n<p>Typically, programmers use the XMOVE function, which allows the robot to move until a specified input signal is detected. The robot then stops, and after stopping, the programmer records the current TCP position as the detection point. The downside of this approach is that the sensor signal must remain stable for at least 50 ms to be recognized as a detection. Additionally, the robot\u2019s deceleration path must be considered. If a robot with a heavy gripper is braking from high speed, it may slightly miss the actual detection position.<\/p>\n<p>When using the program shown below, the detection point will depend on the sensor response time, its hysteresis, and the TCP speed of the robot. The higher the speed, the further away the point detect1 will be from the actual detected edge.<\/p>\n<p style=\"text-align: left\">XMOVE pt1 TILL 1001<\/p>\n<p style=\"text-align: left\">BREAK<\/p>\n<p style=\"text-align: left\">HERE detect1<\/p>\n<p style=\"text-align: left\">&#8230;<\/p>\n<p>The function that records the robot&#8217;s position to memory at the exact moment the sensor detects an object is called HSENSE. It monitors the sensor signal status and, when a change is detected, saves the current joint position to a buffer. Unlike XMOVE, HSENSE does not require the robot to stop its motion, and the required signal duration is much shorter. Typically, 2 ms is enough, as this corresponds to the input refresh rate for most Kawasaki controllers.<\/p>\n<p>How can we practically use the functions described above?<\/p>\n<p><strong>Example program using XMOVE<\/strong><\/p>\n<p style=\"text-align: left\">TOOL sensor_tool ; setting the sensor as TCP<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 ;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Move to the search position<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 HOME<\/p>\n<p style=\"text-align: left\">\u00a0 LMOVE start<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 ;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Move through the expected positions of the stack<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 ACCURACY 1 FINE<\/p>\n<p style=\"text-align: left\">\u00a0 SPEED search_speed mm\/s<\/p>\n<p style=\"text-align: left\">\u00a0 XMOVE p1 TILL 1001<\/p>\n<p style=\"text-align: left\">\u00a0 BREAK<\/p>\n<p style=\"text-align: left\">\u00a0 HERE found1<\/p>\n<p style=\"text-align: left\">\u00a0 SPEED search_speed mm\/s<\/p>\n<p style=\"text-align: left\">\u00a0 LMOVE p1<\/p>\n<p style=\"text-align: left\">\u00a0 SPEED search_speed mm\/s<\/p>\n<p style=\"text-align: left\">\u00a0 XMOVE p2 TILL 1001<\/p>\n<p style=\"text-align: left\">\u00a0 BREAK<\/p>\n<p style=\"text-align: left\">\u00a0 HERE found2<\/p>\n<p style=\"text-align: left\">\u00a0 SPEED search_speed mm\/s<\/p>\n<p style=\"text-align: left\">\u00a0 LMOVE p2<\/p>\n<p style=\"text-align: left\">\u00a0 SPEED search_speed mm\/s<\/p>\n<p style=\"text-align: left\">\u00a0 XMOVE p3 TILL 1001<\/p>\n<p style=\"text-align: left\">\u00a0 BREAK<\/p>\n<p style=\"text-align: left\">\u00a0 HERE found3<\/p>\n<p style=\"text-align: left\">\u00a0 SPEED search_speed mm\/s<\/p>\n<p style=\"text-align: left\">\u00a0 LMOVE p3<\/p>\n<p style=\"text-align: left\">\u00a0 MVWAIT 1<\/p>\n<p style=\"text-align: left\">\u00a0 LDEPART 100<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 ;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Calculate the center position of the circle<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 POINT cylinder_x = CCENTER(found1, found2, found3, start)<\/p>\n<p style=\"text-align: left\"><strong>Example program using HSENSE<\/strong><\/p>\n<p style=\"text-align: left\">TOOL sensor_tool ; setting the sensor as TCP<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 ;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Move to the search position<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 SPEED 500 mm\/s<\/p>\n<p style=\"text-align: left\">\u00a0 LMOVE start<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 ;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Activate HSENSE function parameters<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 HSENSESET 1 = 1001, 20<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 ;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Pass through the expected stack positions<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 ACCURACY 1 FINE<\/p>\n<p style=\"text-align: left\">\u00a0 SPEED search_speed mm\/s ALWAYS<\/p>\n<p style=\"text-align: left\">\u00a0 LMOVE p1<\/p>\n<p style=\"text-align: left\">\u00a0 LMOVE p2<\/p>\n<p style=\"text-align: left\">\u00a0 LMOVE p3<\/p>\n<p style=\"text-align: left\">\u00a0 MVWAIT 1<\/p>\n<p style=\"text-align: left\">\u00a0 ;<\/p>\n<p style=\"text-align: left\">\u00a0 .num = 0<\/p>\n<p style=\"text-align: left\">\u00a0 loop:<\/p>\n<p style=\"text-align: left\">\u00a0 HSENSE1 .result_var, sig_status[.num+1], #hsense_pos[.num+1], .err_var, .mem<\/p>\n<p style=\"text-align: left\">\u00a0 IF .err_var &lt;&gt; 0 THEN<\/p>\n<p style=\"text-align: left\">\u00a0\u00a0\u00a0 .err = 3<\/p>\n<p style=\"text-align: left\">\u00a0\u00a0\u00a0 RETURN<\/p>\n<p style=\"text-align: left\">\u00a0 END<\/p>\n<p style=\"text-align: left\">\u00a0 ;<\/p>\n<p style=\"text-align: left\">\u00a0 IF .result_var == TRUE AND sig_status[.num+1] == TRUE THEN<\/p>\n<p style=\"text-align: left\">\u00a0\u00a0\u00a0 POINT detect[.num+1] = #hsense_pos[.num+1]<\/p>\n<p style=\"text-align: left\">\u00a0\u00a0\u00a0 .num = .num + 1<\/p>\n<p style=\"text-align: left\">\u00a0 END<\/p>\n<p style=\"text-align: left\">\u00a0 IF .mem GOTO loop<\/p>\n<p style=\"text-align: left\">\u00a0 ;<\/p>\n<p style=\"text-align: left\">\u00a0 HSENSESET 1 = 0<\/p>\n<p style=\"text-align: left\">\u00a0 SPEED 500 mm\/s<\/p>\n<p style=\"text-align: left\">\u00a0 LDEPART 100<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 ;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Calculate the center position of the circle<\/p>\n<p style=\"text-align: left\">\u00a0 ;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p style=\"text-align: left\">\u00a0 POINT cylinder = CCENTER(detect[1], detect[2], detect[3], start)<\/p>\n<h4><strong>Comparison of Results<\/strong><\/h4>\n<p>The key parameters for comparing both solutions are: program execution time and detection accuracy. In most robotic applications, we focus on two factors: precision and performance. When we have access to high-end equipment, such as Kawasaki Robotics robots, it\u2019s worth leveraging their full potential through smart programming and optimized code. Sampling speeds for search movements were assumed as shown in the table below. All other movements are performed at a speed of 500 mm\/s.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1025 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-120013.png\" alt=\"\" width=\"739\" height=\"52\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-120013.png 739w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-120013-300x21.png 300w\" sizes=\"auto, (max-width: 739px) 100vw, 739px\" \/><\/p>\n<p><span style=\"font-size: 1rem\">Comparison of Achieved Accuracy Relative to the Position in K-Roset:<\/span><\/p>\n<p>The center of the workpiece in K-Roset was set at position X = 300, Y = 600 relative to the robot&#8217;s base coordinate system.<\/p>\n<p>By using a simple distance formula between a point and the center of the circle, we can determine whether the robot is able to safely pick up the part without collision.<\/p>\n<p>Green indicates test results that met our assumptions for collision free operation.<\/p>\n<h4><strong>Summary<\/strong><\/h4>\n<p>As demonstrated by the tests, the HSENSE function performs very well in non-contact measurement applications. A buffer of 20 detection positions, the ability to react to both rising and falling signal edges, and the possibility of simultaneously monitoring two signals provide a wide range of capabilities. In object detection scenarios where there is no collision risk, HSENSE can significantly reduce search time, and therefore also improve the overall cycle time of the application.<\/p>\n<p>The XMOVE function performs well when detecting objects at low speeds. It can be used for measurements, but it is primarily designed for detecting objects along the robot\u2019s motion path, so that the detected object can be picked up in the next step.<\/p>\n<p>As the test results have shown, both functions can be used for object detection. However, to fully utilize their potential, they should be applied where each shows its clear advantage.<\/p>\n<p>The HSENSE function works well for noncontact measurements where we can quickly determine points on the edges of an object. However, it is not suitable when the object detection happens along a collision path.<\/p>\n<p>XMOVE shows its advantage in detecting and picking up a part located directly on a collision path. By using two sensors and cascading the XMOVE functions, we can approach, for example, a stack of separators at high speed. After detection at a safe distance by the first sensor, we reduce the robot TCP speed and then search for the exact height of the separator on the stack at a low speed. Once detected, we stop the robot and pick up the separator, all on a single motion path.<\/p>\n<p>Using the right combination of these two functions allows us to unlock the full potential of both efficiency and precision in our robotic application.<\/p>\n<h4><strong>Appendix<\/strong><\/h4>\n<p>Derivation of formulas for a circle in three-dimensional space<\/p>\n<p>Let&#8217;s assume points:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1007 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/7.png\" alt=\"\" width=\"516\" height=\"41\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/7.png 516w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/7-300x24.png 300w\" sizes=\"auto, (max-width: 516px) 100vw, 516px\" \/><\/p>\n<p>which lie on the circle. The center of the circle at point S has the following coordinates:<\/p>\n<p>1. Calculate vectors between points A, B, C:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1008 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/8.png\" alt=\"\" width=\"388\" height=\"81\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/8.png 388w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/8-300x63.png 300w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/p>\n<p>2. Determine the equation of the plane:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1009 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/9.png\" alt=\"\" width=\"382\" height=\"42\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/9.png 382w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/9-300x33.png 300w\" sizes=\"auto, (max-width: 382px) 100vw, 382px\" \/><\/p>\n<p>3. Knowing that the points on the circle are equally distant from the center of the circle by the radius:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1010 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/10.png\" alt=\"\" width=\"527\" height=\"49\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/10.png 527w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/10-300x28.png 300w\" sizes=\"auto, (max-width: 527px) 100vw, 527px\" \/><\/p>\n<p>Simplifying the formula, we get:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1011 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/11.png\" alt=\"\" width=\"627\" height=\"53\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/11.png 627w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/11-300x25.png 300w\" sizes=\"auto, (max-width: 627px) 100vw, 627px\" \/><\/p>\n<p>Similarly, for points A and C, we can write an equation:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1012 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/12.png\" alt=\"\" width=\"617\" height=\"53\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/12.png 617w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/12-300x26.png 300w\" sizes=\"auto, (max-width: 617px) 100vw, 617px\" \/><\/p>\n<p>The third equation comes from the fact that point O lies on the plane defined by points A, B, and C:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1013 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/13.png\" alt=\"\" width=\"381\" height=\"51\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/13.png 381w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/13-300x40.png 300w\" sizes=\"auto, (max-width: 381px) 100vw, 381px\" \/><\/p>\n<p>4. We set up and solve a system of three linear equations, using the substitution method to simplify the notation.<\/p>\n<p>For the first equation, we assume:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1014 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/14.png\" alt=\"\" width=\"281\" height=\"129\" \/><\/p>\n<p>Similarly, for the second equation:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1015 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/15.png\" alt=\"\" width=\"278\" height=\"129\" \/><\/p>\n<p>And for the third equation:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1016 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/16.png\" alt=\"\" width=\"227\" height=\"139\" \/><\/p>\n<p>We obtain the following system of equations:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1017 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/17.png\" alt=\"\" width=\"239\" height=\"101\" \/><\/p>\n<p>5. Using Cramer&#8217;s rule, we write the system in matrix form and calculate the determinants of the matrices:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1018 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/18.png\" alt=\"\" width=\"153\" height=\"73\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/18.png 153w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/18-150x73.png 150w\" sizes=\"auto, (max-width: 153px) 100vw, 153px\" \/><\/p>\n<p>The main matrix A has the following form:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1019 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/19.png\" alt=\"\" width=\"175\" height=\"101\" \/><\/p>\n<p>Finally, we calculate the determinants of the matrices:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1020 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/20.png\" alt=\"\" width=\"237\" height=\"270\" \/><\/p>\n<p>6. After transformations, we obtain the coordinates of the center of the circle:\u200b<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1021 aligncenter\" src=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/21.png\" alt=\"\" width=\"328\" height=\"65\" srcset=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/21.png 328w, https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/21-300x59.png 300w\" sizes=\"auto, (max-width: 328px) 100vw, 328px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, you will learn: how to perform precise positioning in handling applications, what the HSENSE and XMOVE functions are and how they work, how to use these functions for accurate positioning. In simplified terms, a robot working in a general handling application is typically tasked with moving an object from point A to<a href=\"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/\">Continue reading <span class=\"sr-only\">&#8220;Object Detection &#8216;On the Fly&#8217; with Kawasaki Robotics  &#8211; Comparison of HSENSE and XMOVE Functions&#8221;<\/span><\/a><\/p>\n","protected":false},"author":27,"featured_media":1022,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[17],"tags":[],"class_list":["post-1000","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>Object Detection &#039;On the Fly&#039; with Kawasaki Robotics - Comparison of HSENSE and XMOVE Functions - ASTOR EN<\/title>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_GB\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Object Detection &#039;On the Fly&#039; with Kawasaki Robotics - Comparison of HSENSE and XMOVE Functions - ASTOR EN\" \/>\r\n<meta property=\"og:description\" content=\"In this article, you will learn: how to perform precise positioning in handling applications, what the HSENSE and XMOVE functions are and how they work, how to use these functions for accurate positioning. In simplified terms, a robot working in a general handling application is typically tasked with moving an object from point A toContinue reading &quot;Object Detection &#8216;On the Fly&#8217; with Kawasaki Robotics &#8211; Comparison of HSENSE and XMOVE Functions&quot;\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/\" \/>\r\n<meta property=\"og:site_name\" content=\"ASTOR EN\" \/>\r\n<meta property=\"article:published_time\" content=\"2025-08-14T12:00:05+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-115728.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"712\" \/>\r\n\t<meta property=\"og:image:height\" content=\"412\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\r\n<meta name=\"author\" content=\"Piotr Kaczorowski\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Piotr Kaczorowski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/\"},\"author\":{\"name\":\"Piotr Kaczorowski\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/#\\\/schema\\\/person\\\/5196ee455a045fd7c069cf3404105eb6\"},\"headline\":\"Object Detection &#8216;On the Fly&#8217; with Kawasaki Robotics &#8211; Comparison of HSENSE and XMOVE Functions\",\"datePublished\":\"2025-08-14T12:00:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/\"},\"wordCount\":1753,\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/Zrzut-ekranu-2025-08-13-115728.png\",\"articleSection\":[\"Articles\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/\",\"name\":\"Object Detection 'On the Fly' with Kawasaki Robotics - Comparison of HSENSE and XMOVE Functions - ASTOR EN\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/Zrzut-ekranu-2025-08-13-115728.png\",\"datePublished\":\"2025-08-14T12:00:05+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/#\\\/schema\\\/person\\\/5196ee455a045fd7c069cf3404105eb6\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/Zrzut-ekranu-2025-08-13-115728.png\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/wp-content\\\/uploads\\\/2025\\\/08\\\/Zrzut-ekranu-2025-08-13-115728.png\",\"width\":712,\"height\":412},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Articles\",\"item\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/articles\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Object Detection &#8216;On the Fly&#8217; with Kawasaki Robotics &#8211; Comparison of HSENSE and XMOVE Functions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/\",\"name\":\"ASTOR EN\",\"description\":\"technology meets people\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/#\\\/schema\\\/person\\\/5196ee455a045fd7c069cf3404105eb6\",\"name\":\"Piotr Kaczorowski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/cropped-LEH_33791200-Srednie-96x96.jpg\",\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/cropped-LEH_33791200-Srednie-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/wp-content\\\/uploads\\\/2025\\\/07\\\/cropped-LEH_33791200-Srednie-96x96.jpg\",\"caption\":\"Piotr Kaczorowski\"},\"url\":\"https:\\\/\\\/www.astor.com.pl\\\/en\\\/author\\\/piotrkaczorowski\\\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Object Detection 'On the Fly' with Kawasaki Robotics - Comparison of HSENSE and XMOVE Functions - ASTOR EN","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.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/","og_locale":"en_GB","og_type":"article","og_title":"Object Detection 'On the Fly' with Kawasaki Robotics - Comparison of HSENSE and XMOVE Functions - ASTOR EN","og_description":"In this article, you will learn: how to perform precise positioning in handling applications, what the HSENSE and XMOVE functions are and how they work, how to use these functions for accurate positioning. In simplified terms, a robot working in a general handling application is typically tasked with moving an object from point A toContinue reading \"Object Detection &#8216;On the Fly&#8217; with Kawasaki Robotics &#8211; Comparison of HSENSE and XMOVE Functions\"","og_url":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/","og_site_name":"ASTOR EN","article_published_time":"2025-08-14T12:00:05+00:00","og_image":[{"width":712,"height":412,"url":"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-115728.png","type":"image\/png"}],"author":"Piotr Kaczorowski","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Piotr Kaczorowski","Estimated reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/#article","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/"},"author":{"name":"Piotr Kaczorowski","@id":"https:\/\/www.astor.com.pl\/en\/#\/schema\/person\/5196ee455a045fd7c069cf3404105eb6"},"headline":"Object Detection &#8216;On the Fly&#8217; with Kawasaki Robotics &#8211; Comparison of HSENSE and XMOVE Functions","datePublished":"2025-08-14T12:00:05+00:00","mainEntityOfPage":{"@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/"},"wordCount":1753,"image":{"@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-115728.png","articleSection":["Articles"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/","url":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/","name":"Object Detection 'On the Fly' with Kawasaki Robotics - Comparison of HSENSE and XMOVE Functions - ASTOR EN","isPartOf":{"@id":"https:\/\/www.astor.com.pl\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/#primaryimage"},"image":{"@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/#primaryimage"},"thumbnailUrl":"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-115728.png","datePublished":"2025-08-14T12:00:05+00:00","author":{"@id":"https:\/\/www.astor.com.pl\/en\/#\/schema\/person\/5196ee455a045fd7c069cf3404105eb6"},"breadcrumb":{"@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/#primaryimage","url":"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-115728.png","contentUrl":"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/08\/Zrzut-ekranu-2025-08-13-115728.png","width":712,"height":412},{"@type":"BreadcrumbList","@id":"https:\/\/www.astor.com.pl\/en\/articles\/object-detection-on-the-fly-with-kawasaki-robotics-comparison-of-hsense-and-xmove-functions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.astor.com.pl\/en\/"},{"@type":"ListItem","position":2,"name":"Articles","item":"https:\/\/www.astor.com.pl\/en\/articles\/"},{"@type":"ListItem","position":3,"name":"Object Detection &#8216;On the Fly&#8217; with Kawasaki Robotics &#8211; Comparison of HSENSE and XMOVE Functions"}]},{"@type":"WebSite","@id":"https:\/\/www.astor.com.pl\/en\/#website","url":"https:\/\/www.astor.com.pl\/en\/","name":"ASTOR EN","description":"technology meets people","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.astor.com.pl\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.astor.com.pl\/en\/#\/schema\/person\/5196ee455a045fd7c069cf3404105eb6","name":"Piotr Kaczorowski","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/07\/cropped-LEH_33791200-Srednie-96x96.jpg","url":"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/07\/cropped-LEH_33791200-Srednie-96x96.jpg","contentUrl":"https:\/\/www.astor.com.pl\/en\/wp-content\/uploads\/2025\/07\/cropped-LEH_33791200-Srednie-96x96.jpg","caption":"Piotr Kaczorowski"},"url":"https:\/\/www.astor.com.pl\/en\/author\/piotrkaczorowski\/"}]}},"_links":{"self":[{"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/posts\/1000","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/comments?post=1000"}],"version-history":[{"count":3,"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/posts\/1000\/revisions"}],"predecessor-version":[{"id":1051,"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/posts\/1000\/revisions\/1051"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/media\/1022"}],"wp:attachment":[{"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/media?parent=1000"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/categories?post=1000"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.astor.com.pl\/en\/wp-json\/wp\/v2\/tags?post=1000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}