Uncategorized

ROS2学习笔记:service服务、parameter参数、action动作

如果了解过车载总线的SOME/IP,那么再看ROS2的Service就好简单,原理基于一样,就说订阅和响应。 常用的ROS2 service命令: ros2 service list ros2 service type <service_name> ros2 service find <type_name> ros2 interface show <type_name> ros2 service call <service_name> <service_type> <arguments> 常用的ROS2 param 命令: ros2 param list ros2 param get <node_name> <parameter_name> ros2 param set <node_name> <parameter_name> <value> ros2 param dump <node_name> ros2 param load <node_name> <parameter_file> ros2 run <package_name> <executable_name> –ros-args […]

ROS2学习笔记:service服务、parameter参数、action动作 Read More »

ROS2学习笔记:topic话题、build包、workspace、package创建

学习topic话题感觉套用CAN总线的知识非常高效,Publisher就是在一条CAN总线写入一个信息,Subscriber就是在CAN总线监听一个信息。发送端(总线写入)可以有多个,接收端(总线监听)也可以有多个。 常用的topic命令: ros2 topic list ros2 topic echo <topic_name>: ros2 topic echo /turtle1/cmd_vel ros2 interface show <msg_type>: ros2 interface show geometry_msgs/msg/Twist ros2 topic pub <topic_name> <msg_type> ‘<args>’ : ros2 topic pub /turtle1/cmd_vel geometry_msgs/msg/Twist “{linear: {x: 2.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.8}}” ros2 topic hz: ros2 topic hz /turtle1/pose ros2

ROS2学习笔记:topic话题、build包、workspace、package创建 Read More »

ROS2学习笔记:节点node

经历了传统汽车ECU项目开发再来看ROS的节点就特别好的理解,Node和汽车电子分布式ECU特别的像,都是挂在到总线上,汽车是CAN、以太网,ROS是DDS,也有集中不同的信号形式做交互。根据功能定位的不同节点可大可小,可复杂可简单。通信方式也可以按照数据的特点有不同的区分。Topic特别像CAN总线以及车载以太网的PDU,而ROS的Service则很像汽车的SOME/IP。Parameter的概念也很像。 比较重要的命令: ros2 run <package_name> <executable_name> 其中Package和executable不需要一一对应,一个Package可以包含多个节点,每个节点就是独立可执行的文件。同时一个Package也可以没有可执行文件,通常用来定义消息、服务、动作等,甚至是纯库包,只提供功能库,供其他package调用。甚至还有配置/Launch的文件包,只包含启动文件、参数配置等,可以将Package理解成一个容器,可以装很多东西。 在命令启动时候,可以显式修改一些节点的默认参数,语法为: ros2 run turtlesim turtlesim_node –ros-args –remap __node:=my_turtle   其他还有个作用于node比较有用的命令,查看node详细信息:   ros2 node info <node_name>    

ROS2学习笔记:节点node Read More »

ROS2学习笔记:小乌龟、rqt

小乌龟几乎是所有学习ROS第一个例子,就像写代码的“Hello World”一样。通过这个小例子可以初步了解ROS2中几个核心的概念:node节点、topic话题、parameter参数等。 首先是小乌龟安装: sudo apt update sudo apt install ros-humble-turtlesim 然后重开两个窗口,一个是小乌龟节点,一个是控制节点: ros2 run turtlesim turtlesim_node ros2 run turtlesim turtle_teleop_key XXX 再开一个Terminal,通过下列命令可以看当前网络的node, topic, service, actin: ros2 node list ros2 topic list ros2 service list ros2 action list rqt 是 ROS 2 的图形用户界面(GUI)工具。在 rqt 中完成的所有操作也可以在命令行中完成,但 rqt 提供了一种更用户友好的方式来操作 ROS 2 元素,直观,新手友好。 XXX XXX 对于网络整体拓扑的查看,以及快速简单看一个数据或者触发一个命令,rqt真的挺简单实用的。

ROS2学习笔记:小乌龟、rqt Read More »

ROS2学习笔记:缘由、安装

这几年机器人行业爆火,而我在的智驾领域差开始稳定,一定程度到了淘汰赛阶段,我想横向看看机器人有没有更合适的机会。整理学习相关知识的过程中,ROS是避不开的一环。虽然之前做项目也用到过,但是几乎都忘光了完全达不到面试水平,趁着最近找工作回顾知识点,系统再看一遍记录一下。 关于ROS2安装这部分,官网教程非常非常细致有效了,没有遇到太多的坑。建议根据各自的系统版本以及所需ROS2版本,去到对应的官网教程来安装。比如说我是Ubuntu22.04对应的是humble版本的ROS2,地址在这里: https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html 需要注意的是安装完成后需要在每个Termianl 加载一下ROS2环境,比如在Ubuntu系统下: source /opt/ros/humble/setup.bash 这个步骤经常忘记,如果想一劳永逸的话,可以将该命令写在~/.bashrc 中,用不着每次手动加载。 echo “source /opt/ros/humble/setup.bash” >> ~/.bashrc 这样环境安装对绝大多数就差不多了。如果工程比较复杂可能还需要设置一些Domain ID以防止相同命令在不同节点串行,这个在需要的时候配置也OK,初期不太懂得到。

ROS2学习笔记:缘由、安装 Read More »

氢气球

记得小时候我妹妹出生不久大约也就半岁的时候,我和我爸从街上回家路上看到卖氢气球的,就买了一个黄色可以飘起来的气球,记得是那种稍微长条状的。回到家里边我妹妹可开心了,我一进卧室的门我妹妹就笑个不停,是那种真的一直笑一直笑,我们稍微拿气球逗一逗就一直笑。 再后来很多很多年,甚至最近几年前,我妈妈还提到过这件事,印象中是我妈妈坐在沙发上对我说的。可是现在我的娃到了玩气球的时候,我和我爸妈说起来了我妹妹小时候这件事,我爸妈竟然不记得了!虽然这件事情过去二十多年,可是前几年不超过5年我妈妈还主动和我说起过,而现在怎么就不记得了。我于是又问我爸,以及说了很多细节,但是我爸妈都是说这么多年过去了,怎么记得起来。不应该啊不应该啊,前几年还主动和我说呢。 后来我有又到过这件事,可是我妈妈只是说我妹妹小时候也玩过氢气球,但是对于我说的这个细节再也想不起来了。二十多年确实有点久了,我真担心很多记忆就像这件事情一样在不经意间就消失。我打算逐步开始我和爸爸妈妈还有我妹妹的日常,尤其是有过一段时间的事情,让这些温馨的回忆能够永久记录下来,而不至于随着时间而流逝。从这个氢气球开始,记录往日的点滴。

氢气球 Read More »

Jenkins设置系统语言

最近玩一玩Jenkins,在安装好默认的配置下,语言是中英文混杂,看着太别扭了,有些中文翻译也很别扭,我感觉还有可能有误导嫌疑,于是我想讲系统语言设置成英文,可是在配置页面找了好几遍竟然没找到,查了下原来是需要一个插件才能完成这个基本的功能: Locale: https://plugins.jenkins.io/locale/ 安装好后在系统设置页面找到Locale栏,Default Language输入en_US并且勾选“Ignore browser preference and force this language to all users” 即可将默认语言更改为英文。 这个locale用的是Linux格式,即xx_YY ,比如zh_CN。可以在Linux上运行locale -a查看所有可用的locale。   Reference: https://blog.csdn.net/nklinsirui/article/details/89576475

Jenkins设置系统语言 Read More »