47 def->defineRequiredProperty<std::string>(
"robotName");
83 HumanActivityDebugger::run()
85 ARMARX_INFO <<
"Use 'activity [firstName] [lastName] [activityType] [activityName] "
86 "[confidence]' to commit an activity";
87 ARMARX_INFO <<
" Activity types: WALKING, STANDING, SITTING, REACHING, GRASPING, "
88 "POINTING, WAVING, TALKING, LISTENING, WORKING, EATING, DRINKING";
89 ARMARX_INFO <<
" Example: activity John Doe WALKING walking 0.95";
96 if (command ==
"activity")
100 else if (command ==
"read")
102 readActivityCommand();
104 else if (command ==
"exit")
119 HumanActivityDebugger::activityCommand()
121 std::string firstName, lastName, activityTypeStr, activityName, confidenceStr;
122 std::cin >> firstName >> lastName >> activityTypeStr >> activityName >> confidenceStr;
124 float confidence = std::stof(confidenceStr);
130 std::string activityTypeUpper = simox::alg::to_upper(activityTypeStr);
132 if (activityTypeUpper ==
"WALKING")
134 else if (activityTypeUpper ==
"STANDING")
136 else if (activityTypeUpper ==
"SITTING")
138 else if (activityTypeUpper ==
"REACHING")
140 else if (activityTypeUpper ==
"GRASPING")
142 else if (activityTypeUpper ==
"POINTING")
144 else if (activityTypeUpper ==
"WAVING")
146 else if (activityTypeUpper ==
"TALKING")
148 else if (activityTypeUpper ==
"LISTENING")
150 else if (activityTypeUpper ==
"WORKING")
152 else if (activityTypeUpper ==
"EATING")
154 else if (activityTypeUpper ==
"DRINKING")
156 else if (activityTypeUpper ==
"CUSTOM")
160 ARMARX_WARNING <<
"Unknown activity type: " << activityTypeStr <<
". Using UNKNOWN.";
163 commitActivity(firstName, lastName, activityType, activityName, confidence);
167 HumanActivityDebugger::readActivityCommand()
170 armarx::armem::human::client::ActivityReader::Query query = {
175 auto result = activityReader.query(query,
true);
179 ARMARX_WARNING <<
"Failed to read activities from memory: " << result.errorMessage;
183 if (result.activities.empty())
189 ARMARX_INFO <<
"Activities in memory (" << result.activities.size() <<
" total):";
190 for (
const auto& activity : result.activities)
192 ARMARX_INFO <<
" Activity: " << activity.activityName;
193 ARMARX_INFO <<
" Type: " <<
static_cast<int>(activity.activityType);
194 ARMARX_INFO <<
" Confidence: " << activity.confidence;
196 if (activity.personID.has_value())
198 ARMARX_INFO <<
" Person: " << activity.personID.value().firstName <<
" "
199 << activity.personID.value().lastName;
206 if (activity.description.has_value())
208 ARMARX_INFO <<
" Description: " << activity.description.value();
211 ARMARX_INFO <<
" Start time: " << activity.startTime;
218 HumanActivityDebugger::commitActivity(
const std::string& firstName,
219 const std::string& lastName,
221 const std::string& activityName,
225 armarx::armem::human::HumanActivity activity;
233 armarx::armem::human::PersonID personID;
238 activity.
description =
"Debug activity created by HumanActivityDebugger";
242 ARMARX_INFO <<
"Committing activity '" << activityName <<
"' for person " << firstName
243 <<
" " << lastName <<
" (entity: " << entityName <<
") with confidence "
246 bool success = activityWriter.commitHumanActivity(
262 return "HumanActivityDebugger";