本教程指导您在PC上安装ROS,并配置ROS环境,至于为什么选择deepin而不是ROS通用的ubuntu,也仅仅是为了支持国产系统。鉴于本人水平有限,如哪位攻城狮网友发现本文存在的问题,烦请留言指正,谢谢!
本教程指导您在PC上安装ROS,并配置ROS环境。
ubuntu安装ROS
fishros一键ROS安装
下述命令即可一键完成ROS版本的选择与安装,详细可参考fishros
wget http://fishros.com/install -O fishros && . fishros
deepinV20安装ROS
1 配置source.list
配置source.list以使你的电脑能从packages.ros.org获取软件
sudo sh -c 'echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu buster main" > /etc/apt/sources.list.d/ros-latest.list'
2 配置密钥
配置source.list以使你的电脑能从packages.ros.org获取软件
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3 安装
首先需要确保deepin的包索引是最新的:sudo apt-get update
在ROS中有许多不同的库和工具。我们提供了4个默认配置。另外你也可以单独安装ROS包。
如果下一步出现问题,你可以使用以下的存储库,而不是使用上面提到的ros-shadow-fixed所提及的存储库。
- 完整桌面版(推荐):ROS,rqt,rviz,robot-generic库,2D/3D仿真以及2D/3D感知
sudo apt install ros-noetic-desktop-full
- 建议桌面版安装:ROS,rqt,rviz,robot-generic库
sudo apt install ros-noetic-desktop
- ROS-Base(基本框架):ROS包,构建和通信库,无GUI工具
sudo apt install ros-noetic-ros-base
4 环境配置
每次启动一个新的bash的,将ROS相关的环境变量自动添加到bash会话是很方便的。
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
5 构建包依赖关系
到目前为止已经安装了运行ROS Core所需要的组件。有许多分开分布的工具和需求来创建并管理你的ROS工作空间。例如 rosinstall是一个常用的命令行工具,它使您可以用一个命令轻松地下载许多ROS包的源代码树。要安装这个工具或其他构建ROS包的依赖可运行:
sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
6 初始化rosdep
在你使用ROS工具前,你需要初始化rosdep。rosdep使您能够轻松的为您需要的编译的源码安装依赖项,另外rosdep可以让你在ROS中运行一些核心组件。如果没有安装rosdep,可以按照以下步骤进行安装
sudo apt install python3-rosdep
sudo rosdep init
rosdep update
注意:
sudo rosdep init失败:解决办法
#将下列复制到 /etc/hosts 文件的末尾
151.101.84.133 raw.githubusercontent.com
sudo /etc/init.d/networking restart
#之后再运行
sudo rosdep init
rosdep update
# 或者使用fishros.com的解决方案rosdepc
sudo apt-get install python3-pip
sudo rosdepc init
# 由于rosdepc暂时不能识别deelin系统,需要在执行rosdepc update之前修改/etc/lsb-release 主要是将DISTRIB_ID修改为debian
cat /etc/lsb-release
DISTRIB_ID=debian
DISTRIB_RELEASE=20.6
DISTRIB_DESCRIPTION="Deepin 20.6"
DISTRIB_CODENAME=apricot
sudo rosdepc update # 建议用root进行更新
ROS环境变量
在ROS安装过程中,你source过一个setup.*sh文件,也可能你也把个source命令添加到了启动脚本里。source这个脚本的过程是必须的,因为ROS使用依赖于使用shell环境所组成的组合空间的概念。这使得不同版本的ROS或者包的开发更为容易。
如果您在使用ROS包的时候遇到问题,请优先确认是否设置了正确环境变量。可使用如下命令检查ROS环境变量的设置.如果printenv的打印中没有ROS相关的输出,你需要source对应的脚本。
printenv | grep ROS
ROS_VERSION=1
ROS_PYTHON_VERSION=3
ROS_PACKAGE_PATH=/opt/ros/noetic/share
ROSLISP_PACKAGE_DIRECTORIES=
ROS_ETC_DIR=/opt/ros/noetic/etc/ros
ROS_MASTER_URI=http://localhost:11311
ROS_ROOT=/opt/ros/noetic/share/ros
ROS_DISTRO=noetic
一般需要source的脚本是
source /opt/ros/<distro>/setup.bash #distro:表示你所安装的ROS的版本,建议将此命令写入~/.bashrc中
创建ROS工作区-catkin
mkdir -p ~/ros_ws/src
cd ~/ros_ws
catkin_make
catkin_make工具是catkin工作区的便捷工具,在工作区第一次运行此工具的时候,此工具会自动在src/目录下生成CMakeLists.txt。
ROS Melodic以及使用更早版本的ROS的Pyhton3用户需要注意:如果你是从ROS源码构建,以实现Python3的兼容性,且已经适当的设置了您的系统[安装了ROS Python包,catkin]等,则在一个干净的catkin工作区中你的第一个catkin_make命令必须是
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
这将配置你的catlin_make使用Python3.
如果你仔细查看当前的~/ros_ws目录你会发现catkin_make不仅生成了CMakelist.txt还创建了devel和build目录。devel目录中存放*.sh文件,source这些*.sh会覆盖您当前的环境变量,以为了后来ros能找到您所维护的包。
source devle/setup.bash
为了确保知行上述命令后您的工作区脚本倍覆盖,可使用如下命令来查看ROS_PACKAGE_PATH环境变量
echo $ROS_PACKAGE_PATH
/home/gaoy/ros_ws/src:/opt/ros/noetic/share
#或者printenv | grep ROS_PACKAGE_PATH