- ROS学习2021.09.29 hello_world
- 创建工作空间
- 创建功能包
- 说明
- C++实现ros的helloworld
- 修改CMAKELIST
- 执行文件
- 优化操作
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++实现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



