ÄÜÅÙÃ÷»ó¼¼º¸±â

ROS2 È¥ÀÚ°øºÎÇÏ´Â ·Îº¿SW Á÷Á¢ ¸¸µé°í ÄÚµùÇÏÀÚ
ROS2 È¥ÀÚ°øºÎÇÏ´Â ·Îº¿SW Á÷Á¢ ¸¸µé°í ÄÚµùÇÏÀÚ
  • ÀúÀÚ<¹ÎÇü±â> Àú
  • ÃâÆÇ»çÀÕÇÃITPLE
  • ÃâÆÇÀÏ2022-09-15
  • µî·ÏÀÏ2024-03-11
º¸À¯ 1, ´ëÃâ 0, ¿¹¾à 0, ´©Àû´ëÃâ 14, ´©Àû¿¹¾à 9

Ã¥¼Ò°³

À̠åÀº ROS¶ó´Â µµ±¸ÀÇ Á¸À縦 ¾Ë°í °øºÎÇÏ·Á´Â ºÐ Áß¿¡ ¾ÆÁ÷ °øºÎ¸¦ ½ÃÀÛÇÏÁö ¾Ê¾Ò°Å³ª, ÀÌ°ÍÀú°Í ¿¹Á¦¸¦ µ¹·ÁºÃÁö¸¸ ¾î¶² °ÍÀÎÁö °¨À» ÀâÁö ¸øÇÑ ºÐµéÀ» ´ë»óÀ¸·Î ÇÏ°í ÀÖ´Ù. ¿À·§µ¿¾È °­ÀǸ¦ ÇØ¿Ô´ø ³ªÀÇ °æÇèÀ» ¹ÙÅÁÀ¸·Î ÀÌ·¯ÇÑ µ¶ÀÚµéÀÌ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ°Ô À̾߱⸦ µé·ÁÁִ °Íó·³ À̠åÀ» ±â¼úÇß´Ù. À̠åÀÌ Ãß±¸Çϴ °ÍÀº µ¶ÀÚµéÀÌ ºü¸£°Ô ROSÀÇ ¿ø¸®¿Í »ç¿ë¹ýÀ» ÆľÇÇؼ­ ÇÏ°í ½ÍÀº ÀÏÀ» ÇÒ ¼ö ÀÖµµ·Ï Çϴ °ÍÀÌ´Ù.



À̠å ÇÑ ±ÇÀ̸頴٠µÈ´Ù°í Çϴ ¸»Àº ¾Æ´Ï´Ù. ÀúÀÚÀΠ³»°¡ µ¶Àںе鿡°Ô ÇÏ°íÀÚ Çϴ ¸»Àº ¡®ÀÌ·¸°Ô ¹è¿ì¸é Á» ´õ ½±Áö ¾ÊÀ»±î¿ä?¡¯¶ó´Â °ÍÀÌ´Ù. ¼öÇÐÀÇ ÇÑ ºÐ¾ß¶ó¸é ÇÑ ±ÇÀ̸頴٠µÇ´ÂÃ¥ÀÌ Áß¿äÇÏ°ÚÁö¸¸, Àüü ÀοøÀÌ °¡´Æµµ ¾È µÇ´Â »ç¶÷µéÀÌ Âü¿©Çؼ­ ´Ù¾çÇÑ ÆÐÅ°Áö¸¦ °øÀ¯Çϴ ROS¶ó´Â »ýÅ°迡 ±×·¸°Ô Á¢±ÙÇÒ ¼ö ÀÖ´Ù°í »ý°¢ÇÏÁö ¾Ê´Â´Ù. ¶ÇÇÑ, ¿ì¸®¿¡°Ô´Â ¡®Ç¥À±¼®¡¯ ¹Ú»ç¶ó´Â ¸Å¿ì ¶Ù¾î³­ ROS Àüµµ»ç°¡ °è¼Å¼­ ±×ºÐÀǠå°ú ÀڷḦ ÅëÇØ ROS2ÀÇ ±âº»ÀûÀΠµ¿ÀÛ ¿ø¸® µîÀ» ¾Ë ¼ö ÀÖ´Ù. ±×·¡¼­ ³»°¡ ¼ö¾÷ ¶§ Áñ°Ü Á¢±ÙÇϴ ¹æ½Ä´ë·Î À̠åÀ» ±â¼úÇß´Ù. - ÀúÀÚÀÇ ¸» Áß¿¡¼­ 



