SlideShare a Scribd company logo
International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056
Volume: 03 Issue: 07 | July-2016 www.irjet.net p-ISSN: 2395-0072
© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 921
OROCOS- Easy way to Develop Open Source Robot Control Application
Tarlika Machhi1, Naveen Rastogi2, Pramit Dutta2,Prerna Paliwal3
1Student, M.Tech (VLSI & Embedded Systems) U.V.Patel Collage of Enginerring, Mehsana, Gujarat, India
2Engineer SC, Institute for Plasma Research, Bhat, Gandhinagar, Gujarat, India
3Technical Associate, Device Driver, eiTRA, Ahmedabad, Gujarat, India
---------------------------------------------------------------------***---------------------------------------------------------------------
Abstract -Industrial robotics and automation systems
should be developed in such a way that they can be used for
multiple purpose. Controlling of these robots and machines
required to be done in real time. These type of control systems
are combination of both hardware and software. Controlling
software plays an important role in controlling hardware.Itis
required to develop an application which can fulfil user
requirements like real time controlling, flexibility, reusability,
maintainability, lower cost etc. The concept of middleware
plays very strong role in the entire software development. It is
required to choose an appropriate software platform or
framework for developing application which can fulfill major
of requirements of robotics. Using Open Robot Control
Software (OROCOS) toolchain, we can develop architecture
independent hard real time application for robotandmachine
control by implementing kinematic model. The OROCOS
platform allows applications to be built as highly configurable
and interactive component-based real-time control
applications. The Real-Time toolkit (RTT) allows components
to run on (real-time) operating systems and offers real-time
scripting capabilities. So OROCOS play major role in
developing controlling application for robots and machines.
KeyWords: Component,Deployer,FSM,KDL,OROCOSOCL,
RTT
1. INTRODUCTION
This paper is aimed to be a guiding paper on Orocos
overview and Orocos application creation. Open Robot
Control Software provides open source, platform
independent, architecture independent hard real time
component based framework for application development
for robot and machine control. It provides four libraries
which includes major of the functionalities for making a
complete real time robot controlling application.AnOROCOS
component is a basic unit that executes one or more tasks,
which are determined by its activity. Those tasks are
functions in the C or C++ language or, a script in its own
language called Orocos Programming Script (.ops) or a
hierarchical state machine file (.osd). [5]Section II describes
the basics of OROCOS toolchain libraries and theoverviewof
Orocos Component .It includes basic component
functionalities and states. Section III describes the
Application development by creating component for TCP
Client and deploying them into our application. Section IV
includes the results for application and Section V concludes
the paper.
2. OROCOS TOOLCHAIN OVERVIEW
2.1 OROCOS LIBRARIES
The Real-Time Toolkit (RTT) library: allows application
designers to build highly configurable and interactive
component-based real-timecontrolapplications.Component
framework is provided as TaskContext Class.
The Orocos Components Library (OCL): provides some
components models for general purpose. Deployer
component is used to load our components in application.
TaskBrowser provides console window togivecommandsto
the component.
Fig -1: OROCOS Libraries[5]
The Orocos Kinematics and Dynamics Library (KDL):
allows for the calculation of kinematic chains in real-time.
Robotic hardware is described and implemented as KDL
Chain and it provides kinematic and dynamic solvers, and
inbuilt functions related to kinematics and dynamics.
The Orocos Bayesian Filtering Library (BFL): an
independent framework for inference in Dynamic Bayesian
Network.
[5]
International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056
Volume: 03 Issue: 07 | July-2016 www.irjet.net p-ISSN: 2395-0072
© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 922
2.2 OROCOS COMPONENT HOOKS
Orocos applications are developed by composing software
components. Software components can be from OCL library
and also can be implemented by own using Orocos Real-
Time Toolkit. Components are implemented by using Task
Context class. It defines component interface, properties,
attributes, operations, services, its peer components .It uses
its Execution Engine for executing its programs and
processing asynchronous messages. Component can be
started only after getting configure call executed
successfully. A function called as user 'hook' is available for
each API function as shown in Fig-2.
Fig -2: OROCOS Component States & Hooks[3]
configureHook () is for reading xml file and printingstatus
messages. Functions forcomponent configuration arecalled
in this hook function.
startHook () starts the component.
updateHook (): Functions for doingwork while component
is in running state are called in this hook. Component is
continuously updating after specific defined period. Period
can be set using setPeriod(), by default it is zero.
stopHook (): Component can be stop manually or
automatically by calling stop()
cleanupHook ():Write xml ,free resource. After completing
the process cleanup is done by this hook and component
returns into preoperational state.[3]
2.3 Component States
Orocos component has specific states.
Init: A component is in the Init state during its creation.
PreOperatinal: After instance of component is created,
component enters the PreOperational or Stopped (default)
state.
Stopped: after configuration component goes into stopped
state. It is default state of component when it is loaded.
Running: After starting component by start (), it goes in
running state and continuously runs updateHook ().
Here, tasks performed by component is started by object of
class Activity. Activity class takes parameters like Period
which shows execution timefor periodic tasks. UpdateHook
gets executed periodically by this period. Priorityparameter
is used to set Priority when multiple activities needs to be
executed in single application. Schedulerparametersdecides
scheduling algorithm in which activities gets scheduled. It
takes two value either ORO_SCHED_RT which is used for a
real time scheduler or ORO_SCHED_OTHER,whichisusedfor
non-real time scheduler.[3][4][5]
3. APPLICATION DEVELOPMENT
3.1 Component Creation
Component package can be created by using command
orocreate-pkg component/package name, which will
create a complete component package. After that using
cmake, itis built and then using make installwe can compile
the component package and install its library file (.so) in
specific directory by assigning directory path to cmake flag
DCMAKE_INSTALL_PREFIX. By exporting this path as
RTT_COMPONENT_PATH, we can make these component
libraries available in our environment for importing themin
our application. When the component is build and install,
shared object (.so) library is created, which can be used by
Deployer Component.[3]
3.2 Component Deployment
Deployer component from OCL Library is used for running
Orocos Application, which uses TaskBrowser Component
which provides browser or terminal likewindows forgiving
data and command to the Deployer and components. Here
using the Deployer the Component are imported form the
folder and instance of that component is created. Using the
basic ops commands component is configured, started and
stopped.
4. RESULTS AND DISCUSSION
Here for basic component creation, component named TCP
client is created using Orocos toolchain for controlling
purpose over distributed network. This component acts as
client, which will provides angle data to the remote server.
Remote server receives data and control the hardware
accordingly. TransmissionControl Protocol (TCP)isusedfor
data transfer over network. TCP server is created on
raspbian Operating system, installed on Raspberry Pi 2
Model B, whichisconnected to the servomotor oftherobotic
arm.
Import commandwill import the componentpackagelibrary
folders in Deployer. By using loadComponent specific
instance of the component named c of component type TCP
Client is created asa peer of deployment component.Thenin
PreOperational mode configuration of the component is
done. Then when we start the component, update hook is
International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056
Volume: 03 Issue: 07 | July-2016 www.irjet.net p-ISSN: 2395-0072
© 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 923
executed periodically. Wecan set the period manuallyinour
application.
Fig- 3 Orocos Component Deployment
Also we can stop the component. Here componentstateisset
to PreOperational so that it is in unconfigured statesobefore
starting it we need to configure it first. In configuration,
connection related functionalities are added here.
Fig-4 Period Execution of Orocos Component
If sever is running and connection gets success then
configuration gets succeeds otherwise fails.
It sends angle by incrementing it by 5 periodically. Period is
set to 3 second by using setPeriod(3).
Fig- 5 Server Execution
Server takes angle from TCPClient and use is for controlling
servomotor attached to its GPIO pin. Servo moves 5 degree
at every 3 second as period is set at TCP Client. After
stopping the Deployer, Component cleanup is done
automatically by Deployer and then space allocated by
Deployer is freed.
5. CONCLUSION
Using OROCOSToolchain libraries, itis easier todevelopreal
time controlling application for robotic hardware.
Reusability of components provides great benefits for
application developer as once library for specificcomponent
is created user can import it and then configure it according
to its requirements without changing code and compiling
them again. For applications which needs to perform tasks
periodically, RTT has provides great functionality of getting
component task execution periodically and changing period
at run time. By developing control application using
OROCOS, it saves time period for changing code and
recompiling it again and again by providing reusability of
components
REFERENCES
[1] Darlan Ioris, Walter Fetter Lages, Diego Caberlon
Santini, “Integrating the OROCOS framework and the
barrett wam robot”, 5th Workshop in applied robotics
and automation, RobotControl 2012, UFRGS, Porto
Alegre, Brazil, (2012), Source: www.ece.ufrgs.br
[2] Hurwitz, J. Open Robot Control Software: the OROCOS
project. Proceedings of the 2001 IEEE International
Conference on Robotics & Automation, Seoul, Korea.
[3] Component Building, “Orocos-component-
manual”,from people.mech.kuleuven.be
[4] Orocos Component Library, “Orocos-ocl-intro”, from
people.mech.kuleuven.be
[5] Orocoas Orocos Installation, “Orocos-user-manual”,
frompeople.mech.kuleuven.be
[6] OROCOS,”OpenRobot Control Software”,
www.orocos.org

