Ubuntu20.04上ROS的安装和工作空间的创建
1关于ROS的个人总结ROS是一个适用于机器人的开源的元操作系统。1.1 ROS是运行在Linux的次级操作系统。并且ROS提供了操作系统应用的各种服务,也提供了用于获取、编译、跨平台运行代码的工具和函数。总结起来就是,使用ROS能够方便迅捷的搭建机器人原型。
这也是一个安装ROS的链接两个文章都可以参考
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帮忙解决传感器驱动、显示、各种核心算法间的沟通协调问题。
参考文章:
参考文章:【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遇到的问题
更多推荐
所有评论(0)