ÀúÀÚ¼Ò°³

10³âÀÌ ÈξÀ ³Ñ´Â ±â°£ µ¿¾È ·Îº¿°ú Á¦¾î°øÇÐ, µö·¯´× ¹× µ¥ÀÌÅÍ»çÀ̾𽺸¦ ´Ù·ç´Â ºí·Î±×(pinkwink.kr)¸¦ ¿î¿µÇÏ°í ÀÖ´Ù .±¹¸³Ã¢¿ø´ëÇб³ Á¦¾î°èÃø°øÇаú¿¡¼­ Á¦¾î°øÇÐÀ» Àü°øÇÏ°í °øÇР¹Ú»ç ÇÐÀ§¸¦ ¹Þ¾Ò´Ù. ¿£Æ¼·º½º ·Îº¿¿¬±¸¼Ò ¼ÒÀå, ¹Ì·¡ÄÄÆÛ´Ï ¼ö¼ú·Îº¿ ¿¬±¸¼Ò Ã¥ÀÓ¿¬±¸¿ø µîÀ» ¿ªÀÓÇß°í, ±¹°¡Á÷¹«´É·ÂÇ¥ÁØ(NCS) Áß¿¡¼­ ·Îº¿ Àΰø Áö´É/±â°è Çϵå¿þ¾î ÇнÀ ¸ðµâ °³¹ß¿¡ Âü¿©Çß´Ù. ÀúÀڴ ±¹³» ÃÖÃʷΠ½Ä¾àû ÀÎÁõÀ» ¹ÞÀº ¼ö¼ú¿ë ·Îº¿ÀÇ Á¦¾î ´ã´ç, ±¹³» ÃÖ´ë ±Ô¸ðÀÇ ÀüÀÚÁ¦Ç°, ·Îº¿ °ü·Ã ¿Â¶óÀΠ¼îÇθôÀ» ¿î¿µÇÏ´ø È¸»çÀÇ ¿¬±¸¼ÒÀå µîÀ» ¿ªÀÓÇϸ破پçÇÑ ·Îº¿°ú ·Îº¿ °ü·Ã Á¦Ç°À» °æÇèÇÏ°í Á÷Á¢ °³¹ßÇß´Ù. ¶ÇÇÑ, µö·¯´×°ú µ¥ÀÌÅÍ »çÀ̾𽺠°ü·ÃÇؼ­ ´Ù¾çÇÑ ÇÁ·ÎÁ§Æ®¸¦ ¼öÇàÇÏ°í À̸¦ ±³À°¿¡ Á¢¸ñ½ÃÅ°°í ÀÖ´Ù. °øºÎÇÏ·Á´Â ºÐµéÀÌ ·Îº¿À̳ª µö·¯´×À̶ó´Â ºÐ¾ß¿¡ º¸´Ù ½±°Ô Á¢±ÙÇÒ ¼ö Àִ ¹æ¹ýÀ» Ç×»ó °í¹ÎÇÏ°í ÀÖ´Ù. ÃÖ±Ù¿¡´Â µ¥ÀÌÅÍ °úÇаú ¸Ó½Å·¯´×, ·Îº¿À» ÁÖÁ¦·Î ´Ù¾çÇÑ ¿¬±¸ ¹× °­¿¬È°µ¿À» ÇÏ°í ÀÖÀ¸¸ç, Àú¼­·Î ¡ºÆÄÀ̽ãÀ¸·Î µ¥ÀÌÅÍ ÁÖ¹«¸£±â¡», ¡º»ý°¢´ë·Î ºí·ÏÄÚµù 1, 2¡» µîÀÌ ÀÖ´Ù.

¸ñÂ÷

