Skip to content
Snippets Groups Projects
Commit 8cdeafab authored by Nikhil Ambardar's avatar Nikhil Ambardar
Browse files

KHAMOSH

parent b938f0aa
No related branches found
No related tags found
No related merge requests found
@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}
}
@Article{2,
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},
}
@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}
}
@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}
}
@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}
}
@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}
}
@Book{11,
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}
}
@Book{13,
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}
}
@Book{15,
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}
}
@Article{17,
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},
}
target clean:
latexmk -C
rm *.bbl *.tdo *.bpn *.run.xml
target:
`pwd`/run
[![pipeline status](/../badges/master/pipeline.svg)](../../pipelines)
* [Latest PDF online](/../-/jobs/artifacts/master/file/thesis.pdf?job=build)
* [Build Log](/../-/jobs/artifacts/master/file/build_thesis.log?job=build)
* [diff to last tag](/../-/jobs/artifacts/master/file/difftag_thesis.pdf?job=diff)
* [diff to last commit](/../-/jobs/artifacts/master/file/diffcommit_thesis.pdf?job=diff)
Helpful documents
* [(German) manual for the TU LaTeX template](http://mirrors.ctan.org/macros/latex/contrib/tudscr/doc/tudscr.pdf)
* [Ein Anwenderleitfaden für das Erstellen einer wissenschaftlichen Abhandlung](http://mirrors.ctan.org/macros/latex/contrib/tudscr/doc/tutorials/treatise.pdf)
\ No newline at end of file
@book{haddadin2013towards,
title={Towards safe robots: approaching Asimov’s 1st law},
author={Haddadin, Sami},
volume={90},
year={2013},
publisher={Springer}
}
@book{goossens94,
author = {Goossens, Michel and Mittelbach, Frank
and Samarin, Alexander},
title = {The LaTeX Companion},
date = {1994},
publisher = {Addison-Wesley},
location = {Reading, Massachusetts},
language = {english},
}
@book{knuth84,
author = {Knuth, Donald E.},
title = {The \TeX book},
date = {1984},
maintitle = {Computers \& Typesetting},
volume = {A},
publisher = {Addison-Wesley},
location = {Reading, Massachusetts},
language = {english},
}
@manual{hanisch14,
author = {Hanisch, Falk},
title = {Ein \LaTeX"=Bundle für Dokumente im neuen Corporate
Design der Technischen Universität Dresden},
date = {2014},
subtitle = {Benutzerhandbuch},
location = {Dresden},
language = {german},
}
#!/bin/sh
latexmk -pdf thesis.tex
\chapter{BACKGROUND}\label{ch:basics}
\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}. \\
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.\\
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.
\begin{figure}
\centering
\includegraphics[width=0.8\linewidth]{../../FRANKA_EMIKA}
\caption{ Robot Franka Panda Emika Image Source:https://robots-blog.com/2016/05/10/franka-emika-everybodys-robot/ }
\label{fig:frankaemika}
\end{figure}
\newpage
\section{Franka Panda Emika - Features}
Few Important 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.
\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.
\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.
\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.
\begin{figure}
\centering
\includegraphics[width=0.8\linewidth]{../../bras-robotique-choisir-comparaison}
\caption{Image Source : Panda Skills Sensivity Video Screenshot}
\label{fig:bras-robotique-choisir-comparaison}
\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 .
\chapter{DIAGRAMS}\label{ch:conclusion}
\blindtext
\chapter{Einleitung}\label{ch:introduction}
Thematische Einführung, Motivation
\paragraph{Ziel der Arbeit:} Konzept entwickeln, welches Zonenbasierte MRI mit Kraftsteuerung vereinigt.
Aufbau der Thesis vorstellen
In~\Cref{ch:conclusion} kommt die Zusammenfassung.
\chapter{Erprobung der Anwendungsinstallation}\label{ch:evaluation} \chapter{EVALUVATION}\label{ch:conclusion}
\section{Results}
\subsection{WORLD MODEL TEST RESULTS}
The implementation section gives out results for the Position and Orientation of Joints of Robot Franka Panda Emika .\\
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
}
\begin{lstlisting}
pandalink1 Position is x=0,y=0,z=0.333
pandalink2 Position is x=0,y=0,z=0.333
pandalink3 Position is x=-0.120566,y=-1.81861e05,z=0.625095
....
pandalink1 Orientation is w=1,x=0,y=0,z=7.54195e05
pandalink2 Orientation is w=0.693616,x=-0.693595,y=-0.137573,z=-0.137468
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
}
\begin{lstlisting}
pandalink1 Position is x=0,y=0,z=0.333
pandalink2 Position is x=0,y=0,z=0.333
pandalink3 Position is x=-0.00290409,y=0.296506,z=0.442232
....
pandalink1 Orientation is w=0.703636,x=0,y=0,z=0.710561
pandalink2 Orientation is w=0.120731,x=-0.695508,y=-0.127549,z=0.696724
pandalink3 Orientation is w=0.443721,x=-0.314109, y=0.478016,z=0.68989
....
\end{lstlisting}
This show a changed set of values for position and orientation for all joints of Robot Franka Panda .
\blindtext
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\includegraphics[scale=0.8]{OMG_MOF_4levels} \includegraphics[scale=0.8]{OMG_MOF_4levels}
\caption{Das ist eine schlechte Grafik --- zu viele Pixel. Versuche Vektorgrafiken zu nutzen. Selbst malen geht gut mit draw.io powerpoint \caption{CAPTION REPLACED
oder inkscape}\label{fig:mof} }\label{fig:mof}
\end{figure} \end{figure}
Wenn eine Abbildung verwendet wird, muss diese immer unbedingt im Text referenziert und beschrieben werden. Wenn eine Abbildung verwendet wird, muss diese immer unbedingt im Text referenziert und beschrieben werden.
......
\chapter{Grundlagen}\label{ch:basics}
\input{sections/figures}
\input{sections/install}
\section{Was ist ABC?}
\blindtext
\chapter{IMPLEMENTATION}\label{ch:conclusion}
\section{About The Task}
\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.\\
Then the Motion is planned in Rviz using the arrows that move the parts of robots arm and executed in Gazebo thus changing the over all position of robot. After this stage the program is once again built and run and this now displays the new changed values for robot joints position and orientation in Gazebo simulator. The results are then shared in evaluation section. More details about the tools and attributes they can handle are described below.
\newpage
\section{Tools Used}
The tools used for implementation stage in the task are -
\subsection{Clion IDE}
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}
\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.
\newpage
\subsection{MoveIT-Rviz}
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}
\end{figure}
Fig.6.2 This is what Rviz motion planner looks like. The robot is stationary in this case and can be moved using arrows displayed in different colors to attempt motion in different directions.The 7 joint of Robot Panda give it immense flexibility but there maybe some motions which are not possible. The Displays on the top left shown are showing various different parameters which Rviz can help tune and change.Some of them are Robot Description and Planning Scene Topic and there is Plan and Execute button which can be used to run the plan once the arm is moved to a new position termed as final position. The plan can be executed in Gazebo Simulator by clicking Plan and Execute button and the trajectory is visible in the Rviz and then almost immidiately the Gazebo simulator executes the motion.\\
When starting RVIZ for first time there is an empty world and then Add button need to be clicked in Displays section .The option of Motion Planning is selected from the list.This enables us to set various field parameters and their values like some of them are Fixed Frame , Robot Description , Planning Scene Topic , Planning Group and Planning Request and more like Planning Trajectory and many more and they can be explored further using online tutorials provided by ROS MoveIT.
\newpage
\subsection{Gazebo}
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}
\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
\newpage
\subsection{Gitlab}
To upload code as package to a central repository. This is a widely used repository for students in university setting.
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}
\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.\\
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.\\
The following paragraphs describe the modules of the program used in implementation.\\
\lstset {language=C++}
\lstset{
basicstyle=\fontsize{11}{11}\selectfont\ttfamily
}
\begin{lstlisting}
int main(int argc, char** argv) {
ros::init(argc, argv, "ROSNODE1");
ros::NodeHandle nodehandle("namespacename");
ros::AsyncSpinner spinner(1);
spinner.start();
ROSINFO("HELLO, WORLD");
\end{lstlisting}
Here the main function is defined and the ROS node defined and initialized. Also a Node handle is specified and a spin loop is initiated to start the program .An output message is then printed which in this case is HELLO WORLD.\\
\lstset {language=C++}
\lstset{
basicstyle=\fontsize{11}{11}\selectfont\ttfamily
}
\begin{lstlisting}
abstractobject o1;
graspobject o2;
hand o3;
humanspace o4;
joint o5g;
obstacle o6;
robot o7;
robotfpe o8;
world o9;
worldobject o10;
\end{lstlisting}
This is an example of declaring objects for all the classes which are included into the main node file \lstinline{robot_models_node.cpp} ,using header files.
Here objects are defined which are later used to input values into variables defined in the classes.
\lstset {language=C++}
\lstset{
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
}
\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
}
\begin{lstlisting}
while (nodehandle.ok()) {
for (const auto topic : ROSNODE1::topics)
{
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
}
\begin{lstlisting}
try {
transformStamped1=tfBuffer.lookupTransform("world",o5a.name,ros::Time(0));
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
}
\begin{lstlisting}
o5a.p1[0]=transformStamped1.transform.translation.x;
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;
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 .
\chapter{INTRODUCTION}\label{ch:introduction}
\paragraph{Objective Of Thesis:} Design and Implementation of a Model-based Architecture for Cobotic Cells.\\
\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}.
\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{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}.
\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}.
\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}.
\subsection{Robots in Construction for Homes}
Construction robots can be used for working in hazardous construction cites. \cite{8}.
\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}
\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{Pre-Programmed 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.
\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.
\section {Expectations From Robots}
Laws of Robotics which define three expectations from the field of Robotics are :\\
‒ A robot must not cause 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 must protect its existence unless in a situation in conflicts with the First or Second Law.
\chapter{MOTIVATION}\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 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.
\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.
\chapter{PAPERS REFERRED}\label{ch:conclusion}
\blindtext
\chapter{Problemanalyse und Modellierung}
\blindtext
\todo[inline]{Write some more}
\begin{lstlisting}[language=AST,label={lst:example-ast},caption={Example AST}]
RailwayContainer ::= Route* Region*;
abstract RailwayElement ::= <Id:int>;
Region : RailwayElement ::= TrackElement* Sensor*;
Semaphore : RailwayElement ::= <Signal:Signal>;
Route : RailwayElement ::= <Active:boolean> SwitchPosition*;
SwitchPosition : RailwayElement ::= <Position:Position>;
Sensor : RailwayElement;
abstract TrackElement:RailwayElement;
Segment : TrackElement ::= <Length:int> Semaphore*;
Switch : TrackElement ::= <CurrentPosition:Position>;
\end{lstlisting}
%
Das Listing~\ref{lst:example-ast} zeigt eine beispielhafte Grammatik, welche im Attribute im folgenden Listing genutzt wird:
\lstinputlisting[language=JRAG,style=unboxed]{code/requiredSensor.jrag}
\chapter{STATE OF THE ART}
\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.\\
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.
\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.
\begin{figure}
\centering
\includegraphics[width=0.9\linewidth]{../app3}
\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.
\begin{figure}
\centering
\includegraphics[width=0.8\linewidth]{../app}
\caption{BPMN APPLICATION MODEL DIAGRAM}
\label{fig:app}
\end{figure}
\newpage
\item SAFETY MODEL DEPICTION USING MODELIO UML STATE CHART \\
\end{enumerate}
\begin{figure}
\centering
\includegraphics[width=1.0\linewidth]{../app4}
\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.\\
\begin{figure}
\centering
\includegraphics[width=0.6\linewidth]{../3-Figure4-1}
\caption{Paper : On Making Robots Understand Safety Image Source :https://journals.sagepub.com/doi/pdf/10.1177/0278364912462256}
\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 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}
\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
\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.
\chapter{Zusammenfassung}\label{ch:conclusion}
\blindtext
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst} \RequirePackage[nenglish=nenglish-x-latest]{hyphsubst}
\documentclass[ngerman,twoside]{tudscrreprt} \documentclass[nenglish,twoside]{tudscrreprt}
%\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}} %\usepackage{selinput}\SelectInputMappings{adieresis={ä},germandbls={ß}}
%\usepackage[T1]{fontenc} %\usepackage[T1]{fontenc}
\usepackage{babel} \usepackage{babel}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment