Preprint
Article

Energy Aware Camera Location Search Algorithm for Increasing Precision of Observation in Automated Manufacturing

Altmetrics

Downloads

181

Views

41

Comments

0

A peer-reviewed article of this preprint also exists.

This version is not peer-reviewed

Submitted:

23 August 2024

Posted:

26 August 2024

You are already at the latest version

Alerts
Abstract
Visual servoing technology has been well developed and applied in many automated manufacturing tasks, especially in tools’ pose alignment. To access a full global view of tools, most applications adopt eye-to-hand configuration or eye-to-hand/eye-in-hand cooperation configura-tion in an automated manufacturing environment. All research papers mainly put efforts into developing control and observation architectures in various scenarios, but none of them has dis-cussed the importance of the camera’s location in eye-to-hand configuration. In a manufacturing environment, the quality of camera estimations may vary significantly from one observation loca-tion to another, as the combined effects of environmental conditions result in different noise levels of a single image shot at different locations. In this paper, we propose an algorithm for the camera’s moving policy so that it explores the camera workspace and searches for the optimal location where the images’ noise level is minimized. Also, this algorithm ensures the camera ends up at a subop-timal (if the optimal one is unreachable) location among the locations already searched, with limited energy available for moving the camera. An automated manufacturing application has been sim-ulated and the results show the success of this algorithm’s improvement of observation precision with limited energy.
Keywords: 
Subject: Engineering  -   Control and Systems Engineering

1. Introduction

In automated industry, automatic alignment plays a critical role in many different applications, such as micromanipulation, autonomous welding, and industrial assembly [1,2,3]. Visual servoing is the technique commonly used in the tasks of alignment as it can guide robotic manipulators to their desired poses (positions and orientations) [4,5,6]. Visual servoing is the method of controlling a robot’s motion using real-time feedback from visual sensors that continuously extract image features [7].
According to the relative positions between cameras and the tool manipulators, visual servoing can be generally divided into two categories: eye-in-hand (EIH) configuration and eye-to-hand (ETH) configuration [8,9]. In EIH, a camera is mounted directly on a robot manipulator, in which case the motion of the robot induces motion of the camera, while in ETH, the camera is fixed in the workspace and observes the motion of the robot from a stationary configuration. Both configurations have their own merits and drawbacks regarding field of view limit and precision that oppose each other. EIH has a partial but precise view of the scene whereas ETH has a global but less precise view of it [10]. For complex tasks in automated manufacturing, one configuration of visual servoing is not adequate as those tasks require the camera to provide global views and to be maneuverable enough to explore the scene [10]. To take advantage of both stationary and robot-mounted sensors, two configurations can be employed in a cooperative scheme, which can be seen in some of the work [11,12,13].
However, we haven’t seen enough discussion on the importance of cameras’ location in the ETH or ETH/EIH cooperative configurations from any work published. To observe a single point in the workspace, there are an infinite number of poses that a fixed camera can be placed in the space. Among all possible poses of the camera that keep the same target within the field of view limit, the image noise at different locations may play a great role in the precision of observations. Many environmental conditions (such as illumination, temperature, etc.) affect the noise level of a single image [14]. In a manufacturing environment, the quality of estimations from a camera may vary significantly from one observation location to another. For instance, the precision of an estimation improves greatly if the camera moves from a location where it is placed within the shade of machines to a location that has better illumination. Also, places near machines may be surrounded by strong electrical signals that also introduce extra noise into the camera sensors.
It is intuitive to consider applying filters to reduce image noise, and therefore, to increase the precision of observations. The Gaussian white noise can be dealt with using spatial filters, e.g., the Gaussian filter, the Mean filter, and the Wiener filter [15]. In addition, wavelet methods [16,17] have the benefit of keeping more useful details but at the expense of computational complexity. However, filters that operate in the wavelet domain still inevitably filter out (or blur) some important high-frequency useful information of the original image, even though they succeed in preserving more edges, compared with spatial filters. Especially at locations where the signal-to-noise ratio (SNR) in an image is low, no matter what filters are applied, it is difficult to safeguard the edges of the noise-free image as well as reduce the noise to a desirable level. Thus, developing an algorithm that searches for locations of the camera where SNR is high is beneficial.
We can approach the denoising problem with multiple noisy images taken from the same perspective. This method is called signal averaging (or image averaging in the application of image processing) [18]. Assume images taken from the same perspective but at different times have the same noise levels. Then averaging multiple images at the same perspective will reduce the unwanted noise as well as retain all original image details. We can also assume the robot’s end effector holds the camera rigidly so that any shaking and drift are negligible when shooting pictures. Moreover, the number of images required for averaging is proportional to the ratio of an image’s original noise level to the reduced level that is desirable for observations. Therefore, the number of images required is a measurement of noise level in a single image. Furthermore, in the denoising process, the precise estimations require that the original image details are retained as much as possible. Based on previous statements, we decided to choose image averaging over all other denoising techniques in this work.
In this paper, we propose an algorithm that searches for the camera’s workspace to find an optimal location (if its orientation is fixed) of the camera so that a single image taken at this location has the smallest noise level among images taken at all locations in the space. With limited energy for moving the camera, this algorithm also ensures the camera ends up at a suboptimal (if the optimal pose is unreachable) location among the locations already searched.

2. Methods

2.1. Camera Location Search Process and Algorithm Flowchart

The proposed algorithm is aimed to search and move the camera to the location where the least number of pictures are needed to reduce the noise level of the averaged image to a degree σ n o i s e _ r e d u c e d . A flowchart describing the algorithm is shown in Figure 1.
A camera, mounted on a 6-joint robot manipulator, moves freely in 6 degrees of freedom (6 DoFs) in space. Assuming the camera is fixed in orientation towards the face of the object of interest, only the position (3 DoFs) of the camera can vary from the movement of the robot arm. The camera can only move to the locations within the maximum reach of the robot manipulator and the object can only be detectable within the view angle of the camera. Those constraints create a camera operational space (Figure 2a), which is then gridded with a certain resolution of distance. All the intersections of grids come up with a set of nodes ( S t o t a l ), which are all possible candidates of locations that the camera may move and search utilizing the algorithm. Each node is indexed and denoted as N o d e i n d e x .
represents Euclidean distance (green line).
The algorithm iteratively commands the camera to take a picture at one location, generate the next target location, and move to that location until it finds the optimal location that requires the least number of pictures. In one iteration, the camera takes a photo at the current location P C and after image processing, it produces a noisy image with an intensity matrix I a . A previously developed algorithm [19] estimates the noise level σ a across the image. Then, at the current location of the camera, the number of pictures N C needed to reduce the noise level to σ n o i s e _ r e d u c e d is calculated by the equation: N C = ( σ a σ n o i s e _ r e d u c e d ) 2 . Based on this information ( N C at P C ), the algorithm then generates the next target location of the camera, P N e x t . If the next generated target position P N e x t is the same as the current position P C , P C is the optimal location and the camera stays and observes the object at this location. Otherwise, the robot joint controller moves the robot joint angles to the targets q ¯ (calculated from forward kinematics [20] (Appendix Equation (B1)–(B5))) so that the camera will move to the next target position, P N e x t .

2.2. Core Alogorithm

The core of this algorithm is to generate the target locations to be explored in the camera’s operational space. The details of this algorithm are shown in the area circled with dashed lines in Figure 1. In this section, we will put efforts into the development of the picture number estimation function, the explorable nodes set, the stochastic modified evaluation function, the next location selection process, and the estimated energy cost function.

2.2.1. Picture Number Estimation Function

In each iteration of the algorithm, the camera moves to a new node with location P C , and the algorithm evaluates the number of pictures N C needed at this location. The node N o d e i n d e x   is then set to be explored and saved in a set S e x p l o r e d . Each node that has been explored in iterations is one-on-one paired with the values: location, and picture numbers of that node. All pairs that are expressed as N o d e i n d e x e x p l o r e d : ( P i n d e x e x p l o r e d , N i n d e x e x p l o r e d ) are saved in a hash map M e x p l o r e d . Then M e x p l o r e d is used to develop an estimation function that can estimate the number of pictures needed for the rest unexplored nodes. The estimated picture number calculated for all nodes in space is denoted as S N ~ . Expressions of any element in S N ~ are:
For any node index x in the Total Node Set: S t o t a l = { N o d e x | x 1,2 , m } , where m is the total number of nodes.
N ~ x = i S i n d e x e x p ( E D ¯ P i e x p , P x ^ ( K e s t ) ) j S i n d e x e x p ( ( E D ¯ P j e x p , P x ^ ( K e s t ) ) N i e x p l o r e d N x e x p l o r e d ,     i f   N o d e x   S e x p l o r e d   ,   i f   N o d e x S e x p l o r e d
Then :   S N ~ = { N ~ x | x 1,2 , m }
where K e s t   is a positive constant parameter
S i n d e x e x p = { i n d e x | N o d e i n d e x S e x p l o r e d }
E D ¯ P a , P b = ( P a x P b x ) 2 + ( P a y P b y ) 2 + ( P a z P b z ) 2   with   P a , P b   are   3 D   locations   of   N o d e a   a n d   N o d e b : P a = P a x , P a y , P a z   a n d   P b = ( P b x , P b y , P b z )
Equation (1) is a weighted function concerning each explored node. If one explored node N o d e i e x p l o r e d   is closer to the node N o d e x e x p l o r e d , its picture number N i e x p l o r e d has a larger weight (effect) on the estimation of N ~ x . Thus, a minus sign of K e s t is utilized to indicate the negative correlation between the Euclidean distance and weight.
Equation (1) shows that at least some initial nodes are required to be explored before their values can be used to estimate the picture numbers in other nodes. For the estimation function to work properly by covering all nodes in the camera operational space, four initial nodes are selected in the following steps:
  • Find the first two nodes on the boundary of operational space so that the Euclidean distance between these two nodes is the largest.
  • Select other two nodes whose connection line is perpendicular to the previous connection line and the Euclidean distance between these two nodes is also the largest among all possible node pairs.
  • Move the camera to those four nodes in space with proper orientation. Take a single image at each location and estimate the number of pictures required at those locations. And save all four nodes in S e x p l o r e d and their values in M e x p l o r e d .
Figure 2b shows the selection of four initial nodes in a camera operational space and shows an example of the use of the estimation function to estimate the picture number in one node.

2.2.2. Explorable Node Selection

A stage in the algorithm, Explorable Node Selection, generates a set of nodes   S e x p l o r a b l e ,   which contains all the camera’s next explorable locations from the current location P C   with a v a i l a b l e current energy for moving E b o u n d . The explorable set is found in the following steps (Figure 3):
  • With current energy bound E b o u n d , find all nodes in the space that can be reached from the current node P c . In other words, all feasible nodes are in the set:
    S f e a s i b l e = { N o d e i n d e x | E ( P c , P i n d e x ) E b o u n d }
    where P is the position of a node and E ( P a , P b ) is the estimated energy cost from P a   t o   P b .
When the current energy bound E b o u n d is greater than a predefined energy threshold E T ( E b o u n d > E T ), then the algorithm is safe to explore all nodes in the feasible range S f e a s i b l e in the next iteration loop. In other words:
S e x p l o r a b l e = S f e a s i b l e   ,     i f   E b o u n d > E T  
Note: E ( P a , P b ) is generated from a dynamic model of a robot arm control system. The details of this function are developed in the following section of this paper.
2.
When E b o u n d E T , step 2 and step 3 are applied in finding the explorable set. In the feasible set, look at all explored nodes and find the one that has the smallest number of pictures. In other words:
S f e a s & e x p = { N o d e i n d e x | N o d e i n d e x S f e a s i b l e S e x p l o r e d }  
e x p _ m i n = { i n d e x | N e x p _ m i n = min N i n d e x N o d e i n d e x S f e a s & e x p }
where S e x p l o r e d is the set of all explored nodes.
S f e a s & e x p is the intersection set between S f e a s i b l e and S e x p l o r e d .
3.
The estimation function may not give accurate results for some unexplored nodes. Therefore, it is possible that the algorithm may make the camera end up in a node that has a large number of pictures in some iteration loops. Because of that, our algorithm needs to make sure at worst it has enough energy to go back to the best (minimum number of pictures) node that has been explored when the available energy is low ( E b o u n d E T ). This further reduces the feasible set S f e a s i b l e . The explorable set S e x p l o r a b l e can be written as:
S e x p l o r a b l e = N o d e i n d e x E 1 + E 2 E b o u n d , i f   E b o u n d E T
E 1 = E ( P c , P i n d e x ) ,   E 2 = E ( P i n d e x , P e x p _ m i n )
Figure 3 illustrates the selection of explorable nodes set.

2.2.3. Stochastic Modified Evaluation

For all nodes in S e x p l o r a b l e , we set up a hash map M e x p l o r a b l e . For each node, its location and number of required pictures for that node are given as: N o d e i n d e x e x p l o r a b l e : ( P i n d e x e x p l o r a b l e , N ~ i n d e x e x p l o r a b l e ). The number of pictures required for nodes in S e x p l o r a b l e are calculated from the estimation function in Equation (1).
The algorithm tends to select nodes located around the explored node that has the minimum number of pictures because, from Equation (1), those nodes tend to have the smallest estimated number of pictures. However, this process does not guarantee reaching the global minimum, therefore, minimizing the number of pictures. To sufficiently explore unknown nodes as well as exploit information from already explored nodes, a stochastic process is introduced to modify the picture number estimation function given in Equation (1).
Assume when the locations of a camera in space deviate with a smaller amount from each other, the difference of real picture number values at those locations is also smaller. Thus, among all unexplored nodes, the estimated picture number of an unexplored node, which is closer to the explored node, is more deterministic. To emphasize this feature, we make the estimated picture number follow a normal distribution with a mean μ N ~   being equal to the value from Equation (1) and a standard deviation σ N ~ . As an unexplored node is further away from explored nodes, the larger value of σ N ~ should be assumed, which means more indeterministic estimation (illustrated in Figure 4). The following equations summarize the above discussion:
For any nodes   N o d e i n d e x = x e x p l o r a b l e in S e x p l o r a b l e , its picture number estimation should follow the following normal distributions:
P ( Z x ) = N ( μ N ~ x , σ N ~ x )
μ N ~ x = N ~ x e x p l o r a b l e
σ N ~ x = K s d   E D ¯ m i n
where P ( Z x ) is the probability of a random variable Z at N o d e x e x p l o r a b l e . N ~ x e x p l o r a b l e is the estimated value from Equation (1) of N o d e x e x p l o r a b l e .   K s d is a constant parameter, and E D ¯ m i n is the smallest Euclidean distance among distances between that node and explored nodes.
As discussed above, the algorithm ensures that the camera at any iteration, always has enough energy to move back to the previous best node N e x p _ m i n . Therefore, a new distribution can be generated, which sets values bigger than the minimum ( N e x p _ m i n ) in the original distribution to be the minimum value. Then Equations (11) to (13) are modified with a new random variable Z x n e w   and its expectations as follows:
Z x n e w = Z x ,     i f   Z x < N e x p _ m i n   N e x p _ m i n ,       i f   Z x   N e x p _ m i n
P Z x n e w = P ( Z x ) = N ( μ N ~ x , σ N ~ x )
N ^ x e x p l o r a b l e = [ Z x n e w P Z x n e w ]
where N ^ x e x p l o r a b l e is the stochastic modified estimated value for the node N o d e x e x p l o r a b l e .
Then a new hash map M ^ e x p l o r a b l e is set up with pairs as N o d e i n d e x e x p l o r a b l e : ( P i n d e x e x p l o r a b l e , N ^ x e x p l o r a b l e ). The next target node to be explored is the one that has the smallest modified estimated value in the map:
i n d e x N e x t = i n d e x N ^ i n d e x N e x t e x p l o r a b l e = min ( N ^ i n d e x e x p l o r a b l e ) }
P N e x t = P i n d e x N e x t e x p l o r a b l e
> σ 2 ) to differentiate possibility distributions. This approach distinguishes nodes that have the same estimations from equation (1) to have different likelihood to be explored in the next iteration.

