function [cm_esquerda,Ref]=Parte_esquerda(Ref,cmassa,mi,Pfinal,O);                  %
%CONFIGURAÇOES INICIAIS                                                     %
dimensoes=dimensions;              	 	                                    %lê comprimento dos elos
manip_esquerda=manipesquerda(dimensoes,Pfinal);                             %configuraçao do "manipulador" da esquerda (braço e ombro)
n_elos=size(manip_esquerda,1);                                              %numero de elos deste "manipulador"
Ref_cima(:,:,1)=eye(4,4);                                                   %matriz identidade 4*4 (especie de referencial para cada elo)
junta_esquerda(:,1)=[0;0;0;1];                                              %primeira junta
centromassa_esquerda(1:4,1:n_elos)=0;                                       %centros de massa locais
Rcm_esquerda=0;                                                             %centro de massa do "manipulador" (do braço e ombro direitos)
                                                                            %
%CALCULO DE TODO O MANIPULADOR                                              %
Ref_esquerda(:,:,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_esquerda(i,1);                                      %   "
	        alfa=manip_esquerda(i,2);                                       %   "
	        l=manip_esquerda(i,3);                                          %   "
	        d=manip_esquerda(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_esquerda(:,:,i+1)=Ref_esquerda(:,:,i)*DH_cima(:,:,i);       %   "
			junta_esquerda(:,i+1)=Ref_esquerda(:,:,i+1)*junta_esquerda(:,1);%determino nova junta (acrescento-a a matriz junta)            
            centromassa_esquerda(:,i)=Ref_esquerda(:,:,i+1)*cmassa(:,i+27); %centros de massas locais
            Rcm_esquerda=Rcm_esquerda+centromassa_esquerda(1:3,i)*mi(i+27); %centro de massa global
        end;                                                                %     
Rcm_esquerda=Rcm_esquerda/(sum(mi(28:31)));                                                                     %correcçao do centro de massa global
junta_esquerda(:,1)=Ref_esquerda(:,4,1);                                                                        %correcçao do ponto inicial
                                                                                                                %
%REPRESENTAÇAO DO MANIPULADOR                                                                                   %
        j_aux=O*junta_esquerda;                                          %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_esquerda;                                   %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_esquerda(:,:,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 esquerda  
cm_esquerda=Rcm_esquerda;
Ref(:,:,28:31)=Ref_esquerda(:,:,2:5);