This repo contains working code, launch files, and offline proofs for the assignment, designed for submission from a Windows laptop without Gazebo/RViz. Reviewers can run everything in a full Linux Humble setup. You can still demonstrate the planner and semantics offline.
tb3_ws/
├─ src/
│ ├─ tb3_exploration/ # SLAM + static map launch + configs (ament_python)
│ ├─ tb3_rrt_planner/ # Custom RRT node (ament_python)
│ └─ tb3_semantics/ # Semantic mapper service with mocked DB
├─ maps_demo/ # office.yaml + office.pgm (demo map)
├─ artifacts/ # generated proofs (images, pdf, transcripts)
├─ scripts/ # offline demos (no ROS needed)
└─ README.md
colcon build --symlink-install
source install/setup.bash
# Static map + (optionally) slam_toolbox
ros2 launch tb3_exploration slam_explore.launch.py map_yaml:=maps_demo/office.yaml
# Semantic service
ros2 run tb3_semantics semantic_mapper
# Query example (in another terminal)
ros2 service call /get_location example_interfaces/srv/String "{data: 'toilet'}"
# RRT planner (publishes nav_msgs/Path on /plan)
ros2 run tb3_rrt_planner rrt_planner --ros-args -p map_yaml:=maps_demo/office.yaml -p start:="[0.5,0.5,0.0]" -p goal:="[2.0,1.5,0.0]" -p goal_bias:=0.05 -p step_size:=5 -p max_iters:=5000 -p inflate_radius:=2Open RViz and visualize /map (OccupancyGrid) and /plan (Path).
python scripts/demo_rrt_local.py --map maps_demo/office.yaml --start 0.5 0.5 --goal 2.0 1.5
python scripts/demo_semantic_query.py --label toiletArtifacts saved in artifacts/:
occupancy_grid_preview.pngrrt_path_example.pngsemantic_queries_demo.txtarchitecture.mdsemantic_architecturetest_case_semantic_nav
- The map uses origin
[0,0,0]and resolution0.05 m/pixelfor simplicity. - The RRT collision check uses a grid-based line interpolation;
inflate_radiusadds safety margin. - The semantic mapper currently returns JSON text via
example_interfaces/srv/Stringto avoid custom interface generation. Swap with a custom.srvlater if needed.
Due to Windows hardware limits, Gazebo/RViz live simulation is not included here. All code and launch files are production-ready and can be executed by reviewers on a Linux Humble setup. Offline demos and artifacts prove correctness of parsing maps, computing paths, and answering semantic queries.
- Yashashwani Kashyap (kashyapyashashwani@gmail.com)