Programming/ROS 15

Vector 알아보기

벡터의 정의 - 벡터(Vector)는 크기(magnitude)와 방향(direction)으로 정의되는 값으로, 크기와 방향이 같으면 어디에 존재하든 같은 벡터이다. - 크기와 방향을 모두 가진 수량을 벡터값 수량(Vector-Valued Quantity이라고 한다. - 벡터값 수량의 예로는 크기와 방향을 가진 힘, 변위 그리고 속도 등이 있다. 벡터를 그릴 때 위치는 중요하지 않다. 왜냐하면 위치를 바꾸어도 벡터의 크기와 방향은 변하지 않기 때문이다. 또한 벡터를 다른 곳으로 이동해도 벡터의 의미는 변하지 않는다. 두 벡터의 길이와 방향이 같을 때 그 두 벡터를 서로 상등(Equal)하다 라고 할 수 있다. 좌표계 상에서의 벡터 좌표계 상에서 벡터는 공간에 맞게 X, Y Z 좌표로 수치적인 표현이 가능해..

Programming/ROS 2022.02.09

ROS 카메라 원격 설정

카메라가 연결된 PC - 카메라가 연결된 PC를 ROS master로 지정한다. - ROS_MASTER_URI 와 ROS_HOSTNAME 을 같은 네트워크 변수로 수정한다. - master PC는 ROS_MASTER_URI 와 ROS_HOSTNAME 에 사용된 IP가 동일하다. $ gedit ~/.bashrc export ROS_MASTER_URI = http://[master_pc_ip]:11311 export ROS_HOSTNAME = [current_pc_ip] - roscore를 실행하고, 터미널 창에서 uvc_camera_node를 실행한다. $ roscore $ rosrun uvc_camera uvc_camera_node 이미지를 받을 PC - 이미지를 받을 PC에도 동일한 설정을 한다. $ ..

Programming/ROS 2022.02.07

ROS 폴더 및 파일 구성

파일 구성 - /build : 빌드 관련 파일 - /devel : msg, srv 헤더 파일과 사용자 패키지 라이브러리 실행 파일 - /src : 사용자 패키지 사용자 패키지 - ~/catkin_ws/src : 사용자 소스 코드의 공간이다. 이 폴더에서 사용자가 개발한 ROS 패키지나 다른 개발자가 개발한 패키지를 저장하고 필드할 수 있다. - 사용자 패키지의 구성은 아래와 같다. /include : 헤더 파일 /launch : roslaunch에 사용되는 launch 파일 /node : rospy용 스크립트 /msg : 메세지 파일 /src : 코드 소스 파일 /srv : 서비스 파일 CMakeLists.txt : 빌드 설정 파일 package.xml : 패키지 설정 파일

Programming/ROS 2022.02.07

ROS 명령어 간단 정리

- roscd : 위치한 ros 패키지의 폴더로 이동 - rosls : 해당 ros 패키지 내부 폴더의 파일 목록을 확인하는 명령어 - rosed : ros 패키지 내부 파일의 편집이 가능한 명령어(기본적으로 vim을 사용) - roscp : ros 패키지 내부 파일의 복사가 가능한 명령어 - rospd : 디렉토리 인덱스에 파일을 추가 - rosd : 디렉토리 인덱스 확인 - roscore : master를 실행하는 명령어 - rosrun : 패키지의 노드를 실행하는 명령어 - roslaunch : 여러 개의 노드 및 master가 없을 경우, master도 함께 실행하는 명령어 - rosclean : ROS 로그 파일을 검사하거나, 파일 시스템 리소스를 제거 및 정리하는 명령어 - rostopic :..

Programming/ROS 2022.01.26

ROS 통신 1

ROS 내에서는 노드 사이의 데이터 통신을 메세지를 이용하며, 통신 방식으로는 Topic, Service, Action등이 있다. 메세지는 필드타입과 필드네임으로 구성된다. 1. Topic - 단방향 통신으로 연속적으로 데이터를 송수신하는 경우에 사용한다.(ex. 센서 데이터) - 한 번 접속 시, 지속적으로 데이터를 송수신할 수 있으며, Publisher는 데이터의 송신 시점을 지정할 수 있다. - 하나의 Topic에 대해, 여러 개의 Publisher와 Subscriber가 존재할 수 있으나, 권장하지는 않는다. - *.msg 라는 확장자를 사용한다. # geometry_msgs/Twist.msg Vector3 linear Vector3 angular 2. Service - 양방향 통신으로 노드 간의..

Programming/ROS 2022.01.26