Search code examples
rotationaxishalconpose

Halcon - Rotate pose


I know that there is set_origin_pose to shift a pose in X/Y/Z.

But I was not able to to rotate a pose along its own X Y or Z axis. I cant simply add an angle to the pose's values, because they refer to the camera's coordinates.

How can a pose be rotated?


Solution

  • Solved by converting the pose to a mat3d, rotating the mat with hom_mat3d_rotate_local and then converting back to a pose:

     *shift base pose           
              set_origin_pose (CalculationPose, X1 ,0, Y1,  CalculationPose) 
              disp_3d_coord_system(3600, CameraParam, CalculationPose, 0.1)
              
    
     *rotate base pose
              pose_to_hom_mat3d(CalculationPose, CalculationMat)
              hom_mat3d_rotate_local(CalculationMat, -AngleRad  , 'y',CalculationMatRotated)
              hom_mat3d_to_pose(CalculationMatRotated, CalculationPose)