More Related Content

Viewers also liked

The War of the Worlds 3D
The War of the Worlds 3DThe War of the Worlds 3D
The War of the Worlds 3D
ms emporda
 
Approaching God as Our Father 05.01.16
Approaching God as Our Father 05.01.16Approaching God as Our Father 05.01.16
Approaching God as Our Father 05.01.16
Mt. Pleasant United Methodist Church
 
Nae corporate presentation
Nae corporate presentationNae corporate presentation
Nae corporate presentationRui Franco
 
Finnish technology industry in statiscs, November 2015
Finnish technology industry in statiscs, November 2015Finnish technology industry in statiscs, November 2015
Finnish technology industry in statiscs, November 2015
TechFinland
 
Скидки и акции в магазине Магнит с 9 по 22 сентября 2015г.
Скидки и акции в магазине Магнит с 9 по 22 сентября 2015г.Скидки и акции в магазине Магнит с 9 по 22 сентября 2015г.
Скидки и акции в магазине Магнит с 9 по 22 сентября 2015г.
Михаил Бычков
 
LSE: a history in pictures
LSE: a history in picturesLSE: a history in pictures
LSE: a history in pictures
AnnaTowlson
 
makalah probiotik
makalah probiotikmakalah probiotik
makalah probiotik
say ahmad
 
