Ubuntu18.04安装ROS Melodic+turtlebot3仿真配置
一.版本选择操作系统为Ubuntu 18.04 LTS 64bit应采用ROS版本为ROS Melodic。二.配置Ubuntu软件库
先说一下基本情况,因为本科毕业设计,需要用到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',)
- 解决办法(比较推荐第二种办法)
- 网络好的情况下可多尝试几次
- 网站
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博客
更多推荐
所有评论(0)