자율주행/ROS python (xytron 강의)

8자 주행 ,ultrasonic 내 코드 정리

Tony Lim 2021. 1. 14. 17:47
728x90

8자 주행 -> converter -> odom 이 하나의 프로세스 결과이다.

우선 converter에게 바퀴의 각도(angle) 과 바퀴의 굴러가는 속도 100을 topic으로 쏴줍니다.

그리고 일정한 시간이되면 바퀴의 각도를 반대방향 angle로 틀어줍니다.

그 다음 converter에서 받아온 topic의 speed를 input_speed 에 넣어주고 바퀴의 회전속도에 곱해줘서 hello_xycar.position 의 3,4번째에 넣어줍니다.

바퀴의 방향또한 hello_xycar.postion 의 1,2,번째 에 넣어줍니다.

imu파일에는 euler angle 형식으로 정보가 들어있기에 quaternion_from_euler 함수를 통해 quaternion으로 바꾸어 줍니다.

wheel_speed는 각도이기 떄문에 각도의 차이를 통해 바퀴의 속도를 측정하게 됩니다. 이 경우에는 속도가 너무 빠르면 그것을 제대로 반영 하지 못하는 버그가 있습니다. 한바퀴 이상 차이가 나면 그것을 다른 형식으로 표현을 해줄 방법이 필요합니다.

delta_x,delta_y로 x,y로 얼마만큼 이동할것인지를 구해줍니다. 

아두이노 코드를 작성해줍니다.

받아오는 양식입니다.

test.mp4
2.35MB

실행하면 나오는 rviz의 10초짜리 영상입니다.

728x90

'자율주행 > ROS python (xytron 강의)' 카테고리의 다른 글

Rosbag file을 통해 비디오생성  (0) 2021.01.19
Opencv tutorial_1  (0) 2021.01.18
8자주행 odom coverter 과제 답안  (0) 2021.01.12
자이카 ROS 패키지  (0) 2021.01.07
ROS 과제 답안  (0) 2021.01.04