๋ชจ์…˜ ํ”Œ๋ž˜๋‹์ด๋ž€? (feat. autonomous mobile robot)

๐Ÿ“– ์„œ๋ก Physcial AI๋กœ ํ•ซํ•œ ์š”์ฆ˜ ๋กœ๋ด‡ ์—…๊ณ„์ž…๋‹ˆ๋‹ค.๋†€๋ž๊ฒŒ๋„ ํ•„์ž๋„ ๋กœ๋ด‡ ์—…๊ณ„์— ๋ฐœ์„ ์ฒจ๋ฒ™์ด๋Š” ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค.๊ณ ์ธ๋ฌผ์€ ์•„๋‹ˆ๊ณ  ์ฒญ์†Œ๋…„๊ธฐ์™€ ์–ด๋ฅธ์ด ๋˜๊ธฐ ์ „์˜ ์‚ฌ์ด์— ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋„ค์š”.๋‹ค๋งŒ, ํ•„์ž๋Š” AI๊ฐ€ ์žˆ๊ธฐ ์ „ ์‹œ๋Œ€์— ๊ณต๋ถ€๋ฅผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์›๋ž˜ ์ „๊ณต์„ ๊ฐˆ๊ณ  ๋‹ฆ์•„๋‚˜๊ฐ€๋ฉด์„œ ํŠธ๋žœ๋””ํ•œ ๊ธฐ์ˆ ๋„ ๊ณ„์†ํ•ด์„œ ๋ฐฐ์›Œ๊ฐ€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. (๊ณต๋ถ€ํ•  ๊ฒƒ์ด ์ง€์ˆ˜ ๋ฐฐ๋กœ ๊ธ‰์ƒ์Šน...)์ตœ์  ์ œ์–ด, ๊ทธ ์ค‘์—์„œ๋„ AMR(autonomous mobile robot)์— ์ ์šฉ๋˜๋Š” ์ œ์–ด ๋ฐฉ์‹์„ ๋งŽ์ด ์—ฐ๊ตฌ๋„ ํ•˜๊ณ  ์‹ค์ œ ๋กœ๋ด‡์— ๊ฐœ๋ฐœํ•˜์—ฌ ๊ธฐ์—…์— ์ƒ์šฉํ™”๋˜๋Š” ๊ณผ์ •๋„ ๊ฒช์—ˆ์Šต๋‹ˆ๋‹ค.๋งŽ์€ ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ์ž๋ถ€ํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ, ์ตœ์  ์ œ์–ด๋ฅผ ์ ์šฉํ•œ ๋ชจ์…˜ ํ”Œ๋ž˜๋‹์ด๋ผ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์— ๊ด€์‹ฌ์„ ๋…์ž๋ถ„๋“ค์ด ๊ฐ€์ง€๊ณ  ํ•จ๊ป˜ ์—ฐ๊ตฌ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋Š˜์–ด๋‚˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋Š” ๋งˆ์Œ์œผ๋กœ ๊ธ€์„ ์ž‘..

2026. 7. 28. 21:57

tf2 ๋ณ€ํ™˜ ํ–‰๋ ฌ ๊ฐ’์„ ๋ช…๋ น์ฐฝ์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ถœ๋ ฅํ•˜๊ธฐ

๐Ÿ’ก ์š”์•ฝ๋กœ๋ด‡ urdf ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์„ผ์„œ ์ขŒํ‘œ๊ณ„๋ฅผ ๋งž์ถœ ๋•Œ, ์ขŒํ‘œ๋ณ€ํ™˜ ํ–‰๋ ฌ์„ ์ผ์ผ์ด ์ฐพ๋Š” ๊ฒƒ์€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. (์ •ํ™•ํžˆ๋Š” ๊ท€์ฐฎ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์ฃ  ใ…Ž)๋‹คํ–‰ํžˆ ros2 tf2_ros ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๋ฉด, ๋ฐ”๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋กœ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์„ ์‚ดํŽด๋ณด์‹œ์ฃ .1. tf2 ๋ฐœํ–‰ํ•ด๋ณด๊ธฐ์•Œ๊ธฐ ์‰ฝ๊ฒŒ ๊ฐ„๋‹จํ•œ tf2 ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค.๋ช…๋ น์–ด๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.# (์ƒˆ๋กœ์šด ๋ฒ„์ „) ros2 run tf2_ros static_transform_publisher --x {x ๊ฐ’} --y {y ๊ฐ’} --z {z ๊ฐ’} --roll 0 --pitch 0 --yaw 0 --frame-id base_link --child-frame-id base_footprintros2 run tf2_ros st..

2026. 2. 28. 18:29

pixi ๋กœ ๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ros2 ํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ

๐Ÿ’ก ์š”์•ฝ์ด์ „ ๊ธ€์—์„œ ๋งŒ๋“ค์–ด์ง„ pixi ros2 jazzy ํ™˜๊ฒฝ์„ zip ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์•„ ์‚ฌ์šฉํ•ด๋ดค์Šต๋‹ˆ๋‹ค.๐Ÿ‘‰์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ wsl ์—†์ด ros2 ์‚ฌ์šฉํ•˜๊ธฐ">๐Ÿ‘‰์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ wsl ์—†์ด ros2 ์‚ฌ์šฉํ•˜๊ธฐ๋‹ค์šด๋กœ๋“œ ๋ฐ›์€ ํŒŒ์ผ๋กœ๋Š” C ๋“œ๋ผ์ด๋ธŒ์—์„œ๋งŒ ์ž‘์—…์ด ๊ฐ€๋Šฅํ–ˆ๋Š”๋ฐ, ์ง์ ‘ํ•˜๋ฉด ๋“œ๋ผ์ด๋ธŒ ์œ„์น˜์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์‹คํ–‰์ด ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋Š” pixi ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํŒจํ‚ค์ง€๋“ค๋กœ ์ง์ ‘ ํ™˜๊ฒฝ์„ ๊พธ๋ ค๋ณด๋Š” ๋ฐฉ๋ฒ•์„ ๊ฐ„๋‹จํžˆ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค.(pixi ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด์„œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ PATH ์— '~\pixi\bin' ์ด ๋“ฑ๋ก๋˜์–ด ์žˆ๊ณ  MSVC 2022 ๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค)1. ๊ธฐ๋ณธ์ ์ธ pixi.toml์ฑ„๋„๋กœ robostack ์ด ๊ผญ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.์ด๊ฒŒ ros2 ๊ด€๋ จ๋œ ํŒจํ‚ค์ง€๋“ค์„ ๊ฐ€์ ธ์˜ค๋Š” ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋„ค์š”...

2026. 2. 13. 20:42

์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ wsl ์—†์ด ros2 ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿ’ก ์š”์•ฝ์š”์ฆ˜ ๋ถ€์ฉ ์œˆ๋„์šฐ์—์„œ ros2 ๋ฅผ ๋Œ๋ฆฌ๊ณ  ์‹ถ์–ดํ•˜๋Š” ์œ ์ €๋“ค์˜ ์š”๊ตฌ์ƒํ™ฉ์ด ๋งŽ์•„์ง„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.pixi ๋ผ๋Š” ํˆด์„ ์‚ฌ์šฉํ•˜๋ฉด ์ถฉ๋ถ„ํžˆ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋์Šต๋‹ˆ๋‹ค.๋‹ค๋งŒ, ์•„์ง ๋ถˆ์•ˆ์ •ํ•œ ๋ถ€๋ถ„์ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋А๊ปด์ง€๋Š” ๋ถ€๋ถ„์ด ์žˆ๊ณ  ์•ž์œผ๋กœ ๋งˆ์ฃผํ•˜๋Š” ๋ฌธ์ œ์ ๋“ค์„ ๊ธฐ๋กํ•ด๋†“์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.๊ทธ๋ž˜๋„ ์ฐจ์ฐจ ๋‚˜์•„์ ธ์„œ ๋ฆฌ๋ˆ…์Šค์ฒ˜๋Ÿผ ์œˆ๋„์šฐ์—์„œ๋„ ros2๋ฅผ ์ž˜ ์‚ฌ์šฉํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋„ค์š” ๐Ÿ˜…1. ์„ค์น˜ ๋ฐฉ๋ฒ•๋ฆฌ๋ˆ…์Šค์ฒ˜๋Ÿผ ์œˆ๋„์šฐ์—์„œ๋„ colcon build ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํ•˜์ง€๋งŒ ์ด๋ฅผ ์œ„ํ•ด์„œ Visual Studio 2022 ๋ฒ„์ „์ด ์„ค์น˜๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ์ œ์•ฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค.1.1. pixi ์„ค์น˜ํ•˜๊ธฐ์›๋ณธ ๋งํฌ ๐Ÿ‘‰ (https://pixi.prefix.dev/latest/#highlights)์œˆ๋„์šฐ powershell ํ•˜๋‚˜๋ฅผ ๋„์›Œ์„œ ์•„๋ž˜ ๋ช…๋ น์„ ์ž…๋ ฅ..

2026. 2. 5. 21:23

Windows10์—์„œ Docker ๋‚ด๋ถ€์™€ ํ†ต์‹ ํ•˜๊ธฐ (cpp & python)

๐Ÿ’ก ์š”์•ฝWindows ์šด์˜์ฒด์ œ๋กœ ๊ตฌ์„ฑ๋œ ํ•˜๋‚˜์˜ PC ์œ„์— ๋„์šด Docker ์ปจํ…Œ์ด๋„ˆ๊ฐ€ Linux ์šด์˜์ฒด์ œ๋กœ ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.Windows ์—์„œ๋Š” C++ ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•˜๊ณ  Docker ๋‚ด๋ถ€์—์„œ๋Š” Python ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค.(Docker ์ปจํ…Œ์ด๋„ˆ๋Š” extra_hosts ์„ค์ •์ด 'host.docker.internal:host-gateway' ๋กœ ์—ด๋ ค ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค)1. Windows OS, C++ ์„œ๋ฒ„ ์ฝ”๋“œ#include #include #pragma comment(lib, "ws2_32.lib") // Link against Winsock libraryint main() { WSADATA wsaData; SOCKET serverSocket, cl..

2025. 5. 29. 06:00

sudo ์—†์ด ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด ์ˆ˜ํ–‰

sudo visudo ๋กœ ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ์น˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ถŒํ•œ ์ˆ˜์ •์„ ํ•  ์ˆ˜ ์žˆ๋Š” bash ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ”๊พธ๋ฉด sudo ๋ฅผ ๋งค๋ฒˆ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์—†์–ด์ง€์ฃ !๋„์–ด์“ฐ๊ธฐ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์ ์šฉ์ด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ผญ ์ง€์ผœ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค... root ALL=(ALL:ALL) NOPASSWD: ALL

2025. 5. 28. 06:00

3D ๋ชจ๋ธ์„ 2D ์• ๋‹ˆ๋ฉ”์ด์…˜์ฒ˜๋Ÿผ ๋ Œ๋”๋งํ•˜๊ธฐ

์ฐธ๊ณ  ์˜์ƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค ๐Ÿ‘‰ https://www.youtube.com/watch?v=Csy6Vd33cYI์•„๋ž˜๋Š” ์˜์ƒ์— ๋“ฑ์žฅํ•˜๋Š” ํ•ต์‹ฌ ๋‚ด์šฉ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.โœจํ™”๋ฉด ๋ถ„๋ฆฌView > Area > Horizontal Split โœจ๋ถ„๋ฆฌ๋œ ํ™”๋ฉด์—์„œ ์•„๋ž˜ ํ™”๋ฉด ํด๋ฆญํ•˜๊ธฐTimeline ์œผ๋กœ ๋งž์ถฐ์ฃผ๊ธฐ > Shift + F12 shader editor ์œผ๋กœ ๋งž์ถฐ์ฃผ๊ธฐ > Shift + F3 โœจshader of rgb'+ create new material' ๋ฒ„ํŠผ ํด๋ฆญ shift a + search + shader to RGB (converter), color ramp์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ์—ฐ๊ฒฐํ•ด์ค๋‹ˆ๋‹ค.RGB > Linear ๋กœ ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ Constant ๋กœ ๋ณ€๊ฒฝ์•„๋ž˜ ์ชฝ bar ๋ฅผ ์›ํ•˜๋Š” ์ƒ‰๊น”๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ  ์œ„ ์ชฝ ..

2025. 5. 27. 06:00

'No tests found' ํ•ด๊ฒฐํ•˜๊ธฐ

๋จผ์ € ๊ตฌ๊ธ€ ํ…Œ์ŠคํŠธ๋ฅผ ์„ค์ •ํ•  ๋•Œ๋Š” ๊ณต์‹ ๋ ˆํผ๋Ÿฐ์Šค ๋งํฌ๋ฅผ ๋”ฐ๋ผ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค. (์ฐธ๊ณ : https://google.github.io/googletest/quickstart-cmake.html)ํ•˜์ง€๋งŒ sub_directory ๊ฐ€ ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ ๊ฐ CMakeLists ๋ฅผ ์•„๋ฌด ์ƒ๊ฐ ์—†์ด ์œ„์˜ ์˜ˆ์ œ๋กœ ํ†ต์ผํ•˜๋ฉด ๊ตฌ๊ธ€ ํ…Œ์ŠคํŠธ๊ฐ€ test case ๋ฅผ ์ฐพ์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.ํ”„๋กœ์ ํŠธ ํด๋” ์•„๋ž˜ ํ•˜์œ„ ๋‹ค์ด๋ ‰ํ„ฐ๋ฆฌ์— ๊ฐ๊ฐ tests ํด๋”๊ฐ€ ์žˆ๋‹ค๋ฉด CMakeLists ์— ์œ ์˜ํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์„ ์•Œ๊ณ  ๊ฐ€๋ด…์‹œ๋‹ค.ํด๋” ๊ตฌ์กฐ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.project/โ”œโ”€โ”€ CMakeLists.txtโ”œโ”€โ”€ sub_projectA/โ”‚ โ”œโ”€โ”€ tests/โ”‚ โ”‚ โ”œโ”€โ”€ test.cppโ”‚ โ”‚ โ””โ”€โ”€ CMakeLists...

2025. 5. 26. 06:00

์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ VSCode์— ROS2 ์‚ฌ์šฉํ•˜๊ธฐ

๐Ÿ’ก ์š”์•ฝhttps://github.com/SakshayMahna/ros2env.git VSCode Extension ์—์„œ ์„ค์น˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋งํฌ๋ฅผ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค!Docker ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘๋˜๋ฉฐ ์›ํ•˜๋Š” ROS2 ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋ฉด์„œ GUI๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.1. ์„ค์น˜ ํ›„, ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ €๋Š” ๐Ÿ’ ์œˆ๋„์šฐ์—์„œ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.ํ•„์ˆ˜ ํ™˜๊ฒฝ์„ ์„ค์น˜ํ•œ ํ›„์—, ํ„ฐํ‹€๋ด‡ ์˜ˆ์ œ๋ฅผ ์ผœ๋ฉด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.์™œ๋ƒํ•˜๋ฉด bashrc ํŒŒ์ผ์—์„œ ๊ฐ€์ œ๋ณด ๊ฒฝ๋กœ์— ๋Œ€ํ•œ source๋ฅผ ๋”ฐ๋กœ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.# ~/.bashrc, ์•„๋ž˜ ์„ธํŒ…์œผ๋กœ ํ•ด์•ผ gazebo visualize ๊ฐ€๋Šฅsource /opt/ros/humble/setup.bashsource /usr/share/gazebo/setup.bashexpo..

2025. 5. 25. 17:25

dataclasses ์‚ฌ์šฉํ•˜๊ธฐ

data storage ๋ชฉ์ ์œผ๋กœ Python 3.7์— ๋“ฑ์žฅํ•œ dataclasses ๋ฅผ ์•„๋ž˜์™€ ๊ฐ™์€ ์˜ˆ์‹œ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.class ์žฌ์‚ฌ์šฉ์„ฑ๋„ ๋†’์•„์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ชฉ์ ์ด๋ผ๋ฉด ์œ ์šฉํ•ด๋ณด์ž…๋‹ˆ๋‹ค.# ๊ธฐ๋ณธ class ํ˜•ํƒœclass PersonInformation: def __init__( name: str, age: int = 25, address: str = "", phone: str ) -> None: """ Person information class Parameters: name (str): ์ด๋ฆ„ age (int): ๋‚˜์ด address (str)..

2025. 3. 27. 10:47