开始自己的第一次尝试叭 ~ Hello World
- 本篇是 C++ 版本,如需 python 版本 👉 python 版本指路
ROS 中程序的实现流程:
-
创建工作空间 ( 💙 如
tutu_ws
) ,进入并编译mkdir -p tutu_ws/src cd tutu_ws catkin_make
-
在
src
下创建功能包 ( 💙 如helloworld
) 并添加依赖 ( 💙 如roscpp rospy std_msgs
)- roscpp 是使用 C++ 实现的库,而 rospy 则是使用 python 实现的库,std_msgs 是标准消息库,创建功能包时,一般都会依赖这三个库实现
catkin_create_pkg helloworld roscpp rospy std_msgs
-
在创建的功能包的
src
下创建并编辑源文件 ( 💙 如hello_world.cpp
)cd helloworld/src > hello_world.cpp ## 也可以用 VSC 新建文件 等方式来创建 gedit hello_world.cpp ## 也可以直接在 VSC 中编辑
hello_world.cpp
代码参考#include "ros/ros.h" // 包含 ROS 头文件int main(int argc, char *argv[]) // 编写 main 函数 {ros::init(argc,argv,"hello"); // 初始化 ROS 节点 (自定义名称 hello) ROS_INFO("hello world!"); // 输出 hello worldreturn 0; }
-
编辑创建的功能包下的配置文件 💙
Cmakelist.txt
add_executable(<可执行文件名称> <源代码文件1> <源代码文件2> …) 👉 官方文档指路
- 将
源代码文件
( 💙 如hello_world.cpp
) 编译成一个名为可执行文件名称
(💙 如HELLO_WORLD_TEST
) 的可执行文件
target_link_libraries(<给定目标> <要使用的库或标志>) 👉 官方文档指路
- 指定在链接给定目标 (💙 如
HELLO_WORLD_TEST
) 时要使用的库或标志
## 搜索找到如下两处并对应修改add_executable(HELLO_WORLD_TESTsrc/hello_world.cpp ) target_link_libraries(HELLO_WORLD_TEST${catkin_LIBRARIES} )
- 将
-
回到工作空间目录 ( 💙 如
tutu_ws
),编译并执行cd tutu_ws catkin_makeroscore ## 先在另一个终端启动 ros 核心source ./devel/setup.bash ## 用来修改环境变量 rosrun helloworld HELLO_WORLD_TEST ## rosrun 功能包名 可执行文件名称## 此时可看到输出结果:hello world!
另外,使用ROS需要 C++ 或者Python的编程经验,我的博客主页也有相关的教程发布,需要的友友自取!
参考资料: ROS理论与实践在线文档, B站视频教程