你自己有一个机器人,如何将你学到的ROS与之连接呢?

自己学了不少时间的ROS,都是根据ros by example vol 1 indigo走的,遇到需要实际机器人的地方就直接跳过,但是光在电脑上模拟总不是办法,而ros by example vol 1 indigo中推荐的硬件ROS平台呢都是国外的(turtleBot,PR2等),国内也很难买到(归根结底就是穷,有钱啥买不到)。

那如果我们自己有(或者公司有,偷笑脸)一个非ROS平台的机器人,如何让ROS能够控制这个机器人呢,这个好像涉及得很少,貌似大家都忽略了这一部分,搞得好像别人都有自己的ROS平台就我没有一样。好在在ROS WIKI上找到了这个玩意http://wiki.ros.org/ros_control。

这次来分析一下这个ros_controller包。

里面有个slide做的真是不错,通俗易懂。首先假设我们已经写好(抄好)了我们要用的ROS程序,迫不及待想在机器人上试试,找了个根本不支持ROS的机器人,突然发现好像中间缺了什么,卧槽,这怎么搞。这就是下图中缺失的那块东西。

你自己有一个机器人,如何将你学到的ROS与之连接呢?_第1张图片
Paste_Image.png

填上以后,就变成这个模样,卧槽,这就是我需要的啊。天哪,我所要的就是屎黄色框内的所有东西。一个控制程序,和一块控制硬件

你自己有一个机器人,如何将你学到的ROS与之连接呢?_第2张图片
Paste_Image.png

再细化一点,就是下面这个样子

你自己有一个机器人,如何将你学到的ROS与之连接呢?_第3张图片
Paste_Image.png

和仿真对比,有什么区别呢,看下图就是


你自己有一个机器人,如何将你学到的ROS与之连接呢?_第4张图片
Paste_Image.png

也就是说,在仿真时,我们用gazebo创建虚拟机器人,然后在rviz虚拟环境中运动,在现实中,gazebo变成了真实的机器人的输入和输出,将一些运动封装好之后,通过ros_control建立虚拟与实际的接口,进行控制机器人。

你可能感兴趣的:(你自己有一个机器人,如何将你学到的ROS与之连接呢?)