function [cm_Direita,Ref]=Parte_direita(Ref,cmassa,mi,Pfinal,O);                    %
%CONFIGURAÇOES INICIAIS                                                     %
dimensoes=dimensions;              	 	                                    %lê comprimento dos elos
manip_direita=manipDIREITA(dimensoes,Pfinal);                               %configuraçao do "manipulador" da direita (braço e ombro)
n_elos=size(manip_direita,1);                                               %numero de elos deste "manipulador"
Ref_cima(:,:,1)=eye(4,4);                                                   %matriz identidade 4*4 (especie de referencial para cada elo)
junta_direita(:,1)=[0;0;0;1];                                               %primeira junta
centromassa_direita(1:4,1:n_elos)=0;                                        %centros de massa locais
Rcm_direita=0;                                                              %centro de massa do "manipulador" (do braço e ombro direitos)
                                                                            %
%CALCULO DE TODO O MANIPULADOR                                              %
Ref_direita(:,:,1)=Ref(:,:,20);                                             %o referencial inicial ´e o ponto medio da anca
for i=1:n_elos;                                                             %determino DH para todos os elos (i->numero do elo)
	        theta=manip_direita(i,1);                                       %   "
	        alfa=manip_direita(i,2);                                        %   "
	        l=manip_direita(i,3);                                           %   "
	        d=manip_direita(i,4);                                           %   "
	        DH_cima(1,1,i)=cos(theta);                                      %   "
        	DH_cima(1,2,i)=-sin(theta)*cos(alfa);                           %   "
        	DH_cima(1,3,i)=sin(theta)*sin(alfa);                            %   "
        	DH_cima(1,4,i)=l*cos(theta);                                    %   "
        	DH_cima(2,1,i)=sin(theta);                                      %   "
        	DH_cima(2,2,i)=cos(theta)*cos(alfa);                            %   "
        	DH_cima(2,3,i)=-cos(theta)*sin(alfa);                           %   "
        	DH_cima(2,4,i)=l*sin(theta);                                    %   "
        	DH_cima(3,1,i)=0;                                               %   "
        	DH_cima(3,2,i)=sin(alfa);                                       %   "
        	DH_cima(3,3,i)=cos(alfa);                                       %   "
        	DH_cima(3,4,i)=d;                                               %   "
        	DH_cima(4,1,i)=0;                                               %   "
        	DH_cima(4,2,i)=0;                                               %   "
        	DH_cima(4,3,i)=0;                                               %   "
        	DH_cima(4,4,i)=1;                                               %   "
            Ref_direita(:,:,i+1)=Ref_direita(:,:,i)*DH_cima(:,:,i);         %   "
			junta_direita(:,i+1)=Ref_direita(:,:,i+1)*junta_direita(:,1);   %determino nova junta (acrescento-a a matriz junta)            
            centromassa_direita(:,i)=Ref_direita(:,:,i+1)*cmassa(:,i+23);   %centros de massas locais
            Rcm_direita=Rcm_direita+centromassa_direita(1:3,i)*mi(i+23);    %centro de massa global
        end;                                                                %     
Rcm_direita=Rcm_direita/(sum(mi(24:27)));                                                                   %correcçao do centro de massa global
junta_direita(:,1)=Ref_direita(:,4,1);                                                                      %correcçao do ponto inicial
                                                                                                            %
%REPRESENTAÇAO DO MANIPULADOR                                                                               %
        j_aux=O*junta_direita;                                          %junta auxiliar (para desenho)
plot3(j_aux(1,1:end),j_aux(2,1:end),j_aux(3,1:end));                                %desenho os elos
plot3(j_aux(1,2:n_elos),j_aux(2,2:n_elos),j_aux(3,2:n_elos),'bo');                  %desenha juntas
        cm_aux=O*centromassa_direita;                                   %centros de massa auxiliares (para desenho)
plot3(cm_aux(1,1:n_elos),cm_aux(2,1:n_elos),cm_aux(3,1:n_elos),'rx');%desenha centros de massa (locais)
Mao=[0 0 0;0 -30 0;-10 0 10;1 1 1];                                                                         %Mao (configuraçao)
Mao=Ref_direita(:,:,i+1)*Mao;                                                                               %Mao (nova posicao)
        Mao_aux=O*Mao;
fill3(Mao_aux(1,:),Mao_aux(2,:),Mao_aux(3,:),'y');                                                                      %desenha Mao

%VALORES DE SAIDA...centro de massa da parte superior direita  
cm_Direita=Rcm_direita;
Ref(:,:,24:27)=Ref_direita(:,:,2:5);