title: ROS学习笔记-第一章 ROS概述及环境搭建
date: 2022-01-11 23:18:13
tags:
- AUV
- ROS
1, ros.h显示no this file
修改功能包里面的CMakeLists.txt的add_exectutable里面的文件路径,默认是src/helloworld_node.cpp
2, mkdir -p
循环新建目录
3,如何创建ros工作空间workspace
- 创建目录 mkdir -p workspace/src
- 进入到工作空间 cd workspace
- 在工作空间编译 catkin_make
- 编译成功之后workspace会有src/ devel/ 和build/三个文件夹
- 添加环境变量 source /devel/setup.zsh 因为我的编译器是zsh
4, 创建功能包并且运行功能包
- 完成工作空间创建后进入到编译空间src/,cd workspace/src
- 创建一个功能包和指明它的依赖,catkin_create_pkg packagename rospy roscpp std_msgs
- 可以开始写c++或者python文件
- 写好之后修改CMakeLists.txt的 add_exectutable和 target_link里面的源文件名字
- source /devel/setup.zsh 环境变量至关重要
- 编译
- 运行ROS,roscore之后rosrun helloworld(功能包名字) helloworld_node(c++节点))
5,which python3
找到python3路径
6,linux的python编译器路径
ubantu修改软连接
7,terminator常用快捷键
Alt+Up //移动到上面的终端
Alt+Down //移动到下面的终端
Alt+Left //移动到左边的终端
Alt+Right //移动到右边的终端
Ctrl+Shift+O //水平分割终端
Ctrl+Shift+E //垂直分割终端
Ctrl+Shift+Right //在垂直分割的终端中将分割条向右移动
Ctrl+Shift+Left //在垂直分割的终端中将分割条向左移动
Ctrl+Shift+Up //在水平分割的终端中将分割条向上移动
Ctrl+Shift+Down //在水平分割的终端中将分割条向下移动
Ctrl+Shift+S //隐藏/显示滚动条
Ctrl+Shift+F //搜索
Ctrl+Shift+C //复制选中的内容到剪贴板
Ctrl+Shift+V //粘贴剪贴板的内容到此处
Ctrl+Shift+W //关闭当前终端
Ctrl+Shift+Q //退出当前窗口,当前窗口的所有终端都将被关闭
Ctrl+Shift+X //最大化显示当前终端
Ctrl+Shift+Z //最大化显示当前终端并使字体放大
Ctrl+Shift+N or Ctrl+Tab //移动到下一个终端
Ctrl+Shift+P or Ctrl+Shift+Tab //Crtl+Shift+Tab 移动到之前的一个终端
F11 //全屏开关
Ctrl+Shift+T //打开一个新的标签
Ctrl+PageDown //移动到下一个标签
Ctrl+PageUp //移动到上一个标签
Ctrl+Shift+PageDown //将当前标签与其后一个标签交换位置
Ctrl+Shift+PageUp //将当前标签与其前一个标签交换位置
Ctrl+Plus (+) //增大字体
Ctrl+Minus (-) //减小字体
Ctrl+Zero (0) //恢复字体到原始大小
Ctrl+Shift+R //重置终端状态
Ctrl+Shift+G //重置终端状态并clear屏幕
Super+g //绑定所有的终端,以便向一个输入能够输入到所有的终端
Super+Shift+G //解除绑定
Super+t //绑定当前标签的所有终端,向一个终端输入的内容会自动输入到其他终端
Super+Shift+T //解除绑定
Ctrl+Shift+I //打开一个窗口,新窗口与原来的窗口使用同一个进程
Super+i //打开一个新窗口,新窗口与原来的窗口使用不同的进程
8, 【ROS调试出错】Import Error:No module named rospkg
安装ros时候python默认是2.7,更改python interpreter之后,python3.8没有ros很多pkg,软连接将python改为2.7就可以解决问题。
9,rosrun 功能包 项目
项目是指编译成功的时候出现的build target ha,ha就是项目
功能包是指src/目录下的创建的功能包名称
10,关于launch文件
一个程序通常要启动多个节点,分别启动,效率低下,所以采用launch文件逐一启动。后缀是launch文件,放在功能包下面。
11,SyntaxError: Non-ASCII character
不能有中文,如果有中文需要开头写上
#! /usr/bin/env python
# -*- coding: UTF-8 -*-
第一行不写会报错rospy,第二行不写就会报错syntaxError
12,关于脚本解释器两种写法
linux shell的脚本开头一行需要指定脚本的解释程序,如 : #! /usr/bin/env python,但有的时候我们又会使用 #! /usr/bin/python,这是因为脚本解释器在linux中可能被安装于不同的目录,如果直接将解释器路径写在脚本里,这样可能会造成找不到解释器的问题 ,env可以在系统的PATH目录中查找解释器。同时,env还规定一些系统环境变量,可以执行env 命令查看包含的内容,可以用env来执行python:
13,如果没有在CMakeLists.txt进行配置,执行python文件会抛出异常
kinetic使用python2,可直接编译不用修改cmakelist。
noetic使用python3,程序里解释器必须使用python3(通过修改cmakelist,或者修改程序,最好是用软链接)
14,roslaunch有roscore功能
<launch>
</launch>
以上代码中间内容是空白的就等于只执行roscore
<node pkg="turtlesim" type="turtlesim_node" name="turtle_GUI" />
等价于
rosrun turtlesim turtlesim_node
15, ROS不同角度的划分
从设计者角度来看
ROS=plumbing(通信机制,实现ROS不同结点之 间的交互)+ tools(ROS的开发调试工具)+ capabilities(机器人高层技能)+ ecosystem(机器人生态系统)
从维护者角度来看
ROSS=main+universe(例如opencv,pcl)
16,ROS文件系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4z9VBmjp-1663205707053)(文件系统.jpg)]
学习资料:http://www.autolabor.com.cn/book/ROSTutorials/chapter1.html