Repository containing different projects involving any kind of robotic simulation
- Project 1
- Project 2 (Chase White pixel)
- Project 3 (MCL localization)
- Project 4 (RTAB Map)
- Project 5 (Home Service)
- Compiling the code in
scripts
directory is necessary to make the plugin work. - Make a directory names as build,
mkdir build
- Build directory can be located on the same level as CMakeLists.txt
- After making a build directory, open it
cd build
, then use the following commands to compile the code
$ cmake ../
$ make
Post building and compilation, you need to set a path for gazebo to know where to check your plugin too.
$ export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:/home/path_to_build_directory/build
- Use the command
gazebo worldSubmit1
to run the simulation
- First the two packages
my_robot
andball_chaser
are to be made in src folder of your catkin workspace. - Then use
catkin_make
in one level before yoursrc
directory of catkin workspace to build all the executables according to instructions inCMakeLists.txt
files.
- Use the commands
roslaunch my_robot world.launch
androslaunch ball_chaser ball_chasr.launch
to run the simulation and move around the ball to test.
- Play around with torque and velocity values to get smooth turning for different wheel joint coordinates of robot.
Link to database files(result + exported 3D Map).
-
The yellow dots (in the cube figure) are showing distinct features. (below occupancy grip)
-
Figures shows the resultant map in RViz in a slanted side view.
- In this project we used all the previous knowledge of all previous courses to make a robot capable of mapping and localizing simultaneously (SLAM) in order to pick up virtual objects and drop them off at a given position.
- Official repos of turtlebot3 were used to obtain this functionality along with "self made" nodes to pick and place virtual objects.
- Changes have been done to official repos of
turtlebot3
andturtlebot3_simulations
in order to run mapping and localization on our world and later on our map (pick and place) - For localization,
amcl
package was used (located inturtlebot3/turtlebot3_navigations
)and mapping was done viaslam_gmapping
package - For navigation, ROS Navigation stack was used.
- The ROS navigation stack creates a path for our robot based on Dijkstra's algorithm, a variant of the Uniform Cost Search algorithm, while avoiding obstacles on its path.
- Shell scripts have been made to run different nodes via xterm.
- In order to visualize, I did not run any additional command via xterm in scripts because the launch files of turtlebot3 already included those, although the path of RViz configuration file in
turtlebot3_navigation
was changed in order to run our RViz configuration. add_markers
package contains the add_markers node which adds virtual objects in rviz.pick_objects
package contains the pick_objects node which sends two goals (pose) for robot to travel to by path planning and it is synced with add_markers node to add and delete package accordingly to make it look like robot picked up the virtual object.