User Tools

Site Tools


Upload failed. Maybe wrong permissions?
adrl:education:completed_projects:silvio2013f

<latex>{\fontsize{16pt}\selectfont \textbf{Development of a Modular Rigid Body Simulation Framework}} </latex>

<latex>{\fontsize{12pt}\selectfont \textbf{[Silvio Hug]}} </latex>
<latex>{\fontsize{10pt}\selectfont \textit{[Semester Thesis, ME]}} </latex>

<latex> {\fontsize{12pt}\selectfont \textbf{Abstract} </latex>

In robotics, different software tools are used for different tasks like motion planning, learning or control. The goal of this project is to provide a common simulation framework for all these tasks. The task of this semester thesis is to co-develop the structure of the framework and to implement the simulation of the robots motion.
The core of the framework is divided into three main parts, which are the simulation world, the robot and its properties and the simulation processes.
Currently one process is implemented to simulate the robot's motion. It consists of the blocks: Forward dynamics, integration, collision detection and contact modeling.
To test the implemented code, a single body robot is simulated, which is dropped on a surface. The whole process is visualized.
Finally, from the test it results, that the different components of the modular framework could be merged successfully, the implementation of the different external tools and libraries worked and at the end a simple motion simulation run.

<latex> {\fontsize{12pt}\selectfont \textbf{Modular Simulation Framework} </latex>
The data structure of the simulation framework is presented in the figure below. The goal is to implement different tools in one framework. Currently, only the simulation of the motion is implemented. However, the framework structure allows that further tools or algorithms, like learning or control, can easily be added.

The core contains the main components for the simulation. It is divided into the three parts: back-end, environment and robot.
The component back-end is the base of the simulation. It contains all blocks, which can be used for the simulation. Currently, the collision detection, integration and contact modeling is available.
In the environment all the objects, which are used for the simulation, are defined.
The component robot contains all the properties of a robot, such as the dynamics, the kinematics and the states.

<latex> {\fontsize{12pt}\selectfont \textbf{Simulation of the Robot's Motion} </latex>
The simulation of the motion is presented in the figure below. It consists of individual blocks, which are separately defined and then combined to a simulation loop. The tool Robotics Code Generator is used, which generates the code for the forward dynamics based on a generic robot model. The collision detection is handled with an external library, where an interface has been created. For the other two blocks an integration algorithm and a contact model are implemented.

In the Forward Dynamics the joint accelerations are calculated over the equation of motion depending on the current joint states, the control input and the external forces. The joint accelerations are passed to the Integrator, where the joint states are updated. In the Kinematics block, these joint states are used to update the object states: Position, orientation and velocity for each object. These object states plus the appearance are passed to the Collision Detector. There, the collision between each link and the environment is checked. It returns all occurring collisions and passes them to the Contact Force Calculator. There the contact forces are calculated. They are given in world coordinates. Therefore, they have to be transformed to the joint space to fit the external forces of the Forward Dynamics block.

<latex> {\fontsize{12pt}\selectfont \textbf{Test Run} </latex>
To check the functionality of the framework, especially of the simulation of motion, some simple tests are run. A robot with no joint and only one body is initialized. It is dropped from a certain height on a given surface. The whole process is visualized. It is investigated if collisions are detected and if the resulting forces are applied. In the test runs different shapes and different orientation for the robot are used.
Almost all of the combinations of shapes and orientations showed good results. One simulation, with a cylinder dropping on the ground, is shown in the figures below.

<latex> {\fontsize{12pt}\selectfont \textbf{Conclusion} </latex>
The components used for the simulation of the motion of a robot, such as the robot properties, the back-end with the blocks of one simulation loop as well as the whole object handling, are implemented. The different parts interact with each other and a first small simulation runs. The adaptation to the visualization was successful. The integration of the external tools and libraries, such as the Flexible Collision Library and the dynamics and kinematics from the Robotics Code Generator, worked.

adrl/education/completed_projects/silvio2013f.txt ยท Last modified: 2014/05/06 02:25 (external edit)