ROS练习

ROS动作编程练习 参考链接:https://blog.youkuaiyun.com/qq_42451251/article/details/104664926。存放工程开发相关文件的文件夹,其中主要包括src,build,devel,install文件夹。2.向ROS Master注册节点信息,包括发布的话题名和话题中的消息类型。打开callBackYuan.cpp文件,输入如下代码。4.在回调函数中完成服务功能的处理,并反馈应答数据。1.设置需要编译的代码和生成的可执行文件。1.设置需要编译的代码和生成的可执行文件。 阅读详情

ROS练习

过了一遍ros wiki的教程,感觉写的不是很详细,随便记点东西~
http://wiki.ros.org/ROS/Tutorials

1)查看ROS环境

#因为使用了zsh,所以需要重新设置环境变量
printenv | grep ROS #无输出
#打开/home/.zshrc添加一行
source /opt/ros/noetic/setup.zsh
#添加工作空间的环境变量
source /data/helloB/ROSWork/catkin_work/devel/setup.zsh
#查看是否配置成功
echo $ROS_PACKAGE_PATH
#查看安装了那些ros包
apt-cache search ros-noetic

在ros工作空间下进行各种测试,不然文件到处都是;

2)linux

#查看当前版本shell
cat /etc/shells
echo $SHELL  #zsh
#在当前shell环境下读取并执行FileName中的命令
source filename # 该命令可用 . 代替: . filename
sh filename #创建一个子shell,并在子shell中执行脚本中的语句
./filename  #同sh filename (脚本本身具有可执行权限), . 表示当前目录

3)rospack,roscd,rosls

#使用rospack返回包路径
rospack find package_name #返回包节点名称
#使用roscd 进入包节点
roscd package_name/subdir
roscd roscpp/cmake
roscd log #进入ros存储日志的文件夹
#使用rosls列出包节点内容
rosls roscpp_turtorials
#ros指令支持tab键补全

4)catkin_create_pkg与rospack

# 将软件包构建在catkin工作空间下(src目录下)
cd src/
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp #构建的包名及相关依赖
#返回工作空间构建软件包
cd ..
catkin_make #构建软件包
#将构建后的工作空间添加到ros环境中
. ./devel/setup.zsh
#显示包节点的一阶依赖关系
rospack depends1 beginner_turtorials
#显示包节点的所有依赖关系
rospack depends beginner_turtorials
#package.xml的主要内容
<build_depend> : 编译时所需依赖
<buildtool_depend> : 用于构建工具包
<exec_depend> : 运行时所需软件包
<test_depend> : 测试软件包

5)catkin_make

#在catkin工作空间中构建ros节点
catkin_make #在catkin_ws目录下进行构建
catkin_make install
#在非catkin的工作空间中构建ros节点
catkin_make --source mysrc
catkin_make install --source mysrc

6)rosnode

ros节点是ros包中的可执行文件(ros包中有很多可执行文件)

#ros图的基本概念
Nodes;  Message;  Topics;  Master(ros的名称服务器);  rosout(ros的标准输入输出);  roscore(= Master + rosout + parameter server);
#使用ros第一步
roscore 

#rosnode 使用
rosnode list #查看ros节点
rosnode info /rosout #查看/rosout的详细信息

#rosrun使用
rosrun package_name node_name #运行包节点中的某一节点
rosrun turtlesim turtlesim_node 
#给启动的节点自定义名称
rosrun turtlesim turtlesim_node __name:=my_turtle

#rosnode ping测试节点是否启动
rosnode ping myturtle

7)rostopic

