Skip to content

Repository files navigation

ME495 Sensing, Navigation and Machine Learning For Robotics

  • Florian Jule
  • Winter 2025

Package List

  • turtlelib: 2D geometry and differential-drive kinematics library
  • nusim: simulator and visualizer for the turtlebot3
  • nuturtle_description: robot URDF and description files
  • nuturtle_interfaces: custom service definitions
  • nuturtle_control: low-level control, odometry, and circle motion nodes
  • nuslam: EKF SLAM with unknown data association

Odometry

Here is the turtle (raphael) shown in RViz

odom.webm

Here is a video of the turtle

IMG_2006.MOV

The final odometry

Odom

SLAM in Simulation

Run the simulator:

with known data association:

ros2 launch nuslam slam.launch.xml

Here is the actual robot position, the estimated position, the map frame, the odom frame, and the paths of the real, odometry, and SLAM robots, and the estimated and actual locations of the landmarks.

slam

with unknown data association:

ros2 launch nuslam unknown_data_assoc.launch.xml

SLAM in the Real World

Final pose SLAM:

(x, y, theta) = (-0.016 m, -0.001 m, -0.018 rad)

Final pose odometry:

(x, y, theta) = (0.131 m, -0.005 m, -0.040 rad)

real_slam

Video

real_slam_10x.mp4

Cross-compilation on the PC

cd ~/me495/ws

colcon build

./aarch64 colcon_aarch64

michaelangelo:

rsync -av --delete aarch64_install/ msr@michaelangelo:/home/msr/install

rsync -av --delete aarch64_install/ msr@192.168.36.182:/home/msr/install

SSH into the robot:

Connect to TURTLENET wifi.

michaelangelo:

ssh -oSendEnv=ROS_DOMAIN_ID msr@michaelangelo

ssh -oSendEnv=ROS_DOMAIN_ID msr@192.168.36.182

pw robotics!

export ROS_DOMAIN_ID=10

source /home/msr/install/setup.bash

ros2 launch nuslam turtlebot_bringup.launch.xml

Run on the PC:

source install/setup.bash

ros2 launch nuslam pc_bringup.launch.xml

About

slam-flojule created by GitHub Classroom

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages