• ros模拟多小车控制运动


    模拟多小车控制运动任务规划

     

    开源包:tuw_multi_robot

    Wiki:http://wiki.ros.org/tuw_multi_robot

    Git:https://github.com/tuw-robotics/tuw_multi_robot

    运行环境:ros-kinetic

    说明:

    开源包预想架构:

     

    安装:

    1、 在工作空间从git上拉取响应的源码,包含以下几个包:

     

    如,我本机:cd ~/cw/src

     

    将以上四个包全部拉取到本地:

    git clone https://github.com/tuw-robotics/tuw_geometry

    git clone https://github.com/tuw-robotics/tuw_msgs

    git clone https://github.com/tuw-robotics/tuw_multi_robot

    git clone https://github.com/tuw-robotics/tuw_rviz_plugins

     

     

     

    2、 cd ..  catkin_make

    运行示例:

    1、 启动3个机器人

    启动命令:roslaunch tuw_multi_robot_demo demo.launch room:=cave nr_of_robots:=3

    也可以通过rviz中的Goal Selector 选择3个目标点,控制机器人移动。

     

    移动状态如下图:

     

     

    运行命令:rosrun tuw_multi_robot_goal_generator goals_random _nr_of_robots:=3 _distance_boundary:=0.6 _distance_to_map_border:=0.2 _nr_of_avaliable_robots:=3

    随机生成3个目标点,控制机器人移动(当生成目标点不可到达时,机器人不会移动),如下图:

     

    rqt_graph如下:

     

    查看rqt_tf_tree如下:

     

     

    2、 启动32个机器人地图,并指定14个机器人可用

    启动命令:roslaunch tuw_multi_robot_demo demo.launch room:=warehouse032 nr_of_robots:=14

     

    启动后,可在新窗口运行以下语句:

    rosrun tuw_multi_robot_goal_generator goals_random _nr_of_robots:=14 _distance_boundary:=0.6 _distance_to_map_border:=0.2 _nr_of_avaliable_robots:=14

     

    14个机器人随机生成目标点,观察机器人移动:

     

    rviz中可看到14个机器人分别移动到自己的目标点。

    也可以通过rviz中的Goal Selector 选择14个目标点,控制机器人移动。

     

    也可以在开源软件自带的模拟器中查看机器人移动(模拟器中加载的是32个机器人地图文件,所以有32个机器人,但启动launch时是指定的14个可用机器人,故只看到14个机器人移动):

     

     

    查看rqt_grah,如下:

     

    查看rqt_tf_tree,如下:

     

     

     

    3、 启动200个机器人地图,并指定50个可用

    启动命令:roslaunch tuw_multi_robot_demo demo.launch room:=warehouse200 nr_of_robots:=50

     

    运行命令随机生成50个目标点,控制50个机器人移动:

    rosrun tuw_multi_robot_goal_generator goals_random _nr_of_robots:=50 _distance_boundary:=0.6 _distance_to_map_border:=0.2 _nr_of_avaliable_robots:=50

     

     

     

     

     

  • 相关阅读:
    websocket以及它的内部原理
    服务端向客户端推送消息的几种方式,基于ajax,队列以及异常处理实现简易版本的群聊功能(长轮询)
    分布式爬虫以及语言介绍
    去重以及布隆过滤器
    下载中间件,selenium集成
    【商城应用】商品运费流程设计
    引用本地jar包记得加扫描路径(注意重复bean)
    乐观锁悲观锁场景
    Linux时区
    JsonObject常用转换
  • 原文地址:https://www.cnblogs.com/dayspring/p/13383534.html
Copyright © 2020-2023  润新知