¿ª·¢ÕßÉçÇø> »ªÕ¼ÆËã»ú> ÕýÎÄ

ROS»úÆ÷È˳ÌÐòÉè¼Æ£¨Ô­ÊéµÚ2°æ£©.

¼ò½é£º
+¹Ø×¢¼ÌÐø²é¿´

34e55197e35de23966ce7ff1de0250fbc7cf8ead

»úÆ÷ÈËÉè¼ÆÓëÖÆ×÷ϵÁÐ


ROS»úÆ÷È˳ÌÐòÉè¼Æ

£¨Ô­ÊéµÚ2°æ£©

Learning ROS for Robotics Programming£¬Second Edition


¶÷Àï¿Ë¡¤·Ñ¶ûÄϵÂ˹£¨Enrique Fern¨¢ndez£©

·Ò×˹¡¤É£ÇÐ˹¡¤¿ËÀ×˹²¨£¨Luis S¨¢nchez Crespo£©

°¢Äá¶û¡¤Âí¹þËþÄᣨAnil Mahtani£©

ÑÇÂס¤Âí¶¡ÄÚ˹£¨Aaron Martinez£©¡¡Öø

Áõ½õÌΡ¡ÕÅÈðÀס¡µÈÒë





ͼÊéÔÚ°æ±àÄ¿£¨CIP£©Êý¾Ý

ROS»úÆ÷È˳ÌÐòÉè¼Æ£¨Ô­ÊéµÚ2°æ£© / £¨Î÷£©¶÷Àï¿Ë¡¤·Ñ¶ûÄϵÂ˹£¨Enrique Fern¨¢ndez£©µÈÖø£»Áõ½õÌεÈÒë. ¡ª±±¾©£º»úе¹¤Òµ³ö°æÉ磬2016.9?

£¨»úÆ÷ÈËÉè¼ÆÓëÖÆ×÷ϵÁУ©

ÊéÃûÔ­ÎÄ: Learning ROS for Robotics Programming, Second Edition

ISBN 978-7-111-55105-8

I. R¡­¡¡II. ¢Ù¶÷¡­¡¡¢ÚÁõ¡­¡¡III. »úÆ÷ÈË£­³ÌÐòÉè¼Æ¡¡IV. TP242

Öйú°æ±¾Í¼Êé¹ÝCIPÊý¾ÝºË×Ö£¨2016£©µÚ248166ºÅ

±¾Êé°æÈ¨µÇ¼ÇºÅ£ºÍ¼×Ö£º01-2016-1894

Enrique Fern¨¢ndez, Luis S¨¢nchez Crespo, Anil Mahtani, Aaron Martinez: Learning ROS for Robotics Programming, Second Edition£¨ISBN: 978-1-78398-758-0£©.

Copyright ? 2015 Packt Publishing. First published in the English language under the title ¡°Learning ROS for Robotics Programming, Second Edition¡±.

All rights reserved.

Chinese simplified language edition published by China Machine Press.

Copyright ? 2016 by China Machine Press.?

±¾ÊéÖÐÎļòÌå×Ö°æÓÉPackt PublishingÊÚȨ»úе¹¤Òµ³ö°æÉç¶À¼Ò³ö°æ¡£Î´¾­³ö°æÕßÊéÃæÐí¿É£¬²»µÃÒÔÈκη½Ê½¸´ÖÆ»ò³­Ï®±¾ÊéÄÚÈÝ¡£








ROS»úÆ÷È˳ÌÐòÉè¼Æ£¨Ô­ÊéµÚ2°æ£©

³ö°æ·¢ÐУº»úе¹¤Òµ³ö°æÉ磨±±¾©ÊÐÎ÷³ÇÇø°ÙÍòׯ´ó½Ö22ºÅ¡¡ÓÊÕþ±àÂ룺100037£©

ÔðÈα༭£ºÁõÊ«å° ÔðÈÎУ¶Ô£º¶­¼ÍÀö

Ó¡¡¡¡¡Ë¢£º °æ¡¡¡¡´Î£º2016Äê11ÔµÚ1°æµÚ1´ÎÓ¡Ë¢

¿ª¡¡¡¡±¾£º186mm¡Á240mm¡¡1/16 Ó¡¡¡¡¡ÕÅ£º20

Êé¡¡¡¡ºÅ£ºISBN 978-7-111-55105-8 ¶¨¡¡¡¡¼Û£º69.00Ôª

·²¹º±¾Ê飬ÈçÓÐȱҳ¡¢µ¹Ò³¡¢ÍÑÒ³£¬Óɱ¾Éç·¢Ðв¿µ÷»»

¿Í·þÈÈÏߣº£¨010£©88379426¡¡88361066 Ͷ¸åÈÈÏߣº£¨010£©88379604

¹ºÊéÈÈÏߣº£¨010£©68326294¡¡88379649¡¡68995259 ¶ÁÕßÐÅÏ[email protected]

°æÈ¨ËùÓÐ ? ÇÖȨ±Ø¾¿

·âµ×ÎÞ·Àα±ê¾ùΪµÁ°æ

±¾Êé·¨ÂɹËÎÊ£º±±¾©´ó³ÉÂÉʦÊÂÎñËù¡¡º«¹â/×ÞÏþ¶«






Foreword¡¡¡¡ÍƼöÐòÒ»

21ÊÀ¼ÍÊÇʲôÑùµÄÊÀ¼Í£¿ÊÇÎïÁªÍøµÄÊÀ¼Í£¿ÊÇVRµÄÊÀ¼Í£¿Ò²Ðí°É£¬µ«ÎÒ¸üÏàÐÅ21ÊÀ¼ÍÊÇ»úÆ÷È˵ÄÊÀ¼Í¡£

Ŀǰ£¬ÎÒ¹úÒѾ­²½Èë¾­¼ÃתÐ͵ĹյãÇø¼ä£¬È˿ںìÀûÔ½À´Ô½ÄÑÒÔÖ§³ÅÖйú¾­¼ÃµÄ·¢Õ¹ºÍ½ø²½¡£ÔںܶàÐÐÒµ¶¼ÒѾ­¿ªÊ¼ÁË»úÆ÷»»ÈË¡¢Éú²ú¹¤ÒÕÉý¼¶»»´úµÄ²½·¥¡£¹¤ÐŲ¿¡¢·¢¸Äί¡¢²ÆÕþ²¿ÈÕǰÁªºÏÓ¡·¢ÁË¡¶»úÆ÷È˲úÒµ·¢Õ¹¹æ»®£¨2016¡ª2020Ä꣩¡·¡£Õâ·Ý¹æ»®Ö¸³ö£º¡°µ½2020Ä꣬ÎÒ¹ú¹¤Òµ»úÆ÷ÈËÄê²úÁ¿´ïµ½10Íǫ̀£¬ÆäÖÐÁùÖá¼°ÒÔÉÏ»úÆ÷ÈË´ïµ½5Íǫ̀ÒÔÉÏ£»·þÎñ»úÆ÷ÈËÄêÏúÊÛÊÕÈ볬¹ý300ÒÚÔª£¬ÔÚÖúÀÏ¡¢Öú²Ð¡¢Ò½ÁÆ¿µ¸´µÈÁìÓòʵÏÖСÅúÁ¿Éú²ú¼°Ó¦Óã»ÒªÅàÓý3¼ÒÒÔÉϵÄÁúÍ·²úÒµ£¬´òÔì5¸öÒÔÉÏ»úÆ÷ÈËÅäÌײúÒµ¼¯Èº£»¹¤Òµ»úÆ÷ÈËÆ½¾ùÎÞ¹ÊÕÏʱ¼äÒª´ïµ½8ÍòСʱ£»ÖÇÄÜ»úÆ÷ÈËʵÏÖ´´ÐÂÓ¦Óᣡ±´ÓÕâ¸ö¹æ»®ÖпÉÒÔ¿´³ö£¬»úÆ÷ÈËδÀ´µÄÕþ²ß¿Õ¼äºÍÊг¡·¢Õ¹¿Õ¼ä¶¼ÊǷdz£¾Þ´óµÄ¡£Ò»·½Ã棬·¢Õ¹¹¤Òµ»úÆ÷ÈËÔÚÂú×ãÎÒ¹úÖÆÔìÒµµÄתÐÍÉý¼¶¡¢ÌáÖÊÔöЧ£¬ÊµÏÖ¡°ÖйúÖÆÔì2025¡±µÈ·½Ãæ¾ßÓм«ÎªÖØ´óµÄÒâÒ壬ÊÇÈ«ÃæÍÆ½øÊµÊ©ÖÆÔìÇ¿¹úÕ½ÂÔµÄÖØÒªÒ»²½¡£ÁíÒ»·½Ã棬´Ó·þÎñ»úÆ÷ÈËÀ´Ëµ£¬Ò²ÒªÂú×ãδÀ´Êг¡ÐèÇóµÄÔö³¤¡£Ê×ÏÈ£¬Õâ°üÀ¨ÁË»ù±¾Éú»îÐèÇ󣬱ÈÈçËµÑøÀÏ¡¢ÖúÀÏ¡¢Öú²ÐµÈ¡£Æä´ÎÊǹú¼Ò°²È«ÐèÇ󣬱ÈÈç¾ÈÔÖ¡¢ÇÀÏÕ¡¢º£µ×¿±Ì½¡¢º½Ìì¡¢¹ú·À¡£×îºó»¹ÓмÒÍ¥·þÎñºÍÓéÀÖ»úÆ÷ÈË£¬±ÈÈçÓéÀÖ¡¢¶ùͯ½ÌÓý¡¢ÖÇÄܼҾÓÓ¦Óõȡ£Í¬Ê±£¬¿Æ¼¼²¿Ä¿Ç°Ò²ÔÚ½øÐС°Ê®ÈýÎ塱¿Æ¼¼´´Ð¹滮սÂÔÑо¿£¬¸ù¾ÝÒѾ­Åû¶µÄÄÚÈÝ£¬ÆäÖжԻúÆ÷ÈË£¨ÓÈÆäÊÇ·þÎñ»úÆ÷ÈË£©·Ç³£ÖØÊÓ£¬²¢»áÔÚ½üÆÚåàÑ¡²¢Æô¶¯Ò»ÅúÏàÓ¦µÄÖØ´ó¿Æ¼¼ÏîÄ¿¡£

Ò²Ðí¿´ÍêÉÏÃæÕâЩ£¬Äã»á¾õµÃÕâ¸üÏñÊÇÐÂÎÅÃèÊö£¬»úÆ÷È˲úÒµÕæµÄÕâô»ð±¬Â𣿵±È»¡£¼´Ê¹ÅÙ³ý¹¤Òµ»úÆ÷ÈË£¬Ö»Ì¸ÆäËûµÄÖÇÄÜ»úÆ÷ÈË»ò·þÎñ»úÆ÷ÈË£¬ÕâÒ²ÊÇÒ»¸öÏ൱ÅÓ´óµÄ²úÒµ¡£ÀýÈ磬ĿǰÊÀ½çÉÏ×î´óµÄ·þÎñ»úÆ÷È˹«Ë¾Ó¦¸Ã»¹ÊÇÃÀ¹úµÄÖ±¾õÍâ¿Æ¹«Ë¾¡£ËûÃÇÉú²úµÄ´ï·ÒÆæ»úÆ÷ÈËϵͳÔÚÈ«ÊÀ½çÒѾ­Ó¦ÓÃÁË3000ÓàÌ×£¬ÆäÍê³ÉµÄÊÖÊõ³¬¹ýǧÍòÀý¡£ÓÉ»úÆ÷ÈËÍê³ÉµÄ¸÷Àà΢´´ÊÖÊõÈÃÎÞÊý»¼Õß»ñµÃÐÂÉú¡£Õâ¼Ò¹«Ë¾µÄÊÐÖµ³¬¹ý300ÒÚÃÀÔª¡£ÖйúĿǰ¹ÀÖµ×î¸ßµÄ»úÆ÷È˹«Ë¾ÊÇ´ó½®´´Ð£¬ÆäÄêÓªÊÕ¶îÒѾ­³¬¹ý10ÒÚÃÀÔª£¬¹ÀÖµ³¬¹ý°ÙÒÚÃÀÔª¡£ÒªÖªµÀ£¬10ÄêǰÕâ¼Ò¹«Ë¾¸Õ¸ÕÔÚÉîÛÚ´´Á¢Ê±£¬»¹±È½ÏÈõС¡£Òò´Ë£¬ÏàÐÅ»úÆ÷È˲úÒµÔÚδÀ´µÄǰ¾°Ò»¶¨·Ç³£¹ãÀ«¡£

µ«ÊÇÎÒÃÇÒ²×¢Òâµ½ÔÚ¾üÓùú·À¡¢¾ÈÔÖ¾ÈÔ®¡¢ÑøÀÏ¡¢¼ÒÍ¥·þÎñ¡¢¶ùͯ½ÌÓýµÈÁìÓò£¬ÖÁ½ñûÓÐÒ»¸öÊÀ½ç¼¶µÄ»úÆ÷È˹«Ë¾´æÔÚ¡£ÓкܶమºÃÕß¶¼Ï£Íû×Ô¼ºÄܹ»ÖÆÔìÒ»¸öÖÇÄÜÂÖÒΡ¢Ò»¸öÖÇÄܶùͯ½ÌÓý»úÆ÷ÈË»òÊÇÒ»¸ö¼ÒÍ¥·þÎñ»úÆ÷ÈË£¬Ò²ÐíÕâÑùµÄ»úÆ÷ÈË»áÏñÇDz¼Ë¹ºÍÎÖ×ÈÄáÑÇ¿ËÔÚ³µ¿âÀï×ö³öµÄÆ»¹ûµçÄÔÒ»Ñù¸Ä±äÊÀ½ç¡£µ«ÎÒÃÇ¿´µ½µÄºÜ¶àÈË£¬×Ô¼ºÖ»ÊÇ»úе¹¤³Ìʦ¡¢µçÆø¹¤³Ìʦ»òÕß×Ô¶¯¿ØÖƹ¤³Ìʦ£¬¿ª·¢Ò»¸ö¿ØÖÆ»úÆ÷È˵ÄÈí¼þϵͳÊÇÒ£²»¿É¼°µÄÊÂÇ飻ÓÖ»òÕß×Ô¼ºËäÈ»ÊÇÈí¼þ¹¤³Ìʦ£¬µ«ÊDz¢²»ÖªµÀÈçºÎ¿ØÖƺÍÇý¶¯µ×²ãÉ豸¡£ÕâÒªÔõô°ìÄØ£¿Ã»¹ØÏµ£¬ ROS»úÆ÷È˲Ù×÷ϵͳ¿ÉÒÔ°ïæ¡£

ROS×î³õÊÇ×÷Ϊ¿ÆÑи¨Öú¹¤¾ßÓÉ˹̹¸£´óѧ¿ª·¢µÄ¡£ÀàËÆµÄ»úÆ÷È˲Ù×÷ϵͳÔÚÊÀ½ç¸÷¹ú»¹ÓкܶࡣÓÐЩ²Ù×÷ÏµÍ³ÃæÏòʵʱ»úÆ÷ÈË¿ØÖÆ£¬ÓÐЩ²Ù×÷ÏµÍ³ÃæÏò»úÆ÷ÈË·ÂÕæ£¬ÓÐЩ²Ù×÷ÏµÍ³ÃæÏòÓû§½»»¥¡£ÕâЩ²Ù×÷ϵͳ´ó²¿·Ö¶¼Ïà¶Ô·â±Õ£¬¸÷³ÉÌåϵ£¬Ã»ÓÐÔÚѧÊõ½çºÍ²úÒµ½çÔì³ÉÓ°Ïì¡£¶øÓÉÓÚROS¼«´óµÄ¿ª·ÅÐԺͰüÈÝÐÔ£¬ËüÄܹ»¼æÈÝÆäËû»úÆ÷ÈË¿ª·¢¹¤¾ß¡¢·ÂÕæ¹¤¾ßºÍ²Ù×÷ϵͳ£¬Ê¹Ö®ÈÚΪһÌå¡£ÕâʹµÃROS²»¶Ï·¢Õ¹×³´ó£¬²¢³ÉΪӦÓúÍÓ°ÏìÁ¦×î¹ã·ºµÄ»úÆ÷ÈËÈí¼þƽ̨¡£

Ëæ×ÅROS 2.0µÄ¿ª·¢£¬ROSÄܹ»¼æÈݳýLinuxÖ®Íâ¸ü¶àµÄ²Ù×÷ϵͳ£¬ÈçWindows¡¢Android£»Äܹ»Ö§³Ö´Ó¹¤Òµ¼ÆËã»úµ½Adruino¿ª·¢°åµÈ¸÷ÀàÐ͵ÄÓ²¼þ£»Äܹ»²É¼¯RGB-DÉãÏñÍ·¡¢ÆÕͨÉãÏñÍ·ºÍ¸÷ÖÖÀàÐ͵Ĵ«¸ÐÆ÷Êý¾Ý£»Äܹ»Çý¶¯ÀàÈËÐλúÆ÷ÈË¡¢ËÄÖá·ÉÐÐÆ÷µÈ¸÷ÀàÐ͵ĻúÆ÷ÈË¡£¶øÇÒа汾µÄROSÔÚ²ÉÓÃSOA¼Ü¹¹µÄ»ù´¡ÉÏ£¬¼¯³ÉÁËMVC¿ò¼Ü£¬¸ü¼ÓÓÐÀûÓÚ»úÆ÷ÈËÈË»ú½»»¥½çÃæµÄ¿ª·¢Óë»úÆ÷ÈË¿ØÖÆ¡£

ѧϰROS£¬±¾Éí¾ÍÊÇÕÆÎÕÒ»°ÑͨÍùδÀ´µÄÔ¿³×¡£×Ô´Ó±¾ÈË2012Äê·­Òë±¾ÊéµÚ1°æÖ®ºó£¬¹ØÓÚROSµÄÊé¼®Ò²½¥½¥¶àÁËÆðÀ´¡£µ«ºÍÆäËûÊé¼®Ïà±È£¬±¾Êé¾­¹ýÁËʱ¼äµÄ¼ìÑ飬µÚ2°æ´ÓÄÚÈݵ½Ê¾Àý¶ÔѧϰROS¶¼¸üÓаïÖú¡£Ï£Íû´ó¼Ò¶¼Äܹ»³ÉΪ»úÆ÷ÈËÈí¼þÉè¼Æ·½ÃæµÄר¼Ò¡£Ï£ÍûÔÚÖйúµÄ»úÆ÷ÈËÉè¼ÆÁìÓòÄܹ»³öÏÖеÄÁì¾üÈËÎ½«ÖйúµÄ»úÆ÷ÈË´øÈëÊÀ½çÒ»Á÷ÐÐÁС£


ÁõÆ·½Ü£¬±¾ÊéµÚ1°æÒëÕß






Foreword¡¡¡¡ÍƼöÐò¶þ

¼ÇµÃµÚÒ»´Î½Ó´¥ROSµÄʱºòÎÒ»¹ÔÚѧУ×öÑо¿£¬µ±Ê±¸úһЩº£ÍâѧÕß½»Á÷ʱµÃÖªÓÐÕâ¸öרΪ»úÆ÷ÈËÉè¼ÆµÄ²Ù×÷ϵͳ¡£ÎÒºÜÊÇÐË·Ü£¬Ò»ÐÄÏë°ÑROSÓÃÔÚÎÒÃÇ×îÐÂÑз¢µÄ»úÆ÷ÈËÉÏ£¬ÓÚÊǾÍÂíÉ϶¯ÊÖÍæÆðÀ´¡£ÓÉÓÚµ±Ê±ROSÉÐÔÚÆð²½½×¶Î£¬ËµÃ÷Îĵµ²»Ì«È«Ã棬ͬʱÉçÇøÖ§³ÖÓÖºÜÉÙ£¬²»ÖªµÀ¾­¹ý¶àÉÙÕÛÌڲźò»ÈÝÒ×°ÑËüÔËÐÐÆðÀ´¡£ÌåÑéºó·¢ÏÖËüµÄÉè¼Æ¿ò¼ÜȷʵºÜÊʺÏ×÷Ϊ»úÆ÷ÈËÃô½Ý¿ª·¢¹¤¾ß¡ª¡ªËã·¨¼°¿ØÖƵȴúÂëºÜÈÝÒ×±»¸´Ó㬱ÜÃâÁ˺ܶàÖØ¸´ÀͶ¯¡£µ«Äκε±Ê±µÄ¹¦Äܰü²»¶à£¬¶øÇÒϵͳ¶ÔÔËËã×ÊÔ´ÒªÇó¸ß£¬×îÖÕûÓÐÓÃÔÚµ±Ê±µÄ»úÆ÷ÈËÏîÄ¿ÉÏ¡£

ÓÉÓÚÆä¿ªÔ´ÐÔÒÔ¼°¶ÔÉÌÓÃÓѺõİæÈ¨Ð­Ò飬ROSºÜ¿ìµÃµ½Ô½À´Ô½¶àµÄ¹Ø×¢¼°Ö§³Ö¡£ÏÖÔÚROSÒÑÓзɿìµÄ·¢Õ¹£¬Ô½À´Ô½¶à»úÆ÷ÈËÏà¹ØµÄÈí¼þ¹¤¾ßÒà¼ÓÈëROSµÄÐÐÁС£¹úÍâһЩÉÌÓõĻúÆ÷ÈËÒ²¿ªÊ¼Ö§³ÖROSϵͳ£¬ÉõÖÁ»ùÓÚROS½øÐпª·¢¡£ÏàÐÅÕâ¸öÇ÷ÊÆ»áÒ»Ö±³ÖÐøÏÂÈ¥²¢»áÂûÑÓµ½ÊÀ½ç¸÷µØ¡£¶øÎÒÒàÉîÉîÌå»áµ½¹úÄÚ¶ÔROSµÄ¹Ø×¢ÔÚ½üÄêÓÐÏÔÖøµÄÉÏÉý¡£

´ÓǰÔÚ¹úÄÚѧϰROS¿Éν¹Â¾ü×÷Õ½£¬Éí±ßû¼¸¸öÈËÌý˵¹ýROS£¬¶øÇÒÖ»ÄÜ´Ó¹úÍâÍøÕ¾Ñ§Ï°ROSµÄÏà¹ØÖªÊ¶£¬ÍêȫûÓÐÖÐÎĵÄ×ÊÁÏ¿ÉÒԲ鿴¡£ÐҺùúÄÚÓв»ÉÙÓÐÐÄÈË»ý¼«Íƶ¯ROSµÄ·¢Õ¹£¬²»ÒÅÓàÁ¦µØ¶Ô¹úÍâROSÏà¹ØµÄÎÄÕ½øÐз­Ò룬²¢ÇÒ·¢±íһЩԭ´´µÄ½ÌѧÎÄÕ£¬·á¸»ROSµÄÖÐÎÄ×ÊÔ´£¬ÕâʹѧϰROS±äµÃ¸ü·½±ã¡£

ÎÒÓë±¾ÊéÒëÕßͨ¹ý¹²Í¬¾Ù°ìROS¹úÄÚÍÆ¹ã¿Î³Ì¶ø½áÔµ¡£Ëû¶ÔÍÆ¶¯ROSÔÚ¹úÄڵķ¢Õ¹Æðµ½Á˾Ù×ãÇáÖØµÄ×÷Ó㬲¢ÔËÓª×ŹúÄÚÖøÃûµÄROS½»Á÷ÉçÇø¡£±¾ÊéÒàÊÇËû¹±Ï×ROSÖÐÎÄÉçȺµÄ×÷Æ·Ö®Ò»¡£¶ø±¾ÊéµÄ×÷ÕßͬÑùÊÇROS½çµÄȨÍþ£¬ÓзḻµÄROSʵս¾­Ñ飬ʹÓÃROS½øÐйý¶àÖÖ»úÆ÷È˵Ŀª·¢¡£ÊéÖдÓROSµÄ¼Ü¹¹¸ÅÄîµ½³£Óõĵ÷ÊÔ¹¤¾ß¡¢¹¦Äܰü¼°´«¸ÐÆ÷µÄÐÅÏ¢´¦Àí¶¼ÓÐËùÉæ¼°£¬ÊÇROSÈëÃűؿ´ÊéÖ®Ò»¡£Ï£Íû±¾ÊéÄÜÈÃÄã¿ìËÙ½øÈëROSµÄÊÀ½ç£¬Ì½Ë÷ROSµÄ¾«²Ê¡£


ÁÖÌì÷룬²©Ê¿£¬NXROBO´´Ê¼ÈË& CEO






ÒëÕßÐò¡¡¡¡The Translators¡¯ Words

»úÆ÷È˶ÔÓÚÏÖ´úÈËÀà¶øÑÔ²¢²»Ä°ÉúºÍÉñÃØ£¬ËüÔÚ°ÙÄêǰµÄ¿Æ»ÃС˵ÖÐÊ״γöÏÖ£¬¶øÏÖÔÚÒѾ­Öð²½½øÈëÈËÀàÉú»îµÄ·½·½ÃæÃ棬»úÆ÷ʱ´ú¼´½«µ½À´£¡

ÖÇÄÜ»úÆ÷È˵ijÌÐò¾¿¾¹ÊÇÈçºÎÉè¼Æ³öÀ´µÄÄØ£¿

ÖÇÄÜ»úÆ÷ÈËÐèÒª¾ß±¸Ç¿½¡µÄ¡°Ö«¡±¡¢Ã÷ÁÁµÄ¡°ÑÛ¡±¡¢ÁéÇɵġ°×족ÒÔ¼°´Ï»ÛµÄ¡°ÄÔ¡±£¬ÕâÒ»ÇеÄʵÏÖʵ¼ÊÉÏÉæ¼°Öî¶à¼¼ÊõÁìÓò£¬ÐèÒª¼èÐÁµÄÉè¼Æ¡¢¿ª·¢Óëµ÷ÊÔ¹ý³Ì£¬±ØÈ»»áÓöµ½¼¬ÊÖµÄÎÊÌâºÍÌôÕ½¡£¶øÒ»¸öСÐ͵Ŀª·¢ÍŶÓÄÑÒÔÍê³É»úÆ÷È˸÷¸ö·½ÃæµÄ¿ª·¢¹¤×÷£¬Òò¶øÐèÒªÒ»Ì׺Ï×÷¿ª·¢µÄ¿ò¼ÜÓëģʽ£¬ÒÔÆÚÄܹ»¿ìËÙ¼¯³ÉÒÑÓеŦÄÜ£¬Ê¡È´Öظ´ÀͶ¯µÄʱ¼ä¡£ÔçÔÚ2008Ä꣬ÎÒÃÇÔÚÓë°Ä´óÀûÑǵIJ¼ÀͶ÷½ÌÊÚ½»Á÷ʱ£¬¾ÍµÃÖªËûÃÇ¿ª·¢ÁËÒ»Ì×ÉÌÒµ»¯µÄ¡°RoBIOS¡±»úÆ÷È˲Ù×÷ϵͳ£¬ÕâÌ×ϵͳ½«Ò»Ð©³£ÓõĻúÆ÷È˵ײ㹦ÄܽøÐÐÁË·â×°£¬¿É¼«´ó¼ò»¯¸ß¼¶¹¦ÄܵĿª·¢¡£¾ÝËûÃǽéÉÜ£¬ÕâÊÇ×îÔçµÄ¡°»úÆ÷È˲Ù×÷ϵͳ¡±£¬µ«ÓÉÓÚ²úÆ·²»¿ªÔ´ÇÒ¼Û¸ñ°º¹ó£¬ÎÒÃÇ×îÖÕδÄÜÒ»ÊÔΪ¿ì¡£ºóÀ´ÔÚÍøÂçÖв»¶ÏµØÑ°ÃÙ£¬×îÖÕ·¢ÏÖÁËROS£¬ÓÉÓÚÆä¿ªÔ´¡¢¿ª·ÅµÄÌØÐÔ£¬Ò»ÏÂ×Ó¾ÍÒýÆðÁËÎÒÃǼ«´óµÄÐËȤ¡£

ÎÒÃÇÓÚ2010Ä꽨Á¢ÁËÒ׿ƻúÆ÷ÈËQQȺ½øÐÐÌÖÂÛ£¬´Ó¶ø½áʶÁ˹úÄÚ×îÔçÆÚµÄһЩ»úÆ÷ÈËÑо¿ÕߺÍROS̽Ë÷Õß¡£ÓÉÓÚÔçÆÚÏà¹Ø×ÊÁϷdz£ØÑ·¦£¬ÎÒÃÇÓÚ2012Äê´´½¨Á˲©¿Í£¨blog.exbot.net£©ÒÔ½øÐм¼Êõ·ÖÏíÓë½»Á÷¡£Ò׿ƻúÆ÷ÈË¿ª·¢×é³ÉÔ±ÔÚ´ËÆÚ¼ä¹±Ï×ÁË´óÁ¿µÄ½Ì³ÌºÍ¿ª·¢±Ê¼Ç£¬ÔÚ´ËÏòËûÃǵÄÎÞ˽·îÏ×±íʾ¸ÐлÓë¾´Ò⣡½üÄêÀ´£¬Ëæ×Å»úÆ÷È˵ÄѸÃÍ·¢Õ¹£¬ROSµÃµ½Á˸üΪ¹ã·ºµÄʹÓ㬹úÄÚÒ²³öÏÖÁËһЩÓÅÐãµÄÏîÄ¿£¬°üÀ¨¡°ÐÇ»ð¼Æ»®¡±ROS¹«¿ª¿Î£¨blog.exbot.net/spark£©¡¢¡°HandsFree¡±ROS»úÆ÷ÈË¿ª·¢Æ½Ì¨£¨wiki.exbot.net£©µÈ¡£

³ö°æ½ç½üÄêÀ´Ò²ÊÇ˶¹ûÀÛÀÛ£¬±¾ÊéµÚ1°æ±ãÊǹúÄÚµÚÒ»±¾ROSÒëÖø£¬ÓÉÓÚʵÓÃÐÔÇ¿£¬ÒѾ­¶à´ÎÖØÓ¡¡£µÚ2°æÕë¶Ô½üÄêÀ´ROSµÄ×îз¢Õ¹£¬¶ÔÊéÖв¿·ÖÄÚÈݽøÐÐÁËÐÞ¶©£¬²¢Ôö¼ÓÁ˵Ú6Õº͵Ú10Õ¡£±¾Ê麭¸ÇÁËʹÓÃROS½øÐлúÆ÷È˱à³ÌµÄ×îÐÂ֪ʶÓë·½·¨£¬Í¨¹ýROS±à³Ìʵ¼ùÄܹ»°ïÖúÄãÀí½â»úÆ÷ÈËϵͳÉè¼ÆÓëÓ¦ÓõÄÏÖʵÎÊÌâ¡£ÔÚ»úÆ÷ÈË¿ª·¢Êµ¼ùÖУ¬ÎÒÃÇÈÏΪ³ýÁ˳ɹ¦µÄϲÔÃÍ⣬»¹¿´µ½»úÆ÷ÈËѧĿǰËù´¦µÄ·¢Õ¹½×¶Î£ººËÐļ¼ÊõÉÐδ³ÉÊì¡¢Öî¶à¹¦ÄÜÉв»Í걸¡¢bug¶à¡­¡­µ«ÎÒÃÇÏàÐÅ£¬ÓÐÁËROSµÄ¿ªÔ´¾«ÉñºÍÍ걸µÄºÏ×÷¿ª·¢¿ò¼Ü£¬ºÜ¶àÎÊÌâ»áÓ­Èжø½â¡£Î¨Ò»ÆÈÇÐÐèÒªµÄ¾ÍÊÇÆÚ´ýÄã¼ÓÈë»úÆ÷µÄ¿ª·¢ºÍÑо¿ÖÐÀ´£¬Ò»ÆðÍÆ¶¯¿ªÔ´»úÆ÷È˼¼ÊõµÄ·¢Õ¹ÓëÆÕ¼°£¡

±¾ÊéµÚ2°æÓëµÚ1°æµÄÖØµþ²¿·ÖÖ÷񻄯ÓÃÁËÁõÆ·½ÜÔÚµÚ1°æÖеķ­Ò룬¸ö±ð´Ê»ã¸ù¾Ýϰ¹ß½øÐÐÁËÐ޸ġ£¾ßÌåÀ´Ëµ£¬µÚ1ÖÁ5Õº͵Ú10ÕÂÓÉÕÅÈðÀ×·­Ò룬µÚ6ÕÂÓÉÕŲ¨·­Ò룬µÚ7ÖÁ9ÕÂÓÉÁõ½õÌη­Ò룬ÎâÖкìºÍÀî¾²ÀÏʦ¶ÔÈ«Êé½øÐÐÁËÉóÔÄ£¬×îºóÓÉÁõ½õÌζÔÈ«Êé½øÐÐÁËÐÞ¸ÄÈóÉ«ºÍͳ¸åÕûÀí¡£¸ÐлÑîά±£¡¢ÂíÎĿƵÈÈ˶Ա¾ÊéÌá³öµÄÐ޸Ľ¨Ò飡

ÎÒÃǽ«»áÔÚbooks.exbot.net·¢²¼±¾ÊéµÄÆäËûÏà¹Ø×ÊÔ´¡£




ǰ¡¡ÑÔ¡¡¡¡Preface

±¾ÊéµÚ2°æ¸ÅÀ¨ÐԵؽéÉÜÁËROSϵͳµÄ¸÷ÖÖ¹¤¾ß¡£ROSÊÇÒ»¸öÏȽøµÄ»úÆ÷È˲Ù×÷ϵͳ¿ò¼Ü£¬ÏÖ½ñÒÑÓÐÊý°Ù¸öÑо¿ÍÅÌåºÍ¹«Ë¾½«ÆäÓ¦ÓÃÔÚ»úÆ÷ÈËÐÐÒµÖС£¶ÔÓÚ»úÆ÷È˼¼ÊõµÄ·ÇרҵÈËÊ¿À´Ëµ£¬ËüÒ²Ïà¶ÔÈÝÒ×ÉÏÊÖ¡£ÔÚ±¾ÊéÖУ¬Ä㽫Á˽âÈçºÎ°²×°ROS£¬ÈçºÎ¿ªÊ¼Ê¹ÓÃROSµÄ»ù±¾¹¤¾ß£¬ÒÔ¼°×îÖÕÈçºÎÓ¦ÓÃÏȽøµÄ¼ÆËã»úÊÓ¾õºÍµ¼º½¹¤¾ß¡£

ÔÚÔĶÁ±¾ÊéµÄ¹ý³ÌÖÐÎÞÐèʹÓÃÈκÎÌØÊâµÄÉ豸¡£ÊéÖÐÿһÕ¶¼¸½´øÁËһϵÁеÄÔ´´úÂëʾÀýºÍ½Ì³Ì£¬Äã¿ÉÒÔÔÚ×Ô¼ºµÄ¼ÆËã»úÉÏÔËÐС£ÕâÊÇÄãΨһÐèÒª×öµÄÊÂÇé¡£

µ±È»£¬ÎÒÃÇ»¹»á¸æËßÄãÈçºÎʹÓÃÓ²¼þ£¬ÕâÑùÄã¿ÉÒÔ½«ÄãµÄËã·¨Ó¦Óõ½ÏÖʵ»·¾³ÖС£ÎÒÃÇÔÚÑ¡ÔñÉè±¸Ê±ÌØÒâÑ¡ÔñһЩҵÓàÓû§¸ºµ£µÃÆðµÄÉ豸£¬Í¬Ê±º­¸ÇÁËÔÚ»úÆ÷ÈËÑо¿ÖÐ×îµäÐ͵Ĵ«¸ÐÆ÷»òÖ´ÐÐÆ÷¡£

×îºó£¬ÓÉÓÚROSϵͳµÄ´æÔÚʹµÃÕû¸ö»úÆ÷È˾߱¸ÔÚÐéÄâ»·¾³Öй¤×÷µÄÄÜÁ¦¡£Ä㽫ѧϰÈçºÎ´´½¨×Ô¼ºµÄ»úÆ÷È˲¢½áºÏ¹¦ÄÜÇ¿´óµÄµ¼º½¹¦Äܰü¼¯¡£´ËÍâÈç¹ûʹÓÃGazebo·ÂÕæ»·¾³£¬Ä㽫Äܹ»ÔÚÐéÄâ»·¾³ÖÐÔËÐÐÒ»ÇС£µÚ2°æÔÚ×îºóÔö¼ÓÁËÒ»Õ£¬½²ÈçºÎʹÓá°Move it!¡±°ü¿ØÖÆ»úе±ÛÖ´ÐÐץȡÈÎÎñ¡£¶ÁÍê±¾Êéºó£¬Äã»á·¢ÏÖÒѾ­¿ÉÒÔʹÓÃROS»úÆ÷È˽øÐй¤×÷ÁË£¬²¢Àí½âÆä±³ºóµÄÔ­Àí¡£

Ö÷ÒªÄÚÈÝ

µÚ1Õ½éÉܰ²×°ROSϵͳ×î¼òµ¥µÄ·½·¨£¬ÒÔ¼°ÈçºÎÔÚ²»Í¬Æ½Ì¨Éϰ²×°ROS£¬±¾ÊéʹÓõİ汾ÊÇROS Hydro¡£ÕâÒ»Õ»¹»á˵Ã÷ÈçºÎ´ÓDebianÈí¼þ°ü°²×°»ò´ÓÔ´´úÂë½øÐбàÒë°²×°£¬ÒÔ¼°ÔÚÐéÄâ»úºÍARM CPUÖа²×°¡£

µÚ2ÕÂÉæ¼°ROS¿ò¼Ü¼°Ïà¹ØµÄ¸ÅÄîºÍ¹¤¾ß¡£¸ÃÕ½éÉܽڵ㡢Ö÷ÌâºÍ·þÎñ£¬ÒÔ¼°ÈçºÎʹÓÃËüÃÇ£¬»¹½«Í¨¹ýһϵÁÐʾÀý˵Ã÷ÈçºÎµ÷ÊÔÒ»¸ö½Úµã»òÀûÓÿÉÊÓ»¯·½·¨Ö±¹ÛµØ²é¿´Í¨¹ýÖ÷Ìâ·¢²¼µÄÏûÏ¢¡£

µÚ3Õ½øÒ»²½Õ¹Ê¾ROSÇ¿´óµÄµ÷ÊÔ¹¤¾ß£¬ÒÔ¼°Í¨¹ý¶Ô½ÚµãÖ÷ÌâµÄͼÐλ¯½«½Úµã¼äµÄͨÐÅÊý¾Ý¿ÉÊÓ»¯¡£ROSÌṩÁËÒ»¸öÈÕÖ¾¼Ç¼APIÀ´ÇáËɵØÕï¶Ï½ÚµãµÄÎÊÌâ¡£ÊÂʵÉÏ£¬ÔÚʹÓùý³ÌÖУ¬ÎÒÃǻῴµ½Ò»Ð©¹¦ÄÜÇ¿´óµÄͼÐλ¯¹¤¾ß£¨Èçrqt_consoleºÍrqt_graph£©£¬ÒÔ¼°¿ÉÊÓ»¯½Ó¿Ú£¨Èçrqt_plotºÍrviz£©¡£×îºó½éÉÜÈçºÎʹÓÃrosbagºÍrqt_bag¼Ç¼²¢»Ø·ÅÏûÏ¢¡£

µÚ4Õ½éÉÜROSϵͳÓëÕæÊµÊÀ½çÈçºÎÁ¬½Ó¡£ÕâÒ»Õ½éÉÜÔÚROSÏÂʹÓõÄһЩ³£¼û´«¸ÐÆ÷ºÍÖ´ÐÐÆ÷£¬È缤¹âÀ×´ï¡¢ËÅ·þµç¶¯»ú¡¢ÉãÏñÍ·¡¢RGB-D´«¸ÐÆ÷¡¢GPSµÈ¡£´ËÍ⣬»¹»á½âÊÍÈçºÎʹÓÃǶÈëʽϵͳÓë΢¿ØÖÆÆ÷£¨ÀýÈç·Ç³£Á÷ÐеÄArduino¿ª·¢°å£©¡£

µÚ5Õ½éÉÜROS¶ÔÉãÏñÍ·ºÍ¼ÆËã»úÊÓ¾õÈÎÎñµÄÖ§³Ö¡£Ê×ÏÈʹÓÃFireWireºÍUSBÉãÏñÍ·Çý¶¯³ÌÐò½«ÉãÏñÍ·Á¬½Óµ½¼ÆËã»ú²¢²É¼¯Í¼Ïñ¡£È»ºó£¬Äã¾Í¿ÉÒÔʹÓÃROSµÄ±ê¶¨¹¤¾ß±ê¶¨ÄãµÄÉãÏñÍ·¡£ÎÒÃÇ»áÏêϸ½éÉܺÍ˵Ã÷ʲôÊÇͼÏñ¹ÜµÀ£¬Ñ§Ï°ÈçºÎʹÓü¯³ÉÁËOpenCVµÄ¶à¸ö»úÆ÷ÊÓ¾õAPI¡£×îºó£¬°²×°²¢Ê¹ÓÃÒ»¸öÊÓ¾õÀï³Ì¼ÆÈí¼þ¡£

µÚ6Õ½«Õ¹Ê¾ÈçºÎÔÚROS½ÚµãÖÐʹÓõãÔÆ¿â¡£¸ÃÕ´ӻù±¾¹¦ÄÜÈëÊÖ£¬Èç¶Á»òдPCLÊý¾ÝƬ¶ÎÒÔ¼°·¢²¼»ò¶©ÔÄÕâЩÏûÏ¢Ëù±ØÐèµÄת»»¡£È»ºó£¬½«ÔÚ²»Í¬½Úµã¼ä´´½¨Ò»¸ö¹ÜµÀÀ´´¦Àí3DÊý¾Ý£¬ÒÔ¼°Ê¹ÓÃPCL½øÐÐËõ¼õ²ÉÑù¡¢¹ýÂ˺ÍËÑË÷ÌØÕ÷µã¡£

µÚ7Õ½éÉÜÔÚROSϵͳÖÐʵÏÖ»úÆ÷È˵ĵÚÒ»²½ÊÇ´´½¨Ò»¸ö»úÆ÷ÈËÄ£ÐÍ£¬°üÀ¨ÔÚGazebo·ÂÕæ»·¾³ÖÐÈçºÎ´ÓÍ·¿ªÊ¼¶ÔÒ»¸ö»úÆ÷È˽øÐн¨Ä£ºÍ·ÂÕæ£¬²¢Ê¹ÆäÔÚ·ÂÕæ»·¾³ÖÐÔËÐС£ÄãÒ²¿ÉÒÔ·ÂÕæÉãÏñÍ·ºÍ¼¤¹â²â¾à´«¸ÐÆ÷£¬ÎªºóÐøÑ§Ï°ÈçºÎʹÓÃROSµÄµ¼º½¹¦Äܰü¼¯ºÍÆäËû¹¤¾ßµì¶¨»ù´¡¡£

µÚ8ÕÂÊÇÁ½Õ¹ØÓÚROSµ¼º½¹¦Äܰü¼¯ÖеĵÚ1Õ¡£¸ÃÕ½éÉÜÈçºÎ¶ÔÄãµÄ»úÆ÷È˽øÐÐʹÓõ¼º½¹¦Äܰü¼¯ËùÐèµÄ³õʼ»¯ÅäÖá£È»ºóÓü¸¸öÀý×Ó¶Ôµ¼º½¹¦Äܰü¼¯½øÐÐ˵Ã÷¡£

µÚ9ÕÂÑÓÐøµÚ8ÕµÄÄÚÈÝ£¬½éÉÜÈçºÎʹÓõ¼º½¹¦Äܰü¼¯Ê¹»úÆ÷ÈËÓÐЧµØ×ÔÖ÷µ¼º½¡£¸ÃÕ½éÉÜʹÓÃROSµÄGazebo·ÂÕæ»·¾³ºÍrviz´´½¨Ò»¸öÐéÄâ»·¾³£¬ÔÚÆäÖй¹½¨µØÍ¼¡¢¶¨Î»»úÆ÷È˲¢ÓÃÕϰ­»Ø±Ü×ö·¾¶¹æ»®¡£

µÚ10ÕÂÌÖÂÛROSÖÐÒÆ¶¯»úÆ÷ÈË»úе±ÛµÄÒ»¸ö¹¤¾ß°ü¡£¸ÃÕ°üº¬°²×°Õâ¸ö°üËùÐèÒªµÄÎĵµ£¬ÒÔ¼°Ê¹ÓÃMoveIt!²Ù×÷»úе±Û½øÐÐץȡ¡¢·ÅÖ㬼òµ¥µÄÔ˶¯¹æ»®µÈÈÎÎñµÄÑÝʾʾÀý¡£

Ô¤±¸ÖªÊ¶

ÎÒÃÇд×÷±¾ÊéµÄÄ¿µÄÊÇÈÃÿλ¶ÁÕß¶¼¿ÉÒÔÍê³É±¾ÊéµÄѧϰ²¢ÔËÐÐʾÀý´úÂë¡£»ù±¾ÉÏ£¬ÄãÖ»ÐèÒªÔÚ¼ÆËã»úÉϰ²×°Ò»¸öLinux·¢Ðа档ËäȻÿ¸öLinux·¢ÐаæÓ¦¸Ã¶¼ÄÜʹÓ㬵«»¹Êǽ¨ÒéÄãʹÓÃUbuntu 12.04 LTS¡£ÕâÑùÄã¿ÉÒÔ¸ù¾ÝµÚ1ÕµÄÄÚÈݰ²×°ROS Hydro¡£

¶ÔÓÚROSµÄÕâÒ»°æ±¾£¬Ä㽫ÐèÒªUbuntu 14.04֮ǰµÄ°æ±¾£¬ÒòΪ֮ºóµÄ°æ±¾ÒѾ­²»ÔÙÖ§³ÖHydroÁË¡£

¶ÔÓÚÓ²¼þÒªÇó£¬Ò»°ãÀ´Ëµ£¬ÈκĮ̂ʽ¼ÆËã»ú»ò±Ê¼Ç±¾µçÄÔ¶¼Âú×ã¡£µ«ÊÇ£¬×îºÃʹÓöÀÁ¢ÏÔ¿¨À´ÔËÐÐGazebo·ÂÕæ»·¾³¡£´ËÍ⣬Èç¹ûÓÐ×ã¹»µÄÍâΧ½Ó¿Ú½«»á¸üºÃ£¬ÒòΪÕâÑùÄã¿ÉÒÔÁ¬½Ó¼¸¸ö´«¸ÐÆ÷ºÍÖ´ÐÐÆ÷£¬°üÀ¨ÉãÏñÍ·ºÍArduino¿ª·¢°å¡£

Ä㻹ÐèÒªGit£¨git-core DebianÈí¼þ°ü£©£¬ÒÔ±ã´Ó±¾ÊéÌṩµÄÔ´´úÂëÖи´Öƿ⡣ͬÑù£¬ÄãÐèÒª¾ß±¸BashÃüÁîÐС¢GNU/Linux¹¤¾ßµÄ»ù±¾ÖªÊ¶ºÍһЩC/C++±à³Ì¼¼ÇÉ¡£

Ä¿±ê¶ÁÕß

±¾ÊéµÄÄ¿±ê¶ÁÕß°üÀ¨ËùÓлúÆ÷ÈË¿ª·¢ÈËÔ±£¬¿ÉÒÔÊdzõѧÕßÒ²¿ÉÒÔÊÇרҵÈËÔ±¡£Ëüº­¸ÇÁËÕû¸ö»úÆ÷ÈËϵͳµÄ¸÷¸ö·½Ã棬չʾÁËROSϵͳÈçºÎ°ïÖúÍê³Éʹ»úÆ÷ÈËÕæÕý×ÔÖ÷»¯µÄÈÎÎñ¡£¶ÔÓÚÌý˵¹ýÈ´´ÓδʹÓùýROSµÄ»úÆ÷ÈËרҵѧÉú»ò¿ÆÑÐÈËÔ±À´Ëµ£¬±¾Ê齫ÊǷdz£ÓÐÒæµÄ¡£ROS³õѧÕßÄÜ´Ó±¾ÊéÖÐѧϰROSÈí¼þ¿ò¼ÜµÄºÜ¶àÏȽøÀíÄîºÍ¹¤¾ß¡£²»½öÈç´Ë£¬¾­³£Ê¹ÓÃROSµÄÓû§Ò²¿ÉÄÜ´ÓijЩÕ½ÚÖÐѧϰµ½Ò»Ð©Ð¶«Î÷¡£µ±È»£¬Ö»ÓÐǰ3ÕÂÊÇ´¿´âΪ³õѧÕß×¼±¸µÄ£¬ËùÒÔÄÇЩÒѾ­Ê¹ÓùýROSµÄÈË¿ÉÒÔÌø¹ýÕⲿ·ÖÖ±½ÓÔĶÁºóÃæµÄÕ½ڡ£

Ô´´úÂëºÍ²ÊɫͼƬÏÂÔØ

¿ÉÒÔ´ÓÄãÔÚhttp://www.packtpub.comÖеÄÕË»§ÏÂÔØËùÓÐÒѹºÂòµÄPackt Publishing³ö°æµÄÊé¼®µÄʾÀý´úÂëÎļþ¡£Èç¹ûÄãÔÚÆäËûµØ·½¹ºÂòÁËÕâ±¾Ê飬¿ÉÒÔ·ÃÎÊhttp://www.packtpub.com/support²¢×¢²á£¬Îļþ»áͨ¹ýµç×ÓÓʼþÖ±½Ó·¢Ë͸øÄã¡£»¹¿ÉÒÔ´Óhttps://github.com/AaronMR/ROS_Book_HydroÏÂÔØÔ´´úÂëÎļþ¡£

ÎÒÃÇͬʱÌṩÁ˱¾ÊéËùÓвÊÉ«µÄÆÁÄ»½ØÍ¼¡¢¶Ô»°¿òµÄPDFÎļþ£¬ÕâЩ²ÊɫͼƬÄܹ»¸üºÃµØ°ïÖúÄãÀí½âÊä³öµÄ±ä»¯¡£¿ÉÒÔ´Óhttp://www.packtpub.com/sites/default/files/downloads/

7580OS_ColorImages.pdfÏÂÔØÕâ¸öÎļþ¡£



About the Authors¡¡¡¡×÷Õß¼ò½é

Enrique Fern¨¢ndezÔÚÀ­Ë¹ÅÁ¶ûÂí˹´óѧ»ñµÃ¼ÆËã»ú¹¤³Ì²©Ê¿Ñ§Î»£¬Ä¿Ç°ÊÇClearpath Robotics¹«Ë¾¸ß¼¶»úÆ÷È˹¤³Ìʦ¡£2009ÄêËûÍê³ÉÁ˹ØÓÚSLAMµÄ˶ʿѧλÂÛÎÄ¡£2013ÄêËûµÄ²©Ê¿ÂÛÎĽâ¾öÁË×ÔÖ÷ˮϻ¬ÏèÆ÷£¨AUG£©µÄ·¾¶¹æ»®ÎÊÌâ¡£ÄǶÎʱ¼ä£¬Ëû»¹Ñо¿Á˼ÆËã»úÊÓ¾õ¡¢È˹¤ÖÇÄÜÒÔ¼°ÆäËû»úÆ÷ÈËѧ¿ÎÌ⣬ÀýÈçºÕÂÞÄÉ´óѧµÄCIRS/ViCOROBÑо¿ÊµÑéÊÒAUVµÄ¹ßÐÔµ¼º½ÏµÍ³ºÍÊÓ¾õSLAM¡£ËûÔÚ2012Äê²Î¼ÓÁËÅ·ÖÞѧÉú×ÔÖ÷ˮϺ½ÐÐÆ÷Éè¼ÆÌôÕ½Èü£¨Student Autonomous Underwater Challenge-Europe£¬SAUC-E£©²¢»ñ½±£¬ÔÚ2013Äê×÷ΪºÏ×÷Õß²ÎÓëÁËSAUC-E¡£

»ñµÃ²©Ê¿Ñ§Î»ºó£¬Enrique×÷Ϊ¸ß¼¶»úÆ÷È˹¤³ÌʦÔÚ2013Äê6Ô¼ÓÈëPAL Robotics¹«Ë¾µÄ×ÔÖ÷µ¼º½²¿ÃÅ¡£ÔÚÄÇÀËû¿ª·¢ÁËÓÃÓÚREEM¡¢REEM-CºÍÒÆ¶¯»úÆ÷ÈËÒÔ¼°Ïà¹ØÏîÄ¿µÄÈí¼þ£¬ÈçʹÓÃROS¿ò¼ÜµÄStockbot¡£ËûµÄÑо¿·½Ïò°üÀ¨Ô˶¯¹æ»®£¨Â·¾¶¹æ»®ºÍÒÆ¶¯»úÆ÷ÈË¿ØÖÆ£©¡¢»úÆ÷È˶¨Î»ºÍSLAM¡£ÔÚ2015Ä꣬Ëû×÷Ϊ¸ß¼¶×ÔÖ÷ϵͳ¿ª·¢ÈËÔ±¼ÓÃËClearpath Robotics¹«Ë¾µÄ×ÔÖ÷ϵͳ²¿ÃÅ´ÓÊÂSLAMÏà¹Ø¹¤×÷¡£

ÔÚѧÊõ·½Ã棬Enrique·¢±íÁË¶àÆª»áÒéÂÛÎÄ£¬ÆäÖÐÁ½ÆªÓÚ2011Äê·¢±íÔÚ¡¶International Conference of Robotics and Automation¡·£¨ICRA£©ÉÏ¡£ËûÊÇPackt Publishing³ö°æµÄµÚ1°æ¡¶ROS»úÆ÷È˳ÌÐòÉè¼Æ¡·ºÍÆäËûһЩÊ鲿·ÖÕ½ڵÄ×÷Õß¡£ËûµÄ˶ʿѧλÂÛÎÄÊǹØÓÚÊÒÄÚ»úÆ÷È˵ÄFastSLAMËã·¨£¬´Ë»úÆ÷ÈË×°±¸ÁËSICK¼¤¹âɨÃèÒÇÒÔ¼°Pioneer²î¶¯Æ½Ì¨µÄÂÖʽÀï³Ì¼Æ¡£ËûµÄ²©Ê¿Ñ§Î»ÂÛÎÄÊǹØÓÚAUGµÄ·¾¶¹æ»®Ëã·¨ºÍ¹¤¾ß¡£Ëû»¹ÓµÓеç×ÓºÍǶÈëʽϵͳ£¨ÈçPC104ºÍArduino£©µÄ¿ª·¢¾­Ñé¡£ËûµÄÑо¿±³¾°°üÀ¨SLAM¡¢¼ÆËã»úÊÓ¾õ¡¢Â·¾¶¹æ»®¡¢ÓÅ»¯¡¢»úÆ÷ÈËѧºÍÈ˹¤ÖÇÄÜ¡£


ÎÒÒª¸ÐлÕâ±¾ÊéµÄºÏÖøÕߣ¬¸ÐлËûÃÇΪÍê³ÉÕâ±¾ÊéËù¸¶³öµÄŬÁ¦ÒÔ¼°ÌṩÁËÎÞÊýʾÀýµÄ´úÂë¡£ÎÒ»¹Òª¸Ðл²©Ê¿ÂÛÎÄÆÚ¼ä´óѧÖÇÄÜϵͳºÍ¼ÆË㹤³ÌÑо¿Ëù£¨University Institute of Intelligent Systems and Computational Engineering£¬SIANI£©ºÍˮϻúÆ÷ÈËÑо¿ÖÐÐÄ£¨Center of Underwater Robotics Research£¬CIRS/ViCOROB£©µÄÑо¿Ð¡×é³ÉÔ±¡£ÎÒÒ²Òª¸ÐлÔÚPAL»úÆ÷È˹«Ë¾µÄͬÊ£¬ÔÚÄÇÀïÎÒѧµ½ºÜ¶à¹ØÓÚROS¡¢»úÆ÷ÈËÔ˶¯ÒÔ¼°·ÂÈËË«×ã»úÆ÷È˵Ä֪ʶ£¬²»½öÓÐÈí¼þ£¬»¹Óеç×ÓºÍÓ²¼þÉè¼Æ¡£×îºó£¬ÎÒÒª¸ÐлÎҵļÒÈ˺ÍÅóÓѵİïÖúÓëÖ§³Ö¡£

Luis S¨¢nchez CrespoÔÚÀ­Ë¹ÅÁ¶ûÂí˹´óѧ»ñµÃÁ˵ç×ÓÓëµçÐŹ¤³ÌµÄ˫˶ʿѧλ¡£ËûÔøÔÚ¼¼Êõ¿ª·¢ºÍ´´ÐÂÑо¿Ëù£¨IDETIC£©¡¢¼ÓÄÇÀûȺµºº£Ñóƽ̨£¨PLOCAN£©ºÍÓ¦ÓÃ΢µç×ÓÑо¿Ëù£¨IUMA£©Ó벻ͬµÄÑо¿Ð¡×éºÏ×÷£¬½øÐг¬·Ö±æÂÊËã·¨³ÉÏñÑо¿¡£

ËûµÄרҵÐËȤ°üÀ¨Ó¦ÓÃÓÚ»úÆ÷ÈËϵͳµÄ¼ÆËã»úÊÓ¾õ¡¢ÐźŴ¦ÀíºÍµç×ÓÉè¼Æ¡£Òò´Ë£¬Ëû¼ÓÈëÁËAVORAÍŶӣ¬ÕâÅúÄêÇáµÄ¹¤³ÌʦºÍѧÉú´ÓÁ㿪ʼ´ÓÊÂ×ÔÖ÷ˮϺ½ÐÐÆ÷£¨AUV£©µÄ¿ª·¢¹¤×÷¡£ÔÚÕâ¸öÏîÄ¿ÖУ¬Luis¿ªÊ¼¿ª·¢ÉùѧºÍ¼ÆËã»úÊÓ¾õϵͳ£¬ÓÃÓÚÌáÈ¡²»Í¬´«¸ÐÆ÷µÄÐÅÏ¢£¬ÀýÈçË®ÌýÆ÷¡¢ÉùÄźÍÉãÏñÍ·¡£

ÒÀÍк£Ñó¼¼ÊõµÄÇ¿´ó±³¾°£¬LuisÓëÈ˺Ï×÷´´°ìÁËÒ»¼Òеijõ´´¹«Ë¾Subsea Mechatronics£¬ÖÂÁ¦ÓÚΪˮÏ»·¾³¿ª·¢Ò£¿Ø²Ù×÷ºÍ×ÔÖ÷º½ÐÐÆ÷¡£

ÏÂÃæÊǺ£Ñó¼¼Êõ¹¤³ÌʦºÍÆóÒµ¼Ò£¨LPA Fabrika£ºGran Canaria Maker SpaceµÄÁªºÏ´´Ê¼È˺ÍÖÆÔìÉÌ£©Dario Sosa Cabrera¶ÔLuisµÄÆÀ¼Û£º

¡°ËûºÜÈÈÇ飬ÊÇÒ»¸ö¶àѧ¿ÆµÄ¹¤³Ìʦ¡£Ëû¶Ô¹¤×÷¸ºÔð¡£Ëû¿ÉÒÔ×ÔÎÒ¹ÜÀí£¬²¢³Ðµ£Ò»¸öÍŶÓÁìµ¼ÕßµÄÔðÈΣ¬ÈçÔÚSAUC-E¾ºÈüÖÐÁìµ¼ÁËAVORAÍŶӡ£ËûÔÚµç×Ӻ͵çÐÅÁìÓòµÄ±³¾°ÈÃÆä¾ß±¸´ÓÐźŴ¦ÀíºÍÈí¼þµ½µç×ÓÉè¼ÆºÍÖÆÔìµÄ¹ã·º×¨ÒµÖªÊ¶¡£¡±

Luis×÷Ϊ¼¼ÊõÉóУÕß²ÎÓëÁËPackt Publishing³ö°æµÄµÚ1°æ¡¶ROS»úÆ÷È˳ÌÐòÉè¼Æ¡·µÄÏà¹Ø¹¤×÷¡£


Ê×ÏÈ£¬ÎÒÒª¸ÐлAaron¡¢AnilÒÔ¼°EnriqueÑûÇëÎÒ²ÎÓë±àдÕâ±¾Êé¡£ºÍËûÃÇÒ»Æð¹¤×÷·Ç³£¿ìÀÖ¡£Í¬Ê±£¬ÎÒÒ²Òª¸ÐлˮÏ»úµçÍŶӹØÓÚÖØÐÍˮϻúÆ÷È˵ķḻ¾­Ñ飬ÕâЩÄêÎÒÃÇÒ»Æð³É³¤¡£ÎÒ±ØÐëÌáµ½LPA Fabrika£ºGran Canaria Maker Space£¬ËûÃDZ¸¿ÎºÍ½²ÊÚ½ÌÓý»úÆ÷È˼°¼¼ÊõÏîÄ¿¼«¸»ÈÈÇ飬ÓëËûÃǹ²Ïí¹¤×÷»·¾³Ò²·Ç³£ÁîÈ˼¤¶¯¡£

×îºó£¬ÎÒÒª¸ÐлÎҵļÒÈ˺ÍÅ®ÅóÓѶÔÎÒ²ÎÓëµÄÿ¸öÏîÄ¿µÄ´óÁ¦Ö§³ÖºÍ¹ÄÀø¡£

Anil MahtaniÊÇÒ»Ãû´ÓÊÂˮϻúÆ÷È˹¤×÷5ÄêµÄ¼ÆËã»ú¿ÆÑ§¼Ò¡£ËûµÚÒ»´ÎÔÚ¸ÃÁìÓò¹¤×÷ÊÇÔÚÍê³É˶ʿÂÛÎÄÆÚ¼äΪµÍ³É±¾ROV¿ª·¢Èí¼þ¼Ü¹¹¡£ÔÚ´ËÆÚ¼ä£¬ËûÒ²³ÉΪAVORAµÄÍŶÓÁìµ¼ÕߺÍÖ÷Òª¿ª·¢ÈËÔ±£¬Õâ¸öÍŶӵĸßУѧÉúÉè¼ÆºÍ¿ª·¢ÁËÒ»¸ö×ÔÖ÷ˮϺ½ÐÐÆ÷²¢²Î¼ÓÁË2012ÄêµÄSAUC-E¡£Í¬Ä꣬ËûÍê³ÉÁËÂÛÎIJ¢»ñµÃÁËÀ­Ë¹ÅÁ¶ûÂí˹´óѧµÄ¼ÆËã»ú¿ÆÑ§Ë¶Ê¿Ñ§Î»¡£´Ëºó²»¾Ã£¬Ëû³ÉΪSeeByte¹«Ë¾µÄÈí¼þ¹¤³Ìʦ£¬Õâ¼Ò¹«Ë¾ÊÇË®ÏÂϵͳÖÇÄÜÈí¼þ½â¾ö·½°¸µÄÈ«ÇòÁìµ¼Õß¡£

ÔÚSeeByte¹«Ë¾¹¤×÷ÆÚ¼ä£¬Anil²ÎÓëÁ˾ü·½¡¢Ê¯ÓͺÍÌìÈ»Æø¹«Ë¾µÄһЩ°ë×ÔÖ÷ºÍ×ÔÖ÷Ë®ÏÂϵͳµÄºËÐÄ¿ª·¢¡£ÔÚÕâЩÏîÄ¿ÖУ¬Ëû»ý¼«²ÎÓë×ÔÖ÷ϵͳ¿ª·¢¡¢·Ö²¼Ê½Èí¼þÌåϵ½á¹¹Éè¼ÆºÍµ×²ãÈí¼þ¿ª·¢£¬Í¬Ê±Ò²ÎªÇ°ÊÓÉùÄÅͼÏñÌṩ¼ÆËã»úÊÓ¾õ½â¾ö·½°¸¡£Ëû»¹»ñµÃÁËÏîÄ¿¾­Àíְ룬¹ÜÀíÒ»¸ö¿ª·¢ºÍά»¤ÄÚºËC++¿âµÄ¹¤³ÌʦÍŶӡ£

ËûµÄרҵÐËȤÖ÷Òª°üÀ¨Èí¼þ¹¤³Ì¡¢Ëã·¨¡¢·Ö²¼Ê½ÏµÍ³¡¢ÍøÂçºÍ²Ù×÷ϵͳ¡£AnilÔÚ»úÆ÷ÈË·½ÏòÖ÷Òª¸ºÔðÌṩ¸ßЧºÍ½¡×³µÄÈí¼þ½â¾ö·½°¸£¬²»½ö½â¾öµ±Ç°´æÔÚµÄÎÊÌ⣬»¹Ô¤¼ûδÀ´µÄÎÊÌâ»ò¿ÉÄܵĸĽø¡£¼øÓÚËûµÄ¾­Ñ飬ËûÔÚ¼ÆËã»úÊÓ¾õ¡¢»úÆ÷ѧϰºÍ¿ØÖÆÎÊÌâÉÏÒ²ÓжÀÌØµÄ¼û½â¡£Anil¶ÔDIYºÍµç×ÓѧÓÐÐËȤ£¬²¢ÇÒ¿ª·¢ÁËһЩArduino¿â»ØÀ¡ÉçÇø¡£


Ê×ÏÈ£¬ÎÒÒª¸ÐлÎҵļÒÈ˺ÍÅóÓѵÄÖ§³Ö£¬ËûÃÇ×ÜÊÇÔÚÎÒ×îÐèÒªµÄʱºò°ïÖúÎÒ¡£ÎÒÒ²Òª¸ÐлÎÒµÄͬʺÍÅóÓÑDavid Rubio Vidal¡¢Emilio Miguel¨¢?ez Mart¨ªnºÍJohn Brydon¸øÎÒ×î´óµÄÖ§³Ö£¬ËûÃÇÒÔרҵµÄ·½Ê½½ÌÎҺܶà֪ʶ¡£ÎÒ»¹Òª¸ÐлÎÒÔÚSeeByteºÍAVORAÍŶӵÄͬÊ£¬ÕâЩÄê´ÓËûÃÇÄÇÀïѧϰ²¢¾­ÀúºÜ¶à¡£×îºó£¬ÎÒÒªÌØ±ð¸ÐлJorge Cabrera G¨¢mez£¬ËûµÄÖ¸µ¼ºÍ½¨Òé³É¾ÍÁËÎÒ×Ô¼º´ÓδÏëÏóµ½µÄÖ°ÒµÉúÑÄ¡£

Aaron MartinezÊÇÊý×Ö»¯ÖÆÔìÁìÓòµÄµçÄÔ¹¤³Ìʦ¡¢ÆóÒµ¼ÒºÍר¼Ò¡£ËûÓÚ2010ÄêÔÚÀ­Ë¹ÅÁ¶ûÂí˹´óѧµÄInstituto Universitario de Cienciasy Tecnologias Ciberneticas£¨IUCTC£©Íê³É˶ʿÂÛÎÄ¡£ËûÔÚÔ¶³Ì¼à¿ØÁìÓòʹÓóÁ½þʽÉ豸ºÍ»úÆ÷ÈËÆ½Ì¨×¼±¸Ë¶Ê¿ÂÛÎÄ¡£µÃµ½Ñ§Î»ºó£¬Ëû²Î¼ÓÁËÔڰµØÀûÁÖ´Ä¿ªÆÕÀÕ´óѧÑо¿ËùµÄ»úÆ÷ÈËѧʵϰ¼Æ»®¡£ÔÚʵϰÆÚ¼ä£¬Ëû×÷ΪÍŶӵÄһԱʹÓÃROSºÍµ¼º½°ü¼¯½øÐÐÒÆ¶¯Æ½Ì¨¿ª·¢¡£Ö®ºó£¬Ëû²ÎÓëÁËÓйػúÆ÷È˵ÄÏîÄ¿£¬ÆäÖÐÒ»¸öÊÇÀ­Ë¹ÅÁ¶ûÂí˹´óѧµÄAVORAÏîÄ¿¡£ÔÚÕâ¸öÏîÄ¿ÖУ¬Ëû²ÎÓë×ÔÖ÷ˮϺ½ÐÐÆ÷ÖÆ×÷£¬²¢²ÎÓëÒâ´óÀûµÄSAUC-E¡£2012Ä꣬Ëû¸ºÔðά»¤Õâ¸öÏîÄ¿£»2013Ä꣬Ëû°ïÖú´ÓROSÏò»úÆ÷ÈËÆ½Ì¨ÒÆÖ²µ¼º½°ü¼¯ºÍÆäËûËã·¨¡£

×î½ü£¬AaronÓëÈ˹²Í¬´´Á¢ÁËÒ»¼ÒÃûΪSubSeaMechatronics SLµÄ¹«Ë¾¡£Õâ¼Ò¹«Ë¾´ÓÊÂÓëˮϻúÆ÷È˺ÍÒ£¿ØÏµÍ³Ïà¹ØµÄÏîÄ¿£¬»¹Éè¼ÆºÍÖÆÔìˮϴ«¸ÐÆ÷¡£¹«Ë¾µÄÖ÷ҪĿ±êÊÇ¿ª·¢ÓÃÓÚÑз¢Ô­ÐͺÍÖØÐÍ»úеÊֵ͍Öƽâ¾ö·½°¸¡£

AaronÓÐÐí¶àÁìÓòµÄ¾­Ñ飬±ÈÈç±à³Ì¡¢»úÆ÷ÈË¡¢»úµçÒ»Ì廯¡¢Êý×Ö»¯ÖÆÔìÒÔ¼°Arduino¡¢BeagleBone¡¢·þÎñÆ÷ºÍ¼¤¹âÀ×´ïµÈÉ豸¡£Èç½ñ£¬ËûÔÚSubSeaMechatronics SL¹«Ë¾´ÓÊÂˮϺͿÕÖл·¾³µÄ»úÆ÷ÈËÆ½Ì¨Éè¼Æ¡£


ÎÒÒª¸ÐлÎÒµÄÅ®ÅóÓÑ£¬ËýÔÚÎÒдÕâ±¾Êéʱ¸øÎÒÖ§³ÖÒÔ¼°¸øÎÒ¼ÌÐø³É³¤µÄ¶¯Á¦¡£ÎÒ»¹Òª¸ÐлDonato Monopoli£¨¼ÓÄÇÀûȺµº¼¼ÊõÑо¿Ëù£¨ITC£©ÉúÎïҽѧ¹¤³Ì²¿ÃŵÄÖ÷¹Ü£©£¬ÒÔ¼°ITCËùÓеŤ×÷ÈËÔ±£¬¸ÐлËûÃÇʹÎÒ¶®µÃÊý×ÖÖÆÔì¡¢»úеÒÔ¼°×éÖ¯¹¤³Ì£¬ÎÒÔڴ˶ȹýÁËÉúÃüÖÐ×îÃÀºÃµÄʱ¹â¡£

¸ÐлÎÒ´óѧµÄͬÊ£¬ÌرðÊÇAlexis Quesada£¬Ëû¸øÁËÎÒÔÚ×¼±¸Ë¶Ê¿ÂÛÎÄʱ´´½¨ÎÒµÚÒ»¸ö»úÆ÷È˵Ļú»á¡£ºÍËûÃÇÒ»Æð¹¤×÷£¬Ê¹ÎÒѧϰµ½ºÜ¶à¹ØÓÚ»úÆ÷È˵Ä֪ʶ¡£

×îºó£¬ÎÒÒª¸Ðл¼ÒÈ˺ÍÅóÓѵİïÖúÓëÖ§³Ö¡£



About the Reviewers¡¡¡¡ÉóУÕß¼ò½é

Piotr Gr¨®dekÊÇһλ¶Ô¼ÆËã»úÊÓ¾õºÍͼÏñ´¦Àí¸ÐÐËȤµÄC++³ÌÐòÔ±¡£ËûÔø¾­ÊÇǶÈëʽ³ÌÐòÔ±£¬ÏÖÔÚ¹¤×÷ÓÚÒøÐС£ËûÊÇ¿ªÔ´ÓÎÏ·ºÍÎÞÈ˼ÝÊ»Æû³µµÄ¿ª·¢Õß¡£¿ÕÏÐʱ¼äËûϲ»¶Åܲ½¡¢´ò±ÚÇòºÍÔĶÁ¡£

Akihiko HONDAÊǿռä»úÆ÷È˹¤³Ìʦ¡£ËûÓÚ2012ÄêÔÚ¶«¾©¹¤Òµ´óѧÍê³ÉÁË˶ʿÂÛÎÄ¡£Ä¿Ç°ËûÕýÔÚ¶«¾©¹¤Òµ´óѧ½øÐв©Ê¿¿Î³Ìѧϰ¡£

ËûµÄÑо¿ÐËȤ°üÀ¨Óë¿Õ¼ä»úÆ÷È˵ÄÔ¶³Ì²Ù×÷ºÍ×Ô¶¯»¯Ï໥¶ÔÓ¦µÄÁé»î»ò¿É±äÐεIJÄÁÏ¡£ËûµÄÒ»¸öÄ¿±êÊÇͨ¹ý¿ª·¢¸üºÃµÄ×Ô¶¯¿ØÖÆÏµÍ³Ìá¸ß·É´¬ÔÚÌ«¿ÕµÄÐÔÄܺÍÎȶ¨ÐÔ¡£ÔÚÔçÆÚµÄÑо¿ÖУ¬Ëû²ÎÓëÁ˰üº¬´óÐÍÌ«ÑôÄÜµç³ØÕóÁкÍÓÃÓÚ²¶×½¹ú¼Ê¿Õ¼äÕ¾µÄ¿Õ¼ä»úе±ÛµÄµØÇò¹Û²âÎÀÐǵŤ×÷¡£Ä¿Ç°£¬Ëû¼Æ»®½«ÆäÑо¿³É¹ûÓ¦ÓÃÓÚ¿Õ¼äÌ«ÑôÄܵçÁ¦ÏµÍ³¡¢ÐÐÐÇ̽²â³µµÈ¡£Ëû×÷Ϊ×î¼Ñ²ÎÈüÈË»ñ½±£¬²¢ÔÚÈÕ±¾ÌìÎÄѧ»á¾Ù°ìµÄJSFÎÀÐÇÉè¼Æ¾ºÈüÖÐÒòÌá³öʹÓÃÆäÑо¿µÄÒ»¸öÐÂÐÍ̽Ë÷ÓîÖæ·É´¬¶ø»ñ½±¡£

ËûÔÚ´óѧµÄÑо¿¹ý³ÌÖУ¬»¹²ÎÓëÁËÓÉÈÕ±¾Ì«¿Õ·¢Õ¹ÊðÖ¸»ÓµÄһЩÏîÄ¿¡£ÔÚJEM£¨REX-J£©ÏîÄ¿µÄ»úÆ÷ÈËʵÑéÖУ¬Ëû²ÎÓëÁËÔÚ¹ìµÀÉϵÄʵÑéÉ豸֧³Ö²Ù×÷²¢ÔÚÑо¿ÖлñµÃÁé¸Ð¡£Ëû»¹²Î¼ÓÁËÒ»¸öΪÓԱ¿ª·¢¿É´©´÷»úе±ÛµÄÏîÄ¿²¢¿ª·¢ÁËÊÖ¶¯¿ØÖÆÏµÍ³¡£Ä¿Ç°ËûÕý¹¤×÷ÓÚÁ½¸ö̽Ë÷»úÆ÷ÈËÏîÄ¿¡£ÆäÖÐÒ»¸öÊÇ¿ª·¢ÃûΪ¡°KENAGE¡±µÄ¿É±äÐεÄ̽²â³µ£¬ÓÃÓÚ¿Ë·þÔÂÇòºÍ»ðÐÇÌØÊâµÄÆé᫵ØÐΡ£Õâ¸ö̽²â³µÕýÔÚʹÓÃGAZEBO·ÂÕæÆ÷½øÐпÉÐÐÐÔʵÑé²âÊÔ¡£ÔÚÁíÒ»¸öÏîÄ¿ÖУ¬ËûΪJumpingScouter¿ª·¢ÁËÒ»¸ö»·¾³Ê¶±ðϵͳ¡£

2013Ä꣬Ëû²ÎÓëÁËÈøÀû´óѧµÄSMART̽²âÆ÷ÏîÄ¿£¬¿ª·¢»·¾³±£»¤ºÍʶ±ðϵͳ¡£Í¬Ê±£¬ËûÒ²²ÎÓëÁË̽²â³µÔÚÕæÊµ»·¾³Öмì²âʵ¼Ê¹¦ÄܵÄÏÖ³¡ÊµÑé¡£


ÎÒÒª¸ÐлJAXAµÄHiroki KATO¸øÎÒ´ò¿ªÁËROSµÄ´óÃŲ¢¶ÔÎÒµÄÑо¿¸øÓ豦¹ó½¨Òé¡£ÎÒ»¹Òª¸ÐлMitsushige ODA½ÌÊÚ¡¢Hiroki NAKANISHI½ÌÊÚÒÔ¼°¶«¾©¹¤Òµ´óѧ¿Õ¼ä»úÆ÷ÈËʵÑéÊÒµÄͬÊ¡£ËûÃÇ·ÖÏíÁ˿ռä»úÆ÷È˵ÄÃÀºÃǰ¾°£¬ÌṩÁ˽¨Ò飬²¢Ö§³ÖÎÒÔÚÑо¿ÖÐʹÓÃROSʵÏÖËüÃÇ¡£ÎÒÒ²Òª¸ÐÐ»ÈøÀû´óѧSTARʵÑéÊҵĽÌÊÚºÍͬʸøÎÒÌṩÔÚÕæÊµ»·¾³ÖÐʹÓÃROSµÄÖØÒª½¨Òé¡£ÎÒÌØ±ð¸ÐлÀ´×Ô´ó¼ÓÄÇÀûµºµÄÅóÓѸøÎÒ½éÉÜÕâÁîÈËÕñ·ÜµÄ¹¤×÷¡£

×îºó£¬ÎÒÒª¸ÐлÎҵļÒÈËYoshihiko¡¢NobukoºÍAyaka¶ÔÎÒµÄÉú»îºÍÃÎÏëµÄÖ§³Ö£¬Í¬Ê±¸ÐлŮÅóÓѶÔÎÒµÄÀí½â¡£

Matthieu KellerÊÇһλÈȰ®¼¼ÊõºÍ¼ÆËã»ú¿ÆÑ§µÄ·¨¹ú¹¤³Ìʦ¡£Ëû½ÓÊܵĽÌÓýÉæ¼°¼ÆËãºÍ»úÆ÷ÈËѧ£¬ÕâʹËû³ÉΪһÃû°®ºÃÕß¡£ËûÉóУÁ˱¾ÊéµÄµÚ1°æ¡£

Aridane J. Sarrionandia de Le¨®nÑо¿¼ÆËã»ú¿ÆÑ§£¬²¢¶Ô»úÆ÷ÈËѧºÍ×ÔÖ÷º½ÐÐÆ÷Óзdz£´óµÄÐËȤ¡£ËûµÄѧλ¿ÎÌâÊǹØÓÚʹÓÃÉùÄŵÄˮϵØÍ¼¹¹½¨£¬Îª´ËËûÔÚ×ÔÖ÷ˮϺ½ÐÐÆ÷ÖÐʹÓÃROS¹¤×÷¡£ËûÓÐ×ÔÖ÷ϵͳºÍROSµÄ¾­Ñé¡£ËûÊìϤOpenCVºÍPCL£¬Ä¿Ç°ÕýÔÚ¿ª·¢×ÔÖ÷Ë®Ãæº½ÐÐÆ÷µÄ¿ØÖÆÏµÍ³¡£


ÎÒÒª¸ÐлLuisºÍAaron¸øÎÒÕâ¸ö»ú»áÉóУÕâ±¾Ê顣ͬʱ£¬ÎÒÒª¸ÐлÀ­Ë¹ÅÁ¶ûÂí˹´óѧµÄAVORAÍŶӣ¬ÌرðÊÇAaron¡¢LuisºÍEnrique£¬ËûÃǸøÎÒ½éÉÜÁËROSµÄÉñÆæÖ®´¦£¬²¢°ïÖúÎÒ̽Ë÷×ÔÖ÷º½ÐÐÆ÷ÊÀ½ç¡£¸ÐлÎҵĵ¼Ê¦Jorge Cabrera G¨¢mez£¬ËûÈÃÎÒÓлú»á³ÉΪAVORAÍŶӵÄÒ»Ô±¡£

×îºó£¬ÎÒÒª¸ÐлÎҵļÒÈ˺ÍÅóÓÑÔÚÎÒÉú»îÖгöÏÖÎÊÌâʱ֧³ÖÎÒ£¬ÌرðÒª¸ÐлEva¾ÀÕýÎÒ²»ÇåÎúµÄÓï¾ä¡£



Contents¡¡¡¡Ä¿¡¡Â¼

ÍÆ¼öÐòÒ»

ÍÆ¼öÐò¶þ

ÒëÕßÐò

ǰÑÔ

×÷Õß¼ò½é

ÉóУÕß¼ò½é

µÚ1Õ¡¡ROS HydroϵͳÈëÃÅ ?1

1.1¡¡PC°²×°½Ì³Ì ?3

1.2¡¡Ê¹ÓÃÈí¼þ¿â°²×°ROS Hydro ?3

1.2.1 ÅäÖÃUbuntuÈí¼þ¿â ?4

1.2.2 Ìí¼ÓÈí¼þ¿âµ½sources.listÎļþÖÐ ?4

1.2.3 ÉèÖÃÃÜÔ¿ ?5

1.2.4 °²×°ROS ?5

1.2.5 ³õʼ»¯rosdep ?6

1.2.6 ÅäÖû·¾³ ?6

1.2.7 °²×°rosinstall ?7

1.3¡¡ÈçºÎ°²×°VirtualBoxºÍUbuntu ?8

1.3.1 ÏÂÔØVirtualBox ?8

1.3.2 ´´½¨ÐéÄâ»ú ?8

1.4 ÔÚBeagleBone BlackÉϰ²×°ROS Hydro ?11

1.4.1 ×¼±¸¹¤×÷ ?12

1.4.2 ÅäÖÃÖ÷»úºÍsource.listÎļþ ?13

1.4.3 ÉèÖÃÃÜÔ¿ ?14

1.4.4 °²×°ROS¹¦Äܰü ?14

1.4.5 ³õʼ»¯rosdep ?15

1.4.6 ÔÚBeagleBone BlackÖÐÅäÖû·¾³ ?15

1.4.7 ÔÚBeagleBone BlackÖа²×°rosinstall ?15

1.5¡¡±¾ÕÂС½á ?15

µÚ2Õ¡¡ROSϵͳ¼Ü¹¹¼°¸ÅÄî ?16

2.1¡¡Àí½âROSÎļþϵͳ¼¶ ?16

2.1.1 ¹¤×÷¿Õ¼ä ?17

2.1.2 ¹¦Äܰü ?18

2.1.3 ×ۺϹ¦Äܰü ?19

2.1.4 ÏûÏ¢ ?20

2.1.5 ·þÎñ ?21

2.2¡¡Àí½âROS¼ÆËãͼ¼¶ ?22

2.2.1 ½ÚµãÓënodelet ?23

2.2.2 Ö÷Ìâ ?24

2.2.3 ·þÎñ ?25

2.2.4 ÏûÏ¢ ?26

2.2.5 ÏûÏ¢¼Ç¼°ü ?26

2.2.6 ½Úµã¹ÜÀíÆ÷ ?26

2.2.7 ²ÎÊý·þÎñÆ÷ ?27

2.3¡¡Àí½âROS¿ªÔ´ÉçÇø¼¶ ?27

2.4¡¡ROSϵͳÊÔÓÃÁ·Ï° ?28

2.4.1 ROSÎļþϵͳµ¼ÀÀ ?28

2.4.2 ´´½¨¹¤×÷¿Õ¼ä ?29

2.4.3 ´´½¨ROS¹¦ÄܰüºÍ×ۺϹ¦Äܰü ?30

2.4.4 ±àÒëROS¹¦Äܰü ?30

2.4.5 ʹÓÃROS½Úµã ?31

2.4.6 ÈçºÎʹÓÃÖ÷ÌâÓë½Úµã½»»¥ ?33

2.4.7 ÈçºÎʹÓ÷þÎñ ?36

2.4.8 ʹÓòÎÊý·þÎñÆ÷ ?38

2.4.9 ´´½¨½Úµã ?38

2.4.10¡¡±àÒë½Úµã ?41

2.4.11 ´´½¨msgºÍsrvÎļþ ?42

2.4.12 ʹÓÃн¨µÄsrvºÍmsgÎļþ ?44

2.4.13 Æô¶¯Îļþ ?48

2.4.14 ¶¯Ì¬²ÎÊý ?50

2.5¡¡±¾ÕÂС½á ?54

µÚ3Õ¡¡¿ÉÊÓ»¯ºÍµ÷ÊÔ¹¤¾ß ?55

3.1¡¡µ÷ÊÔROS½Úµã ?57

3.1.1 ʹÓÃgdbµ÷ÊÔÆ÷µ÷ÊÔROS½Úµã ?57

3.1.2 ROS½ÚµãÆô¶¯Ê±µ÷ÓÃgdbµ÷ÊÔÆ÷ ?58

3.1.3 ROS½ÚµãÆô¶¯Ê±µ÷ÓÃvalgrind·ÖÎö½Úµã ?59

3.1.4 ÉèÖÃROS½ÚµãcoreÎļþת´¢ ?59

3.2¡¡ÈÕÖ¾ÐÅÏ¢ ?59

3.2.1 Êä³öÈÕÖ¾ÐÅÏ¢ ?59

3.2.2 ÉèÖõ÷ÊÔÐÅÏ¢¼¶±ð ?60

3.2.3 ÎªÌØ¶¨½ÚµãÅäÖõ÷ÊÔÐÅÏ¢¼¶±ð ?61

3.2.4 ÐÅÏ¢ÃüÃû ?62

3.2.5 °´Ìõ¼þÏÔʾÐÅÏ¢Óë¹ýÂËÐÅÏ¢ ?62

3.2.6 ÏÔʾÐÅÏ¢µÄ·½Ê½¡ª¡ªµ¥´Î¡¢¿Éµ÷¡¢×éºÏ ?63

3.2.7 ʹÓÃrqt_consoleºÍrqt_logger_levelÔÚÔËÐÐʱÐ޸ĵ÷ÊÔ¼¶±ð ?63

3.3¡¡¼ì²âϵͳ״̬ ?66

3.3.1 ¼ì²â½Úµã¡¢Ö÷Ìâ¡¢·þÎñºÍ²ÎÊý ?67

3.3.2 ʹÓÃrqt_graphÔÚÏß¼ì²â½Úµã״̬ͼ ?70

3.4¡¡ÉèÖö¯Ì¬²ÎÊý ?71

3.5¡¡µ±³öÏÖÒì³£×´¿öʱʹÓá¡¡¡ ?roswtf ?72

3.6¡¡¿ÉÊÓ»¯½ÚµãÕï¶Ï ?74

3.7¡¡»æÖƱêÁ¿Êý¾Ýͼ ?75

3.8¡¡Í¼Ïñ¿ÉÊÓ»¯ ?77

3.9¡¡3D¿ÉÊÓ»¯ ?79

3.9.1 ʹÓÃrqt_rvizÔÚ3DÊÀ½çÖÐʵÏÖÊý¾Ý¿ÉÊÓ»¯ ?79

3.9.2 Ö÷ÌâÓë×ø±êϵµÄ¹ØÏµ ?82

3.9.3 ¿ÉÊÓ»¯×ø±ê±ä»» ?82

3.10¡¡±£´æÓë»Ø·ÅÊý¾Ý ?83

3.10.1 ʲôÊÇÏûÏ¢¼Ç¼°üÎļþ ?84

3.10.2 ʹÓÃrosbagÔÚÏûÏ¢¼Ç¼°üÖмǼÊý¾Ý ?84

3.10.3 »Ø·ÅÏûÏ¢¼Ç¼°üÎļþ ?85

3.10.4 ¼ì²éÏûÏ¢¼Ç¼°üÎļþµÄÖ÷ÌâºÍÏûÏ¢ ?86

3.11¡¡Ó¦ÓÃrqtÓërqt_gui²å¼þ ?88

3.12¡¡±¾ÕÂС½á ?88

µÚ4Õ¡¡ÔÚROSÏÂʹÓô«¸ÐÆ÷ºÍÖ´ÐÐÆ÷ ?90

4.1¡¡Ê¹ÓÃÓÎÏ·¸Ë»òÓÎÏ·ÊÖ±ú ?90

4.1.1 joy_nodeÈçºÎ·¢ËÍÓÎÏ·¸Ë¶¯×÷ÏûÏ¢ ?91

4.1.2 ʹÓÃÓÎÏ·¸ËÊý¾ÝÔÚturtlesimÖÐÒÆ¶¯º£¹ê ?92

4.2¡¡Ê¹Óü¤¹âÀ״¡ªHokuyo URG-04lx ?95

4.2.1 Á˽⼤¹âÀ×´ïÈçºÎÔÚROSÖз¢ËÍÊý¾Ý ?96

4.2.2 ·ÃÎʺÍÐ޸魯âÀ×´ïÊý¾Ý ?98

4.3¡¡Ê¹ÓÃKinect´«¸ÐÆ÷²é¿´3D»·¾³ÖеĶÔÏó ?100

4.3.1 ÈçºÎ·¢ËͺͲ鿴KinectÊý¾Ý ?101

4.3.2 ´´½¨Ê¹ÓÃKinectµÄʾÀý ?102

4.4¡¡Ê¹ÓÃËÅ·þµç¶¯»ú¡ª¡ªDynamixel ?104

4.5¡¡Ê¹ÓÃArduinoÌí¼Ó¸ü¶àµÄ´«¸ÐÆ÷ºÍ

¡¡Ö´ÐÐÆ÷ ?107

4.6¡¡ÔÚArduinoÉÏʹÓó¬Éù²¨´«¸ÐÆ÷ ?111

4.7¡¡¾àÀë´«¸ÐÆ÷ÈçºÎ·¢ËÍÏûÏ¢ ?113

4.7.1 ´´½¨Ê¹Óó¬Éù²¨µÄʾÀý ?113

4.7.2 XsensÈçºÎÔÚROSÖз¢ËÍÊý¾Ý ?116

4.7.3 ´´½¨Ê¹ÓÃXsensµÄʾÀý ?116

4.8¡¡Ê¹ÓÃ10×ÔÓɶȵͳɱ¾¹ßÐÔ²âÁ¿Ä£×éIMU ?118

4.8.1 ÏÂÔØ¼ÓËÙ¶È´«¸ÐÆ÷¿â ?119

4.8.2 Arduino NanoºÍ10×ÔÓɶȴ«¸ÐÆ÷±à³Ì ?120

4.8.3 ´´½¨ROS½ÚµãÒÔʹÓÃ10×ÔÓɶȴ«¸ÐÆ÷Êý¾Ý ?121

4.9¡¡GPSµÄʹÓà ?123

4.9.1 GPSÈçºÎ·¢ËÍÐÅÏ¢ ?125

4.9.2 ´´½¨Ò»¸öʹÓÃGPSµÄ¹¤³ÌʵÀý ?126

4.10¡¡±¾ÕÂС½á ?127

µÚ5Õ¡¡¼ÆËã»úÊÓ¾õ ?128

5.1¡¡Á¬½ÓºÍÔËÐÐÉãÏñÍ· ?129

5.1.1 FireWire IEEE1394ÉãÏñÍ· ?129

5.1.2 USBÉãÏñÍ· ?133

5.2¡¡Ê¹ÓÃOpenCVÖÆ×÷USBÉãÏñÍ·¡¡Çý¶¯³ÌÐò ?134

5.2.1 ͨ¹ýcv_bridgeʹÓÃOpenCV´¦ÀíROSͼÏñ ?139

5.2.2 ʹÓÃimage transport·¢²¼Í¼Ïñ ?139

5.2.3 ÔÚROSÖÐʹÓÃOpenCV ?140

5.2.4 ÏÔʾÉãÏñÍ·ÊäÈëµÄͼÏñ ?140

5.3¡¡±ê¶¨ÉãÏñÍ· ?141

5.4¡¡ROSͼÏñ¹ÜµÀ ?148

5.5¡¡¼ÆËã»úÊÓ¾õÈÎÎñÖÐÓÐÓõÄROS¹¦Äܰü ?152

5.6¡¡Ê¹ÓÃviso2ʵÏÖÊÓ¾õÀï³Ì¼Æ ?153

5.6.1 ÉãÏñͷλ×˱궨 ?154

5.6.2 ÔËÐÐviso2ÔÚÏßÑÝʾ ?157

5.6.3 ʹÓõͳɱ¾Ë«Ä¿ÉãÏñÍ·ÔËÐÐviso2 ?159

5.7¡¡Ê¹ÓÃRGBDÉî¶ÈÉãÏñͷʵÏÖÊÓ¾õÀï³Ì¼Æ ?160

5.7.1 °²×°fovis ?160

5.7.2 ÓÃKinect RGBDÉî¶ÈÉãÏñÍ·ÔËÐÐfovis ?160

5.8¡¡¼ÆËãÁ½·ùͼÏñµÄµ¥Ó¦ÐÔ ?161

5.9¡¡±¾ÕÂС½á ?162

µÚ6Õ¡¡µãÔÆ ?163

6.1¡¡Àí½âµãÔÆ¿â ?163

6.1.1 ²»Í¬µÄµãÔÆÀàÐÍ ?164

6.1.2 PCLÖеÄËã·¨ ?164

6.1.3 ROSµÄPCL½Ó¿Ú ?165

6.2¡¡ÎҵĵÚÒ»¸öPCL³ÌÐò ?166

6.2.1 ´´½¨µãÔÆ ?167

6.2.2 ¼ÓÔØºÍ±£´æµãÔÆµ½Ó²ÅÌ ?170

6.2.3 ¿ÉÊÓ»¯µãÔÆ ?173

6.2.4 Â˲¨ºÍËõ¼õ²ÉÑù ?176

6.2.5 Åä×¼ÓëÆ¥Åä ?181

6.2.6 µãÔÆ·ÖÇø ?184

6.3¡¡·Ö¸î ?187

6.4¡¡±¾ÕÂС½á ?191

µÚ7Õ¡¡3D½¨Ä£Óë·ÂÕæ ?192

7.1¡¡ÔÚROSÖÐ×Ô¶¨Òå»úÆ÷È˵Ä3DÄ£ÐÍ ?192

7.2¡¡´´½¨µÚÒ»¸öURDFÎļþ ?192

7.2.1 ½âÊÍÎļþ¸ñʽ ?194

7.2.2 ÔÚrvizÀï²é¿´3DÄ£ÐÍ ?195

7.2.3 ¼ÓÔØÍø¸ñµ½»úÆ÷ÈËÄ£ÐÍ ?197

7.2.4 ʹ»úÆ÷ÈËÄ£ÐÍÔ˶¯ ?198

7.2.5 ÎïÀíÊôÐÔºÍÅöײÊôÐÔ ?198

7.3¡¡xacro¡ª¡ª?Ò»¸ö¸üºÃµÄ»úÆ÷È˽¨Ä£·½·¨ ?199

7.3.1 ʹÓó£Á¿ ?199

7.3.2 ʹÓÃÊýѧ·½·¨ ?200

7.3.3 ʹÓúê ?200

7.3.4 ʹÓôúÂëÒÆ¶¯»úÆ÷ÈË ?201

7.3.5 ʹÓÃSketchUp½øÐÐ3D½¨Ä£ ?204

7.4¡¡ÔÚROSÖзÂÕæ ?205

7.4.1 ÔÚGazeboÖÐʹÓÃURDF 3DÄ£ÐÍ ?206

7.4.2 ÔÚGazeboÖÐÌí¼Ó´«¸ÐÆ÷ ?208

7.4.3 ÔÚGazeboÖмÓÔØºÍʹÓõØÍ¼ ?211

7.4.4 ÔÚGazeboÖÐÒÆ¶¯»úÆ÷ÈË ?213

7.5¡¡±¾ÕÂС½á ?215

µÚ8Õ¡¡µ¼º½¹¦Äܰü¼¯ÈëÃÅ ?216

8.1¡¡ROSµ¼º½¹¦Äܰü¼¯ ?216

8.2¡¡´´½¨±ä»» ?217

8.2.1 ´´½¨¹ã²¥»ú¹¹ ?218

8.2.2 ´´½¨ÕìÌýÆ÷ ?218

8.2.3 ²é¿´×ø±ê±ä»»Ê÷ ?221

8.3¡¡·¢²¼´«¸ÐÆ÷ÐÅÏ¢ ?221

8.4¡¡·¢²¼Àï³ÌÊý¾ÝÐÅÏ¢ ?224

8.4.1 GazeboÈçºÎ»ñÈ¡Àï³ÌÊý¾Ý ?225

8.4.2 ´´½¨×Ô¶¨ÒåÀï³ÌÊý¾Ý ?228

8.5¡¡´´½¨»ù´¡¿ØÖÆÆ÷ ?232

8.5.1 ʹÓÃGazebo´´½¨Àï³ÌÊý¾Ý ?233

8.5.2 ´´½¨×Ô¼ºµÄ»ù´¡¿ØÖÆÆ÷ ?235

8.6¡¡Ê¹ÓÃROS´´½¨µØÍ¼ ?237

8.6.1 ʹÓÃmap_server±£´æµØÍ¼ ?238

8.6.2 ʹÓÃmap_server¼ÓÔØµØÍ¼ ?239

8.7¡¡±¾ÕÂС½á ?240

µÚ9Õ¡¡µ¼º½¹¦Äܰü¼¯½ø½× ?241

9.1¡¡´´½¨¹¦Äܰü ?241

9.2¡¡´´½¨»úÆ÷ÈËÅäÖà ?241

9.3¡¡ÅäÖÃÈ«¾ÖºÍ¾Ö²¿´ú¼ÛµØÍ¼ ?243

9.3.1 »ù±¾²ÎÊýµÄÅäÖà ?244

9.3.2 È«¾Ö´ú¼ÛµØÍ¼µÄÅäÖà ?245

9.3.3 ¾Ö²¿´ú¼ÛµØÍ¼µÄÅäÖà ?245

9.3.4 »ù±¾¾Ö²¿¹æ»®Æ÷ÅäÖà ?246

9.4¡¡Îªµ¼º½¹¦Äܰü¼¯´´½¨Æô¶¯Îļþ ?247

9.5¡¡Îªµ¼º½¹¦Äܰü¼¯ÉèÖÃrviz ?248

9.5.1 2Dλ×˹À¼Æ ?248

9.5.2 2Dµ¼º½Ä¿±ê ?249

9.5.3 ¾²Ì¬µØÍ¼ ?249

9.5.4 Á£×ÓÔÆ ?251

9.5.5 »úÆ÷ÈËÕ¼µØ¿Õ¼ä ?251

9.5.6 ¾Ö²¿´ú¼ÛµØÍ¼ ?252

9.5.7 È«¾Ö´ú¼ÛµØÍ¼ ?252

9.5.8 È«¾Ö¹æ»® ?254

9.5.9 ¾Ö²¿¹æ»® ?254

9.5.10 ¹æ»®Æ÷¹æ»® ?254

9.5.11 µ±Ç°Ä¿±ê ?255

9.6¡¡×ÔÊÊÓ¦ÃÉÌØ¿¨ÂÞ¶¨Î» ?256

9.7¡¡Ê¹ÓÃrqt_reconfigureÐ޸IJÎÊý ?258

9.8¡¡»úÆ÷È˱ÜÕÏ ?259

9.9¡¡·¢ËÍÄ¿±ê ?260

9.10¡¡±¾ÕÂС½á ?262

µÚ10Õ¡¡Ê¹ÓÃMoveIt! ?264

10.1¡¡MoveIt!Ìåϵ½á¹¹ ?264

10.1.1 Ô˶¯¹æ»® ?265

10.1.2 ¹æ»®³¡¾° ?267

10.1.3 Ô˶¯Ñ§ ?268

10.1.4 Åöײ¼ì²â ?268

10.2¡¡ÔÚMoveIt!Öм¯³ÉÒ»¸ö»úе±Û ?268

10.2.1 ¹¤¾ßÏäÀïÓÐʲô ?268

10.2.2 ʹÓÃÉèÖÃÖúÊÖÉú³ÉÒ»¸öMoveIt!°ü ?269

10.2.3 ¼¯³Éµ½rviz ?273

10.2.4 ¼¯³Éµ½Gazebo»òʵ¼Ê»úÆ÷È˵ÄÊÖ±Û ?276

10.3¡¡¼òµ¥µÄÔ˶¯¹æ»® ?277

10.3.1 ¹æ»®µ¥¸öÄ¿±ê ?278

10.3.2 ¹æ»®Ò»¸öËæ»úÄ¿±ê ?278

10.3.3 ¹æ»®Ô¤¶¨ÒåµÄȺ×é״̬ ?280

10.3.4 ÏÔʾĿ±êµÄÔ˶¯ ?280

10.4¡¡¿¼ÂÇÅöײµÄÔ˶¯¹æ»® ?280

10.4.1 ½«¶ÔÏóÌí¼Óµ½¹æ»®³¡¾°ÖÐ ?281

10.4.2 ´Ó¹æ»®µÄ³¡¾°ÖÐɾ³ý¶ÔÏó ?282

10.4.3 Ó¦ÓõãÔÆ½øÐÐÔ˶¯¹æ»® ?283

10.5¡¡×¥È¡ºÍ·ÅÖÃÈÎÎñ ?284

10.5.1 ¹æ»®µÄ³¡¾° ?285

10.5.2 ¸ÐÖª ?288

10.5.3 ץȡ ?288

10.5.4 ץȡ²Ù×÷ ?290

10.5.5 ·ÅÖòÙ×÷ ?292

10.5.6 ÑÝʾģʽ ?295

10.5.7 ÔÚGazeboÖзÂÕæ ?295

10.6¡¡±¾ÕÂС½á ?296


µÚ1ÕÂ

ROS HydroϵͳÈëÃÅ

»¶Ó­¿ªÊ¼ÔĶÁ±¾ÊéµÚ1Õ¡£±¾Õ½«½éÉÜÈçºÎ°²×°ROSϵͳ£¬ËüÊÇÒ»ÖÖеıê×¼»¯»úÆ÷ÈËϵͳÈí¼þ¿ò¼Ü¡£±¾ÊéÊÇ»ùÓÚROS FuerteµÄ¡¶ROS»úÆ÷È˳ÌÐòÉè¼Æ¡·Ò»ÊéµÄÉý¼¶°æ¡£Í¨¹ýROS£¬Äã¿ÉÒÔʹÓôóÁ¿µÄʾÀý´úÂëºÍ¿ªÔ´³ÌÐòÇáËɵØÍê³É»úÆ÷È˱à³ÌºÍ¿ØÖÆ¡£Í¬Ê±£¬Ä㻹Äܹ»Àí½âÈçºÎʹÓø÷ÖÖ´«¸ÐÆ÷ÓëÖ´ÐÐÆ÷£¬²¢ÎªÄãµÄ»úÆ÷ÈËÔö¼ÓÐµĹ¦ÄÜ£¬Èç×Ô¶¯µ¼º½ºÍÊÓ¾õ¸ÐÖªµÈ¡£µÃÒæÓÚ¿ªÔ´ÀíÄÒÔ¼°³ÖÐø¿ª·¢×îÏȽøËã·¨²¢²»¶ÏÌṩй¦ÄܵĿªÔ´ÉçÇø£¬ROS²»¶Ï½ø²½ÍêÉÆ¡£

ͨ¹ý±¾Ê飬Ä㽫ѧϰµ½ÈçÏÂÄÚÈÝ£º

ÔÚÌØ¶¨°æ±¾µÄUbuntuϵͳϰ²×°ROS Hydro¿ò¼Ü

ROSµÄ»ù±¾²Ù×÷

µ÷ÊÔÒÔ¼°Êý¾Ý¿ÉÊÓ»¯

ÔÚROS¿ò¼ÜϽøÐлúÆ÷È˱à³Ì

Á¬½Ó´«¸ÐÆ÷¡¢Ö´ÐÐÆ÷ºÍÓ²¼þÉ豸ÒÔ´´½¨»úÆ÷ÈË

´´ÔìÈýά£¨3D£©Ä£ÐͲ¢½øÐзÂÕæ

ʹÓõ¼º½¹¦Äܰü¼¯Ê¹»úÆ÷ÈËʵÏÖ×ÔÖ÷ÐÐÊ»

±¾ÕÂÖ÷Òª½éÉÜÔõÑùÔÚUbuntuϵͳÖа²×°ÍêÕû°æ±¾µÄROS Hydro¡£Ubuntu²»µ«Äܹ»È«ÃæÖ§³ÖROS£¬¶øÇÒÊÇROS¹Ù·½ÍƼöµÄ²Ù×÷ϵͳ¡£µ±È»£¬ÄãÒ²¿ÉÒÔÔÚÆäËûµÄ²Ù×÷ϵͳÖа²×°ROS¡£Õâ±¾ÊéʹÓõÄUbuntu°æ±¾ÊÇ12.04£¨Precise Pangolin£©£¬Äã¿ÉÒÔÔÚhttp://releases.ubuntu.com/12.04/Ãâ·ÑÏÂÔØ°²×°¡£

ÔÚ¿ªÊ¼°²×°Ö®Ç°£¬ÎÒÃÇÊ×ÏÈÁ˽âÒ»ÏÂROSµÄÀúÊ·¡£

Robot Operating System£¨ROS£©ÊÇÒ»¸öµÃµ½¹ã·ºÊ¹ÓõĻúÆ÷ÈËϵͳµÄÈí¼þ¿ò¼Ü¡£ROSµÄ»ù±¾Ô­ÀíÊÇÎÞÐè¸Ä¶¯¾ÍÄܹ»ÔÚ²»Í¬µÄ»úÆ÷ÈËÉϸ´ÓôúÂë¡£»ùÓÚÕâЩ£¬ÎÒÃǾͿÉÒÔÔÚ²»Í¬µÄ»úÆ÷ÈËÉÏ·ÖÏíºÍ¸´ÓÃÒѾ­ÊµÏֵŦÄÜ£¬¶ø²»ÐèÒª×öÌ«¶àµÄ¹¤×÷£¬±ÜÃâÁËÖØ¸´ÀͶ¯¡£

2007Ä꣬˹̹¸£´óѧÈ˹¤ÖÇÄÜʵÑéÊÒ£¨Stanford Artificial Intelligence Laboratory£¬SAIL£©ÔÚ˹̹¸£AI»úÆ÷ÈËÏîÄ¿£¨Stanford AI Robot project£©µÄÖ§³ÖÏ¿ª·¢ÁËROS¡£2008ÄêÖ®ºó£¬ÆäÖ÷ÒªÔÚWillow Garage¹«Ë¾Ö§³ÖÏÂÓ볬¹ý20¶à¼ÒÑо¿»ú¹¹ÁªºÏÑз¢ROS¡£

ÏÖÔÚÒѾ­Óкܶà¼ÒÑо¿»ú¹¹Í¨¹ýÔö¼ÓROSÖ§³ÖµÄÓ²¼þ»ò¿ª·ÅÈí¼þÔ´´úÂëµÄ·½Ê½¼ÓÈëROSϵͳµÄ¿ª·¢ÖС£Í¬Ñù£¬Ò²Óкܶà¼Ò¹«Ë¾½«Æä²úÆ·Öð²½½øÐÐÈí¼þÇ¨ÒÆ²¢ÔÚROSϵͳÖÐÓ¦Óá£Ò»Ð©Íêȫ֧³ÖROSϵͳµÄƽ̨ÈçÏÂͼËùʾ¡£ÕâЩƽ̨ÍùÍù»á¿ª·Å´óÁ¿µÄ´úÂ롢ʾÀýºÍ·ÂÕæ»·¾³£¬ÒԱ㿪·¢ÈËÔ±ÇáËɵؿªÕ¹¹¤×÷¡£Ç°Èý¸ö·¢²¼´úÂëµÄ»úÆ÷ÈËÀý×ÓÊÇÈËÐλúÆ÷ÈË¡£×îºóÒ»¸öÊÇÓÉÀ­Ë¹ÅÁ¶ûÂí˹´óѧ¿ª·¢µÄˮϻúÆ÷ÈË£¬´úÂëÉÐδ¹«²¼¡£Äã¿ÉÒÔÔÚhttp://wiki.ros.org/RobotsÕÒµ½ºÜ¶àÕâÑùµÄÀý×Ó¡£


ROSϵͳÒѾ­Ö§³ÖÕâЩ»úÆ÷ÈËÖеĴ«¸ÐÆ÷ºÍÖ´ÐÐÆ÷£¬Í¬Ê±Ã¿ÌìROSÈí¼þ¿ò¼ÜÖ§³ÖµÄÉ豸ҲÔÚÔö¼Ó¡£´ËÍ⣬µÃÒæÓÚROSºÍ¿ª·ÅÓ²¼þ£¬´óÁ¿¹«Ë¾ÕýÔÚ´´½¨¸ü±ãÒ˺͸üÇ¿´óµÄ´«¸ÐÆ÷¡£Arduino¿ª·¢°åÊÇÒ»¸öºÜºÃµÄÀý×Ó£¬Ê¹ÓÃÁ®¼ÛµÄµç·°å¿ÉÒÔÌí¼ÓºÜ¶àÀàÐ͵Ĵ«¸ÐÆ÷Èç±àÂëÆ÷¡¢¹âºÍζȴ«¸ÐÆ÷µÈ¡£

ROSÌṩÁËÒ»¸ö±ê×¼µÄ²Ù×÷ϵͳ»·¾³£¬°üÀ¨Ó²¼þ³éÏ󡢵ײãÉ豸¿ØÖÆ¡¢Í¨Óù¦ÄܵÄʵÏÖ¡¢½ø³Ì¼äÏûϢת·¢ºÍ¹¦Äܰü¹ÜÀíµÈ¡£

Ëü»ùÓÚÒ»¸ö¼¯ÖÐÊ½ÍØÆËµÄͼ½á¹¹£¬ÔÚ½ÚµãÖнÓÊÕÐí¶à´«¸ÐÆ÷¡¢¿ØÖÆ¡¢×´Ì¬¡¢¹æ»®¡¢Ö´ÐÐÆ÷Êý¾Ý½øÐмÆËã´¦Àí£¬²¢·¢ËÍ¡£ËüµÄ¸÷ÖÖ¿âÓ빦Äܰü¶¼ÊÇÃæÏòÀàUNIXϵͳµÄ¡£

*-ros-pkg×÷ΪһÖÖÉçÇø»¯µÄÈí¼þ¿âʹ¿ª·¢¸ß¼¶¿â¸üΪÈÝÒס£ÆäÖУ¬ºÜ¶à¹¦ÄÜÊǺÍROSϵͳ°ó¶¨µÄ£¬Èçµ¼º½¿âºÍrviz¿ÉÊÓ»¯½çÃæ¶¼»ùÓÚÕâ¸ö¿â¡£ÆäÖеÄһЩ¿â°üº¬ºÜ¶àÇ¿´óµÄ¹¤¾ß£¬¿ÉÒÔ°ïÖúÎÒÃÇ·½±ãʹÓÃROS²¢Á˽â»úÆ÷È˵±Ç°µÄʵʱ״̬¡£ÆäÖУ¬¿ÉÊÓ»¯¹¤¾ß¡¢·ÂÕæ»·¾³ºÍµ÷ÊÔ¹¤¾ßÊÇ×îÖØÒªµÄ¼¸¸ö¡£ÔÚÏÂͼÖÐÄã¿ÉÒÔ¿´µ½Á½¸ö¹¤¾ß£¬rvizºÍrqt_plot¡£ÖмäÊÇrqt_plotµÄ½ØÍ¼£¬Äã¿ÉÒÔ¿´µ½ÓÉ´«¸ÐÆ÷Êý¾Ý»æÖƵÄÇúÏß¡£ÁíÍâÁ½¸ö½ØÍ¼ÊÇrviz£»½ØÍ¼ÖпÉÒÔ¿´µ½ÕæÊµ»úÆ÷È˵ÄÈýάÏÔʾ¡£


ROSÊÇÒ»¸öʹÓÃBSD£¨Berkeley Software Distribution£©¿ªÔ´Ð­ÒéµÄ¿ªÔ´Èí¼þ¡£ÎÞÂÛÊÇÉÌÒµÓ¦Óû¹ÊÇ¿ÆÑ§Ñо¿Ëü¶¼ÊÇÃâ·ÑµÄ¡£*-ros-pkg°üÊܵ½Á˶à¸ö¿ªÔ´Ð­ÒéµÄÏÞÖÆ¡£

ÓÃROSÄã¿ÉÒÔ×ö¸ü¶à¹¤×÷¡£Äã¿ÉÒÔʹÓÿâÖеĴúÂ룬¸Ä½øºóÔٴι²Ïí¡£ÕâÖÖ¹ÛÄî¾ÍÊÇ¿ªÔ´Èí¼þµÄ±¾ÖÊ¡£

ROSÒѾ­·¢²¼Á˶à¸ö°æ±¾£¬×îеİ汾ÊÇIndigo¡£ÔÚ±¾ÊéÖУ¬ÎÒÃÇʹÓõİ汾ÊÇHydro£¬ÒòΪÕâ¸ö°æ±¾¸ü¼ÓÎȶ¨£¬¶øIndigoÊÇʵÑé°æ±¾£¬¿ÉÄÜ´æÔÚ´íÎó¡£

ÏÂÃæ»á½éÉÜÈçºÎ°²×°Hydro°æ±¾µÄROS¡£¼´Ê¹ÔÚ±¾ÊéÖÐÎÒÃÇʹÓÃHydro£¬µ«ÊÇÔÚʵ¼Ê¹¤×÷ÖУ¬ÄãÈÔÈ»¿ÉÄÜÐèÒª°²×°Àϰ汾ÒÔ±ãÔËÐÐһЩ´úÂë¡£

ÈçǰËùÊö£¬±¾ÊéÖÐËùʹÓõIJÙ×÷ϵͳÊÇUbuntu£¬È«ÊéµÄÄÚÈݼ°½Ì³Ì½«ÒÔ¸ÃϵͳΪ»ù´¡¡£Èç¹ûÄãϰ¹ßʹÓÃÆäËû²Ù×÷ϵͳÓÖÏëÍê³É±¾ÊéµÄѧϰ£¬×îºÃµÄÑ¡Ôñ¾ÍÊǰ²×°Ò»¸ö´øÓÐUbuntuµÄÐéÄâ»ú¡£Òò´Ë£¬±¾ÕÂĩβ»á½éÉÜÐéÄâ»úµÄ°²×°·½·¨¡£

µ±È»£¬Èç¹ûÄãÏëÔÚÆäËûϵͳÖа²×°ROS£¬Äã¿ÉÒÔ¸ù¾ÝÁ´½Óhttp://wiki.ros.org/hydro/InstallationÖеÄÖ¸µ¼À´Íê³É¡£

1.1¡¡PC°²×°½Ì³Ì

ÎÒÃǼÙÉèÄãÒѾ­°²×°ÁËUbuntu 12.04ϵͳ¡£ÎÒÃÇʹÓÃÕâ¸ö°æ±¾µÄUbuntu£¬ÒòΪËüÊÇÒ»¸ö³¤ÆÚÖ§³Ö°æ±¾£¬Å䱸ÁËLong-Term Support£¨LTS£©¡£ÕâÒâζ×ÅÉçÇøÔÚ5ÄêÄÚ½«¶ÔÕâ¸ö°æ±¾Ìṩά»¤¡£

´ËÍ⣬ÄãÐèÒª¾ß±¸Ò»¶¨µÄLinuxºÍÃüÁ¾ß»ù±¾ÖªÊ¶£¬ÀýÈçÖÕ¶Ë¡¢vim¡¢´´½¨Îļþ¼ÐµÈ¡£Èç¹ûÐèҪѧϰÕâЩ¹¤¾ß£¬Äã¿ÉÒÔÔÚÍøÉÏÕÒµ½ºÜ¶àÏà¹ØµÄ×ÊÔ´£¬»òÕßÄãÒ²¿ÉÒԲο¼ÕâЩÖ÷ÌâÏà¹ØµÄͼÊé¡£

1.2¡¡Ê¹ÓÃÈí¼þ¿â°²×°ROS Hydro

2014Ä꣬ROSÍøÒ³¸üÐÂÁËÉè¼Æ·ç¸ñºÍÄÚÈݵÄ×éÖ¯¡£Äã¿ÉÒÔ¿´µ½ÈçϵÄÍøÒ³½ØÍ¼£º


Ôڲ˵¥ÖУ¬¿ÉÒÔÕÒµ½¹ØÓÚROSµÄÐÅÏ¢ÒÔ¼°ROSÊÇ·ñÊÊÓÃÓÚÄãµÄϵͳµÈÄÚÈÝ¡£

ROSµÄ°²×°ËµÃ÷¿ÉÒÔÔÚ¿ªÊ¼£¨Getting Started£©²¿·ÖµÄ°²×°£¨Install£©Ñ¡ÏÖÐÕÒµ½¡£

½¨ÒéÄãÔÚϵͳÖÐʹÓÃÈí¼þ¿â¶ø²»ÊÇÔ´´úÂë°²×°ROS£¬³ý·ÇÄãÊÇÒ»¸öרҵÓû§£¬Ïë½øÐÐ×Ô¶¨Òå°²×°£»ÔÚÕâÖÖÇé¿öÏ£¬Äã¿ÉÄܸüϲ»¶Ê¹ÓÃÔ´´úÂë°²×°ROS¡£

ËùÒÔÎÒÃÇʹÓÃÈí¼þ¿â°²×°ROS£¬ÏÂÃæ½«¿ªÊ¼ÔÚÎÒÃǵÄϵͳÖÐÅäÖÃUbuntuÈí¼þ¿â¡£

1.2.1¡¡ÅäÖÃUbuntuÈí¼þ¿â

ÔÚ±¾½ÚÖУ¬Ä㽫ѧϰ°²×°ROS HydroµÄ²½Öè¡£Õâ¸ö¹ý³Ì»ùÓÚ¹Ù·½°²×°Ò³ÃæµÄÄÚÈݽ²Êö£¬Á´½ÓµØÖ·ÊÇhttp://wiki.ros.org/hydro/Installation/Ubuntu¡£

ÎÒÃǼÙÉèÄãÀí½âUbuntuÈí¼þ¿â£¨repository£©µÄº¬Ò壬²¢ÇÒÖªµÀÈçºÎ¹ÜÀíËü¡£Èç¹ûÄãÓÐÈκÎÒÉÎÊ£¬Çë²éѯhttps://help.ubuntu.com/community/Repositories/Ubuntu¡£

ÔÚ¿ªÊ¼°²×°Ö®Ç°£¬ÐèÒªÊ×ÏÈÅäÖÃÈí¼þ¿â£¬Îª´ËÐèÒªÏȰÑÈí¼þ¿âÊôÐÔÉèΪrestricted¡¢universe¡¢multiverse¡£ÎªÁ˼ì²éÄãµÄUbuntu°æ±¾ÊÇ·ñÖ§³ÖÕâЩÈí¼þ¿â£¬Çëµ¥»÷´ò¿ª×ÀÃæ×óÃæµÄUbuntuÈí¼þÖÐÐÄ£¨Ubuntu Software Center£©£¬ÈçÓÒͼËùʾ¡£

´ò¿ª Edit | Software Sources±êǩҳ£¬Ä㽫»á¿´µ½ÒÔϽçÃæ£¬ÄãÒª±£Ö¤¸÷¸öÑ¡ÏîÓëÏÂͼÖÐÒ»Ö¡£


ͨ³£Çé¿öÏ£¬ÕâЩѡÏî¶¼ÊÇĬÈÏÑ¡Öеģ¬Òò´ËÕâÒ»²½ÖèÄã²»»áÓöµ½Ê²Ã´ÎÊÌâ¡£

1.2.2¡¡Ìí¼ÓÈí¼þ¿âµ½sources.listÎļþÖÐ

ÔÚÕâÒ»²½ÖУ¬ÄãÓ¦¸ÃÏÈÑ¡ÔñUbuntuµÄ°æ±¾¡£ÔÚ¶àÖÖ°æ±¾µÄ²Ù×÷ϵͳÖж¼¿ÉÒÔ°²×°ROS Hydro¡£ËäÈ»Äã¿ÉÒÔʹÓÃÈκÎÒ»¸ö°æ±¾£¬µ«ÊÇÍÆ¼ö×îа汾£¬ÒÔ±ÜÃâ·¢ÉúÎÊÌâ¡£ÇëÀμǣ¬HydroÔÚPrecise Pangolin£¨12.04£©¡¢Quantal Quetzal£¨12.10£©ºÍRaring Ringtail£¨13.04£©Ï¿ÉÒÔÕý³£¹¤×÷¡£

ÔÚUbuntu 12.04£¨Precise Pangolin£©Ï£¬°²×°Èí¼þ¿âµÄ¾ßÌå·½·¨ÈçÏ£º


ÔÚUbuntu 12.10£¨Quantal Quetzal£©Ï°²×°Èí¼þ¿âµÄ¾ßÌå·½·¨ÈçÏ£º


ÔÚUbuntu 13.04£¨Raring Ringtail£©Ï°²×°Èí¼þ¿âµÄ¾ßÌå·½·¨ÈçÏ£º


Ò»µ©Ìí¼ÓÁËÕýÈ·µÄÈí¼þ¿â£¬²Ù×÷ϵͳ¾ÍÖªµÀÈ¥ÄÄÀïÏÂÔØ³ÌÐò£¬²¢¸ù¾ÝÃüÁî×Ô¶¯°²×°Èí¼þ¡£

1.2.3¡¡ÉèÖÃÃÜÔ¿

ÕâÒ»²½ÊÇΪÁËÈ·ÈÏԭʼµÄ´úÂëÊÇÕýÈ·µÄ£¬²¢ÇÒûÓÐÈËÔÚδ¾­ËùÓÐÕßÊÚȨµÄÇé¿öÏÂÐÞ¸ÄÈκγÌÐò´úÂ롣ͨ³£Çé¿öÏ£¬µ±Ìí¼ÓÍêÈí¼þ¿âʱ£¬Äã¾ÍÒѾ­Ìí¼ÓÁËÈí¼þ¿âµÄÃÜÔ¿£¬²¢½«ÆäÌí¼Óµ½²Ù×÷ϵͳµÄ¿ÉÐÅÈÎÁбíÖС£


ÏÖÔÚÎÒÃÇÄܹ»È·¶¨´úÂëÀ´×ÔÊÚÈ¨ÍøÕ¾²¢ÇÒûÓб»Ð޸ġ£

1.2.4¡¡°²×°ROS

ÏÖÔÚ×¼±¸¿ªÊ¼°²×°ROS¡£ÔÚ¿ªÊ¼Ö®Ç°×îºÃÏÈÉý¼¶Ò»ÏÂÈí¼þ£¬±ÜÃâ´íÎóµÄ¿â°æ±¾»òÈí¼þ°æ±¾²úÉú¸÷ÖÖÎÊÌâ¡£ÊäÈëÒÔÏÂÃüÁîÉý¼¶¸ÃÈí¼þ£º


ROS·Ç³£´ó£¬ÓÐʱºòÄã»á°²×°Ò»Ð©ÓÀÔ¶Ò²Óò»µ½µÄ¿âºÍ³ÌÐò¡£Í¨³£Çé¿öÏ£¬¸ù¾ÝÓÃ;ÓÐËÄÖÖ²»Í¬µÄ°²×°·½Ê½¡£ÀýÈ磬ÄãÊÇÒ»¸ö¸ß¼¶Óû§£¬ÄãÖ»ÐèҪΪÄãµÄ»úÆ÷È˽øÐлù±¾°²×°£¬¶ø²»ÐèÒªÔÚÓ²ÅÌÉÏÁô¹ý¶àµÄ¿Õ¼ä¡£ÔÚ±¾ÊéÖУ¬ÎÒÃÇÍÆ¼öÍêÈ«°²×°£¬ÒòΪÕâÑùÄܹ»±£Ö¤°üº¬±¾ÊéÖÐËùÓÐʾÀýºÍ½Ì³ÌÐèÒªµÄÄÚÈÝ¡£Èç¹ûÄã²»ÖªµÀÕýÔÚ°²×°µÄrviz¡¢·ÂÕæ»·¾³»òµ¼º½³ÌÐòÊÇʲô£¬²»Óõ£ÐÄ£¬Ä㽫»áÔÚºóÐøÕ½ÚÖÐѧϰÈçÏÂÄÚÈÝ£º

×î¼òµ¥µÄ°²×°·½Ê½£¨²¢ÇÒÊÇÍÆ¼öµÄ°²×°·½Ê½£¬µ«ÄãÐèÒª×ã¹»´óµÄÓ²Å̿ռ䣩¾ÍÊÇ×ÀÃæÍêÕû°²×°£¨desktop-full£©¡£Õ⽫°²×°ROS¡¢rqt¹¤¾ßÏä¡¢rviz¿ÉÊÓ»¯»·¾³£¨3D£©¡¢Í¨ÓûúÆ÷È˿⡢2D£¨Èçstage£©ºÍ3D£¨Èçgazebo£©·ÂÕæ»·¾³¡¢µ¼º½¹¤¹¦Äܰü¼¯£¨Òƶ¯¡¢¶¨Î»¡¢µØÍ¼»æÖÆ¡¢»úе±Û¿ØÖÆ£©£¬ÒÔ¼°ÆäËû¸ÐÖª¿â£¬ÈçÊÓ¾õ¡¢¼¤¹âÀ×´ïºÍRGBDÉãÏñÍ·£¨Éî¶ÈÉãÏñÍ·£©£º


Èç¹ûÄãûÓÐ×ã¹»µÄÓ²Å̿ռ䣬»ò¸üϲ»¶°²×°Ìض¨²¿·ÖµÄ¹¦Äܰü¼¯£¬ÄÇôµÚÒ»´Î°²×°¿ÉÒÔ½ö°²×°×ÀÃæ°²×°Îļþ£¬°üÀ¨ROS¡¢rqt¹¤¾ßÏä¡¢rvizºÍÆäËûͨÓûúÆ÷È˿⡣֮ºóÔÚÐèÒªµÄʱºò£¬ÔÙ°²×°ÆäËû¹¦Äܰü¼¯£¨Ê¹ÓÃaptÃüÁî²¢²éÕÒros-hydro -*¹¦Äܰü¼¯£©£º


Èç¹ûÄãÖ»ÊÇÏë³¢ÊÔһϣ¬Çë°²×°ROS-base¡£ROS-baseͨ³£Ö±½Ó°²×°ÔÚ»úÆ÷ÈËÉÏ£¬ÓÈÆäÊÇ»úÆ÷ÈËûÓÐÆÁÄ»ºÍÈË»ú½çÃæ£¬Ö»ÄÜttyÔ¶³ÌµÇ¼µÄÇé¿öÏ¡£ËüÖ»°²×°ROSµÄ±àÒëºÍͨÐŰü£¬¶øÃ»ÓÐÈκεÄGUI¹¤¾ß¡£ÔÚBeagleBone Black£¨BBB£©ÖУ¬Ä㽫ʹÓÃÏÂÃæÃüÁ


×îºó£¬ÎÞÂÛÄãÑ¡ÔñÄÄÒ»¸öÑ¡Ïî½øÐа²×°£¬Äã¶¼¿ÉÒÔ¶ÀÁ¢°²×°Ìض¨µÄROS¹¦Äܰü¼¯£¨½«STACKÌæ»»³É¸ø¶¨¹¦Äܰü¼¯µÄÃû³Æ£©£º


1.2.5¡¡³õʼ»¯rosdep

ÔÚʹÓÃROS֮ǰ£¬±ØÐëÏȰ²×°ºÍ³õʼ»¯rosdepÃüÁîÐй¤¾ß¡£Õâ¿ÉÒÔʹÄãÇáËɵذ²×°¿âºÍ±àÒëÔ´´úÂëʱµÄϵͳÒÀÀµ£¬À´ÔËÐÐÔÚROSÖеÄһЩºËÐÄ×é¼þ¡£ÔÚROS FuerteÖУ¬Äã±ØÐë°²×°ÍêROSºóÔÙ°²×°rosdep£¬ÒòΪËüÊÇÒ»¸ö¶ÀÁ¢µÄ¹¤¾ß¡£ÏÖÔÚrosdepĬÈϰ²×°ÔÚROSÖС£Äã¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁî°²×°ºÍ³õʼ»¯rosdep£º


1.2.6¡¡ÅäÖû·¾³

¹§Ï²Ä㣡Äܵ½ÕâÒ»²½£¬ËµÃ÷ÄãÒѾ­³É¹¦°²×°ÁËij¸ö°æ±¾µÄROS£¡ÎªÁËÄܹ»ÔËÐÐËü£¬ÏµÍ³ÐèÒªÖªµÀ¿ÉÖ´Ðлò¶þ½øÖÆÎļþÒÔ¼°ÆäËûÃüÁîµÄλÖá£ÎªÁËʵÏÖÒÔÉÏÄ¿µÄ£¬ÄãÐèÒªÖ´ÐÐÒÔϽű¾£º


Èç¹ûÄ㻹°²×°ÁËÁíÒ»¸öROS·¢Ðа棬ÿ´ÎÄãÐèҪͨ¹ýµ÷Óýű¾À´Ê¹ÓÃËü£¬Õâ¸ö½Å±¾»áÖ±½ÓÅäÖÃÄãµÄ»·¾³¡£ÔÚ´ËÎÒÃÇʹÓõÄÊÇROS HydroµÄ½Å±¾£¬Èç¹ûÄãÏë³¢ÊÔÆäËû·¢Ðа棬ֻÐèÒªÓÃFuerte»òGroovy´úÌæHydro¼´¿É¡£

Èç¹ûÄãÔÚÃüÁîÐÐÖÐÊäÈëroscore£¬ÄÇô½«¿´µ½ÓгÌÐòÆô¶¯¡£ÕâÊÇÓÃÀ´²âÊÔÊÇ·ñÍê³ÉROS°²×°ÒÔ¼°ÊÇ·ñÕýÈ·°²×°×îºÃµÄ·½·¨¡£

Çë×¢Ò⣬Èç¹ûÄãÔٴδò¿ªÒ»¸öÃüÁîÐд°¿Ú£¬²¢ÊäÈëroscore»òÆäËûROSÃüÁȴÎÞ·¨¹¤×÷ÁË¡£ÕâÊÇÒòΪÄãÐèÒªÔÙÒ»´ÎÖ´Ðнű¾À´ÅäÖÃÈ«¾Ö±äÁ¿ºÍROSµÄ°²×°Â·¾¶¡£

Õâ¸öÎÊÌâºÜÈÝÒ×½â¾ö£¬ÄãÖ»ÐèÒªÔÚ.bashrcÎļþ×îºóÌí¼Ó½Å±¾£¬µ±Ä㿪ʼÐÂÃüÁîÐÐʱ£¬¸Ã½Å±¾½«Ö´Ðв¢ÅäÖû·¾³¡£

.bashrcÎļþÔÚÓû§µÄhomeÎļþ¼ÐÏ£¨/home/Óû§Ãû/.bashrc£©¡£Ã¿´ÎÓû§´ò¿ªÖÕ¶Ë£¬Õâ¸öÎļþ¼ÓÔØÃüÁîÐлòÖն˵ÄÅäÖá£ËùÒÔÄã¿ÉÒÔÌí¼ÓÃüÁî»òÅäÖ÷½±ãÓû§Ê¹ÓᣳöÓÚÕâ¸öÔ­Òò£¬ÎÒÃǽ«ÔÚ.bashrcÎļþ½áÊøÊ±Ìí¼Ó½Å±¾£¬ÒÔ±ÜÃâÎÒÃÇÿ´Î´ò¿ªÒ»¸öÐÂÖÕ¶Ëʱ¶¼ÒªÖظ´ÊäÈëÃüÁî¡£ÎÒÃÇÓÃÏÂÃæÃüÁ


Èç¹ûҪʹÅäÖÃÉúЧ£¬Äã±ØÐëʹÓÃÏÂÃæµÄÃüÁîÈ¥Ö´ÐÐÕâ¸öÎļþ£¬»ò¹Ø±Õµ±Ç°ÖÕ¶Ë£¬´ò¿ªÁíÒ»¸öÐÂÖÕ¶Ë¡£


һЩÓû§ÐèÒªÔÚËûÃǵÄϵͳÖа²×°²»Ö¹Ò»¸öROSµÄ·¢Ðа档ÓÉÓÚÿ´Îµ÷Óýű¾¶¼»á¸²¸Çϵͳµ±Ç°ÅäÖã¬ËùÒÔ~/.bashrcÖ»ÄÜÉèÖÃÄãÕýÔÚʹÓõÄÄÇÒ»¸ö°æ±¾µÄsetup.bash¡£ÎªÁËʵÏÖÔÚ¼¸¸ö·¢ÐаæÖ®¼äÇл»£¬ÄãÐèÒªµ÷Óò»Í¬µÄsetup.bash½Å±¾¡£

ÀýÈ磬ÔÚ.bashrcÎļþÏÂÃæ¿ÉÄÜÓÐÕâô¼¸ÐдúÂ룺


ÔÚÕâÖÖÇé¿öÏ£¬ROS Electric°æ±¾½«±»Ö´ÐС£ËùÒÔÄã±ØÐëÈ·±£½«ÒªÔËÐеİ汾ÊÇÎļþÖеÄ×îºóÒ»¸ö¡£

Èç¹ûÄãÏëͨ¹ýÖն˼ì²éʹÓõİ汾£¬¿ÉÒԷdz£¼òµ¥µØÊ¹ÓÃecho $ROS_DISTROÃüÁî¡£

1.2.7¡¡°²×°rosinstall

ÏÖÔÚ£¬ÏÂÒ»²½¹¤×÷Êǰ²×°Ò»¸öÃüÁ¾ß£¬ÒÔ°ïÖúÎÒÃÇʹÓÃÒ»ÌõÃüÁî°²×°ÆäËû°ü¡£Õâ¸ö¹¤¾ßÊÇ»ùÓÚPythonµÄ£¬µ«ÊDZðµ£ÐÄ£¬Ê¹ÓÃËü²»ÐèÒªÄãÕÆÎÕPython¡£ÄãÔÚ½ÓÏÂÀ´µÄÕ½ÚÖн«Ñ§Ï°ÈçºÎʹÓÃÕâ¸ö¹¤¾ß£º

ÔËÐÐÒÔÏÂÃüÁîÔÚUbuntuÖа²×°Õâ¸ö¹¤¾ß£º


Õâ¾ÍÍê³ÉÁË£¡ÄãÒѾ­ÔÚÄãµÄϵͳÍê³ÉÁËÒ»¸öÍêÕûµÄROSϵͳ°²×°¡£µ±ÎÒÍê³ÉÒ»¸öа²×°µÄROSºó£¬ÎÒ¸öÈËϲ»¶²âÊÔÁ½¸ö¶«Î÷£ºroscoreºÍturtlesim¡£

Èç¹ûÄãÏë×öÏàͬµÄÊ£¬ÔÚ²»Í¬ÃüÁîÐзֱðÊäÈëÒÔÏÂÃüÁ


Èç¹ûÒ»ÇÐÕý³££¬Ä㽫¿´µ½ÓұߵĽçÃæ£º

1.3¡¡ÈçºÎ°²×°VirtualBoxºÍUbuntu

VirtualBoxÊÇÒ»¸öͨÓá¢ÍêÕûµÄÐéÄâ»ú£¬ËüÊÊÓÃÓÚx86Ó²¼þ£¬ÃæÏò·þÎñÆ÷¡¢Ì¨Ê½»úºÍǶÈëʽӦÓá£VirtualBoxÊÇÃâ·ÑµÄ£¬Ö§³ÖËùÓÐÖ÷Á÷µÄ²Ù×÷ϵͳ¡£¼¸ºõÿһ¸öLinux°®ºÃÕß¶¼»áʹÓÃËü¡£

ÓÉÓÚÎÒÃÇÍÆ¼öʹÓÃUbuntu£¬Äã¿ÉÄܲ»Ï£Íû¸ü¸Ä¼ÆËã»úÏÖÓеIJÙ×÷ϵͳ¡£¶øÈçVirtualBoxÖ®ÀàµÄ¹¤¾ß¾Í¿ÉÒÔÂú×ã´ËÀàÐèÇó¡£ËüÄܰïÖúÎÒÃÇÔÚ¼ÆËã»úÉÏÐéÄ⻯еIJÙ×÷ϵͳ£¬¶øÎÞÐè¶Ô¼ÆËã»úÓ²¼þ×öÈκθ͝¡£

ºóÃæµÄÕ½ڽ«Õ¹Ê¾ÈçºÎ°²×°VirtualBoxºÍUbuntu¡£´ËÍ⣬ͨ¹ý°²×°ÐéÄâ»ú£¬Äã¿ÉÒÔÔÚÒ»¸ö¸É¾»µÄ²Ù×÷ϵͳÖÐÍê³É¿ª·¢¡£Èç¹ûÄãÓöµ½ÈκÎÎÊÌ⣬Äܹ»Í¨¹ý¿ìËÙÖØÆô¼ÆËã»ú½â¾ö£¬Ò²¿ÉÒÔ±¸·ÝÐéÄâ»ú¼°ËùÓбØÒªµÄ»úÆ÷È˰²×°Îļþ¡£

1.3.1¡¡ÏÂÔØVirtualBox

µÚÒ»²½ÊÇÏÂÔØVirtualBoxµÄ°²×°Îļþ¡£ÔÚ±àд±¾Êéʱ£¬ÒÔÏÂÁ´½ÓÄܹ»ÔÚWindowsϵͳÖÐÏÂÔØ×îеĿÉÓð汾£ºhttp://download.virtualbox.org/virtualbox/4.3.12/VirtualBox4.3.12-93733-Win.exe¡£

Ò»µ©°²×°Íê³É£¬Äã¾ÍÐèÒªÏÂÔØUbuntuµÄ¾µÏñÎļþ¡£ÔÚ±¾½Ì³ÌÖУ¬ÎÒÃÇʹÓÃÒ»¸öÒѾ­°²×°ÁËROS HydroµÄUbuntu¾µÏñÎļþ¡£¿ÉÒÔͨ¹ýÒÔÏÂÁ´½ÓÏÂÔØËü£ºhttp://nootrix.com/2014/04/virtualized-ros-hydro/¡£

¶ÔÓÚÕâ¸ö°æ±¾£¬NootrixÍŶÓʹÓÃtorrentÏÂÔØÐéÄâ»ú¡£ÎÒ³¢ÊÔÁËÒÔÕâÖÖ·½Ê½ÏÂÔØÎļþ²¢ÇÒЧ¹ûºÜºÃ¡£

ÄãÒ²¿ÉÒÔÕÒµ½Ô¤°²×°ÁËUbuntuºÍROSµÄÆäËûÐéÄâ»ú£¬µ«ÎÒÃÇ»¹ÊÇҪʹÓÃÕâ¸öROS¹ÙÍøÍÆ¼öµÄ°æ±¾¡£

1.3.2¡¡´´½¨ÐéÄâ»ú

ͨ¹ýÏÂÔØºÃµÄÎļþ´´½¨ÐéÄâ»ú·Ç³£¼òµ¥£¬Ö»ÐèÒª°´ÕÕ±¾½ÚµÄÄÚÈÝÒ»²½Ò»²½½øÐм´¿É¡£´ò¿ªVirtualBoxÈí¼þ²¢µ¥»÷File |Import Appliance£¬È»ºóµã»÷Open appliance²¢Ñ¡Ôñ֮ǰÏÂÔØºÃµÄROSHydro.ovaÎļþ£¬ÈçÏÂͼËùʾ¡£


ÔÚÏÂÒ»¸ö´°¿ÚÖУ¬¿ÉÒÔÅäÖÃÐÂÐéÄâ»úµÄ²ÎÊý¡£ÎÒÃDZ£³ÖĬÈÏÅäÖò¢ÇÒ½ö½ö¸Ä±äÐéÄâ»úµÄÃû³Æ¡£Õâ¸öÃû³Æ°ïÖúÎÒÃÇÇø·Ö²»Í¬µÄÐéÄâ»ú¡£ÎÒÃÇÍÆ¼ö¸øËüÆðÒ»¸öÈÝÒ×Àí½âµÄÃû³Æ£¬ÔÚÕâÀïÎÒÃÇʹÓñ¾ÊéµÄÃû³Æ£¬ÈçÏÂͼËùʾ¡£


µã»÷Import°´Å¥£¬²¢ÔÚÏÂÒ»¸ö´°¿ÚÖнÓÊÜÈí¼þÊÚȨÐí¿É¡£Ä㽫¿´µ½Ò»¸ö½ø¶ÈÌõ¡£Õâ±íÃ÷VirtualBoxÕýÔÚ¸´ÖÆÐéÄâ»ú¾µÏñÎļþ£¬ËüÔÚÒÔеÄÃû³Æ´´½¨Ðµĸ±±¾¡£

ÐèҪ˵Ã÷µÄÊÇ£¬Õâ¸ö¹ý³Ì²¢²»»áÓ°ÏìÔ­ÓеÄROS.ovaÎļþ£¬²¢ÇÒÄã¿ÉÒÔͨ¹ý¶ÔÔ­Îļþ½øÐжà´Î¸´ÖÆ´´½¨¶à¸öÐéÄâ»ú¡£

¸´Öƹý³ÌËùÐèÒªµÄʱ¼äÈ¡¾öÓÚ¼ÆËã»úµÄÖ´ÐÐËÙ¶È¡£µ±ËüÍê³Éʱ£¬¿ÉÒÔµã»÷Start°´Å¥Æô¶¯ÐéÄâ»ú¡£ÐèҪעÒâµÄÊÇ£¬Èç¹ûÄãµÄ»úÆ÷ÉÏÓжà¸öÐéÄâ»ú£¬ÔÚÆô¶¯Ç°Ó¦¸ÃÑ¡ÔñÕýÈ·µÄÄÇÒ»¸ö¡£µ±È»£¬ÔÚÕâ¸öÀý×ÓÀïÖ»ÓÐÒ»¸öÐéÄâ»ú¡£


ÓÐʱºò»á³öÏÖÈçÏÂͼËùʾµÄ´íÎóÌáʾ¡£ÕâÊÇÒòΪ¼ÆËã»úûÓÐÕýÈ·µÄUSB 2.0Çý¶¯³ÌÐò¡£¿ÉÒÔͨ¹ý°²×°Oracle VM VirtualBoxÀ©Õ¹°ü£¨Extension Pack£©À´½â¾öÎÊÌ⣬µ±È»Ò²¿ÉÒÔͨ¹ýÔÚÐéÄâ»úÖнûÓÃUSBÖ§³ÖÀ´½â¾ö¡£


ΪÁ˽ûÓÃUSBÖ§³Ö£¬ÔÚÐéÄâ»úÉÏÓÒ¼üµ¥»÷²¢Ñ¡ÔñSettings¡£ÔÚ¹¤¾ßÀ¸ÖУ¬Ñ¡ÔñPorts | USB£¬²¢È¡Ïû¹´Ñ¡Enable USB 2.0£¨EHCI£©Controller¸´Ñ¡¿ò£¬ÈçÏÂͼËùʾ¡£ÖØÆôÐéÄâ»úºó£¬¾Í²»»áÔÙ³öÏÖÈκÎÎÊÌâ¡£


ÐéÄâ»úÆô¶¯Ö®ºó£¬ÄãÄÜ¿´µ½Íê³ÉROS°²×°Ö®ºóµÄUbuntu 12.04½çÃæ£¬ÈçÏÂͼÏÔʾ£º


µ±Íê³ÉÕâЩ²½Öèºó£¬Äã¾ÍÓÐÁËÒ»¸öÄܹ»ÔÚÕâ±¾ÊéÖÐʹÓõÄÍêÕû°æ±¾µÄROS Hydro¡£Äã¿ÉÒÔÔËÐÐËùÓеÄÀý×ÓºÍÎÒÃǽ«Ê¹ÓõŦÄܰü¼¯¡£Òź¶µÄÊÇ£¬VirtualBoxÔÚʹÓò¿·Öʵ¼ÊÍâ½ÓÉ豸µÄʱºò»áÓÐÎÊÌ⣬²¢ÇÒÄã¿ÉÄÜÎÞ·¨Ê¹ÓÃÕâ¸öROS Hydro¾µÏñÍê³ÉµÚ4ÕÂÖиø³öµÄÀý×Ó¡£

1.4¡¡ÔÚBeagleBone BlackÉϰ²×°ROS Hydro

BeagleBone Black£¨BBB£©ÊÇÒ»ÖÖ»ùÓÚARM Cortex A8´¦ÀíÆ÷µÄµÍ³É±¾¿ª·¢Æ½Ì¨¡£´Ë¿ª·¢°åÊÇ»ùÓÚ?ngstr?m Linux·¢ÐаæÖÆ×÷µÄ¡£?ngstr?mÓÉÒ»Ö§Ï£ÍûͳһǶÈëʽϵͳLinux·¢ÐаæµÄСÐÍÍŶӿª·¢£¬ËûÃÇÏ£Íû²Ù×÷ϵͳÊÇÎȶ¨ÇÒÓû§ÓѺõġ£

¿¼Âǵ½ÉçÇøµÄ¿ª·¢ÈËÔ±ÐèÒªÒ»¸ö¾ßÓÐһЩͨÓÃÊäÈë/Êä³ö£¨GPIO£©Òý½ÅµÄ»úÔØ¼ÆËã»úÉ豸£¬µÂÖÝÒÇÆ÷Éè¼ÆÁËBeagleBone Black¡£BeagleBone Blackƽ̨ÊÇBeagleBoneµÄ¸Ä½ø°æ¡£¿ª·¢°åµÄÖ÷ÒªÌØÐÔ°üÀ¨ARM Cortex A8´¦ÀíÆ÷£¨Ê±ÖÓÆµÂÊΪ1GHz£¬ÄÚ´æÎª512MB£©£¬¾ßÓÐÒÔÌ«Íø¡¢USB½Ó¿Ú¡¢HDMI¡¢46Òý½ÅGPIO½Ó¿Ú¡£ÕâЩGPIO¿ÉÒÔÉèÖÃΪÊý×ÖI/O¡¢ADC¡¢Âö¿íµ÷ÖÆ£¬ÒÔ¼°I2C¡¢SPI»òÕßUARTµÈͨÐÅЭÒé½Ó¿Ú¡£GPIOÊÇÒ»ÖÖÖ±½Ó½«´«¸ÐÆ÷ºÍÖ´ÐÐÆ÷ÓëBeagleBoneÁ¬½ÓµÄ¼òµ¥·½·¨¡£BeagleBoneÈçÏÂͼËùʾ£º


ÔÚBeagleBone¿ª·¢°å¸ÕÍÆ³öʱ£¬ÎÞ·¨Ö±½ÓÔÚ?ngstr?m·¢ÐаæÉϰ²×°ROS¡£ÓÉÓÚÕâ¸öÔ­Òò£¬Í¨³£ÔÚBeagleBoneÉϰ²×°»ùÓÚUbuntuµÄ²Ù×÷ϵͳ¡£Óв»Í¬°æ±¾µÄUbuntu ARM¼æÈÝBeagleBone BlackºÍROS£¬ÍƼöÔÚÔËÐÐROSµÄƽ̨ÉÏʹÓÃUbuntu 13.04 ARM raring armhfµÄ¾µÏñ¡£

ĿǰÒÑÓÐÁË?ngstr?m·¢ÐаæµÄROS°æ±¾°²×°Îļþ¡£°²×°²½Öè¿ÉÒԲο¼ÍøÖ·http://wiki.ros.org/hydro/Installation/Angstrom¡£³ý´ËÖ®Í⣬ÎÒÃÇÑ¡ÔñÔÚUbuntu ARMÉϰ²×°ROS»¹ÒòΪÕâ¸ö·¢Ðаæ¸ü³£Ó㬴ËÍâËü»¹¿ÉÒÔÓÃÓÚÆäËû»ùÓÚARMµÄ¿ª·¢°å£¬ÈçUDOO Odroid U3¡¢Odroid X2»òGumstick¡£

ARM¼¼ÊõÔÚÖÇÄÜÊÖ»úºÍƽ°å¼ÆËã»úµÈÒÆ¶¯É豸ÁìÓòÅ·¢Õ¹¡£³ýÁËÔö¼ÓµÄARM cortexÔËËãÐÔÄÜ£¬¸ß¼¯³É¶ÈºÍµÍ¹¦ºÄҲʹÕâÏî¼¼Êõ¸üÊʺÏÓÚ×ÔÖ÷»úÆ÷ÈËϵͳ¿ª·¢¡£ÔÚ¹ýÈ¥µÄ¼¸ÄêÀ¿ª·¢ÈËÔ±ÒѾ­ÔÚÊг¡ÉÏÍÆ³ö¶à¿îARMƽ̨¡£ÆäÖÐÒ»Ð©ÌØÐÔÀàËÆÓÚBeagleBone Black¡¢Raspberry PI»òGumstick Overo¡£´ËÍ⣬¸üÇ¿´óµÄ¿ª·¢°å£¨Èç¾ß±¸Ë«ºËARM Cortex A9µÄGumstick DuoVero»òËĺ˰æOdroid U3¡¢Odroid X2»òUDOO£©Ò²ÒѾ­ÉÏÊС£

1.4.1¡¡×¼±¸¹¤×÷

ÔÚ°²×°ROSµ½Beaglebone Black֮ǰ£¬ÎÒÃÇÐèÒª×öһЩ׼±¸¹¤×÷¡£±¾ÊéµÄÖØµãÊǽéÉÜROS£¬ÎÒÃǽ«ÁгöÕâЩ׼±¸¹¤×÷µ«²»Ïêϸ½éÉÜ¡£ºÜ¶à¹ØÓÚBeaglebone BlackºÍUbuntu ARMµÄÐÅÏ¢¿ÉÒÔÔÚÍøÕ¾¡¢ÂÛ̳ºÍÊéÖÐÕÒµ½¡£

Ê×ÏÈ£¬ÎÒÃDZØÐë°²×°Ò»¸öÓëROS¼æÈݵÄUbuntu ARM·¢Ðа档ËùÒÔÐèÒªUbuntu ARMµÄ°²×°¾µÏñ¡£¿ÉÒÔͨ¹ýÏÂÃæµÄÃüÁîʹÓÃwget»ñµÃUbuntu 13.04 Raring armhf£º


ÏÂÔØUbuntu 13.04 armhf¾µÏñ£¬½«Æä°²×°µ½SD¿¨ÉÏ¡£¿ÉÒÔÔÚeLinuxÍøÖ·Éϵõ½¹ØÓÚÈçºÎ°²×°Ubuntuµ½Bealgebone BlackµÄ¸ü¶àϸ½Ú£ºhttp://elinux.org/Beagleboard:Ubuntu_On_BeagleBone_Black # Ubuntu_ Raring_On_Micro_SD¡£

ÔÚ֮ǰµÄÍøÒ³ÉÏÃèÊöµÄ¹ý³Ì¹¤×÷Á¼ºÃ£¬µ«ÊÇÎÒÃDZØÐë×¢ÒâËùʹÓõÄUbuntu°æ±¾¡£ÓÉÓÚÍøÕ¾»á¶¨ÆÚ¸üУ¬Òò´ËËüÃÇÏÖÔÚʹÓõÄÊÇUbuntu 14.04£¬µ«Õâ¿ÉÄÜÓëÎÒÃÇËùʹÓõÄROS²»¼æÈÝ¡£ÎÒÃǽ«Ê¹ÓÃ֮ǰÌá¼°µÄUbuntu 13.04 Raring armhf¡£

Ò»µ©ÔÚ¿ª·¢Æ½Ì¨Öа²×°ºÃUbuntu ARM£¬¾ÍÐèÒªÅäÖÃBeaglebone BlackµÄÍøÂç½Ó¿ÚÒÔʵÏÖÍøÂç·ÃÎÊ¡£ËùÒÔ£¬±ØÐëÅäÖÃÈçIP¡¢DNSºÍÍø¹ØµÈÍøÂçÅäÖá£

¼Çס£¬ÔÚÁíÒ»¸ö¼ÆËã»úÉϹÒÔØSD¿¨²¢±à¼­/etc/network/interfaces¿ÉÄÜÊÇ×î¼òµ¥µÄ·½Ê½¡£

ÉèÖúÃÍøÂçºó£¬ÎªÁ˰²×°ROSÖÐÈçCMake¡¢Python»òVimµÈ¿ÉÄÜÐèÒªµÄ¹¦Äܰü¡¢³ÌÐòºÍ¿â£¬Ê¹ÓÃÒÔÏÂÃüÁ


ÓÃÓÚBeaglebone BlackµÄ²Ù×÷ϵͳÔÚ΢ÐÍSD¿¨ÉÏÅäÖõĿռäΪ1ÖÁ4GB¡£Õâ¸ö´æ´¢¿Õ¼äÊǷdz£ÓÐÏ޵ģ¬Èç¹ûÎÒÃÇÏëҪʹÓÃÒ»¸ö´óµÄROS Hydro¹¦Äܰü£¬Ëü¿ÉÄܾͲ»¹»ÓÃÁË¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬ÎÒÃÇ¿ÉÒÔʹÓÿռä¸ü´óµÄSD¿¨£¬ÖØÐ·ÖÇø£¬À©´óÎļþϵͳռ¿ÉÓÿռäµÄ±ÈÀý¡£

Èç¹ûÐèҪʹÓøü´óµÄ´æ´¢¿Õ¼ä£¬½¨ÒéÀ©´óBeaglebone BlackÄÚ´æÎļþϵͳ¡£ÔÚÍøÖ·http://elinux.org/Beagleboard:Expanding_File_System_Partition_On_A_microSD¿ÉÒԵõ½Ïà¹ØÄÚÈݵĽøÒ»²½½éÉÜ¡£

ͨ¹ýÏÂÁÐÃüÁî¿ÉÒÔʵÏÖÉÏÊöÄ¿µÄ£º

1.ÐèÒªÇл»µ½³¬¼¶Óû§Ä£Ê½£¬ÊäÈëÏÂÃæµÄÃüÁî²¢ÊäÈëÃÜÂ룺


2.²é¿´SD¿¨µÄ·ÖÇøÐÅÏ¢£º


3.ÊäÈëp£¬¿É¼ûSD¿¨µÄÁ½¸ö·ÖÇø£º


4.Ö®ºó£¬ÊäÈë'd'ɾ³ý·ÖÇø£¬È»ºóÊäÈë2Ö¸¶¨ÒªÉ¾³ýµÄ·ÖÇø/dev/mmcblk0p2£º


5.ÊäÈën£¬´´½¨Ò»¸öзÖÇø£»Èç¹ûÊäÈëp½«´´½¨Ò»¸öÖ÷·ÖÇø¡£ÎÒÃÇÊäÈë2Ö¸¶¨µÚ¶þ¸ö·ÖÇøµÄ±àºÅ¡£


6.Èç¹ûûÓÐÎÊÌ⣬ÊäÈëw±£´æÕâЩ²Ù×÷£¬»ò°´Ctrl + Z×éºÏ¼üÈ¡Ïû¸ü¸Ä£º


7.Íê³ÉºóÖØÆô¿ª·¢°å£º


8.Íê³ÉÖØÆôºó£¬ÔÙ´ÎÇл»µ½³¬¼¶Óû§Ä£Ê½£º


9.×îºó£¬ÔËÐÐÏÂÃæµÄÃüÁîÖ´ÐвÙ×÷ϵͳÄÚ´æÎļþϵͳµÄÀ©ÈÝ¡£


ÏÖÔÚÎÒÃÇ×¼±¸ºÃ°²×°ROSÁË¡£°²×°µÄ¹ý³Ì·Ç³£ÀàËÆÓÚÔÚ±¾ÕÂ֮ǰ½éÉܹýµÄ°²×°£¬Ö÷񻂿±ðÊÇÎÒÃDz»Äܰ²×°ROS full-desktop£¬±ØÐëµ¥¶À°²×°Ã¿Ò»¸ö¹¦Äܰü¡£

1.4.2¡¡ÅäÖÃÖ÷»úºÍsource.listÎļþ

ÏÖÔÚ¿ªÊ¼ÅäÖÃÖ÷»ú£º


ÔÚÕâÖ®ºó£¬ÎÒÃǽ«ÅäÖÃÔ´ÁÐ±í£¬Õâ»ùÓÚÎÒÃǰ²×°ÔÚBeagleBone BlackÖеÄUbuntu°æ±¾¡£¼æÈÝBeagleBone BlackµÄUbuntu°æ±¾ÊýÁ¿ÓÐÏÞ£¬Ä¿Ç°»îÔ¾µÄ·¢ÐаæÊÇUbuntu 13.04 raring armhf£¬ËüÒ²ÊÇUbuntu ARM×îÊÜ»¶Ó­µÄ°æ±¾¡£

Ubuntu 13.04 Raring armhf£º


Ubuntu 12.10 Quantal armhf£º


Ubuntu 12.04 Precise armhf£º


1.4.3¡¡ÉèÖÃÃÜÔ¿

ÕýÈçÇ°ÃæËù½âÊ͵ģ¬ÕâÒ»²½ÐèҪȷÈÏÔ´´úÂëÊÇÕýÈ·µÄ£¬²¢ÇÒûÓÐÈËÔÚδ¾­ËùÓÐÕßÊÚȨµÄÇé¿öÏÂÐ޸Ĺý´úÂë»ò³ÌÐò£º


1.4.4¡¡°²×°ROS¹¦Äܰü

ÔÚ°²×°ROS¹¦Äܰü֮ǰ£¬ÎÒÃDZØÐë¸üÐÂϵͳÒÔ±ÜÃâ³öÏÖ¿âÒÀÀµµÄÎÊÌâ¡£


Õⲿ·Ö°²×°ÓëBeaglebone BlackÂÔÓв»Í¬¡£ROSÖÐÓкܶà¿âºÍ¹¦Äܰü£¬²¢²»ÊÇÈ«²¿¶¼ÄÜÔÚARMÉÏÍêÕû±àÒë¡£ËùÒÔ²»¿ÉÄÜʵÏÖÒ»¸öÍêÕûµÄ×ÀÃæ°æ°²×°¡£½¨Òé¶ÀÁ¢°²×°¸÷¹¦Äܰü£¬ÒÔÈ·±£ËüÃÇÄÜÔÚARMƽ̨ÉÏÔËÐС£

Äã¿ÉÒÔ³¢ÊÔ°²×°ROS-base£¬³ÆÎªROS Bare Bones¡£ROS-base»á°²×°°üÀ¨±àÒëºÍͨÐÅ¿âÒÔ¼°ROS¹¦Äܰü£¬µ«²»°üÀ¨GUI¹¤¾ß£º


ÎÒÃÇ¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁîÀ´°²×°Ö¸¶¨µÄROS¹¦Äܰü£º


Èç¹ûÎÒÃÇÐèÒª²éÕÒÔÚBeagleBone BlackÖпÉÓõÄROS¹¦Äܰü£¬ÔËÐÐÏÂÃæµÄÃüÁ


ÀýÈ磬ÏÂÃæµÄ°üΪROSÕý³£¹¤×÷µÄ»ù´¡£¬¿ÉÒÔʹÓÃapt-getµ¥¶À°²×°£º


ËäÈ»´ÓÀíÂÛÉϽ²£¬BeagleBone Black²¢²»Ö§³ÖËùÓеÄROS¹¦Äܰü£¬µ«Êµ¼ÊÉÏÎÒÃÇÒѾ­Äܹ»½«ÔÚPCÉÏ¿ª·¢µÄÕû¸öÏîÄ¿ÒÆÖ²µ½BeagleBone Black¡£ÎÒÃdzɹ¦³¢ÊÔÁ˺ܶ๦Äܰü£¬Ö»Óа²×°rvizûÓÐʵÏÖ¡£

1.4.5¡¡³õʼ»¯rosdep

ÔÚʹÓÃROS֮ǰ£¬±ØÐëÊ×ÏȰ²×°²¢³õʼ»¯rosdepÃüÁîÐй¤¾ß£¬¿ÉʹÄãÇáËɵذ²×°¿â²¢½â¾öÄã×¼±¸±àÒëÔ´´úÂëµÄϵͳÒÀÀµÎÊÌ⣬ÒÔ¼°ÌṩROSÔËÐÐÐèÒªµÄһЩºËÐÄ×é¼þ¡£¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁî°²×°²¢³õʼ»¯rosdep£º


1.4.6¡¡ÔÚBeagleBone BlackÖÐÅäÖû·¾³

Èç¹ûÄãÒѾ­µ½´ïÕâÒ»²½£¬¹§Ï²Ä㣬ÒòΪÄãÒѾ­ÔÚBeagleBone BlackÖгɹ¦µØ°²×°ÁËROS¡£Ìí¼ÓÏÂÃæµÄROS»·¾³±äÁ¿µ½bashÖУ¬ÕâÑùËüÃǾͻáÔÚÿ´ÎÃüÁîÐÐÆô¶¯Ê±×Ô¶¯¼ÓÔØ£º


Èç¹ûÔÚϵͳÖÐÓжà¸ö°æ±¾µÄROSÎÒÃDZØÐë×¢Òâ¡£bashrcµÄ±äÁ¿±ØÐëÉèÖÃΪÎÒÃÇÕýÔÚʹÓõİ汾¡£

Èç¹ûÎÒÃÇÏëÒªÔÚµ±Ç°ÃüÁîÐÐÖÐÅäÖû·¾³£¬ÔËÐÐÃüÁîÈçÏ£º


1.4.7¡¡ÔÚBeagleBone BlackÖа²×°rosinstall

rosinstallÊÇROSÖÐÒ»¸ö³£¼ûµÄÃüÁîÐй¤¾ß£¬Ê¹°²×°¹¦Äܰü¸ü·½±ã¡£Èç¹ûÄãÒª°²×°Ëü£¬¿ÉÒÔÔÚUbuntuÖÐʹÓÃÏÂÃæµÄÃüÁîÐУº


1.5¡¡±¾ÕÂС½á

ÔÚÕâÒ»Õ£¬ÎÒÃÇѧϰÁËÈçºÎÔÚ²»Í¬UbuntuÉ豸ÉÏ£¨¼ÆËã»ú¡¢VirtualBox¡¢BeagleBone Black£©°²×°ROS Hydro¡£Í¨¹ýÕâЩ²½Ö裬ÄãÒѾ­ÔÚϵͳÉϰ²×°ÁËÒ»ÇбØÒªµÄÈí¼þ£¬¿ÉÒÔʹÓÃROS¿ªÊ¼¹¤×÷£¬Ò²¿ÉÒÔÁ·Ï°±¾ÊéÖеÄʾÀý¡£ÄãÒ²¿ÉÒÔʹÓÃÔ´´úÂëÀ´°²×°ROS¡£µ«ÕâÑù×öÐèÒª±àÒëËùÓдúÂ룬Òò´ËÖ»ÊÊÓÃÓڸ߼¶LinuxÓû§¡£¶øÎÒÃÇÒ»°ã½¨ÒéÄãʹÓÃÈí¼þ¿â°²×°£¬ÕâÑù×ö¸üͨÓã¬ÇÒÒ»°ã²»»á³öÏÖÈκδíÎó»òÎÊÌâ¡£

Èç¹ûÄã¶ÔUbuntuϵͳ²»ÊǺÜÊìϤ£¬ÄÇô½¨Á¢Ò»¸öÐéÄâ»ú²¢ÔÚÐéÄâ»úÉÏѧϰʹÓÃROS»á¸ü¼Ó·½±ã¡£ÕâÑù£¬Èç¹ûÄãÔÚ°²×°ºÍʹÓùý³ÌÖз¢ÉúÈκÎÎÊÌ⣬¶¼ÎÞÐèÖØÐ°²×°²Ù×÷ϵͳ£¬Ö»ÐèÒª»Ö¸´ÐéÄâ»ú¾µÏñÎļþ£¬È»ºó¾Í¿ÉÒÔÖØÐ¿ªÊ¼¡£

ͨ³£Çé¿öÏ£¬ÐéÄâ»ú²»ÄÜ·ÃÎÊÀ©Õ¹³öµÄʵ¼ÊÓ²¼þ£¬Èç´«¸ÐÆ÷ºÍÖ´ÐÐÆ÷¡£¾¡¹ÜÈç´Ë£¬ÄãÈÔ¿ÉÒÔÓÃËüÀ´²âÊÔËã·¨¡£

ÏÂÒ»Õ½«Ñ§Ï°ROSµÄ¼Ü¹¹¡¢Ò»Ð©ÖØÒªµÄ¸ÅÄÒÔ¼°Ò»Ð©Äܹ»ÓëROS½øÐÐÖ±½Ó½»»¥µÄ¹¤¾ß¡£





µÚ2ÕÂ

ROSϵͳ¼Ü¹¹¼°¸ÅÄî

Ò»µ©ÄãÍê³ÉÁËROSϵͳµÄ°²×°£¬Äã¿Ï¶¨»áÏë¡°ºÃÁË£¬ÎÒÒѾ­°²×°Íê³É£¬ÄÇôÏÂÒ»²½Òª×öÊ²Ã´ÄØ£¿¡±ÔÚ±¾ÕÂÎÒÃǽ«Ñ§Ï°ROSϵͳ¼Ü¹¹¼°ËüµÄ×é³É¡£È»ºó£¬ÎÒÃǻῪʼ´´½¨½ÚµãºÍ¹¦Äܰü£¬²¢Ê¹ÓÃROSϵͳ×Ô´øµÄTurtleSimʾÀý¡£

ROSϵͳµÄ¼Ü¹¹Ö÷Òª±»Éè¼ÆºÍ»®·Ö³ÉÁËÈý²¿·Ö£¬Ã¿Ò»²¿·Ö¶¼´ú±íÒ»¸ö²ã¼¶µÄ¸ÅÄ

Îļþϵͳ¼¶£¨The Filesystem level£©

¼ÆËãͼ¼¶£¨The Computation Graph level £©

¿ªÔ´ÉçÇø¼¶£¨The Community level£©

µÚÒ»¼¶ÊÇÎļþϵͳ¼¶¡£ÔÚÕâÒ»¼¶£¬ÎÒÃÇ»áʹÓÃÒ»×é¸ÅÄîÀ´½âÊÍROSµÄÄÚ²¿¹¹³É¡¢Îļþ¼Ð½á¹¹£¬ÒÔ¼°¹¤×÷ËùÐèµÄºËÐÄÎļþ¡£

µÚ¶þ¼¶ÊǼÆËãͼ¼¶£¬ÌåÏÖµÄÊǽø³ÌºÍϵͳ֮¼äµÄͨÐÅ¡£ÔÚÏà¹ØÐ¡½ÚÖУ¬ÎÒÃǽ«Ñ§Ï°ROSµÄ¸÷¸ö¸ÅÄîºÍ¹¦ÄÜ£¬°üÀ¨½¨Á¢ÏµÍ³¡¢´¦Àí¸÷Àà½ø³Ì¡¢Óë¶ą̀¼ÆËã»úͨÐŵȡ£

µÚÈý¼¶ÊÇ¿ªÔ´ÉçÇø¼¶£¬ÎÒÃǽ«½âÊÍһϵÁеŤ¾ßºÍ¸ÅÄÆäÖаüÀ¨ÔÚ¿ª·¢ÈËÔ±Ö®¼äÈçºÎ¹²Ïí֪ʶ¡¢Ëã·¨ºÍ´úÂë¡£Õâ¸ö²ã¼¶·Ç³£ÖØÒª£¬ÕýÊÇÓÉÓÚ¿ªÔ´ÉçÇøµÄ´óÁ¦Ö§³Ö£¬ROSϵͳ²ÅµÃÒÔ¿ìËٳɳ¤¡£

2.1¡¡Àí½âROSÎļþϵͳ¼¶

Èç¹ûÄã¸Õ½Ó´¥ROS£¬ÎÞÂÛÊÇ×¼±¸Ê¹ÓÃROSϵͳ»¹ÊÇ×¼±¸¿ª·¢ROSÏîÄ¿£¬Äã¶¼»á¾õµÃROSÖеĸ÷ÖÖ¸ÅÄî·Ç³£Ææ¹Ö¡£¶øÒ»µ©Äã¼ÝÇá¾ÍÊ죬ÄÇôÕâЩ¸ÅÄî¾Í»á±äµÃÊìϤÁË¡£


ÓëÆäËû²Ù×÷ϵͳÀàËÆ£¬Ò»¸öROS³ÌÐòµÄ²»Í¬×é¼þÒª±»·ÅÔÚ²»Í¬µÄÎļþ¼ÐÏ¡£ÕâЩÎļþ¼ÐÊǸù¾Ý¹¦ÄܵIJ»Í¬À´¶ÔÎļþ½øÐÐ×éÖ¯µÄ£º

¹¦Äܰü£¨Package£©£º¹¦ÄܰüÊÇROSÖÐÈí¼þ×éÖ¯µÄ»ù±¾ÐÎʽ¡£Ò»¸ö¹¦Äܰü¾ßÓÐÓÃÓÚ´´½¨ROS³ÌÐòµÄ×îС½á¹¹ºÍ×îÉÙÄÚÈÝ¡£Ëü¿ÉÒÔ°üº¬ROSÔËÐеĽø³Ì£¨½Úµã£©¡¢ÅäÖÃÎÄ

¼þµÈ¡£

¹¦ÄܰüÇåµ¥£¨Package Manifest£©£º¹¦ÄܰüÇåµ¥Ìṩ¹ØÓÚ¹¦Äܰü¡¢Ðí¿ÉÐÅÏ¢¡¢ÒÀÀµ¹ØÏµ¡¢±àÒë±êÖ¾µÈµÄÐÅÏ¢¡£Ò»¸ö°üµÄÇåµ¥ÓÉÒ»¸öÃûΪpackage.xmlµÄÎļþ¹ÜÀí¡£

×ۺϹ¦Äܰü£¨Metapackage£©£ºÈç¹ûÄ㽫¼¸¸ö¾ßÓÐijЩ¹¦ÄܵŦÄܰü×éÖ¯ÔÚÒ»Æð£¬ÄÇôÄ㽫»á»ñµÃÒ»¸ö×ۺϹ¦Äܰü¡£ÔÚROS FuerteÖУ¬ÕâÖÖ°üµÄ×éÖ¯ÐÎʽ±»³ÆÎª¹¦Äܰü¼¯£¨Stack£©¡£ÎªÁ˱£³ÖROS¼ò½à£¬¹¦Äܰü¼¯±»ÒƳý£¬ÏÖÔÚʹÓÃ×ۺϹ¦ÄܰüʵÏÖÕâ¸ö¹¦ÄÜ¡£ÔÚROSϵͳÖУ¬´æÔÚ´óÁ¿²»Í¬ÓÃ;µÄ×ۺϹ¦Äܰü£¬ÀýÈçµ¼º½¹¦Äܰü¼¯¡£

×ۺϹ¦ÄܰüÇåµ¥£¨Metapackage manifest£©£º×ۺϹ¦ÄܰüÇåµ¥£¨package.xml£©ÀàËÆÆÕͨ¹¦Äܰüµ«ÓÐÒ»¸öXML¸ñʽµÄµ¼³ö±ê¼Ç¡£ËüÔڽṹÉÏÒ²ÓÐÒ»¶¨µÄÏÞÖÆ¡£

ÏûÏ¢ÀàÐÍ£¨Message£¨msg£©type£©£ºÏûÏ¢ÊÇÒ»¸ö½ø³Ì·¢Ë͵½ÆäËû½ø³ÌµÄÐÅÏ¢¡£ROSϵͳÓкܶàµÄ±ê×¼ÀàÐÍÏûÏ¢¡£ÏûÏ¢ÀàÐ͵Ä˵Ã÷´æ´¢ÔÚmy_package/msg/MyMessageType.msgÖУ¬Ò²¾ÍÊǶÔÓ¦¹¦ÄܰüµÄmsgÎļþ¼ÐÏ¡£

·þÎñÀàÐÍ£¨Service£¨srv£©type£©£º·þÎñÃèÊö˵Ã÷´æ´¢ÔÚmy_package/srv/MyServiceType.srvÖУ¬¶¨ÒåÁËÔÚROSÖÐÓÉÿ¸ö½ø³ÌÌṩµÄ¹ØÓÚ·þÎñÇëÇóºÍÏìÓ¦µÄÊý¾Ý½á¹¹¡£

ÔÚÓÒ²àµÄ½ØÍ¼ÖУ¬¿ÉÒÔ¿´µ½turtlesim¹¦ÄܰüµÄÄÚÈÝ¡£Äã¿´µ½µÄÊÇһϵÁÐÎļþºÍÎļþ¼Ð£¬°üº¬´úÂ롢ͼƬ¡¢Æô¶¯Îļþ¡¢·þÎñºÍÏûÏ¢¡£¼Çס£¬½ØÍ¼ÏÔʾÎļþµÄÒ»¸ö¼ò¶ÌÁÐ±í£¬ÕæÕýµÄ¹¦Äܰü»á¸ü¶à¡£

2.1.1¡¡¹¤×÷¿Õ¼ä

¸ÅÑÔÖ®£¬¹¤×÷¿Õ¼ä¾ÍÊÇÒ»¸ö°üº¬¹¦Äܰü¡¢¿É±à¼­Ô´Îļþ»ò±àÒë°üµÄÎļþ¼Ð¡£µ±ÄãÏëͬʱ±àÒ벻ͬµÄ¹¦Äܰüʱ·Ç³£ÓÐÓ㬲¢ÇÒ¿ÉÒÔÓÃÀ´±£´æ±¾µØ¿ª·¢°ü¡£

ÏÂͼËùʾµÄÊÇÒ»¸öµäÐ͵Ť×÷¿Õ¼ä¡£Ã¿¸öÎļþ¼Ð¶¼ÊÇÒ»¸ö¾ßÓв»Í¬¹¦ÄܵĿռ䣺


Ô´Îļþ¿Õ¼ä£¨The Source space£©£ºÔÚÔ´¿Õ¼ä£¨srcÎļþ¼Ð£©·ÅÖÃÁ˹¦Äܰü¡¢ÏîÄ¿¡¢¿Ë¡°üµÈ¡£ÔÚÕâ¸ö¿Õ¼ä×îÖØÒªµÄÒ»¸öÎļþÊÇCMakeLists.txt¡£µ±ÄãÔÚ¹¤×÷¿Õ¼äÖÐÅäÖù¦Äܰüʱ£¬srcÎļþ¼ÐCMakeLists.txtµ÷ÓÃCMake¡£Õâ¸öÎļþÊÇͨ¹ýcatkin_init_workspaceÃüÁî´´½¨µÄ¡£

±àÒë¿Õ¼ä£¨The Build space£©£ºÔÚbuildÎļþ¼ÐÀCMakeºÍcatkinΪ¹¦ÄܰüºÍÏîÄ¿±£´æ»º´æÐÅÏ¢¡¢ÅäÖÃºÍÆäËûÖмäÎļþ¡£

¿ª·¢¿Õ¼ä£¨The Development£¨devel£©space£©£ºdevelÎļþ¼ÐÓÃÀ´±£´æ±àÒëºóµÄ³ÌÐò£¬ÕâЩÊÇÎÞÐè°²×°¾ÍÄÜÓÃÀ´²âÊԵijÌÐò¡£Ò»µ©ÏîĿͨ¹ý²âÊÔ£¬Äã¿ÉÒÔ°²×°»òµ¼³ö¹¦ÄܰüÓëÆäËû¿ª·¢ÈËÔ±·ÖÏí¡£

catkin±àÒë°üÓÐÁ½¸öÑ¡Ïî¡£µÚÒ»¸öÊÇʹÓñê×¼CMake¹¤×÷Á÷³Ì£¬Í¨¹ý´Ë·½Ê½¿ÉÒÔÒ»´Î±àÒëÒ»¸ö°ü£¬¼ûÒÔÏÂÃüÁ


Èç¹ûÄãÏë±àÒëËùÓеİü£¬¿ÉÒÔʹÓÃcatkin_makeÃüÁîÐУ¬¼ûÒÔÏÂÃüÁ


ÔÚROSÅäÖõıàÒë¿Õ¼äĿ¼ÖУ¬ÕâÁ½¸öÃüÁî±àÒë¿ÉÖ´ÐÐÎļþ¡£

ROSµÄÁíÒ»¸öÓÐȤµÄÌØÐÔÊÇËüµÄ¸²¸Ç¡£µ±ÄãÕýÔÚʹÓÃROS¹¦Äܰü£¬ÀýÈçTurtlesim£¬Äã¿ÉÒÔʹÓð²×°°æ±¾£¬Ò²¿ÉÒÔÏÂÔØÔ´Îļþ²¢±àÒëËüÀ´Ê¹ÓÃÄãµÄÐ޸İ汾¡£

ROSÔÊÐíʹÓÃÄã×Ô¼º°æ±¾µÄ¹¦ÄܰüÒÔÌæ´ú°²×°°æ±¾¡£Èç¹ûÄãÕýÔÚ°²×°Éý¼¶°ü£¬ÕâÊǷdz£ÓÐÓõġ£»òÐí´ËʱÄã²¢²»Àí½âËüµÄ×÷Ó㬵«ÎÞÐèµ£ÐÄ£¬ÔÚÏÂÒ»ÕÂÎÒÃǽ«Ê¹ÓÃÕâ¸ö¹¦ÄÜÀ´´´½¨×Ô¼ºµÄ²å¼þ¡£

2.1.2¡¡¹¦Äܰü

¹¦ÄܰüÖ¸µÄÊÇÒ»ÖÖÌØ¶¨µÄÎļþ½á¹¹ºÍÎļþ¼Ð×éºÏ¡£ÕâÖֽṹÈçÏÂËùʾ£º

include/package_name/£º´ËĿ¼°üº¬ÁËÄãÐèÒªµÄ¿âµÄÍ·Îļþ¡£

msg/£ºÈç¹ûÄãÒª¿ª·¢·Ç±ê×¼ÏûÏ¢£¬Çë°ÑÎļþ·ÅÔÚÕâÀï¡£

scripts/£ºÆäÖаüÀ¨Bash¡¢Python»òÈÎºÎÆäËû½Å±¾µÄ¿ÉÖ´Ðнű¾Îļþ¡£

src/£ºÕâÊÇ´æ´¢³ÌÐòÔ´ÎļþµÄµØ·½¡£Äã¿ÉÄÜ»áΪ½Úµã´´½¨Ò»¸öÎļþ¼Ð»ò°´ÕÕÄãÏ£ÍûµÄ·½Ê½È¥×éÖ¯Ëü¡£

srv/£ºÕâ±íʾ·þÎñ£¨srv£©ÀàÐÍ¡£

CMakeLists.txt£ºÕâÊÇCMakeµÄÉú³ÉÎļþ¡£

package.xml£ºÕâÊǹ¦ÄܰüÇåµ¥Îļþ¡£

ΪÁË´´½¨¡¢Ð޸ĻòʹÓù¦Äܰü£¬ROS¸øÎÒÃÇÌṩÁËһЩ¹¤¾ß£º

rospackʹÓôËÃüÁîÀ´»ñÈ¡ÐÅÏ¢»òÔÚϵͳÖвéÕÒ¹¤×÷¿Õ¼ä¡£

catkin_create_pkg¡¡µ±ÄãÏëÒª´´½¨Ò»¸öÐµĹ¦Äܰüʱ£¬Ê¹ÓôËÃüÁî¡£

catkin_make¡¡Ê¹ÓôËÃüÁîÀ´±àÒ빤×÷¿Õ¼ä¡£

rosdep¡¡´ËÃüÁî°²×°¹¦ÄܰüµÄϵͳÒÀÀµÏî¡£

rqt_dep£ºÕâ¸öÃüÁîÓÃÀ´²é¿´°üµÄÒÀÀµ¹ØÏµÍ¼¡£Èç¹ûÄãÏë¿´°üµÄÒÀÀµ¹ØÏµÍ¼£¬Äã»áÔÚrqt·¢ÏÖÒ»¸ö³ÆÎª°üͼ£¨package graph£©²å¼þ¡£Ñ¡ÔñÒ»¸ö°ü²¢²é¿´ÒÀÀµ¹ØÏµ¡£

ÈôÒªÔÚÎļþ¼ÐºÍ¹¦ÄܰüÖ®¼äÒÆ¶¯Îļþ£¬ROSÌṩÁ˷dz£ÓÐÓõÄrosbash¹¦Äܰü£¬ÆäÖаüº¬ÁËһЩ·Ç³£ÀàËÆÓÚLinuxÃüÁîµÄÃüÁî¡£ÀýÈ磺

roscd¡¡´ËÃüÁîÓÃÓÚ¸ü¸ÄĿ¼£¬ÀàËÆÓÚLinuxÖеÄcdÃüÁî¡£

rosed¡¡´ËÃüÁîÓÃÀ´±à¼­Îļþ¡£

roscp¡¡´ËÃüÁîÓÃÓÚ´ÓһЩ¹¦Äܰü¸´ÖÆÎļþ¡£

rosd¡¡´ËÃüÁîÁгö¹¦ÄܰüµÄĿ¼¡£

rosls¡¡´ËÃüÁîÁгö¹¦ÄܰüϵÄÎļþ£¬ÀàËÆÓÚLinuxÖеÄlsÃüÁî¡£

Îļþpackage.xml±ØÐëÔÚ¹¦ÄܰüÖУ¬ÓÃÀ´ËµÃ÷´Ë¹¦ÄܰüÏà¹ØµÄ¸÷ÀàÐÅÏ¢¡£Èç¹ûÄã·¢ÏÖÔÚij¸öÎļþ¼ÐÄÚ°üº¬´ËÎļþ£¬ÄÇôÕâ¸öÎļþ¼ÐºÜ¿ÉÄÜÊÇÒ»¸ö¹¦Äܰü»ò×ۺϹ¦Äܰü¡£

´ò¿ªÒ»¸öpackage.xmlÎļþ£¬¿ÉÒÔ¿´µ½°üµÄÃû³Æ¡¢ÒÀÀµ¹ØÏµµÈÐÅÏ¢¡£¹¦ÄܰüÇåµ¥µÄ×÷ÓþÍÊÇΪÁ˸üÈÝÒ׵ذ²×°ºÍ·Ö·¢ÕâЩ¹¦Äܰü¡£

ÔÚpackage.xmlÎļþÖÐʹÓõÄÁ½¸öµäÐͱê¼ÇÊÇ<build_depend>ºÍ<run_depend>¡£

<build_depend>±ê¼Ç»áÏÔʾµ±Ç°¹¦Äܰü°²×°Ö®Ç°±ØÐëÏȰ²×°ÄÄЩ¹¦Äܰü¡£ÕâÊÇÒòΪÐµĹ¦Äܰü»áʹÓÃÆäËû°üµÄһЩ¹¦ÄÜ¡£

<run_depend>±ê¼ÇÏÔʾÔËÐй¦Äܰü´úÂëËùÐèÒªµÄ°ü¡£ÓÒÃæ½ØÍ¼ÊÇpackage.xmlÎļþµÄʾÀý¡£

2.1.3¡¡×ۺϹ¦Äܰü

ÈçǰËùÊö£¬×ۺϹ¦ÄܰüÊÇһЩֻÓÐÒ»¸öÎļþµÄÌØ¶¨°ü£¬ËüÊÇpackage.xml¡£Ëü²»°üº¬ÆäËûÎļþ£¬Èç´úÂëµÈ¡£

×ۺϹ¦ÄܰüÓÃÓÚÒýÓÃÆäËû¹¦ÄÜÌØÐÔÀàËÆµÄ¹¦Äܰü£¬ÀýÈçµ¼º½°ü¡¢ros_tutorialsµÈ¡£

Äã¿ÉÒÔ½«ROS FuerteµÄ¹¦ÄܰüºÍ¹¦Äܰü¼¯×ªÎªHydroºÍcatkin¡£¾ßÌå²Î¿¼http://wiki.ros. org/catkin/migrating_from_rosbuild¡£

ÔÚÓÒÃæ½ØÍ¼ÖУ¬Äã¿ÉÒÔ¿´µ½ÔÚros_tutorials×ۺϹ¦ÄܰüÖÐpackage.xmlµÄÄÚÈÝ¡£Äã¿ÉÒÔ¿´µ½<export>±ê¼ÇºÍ<run_depend>±ê¼Ç£¬ÕâЩÊǹ¦ÄܰüÇåµ¥Öбز»¿ÉÉٵġ£

Èç¹ûÄãÏ붨λros_tutorials×ۺϹ¦Äܰü£¬¿ÉÒÔʹÓÃÏÂÃæµÄÃüÁ


ÏÔʾ·¾¶Îª£º/opt/ros/hydro/share/ros_tutorials¡£

²é¿´ÀïÃæµÄ´úÂ룬ͨ¹ýÏÂÃæÃüÁ


¼ÇסHydroʹÓÃ×ۺϹ¦Äܰü£¬²»Êǹ¦Äܰü¼¯£¬µ«»¹ÊÇÓÃrosstackÃüÁîÓÃÓÚѰÕÒ×ۺϹ¦Äܰü¡£

2.1.4¡¡ÏûÏ¢

ROSʹÓÃÁËÒ»ÖÖ¼ò»¯µÄÏûÏ¢ÀàÐÍÃèÊöÓïÑÔÀ´ÃèÊöROS½Úµã·¢²¼µÄÊý¾ÝÖµ¡£Í¨¹ýÕâÑùµÄÃèÊöÓïÑÔ£¬ROSÄܹ»Ê¹ÓöàÖÖ±à³ÌÓïÑÔÉú³É²»Í¬ÀàÐÍÏûÏ¢µÄÔ´´úÂë¡£

ROSÌṩÁ˺ܶàÔ¤¶¨ÒåÏûÏ¢ÀàÐÍ¡£Èç¹ûÄã´´½¨ÁËÒ»ÖÖеÄÏûÏ¢ÀàÐÍ£¬ÄÇô¾ÍÒª°ÑÏûÏ¢µÄÀàÐͶ¨Òå·Åµ½¹¦ÄܰüµÄmsg/Îļþ¼ÐÏ¡£ÔÚ¸ÃÎļþ¼ÐÖУ¬ÓÐÓÃÓÚ¶¨Òå¸÷ÖÖÏûÏ¢µÄÎļþ¡£ÕâЩÎļþ¶¼ÒÔ.msgΪÀ©Õ¹Ãû¡£

ÏûÏ¢ÀàÐͱØÐë¾ßÓÐÁ½¸öÖ÷Òª²¿·Ö£º×ֶκͳ£Á¿¡£×ֶζ¨ÒåÁËÒªÔÚÏûÏ¢Öд«ÊäµÄÊý¾ÝÀàÐÍ£¬ÀýÈçint32¡¢float32¡¢string»ò֮ǰ´´½¨µÄÐÂÀàÐÍ£¬Èç½Ð×ötype1ºÍtype2µÄÐÂÀàÐÍ¡£³£Á¿ÓÃÓÚ¶¨Òå×ֶεÄÃû³Æ¡£

Ò»¸ömsgÎļþµÄʾÀýÈçÏ£º


ÎÒÃÇÄܹ»ÔÚϱíÖÐÕÒµ½ºÜ¶àROSÏûÏ¢ËùʹÓõıê×¼Êý¾ÝÀàÐÍ£º

»ù±¾ÀàÐÍ ÐòÁл¯ C++ Python

bool(1) unsigned 8-bit int uint8_t(2) bool

int8 signed 8-bit int int8_t int

uint8 unsigned 8-bit int uint8_t int(3)

int16 signed 16-bit int int16_t int

uint16 unsigned 16-bit int uint16_t int

int32 signed 32-bit int int32_t int

uint32 unsigned 32-bit int uint32_t int

int64 signed 64-bit int int64_t long

uint64 unsigned 64-bit int uint64_t long

float32 32-bit IEEE float float float

float64 64-bit IEEE float double float

string ascii string (4) std::string string

time secs/nsecs signed 32-bit ints ros::Time rospy.Time

duration secs/nsecs signed 32-bit ints ros::Duration rospy.Duration


ROSÏûÏ¢ÖеÄÒ»ÖÖÌØÊâÊý¾ÝÀàÐÍÊDZ¨ÎÄÍ·£¬Ö÷ÒªÓÃÓÚÌí¼Óʱ¼ä´Á¡¢×ø±êλÖõȡ£±¨ÎÄÍ·»¹ÔÊÐí¶ÔÏûÏ¢½øÐбàºÅ¡£Í¨¹ýÔÚ±¨ÎÄÍ·ÄÚ²¿¸½¼ÓÐÅÏ¢£¬ÎÒÃÇ¿ÉÒÔÖªµÀÊÇÄĸö½Úµã·¢³öµÄÏûÏ¢£¬»òÕß¿ÉÒÔÌí¼ÓһЩÄܹ»±»ROS´¦ÀíµÄÆäËû¹¦ÄÜ¡£

±¨ÎÄÍ·ÀàÐͰüº¬ÒÔÏÂ×ֶΣº


¿ÉÒÔͨ¹ýÏÂÃæÃüÁî²é¿´ÏûÏ¢µÄ½á¹¹£º


ÎÒÃǽ«ÔÚºóÐøµÄÕ½ÚÖп´µ½£¬ÕýÊÇͨ¹ý±¨ÎÄÍ·²ÅÄܹ»¼Ç¼µ±Ç°»úÆ÷ÈËÔËÐеÄʱ¼ä´ÁºÍ×ø±êλÖá£

ÔÚROSÖÐÓÐһЩ´¦ÀíÏûÏ¢µÄ¹¤¾ß¡£ÀýÈçrosmsgÃüÁîÐй¤¾ßÄܹ»Êä³öÏûÏ¢¶¨ÒåÐÅÏ¢£¬²¢¿ÉÒÔÕÒµ½Ê¹ÓøÃÏûÏ¢ÀàÐ͵ÄÔ´Îļþ¡£

ÔÚºóÃæµÄÕ½ÚÖУ¬ÎÒÃǽ«»áѧϰÈçºÎʹÓÃÕýÈ·µÄ¹¤¾ß´´½¨ÏûÏ¢¡£

2.1.5¡¡·þÎñ

ROSʹÓÃÁËÒ»ÖÖ¼ò»¯µÄ·þÎñÃèÊöÓïÑÔÀ´ÃèÊöROSµÄ·þÎñÀàÐÍ¡£ÕâÖ±½Ó½è¼øÁËROS msgÏûÏ¢µÄÊý¾Ý¸ñʽ£¬ÒÔʵÏÖ½ÚµãÖ®¼äµÄÇëÇó/ÏìӦͨÐÅ¡£·þÎñµÄÃèÊö´æ´¢ÔÚ¹¦ÄܰüµÄsrv/×ÓĿ¼ÏÂ.srvÎļþÖС£

ÈôÒªµ÷Ó÷þÎñ£¬ÄãÐèҪʹÓøù¦ÄܰüµÄÃû³Æ¼°·þÎñÃû³Æ¡£ÀýÈ磬¶ÔÓÚsample_package1/srv/sample1.srvÎļþ£¬¿ÉÒÔ½«Ëü³ÆÎªsample_package1/sample1·þÎñ¡£

ROSÖÐÓÐһЩִÐÐijЩ¹¦ÄÜÓë·þÎñµÄ¹¤¾ß¡£rossrv¹¤¾ßÄÜÊä³ö·þÎñ˵Ã÷¡¢.srvÎļþËùÔڵŦÄܰüÃû³Æ£¬²¢¿ÉÒÔÕÒµ½Ê¹ÓÃijһ·þÎñÀàÐ͵ÄÔ´´úÂëÎļþ¡£

Èç¹ûÄãÏëÒªÔÚROSÖд´½¨Ò»¸ö·þÎñ£¬¿ÉÒÔʹÓ÷þÎñÉú³ÉÆ÷¡£ÕâЩ¹¤¾ßÄܹ»´Ó»ù±¾µÄ·þÎñ˵Ã÷ÖÐÉú³É´úÂë¡£ÄãÖ»ÐèÒªÔÚCMakeLists.txtÎļþÖмÓÒ»ÐÐgensrv()ÃüÁî¡£

ÔÚºóÃæµÄÕ½ÚÖУ¬ÎÒÃǽ«»áѧϰÈçºÎ´´½¨·þÎñ¡£

2.2¡¡Àí½âROS¼ÆËãͼ¼¶

ROS»á´´½¨Ò»¸öÁ¬½Óµ½ËùÓнø³ÌµÄÍøÂç¡£ÔÚϵͳÖеÄÈκνڵ㶼¿ÉÒÔ·ÃÎÊ´ËÍøÂ磬²¢Í¨¹ý¸ÃÍøÂçÓëÆäËû½Úµã½»»¥£¬»ñÈ¡ÆäËû½Úµã·¢²¼µÄÐÅÏ¢£¬²¢½«×ÔÉíÊý¾Ý·¢²¼µ½ÍøÂçÉÏ¡£


ÔÚÕâÒ»²ã¼¶ÖÐ×î»ù±¾µÄ¸ÅÄî°üÀ¨½Úµã¡¢½Úµã¹ÜÀíÆ÷¡¢²ÎÊý·þÎñÆ÷¡¢ÏûÏ¢¡¢·þÎñ¡¢Ö÷ÌâºÍÏûÏ¢¼Ç¼°ü£¬ÕâЩ¸ÅÄî¶¼ÒÔ²»Í¬µÄ·½Ê½Ïò¼ÆËãͼ¼¶ÌṩÊý¾Ý£º

½Úµã£¨Node£©¡¡½ÚµãÊÇÖ÷ÒªµÄ¼ÆËãÖ´Ðнø³Ì¡£Èç¹ûÄãÏëÒªÓÐÒ»¸ö¿ÉÒÔÓëÆäËû½Úµã½øÐн»»¥µÄ½ø³Ì£¬ÄÇôÄãÐèÒª´´½¨Ò»¸ö½Úµã£¬²¢½«´Ë½ÚµãÁ¬½Óµ½ROSÍøÂ硣ͨ³£Çé¿öÏ£¬ÏµÍ³°üº¬Äܹ»ÊµÏÖ²»Í¬¹¦ÄܵĶà¸ö½Úµã¡£Äã×îºÃÈÃÿһ¸ö½Úµã¶¼¾ßÓÐÌØ¶¨µÄµ¥Ò»µÄ¹¦ÄÜ£¬¶ø²»ÊÇÔÚϵͳÖд´½¨Ò»¸ö°üÂÞÍòÏóµÄ´ó½Úµã¡£½ÚµãÐèҪʹÓÃÈçroscpp»òrospyµÄROS¿Í»§¶Ë¿â½øÐбàд¡£

½Úµã¹ÜÀíÆ÷£¨Master£©¡¡½Úµã¹ÜÀíÆ÷ÓÃÓÚ½ÚµãµÄÃû³Æ×¢²áºÍ²éÕҵȡ£ËüÒ²ÉèÖýڵã¼äµÄͨÐÅ¡£Èç¹ûÔÚÄãµÄÕû¸öROSϵͳÖÐûÓнڵã¹ÜÀíÆ÷£¬¾Í²»»áÓнڵ㡢·þÎñ¡¢ÏûÏ¢Ö®¼äµÄͨÐÅ¡£ÐèҪעÒâµÄÊÇ£¬ÓÉÓÚROS±¾Éí¾ÍÊÇÒ»¸ö·Ö²¼Ê½ÍøÂçϵͳ£¬Äã¿ÉÒÔÔÚijһ̨¼ÆËã»úÉÏÔËÐнڵã¹ÜÀíÆ÷£¬ÔڸùÜÀíÆ÷»òÆäËû¼ÆËã»úÉÏÔËÐнڵ㡣

²ÎÊý·þÎñÆ÷£¨Parameter Server£©¡¡²ÎÊý·þÎñÆ÷Äܹ»Ê¹Êý¾Ýͨ¹ý¹Ø¼ü´Ê´æ´¢ÔÚÒ»¸öϵͳµÄºËÐÄλÖá£Í¨¹ýʹÓòÎÊý£¬¾ÍÄܹ»ÔÚÔËÐÐʱÅäÖýڵã»ò¸Ä±ä½ÚµãµÄ¹¤×÷ÈÎÎñ¡£

ÏûÏ¢£¨Message£©¡¡½Úµãͨ¹ýÏûÏ¢Íê³É±Ë´ËµÄ¹µÍ¨¡£ÏûÏ¢°üº¬Ò»¸ö½Úµã·¢Ë͵½ÆäËû½ÚµãµÄÐÅÏ¢Êý¾Ý¡£ROSÖаüº¬ºÜ¶àÖÖ±ê×¼ÀàÐ͵ÄÏûÏ¢£¬Í¬Ê±ÄãÒ²¿ÉÒÔ»ùÓÚ±ê×¼ÏûÏ¢¿ª·¢×Ô¶¨ÒåÀàÐ͵ÄÏûÏ¢¡£

Ö÷Ì⣨Topic£©¡¡Ã¿¸öÏûÏ¢¶¼±ØÐëÓÐÒ»¸öÃû³ÆÀ´±»ROSÍøÂç·ÓÉ¡£Ã¿Ò»ÌõÏûÏ¢¶¼Òª·¢²¼µ½ÏàÓ¦µÄÖ÷Ìâ¡£µ±Ò»¸ö½Úµã·¢ËÍÊý¾Ýʱ£¬ÎÒÃǾÍ˵¸Ã½ÚµãÕýÔÚÏòÖ÷Ìâ·¢²¼ÏûÏ¢¡£½Úµã¿ÉÒÔͨ¹ý¶©ÔÄij¸öÖ÷Ì⣬½ÓÊÕÀ´×ÔÆäËû½ÚµãµÄÏûÏ¢¡£Ò»¸ö½Úµã¿ÉÒÔ¶©ÔÄÒ»¸öÖ÷Ì⣬¶ø²»ÐèÒª¸Ã½Úµãͬʱ·¢²¼¸ÃÖ÷Ìâ¡£Õâ¾Í±£Ö¤ÁËÏûÏ¢µÄ·¢²¼ÕߺͶ©ÔÄÕßÖ®¼äÏ໥½âñÍêÈ«ÎÞÐèÖªÏþ¶Ô·½µÄ´æÔÚ¡£Ö÷ÌâµÄÃû³Æ±ØÐëÊǶÀÒ»ÎÞ¶þµÄ£¬·ñÔòÔÚͬÃûÖ÷ÌâÖ®¼äµÄÏûϢ·ÓɾͻᷢÉú´íÎó¡£

·þÎñ£¨Service£©¡¡ÔÚ·¢²¼Ö÷Ìâʱ£¬ÕýÔÚ·¢Ë͵ÄÊý¾ÝÄܹ»ÒÔ¶à¶Ô¶àµÄ·½Ê½½»»¥¡£µ«µ±ÄãÐèÒª´Óij¸ö½Úµã»ñµÃÒ»¸öÇëÇó»òÓ¦´ðʱ£¬¾Í²»ÄÜͨ¹ýÖ÷ÌâÀ´ÊµÏÖÁË¡£ÔÚÕâÖÖÇé¿öÏ£¬·þÎñÄܹ»ÔÊÐíÎÒÃÇÖ±½ÓÓëij¸ö½Úµã½øÐн»»¥¡£´ËÍ⣬·þÎñ±ØÐëÓÐΨһµÄÃû³Æ¡£µ±Ò»¸ö½ÚµãÌṩij¸ö·þÎñʱ£¬ËùÓеĽڵ㶼¿ÉÒÔͨ¹ýʹÓÃROS¿Í»§¶Ë¿â±àдµÄ´úÂëÓëËüͨÐÅ¡£

ÏûÏ¢¼Ç¼°ü£¨Bag£©¡¡ÏûÏ¢¼Ç¼°üÊÇÒ»ÖÖÓÃÓÚ±£´æºÍ»Ø·ÅROSÏûÏ¢Êý¾ÝµÄÎļþ¸ñʽ¡£ÏûÏ¢¼Ç¼°üÊÇÒ»ÖÖÓÃÓÚ´æ´¢Êý¾ÝµÄÖØÒª»úÖÆ¡£ËüÄܹ»»ñÈ¡²¢¼Ç¼¸÷ÖÖÄÑÒÔÊÕ¼¯µÄ´«¸ÐÆ÷Êý¾Ý¡£ÎÒÃÇ¿ÉÒÔͨ¹ýÏûÏ¢¼Ç¼°ü·´¸´»ñȡʵÑéÊý¾Ý£¬½øÐбØÒªµÄ¿ª·¢ºÍËã·¨²âÊÔ¡£ÔÚʹÓø´ÔÓ»úÆ÷È˽øÐÐʵÑ鹤×÷ʱ£¬ÐèÒª¾­³£Ê¹ÓÃÏûÏ¢¼Ç¼°ü¡£

ÔÚÏÂͼÖÐÄã¿ÉÒÔ¿´µ½¼ÆËãͼ¼¶µÄͼÐλ¯±íʾ£¨½Úµã״̬ͼ£©¡£Ëü±íʾÁËÕæÊµ»úÆ÷ÈËÔÚÕæÊµÌõ¼þÏÂϵͳµÄ¹¤×÷״̬¡£ÔÚͼÖУ¬Äã¿ÉÒÔ¿´µ½½ÚµãºÍÖ÷Ì⣬ÒÔ¼°ÄÄЩ½Úµã¶©ÔÄÄÄЩÖ÷ÌâµÈ¡£´Ë½Úµã״̬ͼÖв¢Ã»ÓÐÏûÏ¢¡¢ÏûÏ¢¼Ç¼°ü¡¢²ÎÊý·þÎñÆ÷ºÍ·þÎñ¡£ÕâЩÄÚÈÝÐèҪʹÓÃÆäËû¹¤¾ß½øÐÐͼÐλ¯Õ¹Ê¾¡£ÓÃÓÚ´´½¨¸Ãͼ±íµÄ¹¤¾ßÊÇrqt_graph£¬ÔÚµÚ3ÕÂÖн«Ñ§Ï°µ½¸ü¶àÏà¹ØÖªÊ¶¡£ÕâЩ¸ÅÄîÔÚros-comm¿âÖÐʵÏÖ¡£


2.2.1¡¡½ÚµãÓënodelet

½Úµã¶¼ÊǸ÷×Ô¶ÀÁ¢µÄ¿ÉÖ´ÐÐÎļþ£¬Äܹ»Í¨¹ýÖ÷Ìâ¡¢·þÎñ»ò²ÎÊý·þÎñÆ÷ÓëÆäËû½ø³Ì£¨½Úµã£©Í¨ÐÅ¡£ROSͨ¹ýʹÓýڵ㽫´úÂëºÍ¹¦ÄܽâñÌá¸ßÁËϵͳÈÝ´íÄÜÁ¦ºÍ¿Éά»¤ÐÔ£¬Ê¹ÏµÍ³¼ò»¯¡£

ROSÓÐÁíÒ»ÖÖÀàÐ͵Ľڵ㣬³ÆÎªnodelet¡£ÕâÀàÌØÊâ½Úµã¿ÉÒÔÔÚµ¥¸ö½ø³ÌÖÐÔËÐжà¸ö½Úµã£¬ÆäÖÐÿ¸önodeletΪһ¸öỊ̈߳¨ÇáÁ¿¼¶½ø³Ì£©¡£ÕâÑù£¬¿ÉÒÔÔÚ²»Ê¹ÓÃROSÍøÂçµÄÇé¿öÏÂÓëÆäËû½ÚµãͨÐÅ£¬½ÚµãͨÐÅЧÂʸü¸ß£¬²¢±ÜÃâÍøÂçÓµÈû¡£nodelet¶ÔÓÚÉãÏñÍ·ºÍ3D´«¸ÐÆ÷ÕâÀàÊý¾Ý´«ÊäÁ¿·Ç³£´óµÄÉè±¸ÌØ±ðÓÐÓá£

½ÚµãÔÚϵͳÖбØÐëÓÐΨһµÄÃû³Æ¡£½ÚµãʹÓÃÌØ¶¨Ãû³ÆÓëÆäËû½Úµã½øÐÐͨÐŶø²»²úÉúÆçÒå¡£½Úµã¿ÉÒÔʹÓò»Í¬µÄ¿â½øÐбàд£¬ÈçroscppºÍrospy¡£roscpp»ùÓÚC++£¬¶ørospy»ùÓÚPython¡£ÔÚÕâ±¾ÊéÀÎÒÃǽ«Ê¹ÓÃroscpp¡£

ROSÌṩÁË´¦Àí½ÚµãµÄ¹¤¾ß£¬Èçrosnode¡£rosnodeÊÇÒ»¸öÓÃÓÚÏÔʾ½ÚµãÐÅÏ¢µÄÃüÁîÐй¤¾ß£¬ÀýÈçÁгöµ±Ç°ÕýÔÚÔËÐеĽڵ㡣֧³ÖµÄÃüÁîÈçÏÂËùʾ£º

rosnode info NODE¡¡Êä³öµ±Ç°½ÚµãÐÅÏ¢¡£

rosnode kill NODE¡¡½áÊøµ±Ç°ÔËÐÐ½Úµã½ø³Ì»ò·¢Ë͸ø¶¨Ðźš£

rosnode list¡¡Áгöµ±Ç°»î¶¯½Úµã¡£

rosnode machine hostname¡¡ÁгöÄ³Ò»ÌØ¶¨¼ÆËã»úÉÏÔËÐеĽڵã»òÁгöÖ÷»úÃû³Æ¡£

rosnode ping NODE¡¡²âÊÔ½Úµã¼äµÄÁ¬Í¨ÐÔ¡£

rosnode cleanup¡¡½«ÎÞ·¨·ÃÎʽڵãµÄ×¢²áÐÅÏ¢Çå³ý¡£

ÔÚºóÃæµÄÕ½ÚÖУ¬ÎÒÃǽ«Í¨¹ýһЩʾÀýѧϰÈçºÎʹÓÃÕâЩÃüÁî¡£

ROS½ÚµãµÄÒ»¸öÇ¿´ó¹¦ÄÜÊÇ¿ÉÒÔÔÚÆô¶¯¸Ã½Úµãʱ¸ü¸Ä²ÎÊý¡£´Ë¹¦ÄÜʹÎÒÃÇÄܹ»¸Ä±ä½ÚµãÃû³Æ¡¢Ö÷ÌâÃû³ÆºÍ²ÎÊýÃû³Æ¡£ÎÒÃÇÎÞÐèÖØÐ±àÒë´úÂë¾ÍÄÜÖØÐÂÅäÖýڵ㣬ÕâÑù¾Í¿ÉÒÔÔÚ²»Í¬µÄ³¡¾°ÖÐʹÓøýڵ㡣

Ò»¸ö¸Ä±äÖ÷ÌâÃû³ÆµÄÀý×ÓÈçÏÂËùʾ£º


´ËÃüÁÖ÷ÌâÃû³Æ´Ótopic1¸ÄΪ/level1/topic1¡£ÏàÐÅÄãÏÖÔÚ»¹²»ÉõÃ÷ÁË£¬µ«ÔÚºóÃæµÄÕ½ÚÖÐÄã»á·¢ÏÖËüµÄʵÓÃÐÔ¡£

¸ü¸Ä½ÚµãÖеIJÎÊýºÍ¸ü¸ÄÖ÷ÌâÃû³ÆºÜÀàËÆ¡£Ö»ÐèÒªÔÚ²ÎÊýÃû³ÆÇ°Ìí¼ÓÒ»¸öÏ»®Ïߣ¬ÀýÈ磺


ÕâÑù²ÎÊý£¨param£©¾ÍÉèÖÃΪ¸¡µãÊý9.0¡£

Çë¼Çס£¬²»ÄÜʹÓÃϵͳ±£ÁôµÄ¹Ø¼ü×ÖÃû³Æ£¬°üÀ¨£º

_name¡¡Îª½ÚµãÃû³Æ±£ÁôµÄÒ»¸öÌØÊâ¹Ø¼ü×Ö¡£

_log¡¡Îª¼Ç¼½ÚµãÈÕÖ¾´æ´¢µØÖ·±£ÁôµÄÒ»¸ö¹Ø¼ü×Ö¡£

_ipºÍ_hostname¡¡±íʾROS_IPºÍROS_HOSTNAMEµÄ¹Ø¼ü×Ö¡£

_master¡¡±íʾROS_MASTER_URIµÄ¹Ø¼ü×Ö¡£

_ns¡¡±íʾROS_NAMESPACEµÄ¹Ø¼ü×Ö¡£

2.2.2¡¡Ö÷Ìâ

Ö÷ÌâÊǽڵã¼äÓÃÀ´´«ÊäÊý¾ÝµÄ×ÜÏß¡£Í¨¹ýÖ÷Ìâ½øÐÐÏûϢ·Óɲ»ÐèÒª½ÚµãÖ®¼äÖ±½ÓÁ¬½Ó¡£Õâ¾ÍÒâζ×Å·¢²¼ÕߺͶ©ÔÄÕßÖ®¼ä²»ÐèÒªÖªµÀ±Ë´ËÊÇ·ñ´æÔÚ¡£Í¬Ò»¸öÖ÷ÌâÒ²¿ÉÒÔÓкܶà¸ö¶©ÔÄÕß¡£Ò»¸öÖ÷Ìâ¿ÉÒÔÓжà¸ö¶©ÔÄÕßÒ²¿ÉÒÔÓжà¸ö·¢²¼Õߣ¬µ«ÊÇÄãÐèҪעÒâÓò»Í¬µÄ½Úµã·¢²¼Í¬ÑùµÄÖ÷Ì⣬·ñÔò»á²úÉú³åÍ»¡£

ÿ¸öÖ÷Ìâ¶¼ÊÇÇ¿ÀàÐ͵쬷¢²¼µ½Ö÷ÌâÉϵÄÏûÏ¢±ØÐëÓëÖ÷ÌâµÄROSÏûÏ¢ÀàÐÍÏàÆ¥Å䣬²¢ÇÒ½ÚµãÖ»ÄܽÓÊÕÀàÐÍÆ¥ÅäµÄÏûÏ¢¡£½ÚµãÒªÏë¶©ÔÄÖ÷Ì⣬¾Í±ØÐë¾ßÓÐÏàͬµÄÏûÏ¢ÀàÐÍ¡£

ROSµÄÖ÷Ìâ¿ÉÒÔʹÓÃTCP/IPºÍUDP´«Êä¡£»ùÓÚTCP´«Êä³ÆÎªTCPROS£¬ËüʹÓÃTCP/IP³¤Á¬½Ó¡£ÕâÊÇROSĬÈϵĴ«Ê䷽ʽ¡£

»ùÓÚUDP´«Êä³ÆÎªUDPROS£¬ËüÊÇÒ»ÖÖµÍÑÓ³Ù¸ßЧÂʵĴ«Ê䷽ʽ£¬µ«¿ÉÄܲúÉúÊý¾Ý¶ªÊ§¡£ËùÒÔËü×îÊʺÏÓÚÏñÔ¶³Ì²Ù¿ØµÄÈÎÎñ¡£

ROSÓÐÒ»¸örostopic¹¤¾ßÓÃÓÚÖ÷Ìâ²Ù×÷¡£ËüÊÇÒ»¸öÃüÁîÐй¤¾ß£¬ÔÊÐíÎÒÃÇ»ñÈ¡Ö÷ÌâµÄÏà¹ØÐÅÏ¢»òÖ±½ÓÔÚÍøÂçÉÏ·¢²¼Êý¾Ý¡£´Ë¹¤¾ßµÄ²ÎÊýÈçÏ£º

rostopic bw /topic¡¡ÏÔʾÖ÷ÌâËùʹÓõĴø¿í¡£

rostopic echo /topic¡¡½«ÏûÏ¢Êä³öµ½ÆÁÄ»¡£

rostopic find message_type¡¡°´ÕÕÀàÐͲéÕÒÖ÷Ìâ¡£

rostopic hz /topic¡¡ÏÔʾÖ÷ÌâµÄ·¢²¼ÆµÂÊ¡£

rostopic info /topic¡¡Êä³ö»î¶¯Ö÷Ìâ¡¢·¢²¼µÄÖ÷Ìâ¡¢Ö÷Ìâ¶©ÔÄÕߺͷþÎñµÄÐÅÏ¢¡£

rostopic list¡¡Êä³ö»î¶¯Ö÷ÌâµÄÁÐ±í¡£

rostopic pub /topic type args¡¡½«Êý¾Ý·¢²¼µ½Ö÷Ìâ¡£ËüÔÊÐíÎÒÃÇÖ±½Ó´ÓÃüÁîÐÐÖжÔÈÎÒâÖ÷Ìâ´´½¨ºÍ·¢²¼Êý¾Ý¡£

rostopic type /topic¡¡Êä³öÖ÷ÌâµÄÀàÐÍ£¬»òÕß˵Ö÷ÌâÖз¢²¼µÄÏûÏ¢ÀàÐÍ¡£

ÎÒÃÇ»áÔÚºóÃæµÄÕ½ÚÖÐѧϰÈçºÎʹÓÃÕâЩÃüÁî¡£

2.2.3¡¡·þÎñ

µ±ÄãÐèÒªÖ±½ÓÓë½ÚµãͨÐŲ¢»ñµÃÓ¦´ðʱ£¬½«ÎÞ·¨Í¨¹ýÖ÷ÌâʵÏÖ£¬¶øÐèҪʹÓ÷þÎñ¡£

·þÎñÐèÒªÓÉÓû§¿ª·¢£¬½Úµã²¢²»Ìṩ±ê×¼·þÎñ¡£°üº¬ÏûÏ¢Ô´´úÂëµÄÎļþ´æ´¢ÔÚsrvÎļþ¼ÐÖС£

ÏñÖ÷ÌâÒ»Ñù£¬·þÎñ¹ØÁªÒ»¸öÒÔ¹¦ÄܰüÖÐ.srvÎļþÃû³ÆÀ´ÃüÃûµÄ·þÎñÀàÐÍ¡£ÓëÆäËû»ùÓÚROSÎļþϵͳµÄÀàÐÍÒ»Ñù£¬·þÎñÀàÐÍÊǹ¦ÄܰüÃû³ÆºÍ.srvÎļþÃû³ÆµÄ×éºÏ¡£ÀýÈçchapter2_tutorials/srv/chapter2_srv1.srvÎļþµÄ·þÎñÀàÐÍÊÇchapter2_tutorials/chapter2_srv1¡£

ROS¹ØÓÚ·þÎñµÄÃüÁîÐй¤¾ßÓÐÁ½¸ö£ºrossrvºÍrosservice¡£ÎÒÃÇ¿ÉÒÔͨ¹ýrossrv¿´µ½ÓйطþÎñÊý¾Ý½á¹¹µÄÐÅÏ¢£¬²¢ÇÒÓërosmsg¾ßÓÐÍêȫһÖµÄÓ÷¨¡£

ͨ¹ýrosservice¿ÉÒÔÁгö·þÎñÁбíºÍ²éѯij¸ö·þÎñ¡£Ö§³ÖµÄÃüÁîÈçÏÂËùʾ£º

rosservice call/service args¡¡¸ù¾ÝÃüÁîÐвÎÊýµ÷Ó÷þÎñ¡£

rosservice find msg-type¡¡¸ù¾Ý·þÎñÀàÐͲéѯ·þÎñ¡£

rosservice info/service¡¡Êä³ö·þÎñÐÅÏ¢¡£

rosservice list¡¡Êä³ö»î¶¯·þÎñÇåµ¥¡£

rosservice type/service¡¡Êä³ö·þÎñÀàÐÍ¡£

rosservice uri/service¡¡Êä³ö·þÎñµÄROSRPC URI¡£

2.2.4¡¡ÏûÏ¢

Ò»¸ö½Úµãͨ¹ýÏòÌØ¶¨Ö÷Ìâ·¢²¼ÏûÏ¢£¬´Ó¶ø½«Êý¾Ý·¢Ë͵½ÁíÒ»¸ö½Úµã¡£ÏûÏ¢¾ßÓÐÒ»¶¨µÄÀàÐͺÍÊý¾Ý½á¹¹£¬°üÀ¨ROSÌṩµÄ±ê×¼ÀàÐͺÍÓû§×Ô¶¨ÒåÀàÐÍ¡£

ÏûÏ¢µÄÀàÐÍÔÚROSÖа´ÕÕÒÔϱê×¼ÃüÃû·½Ê½½øÐÐÔ¼¶¨£º¹¦ÄܰüÃû³Æ/.msgÎļþÃû³Æ¡£ÀýÈ磬std_msgs/msg/String.msgµÄÏûÏ¢ÀàÐÍÊÇstd_msgs/String¡£

ROSʹÓÃÃüÁîÐй¤¾ßrosmsgÀ´»ñÈ¡ÓйØÏûÏ¢µÄÐÅÏ¢¡£³£ÓòÎÊýÈçÏÂËùʾ£º

rosmsg show¡¡ÏÔʾһÌõÏûÏ¢µÄ×ֶΡ£

rosmsg list¡¡ÁгöËùÓÐÏûÏ¢¡£

rosmsg package¡¡Áгö¹¦ÄܰüµÄËùÓÐÏûÏ¢¡£

rosmsg packages¡¡ÁгöËùÓоßÓиÃÏûÏ¢µÄ¹¦Äܰü¡£

rosmsg users¡¡ËÑË÷ʹÓøÃÏûÏ¢ÀàÐ͵ĴúÂëÎļþ¡£

rosmsg md5¡¡ÏÔʾһÌõÏûÏ¢µÄMD5ÇóºÍ½á¹û¡£

2.2.5¡¡ÏûÏ¢¼Ç¼°ü

ÏûÏ¢¼Ç¼°üÊÇÓÉROS´´½¨µÄÒ»×éÎļþ¡£ËüʹÓÃ.bag¸ñʽ±£´æÏûÏ¢¡¢Ö÷Ìâ¡¢·þÎñºÍÆäËûROSÊý¾ÝÐÅÏ¢¡£Äã¿ÉÒÔÔÚʼþ·¢Éúºó£¬Í¨¹ýʹÓÿÉÊÓ»¯¹¤¾ßµ÷ÓúͻطÅÊý¾Ý£¬¼ì²éÔÚϵͳÖе½µ×·¢ÉúÁËʲô¡£Äã¿ÉÒÔ²¥·Å¡¢Í£Ö¹¡¢ºóÍ˼°Ö´ÐÐÆäËû²Ù×÷¡£

¼Ç¼°üÎļþ¿ÉÒÔÏñʵʱ»á»°Ò»ÑùÔÚROSÖÐÔÙÏÖÇé¾°£¬ÔÚÏàͬʱ¼äÏòÖ÷Ìâ·¢ËÍÏàͬµÄÊý¾Ý¡£Í¨³£Çé¿öÏ£¬ÎÒÃÇ¿ÉÒÔʹÓô˹¦ÄÜÀ´µ÷ÊÔËã·¨¡£

ÈôҪʹÓüǼ°üÎļþ£¬ÎÒÃÇ¿ÉÒÔʹÓÃÒÔÏÂROS¹¤¾ß£º

rosbag¡¡ÓÃÀ´Â¼ÖÆ¡¢²¥·ÅºÍÖ´ÐÐÆäËû²Ù×÷¡£

rqt_bag¡¡ÓÃÓÚ¿ÉÊÓ»¯Í¼Ðλ·¾³ÖеÄÊý¾Ý¡£

rostopic¡¡°ïÖúÎÒÃÇ¿´µ½½Úµã·¢Ë͵ÄÖ÷Ìâ¡£

2.2.6¡¡½Úµã¹ÜÀíÆ÷

ROS½Úµã¹ÜÀíÆ÷ÏòROSϵͳÖÐÆäËû½ÚµãÌṩÃüÃûºÍ×¢²á·þÎñ¡£ËüÏñ·þÎñÒ»Ñù¸ú×ÙÖ÷ÌâµÄ·¢²¼ÕߺͶ©ÔÄÕß¡£½Úµã¹ÜÀíÆ÷µÄ×÷ÓÃÊÇʹROS½ÚµãÖ®¼äÄܹ»Ï໥²éÕÒ¡£Ò»µ©ÕâЩ½ÚµãÕÒµ½Á˱˴ˣ¬¾ÍÄܽ¨Á¢µã¶ÔµãµÄͨÐÅ¡£Äã¿ÉÒÔ¿´µ½ÒÔͼÀýÏÔʾµÄROSÖ´Ðв½Ö裬°üÀ¨¹ã²¥Ò»¸öÖ÷Ì⣬¶©ÔÄÒ»¸öÖ÷Ì⣬·¢²¼Ò»¸öÏûÏ¢£¬ÈçÏÂͼËùʾ£º


½Úµã¹ÜÀíÆ÷»¹ÌṩÁ˲ÎÊý·þÎñÆ÷¡£½Úµã¹ÜÀíÆ÷ͨ³£Ê¹ÓÃroscoreÃüÁîÔËÐУ¬Ëü»á¼ÓÔØROS½Úµã¹ÜÀíÆ÷¼°ÆäËûROSºËÐÄ×é¼þ¡£

2.2.7¡¡²ÎÊý·þÎñÆ÷

²ÎÊý·þÎñÆ÷ÊÇ¿Éͨ¹ýÍøÂç·ÃÎʵĹ²ÏíµÄ¶à±äÁ¿×ֵ䡣½ÚµãʹÓô˷þÎñÆ÷À´´æ´¢ºÍ¼ìË÷ÔËÐÐʱµÄ²ÎÊý¡£

²ÎÊý·þÎñÆ÷ʹÓÃXMLRPCʵÏÖ²¢ÔÚROS½Úµã¹ÜÀíÆ÷ÏÂÔËÐУ¬ÕâÒâζ×ÅËüµÄAPI¿ÉÒÔͨ¹ýͨÓõÄXMLRPC¿â½øÐзÃÎÊ¡£XMLRPCÊÇÒ»¸öʹÓÃXML±àÂë²¢ÒÔHTTP×÷Ϊ´«Êä»úÖÆµÄÔ¶³Ìµ÷Óã¨Remote Procedure Call£¬RPC£©Ð­Òé¡£

²ÎÊý·þÎñÆ÷ʹÓÃXMLRPCÊý¾ÝÀàÐÍΪ²ÎÊý¸³Öµ£¬°üÀ¨ÒÔÏÂÀàÐÍ£º

32λÕûÊý£¨32-bit integer£©

²¼¶ûÖµ£¨Boolean£©

×Ö·û´®£¨String£©

Ë«¾«¶È¸¡µã£¨Double£©

ISO 8601ÈÕÆÚ£¨ISO8601 date£©

ÁÐ±í£¨List£©

»ùÓÚ64λ±àÂëµÄ¶þ½øÖÆÊý¾Ý£¨Base64-encoded binary data£©

ROSÖйØÓÚ²ÎÊý·þÎñÆ÷µÄ¹¤¾ßÊÇrosparam¡£ÆäÖ§³ÖµÄ²ÎÊýÈçÏÂËùʾ£º

rosparam list¡¡ÁгöÁË·þÎñÆ÷ÖеÄËùÓвÎÊý¡£

rosparam get parameter¡¡»ñÈ¡²ÎÊýÖµ¡£

rosparam set parameter value¡¡ÉèÖòÎÊýÖµ¡£

rosparam delete parameter¡¡É¾³ý²ÎÊý¡£

rosparam dump file¡¡½«²ÎÊý·þÎñÆ÷±£´æµ½Ò»¸öÎļþ¡£

rosparam load file¡¡¼ÓÔØ²ÎÊýÎļþµ½²ÎÊý·þÎñÆ÷¡£

2.3¡¡Àí½âROS¿ªÔ´ÉçÇø¼¶

ROS¿ªÔ´ÉçÇø¼¶µÄ¸ÅÄîÖ÷ÒªÊÇROS×ÊÔ´£¬ÆäÄܹ»Í¨¹ý¶ÀÁ¢µÄÍøÂçÉçÇø·ÖÏíÈí¼þºÍ֪ʶ¡£ÕâЩ×ÊÔ´°üÀ¨£º

·¢Ðа棨Distribution£©¡¡ROS·¢ÐаæÊÇ¿ÉÒÔ¶ÀÁ¢°²×°¡¢´øÓа汾ºÅµÄһϵÁÐ×ۺϹ¦Äܰü¡£ROS·¢ÐаæÏñLinux·¢ÐаæÒ»Ñù·¢»ÓÀàËÆµÄ×÷Óá£ÕâʹµÃROSÈí¼þ°²×°¸ü¼ÓÈÝÒ×£¬¶øÇÒÄܹ»Í¨¹ýÒ»¸öÈí¼þ¼¯ºÏά³ÖÒ»Öµİ汾¡£

Èí¼þ¿â£¨Repository£©¡¡ROSÒÀÀµÓÚ¹²Ïí¿ªÔ´´úÂëÓëÈí¼þ¿âµÄÍøÕ¾»òÖ÷»ú·þÎñ£¬ÔÚÕâÀﲻͬµÄ»ú¹¹Äܹ»·¢²¼ºÍ·ÖÏí¸÷×ԵĻúÆ÷ÈËÈí¼þÓë³ÌÐò¡£

ROSά»ù£¨ROS Wiki£©¡¡ROS WikiÊÇÓÃÓڼǼÓйØROSϵͳÐÅÏ¢µÄÖ÷ÒªÂÛ̳¡£ÈκÎÈ˶¼¿ÉÒÔ×¢²áÕË»§¡¢¹±Ï××Ô¼ºµÄÎļþ¡¢Ìṩ¸üÕý»ò¸üС¢±àд½Ì³ÌÒÔ¼°ÆäËûÐÐΪ¡£

BugÌύϵͳ£¨Bug Ticket System£©Èç¹ûÄã·¢ÏÖÎÊÌâ»òÕßÏëÌá³öÒ»¸öй¦ÄÜ£¬ROSÌṩÕâ¸ö×ÊÔ´È¥×öÕâЩ¡£

ÓʼþÁÐ±í£¨Mailing list£©¡¡ROSÓû§ÓʼþÁбíÊǹØÓÚROSµÄÖ÷Òª½»Á÷ÇþµÀ£¬Äܹ»ÏñÂÛ̳һÑù½»Á÷´ÓROSÈí¼þ¸üе½ROSÈí¼þʹÓÃÖеĸ÷ÖÖÒÉÎÊ»òÐÅÏ¢¡£

ROSÎÊ´ð£¨ROS Answer£©Óû§¿ÉÒÔʹÓÃÕâ¸ö×ÊÔ´È¥ÌáÎÊÌâ¡£

²©¿Í£¨Blog£©Äã¿ÉÒÔ¿´µ½¶¨ÆÚ¸üС¢ÕÕÆ¬ºÍÐÂÎÅ£¬ÍøÖ·ÊÇhttp://www.ros.org/news¡£

2.4¡¡ROSϵͳÊÔÓÃÁ·Ï°

ÏÖÔÚÊÇʱºò¶Ô֮ǰѧϰµÄÄÚÈݽøÐÐһЩÁ·Ï°ÁË¡£ÔÚÏÂÃæµÄ¼¸Ð¡½ÚÖУ¬Ä㽫¿´µ½Á·Ï°°üµÄ´´½¨£¬Ê¹Óýڵ㡢²ÎÊý·þÎñÆ÷ÒÔ¼°Í¨¹ýTurtlesimÒÆ¶¯·ÂÕæ»úÆ÷ÈË¡£

2.4.1¡¡ROSÎļþϵͳµ¼ÀÀ

ÎÒÃÇͨ¹ýÃüÁîÐй¤¾ßÀ´ä¯ÀÀÒ»ÏÂROSµÄÎļþϵͳ¡£ÎÒÃǽ«Òª½âÊÍ×î³£ÓõIJ¿·Ö¡£

ΪÁË»ñµÃ¹¦ÄܰüºÍ¹¦Äܰü¼¯µÄÐÅÏ¢£¬ÎÒÃǽ«Ê¹ÓÃrospack¡¢rosstack¡¢roscdºÍroslsÃüÁî¡£

ÎÒÃÇʹÓÃrospackºÍrosstackÀ´»ñÈ¡Óйع¦Äܰü¡¢¹¦Äܰü¼¯¡¢Â·¾¶ºÍÒÀÀµÐÔµÈÐÅÏ¢¡£ÀýÈ磬Èç¹ûÄãÏëÒªÕÒturtlesim°üµÄ·¾¶£¬¿ÉÒÔʹÓÃÒÔÏÂÃüÁ


Ä㽫»ñµÃÒÔÏÂÐÅÏ¢£º


ͬÑù£¬Èç¹ûÄãÏëÒªÕÒµ½ÄãÒѾ­ÔÚϵͳÖа²×°¹ýµÄij¸ö×ۺϹ¦Äܰü£¬Ê¾ÀýÈçÏ£º


Ä㽫»ñµÃµ½ros-comm×ۺϹ¦ÄܰüµÄ·¾¶£¬ÈçÏ£º


ÏëÒª»ñµÃ¹¦Äܰü»ò¹¦Äܰü¼¯ÏÂÃæµÄÎļþÁÐ±í£¬ÄÇôÐèҪʹÓãº


֮ǰÃüÁîµÄÊä³öÈçÏÂËùʾ£º


Èç¹ûÄãÏë½øÈëij¸öÎļþ¼Ð£¬¿ÉÒÔʹÓÃroscdÃüÁ


Ä㽫»ñµÃÒÔÏÂз¾¶£º


2.4.2¡¡´´½¨¹¤×÷¿Õ¼ä

ÔÚ¿ªÊ¼¾ßÌ幤×÷֮ǰ£¬Ê×ÏÈ´´½¨¹¤×÷¿Õ¼ä¡£ÔÚÕâ¸ö¹¤×÷¿Õ¼äÖУ¬ÎÒÃǽ«»áÍê³É±¾ÊéÖÐʹÓõÄËùÓдúÂë¡£

ÈôÒª²é¿´ROSÕýÔÚʹÓõŤ×÷¿Õ¼ä£¬ÇëʹÓÃÏÂÃæµÄÃüÁ


Ä㽫»á¿´µ½ÈçÏÂÀàËÆÐÅÏ¢£º


ÎÒÃǽ«Òª´´½¨µÄÎļþ¼ÐÊÇÔÚ¡«/dev/catkin_ws/src/ÖС£ÈôҪн¨´ËÎļþ¼Ð£¬Ê¹ÓÃÒÔÏÂÃüÁ


µ±ÎÒÃÇ´´½¨¹¤×÷¿Õ¼äÎļþ¼Ðºó£¬ÀïÃæ²¢Ã»Óй¦Äܰü£¬Ö»ÓÐCMakeList.txt¡£ÏÂÒ»²½ÊDZàÒ빤×÷¿Õ¼ä£¬Ê¹ÓÃÏÂÃæÃüÁ


ÏÖÔÚ£¬Èç¹ûÄãÊäÈëlsÃüÁ¿ÉÒÔ¿´µ½ÉÏÃæÃüÁî´´½¨µÄÐÂÎļþ¼Ð£¬·Ö±ðÊÇbuildºÍdevelÎļþ¼Ð¡£

Íê³ÉÅäÖã¬Ê¹ÓÃÏÂÃæÃüÁ


ÕâÒ»²½Ö»ÊÇÖØÐ¼ÓÔØÁËsetup.bashÎļþ¡£Èç¹ûÄã¹Ø±Õ²¢´ò¿ªÒ»¸öеÄÖÕ¶Ë£¬Ò²½«µÃµ½Í¬ÑùµÄЧ¹û¡£ÄãÓ¦¸ÃÒѾ­ÔÚÄãµÄ~/.bashrcÎļþÖмÓÈëÁ˸ÃÃüÁîÐУ¬ÒòΪÎÒÃÇÔÚµÚ1ÕÂÓùý¡£Èç¹ûûÓУ¬Äã¿ÉÒÔʹÓÃÏÂÃæÃüÁîÌí¼ÓËü£º


2.4.3¡¡´´½¨ROS¹¦ÄܰüºÍ×ۺϹ¦Äܰü

¾ÍÏñ֮ǰËù˵£¬ÄãÒ²¿ÉÒÔÊÖ¶¯´´½¨¹¦Äܰü¡£µ«ÊÇΪÁ˱ÜÃâÄÇЩ·±ËöµÄ¹¤×÷£¬×îºÃʹÓÃcatkin_create_pkgÃüÁîÐй¤¾ß¡£

ʹÓÃÒÔÏÂÃüÁîÔÚ֮ǰ½¨Á¢µÄ¹¤×÷¿Õ¼ä´´½¨ÐµĹ¦Äܰü£º


´ËÃüÁîµÄ¸ñʽ°üÀ¨¹¦ÄܰüµÄÃû³ÆºÍÒÀÀµÏî¡£ÔÚÕâ¸öʾÀýÖУ¬ÒÀÀµÏî°üÀ¨std_msgsºÍroscpp¡£ÈçÒÔÏÂÃüÁîÐÐËùʾ£º


ÕâЩÒÀÀµÏî°üÀ¨£º

std_msgs¡¡°üº¬Á˳£¼ûÏûÏ¢ÀàÐÍ£¬±íʾ»ù±¾Êý¾ÝÀàÐÍºÍÆäËû»ù±¾µÄÏûÏ¢¹¹Ô죬Èç¶àάÊý×é¡£

roscpp¡¡Ê¹ÓÃC++ʵÏÖROSµÄ¸÷ÖÖ¹¦ÄÜ¡£ËüÌṩÁËÒ»¸ö¿Í»§¶Ë¿â£¬ÈÃC++³ÌÐòÔ±Äܹ»µ÷ÓÃÕâЩ½Ó¿Ú¿ìËÙÍê³ÉÓëROSµÄÖ÷Ìâ¡¢·þÎñºÍ²ÎÊýÏà¹ØµÄ¿ª·¢¹¤×÷¡£

Èç¹ûËùÓв½Öè¶¼ÕýÈ·Ö´ÐУ¬½á¹ûÈçÏÂͼËùʾ£º


ÕýÈçÎÒÃÇ֮ǰ¿´µ½µÄ£¬Äã¿ÉÒÔʹÓÃrospack¡¢roscdºÍroslsÃüÁîÀ´»ñÈ¡ÐµĹ¦ÄܰüÐÅÏ¢¡£ÏÂÃæËùʾÊǶÀÁ¢Ê¹Óõģº

rospack profile¡¡´ËÃüÁîÓÃÓÚ֪ͨÐÂÌí¼ÓµÄÄÚÈÝ

rospack find chapter2_tutorials¡¡´ËÃüÁîÓÃÓÚ²éÕÒ·¾¶¡£

rospack depends chapter2_tutorials¡¡´ËÃüÁîÓÃÓڲ鿴ÒÀÀµ¹ØÏµ¡£

rosls chapter2_tutorials¡¡´ËÃüÁîÓÃÓڲ鿴ÄÚÈÝ¡£

roscd chapter2_tutorials¡¡´ËÃüÁî»á¸ü¸Äʵ¼Ê·¾¶¡£

2.4.4¡¡±àÒëROS¹¦Äܰü

Ò»µ©Äã´´½¨ÁËÒ»¸ö¹¦Äܰü£¬²¢ÇÒ±àдÁËһЩ´úÂ룬¾ÍÐèÒª±àÒ빦ÄܰüÁË¡£µ±Äã±àÒ빦ÄܰüµÄʱºò£¬Ö÷ÒªÊÇ´úÂëµÄ±àÒë¹ý³Ì¡£

ΪÁ˱àÒ빦Äܰü£¬¿ÉÒÔʹÓÃcatkin_make¹¤¾ß£º


ÔÚ¼¸ÃëÖ®ºó£¬Äã»á¿´µ½£º


Èç¹ûûÓп´µ½´íÎóÌáʾÐÅÏ¢£¬ËµÃ÷¹¦Äܰü±àÒë³É¹¦¡£

¼ÇסÄã±ØÐëÔÚ¹¤×÷¿Õ¼äÎļþ¼ÐÔËÐÐcatkin_makeÃüÁî¡£Èç¹ûÄãÔÚÆäËûÎļþ¼ÐÕâÑù×ö£¬ÃüÁîÎÞ·¨Ö´ÐУ¬ÏÂÃæÊÇÒ»¸öÀý×Ó£º


µ±ÄãÔÚchapter2_tutorialsÎļþ¼ÐÊÔͼÓÃcatkin_make±àÒ빦Äܰü£¬Äã»á¿´µ½ÈçÏ´íÎó£º


µ±ÄãÔÚcatkin_wsÎļþ¼ÐÖ´ÐÐcatkin_makeÃüÁÔò»á±àÒë³É¹¦¡£

2.4.5¡¡Ê¹ÓÃROS½Úµã

ÕýÈçÎÒÃÇÔÚ2.2.1½ÚÖнâÊ͵ģ¬½Úµã¶¼ÊÇ¿ÉÖ´ÐгÌÐò£¬ÕâЩ¿ÉÖ´ÐÐÎļþλÓÚ¿ª·¢¿Õ¼äÖС£ÒªÑ§Ï°ºÍÁ˽âÓйؽڵãµÄ֪ʶ£¬ÎÒÃÇҪʹÓÃÒ»¸öÃûΪturtlesimµÄ¹¦Äܰü½øÐÐÁ·Ï°¡£

Èç¹ûÄã½øÐÐÁËROSϵͳµÄÍêÕû°²×°£¬ÄÇôÄãÒѾ­ÓÐÁËturtlesim¹¦Äܰü¡£Èç¹û»¹Ã»ÓУ¬ÇëʹÓÃÒÔÏÂÃüÁî°²×°£º


ÔÚ¿ªÊ¼Ö®Ç°£¬±ØÐëʹÓÃÈçÏÂÃüÁîÆô¶¯roscore£º


ΪÁË»ñµÃ½ÚµãÐÅÏ¢£¬¿ÉÒÔʹÓÃrosnode¹¤¾ß¡£ÎªÁ˲鿴ÃüÁî½ÓÊÜÄÄЩ²ÎÊý£¬¿ÉÒÔÊäÈëÒÔÏÂÃüÁ


Äã»á»ñµÃÒ»¸ö¿É½ÓÊܲÎÊýµÄÇåµ¥£¬ÈçÏÂͼËùʾ£º


Èç¹ûÄãÏë»ñµÃ¹ØÓÚÕâЩ²ÎÊý¸üÏêϸµÄ½âÊÍ£¬ÇëʹÓÃÒÔÏÂÃüÁ


ÏÖÔÚroscoreÕýÔÚÔËÐУ¬ÎÒÃÇÏëÒª»ñÈ¡ÕýÔÚÔËÐнڵãµÄÏà¹ØÐÅÏ¢£º


Äã»á¿´µ½ÔËÐеĽڵã½öÓÐ/rosout¡£ÕâÊÇÕý³£µÄ£¬ÒòΪÕâ¸ö½Úµã×ÜÊÇËæ×ÅroscoreµÄÔËÐжøÔËÐС£

ͨ¹ýʹÓòÎÊýÎÒÃÇ¿ÉÒÔ»ñµÃ´Ë½ÚµãµÄËùÓÐÐÅÏ¢¡£Ò²¿ÉÒÔʹÓÃÏÂÁÐÃüÁî»ñµÃ¸üÏêϸµÄ

ÐÅÏ¢£º


ÏÖÔÚÎÒÃÇÒªÓÃrosrunÃüÁîÆô¶¯Ò»¸öеĽڵ㣬ÈçÏÂËùʾ£º


ÎÒÃÇ¿´µ½³öÏÖÁËÒ»¸öеĴ°¿Ú£¬´°¿ÚÖмäÓÐÒ»¸öСº£¹ê£¬ÈçÓÒͼËùʾ£º

Èç¹ûÎÒÃÇÔÙÈ¥²é¿´½ÚµãÁÐ±í£¬»á¿´µ½³öÏÖÁËÒ»¸öеĽڵ㣬½Ð×ö/turtlesim¡£Äã¿ÉÒÔͨ¹ýʹÓÃrosnode info nameNodeÃüÁî²é¿´½ÚµãÐÅÏ¢¡£¿ÉÒÔ¿´µ½ºÜ¶àÄÜÓÃÓÚ³ÌÐòµ÷ÊÔµÄÐÅÏ¢£º


ÉÏÒ»¸öÃüÁîÊä³öÈçÏÂÐÅÏ¢£º



ÔÚÒÔÉÏÐÅÏ¢ÖУ¬ÎÒÃÇ¿ÉÒÔ¿´µ½Publications£¨¼°ÏàÓ¦Ö÷Ì⣩¡¢Subscriptions£¨¼°ÏàÓ¦Ö÷Ì⣩¡¢¸Ã½Úµã¾ßÓеÄServices£¨srv£©¼°ËüÃǸ÷×ÔΨһµÄÃû³Æ¡£

½ÓÏÂÀ´½éÉÜÈçºÎʹÓÃÖ÷ÌâºÍ·þÎñÓë¸Ã½Úµã½øÐн»»¥¡£

2.4.6¡¡ÈçºÎʹÓÃÖ÷ÌâÓë½Úµã½»»¥

Òª½øÐн»»¥²¢»ñÈ¡Ö÷ÌâµÄÐÅÏ¢£¬¿ÉÒÔʹÓÃrostopic¹¤¾ß¡£´Ë¹¤¾ß½ÓÊÜÒÔϲÎÊý£º

rostopic bw TOPIC¡¡ÏÔʾÖ÷ÌâËùʹÓõĴø¿í¡£

rostopic echo TOPIC¡¡½«ÏûÏ¢Êä³öµ½ÆÁÄ»¡£

rostopic find TOPIC¡¡°´ÕÕÀàÐͲéÕÒÖ÷Ìâ¡£

rostopic hz TOPIC¡¡ÏÔʾÖ÷ÌâµÄ·¢²¼ÆµÂÊ¡£

rostopic info TOPIC¡¡Êä³ö»î¶¯Ö÷ÌâµÄÐÅÏ¢¡£

rostopic list TOPIC¡¡Áгö»î¶¯Ö÷Ìâ¡£

rostopic pubs TOPIC¡¡½«Êý¾Ý·¢²¼µ½Ö÷Ìâ¡£

rostopic type TOPIC¡¡Êä³öÖ÷ÌâµÄÀàÐÍ¡£

Èç¹ûÏëÒª²é¿´ÓйØÕâЩ²ÎÊýµÄÏêϸÐÅÏ¢£¬ÇëʹÓÃ-h£¬ÈçÏÂËùʾ£º


ͨ¹ýʹÓÃpub²ÎÊý£¬¿ÉÒÔ·¢²¼Èκνڵ㶼¿ÉÒÔ¶©ÔĵÄÖ÷Ìâ¡£ÎÒÃÇÖ»ÐèÒªÓÃÕýÈ·µÄÃû³Æ½«Ö÷Ìâ·¢²¼³öÈ¥¡£ÎÒÃǽ«»áÔÚÒÔºó×öÕâ¸ö²âÊÔ£¬ÏÖÔÚҪʹÓÃÒ»¸ö½Úµã£¬²¢Èýڵã×öÈçϹ¤×÷£º


ͨ¹ý½Úµã¶©ÔĵÄÖ÷Ì⣬ÎÒÃÇ¿ÉÒÔʹÓüýÍ·¼üÒÆ¶¯º£¹ê£¬ÈçÓÒͼËùʾ£º

Ϊʲôturtle_teleop_keyÖ´ÐÐʱ£¬Ð¡º£¹ê»áÒÆ¶¯ÄØ?

Èç¹ûÄãÏëÒª¿´µ½/teleop_turtleºÍ/turtlesim½ÚµãµÄÐÅÏ¢£¬¿ÉÒÔ¿´µ½ÔÚÏÂÃæµÄ´úÂëÖУ¬ÔÚµÚÒ»¸ö½ÚµãµÄ·¢²¼Õߣ¨Publications£©²¿·ÖÓÐÒ»¸öÖ÷Ìâ½Ð/turtle1/cmd_vel?

[geometry_msgs/Twist]£»ÔÚµÚ¶þ¸ö½ÚµãµÄ¶©ÔÄÕߣ¨Subscriptions£©²¿·ÖÓÐ/turtle1/cmd_vel [geometry_ msgs/Twist]£º



ÕâÒâζ×ÅÇ°ÃæµÄ½Úµã·¢²¼ÁËÒ»¸öÖ÷Ì⣬¶øºóÃæµÄ½Úµã¿ÉÒÔ¶©ÔÄ¡£Äã¿ÉÒÔʹÓÃÒÔÏÂÃüÁî²é¿´Ö÷ÌâÇåµ¥£º


Êä³öÈçÏ£º


ͨ¹ýʹÓÃecho²ÎÊý£¬¿ÉÒԲ鿴½Úµã·¢³öµÄÐÅÏ¢¡£ÔËÐÐÒÔÏÂÃüÁîÐв¢Ê¹ÓüýÍ·¼ü²é¿´ÏûÏ¢²úÉúʱ·¢ËÍÁËÄÄЩÊý¾Ý£º


Äã»á¿´µ½ÀàËÆÏÂÃæµÄÏÔʾ£º


Äã¿ÉÒÔʹÓÃÒÔÏÂÃüÁîÐв鿴ÓÉÖ÷Ìâ·¢Ë͵ÄÏûÏ¢ÀàÐÍ£º


Äã»á¿´µ½ÀàËÆÈçϵÄÏÔʾ£º


Èç¹ûÄãÏëÒª¿´µ½ÏûÏ¢×ֶΣ¬¿ÉÒÔʹÓÃÒÔÏÂÃüÁ


Äã»á¿´µ½ÀàËÆÈçϵÄÏÔʾ£º


ÕâЩ¹¤¾ß·Ç³£ÓÐÓã¬ÒòΪÎÒÃÇ¿ÉÒÔͨ¹ýÕâЩ¹¤¾ßʹÓÃrostopic pub [topic] [msg_type] [args]ÃüÁîÖ±½Ó·¢²¼Ö÷Ì⣺


Äã»á¿´µ½Ð¡º£¹ê×öÇúÏßÔ˶¯£¬ÈçÓÒͼËùʾ¡£

2.4.7¡¡ÈçºÎʹÓ÷þÎñ

·þÎñÊÇÄܹ»Ê¹½ÚµãÖ®¼äÏ໥ͨÐŵÄÁíÒ»ÖÖ·½·¨¡£·þÎñÔÊÐí½Úµã·¢ËÍÇëÇóºÍ½ÓÊÕÏìÓ¦¡£

¿ÉÒÔʹÓÃrosservice¹¤¾ßÓë·þÎñ½øÐн»»¥¡£´ËÃüÁî½ÓÊܵIJÎÊýÈçÏÂËùʾ£º

rosservice args/service¡¡Êä³ö·þÎñ²ÎÊý¡£

rosservice call/service¡¡¸ù¾ÝÃüÁîÐвÎÊýµ÷Ó÷þÎñ¡£

rosservice find msg-type¡¡¸ù¾Ý·þÎñÀàÐͲéѯ·þÎñ¡£

rosservice info /service¡¡Êä³ö·þÎñÐÅÏ¢¡£

rosservice list¡¡Áгö»î¶¯·þÎñÇåµ¥¡£

rosservice type/service¡¡Êä³ö·þÎñÀàÐÍ¡£

rosservice uri/service¡¡Êä³öROSRPC URI·þÎñ¡£

ÎÒÃÇҪʹÓÃÒÔÏÂÃüÁîÁгöÔÚturtlesim½ÚµãÔËÐÐʱϵͳÌṩµÄ·þÎñ¡£Èç¹ûÄãÔËÐÐÁËÕâ¸öÃüÁȴûÓÐÈκη´Ó¦£¬ÄÇôÇë¼ÇסҪÏÈÔËÐÐroscore²¢Æô¶¯turtlesim½Úµã£º


Äã»á»ñµÃÒÔÏÂÊä³ö£º


Èç¹ûÄãÏë²é¿´Ä³¸ö·þÎñµÄÀàÐÍ£¬ÀýÈç/clear·þÎñ£¬ÇëʹÓãº


Äã»á»ñµÃÀàËÆÏÂÃæµÄÊä³ö£º


ÈôÒªµ÷Ó÷þÎñ£¬ÄãÐèҪʹÓÃrosservice call [service] [args]ÃüÁî¡£ËùÒÔÈç¹ûÏëÒªµ÷ÓÃ/clear·þÎñ£¬ÇëʹÓãº


ÔÚturtlesimµÄ´°¿ÚÖУ¬Äã»á¿´µ½ÓÉСº£¹êÒÆ¶¯²úÉúµÄÏßÌõÏûʧÁË¡£

ÏÖÔÚÎÒÃdz¢ÊÔÆäËûµÄ·þÎñ£¬ÀýÈç/spawn·þÎñ¡£ÕâÏî·þÎñ½«ÒÔ²»Í¬µÄ·½ÏòÔÚÁíÒ»¸öλÖô´½¨ÁíһֻСº£¹ê¡£¿ªÊ¼Ö®Ç°£¬ÎÒÃÇҪȥ²é¿´ÒÔÏÂÀàÐ͵ÄÏûÏ¢£º


ÎÒÃÇ»á»ñµÃÒÔϲÎÊý£º


Ç°ÃæµÄÃüÁîºÍÏÂÃæµÄÃüÁîÊÇÏàͬµÄ¡£Èç¹ûÄãÏëÖªµÀΪʲôÕâЩÃüÁîÏàͬ£¬¿ÉÒÔÔÚËÑË÷ÒýÇæÀïËÑË÷piping Linux£º


Äã»á¿´µ½ÈçÏÂÀàËÆµÄ½á¹û£º


ÊäÈëÏÂÃæÃüÁ


Äã»á¿´µ½ÈçÏÂÀàËÆµÄ½á¹û£º


ͨ¹ýÕâЩ×ֶΣ¬¿ÉÒÔÖªµÀÈçºÎµ÷Ó÷þÎñ¡£ÎÒÃÇÐèҪк£¹êλÖõÄxºÍy¡¢·½Ïò£¨theta£©ºÍк£¹êµÄÃû³Æ£º


ÎÒÃÇ»á»ñµÃÓÒ²àµÄ½á¹û£º

2.4.8¡¡Ê¹ÓòÎÊý·þÎñÆ÷

²ÎÊý·þÎñÆ÷ÓÃÓÚ´æ´¢ËùÓнڵã¾ù¿É·ÃÎʵĹ²ÏíÊý¾Ý¡£ROSÖÐÓÃÀ´¹ÜÀí²ÎÊý·þÎñÆ÷µÄ¹¤¾ß³ÆÎªrosparam¡£½ÓÊܵIJÎÊýÈçÏÂËùʾ£º

rosparam set parameter value¡¡ÉèÖòÎÊýÖµ¡£

rosparam get parameter¡¡»ñÈ¡²ÎÊýÖµ¡£

rosparam load file¡¡´ÓÎļþ¼ÓÔØ²ÎÊý¡£

rosparam dump file¡¡½«²ÎÊý±£´æµ½Ò»¸öÎļþ¡£

rosparam delete parameter¡¡É¾³ý²ÎÊý¡£

rosparam list¡¡ÁгöÁËËùÓвÎÊýÃû¡£

ÀýÈ磬²é¿´±»ËùÓнڵãʹÓõķþÎñÆ÷²ÎÊý£º


ÎÒÃÇ»á»ñµÃÒÔÏÂÊä³ö£º


ÉÏÃæµÄ±³¾°£¨background£©ÊÇturtlesim½ÚµãµÄ²ÎÊý¡£ÕâЩ²ÎÊý¿ÉÒԸı䴰¿ÚµÄÑÕÉ«£¬´°¿Ú³õʼ»¯ÎªÀ¶É«¡£Èç¹ûÄãÏëÒª¶Áȡij¸öÖµ£¬¿ÉÒÔʹÓÃget²ÎÊý£º


ΪÁËÉ趨һ¸öеÄÖµ£¬¿ÉÒÔʹÓÃset²ÎÊý£º


ÃüÁîÐй¤¾ßrosparamµÄÁíÍâÒ»¸öÖØÒªÌØÐÔÊÇdump²ÎÊý¡£Í¨¹ý¸Ã²ÎÊý£¬Äã¿ÉÒÔ±£´æ»ò¼ÓÔØ²ÎÊý·þÎñÆ÷µÄÄÚÈÝ¡£

ÎÒÃÇʹÓÃrosparam dump [file_name]À´±£´æ²ÎÊý·þÎñÆ÷£º


ʹÓÃrosparam load [file_name] [namespace]Ïò²ÎÊý·þÎñÆ÷¼ÓÔØÐµÄÊý¾ÝÎļþ£º


2.4.9¡¡´´½¨½Úµã

ÔÚ±¾½ÚÖУ¬ÎÒÃÇҪѧϰÈçºÎ´´½¨Á½¸ö½Úµã£ºÒ»¸ö·¢²¼Êý¾Ý£¬ÁíÒ»¸ö½ÓÊÕÕâЩÊý¾Ý¡£ÕâÊÇÁ½¸ö½ÚµãÖ®¼ä×î»ù±¾µÄͨÐÅ·½Ê½£¬Ò²¾ÍÊDzÙ×÷Êý¾Ý²¢Ê¹ÓÃÕâЩÊý¾ÝÀ´×öЩ¹¤×÷¡£

ʹÓÃÒÔÏÂÃüÁî·µ»Øchapter2_tutorials/src/Îļþ¼Ð£º


´´½¨Á½¸öÎļþ²¢·Ö±ðÃüÃûΪexample1_a.cppºÍexample1_b.cpp¡£example1_a.cppÎļþ½«»á·¢ËÍ´øÓнڵãÃû³ÆµÄÊý¾Ý£¬example1_b.cppÎļþ»á°ÑÕâЩÊý¾ÝÏÔʾÔÚÃüÁîÐд°¿ÚÖС£½«ÏÂÃæµÄ´úÂë¸´ÖÆµ½example1_a.cppÎļþ»òÕß´Ó¿âÖÐÏÂÔØËü£º


¾ÍÒÔÉÏ´úÂë×ö½øÒ»²½½âÊÍ¡£


Òª°üº¬µÄÍ·ÎļþÊÇros/ros.h¡¢std_msgs/String.hºÍsstream¡£ÆäÖУ¬ros/ros.h°üº¬ÁËʹÓÃROS½ÚµãËùÓбØÒªµÄÎļþ£¬¶østd_msgs/String.h°üº¬ÁËÎÒÃÇҪʹÓõÄÏûÏ¢ÀàÐÍ£º


Æô¶¯¸Ã½Úµã²¢ÉèÖÃÆäÃû³Æ£¬Çë¼Çס¸ÃÃû³Æ±ØÐëÊÇΨһµÄ£º


ÏÂÃæÊÇÉèÖÃ½Úµã½ø³ÌµÄ¾ä±ú£º


½«½ÚµãÉèÖóɷ¢²¼Õߣ¬²¢½«Ëù·¢²¼Ö÷ÌâºÍÀàÐ͵ÄÃû³Æ¸æÖª½Úµã¹ÜÀíÆ÷¡£µÚÒ»¸ö²ÎÊýÊÇ»º³åÇøµÄ´óС£¬ÃûΪmessage¡£Èç¹ûÖ÷Ìâ·¢²¼Êý¾ÝËٶȽϿ죬ÄÇô½«»º³åÇøÉèÖÃΪ1000¸öÏûÏ¢£¬ÈçÏÂËùʾ£º


ÔÚ±¾ÀýÖУ¬ÉèÖ÷¢ËÍÊý¾ÝµÄƵÂÊΪ10Hz£º


µ±ÊÕµ½Ctrl + CµÄ°´¼üÏûÏ¢»òROSÍ£Ö¹µ±Ç°½ÚµãÔËÐÐʱ£¬ros::ok()ÐлáÖ´ÐÐÍ£Ö¹½ÚµãÔËÐеÄÃüÁ


ÔÚÕâÀÎÒÃÇ´´½¨Ò»¸öÏûÏ¢±äÁ¿£¬±äÁ¿µÄÀàÐͱØÐë·ûºÏ·¢ËÍÊý¾ÝµÄÒªÇó£º


ÕâÑù£¬ÏûÏ¢±»·¢²¼£º


Èç¹ûÓÐÒ»¸ö¶©ÔÄÕß³öÏÖ£¬ROS¾Í»á¸üв¢¶ÁÈ¡ËùÓÐÖ÷Ì⣺


°´ÕÕ10HzµÄƵÂʽ«³ÌÐò¹ÒÆð¡£

ÏÖÔÚÎÒÃÇ´´½¨ÁíÒ»¸ö½Úµã¡£½«ÏÂÃæµÄ´úÂë¸´ÖÆµ½example1_b.cppÎļþ»òÕß´Ó¿âÖÐÏÂÔØËü£º



ÕâÀïÊÇһЩ¶ÔÉÏÃæ´úÂëµÄ½âÊÍ¡£


Ê×ÏÈÒª°üº¬Í·ÎļþºÍÖ÷ÌâËùʹÓõÄÏûÏ¢ÀàÐÍ£º


ÿ´Î¸Ã½ÚµãÊÕµ½Ò»ÌõÏûϢʱ¶¼½«µ÷Óô˺¯Êý£¬ÎÒÃǾͿÉÒÔʹÓûò´¦ÀíÊý¾Ý¡£ÔÚ±¾Ê¾ÀýÖУ¬ÎÒÃǽ«ÊÕµ½µÄÊý¾ÝÔÚÃüÁîÐд°¿ÚÖÐÊä³ö£º


´´½¨Ò»¸ö¶©ÔÄÕߣ¬²¢´ÓÖ÷Ìâ»ñÈ¡ÒÔmessageΪÃû³ÆµÄÏûÏ¢Êý¾Ý¡£ÉèÖûº³åÇøÎª1000¸öÏûÏ¢£¬´¦ÀíÏûÏ¢µÄ»Øµ÷º¯ÊýΪmessageCallback£º


ros::spin()ÐÐÊǽڵ㿪ʼ¶ÁÈ¡Ö÷ÌâºÍÔÚÏûÏ¢µ½´ïʱ£¬»Øµ÷º¯ÊýmessageCallback±»µ÷ÓõÄÑ­»·¡£µ±Óû§°´ÏÂCtrl + C£¬½Úµã»áÍ˳öÏûϢѭ»·£¬ÓÚÊÇÑ­»·½áÊø¡£

2.4.10¡¡±àÒë½Úµã

µ±Ê¹ÓÃchapter2_tutorials¹¦Äܰüʱ£¬ÐèÒª×ÔÐб༭CMakeLists.txtÎļþ¡£Äã¿ÉÒÔʹÓÃÄãϲ»¶µÄ±à¼­Æ÷»òÖ±½ÓʹÓÃrosed¹¤¾ß¡£ÕâÀïÎÒÃǽ«»áÔÚVim±à¼­Æ÷Ï´ò¿ªÕâ¸öÎļþ£º


½«ÒÔÏÂÃüÁîÐи´ÖƵ½ÎļþµÄĩβ´¦£º


ÏÖÔÚÎÒÃÇʹÓÃcatkin_make¹¤¾ßÀ´±àÒ빦ÄܰüºÍÈ«²¿µÄ½Úµã£º


Èç¹ûÔÚÄãµÄµçÄÔÉÏ»¹Ã»ÓÐÆô¶¯ROS£¬ÐèÒªÊ×Ïȵ÷Óãº


Äã¿ÉÒÔʹÓÃrosnode listÃüÁî¼ì²éROSÊÇ·ñÔËÐУº


È»ºó£¬ÔÚ²»Í¬µÄÃüÁîÐд°¿ÚÏ·ֱðÔËÐÐÁ½¸ö½Úµã£º


Èç¹ûÄã¼ì²éÒ»ÏÂexample1_b½ÚµãÕýÔÚÔËÐеÄÃüÁîÐд°¿Ú£¬Äã¾Í»á¿´µ½ÒÔÏÂÐÅÏ¢£º


ÎÒÃÇ¿ÉÒÔÔÚÏÂͼÖп´µ½ÕýÔÚ·¢ÉúµÄÏûÏ¢´«µÝ¡£example1_a½Úµã·¢²¼messageÖ÷Ì⣬ͬʱ½Úµãexample2_b½Úµã¶©ÔÄÁËÕâ¸öÖ÷Ìâ¡£


Äã¿ÉÒÔʹÓÃrosnodeºÍrostopicÃüÁîÀ´µ÷ÊԺͲ鿴µ±Ç°½ÚµãµÄÔËÐÐ×´¿ö¡£³¢ÊÔʹÓÃÒÔÏÂÃüÁ


2.4.11¡¡´´½¨msgºÍsrvÎļþ

ÔÚÕâÒ»½ÚÖУ¬ÎÒÃǽ«»áѧϰÈçºÎÔÚ½ÚµãÖд´½¨msgºÍsrvÎļþ¡£ËüÃÇÊÇÓÃÓÚ˵Ã÷´«ÊäÊý¾ÝµÄÀàÐͺÍÊý¾ÝÖµµÄÎļþ¡£ROS»á¸ù¾ÝÕâЩÎļþÄÚÈÝ×Ô¶¯µØÎªÎÒÃÇ´´½¨ËùÐèµÄ´úÂ룬ÒÔ±ãmsgºÍsrvÎļþÄܹ»±»½ÚµãʹÓᣵÚÒ»²½£¬ÎÒÃÇÏÈѧϰmsgÎļþ¡£

ÔÚÉÏÒ»½ÚʹÓõÄʾÀýÖУ¬ÎÒÃÇÒѾ­´´½¨ÁËÁ½¸ö¾ßÓбê×¼ÀàÐÍmessageµÄ½Úµã¡£ÏÖÔÚ£¬ÎÒÃÇҪѧϰÈçºÎʹÓÃROS¹¤¾ß´´½¨×Ô¶¨ÒåÏûÏ¢¡£

Ê×ÏÈ£¬ÔÚchapter2_tutorials¹¦ÄܰüÏ´´½¨msgÎļþ¼Ð£¬²¢ÔÚÆäÖд´½¨Ò»¸öеÄÎļþchapter2_msg1.msg¡£ÔÚÎļþÖÐÔö¼ÓÒÔÏÂÐУº


ÏÖÔڱ༭package.xml£¬´Ó<build_depend>message_generation</build_depend>ºÍ<run_depend>message_runtime</run_depend>ÐÐɾ³ý<!-- -->£¬È»ºó±à¼­CMakeList.txt£¬°´ÏÂÃæËùʾ¼ÓÈëmessage_generation£º


ÕÒµ½ÈçÏÂÐУ¬È¡Ïû×¢ÊÍ£¬²¢¼ÓÈëÐÂÏûÏ¢Ãû³Æ£º


ÏÖÔÚ£¬ÓÃÏÂÃæÃüÁî½øÐбàÒ룺


¼ì²é±àÒëÊÇ·ñ³É¹¦£¬Ê¹ÓÃÏÂÃærosmsgÃüÁ


Èç¹ûÄãÔÚchapter2_msg1.msgÎļþÖп´µ½Ò»ÑùµÄÄÚÈÝ£¬ËµÃ÷±àÒëÕýÈ·¡£

ÏÖÔÚ´´½¨Ò»¸ösrvÎļþ¡£ÔÚchapter2_tutorialsÎļþ¼ÐÏ´´½¨Ò»¸öÃûΪsrvµÄÎļþ¼Ð£¬²¢Ð½¨Îļþchapter2_srv1.srv£¬ÔÚÎļþÖÐÔö¼ÓÒÔÏÂÐУº


ΪÁ˱àÒëеÄmsgºÍsrvÎļþ£¬±ØÐëÈ¡ÏûÔÚpackage.xmlºÍCMakeLists.txtÖеÄÈçÏÂÐеÄ×¢ÊÍ¡£ÕâЩ°üº¬ÏûÏ¢ºÍ·þÎñµÄÅäÖÃÐÅÏ¢£¬²¢¸æËßROSÈçºÎ±àÒë¡£

Ê×ÏÈ£¬°´ÏÂÃæ·½Ê½´Óchapter2_tutorials¹¦ÄܰüÖдò¿ªpackage.xmlÎļþ£º


ÕÒµ½ÏÂÃæÐв¢È¡Ïû×¢ÊÍ£º



ʹÓÃÏÂÃæÃüÁî´ò¿ªCMakeLists.txt£º


ÕÒµ½ÏÂÃæÐУ¬È¡Ïû×¢ÊÍ£¬²¢¸ÄΪÕýÈ·Êý¾Ý£º


ΪÁËÉú³ÉÏûÏ¢£¬ÄãÐèÒªÔÚfind_ package²¿·ÖÌí¼Ómessage_generationÐУº


ÔÚadd_message_filesÈçÏÂλÖÃÌí¼ÓÏûÏ¢ºÍ·þÎñÎļþµÄÃû×Ö£º


È¡Ïûgenerate_messages²¿·ÖµÄ×¢ÊÍ£¬Ê¹µÃÏûÏ¢ºÍ·þÎñ¿ÉÒÔ˳ÀûÉú³É£º


²âÊÔ±àÒëÊÇ·ñ³É¹¦£¬Ê¹ÓÃÈçÏÂrossrvÃüÁ


Èç¹ûÄãÔÚchapter2_srv1.srvÎļþÖп´µ½ÏàͬµÄÄÚÈÝ£¬ËµÃ÷±àÒëÕýÈ·¡£

2.4.12¡¡Ê¹ÓÃн¨µÄsrvºÍmsgÎļþ

Ê×ÏÈ£¬ÎÒÃǽ«»áѧϰÈçºÎ´´½¨Ò»¸ö·þÎñ²¢ÇÒÔÚROSÖÐʹÓ᣸÷þÎñ½«»á¶ÔÈý¸öÕûÊýÇóºÍ¡£ÎÒÃÇÐèÒªÁ½¸ö½Úµã£¬Ò»¸ö·þÎñÆ÷Ò»¸ö¿Í»§¶Ë¡£

ÔÚchapter2_tutorials¹¦ÄܰüÖУ¬Ð½¨Á½¸ö½Úµã²¢ÒÔexample2_a.cppºÍexample2_b.cppΪÃû³Æ¡£±ðÍüÁËÒªÔÚsrcÎļþ¼ÐÏ´´½¨ÕâÁ½¸öÎļþ¡£

ÔÚµÚÒ»¸öÎļþexample2_a.cppÖУ¬Ìí¼ÓÒÔÏ´úÂ룺



½âÊÍÒ»ÏÂÕâЩ´úÂ룺


ÕâЩÐаüº¬±ØÒªµÄÍ·ÎļþºÍÎÒÃÇ´´½¨µÄsrvÎļþ£º


Õâ¸öº¯Êý»á¶Ô3¸ö±äÁ¿ÇóºÍ£¬²¢½«¼ÆËã½á¹û·¢Ë͸øÆäËû½Úµã£º


ÔÚÕâÀ´´½¨·þÎñ²¢ÔÚROSÖз¢²¼¹ã²¥¡£

ÔÚµÚ2¸öÎļþexample2_b.cppÖУ¬Ôö¼ÓÒÔÏ´úÂ룺




´úÂë½âÊÍ£º


ÒÔadd_3_intsΪÃû³Æ´´½¨Ò»¸ö·þÎñµÄ¿Í»§¶Ë¡£


ÏÂÃæ´´½¨srvÎļþµÄÒ»¸öʵÀý£¬²¢ÇÒ¼ÓÈëÐèÒª·¢Ë͵ÄÊý¾ÝÖµ¡£Èç¹ûÄ㻹¼ÇµÃ£¬Õâ¸öÏûÏ¢ÐèÒª3¸ö×ֶΡ£


ÕâÐдúÂë»áµ÷Ó÷þÎñ²¢·¢ËÍÊý¾Ý¡£Èç¹ûµ÷Óóɹ¦£¬call()º¯Êý»á·µ»Øtrue£»Èç¹ûû³É¹¦£¬call()º¯Êý»á·µ»Øfalse¡£

ΪÁ˱àÒë½Úµã£¬ÔÚCMakeList.txtÎļþÖÐÔö¼ÓÒÔÏÂÐУº



ÏÖÔÚÖ´ÐÐÒÔÏÂÃüÁ


ΪÁËÆô¶¯½Úµã£¬ÐèÒªÖ´ÐÐÒÔÏÂÃüÁîÐУº


²¢ÇÒÄã»á¿´µ½ÈçÏÂÏÔʾ£º


ÏÖÔÚ½«ÒªÓÃ×Ô¶¨ÒåµÄmsgÎļþÀ´´´½¨½Úµã¡£Õâ¸öÀý×ÓÒ²Ò»Ñù£¬´´½¨example1_a.cppºÍexample1_b.cppÎļþ£¬Í¬Ê±µ÷ÓÃchapter2_msg1.msg¡£

½«ÏÂÃæµÄ´úÂë·ÅÔÚexample3_a.cppÎļþÖУº



½«ÏÂÃæµÄ´úÂë·ÅÔÚexample3_b.cppÎļþÖУº


Èç¹ûÏÖÔÚÔËÐÐÕâÁ½¸ö½Úµã£¬½«»á¿´µ½ÈçÏÂÐÅÏ¢£º


2.4.13¡¡Æô¶¯Îļþ

Æô¶¯£¨launch£©ÎļþÊÇROSÖÐÒ»¸ö·Ç³£ÓÐÓõŦÄÜ£¬¿ÉÒÔÆô¶¯¶à¸ö½Úµã¡£ÔÚ֮ǰµÄС½ÚÖУ¬ÎÒÃÇÒѾ­Ñ§Ï°ÁË´´½¨Á˽ڵ㣬²¢ÇÒÔÚ²»Í¬µÄÃüÁîÐд°¿ÚÖ´ÐУ¬ÏëÏóһϣ¬Èç¹ûÔÚÿһ¸öÃüÁîÐд°¿ÚÆô¶¯20¸ö½Úµã»áÊǶàô¿Ö²ÀµÄÒ»¼þÊÂÇ飡

ͨ¹ýÆô¶¯ÎļþÎÒÃÇ¿ÉÒÔÔÚÃüÁîÐд°¿Ú·½±ãµØÊµÏÖÒÔÉÏÈÎÎñ£¬Ö»ÐèÒªÔËÐкó׺ÃûΪ.launchµÄÅäÖÃÎļþÀ´Æô¶¯¶à¸ö½Úµã¡£

ΪÁËÁ·Ï°Õâ¸öÀý×Ó£¬ÎÒÃÇÔÚ¹¦ÄܰüÖд´½¨Ò»¸öÐÂÎļþ¼Ð£º


ÏÖÔÚ£¬ÔÚchapter2.launchÎļþÖÐÊäÈëÏÂÃæµÄ´úÂ룺



ÕâÊǸö¼òµ¥µÄÀý×Ó£¬Èç¹ûÐèÒªµÄ»°£¬Ò²¿ÉÒÔ±àд·Ç³£¸´ÔÓµÄÎļþ¡£ÀýÈ磬¿ØÖÆÒ»¸öÍêÕû»úÆ÷ÈË£¬ÈçPR2»òRobonaut£¬°üÀ¨ÕæÊµµÄ»úÆ÷È˺ÍÔÚROSÖзÂÕæµÄ»úÆ÷ÈË¡£

Õâ¸öÎļþ°üÀ¨launchÆô¶¯±êÇ©£¬ÔÚ±êÇ©ÄÚ²¿¿ÉÒÔ¿´µ½node½Úµã±êÇ©¡£Õâ¸ö½Úµã±êÇ©ÓÃÓÚ´Ó¹¦ÄܰüÖÐÆô¶¯½Úµã£¬ÀýÈç´Óchapter2_tutorials°üÖÐÆô¶¯example1_a½Úµã¡£

Õâ¸öÆô¶¯Îļþ½«Ö´ÐÐÁ½¸ö½Úµã£¬¼´ÕâÕÂ×îǰµÄÁ½¸öÀý×Ó¡£Èç¹ûÄ㻹¼ÇµÃ£¬¾ÍÊǽڵãexample1_a·¢ËÍÏûÏ¢µ½½Úµãexample1_b¡£Äã¿ÉÒÔͨ¹ýÈçÏÂÃüÁîÆô¶¯Õâ¸öÎļþ£º


Äã¿ÉÒÔ¿´µ½ÀàËÆÏÂͼµÄÏÔʾ£º


ÔËÐеĽڵãÔÚÉÏÃæµÄ½ØÍ¼ÖÐÁгö£¬Äã¿ÉÒÔͨ¹ýÏÂÃæÃüÁî²é¿´ÔËÐеĽڵãÐÅÏ¢£º


¿ÉÒÔ¿´µ½ÈçÓÒͼËùʾµÄÈý¸ö½Úµã£º

µ±Ö´ÐÐÆô¶¯Îļþʱ£¬²¢²»ÐèÒªÔÚroscoreÃüÁîǰÆô¶¯£¬roslaunch»áÆô¶¯Ëü¡£

»¹¼ÇµÃ½Úµãexample1_b»áÔÚÆÁÄ»Êä³ö´ÓÆäËû½ÚµãÊÕµ½µÄÏûÏ¢£¬ÏÖÔÚÈ´¿´²»µ½ÁË£¬ÕâÊÇÒòΪexample1_bʹÓÃÁËROS_INFOÊä³öÏûÏ¢¡£µ±ÄãÔÚÃüÁîÐÐÖ»ÔËÐÐÒ»¸ö½Úµãʱ£¬¿ÉÒÔ¿´µ½¡£µ«Êǵ±ÄãÔËÐÐÆô¶¯Îļþʱ£¬Ôò¿´²»µ½¡£

ÏÖÔÚ£¬Èç¹ûÏë¿´µ½ÐÅÏ¢£¬Äã¿ÉÒÔÔËÐÐrqt_consoleÓ¦Óá£ÔÚ½ÓÏÂÀ´µÄÕ½ÚÖУ¬»á×öÏêϸ½éÉÜ¡£ÔËÐÐÒÔÏÂÃüÁ


Äã´ÓÏÂÃæµÄ½ØÍ¼ÖпÉÒÔ¿´µ½example1_b·¢Ë͵ÄÏûÏ¢£º


ÔÚ¿òÖУ¬Äã¿ÉÒÔ¿´µ½½Úµã·¢Ë͵ÄÏûÏ¢ÒÔ¼°À´Ô´Îļþ¡£

2.4.14¡¡¶¯Ì¬²ÎÊý

ROSµÄÁíÒ»¸ö¹¦ÄÜÊǶ¯Ì¬ÖØÅäÖÃÓ¦Óá£Í¨³£Çé¿öÏ£¬µ±ÄãÕýÔÚ±àдһ¸öнڵ㣬ÄãÖ»ÄÜÒÔÊý¾Ý³õʼ»¯½ÚµãÄڵıäÁ¿¡£Èç¹ûÄãÏë´ÓÍⲿ½Úµã¶¯Ì¬µØ¸Ä±äÕâЩֵ£¬Äã¿ÉÒÔʹÓòÎÊý·þÎñÆ÷¡¢·þÎñ»òÖ÷Ìâ¡£Èç¹ûÄãʹÓÃÒ»¸öPID½ÚµãÀ´¿ØÖÆÒ»¸öµç¶¯»ú£¬ÔòÓ¦¸ÃʹÓö¯Ì¬ÖØÅäÖÃ

Ó¦Óá£

ÔÚ±¾½ÚÖУ¬Ä㽫ѧϰÈçºÎÅäÖÃÒ»¸ö°üº¬´Ë¹¦ÄܵĻù±¾½Úµã¡£Ìí¼Ó±ØÒªµÄÄÚÈݵ½CMakeLists.txtºÍpackage.xmlÎļþ¡£

ΪÁËʹÓö¯Ì¬ÖØÅäÖã¬ÄãÐèҪдһ¸öÅäÖÃÎļþ²¢±£´æÔÚÄ㹦ÄܰüµÄcfgÎļþ¼ÐÖУ¬´´½¨Ò»¸öÎļþ¼ÐºÍÐÂÎļþÈçÏ£º


ÔÚchapter2.cfgÎļþÖÐÌí¼ÓÈçÏ´úÂ룺


´úÂë½âÊÍ£º


ÒÔÉÏ´úÂë³õʼ»¯ROS²¢µ¼Èë²ÎÊýÉú³ÉÆ÷£º


ÒÔÉÏ´úÂë³õʼ»¯²ÎÊýÉú³ÉÆ÷£¬Í¨¹ýËüÎÒÃÇ¿ÉÒÔ¿ªÊ¼ÓÃÏÂÃæµÄ´úÂëÐÐÌí¼Ó²ÎÊý£º


ÒÔÉÏ´úÂë¼ÓÈ벻ͬµÄ²ÎÊýÀàÐͲ¢ÉèÖÃĬÈÏÖµ¡¢ÃèÊö¡¢·¶Î§µÈ£¬²ÎÊýÓÐÈçÏÂÄÚÈÝ£º


name¡¡²ÎÊýµÄÃû³Æ

type¡¡²ÎÊýÖµµÄÀàÐÍ

level¡¡Ò»¸ö´«µÝ¸ø»Øµ÷µÄλÑÚÂë

description¡¡Ò»¸öÃèÊö²ÎÊý

default¡¡½ÚµãÆô¶¯µÄ³õʼֵ

min¡¡²ÎÊý×îСֵ

max¡¡²ÎÊý×î´óÖµ

²ÎÊýµÄÃû³Æ±ØÐëΨһ£¬²ÎÊýÖµ±ØÐëÔÚ×îСºÍ×î´óµÄ·¶Î§ÄÚ£º


×îºóÒ»ÐÐÉú³É±ØÒªµÄÎļþ²¢Í˳ö³ÌÐò¡£×¢Òâ.cfgÎļþÊÇÓÃPythonдµÄ¡£±¾ÊéµÄʵÀý´úÂëÖ÷ҪʹÓÃC++±àд£¬µ«ÓÐʱ»áʹÓÃPython´úÂëÆ¬¶Î¡£

ÒòΪÎļþ½«ÓÉROSÖ´ÐУ¬ËùÒÔÐèÒª¸Ä±äÎļþµÄȨÏÞ£¬ÎÒÃǽ«Ê¹ÓÃchmod a + xʹÎļþ¿ÉÓÉÈκÎÓû§Ö´ÐкÍÔËÐУ¬ÈçÏÂËùʾ£º


´ò¿ªCMakeList.txt£¬¼ÓÈëÏÂÃæ´úÂ룺



ÏÖÔÚ£¬ÎÒÃÇҪд¾ßÓж¯Ì¬ÖØÅäÖÃÖ§³ÖµÄнڵ㡣ÔÚsrcÎļþ¼ÐÖд´½¨Ò»¸öÐÂÎļþÈçÏ£º


ÔÚÎļþÖÐдÈëÈçÏ´úÂë¶Î£º


ÕâÀï½øÐдúÂë½âÊÍ£¬×¢ÒâÒ»Ð©ÖØÒªµÄÐУº


ÕâЩÐаüÀ¨ROSÍ·Îļþ¡¢²ÎÊý·þÎñÆ÷ÒÔ¼°ÎÒÃÇÏÈǰ´´½¨µÄconfigÎļþ¡£



»Øµ÷º¯Êý½«Êä³ö²ÎÊýµÄÐÂÖµ¡£ÕâÊDzÎÊý·ÃÎʵķ½Ê½£¬ÀýÈçconfig.int_param¡£²ÎÊýµÄÃû³Æ±ØÐëÓëexample2.cfgÅäÖÃÎļþÏàͬ£º


³õʼ»¯·þÎñÆ÷£¬ºöÂÔchapter2_ConfigÅäÖÃÎļþ£º


ÏÖÔÚ£¬ÎÒÃÇÏò·þÎñÆ÷·¢Ëͻص÷º¯Êý¡£µ±·þÎñÆ÷µÃµ½ÖØÐÂÅäÖÃÇëÇó£¬Ëü»áµ÷Óûص÷º¯Êý¡£

Ò»µ©ÎÒÃÇÍê³ÉÒÔÉϽ²½âµÄ²½Ö裬ÎÒÃÇÐèÒªÔÚCMakeLists.txtÎļþÖÐÌí¼ÓÈçÏ´úÂ룺


ÏÖÔÚ£¬Äã±ØÐë±àÒë²¢ÔËÐнڵãºÍ¶¯Ì¬ÖØÅäÖýçÃæ£¨Dynamic Reconfigure GUI£©£¬ÈçÏ£º


ÔÚÄãÖ´ÐÐ×îºóÒ»ÐÐÃüÁîºó£¬Äã»á¿´µ½Ò»¸öд°¿Ú£¬Í¨¹ýËüÄã¿ÉÒÔ¶¯Ì¬ÖØÅäÖýڵãµÄ²ÎÊý£¬ÈçÏÂͼËùʾ£º


ÿµ±Äãͨ¹ý»¬¿é¡¢Îı¾¿òµÈµ÷Õû²ÎÊýʱ£¬Äã¿ÉÒÔÔÚÃüÁîÐп´µ½ÕýÔÚÔËÐеĽڵãµÄÕâЩ¸Ä±ä£¬ÈçÏÂͼËùʾ£º


ͨ¹ý¶¯Ì¬ÖØÅäÖã¬Äã¿ÉÒÔ¸ü¸ßЧµØ¿ª·¢ºÍ²âÊԽڵ㡣ÓëÓ²¼þÒ»ÆðÅäºÏʹÓÃÕâ¸ö³ÌÐòÊDz»´íµÄÑ¡Ôñ¡£Ä㽫ÔÚ½ÓÏÂÀ´µÄÕ½ÚÖÐѧϰµ½¸ü¶àÄÚÈÝ¡£

2.5¡¡±¾ÕÂС½á

±¾Õ½éÉÜÁËROSϵͳµÄ¼Ü¹¹¼°Æä¹¤×÷·½Ê½µÄ»ù±¾ÐÅÏ¢¡£Ñ§Ï°ÁËһЩ»ù±¾¸ÅÄî¡¢¹¤¾ß¼°ÈçºÎͬ½Úµã¡¢Ö÷ÌâºÍ·þÎñ½øÐн»»¥µÄʾÀý¡£Ò»¿ªÊ¼£¬ËùÓÐÕâЩ¸ÅÄî¿ÉÄÜ¿´ÆðÀ´ÓÐЩ¸´ÔÓÇÒ²»Ì«ÊµÓ㬵«ÔÚºóÃæµÄÕ½ÚÖУ¬Äã»áÖð½¥Àí½âÕâÑùµÄÓ¦Óá£

¸÷λ¶ÁÕß×îºÃÔÚ¼ÌÐøºóÐøÕ½ڵÄѧϰ֮ǰ£¬¶ÔÕâЩ¸ÅÄʾÀý½øÐÐÁ·Ï°£¬ÒòΪÔÚºóÃæµÄÕ½ÚÀÎÒÃǽ«¼Ù¶¨ÄãÒѾ­ÊìϤËùÓеĸÅÄî¼°ÆäÓÃ;¡£

Çë×¢ÒâÈç¹ûÏë²éѯij¸öÃû´Ê»ò¹¦ÄܵĽâÊÍ£¬ÇÒÎÞ·¨ÔÚÕâ±¾ÊéÖÐÕÒµ½Ïà¹ØÄÚÈÝ»ò´ð°¸£¬ÄÇô¿ÉÒÔͨ¹ýÒÔÏÂÁ´½Ó·ÃÎÊROS¹Ù·½×ÊÔ´http://www.ros.org¡£¶øÇÒÄ㻹¿ÉÒÔͨ¹ý·ÃÎÊROSÉçÇøhttp://answers.ros.orgÌá³ö×Ô¼ºµÄÎÊÌâ¡£

ÔÚÏÂÒ»ÕÂÖУ¬½«Ñ§Ï°ÈçºÎʹÓÃROS¹¤¾ßµ÷ÊԺͿÉÊÓ»¯Êý¾Ý¡£ÕâЩ½«°ïÖúÄã·¢ÏÖÈí¼þÔËÐеÄÎÊÌ⣬²¢ÇÒÖ¸µ¼Äã¶ÔËüµÄÔËÐнøÐе÷Õû¡£





µÚ3ÕÂ

¿ÉÊÓ»¯ºÍµ÷ÊÔ¹¤¾ß

ROS¸½´øÁË´óÁ¿¹¦ÄÜÇ¿´óµÄ¹¤¾ß£¬°ïÖúÓû§ºÍ¿ª·¢ÈËÔ±¿ÉÊÓ»¯ºÍµ÷ÊÔ´úÂ룬ÒÔ±ã¼ì²â²¢½â¾öÈíÓ²¼þÎÊÌâ¡£ÆäÖаüÀ¨ÏûÏ¢ÈÕ־ϵͳ£¨ÀàËÆlog4cxx£©¡¢Õï¶ÏÏûÏ¢¡¢¿ÉÊÓ»¯ÒÔ¼°¼ì²â¹¤¾ß¡£ÕâЩ¹¤¾ßչʾÁËÄÄЩ½ÚµãÕýÔÚÔËÐкÍËüÃÇÊÇÈçºÎÁ¬½ÓµÄ¡£


±¾ÕÂÎÒÃÇ»¹»áչʾÈçºÎÓÃGDBµ÷ÊÔÆ÷µ÷ÊÔROS½Úµã£¬½éÉÜÓÃÓÚÈÕÖ¾¼Ç¼µÄAPI£¬ÒÔ¼°ÈçºÎÉèÖÃÈÕÖ¾¼Ç¼¼¶±ð¡£½Ó×Å£¬ÎÒÃǽ«½âÊÍÈçºÎÓÃROS¹¤¾ß¼¯¼ì²âÄÄЩ½ø³ÌÕýÔÚÔËÐÐÒÔ¼°ËüÃÇÖ®¼äͨÐŵÄÄÚÈÝ¡£ÀýÈ磬ÔÚÏÂͼËùʾµÄϵͳ¿ÉÊÓ»¯Í¼ÖпÉÒÔ¿´µ½ÕýÔÚÔËÐеĽڵãÒÔ¼°ÓÃÁ¬Ïß±íʾµÄÊý¾ÝÁ÷¡£Õâ¸ö¹¤¾ßÊÇrqt_graph£¬ÕâÀïÏÔʾµÄÊÇREEM»úÆ÷ÈËÔÚGazebo·ÂÕæÖÐÔËÐеĽڵãºÍÖ÷Ìâ¡£

´ÓͼÖÐÎÒÃÇ¿ÉÒÔ¿´µ½¶à¸ö¹ØÓÚ»úе±Û¡¢Ö«ÌåºÍÍ·²¿µÄ¿ØÖÆÆ÷¡¢MoveIt!µÄmove_group½Úµã¡¢×¥È¡ºÍ·ÅÖòÙ×÷·þÎñÒÔ¼°play_motion½ÚµãµÄÔ¤´æ´¢¶¯×÷¡£ÆäËû½Úµã·¢²¼joint_states¡¢´óÁ¿»úÆ÷ÈË¿ØÖÆÆ÷ÒÔ¼°Òƶ¯µ×Å̵ÄÊÖ±ú¿ØÖƵÈÐÅÏ¢¡£

ͬÑù£¬±¾Õ»á½éÉܱêÁ¿Êý¾ÝµÄʱÐò»æÍ¼¹¤¾ß£¬ÊÓÆµÁ÷Êý¾ÝµÄ¿ÉÊÓ»¯Í¼£¬ÒÔ¼°ÓÃÓÚ²»Í¬ÀàÐÍÊý¾ÝµÄ3D¿ÉÊÓ»¯¹¤¾ßrviz£¨»òrqt_rviz£©µÈ£¬ÈçÏÂͼËùʾ£º


¿ÉÒÔʹÓÃÏÂÃæÃüÁîÔËÐÐÉÏͼµÄREEM»úÆ÷ÈË·ÂÕæ£º


×¢Ò⣬ÔÚ¿ªÊ¼°²×°´Ë·ÂÕæÇ°£¬ÇëÈÏÕæÔĶÁÏÂÃæÍøÒ³µÄʹÓÃ˵Ã÷£ºhttp://wiki.ros.org/Robots/REEM¡£

ÔÚ±¾½ÚÖУ¬½«½éÉÜÒÔÏÂÄÚÈÝ£º

ÈçºÎÔÚROSÖе÷ÊÔºÍÓÅ»¯´úÂë¡£

½éÉÜÔÚ´úÂëÖÐÌí¼ÓÏûÏ¢ÈÕÖ¾²¢ÉèÖò»Í¬µÄ¼¶±ð¡¢ÃüÃû¡¢Ìض¨Ìõ¼þºÍÁ÷Ñ¡Ïî¡£ÕâÀïÎÒÃǽ«½âÊÍrqt_logger_levelºÍrqt_console½Ó¿Ú£¬ËüÃÇ¿ÉÒÔ·Ö±ðÉèÖýڵã´íÎó¼¶±ðºÍÏûÏ¢¿ÉÊÓ»¯¡£

½éÉÜÈçºÎͨ¹ýÁбíÀ´¼ì²âROSϵͳ״̬£¬°üÀ¨ÔËÐеĽڵ㡢Ö÷Ìâ¡¢·þÎñºÍËüÃÇÖ®¼ä´«µÝÐÅÏ¢µÄÐÐΪÒÔ¼°ROS½Úµã¹ÜÀíÆ÷ÖÐÉùÃ÷µÄ²ÎÊýµÈ¡£ÎÒÃǽ«½éÉÜÒÔÓÐÏòͼÐÎʽÏÔʾÖ÷ÌâºÍ½ÚµãµÄrqt_graph£¬ºÍ¿ÉÒÔÓÃÀ´Ð޸Ķ¯Ì¬²ÎÊýµÄrqt_reconfigure¡£

½²½âÈçºÎʹÓÃruntime_monitorºÍrobot_monitor½Ó¿Ú¿ÉÊÓ»¯Õï¶ÏÐÅÏ¢¡£

½²½âÈçºÎʹÓÃrqt_plot»æÖÆÌض¨ÏûÏ¢µÄ±êÁ¿Êý¾Ý¡£¶ÔÓڷDZêÁ¿Êý¾Ý£¬ÎÒÃǽ«½²½âROSÖÐµÄÆäËûrqt¹¤¾ß£¬ÀýÈçÓÃrqt_image_viewÏÔʾͼÏñÒÔ¼°ÓÃrqt_rvizÒÔ3DÐÎʽÏÔʾ¶àάÊý¾Ý¡£»¹°üÀ¨ÈçºÎ¿ÉÊÓ»¯±ê¼ÇºÍ½»»¥Ê½±ê¼Ç¡£

½éÉÜ×ø±êϵÒÔ¼°ÈçºÎ½«ËüÃǼ¯³Éµ½ROSÏûÏ¢ºÍ¿ÉÊÓ»¯¹¤¾ßÖ®ÖС£ÒÔ¼°ÈçºÎʹÓÃrqt_tf_treeÀ´¿ÉÊÓ»¯×ª»»×ø±êϵÊ÷Transform Frame£¨tf£©¡£

½²½âÈçºÎ±£´æÖ÷Ìâ·¢Ë͵ÄÏûÏ¢£¬ÒÔ¼°ÈçºÎÖØ²¥ËüÃÇÓÃÓÚ·ÂÕæ»ò²âÊÔÄ¿µÄ£¬²¢½éÉÜrqt_bag½Ó¿Ú¡£

×îºó£¬½«½éÉÜrqt_gui½Ó¿Ú£¬ÒÔ¼°ÈçºÎÔÚÒ»¸öGUI´°¿ÚÖÐÅÅÁÐÏÔʾËüÃÇ¡£

´ó²¿·Örqt¹¤¾ß¿ÉÒÔÔÚÖÕ¶ËÊäÈëÃû³ÆÔËÐУ¬ÀýÈçrqt_console£¬µ«ÓÐʱ²»ÐУ¬±ØÐëʹÓÃrosrun rqt_reconfigure rqt_reconfigure£¬×¢ÒâÃû×ÖËäÈ»ÊÇÖØ¸´µÄ£¬µ«Æäʵǰһ¸öÊǹ¦ÄܰüµÄÃû³Æ£¬ºóÒ»¸öÊǽڵãÃû³Æ¡£

3.1¡¡µ÷ÊÔROS½Úµã

ROS½Úµã¿ÉÒÔÏñÕý³£³ÌÐòÒ»Ñùµ÷ÊÔ¡£µ÷ÊÔ³ÌÐòÔÚϵͳÖÐÔËÐÐʱÓÐÒ»¸ö½ø³ÌºÅ£¨PID£©¡£Äã¿ÉÒÔÓÃÈκαê×¼¹¤¾ß£¨Èçgdb£©½øÐе÷ÊÔ¡£Í¬Ñù¿ÉÒÔÓÃvalgrind¼ì²éÄÚ´æÐ¹Â©£¬»òÕßÓÃcallgrind·ÖÎöËã·¨ÐÔÄÜ¡£Çë¼ÇסʹÓÃÏÂÃæµÄÃüÁîÔËÐÐÒ»¸ö½Úµã£º


ºÜÒź¶£¬Äã²»ÄÜͨ¹ýÏÂÃæµÄ·½Ê½Æô¶¯ÃüÁ


ÔÚ½ÓÏÂÀ´µÄ²¿·ÖÖУ¬ÎÒÃǽ«½âÊÍÈçºÎµ÷ÓÃÕâЩ¹¤¾ßµ÷ÊÔROS½Úµã£¬ÒÔ¼°ÈçºÎÔÚ´úÂëÖÐÌí¼ÓÈÕÖ¾ÏûÏ¢£¬ÈÃÎÊÌâÕï¶Ï¸ü¼òµ¥¡£ÕâÑù¼´Ê¹Ã»Óжþ½øÖƵ÷ÊÔÎļþ£¬Ò²¿ÉÒÔÕï¶Ï»ù±¾ÎÊÌ⡣Ȼºó£¬ÎÒÃǽ«ÌÖÂÛROS×Լ칤¾ß£¬²âÊÔ½Úµã¼äË𻵵ÄÁ¬½Ó¡£Òò´Ë£¬ÕâÕµĸÅÊöÊÇ×Ô϶øÉÏ£¬Êµ¼ÊµÄÎÊÌâÕï¶Ï·½Ê½ÊÇ×ÔÉÏÏòÏ¡£

3.1.1¡¡Ê¹ÓÃgdbµ÷ÊÔÆ÷µ÷ÊÔROS½Úµã

ΪÁËʹÓÃgdbµ÷ÊÔÆ÷µ÷ÊÔÒ»¸öC/C++½Úµã£¬Î¨Ò»ÒªÖªµÀµÄÊÇ¿ÉÖ´ÐнڵãµÄ·¾¶¡£ÔÚROS hydroºÍcatkin¹¦ÄܰüÖУ¬½ÚµãµÄ¿ÉÖ´ÐÐÎļþÔÚ¹¤×÷¿Õ¼äµÄdevel/lib/<package>ÎļþÏ¡£ÀýÈ磬ΪÁËÔÚgdbÖÐÔËÐÐchapter3_tutorials¹¦ÄܰüÖеÄexample1½Úµã£¬ÎÒÃÇÐèÒª°´Èçϲ½Öè½øÐУ¬Ê×Ïȵ½¹¤×÷¿Õ¼äÎļþ¼ÐÏ£¨~/dev/catkin_ws£©£º


Èç¹ûÒѾ­ÔËÐйýcatkin_make install£¬ÄãҲʹÓÃÏÂÃæÃüÁîµ¼º½µ½install/lib/chapter3_tutorialsÎļþ¼ÐÏ£º


ÏÖÔÚ¿ÉÒÔʹÓÃgdbÃüÁîÔËÐнڵ㣺


¼Çס£¬±ØÐëÔÚÆô¶¯½Úµã֮ǰ±£Ö¤roscoreÔËÐУ¬ÒòΪ½ÚµãÐèÒª¹ÜÀíÆ÷/·þÎñÆ÷ÔËÐС£

Ò»µ©roscoreÔÚÔËÐУ¬Äã¾Í¿ÉÒÔͨ¹ýµã»÷R¼üºÍEnter¼ü´ÓgdbÖÐÆô¶¯½Úµã¡£Ò²¿ÉÒÔÓÃL¼üÁгöÏà¹ØÔ´´úÂ룬ÒÔ¼°ÉèÖöϵã»òʹÓÃÈκÎgdb¸½´øµÄ¹¦ÄÜ¡£Èç¹ûÒ»Çй¤×÷Õý³££¬ÔÚÔËÐнڵãºó¾ÍÄÜÔÚgdbÖÕ¶Ë¿´µ½ÏÂÃæµÄÊä³ö£º


3.1.2¡¡ROS½ÚµãÆô¶¯Ê±µ÷ÓÃgdbµ÷ÊÔÆ÷

ÎÒÃÇÐèÒªÒ»¸öÆô¶¯Îļþ£¨launch£©È¥Æô¶¯½Úµã£¬ÈçÏ£º


ÏëÒªÔÚ½ÚµãÆô¶¯Ê±µ÷ÓÃgdbµ÷ÊÔÆ÷£¬ÐèÒªÌí¼Ólaunch-prefix="xterm -e gdb --args"£¬ÈçÏ£º


ÀàËÆµØ£¬Ò²¿ÉÒÔÌí¼Óoutput="screen"£¬Ê¹½ÚµãÔÚÖÕ¶ËÏÔʾ¡£Õâ¸öÆô¶¯Ç°×º»á´´½¨Ò»¸öµ÷ÓÃgdb½ÚµãµÄÐÂxtermÖÕ¶Ë¡£ÒÀ¾ÝÐèÒªÉèÖöϵ㣬°´C¼ü»òR¼üÆô¶¯½Úµã²¢µ÷ÊÔ¡£ÕâÔÚ½Úµã±ÀÀ£Ê±£¬¿ÉÒԵõ½»ØËÝ£¨backtrace£¬bt£©¡£

3.1.3¡¡ROS½ÚµãÆô¶¯Ê±µ÷ÓÃvalgrind·ÖÎö½Úµã

´ËÍ⣬ÎÒÃÇ¿ÉÒÔʹÓÃÏàͬµÄÊôÐ԰ѽڵ㸽¼Óµ½Õï¶Ï¹¤¾ßÉÏ¡£ÀýÈ磬¿ÉÒÔÆô¶¯valgrindÀ´¼ì²âÎÒÃdzÌÐòµÄÄÚ´æÐ¹Â©Çé¿ö£¬²¢Ö´ÐÐÐÔÄÜ·ÖÎö¡£Äã¿ÉÒÔ·ÃÎÊhttp://valgrind.org»ñÈ¡ÏêϸÐÅÏ¢¡£Óëµ÷ÓÃgdbµÄ·½Ê½Ïà·´£¬ÏÖÔÚÎÒÃÇÎÞÐèÖØÐÂÆô¶¯xterm£¬Ö»ÐèÈçÏÂÉèÖãº


3.1.4¡¡ÉèÖÃROS½ÚµãcoreÎļþת´¢

ËäÈ»ROS½Úµãʵ¼ÊÉϾÍÊÇÒ»°ãµÄ¿ÉÖ´ÐÐÎļþ£¬µ«ÔÚÉèÖÃgdbµÄcoreÎļþת´¢£¨core dump£©Ê±ÈÔÓÐһЩ¼¬ÊÖµÄÎÊÌâÐèҪעÒâ¡£Ê×ÏÈҪȡÏûcoreÎļþ´óСÏÞÖÆ£¬µ±Ç°Öµ¿ÉÒÔͨ¹ýulimit -a²é¿´¡£Çë×¢ÒâÕâÊÊÓÃÓÚÈκοÉÖ´ÐÐÎļþ£¬²»Ö»ÊÇROS½Úµã£º


È»ºó£¬ÎªÁËÄܹ»´´½¨coreÎļþת´¢£¬±ØÐ뽫coreÎļþÃûÉèÖÃΪĬÈÏʹÓõĽø³Ìpid£¬·ñÔòÎÞ·¨´´½¨£¬ÒòΪÔÚ$ROS_HOMEÒÑÓÐÒ»¸öcoreĿ¼»á·ÀÖ¹coreÎļþת´¢¡£Òò´Ë£¬ÎªÁË´´½¨coreÎļþת´æµÄÃû³ÆºÍ·¾¶Îª$ROS_HOME/core.PID£¬±ØÐëÔËÐÐÈçÏÂÃüÁ


3.2¡¡ÈÕÖ¾ÐÅÏ¢

ͨ¹ýÐÅÏ¢¼Ç¼ÏÔʾ³ÌÐòµÄÔËÐÐ״̬ÊǺõÄϰ¹ß£¬µ«ÐèҪȷ¶¨ÕâÑù×ö²»»áÓ°ÏìÈí¼þµÄÔËÐÐЧÂʺÍÊä³öµÄÇåÎú¶È¡£ÔÚROSÖÐÓÐÂú×ãÒÔÉÏÒªÇó²¢ÇÒÄÚÖÃÓÚlog4cxx£¨ÖÚËùÖÜÖªµÄlog4j¼Ç¼¿âµÄÒ»¸ö¶Ë¿Ú£©Ö®ÉϵÄAPI¡£¼òµ¥µØËµ£¬ÎÒÃÇÓв»Í¬²ã¼¶µÄµ÷ÊÔÐÅÏ¢Êä³ö£¬Ã¿ÌõÐÅÏ¢¶¼ÓÐ×Ô¼ºµÄÃû³Æ£¬²¢¸ù¾ÝÏàÓ¦Ìõ¼þÊä³öÏûÏ¢¡£Èç¹ûËüÃDZ»µ±Ç°Èß³¤¼¶±ðÑڸǣ¨ÉõÖÁÔÚ±àÒëʱ£©£¬ËüÃǶÔÐÔÄÜûÓÐÓ°Ïì¡£ËüÃÇÓëROSÆäËû¹¤¾ßÍêÈ«¼¯³ÉÀ´¿ÉÊÓ»¯»ò¹ýÂËÀ´×ÔËùÓÐÔËÐнڵãµÄ

ÏûÏ¢¡£

3.2.1¡¡Êä³öÈÕÖ¾ÐÅÏ¢

ROS×Ô´øÁË´óÁ¿µÄÄܹ»Êä³öÈÕÖ¾ÐÅÏ¢µÄº¯ÊýºÍºê¡£ËüÌṩÁËÈçÐÅÏ¢£¨»òÈÕÖ¾£©¼¶±ð¡¢Ìõ¼þ´¥·¢ÏûÏ¢ºÍSTLµÄÁ÷½Ó¿ÚµÈÖî¶à·½Ê½¡£´Ó¼òµ¥µÄ¿ªÊ¼£¬ÓÃC++´úÂëÊä³öÒ»¸öÏûÏ¢ÐÅÏ¢£º


ΪÁË»ñÈ¡ÈÕÖ¾¼Ç¼µÄº¯ÊýºÍºê£¬Õâ¸öÍ·Îļþ×ã¹»ÁË£º


Õâ°üÀ¨ÁËÒÔÏÂÍ·Îļþ£º


Ç°ÃæµÄÏûÏ¢´¦Àí³ÌÐòÔËÐеĽá¹ûÈçÏÂËùʾ£º


ËùÓÐÊä³öµÄÐÅÏ¢¶¼¸½´øÆä¼¶±ðºÍµ±Ç°Ê±¼ä´Á£¨ÒòΪÕâ¸öÔ­ÒòÄãµÄÊä³ö¿ÉÄÜÓÐËù²»Í¬£©£¬ÕâÁ½¸öÖµ·ÅÔÚʵ¼ÊÐÅϢ֮ǰµÄ·½À¨ºÅÖС£Ê±¼ä´ÁÒÔ¹«Àúʱ¼ä¼ÆÊ±£¬´ú±í×Å×Ô1970Äê1ÔÂ1ÈÕÒÔÀ´µÄÃëºÍÄÉÃë¼ÆÊý¡£ÓÚÊÇÎÒÃÇÔÚÐÂÒ»ÐÐÊä³öÁËÐÅÏ¢¡£

´Ëº¯ÊýÔÊÐíÒÔºÍCÓïÑÔÖеÄprintfº¯ÊýÏàͬµÄ·½Ê½Ôö¼Ó²ÎÊý¡£ÀýÈ磬¿ÉÒÔ°´ÕÕÏÂÃæ´úÂëÊä³ö±äÁ¿val¶ÔÓ¦µÄ¸¡µãÊýÖµ£º


´ËÍ⣬C++STLÁ÷±»*_STREAMº¯ÊýÖ§³Ö¡£Òò´Ë£¬Ç°ÃæµÄÖ¸ÁîÏ൱ÓÚʹÓÃÁ÷£º


Çë×¢Ò⣬ÎÒÃÇûÓÐÖ¸¶¨ÈκÎÁ÷£¬ÒòΪAPI¸ºÔðÕâЩ£¬Í¨¹ýÖØ¶¨Ïòµ½cout/cerr¡¢Ò»¸öÎļþ»òÁ½Õß¡£

3.2.2¡¡ÉèÖõ÷ÊÔÐÅÏ¢¼¶±ð

ROSÓÐÎå¸öÈÕÖ¾¼Ç¼±ê×¼¼¶±ð£¬°´ÕÕ˳ÐòÅÅÁзֱðÊÇ£º

DEBUGµ÷ÊÔ

INFOÐÅÏ¢

WARN¾¯¸æ

ERROR´íÎó

FATALÖÂÃü

ÕâЩÃû³ÆÊÇÊä³öÐÅÏ¢µÄº¯ÊýµÄÒ»²¿·Ö£¬ËüÃÇ×ñÑ­ÒÔÏÂÓï·¨£º


ÿһÖÖÐÅÏ¢¶¼»áÒÔÌØ¶¨µÄÑÕÉ«ÔÚÆÁÄ»ÉÏÊä³ö¡£ÕâЩÑÕÉ«·Ö±ðÊÇ£º


ÿ¸öÏûÏ¢¼¶±ðÓÃÓÚ²»Í¬µÄÄ¿µÄ¡£ÔÚÕâÀÎÒÃǽ¨Ò飺

DEBUG£ºÖ»Óе÷ÊÔʱÓÐÓÃ

INFO£ºËµÃ÷ÖØÒª²½Öè»ò½ÚµãÔÚÖ´ÐвÙ×÷

WARN£ºÌáÐÑÄãһЩ´íÎó¡¢È±Ê§»òÕß²»Õý³£

ERROR£ºÌáʾ´íÎ󣬾¡¹Ü½ÚµãÈÔÈ»¿ÉÒÔÔËÐÐ

FATAL£ºÍ¨³£·ÀÖ¹½Úµã¼ÌÐøÔËÐÐ

3.2.3¡¡ÎªÌض¨½ÚµãÅäÖõ÷ÊÔÐÅÏ¢¼¶±ð

ĬÈÏÇé¿öÏ£¬ÏµÍ³»áÏÔʾINFO¼°¸ü¸ß¼¶±ðµÄµ÷ÊÔÐÅÏ¢£¬²¢Ê¹ÓÃROSĬÈϼ¶±ðÀ´¹ýÂËÌØ¶¨½ÚµãÊä³öµÄÐÅÏ¢¡£ÒªÊµÏÖÕâÒ»¹¦ÄÜÓкܶ෽·¨¡£ÆäÖÐÓÐЩÊÇÔÚ±àÒëʱÉ趨£¬¶øÆäËûµÄ¿ÉÒÔÔÚÖ´ÐÐǰʹÓÃÅäÖÃÎļþ½øÐиü¸Ä¡£ÁíÍ⣬Ҳ¿ÉÒÔ¶¯Ì¬µØ¸Ä±ä¼¶±ð¡£ÏÂÃæ½«½éÉÜʹÓÃrqt_consoleºÍrqt_logger_levelÀ´ÊµÏÖÕâÒ»¹¦ÄÜ¡£

ÔÚ±àÒëÔ´´úÂëʱ¿ÉÒÔÉèÖÃÈÕÖ¾¼¶±ð£¬µ«²»ÍƼöÕâô×ö£¬ÕâÐèÒªÎÒÃÇÐÞ¸ÄÔ´´úÂë¶¨ÖÆÈÕÖ¾¼¶±ð£¬Èç¹ûÄãÏëÕâÑù×ö£¬Çë²Î¿¼¡¶ROS»úÆ÷È˳ÌÐòÉè¼Æ¡·£¨µÚ1°æ£©¡£

È»¶ø£¬ÔÚһЩʱºò£¬ÎÒÃÇÐèҪɾ³ýµÍÓÚÉ趨¼¶±ðµÄÈÕÖ¾¡£Õâʱ£¬ÎÒÃÇÏ£Íû¿´µ½ÄÇЩÏûÏ¢ºó£¬½«ËüÃÇɾ³ý¶ø²»ÊǽûÓá£Îª´ËÐèÒª½«ROSCONSOLE_MIN_SEVERITYÉèÖÃΪÆÚÍûµÄ×îµÍÑÏÖØ¼¶±ð»òÕß±ÜÃâÈκÎÏûÏ¢£¨ÉõÖÁÊÇFATAL£©¡£ºêÈçÏ£º



ROSCONSOLE_MIN_SEVERITYºêÔÚ<ros/console.h>ÖÐĬÈ϶¨ÒåΪDEBUG¼¶±ð¡£ÓÚÊǿɽ«Ëü×÷Ϊһ¸ö±àÒë²ÎÊý£¨Ê¹ÓÃ-D)´«µÝ»ò°ÑËü·ÅÔÚÍ·Îļþǰ¡£ÀýÈ磬ÈôÏë½öÏÔʾERROR»ò¸ü¸ß¼¶±ðµÄµ÷ÊÔÐÅÏ¢£¬ÔÚÔ´´úÂëÖмÓÈëÏÂÃæ´úÂ룺


»òÕߣ¬ÔÚCMakeLists.txtÖÐʹÓÃÏÂÃæ´úÂëÉèÖðüÖÐËùÓнڵãµÄºê£º


³ý´ËÖ®Í⣬»¹ÓÐÒ»¸ö¸üÁé»îµÄ·½·¨¾ÍÊÇÔÚÅäÖÃÎļþÖÐÉèÖÃ×îµÍÈÕÖ¾¼¶±ð¡£ÓÃÎļþ´´½¨Ò»¸öÃûΪµÄconfigÎļþ¼ÐºÍÃûΪchapter3_tutorials.configµÄÎļþ£¬ÎļþÄÚÈÝÈçÏ£¨´ÓËüÉèÖÃΪDEBUG¼¶±ð¿ªÊ¼±à¼­¸ø¶¨Îļþ£©£º


È»ºó£¬ÎÒÃÇÉèÖÃROSCONSOLE_CONFIG_FILE»·¾³±äÁ¿Ö¸ÏòÎÒÃǵÄÎļþ¡£ÎÒÃÇ¿ÉÒÔʹÓÃÒ»¸öÆô¶¯£¨launch£©ÎļþÀ´Ìæ´úÅäÖû·¾³±äÁ¿£¬µ«ÕâÑù×ö»áÖ±½ÓÔËÐнڵ㡣Òò´Ë£¬ÎÒÃÇ¿ÉÒÔͨ¹ýenv£¨»·¾³±äÁ¿£©×Ö¶ÎÀ©Õ¹launchÎļþ£¬ÈçÏÂËùʾ£º


ÈçÉÏËùÊö£¬»·¾³±äÁ¿»áÕÒµ½Ö®Ç°ÏÔʾµÄÅäÖÃÎļþ£¬ÆäÖаüº¬Ã¿¸öÒÑÃüÃûÈÕÖ¾µÄÈÕÖ¾¼¶±ð˵Ã÷¡£ÔÚÕâ¸öÀý×ÓÖÐÊǹ¦ÄܰüÃû³Æ¡£

3.2.4¡¡ÐÅÏ¢ÃüÃû

ĬÈÏÇé¿ö£¬ROS·ÖÅäһЩÃû×Ö¸ø½Úµã¼Ç¼Æ÷¡£Ä¿Ç°ÌÖÂÛ¹ýµÄÏûÏ¢ÔÚ½ÚµãÃû×ÖºóÃüÃû¡£¶ÔÓÚ¸´ÔӵĽڵ㣬ÎÒÃÇ¿ÉÒÔΪһ¸ö¸ø¶¨µÄÄ£¿é»ò¹¦ÄܵÄÏûÏ¢Ìṩһ¸öÃû×Ö¡£ROS_<LEVEL>[?_STREAM]_NAMEDº¯Êý£¬ÈçÏÂÃæ´úÂëËùʾ£¨ÒÔexample2½ÚµãΪÀý£©£º


ͨ¹ýÃüÃûµÄÏûÏ¢£¬ÎÒÃÇ¿ÉÒÔʹÓÃÅäÖÃÎļþΪÿ¸öÃüÃûµÄÏûÏ¢ÉèÖò»Í¬µÄ³õʼÈÕÖ¾¼¶±ð£¬Ö®ºó¿ÉÒÔµ¥¶ÀÐÞ¸ÄËüÃÇ¡£ÔÚÃüÃû¹æ·¶ÉÏÎÒÃDZØÐëʹÓÃÏûÏ¢µÄÃû³Æ×÷Ϊ¹¦ÄܰüµÄ×Ó°ü¡£ÀýÈç¿ÉÒÔÉ趨named_msgµÄÐÅÏ¢£¬ÈçÏÂÁдúÂëËùʾ£º


3.2.5¡¡°´Ìõ¼þÏÔʾÐÅÏ¢Óë¹ýÂËÐÅÏ¢

°´Ìõ¼þÏÔʾ£¨conditional£©ÐÅÏ¢ÊÇÖ¸½öµ±Âú×ã¸ø¶¨µÄÌõ¼þʱ²ÅÊä³öµÄÐÅÏ¢¡£ÎÒÃÇÐèҪʹÓÃROS_<LEVEL>[_STREAM]_COND[_NAMED]º¯ÊýÀ´µ÷ÓÃËüÃÇ£¬Çë×¢ÒâËüÃÇÒ²¿ÉÒÔÊÇÃüÃûµÄÐÅÏ¢¡£ÏÂÃæÊÇÒÔexample2½ÚµãΪÀýµÄ´úÂ룺


¹ýÂË£¨Filtered£©ÐÅÏ¢ÔÚ±¾ÖÊÉÏÓë°´Ìõ¼þÏÔʾÐÅÏ¢ÀàËÆ£¬µ«ËüÔÊÐíÎÒÃÇÖ¸¶¨Ò»¸öÓû§×Ô¶¨ÒåµÄ¹ýÂËÆ÷¡£Õâ¸ö×Ô¶¨Òå¹ýÂËÆ÷¼Ì³Ð×Ôros::console::FilterBase½á¹¹Ìå¡£ÎÒÃDZØÐ뽫¹ýÂËÆ÷×÷ΪָÕë´«µÝ¸øÒÔROS_<LEVEL>[_STREAM]_FILTER [_NAMED]Ϊ¸ñʽµÄºêµÄµÚÒ»¸ö²ÎÊý¡£ÏÂÀýÀ´×ÔÓÚexample2½Úµã£º


3.2.6¡¡ÏÔʾÐÅÏ¢µÄ·½Ê½¡ª¡ªµ¥´Î¡¢¿Éµ÷¡¢×éºÏ

Äã¿ÉÒÔ¿ØÖÆÐÅÏ¢µÄÏÔʾ´ÎÊý¡£Í¨¹ýʹÓÃROS_<LEVEL>[_STREAM]_ONCE[_NAMED]¿ÉÒÔÈÃÐÅÏ¢Ö»Êä³öÒ»´Î¡£


Õâ¶Î´úÂëÒ²ÊÇÀ´×Ôexample2½Úµã£¬Ö»»áÏÔʾÐÅÏ¢1´Î¡£

È»¶ø£¬ÓÐʱºòÔÚµü´úÖÐÒÔÒ»¶¨ÆµÂÊÏÔʾÐÅÏ¢¸üºÃ¡£Õâ¾ÍÐèÒª¿Éµ÷ÐÅÏ¢¡£ËüÃǺÍÇ°Ãæµ¥´ÎÏÔʾµÄÏûÏ¢¸ñʽÊÇÒ»ÑùµÄ£¬µ«ÊÇÐèÒª½«º¯ÊýÃûÖеÄONCEÌæ»»³ÉTHROTTLE£¬º¯Êý»á½«period×÷ΪµÚÒ»¸ö²ÎÊý£¬Ò²¾ÍÊÇ˵£¬Ëü½«»á¼ä¸ôÿ¸öperiodÃëºóÊä³ö£º


×îºóҪ˵Ã÷µÄÊÇ£¬ÎÞÂÛ¶ÔÓÚÄĸö¼¶±ðµÄÐÅÏ¢£¬ÃüÃûÐÅÏ¢¡¢Ìõ¼þÏÔʾÐÅÏ¢¡¢µ¥´Î/¿Éµ÷ÐÅÏ¢µÈ¶¼Äܹ»×éºÏÆðÀ´Ê¹Óá£

¶¯Ì¬¼ÓÔØ½Úµã£¨nodelet£©¶ÔÓÚÈÕÖ¾ÐÅÏ¢Ò²ÌṩÁËÒ»¶¨µÄÖ§³Ö¡£ÒòΪËüÃÇÓÐ×Ô¼ºµÄÃüÃû¿Õ¼ä£¬¶øÇÒÓи÷×ÔΨһµÄÃû³Æ£¬ÕâÑù²ÅÄܹ»ÈÃÒ»¸ö¶¯Ì¬¼ÓÔØ½ÚµãµÄÌáʾÐÅÏ¢ÓëÆäËû½ÚµãµÄÌáʾÐÅÏ¢Çø±ð¿ª¡£¼òµ¥µØËµ£¬Ç°ÃæÌáµ½µÄËùÓкê¶ÔÓÚ¶¯Ì¬¼ÓÔØ½Úµã¶¼ÊÇ¿ÉÓõģ¬Ö»ÊǺêµÄÃû³ÆÐèÒª½«ROS_*¿ªÍ·Ìæ»»³ÉNODELET_*¡£ÕâЩºê½«Ö»Äܹ»ÔÚ¶¯Ì¬¼ÓÔØ½ÚµãÄÚ²¿±àÒ롣ͬʱ£¬ËüÃÇ»áʹÓö¯Ì¬¼ÓÔØ½ÚµãÔËÐÐʱµÄÃû³ÆÉèÖÃÒ»¸öÃüÃûµÄÈÕÖ¾¼Ç¼Æ÷¡£ÕâÑùÄã¾ÍÄܹ»Çø·Öͬһ¸ö¶¯Ì¬¼ÓÔØ½Úµã¹ÜÀíÆ÷ÏÂÔËÐеÄÁ½¸öÏàͬÀàÐͶ¯Ì¬¼ÓÔØ½ÚµãµÄÊä³ö¡£¶¯Ì¬¼ÓÔØ½ÚµãµÄÁíÍâÒ»¸öÓÅÊÆÊÇËüÃÇÄܹ»°ïÖúÄ㽫ij¸ö¶¯Ì¬¼ÓÔØ½Úµãת»»µ½µ÷ÊÔ¼¶±ð£¬¶ø²»ÊǰÑÕû¸öÌØ¶¨ÀàÐ͵Ķ¯Ì¬¼ÓÔØ½Úµã¶¼×ª»»¹ýÈ¥¡£

3.2.7¡¡Ê¹ÓÃrqt_consoleºÍrqt_logger_levelÔÚÔËÐÐʱÐ޸ĵ÷ÊÔ¼¶±ð

ROSÖÐÌṩÁËһϵÁй¤¾ßÈ¥¹ÜÀíÈÕÖ¾ÐÅÏ¢¡£ÔÚROS hydroÖУ¬ÎÒÃÇÓÐÁ½¸ö¶ÀÁ¢µÄGUI£ºrqt_logger_levelÉèÖýڵã»òÕßÖ¸¶¨ÈÕÖ¾¼Ç¼Æ÷µÄÈÕÖ¾¼Ç¼¼¶±ð£»rqt_console¶ÔÈÕÖ¾ÐÅÏ¢½øÐпÉÊÓ»¯¡¢¹ýÂ˺ͷÖÎö¡£

ʹÓôúÂëʾÀýexample3²âÊÔÕâ¸ö¹¦ÄÜ¡£ÔËÐÐroscoreºÍrqt_consoleÀ´¿´ÈÕÖ¾ÐÅÏ¢£º


½«¿´µ½ÈçÏ´°¿Ú£º


ÔËÐÐÏÂÃæ½Úµã£º


Ò»µ©example3½Úµã¿ªÊ¼ÔËÐУ¬¾Í»á¿´µ½ÈçÏÂͼËùʾµÄÐÅÏ¢¡£×¢Òâroscore±ØÐëÒѾ­Æô¶¯£¬Ò²±ØÐëµã»÷ÔÚrqt_console´°¿ÚÉϵļǼ£¨recording£©°´Å¥¡£


ÔÚrqt_consoleÏ£¬ÏûÏ¢°´Àà±ð½øÐÐÊÕ¼¯ºÍÏÔʾ£¬Èçͨ¹ýʱ¼ä´Á¡¢ÐÅÏ¢ÀàÐÍ¡¢ÑÏÖØ¼¶±ðÒÔ¼°²úÉúÕâЩÐÅÏ¢µÄ½ÚµãµÈ¡£Äã¿ÉÒÔͨ¹ýµã»÷Resize columns×Ô¶¯µ÷Õû¸ñʽ¡£Ë«»÷Ò»¸öÏûÏ¢£¬Äã¿ÉÒÔ¿´µ½ËùÓÐÐÅÏ¢£¬°üÀ¨Éú³ÉËüµÄÄÇÐдúÂ룬ÈçÏÂͼËùʾ£º


½»»¥´°¿Ú¿ÉÒÔʵÏÖÔÝÍ£¡¢±£´æ¡¢¶ÁÈ¡ºÍÔØÈë±£´æµÄÈÕÖ¾ÐÅÏ¢¡£ÎÒÃÇ¿ÉÒÔÇåÀíÐÅÏ¢ÁÐ±í²¢¹ýÂËËüÃÇ¡£ÔÚROS hydroÏ£¬³ýÁ˹ýÂ˵ôµÄÐÅÏ¢Í⣬ÐÅÏ¢ÒÀÀµÓÚ¹ýÂËÌõ¼þµÄÌØ¶¨½Ó¿Ú£¬ÀýÈ磬½Úµã¿ÉÒÔͨ¹ýÒ»Ìõ¹æÔò½øÐйýÂË£¬½«ÎÒÃÇÑ¡ÔñµÄ½ÚµãÅųý¡£ÁíÍ⣬ͨ¹ýÏàͬµÄ·½Ê½£¬ÎÒÃÇ¿ÉÒÔÉèÖøßÁÁÏÔʾ¹ýÂËÆ÷¡£ÈçÏÂͼËùʾ£º


¾ÙÒ»¸öÀý×Ó£¬ÉÏͼËùʾÐÅÏ¢Ïë¹ýÂ˳ýFATALºÍERRORÍâÆäËû¼¶±ðµÄÐÅÏ¢¡£

ΪÁËÉèÖÃÈÕÖ¾¼Ç¼Æ÷µÄÑÏÖØ¼¶±ð£¬±ØÐëÔËÐÐÒÔÏÂÃüÁ


ÔÚÕâÀÎÒÃÇ¿ÉÒÔÑ¡Ôñ½Úµã£¬È»ºóÖ¸¶¨ÈÕÖ¾¼Ç¼Æ÷£¬×îºóÊÇÑÏÖØ¼¶±ð¡£Ò»µ©ÎÒÃÇÐÞ¸ÄËü£¬¾Í»áÊÕµ½´øÓÐÑÏÖØ¼¶±ðµÄÐÂÏûÏ¢£¬µÍÓÚÔ¤¶¨ÑÏÖØ¼¶±ðµÄÏûÏ¢²»»áÔÚrqt_consoleÖгöÏÖ£º


ÔÚÏÂͼÖУ¬ÎÒÃǽ«ÃüÃûΪros.chapter3_tutorials.named_msgµÄexample3½ÚµãµÄÈÕÖ¾¼Ç¼Æ÷µÄÑÏÖØ¼¶±ðÉèÖÃΪ×îµÍ£¨DEBUG£©¡£¼Çס£¬ËùÃüÃûµÄÈÕÖ¾¼Ç¼Æ÷ÊÇͨ¹ý*_NAMEDÈÕÖ¾º¯Êý´´½¨µÄ£º


ÈçÉÏͼËùʾ£¬ÔÚĬÈÏÇé¿öÏÂÿ¸ö½Úµã¶¼Óжà¸öÄÚ²¿ÈÕÖ¾¼Ç¼Æ÷£¬ÓëROSͨÐÅAPIÏà¹Ø£¬Ò»°ã²»Òª½µµÍËüÃǵÄÑÏÖØ¼¶±ð¡£

3.3¡¡¼ì²âϵͳ״̬

µ±ÏµÍ³ÔËÐÐʱ£¬¿ÉÄÜÓÐÊý¸ö½ÚµãºÍÊýÊ®¸öÖ÷ÌâÔÚ½ÚµãÖз¢²¼ÏûÏ¢¡£Í¬Ê±£¬ÓÐЩ½Úµã¿ÉÄÜÒ²»áÌṩÐÐΪ»ò·þÎñ¡£¶ÔÓÚ´óÐÍϵͳÀ´Ëµ£¬Í¨¹ýÌṩһЩ¹¤¾ßÈÃÎÒÃÇ¿´µ½ÏµÍ³ÔÚ¸ø¶¨Ê±¼äµÄÔËÐÐ״̬ÊǷdz£ÖØÒªµÄ¡£ROS¶Ô´ËÌṩÁËһЩ»ù±¾µ«·Ç³£Ç¿´óµÄ¹¤¾ß£¬°üÀ¨´ÓCLIµ½GUIÓ¦Óá£

3.3.1¡¡¼ì²â½Úµã¡¢Ö÷Ìâ¡¢·þÎñºÍ²ÎÊý

̹°×µØ½²£¬ÎÒÃÇÓ¦¸ÃÏȻعËÒ»ÏÂѧϰ¹ýµÄ»ù±¾ÄÚÈÝ¡£ÈçºÎ»ñµÃÕýÔÚÔËÐеĽڵ㡢Ö÷Ìâ¡¢¸ø¶¨Ê±¼ä¿ÉÓ÷þÎñµÄÇåµ¥£¬ÈçϱíËùʾ¡£

»ñÈ¡ËùÓÐÁбí ÃüÁî

ÔËÐеĽڵã rosnode list

ËùÓнڵãÔËÐеÄÖ÷Ìâ rostopic list

ËùÓнڵãÔËÐеķþÎñ rosservice list

·þÎñÆ÷ÖеIJÎÊý rosparam list


ÎÒÃǽ¨ÒéÄã»Ø¹ËµÚ2Õ£¬ÊìϤÈçºÎʹÓÃÕâЩÃüÁͬʱ¿´Ò»ÏÂÈçºÎʹÓÃrosmsg show»ñÈ¡ÌØ¶¨Ö÷ÌâºÍ×ֶη¢³öµÄÏûÏ¢ÀàÐÍ¡£

ËùÓÐÕâЩÃüÁî¿ÉÒÔ½áºÏbashÃüÁÈçgrep£¬Ñ°ÕÒËùÐèµÄ½Úµã¡¢Ö÷Ìâ¡¢·þÎñ»ò²ÎÊý¡£ÀýÈ磬Æô¶¯Ä¿±êÖ÷Ìâ¿ÉÒÔʹÓÃÒÔÏÂÃüÁ


bashÃüÁîgrepÔÚÎļþÁбí»ò±ê×¼Êä³öÖвéÕÒÎı¾»òģʽ£¬Èç±¾ÀýËùʾ¡£

´ËÍ⣬ROSÌṩ¼¸¸öGUI¼ì²âÖ÷ÌâºÍ·þÎñ¡£Ê×ÏÈ£¬ÔÚÒ»¸öÀàËÆÓÚ½ø³Ì±í£¨ToP£©´°¿Úrqt_topÖÐÏÔʾÔËÐеĽڵ㣬¿ÉÒÔ¿ìËٲ鿴ÕýÔÚʹÓõÄËùÓнڵãºÍ×ÊÔ´¡£ÒÔREEMµ¼º½Õ»ÔËÐзÂÕæÎªÀý£¬ÈçÏÂͼËùʾ£º


ÁíÒ»·½Ã棬rqt_topicÏÔʾÖ÷Ìâµ÷ÊÔÐÅÏ¢£¬°üÀ¨·¢²¼Õß¡¢½ÓÊÕÕß¡¢·¢²¼ËÙÂʺͷ¢²¼µÄÏûÏ¢¡£¿ÉÒԲ鿴ÏûÏ¢×ֶεÄÖ÷ÌⲢѡÔñÄãÏëÒª¶©ÔĵÄÖ÷Ì⣬·ÖÎö´ø¿íºÍËÙÂÊ£¨Hz£©ÒÔ¼°²é¿´×îÐÂÏûÏ¢·¢²¼¡£×¢ÒâËø¶¨µÄÖ÷Ìâͨ³£²»»á³ÖÐø·¢²¼£¬ËùÒÔ²»»á¿´µ½ÈκιØÓÚËüÃǵÄÐÅÏ¢¡£ÈçÏÂͼ

Ëùʾ¡£


ͬÑù£¬rqt_publisherÔÊÐíÎÒÃÇÔÚÒ»¸ö½Ó¿Ú¹ÜÀírostopic pubÃüÁîµÄ¶à¸öʵÀý¡£Ëü»¹Ö§³ÖPython·¢²¼ÏûÏ¢ºÍ¹Ì¶¨ÖµµÄ±í´ïʽ¡£ÔÚÏÂͼÖУ¬ÎÒÃÇ¿´µ½·¢²¼ÁËÁ½¸öʾÀýÖ÷Ì⣨ÎÒÃǽ«ÔÚÁ½¸ö²»Í¬µÄÖÕ¶Ë¿´µ½Ê¹ÓÃrostopic echo <topic>·¢²¼ÏûÏ¢£©¡£


ÁíÒ»ÖÖ¸üÁé»îµÄGUIÊÇrqt_ez_publisher¡£¶ÔROS hydro¶øÑÔ£¬±ØÐëʹÓÃÏÂÃæµÄ´úÂë´ÓÒ»¸ö¿ÕµÄ¹¤×÷¿Õ¼äÊÖ¶¯°²×°£º


¶ÔROS indigo¶øÑÔ£¬Ëü½«»á×÷Ϊһ¸öDebian¹¦Äܰü£¬ËùÒÔÖ»ÐèÒªÔËÐÐÏÂÃæÃüÁ


È»ºó£¬ÔËÐУº


ÔÚexample5½ÚµãÔËÐÐʱ£¬Äã¿ÉÒÔ·¢²¼½«±»¸Ã½Úµã¶ÁÈ¡µÄÏûÏ¢¡£ÔÚÏÂͼÖУ¬ÎÒÃǽ«Ñ¡ÔñaccelºÍtempÖ÷Ì⣨ɾ³ýaccel/yºÍaccel/z×ֶΣ©£º


×¢Ò⣬µ±ÆôÓÃÖØ¸´£¨repeat£©ºó£¬ÏûÏ¢»á²»¶Ï·¢²¼¡£·ñÔò£¬GUIÖ»ÔÚÄã¸Ä±äֵʱ·¢²¼ÏûÏ¢¡£

rqt_service_callerºÍrosservice callÃüÁîµÄ¶à¸öʵÀýÒ»Ñù¡£ÔÚÏÂͼÖУ¬ÎÒÃǽ«µ÷ÓÃ/move_base/NavfnROS/make_plan·þÎñ£¬ÎÒÃDZØÐëΪ¿Õ·þÎñÉèÖÃÇëÇó¡£Õâ¶ÔÓÚÀ´×Ô/amcl½ÚµãµÄ

/global_localization·þÎñ¶øÑÔÊDz»ÐèÒªµÄ¡£µã»÷Call°´Å¥Ö®ºó£¬ÎÒÃǽ«»ñµÃÏìÓ¦ÏûÏ¢¡£¶ÔÓÚ±¾Àý£¬ÎÒÃÇÔËÐе¼º½Õ»µÄREEM·ÂÕæ£¬ÈçÏÂͼËùʾ£º


3.3.2¡¡Ê¹ÓÃrqt_graphÔÚÏß¼ì²â½Úµã״̬ͼ

¿ÉÒÔÓÃÓÐÏòͼÀ´ÏÔʾROS»á»°µÄµ±Ç°×´Ì¬£¬ÆäÖÐÔËÐеĽڵãÊÇͼÖеĽڵ㣬±ßΪ·¢²¼Õß-¶©ÔÄÕßÔÚÕâЩ½ÚµãÓëÖ÷Ìâ¼äµÄÁ¬½Ó¡£´ËͼÐÎÓÉrqt_graph¶¯Ì¬»æÖÆ¡£


ΪÁË˵Ã÷ÈçºÎʹÓÃrqt_graph¼ì²â½Úµã¡¢Ö÷ÌâºÍ·þÎñ£¬Ê¹ÓÃÒÔÏÂlaunchÎļþͬʱÔËÐÐexample4ºÍexample5½Úµã£º


example4½ÚµãÔÚÁ½¸ö²»Í¬µÄÖ÷ÌâÖз¢²¼²¢µ÷ÓÃÁËÒ»¸ö·þÎñ¡£Í¬Ê±£¬example5½Úµã¶©ÔÄÁËÕâЩÖ÷Ì⣬²¢ÌṩÁËÒ»¸ö·þÎñÆ÷À´ÏìÓ¦²éѯÇëÇó²¢Ìṩ·´À¡Êý¾Ý¡£Ò»µ©ÕâЩ½Úµã¿ªÊ¼ÔËÐУ¬ÎÒÃǾÍÄܹ»²éѯµ½ÈçÏÂͼËùʾµÄ½ÚµãÍØÆËͼ£º


ÔÚÉÏͼÖУ¬ÎÒÃÇ¿´µ½½Úµãͨ¹ýÖ÷ÌâÏàÁ¬¡£ÓÉÓÚÑ¡ÔñHide Debug£¬ÎÒÃDz»»á¿´µ½ROS·þÎñÆ÷½ÚµãrosoutÒÔ¼°rosoutÖ÷Ìâ·¢²¼µ½Õï¶Ï¾ÛºÏÆ÷£¨diagnostic aggregator£©ÉϵÄÈÕÖ¾ÐÅÏ¢£¬ÈçÎÒÃÇ֮ǰ×öµÄÄÇÑù¡£È¡ÏûÕâ¸öÑ¡Ïî¾Í¿ÉÒÔÏÔʾ¸Ã½ÚµãºÍÖ÷ÌâµÄµ÷ÊÔÐÅÏ¢£¬ÒÔ±ãÏÔʾROS·þÎñÆ÷ºÍrqt_graph½Úµã±¾Éí£¨ÈçÏÂͼËùʾ£©¡£Õâ¶ÔÓÚµ÷ÊÔ´óÐÍϵͳ·Ç³£ÓÐÓã¬ÒòΪͼ¿ÉÒÔʹÆä¼ò»¯¡£Í¬Ê±£¬ROS hydroÖÐÏàͬÃüÃû¿Õ¼äµÄ½Úµã±»·Ö×飬ÀýÈçͼÏñ¹ÜµÀµÄ½Úµã£º


µ±ÏµÍ³³öÏÖÎÊÌâʱ£¬»áÒ»Ö±£¨¶ø²»Ö»Êǵ±ÎÒÃÇÒÆ¶¯Êó±êÂÓ¹ýËüÃÇʱ£©ÒÔºìÉ«ÏÔʾ¡£ÔÚÕâÖÖÇé¿öÏ£¬Ñ¡Ôñall topics²é¿´Ã»ÓÐÁ¬½ÓµÄÖ÷Ìâ·Ç³£ÓÐÓã¬Õâͨ³£ÏÔʾÓÉÓÚÖ÷ÌâÃû³ÆÆ´Ð´´íÎóµ¼Ö½ڵãÖ®¼äÁ¬½ÓµÄÖжϡ£

µ±½ÚµãÔÚ²»Í¬µÄ»úÆ÷ÉÏÔËÐÐʱ£¬rqt_graph»áÏÔʾÆäÇ¿´óµÄ¸ß¼¶µ÷ÊÔ¹¦ÄÜ£¬°üÀ¨½ÚµãÄÜ·ñ´Ó¸÷×ԵĻúÆ÷¿´µ½¶Ô·½¡¢ÁоÙÁ¬½ÓµÈ¡£

×îºó£¬ÎÒÃÇ¿ÉÒÔÆôÓÃͳ¼Æ²é¿´ÔÚÖ÷Ìâ±ßÉÏÏÔʾµÄÐÅÏ¢ËÙÂÊ¡¢´ø¿í£¬ÒÔ¼°Ð´ÈëËÙÂʺÍÐÐËÙÂÊ£¬ÈçÏÂÒ»¸öͼËùʾ¡£ÎÒÃDZØÐëÔÚÔËÐÐrqt_graph֮ǰÉèÖòÎÊýÀ´Ê¹ÐÅÏ¢ÓÐЧ£º


²»ÐÒµÄÊÇ£¬ÕâЩ²ÎÊýROS hydroĿǰ²»¿ÉÓá£Ëü»áÔÚROS indigoÖУ¨ÏÂÒ»¸ö·¢Ðа棩³öÏÖ£¬Ò²ÓпÉÄÜÒÆÖ²»ØhydroÖС£

3.4¡¡ÉèÖö¯Ì¬²ÎÊý

Èç¹ûÒ»¸ö½ÚµãÅäÖÃÁËÒ»¸ö¶¯Ì¬ÖØÅäÖòÎÊý·þÎñÆ÷£¬ÔÚ¹¤×÷ÖоͿÉÒÔʹÓÃrqt_reconfigure½øÐÐÐ޸ġ£ÔËÐÐÏÂÃæµÄ´úÂëÆô¶¯Ò»¸ö´øÓм¸¸ö²ÎÊý¶¯Ì¬ÖØÅäÖõķþÎñÆ÷£¨¼û¹¦ÄܰücfgÎļþ¼ÐÖеÄcfgÎļþ£©£º


ʹÓÃÏÂÃæÃüÁîÆô¶¯¶¯Ì¬ÖØÅäÖ÷þÎñÆ÷£¬´ò¿ªGUI£º


ÔÚ×ó±ßµÄÁбíÖÐÑ¡Ôñexample6·þÎñÆ÷£¬È»ºó¾ÍÄÜ¿´µ½ËüµÄ²ÎÊý£¬²¢¿ÉÒÔÖ±½ÓÐ޸ġ£ÔËÐÐÔ´´úÂëÖÐÒ»¸ö»Øµ÷·½·¨µÄ´úÂë»á¶ÔÖµµÄÓÐЧÐÔ½øÐмì²é¡£Ò²¾ÍÊǵ±»Øµ÷·½·¨Ö´ÐÐʱ£¬ÔÚʾÀýÖÐÕâЩ²ÎÊýµÄ¸ü¸Ä½«Á¢¼´ÉúЧ¡£ËùÊöÄÚÈÝÈçÏÂͼËùʾ£º


¶¯Ì¬²ÎÊýÔ­±¾ÊÇΪÇý¶¯³ÌÐòÉè¼ÆµÄ£¬Õâʹ²ÎÊýÐ޸ıäµÃ¼òµ¥¡£Òò´Ë¶¯Ì¬²ÎÊýÒѾ­ÔÚһЩÇý¶¯ÉϵÃÒÔÓ¦Ó᣾¡¹ÜÈç´Ë£¬ËüÃÇÒ²¿ÉÒÔÓÃÓÚÈÎºÎÆäËû½Úµã¡£Çý¶¯³ÌÐòʵÏÖµÄʾÀý£¬ÈçHokuyo¼¤¹â²â¾àÒǵÄhokuyo_nodeÇý¶¯»òFireWire camera1394Çý¶¯¡£FireWireÉãÏñÍ·²ÉÓÃͨÓõÄÇý¶¯³ÌÐòÒÔÖ§³Ö´«¸ÐÆ÷һЩÅäÖòÎÊýµÄ¸Ä±ä£¬ÈçÖ¡ËÙÂÊ¡¢¿ìÃÅËٶȺÍÁÁ¶ÈµÈ¡£¿ÉÒÔÔËÐÐÏÂÃæµÄÃüÁîÆô¶¯FireWire ROSÉãÏñÍ·Çý¶¯£¨IEEE 1394£¬aºÍb£©£º


µ±ÉãÏñÍ·ÔËÐÐʱ£¬ÎÒÃÇ¿ÉÒÔÓÃrqt_reconfigureÅäÖòÎÊý£¬½«»á¿´µ½ÀàËÆÏÂͼµÄ½çÃæ£º


Çë×¢Ò⣬ÎÒÃǽ«ÔÚµÚ5Õ½éÉÜÈçºÎʹÓÃÉãÏñÍ·£¬ÎÒÃÇ»¹½«´Ó¿ª·¢ÈËÔ±µÄ½Ç¶È½âÊÍÕâЩ²ÎÊý¡£

3.5¡¡µ±³öÏÖÒì³£×´¿öʱʹÓÃroswtf

ROS»¹ÌṩÁËÁíÍâһЩ¹¤¾ßÀ´¼ì²â¸ø¶¨¹¦ÄܰüÖÐËùÓÐ×é¼þµÄDZÔÚÎÊÌ⡣ʹÓÃroscdÒÆ¶¯µ½ÄãÏëÒª·ÖÎöµÄ¹¦Äܰü·¾¶Ï£¬È»ºóÔËÐÐroswtf¡£¶ÔÓÚchapter3_tutorials£¬ÎÒÃÇ¿ÉÒÔ»ñµÃÒÔÏÂÊä³ö¡£Çë×¢Ò⣬Èç¹ûÄãÔËÐÐÁËһЩ´úÂ룬¾Í¿ÉÒÔÓÃROSͼ½øÐзÖÎö¡£ÔËÐÐroslaunch chapter3_tutorials example6.launchÃüÁÊä³öÈçͼËùʾ¡£


ͨ³£Çé¿öÏ£¬ÎÒÃÇÏ£Íû»ñµÃµÄ½á¹ûûÓÐÈκδíÎóºÍ¾¯¸æ£¬µ«ÊǺܶà´íÎóºÍ¾¯¸æÔÚϵͳÕý³£ÔËÐÐʱÊÇûÓÐÓ°ÏìµÄ¡£ÔÚÉÏͼÖУ¬roswtfûÓмì²âµ½ÈκδíÎó£¬Ö»ÓÐÒ»¸ö¹ØÓÚpipµÄ¾¯¸æ£¬ÕâÓÐʱ¿ÉÄÜÊÇÓÉϵͳ°²×°µÄPython´úÂë²úÉúµÄÎÊÌâ¡£Çë×¢Ò⣬roswtfµÄ×÷ÓÃÊǼì²âÐźŵÄDZÔÚÎÊÌ⣬Ȼºó¾ÍÏñÉÏÃæÊ¾ÀýÒ»Ñù£¬ÎÒÃÇÔÙÀ´¼ì²éÕâЩÌáʾÊÇ·ñÓÐÒâÒå¡£

ÁíÒ»¸öÓÐÓõŤ¾ßÊÇcatkin_lint£¬¿ÉÒÔ°ïÖúcatkinÕï¶Ï´íÎó£¬Í¨³£ÔÚCMakeLists.txtºÍpackage.xmlÎļþÖС£ÔÚchapter3_tutorialsÖУ¬µÃµ½ÈçÏÂÊä³ö£º


ʹÓòÎÊý-W2£¬¾Í¿´µ½Í¨³£»á±»ºöÂԵľ¯¸æ£¬ÈçÏÂͼËùʾ£º


3.6¡¡¿ÉÊÓ»¯½ÚµãÕï¶Ï

ROS½Úµã¿ÉÒÔʹÓÃdiagnostics£¨Õï¶Ï£©Ö÷ÌâÌṩÕï¶ÏÐÅÏ¢£¬²¢Îª´ËÌṩÁËÒ»¸öAPIÓÃÓÚÒÔ±ê×¼·½Ê½·¢²¼Õï¶ÏÐÅÏ¢¡£ÐÅÏ¢×ñÑ­diagnostic_msgs/DiagnositcStatusµÄÏûÏ¢ÀàÐÍ£¬ËüÔÊÐíÎÒÃÇÖ¸¶¨Ò»¸ö¼¶±ð£¨¾¯¸æ¡¢´íÎ󣩡¢Ãû³Æ¡¢ÏûÏ¢ºÍÓ²¼þIDÒÔ¼°diagnostic_msgs /KeyValueÁÐ±í£¬¶ÔÓ¦¼ü£¨key£©ºÍÖµ£¨value£©×Ö·û´®¡£

ÓÐȤµÄ²¿·ÖÊÇÊÕ¼¯Õï¶ÏÐÅÏ¢²¢½«Æä¿ÉÊÓ»¯µÄ¹¤¾ß¡£ÔÚ×î»ù±¾µÄ²ãÃæÉÏ£¬rqt_runtime_monitorͨ¹ýdiagnosticsÖ÷ÌâÖ±½Ó·¢²¼¿ÉÊÓ»¯ÐÅÏ¢¡£ÔËÐÐexample7½Úµã£¬Ëüͨ¹ýÕï¶ÏÖ÷Ìâ·¢²¼ÐÅÏ¢²¢¿ÉÒÔͨ¹ý¿ÉÊÓ»¯¹¤¾ß²é¿´Õï¶ÏÐÅÏ¢£º


Ç°ÃæµÄÃüÁîÊä³öÈçÏÂËùʾ£º


µ±ÏµÍ³ºÜ´óʱ£¬ÎÒÃÇ¿ÉÒÔʹÓÃdiagnostic_aggregator»ã×ÜÕï¶ÏÐÅÏ¢¡£ÔÚdiagnostics_aggÀï´¦ÀíºÍ¹éÀàdiagnosticsÖ÷ÌâµÄÏûÏ¢²¢ÖØÐ·¢²¼¡£ÕâЩ»ã×ÜÕï¶ÏÏûϢͨ¹ýrqt_robot_monitorʵÏÖ¿ÉÊÓ»¯¡£Õï¶Ï»ã×ÜÆ÷ͨ¹ýÒ»¸öÅäÖÃÎļþ½øÐÐÅäÖã¬ÀýÈçÏÂÃæµÄÕâÒ»¸ö£¨²Î¿´chapter3_tutorialsÖеÄconfig/diagnostic_aggregator.yamlÎļþ£©£¬²¢Ê¹ÓÃAnalyzerGroup¶¨Ò岻ͬµÄanalyzers£¨·ÖÎöÆ÷£©£º


launchÎļþÒѾ­ÔÚ֮ǰµÄ´úÂëÖÐʹÓ㬲¢ÒÔ֮ǰµÄÅäÖÃÔËÐÐÕï¶Ï½Úµãaggregator_node£¬ÈçÏ£º


ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒԱȽÏrqt_runtime_monitorÓërqt_robot_monitorµÄ¿ÉÊÓ»¯£¬ÈçÏÂͼËùʾ¡£


3.7¡¡»æÖƱêÁ¿Êý¾Ýͼ

ÎÒÃÇ¿ÉÒÔʹÓÃROSÖÐÏÖÓеÄһЩͨÓù¤¾ßÇáËɵػæÖƱêÁ¿Êý¾Ýͼ¡£µ±È»·Ç±êÁ¿Êý¾ÝÒ²¿ÉÒÔ»æÖÆ£¬µ«ÊÇÒª·Ö±ðÔÚ²»Í¬µÄ±êÁ¿ÓòÀï½øÐС£ÎÒÃÇÖ®ËùÒÔÔڴ˽öÌÖÂÛ±êÁ¿Êý¾Ý£¬ÊÇÒòΪ¶ÔÓÚ´ó¶àÊý·Ç±êÁ¿Êý¾Ý£¬ÓÐרÃŵŤ¾ßÄܹ»¸üºÃµØ¶ÔÆä½øÐбíʾ£¬ÎÒÃÇ»áÔÚºóÃæ½øÐв¿·Ö½éÉÜ£¬ÀýÈçͼÐΡ¢Î»×Ë¡¢·½ÏòºÍ½Ç¶ÈµÈ¡£

ÓÃrqt_plot»­³öʱ¼äÇ÷ÊÆÇúÏß

ÔÚROSϵͳÖУ¬±êÁ¿Êý¾Ý¿ÉÒÔ¸ù¾ÝÏûÏ¢ÖÐÌṩµÄʱ¼ä´Á×÷Ϊʱ¼äÐòÁлæÖÆ¡£È»ºó£¬ÎÒÃǾÍÄܹ»ÔÚyÖáÉÏʹÓÃrqt_plot¹¤¾ß»æÖƱêÁ¿Êý¾Ý¡£rqt_plot¹¤¾ßÓÐÒ»Ì×¹¦ÄÜÇ¿´óµÄ²ÎÊýÓï·¨£¬ÔÊÐíÎÒÃÇÔڽṹ»¯ÏûÏ¢ÖÐÖ¸¶¨¶à¸ö×ֶΣ¨µ±È»Ê¹ÓÃÁËÏ൱¼òÃ÷µÄ·½Ê½£©£¬Ò²¿ÉÒÔÔÚGUIÖÐÊÖ¶¯Ìí¼Ó»òɾ³ýÖ÷ÌâºÍ×ֶΡ£

ΪÁËÄܹ»Êµ¼Êչʾrqt_plot¹¤¾ß£¬ÎÒÃÇʹÓÃexample4½Úµã£¬ËüÔÚÁ½¸ö²»Í¬µÄÖ÷ÌâÖзֱ𷢲¼Ò»¸ö±êÁ¿ºÍÒ»¸öʸÁ¿£¨·Ç±êÁ¿£©£¬ÕâÁ½¸öÖ÷Ìâ·Ö±ðÊÇζȣ¨temp£©ºÍ¼ÓËÙ¶È£¨accel£©¡£ÔÚÕâЩÏûÏ¢ÖеÄÖµÊÇËæ»úÉú³ÉµÄ£¬ËùÒÔËüÃÇûÓÐʵ¼ÊÒâÒ壬½öÓÃÓÚʾ·¶ÇúÏß»æÖÆ¡£ÄÇôÊ×ÏÈÒÔÏÂÃæµÄÃüÁîÔËÐнڵ㣺


ΪÁËÄܹ»»­³öÏûÏ¢£¬ÎÒÃDZØÐëÖªµÀ¾ßÌåµÄ¸ñʽ£»Èç¹ûÄã²»ÖªµÀ¾ßÌå¸ñʽÔòʹÓÃrosmg show?<msg type>»ñÈ¡¡£¶ÔÓÚ±êÁ¿Êý¾Ý£¬ÎÒÃÇͨ³£Ê¹ÓÃdata×÷Ϊ×Ö¶ÎÃûÀ´±íʾʵ¼ÊµÄÖµ¡£Òò´Ë£¬¶ÔÓÚtempÖ÷Ì⣬Êý¾Ý¸ñʽΪInt32£¬ÔËÐÐÏÂÃæÃüÁ


Ö»Òª½ÚµãÕý³£ÔËÐУ¬ÎÒÃǾÍÄÜ¿´µ½ÇúÏßÍ¼ËæÊäÈëÏûÏ¢Ò»Ö±±ä»¯¡£ÈçÏÂͼÏÔʾ¡£


ÔÚʾÀý½ÚµãÌṩµÄaccelÖ÷ÌâÀÎÒÃÇ¿´µ½Ò»¸öVector3µÄÏûÏ¢£¨Äã¿ÉÒÔͨ¹ýrostopic type/accelÀ´²é¿´£©£¬ÎÒÃÇ¿ÉÒÔÔÚÒ»¸öplotͼÖзֱð»æÖÆÈý¸ö×ֶεÄÇúÏß¡£Vector3ÏûÏ¢°üº¬Èý¸ö×Ö¶Îx¡¢yºÍz¡£ÎÒÃÇ¿ÉÒÔʹÓöººÅ£¨,£©À´Çø·Ö×ֶλòÕßÏñÏÂÃæÒ»ÑùʹÓøü¼Ó¼ò½àµÄ·½Ê½£º


»æÖƵÄÇúÏßͼÈçÏ£º


ÎÒÃÇ»¹¿ÉÒÔ½«Ã¿¸ö×ֶηֿª»æÖÆ¡£ÓÉÓÚrqt_plot²»Ö±½ÓÖ§³ÖÕâ¸ö¹¦ÄÜ£¬Òò´ËÎÒÃÇÐèҪʹÓÃrqt_gui½«Èý¸öͼ±íÊÖ¶¯·Ö¿ª£¬ÈçÏÂͼËùʾ£º



rqt_plotµÄGUIÖ§³ÖÈýÖÖ»æÍ¼Ç°¶Ë¡£ÔÚROS hydro֮ǰ£¬Ö»ÓÐmatplotlibÖ§³Ö¡£ÏÖÔÚ£¬ÎÒÃÇ¿ÉÒÔʹÓøü¿ìµÄQTǰ¶Ë£¬Í¬Ê±ËüÖ§³Ö¸ü¶àµÄʱ¼äÐòÁС£¿ÉÒÔµã»÷ÅäÖã¨configuration£©°´Å¥Ñ¡Ôñ£¨ÈçÓÒͼËùʾ£©£º

3.8¡¡Í¼Ïñ¿ÉÊÓ»¯

ÔÚROSϵͳÖУ¬ÎÒÃÇ¿ÉÒÔ´´½¨Ò»¸ö½Úµã£¬ÔÚ½ÚµãÖÐչʾÀ´×Ô¼´²å¼´ÓÃÉãÏñÍ·µÄͼÏñ¡£ÕâÊÇÒ»¸ö¸´ÔÓÊý¾ÝÖ÷ÌâµÄÀý×Ó£¬ÕâЩÊý¾Ý¿ÉÒÔʹÓÃÌØÊ⹤¾ß¸üºÃµØ¿ÉÊÓ»¯»ò·ÖÎö¡£ÄãÖ»ÐèÒªÒ»¸öÉãÏñÍ·À´Íê³ÉÕâЩ£¬ÀýÈçÄã±Ê¼Ç±¾ÉϵÄwebcam¡£ÔÚexample8½ÚµãÖУ¬Í¨¹ýµ÷ÓÃOpenCV¿âʵÏÖÒ»¶Î»ù±¾µÄÉãÏñÍ·²¶×½³ÌÐò£¬È»ºóÔÚROSÖн«²É¼¯µ½µÄcv::MatͼÏñת»»µ½ROSͼÏñ£¬ÕâÑù¾Í¿ÉÒÔÔÚÖ÷ÌâÖз¢²¼ÁË¡£Õâ¸ö½Úµã»áÔÚ/cameraÖ÷ÌâÀï·¢²¼Í¼ÏñÖ¡¡£

ÎÒÃǽö»áʹÓÃlaunchÎļþÔËÐнڵ㲢½øÐÐͼÏñ²¶×½ºÍ·¢²¼¹¤×÷¡£½ÚµãÖеĴúÂë¶ÔÓÚ¶ÁÕßÀ´Ëµ¿ÉÄܺÜİÉú£¬µ«ÊÇÔÚÏÂÃæµÄÕ½ÚÖУ¬ÎÒÃǽ«»á½éÉÜÈçºÎÔÚROSÖÐʹÓÃÉãÏñÍ·ºÍͼÏñ£¬µ½Ê±ºòÔÙ»ØÀ´¿´ÕâЩ´úÂ룬Äã¾Í»áÍêÈ«Àí½â½ÚµãµÄ¹¤×÷Ô­ÀíºÍÿÐдúÂëµÄº¬Ò壺


Ò»µ©½ÚµãÔËÐÐÆðÀ´£¬ÎÒÃǾÍÄܹ»ÁгöÖ÷ÌâÁÐ±í£¨rostopic list£©£¬²¢²é¿´ÊÇ·ñ°üº¬/camera Ö÷Ìâ¡£²é¿´ÊÇ·ñÕýÈ·²¶×½µ½Í¼ÏñÓÐÒ»¸ö¼òµ¥Ö±½ÓµÄ·½·¨£¬Ê¹ÓÃrostopic hz /cameraÓï¾ä²é¿´ÔÚÖ÷ÌâÖÐÊÕµ½µÄͼÏñ¸üÐÂÆµÂÊÊǶàÉÙ¡£ÆµÂÊͨ³£ÊÇ30Hz£¬ÈçÏÂͼËùʾ£º


ÏÔʾµ¥Ò»Í¼Æ¬

ÏëÒª²é¿´Ò»ÕÅͼÏñ£¬ÎÒÃDz»ÄÜÖ±½ÓʹÓÃrostopic echo /cameraÃüÁÒòΪÕâ»áʹÓÃÎı¾¸ñʽÊä³öͼƬµÄÐÅÏ¢£¬Êý¾ÝÁ¿»á·Ç³£¾Þ´ó£¬²»¿ÉÄܽøÐÐÈκÎÓÐЧµÄ·ÖÎö¡£Òò´Ë£¬ÎÒÃÇ»áµ÷ÓÃÏÂÃæµÄÃüÁ


ÕâÀïʹÓÃÁËimage_view½Úµã£¬ÔÚ´°¿ÚÖÐչʾÁ˸ø¶¨Ö÷Ì⣨ʹÓÃimage²ÎÊý£©µÄͼÏñ£¬ÈçÏÂͼËùʾ¡£ÕâÑùÎÒÃǾÍÄܼòµ¥Ö±½ÓµØÏÔʾÔÚÖ÷ÌâÄÚ·¢²¼µÄÿһ·ùͼÏñ»òÖ¡£¬¼´Ê¹Êý¾ÝÀ´×ÔÍøÂçÒ²¿ÉÒÔʵÏÖ¡£Äã¿ÉÒÔͨ¹ýÔÚ´°¿ÚÖеã»÷Óұߵİ´Å¥½«µ±Ç°Ö¡±£´æÔÚÓ²ÅÌÀͨ³£»á´æÔÚhomeĿ¼Ï»òÕß~/.rosĿ¼Ï¡£

ROS hydro»¹ÓÐrqt_image_view£¬Ö§³ÖÔÚÒ»¸ö´°¿Ú²é¿´¶à¸öͼÏñ£¬µ«²»ÔÊÐíµã»÷Óұ߰´Å¥±£´æÍ¼Ïñ¡£ÎÒÃÇ¿ÉÒÔÔÚGUIÉÏÊÖ¶¯Ñ¡ÔñͼÏñÖ÷Ìâ»òʹÓÃimage_view£º


Ç°ÃæÃüÁî½á¹ûÈçÓÒͼËùʾ£º

ROSÌṩÁËÒ»¸ö»ùÓÚOpenCVУ׼APIµÄÉãÏñͷУ׼½çÃæ¡£ÎÒÃǽ«ÔÚµÚ5Õ½éÉÜÈçºÎʹÓÃÉãÏñÍ·£¬°üÀ¨µ¥Ä¿ºÍ˫ĿÉãÏñÍ·ÒÔ¼°ROSͼÏñ¹ÜµÀ£¨image_procºÍstereo_image_proc£©Ïà¹ØÄÚÈÝ£¬ÕâЩÄÜÐÞÕýÉãÏñͷͼÏñÊ§Õæ¡¢¼ÆËã˫ĿÉãÏñÍ·Éî¶È²îÒ죬²¢µÃµ½Ò»¸öµãÔÆ¡£

3.9¡¡3D¿ÉÊÓ»¯

ÕýÈçÎÒÃÇÔÚÇ°ÃæÕ½ÚÖÐËù¼û£¬ÓкܶàÉ豸£¨ÀýÈç˫ĿÉãÏñÍ·¡¢3D¼¤¹âºÍKinect´«¸ÐÆ÷µÈ£©Äܹ»Ìṩ3DÊý¾Ý¡£ËüÃÇͨ³£Ê¹ÓõãÔÆ¸ñʽ£¨×éÖ¯ºÃ»òδ×éÖ¯µÄ£©¡£»ùÓÚÉÏÊöÔ­Òò£¬Äܹ»Ê¹Óù¤¾ßʵÏÖ3DÊý¾Ý¿ÉÊÓ»¯¾Í·Ç³£ÓÐÓÃÁË¡£±¾½ÚÎÒÃǽ«½éÉÜROSϵͳÖеÄrviz»òrqt_rviz¹¤¾ß¡£Ëü¼¯³ÉÁËÄܹ»Íê³É3DÊý¾Ý´¦ÀíµÄOpenGL½Ó¿Ú£¬Äܹ»½«´«¸ÐÆ÷Êý¾ÝÔÚÄ£ÐÍ»¯ÊÀ½ç£¨world£©ÖÐչʾ£¬¹ý³ÌÊÇÏÈʹÓô«¸ÐÆ÷×ø±êϵ¶ÁÈ¡²âÁ¿Öµ£¬ÔÙ½«ÕâЩ¶ÁÊý°´ÕÕÖ®¼äµÄÏà¶ÔλÖÃÔÚÕýÈ·µÄλÖûæÖÆ¡£

3.9.1¡¡Ê¹ÓÃrqt_rvizÔÚ3DÊÀ½çÖÐʵÏÖÊý¾Ý¿ÉÊÓ»¯

ÔÚroscoreÔËÐÐʱ£¬Æô¶¯rqt_rviz£¨Çë×¢ÒârvizÔÚROS hydroÖÐÒÀÈ»ÓÐЧ£©£º


ÎÒÃǽ«»á¿´µ½ÈçÏÂͼËùʾµÄͼÐλ¯¹¤×÷½çÃæ£º


ÔÚ×ó±ßÓÐÒ»¸öDisplaysÃæ°å£¬ÔÚÃæ°åµÄÖмäÓÐÒ»¸ö°üº¬ÁËÄ£Äâ»·¾³Ï²»Í¬²ÎÊýÏîµÄÊ÷ÐÎÁÐ±í¡£ÔÚʾÀýÖУ¬ÒѾ­¼ÓÔØÁ˲¿·Ö²ÎÊýÏʵÀýÖеÄÅäÖúͲ¼¾Ö¶¼´æ´¢ÔÚÁËconfig/example9.rvizÎļþÖУ¬¿ÉÒÔͨ¹ýµã»÷File | Open Config¼ÓÔØ¡£

ÔÚDisplaysÇøÓòÖ®ÏÂÓÐÒ»¸öAdd°´Å¥£¬ÔÊÐíͨ¹ýÖ÷Ìâ»òÀàÐÍÌí¼Ó¸ü¶àµÄ²ÎÊýÏͬʱ£¬×¢Òâµ½ÕâÀﻹÓÐһЩȫ¾ÖÑ¡Ï»ù±¾ÉÏÊÇÓÃÓÚÉ趨¹Ì¶¨×ø±êϵµÄ¹¤¾ß£¬ÒòÎª×ø±êϵÊÇ¿ÉÒÔÒÆ¶¯µÄ¡£Æä´Î£¬»¹ÓÐÖᣨAxes£©ºÍÍø¸ñ£¨Grid£©×÷Ϊ¸÷¸ö²ÎÊýÏîµÄ²ÎÕÕÎï¡£ÔÚʾÀýÖУ¬¶ÔÓÚexample9½Úµã£¬ÎÒÃǽ«»á¿´µ½±ê¼Ç£¨Marker£©ºÍµãÔÆ£¨PointCloud2£©¡£

×îºó£¬ÔÚ״̬À¸ÉÏÓÐʱ¼äÏà¹ØµÄÐÅÏ¢Ìáʾ£¬ÒÔ¼°ÔÚÓÒ²àÓÐһЩ²Ëµ¥¡£ToolsÓÃÓÚÅäÖÃһЩ²å¼þ²ÎÊý£¬Èç2D Nav GoalºÍ2D Pose EstimateÖ÷ÌâÃûµÈ¡£ÔÚViewsĿ¼ÌṩÁ˲»Í¬²é¿´ÀàÐÍ£¬Ò»°ã¶øÑÔÓÐOrbitºÍTopDownOrtho¾Í×ã¹»ÁË£¬Ò»¸öÓÃÓÚ3D²é¿´£¬ÁíÒ»¸öÓÃÓÚ2D¸©ÊӲ鿴£¬ÆäËûĿ¼ÏÔʾÁË»·¾³ÖÐһЩ¿ÉÒÔÑ¡ÔñµÄÔªËØ¡£ÔÚ¶¥²¿£¬ÓÐÒ»¸öµ±Ç°²Ù×÷ģʽµÄ²Ëµ¥À¸£¬°üÀ¨½»»¥£¨Interact£©¡¢Òƶ¯£¨Move£©¡¢²âÁ¿£¨Measure£©µÈ£¬ÒÔ¼°Ò»Ð©²å¼þ¡£

ÏÖÔÚÔËÐÐexample9½Úµã£º


ÔÚrqt_rvizÖУ¬ÎÒÃǽ«»á°Ñframe_idÉèÖÃΪ±ê¼Ç£¬Õâ¸ö±ê¼ÇÊǹ̶¨×ø±êϵµÄ×ø±ê±ê¼Ç£¨frame_marker£©¡£ÎÒÃǽ«»á¿´µ½ºìÉ«·½¿é±ê¼ÇÔÚÒÆ¶¯£¬ÈçÏÂͼËùʾ£º


ÀàËÆµØ£¬Èç¹ûÉèÖù̶¨×ø±êϵΪframe_pc£¬ÎÒÃǽ«¿´µ½Ò»¸ö200¡Á100ÏñËØµãÆ½ÃæËù×é³ÉµÄµãÔÆ£¬ÈçÏÂͼËùʾ£º


Ö§³ÖµÄrqt_rvizÄÚÖÃÀàÐ͵IJÎÊýÁбí°üÀ¨cameraºÍimage¡£ËüÃÇ»áÔÚÒ»¸öÀàËÆÓÚimage_viewµÄ´°¿ÚÖÐÏÔʾ¡£Ñ¡ÔñcameraµÄʱºò£¬ÐèÒª¶ÔËüÏȽøÐÐУ׼£¬ÔÚʹÓÃ˫ĿÊÓ¾õͼÏñµÄʱºò£¬ËüÔÊÐíÎÒÃǸ²¸ÇµãÔÆ¡£ÎÒÃÇͬÑùÒ²¿ÉÒÔ¿´µ½¼¤¹âÀ×´ïµÄLaserScanÊý¾Ý£¬ºìÍâ/ÉùÄÅ£¨IR/sonar£©´«¸ÐÆ÷µÄ×¶×´¾àÀëÊý¾Ýrange£¬ÒÔ¼°3D´«¸ÐÆ÷ÀýÈçKinectµÄPointCloud2¡£

¶ÔÓÚµ¼º½¹¦Äܰü¼¯£¬½«»áÔÚÏÂÒ»Õ½øÐÐÏêϸ½éÉÜ¡£ÎÒÃÇ»áʹÓöàÖÖÊý¾ÝÀàÐÍ£¬ÀýÈçÀï³ÌOdometry£¨»­³ö»úÆ÷È˵ÄÀï³Ìλ×Ë£©£¬Â·¾¶Path£¨»­³ö»úÆ÷ÈËËù×ß¹ýµÄ·¾¶£©£¬ÎïÌåλ×ËPose£¬´øÓлúÆ÷ÈËλ×˹À¼ÆµÄÁ£×ÓÔÆPoseArray£¬Ê¹ÓÃOccupancy Grid Map£¨OGM£©µÄµØÍ¼Map£¬ÒÔ¼°costmaps£¨ÕâÊÇROS hydroµÄMapÀàÐÍ£¬Ö®Ç°ÊÇGridCell£©¡£

ÔÚÕâЩÀàÐÍÖУ¬ÐèҪ˵Ã÷µÄÊÇ»úÆ÷È˵ÄÄ£ÐÍRobotModel£¬ËüÄܹ»Õ¹Ê¾»úÆ÷ÈË×é¼þµÄCADÄ£ÐÍ£¬²¢½«Ã¿¸ö×é¼þµÄ×ø±êϵ֮¼äµÄת»»¿¼ÂǽøÈ¥£¬ÉõÖÁ»¹ÄÜ»­³ö×ø±ê±ä»»£¨tf£©Ê÷£¬²¢ÇÒÔÚ·ÂÕæ»·¾³ÖÐÎª×ø±êϵµ÷ÊÔÌṩ·Ç³£´óµÄ°ïÖú¡£ÎÒÃÇ»áÔÚÏÂÒ»½ÚչʾʾÀý¡£ÔÚRobotModelÖУ¬ÎÒÃÇÓûúÆ÷ÈËURDFÃèÊöÖеĹؽڻæÖÆÒ»Ìõ¹ì¼££¬¿´ËüÃÇÈçºÎËæÊ±¼ä±ä»¯Òƶ¯¡£

»ù±¾ÔªËØÒ²¿ÉÒÔ±»±íʾ£¬ÀýÈç»úÆ÷ÈË×ã¼£µÄPolygon¡¢¸÷ÖÖ²»Í¬µÄ±ê¼ÇMarkersͨ³£Ö§³Ö»ù±¾¼¸ºÎÔªËØ£¬ÈçÁ¢·½Ìå¡¢ÇòÌå¡¢ÏßÌõµÈ£¬ÉõÖÁÊǽ»»¥Ê½±ê¼Ç¶ÔÏóInteractiveMarker¡£½»»¥Ê½±ê¼Ç¶ÔÏóÔÊÐíÓû§É趨±ê¼Ç¶ÔÏóÔÚ3D»·¾³ÖеÄλ×Ë£¨Î»Öúͷ½Ïò£©¡£Ê¹ÓÃÏÂÃæÃüÁÔËÐÐexample8½Úµã²é¿´¼òµ¥½»»¥Ê½±ê¼Ç£º


Ä㽫¿´µ½Ò»¸ö±ê¼Ç£¬¿ÉÒÔÔÚrqt_rviz½»»¥Ä£Ê½ÖÐÒÆ¶¯Ëü¡£ËüµÄλ×Ë¿ÉÒÔÓÃÓÚÐÞ¸ÄϵͳÖÐÁíÒ»¸ö²ÎÊýµÄλ×Ë£¬ÀýÈç»úÆ÷È˹ؽڣº


3.9.2¡¡Ö÷ÌâÓë×ø±êϵµÄ¹ØÏµ

Èç¹ûÊý¾Ý´ÓÕæÊµÊÀ½çÖÐÒ»¸öÎïÀíλÖõÄÌØ¶¨´«¸ÐÆ÷Êý¾Ý·¢²¼£¬Ö÷Ìâ±ØÐëÓÐÒ»¸ö×ø±êϵ¡£ÀýÈ磬Ïà¶ÔÓÚ»úÆ÷È˵×Å̵ÄλÖÃÉÏÓÐÒ»¸ö¼¤¹â´«¸ÐÆ÷£¨Í¨³£ÔÚÂÖʽ»úÆ÷ÈËÁ½¸öÂÖ×ÓµÄÂÖÖáÖм䣩¡£Èç¹ûÎÒÃÇÐèÒªÓü¤¹âɨÃèÊý¾ÝÈ¥¼ì²â»·¾³ÖÐÕϰ­Îï»òÕß¹¹½¨µØÍ¼£¬¾Í±ØÐë¶Ô¼¤¹â´«¸ÐÆ÷ºÍµ×ÅÌËùÔÚµÄλÖýøÐÐ×ø±êת»»¡£ÔÚROSϵͳÖУ¬´øÓб¨ÎÄÍ·µÄÏûÏ¢³ýÁ˾ßÓÐʱ¼ä´Á£¨ÔÚ²»Í¬µÄÏûÏ¢¼ä½øÐÐÊý¾Ýͬ²½·Ç³£ÖØÒª£©Ö®Í⣬»¹Òª¸½ÉÏframe_id£¨×ø±êϵ±êÇ©£©¡£×ø±êϵ±êÇ©ÓÃÓÚÇø·ÖÏûÏ¢ËùÊôµÄ×ø±êϵ¡£

×ø±êϵ×ÔÉí²¢Ã»ÓÐÒâÒ壬ÎÒÃÇÐèÒªµÄÊÇËüÃÇÖ®¼äµÄ×ø±ê±ä»»¡£Êµ¼ÊÉÏ£¬»úÆ÷È˵Ätf×ø±ê±ä»»Ê÷¶¼»áÓÐÒ»¸öbase_link×÷Ϊ¸ù×ø±êϵ£¨»òÊǵØÍ¼£¬Èç¹ûÔËÐе¼º½°üµÄ»°£©¡£ÕâÑù£¬ÎÒÃǾÍÄܹ»ÔÚrqt_rvizÖÐͨ¹ý¶Ô±È¸ù×ø±êϵºÍÆäËû×ø±êϵ²é¿´»úÆ÷ÈËÏà¶ÔÓÚÕæÊµÊÀ½ç×ø±êϵµÄÔ˶¯¡£

3.9.3¡¡¿ÉÊÓ»¯×ø±ê±ä»»

ΪÁ˽âÊÍÈçºÎ½øÐÐ×ø±ê±ä»»µÄ¿ÉÊÓ»¯£¬ÎÒÃǽ«»áÔÙ´ÎʹÓÃturtlesimµÄʾÀý¡£ÔËÐÐÒÔÏÂlaunchÎļþ£º


ÕâÊÇÒ»¸öÔÚrqt_rvizÀïÄܹ»ÓÃÓÚչʾtf¿ÉÊÓ»¯µÄ×î»ù±¾Ê¾Àý¡£ÐèҪעÒâµÄÊÇtf APIÌṩÁ˺ܶ಻ͬµÄ¿ÉÄÜÐÔ£¬¿ÉÒԲο¼±¾ÊéµÄºóÐøÕ½ڡ£¶ø¶ÔÓÚÏÖÔÚµÄʾÀý£¬ÎÒÃÇÖ»ÐèÒªÖªµÀËüÃÇÄܹ»ÔÚij¸ö×ø±êϵÄÚ½øÐмÆËãºÍ´ÓÒ»¸ö×ø±êϵ±ä»»µ½ÁíÍâÒ»¸ö×ø±êϵ£¬¶øÇÒ°üº¬Ê±¼äÑÓ³Ù¼´¿É¡£ÎÒÃÇ»¹ÐèÒªÁ˽âtfÔÚϵͳÖлáÒÔij¸öÌØ¶¨µÄƵÂʽøÐз¢²¼£¬ÕâÑùËü¾Í»áÏñ×ÓϵͳһÑùÔÊÐíÎÒÃDZéÀú×ø±ê±ä»»Ê÷ÒÔ»ñÈ¡ÆäÖÐÈÎÒâÁ½¸ö×ø±êϵ֮¼äµÄת»»£¬²¢ÇÒ¿ÉÒÔÔÚϵͳµÄÈÎÒâ½ÚµãÖÐͨ¹ýµ÷ÓÃtf½øÐб任¡£

Èç¹ûÄãÊÕµ½Ò»¸ö´íÎó£¬ÕâºÜ¿ÉÄÜÊÇÒòΪÔÚlaunchÎļþÆô¶¯Ê±¼àÌýÆ÷£¨listener£©Ê§Ð§ÁË¡£¼àÌýÆ÷ÊÇÒ»¸ö±Ø±¸µÄ½Úµã£¬±ØÐë×¼±¸ºÃ²ÅÄܽøÐÐ×ø±ê±ä»»¡£Òò´Ë£¬ÇëÔÚÁíÍâÒ»¸öÃüÁîÐд°¿ÚÏÂÔËÐÐÒÔÏÂÃüÁ


ÏÖÔÚÄãÓ¦¸Ã»á¿´µ½Ò»¸ö´øÓÐÁ½Ö»Ð¡º£¹êµÄ´°¿Ú£¨Ð¡º£¹êµÄͼ±ê²»Í¬£©£¬Ò»Ö»Ð¡º£¹ê¸ú×ÅÁíÒ»Ö»¡£Äã¿ÉÒÔʹÓüüÅÌÉϵÄÉÏÏÂ×óÓÒËĸö¼ýÍ·°´¼ü¿ØÖÆÐ¡º£¹ê¡£ÐèҪעÒâµÄÊÇҪͣÁôÔÚÔËÐÐlaunchÎļþµÄÄǸöÃüÁîÐд°¿ÚÉÏ£¬¶ø²»ÊÇÔÚturtlesim´°¿ÚÉÏ£¬ÕâÑù²ÅÄÜÈÃСº£¹êÒÆ¶¯¡£ÓÒͼÏÔʾÁËÔÚÎÒÃÇ¿ØÖÆÒ»Ö»Ð¡º£¹êÒÆ¶¯ÁËÒ»¶Î¾àÀëÖ®ºó£¬ÁíÒ»¸öСº£¹êÊÇÈçºÎ¸úËæ×ÅËüµÄ¡£

ÿһֻСº£¹ê¶¼ÓÐ×Ô¼ºµÄ×ø±êϵ£¬¿ÉÒÔÔÚrqt_rvizÖв鿴ËüÃÇ£º


ÏÖÔÚ£¬ÏÈ·ÅÏÂturtlesim£¬ÎÒÃÇÏÈÀ´¿´µ±Ê¹ÓüýÍ·¼üÒÆ¶¯Ð¡º£¹êʱrqt_rvizÀïСº£¹êµÄ×ø±êϵÊÇÈçºÎÒÆ¶¯µÄ¡£Ê×ÏÈÉ趨¹Ì¶¨×ø±êΪ/world£¬È»ºó½«×ø±êת»»tfÊ÷Ìí¼Óµ½×ó±ßµÄÇøÓò¡£ÎÒÃǻῴµ½/turtle1ºÍ/turtle2Á½¸ö×ø±êϵ£¬ËüÃÇͬΪ/world×ø±êϵµÄ×Ó×ø±êϵ¡£ÔÚworldµÄÏÔʾÖУ¬×ø±êϵÓÉ×ø±êÖá×é³É£¬¸¸-×ÓÖ®¼äµÄÁ¬½ÓÊÇÒ»¸ö´øÓзۺìɫβ°ÍµÄ»ÆÉ«¼ýÍ·¡£Í¬Ê±£¬É趨worldµÄÊÓͼ£¨view£©ÎªTopDownOrtho£¬Õâ»áʹʾÀýÖÐ²é¿´×ø±êϵµÄÒÆ¶¯¸üÈÝÒ×£¬ÒòΪËüÃǽöÔÚ2DÆ½ÃæÖÐÒÆ¶¯¡£Ä㻹»á·¢ÏÖͨ¹ýÊó±ê²Ù×÷ת»»worldÊÓͼÏÔʾµÄÖÐÐķdz£ÓÐÓã¬Ö»ÐèÒªÄã°´ÏÂshift°´¼üͬʱת¶¯Êó±ê¡£

ÔÚÏÂͼÖУ¬ÄãÄÜ¿´µ½²»Í¬º£¹êËùÔÚµÄÁ½¸ö×ø±êϵÈçºÎת»»µ½/world×ø±êϵÖв¢½øÐÐÏÔʾ¡£Í¬Ê±£¬ÄãÒ²¿ÉÒÔÓÃÕâ¸öʾÀýºÍtf¸ü¸Ä¹Ì¶¨×ø±êϵ¡£Çë×¢Òâconfig/example_tf.rvizÓÃ×÷±¾Ê¾ÀýµÄ»ù±¾rvizÅäÖãº


3.10¡¡±£´æÓë»Ø·ÅÊý¾Ý

ͨ³£Çé¿öÏ£¬µ±ÎÒÃÇʹÓûúÆ÷ÈËϵͳʱ£¬×ÊԴͨ³£Êǹ²ÏíµÄ£¬²¢²»Ò»¶¨×ÜÄܸøÄãÒ»¸öÈËʹÓ᣻òÕßÓÉÓÚ×¼±¸ºÍʵʩʵÑéÏûºÄÁË´óÁ¿µÄʱ¼ä£¬»òÊÇʵÑéÄÑÒÔÖØÏÖµÈÖîÈç´ËÀàµÄÔ­Òòµ¼ÖÂʵÑé²»ÄÜ˳ÀûÍê³É¡£»ùÓÚÒÔÉÏÔ­Òò£¬½«ÊµÑéÊý¾Ý¼Ç¼ÏÂÀ´ÓÃÓÚδÀ´µÄ·ÖÎö¡¢´¦Àí¡¢¿ª·¢ºÍËã·¨ÑéÖ¤¾ÍÊÇÒ»¸öºÜºÃµÄʵ¼ù·½·¨¡£È»¶øÒª±£Ö¤´æ´¢Êý¾ÝÕýÈ·²¢Äܹ»ÓÃÓÚÀëÏ߻طÅÈ´²»ÊÇÈÝÒ×µÄÊÂÇ飬ÒòΪºÜ¶àʵÑé²¢²»Ò»¶¨ÄÜ·´¸´½øÐС£ÐÒÔ˵ÄÊÇ£¬ROSÖеÄÇ¿´ó¹¤¾ßʹÎÒÃÇÄܹ»Íê³ÉÕâÏîÈÎÎñ¡£

ROSÄܹ»´æ´¢ËùÓнڵãͨ¹ýÖ÷Ìâ·¢²¼µÄÏûÏ¢¡£ËüÄܹ»´´½¨Ò»¸öÏûÏ¢¼Ç¼°üÎļþ£¨bag£©À´±£´æÏûÏ¢£¬²¢°üº¬ÏûÏ¢µÄËùÓÐ×ֶβÎÊýºÍʱ¼ä´Á¡£ÕâÔÊÐíÀëÏ߻طÅʵÑ鲢ģÄâÕæÊµµÄ״̬£¬°üÀ¨ÏûÏ¢µÄʱ¼äÑÓ³Ù¡£ÉõÖÁROS¹¤¾ßÄܹ»·Ç³£ÓÐЧµØÔÚ´¦Àí¸ßËÙÊý¾ÝÁ÷ʱÒÔ³ä×ãµÄÊý¾Ý×éÖ¯·½Ê½À´ÊµÏÖÕâÒ»ÇС£

ÔÚÏÂÃæµÄС½ÚÖУ¬ÎÒÃÇ»á½âÊÍROSÖÐÌṩµÄÕâЩÓÃÓÚ´æ´¢ºÍ»Ø·ÅÏûÏ¢¼Ç¼°üÎļþµÄ¹¤¾ß£¬ÏûÏ¢¼Ç¼°üÎļþÓÉROS¿ª·¢ÕßÉè¼Æ£¬Ê¹Óöþ½øÖƸñʽ´æ´¢Êý¾Ý¡£ÎÒÃÇ»¹½«¿´µ½ÈçºÎ¹ÜÀíÕâЩÎļþ£¬¼´¼ì²éÎļþÄÚÈÝ£¨ÏûÏ¢µÄÊýÁ¿¡¢Ö÷ÌâµÈ£©¡¢ÎļþѹËõ¡¢·Ö¸îºÍºÏ²¢¶à¸ö¼Ç¼°üÎļþ¡£

3.10.1¡¡Ê²Ã´ÊÇÏûÏ¢¼Ç¼°üÎļþ

ÏûÏ¢¼Ç¼°ü£¨bag£©ÊÇÒ»¸ö°üº¬¸÷¸öÖ÷ÌâËù·¢ÏûÏ¢µÄÈÝÆ÷£¬ÓÃÓڼǼ»úÆ÷È˸÷¸ö½Úµã¼äµÄ»á»°¹ý³Ì¡£¼ò¶øÑÔÖ®£¬ËüÃÇÊÇϵͳÔËÐÐÆÚ¼äÏûÏ¢´«Ë͵ļǼÎļþ£¬²¢ÄÜÔÊÐíÎÒÃǻطÅËùÓÐÒ»ÇУ¬ÉõÖÁ°üÀ¨Ê±¼äÑÓ³Ù¡£Òò´ËËùÓÐÏûÏ¢ÔڼǼʱ¶¼»á´òÉÏʱ¼ä´Á£¬²»½öÊDZ¨ÎÄÍ·ÀïµÄʱ¼ä´Á£¬»¹°üÀ¨Ê¹ÓÃÏûÏ¢µÄÊý¾Ý°ü¡£ÓÃÓڼǼµÄʱ¼ä´ÁºÍ±¨ÎÄÍ·ÄÚµÄʱ¼ä´ÁÖ®¼äµÄÇø±ðÔÚÓÚǰÕßÊÇÏûÏ¢±»¼Ç¼ʱµÄʱ¼ä£¬¶øºóÕßÊÇÏûÏ¢²úÉúºÍ·¢²¼Ê±µÄʱ¼ä¡£

ÏûÏ¢¼Ç¼°üÖд洢µÄÊý¾ÝʹÓöþ½øÖƸñʽ¡£Õâ¸öÈÝÆ÷ʹÓõÄÊý¾Ý½á¹¹·Ç³£ÌØÊ⣬Äܹ»Ö§³Ö³¬¸ßËÙÊý¾ÝÁ÷µÄ´¦ÀíºÍ¼Ç¼¡£ÕâÊǼǼÊý¾Ý×î¹Ø¼üµÄ¹¦ÄÜ¡£µ±È»£¬ÕâºÍÏûÏ¢¼Ç¼°üÎļþµÄ´óСҲÊÇÏà¹ØµÄ¡£µ«Ëæ×ÅÎļþµÄÔö´ó»áÎþÉüÊý¾ÝµÄ¼Ç¼ËÙ¶È¡£ÎÒÃÇÄÜÑ¡Ôñbz2Ëã·¨½øÐÐʵʱÊý¾ÝѹËõ£¬Ö»ÐèÒªÔÚÄãʹÓÃrosbag recordÃüÁî¼Ç¼ʱʹÓÃ-j²ÎÊý£¬Äã»áÔÚÏÂÒ»½Ú¿´µ½¾ßÌåʾÀý¡£

ÿ¸öÏûÏ¢Óë·¢²¼ËüµÄÖ÷Ìâ¶¼±»¼Ç¼ÏÂÀ´¡£Òò´Ë£¬ÎÒÃÇ¿ÉÒÔÇø·Öij¸öÖ÷Ìâ½øÐмǼ£¬»òÕßÖ±½ÓÑ¡ÔñÈ«²¿£¨Ê¹ÓÃ-a²ÎÊý£©¡£È»ºóµÈÄã»Ø·Å¼Ç¼°üµÄʱºò£¬Í¬Ñù¿ÉÒÔͨ¹ýÖ¸Ã÷ÌØ¶¨Ö÷ÌâµÄÃû³ÆÀ´Ñ¡ÔñÏûÏ¢¼Ç¼°üÖÐÈ«²¿Ö÷ÌâµÄij¸öÌØ¶¨×Ó¼¯½øÐлطš£

3.10.2¡¡Ê¹ÓÃrosbagÔÚÏûÏ¢¼Ç¼°üÖмǼÊý¾Ý

Ê×ÏÈÒª×öµÄÊÂÇéÊǼòµ¥µØ¼Ç¼Êý¾Ý¡£Ê¹ÓÃÒ»¸ö·Ç³£¼òµ¥µÄϵͳ£¬ÒÔexample4½ÚµãΪÀý¡£Òò´Ë£¬ÏÈÔËÐнڵ㣺


ÏÖÔÚÎÒÃÇÓÐÁ½¸öÑ¡Ôñ¡£µÚÒ»¸öÊǼǼËùÓеÄÖ÷Ì⣺


»òÕßÑ¡ÔñµÚ¶þ¸ö£¬½ö¼ÇÂ¼Ò»Ð©ÌØ¶¨£¨Óû§×Ô¶¨Ò壩µÄÖ÷Ìâ¡£ÔÚÕâ¸öʾÀýÖУ¬½ö¼Ç¼example4µÄÖ÷ÌâÊǺÏÀíµÄÑ¡Ôñ£¬¿ÉÒÔʹÓÃÒÔÏÂÖ¸Á


ĬÈÏÇé¿öÏ£¬µ±ÔËÐÐÇ°ÃæµÄÃüÁrosbag³ÌÐò»á¶©ÔÄÏà¹Ø½Úµã²¢¿ªÊ¼¼Ç¼ÏûÏ¢£¬½«Êý¾Ý´æ´¢ÔÚµ±Ç°Ä¿Â¼ÏÂÒÔÊý¾ÝÄÚÈÝ×÷ΪÎļþÃûµÄÏûÏ¢¼Ç¼°üÎļþÖС£Ò»µ©ÄãÍê³ÉʵÑé»òÕßÏë½áÊø¼Ç¼£¬Ö»ÐèÒªµã»÷Ctrl + C¡£ÏÂÃæ¾ÍÊÇÒ»¸ö¼Ç¼Êý¾ÝºÍÏûÏ¢¼Ç¼°ü½á¹ûµÄʾÀý£º


ʹÓÃrosbag help record¿ÉÒÔ¿´µ½¸ü¶àµÄÑ¡ÏÆäÖаüÀ¨¼Ç¼°üÎļþµÄ´óС¡¢¼Ç¼µÄ³ÖÐøÊ±¼ä¡¢·Ö¸îÎļþµ½Ä³¸ö¸ø¶¨´óСµÄÑ¡ÏîµÈ¡£»òÕßÏñǰÎÄÌáµ½µÄÄÇÑù£¬Îļþ¿ÉÒÔʵʱѹËõ£¨Ê¹ÓÃ-j²ÎÊý£©¡£Ì¹Âʵؽ²£¬ÕâÖ»ÔÚÊý¾Ý´æ´¢ËÙÂʽϵÍʱÓÐÓã¬ÒòΪÕâͬʱ»¹»áÏûºÄ´óÁ¿µÄCPUʱ¼ä²¢¿ÉÄܶªÊ§²¿·ÖÏûÏ¢¡£»òÕߣ¬ÎÒÃÇÄÜÒÔMBΪµ¥Î»Ôö¼Ó¼Ç¼»º´æ£¨-b£©´óС¡£»º´æ´óСĬÈÏÖµÊÇ256MB£¬µ«ÔÚijЩÊý¾Ý´æ´¢ËÙÂÊÌØ±ð¸ßµÄÇé¿öÏÂÒ²¿ÉÄÜÐèÒªGB¼¶µÄ»º´æ£¨ÌرðÊÇ´¦ÀíͼÏñʱ£©¡£

ÔÚlaunchÎļþÖпÉÒÔÖ±½Óµ÷ÓÃrosbag record£¬ÕâÔÚÎÒÃÇÐèҪΪһЩÖ÷ÌâÉèÖüǼÆ÷ʱ·Ç³£ÓÐÓá£Îª´Ë£¬ÎÒÃÇÐèÒªÔÚlaunchÎļþÖÐÔö¼ÓÒ»¸öÈçÏÂËùʾµÄ½Úµã£º


ÐèҪעÒâµÄÊÇÖ÷ÌâºÍ´«µÝ¸øÆäËûÃüÁîµÄ²ÎÊý»áʹÓÃargs²ÎÊý¡£Í¬Ê±£¬ÔÚʹÓÃlaunchÎļþÖ±½ÓÆô¶¯¼Ç¼µÄʱºò£¬¼Ç¼°üÎļþ»áĬÈÏ´´½¨ÔÚ~/.ros·¾¶Ï£¬³ý·ÇʹÓÃ-o£¨Ç°×º£©»ò-O£¨È«Ãû£©¸øÎļþÃüÃû¡£

3.10.3¡¡»Ø·ÅÏûÏ¢¼Ç¼°üÎļþ

ÏÖÔÚÎÒÃÇÓÐÁËÒ»¸öÏûÏ¢¼Ç¼°üÎļþ£¨bag£©£¬¿ÉÒÔʹÓÃËü»Ø·ÅÖ÷Ìâ·¢²¼µÄËùÓÐÏûÏ¢Êý¾Ý¡£Ö»ÐèÒªÔËÐÐroscore£¬¶ø²»ÐèÒªÔÙÔËÐÐÆäËûÈκνڵ㡣Ȼºó£¬Òƶ¯µ½ÏëÒª»Ø·ÅµÄÏûÏ¢¼Ç¼°üÎļþËùÔÚµÄÎļþ¼ÐÏ£¨ÔÚ±¾ÕµÄʾÀýÖÐbagÎļþ¼ÐÏÂÌṩÁËÁ½¸ö¼Ç¼°üʾÀý£©£¬²¢ÇÒÊäÈëÒÔÏÂÃüÁ


ÎÒÃǻῴµ½ÈçÏÂÊä³ö£º


ÔڻطÅÏûÏ¢¼Ç¼°üµÄÃüÁîÐд°¿ÚÄÚ£¬¿ÉÒÔÔÝÍ££¨µã»÷¿Õ¸ñ¼ü£©»òÒ»²½Ò»²½Ç°½ø£¨µã»÷S¼ü£©£¬»òÕßʹÓÃCtrl + CÀ´ÂíÉÏÍ£Ö¹»Ø·Å¡£Ò»µ©»Ø·ÅÍê±Ï£¬´°¿Ú¾Í»á¹Ø±Õ£¬µ«ÊÇÓÐÒ»¸öÑ¡Ï-l£©ÔÊÐíÑ­»·²¥·Å£¬ÕâÔÚÓÐЩʱºòÒ²ºÜÓÐÓá£

ͨ¹ýrostopic listÃüÁî²é¿´Ö÷ÌâÁÐ±í£¬ÈçÏÂËùʾ£º


/clockÖ÷ÌâÓÃÓÚÖ¸¶¨ÏµÍ³Ê±ÖÓÒÔ±ã¼Ó¿ì·ÂÕæµÄ»Ø·ÅËÙ¶È¡£ËüÄܹ»Í¨¹ý-rÑ¡Ïî½øÐÐÅäÖá£ÔÚ/clockÖ÷ÌâÖÐÄܹ»·¢²¼·ÂÕæÊ±¼ä£¬²¢ÒÔ--hzΪ²ÎÊýÅäÖÃÆµÂÊ£¨Ä¬ÈÏÊÇ100Hz£©¡£

ͬʱ£¬ÎÒÃÇ¿ÉÒÔÖ¸¶¨ÎļþÖн«Òª·¢²¼Ö÷ÌâµÄÒ»¸ö×Ó¼¯¡£Õâ¿ÉÒÔͨ¹ý--topicsÑ¡ÏîÀ´Íê³ÉÅäÖá£

3.10.4¡¡¼ì²éÏûÏ¢¼Ç¼°üÎļþµÄÖ÷ÌâºÍÏûÏ¢

ÕâÀïÓÐÁ½¸öÖ÷ÒªµÄ·½·¨À´²é¿´ÏûÏ¢¼Ç¼°üÄÚ²¿µÄÊý¾Ý¡£µÚÒ»¸ö·Ç³£¼òµ¥¡£ÎÒÃÇÖ»ÐèÒªÊäÈërosbag info <bag_file>£¬È»ºó½á¹ûÈçÏÂͼËùʾ£º


ÎÒÃÇÓÐÏûÏ¢¼Ç¼°üÎļþ±¾ÉíµÄÐÅÏ¢£¬ÀýÈç´´½¨µÄÈÕÆÚ¡¢³ÖÐøÊ±¼ä¡¢Îļþ´óС£¬ÒÔ¼°ÄÚ²¿ÏûÏ¢µÄÊýÁ¿ºÍÎļþµÄѹËõ¸ñʽ£¨Èç¹ûÓÐѹËõ£©¡£È»ºó£¬ÎÒÃÇ»¹»áÓÐÎļþÄÚ²¿Êý¾ÝÀàÐ͵ÄÁÐ±í¡£×îºóÓÐÖ÷ÌâµÄÁÐ±í£¬²¢¶ÔÓ¦ËüÃǵÄÃû³Æ¡¢ÏûÏ¢ÊýÁ¿ºÍÀàÐÍ¡£

µÚ¶þÖÖ¼ì²é°üÎļþµÄ·½·¨Ôò·Ç³£Ç¿´ó¡£Õâ¸öGUI¹¤¾ß½Ð×örqt_bag¡£Ëü²»½ö¾ßÓÐͼÐνçÃæ£¬»¹ÔÊÐíÎÒÃǻطÅÏûÏ¢¼Ç¼°ü¡¢²é¿´Í¼Ïñ£¨Èç¹ûÓУ©¡¢»æÖƱêÁ¿Êý¾ÝͼºÍÏûÏ¢µÄÊý¾ÝÔ­½á¹¹£¨RAW£©¡£ÎÒÃÇÖ»ÐèÒª´«µÝ¼Ç¼°üÎļþµÄÃû³Æ£¬¾Í»á¿´µ½ÈçÏÂͼËùʾµÄ½çÃæ£¨Ê¹ÓÃ֮ǰµÄ¼Ç¼°üÎļþ£©£º


ÎÒÃÇÓÐÒ»¸öÄÜÓÃÓÚËùÓÐÖ÷ÌâµÄʱ¼äÌõ¡£¶ÔÓÚÿһ¸öÏûÏ¢¶¼»á´øÓÐÕâ¸ö±ê¼Ç¡£ÔÚ±¾ÀýÖУ¬Äܹ»ÔÚʱ¼äÌõÖÐʹÓÃËõÂÔͼ²é¿´ÏûÏ¢¡£

ÔÚÏÂͼÖУ¬ÎÒÃÇÄܹ»¿´µ½ÈçºÎµ÷ÓÃRaw¡¢PlotºÍImageÖ¸ÁÈç¹ûÊÇͼÏñÀàÐ͵ÄÖ÷Ì⣩£¬À´²é¿´¼Ç¼°üÎļþÖеÄÖ÷Ìâ¡£ÔÚʱ¼äÌõÉϵ¥»÷ÓÒ¼ü¾Í»áµ¯³öÕâ¸ö²Ëµ¥¡£ÏÂͼ¶ÔÓ¦ÀÏrxbag£¬Õâ¸ö¹¦ÄÜÒѾ­±»Ìí¼Óµ½rqt_bag£¬µ«Ä¿Ç°ÔÚDebian¿âÖпÉÄÜ»¹²»¿ÉÓãº


×÷Ϊ²¹³ä£¬ÎÒÃÇʹÓÃrqt_gui½«rqt_bagºÍrqt_plot²å¼þ·Åµ½Í¬Ò»´°¿ÚÖС£Í¨¹ýconfig/bag_plot.perspectiveÎļþ¼Ðµ¼ÈëÏÂͼËùʾµÄ²¼¾Ö¡£²»Í¬ÓÚrxbag£¬ÎÒÃÇʹÓÃPubulish AllºÍ²¥·Å²é¿´»æÍ¼¡£¶ÔÓÚ/accelÖ÷Ì⣬ÎÒÃÇ¿ÉÒÔʹÓÃÒ»¸ö×ø±êÖá»æ³öËùÓеÄ×ֶΡ£ÎªÁËʵÏÖÕâ¸ö¹¦ÄÜ£¬ÏÈÒª½øÈë»æÍ¼£¨plot£©µÄÊÓͼÖУ¬µã»÷+°´Å¥/ͼ±êÑ¡ÔñËùÓÐ×ֶΡ£Çë×¢Ò⣬ÎÒÃÇ¿ÉÒÔËæºóÔÙɾ³ýËüÃÇ»òÕßн¨Ò»¸öÖá¡£Èç֮ǰÌá¼°µÄ£¬»æÍ¼¹¤¾ß²»Éú³ÉÎļþÖÐËùÓÐÊýÖµ£¬ËüÖ»ÊǼòµ¥ÏÔʾÊý¾ÝµÄ»Ø·ÅºÍ·¢²¼£º


ÐèҪעÒâµÄÊÇÓÉÓÚrxbagµÄÌØµã£¬ÖÁÉÙÒªµã»÷Ò»´Îplay°´Å¥²ÅÄܹ»¶ÔÊý¾Ý½øÐлæÖÆ¡£ÎÒÃÇ»¹Äܹ»²¥·Å¡¢ÔÝÍ£¡¢Í£Ö¹ºÍÒÆ¶¯µ½ÎļþÍ·»òÕßÎļþ½áβ¡£

ÕâÀïͼÏñ¶¼ºÜ¼òµ¥£¬¶øÇÒ»á³öÏÖÒ»¸ö´øÓе±Ç°×ø±êϵºÍÅäÖÃÑ¡ÏîµÄ´°¿Ú£¬Äܹ»½«ÕâЩÄÚÈÝ×÷ΪͼÏñÎļþ´æ´¢ÔÚÓ²ÅÌÉÏ¡£

ÓÉÓÚrqt_bagµÄµÚÒ»°æ»¹Ã»ÓÐÇ°ÃæÌáµ½µÄÔ¤ÀÀºÍ¿ÉÊÓ»¯¹¦ÄÜ£¬Ä㽫ÐèҪΪROS hydro±àÒërxbag»òÉý¼¶×îеÄrqt_bag£¨»òÕß´ÓGitHub¿âÖпË¡hydro-devel·ÖÖ§²¢±àÒ룩¡£

3.11¡¡Ó¦ÓÃrqtÓërqt_gui²å¼þ

´ÓROS Fuerte·¢²¼ÒÔÀ´£¬rxÓ¦Óûò¹¤¾ßÒѾ­±»rqt½ÚµãÌæ´ú¡£ËüÃÇ»ù±¾ÉÏÊÇÒ»ÑùµÄ£¬Ö»ÓÐһС²¿·ÖµÄÉý¼¶¡¢bugÐÞÕýºÍй¦ÄÜ¡£ÎÒÃÇʹÓÃÏÂÃæÁбí¶Ô±¾ÕÂÖнéÉܵŤ¾ß½øÐÐ˵Ã÷£¨ROS hydroµÄrqt¹¤¾ßÒÔ¼°¶ÔÓ¦±»Ìæ´úµÄ֮ǰµÄROS·¢²¼°æ±¾£©£º

ROS hydro rqt¹¤¾ß Ìæ´ú£¨ROS fuerte»ò֮ǰ°æ±¾£©

rqt_consoleºÍrqt_logger_level rxconsole

rqt_graph rxgraph

rqt_reconfigure rqt_reconfigure dynamic_reconfigure reconfigure_gui

rqt_plot rxplot

rqt_image_view image_view

rqt_bag rxbag


ÔÚROS hydroÖУ¬ÕâЩ¿ÉÒÔµ¥¶ÀÔËÐеIJå¼þÉõÖÁ¸ü¶à£¬Äܹ»×÷ΪÃüÁîÐУ¨rqt_shell£©¡¢Ö÷ÌâµÄ·¢²¼Õߣ¨rqt_publisher£©¡¢ÏûÏ¢ÀàÐ͵ļì²éÕߣ¨rqt_msg£©µÈ£¬±¾ÕÂÄÚÈݺ­¸ÇÁËÕâÐ©ÖØÒªµÄ²å¼þ¡£ÉõÖÁrviz¶¼ÓÐÒ»¸öÃûΪrqt_rvizµÄ²å¼þ£¬»¹Äܹ»¼¯³ÉÔÚ×îеÄrqt_gui½çÃæÖС£ÎÒÃÇ¿ÉÒÔÔËÐÐÕâ¸öGUI²¢ÔÚ´°¿ÚÉÏÊÖ¶¯Ìí¼ÓºÍÅÅÁÐһЩ²å¼þ£¬Èç±¾ÕÂ֮ǰ¸ø³öµÄһЩʾÀý£º


3.12¡¡±¾ÕÂС½á

ÔÚÔĶÁÁ˱¾Õ²¢ÔËÐÐÁËʾÀý´úÂëÖ®ºó£¬Äã¾ÍÕÆÎÕÁ˼ӿì»úÆ÷ÈËϵͳ¹¹½¨ËÙ¶È¡¢´íÎóµ÷ÊÔ¡¢½á¹û¿ÉÊÓ»¯µÈ´óÁ¿ÊµÓù¤¾ß¡£¿ÉÒÔͨ¹ýÕâЩ¹¤¾ßÆÀ¹À»òÑéÖ¤Éè¼ÆÖÊÁ¿¡£×÷Ϊ»úÆ÷ÈË¿ª·¢ÈËÔ±£¬Ä㽫ÔÚ¿ª·¢¹ý³ÌÖÐÖð½¥ÉîÈëÌåÑéÕâÐ©ÌØÊâµÄ¸ÅÄîºÍ¹¤¾ß¡£

ÏÖÔÚÄãÖªµÀÁËÈçºÎÔÚ´úÂëÖаüº¬²»Í¬¼¶±ð²»Í¬Ïêϸ³Ì¶ÈµÄÈÕÖ¾ÐÅÏ¢¡£ÕâÄܹ»°ïÖúÄãµ÷ÊÔ½Úµã´íÎó¡£ÎªÁËʵÏÖÕâ¸öÄ¿µÄ£¬Ä㻹ÐèҪʹÓÃÆäËûһЩROSÖаüº¬µÄÇ¿´ó¹¤¾ß£¬ÀýÈçrqt_console½çÃæ¡£ÁíÍ⣬ÄãÒ²¿ÉÒÔ¼ì²é»òÁгöÔËÐÐÖеĽڵ㡢·¢²¼µÄÖ÷ÌâºÍϵͳÔËÐÐʱÌṩµÄ·þÎñ¡£Õâ°üº¬ÁËʹÓÃrqt_graph¹¤¾ß¼ì²â½Úµã״̬ͼ¡£

¶ÔÓÚ¿ÉÊÓ»¯¹¤¾ß£¬ÄãÒÑѧϰÁËʹÓÃrqt_plot»æÖƱêÁ¿Êý¾ÝÇúÏß¡£ËüÄܹ»ÒÔ¸ü¼ÓÖ±¹ÛµÄÌØ¶¨±äÁ¿·ÖÎö·½Ê½·¢²¼ÄãµÄ½Úµã¡£ÀàËÆµØ£¬ÄãÄܹ»²é¿´¸ü¼Ó¸´ÔÓµÄÊý¾ÝÀàÐÍ£¨·Ç±êÁ¿Êý¾Ý£©¡£Õâ°üÀ¨Ê¹ÓÃrqt_image_viewºÍrqt_rviz²é¿´Í¼ÏñºÍ3DÊý¾Ý£¬Ò²¿ÉÒÔʹÓÃÕâЩ¹¤¾ßУÕýºÍµ÷ÕûÉãÏñͷͼÏñ¡£

×îºó£¬ÄãÒѾ­Í¨¹ýѧϰrosbag¹¤¾ßѧ»áÁ˼ǼºÍ»Ø·ÅÖ÷ÌâÖеÄÏûÏ¢£¬»¹ÖªµÀÁËÈçºÎʹÓÃrqt_bag²é¿´ÏûÏ¢¼Ç¼°üÎļþµÄÄÚÈÝ£¬Õâ¾ÍÔÊÐíÄã»ùÓÚÒÔÍùµÄ¾­ÑéÈ¥¼Ç¼Êý¾ÝºÍʹÓÃAIËã·¨»ò»úÆ÷ÈËËã·¨´¦ÀíÊý¾Ý¡£

ÔÚ½ÓÏÂÀ´Ò»ÕÂÖУ¬Ä㽫»áʹÓñ¾Õ½²¹ýµÄÕâЩ¹¤¾ß¿ÉÊÓ»¯²»Í¬ÀàÐ͵ÄÊý¾Ý£¬ÒÔ¼°Ò»Ð©´«¸ÐÆ÷ÔÚROSÖеÄʹÓÃ˵Ã÷ºÍËüÃÇÊä³öÊý¾ÝµÄ¿ÉÊÓ»¯µÈ¡£


°æÈ¨ÉùÃ÷£º±¾ÎÄÄÚÈÝÓɰ¢ÀïÔÆÊµÃû×¢²áÓû§×Ô·¢¹±Ï×£¬°æÈ¨¹éÔ­×÷ÕßËùÓУ¬°¢ÀïÔÆ¿ª·¢ÕßÉçÇø²»ÓµÓÐÆäÖø×÷Ȩ£¬Ò಻³Ðµ£ÏàÓ¦·¨ÂÉÔðÈΡ£¾ßÌ广ÔòÇë²é¿´¡¶°¢ÀïÔÆ¿ª·¢ÕßÉçÇøÓû§·þÎñЭÒé¡·ºÍ¡¶°¢ÀïÔÆ¿ª·¢ÕßÉçÇøÖªÊ¶²úȨ±£»¤Ö¸Òý¡·¡£Èç¹ûÄú·¢ÏÖ±¾ÉçÇøÖÐÓÐÉæÏÓ³­Ï®µÄÄÚÈÝ£¬ÌîдÇÖȨͶËß±íµ¥½øÐоٱ¨£¬Ò»¾­²éʵ£¬±¾ÉçÇø½«Á¢¿Ìɾ³ýÉæÏÓÇÖȨÄÚÈÝ¡£

Ïà¹ØÎÄÕÂ
ROS»úÆ÷È˳ÌÐòÉè¼Æ | ÆÚĩ֪ʶµã´ó×ܽá
¹¤×÷¿Õ¼äµÄ¿ò¼ÜÊÇÔõôÑùµÄ£¿Óм¸¸öÎļþ¼Ð£¿ Ò»¸ö°üº¬¹¦Äܰü¡¢¿É±à¼­Ô´Îļþ»ò±àÒë°üµÄÎļþ¼Ð¡£ ͬʱ±àÒ벻ͬµÄ¹¦Äܰüʱ·Ç³£ÓÐÓ㬲¢ÇÒ¿ÉÒÔÓÃÀ´±£´æ±¾µØ¿ª·¢°ü¡£
1582 0
»úÆ÷È˳ÌÐòÉè¼Æ_ROS_note2
±¾±Ê¼Ç¹ØÓÚROSÎļþϵͳÈÏʶÒÔ¼°³£ÓÃÃüÁîµÄʵ¼ù »·¾³£ºubuntu16.04 & ROS-Ubuntu2 0.°²×°tree£º 1.
682 0
»úÆ÷È˳ÌÐòÉè¼Æ_ROS_note1
ROS¹ÙÍø ROSµÄkinetic°²×° ÊÖ°ÑÊÖʽ½Ì³Ì£¬Ð¡»ï°éÃÇ´ó¿É·ÅÐÄ£¬ÂýÂýÀ´ ÏÂÃæÔËÐÐÒ»¸ö¿ÎÌÃÉϵÄÀý×Ó£º »·¾³£ºubuntu16.04 & ROS-Ubuntu2 ROS³õÌåÑ顪¡ªÎÚ¹êÅÀÅÀÅÀ ÊäÈëÒÔÏÂÃüÁîÆô¶¯½Úµã£º roscore ³öÏÖ×îºóÒ»ÐеÄstarted core service ¼´³É¹¦ÔËÐС£
618 0
ÎÄÕÂ
ÎÊ´ð
À´Ô´È¦×Ó
¸ü¶à
+ ¶©ÔÄ
ÎÄÕÂÅÅÐаñ
×îÈÈ
×îÐÂ
Ïà¹Øµç×ÓÊé
¸ü¶à
ÔÆÐ¡ÃÛÖÇÄÜ·þÎñ»úÆ÷ÈË
Á¢¼´ÏÂÔØ
»úÆ÷È˺ÍÈ˹¤ÖÇÄÜ¡ª¡ª´ÓÏÖÔÚ¿´Î´À´
Á¢¼´ÏÂÔØ
°¢Àï°Í°Í»úÆ÷ÈË ÆóÒµ½â¾ö·½°¸
Á¢¼´ÏÂÔØ
http://www.vxiaotou.com