运行环境Ubuntu20.04+Unity3d
1.下载运行
(1)项目下载地址:
Robotics-Nav2-SLAM-Example
最好执行下面命令能将子模块也下载
gitclone --recurse-submodule git@github.com:Unity-Technologies/Robotics-Nav2-SLAM-Example.gitgit submodule update --init --recursive
以上两个都失败,直接进入github界面
https://github.com/Unity-Technologies/Robotics-Nav2-SLAM-Example
然后点ROS-TCP-Endpoint目录。
手动下载解压
(2)配置好unity3d环境
Ubuntu20.04+Unity3d环境配置
Unity3d中选择Nav2SLAMExampleProject路径打开工程
打开后点下面的Scenens,选择SimpleWarehouseScene
如图
2.启动ros2端
进入colcon_ws目录编译
cdcolcon_ws colcon buildsourceinstall/setup.bashsource/opt/ros/foxy/setup.bash ros2 launch unity_slam_example unity_slam_example.py执行出现错误
LookupError: Could not find the resource ‘nav2_bringup’ of type ‘packages’
解决方法:
sudoaptinstallros-foxy-navigation2 ros-foxy-nav2-bringup再次运行成功后在unity3d中点击play按钮就可以控制机器人运动了。
给机器人设置目标位置方法如
run_example.md中介绍
其他错误解决:
(1)导入错误NavMeshSurface’ does not contain a definition for ‘IsPartOfPrefab’
解决方法:
更新到官方 com.unity.ai.navigation 包:
移除旧版 NavMeshComponents 文件(Assets 中的 NavMeshComponents 文件夹)。
通过 Unity Package Manager 安装官方包:
菜单栏 → Window > Package Manager
点击 + → Add package by name
输入:com.unity.ai.navigation
版本选择 1.1.5 或更高(兼容 Unity 2019.4+)