EXOSKELETONS
The following has evaluated to null or missing:
==> mostrarTituloH2 [in template "20102#20129#105831" at line 4, column 40]
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign hayH2 = getterUtil.getBoolean... [in template "20102#20129#105831" at line 4, column 1]
----
1<#assign title = .vars['reserved-article-title'].getData()>
2<div class="containerInterior">
3<#assign hayH1 = getterUtil.getBoolean(MostrarTituloH1.getData())>
4<#assign hayH2 = getterUtil.getBoolean(mostrarTituloH2.getData())>
5
6<#if hayH1>
7 <h1 aria-level="1" role="heading" id="titulo">${layout.getName(locale)}</h1>
8</#if>
9<#if hayH2>
10
11 <#if TituloContenido.getData()?? && TituloContenido.getData() != "">
12 <#assign contenido = TituloContenido.getData()>
13 <#else>
14 <#assign contenido = title>
15 </#if>
16
17 <#if hayH1>
18 <p id="subtitulo"
19 aria-level="2"
20 role="heading"
21 style="
22 color: #007f33 !important;
23 font-size: 45px;
24 font-family: 'IberPangea Medium', sans-serif;
25 line-height: 45px;
26 margin-top: .75em;
27 margin-bottom: .9em;">
28 ${contenido}
29 </p>
30 <#else>
31 <p id="subtitulo"
32 style="
33 color: #007f33 !important;
34 font-size: 45px;
35 font-family: 'IberPangea Medium', sans-serif;
36 line-height: 45px;
37 margin-top: .75em;
38 margin-bottom: .9em;">
39 ${contenido}
40 </p>
41 </#if>
42
43</#if>
44
45<#if getterUtil.getBoolean(MostrarCategorias.getData())>
46
47
48
49 <#assign journalArticleId = .vars['reserved-article-id'].data>
50 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
51
52 <#assign assetCategoryPropertyLocalService = serviceLocator.findService("com.liferay.asset.category.property.service.AssetCategoryPropertyLocalService") />
53
54 <#assign article = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data) />
55 <#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
56 <#assign asset = assetEntryLocalService.getEntry('com.liferay.journal.model.JournalArticle', article.resourcePrimKey) >
57 <#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") />
58
59 <p class="tag-categorias">
60
61 <#list asset.getCategories() as category>
62
63
64
65 <#if assetCategoryPropertyLocalService.fetchCategoryProperty(category.getCategoryId(), "friendlyURL")??>
66
67 <#assign categoryFriendly = '/tag/' + assetCategoryPropertyLocalService.fetchCategoryProperty(category.getCategoryId(), "friendlyURL").getValue() />
68
69 <#if layoutLocalService.fetchLayoutByFriendlyURL(groupId, false, categoryFriendly)??>
70 <#assign categoryLayout = layoutLocalService.fetchLayoutByFriendlyURL(groupId, false, categoryFriendly) />
71 <#assign categoryLayoutURL = portalUtil.getLayoutFullURL(categoryLayout, themeDisplay) />
72
73 <a class="tag-categoria" href="${categoryLayoutURL}">${category.getTitle(locale)?cap_first}</a>
74
75 <#else>
76 <a class="tag-categoria" href="/tag/#">${category.getTitle(locale)?cap_first}</a>
77
78 </#if>
79 </#if>
80
81
82
83
84 </#list>
85
86 </p>
87
88</#if>
89<div id="contenidoEntradilla">${DescripcionDetalleContenido.getData()}</div>
90
91
92<#if ContenidoWebcofl.getSiblings()?has_content>
93 <#list ContenidoWebcofl.getSiblings() as cur_ContenidoWebcofl>
94 <#assign
95 webContentData = jsonFactoryUtil.createJSONObject(cur_ContenidoWebcofl.getData())
96 />
97
98 <#if webContentData?length gt 5>
99 <@liferay_asset["asset-display"]
100 className = webContentData.className
101 classPK = webContentData.classPK?number
102 />
103
104 </#if>
105
106
107 </#list>
108</#if>
109</div>
110<@liferay_util["html-top"]>
111<style>
112 #decPagination div.containerInterior p#subtitulo {
113 font-family: "Iberpangea Medium";
114 font-size: 45px;
115 line-height: 45px;
116 color: #007F33;
117 margin-bottom: 20px;
118 }
119
120
121 div.contenidoCentrado div.contenidoInterior div.containerInterior p.tag-categorias a.tag-categoria:focus{
122 outline: 2px solid rgba(0, 0, 0, 0.7) !important;
123 }
124 p.tag-categorias > .tag-categoria {
125 width: auto !important;
126 max-width: inherit !important;
127 }
128
129 div.faldon h2 {
130 width: 100%;
131 float: left;
132 font-size: 1.26em;
133 font-family: IberPangeaText Light, sans-serif;
134 margin-bottom: 2em;
135 border-bottom: 1px solid #e0e0e0;
136 padding-bottom: .8em;
137 color: #427314 !important;
138
139 line-height: 1.35em;
140 margin-top: .75em;
141 }
142 .contenidoInterior div.faldon h2+ul li:before {
143 margin: .15em 0 0 -1.75em;
144 font-size: 1em;
145 }
146 .cursiva_texto {
147 font-style: italic;
148 }
149 .contenidoInterior h1 {
150 font-family: 'IberPangea', sans-serif !important;
151 font-size: 32px !important;
152 border: none !important;
153 line-height: 36px !important;
154 letter-spacing: 0px !important;
155 color: #00402A !important;
156 padding-left: 0em !important;
157 margin-bottom: 14px !important;
158 }
159 p span.table a.enlace-actualidad[href*="/tag/"],
160 p span.table a.enlace-actualidad[href*="/label/"],
161 p.tag-categorias a.tag-categoria[href*="/tag/"],
162 p.tag-categorias a.tag-categoria[href*="/label/"]{
163 line-height: 23px !important;
164 }
165 .contenidoInterior #contenidoEntradilla p.entradilla {
166 font-family: IberPangeaText, sans-serif !important;
167 font-size: 17px !important;
168 line-height: 23px !important;
169 font-weight: 700;
170 color: #615D5A !important;
171 margin-top: 2em;
172 }
173
174 .contenidoInterior h2#subtitulo{
175 font-family: 'IberPangea Medium', sans-serif !important;
176 margin-bottom: 0.4em;
177 }
178 #decPagination div.containerInterior{
179 max-width:980px;
180 margin:0 auto 25px;
181 }
182 #decPagination div.containerInterior h1#titulo{
183 font-family:"Iberpangea Medium";
184 font-size:32px;
185 line-height:36px;
186 color:#00402A;
187 text-transform:none;
188 border-left:none;
189 margin-top:20px;
190 }
191 #decPagination div.containerInterior h2#subtitulo{
192 font-family:"Iberpangea Medium";
193 font-size:45px;
194 line-height:45px;
195 color:#007F33;
196 margin-bottom:20px;
197 }
198 #decPagination div.containerInterior p.tag-categorias{
199 margin-bottom:30px !important;
200 }
201 #decPagination div.containerInterior p.tag-categorias a.tag-categoria{
202 margin-right:20px;
203 color:#00402A;
204 }
205 #decPagination div.containerInterior div#contenidoEntradilla p.entradilla{
206 font-family:"IberpangeaText";
207 font-size:20px ;
208 line-height:26px;
209 color:#615D5A;
210 }
211 @media all and (max-width:500px){
212 #decPagination div.containerInterior h1#titulo{
213 font-size:26px;
214 line-height:36px;
215 }
216 #decPagination div.containerInterior h2#subtitulo{
217 font-size:35px;
218 line-height:35px;
219 margin-bottom:20px;
220 }
221 #decPagination div.containerInterior div#contenidoEntradilla p.entradilla{
222 font-family:"IberpangeaText Bold";
223 font-size:16px ;
224 line-height:24px;
225 }
226 }
227 @media screen and (max-width: 47.95em) {
228 .contenidoInterior h1 {
229 font-size: 26px !important;
230 }
231 .contenidoInterior h2#subtitulo{
232 font-size: 35px;
233 line-height: 35px;
234 color: #007F33 !important;
235 margin-bottom: 1em;
236 }
237 .contenidoInterior #contenidoEntradilla p.entradilla {
238 margin-top: 0.8em;
239 }
240 .contenidoInterior #contenidoEntradilla p.entradilla {
241 line-height: 24px !important;
242 }
243 }
244
245
246</style>
247</@>

