This is the third ROS project from the Udacity Robotics Software Engineer course.
The robot's task is to create a 2D occupancy grid and a 3D octomap from a simulated environment using the RTAB-Map (Real-Time Appearance-Based Mapping) ROS package.
The source code is released under an MIT license.
Author: Andres Campos
The packages: my_robot, teleop, and rtabmap_ros packages have been tested under ROS Kinetic on Ubuntu 16.04. This code is for personal learning and any fitness for a paticular purpose is disclaimed.
To install all packages from this repository as Debian packages use
sudo apt-get install ros-kinetic-...
Or use rosdep:
sudo rosdep install --from-paths src
- Robotics Operating System (ROS) (middleware for robotics)
sudo rosdep install --from-paths src
- RTAB-Map (creates a 2D occupancy grid map and/or a 3D octomap for navigation)
cd /catkin_ws/src
git clone https://github.com/introlab/rtabmap_ros.git
- teleop_twist_keyboard (allows the user to teleoperate a robot)
cd /catkin_ws/src
git clone https://github.com/ros-teleop/teleop_twist_keyboard.git
To build from source, clone the latest version from this repository into your catkin workspace and compile this package using
cd catkin_workspace/src
git clone https://github.com/acampos074/MapMyWorld.git
cd ../
catkin_make
Navigate to the /src/scripts directory, and launch the shell script:
./map_my_world.sh
- world.launch: Gazebo launch and world file
- mapping.launch: Launch file of the mapping node
Published Topics
-
/cmd_vel(geometry_msgs/Twist)Reads the user's keystroke commands and sends the corresponding linear and angular velocities to move the robot
Subscribed Topics
-
/camera/rgb/camera_info(sensor_msgs/CameraInfo)RGB camera metadata.
-
/camera/rgb/image_raw(sensor_msgs/Image)RGB/Mono image.
-
/camera/depth/image_raw(sensor_msgs/Image)Registered depth image.
-
/scan(sensor_msgs/LaserScan)Laser scan stream.
Published Topics
-
/grid_map(nav_msgs/OccupancyGrid)Mapping Occupancy grid generated with laser scans.
Parameters
-
subscribe_depth(bool,"true")Subscribe to depth image.
-
subscribe_scan(bool,"true")Subscribe to laser scan.
-
frame_id(string,"robot_footprint")Frame attached to the mobile robot.
-
odom_frame_id(string,"odom")Frame attached to the odometry.
-
database_path(string,"~/.ros/rtabmap_1.db")Path of the RTAB-Map's database.
Please report bugs and request features using the Issue Tracker