此文章基于冰达机器人进行笔记整理,使用的环境为其配套环境,可结合之前的ROS,赵虚左老师的文章结合进行观看,后期也会进行整合
1. ROS安装
(1)配置ubuntu的软件和更新,允许安装不经认证的软件。
首先打开“软件和更新”对话框,具体可以在 Ubuntu 搜索按钮中搜索,确保勾选了"restricted", "universe," 和 "multiverse."
(2)设置安装源
来自国内中科大的安装源
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'
(3)设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
(4)安装
首先需要更新 apt(以前是 apt-get, 官方建议使用 apt 而非 apt-get),apt 是用于从互联网仓库搜索、安装、升级、卸载软件或操作系统的工具。
sudo apt update
然后,再安装所需类型的 ROS:ROS 多个类型:Desktop-Full、Desktop、ROS-Base。这里介绍较为常用的Desktop-Full(官方推荐)安装: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
sudo apt install ros-melodic-desktop-full
(5)配置环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
(6)安装依赖
依赖相关工具
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
安装rosdep
sudo apt install python-rosdep
初始化rosdep
sudo rosdep init
rosdep update
(7) sudo rosdep init初始化失败的解决办法
2. ROS通信结构
ROS的通信结构是在OS层之上,通过TCP/IP协议协议实现
节点NODE与主节点Master
master:相当于管理中心,node也需要现在master进行注册,node的通信也是由master进行引线,才能进行通信,一个ros计算图里只能有一个master。
节点:一个可执行程序进程,通常一个node负责机器人的一个功能,也可以通过同一局域网作用与不同的机器人
(2)四种通信方式
(3)话题与服务
(4)动作
· goal - 用于向服务器发送目标
· cancel - 用于向服务器发送取消请求
· status - 用于通知客户端系统中每个目标的2当前状态
· feedback - 用于周期反馈目标的辅助信息
· rssult - 用于向client发送任务的执行结果,这个topic指挥发送一次
(5)参数服务器
并非是一个node,运行在master中,节点储存参数的地方
常用的shell命令
一图流:
(1)第一个要用的指令为:roscd
可以跳转的指定目录,但不同的是,这后面要跟指定的功能包名
我们可以直接跳转的指定的功能包内
(2)roscore
启动ros的功能,启动master管理器,必要输出文件,参数管理器
(3)rosrun
运行功能包,至少是带两个名字