¡¤¸Ó¸®¸»
¡¤À̠åÀÌ À̾߱âÇϴ ´ë»ó µ¶ÀÚ
¡¤µé¾î°¡¸ç 

ȯ°æ¼³Á¤
1. Å͹̳Π
1.1 È­¸é ºÐÇÒÀÌ µÇ´Â Å͹̳ÎÀÇ Çʿ伺
1.2 ±âº» Å͹̳Π»ç¿ëÇغ¸±â
1.3 Terminator
1.4 Tilix
2. ÆíÁý±â 
2.1 Sublime TextÀÇ ¼³Ä¡
2.2 Sublime Text »ç¿ëÇغ¸±â
3. ROS ¼³Ä¡ 
3.1 ROS Galactic ¹öÀü ¼³Ä¡ ÆäÀÌÁö Ã£±â
3.2 Set Locale
3.3 Setup Sources
3.3 Install ROS2 packages
3.4 ROS2 ¼³Ä¡ È®ÀÎÇϱâ
4. ¸¶¹«¸® 

Å͹̳ΰú bashrc ±×¸®°í ¸®´ª½º Àͼ÷ÇØÁö±â
1. ÀÌ ÀåÀÇ ¸ñÀû
2. UbuntuÀÇ Æú´õ °ü·Ã ±âº» ¸í·É
2.1 Æú´õ¸¦ Çϳª ¸¸µé¾î º¼°¡¿ä - mkdir
2.2 Æú´õ¸¦ À̵¿ÇØ ¸ô°¡¿ä - cd
2.3 »èÁ¦ ¸í·É = rm
3. bashrc
3.1 Shell ½©
3.2 .bashrc
3.3 .bashrc¿¡ ¸í·É ÀÔ·ÂÇØ µÎ±â
4. .bashrc¿¡¼­ alias ¼³Á¤
4.1 alias ¼³Á¤
4.2 galactic ¼³Á¤À» alias·Î ÁöÁ¤Çϱâ
4.3 source ~/.bashrcµµ alias·Î ÁöÁ¤Çϱâ
5. ROS2 µµ¸ÞÀÏ ¼³Á¤
6. ¸¶¹«¸®

ROS2 ±âº» ¸í·É ÀÍÈ÷±â
1. ÀÌ ÀåÀÇ ¸ñÀû
2. Turtlesim ¼³Ä¡¿Í ½ÇÇà
3. ´Ù½Ã °­Á¶Çϴ setup.bash È¯°æ
4. ROS Node
5. ROS Service
5.1 ServiceÀÇ °³³ä
5.2 ros2 service list
5.3 ros2 service type
5.4 service definition
5.5 Mobile Robot ¼Ò°³
5.6 ¼­ºñ½º¸¦ È£ÃâÇϴ ¹æ¹ý service call
5.7 namespace
5.8 spawn
6. ROS Topic
6.1 TopicÀÇ °³³ä
6.2 ros2 topic list
6.3 ros2 topic type
6.4 ros2 topic info
6.5 ÅäÇÈÀ» »ç¿ëÇϱâ À§ÇØ ¸Þ½ÃÁö Å¸ÀÔ È®ÀÎÇϱâ
6.6 °£´ÜÇÏ°Ô Å͹̳ο¡¼­ ÅäÇÈ ±¸µ¶Çغ¸±â
6.7 ÁÖÇà ¸í·É ÅäÇÈ ¹ßÇàÇØ º¸±â
6.8 ÅäÇÈÀÇ È帧À» º¸¿©Áִ rqt_graph
7. ROS Action
7.1 ³ëµå turtle_teleop_key ½ÇÇà
7.2 ros2 action list
7.3 ros2 action send_goal
8. ¸¶¹«¸®

PythonÀ¸·Î ROS2 ÅäÇÈ ´Ù·ç±â
1. ÀÌ ÀåÀÇ ¸ñÀû
2. ¼³Ä¡ ¹× Áغñ
3. JupyterÀÇ °£´ÜÇÑ »ç¿ë¹ý ¹× Python ±âÃÊ
3.1 JupyterÀÇ ±âº» »ç¿ë
3.2 Markdown ¹®¼­
4. PythonÀ¸·Î ÅäÇÈ ±¸µ¶Çϱâ
4.1 Jupyter·Î ÅäÇÈÀ» ±¸µ¶Çϱâ À§ÇÑ Áغñ
4.2 ÄÚµù¿¡ µé¾î°¡±â Àü¿¡ ´çºÎÀÇ ¸»
4.3 ±¸µ¶À» À§ÇØ ÇÊ¿äÇÑ ¸ðµâ import
4.4 Python Import ¹æ½Ä
4.5 rclpyÀÇ ÃʱâÈ­ ¹× ³ëµå »ý¼º
4.6 Subscription¿¡¼­ ½ÇÇàÇÒ callback ÇÔ¼ö ÀÛ¼º
4.7 ÅäÇÈ subscriber ¸¸µé±â
4.8 Jupyter »ç¿ëÇؼ­ À¯ÀÇÇÒ Á¡
4.9 ÅäÇÈÀ» ¹Þ´Â È½¼ö Á¦ÇÑÇغ¸±â
5. PythonÀ¸·Î ÅäÇÈ ¹ßÇàÇϱâ
5.1 Jupyter·Î ÅäÇÈÀ» ¹ßÇàÇϱâ À§ÇÑ Áغñ
5.2 ÅäÇÈ ¹ßÇàÀ» À§ÇÑ rclpy¿Í ¸Þ½ÃÁö ÃʱâÈ­
5.3 cmd_vel ÅäÇÈÀÇ µ¥ÀÌÅ͠ŸÀÔÀΠTwist ¼±¾ð
5.4 PythonÀ¸·Î cmd_vel ÅäÇÈ °£´ÜÈ÷ ¹ßÇàÇغ¸±â
5.5 ROS¿¡¼­ timer¸¦ ÀÌ¿ëÇؼ­ ÅäÇÈ ¹ßÇàÇϱâ
6. ³ëµåÀÇ Á¾·ù
7. ¸¶¹«¸®

PythonÀ¸·Î ¼­ºñ½º Å©¶óÀ̾ðÆ® ´Ù·ç±â
1. ÀÌ ÀåÀÇ ¸ñÀû
2. PythonÀ¸·Î ROS Service Client »ç¿ëÇϱâ
2.1 ÇнÀÀ» À§ÇÑ Áغñ¿Í Service Client¸¦ À§ÇÑ ³ëµå »ý¼º
2.2 ¼­ºñ½º¸¦ ¿äûÇϴ Service client »ý¼º
2.3 ¼­ºñ½ºÀÇ Á¤ÀÇ(service definition)¸¦ Python¿¡¼­ »ç¿ëÇÒ ÁغñÇϱâ
2.4 °£´ÜÈ÷ service callÀ» ½ÇÇàÇØ º¸±â
2.5 wait_for_service »ç¿ëÇغ¸±â
2.6 ¼­ºñ½º Å¬¶óÀ̾ðÆ®°¡ ½ÇÇàµÇ´Â »óȲ È®ÀÎÇϱâ
3. ¸¶¹«¸®

ROS2 ÇнÀÀ» À§ÇÑ Python Class ÀÌÇØÇϱâ
1. ÀÌ ÀåÀÇ ¸ñÀû
2. ÁغñÀÛ¾÷ ¹× ±×³É sin ÇÔ¼ö ±×·Áº¸±â
2.1 ºó ¹®¼­ ÁغñÇϱâ
2.2 matplotlib »ç¿ë ÁغñÇÏ°í import Çϱâ
2.3 domain ÁغñÇϱâ
2.4 sin ÇÔ¼ö ±¸Çϱâ
2.5 ±×·¡ÇÁ ±×·Áº¸±â
2.6 ÇÔ¼ö def·Î ±¸ÇöÇغ¸±â
3. Å¬·¡½º·Î sin ÇÔ¼ö¸¦ ±×·Áº¸±â
3.1 ÀϴܠŬ·¡½º¿¡ º¯¼ö¶óµµ µî·ÏÇغ¸ÀÚ
3.2 »ï°¢ÇÔ¼ö¸¦ ±×¸®´Â Å¬·¡½º ¿Ï¼ºÇϱâ
4. Å¬·¡½ºÀÇ »ó¼Ó Inherritance
5. ¸Þ¼­µå ¿À¹ö¶óÀ̵ù Method Overriding
6. Å¬·¡½º¿¡¼­ super()ÀÇ »ç¿ë
7. ¸¶¹«¸®

ÆÐÅ°Áö ¸¸µé°í ÅäÇÈ ´Ù·ç±â
1. ÀÌ ÀåÀÇ ¸ñÀû
2. ¼³Ä¡ ¹× Áغñ
3. Ã³À½À¸·Î ÆÐÅ°Áö ¸¸µé±â
3.1 ÀÏ´Ü ÆÐÅ°Áö¸¦ ¹«ÀÛÁ¤ ¸¸µé¾î º¸ÀÚ
3.2 ÆÐÅ°Áö ºôµå Çغ¸±â, ±×¸®°í ¿öÅ©½ºÆäÀ̽º ¼³Á¤
4. Topic Subscriber ³ëµå Ãß°¡
4.1 »õ·Î¿î subscriber ÆÄÀÏ Ãß°¡Çϱâ
4.2 my_subscriber.py ÆÄÀÏ ¼³¸í
4.3 »õ·Î Ãß°¡ÇÑ ³ëµå ½ÇÇàÇØ º¸±â
5. Topic Publisher ³ëµå Ãß°¡
5.1 my_publisher.py ÆÄÀÏ ¼³¸í
5.2 ¿öÅ©½ºÆäÀ̽ºÀÇ ºôµå Á¤º¸¸¦ Áö¿ì°í ½Í´Ù¸é
5.3 my_publisher ½ÇÇàÇØ º¸±â
6. ¸¶¹«¸®

¸Þ½ÃÁö Á¤ÀÇ ¸¸µé°í ÅäÇÈ°ú ¼­ºñ½º¿¡¼­ ´Ù·ç±â
1. ÀÌ ÀåÀÇ ¸ñÀû
2. ¸Þ½ÃÁö Á¤ÀÇ
2.1 ¸Þ½ÃÁö Á¤ÀǸ¦ À§ÇÑ º°µµÀÇ ÆÐÅ°Áö ¸¸µé±â
2.2 ¸Þ½ÃÁö Á¤ÀÇ msg definition ¸¸µé±â
2.3 »õ·Î Á¤ÀǵȠmsg¸¦ Æ÷ÇÔÇÑ ÆÐÅ°Áö ºôµåÇϱâ
3. µÎ °³ÀÇ ÅäÇÈÀ» ±¸µ¶ÇÏ°í ÇϳªÀÇ ÅäÇÈÀ» ¹ßÇàÇÏÀÚ
3.1 turtlesimÀÌ ¹ßÇàÇϴ pose ÅäÇÈ ±¸µ¿ ºÎºÐºÎÅÍ ½ÃÀÛÇÏÀÚ
3.2 »õ·Î Á¤ÀÇÇÑ CmdAndPoseVelÀ» »ç¿ëÇØ º¸ÀÚ
3.3 cmd_vel ÅäÇȵµ ±¸µ¶ÇØ º¸±â
3.4 µÎ °³ÀÇ ÅäÇÈÀ» ±¸µ¶ÇÑ °á°ú¸¦ ¹ßÇàÇØ º¸ÀÚ
4. ¼­ºñ½º Á¤ÀÇ Service definition ³»°¡ Çѹø ¸¸µé¾î º¸ÀÚ
4.1 ¼­ºñ½º Á¤ÀÇ ¸¸µé°í ºôµåÇϱâ
4.2 ¼­ºñ½º ¼­¹ö ¸¸µé¾î º¸ÀÚ
4.3 ¼­ºñ½º ¼­¹ö Äڵ堾ȿ¡ Å¬¶óÀ̾ðÆ® Äڵ带 ¸¸µé¾î º¸ÀÚ
4.4 ¿©·¯ °ÅºÏÀ̸¦ ¿ø ¸ð¾çÀ¸·Î ¹èÄ¡Çϱâ À§ÇÑ °í¹Î
4.5 ¿©·¯ °ÅºÏÀ̸¦ ¹èÄ¡Çϴ ¼­ºñ½º ¼­¹ö ±¸Çö
4.6 ¿©·¯ °ÅºÏÀ̸¦ µîÀå½ÃÅ°ÀÚ
5. ¸¶¹«¸®

