Vytautas Tumas
email: vytautas.tumas@uni.lu

Robert Norvill
email: robert.norvill@uni.lu

Damien Magoni
email: magoni@labri.fr

Radu State
email: radu.state@uni.lu

VaVite: Verifiable Information Exchange for Virtual Asset Service Providers

Keywords: Blockchain, FATF, Identity Verification, Travel Rule, VASP

Virtual Asset Service Providers (VASPs) have recently been faced with increased compliance costs as both national and international bodies bring their due diligence compliance requirements inline with those of traditional financial entities. The 'travel rule', as defined by the Financial Action Task Force (FATF) is prominent amongst these and has created a need for efficient compliance solutions for VASPs. In this paper we improve upon current travel rule compliance solutions by utilising a mixed centralised and decentralised approach to provide trust and reduce the compliance burden on VASPs. Moreover, we provide a generic system capable of ensuring compliance with FATF recommendations as well other sanctions and embargoes that impact VASP trading relationships.

I. INTRODUCTION

International regulatory efforts and guidelines have been increasing in recent years as governments and international organisations make changes to account for the rise of cryptocurrencies and Virtual Assets (VAs). Notable changes include the 5 th Money Laundering Directive in the EU [START_REF] Union | Directive (eu) 2018/843 of the european parliament and of the council[END_REF], and updates to the Financial Action Task Force (FATF) recommendations, which place a regulatory burden on Virtual Asset Service Providers (VASPs) which previously only applied to banks [START_REF] Fatf | International standards on combating money laundering and the financing of terrorism & proliferation[END_REF]. According to FATF, a VASP is any natural or legal person which transfers, holds, or otherwise handles virtual assets on behalf of another (natural or legal person). Moreover, they define a VA as "any digital representations of value that can be digitally traded or transferred and can be used for payment or investment purposes" [START_REF] Fatf | International standards on combating money laundering and the financing of terrorism & proliferation[END_REF]. In practice, VAs include cryptocurrencies and digital representations of equities and financial instruments, and VASPs are the entities that handle these, such as cryptocurrency exchanges. The above definitions bring a large number of businesses within the scope of the recommendations and as such, there is a need to find efficient and secure solutions for compliance.

As FATF recommendations are not legally binding, there are likely to be differences in how they are implemented in law in different countries. Such recommendations are implemented as part of a jurisdiction's Know Your Customer (KYC) laws. KYC laws require financial institutions to acquire their customer's identity and actively monitor for illicit financial activities. FATF recommendations and recent EU directives are increasing the KYC compliance burden for VASPs. Crossjurisdiction differences are made more likely by various embargoes and financial sanctions are taken into account, which can have changing and serious impacts on business operations [START_REF] Frank | Tougher u.s. sanctions make cuba ever more difficult for western firms[END_REF] [START_REF] Of | Treasury issues changes to strengthen cuba sanctions rules[END_REF]. The problem for VASPs is compounded when we consider that they are likely to make use of payment routing protocols, which offer rapid, low-cost cross-border transfers. The paths they use to transfer value are often over multiple hops using a variety of currencies, both fiat and virtual, with nodes located in different jurisdictions. In order to remain compliant in today's global environment, VASPs need to be able to know the identity of those they do business with, and be able to control the entities and jurisdictions they engage with.

In this paper we aim to solve some of the compliance problems faced by VASPs through a blockchain-based system of identity verification and path compliance enforcement.

• We provide the means to comply with FATF recommendations as well as other international rules and regulations. The proposed solution avoids centralised points of failure and eases the KYC burden for VASPs. • We allow VASPs to specify a set of rules that they will operate under. Rules are defined as a set of constraints, where each constraint identifies some property of a VASP, for example the country in which the VASP resides . The rules are verified and stored on-chain, making them tamper-proof. • We provide assurance and non-repudiation for all participants of each payment path through the use of signed on-chain attestations.

The rest of this paper is organised as follows: Section II takes a more in-depth look at the travel rule compliance solutions. Section II-D introduces the relevant state of the art proposals for FATF travel rule compliance and discusses state of the art academic works in the area of identity verification. Section III details the protocol and blockchain system. Section IV provides a theoretical network topology and performance analysis. Finally, we discuss further research topics and conclude our work in section V.

II. RELATED WORK

A. Ethereum

Existing approaches and the solution proposed in this paper rely on an Ethereum blockchain for various parts of their functionality. Ethereum as a system was launched in 2016 and is the vehicle for one of the world's most popular cryptocurrencies: Ether. Ethereum uses immutability and system-wide consensus to ensure that all stakeholders can trust what is recorded on-chain, with dishonesty being visible to participants as well as being financially disincentivised [START_REF] Wood | Ethereum: A secure decentralised generalised transaction ledger[END_REF].

Ethereum provides the functionality to operate a permissioned blockchain, which works much like the public mainchain, with the difference those who can participate and add blocks to the chain is curated.

However, its major contribution to the blockchain world was the implementation, and subsequent popularisation of smart contracts. As programs stored on the blockchain, the execution of smart contracts is carried out by all participants with the results of execution being agreed upon by consensus. As such, the results of running smart contract code can be trusted.

Smart contract code is arbitrary, and as such there are numerous use cases which include; creation of one's own Ethereum-based cryptocurrency (token), access control, and identity verification. The latter of which is key for the topic of this paper [START_REF] Wood | Ethereum: A secure decentralised generalised transaction ledger[END_REF].

B. OpenVASP

The OpenVASP protocol heavily leverages Ethereum. It proposes to use a standardized Ethereum smart contract, referred to as the VASP contract, for the identification of a VASP. The address of the contract deployed by the VASP serves as a unique identifier of a VASP. Two approaches to trust are used in OpenVASP: direct and indirect. Direct trust forms the primary trust model, whenever two VASPs establish their business relationship, they provide first-hand evidence of their identity, which is used to perform customer due diligence. This step does not have to be made public, however a large number of trusted peers demonstrates the VASP's good standing. The indirect approach to trust requires a trusted third party, such as recognized self-regulatory organisations or trade associations, attest to the identity and the licensing of a VASP. The identity claims, either by trusted VASPs or credible third parties are signed and stored in the contract of a VASP and can be revoked by the issuer at any time.

Using the VASP's public key poses new challenges in case the corresponding private key is compromised. Smart contracts deployed on Ethereum blockchain are permanent, thus in case the private key is compromised, there is no way to remove the contract. Thus, potentially, there will be a live contract on the blockchain, which all the participants on the network will have to know not to interact with. Although not explicitly discussed in the whitepaper, in lieu of any other solution it seems the VASP would have to inform each of its peers about a compromised private key, that, in turn, will have to revoke all identity claims. Furthermore, if the VASP is to continue doing business, it will have to deploy a new VASP contract on the blockchain, changing the unique VASP ID. In a recent proposal [START_REF] Riegelnig | Vasp identity[END_REF], the VASP contract was extended with ownership transfer functionality. This allows for the owner of the contract to be updated if necessary. However, anyone aware of the owner's private key can act as the owner of the contract, thus allowing a malicious entity to transfer the ownership to itself.

C. TRISA

While OpenVASP aims to provide compliance with the FATF recommendations, the system relies on traditional, potentially manual, identity verification methods, with the whitepaper stating that for identity verification "first-hand evidence is available..." [START_REF] Riegelnig | OpenVASP : An Open Protocol to Implement FATF's Travel Rule for Virtual Assets[END_REF]. Exchange of evidence in this manner is non-standardised and may be time consuming and costly.

TRISA also utilises CAs to perform KYC checks. A CA acts as an authorized third party which verifies the identity of a VASP. In a standard known as Extended Validation Know Your VASP (EV KYV), the CA performs due diligence checks on the VASP in their jurisdiction, performs fraud and sanction checks, validates the VASP's business and performs active monitoring, auditing and reporting of the VASP. Two VASPs operating in different jurisdictions can establish a trusted relationship by verifying the certificates of each other with the corresponding CA. EV KYV eases the KYC burden on individual VASPs by using the CA to provide due diligence. However, it requires that the CA is always available, making it a centralised point of failure. In case the CA is made unresponsive legitimate VASPs will not be able to have their identity verified or ensure that certificates issued by the CA have not been revoked through the Online Certification Status Protocol (OCSP) [START_REF] Santesson | X.509 Internet Public Key Infrastructure Online Certificate Status Protocol -OCSP[END_REF] or the Certificate Rejection List (CRL) [START_REF] Cooper | Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile[END_REF].

OCSP requires the receiver of a certificate to check with the issuer of the certificate whether the certificate has been revoked. The protocol has been further extended to include stapling, which requires the certificate owner to make periodic OCSP requests to the CA to acquire a time-stamped signature in order to prove the validity of the certificate. On the other hand, a CRL is a periodically published list of rejected certificates by the CA. To ensure a certificate has not been revoked, the receiver of the certificate, downloads the rejection list from the issuer of the certificate, and ensures the certificate is not present in the list. Both approaches rely on the CA to maintain knowledge of refuted certificates. In addition to providing a centralised point of failure, the burden of maintaining extra infrastructure could potentially deter institutions from taking on the role of a CA.

D. Identity and Identity Management

The X.509 standard [START_REF] Cooper | Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile[END_REF] defines the format of public key certificates. X.509 is used for a range of applications, from securing network connections via TLS/SSL [START_REF] Rescorla | The transport layer security (tls) protocol version 1.3[END_REF] to digital signatures. The certificate contains information identifying the owner and a signature of a CA that has verified the content. The blockchain technology provides new methods for certificate management, which offer alternatives to OCSP and CRL, we will discuss these efforts bellow.

Wang et al. [START_REF] Wang | Blockchainbased certificate transparency and revocation transparency[END_REF] propose a method of storing X.509 certificates on a blockchain, with multiple CAs signing each certificate and certificates only being accepted if the subject of the certificate also signs it. This method provides a heightened security of standard SSL certificate issuance as the theft of the private key of a single CA will not result in the acceptance of fraudulent certificates. However, multiple CAs signing each certificate is likely to significantly increase the overhead of the system, especially if each CA is required to carry out full identity verification for the subject. Moreover, certain transactions are required to be signed by all CAs in the system, which presents a potential problem if one of the CAs is offline or unreachable.

Chen et al. present a similar system called certChain [START_REF] Chen | Certchain: Public and efficient certificate audit based on blockchain for tls connections[END_REF], they cite security weaknesses stemming from, amongst other things, centralisation. The system stores X.509 certificates onchain and defines entities called 'bookkeepers' who act as miners/verifiers for the blockchain. Bookkeepers pair with CAs and they have a shared reputation within the system. However, the exact nature of a bookkeeper and its relationship with the CA is unclear. While CAs are financially incentivised it is not clear whether bookkeepers are considered to share the same profit motive.

Kubilay et al. [START_REF] Kubilay | Certledger: A new pki model with certificate transparency based on blockchain[END_REF] propose a solution called certLedger which aims to reduce the required trust in CAs by moving certificate and revocation lists onto the blockchain. The authors cite a number of attacks against centralised CAs as motivation. certLedger relies on a board of organisations to verify a CA within the system. Board member public keys are hard coded into the smart contract, meaning the contract and its previous state contain the list of trusted CAs needed to be redeployed. This is likely to be a cumbersome task as in effect the entire program needs to be edited and re-added to the blockchain. Retaining the original state may also be complex, depending on the number of records stored.

In order for VASPs to fulfill the FATF recommendations and the Travel Rule in particular, Hardjono et al. [START_REF] Hardjono | Towards a public key management framework for virtual assets and virtual asset service providers[END_REF], [START_REF]Privacy-preserving claims exchange networks for virtual asset service providers[END_REF] define an architecture similar to the one defined by the Security Assertion Markup Language (SAML), where the VASP is the relying party and a blockchain record is used for identification. The attribute provider, holding sources of truth about the subject, is called the Claims Provider (CP). A CP delivers signed claims to VASPs regarding the relevant subject, thereby relieving the VASP from having to deal with data and algorithms. In addition, they propose a consortium arrangement for VASPs to establish a Claims Exchange Network (CEN), in which VASPs can deliver signed claims (obtained from their CPs) and public-key information or certificates to other VASPs in a secure and confidential way.

III. VAVITE PROTOCOL

We propose a new system, which combines strengths of OpenVASP and TRISA to provide irrefutable identity verifica-Fig. 1: VaVite high-level architecture. tion, simple KYC, and verifiable compliance for FATF recommendation as well as various national and international country and currency restrictions. Our solution provides increased trust while avoiding the need for high availability of CAs.

We outline the high level architecture in Figure 1. The system is composed of three components: Certificate Authority, Ethereum Blockchain and a VASP Network. A VASP wanting to join the network issues a Certificate Signing Request to the CA. The CA, verifies the identity, issues a certificate and places it on the blockchain through its smart contract. VASP can then establish business relationships with other VASPs, by reading their identity information from the blockchain. VASP peerings establish a transitive network, akin to Lightning [START_REF] Poon | The bitcoin lightning network: Scalable off-chain instant payments[END_REF] or Raiden [START_REF]Raiden network[END_REF] Networks, that enables VASPs to establish multi-hop payment paths. Once a path is established it is written to the blockchain by the VASP from which the payment originates. In the remainder of this section we will discuss in detail on how the system provides irrefutable guarantees on identity, conformation to rules and participation in payments.

A. VASP Identity

VASP identity is represented by a X.509 certificate issued by a CA and stored on the blockchain (discussed in more detail in the next sub-section). Similarly to OpenVASP, the Etheruem address of the certificate is derived from the public key of the VASP. In case the public/private key pair is changed, the address will also change. This would require VASPs to reestablish their peerings. We address this by introducing a static identifier for each VASP called VASP Identity Code (VIC).

Inspired by Business Identity Codes (BIC) [START_REF]ISO 9362:2014 Banking -Banking telecommunication messages -Business identifier code (BIC)[END_REF] a VIC takes the following form: 4 letter institution code, 2 letter country code, 2 letter location code (city code), 3 letter branch code (optional). It can include digits for some exceptional cases. VICs are thus 8 or 11 letter long. Table I compares the BIC of Luxembourg's national bank and the VIC for the hypothetical VASP1 entity, which also operates out of Luxembourg, in Luxembourg city.

The mapping V IC -→ EthAddr is stored, by the CA, in a smart contract, the address of which is known to all participants in the network. The VIC can then be used to exchange identities with other VASPs. When two VASPs A and B exchange their VICs neither of them have a guarantee that the VIC actually belongs to the other VASP. To ensure VIC authenticity we adopt JSON Web Token (JWT) [START_REF] Jones | Json web token (jwt)[END_REF] standard. The standard defines a method for tamper-proofing information for exchange between two parties, that is provided by digital signature using a secret token or a public/private key pair. A token signed with a private key allows anyone with the corresponding public key to verify the ownership of the private key. In Table II we outline the standard fields of the token and the corresponding values. As the token is issued by the VASP to prove the identity of the VASP we have excluded the Issuer (iss) field.

In Algorithm 1 we outline the process of validating VASP JWT token. Upon receiving a JWT token, VASP uses the Subject field of the token to look up the certificate on the blockchain. An absence of a certificate indicates that the token is not valid. The VASP uses the public key from the certificate to verify the ownership of the private key. Finally, if the VASP is the intended audience and the token is not expired, the token is deemed valid. return T.nbf > curT ime < T.exp 12: end procedure With the knowledge of VASP identity we can further discuss how the identity is verified.

Algorithm 1 JWT Token Validation

B. Identity Verification

The protocol uses a permissioned blockchain as a decentralized public key infrastructure, by storing proof of identity in the form of X.509 certificates on-chain. In keeping with standard SSL certificate practice, identity certificates must be signed, in this context by a the financial regulatory body for the jurisdiction in which the entity is operating. For example, a VASP operating in the USA should have its identity verified the Securities and Exchange commission (SEC), who would issue a certificate that acts as proof of identity, it is stored on the blockchain. Once a valid certificate is stored on-chain and associated with a VASP, the VASP can participate in the network. In order not to place too great of a burden on regulators we allow for certificate chains. A third party with a certificate issued by the regulator is authorised to carry out identity verification.

To maintain a high level of trust in our system, certificate chains are restricted to a length of two. CAs are granted verifier certificates by the jurisdiction's regulatory body, which can be used to verify identities, however CAs are not allowed to issue verifier certificates themselves. While the certificates of CAs and VASPs are stored on-chain the regulator's root certificate is publicly available through some other channel, likely their own server. This gives the regulator the flexibility to participate in the chain or not, as is appropriate for their role. Smart contracts are used to store a list of verified entities who are allowed to participate in the system. Each CA operates a smart contract for its jurisdiction, which holds the certificates and CRL for VASPs within that jurisdiction. If an entity's certificate cannot be found in the smart contract for the jurisdiction in which it operates, it is considered invalid, and should not be interacted with. As such, in order to join the VaVite network (Algorithm 2) a candidate VASP has to create a Certificate Signing Request (CSR) and prepare a set of rules (covered in subsection III-C). The CSR contains necessary information to carry out KYC checks in the requester's jurisdiction. In addition, the CSR contains an Ethereum address, derived from the corresponding to the public/private key pair they generate for use in the system, the process is detailed by Wood [START_REF] Wood | Ethereum: A secure decentralised generalised transaction ledger[END_REF]. The address acts as a unique identifier of the entity on the network, and will be used to look up the identity of the owner of the address. Finally, the candidate also includes their VIC in the CSR, which acts as a permanent identifier for the VASP.

Upon receiving the information, the CA ensures there is no address clash and verifies the identity of the VASP. The process of verifying the identity of a VASP will depend on the laws in the jurisdiction of the VASP. The CA then signs the certificate and stores it on the blockchain, the certificate is associated with the Ethereum address and the VIC of the VASP. The VIC is used to retrieve VASPs information as, unlike the certificate and address, it never changes. X.509 certificates specify a period of validity, this is set by the issuer to coincide with the date when the requesting entity's identity must be re-checked in accordance with due diligence laws, thus ensuring all entities are verifiable at all times. Finally, the V IC -→ EthAddr mapping and EthAddr -→ cert mappings are saved.

We assume that the CSR can uniquely identify a VASP and it cannot be forged. In case the public/private key pair has been compromised or the certificate needs to be replaced the VASP can request that the CA updates their certificate. The VASP has to send an identity proving CSR to the CA, which, in turn, carries out necessary identity checks and issues a new certificate. If the previous certificate was not expired the CA revokes the old certificate by updating the CRL held in the smart contract. The CA then adds the new certificate to the chain. The smart contract associates the certificate with the VASPs VIC and Ethereum address by the smart contract by updating the V IC -→ EthAddr and EthAddr -→ cert mappings with the new address. If the CSR is for a standard certificate renewal no revocation is necessary and the V IC -→ EthAddr mapping does not need to be updated.

Revocation also takes place when a VASP leaves the system. The CA accepts revocation requests of from either the VASP itself or a recognised regulatory body for the jurisdiction in question. The CA will remove the mapping to the certificate, thus suspending VASP's ability to participate in the system.

