URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记

URDF、Gazebo与Rviz综合应用

6.7.1.1 机器人运动控制

编写机器人my_base.xacro、编写传动装置以及控制器move.xacro文件,
搭建环境world文件
将上述整合进一个car.xacro文件(加载惯性矩阵xacro、传感器xacro、控制器xacro)
通过car.launch启动(启动gazebo、加载world、显示机器人模型)
查看rostopic_list,有/cmd_vel
URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第1张图片
控制运动
(1)通过以下键盘控制机器人运动:i前进 ,后退 j左转 l右转 k停止

sudo apt-get install ros-melodic-teleop-twist-keyboard

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第2张图片
调整速度:

rosrun teleop_twist_keyboard teleop_twist_keyboard.py _speed=0.3 _turn=0.1

(2)通过rostopic控制运动

rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'

监听速度

rostopic echo /cmd_vel

URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第3张图片

6.7.1.2里程计

gazebo不能显示里程及信息,需要调用rviz。
因此创建sensor.launch文件启动rviz、启动机器人状态和关节状态发布节点
启动car.launch和sensor.launch,设置rviz
URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第4张图片
通过键盘控制机器人运动,即可在rivz显示机器人运动轨迹,同时gazebo中机器人运动起来
URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第5张图片

/model_states获取机器人位姿真值

开启仿真后,设置机器人运动,用话题/model_states获得位姿真值

rostopic echo /gazebo/model_states

URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第6张图片

rosbag记录数据

  • 记录所有的话题
rosbag record -a 

URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第7张图片

  • 数据重现(将filename改为记录下的bag文件名称 不加<>)
rosbag info 		

URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第8张图片

  • 数据重现
    /turtle1/cmd_vel和 /turtle1/pose为topic名称
rosbag record -O subset /turtle1/cmd_vel /turtle1/pose
  • .bag文件转.txt
    将file_name.bag文件中topic_name话题的消息转换到Txt_name.txt文件中:
rostopic echo -b file_name.bag -p /topic_name > Txt_name.txt

URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第9张图片

6.7.2雷达

创建laser.xacro
注意其中和laser的名称,要和小车xacro文件里雷达传感器Link的名称一致,表示本laser.xacro的设置是针对机器人模型中的laser link生效
URDF、Gazebo与Rviz机器人仿真综合应用-autolabor笔记_第10张图片
在机器人模型文件car.urdf.xacro中添加雷达传感器设置

    

新建文件后在工作空间使用

source ./devel/setup.bash

启动car.launch和sensor.launch
在rviz中添加laserScan,设置topic为laser,即可查看雷达的数据点

本文自用 仅供学习查询

你可能感兴趣的:(ROS,gazebo,ubuntu)