zoukankan      html  css  js  c++  java
  • 测试social_navigation_layers

    目标:测试social_navigation_layers

    方法:

    使用move_base接口启动costmap_2d

    这样就能直接用configure方法来进行测试不用自己写代码

    一、启动move_base

      1、launch file

    <launch>
      <!-- Launch move_base and load all navigation parameters -->
      <include file="$(find costmap_test)/config/move_base_config/move_base.xml"/>
      
      <!-- Run the map server with a blank map -->
      <node name="map_server" pkg="map_server" type="map_server" args="$(find pioneer_xtion)/stage_config/maps/blank_map.yaml" />
    
      <!--costmap 必须的tf变换 看http://wiki.ros.org/costmap_2d#tf Required tf Transforms-->
      <!--global costmap -->
      <node name="static_tf0" pkg="tf" type="static_transform_publisher" args="2 0 0 0 0 0 /map /base_link 100"/>
      <!--local costmap -->
      <node name="static_tf1" pkg="tf" type="static_transform_publisher" args="0 0 0 0 0 0 /odom /map 100"/>
      <!--发布people msgs-->
      <node name = "people" pkg="people_velocity_tracker" type="static.py" args="2 2 1 1"/>
    
      <node name="rviz" pkg="rviz" type="rviz" args="-d $(find costmap_test)/rviz/single_robot.rviz" />
    </launch>
    

      

      2、movebase config,common costmap config,local costmap config,global costmap config

    <launch>
    <!--
      Example move_base configuration. Descriptions of parameters, as well as a full list of all amcl parameters, can be found at http://www.ros.org/wiki/move_base.
    -->
      <node pkg="move_base" type="move_base" respawn="false" name="move_base_node" output="screen">
        <param name="footprint_padding" value="0.01" />
        <param name="controller_frequency" value="10.0" />
        <param name="controller_patience" value="3.0" />
    
        <param name="oscillation_timeout" value="30.0" />
        <param name="oscillation_distance" value="0.5" />
    
        
        <param name="base_local_planner" value="dwa_local_planner/DWAPlannerROS" />
       
      <!-- ns = global costmap 加载参数到 global costmap这个node里-->
        <rosparam file="$(find costmap_test)/config/move_base_config/costmap_common_params.yaml" command="load" ns="global_costmap" />
        <rosparam file="$(find costmap_test)/config/move_base_config/costmap_common_params.yaml" command="load" ns="local_costmap" />
        <rosparam file="$(find costmap_test)/config/move_base_config/local_costmap_params.yaml" command="load" />
        <rosparam file="$(find costmap_test)/config/move_base_config/global_costmap_params.yaml" command="load" />
        <rosparam file="$(find costmap_test)/config/move_base_config/base_local_planner_params.yaml" command="load" />
        
        <rosparam file="$(find costmap_test)/config/move_base_config/dwa_local_planner_params.yaml" command="load" />
        
      </node>
    </launch>
    

    common costmap config

    #This file contains common configuration options for the two costmaps used in the navigation stack for more details on the parameters in this file, and a full list of the parameters used by the costmaps, please see http://www.ros.org/wiki/costmap_2d
    
    #For this example we'll configure the costmap in voxel-grid mode
    map_type: voxel
    
    #Voxel grid specific parameters
    origin_z: 0.0
    z_resolution: 0.2
    z_voxels: 10
    unknown_threshold: 9
    mark_threshold: 0
    
    #Set the tolerance we're willing to have for tf transforms
    transform_tolerance: 0.5
    
    #Obstacle marking parameters
    obstacle_range: 2.5
    max_obstacle_height: 2.0
    raytrace_range: 3.0
    
    #The footprint of the robot and associated padding
    #footprint: [[-0.325, -0.325], [-0.325, 0.325], [0.325, 0.325], [0.46, 0.0], [0.325, -0.325]]
    robot_radius: 0.2
    footprint_padding: 0.01
    
    #Cost function parameters
    inflation_radius: 0.5
    cost_scaling_factor: 0.1
    
    #The cost at which a cell is considered an obstacle when a map is read from the map_server
    lethal_cost_threshold: 100
    
    #Configuration for the sensors that the costmap will use to update a map
    
    #configuration for plugins
    plugins:
        - {name: static_map,       type: "costmap_2d::StaticLayer"}
        - {name: obstacles,        type: "costmap_2d::VoxelLayer"}
        - {name: proxemicLayer,       type: "social_navigation_layers::ProxemicLayer"}
      

     global costmap config

    #Independent settings for the global planner's costmap. Detailed descriptions of these parameters can be found at http://www.ros.org/wiki/costmap_2d
    <!--global costmap config 如果global_costmap改成其他名字,则param名字也会改-->
    global_costmap:
      #Set the global and robot frames for the costmap
      global_frame: map
      robot_base_frame: base_link
    
      #Set the update and publish frequency of the costmap
      update_frequency: 2.0
      publish_frequency: 0.0
    
      #We'll use a map served by the map_server to initialize this costmap
      static_map: true
      rolling_window: false
    
      footprint_padding: 0.02
    

    local costmap config

    #Independent settings for the local planner's costmap. Detailed descriptions of these parameters can be found at http://www.ros.org/wiki/costmap_2d
    
    local_costmap:
      #We'll publish the voxel grid used by this costmap
      publish_voxel_map: true
    
      #Set the global and robot frames for the costmap
      global_frame: odom
      robot_base_frame: base_link
    
      #Set the update and publish frequency of the costmap
      update_frequency: 2.0
      publish_frequency: 2.0
    
      #We'll configure this costmap to be a rolling window... meaning it is always
      #centered at the robot
      static_map: false
      rolling_window: true
       6.0
      height: 6.0
      resolution: 0.01
      origin_x: 0.0
      origin_y: 0.0
    

      

      

     

    二、发布people_msgs

    使用

    http://wiki.ros.org/people_velocity_tracker?distro=kinetic

    people_velocity_tracker 

    static.py

    效果图

    往速度方向增长代价

  • 相关阅读:
    linux软件安装方式
    docker 安装 jenkins touch: cannot touch ‘/var/jenkins_home/copy_reference_file.log’: Permission denied Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?
    [ERR] Node goodsleep.vip:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
    Linux 常用命令 服务器间scp 用户 export 创建文件、软连接
    redis 安装 集群 主从 哨兵 docker
    WPF密码框中禁止复制、粘贴
    Application 统计在线人数
    【转义字符】HTML 字符实体&lt; &gt: &amp;等
    SQL语句统计每天的数据
    正则表达式计算代码数
  • 原文地址:https://www.cnblogs.com/hong2016/p/7527481.html
Copyright © 2011-2022 走看看