# 启动roscore
roscore
# 查看发布到主题上的数据信息
rostopic echo /turtle1/cmd_vel
# 列出所有的主题信息
rostopic list -v #列出详细信息
rostopic list -p #列出发布者
rostopic list -s #列出订阅者
# 列出rostopic主题的类型
rostopic type /turtle1/cmd_level
# 显示数据类型
rosmsg show geometry_msgs/Twist
# 发布特定消息到某一主题
rostopic pub -l /turtle1/cmd_level geometry_msgs/Twist -- '[2.0 ,2.0 2.0]' '[0.0, 0.0 , 1.8]' #-l表示只发布一次
rostopic pub /turtle1/cmd_level geometry_msgs/Twist  -r 1 -- '[2.0 ,2.0 2.0]' '[0.0, 0.0 , 1.8]' #-l表示只发布一次
# 报告数据发布到主题上的频率
rostopic hz [topic]
# 使用rqt_plot 进行绘图
rosrun rqt_plot rqt_plot #启动rqt_plot Node

8)rosservice 与rosparam

  1. 服务是节点相互通信的另一种方式,服务允许节点发送请求并接收响应;
# 列出节点支持的服务
rosservice list
# 查看某一服务需要的数据类型
rosservice type [service]
demo:
rosservice type /spawn | rossrv show
# 调用某一服务的方法
rosservice call [service] [args]
demo:
rosservice call /spawn 2 2 0.2 ""
  1. rosparam允许你在ros参数服务器上存储和处理数据,rosparam使用yaml标记语法;
# 列出参数服务器上的当前参数
rosparam list
# 设置ros参数
rosparam set [param_name]
# 获取ros参数
rosparam get [param_name]
# 从参数服务器上存储参数到本地文件
rosparam dump [file_name] [namespace]
# 从本地加载参数服务器
rosparam load [file_name] [namespace]

9)rqt_console与roslaunch

# 启动rqt_console与rqt_logger_level
rosrun rqt_console rqt_console
rosrun rqt_logger_level rqt_logger_level
  1. 日志记录级别:Fatal,Error,Warn,Info,Debug
# 使用roslaunch 启动launch文件中定义的节点
roslaunch [package] [filename.launch]

# 首先在包节点下创建launch文件夹
roscd beginner_tutorials
mkdir launch
cd launch
vim turtlemimic.launch # 创建并编辑launch文件
   1 <launch>   #启动标签
   2 
   3   <group ns="turtlesim1">  #命名空间标签
   4     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   5   </group>
   6 
   7   <group ns="turtlesim2">
   8     <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
   9   </group>
  10 
  11   <node pkg="turtlesim" name="mimic" type="mimic"> #以主题输入输出重命名为turtlesim1和turtlesim2来启动模拟节点
  12     <remap from="input" to="turtlesim1/turtle1"/>
  13     <remap from="output" to="turtlesim2/turtle1"/>
  14   </node>
  15 
  16 </launch>
rqt_graph : 图形化显示Node Graph

10) rosed

rosed 是rosbash的一部分,她允许直接使用包名称直接编辑包中的文件,而不必键入包的完整路径

use:
rosed [package_name] [filename]
demo:
rosed roscpp Logger.msg
# rosed 支持tab键补全

rosed默认的编辑器是vim

11)rossrv 与rosmsg

  1. msg : msg文件是用于描述ros消息字段的简单文本文件,用于为不同语言生成源代码;
  2. srv : srv文件用于描述服务,其由2部分组成:请求和响应;
  3. msg包含的字段:int8、int16、int32、int64、float32、float64、string、time、…;srv类似msg,但其包含request与response两部分;
demo :
roscd beginner_tutorials
#使用msg
mkdir msg #将msg文件放在msg文件夹下
echo "int64 num" > msg/Num.msg
#在package.xml中添加字段
...
#在CMakeLists.txt中添加字段
...
#使用rosmsg
rosmsg show beginner_tutorials/Num

#使用srv
roscd beginner_tutorials
mkdir srv
roscp rospy_tutorials AddTwoInts.srv srv/AddTwoInts.srv
#在package.xml与CMakeList.txt中添加字段
...
#roscp使用
roscp [package_name] [file_to_copy] [copy_path]
#使用rossrv
rossrv show beginner_tutorials/AddTwoInts

编写完srv与msg文件,配置好package.xml与CMakeList.txt文件后,重新进行catkin_make编译生成源代码

