项目课课程介绍
任务介绍:
任务一:小车自转寻找场地上摆放的aruco码
任务二:小车抵达三条黑线的交际处
成果展示:

思路实现:
aruco识别:
通过启动小车自带的jubot_ar_track.launch,我们可以省去发布方实现

启动文件后,我们可以得到一个名为/ar_pose_marker的话题,其消息类型为:ar_track_msgs/AlvarMarkers,使用topic echo /ar_pose_marker 命令显示发布的话题内容
那里有我们所需要的position与orientation信息
编写订阅方实现
主要是回调函数的编写,调用marker里position的x与y的值

根据发布的话题编写订阅方

识别到aruco码后,控制小车车头正对aruco码
首先,使用 ROS 中的相机节点捕获图像,并使用 检测器检测到 ArUco 码的位置和姿态。
接下来,获取 ArUco 码的旋转矩阵和平移向量,它们可以用于计算 ArUco 码的姿态。
计算小车的旋转矩阵和平移向量。这可以通过使用 ROS 中的激光雷达或其他传感器来实现,也可以通过在小车上安装陀螺仪和加速度计等惯性传感器来实现。
将小车的姿态旋转矩阵与 ArUco 码的姿态旋转矩阵相乘,得到小车相对于 ArUco 码的旋转矩阵。
根据旋转矩阵计算小车的方向向量,即小车车头所朝向的方向。
计算 ArUco 码的方向向量,即 ArUco 码的 z 轴方向。
比较小车的方向向量和 ArUco 码的方向向量,如果它们在 z 轴上平行,则小车的车头与 ArUco 码的 z 轴平行。


小车驱动实现
首先要先启动底盘控制驱动

小车速度的控制主要是通过更改其线速度与角速度的大小来实现
在识别aruco时,需要让小车自转寻找aruco码的位置,通过将其线速度置0,唯独保留绕其z轴的角速度即可实现

抵达黑线交点
量取aruco码与三条黑线交点之间的距离,通过订阅到的位置与姿态信息,计算小车需要前进的方向与角度。
根据已知黑线交点与 ArUco 码的位置关系,计算出这个点在 ArUco 码坐标系下的坐标。
根据 ArUco 码的位置和姿态,将这个点从 ArUco 码坐标系转换到世界坐标系。
计算小车当前位置与目标点的距离和方向。这可以通过使用 ROS 中的激光雷达或其他传感器来实现,也可以通过在小车上安装陀螺仪和加速度计等惯性传感器来实现。
计算小车需要转动的角度和移动的距离。这可以通过计算目标点与小车当前位置的方向向量和距离来实现。
控制小车转向目标点并移动到目标点。这可以通过 ROS 中的底盘控制节点实现。

