这是一个简单的ROS功能包,利用turtlesim环境,帮助初学者理解简单的话题通信和服务通信。
除此之外,本功能包通过引入海龟跟随的功能,帮助初学者理解简单的控制算法和ROS2中tf2的使用。
本功能包测试于Ubuntu 22.04 + ROS2 Humble环境。
你只需要ROS2的基本环境即可使用。
- MYNODE 节点 : 对外发送"Hello World"话题消息。
- 发布话题:
/topic
- 发布话题:
- spawn 客户端:请求turtlesim生成新的海龟。
- 需要在运行时指定海龟在世界坐标系下的生成位置以及初始角度
- 海龟的名字是默认的,按照turtleX的格式
- tf 节点:订阅海龟的位置信息,发布tf2的变换信息。
- 需要在运行时指定海龟的名称
- follow 节点:订阅tf2的变换信息,控制海龟跟随指定的海龟。
- 需要在运行时指定跟随者和被跟随者的名称
在你尝试运行本功能包之前,你需要先启动turtlesim节点。
ros2 run turtlesim turtlesim_node- 尝试通过命令行发布速度指令,使海龟绘制出一个圆。 20pts
- 阅读并理解源码,成功生成2号海龟,并令其中一只海龟跟随另一只海龟。 30pts
- 可选项:调整速度与角度增益,使得跟随效果更加理想。 + 30pts
- 提示:引入PID控制器可能是一个不错的选择。
- 修改tf节点的源码,支持启动多个tf节点以发布所有海龟的tf2变换信息。 10pts
- 修改follow节点的源码,使得follow节点可以订阅3个海龟的tf2变换信息,实现2只海龟跟随1只海龟。 20pts
- 修改follow节点的源码,令海龟之间保持相对位置与角度不变,实现多只海龟的跟随。 20pts