不能少常用工具技术ROS(机器人工具常用工具不能少是一个)「机器人的工具数据不包括」

ROS 是一个适用于机器人的开源的元操作系统
它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理
它也提供用于获取、编译、编写、和跨计算机运行代码所需的工具和库函数
在某些方面ROS相当于一种“机器人框架(robot frameworks)”类似的“机器人框架”有:Player,YARP、Orocos、CARMEN、Orca、MOOS和 Microsoft Robotics Studio
ROS开发时常常使用的工具,分别是:Gazebo、RViz、rqt、rosbag、rosbridge和moveit!这六个工具是我们开发常常用到的工具,gazebo是一种最常用的ROS仿真工具,也是目前仿真ROS效果最好的工具;RViz是可视化工具,是将接收到的信息呈现出来;rqt则是非常好用的数据流可视化工具,有了它我们可以直观的看到消息的通信架构和流通路径;rosbag则是对软件包进行操作的一个命令,此外还提供代码API,对包进行操作编写
rosbridge是一个沟通ROS和外界的功能包,moveit!是目前为止应用最广泛的开源操作软件
1.GazeboGazebo是一款3D动态仿真模拟器,能够在复杂的室内和室外环境中准确有效地模拟机器人群
与游戏引擎提供高保真度的视觉模拟类似,Gazebo提供高保真度的物理模拟,其提供一整套传感器模型,以及对用户和程序非常友好的交互方式
图1 GazeboGazebo的功能很强大,最大的优点是对ROS的支持很好,因为Gazebo和ROS都由OSRF(Open Source Robotics Foundation)开源机器人组织来维护,Gazebo支持很多开源的物理引擎比如最典型的ODE
可以进行机器人的运动学、动力学仿真,能够模拟机器人常用的传感器(如激光雷达、摄像头、IMU等),也可以加载自定义的环境和场景,仿真不仅仅只是做出一个很酷的3D场景,更重要的是给机器人一个逼近现实的虚拟物理环境,比如光照条件、物理距离等等
设定好具体的参数,让机器人完成我们设定的目标任务
比如一些有危险因素的测试,就可以让机器人在仿真的环境中去完成,例如无人车在交通环境复杂的交通要道的效果,我们就可以在仿真的环境下测试各种情况无人车的反应与效果,如车辆的性能、驾驶的策略、车流人流的行为模式等,又或者各种不可控因素如雨雪天气,突发事故,车辆故障等,从而收集结果参数指标信息等等
2.RVizRViz(the Robit Visualization tool)机器人可视化工具,可视化的作用是直观的,它极大的方便了监控和调试等操作
图2 Rviz虽然从界面上来看,RViz和Gazebo非常相似,但实际上两者有着很大的不同,Gazebo实现的是仿真,提供一个虚拟的世界,RViz实现的是可视化,呈现接收到的信息
3. rqtrqt是一个基于qt开发的可视化工具,拥有扩展性好、灵活易用、跨平台等特点,主要作用和RViz一样都是可视化,但是和RViz相比,rqt要高级一个层次
rqt_graph :显示通信架构rqt_plot :绘制曲线rqt_console :查看日志3.1 rqt_graphrqt_graph是来显示通信架构,当前有哪些Node和topic在运行,消息的流向是怎样,都能通过这个语句显示出来
此命令可用于显示系统的全貌
图3.1 rqt_graph3.2 rqt_plotrqt_plot将一些参数,尤其是动态参数以曲线的形式绘制出来
当我们在开发时利用rqt_plot将这些原始数据用曲线绘制出来,利于我们分析数据
图3.2 rqt_plot3.3 rqt_consolerqt_console里存在一些过滤器,我们可以利用它方便的查到我们需要的日志
图3.3 rqt_console4. Rosbagrosbag 主要用于记录、回放、和分析 rostopic 中的数据
rosbag package提供了命令行工具和代码API,可以用C++或者python来编写
而且rosbag命令行工具和代码API是稳定的,始终保持向后的兼容性
5.rosbridgerosbridge是一个可用于非ROS系统和ROS系统进行通信的功能包,非ROS的系统使用指定数据内容的基于JSON(或BSON)格式的网络请求(rosbridge支持TCP、UDP、WebSocket三种网络通讯方式)来调用ROS的功能,既然非ROS系统能通过rosbridge基于TCP/UDP/WebSocket与机器人上的ROS进行交互,那就是实现了外部系统和机器人上的ROS的解耦合,也就是外部系统完全可以与机器人使用不同的开发语言不同的OS平台
6.moveit!2012年,一款叫做moveit!的移动操作软件诞生了,moveit最初在Willow Garage由Sachin Chitta,Ioan Sucan,Gil E. Jones,Acorn Pooley,Suat Gedikli,Dave Hershberger开发,它融合了研究者在运动规划、操纵、3D感知、运动学、控制和导航方面的最新进展,为操作者提供了一个易于使用的平台,使用它可以开发先进的机器人应用,同时它也被广泛应用于工业,商业,研发和其他领域
moveit的使用通过为用户提供接口来调用它,包括C++、Python、GUI三种接口
ROS中的move_group节点充当整合器,整合多个独立组件,提供ROS风格的Action和service
move_group通过ROS topic和action与机器人通讯,获取机器人的位置、节点等状态,获取数据再传递给机器人的控制器
move_group节点获取到节点状态信息或者机器人变换信息时候,会通过控制器的接口去处理这些信息,比如进行坐标转换、规划场景、3D感知
另外,move_group的结构比较容易扩展,不仅具有独立的能力如抓放,运动规划,也可扩展自公共类,但实际作为独立的插件运行
moveit系统结构图如下:图4 moveit系统结构图Gazebo、RViz、rqt、rosbag、rosbridge和moveit等ROS常用工具掌握后就可以进行ROS开发了
让我们一起畅游在ROS的知识海洋中,站在巨人的肩膀上开拓新的航线
End -技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家
看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值
如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术
本文由博客一文多发平台 OpenWrite 发布
不能少常用工具技术ROS(机器人工具常用工具不能少是一个)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息