02---控制移动底座6
用现实的机器人执行计时前进并返回
如果用现实的机器人来运行脚本timed_out_and_back.py,在这里只是用了时间和速度估算距离和角度。可以预见,机器人因为惯性,运动结果与在ArbotiX模拟器上的结果有出入(在模拟器中我们并没有建立物理模型)
1、首先,停止所有正在运行的模拟器。运行你自己的机器人的启动文件。如果你有一个原版的TurtleBot(底座为iRobot Create),通过ssh连接到机器人的计算机并执行以下命令:
roslaunch rbx1_bringup turtleboe_minimal_create.launch
或者可以运行你自己创建并且存有你的校准参数的启动文件。
你还可以使用一个辅助脚本,让你可以在Rviz中看到TurtleBot的组合测量框架;如果不是使用TurtleBot,可以略过此步。运行在另一个连接到TurtleBot的计算机的ssh终端中的这个启动文件:
roslaunch rbx1_bringup odom_ekf.launch
接着我们配置RViz来显示组合测量数据(编码器+陀螺仪),而不仅仅是显示编码器数据的/odom。如果在前面的测试中使用过RViz了,你可以简单地取消选择Odometry display选项,并选择Odometry EKF display选项,然后略过下面的步骤。
如果RViz还没有运行,在你的工作站中使用nav_ekf配置文件运行它,这个配置文件只是简单地预先选择/odom_ekf话题来显示组合测量数据。
rosrun rviz rviz -d `rospack find rbx1_nav`/nav_ekf.rviz
这个配置文件和先前的配置文件唯一区别就是,现在是在/odom_ekf话题中显示组合测量数据,而不仅仅是在/odom_ekf话题上发布来自轮子编码器的数据,你可以同时选择两种显示模式来比较他们的差别。
最后,我们像之前做的那样运行计时前进并返回脚本。注意脚本本身并不关心我们是在模拟器还是在真是的机器人上运行,它仅仅是发布Twist消息到话题/cmd_vel上,供任何监听者的使用。这个例子向我们展示了在运动控制层中,ROS如何把我们较低层次的操作抽象化,你可以在你的工作站或者在用ssh连接上的机器人计算机上运行下面的命令:
rosrun rbx1_nav timed_out_and_back.py。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】