ubuntu16.04下ros kinetic安装及hector_quatrotor安装运行
一、前置准备
1.安装Ubuntu16.04(虚拟机)
安装教程什么的网上有很多,我就不说了,只写几点要注意的:
2.注意事项
(1):安装时的硬件参数设置
-
英语不好,中文界面
-
内存------2G以上(我是4,可以运行gazebo时不那么卡)
-
处理器–根据机器尽量数据好点
-
硬盘-----100G以上(我给了240,同上)
-
网络适配器–NAT(其他模式好像经常有问题,如果这个也有问题,建议先检查网络连接,再重启电脑,实在不行重装,实践过,重装可以解决)
-
显示器–关掉加速3D图形(不关的话运行gazebo会报错)
(2):打开ubuntu16.04
-
开着流量让它进度条跑着就行,玩玩手机,估计得1小时左右
-
提示重启,会黑屏并显示让拔除驱动器,直接在虚拟机控制界面关闭客户机,
然后<编辑虚拟机设置> — <CD/DVD> 关闭启动时连接
(3):初步设置(第一次开机后)
- 提示更新的都更新一下
- 到设置里面把常用的都固定到启动器 方法:打开软件界面–右侧启动栏–右键
- 更换下载源,ros下载快(重要) 方法: 打开软件与更新–中国的服务器–其他站点–建议阿里aliyun和清华tsinghua ,等更新,如果一直卡在更新开始的进程,重装虚拟机吧,我也没办法
- 打开终端命令
ctrl+alt+t
,固定到启动器,有点用 - 火狐浏览器,首选项–搜索设置为百度,或者去Ubuntu软件里下一个chromium(chrome linux版)
- 懒得下搜狗,去设置里把输入法改一下就行,再改一下切换键位就好了
- 快照(每一个重要软件安装后都要做!!!–新手)
- 安装tools ,大界面,可以与windows互传文件,拖动就行(运行很多程序时就不要作死了,会卡死的,最好提前传,如果卡死了,虚拟机关机重启,如果不行,电脑关机重启),使用方便
sudo apt-get install open-vm-tools
- 快照(记得编写序号,方便恢复)!!然后重启虚拟机
二、ros kinetic安装
-
写在前面:最好用手机热点,最好照着官网安装
1.安装ros kinetic
- 软件源
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-get update
- 安装桌面完全版(最好)
sudo apt-get install ros-kinetic-desktop-full
如果报错有没有下载完的包,执行
sudo apt-get update
然后再执行
sudo apt-get install ros-kinetic-desktop-full
- 配置环境
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 安装依赖
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
- 为初始化做准备
sudo apt install python-rosdep
- 初始化
sudo rosdep init //这里容易出错,网上有教程
rosdep update
到此安装成功
2.检测安装
- 第一个终端
启动ros master
roscore
如图,则运行成功
- 第二个终端
启动小海龟仿真器
rosrun turtlesim turtlesim_node
出现小海龟
- 第三个终端
启动海龟控制节点
rosrun turtlesim turtle_teleop_key
鼠标停在此终端,按上下左右键,控制小海龟
- 在各终端按 ctrl +c 结束进程
3.运行gazebo
切记:手机热点
打开终端
gazebo
然后等着,一定要等,其他的方法有风险,这个是在从国外的网站加载基础模型(貌似),会特别慢,开着热点等着就行了,
这个界面出现就OK了,也就是那个橙色的启动框消失。
终端按 ctrl +c ,然后再试一次,这次启动会很快,如果没问题。
快照!!
三、hector_quatrotor安装运行
1.安装hector_quatrotor
参考博文:
hector_quadrotor在ROS(Kinetic)下的安装
- (1)创建工作空间
mkdir -p ~/catkin/src //catkin是工作空间名 src是代码或功能包文件夹
- (2)下载源码
cd ~/catkin/src
git clone https://github.com/tu-darmstadt-ros-pkg/hector_quadrotor.git
- (3)安装依赖
cd hector_quadrotor
rosdep install --from-path . --ignore-src --rosdistro kinetic
- (4)编译工作空间
cd ~/catkin
catkin_make
- (5)配置环境
source devel/setup.bash
可以选择性的将source /home/用户名/catkin/devel/setup.bash添加到~/.bashrc启动文件中。
- (6)安装键盘控制程序
sudo apt-get install ros-kinetic-teleop-twist-keyboard
- (7)开始仿真
在catkin文件夹下打开终端,运行launch
方式一:室内环境
roslaunch hector_quadrotor_demo indoor_slam_gazebo.launch
方式二:室外环境
roslaunch hector_quadrotor_demo outdoor_flight_gazebo.launch
等一会儿会出现rviz和gazebo的仿真界面,不过等会儿就会报错,并且
在另一终端运行
rosservice call /enable_motors "enable: true"
也会找不到服务,
运行
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
也无法按 t 起飞
这只是为了验证hector_quadrotor安装成功。
- (8)改变摄像头朝向
hector_quatrotor/hector_quadrotor_description/urdf/quadrotor_hokuyo_utm30lx.urdf.xacro
<!-- Forward facing camera -->
<xacro:include filename="$(find hector_sensors_description)/urdf/generic_camera.urdf.xacro" />
<xacro:generic_camera name="front_cam" parent="base_link" ros_topic="camera/image" cam_info_topic="camera/camera_info" update_rate="10" res_x="320" res_y="240" image_format="R8G8B8" hfov="90">
<origin xyz="0.0 0.0 -0.1" rpy="0 0 0"/>
</xacro:generic_camera>
修改 <origin xyz="0.0 0.0 0.0" rpy="0 0 0"/>
xyz="0.0 0.0 0.0"为相机在XYZ轴的位置
rpy="0 0 0"为相机绕XYZ轴旋转的角度(弧度值表示)
给定参数,确定相机朝向
2.gazebo7更新
参考博文
gazebo 7.0 升级到7.15 参考他人博客
以上问题都是由于ros-kinetic-desktop-full自带的gazebo版本过低导致的(我浪费了好多天)
按照以下步骤,升级gazebo7
sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install gazebo7 gazebo7-common
升级结束,再安装一个包(报错:fatal error: ignition/math/Inertial.hh: No such file or directory)
sudo apt-get install libignition-math2-dev
3.起飞
第一个终端
运行launch(二选一)
第二个终端
rosservice call /enable_motors "enable: true"
显示 “true”
起飞方式1(已安装ros-kinetic-teleop-twist-keyboard):
在第二个终端下继续运行
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
按照说明即可
起飞方式2(不需要ros-kinetic-teleop-twist-keyboard):
在第二个终端下继续运行
rostopic pub /cmd_vel geometry_msgs/Twist
按tab 还是回车我忘了
然后修改参数即可起飞
四、快照
关闭所有界面,拍摄快照,序号、题目、说明。