2.2.4. Estimated Energy Cost Function

As discussed above, an estimated energy cost function E ( P a , P b ) calculates the estimated energy cost from P a   t o   P b . This function is used to find feasible node set S f e a s i b l e   and explorable node set S e x p l o r a b l e . In this section, the equations for the cost function are derived from the robot positioning-controlled system’s response. Also, trade-offs between energy cost and settling time of moving are discussed.
The energy of moving the camera between two locations from P i n i t i a l to P f i n a l , results from the energy cost of DC motors in 6 DOFs robot arm’s each joint rotating from joint angles q i n i t i a l to q f i n a l . Therefore, E ( P i n i t i a l , P f i n a l ) can be described as the sum of the time integration of rotational power in each joint. That is:
E ( P i n i t i a l , P f i n a l ) = i = 1 6 t 0 i t f i V i · I i · d t  
where V i is the voltage and I i is the current in the DC motor’s circuit of the i t h joint. t 0 i and t f i are initial time and final time of the i t h joint moving from its initial angle q i n i t i a l i to its final angle q f i n a l i .
Without detailed derivation, the dynamic model of a 6dofs revolutionary robotic manipulator and DC motors can be expressed as [20]:
1 r k J m k q ¨ k + j = 1 6 d j , k q ¨ j + i , j 6 c i , j , k q q ˙ i q ˙ j + 1 r k B q ˙ k + Φ k q = K m r k R V i    
J m = J a + J g ,     B = B m + K b K m R
c i , j , k = 1 2 ( δ d k , j δ q i + δ d k , i δ q j δ d i , j δ q k ) ,   Φ k = δ V δ q k
i , j , k ( 1 ,   2 ,   3 ,   4 ,   5 ,   6 )
where Equations (20) and (21) express the k t h joint dynamics equation. q i / q j / q k   is the joint revolute variable. J a a n d J g represent the moment of inertia of the motor, and the gear of the model. r k is gear ratio at k t h joint, and B m is the damping effect of the gear. d i , j represents the entry of inertial matrix of the robot manipulator at i t h row and j t h column. c i , j , k is Christoffel symbols and for a fixed k , with c i , j , k = c j , i , k . And Φ k is the derivative of potential energy V with respective to k t h joint variance. K m is the torque constant in N m / a m p ,   K b is the back emf constant, and R is Armature Resistance.
Take u i as the actuator input to the dynamic system (20) measured at i t h joint from a designed controller. Therefore, u i equals to the right-side of Equation (20). That is:
V i = r R K m u i
In addition, without derivation, the expression of current in the Laplace domain [20] is:
L s + R I i s = V i s K b r s q i ( s )  
Then :   I i s = 1 L s + R V i s K b r s L s + R q i s
Take   the   inverse   Laplace :   I i t = 1 L e R L t V i t K b r ( 1 L R L 2 e R L t ) q i t
where L is armature inductance ,   K b is back emf constant, and is the convolutional multiplication. Therefore, the instant current in the time domain I i t is a function of the instant voltage V i t and the instant angle q t .
Various controller designs, such as PID controller [21], and Youla controller [22], of six DoFs revolute robotic manipulators have been well developed in many papers. In this paper, we use a previous Youla controller design [22] with feedback linearization (Figure 5) as the position controller of the robot manipulator that holds the camera.
From Figure 5, the actuator input u i can be derived from a virtual input v i so that:
u i = M ( q i t ) v i + H ( q i t , q i ˙ ( t ) )
where M, and H are nonlinear functions of q i t , and q i ˙ ( t ) , the first derivative of q i t . Without showing the controller development in this paper, the 1 DoF controller transfer function G c s   and 1 DoF nominal plant G p s   with v i as the virtual actuator input in the feedback linearization are expressed as follows:
G c ( s ) = 3 τ i n 2 s + 1 τ i n 3 s + 3 τ i n 2
G p ( s ) = 1 s 2
where τ i n is a constant parameter in the controller design.
Then the following transfer functions can be calculated as:
v i ( s ) q i f i n a l ( s ) = G c 1 + G c G p  
q i ( s ) q i f i n a l ( s ) = G c G p 1 + G c G p
q i ˙ ( s ) q i f i n a l ( s ) = s G c G p 1 + G c G p
By taking inverse Laplace transform, and q i f i n a l as a step input, the following equations in the time domain are:
v i t = ( q i f i n a l q i i n t i a l ) ( 1 τ i n 4 t 2 e t τ i n + 5 τ i n 3 t e t τ i n + 3 τ i n 2 e t τ i n )  
q i t = ( q i f i n a l q i i n t i a l ) ( 1 τ i n 2 t 2 e t τ i n 1 τ i n t e t τ i n e t τ i n + 1 ) + q i i n t i a l
q i ˙ ( t ) = ( q i f i n a l q i i n t i a l ) ( 3 τ i n 2 t e t τ i n 1 τ i n 3 t 2 e t τ i n )
With expressions of v i t ,   q i t ,   and q i ˙ ( t ) , Equations (24) and (28) shows that:
V i ( t ) = F ( q i i n t i a l ,     q i f i n a l , t )
And combine Equations (27) and (37):
I i ( t ) = G ( q i i n t i a l ,     q i f i n a l , t )
where F, and G are nonlinear functions of q i i n i t i a l ,     q i f i n a l , a n d   t .
It has been shown so far that the estimated energy cost E ( P i n i t i a l , P f i n a l ) from location P i n i t i a l   to P f i n a l is a function of q i n i t i a l and q f i n a l .
q i n i t i a l and q f i n a l are derived from the inverse kinematics process [20] (Shown in Appendix Equations (B6)–(B13)), that is:
q i n i t i a l = i n v e r k i n e m a t i c s ( P i n i t i a l )  
q f i n a l = i n v e r k i n e m a t i c s ( P f i n a l )
And   q i n i t i a l = q i i n i t i a l i 1,2 , 3,4 , 5,6 ,     q f i n a l = q i f i n a l i 1,2 , 3,4 , 5,6
Development of Equations (34) to (36) assumes that the target angle of each joint q i f i n a l   is a step input. A more realistic assumption is to set q i f i n a l as a delayed input.
q i f i n a l t = ( 1 e t τ d e l a y ) q i f i n a l
where τ d e l a y is a time constant that measures the time delay of the target in the real positioning control. τ d e l a y 0 , and when τ d e l a y = 0 , it indicates no delay exists in the input.
The Laplace form of (42) is:
q i f i n a l s = ( 1 s 1 s + 1 τ d e l a y ) q i f i n a l
With new expression of q i f i n a l s , Equation (34) to (36) can be developed as:
v i t = ( q i f i n a l q i i n t i a l ) ( A v τ i n 3 t 2 e t τ i n + B v B v τ i n 2 t e t τ i n + C v τ i n e t τ i n + D v τ d e l a y e t τ d e l a y )
A v = 1 τ i n τ d e l a y τ i n ( τ i n τ d e l a y ) B v = 5 τ i n 7 τ i n τ d e l a y 5 τ d e l a y 2 τ i n ( τ i n τ d e l a y ) 2 C v = 3 τ i n τ d e l a y ( 8 τ i n 2 + 9 τ i n τ d e l a y 3 τ d e l a y 2 ) τ i n ( τ i n τ d e l a y ) 3 D v = 3 τ i n τ d e l a y τ d e l a y 2 ( τ i n τ d e l a y ) 3
q i t = ( q i f i n a l q i i n t i a l ) ( A Q τ i n 3 t 2 e t τ i n + B Q τ i n 2 t e t τ i n + C Q τ i n e t τ i n + D Q τ d e l a y e t τ d e l a y + 1 ) + q i i n t i a l
A Q = τ i n + τ i n τ d e l a y ( τ i n τ d e l a y ) B Q = τ i n 3 τ i n 2 τ d e l a y τ i n τ d e l a y 2 ( τ i n τ d e l a y ) 2 C Q = τ i n 3 τ i n 2 τ d e l a y 2 + τ i n τ d e l a y 3 ( τ i n τ d e l a y ) 3 D Q = 3 τ i n τ d e l a y 3 τ d e l a y 4 ( τ i n τ d e l a y ) 3
q i ˙ ( t ) = ( q i f i n a l q i i n t i a l ) ( A Q ˙ τ i n 4 t 2 e t τ i n + B Q ˙ τ i n 3 t e t τ i n + C Q ˙ τ i n 2 e t τ i n + D Q ˙ τ d e l a y 2 e t τ d e l a y )
A Q ˙ =   - A Q B Q ˙ = 2 A Q B Q C Q ˙ = B Q C Q D Q ˙ = D Q
A simulation scenario is set up to calculate how estimated energy cost changes with varying τ d e l a y .   Set P i n i t i a l = [ 0.30 ,   0.05 ,   1.20 ] , and P f i n a l = [ 0.45 ,   0.45 ,   1.20 ] and use the equations above. Figure 6 shows the response of one angle q 1 t with varying τ d e l a y and Table 1 presents the estimated energy cost: E ( P i n i t i a l , P f i n a l ) and settling time: t s with varying τ d e l a y .
Table 1 clearly shows a tradeoff between the estimated energy cost and settling time; reducing the energy cost of moving the camera inevitably increases the response time. This finding matches the results in Figure 6.
If the delay of input is given or can be measured, the estimated energy cost can be calculated through the process in this section. However, if the value is unknown, the delay constant must be chosen and decided based on the following criteria:
  • Select small τ d e l a y for a conservative algorithm that searches a small area but ensures it ends up with the minimum that has been explored.
  • Select large τ d e l a y for an aggressive algorithm that searches a large area but risks not ending up at the minimum that has been explored.
