본문 바로가기

반응형

Ros

46일차 - ROS Jenkins 배포 실패 (-5 - No address associated with hostname) Mdoc__turtle_teleop_multi_key__ubuntu_bionic_amd64 ROS 패키지 배포 실패 이전에 릴리즈 했던 turtle_teleop_multi_key 패키지가 rosdistro에는 성공적으로 merge 되었지만, 젠킨스 배포에서 실패해 다음과 같은 내용이 메일로 왔습니다. See Changes: ------------------------------------------ [...truncated 29.59 KB...] bionic: Pulling from library/ubuntu Digest: sha256:a61728f6128fb4a7a20efaa7597607ed6e69973ee9b9123e3b4fd28b7bba100b Status: Image is up to date for ubuntu:bionic docker.io/library/ubuntu:bionic + d.. 더보기
45일차 - Manipulator with MoveIt & Gazebo MoveIt! 실행하기 Open Manipulator 깃허브 레포지토리를 다운받았고, catkin_make를 진행했다면, 다음 코드를 실행하여 기본 예제를 실행해볼 수 있습니다. roslaunch open_manipulator_moveit demo.launch MotionPlanning demo.launch 왼쪽 아래 표시되는 MotionPlanning 플러그인의 Context 탭에서 Planning Library를 선택합니다. 저는 가장 많이 사용된다고 하는 RRTConnect를 사용하였습니다. 다음으로 로봇 팔에 표시되는 화살표와 원(=인터랙티브 마커) 움직여 로봇 팔을 원하는 형태로 만들어봅시다. 화살표는 좌표 이동, 원은 회전을 담당합니다. MotionPlanning 플러그인의 Planning 탭.. 더보기
35일차 - ROS에서 dynamixel_sdk include 하기 서론 오로카에 dynamixel_sdk를 사용할 수 없다는 질문글이 달려 잠시 봤습니다.. CMakeLists.txt 파일에 include_directories(...) 안에 ../../../../../include/dynamixel_sdk와 같은 방식으로 라이브러리 폴더를 포함하고 있었습니다. ... 상대경로의 문제점 헷갈립니다. 배포가 힘듭니다. 상대경로는 헷갈린다? 물론 간단한 경우에는 상대경로를 사용하는 게 좋습니다. 해당 프로젝트의 src/ 폴더 안에 있는 main.cpp 파일을 찾는다던지. 하지만 위와 같이 ../../../../../이 들어간 순간... 지금 어느 위치에 있는 건지 헷갈리기 시작합니다. 해당 문제가 일어난 환경은 sdk의, 특정 언어 폴더의, 예제 폴더, 임의의 프로젝트와 같.. 더보기
33일차 - #! 사용하여 roslaunch에서 nodemon 사용하기 서론 이전에 rosnodejs로 nodemon을 실행하기 위해 rosrun의 소스코드를 살펴봤었습니다. 쉬뱅(She-bang) 혹은 샤뱅이라 불리는 #!/usr/bin/env nodemon 구문을 추가하여 해결했었죠. 이러한 방법으로 rosrun을 통해 자바스크립트 파일을 실행할 때 nodemon을 이용할 수 있었습니다. 그런데... roslaunch에는 안 통합니다... 오늘은 roslaunch를 통해 노드를 실행할 때 nodemon을 통해 실행할 수 있도록 만들어보겠습니다. which roslaunch roslaunch의 정체를 알기 위해 해당 파일이 위치한 경로로 이동하여 어떤 파일 형식과 내용을 가지고 있는지 파악해보도록 하겠습니다. 다음 명령어를 통해 roslaunch의 경로를 획득할 수 있습니.. 더보기
29일차 - RViz 파일 직접 구성하기_1 (xacro, urdf, sdf) 서론 로보티즈에서 제공하는 예제만 이용해서는 다른 로봇 모델을 불러오거나 커스텀 설정을 할 수 없습니다. 이번 시간에는 독립심을 기르기 위해 RViz 파일을 직접 구성해보도록 하겠습니다. RViz 구성 RViz를 실행시켰을 때 초기 화면은 다음과 같습니다. 다음은 로보티즈에서 제공하는 turtlebot3_gmapping.rviz의 화면 구성입니다. RobotModel RobotModel은 주어진 경로에서 .stl, .dae 혹은 .obj 형식의 3D 모델링 파일을 받아 RViz 화면에 표시해줍니다. 이때 모델은 정확한 위치와 자세에 표시되는데 이는 자세 추정 값인 /tf 토픽을 사용한 결과입니다. 표시될 모델은 URDF에 정의되어 있습니다. http://wiki.ros.org/rviz/DisplayTyp.. 더보기
28일차 - real SLAM 서론 오늘은 딜리버리 서비스 로봇을 만들기 전에, 실제 집을 돌아다니면서 지도를 생성하면 얼마나 인식률이 좋은지, 유리나 거울 같은 장애물을 마주쳤을 때 어떤 모습을 보이는지 확인해보도록 하겠습니다. 집 구조 원래 로보티즈의 예제처럼, 메뉴를 주문 받으면 주방에 받으러 갔다가 거실로 돌아오는 걸 상상하고 있습니다. 따라서 거실과 주방만 지도를 생성하도록 하겠습니다. 거실에는 커다란 유리가 있고, 한 쪽 벽에는 유리장이 있습니다. 신발장에도 거울이 있죠. 주방의 경우 유리, 거울은 없지만 대신 식탁 때문에 좀 복잡합니다. 창피하네요.. 아무튼 시작! SLAM 아래부터는 책 335p를 따라합니다. 11.2.4. SLAM 실행 저는 터틀봇 버거를 가지고 있기 때문에 다음과 같이 환경변수를 설정했습니다. exp.. 더보기
2일차 - ROS 용어 정리 til을 하고 있는데 12시 넘어 커밋해서 잔디가 안 심겼다... 아쉬워라... ROS 용어 정리 ros 로봇 소프트웨어 플랫폼. 하드웨어 추상화, 하위 디바이스 제어, 센싱, 인식, 지도 작성, 모션 플래닝 등의 기능 구현, 프로세스 간의 메시지 파싱, 패키지 관리, 라이브러리 및 개발, 디버깅 도구를 제공한다. master 노드 사이 연결과 메시지 통신을 위한 네임 서버 역할을 한다. roscore를 통해 실행하며, 마스터를 실행하면 각 노드의 이름을 등록하고 필요에 따라 정보를 받을 수 있다. 마스터를 제외한 노드 간에는 접속, 메시지 통신이 불가하다. HTTP 기반의 XMLRPC(XML-Remote Procedure Call) 프로토콜을 사용하여 통신한다. 노드는 필요할 때만 마스터에 접속하여 정.. 더보기

반응형