ROS学习笔记(3)——通过脚本控制rviz中创建的机器人运动

2023-05-16

写在前面

需求:rviz中创建的机器人模型,通过运行脚本方式控制其运动。

ros版本 kinetic 、noetic 两个版本亲测都可以。

整体效果

请添加图片描述

思路

机器人描述文件xacro,通过joint(关节)来控制机器人连杆与连杆之间的运动,所以可以通过控制关节,发布关节相关话题,即可以实现机器人在rviz中运动。

实现

上述整体效果中机器人模型文件可见:xacro文件

#include "ros/ros.h"
#include "sensor_msgs/JointState.h"
// #include "std_msgs/Header.h"
int main(int argc, char  *argv[])
{
    setlocale(LC_ALL,"");
    ros::init(argc,argv,"state_pub");
    ros::NodeHandle nh;
    ros::Publisher pub = nh.advertise<sensor_msgs::JointState>("joint_states",1000);
    sensor_msgs::JointState joint_state_pub;
    ros::Rate rate(100);
    while (ros::ok())
    {
        
        for (double i = -314; i <= 314 ; i++)
        {   
            joint_state_pub.header.stamp = ros::Time::now();
            joint_state_pub.header.frame_id = "robot01";

            joint_state_pub.name.resize(6);
            joint_state_pub.position.resize(6);
            //不知道为什么这种方式不可以
		    // jonit_state_pub.name = {    "left_trunk12left_joint1", 
		    //                             "left_trunk22left_joint2", 
		    //                             "left_joint32left_foot1", 
		    //                             "right_trunk12right_joint1",
		    //                             "right_trunk22right_joint2",
		    //                             "right_joint32right_foot1"      };
		 
            joint_state_pub.name[0] = "left_trunk12left_joint1";// name是xacro文件中定义的关节(joint)
            joint_state_pub.position[0] = ( i / 100 );	//控制运动
            joint_state_pub.name[1] = "left_trunk22left_joint2";
            joint_state_pub.position[1] = ( i /100 );
            joint_state_pub.name[2] = "left_joint32left_foot1";
            joint_state_pub.position[2] = 0;
            joint_state_pub.name[3] = "right_trunk12right_joint1";
            joint_state_pub.position[3] = 0;
            joint_state_pub.name[4] = "right_trunk22right_joint2";
            joint_state_pub.position[4] = 0;
            joint_state_pub.name[5] = "right_joint32right_foot1";
            joint_state_pub.position[5] = 0;

            pub.publish(joint_state_pub);
            ROS_INFO(" i = %.2f",i/100);
            rate.sleep(); 
        }
        ros::spinOnce();   
    }
    return 0;
}

注意

这里不能之修改某一个或某几个joint_state_pub.position[x],每次发布后需要重新填充msg文件中的每一个变量。

扩展

实物中,通过串口传输数据关节数据,ros截获串口数据进行打包,并发送关节数据,方针运动关节通过订阅串口发送的关节数据,可以实现实物与rviz同步运动。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS学习笔记(3)——通过脚本控制rviz中创建的机器人运动 的相关文章

  • 解决罗技GHUB 安装 一直初始化 下载不了问题

    罗技的GHUB在安装时一直处于初始化状态 xff0c 可以通过修改时间解决 原地址 罗技 GHub 解决初始化无法安装教程 侵删
  • 基于Cartographer的建图与导航

    一 RoboSense 16线雷达驱动安装 2 二 Cartographer的安装 2 三 配置文件结构说明 4 四 配置文件详解 4 2D lua文件的配置 5 2D launch文件的配置 6 2D pure location lua文
  • Ubuntu18.04安装autoware.ai

    前言 Autoware AI是世界上第一个用于自动驾驶技术的 All in One 开源软件 xff0c 关于它的介绍就不再赘述了 xff0c 感兴趣的可以去看一下知乎文章 xff0c 这里主要说明一下autoware ai的安装配置 之前
  • Baxter工作站建立及简单使用

    1 硬件 1个 Baxter Research Robot1台PC机或笔记本 xff0c 安装好Ubuntu系统 xff08 推荐Ubuntu16 04安装ROS kinetic xff09 1个无线路由器 xff08 千兆网口 xff09
  • selenium网页自动登录、打卡(二)

    文章目录 前言一 Python 43 Selenium二 通信环境 xff08 服务器 客户端 xff09 1 selenium借助cookie网页登录csdn2 私信发送消息流程3 将新增的逻辑融入原本的程序 前言 前面做了一个自动打卡的
  • 解决浏览器“由你的组织管理”或“由贵单位管理”

    寒假在家使用自己电脑时 xff0c 浏览器出现意外关闭 xff0c 一次以为没什么 xff0c 这两天出现好几次 xff0c 时不时地来一下 xff0c 太搞心态了 xff0c 必须给他解决了 一番检查后 xff0c 是浏览器自动安装了一款
  • Ubuntu18.04屏幕分辨率问题

    Ubuntu18 04屏幕分辨率问题 起因 本来昨天还好好的 xff0c 过了一夜 xff0c 就变了 xff0c 像极了咳咳 自行脑补 redwallbot 2小车上固定的屏幕 xff0c 屏幕分辨率本来应该是1920x1080的 xff
  • 使用frp实现内网穿透

    使用frp实现内网穿透 引言 一打五师兄走之前留了一块树莓派给我 xff0c 暑假闲来无事拿出来玩玩 如果每次都连接显示屏和键盘使用有点麻烦而且低级 正常笔记本和树莓派都连着实验室的WIFI xff0c 网段一样 xff0c 是可以ssh远
  • ffmpeg+nginx-rtmp转发视频流

    nginx与nginx rtmp module安装 画了好几天图 xff0c 实在有些乏力 xff0c 找点有意思的事情做做 觉得视频流传输挺有意思 xff0c B站找了些视频 xff0c 但感觉有些大同小异 xff0c 讲得不是很清楚 F
  • 2013 google校园招聘笔试题

    2013 google校园招聘笔试题 回忆版 xff0c 难免有错误 xff0c 欢迎指正 同时欢迎大家在评论中讨论答案 1 单项选择题 1 1如果把传输速率定义为单位时间内传送的信息量 xff08 以字节计算 xff09 多少 关于一下几
  • 调用微信公众号接口给女票每天打卡

    文章目录 前言一 微信公众号接口二 使用步骤 前言 最近网上很火的给女朋友做公众号推送 xff0c 作者 小红书 64 猪咪不是猪 且做作者 大方的共享成品 源码 43 教学 43 自动版本 起初 xff0c 人们认为这仅仅只是个简单且幼稚
  • js获取整个页面源码

    通过 outerHTML document documentElement outerHTML 通过异步请求 get window location href function res console log res 通过jQuery 34
  • 查看自己电脑被别人U盘拷贝文件

    windows 43 R reg query HKLM System currentcontrolset enum usbstor s gt c usb txt FriendlyName 第二种是使用USBViewer USBViewer
  • 普罗米修斯-docker安装

    1 只有一台服务器 xff0c 所以使用docker来进行试验 安装docker curl fsSL https get docker com bash s docker mirror Aliyun 查看安装版本 docker versio
  • netty参数设置

    1 通用参数 CONNECT TIMEOUT MILLIS Netty参数 xff0c 连接超时毫秒数 xff0c 默认值30000毫秒即30秒 MAX MESSAGES PER READ Netty参数 xff0c 一次Loop读取的最大
  • git 删除远程文件目录

    git rm r cached 文件夹名称 git add git commit m 34 aa 34 git push origin master
  • git删除远程分支

    branch 1 列出分支 xff0c a参数是列出所有分支 xff0c 包括远程分支 git branch a 2 创建一个本地分支 git branch branchname 3 创建一个分支 xff0c 并切换到该分支 git che
  • maven命令上传第三方包

    mvn deploy deploy file Dmaven test skip 61 true DgroupId 61 sdk的groupId DartifactId 61 包的名称 Dversion 61 版本号 如 xff1a 0 0
  • 解决图片上传权限问题

    linux默认umask为022 xff0c 对应权限为755 xff0c 其它用户可读可执行 可以vim etc profile xff0c 搜索umusk关键字查看 if UID gt 199 amp amp 34 96 usr bin
  • 微信小程序 解决 wx.request同步问题 方便开发 Promise方式

随机推荐

  • Python经典书籍有哪些?这份书单送给你_黑马程序员

    文章目录 一 Python 基础 01 Python编程 xff1a 从入门到实践 xff08 第2版 xff09 02 Python编程快速上手 xff08 第2版 xff09 03 Python编程初学者指南 04 笨方法 学Pytho
  • 记忆的方法

    1 第一招 xff0c 在背书的时候 xff0c 用双手捂住你的耳朵 xff0c 并且大声的朗读 研究表明 xff0c 用手捂着耳朵来朗读的话 xff0c 声音是直接通过骨骼来传输到内耳 xff0c 对大脑刺激会更加强烈 xff0c 记忆也
  • ssh登录服务器缓慢问题

    问题描述 问题刚开始是由pod启动失败 xff0c 报错unable to ensure pod container exists failed to create container for kubepods burstable pod8
  • UCOSIII学习-任务管理

    UCOSIII学习 任务管理 1 UCOSIII 任务组成2 UCOSIII 默认系统任务3 UCOSIII 任务状态4 任务堆栈1 任务堆栈的创建2 任务堆栈初始化 5 任务控制块1 任务控制块创建2 任务控制块初始化 6 任务就绪表1
  • ubuntu(Linux)配置允许远程登陆

    安装ubuntu后默认不可以以root方式登录系统 xff0c 需要做以下配置 1 使用sudo i 命令可以让用户切换到root用户 xff0c guo用户是安装ubuntu时配置的用户 xff0c 因人而异 xff1b 2 配置root
  • python带下划线的变量和函数

    参考文献 xff1a https blog csdn net AI S YE article details 44685139
  • ADD,COPY,ENTRYPOINT和cmd

    Dockerfile中有关信息 xff1a ADD与COPY区别 add 1 对压缩包进行解压2 可以在后面直接跟文件地址 copy xff1a 把本地的文件copy到容器里面 ENTRYPOINT与CMD区别 1 第一种解释 xff08
  • docker实例操作

    很多东西都是借鉴各位大神的 xff0c 也不知道具体是谁或是哪个链接 xff0c 很抱歉 两者同为目前版本中个人和小团队常用的服务级操作系统 xff0c 在线提供的软件库中可以很方便的安装到很多开源的软件及库 两者都使用bash作为基础sh
  • 三、FreeRTOS任务管理--常用函数

    任务的基本概念 FreeRTOS 的任务可认为是一系列独立任务的集合 每个任务在自己的环境中运行 在任何时刻 xff0c 只有一个任务得到运行 xff0c FreeRTOS 调度器决定运行哪个任务 调度器会不断的启动 停止每一个任务 xff
  • 七、FreeRTOS事件和常用函数接口

    基本概念 事件是一种实现任务间通信的机制 xff0c 主要用于实现多任务间的同步 xff0c 但事件通信只能是事件类型的通信 xff0c 无数据传输 与信号量不同的是 xff0c 它可以实现一对多 xff0c 多对多的同步 即一个任务可以等
  • PX4姿态估计源码分析

    写在前面 今天入坑PX4开始学习PX4代码 xff0c pixhawk硬件是可以支持PX4 ardupilot两套固件 我用的是1 6 0rc1版本代码 代码位置 xff1a Firmware1 6 0rc1 src modules att
  • PX4位置估计源码分析

    写在前面 源码版本 xff1a 1 6 0rc1 源码位置 xff1a Firmware 1 6 0rc1 src modules position estimator inav position estimator inav main c
  • ROS入门笔记(二):ROS安装与环境配置及卸载(重点)

    ROS入门笔记 xff08 二 xff09 xff1a ROS安装与环境配置及卸载 xff08 重点 xff09 文章目录 1 ROS安装步骤1 1 ROS版本1 2 确定Ubuntu版本号1 3 安装ROS1 3 1 Ubuntu初始环境
  • windows安装Java环境及Flightplot分析PX4飞行日志

    写在前面 用Flightplot分析PX4飞行日志 xff0c 不管是windows还是Ubuntu都需要安装对应的Java环境 xff08 我用的是win10家庭版 xff09 1 下载安装java环境 xff1a a 下载 点击地址进行
  • PX4_ECL_EKF代码分析1

    写在前面 源码版本 xff1a 1 6 0rc1 源码位置1 xff1a Firmware 1 6 0rc1 src modules ekf2 main cpp 源码位置2 xff1a Firmware 1 6 0rc1 src lib e
  • PX4_ECL_EKF代码分析2

    写在前面 源码版本 xff1a 1 6 0rc1 源码位置1 xff1a Firmware 1 6 0rc1 src modules ekf2 main cpp 源码位置2 xff1a Firmware 1 6 0rc1 src lib e
  • 基于RflySim平台的mahony(含磁罗盘)互补滤波在pixhawk仿真及实物实验(带实验数据)

    写在前面 本案例实验采用RflySim平台 xff0c 该平台可以高效快速编写代码 xff0c 使用simulink模型搭建 xff0c 可以见代码直接生成对应的C代码 xff0c 并一键将代码烧录Pixhawk中 xff0c 是一种快速开
  • ROS学习笔记(1)——创作工作空间/安装usb_cam来调用摄像头

    写在前面 ubuntu版本 xff1a 20 04 ros版本 xff1a noetic 工作空间 工作空间 workspace 是一个存放工程开发相关的文件夹 xff0c 一般包含 xff1a src xff1a 代码空间 xff0c 存
  • ROS学习笔记(2)——roslaunch turtle_tf turtle_tf_demo.launch报错问题(Ubuntu20.04python2与python3版本切换)

    写在前面 Ubuntu版本 xff1a 20 04 ROS版本 xff1a noetic 解决运行roslaunch turtle tf turtle tf demo launch文件后报错问题 问题说明 xff1a 此问题最终是由于pyt
  • ROS学习笔记(3)——通过脚本控制rviz中创建的机器人运动

    写在前面 需求 xff1a rviz中创建的机器人模型 xff0c 通过运行脚本方式控制其运动 ros版本 kinetic noetic 两个版本亲测都可以 整体效果 思路 机器人描述文件xacro xff0c 通过joint 关节 来控制