栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

跟着师兄一起学ROS之hello

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

跟着师兄一起学ROS之hello

ROS学习之hello_world
  • ROS学习2021.09.29 hello_world
    • 创建工作空间
    • 创建功能包
      • 说明
    • C++实现ros的helloworld
    • 修改CMAKELIST
    • 执行文件
    • 优化操作

ROS学习2021.09.29 hello_world 创建工作空间
mkdir -p 自定义空间名称/src #创建工作空间 
cd 自定义空间名称                  #打开进入
catkin_make                           #编译
#创建空间和功能包
mkdir -p hello_world/src
cd hello_world
catkin_make
创建功能包
#创建功能包
cd src
#catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs
catkin_create_pkg hello_world roscpp rospy std_msgs
cd hello_world
 touch hello_world.cpp

说明

#touch files.name 在工作目录下创建文件
#mkdir + (-p)dirname/test 在工作目录(强制创建文件夹)
#上述命令,会在工作空间下生成一个功能包,该功能包依赖于 roscpp、rospy 与 std_msgs
#其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库
#创建ROS功能包时,一般都会依赖这三个库实现。
#工作空间里面第一个src是功能包第二层src是放置源文件的

C++实现ros的helloworld
#C++实现hello_world
//1.包含ROS头文件
#include "ros/ros.h"
//2.编写main函数
int main(int argc ,char* argv[]){
 //3.初始化ros节点
    ros::init(argc,argv,"hello_node");
 //4.输出日志
    ROS_INFO("hello world!");
    return 0;
}
修改CMAKELIST
#修改CMAKELIST
###改这里,去掉注释
 add_executable(hello src/hello_world.cpp)#有两个参数后面那个是刚才编写的源文件,${PROJECT_NAME}_node,
 #第一个参数是执行时候起的名,可以任意命名,这里命名为hello,意思是通过前者映射到后面的源文件
###改这里,去掉注释
 target_link_libraries(hello   # ${PROJECT_NAME}_node 第一个参数是执行时候起的名
   ${catkin_LIBRARIES}
 )

#然后返回工作空间 打开终端编译
cd ~/hello_world
catkin_make

最后显示百分百执行
执行文件
#执行文件
另外启动一个终端 ctl+ALT+T
roscore #确保启动核心,然后执行源文件,返回原终端,在工作空间下执行源文件
source ./devel/setup.bash#刷新环境变量,固定的命令
rosrun  hello_world(功能包名)  hello(cmakelist 中的映射名)

优化操作
##优化操作
#source ./devel/setup.bash 将当前工作空间环境变量刷新到当前终端
解决局限性方法:
根目录 ctl+H
.bashrc 文件中添加 source ~/demo_ws(工作空间)/devel/setup.bash
然后保存,打开终端 
source .bashrc 
在任意终端都可以打开该demo

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290420.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号