【配置】Ubuntu、ROS 、moveit源码安装及开发环境配置

First of all

转战ROS后的一些环境配置的常规操作,为了方便之后有问题做重复工作也为了分享,特此记录。
其中需要注意的是:安装前要认真阅读官方教程!
很多问题官方教程就能够解决。


虚拟机

这里可以用虚拟机。推荐vm虚拟机。


Ubuntu

这里比较推荐英文安装,否则可能会出现cd 桌面这样的语句,很不协调,但是英文安装就没有中文输入法了。

在ubuntu上安装中文输入法-搜狗拼音

建议直接安装搜狗拼音参考

  1. 图形界面ubuntu->software->fcitx
    sudo apt-get install -f
    sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb

  2. 进入System Settings --> Language Support;
    input method system :fcitx
    Apply System-Wide

  3. 右上角的键盘标志,选择Configure Current Input Method,进入到Add input method界面,将下面的Only Show Current Language 点掉后,在搜索栏搜索搜狗拼音,选中之后进行添加,如果找不到sogou pinyin,则重启主机重新操作。

  • 其他问题
  1. 如果右上角没有键盘标志,则参考->百度经验
  2. cd到sogoupinyin_2.2.0.0108_amd64.deb所在目录下之后再进行安装。

文件对比工具

sudo apt-get install meld

ubuntu网速慢的原因找到啦!

在这里插入图片描述

deb的安装与启动

  • 首先说一下tar包的安装方法->here
    其实就是有makefile的包怎么安装,make,sudo make install完事。
  • deb包
    使用deb直接安装有时候会出现,安装包名和包名和启动名不一样的情况(绝大部分情况都是包名和启动名一样且在安装包名中),实属头疼,这里写一下如何找到安装包名。
sudo dpkg -i 安装包名        //先把包安装了
sudo dpkg -s 包名			//注意这里的包名指的并不是安装包名
dpkg -L 包名                //这里就可以看到启动名字了

另外可以直接双击打开deb包,进入应用程序下载界面能够直接看到pkg的名字。


ROS

安装

基本所有的安装问题在官网上都能找到。

  • sudo rosdep init 报错–> sudo gedit /etc/resolv.conf
    将原有的nameserver这一行注释,并添加以下两行:
    nameserver 8.8.8.8 #google域名服务器
    nameserver 8.8.4.4 #google域名服务器
    保存退出,执行( or use vpn) sudo apt-get update
  • rosdep update 报错–>疯狂 select best server,或趁着早上大家都没起来的时候赶紧执行。
  • attention: if you changed server you must star form sudo rosdep init

遇事不决

source ~/catkin_ws/devel/setup.bash

使用

git

python 汇总

Kdevelop开发环境

添加到桌面:

cd ~/Desktop
touch Kdevelop.desktop
chmod +x Kdevelop.desktop
sudo vim Kdevelop.desktop
添加内容:
[Desktop Entry]
Type=Application
Terminal=false
Exec=bash -i -c “kdevelop”
Name=kDevelop
Icon=kdevelop

ps: 18.04没法用!

sudo rm -rf build/ 打开kDevelop,使用shell或者桌面图标均可 点击“工程”->“打开工程”
找到catkin_ws/src 下的 CMakelists.txt,选中,点击“Next”, 将工程名称修改为自己的(默认为src)
"Finish” 出现“配置构建目录”窗口 将“构建目录”改为 /home/user/catkin_ws/build/(起初删除的那个)
选择合适的构建类型
“Debug/Release”,可在CMakeList.txt中加入下面的指令,来设置编译模式。注意根据自己的实际情况设定Debug或者Release
-DCATKIN_DEVEL_PREFIX=…/devel -DCMAKE_INSTALL_PREFIX=…/install


应用

  • 创建工作空间
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/
catkin_make
source devel/setup.bash //执行下面这个就不用每次都source啦
  • ROS工作空间永久添加到环境变量中
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

moveit安装

moveit二进制文件安装可能会有很多bug及问题,这里推荐使用源码安装。而且最好使用最新版本而不是使用老版本。

  • 在ubuntu下安装rosinstall时很慢,根据rosinstall的文件内容,可以在windows上下载后拷贝到ubuntu系统下使用。

  • 修改过内容后需要catkin build, 编译时间过长(约50min,如果是第一次编译则可能需要30min以上),对于调试不利。(官方教程中有关于如何部分编译的方法这里没有探究)
    [build] Summary: All 40 packages succeeded! [build] Ignored: 6 packages were skipped or are blacklisted. [build] Warnings: 29 packages succeeded with warnings. [build] Abandoned: None. [build] Failed: None. [build] Runtime: 12 minutes and 38.5 seconds total.

  • 部分编译moveit-Optional: Install a Compiler Cache

【参考】

echo "source ~/ws_moveit/devel/setup.bash" >> ~/.bashrc
  • 卸载moveit->here
sudo apt-get remove ros-<ros-distro>-moveit-*
sudo apt-get autoremove
  • libboost库冲突问题,如果你首先安装了ros然后又安装了openrave,那么你在源码编译moveit的时候就会出现liboost库的冲突提示!他们两个都会安装符合自己版本的boost库。相同的问题->here

