Skip to content
Open
7 changes: 7 additions & 0 deletions projeto1/limpeza_catkin.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
cd ~/catkin_ws/src
sudo rm -rf DynamixelSDK
sudo rm -rf dynamixel-workbench
sudo rm -rf dynamixel-workbench-msgs
sudo rm -rf turtlebot3_manipulation
sudo rm -rf turtlebot3_manipulation_simulations
sudo rm -rf roboticsgroup_gazebo_plugins
2 changes: 2 additions & 0 deletions revisao/lista_provas_anteriores.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@


22 changes: 22 additions & 0 deletions ros/insper_garra/urdf/open_manipulator_x.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,17 @@
<geometry>
<mesh filename="package://insper_garra/meshes/chain_link_grip_l.stl" scale="0.001 0.001 0.001"/>
</geometry>
<surface>
<friction>
<torsional>
<coefficient>100</coefficient>
<use_patch_radius>true</use_patch_radius>
<patch_radius>0.1</patch_radius>
<surface_radius>0.1</surface_radius>

</torsional>
</friction>
</surface>
</collision>

<inertial>
Expand Down Expand Up @@ -227,6 +238,17 @@
<geometry>
<mesh filename="package://insper_garra/meshes/chain_link_grip_r.stl" scale="0.001 0.001 0.001"/>
</geometry>
<surface>
<friction>
<torsional>
<coefficient>100</coefficient>
<use_patch_radius>true</use_patch_radius>
<patch_radius>0.1</patch_radius>
<surface_radius>0.1</surface_radius>

</torsional>
</friction>
</surface>
</collision>

<inertial>
Expand Down
72 changes: 36 additions & 36 deletions ros/projeto1_base/scripts/base_proj.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,42 +55,42 @@


def recebe(msg):
global x # O global impede a recriacao de uma variavel local, para podermos usar o x global ja' declarado
global y
global z
global id
for marker in msg.markers:
id = marker.id
marcador = "ar_marker_" + str(id)

print(tf_buffer.can_transform(frame, marcador, rospy.Time(0)))
header = Header(frame_id=marcador)
# Procura a transformacao em sistema de coordenadas entre a base do robo e o marcador numero 100
# Note que para seu projeto 1 voce nao vai precisar de nada que tem abaixo, a
# Nao ser que queira levar angulos em conta
trans = tf_buffer.lookup_transform(frame, marcador, rospy.Time(0))
# Separa as translacoes das rotacoes
x = trans.transform.translation.x
y = trans.transform.translation.y
z = trans.transform.translation.z
# ATENCAO: tudo o que vem a seguir e' so para calcular um angulo
# Para medirmos o angulo entre marcador e robo vamos projetar o eixo Z do marcador (perpendicular)
# no eixo X do robo (que e' a direcao para a frente)
t = transformations.translation_matrix([x, y, z])
# Encontra as rotacoes e cria uma matriz de rotacao a partir dos quaternions
r = transformations.quaternion_matrix([trans.transform.rotation.x, trans.transform.rotation.y, trans.transform.rotation.z, trans.transform.rotation.w])
m = numpy.dot(r,t) # Criamos a matriz composta por translacoes e rotacoes
z_marker = [0,0,1,0] # Sao 4 coordenadas porque e' um vetor em coordenadas homogeneas
v2 = numpy.dot(m, z_marker)
v2_n = v2[0:-1] # Descartamos a ultima posicao
n2 = v2_n/linalg.norm(v2_n) # Normalizamos o vetor
x_robo = [1,0,0]
cosa = numpy.dot(n2, x_robo) # Projecao do vetor normal ao marcador no x do robo
angulo_marcador_robo = math.degrees(math.acos(cosa))

# Terminamos
print("id: {} x {} y {} z {} angulo {} ".format(id, x,y,z, angulo_marcador_robo))
global x # O global impede a recriacao de uma variavel local, para podermos usar o x global ja' declarado
global y
global z
global id
for marker in msg.markers:
id = marker.id
marcador = "ar_marker_" + str(id)

print(tf_buffer.can_transform(frame, marcador, rospy.Time(0)))
header = Header(frame_id=marcador)
# Procura a transformacao em sistema de coordenadas entre a base do robo e o marcador numero 100
# Note que para seu projeto 1 voce nao vai precisar de nada que tem abaixo, a
# Nao ser que queira levar angulos em conta
trans = tf_buffer.lookup_transform(frame, marcador, rospy.Time(0))
# Separa as translacoes das rotacoes
x = trans.transform.translation.x
y = trans.transform.translation.y
z = trans.transform.translation.z
# ATENCAO: tudo o que vem a seguir e' so para calcular um angulo
# Para medirmos o angulo entre marcador e robo vamos projetar o eixo Z do marcador (perpendicular)
# no eixo X do robo (que e' a direcao para a frente)
t = transformations.translation_matrix([x, y, z])
# Encontra as rotacoes e cria uma matriz de rotacao a partir dos quaternions
r = transformations.quaternion_matrix([trans.transform.rotation.x, trans.transform.rotation.y, trans.transform.rotation.z, trans.transform.rotation.w])
m = numpy.dot(r,t) # Criamos a matriz composta por translacoes e rotacoes
z_marker = [0,0,1,0] # Sao 4 coordenadas porque e' um vetor em coordenadas homogeneas
v2 = numpy.dot(m, z_marker)
v2_n = v2[0:-1] # Descartamos a ultima posicao
n2 = v2_n/linalg.norm(v2_n) # Normalizamos o vetor
x_robo = [1,0,0]
cosa = numpy.dot(n2, x_robo) # Projecao do vetor normal ao marcador no x do robo
angulo_marcador_robo = math.degrees(math.acos(cosa))

# Terminamos
print("id: {} x {} y {} z {} angulo {} ".format(id, x,y,z, angulo_marcador_robo))



Expand Down
204 changes: 204 additions & 0 deletions ros/projeto1_base/scripts/bug_visao_module.ipynb

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading