- 安装 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 `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 '' | 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