팀 프로젝트 (16) 썸네일형 리스트형 (비공개) C-2345 자세 제어 4족보행 로봇 #16(프로젝트 마무리) 보호되어 있는 글입니다. C-2345 자세 제어 4족보행 로봇 #15 (URDF Gazebo, 프로젝트 중단) URDF를 Rviz로 하는 건 되게 쉬웠는데 물리엔진이 적용된 Gazebo에 올릴려고 하니 안되는게 많았다. 때문에 '문제발생 -> 검색 -> 시도 -> 해결'의 과정을 너무 많이 반복했고 또 되게 복잡하게 했다. 그래서 #14도 그렇고 정리하는게 너무 힘들었다. 그래도 막 찾고 시도하는 과정에서 많이 해결했다. (아직은 바로 시뮬레이션에 사용하기에는 너무 부족하다...) 일단은 현재 시점(21.10.14)기준까지 만든 것과 그간 발생했던 문제, 해결방식 기억나는대로 정리해본다. 1. Rviz에서 썼던 URDF 모델을 Gazebo용 launch로 실행시키니 모델은 뜨는 데 힘 없이 무너졌다. sol> Gazebo에서 URDF를 쓰기 위해서는 link, joint외에 transmission 태그를 URDF.. C-2345 자세 제어 4족보행 로봇 #14 (Joint publish node 제작, URDF Gazebo에 올리기-정리X) +) 원래 글을 쓸 때 이론 공부> 실습> 복습+글쓰기로 블로그에 글을 올렸는데 이번은 실습과정에서 너무 헤매고 여러 시도를 해서 도저히 깔끔하게 복습을 하는 게 불가능했다. 그래서 우선 정리 없이 막 떠오르는 정보들을 적어두고 나중에 익숙해지면 처음부터 깔끔하게 정리하려고 한다. 이 글은 '막 쓴 블로그 형식의 글 > 과정에서 생겼었던 문제 해결 과정' 순으로 작성한다. 이후 패키지 쓰는게 달라질 수도 있지만 일단은 내가 현재까지 배운 범위에서는 가상의 로봇을 제어할 때 Joint_state_publisher와 robot_state_publisher를 사용해야 한다. robot_state_publisher야 상관없지만 joint 제어를 위한 joint_state_publisher는 한계가 있는 데 바로.. C-2345 자세 제어 4족보행 로봇 #13 (ROS URDF, Xacro Turorial) ROS 기초 강의가 끝나고 가장 먼저 생각한 건 로봇 모델링을 Gazebo에서 구현해 실제로 제작하기 전 테스트하는 방법을 익혀야겠다는 것이었다. 그래서 일단 ROSwiki로 urdf에 대한 공부를 시작했다. http://wiki.ros.org/urdf/Tutorials urdf/Tutorials - ROS Wiki Prerequisite Learning URDF Step by Step Building a Visual Robot Model with URDF from ScratchLearn how to build a visual model of a robot that you can view in Rviz Building a Movable Robot Model with URDFLearn how to defi.. C-2345 자세 제어 4족보행 로봇 #12 (ROS 13강-Manipulation, ROS기초 강의 完) +) 12강 서비스 로봇은 간단한 설명 위주라 따로 복습은 하지 않았다. ●13강 https://www.youtube.com/watch?v=5c7s4jgB00k 표윤석 박사님의 ROS강의 마지막 챕터였다. ●Keyword -Manipulation, MoveIt!, KDL, OMPL, [Base, Link, Joint, End effect], xyz+rpy, 작업공간, 관절 공간, forward Kinematics, Inverse Kinematics, URDF,. xacro, OpenManipulator, MoveIt setup assistant ●Study 앞 강의와는 달리 기계공학의 한 부분을 간략하게 설명하는 것으로 강의를 시작하셨다. 매니퓰레이터의 종류와 특징을 설명하시고 지난 학기(2-1)에 들었.. C-2345 자세 제어 4족보행 로봇 #11 (ROS 10, 11강-모바일 로봇, SLAM, Navigation) ●10강 https://www.youtube.com/watch?v=rV-POzbzoHc 10강은 11강 preview 느낌이 강해서 연달아 공부했다. ●11강 https://www.youtube.com/watch?v=067HSmDvXdE 표윤석 박사님의 ros강의 중에서 가장 신기하고 재밌던 강의였다. ●Keyword -SLAM, Navigation, [위치, 센싱, 지도, 경로], GPS, IPS, dead reckoning, 엔코더, Gmapping, Cartographer, Odometry, tf, OGM, Kalman filter, Particle filter, DWA ●Study 이번 강의는 SLAM과 Navigation을 주제로 이론 공부와 실습을 했다. 이번 복습도 이론부분과 실습 부분으로 .. C-2345 자세 제어 4족보행 로봇 #10 (ROS 이기종 디바이스 간의 통신 실습) 지금까지 강의에서 노트북 두 대로 통신하는 실습이 나오면 못하고 넘어갔었다. 리눅스를 또 설치할 컴퓨터가 없었기 때문이다. 근데 찾아보니 있었다.... 고1 때 사서 유럽여행 갈 때랑 친구 빌려줄 때 쓰고 몇 년 동안 서랍에 박혀있던 게 있었다. 여기에 바로 리눅스랑 ROS를 깔아서 이기종간 통신을 실습하기로 했다. 우선 얘는 저가용 넷북에 들어가는 인텔 atom에 램도 2gb밖에 안돼서 우분투보다 더 가벼운 주분투(Xubuntu)를 설치해줬다. 주분투 공식 다운로드 https://xubuntu.org/download Download Xubuntu « Xubuntu Latest LTS release: 20.04, Focal Fossa The 20.04 release, codenamed Focal Foss.. C-2345 자세 제어 4족보행 로봇 #9 (ROS 9강-임베디드 시스템, rosserial 실습) ●9강 https://www.youtube.com/watch?v=VKNVj9IDMeo 이 챕터도 실습할 openCR이 없어서 강의를 온전하게 따라가지 못했다.. 그래서 rosserial ROSwiki의 Tutorial 몇 개를 해보는 것으로 대체했다. ●Keyword -임베디드 시스템, MCU, rosserial, openCR -rosserial, rostopic ●Study 우선 임베디드 시스템이 무엇인지 찾아보았다. 임베디드 시스템(영어: embedded system, 내장형 시스템)은 기계나 기타 제어가 필요한 시스템에 대해, 제어를 위한 특정 기능을 수행하는 컴퓨터 시스템으로 장치 내에 존재하는 전자 시스템이다. 즉, 임베디드 시스템은 전체 장치의 일부분으로 구성되며 제어가 필요한 시스템을 위한 .. C-2345 자세 제어 4족보행 로봇 #8 (ROS 8강-카메라 캘리브레이션 실습) ●8강 https://www.youtube.com/watch?v=IIlvF9c8Wzw 이번 강의는 여러 카메라, LDS, IMU, 모터등을 ROS로 사용해보는 실습이었는데 실습 준비물이 컴퓨터 웹캠 하나 밖에 없어서 실습 #3 (카메라 캘리브레이션) 밖에 못했다.... ●Keyword -Camera calibration, LDS ●Study 강의는 여러 센서와(카메라와 플레이스테이션 컨트롤러도 포함) 모터를 ROS에서 바로 사용할 수 있도록 패키지와 정보가 ROSwiki에 올라와 있고 몇개를 보는 것으로 시작해서 실습을 하다 끝났다. 카메라 캘리브레이션 강의에선 자세히 다루지 않았기에 몇개 글을 찾아보았다. https://kr.mathworks.com/help/vision/ug/camera-calibra.. C-2345 자세 제어 4족보행 로봇 #7 (ROS 7강-3 roslaunch) ●7강 https://www.youtube.com/watch?v=iGdQHi_wL1Y&list=PLRG6WP3c31_VIFtFAxSke2NG_DumVZPgw&index=7 ●Keyword -roslaunch ●Study 7강 마지막엔 여러개의 노드를 한번에 실행 시킬 수 있는 명령어인 roslaunch를 배웠다. roslaunch는 확장자 .launch 파일을 바탕으로 실행되는데 이 파일 또한 packge.xml파일과 같은 XML기반으로 작성된다. *위에 그대로 작성하면 되고 type에는 소스코드상에서 정한 그 노드의 진짜 이름을 넣고 name에는 launch로 실행시킬 때의 노드 이름을 임의로 넣으면 된다. 예를 들어 이렇게 넣으면 노드A가 노드ㄱ, 노드ㄴ으로 2개 실행된다. 한편 rosrun으로 노드.. 이전 1 2 다음 목록 더보기