글을 쓰기에 앞서서 참고하고자 하는 사이트를 작성해보고자 한다. 6축 로봇 팔 개발하기 제 1탄 - 탐색전 : 네이버 블로그 (naver.com) BCN3D/BCN3D-Moveo: Open Source 3D Printed Robotic Arm for educational purposes (github.com) Releases · RussTedrake/manipulation (github.com) https://www.youtube.com/@MrYong910/videos 모형빌더 유튜브(참고용) https://youtu.be/CoZp0L0-gAQ 로봇 손가락 만들기 https://youtu.be/8cDNoM9U4bc 솔리드 웍스로 산업용 로봇팔 모델링 설계 https://youtu.be/q3115iRJvF..
로봇팔을 직접 만들어보기 전에 먼저 로봇팔이 어떻게 이루어졌는지, 다른 사람들이 먼저 만든 방식은 어떤 방식인지 알아보고자 하였다. 따라서 다음 링크를 통해서 튜토리얼을 공부해보기 시작했다. https://moveit.picknik.ai/humble/doc/tutorials/your_first_project/your_first_project.html#your-first-c-moveit-project Your First C++ MoveIt Project — MoveIt Documentation: Humble documentation 3.2 Examine the code The first thing we do is create the MoveGroupInterface. This object will be u..
이 글에서는 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..