목록Hardware (9)
꾸준하고 즐겁게
https://gradient-descent.tistory.com/71 이전 글에서 이어지는 내용이다. 5. CMakelist 파일 수정하기 vim CMakeList.txt gedit CMakeList.txt 글 편집하는데 너무 없어보여서 vim 편집기를 사용했다. 하지만 실제로 편집하는데엔 gedit 편집기가 훨씬 편한 것 같다... 먼저 패키지 명이 프로젝트명에 입력되어있는 걸 확인했다. 서비스 실행 함수의 주석을 풀고, 서비스 파일을 알려주었다. 오타났다. add_executable 함수에 srv_server src/srv_client.cpp가 아니라 srv_server.cpp 여야한다. 위처럼 내용을 수정해주었다. 사실 한 번에 될 지는 잘 모르겠다. 해보고 안되면 디버깅하자. 저장하고 창을 닫는..
1. 새로운 패키지 생성 cd ~/catkin_ws/src 먼저 경로를 이동해준다. 새로운 패키지를 만들어줄 것이다. catkin_create_pkg wj_tuto_service message_generation std_msgs roscpp wj_tuto_service는 패키지명이고, 띄어쓰기를 기준으로 나뉘어있는 나머지들은 의존성이다. cd wj_tuto_service 그리고 해당 경로로 이동해준다. 2. package.xml 파일 수정 gedit package.xml vim package.xml 가장 간단한 파일부터 수정해보자. 편집기 다른 거 써도 상관없다. 이미지는 gedit을 사용했지만 이번에는 vim 편집기를 사용해보겠다. 사실 gedit으로 편집하고 스크린샷 찍으면 예쁘게 안나와서. name..
https://gradient-descent.tistory.com/69 이전 글에서 이어지는 내용이다. 5. subscriber 노드 만들기 gedit sub_test.cpp 이번에도 gedit을 이용할 것이다. 발행하는 역할을 할 노드를 만들었으니, 이제 정보를 수신하는 노드도 만들자. 추가할 헤더는 똑같다. 메인 함수 전에, msgCallback이라는 함수를 하나 만들어주었다. 반환값은 없고 입력받는 변수는 상수형태이다. wooju_tutorial::wj_msg_tutorial::ConstPtr& msg는 들어오는 메세지 형태를 상수로 끊어서 집어넣겠다는 의미이다. 여기서의 msg는 ROSINFO줄에 있는 msg이다. 핸들 이름은 퍼블리셔 노드 파일에서도 그랬듯 nh로 통일했다. 물론 바꿔도 상관은 ..
나는 내 문제도 간신히 해결한다. 누군가에게 도움을 줄 만큼 잘 알지 못한다. 내 글은 내가 공부한 내용을 기록할 뿐이니, 그저 참고하는 정도면 좋겠다. 꾹 참고 하라고 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 죄송... 아무튼 가능한 자세히 설명하지만 많이 미흡할테니, 역시 가장 제대로된 정보는 공식 레퍼런스에서 얻는 것이 좋다. http://wiki.ros.org/msg msg - ROS Wiki ROS uses a simplified messages description language for describing the data values (aka messages) that ROS nodes publish. This description makes it easy for ROS tools to automatic..
ROS의 기본 개념 ROS는 Robot Operating System으로, 로봇 응용 프로그램의 개발을 위한 운영체제와 같은 로봇 소프트웨어 플랫폼이다. Meta-Operating System에 속하며, 소프트웨어와 하드웨어의 중간 역할, 미들웨어라고도 한다. 메타라는 말은, 주로 뭔가가 하나로 통합되어있는 경우를 얘기할 때 많이 사용된다. 디바이스 드라이버, 라이브러리, 디버그 도구, 메세지 통신 구동 도구, 컴파일 도구, 인스톨러, 패키지 생성 및 릴리즈를 하나로 할 수 있게 해주는 역할을 한다. 로봇 소프트웨어 프레임워크를 기반으로 다양한 목적의 응용 프로그램을 개발, 관리, 제공하고 있으며, 유저들이 개발한 패키지 또한 유통해준다. 하드웨어인 로봇과 센서, 그리고 응용 소프트웨어가 서로의 말을 알..
라즈베리파이 OS를 설치하고, 환경설정하는데 문제가 있었다. 증상은, 멀쩡한 듯 하다가 불시에 작동을 멈추고 재부팅이 되는 상황이 반복된다는 점이였다. 이런 상황에 직면한다면, 전원 장치를 한 번 확인해보길 권한다. 아래 전원 장치는 예전에 스마트폰 충전기로 썼던 것이다. 전압은 5.0볼트, 전류는 0.7암페어이다. 이 경우 전류가 약해서 그런 것이였다. 2.0암페어 이상의 전원 장치를 연결할 것을 추천한다. 원래는 이보다도 더 높은 걸 쓰라고 권장하는 듯 하지만, 작성자의 경우 2.0암페어의 충전기로 바꾸고 정상적으로 작동하게 되었다.
과정 중에 블로그에 올릴 스크린샷 찍는 걸 늘 잊어버려서 직접 동영상으로 찍고 그걸 캡쳐해서 올렸다. 다른 분이 열심히 찍은 영상을 주워온 게 아니라는 점을 미리 알린다. 준비물과 준비 단계 컴퓨터는 있으니 라즈베리파이, SD카드 리더기, SD카드가 필요했다. SD카드 리더기에 작은 단자 큰 단자 다 있어서, SD카드 어댑터는 없어도 상관이 없었다. 그 밖에, 모니터로 확인을 하기 위해 HDMI 케이블을 샀다. 모니터, 마우스, 키보드도 따로 있으면 좋지만 없어도 뭐 크게 상관은 없는 것 같다. 본인은 이거 하다 답답하다고 모니터를 사서 듀얼모니터 환경이 되었다. 쾌적하기는 한데... 그러고는 원격으로 하고 있다... 이 글에서 사용된 라즈베리파이 모델이다. 준비가 다 됐으니 SD카드를 리더기에 꽂고 컴..
Arduino는 Arduino 칩셋과 IDE가 합쳐진 것이라고 했다. IDE란 개발을 할 수 있는 기본적인 틀이 주어진다는 것이다. 이 글에서는 Arduino의 기본적인 함수 사용법에 대해 알아볼 것이다. 먼저 위 코드를 설명하는 편이 좋겠다. 저대로 함수를 실행하게 되면, 13번 핀과 연결되어있는 LED에 불이 들어오게 된다. 불이 1초동안 켜져있다가, 1초 동안 꺼져있고, 다시 1초 동안 켜졌다가, 다시 1초 동안 꺼져있기를 반복할 것이다. setup 함수는 설정에 대한 함수이다. 설정이기 때문에 한 번만 실행된다. loop는 메인 함수라고 보면 된다. loop 함수는 계속 실행되는 것이다. 함수의 이름 중간에 대문자가 들어가는 이유는, 두 개의 단어가 합쳐질 때 그렇게 쓰기로 한 것이다. 함수 작명..
컴퓨터는 CPU, Memory, I/O 로 구성되어있다. 라즈베리파이는 CPU, Memory, I/O 가 각각 서로 다른 칩으로 존재해서 한 보드 안에 있다. 우리가 쓰는 전통적인 컴퓨터는 아니다. 엄밀히 말해 MCU라기도 애매하다. Single Board Computer, 줄여서 SBC라고 한다. 귀엽게 생겼다. 아두이노는 CPU와 Memory와 I/O 를 하나로 합친 MCU(Micro Controller Unit)라는 칩셋을 말한다. 흔히 아두이노라고 불리는 이 보드는 사실 아주 정확하게 말하면, 아두이노 보드와 IDE가 합쳐진 것이다. IDE는 integrate development environment의 줄임말이다. Visual studio와 같은 것들이고, 개발 환경을 위해 이것저것 모아둔 것을..