博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]RoboWare Studio的使用和发布器/订阅器的编写与测试
阅读量:7251 次
发布时间:2019-06-29

本文共 2324 字,大约阅读时间需要 7 分钟。

原文地址:https://blog.csdn.net/han_l/article/details/77772352,转载主要方便随时查阅,如有版权要求,请及时联系。

开始ROS学习之前,先按照官网教程和其他老大们写的博客安装好ROS,再安装一个RoboWare-Studio,虽然用Qt和Eclipse也行,但比较麻烦,这个很方便。

RoboWare StudioROS的一款IDE,基于微软开源的VSCode开发,功能比较强大,使得开发更加快速、简单。是目前最好用的ROS开发工具了。

整个安装过程非常简单,只要去官网,下载最新的安装包,然后双击安装即可。

 

按照大多网络教材的顺序,我们先来做一个发布器和订阅器。步骤如下:

1.在RoboWare-Studio里的工作区间下新建一个包beginner_tutorials,依赖项是std_msgs,roscpp.
2.在_tutorials包下的src里创建两个cpp源文件talker和listener。
talker文件内容如下:

1 #include"ros/ros.h"//导入ros核心头文件 2 #include"std_msgs/String.h"//导入std_msgs/String消息头文件,由std_msgs包的string.msg文件自动生成 3 #include
4 int main(int argc, char **argv) 5 { 6 ros::init(argc, argv, "talker");//初始化ROS,指定节点名为talker 7 ros::NodeHandle n;//实例化节点 8 ros::Publisher chatter_pub=n.advertise
("chatter",1000);//发布一个名为chatter的的话题的消息,消息类型为std_msgs/String,消息队列大小为1000,超过后旧的消息丢弃 9 ros::Rate loop_rate(10);//发消息的频率,这里指每秒10次,通过 Rate::sleep()来处理睡眠的时间来控制对应的发布频率。10 int count=0;11 while(ros::ok())//默认roscpp会植入一个SIGINT处理机制,当按下Ctrl-C,就会让ros::ok()返回false,那循环就会结束12 {13 std_msgs::String msg;14 std::stringstream ss;15 ss<<"hello world"<

listener里的内容如下:

1 #include"ros/ros.h" 2 #include"std_msgs/String.h" 3  4 void chatterCallback(const std_msgs::String::ConstPtr& msg) 5 { 6     ROS_INFO("I heared :[%s]",msg->data.c_str()); 7 }//回调函数,收到chatter话题时会调用这个函数,消息通过boost shared_ptr(共享指针)传递,收到消息通过ROS_INFO显示到终端 8 int main(int argc, char **argv) 9 {10     ros::init(argc, argv, "listener");11     ros::NodeHandle n;12     ros::Subscriber sub=n.subscribe("chatter",1000,chatterCallback);//订阅节点13     ros::spin();//调用此函数才能进入循环处理,直到ros::ok返回false结束14     return 0;15 }

通过Roboware-studio编写,package.xml和CMakeLists.txt不需要修改,会帮我们修改好。

3.点击左上角资源管理器边上的小锤子进行编译,有错误的话会报。
4.上方菜单栏的ROS里的roscore点一下,也可以<Ctrl>+<Alt>+T打开终端运行roscore。
5.在终端里到工作空间下source一下setup.sh文件

1 # In your catkin workspace

2 $ cd ~/catkin_ws

3 $ source ./devel/setup.bash 

6.在两个终端里分别rosrun talker和listener

1 $ rosrun beginner_tutorials talker      (C++)2 $ rosrun beginner_tutorials talker.py   (Python) 3 4 5 $ rosrun beginner_tutorials listener      (C++)6 $ rosrun beginner_tutorials listener.py   (Python)

7.验证一下成功后<Ctrl>+c关闭两个终端

参考网站:

http://www.php8.org/fwq/90575.html

http://www.rosclub.cn/post-591.html

转载于:https://www.cnblogs.com/qiuheng/p/9122423.html

你可能感兴趣的文章
linux 2.6x内核升级
查看>>
pxe
查看>>
NFS网络文件系统安装
查看>>
网页嵌入自动生成当前网页二维码图片代码
查看>>
Linux时间同步服务
查看>>
Python基础-----列表、元组、集合(2)
查看>>
iptables详解
查看>>
Redisson官方文档 - 12. 独立节点模式
查看>>
AD域笔记
查看>>
HTTP协议详解
查看>>
apache实现多端囗多域名配置
查看>>
Linux命令(15):type命令
查看>>
第一单元作业
查看>>
Azure云端部署Exchange 2016双数据中心—Part6(DAG切换测试)
查看>>
通过ansible部署高可用LNAMMKP架构
查看>>
IBM Aix系统添加硬盘步骤
查看>>
“esxcli software vib” commands to patch an ESXi 5.x/6.x host (2008939)
查看>>
heartbeat管理与虚拟IP介绍
查看>>
Syslog-ng+Rsyslog收集日志:RELP可靠传输,替代UDP、TCP(五)
查看>>
课程第八天内容《基础交换八》补充案例
查看>>