r1mini_gui_teleop 으로 로봇 다루기


ROS-QT를 활용하면 GUI 화면을 통해 로봇을 조종할 수 있습니다. 


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


  • 조종 명령 전달: 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/ 문서를 참조하여 다음과 같이 조치하세요.


$ 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 에러 



$ sudo nano /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake



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()