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
版权声明:本文为博主原创文章,转载请附上博文链接!

RoboWare Studio 安装的更多相关文章

  1. ROS集成开发环境RoboWare Studio安装教程

    前言:很多人说vim是最快的,所以我选择用roboware. ROS 自带的编辑器vim增加插件,效果如下: RoboWare Studio,效果如下: 下面开始安装. 一.安装 去官网 http:/ ...

  2. [转]RoboWare Studio的使用和发布器/订阅器的编写与测试

    原文地址:https://blog.csdn.net/han_l/article/details/77772352,转载主要方便随时查阅,如有版权要求,请及时联系. 开始ROS学习之前,先按照官网教程 ...

  3. Zend Studio安装详解

    本篇文章介绍Zend Stuido安装 PHP安装请参考 http://www.cnblogs.com/azhe-style/p/php_new_env_build.html 一.下载 百度Zend ...

  4. 安卓开发第一步:Android Studio安装配置

    虽然本人是JAVA开发工程师平时主要开发Web App,但因为项目需求需要开发对应的移动端.一时又找不到合适的安卓开发人员,兄弟我只好被项目经理"抓来当壮丁了".俗话说好" ...

  5. Android开发快速入门(环境配置、Android Studio安装)

    Android是一种激动人心的开源移动平台,它像手机一样无处不在,得到了Google以及其他一些开放手机联盟成员(如三星.HTC.中国移动.Verizon和AT&T等)的支持,因而不能不加以学 ...

  6. Android Studio安装更新终极解决方式

    之前写过一篇Android SDK无法更新的博文,其实该方式对Android Studio同样有效,大伙可以下载网盘中分享的小软件,若搜索到通道后提示需要更细,也可以选择更新.参考:http://bl ...

  7. Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)

    鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio  Android Studio 是一个Android开发环境,基于Intel ...

  8. Android Studio安装与配置

    谷歌已经停止支持eclipse开发android了,转向android studio是大势所趋,笔者由于电脑配置的原因, 以前迟迟不愿意向android studio,现如今因为开始学习materia ...

  9. Visual Studio安装卸载模板

    Visual Studio中有两种类型的模板:项目模板和项模板 一.已安装模板: 默认情况下,与产品一起安装的模板位于以下位置: ①\<Visual Studio 安装目录>\Common ...

随机推荐

  1. 史上最简单的 SpringCloud 教程 | 终章

    https://blog.csdn.net/forezp/article/details/70148833转载请标明出处:http://blog.csdn.net/forezp/article/det ...

  2. atitit r9 doc on home ntpc .docx

    卷 p2soft 的文件夹 PATH 列表 卷序列号为 9AD0-D3C8 D:. │  Aittit pato 面对拒绝  的回应.docx │  Atitit  中国明星数量统计 attilax. ...

  3. 程序猿必备的10款web前端动画插件一

    1.动画SVG框架幻灯片 在幻灯片之间切换时显示动画SVG帧的实验性幻灯片.不同的形状可以用来创建各种风格. 我们想和大家分享一个实验幻灯片.我们的想法是在从一个幻灯片转换到另一张幻灯片时,使SVG帧 ...

  4. eclipse下安装windowbuilder(一定要看)

    访问页面https://www.eclipse.org/windowbuilder/download.php,查看更新连接 这个是**连接地址**,要复制粘贴到eclipse里. !! 复制地址!!

  5. mybatis-plus忽略映射字段

    mybatis-plus使用对象属性进行SQL操作,经常会出现对象属性非表字段的情况,忽略映射字段使用以下注解: @TableField(exist = false):表示该属性不为数据库表字段,但又 ...

  6. 【ML入门系列】(一)训练集、测试集和验证集

    训练集.验证集和测试集这三个名词在机器学习领域极其常见,但很多人并不是特别清楚,尤其是后两个经常被人混用. 在有监督(supervise)的机器学习中,数据集常被分成2~3个,即:训练集(train ...

  7. sprintf的Bug

    ]; sprintf(buffer,,,); 这样一般不崩溃,但是10次,有那么一次会崩溃 我只能说后面改成 0.0就可以了...

  8. bootstarpTable load data

    <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> ...

  9. assets下的文件复制到SD卡

    由于assets和res下的文件都只可以读不可以写,那么在程序初始化后,将后期需要使用并且需要修改的文件复制到SD卡.下面代码提供一个工具类,将assets下的任意资源复制到SD卡下. assets下 ...

  10. Git忽略已经被版本控制的文件(添加.gitignore不会起作用)

    说明:已经被维护起来的文件(需要被远程仓库控制),即使加入.gitignore也会无济于事. .gitignore只对那些只存在在本地,而不在远程仓库的文件起作用.(untraked file). 操 ...