23년도의 프로젝트로 로봇팔 만들기 프로젝트를 진행하고자 한다. 원래 휴머노이드를 만들어보려는 야심찬 계획을 가지고 1달 가량을 논문 탐색을 한 결과, 현재 고3인 지금 입시 전까지 무리하지 않는 선에서 끝내는 것이 불가능하다는 결론을 얻어, 급하게 로봇팔로 프로젝트를 바꾸게 되었다. 논문도 다시 찾아가면서 여기에 리뷰를 올릴 예정이며, 오늘은 오로카 카페에 로봇팔에 대해서 질문을 올렸고 감사한 답변들 중 한분이 Moveit2와 nav2 세팅을 할 수 있게 포스팅 한 글을 올려주셔서 그 세팅을 오늘 하고자 한다. 링크는 접어두도록 하겠다. 더보기 오로카 질문 : https://cafe.naver.com/openrt/28328 로봇팔 개발 전 도움을 요청하고 싶어서 글 올립니다. 안녕하세요! 이번에 ROS..
이 글에서는 Ch11. 디버그와 관찰을 위한 여러 도구들 에 대해서 써보고자 한다. 1. 목적 실제로 시스템을 공부하거나 개발할 때 조금만 복잡해도 의도한 동작이 구현되지 않는 경우가 있다. 그러한 때에 유용한 도구가 로그이다. 시간 정보와 잘 기록된 로그 정보를 보면 효율적으로 로봇을 점검할 수 있다. 이 글에서는 이럴 때 사용할 수 있는 도구인 로그에 대해서 어떻게 사용을 하는지 알아보고, rosbag과 GUI 환경에서 지금까지 다룬 ROS 명령을 사용할 수 있게 해주는 rqt 등도 다뤄볼 것이다. 2. 로그 (1) 간단히 rqt_console을 이용해 로그 확인하기 혹시라도 오류가 나지 않기 위해서 rqt 패키지를 설치한다. 다음 명령어를 통해서 간단하게 설치 가능하다. sudo apt instal..
이번에는 Ch10. Parameter 다루기에 대해서 작성하고자 한다. 1. 목적 ROS에서는 설정값을 관리하는 다양한 방법이 있고, 그중에 프로그램 코드에 변수로 등록해 두는 방법이 있다. 그렇게 하면 어떤 코드에서 사용하는 설정을 외부에서도 사용하기 위해서는 신경을 많이 써야 한다. 따라서 이럴 때 파라미터 서버를 이용가능하다. 따라서 이 파라미터를 다루는 방법에 대해서 알아볼 것이다. 2. 터미널 명령으로 파라미터 사용해보기 (1) 실습환경 다음과 같이 터미널을 준비 한다. 이후 turtlesim, turtle_teleop을 열어준다. (2) ros2 param list 그리고 아래족 터미널에서는 ros2 param list 명령을 통해서 현재 사용 가능한 파라미터를 확인하고자 한다. 다음과 같이 ..
이번에는 Ch9. 액션 익숙해지기 에 대해서 써보고자 한다. 앞의 글에서 액션을 터미널 명령을 이용하여 사용해 보았다. 이제 간단히 python으로 ROS 액션 클라이언트를 다뤄보고 액션 서버를 만들어보고자 한다. 액션의 목표는 다음 그림과 같이 서비스로 중간 상태는 토픽으로 전달하는 형태이다. 1. 액션 정의 만들기 (1) 액션 정의를 만들기 위한 준비 새롭게 액션을 시작하기 위해서는 액션 정의를 만들어야 한다. 따라서 새로운 정의를 만들기 위한 패키지인 my_first_package_msgs에 새 액션을 추가하고자 한다. 이를 위해서 my_first_package_msgs 폴더에 action이라는 폴더를 만들었다. (2) 액션 정의 만들기 이번 액션에서 받아야 할 정보는 다음과 같다. 입력 : 선 속..
이번에는 Ch8. 메시지 정의 만들고 토픽과 서비스에서 다루기에 대해서 작성하고자 한다. 이번에는 메시지를 정의하고 이를 다루는 것에 대해서 작성할 것이다. 1. 메시지 정의 (1) 메시지 정의를 위한 별도의 패키지 만들기 앞의 7장에서 패키지를 만들 때 사용한 명령은 다음과 같다. ros2 pkg create --build-type ament_python --node-name my_first_node my_first_package 이 명령어는 빌드 도구를 ament_python으로 하겠다고 하였는데, 이 경우의 colcon은 새로운 메시지 정의를 만들지 못한다. 그 이유는 CMakeLists.txt가 필요하고, 이 파일은 ament_python이 빌드 도구 일 때 사용 불가능하기 때문이다. 따라서 C+..
이번에는 Ch7. 패키지 만들고 토픽 다루기에 대해서 쓰고자 한다. 이번 장에서는 패키지를 새롭게 만들고, 앞서 배운 명령을 이용해 토픽, 서비스 등을 패키지 내에서 만들어 볼 것이다. 1. 설치 및 준비 앞에서 설치하였지만, 설치하지 않은 사람들을 위해서 작성하는 부분이다. 앞의 글 중에 이 글에서 Humble 설치 중에 Install development tools and ROS tools라는 부분을 설치를 하지 않았다면 그 부분을 설치해야 한다. 2023.01.28 - [개인 공부 📓/ROS] - 무작정 공부하기 - 혼자 공부하는 로봇 SW 따라하기 (1) 무작정 공부하기 - 혼자 공부하는 로봇 SW 따라하기 (1) 1학년 때부터 가지고 있던 숙원인 ROS 공부를 이번에 ubuntu 22.04가 우..
Ch5. Python으로 서비스 클라이언트 다루기에 대해서 알아보고자 한다. 이번 장에서는 앞에서 토픽을 발행하고 구독하는 방법에 대해서 이야기한 것처럼 서버가 만들어져 있는 서비스 클라이언트를 구성하는 Python 코드를 다뤄볼 것이다. 이후 다음에는 패키지를 직접 만드는 단계에서의 서비스 서버를 구성하고 나만의 메시지 타입을 정의해 볼 것이다. 1. 준비 및 Service Client 노드 생성 가장 먼저 준비와 Sercive Client를 위한 노드를 생성한다. 이때 준비는 jupyter notebook을 home\python 에서 열고, ros2 run turtlesim turtlesim_node 명령을 이용해 터틀심을 실행한다. 여기에 Service Client Test라는 ipynb 파일을 만..
Ch4. Python으로 ROS2 토픽 다루기 이번 글에서는 위 책에서 Ch4에서의 Python으로 ROS2 토픽을 다루는 법에 대해서 작성하고자 한다. VScode를 이용해서 컴퓨터의 메모리를 바로 이용하여 할 수도 있지만, 책에서 나오는 방법처럼 jupyter notebook을 이용하여 진행해보고자 한다. 1. 설치 및 준비 터미널에서 다음 명령어를 이용해서 pip를 설치하고, 업데이트를 진행한다. sudo apt install python3-pip pip3 install --upgrade pip 글을 쓰는 시점의 최신 버전으로 업데이트가 되는 것을 볼 수 있고, 그 이후 다음 명령어를 이용하여 pip를 이용하여 jupyter, ipywidegets, pyyaml, bqplot을 설치하고자 한다. p..
Ch3. ROS2 기본 명령 익히기 이 글에서는 Ch3에 나오는 내용인 ROS2 기본 명령 익히기를 알아보려고 한다. 먼저 기본적인 것들을 배우기 위해서 turtlesim이라는 패키지로 이야기를 시작하게 된다. 1. turtlesim 설치 먼저, turtlesim은 ROS를 설치할 때 desktop 버전을 선택했다면 설치되지만 그렇지 않았다면 다음의 명령어로 설치가 가능하다. sudo apt install ros-humble-turtlesim 이후 humble로 전에 명령어를 설정을 하였으니, 이를 통해 ROS2를 활성화를 시켜주고, turtlesim 노드를 실행시키도록 하고자 한다. 2. node 실행 'ros2 run ' 으로 노드를 실행할 수 있다. ros2 run turtlesim turtlesi..
Ch2. 터미널과 bashrc 그리고 리눅스 익숙해지기에 대해서 알아보고자 한다. 여기서 다루는 가장 메인이 되는 이야기는 홈 경로에 있는. bashrc에 대한 파일에 대한 것이다. 1. 우분투 기본 명령(권한이 없는 경우 sudo를 이용해 관리자 권한으로 실행) - 폴더 만들기 : mkdir - 폴더 이동 : cd (이때 경로 지정을 안하고 .. 을 친다면 현 폴더의 전 폴더로 가게 됨.) - 파일 삭제 : rm - 폴더 삭제 : rm -r 2. bashrc (1) Shell 쉘 : Shell은 운영체제의 일부로 PC가 실행된 이후 메모리에 상주하는 핵심 프로그램인 커널과 사용자 사이를 연결해 주는 프로그램. Ubuntu에서 기본으로 사용하는 것은 bash임. 만약 이를 확인하고자 하면 다음 명령어를 ..