无控制无人艇模型的C++实现:从3自由度到6自由度

无控制无人艇模型的C++实现:从3自由度到6自由度

在现代海洋工程和无人系统研究中,无人水面艇(ASV, Autonomous Surface Vehicle)因其广泛的应用前景而备受关注。ASV的运动模型是研究和开发无人艇的重要基础。本文将详细介绍如何在C++中实现无控制无人艇的3自由度模型,并进一步扩展到6自由度模型。我们将通过具体的代码示例和图形可视化,展示如何进行这些模型的实现和参数调整。

一、无人艇模型概述

1.1 无人艇模型的自由度

无人艇在水面上的运动可以分为三个基本的自由度:

  1. 横摇(Roll, φ):绕纵轴的旋转。
  2. 纵摇(Pitch, θ):绕横轴的旋转。
  3. 偏航(Yaw, ψ):绕垂直轴的旋转。

在更复杂的模型中,可以考虑全部六个自由度:

  1. 横摇(Roll, φ)
  2. 纵摇(Pitch, θ)
  3. 偏航(Yaw,
【资源说明】 基于NMPC的无人定点控制与轨迹跟踪控制仿真C++源码+项目使用说明.zip ROS话题通信初探——基于NMPC的无人定点控制与轨迹跟踪控制仿真 # 0 项目结构 src文件夹共包含三个功能包: wamv_model: 用于构建小车模型,创建小车节点test_wamv_model myplot: 用于可视化小车运行状态,创建绘图节点test_plot mycontroller:用于构建nmpc控制器,创建节点test_station_keeping和test_trajectory_tracking 在mycontroller中有launch文件夹,其中包含两个launch文件 # 1 项目依赖 ros-noetic eigen3 (用于矩阵运算) casadi3.6.3 (linux,C++版本,用于求解NLP问题) matplotlibcpp (用于绘图,由于调用的是python的绘图,因此需要安装python和相应的python绘图库) # 2 项目构建 在主目录下创建文件夹rosusv_ws:mkdir rosusv_ws 拷贝代码到本地文件夹: 解压 在rosusv_ws文件夹下运行: catkin_make 构建可能遇到的问题:找不到自定义消息头文件,比如wamv_model/states.h,wamv_model/controls.h 解决办法: (1)在src文件中将其他包文件夹删除,只保留一个包文件夹wamv_model (2)执行catkin_make编译,执行完后在devel/include/wamv_model中就会出现两个头文件,controls.h和states.h (3)将其余包文件夹放入src中 (4)再次执行catkin_make编译,就可以编译成功了 此时项目可以完全构建成功 # 3 配置环境变量 把当前工作空间的环境变量设置到bash中并source bashrc文件使其生效: echo "source ~/rosusv_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc # 4 运行 首先在一个终端运行roscore (1) 测试定点控制:roslaunch mycontroller test_station_keeping.launch (2) 测试轨迹跟踪控制:roslaunch mycontroller test_trajectory_tracking.launch # 5 算法参数修改 (1) 定点控制:NMPC参数:在nmpc_station_keeping.cpp中可修改惩罚矩阵Q和R的数值,m_Q和m_R 设定期望点:在test_station_keeping.cpp中可修改期望到达的位置 (2) 轨迹跟踪:NMPC参数:在nmpc_trajectory_tracking.cpp中可修改惩罚矩阵Q和R的数值,m_Q和m_R 设定期望轨迹:在test_trajectory_tracking.cpp中可修改期望轨迹 # 6 问题 轨迹跟踪存在问题,不能很好的跟踪轨迹,估计是时序问题 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快撑死的鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值