Ubuntu18.04中搭建事件相机模拟器rpg-esim环境

Ubuntu18.04中搭建事件相机模拟器rpg-esim环境

esim 是 ETH 开发的一款的模拟事件相机工作原理的仿真器,其是基于ROS环境的,在安装esim环境之前,需要先安装ROS。在官方给的安装教程中,推荐的是Kinetic,但是Melodic也可以,只需要做少许改动即可。

ROS是机器人操作系统,目前主要安装在Ubuntu下,其中ROS Kinetic对应Ubuntu16.04,ROS Melodic对应Ubuntu18.04,ROS Neotic对于Ubuntu20.04。

根据官方建议,esim在16.04和18.04进行安装和使用比较好。

我开始是在虚拟机上安装的,但无论是在Ubuntu18.04还是在Ubuntu16.04上,最后在建立节点时一直不能全部成功。在师兄的建议下,装了一个双系统Ubuntu18.04,最后安装成功。整个过程花了整整一个星期,其中出现各种错误,差点把心态搞崩了。下面记录一下安装过程及遇到的问题与解决办法。

一、ROS环境搭建

1、ROS Melodic的安装,根据ROS官网上的步骤 http://wiki.ros.org/melodic/Installation/Ubuntu.在Ubuntu软件和更新里面把可从互联网下载下面的五个选项全部选上即设置为允许“main”,“restricted”,“universe”,“multiverse”,一般默认是这样设置的,“源代码”可选上。

2、配置ROS 安装源。

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

3.设置密钥。

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

4、更新资源库,安装桌面完整版,这里要耐心等待会安装一段时间。

sudo apt update
sudo apt install ros-melodic-desktop-full

5、配置环境。

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6、安装依赖包

sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential

7、初始化rosdep

sudo rosdep init
rosdep update

注意:在sudo rosdep init 这一步可能会报错:

~$ sudo rosdep init
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

解决方案:输入命令sudo gedit /etc/hosts,
在文件末尾添加 151.101.84.133 raw.githubusercontent.com

若rosdep update 出错,很大可能是网络问题,可以改用手机热点,多试几次,若实在不行,挂代理。
挂代理,先安装proxychains,具体proxychains的安装和配置可参考 https://www.oneone.moe/576.html.

8、进行小海龟测试,打开三个终端,分别输入如下命令:

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

显示如下:

在这里插入图片描述
至此ROS环境配置完成。

二、rpg-esim 配置

1、rpg-esim 的安装配置主要根据官方给出的教程https://github.com/uzh-rpg/rpg_esim/wiki/Installation。在配置之前,需要先安装一些必要的包。

pip install opencv-python opencv-contrib-python numpy rospkg pyyaml
sudo apt-get install python-catkin-tools

注意:在安装opencv-python时可能会报错:

TypeError: 'NoneType' object is not iterable
----------------------------------------
ERROR: Command errored out with exit status 1: .......

解决方法:

pip install opencv-python==4.2.0.32

原因:opencv 的最新版不再支持python2.7,而 pip install opencv-python 命令会下载最新版本的 opencv,因此在安装时,指定opencv的老版本即可,最后一个支持python2.7的opencv版本是4.2.0.32。

2、前几步按照github上的步骤

mkdir -p ~/sim_ws/src && cd ~/sim_ws
catkin init
catkin config --extend /opt/ros/melodic --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-Wno-int-in-bool-context  
//若是Ubuntu16.04,则执行catkin config --extend /opt/ros/kinetic --cmake-args -DCMAKE_BUILD_TYPE=Release

3、安装vcstools

sudo apt-get install python-vcstool

4、克隆存储库并运行vcstool

cd src/
git clone git@github.com:uzh-rpg/rpg_esim.git
vcs-import < rpg_esim/dependencies.yaml

注意:在git clone git@github.com:uzh-rpg/rpg_esim.git这一步可能会报错:

Permissiondenied (publickey).
fatal:Could not read from remote repository.
Pleasemake sure you have the correct access rights and the repository exists.

解决方法:

//生成ssh key
ssh-keygen -t rsa -C "github的注册邮箱"//一路回车即可,设置自己的密码
ssh-agent -s
ssh-add ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub
//这个命令是显示id_rsa.pub的内容,将里面的内容复制粘贴到自己的github账号中:点击头像,settings->SSH and GPG keys->new SSH key
ssh -T git@github.com
//如果输出 Hi yourgithubname! You’ve successfully authenticated, but GitHub does not provide shell access. 则正确。

5、安装pcl_ros

sudo apt-get install ros-kinetic-pcl-ros
sudo apt-get install libproj-dev

6、安装glfw

sudo apt-get install libglfw3 libglfw3-dev

7、安装glm

sudo apt-get install libglm-dev

8、禁用不需要的软件包

cd ze_oss
touch imp_3rdparty_cuda_toolkit/CATKIN_IGNORE \
      imp_app_pangolin_example/CATKIN_IGNORE \
      imp_benchmark_aligned_allocator/CATKIN_IGNORE \
      imp_bridge_pangolin/CATKIN_IGNORE \
      imp_cu_core/CATKIN_IGNORE \
      imp_cu_correspondence/CATKIN_IGNORE \
      imp_cu_imgproc/CATKIN_IGNORE \
      imp_ros_rof_denoising/CATKIN_IGNORE \
      imp_tools_cmd/CATKIN_IGNORE \
      ze_data_provider/CATKIN_IGNORE \
      ze_geometry/CATKIN_IGNORE \
      ze_imu/CATKIN_IGNORE \
      ze_trajectory_analysis/CATKIN_IGNORE

9、建立event_camera_simulator节点(非常关键)

catkin build esim_ros

注意:这一步非常关键,最后一定要0个failed,0个abandon,否则使用时会出错。
如果出现类似于如下错误:

make[3]: *** [luacov-prefix/src/luacov-stamp/luacov-download] Error 1
make[2]: *** [CMakeFiles/luacov.dir/all] Error 2
make[1]: *** [CMakeFiles/luacov.dir/rule] Error 2
make: *** [luacov] Error 2

可进行如下操作尝试解决:
进入cmake的目录下,输入如下命令

./bootstrap --system-curl //文件夹bootstrap在cmake目录下
make
sudo make install

如果找不到cmake文件目录或者不知道是否已安装cmake,可再装一遍cmake,不可使用camke --version查看是否已安装,因为ROS自带一个cmake,但如果把ROS卸载掉,就不能再使用cmake,那就说明之前没有安装cmake。camke的安装大致如下:
(1) 进入cmake官网https://cmake.org/download/,在source distributions 中找到Platform为Unix/Linux Source(has \n line feeds)的压缩包cmake-3.20.2.tar.gz,直接下载,再将cmake-3.20.2.tar.gz 移动到主目录。
(2) 解压cmake-3.20.2.tar.gz

tar zxvf cmake-3.20.2.tar.gz

(3)进入cmake-3.20.2,执行如下命令

sudo ./bootstrap
sudo make
sudo make install
cmake --version//返回cmake的版本信息,则说明安装成功

如果还是报错,那就只能挂代理了,因为里面有的依赖只能科学上网才能访问。

10、继续执行如下命令

catkin build esim_ros
echo "source ~/sim_ws/devel/setup.bash" >> ~/setupeventsim.sh
chmod +x ~/setupeventsim.sh
alias ssim='source ~/setupeventsim.sh'

11、测试rpg-esim(每次使用的时候,新开一个终端窗口,先使用ssim命令把工作空间激活)

ssim
roscd esim_ros  
gedit cfg/example.conf //里面有个绝对路径,把里面的user改成你的用户名,我的是改成了iccd
//新开一个terminal,以打开可视化窗口
ssim
roscd esim_visualization
rviz -d cfg/esim.rviz
//回到刚才的terminal窗口
roslaunch esim_ros esim.launch config:=cfg/example.conf
//这个时候就能够看到可视化窗口里面在模拟事件相机的数据了
//重开一个terminal窗口,用rqt进行查看更详细的信息
ssim
roscd esim_visualization
rqt --perspective-file cfg/esim.perspective

测试结果如下:
在这里插入图片描述在这里插入图片描述
至此,事件相机模拟器rpg-esim环境搭建完成。

主要参考博客及网站

[1]https://blog.csdn.net/zkk9527/article/details/102951457/
[2]https://blog.csdn.net/qq_36265860/article/details/111564703
[3]http://wiki.ros.org/melodic/Installation/Ubuntu
[4]https://github.com/uzh-rpg/rpg_esim/wiki/Installation
[5]https://blog.csdn.net/ANNENBERG/article/details/88665660
[6]https://blog.zhangxiann.com/202007021817/
[7]https://blog.csdn.net/stanfan/article/details/88681165
[8]https://blog.csdn.net/qq_41450811/article/details/99079041
[9]https://blog.csdn.net/RNG_uzi_/article/details/106598352?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-2.control

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值