ROS官方网站多机器人系统tuw_multi_robot

http://wiki.ros.org/tuw_multi_robot
一、仿真
Requirments
我的版本是ubuntu16.04以及ros-kinetic
System packages

sudo apt install libdxflib-dev

创建新的ROS工作空间,我试了直接在原有工作空间上,但是编译一直出问题

export MRRP_DIR=$HOME/projects/catkin/tuw_multi_robot/
mkdir -p $MRRP_DIR/src
cd $MRRP_DIR/src
git clone https://github.com/tuw-robotics/tuw_multi_robot.git
git clone https://github.com/tuw-robotics/tuw_msgs.git
我把其他包也安装上了:
git clone https://github.com/tuw-robotics/tuw_geometry.git
git clone https://github.com/tuw-robotics/tuw_rviz.git

安装相应的包

export ROS_VERSION=kinetic  # for Ubuntu 16.04

sudo apt install ros-$ROS_VERSION-map-server
sudo apt install ros-$ROS_VERSION-stage-ros

由于是在新建的工作空间,需要执行下面的命令再开始仿真

source ~/projects/catkin/tuw_multi_robot/devel/setup.sh

启动仿真

roslaunch tuw_multi_robot_demo demo.launch room:=cave  nr_of_robots:=3 
或者  
roslaunch tuw_multi_robot_demo demo.launch room:=cave cfg:=robot_2

二、对各个包进行一个描述总结
该存储库包含多个ros包,用于为在搜索图上的多个机器人规划路线。 它从像素地图创建了一个搜索图,并试图找到一个路径为多个机器人使用扩展的方法优先规划避免碰撞。 输入是tuw_multi_robot_msgs/RobotInfo信息,其中包括机器人的姿势,地图和期望的目标姿势。 输出是给予各个机器人的多个同步路径。

packages
tuw_multi_robot_ctrl
tuw_multi_robot_demo
tuw_multi_robot_goal_generator
tuw_multi_robot_local_behavior_controller
tuw_multi_robot_router
tuw_multi_robot_rviz
tuw_voronoi_graph

**tuw_multi_robot_demo:**包含一些启动文件和参数,可以运行进行演示

roslaunch tuw_multi_robot_demo demo.launch room:=cave  nr_of_robots:=3 
roslaunch tuw_multi_robot_demo demo.launch room:=warehouse_14  nr_of_robots:=14 
roslaunch tuw_multi_robot_demo demo.launch room:=warehouse_200  nr_of_robots:=50 

tuw_multi_robot_goal_generator
使用这个 pkg 可以产生,保存和读取目标列表,为了生成有效的目标,随机目标生成需要一个地图发布。

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:=14

tuw_voronoi_graph
该软件包包括一个voronoi-graph-generator生成器、一个dxf-to-graph-node节点和一个segment-to-graph node节点用于为多机器人路径规划器创建search graphs。

voronoi-graph-generator-node接收一个像素地图(occupancy_grid)然后将其转换成一个voronoi graph来描述原本的像素地图。如果保存,此图形将从缓存文件夹自动生成或加载。此外,节点可以加载保存在文件夹中的特定地图。

Voronoi-dxf-to-graph 接受一个 dxf 文件作为输入,其中包含缩放和转换后的映射以及任意数量的线、弧和圆。 这些直线和圆圈被转换成图形并保存到特定的位置。
voronoi-segment-to-graph-node节点将具有预定义segments的segment file文件作为输入,转换成一个图形,然后发布该图形。

graph-generator-node节点接收一个grid_map,就像从voronoi-map-generator-node节点发布的grid_map一样,并将其转换为一个图形消息,以便tuw_multi_robot_route_planner中使用。

tuw_multi_robot_router
tuw_multi_robot_router是一个多机器人路径规划器,它订阅tuw_multi_robot_msgs/RobotInfo消息、tuw_voronoi_graph包中发布的地图/图形,以及tuw_multi_robot_msgs/RobotGoalsArray消息。
MRRP使用一个优先规划方法来发现机器人路线。此外,还有一个优先级和一个速度重调度程序以及一个冲突解决程序集成,以解决特殊的场景,不能通过标准的优先级规划方法解决。由于为这些场景生成的结果是相互依赖的,所以必须以同步的方式执行给定的路径。因此,当一个机器人被允许进入一个段时,路由器会发布一个包含先决条件的tuw_multi_robot_msgs/Rounte。另外,通过nav_msgs/Path为每个机器人发布一个非同步版本。

tuw_multi_robot_rviz
提供 rviz 插件为规划器设置目标位置,并提供一个可视化生成图形的工具。

tuw_multi_robot_ctrl
一个简单的多机器人控制器,使用tuw_multi_robot_msgs/Route消息作为输入,用于以同步方式执行路径。(全局控制器用于测试大量的机器人)

tuw_multi_robot_local_behavior_controller
这个包包含一个节点,它接收一个机器人的tuw_multi_robot_msgs/RouteSegment消息,并发布一个nav_msgs/Path,直到允许机器人移动为止。 tuw_multi_robot_msgs/RouteSegment包含一组segment,其中每个segment都有先决条件来判断什么时候允许机器人进入某个段。tuw_multi_robot_route_to_path_node订阅这些消息,并检查满足了多少个这些先决条件,然后发布从开始到最后一段的路径,其中满足了先决条件。在使用大量机器人进行测试时,出于性能考虑,此节点将所有机器人作为一个节点订阅。
三、
tuw_multi_robot_ctrl
一个简单的多机器人控制器使用路径作为输入,这是用来执行路径同步。这个软件包提供了一个简单的多机器人控制器来跟踪一条路线。 它包含一个节点,控制最高数量的机器人(>100)。
Multi Segment Controller Node:该节点接收来自tuw_multi_robot_router的路径消息。它为所有机器人提供控制输入,让它们以同步的方式在自己的路线上移动
订阅主题:
[robot_name]/path (tuw_multi_robot_msgs/Route): 每个机器人包含段前提条件的同步路径
robot_info (tuw_multi_robot_msgs/RobotInfo):包含当前的姿势,每个机器人用来确定起点和目标点
[robot_name]/ctrl (std_msgs/string):要发送调试 msgs 的主题
发布话题:
[robot_name]/cmdVel (geometry_msgs/Twist):发布速度给机器人
robot_info (tuw_multi_robot_msgs/RobotInfo):机器人信息包含半径,机器人名,同步

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值