├── demo.gif ├── param ├── default_planner.yaml ├── move_base.yaml └── turtlebot3_navigation.rviz ├── launch ├── rviz.launch ├── amcl_demo.launch └── includes │ └── move_base.launch.xml ├── README.md ├── package.xml └── CMakeLists.txt /demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Rayman/turtlebot3_mbf/HEAD/demo.gif -------------------------------------------------------------------------------- /param/default_planner.yaml: -------------------------------------------------------------------------------- 1 | base_global_planner: NavfnROS 2 | base_local_planner: DWAPlannerROS 3 | -------------------------------------------------------------------------------- /launch/rviz.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Move base flex turtlebot3 demo 2 | 3 | ```sh 4 | export TURTLEBOT3_MODEL=burger 5 | roslaunch turtlebot3_gazebo turtlebot3_world.launch 6 | roslaunch turtlebot3_mbf amcl_demo.launch 7 | roslaunch turtlebot3_mbf rviz.launch 8 | ``` 9 | ![](./demo.gif) 10 | -------------------------------------------------------------------------------- /param/move_base.yaml: -------------------------------------------------------------------------------- 1 | planners: 2 | - name: NavfnROS 3 | type: navfn/NavfnROS 4 | 5 | controllers: 6 | - name: DWAPlannerROS 7 | type: dwa_local_planner/DWAPlannerROS 8 | 9 | controller_frequency: 5.0 10 | controller_patience: 3.0 11 | 12 | planner_frequency: 1.0 13 | planner_patience: 5.0 14 | 15 | oscillation_timeout: 10.0 16 | oscillation_distance: 0.2 17 | -------------------------------------------------------------------------------- /package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | turtlebot3_mbf 4 | 0.0.0 5 | Move base flex config for the turtlebot 6 | 7 | Ramon Wijnands 8 | 9 | TODO 10 | 11 | catkin 12 | 13 | map_server 14 | mbf_costmap_nav 15 | turtlebot3_bringup 16 | turtlebot3_navigation 17 | 18 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.0.2) 2 | project(turtlebot3_mbf) 3 | 4 | find_package(catkin REQUIRED) 5 | 6 | ################################### 7 | ## catkin specific configuration ## 8 | ################################### 9 | 10 | catkin_package() 11 | 12 | ############# 13 | ## Install ## 14 | ############# 15 | 16 | # all install targets should use catkin DESTINATION variables 17 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html 18 | 19 | ## Mark executable scripts (Python etc.) for installation 20 | ## in contrast to setup.py, you can choose the destination 21 | # install(PROGRAMS 22 | # scripts/my_python_script 23 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} 24 | # ) 25 | 26 | ## Mark other files for installation (e.g. launch and bag files, etc.) 27 | # install(FILES 28 | # # myfile1 29 | # # myfile2 30 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} 31 | # ) 32 | -------------------------------------------------------------------------------- /launch/amcl_demo.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 | -------------------------------------------------------------------------------- /launch/includes/move_base.launch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /param/turtlebot3_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 10 | - /Local Map1 11 | Splitter Ratio: 0.5 12 | Tree Height: 796 13 | - Class: rviz/Selection 14 | Name: Selection 15 | - Class: rviz/Tool Properties 16 | Expanded: 17 | - /2D Pose Estimate1 18 | - /2D Nav Goal1 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 | Experimental: false 28 | Name: Time 29 | SyncMode: 0 30 | SyncSource: LaserScan 31 | Preferences: 32 | PromptSaveOnExit: true 33 | Toolbars: 34 | toolButtonStyle: 2 35 | Visualization Manager: 36 | Class: "" 37 | Displays: 38 | - Alpha: 0.5 39 | Cell Size: 1 40 | Class: rviz/Grid 41 | Color: 160; 160; 164 42 | Enabled: true 43 | Line Style: 44 | Line Width: 0.029999999329447746 45 | Value: Lines 46 | Name: Grid 47 | Normal Cell Count: 0 48 | Offset: 49 | X: 0 50 | Y: 0 51 | Z: 0 52 | Plane: XY 53 | Plane Cell Count: 20 54 | Reference Frame: 55 | Value: true 56 | - Alpha: 1 57 | Class: rviz/RobotModel 58 | Collision Enabled: false 59 | Enabled: true 60 | Links: 61 | All Links Enabled: true 62 | Expand Joint Details: false 63 | Expand Link Details: false 64 | Expand Tree: false 65 | Link Tree Style: Links in Alphabetic Order 66 | base_footprint: 67 | Alpha: 1 68 | Show Axes: false 69 | Show Trail: false 70 | base_link: 71 | Alpha: 1 72 | Show Axes: false 73 | Show Trail: false 74 | Value: true 75 | base_scan: 76 | Alpha: 1 77 | Show Axes: false 78 | Show Trail: false 79 | Value: true 80 | caster_back_link: 81 | Alpha: 1 82 | Show Axes: false 83 | Show Trail: false 84 | Value: true 85 | imu_link: 86 | Alpha: 1 87 | Show Axes: false 88 | Show Trail: false 89 | wheel_left_link: 90 | Alpha: 1 91 | Show Axes: false 92 | Show Trail: false 93 | Value: true 94 | wheel_right_link: 95 | Alpha: 1 96 | Show Axes: false 97 | Show Trail: false 98 | Value: true 99 | Name: RobotModel 100 | Robot Description: robot_description 101 | TF Prefix: "" 102 | Update Interval: 0 103 | Value: true 104 | Visual Enabled: true 105 | - Class: rviz/TF 106 | Enabled: false 107 | Frame Timeout: 15 108 | Frames: 109 | All Enabled: false 110 | Marker Scale: 1 111 | Name: TF 112 | Show Arrows: true 113 | Show Axes: true 114 | Show Names: false 115 | Tree: 116 | {} 117 | Update Interval: 0 118 | Value: false 119 | - Alpha: 1 120 | Autocompute Intensity Bounds: true 121 | Autocompute Value Bounds: 122 | Max Value: 10 123 | Min Value: -10 124 | Value: true 125 | Axis: Z 126 | Channel Name: intensity 127 | Class: rviz/LaserScan 128 | Color: 0; 255; 0 129 | Color Transformer: FlatColor 130 | Decay Time: 0 131 | Enabled: true 132 | Invert Rainbow: false 133 | Max Color: 255; 255; 255 134 | Max Intensity: 13069 135 | Min Color: 0; 0; 0 136 | Min Intensity: 28 137 | Name: LaserScan 138 | Position Transformer: XYZ 139 | Queue Size: 10 140 | Selectable: true 141 | Size (Pixels): 3 142 | Size (m): 0.030000001192092896 143 | Style: Flat Squares 144 | Topic: /scan 145 | Unreliable: false 146 | Use Fixed Frame: true 147 | Use rainbow: true 148 | Value: true 149 | - Class: rviz/Image 150 | Enabled: false 151 | Image Topic: /raspicam_node/image 152 | Max Value: 1 153 | Median window: 5 154 | Min Value: 0 155 | Name: Image 156 | Normalize Range: true 157 | Queue Size: 2 158 | Transport Hint: compressed 159 | Unreliable: false 160 | Value: false 161 | - Alpha: 0.699999988079071 162 | Class: rviz/Map 163 | Color Scheme: map 164 | Draw Behind: false 165 | Enabled: true 166 | Name: Map 167 | Topic: /map 168 | Unreliable: false 169 | Use Timestamp: false 170 | Value: true 171 | - Alpha: 1 172 | Buffer Length: 1 173 | Class: rviz/Path 174 | Color: 0; 0; 0 175 | Enabled: true 176 | Head Diameter: 0.30000001192092896 177 | Head Length: 0.20000000298023224 178 | Length: 0.30000001192092896 179 | Line Style: Lines 180 | Line Width: 0.029999999329447746 181 | Name: Planner Plan 182 | Offset: 183 | X: 0 184 | Y: 0 185 | Z: 0 186 | Pose Color: 255; 85; 255 187 | Pose Style: None 188 | Radius: 0.029999999329447746 189 | Shaft Diameter: 0.10000000149011612 190 | Shaft Length: 0.10000000149011612 191 | Topic: /move_base/NavfnROS/plan 192 | Unreliable: false 193 | Value: true 194 | - Class: rviz/Group 195 | Displays: 196 | - Alpha: 0.699999988079071 197 | Class: rviz/Map 198 | Color Scheme: costmap 199 | Draw Behind: true 200 | Enabled: true 201 | Name: Costmap 202 | Topic: /move_base_flex/global_costmap/costmap 203 | Unreliable: false 204 | Use Timestamp: false 205 | Value: true 206 | - Alpha: 1 207 | Buffer Length: 1 208 | Class: rviz/Path 209 | Color: 255; 0; 0 210 | Enabled: true 211 | Head Diameter: 0.30000001192092896 212 | Head Length: 0.20000000298023224 213 | Length: 0.30000001192092896 214 | Line Style: Lines 215 | Line Width: 0.029999999329447746 216 | Name: Planner 217 | Offset: 218 | X: 0 219 | Y: 0 220 | Z: 0 221 | Pose Color: 255; 85; 255 222 | Pose Style: None 223 | Radius: 0.029999999329447746 224 | Shaft Diameter: 0.10000000149011612 225 | Shaft Length: 0.10000000149011612 226 | Topic: /move_base_flex/NavfnROS/plan 227 | Unreliable: false 228 | Value: true 229 | Enabled: true 230 | Name: Global Map 231 | - Class: rviz/Group 232 | Displays: 233 | - Alpha: 1 234 | Class: rviz/Polygon 235 | Color: 0; 0; 0 236 | Enabled: true 237 | Name: Polygon 238 | Topic: /move_base_flex/local_costmap/footprint 239 | Unreliable: false 240 | Value: true 241 | - Alpha: 0.699999988079071 242 | Class: rviz/Map 243 | Color Scheme: costmap 244 | Draw Behind: false 245 | Enabled: true 246 | Name: Costmap 247 | Topic: /move_base_flex/local_costmap/costmap 248 | Unreliable: false 249 | Use Timestamp: false 250 | Value: true 251 | - Alpha: 1 252 | Buffer Length: 1 253 | Class: rviz/Path 254 | Color: 255; 255; 0 255 | Enabled: true 256 | Head Diameter: 0.30000001192092896 257 | Head Length: 0.20000000298023224 258 | Length: 0.30000001192092896 259 | Line Style: Lines 260 | Line Width: 0.029999999329447746 261 | Name: Planner 262 | Offset: 263 | X: 0 264 | Y: 0 265 | Z: 0 266 | Pose Color: 255; 85; 255 267 | Pose Style: None 268 | Radius: 0.029999999329447746 269 | Shaft Diameter: 0.10000000149011612 270 | Shaft Length: 0.10000000149011612 271 | Topic: /move_base_flex/DWAPlannerROS/local_plan 272 | Unreliable: false 273 | Value: true 274 | Enabled: true 275 | Name: Local Map 276 | - Alpha: 1 277 | Arrow Length: 0.05000000074505806 278 | Axes Length: 0.30000001192092896 279 | Axes Radius: 0.009999999776482582 280 | Class: rviz/PoseArray 281 | Color: 0; 192; 0 282 | Enabled: true 283 | Head Length: 0.07000000029802322 284 | Head Radius: 0.029999999329447746 285 | Name: Amcl Particles 286 | Shaft Length: 0.23000000417232513 287 | Shaft Radius: 0.009999999776482582 288 | Shape: Arrow (Flat) 289 | Topic: /particlecloud 290 | Unreliable: false 291 | Value: true 292 | - Alpha: 1 293 | Axes Length: 1 294 | Axes Radius: 0.10000000149011612 295 | Class: rviz/Pose 296 | Color: 255; 25; 0 297 | Enabled: true 298 | Head Length: 0.30000001192092896 299 | Head Radius: 0.10000000149011612 300 | Name: Goal 301 | Shaft Length: 0.5 302 | Shaft Radius: 0.05000000074505806 303 | Shape: Arrow 304 | Topic: /move_base_simple/goal 305 | Unreliable: false 306 | Value: true 307 | Enabled: true 308 | Global Options: 309 | Background Color: 48; 48; 48 310 | Default Light: true 311 | Fixed Frame: map 312 | Frame Rate: 30 313 | Name: root 314 | Tools: 315 | - Class: rviz/MoveCamera 316 | - Class: rviz/Interact 317 | Hide Inactive Objects: true 318 | - Class: rviz/Select 319 | - Class: rviz/SetInitialPose 320 | Theta std deviation: 0.2617993950843811 321 | Topic: /initialpose 322 | X std deviation: 0.5 323 | Y std deviation: 0.5 324 | - Class: rviz/SetGoal 325 | Topic: /move_base_simple/goal 326 | - Class: rviz/Measure 327 | Value: true 328 | Views: 329 | Current: 330 | Angle: -1.6257963180541992 331 | Class: rviz/TopDownOrtho 332 | Enable Stereo Rendering: 333 | Stereo Eye Separation: 0.05999999865889549 334 | Stereo Focal Distance: 1 335 | Swap Stereo Eyes: false 336 | Value: false 337 | Invert Z Axis: false 338 | Name: Current View 339 | Near Clip Distance: 0.009999999776482582 340 | Scale: 158.78826904296875 341 | Target Frame: 342 | Value: TopDownOrtho (rviz) 343 | X: 0.08110414445400238 344 | Y: -0.45166757702827454 345 | Saved: ~ 346 | Window Geometry: 347 | Displays: 348 | collapsed: false 349 | Height: 1025 350 | Hide Left Dock: false 351 | Hide Right Dock: true 352 | Image: 353 | collapsed: false 354 | QMainWindow State: 000000ff00000000fd0000000400000000000002b3000003a7fc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000003a7000000c900fffffffb0000000a0049006d0061006700650000000317000000cc0000001600fffffffb0000000a0049006d0061006700650000000330000000ce0000000000000000000000010000010f000003a0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730000000043000003a0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004a00000003efc0100000002fb0000000800540069006d00650000000000000004a0000002eb00fffffffb0000000800540069006d0065010000000000000450000000000000000000000484000003a700000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 355 | Selection: 356 | collapsed: false 357 | Time: 358 | collapsed: false 359 | Tool Properties: 360 | collapsed: false 361 | Views: 362 | collapsed: true 363 | Width: 1853 364 | X: 1987 365 | Y: 27 366 | --------------------------------------------------------------------------------