📄 hellibash-tdp-2008.tex~
字号:
% HelliBASH Team Description Paper\documentclass{llncs}\usepackage{graphicx}%\textwidth=450pt\begin{document}\title{HelliBASH 3D Soccer Simulation \\Team Description Paper \\for RoboCup 2008}\author{Sina Saharkhiz (s\_saharkhiz@allamehelli.ir),\\ Maziar Amini Zanjani (m\_aminizanjani@allamehelli.ir),\\ Mohammad Aslani (m\_aslani@allamehelli.ir),\\ Seyyed Mehran Kholdi (m\_kholdi@allamehelli.ir)\\ Supervisor: Ali Nadalizadeh (nadalizadeh@gmail.com)}\institute{Allame Helli High School (NODET)}\maketitle\begin{abstract}The goal of this paper is to describe "HelliBASH" 3D soccer simulation team researches and current status of our team. Here, we go on explaining some facts about the simulation base, the basic skills that a humanoid robot should contain, and some factors which are necessary to save the stability of a biped.\end{abstract}\section{Introduction}Staring from a point to describe 3D soccer simulation, we should notice that a soccer agent thinks and decides about which action (containing the actions of: walking, turning, shooting, standing up, etc.) should be done next. To what should be done as the next action, the agent must pay attention to a plenty of parameters (including: agent's position, ball's position , gyro rate ,etc.) Also, in order to have a good play, there should be some kind of co-operation between the agents.\section{Behaviors}\begin{figure}[htp]\centering\includegraphics[scale=0.5]{pics/BaseStructure.eps}\caption{}\label{fig:My Label}\end{figure}Soccer simulation server sends some datas to the agent. The agent must parse the datas and make decision to perform the best action. Then the agent sends the specified commands back to server. \\The agents must contain some procedures, which manage the behaviors of them. It's obvious that a normal human soccer player, has got these abilities. In order to reach our goal, the agent must have some basic (but necessary) skills. \\We devided our agent's behavior into some advanced skills and basic skills. Each advanced skill use some basic skills, and each basic skill is related to the joints directly and make them move. The agent has some plans which are named as goalkeeper plan, defender plan, midfielder plan and striker plan. It runs a plan according to the player type, and the plan runs the advance skill that is depended to that player type. \\Some of agent's advanced skills has been listed below:\begin{enumerate}\item (For the GoalKeeper): saving the ball.\item The ability to walk and saving it's stability. (which are very important skills)\item Finding the ball, turning toward it, walking toward, stopping near the ball, aligning the body with the ball, shoot (Fig.3).\begin{figure}[htp]\centering\includegraphics[scale=.3]{pics/shoot.eps}\caption{}\label{fig:My Label}\end{figure}\item Having a plan for the play (thought, we should notice that everything isn't going to happen, the way it must)\end{enumerate}\section{Walking}Walking skill is the most important (and maybe the most difficult) skill. There are two main factors in walking:\begin{enumerate}\item Stability:\\The main parameter in walking skill is stability. High stability equals walking faster. There are some important parameters to improve the robot stability.\cite{2}\\We can name some easy and static algorithms that let the robot to walk statically, but they are slow. As an example we can name "step by step walking" (making the robot stable after every footstep). So it's better to look for a dynamic algorithm.\item Speed:\\As mentioned above, this item, can be considered as a subsequence of the Stability, but it's important enough to name it as a seperate item\end{enumerate}\section{Humanoid stability}Between an agent's skills, stability is an important problem. The robot must be stable in all of skills like walking, standing up, etc. So it's necessary to use stability algorithms to make the biped stable. Some of the mentioned factors are listed below:\begin{enumerate}\item Center Of Mass (COM)\\Assuming that each part of the robot's body (shown by a box) has a specific mass and dimensions, we can calculate the COM point of each box. At last we can calculate the COM point of whole body.\\If shadow of COM point falls in the support polygon, the situation is stable. (Notice that support polygon is the locus of points of feet that are on the ground and the mass of robot is on them.)\\The most stable situation is reached when shadow of COM point is located in the center of support polygon.So, our goal is to move the joints in such a way that shadow of COM point gets located in the center of the support polygon.\\We can find the COM point from the formula below:\begin{center}$ X_{COM} = \frac{\sum_{i=1}^n M_{xi}}{\sum_{i=1}^n F_{xi}} = \frac{\sum_{i=1}^n m_ix_{ci}}{\sum_{i=1}^n m_i} $\end{center}\begin{center}$ Y_{COM} = \frac{\sum_{i=1}^n M_{yi}}{\sum_{i=1}^n F_{yi}} = \frac{\sum_{i=1}^n m_iy_{ci}}{\sum_{i=1}^n m_i} $\end{center}$ M_i $ is the mass of $i$th box and $(x_{ci},y_{ci})$ is the location of the center of mass of the $i$th box. \\We use these formulas for computing th COM point and then, depending on where the point was, we decide what to do. If the point wasn't in the support polygon, we choose one of the cases below:\\\begin{figure}[htp]\centering\includegraphics[scale=.4]{pics/COM.eps}\caption{}\label{fig:My Label}\end{figure}There might be 4 kind of diffrent situations (Look at the red crosses)\\1. Full Stable\\2. Stable, but it can be more stable\\3. Moves the hand\\4. Moves the hip\\\item Zero Moment Point (ZMP)\\A useful dynamic stability parameter is Zero Moment Point. ZMP is a point on the ground where total momentum generated (due to gravity and inertia) equals zero. Each part of robot's body has a momentum to a specific direction, and the average momentum of whole robot's body is the ZMP which is what we want. If the ZMP position is in the support polygon, the robot has less momentum and more stability. ZMP is also known as the Center Of Pressure (COP).\cite{1}\begin{center}$ X_{ZMP} = \frac{\sum_{i=1}^n m_i(\ddot{z}_i-g_z)x_i-\sum_{i=1}^n m_i(\ddot{x}_i-g_x)z_i-\sum_{i=1}^n (\dot{T}_y)_i}{\sum_{i=1}^n m_i(\ddot{z}_i+g_z)}$\end{center}\begin{center}$ Y_{ZMP} = \frac{\sum_{i=1}^n m_i(\ddot{z}_i-g_z)y_i-\sum_{i=1}^n m_i(\ddot{y}_i-g_y)z_i-\sum_{i=1}^n (\dot{T}_x)_i}{\sum_{i=1}^n m_i(\ddot{z}_i+g_z)}$\\$ (\dot{T}_x)_i , (\dot{T}_x)_i $ denote x, y components of time derivatives of the $i$th box angular momentum.\end{center}\end{enumerate}\section{Tracking control}Controlling the humanoid robot divides into two parts:\\The 1st part is to do the needed calculation before running the agent and then generating the best algorithm.\\The 2nd part is real-time controlling. In this part another algorithm is running parallel the main algorithm (which was generated by the offline trajectory generation). This algorithm will do a correction proccess on the main algorithm with analyzing the effective factors in walking.\cite{3,5}\begin{enumerate}\item Offline Trajectory Generation\\One of the best algorithms for humanoid robot's walking skill is the path generation algorithm. In this algorithm, first we generate the body's path, and then, in each cycle, we set the angles of joints in such a way that each joint gets into the correct place.\cite{4}\begin{figure}[htp]\centering\includegraphics[scale=0.3]{pics/pathgeneration.eps}\caption{}\label{fig:My Label}\end{figure}\item Real-Time motion control\\There are some dynamic factors that affect the robot in such a way, that they prevent us from using static algorithm for using a skill. So we have to use some kind of dynamic algorithm, so that we can keep our robot stable. Dynamic stability is the most important problem in controlling a humanoid robot. This algorithm must check robot stability with robot's sensors (such as gyro rate sensor, feet force resistance sensor or calculating the COM or ZMP). If the algorithm detects any instability, it will try to correct the main algorithm. If the generated algorithm worked correctly for several times, the agent will save the algorithm in the main algorithm for future uses (Self Learning).\end{enumerate}\bibliographystyle{plain}\bibliography{voorstel}\end{document}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -