- James Oubre
- Winter 2023
This repository consists of several ROS packages
nuturtle_description
- contains robot description for Turtlebot and launch files to show in Rvizturtlelib
- C++ library containing 2D transformation functions, the differential drive robot class, and important EKF SLAM functionsnusim
- package to simulate environment and Turtlebot SLAMnuturtle_control
- contains nodes to control the diff drive robot, keep track of its odometry, and move the robot in predefined patternsnuslam
- package that handles EKF SLAM for the Turtlebot
Everything in red represents the ground truth of the robot. The red walls and obstacles represent the "real" obstacles. The red robot is the "real" robot.
Everything in green is a product of the SLAM algorithm. As obstacles get detected, they are added to the map in green.
The blue robot represents the vehicle's position based on its odometry.
The yellow obstacles represent the sensor output of detected obstacles.
good_slam.webm
slam_with_correction.webm
Video of robot moving in real world through turtle_control node and the corresponding odometry in RViz
turtle_and_odom.webm
In the format (x, y, theta) the original odometry position was (0, 0, 0). After driving the TurtleBot in a circle, changing the direction twice, stopping it, and then teleoperating the robot back to the starting position the ending odometry reading was (0.15, 0.04, -0.0001818).