├── .vscode
└── settings.json
├── CMakeLists.txt
├── README.md
├── images
├── 360vs6_samples.gif
├── GitGraph.png
├── amcl_rosgraph.png
├── gazebo.png
├── gazebo_rosgraph.png
├── gmapping.png
├── gmapping_rosgraph.png
├── initialPose.gif
├── localization.gif
├── navigation.gif
├── navigation_all_topics.png
├── navigation_nodes_only.png
├── particle_filter.png
└── particlefilter_rosgraph.png
├── launch
├── amcl.launch
├── gazebo.launch
├── gmapping.launch
├── move_base.launch
├── navigation.launch
├── particle_Filter.launch
└── robot_localization.launch
├── maps
├── intialmap.pgm
├── map.pgm
└── map.yaml
├── meshes
├── .vscode
│ └── settings.json
├── burger_base.stl
├── lds.stl
├── left_tire.stl
└── right_tire.stl
├── models
└── turtlebot3_plaza
│ ├── goal_box
│ ├── model.config
│ └── model.sdf
│ ├── model.config
│ └── model.sdf
├── package.xml
├── param
├── base_local_planner_params.yaml
├── costmap_common_params_burger.yaml
├── dwa_local_planner_params_burger.yaml
├── global_costmap_params.yaml
├── local_costmap_params.yaml
└── move_base_params.yaml
├── rviz
├── gmapping.rviz
├── localization.rviz
├── navigation.rviz
└── particle_filter.rviz
├── src
├── dataViz.py
├── initialPose.py
├── localizer.py
└── traverse.py
├── urdf
├── common_properties.xacro
├── turtlebot3_burger.gazebo.xacro
└── turtlebot3_burger.urdf.xacro
└── world
└── obstacles.world
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "python.autoComplete.extraPaths": [
3 | "/home/aditya/catkin_ws/devel/lib/python3/dist-packages",
4 | "/opt/ros/noetic/lib/python3/dist-packages"
5 | ],
6 | "python.analysis.extraPaths": [
7 | "/home/aditya/catkin_ws/devel/lib/python3/dist-packages",
8 | "/opt/ros/noetic/lib/python3/dist-packages"
9 | ],
10 | "cSpell.words": [
11 | "gmapping",
12 | "publsihement",
13 | "Riviz",
14 | "roscore",
15 | "roslaunch",
16 | "rosrun",
17 | "rosun",
18 | "Rviz",
19 | "teleo",
20 | "teleop"
21 | ]
22 | }
--------------------------------------------------------------------------------
/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.0.2)
2 | project(Mapping-and-Navigation-with-TurtleBot3)
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 | roscpp
12 | rospy
13 | std_msgs
14 | )
15 |
16 | ## System dependencies are found with CMake's conventions
17 | # find_package(Boost REQUIRED COMPONENTS system)
18 |
19 |
20 | ## Uncomment this if the package has a setup.py. This macro ensures
21 | ## modules and global scripts declared therein get installed
22 | ## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
23 | # catkin_python_setup()
24 |
25 | ################################################
26 | ## Declare ROS messages, services and actions ##
27 | ################################################
28 |
29 | ## To declare and build messages, services or actions from within this
30 | ## package, follow these steps:
31 | ## * Let MSG_DEP_SET be the set of packages whose message types you use in
32 | ## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
33 | ## * In the file package.xml:
34 | ## * add a build_depend tag for "message_generation"
35 | ## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET
36 | ## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
37 | ## but can be declared for certainty nonetheless:
38 | ## * add a exec_depend tag for "message_runtime"
39 | ## * In this file (CMakeLists.txt):
40 | ## * add "message_generation" and every package in MSG_DEP_SET to
41 | ## find_package(catkin REQUIRED COMPONENTS ...)
42 | ## * add "message_runtime" and every package in MSG_DEP_SET to
43 | ## catkin_package(CATKIN_DEPENDS ...)
44 | ## * uncomment the add_*_files sections below as needed
45 | ## and list every .msg/.srv/.action file to be processed
46 | ## * uncomment the generate_messages entry below
47 | ## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
48 |
49 | ## Generate messages in the 'msg' folder
50 | # add_message_files(
51 | # FILES
52 | # Message1.msg
53 | # Message2.msg
54 | # )
55 |
56 | ## Generate services in the 'srv' folder
57 | # add_service_files(
58 | # FILES
59 | # Service1.srv
60 | # Service2.srv
61 | # )
62 |
63 | ## Generate actions in the 'action' folder
64 | # add_action_files(
65 | # FILES
66 | # Action1.action
67 | # Action2.action
68 | # )
69 |
70 | ## Generate added messages and services with any dependencies listed here
71 | # generate_messages(
72 | # DEPENDENCIES
73 | # std_msgs
74 | # )
75 |
76 | ################################################
77 | ## Declare ROS dynamic reconfigure parameters ##
78 | ################################################
79 |
80 | ## To declare and build dynamic reconfigure parameters within this
81 | ## package, follow these steps:
82 | ## * In the file package.xml:
83 | ## * add a build_depend and a exec_depend tag for "dynamic_reconfigure"
84 | ## * In this file (CMakeLists.txt):
85 | ## * add "dynamic_reconfigure" to
86 | ## find_package(catkin REQUIRED COMPONENTS ...)
87 | ## * uncomment the "generate_dynamic_reconfigure_options" section below
88 | ## and list every .cfg file to be processed
89 |
90 | ## Generate dynamic reconfigure parameters in the 'cfg' folder
91 | # generate_dynamic_reconfigure_options(
92 | # cfg/DynReconf1.cfg
93 | # cfg/DynReconf2.cfg
94 | # )
95 |
96 | ###################################
97 | ## catkin specific configuration ##
98 | ###################################
99 | ## The catkin_package macro generates cmake config files for your package
100 | ## Declare things to be passed to dependent projects
101 | ## INCLUDE_DIRS: uncomment this if your package contains header files
102 | ## LIBRARIES: libraries you create in this project that dependent projects also need
103 | ## CATKIN_DEPENDS: catkin_packages dependent projects also need
104 | ## DEPENDS: system dependencies of this project that dependent projects also need
105 | catkin_package(
106 | # INCLUDE_DIRS include
107 | # LIBRARIES Mapping-and-Navigation-with-TurtleBot3
108 | # CATKIN_DEPENDS roscpp rospy std_msgs
109 | # DEPENDS system_lib
110 | )
111 |
112 | ###########
113 | ## Build ##
114 | ###########
115 |
116 | ## Specify additional locations of header files
117 | ## Your package locations should be listed before other locations
118 | include_directories(
119 | # include
120 | ${catkin_INCLUDE_DIRS}
121 | )
122 |
123 | ## Declare a C++ library
124 | # add_library(${PROJECT_NAME}
125 | # src/${PROJECT_NAME}/Mapping-and-Navigation-with-TurtleBot3.cpp
126 | # )
127 |
128 | ## Add cmake target dependencies of the library
129 | ## as an example, code may need to be generated before libraries
130 | ## either from message generation or dynamic reconfigure
131 | # add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
132 |
133 | ## Declare a C++ executable
134 | ## With catkin_make all packages are built within a single CMake context
135 | ## The recommended prefix ensures that target names across packages don't collide
136 | # add_executable(${PROJECT_NAME}_node src/Mapping-and-Navigation-with-TurtleBot3_node.cpp)
137 |
138 | ## Rename C++ executable without prefix
139 | ## The above recommended prefix causes long target names, the following renames the
140 | ## target back to the shorter version for ease of user use
141 | ## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
142 | # set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
143 |
144 | ## Add cmake target dependencies of the executable
145 | ## same as for the library above
146 | # add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
147 |
148 | ## Specify libraries to link a library or executable target against
149 | # target_link_libraries(${PROJECT_NAME}_node
150 | # ${catkin_LIBRARIES}
151 | # )
152 |
153 | #############
154 | ## Install ##
155 | #############
156 |
157 | # all install targets should use catkin DESTINATION variables
158 | # See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
159 |
160 | ## Mark executable scripts (Python etc.) for installation
161 | ## in contrast to setup.py, you can choose the destination
162 | # catkin_install_python(PROGRAMS
163 | # scripts/my_python_script
164 | # DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
165 | # )
166 |
167 | ## Mark executables for installation
168 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html
169 | # install(TARGETS ${PROJECT_NAME}_node
170 | # RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
171 | # )
172 |
173 | ## Mark libraries for installation
174 | ## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html
175 | # install(TARGETS ${PROJECT_NAME}
176 | # ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
177 | # LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
178 | # RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION}
179 | # )
180 |
181 | ## Mark cpp header files for installation
182 | # install(DIRECTORY include/${PROJECT_NAME}/
183 | # DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
184 | # FILES_MATCHING PATTERN "*.h"
185 | # PATTERN ".svn" EXCLUDE
186 | # )
187 |
188 | ## Mark other files for installation (e.g. launch and bag files, etc.)
189 | # install(FILES
190 | # # myfile1
191 | # # myfile2
192 | # DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
193 | # )
194 |
195 | #############
196 | ## Testing ##
197 | #############
198 |
199 | ## Add gtest based cpp test target and link libraries
200 | # catkin_add_gtest(${PROJECT_NAME}-test test/test_Mapping-and-Navigation-with-TurtleBot3.cpp)
201 | # if(TARGET ${PROJECT_NAME}-test)
202 | # target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
203 | # endif()
204 |
205 | ## Add folders to be run by python nosetests
206 | # catkin_add_nosetests(test)
207 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Mapping-and-Navigation-with-TurtleBot3
2 |
3 | ## Description
4 | The primary objective of this project is to implement robotics concepts like mapping, localization, path planning, navigation and much more while augmenting the understanding of the ROS environment.
5 |
6 | ## Status
7 | - Used gmapping package to map the environment.
8 | - Once mapped autonomous navigation can be performed to get the robot reach the desired position.
9 | - Localization can be visualizes independently using AMCL package.
10 |
11 | ## Development process
12 |
13 |
41 | 
42 |
43 | ## Description of launch/src files
44 |
45 | #### roslaunch gazebo.launch
46 |
47 | This launched a simulation based environment where robot's data such as joint state, sensor readings and transforms are published to respective topic. While working with real life robots this data will be published by the on-board computing device located in the robot itself.
48 | - The launch file imports an empty world and incorporates obstacles that are defined in the "obstacles.world" file.
49 | - It also uses the **"spawn_model"** node, located inside the gazebo_ros package, to import the robot model of the TurtleBot3 within the Gazebo simulation environment.
50 | - The necessary arguments and parameters are passed to the node to ensure that the robot model is positioned correctly within the simulation environment.
51 | - In the process of **testing the project on a different machine,** a requirement to install the TurtleBot3 packages in advance was encountered. This was due to the models such as walls, boxes being located within the TurtleBot3 package. As a solution, the models were moved inside this project and utilized the GAZEBO_MODEL_PATH environment variable to reference them.
52 |
53 | 
54 |
Gazebo Simulation environment
55 |
56 |
57 |
58 | 
59 | Robot data published by Gazebo environment
60 |
61 | ### Mapping
62 |
63 | For a robot to autonomously move through an environment it should have a map of the environment presaved. The map defines the boundaries and obstacles inside the working space.
64 |
65 |
66 | Gmapping is a open-source package that implements Grid-based FastSLAM algorithm for Simultaneous Localization and Mapping (SLAM).The gmapping package takes laser scan data from lidar and odometry information from the robot's motion, and generates a 2D occupancy grid map of the environment while estimating the robot's pose (position and orientation) within that map.
67 |
68 | #### roslaunch gmapping
69 | - The gmapping package is utilized to generate a map of the environment.
70 | - The **robot_state_publisher** node is launched to visualize the current position of the robot in the generated map, and to provide the transform of the base_scan to the map frame. It read the URDF file and publishes transforms between different frames.
71 | - The gmapping node is initialized with the necessary parameters, and the frame and topic were passed as arguments.
72 |
73 | 
74 | Map generation using Gmapping
75 |
76 |
77 | 
78 | Visualization of topic, node relation
79 |
80 | ### Localization
81 |
82 | Next step towards autonomy is to localize the robot within the presaved map.
83 |
84 | #### roslaunch robot_localization
85 | - In the initial stages of the project, efforts were made to localize the robot within the generated map. However, upon realization that developing the particle filter from scratch would enhance the understanding of ROS, the localization efforts were suspended, and the focus was shifted to the particle filter implementation.
86 |
87 | #### roslaunch particle_filter
88 | - The Rviz platform is initialized with predefined settings to facilitate visualization of the localization process.
89 | - The global frame of reference is set by importing the map generated by the gmapping package using the **map_server** package.
90 | - The robot model is imported to visualize the robot's position within the generated map.
91 | - To determine the robot's position relative to the global frame of reference (i.e., the map), the odom frame is updated as the robot moves. By attaching the odom frame to the origin of the map, the robot's motion can be visualized in Rviz.
92 | - To establish the transformation between the map and odom frames, the tf package is employed. The node **static_transform_publisher** is used to set the transform between these frames once, as needed.
93 |
94 | #### rosrun localizer
95 | - The program is structured into two sections: the setup and the loop.
96 | - The program functions as a ROS node that subscribes to the "/odom" node to retrieve the robot's current location.
97 | - Additionally, it publishes to two topics, namely **"particle_cloud_PoseArray" and "particle_cloud_Origin",** which receive "PoseArray" data for visualizing the poses of particles.
98 | - The frame of the "PoseArray" is attached to the "map" to connect their tf data.
99 | - Once the frames are attached, the data of each particle is updated with **random poses** with uniform distribution.
100 | - The publishing rate is then set to 50 Hz, and a second delay is given until the system stabilizes.
101 | - During the execution of the node, the pose of each particle is updated according to the robot's pose. Mathematically, the **rotational transform** is applied first, while the **translational transform** is then applied to update the position of the particle with respect to the robot's position.
102 |
103 | 
104 | Particle Filter in action
105 |
106 |
107 | 
108 |
109 | Visualization of topic, node relation
110 |
111 | ### AMCL (Adaptive Mote-Carlo Localization)
112 |
113 | AMCL is a localization package that uses a particle filter to estimate the pose of a robot in an environment. AMCL combines information from odometry and laser scans, to estimate the robot's pose with respect to a given map of the environment.
114 |
115 | It maintains a set of particles, each representing a hypothesis of the robot's pose, and updates them based on the sensor measurements and motion model. The particles with higher weights indicate more likely robot poses. It resamples particles based on their weights to obtain a diverse set of hypotheses that represent the robot's pose distribution. The AMCL algorithm adapts the number of particles based on the quality of the localization estimate and can handle dynamic environments where the map or robot's position may change over time.
116 |
117 |
118 | #### roslaunch amcl
119 |
120 | - The AMCL package requires a map against which localization is performed which is provided map_server node within the map_server package.
121 | - robot_state_publisher node from the package with the same name publishes robot transforms by reading the URDF description file of the robot.
122 | - Lastly the AMCL node is launched which performs the task of localization. Various parameters are set which are used to configure the node.
123 |
124 |
125 |
126 |
127 |
128 | Localization in action
129 |
130 |
131 | 
132 | Visualization of topic, node relation
133 |
134 | ### Navigation
135 |
136 | Autonomous navigation is the process to plan and execute a path in an given or unknown environment to reach a desired destination. Navigation is bigger picture which can be achieved using perception, mapping, localization, path planning, and control modules.
137 |
138 | #### roslaunch navigation
139 |
140 | Once the gazebo simulation is up, the navigation launch files launches another two launch files.
141 | - First is the AMCL launch files which is used to localize to the robot in the map provided by the map_server. This is the same launch file used in AMCL section.
142 | - The seconds file is the move_base which actually is a part of the ROS Navigation Stack. The move is responsible for planning and controlling the motor of the robot to reach the specified destination.The move_base package combines several components to achieve autonomous navigation.
143 | - Global planner which uses **Dijkstra's algorithm** to generate a high level global plan.
144 | - Local planner which uses **Dynamic Window Approach** to performs tasks such as obstacles avoidance and generates the velocity commands to follow the global plan.
145 | - Costmap is a representation of the environment as a grid map with different cost values assigned to different areas, used by the planners to make decisions about path planning and obstacle avoidance.
146 |
147 |
148 | 
149 | Autonomous navigation of TurtleBot3
150 |
151 |
152 |
153 | 
154 | Visualization of all active topic, node relation
155 |
156 |
157 | 
158 |
159 | Visualization of inter-node relation
160 |
161 |
162 | #### rosrun initialPose
163 |
164 | - The AMCL node needs to know the initial Pose of the robot for the robot to localize, this can be done by publishing to the topic **/initialpose**.
165 | - This script instead of running several times execute only onces. First it waits for message to publish on **/odom** topic, which is the position of the robot from the origin of the map. After reception of the message secondary felids such as frame_id and covariance matrix is attached and the message is published to the initialpose topic.
166 |
167 | 
168 | Publishment to topic initialpose
169 |
170 |
171 | #### Todo
172 | - Drive the robot until robot is localized within the threshold limit. This function can be added with the initialPose node.
173 | - Publish goalPosition on topic /move_base_simple/Goal, once reached publish another Goal Position, use PID controller to check for position validity.
174 | - Perform same task of getting the robot reach a specific task but this time use rosservices to check if the robot has reached the position or not.
175 |
176 | ## Experimentations
177 |
178 | ### 360 vs 6 Samples of Lidar Sensor
179 |
180 | A experiment was conducted to observe the effects of number of samples and the coverage area of the lidar sensor over its perception of the environment.
181 | Surprisingly the performance of the robot with 360 samples and 6 samples were nearly same while needing to adjust few parameter like increasing the update rate and reducing the robot's speed.
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 | Localization of robot with 360 and 6 samples of lidar sensor
190 |
191 | **Does this imples that a Lidar sensor can be swapped with few distance sensors for Swarm Robotics Application?**
192 |
193 | Yet to experiment on:
194 | - Do we really need localization for autonomous navigation?
195 | - Does the robot need to have a map presaved for autonomous mobility.
196 | - Navigation but the map is provided by gmapping package.
197 | - Mapping and navigation using camera instead of lidar?
--------------------------------------------------------------------------------
/images/360vs6_samples.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/360vs6_samples.gif
--------------------------------------------------------------------------------
/images/GitGraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/GitGraph.png
--------------------------------------------------------------------------------
/images/amcl_rosgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/amcl_rosgraph.png
--------------------------------------------------------------------------------
/images/gazebo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/gazebo.png
--------------------------------------------------------------------------------
/images/gazebo_rosgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/gazebo_rosgraph.png
--------------------------------------------------------------------------------
/images/gmapping.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/gmapping.png
--------------------------------------------------------------------------------
/images/gmapping_rosgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/gmapping_rosgraph.png
--------------------------------------------------------------------------------
/images/initialPose.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/initialPose.gif
--------------------------------------------------------------------------------
/images/localization.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/localization.gif
--------------------------------------------------------------------------------
/images/navigation.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/navigation.gif
--------------------------------------------------------------------------------
/images/navigation_all_topics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/navigation_all_topics.png
--------------------------------------------------------------------------------
/images/navigation_nodes_only.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/navigation_nodes_only.png
--------------------------------------------------------------------------------
/images/particle_filter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/particle_filter.png
--------------------------------------------------------------------------------
/images/particlefilter_rosgraph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/images/particlefilter_rosgraph.png
--------------------------------------------------------------------------------
/launch/amcl.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
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 |
--------------------------------------------------------------------------------
/launch/gazebo.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
22 |
23 |
28 |
29 |
--------------------------------------------------------------------------------
/launch/gmapping.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 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/launch/move_base.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/launch/navigation.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/launch/particle_Filter.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
15 |
16 |
--------------------------------------------------------------------------------
/launch/robot_localization.launch:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/maps/intialmap.pgm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/maps/intialmap.pgm
--------------------------------------------------------------------------------
/maps/map.pgm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/maps/map.pgm
--------------------------------------------------------------------------------
/maps/map.yaml:
--------------------------------------------------------------------------------
1 | image: map.pgm
2 | resolution: 0.050000
3 | origin: [-13.800000, -13.800000, 0.000000]
4 | negate: 0
5 | occupied_thresh: 0.65
6 | free_thresh: 0.196
7 |
8 |
--------------------------------------------------------------------------------
/meshes/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "python.autoComplete.extraPaths": [
3 | "/home/aditya/catkin_ws/devel/lib/python3/dist-packages",
4 | "/opt/ros/noetic/lib/python3/dist-packages"
5 | ]
6 | }
--------------------------------------------------------------------------------
/meshes/burger_base.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/meshes/burger_base.stl
--------------------------------------------------------------------------------
/meshes/lds.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/meshes/lds.stl
--------------------------------------------------------------------------------
/meshes/left_tire.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/meshes/left_tire.stl
--------------------------------------------------------------------------------
/meshes/right_tire.stl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/maker-ATOM/Mapping-and-Navigation-with-TurtleBot3/8b178436cb83ef373d99a5f22a94f35dd2edd52d/meshes/right_tire.stl
--------------------------------------------------------------------------------
/models/turtlebot3_plaza/goal_box/model.config:
--------------------------------------------------------------------------------
1 |
2 |
3 | goal_box
4 | 1.0
5 | model.sdf
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/models/turtlebot3_plaza/goal_box/model.sdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0 0 0 0 -0 -1.5708
5 |
6 |
7 | 0 0 0.0005 0 -0 0
8 |
9 |
10 | 0.5 0.5 0.001
11 |
12 |
13 |
14 |
18 | 1 0 0 1
19 |
20 |
21 | 0 0 0 0 -0 0
22 |
23 | 1
24 |
25 |
26 |
--------------------------------------------------------------------------------
/models/turtlebot3_plaza/model.config:
--------------------------------------------------------------------------------
1 |
2 |
3 | turtlebot3_plaza
4 | 1.0
5 | model.sdf
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/models/turtlebot3_plaza/model.sdf:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0 0 0 0 -0 0
5 |
6 |
7 |
8 |
9 | 5 0.15 0.5
10 |
11 |
12 | 0 0 0.25 0 -0 0
13 |
14 |
15 | 0 0 0.25 0 -0 0
16 |
17 |
18 | 5 0.15 0.5
19 |
20 |
21 |
22 |
26 | 1 1 1 1
27 |
28 |
29 | -2.425 0 0 0 -0 1.5708
30 |
31 |
32 |
33 |
34 |
35 | 1 0.15 0.5
36 |
37 |
38 | 0 0 0.25 0 -0 0
39 |
40 |
41 | 0 0 0.25 0 -0 0
42 |
43 |
44 | 1 0.15 0.5
45 |
46 |
47 |
48 |
52 | 1 1 1 1
53 |
54 |
55 | -1.937 -1.467 0 0 -0 0
56 |
57 |
58 |
59 |
60 |
61 | 1 0.15 0.5
62 |
63 |
64 | 0 0 0.25 0 -0 0
65 |
66 |
67 | 0 0 0.25 0 -0 0
68 |
69 |
70 | 1 0.15 0.5
71 |
72 |
73 |
74 |
78 | 1 1 1 1
79 |
80 |
81 | -0.22 -1.866 0 0 0 -1.5708
82 |
83 |
84 |
85 |
86 |
87 | 1 0.15 0.5
88 |
89 |
90 | 0 0 0.25 0 -0 0
91 |
92 |
93 | 0 0 0.25 0 -0 0
94 |
95 |
96 | 1 0.15 0.5
97 |
98 |
99 |
100 |
104 | 1 1 1 1
105 |
106 |
107 | 1.195 -1.002 0 0 -0 1.5708
108 |
109 |
110 |
111 |
112 |
113 | 1 0.15 0.5
114 |
115 |
116 | 0 0 0.25 0 -0 0
117 |
118 |
119 | 0 0 0.25 0 -0 0
120 |
121 |
122 | 1 0.15 0.5
123 |
124 |
125 |
126 |
130 | 1 1 1 1
131 |
132 |
133 | 1.288 1.93 0 0 0 -1.5708
134 |
135 |
136 |
137 |
138 |
139 | 1 0.15 0.5
140 |
141 |
142 | 0 0 0.25 0 -0 0
143 |
144 |
145 | 0 0 0.25 0 -0 0
146 |
147 |
148 | 1 0.15 0.5
149 |
150 |
151 |
152 |
156 | 1 1 1 1
157 |
158 |
159 | 1.91128 0.4632 0 0 -0 0
160 |
161 |
162 |
163 |
164 |
165 | 5 0.15 0.5
166 |
167 |
168 | 0 0 0.25 0 -0 0
169 |
170 |
171 | 0 0 0.25 0 -0 0
172 |
173 |
174 | 5 0.15 0.5
175 |
176 |
177 |
178 |
182 | 1 1 1 1
183 |
184 |
185 | 0 2.425 0 0 -0 0
186 |
187 |
188 |
189 |
190 |
191 | 1 0.15 0.5
192 |
193 |
194 | 0 0 0.25 0 -0 0
195 |
196 |
197 | 0 0 0.25 0 -0 0
198 |
199 |
200 | 1 0.15 0.5
201 |
202 |
203 |
204 |
208 | 1 1 1 1
209 |
210 |
211 | 0.204 0.215 0 0 0 -1.5708
212 |
213 |
214 |
215 |
216 |
217 | 5 0.15 0.5
218 |
219 |
220 | 0 0 0.25 0 -0 0
221 |
222 |
223 | 0 0 0.25 0 -0 0
224 |
225 |
226 | 5 0.15 0.5
227 |
228 |
229 |
230 |
234 | 1 1 1 1
235 |
236 |
237 | 2.425 0 0 0 0 -1.5708
238 |
239 |
240 |
241 |
242 |
243 | 5 0.15 0.5
244 |
245 |
246 | 0 0 0.25 0 -0 0
247 |
248 |
249 | 0 0 0.25 0 -0 0
250 |
251 |
252 | 5 0.15 0.5
253 |
254 |
255 |
256 |
260 | 1 1 1 1
261 |
262 |
263 | 0 -2.425 0 0 -0 3.14159
264 |
265 |
266 |
267 |
268 |
269 | 1 0.15 0.5
270 |
271 |
272 | 0 0 0.25 0 -0 0
273 |
274 |
275 | 0 0 0.25 0 -0 0
276 |
277 |
278 | 1 0.15 0.5
279 |
280 |
281 |
282 |
286 | 1 1 1 1
287 |
288 |
289 | -1.064 1.548 0 0 -0 0
290 |
291 |
292 |
293 |
294 |
295 | 1 0.15 0.5
296 |
297 |
298 | 0 0 0.25 0 -0 0
299 |
300 |
301 | 0 0 0.25 0 -0 0
302 |
303 |
304 | 1 0.15 0.5
305 |
306 |
307 |
308 |
312 | 1 1 1 1
313 |
314 |
315 | -1.502 0.092 0 0 0 -1.5708
316 |
317 | 1
318 |
319 |
320 |
--------------------------------------------------------------------------------
/package.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Mapping-and-Navigation-with-TurtleBot3
4 | 0.0.0
5 | The Mapping-and-Navigation-with-TurtleBot3 package
6 |
7 |
8 |
9 |
10 | aditya
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 | roscpp
53 | rospy
54 | std_msgs
55 | roscpp
56 | rospy
57 | std_msgs
58 | roscpp
59 | rospy
60 | std_msgs
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
--------------------------------------------------------------------------------
/param/base_local_planner_params.yaml:
--------------------------------------------------------------------------------
1 | TrajectoryPlannerROS:
2 |
3 | # Robot Configuration Parameters
4 | max_vel_x: 0.18
5 | min_vel_x: 0.08
6 |
7 | max_vel_theta: 1.0
8 | min_vel_theta: -1.0
9 | min_in_place_vel_theta: 1.0
10 |
11 | acc_lim_x: 1.0
12 | acc_lim_y: 0.0
13 | acc_lim_theta: 0.6
14 |
15 | # Goal Tolerance Parameters
16 | xy_goal_tolerance: 0.10
17 | yaw_goal_tolerance: 0.05
18 |
19 | # Differential-drive robot configuration
20 | holonomic_robot: false
21 |
22 | # Forward Simulation Parameters
23 | sim_time: 0.8
24 | vx_samples: 18
25 | vtheta_samples: 20
26 | sim_granularity: 0.05
27 |
--------------------------------------------------------------------------------
/param/costmap_common_params_burger.yaml:
--------------------------------------------------------------------------------
1 | obstacle_range: 3.0
2 | raytrace_range: 3.5
3 |
4 | footprint: [[-0.105, -0.105], [-0.105, 0.105], [0.041, 0.105], [0.041, -0.105]]
5 | #robot_radius: 0.105
6 |
7 | inflation_radius: 1.0
8 | cost_scaling_factor: 3.0
9 |
10 | map_type: costmap
11 | observation_sources: scan
12 | scan: {sensor_frame: base_scan, data_type: LaserScan, topic: scan, marking: true, clearing: true}
--------------------------------------------------------------------------------
/param/dwa_local_planner_params_burger.yaml:
--------------------------------------------------------------------------------
1 | DWAPlannerROS:
2 |
3 | # Robot Configuration Parameters
4 | max_vel_x: 0.22
5 | min_vel_x: -0.22
6 |
7 | max_vel_y: 0.0
8 | min_vel_y: 0.0
9 |
10 | # The velocity when robot is moving in a straight line
11 | max_vel_trans: 0.22
12 | min_vel_trans: 0.11
13 |
14 | max_vel_theta: 2.75
15 | min_vel_theta: 1.37
16 |
17 | acc_lim_x: 2.5
18 | acc_lim_y: 0.0
19 | acc_lim_theta: 3.2
20 |
21 | # Goal Tolerance Parameters
22 | xy_goal_tolerance: 0.05
23 | yaw_goal_tolerance: 0.17
24 | latch_xy_goal_tolerance: false
25 |
26 | # Forward Simulation Parameters
27 | sim_time: 1.5
28 | vx_samples: 20
29 | vy_samples: 0
30 | vth_samples: 40
31 | controller_frequency: 10.0
32 |
33 | # Trajectory Scoring Parameters
34 | path_distance_bias: 32.0
35 | goal_distance_bias: 20.0
36 | occdist_scale: 0.02
37 | forward_point_distance: 0.325
38 | stop_time_buffer: 0.2
39 | scaling_speed: 0.25
40 | max_scaling_factor: 0.2
41 |
42 | # Oscillation Prevention Parameters
43 | oscillation_reset_dist: 0.05
44 |
45 | # Debugging
46 | publish_traj_pc : true
47 | publish_cost_grid_pc: true
48 |
--------------------------------------------------------------------------------
/param/global_costmap_params.yaml:
--------------------------------------------------------------------------------
1 | global_costmap:
2 | global_frame: map
3 | robot_base_frame: base_footprint
4 |
5 | update_frequency: 10.0
6 | publish_frequency: 10.0
7 | transform_tolerance: 0.5
8 |
9 | static_map: true
10 |
11 |
--------------------------------------------------------------------------------
/param/local_costmap_params.yaml:
--------------------------------------------------------------------------------
1 | local_costmap:
2 | global_frame: odom
3 | robot_base_frame: base_footprint
4 |
5 | update_frequency: 10.0
6 | publish_frequency: 10.0
7 | transform_tolerance: 0.5
8 |
9 | static_map: false
10 | rolling_window: true
11 | width: 3
12 | height: 3
13 | resolution: 0.05
14 |
15 |
--------------------------------------------------------------------------------
/param/move_base_params.yaml:
--------------------------------------------------------------------------------
1 | shutdown_costmaps: false
2 | controller_frequency: 10.0
3 | planner_patience: 5.0
4 | controller_patience: 15.0
5 | conservative_reset_dist: 3.0
6 | planner_frequency: 5.0
7 | oscillation_timeout: 10.0
8 | oscillation_distance: 0.2
9 |
10 |
--------------------------------------------------------------------------------
/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 | - /LaserScan1
10 | Splitter Ratio: 0.5
11 | Tree Height: 363
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: LaserScan
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: 0.5
66 | Autocompute Intensity Bounds: true
67 | Autocompute Value Bounds:
68 | Max Value: 2.3127541542053223
69 | Min Value: -2.3566946983337402
70 | Value: true
71 | Axis: Y
72 | Channel Name: intensity
73 | Class: rviz/LaserScan
74 | Color: 0; 255; 0
75 | Color Transformer: FlatColor
76 | Decay Time: 0
77 | Enabled: true
78 | Invert Rainbow: false
79 | Max Color: 255; 255; 255
80 | Min Color: 0; 0; 0
81 | Name: LaserScan
82 | Position Transformer: XYZ
83 | Queue Size: 10
84 | Selectable: true
85 | Size (Pixels): 3
86 | Size (m): 0.029999999329447746
87 | Style: Flat Squares
88 | Topic: /scan
89 | Unreliable: false
90 | Use Fixed Frame: true
91 | Use rainbow: true
92 | Value: true
93 | - Alpha: 1
94 | Class: rviz/RobotModel
95 | Collision Enabled: false
96 | Enabled: true
97 | Links:
98 | All Links Enabled: true
99 | Expand Joint Details: false
100 | Expand Link Details: false
101 | Expand Tree: false
102 | Link Tree Style: Links in Alphabetic Order
103 | base_footprint:
104 | Alpha: 1
105 | Show Axes: false
106 | Show Trail: false
107 | base_link:
108 | Alpha: 1
109 | Show Axes: false
110 | Show Trail: false
111 | Value: true
112 | base_scan:
113 | Alpha: 1
114 | Show Axes: false
115 | Show Trail: false
116 | Value: true
117 | caster_back_link:
118 | Alpha: 1
119 | Show Axes: false
120 | Show Trail: false
121 | Value: true
122 | imu_link:
123 | Alpha: 1
124 | Show Axes: false
125 | Show Trail: false
126 | wheel_left_link:
127 | Alpha: 1
128 | Show Axes: false
129 | Show Trail: false
130 | Value: true
131 | wheel_right_link:
132 | Alpha: 1
133 | Show Axes: false
134 | Show Trail: false
135 | Value: true
136 | Name: RobotModel
137 | Robot Description: robot_description
138 | TF Prefix: ""
139 | Update Interval: 0
140 | Value: true
141 | Visual Enabled: true
142 | Enabled: true
143 | Global Options:
144 | Background Color: 48; 48; 48
145 | Default Light: true
146 | Fixed Frame: map
147 | Frame Rate: 30
148 | Name: root
149 | Tools:
150 | - Class: rviz/Interact
151 | Hide Inactive Objects: true
152 | - Class: rviz/MoveCamera
153 | - Class: rviz/Select
154 | - Class: rviz/FocusCamera
155 | - Class: rviz/Measure
156 | - Class: rviz/SetInitialPose
157 | Theta std deviation: 0.2617993950843811
158 | Topic: /initialpose
159 | X std deviation: 0.5
160 | Y std deviation: 0.5
161 | - Class: rviz/SetGoal
162 | Topic: /move_base_simple/goal
163 | - Class: rviz/PublishPoint
164 | Single click: true
165 | Topic: /clicked_point
166 | Value: true
167 | Views:
168 | Current:
169 | Class: rviz/Orbit
170 | Distance: 6.980874061584473
171 | Enable Stereo Rendering:
172 | Stereo Eye Separation: 0.05999999865889549
173 | Stereo Focal Distance: 1
174 | Swap Stereo Eyes: false
175 | Value: false
176 | Field of View: 0.7853981852531433
177 | Focal Point:
178 | X: 0.5452069044113159
179 | Y: -0.02987780049443245
180 | Z: 0.00025243873824365437
181 | Focal Shape Fixed Size: true
182 | Focal Shape Size: 0.05000000074505806
183 | Invert Z Axis: false
184 | Name: Current View
185 | Near Clip Distance: 0.009999999776482582
186 | Pitch: 1.5697963237762451
187 | Target Frame:
188 | Yaw: 4.7131853103637695
189 | Saved: ~
190 | Window Geometry:
191 | Displays:
192 | collapsed: true
193 | Height: 1007
194 | Hide Left Dock: true
195 | Hide Right Dock: true
196 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000351fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073000000003d00000351000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000351fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d00000351000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004180000003efc0100000002fb0000000800540069006d0065010000000000000418000003bc00fffffffb0000000800540069006d00650100000000000004500000000000000000000004180000035100000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
197 | Selection:
198 | collapsed: false
199 | Time:
200 | collapsed: false
201 | Tool Properties:
202 | collapsed: false
203 | Views:
204 | collapsed: true
205 | Width: 1048
206 | X: 64
207 | Y: 27
208 |
--------------------------------------------------------------------------------
/rviz/localization.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 | - /Amcl Particles1
10 | Splitter Ratio: 0.5
11 | Tree Height: 787
12 | - Class: rviz/Selection
13 | Name: Selection
14 | - Class: rviz/Tool Properties
15 | Expanded:
16 | - /2D Pose Estimate1
17 | - /2D Nav Goal1
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 | Name: Time
27 | SyncMode: 0
28 | SyncSource: LaserScan
29 | Preferences:
30 | PromptSaveOnExit: true
31 | Toolbars:
32 | toolButtonStyle: 2
33 | Visualization Manager:
34 | Class: ""
35 | Displays:
36 | - Alpha: 0.5
37 | Cell Size: 1
38 | Class: rviz/Grid
39 | Color: 160; 160; 164
40 | Enabled: true
41 | Line Style:
42 | Line Width: 0.029999999329447746
43 | Value: Lines
44 | Name: Grid
45 | Normal Cell Count: 0
46 | Offset:
47 | X: 0
48 | Y: 0
49 | Z: 0
50 | Plane: XY
51 | Plane Cell Count: 20
52 | Reference Frame:
53 | Value: true
54 | - Alpha: 1
55 | Class: rviz/RobotModel
56 | Collision Enabled: false
57 | Enabled: true
58 | Links:
59 | All Links Enabled: true
60 | Expand Joint Details: false
61 | Expand Link Details: false
62 | Expand Tree: false
63 | Link Tree Style: Links in Alphabetic Order
64 | base_footprint:
65 | Alpha: 1
66 | Show Axes: false
67 | Show Trail: false
68 | base_link:
69 | Alpha: 1
70 | Show Axes: false
71 | Show Trail: false
72 | Value: true
73 | base_scan:
74 | Alpha: 1
75 | Show Axes: false
76 | Show Trail: false
77 | Value: true
78 | caster_back_link:
79 | Alpha: 1
80 | Show Axes: false
81 | Show Trail: false
82 | Value: true
83 | imu_link:
84 | Alpha: 1
85 | Show Axes: false
86 | Show Trail: false
87 | wheel_left_link:
88 | Alpha: 1
89 | Show Axes: false
90 | Show Trail: false
91 | Value: true
92 | wheel_right_link:
93 | Alpha: 1
94 | Show Axes: false
95 | Show Trail: false
96 | Value: true
97 | Name: RobotModel
98 | Robot Description: robot_description
99 | TF Prefix: ""
100 | Update Interval: 0
101 | Value: true
102 | Visual Enabled: true
103 | - Class: rviz/TF
104 | Enabled: false
105 | Frame Timeout: 15
106 | Frames:
107 | All Enabled: false
108 | Marker Alpha: 1
109 | Marker Scale: 1
110 | Name: TF
111 | Show Arrows: true
112 | Show Axes: true
113 | Show Names: false
114 | Tree:
115 | {}
116 | Update Interval: 0
117 | Value: false
118 | - Alpha: 1
119 | Autocompute Intensity Bounds: true
120 | Autocompute Value Bounds:
121 | Max Value: 10
122 | Min Value: -10
123 | Value: true
124 | Axis: Z
125 | Channel Name: intensity
126 | Class: rviz/LaserScan
127 | Color: 0; 255; 0
128 | Color Transformer: FlatColor
129 | Decay Time: 0
130 | Enabled: true
131 | Invert Rainbow: false
132 | Max Color: 255; 255; 255
133 | Min Color: 0; 0; 0
134 | Name: LaserScan
135 | Position Transformer: XYZ
136 | Queue Size: 10
137 | Selectable: true
138 | Size (Pixels): 3
139 | Size (m): 0.030000001192092896
140 | Style: Flat Squares
141 | Topic: /scan
142 | Unreliable: false
143 | Use Fixed Frame: true
144 | Use rainbow: true
145 | Value: true
146 | - Class: rviz/Image
147 | Enabled: false
148 | Image Topic: /raspicam_node/image
149 | Max Value: 1
150 | Median window: 5
151 | Min Value: 0
152 | Name: Image
153 | Normalize Range: true
154 | Queue Size: 2
155 | Transport Hint: compressed
156 | Unreliable: false
157 | Value: false
158 | - Alpha: 0.699999988079071
159 | Class: rviz/Map
160 | Color Scheme: map
161 | Draw Behind: false
162 | Enabled: true
163 | Name: Map
164 | Topic: /map
165 | Unreliable: false
166 | Use Timestamp: false
167 | Value: true
168 | - Alpha: 1
169 | Buffer Length: 1
170 | Class: rviz/Path
171 | Color: 0; 0; 0
172 | Enabled: true
173 | Head Diameter: 0.30000001192092896
174 | Head Length: 0.20000000298023224
175 | Length: 0.30000001192092896
176 | Line Style: Lines
177 | Line Width: 0.029999999329447746
178 | Name: Planner Plan
179 | Offset:
180 | X: 0
181 | Y: 0
182 | Z: 0
183 | Pose Color: 255; 85; 255
184 | Pose Style: None
185 | Queue Size: 10
186 | Radius: 0.029999999329447746
187 | Shaft Diameter: 0.10000000149011612
188 | Shaft Length: 0.10000000149011612
189 | Topic: /move_base/NavfnROS/plan
190 | Unreliable: false
191 | Value: true
192 | - Alpha: 1
193 | Arrow Length: 0.05000000074505806
194 | Axes Length: 0.30000001192092896
195 | Axes Radius: 0.009999999776482582
196 | Class: rviz/PoseArray
197 | Color: 255; 102; 0
198 | Enabled: true
199 | Head Length: 0.03999999910593033
200 | Head Radius: 0.03500000014901161
201 | Name: Amcl Particles
202 | Queue Size: 10
203 | Shaft Length: 0.07500000298023224
204 | Shaft Radius: 0.009999999776482582
205 | Shape: Arrow (3D)
206 | Topic: /particlecloud
207 | Unreliable: false
208 | Value: true
209 | Enabled: true
210 | Global Options:
211 | Background Color: 48; 48; 48
212 | Default Light: true
213 | Fixed Frame: map
214 | Frame Rate: 30
215 | Name: root
216 | Tools:
217 | - Class: rviz/MoveCamera
218 | - Class: rviz/Interact
219 | Hide Inactive Objects: true
220 | - Class: rviz/Select
221 | - Class: rviz/SetInitialPose
222 | Theta std deviation: 0.2617993950843811
223 | Topic: /initialpose
224 | X std deviation: 0.5
225 | Y std deviation: 0.5
226 | - Class: rviz/SetGoal
227 | Topic: /move_base_simple/goal
228 | - Class: rviz/Measure
229 | Value: true
230 | Views:
231 | Current:
232 | Angle: 0
233 | Class: rviz/TopDownOrtho
234 | Enable Stereo Rendering:
235 | Stereo Eye Separation: 0.05999999865889549
236 | Stereo Focal Distance: 1
237 | Swap Stereo Eyes: false
238 | Value: false
239 | Invert Z Axis: false
240 | Name: Current View
241 | Near Clip Distance: 0.009999999776482582
242 | Scale: 170.3611602783203
243 | Target Frame:
244 | X: 0
245 | Y: 0
246 | Saved: ~
247 | Window Geometry:
248 | Displays:
249 | collapsed: false
250 | Height: 1016
251 | Hide Left Dock: false
252 | Hide Right Dock: true
253 | Image:
254 | collapsed: false
255 | QMainWindow State: 000000ff00000000fd0000000400000000000001560000039efc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d0000039e000000c900fffffffb0000000a0049006d0061006700650000000317000000cc0000001600fffffffb0000000a0049006d0061006700650000000330000000ce0000000000000000000000010000010f0000039efc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d0000039e000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004a00000003efc0100000002fb0000000800540069006d00650000000000000004a00000041800fffffffb0000000800540069006d00650100000000000004500000000000000000000003a30000039e00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
256 | Selection:
257 | collapsed: false
258 | Time:
259 | collapsed: false
260 | Tool Properties:
261 | collapsed: false
262 | Views:
263 | collapsed: true
264 | Width: 1279
265 | X: 64
266 | Y: 27
267 |
--------------------------------------------------------------------------------
/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: 787
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 | Name: Time
32 | SyncMode: 0
33 | SyncSource: LaserScan
34 | Preferences:
35 | PromptSaveOnExit: true
36 | Toolbars:
37 | toolButtonStyle: 2
38 | Visualization Manager:
39 | Class: ""
40 | Displays:
41 | - Alpha: 0.5
42 | Cell Size: 1
43 | Class: rviz/Grid
44 | Color: 160; 160; 164
45 | Enabled: true
46 | Line Style:
47 | Line Width: 0.029999999329447746
48 | Value: Lines
49 | Name: Grid
50 | Normal Cell Count: 0
51 | Offset:
52 | X: 0
53 | Y: 0
54 | Z: 0
55 | Plane: XY
56 | Plane Cell Count: 20
57 | Reference Frame:
58 | Value: true
59 | - Alpha: 1
60 | Class: rviz/RobotModel
61 | Collision Enabled: false
62 | Enabled: true
63 | Links:
64 | All Links Enabled: true
65 | Expand Joint Details: false
66 | Expand Link Details: false
67 | Expand Tree: false
68 | Link Tree Style: Links in Alphabetic Order
69 | base_footprint:
70 | Alpha: 1
71 | Show Axes: false
72 | Show Trail: false
73 | base_link:
74 | Alpha: 1
75 | Show Axes: false
76 | Show Trail: false
77 | Value: true
78 | base_scan:
79 | Alpha: 1
80 | Show Axes: false
81 | Show Trail: false
82 | Value: true
83 | caster_back_link:
84 | Alpha: 1
85 | Show Axes: false
86 | Show Trail: false
87 | Value: true
88 | imu_link:
89 | Alpha: 1
90 | Show Axes: false
91 | Show Trail: false
92 | wheel_left_link:
93 | Alpha: 1
94 | Show Axes: false
95 | Show Trail: false
96 | Value: true
97 | wheel_right_link:
98 | Alpha: 1
99 | Show Axes: false
100 | Show Trail: false
101 | Value: true
102 | Name: RobotModel
103 | Robot Description: robot_description
104 | TF Prefix: ""
105 | Update Interval: 0
106 | Value: true
107 | Visual Enabled: true
108 | - Class: rviz/TF
109 | Enabled: false
110 | Frame Timeout: 15
111 | Frames:
112 | All Enabled: false
113 | Marker Alpha: 1
114 | Marker Scale: 1
115 | Name: TF
116 | Show Arrows: true
117 | Show Axes: true
118 | Show Names: false
119 | Tree:
120 | {}
121 | Update Interval: 0
122 | Value: false
123 | - Alpha: 1
124 | Autocompute Intensity Bounds: true
125 | Autocompute Value Bounds:
126 | Max Value: 10
127 | Min Value: -10
128 | Value: true
129 | Axis: Z
130 | Channel Name: intensity
131 | Class: rviz/LaserScan
132 | Color: 0; 255; 0
133 | Color Transformer: FlatColor
134 | Decay Time: 0
135 | Enabled: true
136 | Invert Rainbow: false
137 | Max Color: 255; 255; 255
138 | Min Color: 0; 0; 0
139 | Name: LaserScan
140 | Position Transformer: XYZ
141 | Queue Size: 10
142 | Selectable: true
143 | Size (Pixels): 3
144 | Size (m): 0.030000001192092896
145 | Style: Flat Squares
146 | Topic: /scan
147 | Unreliable: false
148 | Use Fixed Frame: true
149 | Use rainbow: true
150 | Value: true
151 | - Class: rviz/Image
152 | Enabled: false
153 | Image Topic: /raspicam_node/image
154 | Max Value: 1
155 | Median window: 5
156 | Min Value: 0
157 | Name: Image
158 | Normalize Range: true
159 | Queue Size: 2
160 | Transport Hint: compressed
161 | Unreliable: false
162 | Value: false
163 | - Alpha: 0.699999988079071
164 | Class: rviz/Map
165 | Color Scheme: map
166 | Draw Behind: false
167 | Enabled: true
168 | Name: Map
169 | Topic: /map
170 | Unreliable: false
171 | Use Timestamp: false
172 | Value: true
173 | - Alpha: 1
174 | Buffer Length: 1
175 | Class: rviz/Path
176 | Color: 0; 0; 0
177 | Enabled: true
178 | Head Diameter: 0.30000001192092896
179 | Head Length: 0.20000000298023224
180 | Length: 0.30000001192092896
181 | Line Style: Lines
182 | Line Width: 0.029999999329447746
183 | Name: Planner Plan
184 | Offset:
185 | X: 0
186 | Y: 0
187 | Z: 0
188 | Pose Color: 255; 85; 255
189 | Pose Style: None
190 | Queue Size: 10
191 | Radius: 0.029999999329447746
192 | Shaft Diameter: 0.10000000149011612
193 | Shaft Length: 0.10000000149011612
194 | Topic: /move_base/NavfnROS/plan
195 | Unreliable: false
196 | Value: true
197 | - Class: rviz/Group
198 | Displays:
199 | - Alpha: 0.699999988079071
200 | Class: rviz/Map
201 | Color Scheme: costmap
202 | Draw Behind: true
203 | Enabled: true
204 | Name: Costmap
205 | Topic: /move_base/global_costmap/costmap
206 | Unreliable: false
207 | Use Timestamp: false
208 | Value: true
209 | - Alpha: 1
210 | Buffer Length: 1
211 | Class: rviz/Path
212 | Color: 255; 0; 0
213 | Enabled: true
214 | Head Diameter: 0.30000001192092896
215 | Head Length: 0.20000000298023224
216 | Length: 0.30000001192092896
217 | Line Style: Lines
218 | Line Width: 0.029999999329447746
219 | Name: Planner
220 | Offset:
221 | X: 0
222 | Y: 0
223 | Z: 0
224 | Pose Color: 255; 85; 255
225 | Pose Style: None
226 | Queue Size: 10
227 | Radius: 0.029999999329447746
228 | Shaft Diameter: 0.10000000149011612
229 | Shaft Length: 0.10000000149011612
230 | Topic: /move_base/DWAPlannerROS/global_plan
231 | Unreliable: false
232 | Value: true
233 | Enabled: true
234 | Name: Global Map
235 | - Class: rviz/Group
236 | Displays:
237 | - Alpha: 1
238 | Class: rviz/Polygon
239 | Color: 0; 0; 0
240 | Enabled: true
241 | Name: Polygon
242 | Queue Size: 10
243 | Topic: /move_base/local_costmap/footprint
244 | Unreliable: false
245 | Value: true
246 | - Alpha: 0.699999988079071
247 | Class: rviz/Map
248 | Color Scheme: costmap
249 | Draw Behind: false
250 | Enabled: true
251 | Name: Costmap
252 | Topic: /move_base/local_costmap/costmap
253 | Unreliable: false
254 | Use Timestamp: false
255 | Value: true
256 | - Alpha: 1
257 | Buffer Length: 1
258 | Class: rviz/Path
259 | Color: 255; 255; 0
260 | Enabled: true
261 | Head Diameter: 0.30000001192092896
262 | Head Length: 0.20000000298023224
263 | Length: 0.30000001192092896
264 | Line Style: Lines
265 | Line Width: 0.029999999329447746
266 | Name: Planner
267 | Offset:
268 | X: 0
269 | Y: 0
270 | Z: 0
271 | Pose Color: 255; 85; 255
272 | Pose Style: None
273 | Queue Size: 10
274 | Radius: 0.029999999329447746
275 | Shaft Diameter: 0.10000000149011612
276 | Shaft Length: 0.10000000149011612
277 | Topic: /move_base/DWAPlannerROS/local_plan
278 | Unreliable: false
279 | Value: true
280 | Enabled: true
281 | Name: Local Map
282 | - Alpha: 1
283 | Arrow Length: 0.05000000074505806
284 | Axes Length: 0.30000001192092896
285 | Axes Radius: 0.009999999776482582
286 | Class: rviz/PoseArray
287 | Color: 0; 192; 0
288 | Enabled: true
289 | Head Length: 0.07000000029802322
290 | Head Radius: 0.029999999329447746
291 | Name: Amcl Particles
292 | Queue Size: 10
293 | Shaft Length: 0.23000000417232513
294 | Shaft Radius: 0.009999999776482582
295 | Shape: Arrow (Flat)
296 | Topic: /particlecloud
297 | Unreliable: false
298 | Value: true
299 | - Alpha: 1
300 | Axes Length: 1
301 | Axes Radius: 0.10000000149011612
302 | Class: rviz/Pose
303 | Color: 255; 25; 0
304 | Enabled: true
305 | Head Length: 0.30000001192092896
306 | Head Radius: 0.10000000149011612
307 | Name: Goal
308 | Queue Size: 10
309 | Shaft Length: 0.5
310 | Shaft Radius: 0.05000000074505806
311 | Shape: Arrow
312 | Topic: /move_base_simple/goal
313 | Unreliable: false
314 | Value: true
315 | Enabled: true
316 | Global Options:
317 | Background Color: 48; 48; 48
318 | Default Light: true
319 | Fixed Frame: map
320 | Frame Rate: 30
321 | Name: root
322 | Tools:
323 | - Class: rviz/MoveCamera
324 | - Class: rviz/Interact
325 | Hide Inactive Objects: true
326 | - Class: rviz/Select
327 | - Class: rviz/SetInitialPose
328 | Theta std deviation: 0.2617993950843811
329 | Topic: /initialpose
330 | X std deviation: 0.5
331 | Y std deviation: 0.5
332 | - Class: rviz/SetGoal
333 | Topic: /move_base_simple/goal
334 | - Class: rviz/Measure
335 | Value: true
336 | Views:
337 | Current:
338 | Angle: 0
339 | Class: rviz/TopDownOrtho
340 | Enable Stereo Rendering:
341 | Stereo Eye Separation: 0.05999999865889549
342 | Stereo Focal Distance: 1
343 | Swap Stereo Eyes: false
344 | Value: false
345 | Invert Z Axis: false
346 | Name: Current View
347 | Near Clip Distance: 0.009999999776482582
348 | Scale: 155.15501403808594
349 | Target Frame:
350 | X: 0
351 | Y: 0
352 | Saved: ~
353 | Window Geometry:
354 | Displays:
355 | collapsed: true
356 | Height: 1016
357 | Hide Left Dock: true
358 | Hide Right Dock: true
359 | Image:
360 | collapsed: false
361 | QMainWindow State: 000000ff00000000fd00000004000000000000016a0000039efc0200000007fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073000000003d0000039e000000c900fffffffb0000000a0049006d0061006700650000000317000000cc0000001600fffffffb0000000a0049006d0061006700650000000330000000ce0000000000000000000000010000010f0000039efc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d0000039e000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004a00000003efc0100000002fb0000000800540069006d00650000000000000004a00000041800fffffffb0000000800540069006d00650100000000000004500000000000000000000003f60000039e00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
362 | Selection:
363 | collapsed: false
364 | Time:
365 | collapsed: false
366 | Tool Properties:
367 | collapsed: false
368 | Views:
369 | collapsed: true
370 | Width: 1014
371 | X: 64
372 | Y: 27
373 |
--------------------------------------------------------------------------------
/rviz/particle_filter.rviz:
--------------------------------------------------------------------------------
1 | Panels:
2 | - Class: rviz/Displays
3 | Help Height: 78
4 | Name: Displays
5 | Property Tree Widget:
6 | Expanded:
7 | - /Odometry1/Shape1
8 | Splitter Ratio: 0.5
9 | Tree Height: 714
10 | - Class: rviz/Selection
11 | Name: Selection
12 | - Class: rviz/Tool Properties
13 | Expanded:
14 | - /2D Pose Estimate1
15 | - /2D Nav Goal1
16 | - /Publish Point1
17 | Name: Tool Properties
18 | Splitter Ratio: 0.5886790156364441
19 | - Class: rviz/Views
20 | Expanded:
21 | - /Current View1
22 | Name: Views
23 | Splitter Ratio: 0.5
24 | - Class: rviz/Time
25 | Name: Time
26 | SyncMode: 0
27 | SyncSource: LaserScan
28 | Preferences:
29 | PromptSaveOnExit: true
30 | Toolbars:
31 | toolButtonStyle: 2
32 | Visualization Manager:
33 | Class: ""
34 | Displays:
35 | - Alpha: 0.5
36 | Cell Size: 1
37 | Class: rviz/Grid
38 | Color: 160; 160; 164
39 | Enabled: true
40 | Line Style:
41 | Line Width: 0.029999999329447746
42 | Value: Lines
43 | Name: Grid
44 | Normal Cell Count: 0
45 | Offset:
46 | X: 0
47 | Y: 0
48 | Z: 0
49 | Plane: XY
50 | Plane Cell Count: 10
51 | Reference Frame:
52 | Value: true
53 | - Alpha: 0.699999988079071
54 | Class: rviz/Map
55 | Color Scheme: map
56 | Draw Behind: false
57 | Enabled: true
58 | Name: Map
59 | Topic: /map
60 | Unreliable: false
61 | Use Timestamp: false
62 | Value: true
63 | - Alpha: 1
64 | Class: rviz/RobotModel
65 | Collision Enabled: false
66 | Enabled: true
67 | Links:
68 | All Links Enabled: true
69 | Expand Joint Details: false
70 | Expand Link Details: false
71 | Expand Tree: false
72 | Link Tree Style: Links in Alphabetic Order
73 | base_footprint:
74 | Alpha: 1
75 | Show Axes: false
76 | Show Trail: false
77 | base_link:
78 | Alpha: 1
79 | Show Axes: false
80 | Show Trail: false
81 | Value: true
82 | base_scan:
83 | Alpha: 1
84 | Show Axes: false
85 | Show Trail: false
86 | Value: true
87 | caster_back_link:
88 | Alpha: 1
89 | Show Axes: false
90 | Show Trail: false
91 | Value: true
92 | imu_link:
93 | Alpha: 1
94 | Show Axes: false
95 | Show Trail: false
96 | wheel_left_link:
97 | Alpha: 1
98 | Show Axes: false
99 | Show Trail: false
100 | Value: true
101 | wheel_right_link:
102 | Alpha: 1
103 | Show Axes: false
104 | Show Trail: false
105 | Value: true
106 | Name: RobotModel
107 | Robot Description: robot_description
108 | TF Prefix: ""
109 | Update Interval: 0
110 | Value: true
111 | Visual Enabled: true
112 | - Alpha: 0.699999988079071
113 | Autocompute Intensity Bounds: true
114 | Autocompute Value Bounds:
115 | Max Value: 10
116 | Min Value: -10
117 | Value: true
118 | Axis: Z
119 | Channel Name: intensity
120 | Class: rviz/LaserScan
121 | Color: 255; 255; 255
122 | Color Transformer: Intensity
123 | Decay Time: 0
124 | Enabled: false
125 | Invert Rainbow: false
126 | Max Color: 255; 255; 255
127 | Min Color: 0; 150; 255
128 | Name: LaserScan
129 | Position Transformer: XYZ
130 | Queue Size: 10
131 | Selectable: true
132 | Size (Pixels): 3
133 | Size (m): 0.009999999776482582
134 | Style: Points
135 | Topic: /scan
136 | Unreliable: false
137 | Use Fixed Frame: true
138 | Use rainbow: false
139 | Value: false
140 | - Alpha: 1
141 | Class: rviz_plugin_tutorials/Imu
142 | Color: 204; 51; 204
143 | Enabled: false
144 | History Length: 1
145 | Name: Imu
146 | Queue Size: 10
147 | Topic: /imu
148 | Unreliable: false
149 | Value: false
150 | - Angle Tolerance: 0.0010000000474974513
151 | Class: rviz/Odometry
152 | Covariance:
153 | Orientation:
154 | Alpha: 0.5
155 | Color: 255; 255; 127
156 | Color Style: Unique
157 | Frame: Local
158 | Offset: 1
159 | Scale: 1
160 | Value: true
161 | Position:
162 | Alpha: 0.30000001192092896
163 | Color: 204; 51; 204
164 | Scale: 1
165 | Value: false
166 | Value: false
167 | Enabled: true
168 | Keep: 1
169 | Name: Odometry
170 | Position Tolerance: 0.0010000000474974513
171 | Queue Size: 10
172 | Shape:
173 | Alpha: 0.699999988079071
174 | Axes Length: 1
175 | Axes Radius: 0.10000000149011612
176 | Color: 0; 150; 255
177 | Head Length: 0.10000000149011612
178 | Head Radius: 0.07500000298023224
179 | Shaft Length: 0.20000000298023224
180 | Shaft Radius: 0.019999999552965164
181 | Value: Arrow
182 | Topic: /odom
183 | Unreliable: false
184 | Value: true
185 | - Alpha: 1
186 | Arrow Length: 0.30000001192092896
187 | Axes Length: 0.20000000298023224
188 | Axes Radius: 0.009999999776482582
189 | Class: rviz/PoseArray
190 | Color: 255; 25; 0
191 | Enabled: false
192 | Head Length: 0.03999999910593033
193 | Head Radius: 0.029999999329447746
194 | Name: PoseArray
195 | Queue Size: 1000
196 | Shaft Length: 0.10000000149011612
197 | Shaft Radius: 0.009999999776482582
198 | Shape: Axes
199 | Topic: /particle_cloud_Origin
200 | Unreliable: false
201 | Value: false
202 | - Class: rviz/TF
203 | Enabled: false
204 | Frame Timeout: 15
205 | Frames:
206 | All Enabled: true
207 | Marker Alpha: 1
208 | Marker Scale: 0.5
209 | Name: TF
210 | Show Arrows: true
211 | Show Axes: true
212 | Show Names: true
213 | Tree:
214 | {}
215 | Update Interval: 0
216 | Value: false
217 | - Alpha: 1
218 | Arrow Length: 0.30000001192092896
219 | Axes Length: 0.30000001192092896
220 | Axes Radius: 0.009999999776482582
221 | Class: rviz/PoseArray
222 | Color: 255; 25; 0
223 | Enabled: true
224 | Head Length: 0.05000000074505806
225 | Head Radius: 0.029999999329447746
226 | Name: PoseArray
227 | Queue Size: 10
228 | Shaft Length: 0.10000000149011612
229 | Shaft Radius: 0.009999999776482582
230 | Shape: Arrow (3D)
231 | Topic: /particle_cloud_PoseArray
232 | Unreliable: false
233 | Value: true
234 | - Alpha: 0.699999988079071
235 | Autocompute Intensity Bounds: true
236 | Autocompute Value Bounds:
237 | Max Value: 10
238 | Min Value: -10
239 | Value: true
240 | Axis: Z
241 | Channel Name: intensity
242 | Class: rviz/LaserScan
243 | Color: 255; 255; 255
244 | Color Transformer: Intensity
245 | Decay Time: 0
246 | Enabled: true
247 | Invert Rainbow: false
248 | Max Color: 255; 255; 255
249 | Min Color: 0; 255; 0
250 | Name: LaserScan
251 | Position Transformer: XYZ
252 | Queue Size: 10
253 | Selectable: true
254 | Size (Pixels): 3
255 | Size (m): 0.20000000298023224
256 | Style: Points
257 | Topic: /particle_cloud_LaserScan
258 | Unreliable: false
259 | Use Fixed Frame: true
260 | Use rainbow: false
261 | Value: true
262 | Enabled: true
263 | Global Options:
264 | Background Color: 48; 48; 48
265 | Default Light: true
266 | Fixed Frame: map
267 | Frame Rate: 30
268 | Name: root
269 | Tools:
270 | - Class: rviz/Interact
271 | Hide Inactive Objects: true
272 | - Class: rviz/MoveCamera
273 | - Class: rviz/Select
274 | - Class: rviz/FocusCamera
275 | - Class: rviz/Measure
276 | - Class: rviz/SetInitialPose
277 | Theta std deviation: 0.2617993950843811
278 | Topic: /initialpose
279 | X std deviation: 0.5
280 | Y std deviation: 0.5
281 | - Class: rviz/SetGoal
282 | Topic: /move_base_simple/goal
283 | - Class: rviz/PublishPoint
284 | Single click: true
285 | Topic: /clicked_point
286 | Value: true
287 | Views:
288 | Current:
289 | Class: rviz/Orbit
290 | Distance: 6.004093170166016
291 | Enable Stereo Rendering:
292 | Stereo Eye Separation: 0.05999999865889549
293 | Stereo Focal Distance: 1
294 | Swap Stereo Eyes: false
295 | Value: false
296 | Field of View: 0.7853981852531433
297 | Focal Point:
298 | X: 0.1180887222290039
299 | Y: 0.008469339460134506
300 | Z: 0.00037526083178818226
301 | Focal Shape Fixed Size: true
302 | Focal Shape Size: 0.05000000074505806
303 | Invert Z Axis: false
304 | Name: Current View
305 | Near Clip Distance: 0.009999999776482582
306 | Pitch: 1.5697963237762451
307 | Target Frame:
308 | Yaw: 4.7131853103637695
309 | Saved: ~
310 | Window Geometry:
311 | Displays:
312 | collapsed: true
313 | Height: 1011
314 | Hide Left Dock: true
315 | Hide Right Dock: true
316 | QMainWindow State: 000000ff00000000fd00000004000000000000015600000355fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073000000003d00000355000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000355fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d00000355000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004180000003efc0100000002fb0000000800540069006d0065010000000000000418000003bc00fffffffb0000000800540069006d00650100000000000004500000000000000000000004180000035500000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
317 | Selection:
318 | collapsed: false
319 | Time:
320 | collapsed: false
321 | Tool Properties:
322 | collapsed: false
323 | Views:
324 | collapsed: true
325 | Width: 1048
326 | X: 64
327 | Y: 27
328 |
--------------------------------------------------------------------------------
/src/dataViz.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import rospy
4 | from sensor_msgs.msg import JointState
5 | from tf2_msgs.msg import TFMessage
6 | from rosgraph_msgs.msg import Clock
7 | from geometry_msgs.msg import Twist
8 | from gazebo_msgs.msg import LinkStates
9 | from gazebo_msgs.msg import ModelStates
10 | from dynamic_reconfigure.msg import ConfigDescription
11 | from dynamic_reconfigure.msg import Config
12 | from gazebo_msgs.msg import PerformanceMetrics
13 | from gazebo_msgs.msg import LinkState
14 | from gazebo_msgs.msg import ModelState
15 | from sensor_msgs.msg import Imu
16 | from nav_msgs.msg import Odometry
17 | from rosgraph_msgs.msg import Log
18 | from sensor_msgs.msg import LaserScan
19 |
20 |
21 | def callback(data):
22 | pass
23 |
24 |
25 |
26 | if __name__ == '__main__':
27 |
28 | # -------------------------------------------------------------------#
29 |
30 | rospy.init_node("dummy_node")
31 | rospy.Subscriber("/clock", Clock, callback)
32 | rospy.Subscriber("/cmd_vel", Twist, callback)
33 | rospy.Subscriber("/imu", Imu, callback)
34 | rospy.Subscriber("/joint_states", JointState, callback)
35 | rospy.Subscriber("/odom", Odometry, callback)
36 | rospy.Subscriber("/rosout", Log, callback)
37 | rospy.Subscriber("/rosout_agg", Log, callback)
38 | rospy.Subscriber("/scan", LaserScan, callback)
39 | rospy.Subscriber("/tf", TFMessage, callback)
40 |
41 | jointState = JointState()
42 | tranforms = TFMessage()
43 |
44 | rate = rospy.Rate(50)
45 |
46 | # -------------------------------------------------------------------#
47 |
48 | while not rospy.is_shutdown():
49 | pass
50 |
51 |
52 | # -------------------------------------------------------------------#
53 |
54 | rospy.spin()
55 |
--------------------------------------------------------------------------------
/src/initialPose.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import rospy
4 | from tf2_msgs.msg import TFMessage
5 | from geometry_msgs.msg import PoseWithCovarianceStamped
6 | from nav_msgs.msg import Odometry
7 |
8 | if __name__ == '__main__':
9 |
10 | # -------------------------------------------------------------------#
11 |
12 | rospy.init_node("initialPose")
13 | initialPose_pub = rospy.Publisher("/initialpose", PoseWithCovarianceStamped, queue_size=1)
14 |
15 | robotPose = Odometry()
16 | initialPose = PoseWithCovarianceStamped()
17 |
18 | robotPose = rospy.wait_for_message('/odom', Odometry)
19 |
20 | initialPose.pose.pose = robotPose.pose.pose
21 | initialPose.header.frame_id = "map"
22 | # How much error is present in my pose estimation
23 | initialPose.pose.covariance = [0.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
24 | 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
25 | 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
26 |
27 | rospy.sleep(1)
28 | initialPose_pub.publish(initialPose)
--------------------------------------------------------------------------------
/src/localizer.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 |
3 | import rospy
4 | from geometry_msgs.msg import PoseArray, Pose
5 | from nav_msgs.msg import Odometry
6 | from tf.transformations import quaternion_from_euler, euler_from_quaternion
7 | from sensor_msgs.msg import LaserScan
8 |
9 | import random as rn
10 | import math
11 |
12 |
13 | def odom_callback(botPose):
14 | global robotPose
15 | robotPose = botPose
16 |
17 | # def scan_callback(botLaserScan):
18 | # global robotLaserScan
19 | # robotLaserScan = botLaserScan
20 |
21 | if __name__ == '__main__':
22 | # --------------------------------- SETUP ------------------------------------------#
23 |
24 | particle_count = 2000
25 | robotPose = Odometry()
26 | # robotLaserScan = LaserScan()
27 | i = 0
28 |
29 | rospy.init_node("localizer_node")
30 | localizer_pub_PoseArray = rospy.Publisher("particle_cloud_PoseArray", PoseArray, queue_size=1)
31 | localizer_pub_Origin = rospy.Publisher("particle_cloud_Origin", PoseArray, queue_size=1)
32 | # localizer_pub_LaserScan = rospy.Publisher("particle_cloud_LaserScan", LaserScan, queue_size=1)
33 | rospy.Subscriber("/odom", Odometry, odom_callback)
34 | # rospy.Subscriber("/scan", LaserScan, scan_callback)
35 |
36 | particle_cloud_PoseArray = PoseArray()
37 | particle_cloud_PoseArray.header.frame_id = 'map'
38 |
39 | particle_cloud_Origin = PoseArray()
40 | particle_cloud_Origin.header.frame_id = 'map'
41 |
42 | # particle_cloud_LaserScan = LaserScan()
43 | # particle_cloud_LaserScan.header.frame_id = "base_scan"
44 | # particle_cloud_LaserScan.angle_min = 0.0
45 | # particle_cloud_LaserScan.angle_max = 6.28
46 | # particle_cloud_LaserScan.angle_increment = 0.0175
47 | # particle_cloud_LaserScan.range_min = 0.12
48 | # particle_cloud_LaserScan.range_max = 7.0
49 | # custom_intensities = []
50 | # custom_ranges = []
51 | # for i in range(359):
52 | # custom_ranges.append(0)
53 | # particle_cloud_LaserScan.ranges = custom_ranges
54 | # for i in range(359):
55 | # custom_intensities.append(0)
56 | # particle_cloud_LaserScan.intensities = custom_intensities
57 |
58 | for i in range(particle_count):
59 | p = Pose()
60 |
61 | p.position.x = rn.randrange(-222, 222, 1) / 100
62 | p.position.y = rn.randrange(-222, 222, 1) / 100
63 | # p.position.x = 0.5
64 | # p.position.y = 1
65 | p.position.z = 0
66 |
67 | roll = 0
68 | pitch = 0
69 | yaw = rn.randrange(-314, 314, 1)/100
70 | # yaw = 1.57
71 |
72 | q = quaternion_from_euler(roll, pitch, yaw)
73 | p.orientation.x = q[0]
74 | p.orientation.y = q[1]
75 | p.orientation.z = q[2]
76 | p.orientation.w = q[3]
77 |
78 | particle_cloud_Origin.poses.append(p)
79 | particle_cloud_PoseArray.poses.append(p)
80 |
81 |
82 | rate = rospy.Rate(20)
83 | rospy.sleep(1)
84 |
85 | # --------------------------------- LOOP -------------------------------------------#
86 | while not rospy.is_shutdown():
87 | for i in range(0, particle_count):
88 | pfp = Pose() # particle final pose
89 |
90 | # robot pose
91 | xr = robotPose.pose.pose.position.x
92 | yr = robotPose.pose.pose.position.y
93 | (rollr, pitchr, yawr) = euler_from_quaternion([robotPose.pose.pose.orientation.x, robotPose.pose.pose.orientation.y, robotPose.pose.pose.orientation.z, robotPose.pose.pose.orientation.w])
94 |
95 | # origin pose
96 | xp = particle_cloud_Origin.poses[i].position.x
97 | yp = particle_cloud_Origin.poses[i].position.y
98 | (rollo, pitcho, yawo) = euler_from_quaternion([particle_cloud_Origin.poses[i].orientation.x, particle_cloud_Origin.poses[i].orientation.y, particle_cloud_Origin.poses[i].orientation.z, particle_cloud_Origin.poses[i].orientation.w])
99 |
100 | # rotational transformation
101 | xn = xr * math.cos(yawo) - yr * math.sin(yawo)
102 | yn = xr * math.sin(yawo) + yr * math.cos(yawo)
103 |
104 | pfp.position.x = xp + xn
105 | pfp.position.y = yp + yn
106 |
107 | q = quaternion_from_euler(0, 0, yawr + yawo)
108 | pfp.orientation.x = q[0]
109 | pfp.orientation.y = q[1]
110 | pfp.orientation.z = q[2]
111 | pfp.orientation.w = q[3]
112 |
113 | particle_cloud_PoseArray.poses[i] = pfp
114 |
115 | # LaserScan updation
116 | # for i in range(0, 359):
117 | # particle_cloud_LaserScan.ranges[i] = robotLaserScan.ranges[i]
118 |
119 | localizer_pub_Origin.publish(particle_cloud_Origin)
120 | localizer_pub_PoseArray.publish(particle_cloud_PoseArray)
121 | # localizer_pub_LaserScan.publish(particle_cloud_LaserScan)
122 |
123 | # ----------------------------------------------------------------------------------#
124 |
125 | rospy.spin()
126 |
--------------------------------------------------------------------------------
/src/traverse.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import rospy
4 | from sensor_msgs.msg import LaserScan
5 | from nav_msgs.msg import Odometry
6 | from geometry_msgs.msg import Twist
7 |
8 | import tf
9 | from statistics import mean
10 |
11 | object_dist = 0
12 | obstacle_threshold = 0.4
13 | turn_threshold = 1
14 | raw_ld_data = 0
15 |
16 | yaw = 0
17 |
18 | def lidar_callback(ld_data):
19 | global raw_ld_data
20 | raw_ld_data = ld_data.ranges
21 |
22 | def odom_callback(odom_data):
23 | global yaw
24 | (r, p, y) = tf.transformations.euler_from_quaternion(
25 | [odom_data.pose.pose.orientation.x, odom_data.pose.pose.orientation.y, odom_data.pose.pose.orientation.z, odom_data.pose.pose.orientation.w])
26 | yaw = y
27 |
28 | if __name__ == '__main__':
29 |
30 | # -------------------------------------------------------------------#
31 |
32 | rospy.init_node("data_viz_node")
33 |
34 | lidar_topic = "/scan"
35 | rospy.Subscriber(lidar_topic, LaserScan, lidar_callback)
36 |
37 | odom_topic = "/odom"
38 | rospy.Subscriber(odom_topic, Odometry, odom_callback)
39 |
40 | cmdvel_topic = "/cmd_vel"
41 | pub = rospy.Publisher(cmdvel_topic, Twist, queue_size = 10)
42 |
43 | botVel = Twist()
44 |
45 | rate = rospy.Rate(50)
46 |
47 | rospy.sleep(1)
48 | botVel.linear.x = 0.15
49 |
50 | # -------------------------------------------------------------------#
51 |
52 | while not rospy.is_shutdown():
53 |
54 | a = raw_ld_data[0:20]
55 | b = raw_ld_data[339:359]
56 |
57 | object_dist = round(min(a + b),2)
58 |
59 | print(max(raw_ld_data[0:180]), max(raw_ld_data[180:359]), botVel.angular.z)
60 |
61 | if object_dist < obstacle_threshold:
62 | botVel.linear.x = 0
63 | if max(raw_ld_data[0:180]) > max(raw_ld_data[180:359]):
64 | botVel.angular.z = 0.15
65 | else:
66 | botVel.angular.z = -0.15
67 |
68 | if object_dist > turn_threshold:
69 | botVel.linear.x = 0.15
70 | botVel.angular.z = 0
71 |
72 | pub.publish(botVel)
73 | rate.sleep()
74 |
75 |
76 | # -------------------------------------------------------------------#
77 |
78 | rospy.spin()
79 |
--------------------------------------------------------------------------------
/urdf/common_properties.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/urdf/turtlebot3_burger.gazebo.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Gazebo/DarkGrey
8 |
9 |
10 |
11 | 0.1
12 | 0.1
13 | 500000.0
14 | 10.0
15 | 0.001
16 | 0.1
17 | 1 0 0
18 | Gazebo/FlatBlack
19 |
20 |
21 |
22 | 0.1
23 | 0.1
24 | 500000.0
25 | 10.0
26 | 0.001
27 | 0.1
28 | 1 0 0
29 | Gazebo/FlatBlack
30 |
31 |
32 |
33 | 0.1
34 | 0.1
35 | 1000000.0
36 | 100.0
37 | 0.001
38 | 1.0
39 | Gazebo/FlatBlack
40 |
41 |
42 |
43 |
44 | true
45 | $(arg imu_visual)
46 |
47 | Gazebo/FlatBlack
48 |
49 |
50 |
51 |
52 | cmd_vel
53 | odom
54 | odom
55 | world
56 | true
57 | base_footprint
58 | false
59 | true
60 | true
61 | false
62 | 30
63 | wheel_left_joint
64 | wheel_right_joint
65 | 0.160
66 | 0.066
67 | 1
68 | 10
69 | na
70 |
71 |
72 |
73 |
74 |
75 | true
76 | imu_link
77 | imu_link
78 | imu
79 | imu_service
80 | 0.0
81 | 0
82 |
83 |
84 | gaussian
85 |
86 | 0.0
87 | 2e-4
88 | 0.0000075
89 | 0.0000008
90 |
91 |
92 | 0.0
93 | 1.7e-2
94 | 0.1
95 | 0.001
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 | Gazebo/FlatBlack
104 |
105 | 0 0 0 0 0 0
106 |
107 | true
108 | 5
109 |
110 |
111 |
112 | 360
113 | 1
114 | 0.0
115 |
116 | 6.2831
117 |
118 |
119 |
120 | 0.120
121 | 7
122 | 0.015
123 |
124 |
125 | gaussian
126 | 0.0
127 | 0.01
128 |
129 |
130 |
131 | scan
132 | base_scan
133 |
134 |
135 |
136 |
137 |
138 |
--------------------------------------------------------------------------------
/urdf/turtlebot3_burger.urdf.xacro:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
162 |
163 |
164 |
165 |
166 |
--------------------------------------------------------------------------------
/world/obstacles.world:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 0 0 0 1
5 | 0
6 | 0.7 0.7 0.7 1
7 |
8 |
9 | 1
10 | 0 0 10 0 -0 0
11 | 0.8 0.8 0.8 1
12 | 0.2 0.2 0.2 1
13 |
14 | 1000
15 | 0.9
16 | 0.01
17 | 0.001
18 |
19 | -0.5 0.1 -0.9
20 |
21 | 0
22 | 0
23 | 0
24 |
25 |
26 |
27 | 1
28 |
29 |
30 |
31 |
32 | 0 0 1
33 | 100 100
34 |
35 |
36 |
37 |
38 |
39 | 100
40 | 50
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 | 10
52 |
53 |
54 | 0
55 |
56 |
57 | 0 0 1
58 | 100 100
59 |
60 |
61 |
62 |
66 |
67 |
68 | 0
69 | 0
70 | 0
71 |
72 |
73 |
74 | 1000
75 | 0.001
76 | 1
77 |
78 |
79 | quick
80 | 150
81 | 0
82 | 1.4
83 | 1
84 |
85 |
86 | 1e-05
87 | 0.2
88 | 2000
89 | 0.01
90 |
91 |
92 |
93 |
94 | 0 0 0 0 -0 1.57
95 |
96 |
97 |
98 |
99 | 5 0.15 0.5
100 |
101 |
102 | 0 0 0.25 0 -0 0
103 | 10
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 | 0 0 0.25 0 -0 0
119 |
120 |
121 | 5 0.15 0.5
122 |
123 |
124 |
125 |
129 | 1 1 1 1
130 |
131 |
132 | -2.425 0 0 0 -0 1.5708
133 | 0
134 | 0
135 | 0
136 |
137 |
138 |
139 |
140 |
141 | 1 0.15 0.5
142 |
143 |
144 | 0 0 0.25 0 -0 0
145 | 10
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 | 0 0 0.25 0 -0 0
161 |
162 |
163 | 1 0.15 0.5
164 |
165 |
166 |
167 |
171 | 1 1 1 1
172 |
173 |
174 | -1.937 -1.467 0 0 -0 0
175 | 0
176 | 0
177 | 0
178 |
179 |
180 |
181 |
182 |
183 | 1 0.15 0.5
184 |
185 |
186 | 0 0 0.25 0 -0 0
187 | 10
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 | 0 0 0.25 0 -0 0
203 |
204 |
205 | 1 0.15 0.5
206 |
207 |
208 |
209 |
213 | 1 1 1 1
214 |
215 |
216 | -0.22 -1.866 0 0 0 -1.5708
217 | 0
218 | 0
219 | 0
220 |
221 |
222 |
223 |
224 |
225 | 1 0.15 0.5
226 |
227 |
228 | 0 0 0.25 0 -0 0
229 | 10
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 | 0 0 0.25 0 -0 0
245 |
246 |
247 | 1 0.15 0.5
248 |
249 |
250 |
251 |
255 | 1 1 1 1
256 |
257 |
258 | 1.195 -1.002 0 0 -0 1.5708
259 | 0
260 | 0
261 | 0
262 |
263 |
264 |
265 |
266 |
267 | 1 0.15 0.5
268 |
269 |
270 | 0 0 0.25 0 -0 0
271 | 10
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 | 0 0 0.25 0 -0 0
287 |
288 |
289 | 1 0.15 0.5
290 |
291 |
292 |
293 |
297 | 1 1 1 1
298 |
299 |
300 | 1.288 1.93 0 0 0 -1.5708
301 | 0
302 | 0
303 | 0
304 |
305 |
306 |
307 |
308 |
309 | 1 0.15 0.5
310 |
311 |
312 | 0 0 0.25 0 -0 0
313 | 10
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 | 0 0 0.25 0 -0 0
329 |
330 |
331 | 1 0.15 0.5
332 |
333 |
334 |
335 |
339 | 1 1 1 1
340 |
341 |
342 | 1.91128 0.4632 0 0 -0 0
343 | 0
344 | 0
345 | 0
346 |
347 |
348 |
349 |
350 |
351 | 5 0.15 0.5
352 |
353 |
354 | 0 0 0.25 0 -0 0
355 | 10
356 |
357 |
358 |
359 |
360 |
361 |
362 |
363 |
364 |
365 |
366 |
367 |
368 |
369 |
370 | 0 0 0.25 0 -0 0
371 |
372 |
373 | 5 0.15 0.5
374 |
375 |
376 |
377 |
381 | 1 1 1 1
382 |
383 |
384 | 0 2.425 0 0 -0 0
385 | 0
386 | 0
387 | 0
388 |
389 |
390 |
391 |
392 |
393 | 1 0.15 0.5
394 |
395 |
396 | 0 0 0.25 0 -0 0
397 | 10
398 |
399 |
400 |
401 |
402 |
403 |
404 |
405 |
406 |
407 |
408 |
409 |
410 |
411 |
412 | 0 0 0.25 0 -0 0
413 |
414 |
415 | 1 0.15 0.5
416 |
417 |
418 |
419 |
423 | 1 1 1 1
424 |
425 |
426 | 0.204 0.215 0 0 0 -1.5708
427 | 0
428 | 0
429 | 0
430 |
431 |
432 |
433 |
434 |
435 | 5 0.15 0.5
436 |
437 |
438 | 0 0 0.25 0 -0 0
439 | 10
440 |
441 |
442 |
443 |
444 |
445 |
446 |
447 |
448 |
449 |
450 |
451 |
452 |
453 |
454 | 0 0 0.25 0 -0 0
455 |
456 |
457 | 5 0.15 0.5
458 |
459 |
460 |
461 |
465 | 1 1 1 1
466 |
467 |
468 | 2.425 0 0 0 0 -1.5708
469 | 0
470 | 0
471 | 0
472 |
473 |
474 |
475 |
476 |
477 | 5 0.15 0.5
478 |
479 |
480 | 0 0 0.25 0 -0 0
481 | 10
482 |
483 |
484 |
485 |
486 |
487 |
488 |
489 |
490 |
491 |
492 |
493 |
494 |
495 |
496 | 0 0 0.25 0 -0 0
497 |
498 |
499 | 5 0.15 0.5
500 |
501 |
502 |
503 |
507 | 1 1 1 1
508 |
509 |
510 | 0 -2.425 0 0 -0 3.14159
511 | 0
512 | 0
513 | 0
514 |
515 |
516 |
517 |
518 |
519 | 1 0.15 0.5
520 |
521 |
522 | 0 0 0.25 0 -0 0
523 | 10
524 |
525 |
526 |
527 |
528 |
529 |
530 |
531 |
532 |
533 |
534 |
535 |
536 |
537 |
538 | 0 0 0.25 0 -0 0
539 |
540 |
541 | 1 0.15 0.5
542 |
543 |
544 |
545 |
549 | 1 1 1 1
550 |
551 |
552 | -1.064 1.548 0 0 -0 0
553 | 0
554 | 0
555 | 0
556 |
557 |
558 |
559 |
560 |
561 | 1 0.15 0.5
562 |
563 |
564 | 0 0 0.25 0 -0 0
565 | 10
566 |
567 |
568 |
569 |
570 |
571 |
572 |
573 |
574 |
575 |
576 |
577 |
578 |
579 |
580 | 0 0 0.25 0 -0 0
581 |
582 |
583 | 1 0.15 0.5
584 |
585 |
586 |
587 |
591 | 1 1 1 1
592 |
593 |
594 | -1.502 0.092 0 0 0 -1.5708
595 | 0
596 | 0
597 | 0
598 |
599 | 1
600 |
601 |
602 | 2 -2 0 0 -0 0
603 |
604 |
605 |
606 |
607 | 0.12
608 | 0.25
609 |
610 |
611 | 10
612 |
613 |
614 |
615 |
616 |
617 |
618 |
619 |
620 |
621 |
622 |
623 |
624 |
625 |
626 |
627 |
628 | 0.12
629 | 0.25
630 |
631 |
632 |
633 | 0
634 |
635 | 0 0 0 0 -0 0
636 |
637 | 1
638 | 0
639 | 0
640 | 1
641 | 0
642 | 1
643 |
644 | 1
645 |
646 | 0
647 | 0
648 |
649 |
650 |
651 | -2 2 0 0 -0 0
652 |
653 |
654 |
655 |
656 | 0.12
657 | 0.25
658 |
659 |
660 | 10
661 |
662 |
663 |
664 |
665 |
666 |
667 |
668 |
669 |
670 |
671 |
672 |
673 |
674 |
675 |
676 |
677 | 0.12
678 | 0.25
679 |
680 |
681 |
682 | 0
683 |
684 | 0 0 0 0 -0 0
685 |
686 | 1
687 | 0
688 | 0
689 | 1
690 | 0
691 | 1
692 |
693 | 1
694 |
695 | 0
696 | 0
697 |
698 |
699 |
700 |
701 | 0.4 0.4 0.4 1
702 | 0.7 0.7 0.7 1
703 | 1
704 |
705 |
706 |
707 | 0 0 5 2.4e-05 1.57 1.57002
708 | orbit
709 | perspective
710 |
711 |
712 | 0 0 -9.8
713 | 6e-06 2.3e-05 -4.2e-05
714 |
715 |
716 |
717 | EARTH_WGS84
718 | 0
719 | 0
720 | 0
721 | 0
722 |
723 |
724 | 114 442000000
725 | 43 399583201
726 | 1688141827 111085159
727 | 41764
728 |
729 | 0 0 0 0 -0 0
730 | 1 1 1
731 |
732 | 0 0 0 0 -0 0
733 | 0 0 0 0 -0 0
734 | 0 0 0 0 -0 0
735 | 0 0 0 0 -0 0
736 |
737 |
738 |
739 | 2 -2 0.124991 0 -0 0
740 | 1 1 1
741 |
742 | 2 -2 0.124991 0 -0 0
743 | 0 0 0 0 -0 0
744 | 0 0 -9.8 0 -0 0
745 | 0 0 -9.8 0 -0 0
746 |
747 |
748 |
749 | -2 2 0.124991 0 -0 0
750 | 1 1 1
751 |
752 | -2 2 0.124991 0 -0 0
753 | 0 0 0 0 -0 0
754 | 0 0 -9.8 0 -0 0
755 | 0 0 -9.8 0 -0 0
756 |
757 |
758 |
759 | 0 -1e-06 0 0 -0 1.57
760 | 1 1 1
761 |
762 | -0.001931 -2.425 0 0 -0 3.1408
763 | 0 0 0 0 -0 0
764 | 0 0 0 0 -0 0
765 | 0 0 0 0 -0 0
766 |
767 |
768 | 1.46546 -1.93817 0 0 -0 1.57
769 | 0 0 0 0 -0 0
770 | 0 0 0 0 -0 0
771 | 0 0 0 0 -0 0
772 |
773 |
774 | 1.86582 -0.221486 0 0 0 -0.0008
775 | 0 0 0 0 -0 0
776 | 0 0 0 0 -0 0
777 | 0 0 0 0 -0 0
778 |
779 |
780 | 1.00295 1.1942 0 0 -0 3.1408
781 | 0 0 0 0 -0 0
782 | 0 0 0 0 -0 0
783 | 0 0 0 0 -0 0
784 |
785 |
786 | -1.92897 1.28954 0 0 0 -0.0008
787 | 0 0 0 0 -0 0
788 | 0 0 0 0 -0 0
789 | 0 0 0 0 -0 0
790 |
791 |
792 | -0.461678 1.91165 0 0 -0 1.57
793 | 0 0 0 0 -0 0
794 | 0 0 0 0 -0 0
795 | 0 0 0 0 -0 0
796 |
797 |
798 | -2.425 0.001931 0 0 -0 1.57
799 | 0 0 0 0 -0 0
800 | 0 0 0 0 -0 0
801 | 0 0 0 0 -0 0
802 |
803 |
804 | -0.214837 0.204171 0 0 0 -0.0008
805 | 0 0 0 0 -0 0
806 | 0 0 0 0 -0 0
807 | 0 0 0 0 -0 0
808 |
809 |
810 | 0.001931 2.425 0 0 0 -0.0008
811 | 0 0 0 0 -0 0
812 | 0 0 0 0 -0 0
813 | 0 0 0 0 -0 0
814 |
815 |
816 | 2.425 -0.001931 0 0 -0 -1.5716
817 | 0 0 0 0 -0 0
818 | 0 0 0 0 -0 0
819 | 0 0 0 0 -0 0
820 |
821 |
822 | -1.54885 -1.06277 0 0 -0 1.57
823 | 0 0 0 0 -0 0
824 | 0 0 0 0 -0 0
825 | 0 0 0 0 -0 0
826 |
827 |
828 | -0.093196 -1.50193 0 0 0 -0.0008
829 | 0 0 0 0 -0 0
830 | 0 0 0 0 -0 0
831 | 0 0 0 0 -0 0
832 |
833 |
834 |
835 | 0 0 10 0 -0 0
836 |
837 |
838 |
839 |
840 |
--------------------------------------------------------------------------------