ROS第一次课作业分享
2024-09-02 05:48:12
ROS第一次课作业分享
2021年夏季学期学院开设了ROS的相关课程,最近在复习相关知识,正好做一下整理。下面是第一次作业的要求:
- 编写一个ROS节点,具备以下功能:
- 读取小海龟仿真器的/turtle1/pose话题;
- 每次读取出新的位置后,计算上一次的位置与本次位置的距离,并累加求和;
- 持续刷新显示小海龟走过的距离总和;
- 启动小海龟仿真器和小海龟的键盘控制节点,随机控制小海龟运动,并不停的刷新小海龟走过的路径总和;
- 将自己运行时的小海龟界面和持续刷新显示路径总和的终端窗口一起显示并截图,放在word文件中上交。程序源码也放word里。
修改后的pose_subscriber.cpp文件如下:
#include <ros/ros.h>
#include "turtlesim/Pose.h"
double sum = 0;
double x;
double y;
double delta;
int count = 1;
void poseCallback(const turtlesim::Pose::ConstPtr& msg)
{
if(!count)
{
delta = sqrt((x - msg->x) * (x - msg->x) + (y - msg->y) * (y - msg->y));
x = msg->x;
y = msg->y;
sum = sum + delta;
ROS_INFO("sum: %lf", sum);
}
else
{
x = msg->x;
y = msg->y;
count=0;
}
}
int main(int argc, char **argv)
{
ros::init(argc, argv, "pose_subscriber");
ros::NodeHandle n;
ros::Subscriber pose_sub = n.subscribe("/turtle1/pose", 10, poseCallback);
ros::spin();
return 0;
}
依次每个窗口输入即可
roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key
rosrun learning_topic pose_subscriber
将光标放在rosrun turtlesim turtle_teleop_key那个界面,键盘操纵小海龟移动。
最新文章
- eclipse导入项目后,java文件无法编辑的问题
- Javascript常用方法函数收集(二)
- dll显式加载与隐式加载
- 选择一个 HTTP 状态码不再是一件难事 – Racksburg
- 软件测试作业三 尝试使用JUnit
- Inno Setup GIF 显示插件 GIFCtrl (V2.1 版本)
- Iphone JS时间
- vs 2010 网站项目和asp.net 应用程序引用webservice
- 《物联网框架ServerSuperIO教程》-21.终端控制传感器或设备,形成回路控制。附:demo源代码
- requests+正则表达式提取猫眼电影top100
- python版接口自动化测试框架源码完整版(requests + unittest)
- C++重写new和delete,比想像中困难
- MySQL数据排序asc、desc
- quartz 实例
- Oracle Error
- 网络基础&#160;利用vnc&#160;viewer访问在vmware虚拟机上的linux
- webpack局部安装的问题
- 在windows安装配置Git开发环境
- Spark: Best practice for retrieving big data from RDD to local machine
- 2012Noip提高组Day2 T3 疫情控制
热门文章
- Redis的配置文件redis.conf详解
- 关于synchronized(this)中this指的是什么意思
- 3.Flink实时项目之流程分析及环境搭建
- docker基础——2.镜像管理
- matlab构建栅格地图绘图思路
- 编译安装http2.4
- postman中环境变量的设置方法、使用方法和实际中常见使用场景
- Apache虚拟主机的搭建及相关问题解决
- WPF/MVVM Quick Start Tutorial - WPF/MVVM 快速入门教程 -原文,翻译及一点自己的补充
- 探秘inter()方法