├── LICENSE ├── README.md ├── map_launcher ├── CMakeLists.txt ├── map │ ├── map.pgm │ └── map.yaml ├── package.xml └── rviz │ ├── navigation.rviz │ └── turtlebot3_navigation.rviz ├── multi_turtlebots_nav ├── CMakeLists.txt ├── launch │ ├── amcl_robot1.launch │ ├── amcl_robot2.launch │ ├── amcl_robot3.launch │ ├── move_base_1.launch │ ├── move_base_2.launch │ ├── move_base_3.launch │ └── navigation.launch ├── package.xml └── param │ ├── base_local_planner_params.yaml │ ├── costmap_common_params.yaml │ ├── dwa_local_planner_params.yaml │ ├── global_costmap_params.yaml │ ├── local_costmap_params.yaml │ └── move_base_params.yaml ├── multi_turtlebots_sim ├── CMakeLists.txt ├── launch │ ├── main.launch │ ├── one_robot.launch │ ├── robots.launch │ └── test.launch ├── package.xml └── turtlebot3_description │ ├── meshes │ ├── bases │ │ └── burger_base.stl │ ├── sensors │ │ ├── astra.dae │ │ ├── astra.jpg │ │ ├── lds.stl │ │ ├── r200.dae │ │ └── r200.jpg │ └── wheels │ │ ├── left_tire.stl │ │ └── right_tire.stl │ ├── rviz │ └── model.rviz │ ├── urdf │ ├── common_properties.xacro │ ├── turtlebot3_burger.gazebo.xacro │ └── turtlebot3_burger.urdf.xacro │ └── world │ ├── square.world │ └── turtlebot3_house.world └── thumbnail.png /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Navigate_Multiple_Robots 2 | 3 | ![alt text](https://raw.githubusercontent.com/Pallav1299/Navigate_Multiple_Robots/master/thumbnail.png) 4 | 5 | How to navigate multiple robots in simulation using ROS and Gazebo. 6 | 7 | [![Watch the video](https://drive.google.com/file/d/14nKAhJnAltBh2-BE7m0fL__4v2HSFjEn/view?usp=sharing)](https://www.youtube.com/watch?v=iyL_hsqjKWI) 8 | 9 | Topic Credits: 10 | "The Construct" 11 | -------------------------------------------------------------------------------- /map_launcher/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(map_launcher) 3 | 4 | ## Compile as C++11, supported in ROS Kinetic and newer 5 | # add_compile_options(-std=c++11) 6 | 7 | ## Find catkin macros and libraries 8 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 9 | ## is used, also find other catkin packages 10 | find_package(catkin REQUIRED) 11 | 12 | ## System dependencies are found with CMake's conventions 13 | # find_package(Boost REQUIRED COMPONENTS system) 14 | 15 | 16 | ## Uncomment this if the package has a setup.py. This macro ensures 17 | ## modules and global scripts declared therein get installed 18 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 19 | # catkin_python_setup() 20 | 21 | ################################################ 22 | ## Declare ROS messages, services and actions ## 23 | ################################################ 24 | 25 | ## To declare and build messages, services or actions from within this 26 | ## package, follow these steps: 27 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 28 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 29 | ## * In the file package.xml: 30 | ## * add a build_depend tag for "message_generation" 31 | ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET 32 | ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in 33 | ## but can be declared for certainty nonetheless: 34 | ## * add a exec_depend tag for "message_runtime" 35 | ## * In this file (CMakeLists.txt): 36 | ## * add "message_generation" and every package in MSG_DEP_SET to 37 | ## find_package(catkin REQUIRED COMPONENTS ...) 38 | ## * add "message_runtime" and every package in MSG_DEP_SET to 39 | ## catkin_package(CATKIN_DEPENDS ...) 40 | ## * uncomment the add_*_files sections below as needed 41 | ## and list every .msg/.srv/.action file to be processed 42 | ## * uncomment the generate_messages entry below 43 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 44 | 45 | ## Generate messages in the 'msg' folder 46 | # add_message_files( 47 | # FILES 48 | # Message1.msg 49 | # Message2.msg 50 | # ) 51 | 52 | ## Generate services in the 'srv' folder 53 | # add_service_files( 54 | # FILES 55 | # Service1.srv 56 | # Service2.srv 57 | # ) 58 | 59 | ## Generate actions in the 'action' folder 60 | # add_action_files( 61 | # FILES 62 | # Action1.action 63 | # Action2.action 64 | # ) 65 | 66 | ## Generate added messages and services with any dependencies listed here 67 | # generate_messages( 68 | # DEPENDENCIES 69 | # std_msgs # Or other packages containing msgs 70 | # ) 71 | 72 | ################################################ 73 | ## Declare ROS dynamic reconfigure parameters ## 74 | ################################################ 75 | 76 | ## To declare and build dynamic reconfigure parameters within this 77 | ## package, follow these steps: 78 | ## * In the file package.xml: 79 | ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" 80 | ## * In this file (CMakeLists.txt): 81 | ## * add "dynamic_reconfigure" to 82 | ## find_package(catkin REQUIRED COMPONENTS ...) 83 | ## * uncomment the "generate_dynamic_reconfigure_options" section below 84 | ## and list every .cfg file to be processed 85 | 86 | ## Generate dynamic reconfigure parameters in the 'cfg' folder 87 | # generate_dynamic_reconfigure_options( 88 | # cfg/DynReconf1.cfg 89 | # cfg/DynReconf2.cfg 90 | # ) 91 | 92 | ################################### 93 | ## catkin specific configuration ## 94 | ################################### 95 | ## The catkin_package macro generates cmake config files for your package 96 | ## Declare things to be passed to dependent projects 97 | ## INCLUDE_DIRS: uncomment this if your package contains header files 98 | ## LIBRARIES: libraries you create in this project that dependent projects also need 99 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 100 | ## DEPENDS: system dependencies of this project that dependent projects also need 101 | catkin_package( 102 | # INCLUDE_DIRS include 103 | # LIBRARIES map_launcher 104 | # CATKIN_DEPENDS other_catkin_pkg 105 | # DEPENDS system_lib 106 | ) 107 | 108 | ########### 109 | ## Build ## 110 | ########### 111 | 112 | ## Specify additional locations of header files 113 | ## Your package locations should be listed before other locations 114 | include_directories( 115 | # include 116 | # ${catkin_INCLUDE_DIRS} 117 | ) 118 | 119 | ## Declare a C++ library 120 | # add_library(${PROJECT_NAME} 121 | # src/${PROJECT_NAME}/map_launcher.cpp 122 | # ) 123 | 124 | ## Add cmake target dependencies of the library 125 | ## as an example, code may need to be generated before libraries 126 | ## either from message generation or dynamic reconfigure 127 | # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 128 | 129 | ## Declare a C++ executable 130 | ## With catkin_make all packages are built within a single CMake context 131 | ## The recommended prefix ensures that target names across packages don't collide 132 | # add_executable(${PROJECT_NAME}_node src/map_launcher_node.cpp) 133 | 134 | ## Rename C++ executable without prefix 135 | ## The above recommended prefix causes long target names, the following renames the 136 | ## target back to the shorter version for ease of user use 137 | ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" 138 | # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") 139 | 140 | ## Add cmake target dependencies of the executable 141 | ## same as for the library above 142 | # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 143 | 144 | ## Specify libraries to link a library or executable target against 145 | # target_link_libraries(${PROJECT_NAME}_node 146 | # ${catkin_LIBRARIES} 147 | # ) 148 | 149 | ############# 150 | ## Install ## 151 | ############# 152 | 153 | # all install targets should use catkin DESTINATION variables 154 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 155 | 156 | ## Mark executable scripts (Python etc.) for installation 157 | ## in contrast to setup.py, you can choose the destination 158 | # install(PROGRAMS 159 | # scripts/my_python_script 160 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 161 | # ) 162 | 163 | ## Mark executables for installation 164 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html 165 | # install(TARGETS ${PROJECT_NAME}_node 166 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 167 | # ) 168 | 169 | ## Mark libraries for installation 170 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html 171 | # install(TARGETS ${PROJECT_NAME} 172 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 173 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 174 | # RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} 175 | # ) 176 | 177 | ## Mark cpp header files for installation 178 | # install(DIRECTORY include/${PROJECT_NAME}/ 179 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 180 | # FILES_MATCHING PATTERN "*.h" 181 | # PATTERN ".svn" EXCLUDE 182 | # ) 183 | 184 | ## Mark other files for installation (e.g. launch and bag files, etc.) 185 | # install(FILES 186 | # # myfile1 187 | # # myfile2 188 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 189 | # ) 190 | 191 | ############# 192 | ## Testing ## 193 | ############# 194 | 195 | ## Add gtest based cpp test target and link libraries 196 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_map_launcher.cpp) 197 | # if(TARGET ${PROJECT_NAME}-test) 198 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 199 | # endif() 200 | 201 | ## Add folders to be run by python nosetests 202 | # catkin_add_nosetests(test) 203 | -------------------------------------------------------------------------------- /map_launcher/map/map.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallavbhalla/Navigate_Multiple_Robots/546ff5ca48fe0babc959ec24062834c03320df50/map_launcher/map/map.pgm -------------------------------------------------------------------------------- /map_launcher/map/map.yaml: -------------------------------------------------------------------------------- 1 | image: /home/pallav/test/map.pgm 2 | resolution: 0.050000 3 | origin: [-10.000000, -10.000000, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /map_launcher/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | map_launcher 4 | 0.0.0 5 | The map_launcher package 6 | 7 | 8 | 9 | 10 | pallav 11 | 12 | 13 | 14 | 15 | 16 | TODO 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | catkin 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /map_launcher/rviz/navigation.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Global Options1 8 | - /Status1 9 | Splitter Ratio: 0.5 10 | Tree Height: 565 11 | - Class: rviz/Selection 12 | Name: Selection 13 | - Class: rviz/Tool Properties 14 | Expanded: 15 | - /2D Pose Estimate1 16 | - /2D Nav Goal1 17 | - /Publish Point1 18 | Name: Tool Properties 19 | Splitter Ratio: 0.588679016 20 | - Class: rviz/Views 21 | Expanded: 22 | - /Current View1 23 | Name: Views 24 | Splitter Ratio: 0.5 25 | - Class: rviz/Time 26 | Experimental: false 27 | Name: Time 28 | SyncMode: 0 29 | SyncSource: "" 30 | Toolbars: 31 | toolButtonStyle: 2 32 | Visualization Manager: 33 | Class: "" 34 | Displays: 35 | - Alpha: 0.5 36 | Cell Size: 1 37 | Class: rviz/Grid 38 | Color: 160; 160; 164 39 | Enabled: true 40 | Line Style: 41 | Line Width: 0.0299999993 42 | Value: Lines 43 | Name: Grid 44 | Normal Cell Count: 0 45 | Offset: 46 | X: 0 47 | Y: 0 48 | Z: 0 49 | Plane: XY 50 | Plane Cell Count: 10 51 | Reference Frame: 52 | Value: true 53 | - Alpha: 1 54 | Class: rviz/RobotModel 55 | Collision Enabled: false 56 | Enabled: true 57 | Links: 58 | All Links Enabled: true 59 | Expand Joint Details: false 60 | Expand Link Details: false 61 | Expand Tree: false 62 | Link Tree Style: Links in Alphabetic Order 63 | base_footprint: 64 | Alpha: 1 65 | Show Axes: false 66 | Show Trail: false 67 | base_link: 68 | Alpha: 1 69 | Show Axes: false 70 | Show Trail: false 71 | Value: true 72 | base_scan: 73 | Alpha: 1 74 | Show Axes: false 75 | Show Trail: false 76 | Value: true 77 | caster_back_link: 78 | Alpha: 1 79 | Show Axes: false 80 | Show Trail: false 81 | Value: true 82 | imu_link: 83 | Alpha: 1 84 | Show Axes: false 85 | Show Trail: false 86 | wheel_left_link: 87 | Alpha: 1 88 | Show Axes: false 89 | Show Trail: false 90 | Value: true 91 | wheel_right_link: 92 | Alpha: 1 93 | Show Axes: false 94 | Show Trail: false 95 | Value: true 96 | Name: RobotModel 97 | Robot Description: robot_description 98 | TF Prefix: robot1_tf 99 | Update Interval: 0 100 | Value: true 101 | Visual Enabled: true 102 | - Class: rviz/TF 103 | Enabled: true 104 | Frame Timeout: 15 105 | Frames: 106 | All Enabled: true 107 | map: 108 | Value: true 109 | robot1_tf/base_footprint: 110 | Value: true 111 | robot1_tf/base_link: 112 | Value: true 113 | robot1_tf/base_scan: 114 | Value: true 115 | robot1_tf/caster_back_link: 116 | Value: true 117 | robot1_tf/imu_link: 118 | Value: true 119 | robot1_tf/odom: 120 | Value: true 121 | robot1_tf/wheel_left_link: 122 | Value: true 123 | robot1_tf/wheel_right_link: 124 | Value: true 125 | robot2_tf/base_footprint: 126 | Value: true 127 | robot2_tf/base_link: 128 | Value: true 129 | robot2_tf/base_scan: 130 | Value: true 131 | robot2_tf/caster_back_link: 132 | Value: true 133 | robot2_tf/imu_link: 134 | Value: true 135 | robot2_tf/odom: 136 | Value: true 137 | robot2_tf/wheel_left_link: 138 | Value: true 139 | robot2_tf/wheel_right_link: 140 | Value: true 141 | robot3_tf/base_footprint: 142 | Value: true 143 | robot3_tf/base_link: 144 | Value: true 145 | robot3_tf/base_scan: 146 | Value: true 147 | robot3_tf/caster_back_link: 148 | Value: true 149 | robot3_tf/imu_link: 150 | Value: true 151 | robot3_tf/odom: 152 | Value: true 153 | robot3_tf/wheel_left_link: 154 | Value: true 155 | robot3_tf/wheel_right_link: 156 | Value: true 157 | Marker Scale: 1 158 | Name: TF 159 | Show Arrows: false 160 | Show Axes: false 161 | Show Names: false 162 | Tree: 163 | map: 164 | robot1_tf/odom: 165 | robot1_tf/base_footprint: 166 | robot1_tf/base_link: 167 | robot1_tf/base_scan: 168 | {} 169 | robot1_tf/caster_back_link: 170 | {} 171 | robot1_tf/imu_link: 172 | {} 173 | robot1_tf/wheel_left_link: 174 | {} 175 | robot1_tf/wheel_right_link: 176 | {} 177 | robot2_tf/odom: 178 | robot2_tf/base_footprint: 179 | robot2_tf/base_link: 180 | robot2_tf/base_scan: 181 | {} 182 | robot2_tf/caster_back_link: 183 | {} 184 | robot2_tf/imu_link: 185 | {} 186 | robot2_tf/wheel_left_link: 187 | {} 188 | robot2_tf/wheel_right_link: 189 | {} 190 | robot3_tf/odom: 191 | robot3_tf/base_footprint: 192 | robot3_tf/base_link: 193 | robot3_tf/base_scan: 194 | {} 195 | robot3_tf/caster_back_link: 196 | {} 197 | robot3_tf/imu_link: 198 | {} 199 | robot3_tf/wheel_left_link: 200 | {} 201 | robot3_tf/wheel_right_link: 202 | {} 203 | Update Interval: 0 204 | Value: true 205 | - Alpha: 0.699999988 206 | Class: rviz/Map 207 | Color Scheme: map 208 | Draw Behind: false 209 | Enabled: true 210 | Name: Map 211 | Topic: /map 212 | Unreliable: false 213 | Use Timestamp: false 214 | Value: true 215 | - Alpha: 1 216 | Class: rviz/RobotModel 217 | Collision Enabled: false 218 | Enabled: true 219 | Links: 220 | All Links Enabled: true 221 | Expand Joint Details: false 222 | Expand Link Details: false 223 | Expand Tree: false 224 | Link Tree Style: "" 225 | base_footprint: 226 | Alpha: 1 227 | Show Axes: false 228 | Show Trail: false 229 | base_link: 230 | Alpha: 1 231 | Show Axes: false 232 | Show Trail: false 233 | Value: true 234 | base_scan: 235 | Alpha: 1 236 | Show Axes: false 237 | Show Trail: false 238 | Value: true 239 | caster_back_link: 240 | Alpha: 1 241 | Show Axes: false 242 | Show Trail: false 243 | Value: true 244 | imu_link: 245 | Alpha: 1 246 | Show Axes: false 247 | Show Trail: false 248 | wheel_left_link: 249 | Alpha: 1 250 | Show Axes: false 251 | Show Trail: false 252 | Value: true 253 | wheel_right_link: 254 | Alpha: 1 255 | Show Axes: false 256 | Show Trail: false 257 | Value: true 258 | Name: RobotModel 259 | Robot Description: robot_description 260 | TF Prefix: robot2_tf 261 | Update Interval: 0 262 | Value: true 263 | Visual Enabled: true 264 | - Alpha: 1 265 | Class: rviz/RobotModel 266 | Collision Enabled: false 267 | Enabled: true 268 | Links: 269 | All Links Enabled: true 270 | Expand Joint Details: false 271 | Expand Link Details: false 272 | Expand Tree: false 273 | Link Tree Style: "" 274 | base_footprint: 275 | Alpha: 1 276 | Show Axes: false 277 | Show Trail: false 278 | base_link: 279 | Alpha: 1 280 | Show Axes: false 281 | Show Trail: false 282 | Value: true 283 | base_scan: 284 | Alpha: 1 285 | Show Axes: false 286 | Show Trail: false 287 | Value: true 288 | caster_back_link: 289 | Alpha: 1 290 | Show Axes: false 291 | Show Trail: false 292 | Value: true 293 | imu_link: 294 | Alpha: 1 295 | Show Axes: false 296 | Show Trail: false 297 | wheel_left_link: 298 | Alpha: 1 299 | Show Axes: false 300 | Show Trail: false 301 | Value: true 302 | wheel_right_link: 303 | Alpha: 1 304 | Show Axes: false 305 | Show Trail: false 306 | Value: true 307 | Name: RobotModel 308 | Robot Description: robot_description 309 | TF Prefix: robot3_tf 310 | Update Interval: 0 311 | Value: true 312 | Visual Enabled: true 313 | - Alpha: 1 314 | Axes Length: 1 315 | Axes Radius: 0.100000001 316 | Class: rviz/PoseWithCovariance 317 | Color: 255; 25; 0 318 | Covariance: 319 | Orientation: 320 | Alpha: 0.5 321 | Color: 255; 255; 127 322 | Color Style: Unique 323 | Frame: Local 324 | Offset: 1 325 | Scale: 1 326 | Value: true 327 | Position: 328 | Alpha: 0.300000012 329 | Color: 204; 51; 204 330 | Scale: 1 331 | Value: true 332 | Value: true 333 | Enabled: false 334 | Head Length: 0.300000012 335 | Head Radius: 0.100000001 336 | Name: PoseWithCovariance 337 | Shaft Length: 1 338 | Shaft Radius: 0.0500000007 339 | Shape: Arrow 340 | Topic: /robot1/amcl_pose 341 | Unreliable: false 342 | Value: false 343 | - Alpha: 1 344 | Axes Length: 1 345 | Axes Radius: 0.100000001 346 | Class: rviz/PoseWithCovariance 347 | Color: 255; 25; 0 348 | Covariance: 349 | Orientation: 350 | Alpha: 0.5 351 | Color: 255; 255; 127 352 | Color Style: Unique 353 | Frame: Local 354 | Offset: 1 355 | Scale: 1 356 | Value: true 357 | Position: 358 | Alpha: 0.300000012 359 | Color: 204; 51; 204 360 | Scale: 1 361 | Value: true 362 | Value: true 363 | Enabled: false 364 | Head Length: 0.300000012 365 | Head Radius: 0.100000001 366 | Name: PoseWithCovariance 367 | Shaft Length: 1 368 | Shaft Radius: 0.0500000007 369 | Shape: Arrow 370 | Topic: /robot2/amcl_pose 371 | Unreliable: false 372 | Value: false 373 | - Alpha: 1 374 | Axes Length: 1 375 | Axes Radius: 0.100000001 376 | Class: rviz/PoseWithCovariance 377 | Color: 255; 25; 0 378 | Covariance: 379 | Orientation: 380 | Alpha: 0.5 381 | Color: 255; 255; 127 382 | Color Style: Unique 383 | Frame: Local 384 | Offset: 1 385 | Scale: 1 386 | Value: true 387 | Position: 388 | Alpha: 0.300000012 389 | Color: 204; 51; 204 390 | Scale: 1 391 | Value: true 392 | Value: true 393 | Enabled: false 394 | Head Length: 0.300000012 395 | Head Radius: 0.100000001 396 | Name: PoseWithCovariance 397 | Shaft Length: 1 398 | Shaft Radius: 0.0500000007 399 | Shape: Arrow 400 | Topic: /robot3/amcl_pose 401 | Unreliable: false 402 | Value: false 403 | - Alpha: 1 404 | Arrow Length: 0.300000012 405 | Axes Length: 0.300000012 406 | Axes Radius: 0.00999999978 407 | Class: rviz/PoseArray 408 | Color: 255; 25; 0 409 | Enabled: true 410 | Head Length: 0.0700000003 411 | Head Radius: 0.0299999993 412 | Name: PoseArray 413 | Shaft Length: 0.230000004 414 | Shaft Radius: 0.00999999978 415 | Shape: Arrow (Flat) 416 | Topic: /robot3/particlecloud 417 | Unreliable: false 418 | Value: true 419 | - Alpha: 1 420 | Arrow Length: 0.300000012 421 | Axes Length: 0.300000012 422 | Axes Radius: 0.00999999978 423 | Class: rviz/PoseArray 424 | Color: 255; 25; 0 425 | Enabled: true 426 | Head Length: 0.0700000003 427 | Head Radius: 0.0299999993 428 | Name: PoseArray 429 | Shaft Length: 0.230000004 430 | Shaft Radius: 0.00999999978 431 | Shape: Arrow (Flat) 432 | Topic: /robot2/particlecloud 433 | Unreliable: false 434 | Value: true 435 | - Alpha: 1 436 | Arrow Length: 0.300000012 437 | Axes Length: 0.300000012 438 | Axes Radius: 0.00999999978 439 | Class: rviz/PoseArray 440 | Color: 255; 25; 0 441 | Enabled: true 442 | Head Length: 0.0700000003 443 | Head Radius: 0.0299999993 444 | Name: PoseArray 445 | Shaft Length: 0.230000004 446 | Shaft Radius: 0.00999999978 447 | Shape: Arrow (Flat) 448 | Topic: /robot1/particlecloud 449 | Unreliable: false 450 | Value: true 451 | - Alpha: 1 452 | Class: rviz/Polygon 453 | Color: 25; 255; 0 454 | Enabled: false 455 | Name: Polygon 456 | Topic: /robot1/move_base/global_costmap/footprint 457 | Unreliable: false 458 | Value: false 459 | - Alpha: 1 460 | Class: rviz/Polygon 461 | Color: 25; 255; 0 462 | Enabled: false 463 | Name: Polygon 464 | Topic: /move_base2/global_costmap/footprint 465 | Unreliable: false 466 | Value: false 467 | - Alpha: 0.699999988 468 | Class: rviz/Map 469 | Color Scheme: map 470 | Draw Behind: false 471 | Enabled: true 472 | Name: Map 473 | Topic: /robot1/move_base/local_costmap/costmap 474 | Unreliable: false 475 | Use Timestamp: false 476 | Value: true 477 | - Alpha: 0.699999988 478 | Class: rviz/Map 479 | Color Scheme: map 480 | Draw Behind: false 481 | Enabled: true 482 | Name: Map 483 | Topic: /move_base2/local_costmap/costmap 484 | Unreliable: false 485 | Use Timestamp: false 486 | Value: true 487 | - Alpha: 0.699999988 488 | Class: rviz/Map 489 | Color Scheme: map 490 | Draw Behind: false 491 | Enabled: true 492 | Name: Map 493 | Topic: /move_base3/local_costmap/costmap 494 | Unreliable: false 495 | Use Timestamp: false 496 | Value: true 497 | - Alpha: 0.699999988 498 | Class: rviz/Map 499 | Color Scheme: map 500 | Draw Behind: true 501 | Enabled: true 502 | Name: Map 503 | Topic: /robot1/move_base/global_costmap/costmap 504 | Unreliable: false 505 | Use Timestamp: false 506 | Value: true 507 | - Alpha: 0.699999988 508 | Class: rviz/Map 509 | Color Scheme: map 510 | Draw Behind: true 511 | Enabled: true 512 | Name: Map 513 | Topic: /move_base2/global_costmap/costmap 514 | Unreliable: false 515 | Use Timestamp: false 516 | Value: true 517 | - Alpha: 0.699999988 518 | Class: rviz/Map 519 | Color Scheme: map 520 | Draw Behind: true 521 | Enabled: true 522 | Name: Map 523 | Topic: /move_base3/global_costmap/costmap 524 | Unreliable: false 525 | Use Timestamp: false 526 | Value: true 527 | Enabled: true 528 | Global Options: 529 | Background Color: 48; 48; 48 530 | Default Light: true 531 | Fixed Frame: map 532 | Frame Rate: 30 533 | Name: root 534 | Tools: 535 | - Class: rviz/Interact 536 | Hide Inactive Objects: true 537 | - Class: rviz/MoveCamera 538 | - Class: rviz/Select 539 | - Class: rviz/FocusCamera 540 | - Class: rviz/Measure 541 | - Class: rviz/SetInitialPose 542 | Topic: /initialpose 543 | - Class: rviz/SetGoal 544 | Topic: /move_base_simple/goal 545 | - Class: rviz/PublishPoint 546 | Single click: true 547 | Topic: /clicked_point 548 | Value: true 549 | Views: 550 | Current: 551 | Class: rviz/Orbit 552 | Distance: 12.3108959 553 | Enable Stereo Rendering: 554 | Stereo Eye Separation: 0.0599999987 555 | Stereo Focal Distance: 1 556 | Swap Stereo Eyes: false 557 | Value: false 558 | Focal Point: 559 | X: 0.0800805166 560 | Y: -0.375302702 561 | Z: 0.0137263061 562 | Focal Shape Fixed Size: true 563 | Focal Shape Size: 0.0500000007 564 | Invert Z Axis: false 565 | Name: Current View 566 | Near Clip Distance: 0.00999999978 567 | Pitch: 0.61979717 568 | Target Frame: 569 | Value: Orbit (rviz) 570 | Yaw: 2.68407249 571 | Saved: ~ 572 | Window Geometry: 573 | Displays: 574 | collapsed: false 575 | Height: 846 576 | Hide Left Dock: false 577 | Hide Right Dock: false 578 | QMainWindow State: 000000ff00000000fd00000004000000000000016a000002c4fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006100fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000028000002c4000000d700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002c4fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000028000002c4000000ad00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000030000fffffffb0000000800540069006d006501000000000000045000000000000000000000022b000002c400000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 579 | Selection: 580 | collapsed: false 581 | Time: 582 | collapsed: false 583 | Tool Properties: 584 | collapsed: false 585 | Views: 586 | collapsed: false 587 | Width: 1200 588 | X: 126 589 | Y: 82 590 | -------------------------------------------------------------------------------- /map_launcher/rviz/turtlebot3_navigation.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Global Options1 8 | - /TF1/Frames1 9 | - /TF1/Tree1 10 | - /Planner Plan1/Status1 11 | - /Local Map1/Costmap1/Status1 12 | - /Local Map1/Planner1/Status1 13 | Splitter Ratio: 0.5 14 | Tree Height: 843 15 | - Class: rviz/Selection 16 | Name: Selection 17 | - Class: rviz/Tool Properties 18 | Expanded: 19 | - /2D Pose Estimate1 20 | - /2D Nav Goal1 21 | Name: Tool Properties 22 | Splitter Ratio: 0.588679016 23 | - Class: rviz/Views 24 | Expanded: 25 | - /Current View1 26 | Name: Views 27 | Splitter Ratio: 0.5 28 | - Class: rviz/Time 29 | Experimental: false 30 | Name: Time 31 | SyncMode: 0 32 | SyncSource: LaserScan 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Alpha: 0.5 39 | Cell Size: 1 40 | Class: rviz/Grid 41 | Color: 160; 160; 164 42 | Enabled: true 43 | Line Style: 44 | Line Width: 0.0299999993 45 | Value: Lines 46 | Name: Grid 47 | Normal Cell Count: 0 48 | Offset: 49 | X: 0 50 | Y: 0 51 | Z: 0 52 | Plane: XY 53 | Plane Cell Count: 20 54 | Reference Frame: 55 | Value: true 56 | - Alpha: 1 57 | Class: rviz/RobotModel 58 | Collision Enabled: false 59 | Enabled: true 60 | Links: 61 | All Links Enabled: true 62 | Expand Joint Details: false 63 | Expand Link Details: false 64 | Expand Tree: false 65 | Link Tree Style: Links in Alphabetic Order 66 | base_footprint: 67 | Alpha: 1 68 | Show Axes: false 69 | Show Trail: false 70 | base_link: 71 | Alpha: 1 72 | Show Axes: false 73 | Show Trail: false 74 | Value: true 75 | base_scan: 76 | Alpha: 1 77 | Show Axes: false 78 | Show Trail: false 79 | Value: true 80 | caster_back_link: 81 | Alpha: 1 82 | Show Axes: false 83 | Show Trail: false 84 | Value: true 85 | imu_link: 86 | Alpha: 1 87 | Show Axes: false 88 | Show Trail: false 89 | wheel_left_link: 90 | Alpha: 1 91 | Show Axes: false 92 | Show Trail: false 93 | Value: true 94 | wheel_right_link: 95 | Alpha: 1 96 | Show Axes: false 97 | Show Trail: false 98 | Value: true 99 | Name: RobotModel 100 | Robot Description: robot_description 101 | TF Prefix: robot1_tf 102 | Update Interval: 0 103 | Value: true 104 | Visual Enabled: true 105 | - Alpha: 1 106 | Class: rviz/RobotModel 107 | Collision Enabled: false 108 | Enabled: true 109 | Links: 110 | All Links Enabled: true 111 | Expand Joint Details: false 112 | Expand Link Details: false 113 | Expand Tree: false 114 | Link Tree Style: Links in Alphabetic Order 115 | base_footprint: 116 | Alpha: 1 117 | Show Axes: false 118 | Show Trail: false 119 | base_link: 120 | Alpha: 1 121 | Show Axes: false 122 | Show Trail: false 123 | Value: true 124 | base_scan: 125 | Alpha: 1 126 | Show Axes: false 127 | Show Trail: false 128 | Value: true 129 | caster_back_link: 130 | Alpha: 1 131 | Show Axes: false 132 | Show Trail: false 133 | Value: true 134 | imu_link: 135 | Alpha: 1 136 | Show Axes: false 137 | Show Trail: false 138 | wheel_left_link: 139 | Alpha: 1 140 | Show Axes: false 141 | Show Trail: false 142 | Value: true 143 | wheel_right_link: 144 | Alpha: 1 145 | Show Axes: false 146 | Show Trail: false 147 | Value: true 148 | Name: RobotModel 149 | Robot Description: robot_description 150 | TF Prefix: robot2_tf 151 | Update Interval: 0 152 | Value: true 153 | Visual Enabled: true 154 | - Alpha: 1 155 | Class: rviz/RobotModel 156 | Collision Enabled: false 157 | Enabled: true 158 | Links: 159 | All Links Enabled: true 160 | Expand Joint Details: false 161 | Expand Link Details: false 162 | Expand Tree: false 163 | Link Tree Style: Links in Alphabetic Order 164 | base_footprint: 165 | Alpha: 1 166 | Show Axes: false 167 | Show Trail: false 168 | base_link: 169 | Alpha: 1 170 | Show Axes: false 171 | Show Trail: false 172 | Value: true 173 | base_scan: 174 | Alpha: 1 175 | Show Axes: false 176 | Show Trail: false 177 | Value: true 178 | caster_back_link: 179 | Alpha: 1 180 | Show Axes: false 181 | Show Trail: false 182 | Value: true 183 | imu_link: 184 | Alpha: 1 185 | Show Axes: false 186 | Show Trail: false 187 | wheel_left_link: 188 | Alpha: 1 189 | Show Axes: false 190 | Show Trail: false 191 | Value: true 192 | wheel_right_link: 193 | Alpha: 1 194 | Show Axes: false 195 | Show Trail: false 196 | Value: true 197 | Name: RobotModel 198 | Robot Description: robot_description 199 | TF Prefix: robot3_tf 200 | Update Interval: 0 201 | Value: true 202 | Visual Enabled: true 203 | - Class: rviz/TF 204 | Enabled: false 205 | Frame Timeout: 15 206 | Frames: 207 | All Enabled: false 208 | Marker Scale: 1 209 | Name: TF 210 | Show Arrows: true 211 | Show Axes: true 212 | Show Names: false 213 | Tree: 214 | {} 215 | Update Interval: 0 216 | Value: false 217 | - Alpha: 1 218 | Autocompute Intensity Bounds: true 219 | Autocompute Value Bounds: 220 | Max Value: 10 221 | Min Value: -10 222 | Value: true 223 | Axis: Z 224 | Channel Name: intensity 225 | Class: rviz/LaserScan 226 | Color: 0; 255; 0 227 | Color Transformer: FlatColor 228 | Decay Time: 0 229 | Enabled: true 230 | Invert Rainbow: false 231 | Max Color: 255; 255; 255 232 | Max Intensity: 13069 233 | Min Color: 0; 0; 0 234 | Min Intensity: 28 235 | Name: LaserScan 236 | Position Transformer: XYZ 237 | Queue Size: 10 238 | Selectable: true 239 | Size (Pixels): 3 240 | Size (m): 0.0300000012 241 | Style: Flat Squares 242 | Topic: /robot1/scan 243 | Unreliable: false 244 | Use Fixed Frame: true 245 | Use rainbow: true 246 | Value: true 247 | - Alpha: 1 248 | Autocompute Intensity Bounds: true 249 | Autocompute Value Bounds: 250 | Max Value: 10 251 | Min Value: -10 252 | Value: true 253 | Axis: Z 254 | Channel Name: intensity 255 | Class: rviz/LaserScan 256 | Color: 0; 255; 0 257 | Color Transformer: FlatColor 258 | Decay Time: 0 259 | Enabled: true 260 | Invert Rainbow: false 261 | Max Color: 255; 255; 255 262 | Max Intensity: 13069 263 | Min Color: 0; 0; 0 264 | Min Intensity: 28 265 | Name: LaserScan 266 | Position Transformer: XYZ 267 | Queue Size: 10 268 | Selectable: true 269 | Size (Pixels): 3 270 | Size (m): 0.0300000012 271 | Style: Flat Squares 272 | Topic: /robot2/scan 273 | Unreliable: false 274 | Use Fixed Frame: true 275 | Use rainbow: true 276 | Value: true 277 | - Alpha: 1 278 | Autocompute Intensity Bounds: true 279 | Autocompute Value Bounds: 280 | Max Value: 10 281 | Min Value: -10 282 | Value: true 283 | Axis: Z 284 | Channel Name: intensity 285 | Class: rviz/LaserScan 286 | Color: 0; 255; 0 287 | Color Transformer: FlatColor 288 | Decay Time: 0 289 | Enabled: true 290 | Invert Rainbow: false 291 | Max Color: 255; 255; 255 292 | Max Intensity: 13069 293 | Min Color: 0; 0; 0 294 | Min Intensity: 28 295 | Name: LaserScan 296 | Position Transformer: XYZ 297 | Queue Size: 10 298 | Selectable: true 299 | Size (Pixels): 3 300 | Size (m): 0.0300000012 301 | Style: Flat Squares 302 | Topic: /robot3/scan 303 | Unreliable: false 304 | Use Fixed Frame: true 305 | Use rainbow: true 306 | Value: true 307 | - Class: rviz/Image 308 | Enabled: false 309 | Image Topic: /raspicam_node/image 310 | Max Value: 1 311 | Median window: 5 312 | Min Value: 0 313 | Name: Image 314 | Normalize Range: true 315 | Queue Size: 2 316 | Transport Hint: compressed 317 | Unreliable: false 318 | Value: false 319 | - Alpha: 0.699999988 320 | Class: rviz/Map 321 | Color Scheme: map 322 | Draw Behind: false 323 | Enabled: true 324 | Name: Map 325 | Topic: /map 326 | Unreliable: false 327 | Use Timestamp: false 328 | Value: true 329 | - Alpha: 1 330 | Buffer Length: 1 331 | Class: rviz/Path 332 | Color: 0; 0; 0 333 | Enabled: true 334 | Head Diameter: 0.300000012 335 | Head Length: 0.200000003 336 | Length: 0.300000012 337 | Line Style: Lines 338 | Line Width: 0.0299999993 339 | Name: Planner Plan 340 | Offset: 341 | X: 0 342 | Y: 0 343 | Z: 0 344 | Pose Color: 255; 85; 255 345 | Pose Style: None 346 | Radius: 0.0299999993 347 | Shaft Diameter: 0.100000001 348 | Shaft Length: 0.100000001 349 | Topic: /move_base/NavfnROS/plan 350 | Unreliable: false 351 | Value: true 352 | - Alpha: 1 353 | Buffer Length: 1 354 | Class: rviz/Path 355 | Color: 0; 0; 0 356 | Enabled: true 357 | Head Diameter: 0.300000012 358 | Head Length: 0.200000003 359 | Length: 0.300000012 360 | Line Style: Lines 361 | Line Width: 0.0299999993 362 | Name: Planner Plan 363 | Offset: 364 | X: 0 365 | Y: 0 366 | Z: 0 367 | Pose Color: 255; 85; 255 368 | Pose Style: None 369 | Radius: 0.0299999993 370 | Shaft Diameter: 0.100000001 371 | Shaft Length: 0.100000001 372 | Topic: /move_base2/NavfnROS/plan 373 | Unreliable: false 374 | Value: true 375 | - Alpha: 1 376 | Buffer Length: 1 377 | Class: rviz/Path 378 | Color: 0; 0; 0 379 | Enabled: true 380 | Head Diameter: 0.300000012 381 | Head Length: 0.200000003 382 | Length: 0.300000012 383 | Line Style: Lines 384 | Line Width: 0.0299999993 385 | Name: Planner Plan 386 | Offset: 387 | X: 0 388 | Y: 0 389 | Z: 0 390 | Pose Color: 255; 85; 255 391 | Pose Style: None 392 | Radius: 0.0299999993 393 | Shaft Diameter: 0.100000001 394 | Shaft Length: 0.100000001 395 | Topic: /move_base3/NavfnROS/plan 396 | Unreliable: false 397 | Value: true 398 | - Class: rviz/Group 399 | Displays: 400 | - Alpha: 0.699999988 401 | Class: rviz/Map 402 | Color Scheme: costmap 403 | Draw Behind: true 404 | Enabled: true 405 | Name: Costmap 406 | Topic: /robot1/move_base/global_costmap/costmap 407 | Unreliable: false 408 | Use Timestamp: false 409 | Value: true 410 | - Alpha: 0.699999988 411 | Class: rviz/Map 412 | Color Scheme: costmap 413 | Draw Behind: true 414 | Enabled: true 415 | Name: Costmap 416 | Topic: /move_base2/global_costmap/costmap 417 | Unreliable: false 418 | Use Timestamp: false 419 | Value: true 420 | - Alpha: 0.699999988 421 | Class: rviz/Map 422 | Color Scheme: costmap 423 | Draw Behind: true 424 | Enabled: true 425 | Name: Costmap 426 | Topic: /move_base3/global_costmap/costmap 427 | Unreliable: false 428 | Use Timestamp: false 429 | Value: true 430 | - Alpha: 1 431 | Buffer Length: 1 432 | Class: rviz/Path 433 | Color: 255; 0; 0 434 | Enabled: true 435 | Head Diameter: 0.300000012 436 | Head Length: 0.200000003 437 | Length: 0.300000012 438 | Line Style: Lines 439 | Line Width: 0.0299999993 440 | Name: Planner 441 | Offset: 442 | X: 0 443 | Y: 0 444 | Z: 0 445 | Pose Color: 255; 85; 255 446 | Pose Style: None 447 | Radius: 0.0299999993 448 | Shaft Diameter: 0.100000001 449 | Shaft Length: 0.100000001 450 | Topic: /move_base/DWAPlannerROS/global_plan 451 | Unreliable: false 452 | Value: true 453 | - Alpha: 1 454 | Buffer Length: 1 455 | Class: rviz/Path 456 | Color: 255; 0; 0 457 | Enabled: true 458 | Head Diameter: 0.300000012 459 | Head Length: 0.200000003 460 | Length: 0.300000012 461 | Line Style: Lines 462 | Line Width: 0.0299999993 463 | Name: Planner 464 | Offset: 465 | X: 0 466 | Y: 0 467 | Z: 0 468 | Pose Color: 255; 85; 255 469 | Pose Style: None 470 | Radius: 0.0299999993 471 | Shaft Diameter: 0.100000001 472 | Shaft Length: 0.100000001 473 | Topic: /move_base2/DWAPlannerROS/global_plan 474 | Unreliable: false 475 | Value: true 476 | - Alpha: 1 477 | Buffer Length: 1 478 | Class: rviz/Path 479 | Color: 255; 0; 0 480 | Enabled: true 481 | Head Diameter: 0.300000012 482 | Head Length: 0.200000003 483 | Length: 0.300000012 484 | Line Style: Lines 485 | Line Width: 0.0299999993 486 | Name: Planner 487 | Offset: 488 | X: 0 489 | Y: 0 490 | Z: 0 491 | Pose Color: 255; 85; 255 492 | Pose Style: None 493 | Radius: 0.0299999993 494 | Shaft Diameter: 0.100000001 495 | Shaft Length: 0.100000001 496 | Topic: /move_base3/DWAPlannerROS/global_plan 497 | Unreliable: false 498 | Value: true 499 | Enabled: true 500 | Name: Global Map 501 | - Class: rviz/Group 502 | Displays: 503 | - Alpha: 1 504 | Class: rviz/Polygon 505 | Color: 0; 0; 0 506 | Enabled: true 507 | Name: Polygon 508 | Topic: /robot1/move_base/local_costmap/footprint 509 | Unreliable: false 510 | Value: true 511 | - Alpha: 1 512 | Class: rviz/Polygon 513 | Color: 0; 0; 0 514 | Enabled: true 515 | Name: Polygon 516 | Topic: /move_base2/local_costmap/footprint 517 | Unreliable: false 518 | Value: true 519 | - Alpha: 1 520 | Class: rviz/Polygon 521 | Color: 0; 0; 0 522 | Enabled: true 523 | Name: Polygon 524 | Topic: /move_base3/local_costmap/footprint 525 | Unreliable: false 526 | Value: true 527 | - Alpha: 0.699999988 528 | Class: rviz/Map 529 | Color Scheme: costmap 530 | Draw Behind: false 531 | Enabled: true 532 | Name: Costmap 533 | Topic: /robot1/move_base/local_costmap/costmap 534 | Unreliable: false 535 | Use Timestamp: false 536 | Value: true 537 | - Alpha: 0.699999988 538 | Class: rviz/Map 539 | Color Scheme: costmap 540 | Draw Behind: false 541 | Enabled: true 542 | Name: Costmap 543 | Topic: /move_base2/local_costmap/costmap 544 | Unreliable: false 545 | Use Timestamp: false 546 | Value: true 547 | - Alpha: 0.699999988 548 | Class: rviz/Map 549 | Color Scheme: costmap 550 | Draw Behind: false 551 | Enabled: true 552 | Name: Costmap 553 | Topic: /move_base3/local_costmap/costmap 554 | Unreliable: false 555 | Use Timestamp: false 556 | Value: true 557 | - Alpha: 1 558 | Buffer Length: 1 559 | Class: rviz/Path 560 | Color: 255; 255; 0 561 | Enabled: true 562 | Head Diameter: 0.300000012 563 | Head Length: 0.200000003 564 | Length: 0.300000012 565 | Line Style: Lines 566 | Line Width: 0.0299999993 567 | Name: Planner 568 | Offset: 569 | X: 0 570 | Y: 0 571 | Z: 0 572 | Pose Color: 255; 85; 255 573 | Pose Style: None 574 | Radius: 0.0299999993 575 | Shaft Diameter: 0.100000001 576 | Shaft Length: 0.100000001 577 | Topic: /move_base/DWAPlannerROS/local_plan 578 | Unreliable: false 579 | Value: true 580 | - Alpha: 1 581 | Buffer Length: 1 582 | Class: rviz/Path 583 | Color: 255; 255; 0 584 | Enabled: true 585 | Head Diameter: 0.300000012 586 | Head Length: 0.200000003 587 | Length: 0.300000012 588 | Line Style: Lines 589 | Line Width: 0.0299999993 590 | Name: Planner 591 | Offset: 592 | X: 0 593 | Y: 0 594 | Z: 0 595 | Pose Color: 255; 85; 255 596 | Pose Style: None 597 | Radius: 0.0299999993 598 | Shaft Diameter: 0.100000001 599 | Shaft Length: 0.100000001 600 | Topic: /move_base2/DWAPlannerROS/local_plan 601 | Unreliable: false 602 | Value: true 603 | - Alpha: 1 604 | Buffer Length: 1 605 | Class: rviz/Path 606 | Color: 255; 255; 0 607 | Enabled: true 608 | Head Diameter: 0.300000012 609 | Head Length: 0.200000003 610 | Length: 0.300000012 611 | Line Style: Lines 612 | Line Width: 0.0299999993 613 | Name: Planner 614 | Offset: 615 | X: 0 616 | Y: 0 617 | Z: 0 618 | Pose Color: 255; 85; 255 619 | Pose Style: None 620 | Radius: 0.0299999993 621 | Shaft Diameter: 0.100000001 622 | Shaft Length: 0.100000001 623 | Topic: /move_base3/DWAPlannerROS/local_plan 624 | Unreliable: false 625 | Value: true 626 | Enabled: true 627 | Name: Local Map 628 | - Alpha: 1 629 | Arrow Length: 0.0500000007 630 | Axes Length: 0.300000012 631 | Axes Radius: 0.00999999978 632 | Class: rviz/PoseArray 633 | Color: 0; 192; 0 634 | Enabled: true 635 | Head Length: 0.0700000003 636 | Head Radius: 0.0299999993 637 | Name: Amcl Particles 638 | Shaft Length: 0.230000004 639 | Shaft Radius: 0.00999999978 640 | Shape: Arrow (Flat) 641 | Topic: /robot1/particlecloud 642 | Unreliable: false 643 | Value: true 644 | - Alpha: 1 645 | Arrow Length: 0.0500000007 646 | Axes Length: 0.300000012 647 | Axes Radius: 0.00999999978 648 | Class: rviz/PoseArray 649 | Color: 0; 192; 0 650 | Enabled: true 651 | Head Length: 0.0700000003 652 | Head Radius: 0.0299999993 653 | Name: Amcl Particles 654 | Shaft Length: 0.230000004 655 | Shaft Radius: 0.00999999978 656 | Shape: Arrow (Flat) 657 | Topic: /robot2/particlecloud 658 | Unreliable: false 659 | Value: true 660 | - Alpha: 1 661 | Arrow Length: 0.0500000007 662 | Axes Length: 0.300000012 663 | Axes Radius: 0.00999999978 664 | Class: rviz/PoseArray 665 | Color: 0; 192; 0 666 | Enabled: true 667 | Head Length: 0.0700000003 668 | Head Radius: 0.0299999993 669 | Name: Amcl Particles 670 | Shaft Length: 0.230000004 671 | Shaft Radius: 0.00999999978 672 | Shape: Arrow (Flat) 673 | Topic: /robot3/particlecloud 674 | Unreliable: false 675 | Value: true 676 | - Alpha: 1 677 | Axes Length: 1 678 | Axes Radius: 0.100000001 679 | Class: rviz/Pose 680 | Color: 255; 25; 0 681 | Enabled: true 682 | Head Length: 0.300000012 683 | Head Radius: 0.100000001 684 | Name: Goal 685 | Shaft Length: 0.5 686 | Shaft Radius: 0.0500000007 687 | Shape: Arrow 688 | Topic: /robot1/move_base/current_goal 689 | Unreliable: false 690 | Value: true 691 | - Alpha: 1 692 | Axes Length: 1 693 | Axes Radius: 0.100000001 694 | Class: rviz/Pose 695 | Color: 255; 25; 0 696 | Enabled: true 697 | Head Length: 0.300000012 698 | Head Radius: 0.100000001 699 | Name: Goal 700 | Shaft Length: 0.5 701 | Shaft Radius: 0.0500000007 702 | Shape: Arrow 703 | Topic: /move_base2/current_goal 704 | Unreliable: false 705 | Value: true 706 | - Alpha: 1 707 | Axes Length: 1 708 | Axes Radius: 0.100000001 709 | Class: rviz/Pose 710 | Color: 255; 25; 0 711 | Enabled: true 712 | Head Length: 0.300000012 713 | Head Radius: 0.100000001 714 | Name: Goal 715 | Shaft Length: 0.5 716 | Shaft Radius: 0.0500000007 717 | Shape: Arrow 718 | Topic: /move_base3/current_goal 719 | Unreliable: false 720 | Value: true 721 | Enabled: true 722 | Global Options: 723 | Background Color: 48; 48; 48 724 | Default Light: true 725 | Fixed Frame: map 726 | Frame Rate: 30 727 | Name: root 728 | Tools: 729 | - Class: rviz/MoveCamera 730 | - Class: rviz/Interact 731 | Hide Inactive Objects: true 732 | - Class: rviz/Select 733 | - Class: rviz/SetInitialPose 734 | Topic: /initialpose 735 | - Class: rviz/SetGoal 736 | Topic: /move_base_simple/goal 737 | - Class: rviz/Measure 738 | Value: true 739 | Views: 740 | Current: 741 | Angle: -1.57079637 742 | Class: rviz/TopDownOrtho 743 | Enable Stereo Rendering: 744 | Stereo Eye Separation: 0.0599999987 745 | Stereo Focal Distance: 1 746 | Swap Stereo Eyes: false 747 | Value: false 748 | Invert Z Axis: false 749 | Name: Current View 750 | Near Clip Distance: 0.00999999978 751 | Scale: 85.252594 752 | Target Frame: 753 | Value: TopDownOrtho (rviz) 754 | X: 0 755 | Y: 0 756 | Saved: ~ 757 | Window Geometry: 758 | Displays: 759 | collapsed: false 760 | Height: 1056 761 | Hide Left Dock: false 762 | Hide Right Dock: true 763 | Image: 764 | collapsed: false 765 | QMainWindow State: 000000ff00000000fd00000004000000000000016a000003dafc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006100fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000028000003da000000d700fffffffb0000000a0049006d0061006700650000000317000000cc0000001600fffffffb0000000a0049006d0061006700650000000330000000ce0000000000000000000000010000010f000003a0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730000000043000003a0000000ad00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004a00000003efc0100000002fb0000000800540069006d00650000000000000004a00000030000fffffffb0000000800540069006d00650100000000000004500000000000000000000005c7000003da00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 766 | Selection: 767 | collapsed: false 768 | Time: 769 | collapsed: false 770 | Tool Properties: 771 | collapsed: false 772 | Views: 773 | collapsed: true 774 | Width: 1847 775 | X: 73 776 | Y: 24 777 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(multi_turtlebots_nav) 3 | 4 | ## Compile as C++11, supported in ROS Kinetic and newer 5 | # add_compile_options(-std=c++11) 6 | 7 | ## Find catkin macros and libraries 8 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 9 | ## is used, also find other catkin packages 10 | find_package(catkin REQUIRED COMPONENTS 11 | rospy 12 | ) 13 | 14 | ## System dependencies are found with CMake's conventions 15 | # find_package(Boost REQUIRED COMPONENTS system) 16 | 17 | 18 | ## Uncomment this if the package has a setup.py. This macro ensures 19 | ## modules and global scripts declared therein get installed 20 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 21 | # catkin_python_setup() 22 | 23 | ################################################ 24 | ## Declare ROS messages, services and actions ## 25 | ################################################ 26 | 27 | ## To declare and build messages, services or actions from within this 28 | ## package, follow these steps: 29 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 30 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 31 | ## * In the file package.xml: 32 | ## * add a build_depend tag for "message_generation" 33 | ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET 34 | ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in 35 | ## but can be declared for certainty nonetheless: 36 | ## * add a exec_depend tag for "message_runtime" 37 | ## * In this file (CMakeLists.txt): 38 | ## * add "message_generation" and every package in MSG_DEP_SET to 39 | ## find_package(catkin REQUIRED COMPONENTS ...) 40 | ## * add "message_runtime" and every package in MSG_DEP_SET to 41 | ## catkin_package(CATKIN_DEPENDS ...) 42 | ## * uncomment the add_*_files sections below as needed 43 | ## and list every .msg/.srv/.action file to be processed 44 | ## * uncomment the generate_messages entry below 45 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 46 | 47 | ## Generate messages in the 'msg' folder 48 | # add_message_files( 49 | # FILES 50 | # Message1.msg 51 | # Message2.msg 52 | # ) 53 | 54 | ## Generate services in the 'srv' folder 55 | # add_service_files( 56 | # FILES 57 | # Service1.srv 58 | # Service2.srv 59 | # ) 60 | 61 | ## Generate actions in the 'action' folder 62 | # add_action_files( 63 | # FILES 64 | # Action1.action 65 | # Action2.action 66 | # ) 67 | 68 | ## Generate added messages and services with any dependencies listed here 69 | # generate_messages( 70 | # DEPENDENCIES 71 | # std_msgs # Or other packages containing msgs 72 | # ) 73 | 74 | ################################################ 75 | ## Declare ROS dynamic reconfigure parameters ## 76 | ################################################ 77 | 78 | ## To declare and build dynamic reconfigure parameters within this 79 | ## package, follow these steps: 80 | ## * In the file package.xml: 81 | ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" 82 | ## * In this file (CMakeLists.txt): 83 | ## * add "dynamic_reconfigure" to 84 | ## find_package(catkin REQUIRED COMPONENTS ...) 85 | ## * uncomment the "generate_dynamic_reconfigure_options" section below 86 | ## and list every .cfg file to be processed 87 | 88 | ## Generate dynamic reconfigure parameters in the 'cfg' folder 89 | # generate_dynamic_reconfigure_options( 90 | # cfg/DynReconf1.cfg 91 | # cfg/DynReconf2.cfg 92 | # ) 93 | 94 | ################################### 95 | ## catkin specific configuration ## 96 | ################################### 97 | ## The catkin_package macro generates cmake config files for your package 98 | ## Declare things to be passed to dependent projects 99 | ## INCLUDE_DIRS: uncomment this if your package contains header files 100 | ## LIBRARIES: libraries you create in this project that dependent projects also need 101 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 102 | ## DEPENDS: system dependencies of this project that dependent projects also need 103 | catkin_package( 104 | # INCLUDE_DIRS include 105 | # LIBRARIES multi_turtlebots_nav 106 | # CATKIN_DEPENDS rospy 107 | # DEPENDS system_lib 108 | ) 109 | 110 | ########### 111 | ## Build ## 112 | ########### 113 | 114 | ## Specify additional locations of header files 115 | ## Your package locations should be listed before other locations 116 | include_directories( 117 | # include 118 | ${catkin_INCLUDE_DIRS} 119 | ) 120 | 121 | ## Declare a C++ library 122 | # add_library(${PROJECT_NAME} 123 | # src/${PROJECT_NAME}/multi_turtlebots_nav.cpp 124 | # ) 125 | 126 | ## Add cmake target dependencies of the library 127 | ## as an example, code may need to be generated before libraries 128 | ## either from message generation or dynamic reconfigure 129 | # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 130 | 131 | ## Declare a C++ executable 132 | ## With catkin_make all packages are built within a single CMake context 133 | ## The recommended prefix ensures that target names across packages don't collide 134 | # add_executable(${PROJECT_NAME}_node src/multi_turtlebots_nav_node.cpp) 135 | 136 | ## Rename C++ executable without prefix 137 | ## The above recommended prefix causes long target names, the following renames the 138 | ## target back to the shorter version for ease of user use 139 | ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" 140 | # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") 141 | 142 | ## Add cmake target dependencies of the executable 143 | ## same as for the library above 144 | # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 145 | 146 | ## Specify libraries to link a library or executable target against 147 | # target_link_libraries(${PROJECT_NAME}_node 148 | # ${catkin_LIBRARIES} 149 | # ) 150 | 151 | ############# 152 | ## Install ## 153 | ############# 154 | 155 | # all install targets should use catkin DESTINATION variables 156 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 157 | 158 | ## Mark executable scripts (Python etc.) for installation 159 | ## in contrast to setup.py, you can choose the destination 160 | # install(PROGRAMS 161 | # scripts/my_python_script 162 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 163 | # ) 164 | 165 | ## Mark executables for installation 166 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html 167 | # install(TARGETS ${PROJECT_NAME}_node 168 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 169 | # ) 170 | 171 | ## Mark libraries for installation 172 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html 173 | # install(TARGETS ${PROJECT_NAME} 174 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 175 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 176 | # RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} 177 | # ) 178 | 179 | ## Mark cpp header files for installation 180 | # install(DIRECTORY include/${PROJECT_NAME}/ 181 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 182 | # FILES_MATCHING PATTERN "*.h" 183 | # PATTERN ".svn" EXCLUDE 184 | # ) 185 | 186 | ## Mark other files for installation (e.g. launch and bag files, etc.) 187 | # install(FILES 188 | # # myfile1 189 | # # myfile2 190 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 191 | # ) 192 | 193 | ############# 194 | ## Testing ## 195 | ############# 196 | 197 | ## Add gtest based cpp test target and link libraries 198 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_multi_turtlebots_nav.cpp) 199 | # if(TARGET ${PROJECT_NAME}-test) 200 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 201 | # endif() 202 | 203 | ## Add folders to be run by python nosetests 204 | # catkin_add_nosetests(test) 205 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/launch/amcl_robot1.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/launch/amcl_robot2.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/launch/amcl_robot3.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/launch/move_base_1.launch: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 32 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/launch/move_base_2.launch: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/launch/move_base_3.launch: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/launch/navigation.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | multi_turtlebots_nav 4 | 0.0.0 5 | The multi_turtlebots_nav package 6 | 7 | 8 | 9 | 10 | pallav 11 | 12 | 13 | 14 | 15 | 16 | TODO 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | catkin 52 | rospy 53 | rospy 54 | rospy 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/param/base_local_planner_params.yaml: -------------------------------------------------------------------------------- 1 | TrajectoryPlannerROS: 2 | 3 | # Robot Configuration Parameters 4 | max_vel_x: 0.18 5 | min_vel_x: 0.08 6 | 7 | max_vel_theta: 1.0 8 | min_vel_theta: -1.0 9 | min_in_place_vel_theta: 1.0 10 | 11 | acc_lim_x: 1.0 12 | acc_lim_y: 0.0 13 | acc_lim_theta: 0.6 14 | 15 | # Goal Tolerance Parameters 16 | xy_goal_tolerance: 0.10 17 | yaw_goal_tolerance: 0.05 18 | 19 | # Differential-drive robot configuration 20 | holonomic_robot: false 21 | 22 | # Forward Simulation Parameters 23 | sim_time: 0.8 24 | vx_samples: 18 25 | vtheta_samples: 20 26 | sim_granularity: 0.05 27 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/param/costmap_common_params.yaml: -------------------------------------------------------------------------------- 1 | obstacle_range: 3.0 2 | raytrace_range: 3.5 3 | 4 | footprint: [[-0.105, -0.105], [-0.105, 0.105], [0.041, 0.105], [0.041, -0.105]] 5 | #robot_radius: 0.105 6 | 7 | inflation_radius: 0.55 8 | cost_scaling_factor: 10.0 9 | 10 | map_type: costmap 11 | observation_sources: scan 12 | scan: {sensor_frame: base_scan, data_type: LaserScan, topic: scan, marking: true, clearing: true} -------------------------------------------------------------------------------- /multi_turtlebots_nav/param/dwa_local_planner_params.yaml: -------------------------------------------------------------------------------- 1 | DWAPlannerROS: 2 | 3 | # Robot Configuration Parameters 4 | max_vel_x: 0.22 5 | min_vel_x: -0.22 6 | 7 | max_vel_y: 0.0 8 | min_vel_y: 0.0 9 | 10 | # The velocity when robot is moving in a straight line 11 | max_trans_vel: 0.22 12 | min_trans_vel: 0.11 13 | 14 | max_rot_vel: 2.75 15 | min_rot_vel: 1.37 16 | 17 | acc_lim_x: 2.5 18 | acc_lim_y: 0.0 19 | acc_lim_theta: 3.2 20 | 21 | # Goal Tolerance Parametes 22 | xy_goal_tolerance: 0.05 23 | yaw_goal_tolerance: 0.17 24 | latch_xy_goal_tolerance: false 25 | 26 | # Forward Simulation Parameters 27 | sim_time: 1.5 28 | vx_samples: 20 29 | vy_samples: 0 30 | vth_samples: 40 31 | controller_frequency: 10.0 32 | 33 | # Trajectory Scoring Parameters 34 | path_distance_bias: 32.0 35 | goal_distance_bias: 20.0 36 | occdist_scale: 0.02 37 | forward_point_distance: 0.325 38 | stop_time_buffer: 0.2 39 | scaling_speed: 0.25 40 | max_scaling_factor: 0.2 41 | 42 | # Oscillation Prevention Parameters 43 | oscillation_reset_dist: 0.05 44 | 45 | # Debugging 46 | publish_traj_pc : true 47 | publish_cost_grid_pc: true 48 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/param/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_costmap: 2 | global_frame: map 3 | robot_base_frame: base_footprint 4 | 5 | update_frequency: 10.0 6 | publish_frequency: 10.0 7 | transform_tolerance: 0.5 8 | 9 | static_map: true 10 | 11 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/param/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: odom 3 | robot_base_frame: base_footprint 4 | 5 | update_frequency: 10.0 6 | publish_frequency: 10.0 7 | transform_tolerance: 0.5 8 | 9 | static_map: false 10 | rolling_window: true 11 | width: 3 12 | height: 3 13 | resolution: 0.05 14 | 15 | -------------------------------------------------------------------------------- /multi_turtlebots_nav/param/move_base_params.yaml: -------------------------------------------------------------------------------- 1 | shutdown_costmaps: false 2 | controller_frequency: 10.0 3 | planner_patience: 5.0 4 | controller_patience: 15.0 5 | conservative_reset_dist: 3.0 6 | planner_frequency: 5.0 7 | oscillation_timeout: 10.0 8 | oscillation_distance: 0.2 9 | 10 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(multi_turtlebots_sim) 3 | 4 | ## Compile as C++11, supported in ROS Kinetic and newer 5 | # add_compile_options(-std=c++11) 6 | 7 | ## Find catkin macros and libraries 8 | ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) 9 | ## is used, also find other catkin packages 10 | find_package(catkin REQUIRED COMPONENTS 11 | rospy 12 | ) 13 | 14 | ## System dependencies are found with CMake's conventions 15 | # find_package(Boost REQUIRED COMPONENTS system) 16 | 17 | 18 | ## Uncomment this if the package has a setup.py. This macro ensures 19 | ## modules and global scripts declared therein get installed 20 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 21 | # catkin_python_setup() 22 | 23 | ################################################ 24 | ## Declare ROS messages, services and actions ## 25 | ################################################ 26 | 27 | ## To declare and build messages, services or actions from within this 28 | ## package, follow these steps: 29 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 30 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 31 | ## * In the file package.xml: 32 | ## * add a build_depend tag for "message_generation" 33 | ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET 34 | ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in 35 | ## but can be declared for certainty nonetheless: 36 | ## * add a exec_depend tag for "message_runtime" 37 | ## * In this file (CMakeLists.txt): 38 | ## * add "message_generation" and every package in MSG_DEP_SET to 39 | ## find_package(catkin REQUIRED COMPONENTS ...) 40 | ## * add "message_runtime" and every package in MSG_DEP_SET to 41 | ## catkin_package(CATKIN_DEPENDS ...) 42 | ## * uncomment the add_*_files sections below as needed 43 | ## and list every .msg/.srv/.action file to be processed 44 | ## * uncomment the generate_messages entry below 45 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 46 | 47 | ## Generate messages in the 'msg' folder 48 | # add_message_files( 49 | # FILES 50 | # Message1.msg 51 | # Message2.msg 52 | # ) 53 | 54 | ## Generate services in the 'srv' folder 55 | # add_service_files( 56 | # FILES 57 | # Service1.srv 58 | # Service2.srv 59 | # ) 60 | 61 | ## Generate actions in the 'action' folder 62 | # add_action_files( 63 | # FILES 64 | # Action1.action 65 | # Action2.action 66 | # ) 67 | 68 | ## Generate added messages and services with any dependencies listed here 69 | # generate_messages( 70 | # DEPENDENCIES 71 | # std_msgs # Or other packages containing msgs 72 | # ) 73 | 74 | ################################################ 75 | ## Declare ROS dynamic reconfigure parameters ## 76 | ################################################ 77 | 78 | ## To declare and build dynamic reconfigure parameters within this 79 | ## package, follow these steps: 80 | ## * In the file package.xml: 81 | ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" 82 | ## * In this file (CMakeLists.txt): 83 | ## * add "dynamic_reconfigure" to 84 | ## find_package(catkin REQUIRED COMPONENTS ...) 85 | ## * uncomment the "generate_dynamic_reconfigure_options" section below 86 | ## and list every .cfg file to be processed 87 | 88 | ## Generate dynamic reconfigure parameters in the 'cfg' folder 89 | # generate_dynamic_reconfigure_options( 90 | # cfg/DynReconf1.cfg 91 | # cfg/DynReconf2.cfg 92 | # ) 93 | 94 | ################################### 95 | ## catkin specific configuration ## 96 | ################################### 97 | ## The catkin_package macro generates cmake config files for your package 98 | ## Declare things to be passed to dependent projects 99 | ## INCLUDE_DIRS: uncomment this if your package contains header files 100 | ## LIBRARIES: libraries you create in this project that dependent projects also need 101 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 102 | ## DEPENDS: system dependencies of this project that dependent projects also need 103 | catkin_package( 104 | # INCLUDE_DIRS include 105 | # LIBRARIES multi_turtlebots_sim 106 | # CATKIN_DEPENDS rospy 107 | # DEPENDS system_lib 108 | ) 109 | 110 | ########### 111 | ## Build ## 112 | ########### 113 | 114 | ## Specify additional locations of header files 115 | ## Your package locations should be listed before other locations 116 | include_directories( 117 | # include 118 | ${catkin_INCLUDE_DIRS} 119 | ) 120 | 121 | ## Declare a C++ library 122 | # add_library(${PROJECT_NAME} 123 | # src/${PROJECT_NAME}/multi_turtlebots_sim.cpp 124 | # ) 125 | 126 | ## Add cmake target dependencies of the library 127 | ## as an example, code may need to be generated before libraries 128 | ## either from message generation or dynamic reconfigure 129 | # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 130 | 131 | ## Declare a C++ executable 132 | ## With catkin_make all packages are built within a single CMake context 133 | ## The recommended prefix ensures that target names across packages don't collide 134 | # add_executable(${PROJECT_NAME}_node src/multi_turtlebots_sim_node.cpp) 135 | 136 | ## Rename C++ executable without prefix 137 | ## The above recommended prefix causes long target names, the following renames the 138 | ## target back to the shorter version for ease of user use 139 | ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" 140 | # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") 141 | 142 | ## Add cmake target dependencies of the executable 143 | ## same as for the library above 144 | # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 145 | 146 | ## Specify libraries to link a library or executable target against 147 | # target_link_libraries(${PROJECT_NAME}_node 148 | # ${catkin_LIBRARIES} 149 | # ) 150 | 151 | ############# 152 | ## Install ## 153 | ############# 154 | 155 | # all install targets should use catkin DESTINATION variables 156 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 157 | 158 | ## Mark executable scripts (Python etc.) for installation 159 | ## in contrast to setup.py, you can choose the destination 160 | # install(PROGRAMS 161 | # scripts/my_python_script 162 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 163 | # ) 164 | 165 | ## Mark executables for installation 166 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html 167 | # install(TARGETS ${PROJECT_NAME}_node 168 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 169 | # ) 170 | 171 | ## Mark libraries for installation 172 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html 173 | # install(TARGETS ${PROJECT_NAME} 174 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 175 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 176 | # RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} 177 | # ) 178 | 179 | ## Mark cpp header files for installation 180 | # install(DIRECTORY include/${PROJECT_NAME}/ 181 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 182 | # FILES_MATCHING PATTERN "*.h" 183 | # PATTERN ".svn" EXCLUDE 184 | # ) 185 | 186 | ## Mark other files for installation (e.g. launch and bag files, etc.) 187 | # install(FILES 188 | # # myfile1 189 | # # myfile2 190 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 191 | # ) 192 | 193 | ############# 194 | ## Testing ## 195 | ############# 196 | 197 | ## Add gtest based cpp test target and link libraries 198 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_multi_turtlebots_sim.cpp) 199 | # if(TARGET ${PROJECT_NAME}-test) 200 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 201 | # endif() 202 | 203 | ## Add folders to be run by python nosetests 204 | # catkin_add_nosetests(test) 205 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/launch/main.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/launch/one_robot.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 11 | 12 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/launch/robots.launch: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/launch/test.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | multi_turtlebots_sim 4 | 0.0.0 5 | The multi_turtlebots_sim package 6 | 7 | 8 | 9 | 10 | pallav 11 | 12 | 13 | 14 | 15 | 16 | TODO 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | catkin 52 | rospy 53 | xacro 54 | rospy 55 | xacro 56 | rospy 57 | xacro 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/meshes/bases/burger_base.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallavbhalla/Navigate_Multiple_Robots/546ff5ca48fe0babc959ec24062834c03320df50/multi_turtlebots_sim/turtlebot3_description/meshes/bases/burger_base.stl -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/meshes/sensors/astra.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallavbhalla/Navigate_Multiple_Robots/546ff5ca48fe0babc959ec24062834c03320df50/multi_turtlebots_sim/turtlebot3_description/meshes/sensors/astra.jpg -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/meshes/sensors/lds.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallavbhalla/Navigate_Multiple_Robots/546ff5ca48fe0babc959ec24062834c03320df50/multi_turtlebots_sim/turtlebot3_description/meshes/sensors/lds.stl -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/meshes/sensors/r200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallavbhalla/Navigate_Multiple_Robots/546ff5ca48fe0babc959ec24062834c03320df50/multi_turtlebots_sim/turtlebot3_description/meshes/sensors/r200.jpg -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/meshes/wheels/left_tire.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallavbhalla/Navigate_Multiple_Robots/546ff5ca48fe0babc959ec24062834c03320df50/multi_turtlebots_sim/turtlebot3_description/meshes/wheels/left_tire.stl -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/meshes/wheels/right_tire.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallavbhalla/Navigate_Multiple_Robots/546ff5ca48fe0babc959ec24062834c03320df50/multi_turtlebots_sim/turtlebot3_description/meshes/wheels/right_tire.stl -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/rviz/model.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /Global Options1 8 | - /Status1 9 | - /Grid1 10 | - /Axes1 11 | - /LaserScan1 12 | - /RobotModel1 13 | - /TF1 14 | Splitter Ratio: 0.6029411554336548 15 | Tree Height: 787 16 | - Class: rviz/Selection 17 | Name: Selection 18 | - Class: rviz/Tool Properties 19 | Expanded: 20 | - /2D Pose Estimate1 21 | - /2D Nav Goal1 22 | - /Publish Point1 23 | Name: Tool Properties 24 | Splitter Ratio: 0.5886790156364441 25 | - Class: rviz/Views 26 | Expanded: 27 | - /Current View1 28 | Name: Views 29 | Splitter Ratio: 0.5 30 | - Class: rviz/Time 31 | Experimental: false 32 | Name: Time 33 | SyncMode: 0 34 | SyncSource: LaserScan 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Alpha: 0.5 39 | Cell Size: 1 40 | Class: rviz/Grid 41 | Color: 160; 160; 164 42 | Enabled: true 43 | Line Style: 44 | Line Width: 0.029999999329447746 45 | Value: Lines 46 | Name: Grid 47 | Normal Cell Count: 0 48 | Offset: 49 | X: 0 50 | Y: 0 51 | Z: 0 52 | Plane: XY 53 | Plane Cell Count: 10 54 | Reference Frame: 55 | Value: true 56 | - Class: rviz/Axes 57 | Enabled: true 58 | Length: 0.5 59 | Name: Axes 60 | Radius: 0.009999999776482582 61 | Reference Frame: 62 | Value: true 63 | - Alpha: 1 64 | Autocompute Intensity Bounds: true 65 | Autocompute Value Bounds: 66 | Max Value: 10 67 | Min Value: -10 68 | Value: true 69 | Axis: Z 70 | Channel Name: intensity 71 | Class: rviz/LaserScan 72 | Color: 255; 0; 0 73 | Color Transformer: FlatColor 74 | Decay Time: 0 75 | Enabled: true 76 | Invert Rainbow: false 77 | Max Color: 255; 255; 255 78 | Max Intensity: 5932 79 | Min Color: 0; 0; 0 80 | Min Intensity: 106 81 | Name: LaserScan 82 | Position Transformer: XYZ 83 | Queue Size: 10 84 | Selectable: true 85 | Size (Pixels): 3 86 | Size (m): 0.009999999776482582 87 | Style: Flat Squares 88 | Topic: /scan 89 | Unreliable: false 90 | Use Fixed Frame: true 91 | Use rainbow: true 92 | Value: true 93 | - Alpha: 1 94 | Class: rviz/RobotModel 95 | Collision Enabled: false 96 | Enabled: true 97 | Links: 98 | All Links Enabled: true 99 | Expand Joint Details: false 100 | Expand Link Details: false 101 | Expand Tree: false 102 | Link Tree Style: Links in Alphabetic Order 103 | base_footprint: 104 | Alpha: 1 105 | Show Axes: false 106 | Show Trail: false 107 | base_link: 108 | Alpha: 1 109 | Show Axes: false 110 | Show Trail: false 111 | Value: true 112 | base_scan: 113 | Alpha: 1 114 | Show Axes: false 115 | Show Trail: false 116 | Value: true 117 | caster_back_link: 118 | Alpha: 1 119 | Show Axes: false 120 | Show Trail: false 121 | Value: true 122 | wheel_left_link: 123 | Alpha: 1 124 | Show Axes: false 125 | Show Trail: false 126 | Value: true 127 | wheel_right_link: 128 | Alpha: 1 129 | Show Axes: false 130 | Show Trail: false 131 | Value: true 132 | Name: RobotModel 133 | Robot Description: robot_description 134 | TF Prefix: "" 135 | Update Interval: 0 136 | Value: true 137 | Visual Enabled: true 138 | - Class: rviz/TF 139 | Enabled: true 140 | Frame Timeout: 15 141 | Frames: 142 | All Enabled: true 143 | base_footprint: 144 | Value: true 145 | base_link: 146 | Value: true 147 | base_scan: 148 | Value: true 149 | caster_back_link: 150 | Value: true 151 | imu_link: 152 | Value: true 153 | odom: 154 | Value: true 155 | wheel_left_link: 156 | Value: true 157 | wheel_right_link: 158 | Value: true 159 | Marker Scale: 0.4000000059604645 160 | Name: TF 161 | Show Arrows: true 162 | Show Axes: true 163 | Show Names: true 164 | Tree: 165 | odom: 166 | base_footprint: 167 | base_link: 168 | base_scan: 169 | {} 170 | caster_back_link: 171 | {} 172 | imu_link: 173 | {} 174 | wheel_left_link: 175 | {} 176 | wheel_right_link: 177 | {} 178 | Update Interval: 0 179 | Value: true 180 | Enabled: true 181 | Global Options: 182 | Background Color: 108; 108; 108 183 | Fixed Frame: base_footprint 184 | Frame Rate: 30 185 | Name: root 186 | Tools: 187 | - Class: rviz/Interact 188 | Hide Inactive Objects: true 189 | - Class: rviz/MoveCamera 190 | - Class: rviz/Select 191 | - Class: rviz/FocusCamera 192 | - Class: rviz/Measure 193 | - Class: rviz/SetInitialPose 194 | Topic: /initialpose 195 | - Class: rviz/SetGoal 196 | Topic: /move_base_simple/goal 197 | - Class: rviz/PublishPoint 198 | Single click: true 199 | Topic: /clicked_point 200 | Value: true 201 | Views: 202 | Current: 203 | Class: rviz/XYOrbit 204 | Distance: 1.910049319267273 205 | Enable Stereo Rendering: 206 | Stereo Eye Separation: 0.05999999865889549 207 | Stereo Focal Distance: 1 208 | Swap Stereo Eyes: false 209 | Value: false 210 | Focal Point: 211 | X: -0.02010004222393036 212 | Y: -0.467065691947937 213 | Z: -4.76837158203125e-7 214 | Focal Shape Fixed Size: false 215 | Focal Shape Size: 0.05000000074505806 216 | Name: Current View 217 | Near Clip Distance: 0.009999999776482582 218 | Pitch: 0.7953976392745972 219 | Target Frame: 220 | Value: XYOrbit (rviz) 221 | Yaw: 4.793606281280518 222 | Saved: ~ 223 | Window Geometry: 224 | Displays: 225 | collapsed: false 226 | Height: 1056 227 | Hide Left Dock: false 228 | Hide Right Dock: true 229 | QMainWindow State: 000000ff00000000fd0000000400000000000001560000039bfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c00610079007301000000270000039b000000c600fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f0000039bfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a0056006900650077007300000000270000039b0000009e00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073f0000003efc0100000002fb0000000800540069006d006501000000000000073f0000024400fffffffb0000000800540069006d00650100000000000004500000000000000000000005e30000039b00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 230 | Selection: 231 | collapsed: false 232 | Time: 233 | collapsed: false 234 | Tool Properties: 235 | collapsed: false 236 | Views: 237 | collapsed: true 238 | Width: 1855 239 | X: 65 240 | Y: 24 241 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/urdf/common_properties.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/urdf/turtlebot3_burger.gazebo.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Gazebo/DarkGrey 8 | 9 | 10 | 11 | 0.1 12 | 0.1 13 | 500000.0 14 | 10.0 15 | 0.001 16 | 0.1 17 | 1 0 0 18 | Gazebo/FlatBlack 19 | 20 | 21 | 22 | 0.1 23 | 0.1 24 | 500000.0 25 | 10.0 26 | 0.001 27 | 0.1 28 | 1 0 0 29 | Gazebo/FlatBlack 30 | 31 | 32 | 33 | 0.1 34 | 0.1 35 | 1000000.0 36 | 100.0 37 | 0.001 38 | 1.0 39 | Gazebo/FlatBlack 40 | 41 | 42 | 43 | 44 | true 45 | $(arg imu_visual) 46 | 47 | Gazebo/FlatBlack 48 | 49 | 50 | 51 | 52 | cmd_vel 53 | odom 54 | odom 55 | world 56 | true 57 | base_footprint 58 | false 59 | true 60 | true 61 | false 62 | 30 63 | wheel_left_joint 64 | wheel_right_joint 65 | 0.160 66 | 0.066 67 | 1 68 | 10 69 | na 70 | 71 | 72 | 73 | 74 | 75 | true 76 | imu_link 77 | imu_link 78 | imu 79 | imu_service 80 | 0.0 81 | 200 82 | 83 | 84 | gaussian 85 | 86 | 0.0 87 | 2e-4 88 | 0.0000075 89 | 0.0000008 90 | 91 | 92 | 0.0 93 | 1.7e-2 94 | 0.1 95 | 0.001 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | Gazebo/FlatBlack 105 | 106 | 0 0 0 0 0 0 107 | $(arg laser_visual) 108 | 5 109 | 110 | 111 | 112 | 360 113 | 1 114 | 0.0 115 | 6.28319 116 | 117 | 118 | 119 | 0.120 120 | 3.5 121 | 0.015 122 | 123 | 124 | gaussian 125 | 0.0 126 | 0.01 127 | 128 | 129 | 130 | scan 131 | base_scan 132 | 133 | 134 | 135 | 136 | 137 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/urdf/turtlebot3_burger.urdf.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | / 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 162 | 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/world/square.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 1 5 | 0 0 10 0 -0 0 6 | 0.8 0.8 0.8 1 7 | 0.1 0.1 0.1 1 8 | 9 | 1000 10 | 0.9 11 | 0.01 12 | 0.001 13 | 14 | -0.5 0.5 -1 15 | 16 | 17 | 1 18 | 19 | 20 | 21 | 22 | 0 0 1 23 | 100 100 24 | 25 | 26 | 27 | 28 | 29 | 100 30 | 50 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 10 42 | 43 | 44 | 0 45 | 46 | 47 | 0 0 1 48 | 100 100 49 | 50 | 51 | 52 | 56 | 57 | 58 | 0 59 | 0 60 | 1 61 | 62 | 63 | 0 0 -9.8 64 | 6e-06 2.3e-05 -4.2e-05 65 | 66 | 67 | 0.001 68 | 1 69 | 1000 70 | 71 | 72 | 0.4 0.4 0.4 1 73 | 0.7 0.7 0.7 1 74 | 1 75 | 76 | 77 | EARTH_WGS84 78 | 0 79 | 0 80 | 0 81 | 0 82 | 83 | 84 | 0.221526 0.040251 0 0 -0 0 85 | 86 | 87 | 88 | 89 | 4 0.15 0.5 90 | 91 | 92 | 0 0 0.25 0 -0 0 93 | 10 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 0 0 0.25 0 -0 0 109 | 110 | 111 | 4 0.15 0.5 112 | 113 | 114 | 115 | 119 | 1 1 1 1 120 | 121 | 122 | 0 1.925 0 0 -0 0 123 | 0 124 | 0 125 | 1 126 | 127 | 128 | 129 | 130 | 131 | 4 0.15 0.5 132 | 133 | 134 | 0 0 0.25 0 -0 0 135 | 10 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 0 0 0.25 0 -0 0 151 | 152 | 153 | 4 0.15 0.5 154 | 155 | 156 | 157 | 161 | 1 1 1 1 162 | 163 | 164 | -1.925 0 0 0 0 -1.5708 165 | 0 166 | 0 167 | 1 168 | 169 | 170 | 171 | 172 | 173 | 4 0.15 0.5 174 | 175 | 176 | 0 0 0.25 0 -0 0 177 | 10 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 0 0 0.25 0 -0 0 193 | 194 | 195 | 4 0.15 0.5 196 | 197 | 198 | 199 | 203 | 1 1 1 1 204 | 205 | 206 | 0 -1.925 0 0 -0 0 207 | 0 208 | 0 209 | 1 210 | 211 | 212 | 213 | 214 | 215 | 4 0.15 0.5 216 | 217 | 218 | 0 0 0.25 0 -0 0 219 | 10 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 0 0 0.25 0 -0 0 235 | 236 | 237 | 4 0.15 0.5 238 | 239 | 240 | 241 | 245 | 1 1 1 1 246 | 247 | 248 | 1.925 0 0 0 -0 1.5708 249 | 0 250 | 0 251 | 1 252 | 253 | 1 254 | 255 | 256 | 94 726000000 257 | 95 53756775 258 | 1560580423 231590453 259 | 94726 260 | 261 | 0 0 0 0 -0 0 262 | 1 1 1 263 | 264 | 0 0 0 0 -0 0 265 | 0 0 0 0 -0 0 266 | 0 0 0 0 -0 0 267 | 0 0 0 0 -0 0 268 | 269 | 270 | 271 | 0.221526 0.040251 0 0 -0 0 272 | 1 1 1 273 | 274 | 0.221526 1.96525 0 0 -0 0 275 | 0 0 0 0 -0 0 276 | 0 0 0 0 -0 0 277 | 0 0 0 0 -0 0 278 | 279 | 280 | -1.70347 0.040251 0 0 0 -1.5708 281 | 0 0 0 0 -0 0 282 | 0 0 0 0 -0 0 283 | 0 0 0 0 -0 0 284 | 285 | 286 | 0.221526 -1.88475 0 0 -0 0 287 | 0 0 0 0 -0 0 288 | 0 0 0 0 -0 0 289 | 0 0 0 0 -0 0 290 | 291 | 292 | 2.14653 0.040251 0 0 -0 1.5708 293 | 0 0 0 0 -0 0 294 | 0 0 0 0 -0 0 295 | 0 0 0 0 -0 0 296 | 297 | 298 | 299 | 0 0 10 0 -0 0 300 | 301 | 302 | 303 | 304 | 6.26373 -4.95847 1.50257 -1e-06 0.275643 2.35619 305 | orbit 306 | perspective 307 | 308 | 309 | 310 | 311 | -------------------------------------------------------------------------------- /multi_turtlebots_sim/turtlebot3_description/world/turtlebot3_house.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | model://sun 6 | 7 | 8 | 9 | 10 | model://ground_plane 11 | 12 | 13 | 14 | 1000.0 15 | 0.001 16 | 1 17 | 18 | 19 | quick 20 | 150 21 | 0 22 | 1.400000 23 | 1 24 | 25 | 26 | 0.00001 27 | 0.2 28 | 2000.000000 29 | 0.01000 30 | 31 | 32 | 33 | 34 | 35 | 36 | model://turtlebot3_house 37 | 38 | 39 | 40 | 0.4 0.4 0.4 1 41 | 0.7 0.7 0.7 1 42 | true 43 | 44 | 45 | 46 | 47 | 0.0 0.0 17.0 0 1.5708 0 48 | orbit 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pallavbhalla/Navigate_Multiple_Robots/546ff5ca48fe0babc959ec24062834c03320df50/thumbnail.png --------------------------------------------------------------------------------