leofeltrin commited on
Commit
af81567
·
1 Parent(s): bf615e7

Adicionar documento com limitacoes do sistema

Browse files
Files changed (1) hide show
  1. LIMITACOES_SISTEMA.md +182 -0
LIMITACOES_SISTEMA.md ADDED
@@ -0,0 +1,182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Limitações do Sistema Gen-Sim
2
+
3
+ Este documento lista as principais limitações do sistema para ajudar a evitar tarefas impossíveis.
4
+
5
+ ## 1. Primitives (Ações Básicas)
6
+
7
+ ### ✅ Suportado
8
+ - **PickPlace()**: Pegar e colocar objetos (padrão)
9
+ - **push**: Empurrar objetos horizontalmente (requer Spatula)
10
+
11
+ ### ❌ Não Suportado
12
+ - Cortar objetos
13
+ - Quebrar objetos
14
+ - Girar objetos manualmente
15
+ - Ações destrutivas ("knock down", "destroy", "break", "smash")
16
+ - Múltiplos primitives na mesma tarefa (toda tarefa usa apenas um)
17
+
18
+ **Importante**: Não pode mudar `self.primitive` dentro de `reset()` - deve ser definido em `__init__` ou `additional_reset()`.
19
+
20
+ ## 2. Workspace (Área de Trabalho)
21
+
22
+ ### Limites Fixos
23
+ - **X**: [0.25, 0.75]
24
+ - **Y**: [-0.5, 0.5]
25
+ - **Z**: [0, 0.3]
26
+
27
+ **⚠️ Objetos fora desses limites não funcionam!**
28
+
29
+ ## 3. Métricas de Avaliação
30
+
31
+ ### ✅ Suportado
32
+ - **`metric='pose'`**: Posição exata do objeto
33
+ - **`metric='zone'`**: Objeto dentro de uma zona (para relações "near")
34
+
35
+ ### ❌ Não Suportado
36
+ - Distância mínima entre objetos
37
+ - Alinhamento complexo
38
+ - Relações espaciais avançadas
39
+ - Verificação de colisão detalhada
40
+
41
+ ## 4. Ações Destrutivas
42
+
43
+ ### ❌ Não Suportado
44
+ - "knock down" (derrubar)
45
+ - "destroy" (destruir)
46
+ - "break" (quebrar)
47
+ - "smash" (esmagar)
48
+
49
+ ### ✅ Alternativa
50
+ Simplificar para:
51
+ - "place ball near pyramid" (usando `metric='zone'`)
52
+ - "push ball near pyramid" (usando push primitive)
53
+
54
+ ## 5. Assets (Objetos)
55
+
56
+ ### ✅ Pode Usar
57
+ Apenas assets que existem em `cliport/environments/assets/`:
58
+ - `stacking/block.urdf`
59
+ - `stacking/ball.urdf`
60
+ - `stacking/stand.urdf`
61
+ - `zone/zone.urdf`
62
+ - `corner/corner-template.urdf`
63
+ - `container/container-template.urdf`
64
+ - E outros assets pré-definidos
65
+
66
+ ### ❌ Não Pode
67
+ - Criar novos objetos
68
+ - Usar assets que não existem
69
+ - Modificar assets existentes
70
+
71
+ ## 6. Cores Disponíveis
72
+
73
+ ### ✅ Cores Válidas
74
+ Apenas cores pré-definidas em `utils.COLORS`:
75
+ - `'red'`
76
+ - `'blue'`
77
+ - `'green'`
78
+ - `'yellow'`
79
+ - `'orange'`
80
+ - `'purple'`
81
+
82
+ ### ❌ Não Suportado
83
+ - `'light blue'`
84
+ - `'dark red'`
85
+ - Cores customizadas
86
+ - Gradientes
87
+
88
+ ## 7. Física e Colisões
89
+
90
+ ### Limitações
91
+ - **PickPlace** não faz verificação de colisão detalhada
92
+ - Pode falhar ao pegar certos objetos
93
+ - Física limitada (PyBullet básico)
94
+ - Não suporta simulações físicas complexas
95
+
96
+ ## 8. Tarefas Sequenciais
97
+
98
+ ### ✅ Suportado
99
+ - Múltiplos `add_goal()` em sequência
100
+ - Tarefas do tipo "build X then do Y"
101
+
102
+ ### ⚠️ Limitações
103
+ - Não garante ordem perfeita de execução
104
+ - Cada goal é tentado sequencialmente
105
+ - Não pode mudar primitive no meio da tarefa
106
+
107
+ ## 9. Taxa de Sucesso
108
+
109
+ - **Taxa de sucesso**: ~50% (segundo README)
110
+ - Código pode falhar ou gerar tarefas inviáveis
111
+ - Tarefas muito vagas ou distantes dos primitives têm menor chance de sucesso
112
+
113
+ ## 10. End Effectors (Grippers)
114
+
115
+ ### ✅ Disponíveis
116
+ - **Suction**: Ventosa (padrão, para PickPlace)
117
+ - **Spatula**: Espátula (para push)
118
+
119
+ ### ❌ Não Suportado
120
+ - Outros tipos de grippers
121
+ - Mudança de gripper durante execução
122
+
123
+ ---
124
+
125
+ ## ✅ O Que Funciona Bem
126
+
127
+ - ✅ Empilhar objetos (pirâmides, torres)
128
+ - ✅ Organizar em padrões (fileiras, círculos, espirais)
129
+ - ✅ Colocar objetos em zonas/containers
130
+ - ✅ Empurrar objetos horizontalmente
131
+ - ✅ Tarefas sequenciais simples (construir X, depois fazer Y)
132
+ - ✅ Múltiplas estruturas (duas pirâmides, pirâmide + fileira)
133
+ - ✅ Padrões coloridos (xadrez, alternado, sequencial)
134
+
135
+ ## ❌ O Que Evitar
136
+
137
+ - ❌ Ações destrutivas ("knock down", "destroy")
138
+ - ❌ Tarefas que requerem física complexa
139
+ - ❌ Objetos fora dos limites do workspace
140
+ - ❌ Cores não padronizadas
141
+ - ❌ Assets que não existem
142
+ - ❌ Mudar primitive no meio da tarefa
143
+ - ❌ Tarefas muito vagas ou distantes dos primitives
144
+ - ❌ Múltiplos primitives na mesma tarefa
145
+
146
+ ---
147
+
148
+ ## 📝 Exemplos de Tarefas Válidas
149
+
150
+ ### ✅ Funcionam
151
+ - "build a pyramid with red blocks"
152
+ - "create a row of four blue blocks"
153
+ - "organize blocks in a circle"
154
+ - "build a bridge with separated bases"
155
+ - "place blue blocks in green zones"
156
+ - "push blue block near red block"
157
+ - "build two pyramids: one red, one blue"
158
+ - "create a spiral with colored blocks"
159
+
160
+ ### ❌ Não Funcionam
161
+ - "knock down the pyramid with a ball" → Use "place ball near pyramid"
162
+ - "destroy the structure" → Não suportado
163
+ - "cut the block in half" → Não suportado
164
+ - "use light blue color" → Use apenas 'blue'
165
+ - "create a new object" → Use apenas assets existentes
166
+ - "build outside the table" → Objetos devem estar dentro dos limites
167
+
168
+ ---
169
+
170
+ ## 💡 Dicas
171
+
172
+ 1. **Seja específico**: Tarefas claras têm maior chance de sucesso
173
+ 2. **Use assets conhecidos**: Verifique se o asset existe antes de usar
174
+ 3. **Respeite os limites**: Todos os objetos devem estar dentro do workspace
175
+ 4. **Simplifique ações destrutivas**: Use "place near" ou "push near" em vez de "knock down"
176
+ 5. **Use cores padrão**: Apenas as cores pré-definidas funcionam
177
+ 6. **Um primitive por tarefa**: Escolha PickPlace OU push, não ambos
178
+
179
+ ---
180
+
181
+ **Última atualização**: Dezembro 2024
182
+