ros操作系统 入门,ros 使用

  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 " ~/.没有则创建

  操作实例第一个你好_罗斯软件包

  测试发布和订阅的发布_订阅_测试软件包

ros操作系统 入门,ros 使用