분류 전체보기 18

[ROS] 3. roscore, rosmaster, rosnode

참고한 강의 : https://www.youtube.com/playlist?list=PLieE0qnqO2kSYIxWAN6UvaMe_op2p2_Pw Robot_Operating_System_ROS www.youtube.com ROS는 기본적으로 node들 간의 통신으로 동작한다.Node 간 통신이 이루어질 때, ROS Master를 거쳐간다. 이처럼 ROS Master는 전반적으로 node들을 관리한다.이때 모든 터미널들 합해서 ROS Master는 단 하나만 존재할 수 있다.roscoreS roscore실행 결과는 다음과 같다.started roslaunch server http://localhost:32987/ros_comm version 1.16.0SUMMARY========PARAMETERS * /..

ROS 2024.10.08

[ROS] 2. WS 생성과 GAZEBO

참고한 강의 : https://www.youtube.com/playlist?list=PLieE0qnqO2kSYIxWAN6UvaMe_op2p2_Pw Robot_Operating_System_ROS www.youtube.comcatkinROS에서 사용하는 build 시스템이다.cross-platform이기 때문에 OS 환경에 구애 받지 않고 사용할 수 있다.ROS Application은 여러 package들로 구성되고, 각각의 package는 source file을 담고 있다.catkin은 package를 build해준다.그런 작업을 할 catkin workspace를 생성해준다.$ cd ~/$ mkdir -p catkin_ws/src# -p 를 붙여줌으로써 src 디렉토리까지 한번에 생성$ cd catki..

ROS 2024.09.24

[ROS] 1. 시작하기

참고한 강의 : https://www.youtube.com/playlist?list=PLieE0qnqO2kSYIxWAN6UvaMe_op2p2_Pw Robot_Operating_System_ROS www.youtube.comROS 역시 기초적인 환경 설정이 모두 완료된 상태로 시작한다.사용할 우분투 버전 :  Ubuntu 20.04사용할 ROS 버전 :  ROS NOETIC 다운로드 되어 있는 ROS의 버전을 확인하기 위해서는 다음 명렁어를 사용한다.$ roscore^c(빠져나올 땐 Ctrl+c 키를 사용한다.) 사용할 text editor : VS CodeTerminatorterminator는 개발 효율을 높여줄 수 있는 툴이다.기존의 terminal 창을 여러개 열어서 개발을 하는 방법 대신 termi..

ROS 2024.09.23

[ROS] 0. 기초적인 LINUX 문법

ROS 메타 운영체제를 리눅스 환경 위에서 구동시킬 것이기에 리눅스 능력이 필요하다. 어쩌다 이미 셋업이 완료된 장비로 진행하게 되어서 환경 설정하는 내용은 건너뛰게 되었지만,직접 환경 설정 해보는 것도 중요하니 나중에 작성할 예정. 이 포스팅에는 리눅스 운영체제 상에서 디렉토리들을 자유롭게 넘나들기 위한 기본적인 문법들을 정리할 예정이다.(윈도우의 폴더 == 리눅스의 디렉토리)$ ls$ ls -alls (list)는 현재 디렉토리 밑에 있는 모든 디렉토리와 file들을 보여준다.추가적으로 -al은 붙이면 .으로 시작하는 file들까지 모두 볼 수 있다.$ mkdir 직박구리$ rmdir 직박구리mkdir (make directory)는 말 그대로 디렉토리를 생성하는 명령어이다.명령어 뒤에 생성할 디렉토..

ROS 2024.09.23

[Unity] Public과 Private

Unity에서 변수를 생성할 때, 자료형을 지정하기도 전에 결정해줘야하는 사항이 있다. 해당 변수를 public 변수로 만들지, private 변수로 만들지가 그것이다. 단어의 의미에서 유추할 수 있듯이, public 변수는 접근성이 더 뛰어나고, private 변수는 코드 내에서만 값에 접근할 수 있다. 접근성이 뛰어나다는 것이 무엇을 의미하냐면, 코드에서뿐만 아니라, Unity 내에서 변수의 값에 접근할 수 있다는 의미이다. 예를 들면, 우리가 스크립트에서 'Speed'라는 public 변수를 생성하고 해당 스크립트를 우리의 player 오브젝트로 적용을 시켜주었다고 하자. Player 오브젝트의 Inspector 창을 보면, Speed 변수가 표시되며, 직접 값을 수정할 수도 있다. 또한 당연하게도..

