ROS实现机器人移动

news2024/11/23 20:58:40

开源项目

使用是github上六合机器人工坊的项目。

https://github.com/6-robot/wpr_simulation.git

机器人运动模型

运动模型如下所示:👇

在这里插入图片描述

机器人运动的消息包:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
实现思路:👇
在这里插入图片描述

为什么要使用/cmd_vel话题。因为这个是约定俗成的,项目中订阅的就是这个话题,否则无法订阅到主题或者更改项目的订阅者的源码

使用catkin_create_pkg 命令开具工具包,切换到catkin_ws下的src目录


  • catkin_create_pkg vel_pkg rospy roscpp geometry_msgs #要依赖于geometry_msgs消息包,之前是依赖于std_msgs标准信息包。

vel_node节点的cpp文件👇

#vel_node.cpp
#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
int main(int argc, char *argv[])
{
    //初始化节点
    ros::init(argc,argv,"vel_node");
    ros::NodeHandle nh;
    ros::Publisher pub=nh.advertise<geometry_msgs::Twist>("/cmd_vel",10);
    //定义消息包
    geometry_msgs::Twist vel_msgs;
    vel_msgs.linear.x=0.2;
    vel_msgs.linear.y=0.3;
    vel_msgs.linear.z=0;
    vel_msgs.angular.x=0;
    vel_msgs.angular.y=0;
    vel_msgs.angular.z=0;

    ros::Rate r(30);
//开始持续发布消息
while(ros::ok())
{
    pub.publish(vel_msgs);
    r.sleep();

}
    
    return 0;
}

备注:Cmakelist.txt文件末尾加上,vscode的编译规则👇


