Eigen::VectorXd::Map(&jointTrajPoint.positions[0],jointTrajPoint.positions.size())=q_.data;
if(!t0_) t0_=std::make_unique<builtin_interfaces::msg::Time>(poseStamped->header.stamp);
- jointTrajPoint.time_from_start.sec=poseStamped->header.stamp.sec-t0_->sec;
- jointTrajPoint.time_from_start.nanosec=poseStamped->header.stamp.nanosec-t0_->nanosec;
+ if(poseStamped->header.stamp.nanosec >= t0_->nanosec)
+ {
+ jointTrajPoint.time_from_start.nanosec=poseStamped->header.stamp.nanosec-t0_->nanosec;
+ jointTrajPoint.time_from_start.sec=poseStamped->header.stamp.sec-t0_->sec;
+ }
+ else
+ {
+ jointTrajPoint.time_from_start.nanosec=1000000000+poseStamped->header.stamp.nanosec-t0_->nanosec;
+ jointTrajPoint.time_from_start.sec=poseStamped->header.stamp.sec-t0_->sec-1;
+ }
jointTrajPointPub_->publish(jointTrajPoint);
}