当前位置: 首页 > news >正文

ROS基础入门——实操教程

ROS基础入门——实操教程


前言

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


Ruby Rose,放在这里相当合理

本文初编辑于2024年10月4日

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

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

博客园本文链接:https://www.cnblogs.com/hassle/p/18447212


一、安装【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.lryc.cn/news/453273.html

相关文章:

  • etcd 快速入门
  • Spring MVC__HttpMessageConverter、拦截器、异常处理器、注解配置SpringMVC、SpringMVC执行流程
  • GAMES101(19节,相机)
  • Django Nginx+uwsgi 安装配置
  • oracle数据备份和导入
  • C++ | Leetcode C++题解之第452题用最少数量的箭引爆气球
  • react-问卷星项目(3)
  • 69 BERT预训练_by《李沐:动手学深度学习v2》pytorch版
  • Java报错输出的信息究竟是什么?
  • 解表之紫苏
  • JavaScript数据类型
  • 市场中的新兴力量与未来发展
  • Golang | Leetcode Golang题解之第446题等差数列划分II-子序列
  • Java 常用序列化对比
  • 【redis学习篇1】redis基本常用命令
  • 量子计算:颠覆未来计算的革命性技术
  • ctfshow-web入门(信息收集,持续更新中。。)
  • 蓝桥杯【物联网】零基础到国奖之路:十五. 扩展模块之双路ADC
  • 李飞飞谈AI+3D发展:3D/4D AI将成为下一个重要前沿
  • centos72009源码编译R语言
  • 初识算法 · 双指针(4)
  • java版鸿鹄电子招投标系统功能架构设计 核心功能设计 鸿鹄电子招投标采购系统源码
  • matlab 判断多组数据的分布是否一致,可以使用什么方法?
  • jenkins配置eureka、nacos发布优雅上下线服务
  • 【JAVA开源】基于Vue和SpringBoot的周边产品销售网站
  • 【C++差分数组】2381. 字母移位 II|1793
  • 【pytorch】范数的计算
  • MATLAB|基于多主体主从博弈的区域综合能源系统低碳经济优化调度
  • Django 后端数据传给前端
  • elasticsearch 写入新数据测试(二)