正在加载图片...
std msgs/Header header uint32 seq time sLarp string framc id string child frane 1d gearetry nsgs/PosewithCavar Lance pose gcometry msgs/Pase pose geonetry_msos/Potnt posttton fLoat64× Float64 y float64 z geonetry_nsgs/Quaternion ortentatton float64 x float64 y float64 z float64 w Float64[30]covariance georetry_nsgs/Twtstwlthcovartance twist geometry_msgs/Twist twist gepnetry_msgs/vector3 linear float64 x float64 y fLoat64 z geonetry msgs/vertor3 angular float64 x fLoat64 y float64 z float64[36]covariance 可以看到在里程消息结构中,nav_msgs/odometry?给出的是坐标系frame_id和 child frame id之间的位移。具体包含了位姿pose和速度矢量。 Pos有两个结构体一个是表示欧式空间的位置另一个是用四元素表示的机器人朝向。 这个朝向是表示机器人的方向的上的位移。 速度矢量包含了线性速度和角速度。针对本实验中的机器人,仅仅使用道x向线速度和z 向角速度。这样我们可以知道,机器人前进还是后退,左转还是右转。 因为里程是两个frame之间的位移,所以必须要发布两个坐标系frame之间的TF。 3.2 Gazebo?如何创建里程 正如我们所见,机器人在Gazebof的仿真环境中和真实机器人在实际环境中运动是一样的。我 们用了一个diffdrive plugin差速驱动器来控制两个轮子的运动。 正是这个差速驱动器发布了虚拟环境中的里程信息,所以就不在需要我们去写这个里程信息 的发布功能了。 执行Gazebo中的机器人仿真实例来观察里程工作的情况。 S roslaunch chapter7_tutorials gazebo xacro.launch model:=""rospack find chapter7_tutorials'/urdf/robot1_base 04.xacro" S rosrun erratic_teleop erratic_keyboard_teleop 利用键盘操作模式,可以控制机器人移动一段时间产生新的里程topic。 在Gazebot仿真器中,点击robot modell,可以看到物体的属性。点击其中的pose,可以看到各 个属性的值。移动机器人查看相应的变化。 -10-- 10 - 可以看到在里程消息结构中,nav_msgs/odometry给出的是坐标系frame_id和 child_frame_id之间的位移。具体包含了位姿pose和速度矢量。 Pose 有两个结构体一个是表示欧式空间的位置另一个是用四元素表示的机器人朝向。 这个朝向是表示机器人的方向的上的位移。 速度矢量包含了线性速度和角速度。针对本实验中的机器人,仅仅使用道x向线速度和z 向角速度。这样我们可以知道,机器人前进还是后退,左转还是右转。 因为里程是两个frame之间的位移,所以必须要发布两个坐标系frame之间的TF。 3.2 Gazebo如何创建里程 正如我们所见,机器人在Gazebo的仿真环境中和真实机器人在实际环境中运动是一样的。我 们用了一个diffdrive_plugin 差速驱动器来控制两个轮子的运动。 正是这个差速驱动器发布了虚拟环境中的里程信息,所以就不在需要我们去写这个里程信息 的发布功能了。 执行Gazebo中的机器人仿真实例来观察里程工作的情况。 $ roslaunch chapter7_tutorials gazebo_xacro.launch model:="`rospack find chapter7_tutorials`/urdf/robot1_base_04.xacro" $ rosrun erratic_teleop erratic_keyboard_teleop 利用键盘操作模式,可以控制机器人移动一段时间产生新的里程topic。 在Gazebo仿真器中,点击robot_model1,可以看到物体的属性。点击其中的pose,可以看到各 个属性的值。移动机器人查看相应的变化
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有