欢迎访问我的博客首页


1. 安装 ROS Noetic


  首先配置Ubuntu仓库。打开<系统设置>选择<软件和更新>,确保 restricted、universe 和 multiverse 被选中。

1.1 源和钥匙


  使用下面的命令为 ubuntu 添加 ROS 源:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

上面使用的是 ROS 官方源。我们可以更换 ROS 源。下面分别是使用 USTC 中国科学技术大学清华大学北京外国语大学上海交通大学浙江大学 ROS 源的命令。

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.bfsu.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.sjtug.sjtu.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.zju.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

  使用下面两个命令安装 curl 并设置钥匙:

sudo apt install curl # if you haven't already installed curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

第 2 个命令需要访问 raw.githubusercontent.com。如果无法访问这个网址,会报错 “gpg: 找不到有效的 OpenPGP 数据。”。此时需要在 /etc/hosts 中添加下面一行或多行以指定 DNS 服务器:

199.232.68.133 raw.githubusercontent.com
185.199.108.133 raw.githubusercontent.com
185.199.109.133 raw.githubusercontent.com
185.199.110.133 raw.githubusercontent.com
185.199.111.133 raw.githubusercontent.com

1.2 安装


  使用下面两个命令更新包信息并安装 ROS:

sudo apt update
sudo apt install ros-noetic-desktop-full

  ROS 为我们提供了一些包。这些包可以单独使用,也可以作为其它包的依赖。可以在这里查看它们,或者使用命令行工具获取所有包信息:

apt search ros-noetic

安装包的命令是:

sudo apt install ros-noetic-PACKAGE # 安装指定包

1.3 编译依赖


  上面安装的 ROS,可以使你运行一些核心包。ROS 还有其它工具,用于编译包,或者作为包的依赖。比如 rosinstall 是一个常用的命令行工具,借助它,可以使用一个命令下载 ROS 包。安装这些工具或依赖的命令如下:

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential

  使用 ROS 工具前,需要初始化 rosdep。rosdep 可以自动检测并安装工作空间需要的依赖,也是运行一些 ROS 核心组件所必须的工具。使用下面的命令可以安装并初始化它:

sudo apt install python3-rosdep
sudo rosdep init
rosdep update

第 3 个命令容易超时,可以使用代理。即在下面三个文件中的网址前加前缀 “https://ghproxy.com/”。路径中的 python3 与 rosdep 版本有关:如果安装的是 python3-rosdep,则路径中是 python3;如果安装的是 python-rosdep,则路径中是 python2。

文件 网址
/usr/lib/python3/dist-packages/rosdep2/rep3.py REP3_TARGETS_URL
/usr/lib/python3/dist-packages/rosdistro/__init__.py DEFAULT_INDEX_URL
/etc/ros/rosdep/sources.list.d/20-default.list 全部五个网址

或者在 /usr/lib/python3/dist-packages 中按下表更换 gitee 源

文件 变量 路径
rosdep2/sources_list.py DEFAULT_SOURCES_LIST_URL https://gitee.com/ssonic/rosdistro/raw/master/rosdep/sources.list.d/20-default.list
rosdep2/gbpdistro_support.py FUERTE_GBPDISTRO_URL https://gitee.com/ssonic/rosdistro/raw/master/releases/fuerte.yaml
rosdep2/rep3.py REP3_TARGETS_URL https://gitee.com/ssonic/rosdistro/raw/master/releases/targets.yaml
rosdistro/__init__.py DEFAULT_INDEX_URL https://gitee.com/ssonic/rosdistro/raw/master/index-v4.yaml

1.4 启用 ROS


  安装 ROS 后,需要使用下面的命令启用它。否则,当我们使用 catkin_make_isolated 等命令时,会提示找不到该命令。

source /opt/ros/noetic/setup.bash

2. ROS 教程


2.1 常用命令


1.创建工作空间
1.1 创建文件夹 ros_ws/src。
1.2 在 ros_ws 执行 catkin_make。会在 ros_ws 中创建一个 build 文件夹和一个 devel 文件夹,并在 src 中创建一个名为 CMakeLists.txt 的到 /opt/ros/noetic/share/catkin/cmake/toplevel.cmake 的链接。
1.3 切换到工作空间:source devel/setup.bash。
2.创建软件包
在 ros_ws/src 执行 catkin_create_pkg 包名 std_msgs rospy roscpp。包名后是依赖。
3.构建(编译)软件包
在 ros_ws 执行 catkin_make。
4.文件系统
支持 tab 键补全。
4.1 查看所有包信息:rospack list。筛选具有 home 关键字的包信息:rospack list | grep home。
4.2 查看包的位置:rospack find 包名。
4.3 切换路径到软件包:roscd 包名。
4.4 切换到日至:roscd log。
4.5 查看软件包中的文件:rosls 包名。
5.消息与服务
5.1 查看消息:rosmsg show 包名/消息名
5.2 查看服务:rossrv show 包名/服务名
6.运行结点
6.1 有一个终端运行着 roscore
6.2 在执行了 source devel/setup.bash 的终端中执行 rosrun 包名 结点名 参数
7.roslaunch
7.1 使用 roslaunch:roslaunch 包名 launch文件名
8.rosbag
8.1 查看 bag 文件信息:rosbag info XXX.bag
8.2 查看消息详情:rqt_bag XXX.bag
9.查找官方包
9.1 使用网页查找。
9.2 使用命令行查找:apt search ros-noetic。

2.2 功能


发布者:ros::NodeHandle::advertise<消息类型>(话题名, 缓存大小);
订阅者:ros::NodeHandle::subscribe(话题名, 缓存大小, 回调函数);
服务端:ros::NodeHandle::advertiseService(服务名, add);
客户端:ros::NodeHandle::serviceClient<srv文件名>(服务名);
定时器:ros::NodeHandle::createTimer(间隔秒数,回调函数);
消息与服务在作用方面的区别:消息是从发布者到订阅者单向传递的,服务是从客户端到服务器(请求)再到客户端(响应)双向传递的。

3. ubuntu 常用命令


  文件命令:

touch 1.txt		# 创建文件
cp 1.txt 2.txt	# 拷贝
mv 1.txt 2.txt	# 重命名
rm 1.txt		# 删除文件

  apt 命令:

apt-cache search 关键字 # 搜索包名

  查看已安装的包:

dpkg -l | grep gmapping
apt list --installed | grep gmapping
dpkg-query -l | grep gmapping

上面的 grep 命令用于筛选名字包含 gmapping 的包,支持模糊匹配。

  查看指定包的安装位置,必需给出完整包名,不能使用模糊匹配:

dpkg -L ros-noetic-gmapping

  卸载:

apt-get remove package-name			# 移除式卸载
apt-get purge package-name			# 清除式卸载(清除配置文件)
apt-get --purge remove package-name	# 清除式卸载(清除配置文件)
dpkg -r package-name				# 移除式卸载
dpkg -P package-name				# 清除式卸载(清除配置文件)

4. 参考


  1. Ubuntu 20 install of ROS Noetic,wiki。
  2. Ubuntu 15/16 install of ROS Kinetic,wiki。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