优美的曲线-turtlesim
Posted zhangrelay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优美的曲线-turtlesim相关的知识,希望对你有一定的参考价值。
2022年所公开博客案例所有项目,都在2020年之前完成,并且全部经过3轮以上测试。
当完美实现闭环之后,画曲线那就可以随心所欲啦。
想画什么,就能画什么。
核心代码:
float curve_k = 5.0/8.0;
float curve_t = 1;
goal_x=5.5+2.0*cos(curve_k*curve_t/200.0)*cos(curve_t/200.0);
goal_y=5.5+2.0*cos(curve_k*curve_t/200.0)*sin(curve_t/200.0);
如上这段代码,需要插入到:
#include "ros/ros.h"
#include "turtlesim/Pose.h"
#include "geometry_msgs/Twist.h"
#include "math.h"
#include <sstream>
ros::Subscriber sub;
ros::Publisher pub;
float goal_x = 2;
float goal_y = 2;
void sendVel(const turtlesim::Pose::ConstPtr& data)
ros::NodeHandle n;
pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel",100);
float curr_x = data->x;
float curr_y = data->y;
float curr_ang = data->theta;
float dist = sqrt(pow(goal_x-curr_x,2) + pow(goal_y-curr_y,2));
std::cout << "Distance = " << dist << std::endl;
if(dist > 0.01)
double ang = atan2((float)(goal_y-curr_y),(float)(goal_x-curr_x));
std::cout << "Curr_ang = " << curr_ang << " | ang = " << ang << std::endl;
geometry_msgs::Twist t_msg;
t_msg.linear.x = 1.0*(dist);
t_msg.angular.z = 4.0*(ang-curr_ang);
pub.publish(t_msg);
else
std::cout << "Mission Completed" << std::endl;
std::cout << "Please enter new coordinates" << std::endl;
std::cout << "Please enter goal_x:" << std::endl;
std::cin >> goal_x;
std::cout << "Please enter goal_y:" << std::endl;
std::cin >> goal_y;
int main(int argc, char **argv)
ros::init(argc,argv,"goToGoal");
ros::NodeHandle n;
sub = n.subscribe("/turtle1/pose",100,sendVel);
ros::spin();
return 0;
如上代码有bug,需要修正,bug具体效果参考:
cocube稳定到振荡
为何这么做?
主要是对比开环和闭环曲线绘制的差异。如上全部都是闭环绘制。
需要turtle的位置信息反馈。
2021-09-17 22:11:46 发布:
2021-09-26 16:11:57 发布:
玫瑰线轨迹如何规划?(desmos+ROS2+turtlesim+……)
收到一些反馈,大部分解答都集中在开环绘制,绘制精度不高,主要问题在于绘制路径出现重影模糊现象。
闭环绘制可以使得绘制品质极大提升,但题目发布1年多时间,没有收到此类交流。
一部分机器人工程专业学生,学习自动控制原理,只会背公式用其做题或完成考试,没有能够将其应用于各类真实场景中,难以做到灵活应用,大部分以机械记忆类学习为主。
轨迹跟踪控制是机器人路径规划最为基础的内容。
创新非常重要,尤其是在机器人和人工智能时代。
当机器人和人工智能时代发展越快越好,我所工作学校毕业生的处境就愈发艰难。
如何将鲜活的知识与严密的思维紧密结合?首先,要回答一个问题:
为什么这么做?我考虑了如下三个问题。
22->第一个问题,人才培养与人才梯度的问题(人工智能与机器人人才缺口大)。分为三个方面考虑(教育资源分配不均加剧断层):
1 人才断层
成本高、资源浪费并存,重点大学相关人才起薪高,普通高校找工作难。
人才断层导致分工困难,由上而下,无法顺利完成,主管能力的“地平线”,是下属能力的“天花板”。
2 培养周期
没有良好思维训练等,没有树立终身学习等(铁饭碗等陈旧观念),断层后直接遇到天花板,无法成长,不能形成良性循环。
3 智慧型机器人对工作机会的取代,导致对人才要求的不断提高
标准化的工作迟早会被人工智能和机器人取代,标准化的教育也无法培养个性化的人才。明明学习的知识越来越多,为何越来越无用呢?
其实多年前就关注OpenAI,最近火热的ChatGPT。
ChatGPT:优化
语言模型
用于对话
我们训练了一个叫做ChatGPT的模型,它以对话方式进行交互。对话格式使ChatGPT能够回答后续问题、承认错误、质疑不正确的前提和拒绝不适当的请求。ChatGPT是InstructGPT的兄弟模型,它被训练为在提示中遵循指令并提供详细的响应。
博客关于OpenAI部分案例学习:
2019年:
ROS、OpenAI和Gazebo机器人与人工智能仿真与实践教研杂记(三)深度学习
物联网IoT Arduino 机器人ROS 人工智能OpenAI融合课程(幼儿园到大学)
-Fin-
以上是关于优美的曲线-turtlesim的主要内容,如果未能解决你的问题,请参考以下文章
用MATLB仿真一个单闭环控制量,同时还存在两个开环控制变量的阶跃响应曲线。(自动控制方法是PID中的P控制。通过查表法直接给开环参数稳态最佳的大小)