Amazon EC2 - Masterclass - Pop-up Loft Tel Aviv
Amazon EC2 - Masterclass - Pop-up Loft Tel AvivAmazon EC2 - Masterclass - Pop-up Loft Tel Aviv
Amazon EC2 - Masterclass - Pop-up Loft Tel Aviv
Amazon Web Services
 
Скидки и акции в гипермаркетах Магнит С 21 октября по 03 ноября 2015г.
Скидки и акции в гипермаркетах Магнит С 21 октября по 03 ноября 2015г.Скидки и акции в гипермаркетах Магнит С 21 октября по 03 ноября 2015г.
Скидки и акции в гипермаркетах Магнит С 21 октября по 03 ноября 2015г.
Михаил Бычков
 
Storytelling to storydoing
Storytelling to storydoingStorytelling to storydoing
Storytelling to storydoing
Hussein M. Dajani hkdajani@gmail.com
 
How to Do a Performance Audit of Your .NET Website
How to Do a Performance Audit of Your .NET WebsiteHow to Do a Performance Audit of Your .NET Website
How to Do a Performance Audit of Your .NET Website
DNN
 
Tendances Social Media 2017
Tendances Social Media 2017Tendances Social Media 2017
Tendances Social Media 2017
Marie Dollé
 
ISSCR Human Egg for SC Research Guidelines
ISSCR Human Egg for SC Research GuidelinesISSCR Human Egg for SC Research Guidelines
ISSCR Human Egg for SC Research Guidelines
ms emporda
 
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
Alex Kosowski
 