WHAT IS AN EXOSKELETON?
A robotic exoskeleton is a mechanical device worn by a human being for certain purposes or applications. An exoskeleton is generally considered to be a hard mechanical frame with joints that allow movement of the human operator.
There are other types of exoskeletons that are softer and are worn on the body, supported by the internal skeleton of the human being. In this way, the forces of the attached actuators can be transferred to the body. By type, it can be said that frames of this class can be anthropomorphic or pseudo-anthropomorphic, depending on the degree of resemblance they have to the human body.
Another classification is between motorised and passive exoskeletons. A motorised frame can use hydraulic, electric, pneumatic or any other type of actuator. A passive exoskeleton, on the other hand, does not have any type of motor, and serves to provide mechanical support to people when they are sitting or standing for long periods, or to assist movement by using a spring to store energy.
Passive exoskeletons can be said to help people perform physically demanding tasks, but do not increase human capabilities per se. On the other hand, powered exoskeletons can be classified as assistive or enhancing.
Assistive frames can help a disabled person to walk because they can walk on their own. Assistive exoskeletons have the function of relieving the physical burden of a certain activity. For example, they can provide a percentage of the power needed to walk, so that a person needs to exert less effort to walk. This is similar to the concept of electric-powered bicycles, which assist the rider on slopes, so that the rider can continue pedalling with the same power as on the flat.
As for power-enhancing exoskeletons, their function is more oriented towards increasing the user's strength to, for example, lift heavy weights with ease. They can also help to improve physical endurance, either by walking for longer periods of time, or by performing heavy tasks for longer periods of time.
Motorised exoskeletons can be connected to a control computer and a hydraulic system, for example, or be completely autonomous.

SEE INFOGRAPHIC: Different types of exoskeletons, applications and advantages [PDF]
MAIN APPLICATIONS: IN INDUSTRY, IN HEALTHCARE
There are multiple applications for this type of mechanical frame. They range from industrial applications to health and rehabilitation, and even military applications.
Rehabilitation exoskeletons
Most commonly, exoskeletons are used in the health sector and, in particular, in rehabilitation medicine. This is the original idea of exoskeletons: to help people who have suffered some kind of accident and need to walk or function normally again. Over the years, these devices have been improved and optimised so that they can be used more easily. This type of assistive frame is especially designed to help people who have suffered from diseases such as stroke, for example, or who have some kind of injury and need help to walk again or strengthen their muscles.
Children's exoskeletons
Children's or paediatric exoskeletons are designed for children with mobility problems, such as those affected by spinal muscular atrophy (SMA). These are frames that are adapted to the smallest size of children and meet their needs to the extent that, thanks to these systems, children are able to walk for the first time. There are many examples, such as Atlas 2030, an exoskeleton for children over the age of three, which supports up to a maximum of 40 kilos.
This exoskeleton has tendons, motors and joints, thanks to which children can execute all kinds of movements that are assisted by the frame. Thanks to these devices, many children can take their first steps and strengthen their muscles, and benefit enormously in other aspects such as cognitive, social, play, inclusion and, above all, emotional benefits, both for the child and their family.
Paediatric exoskeletons are indicated for children between the ages of 4 and 10 years with pathologies such as:
- Spinal cord injuries.
- Cerebral palsy.
- Muscle atrophy.
- Muscular dystrophy.
- Myopathies.
- Other neuromuscular diseases causing progressive global weakness.
Military exoskeletons
Another area of application for exoskeletons is the military, as they help to reduce the physical burden on soldiers. It sounds like the stuff of science fiction, but there are several such initiatives, such as the prototypes developed by DARPA at the turn of the century, or Lockheed Martin's ONYX suit, which aims to help soldiers perform knee-intensive tasks, such as traversing difficult terrain. It is believed that these exoskeletons will improve the soldier's protection and physical load, but also the cognitive load through the use of sensors.
Exoskeletons in Industry
Factories and assembly lines, as well as warehouses, are places where an exoskeleton can bring multiple benefits. Heavy, repetitive tasks or tasks that result in awkward postures weigh on workers, which is why some companies are incorporating full-body or limb robotic frames. In this way, it is possible to free them from heavy loads, overexertion, and also makes them more resistant to forced postures throughout the working day. These solutions are not affordable for every company, as they are very costly.
HOW EXOSKELETONS WILL EVOLVE
When it comes to exoskeletons, the term transhumanism comes naturally. This concept refers to an international cultural and intellectual movement that aims to transform the human condition by developing and manufacturing technologies that enhance human capabilities, whether physical, psychological or intellectual.
It is possible that the future of exoskeletons will lead us towards this transhumanism, but despite the enormous advantages they present, there are still some major challenges to overcome.
The power required for its operation
Exoskeletons need to be portable, or do not need to be physically connected to a fixed power supply. For these devices to be viable, they must be completely self-contained.
Their power supplies need to be lightweight, reliable and durable, a combination of requirements that is difficult to achieve at low cost. This is similar to the case with electric car batteries.
Cost
The high cost of these units is a significant barrier. In the case of medical exoskeletons, we are talking about tens of thousands of euros per unit, even for the most affordable options. At present, only the most advanced medical centres with the largest budgets, as well as large industries, can justify these costs.
Robotics as a Service (RaaS) may be a way to progressively democratise these devices for industrial applications, but for users with mobility restrictions, for example, it is a model that also presents certain problems. For most of these people, the costs are prohibitive.
Ergonomics, comfort and range of motion
The reality is that, although exoskeletons help to overcome the physical barriers of human beings, they are far from comfortable. They can be heavy, even if they relieve some of this extra weight on their own, and they can be uncomfortable. The way they are attached to users' bodies can cause uncomfortable, even painful, friction. This is a significant barrier as, although they prevent injury and improve productivity, they are unattractive tools because they are cumbersome to use.
In addition, current exoskeletons have a limited range of motion, far removed from the range of motion of joints in human limbs, so that the mobility of users when wearing an exoskeleton does not reflect natural movement.
These are the main aspects that need to be improved in order for these types of assistive or empowerment devices to become universal solutions available to all. They are the main avenues for the development of a technology that could take us, as human beings, far beyond our maximum physical capabilities.