Ros 基本操作理论基础 及 Vscode调试保姆级教程
文章平均质量分 83
系统级别重修Ros基础学习心得体会,再次二刷回顾,全方面渗透覆盖,整合最终2.0版本
忒懂先生
ros实践程序员所有的博文经过特殊处理第三方获取的不全面不负全责
展开
-
ubuntu20.04 Supervisor 开机自启动脚本一文配置
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。原创 2023-09-08 14:05:04 · 1349 阅读 · 0 评论 -
ubuntu20.04 设置 rc.local 开机自启动脚本一文配置
系统:ubuntu20.04LTS 本来觉得似乎好像是一件简单的事情。原创 2022-12-21 09:10:27 · 1712 阅读 · 0 评论 -
Ros cartographer pure localization 自定位+重定位+导航
在完成了前面的方针之后,随着不断挖掘开始跑 cartographer + move_base 的构架,由于amcl定位的实时性和重定位的能力远不及 cartographer pure localization 自定位的构建方式,所以本文开始放弃 gampping + amcl + move_base 开启本文的 cartographer + move_base框架主要思路为:仿真 + 实战的探索过程本文主要分两部分: A.仿真调通 + B.自定位实战 + C.自定位导航实战。原创 2022-10-19 14:01:42 · 3611 阅读 · 7 评论 -
Ros yocs_velocity_smoother 保姆级部署教程
yocs_velocity_smoother速度平滑(滤波)是将base_move导航输出的/raw_cmd_vel速度进行平滑处理,得到/cmd_vel速度进行控 制机器人底盘运动。这里选用里程计/odom作为速度平滑的参考。ROS中的yocs_smoother_velocity是一个非常好的速度插值的包, 可以对速度、加速度进行限制,用来防止机器人的速度、转速变化过快或过慢, 是其运行平滑流畅。原创 2022-10-19 09:51:19 · 797 阅读 · 3 评论 -
Ros noetic opencv4.2.0 cv_bridge 冲突 适配Opencv3.2.0完成自己的USB_Camera 跑通 Orb_slam2
本文附上使用自己的USB_Cam 跑通Orb_Slam2 算法的过程,以及解决cv_bridge冲突的方案Orb_Slam2需要的cv版本 但是自带了这就是最难受的事情,为此苦苦寻求合理的办法能把Orb_Slam2 能在我的环境里能运行起来,细心观察到,之前的Orb_Slam2 版本可以脱离Ros运行但是一旦进入Ros build就会产生冲突为此,最明显的就是waring的警告,同时编译也可以通过。原创 2022-09-30 15:52:35 · 1955 阅读 · 0 评论 -
ROS Noetic 20.04 + ORB Slam2 保姆级全套安装一包到位
随着前文完成了各个框架的部署,为ieORB的安装铺垫出了坚实的基础,了解到ORB系列属于最受到欢迎的开源项目抱着好奇的心思开启了对源码的拜读和了解,本文一站式完全完美安装,避免了各种复杂难搞的报错情况。这个ORB_SLAM2的环境配置上走了太多的坑,呕心沥血三晚上。吃了两晚上的旺旺,希望各位研友也能旺旺。原创 2022-09-27 09:59:05 · 1092 阅读 · 0 评论 -
ROS Noetic+ Protoc 3.21.6 最新版保姆级替换安装教程
近期在构架orb slam2的框架上需要使用到google的protobuf,浏览官网后发现,protobuf已经更新到了很多的版本,而Noetic自带的Protoc 版本太低 也没有google/protobuf/port_undef.inc这个库的文件,然后cmake一catkin就报错找不到该文件,本文详细记录了该过程Bug中的修订。原创 2022-09-22 13:51:53 · 616 阅读 · 0 评论 -
ROS Noetic+OpenCV 3.2 保姆级安装教程
随着时间的推移导师的研究方向推向了定位这一块,Opencv不由地说就成了最好的软件了解到leo vin orb 这些算法都在opencv的基础上,查阅了各种资料,花费了小一天,最后终于编译通过,由于Noetic自带opencv 4.2 但是orb slam2 支持opencv3.2 在编译的时候无论如何修改都一样报错,苦苦寻求,最后忍痛放弃了opencv4.2 开始按照官方的 readme 开始安装opencv3.2的漫长心路,本次安装记录下详细过程,方便后来同学少走弯路。原创 2022-09-22 09:51:31 · 2446 阅读 · 0 评论 -
ROS 仿真环境gazebo离线模具环境配置保姆级教程
因为最近疫情隔离摸不到设备,但是又按耐不住,于是打开了尘封的gazebo教程,使用环境Ros noetic 20.04 因为该版本已经预装了gazebo但是没有模型看便所有教程之后得到下面的教程1.第一次启动,推荐使用sudo gazebo赋予gazebo所有权,这样配置path和保存都可以不死机2.等待片刻后打开界面点击Insert3.一定记清楚这里的路径4.用自己的文件管理器进入该目录删除原来的models文件夹配置bash可以永久使用5.下载百度云覆盖原来的models目录。原创 2022-09-07 20:57:13 · 415 阅读 · 0 评论 -
ROS 代码调试常用方式配置
ROS集成了很多调试工具如代码调试、可视化调试、单元测试、通信调试、系统检查、系统仿真等。 代码调试:GDB、valgrind、log(rqt_logger_level)等 可视化调试:网络拓扑rqt_graph、消息rqt_console、日志rqt_logger_level、三维可视化RVIZ、趋势图rqt_plot等 单元测试:C++单元测试框架gtest、Python单元测试框架nosetests 通信调试:rostopic 、rosbag等。原创 2022-08-25 15:21:11 · 1467 阅读 · 0 评论 -
Ros Nodelet 高速通信 单独节点编写
ROS引入了Nodelet机制,通过共享指针实现了在多算法、多节点间的零拷贝传输。ROS通过Nodelet管理器NodeletInterface管理Nodelet,并通过ROS的pluglib插件机制实现动态加载Nodelet。Nodelet管理器拥有一个可供所有Nodelet使用的线程池,线程池的数量通过参数num_worker_threads设置,默认为4。Nodelet作为线程出现。原创 2022-08-25 14:56:15 · 668 阅读 · 0 评论 -
ROS 消息订阅 服务器客户端客户端 通信方式
步骤1:创建自定义服务.srvint64 aint64 b---int64 sum 步骤2:编写服务文件service{// a+b 完成响应}{// 名字 + 回调名字return 0;} 步骤3:编写客户端文件 client{// 表明是客户端/*if (argc!}*/}}if (client.call(srv)) // 调用 call 就可以发起请求{}else{return 1。原创 2022-08-23 15:02:04 · 605 阅读 · 0 评论 -
ROS 消息订阅 状态同步 action 行为通讯方式
步骤1 创建自定义行为步骤2 编写服务文件步骤3 编写客户端文件步骤4 package.xml、CMakeLists.txt配置步骤5 生成行为头文件步骤6 编译执行 action依赖于actionlib、actionlib_msgs程序包。原创 2022-08-23 15:36:10 · 686 阅读 · 0 评论 -
ROS 消息订阅 节点发布 通信方式
但在某些情况下,需要一种同时使用请求和响应的同步消息交换方案,ROS提供了叫做服务的消息同步方法,是一种一对一的机制。与话题不同,服务是一次性消息通信。话题本质是对套接字的一种封装,一个节点可以向一个给定的话题发布消息,另一个节点可以订阅给定话题中特定消息类型的消息。ROS是以节点的形式开发的,节点是根据其目的,可以细分的可执行程序的最小单位。 单次模式(once mode) 以闩锁模式发布消息,执行3秒,然后结束发布,选项为-1。需要注意的是,在ROS中,话题必须是唯一的,否则消息路由就会产生错误。原创 2022-08-23 14:01:34 · 3154 阅读 · 0 评论 -
Ros Cmakelist 编译配置
编译配置主要有宏设置、包依赖、Cmake编译管理、catkin编译策略等。宏设置包依赖package.xml文件编译管理CMakeList.txt文件catkin编译策略:catkin编译策略主要指编译目标是Release、Debug、编译输出空间等。原创 2022-08-23 10:35:49 · 1041 阅读 · 0 评论 -
Ros Launch启动管理
ROS通常具有很多的节点,部分节点需要带参启动,部分节点还分布在其他设备上。这都需要一个统一的管理策略,ROS通过roslaunch管理分布式节点。放置在launch文件夹中launch文件本质是一个以launch为后缀的XML文件,位于launch目录下。对于本地进程,ROS通过popen创建管道启动进程,利用POSIX信号来杀死进程,对于远程节点, ROS基于SSH来实现远程通信,这导致roslaunch无法保证启动顺序。若需要 设置启动顺序时,可通过bash脚本进行顺序启动。原创 2022-08-23 10:01:48 · 1196 阅读 · 0 评论 -
ROS 动态参数 实时调参方式
开发者常常需要动态调整参数以查看机器人在不同参数下的性能表现;无论是通过YAML文件配置参数还是通过节点句柄操作参数,都会面临一个问题,如果节点不主 动查询参数值,就无法获取参数是否已经进行了更新。解决办法:通过程序包提供了动态参数这一功能。 写参数配置文件CMakeLists文件修改配置文件修改配置编译生成头文件创建回调函数利用调参编写Python脚本添加参数生成器对应的cpp文件添加依赖包。原创 2022-08-21 22:07:40 · 2560 阅读 · 0 评论 -
ROS 接口调参 加载参数 动态参数 从NodeHandle中加载参数
ROS参数服务器本质上是可以网络访问的参数词典,ROS参数服务器能保存的数据类型包括字符串 、整型、浮点型、布尔型、列表、词典等;参数根据类型不同可以分为全局参数、相对参数、私有参数等;其中以“/”开头的参数为全局参数,以“~”开头的参数为私有参数,其他参数为相对参数;操作参数的四种方法:ROS提供了两种管理参数的API实时的存储、获取参数:一个是通过ros::param。原创 2022-08-21 20:52:14 · 1606 阅读 · 0 评论 -
Ros 基本基本构架
等,这类代码通常是对第三方工具的封装,另一部分是应用层代码,主。部分则由社区进行开发和维护,一部分是工具代码如。提供了硬件相关的控制器、接口等功能;的系统代码根据维护者和分布可以分为。提供了传感器和其他硬件的驱动;要针对特定问题如人脸识别等开发。提供了导航和路径规划等功能;包括对话题和服务的各种操作。架构,客户端和设备均基于。的基本框架和工具,主要由。公司设计、提供以及维护。提供标准消息、编译系统、部分为核心部分,提供了。在广域网场景中,采用。原创 2022-08-21 20:37:34 · 122 阅读 · 0 评论 -
Ros 基本操作vscode 之 hello world 详细部署
在之前我们已经完全部署好自己的Vscode环境之后,现在我们可以开始实际操作部署详情见Ros 与 Web 之 VScode 开发环境搭建(2)_忒懂先生的博客-CSDN博客。原创 2022-08-16 22:14:04 · 628 阅读 · 0 评论