一、创建ROS工作空间 & 初始化
1. 创建一个文件夹demo_ws
,并包含文件夹src
此时,~/demo_ws/src
是普通的文件夹
mkdir -p ~/demo_ws/src
-p
:递归
创建所有目录。否则需要以下3步创建~/demo_ws/src
mkdir ~/demo_ws
cd ~/demo_ws
mkdir src
2. 编译
使得demo_ws
文件夹从普通文件夹
变为ROS的工作空间
。
标志为:编译完成后,src
文件夹包含CMakeLists.txt
cd ~/demo_ws
catkin_make
3. 配置功能包的环境变量
goal:在任意终端,都可以找到功能包,从而运行功能包的文件。
任意目录下:
- 将
source ~/demo_ws/devel/setup.bash
添加到在~/
目录下的.bashrc
隐藏文件中
echo "source ~/demo_ws/devel/setup.bash" >>~/.bashrc
- 保存对
.bashrc
文件的修改
source ~/.bashrc
- 检查环境变量是否添加成功。出现
demo_ws/src
echo $ROS_PACKAGE_PATH
二、创建ROS功能包
注意目录
cd ~/demo_ws/src
- 工作空间
demo_ws
下,生成功能包hellokitty
。创建ROS功能包一般都依赖于roscpp、 rospy、 std_msgs
三个库
catkin_create_pkg hellokitty roscpp rospy std_msgs
三、C++实现 - 终端输出字符串
1. 创建CPP源文件
- 路径
cd ~/demo_ws/src/hellokitty/src
- 创建
hellokitty_c.cpp
文件
touch hellokitty_c.cpp
- 打开
hellokitty_c.cpp
源文件
注意:不要加sudo权限
。如果加sudo
,文件中就不能打出中文
gedit hellokitty_c.cpp
- 编写
hellokitty_c.cpp
源文件
//1.头文件
//2. main()
//3.节点初始化
//4.创建ROS节点句柄
//4.日志
#include"ros/ros.h"
int main(int argc,char * argv[])
{
ros::init(argc,argv,"hellokitty_node");
ros::NodeHandle n;
ROS_INFO("hello kitty !");
return 0;
}
2. 编辑hellokitty
功能包的CMakeList.txt
- 将
add_executable()
&target_link_libraries
消除注释 - 修改
add_executable()
add_executable(可执行文件名称 src/.cpp源文件名字)
可执行文件名称
:可以自己随意取,通常和源文件去掉.cpp后缀一致。.cpp源文件编译后,变成可执行文件。
- 修改
target_link_labraries()
注意:需要写可执行文件的名称
target_link_libraries(可执行文件名称
${catkin_LIBRARIES}
)
3. 编译工作空间demo_ws
cd ~/demo_ws
catkin_make
编译,不报错。
4. 运行可执行文件hellokitty_c
- 第一个终端
roscore
- 第二个终端
rosrun 功能包名 可执行文件名
rosrun hellokitty hellokitty_c
四、python 实现 - 终端输出字符串
1. 创建存放python源文件的scripts
文件夹
- 进入
功能包
下的目录
cd demo_ws/src/hellokitty/
- 创建文件夹
scripts
mkdir scripts
2. 创建 hellokitty_p.py
文件
- 目录
cd ~/demo_ws/src/hellokitty/scripts/
touch
指令创建hellokitty_p.py
文件
touch hellokitty_p.py
3. 编写hellokitty_p.py
文件
gedit
打开hellokitty_p.py
文件,注意不要添加中文注释
gedit hellokitty_p.py
第一行
,指定解释器
,英文写
#! /usr/bin/env python
# 1.编辑器
# 2.头文件
# 3. main()
# 4. 初始化ROS节点
# 5.日志
import rospy
if __name__ == "__main__":
rospy.init_node("hellokitty_p_node")
rospy.loginfo("hello kitty python!!!")
4. 给 源文件添加可执行权限
- 目录
cd ~/demo_ws/src/hellokitty/scripts/
ll
指令查看文件权限
- 添加可执行权限
chmod +x hellokitty_p.py
5.编辑配置文件
(1)目的:
- 正确
安装
python脚本(.py文件) - 为
.py
文件定位
到合适的解释器。(ros-noetic之前不用,现在最好形成习惯,配置一下)
(2)操作 - 取消
catkin_install_python()
注释 - 修改为
注意:改为.py
文件的名称
catkin_install_python(PROGRAMS
scripts/hellokitty_p.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
6. 编译
- 目录
cd ~/demo_ws
- 编译
catkin_make
7. 运行
- 第一个终端
roscore
- 第二个终端
rosrun hellokitty hellokitty_p.py