一,安装ubuntu 18.04
下载链接:https://releases.ubuntu.com/18.04.5/找到合适的版本安装
二,安装ROS melodic版本
1.设置sources.list(设置软件源),将电脑设置为可以从http://packages.ros.org接收软件
国外的:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) 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 sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.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 C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3.确保软件更新为最新版本
sudo apt-get update
4.下载ros
sudo apt-get install ros-melodic-desktop-full
5.设置环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
6.安装rosdep
sudo apt install python-rosdep2
7.初始化操作,需要先初始化rosdep
rosdep能够轻松地安装要编译的源代码的系统依赖关系,并且需要在ROS中运行一些核心组件。
在使用 ROS 之前,需要先初始化 rosdep
。
rosdep
使得你可以为你想要编译的源码,以及需要运行的 ROS 核心组件,简单地安装系统依赖。
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.
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133 raw.githubusercontent.com
ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize
直接删除就好
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
rosdep update
8.环境配置,添加ros环境变量。 如果在每次一个新的终端启动时,ROS 环境变量都能自动地添加进你的 bash 会话是非常方便,这可以通过如下命令来实现:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
9.安装rosinstall,rosinstall是一种常用的命令行工具
到这一步,应该已经安装好了运行核心 ROS 包的所有东西。要创建和管理你自己的 ROS workspace,还有单独发布的许多的工具。比如,rosinstall 是一个常用的命令行工具,使你可以通过一个命令为 ROS 包简单地下载许多源码树。
要安装这个工具及其它的依赖以构建 ROS 包,则运行:
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
10.测试ROS是否已经安装成功
第一步:按住Alt+Ctrl+T打开一个新的终端,然后输入roscore
第二步:按住Alt+Ctrl+T打开一个新的终端,然后输入rosrun turtlesim turtlesim_node,会弹出一个小海龟
rosrun turtlesim turtlesim_node
第三步:按住Alt+Ctrl+T打开一个新的终端,然后输入rosrun turtlesim turtle_teleop_key,按键盘上的上下左右箭头,控制小海龟移动
rosrun turtlesim turtle_teleop_key
至此,ROS的安装已经基本完成,下面就可以进行ROS开发了
创建并初始化工作目录
ROS使用一个名为catkin的ROS专用构建系统。为了使用它,用户需要创建并初始化
catkin工作目录,如下所示。除非用户创建新的工作目录,否则此设置只需设置一次。
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
-
执行完之后会在~/下生成catkin_ws工作空间,执行完catkin_init_workspace之后会在src下生成CMakeList.txt
即使这个工作空间是空的(在’src’目录中没有任何软件包,只有一个CMakeLists.txt链接文件),你依然可以编译它:
cd ~/catkin_ws/
catkin_make
catkin_make命令在catkin 工作空间中是一个非常方便的工具。如果你查看一下当前目录应该能看到’build’和’devel’这两个文件夹。在’devel’文件夹里面你可以看到几个setup.*sh文件。接下来首先source一下新生成的setup.*sh文件:
$ source devel/setup.bash
要想保证工作空间已配置正确需确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,采用以下命令查看:
echo $ROS_PACKAGE_PATH
/home/<youruser>/catkin_ws/src:/opt/ros/melodic/share:/opt/ros/melodic/stacks
四,安装gazebo仿真软件
一般独立的gazebo软件在安装ROS时就已经安装好了,检查一下
gazebo
问题一:打开gazebo报错:VMware: vmw_ioctl_command error Invalid
argument
解决方法:
方法1:关闭虚拟机的3D图形加速,注意先关闭虚拟机再修改。
方法2:设置环境变量
export SVGA_VGPU10=0
一劳永逸方法
echo "export SVGA_VGPU10=0" >> ~/.bashrc
问题二:运行gazebo时出现api.ignitionfuel.org找不到
解决:修改~/.ignition/fuel中的config.yaml文件,将url: https://api.ignitionfuel.org修改为url: https://api.ignitionrobotics.org
which gzserver
which gzclient
出现下图:
安装gazebo_ros_pkgs
sudo apt-get install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-ros-control
查看是否安装完全
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash
roscore &
rosrun gazebo_ros gazebo &
rostopic list
rosservice list
五,配置Turtlebot3仿真环境
安装Turtlebot3需要的依赖包
sudo apt-get install 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
cd ~/catkin_ws/src/
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
cd ~/catkin_ws
catkin_make
测试成果:
export TURTLEBOT3_MODEL=burger
roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch
export TURTLEBOT3_MODEL=waffle
roslaunch turtlebot3_gazebo turtlebot3_world.launch
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_gazebo turtlebot3_house.launch
利用键盘控制小车行进
export TURTLEBOT3_MODEL=waffle_pi
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch