utils.cpp
Go to the documentation of this file.
1 #include "utils.h"
2 
4 
6 
8 {
9  std::optional<robot::RobotDescription>
11  {
12 
13  arondto::ObjectClass aronObjectInfo;
14  try
15  {
16  aronObjectInfo.fromAron(instance.data());
17  }
18  catch (...)
19  {
20  ARMARX_WARNING << "Conversion to ObjectPose failed!";
21  return std::nullopt;
22  }
23 
24  robot::RobotDescription robotDescription;
25  fromAron(aronObjectInfo, robotDescription);
26 
27  // check if robot description is valid
28  const auto xml = robotDescription.xml.serialize();
29  if (robotDescription.name.empty() or xml.package.empty() or xml.path.empty())
30  {
31  return std::nullopt;
32  }
33 
34  return robotDescription;
35  }
36 
37 } // namespace armarx::armem::articulated_object
armarx::armem::wm::EntityInstance
Client-side working entity instance.
Definition: memory_definitions.h:32
armarx::armem::articulated_object::convertRobotDescription
std::optional< robot::RobotDescription > convertRobotDescription(const armem::wm::EntityInstance &instance)
Definition: utils.cpp:10
armarx::PackagePath::serialize
data::PackagePath serialize() const
Definition: PackagePath.cpp:76
armarx::armem::robot::RobotDescription
Definition: types.h:17
aron_conversions.h
utils.h
armarx::armem::robot::RobotDescription::xml
PackagePath xml
Definition: types.h:22
armarx::armem::fromAron
void fromAron(const arondto::MemoryID &dto, MemoryID &bo)
Definition: aron_conversions.cpp:8
armarx::armem::robot::RobotDescription::name
std::string name
Definition: types.h:21
armarx::armem::articulated_object
Definition: ArticulatedObjectReader.cpp:24
Logging.h
ARMARX_WARNING
#define ARMARX_WARNING
Definition: Logging.h:186
armarx::armem::base::EntityInstanceBase::data
const DataT & data() const
Definition: EntityInstanceBase.h:129