一.效果:

如图,启动了十个方块机器人。
二.环境配置
2.1文件布局

description:机器人部分
gazebo:仿真环境部分
2.2 启动的文件
ros2 launch box_bot_gazebo multi_box_bot_launch.py

1.描述文件所在位置:

分别给出box_bot_gazebo 和 box_bot_description两个文件夹的位置
2.world部分:

world启动文件的位置
3.robot部分:

robot启动文件的位置
4.返回,开始启动两部分文件

三、world和robot代码解读
3.1 world.py
start_world_launch:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import os
from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument
from launch.actions import IncludeLaunchDescription
from launch.conditions import IfCondition
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
def generate_launch_description():
pkg_gazebo_ros = get_package_share_directory('gazebo_ros')
pkg_box_bot_gazebo = get_package_share_directory('box_bot_gazebo')
# Gazebo launch
gazebo = IncludeLaunchDescription(
PythonLaunchDescriptionSource(
os.path.join(pkg_gazebo_ros, 'launch', 'gazebo.launch.py'),
)
)
return LaunchDescription([
DeclareLaunchArgument(
'world',
default_value=[os.path.join(pkg_box_bot_gazebo, 'worlds', 'box_bot_empty.world'), ''],
description='SDF world file'),
gazebo
])
1.启动gazebo文件:

2.加载世界:
box_bot_empty.world:
<?xml version="1.0" ?>
<sdf version="1.6">
<world name="default">
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://ground_plane</uri>
</include>
</world>
</sdf>
3.2 robot.py
multi_spawn_robot_launch.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
import os
from ament_index_python.packages import get_package_share_directory, get_package_prefix
from launch import LaunchDescription
from launch.actions import IncludeLaunchDescription
from launch.launch_description_sources import PythonLaunchDescriptionSource
from launch.substitutions import LaunchConfiguration, TextSubstitution
def gen_robot_list(number_of_robots):
robots = []
for i in range(number_of_robots):
robot_name = "box_bot"+str(i)
x_pos = float(i)
robots.append({
'name': robot_name, <

最低0.47元/天 解锁文章
1404

被折叠的 条评论
为什么被折叠?



