mkdir创建文件夹
cd索引到某个目录
ls显示当前目录下的文件
touch创建一个文件
mv移动一个文件到一个地方
cp复制一个文件到一个地方
rm删除一个文件
rm - r删除一个文件夹
sudo可以提升用户权限,做一些大事
xxx --help可以查看指令操作方法
tab键可以轻松补全命令行代码
多练就会了
c++得先通过g++编译器进行编译,-o代表编译成什么名字的可执行文件,再执行。python是一个解析型的语言,不需要编译,直接解析器解析便可运行
./是运行某个程序或者脚本的指令
没按照视频内一步步去配置,直接在ubuntu20.04中使用https://fishros.org.cn/forum/topic/20/%E5%B0%8F%E9%B1%BC%E7%9A%84%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85%E7%B3%BB%E5%88%97?lang=zh-CN 这个的教程一键安装,挂个梯子去安装,没有梯子就换源
主要核心就是提高机器人研发之中的软件复用率(ros就相当于安卓操作系统,一种机器人的操作系统,用别人造好的轮子)
话题通信是单向不断传输(多次)
服务通信是双向,有请求有应答(通常一次)
文件系统结构
常用命令
都可以使用 xxx list 来查看话题列表
小海龟三步走:
工作空间的创建流程
catkin_make 创建devel和build文件
catkin_make install 创建install文件
src用于存放功能包源码/ devel是“开发中” install是“集成后” 的可执行文件 / build是编译过程中二进制文件
添加依赖的操作
主要文件:package.xml包含了功能包的基本信息 CMakeLists.txt包含功能包的编译规则
核心思路就是:
核心流程图
工作空间中的功能包依赖别配少了!!!!!!!!!!!!!!!!!!!
cpp是要生成可执行文件,并且链接到ros库,继而在终端编译
add_executable(velocity_publisher src/velocity_publisher.cpp)#将程序文件生成可执行文件
target_link_libraries(velocity_publisher ${catkin_LIBRARIES})#将可执行文件与ros库链接
catkin_make # 编译
python只需要勾选选现让他具有可执行权限就行
右键py文件,点击属性,找到权限,把执行那一栏点成对勾
!!!!一定一定要注意,下面这个一般默认是找python2,ros要的是python3!!!!!
要在这句话后面加上个“3”,就是在源代码之中加,不然跑不了python代码!!!
不想每次都加3还有两种办法
#!/usr/bin/env python
ROS基础(二)——发布者Publisher的编程实现_ros的publisher-CSDN博客
主文件夹ctrl+h显示隐藏文件,在.bashrc文件的最后一行添加环境变量的声明
只有工作空间的环境变量在当前环境中生效,才能找到文件
source ~/catkin_ws/devel/setup.bash
编译生成语言相关文件与上文发布者和订阅者的编程实现一样
下面是cpp的编译规则
代码放置于此处
流程类似,注重代码理解
注意代码使用的python版本,教程之中是python2,要做相应修改(print的括号,以及函数名)
此处python比cpp多了一个“多线程”的步骤,因为python中没有spinOnce这个函数
自定义服务数据所处位置
如何配置CMakeLists.txt中的编译规则
在如上图所在位置,上面介绍了如何配置编译规则
三个横线进行区分,以上为request数据,以下为respond数据
每次运行新的程序之前,先把roscore关掉,因为里面可能会存有很多之前保存好的参数,需要清掉
parameter server相当于定义了一个全局变量
使用一些命令的时候,按照list里面的格式走,要把路径改成自己的
rosparam set /turtlesim/background_b 255
获取/设置参数有很多操作,见wiki
Parameter Server - ROS Wiki
简单理解机器人中的坐标变换可以看这篇文章
机器人位姿描述与坐标变换 - 知乎
运行view_frames可能会报错,解决如下:
view_frames中错误: cannot use a string pattern on a bytes-like object_b'dot - graphviz version 2.43.0 (0)\n' traceback (-CSDN博客
如何实现一个tf广播器
如何实现一个tf监听器
配置cmakelists.txt中的编译规则
ROS的launch
文件是用XML格式编写的,用于描述如何启动一个或多个ROS节点。以下是launch
文件的基础结构和语法:
每个launch文件都以
标签开始并以标签结束。
启动节点:
pkg:ROS包的名称,该节点在其中定义
type: 可执行文件的名称
name:运行时ROS节点的名称
output:
respawn:
required:
ns:
args:
roslaunch/XML - ROS Wiki
rqt工具箱——非常综合的工具
rviz——三维可视化工具(数据可视化平台) 只要按照ros的数据结构发布信息,rviz就都可以进行可视化展示,而且可扩展二次开发
gazebo——三维物理仿真平台