当前位置:   article > 正文

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

ros实现流程

ROS包开发工作流程

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

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

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

该框架涵盖了从设置到共享最终产品的完整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
  • 1
  • 2
  • 3

2. 设置ROS环境

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

source /opt/ros/noetic/setup.bash
  • 1

3. 创建一个新的包

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

cd ~/my_ros_workspace/src
catkin_create_pkg my_python_package rospy
  • 1
  • 2

4. 编写节点代码

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

cd ~/my_ros_workspace/src/my_python_package
mkdir scripts
  • 1
  • 2

创建文件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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

确保talker.py是可执行的:

chmod +x scripts/talker.py
  • 1

5. 编译工作空间

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

cd ~/my_ros_workspace
catkin_make
  • 1
  • 2

6. 测试节点

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

# 另一个终端
roscore

# 原终端
source devel/setup.bash
rosrun my_python_package talker.py
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

7. 编辑CMakeLists.txt文件

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

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

catkin_install_python(PROGRAMS scripts/talker.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
  • 1
  • 2
  • 3

这会安装您的Python节点。

8. 执行安装

执行安装过程:

catkin_make install
  • 1

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

9. 分享工作空间

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/675398
推荐阅读
相关标签
  

闽ICP备14008679号