add_executable(vel_node src/vel_node.cpp)
add_dependencies(vel_node KaTeX parse error: Expected '}', got 'EOF' at end of input: {{PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
target_link_libraries(vel_node
${catkin_LIBRARIES}
)


在这里插入图片描述

成功运行
在这里插入图片描述

额外,对于Rviz使用篇幅较短,就附录在文章尾部。

Rviz简介:

  • RViz是ROS的一个可视化工具,用于可视化和调试ROS中的数据。它允许你在三维空间中显示和查看ROS的各种数据,如传感器数据、机器人模型、路径规划结果等。

RViz的功能包括:

  • 可视化传感器数据:你可以通过RViz查看激光雷达、摄像头、深度相机等传感器的实时数据。

  • 可视化机器人模型:你可以在RViz中加载机器人模型,查看机器人在三维空间中的姿态、关节状态等。

  • 可视化路径规划:RViz支持显示机器人的路径规划结果,包括全局路径和局部路径。

  • 可视化地图:你可以在RViz中加载地图数据,查看机器人所在的环境。

  • 可视化TF坐标变换:RViz可以显示ROS中的TF坐标变换关系,帮助你了解机器人各个部件之间的相对位置。

  • 可视化标记:你可以在RViz中添加标记、箭头、文字等来可视化特定的信息。
    使用命令:

rviz

在这里插入图片描述

 如果你想添加模型,可以点击Add按钮

在这里插入图片描述

结果展示:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/840914.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Cloud +UniApp 智慧工地云平台源码,智能监控和AI分析系统,危大工程管理、视频监控管理、项目人员管理、绿色施工管理

一套智慧工地云平台源码&#xff0c;PC管理端APP端平板端可视化数据大屏端源码 智慧工地可视化系统利用物联网、人工智能、云计算、大数据、移动互联网等新一代信息技术&#xff0c;通过工地中台、三维建模服务、视频AI分析服务等技术支撑&#xff0c;实现智慧工地高精度动态仿…

项目实战 — 消息队列(4){消息持久化}

目录 一、消息存储格式设计 &#x1f345; 1、queue_data.txt&#xff1a;保存消息的内容 &#x1f345; 2、queue_stat.txt&#xff1a;保存消息的统计信息 二、消息序列化 三、自定义异常类 四、创建MessageFileManger类 &#x1f345; 1、约定消息文件所在的目录和文件名…

重锤式表面电阻测试仪的原理和特点

重锤式表面电阻测试仪是一种用于测量材料表面电阻的仪器。它采用了重锤敲击和测量电流的方式进行测试。 工作原理&#xff1a; 重锤式表面电阻测试仪通过将一个金属锤头敲击在待测物体表面&#xff0c;产生一个封闭电路。测量仪器通过检测在敲击区域上下电极之间距离的电流流…

C语言代码的x86-64汇编指令分析过程记录

先通过Xcode创建一个terminal APP&#xff0c;语言选择C。代码如下&#xff1a; #include <stdio.h>int main(int argc, const char * argv[]) {int a[7]{1,2,3,4,5,6,7};int *ptr (int*)(&a1);printf("%d\n",*(ptr));return 0; } 在return 0处打上断点&…

相机传感器格式与镜头光圈参数

相机靶面大小 CCD/CMOS图像传感器尺寸&#xff08;sensor format&#xff09;1/2’‘、1/3’‘、1/4’实际是多大 1英寸——靶面尺寸为宽12.7mm*高9.6mm&#xff0c;对角线16mm。 2/3英寸——靶面尺寸为宽8.8mm*高6.6mm&#xff0c;对角线11mm。 1/2英寸——靶面尺寸为宽6.…

第4章 变量、作用域与内存

引言 由于js是一门只有在声明变量后才能明确类型的语言&#xff0c;并且在任意时刻都可以改变数据类型。这也引起了一些问题 原始值与引用值 原始值就是基本数据类型&#xff0c;引言值就是复杂数据类型 变量在赋值的时候。js会判断如果是原始值&#xff0c;访问时就是按值访问…

Air32 | 合宙Air001单片机内部FLASH读写示例

Air32 | 合宙Air001单片机内部FLASH读写示例 代码已经通过测试&#xff0c;开发环境KEIL-MDK 5.36。 测试代码 void FLASH_RdWrTest(void) {uint32_t Address;uint32_t PageReadBuffer[FLASH_PAGE_SIZE >> 2];uint32_t PageWriteBuffer[FLASH_PAGE_SIZE >> 2];mem…

仓储物流业如何实现精细化工时成本管理,提升出库效率?

面对日益复杂的物流需求&#xff0c;以及不断上涨的人力成本。仓储物流企业想要在市场竞争中脱颖而出&#xff0c;不仅需要提升出库效率&#xff0c;满足消费者次日达甚至当日达的高要求&#xff0c;更需要控制人力成本&#xff0c;保证企业持续盈利的能力。盖雅新推出的 「劳…

恒运资本:史上最强暑期档!总票房突破147亿,前三都是国产片!

暑期档电影又爆了&#xff01; 就在刚刚曩昔的周末&#xff0c;在《封神第一部》《巨齿鲨2&#xff1a;深渊》《火热》等电影的大卖&#xff0c;以及《背注一掷》点映及预售的加持下&#xff0c;短短两天的大盘票房就到达10亿元。 其间&#xff0c;据猫眼专业版数据&#xff0…

Windows下安装Kafka(图文记录详细步骤)

Windows下安装Kafka Kafka简介一、Kafka安装前提安装Kafka之前&#xff0c;需要安装JDK、Zookeeper、Scala。1.1、JDK安装&#xff08;version&#xff1a;1.8&#xff09;1.1.1、JDK官网下载1.1.2、JDK网盘下载1.1.3、JDK安装 1.2、Zookeeper安装1.2.1、Zookeeper官网下载1.2.…

Java方法重写

目录 1.什么是方法重写 2.方法重写的规则 3.重写与重载的区别 1.什么是方法重写 重写&#xff08;override&#xff0c;也称为覆盖&#xff09;&#xff1a;在子类中对父类中允许访问的方法的实现过程进行重新编写&#xff0c;子类中方法的名称、返回值类型、参数列表与父类…

Redis安装以及配置隧道连接(centOs)

目录 1.centOs安装Redis 2. Redis 启动和停⽌ 3. 操作Redis 2.Xshell配置隧道 1.centOs安装Redis #使⽤yum安装Redis yum -y install redis 2. Redis 启动和停⽌ #查看是否启动 ps -ef|grep redis#启动redis: redis-server /etc/redis.conf &#停⽌Redis redis-cli sh…

【web逆向】全报文加密流量的去加密测试方案

aHR0cHM6Ly90ZGx6LmNjYi5jb20vIy9sb2dpbg 国密混合 WEB JS逆向篇 先看报文&#xff1a;请求和响应都是全加密&#xff0c;这种情况就不像参数加密可以方便全文搜索定位加密代码&#xff0c;但因为前端必须解密响应的密文&#xff0c;因此万能的方法就是搜索拦截器&#xff0c…

B站电商分析,如何发现近期热门商品及优质视频带货达人?

哔哩哔哩是我们熟知的以二次元为基调的视频内容生产平台&#xff0c;具有浓厚而专注的二次元社区氛围&#xff0c;随着b站的迅猛发展&#xff0c;b站由原先的二次元市场逐渐扩张到电子竞技、美妆、生活、纪录片等多个领域。而b站的营收主要来自平台广告变现&#xff0c;内容付费…

python爬虫2:requests库-原理

python爬虫2&#xff1a;requests库-原理 前言 ​ python实现网络爬虫非常简单&#xff0c;只需要掌握一定的基础知识和一定的库使用技巧即可。本系列目标旨在梳理相关知识点&#xff0c;方便以后复习。 目录结构 文章目录 python爬虫2&#xff1a;requests库-原理1. 概述2. re…

JSP实训项目设计报告—MVC简易购物商城

JSP实训项目设计报告—MVC简易购物商城 文章目录 JSP实训项目设计报告—MVC简易购物商城设计目的设计要求设计思路系统要求单点登录模块商品展示模块购物车展示模块 概要设计Model层View层Controller层 详细设计Model层View层登录界面系统主界面 Controller层 系统运行效果项目…

基于Orangepi 3 lts 的云台相机

利用orangepi 3 lts 和arduino nano 制作了一个云台相机&#xff0c;可用于室内监控。 硬件&#xff1a; orangepi 3 ,arduino nano ,usb相机&#xff0c;180度舵机两个 WeChat_20230806213004 软件&#xff1a; 整体采用mqtt进行消息的中转。 相机采用python 利用opencv…

PAT(Advanced Level)刷题指南 —— 第四弹

一、1104 Sum of Number Segments 1. 问题描述 2. Sample Input 4 0.1 0.2 0.3 0.43. Sample Output 5.004. 题解 思路:打表,比如4个数,第一个数出现1*(4) = 4次,第二个数出现2*(4 - 1) 

以太网协议学习笔记

以太网接口电路主要由MAC&#xff08;Media Access Control&#xff09;控制器和物理层接口PHY两大部分构成。 PHY在发送数据时&#xff0c;接收MAC发过来的数据&#xff0c;把并行的数据转化为串行流数据&#xff0c;按照物理层的编码规则把数据编码转化为模拟信号发送出去&am…

【Opencv入门到项目实战】(一):Opencv安装及图像基本操作

文章目录 0.Opencv介绍及环境配置1.图像读取1.1 彩色图像读取1.2 灰色图像读取 2.视频读取3.ROI读取3.1 图形切片处理3.2 提取颜色通道 4.图像填充5.数值运算与图像融合5.1 加法运算5.2 图像融合 6. 总结 0.Opencv介绍及环境配置 OpenCV是一个强大的计算机视觉库&#xff0c;它…