Autoware.Auto avp demo on Zenoh-Flow stack.
All those steps tested on GitHub Actions
test workflow
Add ROS 2 apt repositories
sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
Install ROS2 packages
sudo apt update
sudo apt install ros-foxy-desktop
Environment setup
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source ~/.bashrc
Install ROS2 build tools
sudo apt install build-essential clang-tidy cmake git python3-rosdep python3-vcstool python3-colcon-common-extensions
Initialize rosdep
sudo rosdep init
rosdep update
Autoware.Auto build and default install into /opt/AutowareAuto
$ git clone https://github.com/autocore-ai/AutowareAuto.git --depth 1 --branch zenoh-flow
$ sudo mkdir -p /opt/AutowareAuto
$ sudo chown -R $USER /opt/AutowareAuto
$ source /opt/ros/foxy/setup.bash
$ cd AutowareAuto
AutowareAuto$ git lfs install
AutowareAuto$ git lfs pull --include="*" --exclude=""
AutowareAuto$ vcs import < autoware.auto.foxy.repos
AutowareAuto$ rosdep install -y --from . --ignore-src --rosdistro foxy
AutowareAuto$ source /opt/ros/foxy/setup.bash
AutowareAuto$ colcon build --merge-install --install-base /opt/AutowareAuto
$ cargo install cxxbridge-cmd --git https://github.com/autocore-ai/cxx.git --branch autocore-dev
$ git clone https://github.com/autocore-ai/zenoh_flow_autoware.git --depth 1
$ cd zenoh_flow_autoware
zenoh_flow_autoware$ source /opt/AutowareAuto/setup.bash
zenoh_flow_autoware$ colcon build --merge-install
If zenoh-flow runtime is not installed, install and check it with below commands
$ cargo install runtime --git https://github.com/autocore-ai/zenoh-flow-examples.git --branch autocore-dev
$ runtime --help
dpn 0.1.0
USAGE:
runtime [OPTIONS] --graph-file <graph-file> --runtime <runtime>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-g, --graph-file <graph-file>
-l, --loader_config <loader-config>
-o, --out-file <outfile> [default: output.dot]
-r, --runtime <runtime>
In zenoh_flow_autoware
folder, source the setup.bash and launch demo
zenoh_flow_autoware$ source /opt/AutowareAuto/setup.bash
zenoh_flow_autoware$ source install/setup.bash
zenoh_flow_autoware$ runtime --graph-file ./demo.yaml --runtime local
When the graph file launched, the output likes:
InitPoseReceiver
GoalPoseReceiver
NDTMapPublisherNode
Lanelet2MapProviderNode
[INFO] [1640084984.811272592] [Lanelet2MapProvider]: Waiting for earth to map transform - please start ndt_map_publisher .... : "earth" passed to lookupTransform argument target_frame does not exist.
Lanelet2MapVisualizer
LanePlannerNode
ParkingPlannerNode
Lanelet2GlobalPlannerNode
BehaviorPlannerNode
PurePursuitNode
SimplePlanningSimulator
[INFO] [1640084985.554512447] [simple_planning_simulator]: vehicle_model_type = IDEAL_STEER_VEL
[INFO] [1640084985.555540789] [simple_planning_simulator]: initialize_source : INITIAL_POSE_TOPIC
Simulator waiting initialization...
Simulator waiting initialization...
Simulator waiting initialization...
Simulator waiting initialization...
...
Launch a new terminal to open Rviz2
$ source /opt/AutowareAuto/setup.bash
$ ros2 launch autoware_auto_launch autoware_auto_visualization.launch.py
In Rviz2, Ctrl + O
to open config avp.rviz
in zenoh_flow_autoware
folder.
After map loaded, drag start pose with 2D Pose Estimate
and end pose with 2D Goal Pose
, If all steps have no problem the vehicle will start pilot with zenoh_flow_autoware
.