r1mini_gui_teleop 으로 로봇 다루기

이 프로젝트를 사용하면 다음과 같은 기능을 활용할 수 있습니다.

  • 조종 명령 전달: GUI 버튼을 눌러 Twist 명령(Linear.X 전/후진 및 Rotation.Z 좌/우 회전)
  • 부가 장치 설정
    • 헤드라이트 켜고 끄기
    • RGB LED색상 변경
  • 센서 데이터 확인
    • 로봇 위치 ODOM
    • IMU 데이터 (롤, 피치 요 값) 및 캘리브레이션
    • 배터리 상태 (전압, SOC, 전류)
  • 이미지 데이터 저장
    • GUI 버튼을 눌러 로봇 카메라로부터 들어온 이미지를 저장

이 패키지는 GUI를 다루므로 모니터가 설치되어 마우스로 조작이 가능한 Host PC에서 설치하여야 합니다.Ubuntu 18.04 OS와 ROS-melodic 에서 테스트되었습니다.

설치하기 #

자세한 설치 과정은 https://github.com/omorobot/r1mini_gui_teleop/blob/main/README_KR.md 의 문서를 참조하시기 바랍니다.

PC의 catkin 워크스페이스로 이동 하여 프로젝트를 가져옵니다.

$ cd ~/catkin_ws/src
$ git clone https://github.com/omorobot/r1mini_gui_teleop

문제해결 #

catkin 워크스페이스에서 catkin_make 또는 catkin build 를 통해 설치하는 경우 아래와 같은 문제가 발생할 수 있습니다.

Parse error at “BOOST_JOIN” #

빌드 도중 아래와 같은 에러가 발생하는 경우

usr/include/boost/type_traits/detail/has_binary_operator.hp:50: Parse error at "BOOST_JOIN"

https://answers.ros.org/question/233786/parse-error-at-boost_join/ 문서를 참조하여 다음과 같이 조치하세요.

/usr/include/boost/type_traits/detail/에 있는 has_binary_operator.hpp파일을 에디터로 연 다음

sudo gedit /usr/include/boost/type_traits/detail/has_binary_operator.hpp

다음과 같은 코드 블럭을 확인합니다.

namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
...
}

위 부분을 ifndef Q_MOC_RUN 로 다음과 같이 감싸줍니다.

#ifndef Q_MOC_RUN
namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
#endif

....

#ifndef Q_MOC_RUN
}
#endif

cv_bridge 에러 #

/opt/ros/melodic/share/cv_bridge/ 에 있는 cv_bridgeConfig.cmake 파일을 연 다음

다음과 같이 /usr/include/opencv 부분을 찾아 /usr/local/include/opencv로 변경합니다.

if(NOT "include;/usr/include;/usr/include/opencv " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/include;/usr/local/include/opencv")
  if(NOT "https://github.com/ros-perception/vision_opencv/issues " STREQUAL " ")
    set(_report "Check the issue tracker 'https://github.com/ros-perception/vis$
  elseif(NOT "http://www.ros.org/wiki/cv_bridge " STREQUAL " ")
    set(_report "Check the website 'http://www.ros.org/wiki/cv_bridge' for info$
  else()

실행하기 #