Skip to content

Repository files navigation

Team23_I2Ros_2025

Quick Project Summary

A quick project overview can be seen here:

https://youtu.be/YZ5LkFzoBeQ

Running the system

Installing Dependencies

In the team23_i2ros_2025 folder execute the following command:

./setup/setup_environment.sh

We decided against automatically rebooting your computer. Please reboot manually.

Quick Start

# Build the project
catkin build

# Start system
source devel/setup.bash
roslaunch system autonomous_system.launch

In the rare case of a black screen in rviz, please restart the simulation.

System Arguments

Argument Default Description
generate_octomap false Generate octomap from sensor data
enable_simulation true Enable simulation module
enable_decisionmaker true Enable decision maker
enable_perception true Enable perception module (camera transforms and depth processing)
enable_pose_logging false Enable pose logging
enable_path_posting true Enable path posting
enable_frenet_planner false Enable frenet optimal planner for trajectory planning
enable_dwa_planner false Enable DWA planner for trajectory planning
enable_teb_planner true Enable TEB planner for trajectory planning
enable_controller true Enable controller module
path_file $(find pathplanner) /paths/octo_based/ smoothed_v1.csv Path to path file to use as fallback in case the trajectory planner lacks compute
filter_distance 0.1 Minimum distance between path points (meters)
enable_rviz true Start RViz with default config
robot_model $(find system) /urdf/ourcar.urdf Path to robot URDF model
enable_model_display true Enable robot model and TF publishing
decisionmaker_output log Output type for decisionmaker nodes
perception_output log Output type for perception nodes
pathplanner_output log Output type for pathplanner nodes
controller_output log Output type for controller nodes
robot_state_publisher_output log Output type for robot_state_publisher
rviz_output log Output type for rviz

Examples

# Run simulation with controller
roslaunch system autonomous_system.launch enable_controller:=true

# Run without simulation (hardware mode)
roslaunch system autonomous_system.launch enable_simulation:=false

# Enable pose logging with custom fallback path
roslaunch system autonomous_system.launch enable_pose_logging:=true path_file:="$(rospack find system)/../../trajectories/custom_trajectory/my_trajectory.csv"

Project Structure

stateDiagram-v2
  state "Simulation" as Simulation {
    Perception: Perception
    DecisionMaking: Decision Making
    PathPlanner: Path Planner
    Control: Control
    PoseLogger: Pose Logger

    Perception --> PathPlanner: 2d occupancy map, <br> obstacle states, <br> pointcloud
    Perception --> DecisionMaking: 2d occupancy map, <br> obstacle states, <br> traffic light states
    PathPlanner --> Control: Trajectory
    DecisionMaking --> PathPlanner: brake command to stop at <br> traffic light and prevent <br> collisions
  }

  state "External Analysis" as Analysis {
    PoseAnalysis: min turning radius, <br> max speed/acceleration, <br> demo trajectory.. 
  }

  csvlogs: CSV Logs
  PoseLogger --> csvlogs
Loading

To preview Mermaid diagrams in VS Code, you may need the "Markdown Preview Mermaid Support" extension by Matt Bierner.

src/
├── system/         # System launch orchestration
├── simulation/     # Unity-based simulation
├── perception/     # 3D perception pipeline (point clouds, depth processing)
├── pathplanner/    # Path planning and trajectory handling
├── controller/     # Vehicle control for following trajectory
└── dummy_controller/ # Reference controller (not used in launch)

ROS Graph

Further Inormation

Further Information about the single packages can be found in the README files of the according package source folders. For example: The information and explanaition of the perception package can be found in ../src/perception/README.md

Third-Party Code Integration

This repository includes code from external sources that has been integrated directly (not as git submodules) for easier team collaboration:

autoware_ai_messages

  • Source: https://github.com/autowarefoundation/autoware_ai_messages.git
  • Purpose: ROS message definitions for Autoware AI (ROS1 compatible)
  • Modifications:
    • Removed git history for easier integration
    • Added CATKIN_IGNORE files to unused packages (only autoware_msgs is built)
  • License: Apache 2.0 (see src/autoware_ai_messages/LICENSE)

frenet_optimal_planner

  • Source: https://github.com/SS47816/frenet_optimal_planner.git
  • Purpose: Frenet coordinate-based trajectory planner for autonomous vehicles
  • Modifications:
    • Removed git history for easier integration
    • Integrated with Team23 system via custom adapter (src/pathplanner/scripts/planner_adapter.py)
  • License: MIT (see src/frenet_optimal_planner/LICENSE)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages