这也是一个安装ROS的链接两个文章都可以参考

https://blog.csdn.net/m0_60657960/article/details/129407002?spm=1001.2014.3001.5502#:~:text=%E5%8F%91%E5%B8%83-,Ubuntu20.4%E5%AE%89%E8%A3%85ROS%E7%B3%BB%E7%BB%9F%E6%95%99%E7%A8%8B%EF%BC%88%E8%87%AA%E7%94%A8%EF%BC%89,-%E8%80%B3%E8%AF%ADai

1关于ROS的版本选择

noetic 20.04

安装ROS之前首先要安装cmake

参考链接:https://blog.csdn.net/lj19990824/article/details/120184708

1.1 ROS的安装

输入

 sudo gedit /etc/apt/sources.list

将里面的内容全部替换成:

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

输入更新源和数据

sudo apt-get update
1.2 安装ROS-noetic

添加ROS软件源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
1.3 添加ros的工作台路径
gedit ~/.bashrc
source /opt/ros/noetic/setup.bash

(如果是Ubuntu18.04用melodic放在下面)

gedit ~/.bashrc
source /opt/ros/melodic/setup.bash
2 创建工作空间

创建src文件,放置功能包源码:

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
echo $ROS_PACKAGE_PATH

进入src文件夹:

cd ~/catkin_ws/src

初始化文件夹:

 catkin_init_workspace

这样就在src文件中创建了一个 CMakeLists.txt 的文件,目的是告诉系统,这个是ROS的工作空间。

2.编译工作空间

cd ~/catkin_ws/
catkin_make

所有编译工作都要在catkin_ws文件夹下编译:

编译,编译完成后,会发现catkin_ws中多了两个文件 build 和 devel

catkin_make

3.设置环境变量

在第1篇中,我们介绍了设置环境变量,那个是将整个ros系统的环境变量设置到bash脚本中,现在我们需要把我们工作空间的环境变量设置到bash中。

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

让上面的配置在当前的终端生效:

source ~/.bashrc

我们用 vi 编辑器打开 ~/.bashrc 文件,就可以看到最后两行,第一行是我们第1篇添加的ros系统的环境变量,第2行是我们创建的catkin_ws工作空间的环境变量:

如果想要查看环境变量:

echo $ROS_PACKAGE_PATH

终端会输出:

/home/wdd/catkin_ws/src : /opt/ros/kinetic/share 第一个是我们刚才创建的catkin_ws的,第二个是ros系统的。

4.创建功能包

在src中创建:

cd ~/catkin_ws/src/

功能包格式:

catkin_create_pkg package_name depend1 depend2 depend2

package_name:功能表名称

depend1、2、3:依赖项

创建功能包:

catkin_create_pkg learning_communication std_msgs roscpp rospy

std_msgs:包含常见消息类型

roscpp:使用C++实现ROS各种功能

rospy:使用python实现ROS各种功能

5.编译功能包

cd ~/catkin_ws

catkin_make

参考链接:https://blog.csdn.net/weixin_42237429/article/details/90238000

2.1 在磁盘新建文件夹,作为工作空间。

举例在home文件夹下新建了一个文件夹catkin_ws作为工作空间的根目录。

2.2 在catkin_ws工作空间下新建src文件夹

2.3 用cd命令进入到src目录下

输入命令catkin_init_workspace对项目进行初始化。执行成功后src目录下回出现CamkeLists.txt文件。

2.4 进入到工作空间根目录catkin_ws下

输入命令catkin_make进行编译初始化,执行成功后catkin_ws目录会多出两个文件夹devel和build。

如果出现以下报错:

ERROR: Could not find a version that satisfies the requirement python3-empy (from versions: none)

ERROR: No matching distribution found for python3-empy

那么在首次建立工作区后,在这个干净的catkin工作区中的第一次catkin_make命令必须是:

 catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

参考文章:https://blog.csdn.net/gongdiwudu/article/details/124430036

2.5 在根目录catkin_ws下

输入:

gedit ~/.bashrc

利用gedit编辑器对bashrc编辑,主要是把

source ~/catkin_ws/devel/setup.bash

添加进去(仿造ROS的源环境变量,只是换了路径),关闭文档,执行source ~/.bashrc来设置工作空间的环境变量。执行成功后,可以新建一个终端,输入echo $ROS_PACKAGE_PATH查看环境变量是否添加进去。

2.6添加功能包和编译

Step1----- 用cd进入到src目录下来创建功能包,其命令为catkin_create_pkg 包名 依赖项1 依赖项2…,先为了执行通信例子,创建listen and talk功能包,即catkin_creat_pkg topic_communication std_msgs rospy roscpp

Step2----- 编译功能包,进入到工作空间根目录下,执行编译命令catkin_make来编译功能包。

