ÀÕÇõµ¼­

¼ÒÇÁÆ®¿þ¾î(SW) Çϵå¿þ¾î(HW)¸¦ Á¢¸ñ½ÃŲ
µµ¼­¸¦ ÃâÆÇÇϰí ÀÖ½À´Ï´Ù.

  • Ȩ
  • ÄÜÅÙÃ÷
  • º¸µµÀÚ·á

º¸µµÀÚ·á

½Å°£ º¸µµÀÚ·á ÀÔ´Ï´Ù.
Á¦¸ñ ROS2 È¥ÀÚ°øºÎÇÏ´Â ·Îº¿sw Á÷Á¢ ¸¸µé°í ÄÚµùÇÏÀÚ
ÀÛ¼ºÀÚ ÀÕÇÃ
ÀÛ¼ºÀÏÀÚ 2022-09-15
Á¶È¸¼ö 622

µµ¼­¸í : 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()ÀÇ »ç¿ë

7. ¸¶¹«¸®

 

ÆÐŰÁö ¸¸µé°í ÅäÇÈ ´Ù·ç±â

ÀÌ ÀåÀÇ ¸ñÀû

¼³Ä¡ ¹× Áغñ

óÀ½À¸·Î ÆÐŰÁö ¸¸µé±â

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. ¸¶¹«¸®

 

¸Þ½ÃÁö Á¤ÀÇ ¸¸µé°í ÅäÇȰú ¼­ºñ½º¿¡¼­ ´Ù·ç±â

ÀÌ ÀåÀÇ ¸ñÀû

¸Þ½ÃÁö Á¤ÀÇ

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. ¾×¼Ç ¼­¹ö °£´ÜÈ÷ »ç¿ëÇØº¸±â

7. ¸¶¹«¸®

 

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 ÆÄ¶ó¹ÌÅͰ¡ º¯°æµÇ´Â °Í ´«Ä¡Ã¤±â

4. ¸¶¹«¸®

 

µð¹ö±×¿Í °üÂûÀ» À§ÇÑ ¿©·¯ µµ±¸µé

ÀÌÀåÀÇ ¸ñÀû

·Î±×

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. ¸¶¹«¸®

 

¸¶Ä¡¸ç

 

÷ºÎÆÄÀÏ