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


# ROS学习:turtle控制 ![img](【ROS学习】初学ROS的小项目/u=585289087,3399034401&fm=253&fmt=auto&app=120&f=JPEG.jpeg) ## turtle旋转 首先查看turtlesim里面的节点,使用rqt_graph查看节点流图![rqt_graph](【ROS学习】初学ROS的小项目/image-20220314081121445.png) ![结果展示](【ROS学习】初学ROS的小项目/image-20220314090657384.png) ```c++ /* * @Description: 这是一个让turtle旋转的ros publisher * @Version: * @Autor: copy * @Date: 2022-03-12 17:28:55 * @LastEditors: copy * @LastEditTime: 2022-03-12 17:42:00 */ #include #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("/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](【ROS学习】初学ROS的小项目/image-20220314110604770.png) * 结果展示 ![image-20220315120427620](【ROS学习】初学ROS的小项目/image-20220315120427620.png) ## [跟踪turtle](https://github.com/Copy2000/turtle/tree/main/src/turtle_csdn) 使用rosservice list 和 rosservice info [service]查看turtle的service-----/Spawn。![image-20220314145138555](【ROS学习】初学ROS的小项目/image-20220314145138555.png) * rospackage * rospy * roscpp * std_msgs * turtlesim * tf * turtle_tf_broadcaster.cpp ![turtle_tf_broadcaster](【ROS学习】初学ROS的小项目/image-20220315115639042.png) * turtle_tf_listener.cpp ![turtle_tf_listener](【ROS学习】初学ROS的小项目/image-20220315115751882.png) * start_demo_with_listener.launch ![image-20220315115814890](【ROS学习】初学ROS的小项目/image-20220315115814890.png) * 结果展示 直接控制![image-20220315115934120](【ROS学习】初学ROS的小项目/image-20220315115934120.png)**无超调,但是反应慢,稳态误差大** PID控制 ![image-20220315161802801](【ROS学习】初学ROS的小项目/image-20220315161802801.png) ![image-20220315120111915](【ROS学习】初学ROS的小项目/image-20220315120111915.png)**超调量大,但是反应迅速,稳态误差较小** 相关代码在我的github的[turtle库中](https://github.com/Copy2000/turtle)

文章作者: copy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 copy !
  目录