ROS---1简介

ROS(机器人操作系统)为软件开发者提供一系列库和工具,助力机器人应用的开发。它支持硬件抽象、设备驱动、可视化工具、消息传递等功能,采用开源BSD许可。ROS作为一个元操作系统,可在Ubuntu等操作系统上运行,实现数据传输、调度和错误处理。它支持多种编程语言,如Python、C++和Lisp,促进全球范围内的机器人软件合作开发。

ROS (Robot Operating System)

provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. ROS is licensed under an open source, BSD license.

来自https://wiki.ros.org/

ROS是一个机器人操作系统,提供一系列库和工具,帮助软件开发者创建机器人应用。它提供硬件抽象,设备驱动,函数库,可视化工具,消息传递和包管理等诸多功能。

更确切的说,ROS是一个元操作系统,不同于传统的Windows,Linux,iOS,Android。它基于现有的操作系统,比如官方维护的ROS安装在Ubuntu之上,以使用进程管理,文件系统,用户界面等。以库的形式提供了机器人应用程序所需的多数不同类型的硬件之间的数据传输,调度和错误处理等功能。这个该你啊你亦可称为中间件(Middleware)或软件框架(Software framework)。

ROS开发、管理和提供基于元操作系统的各种用途的应用功能包,并拥有一个负责分享用户所开发的功能包的生态系统(Ecosystem)。ROS在使用现有传统操作系统同时,通过使用硬件抽象概念来控制机器人应用所必须的机器人和传感器,同时也是开发用户的机器人应用的支持系统。

1.1 ROS资源

官网:https://www.ros.org/

ROS Wiki是所有ROS软件包的官方文档来源;https://wiki.ros.org/

ROS Answers是解答疑惑的第二个最好选择,包含数以万计的问题解答。

PS:ROS数据通信可以在一个OS中进行,但也适用于使用多种硬件开发的机器人,因为可以在不同的操作系统、硬件和程序之间交换数据。

1.2 ROS的目的

建立一个在全球范围内协作开发机器人软件的环境!

ROS致力于将机器人研究和开发中的代码重用做到最大化。为了支持这个,ROS具有以下特征。

分布式进程:它以可执行进程的最小单位(节点,Node)的形式进行编程,每个进程独立运行,并有机地收发数据。

功能包单位管理:由于它以功能包的形式管理着多个具有相同目的的进程,所以开发和使用起来很容易,并且很容易共享、修改和重新发布。

公共存储库:每个功能包都将其功能包公开给开发人员首选的公共存储库(例如GitHub),并标识许可证。

API类型:使用ROS开发程序时,ROS被设计为可以简单地通过调用API将其加载到其使用的代码中。在源代码中,您会发现ROS编程与C++和Python程序没有区别。

支持多种编程语言:ROS程序提供客户端库(Client Library)2以支持各种语言。它可以用于如JAVA、C#、Lua和Ruby等语言,也可以用于机器人中常用的编程语言,如Python、C++和Lisp。换句话说,您可以使用熟悉的语言开发ROS程序。

 

这种支持使得在全球范围内开发机器人软件的合作成为可能,并且ROS的终极目的-机

器人研究和开发过程中的代码重用-变得越来越普遍。

 

1.3 ROS的生态系统

 

希望机器人硬件领域的开发者、ROS开发运营团队、应用软件开发者以及用户也能像机器人公司和传感器公司一样从中受益。

 

1.4 版本周期

ROS的版本周期和ROS正式支持的操作系统Ubuntu的新版本发布周期一样。是每年发布两次(4月和10月),但2013年很多用户由于频繁的升级,提议新的版本周期。因此在2013年接纳了用户们的意见,决定从Hydro Medusa版本开始,每年发布一次正式版本,时间点则在新的Ubuntu xx.04版本发布一个月之后的5月份。而恰好每年的5月23日是世界乌龟日(World Turtle Day)19,所以现在每年的这个有象征意义的一天会发布新的ROS版本。

 

ROS的支持期间根据版本而不同,一般是发布后提供两年的支持。而针对每两年发布的Ubuntu长期支持版(Long Term Support)20 发布的ROS版本提供与LTS一样的5年的支持期间。比如,支持2016年的Ubuntu 16.04 LTS的ROS Kinetic Kame具有直到2021年5月的5年的支持期间。非LTS版本保持最新版本的Linux核,仅仅是进行了次要的升级以及基本的维护。

在2018年发布的新的Linux版本和ROS LTS版本达到稳定的2019年之前我想推荐的组合如下:

操作系统:Ubuntu 16.04 Xenial Xerus23 (LTS) 或 Linux Mint 18.x

ROS版本:ROS Kinetic Kame24

 

### 关于ROS Noetic中的Velodyne驱动程序安装与使用 #### 1. Velodyne驱动简介 Velodyne激光雷达是一种广泛应用于自动驾驶、机器人导航等领域的重要传感器设备。在ROS Noetic中,`velodyne_driver`是一个用于支持Velodyne系列激光雷达的开源驱动包[^4]。 该驱动包主要负责接收来自Velodyne硬件的数据流,并将其转换为标准的ROS消息格式(如`sensor_msgs/PointCloud2`)。通过此驱动,开发者可以轻松实现数据采集、处理和可视化等功能。 --- #### 2. 安装步骤 ##### (a) 设置ROS环境 确保已正确安装并初始化ROS Noetic环境。如果尚未完成,请参考相关文档进行操作[^3]。 ##### (b) 使用`rosinstall_generator`安装依赖项 可以通过以下命令下载并安装`velodyne`相关的所有必要组件: ```bash sudo apt update sudo apt install ros-noetic-velodyne ``` 上述命令会自动拉取`velodyne_driver`, `velodyne_pointcloud`以及其他关联包[^5]。 ##### (c) 手动编译(可选) 对于某些特定需求或者最新特性测试,可以从源码手动构建驱动包: 1. 创建一个新的catkin工作空间(如果尚不存在): ```bash mkdir -p ~/catkin_ws/src && cd ~/catkin_ws/ ``` 2. 克隆官方仓库至src目录下: ```bash git clone https://github.com/ros-drivers/velodyne.git src/velodyne ``` 3. 编译整个项目: ```bash catkin_make source devel/setup.bash ``` 完成后即可加载自定义本的驱动程序[^6]。 --- #### 3. 基本配置与启动方式 ##### (a) 启动节点 运行如下指令以启动默认参数下的Velodyne驱动节点: ```bash roslaunch velodyne_pointcloud VLP16_points.launch ``` 这里假设使用的是一款VLP-16型号的LiDAR设备;如果是其他类型,则需调整对应的launch文件名或修改内部设置[^7]。 ##### (b) 参数调优 部分常用参数可通过编辑`.yaml`配置文件来进行微调,比如旋转频率(`rpm`)、校准矩阵(`calibration_file`)等。具体路径一般位于: ```plaintext ~/catkin_ws/src/velodyne/velodyne_pointcloud/params/ ``` --- #### 4. 数据可视化 借助RViz工具查看实时点云效果非常直观简便。只需执行下面这条语句便可打开预设场景布局: ```bash rviz -d $(rospack find velodyne_pointcloud)/rviz/VLP16.rviz ``` 此时应该能看到由Velodyne LiDAR生成的三维点云图像[^8]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值