728x90

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 53

๐Ÿค– ROS package ์˜์กด์„ฑ ์ถ”๊ฐ€

๐Ÿ’ป ํŒจํ‚ค์ง€ ์ƒ์„ฑํ•  ๋•Œ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.catkin_create_pkg {PKG_NAME} [dependency1] [dependency2] ...ํŒจํ‚ค์ง€ ์ƒ์„ฑ ํ›„ ์˜์กด์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ์—๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ ?1. ํ•ด๋‹น ํŒจํ‚ค์ง€ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜์—ฌ pakage.xml ํŒŒ์ผ์„ ํŽธ์ง‘ํ•œ๋‹ค.$ vi package.xml2. catkin ์•„๋ž˜์— ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.์˜์กด์„ฑ์˜์กด์„ฑ3.rospack depend1 {PKG_NAME} ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€์— ์˜์กด์„ฑ์ด ์ถ”๊ฐ€๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

Develop/ROS 2024.10.05

๐Ÿ”ฅ์ž์œจ์ฃผํ–‰์„ ์œ„ํ•œ ROS ์ž…๋ฌธ(3) : Transform, TF

๋ฌธ์ œ์˜์‹์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„ผ์„œ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ๋งž์ถ”๋ƒ? ์—์„œ ์‹œ์ž‘๋œ ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ๋ณ„ ์ƒ๊ฐ์„ ์•ˆํ–ˆ์—ˆ์ง€๋งŒ, ์ขŒํ‘œ๊ณ„๋ฅผ ๋งž์ถ”๋Š” ์ผ์€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์ผ์ด๋‹ค. ์™œ๋‚˜ํ•˜๋ฉด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“œ๋Š” ๊ฒฝ๋กœ๊ณ„ํš์„ ์œ„ํ•œ ์ง€๋„๊ฐ€ ์–ด๋–จ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋Œ€์ฒด๋กœ ๊ทธ ์ง€๋„์™€ ๋‹ค๋ฅธ ์„ผ์„œ์˜ ์„ผ์„œ์™€๋Š” ์„ธ์ƒ(system, ๊ณ„)์ด ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.๋ฌธ์ œ์˜์‹์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์„ผ์„œ์˜ ์ขŒํ‘œ๊ณ„๋ฅผ ์–ด๋–ป๊ฒŒ ๋งž์ถ”๋ƒ? ์—์„œ ์‹œ์ž‘๋œ ๊ฒƒ์ด๋‹ค. ์‚ฌ์‹ค ๋ณ„ ์ƒ๊ฐ์„ ์•ˆํ–ˆ์—ˆ์ง€๋งŒ, ์ขŒํ‘œ๊ณ„๋ฅผ ๋งž์ถ”๋Š” ์ผ์€ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์ผ์ด๋‹ค. ์™œ๋‚˜ํ•˜๋ฉด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๋งŒ๋“œ๋Š” ๊ฒฝ๋กœ๊ณ„ํš์„ ์œ„ํ•œ ์ง€๋„๊ฐ€ ์–ด๋–จ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋Œ€์ฒด๋กœ ๊ทธ ์ง€๋„์™€ ๋‹ค๋ฅธ ์„ผ์„œ์˜ ์„ผ์„œ์™€๋Š” ์„ธ์ƒ(system, ๊ณ„)์ด ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.์˜ˆ๋ฅผ๋“ค์–ด ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์ธ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ทธ๋ฆฌ๋Š” ์ง€๋„๋Š” map ์ด๊ณ , ์œ„์˜ ๋กœ๋ด‡ํ”Œ๋žซํผ์€ ๊ทธ ์œ„์—์„œ..

Develop/ROS 2024.10.05

๐Ÿ”ฅ ์ž์œจ์ฃผํ–‰์„ ์œ„ํ•œ ROS ์ž…๋ฌธ(2) : Publisher ์™€ Subscriber

๋…ธ๋“œ๋“ค๊ฐ„ ๋ฉ”์‹œ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๊ฒƒ์ด ROS ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์–ด๋–ป๊ฒŒ ์ฃผ๊ณ  ๋ฐ›๋Š”์ง€์— ๋Œ€ํ•ด ์ด์ „ ์ฑ•ํ„ฐ์—์„œ ๋ฐœํ–‰์ž( Publisher ) ์™€ ์ˆ˜์‹ ์ž ( Subscriber ) ๋ผ๋Š”๊ฒƒ์„ ์–ธ๊ธ‰ํ•˜์—ฌ ์•Œ๊ณ ์žˆ๋‹ค.1. Publisherpublisher ๋Š” ๋ง ๊ทธ๋Œ€๋กœ ๋ฐœํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ด๋•Œ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•  ์ ์€ Publisher ๊ฐ€ ๋ฐœํ–‰ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋Š” ์ˆ˜์‹ ์ž๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Publisher ํ˜ผ์ž ์žˆ๋‹ค๋ฉด ์•„๋ฌด๋„ ๋“ฃ๊ณ ์žˆ์ง€ ์•Š์ง€๋งŒ ํ˜ผ์ž ๋– ๋“ค๊ณ  ์žˆ๋Š” ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ง€๋Š”๊ฒƒ์ด๋‹ค.2. SubscriberPublisher ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋“ค์–ด์ฃผ๋Š”๊ฒƒ์ด ๋ฐ”๋กœ Subscriber ์ด๋‹ค. Subscriber ๋Š” ๊ฐ™์€ ROS ๋„คํŠธ์›Œํฌ ์ƒ์— ์กด์žฌํ•˜๋Š” ํŠน์ • *ํ† ํ”ฝ ๋ช…์„ ๊ฐ€์ง„ ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐœํ–‰๋˜๋Š”๊ฒƒ์„ ๋ณด๊ณ  ์žˆ๊ณ  Subscriber ๊ฐ€ ์ฃผ์‹œํ•˜๊ณ  ์žˆ๋Š” ๋ฉ”์‹œ์ง€..

Develop/ROS 2024.10.05

๐Ÿ”ฅ ์ž์œจ์ฃผํ–‰์„ ์œ„ํ•œ ROS ์ž…๋ฌธ(1) : ROS ๋ž€ ? (1)

0. ๋“ค์–ด๊ฐ€๊ธฐ์ „[์ž์œจ์ฃผํ–‰ ์ž์ž‘ ์ž๋™์ฐจ / DRIVEN ] ํšŒ๊ณ ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ก [์ž์œจ์ฃผํ–‰ ์ž์ž‘ ์ž๋™์ฐจ / DRIVEN ] ํšŒ๊ณ ๋ฅผ ์œ„ํ•œ ๊ธฐ๋กDRIVEN ์€ ์ฒœ์•ˆ์— ์žˆ๋Š” ํ•œ๊ตญ๊ธฐ์ˆ ๊ต์œก๋Œ€ํ•™๊ต์˜ ์ž์ž‘ ์ž๋™์ฐจ ๋™์•„๋ฆฌ์ด๋‹ค. ๋‚ด๊ฐ€ ์ฐธ์—ฌ ํ–ˆ์„ ๋•Œ 19๊ธฐ ๋™์•„๋ฆฌ๋ผ ํ–ˆ์œผ๋‹ˆ ๊ฝค ์œ ์„œ๊ฐ€ ์žˆ๋Š” ๋™์•„๋ฆฌ์ด๋‹ค. ๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฒœ์•ˆ์— ์žˆ๋Š” ๋Œ€ํ•™๊ต ๋™์•„๋ฆฌ์— ์ฐธ์—ฌํ•˜๊ฒŒproggg.tistory.com ๋‚˜๋Š” ์ž์œจ์ฃผํ–‰ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค์–ด๋ณธ์  ์—†๋Š” ๊ตฐ์ธ ๊ฐœ๋ฐœ์ž์ด๋‹ค. ์œ„์˜ ์ด์œ ๋กœ ์ž์œจ์ฃผํ–‰์„ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘ํ•˜๊ธด ํ–ˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ์•„๋Š”๊ฑฐ๋ผ๊ณ ๋Š” ์ฅ๋ฟ”๋„ ์—†์—ˆ๋‹ค. ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์„œ์นญ์„ ํ•˜๋ฉด์„œ ์•Œ๊ฒŒ ๋œ ๊ฑด A to Z ๋กœ ๊ฐœ๋ฐœํ•ด์•ผํ•œ๋‹ค๋Š”๊ฒƒ์ด๋‹ค. ์ •์„ฑ์ ์ธ ๋งค๋‰ด์–ผ๋”ฐ์œ„๋Š” ์—†๋‹ค. ๊ฐ๊ฐ์˜ ์˜์—ญ์—์„œ๋Š” ๋ ˆํผ๋Ÿฐ์Šค๋“ค์ด ๊ฝค ์žˆ์ง€๋งŒ ์ž์œจ์ฃผํ–‰์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ญ๋ถ€ํ„ฐ ํ•ด๋ผ, ๋ญ˜ ํ•ด๋ผ, ์–ด๋””๊นŒ์ง€ ํ•ด๋ผ ์ด๋Ÿฐ๊ฑด..