The methods detailed above rely on the honest behaviour of CAs'. Under our system CAs are incentivised to behave honestly through financial means. CAs are licensed by their respective national regulators, and paid for their identity verification work by VASPs wishing to be issued or reissued a certificate. Any dishonest behaviour by a CA will be visible to all stakeholders due to the immutable on-chain record of certificate issuances. Misbehaviour would result in fines or loss of license, with a loss of license meaning a loss of revenue as they can no longer verify VASPs. VASPs themselves are similarly incentivised to behave honestly. The system reduces their compliance costs and allows for faster, trusted interactions between one another. The paths they have been part of, and their rules at any given point are all recorded on-chain. A deviation from the rules would result in fines or expulsion from the system, which would negatively impact costs and revenue, especially if it is assumed that VASPs may choose to only do business with other VaVite participants. prevent the funding of those activities Country 1 has decided to restrict the trade of virtual assets with Country 2, furthermore it announces that it will seize participating in virtual asset trade with any country with relationship to Country 2. VASPs A and B add Country 1 to their blacklist, VASP D, to keep its business relationship with B also blacklists Country 2. However, B does not have any assurance that D blacklisted Country 2. We propose a rule based system to address this challenge. Inspired by firewewalls and MPLS, each VASP has a publicly accessible list of rules they adhere to when conducting business relationships with other VASPs. The rules identify assets and countries a VASP is unwilling to conduct business with. They apply not only to its immediate peers, but also any other VASP through which a payment might travel. In our example, VASPs in country 1 blacklisting country 2, VASP D responds by updating its rules to match those of VASP B. As the rules are publicly accessible VASP B can be sure that D updated their rules. In the remainder of the subsection we will discuss how conformation to rules is guaranteed, and participation in business relationships is made irrefutable.

As part of the registration process with the CA (Algo- rithm 2) VASP submits a set of rules that indicate high-risk assets and countries the VASP is unwilling to conduct business with. These restrictions are dictated by laws and agreements in the VASP's jurisdiction. The CA's role is to ensure there are legitimate grounds for the constraints and the VASP is not abusing its position. Upon validation the CA places the rules on the blockchain via a well defined Smart Contract that it owns. The rules can then be retrieved using VASPs Ethereum address.

To establish a business relationship with another VASP (Algorithm 3), the VASP reads the candidate's rules from the blockchain and ensures they match their own rules. If the rules match and a relationship can be established, the VASP subscribes to the events on the blockchain related to the rules of the candidate. As a result, it will be notified of any changes in the rules of the peer, and will be able to act accordingly.

Path establishment is the initialisation and reservation of a network path between a source and a destination prior to any data transmission. It requires the set-up of forwarding information in every node traversed by the path. Packets then all follow the same path until the connection is closed. In our solution, path establishment is required for regulatory reasons, to ensure that every node in a given path is identified and trusted. Path establishment requires to send a specific setup message which will travel from the source to the destination and vice-versa while installing stateful information in every crossed intermediate node.

It is imperative to ensure that all VASPs in a multi-hop payment path adhere to each other's rules. A VASP has firsthand evidence of its peers rules, but not of VASPs beyond. For example, in Figure 3, VASP S has no information about VASPs beyond VASP A, thus it has not assurance of rule adherence. We address this by introducing an extra layer between payment path establishment and payment execution: payment path verification. The algorithm allows to securely collect the identities of participants in the path, and verify the rules of each.

The originator VASP S creates a Path Verification Packet P (Algorithm 4), with its VIC in the participant list (Step 1 in Figure 3), and sends it to the recipient R using the underlying routing algorithm of the network.

Each VASP upon receiving this packet (Steps 1-3) appends their VIC to the list of participants and forwards it to the next VASP. Once the packet arrives at the destination, the receiver validates the rules and signs the packet. The signature serves two purposes, it indicates the packet is no longer modifiable and that the signer has verified the rules of each participant, found no clashes and agrees to participate in the payments on the path. VASP R then forwards the packet back to the originator, each node verifying and signing the packet along the way (Steps 4-6). When the packet reaches VASP S, it verifies that all participants have signed the packet and saves it on the blockchain (Step 7). Thus creating irrefutable agreement between all VASPs to participate in a transaction over the verified path. else if len(P.SIGS) > 0 ∧ RULESVALID(P) then 7:

sig ← NEWJWT(P) FORWARDPACKET(P) 24: end procedure

In the following section we will discuss how the system impacts VASP network formation and explore theoretical overheads of path establishment.

IV. THEORETICAL ANALYSIS

Rule based path verification will have an impact on the network topology and introduce overheads for payment processing. In this section we will provide a theoretical analysis of these effects, we leave the experimental analysis for future work.

We assume all VASPs in the network are properly incentivised to behave honestly, they follow the rules that have been verified by the CA. VASPs peering only with other VASPs whose rules match their own will produce a graph with multiple connected components, each of which will have identical rules. The intuition behind this is as follows, assume peered VASPs A and B with corresponding rule sets R A and R B . From Algorithm 3 we know that R A ≡ R B . A new VASP C joins the network and establishes a business relationship with B, which implies R B ≡ R C . From transitive relations we can say that (R

A ≡ R B ∧ R B ≡ R C ) =⇒ R A ≡ R C .
When VASP changes its rules, as seen in Figure 2, its peers have to update their rules to match or terminate their relationship, disconnecting from the connected component. However, the choice whether to disconnect or update can be dictated by multiple factors. For example, if VASP C blacklisted B, VASP D might be reluctant to follow suit, as B allows for further interaction with A. On the other hand, if VASP C provides more trade opportunities than B and A combined, it might be more valuable to terminate the relationship with B.

The total time required to establish a path depends on the number n of VASP nodes on the path (ranging from 2 to a given maximum m). In figure 3, n = 4. The message going to the destination will require n -1 hops. If we define t delay as the average delay between two nodes then:

t f orward = (n -1)t delay (1)
On the return path, every node will have to verify all other VASP identities thus requiring n -1 local read operations from the blockchain followed by a token check which is a signature verification. The source node will then have to write the path to the blockchain for bookkeeping. If we define t read the average time for reading a record on the blockchain, t sign the average time for signing a message, t check the average time for verifying a signed token, t rules the average time to check the rules, and t write the average time for writing a record to the blockchain then:

t return = n(n -1)(t read + t check ) + n(t rules + t sign ) + (n -1)t delay + t write (2)
Thus the total time for path establishment is given by:

t total = 2(n -1)t delay + n(t rules + t sign ) + n(n -1)(t read + t check ) + t write (3)
Also note that t write depends on the size of the blockchain network, as a write operation requires its broadcast over the whole network to reach a consensus.

In an Internet map collected by Hoerdt et al., 90% of the links between two routers or one router and one host have a delay below 40ms [START_REF] Hoerdt | Cartographie distribuée du coeur de l'internet[END_REF]. The average number of hops between two hosts in this map is 11. Thus, we can use 440ms as a reasonable average value for t delay . Jansma et al. have compared in [START_REF] Jansma | Performance comparison of elliptic curve and rsa digital signatures[END_REF] the performances of ECC and RSA for signing and verifying data and have found for a 100KB file, 590ms/860ms for 283-bit ECC keys and 210ms/10ms for 3072-bit RSA keys. The processor used was an Intel P4 at 2GHz which is of the same order of magnitude than the performances of nowadays server processors typically running at 3GHz. Thus we can use 590ms as a realistic value for t sign and 860ms for t check if we assume that the signed data is not bigger than 100KB and the processor's frequency is above 2GHz. Checking the rules requires comparing each element of the path to each element of the blacklist. This time t rules can be considered negligible compared to the others. Recently, Norvill et al. have experimented a permissioned blockchain deployed internationally for implementing a KYC data sharing platform [START_REF] Norvill | A security and privacy focused kyc data sharing platform[END_REF]. They have found that the average time for a local READ operation takes 39ms while a consensus WRITE operation takes 3659ms. As their system has a similar functionality to ours, we will therefore use 39ms for t read and 3659ms for t write as first indicators in our numerical application. Given the equation 3 and the above values, we have plotted the average time of path establishment vs the number of intermediary VASPs ranging from 2 (i.e., only one originator VASP and one beneficiary VASP) to 10. The results are shown in figure 4, and exhibit a quadratic time increase. This is due to the fact that the quadratic term n 2 of the equation is tied to t check which is numerically significant. A typical path with 2 intermediaries will take 19.4s to complete under the above assumptions.

V. CONCLUSION & FUTURE WORK

In this paper we propose a new system, which combines the strengths of OpenVASP and TRISA to provide irrefutable identity verification, simple KYC, and verifiable compliance for FATF recommendation as well as various national and international country and currency restrictions for VASPs. Our solution provides increased trust while avoiding the need for high availability of CAs. Trust and availability is ensured through the use of a private blockchain.

Compliance is assured through a rule-based system which allows VASPs to define a set of blacklist rules which enable them to remain compliant with all the laws and international stipulations that are relevant to them. By ensuring they are only involved in payment paths were all participants are in accordance with each others' rules.

Future work includes formally defining rules and the inclusion of 'soft' rules which would allow path participants to trade with entities disallowed by other path participants while keeping the restriction that disallowed entities cannot be in the path, and extending identity verification model to include VASP end-clients.

1 : 2 : 6 :

 126 procedure TOKENVALID(T) cert peer ← ETHEREUM.GETCERTIFICATE(T.sub) 3: if ABSENT(cert peer )or!SIGVALID(T, cert peer ) then vic vasp VIC of the VASP validating the JWT token 7: if T.aud = vic vasp then

Algorithm 2 2 :: return false 4 :

 224 VASP registration with a Certificate Authority 1: procedure REGISTERVASP(C, R) if not ETHEREUM.ADDRESSFREE(C.addr) then 3else if not (IDVALID(C) ∧ RULESVALID(C, R)) then (C.addr, cert) 9: ETHEREUM.STOREADDRMAPPING(C.addr, cert.V IC) 10: ETHEREUM.STORERULES(C.addr, R) 11: end procedure

Algorithm 3 Fig. 2 :

 32 Fig. 2: Blacklist rules.

Algorithm 4 Fig. 3 :

 43 Fig. 3: Path establishment.

Algorithm 5 5 :

 55 Handling a path establishment packet 1: procedure HANDLEPACKET(P) 2: if len(P.SIGS) = 0 then 3: vic vasp VIC of the VASP handling the packet 4: vic signed ← NEWJWT(vic vasp ) P ← APPENDVIC(vic signed ) 6:

Fig. 4 :

 4 Fig. 4: Path establishment time vs number of VASPs in path.

TABLE I :

 I Comparison of the Business Identity Code vs the VASP Identity Code.

	BIC:	BCEE	LU LL
	VIC: VASP	LU LL

TABLE II :

 II JWT Token fields.

	JWT Code	Name	Value Description
	sub	Subject	VIC of the VASP creating the token
	aud	Audience	VIC of the intended recipient of the
			token
	exp	Expires At	Time when the token expires
	iat	Issued At	Time when the token was issued
	nbf	Not Before Time from which the to ken is valid
	jti	JWT ID	Unique token identifier

ACKNOWLEDGEMENTS

The authors acknowledge the financial support from Ripple UBRI [23].


Hélène Chanal
email: helene.chanal@sigma-clermont.fr

Jean Baptiste

Adrien Koessler

Quentin Dechambre

Benjamin Boudon

Benoit Blaysat

Nicolas Bouton

Geometrical defect identification of a SCARA robot from a vector modeling of kinematic joints invariants

Keywords: geometrical modeling, geometrical identification, SCARA robot, Circle Point Analysis, joint invariant

This article introduces a new geometric vector modeling method of serial kinematic robot consistent with the identification process. This method is based on the definition of position and orientation of the robot joint invariants. For example, the invariant of the rotational joint is a straight-line (rotational joint axis). Thus, only independent geometrical parameters are introduced to model the joint axis position and orientation in space. Note that, the orientation is not constrained as in the Denavit-Hartenberg (DH) formalism. This article presents the methodology to define these geometrical parameters and the geometrical model. In this context, the identification method relies on "Circle Point Analysis". The points are measured with a laser tracker. Indeed, with a relevant processing of the measured points, we directly identify the invariants of joints. This method is applied to a SCARA robot geometric modeling. After an identification process, this methodology allows improving inverse kinematic error compared to the classical DH geometrical model with first and second-order defects. Moreover, the obtained residual error mean value is close to the accuracy of the measurement process.

Introduction

Improving the accuracy and productivity of a task frequently requires the implementation of a more or less autonomous process. It is in this context that manipulating robots were introduced. In this work, we focus on robots intended for "Pick and Place" operations. For this type of task, according to ISO9283 (ISO 9283,1993), the required performance criteria are: pose accuracy and repeatability, orientation accuracy, stabilization time, and static stiffness.

With the increase of robotic application requirements, a manual learning method is not possible and programming must be realized offline in a simulation environment [START_REF] Yang | A minimal kinematic model for serial robot calibration using POE formula[END_REF]. Therefore, the control of pose accuracy of the robot is essential. It involves proposing a geometric model with its associated identification process [START_REF] Khalil | Modeling Identification and Control of Robots[END_REF]. The final accuracy of the robot depends on the model choice and identification process [START_REF] Wu | Geometric calibration of industrial robots using enhanced partial pose measurements and design of experiments[END_REF] [START_REF] Omodei | Three methodologies for the calibration of industrial manipulators: Experimental results on a SCARA robot[END_REF]. In this article, we propose a new method to model the geometric behavior of serial robots with the aim of improving their final accuracy after a classical identification process.

The geometric model is the mathematical description of the geometric behavior of the robot. This model expresses the pose (position of a particular point and orientation) of the endeffector in the fixed base coordinates system of the robot regarding the value of the active joints 𝑞 𝑖 . Its expression is linked to robot geometric parameters, which have a significant influence on the end-effector pose, and on situation parameters (degrees of freedom of the robot joints).

A compromise must be found between the number of parameters considered, the complexity of the obtained model and the robustness of the identification process [START_REF] Yang | A minimal kinematic model for serial robot calibration using POE formula[END_REF] [START_REF] Barati | Estimation and Calibration of Robot Link Parameters with Intelligent Techniques[END_REF].

There are two main approaches to formalize the geometric model of a robot [START_REF] Cho | Screw based kinematic calibration method for robot manipulators with joint compliance using circular point analysis[END_REF]. The first approach is composed of methods that directly identify the geometric parameters like the leg lengths or the angles between joint axes. This approach includes, for example, the Denavit-Hartenberg (DH) formalism (Figure 1) [START_REF] Denavit | A kinematic notation for lower pair mechanism based on matrices[END_REF] or the Traveling Coordinate Systems (TCS) formalism [START_REF] Gogu | Représentation des déplacements des robots[END_REF]. The main advantage of these methods lies in their simplicity of implementation. In the case of the DH convention, the positioning and orientation of two adjacent joints require the introduction of four parameters [START_REF] Lipkin | A note on Denavit-Hartenberg notation in robotics[END_REF]. The main drawback is the nature of these introduced geometric parameters. The application of this method is difficult in the case of two adjacent joints with collinear or intersecting axes [START_REF] Cho | Screw based kinematic calibration method for robot manipulators with joint compliance using circular point analysis[END_REF] [START_REF] Lipkin | A note on Denavit-Hartenberg notation in robotics[END_REF]. In this case, the choice of 𝑥 ⃗ 𝑖-1 is not unique while it influences the definition of 𝑧 ⃗ 𝑖 orientation [START_REF] Khalil | Modeling Identification and Control of Robots[END_REF]. This drawback may lead to severe numerical difficulties for consecutive axes which are nominally parallel during the identification process. Indeed, small variations in axis alignment easily produce large changes in the geometric parameters [START_REF] Everett | kinematic modelling for robot calibration[END_REF]. Moreover, DH formalism does not ensure to consider and then identify joint axis orientation defect on (𝑥 ⃗ 𝑖-1 , 𝑧 ⃗ 𝑖-1 ) plane (Figure 1). To solve this problem, additional parameters are added to position and orient coordinates systems fixed to adjacent robot elements. Thus, Veitschegger adds a second-order error term to take into account the orientation defect between two consecutive parallel joints [START_REF] Veitschegger | Robot Accuracy Analysis Based on Kinematics[END_REF]. However, this solution can introduce redundant parameters, which affect the robustness of the identification [12][13]. The second approach concerns the methods used to identify the geometric parameters from the description of the kinematic movements of each joint. The geometric parameters are introduced during the definition of the reference model or "zero configuration" 𝐠 𝐬𝐭 (0) where all the active joint positions are null [1][14]:

𝐠 𝐬𝐭 (0) = [ 𝐑 𝐩 0 1 ] (1)
Where 𝐑 is a 3x3 rotation matrix and 𝐩 a 1x3 translation vector.

From this reference model, the kinematic model 𝐠 𝐝 is defined, for example, using "product-of-exponentials" (POE) [1][15][16] (Figure 2):

𝐠 𝐝 = 𝑒 𝐬 𝟏 ̂𝑞1 … 𝑒 𝐬 𝐧 ̂𝑞𝑛 𝐠 𝐬𝐭 (0) (2)
Where 𝐬 𝐢̇ is the twist matrix associated with joint 𝑖 and 𝑞 𝑖 is the joint position. The methodology to compute 𝑒 𝒔 𝐢̇𝑞𝑖 , 𝑖 ∈ {1, . . , 𝑛} is explained in [START_REF] Yang | A minimal kinematic model for serial robot calibration using POE formula[END_REF].

Figure 2: Link frame for a revolut joint for POE method [START_REF] Yang | A minimal kinematic model for serial robot calibration using POE formula[END_REF] The POE describes the configuration of a chain of bodies connected by lower pair joints. The kinematics is given in terms of joint screws [START_REF] Müller | An overview of formulae for the higher-order kinematics of lower-pair chains with applications in robotics and mechanism theory[END_REF].

In these methods, the definition of the reference model is not constrained by the coordinate system associated with each part. This leaves open the question of setting up redundant geometric parameters. By focusing on kinematic joint invariants, Yang developed a minimal kinematic model from a POE formulation [START_REF] Yang | A minimal kinematic model for serial robot calibration using POE formula[END_REF]. Indeed, the number 𝐶 of independent geometric parameters necessary to describe the reference geometry of a serial robot is known according to [START_REF] Everett | kinematic modelling for robot calibration[END_REF]:

𝐶 = 4𝑅 + 2𝑃 + 6 ( 2
)
where R is the number of rotational joints and P is the number of prismatic joints. Indeed, according to Everett, 6 parameters are required to specify the position of the robot frame in the fixed coordinate system, 4 parameters are required to position and orient a rotation axis, and 2 parameters to orient a prismatic joint axis [START_REF] Everett | kinematic modelling for robot calibration[END_REF]. This formula is also satisfied when the geometric invariants of joints are considered as in the mechanical tolerancing process [START_REF] Clément | The TTRS: 13 oriented constraints for dimensioning, tolerancing and inspection[END_REF]. Thus, Clément defines Minimum Geometric Reference Set (MGRS) according to a joint degree of freedom [START_REF] Clément | The TTRS: 13 oriented constraints for dimensioning, tolerancing and inspection[END_REF]. For a single-axis rotation, the MGRS is a straight-line (i.e. the axis of rotation). 4 parameters are introduced for describing this geometric feature, i.e. 2 parameters to define the straight-line orientation and 2 parameters to define a point of this straight-line. For a unidirectional translation, the MGRS is a straightline parallel to the direction of the translation, i.e. 2 parameters to define the orientation of this line.

The problematic consists then to define a formalism which introduces a minimal number of parameters with regard the joint type, i.e. which introduces 4 parameters allowing to position and orient a rotational joint in space and 2 parameters for a prismatic joint.

