ros环境安装和vins搭建,快折腾两个星期了,再不出成果,估计。。。。 准备材料:网线,sd卡,读卡器,树莓派3b,pc电脑,路由器,鼠标,显示器,键盘,电源
目录
简述
操作分为两步,一方面是在pc上安装ros+16.04和运行vins源码,另一方面,利用之前的安装好的树莓派,安装turtle和yujng两个包,然后控制yujing机器人
树莓派上的ros配置 ubuntu16.04 + ros + turtle
树莓派安装镜像
首先要在下载树莓派上安装版本ubuntMate16.04的kinetic完整版树莓派3B镜像 - 下载完以后进行安装,这里只讲sd卡启动 1. 大致可分两个步骤一个是格式化sd卡tools 2. 另外一个是烧录,将镜像烧录到sd卡里镜像烧录工具 usb安装工具 - 镜像是为树莓派3B板子准备的镜像,所以安装其他板子可能有问题,这里不做太多其他方面的研究 安装完成后,插上电源 系统的用户名为corvin,密码也是corvin,同时root用户的密码也是corvin;链接
sd卡内存释放
A:在终端中执行sudo raspi-config,然后会提示输入密码,输入corvin后,这样将打开树莓派的软件配置工具界面,通过上下箭头小键盘来按照如下选择;
B:选择“Advanced Options”回车进入二级菜单,选择第一项“Expand Filesystem”回车,此时会弹出窗口提示“Root patition has been resized”确认OK;
C:此时会回到raspi-config首页面,然后点击Tab按键将光标切换到Finish上回车,此时会提示需要重启,直接确定,重启后等待开机后,此时分区就正常了; 可以通过df -h来查看,发现根分区大小已经正常了;
创建热点
下面来介绍如何使用创建AP热点的功能,这样即使我们没有路由器,没有网线,我们也可以通过树梅派自己创建无线热点,这样笔记本连上树梅派创建的AP热点然后就可以通过ssh连接树梅派来直接调试了。
A:首先来创建AP热点,开启此项功能的前提是树梅派目前没有连接上WiFi才能创建AP热点,因为树梅派的Wifi芯片不支持,一边创建热点提供其他设备连接,一边还能自己连接着wifi上网,开启的命令是:sudo create_ap -n wlan0 AP_Name(热点名称) AP_PWD(连接密码),需要注意的是热点名和密码都可以自己修改的。
vnc链接
pc上下载VNC Viewer, 获取树莓派的ip,可以网线,也可以查路由,也可以ipscaner来进行查询
创建初始化空间
创建工作空间
第一步:通常在一个项目中,你开发的关于ROS的代码都在 catkin 工作空间中。所以,你需要创建和初始化工作空间。
首先,创建一个catkin工作空间的顶层目录和一个名为 src 的子目录。顶层目录名字可以任意,通常为 catkin_ws。 如下创建这两个目录:
mkdir -p ~/catkin_ws/src
如果你想把catkin_ws放在特定文件夹下,那么你需要在该文件夹下打开终端,然后运行如下命令:
mkdir -p ./catkin_ws/src
第二步:进入 src 目录
cd ~/catkin_ws/src
第三步:初始化catkin工作空间
catkin_init_workspace
镜像安装turtle
1) 打开终端,运行如下命令: (可以下载编码进行编译)
sudo apt-get update
sudo apt-get install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-kobuki-ftdi ros-kinetic-ar-track-alvar-msgs ros-kinetic-turtlebot-simulator
还有ros-kinetic-rocon-remocon ros-kinetic-rocon-qt-library没有安装,如果尝试安装会提示无法定位软件源,因此需要手动安装。
2)ros-kinetic-rocon-remocon ros-kinetic-rocon-qt-library无法定位软件源,手动安装,使用git下载软件源码到ros工作目录catkin_ws/src/下(创建方法参考[http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment]), 等待编译。git clone https://github.com/robotics-in-concert/rocon_qt_gui.git
5)下载完成,在编译之前需要添加编译依赖资源,pyrcc5,pyrcc4,因此手动安装这两个依赖项,
sudo apt-get install pyqt4-dev-tools
sudo apt-get install pyqt5-dev-tools
然后编译该工作目录cd ~/catkin_ws/catkin_make至此(ros创建工作目录),Turtlebot就成功安装。
6)检查别名:一个终端启动ros[roscore],然后树莓派连接机器turtle:roscore输入检测命令:另一个终端输入[ls /dev/kobuki] 会显示有对应的设备/dev/kobuki 如果没有,添加别名:rosrun kobuki_ftdi create_udev_rules 重插USB线,在进行上述的检测命令
7)通过遥控移动(仅TurtleBot,通过Turtlebot的上网本操作)打开Turtlebot开关,状态点亮。启动Turtlebot,在上网本,打开一个新终端,运行如下命令:
roslaunch turtlebot_bringup minimal.launch
启动键盘遥控,在上网本,打开另一个新终端,运行如下命令:
roslaunch turtlebot_teleop keyboard_teleop.launch点
通过遥控移动(仅TurtleBot,通过Turtlebot的上网本操作)
打开Turtlebot开关,状态点亮。
启动Turtlebot,在上网本,打开一个新终端,运行如下命令:
roslaunch turtlebot_bringup minimal.launch
启动键盘遥控,在上网本,打开另一个新终端,运行如下命令:
roslaunch turtlebot_teleop keyboard_teleop.launch
点击键盘“i”前进。
通过发布主题命令 命令:
rostopic pub -r 10 /cmd_vel_mux/input/navi geometry_msgs/Twist '{linear: {x: 0.1, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'
在pc ubantu16.04安装ros并运行vins
下载镜像,然后进行安装
software&Update是能下面四个,并且更换源为中国阿里镜像,或者大学镜像
- 安装源
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'
- 增加key
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
- 更新
sudo apt-get update
- 安装,这里介绍Desktop-Full安装: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
sudo apt-get install ros-kinetic-desktop-full
- 解决依赖
sudo rosdep init
rosdep update
- 环境设置
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 安装rosinstall,便利的工具
sudo apt-get install python-rosinstall
vins安装及运行
- 依赖运行
sudo apt-get install ros-kinetic-cv-bridge ros-kinetic-tf ros-kinetic-message-filters ros-kinetic-image-transport
- 装ceres-solver:
安装依赖:
- CMake
sudo apt-get install cmake
- google-glog + gflags
sudo apt-get install libgoogle-glog-dev
- BLAS & LAPACK
sudo apt-get install libatlas-base-dev
- Eigen3
sudo apt-get install libeigen3-dev
- SuiteSparse and CXSparse (optional)
- - If you want to build Ceres as a *static* library (the default)
- you can use the SuiteSparse package in the main Ubuntu package
- repository:
sudo apt-get install libsuitesparse-dev
下载编译ceres-solver
可以下载源码进行编译
cd ~/tools/
git clone https://github.com/ceres-solver/ceres-solver.git
cd ceres-solver/
mkdir build
cd build
cmake ..
make -j1
sudo make install
sudo apt-get install build-essential libgtk2.0-dev libvtk5-dev libjpeg-dev libtiff5-dev libjasper-dev libopenexr-dev libtbb-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libpng-dev libdc1394-22-dev
安装VINS-Mono
下载源码
cd ~/vins-mono-catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/VINS-Mono.git
cd ../
catkin_make
source ~/vins-mono-catkin_ws/devel/setup.bash
source ~/vins-mono-catkin_ws/devel/setup.bash
https://www.cnblogs.com/Jessica-jie/p/6950604.html
roscore
source ~/vins-mono-catkin_ws/devel/setup.bash
roslaunch vins_estimator euroc.launch
source ~/vins-mono-catkin_ws/devel/setup.bash
roslaunch vins_estimator vins_rviz.launch
source ~/vins-mono-catkin_ws/devel/setup.bash
rosbag play YOUR_PATH_TO_DATASET/MH_01_easy.bag
rosbag play ~/MH_01_easy.bag
运行VINS
打开三个终端, 第一个终端:
source ~/vins-mono-catkin_ws/devel/setup.bash ##///配置环境变量 ,,注意是vins ,这与之前创建的工作空间名字有关
roslaunch vins_estimator euroc.launch ///这是运行euroc数据集的启动节点,,还有其他一些启动节点
第二个终端:
source ~/vins-mono-catkin_ws/devel/setup.bash ##///配置环境变量 ,,注意是vins ,这与之前创建的工作空间名字有关
roslaunch vins_estimator vins_rviz.launch ////##启动rviz
第三个终端:
source ~/vins-mono-catkin_ws/devel/setup.bash ##///配置环境变量 ,,注意是vins ,这与之前创建的工作空间名字有关
rosbag play YOUR_PATH_TO_DATASET/MH_01_easy.bag ###///播放bag数据集.
3. Performance on EuRoC dataset
3.1Download EuRoC MAV Dataset.Although it contains stereo cameras, we only use one camera.
3.2 Open three terminals, launch the vins_estimator , rviz and play the bag file respectively. Take MH_05 as example:
复制代码
[1]roscore//终端1 [2]roslaunch vins_estimator euroc.launch ///终端2estimation roslaunch benchmark_publisher publish.launch ///ground-truth [3]roslaunch vins_estimator vins_rviz.launch 等同于---rosrun rviz rviz -d /home/wj/catkin_ws/src/VINS-Mono/config/vins_rviz_config.rviz [4]rosbag play YOUR_PATH_TO_DATASET/MH_05_difficult.bag ---rosbag play /home/wj/Downloads/dataset/EuRoC/ROS_bag/MH_05_difficult.bag [5]cd ~/bagfiles rosbag record -a 记录推送数据 **注意:launch要在其工作空间执行** ros:~$ cd vins-mono-catkin_ws ros:~/vins-mono-catkin_ws$ source ~/vins-mono-catkin_ws/devel/setup.bash ros:~/vins-mono-catkin_ws$ roslaunch vins_estimator euroc.launch ros:~$ cd vins-mono-catkin_ws ros:~/vins-mono-catkin_ws$ source ~/vins-mono-catkin_ws/devel/setup.bash ros:~/vins-mono-catkin_ws$ roslaunch benchmark_publisher publish.launch
问题1
在终端执行如下的命令:
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 今天刚开机运行sudo apt-get update的最后出现了
W: GPG error: http://packages.ros.org trusty InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY F42ED6FBAB17C654
在谷歌上搜到了解决方案,不敢独享,在此分享给大家。
解决方案:
在终端执行如下的命令:
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys
这里的
然后在终端运行: sudo apt-get update
这个命令即可解决这个问题。
这里的
sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys F42ED6FBAB17C654
F42ED6FBAB17C654 然后在终端运行: sudo apt-get update就可以了
https://blog.csdn.net/moyu123456789/article/details/100893156