Develop/ROS 2024.10.05

๋ฐฑ์ค€ 1152) ๋‹จ์–ด์˜๊ฐœ์ˆ˜ [Python]

์™œ ํ‹€๋ ธ๋Š”์ง€ ์ •๋ง ๋ชจ๋ฅด๊ฒ ๋Š” . .  ๋ฌธ์ œ์˜€๋‹ค. Python ์„ ์ฃผ ์–ธ์–ด๋กœ ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ๋‚˜๋Š” ์—ญ์‹œ ์ œ๋Œ€๋กœ ์•Œ๊ณ  ์žˆ๋Š”๊ฒŒ ์•„๋‹Œ๊ฐ€๋ณด๋‹ค. ์ฒซ๋ฒˆ์งธ ์‹œ๋„.  print(len(input().split(' ')))  ๋‘๋ฒˆ์งธ ์‹œ๋„. string = list(input().split(' '))if '' in string: string.remove('')print(len(string))  ์„ธ๋ฒˆ์งธ ์‹œ๋„. string_list = map(str,input().split(' '))string_list=list(string_list)for string in string_list: if string == '' or string == ' ': # print("this is blank : ",string) ..

Develop/Algorithm 2024.09.04

๋ฐฑ์ค€ 10890) ์•ŒํŒŒ๋ฒณ ์ฐพ๊ธฐ [Python]

string = input()check = [-1]*26 for i in range(len(string)): if check[ord(string[i])-97] == -1: check[ord(string[i])-97] = i for i in range(26): print(check[i], end=' ') ์•„์Šคํ‚ค์ฝ”๋“œ๋ฅผ ํ™œ์šฉํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๋ฌธ์ž๋ฅผ ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๋‚ด์žฅ ๋ฉ”์†Œ๋“œ์ด๋‹ค.https://docs.python.org/3/library/functions.html#ord

Develop/Algorithm 2024.08.24

C#) Grbage Collector

C#์—์„œ์˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ ๋™์ž‘ ์›๋ฆฌ์™€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ C# ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ: ํž™(Heap)๊ณผ ์Šคํƒ(Stack)C#์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์˜์—ญ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค: ์Šคํƒ(Stack)๊ณผ ํž™(Heap)์ž…๋‹ˆ๋‹ค. ์ด ๋‘ ์˜์—ญ์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ๋Š” ์ฃผ๋กœ ํž™(Heap) ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.1. ์Šคํƒ ์˜์—ญ(Stack)์Šคํƒ์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ง€์—ญ ๋ณ€์ˆ˜์™€ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ์Šคํƒ์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์— ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๊ฐ’ ํƒ€์ž…(Value Type)์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด int, float, bool, struct์™€ ๊ฐ™์€ ๊ฐ’ ํƒ€์ž…์€ ๋ชจ๋‘ ์Šคํƒ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.LIFO(Last In, First Out) ๊ตฌ์กฐ๋กœ, ๋งˆ์ง€๋ง‰์— ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์˜ต๋‹ˆ๋‹ค...

Develop 2024.04.22

Seq2Seq

Seq2Seq ํƒœ๊ทธ: Attention Sequence-to-Sequence Structure ์ž…๋ ฅ ๋œ ์‹œํ€€์Šค๋กœ๋ถ€ํ„ฐ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ์‹œํ€€์Šค๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ชจ๋ธ. ์ฑ—๋ด‡๊ณผ ๋ฒˆ์—ญ์ด ๋Œ€ํ‘œ์ ์ธ ์˜ˆ์‹œ์ธ๋ฐ, ์ž…๋ ฅ์‹œํ€€์Šค์™€ ์ถœ๋ ฅ ์‹œํ€€์Šค๋ฅผ ๊ฐ๊ฐ ์งˆ๋ฌธ๊ณผ ๋Œ€๋‹ต์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ์ฑ—๋ด‡์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ๋ฒˆ์—ญ๊ธฐ๋กœ๋„ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ค„์—ฌ์„œ Seq2Seq ๋ถ€๋ฅธ๋‹ค. ๋ฒˆ์—ญ๊ธฐ๊ฐ€ Seq2Seq ๋ฅผ ํ†ตํ•ด ๋ฒˆ์—ญ์„ ํ•˜๋Š” ๊ตฌ์กฐ์ธ๋ฐ, ๊ทธ ์ž์„ธํ•œ ๋‚ด๋ถ€ ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค. Seq2Seq ๋Š” ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”๋กœ ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ ์ธ์ฝ”๋”๋Š” ์ž…๋ ฅ ๋ฌธ์žฅ์˜ ๋ชจ๋“  ๋‹จ์–ด๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ž…๋ ฅ๋ฐ›์€ ๋’ค์— ํ•˜๋‚˜์˜ ๋ฒกํ„ฐ , ์˜๋ฏธ๋ฒกํ„ฐ ( Context Vector ) ๋กœ ๋งŒ๋“ ๋‹ค. ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋กœ ์••์ถ•๋˜๋ฉด ๋””์ฝ”๋”๋กœ ๋ณด๋‚ด๋Š”๋ฐ ๋””์ฝ”๋”๋Š” ์ด ์ปจํ…์ŠคํŠธ ๋ฒกํ„ฐ๋ฅผ ๋””์ฝ”๋”์— ํ•™์Šต ๋œ ๋‹ค..

