5.8.1 Isaac Sim 仿真建图
⚠️运行环境说明:
Isaac Sim运行在 GPU 服务器,Isaac ROS 运行在部署于 GPU 服务器的 Docker 容器(isaac-ros-dev)。
官方教程:Isaac ROS 官方示例
简介
Isaac ROS 的 VSLAM 方案通过融合多传感器数据(Stereo Camera、IMU、编码器、LiDAR)提供导航所需的定位和里程计信息,用于驱动 ROS2 的导航栈(Nav2)。该系统的核心目标是生成精确的 /odom
和 /amcl_pose
消息。
- Stereo Camera + IMU:通过双目视觉 + 惯性测量,实现视觉里程计 + 重定位(定位)
- Wheel Encoder:通过车轮编码器计算的里程信息(增量位置)用于辅助定位
- LiDAR:自适应蒙特卡洛定位(粒子滤波法)使用 LaserScan + 地图进行全局定位
准备工作
下载离线资源
登录AI服务器,下载 issac-ros-vslam 案例配套的资源包:
NGC_ORG="nvidia"
NGC_TEAM="isaac"
PACKAGE_NAME="isaac_ros_visual_slam"
NGC_RESOURCE="isaac_ros_visual_slam_assets"
NGC_FILENAME="quickstart.tar.gz"
MAJOR_VERSION=3
MINOR_VERSION=2
VERSION_REQ_URL="https://catalog.ngc.nvidia.com/api/resources/versions?orgName=$NGC_ORG&teamName=$NGC_TEAM&name=$NGC_RESOURCE&isPublic=true&pageNumber=0&pageSize=100&sortOrder=CREATED_DATE_DESC"
AVAILABLE_VERSIONS=$(curl -s \
-H "Accept: application/json" "$VERSION_REQ_URL")
LATEST_VERSION_ID=$(echo $AVAILABLE_VERSIONS | jq -r "
.recipeVersions[]
| .versionId as \$v
| \$v | select(test(\"^\\\\d+\\\\.\\\\d+\\\\.\\\\d+$\"))
| split(\".\") | {major: .[0]|tonumber, minor: .[1]|tonumber, patch: .[2]|tonumber}
| select(.major == $MAJOR_VERSION and .minor <= $MINOR_VERSION)
| \$v
" | sort -V | tail -n 1
)
if [ -z "$LATEST_VERSION_ID" ]; then
echo "No corresponding version found for Isaac ROS $MAJOR_VERSION.$MINOR_VERSION"
echo "Found versions:"
echo $AVAILABLE_VERSIONS | jq -r '.recipeVersions[].versionId'
else
mkdir -p ${ISAAC_ROS_WS}/isaac_ros_assets && \
FILE_REQ_URL="https://api.ngc.nvidia.com/v2/resources/$NGC_ORG/$NGC_TEAM/$NGC_RESOURCE/\
versions/$LATEST_VERSION_ID/files/$NGC_FILENAME" && \
curl -LO --request GET "${FILE_REQ_URL}" && \
tar -xf ${NGC_FILENAME} -C ${ISAAC_ROS_WS}/isaac_ros_assets && \
rm ${NGC_FILENAME}
fi
这些资源包括 issac ros vslam 案例的离线 bag 和接口配置文件,可用于离线测试 vslam 算法。
安装/编译 issac-ros-visul-slam
进入 issac-ros-dev,安装/编译 issac-ros-visual-slam 包。
- 安装预编译包:
sudo apt-get update
sudo apt-get install -y ros-humble-isaac-ros-visual-slam
- 源码编译:
cd ${ISAAC_ROS_WS}/src
git clone -b release-3.2 https://github.com/NVIDIA-ISAAC-ROS/isaac_ros_visual_slam.git isaac_ros_visual_slam
sudo apt-get update
rosdep update && rosdep install --from-paths ${ISAAC_ROS_WS}/src/isaac_ros_visual_slam/isaac_ros_visual_slam --ignore-src -y
cd ${ISAAC_ROS_WS}/
colcon build --symlink-install --packages-up-to isaac_ros_visual_slam --base-paths ${ISAAC_ROS_WS}/src/isaac_ros_visual_slam/isaac_ros_visual_slam
source install/setup.bash
启动仿真
在 GPU 服务器上启动仿真。
启动 IsaacSim
cd issacsim
./isaac-sim.sh