- 地图模型部分:
carla的地图导入需要包含同名的fbx格式地图模型和xodr格式的矢量地图。
在导入地图模型存在多个分块部分时,将多个fbx模型文件导入blender,快捷键shift选中其中两块模型文件,再按快捷键ctrl+J完成模型合并,同理可以完成全部模型文件的整合工作,最终由blender输出单一的模型文件。这里考虑到ue4的坐标系朝向问题,blender导入模型时需手动选择x轴朝前,z轴朝上。当合并后模型的几何中心和原点不重合时,右键选择设置原点:几何中心->原点。
- 地图转换:(osm2xodr)
import glob
import os
import sys
try:
sys.path.append(glob.glob('../carla/dist/carla-*%d.%d-%s.egg' % (
sys.version_info.major,
sys.version_info.minor,
'win-amd64' if os.name == 'nt' else 'linux-x86_64'))[0])
except IndexError:
pass
import io
import carla
# Read the .osm data
f = io.open("${Your_osm_path}", mode="r", encoding="utf-8")
osm_data = f.read()
f.close()
# Define the desired settings. In this case, default values.
settings = carla.Osm2OdrSettings()
# Set OSM road types to export to OpenDRIVE
settings.set_osm_way_types(["motorway", "motorway_link", "trunk", "trunk_link", "primary", "primary_link", "secondary_link", "tertiary", "tertiary_link", "unclassified", "residential"])
# new config
settings.use_offsets = False
settings.center_map = False
# Convert to .xodr
xodr_data = carla.Osm2Odr.convert(osm_data, settings)
# Save opendrive file
f = open("${Your_xodr_path}", 'w')
f.write(xodr_data)
f.close()
- carla运行carla_ros_bridge报错:
ImportError: dynamic module does not define module export function (PyInit__tf2)
解决方案:
# install dependencies
sudo apt update
sudo apt install python3-catkin-pkg-modules python3-rospkg-modules python3-empy
# in your catkin_ws
cd ${Your_catkin_ws_path}
catkin_make
source devel/setup.bash
wstool init
wstool set -y src/geometry2 --git https://github.com/ros/geometry2 -v ${tag}
wstool up
rosdep install --from-paths src --ignore-src -y -r
# compile
catkin_make --cmake-args \
-DCMAKE_BUILD_TYPE=Release \
-DPYTHON_EXECUTABLE=/usr/bin/python3 \
-DPYTHON_INCLUDE_DIR=/usr/include/python3.6m \
-DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so