ros 学习记录(二)URDF小车运动控制

2024-05-10 10:44

本文主要是介绍ros 学习记录(二)URDF小车运动控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

URDF小车运动控制

    • 准备工作
    • 创建 robot_xacro.launch

接上文,想用键盘控制小车在Gazebo中移动。

准备工作

名称版本
ROSNoetic
Gazebo11.11.0

创建 robot_xacro.launch

通过运行这个launch文件,可以启动Gazebo仿真环境,并在仿真环境中加载和控制机器人模型。

cd ~/roboT_four/src/robot_model_pkg_zoe/launch
touch robot_xacro.launch
<?xml version="1.0"?>
<!--##########################################-->
<!--Launch file for the Gazebo simulation of the 4-wheeled robot-->
<!--##########################################--><launch><include file="$(find gazebo_ros)/launch/empty_world.launch"><arg name="paused" value="false"/><arg name="use_sim_time" value="true"/><arg name="gui" value="true"/><arg name="headless" value="false"/><arg name="debug" value="false"/>
</include><!--Load the robot description-->
<param name="robot_description" command="$(find xacro)/xacro '$(find robot_model_pkg_zoe)/urdf/robot.xacro'"/><!--Robot state publisher node-->
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" /><!--Spawn the model-->
<node name="urdf_spawner" pkg="gazebo_ros" type="spawn_model"  output="screen" respawn="false" args="-urdf -model robot_model -param robot_description" /></launch>

在两个terminal中分别运行:

roslaunch robot_model_pkg_zoe robot_xacro.launch
rosrun teleop_twist_keyboard teleop_twist_keyboard.py #用键盘来控制小车运动

U: 逆时针转
I: 直线向前
O: 顺时针转
空格 : 停止

检查 topic得:

root@cf943b247720:~/robot_four# rostopic list
/clock
/cmd_vel
/gazebo/link_states
/gazebo/model_states
/gazebo/parameter_descriptions
/gazebo/parameter_updates
/gazebo/performance_metrics
/gazebo/set_link_state
/gazebo/set_model_state
/joint_states
/odom
/rosout
/rosout_agg
/tf
/tf_static

控制运动的topic/cmd_vel,检视该topic

root@cf943b247720:~/robot_four# rostopic info /cmd_vel
Type: geometry_msgs/TwistPublishers: * /teleop_twist_keyboard (http://cf943b247720:41719/)Subscribers: * /gazebo (http://cf943b247720:45045/)

当直线运动(按住I键)时,在x轴方向移动:

root@cf943b247720:~/robot_four# rostopic echo /cmd_vel
linear: x: 0.5y: 0.0z: 0.0
angular: x: 0.0y: 0.0z: 0.0

运行前:在这里插入图片描述
运行后:
在这里插入图片描述

这篇关于ros 学习记录(二)URDF小车运动控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/976219

相关文章

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Python异步编程中asyncio.gather的并发控制详解

《Python异步编程中asyncio.gather的并发控制详解》在Python异步编程生态中,asyncio.gather是并发任务调度的核心工具,本文将通过实际场景和代码示例,展示如何结合信号量... 目录一、asyncio.gather的原始行为解析二、信号量控制法:给并发装上"节流阀"三、进阶控制

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.