Gazebo/Rviz/Rqt三大工具

《Ignition》

#安装ignition
sudo apt install ros-humble-ros-ign
#运行示例
ros2 launch ros_ign_gazebo_demos rgbd_camera_bridge.launch.py

《Gazebo》

1.下载与环境配置

#1.安装相应库文件
sudo apt install ros-humble-gazebo-*
#2.添加环境变量
echo "source /usr/share/gazebo/setup.sh" >> ~/.bashrc

#3.下载models库文件
git clone https://gitee.com/ohhuo/gazebo_models.git ~/.gazebo/models
#4.添加库文件环境变量(不明确是否必要)
    # 临时添加路径(当前终端有效)
    export GAZEBO_MODEL_PATH=~/.gazebo/models:/usr/share/gazebo/models
    # 永久生效:添加到~/.bashrc
    echo "export GAZEBO_MODEL_PATH=~/.gazebo/models:/usr/share/gazebo/models" >> ~/.bashrc
    source ~/.bashrc

#5.切换渲染方式
在.bashrc中添加export SVGA_VGPU10=0
#gazebo的相关功能包大全安装
sudo apt install ros-$ROS_DISTRO-gazebo-ros-pkgs

#6.运行标准launch文件打开gazebo
ros2 launch gazebo_ros gazebo.launch.py

2.《模型文件准备》

如果要仿真,就需要有一些模型文件上面的功能项需要添加

“插件讲解”

用于根据速度指令计算出自身的相对位移和旋转,是辅助定位的关键算法

3.《Launch文件准备》

#小launch文件目标是加载模型文件并发布到话题

def generate_launch_description():

    # 是否使用sim时间
    use_sim_time = LaunchConfiguration('use_sim_time')

    # 加载xacro文件并处理成urdf文件
    pkg_path = os.path.join(get_package_share_directory('learning_gazebo'))
    xacro_file = os.path.join(pkg_path,'urdf','mbot_with_rgbd_gazebo.xacro')
    robot_description_config = xacro.process_file(xacro_file)
    
    # 执行特定结点以发布模型信息到特定话题
    params = {'robot_description': robot_description_config.toxml(), 'use_sim_time': use_sim_time}
    node_robot_state_publisher = Node(
        package='robot_state_publisher',
        executable='robot_state_publisher',
        output='screen',
        parameters=[params]
    )


    # Launch!
    return LaunchDescription([
        DeclareLaunchArgument(
            'use_sim_time',
            default_value='false',
            description='Use sim time if true'),

        node_robot_state_publisher
    ])
# 大launch文件目标是:加入小launch文件-加载gazebo基本环境-以话题信息创建gazebo实体
def generate_launch_description():

    package_name='learning_gazebo' 
    world_file_path = 'worlds/neighborhood.world'
    
    pkg_path = os.path.join(get_package_share_directory(package_name))
    world_path = os.path.join(pkg_path, world_file_path)  
    
    # 机器人加载到gazebo的初始位置设置
    spawn_x_val = '0.0'
    spawn_y_val = '0.0'
    spawn_z_val = '0.0'
    spawn_yaw_val = '0.0'
  
    #机器人launch文件-发布话题信息
    mbot = IncludeLaunchDescription(
                PythonLaunchDescriptionSource([os.path.join(
                    get_package_share_directory(package_name),'launch','mbot_rgbd.launch.py'
                )]), launch_arguments={'use_sim_time': 'true', 'world':world_path}.items()
    )

    # gazebo的laucnh文件
    gazebo = IncludeLaunchDescription(
                PythonLaunchDescriptionSource([os.path.join(
                    get_package_share_directory('gazebo_ros'), 'launch', 'gazebo.launch.py')]),
             )

    #创建实体节点-订阅话题信息
    spawn_entity = Node(package='gazebo_ros', executable='spawn_entity.py',
                        arguments=['-topic', 'robot_description',
                                   '-entity', 'mbot',
                                   '-x', spawn_x_val,
                                   '-y', spawn_y_val,
                                   '-z', spawn_z_val,
                                   '-Y', spawn_yaw_val],
                        output='screen')



    # Launch them all!
    return LaunchDescription([
        mbot,
        gazebo,
        spawn_entity,
    ])

流程就是首先编写一个完整的包含机器人和各种传感器的xacro文件
接着编写小launch以将完整机器人模型信息发布到话题robot_description
接着编写大launch以 执行小launch发布—加载gazebo环境命令—添加机器人实体命令

小鱼补充:
在加载了模型后缺乏各实例间的TF坐标关系
安装ros-$ROS_DISTRO-joint-state-publisher和安装ros-$ROS_DISTRO-robot-state-publisher节点
install/share/功能包下面放置了所有资源文件(如launch文件,urdf文件)
get_package_share_directory('fishbot_description')这一步实际上是在install的share文件夹下找功能包路径

《RVIZ》

使用

机器人眼中的环境是怎么样的呢?——  Rviz数据可视化 
Rviz的使用比较简单
1.ros2 run rviz2 rviz2 打开软件
2.然后选择相应的传感器目标
3.选择对应的话题(数据来源)
话题中的数据来自仿真软件或者实体机

相关的话题:joint_state_robot和robot_state_publisher

      

RVIZ依赖robot_state_publisher发布的相关信息来加载机器人并匹配相关TF关系
当URDF中关节的type都是fixed(即纯静态tf关系),/joint_state中无数据,robot_state_publisher也能正确处理tf问题

保存与使用

        保存——编译生成——启动使用

《RQT》

日志打印-话题发布-请求服务

可视化实时话题数据-可视化节点结构-录音包查看往期数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值