Herowaree

alignment

Jul 27th, 2020 (edited)
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. /* compute alignment control vector */
  2. double align_vector_x = 0, align_vector_y = 0;
  3.  
  4. if (neighbors->heading.size() > 0){
  5. double alignment_real = 0, alignment_imaginary = 0;
  6.  
  7. /* use focal robot heading */
  8. double focal_heading = mrs_lib::AttitudeConverter(odom->pose.pose.orientation).getHeading();
  9. alignment_real += cos(focal_heading);
  10. alignment_imaginary += sin(focal_heading);
  11.  
  12. /* use neighbors heading */
  13. for(int i = 0; i < neighbors->heading.size(); i++){
  14. alignment_real += cos(neighbors->heading[i]);
  15. alignment_imaginary += sin(neighbors->heading[i]);
  16. }
  17.  
  18. /* normalize */
  19. double len = sqrt(pow(alignment_real, 2) + pow(alignment_imaginary, 2));
  20. align_vector_x = (len == 0) ? 0 : alignment_real / len;
  21. align_vector_y = (len == 0) ? 0 : alignment_imaginary / len;
  22. }
Add Comment
Please, Sign In to add comment