Virtual Reality Based Support System for Layout Planning and Programming of an Industrial Robotic Work Cell
Identifieur interne : 002371 ( Pmc/Curation ); précédent : 002370; suivant : 002372Virtual Reality Based Support System for Layout Planning and Programming of an Industrial Robotic Work Cell
Auteurs : Hwa Jen Yap [Malaisie] ; Zahari Taha [Malaisie] ; Siti Zawiah Md Dawal [Malaisie] ; Siow-Wee Chang [Malaisie]Source :
- PLoS ONE [ 1932-6203 ] ; 2014.
Abstract
Traditional robotic work cell design and programming are considered inefficient and outdated in current industrial and market demands. In this research, virtual reality (VR) technology is used to improve human-robot interface, whereby complicated commands or programming knowledge is not required. The proposed solution, known as VR-based Programming of a Robotic Work Cell (VR-Rocell), consists of two sub-programmes, which are VR-Robotic Work Cell Layout (VR-RoWL) and VR-based Robot Teaching System (VR-RoT). VR-RoWL is developed to assign the layout design for an industrial robotic work cell, whereby VR-RoT is developed to overcome safety issues and lack of trained personnel in robot programming. Simple and user-friendly interfaces are designed for inexperienced users to generate robot commands without damaging the robot or interrupting the production line. The user is able to attempt numerous times to attain an optimum solution. A case study is conducted in the Robotics Laboratory to assemble an electronics casing and it is found that the output models are compatible with commercial software without loss of information. Furthermore, the generated KUKA commands are workable when loaded into a commercial simulator. The operation of the actual robotic work cell shows that the errors may be due to the dynamics of the KUKA robot rather than the accuracy of the generated programme. Therefore, it is concluded that the virtual reality based solution approach can be implemented in an industrial robotic work cell.
Url:
DOI: 10.1371/journal.pone.0109692
PubMed: 25360663
PubMed Central: 4215904
Links toward previous steps (curation, corpus...)
- to stream Pmc, to step Corpus: Pour aller vers cette notice dans l'étape Curation :002371
Links to Exploration step
PMC:4215904Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en">Virtual Reality Based Support System for Layout Planning and Programming of an Industrial Robotic Work Cell</title>
<author><name sortKey="Yap, Hwa Jen" sort="Yap, Hwa Jen" uniqKey="Yap H" first="Hwa Jen" last="Yap">Hwa Jen Yap</name>
<affiliation wicri:level="1"><nlm:aff id="aff1"><addr-line>Department of Mechanical Engineering, Faculty of Engineering, University of Malaya, Kuala Lumpur, Malaysia</addr-line>
</nlm:aff>
<country xml:lang="fr">Malaisie</country>
<wicri:regionArea>Department of Mechanical Engineering, Faculty of Engineering, University of Malaya, Kuala Lumpur</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Taha, Zahari" sort="Taha, Zahari" uniqKey="Taha Z" first="Zahari" last="Taha">Zahari Taha</name>
<affiliation wicri:level="1"><nlm:aff id="aff2"><addr-line>Faculty of Mechanical Engineering, Universiti Malaysia Pahang, Pekan, Pahang, Malaysia</addr-line>
</nlm:aff>
<country xml:lang="fr">Malaisie</country>
<wicri:regionArea>Faculty of Mechanical Engineering, Universiti Malaysia Pahang, Pekan, Pahang</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Md Dawal, Siti Zawiah" sort="Md Dawal, Siti Zawiah" uniqKey="Md Dawal S" first="Siti Zawiah" last="Md Dawal">Siti Zawiah Md Dawal</name>
<affiliation wicri:level="1"><nlm:aff id="aff1"><addr-line>Department of Mechanical Engineering, Faculty of Engineering, University of Malaya, Kuala Lumpur, Malaysia</addr-line>
</nlm:aff>
<country xml:lang="fr">Malaisie</country>
<wicri:regionArea>Department of Mechanical Engineering, Faculty of Engineering, University of Malaya, Kuala Lumpur</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Chang, Siow Wee" sort="Chang, Siow Wee" uniqKey="Chang S" first="Siow-Wee" last="Chang">Siow-Wee Chang</name>
<affiliation wicri:level="1"><nlm:aff id="aff3"><addr-line>Bioinformatics Program, Institute of Biological Sciences, Faculty of Science, University of Malaya, Kuala Lumpur, Malaysia</addr-line>
</nlm:aff>
<country xml:lang="fr">Malaisie</country>
<wicri:regionArea>Bioinformatics Program, Institute of Biological Sciences, Faculty of Science, University of Malaya, Kuala Lumpur</wicri:regionArea>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">PMC</idno>
<idno type="pmid">25360663</idno>
<idno type="pmc">4215904</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC4215904</idno>
<idno type="RBID">PMC:4215904</idno>
<idno type="doi">10.1371/journal.pone.0109692</idno>
<date when="2014">2014</date>
<idno type="wicri:Area/Pmc/Corpus">002371</idno>
<idno type="wicri:Area/Pmc/Curation">002371</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en" level="a" type="main">Virtual Reality Based Support System for Layout Planning and Programming of an Industrial Robotic Work Cell</title>
<author><name sortKey="Yap, Hwa Jen" sort="Yap, Hwa Jen" uniqKey="Yap H" first="Hwa Jen" last="Yap">Hwa Jen Yap</name>
<affiliation wicri:level="1"><nlm:aff id="aff1"><addr-line>Department of Mechanical Engineering, Faculty of Engineering, University of Malaya, Kuala Lumpur, Malaysia</addr-line>
</nlm:aff>
<country xml:lang="fr">Malaisie</country>
<wicri:regionArea>Department of Mechanical Engineering, Faculty of Engineering, University of Malaya, Kuala Lumpur</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Taha, Zahari" sort="Taha, Zahari" uniqKey="Taha Z" first="Zahari" last="Taha">Zahari Taha</name>
<affiliation wicri:level="1"><nlm:aff id="aff2"><addr-line>Faculty of Mechanical Engineering, Universiti Malaysia Pahang, Pekan, Pahang, Malaysia</addr-line>
</nlm:aff>
<country xml:lang="fr">Malaisie</country>
<wicri:regionArea>Faculty of Mechanical Engineering, Universiti Malaysia Pahang, Pekan, Pahang</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Md Dawal, Siti Zawiah" sort="Md Dawal, Siti Zawiah" uniqKey="Md Dawal S" first="Siti Zawiah" last="Md Dawal">Siti Zawiah Md Dawal</name>
<affiliation wicri:level="1"><nlm:aff id="aff1"><addr-line>Department of Mechanical Engineering, Faculty of Engineering, University of Malaya, Kuala Lumpur, Malaysia</addr-line>
</nlm:aff>
<country xml:lang="fr">Malaisie</country>
<wicri:regionArea>Department of Mechanical Engineering, Faculty of Engineering, University of Malaya, Kuala Lumpur</wicri:regionArea>
</affiliation>
</author>
<author><name sortKey="Chang, Siow Wee" sort="Chang, Siow Wee" uniqKey="Chang S" first="Siow-Wee" last="Chang">Siow-Wee Chang</name>
<affiliation wicri:level="1"><nlm:aff id="aff3"><addr-line>Bioinformatics Program, Institute of Biological Sciences, Faculty of Science, University of Malaya, Kuala Lumpur, Malaysia</addr-line>
</nlm:aff>
<country xml:lang="fr">Malaisie</country>
<wicri:regionArea>Bioinformatics Program, Institute of Biological Sciences, Faculty of Science, University of Malaya, Kuala Lumpur</wicri:regionArea>
</affiliation>
</author>
</analytic>
<series><title level="j">PLoS ONE</title>
<idno type="eISSN">1932-6203</idno>
<imprint><date when="2014">2014</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc><textClass></textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en"><p>Traditional robotic work cell design and programming are considered inefficient and outdated in current industrial and market demands. In this research, virtual reality (VR) technology is used to improve human-robot interface, whereby complicated commands or programming knowledge is not required. The proposed solution, known as VR-based Programming of a Robotic Work Cell (VR-Rocell), consists of two sub-programmes, which are VR-Robotic Work Cell Layout (VR-RoWL) and VR-based Robot Teaching System (VR-RoT). VR-RoWL is developed to assign the layout design for an industrial robotic work cell, whereby VR-RoT is developed to overcome safety issues and lack of trained personnel in robot programming. Simple and user-friendly interfaces are designed for inexperienced users to generate robot commands without damaging the robot or interrupting the production line. The user is able to attempt numerous times to attain an optimum solution. A case study is conducted in the Robotics Laboratory to assemble an electronics casing and it is found that the output models are compatible with commercial software without loss of information. Furthermore, the generated KUKA commands are workable when loaded into a commercial simulator. The operation of the actual robotic work cell shows that the errors may be due to the dynamics of the KUKA robot rather than the accuracy of the generated programme. Therefore, it is concluded that the virtual reality based solution approach can be implemented in an industrial robotic work cell.</p>
</div>
</front>
<back><div1 type="bibliography"><listBibl><biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Burdea, Gc" uniqKey="Burdea G">GC Burdea</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Jahangirian, M" uniqKey="Jahangirian M">M Jahangirian</name>
</author>
<author><name sortKey="Eldabi, T" uniqKey="Eldabi T">T Eldabi</name>
</author>
<author><name sortKey="Naseer, A" uniqKey="Naseer A">A Naseer</name>
</author>
<author><name sortKey="Stergioulas, Lk" uniqKey="Stergioulas L">LK Stergioulas</name>
</author>
<author><name sortKey="Young, T" uniqKey="Young T">T Young</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Klingstam, P" uniqKey="Klingstam P">P Klingstam</name>
</author>
<author><name sortKey="Gullander, P" uniqKey="Gullander P">P Gullander</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Kim, Sc" uniqKey="Kim S">SC Kim</name>
</author>
<author><name sortKey="Choi, Kh" uniqKey="Choi K">KH Choi</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Mujber, Ts" uniqKey="Mujber T">TS Mujber</name>
</author>
<author><name sortKey="Szecsi, T" uniqKey="Szecsi T">T Szecsi</name>
</author>
<author><name sortKey="Hashmi, Msj" uniqKey="Hashmi M">MSJ Hashmi</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Raneda, A" uniqKey="Raneda A">A Raneda</name>
</author>
<author><name sortKey="Pessi, P" uniqKey="Pessi P">P Pessi</name>
</author>
<author><name sortKey="Siuko, M" uniqKey="Siuko M">M Siuko</name>
</author>
<author><name sortKey="Handroos, H" uniqKey="Handroos H">H Handroos</name>
</author>
<author><name sortKey="Palmer, J" uniqKey="Palmer J">J Palmer</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Gokdere, Lu" uniqKey="Gokdere L">LU Gökdere</name>
</author>
<author><name sortKey="Benlyazid, K" uniqKey="Benlyazid K">K Benlyazid</name>
</author>
<author><name sortKey="Dougal, Ra" uniqKey="Dougal R">RA Dougal</name>
</author>
<author><name sortKey="Santi, E" uniqKey="Santi E">E Santi</name>
</author>
<author><name sortKey="Brice, Cw" uniqKey="Brice C">CW Brice</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Lee, Wb" uniqKey="Lee W">WB Lee</name>
</author>
<author><name sortKey="Cheung, Cf" uniqKey="Cheung C">CF Cheung</name>
</author>
<author><name sortKey="Li, Jg" uniqKey="Li J">JG Li</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Wang, Qh" uniqKey="Wang Q">QH Wang</name>
</author>
<author><name sortKey="Li, Jr" uniqKey="Li J">JR Li</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Kadir, Aa" uniqKey="Kadir A">AA Kadir</name>
</author>
<author><name sortKey="Xu, X" uniqKey="Xu X">X Xu</name>
</author>
<author><name sortKey="H Mmerle, E" uniqKey="H Mmerle E">E Hämmerle</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Lee, Wb" uniqKey="Lee W">WB Lee</name>
</author>
<author><name sortKey="Li, Jg" uniqKey="Li J">JG Li</name>
</author>
<author><name sortKey="Cheung, Cf" uniqKey="Cheung C">CF Cheung</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Mitsi, S" uniqKey="Mitsi S">S Mitsi</name>
</author>
<author><name sortKey="Bouzakis, K D" uniqKey="Bouzakis K">K-D Bouzakis</name>
</author>
<author><name sortKey="Mansour, G" uniqKey="Mansour G">G Mansour</name>
</author>
<author><name sortKey="Sagris, D" uniqKey="Sagris D">D Sagris</name>
</author>
<author><name sortKey="Maliaris, G" uniqKey="Maliaris G">G Maliaris</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Kumar, R" uniqKey="Kumar R">R Kumar</name>
</author>
<author><name sortKey="Kalra, P" uniqKey="Kalra P">P Kalra</name>
</author>
<author><name sortKey="Prakash, Nr" uniqKey="Prakash N">NR Prakash</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Yap, Hj" uniqKey="Yap H">HJ Yap</name>
</author>
<author><name sortKey="Taha, Z" uniqKey="Taha Z">Z Taha</name>
</author>
<author><name sortKey="Lee, Jv" uniqKey="Lee J">JV Lee</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Or, Ckl" uniqKey="Or C">CKL Or</name>
</author>
<author><name sortKey="Duffy, Vg" uniqKey="Duffy V">VG Duffy</name>
</author>
<author><name sortKey="Cheung, Cc" uniqKey="Cheung C">CC Cheung</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Whyte, J" uniqKey="Whyte J">J Whyte</name>
</author>
<author><name sortKey="Bouchlaghem, N" uniqKey="Bouchlaghem N">N Bouchlaghem</name>
</author>
<author><name sortKey="Thorpe, A" uniqKey="Thorpe A">A Thorpe</name>
</author>
<author><name sortKey="Mccaffer, R" uniqKey="Mccaffer R">R McCaffer</name>
</author>
</analytic>
</biblStruct>
<biblStruct><analytic><author><name sortKey="Yap, Hj" uniqKey="Yap H">HJ Yap</name>
</author>
<author><name sortKey="Taha, Z" uniqKey="Taha Z">Z Taha</name>
</author>
<author><name sortKey="Dawal, Sz" uniqKey="Dawal S">SZ Dawal</name>
</author>
</analytic>
</biblStruct>
<biblStruct></biblStruct>
<biblStruct><analytic><author><name sortKey="Taha, Z" uniqKey="Taha Z">Z Taha</name>
</author>
<author><name sortKey="Soewardi, H" uniqKey="Soewardi H">H Soewardi</name>
</author>
<author><name sortKey="Dawal, Szm" uniqKey="Dawal S">SZM Dawal</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article"><pmc-dir>properties open_access</pmc-dir>
<front><journal-meta><journal-id journal-id-type="nlm-ta">PLoS One</journal-id>
<journal-id journal-id-type="iso-abbrev">PLoS ONE</journal-id>
<journal-id journal-id-type="publisher-id">plos</journal-id>
<journal-id journal-id-type="pmc">plosone</journal-id>
<journal-title-group><journal-title>PLoS ONE</journal-title>
</journal-title-group>
<issn pub-type="epub">1932-6203</issn>
<publisher><publisher-name>Public Library of Science</publisher-name>
<publisher-loc>San Francisco, USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta><article-id pub-id-type="pmid">25360663</article-id>
<article-id pub-id-type="pmc">4215904</article-id>
<article-id pub-id-type="publisher-id">PONE-D-14-02263</article-id>
<article-id pub-id-type="doi">10.1371/journal.pone.0109692</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject>
</subj-group>
<subj-group subj-group-type="Discipline-v2"><subject>Computer and Information Sciences</subject>
<subj-group><subject>Computer Applications</subject>
<subj-group><subject>Computer-Aided Design</subject>
<subject>Computer-Aided Manufacturing</subject>
</subj-group>
</subj-group>
<subj-group><subject>Computer Architecture</subject>
<subj-group><subject>User Interfaces</subject>
<subj-group><subject>Virtual Reality</subject>
</subj-group>
</subj-group>
</subj-group>
</subj-group>
<subj-group subj-group-type="Discipline-v2"><subject>Engineering and Technology</subject>
<subj-group><subject>Human Factors Engineering</subject>
<subj-group><subject>Ergonomics</subject>
<subject>Man-Computer Interface</subject>
</subj-group>
</subj-group>
<subj-group><subject>Mechanical Engineering</subject>
<subj-group><subject>Robotics</subject>
</subj-group>
</subj-group>
</subj-group>
</article-categories>
<title-group><article-title>Virtual Reality Based Support System for Layout Planning and Programming of an Industrial Robotic Work Cell</article-title>
<alt-title alt-title-type="running-head">Virtual Reality in Industrial Robotic Work Cell</alt-title>
</title-group>
<contrib-group><contrib contrib-type="author"><name><surname>Yap</surname>
<given-names>Hwa Jen</given-names>
</name>
<xref ref-type="aff" rid="aff1"><sup>1</sup>
</xref>
<xref ref-type="corresp" rid="cor1"><sup>*</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Taha</surname>
<given-names>Zahari</given-names>
</name>
<xref ref-type="aff" rid="aff2"><sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Md Dawal</surname>
<given-names>Siti Zawiah</given-names>
</name>
<xref ref-type="aff" rid="aff1"><sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author"><name><surname>Chang</surname>
<given-names>Siow-Wee</given-names>
</name>
<xref ref-type="aff" rid="aff3"><sup>3</sup>
</xref>
</contrib>
</contrib-group>
<aff id="aff1"><label>1</label>
<addr-line>Department of Mechanical Engineering, Faculty of Engineering, University of Malaya, Kuala Lumpur, Malaysia</addr-line>
</aff>
<aff id="aff2"><label>2</label>
<addr-line>Faculty of Mechanical Engineering, Universiti Malaysia Pahang, Pekan, Pahang, Malaysia</addr-line>
</aff>
<aff id="aff3"><label>3</label>
<addr-line>Bioinformatics Program, Institute of Biological Sciences, Faculty of Science, University of Malaya, Kuala Lumpur, Malaysia</addr-line>
</aff>
<contrib-group><contrib contrib-type="editor"><name><surname>Slater</surname>
<given-names>Mel</given-names>
</name>
<role>Editor</role>
<xref ref-type="aff" rid="edit1"></xref>
</contrib>
</contrib-group>
<aff id="edit1"><addr-line>ICREA-University of Barcelona, Spain</addr-line>
</aff>
<author-notes><corresp id="cor1">* E-mail: <email>hjyap737@um.edu.my</email>
</corresp>
<fn fn-type="conflict"><p><bold>Competing Interests: </bold>
The authors have declared that no competing interests exist.</p>
</fn>
<fn fn-type="con"><p>Conceived and designed the experiments: HJY ZT SZD SWC. Performed the experiments: HJY. Analyzed the data: HJY ZT SZD SWC. Contributed reagents/materials/analysis tools: HJY. Wrote the paper: HJY ZT SZD SWC. Ergonomic model design & development: HJY ZT SZD. Human-computer interface validation: HJY SWC.</p>
</fn>
</author-notes>
<pub-date pub-type="collection"><year>2014</year>
</pub-date>
<pub-date pub-type="epub"><day>31</day>
<month>10</month>
<year>2014</year>
</pub-date>
<volume>9</volume>
<issue>10</issue>
<elocation-id>e109692</elocation-id>
<history><date date-type="received"><day>16</day>
<month>1</month>
<year>2014</year>
</date>
<date date-type="accepted"><day>12</day>
<month>9</month>
<year>2014</year>
</date>
</history>
<permissions><copyright-year>2014</copyright-year>
<copyright-holder>Yap et al</copyright-holder>
<license><license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License</ext-link>
, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<abstract><p>Traditional robotic work cell design and programming are considered inefficient and outdated in current industrial and market demands. In this research, virtual reality (VR) technology is used to improve human-robot interface, whereby complicated commands or programming knowledge is not required. The proposed solution, known as VR-based Programming of a Robotic Work Cell (VR-Rocell), consists of two sub-programmes, which are VR-Robotic Work Cell Layout (VR-RoWL) and VR-based Robot Teaching System (VR-RoT). VR-RoWL is developed to assign the layout design for an industrial robotic work cell, whereby VR-RoT is developed to overcome safety issues and lack of trained personnel in robot programming. Simple and user-friendly interfaces are designed for inexperienced users to generate robot commands without damaging the robot or interrupting the production line. The user is able to attempt numerous times to attain an optimum solution. A case study is conducted in the Robotics Laboratory to assemble an electronics casing and it is found that the output models are compatible with commercial software without loss of information. Furthermore, the generated KUKA commands are workable when loaded into a commercial simulator. The operation of the actual robotic work cell shows that the errors may be due to the dynamics of the KUKA robot rather than the accuracy of the generated programme. Therefore, it is concluded that the virtual reality based solution approach can be implemented in an industrial robotic work cell.</p>
</abstract>
<funding-group><funding-statement>This work was supported by Ministry of Higher Education Malaysia with the grant number UM.C/HIR/MOHE/ENG/35(D000035-16001). The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript.</funding-statement>
</funding-group>
<counts><page-count count="15"></page-count>
</counts>
</article-meta>
</front>
<body><sec id="s1"><title>Introduction</title>
<p>According to a survey from the UN Economic Commission for Europe published in “World Robotics 2001” <xref rid="pone.0109692-IFR1" ref-type="bibr">[1]</xref>
, there were approximately 750,000 robots running in industries worldwide. After a decade, the statistics, market analysis, forecasts, case studies and profitability of robot investment published by the International Federation of Robotics (IFR) in “World Robotics 2011” <xref rid="pone.0109692-IFR2" ref-type="bibr">[2]</xref>
revealed that the annual robot sales in 2010 was 118,337 units. The sales almost doubled compared to that in 2009, during the worldwide economic and financial crisis. The forecasted figures for year 2011 and 2014 were 139,300 and 166,700 respectively. On the other hand, the sale for robots in 2010 was US$ 5.7 billion. It was estimated that the sales value for robot systems in 2010 was US$ 17.5 billion, which includes software, peripherals and systems engineering. On the other hand, over 1,300 labours were struck by moving objects in their workplace. This appears to be the most common accident which causes injuries, which is due to the complexity of hardware and software. In Sweden and Japan <xref rid="pone.0109692-OSHA1" ref-type="bibr">[3]</xref>
, these incidents have been associated with robot operations, such as malfunction to stop, rapid motion of the robot arm, injuries in the workspace during repair and maintenance, illegal entrance to the workspace as well as unpredictable robot work functions to the operator.</p>
<p>In this research, a virtual reality based programming of a robotic work cell (VR-Rocell) is proposed and developed. In general, robot programming methods can be classified as online and offline programming, which is dependent on the presence of the actual robot while the programme is being created. In online programming, the actual robot must be present and used in the teaching process. Offline programming is the most popular method for robot programming as it does not involve real robots. This reduces robot downtime and the production line will be unaffected <xref rid="pone.0109692-Choo1" ref-type="bibr">[4]</xref>
. The system is designed to improve human-machine interface and is divided into two major sub-systems, namely, VR-Robotic Work Cell Layout (VR-RoWL) and VR-Robot Teaching System (VR-RoT). Open platform architecture is used along with a universal file format. The system uses the teach-points concept for offline programming to generate robot commands, which prevents users from potential uncertain manufacturing environments. The objective of this research is to develop a VR-based system for cell layout planning and design, path teaching, programming and simulation for an industrial robot which will achieve zero robot downtime during path teaching using a generic approach.</p>
</sec>
<sec id="s2"><title>Solution Approaches for an Industrial Robotic Work Cell</title>
<p>The synergy between virtual reality and robotics in various areas was reviewed in 1999 <xref rid="pone.0109692-Burdea1" ref-type="bibr">[5]</xref>
. It is known that traditional approaches in robot programming are tedious and require knowledge of a specific robot language. Hence, a new virtual reality based system is needed to provide users with a more user-friendly interface by means of high-level programming language. Various solution approaches for industrial robots have been proposed in past studies and are presented in the following sections.</p>
<sec id="s2a"><title>Simulation Solution Approaches</title>
<p>There are various commercial software available which provide solutions for facility layout planning involving robotic work cells. In addition, commercial software have also been specifically developed for industrial robot simulation and visualization. Simulation and visualization of robotic work cells are necessary prior to procurement of hardware. The simulation software allow users to check the reachability, workspace, safety issues as well as other aspects of industrial robots.</p>
<p>In general, facility layout planning software is based on the discrete-event simulation concept, in which the operation of the system corresponds accordingly to the chronological order of events. Discrete-event simulation software provides an overall picture of the simulated robotic work cell, whereby the industrial robot is considered as an event within the cell. Hence, detailed simulation and information of the industrial robot (such as path planning and robot programming) may be unavailable in this type of simulation since robot commands cannot be generated automatically from the simulation results. In addition, the simulation environment does not consider spatial constraints and ergonomic issues. Although this technique is most popular compared to other techniques (e.g. gaming), it has a relatively low stakeholder commitment due to modelling lead time and purpose <xref rid="pone.0109692-Jahangirian1" ref-type="bibr">[6]</xref>
.</p>
<p>Geometric or continuous simulation provides a geometric graphical representation with constant time interval. Unlike discrete-event simulation with irregular time intervals, geometric simulation is more suitable for 3D visualization, offline programming of robots and collision detection during manufacturing processes <xref rid="pone.0109692-Li1" ref-type="bibr">[7]</xref>
. Geometric simulation is also called virtual manufacturing <xref rid="pone.0109692-Klingstam1" ref-type="bibr">[8]</xref>
.</p>
<p>On the other hand, various robotic simulation software have been developed by robot manufacturers such as ABB, KUKA, Fanuc and Mitsubishi. In this research, industrial robots manufactured by KUKA are used. KUKA SimPro is the official software developed specifically for offline programming of KUKA robots. The product is connected to KUKA OfficeLite, which is a virtual KUKA controller and enables real-time cycle time analyses and generation of robot programmes. However, the software requires adequate knowledge of robotic systems and special training. The cost of the software may not be within the financial means of many industries.</p>
<p>There are several generic robotic software available in the market such as Delmia from Dassault Systems, RobCAD from Technomatrix, Robsim from Camelot and Cosimir from Festo. These packages are flexible for various industrial robots produced by different manufacturers and are fully coupled with product life management (PLM). However, the disadvantages of these simulation software are the absence of direct outputs to the actual robots and require strong knowledge of robotic systems. The fundamental criteria which enable the adoption of such software in SMEs and academic sectors are affordability, ease of use and short learning curves <xref rid="pone.0109692-Neto1" ref-type="bibr">[9]</xref>
, in which generic robot software are unable to do so. Furthermore, system integration is particularly a challenging task, whereby compatibility issues between some robot manufacturers and data structure of different software vendors may occur. Thus, simulation software with open architecture are actively developed by many researchers, in which the codes written for the simulation are portable to real robotic platforms <xref rid="pone.0109692-Staranowicz1" ref-type="bibr">[10]</xref>
.</p>
</sec>
<sec id="s2b"><title>Virtual Manufacturing Solution Approaches</title>
<p>Virtual Manufacturing (VM) is the use of virtual reality technology in real-time manufacturing based simulations in order to optimize product design and processes for a specific manufacturing goal such as design for assembly, quality, lean operations, and/or flexibility. VM is used to generate 3D models and real-time simulations of manufacturing processes to aid the design and production of products. VM is known as the next revolution of global manufacturing <xref rid="pone.0109692-Radhakrishnan1" ref-type="bibr">[11]</xref>
.</p>
<p>Lawrence Associates <xref rid="pone.0109692-Lawrence1" ref-type="bibr">[12]</xref>
introduced three virtual manufacturing paradigms which have been applied by Kim & Choi <xref rid="pone.0109692-Kim1" ref-type="bibr">[13]</xref>
to solve problems in flexible manufacturing systems. These three paradigms are:</p>
<list list-type="alpha-lower"><list-item><p>Design-centred VM: Provides designers/engineers with tools to design products which fulfil the design criteria. Design-centred VM can be performed early during the conceptual design stage, which is easily modified and tested. This type of VM also uses simulation technology to optimize design specifications such as stress, strain and failure analyses.</p>
</list-item>
<list-item><p>Production-centred VM: Provides the means to develop and analyse alternative production and process plans. Factory models and layout designs can be created to simulate the production process, assembly process, material flow and human factors. Production simulation is capable of simulating manufacturing process models which provides a means for inexpensive, fast evaluation of various processing alternatives.</p>
</list-item>
<list-item><p>Control-centred VM: Evaluates product designs, production plans and control strategies. This VM interactively improves these three aspects through simulations of the control process. It is an additional tool to control models and actual processes, enabling seamless simulation for optimization during the actual production cycle.</p>
</list-item>
</list>
<p>Mujber et al. <xref rid="pone.0109692-Mujber1" ref-type="bibr">[14]</xref>
classified the applications of VR in manufacturing into three areas, which are design, operations management and manufacturing process. In the design area, the VM technique has been used to design the die geometry for sheet metal forming in a virtual space. It is also widely used to generate virtual prototypes in order to replace physical prototypes <xref rid="pone.0109692-Raneda1" ref-type="bibr">[15]</xref>
. The time required for design and development can be shortened and costs can be reduced when producing physical prototypes. Furthermore, virtual prototypes can be used to support design and development through simulation and analysis results <xref rid="pone.0109692-Gkdere1" ref-type="bibr">[16]</xref>
, <xref rid="pone.0109692-Guerra1" ref-type="bibr">[17]</xref>
. The integration of virtual reality with rapid prototyping technology is capable of creating digital prototypes to assist product development.</p>
<p>Moreover, VM technology is widely employed in the planning phase of manufacturing processes. This technology is used to estimate, optimize and minimize the processing time prior to the actual production <xref rid="pone.0109692-Lee1" ref-type="bibr">[18]</xref>
. In addition, this technology can be used to investigate material and information flow through the virtual operation control concept. The factors affecting the operation of a manufacturing system can be tracked to evaluate design and operational performance. In-house virtual training can be developed for machine tools <xref rid="pone.0109692-Iqbal1" ref-type="bibr">[19]</xref>
, milling machines <xref rid="pone.0109692-Crison1" ref-type="bibr">[20]</xref>
, turn-milling centres <xref rid="pone.0109692-Zhu1" ref-type="bibr">[21]</xref>
, maintenance <xref rid="pone.0109692-Wang1" ref-type="bibr">[22]</xref>
and so on.</p>
<p>VR application in manufacturing processes covers machining, assembly and inspection. Virtual machining is commonly used to solve cutting processes such as milling, turning and drilling. Collision detection can be checked to prevent accidental collisions which will damage machine tools during actual processes <xref rid="pone.0109692-Kadir1" ref-type="bibr">[23]</xref>
. In addition, VM can be used in assembly planning to investigate the feasibility of assembly processes. The mechanical and physical characteristics of equipment and tooling can be modelled and simulated virtually. Furthermore, the quality, quantity, product cycle and cost can be determined in order to obtain optimum results. Virtual inspection is used to check the physical and mechanical properties of inspection equipment such as collision checks <xref rid="pone.0109692-Lee2" ref-type="bibr">[24]</xref>
.</p>
<p>The effectiveness of VR-based training systems has also been tested. A VR-based training system for Metal Active Gas Welding (MAG) has been developed to integrate virtual robot path teaching system with a practical training system, in which VR-based offline robot programming techniques are implemented. The process paths are triggered, recorded and converted into robot commands for robotic welding. A survey has been carried out on controlled and uncontrolled groups of students in Faculty of Engineering, University of Malaya, in order to evaluate their motivation towards virtual welding learning and conventional welding learning. The results revealed that more than 85% of the students supported the use of VR integrated training system compared to traditional welding training. The respondents agreed that VR technology is a valuable tool and the prototype with VR-based system is feasible to be implemented as a supplement in the welding training programme as well as in path planning for robotic welding <xref rid="pone.0109692-Choo1" ref-type="bibr">[4]</xref>
.</p>
</sec>
</sec>
<sec sec-type="materials|methods" id="s3"><title>Materials and Methods</title>
<p>Due to limited accessibility, high cost and strong demand for technical knowledge for commercial simulation software, a number of research projects have been conducted to develop alternative solution approaches for industrial robots. Several virtual robots have been created in the works of <xref rid="pone.0109692-Mitsi1" ref-type="bibr">[25]</xref>
–<xref rid="pone.0109692-Kumar1" ref-type="bibr">[27]</xref>
. However, these systems still require strong technical knowledge. Furthermore, the interactions between humans and virtual robots are very poor, and are limited to conventional input/output devices.</p>
<p>VR-based industrial robotic systems are able to overcome the above mentioned problems <xref rid="pone.0109692-Yap1" ref-type="bibr">[28]</xref>
. VR technology was used to develop a virtual gripper for robotic inspections such that information of the inspected workpiece (position and orientation) can be defined interactively. The synergy between virtual reality and robots was reviewed and it was concluded that VR in robotics can be attained from haptic interfaces and human factor know-how <xref rid="pone.0109692-Burdea1" ref-type="bibr">[5]</xref>
. Xu et al. <xref rid="pone.0109692-Xu1" ref-type="bibr">[29]</xref>
developed VR-based robot graphics simulation with built-in collision detection and coordinate translation functions.</p>
<p>Santis and Siciliano <xref rid="pone.0109692-Santis1" ref-type="bibr">[30]</xref>
developed a physical human-robot interaction model to measure the safety and dependability of robots. This model was implemented to evaluate the perceived safety during robot motion, which is dependent on shape, speed and posture. VR technology was also used to model a complex robotics system to study the perception of safe robot idle time <xref rid="pone.0109692-Or1" ref-type="bibr">[31]</xref>
. They found that robot speed and size has an effect on idle time, whereby high robot speed and large-sized robot increases the waiting time of the participants.</p>
<p><xref ref-type="fig" rid="pone-0109692-g001">Figure 1</xref>
shows the proposed model of this research, which is VR-Rocell. The model is designed to integrate the advantages of various simulation systems into a robotic work cell. The model proposes a VR-based layout planning and design for robotic work cell, which is similar to the functions provided by discrete-event simulation software. Furthermore, robot programming is conducted based on the teach-by-demonstrate concept for the VR-based robot teaching system. Robot paths are taught through an intuitive user interface compared to geometric simulation systems. The proposed model is based on open platform architecture, which includes programming language (C++), graphic libraries (OpenGL) and 3D formats (e.g. VRML).</p>
<fig id="pone-0109692-g001" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g001</object-id>
<label>Figure 1</label>
<caption><title>Proposed model of VR-Rocell.</title>
</caption>
<graphic xlink:href="pone.0109692.g001"></graphic>
</fig>
<p>CAD format can be converted into virtual reality (VR) by using either a commercial modelling software, library or database approach <xref rid="pone.0109692-Whyte1" ref-type="bibr">[32]</xref>
. 3D models can be integrated in virtual manufacturing (VM) through Lex lexical analyser generator and Open Graphic Library <xref rid="pone.0109692-Yap2" ref-type="bibr">[33]</xref>
. However, there are no standard methods or algorithms which convert 3D models from CAD modelling software into VR and/or VM, which is monitored and controlled by the related society. In addition, there are no standard methods or algorithms which convert 3D models from CAD modelling software to virtual manufacturing systems. Therefore, a generic algorithm is proposed to import 3D models into the VR-based system based on an open platform concept. The system can be used in all operating systems such as Windows, Mac and Linux. In addition, the system supports all types of browsers such as Internet Explorer, Mozilla and Google Chrome.</p>
<p>Most of the commercial VR packages use native file formats to create their virtual environment. These formats consist of algorithms and data structures for a particular software, which may not be readable or visualized by others. The universal formats which are loaded into the CAD software are not editable in the native system. The assembly of universal formats cannot be saved back into the universal format. For these reasons, the proposed model consists of four universal file formats, which are supported by all related software. An algorithm is developed to extract and save 3D meshing information into four file formats. File format conversion is possible among the above formats. Thus, the output models from one VM can be transferred or imported to another VM using a universal file format. A database can be built to re-configure a modular-based VM, which further reduces the development time of the new system <xref rid="pone.0109692-Yap2" ref-type="bibr">[33]</xref>
, <xref rid="pone.0109692-Malaysian1" ref-type="bibr">[34]</xref>
. The developed VR-based system is designed with simple and user-friendly interfaces to reduce the software training period and is therefore suitable for inexperienced users. Furthermore, the system is created based on an open architecture concept which allows the generated data to be transferred to/from different platforms without loss of information. In this manner, the output data can be viewed and configured by other systems.</p>
<p>The issues on human-computer interface design parameters in virtual environment have also been studied. A systematic axiomatic design method was used to design the virtual environment in order to minimize visual symptoms. The axiomatic design parameters were identified such as colour of background, brightness of virtual lighting, field of view (FOV), speed of virtual objects and display resolution. This method was developed and tested on a virtual robot manufacturing system <xref rid="pone.0109692-Taha1" ref-type="bibr">[35]</xref>
.</p>
<sec id="s3a"><title>Hardware Architecture</title>
<p>In this research, the hardware of the system is divided into two major parts, which are computer workstation and virtual reality hardware. The computer workstation consists of the computer CPU with a dedicated graphics card and is connected to two monitors, video splitters, two projectors, display extension devices and other peripherals (e.g. mouse, keyboard and speaker).</p>
<p>A Virtual Wall system has been built for the virtual reality hardware. The frame is made of an aluminium profile (40 mm×40 mm), which can be easily assembled and disassembled. At the same time, a mirror is used to reduce the projection distance and thus reduces the footprint of the Virtual Wall into half. Five major virtual reality hardware are integrated into the Virtual Wall, namely, 6-degree-of-freedom (6-DOF) tracker system, non-depolarized projection screen, polarized filter, polarized glasses and active-stereo glasses with emitter. The magnetic-type sensor tracker (Polhemus Patriot) is used in this research, which consists of a system electronics unit, a transmitter, a receiver (for head tracking) and a digitizer (user's manipulator). The maximum distance of the sensor tracker at which the resolution and noise performance of the system can be realized is 900 mm at default settings. Even though the useful range can be extended up to 1520 mm, this causes reduction in the accuracy of the data. These hardware are used to visualize and manipulate the virtual objects created in the virtual environment. The ergonomic dimensions (visual and arm reach) of the Virtual Wall needs to be decided. In this research, the visual limit can be neglected for the following reasons:</p>
<list list-type="alpha-lower"><list-item><p>Visual position limits: The user can simply walk to the position of his/her choice within the range of the sensor. This means that the user can walk to the left, right, near to or far from the screen if he/she intends to see the virtual objects clearly.</p>
</list-item>
<list-item><p>Visual orientation limits: The 6-DOF sensor is attached to the glasses and virtual environment which will be updated according to his/her viewing angle for all attitudes.</p>
</list-item>
</list>
<p>The arm reach is the primary concern for screen position. The horizontal position has no effects on the arm reach since the user can walk either to the left or right if he/she is unable to reach the virtual objects. The vertical position of the projection screen is calculated based on the standing position of the user. The anthropometrics data for the Malaysian population are considered since the system is designed for a manufacturing environment <xref rid="pone.0109692-Malaysian1" ref-type="bibr">[34]</xref>
. The vertical position is designed to accommodate 95% of the population from short users (maximum height) to tall users (minimum height) in standing position. The height dimension is within the range of 2.5–97.5 percentiles. The reachable height depends on the shoulder height (<italic>H</italic>
), arm reach forward length (<italic>L</italic>
) and arm reach angle (<italic>θ</italic>
) of the workers. <xref ref-type="table" rid="pone-0109692-t001">Table 1</xref>
shows the parameters for standing position based on the anthropometrics data of Malaysian workers. From <xref ref-type="table" rid="pone-0109692-t001">Table 1</xref>
, the minimum reachable height can be calculated using the following equation:<disp-formula id="pone.0109692.e001"><graphic xlink:href="pone.0109692.e001.jpg" position="anchor" orientation="portrait"></graphic>
<label>(1)</label>
</disp-formula>
where:<disp-formula id="pone.0109692.e002"><graphic xlink:href="pone.0109692.e002.jpg" position="anchor" orientation="portrait"></graphic>
</disp-formula>
<disp-formula id="pone.0109692.e003"><graphic xlink:href="pone.0109692.e003.jpg" position="anchor" orientation="portrait"></graphic>
</disp-formula>
<disp-formula id="pone.0109692.e004"><graphic xlink:href="pone.0109692.e004.jpg" position="anchor" orientation="portrait"></graphic>
</disp-formula>
<disp-formula id="pone.0109692.e005"><graphic xlink:href="pone.0109692.e005.jpg" position="anchor" orientation="portrait"></graphic>
</disp-formula>
</p>
<table-wrap id="pone-0109692-t001" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.t001</object-id>
<label>Table 1</label>
<caption><title>Parameters for standing position.</title>
</caption>
<alternatives><graphic id="pone-0109692-t001-1" xlink:href="pone.0109692.t001"></graphic>
<table frame="hsides" rules="groups"><colgroup span="1"><col align="left" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
</colgroup>
<thead><tr><td align="left" rowspan="1" colspan="1">Specifications</td>
<td colspan="2" align="left" rowspan="1">Male (mm)</td>
<td colspan="2" align="left" rowspan="1">Female (mm)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Min</td>
<td align="left" rowspan="1" colspan="1">Max</td>
<td align="left" rowspan="1" colspan="1">Min</td>
<td align="left" rowspan="1" colspan="1">Max</td>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">Shoulder height, <italic>H</italic>
</td>
<td align="left" rowspan="1" colspan="1">1,223.00</td>
<td align="left" rowspan="1" colspan="1">1,462.56</td>
<td align="left" rowspan="1" colspan="1">1,157.00</td>
<td align="left" rowspan="1" colspan="1">1,356.96</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">Arm reach forward length, <italic>L</italic>
</td>
<td align="left" rowspan="1" colspan="1">724.00</td>
<td align="left" rowspan="1" colspan="1">920.00</td>
<td align="left" rowspan="1" colspan="1">690.56</td>
<td align="left" rowspan="1" colspan="1">843.44</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">Minimum reachable height – assumed the user's hand is vertically pointed down, with the arm reach angle, <italic>θ</italic>
= 30°)</td>
<td align="left" rowspan="1" colspan="1">596.00</td>
<td align="left" rowspan="1" colspan="1">665.82</td>
<td align="left" rowspan="1" colspan="1">558.96</td>
<td align="left" rowspan="1" colspan="1">626.52</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">Maximum reachable height – assumed the user's hand is vertically pointed up, with the arm reach angle, <italic>θ</italic>
= 150°)</td>
<td align="left" rowspan="1" colspan="1">1,850.00</td>
<td align="left" rowspan="1" colspan="1">2,259.30</td>
<td align="left" rowspan="1" colspan="1">1,755.04</td>
<td align="left" rowspan="1" colspan="1">2,087.40</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>Therefore, the minimum vertical reachable height is 665.82 mm and the maximum vertical reachable height is 1,755.04 mm. The design accommodates 95% of Malaysian workers.</p>
</sec>
<sec id="s3b"><title>Sensor Configuration</title>
<p>The Virtual Wall used by VR-RoWL involves four coordinate systems, namely, user, sensor transmitter, projection screen and virtual environment (VM). A standard reference coordinate system needs to be selected or defined, whereby other systems can be transformed into this coordinate frame. Thus, the projection screen coordinate system is used as the reference frame, as shown in <xref ref-type="fig" rid="pone-0109692-g002">Figure 2</xref>
. The transformation between frames can be simplified into the following configurations:</p>
<fig id="pone-0109692-g002" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g002</object-id>
<label>Figure 2</label>
<caption><title>Reference coordinate system for Virtual Wall.</title>
</caption>
<graphic xlink:href="pone.0109692.g002"></graphic>
</fig>
<list list-type="alpha-lower"><list-item><p>First, the user's coordinate system needs to be transformed into the transmitter coordinate frame. In this research, the position and orientation of the head and hand are tracked using sensors and the sensors are referred to the transmitter coordinate frame. Furthermore, the default location of the transmitter is programmed at the origin without the rotation angle. Therefore, the transformation matrix <italic>T<sub>1</sub>
</italic>
can be obtained through the position and orientation of the user's head/hand which is referenced to the transmitter, and these data can be directly tracked by the 6-DOF sensor and digitizer.</p>
</list-item>
<list-item><p>The virtual scene is projected (clipped) onto the screen. The actual dimensions of the screen are used to set up the OpenGL projection, and the virtual objects will appear on a 1-to-1 scale (full-scale), which is the same as the actual size. The centroid of the projection screen is fixed as the origin of the virtual environment. Hence, the transformation matrix <italic>T<sub>2</sub>
</italic>
represents the position and orientation of the virtual objects referenced to the screen, and these data are referred to the global coordinate system of the virtual environment.</p>
</list-item>
</list>
<p>Only two coordinate frames need to be considered, which are transmitter and screen. Both coordinate frames are configured as the origin in their respective frame. Consequently, the transformation matrix <italic>T<sub>3</sub>
</italic>
can be obtained by measuring the distance and rotation angle of the transmitter which is referenced to the centroid of the screen. The user will feel as though he/she is located within the virtual manufacturing system and uses the same coordinate system through these transformation functions.</p>
<p>ErgoVR station is another configuration used in the robot teaching system (VR-RoT). The ErgoVR station is designed to make the user feel, see and interact with objects in the most natural and ergonomic position. The user will be able to see and interact with virtual objects in the same place, as shown in <xref ref-type="fig" rid="pone-0109692-g003">Figure 3</xref>
. Thus, the screen coordinate system can be replaced by a new coordinate system, which is termed as the virtual-monitor coordinate system. The transformation of the frame for the VR-RoT can be simplified into the following configurations:</p>
<fig id="pone-0109692-g003" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g003</object-id>
<label>Figure 3</label>
<caption><title>Coordinate system for ErgoVR workstation.</title>
</caption>
<graphic xlink:href="pone.0109692.g003"></graphic>
</fig>
<list list-type="alpha-lower"><list-item><p>Similar to the VR-RoWL condition, the user's coordinate system needs to be transformed into the transmitter coordinate frame. The transformation matrix <italic>T<sub>1</sub>
</italic>
is obtained directly from the recorded data.</p>
</list-item>
<list-item><p>Based on the unique design of the co-location workstation, the virtual monitor will appear as the reflection of the actual monitor. Therefore, a mirror transformation matrix (<italic>T<sub>3</sub>
</italic>
) at x-axis is applied to achieve the desired effect.</p>
</list-item>
</list>
</sec>
<sec id="s3c"><title>Robot Command Generator</title>
<p>The process path generated by the VR-based robot teaching system is recorded in a text file. Following this, the data acquisition and generator are designed to generate the robot commands, in which the generator is programmed specifically for KUKA industrial robots. The command generator is capable of converting the generated path into KUKA readable and executable formats. Hence, the robot commands can be tested by the KUKA OfficeLite simulator before being loaded into the real physical robot.</p>
<p>The software architecture of the KUKA robot system must be identified before conversion between VR-RoT and KUKA robot system can be established. Additionally, KUKA programming language and syntax must be analysed and studied in depth before conversion can be carried out. Each KUKA robot command is formed by two files, i.e. source file (<italic>*.src</italic>
) and data file (<italic>*.dat</italic>
). The data file contains data of the coordinate points whereas the source file consists of robot motion data such as velocity etc.</p>
<p>In this research, the content of each source file is similar to one another, whereby the motion of the robot will be determined during the actual robot testing. However, the source file is somewhat dependent on the data file. For example, the motion loop controls the dynamics and type of movement from one point to another, whereby the number of loops (counter) must tally with the number of points in the data file. The data file consists of all points in the path. <xref ref-type="fig" rid="pone-0109692-g004">Figure 4</xref>
shows the flow chart of the robot command generator.</p>
<fig id="pone-0109692-g004" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g004</object-id>
<label>Figure 4</label>
<caption><title>Flow chart of robot command generator.</title>
</caption>
<graphic xlink:href="pone.0109692.g004"></graphic>
</fig>
<p>In general, there are six parameters used to define a point in the KUKA robot command, namely, <italic>x</italic>
, <italic>y</italic>
, <italic>z</italic>
, <italic>pitch</italic>
, <italic>yaw</italic>
and <italic>roll</italic>
. Thus, the coordinates tracked by VR-RoT can be inserted into the data files accordingly. <xref ref-type="fig" rid="pone-0109692-g005">Figure 5</xref>
and <xref ref-type="fig" rid="pone-0109692-g006">Figure 6</xref>
shows an example of the source file and data file, respectively.</p>
<fig id="pone-0109692-g005" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g005</object-id>
<label>Figure 5</label>
<caption><title>Example of source file (*.src) generated by the VR-based system.</title>
</caption>
<graphic xlink:href="pone.0109692.g005"></graphic>
</fig>
<fig id="pone-0109692-g006" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g006</object-id>
<label>Figure 6</label>
<caption><title>Example of data file (*.dat) generated by the VR-based system.</title>
</caption>
<graphic xlink:href="pone.0109692.g006"></graphic>
</fig>
</sec>
<sec id="s3d"><title>Software Architecture</title>
<p>The virtual reality-based programming of a robotic work cell (VR-Rocell) is developed by solid modelling using commercial CAD software. The 3D models can be saved in a universal file format, either in STL, VRML, XML or OBJ. Following this, these models are integrated into the VR-Robotic Work Cell Layout (VR-RoWL) using a generic approach, in which the assembly models are saved in the VRML format. Virtual models can be transformed and saved in new files. The assembly models can be designed, modified and re-arranged accordingly. The models will be used to teach the robot path via the VR-based Robot Teaching system (VR-RoT). The robot commands and layout information can be loaded into the actual robotic work cell to execute the desired tasks. In addition, the VM models can be saved in different universal file formats. Therefore, the output models from one VM can be transferred or imported to another VM in the universal file format. <xref ref-type="fig" rid="pone-0109692-g007">Figure 7</xref>
shows the overview of the research.</p>
<fig id="pone-0109692-g007" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g007</object-id>
<label>Figure 7</label>
<caption><title>Overview of the project.</title>
</caption>
<graphic xlink:href="pone.0109692.g007"></graphic>
</fig>
</sec>
<sec id="s3e"><title>3D Models and Coordinate System in VR-RoWL</title>
<p>In the robot layout planning system (VR-RoWL), the layout is re-arranged according to the user's input (via digitizer) in the VRML format. In this case, the models inside the assembly file solely consist of 3-DOF, which allows translation in the horizontal plane (<italic>xz</italic>
-plane) and rotation around the <italic>y</italic>
-axis. This is due to the constraints of the physical (real) environment, such that the models must be placed on the floor with the <italic>y</italic>
-axis always equal to zero. Thus, the machines/robots are unable to rotate around the <italic>x</italic>
- and <italic>z</italic>
-axes.</p>
<p>The global coordinate system in the virtual environment is the fixed reference coordinate system for all virtual objects. The global coordinate system maintains the position and orientation of the models such that they are unaffected by modelling transformation. The coordinate system is located on the virtual floor rather than on any virtual object since the virtual objects are allowed to move and hence, only the coordinates of the transformed models will be updated. The relative distance between the virtual objects can be calculated using vector analysis. As an example, the material handling of a milling machine is handled by an industrial robot while an operator is assigned to the lathe machine. The new layout involves switching the role (location) of the robot and operator. The global coordinate is fixed at the front-centre of the grid and the transformed coordinates (set-A) of the virtual objects are tabulated in <xref ref-type="table" rid="pone-0109692-t002">Table 2</xref>
. An additional set of coordinates (set-B) is shown if the industrial robot is selected as the reference frame (local coordinate) for comparison purposes.</p>
<table-wrap id="pone-0109692-t002" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.t002</object-id>
<label>Table 2</label>
<caption><title>Global coordinate versus local coordinate in layout design.</title>
</caption>
<alternatives><graphic id="pone-0109692-t002-2" xlink:href="pone.0109692.t002"></graphic>
<table frame="hsides" rules="groups"><colgroup span="1"><col align="left" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
</colgroup>
<thead><tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Virtual Object</td>
<td align="left" rowspan="1" colspan="1">Original Layout</td>
<td align="left" rowspan="1" colspan="1">New Layout</td>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1"><bold>Set A</bold>
</td>
<td align="left" rowspan="1" colspan="1">Forklift</td>
<td align="left" rowspan="1" colspan="1">(−900, 0, 400), 135°CCW</td>
<td align="left" rowspan="1" colspan="1">(−900, 0, 400), 135°CCW</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Milling</td>
<td align="left" rowspan="1" colspan="1">(−200, 0, 1500)</td>
<td align="left" rowspan="1" colspan="1">(−200, 0, 1500)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Lathe</td>
<td align="left" rowspan="1" colspan="1">(1000, 0, 1000), 315°CCW</td>
<td align="left" rowspan="1" colspan="1">(1000, 0, 1000), 315°CCW</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Robot</td>
<td align="left" rowspan="1" colspan="1">(−200, 0, 1000), 270°CCW</td>
<td align="left" rowspan="1" colspan="1"><bold><italic>(550, 0, 650), 45°CCW</italic>
</bold>
</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Operator</td>
<td align="left" rowspan="1" colspan="1">(550, 0, 650), 135°CCW</td>
<td align="left" rowspan="1" colspan="1"><bold><italic>(−200, 0, 1000), 180°CCW</italic>
</bold>
</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"><bold>Set B</bold>
</td>
<td align="left" rowspan="1" colspan="1">Forklift</td>
<td align="left" rowspan="1" colspan="1">(600, 0, −700), 225°CCW</td>
<td align="left" rowspan="1" colspan="1"><bold><italic>(−120.2, 0, 848.5), 90°CCW</italic>
</bold>
</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Milling</td>
<td align="left" rowspan="1" colspan="1">(−500, 0, 0), 90°CCW</td>
<td align="left" rowspan="1" colspan="1"><bold><italic>(70.7, 0, 1131.4), 315°CCW</italic>
</bold>
</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Lathe</td>
<td align="left" rowspan="1" colspan="1">(0, 0, 1200), 45°CCW</td>
<td align="left" rowspan="1" colspan="1"><bold><italic>(565.7, 0, −70.7), 270°CCW</italic>
</bold>
</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Robot</td>
<td align="left" rowspan="1" colspan="1">(0, 0, 0)</td>
<td align="left" rowspan="1" colspan="1"><bold><italic>(0, 0, 0)</italic>
</bold>
</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Operator</td>
<td align="left" rowspan="1" colspan="1">(350, 0, 750), 225°CCW</td>
<td align="left" rowspan="1" colspan="1"><bold><italic>(−282.8, 0, 777.8), 135°CCW</italic>
</bold>
</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>In general, the coordinates of the virtual objects in set-A can be measured directly from the reference point and are independent of each other. Therefore, only the position and orientation of the moving objects (operator and robot) are updated whereas the others are maintained at the same position. In set-B, the robot (local coordinate) is selected as the reference frame, and it is moved and rotated. Consequently, the reference frame changes even though the coordinate of the robot always remains at (0, 0, 0). Hence, the coordinates for other objects need to be re-calculated based on the new position and orientation of the industrial robot. For this reason, set-A is more suitable and practical for use in a flexible manufacturing environment. The global coordinate system is then applied in the VR-RoWL.</p>
</sec>
<sec id="s3f"><title>3D Models and Coordinate System in VR-RoT</title>
<p>The assembly format is also used in the robot path teaching system. Before proceeding to the path teaching process, the user is required to plan the robot assembly process in advance, which is based on the reverse engineering concept. Firstly, the original assembly model of the workpieces is imported into the virtual environment at the output buffer. Following this, the user has to disassemble the imported assembly models and place the related parts in the assembly area. Finally, the user is required to move the components into the input buffer accordingly. Hence, validation of the assembly models can be carried out in the assembly area and input buffer. Only then the user can demonstrate the assembly process in the virtual environment and this assembly process will be recorded as the robot path.</p>
<p>The imported model is validated, and the vertices and triangle meshing data are checked and compared. The coordinates of the vertices and triangle meshing sequence are also confirmed. Validation of the disassembled model in the assembly area is carried out (<xref ref-type="table" rid="pone-0109692-t003">Table 3</xref>
). The imported assembly models are then dismantled and placed in the assembly area accordingly. The layout of the components is used to design the assembly jig and the VR-based robot path teaching system. Finally, the components are moved into the pallet at the input buffer and the output model is validated accordingly.</p>
<table-wrap id="pone-0109692-t003" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.t003</object-id>
<label>Table 3</label>
<caption><title>Example of validation in VR-RoT.</title>
</caption>
<alternatives><graphic id="pone-0109692-t003-3" xlink:href="pone.0109692.t003"></graphic>
<table frame="hsides" rules="groups"><colgroup span="1"><col align="left" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
</colgroup>
<thead><tr><td colspan="2" align="left" rowspan="1">Parameter</td>
<td align="left" rowspan="1" colspan="1">Original (Solidworks)</td>
<td align="left" rowspan="1" colspan="1">Imported (VR-RoT)</td>
<td align="left" rowspan="1" colspan="1">Dismantled (VR-RoT)</td>
<td align="left" rowspan="1" colspan="1">Exported (Internet browser)</td>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">Geometric Information</td>
<td align="left" rowspan="1" colspan="1">Number of components</td>
<td align="left" rowspan="1" colspan="1">3</td>
<td align="left" rowspan="1" colspan="1">3</td>
<td align="left" rowspan="1" colspan="1">3</td>
<td align="left" rowspan="1" colspan="1">3</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Total vertices</td>
<td align="left" rowspan="1" colspan="1">3708</td>
<td align="left" rowspan="1" colspan="1">3708</td>
<td align="left" rowspan="1" colspan="1">3708</td>
<td align="left" rowspan="1" colspan="1">3708</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">Total triangles</td>
<td align="left" rowspan="1" colspan="1">1236</td>
<td align="left" rowspan="1" colspan="1">1236</td>
<td align="left" rowspan="1" colspan="1">1236</td>
<td align="left" rowspan="1" colspan="1">1236</td>
</tr>
<tr><td colspan="2" align="left" rowspan="1">Vertices' coordinates checking</td>
<td align="left" rowspan="1" colspan="1">Yes (same)</td>
<td align="left" rowspan="1" colspan="1">Yes (same)</td>
<td align="left" rowspan="1" colspan="1">Yes (same)</td>
<td align="left" rowspan="1" colspan="1">Yes (same)</td>
</tr>
<tr><td colspan="2" align="left" rowspan="1">Triangle meshing sequence checking</td>
<td align="left" rowspan="1" colspan="1">Yes (All CCW)</td>
<td align="left" rowspan="1" colspan="1">Yes (All CCW)</td>
<td align="left" rowspan="1" colspan="1">Yes (All CCW)</td>
<td align="left" rowspan="1" colspan="1">Yes (All CCW)</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>The origin of the industrial robot coordinate frame is located at its base. However, the local coordinate system is a convenient and common method of robot programming in a virtual environment, and is located at the end effector of the robot arm at the “home” position. If the user likes to change the end effector, the relative distance between the new end effector and work-pieces need to be updated although the origin (robot base) is unaltered. Therefore, the local coordinate system is preferable for use in VR-RoT.</p>
</sec>
<sec id="s3g"><title>Frame Delay</title>
<p>Real-time updating simulation is an important visual feedback in order to provide a sense of presence in the virtual environment. Moreover, simulation delays will create flickering images, which will cause cyber sickness. In general, delays are caused by insufficient computational load for handling large quantities of polygons in the virtual environment. The situation may become more critical if the user likes to interact with virtual objects in real-time. Furthermore, the active stereo is set at 120 Hz (120 frames-per-second) to create flicker-free stereoscopic images. Therefore, frame delays should be validated by checking the refreshing rate (frames-per-second) in real-time simulations. The validation process is checked with examples of virtual environment and the results are tabulated in <xref ref-type="table" rid="pone-0109692-t004">Table 4</xref>
.</p>
<table-wrap id="pone-0109692-t004" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.t004</object-id>
<label>Table 4</label>
<caption><title>Validation of frame delay.</title>
</caption>
<alternatives><graphic id="pone-0109692-t004-4" xlink:href="pone.0109692.t004"></graphic>
<table frame="hsides" rules="groups"><colgroup span="1"><col align="left" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
</colgroup>
<thead><tr><td align="left" rowspan="1" colspan="1">Virtual environment</td>
<td colspan="2" align="left" rowspan="1">Passive stereo (60 Hz)</td>
<td colspan="2" align="left" rowspan="1">Active stereo (120 Hz)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">without sensor</td>
<td align="left" rowspan="1" colspan="1">with sensor</td>
<td align="left" rowspan="1" colspan="1">without sensor</td>
<td align="left" rowspan="1" colspan="1">with sensor</td>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">Five (5) Equipment with Vertices (21,040) and Triangles (38,145)</td>
<td align="left" rowspan="1" colspan="1">√</td>
<td align="left" rowspan="1" colspan="1">√</td>
<td align="left" rowspan="1" colspan="1">√<sup>*</sup>
</td>
<td align="left" rowspan="1" colspan="1">√<sup>*+</sup>
</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">Five (5) Equipment with Vertices (54,107) and Triangles (97,275)</td>
<td align="left" rowspan="1" colspan="1">√</td>
<td align="left" rowspan="1" colspan="1">√</td>
<td align="left" rowspan="1" colspan="1">√<sup>*</sup>
</td>
<td align="left" rowspan="1" colspan="1">√<sup>*+</sup>
</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">Nine (9) Equipment with Vertices (140,116) and Triangles (142,608)</td>
<td align="left" rowspan="1" colspan="1">√</td>
<td align="left" rowspan="1" colspan="1">√</td>
<td align="left" rowspan="1" colspan="1">√<sup>*</sup>
</td>
<td align="left" rowspan="1" colspan="1">√<sup>*+</sup>
</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>The validation results show that the virtual environment created matches the computational load for the selected computer workstation. There are no frame delays when the refreshing rate is tested at 60 frames-per-second (FPS or Hz). The first two frames fall below the rated FPS (marked by “*” in <xref ref-type="table" rid="pone-0109692-t004">Table 4</xref>
) when the refreshing rate is doubled. This is attributed to the initial processing of the rendering process, whereby the OpenGL technique “Display List” is used for compiling for later use. This technique evaluates all rendering information (vertices and triangles) and stores the information into the server machine at the beginning of the process. The information created can be re-used without re-evaluating and re-transmitting the data during simulations.</p>
<p>Furthermore, the frame delay remains constant (120 Hz) when the sensors are activated in the active stereo mode. However, the frequencies of the sensors are limited to 60 Hz. Thus, the following methods are used to overcome frame delay:</p>
<list list-type="alpha-lower"><list-item><p>The following frame will be updated accordingly when the data is triggered and sent from the sensors. A total of 60 frames will be updated based on the input information from the sensors in an event-mode input model.</p>
</list-item>
<list-item><p>The previous information will be used to update the frames if no data is received. The information is applied to the remaining frames, where the OpenGL is able to simulate the virtual environment until the next input is received (marked by “+” in <xref ref-type="table" rid="pone-0109692-t004">Table 4</xref>
).</p>
</list-item>
</list>
</sec>
</sec>
<sec id="s4"><title>Results and Discussion</title>
<p>A case study is conducted at the Robotics Laboratory, Department of Mechanical Engineering, Faculty of Engineering, University of Malaya. The industrial robotic work cell is required to assemble an electronics casing which consists of three components: a main casing and two identical heat sink assemblies. The main casing is made of aluminium and the heat sink assemblies are attached onto the main casing. Each heat sink assembly is a combination of a heat sink and a side plate, which has been assembled prior to the robotic work cell. The work cell initially consists of two industrial robots (KUKA KR6/2). However, due to the high maintenance and performance of the robots (payload: 6 kg only), the existing robots are replaced with KUKA KR16 KS (payload: 16 kg). Therefore, a new layout design is required since both robots have different workspace and reach requirements. The machines and robots are listed in <xref ref-type="table" rid="pone-0109692-t005">Table 5</xref>
.</p>
<table-wrap id="pone-0109692-t005" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.t005</object-id>
<label>Table 5</label>
<caption><title>Industrial robotic work cell.</title>
</caption>
<alternatives><graphic id="pone-0109692-t005-5" xlink:href="pone.0109692.t005"></graphic>
<table frame="hsides" rules="groups"><colgroup span="1"><col align="left" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
</colgroup>
<thead><tr><td align="left" rowspan="1" colspan="1">No.</td>
<td align="left" rowspan="1" colspan="1">Machine/Robot</td>
<td align="left" rowspan="1" colspan="1">Task</td>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">1</td>
<td align="left" rowspan="1" colspan="1">KUKA KR 16 (A)</td>
<td align="left" rowspan="1" colspan="1">Pick-and-place</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">2</td>
<td align="left" rowspan="1" colspan="1">KUKA KR 16 (B)</td>
<td align="left" rowspan="1" colspan="1">Fastening</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">3</td>
<td align="left" rowspan="1" colspan="1">Assembly jig with pneumatic system</td>
<td align="left" rowspan="1" colspan="1">Assembly area for the casing</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">4</td>
<td align="left" rowspan="1" colspan="1">PLCs</td>
<td align="left" rowspan="1" colspan="1">Synchronize and control assembly process</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">5</td>
<td align="left" rowspan="1" colspan="1">Pallet with fibre optic sensor</td>
<td align="left" rowspan="1" colspan="1">Input buffer and use sensor to trigger process</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>The assembly process of the electronics casing is identified during the design stage, as shown in <xref ref-type="fig" rid="pone-0109692-g008">Figure 8</xref>
. Firstly, the main body (<italic>O</italic>
-1) is placed at its position in the jig. Following this, the left heat sink assembly (<italic>O</italic>
-2) is fixed onto the main body using two screws. Finally, the right heat sink assembly (<italic>O</italic>
-2) is fixed onto the main body using two other screws.</p>
<fig id="pone-0109692-g008" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g008</object-id>
<label>Figure 8</label>
<caption><title>Assembly process chart for case study.</title>
</caption>
<graphic xlink:href="pone.0109692.g008"></graphic>
</fig>
<sec id="s4a"><title>VR-Robotic Work Cell Layout (VR-RoWL)</title>
<p>The 3D models of the robots and related components are developed using commercial CAD modelling software. Following this, these models are imported into the virtual work cell for layout planning, in which the assembly model is saved in the VRML format. The layout of the laboratory needs to be studied in advance. The location of the power supply, entrance (door), windows (if any), materials supply and others should be confirmed before re-arranging the layout of the robotic work cell. In this case study, the upper-right corner of the laboratory is assigned as the global coordinate system. The dimensions of the robotic zone will be used to set up the layout for the VR-RoWL. All components and machines must be located within this zone, with the exception of materials supply mechanisms/machines.</p>
<p>The original assembly model is then imported into the VR-RoWL. The models are free to move within the fixed zone (grid). In general, the robots should be placed in parallel and facing towards the positive <italic>y</italic>
-axis direction. The assembly zone is located between the robots and within the workspace of both robots. This layout design can be implemented for various assembly processes involving two robots, whereby the materials supply is located in front of the robots. Therefore, the new layout can be obtained by moving the related machines/robots in the virtual layout. The new layout can be saved in the VRML format, which can be shared between various Internet browsers. The proposed robotic work cell created by the VR-RoWL and the actual laboratory setup are shown in <xref ref-type="fig" rid="pone-0109692-g009">Figure 9</xref>
.</p>
<fig id="pone-0109692-g009" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g009</object-id>
<label>Figure 9</label>
<caption><title>(a) Proposed robotic work cell (b) Actual robotic work cell setup.</title>
</caption>
<graphic xlink:href="pone.0109692.g009"></graphic>
</fig>
<p>The laboratory is set up according to the above mentioned criteria and the proposed new layout design. The actual dimensions of the equipment are measured based on the proposed global coordinate system. Comparisons between the actual coordinates and virtual layout coordinates for the robotic work cell are tabulated in <xref ref-type="table" rid="pone-0109692-t006">Table 6</xref>
. There are some constraints while installing the robots and equipment in the actual laboratory setup; one of them being the accuracy of the measurement tools. Thus, the unit used in the actual setup is centimetres (cm) and the tolerance is ±0.5 cm. The orientation of the equipment in the actual installation is difficult to control and therefore the tolerance is set as ± 3° (for all axes). The digital coordinates (virtual layout) do not impose limitations on the environmental conditions (e.g. floor) and instrumentations (e.g. measuring tape).</p>
<table-wrap id="pone-0109692-t006" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.t006</object-id>
<label>Table 6</label>
<caption><title>Comparisons between virtual layout and laboratory setup.</title>
</caption>
<alternatives><graphic id="pone-0109692-t006-6" xlink:href="pone.0109692.t006"></graphic>
<table frame="hsides" rules="groups"><colgroup span="1"><col align="left" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
</colgroup>
<thead><tr><td align="left" rowspan="1" colspan="1">No</td>
<td align="left" rowspan="1" colspan="1">Equipments</td>
<td align="left" rowspan="1" colspan="1">Virtual Layout (x, y) (mm)</td>
<td align="left" rowspan="1" colspan="1">Laboratory (x, y) (mm)</td>
<td align="left" rowspan="1" colspan="1">Absolute Variation (x, y) (mm)</td>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">1</td>
<td align="left" rowspan="1" colspan="1">KUKA KR 16 (A)</td>
<td align="left" rowspan="1" colspan="1">(1459, 1716)</td>
<td align="left" rowspan="1" colspan="1">(1450, 1700)</td>
<td align="left" rowspan="1" colspan="1">(9, 12)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">2</td>
<td align="left" rowspan="1" colspan="1">KUKA KR 16 (B)</td>
<td align="left" rowspan="1" colspan="1">(3965, 1713)</td>
<td align="left" rowspan="1" colspan="1">(3950, 1700)</td>
<td align="left" rowspan="1" colspan="1">(15, 13)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">3</td>
<td align="left" rowspan="1" colspan="1">Input buffer (Conveyor)</td>
<td align="left" rowspan="1" colspan="1">(1556, 3203)</td>
<td align="left" rowspan="1" colspan="1">(1570, 3230)</td>
<td align="left" rowspan="1" colspan="1">(14, 27)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">4</td>
<td align="left" rowspan="1" colspan="1">Output buffer (Conveyor)</td>
<td align="left" rowspan="1" colspan="1">(1555, 3209)</td>
<td align="left" rowspan="1" colspan="1">(1570, 3230)</td>
<td align="left" rowspan="1" colspan="1">(15, 21)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">5</td>
<td align="left" rowspan="1" colspan="1">Assembly jig (Table)</td>
<td align="left" rowspan="1" colspan="1">(2515, 2041)</td>
<td align="left" rowspan="1" colspan="1">(2530, 2025)</td>
<td align="left" rowspan="1" colspan="1">(15, 16)</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>There are differences between the virtual layout and actual laboratory setup, and the virtual layout provides an overview of the arrangement. There are no measurement tools used in the virtual environment. The user locates the equipment using his/her visual feedback only. For example, the user is unable to “see” a difference of 5 mm in a virtual environment. The user is also unable to “see” whether two robots are exactly located at the same axis (<italic>y</italic>
= 1700 mm). This can be improved by applying the “snap-fit” feature, in which each grid is 10 mm.</p>
</sec>
<sec id="s4b"><title>VR-Robot Teaching System (VR-RoT)</title>
<p>The imported assembly model is located on the input buffer by default. The user is requested to dismantle the assembly model and move the components to the pallet and arrange them accordingly. In this mode, only the final position and orientation of the components will be stored, neglecting the path of the movement. The path planning mode is then activated after assembly planning and the user is requested to either plan the robot path by moving the components (material handling, e.g. suction cup) or demonstrate the process path (material processing, e.g. fastening). The path will be recorded and translated into robot commands. The loaded information will not be substituted by the final location of the components. In addition, there are two basic ways of describing the movement of industrial robots in a robot control system, i.e. angle of the manipulator's joints or location of the end effector. If all joint variables are known, then forward kinematics can be used to determine the position and orientation of the robot's end (tool centre point). However, inverse kinematics is used to calculate the value of each joint variable by knowing the position and orientation of the end effector. Thus, the inverse kinematic model is developed and used in this research <xref rid="pone.0109692-Yap1" ref-type="bibr">[28]</xref>
.</p>
<p>Robot-A is programmed to pick-and-place (PnP) the components between the input buffer and assembly area. There is no force or tactile feedback provided to the developed robot teaching system. The collision detection algorithms are applied to detect whether the end effector touches the components, in which a bounding box will be drawn at the end effector when collision is detected. Furthermore, the colour of the bounding box will change at different stages of the PnP process, as follows:</p>
<list list-type="alpha-lower"><list-item><p>No bounding box: No collision is detected (<xref ref-type="fig" rid="pone-0109692-g010">Figure 10</xref>
(a)).</p>
</list-item>
<list-item><p>Red (blinking): Collision is detected between the end effector and workpiece, but the PnP process cannot be continued (<xref ref-type="fig" rid="pone-0109692-g010">Figure 10</xref>
(b)).</p>
</list-item>
<list-item><p>Yellow (blinking): Collision is detected between the end effector and workpiece, and ready for the PnP process (<xref ref-type="fig" rid="pone-0109692-g010">Figure 10</xref>
(c)).</p>
</list-item>
<list-item><p>Green (blinking): The colour of the workpiece will stop blinking when the end effector is activated. The workpiece is now grasped by the end effector and moves together with it (<xref ref-type="fig" rid="pone-0109692-g010">Figure 10</xref>
(d)).</p>
</list-item>
</list>
<fig id="pone-0109692-g010" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g010</object-id>
<label>Figure 10</label>
<caption><title>Bounding box for end effector.</title>
</caption>
<graphic xlink:href="pone.0109692.g010"></graphic>
</fig>
<p>In the virtual teaching system, collision detection is enabled when the end effector touches the components or the components collide with the assembly jig. Thus, the end effector always pick-and-place at the right height (<italic>z</italic>
-axis). Only the horizontal positions (<italic>x</italic>
-axis and <italic>y</italic>
-axis) may differ slightly from the exact location, as shown in <xref ref-type="table" rid="pone-0109692-t007">Table 7</xref>
.</p>
<table-wrap id="pone-0109692-t007" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.t007</object-id>
<label>Table 7</label>
<caption><title>Data of PnP process for Robot-A.</title>
</caption>
<alternatives><graphic id="pone-0109692-t007-7" xlink:href="pone.0109692.t007"></graphic>
<table frame="hsides" rules="groups"><colgroup span="1"><col align="left" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
</colgroup>
<thead><tr><td align="left" rowspan="1" colspan="1">Step</td>
<td align="left" rowspan="1" colspan="1">Task</td>
<td align="left" rowspan="1" colspan="1">VR generated Coordinate (x, y, z) (mm)</td>
<td align="left" rowspan="1" colspan="1">Predefined Coordinate (x, y, z) (mm)</td>
<td align="left" rowspan="1" colspan="1">Absolute Variation (x, y, z) (mm)</td>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">a1</td>
<td align="left" rowspan="1" colspan="1">Pick: Main Body</td>
<td align="left" rowspan="1" colspan="1">(1677, −126, 867)</td>
<td align="left" rowspan="1" colspan="1">(1670, −120, 867)</td>
<td align="left" rowspan="1" colspan="1">(7, 6, 0)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">a2</td>
<td align="left" rowspan="1" colspan="1">Place: Main Body</td>
<td align="left" rowspan="1" colspan="1">(327, −1076, 1200)</td>
<td align="left" rowspan="1" colspan="1">(325, −1080, 1200)</td>
<td align="left" rowspan="1" colspan="1">(2, 4, 0)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">b1</td>
<td align="left" rowspan="1" colspan="1">Pick: Heat Sink Assembly (left)</td>
<td align="left" rowspan="1" colspan="1">(1283, −115, 750.5)</td>
<td align="left" rowspan="1" colspan="1">(1290, −120, 750.5)</td>
<td align="left" rowspan="1" colspan="1">(7, 5, 0)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">b2</td>
<td align="left" rowspan="1" colspan="1">Place: Heat Sink Assembly (left)</td>
<td align="left" rowspan="1" colspan="1">(−91, −1078, 994)</td>
<td align="left" rowspan="1" colspan="1">(−94, −1080, 994)</td>
<td align="left" rowspan="1" colspan="1">(3, 2, 0)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">c1</td>
<td align="left" rowspan="1" colspan="1">Pick: Heat Sink Assembly (right)</td>
<td align="left" rowspan="1" colspan="1">(1635, −116, 750.5)</td>
<td align="left" rowspan="1" colspan="1">(1640, −120, 750.5)</td>
<td align="left" rowspan="1" colspan="1">(5, 4, 0)</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">c2</td>
<td align="left" rowspan="1" colspan="1">Place: Heat Sink Assembly (right)</td>
<td align="left" rowspan="1" colspan="1">(740, −1076, 994)</td>
<td align="left" rowspan="1" colspan="1">(744, −1080, 994)</td>
<td align="left" rowspan="1" colspan="1">(4, 4, 0)</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>On the other hand, the fastening paths and coordinates need to be controlled, as the fastening coordinates are fixed. These coordinates can be tracked by the screw holes available in the heat sink assembly, which enables the user to change the sequence of the fastening process. <xref ref-type="fig" rid="pone-0109692-g011">Figure 11</xref>
shows the fastening sequence defined in the virtual environment and <xref ref-type="table" rid="pone-0109692-t008">Table 8</xref>
shows the coordinates of the fastening process.</p>
<fig id="pone-0109692-g011" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g011</object-id>
<label>Figure 11</label>
<caption><title>Fastening sequence.</title>
</caption>
<graphic xlink:href="pone.0109692.g011"></graphic>
</fig>
<table-wrap id="pone-0109692-t008" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.t008</object-id>
<label>Table 8</label>
<caption><title>Data of fastening process for Robot-B.</title>
</caption>
<alternatives><graphic id="pone-0109692-t008-8" xlink:href="pone.0109692.t008"></graphic>
<table frame="hsides" rules="groups"><colgroup span="1"><col align="left" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
</colgroup>
<thead><tr><td align="left" rowspan="1" colspan="1">Screw</td>
<td align="left" rowspan="1" colspan="1">Predefined Coordinate (x, y, z) (mm)</td>
<td align="left" rowspan="1" colspan="1">Fastening direction (Robot's Coordinate system)</td>
<td align="left" rowspan="1" colspan="1">Fastening Depth (mm)</td>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">1</td>
<td align="left" rowspan="1" colspan="1">(113.4, 1270, 1190)</td>
<td align="left" rowspan="1" colspan="1">positive <italic>x</italic>
-axis</td>
<td align="left" rowspan="1" colspan="1">10</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">2</td>
<td align="left" rowspan="1" colspan="1">(113.4, 1570, 1190)</td>
<td align="left" rowspan="1" colspan="1">positive <italic>x</italic>
-axis</td>
<td align="left" rowspan="1" colspan="1">10</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">3</td>
<td align="left" rowspan="1" colspan="1">(536.6, 1570, 1190)</td>
<td align="left" rowspan="1" colspan="1">negative <italic>x</italic>
-axis</td>
<td align="left" rowspan="1" colspan="1">10</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">4</td>
<td align="left" rowspan="1" colspan="1">(536.6, 1270,1190)</td>
<td align="left" rowspan="1" colspan="1">negative <italic>x</italic>
-axis</td>
<td align="left" rowspan="1" colspan="1">10</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
</sec>
<sec id="s4c"><title>Laboratory Testing</title>
<p>The actual testing is carried out in the Robotics Laboratory. The original work cell consists of two industrial robots of KUKA KR6/2 (payload: 6 kg). The existing robots require higher maintenance and the low payload is unable to fulfil the current requirements. Therefore, the existing robots are replaced with KUKA KR16 KS (payload: 16 kg). Thus, a new layout design is needed since both robots have different workspace, reach, speed and other requirements. Following this, the VR-RoWL model is used to determine and evaluate the layout prior to the actual hardware installation. The robot teaching system (VR-RoT) is used to plan and determine the robot path in advance. The robot process path is taught and the robot commands are generated offline. The layout and process path planned in the VR-RoWL are validated using KUKA SimPro Simulation environment to determine clearance, reach, safety etc. KUKA OfficeLite is used to validate the robot commands generated by the VR-RoT. <xref ref-type="fig" rid="pone-0109692-g012">Figure 12</xref>
shows the simulation and validation using KUKA software before being loaded into the actual system.</p>
<fig id="pone-0109692-g012" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.g012</object-id>
<label>Figure 12</label>
<caption><title>Simulation and validation using KUKA software.</title>
</caption>
<graphic xlink:href="pone.0109692.g012"></graphic>
</fig>
<p>Finally, the actual robots and all equipment are installed at their respective locations based on the layout generated by the VR-system. The KUKA robot commands generated by the VR-based system are saved into a floppy disk and transferred into Robot-A (pick-and-place) and Robot-B (fastening), respectively. The end effector is then attached to each robot. The assembly jig is assembled with a pneumatic system and the input buffer is equipped with a fibre optic sensor. The PLCs are programmed to synchronize and control the assembly process for all equipment.</p>
<p>The robots are operated at 10% of their maximum speed under two conditions (i.e. with and without load) during laboratory testing. The speed is then increased to 30 and 50% of the maximum speed for both conditions. These changes are made using the control panel of the KUKA robot. The average cycle time of the test (five tests for each condition and speed) is recorded and tabulated in <xref ref-type="table" rid="pone-0109692-t009">Table 9</xref>
.</p>
<table-wrap id="pone-0109692-t009" orientation="portrait" position="float"><object-id pub-id-type="doi">10.1371/journal.pone.0109692.t009</object-id>
<label>Table 9</label>
<caption><title>Average cycle time for various speeds.</title>
</caption>
<alternatives><graphic id="pone-0109692-t009-9" xlink:href="pone.0109692.t009"></graphic>
<table frame="hsides" rules="groups"><colgroup span="1"><col align="left" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
<col align="center" span="1"></col>
</colgroup>
<thead><tr><td align="left" rowspan="1" colspan="1">Process</td>
<td colspan="2" align="left" rowspan="1">10% of Speed</td>
<td colspan="2" align="left" rowspan="1">30% of Speed</td>
<td colspan="2" align="left" rowspan="1">50% of Speed</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"></td>
<td align="left" rowspan="1" colspan="1">with load (sec)</td>
<td align="left" rowspan="1" colspan="1">without load (sec)</td>
<td align="left" rowspan="1" colspan="1">With load (sec)</td>
<td align="left" rowspan="1" colspan="1">without load (sec)</td>
<td align="left" rowspan="1" colspan="1">with load (sec)</td>
<td align="left" rowspan="1" colspan="1">without load (sec)</td>
</tr>
</thead>
<tbody><tr><td align="left" rowspan="1" colspan="1">1. Trigger the sensor</td>
<td align="left" rowspan="1" colspan="1">1.0</td>
<td align="left" rowspan="1" colspan="1">1.0</td>
<td align="left" rowspan="1" colspan="1">1.0</td>
<td align="left" rowspan="1" colspan="1">1.0</td>
<td align="left" rowspan="1" colspan="1">-</td>
<td align="left" rowspan="1" colspan="1">1.0</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">2. Robot-A: Pick the components from input buffer and place at assembly area</td>
<td align="left" rowspan="1" colspan="1">103.12</td>
<td align="left" rowspan="1" colspan="1">102.88</td>
<td align="left" rowspan="1" colspan="1">36.56</td>
<td align="left" rowspan="1" colspan="1">36.28</td>
<td align="left" rowspan="1" colspan="1">-</td>
<td align="left" rowspan="1" colspan="1">23.08</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">3. Position the jig</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
<td align="left" rowspan="1" colspan="1">-</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">4. Robot-B: Fastening the four (4) screws.</td>
<td align="left" rowspan="1" colspan="1">49.38</td>
<td align="left" rowspan="1" colspan="1">49.12</td>
<td align="left" rowspan="1" colspan="1">17.41</td>
<td align="left" rowspan="1" colspan="1">17.14</td>
<td align="left" rowspan="1" colspan="1">-</td>
<td align="left" rowspan="1" colspan="1">11.08</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">5. Position the jig</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
<td align="left" rowspan="1" colspan="1">-</td>
<td align="left" rowspan="1" colspan="1">2.0</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1">6. Robot-A: Pick the completed assembly at assembly jig and place at output buffer. Return to home position.</td>
<td align="left" rowspan="1" colspan="1">38.56</td>
<td align="left" rowspan="1" colspan="1">38.36</td>
<td align="left" rowspan="1" colspan="1">14.16</td>
<td align="left" rowspan="1" colspan="1">13.92</td>
<td align="left" rowspan="1" colspan="1">-</td>
<td align="left" rowspan="1" colspan="1">8.68</td>
</tr>
<tr><td align="left" rowspan="1" colspan="1"><bold>Cycle Time</bold>
</td>
<td align="left" rowspan="1" colspan="1"><bold>196.06</bold>
</td>
<td align="left" rowspan="1" colspan="1"><bold>195.36</bold>
</td>
<td align="left" rowspan="1" colspan="1"><bold>73.13</bold>
</td>
<td align="left" rowspan="1" colspan="1"><bold>72.34</bold>
</td>
<td align="left" rowspan="1" colspan="1"><bold>-</bold>
</td>
<td align="left" rowspan="1" colspan="1"><bold>47.84</bold>
</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>Overall, it can be seen that the cycle time is reduced when the speed of the robots is increased, whereby the relationship between the cycle time and percentage speed of the robot is fairly linear. It is also found that the cycle time without load is slightly faster than that with load, which is about 0.70 and 0.79 sec for 10% and 30% speed, respectively. The suction cup is unable to hold the components firmly when the robot arm travels at high speed (50% speed) and thus the data for 50% speed is unsuitable for load-carrying use in this case study.</p>
</sec>
</sec>
<sec id="s5"><title>Conclusions</title>
<p>A virtual reality based programming for an industrial robotic work cell has been developed in this research, and is given the name “VR-Rocell”. The system is divided into two major sub-systems, namely, VR-Robotic Work Cell Layout (VR-RoWL) and VR-Robot Teaching System (VR-RoT). The system is designed to improve the human-machine interface (human-robot interface), whereby off-line programming is used to generate robot commands which will reduce robot downtime and prevents the programmer from exposure to potential hazardous environment.</p>
<p>The system has been validated and tested using a case study. Several settings and assumptions have been made during the validation process. The generic approach of integrating and converting file formats is validated for both part and assembly files and the frame delay has also been tested. It is found that the algorithms and approaches used are able to generate a flicker-free virtual environment for both passive and active stereoscopic visualization systems. Moreover, a case study has been conducted for an electronics casing assembly. The results reveal that there is an absolute variation of 9–15 mm (<italic>x</italic>
-axis) and 12–27 mm (<italic>y</italic>
-axis) between the virtual layout and actual setup. The virtual path teaching shows an absolute variation of 2–7 mm (<italic>x</italic>
-axis) and 2–6 mm (<italic>y</italic>
-axis). It is found that the variations in dimensions have no effects on the performance of the robotic work cell. Thus, it is concluded that the VR-Rocell can be used in an industrial robotic work cell based on the accuracy and effectiveness achieved in the case study. Future work can be focused on layout and sequence optimization, analysis of human factors in workstation design and multi-criteria decision making for sustainable manufacturing in order to further improve the proposed system.</p>
</sec>
</body>
<back><ref-list><title>References</title>
<ref id="pone.0109692-IFR1"><label>1</label>
<mixed-citation publication-type="other">IFR (2001) World Robotics: Statistics, market analysis, forecasts, case studies and profitability of robot investment: United Nations Economic Commission for Europe (UNECE), International Federation of Robotics.</mixed-citation>
</ref>
<ref id="pone.0109692-IFR2"><label>2</label>
<mixed-citation publication-type="other">IFR (2011) World Robotics: Statistics, market analysis, forecasts, case studies and profitability of robot investment: United Nations Economic Commission for Europe (UNECE), International Federation of Robotics.</mixed-citation>
</ref>
<ref id="pone.0109692-OSHA1"><label>3</label>
<mixed-citation publication-type="other">OSHA Japan (1995) Study on accidents Involving industrial robot report no. 5, Labor Standard Bureau: Occupational Safety and Health Department, Japan Ministry of Labour.</mixed-citation>
</ref>
<ref id="pone.0109692-Choo1"><label>4</label>
<mixed-citation publication-type="other">Choo HK (2014) Virtual Reality-based Training System for Metal Active Gas Welding. Department of Mechanical Engineering: University of Malaya, Malaysia.</mixed-citation>
</ref>
<ref id="pone.0109692-Burdea1"><label>5</label>
<mixed-citation publication-type="journal"><name><surname>Burdea</surname>
<given-names>GC</given-names>
</name>
(<year>1999</year>
) <article-title>Invited review: The synergy between virtual reality and robotics</article-title>
. <source>IEEE Transactions on Robotics and Automation</source>
<volume>15</volume>
: <fpage>400</fpage>
–<lpage>410</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Jahangirian1"><label>6</label>
<mixed-citation publication-type="journal"><name><surname>Jahangirian</surname>
<given-names>M</given-names>
</name>
, <name><surname>Eldabi</surname>
<given-names>T</given-names>
</name>
, <name><surname>Naseer</surname>
<given-names>A</given-names>
</name>
, <name><surname>Stergioulas</surname>
<given-names>LK</given-names>
</name>
, <name><surname>Young</surname>
<given-names>T</given-names>
</name>
(<year>2010</year>
) <article-title>Simulation in manufacturing and business: A review</article-title>
. <source>European Journal of Operational Research</source>
<volume>203</volume>
: <fpage>1</fpage>
–<lpage>13</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Li1"><label>7</label>
<mixed-citation publication-type="other">Li E, Du TC (2005) Advances in electronic business, volume I Idea Group Publishing.</mixed-citation>
</ref>
<ref id="pone.0109692-Klingstam1"><label>8</label>
<mixed-citation publication-type="journal"><name><surname>Klingstam</surname>
<given-names>P</given-names>
</name>
, <name><surname>Gullander</surname>
<given-names>P</given-names>
</name>
(<year>1999</year>
) <article-title>Overview of simulation tools for computer-aided production engineering Computers in Industry</article-title>
. <volume>38</volume>
: <fpage>173</fpage>
–<lpage>186</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Neto1"><label>9</label>
<mixed-citation publication-type="book">Neto P, Pires JN, Moreira AP (2010) Robot path simulation: a low cost solution based on CAD; Singapore. pp.333–338.</mixed-citation>
</ref>
<ref id="pone.0109692-Staranowicz1"><label>10</label>
<mixed-citation publication-type="other">Staranowicz A, Mariottini GL (2011) A survey and comparison of commercial and open-source robotic simulator software; Greece.</mixed-citation>
</ref>
<ref id="pone.0109692-Radhakrishnan1"><label>11</label>
<mixed-citation publication-type="book">Radhakrishnan R, Balasubramanian S (2008) Business process re-engineering: text and cases. New Delhi: Prentice-Hall of India.</mixed-citation>
</ref>
<ref id="pone.0109692-Lawrence1"><label>12</label>
<mixed-citation publication-type="other">Lawrence Associates (1994) Technical Report. Virtual Manufacturing User Workshop.</mixed-citation>
</ref>
<ref id="pone.0109692-Kim1"><label>13</label>
<mixed-citation publication-type="journal"><name><surname>Kim</surname>
<given-names>SC</given-names>
</name>
, <name><surname>Choi</surname>
<given-names>KH</given-names>
</name>
(<year>2000</year>
) <article-title>Development of Flexible Manufacturing System using Virtual Manufacturing Paradigm</article-title>
. <source>International Journal of the Korean Society of Precision Engineering</source>
<volume>1</volume>
: <fpage>84</fpage>
–<lpage>90</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Mujber1"><label>14</label>
<mixed-citation publication-type="journal"><name><surname>Mujber</surname>
<given-names>TS</given-names>
</name>
, <name><surname>Szecsi</surname>
<given-names>T</given-names>
</name>
, <name><surname>Hashmi</surname>
<given-names>MSJ</given-names>
</name>
(<year>2004</year>
) <article-title>Virtual reality applications in manufacturing process simulation</article-title>
. <source>Journal of Materials Processing Technology</source>
<volume>155–156</volume>
: <fpage>1834</fpage>
–<lpage>1838</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Raneda1"><label>15</label>
<mixed-citation publication-type="journal"><name><surname>Raneda</surname>
<given-names>A</given-names>
</name>
, <name><surname>Pessi</surname>
<given-names>P</given-names>
</name>
, <name><surname>Siuko</surname>
<given-names>M</given-names>
</name>
, <name><surname>Handroos</surname>
<given-names>H</given-names>
</name>
, <name><surname>Palmer</surname>
<given-names>J</given-names>
</name>
, <etal>et al</etal>
. (<year>2003</year>
) <article-title>Utilization of virtual prototyping in development of CMM</article-title>
. <source>Fusion Engineering and Design</source>
<volume>69</volume>
: <fpage>183</fpage>
–<lpage>186</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Gkdere1"><label>16</label>
<mixed-citation publication-type="journal"><name><surname>Gökdere</surname>
<given-names>LU</given-names>
</name>
, <name><surname>Benlyazid</surname>
<given-names>K</given-names>
</name>
, <name><surname>Dougal</surname>
<given-names>RA</given-names>
</name>
, <name><surname>Santi</surname>
<given-names>E</given-names>
</name>
, <name><surname>Brice</surname>
<given-names>CW</given-names>
</name>
(<year>2002</year>
) <article-title>A virtual prototype for a hybrid electric vehicle</article-title>
. <source>Mechatronics</source>
<volume>12</volume>
: <fpage>575</fpage>
–<lpage>593</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Guerra1"><label>17</label>
<mixed-citation publication-type="other">Guerra D, Ramírez R, Donato L, Molina A (2006) Digital Manufacturing for Aerospace industry: Experimental Aircraft; Mexico.</mixed-citation>
</ref>
<ref id="pone.0109692-Lee1"><label>18</label>
<mixed-citation publication-type="journal"><name><surname>Lee</surname>
<given-names>WB</given-names>
</name>
, <name><surname>Cheung</surname>
<given-names>CF</given-names>
</name>
, <name><surname>Li</surname>
<given-names>JG</given-names>
</name>
(<year>2001</year>
) <article-title>Applications of virtual manufacturing in materials processing</article-title>
. <source>Journal of Materials Processing Technology</source>
<volume>113</volume>
: <fpage>416</fpage>
–<lpage>423</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Iqbal1"><label>19</label>
<mixed-citation publication-type="book">Iqbal M, Hashmi MSJ (1999) Application of virtual reality for the training of engineering personnel; Dublin, Ireland. pp.1959–1966.</mixed-citation>
</ref>
<ref id="pone.0109692-Crison1"><label>20</label>
<mixed-citation publication-type="book">Crison F, Lécuyer A, d'Huart DM, Burkhardt J-M, Michel G, <etal>et al</etal>
Virtual technical trainer: learning how to use milling machines with multi-sensory feedback in virtual reality; 2005; Bonn, Germany. pp.139–145.</mixed-citation>
</ref>
<ref id="pone.0109692-Zhu1"><label>21</label>
<mixed-citation publication-type="book">Zhu L, Wang J, Chen E, Yang J, Wang W (2008) Applications of virtual reality in turn-milling centre; Qingdao, China. pp.2302–2305.</mixed-citation>
</ref>
<ref id="pone.0109692-Wang1"><label>22</label>
<mixed-citation publication-type="journal"><name><surname>Wang</surname>
<given-names>QH</given-names>
</name>
, <name><surname>Li</surname>
<given-names>JR</given-names>
</name>
(<year>2004</year>
) <article-title>A desktop VR prototype for industrial training applications</article-title>
. <source>Virtual Reality</source>
<volume>7</volume>
: <fpage>187</fpage>
–<lpage>197</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Kadir1"><label>23</label>
<mixed-citation publication-type="journal"><name><surname>Kadir</surname>
<given-names>AA</given-names>
</name>
, <name><surname>Xu</surname>
<given-names>X</given-names>
</name>
, <name><surname>Hämmerle</surname>
<given-names>E</given-names>
</name>
(<year>2011</year>
) <article-title>Virtual machine tools and virtual machining-A technological review</article-title>
. <source>Robotics and Computer-Integrated Manufacturing</source>
<volume>27</volume>
: <fpage>494</fpage>
–<lpage>508</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Lee2"><label>24</label>
<mixed-citation publication-type="journal"><name><surname>Lee</surname>
<given-names>WB</given-names>
</name>
, <name><surname>Li</surname>
<given-names>JG</given-names>
</name>
, <name><surname>Cheung</surname>
<given-names>CF</given-names>
</name>
(<year>2002</year>
) <article-title>Development of a virtual training workshop in ultra-precision machining</article-title>
. <source>International Journal of Engineering Education</source>
<volume>18</volume>
: <fpage>584</fpage>
–<lpage>596</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Mitsi1"><label>25</label>
<mixed-citation publication-type="journal"><name><surname>Mitsi</surname>
<given-names>S</given-names>
</name>
, <name><surname>Bouzakis</surname>
<given-names>K-D</given-names>
</name>
, <name><surname>Mansour</surname>
<given-names>G</given-names>
</name>
, <name><surname>Sagris</surname>
<given-names>D</given-names>
</name>
, <name><surname>Maliaris</surname>
<given-names>G</given-names>
</name>
(<year>2005</year>
) <article-title>Off-line programming of an industrial robot for manufacturing</article-title>
. <source>International Journal of Advanced Manufacturing Technology</source>
<volume>26</volume>
: <fpage>262</fpage>
–<lpage>267</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Fauadi1"><label>26</label>
<mixed-citation publication-type="other">Fauadi HF, Jumali MS (2008) Modeling and simulation of programmable universal machine for assembly (PUMA) industrial robot for automotive-related assembly process; Kuala Lumpur.</mixed-citation>
</ref>
<ref id="pone.0109692-Kumar1"><label>27</label>
<mixed-citation publication-type="journal"><name><surname>Kumar</surname>
<given-names>R</given-names>
</name>
, <name><surname>Kalra</surname>
<given-names>P</given-names>
</name>
, <name><surname>Prakash</surname>
<given-names>NR</given-names>
</name>
(<year>2011</year>
) <article-title>Virtual RV-M1 robot system</article-title>
. <source>Robotics and Computer-Integrated Manufacturing</source>
<volume>27</volume>
: <fpage>994</fpage>
–<lpage>1000</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Yap1"><label>28</label>
<mixed-citation publication-type="journal"><name><surname>Yap</surname>
<given-names>HJ</given-names>
</name>
, <name><surname>Taha</surname>
<given-names>Z</given-names>
</name>
, <name><surname>Lee</surname>
<given-names>JV</given-names>
</name>
(<year>2008</year>
) <article-title>VR-based Robot Programming and Simulation System for an Industrial Robot</article-title>
. <source>International Journal of Industrial Engineering – Theory, Application and Practice</source>
<volume>15</volume>
: <fpage>314</fpage>
–<lpage>322</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Xu1"><label>29</label>
<mixed-citation publication-type="other">Xu ZJ, Zhao ZX, Wu MH, Liao JB, Tian GY (1997) Virtual reality based robot graphic simulation and virtual manufacturing system; Manchester.</mixed-citation>
</ref>
<ref id="pone.0109692-Santis1"><label>30</label>
<mixed-citation publication-type="book">Santis AD, Siciliano B (2008) Safety issues for human-robot cooperation in manufacturing systems; Napoli, Italy. pp.1–12.</mixed-citation>
</ref>
<ref id="pone.0109692-Or1"><label>31</label>
<mixed-citation publication-type="journal"><name><surname>Or</surname>
<given-names>CKL</given-names>
</name>
, <name><surname>Duffy</surname>
<given-names>VG</given-names>
</name>
, <name><surname>Cheung</surname>
<given-names>CC</given-names>
</name>
(<year>2009</year>
) <article-title>Perception of safe robot idle time in virtual reality and real industrial environments</article-title>
. <source>International Journal of Industrial Ergonomics</source>
<volume>39</volume>
: <fpage>807</fpage>
–<lpage>812</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Whyte1"><label>32</label>
<mixed-citation publication-type="journal"><name><surname>Whyte</surname>
<given-names>J</given-names>
</name>
, <name><surname>Bouchlaghem</surname>
<given-names>N</given-names>
</name>
, <name><surname>Thorpe</surname>
<given-names>A</given-names>
</name>
, <name><surname>McCaffer</surname>
<given-names>R</given-names>
</name>
(<year>2000</year>
) <article-title>From CAD to virtual reality: modelling approaches, data exchange and interactive 3D building design tools</article-title>
. <source>Automation in Construction</source>
<volume>10</volume>
: <fpage>43</fpage>
–<lpage>55</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Yap2"><label>33</label>
<mixed-citation publication-type="journal"><name><surname>Yap</surname>
<given-names>HJ</given-names>
</name>
, <name><surname>Taha</surname>
<given-names>Z</given-names>
</name>
, <name><surname>Dawal</surname>
<given-names>SZ</given-names>
</name>
(<year>2012</year>
) <article-title>A Generic Approach of Integrating 3D Models into Virtual Manufacturing</article-title>
. <source>Journal of Zhejiang University-SCIENCE C (Computers & Electronics)</source>
<volume>13</volume>
: <fpage>20</fpage>
–<lpage>28</lpage>
</mixed-citation>
</ref>
<ref id="pone.0109692-Malaysian1"><label>34</label>
<mixed-citation publication-type="other">Malaysian Anthropometry (2008) Anthropometric data for the Malaysian adult population. Unpublished data, Centre for Product Design & Manufacture, University of Malaya, Kuala Lumpur.</mixed-citation>
</ref>
<ref id="pone.0109692-Taha1"><label>35</label>
<mixed-citation publication-type="journal"><name><surname>Taha</surname>
<given-names>Z</given-names>
</name>
, <name><surname>Soewardi</surname>
<given-names>H</given-names>
</name>
, <name><surname>Dawal</surname>
<given-names>SZM</given-names>
</name>
(<year>2014</year>
) <article-title>Axiomatic design principles in analysing the ergonomics design parameter of a virtual environment</article-title>
. <source>International Journal of Industrial Ergonomics</source>
<volume>44</volume>
: <fpage>368</fpage>
–<lpage>373</lpage>
</mixed-citation>
</ref>
</ref-list>
</back>
</pmc>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/HapticV1/Data/Pmc/Curation
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 002371 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd -nk 002371 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Ticri/CIDE |area= HapticV1 |flux= Pmc |étape= Curation |type= RBID |clé= PMC:4215904 |texte= Virtual Reality Based Support System for Layout Planning and Programming of an Industrial Robotic Work Cell }}
Pour générer des pages wiki
HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Curation/RBID.i -Sk "pubmed:25360663" \ | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Curation/biblio.hfd \ | NlmPubMed2Wicri -a HapticV1
![]() | This area was generated with Dilib version V0.6.23. | ![]() |