Roboware Studio教程 (ROS kinetic)
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 apt-get install python-pip
$ sudo python -m pip install pylint
(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必须手动添加):
这个软件的强大开始体现~!
先运行roscore再测试下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
debug调试
1.首先在程序旁边打一个断点
选择编译的二进制文件 :
选择启动调试:
多了一个调试工具,并且代码执行到黄色高亮处,下面就可以愉快的调试了:
F5一次性执行完,按F11单步调试
参考资料:
ROS官方wiki:http://www.ros.org
roboware官网:http://www.roboware.me
----------------------------------------------------------------
欢迎大家转载我的文章。
转载请注明:转自 抚琴弹出情调零 vx:qiang250571870
Roboware Studio 手册需要的可以下载 https://download.csdn.net/download/qq_41450811/10411256
Roboware Studio教程 (ROS kinetic)相关推荐
- ROS学习系列(一):ubuntu16.04下安装 ROS IDE RoboWare Studio 教程
1.下载RoboWare Studio安装包 不要信从官网下载http://www.roboware.me/#/home 这个网站压根就进不去. 从github上下载安装包,链接https://git ...
- ROS笔记(4) RoboWare Studio 的安装
ROS笔记(4) RoboWare Studio 的安装 1. RoboWare Studio的下载 2. RoboWare Studio的安装 3. RoboWare Studio的开启 4.打开工 ...
- ROS IDE —— RoboWare Studio
RoboWare Studio是ROS的一款IDE,但是它的功能又比较强大,使得开发更加快速.简单. 要安装RoboWare Studio,首先确保你的Ubuntu版本是14.04或者16.04版本, ...
- RoboWare Studio的安装
RoboWare是什么? RoboWare Studio是国人开发的一个ROS系统IDE(集成开发环境),基于微软开源的VSCode内核开发(因此这个界面跟VSCode非常像) ...
- Roboware Studio详细安装教程 (ROS kinetic)以及简单使用
RoboWare Studio是一个ROS集成开发环境.它使 ROS开发更加直观.简单.并且易于操作.可进行ROS工作区及包的管理.代码编辑.构建及调试. 安装包下载 1 RoboWare官网:htt ...
- 在Ubuntu18.04中安装ROS IDE RoboWare Studio 和Visual Studio Code
安装ROS IDE 前言 一.安装RoboWare Studio 二.安装Visual Studio Code 参考文献 前言 一款好的开发工具可以是开发效率提升,ROS官方推荐了常用的ROS开发环境 ...
- ROS kinetic外接Realsense D435i跑ORB_SLAM2教程
本机环境:window10+vmware+ubuntu16.04+ROS kinetic+Intel Realsense D435i 基本步骤就四步: 1.配置好Realsense的SDK以及ro ...
- ROS_Kinetic_01 在 Ubuntu 16.04 安装ROS Kinetic 全教程附资料和镜像 2018.10.20更新
Exbot易科机器人实验室新站点(测试中):http://server.blackant.org:23452/ 2018 ROS Melodic的迷失与救赎::https://blog.csdn.ne ...
- 【Ubuntu16.04】ROS · Kinetic安装 · 图文教程与问题详解
ROS 安装 1. 设置安装源 在终端输入指令:(同下) sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors ...
最新文章
- [JAVA] java仿windows 字体设置选项卡
- spring aop 拦截业务方法,实现权限控制
- lucene索引文件大小优化小结
- postman 以全局变量活用 Token
- 天翼云从业认证(2.1)云计算的定义、特点、背景和发展历程
- java.lang.NoClassDefFoundError comfasterxmljacksonannotationJsonView
- Java排查问题随笔
- Juniper基础系列之一---vlan的建立
- linux系统python的版本怎么升级,python---linux下升级python的版本
- Integer的常用方法和String类型的常用方法
- 基于神念TGAM的脑波小车(1)
- c语言if的作用,c语言if语句的用法
- 云杰恒指:9.3恒指期货早盘资讯
- virt-install命令参数
- 应用数学是关于计算机,应用数学学科
- 你给员工吃肉,你将迎来一群狼!
- 地理坐标系和投影坐标系的联系_收藏| 地图投影系列介绍(二)——地理坐标系...
- 电子电气架构车载网关系列——网关主要应用场景及相关要求
- (转)2008年精典骗术, 2009年你还会上当吗?
- 5-06特征变换代码