ROS

omorobot r1mini (1) gazebo 환경에서 실행, 카메라 각도 변경

Tomitom 2023. 3. 6. 16:20
반응형

 

 

OMORobot R1mini 모델을 이용해서 로봇의 자율주행을 설계하는 메인 프로젝트 진행중. 

현재 ROS 를 담당하고 있습니다. 

우리는 종이박스를 접어서 맵을 만들기 보다는... GAZEBO 시뮬레이터에 도전하기로 결정 !

그러나 난관은... 학원에서도 gazebo 는 커녕 ROS에 대한 전반적인 교육이 부족하여 90% 독학에 의존해야 했고, 

gazebo는 모두가 처음 써보는 시뮬레이터였던 것.

 

그러나? 

공식 문서가 있다면 무섭지 않다. 

 

https://classic.gazebosim.org/tutorials

 

Gazebo : Tutorials

Plugins allow you to control models, sensors, world prope...

classic.gazebosim.org

 

gazebo 공식 튜토리얼 문서를 따라서 한 번씩 학습하며 어떤 구조로 이루어져 있는지 확인. 

 

gazebo 환경에서 실행하는 것은 생각보다 간단했는데, 처음 사용하는 것이다보니 상당히 버벅거렸다. ㅠㅠ

우선 개발 환경은 다음과 같습니다. 

 

- R1mini ROS Melodic 

- GAZEBO 

- Ubuntu 18.04.

- teleop 을 연결할 조이스틱 사용

 

ROS melodic을 사용하기 때문에 패키지  빌드와 catkin ws 를 생성하는 것이 우선이었습니다.

다음 두 사이트에서 단계별로 패키지 설치 진행! 역시 공식 문서가 최고예요. 

 

http://wiki.ros.org/melodic/Installation/Ubuntu

 

melodic/Installation/Ubuntu - ROS Wiki

We are building Debian packages for several Ubuntu platforms, listed below. These packages are more efficient than source-based builds and are our preferred installation method for Ubuntu. Note that there are also packages available from Ubuntu upstream. P

wiki.ros.org

http://www.ros.org/wiki/catkin#Installing_catkin

http://wiki.ros.org/catkin/Tutorials/create_a_workspace

 

catkin/Tutorials/create_a_workspace - ROS Wiki

Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. Creating a workspace for catkin Description: T

wiki.ros.org

 

 

그 다음에는 r1mini 사이트의 패키지설치부터 천천히 따라갔습니다. 

 

https://omorobot.com/docs/omo_r1mini-%ed%8c%a8%ed%82%a4%ec%a7%80-%ec%84%a4%ec%b9%98/

 

omo_r1mini 패키지 설치 - OMOROBOT

본 페이지는 ROS melodic 버전 용으로 만들어진 omo_r1mini 패키지를 PC와 Jetson Nano에 설치하는 법을 다룹니다. 본 페이지의 내용은 여러분이 어디에 omo_r1mini 패키지를 설치할 것인지 유의해서 따라해

omorobot.com

 

 

여기까지 모두 설치가 되었다는 것을 가정으로 본격적으로 가제보 시작합니다. 

 

내 pc에서 

1. roscore  (ROS master 실행)

2. rosrun joy joy_node (조이스틱 노드 실행)

3. roslaunch omo_r1mini_teleop omo1mini_teleop_joy.launch (조이스틱 teleop 설정 실행)

4. roslaunch omo_r1mini_gazebo omo_r1mini_turtlebot3_house.launch  (가제보 가상 세계 실행)

 

 

라즈베리파이로 (ssh pi@라즈베리파이아이피주소)  접속합니다. 

5. roslaunch raspicam_node camerav2_1280x960.launch (r1mini의 캠 실행)

 

다시 내 pc에서 

6. rqt_image_viewer  (캠의 실행화면을 구현)

 

이렇게 실행할 경우 카메라의 앵글이 천장을 보고 있어서 시야가 좁을 거에요. r1mini 모델의 카메라의 구도를 변경하겠습니다. 

모델의 경로는 다음과 같습니다. (catkin_ws로 워크 스페이스를 생성했을 때를 가정) 

 

~/catkin_ws/src/omo_r1mini/omo_r1mini_description/urdf$

 

해당 경로로 들어와서 모델을 수정해줍니다. gedit 에디트 창을 열어서 작성할게요. 

gedit r1mini.urdf.xacro

 

모델의 카메라 설정은 다음과 같습니다. 

 

 

<origin xyz="0.0 0 0.07" rpy="0.0 0 3.14159"/> 의 부분을 수정해주면 xyz, rpy 축에 따라 카메라의 각도가 변경됩니다. 

  <joint name="camera_joint" type="fixed">
    <origin xyz="0.04 0.04 0.02" rpy="0 0 0"/>
    <parent link="base_link"/>
    <child link="main_camera_optical"/>
  </joint>
  <link name="main_camera_optical"/>

 

이렇게 설정을 해주면 

 

이것도 조금 높네요

 

 

그렇다면 이렇게!

 

  <joint name="camera_joint" type="fixed">
    <origin xyz="0.03 0 0.6" rpy="0 0 0"/>
    <parent link="base_link"/>
    <child link="main_camera_optical"/>
  </joint>
  <link name="main_camera_optical"/>

 

적당한 높이를 찾았습니다. ^-^

 

 

 

 

조이스틱으로 주행도 완료! 

이 다음에는 가상의 sim을 세워서 인식하도록 해볼게요! 

반응형