程序编译
环境版本
程序开源是在ubuntu16.04-kinetic环境跑通的,但是我的环境是UBUNTU20.04,所以,先进行了ROS的安装,因为我的系统是ubuntu20.04所以,安装的ROS版本选择ROS-NOETIC
ROS的一些安装步骤参考的是一个CSDN的大神的博客,遇到的问题,通过自己google得到了解决。参考安装链接
安装遇到的问题的处理
项目编译
需要在catkin工作空间中编译ROS,所以大家可以参考下面的博客来创建catkin_cmake工作空间,同时记住,要将rsos与catkin的工作空间进行链接catkin工作空间创建
项目编译需要注意的问题:
ceres-solver 使用的版本是GraphGNSSLib里面提供的ceres solver 2.0.0的版本
同时,下载
sudo apt-get install ros-kinetic-novatel-msgs
命令的时候,我出现了无法定位软件包的问题,我的解决方法是,在ROS官网下载nav-msgs
注意这个需要下载到你的工作空间,跟随你的项目一起进行catkin_make编译,跑通了结果
结果问题
通过follow github上面的步骤,出现了issue中的问题
问题
问题
目前正在解决 如果成功解决 会在CSDN中进行更新
这里我创建了一个工作空间叫做catkin_ws,ROS需要在catkin工作空间中编译生效,所以我们可以将代码刻录在catkin_ws的src下面
诸如下面的目录结构形式:
然后逐步编译就可以通过了
这里我也进行一下补充——之前一直存在的问题:
贴一下官网的数据操作处理步骤:
描述一下我存在的问题:遇到通过在ROS的工作空间输入完成catkin_make之后,然后在输入source ./devel/setup.bash,然后继续运行下行的时候出现了类似github中出现的问题
github问题连接
github问题连接
遇到这个问题,我的处理方式(仅仅作为一种参考)
步骤:
- 我首先在catklin_workspace空间中新建src用来存放代码GraphGNSSLib,然后,因为我的ubuntu系统是20.04,所以,需要同时git clion novatel的第三方库支持GraphGNSSLib配套的第三方库文件。
- 然后通过catkin_init_workspace初始化工作空间(工作空间位于src)
- 通过cd …/返回上一层的工作目录,然后通过catkin_make编译位于src工作目录下面的代码
- 通过source ./devel/setup.bash激活当前的ros工作空间。
- 因为我首先是思考的静态数据集,所以在运行任何步骤之前,我先在rtklib.h中将**#define RTK_FGO 0 改成了#define RTK_FGO 1**
- 然后将工作空间通过roscore指定
- 开启新的terminal终端 并进入GraphGNSSLib的工作空间,然后再次通过source ./devel/setup.bash激活工作空间
- **通过roslaunch 相关的数据集文件 执行图优化过程 **
- 再次开启一个终端 执行source ./devel /setup.bash激活工作空间
10.再次运行roslaunch的下一行命令:psr_dpl_rkt_car.launch最终实现结果的输出。
不知道大家是否也是遇见了这样的问题,同时是怎么解决的?可以一同分享一下
再次补充以下: - 运行数据的步骤:打开terminal终端 ,因为我是ubuntu20.04所以需要单独build以下novatel的package.xml文件的包名称具体参考博客 具体参考博客
我输入的命令为:
因为这两个包作为GraphGNSSLib的依赖包必须提前进行编译
catkin_make -DCATKIN_WHITELIST_PACKAGES="novatel_msgs;novatel_span_driver"
- 然后在编译GraphGNSSLib对应的package包
具体的命令如下:
catkin_make -DCATKIN_WHITELIST_PACKAGES="global_fusion;nlosExclusion;rviz_satellite"
- 编译完成后运行source bash激活ros环境
source ./devel/setup.bash
- 在GraphGNSSLib的RTKLIB.h文件中将#define RTK_FGO改成0
- 哦对应该是先进行第四步,然后在编译第三步的三个包
- 然后在开一个terminal,然后通过下面命令激活环境
source ./devel/setup.bash
然后输入命令
roslaunch global_fusion dataublox_TST20190428.launch
- 然后在开一个终端进入工作空间,
然后通过下面命令激活环境
source ./devel/setup.bash
然后输入命令
roslaunch global_fusion psr_doppler_fusion.launch
最后,能够看到成功执行了程序没有出现卡顿
结果如图:
clion中debug需要roscore赋予权限
记得在clion的terminal终端输入roscore
对于通过clion去编译GraphGNSSLib的项目,首先我不知道为什么.launch文件并没有读取到任何输入的星历文件,我只好自己手动配置(ros.get还存在问题 想想怎么解决),然后,我将相关的文件都进行了路径的改写,实现外部传参,最终程序能够执行。