# 🚀 Hướng dẫn chạy thử C API Navigation

## Cách nhanh nhất (1 lệnh)

```bash
cd /home/robotics/AGV/Diff_Wheel_Prj/pnkx_nav_core/examples
chmod +x run_example.sh
./run_example.sh
```

## Chi tiết các bước

### Bước 1: Build C API Library

```bash
cd /home/robotics/AGV/Diff_Wheel_Prj/pnkx_nav_core/build
cmake ..
make nav_c_api
```

Library sẽ được tạo tại: `build/src/APIs/c_api/libnav_c_api.so`

### Bước 2: Chạy C# Example

Script `run_example.sh` sẽ tự động:
- ✅ Kiểm tra và build library nếu cần
- ✅ Tạo C# project
- ✅ Copy library và source code
- ✅ Set LD_LIBRARY_PATH cho tất cả dependencies
- ✅ Build và chạy example

```bash
cd /home/robotics/AGV/Diff_Wheel_Prj/pnkx_nav_core/examples
./run_example.sh
```

## Kết quả mong đợi

Nếu chạy thành công, bạn sẽ thấy:

```
==========================================
Building and Running C# Navigation Example
==========================================
Library already exists: .../build/src/APIs/c_api/libnav_c_api.so
C# project already exists
Copying library...
Building C# project...

Running example...
==========================================
Robot pose: x=0, y=0, theta=0
State: PENDING, Feedback: 
==========================================
Done!
```

## Yêu cầu

1. **.NET SDK 6.0+** (script sẽ kiểm tra và hướng dẫn nếu thiếu)
2. **Library đã được build** (script sẽ tự động build nếu thiếu)
3. **Linux environment**

## Troubleshooting

### Lỗi: "dotnet: command not found"
→ Script sẽ hiển thị hướng dẫn cài đặt .NET SDK

### Lỗi: "Failed to create navigation instance"
→ Đảm bảo `move_base` đã được build:
```bash
cd build && make move_base
```

### Lỗi: "Cannot load library"
→ Kiểm tra LD_LIBRARY_PATH đã được set đúng (script tự động set)

## Xem thêm

- `README.md` - Hướng dẫn chi tiết
- `QUICK_START.md` - Quick start guide
- `run_example.sh` - Script tự động

