ROS(8)Navigation安装

8. ROS-Navigation安装

官方链接:http://wiki.ros.org/navigation

8.1. 安装方式

注意,如果通过turtlebot来仿真,当用apt-get安装时它会自动下载导航包。这里因为可能会研究源码,利用源码进行安装。

方式一,通过apt-get安装编译好的包;
方式二,通过源码编译安装–推荐。会安装如下包:

navigation (metapackage)   map_server  amcl  fake_localization  voxel_grid  costmap_2d  nav_core  base_local_planner   carrot_planner  clear_costmap_recovery  dwa_local_planner  move_slow_and_clear  navfn  global_planner  rotate_recovery  move_base

8.2. 源码安装

  • 下载地址
    https://github.com/ros-planning/navigation/tree/melodic-devel
  • 拷贝到~/catkin_ws/src下面
  • 执行安装
    cd ~/catkin_ws/
    catkin_make
    编译报错“Could NOT find SDL”,执行指令sudo apt-get install libsdl1.2-dev
    编译报错“Could NOT find SDL_image”,执行指令sudo apt-get install libsdl-image1.2-dev
    编译报错“Could NOT find tf2_sensor_msgs”,需要下载该包进行编译,地址https://github.com/ros/geometry2/tree/melodic-devel,拷贝到~/catkin_ws/src下面继续安装。
    编译报错“Could NOT find move_base_msgs”,需下载该包进行编译,地址https://github.com/ros-planning/navigation_msgs,拷贝到~/catkin_ws/src下面继续安装。
    编译报错“mmap: Cannot allocate memory”,(这是因为编译的时候开了6个进程,最后申请的虚拟内存爆了)方法一重新编译即可,方法二echo 1 > /proc/sys/vm/overcommit_memory,表示内核允许分配所有的物理内存,而不管当前的内存状态如何。

8.3. 安装teb_local_planner插件

传统的navigation里的路径规划策略性能不佳。在尝试了teb_local_planner后,发现机器人导航性能得到非常大的提升。
为了编译时不再检查前面装的包,可以在前面包源码目录下新建CATKIN_IGNORE文件夹。

  • 下载链接https://github.com/rst-tu-dortmund/teb_local_planner

  • 拷贝到~/catkin_ws/src,执行catkin_make"进行编译。
    a. 编译报错“Could NOT find costmap_converter”,下载链接https://github.com/rst-tu-dortmund/costmap_converter,拷贝到~/catkin_ws/src下面继续安装。
    b. 编译报错“Could NOT find mbf_costmap_core”,下载链接https://github.com/magazino/move_base_flex/tree/melodic,拷贝到~/catkin_ws/src下面继续安装。
    c. 编译报错“unable to find SuiteSparse”,执行sudo apt-get install libsuitesparse-dev
    e. 编译报错“Could not find libg2o!”,这里选择源码安装libg2o图优化库:

    首先下载该库:https://github.com/RainerKuemmerle/g2o
    安装依赖:(cmake已经安装) sudo apt-get install libeigen3-dev libeigen3-doc
    编译:
    cd g2o-master
    mkdir build
    cd build
    cmake ../
    make && make install

    f.继续编译catkin_make

  • 注意,teb_local_planner源码中关于plugin的配置文件均已写好,直接编译源码就能完成plugin的注册及插入,非常方便。

8.4. 安装cartographer_ros模块

参考链接https://google-cartographer-ros.readthedocs.io/en/latest/compilation.html

8.4.1. 安装wstool和rosdep以及Ninjia

sudo apt-get update
sudo apt-get install -y python3-wstool python3-rosdep ninja-build stow
这里会报错缺少依赖包,因为之前装的都是python2的包,按照提示添加上依赖包后会导致ROS重新安装(我擦),所以用下面的指令代替:
sudo apt-get install -y python-wstool python-rosdep ninja-build stow

8.4.2. 安装cartographer_ros

mkdir catkin_ws
cd catkin_ws
wstool init src
wstool merge -t src https://raw.githubusercontent.com/cartographer-project/cartographer_ros/master/cartographer_ros.rosinstall
wstool update -t src

这里最后一步速度很慢,对hosts文件进行如下配置,然后重启网卡(结果不太明显):

