众所周知 ros2还有很多功能没有移植,而ros1官方不再支持 ubuntu 20.04 之后的版本。另一方面Ubuntu 22.04 更新了很多对新硬件的驱动,有更好的兼容性和体验,这就变的很纠结。
如果想在 22.04 使用最新版本的 ros noetic 只有自己编译一个办法。编译整套 ros。 对于初学者来说是个不小的挑战, 需要解决数量众多的库依赖和 C++ 版本兼容问题。
今天偶然发现 Autolabor 官方编译的一个ros noetic ninjemys 安装包,经测试可用,并且还包含 navgation stack,针对学习机器人导航和 SLAM 的需要可以直接安装使用.
安装方法如下:
添加源
echo "deb [trusted=yes arch=amd64] http://deb.repo.autolabor.com.cn jammy main" | sudo tee /etc/apt/sources.list.d/autolabor.list
更新源
sudo apt update
安装
安装过程有点长,因为这个版本会帮助安装所有需要的依赖,有些库的比较大。如果中间出现包无法下载的情况,请重试。
sudo apt install ros-noetic-autolabor
当出现 ros-noetic-autolabor installed 的字样,意味着安装已经完成,下面我们来验证下工作是否正常。
验证安装
打开一个新的控制台 ,执行
roscore
再打开另一个新的控制台
rosrun rviz rviz
如果看到 rviz 已经成功启动了,意味着已经安装成功
ros 会被安装在 /opt/ros/noetic 目录下,并且会在~/.bashrc 中添加 source /opt/ros/noetic/setup.bash 的引用
这个版本包含了完整的 ros desktop full, navgation 以及对 gazibo 的支持,比较全,无需像官方的一个个包单独安装。
创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
初始化工作空间
catkin init
创建一个Package
cd src
使用 catkin create 创建一个名为my_package 的包,依赖于roscpp , std_msgs
catkin create pkg my_package roscpp std_msgs
编译工作空间
cd ~/catkin_ws
catkin build
单独编译包
cd ~/catkin_ws/src/my_package
catkin build --this
至此我们已经成功在 ubuntu 22.04 安装了 ros1 noetic,并且验证工作正常。
卸载
sudo apt remove ros-noetic-autolabor