Viewers also liked (17)

Verslag wielerseizoen 2012
Verslag wielerseizoen 2012Verslag wielerseizoen 2012
Verslag wielerseizoen 2012
 
The War of the Worlds 3D
The War of the Worlds 3DThe War of the Worlds 3D
The War of the Worlds 3D
 
Approaching God as Our Father 05.01.16
Approaching God as Our Father 05.01.16Approaching God as Our Father 05.01.16
Approaching God as Our Father 05.01.16
 
Nae corporate presentation
Nae corporate presentationNae corporate presentation
Nae corporate presentation
 
LEAFLET_HOTEL
LEAFLET_HOTELLEAFLET_HOTEL
LEAFLET_HOTEL
 
Finnish technology industry in statiscs, November 2015
Finnish technology industry in statiscs, November 2015Finnish technology industry in statiscs, November 2015
Finnish technology industry in statiscs, November 2015
 
Скидки и акции в магазине Магнит с 9 по 22 сентября 2015г.
Скидки и акции в магазине Магнит с 9 по 22 сентября 2015г.Скидки и акции в магазине Магнит с 9 по 22 сентября 2015г.
Скидки и акции в магазине Магнит с 9 по 22 сентября 2015г.
 
LSE: a history in pictures
LSE: a history in picturesLSE: a history in pictures
LSE: a history in pictures
 
makalah probiotik
makalah probiotikmakalah probiotik
makalah probiotik
 
Amazon EC2 - Masterclass - Pop-up Loft Tel Aviv
Amazon EC2 - Masterclass - Pop-up Loft Tel AvivAmazon EC2 - Masterclass - Pop-up Loft Tel Aviv
Amazon EC2 - Masterclass - Pop-up Loft Tel Aviv
 
Скидки и акции в гипермаркетах Магнит С 21 октября по 03 ноября 2015г.
Скидки и акции в гипермаркетах Магнит С 21 октября по 03 ноября 2015г.Скидки и акции в гипермаркетах Магнит С 21 октября по 03 ноября 2015г.
Скидки и акции в гипермаркетах Магнит С 21 октября по 03 ноября 2015г.
 
Storytelling to storydoing
Storytelling to storydoingStorytelling to storydoing
Storytelling to storydoing
 
How to Do a Performance Audit of Your .NET Website
How to Do a Performance Audit of Your .NET WebsiteHow to Do a Performance Audit of Your .NET Website
How to Do a Performance Audit of Your .NET Website
 
Physiography of Bangladesh
Physiography of BangladeshPhysiography of Bangladesh
Physiography of Bangladesh
 
Tendances Social Media 2017
Tendances Social Media 2017Tendances Social Media 2017
Tendances Social Media 2017
 
ISSCR Human Egg for SC Research Guidelines
ISSCR Human Egg for SC Research GuidelinesISSCR Human Egg for SC Research Guidelines
ISSCR Human Egg for SC Research Guidelines
 
Finally, EE Security API JSR 375
Finally, EE Security API JSR 375Finally, EE Security API JSR 375
Finally, EE Security API JSR 375
 

Similar to IRJET-V3I7169

Scale and Load Testing of Micro-Service
Scale and Load Testing of Micro-ServiceScale and Load Testing of Micro-Service
Scale and Load Testing of Micro-Service
IRJET Journal
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous Integration
IRJET Journal
 
4213ijsea06
4213ijsea064213ijsea06
4213ijsea06
ijseajournal
 
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
IJSEA
 
Components in real time systems
Components in real time systemsComponents in real time systems
Components in real time systemsSaransh Garg
 
vRO Training Document
vRO Training DocumentvRO Training Document
vRO Training Document
Mayank Goyal
 
A generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration systemA generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration system
Conference Papers
 
ReactCodemod: An automated approach for refactoring class based components to...
ReactCodemod: An automated approach for refactoring class based components to...ReactCodemod: An automated approach for refactoring class based components to...
ReactCodemod: An automated approach for refactoring class based components to...
IRJET Journal
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
Oracle Korea
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
DonghuKIM2
 
Developing microservices with Java and applying Spring security framework and...
Developing microservices with Java and applying Spring security framework and...Developing microservices with Java and applying Spring security framework and...
Developing microservices with Java and applying Spring security framework and...
IRJET Journal
 
Basic of oracle application Login steps
Basic of oracle application Login stepsBasic of oracle application Login steps
Basic of oracle application Login steps
Girishchandra Darvesh
 
RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1Serge Amougou
 
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
IRJET Journal
 
IRJET- Application Backup and Restore across Multiple Devices
IRJET-	 Application Backup and Restore across Multiple DevicesIRJET-	 Application Backup and Restore across Multiple Devices
IRJET- Application Backup and Restore across Multiple Devices
IRJET Journal
 
safety assurence in process control
safety assurence in process controlsafety assurence in process control
safety assurence in process control
Nathiya Vaithi
 
Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_expsurekhakadi
 

Similar to IRJET-V3I7169 (20)

Scale and Load Testing of Micro-Service
Scale and Load Testing of Micro-ServiceScale and Load Testing of Micro-Service
Scale and Load Testing of Micro-Service
 
PID2143641
PID2143641PID2143641
PID2143641
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous Integration
 
4213ijsea06
4213ijsea064213ijsea06
4213ijsea06
 
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
SIMULATION-BASED APPLICATION SOFTWARE DEVELOPMENT IN TIME-TRIGGERED COMMUNICA...
 
Components in real time systems
Components in real time systemsComponents in real time systems
Components in real time systems
 
vRO Training Document
vRO Training DocumentvRO Training Document
vRO Training Document
 
A generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration systemA generic log analyzer for auto recovery of container orchestration system
A generic log analyzer for auto recovery of container orchestration system
 
p850-ries
p850-riesp850-ries
p850-ries
 
ReactCodemod: An automated approach for refactoring class based components to...
ReactCodemod: An automated approach for refactoring class based components to...ReactCodemod: An automated approach for refactoring class based components to...
ReactCodemod: An automated approach for refactoring class based components to...
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
 
Developing microservices with Java and applying Spring security framework and...
Developing microservices with Java and applying Spring security framework and...Developing microservices with Java and applying Spring security framework and...
Developing microservices with Java and applying Spring security framework and...
 
Basic of Oracle Application
Basic of Oracle ApplicationBasic of Oracle Application
Basic of Oracle Application
 
Basic of oracle application Login steps
Basic of oracle application Login stepsBasic of oracle application Login steps
Basic of oracle application Login steps
 
RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1RTI-CODES+ISSS-2012-Submission-1
RTI-CODES+ISSS-2012-Submission-1
 
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
SIMULATION OF ROBOTIC ARM BY USING NI-LABVIEW FOR THE INDUSTRIAL APPLICATION ...
 
IRJET- Application Backup and Restore across Multiple Devices
IRJET-	 Application Backup and Restore across Multiple DevicesIRJET-	 Application Backup and Restore across Multiple Devices
IRJET- Application Backup and Restore across Multiple Devices
 
safety assurence in process control
safety assurence in process controlsafety assurence in process control
safety assurence in process control
 
Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_exp
 

IRJET-V3I7169

  • 1. International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056 Volume: 03 Issue: 07 | July-2016 www.irjet.net p-ISSN: 2395-0072 © 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 921 OROCOS- Easy way to Develop Open Source Robot Control Application Tarlika Machhi1, Naveen Rastogi2, Pramit Dutta2,Prerna Paliwal3 1Student, M.Tech (VLSI & Embedded Systems) U.V.Patel Collage of Enginerring, Mehsana, Gujarat, India 2Engineer SC, Institute for Plasma Research, Bhat, Gandhinagar, Gujarat, India 3Technical Associate, Device Driver, eiTRA, Ahmedabad, Gujarat, India ---------------------------------------------------------------------***--------------------------------------------------------------------- Abstract -Industrial robotics and automation systems should be developed in such a way that they can be used for multiple purpose. Controlling of these robots and machines required to be done in real time. These type of control systems are combination of both hardware and software. Controlling software plays an important role in controlling hardware.Itis required to develop an application which can fulfil user requirements like real time controlling, flexibility, reusability, maintainability, lower cost etc. The concept of middleware plays very strong role in the entire software development. It is required to choose an appropriate software platform or framework for developing application which can fulfill major of requirements of robotics. Using Open Robot Control Software (OROCOS) toolchain, we can develop architecture independent hard real time application for robotandmachine control by implementing kinematic model. The OROCOS platform allows applications to be built as highly configurable and interactive component-based real-time control applications. The Real-Time toolkit (RTT) allows components to run on (real-time) operating systems and offers real-time scripting capabilities. So OROCOS play major role in developing controlling application for robots and machines. KeyWords: Component,Deployer,FSM,KDL,OROCOSOCL, RTT 1. INTRODUCTION This paper is aimed to be a guiding paper on Orocos overview and Orocos application creation. Open Robot Control Software provides open source, platform independent, architecture independent hard real time component based framework for application development for robot and machine control. It provides four libraries which includes major of the functionalities for making a complete real time robot controlling application.AnOROCOS component is a basic unit that executes one or more tasks, which are determined by its activity. Those tasks are functions in the C or C++ language or, a script in its own language called Orocos Programming Script (.ops) or a hierarchical state machine file (.osd). [5]Section II describes the basics of OROCOS toolchain libraries and theoverviewof Orocos Component .It includes basic component functionalities and states. Section III describes the Application development by creating component for TCP Client and deploying them into our application. Section IV includes the results for application and Section V concludes the paper. 2. OROCOS TOOLCHAIN OVERVIEW 2.1 OROCOS LIBRARIES The Real-Time Toolkit (RTT) library: allows application designers to build highly configurable and interactive component-based real-timecontrolapplications.Component framework is provided as TaskContext Class. The Orocos Components Library (OCL): provides some components models for general purpose. Deployer component is used to load our components in application. TaskBrowser provides console window togivecommandsto the component. Fig -1: OROCOS Libraries[5] The Orocos Kinematics and Dynamics Library (KDL): allows for the calculation of kinematic chains in real-time. Robotic hardware is described and implemented as KDL Chain and it provides kinematic and dynamic solvers, and inbuilt functions related to kinematics and dynamics. The Orocos Bayesian Filtering Library (BFL): an independent framework for inference in Dynamic Bayesian Network. [5]
  • 2. International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056 Volume: 03 Issue: 07 | July-2016 www.irjet.net p-ISSN: 2395-0072 © 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 922 2.2 OROCOS COMPONENT HOOKS Orocos applications are developed by composing software components. Software components can be from OCL library and also can be implemented by own using Orocos Real- Time Toolkit. Components are implemented by using Task Context class. It defines component interface, properties, attributes, operations, services, its peer components .It uses its Execution Engine for executing its programs and processing asynchronous messages. Component can be started only after getting configure call executed successfully. A function called as user 'hook' is available for each API function as shown in Fig-2. Fig -2: OROCOS Component States & Hooks[3] configureHook () is for reading xml file and printingstatus messages. Functions forcomponent configuration arecalled in this hook function. startHook () starts the component. updateHook (): Functions for doingwork while component is in running state are called in this hook. Component is continuously updating after specific defined period. Period can be set using setPeriod(), by default it is zero. stopHook (): Component can be stop manually or automatically by calling stop() cleanupHook ():Write xml ,free resource. After completing the process cleanup is done by this hook and component returns into preoperational state.[3] 2.3 Component States Orocos component has specific states. Init: A component is in the Init state during its creation. PreOperatinal: After instance of component is created, component enters the PreOperational or Stopped (default) state. Stopped: after configuration component goes into stopped state. It is default state of component when it is loaded. Running: After starting component by start (), it goes in running state and continuously runs updateHook (). Here, tasks performed by component is started by object of class Activity. Activity class takes parameters like Period which shows execution timefor periodic tasks. UpdateHook gets executed periodically by this period. Priorityparameter is used to set Priority when multiple activities needs to be executed in single application. Schedulerparametersdecides scheduling algorithm in which activities gets scheduled. It takes two value either ORO_SCHED_RT which is used for a real time scheduler or ORO_SCHED_OTHER,whichisusedfor non-real time scheduler.[3][4][5] 3. APPLICATION DEVELOPMENT 3.1 Component Creation Component package can be created by using command orocreate-pkg component/package name, which will create a complete component package. After that using cmake, itis built and then using make installwe can compile the component package and install its library file (.so) in specific directory by assigning directory path to cmake flag DCMAKE_INSTALL_PREFIX. By exporting this path as RTT_COMPONENT_PATH, we can make these component libraries available in our environment for importing themin our application. When the component is build and install, shared object (.so) library is created, which can be used by Deployer Component.[3] 3.2 Component Deployment Deployer component from OCL Library is used for running Orocos Application, which uses TaskBrowser Component which provides browser or terminal likewindows forgiving data and command to the Deployer and components. Here using the Deployer the Component are imported form the folder and instance of that component is created. Using the basic ops commands component is configured, started and stopped. 4. RESULTS AND DISCUSSION Here for basic component creation, component named TCP client is created using Orocos toolchain for controlling purpose over distributed network. This component acts as client, which will provides angle data to the remote server. Remote server receives data and control the hardware accordingly. TransmissionControl Protocol (TCP)isusedfor data transfer over network. TCP server is created on raspbian Operating system, installed on Raspberry Pi 2 Model B, whichisconnected to the servomotor oftherobotic arm. Import commandwill import the componentpackagelibrary folders in Deployer. By using loadComponent specific instance of the component named c of component type TCP Client is created asa peer of deployment component.Thenin PreOperational mode configuration of the component is done. Then when we start the component, update hook is
  • 3. International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395 -0056 Volume: 03 Issue: 07 | July-2016 www.irjet.net p-ISSN: 2395-0072 © 2016, IRJET | Impact Factor value: 4.45 | ISO 9001:2008 Certified Journal | Page 923 executed periodically. Wecan set the period manuallyinour application. Fig- 3 Orocos Component Deployment Also we can stop the component. Here componentstateisset to PreOperational so that it is in unconfigured statesobefore starting it we need to configure it first. In configuration, connection related functionalities are added here. Fig-4 Period Execution of Orocos Component If sever is running and connection gets success then configuration gets succeeds otherwise fails. It sends angle by incrementing it by 5 periodically. Period is set to 3 second by using setPeriod(3). Fig- 5 Server Execution Server takes angle from TCPClient and use is for controlling servomotor attached to its GPIO pin. Servo moves 5 degree at every 3 second as period is set at TCP Client. After stopping the Deployer, Component cleanup is done automatically by Deployer and then space allocated by Deployer is freed. 5. CONCLUSION Using OROCOSToolchain libraries, itis easier todevelopreal time controlling application for robotic hardware. Reusability of components provides great benefits for application developer as once library for specificcomponent is created user can import it and then configure it according to its requirements without changing code and compiling them again. For applications which needs to perform tasks periodically, RTT has provides great functionality of getting component task execution periodically and changing period at run time. By developing control application using OROCOS, it saves time period for changing code and recompiling it again and again by providing reusability of components REFERENCES [1] Darlan Ioris, Walter Fetter Lages, Diego Caberlon Santini, “Integrating the OROCOS framework and the barrett wam robot”, 5th Workshop in applied robotics and automation, RobotControl 2012, UFRGS, Porto Alegre, Brazil, (2012), Source: www.ece.ufrgs.br [2] Hurwitz, J. Open Robot Control Software: the OROCOS project. Proceedings of the 2001 IEEE International Conference on Robotics & Automation, Seoul, Korea. [3] Component Building, “Orocos-component- manual”,from people.mech.kuleuven.be [4] Orocos Component Library, “Orocos-ocl-intro”, from people.mech.kuleuven.be [5] Orocoas Orocos Installation, “Orocos-user-manual”, frompeople.mech.kuleuven.be [6] OROCOS,”OpenRobot Control Software”, www.orocos.org