lookupTransform base_link to laser_frame timed out. Could not transform laser scan into base_frame.
base_link를 laser_frame으로 바꾸는 부분이 문제라는데 해당 부분을 찾아서 고쳐야겠다. 위 두 launch file을 실행했을 때 rqt_graph를 찍어보면 다음과 같은 node-topic 구조를 볼 수 있다.
아마 `~/ydlidar_ws/src/hector_slam/hector_mapping/launch/mapping_default.launch`
에서 해준 변경사항의 이슈일 것으로 판단된다.
날아가는 frame의 이름이 잘못되었을 것이라 판단되어 view_frame 기능을 이용해 확인한다. Ubuntu20.04 환경에서는 view_frame 자체에 오류가 있다.
`opt/ros/noetic/lib/tf/view_frames`파일의 89번 줄을 아래와 같이 처리해준다.
m = r.search(vstr) #를
m = r.search(vstr.decode('utf-8')) #로 변경
수정 이후 home 에서 터미널 2개 키고 각각 실행해준다.
roslaunch ydlidar_ros_driver lidar_view.launch #1
rosrun tf view_frames #2
이를 통해 생성되는 frames.pdf로 frame 이름을 확인할 수 있다.
# 2022.10.04
그동안 개인적으로 너무 바빠서 작업을 못하다가 다시 문제 해결을 시작하였다. 결론적으로 해결되었다.
위 이미지 표시한 부분을 다시 보니 /tf 를 발행하는 노트가 2개인 것을 볼 수 있다. /base_to_laser_broadcaster는 hector mapping에서 라이다가 보내는 laser_frame을 base_link로 transform하는 노드인데 /base_link_to_laser4 노드가 같은 것을 하겠다고 나서 충돌한 것으로 보인다. 위치를 찾아보니 yd_lidar 패키지의 lidar.launch 마지막 줄에 있었다. 이를 주석처리 해버린다.
이제 transform 내용이 맞는지 한 번만 더 확인하고 테스트 한다.
위 에러에서 계속 말하던 것처럼 base_link to laser_frame 임을 확인했다.
이제 이전과 같이 터미널 3개 열어서 각각 실행해주면...
roscore #1
roslaunch ydlidar_ros_driver lidar.launch #2
roslaunch hector_slam_launch tutorial.launch #3
손으로 막 밀어서 난잡하지만 mapping이 된다.
끝.
'ROBOTICS > RPi SLAM' 카테고리의 다른 글
Mapping with hector_slam (0) | 2022.09.02 |
---|---|
RaspberryPi4 + G4 LiDAR Setting (2) | 2022.08.30 |
댓글