![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS
文章平均质量分 67
彐雨
这个作者很懒,什么都没留下…
展开
-
ROS-UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 7654-7656: ordinal not in
在根目录下:/opt/ros/melodic/lib/python2.7/dist-packages。新建一个sitecustomize.py文件。原创 2024-01-08 16:51:44 · 544 阅读 · 0 评论 -
ROS-Error [Converter.cc:151] Unable to convert from SDF version 1.7 to 1.6
这个错误好像不影响正常显示,但看着怪扎眼的。原创 2024-01-08 16:13:31 · 614 阅读 · 0 评论 -
ROS-urdf集成gazebo
文章目录一、URDF与Gazebo基本集成流程二、URDF集成Gazebo相关设置三、URDF集成Gazebo实操四、Gazebo仿真环境搭建一、URDF与Gazebo基本集成流程1.创建功能包创建新功能包,导入依赖包: urdf、xacro、gazebo_ros、gazebo_ros_control、gazebo_plugins2.编写URDF文件<!-- 创建一个机器人模型(盒状即可),显示在 Gazebo 中 --><robot name="mycar"&g原创 2024-01-08 11:05:24 · 890 阅读 · 0 评论 -
ROS-Gazebo颜色列表
中有Gazebo颜色列表。原创 2024-01-08 10:11:01 · 518 阅读 · 0 评论 -
ROS-arbotix安装
先从 github 下载源码,然后调用 catkin_make 编译。如果ROS为其他版本,可将melodic替换为对应版本。原创 2024-01-06 21:05:23 · 682 阅读 · 0 评论 -
ROS-机器人仿真urdf-rviz、xacro
文章目录一、urdf集成rviz1.1 基本流程1.2 优化 rviz 启动二、urdf语法详解2.1 robot2.2 link2.3 joint2.4 urdf练习2.5 urdf工具三、URDF优化_xacro3-1 Xacro_语法详解3-2 Xacro_完整使用流程示例3- Xacro_实操一、urdf集成rviz1.1 基本流程需求描述:在 Rviz 中显示一个盒状机器人实现流程:1.创建功能包,导入依赖创建一个新的功能包,名称自定义,导入依赖包:urdf与xacro在当前功能包原创 2024-01-06 20:26:43 · 840 阅读 · 0 评论 -
ROS-[ERROR] [1704543158.960463911]: length [stent_height] is not a valid float
原因:未能正确调用,忘记加。原创 2024-01-06 20:23:12 · 333 阅读 · 0 评论 -
ROS-[ERROR] [1704365215.958623480]: Error reading end tag.
原因:launch或urdf文件有问题。尤其是子标签,需注意!原创 2024-01-04 18:58:00 · 493 阅读 · 0 评论 -
ROS-ERROR: cannot launch node of type [joint_state_publisher/joint_state_publisher]: joint_state_pub
如为其他版本可将melodic替换为相应版本。出现上述报错,原因为缺少依赖包。原创 2024-01-04 18:50:32 · 947 阅读 · 2 评论 -
ROS-安装xacro
如果没有报错,并且进入了xacro软件包的目录,则表示安装成功。运行下列命令进行安装,xxxxxx处更改为自己的版本。原创 2024-01-03 19:27:39 · 700 阅读 · 0 评论 -
ROS-rqt工具箱
可以方便的实现 ROS 可视化调试,并且在同一窗口中打开多个部件,提高开发效率,优化用户体验。ROS基于 QT 框架,针对机器人开发提供了一系列可视化的工具,这些工具的集合就是rqt。rqt_robot_plugins——运行中和机器人交互的插件(比如: rviz)启动:可以在 rqt 的 plugins 中添加,或者使用rqt_bag启动。简介:rqt_console 是 ROS 中用于显示和过滤日志的图形化插件。rqt_common_plugins——rqt 中常用的工具套件。简介:可视化显示计算图。原创 2023-12-28 15:07:00 · 565 阅读 · 0 评论 -
ROS-rosbag
机器人导航实现中,可能需要绘制导航所需的全局地图,地图绘制实现,有两种方式,方式1:可以控制机器人运动,将机器人传感器感知到的数据时时处理,生成地图信息。方式2:同样是控制机器人运动,将机器人传感器感知到的数据留存,事后,再重新读取数据,生成地图信息。rosbag本质也是ros的节点,当录制时,rosbag是一个订阅节点,可以订阅话题消息并将订阅到的数据写入磁盘文件;当重放时,rosbag是一个发布节点,可以读取磁盘文件,发布文件中的话题消息。重启乌龟节点,会发现,乌龟按照录制时的轨迹运动。原创 2023-12-27 21:13:58 · 904 阅读 · 0 评论 -
ROS-TF坐标变换
机器人系统上,有多个传感器,如激光雷达、摄像头等,有的传感器是可以感知机器人周边的物体方位(或者称之为:坐标,横向、纵向、高度的距离信息)的,以协助机器人定位障碍物,可以直接将物体相对该传感器的方位信息,等价于物体相对于机器人系统或机器人其它组件的方位信息吗?显示是不行的,这中间需要一个转换过程。更具体描述如下:场景1:雷达与小车。原创 2023-12-24 15:05:34 · 959 阅读 · 0 评论 -
ROS-安装Rviz
运行下列命令进行安装,xxxxxx处更改为自己的版本。先打开roscore。原创 2023-12-19 17:25:59 · 834 阅读 · 0 评论 -
ROS-tf2功能包安装
注:_cpp表示为文件是C++编写的,若运行下面命令,则为Python编写的。查看是否安装了 tf2_tools,如果没有则安装。是无法安装成功的,会显示。原创 2023-12-18 15:05:46 · 995 阅读 · 0 评论 -
ROS-分布式通信
=一个运行中的ROS系统可以包含分布在多台计算机上多个节点。==根据系统的配置方式,任何节点可能随时需要与任何其他节点进行通信。先要保证不同计算机处于同一网络中,最好分别设置固定IP,如果为虚拟机,需要将网络适配器改为桥接模式;[3]胡春旭.ROS机器人开发实践[M].机械工业出版社,2018.3.反向测试,主机启动发布节点,从机启动订阅节点,测试通信是否正常。设置完毕,可以通过 ping 命令测试网络通信是否正常。2.主机启动订阅节点,从机启动发布节点,测试通信是否正常。安装一下net-tools。原创 2023-12-18 14:22:43 · 1184 阅读 · 0 评论 -
ROS-ROS运行管理-工作空间覆盖;节点、话题、参数名称重名
在ROS的网络拓扑中,是不可以出现重名的节点的,因为假设可以重名存在,那么调用时会产生混淆,这也就意味着,不可以启动重名节点或者同一个节点启动多次,的确,在ROS中如果启动重名节点的话,之前已经存在的节点会被直接关闭,但是如果有这种需求的话,怎么优化呢?设置参数调用API是ros::param::set,该函数中,参数1传入参数名称,参数2是传入参数值,参数1中参数名称设置时,如果以 / 开头,那么就是全局参数,如果以 ~ 开头,那么就是私有参数,既不以 / 也不以 ~ 开头,那么就是相对参数。原创 2023-12-16 20:08:59 · 355 阅读 · 0 评论 -
ROS-ROS运行管理-launch文件
概念launch 文件是一个 XML 格式的文件,可以启动本地和远程的多个节点,还可以在参数服务器中设置参数。作用简化节点的配置与启动,提高ROS程序的启动效率。使用以 turtlesim 为例演示1.新建launch文件在功能包下添加 launch目录, 目录下新建 xxxx.launch 文件,编辑 launch 文件</2.调用 launch 文件roslaunch 包名 xxx.launch。原创 2023-12-14 10:36:40 · 198 阅读 · 0 评论 -
ROS-melodic版本键盘控制安装
【代码】ROS-melodic版本键盘控制安装。原创 2023-12-14 09:15:52 · 420 阅读 · 0 评论 -
ROS-ROS运行管理-ROS元功能包
是ROS中的一个虚包,里面没有实质性的内容,但是它依赖了其他的软件包,通过这种方法可以把其他包组合起来,我们可以认为它是一本书的目录索引,告诉我们这个包集合中有哪些子包,并且该去哪里下载。显而易见的,逐一安装功能包的效率低下,在ROS中,提供了一种方式可以将不同的功能包打包成一个功能包,当安装某个功能模块时,直接调用打包后的功能包即可,该包又称之为元功能包(metapackage)。场景:完成ROS中一个系统性的功能,可能涉及到多个功能包,比如实现了机器人导航模块,该模块下有地图、定位、路径规划…原创 2023-12-13 20:19:12 · 54 阅读 · 0 评论 -
ROS-C++头文件源文件、Python模块导入
设计头文件,可执行文件本身作为源文件。编写头文件;编写可执行文件(同时也是源文件);编辑配置文件并执行。1.头文件public:void run();#endif在 VScode 中,为了后续包含头文件时不抛出异常,请配置 .vscode 下 c_cpp_properties.json 的 includepath属性"/home/用户/工作空间/src/功能包/include/**"2.可执行文件ROS_INFO("自定义头文件的使用....");return 0;原创 2023-12-13 18:20:09 · 183 阅读 · 0 评论 -
ROS-ROS通信机制-常用API
在ROS程序中,频繁的使用了 ros::spin() 和 ros::spinOnce() 两个回旋函数,可以用于处理回调函数。ROS中时间相关的API是极其常用,比如:获取当前时刻、持续时间的设置、执行频率、休眠、定时器…NodeHandle有一个重要作用是可以用于设置命名空间,这是后期的重点,但是本章暂不介绍。在 roscpp 中,话题和服务的相关对象一般由 NodeHandle 创建。[3]胡春旭.ROS机器人开发实践[M].机械工业出版社,2018.3.持续时间与时刻运算。3.持续时间与时刻运算。原创 2023-12-12 20:21:24 · 72 阅读 · 0 评论 -
ROS-ROS通信机制-小乌龟
尝试了好几次,也没有发现哪里错了,最后新建了功能包,重新写,并且把原来的功能包删除才能编译通过。三种通信机制中,参数服务器是一种数据共享机制,可以在不同的节点之间共享数据,话题通信与服务通信是在不同的节点之间传递数据的,三者是ROS中最基础也是应用最为广泛的通信机制。已知turtlesim中的乌龟显示节点,会发布当前乌龟的位姿(窗体中乌龟的坐标以及朝向),要求控制乌龟运动,并时时打印当前乌龟的位姿。尤其是话题与服务通信,需要结合具体的应用场景与二者的差异,选择合适的通信机制。而不是选中小乌龟窗口。原创 2023-12-12 15:37:28 · 319 阅读 · 0 评论 -
ROS-log功能区别
ROS使用rosout包来记录各个节点的log信息,通常这些log信息是一些可以读懂的字符串信息,这些信息一般用来记录节点的运行状态。ROS有五种不同类型的log信息,分别为:logdebug、loginfo、logwarn、logerr、logfatal。原创 2023-12-09 15:26:26 · 107 阅读 · 0 评论 -
ROS-ROS通信机制-常用命令
机器人系统中启动的节点少则几个,多则十几个、几十个,不同的节点名称各异,通信时使用话题、服务、消息、参数等等都各不相同,一个显而易见的问题是: 当需要自定义节点和其他某个已经存在的节点通信时,如何获取对方的话题、以及消息载体的格式呢?和文件系统操作命令比较,文件操作命令是静态的,操作的是磁盘上的文件,而上述命令是动态的,在ROS程序启动后,可以动态的获取运行中的节点或参数的相关信息。原创 2023-12-07 09:16:17 · 65 阅读 · 0 评论 -
ROS-ROS通信机制-参数服务器
路径规划时,需要参考小车的尺寸,我们可以将这些尺寸信息存储到参数服务器,全局路径规划节点与局部路径规划节点都可以从参数服务器中调用这些参数。Talker 通过 RPC 向参数服务器发送参数(包括参数名与参数值),ROS Master 将参数保存到参数列表中。ROS Master 作为一个公共容器保存参数,Talker 可以向容器中设置参数,Listener 可以获取参数。注意:参数服务器不是为高性能而设计的(RPC通信协议的局限性),因此最好用于存储静态的非二进制的简单数据。实现参数增删改查操作。原创 2023-12-06 20:50:42 · 365 阅读 · 0 评论 -
ROS-ROS通信机制-服务通信
服务通信中,客户端提交两个整数至服务端,服务端求和并响应结果到客户端,请创建服务器与客户端通信的数据载体。按照固定格式创建srv文件编辑配置文件编译生成中间文件1.定义srv文件服务通信中,数据分成两部分,请求与响应,在 srv 文件中请求和响应使用—分割,具体实现如下:# 客户端请求时发送的两个数字 int32 num1int32 num2--- # 服务器响应发送的数据 int32 sum2.编辑配置文件package.xml中添加编译依赖与执行依赖--原创 2023-12-05 20:41:41 · 273 阅读 · 0 评论 -
ROS-ROS通信机制-话题通信
在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty… 但是,这些数据一般只包含一个 data 字段,结构的单一意味着功能上的局限性,当传输一些复杂的数据,比如: 激光雷达的信息… std_msgs 由于描述性较差而显得力不从心,这种场景下可以使用自定义的消息类型。int8, int16, int32, int64 (或者无符号类型: uint*)string。原创 2023-12-04 11:06:50 · 143 阅读 · 0 评论