![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ROS学习
文章平均质量分 55
白色小靴
学生
展开
-
pcl安装报错undefined reference to `LZ4_compress_HC_continue‘
报错内容:kdtree.so.1.8.1:undefined reference to `LZ4_decompress_safe_continue’解决办法:/pcl/build/kdtree/CMakeFiles/pcl_kdtree.dir/下的link.txt里在末尾写上:-llz4即:/usr/bin/c++ -fPIC -std=c++11 -pthread -fopenmp -O3 -DNDEBUG -Wl,–as-needed -shared -Wl,-soname,原创 2021-01-12 12:13:12 · 3427 阅读 · 3 评论 -
基于aloam研究ceres的构建方式
aloam相比于loam增加了ceres库自动微分,而不需要手推高斯牛顿,这是非常方便的。对于aloam源码,在laserOdometry中,有关ceres的部分: ceres::LossFunction *loss_function = new ceres::HuberLoss(0.1); // 鲁棒核 ceres::LocalParameterization *q_parameterization = new ceres::EigenQuaternionParamete原创 2020-11-26 13:33:27 · 971 阅读 · 1 评论 -
ROS多机时间同步
参考:https://blog.csdn.net/hnlyzxy123/article/details/89528511设备:一台搭载ubuntu18.04的笔记本、一台搭载ubuntu20.04的笔记本(1) 服务器端配置(18.04)sudo apt install ntpsudo gedit /etc/ntp.conf在打开的文件中加入:restrict 192.168.43.0 mask 255.255.255.0 nomodify notrapserver 127.127.1.0原创 2020-11-20 12:02:24 · 1723 阅读 · 2 评论 -
cv::Mat和ROS图像互相转换
cv::Mat转sensor_msgs::Image将cv::Mat image 转为 sensor_msgs::ImagePtr msg#include "ros/ros.h"#include <sensor_msgs/Image.h>#include <cv_bridge/cv_bridge.h>#include <opencv2/imgproc.hpp>#include <opencv2/highgui.hpp>#include "open原创 2020-09-23 19:45:27 · 4818 阅读 · 0 评论 -
qt导入opencv依赖
qt这个东西上手快,但是依赖库的设置挺费劲。这里以opencv为例,介绍qt的依赖设置。opencv主要更改的是.pro文件:1. PATH部分PATH部分包含INCLUDEPATH和DEPENDPATH,比如:DEPENDPATH +=/usr/local/opencv3/libINCLUDEPATH设定路径后,在工程中include进来的.h文件就可以在指定路径下被找到。DEPENDPATH设定路径后,共享库即可被寻找到。2. 共享库部分共享库部分使用LIBS+=LIBS +=原创 2020-09-23 17:33:45 · 1001 阅读 · 0 评论 -
ros发布和订阅图像的压缩——高效图传(适用带宽不足问题)
https://answers.ros.org/question/314979/decompress-jpeg-depth-data/原创 2020-09-23 15:12:23 · 10727 阅读 · 2 评论 -
对‘pthread_create’未定义的引用
由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数: gcc -o pthread -lpthread XXX.cpp如果在VScode中,可以直接设置tasks.json中的args参数: "args": ["-g", "${file}", "-std=c++11", "-lpthread", "-o", "${fileBasenameNoExtension}.out"]原创 2020-09-21 22:26:56 · 1159 阅读 · 2 评论 -
QT界面实现选值框和滑动条的同步改变
UI界面中托入QDoubleSpinBox,即我们所需要的选值框,右键转到槽函数,在代码中生成他。UI界面中托入QwtSlider,即我们所需要的进度条。注意这里要加入引用库:INCLUDEPATH += /usr/include/qwtDEPENDPATH += /usr/libLIBS +=/usr/lib/libqwt-qt5.so.6LIBS +=/usr/lib/libqwt-qt5.so.6.1LIBS +=/usr/lib/libqwt-qt5.so.6.1.3然原创 2020-09-17 00:37:43 · 1022 阅读 · 1 评论 -
【ROS】打开QT出现Couldn‘t find an AF_INET address for
问题及原因描述今天实现ros小车的wifi控制。使用QT的交互界面进行控制。但是一开QT,从机就会报错:Couldn't find an AF_INET address for 。。。主机和从机的连接就断掉了。原因是之前设置过启动QT快捷方式,自动加载ros环境变量.即,在usr/share/applications中,使用gedit打开qt的桌面配置文件,会看到:其中,Exec=bash -i -c 决定了用图标启动ros时刷新一遍bash,从而导入ros环境变量。这个操作会使得qt原创 2020-09-16 23:57:26 · 1699 阅读 · 0 评论 -
实现launch中的find位置
很多launch文件中,都会去调用某个文件作为package的参数。比如rviz: <node launch-prefix="nice" pkg="rviz" type="rviz" name="rviz" args="-d $(find covgrid_slam_ros)/rviz_cfg/covgrid_mapping.rviz" />其中,$(find covgrid_slam_ros) 用来定位到一个package,增强了项目的可移植性。那么如何在自己的项目中实现find原创 2020-09-12 22:55:46 · 2555 阅读 · 0 评论 -
.sh脚本如何新开终端执行
在研究ROS的时候,经常为启动多个节点或者多个launch文件而发愁。因此写.sh脚本是一个很好的选择。而最近在写.sh脚本的时候,为了满足其中一个终端在执行,新开另一个终端并行执行的情况,涉及“.sh脚本如何新开终端执行”方式:gnome-terminal -t "title-name" -x bash -c "./gmappingSTEP2.sh;exec bash;"其中,title-name为新开终端的名字,./gmappingSTEP2.sh是新开的终端中要执行的命令。这里我为了需要原创 2020-09-09 09:59:24 · 4322 阅读 · 0 评论 -
ROS_MASTER_URI和ROS_IP的设置
主机ip:192.168.1.9从机ip:192.168.1.7主机的~/.bashrc文件加入:export ROS_MASTER_URI=http://192.168.1.9:11311export ROS_IP=192.168.1.9二者均为主机的ip从机的~/.bashrc文件加入:export ROS_MASTER_URI=http://192.168.1.9:11311export ROS_IP=192.168.1.7后者为从机的ip参考:https://blog.csd原创 2020-08-09 09:36:29 · 8460 阅读 · 0 评论 -
rosdep update 最奇怪的错误
rosdep update 报错情况比较多,一般情况是由于被墙了链接不上。一般可以通过修改etc/hosts以及修改延迟时间来解决。普通报错的解决办法见https://blog.csdn.net/weixin_44684139/article/details/104708387但有一些奇奇怪怪的报错,在今天遇到了。解决了一下午,终于搞定。奇怪的报错内容报错内容可能有以下几种,均是因为一个原因:(1)expected ',' or ']', but got '<stream end>原创 2020-08-06 18:57:36 · 1892 阅读 · 3 评论 -
安装 ros sensors driver
转载下载后登陆,出现:与谷歌服务器通信时出现问题则需要把google player store的“位置信息”定位权限打开。解决问题。在store中免费下载 ros sensors driver原创 2020-08-06 11:21:04 · 241 阅读 · 1 评论 -
ROS仿真实现move_base注意事项
move_base导航是基于gmapping所建的图。(一)安装move_base一行代码的事:sudo apt-get install ros-melodic-navigation因为需要事先保存gmapping建的图,因此需要安装map_server:sudo aptitude install ros-melodic-map-server保存地图运行的是rosrun map_server map_saver终端所在路径会得到两个文件:map.pgmmap.yaml(二)踩坑总结原创 2020-08-03 18:23:06 · 4236 阅读 · 1 评论 -
ROS仿真实现gmapping注意事项
最近在搞p3at,因此下载了p3at的urdf模型,并在其中加入了激光雷达插件、imu插件等等。然后想用现成的gmapping跑跑建图。期间遇到了无数个坑,特此记录。(一)gmapping的下载直接使用sudo install ros-melodic-.......是一定会报错的。。。很奇怪。报错内容大致为[slam_gmapping-2] process has died可能是因为ubuntu自带的gmapping版本很旧。解决办法:在工作空间的src下:git clone https:原创 2020-08-02 00:56:58 · 2057 阅读 · 2 评论 -
Ubuntu18.04安装ros-melodic
0. 背景注意,ubuntu18的版本安装ros-melodic版本更加合适,可以避免一些无谓的bug1. 准备工作1.1 换源将ubuntu的下载源换为中科大的源或者阿里源:https://blog.csdn.net/daerzei/article/details/84873964“软件与更新”中效果如下:1.2 设置软件源命令行输入sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.c原创 2020-07-21 18:11:27 · 417 阅读 · 3 评论 -
激光雷达点云消息参数
2D激光雷达https://www.jianshu.com/p/b73ccaf19d7e如horizontal_laser_2dheader: seq: 0 stamp: secs: 1405946671 nsecs: 406303800 frame_id: "horizontal_laser_link"angle_min: -2.35183119774angle_max: 2.35183119774angle_increment: 0.0043633230961原创 2020-05-23 21:29:15 · 2015 阅读 · 0 评论 -
深蓝学院激光slam学习——第六章(基于图优化的激光SLAM方法(Grid-based))习题
这一章的习题主要围绕着位姿图优化进行基础概念位姿图优化的顶点和边顶点 === Ti Tj也就是 前端的结果,是scan matching的结果边 === Tij分为两类:(1)里程计边,Tij是由里程计得到。(2)回环边,Tij是由scan matching得到...原创 2020-04-29 16:48:50 · 1573 阅读 · 4 评论 -
计算机图形学——Bresenham画线算法
以下摘录自《计算机图形学》对于特殊情况(非斜率为0~1区间情况)附上栅格地图的画线算法以更新free:std::vector<GridIndex> TraceLine(int x0, int y0, int x1, int y1) // 划线算法{ GridIndex tmpIndex; std::vector<GridIndex> gridIn...原创 2020-04-29 00:47:42 · 2785 阅读 · 1 评论 -
ROS多个工作空间的环境变量配置无效问题
首先,看一下我的 ~/.bashrc中,的一系列关于ros环境变量source /opt/ros/kinetic/setup.bashsource /home/mjy/dev/catkin_ws/devel/setup.*shsource /home/mjy/dev/carto_ws/install_isolated/setup.*shsource /home/mjy/dev/common...原创 2020-04-23 23:27:02 · 1441 阅读 · 0 评论 -
激光雷达占据栅格地图学习
知乎高赞回答:https://zhuanlan.zhihu.com/p/21738718Coursera上的课程:https://www.coursera.org/learn/robotics-learning/home/week/3?authMode=signup#原创 2020-04-22 11:48:38 · 1580 阅读 · 0 评论 -
深蓝学院激光slam学习——第三章(激光slam运动畸变去除)习题
用插值的方法,从而得到每一个小时刻的位姿,从而去除运动畸变。插值思想介绍明确几个物理量:(1)start_time : 激光数据开始的时刻。(2)end_time : endTime = startTime + ros::Duration(laserScanMsg.time_increment * beamNum); 激光数据结束的时刻。(3)frame_start_pose : 雷达...原创 2020-04-21 15:26:56 · 3733 阅读 · 29 评论 -
No handlers could be found for logger "roslaunch"
ros就是个这么神奇的东西。。。。。某一天启动以后,就会出现问题WARNING: unable to configure logging. No log files will be generatedChecking log directory for disk usage. This may take awhile.Press Ctrl-C to interruptDone check...原创 2020-04-21 10:13:03 · 2266 阅读 · 0 评论 -
ros::spin()的理解
ros::spin()的理解在程序到达ros::spin()之前按照一系列规则,设定一系列话题订阅者。这些订阅者就开始嗷嗷待哺,等待话题进来,但这时候订阅者的嘴还没有打开。然后就到ros::spin(),这可以理解为一个动作,打开订阅者的嘴。这样订阅者们可以开始接受话题,最重要的是进入回调函数!当然,最开始的时候,没有话题进来,spin()是堵塞在这里的。一旦有话题进来,一系列订阅、回...原创 2020-04-16 12:26:46 · 20390 阅读 · 5 评论 -
深蓝学院激光slam学习——第二章(里程计标定)习题
第二章 里程计运动模型及标定作业要求本次的作业为用直接线性方法来对机器人的里程计进行校正。给出的文件中包含有本次作业使用的bag数据,路径为odom_ws/bag/odom.bag。本次的作业中,需要实现三个函数,分别为:Main.cpp,第340行中的cal_delta_distance()函数,该函数的功能为给定两个里程计位姿,计算这两个位姿之间的位姿差。Odom_Calib....原创 2020-04-14 17:25:52 · 4625 阅读 · 70 评论 -
Eigen 学习之块操作
Eigen 为 Matrix 、Array 和 Vector提供了块操作方法。块区域可以被用作 左值 和 右值。在Eigen中最常用的块操作函数是 .block() 。block() 方法的定义如下:block of size (p,q) ,starting at (i,j)。matrix.block(i,j,p,q); matrix.block<p,q>(i,j);上...转载 2020-04-14 16:18:22 · 1036 阅读 · 0 评论 -
[joint_state_publisher-2] process has died
错误:原因:在urdf文件第一行不能添加注释,且在urdf文件中不能使用中文注释解决办法:去掉urdf文件中的注释原创 2020-04-12 15:44:26 · 2724 阅读 · 8 评论 -
将摄像头话题remap为其他名称
<launch> <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" > <param name="video_device" value="/dev/video0" /> <param name="image_width" value="640...原创 2020-04-06 18:42:48 · 314 阅读 · 0 评论 -
Cartographer安装教程及踩坑实录
因为在用胡春旭的书学习ros,现在看到cartographer激光slam的章节,因此安装carto但是万万没想到,这个东西的坑如此之多!几个重要的参考链接,感谢这些博主的引路:https://blog.csdn.net/qq_26482237/article/details/92676267https://blog.csdn.net/qq_40081208/article/detail...原创 2020-03-07 01:59:47 · 19012 阅读 · 72 评论 -
复制粘贴功能包要修改的地方
有时候我们想完全复制一个功能包,改个名字,在此基础上更改功能这时候就需要改几个参数,否则catkin_make会报重CMakeLists.txt文件第二行,project项目名称改为新的,如mrobot_gazebo改为mrobot_selfpackage.xml文件,需要修改两个地方,分别为下图的3和5行...原创 2020-03-06 00:01:14 · 573 阅读 · 0 评论 -
误下载protoc3之后恢复到protoc2.6.1
首先跟着这篇没用的blog妄图完成cartographer的安装,然并卵,反而protoc的默认版本回不去了。坑人的blog: https://blog.csdn.net/Steve_Kung/article/details/89435998(点进去就气人)如何恢复到默认的protoc2.6.1?首先,删除掉/usr/local/bin/protoc这个protoc3,因为之前妄图下载p...原创 2020-03-02 00:08:15 · 1109 阅读 · 0 评论 -
ros常遇到的Couldn‘t find executable named ---错误
首先要确保有此执行文件在scripts文件夹下方用的案例是《ROS机器人开发实践》的P164案例rosrun robot_vision cv_bridge_test.py以上代码会报错:Couldn’t find executable named cv_bridge_test.py below /home/mjy/dev/catkin_ws/src/robot_vision可是明明有执...原创 2020-02-22 11:42:37 · 16334 阅读 · 10 评论 -
ros关于一个软件包的完整解读(mrobot_gazebo)(三)launch文件view_mrobot_with_camera_gazebo.launch
模型已经准备完毕,用rviz打开是这样子滴launch文件首先要明确是什么作用,这个链接具有详细说明https://www.jianshu.com/p/63a959bfbb96首先一堆arg变量参数,相当于launch文件的局部变量,只在launch文件内部生效,便于使用变量。<!-- 设置launch文件的参数 --><arg name="world_name" v...原创 2020-02-20 22:12:44 · 1065 阅读 · 0 评论 -
如何将rviz写入launch文件
有些功能包launch以后只能打开gazebo,不能进行rviz的显示,下面展示如何将rviz写入launch文件,则以后launch的时候直接就能够在rviz中显示。首先,launch一下,如roslaunch mrobot_gazebo view_mrobot_with_camera_gazebo.launch然后打开了一系列节点,信息(topic)开始流动。这时候在命令行输入ro...原创 2020-02-20 19:58:56 · 7686 阅读 · 10 评论 -
ros关于一个软件包的完整解读(mrobot_gazebo)(二)模型文件mrobot_with_camera.urdf.xacro
继续完整软件包解读这次看另一个模型文件mrobot_with_camera.urdf.xacro这个文件是一个总的模型文件。文件内部又调用了其他的模型文件。我们来具体看看它的结构。代码不长,先贴在这里<?xml version="1.0"?><robot name="mrobot" xmlns:xacro="http://www.ros.org/wiki/xacro...原创 2020-02-20 15:37:02 · 879 阅读 · 0 评论 -
ros关于一个软件包的完整解读(mrobot_gazebo)(一)模型文件mrobot_body.urdf.xacro
学了ros有一段时间了,所用的参考书目为《ROS机器人开发实践》,但是学了这么长时间,总感觉收货甚少,没有系统性的总结。因此在这里,我针对一个功能性较为完善的软件包 mrobot_gazebo 进行完整解读。参考链接:https://blog.csdn.net/wubaobao1993/article/details/80947968这里不按照基础->深入的顺序,直接跟着代码走。l...原创 2020-02-20 01:20:12 · 2475 阅读 · 3 评论 -
学习中科大机器人操作系统踩坑
1. $ rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y失败直接替换为 rosdep install --from-paths ~/catkin_ws/src/ROS-Academy-for-Beginners --ignore-src -r即可2.原创 2019-12-21 22:25:42 · 382 阅读 · 0 评论