diff --git a/examples/loaders/urdf_loader.cpp b/examples/loaders/urdf_loader.cpp index b02b3915..650eb142 100644 --- a/examples/loaders/urdf_loader.cpp +++ b/examples/loaders/urdf_loader.cpp @@ -6,7 +6,11 @@ using namespace threepp; -int main() { +int main(int argc, char** argv) { + + if (argc != 2) return 1; + + std::string urdfPath = argv[1]; Canvas canvas{"URDF loader", {{"aa", 4}}}; GLRenderer renderer(canvas.size()); @@ -26,7 +30,7 @@ int main() { URDFLoader loader; AssimpLoader assimpLoader; - auto model = loader.load(assimpLoader, "C:\\Users\\Lars Ivar Hatledal\\OneDrive - NTNU\\Teaching\\AIS1003\\2023\\Mappe\\Sensur\\10031\\testfiler\\abb-kinetic-devel\\abb_irb2400_support\\urdf\\irb2400.urdf"); + auto model = loader.load(assimpLoader, urdfPath); scene->add(model); Box3 bb; @@ -47,7 +51,12 @@ int main() { canvas.animate([&]() { const auto dt = clock.getDelta(); - model->getObjectByName("joint_1")->rotation.y += dt * 1; + model->getObjectByName("joint_1")->rotation.y += dt * 0.1; + model->getObjectByName("joint_2")->rotation.z += dt * 0.1; + model->getObjectByName("joint_3")->rotation.z += dt * 0.1; + model->getObjectByName("joint_4")->rotation.x += dt * 0.1; + // model->getObjectByName("joint_5")->rotation.y += dt * 0.1; + // model->getObjectByName("joint_6")->rotation.y += dt * 0.1; model->updateMatrixWorld(); diff --git a/src/threepp/loaders/URDFLoader.cpp b/src/threepp/loaders/URDFLoader.cpp index c6f7b94c..fe639346 100644 --- a/src/threepp/loaders/URDFLoader.cpp +++ b/src/threepp/loaders/URDFLoader.cpp @@ -55,9 +55,9 @@ struct URDFLoader::Impl { auto linkObject = std::make_shared(); linkObject->name = link.attribute("name").value(); - if (linkObject->name == "base_link") { - object->add(linkObject); - } + // if (linkObject->name == "base_link") { + // object->add(linkObject); + // } for (auto visual : link.children("visual")) { @@ -143,21 +143,9 @@ struct URDFLoader::Impl { for (const auto& l : links) { - // if (!l->parent) object->add(l); + if (!l->parent) object->add(l); } - // auto o = object->getObjectByName("joint_1"); - // o->rotation.z = -std::numbers::phi / 2; - - // object->traverse([&](auto& o) { - // if (o.name.find("joint_") != std::string::npos) { - // std::cout << o.name << std::endl; - // // std::cout << o.parent->name << std::endl; - // std::cout << std::endl; - // o.rotation.y = std::numbers::phi/6; - // } - // }); - return object; } };