指定版本
laptop: dell Vostro 5402, 没有nvidia 显卡,
ubuntu: 20.04
ros version: ros2 galactic
autoware.universe: galactic
安装结果
编译完成,planning simulation 界面出来了,但是有报错,车不跑
编译完成,planning simulation 糊里糊涂跑起来了, 没有nvidia 显卡完全可以
有两个包给注释了,trtexec_vendor, tamagawa_imu_driver
Installation
## 下载code, 注意这里是源码, 后续编译不会用到这份代码, 忽略这一步
git clone git@github.com:autowarefoundation/autoware.universe.git
## 安装
cd
mkdir autoware_ws && cd autoware_ws
## 下载repo, 并切换到galactic 分支, 注意是repo 管理的仓库,不是源码
git clone git@github.com:autowarefoundation/autoware.git -b galatic
## 初始化环境
cd ~/autoware_ws/autoware
./setup-dev-env.sh -v # verbose log 提示
./setup-dev-env.sh -no-nvidia # 不安装nvidia, 相关的库
#### 注意,setup-dev-env 是通过ansible 自动安装,playbook 应该是ansible配置脚本
#### 如果脚本安装失败,可以通过看看下面知乎手动编译的方式
#### 如果提示 verify ros2 GPG key error, 或者是 Failed to connect to raw.githubusercontent.com 请查看下面链接
## repos 拉取代码
cd autoware_ws/
mkdir src
vcs import src < autoware.repos
## 安装依赖向
source /opt/ros/galactic/setup.bash
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
#### rosdep update
## 编译
colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release
## pull 取更新代码
cd autoware_ws
git pull
vcs import src < autoware.repos
vcs pull src
TODO
- setup-dev-env 从galactic 脚本来看,没有docker 的安装部署方式! docker 部署方式 需要看github.io 文档, 应该优先从docker 方式入手, 依赖问题很多
- 跑仿真不需要cuda 这些东西把?????
- rosdep install 失败
# rosdep install 安装依赖项目失败, 安装rosdepc
rosdepc install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
欢迎使用国内版rosdep之rosdepc,我是作者小鱼!
欢迎关注公众号《鱼香ROS》加入交流群
小鱼rosdepc正式为您服务
---------------------------------------------------------------------------
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
scenario_selector: Cannot locate rosdep definition for [topic_tools]
localization_error_monitor: Cannot locate rosdep definition for [diagnostic_updater]
behavior_path_planner: Cannot locate rosdep definition for [behaviortree_cpp_v3]
occupancy_grid_map_outlier_filter: Cannot locate rosdep definition for [pcl_ros]
tier4_api_msgs: Cannot locate rosdep definition for [geographic_msgs]
velodyne_driver: Cannot locate rosdep definition for [diagnostic_updater]
tamagawa_imu_driver: Cannot locate rosdep definition for [can_msgs]
external_cmd_converter: Cannot locate rosdep definition for [diagnostic_updater]
grid_map_ros: Cannot locate rosdep definition for [nav2_msgs]
grid_map_octomap: Cannot locate rosdep definition for [octomap]
tensorrt_common: Cannot locate rosdep definition for [tensorrt_cmake_module]
tier4_vehicle_launch: Cannot locate rosdep definition for [xacro]
accel_brake_map_calibrator: Cannot locate rosdep definition for [diagnostic_updater]
lidar_centerpoint_tvm: Cannot locate rosdep definition for [tvm_vendor]
steer_offset_estimator: Cannot locate rosdep definition for [diagnostic_updater]
pointcloud_preprocessor: Cannot locate rosdep definition for [point_cloud_msg_wrapper]
tier4_localization_launch: Cannot locate rosdep definition for [topic_tools]
obstacle_collision_checker: Cannot locate rosdep definition for [pcl_ros]
autoware_point_types: Cannot locate rosdep definition for [point_cloud_msg_wrapper]
vehicle_cmd_gate: Cannot locate rosdep definition for [diagnostic_updater]
lane_departure_checker: Cannot locate rosdep definition for [diagnostic_updater]
bluetooth_monitor: Cannot locate rosdep definition for [diagnostic_updater]
radar_tracks_msgs_converter: Cannot locate rosdep definition for [radar_msgs]
lidar_apollo_segmentation_tvm: Cannot locate rosdep definition for [tvm_vendor]
web_controller: Cannot locate rosdep definition for [rosbridge_server]
dummy_diag_publisher: Cannot locate rosdep definition for [diagnostic_updater]
ground_segmentation: Cannot locate rosdep definition for [pcl_ros]
lanelet2_extension: Cannot locate rosdep definition for [lanelet2_validation]
radar_threshold_filter: Cannot locate rosdep definition for [radar_msgs]
autoware_testing: Cannot locate rosdep definition for [ros_testing]
front_vehicle_velocity_estimator: Cannot locate rosdep definition for [pcl_ros]
velodyne_pointcloud: Cannot locate rosdep definition for [pcl_ros]
topic_state_monitor: Cannot locate rosdep definition for [diagnostic_updater]
external_velocity_limit_selector: Cannot locate rosdep definition for [topic_tools]
external_cmd_selector: Cannot locate rosdep definition for [diagnostic_updater]
planning_error_monitor: Cannot locate rosdep definition for [diagnostic_updater]
image_projection_based_fusion: Cannot locate rosdep definition for [pcl_ros]
sample_vehicle_description: Cannot locate rosdep definition for [xacro]
radar_static_pointcloud_filter: Cannot locate rosdep definition for [radar_msgs]
system_error_monitor: Cannot locate rosdep definition for [rqt_robot_monitor]
lidar_centerpoint: Cannot locate rosdep definition for [pcl_ros]
grid_map_costmap_2d: Cannot locate rosdep definition for [nav2_costmap_2d]
trtexec_vendor: Cannot locate rosdep definition for [tensorrt_cmake_module]
velodyne_monitor: Cannot locate rosdep definition for [diagnostic_updater]
osqp_interface: Cannot locate rosdep definition for [osqp_vendor]
sample_sensor_kit_launch: Cannot locate rosdep definition for [usb_cam]
tvm_utility: Cannot locate rosdep definition for [tvm_vendor]
trajectory_follower: Cannot locate rosdep definition for [diagnostic_updater]
fault_injection: Cannot locate rosdep definition for [diagnostic_updater]
probabilistic_occupancy_grid_map: Cannot locate rosdep definition for [pcl_ros]
lidar_apollo_segmentation_tvm_nodes: Cannot locate rosdep definition for [ros_testing]
awapi_awiv_adapter: Cannot locate rosdep definition for [topic_tools]
awsim_sensor_kit_launch: Cannot locate rosdep definition for [usb_cam]
costmap_generator: Cannot locate rosdep definition for [pcl_ros]
lanelet2_map_preprocessor: Cannot locate rosdep definition for [pcl_ros]
grid_map_demos: Cannot locate rosdep definition for [octomap_msgs]
velodyne_description: Cannot locate rosdep definition for [xacro]
autoware_auto_geometry: Cannot locate rosdep definition for [osrf_testing_tools_cpp]
obstacle_stop_planner: Cannot locate rosdep definition for [pcl_ros]
tensorrt_yolox: Cannot locate rosdep definition for [tensorrt_cmake_module]
tier4_autoware_api_launch: Cannot locate rosdep definition for [topic_tools]
map_loader: Cannot locate rosdep definition for [pcl_ros]
pacmod_interface: Cannot locate rosdep definition for [diagnostic_updater]
obstacle_velocity_limiter: Cannot locate rosdep definition for [pcl_ros]
image_diagnostics: Cannot locate rosdep definition for [diagnostic_updater]
system_monitor: Cannot locate rosdep definition for [diagnostic_updater]
grid_map_cv: Cannot locate rosdep definition for [filters]
grid_map_filters: Cannot locate rosdep definition for [filters]
rosdepc install
## pkg_resources 提示 版本问题, 重新安装setuptools
---------------------------------------------------------------------------
/usr/bin/pip3:6: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import load_entry_point
ERROR: Exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 186, in _main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/freeze.py", line 100, in run
for line in freeze(**freeze_kwargs):
File "/usr/lib/python3/dist-packages/pip/_internal/operations/freeze.py", line 70, in freeze
req = FrozenRequirement.from_dist(dist)
File "/usr/lib/python3/dist-packages/pip/_internal/operations/freeze.py", line 257, in from_dist
req = dist.as_requirement()
File "/home/uisee/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2919, in as_requirement
if isinstance(self.parsed_version, packaging.version.Version):
File "/home/uisee/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2735, in parsed_version
raise packaging.version.InvalidVersion(f"{str(ex)} {info}") from None
pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '0.23ubuntu1' (package: distro-info)
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
grid_map_filters: Cannot locate rosdep definition for [filters]
pkg_resources, pkg_resources 替换版本
编译
安装osqp, 去官网下载osqp_vendor pkg, 帮我们安装,版本是0.6.2
注意需要用submodule 方式
sudo apt install ros-galactic-nav2-msgs ros-galactic-pacmod3-msgs
sudo apt install geographiclib-tools libgeographic-dev librange-v3-dev
## 下面的lanelet 不要用apt 安装,这块galactic 安装后缺少库文件,所以需要手动下载源码安装
sudo apt install ros-galactic-lanelet2 ros-galactic-lanelet2-io ros-galactic-lanelet2-core ## deprecated
GitHub - fzi-forschungszentrum-informatik/Lanelet2: Map handling framework for automated driving
## 安装了galactic 后还是一堆无法链接的错误, 麻了
--- stderr: lanelet2_extension
/usr/bin/ld: CMakeFiles/check_right_of_way.dir/src/check_right_of_way.cpp.o: in function `std::default_delete<lanelet::LaneletMap>::operator()(lanelet::LaneletMap*) const [clone .isra.0] [clone .part.0]':
check_right_of_way.cpp:(.text+0xc): undefined reference to `lanelet::PrimitiveLayer<lanelet::Point3d>::~PrimitiveLayer()'
/usr/bin/ld: check_right_of_way.cpp:(.text+0x18): undefined reference to `lanelet::PrimitiveLayer<lanelet::LineString3d>::~PrimitiveLayer()'
/usr/bin/ld: check_right_of_way.cpp:(.text+0x24): undefined reference to `lanelet::PrimitiveLayer<lanelet::Polygon3d>::~PrimitiveLayer()'
/usr/bin/ld: check_right_of_way.cpp:(.text+0x30): undefined reference to `lanelet::PrimitiveLayer<std::shared_ptr<lanelet::RegulatoryElement> >::~PrimitiveLayer()'
/usr/bin/ld: check_right_of_way.cpp:(.text+0x39): undefined reference to `lanelet::PrimitiveLayer<lanelet::Area>::~PrimitiveLayer()'
/usr/bin/ld: check_right_of_way.cpp:(.text+0x41): undefined reference to `lanelet::PrimitiveLayer<lanelet::Lanelet>::~PrimitiveLayer()'
/usr/bin/ld: CMakeFiles/check_right_of_way.dir/src/check_right_of_way.cpp.o: in function `lanelet::routing::RoutingCostTravelTime::getCostLaneChange(lanelet::traffic_rules::TrafficRules const&, std::vector<lanelet::ConstLanelet, std::allocator<lanelet::ConstLanelet> > const&, std::vector<lanelet::ConstLanelet, std::allocator<lanelet::ConstLanelet> > const&) const':
check_right_of_way.cpp:(.text._ZNK7lanelet7routing21RoutingCostTravelTime17getCostLaneChangeERKNS_13traffic_rules12TrafficRulesERKSt6vectorINS_12ConstLaneletESaIS7_EESB_[_ZNK7lanelet7routing21RoutingCostTravelTime17getCostLaneChangeERKNS_13traffic_rules12TrafficRulesERKSt6vectorINS_12ConstLaneletESaIS7_EESB_]+0x41): undefined reference to `lanelet::routing::RoutingCostTravelTime::travelTime(lanelet::traffic_rules::TrafficRules const&, lanelet::ConstLanelet const&)'
/usr/bin/ld: CMakeFiles/check_right_of_way.dir/src/check_right_of_way.cpp.o: in function `lanelet::routing::RoutingCostDistance::getCostLaneChange(lanelet::traffic_rules::TrafficRules const&, std::vector<lanelet::ConstLanelet, std::allocator<lanelet::ConstLanelet> > const&, std::vector<lanelet::ConstLanelet, std::allocator<lanelet::ConstLanelet> > const&) const':
check_right_of_way.cpp:(.text._ZNK7lanelet7routing19RoutingCostDistance17getCostLaneChangeERKNS_13traffic_rules12TrafficRulesERKSt6vectorINS_12ConstLaneletESaIS7_EESB_[_ZNK7lanelet7routing19RoutingCostDistance17getCostLaneChangeERKNS_13traffic_rules12TrafficRulesERKSt6vectorINS_12ConstLaneletESaIS7_EESB_]+0x3e): undefined reference to `lanelet::routing::RoutingCostDistance::length(lanelet::ConstLanelet const&)'
## 继续编译,安装依赖向
sudo apt install ros-galactic-mrt-cmake-modules
sudo apt install ros-galactic-osrf-testing-tools-cpp
sudo apt install ros-galactic-diagnostic-updater
sudo apt install libpcap-dev libcpprest-dev libfmt-dev
git clone git@github.com:autowarefoundation/tvm_vendor.git
git clone git@github.com:tier4/osqp_vendor.git
sudo apt install libcgal-dev
sudo apt install nlohmann-json3-dev # apollo 也有这个依赖项
## 安装behavior tree v3 lib
GitHub - BehaviorTree/BehaviorTree.CPP: Behavior Trees Library in C++. Batteries included.
### 库里面可能用的目录是behaviortree_cpp_v3, 但是上面代码名字是behaviortree_cpp, 我选择改代码里的名字,去掉_v3
代码切换ros2-3.1.1 tag
更新, 不要装源码,用ros的方式安装,
sudo apt install ros-galactic-behaviortree-cpp-v3
sudo apt install ros-galactic-can-msgs
sudo apt install ros-galactic-diagnostic-aggregator
sudo apt install ros-galactic-nav2-costmap-2d
sudo apt install libnl-genl-3-dev
sudo apt install ros-galactic-ros-testing
sudo apt install ros-galactic-octomap-msgs ros-galactic-octomap-ros ros-galactic-octomap-rviz-plugins
注释编译trtexec_vendor pkg, COLCON_IGNORE, 不知道用不用
sudo apt install ros-galactic-radar-msgs
sudo apt install ros-galactic-xacro
sudo apt install ros-galactic-rosbridge-server ros-galactic-rosbridge-msgs ros-galactic-rosbridge-suite
sudo apt install ros-galactic-topic-tools
python3 -m pip install flask
planning simulation
1. 下载地图
2. launch
# Lane driving scenario
## 启动autoware
source ~/autoware/install/setup.bash
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/autoware_map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
## 我本地这么起, 但是失败了
ros2 launch autoware_launch planning_simulator.launch.xml map_path:=$HOME/Documents/autoware_ws/autoware/map/sample-map-planning vehicle_model:=sample_vehicle sensor_model:=sample_sensor_kit
## 指定初始位姿, 快捷键P
## 指定终点位姿, 快捷键G
## 触发任务,Now you can start the ego vehicle driving by clicking the AUTO button on OperationMode in AutowareStatePanel
#### 等同于如下服务
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode {}
# Parking scenario
# Lane change scenario
# Avoidance scenario
# Advanced Simulations
## Placing dummy objects
## Traffic light recognition simulation
## Update/Reset traffic light
##
如果下载的地图zip 解压失败, 使用jar 工具替换unzip
sudo apt install fastjar
jar xvf xxx.zip