/usr/bin/ld: warning: libboost_system.so.1.65.1, needed by /opt/ros/melodic/lib/libroscpp.so, may conflict with libboost_system.so.1.58.0
/usr/bin/ld: warning: libboost_system.so.1.65.1, needed by /opt/ros/melodic/lib/libroscpp.so, may conflict with libboost_system.so.1.58.0

ROS is 1.65.1
在这里插入图片描述
so openrave is 1.58.0.

奇怪的是在一段时间不用之后发现又能重新编译通过,推断可能是缓存得到清除后有能够重新定位。【已解决】libboost_program_options.so.1.65.1: 无法添加符号: DSO missing from command line

但是现在有一个疑问,moveit源码里并没有ompl,那么moveit是如何实现规划的呢?(看源码todo)


rviz

首先安装

sudo apt-get install ros-<ros-distro>-moveit-visual-tools

【参考】

【问题】
尝试运行 panda_moveit_config demo.launch会出现
在这里插入图片描述
并且拖动小球,规划不成功!可以看到应该是碰撞检测文件有问题。
思路上参考: 实体Panda机械臂,Moveit规划报Unable to find a valid state nearby the start state (using jiggle fraction …问题 虽然实际上并没有安装franka_ros。此问题没有得到解决,考虑到在之后的ikfast使用中也要删去panda_moveit_config这里就将share下的删除。(todo)

此外,
在这里插入图片描述

暂时不将之视为错误->here


moveit setup assistant

roslaunch moveit_setup_assistant setup_assistant.launch

这里是生成panda_moveit_config的教程->here
首先记录ready pose:

joints = [0.0 -0.785 0.0 -2.356 0.0 1.571 0.785]
panda_link8 pose = [
header: 
  seq: 0
  stamp: 
    secs: 1611298362
    nsecs: 672781944
  frame_id: "/world"
pose: 
  position: 
    x: 0.307019570052
    y: -5.22132961561e-12
    z: 0.590269558277
  orientation: 
    x: 0.923955699469
    y: -0.382499497279
    z: 1.3249325839e-12
    w: 3.20041176635e-12 ]
panda_link8 RPY = [3.1415926535848926, -4.8966698080394805e-12, -0.785000000006922]

需要注意的是melodic和kinetic在碰撞检测生成的时候有所不同,简断节说,就是melodic生成的碰撞检测文件更细致也更容易被检测到碰撞,因此要做修改。


real-time内核安装

【准备工作】
首先应该应该先安装openssl
从官网上下载个即可,这里随便举个例子
可以参考->here

tar -zxvf openssl-1.0.2o.tar.gz
cd openssl-1.0.2o
sudo  ./config --prefix=/usr/local --openssldir=/usr/local/openssl  [ATTENTION!!]
sudo  make -j8
sudo make install
openssl version

结果没问题就可了

【安装】

HOSTLDLIBS_sign-file = -L/usr/local/lib -lssl -lcrypto -ldl -lpthread
HOSTLDLIBS_extract-cert = -L/usr/local/lib -lcrypto -ldl -lpthread

【坑】
这里踩了一些坑,其中主要就是对make config文件进行了过多操作,千万不要用“make deconfig”

config错只能清除->make distclean,然后make menuconfig 再配置一遍即可。

make clean
清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。
make distclean
类似make clean,但同时也将configure生成的文件全部删除掉,包括Makefile。

【测试】

总结下来就是:

步骤如下:
1、gedit /boot/grub/grub.cfg
menuentry ‘Ubuntu’ 对应编号0
submenu ‘Advanced options for Ubuntu’ 对应编号1
查找实时系统在子菜单中的排序,通过查子菜单中关键字menuentry来找排序更加方便
假设实时系统在子菜单中的排序为7,那么在子菜单中编号应该为6,从0开始计数
如果是ubuntu和window双系统,会有菜单项
menuentry ‘Window…’ 对应编号为2
2、sudo gedit /etc/default/grub
GRUB_DEFAULT 默认启动系统项
GRUB_DEFAULT = 0,为默认设置,直接进入默认ubuntu系统;
GRUB_DEFAULT=“1>6”:该设置表示默认进入子菜单排序第七的系统,设置实时系统时使用,系统内核数量变化有可能就进入不到实时内核系统。不推荐使用这种方式。推荐使用下面的方式。
GRUB_DEFAULT=“Advanced options for Ubuntu>Ubuntu, with Linux 4.14.12-rt10”
这种“submenu>menuentry”的方式,可靠稳定,推荐使用。
GRUB_DEFAULT= 2,在安装双系统的情况下直接进入Window系统
#GRUB_HIDDEN_TIMEOUT=10,这个最好是注释掉,如果不注释,不能手动选择启动系统项,直接进入系统
对于嵌入式工控机可以不注释
GRUB_TIMEOUT=10 ,可设置一个比较小的时间。
3、sudo update-grub
4、sudo reboot


开机自启动

【16.04】

  • sudo gedit /etc/rc.local 加入启动内容即可(cmh 或 sh)

【18.04】

其中有时候会间歇性的不执行,那么可以sleep一下,详细参考:ubuntu下 rc.local的脚本不运行

实际使用过程中难免遇到各种问题,可以参考->Ubuntu 16.04出现:"Failed to start /etc/rc.local Compatibility"的问题解决思路

systemctl status rc-local.service

猜你喜欢

转载自blog.csdn.net/weixin_44229927/article/details/109880174
今日推荐