用了一段时间的ndigo版本ROS,因为需要想换成melodic版本,因为melodic版本对于ubuntu18.04兼容性最好,所以干脆再换个操作系统。
一,安装ubuntu 18.04
下载链接:https://releases.ubuntu.com/18.04.5/找到合适的版本安装
二,安装ROS melodic版本
设置sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
设置密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
sudo apt install ros-melodic-desktop-full
设置环境
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
。
安装rosdep
sudo apt install python-rosdep2
初始化
sudo rosdep init
rosdep update
若是sudo rosdep init时出现错误,sudo rosdep init ERROR: cannot download default sources list from:【closed】解决如下:
#打开hosts文件
sudo gedit /etc/hosts
#在文件末尾添加
151.101.84.133 raw.githubusercontent.com
#保存后退出再尝试
此刻启动roscore可能会出现问题“ROS安装问题: “Command ‘roscore‘ not found, but can be installed with: sudo apt install python-roslaunch“”
这是因为启动roscore需要/opt/ros/melodic/bin目录下的执行文件roscore,我们到该目录下去找发现并没有roscore,所以猜测是sudo apt-get install ros-melodic-desktop-full有没安装的软件包,解决办法如下:
sudo apt-get install ros-melodic-desktop
具体可参考官网教程http://wiki.ros.org/cn/melodic/Installation/Ubuntu
三,创建工作目录
创建目录
mkdir ~/catkin_ws
echo "export ROS_PACKAGE_PATH=~/catkin_ws:${ROS_PACKAGE_PATH}">> ~/.bashrc
. ~/.bashrc
cd ~/catkin_ws
mkdir src
catkin_make
四,安装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