首页 > 其他分享 >【ROS学习】初学ROS的小项目

【ROS学习】初学ROS的小项目

时间:2023-06-03 23:37:03浏览次数:45  
标签:turtle twist ros msgs 学习 初学 tf ROS

ROS学习:turtle控制

img

turtle旋转

首先查看turtlesim里面的节点,使用rqt_graph查看节点流图rqt_graph

结果展示

/*
 * @Description: 这是一个让turtle旋转的ros publisher
 * @Version: 
 * @Autor: copy
 * @Date: 2022-03-12 17:28:55
 * @LastEditors: copy
 * @LastEditTime: 2022-03-12 17:42:00
 */
#include <ros/ros.h>
#include "geometry_msgs/Twist.h"

#define PI 3.141592653
int main(int argc,char** argv)
{
    ros::init(argc,argv,"turtle_twist");
    ros::NodeHandle nh;
    ros::Publisher Pub = nh.advervise<geometry_msgs::Twist>("/turtle1/cmd_vel",10);
    geometry_msgs::Twist twist;
    twist.linear.x = 1;
    twist.angular.z = PI;
    ROS_INFO("\t现在的速度是%f,偏转速度是%f\t",twist.linear.x,twist.angular.z = PI);
    ros::Rate rate(10);//10Hz
    while(ros::OK)
    {
        Pub.publish(twist);

        rate.sleep();
        ros::spin();            //后面的代码不再执行ros::spinOnce();
    }

    return 0;
}

接收turtle位置

使用rostopic list 和rostopic info [topic]查看turtle的topic,image-20220314110604770

  • 结果展示

    image-20220315120427620

跟踪turtle

使用rosservice list 和 rosservice info [service]查看turtle的service-----/Spawn。image-20220314145138555

  • rospackage

    • rospy
    • roscpp
    • std_msgs
    • turtlesim
    • tf
  • turtle_tf_broadcaster.cpp

    turtle_tf_broadcaster

  • turtle_tf_listener.cpp

    turtle_tf_listener

  • start_demo_with_listener.launch

    image-20220315115814890

  • 结果展示

直接控制image-20220315115934120无超调,但是反应慢,稳态误差大

PID控制

image-20220315161802801

image-20220315120111915超调量大,但是反应迅速,稳态误差较小

相关代码在我的github的turtle库中

标签:turtle,twist,ros,msgs,学习,初学,tf,ROS
From: https://www.cnblogs.com/copy2000/p/17454969.html

相关文章

  • 【ROS学习】配置rotors-simulator
    本文按照https://github.com/ethz-asl/rotors_simulator一步一步搭建并且踩坑记录。雷第一个坑:尽量不要在虚拟机上跑,因为你在catkinmake的时候就会卡住。在原文中也提到了,第一次加载gazebo的时候会出现超时error,不要慌,关闭当前gazebo窗口再次输入用法的1命令。好像用不......
  • Microsoft IME 日文输入法能否设置默认在平假名输入状态呢?
    我的windows10系统版本前段时间更新到了2004版本。不知是不是系统更新的缘故,日文输入法似乎默认状态总是英文输入了。 MicrosoftIME日文输入法默认在”半角英数“状态(输入法工具栏显示为”A“),如果想要切换至”平假名“输入状态(输入法工具栏显示为”あ“)的话就需要按一次切换......
  • 「学习笔记」概率与期望
    样本点与样本空间\(A=\left\{1,2,3\right\}\)\(1,2,3\)为样本点,\(A\)为样本空间。\[A=\left\lbrace1,2,3\right\rbrace\\B=\left\lbrace2,3,4\right\rbrace\\A\capB=\left\lbrace2,3\right\rbrace=A\cdotB\\A......
  • 05web安全学习---PHP正则表达式
    一、初识SQL注入<metacharset='GBK'/><form><center> 用户登录<br/>账号:<inputtype='text'name='uname'/><br/>密码:<inputtype='password'name='pwd'/><br/>&......
  • 强化学习:连续控制问题中Actor-Critic算法的linear baseline
    最近在看连续控制问题,看到了一个Actor-Critic算法中手动扩展features和设置linearbaseline的方法,这些方法源自论文:《BenchmarkingDeepReinforcementLearningforContinuousControl》。  对于低维的features我们可以手动扩展:  代码实现:returntorch.cat([observations,ob......
  • 强化学习基础篇[3]:DQN、Actor-Critic详细讲解
    强化学习基础篇[3]:DQN、Actor-Critic详细讲解1.DQN详解1.1DQN网络概述及其创新点在之前的内容中,我们讲解了Q-learning和Sarsa算法。在这两个算法中,需要用一个Q表格来记录不同状态动作对应的价值,即一个大小为$[状态个数,动作个数]$的二维数组。在一些简单的强化学习环境中,比如......
  • ROS业务,IP业务完全终止
    今天,混播ROS业务完全终止,也代表着过去十三年的网络业务的完全终止。从2010年至今,这个业务给我的生活提供了物质保障,今天完全落下帷幕了。新转型的项目也有了起色。感谢ROS,感谢MIKROTIK公司的技术,给了我十几年稳定的生活。让我在逆境中度过难关。感谢拉脱维亚这个伟大的国家。接......
  • 【QoS预测】用于冷启动QoS预测的基于图对比学习的双子图网络
    论文题目:ZhuJ,LiB,WangJ,etal.BGCL:Bi-subgraphnetworkbasedongraphcontrastivelearningforcold-startQoSprediction[J].Knowledge-BasedSystems,2023,263:110296.问题:通过利用用户和服务之间的历史交互记录,协同过滤(Collaborativefiltering)成为了一种......
  • 基于深度学习的图像分类:使用卷积神经网络实现猫狗分类器
    摘要:深度学习在计算机视觉领域中具有广泛的应用。本文将介绍如何使用卷积神经网络(CNN)实现一个猫狗分类器。我们将使用Python和TensorFlow框架搭建一个简单的卷积神经网络模型,并利用猫狗图像数据集进行训练和测试。通过本文,读者将了解到深度学习在图像分类任务中的基本原理和实践应......
  • 用chartGPT学习一门语言--python(提问示范)
    1. 2. 3. 4 5. 6. ......