9.11 下午~晚上

一、虚拟机安装与配置:

参考:

                          下载网址:虚拟机安装包:https://www.123pan.com/s/g520Vv-Dg2id

                           最新系统镜像文件:https://www.123pan.com/s/g520Vv-KIWid
                           以前用过虚拟机,所以有配置好的ubuntu(),镜像文件:ubuntu-20.04.5-live-server-amd64.iso

镜像文件使用
USB2.0

二、安装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这样的平台。

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值