roscd beginner_tutorials
cd ../..
catkin_make
cd -

12)编写Publisher与Subscriber节点

…

13)编写Server与Client节点

14)rosbag

  1. 从运行的ros系统中记录主题数据,并将数据保存在bag file文件中
rosbag info <yourbagfile>
rosbag play <yourbagfile> #回放
练习ROS动作编程 控制小乌龟画圆圈(旋转),并且通过代码订阅小乌龟的实时位置,并在终端打印。找到VMware USB Arbitration S...在虚拟机中设置,USB控制器兼容性设置为USB3.1。快捷键Win+R,输入services.msc确定。由于我的ubuntu是20.04的版本,所以详见。 阅读详情

相关推荐

ROS -- 初级练习中遇到的问题记录

1. 执行rosrun turtlesim turtlesim_node,出现  “QXcbConnection: Could not connect to display” 解决:由于我是用docker安装的ubuntu容器,在容器中安装的ROS,执行会出现这个问题~~换成有桌面的Ubuntu,再次执行就正常了,可以出现图形~~~   2. 执行rosnode list,出现  ERR...

小小希 6737

【chatgpt代码系列】ros基础知识题库

在ROS中,发布者(publisher)和订阅者(subscriber)用来做什么?下面哪个命令可以查看ROS节点的详细信息(包括发布和订阅的话题、服务等)?好的,下面是ROS基础知识考核试题,共10道选择题。下面哪个命令可以查看当前ROS中所有可用的服务(service)?下面哪个命令可以查看当前ROS中所有可用的话题(topic)?下面哪个工具用于可视化ROS中的话题、服务和参数等信息?ROS中的“节点”(node)指的是什么?下面哪个工具用于记录、回放ROS消息?下面哪种消息格式用于传输图像数据?

少磊的博客 5564

了解ROS,进行ROS环境安装、配置及turtlesim练习验证

本文介绍了ROS的相关知识,并对ROS的安装,设置进行了详细的讲解。附带基础练习

qq_57160761的博客 1005

ROS机器人操作系统入门-中国大学mooc复习习题

ROS机器人操作系统入门-中国大学mooc复习习题

weixin_58709016的博客 6534

Pandas实战指南:从数据结构到清洗聚合的完整解析

在数据分析工作中,表格数据处理是最常见的需求,无论是电商运营还是量化交易,都离不开对结构化数据的清洗与转换。Python生态中,Pandas凭借Series与DataFrame两种核心数据结构,将数据标签与数值绑定,实现自动对齐,极大简化了数据操作流程。它不仅是数据清洗的利器,也是分组聚合、透视表分析和时间序列处理的基础工具。掌握Pandas,意味着能够高效完成从数据读取、缺失值处理、类型转换到分组统计的完整分析流水线,将重复性报表工作自动化。本文基于实际使用经验,系统梳理Pandas的核心概念、常用操作、

weixin_30768881的博客 257

JMeter压测Dubbo接口的完整落地方案(适配3.x)

Dubbo作为主流Java微服务RPC框架,其接口压测长期面临协议私有、注册发现复杂、序列化耦合度高等技术门槛。理解Dubbo基于TCP长连接、泛化调用与SPI扩展机制的核心原理,是实现稳定压测的前提;技术价值在于绕过HTTP网关直击服务核心链路,保障大促等关键场景的性能可信度;典型应用场景包括电商订单链路压测、风控/库存等内部Dubbo服务SLA验证,以及CI/CD中性能左移实践。本文聚焦Dubbo 3.x版本,提供零第三方插件、可复用、避坑的JMeter Java Sampler落地路径。

weixin_33700809的博客 549

ROS小练习(话题发布与订阅)

找到pub_sub1_ws文件下的src文件下的pub_sub1文件下的msg文件下的person.msg。修改pub_sub1目录下的CMakeLists.txt文件使之成为。然后修改pub_sub1目录下的CMakeLists.txt文件。Ctrl+Shift+B 运行catkin_make:build。Ctrl+Shift+B 运行catkin_make:build。找到pub_sub1目录下的package.xml文件。进入到~/pub_sub1_ws目录 输入。pub.py中复制以下内容。