出现以下问题:
解决方法:缺失功能包安装就行
sudo apt-get install ros-noetic-driver-base
sudo apt-get install ros-noetic-gazebo-ros-control
sudo apt-get install ros-noetic-effort-controllers
sudo apt-get install ros-noetic-joint-state-controller
sudo apt-get install ros-noetic-ackermann-msgs
sudo apt-get install ros-noetic-global-planner
sudo apt-get install ros-noetic-teb-local-planner

(如果是Ubuntu18.04用melodic放在下面)

sudo apt-get install ros-melodic-driver-base
sudo apt-get install ros-melodic-gazebo-ros-control
sudo apt-get install ros-melodic-effort-controllers
sudo apt-get install ros-melodic-joint-state-controller
sudo apt-get install ros-melodic-ackermann-msgs
sudo apt-get install ros-melodic-global-planner
sudo apt-get install ros-melodic-teb-local-planner

参考:https://blog.csdn.net/qq_42727752/article/details/108370179

启动地图时出现问题:

roslaunch racecar_gazebo racecar_runway.launch

RLException: [racecar_runway.launch] is neither a launch file in package [racecar_gazebo] nor is [racecar_gazebo] a launch file name

The traceback for the exception was written to the log file

解决方法:(后期补充)

3 ROS是一个适用于机器人的开源的元操作系统(简单介绍ROS)

3.1 ROS是运行在Linux的次级操作系统。

并且ROS提供了操作系统应用的各种服务,也提供了用于获取、编译、跨平台运行代码的工具和函数。总结起来就是,使用ROS能够方便迅捷的搭建机器人原型。

3.2ROS 核心工具很丰富。

ROS 常用命令工具是 rostopic、rosservice、rosnode、rosparam、rosmsg、rossrv、roswtf;ROS 常用可视化工具是 rqt、rviz;ROS 用于存储与回放数据的工具rosbag;ROS 的 log 系统记录软件运行的相关信息;ROS 还拥有强大的第三方工具支持:三维仿真环境 Gazebo、计算机视觉库 OpenCV、点云库 PCL、机械臂控制库MoveIt、工业应用库 Industrial、机器人编程工具箱 MRPT、实时控制库 Orocos。

3.3 ROS的工作空间catkin_ws

源文件空间src、编译空间build、开发空间devel、源文件空间配置文件CMakel_ists txt、功能包package、功能包清单文件package.xml、

非消息定义目录msg/、服务类型定义目录srv/、bash、Python等可执行脚本文件存放目录scripts/、launch文件目录launch/、功能包中节点对应的源文件存放目录src/

3.4 SLAM与ROS的关系

SLAM最核心的地方在算法,侧重点在于如何构建出效果好的地图,并为机器人提供更好的数据保障。ROS帮忙解决传感器驱动、显示、各种核心算法间的沟通协调问题。

参考文章:

http://xiihoo.com/static/file/DIY_A_SLAM_Navigation_Robot/%E7%AC%AC2%E7%AB%A0%EF%BC%9AROS%E5%85%A5%E9%97%A8.pdf

参考文章:【ROS学习笔记】5.创建工作空间和编译功能包
本文链接:https://blog.csdn.net/takedachia/article/details/122497067

总结了常见问题:

ubuntu 20.04 安装 ROS noetic,catkin_make报错python版本不一致,处理办法
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

cmake找不到opencv解决

本文链接:https://blog.csdn.net/jacke121/article/details/112827563

source ~/catkin_ws/devel/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/

· 1

自建引用包报错:CMake Error at /opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:83 (find_package):

解决方法:

1.将opencv安装目录添加到CMAKE_PREFIX_PATH

例如,按照错误信息指示,在CMakeLists.txt中加入一行list,路径要改成自己的opencv安装路径。

list(APPEND CMAKE_PREFIX_PATH "/home/xiaoming/opencv4.5.5/")

find_package(OpenCV REQUIRED)

出现报错:

CMake Error at ros_astra_camera/CMakeLists.txt:8 (find_package):

By not providing "Findlibuvc.cmake" in CMAKE_MODULE_PATH this project has

asked CMake to find a package configuration file provided by "libuvc", but

CMake did not find one.

Could not find a package configuration file provided by "libuvc" with any

of the following names:

libuvcConfig.cmake

libuvc-config.cmake

Add the installation prefix of "libuvc" to CMAKE_PREFIX_PATH or set

"libuvc_DIR" to a directory containing one of the above files. If "libuvc"

provides a separate development package or SDK, be sure it has been

installed.

-- Configuring incomplete, errors occurred!

See also "/home/sxj/catkin_ws/build/CMakeFiles/CMakeOutput.log".

See also "/home/sxj/catkin_ws/build/CMakeFiles/CMakeError.log".

Invoking "cmake" failed

解决方法:

git clone https://github.com/libuvc/libuvc
cd libuvc
mkdir build
cd build
cmake ..
make && sudo make install

在Cmakelist中添加opencv遇到的问题

参考文章:https://blog.csdn.net/Cwenge/article/details/90545262

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