代码复用
:ROS的目标不是成为具有最多功能的框架,ROS的主要目标是支持机器人技术研发中的代码 重用。
分布式
:ROS是进程(也称为Nodes)的分布式框架,ROS中的进程可分布于不同主机,不同主机协同工 作,从而分散计算压力 。
松耦合
:ROS中功能模块封装于独立的功能包或元功能包,便于分享,功能包内的模块以节点为单位运 行,以ROS标准的IO作为接口,开发者不需要关注模块内部实现,只要了解接口规则就能实现复用,实现 了模块间点对点的松耦合连接 。
精简
:ROS被设计为尽可能精简,以便为ROS编写的代码可以与其他机器人软件框架一起使用。ROS易 于与其他机器人软件框架集成: ROS已与OpenRAVE, Orocos和Player集成。
语言独立性
:包括Java, C++, Python等。为了支持更多应用开发和移植,ROS设计为一种语言弱相关 的框架结构,使用简洁,中立的定义语言描述模块间的消息接口,在编译中再产生所使用语言的目标文 件,为消息交互提供支持,同时允许消息接口的嵌套使用 。
易于测试
:ROS具有称为rostest的内置单元/集成测试框架,可轻松安装和拆卸测试工具。
大型应用
: ROS适用于大型运行时系统和大型开发流程。
丰富的组件化工具包
:可采用组件化方式集成工具和软件到系统中作为一个组件直接使用。如RVIZ (3D可视化工具),开发者根据ROS定义的接口在其中显示机器人模型等,组件还包括仿真环 境和消息查看工具等 。
免费且开源
:开发者众多,功能包多
系统:ubuntu 20.04
本人原本使用的是ubuntu22,但似乎新版本不稳定,在vm上经常宕机
ROS1 版本:ROS Noetic
Noetic(2020发布)支持python 3
Noetic之前支持python 2
如果是国内用户,建议使用镜像源,这样可以保证后续的下载速度。
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'
如果还没安装curl的话,执行下面语句
sudo apt install curl
安装curl命令,如果你的ubuntu安装很慢,那你可能需要在ubuntu软件与更新中设置国内镜像,选择阿里、腾讯或者中科大其中一个作为你的镜像。
继续输入:
curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-noetic-desktop-full
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep
初始化rosdep
sudo rosdep init
rosdep update
但是7.1方法在rosdep初始化时,多半会抛出异常
原因是境外资源被屏蔽了
cd /usr/lib/python3/dist-packages/
find . -type f | xargs grep "raw.githubusercontent"
第一个文件:
sudo gedit ./rosdistro/__init__.py
将下面的红色框框替换成gitee.com/zhao-xuzuo/rosdistro/raw/master
替换第二个文件:
sudo gedit ./rosdep2/gbpdistro_support.py
sudo gedit ./rosdep2/sources_list.py
sudo gedit ./rosdep2/rep3.py
完成上述步骤后,就可以运行下面命令了
sudo rosdep init
rosdep update
这是国内大佬做的rosdep镜像,可以绕开连接不上服务器的困难过程。
sudo apt install python3-pip
在安装了pip之后,需要对其进行换源,使用国内源能够更快下载文件
mkdir ~/.pip
cd ~/.pip
touch pip.conf
sudo gedit ~/.pip/pip.conf
在弹出的文件中写入
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
安装rosdepc
sudo pip install rosdepc
sudo rosdepc init
rosdepc update
apt install python3-roslaunch
启动roscore
roscore
rosrun turtlesim turtlesim_node
ctrl + alt + T
)roscore
rosrun turtlesim turtlesim_node
(此时会弹出图形化界面)rosrun turtlesim turtle_teleop_key
(在3中可以通过上下左右控制2中乌龟的运动) 最终结果如下所示:原因:由于nertic较之前版本变动较大,且部分功能包未更新,在后期实践阶段可能会遇到重要功能包未更新的情况,需要ros降级。
ros系统:melodic
Ubuntu 18.04
旧版本的环境配置与上文noetic的配置前5个步骤(包括第5个)大致一样,第4,5步稍微不同,这里从第4步进行讲解。
sudo apt install ros-melodic-desktop-full
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init
rosdep update
sudo rosdep init 可能会抛出异常
原因与noetic的7.1一样,境外资源被屏蔽了
sudo gedit /etc/hosts
添加内容,即查询到的ip(本目录第2个步骤)与域名
151.101.76.133 raw.githubusercontent.com
sudo rosdep init
rosdep update
若在rosdep update抛出异常,基本是网络原因导致的,建议使用手机热点多尝试几次即可。
sudo apt-get remove ros-noetic-*
https://www.bilibili.com/video/BV1Ci4y1L7ZZ/?spm_id_from=333.337.search-card.all.click&vd_source=b914a8de9ea8b12ba5cb6d8edd1b346c
https://blog.csdn.net/liaolizhou/article/details/123615925