ros操作系统 入门,ros 使用
目录包masternodes和messages ROS工作区中的目录结构操作过程示例
#简介
理解新概念的三部曲;
ROS是什么?为什么要用ROS?或者说ROS能做什么,如何学习ROS?
什么是ROS
Ros是一个分布式操作系统,通过节点、主题、服务等进行通信和控制。
这个机制就像两个人在微信上聊天。每个人都是一个节点,微信软件的聊天功能就是话题。两个人只能通过微信聊天。如果一个人用whatsup,另一个人用微信,就无法收到对方的信息。服务就像一个表情包或者微信朋友圈。聊天的时候,两个人可以自己搞点有意思的东西,也就是服务,但是不一定要用微信的聊天功能,也就是话题。
所以学好ROS就是要不断了解这种沟通机制,然后运用到自己的项目中。
为什么要用ROS,ROS能用来做什么
机器人/仿真/三维重建/嵌入式等。
3D重建/室内导航与重建/PCL与opencv/仿真与人机合作等。
ME research是一款无需gps就能在弱光下自主飞行的无人机。活性氧的主要用途是:
传感器信息读取
避障算法的发展
避障算法可以在ros的凉亭中建立物理模型进行测试。
传感器数据融合(EKU UKF数据融合)
运动捕捉系统的速度估计器和对接的开发和测试
实验数据的监控
参考文章:
25篇文献对活性氧的初步研究和总结
机器人编程如何正确入门—— ROS 硬公开课(附视频/PPT)Top刘
ROS教程的官方示例
创客智造ROS入门精修
带stm32底盘的Ros手推车
ROS工业
ROS应用篇
学习Python语言和ROS开发
网站:http://www.ncnynl.com/category/Python/
网站:http://www.ncnynl.com/category/ros-python/
角色:了解Python语言以及如何开发ROS程序,学习C语言,开发ROS。
网站:http://www.ncnynl.com/category/cplusplus/
网站:http://www.ncnynl.com/category/roscpp/
作用:了解C语言,如何开发ROS程序学习SLAM。
网站:http://www.ncnynl.com/category/ros-rgbd/
网站:http://www.ncnynl.com/category/ros-laser/
网站:http://www.ncnynl.com/category/ros-slam/
网站:http://www.ncnynl.com/category/rgbd-slam/
作用:学习如何结合各种传感器实现SLAM学习无人机关联。
网站:http://www.ncnynl.com/category/ros-ardrone/
网站:http://www.ncnynl.com/category/ros-bebop/
角色:学习如何通过ROS控制无人机,了解机械臂
网站:http://www.ncnynl.com/category/turtlebot-arm/
网站:http://www.ncnynl.com/category/ros-moveit/
角色:通过ROS参考书学习如何控制机械臂
《Programming Robots with ROS: A Practical Introduction to the Robot Operating System》-摩根奎格利、布莱恩格基、威廉斯马特
《A Mathematical Introduction to Robotic Manipulation》理查德m默里,李泽湘,S尚卡尔萨斯特里_机器人控制理论基础入门书籍。作为一个平台,ROS很好用,但难点在于机器人控制算法的应用。
055-79000廖雪峰Python 2.7教程教程ROS编程语言基本都是基于C和Python的。
ROS误差
#实验平台
Linux系统:Ubuntu14.04
罗斯:靛蓝
#ROS安装
详细步骤可以参考《C++ primer》的第二章,写的很详细。
安装配置rosdep配置环境变量验证
#ROS基本概念和操作
软件包ROS软件包
是
用于实现特定功能的相关文件的集合,包括可执行文件和其他支持文件。在ROS中,所有的软件都被组织成软件包。
例如,Turtlesim包包含turtlesim_node和turtle_teleop_key可执行文件,以及其他一些可执行文件和配置文件。
Rospack列表//系统中已安装的ROS包列表ROS pack find package-name//找到包的目录rosls package-name//找到文件roscd package-name //切换到sudo apt-get install ROS-indigo-package _ name//并安装新的包例如:sudo apt-get install ROS-indigo-slam-g mapping//apt-cache search ROS-indigo//可用包Master在ROS系统中,几个相对独立的节点(applets)可以同时运行,节点管理器是实现节点间通信的关键部分。
大多数ROS节点在启动时连接到节点管理器。
Roscore //启动节点管理器节点是独立的可执行文件,ROS程序的运行实例称为节点程序。
例如,在turtlesim示例中,turtlesim功能包中的turtlesim _ node节点程序和
Turtle_teleop_key节点程序,两个节点相互独立,每个节点执行自己的。
ROS package-name executable-name//运行节点ROS run package-name executable-name _ _ name:=node-name//记得之前配置好环境变量,或者将setup.bash脚本写入source/opt/ROS/indigo/setup . bash source/home/Hualong/ROS/devel/setup . bashrosnode info node-name//打印节点信息、主题和消息,消息以有组织的方式存储在主题中。
消息传递的思想是:当一个节点想要分享信息时,它会将消息发布到一个或多个对应的主题上;当一个节点想要接收信息时,它将订阅一个或多个它需要的主题。ROS节点管理器负责确保发布节点和订阅节点可以找到彼此。
因此,节点之间通过主题机制进行通信,这是一种一对多的发布/订阅模式:同一个主题也可以有多个订阅者,其底层传输依赖于TCP/IP或UDP。Topic专门传递消息,消息有一定的类型和数据结构,包括ROS提供的标准类型和用户自定义类型。
如图所示/teleop_turtle节点和/turtlesim节点通过Topic /turtle1/cmd_vel进行通信。
/teleop_turtle节点会将这些运动控制命令
发 布
以消息的形式发送给topic/turtle 1/cmd _ vel;Turtlesim_node
订阅
讲过这个话题,所以它会收到这些消息,控制海龟以预定的速度移动。#ROS编程开始
ROS工作区目录结构
操作程序
一.创建工作台
在这里,我在用户的主目录(也就是我的工作台)中创建了一个ros文件夹,并创建了一个src子目录来存储源文件。
二。创建软件包
在src目录中执行
catkin_creat_pkg package_name
。三。文件包中文件的编制和修订
编写可执行文件。这个是根据任务需求写的,语言格式可以是C,python等。修改配置文件CMakeLists.txt package.xml以声明依赖库。
声明程序所依赖的其他功能包,从而保证柳絮可以为C编译器提供合适的标签,定位编译功能包所需的头文件和链接库。1).操作CMakeLists.txt文件。
原始文档:
find_package(catkin REQUIRED)
find_package(catkin REQUIRED COMPONENTS package-names)
roscpp
:提供ROS的C客户端库std_msgs
:提供ROS消息类型的库2).操作package.xml文件
原始文件:在buildtool _ depend柳絮/buildtool _ depend下
添加:
编译依赖项
运行依赖关系
格式:
构建依赖包名称/构建依赖
运行依赖包名称/运行依赖
[一般是CMakeLists.txt中声明的对应库]
例如添加
构建_ dependroscpp/构建_依赖
运行_ dependroscpp/运行_依赖
声明可执行文件是关键的一步,因为这些是最终运行ROS节点程序的可执行文件。
3).操作CMakeLists.txt文件
在# add_executable(${PROJECT_NAME}_node src/agitr_node.cpp)下
//声明我们想要的可执行文件的文件名,以及生成这个可执行文件所需的源文件列表
add_executable(executable-name source-files)
。//如果有多个由空格分隔的源文件
在# target_link_libraries(${PROJECT_NAME}_node下方
//告诉第一种当链接此可执行文件时,需要链接哪些库(就是上面的查找_包中定义的)
target_link_libraries(executable-name ${catkin_LIBRARIES})
例如:
add_executable(hello hello.cpp)
目标_链接_库(你好$ {柳絮_库})
add_executable(pub pub.cpp)
添加可执行文件(sub sub CPP)
目标_链接_库(发布$ {柳絮_库})
目标_链接_库(子美元{柳絮_库})
四。编译
在工作台活性氧簇(活性氧物种的缩写)目录下柳絮_制作设置环境变量source devel/setup.bash查看软件包罗斯佩克列表五。执行
启动终端罗斯科雷另外启动一个终端先配置环境变量再执行sourc/home/Hualong/ROS/devel/setup。狂欢跑包名节点名可以查看执行图rqt _图表可以添加环境变量到/home/user_name/.没有则创建
vim /home/user_name/.没有则创建在低行添加sourc/home/Hualong/ROS/devel/setup。尝试
echo " sourc/home/Hualong/ROS/devel/setup。bash " ~/.没有则创建
操作实例第一个你好_罗斯软件包
测试发布和订阅的发布_订阅_测试软件包