AR 마커로 TurtleSim 제어하기

2019. 10. 29. 23:05드론

전 포스팅에 이어서 작성해보려고 한다 https://noel-embedded.tistory.com/1175

 

카메라에 비친 AR마커 위치에 따라서 Turtlesim이 움직이도록 하는 코드를 작성해보려고 한다

따라서, 카메라 - AR마커 alvar - 새 작성 노드 - turtlesim으로 노드 구성을 하려고 한다

 

터틀심 속도를 publish를 하고,

 

속도 제어를 하면서, 동시에 pose를 실시간으로 체크한다

 

회전과 병진속도는 각각 z, x 축에 의해서만 움직인다. 즉 전방은 x축, yaw는 z축을 의미한다

 

pose 값은 다음과 같이 발행이 된다. 왼쪽 아래는 (0, 0), 오른쪽 위는 (11, 11)이다

 

다음은 AR 마커 토픽에 대한 내용이다. 이 토픽을 Subscribe를 할 것이다

$ catkin_create_pkg ar_marker_tts roscpp std_msgs geometry_msgs message_generation ar_track_alvar_msgs sensor_msgs

 

아래 내용을 CMakeList에 추가해준다

add_executable(control src/control.cpp)

add_dependencies(control ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

target_link_libraries(control
   ${catkin_LIBRARIES}
)

 

코드는 다음과 같다. 비례상수가 맞지 않는다면 조절해서 대입할 수 있다

 

아래 명령어를 순차적으로 실행한다

$ roscore
$ rosrun turtlesim turtlesim_node
$ roslaunch ar_marker track_marker.launch 
$ rosrun uvc_camera uvc_camera_node
$ rosrun ar_marker_tts control
$ rqt_image_view