The objective of this article is, thus, to introduce a new geometric modeling approach of a serial robot (just with rotational joints in our case study). The introduced approach is based on the geometric joint invariants which are described by vectors. This approach is consistent with a classical identification process, the "Circle Point Analysis" (CPA). Indeed, this method directly identifies the invariants of rotational joints [START_REF] Everett | kinematic modelling for robot calibration[END_REF][6] (Figure 3). The consistency of the proposed geometric modeling method with the identification process naturally improves the final geometric accuracy of the studied robot. The method presented in this article is illustrated on a SCARA (Selective Compliance Articulated Robot Arm) robot. Indeed, the choice of this simple robot ensures to describe clearly the introduced geometric modeling method and illustrates the accuracy benefit compare to the DH formalism, even if the system is simple and composed of two joints.

The article is organized as follows: First, the nominal model of the SCARA robot is introduced. Then, the method for modeling geometric invariant of a rotational joint is defined. Next, this modeling method and the identification process are applied to a SCARA robot. Finally, end-effector pose errors obtained after identification with our model and DH model are compared.

Nominal modeling of a SCARA robot

The aim of nominal modeling consists in defining a coordinate system fixed to each rigid part of the studied robot. The DH formalism is used to define the robot nominal model. This convention is commonly implemented and has shown is relevancy to define the nominal robot model [START_REF] Lipkin | A note on Denavit-Hartenberg notation in robotics[END_REF].

In this paragraph, the DH convention is first introduced before presenting the studied SCARA robot and the application of the DH convention.

Denavit-Hartenberg convention

The DH convention parameters ensures to define the position, and the orientation of the coordinate systems fixed to each rigid part of a mechanism. Here, the aim is to define its geometric model [START_REF] Khalil | A new geometric notation for open and close-loop robots[END_REF].

Each rigid body Ci of a mechanism is associated with a coordinate system 𝑅 𝑖 (𝑂 𝑖 , 𝑥 ⃗ 𝑖 , 𝑦 ⃗ 𝑖 , 𝑧 ⃗ 𝑖 ), 𝑖 = 0,1, . . , 𝑛. The position and the orientation of coordinate systems 𝑅 1 to 𝑅 𝑛-1 is defined according to specific rules which require 4 parameters (𝑑 𝑖 , 𝜃 𝑖 , 𝑎 𝑖 , 𝛼 𝑖 ) (Figure 1).

Frame 𝑅 𝑖 is attached to each link 𝑖, such that [START_REF] Denavit | A kinematic notation for lower pair mechanism based on matrices[END_REF] (Figure 1):

-the 𝑧 ⃗ 𝑖 axis is along the axis of joint 𝐿 𝑖 , -the 𝑥 ⃗ 𝑖 axis is aligned with the common normal between 𝑧 ⃗ 𝑖 and 𝑧 ⃗ 𝑖+1 , -the intersection of 𝑥 ⃗ 𝑖 and 𝑧 ⃗ 𝑖 defines the origin 𝑂 𝑖 , -the 𝑦 ⃗ 𝑖 axis is formed by the right-hand rule to complete the coordinate system -𝑑 𝑖 is the distance between 𝑥 ⃗ 𝑖-1 and 𝑥 ⃗ 𝑖 along 𝑧 ⃗ 𝑖 , -𝜃 𝑖 is the angle between 𝑥 ⃗ 𝑖-1 and 𝑥 ⃗ 𝑖 , -𝑎 𝑖 is the distance between 𝑧 ⃗ 𝑖 and 𝑧 ⃗ 𝑖+1 along 𝑥 ⃗ 𝑖 , -𝛼 𝑖 is the angle between 𝑧 ⃗ 𝑖 and 𝑧 ⃗ 𝑖+1 .

The positions and orientations of references R 0 and R n are chosen to minimize the number of introduced geometric parameters.

The transfromation from coordinate system R i to R i+1 is then expressed from:

𝐓 𝐢 𝐢+𝟏 = ( 1 0 0 0 0 1 0 0 0 0 1 𝑑 𝑖 0 0 0 1 ) ( cos (𝜃 𝑖 ) -sin (𝜃 𝑖 ) 0 0 sin (𝜃 𝑖 ) cos (𝜃 𝑖 ) 0 0 0 0 1 0 0 0 0 1 ) ( 1 0 0 𝑎 𝑖 0 1 0 0 0 0 1 0 0 0 0 1 ) ( 1 0 0 0 0 cos (𝛼 𝑖 ) -sin (𝛼 𝑖 ) 0 0 sin (𝛼 𝑖 ) cos (𝛼 𝑖 ) 0 0 0 0 1 ) (3)
𝑑 𝑖 , 𝜃 𝑖 , 𝑎 𝑖 and 𝛼 𝑖 are defined in Figure 1.

Thus, the nominal position of body C n in coordinate system R 0 is extracted from:

𝐓 𝐧 = 𝟎 𝐓 𝟎 𝟏 𝐓 𝟏 𝟐 … 𝐓 𝐧-𝟏 𝐧 (4)

Application to the SCARA robot

The first step of the DH convention application consists of setting up a coordinate system fixed to each robot rigid part (Figure 4). The position and orientation of the different coordinate systems allow defining the geometrical parameters necessary for the complete definition of the nominal model. These parameters are defined in Table 1 for the first two joints of a SCARA robot when considering 𝑧 ⃗ 0 = 𝑧 ⃗ 1 and 𝑂 0 = 𝑂 1 .

𝑑 𝑖 𝜃 𝑖 𝑎 𝑖 𝛼 𝑖 𝑅 0 → 𝑅 1 - - 0 0 𝑅 1 → 𝑅 2 𝑑 1 𝑞 1 𝑎 1 0 𝑅 2 → 𝑅 𝑒 0 𝑞 2 𝑎 2 0
Table 1: DH geometric parameters of the studied SCARA robot.

The geometric parameters taken into account by the nominal geometric model of the first two joints of the SCARA robot are the lengths of the arms 1 and 2 (𝑎 1 and 𝑎 2 ), the offset d 1 of the end-effector controlled point along the axis 𝑧 ⃗ 2 as well as the joint coordinate value applied to the motors (𝑞 1 , 𝑞 2 ).

Definition of the SCARA robot nominal model

The definition of the Direct Kinematic Model (DKM) is realized according to transformation matrices such as:

𝐓 𝐍 𝟑 𝟎 = 𝐓 𝐍 𝟏 𝟎 𝐓 𝐍 𝟐 𝟏 𝐓 𝐍 𝟑 𝟐 = [ cos (𝑞 1 + 𝑞 2 ) -sin(𝑞 1 + 𝑞 2 ) 0 𝑎 2 cos(𝑞 1 + 𝑞 2 ) + 𝑎 1 cos (𝑞 1 ) sin(𝑞 1 + 𝑞 2 ) cos (𝑞 1 + 𝑞 2 ) 0 𝑎 2 sin(𝑞 1 + 𝑞 2 ) + 𝑎 1 sin (𝑞 1 ) 0 0 1 𝑑 1 0 0 0 1 ] (5)
where 𝐓 𝐍 𝒊 𝒋 is the nominal transformation matrix of coordinate system R i to coordinate system R j .

The last column of this transformation matrix directly provides the coordinates of the nominal position of the point O 3 in frame R 0 :

𝑂 1 𝑂 𝑁 3 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ = [ 𝐓 𝐍 𝟑 𝟎 (1,4) 𝐓 𝐍 𝟑 𝟎 (2,4) 𝐓 𝐍 𝟑 𝟎 (3,4) ] 𝑅 0 = [ 𝑎 2 cos(𝑞 1 + 𝑞 2 ) + 𝑎 1 cos (𝑞 1 ) 𝑎 2 sin(𝑞 1 + 𝑞 2 ) + 𝑎 1 sin (𝑞 1 ) 𝑑 1 ] 𝑅 0 (6)
This last expression gives the definition of the nominal DKM of the SCARA robot.

However, this formalism does not allow integrating orientation defects of the axis 𝑧 ⃗⃗⃗ 𝑖 in a plane different from the plane (𝑦 ⃗ 𝑖-1 , 𝑧 ⃗ 𝑖-1 ). The introduction of a complete description of the orientation of a coordinate system regarding another requires the use of a more complete formalism. The following section introduces such formalism.

Geometric defects introduction with a vector method

The geometric behavior of a robot relies on the position and orientation of its joints. For the SCARA robot, introduced defects are linked to the orientation and position of robot rotational joints. The invariant of the rotational joint is a straight-line (rotational joint axis) [START_REF] Clément | The TTRS: 13 oriented constraints for dimensioning, tolerancing and inspection[END_REF]. Therefore, 4 parameters are introduced for describing this feature, i.e. 2 parameters to define the straight-line orientation and 2 parameters to define a point of this straight-line. In this way, the definition of the direct kinematic model of the SCARA robot requires the identification of 4 parameters, for each rotational joint, which describe the position and orientation of each rotational joint axis in the coordinate system associated with the previous joint axis (Figure 5). Note that, for a prismatic joint just the 2 parameters which define the straight-line orientation are necessary.

The following paragraph introduces the methodology proposed to define these 4 parameters.

(𝑂 𝑖-1 , 𝑧 ⃗ 𝑖-1 ) is the axis of rotational joint i -1 and (𝑂 𝑖 , 𝑧 ⃗ 𝑖 ) the axis of rotational joint i. 𝑂 𝑖 is the intersection point between plan (𝑂 𝑖-1 , 𝑥 ⃗ 𝑖-1 , 𝑦 ⃗ 𝑖-1 ) and the axis of rotational joint i. 𝑥 ⃗ 𝑖-1 ′ is the direction vector of the straight line (𝑂 𝑖-1 𝑂 𝑖 ), thus 𝑂 𝑖-1 𝑂 𝑖⃗ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ = 𝑎 𝑖-1 𝑥 ⃗ 𝑖-1 ′. Note the scalar product 𝑥 ⃗ 𝑖-1 • 𝑥 ⃗ 𝑖-1 ′ = cos (𝜃 𝑖-1 ). The coordinate system 𝑅 𝑖-1 ′ is then defined from the cross product 𝑦 ⃗ 𝑖-1 ′ = 𝑧 ⃗ 𝑖-1 × 𝑥 ⃗ 𝑖-1 ′. 𝑥 ⃗ 𝑖 is along the projection of 𝑥 ⃗ 𝑖-1 ′ in the plan normal to 𝑧 ⃗ 𝑖 which contains 𝑂 𝑖 . Then the coordinate system 𝑅 𝑖 is defined as Thus, the rotation matrix allowing defining the orientation of coordinate system 𝑅 𝑖-1 ′ in coordinate system 𝑅 𝑖-1 can be written as:

