问题描述
在安装雷达相关包sudo apt install ros-melodic-map-server
、sudo apt install ros-melodic-navigation
时候报错:
显示404 Not Found
从源码安装navigation 包、map-server时,报错:Could NOT find SDL (missing: SDL_LIBRARY SDL_INCLUDE_DIR)
原因分析:
安装navigation,依赖于map-server;
安装map-server,依赖于libsdl1.2-dev、libsdl-image1.2-dev
解决方案:
但libsdl1.2-dev、libsdl-image1.2-dev,版本太过于老旧,我使用清华源、阿里源等sudo apt-get install
都装不上。
故都从源码安装
1.先安装libsdl1.2-dev:
打开一个命令行:git clone https://github.com/libsdl-org/SDL-1.2.git
默认应该是下载在主目录下:
如果大家下载不了的话,我这里把需要用的包,放在这里。
链接:https://pan.baidu.com/s/1iqBvr3cFlimN1Rg1AQDx2Q
提取码:706x
解压后进入文件夹,SDL-1.2-main,在文件夹内打开命令行:
分别输入以下代码,进行编译。
./configure
make
sudo make install
安装好的话,应该会显示:
2.安装libsdl-image1.2-dev:
打开一个命令行:git clone https://github.com/SDL-mirror/SDL_image.git
默认应该是下载在主目录下:
如果大家下载不了的话,我这里把需要用的包,放在这里。
链接:https://pan.baidu.com/s/1iqBvr3cFlimN1Rg1AQDx2Q
提取码:706x
解压后进入文件夹,SDL-image-SDL-1.2,在文件夹内打开命令行:
分别输入以下代码,进行编译。
./configure
make
sudo make install
安装好的话,应该会显示:
3.安装navigation 包(map-server含在里面):
打开一个命令行:git clone https://github.com/ros-planning/navigation.git
默认应该是下载在主目录下:
如果大家下载不了的话,我这里把需要用的包,放在这里。
链接:https://pan.baidu.com/s/1iqBvr3cFlimN1Rg1AQDx2Q
提取码:706x
将主目录下的navigation复制到工作空间的src目录下。
强烈建议这里新建一个工作空间
如果要建立工作空间的话:
mkdir -p 自定义空间名称/src #创建空间
cd 自定义空间名称 #进入空间
catkin_make #初始化
打开一个命令行:
cd 工作空间
source ./devel/setup.bash
catkin_make
此时可能会出现报错:
即缺少两个包,那安装即可。
新打开一个命令行:
sudo apt-get install ros-melodic-tf2-sensor-msgs
sudo apt-get install ros-melodic-move-base-mags
两个包都安装完毕后
打开一个命令行:
cd 工作空间
source ./devel/setup.bash
catkin_make
当编译完成后,包就安装好了。
然后把这个工作空间的变量更新放到主目录下的.bashrc文件里
直接点击或者打开一个命令行:
输入gedit .bashrc
将source ~/工作空间/devel/setup.bash
加到文件的最后一行。
以后打开任何一个工作空间,navigation 包、map-server都可正常运行了。