├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── docs ├── Navigation.md ├── _config.yml ├── img │ ├── atom.JPG │ ├── atom1.JPG │ ├── aws_scan.png │ ├── beta.JPG │ ├── beta1.JPG │ ├── beta3.JPG │ ├── beta4.JPG │ ├── gmapping.png │ ├── localization.png │ ├── navigation1.png │ └── navigation2.png └── index.md └── src ├── CMakeLists.txt ├── alpha ├── CMakeLists.txt ├── LICENSE ├── launch │ ├── controller.launch │ ├── controller.yaml │ ├── display.launch │ ├── gazebo.launch │ └── urdf.rviz ├── meshes │ ├── base_link.stl │ ├── caster_wheel_1.stl │ ├── left_wheel_1.stl │ └── right_wheel_1.stl ├── package.xml └── urdf │ ├── Alpha.gazebo │ ├── Alpha.trans │ ├── Alpha.xacro │ └── materials.xacro ├── atom ├── CMakeLists.txt ├── default.rviz ├── launch │ ├── gazebo_world.launch │ ├── gmapping_demo.launch │ ├── house.launch │ ├── localization.launch │ ├── navigation.launch │ ├── robot_description.launch │ └── world.launch ├── meshes │ └── hokuyo.dae ├── model │ └── atom │ │ ├── materials │ │ ├── scripts │ │ │ └── repeated.material │ │ └── textures │ │ │ └── seamless_texture.png │ │ ├── meshes │ │ └── hokuyo.dae │ │ ├── model.config │ │ └── model.sdf ├── package.xml ├── script │ ├── control_bot.py │ ├── imgConvertor.py │ └── runCV.py ├── urdf │ ├── atom.gazebo │ └── atom.xacro └── worlds │ ├── empty.world │ ├── empty_bot.world │ └── house.world ├── beta_description ├── CMakeLists.txt ├── LICENSE ├── launch │ ├── controller.launch │ ├── controller.yaml │ ├── display.launch │ ├── gazebo.launch │ └── urdf.rviz ├── meshes │ ├── base_link.stl │ ├── camera_link_1.stl │ ├── caster_wheel_1.stl │ ├── left_wheel_1.stl │ ├── lidar_link_1.stl │ ├── pi_1.stl │ └── right_wheel_1.stl ├── package.xml └── urdf │ ├── beta.gazebo │ ├── beta.trans │ ├── beta.xacro │ └── materials.xacro ├── maps └── aws_house │ ├── map.pgm │ └── map.yaml └── navigation_stack ├── CMakeLists.txt ├── launch ├── amcl.launch ├── auto_mapping.launch └── includes │ ├── gmapping │ └── r200_gmapping.launch.xml │ ├── move_base.launch.xml │ ├── safety_controller.launch.xml │ └── velocity_smoother.launch.xml ├── package.xml ├── param ├── costmap_common_params.yaml ├── dummy.yaml ├── dwa_local_planner_params.yaml ├── global_costmap_params.yaml ├── global_planner_params.yaml ├── local_costmap_params.yaml ├── move_base_params.yaml ├── navfn_global_planner_params.yaml ├── r200_costmap_params.yaml └── smoother.yaml ├── rviz ├── amcl.rviz ├── gmapping.rviz └── navigation.rviz └── src ├── bot_drive.cpp └── bot_drive.hpp /.gitignore: -------------------------------------------------------------------------------- 1 | devel/ 2 | logs/ 3 | build/ 4 | bin/ 5 | lib/ 6 | msg_gen/ 7 | srv_gen/ 8 | msg/*Action.msg 9 | msg/*ActionFeedback.msg 10 | msg/*ActionGoal.msg 11 | msg/*ActionResult.msg 12 | msg/*Feedback.msg 13 | msg/*Goal.msg 14 | msg/*Result.msg 15 | msg/_*.py 16 | build_isolated/ 17 | devel_isolated/ 18 | 19 | # Generated by dynamic reconfigure 20 | *.cfgc 21 | /cfg/cpp/ 22 | /cfg/*.py 23 | 24 | # Ignore generated docs 25 | *.dox 26 | *.wikidoc 27 | 28 | # eclipse stuff 29 | .project 30 | .cproject 31 | 32 | # qcreator stuff 33 | CMakeLists.txt.user 34 | 35 | srv/_*.py 36 | *.pcd 37 | *.pyc 38 | qtcreator-* 39 | *.user 40 | 41 | /planning/cfg 42 | /planning/docs 43 | /planning/src 44 | 45 | *~ 46 | 47 | # Emacs 48 | .#* 49 | 50 | # Catkin custom files 51 | CATKIN_IGNORE 52 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "src/aws-robomaker-small-house-world"] 2 | path = src/aws-robomaker-small-house-world 3 | url = https://github.com/harshmittal2210/aws-robomaker-small-house-world 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ROS workspace 2 | 3 | This repository includes sample codes to create your own robot using ROS. 4 | 5 | All the bots related to my talk ["Build Custom Robot in ROS"](https://www.youtube.com/watch?v=cuNEOtLbB14) in [Pycon Sweden](https://www.pycon.se/) is also added. 6 | 7 | ## Contents 8 | 9 | - [Prerequisites](#prerequisites) 10 | - [Set Up](#set-up-workspace) 11 | - [Atom Bot](#atom-robot) 12 | - [Atom SDF](#atom-robot-sdf) 13 | - [Beta Bot](#beta-robot) 14 | - [Control Bots](#control-the-bot) 15 | - [Autonomous Navigation](/docs/Navigation.md) 16 | 17 | ## Prerequisites 18 | 19 | Replace with noetic, melodic etc. 20 | 21 | - ROS (`$ sudo apt-get install ros--desktop-full`) 22 | - Xacro (`$ sudo apt-get install ros--xacro`) 23 | - Gazebo (`$ sudo apt-get install ros--gazebo-ros`) 24 | 25 | ## Set up workspace 26 | 27 | 28 | ```bash 29 | git clone https://github.com/bytesByHarsh/Robotics_ws/ 30 | cd Robotics_ws 31 | git submodule update --init --recursive 32 | catkin_make 33 | source devel/setup.sh 34 | ``` 35 | 36 | `Note: Do not add Robotics_ws in your catkin_ws/src` 37 | 38 | I am just using the folder name `Robotics_ws` instead of `catkin_ws` 39 | 40 | ## Atom Robot 41 | 42 | ```bash 43 | roslaunch atom world.launch 44 | ``` 45 |

46 | Atom Bot 47 |

48 | 49 | ## Atom Robot (SDF) 50 | 51 | ```bash 52 | roslaunch atom gazebo_world.launch 53 | ``` 54 |

55 | Atom Bot 56 |

57 | 58 | ## Beta Robot 59 | 60 | ```bash 61 | roslaunch beta_description gazebo.launch 62 | ``` 63 |

64 | Atom Bot 65 | Atom Bot 66 | Atom Bot 67 |

68 | 69 | ## Control the bot 70 | 71 | Use `teleop_twist_keyboard` 72 | 73 | ```bash 74 | rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/atom/cmd_vel 75 | ``` 76 | 77 | ## Autonomous Navigation 78 | 79 | Refer to doc here: [Navigation](/docs/Navigation.md) 80 | 81 | ## Author 82 | 83 | 👤 Harsh Mittal 84 | 85 | Twitter: [@bytesByHarsh](https://twitter.com/bytesByHarsh) 86 | Github: [@bytesByHarsh](https://github.com/bytesByHarsh) 87 | Website: [harshmittal.com](http://harshmittal.com) 88 | 89 | ## 🤝 Contributing 90 | 91 | Contributions, issues, and feature requests are welcome! 92 | 93 | ## Show your support 94 | 95 | Give a ⭐️ if you think this project is awesome! 96 | 97 | ## 📝 License 98 | 99 | Copyright © 2021 [Harsh Mittal](https://github.com/bytesByHarsh). 100 | This project is [Apache License](https://github.com/bytesByHarsh/Robotics_ws/blob/main/LICENSE) licensed. 101 | -------------------------------------------------------------------------------- /docs/Navigation.md: -------------------------------------------------------------------------------- 1 | # Navigation 2 | 3 | ## Installation 4 | 5 | ```bash 6 | sudo apt install ros-noetic-dwa-local-planner 7 | sudo apt install ros-noetic-gmapping 8 | ``` 9 | 10 | # GMapping 11 | 12 | 13 | ## Mapping 14 | 15 | Terminal 1: 16 | 17 | ```bash 18 | roslaunch atom gmapping_demo.launch 19 | ``` 20 | 21 | Terminal 2: 22 | 23 | ```bash 24 | rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/atom/cmd_vel 25 | ``` 26 | 27 | ![Gmapping Demo](./img/gmapping.png) 28 | 29 | Move around the bot till you have scanned the complete room. Now in order to save the map use the following 30 | command 31 | 32 | Terminal 3: 33 | ``` 34 | cd 35 | rosrun map_server map_saver -f map 36 | ``` 37 | 38 | ![Scan](./img/aws_scan.png) 39 | 40 | # AMCL 41 | 42 | Terminal 1: 43 | 44 | ```bash 45 | roslaunch atom localization.launch 46 | ``` 47 | 48 | Terminal 2: 49 | 50 | ```bash 51 | rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/atom/cmd_vel 52 | ``` 53 | 54 | Now you after moving bot a little you will be able to see that it is able to localize itself properly. 55 | 56 | ![Localization](./img/localization.png) 57 | 58 | # Navigation 59 | 60 | Terminal 1: 61 | 62 | ```bash 63 | roslaunch atom navigation.launch 64 | ``` 65 | 66 | Use RVIZ for 2D Navigation 67 | 68 | ![Give Navigation](./img/navigation1.png) 69 | ![Robot goes to point](./img/navigation2.png) 70 | -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-architect -------------------------------------------------------------------------------- /docs/img/atom.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/atom.JPG -------------------------------------------------------------------------------- /docs/img/atom1.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/atom1.JPG -------------------------------------------------------------------------------- /docs/img/aws_scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/aws_scan.png -------------------------------------------------------------------------------- /docs/img/beta.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/beta.JPG -------------------------------------------------------------------------------- /docs/img/beta1.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/beta1.JPG -------------------------------------------------------------------------------- /docs/img/beta3.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/beta3.JPG -------------------------------------------------------------------------------- /docs/img/beta4.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/beta4.JPG -------------------------------------------------------------------------------- /docs/img/gmapping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/gmapping.png -------------------------------------------------------------------------------- /docs/img/localization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/localization.png -------------------------------------------------------------------------------- /docs/img/navigation1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/navigation1.png -------------------------------------------------------------------------------- /docs/img/navigation2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/docs/img/navigation2.png -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | ## ROS 2 | The Robot Operating System (ROS) is a set of software libraries and tools that help you build robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. And it's all open source. Follow: http://wiki.ros.org/ROS/Installation 3 | 4 | This repository includes sample codes to create your own robot using ROS. 5 | 6 | ## Contents 7 | 8 | - [Prerequisites](#prerequisites) 9 | - [Set Up](#set-up-workspace) 10 | - [Atom Bot](#atom-robot) 11 | - [Atom SDF](#atom-robot-sdf) 12 | - [Beta Bot](#beta-robot) 13 | - [Control Bots](#control-the-bot) 14 | - [Autonomous Navigation](./Navigation.md) 15 | 16 | ## Prerequisites 17 | 18 | Replace with noetic, melodic etc. 19 | 20 | - ROS (`$ sudo apt-get install ros--desktop-full`) 21 | - Xacro (`$ sudo apt-get install ros--xacro`) 22 | - Gazebo (`$ sudo apt-get install ros--gazebo-ros`) 23 | 24 | ## Set up workspace 25 | 26 | 27 | ```bash 28 | git clone https://github.com/harshmittal2210/Robotics_ws/ 29 | cd Robotics_ws 30 | git submodule update --init --recursive 31 | catkin_make 32 | source devel/setup.sh 33 | ``` 34 | 35 | `Note: Do not add Robotics_ws in your catkin_ws/src` 36 | 37 | I am just using the folder name `Robotics_ws` instead of `catkin_ws` 38 | 39 | ## Atom Robot 40 | 41 | ```bash 42 | roslaunch atom world.launch 43 | ``` 44 |

45 | Atom Bot 46 |

47 | 48 | ## Atom Robot (SDF) 49 | 50 | ```bash 51 | roslaunch atom gazebo_world.launch 52 | ``` 53 |

54 | Atom Bot 55 |

56 | 57 | ## Beta Robot 58 | 59 | ```bash 60 | roslaunch beta_description gazebo.launch 61 | ``` 62 |

63 | Atom Bot 64 | Atom Bot 65 | Atom Bot 66 |

67 | 68 | ## Control the bot 69 | 70 | Use `teleop_twist_keyboard` 71 | 72 | ```bash 73 | rosrun teleop_twist_keyboard teleop_twist_keyboard.py cmd_vel:=/atom/cmd_vel 74 | ``` 75 | 76 | -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | /opt/ros/noetic/share/catkin/cmake/toplevel.cmake -------------------------------------------------------------------------------- /src/alpha/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(alpha) 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 fusion2urdf 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}/fusion2urdf.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/fusion2urdf_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 and/or libraries for installation 166 | # install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node 167 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 168 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 169 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 170 | # ) 171 | 172 | ## Mark cpp header files for installation 173 | # install(DIRECTORY include/${PROJECT_NAME}/ 174 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 175 | # FILES_MATCHING PATTERN "*.h" 176 | # PATTERN ".svn" EXCLUDE 177 | # ) 178 | 179 | ## Mark other files for installation (e.g. launch and bag files, etc.) 180 | # install(FILES 181 | # # myfile1 182 | # # myfile2 183 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 184 | # ) 185 | 186 | ############# 187 | ## Testing ## 188 | ############# 189 | 190 | ## Add gtest based cpp test target and link libraries 191 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_fusion2urdf.cpp) 192 | # if(TARGET ${PROJECT_NAME}-test) 193 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 194 | # endif() 195 | 196 | ## Add folders to be run by python nosetests 197 | # catkin_add_nosetests(test) 198 | -------------------------------------------------------------------------------- /src/alpha/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Toshinori Kitamura 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/alpha/launch/controller.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/alpha/launch/controller.yaml: -------------------------------------------------------------------------------- 1 | Alpha_controller: 2 | # Publish all joint states ----------------------------------- 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 50 6 | 7 | # Position Controllers -------------------------------------- 8 | Rev1_position_controller: 9 | type: effort_controllers/JointPositionController 10 | joint: Rev1 11 | pid: {p: 100.0, i: 0.01, d: 10.0} 12 | Rev2_position_controller: 13 | type: effort_controllers/JointPositionController 14 | joint: Rev2 15 | pid: {p: 100.0, i: 0.01, d: 10.0} 16 | -------------------------------------------------------------------------------- /src/alpha/launch/display.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/alpha/launch/gazebo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/alpha/launch/urdf.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 | - /RobotModel1 10 | - /TF1 11 | Splitter Ratio: 0.5 12 | Tree Height: 591 13 | - Class: rviz/Selection 14 | Name: Selection 15 | - Class: rviz/Tool Properties 16 | Expanded: 17 | - /2D Pose Estimate1 18 | - /2D Nav Goal1 19 | - /Publish Point1 20 | Name: Tool Properties 21 | Splitter Ratio: 0.5886790156364441 22 | - Class: rviz/Views 23 | Expanded: 24 | - /Current View1 25 | Name: Views 26 | Splitter Ratio: 0.5 27 | - Class: rviz/Time 28 | Experimental: false 29 | Name: Time 30 | SyncMode: 0 31 | SyncSource: "" 32 | Preferences: 33 | PromptSaveOnExit: true 34 | Toolbars: 35 | toolButtonStyle: 2 36 | Visualization Manager: 37 | Class: "" 38 | Displays: 39 | - Alpha: 0.5 40 | Cell Size: 1 41 | Class: rviz/Grid 42 | Color: 160; 160; 164 43 | Enabled: true 44 | Line Style: 45 | Line Width: 0.029999999329447746 46 | Value: Lines 47 | Name: Grid 48 | Normal Cell Count: 0 49 | Offset: 50 | X: 0 51 | Y: 0 52 | Z: 0 53 | Plane: XY 54 | Plane Cell Count: 10 55 | Reference Frame: 56 | Value: true 57 | - Alpha: 1 58 | Class: rviz/RobotModel 59 | Collision Enabled: false 60 | Enabled: true 61 | Links: 62 | 2dofknuckle_link_1: 63 | Alpha: 1 64 | Show Axes: false 65 | Show Trail: false 66 | Value: true 67 | 2dofknuckle_link_10: 68 | Alpha: 1 69 | Show Axes: false 70 | Show Trail: false 71 | Value: true 72 | 2dofknuckle_link_2: 73 | Alpha: 1 74 | Show Axes: false 75 | Show Trail: false 76 | Value: true 77 | 2dofknuckle_link_3: 78 | Alpha: 1 79 | Show Axes: false 80 | Show Trail: false 81 | Value: true 82 | 2dofknuckle_link_4: 83 | Alpha: 1 84 | Show Axes: false 85 | Show Trail: false 86 | Value: true 87 | 2dofknuckle_link_5: 88 | Alpha: 1 89 | Show Axes: false 90 | Show Trail: false 91 | Value: true 92 | 2dofknuckle_link_6: 93 | Alpha: 1 94 | Show Axes: false 95 | Show Trail: false 96 | Value: true 97 | 2dofknuckle_link_7: 98 | Alpha: 1 99 | Show Axes: false 100 | Show Trail: false 101 | Value: true 102 | 2dofknuckle_link_8: 103 | Alpha: 1 104 | Show Axes: false 105 | Show Trail: false 106 | Value: true 107 | 2dofknuckle_link_9: 108 | Alpha: 1 109 | Show Axes: false 110 | Show Trail: false 111 | Value: true 112 | All Links Enabled: true 113 | Expand Joint Details: false 114 | Expand Link Details: false 115 | Expand Tree: false 116 | Link Tree Style: Links in Alphabetic Order 117 | base_link: 118 | Alpha: 1 119 | Show Axes: false 120 | Show Trail: false 121 | Value: true 122 | bucket_link_1: 123 | Alpha: 1 124 | Show Axes: false 125 | Show Trail: false 126 | Value: true 127 | face_link_1: 128 | Alpha: 1 129 | Show Axes: false 130 | Show Trail: false 131 | Value: true 132 | facebracket_link_1: 133 | Alpha: 1 134 | Show Axes: false 135 | Show Trail: false 136 | Value: true 137 | hcsr04_cans_link_1: 138 | Alpha: 1 139 | Show Axes: false 140 | Show Trail: false 141 | Value: true 142 | hcsr04_chips_link_1: 143 | Alpha: 1 144 | Show Axes: false 145 | Show Trail: false 146 | Value: true 147 | hcsr04_link_1: 148 | Alpha: 1 149 | Show Axes: false 150 | Show Trail: false 151 | Value: true 152 | leg_link_1: 153 | Alpha: 1 154 | Show Axes: false 155 | Show Trail: false 156 | Value: true 157 | leg_link_2: 158 | Alpha: 1 159 | Show Axes: false 160 | Show Trail: false 161 | Value: true 162 | leg_link_3: 163 | Alpha: 1 164 | Show Axes: false 165 | Show Trail: false 166 | Value: true 167 | leg_link_4: 168 | Alpha: 1 169 | Show Axes: false 170 | Show Trail: false 171 | Value: true 172 | lipo_link_1: 173 | Alpha: 1 174 | Show Axes: false 175 | Show Trail: false 176 | Value: true 177 | mg90_link_1: 178 | Alpha: 1 179 | Show Axes: false 180 | Show Trail: false 181 | Value: true 182 | mg90_link_10: 183 | Alpha: 1 184 | Show Axes: false 185 | Show Trail: false 186 | Value: true 187 | mg90_link_2: 188 | Alpha: 1 189 | Show Axes: false 190 | Show Trail: false 191 | Value: true 192 | mg90_link_3: 193 | Alpha: 1 194 | Show Axes: false 195 | Show Trail: false 196 | Value: true 197 | mg90_link_4: 198 | Alpha: 1 199 | Show Axes: false 200 | Show Trail: false 201 | Value: true 202 | mg90_link_5: 203 | Alpha: 1 204 | Show Axes: false 205 | Show Trail: false 206 | Value: true 207 | mg90_link_6: 208 | Alpha: 1 209 | Show Axes: false 210 | Show Trail: false 211 | Value: true 212 | mg90_link_7: 213 | Alpha: 1 214 | Show Axes: false 215 | Show Trail: false 216 | Value: true 217 | mg90_link_8: 218 | Alpha: 1 219 | Show Axes: false 220 | Show Trail: false 221 | Value: true 222 | mg90_link_9: 223 | Alpha: 1 224 | Show Axes: false 225 | Show Trail: false 226 | Value: true 227 | mpu9250_cap_link_1: 228 | Alpha: 1 229 | Show Axes: false 230 | Show Trail: false 231 | Value: true 232 | mpu9250_link_1: 233 | Alpha: 1 234 | Show Axes: false 235 | Show Trail: false 236 | Value: true 237 | mpu9250_mpu_link_1: 238 | Alpha: 1 239 | Show Axes: false 240 | Show Trail: false 241 | Value: true 242 | pizerow_cam_link_1: 243 | Alpha: 1 244 | Show Axes: false 245 | Show Trail: false 246 | Value: true 247 | pizerow_con_link_1: 248 | Alpha: 1 249 | Show Axes: false 250 | Show Trail: false 251 | Value: true 252 | pizerow_cpu_link_1: 253 | Alpha: 1 254 | Show Axes: false 255 | Show Trail: false 256 | Value: true 257 | pizerow_link_1: 258 | Alpha: 1 259 | Show Axes: false 260 | Show Trail: false 261 | Value: true 262 | raspicam_cam_link_1: 263 | Alpha: 1 264 | Show Axes: false 265 | Show Trail: false 266 | Value: true 267 | raspicam_chips_link_1: 268 | Alpha: 1 269 | Show Axes: false 270 | Show Trail: false 271 | Value: true 272 | raspicam_con_link_1: 273 | Alpha: 1 274 | Show Axes: false 275 | Show Trail: false 276 | Value: true 277 | raspicam_link_1: 278 | Alpha: 1 279 | Show Axes: false 280 | Show Trail: false 281 | Value: true 282 | servobottom_link_1: 283 | Alpha: 1 284 | Show Axes: false 285 | Show Trail: false 286 | Value: true 287 | servobottom_link_10: 288 | Alpha: 1 289 | Show Axes: false 290 | Show Trail: false 291 | Value: true 292 | servobottom_link_2: 293 | Alpha: 1 294 | Show Axes: false 295 | Show Trail: false 296 | Value: true 297 | servobottom_link_3: 298 | Alpha: 1 299 | Show Axes: false 300 | Show Trail: false 301 | Value: true 302 | servobottom_link_4: 303 | Alpha: 1 304 | Show Axes: false 305 | Show Trail: false 306 | Value: true 307 | servobottom_link_5: 308 | Alpha: 1 309 | Show Axes: false 310 | Show Trail: false 311 | Value: true 312 | servobottom_link_6: 313 | Alpha: 1 314 | Show Axes: false 315 | Show Trail: false 316 | Value: true 317 | servobottom_link_7: 318 | Alpha: 1 319 | Show Axes: false 320 | Show Trail: false 321 | Value: true 322 | servobottom_link_8: 323 | Alpha: 1 324 | Show Axes: false 325 | Show Trail: false 326 | Value: true 327 | servobottom_link_9: 328 | Alpha: 1 329 | Show Axes: false 330 | Show Trail: false 331 | Value: true 332 | shell_link_1: 333 | Alpha: 1 334 | Show Axes: false 335 | Show Trail: false 336 | Value: true 337 | Name: RobotModel 338 | Robot Description: robot_description 339 | TF Prefix: "" 340 | Update Interval: 0 341 | Value: true 342 | Visual Enabled: true 343 | - Class: rviz/TF 344 | Enabled: false 345 | Frame Timeout: 15 346 | Frames: 347 | All Enabled: true 348 | Marker Scale: 0.5 349 | Name: TF 350 | Show Arrows: true 351 | Show Axes: true 352 | Show Names: true 353 | Tree: 354 | {} 355 | Update Interval: 0 356 | Value: false 357 | Enabled: true 358 | Global Options: 359 | Background Color: 48; 48; 48 360 | Default Light: true 361 | Fixed Frame: base_link 362 | Frame Rate: 30 363 | Name: root 364 | Tools: 365 | - Class: rviz/Interact 366 | Hide Inactive Objects: true 367 | - Class: rviz/MoveCamera 368 | - Class: rviz/Select 369 | - Class: rviz/FocusCamera 370 | - Class: rviz/Measure 371 | - Class: rviz/SetInitialPose 372 | Theta std deviation: 0.2617993950843811 373 | Topic: /initialpose 374 | X std deviation: 0.5 375 | Y std deviation: 0.5 376 | - Class: rviz/SetGoal 377 | Topic: /move_base_simple/goal 378 | - Class: rviz/PublishPoint 379 | Single click: true 380 | Topic: /clicked_point 381 | Value: true 382 | Views: 383 | Current: 384 | Class: rviz/Orbit 385 | Distance: 0.34426525235176086 386 | Enable Stereo Rendering: 387 | Stereo Eye Separation: 0.05999999865889549 388 | Stereo Focal Distance: 1 389 | Swap Stereo Eyes: false 390 | Value: false 391 | Focal Point: 392 | X: -0.0016349668148905039 393 | Y: -0.014781012199819088 394 | Z: 0.017814036458730698 395 | Focal Shape Fixed Size: true 396 | Focal Shape Size: 0.05000000074505806 397 | Invert Z Axis: false 398 | Name: Current View 399 | Near Clip Distance: 0.009999999776482582 400 | Pitch: 0.46039697527885437 401 | Target Frame: 402 | Value: Orbit (rviz) 403 | Yaw: 0.593582272529602 404 | Saved: ~ 405 | Window Geometry: 406 | Displays: 407 | collapsed: false 408 | Height: 882 409 | Hide Left Dock: false 410 | Hide Right Dock: false 411 | QMainWindow State: 000000ff00000000fd000000040000000000000142000002d9fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005d00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000037000002d9000000ca00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002d9fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000037000002d9000000a100fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004c000000044fc0100000002fb0000000800540069006d00650100000000000004c00000026b00fffffffb0000000800540069006d0065010000000000000450000000000000000000000267000002d900000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 412 | Selection: 413 | collapsed: false 414 | Time: 415 | collapsed: false 416 | Tool Properties: 417 | collapsed: false 418 | Views: 419 | collapsed: false 420 | Width: 1216 421 | X: 700 422 | Y: 385 423 | -------------------------------------------------------------------------------- /src/alpha/meshes/base_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/alpha/meshes/base_link.stl -------------------------------------------------------------------------------- /src/alpha/meshes/caster_wheel_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/alpha/meshes/caster_wheel_1.stl -------------------------------------------------------------------------------- /src/alpha/meshes/left_wheel_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/alpha/meshes/left_wheel_1.stl -------------------------------------------------------------------------------- /src/alpha/meshes/right_wheel_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/alpha/meshes/right_wheel_1.stl -------------------------------------------------------------------------------- /src/alpha/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | alpha 4 | 0.0.0 5 | The Alpha_description package 6 | 7 | 8 | 9 | 10 | harshmittal2210 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 | -------------------------------------------------------------------------------- /src/alpha/urdf/Alpha.gazebo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | ${body_color} 13 | 0.2 14 | 0.2 15 | true 16 | true 17 | 18 | 19 | 20 | ${wheel_color} 21 | 1000.0 22 | 1000.0 23 | true 24 | 25 | 26 | 27 | ${wheel_color} 28 | 1000.0 29 | 1000.0 30 | true 31 | 32 | 33 | 34 | ${caster_color} 35 | 0.01 36 | 0.01 37 | true 38 | 39 | 40 | 41 | 42 | 43 | 44 | 10 45 | 46 | 47 | Rev2 48 | 49 | 50 | Rev1 51 | 52 | 53 | 0.3 54 | 55 | 56 | 0.0410 57 | 58 | 59 | 1.0 60 | 61 | 62 | 20 63 | 64 | 65 | cmd_vel 66 | 67 | 68 | odom 69 | 70 | 71 | odom 72 | 73 | 74 | base_link 75 | 76 | 77 | 1 78 | 79 | 80 | true 81 | 82 | 83 | true 84 | 85 | 86 | true 87 | 88 | 89 | false 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /src/alpha/urdf/Alpha.trans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | transmission_interface/SimpleTransmission 6 | 7 | hardware_interface/EffortJointInterface 8 | 9 | 10 | hardware_interface/EffortJointInterface 11 | 1 12 | 13 | 14 | 15 | 16 | transmission_interface/SimpleTransmission 17 | 18 | hardware_interface/EffortJointInterface 19 | 20 | 21 | hardware_interface/EffortJointInterface 22 | 1 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/alpha/urdf/Alpha.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 | 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 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /src/alpha/urdf/materials.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/atom/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(atom) 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 | message_generation 12 | message_runtime 13 | roscpp 14 | rospy 15 | std_msgs 16 | ) 17 | 18 | ## System dependencies are found with CMake's conventions 19 | # find_package(Boost REQUIRED COMPONENTS system) 20 | 21 | 22 | ## Uncomment this if the package has a setup.py. This macro ensures 23 | ## modules and global scripts declared therein get installed 24 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 25 | # catkin_python_setup() 26 | 27 | ################################################ 28 | ## Declare ROS messages, services and actions ## 29 | ################################################ 30 | 31 | ## To declare and build messages, services or actions from within this 32 | ## package, follow these steps: 33 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 34 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 35 | ## * In the file package.xml: 36 | ## * add a build_depend tag for "message_generation" 37 | ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET 38 | ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in 39 | ## but can be declared for certainty nonetheless: 40 | ## * add a exec_depend tag for "message_runtime" 41 | ## * In this file (CMakeLists.txt): 42 | ## * add "message_generation" and every package in MSG_DEP_SET to 43 | ## find_package(catkin REQUIRED COMPONENTS ...) 44 | ## * add "message_runtime" and every package in MSG_DEP_SET to 45 | ## catkin_package(CATKIN_DEPENDS ...) 46 | ## * uncomment the add_*_files sections below as needed 47 | ## and list every .msg/.srv/.action file to be processed 48 | ## * uncomment the generate_messages entry below 49 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 50 | 51 | ## Generate messages in the 'msg' folder 52 | # add_message_files( 53 | # FILES 54 | # Message1.msg 55 | # Message2.msg 56 | # ) 57 | 58 | ## Generate services in the 'srv' folder 59 | # add_service_files( 60 | # FILES 61 | # Service1.srv 62 | # Service2.srv 63 | # ) 64 | 65 | ## Generate actions in the 'action' folder 66 | # add_action_files( 67 | # FILES 68 | # Action1.action 69 | # Action2.action 70 | # ) 71 | 72 | ## Generate added messages and services with any dependencies listed here 73 | # generate_messages( 74 | # DEPENDENCIES 75 | # std_msgs 76 | # ) 77 | 78 | ################################################ 79 | ## Declare ROS dynamic reconfigure parameters ## 80 | ################################################ 81 | 82 | ## To declare and build dynamic reconfigure parameters within this 83 | ## package, follow these steps: 84 | ## * In the file package.xml: 85 | ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" 86 | ## * In this file (CMakeLists.txt): 87 | ## * add "dynamic_reconfigure" to 88 | ## find_package(catkin REQUIRED COMPONENTS ...) 89 | ## * uncomment the "generate_dynamic_reconfigure_options" section below 90 | ## and list every .cfg file to be processed 91 | 92 | ## Generate dynamic reconfigure parameters in the 'cfg' folder 93 | # generate_dynamic_reconfigure_options( 94 | # cfg/DynReconf1.cfg 95 | # cfg/DynReconf2.cfg 96 | # ) 97 | 98 | ################################### 99 | ## catkin specific configuration ## 100 | ################################### 101 | ## The catkin_package macro generates cmake config files for your package 102 | ## Declare things to be passed to dependent projects 103 | ## INCLUDE_DIRS: uncomment this if your package contains header files 104 | ## LIBRARIES: libraries you create in this project that dependent projects also need 105 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 106 | ## DEPENDS: system dependencies of this project that dependent projects also need 107 | catkin_package( 108 | # INCLUDE_DIRS include 109 | # LIBRARIES atom 110 | # CATKIN_DEPENDS message_generation message_runtime roscpp rospy std_msgs 111 | # DEPENDS system_lib 112 | ) 113 | 114 | ########### 115 | ## Build ## 116 | ########### 117 | 118 | ## Specify additional locations of header files 119 | ## Your package locations should be listed before other locations 120 | include_directories( 121 | # include 122 | ${catkin_INCLUDE_DIRS} 123 | ) 124 | 125 | ## Declare a C++ library 126 | # add_library(${PROJECT_NAME} 127 | # src/${PROJECT_NAME}/atom.cpp 128 | # ) 129 | 130 | ## Add cmake target dependencies of the library 131 | ## as an example, code may need to be generated before libraries 132 | ## either from message generation or dynamic reconfigure 133 | # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 134 | 135 | ## Declare a C++ executable 136 | ## With catkin_make all packages are built within a single CMake context 137 | ## The recommended prefix ensures that target names across packages don't collide 138 | # add_executable(${PROJECT_NAME}_node src/atom_node.cpp) 139 | 140 | ## Rename C++ executable without prefix 141 | ## The above recommended prefix causes long target names, the following renames the 142 | ## target back to the shorter version for ease of user use 143 | ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" 144 | # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") 145 | 146 | ## Add cmake target dependencies of the executable 147 | ## same as for the library above 148 | # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 149 | 150 | ## Specify libraries to link a library or executable target against 151 | # target_link_libraries(${PROJECT_NAME}_node 152 | # ${catkin_LIBRARIES} 153 | # ) 154 | 155 | ############# 156 | ## Install ## 157 | ############# 158 | 159 | # all install targets should use catkin DESTINATION variables 160 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 161 | 162 | ## Mark executable scripts (Python etc.) for installation 163 | ## in contrast to setup.py, you can choose the destination 164 | # catkin_install_python(PROGRAMS 165 | # scripts/my_python_script 166 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 167 | # ) 168 | 169 | ## Mark executables for installation 170 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html 171 | # install(TARGETS ${PROJECT_NAME}_node 172 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 173 | # ) 174 | 175 | ## Mark libraries for installation 176 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html 177 | # install(TARGETS ${PROJECT_NAME} 178 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 179 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 180 | # RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} 181 | # ) 182 | 183 | ## Mark cpp header files for installation 184 | # install(DIRECTORY include/${PROJECT_NAME}/ 185 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 186 | # FILES_MATCHING PATTERN "*.h" 187 | # PATTERN ".svn" EXCLUDE 188 | # ) 189 | 190 | ## Mark other files for installation (e.g. launch and bag files, etc.) 191 | # install(FILES 192 | # # myfile1 193 | # # myfile2 194 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 195 | # ) 196 | 197 | ############# 198 | ## Testing ## 199 | ############# 200 | 201 | ## Add gtest based cpp test target and link libraries 202 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_atom.cpp) 203 | # if(TARGET ${PROJECT_NAME}-test) 204 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 205 | # endif() 206 | 207 | ## Add folders to be run by python nosetests 208 | # catkin_add_nosetests(test) 209 | -------------------------------------------------------------------------------- /src/atom/default.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 | - /Camera1 10 | Splitter Ratio: 0.5 11 | Tree Height: 814 12 | - Class: rviz/Selection 13 | Name: Selection 14 | - Class: rviz/Tool Properties 15 | Expanded: 16 | - /2D Pose Estimate1 17 | - /2D Nav Goal1 18 | - /Publish Point1 19 | Name: Tool Properties 20 | Splitter Ratio: 0.5886790156364441 21 | - Class: rviz/Views 22 | Expanded: 23 | - /Current View1 24 | Name: Views 25 | Splitter Ratio: 0.5 26 | - Class: rviz/Time 27 | Name: Time 28 | SyncMode: 0 29 | SyncSource: Camera 30 | Preferences: 31 | PromptSaveOnExit: true 32 | Toolbars: 33 | toolButtonStyle: 2 34 | Visualization Manager: 35 | Class: "" 36 | Displays: 37 | - Alpha: 0.5 38 | Cell Size: 1 39 | Class: rviz/Grid 40 | Color: 160; 160; 164 41 | Enabled: true 42 | Line Style: 43 | Line Width: 0.029999999329447746 44 | Value: Lines 45 | Name: Grid 46 | Normal Cell Count: 0 47 | Offset: 48 | X: 0 49 | Y: 0 50 | Z: 0 51 | Plane: XY 52 | Plane Cell Count: 10 53 | Reference Frame: 54 | Value: true 55 | - Class: rviz/Camera 56 | Enabled: true 57 | Image Rendering: background and overlay 58 | Image Topic: /atom/camera/rgb/image_raw 59 | Name: Camera 60 | Overlay Alpha: 0.5 61 | Queue Size: 2 62 | Transport Hint: raw 63 | Unreliable: false 64 | Value: true 65 | Visibility: 66 | Grid: true 67 | LaserScan: true 68 | RobotModel: true 69 | Value: true 70 | Zoom Factor: 1 71 | - Alpha: 1 72 | Autocompute Intensity Bounds: true 73 | Autocompute Value Bounds: 74 | Max Value: 10 75 | Min Value: -10 76 | Value: true 77 | Axis: Z 78 | Channel Name: intensity 79 | Class: rviz/LaserScan 80 | Color: 255; 255; 255 81 | Color Transformer: Intensity 82 | Decay Time: 0 83 | Enabled: true 84 | Invert Rainbow: false 85 | Max Color: 255; 255; 255 86 | Min Color: 0; 0; 0 87 | Name: LaserScan 88 | Position Transformer: XYZ 89 | Queue Size: 10 90 | Selectable: true 91 | Size (Pixels): 3 92 | Size (m): 0.009999999776482582 93 | Style: Flat Squares 94 | Topic: /scan 95 | Unreliable: false 96 | Use Fixed Frame: true 97 | Use rainbow: true 98 | Value: true 99 | - Alpha: 1 100 | Class: rviz/RobotModel 101 | Collision Enabled: false 102 | Enabled: false 103 | Links: 104 | All Links Enabled: true 105 | Expand Joint Details: false 106 | Expand Link Details: false 107 | Expand Tree: false 108 | Link Tree Style: Links in Alphabetic Order 109 | Name: RobotModel 110 | Robot Description: robot_description 111 | TF Prefix: "" 112 | Update Interval: 0 113 | Value: false 114 | Visual Enabled: true 115 | Enabled: true 116 | Global Options: 117 | Background Color: 48; 48; 48 118 | Default Light: true 119 | Fixed Frame: robot_footprint 120 | Frame Rate: 30 121 | Name: root 122 | Tools: 123 | - Class: rviz/Interact 124 | Hide Inactive Objects: true 125 | - Class: rviz/MoveCamera 126 | - Class: rviz/Select 127 | - Class: rviz/FocusCamera 128 | - Class: rviz/Measure 129 | - Class: rviz/SetInitialPose 130 | Theta std deviation: 0.2617993950843811 131 | Topic: /initialpose 132 | X std deviation: 0.5 133 | Y std deviation: 0.5 134 | - Class: rviz/SetGoal 135 | Topic: /move_base_simple/goal 136 | - Class: rviz/PublishPoint 137 | Single click: true 138 | Topic: /clicked_point 139 | Value: true 140 | Views: 141 | Current: 142 | Class: rviz/Orbit 143 | Distance: 6.238564491271973 144 | Enable Stereo Rendering: 145 | Stereo Eye Separation: 0.05999999865889549 146 | Stereo Focal Distance: 1 147 | Swap Stereo Eyes: false 148 | Value: false 149 | Field of View: 0.7853981852531433 150 | Focal Point: 151 | X: 0 152 | Y: 0 153 | Z: 0 154 | Focal Shape Fixed Size: true 155 | Focal Shape Size: 0.05000000074505806 156 | Invert Z Axis: false 157 | Name: Current View 158 | Near Clip Distance: 0.009999999776482582 159 | Pitch: 0.785398006439209 160 | Target Frame: 161 | Yaw: 0.785398006439209 162 | Saved: ~ 163 | Window Geometry: 164 | Camera: 165 | collapsed: false 166 | Displays: 167 | collapsed: false 168 | Height: 1376 169 | Hide Left Dock: false 170 | Hide Right Dock: false 171 | QMainWindow State: 000000ff00000000fd000000040000000000000156000004c2fc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000003b9000000c900fffffffb0000000c00430061006d00650072006101000003fc000001030000001600fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000004c2fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000004c2000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000009b80000003efc0100000002fb0000000800540069006d00650100000000000009b8000003bc00fffffffb0000000800540069006d0065010000000000000450000000000000000000000747000004c200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 172 | Selection: 173 | collapsed: false 174 | Time: 175 | collapsed: false 176 | Tool Properties: 177 | collapsed: false 178 | Views: 179 | collapsed: false 180 | Width: 2488 181 | X: 72 182 | Y: 27 183 | -------------------------------------------------------------------------------- /src/atom/launch/gazebo_world.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 | 31 | 32 | -------------------------------------------------------------------------------- /src/atom/launch/gmapping_demo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 11 | -------------------------------------------------------------------------------- /src/atom/launch/house.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 | 35 | 36 | 37 | 39 | 40 | -------------------------------------------------------------------------------- /src/atom/launch/localization.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 15 | -------------------------------------------------------------------------------- /src/atom/launch/navigation.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | -------------------------------------------------------------------------------- /src/atom/launch/robot_description.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/atom/launch/world.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 | 35 | 36 | 37 | 39 | 40 | -------------------------------------------------------------------------------- /src/atom/model/atom/materials/scripts/repeated.material: -------------------------------------------------------------------------------- 1 | material Atom 2 | { 3 | technique 4 | { 5 | pass 6 | { 7 | texture_unit 8 | { 9 | ambient 0 0 0 1 10 | diffuse 0 0 0 1 11 | specular 0 0 0 0 12 | emissive 0 1 0 1 13 | // Relative to the location of the material script 14 | texture ../textures/seamless_texture.png 15 | // Repeat the texture over the surface (4 per face) 16 | scale 0.5 0.5 17 | filtering trilinear 18 | } 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /src/atom/model/atom/materials/textures/seamless_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/atom/model/atom/materials/textures/seamless_texture.png -------------------------------------------------------------------------------- /src/atom/model/atom/model.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Atom 5 | 1.0 6 | model.sdf 7 | 8 | 9 | Harsh Mittal 10 | harshmittal2210@gmail.com 11 | 12 | 13 | 14 | 15 | 16 | Simple 4 wheeled robot 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/atom/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | atom 4 | 0.0.0 5 | The atom package 6 | 7 | 8 | 9 | 10 | harsh 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 | message_generation 53 | roscpp 54 | rospy 55 | std_msgs 56 | sensor_msgs 57 | opencv2 58 | cv_bridge 59 | 60 | 61 | roscpp 62 | rospy 63 | std_msgs 64 | sensor_msgs 65 | opencv2 66 | cv_bridge 67 | 68 | 69 | message_runtime 70 | roscpp 71 | rospy 72 | std_msgs 73 | sensor_msgs 74 | opencv2 75 | cv_bridge 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /src/atom/script/control_bot.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | import rospy 4 | from geometry_msgs.msg import Twist 5 | 6 | def stop(vel_msg): 7 | vel_msg.linear.x = 0 8 | vel_msg.linear.y = 0 9 | vel_msg.linear.z = 0 10 | vel_msg.angular.x = 0 11 | vel_msg.angular.y = 0 12 | vel_msg.angular.z = 0 13 | 14 | def move(): 15 | pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10) 16 | rospy.init_node('bot_controller', anonymous=True) 17 | rate = rospy.Rate(10) # 10hz 18 | 19 | vel_msg = Twist() 20 | stop(vel_msg) 21 | 22 | print("Use w,s,a,d to move the bot and press q for exit") 23 | 24 | while not rospy.is_shutdown(): 25 | keyPressed = input() 26 | if keyPressed=='q': 27 | stop(vel_msg) 28 | pub.publish(vel_msg) 29 | break 30 | elif keyPressed=='w': 31 | vel_msg.linear.x = vel_msg.linear.x + 0.01 32 | 33 | elif keyPressed=='a': 34 | vel_msg.angular.z = vel_msg.angular.z + 0.01 35 | 36 | elif keyPressed=='s': 37 | vel_msg.linear.x = vel_msg.linear.x - 0.01 38 | 39 | elif keyPressed=='d': 40 | vel_msg.angular.z = vel_msg.angular.z + 0.01 41 | 42 | elif keyPressed=='x': 43 | stop(vel_msg) 44 | 45 | pub.publish(vel_msg) 46 | 47 | 48 | if __name__ == '__main__': 49 | try: 50 | move() 51 | except rospy.ROSInterruptException: 52 | pass -------------------------------------------------------------------------------- /src/atom/script/imgConvertor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from __future__ import print_function 4 | 5 | import roslib 6 | roslib.load_manifest('atom') 7 | import sys 8 | import rospy 9 | import cv2 10 | from std_msgs.msg import String 11 | from sensor_msgs.msg import Image 12 | from cv_bridge import CvBridge, CvBridgeError 13 | 14 | class image_converter: 15 | 16 | def __init__(self): 17 | self.image_pub = rospy.Publisher("image_topic_2",Image,queue_size=10) 18 | 19 | self.bridge = CvBridge() 20 | self.image_sub = rospy.Subscriber("/camera/rgb/image_raw",Image,self.callback) 21 | 22 | def callback(self,data): 23 | try: 24 | cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8") 25 | except CvBridgeError as e: 26 | print(e) 27 | 28 | (rows,cols,channels) = cv_image.shape 29 | if cols > 60 and rows > 60 : 30 | cv2.circle(cv_image, (50,50), 10, 255) 31 | 32 | cv2.imshow("Image window", cv_image) 33 | cv2.waitKey(3) 34 | 35 | try: 36 | self.image_pub.publish(self.bridge.cv2_to_imgmsg(cv_image, "bgr8")) 37 | except CvBridgeError as e: 38 | print(e) 39 | 40 | def main(args): 41 | ic = image_converter() 42 | 43 | rospy.init_node('image_converter', anonymous=True) 44 | try: 45 | rospy.spin() 46 | except KeyboardInterrupt: 47 | print("Shutting down") 48 | cv2.destroyAllWindows() 49 | 50 | if __name__ == '__main__': 51 | main(sys.argv) -------------------------------------------------------------------------------- /src/atom/script/runCV.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | from __future__ import print_function 4 | 5 | import roslib 6 | roslib.load_manifest('atom') 7 | import sys 8 | import rospy 9 | import cv2 10 | from std_msgs.msg import String 11 | from sensor_msgs.msg import Image 12 | from cv_bridge import CvBridge, CvBridgeError 13 | 14 | class showImage: 15 | def __init__(self): 16 | self.bridge = CvBridge() 17 | self.image_sub = rospy.Subscriber("/camera/rgb/image_raw",Image,self.callback) 18 | 19 | def callback(self,data): 20 | try: 21 | cv_image = self.bridge.imgmsg_to_cv2(data, "bgr8") 22 | except CvBridgeError as e: 23 | print(e) 24 | 25 | (rows,cols,channels) = cv_image.shape 26 | cv2.circle(cv_image, (int(rows/2),int(cols/2)), 10, 255) 27 | cv2.imshow("Image window", cv_image) 28 | cv2.waitKey(3) 29 | 30 | def main(args): 31 | ic = showImage() 32 | rospy.init_node('image_converter', anonymous=True) 33 | try: 34 | rospy.spin() 35 | except KeyboardInterrupt: 36 | print("Shutting down") 37 | cv2.destroyAllWindows() 38 | 39 | if __name__ == '__main__': 40 | main(sys.argv) -------------------------------------------------------------------------------- /src/atom/urdf/atom.gazebo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10.0 8 | /atom 9 | left_wheel_hinge_front 10 | right_wheel_hinge_front 11 | left_wheel_hinge_back 12 | right_wheel_hinge_back 13 | 0.4 14 | 0.2 15 | robot_footprint 16 | 10 17 | 18 | cmd_vel 19 | odom 20 | odom 21 | 22 | cmd_vel 23 | cmd_vel 24 | odom 25 | joint 26 | 27 | true 28 | 29 | 0.0001 30 | 0.0001 31 | 0.01 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 30.0 41 | 42 | 1.3962634 43 | 44 | 800 45 | 800 46 | R8G8B8 47 | 48 | 49 | 0.02 50 | 300 51 | 52 | 53 | 54 | /atom 55 | true 56 | 0.0 57 | camera 58 | rgb/image_raw 59 | rgb/camera_info 60 | camera 61 | 0.07 62 | 0.0 63 | 0.0 64 | 0.0 65 | 0.0 66 | 0.0 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 0 0 0 0 0 0 75 | false 76 | 40 77 | 78 | 79 | 80 | 720 81 | 1 82 | -1.570796 83 | 1.570796 84 | 85 | 86 | 87 | 0.10 88 | 30.0 89 | 0.01 90 | 91 | 92 | gaussian 93 | 97 | 0.0 98 | 0.01 99 | 100 | 101 | 102 | /scan 103 | hokuyo 104 | /atom 105 | 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /src/atom/urdf/atom.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 0 0 0.1 0 0 0 21 | 22 | 23 | 24 | 25 | 26 | 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 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | Gazebo/Green 294 | 1000000.0 295 | 100.0 296 | 1.0 297 | 1.0 298 | 1.0 299 | 0.00 300 | 301 | 302 | 303 | Gazebo/Green 304 | 1000000.0 305 | 100.0 306 | 1.0 307 | 1.0 308 | 1.0 309 | 0.00 310 | 311 | 312 | 313 | Gazebo/Green 314 | 1000000.0 315 | 100.0 316 | 1.0 317 | 1.0 318 | 1.0 319 | 0.00 320 | 321 | 322 | Gazebo/Green 323 | 1000000.0 324 | 100.0 325 | 1.0 326 | 1.0 327 | 1.0 328 | 0.00 329 | 330 | 333 | 334 | 335 | Gazebo/Red 336 | 337 | 338 | 339 | Gazebo/Blue 340 | 341 | 342 | 343 | 344 | 345 | -------------------------------------------------------------------------------- /src/atom/worlds/empty.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | model://ground_plane 8 | 9 | 10 | 11 | 12 | 13 | model://sun 14 | 15 | 16 | 17 | 18 | 19 | 4.927360 -4.376610 3.740080 0.000000 0.275643 2.356190 20 | orbit 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/atom/worlds/empty_bot.world: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | model://ground_plane 8 | 9 | 10 | 11 | 12 | 13 | model://sun 14 | 15 | 16 | 17 | 18 | model://atom 19 | 20 | 21 | 22 | 23 | 24 | 4.927360 -4.376610 3.740080 0.000000 0.275643 2.356190 25 | orbit 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /src/beta_description/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 2.8.3) 2 | project(beta_description) 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 fusion2urdf 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}/fusion2urdf.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/fusion2urdf_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 and/or libraries for installation 166 | # install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node 167 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 168 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 169 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 170 | # ) 171 | 172 | ## Mark cpp header files for installation 173 | # install(DIRECTORY include/${PROJECT_NAME}/ 174 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 175 | # FILES_MATCHING PATTERN "*.h" 176 | # PATTERN ".svn" EXCLUDE 177 | # ) 178 | 179 | ## Mark other files for installation (e.g. launch and bag files, etc.) 180 | # install(FILES 181 | # # myfile1 182 | # # myfile2 183 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 184 | # ) 185 | 186 | ############# 187 | ## Testing ## 188 | ############# 189 | 190 | ## Add gtest based cpp test target and link libraries 191 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_fusion2urdf.cpp) 192 | # if(TARGET ${PROJECT_NAME}-test) 193 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 194 | # endif() 195 | 196 | ## Add folders to be run by python nosetests 197 | # catkin_add_nosetests(test) 198 | -------------------------------------------------------------------------------- /src/beta_description/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Toshinori Kitamura 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /src/beta_description/launch/controller.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/beta_description/launch/controller.yaml: -------------------------------------------------------------------------------- 1 | beta_controller: 2 | # Publish all joint states ----------------------------------- 3 | joint_state_controller: 4 | type: joint_state_controller/JointStateController 5 | publish_rate: 50 6 | 7 | # Position Controllers -------------------------------------- 8 | left_wheel_joint_position_controller: 9 | type: effort_controllers/JointPositionController 10 | joint: left_wheel_joint 11 | pid: {p: 100.0, i: 0.01, d: 10.0} 12 | right_whell_joint_position_controller: 13 | type: effort_controllers/JointPositionController 14 | joint: right_whell_joint 15 | pid: {p: 100.0, i: 0.01, d: 10.0} 16 | -------------------------------------------------------------------------------- /src/beta_description/launch/display.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/beta_description/launch/gazebo.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/beta_description/launch/urdf.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 | - /RobotModel1 10 | - /TF1 11 | Splitter Ratio: 0.5 12 | Tree Height: 591 13 | - Class: rviz/Selection 14 | Name: Selection 15 | - Class: rviz/Tool Properties 16 | Expanded: 17 | - /2D Pose Estimate1 18 | - /2D Nav Goal1 19 | - /Publish Point1 20 | Name: Tool Properties 21 | Splitter Ratio: 0.5886790156364441 22 | - Class: rviz/Views 23 | Expanded: 24 | - /Current View1 25 | Name: Views 26 | Splitter Ratio: 0.5 27 | - Class: rviz/Time 28 | Experimental: false 29 | Name: Time 30 | SyncMode: 0 31 | SyncSource: "" 32 | Preferences: 33 | PromptSaveOnExit: true 34 | Toolbars: 35 | toolButtonStyle: 2 36 | Visualization Manager: 37 | Class: "" 38 | Displays: 39 | - Alpha: 0.5 40 | Cell Size: 1 41 | Class: rviz/Grid 42 | Color: 160; 160; 164 43 | Enabled: true 44 | Line Style: 45 | Line Width: 0.029999999329447746 46 | Value: Lines 47 | Name: Grid 48 | Normal Cell Count: 0 49 | Offset: 50 | X: 0 51 | Y: 0 52 | Z: 0 53 | Plane: XY 54 | Plane Cell Count: 10 55 | Reference Frame: 56 | Value: true 57 | - Alpha: 1 58 | Class: rviz/RobotModel 59 | Collision Enabled: false 60 | Enabled: true 61 | Links: 62 | 2dofknuckle_link_1: 63 | Alpha: 1 64 | Show Axes: false 65 | Show Trail: false 66 | Value: true 67 | 2dofknuckle_link_10: 68 | Alpha: 1 69 | Show Axes: false 70 | Show Trail: false 71 | Value: true 72 | 2dofknuckle_link_2: 73 | Alpha: 1 74 | Show Axes: false 75 | Show Trail: false 76 | Value: true 77 | 2dofknuckle_link_3: 78 | Alpha: 1 79 | Show Axes: false 80 | Show Trail: false 81 | Value: true 82 | 2dofknuckle_link_4: 83 | Alpha: 1 84 | Show Axes: false 85 | Show Trail: false 86 | Value: true 87 | 2dofknuckle_link_5: 88 | Alpha: 1 89 | Show Axes: false 90 | Show Trail: false 91 | Value: true 92 | 2dofknuckle_link_6: 93 | Alpha: 1 94 | Show Axes: false 95 | Show Trail: false 96 | Value: true 97 | 2dofknuckle_link_7: 98 | Alpha: 1 99 | Show Axes: false 100 | Show Trail: false 101 | Value: true 102 | 2dofknuckle_link_8: 103 | Alpha: 1 104 | Show Axes: false 105 | Show Trail: false 106 | Value: true 107 | 2dofknuckle_link_9: 108 | Alpha: 1 109 | Show Axes: false 110 | Show Trail: false 111 | Value: true 112 | All Links Enabled: true 113 | Expand Joint Details: false 114 | Expand Link Details: false 115 | Expand Tree: false 116 | Link Tree Style: Links in Alphabetic Order 117 | base_link: 118 | Alpha: 1 119 | Show Axes: false 120 | Show Trail: false 121 | Value: true 122 | bucket_link_1: 123 | Alpha: 1 124 | Show Axes: false 125 | Show Trail: false 126 | Value: true 127 | face_link_1: 128 | Alpha: 1 129 | Show Axes: false 130 | Show Trail: false 131 | Value: true 132 | facebracket_link_1: 133 | Alpha: 1 134 | Show Axes: false 135 | Show Trail: false 136 | Value: true 137 | hcsr04_cans_link_1: 138 | Alpha: 1 139 | Show Axes: false 140 | Show Trail: false 141 | Value: true 142 | hcsr04_chips_link_1: 143 | Alpha: 1 144 | Show Axes: false 145 | Show Trail: false 146 | Value: true 147 | hcsr04_link_1: 148 | Alpha: 1 149 | Show Axes: false 150 | Show Trail: false 151 | Value: true 152 | leg_link_1: 153 | Alpha: 1 154 | Show Axes: false 155 | Show Trail: false 156 | Value: true 157 | leg_link_2: 158 | Alpha: 1 159 | Show Axes: false 160 | Show Trail: false 161 | Value: true 162 | leg_link_3: 163 | Alpha: 1 164 | Show Axes: false 165 | Show Trail: false 166 | Value: true 167 | leg_link_4: 168 | Alpha: 1 169 | Show Axes: false 170 | Show Trail: false 171 | Value: true 172 | lipo_link_1: 173 | Alpha: 1 174 | Show Axes: false 175 | Show Trail: false 176 | Value: true 177 | mg90_link_1: 178 | Alpha: 1 179 | Show Axes: false 180 | Show Trail: false 181 | Value: true 182 | mg90_link_10: 183 | Alpha: 1 184 | Show Axes: false 185 | Show Trail: false 186 | Value: true 187 | mg90_link_2: 188 | Alpha: 1 189 | Show Axes: false 190 | Show Trail: false 191 | Value: true 192 | mg90_link_3: 193 | Alpha: 1 194 | Show Axes: false 195 | Show Trail: false 196 | Value: true 197 | mg90_link_4: 198 | Alpha: 1 199 | Show Axes: false 200 | Show Trail: false 201 | Value: true 202 | mg90_link_5: 203 | Alpha: 1 204 | Show Axes: false 205 | Show Trail: false 206 | Value: true 207 | mg90_link_6: 208 | Alpha: 1 209 | Show Axes: false 210 | Show Trail: false 211 | Value: true 212 | mg90_link_7: 213 | Alpha: 1 214 | Show Axes: false 215 | Show Trail: false 216 | Value: true 217 | mg90_link_8: 218 | Alpha: 1 219 | Show Axes: false 220 | Show Trail: false 221 | Value: true 222 | mg90_link_9: 223 | Alpha: 1 224 | Show Axes: false 225 | Show Trail: false 226 | Value: true 227 | mpu9250_cap_link_1: 228 | Alpha: 1 229 | Show Axes: false 230 | Show Trail: false 231 | Value: true 232 | mpu9250_link_1: 233 | Alpha: 1 234 | Show Axes: false 235 | Show Trail: false 236 | Value: true 237 | mpu9250_mpu_link_1: 238 | Alpha: 1 239 | Show Axes: false 240 | Show Trail: false 241 | Value: true 242 | pizerow_cam_link_1: 243 | Alpha: 1 244 | Show Axes: false 245 | Show Trail: false 246 | Value: true 247 | pizerow_con_link_1: 248 | Alpha: 1 249 | Show Axes: false 250 | Show Trail: false 251 | Value: true 252 | pizerow_cpu_link_1: 253 | Alpha: 1 254 | Show Axes: false 255 | Show Trail: false 256 | Value: true 257 | pizerow_link_1: 258 | Alpha: 1 259 | Show Axes: false 260 | Show Trail: false 261 | Value: true 262 | raspicam_cam_link_1: 263 | Alpha: 1 264 | Show Axes: false 265 | Show Trail: false 266 | Value: true 267 | raspicam_chips_link_1: 268 | Alpha: 1 269 | Show Axes: false 270 | Show Trail: false 271 | Value: true 272 | raspicam_con_link_1: 273 | Alpha: 1 274 | Show Axes: false 275 | Show Trail: false 276 | Value: true 277 | raspicam_link_1: 278 | Alpha: 1 279 | Show Axes: false 280 | Show Trail: false 281 | Value: true 282 | servobottom_link_1: 283 | Alpha: 1 284 | Show Axes: false 285 | Show Trail: false 286 | Value: true 287 | servobottom_link_10: 288 | Alpha: 1 289 | Show Axes: false 290 | Show Trail: false 291 | Value: true 292 | servobottom_link_2: 293 | Alpha: 1 294 | Show Axes: false 295 | Show Trail: false 296 | Value: true 297 | servobottom_link_3: 298 | Alpha: 1 299 | Show Axes: false 300 | Show Trail: false 301 | Value: true 302 | servobottom_link_4: 303 | Alpha: 1 304 | Show Axes: false 305 | Show Trail: false 306 | Value: true 307 | servobottom_link_5: 308 | Alpha: 1 309 | Show Axes: false 310 | Show Trail: false 311 | Value: true 312 | servobottom_link_6: 313 | Alpha: 1 314 | Show Axes: false 315 | Show Trail: false 316 | Value: true 317 | servobottom_link_7: 318 | Alpha: 1 319 | Show Axes: false 320 | Show Trail: false 321 | Value: true 322 | servobottom_link_8: 323 | Alpha: 1 324 | Show Axes: false 325 | Show Trail: false 326 | Value: true 327 | servobottom_link_9: 328 | Alpha: 1 329 | Show Axes: false 330 | Show Trail: false 331 | Value: true 332 | shell_link_1: 333 | Alpha: 1 334 | Show Axes: false 335 | Show Trail: false 336 | Value: true 337 | Name: RobotModel 338 | Robot Description: robot_description 339 | TF Prefix: "" 340 | Update Interval: 0 341 | Value: true 342 | Visual Enabled: true 343 | - Class: rviz/TF 344 | Enabled: false 345 | Frame Timeout: 15 346 | Frames: 347 | All Enabled: true 348 | Marker Scale: 0.5 349 | Name: TF 350 | Show Arrows: true 351 | Show Axes: true 352 | Show Names: true 353 | Tree: 354 | {} 355 | Update Interval: 0 356 | Value: false 357 | Enabled: true 358 | Global Options: 359 | Background Color: 48; 48; 48 360 | Default Light: true 361 | Fixed Frame: base_link 362 | Frame Rate: 30 363 | Name: root 364 | Tools: 365 | - Class: rviz/Interact 366 | Hide Inactive Objects: true 367 | - Class: rviz/MoveCamera 368 | - Class: rviz/Select 369 | - Class: rviz/FocusCamera 370 | - Class: rviz/Measure 371 | - Class: rviz/SetInitialPose 372 | Theta std deviation: 0.2617993950843811 373 | Topic: /initialpose 374 | X std deviation: 0.5 375 | Y std deviation: 0.5 376 | - Class: rviz/SetGoal 377 | Topic: /move_base_simple/goal 378 | - Class: rviz/PublishPoint 379 | Single click: true 380 | Topic: /clicked_point 381 | Value: true 382 | Views: 383 | Current: 384 | Class: rviz/Orbit 385 | Distance: 0.34426525235176086 386 | Enable Stereo Rendering: 387 | Stereo Eye Separation: 0.05999999865889549 388 | Stereo Focal Distance: 1 389 | Swap Stereo Eyes: false 390 | Value: false 391 | Focal Point: 392 | X: -0.0016349668148905039 393 | Y: -0.014781012199819088 394 | Z: 0.017814036458730698 395 | Focal Shape Fixed Size: true 396 | Focal Shape Size: 0.05000000074505806 397 | Invert Z Axis: false 398 | Name: Current View 399 | Near Clip Distance: 0.009999999776482582 400 | Pitch: 0.46039697527885437 401 | Target Frame: 402 | Value: Orbit (rviz) 403 | Yaw: 0.593582272529602 404 | Saved: ~ 405 | Window Geometry: 406 | Displays: 407 | collapsed: false 408 | Height: 882 409 | Hide Left Dock: false 410 | Hide Right Dock: false 411 | QMainWindow State: 000000ff00000000fd000000040000000000000142000002d9fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005d00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000037000002d9000000ca00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002d9fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000037000002d9000000a100fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004c000000044fc0100000002fb0000000800540069006d00650100000000000004c00000026b00fffffffb0000000800540069006d0065010000000000000450000000000000000000000267000002d900000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 412 | Selection: 413 | collapsed: false 414 | Time: 415 | collapsed: false 416 | Tool Properties: 417 | collapsed: false 418 | Views: 419 | collapsed: false 420 | Width: 1216 421 | X: 700 422 | Y: 385 423 | -------------------------------------------------------------------------------- /src/beta_description/meshes/base_link.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/beta_description/meshes/base_link.stl -------------------------------------------------------------------------------- /src/beta_description/meshes/camera_link_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/beta_description/meshes/camera_link_1.stl -------------------------------------------------------------------------------- /src/beta_description/meshes/caster_wheel_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/beta_description/meshes/caster_wheel_1.stl -------------------------------------------------------------------------------- /src/beta_description/meshes/left_wheel_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/beta_description/meshes/left_wheel_1.stl -------------------------------------------------------------------------------- /src/beta_description/meshes/lidar_link_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/beta_description/meshes/lidar_link_1.stl -------------------------------------------------------------------------------- /src/beta_description/meshes/pi_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/beta_description/meshes/pi_1.stl -------------------------------------------------------------------------------- /src/beta_description/meshes/right_wheel_1.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/beta_description/meshes/right_wheel_1.stl -------------------------------------------------------------------------------- /src/beta_description/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | beta_description 4 | 0.0.0 5 | The beta_description package 6 | 7 | 8 | 9 | 10 | syuntoku14 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 | -------------------------------------------------------------------------------- /src/beta_description/urdf/beta.gazebo: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ${body_color} 16 | 0.2 17 | 0.2 18 | true 19 | true 20 | 21 | 22 | 23 | ${wheel_color} 24 | 1000 25 | 1000 26 | true 27 | 28 | 29 | 30 | ${wheel_color} 31 | 1000 32 | 1000 33 | true 34 | 35 | 36 | 37 | ${lidar_color} 38 | 0.2 39 | 0.2 40 | true 41 | 42 | 43 | 44 | ${camera_color} 45 | 0.2 46 | 0.2 47 | true 48 | 49 | 50 | 51 | ${pi_color} 52 | 0.2 53 | 0.2 54 | true 55 | 56 | 57 | 58 | ${caster_color} 59 | 0.01 60 | 0.01 61 | true 62 | 63 | 64 | 65 | 66 | 67 | 68 | 10 69 | 70 | 71 | left_wheel_joint 72 | 73 | 74 | right_whell_joint 75 | 76 | 77 | 0.17 78 | 79 | 80 | 0.1 81 | 82 | 83 | 1.0 84 | 85 | 86 | 50 87 | 88 | 89 | cmd_vel 90 | 91 | 92 | odom 93 | 94 | 95 | odom 96 | 97 | 98 | base_link 99 | 100 | 101 | 1 102 | 103 | 104 | true 105 | 106 | 107 | true 108 | 109 | 110 | true 111 | 112 | 113 | false 114 | 115 | 116 | 117 | 118 | 119 | 120 | 30.0 121 | 122 | 1.3962634 123 | 124 | 800 125 | 800 126 | R8G8B8 127 | 128 | 129 | 0.02 130 | 300 131 | 132 | 133 | 134 | 135 | true 136 | 30.0 137 | camera 138 | rgb/image_raw 139 | rgb/camera_info 140 | camera 141 | 0.07 142 | 0.0 143 | 0.0 144 | 0.0 145 | 0.0 146 | 0.0 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 0 0 0 0 0 0 155 | true 156 | 40 157 | 158 | 159 | 160 | 720 161 | 1 162 | -1.570796 163 | 1.570796 164 | 165 | 166 | 167 | 0.10 168 | 5.0 169 | 0.01 170 | 171 | 172 | gaussian 173 | 177 | 0.0 178 | 0.01 179 | 180 | 181 | 182 | /scan 183 | lidar_link_1 184 | 185 | 186 | 187 | 188 | 189 | -------------------------------------------------------------------------------- /src/beta_description/urdf/beta.trans: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | transmission_interface/SimpleTransmission 6 | 7 | hardware_interface/EffortJointInterface 8 | 9 | 10 | hardware_interface/EffortJointInterface 11 | 1 12 | 13 | 14 | 15 | 16 | transmission_interface/SimpleTransmission 17 | 18 | hardware_interface/EffortJointInterface 19 | 20 | 21 | hardware_interface/EffortJointInterface 22 | 1 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/beta_description/urdf/beta.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 | 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 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 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 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | -------------------------------------------------------------------------------- /src/beta_description/urdf/materials.xacro: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/maps/aws_house/map.pgm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bytesByHarsh/Robotics_ws/1c3185b37b85fcc99753a528dab683611cddea65/src/maps/aws_house/map.pgm -------------------------------------------------------------------------------- /src/maps/aws_house/map.yaml: -------------------------------------------------------------------------------- 1 | image: map.pgm 2 | resolution: 0.010000 3 | origin: [-11.240000, -12.200000, 0.000000] 4 | negate: 0 5 | occupied_thresh: 0.65 6 | free_thresh: 0.196 7 | 8 | -------------------------------------------------------------------------------- /src/navigation_stack/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(navigation_stack) 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 | amcl 12 | dwa_local_planner 13 | gmapping 14 | map_server 15 | move_base 16 | roscpp 17 | rospy 18 | sensor_msgs 19 | tf 20 | gazebo_ros 21 | nav_msgs 22 | geometry_msgs 23 | ) 24 | 25 | ## System dependencies are found with CMake's conventions 26 | # find_package(Boost REQUIRED COMPONENTS system) 27 | 28 | 29 | ## Uncomment this if the package has a setup.py. This macro ensures 30 | ## modules and global scripts declared therein get installed 31 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html 32 | # catkin_python_setup() 33 | 34 | ################################################ 35 | ## Declare ROS messages, services and actions ## 36 | ################################################ 37 | 38 | ## To declare and build messages, services or actions from within this 39 | ## package, follow these steps: 40 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in 41 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). 42 | ## * In the file package.xml: 43 | ## * add a build_depend tag for "message_generation" 44 | ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET 45 | ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in 46 | ## but can be declared for certainty nonetheless: 47 | ## * add a exec_depend tag for "message_runtime" 48 | ## * In this file (CMakeLists.txt): 49 | ## * add "message_generation" and every package in MSG_DEP_SET to 50 | ## find_package(catkin REQUIRED COMPONENTS ...) 51 | ## * add "message_runtime" and every package in MSG_DEP_SET to 52 | ## catkin_package(CATKIN_DEPENDS ...) 53 | ## * uncomment the add_*_files sections below as needed 54 | ## and list every .msg/.srv/.action file to be processed 55 | ## * uncomment the generate_messages entry below 56 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) 57 | 58 | ## Generate messages in the 'msg' folder 59 | # add_message_files( 60 | # FILES 61 | # Message1.msg 62 | # Message2.msg 63 | # ) 64 | 65 | ## Generate services in the 'srv' folder 66 | # add_service_files( 67 | # FILES 68 | # Service1.srv 69 | # Service2.srv 70 | # ) 71 | 72 | ## Generate actions in the 'action' folder 73 | # add_action_files( 74 | # FILES 75 | # Action1.action 76 | # Action2.action 77 | # ) 78 | 79 | ## Generate added messages and services with any dependencies listed here 80 | # generate_messages( 81 | # DEPENDENCIES 82 | # sensor_msgs 83 | # ) 84 | 85 | ################################################ 86 | ## Declare ROS dynamic reconfigure parameters ## 87 | ################################################ 88 | 89 | ## To declare and build dynamic reconfigure parameters within this 90 | ## package, follow these steps: 91 | ## * In the file package.xml: 92 | ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" 93 | ## * In this file (CMakeLists.txt): 94 | ## * add "dynamic_reconfigure" to 95 | ## find_package(catkin REQUIRED COMPONENTS ...) 96 | ## * uncomment the "generate_dynamic_reconfigure_options" section below 97 | ## and list every .cfg file to be processed 98 | 99 | ## Generate dynamic reconfigure parameters in the 'cfg' folder 100 | # generate_dynamic_reconfigure_options( 101 | # cfg/DynReconf1.cfg 102 | # cfg/DynReconf2.cfg 103 | # ) 104 | 105 | ################################### 106 | ## catkin specific configuration ## 107 | ################################### 108 | ## The catkin_package macro generates cmake config files for your package 109 | ## Declare things to be passed to dependent projects 110 | ## INCLUDE_DIRS: uncomment this if your package contains header files 111 | ## LIBRARIES: libraries you create in this project that dependent projects also need 112 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need 113 | ## DEPENDS: system dependencies of this project that dependent projects also need 114 | catkin_package( 115 | #INCLUDE_DIRS include 116 | LIBRARIES navigation_stack 117 | CATKIN_DEPENDS amcl dwa_local_planner gmapping map_server move_base roscpp rospy sensor_msgs tf geometry_msgs nav_msgs gazebo_ros 118 | DEPENDS system_lib 119 | DEPENDS GAZEBO 120 | ) 121 | 122 | ########### 123 | ## Build ## 124 | ########### 125 | 126 | ## Specify additional locations of header files 127 | ## Your package locations should be listed before other locations 128 | include_directories( 129 | # include 130 | ${catkin_INCLUDE_DIRS} 131 | ${GAZEBO_INCLUDE_DIRS} 132 | ) 133 | 134 | link_directories(${GAZEBO_LIBRARY_DIRS}) 135 | 136 | 137 | 138 | add_executable(bot_drive src/bot_drive.cpp) 139 | add_dependencies(bot_drive ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 140 | target_link_libraries(bot_drive ${catkin_LIBRARIES} ${GAZEBO_LIBRARIES}) 141 | 142 | ## Declare a C++ library 143 | # add_library(${PROJECT_NAME} 144 | # src/${PROJECT_NAME}/navigation_stack.cpp 145 | # ) 146 | 147 | ## Add cmake target dependencies of the library 148 | ## as an example, code may need to be generated before libraries 149 | ## either from message generation or dynamic reconfigure 150 | # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 151 | 152 | ## Declare a C++ executable 153 | ## With catkin_make all packages are built within a single CMake context 154 | ## The recommended prefix ensures that target names across packages don't collide 155 | # add_executable(${PROJECT_NAME}_node src/navigation_stack_node.cpp) 156 | 157 | ## Rename C++ executable without prefix 158 | ## The above recommended prefix causes long target names, the following renames the 159 | ## target back to the shorter version for ease of user use 160 | ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" 161 | # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") 162 | 163 | ## Add cmake target dependencies of the executable 164 | ## same as for the library above 165 | # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) 166 | 167 | ## Specify libraries to link a library or executable target against 168 | # target_link_libraries(${PROJECT_NAME}_node 169 | # ${catkin_LIBRARIES} 170 | # ) 171 | 172 | ############# 173 | ## Install ## 174 | ############# 175 | 176 | # all install targets should use catkin DESTINATION variables 177 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 178 | 179 | ## Mark executable scripts (Python etc.) for installation 180 | ## in contrast to setup.py, you can choose the destination 181 | # catkin_install_python(PROGRAMS 182 | # scripts/my_python_script 183 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 184 | # ) 185 | 186 | ## Mark executables for installation 187 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html 188 | # install(TARGETS ${PROJECT_NAME}_node 189 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 190 | # ) 191 | 192 | ## Mark libraries for installation 193 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html 194 | # install(TARGETS ${PROJECT_NAME} 195 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 196 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} 197 | # RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} 198 | # ) 199 | 200 | ## Mark cpp header files for installation 201 | # install(DIRECTORY include/${PROJECT_NAME}/ 202 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} 203 | # FILES_MATCHING PATTERN "*.h" 204 | # PATTERN ".svn" EXCLUDE 205 | # ) 206 | 207 | ## Mark other files for installation (e.g. launch and bag files, etc.) 208 | # install(FILES 209 | # # myfile1 210 | # # myfile2 211 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 212 | # ) 213 | 214 | ############# 215 | ## Testing ## 216 | ############# 217 | 218 | ## Add gtest based cpp test target and link libraries 219 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_navigation_stack.cpp) 220 | # if(TARGET ${PROJECT_NAME}-test) 221 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) 222 | # endif() 223 | 224 | ## Add folders to be run by python nosetests 225 | # catkin_add_nosetests(test) 226 | -------------------------------------------------------------------------------- /src/navigation_stack/launch/amcl.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/navigation_stack/launch/auto_mapping.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/navigation_stack/launch/includes/gmapping/r200_gmapping.launch.xml: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /src/navigation_stack/launch/includes/move_base.launch.xml: -------------------------------------------------------------------------------- 1 | 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 | -------------------------------------------------------------------------------- /src/navigation_stack/launch/includes/safety_controller.launch.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/navigation_stack/launch/includes/velocity_smoother.launch.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/navigation_stack/package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | navigation_stack 4 | 0.0.0 5 | The navigation_stack package 6 | 7 | 8 | 9 | 10 | harshmittal 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 | amcl 53 | dwa_local_planner 54 | gmapping 55 | map_server 56 | move_base 57 | roscpp 58 | rospy 59 | sensor_msgs 60 | tf 61 | amcl 62 | dwa_local_planner 63 | gmapping 64 | map_server 65 | move_base 66 | roscpp 67 | rospy 68 | sensor_msgs 69 | tf 70 | amcl 71 | dwa_local_planner 72 | gmapping 73 | map_server 74 | move_base 75 | roscpp 76 | rospy 77 | sensor_msgs 78 | tf 79 | 80 | geometry_msgs 81 | nav_msgs 82 | gazebo_ros 83 | gazebo 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /src/navigation_stack/param/costmap_common_params.yaml: -------------------------------------------------------------------------------- 1 | max_obstacle_height: 0.60 # assume something like an arm is mounted on top of the robot 2 | 3 | # Obstacle Cost Shaping (http://wiki.ros.org/costmap_2d/hydro/inflation) 4 | robot_radius: 0.20 # distance a circular robot should be clear of the obstacle (kobuki: 0.18) 5 | # footprint: [[x0, y0], [x1, y1], ... [xn, yn]] # if the robot is not circular 6 | 7 | map_type: voxel 8 | 9 | obstacle_layer: 10 | enabled: true 11 | max_obstacle_height: 0.6 12 | origin_z: 0.0 13 | z_resolution: 0.2 14 | z_voxels: 2 15 | unknown_threshold: 15 16 | mark_threshold: 0 17 | combination_method: 1 18 | track_unknown_space: true #true needed for disabling global path planning through unknown space 19 | obstacle_range: 2.5 20 | raytrace_range: 3.0 21 | origin_z: 0.0 22 | z_resolution: 0.2 23 | z_voxels: 2 24 | publish_voxel_map: false 25 | observation_sources: scan bump 26 | scan: 27 | data_type: LaserScan 28 | topic: scan 29 | marking: true 30 | clearing: true 31 | min_obstacle_height: 0.25 32 | max_obstacle_height: 0.35 33 | bump: 34 | data_type: PointCloud2 35 | topic: mobile_base/sensors/bumper_pointcloud 36 | marking: true 37 | clearing: false 38 | min_obstacle_height: 0.0 39 | max_obstacle_height: 0.15 40 | # for debugging only, let's you see the entire voxel grid 41 | 42 | #cost_scaling_factor and inflation_radius were now moved to the inflation_layer ns 43 | inflation_layer: 44 | enabled: true 45 | cost_scaling_factor: 5.0 # exponential rate at which the obstacle cost drops off (default: 10) 46 | inflation_radius: 0.5 # max. distance from an obstacle at which costs are incurred for planning paths. 47 | 48 | static_layer: 49 | enabled: true 50 | 51 | 52 | -------------------------------------------------------------------------------- /src/navigation_stack/param/dummy.yaml: -------------------------------------------------------------------------------- 1 | #A dummy file loaded when no custom param file is given 2 | -------------------------------------------------------------------------------- /src/navigation_stack/param/dwa_local_planner_params.yaml: -------------------------------------------------------------------------------- 1 | DWAPlannerROS: 2 | 3 | # Robot Configuration Parameters - Kobuki 4 | max_vel_x: 0.5 # 0.55 5 | min_vel_x: 0.0 6 | 7 | max_vel_y: 0.0 # diff drive robot 8 | min_vel_y: 0.0 # diff drive robot 9 | 10 | max_trans_vel: 0.5 # choose slightly less than the base's capability 11 | min_trans_vel: 0.1 # this is the min trans velocity when there is negligible rotational velocity 12 | trans_stopped_vel: 0.1 13 | 14 | # Warning! 15 | # do not set min_trans_vel to 0.0 otherwise dwa will always think translational velocities 16 | # are non-negligible and small in place rotational velocities will be created. 17 | 18 | max_rot_vel: 5.0 # choose slightly less than the base's capability 19 | min_rot_vel: 0.4 # this is the min angular velocity when there is negligible translational velocity 20 | rot_stopped_vel: 0.4 21 | 22 | acc_lim_x: 1.0 # maximum is theoretically 2.0, but we 23 | acc_lim_theta: 2.0 24 | acc_lim_y: 0.0 # diff drive robot 25 | 26 | # Goal Tolerance Parameters 27 | yaw_goal_tolerance: 0.3 # 0.05 28 | xy_goal_tolerance: 0.15 # 0.10 29 | # latch_xy_goal_tolerance: false 30 | 31 | # Forward Simulation Parameters 32 | sim_time: 1.0 # 1.7 33 | vx_samples: 6 # 3 34 | vy_samples: 1 # diff drive robot, there is only one sample 35 | vtheta_samples: 20 # 20 36 | 37 | # Trajectory Scoring Parameters 38 | path_distance_bias: 64.0 # 32.0 - weighting for how much it should stick to the global path plan 39 | goal_distance_bias: 24.0 # 24.0 - wighting for how much it should attempt to reach its goal 40 | occdist_scale: 0.5 # 0.01 - weighting for how much the controller should avoid obstacles 41 | forward_point_distance: 0.325 # 0.325 - how far along to place an additional scoring point 42 | stop_time_buffer: 0.2 # 0.2 - amount of time a robot must stop in before colliding for a valid traj. 43 | scaling_speed: 0.25 # 0.25 - absolute velocity at which to start scaling the robot's footprint 44 | max_scaling_factor: 0.2 # 0.2 - how much to scale the robot's footprint when at speed. 45 | 46 | # Oscillation Prevention Parameters 47 | oscillation_reset_dist: 0.05 # 0.05 - how far to travel before resetting oscillation flags 48 | 49 | # Debugging 50 | publish_traj_pc : true 51 | publish_cost_grid_pc: true 52 | global_frame_id: odom 53 | 54 | 55 | # Differential-drive robot configuration - necessary? 56 | # holonomic_robot: false 57 | -------------------------------------------------------------------------------- /src/navigation_stack/param/global_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_costmap: 2 | global_frame: /map 3 | robot_base_frame: /base_footprint 4 | update_frequency: 1.0 5 | publish_frequency: 0.5 6 | static_map: true 7 | transform_tolerance: 0.5 8 | plugins: 9 | - {name: static_layer, type: "costmap_2d::StaticLayer"} 10 | - {name: obstacle_layer, type: "costmap_2d::VoxelLayer"} 11 | - {name: inflation_layer, type: "costmap_2d::InflationLayer"} 12 | 13 | -------------------------------------------------------------------------------- /src/navigation_stack/param/global_planner_params.yaml: -------------------------------------------------------------------------------- 1 | 2 | GlobalPlanner: # Also see: http://wiki.ros.org/global_planner 3 | old_navfn_behavior: false # Exactly mirror behavior of navfn, use defaults for other boolean parameters, default false 4 | use_quadratic: true # Use the quadratic approximation of the potential. Otherwise, use a simpler calculation, default true 5 | use_dijkstra: true # Use dijkstra's algorithm. Otherwise, A*, default true 6 | use_grid_path: false # Create a path that follows the grid boundaries. Otherwise, use a gradient descent method, default false 7 | 8 | allow_unknown: true # Allow planner to plan through unknown space, default true 9 | #Needs to have track_unknown_space: true in the obstacle / voxel layer (in costmap_commons_param) to work 10 | planner_window_x: 0.0 # default 0.0 11 | planner_window_y: 0.0 # default 0.0 12 | default_tolerance: 0.0 # If goal in obstacle, plan to the closest point in radius default_tolerance, default 0.0 13 | 14 | publish_scale: 100 # Scale by which the published potential gets multiplied, default 100 15 | planner_costmap_publish_frequency: 0.0 # default 0.0 16 | 17 | lethal_cost: 253 # default 253 18 | neutral_cost: 50 # default 50 19 | cost_factor: 3.0 # Factor to multiply each cost from costmap by, default 3.0 20 | publish_potential: true # Publish Potential Costmap (this is not like the navfn pointcloud2 potential), default true -------------------------------------------------------------------------------- /src/navigation_stack/param/local_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | local_costmap: 2 | global_frame: odom 3 | robot_base_frame: /base_footprint 4 | update_frequency: 5.0 5 | publish_frequency: 2.0 6 | static_map: false 7 | rolling_window: true 8 | width: 4.0 9 | height: 4.0 10 | resolution: 0.05 11 | transform_tolerance: 0.5 12 | plugins: 13 | - {name: obstacle_layer, type: "costmap_2d::VoxelLayer"} 14 | - {name: inflation_layer, type: "costmap_2d::InflationLayer"} -------------------------------------------------------------------------------- /src/navigation_stack/param/move_base_params.yaml: -------------------------------------------------------------------------------- 1 | # Move base node parameters. For full documentation of the parameters in this file, please see 2 | # 3 | # http://www.ros.org/wiki/move_base 4 | # 5 | shutdown_costmaps: false 6 | 7 | controller_frequency: 5.0 8 | controller_patience: 3.0 9 | 10 | 11 | planner_frequency: 1.0 12 | planner_patience: 5.0 13 | 14 | oscillation_timeout: 10.0 15 | oscillation_distance: 0.2 16 | 17 | # local planner - default is trajectory rollout 18 | base_local_planner: "dwa_local_planner/DWAPlannerROS" 19 | 20 | base_global_planner: "navfn/NavfnROS" #alternatives: global_planner/GlobalPlanner, carrot_planner/CarrotPlanner 21 | 22 | 23 | #We plan to integrate recovery behaviors for turtlebot but currently those belong to gopher and still have to be adapted. 24 | ## recovery behaviors; we avoid spinning, but we need a fall-back replanning 25 | #recovery_behavior_enabled: true 26 | 27 | #recovery_behaviors: 28 | #- name: 'super_conservative_reset1' 29 | #type: 'clear_costmap_recovery/ClearCostmapRecovery' 30 | #- name: 'conservative_reset1' 31 | #type: 'clear_costmap_recovery/ClearCostmapRecovery' 32 | #- name: 'aggressive_reset1' 33 | #type: 'clear_costmap_recovery/ClearCostmapRecovery' 34 | #- name: 'clearing_rotation1' 35 | #type: 'rotate_recovery/RotateRecovery' 36 | #- name: 'super_conservative_reset2' 37 | #type: 'clear_costmap_recovery/ClearCostmapRecovery' 38 | #- name: 'conservative_reset2' 39 | #type: 'clear_costmap_recovery/ClearCostmapRecovery' 40 | #- name: 'aggressive_reset2' 41 | #type: 'clear_costmap_recovery/ClearCostmapRecovery' 42 | #- name: 'clearing_rotation2' 43 | #type: 'rotate_recovery/RotateRecovery' 44 | 45 | #super_conservative_reset1: 46 | #reset_distance: 3.0 47 | #conservative_reset1: 48 | #reset_distance: 1.5 49 | #aggressive_reset1: 50 | #reset_distance: 0.0 51 | #super_conservative_reset2: 52 | #reset_distance: 3.0 53 | #conservative_reset2: 54 | #reset_distance: 1.5 55 | #aggressive_reset2: 56 | #reset_distance: 0.0 57 | -------------------------------------------------------------------------------- /src/navigation_stack/param/navfn_global_planner_params.yaml: -------------------------------------------------------------------------------- 1 | 2 | NavfnROS: 3 | visualize_potential: false #Publish potential for rviz as pointcloud2, not really helpful, default false 4 | allow_unknown: false #Specifies whether or not to allow navfn to create plans that traverse unknown space, default true 5 | #Needs to have track_unknown_space: true in the obstacle / voxel layer (in costmap_commons_param) to work 6 | planner_window_x: 0.0 #Specifies the x size of an optional window to restrict the planner to, default 0.0 7 | planner_window_y: 0.0 #Specifies the y size of an optional window to restrict the planner to, default 0.0 8 | 9 | default_tolerance: 0.0 #If the goal is in an obstacle, the planer will plan to the nearest point in the radius of default_tolerance, default 0.0 10 | #The area is always searched, so could be slow for big values 11 | -------------------------------------------------------------------------------- /src/navigation_stack/param/r200_costmap_params.yaml: -------------------------------------------------------------------------------- 1 | global_costmap: 2 | robot_radius: 0.20 # distance a circular robot should be clear of the obstacle (kobuki: 0.18) 3 | obstacle_layer: 4 | scan: 5 | data_type: LaserScan 6 | topic: scan 7 | marking: true 8 | clearing: true 9 | min_obstacle_height: 0.05 # previous: 0.25, too high for the R200 configuration! 10 | max_obstacle_height: 0.35 11 | 12 | local_costmap: 13 | robot_radius: 0.18 # distance a circular robot should be clear of the obstacle (kobuki: 0.18) 14 | obstacle_layer: 15 | scan: 16 | data_type: LaserScan 17 | topic: scan 18 | marking: true 19 | clearing: true 20 | min_obstacle_height: 0.05 # previous: 0.25, too high for the R200 configuration! 21 | max_obstacle_height: 0.35 22 | -------------------------------------------------------------------------------- /src/navigation_stack/param/smoother.yaml: -------------------------------------------------------------------------------- 1 | # Default parameters used by the yocs_velocity_smoother module. 2 | # This isn't used by minimal.launch per se, rather by everything 3 | # which runs on top. 4 | 5 | # Mandatory parameters 6 | speed_lim_v: 0.8 7 | speed_lim_w: 5.4 8 | 9 | accel_lim_v: 1.0 # maximum is actually 2.0, but we push it down to be smooth 10 | accel_lim_w: 2.0 11 | 12 | # Optional parameters 13 | frequency: 20.0 14 | decel_factor: 1.5 15 | 16 | # Robot velocity feedback type: 17 | # 0 - none (default) 18 | # 1 - odometry 19 | # 2 - end robot commands 20 | robot_feedback: 2 -------------------------------------------------------------------------------- /src/navigation_stack/rviz/amcl.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: 858 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.5886790156364441 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: Camera 30 | Preferences: 31 | PromptSaveOnExit: true 32 | Toolbars: 33 | toolButtonStyle: 2 34 | Visualization Manager: 35 | Class: "" 36 | Displays: 37 | - Alpha: 0.5 38 | Cell Size: 1 39 | Class: rviz/Grid 40 | Color: 160; 160; 164 41 | Enabled: true 42 | Line Style: 43 | Line Width: 0.029999999329447746 44 | Value: Lines 45 | Name: Grid 46 | Normal Cell Count: 0 47 | Offset: 48 | X: 0 49 | Y: 0 50 | Z: 0 51 | Plane: XY 52 | Plane Cell Count: 10 53 | Reference Frame: 54 | Value: true 55 | - Alpha: 0.699999988079071 56 | Class: rviz/Map 57 | Color Scheme: map 58 | Draw Behind: false 59 | Enabled: true 60 | Name: Map 61 | Topic: /map 62 | Unreliable: false 63 | Use Timestamp: false 64 | Value: true 65 | - Alpha: 1 66 | Class: rviz/RobotModel 67 | Collision Enabled: false 68 | Enabled: true 69 | Links: 70 | All Links Enabled: true 71 | Expand Joint Details: false 72 | Expand Link Details: false 73 | Expand Tree: false 74 | Link Tree Style: Links in Alphabetic Order 75 | camera: 76 | Alpha: 1 77 | Show Axes: false 78 | Show Trail: false 79 | Value: true 80 | chassis: 81 | Alpha: 1 82 | Show Axes: false 83 | Show Trail: false 84 | Value: true 85 | hokuyo: 86 | Alpha: 1 87 | Show Axes: false 88 | Show Trail: false 89 | Value: true 90 | left_wheel_back: 91 | Alpha: 1 92 | Show Axes: false 93 | Show Trail: false 94 | Value: true 95 | left_wheel_front: 96 | Alpha: 1 97 | Show Axes: false 98 | Show Trail: false 99 | Value: true 100 | right_wheel_back: 101 | Alpha: 1 102 | Show Axes: false 103 | Show Trail: false 104 | Value: true 105 | right_wheel_front: 106 | Alpha: 1 107 | Show Axes: false 108 | Show Trail: false 109 | Value: true 110 | robot_footprint: 111 | Alpha: 1 112 | Show Axes: false 113 | Show Trail: false 114 | Name: RobotModel 115 | Robot Description: robot_description 116 | TF Prefix: "" 117 | Update Interval: 0 118 | Value: true 119 | Visual Enabled: true 120 | - Class: rviz/Camera 121 | Enabled: true 122 | Image Rendering: background and overlay 123 | Image Topic: /atom/camera/rgb/image_raw 124 | Name: Camera 125 | Overlay Alpha: 0.5 126 | Queue Size: 2 127 | Transport Hint: raw 128 | Unreliable: false 129 | Value: true 130 | Visibility: 131 | Grid: true 132 | Map: true 133 | PointCloud: true 134 | PoseArray: true 135 | RobotModel: true 136 | Value: true 137 | Zoom Factor: 1 138 | - Alpha: 1 139 | Autocompute Intensity Bounds: true 140 | Autocompute Value Bounds: 141 | Max Value: 10 142 | Min Value: -10 143 | Value: true 144 | Axis: Z 145 | Channel Name: intensity 146 | Class: rviz/PointCloud 147 | Color: 255; 255; 255 148 | Color Transformer: "" 149 | Decay Time: 0 150 | Enabled: true 151 | Invert Rainbow: false 152 | Max Color: 255; 255; 255 153 | Min Color: 0; 0; 0 154 | Name: PointCloud 155 | Position Transformer: "" 156 | Queue Size: 10 157 | Selectable: true 158 | Size (Pixels): 3 159 | Size (m): 0.009999999776482582 160 | Style: Flat Squares 161 | Topic: "" 162 | Unreliable: false 163 | Use Fixed Frame: true 164 | Use rainbow: true 165 | Value: true 166 | - Alpha: 1 167 | Arrow Length: 0.30000001192092896 168 | Axes Length: 0.30000001192092896 169 | Axes Radius: 0.009999999776482582 170 | Class: rviz/PoseArray 171 | Color: 255; 25; 0 172 | Enabled: true 173 | Head Length: 0.07000000029802322 174 | Head Radius: 0.029999999329447746 175 | Name: PoseArray 176 | Queue Size: 10 177 | Shaft Length: 0.23000000417232513 178 | Shaft Radius: 0.009999999776482582 179 | Shape: Arrow (Flat) 180 | Topic: /particlecloud 181 | Unreliable: false 182 | Value: true 183 | Enabled: true 184 | Global Options: 185 | Background Color: 48; 48; 48 186 | Default Light: true 187 | Fixed Frame: map 188 | Frame Rate: 30 189 | Name: root 190 | Tools: 191 | - Class: rviz/Interact 192 | Hide Inactive Objects: true 193 | - Class: rviz/MoveCamera 194 | - Class: rviz/Select 195 | - Class: rviz/FocusCamera 196 | - Class: rviz/Measure 197 | - Class: rviz/SetInitialPose 198 | Theta std deviation: 0.2617993950843811 199 | Topic: /initialpose 200 | X std deviation: 0.5 201 | Y std deviation: 0.5 202 | - Class: rviz/SetGoal 203 | Topic: /move_base_simple/goal 204 | - Class: rviz/PublishPoint 205 | Single click: true 206 | Topic: /clicked_point 207 | Value: true 208 | Views: 209 | Current: 210 | Class: rviz/Orbit 211 | Distance: 25.971487045288086 212 | Enable Stereo Rendering: 213 | Stereo Eye Separation: 0.05999999865889549 214 | Stereo Focal Distance: 1 215 | Swap Stereo Eyes: false 216 | Value: false 217 | Field of View: 0.7853981852531433 218 | Focal Point: 219 | X: 0 220 | Y: 0 221 | Z: 0 222 | Focal Shape Fixed Size: true 223 | Focal Shape Size: 0.05000000074505806 224 | Invert Z Axis: false 225 | Name: Current View 226 | Near Clip Distance: 0.009999999776482582 227 | Pitch: 1.064796805381775 228 | Target Frame: 229 | Yaw: 2.990405559539795 230 | Saved: ~ 231 | Window Geometry: 232 | Camera: 233 | collapsed: false 234 | Displays: 235 | collapsed: false 236 | Height: 1376 237 | Hide Left Dock: false 238 | Hide Right Dock: false 239 | QMainWindow State: 000000ff00000000fd000000040000000000000156000004c2fc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000003e5000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000c00430061006d0065007200610100000428000000d70000001600ffffff000000010000010f000004c2fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000004c2000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004f30000003efc0100000002fb0000000800540069006d00650100000000000004f3000002eb00fffffffb0000000800540069006d0065010000000000000450000000000000000000000282000004c200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 240 | Selection: 241 | collapsed: false 242 | Time: 243 | collapsed: false 244 | Tool Properties: 245 | collapsed: false 246 | Views: 247 | collapsed: false 248 | Width: 1267 249 | X: 1238 250 | Y: 27 251 | -------------------------------------------------------------------------------- /src/navigation_stack/rviz/gmapping.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 | - /Map1 10 | - /Camera1 11 | Splitter Ratio: 0.5 12 | Tree Height: 858 13 | - Class: rviz/Selection 14 | Name: Selection 15 | - Class: rviz/Tool Properties 16 | Expanded: 17 | - /2D Pose Estimate1 18 | - /2D Nav Goal1 19 | - /Publish Point1 20 | Name: Tool Properties 21 | Splitter Ratio: 0.5886790156364441 22 | - Class: rviz/Views 23 | Expanded: 24 | - /Current View1 25 | Name: Views 26 | Splitter Ratio: 0.5 27 | - Class: rviz/Time 28 | Experimental: false 29 | Name: Time 30 | SyncMode: 0 31 | SyncSource: Camera 32 | Preferences: 33 | PromptSaveOnExit: true 34 | Toolbars: 35 | toolButtonStyle: 2 36 | Visualization Manager: 37 | Class: "" 38 | Displays: 39 | - Alpha: 0.5 40 | Cell Size: 1 41 | Class: rviz/Grid 42 | Color: 160; 160; 164 43 | Enabled: true 44 | Line Style: 45 | Line Width: 0.029999999329447746 46 | Value: Lines 47 | Name: Grid 48 | Normal Cell Count: 0 49 | Offset: 50 | X: 0 51 | Y: 0 52 | Z: 0 53 | Plane: XY 54 | Plane Cell Count: 10 55 | Reference Frame: 56 | Value: true 57 | - Alpha: 0.699999988079071 58 | Class: rviz/Map 59 | Color Scheme: map 60 | Draw Behind: false 61 | Enabled: true 62 | Name: Map 63 | Topic: /map 64 | Unreliable: false 65 | Use Timestamp: false 66 | Value: true 67 | - Alpha: 1 68 | Class: rviz/RobotModel 69 | Collision Enabled: false 70 | Enabled: true 71 | Links: 72 | All Links Enabled: true 73 | Expand Joint Details: false 74 | Expand Link Details: false 75 | Expand Tree: false 76 | Link Tree Style: Links in Alphabetic Order 77 | camera: 78 | Alpha: 1 79 | Show Axes: false 80 | Show Trail: false 81 | Value: true 82 | chassis: 83 | Alpha: 1 84 | Show Axes: false 85 | Show Trail: false 86 | Value: true 87 | hokuyo: 88 | Alpha: 1 89 | Show Axes: false 90 | Show Trail: false 91 | Value: true 92 | left_wheel_back: 93 | Alpha: 1 94 | Show Axes: false 95 | Show Trail: false 96 | Value: true 97 | left_wheel_front: 98 | Alpha: 1 99 | Show Axes: false 100 | Show Trail: false 101 | Value: true 102 | right_wheel_back: 103 | Alpha: 1 104 | Show Axes: false 105 | Show Trail: false 106 | Value: true 107 | right_wheel_front: 108 | Alpha: 1 109 | Show Axes: false 110 | Show Trail: false 111 | Value: true 112 | robot_footprint: 113 | Alpha: 1 114 | Show Axes: false 115 | Show Trail: false 116 | Name: RobotModel 117 | Robot Description: robot_description 118 | TF Prefix: "" 119 | Update Interval: 0 120 | Value: true 121 | Visual Enabled: true 122 | - Class: rviz/Camera 123 | Enabled: true 124 | Image Rendering: background and overlay 125 | Image Topic: /atom/camera/rgb/image_raw 126 | Name: Camera 127 | Overlay Alpha: 0.5 128 | Queue Size: 2 129 | Transport Hint: raw 130 | Unreliable: false 131 | Value: true 132 | Visibility: 133 | Grid: true 134 | Map: true 135 | RobotModel: true 136 | Value: true 137 | Zoom Factor: 1 138 | Enabled: true 139 | Global Options: 140 | Background Color: 48; 48; 48 141 | Default Light: true 142 | Fixed Frame: map 143 | Frame Rate: 30 144 | Name: root 145 | Tools: 146 | - Class: rviz/Interact 147 | Hide Inactive Objects: true 148 | - Class: rviz/MoveCamera 149 | - Class: rviz/Select 150 | - Class: rviz/FocusCamera 151 | - Class: rviz/Measure 152 | - Class: rviz/SetInitialPose 153 | Theta std deviation: 0.2617993950843811 154 | Topic: /initialpose 155 | X std deviation: 0.5 156 | Y std deviation: 0.5 157 | - Class: rviz/SetGoal 158 | Topic: /move_base_simple/goal 159 | - Class: rviz/PublishPoint 160 | Single click: true 161 | Topic: /clicked_point 162 | Value: true 163 | Views: 164 | Current: 165 | Class: rviz/Orbit 166 | Distance: 11.500320434570312 167 | Enable Stereo Rendering: 168 | Stereo Eye Separation: 0.05999999865889549 169 | Stereo Focal Distance: 1 170 | Swap Stereo Eyes: false 171 | Value: false 172 | Field of View: 0.7853981852531433 173 | Focal Point: 174 | X: 0 175 | Y: 0 176 | Z: 0 177 | Focal Shape Fixed Size: true 178 | Focal Shape Size: 0.05000000074505806 179 | Invert Z Axis: false 180 | Name: Current View 181 | Near Clip Distance: 0.009999999776482582 182 | Pitch: 1.064796805381775 183 | Target Frame: 184 | Yaw: 2.990405559539795 185 | Saved: ~ 186 | Window Geometry: 187 | Camera: 188 | collapsed: false 189 | Displays: 190 | collapsed: false 191 | Height: 1376 192 | Hide Left Dock: false 193 | Hide Right Dock: false 194 | QMainWindow State: 000000ff00000000fd000000040000000000000156000004c2fc0200000009fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000003e5000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000c00430061006d0065007200610100000428000000d70000001600ffffff000000010000010f000004c2fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003d000004c2000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004f30000003efc0100000002fb0000000800540069006d00650100000000000004f3000002eb00fffffffb0000000800540069006d0065010000000000000450000000000000000000000282000004c200000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 195 | Selection: 196 | collapsed: false 197 | Time: 198 | collapsed: false 199 | Tool Properties: 200 | collapsed: false 201 | Views: 202 | collapsed: false 203 | Width: 1267 204 | X: 72 205 | Y: 27 206 | -------------------------------------------------------------------------------- /src/navigation_stack/rviz/navigation.rviz: -------------------------------------------------------------------------------- 1 | Panels: 2 | - Class: rviz/Displays 3 | Help Height: 78 4 | Name: Displays 5 | Property Tree Widget: 6 | Expanded: 7 | - /TF1/Frames1 8 | - /TF1/Tree1 9 | - /Global Map1/Costmap1 10 | - /Global Map1/Planner1 11 | - /Local Map1 12 | - /Local Map1/Polygon1 13 | - /Local Map1/Costmap1 14 | - /Local Map1/Planner1 15 | Splitter Ratio: 0.5 16 | Tree Height: 798 17 | - Class: rviz/Selection 18 | Name: Selection 19 | - Class: rviz/Tool Properties 20 | Expanded: 21 | - /2D Pose Estimate1 22 | - /2D Nav Goal1 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: "" 35 | Preferences: 36 | PromptSaveOnExit: true 37 | Toolbars: 38 | toolButtonStyle: 2 39 | Visualization Manager: 40 | Class: "" 41 | Displays: 42 | - Alpha: 0.5 43 | Cell Size: 1 44 | Class: rviz/Grid 45 | Color: 160; 160; 164 46 | Enabled: true 47 | Line Style: 48 | Line Width: 0.029999999329447746 49 | Value: Lines 50 | Name: Grid 51 | Normal Cell Count: 0 52 | Offset: 53 | X: 0 54 | Y: 0 55 | Z: 0 56 | Plane: XY 57 | Plane Cell Count: 20 58 | Reference Frame: 59 | Value: true 60 | - Alpha: 1 61 | Class: rviz/RobotModel 62 | Collision Enabled: false 63 | Enabled: true 64 | Links: 65 | All Links Enabled: true 66 | Expand Joint Details: false 67 | Expand Link Details: false 68 | Expand Tree: false 69 | Link Tree Style: Links in Alphabetic Order 70 | base_footprint: 71 | Alpha: 1 72 | Show Axes: false 73 | Show Trail: false 74 | base_link: 75 | Alpha: 1 76 | Show Axes: false 77 | Show Trail: false 78 | Value: true 79 | base_scan: 80 | Alpha: 1 81 | Show Axes: false 82 | Show Trail: false 83 | Value: true 84 | camera_depth_frame: 85 | Alpha: 1 86 | Show Axes: false 87 | Show Trail: false 88 | camera_depth_optical_frame: 89 | Alpha: 1 90 | Show Axes: false 91 | Show Trail: false 92 | camera_link: 93 | Alpha: 1 94 | Show Axes: false 95 | Show Trail: false 96 | Value: true 97 | camera_rgb_frame: 98 | Alpha: 1 99 | Show Axes: false 100 | Show Trail: false 101 | camera_rgb_optical_frame: 102 | Alpha: 1 103 | Show Axes: false 104 | Show Trail: false 105 | caster_back_left_link: 106 | Alpha: 1 107 | Show Axes: false 108 | Show Trail: false 109 | Value: true 110 | caster_back_right_link: 111 | Alpha: 1 112 | Show Axes: false 113 | Show Trail: false 114 | Value: true 115 | imu_link: 116 | Alpha: 1 117 | Show Axes: false 118 | Show Trail: false 119 | wheel_left_link: 120 | Alpha: 1 121 | Show Axes: false 122 | Show Trail: false 123 | Value: true 124 | wheel_right_link: 125 | Alpha: 1 126 | Show Axes: false 127 | Show Trail: false 128 | Value: true 129 | Name: RobotModel 130 | Robot Description: robot_description 131 | TF Prefix: "" 132 | Update Interval: 0 133 | Value: true 134 | Visual Enabled: true 135 | - Class: rviz/TF 136 | Enabled: false 137 | Frame Timeout: 15 138 | Frames: 139 | All Enabled: false 140 | Marker Alpha: 1 141 | Marker Scale: 1 142 | Name: TF 143 | Show Arrows: true 144 | Show Axes: true 145 | Show Names: false 146 | Tree: 147 | {} 148 | Update Interval: 0 149 | Value: false 150 | - Alpha: 1 151 | Autocompute Intensity Bounds: true 152 | Autocompute Value Bounds: 153 | Max Value: 10 154 | Min Value: -10 155 | Value: true 156 | Axis: Z 157 | Channel Name: intensity 158 | Class: rviz/LaserScan 159 | Color: 0; 255; 0 160 | Color Transformer: FlatColor 161 | Decay Time: 0 162 | Enabled: true 163 | Invert Rainbow: false 164 | Max Color: 255; 255; 255 165 | Min Color: 0; 0; 0 166 | Name: LaserScan 167 | Position Transformer: XYZ 168 | Queue Size: 10 169 | Selectable: true 170 | Size (Pixels): 3 171 | Size (m): 0.030000001192092896 172 | Style: Flat Squares 173 | Topic: /scan 174 | Unreliable: false 175 | Use Fixed Frame: true 176 | Use rainbow: true 177 | Value: true 178 | - Class: rviz/Image 179 | Enabled: false 180 | Image Topic: /raspicam_node/image 181 | Max Value: 1 182 | Median window: 5 183 | Min Value: 0 184 | Name: Image 185 | Normalize Range: true 186 | Queue Size: 2 187 | Transport Hint: compressed 188 | Unreliable: false 189 | Value: false 190 | - Alpha: 0.699999988079071 191 | Class: rviz/Map 192 | Color Scheme: map 193 | Draw Behind: false 194 | Enabled: true 195 | Name: Map 196 | Topic: /map 197 | Unreliable: false 198 | Use Timestamp: false 199 | Value: true 200 | - Alpha: 1 201 | Buffer Length: 1 202 | Class: rviz/Path 203 | Color: 0; 0; 0 204 | Enabled: true 205 | Head Diameter: 0.30000001192092896 206 | Head Length: 0.20000000298023224 207 | Length: 0.30000001192092896 208 | Line Style: Lines 209 | Line Width: 0.029999999329447746 210 | Name: Planner Plan 211 | Offset: 212 | X: 0 213 | Y: 0 214 | Z: 0 215 | Pose Color: 255; 85; 255 216 | Pose Style: None 217 | Queue Size: 10 218 | Radius: 0.029999999329447746 219 | Shaft Diameter: 0.10000000149011612 220 | Shaft Length: 0.10000000149011612 221 | Topic: /move_base/NavfnROS/plan 222 | Unreliable: false 223 | Value: true 224 | - Class: rviz/Group 225 | Displays: 226 | - Alpha: 0.699999988079071 227 | Class: rviz/Map 228 | Color Scheme: costmap 229 | Draw Behind: true 230 | Enabled: true 231 | Name: Costmap 232 | Topic: /move_base/global_costmap/costmap 233 | Unreliable: false 234 | Use Timestamp: false 235 | Value: true 236 | - Alpha: 1 237 | Buffer Length: 1 238 | Class: rviz/Path 239 | Color: 255; 0; 0 240 | Enabled: true 241 | Head Diameter: 0.30000001192092896 242 | Head Length: 0.20000000298023224 243 | Length: 0.30000001192092896 244 | Line Style: Lines 245 | Line Width: 0.029999999329447746 246 | Name: Planner 247 | Offset: 248 | X: 0 249 | Y: 0 250 | Z: 0 251 | Pose Color: 255; 85; 255 252 | Pose Style: None 253 | Queue Size: 10 254 | Radius: 0.029999999329447746 255 | Shaft Diameter: 0.10000000149011612 256 | Shaft Length: 0.10000000149011612 257 | Topic: /move_base/DWAPlannerROS/global_plan 258 | Unreliable: false 259 | Value: true 260 | Enabled: true 261 | Name: Global Map 262 | - Class: rviz/Group 263 | Displays: 264 | - Alpha: 1 265 | Class: rviz/Polygon 266 | Color: 0; 0; 0 267 | Enabled: true 268 | Name: Polygon 269 | Queue Size: 10 270 | Topic: /move_base/local_costmap/footprint 271 | Unreliable: false 272 | Value: true 273 | - Alpha: 0.699999988079071 274 | Class: rviz/Map 275 | Color Scheme: costmap 276 | Draw Behind: false 277 | Enabled: true 278 | Name: Costmap 279 | Topic: /move_base/local_costmap/costmap 280 | Unreliable: false 281 | Use Timestamp: false 282 | Value: true 283 | - Alpha: 1 284 | Buffer Length: 1 285 | Class: rviz/Path 286 | Color: 255; 255; 0 287 | Enabled: true 288 | Head Diameter: 0.30000001192092896 289 | Head Length: 0.20000000298023224 290 | Length: 0.30000001192092896 291 | Line Style: Lines 292 | Line Width: 0.029999999329447746 293 | Name: Planner 294 | Offset: 295 | X: 0 296 | Y: 0 297 | Z: 0 298 | Pose Color: 255; 85; 255 299 | Pose Style: None 300 | Queue Size: 10 301 | Radius: 0.029999999329447746 302 | Shaft Diameter: 0.10000000149011612 303 | Shaft Length: 0.10000000149011612 304 | Topic: /move_base/DWAPlannerROS/local_plan 305 | Unreliable: false 306 | Value: true 307 | Enabled: true 308 | Name: Local Map 309 | - Alpha: 1 310 | Arrow Length: 0.05000000074505806 311 | Axes Length: 0.30000001192092896 312 | Axes Radius: 0.009999999776482582 313 | Class: rviz/PoseArray 314 | Color: 0; 192; 0 315 | Enabled: true 316 | Head Length: 0.07000000029802322 317 | Head Radius: 0.029999999329447746 318 | Name: Amcl Particles 319 | Queue Size: 10 320 | Shaft Length: 0.23000000417232513 321 | Shaft Radius: 0.009999999776482582 322 | Shape: Arrow (Flat) 323 | Topic: /particlecloud 324 | Unreliable: false 325 | Value: true 326 | - Alpha: 1 327 | Axes Length: 1 328 | Axes Radius: 0.10000000149011612 329 | Class: rviz/Pose 330 | Color: 255; 25; 0 331 | Enabled: true 332 | Head Length: 0.30000001192092896 333 | Head Radius: 0.10000000149011612 334 | Name: Goal 335 | Queue Size: 10 336 | Shaft Length: 0.5 337 | Shaft Radius: 0.05000000074505806 338 | Shape: Arrow 339 | Topic: /move_base_simple/goal 340 | Unreliable: false 341 | Value: true 342 | Enabled: true 343 | Global Options: 344 | Background Color: 48; 48; 48 345 | Default Light: true 346 | Fixed Frame: map 347 | Frame Rate: 30 348 | Name: root 349 | Tools: 350 | - Class: rviz/MoveCamera 351 | - Class: rviz/Interact 352 | Hide Inactive Objects: true 353 | - Class: rviz/Select 354 | - Class: rviz/SetInitialPose 355 | Theta std deviation: 0.2617993950843811 356 | Topic: /initialpose 357 | X std deviation: 0.5 358 | Y std deviation: 0.5 359 | - Class: rviz/SetGoal 360 | Topic: /move_base_simple/goal 361 | - Class: rviz/Measure 362 | Value: true 363 | Views: 364 | Current: 365 | Angle: -1.5707963705062866 366 | Class: rviz/TopDownOrtho 367 | Enable Stereo Rendering: 368 | Stereo Eye Separation: 0.05999999865889549 369 | Stereo Focal Distance: 1 370 | Swap Stereo Eyes: false 371 | Value: false 372 | Invert Z Axis: false 373 | Name: Current View 374 | Near Clip Distance: 0.009999999776482582 375 | Scale: 100 376 | Target Frame: 377 | X: 0 378 | Y: 0 379 | Saved: ~ 380 | Window Geometry: 381 | Displays: 382 | collapsed: false 383 | Height: 1027 384 | Hide Left Dock: false 385 | Hide Right Dock: true 386 | Image: 387 | collapsed: false 388 | QMainWindow State: 000000ff00000000fd00000004000000000000016a000003a9fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000003a9000000c900fffffffb0000000a0049006d0061006700650000000317000000cc0000001600fffffffb0000000a0049006d0061006700650000000330000000ce0000000000000000000000010000010f000003a0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730000000043000003a0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004a00000003efc0100000002fb0000000800540069006d00650000000000000004a0000004f300fffffffb0000000800540069006d006501000000000000045000000000000000000000038f000003a900000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 389 | Selection: 390 | collapsed: false 391 | Time: 392 | collapsed: false 393 | Tool Properties: 394 | collapsed: false 395 | Views: 396 | collapsed: true 397 | Width: 1279 398 | X: 72 399 | Y: 27 400 | -------------------------------------------------------------------------------- /src/navigation_stack/src/bot_drive.cpp: -------------------------------------------------------------------------------- 1 | #include "bot_drive.hpp" 2 | 3 | BotDrive::BotDrive() 4 | : nh_priv_("~") 5 | { 6 | //Init gazebo ros BotDrive node 7 | ROS_INFO("BotDrive Simulation Node Init"); 8 | auto ret = init(); 9 | ROS_ASSERT(ret); 10 | } 11 | 12 | BotDrive::~BotDrive() 13 | { 14 | updatecommandVelocity(0.0, 0.0); 15 | ros::shutdown(); 16 | } 17 | 18 | /******************************************************************************* 19 | * Init function 20 | *******************************************************************************/ 21 | bool BotDrive::init() 22 | { 23 | // initialize ROS parameter 24 | std::string cmd_vel_topic_name = nh_.param("cmd_vel_topic_name", ""); 25 | std::string odom_topic_name = nh_.param("odom_topic_name", ""); 26 | 27 | // initialize variables 28 | escape_range_ = 30.0 * DEG2RAD; 29 | check_forward_dist_ = 0.7; 30 | check_side_dist_ = 0.6; 31 | 32 | tb3_pose_ = 0.0; 33 | prev_tb3_pose_ = 0.0; 34 | 35 | // initialize publishers 36 | cmd_vel_pub_ = nh_.advertise(cmd_vel_topic_name, 10); 37 | 38 | // initialize subscribers 39 | laser_scan_sub_ = nh_.subscribe("scan", 10, &BotDrive::laserScanMsgCallBack, this); 40 | odom_sub_ = nh_.subscribe(odom_topic_name, 10, &BotDrive::odomMsgCallBack, this); 41 | 42 | return true; 43 | } 44 | 45 | void BotDrive::odomMsgCallBack(const nav_msgs::Odometry::ConstPtr &msg) 46 | { 47 | double siny = 2.0 * (msg->pose.pose.orientation.w * msg->pose.pose.orientation.z + msg->pose.pose.orientation.x * msg->pose.pose.orientation.y); 48 | double cosy = 1.0 - 2.0 * (msg->pose.pose.orientation.y * msg->pose.pose.orientation.y + msg->pose.pose.orientation.z * msg->pose.pose.orientation.z); 49 | 50 | tb3_pose_ = atan2(siny, cosy); 51 | } 52 | 53 | void BotDrive::laserScanMsgCallBack(const sensor_msgs::LaserScan::ConstPtr &msg) 54 | { 55 | uint16_t scan_angle[3] = {0, 30, 330}; 56 | 57 | for (int num = 0; num < 3; num++) 58 | { 59 | if (std::isinf(msg->ranges.at(scan_angle[num]))) 60 | { 61 | scan_data_[num] = msg->range_max; 62 | } 63 | else 64 | { 65 | scan_data_[num] = msg->ranges.at(scan_angle[num]); 66 | } 67 | } 68 | } 69 | 70 | void BotDrive::updatecommandVelocity(double linear, double angular) 71 | { 72 | geometry_msgs::Twist cmd_vel; 73 | 74 | cmd_vel.linear.x = linear; 75 | cmd_vel.angular.z = angular; 76 | 77 | cmd_vel_pub_.publish(cmd_vel); 78 | } 79 | 80 | /******************************************************************************* 81 | * Control Loop function 82 | *******************************************************************************/ 83 | bool BotDrive::controlLoop() 84 | { 85 | static uint8_t bot_state_num = 0; 86 | 87 | switch(bot_state_num) 88 | { 89 | case GET_TB3_DIRECTION: 90 | if (scan_data_[CENTER] > check_forward_dist_) 91 | { 92 | if (scan_data_[LEFT] < check_side_dist_) 93 | { 94 | prev_tb3_pose_ = tb3_pose_; 95 | bot_state_num = TB3_RIGHT_TURN; 96 | } 97 | else if (scan_data_[RIGHT] < check_side_dist_) 98 | { 99 | prev_tb3_pose_ = tb3_pose_; 100 | bot_state_num = TB3_LEFT_TURN; 101 | } 102 | else 103 | { 104 | bot_state_num = TB3_DRIVE_FORWARD; 105 | } 106 | } 107 | 108 | if (scan_data_[CENTER] < check_forward_dist_) 109 | { 110 | prev_tb3_pose_ = tb3_pose_; 111 | bot_state_num = TB3_RIGHT_TURN; 112 | } 113 | break; 114 | 115 | case TB3_DRIVE_FORWARD: 116 | updatecommandVelocity(LINEAR_VELOCITY, 0.0); 117 | bot_state_num = GET_TB3_DIRECTION; 118 | break; 119 | 120 | case TB3_RIGHT_TURN: 121 | if (fabs(prev_tb3_pose_ - tb3_pose_) >= escape_range_) 122 | bot_state_num = GET_TB3_DIRECTION; 123 | else 124 | updatecommandVelocity(0.0, -1 * ANGULAR_VELOCITY); 125 | break; 126 | 127 | case TB3_LEFT_TURN: 128 | if (fabs(prev_tb3_pose_ - tb3_pose_) >= escape_range_) 129 | bot_state_num = GET_TB3_DIRECTION; 130 | else 131 | updatecommandVelocity(0.0, ANGULAR_VELOCITY); 132 | break; 133 | 134 | default: 135 | bot_state_num = GET_TB3_DIRECTION; 136 | break; 137 | } 138 | 139 | return true; 140 | } 141 | 142 | /******************************************************************************* 143 | * Main function 144 | *******************************************************************************/ 145 | int main(int argc, char* argv[]) 146 | { 147 | ros::init(argc, argv, "bot_drive"); 148 | BotDrive bot_drive; 149 | 150 | ros::Rate loop_rate(125); 151 | 152 | while (ros::ok()) 153 | { 154 | bot_drive.controlLoop(); 155 | ros::spinOnce(); 156 | loop_rate.sleep(); 157 | } 158 | 159 | return 0; 160 | } -------------------------------------------------------------------------------- /src/navigation_stack/src/bot_drive.hpp: -------------------------------------------------------------------------------- 1 | #ifndef BOT_DRIVE_H_ 2 | #define BOT_DRIVE_H_ 3 | 4 | #include 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #define DEG2RAD (M_PI / 180.0) 11 | #define RAD2DEG (180.0 / M_PI) 12 | 13 | #define CENTER 0 14 | #define LEFT 1 15 | #define RIGHT 2 16 | 17 | #define LINEAR_VELOCITY 0.3 18 | #define ANGULAR_VELOCITY 1.5 19 | 20 | #define GET_TB3_DIRECTION 0 21 | #define TB3_DRIVE_FORWARD 1 22 | #define TB3_RIGHT_TURN 2 23 | #define TB3_LEFT_TURN 3 24 | 25 | class BotDrive 26 | { 27 | public: 28 | BotDrive(); 29 | ~BotDrive(); 30 | bool init(); 31 | bool controlLoop(); 32 | 33 | private: 34 | // ROS NodeHandle 35 | ros::NodeHandle nh_; 36 | ros::NodeHandle nh_priv_; 37 | 38 | // ROS Parameters 39 | 40 | // ROS Time 41 | 42 | // ROS Topic Publishers 43 | ros::Publisher cmd_vel_pub_; 44 | 45 | // ROS Topic Subscribers 46 | ros::Subscriber laser_scan_sub_; 47 | ros::Subscriber odom_sub_; 48 | 49 | // Variables 50 | double escape_range_; 51 | double check_forward_dist_; 52 | double check_side_dist_; 53 | 54 | double scan_data_[3] = {0.0, 0.0, 0.0}; 55 | 56 | double tb3_pose_; 57 | double prev_tb3_pose_; 58 | 59 | // Function prototypes 60 | void updatecommandVelocity(double linear, double angular); 61 | void laserScanMsgCallBack(const sensor_msgs::LaserScan::ConstPtr &msg); 62 | void odomMsgCallBack(const nav_msgs::Odometry::ConstPtr &msg); 63 | }; 64 | #endif // BOT_DRIVE_H_ --------------------------------------------------------------------------------