tag:blogger.com,1999:blog-8859770299865663252024-02-20T06:01:37.024-08:00Rede de Sensores Inerciais para o Equilíbrio de um Robô HumanóideAnonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-885977029986566325.post-89615672793398591182013-12-12T15:15:00.001-08:002013-12-12T15:15:10.627-08:00Validação da Rede de Sensores Inerciais - Resultados ObtidosComo resultados otidos,<br />
<br />
a comparação entre as velocidades angulares obtidas pelos giroscópios e as obtidas pelas servomotores revelou que ambas as curvas apresentaram comportamentos com o mesmo padrão, no entanto, as amplitudes apresentaram algumas divergências. As figuras que se seguem, ilustram os resultados obtidos para a grandeza da velocidade angular.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPkA6LLmwqDMjK0_IhTpjkEXZE7SNzOCSa9ghVbkdJ2q-1AiuCSEE2y2fi7vM0DPWr13SNf47368wG5G2fwsvH29mESXwKYmiRyQuQA52ElWtMFzGWcI5Ul-OvpExF3UA5kL2lTMtObpv8/s1600/ZZ_servo12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPkA6LLmwqDMjK0_IhTpjkEXZE7SNzOCSa9ghVbkdJ2q-1AiuCSEE2y2fi7vM0DPWr13SNf47368wG5G2fwsvH29mESXwKYmiRyQuQA52ElWtMFzGWcI5Ul-OvpExF3UA5kL2lTMtObpv8/s400/ZZ_servo12.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2EBtcXkyHqLsgkeTZl6N6883x8FevvQ9miqo7miu38ZzQUPBVeQVXVmjWQcC-_yAmJtal_QMwFXSBuJfd8N7k5EKD_ZZPOQdYHRd1_PY0tisw8o10HwRT_oUSvYZx5toiWNsNOEAAeMOY/s1600/ZZ_servo13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2EBtcXkyHqLsgkeTZl6N6883x8FevvQ9miqo7miu38ZzQUPBVeQVXVmjWQcC-_yAmJtal_QMwFXSBuJfd8N7k5EKD_ZZPOQdYHRd1_PY0tisw8o10HwRT_oUSvYZx5toiWNsNOEAAeMOY/s400/ZZ_servo13.jpg" width="400" /></a></div>
<br />
<br />
Os resultados obtidos da comparação dos valores da aceleração linear não foram satisfatórios. De uma forma geral, apresentaram-se curvas que não apresentam semelhanças, salvo algumas ocasiões onde é possível observar comportamentos semelhantes apenas em alguns "picos" de aceleração, mesmo com amplitudes de diferentes ordens de grandeza. As duas figuras que se seguem ilustram exemplos da comparação entre curvas de aceleração linear.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijj4sZSJLeFoYRVNipEX57SkWTDziku2wTXLdwmbWt_BixCNtvP-7cRGI4W3WqFws9HfEGJAMKAuvWjeeh64chRLRcFR9qCy8xIdGYn-43FHhX-AocT1JIDB9iXekZEqCahyphenhyphenFWzCPfU9Ne/s1600/accel_ZZ_y_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijj4sZSJLeFoYRVNipEX57SkWTDziku2wTXLdwmbWt_BixCNtvP-7cRGI4W3WqFws9HfEGJAMKAuvWjeeh64chRLRcFR9qCy8xIdGYn-43FHhX-AocT1JIDB9iXekZEqCahyphenhyphenFWzCPfU9Ne/s400/accel_ZZ_y_1.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj07ZK7wHsDrAmNrND0QR9_IL7rXxnIgs-aLFfuXE2_lmMd5GapSfHGxUkk8cLMptxuoVnAtgwyoEwIT-wWA6sjK1FbBm7v5UQGLwvVg-P4OE6CemdnY4DYq5a5FpWalM9YB1pX-uHPjFTp/s1600/accel_ZZ_z_9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj07ZK7wHsDrAmNrND0QR9_IL7rXxnIgs-aLFfuXE2_lmMd5GapSfHGxUkk8cLMptxuoVnAtgwyoEwIT-wWA6sjK1FbBm7v5UQGLwvVg-P4OE6CemdnY4DYq5a5FpWalM9YB1pX-uHPjFTp/s400/accel_ZZ_z_9.jpg" width="400" /></a></div>
<br />
Os resultados obtidos na comparação entre as inclinações obtidas pelos acelerómetros e as inclinações obtidas pela cinemática apresentaram-se satisfatórios. No entanto, em alguns casos foram observadas diferenças significativas nas amplitudes dos valores, mas apenas tendo como referência a inclinação baseada na cinemática direta da perna do robô, não é possível concluir sobre estas divergências. As duas figuras que se seguem representam alguns resultados obtidos para esta grandeza. No primeiro caso apresenta-se a comparação entre curvas, cuja semelhança é elevada, e no segundo caso, uma comparação onde existe a diferença nas amplitudes obtidas.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Wr9B7ed1OTOUia7UQJEJn_6vcsgJZPYzEFiRdTk4ArLN-ySfAYmepPCGMUISOBDPCjxfExa3Ali1OARH6N99Zlpxs2Wb5V0eNzkcXX9GHomph_6bBA88SkdYooQ_KDHklr6CVFtXwfD_/s1600/inclin_ZZ_pitch_6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_Wr9B7ed1OTOUia7UQJEJn_6vcsgJZPYzEFiRdTk4ArLN-ySfAYmepPCGMUISOBDPCjxfExa3Ali1OARH6N99Zlpxs2Wb5V0eNzkcXX9GHomph_6bBA88SkdYooQ_KDHklr6CVFtXwfD_/s400/inclin_ZZ_pitch_6.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8_wxAIPAtkkQ6Q26GZYCEHj1Mhp0AOWl7ZolyqBVT-Spx088tE_vTviPAVa6Z6XPVBoLIk9YChfiQFTd0o403xIKsGVZq_jJoHSacXfcwTN08dqqg61hwzOonkgAu1NI4S_ZZe7goUadI/s1600/inclin_ZZ_pitch_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8_wxAIPAtkkQ6Q26GZYCEHj1Mhp0AOWl7ZolyqBVT-Spx088tE_vTviPAVa6Z6XPVBoLIk9YChfiQFTd0o403xIKsGVZq_jJoHSacXfcwTN08dqqg61hwzOonkgAu1NI4S_ZZe7goUadI/s400/inclin_ZZ_pitch_1.jpg" width="400" /></a></div>
<br />
Em última análise, foi realizado o estudo da redundância sensorial, isto é, o estudo da combinação das leituras de vários sensores sujeitos à mesma situação. As figuras que se seguem representam dois exemplos para os resultados obtidos para a redundância sensorial. Em ambos os casos, foi possível observar ligeiras melhorias.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpsATjyFUA7TzFPwyEK-aIoXIvYQaTQNT464RVYlKJOAR8kfUzGKW3JamuW10UPqCwP54Dso_WFABx1V15X2vPkDpCD-nyiVc-o2GaasYLN_5-PSX7-jsyN6qgBxVe9pDMI9B7Uqw9GG1c/s1600/inclin_ZZ_pitch_redund.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpsATjyFUA7TzFPwyEK-aIoXIvYQaTQNT464RVYlKJOAR8kfUzGKW3JamuW10UPqCwP54Dso_WFABx1V15X2vPkDpCD-nyiVc-o2GaasYLN_5-PSX7-jsyN6qgBxVe9pDMI9B7Uqw9GG1c/s400/inclin_ZZ_pitch_redund.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDUKXEXYf_zpooJfnozfhIigge8Yqi59d6x1u4eZLg8MffZMJbLR4Uzw17Brtl19jyVSo4I52kEZc2bhueESArP1iNDFteEr3Siemb-pOcDxFkNcMoJUSlVllqJAkiW_rVK8Xq8C1p50oq/s1600/ZZ_servo16_gyro_redund.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDUKXEXYf_zpooJfnozfhIigge8Yqi59d6x1u4eZLg8MffZMJbLR4Uzw17Brtl19jyVSo4I52kEZc2bhueESArP1iNDFteEr3Siemb-pOcDxFkNcMoJUSlVllqJAkiW_rVK8Xq8C1p50oq/s400/ZZ_servo16_gyro_redund.jpg" width="400" /></a></div>
<br />Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-92149059047668464712013-12-12T14:26:00.002-08:002013-12-12T14:27:13.668-08:00Validação da Rede de Sensores Inerciais - Grandezas a AvaliarA validação da rede de sensores inerciais prossegue com a análise dos dados obtidos durante a realização das experiências ilustradas na publicação anterior.<br />
<div>
<br /></div>
<div>
Para esta validação foram avaliadas as seguintes grandezas:</div>
<div>
- velocidade angular;</div>
<div>
- aceleração linear;</div>
<div>
- inclinação.</div>
<div>
<br /></div>
<div>
A avaliação da velocidade angular realizou-se através da comparação dos dados dos giroscópios com os dados da posição angular dos servomotores derivada. Esta comparação, para as juntas do tornozelo é realizada diretamente, no entanto, para as juntas dos joelhos e anda, os dados dos servomotores são comparados com o resultado da diferença entre os giroscópios que se encontram adjacentes ao respetivo servomotor.</div>
<div>
<br /></div>
<div>
Para a avaliação das restantes grandezas foi necessário recorrer ao cálculo dos valores de comparação, através de um modelo de cinemática direta desenvolvido para uma perna do robô (apenas para uma porque ambas apresentam movimentos idênticos). Na próxima figura é possível observar uma simplificação de uma perna do robô, a partir da qual partiu o desenvolvimento da cinemática direta.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy8mJxVESu5b-oYrvQDkIQDq0XIR9ZFRYnL1UqqpP186ol-rlKW4dqzu3Q9iQ4G7gGBOGcgKRMQxTJzTcvw2xOQvGYGhXSfjyDSFnOqK5Q5ZsD71yJmCz8DcfpMawUAsJfIqgPVuvPh8RZ/s1600/diagrama_cinematica_perna_simplificado.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy8mJxVESu5b-oYrvQDkIQDq0XIR9ZFRYnL1UqqpP186ol-rlKW4dqzu3Q9iQ4G7gGBOGcgKRMQxTJzTcvw2xOQvGYGhXSfjyDSFnOqK5Q5ZsD71yJmCz8DcfpMawUAsJfIqgPVuvPh8RZ/s400/diagrama_cinematica_perna_simplificado.png" width="126" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Diagrama simplificado de uma perna do robô humanóide.</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
De seguida, seguiu-se a cadeia cinemática a partir do diagrama anterior, representada na figura seguinte.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8RB4AIgsCQvxYOz7KuCd5dTgW2qIJY8j0vWRKGr4-eSZMtpkXZnflOB9exXLcCUWNxloUYWE8gqv_OY9F3MFXuuf3e9FOzjTi2S5-L3RFgk6AvA2vn5Xmuye065U6lF_CpAxBy5CNrLtJ/s1600/diagrama_cinematica_perna_1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8RB4AIgsCQvxYOz7KuCd5dTgW2qIJY8j0vWRKGr4-eSZMtpkXZnflOB9exXLcCUWNxloUYWE8gqv_OY9F3MFXuuf3e9FOzjTi2S5-L3RFgk6AvA2vn5Xmuye065U6lF_CpAxBy5CNrLtJ/s400/diagrama_cinematica_perna_1.png" width="170" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Cadeia cinemática da perna do robô humanóide.</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
Esta cadeia cinemática deu origem à seguinte tabela de Denavit-Hartenberg:</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNnDgHK-DbotqOvqSB5YFAT7EZkMKjiBtGNqYyp_jCUFRhVEPqXx9nAUqq3TRlBh4SPBFgjh510fkkQioiUvxLGjodd8bgq3sJ-r8CS1iLNeW7XazAdmDJWN9QomfdqBi00-BmxoOMF-FN/s1600/tabela_Den_Hartenberg.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNnDgHK-DbotqOvqSB5YFAT7EZkMKjiBtGNqYyp_jCUFRhVEPqXx9nAUqq3TRlBh4SPBFgjh510fkkQioiUvxLGjodd8bgq3sJ-r8CS1iLNeW7XazAdmDJWN9QomfdqBi00-BmxoOMF-FN/s400/tabela_Den_Hartenberg.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Tabela de Denavit - Hartenberg para o modelo de cinemática da perna do robô humanóide.</td></tr>
</tbody></table>
<div>
A partir desta tabela, obtém-se a matriz que define a posição e orientação do último ponto da cadeia cinemática, em relação ao referencial global (situação na base do pé do robô).</div>
<div>
<br /></div>
<div>
A partir dessa matriz, é possível chegar à equação (1), que representa a relação da velocidade de um ponto do sistema cartesiano <i>r </i>com a velocidade das juntas , vetos <i>q .</i> Essa relação é estabelecida pela matriz <i>J , </i>a matriz do Jacobiano.</div>
<div>
<br /></div>
<div>
<div style="text-align: center;">
dr = J · dq (1)</div>
</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: left;">
<div style="text-align: center;">
∆2 r = J · ∆2 q + ∆J · ∆q (2)</div>
<div>
<br /></div>
</div>
<div>
<br /></div>
<div>
Através da diferenciação de (1), obtém-se a equação (2) que permite obter a aceleração em cada ponto da perna do robô humanóide a partir da aceleração dos servomotores. Essa aceleração é utilizada como referência que serve para a avaliação da aceleração linear.</div>
<div>
<br /></div>
<div>
A referência para a inclinação é obtida através da matriz de transformação T que estabelece a relação entre o último referencial da cadeia cinemática com o seu referencial base. </div>
<div>
<br /></div>
<div>
Sendo a matriz T,</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtwxRle4lZi_4y5R8tWJVn7jzOhwCbXhsCVbH9dFe5rGV_c5uP0m7WfNVgzuR_fFl4Ux1EbsRqe-cU4mvLOPOVPTN0Cd3AW6-g5DHn-tGl9-7VyzcLjlf3Ivdb9ku-VZ5VMHElGZkdgn0O/s1600/matriz_T.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="134" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtwxRle4lZi_4y5R8tWJVn7jzOhwCbXhsCVbH9dFe5rGV_c5uP0m7WfNVgzuR_fFl4Ux1EbsRqe-cU4mvLOPOVPTN0Cd3AW6-g5DHn-tGl9-7VyzcLjlf3Ivdb9ku-VZ5VMHElGZkdgn0O/s320/matriz_T.png" width="320" /></a></div>
<div>
<br /></div>
<div>
igualando a submatriz composta pelas primeiras 3 linhas e 3 colunas, com a matriz R</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKQAD6YKv3_NMUrj9y0KeD62NLNQB8Cy7_MXCM6cJQAwtd3KmoEz01QPKAhoKoS6wEZoXD6rISLLSogOb_ww6yKLu2Oig8yaDeAnaFUmld0FOnmECWFxaSaCI-9Q6DufE7MgDQZKBv3eZ6/s1600/matriz_R.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="48" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKQAD6YKv3_NMUrj9y0KeD62NLNQB8Cy7_MXCM6cJQAwtd3KmoEz01QPKAhoKoS6wEZoXD6rISLLSogOb_ww6yKLu2Oig8yaDeAnaFUmld0FOnmECWFxaSaCI-9Q6DufE7MgDQZKBv3eZ6/s400/matriz_R.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
matriz que representa a mesma transformação que T mas em função dos ângulos de Euler, é possível obter a inclinação de qualquer ponto da cadeia cinemática da perna do robô humanóide. Esta inclinação servirá para avaliar os resultados da inclinação calculados pelos dados dos acelerómetros. </div>
<div>
</div>
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-85057932282405489972013-12-12T13:00:00.000-08:002013-12-12T13:00:34.185-08:00Validação da Rede de Sensores Inerciais - Movimentos RealizadosA validação de toda a rede de sensores inerciais, após a sua implementação no robô humanóide, passou pela aquisição dos seus dados durante a realização de movimentos controlados por tele-operação do robô humanóide. Tal foi possível graças a um projeto anteriormente desenvolvido também como contribuição para o PHUA, no qual se desenvolveu um módulo na plataforma ROS, o qual recebe a posição espacial de um dispositivo háptico (controlado por um tele-operador), e com essa posição é calculada a posição angular dos servomotores do robô humanóide através de transformações e um modelo de cinemática inversa. O mesmo módulo ROS permite obter, a cada iteração, a posição angular de cada servomotor do robô humanóide.<div>
<br /></div>
<div>
Em paralelo com o módulo anteriormente referido, o módulo de aquisição de dados da rede de sensores inerciais fornecia a informação de todos os sensores envolvidos na rede.</div>
<div>
<br /></div>
<div>
Com todo este <i>setup </i> foi possível obter as curvas da posição angular de cada servomotor e as curvas de todos os sensores inerciais da rede, durante a realização de 3 tipos de movimento:</div>
<div>
<br /></div>
<div>
- 1 . Agachamento;</div>
<div>
- 2. Flexão do Joelho;</div>
<div>
- 3. Movimento Lateral.</div>
<div>
<br /></div>
<div>
Tais movimentos foram realizados através dos servomotores da parte inferior. Na figura seguinte é possível observar todos os servomotores do robô humanóide com o respetivo número ID, o qual permite identificar facilmente cada um deles.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC5OuIpRzwULt6SfCle8dhU2jhRFqSMNBcOVRF8MR1l-SegQHsXGMtO5js0G2Ou3J_A8tKROhKU7F10g8UOPelVc458qOMMnZe9oFdXZfHkabL0nz7_LoOzis5612Z25dnB6No9RkR3Ngp/s1600/servos_numbered.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhC5OuIpRzwULt6SfCle8dhU2jhRFqSMNBcOVRF8MR1l-SegQHsXGMtO5js0G2Ou3J_A8tKROhKU7F10g8UOPelVc458qOMMnZe9oFdXZfHkabL0nz7_LoOzis5612Z25dnB6No9RkR3Ngp/s400/servos_numbered.png" width="236" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">ID dos servomotores do robô humanóide.</td></tr>
</tbody></table>
<div>
</div>
<div>
De seguida são apresentados 3 vídeos que ilustram cada tipo de movimento, juntamente com o respetivo gráfico da posição das juntas.</div>
<div>
<br /></div>
<div>
1 - Agachamento</div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dyW82FadE5zhXwcK96mShcQoMegm7BLjBiakaWbwveucvbGNY0o5XQH0BgE0PnORP9idM4OtzNV4p7W6n-0Vg' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTTlMlyDrseR5LTKQfiCuEHF9sdjiHJp7wNw5x8buJinmgPmw0AWzNEkBgbWY79NSkL-wkjGMOugP4o5NdNpIdnErQjektdNyjvohzH9_cl-1DSANJXCegRCnpOYwh687bfmyt4FxrfPc7/s1600/move_ZZ.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTTlMlyDrseR5LTKQfiCuEHF9sdjiHJp7wNw5x8buJinmgPmw0AWzNEkBgbWY79NSkL-wkjGMOugP4o5NdNpIdnErQjektdNyjvohzH9_cl-1DSANJXCegRCnpOYwh687bfmyt4FxrfPc7/s400/move_ZZ.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Posição angular dos servomotores para movimento de agachamento.</td></tr>
</tbody></table>
<div>
2 - Flexão do Joelhos</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dylSInh8Pd4vhrPt4PORGmiDX8NXqHUAwHAIk7kaPZFlXfoUiPGZq58n_t83LhrSL9cRksOx78PvYCUUukcNw' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<div>
<br /></div>
<div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii57HLEbuVCeFbrSJGKk0OWAvgFBRPAmrdc3rx5tFDSeRDFo1LxNQY9P2ODbRjO9CKnJ9dRGj4EzMLfyikXH_RPP8zveU-4uMZnf4jktLufVs-lzyUMB8dMUJtWvhmcQRSJnBLEzCgIUAv/s1600/move_XX.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii57HLEbuVCeFbrSJGKk0OWAvgFBRPAmrdc3rx5tFDSeRDFo1LxNQY9P2ODbRjO9CKnJ9dRGj4EzMLfyikXH_RPP8zveU-4uMZnf4jktLufVs-lzyUMB8dMUJtWvhmcQRSJnBLEzCgIUAv/s400/move_XX.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Posição angular dos servomotores para o movimento da flexão dos joelhos.</td></tr>
</tbody></table>
</div>
<div>
<br /></div>
<div>
3 - Movimento lateral</div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dz-Kp2sBTZq8pDqyPP49c5Y-CGQwU1Fey12YZvW58rebnfzNlCzVu32nMyeO-QFmkhdRhEBwwxDqKPDxt4JYg' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR97bNbSrfQ7ayILG_mALgh8ShkcVeZRADaQKFsj5o-oi7D2R86ZfV9jd4-lD5peXRpkZxFJNRZGEjxp1eav2SG-ngp77otU3A7s0ci-jknfD6jQlIrTF5UMQ305eG1YI6P8hpkktiIRJ6/s1600/move_YY.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgR97bNbSrfQ7ayILG_mALgh8ShkcVeZRADaQKFsj5o-oi7D2R86ZfV9jd4-lD5peXRpkZxFJNRZGEjxp1eav2SG-ngp77otU3A7s0ci-jknfD6jQlIrTF5UMQ305eG1YI6P8hpkktiIRJ6/s400/move_YY.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Posição angular dos servomotores para o movimento lateral.</td></tr>
</tbody></table>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-81258953075775537132013-12-12T11:53:00.000-08:002013-12-12T11:54:56.497-08:00Posicionamento da Rede de Sensores no Robô HumanóideCom vista a proceder à validação de toda a rede de sensores inerciais desenvolvida, optou-se pela sua implementação no robô humanóide, para posterior aquisição de dados perante a realização de movimentos.<br />
<div>
<br /></div>
<div>
De forma a simplificar o controlo do robô humanóide, apenas foi utilizada a parte inferior, composta por anca, pernas e pés, como é possível observar na seguinte figura.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxyGN3oLXU3n98Fv7_Fl1mOBmGxP7dwZY8tMqt0ccSeJ9JrrS62hsqCd_8Z8VkOHRL_BuKYGPC-Fq-Ad5UsSu01Z-j9eE7eyEV5KweyK9yeAjHwCEQJ17Nzis9GfWygoGALAkVn1DqGqaI/s1600/humanoid_half_image.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxyGN3oLXU3n98Fv7_Fl1mOBmGxP7dwZY8tMqt0ccSeJ9JrrS62hsqCd_8Z8VkOHRL_BuKYGPC-Fq-Ad5UsSu01Z-j9eE7eyEV5KweyK9yeAjHwCEQJ17Nzis9GfWygoGALAkVn1DqGqaI/s400/humanoid_half_image.jpg" width="243" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Parte inferior do Robô Humanóide do PHUA.</td></tr>
</tbody></table>
<div>
Nesta plataforma humanóide foi implementada toda a rede, composta por 8 unidades do modelo POLOLU e uma RAZOR. A sua distribuição pode ser observada na seguinte figura.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJk3J-GRgD-PZjZ4RcNtC3DUhJXCF78RNQfi9QNtDW4xi9YGD3CRxdRn_wpCWJUZDqJl93i-8FQNXIout5QWJrQIoZ0AE0FWEg1mAVg8scq0jZi-GuRuabF-CUwcDbdJIzDlAcVumzKEAB/s1600/humandoid_network.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJk3J-GRgD-PZjZ4RcNtC3DUhJXCF78RNQfi9QNtDW4xi9YGD3CRxdRn_wpCWJUZDqJl93i-8FQNXIout5QWJrQIoZ0AE0FWEg1mAVg8scq0jZi-GuRuabF-CUwcDbdJIzDlAcVumzKEAB/s400/humandoid_network.png" width="276" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Distribuição das unidades inerciais.</td></tr>
</tbody></table>
<div>
<br />
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="-webkit-text-stroke-width: 0px; font-family: 'Times New Roman'; letter-spacing: normal; margin-bottom: 0.5em; margin-left: auto; margin-right: auto; orphans: auto; padding: 6px; text-align: center; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px;"><tbody>
<tr><td class="tr-caption" style="font-size: 13px; padding-top: 4px; text-align: center;"><br /></td></tr>
</tbody></table>
<span style="font-size: 13px; text-align: center;">De uma forma resumida, A vermelho estão simbolizadas as unidades inerciais POLOLU e a amarelo a unidade RAZOR. A azul encontra-se a unidade de controlo</span><span style="font-size: 13px; text-align: center;"> </span><i style="font-size: 13px; text-align: center;">Arduino. </i><span style="font-size: 13px; text-align: center;">Na anca foram implementadas 4 unidades POLOLU e a unidade RAZOR. As restantes unidades foram implementadas nos joelhos, sendo que para cada perna, uma das unidades se encontra acima e outra abaixo da junta do joelho.</span><br />
<br />
Esta disposição não é obrigatoriamente definitiva, representando apenas um exemplo de uma possível distribuição das unidades, com a qual foram realizados testes de validação.</div>
Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-16952560764567788522013-12-12T10:46:00.002-08:002013-12-12T10:47:10.743-08:00Aquisição de Dados da RedeCaros seguidores,<br />
<div>
<br /></div>
<div>
há muito tempo que não publico nada no blogue mas aqui temos notícias.</div>
<div>
<br /></div>
<div>
Depois da placa em <i>PCB</i>, que sustenta todas as ligações, estar concluída, foi desenvolvido um módulo que em cooperação com a unidade de controlo <i>Arduino, </i>realiza a aquisição de dados de todos os sensores disponíveis.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVizBKU_ZIFYfADtg13CvYdDCXLqraqHLZRE2rQJpKRnLCoVFh2Zw8rQdy8iryksPcbf930h9E5BQHZJuDtA7T4tnuQYLXbxczlAoiSvqgHjnqMPpANqfKUKTPhBzSq2j49fmdCCdwOzS8/s1600/aquisicao_rede.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVizBKU_ZIFYfADtg13CvYdDCXLqraqHLZRE2rQJpKRnLCoVFh2Zw8rQdy8iryksPcbf930h9E5BQHZJuDtA7T4tnuQYLXbxczlAoiSvqgHjnqMPpANqfKUKTPhBzSq2j49fmdCCdwOzS8/s400/aquisicao_rede.jpg" width="360" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Módulo de aquisição de dados da rede inercial.</td></tr>
</tbody></table>
<div>
A figura apresentada mostra a forma como funciona a cooperação entre um módulo desenvolvido em ROS e o <i>firmware Arduino </i>utilizado para a aquisição de dados. Após a ordem de <u>iniciar</u>, o <i>Arduino </i>realiza a <u>operação de contagem de sensores</u> inerciais presentes na rede, bem como a inicialização das variáveis necessárias e a comunicação com o PC, no ponto 1. De seguida, o PC faz o pedido do <u>número</u> de sensores, em 2, e em 3 o <i>Arduino </i>envia uma <i>string</i> com a respetiva resposta. Dentro de um <i>loop, </i>a cada iteração é realizado pelo PC, em 4, o pedido de uma leitura de todos os sensores, sendo essa leitura realizada em 5, pelo <i>Arduino</i> e enviada para o PC, sendo em 6 realizada a receção dos dados e em 7 a sua publicação necessária para o pós processamento da informação recebida. O módulo é terminado assim que em 8 se der a ordem para tal.</div>
Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-78379146057218412072013-06-05T06:54:00.000-07:002013-06-05T06:54:01.447-07:00Placas PCB de circuito impresso para implementação rede inercial Boa tarde seguidores,<br />
<br />
há muito tempo que não actualizo este blogue, mas ultimamente tenho andando a escrever para a dissertação.<br />
<br />
Conforme o título sugere, agora vou-vos falar da placa de circuito impresso em PCB que irá ser destinada à implementação da rede de de sensores inercial.<br />
<br />
Numa tentativa de tornar o hardware para esta implementação permanente, iniciei uma pequena aventura - projetar, desenhar e mandar fazer uma placa de circuito impresso.<br />
<br />
Para tal, tive que utilizar um software dedicado à tarefa de projetar circuitos e placas de circuito, o Eagle. Neste programa, em primeiro lugar, deve-se desenvolver um esquema eléctrico do circuito pretendido.<br />
<br />
Assim que o esquema eléctrico é concluido, através de um ícon, o Eagle gera um projeto de placa, com um módulo do qual este dispõe. Resta então organizar os componentes e desenhar as pistas que ligam os componentes.<br />
<br />
Como resultado, surgiu uma pequena placa, que será montada em cima de um arduino UNO. Esta placa dispõe de duas camadas, pois apenas uma é insuficiente para acomodar todos os componentes e ligações necessárias. Nas figuras seguintes pode ser visto o resultado no ficheiro CAD em eagle.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnc9RFsW_khXHrDDA56SrI7kgNJoPRLIVFazEez9KPDWLtgfiWWHkmk3_E01ron9tUQo0KVKSJz8K_MMMST_tqetqP3RsZMr1ukOkUP3NT3sLKwJIYTT4jqLlHGJEhcUoTo7itRg4KYzZT/s1600/mux_board_top.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnc9RFsW_khXHrDDA56SrI7kgNJoPRLIVFazEez9KPDWLtgfiWWHkmk3_E01ron9tUQo0KVKSJz8K_MMMST_tqetqP3RsZMr1ukOkUP3NT3sLKwJIYTT4jqLlHGJEhcUoTo7itRg4KYzZT/s320/mux_board_top.png" width="246" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Placa Circuito Impresso - Camada Superior </td></tr>
</tbody></table>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1S_djW3AjCxmJgUk_S1qnuu5SMHAJbUcWVV_8Jz3k3lO71iZmv6cq7fPvaqn9-led8zr_bKVS07UuqtK8sqwhEA0Oc0wpJiN53HrawKZwipAatxnilfcNimlp7okuQAcg4acFGEbYvN7j/s1600/mux_board_bot.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1S_djW3AjCxmJgUk_S1qnuu5SMHAJbUcWVV_8Jz3k3lO71iZmv6cq7fPvaqn9-led8zr_bKVS07UuqtK8sqwhEA0Oc0wpJiN53HrawKZwipAatxnilfcNimlp7okuQAcg4acFGEbYvN7j/s320/mux_board_bot.png" width="246" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Placa Circuito Impresso - Camada Inferior</td></tr>
</tbody></table>
<br />
Com este projeto desenvolvido, resta então proceder à manufatura das mesmas. Assim, mandei fazê-las e o resultado pode ser observado na figura seguinte.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq5IRostx8J2mhJKgFY2Y9Dv1W1_oYcBn_TMir8eiafVYYCv6lAWAfbn7X2duvRgk7fJOz9QHrnKOzoTWK4EIiRwb2hGXapkbdSz65lDn_QB7eZCoeMTLhcazZeDTE5WKM5j-IrnL1Pr5W/s1600/placa_PCB_sem_solda.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq5IRostx8J2mhJKgFY2Y9Dv1W1_oYcBn_TMir8eiafVYYCv6lAWAfbn7X2duvRgk7fJOz9QHrnKOzoTWK4EIiRwb2hGXapkbdSz65lDn_QB7eZCoeMTLhcazZeDTE5WKM5j-IrnL1Pr5W/s320/placa_PCB_sem_solda.jpg" width="260" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Placa Circuito Impresso PCB</td></tr>
</tbody></table>
Após ter recebido esta "prenda", faltou apenas fazê-la funcionar, e para isso é suposto esta placa ser repleta de componentes :)<br />
<br />
Após uma pequena jornada de furações em CNC e algumas horas de solda a estanho, o resultado final culminou em algo que pode ser visualizado na seguinte figura.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieEbefTCY4QSWslKrONmhrV31hnmOduDBguuH0oc0943rUrdPb7bndoSJoy8lhkM-risjqMg4ROd6FMFdZvcsCSZmiAY5s_FyrUXhajSfX6dC8KnAPVTSqQXKsdyEwL2Ltb-wAOCyW61mi/s1600/placa_PCB_com_solda.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieEbefTCY4QSWslKrONmhrV31hnmOduDBguuH0oc0943rUrdPb7bndoSJoy8lhkM-risjqMg4ROd6FMFdZvcsCSZmiAY5s_FyrUXhajSfX6dC8KnAPVTSqQXKsdyEwL2Ltb-wAOCyW61mi/s320/placa_PCB_com_solda.jpg" width="263" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Placa Circuito Impresso PCB - pronta</td></tr>
</tbody></table>
<br />Com a placa pronta, é possível então encaixá-la no arduino UNO e o resultado está apresentado na figura seguinte. <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoTM_mG0hEzjfDq1_WPK8epGB8kDiwuce-Xcg5Nf-tbV__pJZkCXGGJY6kJOUI_E5x8ilxJkCq3ZuaLstnvmDIl5628auvmgpWblbkE9aYnLgclFeHGzh6IQqCxcH3Autabe_ik0hF7Mft/s1600/suporte_arduino.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoTM_mG0hEzjfDq1_WPK8epGB8kDiwuce-Xcg5Nf-tbV__pJZkCXGGJY6kJOUI_E5x8ilxJkCq3ZuaLstnvmDIl5628auvmgpWblbkE9aYnLgclFeHGzh6IQqCxcH3Autabe_ik0hF7Mft/s320/suporte_arduino.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Placa PCB montada no Arduino e sobre o respetivo suporte</td></tr>
</tbody></table>
<div>
Como é possível observar ne figura anterior, além da placa montada no arduino, encontra-se também o arduino montado num pequeno suporte. Esta é a fase seguinte na implementação da rede inercial no robô humanoide. Para a fixação desta montagem no robô humanoide, desenvolvi um apoio que não é mais que uma pequena placa de nylon acrescida de duas pequenas peças, as quais se prendem ao humanoide por clipagem. Este método de fixação foi escolhido uma vez que esta implementação futuramente poderá ter que ser implementada num sítio diferente. Como resultado deste sistema de fixação, é possível observar na figura seguinte o apoio acoplado na zona pélvica do humanoide.</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguIUVA8jXmt12A2kK_9XmeI6aEgfyTzigLFdVtkL8sWtdF7eCbbioB6lPecRRTKaUqVZBRc-_7Fv4NdrKwCao-IigrrJQLlCll_FsQqhptYGdj1pWaf-ME4onxI8ltTq05eOzXzHD85SYM/s1600/suporte_montado.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguIUVA8jXmt12A2kK_9XmeI6aEgfyTzigLFdVtkL8sWtdF7eCbbioB6lPecRRTKaUqVZBRc-_7Fv4NdrKwCao-IigrrJQLlCll_FsQqhptYGdj1pWaf-ME4onxI8ltTq05eOzXzHD85SYM/s320/suporte_montado.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Suporte arduino acoplado no humanoide</td></tr>
</tbody></table>
<div>
<br /></div>
<div>
Estando o "cérebro" de toda a rede inercial acoplado ao robô humanoide, restou a tarefa de incorporar os sensores no corpo do humanoide, sensores esses que farão a obtenção dos dados a explorar mais tarde. Para esta fixação, foram desenvolvidas por mim pequenas peças, as quais são fixas ao humanoide por meio de ligação aparafusada, onde os sensores seriam incorporados também com recurso a ligações aparafusadas. Estes apoios com os sensores já montados no robô humanoide podem ser observados na figura seguinte.</div>
<div>
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpLdpiBuqbQoh-KglREIEvgbk0RyEZpggxZwTWVJXzs8-5LyE6bBp5OsxwBdJXnW_40JzzWOeuYNlpdvH-qjkZ6NOya_x6oSnL0PQ1j0XIkRcBYwoYby1UIoyMrjRGZqj7_XT-kok1oZUU/s1600/sensores_montados.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="307" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpLdpiBuqbQoh-KglREIEvgbk0RyEZpggxZwTWVJXzs8-5LyE6bBp5OsxwBdJXnW_40JzzWOeuYNlpdvH-qjkZ6NOya_x6oSnL0PQ1j0XIkRcBYwoYby1UIoyMrjRGZqj7_XT-kok1oZUU/s320/sensores_montados.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Apoios de sensores</td></tr>
</tbody></table>
<div>
<br /><div>
Face a todo este trabalho desenvolvido, a fase que se segue será a realização de testes com a rede inercial montada no robô humanoide, contudo, não será nesta publicação que isso será documentado, pois essa fase encontra-se em curso. Futuramente adicionarei mais notícias acerca da continuidade deste trabalho.</div>
</div>
Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-18627087379278760552013-05-13T15:02:00.000-07:002013-05-13T15:02:07.183-07:00Testes Acelerómetros como "Inclinómetros" Boa noites caros seguidores!<br />
<br />
Venho mais uma vez dar noticias sobre os pequenos sensores...<br />
<br />
Ora uma vez que os acelerómetros se mostraram um pouco "ruidosos" e para pequenas acelerações não se tornar evidente as movimentações, realizei alguns testes a testar a sua viabilidade como "inclinómetros", ou seja, usar estes sensores para calcular a sua inclinação em relação ao vetor da gravidade.<br />
<br />
Para estes testes, pude contar mais uma vez com a preciosa ajuda do nosso amigo Fanuc :)<br />
<br />
Para posições estáticas foram medidos os valores que os acelerómetros devolviam e digamos que os resultados não são desanimadores...<br />
<br />
Com o sensor da POLOLU e tentando alinhar um dos acelerómetros (do eixo Z) com o vetor da gravidade, podem-se observar os resultados presentes na figura que se segue:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyjpvI9f5HNuCCvzwhldHdsPU-6SX636q_0oEQUTN_tCR0uowEzCfhe0tR1kP4oDoSe1BeI32Uu7WPoFVTTkaZLwh4TVrYPIcbO9ijNypvHkbovTCIIpXo3y6rE7BbvELYUmz5IFmUMNPC/s1600/0_0_0_POLOLU_raw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjyjpvI9f5HNuCCvzwhldHdsPU-6SX636q_0oEQUTN_tCR0uowEzCfhe0tR1kP4oDoSe1BeI32Uu7WPoFVTTkaZLwh4TVrYPIcbO9ijNypvHkbovTCIIpXo3y6rE7BbvELYUmz5IFmUMNPC/s400/0_0_0_POLOLU_raw.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Nesta figura pode observar-se que o acelerómetro do eixo Z tem valores que rondam os 256. Isto porque para as configurações atuais, este valor corresponde a 1g. Os acelerómetros dos outros 2 eixos, como seria de esperar, têm valores próximos de 0. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Com estes dados, calculando apenas a inclinação do eixo Z dos acelerómetros em relação ao vetor da gravidade temos:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Ot3tmHb40FVnCfAF9cB8ECBn8qcRe5jb_hiab4I6MTRKPwgsim9iMPqHtbjGFFBB5SctDCPvJSE04n7hVnzyiohuExqKpBp2ieX4fP9ZdNl1gVLxE6NiXFr9fgUnMKmMEzQRxlL6wPFJ/s1600/0_0_0_POLOLU.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Ot3tmHb40FVnCfAF9cB8ECBn8qcRe5jb_hiab4I6MTRKPwgsim9iMPqHtbjGFFBB5SctDCPvJSE04n7hVnzyiohuExqKpBp2ieX4fP9ZdNl1gVLxE6NiXFr9fgUnMKmMEzQRxlL6wPFJ/s400/0_0_0_POLOLU.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Nesta nova figura, podemos observar que os valores da inclinação do eixo Z dos acelerómetros em relação ao vetor da gravidade ronda valores muito próximos de 0. De notar que esta curva nao apresenta qualquer filtragem, apresentando uma amplitude média de 1,5º. Aplicando um filtro de média, sendo um dos mais simples que pode ser usado, conseguiu-se uma amplitude média de 1º. Isto pode ser observado na figura que se segue.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7eMcwp6Zmq529iOX8A0Y3xvcYMtuhLWmgq_YX0nlly2Ygz47zRSX1JemIpS6dyYwFgzvx1-514RCJ-QjyNZhA05i_oAZjPo2ZjEILiv9s_xJwZG0bUYAlqyqHDazcSLcVFJ9s5rigorN3/s1600/0_0_0_POLOLU_filtered.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7eMcwp6Zmq529iOX8A0Y3xvcYMtuhLWmgq_YX0nlly2Ygz47zRSX1JemIpS6dyYwFgzvx1-514RCJ-QjyNZhA05i_oAZjPo2ZjEILiv9s_xJwZG0bUYAlqyqHDazcSLcVFJ9s5rigorN3/s400/0_0_0_POLOLU_filtered.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Mais testes foram feitos com estes sensores. Por exemplo na imagem que se segue, a inclinação foi de 35º.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLb4y8OMsANKYEzayczwaG9T-yWXwu9A47vrYyxMutilvR3vTMSbrm0LYALYXDFJp6XVWrJUpUOlJfnHJXusZody83Qi2nFdCAtTp_fOqDhV0kRgINBI-dhielvaL5aVXTxvNAHvtAMOjx/s1600/35_0_0_POLOLU_raw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLb4y8OMsANKYEzayczwaG9T-yWXwu9A47vrYyxMutilvR3vTMSbrm0LYALYXDFJp6XVWrJUpUOlJfnHJXusZody83Qi2nFdCAtTp_fOqDhV0kRgINBI-dhielvaL5aVXTxvNAHvtAMOjx/s400/35_0_0_POLOLU_raw.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Como se pode observar, os valores do acelerómetro do eixo Z baixou um pouco os seus valores, mas a nossa atenção deve-se voltar para o acelerómetro do eixo Y. Usando os valores deste para calcular a inclinação do IMU, chegou-se ao seguinte gráfico:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCTQkFolFIfb9zr-DfQN0ABVAhs9VdEMkkS9mpNXsQpMfJdrvJkSMD4lZWXfgA7_tA61hyrvAs34LoHI7ly0OISn3EOvZ8YbKbm5RajM9uI3lgFgXrX0wB_WPRNvA57f8f_RLNpAQa0Ray/s1600/35_0_0_POLOLU_angle_raw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCTQkFolFIfb9zr-DfQN0ABVAhs9VdEMkkS9mpNXsQpMfJdrvJkSMD4lZWXfgA7_tA61hyrvAs34LoHI7ly0OISn3EOvZ8YbKbm5RajM9uI3lgFgXrX0wB_WPRNvA57f8f_RLNpAQa0Ray/s400/35_0_0_POLOLU_angle_raw.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Aqui o valor médio da inclinação ronda os 36º e não os 35º. Aqui podemos ter uma perceção do tipo de precisão que podemos ter com estes acelerómetros, contudo, para aplicação no humanoide, penso que esta gama de precisão não será de deitar fora, tendo apenas que tentar reduzir o ruido obtido nas leituras.<br />
<br />
No gráfico seguinte pode-se observar a aplicação do mesmo filtro de média utilizado no exemplo anterior.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikkB0Zh2A8LwYIUv4UI2WfpfzMQTUzSoS9VbxkEUdas_H6XEJPBKGDOjRgFO6bhgcBok6y9iE46PHiDEe4Pysg7QK_uTC6o4v7C91IOa_9gNV11WxpbvfkBtItkmuErcILm-NlaP0KxJhv/s1600/35_0_0_POLOLU_angle_filtered.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikkB0Zh2A8LwYIUv4UI2WfpfzMQTUzSoS9VbxkEUdas_H6XEJPBKGDOjRgFO6bhgcBok6y9iE46PHiDEe4Pysg7QK_uTC6o4v7C91IOa_9gNV11WxpbvfkBtItkmuErcILm-NlaP0KxJhv/s400/35_0_0_POLOLU_angle_filtered.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Neste gráfico pode-se obsrevar uma diminuição da amplitude média em relação ao gráfico anterior. No entanto, penso que seria conveniente experimentar outro tipo de filtros que reduzissem de melhor forma o ruido.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Agora, caros seguidores, devem estar a perguntar-se sobre o segundo sensor, o da RAZOR. Não! Não me esqueci dele.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Para a primeira situação do sensor anterior(alinhar o sensor do eixo Z com o vetor da gravidade), podemos então observar então os dados obtidos.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj66voB3NmP2m2qY1RajqScvoUcO4bGMG3GkShN1m1uZYRRQiINPAElkIc9gLfCOeeQRQR2jrlUM998qOZaW2voOsi2SnKaJAS5ZvtKo6VrbTx3klB64Rh4YwwCcE-YDrCktgIqU5W-Fy4/s1600/0_0_0_RAZOR_raw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgj66voB3NmP2m2qY1RajqScvoUcO4bGMG3GkShN1m1uZYRRQiINPAElkIc9gLfCOeeQRQR2jrlUM998qOZaW2voOsi2SnKaJAS5ZvtKo6VrbTx3klB64Rh4YwwCcE-YDrCktgIqU5W-Fy4/s400/0_0_0_RAZOR_raw.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Como o sensor anterior, os resultados são semelhantes à excepção de um pormenor. O valor máximo que para as configurações do IMU tem, deveria ser próximo de 256 contudo nota-se que esse valor não é maior que 225. Tal acontece provavelmente por uma calibração mal feita ou já desajustada.<br />
<br />
No entanto, os resultados para os valores da inclinação nesta situação que serão apresentados a seguir, não são maus de todo.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm7c8kGrgDSiojMQaiTaCIeUbqXxCiVX8p4KjBcnxYqcr-RAujZXiflm6adjfT-PMsUcdoK5G6r_GRW0jcLpD-wfZF2-gGHvDdyEzyXMWNHzl9T91zZVYOBTdQB99ebEpvtgw-6sWoo76_/s1600/0_0_0_RAZOR_angles_raw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm7c8kGrgDSiojMQaiTaCIeUbqXxCiVX8p4KjBcnxYqcr-RAujZXiflm6adjfT-PMsUcdoK5G6r_GRW0jcLpD-wfZF2-gGHvDdyEzyXMWNHzl9T91zZVYOBTdQB99ebEpvtgw-6sWoo76_/s400/0_0_0_RAZOR_angles_raw.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
Os valores encontram-se um pouco deslocados. Em vez de 0º rondam 1.8º,no entanto, mantém uma amplitude média de 1º.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
A seguir, pode-se observar os dados dos acelerómetros para uma inclinação de 35º como no exemplo do POLOLU. Como há pouco, há uma descida dos valores do acelerómetro que estaria anteriormente alinhado com o vetor da aceleração gravítica e um aumento nos valores do eixo X.</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2gVZ82s-XpLU5SldV_knsZNYNv1WFfIzLBxtiH7pVH1T1GcV_dGWRnb_5UqhD5JbWX0KnbkeYYHPoA2VQTfpJYUcjJFNvb4qP1f_5E1IPyXeTJy4HomVfE059jqRg-X-qEgpLAFLbJ3gD/s1600/35_0_0_RAZOR_raw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2gVZ82s-XpLU5SldV_knsZNYNv1WFfIzLBxtiH7pVH1T1GcV_dGWRnb_5UqhD5JbWX0KnbkeYYHPoA2VQTfpJYUcjJFNvb4qP1f_5E1IPyXeTJy4HomVfE059jqRg-X-qEgpLAFLbJ3gD/s400/35_0_0_RAZOR_raw.jpg" width="400" /></a></div>
Estes valores, com o algorítmo de conversão em inclinação deram origem ao seguinte gráfico:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMzd21GDbCNNDJAtTE1pIHjSFTQdKsiFSVtG_lFqbfHFQHG-GjThOlb8m9kFm4R5GHtMaH7O3yEU-3Wxawtqbzxo73a5znpIRocXBO4OuQV1U45iCXJIPyCCTQfpTZAPvj68NPIkZMWBy2/s1600/35_0_0_RAZOR_angles_raw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMzd21GDbCNNDJAtTE1pIHjSFTQdKsiFSVtG_lFqbfHFQHG-GjThOlb8m9kFm4R5GHtMaH7O3yEU-3Wxawtqbzxo73a5znpIRocXBO4OuQV1U45iCXJIPyCCTQfpTZAPvj68NPIkZMWBy2/s400/35_0_0_RAZOR_angles_raw.jpg" width="400" /></a></div>
Como na inclinação anterior, os dados permitiram observar uma inclinação próxima da real e com uma amplitude média de 1º em torno dos 35.6º. Filtrando com o mesmo filtro de média, os resultados melhoram um pouco, como se pode observar na figura seguinte.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4lOxL_lC3_JdL8W4s290yY8FmzoyKjmZbCb-fJ_sjju04HM0PP9EVQDLDIlY6gJk-dyE9Oz2PqV9A28rCcoRrI_CljrZV-mJRK08zWwRNi3f3qec3rCFB1OimHcRc5WFSgtXFQ7EBQL6N/s1600/35_0_0_RAZOR_angles_filtered.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi4lOxL_lC3_JdL8W4s290yY8FmzoyKjmZbCb-fJ_sjju04HM0PP9EVQDLDIlY6gJk-dyE9Oz2PqV9A28rCcoRrI_CljrZV-mJRK08zWwRNi3f3qec3rCFB1OimHcRc5WFSgtXFQ7EBQL6N/s400/35_0_0_RAZOR_angles_filtered.jpg" width="400" /></a></div>
<br />Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-53996501489137540652013-05-07T13:22:00.000-07:002013-05-07T13:22:32.053-07:00Rede Sensores - Recurso ao MultiplexerBoa noite,<br />
após um dia um pouco atribulado, devo dizer que consegui um pequeno (mas importante) progresso.<br />
<br />
Após muitas dores de cabeça que as montagens de circuito em placa branca sabem dar, com fios constantemente a sair ou de uma forma tímida a recusarem-se a colaborar, acrescido ainda de "nabices" minhas a nível da adaptação de software consegui estabelecer a muito aguardada "rede" de apenas 2 IMUs.<br />
<br />
Tal foi conseguido, conforme já tinha referido por meio de um multiplexer a permitir a comunicação via I2C entre um Arduino Uno e 2 desses IMUs apenas com um par de fios por parte do arduino.<br />
<br />
Pode-se dizer então que, SIM É POSSÍVEL... e SIM CONSEGUI :)<br />
<br />
O trabalho está MUITO LONGE de estar em bom caminho... mas julgo que esta pequena vitória representa sempre um pequeno passo em frente.<br />
<br />
Brevemente, assim que tiver uma montagem mais apreciável à vista humana publicarei algumas imagens da montagem e falarei mais também sobre a mesma.<br />
<br />
Para os mais esquecidos, os IMUs que incorporei nesta pequena rede foram 2 <a href="http://www.pololu.com/catalog/product/1268" target="_blank">minIMU-v2 9dof</a> que comunicam como já disse via I2C.<br />
<br />
Paralelamente a esta evolução conto em também analisar os dados das experiências recentemente realizadas no âmbito do estudo dos acelerómetros a funcionar como "inclinómetros" (sobre o qual também apresentarei publicações).Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-19944710084067803462013-05-02T16:12:00.000-07:002013-05-02T16:12:52.214-07:00Experiências Fanuc - Resultados e "Feedbacks"Saudações Caríssimos Seguidores!<br />
<div>
<br /></div>
<div>
Peço-vos desculpa por me ter ausentado deste blogue tanto tempo mantendo-vos desatualizados da evolução do trablho que tenho vindo a desenvolver.</div>
<div>
<br /></div>
<div>
Pois bem... a verdade é que já realizei alguns testes! No entanto, a análise dos dados retirados nesses testes ainda não foram 100% conclusivos. </div>
<div>
<br /></div>
<div>
Passo então a expôr...</div>
<div>
<br /></div>
<div>
Na vertente "boa" dos testes - digamos assim - podem-se verificar para movimentos de rotação (puramente movimentos de rotação em torno de um eixo de cada vez), as seguintes imagens:</div>
<div>
<br /></div>
<div>
Para sensor da Pololu (o mais pequeno)</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTB3a4XdEaxVZaNHS-WLjhaG3DUP3POvUZS60r1QOMnCOfGgszhSvC72pc2SRxTE2a_8Dj063XDW8gDSmA1-5JnSvL3Sucl6NQJs5_oIVWWTdoGcSLJ8TmrzmJ9mOhI0szdQn3rmcbeIk/s1600/gyros_pololu.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgTB3a4XdEaxVZaNHS-WLjhaG3DUP3POvUZS60r1QOMnCOfGgszhSvC72pc2SRxTE2a_8Dj063XDW8gDSmA1-5JnSvL3Sucl6NQJs5_oIVWWTdoGcSLJ8TmrzmJ9mOhI0szdQn3rmcbeIk/s400/gyros_pololu.jpeg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX8YMVPefUwVx7qmKyQJQbMryVyDEuOC1JOcuFPeko1Yef8_u9j6rcYrkQkBVSuXcU1MQ-ysXNKN4BQ0vduONZIzD8Eeov7JIDHmbXUNtClqCobpUPnK_OBmfYktWLt3kWcuC9D3McK0KV/s1600/gyros_angular_displacement_pololu.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiX8YMVPefUwVx7qmKyQJQbMryVyDEuOC1JOcuFPeko1Yef8_u9j6rcYrkQkBVSuXcU1MQ-ysXNKN4BQ0vduONZIzD8Eeov7JIDHmbXUNtClqCobpUPnK_OBmfYktWLt3kWcuC9D3McK0KV/s400/gyros_angular_displacement_pololu.jpeg" width="400" /></a></div>
<div>
<br /></div>
<div>
Na primeira imagem, pode-se observar o movimento do "end-effector" do fanuc a azul (a primeira linha de gráficos- cada gráfico corresponde ao movimento de cada eixo) e imediatamente abaixo, a resposta dos giroscópios (a vermelho).</div>
<div>
<br /></div>
<div>
Na segunda imagem os 3 gráficos, dizem respeito à comparação de cada um dos movimentos do "end-effector" do fanuc apresentados nos gráficos anteriores mas agora a vermelho observa-se a resposta doo giroscópios integrada, ou seja, a posição angular dada pelos giroscópios.</div>
<div>
<br /></div>
<div>
É de observar, que para estes movimentos foi obtida uma resposta por parte deste sensor bastante aceitável, contudo deve-se também fazer notar que sempre que a posição angular do fanuc se encontra em 0, os valores dados pelo giroscópio variam para valores diferentes deste. Isto pode dever-se ao efeito do "drift" que é muito comum neste tipo de sensores, ou ainda, a uma fraca qualidade entre o controlador do fanuc e a sua leitura de posição.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Para sensor da Razor (o maior)</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOWskuBfzSf2_gZ2nqNIxOBdfnr979zc1MkhmRSUrdb4KiFd7vqp8-5PlGwVHQgKUZkqe77Wz1UHR6-j4nfxjmnQSZx5hD3ERnVKBEcvjMXpwQsRdHwkzeCXa_38oLO1rGZVQNj4K-acHg/s1600/gyro_RAZOR.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOWskuBfzSf2_gZ2nqNIxOBdfnr979zc1MkhmRSUrdb4KiFd7vqp8-5PlGwVHQgKUZkqe77Wz1UHR6-j4nfxjmnQSZx5hD3ERnVKBEcvjMXpwQsRdHwkzeCXa_38oLO1rGZVQNj4K-acHg/s400/gyro_RAZOR.jpeg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5ePs0qGOLNcEaLltaTZpoUgBXz2aKhyF8eCYvmPA7fYgekCxx96q_1kxT_TFN3vEPMLvJyj2XnE2u5HNgvVzBuDPvN7Nwv-k9gmtKiRdhM7JRqqyVqC5UbHqe99lDBxRbNrVytgLQRHl5/s1600/gyro_angular_displacement_RAZOR.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="213" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5ePs0qGOLNcEaLltaTZpoUgBXz2aKhyF8eCYvmPA7fYgekCxx96q_1kxT_TFN3vEPMLvJyj2XnE2u5HNgvVzBuDPvN7Nwv-k9gmtKiRdhM7JRqqyVqC5UbHqe99lDBxRbNrVytgLQRHl5/s400/gyro_angular_displacement_RAZOR.jpeg" width="400" /></a></div>
<br />
<div>
<br /></div>
<div>
Neste segundo sensor, para as mesmas condições, o comportamento é semelhante, tornando difícil a diferenciação destes sensores pelo comportamento dos giroscópios aqui demonstrado. Consoante a necessidade, novos testes em movimentos de rotação serão realizados.</div>
<div>
<br /></div>
<div>
De salientar que estes movimentos foram realizados a uma velocidade de 50º/s.</div>
Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-22540129883080017242013-04-11T07:32:00.000-07:002013-04-11T07:32:29.837-07:00Experiência Sensores no FanucDurante os últimos dias tenho-me ocupado da experiência a realizar no Fanuc.<br />
<br />
A tarefa não tem sido propriamente fácil. Isto porque na indecisão de como fazer os programas para os movimentos do braço robótico têm surgido alguns problemas. Existem essencialmente já disponíveis 2 formas de fazer os programas destes movimentos:<br />
<br />
- Programação direta na consola do Fanuc.<br />
- Programação com recurso a uma interface RobCOMM que permite por TCP/IP executar movimentos no braço robótico.<br />
<br />
Neste momento o recurso ao RobCOMM é muito limitado, uma vez que não permite algumas funções.<br />
<br />
A alternativa escolhida foi a programação por via da consola do Fanuc.<br />
<br />
MAS... !!!!!!<br />
<br />
Ainda existe um problema...<br />
<br />
Através do módulo ROS consigo vizualizar a resposta dos sensores, contudo, e uma vez que preciso saber a diferença entre o resultado dos sensores e o movimento que estes estão a ter, necessito ainda da curva da ponta do Fanuc.<br />
<br />
Este é o novo entrave... é onde tenho q focar a minha atenção. Caso contrário, tenho a resposta dos sensores mas não disponho da informação do movimento original e sem isso não é possível fazer o estudo da resposta dos sensores.<br />
<br />
Como ainda não tinha mostrado, apresento aqui algumas imagens do sensor RAZOR montado no suporte com este montado também no braço robótico Fanuc.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitFsnUm-u-DkCJ35C03aexMDj6bDkewGwWak7ZQ4qJsIlkYpJQj4pM_QeuwOmCO83QJFFMeAnSXyqqO3SlyoCP3SqqzYvkOOU8w_nKrY4Ikv-B-jwN1h_TZBWbIIcSBEfpaWGITUUR8OLY/s1600/IMG007.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitFsnUm-u-DkCJ35C03aexMDj6bDkewGwWak7ZQ4qJsIlkYpJQj4pM_QeuwOmCO83QJFFMeAnSXyqqO3SlyoCP3SqqzYvkOOU8w_nKrY4Ikv-B-jwN1h_TZBWbIIcSBEfpaWGITUUR8OLY/s320/IMG007.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-dJZD4Oxp6DChbQV_uZBWv-s6TXF4TVHVQQKN0FN9YcWdnztlMOeDj2FHO-R0ZWn72yl0moD017qIAZFo2at0YE4lFl2kX0hHXJm4DBBbE5aJVx0hWJnXkoirMlkT7YbqHVojhk83GrN4/s1600/IMG005.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-dJZD4Oxp6DChbQV_uZBWv-s6TXF4TVHVQQKN0FN9YcWdnztlMOeDj2FHO-R0ZWn72yl0moD017qIAZFo2at0YE4lFl2kX0hHXJm4DBBbE5aJVx0hWJnXkoirMlkT7YbqHVojhk83GrN4/s320/IMG005.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvAoDF1xNJ4Ngp47oAlgfL_fKXBGlBJQLVM0sQKI9CQSoWz1IHgftpLpgPKES1T3TiAwYIebPu6cUnIEPsXXsHPGpu6TqIKdSq8QFBVInT_e_Rhu3x12KepOLtBWHtvBFppu8e5QNFjzGI/s1600/IMG006.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvAoDF1xNJ4Ngp47oAlgfL_fKXBGlBJQLVM0sQKI9CQSoWz1IHgftpLpgPKES1T3TiAwYIebPu6cUnIEPsXXsHPGpu6TqIKdSq8QFBVInT_e_Rhu3x12KepOLtBWHtvBFppu8e5QNFjzGI/s320/IMG006.jpg" width="320" /></a></div>
Durante alguns testes que tenho vindo a realizar, tenho observado já que a potência dos servomotores do Fanuc são tais que mesmo a 10cm de distância ainda existe muita distorção do campo magnético medido pelo magnetómetro. Por isso precisarei de uma haste do suporte maior. Talvez com um comprimento na ordem dos 15cm... em vez dos seus atuais 7cm.Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-15557072604780095832013-04-11T07:08:00.001-07:002013-04-11T07:08:43.013-07:00Suporte sensoresComo numas das publicações anteriores tinha referido, desta vez trago imagens do suporte que vai ser utilizado nas experiências a realizar com os sensores aplicados no braço robótico da Fanuc.<br />
<br />
Este suporte é composto por 3 componentes. Uma em alumínio que prende ao end-effector (a peça mais à direita nas imagens do suporte), uma haste em nylon que cria uma certa distância entre os sensores e os servomotores do braço robótico (a peça do meio) e por fim, (a peça mais à esquerda nas imagens do suporte) em nylon também, a peça onde os sensores são presos.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE51AmCrXpXoUiYDPd0fCN1asGiA92Kp84bfZEkphTbxKe4WZDhq1_ctPpq-ngvjaekuSeAAm9nt_Xe0ESAvKjkpX08eRJYiE6nZb2xviNHCPqkAMFk8VgxZ2lOiBjg6OIaoglUxRzVC9A/s1600/IMG009.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE51AmCrXpXoUiYDPd0fCN1asGiA92Kp84bfZEkphTbxKe4WZDhq1_ctPpq-ngvjaekuSeAAm9nt_Xe0ESAvKjkpX08eRJYiE6nZb2xviNHCPqkAMFk8VgxZ2lOiBjg6OIaoglUxRzVC9A/s320/IMG009.jpg" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV_QSB-TxtVOu5cFq4-DM7xghQxjt0m7jd7d_iprrMCtJk1hA_lAc5h_QV8C0W4xXwdi56tSNTRiFBgq8WwKozQpTEZRdGbcsUfew_-DtLDltdb5rLebJ8_kS_pQ9S6vFAinV6vELVdFnz/s1600/IMG010.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV_QSB-TxtVOu5cFq4-DM7xghQxjt0m7jd7d_iprrMCtJk1hA_lAc5h_QV8C0W4xXwdi56tSNTRiFBgq8WwKozQpTEZRdGbcsUfew_-DtLDltdb5rLebJ8_kS_pQ9S6vFAinV6vELVdFnz/s320/IMG010.jpg" width="320" /></a></div>
<br />
Todo o suporte foi maquinado por mim.Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-8168739048289970352013-04-04T14:21:00.001-07:002013-04-04T14:21:15.780-07:00Rede Sensores - MultiplexerO sensor que mais interesse despertou para a rede inercial foi o minIMU-v2 Pololu uma vez que com ele se estabelecia uma comunicação por I2C, uma comunicação que requer apenas 1 par de condutores e capaz de estabelecer facilmente redes uma vez que na comunicação os <i>slaves </i>devem ter endereços distintos. Ora qual não foi a minha surpresa quando descobri que estes sensores não dispunham de endereços configuráveis e estão sim pré-estabelecidos de fábrica.<br />
<br />
Sendo assim, a facilidade da montagem de rede por I2C desapareceu, forçando a novas abordagens.<br />
<br />
A nova ideia de estabelecer uma rede, sem que para isso seja necessário um arduino UNO por cada sensor, passa por utilizar um <a href="http://pt.wikipedia.org/wiki/Multiplexador">Multiplexer</a> que agulha a comunicação <i>Master/Slave Entre o arduino e um sensor de cada vez.</i><br />
<i><br /></i>
<i>Já testei esta nova abordagem com uma rede de 2 sensores ligados a um arduino UNO por meio de um Multiplexer, no entanto pareceu-me que apenas estaria a ser feita a leitura de apenas um sensor. É possível que o código possa ter erros ou que algum cabo pudesse estar solto. Para tirar isto a limpo, será preciso fazer mais testes.</i><br />
<i><br /></i>
<i>Em alternativa, existe ainda um tipo de Multiplexer próprio para comunicações I2C. A diferença entre os 2 reside no facto de o primeiro multiplexer apenas ter um canal que vai agulhando entre várias possibilidades, 1 para 8 no caso do multiplexer usado, e o segundo já agulha pares de canais, ou seja, em vez de mudar apenas entre pinos SDA (pino de transferência de dados em I2C), também comuta entre pinos SCL (pino de sincronismo entre dispositivos) em simultâneo garantindo a continuidade da comunicação.</i>Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-5287722223348169132013-04-04T13:26:00.000-07:002013-04-04T13:26:03.986-07:00Suporte para Experiência de Sensores no FanucPor forma a avaliar o desempenho e rigor das medições feitas pelos sensore (depois de calibrados), está planeada uma experiência na qual se colocam os sensores num suporte que está fixo ao braço robótico 6DOF da FANUC existente no LAR e se executam movimentos com o mesmo por forma a avaliar a resposta dos sensores aos movimentos do braço robótico. Pensamos que assim será mais fácil a apreciação destes para prosseguir com a rede constituida pelos sensores.<br />
<br />
Após a realização do projeto do suporte, deparei-me com a ausência do responsável da oficina do departamento. Pus então mãos à obra mas demorou tempo a mais que o previsto, uma vez que nem sempre tinha máquinas disponíveis.<br />
<br />
Contudo, passado este tempo acabei o suporte!<br />
<br />
Agora falta ter os sensores prontos a testar, o que não está a ser tarefa fácil... pelo menos o sensor pololu que não estou a conseguir calibrar decentemente seja por que algoritmo for!<br />
<br />
Futuramente adicionarei fotos do suporte realizado.Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-77769273786393468662013-04-04T12:48:00.001-07:002013-04-04T12:48:09.639-07:00MinIMU - v2 ProblemaPassei alguns dias a tentar fazer com que este sensor funcionasse com o algorítmo adaptado do sensor Razor. Depois de pensar que tinha conseguido a fusão do sensor e algoritmo, não consegui obter uma boa calibração.<br />
<br />
Esta união apresenta atraso na resposta e más medições. Um fracasso portanto.<br />
<br />
Mesmo com o algoritmo disponibilizado pelo site, ainda não consegui obter bons valores para a orientação deste sensor.Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-43975935899966572522013-04-02T15:31:00.003-07:002013-04-02T15:31:31.091-07:00MinIMUUma vez que o algoritmo utilizado pelo sensor Razor tem um melhor método de calibração, pensei em utilizar o esse algoritmo no sensor MinIMU-v2 Pololu.<div>
<br /></div>
<div>
Utilizando puramente o primeiro algorítmo revelou-se um pequeno desafio para mim, uma vez que não consegui estabelecer bem a comunicação com o sensor, por isso, para contornar o problema recorri às bibliotecas disponibilizadas no site do MinIMU para comunicar com o sensor e utilizei-as no algoritmo do sensor Razor. Assim, consegui utilizar o mesmo algoritmo para os 2 sensores. </div>
<div>
<br /></div>
<div>
Para além desse algoritmo ter melhores métodos de calibração, esta metodologia vai permitir ainda a comparação mais direta entre sensores.</div>
Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-67300384140063615572013-04-02T14:57:00.002-07:002013-04-02T14:57:24.524-07:00Utilização e Calibração dos SensoresPara que as leituras dos sensores possam ser utilizadas, estes necessitam de calibração. Esta necessidade deve-se às pequenas variações por exemplo na constante gravitacional no caso do acelerómetro e no campo magnético que pode ser afetado por materiais ferromagnéticos, circuitos eléctricos, entre outros.<br />
<br />
Como já expliquei na publicação anterior, estes sensores serão utilizados com a implementação do algoritmo que calcula a matriz DCM. Para isso, existem já exemplos online que podem ser utilizados e adaptados em caso de ser necessário.<br />
<br />
Para o IMU Razor existe um tutorial muito simples e completo que explica como utilizar este sensor. Para ver esse tutorial, clique <a href="https://dev.qu.tu-berlin.de/projects/sf-razor-9dof-ahrs/wiki/Tutorial">aqui</a>.<br />
<br />
Este tutorial, além de fornecer o algoritmo para a aplicação da matriz DCM, ainda contém algoritmos de calibração que se têm mostrado promissores nos meus pequenos testes.<br />
<br />
Para o MinIMU-v2 Pololu, apenas consegui encontrar a página indicada no site do sensor. Para a visualizar clique <a href="https://github.com/pololu/MinIMU-9-Arduino-AHRS/blob/master/README.textile">aqui</a>. Este algitmo exemplo é igual ao do sensor anterior, contudo, a calibração por este disponibilizada não aparenta ser tão robusta.<br />
<br />
Desde já, no que toca a comparações entre os 2 sensores, o Razor aparenta ser mais robusto, já possui microcontrolador integrado na sua placa, contudo, é maior e comunica por RS232. O facto da comunicação ser por RS232 não é prejudicial, contudo comparando com a comunicação do sensor MinIMU-v2 Pololu, este segundo requer comunicação por I2C, o que mais facilmente permitiria uma instalação da rede de sensores muito mais fácil. Este segundo sensor além de comunicar por I2C é muito mais pequeno, contudo não vem apetrexado de microcontrolador, o que significa que precisa de um arduino (neste caso utilizo o UNO) para poder comunicar com o sensor.Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-40232969527267511392013-04-02T14:38:00.000-07:002013-04-02T14:38:34.206-07:00SensoresCom o objetivo de conseguir com que o humanoide se mantenha em equilíbrio bípede, na realização deste projeto, será implementada uma rede de sensores inercias (IMU - <i>Inertial Measurement Unit</i>) no mesmo por forma a obter informação sobre a sua estabilidade em situação de equilíbrio.<br />
<br />
Esta metodologia foi pensada tendo como ponto de inspiração o <a href="http://pt.wikipedia.org/wiki/Aparelho_vestibular">aparelho vestibular</a> humano, sendo o maior responsável pelo nosso equilíbrio enquanto seres bípedes.<br />
<br />
Neste caso, os sensores inerciais, os quais vou referir mais adiante, servirão como sistema de aquisição da orientação do robô ou seu centro de massa por forma a possibilitar a identificação de uma situação de instabilidade, de forma a poder corrigi-la a tempo de prevenir a queda do humanoide.<br />
<br />
Para a rede inercial a instalar no humanoide, estão disponíveis dois modelos de sensores inerciais:<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0LptXjTM8ysNjCYWNU-CO1QLSsm1a13tAkE5qrCvXIZU6Q1iaBYiE72WXb84HJc71xJatbsjA1TBx5cGN8frhVHRpY1VXZTFC4vqP4Gnyj9k-JUIRscBUVvKhyuFH63qdj7ok9wYVoYMx/s1600/sensor_pololu.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0LptXjTM8ysNjCYWNU-CO1QLSsm1a13tAkE5qrCvXIZU6Q1iaBYiE72WXb84HJc71xJatbsjA1TBx5cGN8frhVHRpY1VXZTFC4vqP4Gnyj9k-JUIRscBUVvKhyuFH63qdj7ok9wYVoYMx/s200/sensor_pololu.jpg" width="200" /></a></div>
<br />
<br />
<br />
- <a href="http://www.pololu.com/catalog/product/1268">Pololu MinIMU-v2 9DOF</a><br />
<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxFpWwBhly2U3h8wNHOkZQQmOtBx0TQcR-NyXC1rKX27qOeGGKXMMTZ7K84A3cxi8XJFF6WuQ3jPOTKYssAF0gigcmMyZpozDwBffvSv7fpvM0rnZGPfFUV37QvQmA-v7-2McLj-2Iwl3G/s1600/sensor_razor.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxFpWwBhly2U3h8wNHOkZQQmOtBx0TQcR-NyXC1rKX27qOeGGKXMMTZ7K84A3cxi8XJFF6WuQ3jPOTKYssAF0gigcmMyZpozDwBffvSv7fpvM0rnZGPfFUV37QvQmA-v7-2McLj-2Iwl3G/s200/sensor_razor.jpg" width="200" /></a></div>
<br />
<br />
<br />
<br />
- <a href="https://www.sparkfun.com/products/10736">Razor IMU 9 DOF</a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Ambos os sensores são constituidos por acelerómetro, giroscópio e magnetómetro, perfazendo um total de 9 graus de liberdade.<br />
<br />
Associado a cada sensor, está um algoritmo que vai permitir saber a sua orientação no espaço (<a href="http://en.wikipedia.org/wiki/Euler_angles">ângulos de Euler</a>). Este algoritmo apenas utiliza os dados vindos de cada sensor para determinar o matriz de rotação utilizada para converter nos ângulos de Euler (matriz também conhecida por <a href="http://web.mse.uiuc.edu/courses/mse280/Handouts/Example_Dir_Cosines.pdf">DCM - Direction Cosine Matrix</a>).<br />
<br />
<br />
Os sensores são de 9dof , contudo o DCM funciona também com 6dof, ou seja, apenas com o acelerómetro e giroscópio. mas uma vez que por vezes o giroscópio fica com <i>drift , </i>o magnetómetro entra no sistema para corrigir esse problema, caso se verifique. Contudo , e porque nem tudo é um mar de rosas, o magnetómetro em ambientes onde o campo magnético não seja constante, apresenta alteração dos valores por este recebidos, podendo dar origem a erros.<br />
<br />
Dada a sensibilidade deste tipo de sensores, ainda será ponderada e avaliada a necessidade da aplicação de um <a href="http://en.wikipedia.org/wiki/Kalman_filter">filtro de Kalman</a> por forma a estabilizar as leituras dos sensores.<br />
<br />Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-6086592920702607412013-04-02T14:02:00.000-07:002013-04-02T14:02:00.033-07:00Robô Humanoide do PHUA<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7pWvSNWJP2Iru3qFylPxgAh_FJan3iWINIPezXD9G7I8HeMDLeAv4I7tglU9AZYvFbCdxAQGbmtd09ugkEuo2pFdtVxOIMt0J_2drUAFFdgnHlMXpX9tZ4T5Fe0EKPoQnU1UwHkTNkkqz/s1600/norberto.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7pWvSNWJP2Iru3qFylPxgAh_FJan3iWINIPezXD9G7I8HeMDLeAv4I7tglU9AZYvFbCdxAQGbmtd09ugkEuo2pFdtVxOIMt0J_2drUAFFdgnHlMXpX9tZ4T5Fe0EKPoQnU1UwHkTNkkqz/s320/norberto.png" width="170" /></a></div>
<div>
- 25 Graus de Liberdade ;</div>
<div>
<br /></div>
<div>
- 65 cm Altura;</div>
<div>
<br /></div>
<div>
- 6 kg;</div>
<div>
<br /></div>
<div>
- Estrutura em alumínio;</div>
<div>
<br /></div>
<div>
- Atuação Ativa</div>
<div>
- Servomotores HITEC;</div>
<div>
<br /></div>
<div>
- Atuação Passiva</div>
<div>
- Elásticos.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Este é o módulo do PHUA, que depois de outros módulos, arrancou com este último em 2009.</div>
<div>
<br /></div>
<div>
De momento, o objetivo dos trabalhos que se desenvolvem em torno deste humanoide centra-se em atribuir-lhe a capacidade de se equilibrar. </div>
Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0tag:blogger.com,1999:blog-885977029986566325.post-76838194432054714432013-03-30T12:05:00.000-07:002013-03-30T12:08:36.806-07:00Projeto de DissertaçãoNa fase final (projeto de dissertação) do curso Mestrado Integrado em Engenharia Mecânica, leccionado na <a href="http://www.ua.pt/">Universidade de Aveiro</a>,
propus-me a desenvolver um projeto que visa a integrar um projeto de
maior dimensão, o Projeto Humanoide da Universidade de Aveiro- PHUA.<br />
<br />
Este
projeto, que tem sido desenvolvido por alunos em fase de dissertação,
sob a orientação do Prof. Dr. Vitor Santos e Prof. Dr. Filipe Silva,
conta já com o desenvolvimento de um novo corpo humanoide desde 2009. <br />
<br />
O PHUA emcontra-se em desenvolvimento no<a href="http://lars.mec.ua.pt/"> Laboratório de Automação e Robótica - LAR</a>,
onde se encontram e por lá têm passado inúmeros estudantes e
investigadores a desenvolver projetos para além do PHUA como o projeto
ATLAS.<br />
<br />
O meu contributo para o PHUA, será como o nome
deste blog indica, o desenvolvimento de uma rede inercial composta por
IMU - (Inercial Measurement Unit) e sua integração no robô humanoide com
o objetivo de lhe atribuir capacidade de equilíbrio estático (pelo
menos num primeiro plano), podendo esta rede inercial, quem sabe em
projetos futuros, ser aproveitada em situações dinâmicas.Anonymoushttp://www.blogger.com/profile/17609124102571863476noreply@blogger.com0