ROS官网 https://www.ros.org/
ROS wiki http://wiki.ros.org
ROS answers: http://answers.ros.org
本文主要是针对Ubuntu 系统进行说明,这里可以参见
http://wiki.ros.org/noetic/Installation/Ubuntu 英文介绍
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 -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
sudo rosdep init
rosdep update
echo "source /opt/ros/kinetic/setup.bash"
bashrc source ~/.bashrc
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
1. 打开终端 ,初始化ROS环境
输入 roscore
2. 打开小乌龟模拟器(注意另外开一个终端)
输入 rosrun turtlesim turtlesim_node
3.再打开一个终端,打开小乌龟控制节点
输入 rosrun turtlesim turtle_teleop_key
通过 键盘 上下左右 可以控制小乌龟
解决方案
方法一:
打开sources_list.py文件
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
1
在顶部直接插入两行代码取消SSL验证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
1
2
方法二:
通过IPAddress.com首页,输入raw.githubusercontent.com查询到真实IP地址,然后打开 /etc/hosts 文件
sudo gedit /etc/hosts
1
添加以下内容保存即可
查询到的IP raw.githubusercontent.com
rosdep更新失败
报错如下:
同样是由于网络连接问题导致的,可以通过添加google域名服务器解决
解决方案
方法一:
sudo gedit /etc/resolv.conf
将原有的nameserver这一行注释,并添加以下两行:
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
方法二(终极解决方案):
如果上述方法都没有效果,说明你当前使用的网络确实很难连上 githubusercontent,这个时候甭管是增大超时时间(DOWNLOAD_TIMEOUT)、还是将 githubusercontent 改为 github 、或是将 yaml 文件下载到本地等等这些方法基本都很难有所作用,这里只有祭出我们的终极解决方案:
执行rosdep update实际上是在/home/xxx/.ros/rosdep/sources.cache(xxx是你的用户名)产生一个文件夹,里面有一堆缓存文件,从其他装好ROS的电脑中将这个文件拷贝过来,就不需要再rosdep了。
拷贝后别忘了手动在 ~/.bashrc 中添加路径:
source /opt/ros/kinetic/setup.bash
如图所示,ROS的架构是点对点的,每个节点可以独立管理,同时通过网络进行多机协同;
常用的包括
rviz -- 3D可视化工具
gazebo -- 物理仿真环境
rosbag--数据记录工具
rqt 工具集--QT工具箱
1. 通信节点(Node),指的是一个软件模块;
2. 主节点(ROS Master),指各节点的管理器或控制中心,同时提供参数管理;
3.发布订阅通信机制,异步通信方式,发布节点发布消息,订阅节点接收消息,如下图;
4.请求应答通信机制,同步通信方式,客户端请求消息,服务端根据请求响应,如下图。
5.发布订阅模式 通信建立过程
0).发布方(talker)广播给主节点注册topic-bar;
1).订阅方(listener) 注册该topic-bar;
2).主节点(ROS Master) 进行信息匹配;
3).订阅方(llistener)进行订阅请求;
4).发布方(talker)确认连接请求;
5).发布方和订阅方建立网络连接;
6).发布方向订阅方进行消息传输,完成通讯。
6.请求应答模式 通信建立过程
0).服务方(talker)广播给主节点注册topic-bar;
1).客户端(listener) 注册该topic-bar;
2).主节点(ROS Master) 进行信息匹配;
4).客户端(listener)向服务端(talker) 进行请求服务;
5).服务端(talker) 向客户端(listener)进行请求应答;
7.参数通信机制
1) talker 设置参数 foo = 1
2) listener 读取参数foo
3) 主节点 ROS master 向listener 报告参数 foo = 1
ROS命令 | 作用 |
catkin_create_pkg | 创建ROS功能包 |
rospack | 获取ROS功能包信息 |
catkin_make | 编译工作空间中的功能包 |
rosdep | 自助安装功能包依赖的其他包,这里dep 是dependent缩写 |
roscd | ROS功能包跳转,类似linux cd |
roscp | 拷贝功能包的文件,类似linux cp |
rosrun | 运行功能包中的可执行文件 |
rosed | 编辑功能包中的文件,ed edit缩写 |
roslaunch | 运行启动文件 |