一、虚拟机安装与配置:
参考:
下载网址:虚拟机安装包:https://www.123pan.com/s/g520Vv-Dg2id
最新系统镜像文件:https://www.123pan.com/s/g520Vv-KIWid
以前用过虚拟机,所以有配置好的ubuntu(),镜像文件:ubuntu-20.04.5-live-server-amd64.iso
二、安装ROS
参考网站:http://www.autolabor.com.cn/book/ROSTutorials/chapter1/12-roskai-fa-gong-ju-an-zhuang/124-an-zhuang-ros.html
遇到问题及解决办法:
没及时记录。。。。。。不过chatgpt和csdn足够解决
1.修改 .bashrc 文件方法:
建议用
sudo gedit ~/.bashrc
这样可以直接编辑保存,修改后记得运行
source ~/.bashrc
让 .bashrc 文件生效。
三、测试ROS
1、初始化rosdep出问题
运行初始化代码:
sudo rosdep init
rosdep update
先解释下rosdep是啥:rosdep 是 ROS 的一个工具,用于自动安装 ROS 软件包所需的系统依赖项。它帮助你解决和安装项目在运行或编译时所需的外部库和工具。通过使用 rosdep,你可以确保你的系统具备所有必需的依赖,从而顺利运行 ROS 节点和包。
ROS 软件包的系统依赖项通常包括:
库和开发工具:如 libboost, libeigen, libopencv 等,具体取决于软件包的功能。
编译工具:如 gcc, g++, cmake 等,用于构建软件包。
Python 库:如 python3, python3-catkin-tools, python3-pip 等,用于脚本和工具链支持。
其他工具和工具链:如 git, wget, curl 等,用于代码管理和下载依赖。
初始化rosdep出现的问题:
运行
sudo rosdep init
问题:ERROR: Rosdep experienced an error: The read operation timed out
Please go to the rosdep page [1] and file a bug report with the stack trace below.
原因:网络问题,初始化依赖包要用到外网,所以不稳定
解决方法:手动设置 rosdep 的源,运行代码
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
直接手动修改加载依赖项的源列表,把赵虚左的源放进去:
> # os-specific listings first yaml https://gitee.com/zhao-xuzuo/rosdistro/raw/master/rosdep/osx-homebrew.yaml
> osx
>
> # generic yaml https://gitee.com/zhao-xuzuo/rosdistro/raw/master/rosdep/base.yaml
> yaml
> https://gitee.com/zhao-xuzuo/rosdistro/raw/master/rosdep/python.yaml
> yaml
> https://gitee.com/zhao-xuzuo/rosdistro/raw/master/rosdep/ruby.yaml
> gbpdistro
> https://gitee.com/zhao-xuzuo/rosdistro/raw/master/releases/fuerte.yaml
> fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
这样初始化就没问题了。
2、打开服务器roscore时显示IP不对
终端启动服务器,运行:
roscore
问题:WARNING: ROS_MASTER_URI [http://eai-leo2222] host is not set to this machine
原因:我以前使用过ros,修改了ROS_MASTER_URI 变量指向
解决方法:根据你运行 roscore 的机器的 IP 地址或主机名来设置 ROS_MASTER_URI。例如,如果 roscore 运行在 IP 地址为 192.168.1.100 的机器上,你可以在当前机器上设置 ROS_MASTER_URI 为:
export ROS_MASTER_URI=http://192.168.1.100:11311
echo 'export ROS_MASTER_URI=http://192.168.1.100:11311' >> ~/.bashrc
source ~/.bashrc
运行上面代码相当于把IP初始化信息加到文件 ~/.bashrc 文件里。当然也可以直接用 gedit命令来修改 ~/.bashrc文件:
sudo gedit ~/.bashrc
查询IP的方法:终端运行
ip addr show
四、一些习以为常却未深入了解的问题
1.ROS和ubuntu的关系:
ROS(Robot Operating System)和 Ubuntu 是两个不同但互补的技术系统,常常一起使用来开发机器人应用。下面是它们之间的关系和各自的作用:
Ubuntu
操作系统:Ubuntu 是一个基于 Debian 的 Linux 发行版,广泛使用于个人计算机、服务器以及其他设备。它提供了一个稳定和用户友好的操作系统环境,适合开发、桌面使用以及服务器应用。
功能:Ubuntu 提供了操作系统的核心功能,包括硬件管理、文件系统、网络服务等。它具有丰富的软件包管理系统,用户可以通过 apt(Advanced Package Tool)来安装和更新软件。
ROS (Robot Operating System)
中间件:ROS 是一个用于开发机器人应用的开源框架和工具集。尽管名字中有“操作系统”一词,但 ROS 更准确地说是一个中间件,它提供了一个框架来帮助开发者创建机器人软件,包括通信机制、硬件抽象、设备驱动程序和工具集等。
功能:ROS 提供了丰富的库、工具和编程接口,用于处理机器人中的感知、运动规划、控制等任务。它帮助开发者在机器人系统中实现各种功能,如传感器数据处理、运动控制、算法开发等。
我的理解:Ubuntu 提供了一个用户友好的操作系统环境,使得电脑硬件可以被有效管理和使用。而 ROS 是一个在 Ubuntu 上运行的中间件,用于开发和运行机器人软件。简而言之,Ubuntu 作为操作系统提供了基础设施,而 ROS 则是一个在该平台上用于机器人开发的工具集。
2.啥是 .bashrc 文件?
这里解释一下.bashrc 文件是一个隐藏的脚本文件,位于用户的主目录下(~/.bashrc),用于配置和初始化 Bash shell 的环境。每次你启动一个新的终端窗口时,Bash shell 会读取并执行 .bashrc 文件中的命令。
3.啥是 bash ?
Bash 是一个命令行解释器,用于与操作系统进行交互,执行命令和脚本。它结合了 Bourne Shell(sh)的传统特性,并加入了许多改进和扩展,包括命令历史、命令补全和更强大的脚本功能。Bash 通常是 Linux 和 macOS 系统的默认 Shell。
Bash
用途:主要用于编写脚本以自动化系统任务和执行命令行操作。
特性:Bash 是 Unix shell 的一种,它允许用户在命令行界面中运行命令,并编写脚本来自动化操作。Bash 脚本通常包括一系列的命令、控制结构(如循环和条件语句),以及对系统资源的操作。
语法:Bash 的语法与编程语言不同,更接近于系统命令和脚本语言的混合。它的语法相对简单,但功能也比较局限,主要用于系统管理和简单的自动化任务。
C 语言
用途:是一种通用的编程语言,用于系统编程、应用程序开发等。
特性:C 语言提供了对硬件和系统资源的低级控制,适用于需要高性能和精细控制的应用程序。它支持丰富的数据结构、函数、指针等特性。
语法:C 的语法相对复杂,包括数据类型、控制结构、函数、指针等。它更接近于底层编程。
Python
用途:是一种通用的编程语言,用于开发各种类型的应用程序,包括网络、数据处理、科学计算等。
特性:Python 是一种高级语言,提供了简单易读的语法,支持丰富的标准库和第三方模块。它适用于快速开发和原型设计。
语法:Python 语法简洁明了,强调可读性和可维护性。它支持面向对象编程、函数式编程等多种编程范式。
总结:
Bash、C 和 Python 都是用于编程和脚本编写的语言,但它们的用途和特性有所
不同:
Bash 主要用于脚本编写和自动化系统任务,语法相对简单。
C 是一种底层编程语言,用于系统编程和高性能应用,语法复杂。
Python 是一种高级编程语言,广泛应用于各种开发任务,语法简洁易读。
我的理解:Bash 是用来在系统中运行和自动化操作的工具,尤其在 Unix 和 Linux 系统中非常重要。C 和 Python 是编程语言,适用于各种平台,不仅限于它们各自的开发环境。C 可以用来开发操作系统、嵌入式系统等底层软件,而 Python 用于从简单的脚本到复杂的应用程序。总的来说,Bash 专注于系统任务,而 C 和 Python 更侧重于编程和开发。
相当于bash是ubuntu的系统方言,用于在系统中直接运行操纵系统,而C、python是新的通用语言,用于所有类似ubuntu这样的平台。