A quick project overview can be seen here:
In the team23_i2ros_2025 folder execute the following command:
./setup/setup_environment.shWe decided against automatically rebooting your computer. Please reboot manually.
# Build the project
catkin build
# Start system
source devel/setup.bash
roslaunch system autonomous_system.launchIn the rare case of a black screen in rviz, please restart the simulation.
| 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 |
# 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"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
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)
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
This repository includes code from external sources that has been integrated directly (not as git submodules) for easier team collaboration:
- 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)
- 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)