¾×¼Ç Àͼ÷ÇØÁö±â
1. ÀÌ ÀåÀÇ ¸ñÀû
2. ¾×¼Ç Á¤ÀÇ ¸¸µé±â
2.1 ¾×¼Ç Á¤ÀǸ¦ ¸¸µé±â À§ÇÑ Áغñ
2.2 ¾×¼Ç Á¤ÀÇ ¸¸µé±â
2.3 ¾×¼Ç Á¤ÀÇ ºôµåÇϱâ
3. °£´ÜÇÑ ¾×¼Ç ¼­¹ö·Î °³³ä µé¿©´Ùº¸±â
3.1 °£´ÜÈ÷ °á°ú¸¦ º¸¿©Áִ ¾×¼Ç ¼­¹ö
3.2 feedbackÀ» ¾×¼Ç ¼­¹ö¿¡ Ãß°¡ÇØ º¸±â
4. ROS2 Multi Thread ±âÃÊ
5. ÁöÁ¤ÇÑ °Å¸®¸¸Å­ À̵¿Çϴ ¾×¼Ç ¼­¹ö ¸¸µé±â
5.1 ÀüüÄÚµå
5.2 main:¸ÖƼ½º·¹µå Àû¿ë
5.3 TurtleSub_Action: pose ÅäÇÈ ±¸µ¶
5.4 DistTurtleServer: »ç¿ëÀÚ°¡ ÁöÁ¤ÇÑ °Å¸®¸¸Å­ À̵¿
6. ¾×¼Ç ¼­¹ö °£´ÜÈ÷ »ç¿ëÇغ¸±â
7. ¸¶¹«¸®

Parameter ´Ù·ç±â
1. ÀÌ ÀåÀÇ ¸ñÀû
2. Å͹̳Π¸í·ÉÀ¸·Î ÆĶó¹ÌÅÍ »ç¿ëÇغ¸±â
2.1 ½Ç½Àȯ°æ
2.2 ros2 param list
2.3 ros2 param get
2.4 ros2 param set
2.5 ros2 param dump
2.6 ros2 param load
3. ÄÚµå·Î Á¢±ÙÇϴ ÆĶó¹ÌÅÍ
3.1 ÀÏ´Ü ÆĶó¹ÌÅ͸¦ ¼±¾ðÇÏÀÚ
3.2 ÆĶó¹ÌÅ͸¦ Äڵ堳»¿¡¼­ »ç¿ëÇϴ ¹æ¹ý
3.3 ÆĶó¹ÌÅÍ°¡ º¯°æµÇ´Â °Í ´«Ä¡Ã¤±â
4. ¸¶¹«¸®

µð¹ö±×¿Í °üÂûÀ» À§ÇÑ ¿©·¯ µµ±¸µé
1. ÀÌÀåÀÇ ¸ñÀû
2. ·Î±×
2.1 °£´ÜÈ÷ rqt_consoleÀ» ÀÌ¿ëÇؼ­ ·Î±× È®ÀÎÇϱâ
2.2 ·Î±× ¸Þ½ÃÁö Á÷Á¢ ¸¸µé±â
3.rqt
3.1 rqt_graph
3.2 rqt_plot
3.3 topic monitor
3.4 topic publisher
4. rosbag
5. ROSLAUNCH
5.1 roslaunch ±âº»
5.2 parameter ÁöÁ¤Çϱâ
6. ¸¶¹«¸®

¸¶Ä¡¸ç