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
控制运动
(1)通过以下键盘控制机器人运动:i前进 ,后退 j左转 l右转 k停止
sudo apt-get install ros-melodic-teleop-twist-keyboard
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
调整速度:
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
6.7.1.2里程计
gazebo不能显示里程及信息,需要调用rviz。
因此创建sensor.launch文件启动rviz、启动机器人状态和关节状态发布节点
启动car.launch和sensor.launch,设置rviz
通过键盘控制机器人运动,即可在rivz显示机器人运动轨迹,同时gazebo中机器人运动起来
/model_states获取机器人位姿真值
开启仿真后,设置机器人运动,用话题/model_states获得位姿真值
rostopic echo /gazebo/model_states
rosbag记录数据
rosbag record -a
- 数据重现(将filename改为记录下的bag文件名称 不加<>)
rosbag info <file_name>
- 数据重现
/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
6.7.2雷达
创建laser.xacro
注意其中和laser的名称,要和小车xacro文件里雷达传感器Link的名称一致,表示本laser.xacro的设置是针对机器人模型中的laser link生效
在机器人模型文件car.urdf.xacro中添加雷达传感器设置
<xacro:include filename="gazebo/laser.xacro" />
新建文件后在工作空间使用
source ./devel/setup.bash
启动car.launch和sensor.launch
在rviz中添加laserScan,设置topic为laser,即可查看雷达的数据点
本文自用 仅供学习查询