Project 1 of Udacity Robotics Software Engineer Nanodegree Program
In this project I created a simulation world in Gazebo for all upcoming projects in the Udacity Robotics Software Engineer Nanodegree Program.
These were some of the objectives of the project:
- Build a single floor wall structure using the Building Editor tool in Gazebo. Apply at least one feature, one color, and optionally one texture to your structure. Make sure there's enough space between the walls for a robot to navigate.
- Model any object of your choice using the Model Editor tool in Gazebo. Your model links should be connected with joints.
- Import your structure and two instances of your model inside an empty Gazebo World.
- Import at least one model from the Gazebo online library and implement it in your existing Gazebo world.
- Write a C++ World Plugin to interact with your world. Your code should display “Welcome to ’s World!” message as soon as you launch the Gazebo world file.
- Gazebo >= 7.0
- ROS Kinetic
- make >= 4.1(mac, linux), 3.81(Windows)
- Linux: make is installed by default on most Linux distros
- Mac: install Xcode command line tools to get make
- Windows: Click here for installation instructions
- gcc/g++ >= 5.4
- Linux: gcc / g++ is installed by default on most Linux distros
- Mac: same deal as make - [install Xcode command line tools]((https://developer.apple.com/xcode/features/)
- Windows: recommend using MinGW
- Meet the
Prerequisites/Dependencies
- Open Ubuntu Bash and clone the project repository
- On the command line execute
sudo apt-get update && sudo apt-get upgrade -y
- Build and run your code.
Directory Structure
.Build-My-World # Build My World Project
├── model # Model files
│ ├── gokart
│ │ ├── model.config
│ │ ├── model.sdf
│ ├── myfloorplan
│ │ ├── model.config
│ │ ├── model.sdf
│ ├── robot
│ │ ├── model.config
│ │ ├── model.sdf
├── script # Gazebo World plugin C++ script
│ ├── welcome.cpp
├── world # Gazebo main World containing models
│ ├── myoffice.world
├── CMakeLists.txt # Link libraries
└──
- Clone this repository
- At the top level of the project repository, create a build directory:
mkdir build && cd build
- In
/build
directory, compile your code with
cmake .. && make
- Export your plugin folder in the terminal so your world file can find it:
export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:/home/workspace/RoboND-Term1-P1-Build-My-World/build
- Launch the world file in Gazebo to load both the world and plugin
cd /home/workspace/github/RoboND-Term1-P1-Build-My-World/world/
gazebo myoffice.world
- It's recommended to update and upgrade your environment before running the code.
sudo apt-get update && sudo apt-get upgrade -y
Thank You!