m0_74921842的博客 331

激光条纹中心提取——Steger

激光条纹中心提取-Steger 好久没有记录了,记录一下今天学习的内容,据说Steger在激光条纹中心提取上神一般的存在。文章和代码都分享给大家了哈,其中有四个文件,3个C++,一个python,python一个抠图文件,3个c++包含背景图+原图, 单张图提取, 多张图提取。 分享代码 #include <opencv2\core.hpp> #include <opencv2\highgui.hpp> #include <opencv2\imgproc.hpp> #i

CharmsLUO的博客 5380

《ROS机器人程序设计》期末测评试卷 (ROS2)

期末参考样卷: 一、单选题(本大题共 10 小题, 每小题 2 分, 共 20 分。) 1、ROS2 中提供数据分发服务的是通过( )。 A、TCP B、MQTT C、LAN D、DDS 2、ROS2 环境中的顶层组件是( )。 A、rqt B、软件包 C、工作空间 D、源代码 3、下面哪一种任务适合用主题 topic 方式实现通信( ) A、天气查询 B、房屋清理 C、视频监控 D、导航规划 4、如下描述较为准确的是( )。 A、节点只能发布或者只能.

zhangrelay的专栏 8917

VS2022离线环境下的NuGet包管理:从本地源到依赖项全解析

本文详细解析了在VS2022离线环境下如何高效管理NuGet包,包括搭建本地NuGet源的两种方案(本地文件夹源和私有NuGet服务器)、获取离线包的三大渠道以及依赖项处理的实战技巧。通过自动化脚本和依赖树分析工具,帮助开发者解决离线环境中的依赖项黑洞问题,提升开发效率。

5f4d3s2a1q的博客 1060

大模型时代的具身智能系列专题(二)

自由形式语言指令 L 指定了一个操作问题,例如“打开最顶部的抽屉”。然而,根据 L 生成机器人轨迹是很困难的,因为 L 可能具有任意长度,或者是不明确的(例如,需要上下文语义)。相反,我们专注于问题的各个阶段(子任务)l_i,它们明确地指定了一个操作任务 (例如,“抓住抽屉把手”,“打开抽屉”),其中被分解的子阶段(子任务)L→l1l2lnL→l1​l2​...ln​由高级规划器(例如,一个LLM或一个基于搜索的规划器)给出。

achao的专栏 2171

ros 消息队列与缓冲区_ROS学习记录②:Topic通讯和代码练习

Topic通讯和代码练习四、Topic通讯4.1 Publisher创建4.2 Publisher调试4.2.1 rostopic工具(命令行)4.2.2 rqt_topic工具(可视化)4.3 Subscriber创建4.4 Subscriber调试4.4.1 publisher(程序)4.4.2 rostopic工具(命令行)4.4.3 rqt_topic工具(可视化)4.5 Topic命令行...

weixin_36389335的博客 814

NSIS教程(8): 基于第三方界面库的安装包界面

前面的几篇文章介绍了NSIS的传统界面的安装包和现代界面的安装包的制作方法,也提到了NSIS支持自定义页面(即使用page custom)的特性,自定义页面需要用户自己创建对话框、控件、添加控件响应等等,虽然NSIS提供了nsDialogs.nsh来支持这些功能,但使用起来还是不太方便(需要专门了解这个插件诸多用法),而且不够灵活,所以本文介绍一种终极的自定义界面的安装包解决方案,即完全使用第三方

while(1) { smile(); } 9万+

ros安装、重要概念、练习

