ros基本操作说明
针对ros1进行介绍,从入门到精通,有针对性的程序
优惠券已抵扣
余额抵扣
还需支付
¥89.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
星辰和大海都需要门票
山不在高,有仙则名。有问题,欢迎小伙伴私聊哦
展开
-
2.3 接口消息格式查看与自定义消息格式
消息格式命令查看原创 2022-06-10 15:30:16 · 624 阅读 · 1 评论 -
vscode的json配置问题
vscode中的json相关编辑原创 2022-06-10 13:55:59 · 1602 阅读 · 0 评论 -
2.0 ros2常用命令与git指令
1 ros21.1 包创建功能包ros2 pkg create village_li --build-type ament_python --dependencies rclpyros2 pkg list过滤选择包ros2 pkg list | grep vill查看功能包的位置ros2 pkg prefix turtlesim 查看功能包下的分支tree1.2 节点ros2 node listos2 node info /节点名1.3 编译colcon build原创 2022-03-11 09:51:08 · 1573 阅读 · 0 评论 -
2.1 ros2节点写法——创建一个python节点与C++节点
1 python版本ros2 pkg create village_li --build-type ament_python --dependencies rclpyli4_oop.py# 导入库# 初始化客户端库from platform import nodeimport rclpyfrom rclpy.node import Nodeclass WriterNode(Node): def __init__(self, name): super().__init原创 2022-03-11 09:48:03 · 351 阅读 · 0 评论 -
[ros必备知识点9:ros之pluginlib的使用]
1 概念插件库(可插拔的组件)。插件是一种遵循一定规范的应用程序接口编写出来的程序,插件程序依赖于某个应用程序,且应用程序可与不同的插件程序自由组合。pluginlib是一个C++库,用来从一个ros功能包中加载和卸载插件(plugin)。插件是指从运行时库中动态加载的类。——其可随时打开包含类的库,而不需应用程序事先知道包含类定义的库或头文件ros中常应用的场景:导航插件:集成不同算法,实现其灵活切换rviz插件:后期可编写一些适用于自己机器人的图形界面作用:结构清晰低耦合,易修改,原创 2022-01-20 17:44:26 · 936 阅读 · 0 评论 -
ros必备知识点9:ros之nodelet的使用
1 Nodelet使用的原因由于一个node启动独占一个进程,不同node间的通讯其实是不同进程间的数据交互。当传输图片、点云等大容量数据时,会出现延迟与阻塞情况——因此,出现了Nodelet(节点管理器),将不同节点集成进一个进程。2 Nodelet概念其旨在提供在同一进程中运行多个算法的方式,不同算法之间通过传递指向数据的指针来代替数据本身的传输核心实现:插件3 作用应用于大容量数据传输,提高节点间的数据交互效率,避免延迟与阻塞上图说明:加载节点——以独立进程加载节点——卸载节点——节点原创 2022-01-18 16:58:36 · 1316 阅读 · 0 评论 -
ros知识点1-5-3:ros之tf变换-基于launch发布,节点订阅方式
1 launch发布tf变换<launch><!-- 发布son1相对world与son2相对于world的坐标关系 --><node pkg="tf2_ros" type="static_transform_publisher" name="son1" args="5 0 0 0 0 0 /world /son1" output="screen"/><node pkg="tf2_ros" type="static_transform_publisher"原创 2021-12-13 11:04:34 · 1408 阅读 · 0 评论 -
ros知识点1-5-2:ros之动态tf变换
1 需要订阅乌龟的位姿信息,转换成相对于窗体的坐标关系,并发布#include"ros/ros.h"#include"turtlesim/Pose.h"// 发布动态坐标变换的头文件#include"tf2_ros/transform_broadcaster.h"// 坐标系间转换需要的头文件#include"geometry_msgs/TransformStamped.h"// 将欧拉角转换为四元素#include"tf2/LinearMath/Quaternion.h"/*原创 2021-12-13 11:00:41 · 306 阅读 · 0 评论 -
ros知识点1-5-1:ros之静态tf变换
1 发布一个静态tf变换---------laser相对于base_link的#include"ros/ros.h"// 发布坐标系间的相对关系时需要的头文件--发布静态坐标变换#include"tf2_ros/static_transform_broadcaster.h"// 坐标系间转换需要的头文件#include"geometry_msgs/TransformStamped.h"// 将欧拉角转换为四元素#include"tf2/LinearMath/Quaternion.h"/*需原创 2021-12-13 10:51:14 · 1166 阅读 · 0 评论 -
ros知识点1-4:ros之客户端与服务器的使用
1 服务器端1.1 创建功能包plumbing_server_client roscpp rospy std_msgs1.2 在功能包下创建srv文件夹,并写入服务格式# 客户端请求时发送的两个数字int32 num1int32 num2---# 服务器响应发送的数据int32 sum1.3 package.xml中 <buildtool_depend>catkin</buildtool_depend> <build_depend>roscpp&原创 2021-12-06 14:41:59 · 1234 阅读 · 0 评论 -
ros必备知识点8:ros之use_sim_time的使用
这个参数当回放bag数据集是设置为true,此时说明系统使用的是仿真时间,如果设置为false,则系统使用walltime。此参数可以通过launch文件中设置,或者通过节点设置。launch文件设置: 1通过节点设置:rosparam set use_sim_time true具体区别查阅知乎...原创 2021-12-01 16:07:34 · 6131 阅读 · 0 评论 -
ros必备知识点7:ros之messagefilter消息同步器的使用
官网链接官网翻译链接ROS中使用message_filters进行多传感器消息同步原创 2021-11-02 16:21:48 · 1274 阅读 · 0 评论 -
ros必备知识点5:ros之rviz的使用
rviz中的grid说明PlaneCellCount:要在网格平面中绘制的单元格数NormalCellCount:沿网格法线方向绘制的单元格数量CellSize:每个单元格边的长度(以米为单位)LineStyle:用于绘制线条的渲染操作。 无论距离多远,线条的宽度都是相同的。 BillBoards具有真实世界的宽度,因此它们会根据距相机的远近而变大/变小。Alpha:应用于线条的透明度量Plane:绘制网格的平面...原创 2021-10-29 14:23:45 · 1711 阅读 · 0 评论 -
ros必备知识点4:ros之参数服务器的使用
#include"ros/ros.h"int main(int argc, char *argv[]){ setlocale(LC_ALL,""); ros::init(argc,argv,"ergouzi_colass"); // 基于节点句柄发布不同话题名称的四种方式 // 注意:带有~都会自动加入节点名,否则就直接将()中的名称写在话题前 // 方式1: // ros::NodeHandle nh("~"); //话题前会自动加入当前节点名/erg原创 2021-10-27 21:08:48 · 418 阅读 · 0 评论 -
ros必备知识点3:rosbag话题的重命名与包的播放
重新修改话题名rosbag play --clock 2021-10-25-09-02-09.bag /test_cloud:=/points_raw重新录制该话题rosbag record /points_raw原创 2021-10-25 14:08:09 · 1095 阅读 · 0 评论 -
ros必备知识点2:ros中节点句柄的不同用法
代码实现参考: chatter_pub=nh.advertise<std_msgs::String>("fang_class",10);int main(int argc, char *argv[]){ setlocale(LC_ALL,""); ros::init(argc,argv,"ergouzi_colass"); // 基于节点句柄发布不同话题名称的四种方式 // 注意:带有~都会自动加入节点名,否则就直接将()中的名称写在话题前 // 方原创 2021-10-22 10:44:24 · 907 阅读 · 0 评论 -
ros必备知识点1:ros::spin与ros::spinonce的区别
1 ros消息回调处理函数ros::spin与ros::spinonce的区别**消息回调函数处理机制:**接收订阅消息时,接收到的消息并不是立刻就处理,而是先将传入的消息(message)存入到队列中,必须要等到ros::spin()或ros::spinOnce()执行的时候才被调用,这就是消息回调函数的原理。所以,这会有一个问题。因为回调函数队列的长度是有限的,如果发布器发送数据的速度太快,spinOnce函数调用的频率太少,就会导致队列溢出,一些callback函数就会被挤掉,导致没被执行到。而原创 2021-10-22 09:38:41 · 429 阅读 · 0 评论 -
ros专栏目录表
ros知识点1-1:节点发布话题,并设置发布频率ros知识点1-2:在C++类中ros节点发布话题ros知识点2:ros节点订阅话题(包含用C++类处理回调函数)原创 2021-10-21 17:32:28 · 128 阅读 · 0 评论 -
ros知识点1-2:在C++类中ros节点发布话题
取代以往将发布的节点话题与话题中所有内容均写在main函数中的格式,这次采用了main函数中调用类的方法,程序显得更加简洁#include"ros/ros.h"#include"std_msgs/String.h"class pubInt{private: ros::Publisher chatter_pub;public: // 构造函数 pubInt(ros::NodeHandle &nh){ chatter_pub=nh.advertise<s原创 2021-10-21 16:46:03 · 416 阅读 · 0 评论 -
ros知识点1-3:ros节点订阅话题(包含用C++类处理回调函数)
1 创建节点订阅话题#include"ros/ros.h"#include"std_msgs/String.h"void doMsg(const std_msgs::String::ConstPtr &msg){ // 通过msg获取并操作订阅到的数据 ROS_INFO("翠花订阅的数据:%s",msg->data.c_str());}int main(int argc, char *argv[]){ // 解决中文乱码问题 setlocale(原创 2021-10-21 15:01:12 · 1773 阅读 · 0 评论 -
ros知识点1-1:节点发布话题,并设置发布频率
1 创建节点发布方#include "ros/ros.h"// 针对ros中文本内容需要添加的头文件#include"std_msgs/String.h"// 发布方实现int main(int argc, char *argv[]){ ros::init(argc,argv,"Ergouzi"); ros::NodeHandle nh; ros::Publisher pub=nh.advertise<std_msgs::String>("fang",10)原创 2021-10-21 14:38:55 · 2762 阅读 · 0 评论 -
bag包的使用
1 可视化bag包rqt_bag bag包名原创 2021-09-02 13:56:56 · 287 阅读 · 0 评论 -
ros update问题
127.0.0.1 localhost127.0.1.1 lc-ThinkPad-L590The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopbackfe00::0 ip6-localnetff00::0 ip6-mcastprefixff02::1 ip6-allnodesff02::2 ip6-allrouters#192.232.68.133 raw.githubu原创 2021-08-18 15:24:12 · 193 阅读 · 0 评论 -
rosdep无法执行——错误问题
错误提示sudo pip install rosdepsudo apt install python3-rosdep原创 2021-08-04 16:28:56 · 107 阅读 · 0 评论 -
ros kitti数据集的学习
(1)给定点云与相机情况下进行3D 物体侦测其对应论文在github中,并有相关源码介绍(2)ros kitti数据集教程的学习见bilibili网站:ros使用自动驾驶数据集kitti教程原创 2021-01-22 14:22:58 · 274 阅读 · 0 评论 -
ros理论与实践—bilibili视频学习笔记
matlab自动驾驶算法——R2020b:检测 定位 跟踪&融合 规划 控制道路建模 :RoadRunner导入,同时也支持OpenDrive与Open street map的 导入交通参与者建模 传感器(毫米波雷达、激光雷达、IMU、GPS)、动力学建模自适应巡航:前方没有车辆时会保持在该车道上继续进行行驶,当前方有车辆出现时,会与前方车辆保持一定距离,并且进行跟车行驶。通过stateflow模拟信号灯传感器 地图百度搜索open street map,下载该格式的...原创 2021-01-22 14:21:05 · 394 阅读 · 1 评论 -
linux添加udev规则-串口为例
linux下的串口号绑定0 写本教程的初衷1 查看相应的usb端口信息2 创建usb_device.rules文件3 创建生效后重新插拔USB4 在对应的RPLIDAR与Autolabor程序中修改对应的串口号为其映射5 外界启动程序0 写本教程的初衷由于RPLIADR与autolabor小车插入时经常在ttyUSB0,1,2中来回改变,因此需要分别将其串口号绑定写死,省得每次启动前都需要查阅autolabor与RPLIDAR是属于哪个串口号,需要不断的在程序中来回进行变更,并且每次启动前还需要sudo原创 2020-12-11 15:33:29 · 634 阅读 · 0 评论 -
rosbag使用教程
rosbag官网:http://wiki.ros.org/rosbag/Commandline1 查看发布的话题rostopic listrostopic list -v2 bag数据记录——所有发布的消息mkdir ~/bagfilescd ~/bagfiles/rosbag record -a //记录所有话题消息ctrl+c终止数据的记录3 查看rosbag recorg的帮助信息rosbag record -h4 bag数据播放 rosbag play 2019-09原创 2020-11-27 10:18:58 · 292 阅读 · 0 评论 -
ros导航中的tf变换解析
目录复制这里写目录标题1 启动autolabor pro小车驱动1 启动autolabor pro小车驱动赋予小车串口权限sudo chmod 777 /dev/ttyUSB0 启动小车驱动节点roslaunch autolabor_pro1_driver driver.launch 查看tf变换rosrun tf view_frames...原创 2020-09-18 08:55:38 · 425 阅读 · 0 评论 -
ros下实现分布式多机通讯
1 设置ip地址(1)计算机1sudo gedit /etc/hosts写入对方计算机ip地址与计算机名# @lc-Lenovo-S40-70, /etc/hosts192.168.1.113 sdas-Default-string(2)计算机2:(3)基于ping测试两台计算机是否能正常通讯计算机1:计算机2:2 设置ROS_MASTER_URI由于系统中只能存在一个Master,所以从机需要知道主机Master的位置,在从机上使用以下命令设置ROS_MASTER_URI原创 2020-08-25 17:10:28 · 466 阅读 · 0 评论