Clothoid-R 자율주행 시스템의 Perception ROS workspace.
카메라와 LiDAR 기반 객체 검출, 클러스터링, 추적, 센서 퓨전 패키지 구성.
|
구자경 Perception Architecture |
김민재 Computer Vision, DL Pruning |
이남규 Attacker |
| Pipeline | Input | Output | Package |
|---|---|---|---|
| Livox clustering | /livox/lidar |
/perception/livox/centroids |
livox_clustering |
| Livox-camera fusion | /livox/lidar, /camera/image_raw/compressed, /perception/camera/yolo |
/perception/fusion/centroids |
livox_camera_fusion |
| Velodyne BEV detection | /velodyne_points |
/perception/velodyne/centroids |
velodyne_detection |
| Package | Role |
|---|---|
perception_bringup |
통합 launch |
detect_msgs |
공통 perception message |
yolov12 |
Camera YOLO detection |
livox_clustering |
Livox point cloud clustering and tracking |
livox_camera_fusion |
Livox-camera YOLO fusion |
velodyne_detection |
Velodyne BEV YOLO detection and OC-SORT tracking |
| Topic | Type |
|---|---|
/perception/livox/centroids |
sensor_msgs/PointCloud |
/perception/fusion/centroids |
sensor_msgs/PointCloud |
/perception/velodyne/centroids |
sensor_msgs/PointCloud |
- Ubuntu 20.04
- ROS Noetic
- Git
- NVIDIA GPU/CUDA, optional
ROS environment:
source /opt/ros/noetic/setup.bashSystem packages:
sudo apt update
sudo apt install -y \
wget \
git \
build-essential \
cmake \
python3-pip \
python3-rosdep \
ros-noetic-cv-bridge \
ros-noetic-pcl-ros \
ros-noetic-pcl-conversions \
ros-noetic-message-filters \
ros-noetic-dynamic-reconfigure \
ros-noetic-visualization-msgsrosdep:
sudo rosdep init
rosdep updateMiniconda:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O /tmp/miniconda.sh
bash /tmp/miniconda.sh -b -p $HOME/anaconda3
source $HOME/anaconda3/etc/profile.d/conda.sh
conda init bashRepository clone:
git clone https://github.com/JaGyeong1024/2026-Clothoid-R-Perception.git
cd 2026-Clothoid-R-PerceptionROS dependency install:
rosdep install --from-paths src --ignore-src -r -ySystem python3 perception deps (livox_clustering, velodyne_detection 노드용):
sudo python3 -m pip install --no-cache-dir \
--extra-index-url https://download.pytorch.org/whl/cu121 \
'typing-extensions==4.13.2' 'numpy>=1.24,<1.25' 'pillow>=10.0,<11.0' \
'scikit-learn>=1.3,<1.4' \
torch==2.4.1+cu121 torchvision==0.19.1+cu121 \
ultralytics==8.4.51 ultralytics-thop==2.0.19 opencv-python==4.13.0.92 \
filterpy==1.4.5 lap==0.5.12(Dockerfile은 위 핀과 동일 — 컨테이너 기반으로 돌리면 이 단계 불필요)
YOLO env (담당자 셋업 기준 — 타겟 PC cnu):
yolov12 노드는 shebang(#!/home/cnu/anaconda3/envs/yolo/bin/python)으로 conda env를 직접 호출합니다. 이 env에 다음이 깔려 있어야 함:
- yolov12 지원 ultralytics fork (담당자 PC
/home/cnu/clothoid-r/perception_ws/yolov12) torch,numpy,opencv-python,rospkg,thop—yolo-requirements.txt참조
OC-SORT:
sudo git clone https://github.com/noahcao/OC_SORT /opt/OC_SORTWorkspace build:
source /opt/ros/noetic/setup.bash
catkin_make
source devel/setup.bash세 명령어를 따로 띄움 (각각 터미널 분리):
roslaunch perception_bringup perception.launch # fusion + livox_clustering
rosrun velodyne_detection velodyne_bev_detection.py # 시스템 python3
rosrun yolov12 yolo_detect.py # conda yolo env via shebangSensor topic override:
roslaunch perception_bringup perception.launch \
livox_lidar_topic:=/livox/lidar \
camera_image_topic:=/camera/image_raw/compressed| Argument | Default |
|---|---|
livox_lidar_topic |
/livox/lidar |
camera_image_topic |
/camera/image_raw/compressed |
camera_yolo_topic |
/perception/camera/yolo |
livox_centroid_topic |
/perception/livox/centroids |
fusion_centroid_topic |
/perception/fusion/centroids |
Node check:
rosnode listExpected nodes:
/yolo_detect_node
/livox_camera_fusion
/livox_euclidean_clustering
/velodyne_bev_detection
Topic check:
rostopic list | grep perceptionOutput publisher check:
rostopic info /perception/livox/centroids
rostopic info /perception/fusion/centroids
rostopic info /perception/velodyne/centroids