Unity 2024.02.22

[C] 2차원 배열

C언어로 코딩을 하다가, 문자열들의 배열을 만들 일이 있었다. 그런데 생각해보니 C언어에서는 문자열 자체가 문자들의 배열이라서, 문자열들의 배열은 2차원 배열로 구현해야 한다는 점을 깨달았다. C언어에서 2차원 배열을 구현하는 방식이 한 가지는 아닌 것 같다. 우선 가장 직관적인 방법으로 구현을 해보겠다. 우선 정수의 2차원 배열, 1 #include 2 3 int main(){ 4 char ary[3][3] = {{1,2,3}, {4,5}, {6}}; 5 for (int i = 0; i < 3; i++){ 6 for (int j = 0; j < 3; j++){ 7 printf("%d", ary[i][j]); 8 } 9 printf("\n"); 10 } 11 return 0; 12 } 다음은 문자열들의 ..

C언어/문법 2024.02.21

[C] 표준 라이브러리 <stdlib.h>

stdlib.h 헤더파일에 포함된 다양한 함수를 알아보자. 아직 내 단계에서는 난수를 생성할 때 주로 사용하는 헤더이며, 꾸준히 추가해갈 예정 rand rand() 함수는 랜덤한 정수를 생성해서 반환하는 함수이다. 그렇기 때문에 rand 함수는 보통 범위를 한정시켜주기 위해 나머지 연산자와 함께 사용된다. 1 #include 2 #include 3 4 int main(){ 5 int rand_num = rand() % 10; 6 printf("%d\n", rand_num); 7 return 0; 8 } 위 코드에서와 같이 rand() 함수로 난수를 생성하고 10으로 나눈 나머지를 구하면, rand_num 변수에는 0 ~ 9 사이의 난수가 들어가게 되는 것이다. 그런데 코드를 연속해서 실행시켜본다면, 한가..

C언어/문법 2024.02.20

[C] <string.h>의 문자열 처리 함수

코딩을 하다보면 상당히 많이 사용하게 되는 문자열 처리 함수들이 포함된 헤더파일 에 대해 정리를 해보려 한다. strlen string + length → strlen 문자열의 길이를 반환해주는 함수이다. 이때 널문자 '\0' 전까지의 길이가 문자열의 길이다. 1 #include 2 #include 3 4 int main(){ 5 char test[10] = "Hello"; 6 7 printf("%d\n", (int)strlen(test)); 8 return 0; 9 } 위 코드에서와 같이 strlen 함수는 하나의 매개 인자를 받고, 그것은 문자열 배열의 시작 주소값일 것이다. strlen 함수 앞에 int 형태로 형변환을 해주는 이유는, strlen의 반환 값이 size_t, 혹은 long unsig..

C언어 2024.02.19

[Unity] Rigidbody

Rigidbody는 우리가 object에 추가해 줄 수 있는 component이다. Scene view나 hierarchy에서 object에 접근, add component를 눌러 Rigidbody를 추가해 주면 된다. 상당히 자주 사용할 component인 것 같아 짚고 넘어가려 하는데, 물체에게 질량을 줄 수 있고, 중력의 영향을 받도록 설정할 수 있다. Unity 내에서 rigidbody component 중 'constraints' 옵션에 들어가면, rigidbody가 적용된 해당 물체의 position이나 rotation의 특정 축을 고정시킬 수 있다.

Unity 2024.02.09

[Unity] View와 Layout

기본적으로 view들은 서로 상호작용하는 관계에 있어서 하나의 view에서 작업을 하면 다른 view에서도 확인할 수 있는 것은 물론 drag를 통해서 다른 창에 영향을 줄 수도 있다. Scene view 가장 직관적으로 게임 내 물체들을 조정할 수 있는 창 qwerty 키들을 사용해 view, move, rotate 등의 tool들로 전환할 수 있음 Object를 선택하고 f 키를 누르면 해당 오브젝트를 중심으로 화면이 맞춰지고, 해당 상태에서 alt + 화면 조정을 하면 포커스를 한 오브젝트를 중심으로 화면을 조정할 수 있음 Game view 게임 플레이 시의 시야를 확인할 수 있는 창 Hierarchy view Hierarchy가 체계라는 의미로 사용된 듯? 모든 object들에 편하게 접근할 수 ..

Unity 2024.02.09