超详细!ROS 包开发工作全流程及所有命令归纳!

本文详细描述了ROS(RobotOperatingSystem)包的开发流程,包括设置工作空间、创建新包、编写节点代码、CMakeLists.txt配置、编译和安装,以及测试和共享过程。通过实例演示了如何从头到尾完成一个ROSPython包的开发和分发。
摘要由CSDN通过智能技术生成

ROS包开发工作流程

设置工作空间:
  1. 创建一个新的工作空间(如果尚不存在):
    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/
    catkin_make
    
  2. 激活ROS环境(选择正确的ROS版本):
    source /opt/ros/noetic/setup.bash
    
  3. 激活您的工作空间的设置脚本,以将其覆盖在基本ROS环境之上:
    source devel/setup.bash
    
开发一个新包:
  1. 导航到工作空间的 src 目录:
    cd ~/catkin_ws/src
    
  2. 使用必要的依赖项创建一个新的ROS包:
    catkin_create_pkg <package_name> [dependencies]
    
    用您想要的包名称替换 <package_name>,用任何ROS包依赖项(如 std_msgsroscpprospy)替换 [dependencies]
编写包内容:
  1. 开发您的包:
    • 编写节点代码(C++或Python)。
    • 如有需要,创建消息和服务定义。
    • 编写 CMakeLists.txtpackage.xml 文件。
构建包:
  1. 编译包:
    cd ~/catkin_ws
    catkin_make
    
  2. 重新激活 devel/setup.bash 以刷新环境变量:
    source devel/setup.bash
    
测试包:
  1. 使用 rosrunroslaunch 运行节点进行测试:
    rosrun <package_name> <node_name>
    
    或者
    roslaunch <package_name> <launch_file.launch>
    
准备安装:
  1. 编辑您的包中的 CMakeLists.txt 文件,包括所有必要组件的安装规则,如二进制文件、库、启动文件等。
安装包:
  1. 将包安装到工作空间的 install 目录中:
    cd ~/catkin_ws
    catkin_make install
    
共享包:
  1. 现在可以共享 install 目录的内容。如果要将其作为存档共享,请压缩 install 目录:
    cd ~/catkin_ws
    tar -czf <package_name>.tar.gz install
    
    用您的包名称替换 <package_name>
使用已安装的包:

对于最终用户或接收包的另一个开发人员:

  1. 解压包并激活安装设置脚本:
    tar -xzf <package_name>.tar.gz
    source <path_to_extracted_install>/setup.bash
    
  2. 运行包:
    roslaunch <package_name> <launch_file.launch>
    

该框架涵盖了从设置到共享最终产品的完整ROS包开发周期。提供的每个命令都是较大开发过程的一部分,确保即使是对ROS不熟悉的人也能按步骤创建和分发ROS包。记得用实际项目相关的真实名称替换占位文本(如 <package_name>)。

验证步骤并寻找更新或最佳实践始终是个好主意,特别是对于像ROS这样不断发展的工具。在线搜索或参考最新的ROS文档可能提供额外的背景信息或更新到这些流程。


实际代码示例,让我们重走整个流程

1. 创建新的工作空间

选择一个与已有的catkin_ws不同的工作空间名称,例如my_ros_workspace

mkdir -p ~/my_ros_workspace/src
cd ~/my_ros_workspace/
catkin_make

2. 设置ROS环境

你需要使用正确的ROS版本的setup.bash文件来设置环境:

source /opt/ros/noetic/setup.bash

3. 创建一个新的包

在工作空间的src目录下创建一个名为my_python_package的包,它依赖于rospy,这是ROS Python客户端库:

cd ~/my_ros_workspace/src
catkin_create_pkg my_python_package rospy

4. 编写节点代码

在包中创建一个名为scripts的文件夹,并在其中创建一个Python脚本talker.py

cd ~/my_ros_workspace/src/my_python_package
mkdir scripts

创建文件scripts/talker.py并编辑内容如下:

#!/usr/bin/env python
import rospy
from std_msgs.msg import String

def talker():
    pub = rospy.Publisher('chatter', String, queue_size=10)
    rospy.init_node('talker', anonymous=True)
    rate = rospy.Rate(10) # 10hz
    while not rospy.is_shutdown():
        hello_str = "hello world %s" % rospy.get_time()
        rospy.loginfo(hello_str)
        pub.publish(hello_str)
        rate.sleep()

if __name__ == '__main__':
    try:
        talker()
    except rospy.ROSInterruptException:
        pass

确保talker.py是可执行的:

chmod +x scripts/talker.py

5. 编译工作空间

返回到工作空间根目录并编译:

cd ~/my_ros_workspace
catkin_make

6. 测试节点

启动roscore(如果还没有运行的话)和节点进行测试:

# 另一个终端
roscore

# 原终端
source devel/setup.bash
rosrun my_python_package talker.py

7. 编辑CMakeLists.txt文件

为了使安装过程包括Python节点和任何其他文件,您需要编辑CMakeLists.txt文件来添加安装指令。文件位于my_python_package目录下。

CMakeLists.txt中安装指令的示例:

catkin_install_python(PROGRAMS scripts/talker.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

这会安装您的Python节点。

8. 执行安装

执行安装过程:

catkin_make install

这将会把文件安装到~/my_ros_workspace/install目录下。

9. 分享工作空间

你可以分享install目录给其他人。其他人可以通过设置环境变量来运行这个节点:

source ~/my_ros_workspace/install/setup.bash
rosrun my_python_package talker.py

通过这个流程,您不仅能体验从创建包到编写代码、编译、安装和分享的完整开发周期,还能了解如何为不同类型的文件配置安装指令。如果在执行过程中遇到任何问题,请告诉我,我会协助您解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aitrainee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值