add timestamp to work info

This commit is contained in:
NuoDaJia02
2026-01-27 18:51:29 +08:00
parent c4f07c73fb
commit da61cf8709
2 changed files with 7 additions and 1 deletions

View File

@@ -277,7 +277,7 @@ private:
std::ostringstream oss;
oss <<
"\n <root BTCPP_format=\"4\" >\n\n <BehaviorTree ID=\"MainTree\">\n <Sequence name=\"root_sequence\">\n";
auto timestamp = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now().time_since_epoch()).count();
auto timestamp = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch()).count();
for (size_t i = 0; i < seq.size(); ++i) {
const auto & act = seq[i];
// Append timestamp and sequence index to ensure global uniqueness of the instance name in the tree

View File

@@ -670,6 +670,7 @@ bool CerebrumNode::DeclareBtActionParamsForSkillInstance(
robot_work_info_.skill = skill_name;
robot_work_info_.action_name = instance_name;
robot_work_info_.instance_params = instance_params;
robot_work_info_.stamp = this->now();
return UpdateBtActionParamsForSkillInstance(skill_name, instance_name, instance_params);
} else if (current_path_copy.config == skill_name) {
@@ -699,6 +700,10 @@ bool CerebrumNode::DeclareBtActionParamsForSkillInstance(
robot_work_info_.skill = skill_name;
robot_work_info_.action_name = instance_name;
robot_work_info_.instance_params = instance_params;
//builtin_interfaces/Time stamp # 时间戳
// # * stamp.secs: seconds (stamp_secs) since epoch
// # * stamp.nsecs: nanoseconds since stamp_secs
robot_work_info_.stamp = this->now();
return UpdateBtActionParamsForSkillInstance(skill_name, instance_name, instance_params);
}
@@ -1573,6 +1578,7 @@ void CerebrumNode::RobotWorkInfoPublish()
robot_work_info_.task.push_back("None"); //next task
robot_work_info_.task.push_back("None"); //current task
robot_work_info_.bt_node_status = "IDLE";
robot_work_info_.stamp = this->now();
robot_work_info_pub_ = this->create_publisher<
interfaces::msg::RobotWorkInfo>("/robot_work_info", 10);