Navigation源码安装以及简单使用

系统:ubuntu18.04
ROS:ros-melodic

0 前言

采用源码安装是因为方便自己开发代码,以及熟悉算法原理
第一种安装方式:

sudo apt install ros-melodic-navigation

1 源码安装

git clone https://mirror.ghproxy.com/https://github.com/ros-planning/navigation.git

安装完成后将该包放到xxx_ws/src文件夹下

cd xxx_ws
rosdepc install --from-paths src --ignore-src -r -y # 安装依赖
sudo apt-get install ros-melodic-sensor-msgs
sudo apt-get install ros-melodic-tf2-sensor-msgs
catkin_make # 编译

2 用Turtlebot3做Navigation模拟

2.1 开启仿真和建图

Ctrl+Alt+T新建Terminal1

export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_gazebo turtlebot3_world.launch

Ctrl+Shift+T新建Terminal2,默认建图算法gmapping

export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

在这里插入图片描述

Ctrl+Shift+T新建Terminal3,对着这个Terminal控制Turtlebot3前后左右移动,建立一张完整的地图

export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

建好图后把地图截图保存到自定义文件夹map里,-f表示希望输入保存的路径,保存完有两个文件map.pgmmap.yamlyaml里面调用了map.pgm

rosrun map_server map_saver -f 自定义路径/map

在这里插入图片描述
白色是可以去的地方,黑色是墙壁,灰色是未知区域

2.2 根据建好的地图导航

在第一个窗口启动仿真:

ource devel/setup.bash
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_world.launch # 启动仿真

在第二个窗口开启导航, 并加载刚刚建好的地图:

roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=自定义路径/map/map.yaml

3 源码安装

测试环境:Ubuntu 18.04 和 ROS melodic
1.安装仿真系统依赖包
sudo apt-get install ros-melodic-turtlebot3*
安装依赖

sudo apt install ros-melodic-desktop-full ros-melodic-joy ros-melodic-teleop-twist-joy ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan ros-melodic-rosserial-arduino ros-melodic-rosserial-python ros-melodic-rosserial-server ros-melodic-rosserial-client ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro ros-melodic-compressed-image-transport ros-melodic-rqt-image-view ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers ros-melodic-turtlebot3-gazebo

2.安装turtlebot3_simulation包
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
3.安装键盘控制包
网上搜索teleop_twist_keyboard,选择melodic版,下载该功能包
编译catkin_make
4.启动仿真环境
新终端,加载小车和Gazebo环境
$ export TURTLEBOT3_MODEL=waffle_pi
$ roslaunch turtlebot3_gazebo turtlebot3_house.launch
新终端,启动RViz
$ export TURTLEBOT3_MODEL=waffle_pi
$ roslaunch turtlebot3_gazebo turtlebot3_gazebo_rviz.launch
新终端,启动键盘控制
$ rosrun teleop_twist_keyboard teleop_twist_keyboard.py

启动cartographer建图
roslaunch cartographer_ros backpack_2d.launch

键盘控制小车建图,保存地图
rosrun map_server map_saver -f ~/catkin_ws/map/map
加载自己创建的地图
rosrun map_server map_server ~/catkin_ws/map/map.yaml

### 编译和安装ROS Navigation2于ARM架构的Ubuntu 20.04 #### 准备工作 为了确保能够成功编译和安装Navigation2,在开始之前需确认已经完成基本的ROS环境搭建,这包括但不限于配置Ubuntu的软件更新、设置安装源以及配置环境变量等操作[^1]。 #### 安装依赖项 在准备从源码构建Navigation2前,先要安装一系列必要的工具和支持库。这些可以通过apt包管理器来实现: ```bash sudo apt update && sudo apt upgrade -y sudo apt install -y python3-colcon-common-extensions \ python3-flake8 \ python3-pip \ python3-setuptools \ python3-wheel \ python3-catkin-pkg-modules \ python3-osrf-pycommon \ git \ wget \ cmake \ build-essential pip3 install colcon-common-extensions vcstool rosinstall_generator catkin_pkg osrf_pycommon setuptools wheel flake8 ``` 对于特定于Navigation2的需求,还需额外安装一些C++支持库和其他依赖组件: ```bash sudo apt install -y libboost-all-dev \ libeigen3-dev \ libpcl-dev \ libyaml-cpp-dev \ libtinyxml2-dev \ libconsole-bridge-dev \ liburdfdom-dev \ libopencv-dev \ libassimp-dev \ libfcl-dev \ libignition-math6-dev \ libsdformat9-dev \ libbullet-dev \ libogre-rtos-dev \ libqt5core5a \ qtbase5-private-dev \ qml-module-qtquick-controls2 \ qml-module-qt-labs-settings \ qml-module-qt-labs-platform ``` 考虑到路径规划模块可能涉及nlopt优化库的应用场景,建议按照指定方法单独处理该库的安装以规避潜在冲突[^3]: ```bash git clone https://github.com/stevengj/nlopt.git cd nlopt mkdir build && cd build cmake .. make -j$(nproc) sudo make install ``` #### 获取源代码仓库 创建一个新的目录用于存放导航栈的工作空间,并利用`vcs`工具拉取官方维护的navigation2源码分支: ```bash mkdir -p ~/nav_ws/src cd ~/nav_ws wget https://raw.githubusercontent.com/ros-planning/navigation2/noetic-devel/navigation2.repos vcs import src < navigation2.repos ``` #### 构建过程 进入刚刚建立好的workspace文件夹内启动colcon来进行实际编译流程: ```bash source /opt/ros/noetic/setup.bash colcon build --symlink-install --packages-select nav2_bringup nav2_gazebo Worlds nav2_behavior_tree nav2_bt_navigator nav2_planner nav2_map_server nav2_amcl nav2_navfn_planner nav2_dwb_controller nav2_mission_executor nav2_system_tests nav2_util nav2_common nav2_viz nav2_msgs nav2_costmap_2d nav2_world_model nav2_lifecycle_manager nav2_recoveries nav2_navigation source install/local_setup.bash ``` 上述命令中的`--packages-select`参数指定了仅对navigation2核心套件及其紧密关联的部分子项目实施本地化组装动作,从而减少不必要的计算资源消耗并加快整体进度。 #### 测试验证 最后一步是对刚部署完毕的服务端发起简单的测试请求,以此检验整个集成是否正常运作无误: ```bash ros2 launch nav2_bringup tb3_simulation_launch.py ``` 如果一切顺利的话,此时应该可以在Gazebo模拟环境中看到TurtleBot3机器人实例正在依照预设逻辑执行自主移动任务了。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值