𝑥 ⃗ 𝑖-1 ′ • 𝑦 ⃗ 𝑖 = 0, 𝑥 ⃗ 𝑖 • 𝑧 ⃗ 𝑖 = 0 and 𝑦 ⃗ 𝑖 = 𝑧 ⃗ 𝑖 × 𝑥 ⃗ 𝑖
with 𝜃 𝑖-1 the angle between 𝑥 ⃗ 𝑖-1 and 𝑥 ⃗ 𝑖-1 ′.

The rotation matrix allowing the expression of coordinate system 𝑅 𝑖 relatively to coordinate system 𝑅 𝑖-1 ′ is:

𝐑 𝐢-𝟏′ 𝐢 = ( √𝐽 𝑖 2 +
with

𝑧 ⃗ 𝑖 = 𝐼 𝑖 𝑥 ⃗ 𝑖-1 ′ + 𝐽 𝑖 𝑦 ⃗ 𝑖-1 ′ + 𝐾 𝑖 𝑧 ⃗ 𝑖-1 ′, i.e. (𝐼 𝑖 , 𝐽 𝑖 , 𝐾 𝑖 ) are the coordinates of 𝑧 ⃗ 𝑖 in frame 𝑅 𝑖-1 ′, with 𝑥 ⃗ 𝑖-1 ′ • 𝑦 ⃗ 𝑖 = 0, 𝑥 ⃗ 𝑖 • 𝑧 ⃗ 𝑖 = 0 and 𝑦 ⃗ 𝑖 = 𝑧 ⃗ 𝑖 × 𝑥 ⃗ 𝑖 .
Thus, the identification of the position and the orientation of each rotational joint axis (a straight-line orientation and a point) in the coordinate system associated with the previous axis is performed thanks to 4 independent parameters 𝜃 𝑖 , 𝑎 𝑖 , 𝐼 𝑖 , 𝐽 𝑖 and a dependent parameter

𝐾 𝑖 = √1 -(𝐼 𝑖 2 + 𝐽 𝑖 2 )
. As 𝐾 𝑖 is always positive, its imposes the direction of the unit vector of the joint axis. Note that, for a prismatic joint, this formalism is used by canceling 𝜃 𝑖 and 𝑎 𝑖 .

The introduced parameters are different from those defined with the DH convention. Indeed, with our methodology, 𝑧 ⃗ 𝑖 axis is not constrained to be in the plane (𝑦 ⃗ 𝑖-1 , 𝑧 ⃗ 𝑖-1 ). Moreover, 𝑅 𝑖 position and orientation are not constrained by the definition of coordinate system 𝑅 𝑖-1 .

Application to the geometric behavior modeling of the SCARA robot

Applying the strategy previously presented to the first two axes of a SCARA robot, the model presented in Figure 6 is obtained.

First, 𝑧 ⃗ 1 and 𝑧 ⃗ 2 are chosen along the rotation axis of the first two rotational joints of a SCARA robot. Point 𝑂 1 is arbitrary chosen on the first rotational joint axis. For our study, we consider that 𝑅 1 is the robot coordinate system. Coordinate system 𝑅 2 (𝑂 2 ′, 𝑥 ⃗ 2 , 𝑦 ⃗ 2 , 𝑧 ⃗ 2 ) is defined according to the methodology presented in section 3. Since the studied system features only 2 degrees of freedom, a coordinate system 𝑅 3 is not introduced, but only a point 𝑂 3 which corresponds to the end-effector control point. The position of this point 𝑂 3 is defined accordingly to the one of point 𝑂 𝑖 in section 3 and the introduction of a new point 𝑂 2 . The introduction of this new point 𝑂 2 let open the possibility of an offset between chosen point 𝑂 1 and end-effector control point 𝑂 3 . 𝑂 1 corresponds to a virtual point and, end-effector control point 𝑂 3 can be physically defined and can change accordingly to the used end-effector. Finally, 7 parameters are introduced: 𝜃 1 , 𝜃 2 , 𝑎 1 , 𝑎 2 , 𝑑 2 , 𝐼 2 , 𝐽 2 . The DKM is expressed as:

𝑂 1 𝑂 3 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ = 𝑂 1 𝑂 2 ′ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ + 𝑂 2 ′ 𝑂 2 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ + 𝑂 2 𝑂 3 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ = 𝑎 1 𝑥 ⃗ 1 ′ + 𝑑 2 𝑧 ⃗ 2 + 𝑎 2 𝑥 ⃗ 2 ′ (9)
With 𝑥 ⃗ 1 ′ = ( cos (𝑞 1 + 𝑑𝜃 1 ) -sin(𝑞 1 + 𝑑𝜃 1 ) 0 sin (𝑞 1 + 𝑑𝜃 1 ) cos (𝑞 1 + 𝑑𝜃 1 ) 0 0 0 1

) (

1 0 0 ) = 𝐑 𝟎 𝟏 ( 1 0 0 ), 𝑥 ⃗ 2 ′ = cos(𝑞 2 + 𝑑𝜃 2 ) 𝑥 ⃗ 2 + sin(𝑞 2 + 𝑑𝜃 2 ) 𝑦 ⃗ 2 ,
This matrix 𝐑 𝟏′ 𝟐 defines the orientation of coordinate system 𝑅 2 in coordinate system 𝑅 1 ′.

Note:

𝐑 𝟐 𝟐′ = ( cos (𝑞 2 + 𝑑𝜃 2 ) -sin(𝑞 2 + 𝑑𝜃 2 ) 0 sin (𝑞 2 + 𝑑𝜃 2 ) cos (𝑞 2 + 𝑑𝜃 2 ) 0 0 0 1 ) (11)
Then, SCARA DKM is expressed by:

𝑂 1 𝑂 3 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ = 𝑎 1 𝐑 𝟏 𝟏′ ( 1 0 0 ) + 𝑑 2 𝐑 𝟏 𝟏′ 𝐑 𝟏′ 𝟐 ( 0 0 1 ) + 𝑎 2 𝐑 𝟏 𝟏′ 𝐑 𝟏′ 𝟐 𝐑 𝟐 𝟐′ ( 1 0 0 ) (12)
The parameters to be identified are 𝑎 1 , 𝑑 2 , 𝑎 2 , 𝑑𝜃 1 , 𝑑𝜃 2 and the 𝐼 2 and 𝐽 2 coordinates of 𝑧 ⃗ 2 in 𝑅 1 ′. 6 parameters should be added to position and orient coordinate system 𝑅 1 (𝑂 1 , 𝑥 ⃗ 1 , 𝑦 ⃗ 1 , 𝑧 ⃗ 1 ) which is coincident with the robot base coordinate system in the measurement coordinate system.

Geometric parameters identification

The identification process is realized with a laser tracker (Leica AT-901) with an uncertainty of 10 μm + 5 μm/m (Figure 7). The target is localized at the extremity of the endeffector. The studied robot joints are moved with harmonic drives. These drives have low backlash [START_REF] Siciliano | Handbook of Robotics[END_REF]. Thus, the influence of backlash in identification process is neglected. To directly identify the invariants of robot joints from the laser tracker measurements, the CPA method is used [21][6]. This method ensures to identify each robot rotational joint axis and is described in [START_REF] Mooring | Fundamentals of Manipulator Calibration[END_REF]. This method consists in measuring the tool path followed by the endeffector during a single actuated joint movement (Figure 8). The theoretical tool path is a circle. The normal vector of the plane in which the circle movement lies is the axis vector of the actuated joint, and the circle center is a point of this joint axis. For a robot with N degrees of freedom, N circles should be measured. To minimize the regression errors, the joint positions should be uniformly spaced [START_REF] Mooring | Fundamentals of Manipulator Calibration[END_REF]. The identification accuracy depends on the ability to trace the target on a portion of the total joint travel as large as possible according to the measurement mean visibility [START_REF] Mooring | Fundamentals of Manipulator Calibration[END_REF]. For each value of the joint position, the coordinate of the target is measured in the laser tracker coordinate system. To avoid dynamic phenomena, the robot is stopped during each measurement. As shown on Figure 8, points 𝐌 𝟏 and 𝐌 𝟐 are the different positions reached by the target during a rotational movement, respectively, of axis 1 or axis 2. The coordinates of the points measured in laser tracker coordinate system 𝑅 𝐿𝑇 (𝑂 𝐿𝑇 , 𝑥 ⃗ 𝐿𝑇 , 𝑦 ⃗ 𝐿𝑇 , 𝑧 ⃗ 𝐿𝑇 ) are given in appendix A.

In appendix A, we can see that seven positions are measured twice. Between the two measurements, there is a repositioning of the laser tracker target. From these measurements, a maximum target repositioning defect of 0.032 mm is obtained. This error will affecte the identification process.

In this paper, the coordinates of a vector 𝑥 ⃗ on a given coordinate system 𝑅 𝑖 is noted 𝑥 ⃗ 𝑅 𝑖 .

The geometric parameters of the SCARA robot are identified from two geometric construction steps:

-From measured points 𝐌 𝟏 obtained during a movement of joint 1, the leastsquares plan 𝒫 1 is computed. The normal of this plan ensures to identify the coordinate of 𝑧 ⃗ 1 𝑅 𝐿𝑇 in the laser tracker coordinate system (Figure 4). The set of points 𝐌 𝟏 are projected in plane 𝒫 1 . The least-square circle 𝒞 1 is then computed from these projected points 𝐌 𝟏𝐩 . The center of circle 𝒞 1 allows identifying the coordinates of point 𝑂 1 𝑅 𝐿𝑇 in the laser tracker coordinate system (Figure 4).

-From measured points 𝐌 𝟐 obtained during a movement of joint 2, the leastsquares plan 𝒫 2 is computed. The normal of this plan ensure to identify the coordinate of 𝑧 ⃗ 2 𝑅 𝐿𝑇 in laser tracker coordinate system (Figure 4). The set of points 𝐌 𝟐 are projected in plane 𝒫 2 . The least-square circle 𝒞 2 is then computed from these projected points 𝐌 𝟐𝐩 . The center of circle 𝒞 2 allows identifying the coordinates of point 𝑂 2 𝑅 𝐿𝑇 in the laser tracker coordinate system (Figure 4).

From these geometric constructions, the geometric parameters introduced in section 4 are identified. In this identification process, we consider that the base coordinate system of the robot is coincident with 𝑅 1 , i.e. 𝑅 1 is the fixed coordinate system. The orientation of 𝑥 ⃗ 1 is aligned with 𝑥 ⃗ 1 ′ when 𝑞 1 = 0, i.e. 𝑑𝜃 1 = 0. The value of 𝑑𝜃 2 is the angle between 𝑥 ⃗ 2 and 𝑥 ⃗ 2 ′ when 𝑞 2 = 0. 𝑑𝜃 2 is obtained from the angle between 𝑥 ⃗ 2 and 𝑂 2 𝑀 2𝑝 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ when 𝑞 1 = 0.

𝑎 2 is the radius of circle 𝒞 2 . 𝑂 2 ′ is the intersection point between the straight-line (𝑂 2 , 𝑧 ⃗ 2 )

and plane 𝒫 1 . 𝑑 2 is such that 𝑂 2 ′ 𝑂 2 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ = 𝑂 1 𝑂 2 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ -𝑂 1 𝑂 2 ′ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ = 𝑑 2 𝑧 ⃗ 2 . However, 𝑂 1 𝑂 2 ′ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ • 𝑧 ⃗ 1 = 0. Thus, 𝑑 2
is computed from:

𝑑 2 = 𝑂 1 𝑂 2 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ •𝑧 ⃗ 1 𝑧 ⃗ 1 •𝑧 ⃗ 2 ( 13
)
𝑎 1 is the distance between point 𝑂 1 and point

𝑂 2 ′ with 𝑎 1 = ‖𝑂 1 𝑂 2 ′ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ ‖. Moreover, 𝑂 1 𝑂 2 ′ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ = 𝑂 1 𝑂 2 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ -𝑑 2 𝑧 ⃗ 2 .
The determination of 𝑥 ⃗ 1 ′ comes from:

𝑥 ⃗ 1 ′ = 𝑂 1 𝑂 2 ′ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ 𝑎 1 (14) Thus, 𝑦 ⃗ 1 ′ = 𝑧 ⃗ 1 × 𝑥 ⃗ 1 ′. We can then deduce 𝐼 2 = 𝑧 ⃗ 2 • 𝑥 ⃗ 1 ′, 𝐽 2 = 𝑧 ⃗ 2 • 𝑦 ⃗ 1 ′ and 𝐾 2 = 𝑧 ⃗ 2 • 𝑧 ⃗ 1 .
Finally, 𝑥 ⃗ 1 = 𝑥 ⃗ 1 ′ when 𝑞 1 = 0 and 𝑦 ⃗ 1 = 𝑧 ⃗ 1 × 𝑥 ⃗ 1 . Note that coordinate system 𝑅 1 can be identified completely only at the end of the numerical process.

The transformation matrix which expresses coordinate system 𝑅 1 in laser tracker coordinate system is finally defined such as:

𝐓 𝐑 𝟏 𝐋𝐓 = [ 𝑥 ⃗ 1 𝑅 𝐿𝑇 𝑦 ⃗ 1 𝑅 𝐿𝑇 𝑧 ⃗ 1 𝑅 𝐿𝑇 𝑂 1 𝑅 𝐿𝑇 0 0 0 1 ]
The identified values are given in Table 2.

Geometric parameters

Identified values The residual errors after identification for points 𝐌 𝟏 and 𝐌 𝟐 are given in Figure 9. The maximum residual error value is obtained for a movement of joint 1 and is near 0.069 mm. The mean residual error for a joint 1 movement is 0.030 mm and 0.015 mm for a joint 2 movement. All these values are close to the maximum observed target repositioning defect which is 0.032 mm.

𝐓

Figure 9: Residual errors on points used for the identification process

From the identification process, the flatness and roundness of each joint are estimated. These features are technical behavior which characterize the geometric joint behavior (Figure 10). The flatness is estimated by computing the distance between each measured point and the associated least-square plane. The roundness correspond to the distance between each measured point projection and the associated least-square circle. For joint 1, the flatness defect is 0.03 mm and the roundness defect is 0.031 mm. For joint 2, the flatness defect is 0.013 mm and the roundness defect is 0.018 mm. Nine supplementary points 𝐌 𝐯 are measured with the laser tracker for validating realized identification. The coordinates of these points are given in Appendix B. The errors between measured point positions and simulated with identified DKM are less than 0.046 mm (Figure 11). This maximum error is less than the maximum residual error of the identification process which is 0.069 mm in our case study. The inaccuracy of the measurement with the laser tracker, the repeatability of the measurement process, the repeatability of the robot, and the uncompensated defect like joint flatness and roundness explain this error. To illustrate the benefit of the new vector modeling method introduced in this paper on the final accuracy of geometric model, a comparison between these results and those obtained after an identification of a DH SCARA identified DKM is realized in the following section.

Identification of the DH SCARA geometric model

The identification of the DH SCARA geometric model is realized with two viewpoints. The first one brings to realize an identification of just the first order defect (dimensional defect), i.e. 𝑎 1 , 𝑑 2 , and 𝑎 2 . The second one introduces second-order defects which are considered as small displacement. The DH geometric parameters become as in Table 3 if the base coordinate system of the robot is coincident with 𝑅 1 , and 𝑅 2 ′ and 𝑅 𝑒 have the same unit vectors. Thus, two second-order defects are introduced: 𝑑𝛼 2 and 𝑑𝜃 2 .

𝑑 𝑖 𝜃 𝑖 𝑎 𝑖 𝛼 𝑖 𝑅 1 →𝑅 1 ′ 0 q 1 0 0 𝑅 1 ′→𝑅 2 0 0 𝑎 1 𝑑𝛼 2 𝑅 2 ′→𝑅 2 𝑑 2 𝑞 2 + 𝑑𝜃 2 𝑎 2 0
Table 3: first and second order of DH geometric parameters.

In the following sections, the identification of DH SCARA geometric parameters with only first-order defects is firstly presented. Afterwards, we introduce the identification of DH SCARA geometric parameters with first-order and second-order defects.

Identification of the DH SCARA geometric parameters reduced to first-order defects

The identification process is realized from points 𝐌 𝟏 and 𝐌 𝟐 measurement. Thus, the position and orientation of coordinate system 𝑅 1 regarding laser tracker coordinate system is the same as in Table 2. All points 𝐌 𝟏 are projected in plane 𝒫 1 . The position of point 𝑂 2 is computed from a translation of plane 𝒫 1 with a least square minimization regarding points 𝐌 𝟐 . The residual errors after identification for points 𝐌 𝟏 and 𝐌 𝟐 are given in Figure 12. The maximum residual error value is obtained for a movement of joint 1 and is near 0.142 mm. The mean residual error for a joint 1 movement is 0.103 mm and 0.070 mm for a joint 2 movement. The same nine validation points are used to estimate the accuracy benefit brings by the vector geometric model (Figure 13). The errors between measured points position and simulated with identified DKM are less than 0.122 mm. The defect is multiplied by two compared to the proposed vector method. However, in this DH model only the first-order defects are considered. In the following section, second-order defects are introduced to improve the final accuracy of the robot.

The identified values are given in

Identification of the DH SCARA geometric parameters with first and second-order defects

For the case of the DH geometric model with first and second-order defects, the identification process based on CPA cannot be simply implemented. Indeed, with these DH geometric parameters, the only orientation defect between axis 𝑧 ⃗ 1 and 𝑧 ⃗ 2 is a rotation 𝑑𝛼 2 around 𝑥 ⃗ 1 ′. This constraint cannot be easily written in the measurement coordinate system.

In this case, the identification process should be realized by a minimization of a cost function expressed directly from the DKM.

Only matrix 𝐑 𝟏′ 𝟐 is modified:

𝐑 𝟏′ 𝟐 = ( 1 0 0 0 √1 -𝑑𝛼 2 2 𝑑𝛼 2 0 -𝑑𝛼 2 √1 -𝑑𝛼 2 2 ) (15)
The SCARA DKM is expressed from equation [START_REF] Schröer | Complete, minimal and model-continuous kinematic models for robot calibration[END_REF].

The geometric parameters of the SCARA robot are identified in two steps:

-The first step is like the one of section 5. From measured points 𝐌 𝟏 obtained during a movement of joint 1, the least-squares plan 𝒫 1 and the least-square circle 𝒞 1 are computed. The coordinate of 𝑧 ⃗ 1 𝑅 𝐿𝑇 and of point 𝑂 1 𝑅 𝐿𝑇 in the laser tracker coordinate system are identified (Figure 4).

-The second step consists of the minimization of a cost function which expresses the difference between the measured coordinate of points 𝐌 𝟐 in the laser coordinate system with the computed vector 𝐎 𝟏 𝐎 𝟑 𝐑 𝐋𝐓 = [𝑂 1 𝑂 3 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ 𝑅 𝐿𝑇 (𝑞 2 𝑖 )]:

𝑓 𝑐𝑜𝑠𝑡 = √∑ (𝑂 1 𝑀 2𝑖⃗ ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ -𝑂 1 𝑂 3 ⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗⃗ 𝑅 𝐿𝑇 (𝑞 2 𝑖 )) 30 𝑖=1 (15)
The optimized parameters are the coordinate of 𝑥 ⃗ 1 𝑅 𝐿𝑇 , 𝑎 1 , 𝑎 2 , 𝑑 2 , 𝑑𝜃 2 and 𝑑𝛼 2 .

The optimization numerical process is realized with the function "lsqnonlin" of Matlab®. The optimization stops due to the selected value of the step size tolerance which is 10 -10 .

The identified values are given in Table 5.

Geometric parameters

Identified The residual errors after identification for points 𝐌 𝟏 and 𝐌 𝟐 are given in Figure 14. The maximum residual error value is obtained for a movement of joint 1 and is near 0.087 mm. The mean residual error for a joint 1 movement is 0.041 mm and 0.010 mm for a joint 2 movement. The same nine validation points are used to estimate the accuracy benefit brings by the vector geometric model (Figure 15). The errors between measured points position and simulated with identified DKM are less than 0.055 mm. The defect is 0.009 mm higher compared to the proposed vector method. Indeed, in this case, a first step, before numerical optimization, should be realized to identify the position and orientation of the coordinate system 𝑅 1 regarding the laser tracker coordinate system. Thus, identification errors should be greater than those obtained with a CPA method due to this first step [START_REF] Chanal | Sensitivity analysis of an overconstrained parallel structure machine tool, the Tripteor X7[END_REF].

To finalize this study, and to illustrate the influence of this DKM parameters, we choose to neglect the term 𝐼 2 in our vector model. Indeed, in the DH first and second-order DKM, this parameter is not introduced. To see the influence of this term, we compare the measured position of the nine validation points with the simulated points with the vector geometric model with 𝐼 2 = 0 (Figure 16). The errors between the position of the measured points and the studied DKM are less than 0.063 mm. The defect is multiplied by two-thirds compared to the defect obtained with our vector method with 𝐼 2 ≠ 0 and is 0.008 mm higher compared to the DH first and second-order DKM. This last result validates the interest of the proposed vector model and shows the impact of taking into account all the orientation defect of joint axis.

Summary

To conclude on this section, the proposed vector modeling method improves the accuracy between the real geometric behavior and the simulated geometric behavior even if second-order defects are implemented in the DH geometric model. The other benefit of the proposed vector modeling is the consistency between the vector definition of each joint axis and the CPA identification process. This particularity decreases the influence of the identification numerical process on the inverse kinematic residual error.

Conclusion

In this article, a new geometric vector modeling method of a serial kinematic robot consistent with the CPA identification process is presented. This method is based on the definition of position and orientation of the robot joints invariants. The invariant of the rotational joint is a straight-line (rotational joint axis orientation and a point). Thus, four parameters are introduced to position a point and orient a vector which are linked to robot joints. The methodology to define these parameters is introduced. These parameters are identified from a CPA method. This identification ensures to directly identify a vector orientation and a point position with a geometrical point of view.

The application of this method improves the final accuracy of the DKM regarding the DH convention. This method allows controlling the number of introduced geometric parameters even for adjacent parallel joints and also increase the accuracy obtained after the identification process.

These first results are promising regarding the impact of the implementation of this new geometric vector model on the obtained geometric accuracy of serial kinematic robot. Further works should now be conducted to apply this vector geometry modeling method to a closedloop robot.

Figure 1 :

 1 Figure 1: The DH geometric parameters in the case of a simple open structure[START_REF] Denavit | A kinematic notation for lower pair mechanism based on matrices[END_REF]

Figure 3 :

 3 Figure 3: Schematic diagram of the endpoint measurement of a robot manipulator for circular point analysis (CPA) when joint i rotates [6].

Figure 4 :

 4 Figure 4: Coordinate systems associated with each robot rigid part.

Figure 5 :

 5 Figure 5: Invariant definition of two rotational joints of a robot arm.

1 )

 1 𝐑 𝐢-𝟏 𝐢-𝟏′ = ( cos (𝜃 𝑖-1 ) -sin(𝜃 𝑖-1 ) 0 sin (𝜃 𝑖-1 ) cos (𝜃 𝑖-1 ) 0 0 0

Figure 6 :

 6 Figure 6: Vector model of a SCARA robot.

Figure 7 :

 7 Figure 7: Target measurement with a laser tracker on a SCARA robot.

Figure 8 :

 8 Figure 8: Measured points in the laser tracker coordinate system during a movement of joint 1 and joint 2.

Figure 10 :

 10 Figure 10: Geometrical defect of joint 1 and joint 2.

Figure 11 :

 11 Figure 11: Error between the measured position points and the simulated with identified DKM.

Figure

  Figure Residual errors for DH SCARA first-order geometric model.

Figure 13 :

 13 Figure 13: Error between measured position points and simulated with identified DH firstorder DKM.

Figure 14 :

 14 Figure 14: Residual errors for DH SCARA first and second-order geometric model.

Figure 15 :

 15 Figure 15: Error between measured position points and simulated with identified DH first and second-order DKM.

Figure 16 :

 16 Figure 16: Error between measured position points and simulated with vector DKM with 𝐼 2 = 0.

  𝑞 1 and 𝑞 2 are actuated motor values, and 𝑑𝜃 1 and 𝑑𝜃 2 are actuated motor offsets such as 𝜃 1 = 𝑞 1 + 𝑑𝜃 1 and 𝜃 2 = 𝑞 2 + 𝑑𝜃 2 .Let (𝐼 2 , 𝐽 2 , 𝐾 2 ) be coordinates of 𝑧 ⃗ 2 in the coordinate system 𝑅 1 ′:

				√𝐽 2 2 + 𝐾 2 2	0	𝐼 2
	𝟏′	𝐑	𝟐 =	-𝐼 2 𝐽 2 √𝐽 2 2 +𝐾 2 2	𝐾 2 √𝐽 2 2 +𝐾 2 2	𝐽 2
			(	-𝐼 2 𝐾 2 √𝐽 2 2 +𝐾 2 2	-𝐽 2 √𝐽 2 2 +𝐾 2 2	𝐾 2	)

Table 2 :

 2 Identified geometric parameters

Table 4 .

 4

	Geometric parameters		Identified values
	𝐑 𝐋𝐓	𝐓 𝐑 𝟏	-0.383553 0.923472 [ -0.923519 -0.383539 -0.003396 2044.593 mm 0.009258 -295.393 mm 0.000415 -0.009853 0.999951 -413.640 mm ]
			0	0	0	1
	𝑎 1			325.034 mm
	𝑎 2			274.199 mm
	𝑑 2			0.022 mm

Table 4 :

 4 Geometric parameter identified values for DH SCARA first-order geometric model.

Table 5 :

 5 Geometric parameter identified values for DH SCARA first and second-order geometric model.

Table 6

 6 summarizes the obtained errors between each SCARA robot DKM simulation and the nine measured validation points. Note that the mean error of 0.027 mm obtained with our vector model is close to the measurement process accuracy.

SCARA geometrical model Max error (mm) Mean error (mm)

	Vector model	0.046	0.027
	DH first-order model	0.122	0.098
	DH first and second-order model	0.055	0.033

Table 6 :

 6 Errors between the position of the measured points and the different test DKM

Measured points for validation of the identification process

	18	-109.238	1496.356	-417.214	55°	-30°	-109.959 1484.267	-417.263 50°	-20°
	19	-62.150	1514.673	-417.590	60°	-30°	-109.989 1484.269	-417.251 50°	-20°
	20	-16.843	1537.025	-417.93	65°	-30°	-86.444	1488.406	-417.459 50°	-15°
	21	-16.850	1537.026	-417.937	65°	-30°	-63.332	1494.581	-417.655 50°	-10°
	22	26.304	1563.223	-418.245	70°	-30°	-40.848	1502.747	-417.838 50°	-5°
	23	67.023	1593.085	-418.523	75°	-30°	-19.165	1512.836	-418.008 50°	0°
	24	105.006	1626.403	-418.767	80°	-30°	1.575	1524.788	-418.162 50°	5°
	25	139.966	1662.905	-418.981	85°	-30°	1.563	1524.790	-418.164 50°	5°
	26	171.539	1702.305	-419.133	90°	-30°	21.153	1538.489	-418.302 50°	10°
	27							39.488	1553.856	-418.421 50°	15°
	28							56.416	1570.765	-418.523 50°	20°
	29							71.808	1589.067	-418.606 50°	25°
	30							85.547	1608.663	-418.667 50°	30°
	Annex B: 𝑴 𝒗𝒊 X	Y	Z	𝒒 𝟏	𝒒 𝟐
	1	-465.303	1493.982	-413.932	20°	-32°
	2	-571.505	1545.766	-412.775	10°	-36°
	3	-513.505	1496.169	-413.491	10°	-20°
	4	-567.966	1523.226	-412.897	5°	-22°
	5	-520.183	1491.571	-413.451	5°	-10°
	6	-394.761	1453.646	-414.745	13°	0°
	7	-12.934	1526.406	-418.046	42°	20°
	8	135.229	1638.539	-419.056	61°	18°
	9	131.630	1624.232	-419.053	68°	0°
					-414.520	25°	-30°	-250.696 1502.898	-415.870 50°	-50°
	13	-358.383	1469.036	-415.013	30°	-30°	-250.709 1502.900	-415.861 50°	-50°
	14	-307.954	1465.736	-415.491	35°	-30°	-228.221 1494.696	-416.103 50°	-45°
	15	-257.432	1466.844	-415.971	40°	-30°	-205.132 1488.490	-416.343 50°	-40°
	16	-207.235	1472.356	-416.404	45°	-30°	-181.579 1484.319	-416.578 50°	-35°
	17	-157.735	1482.214	-416.817	50°	-30°	-133.817 1482.200	-417.037 50°	-25°

Appendix A: measured points in laser tracker coordinate system for SCARA robot geometric identification