编译navigation2

之前搞定了ROS2,下一步就去研究nav2,一个导航库,因为工作需要,我要从一个嵌入式软件工程师,转到算法工程师了,不准备搞学院派的mabltab或者python那一套,而是准备直接从ros2开始搞,反正各种工具都挺全面的。

ros2的源码安装就不说了,nav2的安装文档如下:

Build and Install — Nav2 1.0.0 documentation

点开

外部依赖通过rosdep能安装,内部依赖却没有在官网教程说,只在代码的readme文档或者package.xml写了,不知道是不是我没找到相关的说明,有点坑,去这个网站找包,版本要求也会在索引中列出来。

https://index.ros.org/

ros2的构建系统有个好处,包源码的位置随便放,但也带来一些凌乱,添加新得包之后,记得用命令安装一下外部依赖:

rosdep install -y --from-paths ./src --ignore-src

目前似乎有些问题,有些内部依赖也被识别为外部依赖,并且提示找不到,但并没有影响最终结果。

  1. 内部依赖包:

  • bond

https://github.com/ros/bond_core

git checkout ros2,切换到ros2分支,编译通过

  • behaviortree_cpp_v3

https://github.com/BehaviorTree/BehaviorTree.CPP.git

git checkout v3.8,切换到v3.8分支,编译通过

  • diagnostics

https://github.com/ros/diagnostics

git checkout ros2-humble

  • angles

https://github.com/ros/angles

用主分支,编过了,但要求是foxy-devel

  • ompl

https://github.com/ompl/ompl

main分支在编译nav2_smac_planner时有错误,切换到master,编过了,但index页面要求是1.5.0版本

  • cv_bridge

https://github.com/ros-perception/vision_opencv.git

git checkout humble

  • gazebo_ros_pkgs

https://github.com/ros-simulation/gazebo_ros_pkgs.git

这个可以不要,是测试部分依赖的,index页面中说是需要切换到foxy开发版,但编译有错误,我切换到ros2版本应该可以编过了,但我的22.04的虚拟机一直花屏,编到一半会卡死,就没再试。

花了半天的时间,400多个包全编译完成,下面开始跑一跑nav2的用例,学习下nav官方页面的概念,nav2几乎把ros2的高级功能都用上了,还是蛮复杂的。

turtlebot3-gazebo这个包还没有用源码安装,所以例程就在二进制安装的版本中跑了:

https://docs.nav2.org/getting_started/index.html#installation

预计再过一个月,可以开始研究算法在项目中的应用,但在此之前,还要把nav2的框架、流程搞完。

但因为例程是用turtlebot3-gazebo跑的,不准备去研究这个,打算先看文档,再从nav2_bringup开始看(nav2_waypoint_follower也可以),先看行为树,再看四个action server,再到具体算法,熟悉nav2的工作流程是第一步必须要完成的。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值