• 测试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

    效果图

    往速度方向增长代价

  • 相关阅读:
    1、Spring Cloud Alibaba 新一代微服务解决方案
    springboot整合activemq(1)
    11.springboot+mybatis+dubbo+zookepper
    多线程的使用
    Spring 框架用到的 9 个设计模式汇总
    docker数据卷与数据卷容器
    4.GitHub的使用
    Spring Cloud中Hystrix、Ribbon及Feign的熔断关系
    git如何正确回滚代码
    1)Linux学习笔记:crontab命令
  • 原文地址:https://www.cnblogs.com/hong2016/p/7527481.html
Copyright © 2020-2023  润新知