Итак, у меня есть задача, которая заключается в том, чтобы запрограммировать робота (AUBO), чтобы он выбирал разные объекты и располагал их в определенном порядке (точки A, B, C, D).Я использую некоторую систему зрения, известную как pim60.Поэтому, если объект обнаружен, он пойдет и выберет, а остальная часть программы будет путеводной точкой для отбрасывания продуктов.Первая проблема заключается в том, что я хочу, чтобы она переместилась на следующую путевую точку для удаления, а во-вторых, следующая точка отбрасывания не может быть пропущена, пока не будет обнаружен объект для этой точки отбрасывания.
В своем собственном коде я написал довольно длинную программу, подобную этой.
::LoopA::
script_common_interface("SICKCamera","takePhoto")
script_common_interface("SICKCamera","getResult")
Located = script_common_interface("SICKCamera","partLocated")
if(Located == 1) then
.
.
.
Drop at position A
else
goto LoopA
end
::LoopB::
script_common_interface("SICKCamera","takePhoto")
script_common_interface("SICKCamera","getResult")
Located = script_common_interface("SICKCamera","partLocated")
if(Located == 1) then
.
.
.
Drop at position B
else
goto LoopB
end
::LoopC::
script_common_interface("SICKCamera","takePhoto")
script_common_interface("SICKCamera","getResult")
Located = script_common_interface("SICKCamera","partLocated")
if(Located == 1) then
.
.
.
Drop at position C
else
goto LoopC
end
::LoopD::
script_common_interface("SICKCamera","takePhoto")
script_common_interface("SICKCamera","getResult")
Located = script_common_interface("SICKCamera","partLocated")
if(Located == 1) then
.
.
.
Drop at position D
else
goto LoopD
end
Нет ошибки, и программа работает, как и ожидалось.Однако мне интересно, есть ли лучший способ сделать это.