OMORobot R1mini 모델을 이용해서 로봇의 자율주행을 설계하는 메인 프로젝트 진행중.
현재 ROS 를 담당하고 있습니다.
우리는 종이박스를 접어서 맵을 만들기 보다는... GAZEBO 시뮬레이터에 도전하기로 결정 !
그러나 난관은... 학원에서도 gazebo 는 커녕 ROS에 대한 전반적인 교육이 부족하여 90% 독학에 의존해야 했고,
gazebo는 모두가 처음 써보는 시뮬레이터였던 것.
그러나?
공식 문서가 있다면 무섭지 않다.
https://classic.gazebosim.org/tutorials
gazebo 공식 튜토리얼 문서를 따라서 한 번씩 학습하며 어떤 구조로 이루어져 있는지 확인.
gazebo 환경에서 실행하는 것은 생각보다 간단했는데, 처음 사용하는 것이다보니 상당히 버벅거렸다. ㅠㅠ
우선 개발 환경은 다음과 같습니다.
- R1mini ROS Melodic
- GAZEBO
- Ubuntu 18.04.
- teleop 을 연결할 조이스틱 사용
ROS melodic을 사용하기 때문에 패키지 빌드와 catkin ws 를 생성하는 것이 우선이었습니다.
다음 두 사이트에서 단계별로 패키지 설치 진행! 역시 공식 문서가 최고예요.
http://wiki.ros.org/melodic/Installation/Ubuntu
http://www.ros.org/wiki/catkin#Installing_catkin
http://wiki.ros.org/catkin/Tutorials/create_a_workspace
그 다음에는 r1mini 사이트의 패키지설치부터 천천히 따라갔습니다.
https://omorobot.com/docs/omo_r1mini-%ed%8c%a8%ed%82%a4%ec%a7%80-%ec%84%a4%ec%b9%98/
여기까지 모두 설치가 되었다는 것을 가정으로 본격적으로 가제보 시작합니다.
내 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을 세워서 인식하도록 해볼게요!
'ROS' 카테고리의 다른 글
ros 마스터를 향한 길은 멀고도 험하다 (1) 백업용 (0) | 2023.03.29 |
---|---|
ROS melodic rosbridge 웹소켓으로 연결 참고 사이트 (0) | 2023.03.08 |
omorobot r1mini + 라즈베리파이 camera 연결법 (0) | 2023.03.06 |
ROS setting Ubuntu 18.04.6 USB 설치하는 법 (0) | 2023.03.06 |