零蚀
[🔗 ROS官网]
[🔗 ROS中文开发目录]
[🔗 所有现有机器人的介绍]
ROS 认知
-
ROS的布局
- Plumbing 探测发现机制(进程间通讯管理)
- Tools 开发调试工具(可视化的调试工具)
- Capabilities 提供开源库(导航,地图,感知…)
- Ecosystem 社区
ROS Robot Operation System 是一个基于操作系统做的一个通讯框架。
-
系统架构
大体结构分为以下的四种
1. 环境 2. 传感器 3. 执行器 4. 软件结构
-
Ros的软件结构
Ros Master 在执行中开发出很多可执行的小单元,这些item需要在ros master中进行记录。
Ros 安装
-
ROS的环境搭建(Ubuntu 18)
(⚠️ Mas OS 官网上是测试版,且代码已经不再更新,且只有Kinetic测试版支持,后面的Melodic版本就直接取消了OS配置,所以统一用ubuntu,每个版本的ROS对应着使用版本的Ubuntu选择要注意)
采用科大的镜像源,如果用的是ubuntu的话吗需要在更新中将源文件的加载地址也改为科大的。
- 添加ROS的镜像源
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
由于ROS的主服务器在国外,所以网速会非常的慢,而用科技大的镜像,后续开发会更加顺利。
- 配置密钥
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
- 更新Ubuntu的源
sudo apt update
- 安装ROS Melodic
sudo apt-get update sudo apt install ros-melodic-desktop-full
ros-melodic-desktop-full
全家桶内置了很多ROS的开发工具(melodic一般分为三种,1.全家桶,2,基础版,3.裸奔版),作为开发阶段而言,我们选择最全的版本进行安装。ROS初始化
- 初始化rosdep
sudo rosdep init rosdep update
在使用ROS之前,需要初始化rosdep。 rosdep可以轻松地为要编译的代码添加系统依赖项,并且帮助我们运行ROS中核心组件。
- 配置全局环境变量
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc
我们需要将安装目录下的功能包配置到系统的环境变量中去。这样我们才能使用ROS提供给我们的一些命令工具。
- 构建工厂依赖
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
通常在安装过程中会出现
Hash Sum mismatch
,这个时候,建议修改Ubuntu操作系统的软件源为http://mirrors.ustc.edu.cn
。保证ros的源和ubuntu的源一致,规避掉hash校验的错误- 测试安装
通过命令启动Ros Master
roscore
构建第一个项目
-
构建工作空间
➜ ~ mkdir ~/ws ➜ ws mkdir ros_ws ➜ ros_ws mkdir src
工作空间的其他内容需要catkin构建
# 没有出现红色ERROR表示创建成功 ➜ ros_ws catkin_make
可以发想项目里自动构建了build,devel这些用于打包的文件,且src下也构建了CMakeLists.txt,缓存已经被catkin_make记录。
-
在src下创建package
⚠️ 官网上说的 std_msg在clion加载的时候是找不到的,会导致问题,所以用的还是老版中的rosmsg。
# rospy roscpp std_msg为要添加的依赖支持 ➜ src catkin_create_pkg first_demo rospy roscpp rosmsg # 文件结构如下: ➜ src tree ├── CMakeLists.txt -> /opt/ros/melodic/share/catkin/cmake/toplevel.cmake └── first_demo ├── CMakeLists.txt ├── include │ └── first_demo ├── package.xml └── src
-
linux版本的肉鸡clion,然后打开我们的项目。
不能选择文件路径用clion图形化界面进行打开操作,需要命令行操作。
配置devel环境
这个过程中会调用一遍setup.bash中所有的环境,所以这个过程是必须的。
➜ ros_ws exec bash ➜ ros_ws source devel/setup.bash
在环境下开启clion
~/ws/ros_ws$ cd /home/parallels/devtools/clion-2019.1.3/bin :~/devtools/clion-2019.1.3/bin$ ./clion.sh
点击打开的对象,不是first_demo,是camkelists.txt
打开后的结果(如果以上步骤疏漏一步或者打开对象错误,都会导致加载报错)
事情都已经具备,则可以开始我们的第一个node。
ros Noetic
-
配置ros Noetic系统
-
终于决定升级了,谁知道其中parallels升级ubuntu太扯,只能重新装,并且14版的parallel安装ubuntu一直不能兼容,导致屏幕奇形怪状,终于12点我找到一个parallel 16,并且tool可以使用,才体会到了ubuntu 20 的不同,如果说18是像win风,那么20就是mac风,精致。
-
在安装ubuntu之后,建议先安装clion,不然可能发生冲突,导致打不开。除此之外我们在安装ubuntu的过程中尽量不要skip一些过程,不然很容易导致安装出现问题。如果出现问题,建议重新安装ubuntu。
-
我们要先知道Noetic只能在20.04版本及以上才能用,为什么要用它呢?因为它支持python3了,所以在麻烦也得上。
-
安装步骤,和上文一样的地方我就一笔带过了。(在这里镜像不好使了,所以直接用国外的)
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- installing
# 安装 sudo apt install ros-noetic-desktop-full sudo apt install ros-noetic-desktop source /opt/ros/noetic/setup.bash # 这里没有rosdep,需要安装一下,应为ubuntu默认python3所以用python3-rosdep sudo apt install python3-rosdep sudo rosdep init rosdep update echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc # 测试 roscore
- 测试
# ros_ws路径下 source devel/setup.bash mkdir src catkin_make # src路径下 catkin_create_pkg test_first rospy roscpp rosmsg
- 打开clion测试node的demo
sudo sh /home/baicha/devtool/clion-2019.1.3/bin/clion.sh
- 编辑好了测试的node之后记得有个小细节,那就是开头一定要表明这个python的位置,就是你添加python路径,意外的是,其实这里已经有了python3-opencv库了。
#!/usr/bin/python3.8 import rospy
-
🔗 前言
🔗 Robot ROS 操作系统列表
🔗 NO.2 Ros 第一个程序(cpp & py)
🔗 NO.3 Ros Topic 通讯
🔗 NO.4 Ros 消息补充&小乌龟
🔗 NO.5 Ros Turtle &日志开发
🔗 NO.6 Ros Service 简单通讯
🔗 NO.7 Ros Service 复杂通讯
🔗 NO.8 Ros PID算法案例
🔗 NO.9 PID原理&曲线计算原理
🔗 NO.10 Action 通讯 上
🔗 NO.11 Action 通讯 下
🔗 NO.12 Param & Launch & TF 案例
🔗 NO.13 ROS 2 Foxy安装(Mac OS)
🔗 NO.14 关于ROS2的第一个程序