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

这里的就是你丢失的public key。这里就是F42ED6FB17C654。

然后在终端运行: sudo apt-get update

这个命令即可解决这个问题。

这里的就是你丢失的public key。这里就是F42ED6FBAB17C654。

sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys F42ED6FBAB17C654

F42ED6FBAB17C654 然后在终端运行: sudo apt-get update就可以了

https://blog.csdn.net/moyu123456789/article/details/100893156