精华内容
下载资源
问答
  • 一. 环境介绍:我使用的虚拟机软件:VMware WorkstationPro使用的Ubuntu系统:Ubuntu 14.04.4 LTS ROS 版本:... laser_scan_matcher 的作用: The laser_scan_matcher package is an incremental laser scan ...

    一. 环境介绍:

    我使用的虚拟机软件:VMware WorkstationPro
    使用的Ubuntu系统:Ubuntu 14.04.4 LTS 
    ROS 版本:ROS Indigo


    二. laser_scan_matche 安装及使用


    1. laser_scan_matcher 的作用: 

    The laser_scan_matcher package is an incremental laser scan registration tool. The package allows to scan match between consecutive sensor_msgs/LaserScan messages, and publish the estimated position of the laser as a geometry_msgs/Pose2D or a tf transform.

    我的理解就是能根据输入的sensor_msgs/LaserScan 数据转换成 geometry_msgs/Pose2D  数据。

    2. 安装

    2.1 sudo apt-get install ros-indigo-scan-tools 

    2.2 从源代码安装

    先下载src code 到你已经建立好的ros  workspace 的 src 目录下:

    cd catkin_ws_tf/src

    git clone https://github.com/ccny-ros-pkg/scan_tools.git

    cd ..

    catkin_make // 会发现 fail, 此时进入到scan_tools/ 目录下把除laser_scan_matcher 目录之外的所有文件(夹)都删掉。

    catkin_make //  此时应该会OK 

    source devel/setup.bash



    3. run  demo 

    roslaunch laser_scan_matcher demo.launch



    展开全文
  • Gmapping+Laser_scan_matcher仿真

    千次阅读 2019-07-11 19:46:52
    在gazebo上做仿真时运动仿真插件可以提供里程计坐标系到机器人底座坐标系的转换(odom→base_...scan_matcher提供里程计信息(odom→base_footprint),这里会把gazebo运动仿真插件提供的 (odom→base_footprint)...

    在gazebo上做仿真时运动仿真插件可以提供里程计坐标系到机器人底座坐标系的转换(odom→base_footprint),但是做实物调试时通过底盘的编码器做出来的增量式里程计效果可能不太理想,所以可以通过雷达扫描匹配功能包laser_scan_matcher提供里程计信息(odom→base_footprint),这里会把gazebo运动仿真插件提供的 (odom→base_footprint) 转换屏蔽,直接由功能包 laser_scan_matcher 提供。

    1、首先安装两个 laser_scan_matcher 相关的功能包 laser_scan_matcher 和 csm 。

    安装laser_scan_matcher:

    $sudo apt-get install ros-kinetic-laser-scan-matcher

    安装 csm :

    $sudo apt-get install ros-kinetic-csm

    2、创建launch文件 laser_scan_matcger.launch 运行 laser_scan_matcher ,把 fixed_frame 设置为 odom ,把 base_frame 设置为 base_footprint 。

    <?xml version="1.0"?>
    <launch>
    
        <node name="laser_scan_matcher_node" pkg="laser_scan_matcher" type="laser_scan_matcher_node"  
              output="screen" >
            <param name="fixed_frame" value = "odom"/>
            <param name="base_frame" value = "base_footprint"/>
            <param name="use_imu" value = "true"/>
            <param name="max_iterations" value="10"/>
        </node>
    
    </launch>
    

    3、把 gazebo 的运动仿真插件提供的 tf 变换屏蔽,把 mbot_base_gazebo.xacro文件中的<publishTf>0</publishTf>和<broadcastTF>0</broadcastTF>设置为0。

    <gazebo>
                <plugin name="differential_drive_controller" 
                        filename="libgazebo_ros_diff_drive.so">
                    <rosDebugLevel>Debug</rosDebugLevel>
                    <publishWheelTF>true</publishWheelTF>
                    <robotNamespace>/</robotNamespace>
                    <publishTf>0</publishTf>
                    <publishWheelJointState>true</publishWheelJointState>
                    <alwaysOn>true</alwaysOn>
                    <updateRate>100.0</updateRate>
                    <legacyMode>true</legacyMode>
                    <leftJoint>left_wheel_joint</leftJoint>
                    <rightJoint>right_wheel_joint</rightJoint>
                    <wheelSeparation>${wheel_joint_y*2}</wheelSeparation>
                    <wheelDiameter>${2*wheel_radius}</wheelDiameter>
                    <broadcastTF>0</broadcastTF>
                    <wheelTorque>30</wheelTorque>
                    <wheelAcceleration>1.8</wheelAcceleration>
                    <commandTopic>cmd_vel</commandTopic>
                    <odometryFrame>odom</odometryFrame> 
                    <odometryTopic>odom</odometryTopic> 
                    <robotBaseFrame>base_footprint</robotBaseFrame>
                </plugin>
    </gazebo> 

    4、创建 gmapping launch文件gmapping_demo.launch同时运行 gmapping 和 rviz

    <?xml version="1.0"?>
    <launch>
        <arg name="scan_topic" default="scan" />
    
        <node pkg="gmapping" type="slam_gmapping" name="slam_gmapping" output="screen" clear_params="true">
            <param name="odom_frame" value="odom"/>
            <param name="map_update_interval" value="5.0"/>
            <!-- Set maxUrange < actual maximum range of the Laser -->
            <param name="maxRange" value="5.0"/>
            <param name="maxUrange" value="4.5"/>
            <param name="sigma" value="0.05"/>
            <param name="kernelSize" value="1"/>
            <param name="lstep" value="0.05"/>
            <param name="astep" value="0.05"/>
            <param name="iterations" value="5"/>
            <param name="lsigma" value="0.075"/>
            <param name="ogain" value="3.0"/>
            <param name="lskip" value="0"/>
            <param name="srr" value="0.01"/>
            <param name="srt" value="0.02"/>
            <param name="str" value="0.01"/>
            <param name="stt" value="0.02"/>
            <param name="linearUpdate" value="0.5"/>
            <param name="angularUpdate" value="0.436"/>
            <param name="temporalUpdate" value="-1.0"/>
            <param name="resampleThreshold" value="0.5"/>
            <param name="particles" value="80"/>
            <param name="xmin" value="-1.0"/>
            <param name="ymin" value="-1.0"/>
            <param name="xmax" value="1.0"/>
            <param name="ymax" value="1.0"/>
            <param name="delta" value="0.05"/>
            <param name="llsamplerange" value="0.01"/>
            <param name="llsamplestep" value="0.01"/>
            <param name="lasamplerange" value="0.005"/>
            <param name="lasamplestep" value="0.005"/>
            <remap from="scan" to="$(arg scan_topic)"/>
        </node>
      
    <!-- 启动rviz -->
        <node pkg="rviz" type="rviz" name="rviz" args="-d $(find robot_navigation)/rviz/gmapping.rviz"/>
    
    </launch>
    

    5、打开仿真环境

    $roslaunch robot_gazebo mbot_laser_nav_gazebo.launch

    6、运行 laser_scan_matcher 

    $roslaunch robot_navigation laser_scan_matcher.launch

    7、运行 gmapping_demo.launch 

    $roslaunch robot_navigation gmapping_demo.launch

    8、查看 tf 树检查 laser_scan_matcher 是否提供 odom→base_footprint 的转换。

     

    展开全文
  • ros kinetic 下编译laser_scan_matcher 方法

    千次阅读 2017-04-08 11:20:26
    目前,laser_scan_matcher 在kinetic下还没有可以apt-get 的包,要使用,必须要从源码编译,下面是我的编译方法: 1、sudo apt-get install libgsl0-dev 2、first install the package csm itself in ...

    目前,laser_scan_matcher 在kinetic下还没有可以apt-get 的包,要使用,必须要从源码编译,下面是我的编译方法:


    1、sudo apt-get install libgsl0-dev


    2、first install the package csm itself in directory /catkin_ws/src: git clone https://github.com/AndreaCensi/csm.git and package scan_tools: git clone https://github.com/ccny-ros-pkg/scan_...


    3、in /catkin_ws do catkin_make


    4、open: nano ~/.bashrc and add to end of file as a variable PKG_CONFIG_PATH tssm.pk path to the file. In my case, this line looks like this:


    export PKG_CONFIG_PATH=/home/edward/catkin_ws/src/csm/sm/pkg-config and make: source ~/.bashrc


    5、Next, you must explicitly register in five file path to the header files:


    in file /home/edward/catkin_ws/src/scan_tools/laser_scan_matcher/include/laser_scan_matcher/laser_scan_matcher.h replace #include '<'csm/csm_all.h'>' on #include '<'/home/edward/catkin_ws/src/csm/sm/csm/csm_all.h'> (without apostrophes, of course)

    in file /home/edward/catkin_ws/src/csm/sm/csm/laser_data_json.h replace json-c/json.h and json-c/json_more_utils.h on /home/edward/catkin_ws/src/csm/sm/lib/json-c/json.h and home/edward/catkin_ws/src/csm/sm/lib/json-c/json_more_utils.h respectively

    in file /home/edward/catkin_ws/src/csm/sm/csm/hsm/hsm_interface.h replace options/options.h on /home/edward/catkin_ws/src/csm/sm/lib/options/options.h

    on file /home/edward/catkin_ws/src/csm/sm/csm/json_journal.h replace json-c/json.h and json-c/json_more_utils.h on /home/edward/catkin_ws/src/csm/sm/lib/json-c/json.h and /home/edward/catkin_ws/src/csm/sm/lib/json-c/json_more_utils.h respectivetly

    Lastly, in file /home/edward/catkin_ws/src/csm/sm/csm/math_utils_gsl.h replace egsl/egsl.h on /home/edward/catkin_ws/src/csm/sm/lib/egsl/egsl.h


    6、Finally, go to your /catkin_ws and do catkin_make 


    如果你在树莓派或者odroid板上编译,记得要设置一下swap内存,因为编译所需内存非常大,内存不够会报 编译器内部错误。具体设置方法可以参看上一篇文章。



    展开全文
  • 实习 : laser_scan_matcher 小见解

    千次阅读 2018-11-22 23:17:09
    下载其中的laser_scan_matcher 放在工作空间下直接catkin_make就能编译 看源码最重要的一句 sm_icp(&amp;input_, &amp;output_); 一定要理解input里面的两帧激光 output出来的是相对值,通过...

    PLICP : point to line

    https://github.com/ccny-ros-pkg/scan_tools

    下载其中的laser_scan_matcher

    放在工作空间下直接catkin_make就能编译

    看源码最重要的一句

    sm_icp(&input_, &output_);

    一定要理解input里面的两帧激光

    output出来的是相对值,通过连续的加和和优化,得到预测的位资

    记得安装CSM的库,纯c写的,看也看不到,但是里面还有icp算法

    感觉源码是最小二乘法匹配,实在没看懂

    首先尝试一下两帧激光匹配,当时我把 processScan函数重构了一下, 现在想想完全没必要,他这个也是循环,把imu和odom都关掉后,只凭scan就能两帧激光匹配,可以使用这个包作为初始化位姿,代替里程计不准的情况,时间长了会有累计误差,后期用amcl定位,加其他传感器.

    更深入理解了tf转换,各种坐标系变换终于懂了,自己写矩阵运算,eigen库等等.....感谢同事为我答疑解惑..原来算法真是要自己数学算哈哈哈哈..

     

    展开全文
  • 以下便是gmapping+laser_scan_matcher提供的2Dpose的launch文件源码,这里将laser_scan_matcher提供的2Dpose当作里程计来使用:&lt;!-- Example launch file: uses laser_scan_matcher together with slam_...
  • ROS:navigation laser_scan_matcher参数配置

    千次阅读 2019-03-16 19:14:40
    所述laser_scan_matcher包是增量激光扫描配准工具。该软件包允许扫描连续的sensor_msgs / LaserScan消息之间的匹配,并将估计的激光位置发布为geometry_msgs / Pose2D或tf变换。 该包装可以在没有其他传感器提供...
  • EAI激光雷达X4使用gmapping与laser_scan_matcher建图(一)

    千次阅读 热门讨论 2018-05-02 16:29:41
    由于底盘部分没处理好,想了个偏门的法子,就是利用雷达扫描与周围环境匹配实现位姿估计,将位姿估计当做里程计提供给gmapping进行建图,经过博主测试,使用gmapping+laser_scan_matcher建图在环境特征比较明显的...
  • ROS kinetic下laser_scan_matcher 的安装

    千次阅读 2019-03-30 17:04:42
    ROS kinectic下scan_tool的安装csm部分scan_tool部分 参考 :https://blog.csdn.net/zhu751191958/article/details/80165925 在开始只下载scan_tool的时候,执行catkin_make,会出现一堆报错,其中就有找不到csm包。...
  • 整个是激光回调函数中的部分 代码 getPrediction(pr_ch_x, pr_ch_y, pr_ch_a, dt); 这里是先用里程计算出,上一次回调...目标是得到 laser坐标系下,从参考帧PF到本次回调这时间内的变换关系 f2b_:上一次回调时,ba
  • ROS:激光雷达+laser_scan_matcher 运行gmapping

    千次阅读 热门讨论 2019-05-09 17:04:03
    将解压后功能包与激光雷达的功能包复制到你创建的 ROS 的工作区的src文件下,然后在工作区文件夹下编译(catkin_make),编译完成后,将其余的包都删掉,只留下 laser_scan_matcher 和雷达的功能包。 如下图所示: ...
  • Catkin_make报错 – Could not find the required component ‘pcl_ros’. The following CMake error indicates that you either need to install the package with the same name or change your environment so ...
  • 在编译laser_scan_matcher相关软件包,出现CMake Error at /usr/share/cmake-3.10/Modules/FindPkgConfig.cmake:415报错信息分析错误原因 报错信息 出现错误的缘由: 1)先下载src code 到你已经建立好的ros ...
  • ROS激光扫描匹配器 ... 原始代码可以在[2]中找到。 但是,原始代码中存在一些有关ROS tf转换的错误。 我按照开放式karto库[3]中的编程习惯修复了这些错误并添加了映射模块。 如何在Ubuntu上使用? ...
  • 使用STAGE ROS作为模拟平台,输出的时间一直是仿真时间,与laser_scan_matcher包搭配后出现警告 warn:Could not get initial transform from base to laser skipping scan 问题出现输出的laser scan的时间戳为...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 344
精华内容 137
关键字:

laser_scan_matcher