ROS基础入门——实操教程

news/2024/10/4 20:30:44

ROS基础入门——实操教程


前言

本教程实操为主,少说书。可供参考的文档中详细的记录了ROS的实操和理论,只是过于详细繁杂了,看得脑壳疼,于是做了这个笔记。


Ruby Rose,放在这里相当合理

前言:本文初编辑于2024年10月24日

CSDN主页:https://blog.csdn.net/rvdgdsva

博客园主页:https://www.cnblogs.com/hassle


一、安装【virtualbox】【Ubuntu】【ROS】

前人栽树,后人乘凉

安装virtualbox教程

安装Ubuntu教程

安装ROS教程

测试ROS教程

二、文件创建

2.1创建工作空间和初始化

此处参考(选看)

在ubuntu主界面按下(ctrl + alt + T)打开命令行,然后依次输入下面的命令

mkdir -p test(这是自定义空间名称,爱叫什么叫什么)/src
cd test(这是自定义空间名称,爱叫什么叫什么)
catkin_make

生成了下面的文件树

....    
└── test(文件夹,意为工作空间,第一行代码运行时被创建)├── build(文件夹,意为编译空间,第三行代码运行时被创建)│   ├── ...├── devel(文件夹,意为开发空间,第三行代码运行时被创建)│   ├── setup.bash│   ├── setup.sh│   ├── ...└── src(文件夹,第一行代码运行时被创建)└── CMakeLists.txt (别动这个)

2.2导入包

生成一个基于三个库的ROS包,其中:roscpp是使用C++实现的库,rospy是使用python实现的库,std_msgs是标准消息库

cd src
catkin_create_pkg testpkg(这是ROS包名,爱叫什么叫什么) roscpp rospy std_msgs

此时src文件树变动

....    
└── test├── build│   ├── ...├── devel│   ├── setup.bash│   ├── setup.sh│   ├── ...└── src└── CMakeLists.txt (别动这个!!!动的是下面那个同名文件,别搞错了)└── testpkg├── CMakeLists.txt(执行cpp和py代码需要修改此处)(2.4涉及此处)├── include│   └── testpkg├── package.xml└── src(此处存放cpp代码)(2.3涉及此处)

2.3 编写Cpp与Py程序

Cpp详细教程(教程浓缩成下面一句话了,看完教程感觉脑子很乱的话照着下面的话去做就行)

一句话概括:需要在src(源文件空间)······> testpkg(ROS包名,爱叫什么叫什么)······> src文件夹(用于存放cpp文件)中存放编写好的cpp文件

Py详细教程(同上)

一句话概括:需要在src(源文件空间)······> testpkg(ROS包名,爱叫什么叫什么)······> scripts文件夹(用于存放py文件,需要手动创建该文件夹)中存放编写好的py文件

2.4 Cmakelist.txt文件改写

2.4.1Cpp程序:

在自定义命名包的 CMakeLists.txt(执行cpp和py代码需要修改此处)内修改第136行和第149-151行 为

具体行数因版本不同可能有所变动

注意映射名(映射名就是随便写的名,别写test就行)可与cpp源文件名相同

add_executable(映射名src/源文件名.cpp
)
target_link_libraries(映射名${catkin_LIBRARIES}
)
2.4.2python程序:

在自定义命名包的 CMakeLists.txt(执行cpp和py代码需要修改此处)内修改第162-165行 为

具体行数因版本不同可能有所变动

注意这里Py程序是不需要映射名

catkin_install_python(PROGRAMS scripts/源文件名.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

2.5编译并运行程序

2.5.1Cpp程序:

在自定义空间名称(2.1中创建的)中按下(ctrl + alt + T)打开命令行,依次输入

catkin_make
roscore

在自定义空间名称(2.1中创建的)中按下(ctrl + alt + T)打开另一个命令行,依次输入

source ./devel/setup.bash
rosrun 包名(2.2中创建的) 映射名(2.4中创建的)
2.5.2Python程序:

在自定义空间名称(2.1中创建的)中按下(ctrl + alt + T)打开命令行,依次输入

chmod +x 源文件名.py
catkin_make
roscore

在自定义空间名称(2.1中创建的)中按下(ctrl + alt + T)打开另一个命令行,依次输入

source ./devel/setup.bash
rosrun testpkg(ROS包名,爱叫什么叫什么,2.2中创建的) 源文件名.py(2.4中创建的)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/67768.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

PbootCMS增加可允许上传文件类型,例如webp、mov等文件格式扩展

在PbootCMS中增加可允许上传的文件类型(例如 webp、mov 等文件格式),需要在多个地方进行配置。以下是详细的步骤: 操作步骤 1. 修改 config.php 文件 首先需要修改 config.php 文件,增加允许上传的文件类型。打开 config.php 文件打开 config.php 文件,通常位于 /config …

出现“登录失败,表单提交校验失败”,请检查服务器环境

如果出现“登录失败,表单提交校验失败”,请检查服务器环境,然后刷新页面重试,或者删除 runtime 文件夹,然后刷新页面重试。 操作步骤删除 runtime 文件夹使用 FTP 客户端或 SSH 连接到服务器。 删除 runtime 文件夹:bashcd /path/to/your/site rm -rf runtime刷新页面清除…

多次密码错误导致登录界面锁定,可以删除网站的 runtime 文件夹

如果多次密码错误导致登录界面锁定,可以删除网站的 runtime 文件夹,然后刷新页面重试。 操作步骤删除 runtime 文件夹使用 FTP 客户端或 SSH 连接到服务器。 删除 runtime 文件夹:bashcd /path/to/your/site rm -rf runtime刷新页面清除浏览器缓存。 重新访问后台登录页面扫…

红日靶机(三)笔记

VulnStack-红日靶机三 概述 相交于前边两个靶场环境,靶场三的难度还是稍难一点,有很多兔子洞,这就考验我们对已有信息的取舍和试错,以及对渗透测试优先级的判断。涉及到对数据库操作的试错,对 joomla 框架 cve 的快速学习,php 中 用到disabled_function 的 bypass ,对li…

快乐数学2勾股定理0000000

2 勾股定理 在任意一个直角三角形中,两条直角边的平方和等于斜边的平方。 a + b = ca 和 b 分别表示直角三角形的两条直角边长度。 c 表示斜边长度。我们大多数人都认为这个公式只适用于三角形和几何图形。勾股定理可用于任何形状,也可用于任何将数字平方的公式。 2.1 了解面…

信息学奥赛复赛复习11-CSP-J2020-04方格取数-动态规划、斐波那契数列、最优子结构、重叠子问题、无后效性

PDF文档公众号回复关键字:202410041 P7074 [CSP-J2020] 方格取数 [题目描述] 设有 nm 的方格图,每个方格中都有一个整数。现有一只小熊,想从图的左上角走到右下角,每一步只能向上、向下或向右走一格,并且不能重复经过已经走过的方格,也不能走出边界。小熊会取走所有经过的…

python相平面 图形

二阶非线性自治系统绘制相平面图。假设我们有一个简单的阻尼摆系统,其状态方程可以表示为: \[ dx1/dt = x2 \\dx2/dt = -cx2 - gsin(x1) \] import numpy as np import matplotlib.pyplot as plt from scipy.integrate import odeint # 定义系统的状态方程 def pendu…

python 画向量图

start_points 和 end_points 数组分别表示向量的起点和终点。 使用 plt.quiver 函数绘制向量(箭头)。 plt.scatter 用于绘制起点和终点(可选)。 plt.legend 添加图例。 plt.title、plt.xlabel 和 plt.ylabel 添加标题和轴标签。 plt.grid(True) 显示网格。 plt.show() 显示…