ROS学习1 - 终端输出字符串

一、创建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

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值