ROS 与 ubuntu
ROS安装1. 教程2. 安装步骤1. 教程wiki2. 安装步骤配置Ubuntu仓库:打开<系统设置>选择<软件和更新>,确保restricted、universe和multiverse被选中设置软件源:打开终端输入:sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release...
欢迎访问我的博客首页。
ROS 与 ubuntu
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. 参考
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)