- 安装 ubuntu 16.04
- 修改 /etc/sudoers. 修改 %sudo ALL=(ALL:ALL) NOPASSWD:ALL 这样有sudo权限的用户无需输入密码.
- 增加网络支持. 修改源为 tsinghua 的源. sudo apt install openssh-server samba. 添加 samba的共享目录和用户.
- 取出一些无用的包 sudo apt remove --purge libreoffice-* totem* rhythmbox* thunderbird* transmission-* eog shotwell evince* simple-scan aisleriot gnome-mines gnome-sudoku gnome-screensaver gnome-screenshot gnome-orca gnome-mahjongg gnome-font-viewer gnome-calendar gnome-calculator gnome-system-log gnome-user-guide firefox* ufw
- 添加网络桌面共享
sudo apt install dconf-editor xvfb x11vnc vim bash-completion yasm
打开 程序, 要求使用密码确认.
dconf-editor 设置 org -> gnome -> desktop -> remote-access 取消勾选requlre-encryption
命令行执行 gsettings set org.gnome.Vino require-encryption false ; gsettings set org.gnome.Vino use-upnp true
添加 /usr/local/bin/fakevncscreen点击(此处)折叠或打开
- $ cat fakevncscreen
- #!/bin/bash
- while [ 1 ]; do
- xvfb_cnt=`pidof Xvfb`
- if [[ $xvfb_cnt -eq 0 ]]; then
- Xvfb :95 -screen 0 1280x1024x16 &
- sleep 2
- fi
- x11_cnt=`pidof x11vnc`
- if [[ $x11_cnt -eq 0 ]]; then
- x11vnc -ncache 10 -listen 0.0.0.0 -rfbport 9595 -noipv6 -passwd wanglong -display :95 & #每次vncview退出后, 此程序也会退出.
- else
- sleep 3
- fi
- done
- $ cat fakevncscreen
- 从源送货机器人上拷贝工程到本地
点击(此处)折叠或打开
- //需要拷贝的内容
- sudo scp -P 22 -r ray@192.168.43.16:/etc/ROS_ENV /etc/
- sudo scp -P 22 -r ray@192.168.43.16:/usr/local/bin/fakevncscreen /usr/local/bin/
- scp -P 22 -r ray@192.168.43.16:~/.bashrc ~
- scp -P 22 -r ray@192.168.43.16:/work/CuteRobot/{ArTag,doc,dpkg_list_ITX,dpkg_list_nuc} /work/CuteRobot/
- scp -P 22 -r ray@192.168.43.16:/work/CuteRobot/Waffle/{ClearSpecialPkg.sh,SlamMap,src,Voices} /work/CuteRobot/Waffle/
- scp -P 22 -r ray@192.168.43.16:/work/itx_apps/* /work/itx_apps/
- scp -P 22 -r ray@192.168.43.16:/work/nonRosStdPkgs/* /work/nonRosStdPkgs/
- scp -P 22 -r ray@192.168.43.16:/work/reference/* /work/reference/
- scp -P 22 -r ray@192.168.43.16:/work/Waffle/src /work/Waffle_Backup/
- 部署 ROS_Kinetic.
点击(此处)折叠或打开
- http://wiki.ros.org/cn/kinetic/Installation/Ubuntu
- sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
- sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- 或者
- sudo apt-key adv --keyserver 'hkp://pgp.mit.edu:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- 或者
- curl -sSL 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654' | sudo apt-key add -
点击(此处)折叠或打开
- sudo apt-get update
- sudo apt-get install ros-kinetic-desktop-full
- sudo rosdep init
- rosdep update
- wstool init src
- rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
- sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential
点击(此处)折叠或打开
- sudo apt install android-tools-adb git-review tree lrzsz
- sudo apt install dkms graphicsmagick lame libreadline-dev libtinfo-dev libtool-bin libv4l2rds0 xbase-clients
- sudo apt install ninja-build libceres-dev libceres1 liblua5.3-0 liblua5.3-dev libpostproc-dev ros-kinetic-amcl ros-kinetic-ar-track-alvar ros-kinetic-ar-track-alvar-msgs ros-kinetic-base-local-planner ros-kinetic-bfl ros-kinetic-carrot-planner ros-kinetic-clear-costmap-recovery ros-kinetic-costmap-2d ros-kinetic-costmap-converter ros-kinetic-costmap-prohibition-layer ros-kinetic-ddynamic-reconfigure ros-kinetic-dwa-local-planner ros-kinetic-ecl-build ros-kinetic-ecl-concepts ros-kinetic-ecl-config ros-kinetic-ecl-errors ros-kinetic-ecl-exceptions ros-kinetic-ecl-license ros-kinetic-ecl-mpl ros-kinetic-ecl-threads ros-kinetic-ecl-time ros-kinetic-ecl-time-lite ros-kinetic-ecl-type-traits ros-kinetic-ecl-utilities ros-kinetic-fake-localization ros-kinetic-global-planner ros-kinetic-laser-proc ros-kinetic-map-msgs ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-move-base-msgs ros-kinetic-move-slow-and-clear ros-kinetic-nav-core ros-kinetic-navfn ros-kinetic-navigation ros-kinetic-navigation-layers ros-kinetic-people-msgs ros-kinetic-robot-pose-ekf ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-rosserial-python ros-kinetic-rosservice ros-kinetic-rotate-recovery ros-kinetic-serial ros-kinetic-social-navigation-layers ros-kinetic-urg-node ros-kinetic-urg-stamped ros-kinetic-usb-cam ros-kinetic-voxel-grid ros-kinetic-yaml-cpp-0-3 ros-kinetic-yocs-velocity-smoother ros-kinetic-range-sensor-layer ros-kinetic-urg-c
- 执行 /work/CuteRobot/Waffle/src/third_pkgs/cartographer/scripts/install_proto3.sh
- http://wiki.ros.org/cn/kinetic/Installation/Ubuntu
- 拷贝 ROS的配置信息. itx_backup
scp -P 22 -r ray@192.168.43.16:/etc/ROS_ENV .
scp -P 22 -r ray@192.168.43.16:/etc/udev/rules.d/ros-common.rules .
scp -P 22 -r ray@192.168.43.16:/opt/ros/kinetic/share/usb_cam/launch .
scp -P 22 -r ray@192.168.43.16:~/.ros/camera_info .
scp -P 22 -r ray@192.168.43.16:~/.bashrc .
- 另外 编译 google cartographer 不通过.参考 https://blog.csdn.net/qq_42138662/article/details/106732334
点击(此处)折叠或打开
- cd /work/waffle/src
- git clone https://github.com/googlecartographer/cartographer_ros.git
- git clone https://github.com/googlecartographer/cartographer.git
- git clone https://github.com/ceres-solver/ceres-solver.git
- cd ceres-solver
- git checkout 1.14.0
- 修改 CMakeList.txt 中第一行添加 set(CMAKE_CXX_FLAGS "-std=c++11")
- mkdir build && cd build; cmake … -DBUILD_SHARED_LIBS=ON; make; sudo make install
- 单独安装protobuf
- sudo apt-get install autoconf autogen
- git clone https://github.com/protocolbuffers/protobuf.git
- cd protobuf
- git submodule update --init --recursive
- ./autogen.sh
- ./configure
- make
- # 这一步可能会报错,无视就好
- make check
- sudo make install
- sudo ldconfig # refresh shared library cache.
- sudo rosdep init//这一步会提示已经有这个文件了,可以跳过
- rosdep update
- rosdep install --from-paths src --ignore-src --rosdistro=${ROS_DISTRO} -y
- cd /work/waffle/src