tlab-wide / AutowareV2X

AutowareV2X is an open-source module that can be added onto the newest Autoware.universe to enable V2X communication.
https://tlab-wide.github.io/AutowareV2X/main/
19 stars 5 forks source link

12/10 Preliminary Tests @Hongo #24

Closed yuasabe closed 1 year ago

yuasabe commented 1 year ago

Preliminary testing of the AutowareV2X setup at Hongo campus, in preparation for the Kashiwa Experiments from 12/12.

Setup:

Parameters:

Steps

  1. Connect all PCs to Mgmt Wi-Fi
  2. Sync time of nuc1 to ntp.nict.jp using chronyd
    
    sudo systemctl restart chrony
    sudo vim /etc/chrony/chrony.conf
    pool ntp.nict.jp iburst
    allow 0/0

chronyc sources sudo chronyc -a makestep chronyc tracking

timedatectl

System clock synchronized: yes

3. Sync time of remaining PCs to R1 via Mgmt WLAN.

systemctl restart chrony

Edit /etc/chrony/chrony.conf

server 192.168.11.13 iburst

comment all other pools

Sync

sudo chronyc -a makestep

Check sync

chronyc sources chronyc tracking timedatectl

4. Set network interfaces on R1 and R2.

sudo ./set_network_interfaces.sh

5. Confirm network status

interface set to adhoc mode with "nuc-adhoc".

iwconfig

LTE gateway removed, LTE route added to R2.

ip r

IP address of A1-R1 interface, IP address of Wi-Fi interface

ip a

Check that the IP addr of usb0 interface is correct.

nuc1: 192.168.200.45/24

nuc3: 192.168.200.31/24

Check with nc

nuc1:

nc -l 6000

nuc3

nc 60.56.123.233 6000

6. Confirm ROS2 connection
```bash
# A1
ros2 launch turtle ...

# R1 (make sure new topics can be seen)
ros2 topic list
  1. Start Autoware on A1
    
    cd ~/workspace/yuasabe_autoware

terminal 1

. install/setup.bash ros2 launch pointcloud_container.launch.xml

terminal 2

. install/setup.bash ros2 launch autoware_launch autoware.launch.xml vehicle_model:=rsu_vehicle sensor_model:=rsu_sensor_kit map_path:=$HOME/data/maps/hongo

PSim

ros2 launch autoware_launch planning_simulator.launch.xml vehicle_model:=rsu_vehicle sensor_model:=rsu_sensor_kit map_path:=$HOME/data/maps/sample-map-planning

9. Record Rosbag on A1

ros2 bag record -o --all

10. Start tcpdump on R2, then R1

sudo tcpdump -i wlo1 -w 202212022143_wlo1_rsu.pcap sudo tcpdump -i usb0 -w 202212022143_usb0_rsu.pcap

11. Start AWV2X on R2, then R1
```bash
# Run AWV2X
sudo su
. install/setup.bash
ros2 launch autoware_v2x v2x.launch.xml | tee 202212022143_awv2x_rsu.log
  1. Start CPAM_Manager on R2, then R1
    # Run CPAM Manager Node
    . install/setup.bash
    ros2 launch cpam_manager cpam.launch.xml | tee 202212022143_cpam_rsu.log
  2. Check AWV2X
    • CPM(Wi-Fi) are being sent on R1
    • CPM(LTE) are being sent on R1
    • CPM(Wi-Fi) are being received on R2
    • CPM(LTE) are being received on R2
  3. Check CPAM
    • CPAM(num_cpm) are being sent from R1 to R2
    • CPAM(PDR) are being sent from R2 to R1
    • PDR calculation is nominal on R2
    • PDR is being received on R1
  4. Add objects to Rviz2 on A1
  5. Check that the objects are being sent on R1 and received on R2.
    # R2
    ros2 topic echo /perception/object_recognition/objects
yuasabe commented 1 year ago

After the experiment

Analyze the difference in generationtimes

# INDICATELTE LOG
cat 202212051355_awv2x_veh.log | grep "\[INDICATELTE\]" | awk '{print $3","$6}' | tr -d '[]' > 202212051355_awv2x_veh_indicatelte_generation_time.log 

# INDICATE LOG
cat 202212051355_awv2x_veh.log | grep "\[INDICATE\]" | awk '{print $3","$6}' | tr -d '[]' > 202212051355_awv2x_veh_indicate_generation_time.log

Feed these two new log files into the Jupyter notebook.