diff --git a/Bibliography.bib b/Bibliography.bib index 4db601716d9c47397297a3997c2531e508988bb5..a71829b32ffe34dfd85a20331dbaf8ec729cfe66 100644 --- a/Bibliography.bib +++ b/Bibliography.bib @@ -1,173 +1,178 @@ - @Book{1, - title={Robotics Modelling,Planning and Control Advanced Textbooks in Control And Signal Processing Book}, - author={Bruno Siciliano Lorenyo Sciavicco Luigi Villani Giuseppe Oriolo}, - volume={1}, - year={2009}, - publisher={Springer} + title={Robotics Modelling,Planning and Control Advanced Textbooks in Control And Signal Processing Book}, + author={Bruno Siciliano Lorenyo Sciavicco Luigi Villani Giuseppe Oriolo}, + volume={1}, + year={2009}, + publisher={Springer} } - - @Article{2, - author = {Oxford English Dictionary}, - title = {Definition Of Robots}, - date = {2016}, - publisher = {Oxford}, - location = {Oxford, United Kingdom}, - language = {english}, + author = {Oxford English Dictionary}, + title = {Definition Of Robots}, + date = {2016}, + publisher = {Oxford}, + location = {Oxford, United Kingdom}, + language = {english}, } @Article{3, - author = {Brewster Kahle, Bruce Gilliat}, - title = {Wayback Machine}, - date = {2017}, - maintitle = {Digital Archive}, - volume = {A}, - publisher = {Internet Archive}, - location = {San Fransisco, United States}, - language = {english}, + author = {Brewster Kahle, Bruce Gilliat}, + title = {Wayback Machine}, + date = {2017}, + maintitle = {Digital Archive}, + volume = {A}, + publisher = {Internet Archive}, + location = {San Fransisco, United States}, + language = {english}, } @Article{4, - title={Contact Systems Pick and Place Robots https://web.archive.org/web/20080914050602/http://www.contactsystems.com/c5_series.html}, - author={Bruno Siciliano Lorenyo Sciavicco Luigi Villani Giuseppe Oriolo}, - volume={1}, - year={2008}, - publisher={WayBack Machine} + title={Contact Systems Pick and Place Robots }, + author={Bruno Siciliano Lorenyo Sciavicco Luigi Villani Giuseppe Oriolo}, + volume={1}, + year={2008}, + publisher={WayBack Machine} } @Article{5, - title={Smart Caddy}, - author={Seegrid}, - volume={1}, - year={2011}, - publisher={Web Archive}, - title={"The Basics Of Automated Guided Vehicles"}, - author={Savant Automation}, - volume={1}, - year={2013}, - publisher={AGV Systems} + title={Smart Caddy}, + author={Seegrid}, + volume={1}, + year={2011}, + publisher={Web Archive}, + title={"The Basics Of Automated Guided Vehicles"}, + author={Savant Automation}, + volume={1}, + year={2013}, + publisher={AGV Systems} } @Article{6, - title={The Utilization Of Robotic Space Probes in Deep Space Missions:Case Study of AI Protocols and Nuclear Power Requirements}, - author={Proceedings of 2011 International Conference on Mechanical Engineering, Robotics and Aerospace}, - volume={1}, - year={2011}, - publisher={ICMERA}, - title={"Review: Space Probe Archived"}, - author={Jeff Foust}, - volume={1}, - year={2012}, - publisher={Wayback Machines} + title={"The Utilization Of Robotic Space Probes in Deep Space Missions:Case Study of AI Protocols and Nuclear Power Requirements"}, + author={Proceedings of 2011 International Conference on Mechanical Engineering, Robotics and Aerospace}, + volume={1}, + year={2011}, + publisher={ICMERA}, + title={"Review: Space Probe Archived"}, + author={Jeff Foust}, + volume={1}, + year={2012}, + publisher={Wayback Machines} } - @Article{7, - title={In the Lab:Robots That Slink and Squirm}, - author={John Schwartz}, - volume={1}, - year={2015}, - publisher={The New York Times}, - title={"Squishy Robots Now Have Squishy Computers To Control Them"}, - author={Kat Eschner}, - volume={1}, - year={2019}, - publisher={Popular Science}, - title={"The Softer Side Of Robotics"}, - author={hp}, - volume={1}, - year={2019}, - publisher={Hewlett Packard} -} -@Article{8, - title={An Overview Of Handy 1.A Rehabilitaton Robot For The Severely Disabled}, - author={Topping ,Mike;Smith,Jane}, - volume={1}, - year={1999}, - publisher={Center on Disabilities Conference Proceedings}, - title={"Welcome To The Ageing Future"}, - author={Jeavans,Christine}, - volume={1}, - year={2016}, - publisher={BBC News}, - title={Statistical Handbook Of Japan:Chapter 2 Population}, - author={Wayback Machines}, - volume={1}, - year={2013}, - publisher={Statistics Bureau & Statistical Research and Training Institute}, - title={"Robotic future of patient care"}, - author={E-Health Insider}, - volume={1}, - year={2007}, - publisher={Wayback Machine} -} -@Article{9, - title={Squishy Robots Now Have Squishy Computers To Control Them}, - author={Kat Eschner}, - volume={1}, - year={2019}, - publisher={Popular Science} -} -@Article{10, - title={Construction Robotics Industry Set To Double by 2023}, - author={Pollock,Emily}, - volume={1}, - year={2018}, - publisher={engineering.com} + title={"In the Lab:Robots That Slink and Squirm"}, + author={John Schwartz}, + volume={1}, + year={2015}, + publisher={The New York Times}, + title={"The Softer Side Of Robotics"}, + author={hp}, + volume={1}, + year={2019}, + publisher={Hewlett Packard} +} + +@Article{8,title={"Squishy Robots Now Have Squishy Computers To Control Them"}, + author={Kat Eschner}, + volume={1}, + year={2019}, + publisher={Popular Science} +} + +@Article{9,title={"Construction Robotics Industry Set To Double by 2023"}, + author={Pollock,Emily}, + volume={1}, + year={2018}, + publisher={engineering.com} +} + +@Article{10, + title={"An Overview Of Handy Rehabilitaton Robot For The Severely Disabled"}, + author={Topping ,Mike;Smith,Jane}, + volume={1}, + year={1999}, + publisher={Center on Disabilities Conference Proceedings}, + + title={"Welcome To The Ageing Future"}, + author={Jeavans,Christine}, + volume={1}, + year={2016}, + publisher={BBC News}, + + title={"Statistical Handbook Of Japan:Chapter 2 Population"}, + author={Wayback Machines}, + volume={1}, + year={2013}, + publisher={Statistics Bureau & Statistical Research and Training Institute}, + + title={"Robotic future of patient care"}, + author={E-Health Insider}, + volume={1}, + year={2007} } @Book{11, - title={Elements Of Robotics}, - author={Mordechai Ben-Ari,Francesco Mondada}, - volume={1}, - year={2017}, - publisher={Springer Open} + title={Elements Of Robotics}, + author={Mordechai Ben-Ari,Francesco Mondada}, + volume={1}, + year={2017}, + publisher={Springer Open} } @Article{12, - title={Evolution Of Robots Throughout History From Hephaestus To Da Vinci Robot}, - author={Christos Iavazzo Xanthi-Ekaterini D.Gkegke Paraskevi-Evangelia Iavazzo Ioannis D.Gkegkes}, - volume={1}, - year={2014}, - publisher={RAZVOJ ROBOTA KROZ POVIJEST DO DA VINCIJEVOG ROBOTA} + title={Evolution Of Robots Throughout History From Hephaestus To Da Vinci Robot}, + author={Christos Iavazzo Xanthi-Ekaterini D.Gkegke Paraskevi-Evangelia Iavazzo Ioannis D.Gkegkes}, + volume={1}, + year={2014}, + publisher={RAZVOJ ROBOTA KROZ POVIJEST DO DA VINCIJEVOG ROBOTA} } @Book{13, - title={Franka Panda User Guide}, - author={Franka Emika GmbH}, - volume={1}, - year={2018}, - publisher={Franka Emika GmbH} + title={Franka Panda User Guide}, + author={Franka Emika GmbH}, + volume={1}, + year={2018}, + publisher={Franka Emika GmbH} } @Article{14, - title={I,Cobot:Future collabration of man and machine}, - author={Thilo Stieber}, - volume={1}, - year={2015}, - publisher={The Manufacturer} + title={"I,Cobot:Future collabration of man and machine"}, + author={Thilo Stieber}, + volume={1}, + year={2015}, + publisher={The Manufacturer} } @Book{15, - title={Robot Intelligence Technology and Applications 3}, - author={Johg-Hwan Kim}, - volume={3}, - year={2015}, - publisher={Springer} + title={Robot Intelligence Technology and Applications 3}, + author={Johg-Hwan Kim}, + volume={3}, + year={2015}, + publisher={Springer} } - - @Article{16, - title={Safety Issues in Human-Robot Interactions}, - author={Milos Vasic1, Aude Billard}, - volume={1}, - year={2013}, - publisher={IEEE,ICRA}, - title={"Occupational Safety and Health Administration"}, - author={US Government}, - volume={1}, - year={2015}, - publisher={United States Department Of Labor} + title={Safety Issues in Human-Robot Interactions}, + author={Milos Vasic1, Aude Billard}, + volume={1}, + year={2013}, + publisher={IEEE,ICRA}, + title={"Occupational Safety and Health Administration"}, + author={US Government}, + volume={1}, + year={2015}, + publisher={United States Department Of Labor} } @Article{17, + title={Formalizing Class Diagram In UML}, + author={Alireza Souri,Mohammad ali Sharifloo,Monire Norouzi}, + volume={1}, + year={2007}, + publisher={University College Of Nabi Akram ,Tabriz Iran} + +} +@Article{18,title={Introduction To BPMN}, + author={Stephen A. White}, + volume={1}, + year={2007}, + publisher={IBM Corporation} + +} +@Article{19, title={On Making Robots Understand Safety:Embedding Injury Knowledge Into Control}, author={Sami Haddadin, Simon Haddadin,Augusto Khoury,Tim Khoury,Sven Parusel}, volume={1}, year={2007}, - publisher={IEEE,ICRA}, - + publisher={IEEE,ICRA} } - diff --git a/sections/back.tex b/sections/back.tex index 997443865cb6e3617e0a5574efdc73b1d9192265..421eb6b82c0f23352457513e440ac07a9ecf8337 100644 --- a/sections/back.tex +++ b/sections/back.tex @@ -2,11 +2,15 @@ \section{About Franka Panda Emika Robot} -In today's time Robotics is still a relatively modern research area .It is still developing and an interest of research.This is a costly device and can be accessed only to some people. Reasons being high costs, complex and difficult programming and most critical being able to separate humans and robots by safety fences or zones. Th perennial question remained that how can this complex technology be made available to a more general people and academicians.Franka Emika GmbH, the high-tech company from Munich, came ahead to address to this situation and provide a solution. Robot Panda is a sensitive and extremely versatile power tool at an affordable cost for research fraternity to study and experiment. It is also the first system of an entirely new generation of tools, which are developed with the following main objectives: first as a research robot, then as a co-worker in a factory and finally as an assistant in daily life for elderly or sick people helping them with a friendly appearance. \cite{13}. \\ +Robotics is a relatively new and evolved technical field. It is an evolved version of technical development of machines and software field which are both part of robotics. It won't be wrong to claim that robotics is epitome of technical development in machines. Nonetheless robotics is still a very expensive field of research. Robots have a high one time cost as well as very high operational, development and research costs and if in a broken down condition can become expensive to fix. It is still evolving and studied as a modern research area and it is continuously expanding and acting as a base to develop other technologies. Study of robotics is only available to a lucky few people and research is done every day to make it affordable and accessible to more general people. There are many industrial organizations dealing with robotics field and they are doing extensive research for it.\\ -The system is accessed and used using Apps like a smartphone and be taught new Tasks within only a several minutes, without requiring any major technical or programming know how. The system is so sensitive at same time upto a level that it can take over assembling, testing or inspecting tasks next to a human coworker without the need for a safety fence as it has all precautions and safety measures built inside.The online forum presents a platform called Franka World and this represents the center of this ecosystem, in which the community can interact, developers and clients can be assigned and new solutions and applications are provided.\\ +Franka Emika GmbH, a technologically sound company coming from Munich, Germany, has come ahead to address to this issue of high costs and to provide a solution by introducing an affordable and cheap robot known as robot Panda. This is a sensitive and multifaceted machine made available to research fraternity in universities and for students to learn and experiment with robots. Robot Panda is a part of structural ecosystem of new age robots which are cheap to buy ,program and function and are developed with the main objective as a research robotic machine made available to fiddle and learn by students in universities. Its second objective is to introduce its presence as a co-worker in a factory who work along with humans in a hybrid mode model and then thirdly as an friend and helping assistant in life for lonely seniors and sick people needing basic help and assistance. In addition it appears friendly to anyone who look at them\cite{13}.\\ -This is a system developed by a globally leading German robot technology company, and is now produced in series in Allgäu, Bavaria. Panda research has been providing use for the research community since August 2017 and later in 2018 it became ready for use in industry, and this is only the beginning of a new generation of universal tools. +There are various interfaces made available for robot Franka which help to manipulate it. In addition there is an ecosystem of repositories used to run and manipulate the robot. Nowadays even smartphone apps are developed to give idea of robotics to students. The robot is made with many features, notable being a learning capability, where in there is a learning mode which enables robot to learn a series of poses and grasp actions which can then be run and replicated. This is a feature used as a research subject. In addition there are many tools used to run the Franka ecosystem like Moveit / Rviz i.e. used for motion planning and the robot also uses Gazebo simulator.\\ + +Robot Panda is a very sensitive machine and this give it immense capability to do tasks few other machines can do. It has torque sensing framework which can help manipulate arm very precisely. Robot Panda is also a very safe robot machine and there are many safety features built inside it ,like stop button that can be used to shut down the robot. There is as well a research fraternity and many forums which can help educate and guide students and researchers working in the field of robotics. This as well help people to share knowledge and development with each other and develop more functionality allowing a greater experimentation with this machine.\\ + +There are many more robots developed but this thesis describes only about the robot Franka Panda Emika.Here is what robot Panda looks like. \begin{figure} \centering @@ -16,68 +20,125 @@ This is a system developed by a globally leading German robot technology company \end{figure} \newpage + \section{Franka Panda Emika - Features} -Few Important Features of Robot Franka Panda are - +Robot Franka Panda is a very capable and affordable robot and it comes with very advanced features which are also essential for its functioning and makes it capable subject for research in universities and these features are the same that provide it versatility to be known as a very stable robotic platform.\\ + +Few general features of robot Franka Panda are - \subsection{Sensitivity} -The Robot FEP Arm is embedded with real torque sensors in all joints which are in total seven. It let Robot Panda, among many things, a sensitivity to recognize and react to an even minute force acting on the arm and then to joints. This sensitive capability enables many functionalities , which are not possible with traditional industrial robots, These are impedance, guiding of the robot or collision detection. To achieve maximum sensitivity it is necessary to compensate additional forces acting on the robot (e.g. a mounted end effector). This is why the end effector to be used should be configured as precisely as possible. -\subsection{Impedance} -Impedance is that behavior of Robot Panda that imitates the ability of a mechanical spring. This capability can be used to interact gently with the environment, an instance that as not to damage any fragile object. The capability of changing impedance is akin to that of the human arm, which tenses the muscles in order to change rigidity and can adapt depending on the load and situation, in order to increase robustness when executing a task. + +Any robot first of all should have a characteristic of being sensitive. Sensitivity may have several meanings in robotic context. To begin with, robot must be sensitive for its surroundings. This would mean it must sense its surrounding using sensors to detect objects of different types and only act accordingly. A robot can also deploy and use a range of different sensors like light sensors in camera, pressure sensors in arms, chemical sensors to detect and measure for instance air quality, listening sensors to adjust speaking volume, radar for scanning surroundings in 3D for precision mappings, and many more as per the need of the job or features to be integrated.\\ + +Robot Franka Panda Emika is having an arm which is made up of seven joints and all have torque sensors and they all work in tandem with each other giving robot Panda great sensitivity. This allows robot Panda to detect any kind of forces acting on its arm upto the level that it can measure them and detect exact spots where and on which joint, how much torque is applied. This kind of capability is also built in many expensive robots but robot Panda has taken this to a whole new level and this makes it a great choice of machine for studies in university and research areas. + +\subsection{Movement} + +The main characteristic of any robot is movement and this means movement of its control surfaces like arm having moving joints which enable to move its arm in a desired way to accomplish a task, and this also means the capability of robot to move itself from one spot to another by its own self and also by any other means like using remote control or by moving on pre-programmed paths. Self driving cars which are being developed these days are based on robotic motion using programming and forms a big part of information technology industry.\\ + +If a robot arm cannot move it is not able to accomplish a task or if it cannot move itself in a continuous motion then it is not capable to be considered as a research interest. + +\subsection{Variable Resistance} + +Any robot must have the quality of physical resistance and ability to electronically measure it. It is this property of robot which enables the robotic components to electronically alter its control surfaces inside a range so that it can have a level of tolerance on control surfaces when depressed and when relaxed physically. This uses electric resistance on surfaces to detect forces on control surface which let the robot know its surface have come in contact with an obstacle or item and also measure electronically how much force is applied to it. This property has been developed to even measure how much of a control surface is depressed as it measures the movement of spring or a foam material in side the surface which may be used as appropriate material to buffer the surface. This maybe simply explained as an operation of a mechanical spring. This capability gives a touch of gentleness and awareness when interacting with the objects in environment. This is also similar to the human arm which tenses and relaxes the muscles to adapt performing any task like pushing, depending on the load and situation.\\ + \subsection{Collision Detection and Reaction} -Robot panda is incorporated with torque sensors in all seven joint axes. They provide information on the currently applied torques per axis at any given time. In combination with a custom model-based control, difference or deviation between the expected torque and the actual torque is identified and the Arm can respond to it. An example is, if a user comes inside the proximity of a motion path of the robotic arm while in motion, this action will be recognized in real-time by one or several of torque sensors in joints. Such a torque magnification is classified as a collision and can in many cases classified stop the robot’s movement. -\subsection{Generating Forces} -If the Robot Arm is in intended contact with its surroundings, sensor signals of the seven torque sensors can be used to generate a defined force on the point of contact. Impedance Collision detection and reaction Generating forces. + +A robot must have quality of anticipating collisions by detecting obstacles and identify them in its path. This is described as collision detection and the associated property is of avoidance. So once the path is detected and an obstacle identified in the path then it must be avoided. This can be achieved by stopping in a safe distance before the actual contact with the obstacle.\\ + +Another property is of reaction. This can be described as defining robotic reaction once an obstacle is detected in the path. This includes trajectory modification and alteration to find a new trajectory which maybe around the obstacle or a completely new one. Algorithms are used to achieve this property which are very complex in nature but appropriately modify the path of the robot.\\ + +There is another dimension present as well to identify with property of collision detection. The torque sensors present in Panda arm detect torque when then move against an obstacle and once past the defined safe limit, drive the robot to a complete emergency halt. + +\subsection{Energy Efficiency} + +Energy efficiency is a key feature which is marked by robot Franka Panda. This makes the robot energy efficient as it uses very minimal energy to complete any operation or task. This is achieved by variable generation of forces on control surfaces to check how much is enough instead of driving in raw forces which uses a lot of electricity. Thus this helps robot to be gentle in using energy. \section{Software Tools Robot Franka Uses} -The Panda research package allows for real-time, bidirectional connection between a workstation PC and the Arm. Even commanding the Robot Hand directly is possible. This so called interface (FCI) enables the users to execute so called specially created controllers and custom made applications with the robot. \footnote{https://moveit.ros.org/ , http://gazebosim.org/ , https://github.com/frankaemika/ , https://erdalpekel.de/?p=55}The package consists of libfranka, a C++ program library, and frankaros, an ROS interface with ROS Control and MoveIt integration. Gazebo was used which is a real life simulator used to run and check simulations of Robot Panda. - -\section{Coexistence With Humans And Meaning Of Cobots} -Cobots, or so called collaborative robots, are robots intended for direct human robot interaction inside a common space or area, or somewhere humans and robots are needed in close proximity. Cobotic applications differ from traditional industrial robotic applications in which robots are isolated from human contact. Cobotic safety relies in some cases on lightweight construction materials, curved edges and rounded points, and inherent limitation of speed and force, or on sensors and software that ensures safe behavior \cite{14}. -The International Federation of Robotics (IFR), a global industry association of robot manufacturers and national robot associations, has identified two types of robots – a.industrial robots used in automation (in an industrial setting) and b.domestic and professional usage by service robots. Service robots could be considered to be Cobots as they are intended to work alongside humans. Industrial robots have conventionally worked away and apart from humans and behind fences or other protective barriers, but Cobots remove that separation. -Cobots can have many uses, from information robots in public spaces (an example of service robots) , logistics robots that transport materials within a building , to industrial robots that help automate un-ergonomic tasks such as helping people moving heavy parts, or machine feeding or assembly operations. -The IFR defines four types of collaborative manufacturing applications. -\subsection{Co-existence} -Human and Cobots work alongside each other, but with no common work areas but only separately. -\subsection{Sequential Collaboration} -Human and Robot share all or some part of a common workspace but do not work on a modular part or of machine at the same time. -\subsection{Co-operation} -Robot and human work on the same part or machine at the same time, and both are in motion. -\subsection{Responsive Collaboration} -The robot responds in real-time to the worker’s motion. -In most industrial applications of Cobots today, the Cobot and human worker share the same space but complete tasks independently or sequentially (Co-existence or Sequential Collaboration.) Co-operation or Responsive Collaboration are presently less common. - -\section{Consequences Of Accidents / Malfunctions} - -Accidents in a Dense Human-Robot Co-existing Scenarios Vasic and etc. gave a detailed overview on safety issues in human-robot interactions \cite{15}. Starting to define about industry, the danger is when a human gets trapped between robot and an object (e.g. a wall) or when human collides with a robot causing injury. A detailed list of significant hazards and damages are including: Mechanical, Electrical, Thermal, Noise, Vibration, Radiation, Material/Substance, Ergonomic, the hazards associated with environment and combined hazards. The hazard should be analyzed and minimized from technical points of view, however, in the real applications, there are still unexpected errors and failures which can not be exactly predicted: -\subsection{Mechanics Failure} -Aging of motors, connectors causing malfunction or effects not desired. -\subsection{Electronics Failure} -Aging of components and insulation material, out of power, half and the way of operation.Can cause shocks. -\subsection{Program Failure} -Program bugs, untested scenarios and cases ,unintended actions. -\subsection{Operational Error} -Untrained Engineers, operators, and users - -While robot go out into the factory and to family or other social places, the above written traditional rules are not applicable. The situation is similar to that of computer going from military use to civil and then personal use. The difference is however the actuation, the capability of active physical motions brings more potential hazards. Moreover, when the robot enters an open environment where changes are imminent at anytime , there users are most often un-professional and un-experienced people. Animals (e.g. pets) can be living beings easily to come into close contact with the robot, which might even bring damage to robot. (e.g. a child might see a home service robot and pour water onto it just out of curiosity.) Due to these obstacles, the most sold service robot now is still household robots, which are small in size, carry out comparatively simple and fixed tasks. - -\section{Safe Robot Deployment Practices And Making Robots Safer } - -Collaborative robots are ready to take flight in the next few years, and this is imminent. With in built safety range limits, sensors and other safety functionality, “Cobots” offer exciting benefits — they’re able to work more closely with humans and also among them, they can be affordable and easier to integrate and maintain, and promise better cycle time and productivity \cite{16}.\\ - -This however doesn’t mean the organizations working towards to embrace this new technology can rest easy when it comes to health and safety. Crushing and impact hazards and dangers remain, requiring special safety measures and a greater emphasis on certain aspects of your health and safety program.\\ - -Most injuries and hazards do result from the use of robots at the workplace. Some robots, notably those in a traditional industrial environment, are brisk and powerful in their work. This increase the probability to cause injury to a human as one swing from a robotic arm, for example, could cause serious bodily harm needing serious medical attention and costs. Additional risks are present when a robot malfunctions or is in need of maintenance. A worker that is working on the robot may be injured because a malfunctioning robot is typically unpredictable and uncontrolled. For example, a robotic arm that is part of a supply chain for online delivery company may experience a jammed motor. A worker that is working to fix the jam may suddenly get hit by the arm the moment it becomes un-jammed. Additionally, if a worker is standing in a zone that is overlapping with nearby robotic arms, he or she may get injured by other moving equipment.\\ - -There are many types of accidents that can occur with robots but four of them are major classifications: crushing and trapping accidents,impact or collision accidents, mechanical part accidents, and other miscellaneous accidents. Impact or collision accidents occur generally from malfunctions and un-predicted changes. Crushing and trapping accidents occur when a part of a worker’s body becomes trapped or caught on robotic equipment. Mechanical part accidents occur when a robot starts to "break down or malfunction," where the ejection of parts or exposed wire can cause serious injury. Other accidents at just general accidents that occur from working with robots and consist of general injury or shocks that occour.\\ - -Out of many sources of hazards classified there are seven associated with human interaction with robots and machines: unauthorized access,human errors, mechanical failures,control errors, environmental sources,improper installation, and power systems. Human errors are anything from one line of incorrect code to a loose bolt on a robotic arm. Many hazards can stem from human-based error. Environmental sources are things such as electromagnetic or radio interference in the environment that can cause a robot to malfunction. Power systems are pneumatic, hydraulic, or electrical power sources; these power sources can malfunction and cause fires, leaks, or electrical shocks. Improper installation is fairly self-explanatory; a loose bolt or an exposed wire can lead to inherent hazards.\\ - -Besides regular maintenance, the above listed hazards are minimized in industry applications by: -– strictly pre-defined environment and space for the cell of robot; -– strictly followed and pre-defined operation routine; -– authorization of properly trained operators, maintenance workers and programmers; -– speed limitation when human is present; -– protective stop function and an independent emergency stop function. + +Robot Panda uses several tools for its functioning. There are allied software robot Panda uses which are also used by other machines as well as there are software specifically developed for robot Panda. Robot Panda also comes with several software library packages which let it run on user machines using Robot Operating Systems as platform already installed. The software systems developed for Robot Franka Panda is MoveIT/Rviz motion planning software. This lets user set various of robot Panda parameters and lets them tweak some of its features. This MoveIT framework sets tone for robot motion planning activity but this is only a hypothetical plan which may not be possible in real world.\\ + +This is where there arises a need for another software to check if the motion planning is possible in real world. For this a common software used is Gazebo simulator. This simulator have additional real world parameters like torque on joint which can be altered to see how robot reacts for a motion plan in real world. +There maybe cases where a robot cannot really afford to bear weight to pickup an object and this maybe visually possible in MoveIT/Rviz tool as it is just a visualization tool framework but then the same motion plan is run in Gazebo simulator which runs the plan with defined torque on all joints which can as well be altered to see more reactions on robotic arm and this lets user see if the simulation is really possible in real world conditions and thus confirm if the motion plan is real world possible.\\ + +Apart from the above mentioned software which the work of this thesis uses there are several essential repositories provided to users by Erdal which run the Franka robotic framework on user machine. These were as well used to run on top of Robot Operating Systems (ROS) to run the robot Franka. These repositories are namely, \lstinline|franks_ros, panda_simulation ,panda_moveit_config|. The basic idea of robot Panda package which is made up of all the above mentioned tools and software is to execute a real time bidirectional connection between a workstation PC and the arm of the robot.\\ + +\footnote{https://moveit.ros.org/ , http://gazebosim.org/ , https://github.com/frankaemika/ , https://erdalpekel.de/?p=55}The robotic framework package has libfranka and this is a C++ program library, frankaros which is a ROS interface with ROS Control and MoveIt integration. Gazebo was used which is a real life simulator used to run and check simulations of Robot Panda at the end.\\ + +\section{Robotic Coexistence With Humans - Meaning Of Cobots} + +Robots are very essential to some of the today's modern industry because they help humans accomplish tasks which otherwise are too difficult to perform with the speed and accuracy with which robots can do them. In addition robots can perform tirelessly and do not cringe if they work in day or night. This makes them a versatile tool that is friendly and beneficial to humans. The robots thus need to live, work and perform alongside humans in most cases. This is usually critical in factories and also homes where they are used nowadays. These robots maybe very intelligent and this makes them very capable but in most cases they cannot completely replace human presence which is still required to monitor robotic operations and sometimes humans are required to alter plans and make decisions as per orders and this gives birth to a situation where robots need to work alongside humans and this involves only safe operations because in the event robots cause injury to human it can cause very serious situations and hazard to human well being and may also cause death of a person.\\ + +Here comes the concept for cobots. They are robots which are built to perform alongside humans and this too safely. The word cobot is derived from so called collaborative robots which are kind of robots made to perform alongside human presence in a commonly used area. Most times they are in very close proximity working alongside each other but the design decisions and multi level safety which range from soft built to auto-emergency stop features ensure they can work very reliably alongside each other.\\ + +Cobots are evolved version of traditional robots, and traditional robots are only meant to perform without safety features on both levels comprising physical safety as well as software built detection features giving intelligence to robot. Thus these are the factors which differentiate a robot from a cobot. +These features are built in cobots but traditional robots do not have them. Cobotic safety relies on lightweight construction materials, curved edges on control surfaces and no sharp edges but only rounded curves, and comes with inherent limitation of speed and force when working along human presence\cite{14}. + +Cobots are built for an industry setting workspace and have different hardware and software to run them along with above mentioned features of safety. Some of essential features of cobots are - + +\subsection{Existence Alongside Humans} + +Cobots and humans work with each other in a common area to accomplish a certain task. A traditional robot is not built to perform alongside human but a cobot is. + +\subsection{Collaboration and Co-operation} + +There are two stages of intricacies for cobots working with humans namely Collaboration and Co-operation. Humans and cobots are meant to collaborate in work. This mean they must work in a common space but not on any one task physically together. The other property is co-operation and this is a more refined stage which all cobots may not have this feature. This means human and cobot work on the same module of machine at the same time in parallel, and both the human and cobot are in motion. This is achieved not only by pre-programming some paths for cobots and humans but also in real time which is explained in next point. + +\subsection{Real-time and Presence Acknowledged Collaboration} + +The cobots are meant to work alongside humans safely. The capability of real time monitoring and decision making is imperative to a cobot. This mean the cobot should be able to detect and track human presence and motion in real time. A cobot must also have decision making ability upto some level to respond to human changing position that enable it to stay at a safe distance from human movement. This must also give robot ability to alter paths in real time for its intended motion.\\ + +This is a part of robotics that is not very well developed and this forms basis of self-driving cars which has not become possible in real world usage but is also evolving very fast. + +\section{Accidents Due To Malfunctions and Consequences} + +Traditional robots were used in industry setting in the past where humans operated them and sometimes worked alongside them. But there have been many cases where the safety of human is compromised in all areas where robots are present. And this has also cased many accidents and some of them very terrible causing grievous injuries and even deaths in many cases. Even during development of cobots there have been accidents for example many prototypes of self-driving cars have failed to provide safety to other cars and people in proximity on the road. It is safe to acknowledge that this is a big issue with cobots and there are problems present here\cite{15}.\\ + +There is always an element of risk in human-cobot interactions. The danger arises when a human may get hit by the robot in motion or robotic arm in motion. A human may also get trapped between robot boy or arm and an wall or iron grill in vicinity. There are many types of hazards that are identified and they maybe dangers caused mechanically i.e faults in the machine, electrical shocks to human body, overheating components causing burns and many more hazards which maybe combination of these. The hazards are studied carefully and robots continuously evolved to make them handle risks and this makes them safer. But it is also necessary to acknowledge that in real world there are some faults that can always happen which may not always be due to the robot itself but due to wrong operation of robots or due to abuse. Some of them are recognized to be - + +\subsection{Mechanical Failure} + +Robotic mechanism is made up of components like motors, actuators, connectors and sensors. These can malfunction and may directly or indirectly cause safety issues. +A classic example is wrong readings sent by sensors to processor causing it to make a wrong decision. This may cause consequent failure of more components or make them behave unsafely. + +\subsection{Electrical Anomaly} + +Robots are made up of electronic components like wires, circuit boards, microprocessors which age and may malfunction causing robot to behave unexpectedly and unsafely. The insulation material may wear out causing short circuits and heat damage to components. + +\subsection{Malfunctioning Software} + +Software is essential to modern day robots and this need programming. Code in any language always have bugs and more so it may fail altogether and this may cause robot to behave unexpectedly and unsafely. The problems come in all shapes and sizes ranging from robot shutting down unexpectedly ,to short circuits causing heat and even fire risks. Thus the set of instructions governing robot use should be perfect for using use cases they are built for but there are always chances of issues coming up after long time use. One of them maybe hardware is superficially compatible with software instructions. + +\subsection{Human Operator Errors} + +Robots if used in unintended use cases or experimented with beyond their capability can malfunction. A malfunctioning robot is an uncontrolled robot and thus can be a huge hazard for human life. There are some veto power humans have over robots to do things for them in their own way, but this may logically and hence technically contradictory leading to very unsafe situations where critical materials are handled for instance uranium in a nuclear reactor. A classic example is Chernobyl Nuclear Power Plant accident which was caused entirely due to operator errors. Machines are built with applying functionality in mind and not to handle a combination of all use cases and this always make it possible that there may arise situations robot can go against itself or the operator. This is usually caused due to untrained engineers, operators, and users. These people may not be aware of effects of their actions causing machine to fault.\\ + +Robots are continuously incorporated with artificial intelligence features making them safer every day but this is a subject of research which is continuously developed and it is not possible to make a robot equally intelligent to a human being. + + +\section{Making Robots Safer And Safe Deployment Practices } + +Collaborative robots or cobots are all about latest technology trend that is gathering pace with the advent of all new technology coming up in various fields like self driving cars and manufacturing in factory supply chains. The technology is itself developing and so are its components that can be used interchangeably across industries to develop an ecosystem of new age artificially intelligent cobots at an affordable price. This technology offer amazing advantages as they can safely work alongside humans and provide cost and time benefits that is hard to beat in industry setting where cycle time and productivity are key issues\cite{16}.\\ + +As was mentioned before that cobotic technology is still evolving and developing and assuming it to come at a level where they behave like a living being may take more decades of time and the example is self driving cars that many prominent organizations are working on but have not been able to successfully integrate that finesse and level of safety so far. There have been accidents with attempts to integrate artificial intelligence in to cobots and using machine learning to train the cobot with experiences and then implement this with assured safety or at least equal to a level of humans decision power. This means that companies are spending large amounts of money to develop such technologies and help them evolve. All because the accidents can be serious and can cause injuries and loss of human life.\\ + +There are causes of accidents using robots at workplace or industry setting. Robots were made to be fast workers and also powerful to do tedious tasks which means in most cases the control surfaces have substantial amounts of torque. This can cause injury to a human with just one strike and there may be various situations that can develop leading to an accident and thus hazard to human life and also may cause financial costs and medical attention. There are situations when even non functioning robots may cause incidents and hazards. Example is when a robot may malfunction when it is being overhauled for maintenance. There may be a worker doing overhauling when it may react irregularly and cause serious hazard to life of worker. Or there can arise a situation when a robot may be faulty suppose due to a motor issue and the worker may have to stand in the path of robot movement and thus if he fiddles with the motor and it may start running then worker can be hit with robotic arm and cause injury.\\ + +The accidents caused by robots can be classified based on the type of dangerous situations a human may end up with the robot. They are described in the following cases.\\ + +A human worker maybe crushed with arm motion of the robot or a human may get trapped in a situation where the robot may move to a point and there is no outlet for human to escape. This case may arise when a human gets trapped in between a wall and the robot arm for instance. Other times a robot may directly hit a human thus causing collision. There maybe other miscellaneous safety situations arising when a robot and a human are present together in a common space like heat burns or electric shocks.\\ + +The above listed hazards are minimized by: \\ + +– enforcing strictly pre-mapped environment and space for the cell of cobot\\ + +– strictly followed operational routine\\ + +– authorization of machine operators, maintenance workers and programmers\\ + +– speed limitation on movement of control surfaces in presence of human\\ + +– emergency stop function. diff --git a/sections/conc.tex b/sections/conc.tex index bad22c65f08fe9ec00909799e5c1fc3f0dcaae99..af66360255dbe67acda373caa7842479eed42295 100644 --- a/sections/conc.tex +++ b/sections/conc.tex @@ -1,10 +1,11 @@ \chapter{CONCEPT}\label{ch:conclusion} - \section{The Models} - Tasks in thesis work were to design three models namely World Model, Application Model and Safety Model and implement them in a C++ program.The world model describes the world of Robot Panda in general i.e. about what is inside the surroundings of the robot apart from the Robot itself and then features and attributes of all components in World Model.In technical terms this is the world of the robot that exists in real world and components in this world are the Robot FPE itself with its arm, the object like cube or ball which can act as obstacle or an object that can be picked up by the robot arm and a human or human arm as is shown in figure below Fig 5.1 and 5.2.\\ - - This is a model where human / object - robot interaction operation is depicted as a layman showing the following diagram.Technically UML Class Diagrams were used to demonstrate the World Model .Each component was used to describe it as a class showing attributes which is then also used to derive an object diagram which shows the instance of the Class Diagram. - +\section{The Models} + +Tasks in thesis work were to design three models namely world model, application model and safety model and implement them in a C++ program.The world model describes the world of Robot Panda in general i.e. about what is inside the surroundings of the robot apart from the Robot itself and then features and attributes of all components in world model. In technical terms this is the world of the robot that exists in real world and components in this world are the Robot FPE itself with its arm, the object like cube or ball which can act as obstacle or an object that can be picked up by the robot arm and a human or human arm as is shown in figure below Fig 5.1 and 5.2.\\ + +This is a model where human / object - robot interaction operation is depicted as a layman showing the following diagram. Technically UML Class Diagrams were used to demonstrate the World Model. Each component was used to describe it as a class showing attributes which is then also used to derive an object diagram which shows the instance of the Class Diagram. + \begin{figure} \centering \includegraphics[width=0.8\linewidth]{../../bras-robotique-choisir-comparaison} @@ -13,43 +14,44 @@ \end{figure} \newpage - - Next an Application Model was designed and for this Business Process Modelling Notation as a tool was used to demonstrate the diagram . Each component in the World model was used to show itself as a frame in this Application diagram and then the components shown inside as connected together giving a logical flow.The main frame of Robot in BPMN is used to show the flow of task in application diagram from it to other frames using the components of BPMN like "if" condition and process events in addition to start and stop events symbols etc, which then culminate to an end event in the main robot frame once again. These flows show the logical flow of process in this Diagram for which the tool Modelio \footnote{https://www.modelio.org/} was used.\\ - - A Safety Model diagram using Modelio was made showing use case about how robot reacts when detecting obstacles and adds safety in the cell.This was also designed in Modelio tool and uses small components from BPMN. This can also be related with Haddadin Safety Model which is later described and talked about how it can be extended. \\ - - This three models are described in detail in the previous chapter. - - - \begin{figure} - \centering - \includegraphics[width=1.0\linewidth]{../MzIxNDU3NA} - \caption{Image Source : https://blog.generationrobots.com/en/list-of-criteria-to-look-at-before-buying-a-robot-arm/panda-franka-emika-care-robot-arm-2/} - \label{fig:mzixndu3na} - \end{figure} - - \newpage - - \section{Programming Of Hardware And Software Components - Purpose And Concepts} - - In Hardware point we have the Franka Robot which has a arm and the arm has joints described by J1...n . We also then have other objects in the world namely obstacles which can be one or more human and then non living ones like a cube ,box or ball. Then we have grasp objects which can be a cube or an item to pick.\\ - - The Robot Panda has Motion Planning attributes which can be altered. Most of them are in MoveIT Rviz which is the GUI described in detail in the following chapter. The state of robot arm is described by the coordinate position of joints of the arm. We can as well alter the many other parameters like torque on the arm in simulations.The Figure 5.3 shows the robot panda with joints .\\ - - \begin{figure} - \centering - \includegraphics[width=0.8\linewidth]{../../media_166_16680da7-1c13-47f9-83f0-e777befaf95d_phpjVXSN3} - \caption{Image Source : https://www.chegg.com/homework-help/questions-and-answers/panda-franka-emika-shown-belowis-innovative-lightweight-robot-intended-friendly-andsafe-hu-q35002486} - \label{fig:media16616680da7-1c13-47f9-83f0-e777befaf95dphpjvxsn3} - \end{figure} - - In the Software section ROS \footnote{https://www.ros.org/} is used which is the Robot Operating System and Catkin which builds the workspace.ROS is started using "roscore" command in terminal to start the ROS. MoveIT is then used to do motion planning for the robot and planning motion around the obstacles . All the plans are then run in real life simulator for which Gazebo Simulation was used, which is used to replicate real life conditions and run robot inside it .This gives an idea if the robot can perform as planned and expected in real life with torque on joints.To use MoveIT ,workspace is built using catkin. Erdal´s repos are used and essential in the workspace which are frankaros , pandamoveITconfig and pandasimulation and they are imperative to build the workspace. - - - - \section{Connecting Everything - Real Simulations\\} - - Gazebo Simulator is run alongside MoveIT motion planner which help replicate the MoveIT motion plan in Gazebo simulator and thus let us manipulate the robot using motion plan in Rviz . - + +Next an application model was designed and for this Business Process Modelling Notation as a tool was used to demonstrate the diagram. Each component in the World model was used to show itself as a frame in this Application diagram and then the components shown inside as connected together giving a logical flow. The main frame of Robot in BPMN is used to show the flow of task in application diagram from it to other frames using the components of BPMN like "if" condition and process events in addition to start and stop events symbols etc, which then culminate to an end event in the main robot frame once again. These flows show the logical flow of process in this diagram for which the tool Modelio \footnote{https://www.modelio.org/} was used.\\ + +A safety model diagram using UML state chart was made showing use case about how robot reacts when detecting obstacles and adds safety in the cell.This was also designed in Modelio tool and uses small components from BPMN. This can also be related with Haddadin Safety Model which is later described and talked about how it can be extended. \\ + +This three models are described in detail in the previous chapter. + + +\begin{figure} + \centering + \includegraphics[width=1.0\linewidth]{../MzIxNDU3NA} + \caption{Robot Panda Picking Up Object Image Source : https://blog.generationrobots.com/en/list-of-criteria-to-look-at-before-buying-a-robot-arm/panda-franka-emika-care-robot-arm-2/} + \label{fig:mzixndu3na} +\end{figure} + +\newpage + +\section{Programming Of Hardware And Software Components - Purpose And Concepts} + +In hardware point we have the Franka robot which has a arm and the arm has joints described by J1...n . We also then have other objects in the world namely obstacles which can be one or more human and then non living ones like a cube ,box or ball. Then we have grasp objects which can be a cube or an item to pick.\\ + +The robot Panda has Motion Planning attributes which can be altered. Most of them are in MoveIT Rviz which is the GUI described in detail in the following chapter. The state of robot arm is described by the coordinate position of joints of the arm. We can as well alter the many other parameters like torque on the arm in simulations.The Figure 5.3 shows the robot panda with joints .\\ + +\begin{figure} + \centering + \includegraphics[width=0.8\linewidth]{../../media_166_16680da7-1c13-47f9-83f0-e777befaf95d_phpjVXSN3} + \caption{Robot Panda Joints Image Source : https://www.chegg.com/homework-help/questions-and-answers/panda-franka-emika-shown-belowis-innovative-lightweight-robot-intended-friendly-andsafe-hu-q35002486} + \label{fig:media16616680da7-1c13-47f9-83f0-e777befaf95dphpjvxsn3} +\end{figure} + +In the Software section ROS \footnote{https://www.ros.org/} is used which is the Robot Operating System and catkin which builds the workspace. ROS is started using "roscore" command in terminal to start the ROS. MoveIT is then used to do motion planning for the robot and planning motion around the obstacles. All the plans are then run in real life simulator for which Gazebo Simulation was used, which is used to replicate real life conditions and run robot inside it. This gives an idea if the robot can perform as planned and expected in real life with torque on joints.To use MoveIT, workspace is built using catkin. Erdal´s repos are used and essential in the workspace which are frankaros , pandamoveITconfig and pandasimulation and they are imperative to build the workspace. + + + +\section{Connecting Everything - Simulations\\} + +Gazebo Simulator is run alongside MoveIT motion planner which help replicate the MoveIT motion plan in Gazebo simulator and thus let us manipulate the robot using motion plan in Rviz . + + diff --git a/sections/eval.tex b/sections/eval.tex index 854fbc76bb3962640cc3dae8ba0ae455b2e7bb6e..76c4e62963f3efd71d3ab0830baef831e4531456 100644 --- a/sections/eval.tex +++ b/sections/eval.tex @@ -8,10 +8,9 @@ The implementation section gives out results for the Position and Orientation of They are 7 in number but only about 3 are shown here as a sample.Here are the results . - \lstset {language=C++} \lstset{ - basicstyle=\fontsize{11}{11}\selectfont\ttfamily +basicstyle=\fontsize{10}{11}\selectfont\ttfamily } \begin{lstlisting} pandalink1 Position is x=0,y=0,z=0.333 @@ -24,16 +23,13 @@ pandalink3 Orientation is w=0.980906,x=1.16121e05,y=-0.194483,z=8.93912e05 .... \end{lstlisting} - - The robot was moved in Gazebo Simulator after a motion planning trajectory execution in Rviz motion planner.\\ The node was again built and run giving new values for position and orientation of joints. - \lstset {language=C++} \lstset{ - basicstyle=\fontsize{11}{11}\selectfont\ttfamily +basicstyle=\fontsize{11}{11}\selectfont\ttfamily } \begin{lstlisting} pandalink1 Position is x=0,y=0,z=0.333 diff --git a/sections/imp.tex b/sections/imp.tex index 1507975383e6192bb50f04d6260ed152d3098779..e48a9bd0853b999e5aa9a2d595d311843ed19e71 100644 --- a/sections/imp.tex +++ b/sections/imp.tex @@ -1,8 +1,9 @@ \chapter{IMPLEMENTATION}\label{ch:conclusion} -\section{About The Task} +\section{Going To Details} \subsection{WORLD MODEL IMPLEMENTATION} + The task is about implementation of the designed World Model using C++ code. The program written ,described as a node is used to display the values of position and orientation of robot joints in addition to World Model program implementation which include other classes and objects. The program is connected with Rviz motion planner and to Gazebo simulator by launching a launch file which launches the Rviz \footnote{http://wiki.ros.org/rviz/UserGuide} and Gazebo \footnote{http://gazebosim.org/} and the node file \footnote{https://git-st.inf.tu-dresden.de/nikaviator/zero/-/blob/master/src/\lstinline|robot_models_node.cpp|}. The Robot can be manipulated using a motion plan in Rviz and then plan can be used to run the simulation in Gazebo Simulator.\\ The program code is designed to take values from the robot in Gazebo Simulator and display them in output.The program also builds the object structure by initializing values and assigning them values.Every class designed is connected to the node program using the header files and contain variables that are used to build object structure in the main node program.So after launching the Rviz and Gazebo using launch file ,the program is built and run and thus displays the position and orientation values of robot joints.\\ @@ -19,10 +20,10 @@ The tools used for implementation stage in the task are - This is the editor used to write C++ code for a project in this case task and compile and run it. It provides many aides to help reduce the programmers workload and automate the process by providing many suggestions using inbuilt libraries and pointing out logic errors in advance and helps mitigates errors and warnings that may come at a later stage.It can be started by clicking on the icon but it is recommended to start this from terminal by typing "CLion".The following figure shows how CLion IDE looks like and also talks about some of its features.\\ \begin{figure} - \centering - \includegraphics[width=1.0\linewidth]{"../../Screenshot from 2020-10-14 04-08-02"} - \caption{CLion Screenshot} - \label{fig:screenshot-from-2020-10-14-04-08-02} +\centering +\includegraphics[width=1.0\linewidth]{"../../Screenshot from 2020-10-14 04-08-02"} +\caption{CLion Screenshot} +\label{fig:screenshot-from-2020-10-14-04-08-02} \end{figure} Fig.6.1 On the left side the file structure is shown. On right side the files opened are shown under each tab. On the left the class files are visible for 11 classes under src folder and at bottom in this structure there is CMakeLists.txt file visible which is also used in this case to help set the configuration for executables. In the src folder there also exist file \lstinline|robot_models_node.cpp| visible below the .gitkeep statement. Above src folder there also exist a launch folder containing launcher.launch file in red . This contains launch commands to launch rviz , gazebo and the node file. @@ -34,10 +35,10 @@ Fig.6.1 On the left side the file structure is shown. On right side the files op This is Motion Planner used to plan the motion of robot Franka Panda. This connects to simulator for running real world simulations using the Robot Operating System (ROS) and launch file.Above is screenshot for Rviz.\\ \begin{figure} - \centering - \includegraphics[width=1.0\linewidth]{"../../Screenshot from 2020-10-14 04-13-00"} - \caption{MoveIT / RVIZ Screenshot} - \label{fig:screenshot-from-2020-10-14-04-13-00} +\centering +\includegraphics[width=1.0\linewidth]{"../../Screenshot from 2020-10-14 04-13-00"} +\caption{MoveIT / RVIZ Screenshot} +\label{fig:screenshot-from-2020-10-14-04-13-00} \end{figure} @@ -52,10 +53,10 @@ When starting RVIZ for first time there is an empty world and then Add button ne This is real world simulator which simulates robot motion with real world parameters tuned to check if the motion plan is executable and feasible in real world.This also provide values to program using listener tf buffer in the node program but this is explained in detail later.Below is a figure showing Gazebo simulator.\\ \begin{figure} - \centering - \includegraphics[width=1.0\linewidth]{"../../Screenshot from 2020-10-14 04-13-12"} - \caption{Gazebo Screenshot} - \label{fig:screenshot-from-2020-10-14-04-13-12} +\centering +\includegraphics[width=1.0\linewidth]{"../../Screenshot from 2020-10-14 04-13-12"} +\caption{Gazebo Screenshot} +\label{fig:screenshot-from-2020-10-14-04-13-12} \end{figure} In this task there was no need to explore functionality or fiddle any of features in Gazebo. It was used to visualize motion plan of Rviz-MoveIt and seen if this is real world feasible in Gazebo. In this tool it is possible to tune a lot of real world parameters and the ones related to Robot Panda are torques on joints @@ -65,18 +66,17 @@ To upload code as package to a central repository. This is a widely used reposit It shows the projects available under the namespace . They can be clicked to view files structure under one particular project. \begin{figure} - \centering - \includegraphics[width=1.0\linewidth]{"../Screenshot from 2020-10-14 20-16-28"} - \caption{Gitlab Screenshot} - \label{fig:screenshot-from-2020-10-14-20-16-28} +\centering +\includegraphics[width=1.0\linewidth]{"../Screenshot from 2020-10-14 20-16-28"} +\caption{Gitlab Screenshot} +\label{fig:screenshot-from-2020-10-14-20-16-28} \end{figure} \newpage \section{Programming The Implementation Of World Model} -WORLD MODEL - -To implement the World Model , ten files were created each for one of the classes. They were created as files to be included as header files(.h) in the main node program called in this case \lstinline{robot_models_node.cpp}.Each header file describe the implementation of one class and its functionalities by using variables which are then objectified in the main node program.\\ +WORLD MODEL - To implement the World Model , ten files were created each for one of the classes. They were created as files to be included as header files(.h) in the main node program called in this case \lstinline{robot_models_node.cpp}.Each header file describe the implementation of one class and its functionalities by using variables which are then objectified in the main node program.\\ The main program is used to add objects to the classes and used to input the values into variables using those objects and then run the implementation to display output.\\ @@ -84,7 +84,7 @@ The following paragraphs describe the modules of the program used in implementat \lstset {language=C++} \lstset{ - basicstyle=\fontsize{11}{11}\selectfont\ttfamily +basicstyle=\fontsize{11}{11}\selectfont\ttfamily } \begin{lstlisting} int main(int argc, char** argv) { @@ -99,7 +99,7 @@ Here the main function is defined and the ROS node defined and initialized. Also \lstset {language=C++} \lstset{ - basicstyle=\fontsize{11}{11}\selectfont\ttfamily +basicstyle=\fontsize{11}{11}\selectfont\ttfamily } \begin{lstlisting} abstractobject o1; @@ -120,37 +120,37 @@ Here objects are defined which are later used to input values into variables def \lstset {language=C++} \lstset{ - basicstyle=\fontsize{11}{11}\selectfont\ttfamily +basicstyle=\fontsize{11}{11}\selectfont\ttfamily } \begin{lstlisting} o9.c->robname="Robot FPE"; o9.c->of=true; o9.c->moving=false; \end{lstlisting} - - + + This is an example of defining values to the variables in the classes included as header files inside the main program.In many cases pointers are used because they are useful to implement association and aggregation functionalities to program which are imperative.\\ - + Association is used where classes are together related by a relation which is not inheritance but only associated to each other because they use each other's values.In this case the class quaternion is associated to worldobject class by association relation which is implemented by including the associated class quaternion.h as header file.\\ - + Aggregation is used where a class if do not exist must not let its child classes be instantiated and used. In this case world class is in aggregation relation to abstract object class which have child classes as Grasp Object and Obstacle class.So if the world class were not to exist the Grasp Object and Obstacle Class cannot be initialized or used. So pointers are used to take input values for child classes using pointer variables of world class. \lstset {language=C++} \lstset{ - basicstyle=\fontsize{11}{11}\selectfont\ttfamily +basicstyle=\fontsize{11}{11}\selectfont\ttfamily } \begin{lstlisting} tf2ros::Buffer tfBuffer; tf2ros::TransformListener tfListener(tfBuffer); \end{lstlisting} - + tf2 is used to listen to values of variables and hence a buffer is allocated and used. After this a listener object is defined for tf2 which will be later used to listen the values and use them in program. - + \lstset {language=C++} \lstset{ - basicstyle=\fontsize{11}{11}\selectfont\ttfamily +basicstyle=\fontsize{11}{11}\selectfont\ttfamily } \begin{lstlisting} while (nodehandle.ok()) { @@ -160,12 +160,12 @@ geometrymsgs::TransformStamped transformStamped1; geometrymsgs::TransformStamped transformStamped2; geometrymsgs::TransformStamped transformStamped3; \end{lstlisting} - + while loop is started and objects named transformStamped1...n are defined here one for each joint. - + \lstset {language=C++} \lstset{ - basicstyle=\fontsize{11}{11}\selectfont\ttfamily +basicstyle=\fontsize{11}{11}\selectfont\ttfamily } \begin{lstlisting} try { @@ -174,13 +174,13 @@ transformStamped2=tfBuffer.lookupTransform("world",o5b.name,ros::Time(0)); transformStamped3=tfBuffer.lookupTransform("world",o5c.name,ros::Time(0)); ... \end{lstlisting} - + A try catch block is used to compare and connect the attribute of robot for which we seek values i.e. in this case joint 1...7 ,relative to standard world and store them in the defined objects transformStamped1,2,3....\\ Then exceptions are caught and some statements defined for this .This is in case some things don't work. - + \lstset {language=C++} \lstset{ - basicstyle=\fontsize{10}{11}\selectfont\ttfamily +basicstyle=\fontsize{10}{11}\selectfont\ttfamily } \begin{lstlisting} o5a.p1[0]=transformStamped1.transform.translation.x; @@ -188,7 +188,7 @@ o5a.p1[1]=transformStamped1.transform.translation.y; o5a.p1[2]=transformStamped1.transform.translation.z; ROSINFOSTREAM("pandalink1 Position is"<<"x="<< o5a.p1[0]<<",y="<<o5a.p1[1]<<", z="<<o5a.p1[2]); - + o5a.or2.w=transformStamped1.transform.rotation.w; o5a.or2.x=transformStamped1.transform.rotation.x; o5a.or2.y=transformStamped1.transform.rotation.y; @@ -196,10 +196,11 @@ o5a.or2.z=transformStamped1.transform.rotation.z; ROSINFOSTREAM("pandalink1 Orientation is"<<"w="<< o5a.or2.w<<",x="<<o5a.or2.x<<", y="<<o5a.or2.y<<",z="<<o5a.or2.z); \end{lstlisting} - - + + Here in these steps the object variables take input the objects values from listener object transformStamped and store them in the node program and which then outputs these values.All the static variable defined in the program are initialized with 0 value before using them.\\ - + This program thus listens to values from simulation and displays using appropriate output statements. The robot in Gazebo is thus connected to Rviz motion planner using ROS which enables the node program \lstinline|robot_models_node.cpp|, to listen to desired values in this case position and orientation of joints . - - + + + diff --git a/sections/intro.tex b/sections/intro.tex index bdf01b61febfe310700c984298e388b9171d9883..32f7f22c68f250fe498e6a93eae7440548380c93 100644 --- a/sections/intro.tex +++ b/sections/intro.tex @@ -1,59 +1,98 @@ \chapter{INTRODUCTION}\label{ch:introduction} -\paragraph{Objective Of Thesis:} Design and Implementation of a Model-based Architecture for Cobotic Cells.\\ +\paragraph{Objective Of Thesis:} Design and Implementation of a Model-Based Architecture for Cobotic Cells.\\ + +\section {Robots and Robotics} + +A robot is a machine developed by humans to do work for them and to make their lives easy. Humans had to keep doing repetitive tasks throughout history which were essential things to do and there have been times when enough manpower was absent or unavailable to do the required work. This led to humans to think about designing a machine which can obey their commands to accomplish a series of steps to do a job. They then described these machines as a robot.\\ + +In fact, any machine designed for any specific task and purpose can be termed as a robot. But the term "robot" is generally known as a machine that is versatile and can accomplish a range of tasks .Its core is defined by a set of common characteristics which all robots have in common and then some that are variable and those can be added / removed to suit a specific type of job or size and area of the field of that work profile.\\ + +In early times of human history, humans designed tools for agriculture as they were a natural necessity that was deemed to make everyday work easier for people and thus increase efficiency and overall productivity of farming. And as is said "Necessity is the mother of invention" there was a greater need felt to make life more easier for farmers compared to the elementary tools those were designed earlier, they then made wheel and then a cart on top of the wheels were installed and thus made a wagon to carry produce from fields. This was advent of machines in the history of mankind and set tone for evolution of machines as per specific needs.\\ + +As the decades and centuries of time passed by, human thinking evolved and refined, their outlook towards machines improved and so did their skills with machines to make them more self contained and all this was done to reduce human intervention for decision making. Then humans tried to build artificial intelligence into their machines and called them robots, but they were elementary and theoretical form of machines which can be principally described as robots.\\ + +Artificial intelligence was built into machines using physical mechanisms in early days like using valves for changing and redirecting water supply in pipes and tracks change railroad paths using levers. But as times changed and many levels of developments happened for physical machines using some form of intelligence then came the era of information technology and development of software systems and programming which was used to control hardware until the last level of action. This was done using a host of components added to hardware which linked it to software systems and they were first circuits which then turned to micro-controllers, and then to electronic components that could be programmed and integrated with physical systems which were then used to manipulate control surfaces thus forming high level of evolution in robotics.\\ + +This has nowadays led to creation of an ecosystem of machines which are versatile and followed hook and template structure to do many tasks using same kind of technology i.e. technology was used for multiple purposes adding to versatility. And the end product can be simply and best described as a robot that can look like a human being and is soft to touch, feels like a human being, can listen and move and not just see but identify things all built in, using programming the components and they all working together to give seamless and intended results. Robots are today meant to do easiest of tasks like moving objects around and giving company to elderly, to complex tasks like critical surgical operations on humans in medicine and working on automobile manufacturing and assembly line.\cite{1}.\\ + +Robotics is the field related to study of Robots. It includes all aspects of robotics starting from elementary components of a robot, programming the robot to all electrical aspects of the machine and the study of them working together.\\ + +\begin{figure} + \centering + \includegraphics[width=0.7\linewidth]{../Robots-Square-300x300} + \caption{ Image Source https://blogs.3ds.com/northamerica/future-robots-and-ensuring-human-safety/} + \label{fig:robots-square-300x300} +\end{figure} + +\section {Components Of a Typical Robot} + +Any robot is a machine that is made up of mainly steel, plastic and more complex materials put together and typically needs electric power to run and perform some work. Robots are programmed using computer software in today's times. Software dictate the robotic parameters and manipulate control surfaces by reading sensor values to enable decision making as per the situation detected and decisive action pre-programmed for it. This can be used to fine tune its actions to perform most complex of tasks independently\cite{2}. Robots in today's times have embedded control built in, which guide the robot to do a job safely in real world environment setting.\\ + +Robots range from auto/semi-automatic functional form to resembling human form type called cobots to industrial grade and medically utilized robots\cite{3}. Robots have been made to look and behave exactly like humans in present time and this is achieved by using soft silicone materials which makes them look sophisticated and intelligent in a home setting. But they are not always designed for good looks and in industry setting they are bare bone machines most time lacking even correct covering and this is to aid in maintenance and improve operational functionality. Today robotics is working with cutting edge research enabling it to function up to the level of developing safe auto driving cars.\\ + +So it can be concluded that robotic components are body/frame, control system, control surfaces, and drive train.\\ -\section {What is Robotics?} -Robotics is about and deals with study of all the machines that can replace human beings in execution of a task, both w.r.t. physical activity and decision-making .Throughout history human beings have constantly attempted to seek substitutes that can mimic their behavior when interacting with surrounding environment \cite{1}. -\section {About Robots} -A robot is a machine programmable by a computer,made to carry out a complex series of actions automatically \cite{2}. Robots can be guided by an external control device or the control may be embedded within. Robots may be constructed resembling human form, but most robots are machines designed to perform a task with no regard to their aesthetics. -Robots range from autonomous or semi-autonomous ranging from humanoids to industrial robots and medically used and operating machines to patient assisting robots \cite{3}. By mimicking a lifelike appearance or automating movements, it conveys a sense of intelligence . Artificial Intelligence is expected to proliferate in the coming decade, with home robotics and the autonomous car as some main drivers. \section {Uses And Applied Fields} -Robots have a wide range of uses and applied fields. Some uses range from helping fight forest fires to Working alongside humans in manufacturing plants (known as co-bots),Robots that offer companionship to elderly individuals,Surgical assistants,autonomous household robots that carry out tasks like vacuuming and mowing the grass.Some of applied fields are -\\ -\subsection{Electrical Components Manufacturing} -Mass-produced Printed Circuit Boards (PCBs) are almost exclusively manufactured by pick-and-place robots, typically with SCARA manipulators, which remove tiny electronic components from strips or trays, and place them on to PCBs with great accuracy.Such robots can place hundreds of thousands of components per hour, far out-performing a human in speed, accuracy, and reliability \cite{4}. +Robots have been developed to suit and work in various fields in today's time. In-fact there are appropriate type of robot for almost any work today. They range from most easy work to most complex of tasks. In this section more light on this area is thrown by describing some use cases in following sections.\\ + +\subsection{Elderly Care} + +Robots are used in home setting to provide company to lonely elderly and give care to them. There are soft bodied robots made up of silicone used in Japan, and this is a place with sparse population and few people to care for elderly. These machines there help the seniors from keeping track of their medicines to playing music to them as well as talking to them. They move objects for them, monitor their health and even help in distress by calling help for lonely seniors\cite{10}.\\ + +\subsection{Medical Uses} + +Robots are used in regular and critical surgeries performed on humans in today's time. The performance of robots as compared to humans is very high in critical human diagnostic operations like C-section surgeries and much more complex ones like angioplasty.\\ + +The can perform medical procedures very fast and with clean cuts and stitches that a human hand is not capable of performing. They can as well perform knee replacement surgeries and many more like making incision to flush kidney stones with amazing accuracy. Many robots also let the surgeon doctor to take control of control surfaces and this aids in minimizing errors caused by a shaking hand a human doctor may have.\\ -\subsection{Automatic Pre-programmed Vehicles (APVs)} -Mobile robots, following markers or wires in the floor, or using vision or lasers, are used to transport goods around large facilities, such as warehouses, container ports, or hospitals \cite{5}. +\subsection{From Ocean Floor to Space Probes to Volcanoes} -\subsection{Space Robotic Probes} -Almost every unmanned space probe ever launched was a robot.Some were launched in the 1960s with very limited abilities, but their ability to fly and land is an indication of their status as a robot. This includes the Voyager probes and the Galileo probes, among others \cite{6}. +Robots are used to look for debris in ocean floor from the wreckage of a sunken ship or crashed air-crafts. There may be an deep ocean surface study exploration or a study on largely unknown aquatic life which can only be performed using robots. Robots are imperative to do such operations.\\ -\subsection{Soft-bodied Cobots} -Robots with silicone bodies and flexible actuators (air muscles, electro active polymers and ferrofluids) look and feel different from robots with rigid skeletons, and can have different behaviors. Soft, flexible (and sometimes even squishy) robots are often designed to mimic the biomechanics of animals and other things found in nature, which is leading to new applications in medicine, care giving, search and rescue, food handling and manufacturing, and scientific exploration \cite{9}. +In cases of metal and mineral exploration and study on ocean floors, robots are machines that cannot be replaced and thus are credited with numerous discoveries. They can move control surfaces and transmit images of seafloor and let humans take control of situation on ocean floor from several miles distance on ocean top. The pressure present at ocean floor can only be tolerated by a submarine and sending a human in deep depths is not possible. Similarly robots are used in space probes and space missions where they do operations humans are not capable of doing like exposing themselves to work in open space where harsh UV sunlight can cause bad effects on human body and any exposure of human beings there is only limited for critical operations to minimize risks and high costs associated to cover the risks. They provide safety to humans and make work easier and faster along with giving reliability and required precision\cite{6}.\\ -\subsection{Cobots} -Cobots or collaborative robots, are robots intended for direct human robot interaction within a shared space, or where humans and robots are in close proximity. Cobot applications contrast with traditional industrial robot applications in which robots are isolated from human contact.Cobot safety may rely on lightweight construction materials, rounded edges, and inherent limitation of speed and force, or on sensors and software that ensures safe behavior \cite{7}. +Robots are used around volcanoes erupting molten lava to collect samples and study materials and these areas have very high temperatures. These are tasks that are impossible and too hazardous to be done by humans thus making robot a tool that cannot be replaced. -\subsection{Robots in Construction for Homes} -Construction robots can be used for working in hazardous construction cites. \cite{8}. +\subsection{Automobile Industry} -\subsection{Elderly Assistance} -The population is aging in many countries, especially Japan, meaning that there are increasing numbers of elderly people to care for, but relatively fewer young people to care for them.\\Humans make the best carers, but where they are unavailable, robots are gradually being introduced.FRIEND Robot is an example\cite{10} +Robots are used in automobile manufacturing assembly lines to produce high quality automobile. They can minimize errors and give high quality finished products that is not possible to be manufactured by a human. Many German auto brands are known for their high quality cars all over the world. This is because these cars offer a lot fo features but most importantly a rigid chassis which gives safety, comfort and stability which are only possible by laser welding in body.\\ + +This also is allowed to be offered at competitive prices thus giving high quality and finished product worthy of their price and in big auto markets these cars are preferred nowadays over older cars with hand welded bodies which see loose components in chassis with age. Thus robotics form the base of the quality of these products and gives a distinguished appeal compared to other cars which offer similar features but do not have these machine welds in body thus compromising safety and comfort of occupants.\\ \section {Types Of Robots} + Various types of Robots classification are described below \cite{11}. -\subsection{Humanoid Robots} -Humanoid robots are robots that look like and/or mimic human behavior. These robots usually perform human-like activities (like running, jumping and carrying objects), and are sometimes designed to look like us, even having human faces and expressions.They have soft surfaces and use silicone materials to look and feel and even move like a human. Examples of humanoid robots are Hanson Robotics’ Sophia and Boston Dynamics’ Atlas. +\subsection{Dynamic Robots-Resembling Humans} + +Dynamic robots are described as humanoid robots which are the robots that look and feel like a human being. They are designed to look and feel like humans and mostly work in household setting to perform activities like carrying objects. They use silicone materials which are soft and make them look like a real human with face motions and expressions. Examples of dynamic robots are Hanson Robotics’ Sophia and Boston Dynamics’ Atlas. -\subsection{Pre-Programmed Robots} +\subsection{Preprogrammed Robots} -Pre-programmed robots operate in a controlled environment where they do simple, monotonous tasks. Example of a pre-programmed robot is a mechanical arm on an bike assembly line. The arm serves one function — to weld iron, to insert a certain part into the engine, etc. — and it’s job is to perform that task longer, faster and more efficiently than a human. +These robots are made to work in a controlled environment. Here they do simple and monotonous tasks. Example is a mechanical arm on an vehicle assembly line. Its job is to perform as per pre-decided plan and perform tasks longer, faster and more efficiently than a human. \section {Importance Of Robots In Today's Time} -In business, time and cost are important factors. Robots are easier and cheaper to work with when compared to humans and this makes them attractive. Given the risk and danger involved in some tasks, robots are the ideal alternative to human labor.For instance, a robot can move around gas towers, travel space and bring back feedback, all this without exposing human life to any kind of danger. They cannot get tired. It is in human nature to get tired after performing repetitive tasks for a long time. This is different when robots are at work. They can work for a series of days, weeks or even months without getting fatigue. They are programmed to produce accurate results and this makes them ideal for repetitive procedures. Unlike humans, robots do not get tired. Automating a process means ruling out the possibility of having to deal with sick-offs, absenteeism and go-slows that normally delay work. Robots are made from metals and plastics and have three major parts namely; the controllers, sensors and mechanical parts. All these parts are interdependent and the functionality of one depends on the other. Sensors are the parts that inform a robot of its surroundings. There are robots that are able to tell the amount of pressure that needs to be exerted in order to enable the required grip.Controllers are best described as the robot’s ‘brain’. In many cases, they are run on computer programs. Each robot has specific commands which control all the movements of all the movable parts of a robot.The mechanical parts are the parts that are responsible for moving the robots. They include grippers, gears, pistons and motors. To enable movements, the mechanical parts of robots are normally powered by water, electricity or air. +Robots in today's time offer some very specific and important benefits which cannot be ignored or replaced. It include safety, precision of work, quick delivery of product to market, accuracy in repetitive tasks without human like excuses and many more.\\ + +Robots are ideal for uses in high risk area like volcanic explorations, space probes , deep ocean operations and in bomb diffusion squads as mentioned in above sections. In these situations they perform extraordinarily well. They are stable workers without boredom, cannot get tired ,don't compromise on safety and don't make excuses for under performance.They work tirelessly and ensure accuracy ,precision and quality of work in any situation.Once programmed and up and running they can work a long time without supervision and while maintaining standards of their work under all situations.\\ + +Employing robots is cheap and need only power which is also highly optimized. Robots have a one time costs and low power consumption which make them cheaper to employ in most cases than humans. They are also very reliable nowadays thus offering very low maintenance and great value for money.\\ + +Robots are intelligent. They are programmed to make their own decisions and know how to tackle almost all situations. They have a learning mode where they can be taught instantaneously some tasks that they can mimic, but this is usually limited for research purposes in university setting\cite{12} +.\\ \section {Expectations From Robots} -Laws of Robotics which define three expectations from the field of Robotics are :\\ +There are few basic expectation that a Robot must in all cases adhere to and they are called as Laws of Robotics which define these three expectations:described as Asimov's Laws of Robotics. They are described as follows :\\ -‒ A robot must not cause injury to a human being or allow the injury of a human being due to inactivity.\\ +‒ A robot must not in any case cause a minor or hazardous injury to a human being or allow the injury of a human being due to inactivity.\\ -‒ A robot under all circumstance must obey the orders which are given by human beings except of those that conflict with the First Law.\\ +‒ A robot under any and all circumstance must obey the orders which are given by humans except of those that conflict with the First Law stated above.\\ -‒ A robot must protect its existence unless in a situation in conflicts with the First or Second Law. +‒ A robot must protect its existence unless in a situation in conflicts with the First or Second Law stated above.\cite{3.1} diff --git a/sections/motiv.tex b/sections/motiv.tex index f46ff4822888965ee8e5225d0b46438f2ba13348..fe5df8b5ab3d5cf58753fdb91b8f29ed63d7bbf7 100644 --- a/sections/motiv.tex +++ b/sections/motiv.tex @@ -1,11 +1,25 @@ -\chapter{MOTIVATION}\label{ch:evaluation} +\chapter{NEED-PLAN-IMPETUS}\label{ch:evaluation} -The topic of thesis is about Design and Implementation of a Model Based Architecture for Cobotic Cells. With the advent of tactile internet regularizing coexistence of robots and humans has become imperative, meaning the so called "Cobots" need a new use case architecture for its unit cell to operate safely alongside humans and real world objects. This architecture is based on multiple models each describing one aspect of use case aiding in functionality. For this the thesis described three models namely World Model ,Application Model and Safety Model which are described using different notations. The World Model is a global model describing the robot and other things in the environment giving "on the whole" information about the components in real world, this includes one or more humans which can be moving in and out of world zone,then some obstacles and grasp object which can be a ball or cube. The Application model describes the flow of individual actions of grasping that can be performed by Cobot according to a motion trajectory to accomplish the given task . Lastly, the Safety Model shows how a Cobot achieves goal of not causing any harm to humans or other objects in its proximity and how to respond to them by moving around them appropriately in cases imminent collisions are detected . \\ +The topic of this thesis is about design and implementation of a model based architecture for cobotic cells. With the advent of tactile internet, regularizing coexistence of robots and humans has become imperative, meaning the so called "Cobots" need a new use case architecture for its unit cell to operate safely alongside humans and real world objects and obstacles. This architecture is based on multiple models each describing one aspect of use case aiding in functionality of cobots. For this the thesis described three models namely world model, application model and safety model which are described using different notations.\\ -The real life problem scenario can be described as follows. Robot is expected to perform some job and to make it to do that with safety i.e. detect and evade obstacles / humans , this can be achieved in two different step cases. The models designed and described ,address to this task or problem of first, to train the robot for performing actions according to a preconceived plan using inbuilt “teaching” feature of robot and then doing it safely in real world conditions. The use case can be understood by seeing a scenario where we can train the robot in a laboratory / ideal conditions and give a working functionality to it by giving a design which shows how to perform a task which robot can use to work accordingly . The Franka Panda robot has a teaching mode where we can set a series of poses and grasp actions which can train the robot to perform a task according to a plan and this can be done repetitively by the robot later in scenario 2 which is real world and has added conditions of realism ,for this ,complex conditions are added to teaching capabilities about how to respond when it detects a human in proximity and obstacles in trajectory paths and in addition the simulation adds real world conditions like adding torque to joints as is in real world. +The world model is a global model describing the cobot and other things in its environment, giving "on the whole" information about the components in real world a cobot has, this includes one or more humans who can be moving in and out of cobotic world zone, then some obstacles and grasp object which can be a ball or cube.\\ + +The application model describes the flow of individual actions of grasping that can be performed by Cobot according to a motion trajectory to accomplish the given task. This model is all about performing the task and action of the cobot. Lastly, the safety model shows how a Cobot achieves goal of not causing any harm to humans or other objects in its proximity and how to respond to them by moving around them appropriately in cases imminent collisions are detected . \\ + +The real life problem scenario can be described as follows. Robot is expected to perform some job and to make it to do that with safety i.e. detect and evade obstacles / humans, this safety and application can be achieved in two different step cases. The models designed and described ,address to this task or problem of first, to train the robot for performing actions according to a preconceived plan using inbuilt “teaching” feature of robot and then doing it safely in real world conditions.\\ + +The use case can be understood by seeing a scenario where we can train the robot in a laboratory / ideal conditions and give a working functionality to it by giving a design which shows how to perform a task which robot can use to work accordingly and this is known as application model implementation. The Franka Panda robot has a teaching mode where we can set a series of poses and grasp actions manually which can train the robot to perform a task according to a plan and this can be done repetitively by the robot later in scenario 2 which is real world and has added conditions of realism.\\ + +For this ,complex condition are added to application model about how to respond when it detects a human in proximity and obstacles in trajectory paths and in addition this real world simulation adds real world conditions like adding torque to joints as is in real world to see if arm can for example really life an object. \newpage -In scenario one the architecture of robot`s world model is already known and has thus been used ,its teaching capability to train it to move to a coordinate position and then start a trajectory say X to move a position close to an object that is needed to be say picked up and then it can use its gripper to pickup the object and again move arm to another desired location where it want to drop the object and there it releases the gripper to put that object down and thus completing the task. This is smaller use case replication of saying a robot actually moved but here the idea is restricted to only moving arm which is the same when it comes to functionality achieved by robot moving itself or moving its arm as previously mentioned, is fulfilling the same work of detecting things in proximity and achieving the trajectory tasks as well as at same time to do it safely by responding appropriately as per intended use case.So far above description talks about training the robot in scenario 1 and now another scenario is considered which is say a real world task where the robot is made to perform the same work it was trained in Scenario 1 but in real life and this means the safety aspect should now be built into the scenario and for this a safety architecture is constructed which is used by robot, by telling it how to respond when seeing an obstacle like a cube or box for example or a human being. +In scenario one the architecture of robot`s world model is already known and has thus been used ,its teaching capability to train it to move to a coordinate position and then start a trajectory for instance at position X to move a position close to an object that is needed to be say picked up and then it can use its gripper to pickup the object and again move arm to another desired location where it want to drop the object and there it releases the gripper to put that object down and thus completing the task at position Y. This is part of Application Model as described before.\\ + +This is smaller use case replication of saying a robot actually moved but here the idea is restricted to only moving arm which is the same when it comes to functionality achieved by robot moving itself vs moving its arm as previously mentioned, and this is fulfilling the same work of detecting things in proximity and achieving the tasks by completing trajectory as well as at same time to do it safely by responding appropriately as per intended use case programmed for safety.\\ + +So far above description talks about training the robot in scenario 1 and now another scenario is considered which is a real world task where the robot is made to perform the same work it was trained in Scenario 1 but in real life and this means the safety aspect should now be built into the scenario and for this a safety architecture is constructed which is used by robot, by telling it how to respond when seeing an obstacle like a cube or box for example or a human being.\\ + +This sets the tone for the work for this thesis. diff --git a/sections/soa.tex b/sections/soa.tex index a304f4e46095b200a456cd72f570a65d859ad8d7..f207634e1c1b5bda6e1b1e2bfcd404caf461ea39 100644 --- a/sections/soa.tex +++ b/sections/soa.tex @@ -2,56 +2,70 @@ \section {Motion Planning And Simulations} -This Robotics project revolves around the idea of Motion Planning. It is about Design and Implementation of a Model Based Architecture for Cobotic Cells. The basic idea is that we have a Robot which we want to cohabit with humans and make it real world intelligent and this means it has to work in real world where we have obstacles, objects and humans. Accidents are imminent and thus the case study is that the Artificial Intelligence has to be built into the Robot.A Robot is present and then one or more humans and then one or more obstacles in real world. The base of Robot is fixed and the arm is moving and there is a gripper which need to do a pickup and release job. The robot has to be programmed to move and not just move but detect obstacles / humans around the Robot continuously.\\ +This robotics project revolves around the idea of motion planning. It is about design and implementation of a model based architecture for cobotic cells. The basic idea is that there is a robot which has to cohabit with humans and it is an effort to make it real world intelligent and this means it has to work in real world where obstacles, objects and humans are present. Accidents are imminent and thus the case study is that the artificial intelligence has to be built into the robot.\\ -To start with a fictitious plan,the robot uses a motion planner to move arm and pickup an object and then move again according to already planned motion trajectory and release the object at desired location thus completing the task. So far this plan is only about doing the task but sans the idea of any kind of obstacle or human which can cause a hindrance to already planned motion which would thus require an alteration to planned trajectory right at that time instant when sensors detect obstacle and move around the obstacle to reach a coordinate position around the obstacle to a point in pre decided motion plan and then continue motion from there onwards. After the motion planning part a simulation software is used to see if motion trajectory correction is feasible and working in real life and to see how successful it can be.\\ +A robot is present and then one or more humans are in proximity along with one or more obstacles are also present in the real world. The base of Robot is fixed and the arm is moving and there is a gripper which need to do a pickup and release job. The robot has to be programmed to move and not just move but move with safety by detecting obstacles / humans around the robot continuously.\\ -To demonstrate such a concept a world is shown which contains the Robot Panda, its arm, obstacle object which can be a ball or cube box and human beings. The thesis work designs a World Model , an Application Model, and Safety model for which different diagram forms are used and they are discussed further. +To start with a fictitious plan, the robot uses a motion planner to move arm and pickup an object and then move again according to already planned motion trajectory and release the object at desired location thus completing the task. So far this plan is only about doing the task but sans the idea of any kind of obstacle or human which can cause a hindrance to already planned motion which would thus require an alteration to planned trajectory right at that time instant when sensors detect obstacle and move around the obstacle to reach a coordinate position around the obstacle to a point in pre decided motion plan and then continue motion from there onwards. After the motion planning part a simulation software is used to see if motion trajectory correction is feasible and working in real life and to see how successful it can be.\\ + +To demonstrate such a concept a world is shown which contains the robot Panda, its arm, obstacle object which can be a ball or cube box and human beings. The thesis work designs a world model , an application model, and safety model for which different diagram forms are used and they are discussed further. \newpage \section {Modeling - Explaining Choice of Design Depictions} -Thesis work tries to find correct diagram depictions for all three intended Diagrams which are World Model, Application Model and lastly Safety Model. + +Thesis work tries to find correct diagram depictions for all three intended diagrams which are world model, application model and lastly safety model. + \begin{enumerate}[label=(\Alph*)] -\item WORLD MODEL\\ -Unified Modelling Language UML For Class And Object Diagrams For World Model Using Online Visual Paradigm is shown in Fig4.1 and Fig4.2 is displayed above.The UML class model is used to derive the objects and depict in the UML object model. -\begin{figure} - \centering - \includegraphics[width=0.9\linewidth]{../app2} - \caption{ WORLD MODEL UML CLASS DIAGRAM} - \label{fig:app2} -\end{figure} -This World Model Class Diagram has been designed to contain ten classes.The main parent classes are World Object and World Class.The classes Robot and Abstract Object inherit from one class and at same time are aggregated with another class.Relation of Association and Aggregation is used where class quaternion(used only as a data type)is used with WorldObject class as Association as it uses its data type. Relation Aggregation is used where if class World do not exist so would not any of its child classes like HumanSpace, Abstract Object and Robot would not exist and so would not child classes of class Abstract Object namely Grasp Object Obstacles.For this pointers and pointer variables are used in implementation which are explained in later chapters in detail. + + \item WORLD MODEL\\ + + Unified Modelling Language UML For class and object diagrams for world model using the web tool Online Visual Paradigm is shown in Fig 4.1 and Fig 4.2 is displayed above.The UML class model is used to derive the objects and depict in the UML object model.\cite{17} + + \begin{figure} + \centering + \includegraphics[width=0.9\linewidth]{../app2} + \caption{ World Model UML Class Diagram} + \label{fig:app2} + \end{figure} + +This world model class diagram has been designed to contain ten classes. The main parent classes are World Object and World, present on top most level. The classes Robot and Abstract Object inherit from one class and at same time are aggregated with another class. Relation of association and aggregation is used where classes need to use data variable from other classes and if class variable must depend on other class variables for it to exist respectively. Aggregation is used where if the class is not involved its child classes cannot be used. Association is used where one class is related to another just to be able to use other's variables. Both relations use pointers. + \begin{figure} \centering \includegraphics[width=0.9\linewidth]{../app3} - \caption{ WORLD MODEL UML OBJECT DIAGRAM} + \caption{ World Model UML Object Diagram} \label{fig:app3} \end{figure} + \newpage -\item APPLICATION MODEL – BUSINESS PROCESS MODELING NOTATION USING \\ - MODELIO \\ - -Business Process Modelling Notation(BPMN) For Application Model Using Modelio was chosen for Application Model.Depicted in Figure 4.3.\\ -This was found to be good choice to show Application process as this shows cells which depict each component in the world model diagram and then allowed to depict the relationship and connection between their components and showing their flow which have a comprehensive and logical consistency among cells. It uses start and end event states and then “if” conditions as well as flow lines with process events and intermediate events to other components of world diagram to construct Application Model. +\item APPLICATION MODEL – BUSINESS PROCESS MODELING NOTATION USING MODELIO \\ + +Business Process Modelling Notation(BPMN) For application model using Modelio was chosen for application model. Depicted in Figure 4.3.\cite{18}\\ + +This was found to be good choice to show application process as this shows cells which depict each component in the world model diagram and then allowed to depict the relationship and connection between their components and showing their flow which have a comprehensive and logical consistency among cells. It uses start and end event states and then “if” conditions as well as flow lines with process events and intermediate events to other components of world diagram to construct application model. In detail components are described as - \\ + +Events, Activities and Gateways. Objects are connected using Sequence Flows , Message Flows and Associations. Each segment is known as frames. + \begin{figure} \centering \includegraphics[width=0.8\linewidth]{../app} - \caption{BPMN APPLICATION MODEL DIAGRAM} + \caption{BPMN Application Model Diagram} \label{fig:app} \end{figure} + \newpage -\item SAFETY MODEL DEPICTION USING MODELIO UML STATE CHART \\ -\end{enumerate} + +\item SAFETY MODEL DEPICTION USING UML STATE CHART \\ + \begin{figure} \centering \includegraphics[width=1.0\linewidth]{../app4} - \caption{SAFETY MODEL - UML STATE DIAGRAM} + \caption{Safety Model - UML State Diagram} \label{fig:app4} \end{figure} -Refer Fig.4.4 -The start and end events denote the process starting and end. The transition T1 is about human presence. The robot motion begins according to motion already planned using MoveIT but then if the human presence is detected by sensors, it calls MoveIT for new trajectory and proceeds with motion but once again checks if human is detected using if condition and if so then return to Human Present condition from this state and once again a new motion is planned by MoveIT until a state Is achieved where a human is absent and a final transition T2 is executed which proceed to the end event finally.This model can be extended in more detail in the future using this concept along with a different notation that can make the cases more detailed and thus more extensive. MAPE-K Loops can also be used to denote the Safety of a system and in addition computer generated graphics can as well be used to depict the safety model of a system, this enables te research to not get restricted to just BPMN notation for safety models of a system.\\ +In Fig.4.4 The start and end events denote the process starting and end. The transition T1 is about human presence. The robot motion begins according to motion already planned using MoveIT but then if the human presence is detected by sensors, it calls MoveIT for new trajectory and proceeds with motion but once again checks if human is detected using if condition and if so then return to human present condition from this state and once again a new motion is planned by MoveIT until a state is achieved where a human is absent and a final transition T2 is executed which proceed to the end event finally. This model can be extended in more detail in the future using this concept along with a different notation that can make the cases more detailed and thus more extensive. MAPE-K Loops can also be used to denote the safety of a system and in addition computer generated graphics can as well be used to depict the safety model of a system, this enables the research to not get restricted to just BPMN notation for safety models of a system\cite{18}.\\ \begin{figure} \centering @@ -60,30 +74,29 @@ The start and end events denote the process starting and end. The transition T1 \label{fig:3-figure4-1} \end{figure} +Fig.4.5 There has been extensive work done to incorporate safety into real world robots particularly from Sami Haddadin. It has built the robot with technology ranging from making the robot understanding safety i.e by making them softer in approach when operating to preventing any physical collision by embedding injury knowledge into controls. The robot surfaces are made softer and force reduced when in proximity to collision objects up to a level where the robot can affirmatively detect the kind of object in proximity and classify that as a serious or not so seriously unsafe object. Extensive testing has been done on injuring pig skin\cite{19}. -Fig.4.5 There has been extensive work done to incorporate safety into real world robots particularly from Sami Haddadin. It has built the robot with technology ranging from making the robot understanding safety i.e by making them softer in approach when operating to preventing any physical collision by embedding injury knowledge into controls.The robot surfaces are made softer and force reduced when in proximity to collision objects upto a level where the robot can affirmatively detect the kind of object in proximity and classify that as a serious or not so seriously unsafe object.Extensive testing has been done on injuring pig skin.\cite{17} - +\end{enumerate} \newpage \section {Tools Used } \subsection{Setup Environment Using ROS To Run Services ,Motion Planning In RVIZ Using MOVEIT ,GAZEBO For Simulations} + \begin{enumerate}[label=(\Alph*)] - \item ROS -\footnote{https://erdalpekel.de/?p=55 , https://github.com/frankaemika/ , https://moveit.ros.org/ } ROS is an opensource robot operating system. ROS is not a regular OS in sense to not provide regular functions of OS like process management and scheduling but it provides a different set of services and acting like structured communications layer above the host operating systems . ROS is associated with existing frameworks of robots, with brief look on available application software which uses ROS.As Robotics is a wide field and continuously a topic of research and a growing one ,generating code for ROS is not easy. There are different category of robots available with high degree of variation in hardware, thus not enabling programmers to reuse code or develop on modules.In addition the total amount of code needed is too much for regular programmers, as it needs a deep stack starting from driver-level software and continuing up, and also needs abstract reasoning, and more. The required breadth and width of expertise needed is far more than the skills of any single researcher, robotics software architectures must also be able to be integrated with large-scale software . To address to these problems and make life easier for a regular programmer, many robotics researchers, have constructed huge number of frameworks to handle complexity and address to rapid prototyping of software for experiments, thus resulting enabling research in industry and academia . Each of the frameworks were made keeping in mind a purpose, maybe for a response to perceived weakness of other available frameworks, or to place importance on dimensions which were seen as most important in the design process. ROS, the framework is designed not without tradeoffs and prioritizations made during its design cycle which were essential to do in interest of practical uses. It is still thought the tradeoffs will serve well to purposes of large-scale integrative robotics research in a wide variety of uses and cases as robotic systems grow ever more complex. \\ -\item RVIZ / MoveIT -\footnote{ROS: an open-source Robot Operating System } Motion Planning RviZ/MoveIT -MoveIT was used for motion planning as this software lets us alter many different parameters of the robotic components and helps us to create case studies in a world environment for Robot Panda. Here a series of joints and poses is set and then a trajectory for motion planning which is then used to run in a real world simulator. Its main purpose was to introduce an obstacle which is a cube box or which can be a human being and the motion plan is about moving the robot arm around the obstacle to reach a position which was decided earlier in the motion plan.\\ -\item Gazebo -Gazebo for simulations -Gazebo Simulator was used which is real world simulator to run the motion plan from MoveIT . This lets us see if the real world simulation is possible for the conceived motion plan and trajectory . Gazebo also has additional features which can add real time parameters to its simulation like altering torque of joints to see how robot reacts in real world. -\end{enumerate} -\newpage +\item ROS \footnote{https://erdalpekel.de/?p=55 , https://github.com/frankaemika/ , https://moveit.ros.org/ }\\ + +ROS is an opensource robot operating system. ROS is not a regular OS in sense to not provide regular functions of OS like process management and scheduling but it provides a different set of services and acting like structured communications layer above the host operating systems. ROS is associated with existing frameworks of robots, with brief look on available application software which uses ROS. As robotics is a wide field and continuously a topic of research and a growing one ,generating code for ROS is not easy. There are different category of robots available with high degree of variation in hardware, thus not enabling programmers to reuse code or develop on modules. In addition the total amount of code needed is too much for regular programmers, as it needs a deep stack starting from driver-level software and continuing up, and also needs abstract reasoning, and more. The required breadth and width of expertise needed is far more than the skills of any single researcher, robotics software architectures must also be able to be integrated with large-scale software. To address to these problems and make life easier for a regular programmer, many robotics researchers, have constructed huge number of frameworks to handle complexity and address to rapid prototyping of software for experiments, thus resulting enabling research in industry and academia. Each of the frameworks were made keeping in mind a purpose, maybe for a response to perceived weakness of other available frameworks, or to place importance on dimensions which were seen as most important in the design process. ROS, the framework is designed not without tradeoffs and prioritizations made during its design cycle which were essential to do in interest of practical uses. It is still thought the tradeoffs will serve well to purposes of large-scale integrative robotics research in a wide variety of uses and cases as robotic systems grow ever more complex. \\ + +\item RVIZ / MoveIT \footnote{ROS: an open-source Robot Operating System } \\ + +RviZ/MoveIT motion planner was used for motion planning as this software lets us alter many different parameters of the robotic components and helps to create case studies in a world environment for robot Panda. Here a series of joints and poses is set and then a trajectory for motion planning which is then used to run in a real world simulator. Its main purpose was to introduce an obstacle which is a cube box or which can be a human being and the motion plan is about moving the robot arm around the obstacle to reach a position which was decided earlier in the motion plan.\\ -\section {Repos Used} -\subsection{ERDAL`S Repositories And How They Are Used With Tools And Running Simulations} -\footnote{https://erdalpekel.de/?p=55 } -Erdal has provided tutorial to connect MoveIt to a simulated Panda Robot and for this they have provided three repositories namely frankaros , pandamoveitconfig and pandasimulation. They help to build the workspace and use MoveIt and other simulation software to motion plan and set and modify parameters for it. It thus helps us to connect the robot in MoveIT to Gazebo simulation to see how motion plan fairs in real life conditions.They form the foundation of how Robot framework works with ROS. +\item Gazebo \footnote{http://gazebosim.org/} +Gazebo simulator was used which is real world simulator to run the motion plan from MoveIT. This lets us see if the real world simulation is possible for the conceived motion plan and trajectory. Gazebo also has additional features which can add real time parameters to its simulation like altering torque of joints to see how robot reacts in real world. +\end{enumerate} + +\newpage