Skip to content

long-tree/ros2_asst1

 
 

Repository files navigation

Hello ROS

这是一个简单的ROS功能包,利用turtlesim环境,帮助初学者理解简单的话题通信和服务通信。

除此之外,本功能包通过引入海龟跟随的功能,帮助初学者理解简单的控制算法和ROS2中tf2的使用。

1. 环境说明

本功能包测试于Ubuntu 22.04 + ROS2 Humble环境。

你只需要ROS2的基本环境即可使用。

2. 节点说明

  • MYNODE 节点 : 对外发送"Hello World"话题消息。
    • 发布话题: /topic
  • spawn 客户端:请求turtlesim生成新的海龟。
    • 需要在运行时指定海龟在世界坐标系下的生成位置以及初始角度
    • 海龟的名字是默认的,按照turtleX的格式
  • tf 节点:订阅海龟的位置信息,发布tf2的变换信息。
    • 需要在运行时指定海龟的名称
  • follow 节点:订阅tf2的变换信息,控制海龟跟随指定的海龟。
    • 需要在运行时指定跟随者和被跟随者的名称

在你尝试运行本功能包之前,你需要先启动turtlesim节点。

ros2 run turtlesim turtlesim_node

3. 任务说明

  • 尝试通过命令行发布速度指令,使海龟绘制出一个圆。 20pts
  • 阅读并理解源码,成功生成2号海龟,并令其中一只海龟跟随另一只海龟。 30pts
    • 可选项:调整速度与角度增益,使得跟随效果更加理想。 + 30pts
    • 提示:引入PID控制器可能是一个不错的选择。
  • 修改tf节点的源码,支持启动多个tf节点以发布所有海龟的tf2变换信息。 10pts
  • 修改follow节点的源码,使得follow节点可以订阅3个海龟的tf2变换信息,实现2只海龟跟随1只海龟。 20pts
  • 修改follow节点的源码,令海龟之间保持相对位置与角度不变,实现多只海龟的跟随。 20pts

About

An assignment based on ROS2 Humble using turtlesim

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C++ 83.4%
  • CMake 16.6%