
ROS
文章平均质量分 84
主要介绍与ROS密切相关的知识
鱼尾sama
脚踏实地,宁静致远。
展开
-
VS CODE调试ROS/C++程序
文章目录1. 程序编译2. 配置launch.json3. 运行调试该文档将会持续进行更新,涉及ROS调试中遇到的一些问题。C++程序的调试也相仿,只是去掉了启动roscore的部分1. 程序编译这部分并不打算采用vscode的tasks.json来配置编译命令,而是选择手动的运行:catkin_make --only_pkg-with-deps package_name该命令可以单独的编译某个特定的package及其依赖项。需要主要的是CMakeLists.txt应当修改成Debug模式:原创 2021-04-28 16:55:31 · 1080 阅读 · 0 评论 -
论ROS下IMU的串口通信节点
解决该问题主要有两种方法:1. 中断法在ARM中有IDLE中断这个概念,当串口发完消息,可以向主控芯片发送中断信号,进而进入中断处理程序,这样自然而然也就不会有丢帧问题发生。基于该思路,自然可以直接使用LINUX系统的接口来写程序,但我还是觉得能用库就用库吧。这里选择的是boost::asio::serial这个库,主要代码如下:#include "ros/ros.h"#include "sensor_msgs/Imu.h"#include "imu.hpp"#include <Eigen原创 2020-12-19 20:57:55 · 946 阅读 · 3 评论 -
Ubuntu18.04跑SLAM和navigation遇到的问题及解决方案
文章目录用rqt工具后,总是会报错用rqt工具后,总是会报错xyw@xyw-GL552JX:~$ rosrun rqt_tf_tree rqt_tf_tree[ERROR] [1597288744.882527704]: Skipped loading plugin with error: XML Document ‘/opt/ros/melodic/share/rqt_virtual_joy/plugin.xml’ has no Root Element. This likely means th原创 2020-08-13 11:25:54 · 986 阅读 · 0 评论 -
ros的时间系统
最近很忙,也没空花时间去整理博客,因此仅按着自己能理解的方式记录。ros的时间系统对于一个初学者来说其实很难处理,因为不去管好像也可以用,但会出一些报错,去学的话又觉得费工夫,不确定用不用的上。下面是一些概念的解释。关于ros::time::now()在use_sim_time参数影响下的值。No. The value of ros::time::now() depends on whether the parameter use_sim_time is set.If use_sim_time ==原创 2020-07-02 17:53:25 · 2191 阅读 · 0 评论 -
如何实现两台PC之间的远程控制?SSH和mstsc以及ROS主从机
文章目录使用ssh远程登录使用ssh登录ROS的主从机设置参考链接:使用ssh:https://www.cnblogs.com/ftl1012/p/ssh.html使用mstsc:https://blog.youkuaiyun.com/dzkdxyx/article/details/77414316这一篇博客主要是为了解决电脑之间的远程控制问题,也是为之后的工控机的通信方式做准备。一开始考虑的是Windows远程控Ubuntu,后来该方案由于Wifi带宽弃置了,但毕竟掌握了,还是想留个档。在SSH和mstsc方原创 2020-06-11 20:59:32 · 4274 阅读 · 0 评论 -
[转]ROS多线程订阅消息(ros::asyncspinner)
对于一些只订阅一个话题的简单节点来说,我们使用ros::spin()进入接收循环,每当有订阅的话题发布时,进入回调函数接收和处理消息数据。但是更多的时候,一个节点往往要接收和处理不同来源的数据,并且这些数据的产生频率也各不相同,当我们在一个回调函数里耗费太多时间时,会导致其他回调函数被阻塞,导致数据丢失。这种场合需要给一个节点开辟多个线程,保证数据流的畅通。为了观察不同话题的消息被阻塞的情况,可以参考以下实验代码https://github.com/wenglihong/wlh_ros_demo/blo转载 2020-06-03 10:06:09 · 3047 阅读 · 1 评论 -
ROS的使用介绍——moveit!库
moveit!库里包含了碰撞检测,轨迹规划等功能。本着能不造轮子就不造轮子的态度,开始了对这个库的学习,由于是一个庞大的库,因此会持续更新。为检索方便,暂时不考虑分篇。另外,moveit!是有官网的,直接百度即可,别在ros里找介绍。文章目录安装按照官网提示演示Panda尝试C++API安装推荐二进制安装,简单明了:sudo apt-get install ros-kinetic-moveit按照官网提示演示PandaPanda的样子如图所示。moveit!还有其他机器人,但我懒得找了,毕竟原创 2020-06-02 18:33:29 · 1680 阅读 · 0 评论 -
ROS使用介绍——URDF
URDF全称为Unified Robot Description Format,中文可以翻译为“统一机器人描述格式”。与计算机文件中的.txt文本格式、.jpg图像格式等类似,URDF是一种基于XML规范、用于描述机器人结构的格式。根据该格式的设计者所言,设计这一格式的目的在于提供一种尽可能通用(as general as possible)的机器人描述规范。其实最好的urdf入门教程是ROS Wiki里的教程。这里主要是按照自己实际接触的进行总结。URDF能设置的属性有很多,但在项目刚开始时并不需要那么原创 2020-06-02 15:20:25 · 1655 阅读 · 0 评论 -
松灵机器人SCOUT的ROS代码架构
松灵机器人感觉可能还是比较小众吧。明明官方的github,但是star之类的完全没有关注度,也没有issue。首先惯例是吐槽,github上的readme太简略,照着他那个做会感觉一堆问题,尤其是在你使用usb转can模块后。正确的做法是git下来,看代码里面的readme,那里面会有详细的介绍,包括如何运行webots机器人仿真。接下来是正文。...原创 2020-05-29 17:42:47 · 4702 阅读 · 1 评论 -
ROS使用介绍——rosbag
rosbag相当于是把一段实时数据打包成了一个bag文件,这个文件可以按照自己喜欢的方式去做处理,也可以发送给其他人。可以说,rosbag在学习ROS的过程中扮演了十分重要的角色。本文主要内容来自官网,但做了些概括和补充。官网文章目录录制包 rosbag record查看bag的信息录制包 rosbag record#录制所有的topicrosbag record -a 查看bag的信...原创 2020-04-29 10:45:07 · 8002 阅读 · 0 评论 -
ROS学习——Rviz(更新中)
固定架两个框架中最重要的是固定框架。固定框架是用于表示“世界”框架的参考框架。这通常是“地图”或“世界”或类似名称,但也可以是例如里程表框架。如果将固定框架错误地设置为例如机器人的底座,则机器人曾经见过的所有物体都将出现在机器人前面,相对于检测到它们的位置。为了获得正确的结果,固定框架不应相对于世界移动。如果更改固定帧,则将清除当前显示的所有数据,而不是重新转换它们。roscd之前,请构建...原创 2020-04-13 17:59:53 · 1964 阅读 · 0 评论 -
ROS使用nodelet还是node
知乎-为什么使用nodeletRegular nodes use TCP. This works fine for a lot of things. But if you have multiple processes that need to use messages that contain large amounts of data (like images or point clouds), packaging the message, sending it, then unpacking i原创 2020-05-26 21:28:15 · 1758 阅读 · 0 评论