RoboWare Studio是专门针对ROS开发的集成开发环境,方便创建、初始化以及编译ROS的工作空间和功能包。
下载方式:
1 RoboWare官网:http://www.roboware.me/#/home(自己尝试过,暂时登不进去)
2 网盘链接1: https://pan.baidu.com/s/18NJqUEoYzK4y23zFmKl5XA 提取码: nibq
网盘链接2:https://pan.baidu.com/s/1D169dFyf2OD3SFBZVZy3pQ 密码:3iuk
3 官方GitHub链接:https://github.com/TonyRobotics/RoboWare
安装步骤
1 安装前
(1)操作系统为ubuntu系统
(2)完成ROS系统安装
(3)安装pylint,支持python相关功能
sudo apt-get install python-pip
sudo python -m pip install pylint
(4)安装clang-format-3.8或其他版本,支持clang-format相关功能
sudo apt-get install clang-format-3.8
2 安装
根据上面几种下载方式,下载RoboWare Studio,存放在Downloads文件夹下
进入Downloads文件,并进行安装
cd ~/Downloads
sudo dpkg -i roboware-studio_1.1.0-1514335284_amd64.deb
3 安装后
直接在终端打开
roboware-studio
基础使用
1 新建工作区
2 点击release,再进行build
3 创建功能包
(1)右击src,点击Add ROS Package
(2)更改package.xml信息(根据自己的邮箱填写),然后ctr+s进行保存
(3)编辑依赖的ROS包列表,一般添加roscpp,rospy,std_msgs,根据自己实际需要进行填写
可以查看CMakeList.txt,依赖关系已经进行更新
(4)ctr+`,调出terminal,输入catkin_make,对test功能包进行编译
4 创建ROS消息
此时CMakeLists.txt 会自动加入以上设置
5 创建src文件夹
6 创建消息发布器talker和订阅器listener
同理,创建listener.cpp
7 输入程序,并分别保存
talker.cpp
#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;
}
listener.cpp
#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;
}
8 运行catkin_make,编译成功
9 终端输入
source devel/setup.bash //非常重要!!!
10 终端输入roscore
roscore
11 分别开启talker和listener订阅器
rosrun test talker
rosrun test listener
实现消息的传输啦!!!