#解决git clone 速度慢的问题
192.30.253.112 github.com
151.101.185.194 github.global.ssl.fastly.net
#解决浏览器下载master-zip包的问题
192.30.253.120 codeload.github.com
#解决github不能查看图片的问题
199.232.68.133 raw.githubusercontent.com

8.4.3. 安装依赖

rosdep update
rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y

发现依赖了下面的包:libatlas3-base libgflags2.2 libgoogle-glog0v5 libceres1 libgflags-dev libgoogle-glog-dev libceres-dev

8.4.4. 手动安装abseil-cpp library

src/cartographer/scripts/install_abseil.sh
执行后下载了https://github.com/abseil/abseil-cpp.git,并编译该库。该库是google开源的内部通用库。

8.4.5. 构建cartographer_ros

catkin_make_isolated --install --use-ninja
source install_isolated/setup.bash
编译构建过程中可能出现内存不足的问题,参考上面ROS-Navigation解决办法。

  • 13
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: ROSNavigation源码安装的步骤如下: 1. 首先,需要安装ROS。可以参考ROS官方网站的安装指南进行安装。 2. 然后,需要下载Navigation源码。可以使用以下命令进行下载: ``` git clone https://github.com/ros-planning/navigation.git ``` 3. 接下来,需要安装Navigation的依赖项。可以使用以下命令进行安装: ``` rosdep install --from-paths src --ignore-src -r -y ``` 4. 然后,需要编译Navigation。可以使用以下命令进行编译: ``` catkin_make ``` 5. 最后,需要将Navigation添加到ROS环境变量中。可以使用以下命令进行添加: ``` source devel/setup.bash ``` 完成以上步骤后,就可以在ROS中使用Navigation了。 ### 回答2: 首先,了解ROSNavigation包含哪些模块,其中又包含哪些模块需要进行安装。该模块涵盖了全局路径规划、局部路径规划、SLAM(即时地图构建)等内容,是机器人导航和自主探索重要的工具之一。 Navigation安装的基本步骤是:先安装ROS,然后通过rosdep、apt-get或源码编译等方式安装Navigation所需的依赖包,最后编译安装Navigation源码即可。 在安装Navigation的依赖的过程中,可参考官方提供的依赖列表进行安装。例如,如果需要使用gmapping进行SLAM,那么需要安装相关的gmapping依赖,包括tf、laser_geometry、geometry_msgs等,这些依赖的安装方法可以通过apt-get或源码编译等方式进行。 在完成依赖安装后,还需要安装Navigation包本身。Navigation可以通过apt-get、源码编译、源码下载等方式进行安装。其中,源码编译方式需要先通过source安装ROS工具包,然后建立一个catkin工作环境,下载navigation源码,并编译安装即可。 最后,安装完成后,还需要进行机器人和环境的配置,包括机器人坐标系、传感器的配置、地图的构建等。这些内容可以通过官方文档和教程进行学习和理解。 总的来说,Navigation安装需要掌握ROS安装及其基础知识,同时,还需要对Navigation的工作原理和应用进行深入了解,方能顺利完成安装和配置。 ### 回答3: ROSNavigation源码安装,是指将Navigation模块的源代码下载到本地电脑编译安装的过程。可以通过源码安装的方式进行定制化和优化,以满足特定的实际需求。 以下是安装Navigation源码的步骤: 第一步, 创建一个catkin工作空间,并在其下创建Navigation的开发目录: ``` $ mkdir -p catkin_ws/src $ cd catkin_ws/src $ git clone https://github.com/ros-planning/navigation.git ``` 第二步, 安装Navigation依赖项。Navigation的依赖项包括Eigen、OpenCV等。 ``` $ sudo apt-get install ros-kinetic-eigen-conversions ros-kinetic-tf2-eigen ros-kinetic-cv-bridge ros-kinetic-image-transport ros-kinetic-amcl ``` 第三步,配置工作空间: ``` $ cd ~/catkin_ws/ $ catkin config --merge-devel $ catkin build ``` 第四步,测试编译Navigation模块 ``` $ cd catkin_ws $ catkin_make -j1 ``` 安装完成后,Navigation模块源码便可在本地电脑上进行修改和优化,以满足特定需求。同时,由于Navigation模块是ROS中比较重要的模块之一,因此,安装Navigation源码的过程也十分重要,需要开发者耐心细致地操作,才能成功安装

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值