先说一下基本情况,因为本科毕业设计,需要用到Ubuntu,ROS,还有Turtlebot3,所以自己研究了一下。在安装ROS和使用Turtlebot3的过程中遇到了很多问题,但幸好最终都解决了。所以总结了一下的安装经历,希望能够帮到大家。

        自己做的时候参考了很多大佬的文章,我都会把链接放在本文末尾,供大家参考。

一.版本选择

        操作系统为Ubuntu 18.04 LTS 64bit应采用ROS版本为ROS Melodic。

二.配置Ubuntu软件库

(一)Software & Updates 配置

找到Software & Updates将前四个选项都勾上。

(二)换源

        因为我的Ubuntu已经换好了,所以大家看到上一张图里Download from那一行我与大家有些不一样,我换的是中科大的源。       

        换源就是将Ubuntu的源换成国内镜像源,这样下载速度会快很多。原本是在国外的服务器上下载,换源后就会从国内镜像源下载。

首先,点击Software & Updates中Download from的下拉选项框,选择Other,然后会出现下图:

然后,点击右上角Select Best Server,Ubuntu就会自己进行测试,选择一个速度比较快的源,测试完点确定,点击Close出现以下画面。

出现这个界面后,点击Reload,然后就会更新,可能需要时间比较长。

更新完成后,Ctrl+Alt+T打开终端,输入以下指令,没有问题就是换好了。

sudo apt-get update

 到此为止,换源就结束了。

三.ROS Melodic安装

(1)设置安装源,这里提供国内的安装源

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'

(2)设置秘钥

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

(3) 更新Ubuntu 18.04 LTS的最新可用软件包列表

sudo apt-get update
  • 如果出现如下错误

W: GPG 错误:http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
E: 仓库 “http://mirrors.ustc.edu.cn/ros/ubuntu bionic InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

  • 解决办法
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

再执行

sudo apt-get update

(4)开始安装ROS Melodic

sudo apt-get install ros-melodic-desktop-full
  • 如果出现如下问题

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用)
E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?

  • 解决办法
sudo rm -r -f /var/lib/dpkg/lock-frontend
sudo  rm  -r -f /var/lib/dpkg/lock

 再执行sudo apt-get install ros-melodic-desktop-full命令,成功运行

  • 避免后面出现sudo rosdep:找不到命令提示,这里需要执行如下命令

    sudo apt install python-rosdep

(5)初始化rosdep

开始使用ROS之前,先初始化rosdep.

sudo rosdep init
  • 如果出现错误:

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

  • 解决办法

如果没有安装gedit的,先安装gedit

sudo apt-get install gedit

然后在终端中输入以下指令,安装了gedit的直接输这条指令

sudo gedit /etc/hosts

在文件末尾添加

151.101.84.133 raw.githubusercontent.com

然后保存文件退出即可。(保存文件快捷键Ctrl+S,关闭窗口快捷键Ctrl+Q)

再执行

sudo rosdep init

如果还出现上面同样的错误,更换好一点的网络重复这条指令,网络好的情况下不会再出现上面同样的错误。

有这样的显示,就说明初始化成功了。

(6)rosdep update

按照终端提示,输入以下指令,执行rosdep update更新

rosdep update

  • 如果出现如下错误
ERROR: error loading sources list:
	('The read operation timed out',)
  • 解决办法(比较推荐第二种办法)
  1. 网络好的情况下可多尝试几次
  2. 网站https://ghproxy.com/支持github的资源代理,非常好用,我们将用此代理加速rosdep对Github Raw的访问,进而解决rosdep update超时问题。
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list

如果没有20-default.list文件,说明rosdep init未成功,回到上一步继续rosdep init

打开文件后,在所有https://raw.githubusercontent.com前加上https://ghproxy.com/:如下所示:

Ctrl+S保存文件并退出

接下来输入以下指令

sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py

打开文件后,在DEFAULT_INDEX_URL前面加上https://ghproxy.com/,修改完成如下所示:

Ctrl+S保存文件并退出。

按照上述修改完成后,再次尝试执行rosdep update,如有报错,继续rosdep update,网络好的情况下,两到三次就可以成功。

(7)添加ros环境变量

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

(8)为了构建和管理开发者自己的ROS工作空间,还需安装rosinstall

sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

 (9)构建catkin_ws工作空间

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

cd ~
mkdir -p catkin_ws/src

切换到src文件夹: 

cd ~/catkin_ws/src

初始化文件夹: 

 catkin_init_workspace

编译工作空间 catkin_make

cd ~/catkin_ws/
catkin_make

所有编译工作都要在catkin_ws文件夹下进行。

设置环境变量:

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

在编译之前,每次都要执行steup.bash文件,设置好环境变量后,直接catkin_make编译文件就可以了。

(10)小海龟实例测试ROS是否安装成功

打开第一个终端,运行以下命令,一直开启,不要关闭

roscore

打开第二个终端(Ctrl+ATL+T),运行以下指令,一直开启,不要关闭终端

rosrun turtlesim turtlesim_node

 会出现一个小海龟界面

 

打开第三个终端,运行以下指令,对小海龟实现键盘控制

rosrun turtlesim turtle_teleop_key

 移动小海龟时,需要选中第三个终端,不然可能就无法移动。用键盘的上下左右键移动。

如果键盘可以控制小海龟移动,说明ROS安装成功。

四.PC端turtlebot3仿真

(1)安装turtlebot3依赖的包

sudo apt install ros-melodic-desktop-full ros-melodic-joy ros-melodic-teleop-twist-joy ros-melodic-teleop-twist-keyboard ros-melodic-laser-proc ros-melodic-rgbd-launch ros-melodic-depthimage-to-laserscan ros-melodic-rosserial-arduino ros-melodic-rosserial-python ros-melodic-rosserial-server ros-melodic-rosserial-client ros-melodic-rosserial-msgs ros-melodic-amcl ros-melodic-map-server ros-melodic-move-base ros-melodic-urdf ros-melodic-xacro ros-melodic-compressed-image-transport ros-melodic-rqt-image-view ros-melodic-gmapping ros-melodic-navigation ros-melodic-interactive-markers ros-melodic-turtlebot3-gazebo

(2)下载turtlebot3源码

打开工作空间

cd ~/catkin_ws/src

下载源码到catkin_ws/src中

此处git clone直接从GitHub上下载有点慢,我下载好放到我自己的Gitee上了,速度会快一些

git clone https://gitee.com/qianlong_workspace/turtlebot3.git
git clone https://gitee.com/qianlong_workspace/turtlebot3_msgs.git
git clone https://gitee.com/qianlong_workspace/turtlebot3_simulations.git

编译:

回到catkin_ws文件夹

cd ~/catkin_ws

编译

catkin_make

(3)环境设置

在.bashrc文件中设置turtlebot3机器人构型,免去后续每次运行前的设置。构型为burger、waffle或waffle pi,根据自己机型设置

sudo gedit ~/.bashrc

在打开的文件最后添加一行:

export TURTLEBOT3_MODEL=burger

(4) Gazabo导航仿真

(1)建图

  • 启动Gazabo仿真
roslaunch turtlebot3_gazebo turtlebot3_world.launch
  • 如果出现以下错误

  • 解决办法
sudo gedit ~/.ignition/fuel/config.yaml

 将url: https://api.ignitionfuel.org用#注释掉

并添加url: https://api.ignitionrobotics.org,注意与name对齐,不然还会报错

 再次启动Gazabo,出现以下画面:

  • 启动SLAM
roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
  • 键盘控制
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

wadxs键控制机器人在地图中缓慢移动,可以在rviz中看到地图不断完善 

  • 保存地图
rosrun map_server map_saver -f ~/map 

~/map 是保存地图的路径,想换地方的可以自己改

然后关闭所有终端。

(2)导航

  • 启动Gazabo
roslaunch turtlebot3_gazebo turtlebot3_world.launch
  • 加载地图
roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

 先点击Rviz中的2D POSE Estimate按钮,初始化当前机器人在地图中的实际位姿(对比机器人在gazebo中的状态)

再用2D Nav Goal设置目标点测试导航功能即可。

Turtlebot3 Burger实体机配置会写在下一篇文章里。

参考链接:

Ubuntu18.04安装ROS Melodic(详细,亲测安装完成,有清晰的截图步骤)_mango-CSDN博客

针对ROS安装过程中出现rosdep update超时问题的解决方法_lemonxiaoxiao的博客-CSDN博客_rosdep update超时

[ROS]TurtleBot3 仿真学习(二)(ubuntu18.04+Ros melodic)_柯锐的博客-CSDN博客

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