AI/Machine Learning 2024.01.28

[์ž์œจ์ฃผํ–‰ ์ž์ž‘ ์ž๋™์ฐจ / DRIVEN ] ํšŒ๊ณ ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ก

DRIVEN ์€ ์ฒœ์•ˆ์— ์žˆ๋Š” ํ•œ๊ตญ๊ธฐ์ˆ ๊ต์œก๋Œ€ํ•™๊ต์˜ ์ž์ž‘ ์ž๋™์ฐจ ๋™์•„๋ฆฌ์ด๋‹ค. ๋‚ด๊ฐ€ ์ฐธ์—ฌ ํ–ˆ์„ ๋•Œ 19๊ธฐ ๋™์•„๋ฆฌ๋ผ ํ–ˆ์œผ๋‹ˆ ๊ฝค ์œ ์„œ๊ฐ€ ์žˆ๋Š” ๋™์•„๋ฆฌ์ด๋‹ค. ๋‚ด๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฒœ์•ˆ์— ์žˆ๋Š” ๋Œ€ํ•™๊ต ๋™์•„๋ฆฌ์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜์—ˆ๋‚˜... ์‹ถ์ง€๋งŒ ์‚ฌ์‹ค ๋ณ„๊ฑฐ ์—†๋‹ค. ๋‚˜๋Š” ์ž์œจ์ฃผํ–‰ ์‹œ์Šคํ…œ ํŒ€์žฅ์œผ๋กœ 2023๋…„ ๋Œ€ํ•™์ƒ ์ฐฝ์ž‘ ๋ชจ๋นŒ๋ฆฌํ‹ฐ ๊ฒฝ์ง„๋Œ€ํšŒ ์ž์œจ์ฃผํ–‰์„ฑ๋Šฅ๋ถ€๋ฌธ์— ์ฐธ์—ฌํ•˜์˜€๋‹ค. ๊ฝค ๊ธด ์‹œ๊ฐ„๋™์•ˆ ์†์— ๋“ค๊ณ  ์žˆ์„ ์˜ˆ์ •์ด๋ผ ์žŠ์–ด๋ฒ„๋ฆฌ๊ธฐ ์ „์— ํ”„๋กœ์ ํŠธ ํšŒ๊ณ ๋ฅผ ์œ„ํ•œ ๊ธ€์„ ์ ์–ด๋‘๋ ค๊ณ  ํ•œ๋‹ค. ์šด์ „ ์ค‘์— ๋Œ€๋œธ ์˜ค์ผ€์ด ! 23๋…„ 2์›”, ์˜ฌ๋ฆผํ”ฝ๋Œ€๋กœ ์–ด๋”˜๊ฐ€์—์„œ ์ฐจ๊ฐ€ ๋„ˆ๋ฌด ๋ง‰ํ˜€ ์กธ๋ฆฌ๊ณ , ๋‹ต๋‹ตํ•œ ๋งˆ์Œ์— ์นœ๊ตฌ๋“ค์—๊ฒŒ ์ „ํ™”๋ฅผ ๋Œ๋ฆฌ๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ( ์‚ฌ์‹ค ์ด๋•Œ ๋งŒํผ ์•ˆ๋ถ€์ „ํ™”๋ฅผ ํ•˜๊ธฐ ์ข‹์€ ์ˆœ๊ฐ„์ด ์—†์–ด, ๋‚˜๋Š” ์ฐจ ๋ง‰ํžˆ๋Š” ์ˆœ๊ฐ„๋„ ๊ฝค ๊ดœ์ฐฎ์•„ ํ•œ๋‹ค.) ๊ทธ ์•ˆ๋ถ€์ „ํ™” ์ค‘ ํ•œ๋ช…์ด ์ฒœ์•ˆ์— ์žˆ๋Š” ์นœ๊ตฌ..

Exp/Project 2023.06.20
728x90