自己學(xué)了不少時(shí)間的ROS,都是根據(jù)ros by example vol 1 indigo走的捶码,遇到需要實(shí)際機(jī)器人的地方就直接跳過羽氮,但是光在電腦上模擬總不是辦法,而ros by example vol 1 indigo中推薦的硬件ROS平臺(tái)呢都是國外的(turtleBot惫恼,PR2等)档押,國內(nèi)也很難買到(歸根結(jié)底就是窮,有錢啥買不到)祈纯。
那如果我們自己有(或者公司有令宿,偷笑臉)一個(gè)非ROS平臺(tái)的機(jī)器人,如何讓ROS能夠控制這個(gè)機(jī)器人呢腕窥,這個(gè)好像涉及得很少粒没,貌似大家都忽略了這一部分,搞得好像別人都有自己的ROS平臺(tái)就我沒有一樣簇爆。好在在ROS WIKI上找到了這個(gè)玩意http://wiki.ros.org/ros_control癞松。
這次來分析一下這個(gè)ros_controller包。
里面有個(gè)slide做的真是不錯(cuò)入蛆,通俗易懂响蓉。首先假設(shè)我們已經(jīng)寫好(抄好)了我們要用的ROS程序,迫不及待想在機(jī)器人上試試哨毁,找了個(gè)根本不支持ROS的機(jī)器人枫甲,突然發(fā)現(xiàn)好像中間缺了什么,臥槽扼褪,這怎么搞想幻。這就是下圖中缺失的那塊東西。
填上以后话浇,就變成這個(gè)模樣举畸,臥槽,這就是我需要的啊凳枝。天哪抄沮,我所要的就是屎黃色框內(nèi)的所有東西。一個(gè)控制程序岖瑰,和一塊控制硬件
再細(xì)化一點(diǎn)叛买,就是下面這個(gè)樣子
和仿真對(duì)比,有什么區(qū)別呢蹋订,看下圖就是
也就是說率挣,在仿真時(shí),我們用gazebo創(chuàng)建虛擬機(jī)器人露戒,然后在rviz虛擬環(huán)境中運(yùn)動(dòng)椒功,在現(xiàn)實(shí)中捶箱,gazebo變成了真實(shí)的機(jī)器人的輸入和輸出,將一些運(yùn)動(dòng)封裝好之后动漾,通過ros_control建立虛擬與實(shí)際的接口丁屎,進(jìn)行控制機(jī)器人。