【ROS】—— 机器人系统仿真 —RDF、Gazebo与Rviz综合应用(十六)
创始人
2024-05-11 22:26:37
0

文章目录

  • 前言
  • 1. 机器人运动控制以及里程计信息显示
    • 1.1 ros_control 简介
    • 1.2 运动控制实现流程(Gazebo)
      • 1.2.1 为 joint 添加传动装置以及控制器
      • 1.2.2 xacro文件集成
      • 1.2.3 启动 gazebo并控制机器人运动
  • 2. 雷达信息仿真以及显示
    • 2.1 新建 Xacro 文件,配置雷达传感器信息
    • 2.2 xacro 文件集成
    • 2.3 启动仿真环境
  • 3. 摄像头信息仿真以及显示
    • 3.1 新建 Xacro 文件,配置摄像头传感器信息
    • 3.2 xacro 文件集成
    • 3.3 运行
  • 4. kinect信息仿真以及显示
    • 4.1 新建 Xacro 文件,配置 kinetic传感器信息
    • 4.2 xacro 文件集成
    • 4.3 运行
    • 4.4 kinect 点云数据显示

前言

📢本系列将依托赵虚左老师的ROS课程,写下自己的一些心得与笔记。
📢课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ
📢讲义链接:http://www.autolabor.com.cn/book/ROSTutorials/index.html
📢 文章可能存在疏漏的地方,恳请大家指出。

1. 机器人运动控制以及里程计信息显示

1.1 ros_control 简介

保证 ROS 程序的可移植性
ros_control:是一组软件包,它包含了控制器接口,控制器管理器,传输和硬件接口。ros_control 是一套机器人控制的中间件,是一套规范,不同的机器人平台只要按照这套规范实现,那么就可以保证 与ROS 程序兼容,通过这套规范,实现了一种可插拔的架构设计,大大提高了程序设计的效率与灵活性。

1.2 运动控制实现流程(Gazebo)

承上,运动控制基本流程:

  • 已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加传动装置以及控制器
  • 将此文件集成进xacro文件
  • 启动 Gazebo 并发布 /cmd_vel 消息控制机器人运动

1.2.1 为 joint 添加传动装置以及控制器

两轮差速配置

transmission_interface/SimpleTransmissionhardware_interface/VelocityJointInterfacehardware_interface/VelocityJointInterface1Debugtrue/1truetrue100.0trueleft_wheel2base_link right_wheel2base_link ${base_link_radius * 2} ${wheel_radius * 2} 1301.8cmd_vel odom odom base_footprint 

依据驱动轮的xacro文件,将此处的joint名称改为驱动轮关节的名称.



同理,此处也要进行修改

            left_wheel2base_link right_wheel2base_link 

车轮间距与车轮直径也需修改

         ${base_link_radius * 2} ${wheel_radius * 2} 

在这里插入图片描述

1.2.2 xacro文件集成



1.2.3 启动 gazebo并控制机器人运动


2. 雷达信息仿真以及显示

雷达仿真基本流程:

  • 已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加雷达配置;
  • 将此文件集成进xacro文件;
  • 启动 Gazebo,使用 Rviz 显示雷达信息。

2.1 新建 Xacro 文件,配置雷达传感器信息

 0 0 0 0 0 0   true   5.5   360   1   -3   30.10   30.0  0.01  gaussian  0.00.01/scanlaser

重点:

  /scanlaser

2.2 xacro 文件集成



2.3 启动仿真环境

gazebo的launch文件与之前一致

rviz的launch文件如下:

 

gazebo显示效果
在这里插入图片描述rviz显示效果
在这里插入图片描述

3. 摄像头信息仿真以及显示

摄像头仿真基本流程:

  • 已经创建完毕的机器人模型,编写一个单独的 xacro 文件,为机器人模型添加摄像头配置;
  • 将此文件集成进xacro文件;
  • 启动 Gazebo,使用 Rviz 显示摄像头信息。

3.1 新建 Xacro 文件,配置摄像头传感器信息

30.0 1.39626341280720R8G8B80.02300gaussian0.00.007true0.0/cameraimage_rawcamera_infocamera0.070.00.00.00.00.0

重点

  camera

3.2 xacro 文件集成



3.3 运行

和之前一致
在这里插入图片描述

4. kinect信息仿真以及显示

4.1 新建 Xacro 文件,配置 kinetic传感器信息

  true20.0${60.0*PI/180.0}R8G8B86404800.058.0cameratrue10rgb/image_rawdepth/image_rawdepth/pointsrgb/camera_infodepth/camera_infokinect link名称0.10.00.00.00.00.00.4

4.2 xacro 文件集成



4.3 运行

在这里插入图片描述

4.4 kinect 点云数据显示

在这里插入图片描述
问题:在rviz中显示时错位。

原因:在kinect中图像数据与点云数据使用了两套坐标系统,且两套坐标系统位姿并不一致。

解决:
1.在插件中为kinect设置坐标系,修改配置文件的标签内容:

support_depth

2.发布新设置的坐标系到kinect连杆的坐标变换关系,在启动rviz的launch中,添加:


在这里插入图片描述

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...