Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions VisionPilot/Production_Releases/0.5/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.16)
project(egolanes_pipeline LANGUAGES CXX)

Check warning on line 2 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (egolanes)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
Expand All @@ -9,21 +9,21 @@
find_package(Threads REQUIRED)
find_package(Eigen3 REQUIRED)

# ONNX Runtime - user must set ONNXRUNTIME_ROOT

Check warning on line 12 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (ONNXRUNTIME)
if(NOT DEFINED ENV{ONNXRUNTIME_ROOT})

Check warning on line 13 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (ONNXRUNTIME)
message(FATAL_ERROR "Please set ONNXRUNTIME_ROOT environment variable to ONNX Runtime installation directory\n"

Check warning on line 14 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (ONNXRUNTIME)
"Example: export ONNXRUNTIME_ROOT=/path/to/onnxruntime-linux-x64-gpu-1.22.0")

Check warning on line 15 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (onnxruntime)

Check warning on line 15 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (ONNXRUNTIME)
endif()

set(ONNXRUNTIME_ROOT $ENV{ONNXRUNTIME_ROOT})

Check warning on line 18 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (ONNXRUNTIME)
set(ONNXRUNTIME_INCLUDE_DIR ${ONNXRUNTIME_ROOT}/include)
set(ONNXRUNTIME_LIB_DIR ${ONNXRUNTIME_ROOT}/lib)

# Find library (handle versioned .so files)
file(GLOB ONNXRUNTIME_LIBRARY "${ONNXRUNTIME_LIB_DIR}/libonnxruntime.so*")

Check warning on line 23 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (libonnxruntime)
list(GET ONNXRUNTIME_LIBRARY 0 ONNXRUNTIME_LIBRARY)

if(NOT EXISTS ${ONNXRUNTIME_INCLUDE_DIR}/onnxruntime_cxx_api.h)

Check warning on line 26 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (onnxruntime)
message(FATAL_ERROR "ONNX Runtime headers not found at: ${ONNXRUNTIME_INCLUDE_DIR}")
endif()

Expand All @@ -40,7 +40,7 @@
)

# EgoLanes inference backend
add_library(egolanes_inference

Check warning on line 43 in VisionPilot/Production_Releases/0.5/CMakeLists.txt

View workflow job for this annotation

GitHub Actions / spell-check-differential

Unknown word (egolanes)
src/inference/onnxruntime_session.cpp
src/inference/onnxruntime_engine.cpp
src/inference/autosteer_engine.cpp
Expand Down Expand Up @@ -97,6 +97,8 @@
# Steering control module
add_library(steering_control
src/steering_control/steering_controller.cpp
src/steering_control/steering_filter.cpp
include/steering_control/steering_filter.hpp
)
target_link_libraries(steering_control
# No external dependencies, pure C++ math
Expand Down Expand Up @@ -162,6 +164,9 @@
)

# Main executable
file(COPY ${CMAKE_SOURCE_DIR}/images
DESTINATION ${CMAKE_BINARY_DIR})

add_executable(egolanes_pipeline
main.cpp
)
Expand Down
50 changes: 34 additions & 16 deletions VisionPilot/Production_Releases/0.5/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# VisionPilot 0.5 - EgoLanes Production Release
# VisionPilot 0.5 - AutoSteer Production Release

This release enables autonomous steering using the EgoLanes neural network to detect lane lines and navigate roads at a predetermined, desired speed.
This release enables autonomous steering using the EgoLanes and AutoSteer neural networks to detect lane lines determine
steering angle and navigate roads at a predetermined, desired speed.

This includes autonomous lane keeping with cruise control.

Expand All @@ -10,26 +11,22 @@ Multi-threaded lane detection inference system with ONNX Runtime backend.

### Quick Start

1. **Set ONNX Runtime path**:
[Download](https://github.com/microsoft/onnxruntime/releases) ONNX Runtime for the appropriate CUDA version and OS.

**Set ONNX Runtime path**

Unpack the ONNX runtime archive and set `ONNXRUNTIME_ROOT` to point to the directory as for example:

```bash
export ONNXRUNTIME_ROOT=/path/to/onnxruntime-linux-x64-gpu-1.22.0
```

2. **Build**:
```bash
mkdir -p build && cd build
cmake ..
make -j$(nproc)
cd ..
```
_Note_: For Jetson AGX download appropriate ONNX runetime from [Jetson Zoo](https://elinux.org/Jetson_Zoo#ONNX_Runtime).

3. **Configure and Run**:
```bash
# Edit run.sh to set paths and options
./run.sh
```
**Build**

### Directory Structure
[Download](https://github.com/autowarefoundation/autoware.privately-owned-vehicles.git) VisionPilot source code.
Navigate to `VisionPilot/Production_Releases/0.5` subdirectory which looks like:

```
0.5/
Expand All @@ -46,6 +43,27 @@ cd ..
└── run.sh # Runner script
```

and create `build` subdirectory:

```bash
mkdir -p build && cd build
```

build the code

```bash
cmake ../
make -j$(nproc)
cd ..
```

**Configure and Run**

```bash
# Edit run.sh to set paths and options
./run.sh
```

### Configuration (run.sh)

- `VIDEO_PATH`: Input video file
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
//
// Created by atanasko on 12/14/25.
//

#ifndef EGOLANES_PIPELINE_LOW_PASS_FILTER_HPP
#define EGOLANES_PIPELINE_LOW_PASS_FILTER_HPP

namespace autoware_pov::vision::steering_control
{
class SteeringFilter
{
public:
explicit SteeringFilter(float smoothing_factor, float initial = 0.0f);

float filter(float current_steering, float dt);

void reset(float value = 0.0f);

private:
float tau_;
float previous_steering;
};
}


#endif //EGOLANES_PIPELINE_LOW_PASS_FILTER_HPP
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,9 @@ void drawMetricVerification(
const std::vector<double>& right_metric_coeffs
);

cv::Mat rotateSteeringWheel(const cv::Mat& img, float steering_angle_deg);
void visualizeSteering(cv::Mat& img, float steering_angle, const cv::Mat& steeringWheelImage);

} // namespace autoware_pov::vision::egolanes

#endif // AUTOWARE_POV_VISION_EGOLANES_DRAW_LANES_HPP_
Loading
Loading