ros开始使用ros


备注

机器人操作系统(ROS)是用于机器人软件开发的机器人中间件,在异构计算机集群和平台上提供类似操作系统的功能。

最初由斯坦福人工智能实验室于2007年开始,在斯坦福人工智能机器人STAIR的支持下,从2008年到2013年开发,迁移到机器人研究所Willow Garage。 2013年,ROS管理权转移到开源机器人基金会。

ROS提供库和工具来帮助软件开发人员创建机器人应用程序。它提供硬件抽象,设备驱动程序,库,可视化器,消息传递,包管理等。 ROS是根据开源BSD许可证授权的。

今天,ROS集成了超过一百个机器人( 参见完整的机器人列表 ),从自动驾驶汽车,无人机到人形机器人以及使用大量ROS支持的传感器( 参见完整的传感器列表 )...... ROS被大量使用研究社区用于服务机器人应用,但其技术可应用于其他应用领域,包括工业机器人。它的应用,如高级感知,路径/把握计划,运动跟踪,可以实现以前技术上不可行或成本过高的制造机器人应用。

ROS目前仅在基于Unix的平台上运行。 ROS软件主要在Ubuntu和Mac OS X系统上进行测试,尽管ROS社区一直在为Fedora,Gentoo,Arch Linux和其他Linux平台提供支持。最终,ROS编码可以用任何编程语言编写,只要它有它的客户端库 ,但目前的重点是提供强大的C ++和Python支持。

今天的ROS推出了它的第10次发布ROS Kinetic

要了解有关ROS和ROS社区工作的更多信息,请访问http://www.ros.org/

版本

Ros Distro 支持的Ubuntu版本发布日期
Kinetic Kame 15.10,16.04 2016年5月23日
玉龟 14.04,14.10,15.04 2015年5月23日
Indigo Igloo 13.10,14.04 2014年7月22日
Hydro Medusa 12.04,12.10,13.04 2013年9月4日
Groovy Galapagos 11.10,12.04,12.10 2012-12-31
富尔特龟 10.04,11.10,12.04 2012-04-23
电动Emys 10.04,10.10,11.04,11.10 2011-08-30
响尾蛇 10.04,10.10,11.04 2011-03-02
C龟 9.04,9.10,10.04,10.10 2010-08-02
盒龟 8.04 2010-03-02

Hello World Publisher

创建工作区

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
 

构建您的工作区

cd ~/catkin_ws/
catkin_make
 

来源您的设置文件

source devel/setup.bash
 

创建一个名为hello_world的新包,其中包含一些基本依赖项

catkin_create_pkg hello_world std_msgs rospy roscpp
 

导航到您的src目录并创建一个名为talker.cpp的新文件

cd hello_world/src
touch talker.cpp
 

编辑新文件并粘贴此代码以发布“hello world”消息

#include "ros/ros.h"
#include "std_msgs/String.h"

#include <sstream>

int main(int argc, char **argv)
{
  ros::init(argc, argv, "talker");

  ros::NodeHandle n;

  ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);

  ros::Rate loop_rate(10);

  int count = 0;
  while (ros::ok())
  {
    std_msgs::String msg;

    std::stringstream ss;
    ss << "hello world " << count;
    msg.data = ss.str();

    ROS_INFO("%s", msg.data.c_str());

    chatter_pub.publish(msg);

    ros::spinOnce();

    loop_rate.sleep();
    ++count;
  }

  return 0;
}
 

返回包目录的根目录

cd ..
 

将这些行添加/取消注释到您的CMakeLists.txt

catkin_package(
 INCLUDE_DIRS include
 LIBRARIES hello_world
#  CATKIN_DEPENDS roscpp rospy std_msgs
#  DEPENDS system_lib
)

include_directories(include ${catkin_INCLUDE_DIRS})

add_executable(talker src/talker.cpp)
target_link_libraries(talker ${catkin_LIBRARIES})
add_dependencies(talker hello_world_generate_messages_cpp)
 

返回工作区的根目录

cd ..
 

建立新的发布者

catkin_make  
 

再次获取您的安装文件,以便拥有新的包和发布者

source devel/setup.bash
 

启动ROS

roscore
 

让roscore保持运行并在新的终端选项卡/窗口中启动您的发布者

rosrun hello_world talker
 

让发布者继续运行,并在另一个新的终端选项卡/窗口中,回显输出

rostopic echo /chatter
 

安装

根据您的目标计算机,您需要选择支持的ROS版本(反之亦然)。尽管在ROS wiki中已经很好地记录了ROS安装,但找到它们可能会让人感到困惑。因此,这里是ROS版本,目标平台和体系结构的表以及相应安装指南的链接:

ROS版本平台状态安装指南链接
动力学 Ubuntu 16.04(Xenial) amd64 / i386 / armhf 支持的 动能Xenial导向
Ubuntu 15.10(Wily) amd64 / i386 支持的 动能威利导向
Debian 8(杰西) amd64 / arm64 支持的 动能杰西导向
OS X(Homebrew) - 试验 动能自制导向
Gentoo的 - 试验 动能Gentoo的指南
OpenEmbedded的/ Yocto - 试验 动能Yocto导向

工作正在进行中...!