Begin exploration into the world of robotics software engineering with a practical, system-focused approach to programming robots using the ROS framework and C++. In addition, learn and apply robotics software engineering algorithms such as localization, mapping, and navigation.
-
Use Gazebo to simulate a robotic environment comprised of a building to house your future robot. Skills apply: Gazebo, C++ plugins.
-
How to run:
- Terminal 1:
gazebo /src/project1/world/project_1_world
- Terminal 1:
-
Final output:
-
Use the Robot Operating System (ROS) to design a mobile robot. Then, house newly-designed robot in the robotic environment built in Project 1. Program robot with C++ to chase a ball through this world. Skills apply: catkin workspaces, ROS packages, ROS nodes, ROS launch files, RViz integration, and C++.
-
How to run:
- Terminal 1:
roslaunch project2 world.launch
- Terminal 2:
roslaunch ball_chaser ball_chaser.launch
- Terminal 1:
-
Final output:
-
Use the Monte Carlo Localization algorithm in ROS, in conjunction with sensor data and a map of the world, to estimate a mobile robot’s position and orientation so that robot can answer the question “Where am I?” Skills apply: Localization algorithms: Kalman Filter and MCL, ROS parameters, ROS packages integration, C++.
-
How to run:
- Terminal 1:
roslaunch my_robot world.launch
- Terminal 2:
roslaunch my_robot amcl.launch
- Terminal 1:
-
Final output:
-
Simultaneous Localization and Mapping (SLAM) can be implemented in a number of ways depending on the sensors used via various ROS packages. Use a ROS SLAM package and simulated sensor data to create an agent that can both map the world around it, and localize within it. Skills apply: Mapping and SLAM algorithms, Occupancy Grid Mapping, Grid-based FastSLAM and GraphSLAM, ROS debugging tools, C++.
-
How to run:
- Terminal 1:
roslaunch my_robot world.launch
- Terminal 2:
roslaunch my_robot teleop.launch
- Terminal 3:
roslaunch my_robot mapping.launch
- Terminal 1:
-
Final output:
- Combine everything learned in this program to simulate a home service robot that can map, localize, and navigate to transport objects, moving from one room to another autonomously. Skills will apply: Path Planning search algorithms, ROS navigation stack, C++.
-
The custom build mobile robot drives aroung the environment for mapping using
gmapping
package and create an occupancy grid map. After having the map, it uses laser range finder and odometry data to localize itself itself by utilizing Adaptive Monte Carlo Localization (AMCL). User can predefine the pick-up and delivery points for the robot, and it uses those navigation goals to autonomously plans trajectory using Dijikstra algorithm to accomplish the task. -
How to run:
- Terminal 1:
$(rospack find scripts)/home_service_robot.sh
- Terminal 1:
-
Final output:
2D occupancy grid map | Gazebo world |
---|---|