¼ÒÇÁÆ®¿þ¾î(SW) Çϵå¿þ¾î(HW)¸¦ Á¢¸ñ½ÃŲ µµ¼¸¦ ÃâÆÇÇϰí ÀÖ½À´Ï´Ù.
µµ¼¸í : ROS2 È¥ÀÚ°øºÎÇÏ´Â ·Îº¿SW Á÷Á¢ ¸¸µé°í ÄÚµùÇÏÀÚ
ºÎ Á¦ : ·Îº¿À» °øºÎÇÏ´Â »ç¶÷µéÀÇ Çʵ¶¼ ROS2
¹ßÇàÀÏ : 2022³â 09¿ù 06ÀÏ 1ÆÇ 1¼â
Àú ÀÚ : ¹ÎÇü±â
ÆÇ Çü : 185*257 433page
Á¤ °¡ : 27,300¿ø
ISBN:
979-11-91198-04-1(13550)
¹ßÇàó : ÀÕÇà ITPLE
TEL: 0502-600-4925
FAX: 0502-600-4924
Ű¿öµå : ROS, ROS2, ·Îº¿SW, Á÷Á¢¸¸µé°í, Á÷Á¢ÄÚµùÇÏÀÚ, È¥ÀÚ, °øºÎÇÏ´Â, ·Îº¿OS
¸Ó¸®¸»
Àú´Â ¾ÆÁÖ ¿¹ÀüºÎÅÍ ·Îº¿À» °øºÎÇÏ°í °³¹ßµµ Çß½À´Ï´Ù. óÀ½¿¡´Â ÇлýÀ¸·Î¼ °øºÎ¸¦ Çß°í, ÀÛÀº ±Ô¸ðÀÇ ±³À°¿ë ·Îº¿ºÎÅÍ ÆÇ¸Å °¡°ÝÀÌ ½Ê¸î¾ï ¿øÀ̳ª µÇ´Â º¹°°æ ¼ö¼ú¿ë ·Îº¿ÀÇ °³¹ß±îÁö Âü¿©Çß½À´Ï´Ù. Á¦°¡ °ü½ÉÀ» °¡Áø ºÐ¾ß´Â Á¤¸» ¸¹Áö¸¸, ½ÇÁ¦ °³¹ß¿¡ Âü¿©Çϱâ´Â ½±Áö ¾Ê¾Ò½À´Ï´Ù. ±×·±µ¥ ¾î¼´Ù º¸´Ï ºí·Ï ÄÚµùÀ» ÇÏ´Â ±³À°¿ë ·Îº¿, Æø¹ß¹° Á¦°Å¿ë ·Îº¿, Áß½ÉÀ» Àâ°í »ç¶÷ÀÇ À̵¿À» µµ¿ÍÁÖ´Â ¹ë·±½Ì ·Îº¿ÀÇ ÀÏÁ¾ÀÎ ½ºÄÉÀÌÆ® ·Îº¿, 3D ÇÁ¸°ÅÍ, µö·¯´×À» ÀÌ¿ëÇÑ ´Ù¾çÇÑ ÇÁ·ÎÁ§Æ®±îÁöµµ µµÀüÇß½À´Ï´Ù. ±×·± Á¦°¡ ·Îº¿À» °³¹ßÇÏµç »ç¿ëÇÏµç ¾ðÁ¦³ª ÆíÇÏ°Ô ±â´ÉÀ» ±¸ÇöÇÒ ¼ö ÀÖµµ·Ï µµ¿òÀ» ÁØ Ä£±¸°¡ ROS(Robot Operating System)ÀÔ´Ï´Ù. ¹°·Ð óÀ½ºÎÅÍ ROS¸¦ »ç¿ëÇÑ °Ç ¾Æ´Õ´Ï´Ù. Á¦°¡ ROSÀÇ Á¸À縦 ¾È °ÍÀº 2012³â °æÀÌÁö¸¸, ½ÇÁ¦ ROS¸¦ °øºÎÇÏ¸é¼ »ç¿ëÇÏ°Ô µÈ °ÍÀº ¸î ³â ÈÄÀ̰í, ROS¸¦ ÀÌ¿ëÇØ¼ ·Îº¿ SW¸¦ °³¹ßÇÑ °ÍÀº ¶Ç ±×·ÎºÎÅÍ ¸î ³â ÈÄÀÔ´Ï´Ù. ROS¸¦ »ç¿ëÇØº» ÈÄ¿¡ ¡®¾Æ! ÀÌ ÁÁÀº µµ±¸¸¦ ´õ ÀÏÂï »ç¿ëÇß´õ¶ó¸é, Á¤¸» ÆíÇßÀ» ÅÙµ¥¡¯¶ó°í ÈÄȸÇß½À´Ï´Ù.
ÃÖ±Ù Àú´Â ´Ù¾çÇÑ ÇüÅÂÀÇ ±³À° °úÁ¤¿¡ Âü¿©Çؼ ·Îº¿°ú µö·¯´×À» ÀüÆÄÇϰí ÀÖ½À´Ï´Ù. ¶ÇÇÑ ÈǸ¢ÇÑ Ã¥À̳ª ÀڷḦ ÅëÇØ ¿©·¯ Àå¼Ò¿¡¼ Çлýµé¿¡°Ô Àß Àü´ÞÇÏ·Á ¾Ö¾²°í ÀÖ½À´Ï´Ù. ±×·¯´Ù°¡ ·Îº¿ÀÇ ±â´ÉÀ» ¹è¿ì°í, ·Îº¿ °³¹ßÀ» À§ÇØ ROS¸¦ ÇнÀÇÏ·Á´Â ºÐµé¿¡°Ô ¹º°¡ µµ¿òÀ» µå¸®°í ½Í´Ü »ý°¢ÀÌ µé¾ú½À´Ï´Ù. °ÅâÇÑ ROSÀÇ ¿ª»ç³ª ROSÀÇ Ã¶ÇÐ, ¾ÆÅ°ÅØÃ³¿¡ °üÇÑ °Ô ¾Æ´Ï¶ó, ¾î¶»°Ô Çϸé ROS¸¦ Á¤¸» Àß ¾µ ¼ö ÀÖ´ÂÁö¿¡ °üÇÑ À̾߱⸦ ÇÏ°í ½Í¾ú½À´Ï´Ù.
Àú´Â ROS, ºí·Ï ÄÚµù, Á¦¾îÀÌ·Ð, ·Îº¸Æ½½º, µðÁöÅÐ ÇÊÅÍ, µö·¯´× µî ·Îº¿À» °³¹ßÇÏ´Â µ¥ ÇÊ¿äÇÏ´Ù°í ÆÇ´ÜÇÑ °Í Áß¿¡ Á¦°¡ ÇÒ ¼ö ÀÖ´Â °ÍÀº ¸ðµÎ Àü´ÞÇØ¾ß°Ú´Ù°í »ý°¢Çß½À´Ï´Ù. ºÐ¾ßº°·Î ÇÑ ±ÇÀÇ Ã¥ÀÌ µÉÁö ¾Æ´Ï¸é Á» ´Ù¸¥ ÇüŰ¡ µÉÁö´Â ¸ð¸£°ÚÁö¸¸ Çϳª¾¿ À̾߱⸦ ²¨³»¼ Àü´ÞÇÏ·Á°í ÇÕ´Ï´Ù.
ù ¹øÂ° Ã¥Àº ROS2 GalacticÀ¸·Î ½ÃÀÛÇÏ·Á°í ÇÕ´Ï´Ù.
Àú´Â ROS ¹öÀüÀÌ 1ÀÎÁö 2ÀÎÁö´Â Áß¿äÇÏÁö ¾ÊÀº °Í °°½À´Ï´Ù. ¾î¶² µµ±¸¸¦ ¾²´À³Äº¸´Ù Àڱ⿡°Ô ÇÊ¿äÇÑ ±â´ÉÀ» ºü¸£°Ô ã¾Æ¼ ¾î¶»°Ô Àû¿ëÇϴ°¡°¡ ´õ Áß¿äÇÏ´Ù°í »ý°¢ÇÕ´Ï´Ù. ¡®¿Ïº®ÇÑ Á¤¸®¡¯¶óµç°¡, ¡®ÀÌ Ã¥ ÇÑ ±ÇÀÌ¸é ³¡¡¯À̶ó´Â ¸»Àº Á¦ Ã¥¿¡´Â ¾î¿ï¸®Áö ¾Ê½À´Ï´Ù. Àú´Â ÀÎÅͳݿ¡ ÀÖ´Â ÀڷẸ´Ù ´õ ¸¹Àº ³»¿ëÀ» ´õ ±íÀÌ ÀÖ°Ô Á¤¸®ÇÒ ¼ö ÀÖ´Â ´É·ÂÀÌ Á¦°Ô ÀÖ´Ù°í »ý°¢ÇÏÁö ¾Ê½À´Ï´Ù. Àú´Â ¾Õ¿¡¼ ¸»ÇÑ °Íó·³ µ¶ÀÚµéÀÌ ºü¸£°Ô µµ±¸¸¦ ÀÍÈú ¼ö ÀÖ´Â ¹æ¹ýÀ» °í¹ÎÇÑ´Ù´Â °ÍÀ» ¸»ÇÏ°í ½Í½À´Ï´Ù.
ÀÌ Ã¥Àº ¿ì¼±, ROSÀÇ ±âº»ÀûÀÎ »ç¿ë¹ý¿¡ ÁýÁßÇÒ °ÍÀε¥ ±×Àü¿¡ LinuxÀÇ »ç¿ë¹ýÀ» °£·«ÇÏ°Ô ´Ù·ê °Ì´Ï´Ù. ROS´Â Ubuntu(Linux ±â¹ÝÀÇ OS)¿¡¼ ¾ÆÁÖ Àß µ¿ÀÛÇϹǷΠUbuntuÀÇ »ç¿ë¹ý¿¡ Àͼ÷ÇØÁú Çʿ䰡 Àֱ⠶§¹®ÀÔ´Ï´Ù. ¶ÇÇÑ URDF·Î ·Îº¿À» ±â¼úÇÏ´Â ¹æ¹ý, Gazebo¿¡¼ ½Ã¹Ä·¹À̼ÇÇÏ´Â ¹æ¹ý°ú ¾ÆµÎÀ̳븦 ROS¿¡¼ ÀÌ¿ëÇÏ´Â ¹æ¹ýµµ ´ÙÀ½¿¡ ÃâÆÇµÉ 2±Ç¿¡¼ ´Ù·ç·Á°í ÇÕ´Ï´Ù.
ÇöÀç ROS¶ó´Â À̸§ÀÇ À¯¿ëÇÑ µµ±¸´Â ¸î ³â Àü¿¡ ROS2 ¹öÀüÀÌ ³ª¿Í¼ ROS1¿¡¼ ROS2·Î ³Ñ¾î°¡°í ÀÖ´Â °úµµ±âÀÔ´Ï´Ù. ÀÎÅÍ³Ý Ä¿¹Â´ÏƼ¿¡¼´Â ROS1À̳Ä, ROS2³Ä¸¦ °¡Áö°í ¸¹Àº³íÀïÀÌ ÀÖÁö¸¸, Á¦ »ý°¢¿¡´Â ¹«ÀǹÌÇÑ ³íÀïÀÎ °Í °°½À´Ï´Ù. ¿Ö³ÄÇϸé, ´Ù ´Ù·ê ÁÙ ¾Ë¾Æ¾ß Çϱ⠶§¹®ÀÔ´Ï´Ù.
¿©±â¼´Â ¿ìºÐÅõ 20.04¸¦ ±âÁØÀ¸·Î ROS¸¦ À̾߱â ÇÏ·Á°í ÇÕ´Ï´Ù. ÀÌÀ¯´Â °£´ÜÇÕ´Ï´Ù.
ROS1°ú ROS2¸¦ µ¿½Ã¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸¶Áö¸· ¿ìºÐÅõ ¹öÀüÀÌ 20.04À̱⠶§¹®ÀÔ´Ï´Ù.
ÀÌ Ã¥ÀÌ ÃâÆÇµÉ ¶§ÂëÀÌ¸é ¿ìºÐÅõ°¡ ¹öÀü¾÷ µÇ¾î 22.04°¡ ³ª¿Í ÀÖÀ» °Í °°½À´Ï´Ù. ±×·¯³ª ±×°Íµµ Áß¿äÇÏÁö ¾Ê½À´Ï´Ù. ¾ÆÁ÷µµ ¿ìºÐÅõ 16.04¿¡¼ ROS1 Kinetic ¹öÀüÀ¸·Î °³¹ßÇÏ´Â ºÐµéµµ ¸¹±â ¶§¹®ÀÔ´Ï´Ù. Áß¿äÇÑ °ÍÀº ¹öÀüÀÌ ¾Æ´Ï¶ó »ç¿ë¹ý¿¡ ´ëÇÑ ÀÌÇØÀÔ´Ï´Ù. ºÐ¸í 22.04ÀÇ ¿ìºÐÅõ¿¡ ¸ÂÃç ¶Ç »õ·Î¿î ROS2 ¹öÀüÀÌ ³ª¿À°ÚÁö¸¸, ±× ±âº»Àº ¹Ù²îÁö ¾ÊÀ¸¹Ç·Î Å©°Ô ½Å°æ ¾²Áö ¾Ê¾Æµµ µË´Ï´Ù.
Ã¥¼Ò°³
ÀÌ Ã¥Àº ROS¶ó´Â µµ±¸ÀÇ Á¸À縦 ¾Ë°í °øºÎÇÏ·Á´Â ºÐ Áß¿¡ ¾ÆÁ÷ °øºÎ¸¦ ½ÃÀÛÇÏÁö ¾Ê¾Ò°Å³ª, À̰ÍÀú°Í ¿¹Á¦¸¦ µ¹·ÁºÃÁö¸¸ ¾î¶² °ÍÀÎÁö °¨À» ÀâÁö ¸øÇÑ ºÐµéÀ» ´ë»óÀ¸·Î Çϰí ÀÖ½À´Ï´Ù. ¿À·§µ¿¾È °ÀǸ¦ ÇØ¿Ô´ø ÀúÀÇ °æÇèÀ» ¹ÙÅÁÀ¸·Î ÀÌ·¯ÇÑ µ¶ÀÚµéÀÌ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ°Ô À̾߱⸦ µé·ÁÁÖ´Â °Íó·³ ÀÌ Ã¥À» ±â¼úÇß½À´Ï´Ù. ÀÌ Ã¥ÀÌ Ãß±¸ÇÏ´Â °ÍÀº µ¶ÀÚµéÀÌ ºü¸£°Ô ROSÀÇ ¿ø¸®¿Í »ç¿ë¹ýÀ» ÆÄ¾ÇÇØ¼ ÇÏ°í ½ÍÀº ÀÏÀ» ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù.
ÀÌ Ã¥ ÇÑ ±ÇÀÌ¸é ´Ù µÈ´Ù°í ÇÏ´Â ¸»Àº ¾Æ´Õ´Ï´Ù. ÀúÀÚÀÎ Á¦°¡ µ¶Àںе鿡°Ô ÇϰíÀÚ ÇÏ´Â ¸»Àº ¡®ÀÌ·¸°Ô ¹è¿ì¸é Á» ´õ ½±Áö ¾ÊÀ»±î¿ä?¡¯¶ó´Â °ÍÀÔ´Ï´Ù. ¼öÇÐÀÇ ÇÑ ºÐ¾ß¶ó¸é ÇÑ ±ÇÀÌ¸é ´Ù µÇ´ÂÃ¥ÀÌ Áß¿äÇϰÚÁö¸¸, Àüü ÀοøÀÌ °¡´Æµµ ¾È µÇ´Â »ç¶÷µéÀÌ Âü¿©Çؼ ´Ù¾çÇÑ ÆÐŰÁö¸¦ °øÀ¯ÇÏ´Â ROS¶ó´Â »ýŰ迡 ±×·¸°Ô Á¢±ÙÇÒ ¼ö ÀÖ´Ù°í »ý°¢ÇÏÁö ¾Ê½À´Ï´Ù. ¶ÇÇÑ, ¿ì¸®¿¡°Ô´Â ¡®Ç¥À±¼®¡¯ ¹Ú»ç¶ó´Â ¸Å¿ì ¶Ù¾î³ ROS Àüµµ»ç°¡ °è¼Å¼ ±×ºÐÀÇ Ã¥°ú ÀڷḦ ÅëÇØ ROS2ÀÇ ±âº»ÀûÀÎ µ¿ÀÛ ¿ø¸® µîÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ±×·¡¼ Àú´Â Á¦°¡ ¼ö¾÷ ¶§ Áñ°Ü Á¢±ÙÇÏ´Â ¹æ½Ä´ë·Î ÀÌ Ã¥À» ±â¼úÇß½À´Ï´Ù.
ÀúÀÚ¼Ò°³
ÀúÀÚ : ¹ÎÇü±â
¹ÎÇü±â ¹Ú»ç´Â 10³âÀÌ ÈξÀ ³Ñ´Â ±â°£ µ¿¾È ·Îº¿°ú Á¦¾î°øÇÐ, µö·¯´× ¹× µ¥ÀÌÅÍ»çÀ̾𽺸¦ ´Ù·ç´Â ºí·Î±×(pinkwink.kr)¸¦ ¿î¿µÇϰí ÀÖ½À´Ï´Ù.
ÀúÀÚ´Â ±¹³» ÃÖÃÊ·Î ½Ä¾àû ÀÎÁõÀ» ¹ÞÀº ¼ö¼ú¿ë ·Îº¿ÀÇ Á¦¾î ´ã´ç, ±¹³» ÃÖ´ë ±Ô¸ðÀÇ ÀüÀÚÁ¦Ç°, ·Îº¿ °ü·Ã ¿Â¶óÀÎ ¼îÇθôÀ» ¿î¿µÇÏ´ø ȸ»çÀÇ ¿¬±¸¼ÒÀå µîÀ» ¿ªÀÓÇÏ¸ç ´Ù¾çÇÑ ·Îº¿°ú ·Îº¿ °ü·Ã Á¦Ç°À» °æÇèÇϰí Á÷Á¢ °³¹ßÇß½À´Ï´Ù.
¶ÇÇÑ, µö·¯´×°ú µ¥ÀÌÅÍ »çÀ̾𽺠°ü·ÃÇØ¼ ´Ù¾çÇÑ ÇÁ·ÎÁ§Æ®¸¦ ¼öÇàÇϰí À̸¦ ±³À°¿¡ Á¢¸ñ½Ã۰í ÀÖ½À´Ï´Ù.
°øºÎÇÏ·Á´Â ºÐµéÀÌ ·Îº¿À̳ª µö·¯´×À̶ó´Â ºÐ¾ß¿¡ º¸´Ù ½±°Ô Á¢±ÙÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Ç×»ó °í¹ÎÇϰí ÀÖ½À´Ï´Ù.
¿¬Çõ
Çö) ÁÖ½Äȸ»ç ÇÎÅ©·¦ ´ëÇ¥ÀÌ»ç
Çö) Á¦·Îº£À̽º µö·¯´×/¸Ó½Å·¯´× ÀüÀÓ °»ç
Çö) ÇѾç´ë ¼¿ïÄ·ÆÛ½º °âÀÓ±³¼ö
¿£Æ¼·º½º ¿¬±¸¼ÒÀå
¹Ì·¡ÄÄÆÛ´Ï ¼ö¼ú·Îº¿¿¬±¸¼Ò Ã¥ÀÓ¿¬±¸¿ø
ÇѾç´ë ¿¡¸®Ä« ¿¬±¸±³¼ö
¼ö»ó°æ·Â
·Îº¿ À¯°øÀںκР»ê¾÷Åë»óÀÚ¿øºÎ Àå°ü ǥâ(2019)
¸ñ Â÷
•¸Ó¸®¸»
•ÀÌ Ã¥ÀÌ À̾߱âÇÏ´Â ´ë»ó µ¶ÀÚ
•µé¾î°¡¸ç
ȯ°æ¼³Á¤
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 ±×¸®°í ¸®´ª½º Àͼ÷ÇØÁö±â
ÀÌ ÀåÀÇ ¸ñÀû
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 ±âº» ¸í·É ÀÍÈ÷±â
Turtlesim ¼³Ä¡¿Í ½ÇÇà
´Ù½Ã °Á¶ÇÏ´Â setup.bash ȯ°æ
ROS Node
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 ÅäÇÈ ´Ù·ç±â
¼³Ä¡ ¹× Áغñ
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À¸·Î ¼ºñ½º Å©¶óÀÌ¾ðÆ® ´Ù·ç±â
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 ÀÌÇØÇϱâ
ÁغñÀÛ¾÷ ¹× ±×³É 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()ÀÇ »ç¿ë
ÆÐŰÁö ¸¸µé°í ÅäÇÈ ´Ù·ç±â
óÀ½À¸·Î ÆÐŰÁö ¸¸µé±â
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 ½ÇÇàÇØ º¸±â
¸Þ½ÃÁö Á¤ÀÇ ¸¸µé°í ÅäÇȰú ¼ºñ½º¿¡¼ ´Ù·ç±â
¸Þ½ÃÁö Á¤ÀÇ
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. ¸¶¹«¸®
¾×¼Ç Àͼ÷ÇØÁö±â
¾×¼Ç Á¤ÀÇ ¸¸µé±â
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. ¾×¼Ç ¼¹ö °£´ÜÈ÷ »ç¿ëÇØº¸±â
Parameter ´Ù·ç±â
Å͹̳Π¸í·ÉÀ¸·Î ÆÄ¶ó¹ÌÅÍ »ç¿ëÇØº¸±â
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 ÆÄ¶ó¹ÌÅͰ¡ º¯°æµÇ´Â °Í ´«Ä¡Ã¤±â
µð¹ö±×¿Í °üÂûÀ» À§ÇÑ ¿©·¯ µµ±¸µé
ÀÌÀåÀÇ ¸ñÀû
·Î±×
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 ÁöÁ¤Çϱâ
¸¶Ä¡¸ç