这是相机到激光的外参文件,我需要更改rotation的w,x,y,z,但是不改其他的node
header: seq: 0 stamp: secs: 0 nsecs: 0 frame_id: velodyne128 child_frame_id: right_front transform: translation: x: 0.51 y: 0.31 z: -0.10 rotation: w: 0.20917936691977584 x: -0.393691854453879 y: 0.74159674408047471 z: -0.50128333840348849
YAML::Node _baseNode = YAML::LoadFile("right_front_extrinsics.yaml"); _baseNode["transform"]["rotation"]["w"]= q.w; _baseNode["transform"]["rotation"]["x"]= q.x; _baseNode["transform"]["rotation"]["y"]= q.y; _baseNode["transform"]["rotation"]["z"]= q.z; ofstream fout("right_front_extrinsics.yaml"); //保存 fout << _baseNode; fout.close();
需要注意的是,这里先加载yaml文件,再覆盖,最后写入。
参考:C++ YAML: How to edit/write to a node in a .yaml file - Stack Overflow
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)