In this section, the estimated energy cost function is well developed. The parameter values of motors and gears used in the simulations are summarized in Appendix Table A4.

3. Results and Discussion

The developed algorithm has been simulated on an application in automated manufacturing (Figure 7). This is a multi-robot system composed of a visual system and a tool manipulation system. In the visual system, a camera is mounted on an elbow robot arm while a tool is held by the end-effector of the robot manipulator arm. The goal of the visual system is to provide a precise estimation of the tool pose so that the tool manipulator can control the pose with guidance from the visual system. The first step of the manufacturing process is to move the camera in the space and search for the best location so that the number of images required for averaging is minimized to reduce the image noises within an acceptable limit. The model of both robot manipulators is ABB IRB 4600 [23] and the model of the stereo camera we choose in this project is Zed 2 [24].
In this section, we first define the camera’s operational space in this application and then provide the simulation results of a made-up scenario.

3.1. Camera Operational Space

In the above discussion, a camera operational space is gridded with nodes and each node is a potential candidate of the camera’s optimal position. The camera operational space is defined by three geometric constraints below:
1. The camera can only be allowed to locations where fiducial markers that are attached to the tool are recognizable on the image frame. Therefore, the fiducial markers are in the angle of view of the camera, and the distance between the markers and the camera center is within a threshold.
2. The camera can only be allowed to locations within the reach of the robot arm.
3. The camera can only be allowed in locations where the visual system and the tool manipulation system do not physically interfere with each other.
From the specifications of the stereo camera and the robot arm (Table A1 and Table A3), the geometry and dimensions of the camera operational space are analyzed in the following part of the subsections.

3.1.1. Reachable and Dexterous Workspace of Two-Hybrid Systems

In the spherical wrist model of the robot arm, three rotational axes represent the pitch, roll, and yaw of the end-effector independently. As shown in Figure 8, those three axes intersect at point H . Point P is the location of the end-effector and it’s the place where the camera or tool is mounted. For the elbow manipulator mounted with the stereo camera, the camera is placed so that its optical center line coincides with axis C. The location of camera optical center C is determined and a good estimation of it can be found in this paper [25]. For now, assume the optical center is in the middle of P J ¯ (set P C ¯ = 17   m m ). For the elbow manipulator mounted with the tool, the screwdriver is attached at the point P . Point J indicates the far end of the object (tool or camera) attached to the end effector. Point H is kept stationary no matter which axis rotates. Therefore, the task of positioning and rotation is decoupled in the spherical wrist robot model.
The idea of reachable and dexterous workspaces of an ideal elbow manipulator has been introduced in the paper [26]. An ideal elbow manipulator is a manipulator whose angles of rotation are free to move in the whole operational range [0, 2 π ] . However, a realistic elbow manipulator is limited to moving its joints within certain ranges of angle.
The workspace of an ideal elbow manipulator (Figure 9) is a sphere centered at the joint 1 of the manipulator, denoted as point o . The reachable workspace concerning the center o of a manipulator is the aggregate of all possible locations of the point J attached with the end-effector and is denoted as W o ( J ) . The dexterous workspace to the center o of a manipulator is the aggregate of all possible locations that point J can reach all possible orientations of the end-effector and is denoted as W o d ( J ) . The reachable workspace of H is denoted as W o ( H ) .
It is clearly shown in the figure:
W o d J     W o ( H )     W o ( J ) .
For an ideal elbow manipulator, the radiuses of workspaces are expressed as below:
Radius   of   W o H = L 2 + L 3 2 + L 4 2
Radius   of   W o ( J ) = L 2 + L 3 2 + L 4 2 + L t + P J ¯
Radius of   W o d J = L 2 + L 3 2 + L 4 2 L t P J ¯
where L 2 ,   L 3 ,   a n d   L 4 are links’ length of the manipulator. L t is the length of the end-effector and P J ¯ is the length of the object that mounts on the end-effector.
Because the camera and the tool must be able to rotate in all 3 DoFs when they are at the target position. So, the dexterous workspace is used as the working space of the visual system and the tool manipulation system. Dexterous workspace of the optical center is used for the visual system and Dexterous workspace of the far endpoint of the tool is used for the tool manipulator system.
Radius   of   W o d V i s u a l = r V = L 2 + L 3 2 + L 4 2 L t P C ¯ c a m e r a = 1.716   m   ( From   Specification   Appendix   Table   A 1 )
Radius   of   W o d T o o l = r T = L 2 + L 3 2 + L 4 2 L t P J ¯ t o o l = 1.606   m   ( From   Specification   Appendix   Table   A 1 )
Figure 9 shows the workspace setup for the hybrid system. The dexterous space of robot arm with camera is a sphere with radius of r V   and sphere center is O V and the dextrous space of the robot arm with tools is a sphere the radius is r T   and center of this sphere is O T . Two systems intersect with the ground with an angle θ 1 and θ 2 .
θ 1 = arcsin L 1 r V = 16.77 °
θ 2 = arcsin L 1 r T = 17.95 °
To avoid interference of the visual and the tool manipulation systems (as the third geometric constraint of the operational space), the reachable workspaces (the maximum reach) of two systems should have no overlap. The reachable workspaces of two systems are calculated from Equation (49) is:
Radius   of   W o V i s u a l = r V r = L 2 + L 3 2 + L 4 2 + L t + P J ¯ c a m e r a = 2.044   m   ( From   Specification   Appendix   Table   A 1 )
Radius   of   W o T o o l = r T r = L 2 + L 3 2 + L 4 2 + L t + P J ¯ t o o l = 2.138   m   ( From   Specification   Appendix   Table   A 1 )
Let L V T is the distance between O V and O T . The following relationship must be satisfied:
L V T r V r + r T r = 4.182   m
The visual system is able to detect the tool when it gets close to the target pose (Just above the bolt). Also reference points are put near the tool’s target pose. Assume a marker is put at where the bolt is, and this marker represents as an approximated location of all interest points and reference points. Therefore, the marker should be within the dexterous space of the tool manipulation system. Set up a coordinate system with O ¯ V   (the projection of O V on the ground with a 1 offset) as the origin. The projection of O T on the ground with a 1 offset is O ¯ T . Assume the marker is placed on the line O ¯ V O ¯ T ¯ . The distance m from marker M to O ¯ V   should be:
L M a 1 + L V T r T cos θ 2 2.829   m

