1.ROS操作之从空间编译到功能包编译

工作空间workspace是一个存放工程开发相关文件的文件夹
包括:src build devel install四个文件夹
要创建一个工作空间要进行以下几步:

1 创建工作空间和src文件夹:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

初始化工作空间后能够看到src文件夹内出现cmake文件

2 编译工作空间:

需要在工作空间文件夹内

catkin_make

3 设置环境变量

source ~/catkin_ws/devel/setup.bash
如果不想每次都设置环境变量,可以修改用户目录下的.bashrc文件,添加内容

source /home/lcy/catkin_ws/devel/setup.bash

路径就是用户目录下的路径,

4 创建功能包

catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
创建功能包的指令+功能包的名字+相关的依赖
要创建功能包需要进入src目录执行:

catkin_create_pkg learning_topic std_msgs rospy roscpp geometry_msgs turtlesim

以上指令中内容就是本次创建功能包的名字和依赖

5 编译功能包learning_topic

进入工作空间:执行:

catkin_make

至此编译功能包的操作完成。
如果创作一个有源码的功能包的话,需要修改功能包内的cmakelist文件
比如在功能包内的src内新建文件velocity_publisher.cpp
在learning_topic功能包的CmakeList.txt内进行修改,添加:

add_executable(velocity_publisher src/velocity_publisher.cpp)
target_link_libraries(velocity_publisher ${catkin_LIBRARIES})

编译空间内的功能包:

catkin_make
source devel/setup.bash

所执行的功能velocity_publisher位置在/devel/lib内
在这里插入图片描述

运行刚刚生成的功能包:
roscore
rosrun turtlesim turtlesim_node
rosrun learning_topic velocity_publisher
以上三条指令分别在三个窗口内执行
注:设置环境变量的source devel/setup.bash跟运行功能包的指令要在一个终端执行,要不然就会出现[rospack] Error: package ‘learning_topic‘ not found的错误

6 python功能包的执行方式

1.在功能包内新建scripts文件夹,后新建velocity_publisher.py文件
2. 给python脚本文件添加执行权限:chmod +x velocity_publisher.py
3.查看python安装路径 指令:which python 本机的路径为/usr/bin/python3
4.在python文件头设置路径#!/usr/bin/python3
5.添加以下内容到CmakeList.txt末尾:

catkin_install_python(PROGRAMS
  scripts/velocity_publisher.py 
#功能包下的代码文件所在路径  代码文件夹/代码文件名
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

6.运行python功能包的内容与可执行文件的相同,差异在于第三步改为:rosrun learning_topic velocity_publisher.py

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值