正在加载图片...
在编译前记得为该node在CMakeLists.txt中添加编译指令 rosbuild add executable(odometry src/odometry.cpp) 编译包,然后仅使用rviz来launch机器人,观察机器人的模型和运动。 S roslaunch chapter7_tutorials display_xacro.launch model:=""rospack find chapter7_tutorials'/urdf/robot1_base 04.xacro" 并且运行odometrynode S rosrun chapter7_tutorials odometry 可以得到以下输出 e站Hp 内风 Ten Pyoperli解s Gbd Cpiiene ·2DhwG6e dn■,,D Tk Fxoderme dom Toge:Fr...Fted Frame lupk i Jpos Gahe对uek 01.Rosat Ma.... VCAT 02.crid () uJ.oconet. Selectitnt me alT门m1raa3较wtrt0a ROtTme 171836769192 BoS lpeed9123 在z模型界面,可以看到机器人移动还有一些红色的箭头,机器人移动是因为tf速度的发 布,红色箭头是里程信息的图形化表示。可以看到机器人按照程序的设定沿着一个圆连续的 运动 创建一个基座控制器 基座控制器是导航包中一个非常重要的元素,因为这是一个唯一高效控制机器人的方 法。它能够直接和机器人的控制电路相互通讯。 ROS并没有提供一个标准的控制器,所以必须要为移动平台写一个基座控制器。 机器人必须要由geometry msgs/Twist类型的消息来进行控制。这个消息在里程消息也能看 到。 所以,基座控制器必须要能够监听名为cmd velf的topic同时必须生存正确的下位机指令来控 制平台实现相应的线速度角速度等。 我们首先回顾一下这个消息的结构。 S rosmsg show geometry_msgs/Iwist geometry_msgs/Vector3 linear float64 x -15-- 15 - 在编译前记得为该node在CMakeLists.txt中添加编译指令 rosbuild_add_executable(odometry src/odometry.cpp) 编译包,然后仅使用rviz来launch机器人,观察机器人的模型和运动。 $ roslaunch chapter7_tutorials display_xacro.launch model:="`rospack find chapter7_tutorials`/urdf/robot1_base_04.xacro" 并且运行odometrynode $ rosrun chapter7_tutorials odometry 可以得到以下输出 在rviz模型界面,可以看到机器人移动还有一些红色的箭头,机器人移动是因为tf速度的发 布,红色箭头是里程信息的图形化表示。可以看到机器人按照程序的设定沿着一个圆连续的 运动 4. 创建一个基座控制器 基座控制器是导航包中一个非常重要的元素,因为这是一个唯一高效控制机器人的方 法。它能够直接和机器人的控制电路相互通讯。 ROS并没有提供一个标准的控制器,所以必须要为移动平台写一个基座控制器。 机器人必须要由geometry_msgs/Twist类型的消息来进行控制。这个消息在里程消息也能看 到。 所以,基座控制器必须要能够监听名为cmd_vel的topic同时必须生存正确的下位机指令来控 制平台实现相应的线速度角速度等。 我们首先回顾一下这个消息的结构。 $ rosmsg show geometry_msgs/Twist geometry_msgs/Vector3 linear float64 x
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有