2015-12-16 129 views
3

BACKSTORY

有一天,我發現一個摩托輪椅,有人扔掉了。作爲一個花費大量時間研究其他人在網上製作的製作人,我決定抓住它並試圖製造一臺機器人。我還購買了Arduino mega,Kinect傳感器和電機控制器,試圖控制電機併爲其提供某種形式的視覺。接口ROS和arduino

MY VISION

老實說,我不打算讓這個機器人比一個有趣得多,和具有挑戰性的,項目。我目前的目標是讓它運行SLAM算法,找出它在地圖上的位置,並導航到地圖上的預定點。然而,在這一點上,我會很高興能夠用鍵盤做一個簡單的遠程控制。

我的問題

我花了過去一週研究ROS和如何得到它跟我的Arduino。我已經安裝了diff_drive_controllerTurtlebotros_controlros_serialros_arduino_bridge,和其他幾個人試圖找到的東西,會告訴電機做什麼。現在,我覺得我對於ros的工作原理幾乎不瞭解。基本上有一系列節點,每個節點發布信息供其他節點查看和訂閱他們想要閱讀的信息。我現在想要的是一個節點,它根據試圖導航或遠程控制或類似的方式發佈有關電機速度的數據。我認爲turtlebot是我最好的選擇,因爲考慮到它是一個能夠完成我想要的任何事情的全能產品。唯一的問題是我沒有一個iRobot創建。但它似乎應該足夠簡單,可以攔截這些命令並讓它們驅動我自己的機器人基礎。不過,我不確定要聽哪個主題,以及如何以不嘗試連接到iRobot創建的方式運行turtle bot。我可以只聽聆聽/ cmd_vel_mux/input/teleop主題,但我認爲這會限制我進行teleop,並且可能會使它很難在未來繼續使用自主權。

我應該聽什麼話題呢?我是否以正確的方式去做這件事?有沒有更適合我需求的軟件包?請記住,我是新來的羅斯教程,將不勝感激。

我期待着你的迴應

感謝,洛根

+0

你真的需要ROS嗎?此外,爲什麼不問[Robotics Stackexchange](http://robotics.stackexchange.com)? –

+0

老實說,我不知道有一個Robotics Stackexchange。你會推薦我使用除了ros以外的其他創建自主機器人嗎? – Logan

+1

有一些沒有ROS的Arduino SLAM實現 - 老實說,ROS大部分時間都是一團糟,有時甚至連教程都不起作用,文檔也不會一直更新。只是我的主觀印象:-) –

回答

2

尼斯探空項目列表!我的第二個建議,看看教程,但我覺得你花更多的時間與基本ROS tutorials跳水前到Arduino的+ ROS的世界。

例如,我注意到一個誤解,我相信你可能有。節點偵聽哪個主題並不重要,因爲它只是一個可以通過啓動節點時給定的參數輕鬆重新映射的名稱。重要的是要確保你在聽郵件右側類型 - 它們指定由所有不同的節點進行通信的接口。有一個bunch of options,如果它們都不符合你的用例,你可以定義你自己的。

我懷疑是低層次的東西,比如你的電機驅動程序,你需要編寫自己的ROS節點。對於高級功能,如SLAM;有各種各樣的選擇。你可以找到一個適合你從傳感器獲得的輸入數據。

最後一個建議是利用ROS的特性,使您可以將大問題分解爲可管理的子任務。一次做一件事 - 實施一個電機控制器,編寫一個遙控操作方法;注意在每個點指定合適的界面。這種方法的優點是,如果您在定義具有良好接口的單個​​組件時做出了明智的選擇,那麼如果您願意,可以很容易地將其替換爲另一個組件。

+0

所以讓我直接得到這個,而不是訂閱像'/ cmd/vel'這樣的主題,我應該只需訂閱所有'turtle_actionlib/velocity'消息。如果是的話,我怎麼能迴應終端,看看發生了什麼,也許調查一些消息的輸出。 – Logan

+0

@Logan不熟悉該消息類型,但基本上是。重要的是要確保消息的類型符合您的電機驅動程序所期望的輸入。例如,['geometry_msgs/Twist'](http://docs.ros.org/api/geometry_msgs/html/msg/Twist.html)是速度控制的典型代表。您可以使用['rostopic'](http://wiki.ros.org/rostopic)命令行工具和'echo'選項來回應任何有關任何主題的內容。此外,['rosmsg'](http://wiki.ros.org/rosmsg)允許您進一步檢查消息。 – mikkola

1

您可以找到教程如何連接的Arduino和ROS here.