1. HelloWorld实现简介
- 创建一个工作空间workspace(1.1)
- 创建一个功能包(1.2)
- 编辑源文件
- 编辑配置文件
- 编译并执行
1.1 创建工作空间
- 用户文件夹下打开终端
Ctrl+Alt+T
- 创建工作空间
mkdir -p 自定义工作空间名称/src
cd 自定义工作空间名称
catkin_make
由此会创建一个工作空间及一个src子目录,然后进图工作空间调用catkin_make
命令编译。
1.2 src目录下创建ros包并添加依赖
cd src
catkin_create_pkg 自定义ROS功能包名 roscpp rospy std_msgs
由此会在工作空间下生成一个功能包,其依赖于roscpp、rospy和std_msgs,其中roscpps是c++实现的库,rospy是python实现的库,std_msgs是标准消息库。
1.3 例子
- 创建工作空间
mkdir -p demo01_ws/src
cd demo01_ws
catkin_make
- 创建功能包
cd src
catkin_create_pkg helloworld roscpp rospy std_msgs
2. HelloWorld实现(C++)
2.1 编辑源文件
在自定义ROS功能包helloworld下的src子目录里创建文本文件,重命名为helloworld_c.cpp,源码如下
#include "ros/ros.h"
int main(int argc, char *argv[])
{
//执行 ros 节点初始化
ros::init(argc,argv,"hello");
//创建 ros 节点句柄(非必须)
ros::NodeHandle n;
//控制台输出 hello world
ROS_INFO("hello world!");
return 0;
}
2.2 编辑配置文件
编辑自定义ROS功能包helloworld下的Cmakelist.txt文件
add_executable(C++的源文件名
src/C++的源文件名.cpp
)
target_link_libraries(C++的源文件名
${catkin_LIBRARIES}
)
例:
add_executable(helloworld_c
src/helloworld_c.cpp
)
target_link_libraries(helloworld_c
${catkin_LIBRARIES}
)
或
add_executable(hi
src/helloworld_c.cpp
)
target_link_libraries(hi
${catkin_LIBRARIES}
)
2.3 编译并执行
- 进入工作空间目录进行编译
cd 工作空间
catkin_make
例:
cd demo01_ws
catkin_make
此过程会生成build devel···
2. 执行
- 终端1:
roscore
- 终端2:
cd 工作空间
source ./devel/setup.bash
rosrun 功能包名 C++节点
例:
# 终端1
roscore
# 终端2
cd demo01_ws
source ./devel/setup.bash
rosrun helloworld helloworld_c
3. HelloWorld实现(Python)
3.1 编辑源文件
- 在自定义ROS功能包helloworld下创建scripts子目录
cd ROS功能包
mkdir scripts
例:
cd helloworld
mkdir scripts
- 在scripts子目录里创建文本文件,重命名为helloworld_p.py,源码如下
#! /usr/bin/env python3
"""
Python 版 HelloWorld
"""
import rospy
if __name__ == "__main__":
rospy.init_node("Hello")
rospy.loginfo("Hello World!!!!")
- 为Python文件添加可执行权限
cd scripts
chmod +x python的源文件名.py
例:
cd scripts
chmod +x helloworld_p.py
3.2 编辑配置文件
编辑自定义ROS功能包helloworld下的Cmakelist.txt文件
catkin_install_python(PROGRAMS
scripts/python的源文件名.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
例:
catkin_install_python(PROGRAMS
scripts/helloworld_p.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
3.3 编译并执行
- 进入工作空间目录进行编译
cd 工作空间
catkin_make
例:
cd demo01_ws
catkin_make
- 执行
- 终端1:
roscore
- 终端2:
cd 工作空间
source ./devel/setup.bash
rosrun 功能包名 python的源文件名.py
例:
# 终端1
roscore
# 终端2
cd demo01_ws
source ./devel/setup.bash
rosrun helloworld helloworld_p.py