planetype记录

有做平面SLAM的小伙伴来交流一下啊~

接下来的日子估计会是很难熬的吧。

灰灰必须自己编程了,没有退路了。

但是刚刚解决了一个超小的问题,结束后竟然也会不自主地微笑。这种小问题接下来还会有超级多,需要加快速度,提高效率啊。

不然真毕不了业了(手动狗头微笑)

记录记录。

===================================================================================

问题1.

在.h文件中想要包含<ros/ros.h>,结果提示找不到这个文件,先检查了环境变量,没有问题,接着就是在cmakelists里面了,参考网友帮助,在Cmakelists中,将
include_directories(include ${PCL_INCLUDE_DIRS})
改成
include_directories(include ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})

编译通过就OK了。

 

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

类包含:

plane3d是属于定义了因子图的节点和边。

 

1.获取地面边界(RGB,label):根据输入,不需要位姿,地面标记为255,墙被标记为0.

2.获取平面方程(包含自动连接的地面2d分割线,T)从地面边界和当前位姿来极端平面方程,同时调用函数计算边界多边形

 

----------------------------------------------------------------------------------------------------

fatal error: ros/ros.h: No such file or directory

find_package(catkin REQUIRED COMPONENTS roscpp std_msgs sensor_msgs cv_bridge image_transport compressed_image_transport)
find_package(OpenCV REQUIRED)
include_directories(${catkin_INCLUDE_DIRS})

在其最后增加一行。

=================================================================================

2019/5/8

1.cv2eigen(a,b)实现opencv中的Mat转为eigen中定义的matrix4f.

==================================================================================

2019/5/9

遇到错误:

/bin/sh: 1: Syntax error: "(" unexpected

在Makefile中查到出问题的是make语句中的$(shell pwd)部分。

后来发现代码目录的目录名中包含了括号!把目录改名,去掉名字中的括号,恢复正常。(`—`)内心天啦噜。

==================================================================================

2019/5/14 coding debug

#error1:use of deleted function

这种错误的最常见原因是在您向类中添加了一些自定义构造函数后 - 编译器停止创建默认构造函数 ,如果通过默认构造函数创建了类的实例,则会出现此错误。 只需明确地添加默认构造函数。

但源码是没有变的。最后的问题是我在.文件中定义的一个参数,参数类型后面多加了一个&。查了好久的问题啊。

#error2:invalid use of incomplete type

没有将头文件包含进来。

=====================================================

2019/5/16

c++中用到python代码

error1: fatal error: pyconfig.h: 没有那个文件或目录

         应该是boost.python 安装时找不到 pyconfig.h

sudo apt-get install python-dev 

没用。。。

错误是:

/usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: 没有那个文件或目录

自己查了一下,在/usr/include/python2.7或者3.5下确实有pyconfig.h,于是在管理员权限下去改了wrap_python.hpp的路径。

将# include <pyconfig.h>改为了:

# include </usr/include/python2.7/pyconfig.h>

 

#include <patchlevel.h>
#include "/usr/include/python2.7/patchlevel.h"

# include "/usr/include/python2.7/Python.h"
//# include <Python.h>

写死路径之后,就不出现找不到上述3个文件的问题了。

error2: .so:对某个函数未定义的引用

已经是一天内第二次遇见这个问题了。第一次解决的办法是,在cmakelists里面加入对应的src和.h文件。

../lib/libORB_SLAM2.so:对‘cv::line_descriptor::LSDDetector::detect(cv::Mat const&, std::vector<std::vector<cv::line_descriptor::KeyLine, std::allocator<cv::line_descriptor::KeyLine> >, std::allocator<std::vector<cv::line_descriptor::KeyLine, std::allocator<cv::line_descriptor::KeyLine> > > >&, int, int, cv::line_descriptor::LSDDetector::LSDOptions&, cv::Mat const&)’未定义的引用

src子文件夹下的文件需要在CMakeLists.txt里面include,也就是说有可能executable文件link到source或者include文件时没有找到函数或变量所在的文件,所以说它们未定义。因此将函数或变量所在文件添加到source或者include中并link到可执行文件,即可解决。
 

第一阶段的make成功了。还是开森的~

====================================================================

 

 

 

 

*&---------------------------------------------------------------------* *& Report ZTEXT03 *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT ZTEXT03. * 定义数据类型 TYPES: BEGIN OF ty_sflight, carrid TYPE s_carr_id, connid TYPE s_conn_id, fldate TYPE s_date, price TYPE s_price, currency TYPE s_currcode, planetype TYPE s_planetye, seatsmax TYPE s_seatsmax, seatsocc TYPE s_seatsocc, END OF ty_sflight. data lv_c TYPE i VALUE 1. * 定义内表和变量 DATA: gt_sflight TYPE TABLE OF ty_sflight, gt_output TYPE TABLE OF ty_sflight, " 当前页显示的数据 gs_layout TYPE lvc_s_layo, gt_fieldcat TYPE lvc_t_fcat. *DATA LV_C TYPE I VALUE 1. DATA: gv_current_page TYPE i VALUE 1, " 当前页码 gv_page_size TYPE i VALUE 100, " 每页显示行数 gv_total_pages TYPE i, " 总页数 gv_total_records TYPE i. " 总记录数 DATA GT_light TYPE STANDARD TABLE OF ty_sflight WITH HEADER LINE. * 选择屏幕 SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001. PARAMETERS: p_max TYPE i DEFAULT 1000 OBLIGATORY. SELECT-OPTIONS: s_carrid FOR GT_light-carrid. SELECTION-SCREEN END OF BLOCK b1. SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-002. PARAMETERS: p_pagesz TYPE i DEFAULT 100 OBLIGATORY. " 每页大小 SELECTION-SCREEN END OF BLOCK b2. * 主程序 START-OF-SELECTION. PERFORM get_all_data. PERFORM calculate_paging. PERFORM get_current_page_data. PERFORM display_alv. *&---------------------------------------------------------------------* *& Form GET_ALL_DATA *&---------------------------------------------------------------------* FORM get_all_data. SELECT carrid, connid, fldate, price, currency, planetype, seatsmax, seatsocc FROM sflight UP TO @p_max ROWS INTO TABLE @gt_sflight WHERE carrid IN @s_carrid. IF gt_sflight IS INITIAL. MESSAGE 'No flight data found!' TYPE 'I' DISPLAY LIKE 'E'. STOP. ENDIF. gv_total_records = lines( gt_sflight ). ENDFORM. " GET_ALL_DATA *&---------------------------------------------------------------------* *& Form CALCULATE_PAGING *&---------------------------------------------------------------------* FORM calculate_paging. gv_page_size = p_pagesz. " 计算总页数 gv_total_pages = gv_total_records DIV gv_page_size. IF gv_total_records MOD gv_page_size > 0. gv_total_pages = gv_total_pages + 1. ENDIF. " 确保当前页码在有效范围内 IF gv_current_page > gv_total_pages. gv_current_page = 1. ENDIF. ENDFORM. " CALCULATE_PAGING *&---------------------------------------------------------------------* *& Form GET_CURRENT_PAGE_DATA *&---------------------------------------------------------------------* FORM get_current_page_data. DATA: lv_start_index TYPE i, lv_end_index TYPE i. *lv_c = lv_c + 1. CLEAR gt_output. " 计算当前页数据的起始和结束索引 lv_start_index = ( gv_current_page - 1 ) * gv_page_size + 1. lv_end_index = lv_start_index + gv_page_size - 1. " 确保结束索引不超过总记录数 IF lv_end_index > gv_total_records. lv_end_index = gv_total_records. ENDIF. " 提取当前页的数据 APPEND LINES OF gt_sflight FROM lv_start_index TO lv_end_index TO gt_output. ENDFORM. " GET_CURRENT_PAGE_DATA *&---------------------------------------------------------------------* *& Form DISPLAY_ALV *&---------------------------------------------------------------------* FORM display_alv. PERFORM build_field_catalog. PERFORM set_layout. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid i_callback_pf_status_set = 'SET_PF_STATUS' " 设置工具栏 i_callback_user_command = 'HANDLE_USER_COMMAND' " 处理用户命令 is_layout_lvc = gs_layout it_fieldcat_lvc = gt_fieldcat TABLES t_outtab = gt_output EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. " DISPLAY_ALV *&---------------------------------------------------------------------* *& Form BUILD_FIELD_CATALOG *&---------------------------------------------------------------------* FORM build_field_catalog. DATA: ls_fieldcat TYPE lvc_s_fcat. DEFINE add_field. CLEAR ls_fieldcat. ls_fieldcat-fieldname = &1. ls_fieldcat-ref_table = &2. ls_fieldcat-ref_field = &3. ls_fieldcat-reptext = &4. ls_fieldcat-coltext = &5. ls_fieldcat-outputlen = &6. APPEND ls_fieldcat TO gt_fieldcat. END-OF-DEFINITION. add_field: 'CARRID' 'SFLIGHT' 'CARRID' 'Airline' 'Airline' 3, 'CONNID' 'SFLIGHT' 'CONNID' 'Connection' 'Conn' 4, 'FLDATE' 'SFLIGHT' 'FLDATE' 'Flight Date' 'Date' 8, 'PRICE' 'SFLIGHT' 'PRICE' 'Price' 'Price' 12, 'CURRENCY' 'SFLIGHT' 'CURRENCY' 'Currency' 'Curr' 5, 'PLANETYPE' 'SFLIGHT' 'PLANETYPE' 'Aircraft Type' 'Aircraft' 10, 'SEATSMAX' 'SFLIGHT' 'SEATSMAX' 'Max Seats' 'Max Seats' 8, 'SEATSMAX' 'SFLIGHT' 'SEATSOCC' 'Occupied Seats' 'Occupied' 8. ENDFORM. " BUILD_FIELD_CATALOG *&---------------------------------------------------------------------* *& Form SET_LAYOUT *&---------------------------------------------------------------------* FORM set_layout. gs_layout-zebra = 'X'. " 斑马线模式 gs_layout-cwidth_opt = 'X'. " 列宽优化 gs_layout-sel_mode = 'A'. " 选择模式 gs_layout-info_fname = 'COLOR'. " 行颜色字段(如果需要) " 设置网格标题显示分页信息 gs_layout-grid_title = |Flight Data - Page { gv_current_page } of { gv_total_pages } - Total Records: { gv_total_records }|. ENDFORM. " SET_LAYOUT *&---------------------------------------------------------------------* *& Form SET_PF_STATUS *&---------------------------------------------------------------------* FORM set_pf_status USING rt_extab TYPE slis_t_extab. SET PF-STATUS 'ZALV_PAGING_STATUS'. ENDFORM. " SET_PF_STATUS *&---------------------------------------------------------------------* *& Form HANDLE_USER_COMMAND *&---------------------------------------------------------------------* FORM handle_user_command USING r_ucomm TYPE sy-ucomm rs_selfield TYPE slis_selfield. * *&---刷新屏幕数据到内表 DATA: lr_grid1 TYPE REF TO cl_gui_alv_grid. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lr_grid1. CALL METHOD lr_grid1->check_changed_data. CASE r_ucomm. WHEN 'FIRST_PAGE'. " 第一页 gv_current_page = 1. PERFORM refresh_display. WHEN 'PREV_PAGE'. " 上一页 IF gv_current_page > 1. gv_current_page = gv_current_page - 1. PERFORM refresh_display. ELSE. MESSAGE 'Already on first page!' TYPE 'S'. ENDIF. WHEN 'NEXT_PAGE'. " 下一页 IF gv_current_page < gv_total_pages. gv_current_page = gv_current_page + 1. PERFORM refresh_display. ELSE. MESSAGE 'Already on last page!' TYPE 'S'. ENDIF. WHEN 'LAST_PAGE'. " 最后一页 gv_current_page = gv_total_pages. PERFORM refresh_display. WHEN 'REFRESH'. " 刷新 PERFORM refresh_display. WHEN 'BACK' OR 'CANCEL' OR 'EXIT'. " 退出 CLEAR r_ucomm. LEAVE TO transaction 'SESSION_MANAGER'. * SET SCREEN 0. LEAVE SCREEN. ENDCASE. * *&---调用后数据保存处理 CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = lr_grid1. CALL METHOD lr_grid1->check_changed_data. *&---刷新ALV 显示值 rs_selfield-refresh = 'X' . ENDFORM. *&---------------------------------------------------------------------* *& Form REFRESH_DISPLAY *&---------------------------------------------------------------------* FORM refresh_display. DATA LV_MES TYPE STRING. PERFORM get_current_page_data. LV_MES = '当前页数第' && gv_current_page && '/ ' && gv_total_pages. MESSAGE LV_MES TYPE 'S'. ENDFORM. " REFRESH_DISPLAY
最新发布
10-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值