智能车|自主导航 ROS Navigation Stack 功能包 简介与编译
- 前言
- 功能包下载与编译
前言
ros功能包:Navigation
ros wiki:http://wiki.ros.org/navigation
github 地址:https://github.com/ros-planning/navigation
功能包简介:
ROS Navigation Stack是ROS提供的一个二维的导航功能包集合,通过输入里程计、传感器信息和目标位姿,输出控制机器人到达目标状态的安全速度指令。
ROS Navigation Stack为移动机器人的导航规划提供了比较好的参考,通过实现功能包集合提供的接口,也可以比较容易地将自己的算法应用到移动机器人上。
在任何一个移动机器人上配置自主导航功能都是件复杂的事情
这个功能包的应用提前需要的条件有:
- 移动机器人具备ROS环境
- 具备TF坐标变换树
- 正确的ROS消息格式的传感器数据
- 需要配置功能包的一些参数例如机器人的尺寸、动力等
硬件需求:
尽管 ROS Navigation Stack 设计的追求通信性,但是应用的时候,还是需要满足以下的三点要求:
- 它仅适用于差速驱动和全息轮式机器人,它假设移动平台,可以通过发送速度控制(x速度,y速度,θ速度)指令来实现控制
- 需要在移动平台安装二维激光雷达,这个激光雷达用于地图构建和定位
- 功能包基于方形机器人开发,所以在接近方向或者圆形的机器人上表现的更好。在狭窄空间的,大尺寸矩形机器人则可能出问题
功能包下载与编译
下载指令
git clone https://github.com/ros-planning/navigation
下载完成后,将功能包复制到ros的本地工作空间下
在工作空间目录下,进行编译
catkin_make
CMake Error at /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
Could not find a package configuration file provided by “tf2_sensor_msgs”
with any of the following names:
tf2_sensor_msgsConfig.cmake
tf2_sensor_msgs-config.cmake
出现这个报错时,是因为ros系统缺少tf2_sensor_msgs功能包,通过下面指令安装
sudo apt-get install ros-noetic-tf2-sensor-msgs
如果提示源有问题,那么需要进行下更新
sudo apt-get update
安装完成后提示如下:
然后再进行编译
就安装成功了
我装的环境不是一个0的环境,别的环境可能出其它问题。需要根据实际情况再进行解决。