3.1.2. Detectable Space for the Stereo Camera

From Appendix Table A3, the angle of view in width and height for both lens in stereo camera is α = 86.05 ° , and β = 55.35 ° . The detectable space for each lens can be modeled as the inner area of a cone with angle α and β . And the overlapped space is the detectable space for the stereo camera. The model is shown below (Figure 10). Point C is the center of the baseline whose length is denoted as b or center of the camera system. The overlap area is also a cone with angles of vertex α and β with the offset d from baseline. Point Q is the vertex of the cone.
d = b / 2 t a n ( α 2 ) = 0.064 m
There is an upper bound of the distance between the object to the camera center; if the object is too far away from the camera center, the dimensions of projected images are too small to be measured. Suppose to have a clear image of the fiducial markers (circle shapes), it is required that the diameter of the projected image should takes at least 5-pixel numbers in the image frame:
N H   5   resolution
where N H is the pixel number in the image frame.
Select the Zed camera’s mode so that its resolution is 1920*1082 and the image sensor size is 5.23mm X 2.94mm. Then numbers resolution in unit length is:
n = 367   resolution / mm
Then the range of markers’ diameter on the image frame is:
d H = N H   n 0.0136   m m
Also assume in the inertial frame, the diameter of attached fiducial marks is:
D H = 12   m m
Then from pinhole model of the camera, the range of distance between markers and camera center Z is:
Z = f u D H d H 2.47   m = Z m a x
where Z m a x is the maximum depth of camera to detect the markers. This parameter defines the height of the cone in Figure 10. The detectable space (abiding the second geometric constraint) forms an elliptic cone with different angles of vertex.

3.1.3. Camera Operational Space Development

In Figure 11, set the camera lens so that it is always parallel to the face of the marker and the baseline is parallel to   X ¯ V axis. In this case, lens is kept facing downward when detecting the marker on the ground. As discussed in the above section, the detectable space of the camera is modeled as a cone. This cone intersects with the horizontal plane and forms an oval. To have the camera detect the marker, the marker must be contained inside the oval.
An inertia coordinate system O ¯ V X ¯ V Y ¯ V Z ¯ V is set up with its origin seated at the bottom center of the visual system. Make point C as the location of the camera center and its coordinates in the inertial frame are ( X C V , Y C V , Z C V ). Q is the vertex of the detectable elliptic cone, and Q is the projection of Q on the horizontal plane. M is the marker.
The elliptic cone of the camera’s detectable space always intersects with the horizontal plane. Consider an extreme case when point C is located at the apex of the visual system workspace as shown in Figure 11. Then the Z C V coordinate of C at the inertial frame is:
Z C V { m a x } = L 1 + r V = 2.211   m     Z m a x
where Z m a x defined above is the maximum depth of camera to detect the markers. Therefore, the cone intersects with the horizontal plane when the camera center C is placed at any location of the workspace’s contour.
From expression of Cartesian coordinates in the inertia frame:
a Q ' = ( Z C V d ) t a n ( α 2 ) ,   b Q ' = ( Z C V d ) t a n ( β 2 )
where d is the same offset in Equation (59). a Q ' and b Q ' are major radius and minor radius of the oval. Also coordinates of points Q and M are ( X C V , Y C V ,   0 ) and ( L M , 0 ,   0 ) . Q is the center of the oval. To ensure the marker M is inside the projected oval, it is required that:
( X C V L M ) 2 a Q ' 2 + ( Y C V ) 2 b Q ' 2 1
Plug Equation (66) into Equation (67):
( X C V L M ) 2 t a n ( α 2 ) 2 + ( Y C V ) 2 t a n ( β 2 ) 2 ( Z C V d ) 2
Inequality (68) is exactly a mathematic expression of all points C ( X C V , Y C V , Z C V ) within a cone whose opening is in the positive Z direction with its vertex at ( L M , 0 , d ) and the opening parameters as tan ( α 2 ) = 0.934   and   tan ( β 2 ) = 0.524 . Therefore, this inequality defines the second geometric constraint of the camera center. It forms an elliptical cone with its vertex located in Figure 12 at point E, which is the offset point of the marker M from the ground . As C ( X C V , Y C V , Z C V ) should also be within the sphere of the workspace (abiding the first geometric constraint), the camera operational space is presented as the overlap between the cone and the sphere (the shaded area in Figure 12).
From Figure 12, the marker should not be too far from the visual system, otherwise there is no overlap region between the cone and the sphere. The largest value of L M , which is the distance from the marker to the coordinate center, occurs when the cone is tangent to the sphere as shown in Figure 13. To find the limit of L M , draw a horizontal line across point O V so that it intersects the surface of the cone at point A and the center line of the cone at point B as shown in Figure 13. Let O V A ¯ and A B ¯ are line segments’ length.
Therefore, from the geometry, the upper limit of L M is:
L M < O V A ¯ + A B ¯ + a 1 = r V cos α 2 + L 1 d tan α 2 + a 1
Combining with the lower bound of L M in Equation (58), the marker M should be placed in the system so that:
2.829   m L V T r T cos θ 2 L M < r V cos α 2 + ( L 1 d ) tan α 2 + a 1 = 2.925   m  

3.1.4. Mathematic Expression for Node Coordinates Within the Camera Operational Space

From Equation (70), the closer the marker’s distance L M to its lower bound, the larger the operational space is. In general, larger operational space is preferred, because the camera has a larger space for searching the optimal location. Set L M equals to its lower bound:
L M = 2.83 m
Get the cross-section area at X ¯ V Z ¯ V plane (Figure 14).
The function of semi-circle and the line EFG is:
( Z ¯ V L 1 ) 2 + X ¯ V a 1 2   = r V 2
X ¯ V = t a n ( α 2 ) (   Z ¯ V d ) + L M
Combine Equations (72) and (73) and solve:
( 1 + t a n ( α 2 ) 2 ) Z ¯ V 2 -   2 ( t a n ( α 2 ) 2 d + t a n α 2 ( L M a 1 ) + L 1 ) Z ¯ V + tan α 2 2 d 2 + 2 tan α 2 ( L M a 1 ) d + ( L M a 1 ) 2 r V 2 + L 1 2   = 0
Solve Equation (74) by plugging numbers:
1.872   Z ¯ V 2 6.061 Z ¯ V + 4.670 = 0
Solve :     Z ¯ V m a x , Z ¯ V m i n = 1.972   m ,     1.265   m    
Z ¯ V m a x and Z ¯ V m i n are the largest and smallest Z ¯ V coordinates of the camera center C that is within the camera operation space.
Take a value of Z C V ( Z ¯ V   coordinates of the camera center C ) in the range ( Z ¯ V m i n ,   Z ¯ V m a x ) = ( 1.265   m ,   1.972   m ). Set a plane Z ¯ V = Z C V , and that plane intersects the camera operational space and forms a shade area, which is the overlap between the circle and the oval, as shown in Figure 14. The inequality governing points C within sphere at a specific Z C V is:
( X ¯ V a 1 ) 2 + Y ¯ V 2   r V 2 ( Z C V L 1 ) 2
The inequality governing points C within cone at Z C V is:
( X ¯ V L M ) 2 tan ( α 2 ) 2 + ( Y ¯ V ) 2 tan ( β 2 ) 2 ( Z C V d ) 2
By plotting those inequalities in Figure 15, the shaded area is where X C V and Y C V ( X ¯ V and Y ¯ V   coordinates of the camera center C ) should be located within. The intersection of the two curves occurs when equality holds for (77) and (78), that is:
( X ¯ V a 1 ) 2 + Y ¯ V 2 = r V 2 ( Z C V L 1 ) 2
( X ¯ V L M ) 2 t an ( α 2 ) 2 + ( Y ¯ V ) 2 tan ( β 2 ) 2 = ( Z C V d ) 2
Solve by plugging numbers:
( Y ¯ V m a x ,   Y ¯ V m i n ) = ± 0.5 3.44 Z C V 2 2.0241 Z C V 29.802 + 2.451 29.475 Z C V 2 + 23.707 Z C V + 137.28
Y ¯ V m a x and Y ¯ V m i n are the largest and the smallest Y ¯ V coordinates of the camera center C in the camera operation space with specific Z C V .
Take Y C V in the range ( Y ¯ V m i n , Y ¯ V m a x ), then for specific X C V :
X ¯ V m a x = r V 2 ( Z C V L 1 ) 2 Y C V 2 + a 1
X ¯ V m i n = L M ( Z C V d ) 2 tan ( α 2 )   2 Y C V 2 tan ( α 2 ) 2 tan ( β 2 ) 2
X ¯ V m a x and X ¯ V m i n are the largest and the smallest X ¯ V coordinates of the camera center C in the camera operation space with specific Z C V and Y C V .

3.1.5. Numerical Solution of the Ideal Camera Operation Space

With known parameters from the camera and robot arm specifications, all possible location of the camera center C ( X C V , Y C V , Z C V ) inside the camera operational space can be derived from the following steps:
1. Calculate Z ¯ V m a x and Z ¯ V m i n by Equation (74), and mesh grid Z C V in ( Z ¯ V m i n ,   Z ¯ V m a x ).
2. Take a mesh value Z C V and calculate Y ¯ V m a x and Y ¯ V m i n by Equations (79) and (80), and mesh grid Y C V in ( Y ¯ V m i n ,   Y ¯ V m a x ).
3. Take a mesh Y C V and calculate X ¯ V m a x and X ¯ V m i n by Equations (82) and (83), and mesh grid X C V in ( X ¯ V m i n ,   X ¯ V m a x ).
Each above computed C ( X C V , Y C V , Z C V ) is inside the camera operation space. And those three steps completely account for all geometric constraints defined above. The number of mesh points (nodes available for searching) depends on the mesh grid size.

3.1.6. The Camera Operational Space from the Realistic Robot Manipulator

The above procedures of finding the camera operational space assumes the use of ideal robotic manipulators, whose joints are freely to move from [ 0 ,   2 π ] . However, for realistic robotic manipulators, their revolutionary movement is limited within certain ranges of angles, and the ranges of motion in every joint of the specific robot manipulator: ABB IRB 4600 are listed in Appendix Table A2.
The geometric shape of the operational space for a realistic robotic manipulator is usually irregular (unlike an ideal manipulator whose operational space is the combination of a sphere and a cone) and the mathematical methods of directly finding the nodes within the space is computationally expensive. A faster way of generating realistic camera operational space is to decrease the ideal operational space by taking out nodes that are out of the operational ranges. Those outlier nodes can be found from the inverse kinematic model of the robotic manipulator. Figure 16 shows the decreased nodes from the ideal camera operational space to the realistic space.

3.2. Simulations of scenarios

A simulation in MATLAB is used to validate the proposed algorithm. In the simulation, the environment is set up with two minimums in the space (only one is the global minimum). K e s t and K s d are tunable parameters and set as K e s t = 5 ,   a n d   K s d = 50   m 1 .   The initial available energy bound is set to be E b o u n d = 12 (Watt Second (ws) or Joule). Figure 17 shows the sequences of nodes being explored in iteration steps by setting different energy threshold E T .
By trials of different simulation runs, it can be concluded that:
When E T is large (in this scenario, 3 w s < E T 12 w s ) ,   the algorithm is conservative, so that it has only searched a small area that excludes the global minimum.
When E T is in mid-range (in this scenario, 0.5 w s E T 3 w s ), the algorithm drives the camera to the global minimum.
When E T is small (in this scenario, 0 w s E T < 0.5 w s ) ,   the algorithm is aggressive. Although it has searched a large amount of areas that includes the global minimum, it doesn’t have enough energy to move the camera back to the best location explored in the previous stages
The two tunable parameters K e s t and K s d are selected randomly in the simulation. Those parameters are used in the models to estimate the noise spatial distribution in the environment. Future research can focus on development of adaptive algorithms that tune K e s t and K s d over iterations based on errors between real measurements and estimations.
In addition, the numerical values of E T are also picked randomly for testing. In real applications, a fixed E T should be selected before the operation of this algorithm. The selection of E T is related to the specific application scenario, size of camera’s operational space, and total energy available E b o u n d at beginning. However, the general thumb of the rule is the following: choose small values of E T when both E b o u n d and operational space is large to encourage exploring over exploiting; otherwise, choose large E T .

4. Conclusion

In this article, we have developed an algorithm that a camera can explore the workspace in a manufacturing environment and search for a location so that images’ noise is minimized within the space that it can reach. This article also provides detailed development of the camera’s operational space for a specific application. Simulation results show how energy threshold E T affects the behavior of the algorithm. A moderate threshold is suggested so that the algorithm can search for enough amount of area but enables to drive the camera back to the minimum with limited energy available. The analysis of E T ’s value in different applications is a focus of the future work. Future work may also include adaptive algorithms that update K e s t and K s d online. Also, orientations of the camera are fixed in this paper. In the future, we would like to develop advanced algorithms that provide not only the optimal of positions but also the orientations inside the space.

Appendix A

In this section, we will show the geometric model of a specific robot manipulator ABB IRB 4600 45/2.05[23] and a figure of a camera model: Zed 2 with dimensions [24]. This section also contains specification tables of robots’ dimensions, camera, and motor installed inside the joints of manipulators.
Figure A1. IRB ABB 4600 Model with attached frames.
Figure A1. IRB ABB 4600 Model with attached frames.
Preprints 116065 g0a1
Figure A2. Zed 2 stereo camera model with dimensions.
Figure A2. Zed 2 stereo camera model with dimensions.
Preprints 116065 g0a2
Table A1. Specification Table of ABB IRB 4600 45/2.05 Model (Dimensions).
Table A1. Specification Table of ABB IRB 4600 45/2.05 Model (Dimensions).
Parameters Values
Length of Link 1: L 1 495 mm
Length of Link 2: L 2 900 mm
Length of Link 3: L 3 175 mm
Length of Link 3: L 4 960 mm
Length of Link 1 offset: a 1 175 mm
Length of Spherical wrist: L t 135 mm
Tool length (screwdriver): P J ¯ t o o l 127 mm
Table A2. Specification Table of ABB IRB 4600 45/2.05 Model (Axis Working range).
Table A2. Specification Table of ABB IRB 4600 45/2.05 Model (Axis Working range).
Axis Movement Working range
Axis 1 rotation +180 ° to -180 °
Axis 2 arm +150 ° to -90 °
Axis 3 arm +75 ° to -180 °
Axis 4 wrist +400 ° to -400 °
Axis 5 bend +120 ° to -125 °
Axis 6 turn +400 ° to -400 °
Table A3. Specification Table of Stereo Camera Zed 2.
Table A3. Specification Table of Stereo Camera Zed 2.
Parameters Values
Focus length: f 2.8 mm
Baseline: B 120 mm
Weight: W 170g
Depth range: 0.5m-25m
Diagonal Sensor Size: 6mm
Sensor Format: 16:9
Sensor Size: W X H 5.23mm X 2.94mm
Angle of view in width: α 86.09 °
Angle of view in height: β 55.35 °
Table A4. Specification Table of Motors and gears.
Table A4. Specification Table of Motors and gears.
Parameters Values
DC Motor
Armature Resistance: R 0.03 Ω
Armature Inductance: L 0.1 mH
Back emf Constant: K b 7 mv/rpm
Torque Constant: K m 0.0674 N/A
Armature Moment of Inertia: J a 0.09847 kg m 2
Gear
Gear ratio: r 200:1
Moment of Inertia: J g 0.05 kg m 2
Damping ratio: B m 0.06

Appendix B