ROS中的服务是一种同步、请求-响应式的通信机制,用于需要即时结果或确认的请求。其中,目标是客户端发送给服务端的动作指令,结果是服务端执行动作后的输出结果,而反馈则是服务端在执行动作过程中定期发送给客户端的状态信息。客户端发送动作的目标给服务端,服务端则执行该动作,控制机器人达到目标,并在执行过程中周期性地反馈状态。话题适用于需要持续、实时数据传输的场景,如传感器数据的发布和订阅。总的来说,ROS中的动作是一种应用层的通信机制,它基于话题和服务实现,特别适用于需要长时间响应和中途反馈的机器人行为管理。

xiaoli2327的博客 1964

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2367

在 SAP ECC 中定义 ledger 时遇到 “Define exactly one leading ledger“(消息号 FAGL_LEDGER_CUST012)的错误

摘要:SAP系统要求必须且只能定义一个主导分类账(Leading Ledger)。当出现错误消息FAGL_LEDGER_CUST012时,需通过事务码FINSC_LEDGER或SPRO路径检查分类账配置,确保仅有一个分类账被标记为"LeadingLedger",其余设为"Non-leadingLedger"。主导分类账是SAP默认用于标准报表的核心分类账,修改配置需谨慎以免影响已有数据。若问题未解决,建议检查未完成配置或查阅SAP Notes获取解决方案。

金牌架构师 802

ros2 action server示例、拓展、练习

方法中创建一个导航目标点的 Action 客户端并发布一个固定点,你需要确保在代码中添加相关的导航 Action 依赖。这种方式将发送目标的逻辑与配置的回调逻辑分离,使代码更清晰、可维护。如果你有其他问题或者需要进一步的解释,请随时告诉我!1.实现拓展中创建的navigation的导航action与自定义的action通信。好的,下面是更新后的代码示例,其中我们创建了一个新的成员函数来处理。的配置,替代了之前使用的 Lambda 函数。的值生成反馈,并发布反馈和结果。方法中,接收到的目标被存储到。

lucust的博客 1396

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

ROS通信机制练习

赵虚左ROS通信实战

Forwarding3的博客 339

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ROS机器人程序设计(原书第2版)2.4 ROS系统试用练习

2.4 ROS系统试用练习 现在是时候对之前学习的内容进行一些练习了。在下面的几小节中,你将看到练习包的创建,使用节点、参 数服务器以及通过Turtlesim移动仿真机器人。 ...

weixin_34162401的博客 130

ROS话题订阅实战练习

1.话题与消息获取 2.终端订阅节点,获取乌龟位置信息 3.C++编译订阅节点 4.运行

weixin_52493604的博客 1462

ROS2贪吃龟练习工程

本文是ROS2基础知识的综合小应用,练习如何创建工作包,创建Node,定义Topic和Service,以及通过LaunchFile启动多个节点。不要忘记更新my_robot_bringup工作包的package.xml添加依赖。

hbin5110209161的博客 821

ETH ROS练习1

参考内容 链接: ROS编程(ETH)2018更新版习题说明(一). ros-melodic版本与kinetic不一样,在/husky_gazebo/launch/spawn_husky.launch,无laser结构 办法:使用kinetic也可以在melodic使用。 git 代码: git clone https://github.com/husky/husky -b kinetic-devel 2. 对ros中 rosnode list 、rostopic list 、rostopic echo [

weixin_40570700的博客 406

ros练习:小车巡线【2】

2.小车制作 在完成地图的绘制之后我们来做小车,小车比较好做,基本上书里对于urdf,xacro,gazebo都会有详细的描述,源码里一般都有一个小车,我就照葫芦画瓢搞了个,并且加了一个摄像头。但是,我一开始把摄像头装在了车的尾部,这就给巡线带来了很大的困难,建议大家把摄像头还是装在车头为好。 在小车做好之后我就试验了一下,写了个简单的cmd_vel/发布器看看车能不能跑,用rqt_image_...

fkk_fkk的博客 2757

ROS小练习——话题订阅

【代码】ROS小练习——话题订阅。

weixin_63780683的博客 469
上一篇: Ubuntu20.04突然无法打开蓝牙
下一篇: 解决类似 /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.21‘ not found 的问题
hellohake
博客等级 码龄10年 4543粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值