在ubuntu16上用vscode编译ros历程记录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在ubuntu16上用vscode编译ros历程记录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3603字,纯文字阅读大概需要6分钟。
内容图文
![在ubuntu16上用vscode编译ros历程记录](/upload/InfoBanner/zyjiaocheng/933/d28677196ae94ea6bd1dd8abfe9a31e9.jpg)
记录一下ubuntu16上用vscode编译ros的过程
拓展中搜索并安装ROS插件
配置文件:tasks.json
Ctrl+Shift+P: Configure Default Build Task
在新增的tasks.jsonz中配置如下内容
{
"version": "2.0.0",
"tasks": [
{
"type": "catkin_make",
"problemMatcher": [
"$catkin-gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"label": "catkin_make: build"
}
]
}
Ctrl+Shift+P
创建一个ros包 :ROS:Create Catikin Package
命名为myros
在myros包的src新建myros_node.cpp文件
myros_node.cpp
#include "ros/ros.h" #include "std_msgs/String.h" #include <sstream> class myclass { private: int hello; public: int get_hello(void) { return this->hello; } }; /** * This tutorial demonstrates simple sending of messages over the ROS system. */ int main(int argc, char **argv) { /** * The ros::init() function needs to see argc and argv so that it can perform * any ROS arguments and name remapping that were provided at the command line. * For programmatic remappings you can use a different version of init() which takes * remappings directly, but for most command-line programs, passing argc and argv is * the easiest way to do it. The third argument to init() is the name of the node. * * You must call one of the versions of ros::init() before using any other * part of the ROS system. */ ros::init(argc, argv, "talker"); /** * NodeHandle is the main access point to communications with the ROS system. * The first NodeHandle constructed will fully initialize this node, and the last * NodeHandle destructed will close down the node. */ ros::NodeHandle n; /** * The advertise() function is how you tell ROS that you want to * publish on a given topic name. This invokes a call to the ROS * master node, which keeps a registry of who is publishing and who * is subscribing. After this advertise() call is made, the master * node will notify anyone who is trying to subscribe to this topic name, * and they will in turn negotiate a peer-to-peer connection with this * node. advertise() returns a Publisher object which allows you to * publish messages on that topic through a call to publish(). Once * all copies of the returned Publisher object are destroyed, the topic * will be automatically unadvertised. * * The second parameter to advertise() is the size of the message queue * used for publishing messages. If messages are published more quickly * than we can send them, the number here specifies how many messages to * buffer up before throwing some away. */ ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000); ros::Rate loop_rate(10); /** * A count of how many messages we have sent. This is used to create * a unique string for each message. */ int count = 0; while (ros::ok()) { /** * This is a message object. You stuff it with data, and then publish it. */ std_msgs::String msg; std::stringstream ss; ss << "hello world " << count; msg.data = ss.str(); ROS_INFO("%s", msg.data.c_str()); /** * The publish() function is how you send messages. The parameter * is the message object. The type of this object must agree with the type * given as a template parameter to the advertise<>() call, as was done * in the constructor above. */ chatter_pub.publish(msg); ros::spinOnce(); loop_rate.sleep(); ++count; } return 0; }
新建的文件提示找不到下面两个头文件。
#include "ros/ros.h"
#include "std_msgs/String.h"
此时:Ctrl+Shift+B进行编译错误就会消失。
在myros包下的CMakeLists.txt取消注释得到如下图的三条语句
再Ctrl+Shitf+B进行编译
编译成功后:Ctrl+Shift+P在出现大框框中分别执行:
ROS:start core
和
ROS:Run a Ros excutable -> myros->myrosnode
执行结果:
内容总结
以上是互联网集市为您收集整理的在ubuntu16上用vscode编译ros历程记录全部内容,希望文章能够帮你解决在ubuntu16上用vscode编译ros历程记录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。