In this section, we will show forward kinematics and inverse kinematics of the 6 DoFs revolute robot manipulators. The results are consistent with the model ABB IRB 4600.
Forward kinematics refers to the use of kinematic equations of a robot to compute the position of the end-effector from specified values for the joint angles and parameters. The equations are summarized in the below:
n x = c 1 s 23 ( s 4 s 6 c 4 c 5 c 6 ) -   s 1 s 4 c 5 c 6 + c 4 s 6 c 1 c 23 s 5 c 6 n y = s 1 s 23 s 4 s 6 c 4 c 5 c 6 +   c 1 s 4 c 5 c 6 + c 4 s 6 s 1 c 23 s 5 c 6 n z = c 23 ( s 4 s 6 c 4 c 5 c 6 ) + s 23 s 5 c 6
s x = c 1 s 23 s 4 c 6 + c 4 c 5 c 6 + s 1 s 4 c 5 s 6 c 4 c 6 + c 1 c 23 s 5 s 6 s y = s 1 s 23 s 4 c 6 + c 4 c 5 c 6   c 1 s 4 c 5 s 6 c 4 c 6 + s 1 c 23 s 5 s 6 s z = c 23 s 4 c 6 + c 4 c 5 c 6 s 23 s 5 s 6
a x = c 1 s 23 c 4 s 5 s 1 s 4 s 5 + c 1 c 23 c 5 a y = s 1 s 23 c 4 s 5 + c 1 s 4 s 5 + s 1 c 23 c 5 a z = c 23 c 4 s 5 s 23 c 5
d x = L t c 1 s 23 c 4 s 5 s 1 s 4 s 5 + c 1 c 23 c 5 + c 1 L 3 s 23 + L 2 s 2 + a 1 d y = L t s 1 s 23 c 4 s 5 + c 1 s 4 s 5 + s 1 c 23 c 5 + s 1 L 3 s 23 + L 2 s 2 + a 1 d z = L t c 23 c 4 s 5 s 23 c 5 + L 3 c 23 + L 2 c 2 + L 1
Note :   c i cos q i ,   s i sin q i c i , j cos q i + q j ,   s i , j sin q i + q j i , j   { 1,2 , 3,4 , 5,6 }
where [ n x , n y , n z ] T , [ s x , s y , s z ] T and [ a x , a y , a z ] T are the end-effector’s directional vector of Yaw, Pitch and Roll in base frame O 0 X 0 Y 0 Z 0 (Figure A1). And [ d x , d y , d z ] T are the vector of absolute position of the center of the end-effector in base frame O 0 X 0 Y 0 Z 0 . For a specific model ABB IRB 4600-45/2.05 (Handling capacity: 45 kg/ Reach 2.05m) the dimensions and mass are summarized in Table A1.
Inverse kinematics refers to the mathematical process of calculating the variable joint angles needed to place the end-effector in a given position and orientation relative to the inertial base frame. The equations are summarized in the below:
p x = d x L t a x p y = d y L t a y p z = d z L t a z
q 1 = a r c t a n ( p y p x )
q 2 = p i 2 a r c c o s ( L 2 2 + p x 2 + p y 2 a 1 2 + p z L 1 2 L 3 2 L 4 2 2 L 2 L 3 2 + L 4 2 ) a r c t a n ( p z L 1 p x 2 + p y 2 a 1 )  
q 3 = π a r c c o s ( L 2 2 + L 3 2 + L 4 2 p x 2 + p y 2 a 1 2 p z L 1 2 2 L 2 L 3 2 + L 4 2 ) a r c t a n ( L 4 L 3 )
q 5 = a r c c o s ( c 1 c 23 a x + s 1 c 23 a y s 23 a z )
q 4 = a r c t a n ( s 1 a x c 1 a y c 1 s 23 a x + s 1 s 23 a y + c 23 a z )
q 6 = a r c t a n ( c 1 c 23 s x + s 1 c 23 s y s 23 s z c 1 c 23 n x + s 1 c 23 n y s 23 n z )
Note :   c i cos q i ,   s i sin q i c i , j cos q i + q j ,   s i , j sin q i + q j i , j   { 1,2 , 3,4 , 5,6 }
where [ n x , n y , n z ] T , [ s x , s y , s z ] T , [ a x , a y , a z ] T and [ d x , d y , d z ] T have been defined above in the forward kinematic discussion.

References

  1. W. Chang and C.-H. Wu, “Automated USB peg-in-hole assembly employing visual servoing,” in Proc. 3rd Int. Conf. Control, Autom. Robot. (ICCAR). Nagoya, Japan: IEEE. Apr. 2017, pp. 352–355.
  2. J. Xu, K. Liu, Y. Pei, C. Yang, Y. Cheng, and Z. Liu, “A noncontact control strategy for circular peg-in-hole assembly guided by the 6-DOF robot based on hybrid vision,” IEEE Trans. Instrum. Meas., vol. 71,2022, Art. no. 3509815.
  3. W. Zhu, H. Liu, and Y. Ke, “Sensor-based control using an image point and distance features for rivet-in-hole insertion,” IEEE Trans. Ind. Electron., vol. 67, no. 6, pp. 4692–4699, Jun. 2020.
  4. F. Qin, D. Xu, D. Zhang, W. Pei, X. Han and S. Yu, "Automated Hooking of Biomedical Microelectrode Guided by Intelligent Microscopic Vision," in IEEE/ASME Transactions on Mechatronics, vol. 28, no. 5, pp. 2786-2798, Oct. 2023. [CrossRef]
  5. Jung, Woo, Jin., Lee, Hyun, Jung. (2020). Automatic alignment type welding apparatus and welding method using the above auto-type welding apparatus.
  6. P. Guo, Z. Zhang, L. Shi, and Y. Liu, “A contour-guided pose alignment method based on Gaussian mixture model for precision assembly,” Assem. Autom., vol. 41, no. 3, pp. 401–411, Jul. 2021.
  7. F. Chaumette and S. Hutchinson, “Visual servo control Part I: Basic approaches,” IEEE Robotics & Automation Magazine, vol. 13, pp. 82–90, 2006.
  8. Y. Ma, X. Liu, J. Zhang, D. Xu, D. Zhang, and W. Wu, “Robotic grasping and alignment for small size components assembly based on visual servoing,” Int. J. Adv. Manuf. Technol., vol. 106, nos. 11–12, pp. 4827–4843, Feb. 2020.
  9. T. Hao, D. Xu and F. Qin, "Image-Based Visual Servoing for Position Alignment With Orthogonal Binocular Vision," in IEEE Transactions on Instrumentation and Measurement, vol. 72, pp. 1-10, 2023, Art no. 5019010. [CrossRef]
  10. G. Flandin, F. Chaumette and E. Marchand, "Eye-in-hand/eye-to-hand cooperation for visual servoing," Proceedings 2000 ICRA. Millennium Conference. IEEE International Conference on Robotics and Automation. Symposia Proceedings (Cat. No.00CH37065), San Francisco, CA, USA, 2000, pp. 2741-2746 vol. [CrossRef]
  11. Muis, A., & Ohnishi, K. (n.d.). Eye-to-hand approach on eye-in-hand configuration within real-time visual servoing. The 8th IEEE International Workshop on Advanced Motion Control, 2004. AMC ’04. [CrossRef]
  12. Ruf, M. Tonko, R. Horaud, and H.-H. Nagel: “Visual Tracking of An End-Effector by Adaptive Kinematic Prediction”, Proc. of the Intl. ConJ on Intelligent Robots and Systems(IROS’97). vol. 2, pp.893-898,Grenoble, France, Sep.( 1997).
  13. Jose Luis de Mena: “Virtual Environment for Development of Visual Servoing Control Algorithms”, Thesis, Lund Institute Technology, Sweden, May, (2002).
  14. K. Irie, I. M. Woodhead, A. E. McKinnon and K. Unsworth, "Measured effects of temperature on illumination-independent camera noise," 2009 24th International Conference Image and Vision Computing New Zealand, Wellington, New Zealand, 2009, pp. 249-253. [CrossRef]
  15. Patidar, P., Gupta, M., Srivastava, S., & Nagawat, A.K. Image De-noising by Various Filters for Different Noise. International Journal of Computer Applications. 2010; 9: 45-50.
  16. Das, S., Saikia, J., Das, S., & Goñi, N. A COMPARATIVE STUDY OF DIFFERENT NOISE FILTERING TECHNIQUES IN DIGITAL IMAGES. 2015.
  17. R. Zhao and H. Cui. Improved threshold denoising method based on wavelet transform. 2015 7th International Conference on Modelling, Identification and Control (ICMIC); 2015: pp. 1-4. [CrossRef]
  18. Ng J., Goldberger J.J. Signal Averaging for Noise Reduction. In: Goldberger J., Ng J. (eds) Practical Signal and Image Processing in Clinical Cardiology. London: Springer; 2010. p. 69-77. [CrossRef]
  19. G. Chen, F. Zhu and P. A. Heng. An Efficient Statistical Method for Image Noise Level Estimation. In: 2015 IEEE International Conference on Computer Vision (ICCV); 2015.p. 477-485. [CrossRef]
  20. Mark, W.S., M.V. (1989). Robot Dynamics and control. John Wiley & Sons, Inc. 1989.
  21. W. W. MARZOUK, A. ELBASET etc. (2019).” Modelling, Analysis and Simulation for A 6 Axis Arm Robot by PID Controller”, International Journal of Mechanical and Production Engineering Research and Development (IJMPERD) ISSN (P): 2249-6890; ISSN (E): 2249-8001 Vol. 9, Issue 4, Aug 2019, pp. 363-376. [CrossRef]
  22. Li, R., & Assadian, F. Role of Uncertainty in Model Development and Control Design for a Manufacturing Process. In: Majid T., Pengzhong L, & Liang L, editors. Production Engineering and Robust Control. London: IntechOpen 2022. pp. 137-167. [CrossRef]
  23. Anonymous. ABB IRB 4600 -40/2.55 Product Manual [Internet]. 2013. Available from: https://www.manualslib.com/manual/1449302/Abb-Irb-4600-40-2-55.html#manual [Accessed: 2024-7-17].
  24. Anonymous. Stereolabs Docs: API Reference, Tutorials, and Integration. Available from: https://www.stereolabs.com/docs [Accessed: 2024-7-18].
  25. Peer, P., & Solina, F. (2006). Where physically is the optical center? Pattern Recognition Letters, 27(10), 1117–1121. [CrossRef]
  26. Vassilios D Tourassis, Dimitrios M Emiris. (1993) “A comparative study of ideal elbow and dual-elbow robot manipulators”, Mechanism and Machine Theory, Volume 28, Issue 3, Pages 357-373, ISSN 0094-114X. [CrossRef]
Figure 1. Algorithm flowchart.
Figure 1. Algorithm flowchart.
Preprints 116065 g001
Figure 2. (a): The operational space of the camera is an arbitrary closed 3D geometry in the space shown in the plot. The gridded area is in 3D (blue dashed lines). (b): Four initial nodes are chosen so that their connection lines (red dashed line) are perpendicular. The picture number of Node 5 can be estimated by Equation (1) from four initial explored nodes E D ¯ represents Euclidean distance (green line).
Figure 2. (a): The operational space of the camera is an arbitrary closed 3D geometry in the space shown in the plot. The gridded area is in 3D (blue dashed lines). (b): Four initial nodes are chosen so that their connection lines (red dashed line) are perpendicular. The picture number of Node 5 can be estimated by Equation (1) from four initial explored nodes E D ¯ represents Euclidean distance (green line).
Preprints 116065 g002
Figure 3. Find the explorable set   S e x p l o r a b l e when the global minimum (red star) is inaccessible. (a). Step 1: Obtain the feasible range   S f e a s i b l e (green dashed line). (b). Step 2: Find the explored node with a minimum picture number in the feasible range. Initial nodes (blue stars) are explored (blue circles). N o d e 1 is N o d e e x p _ m i n . (c). Step 3: Obtain explorable range when E b o u n d   E T . The explorable range   S e x p l o r a b l e (blue dashed line) is a subset of   S f e a s i b l e .
Figure 3. Find the explorable set   S e x p l o r a b l e when the global minimum (red star) is inaccessible. (a). Step 1: Obtain the feasible range   S f e a s i b l e (green dashed line). (b). Step 2: Find the explored node with a minimum picture number in the feasible range. Initial nodes (blue stars) are explored (blue circles). N o d e 1 is N o d e e x p _ m i n . (c). Step 3: Obtain explorable range when E b o u n d   E T . The explorable range   S e x p l o r a b l e (blue dashed line) is a subset of   S f e a s i b l e .
Preprints 116065 g003
Figure 4. Both case1 and case2 have the same estimated value of an unexplored node (green point) from Equation (1). However, the node in case 1 has a larger distance to explored nodes (red points) compared to that in case 2. Therefore, we set different standard deviations ( σ 1
Figure 4. Both case1 and case2 have the same estimated value of an unexplored node (green point) from Equation (1). However, the node in case 1 has a larger distance to explored nodes (red points) compared to that in case 2. Therefore, we set different standard deviations ( σ 1
Preprints 116065 g004
Figure 5. The block Diagram of feedback linearization Youla control design used for the joint control loop.
Figure 5. The block Diagram of feedback linearization Youla control design used for the joint control loop.
Preprints 116065 g005
Figure 6. Response of q 1 t with varying τ d e l a y .
Figure 6. Response of q 1 t with varying τ d e l a y .
Preprints 116065 g006
Figure 7. The topology of the multi-robotic system for accurate positioning control.
Figure 7. The topology of the multi-robotic system for accurate positioning control.
Preprints 116065 g007
Figure 8. Spherical Wrist Model.
Figure 8. Spherical Wrist Model.
Preprints 116065 g008
Figure 9. Workspace of an Ideal Elbow Manipulator.
Figure 9. Workspace of an Ideal Elbow Manipulator.
Preprints 116065 g009
Figure 9. The workspace configuration of the multi-robotic system.
Figure 9. The workspace configuration of the multi-robotic system.
Preprints 116065 g010
Figure 10. The Detectable Space of the Stereo Camera.
Figure 10. The Detectable Space of the Stereo Camera.
Preprints 116065 g011
Figure 11. The Detectable Elliptic Cone in the Inertial Visual System Frame.
Figure 11. The Detectable Elliptic Cone in the Inertial Visual System Frame.
Preprints 116065 g012
Figure 12. Illustration of Camera Operational Space (the shaded area).
Figure 12. Illustration of Camera Operational Space (the shaded area).
Preprints 116065 g013
Figure 13. An Extreme Case of Marker Position.
Figure 13. An Extreme Case of Marker Position.
Preprints 116065 g014
Figure 14. The Camera Operational Space Cross-section at X ¯ V Z ¯ V plane.
Figure 14. The Camera Operational Space Cross-section at X ¯ V Z ¯ V plane.
Preprints 116065 g015
Figure 15. The Camera Operational Space Cross-section at X ¯ V Y ¯ V plane.
Figure 15. The Camera Operational Space Cross-section at X ¯ V Y ¯ V plane.
Preprints 116065 g016
Figure 16. Reduction of Nodes from the ideal to the realistic camera operational space.
Figure 16. Reduction of Nodes from the ideal to the realistic camera operational space.
Preprints 116065 g017
Figure 17. Plots of sequential exploration with different E T .
Figure 17. Plots of sequential exploration with different E T .
Preprints 116065 g018
Table 1. Estimated Energy Cost and Settling Time with Varying Delay Constant.
Table 1. Estimated Energy Cost and Settling Time with Varying Delay Constant.
τ d e l a y [s] E ( P i n i t i a l , P f i n a l ) [ws] t s [ s ]
0 10.895 0.07
0.2 0.102 0.73
0.4 0.030 1.42
0.6 0.016 2.11
0.8 0.011 2.80
1 0.009 3.49
Note: E ( P i n i t i a l , P f i n a l ) is measured as [watts seconds]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.
Copyright: This open access article is published under a Creative Commons CC BY 4.0 license, which permit the free download, distribution, and reuse, provided that the author and preprint are cited in any reuse.
Prerpints.org logo

Preprints.org is a free preprint server supported by MDPI in Basel, Switzerland.

Subscribe

© 2024 MDPI (Basel, Switzerland) unless otherwise stated