RoboWare Studio 安裝


RoboWare Studio是一個ROS集成開發環境。它使 ROS開發更加直觀、簡單、並且易於操作。可進行ROS工作區及包的管理、代碼編輯、構建及調試。

下載鏈接:https://pan.baidu.com/s/1D169dFyf2OD3SFBZVZy3pQ   密碼:3iuk

准備

安裝前,請查看系統環境並確認:
(1)操作系統 為 Ubuntu。
(2)已完成ROS的安裝配置。ROS安裝步驟可參照官方網站:
         http://wiki.ros.org/kinetic/Installation/Ubuntu
(3)可使用 catkin_make 構建ROS包。若無法構建,可能需要運行:

$ sudo apt-get install build-essential
(4)為支持 Python 相關功能,需要安裝 pylint。

$ sudo python -m pip install pylint
$ sudo apt-get install python-pip
(5)為支持 clang-format 相關功能,需要安裝 clang-format-3.8 或更高版本。

$ sudo apt-get install clang-format-3.8
安裝

下載Roboware Studio最新版,在下載的文檔下,鼠標右鍵調出終端輸入:

$ sudo dpkg -i roboware-studio_<version>_<architecture>.deb
i386為32位版本,amd64為64位版本

輸入安裝包的名字時,可以tab鍵自動補全~!

安裝過程會彈出 用戶協議 可以按 ESC 選擇確認!

安裝過程會彈出 用戶協議 可以按 ESC 選擇確認!

安裝過程會彈出 用戶協議 可以按 ESC 選擇確認!(坑了好多人,重要的事說三遍~!)

啟動

    圖標就是這個

點擊圖標打開軟件:

 

新建工作區,選擇用戶目錄下 ,名稱 :catkin_ws

 


進來后就是這個樣子:

 


選擇Release , 然后在上面菜單欄ROS點擊構建:

 

構建之后:

 

測試ros是否正常運行,運行roscore :

 

測試正常~! ctrl + c 取消


新建一個包:

 

更改 package.xml 信息(隨便按鍵盤字母就能輸入了):

左上角 文件--保存

編輯依賴的ROS包列表

CMakeLists.txt 自動更新依賴關系:

ctrl + ` 調出roboware studio終端
在工作空間編譯一下lee_package:

 

創建ROS消息和ROS服務
右鍵包名,新建Msg文件夾:

 

 

 

保存。


CMakeLists.txt 自動加入一些運行依賴(如果不用這個IDE必須手動添加):

 

 

 

這個軟件的強大開始體現~!


測試下msg:

OK~!


創建一個Srv空文件夾:
srv文件分為請求和響應兩部分,由'---'分隔。下面是srv的一個樣例:
int64 A
int64 B
---
int64 Sum
其中 A 和 B 是請求, 而Sum 是響應。

 

 

同樣的CMakeLists.txt 自動添加:

下面通過rossrv show命令,檢查ROS是否能夠識該服務

重新編譯我們的package:

編譯完成!
所有在msg路徑下的.msg文件都將轉換為ROS所支持語言的源代碼。
生成的C++頭文件將會放置在:
~/catkin_ws/devel/include/lee_package/
Python腳本語言會在:
~/catkin_ws/devel/lib/python2.7/distpackages/lee_package/msg 目錄下創建。
lisp文件會出現在:
~/catkin_ws/devel/share/commonlisp/ros/lee_package/msg/ 路徑下.

創建消息發布器 talker 和訂閱器 listener :

 

#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 ros~!" << count;
msg.data = ss.str();
ROS_INFO("%s",msg.data.c_str());
chatter_pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
++count;
}
return 0;
}


#include "ros/ros.h"
#include "std_msgs/String.h"
void chatterCallback(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "listener");
ros::NodeHandle n;
ros::Subscriber sub = n.subscribe("chatter", 1000,chatterCallback);
ros::spin();
return 0;
}
現在運行 catkin_make:

成功編譯~!


編寫發布器和訂閱器:
啟動發布器
確保roscore可用,並運行:

新終端中:
$ rosrun lee_package talker
啟動訂閱器
上面我們編寫了一個名為"listener"的訂閱器節點。現在新終端中運行它:
$ rosrun lee_package listener


編寫簡單的服務器和客戶端:


#include "ros/ros.h"
#include "lee_package/AddTwoInts.h"
bool add(lee_package::AddTwoInts::Request &req,lee_package::AddTwoInts::Response &res)
{
res.sum = req.a + req.b;
ROS_INFO("request: x=%ld, y=%ld", (long int)req.a, (long int)req.b);
ROS_INFO("sending back response: [%ld]", (long int)res.sum);
return true;
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "add_two_ints_server");
ros::NodeHandle n;
ros::ServiceServer service = n.advertiseService("add_two_ints",add);
ROS_INFO("Ready to add two ints.");
ros::spin();
return 0;
}

#include "ros/ros.h"
#include "lee_package/AddTwoInts.h"
#include <cstdlib>
int main(int argc, char **argv)
{
ros::init(argc, argv, "add_two_ints_client");
if (argc != 3)
{
ROS_INFO("usage: add_two_ints_client X Y");
return 1;
}
ros::NodeHandle n;
ros::ServiceClient client = n.serviceClient<lee_package::AddTwoInts>("add_two_ints");
lee_package::AddTwoInts srv;
srv.request.a = atoll(argv[1]);
srv.request.b = atoll(argv[2]);
if (client.call(srv))
{
ROS_INFO("Sum: %ld", (long int)srv.response.sum);
}
else
{
ROS_ERROR("Failed to call service add_two_ints");
return 1;
}
return 0;
}
現在運行catkin_make命令:

 


分別在兩個終端中運行下面指令:
$ rosrun lee_package add_two_ints_server
$ rosrun lee_package add_two_ints_client 3 5

 

 

參考資料:

ROS官方wiki:http://www.ros.org

roboware官網:http://www.roboware.me

----------------------------------------------------------------

 


歡迎大家轉載我的文章。
---------------------
作者:宇智波罩
來源:CSDN
原文:https://blog.csdn.net/qq_41450811/article/details/80305846
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM