当前位置:网站首页>Commissioning experience of ROS
Commissioning experience of ROS
2022-07-28 02:52:00 【Box Zijun~】
List of articles
Tips : Here you can add a list of all the articles in the series , The directory needs to be added manually
TODO: Finish writing and then sort it out
List of articles
- List of articles
- Preface
- 1.【 Hang dependencies and function packs 】
- 2.【 Hang system modules and components , Such as rviz、gazebo】
- 3.【 Hang the robot model 】
- 4.【 Hanging coordinate conversion 】
- 5.【 Hanging node -- Documents related to 】
- 6.【 Hang up the topic 】
- 7.【 Type of topic message 】
- 8.【 Hang the source code to realize the logic 】
- 9.【debug-- Dynamic tuning 】
- 10.【 Check the operation of nodes 】
- summary
Preface
Limited cognition , Please forgive me , If you have any questions, I hope to communicate with you more , Grow up together !This article first ROS Debugging experience Make a brief introduction , The details will be discussed later , Other modules can refer to my other articles
Tips : The following is the main body of this article
1.【 Hang dependencies and function packs 】
(1) Check the problem method
The terminal reported an error
(2) The solution
(1) The corresponding open source feature pack is not installed
(1) Binary installation :$sudo apt-get install ros-melodic-XXX【 Anti theft mark – Box King hzj】
(2)github Download source installation
(2) Check whether there is any problem with the dependent version
Such as eigen、pcl Version issue for
(3) Modify source code , See if you use this library and dependencies
.
.
2.【 Hang system modules and components , Such as rviz、gazebo】
(1) Check the problem method
The terminal reported an error
(2) The solution
(1) Replace the implementation of other modules , Eliminate the causes of system crash caused by other modules , It is possible that other modules caused the module to crash
(2) Replace the implementation of this module , Eliminate the cause of system crash caused by this module 【 Anti theft mark – Box King hzj】
(3) Troubleshoot the workspace directory
It is best to use a single workspace , Multiple ( Different names ) There may be a problem that the function pack cannot be found in the workspace
(4) exclude launch File startup sequence problem
launch The starting sequence of the file content is not necessarily , The node is multi-threaded , There is no order , If there are requirements for starting sequence
【 hang rviz Visualization problems 】
ROS Of rviz visualization marker Display errors may occur for the data type of
RVIZ Hang up for no reason , Just start rviz Not good either. , Restart the computer to solve
【 hang gazebo Simulation problems 】
Open and close frequently gazrbo The simulation environment will report an error , because gazebo Open it again without completely exiting ( Junk computers are even more so )
terms of settlement
$killall gzserver
$killall gaclient
Google is looking for ways
.
.
3.【 Hang the robot model 】
(1) Check the problem method
The terminal reported an error
(2) The solution
Replace a robot model
.
.
4.【 Hanging coordinate conversion 】
(1) Check the problem method
(1)tf_tree
Check whether the coordinate relationship between modules is correct , Is there any disconnection between coordinates 【 General troubleshooting 】【 Anti theft mark – Box King hzj】
【rosrun rqt_tf_tree rqt_tf_tree】
tf Coordinate connection can be achieved through rosrun rqt_tf_tree rqt_tf_tree see , If the node is disconnected, it means tf There's a problem with the connection ,
Go to the source code to see if there is any problem , Really can't, just launch The files are manually linked together with static link instructions ( Just a hidden bug)
. Static link instruction [x,y,z,r,p,y/x,y,z, Four yuan number : Parent node coordinates 、 Child node coordinates ]
(2) The solution
(1) Source code modification
(2) If coordinate dynamic link error , Change source code , Change launch Static coordinate link , Manually static link coordinate relationship
5.【 Hanging node – Documents related to 】
(1) Check the problem method
(1)rgt_graph
View the connections between nodes , Look at the logic of the whole program , Check the mistakes of the topic 、 Check whether the node is started 【 General troubleshooting 】
【rosrun rgt_graph rgt_graph】
use rqt_graph When checking whether the node is running normally ,active It is a normal node , choice all,【 Anti theft mark – Box King hzj】
If there is a node , But the node hangs , There will be “n_” At the beginning
(2)rosnode info / The node name
Check the detailed parameters of the corresponding topic
(3)rosnode list
.
.
(2) The solution
(1) have a look launch Has it started up
(2) have a look cmakelist、package.xml Is there a mistake
(3) See if it's true vscode I forgot to save the modification , Or not catkin_make
(4) See if it's true tf Hang up ,tf If you hang up , Many nodes have problems 【 Anti theft mark – Box King hzj】
(5) See if there is a problem with the program call or running logic
remind
When initializing a node during programming, write a ROS_INFO(XXX_start)
.
.
6.【 Hang up the topic 】
(1) Check the problem method
Use rostopic help To get more help
(1)rostopic list +rostopic echo / Topic name
Check the specific data released by the topic 【 Topic investigation 】
(2) rostopic pub
【 For debugging 】 Publish data to a topic
.
(2) The solution
(1) Check whether the topic names of source code publishing and subscribing are consistent 【 There may be a mistake , May not be , But it affects the result 】【 Anti theft mark – Box King hzj】
(2) The logical reason why the node hangs (csv Incorrect format leads to illegal parameters 、 Variable not loaded not found 、gazebo Simulation problems 、 Accidental error report )
.
.
.
7.【 Type of topic message 】
(1) Check the problem method
(1)rosmsg show xxx($rosmsg show …/…/…)
Check the message type of the topic , And details
see ros Data type of ( Self defined msgs And officially defined msgs) It's best to use instructions to check 【 Anti theft mark – Box King hzj】
(2) The solution
Look at the source code, publish and subscribe
ROS Notice the refactoring of message types , Compare message types. Note that the types are consistent , When comparing multiple nested data types, pay attention to whether the timestamp is consistent
$rosmsg show .../.../...
8.【 Hang the source code to realize the logic 】
(1) Check the problem method
See the source code syntax and principle by yourself
There's no problem compiling , It doesn't mean that the logical effect is ok 【 Test after compilation 】
【 Anti theft mark – Box King hzj】
(2) The solution
(1) backtracking : Review what you changed that led to the error report , Start looking for errors from the nearest place 【 version management 】( Learn the method of version management , Local ,gitlab?)
(2) Debugging while writing code : Write a small function module and compile / To run a , Step by step , Just programming without debugging will overturn your work debug 了 【 Anti theft mark – Box King hzj】
(3) Print log Value looks for problems according to logic : Print the variable value of debugging at the terminal , When considering whether the program has entered the place you want him to enter , Put a info Information output printing
.
.
9.【debug– Dynamic tuning 】
(1) Check the problem method
(1)Rosrun rqt_configure rqt_configure【 Anti theft mark – Box King hzj】
Dynamically set parameters for parameter adjustment
(2)rosrun rqt_steering rqt_steering
Dynamic setting of the chassis vel_cmd Command parameters are adjusted
.
.
10.【 Check the operation of nodes 】
adopt rqt_graph View the connections between nodes
adopt topic echo /topic Check the content of the corresponding topic
adopt topic info /topic Check the detailed parameters of the corresponding topic
Use rostopic pub Publish data to a topic 【 Anti theft mark – Box King hzj】
Use rostopic help To get more help
Use rostopic type /topic Check the message type of the corresponding topic
Use rosmsg View the detailed data of the message
Use rosmsg show View the details of the specified message
summary
A mistake itself may not be itself , endeavour , Check Google more , Report mistakes and don't dream about it yourself
边栏推荐
- 【自我成长网站收集】
- Today in history: the father of database passed away; Apple buys cups code; IBM chip Alliance
- 【LeetCode】13. Linked List Cycle·环形链表
- 【软件测试】—— 自动化测试之unittest框架
- 【TA-霜狼_may-《百人计划》】图形3.7 移动端TP(D)R架构
- Representation of children and brothers of trees
- Canvas 从入门到劝朋友放弃(图解版)
- POC模拟攻击利器 —— Nuclei入门(一)
- LETV responded that employees live an immortal life without internal problems and bosses; Apple refuses to store user icloud data in Russia; Dapr 1.8.0 release | geek headlines
- openGauss源代码,用什么IDE工具管理、编辑、调试?
猜你喜欢

【LeetCode】13. Linked List Cycle·环形链表

retainface使用报错:ModuleNotFoundError: No module named 'rcnn.cython.bbox'

Maskedauutoencoders visual learner cvpr2022

JS中的reduce()函数介绍

关于Sqli-labs单引号不报错的问题
![[solution] solve the problem of SSH connection being inactive for a long time and being stuck and disconnected](/img/66/99bd61223cbe622db3e28474f4fa15.png)
[solution] solve the problem of SSH connection being inactive for a long time and being stuck and disconnected
![[leetcode] 13. linked list cycle · circular linked list](/img/58/c8796bb5ed96d09325b8f2fa6a709e.png)
[leetcode] 13. linked list cycle · circular linked list

CNN训练循环重构——超参数测试 | PyTorch系列(二十八)

app 自动化 环境搭建(一)

First knowledge of C language -- operators and keywords, define, pointer
随机推荐
2022.7.8 eth price analysis
Redis aof日志持久化
Common SQL statement query
[wechat applet development (V)] the interface is intelligently configured according to the official version of the experience version of the development version
【ELM分类】基于核极限学习机和极限学习机实现UCI数据集分类附matlab代码
Redis AOF log persistence
Is it safe to buy funds on Alipay? I want to make a fixed investment in the fund
[ACNOI2022]总差一步
Job 7.27 IO process
优炫数据库客户端如何认证
How do gateways and chirpstacks in lorawan communicate? UDP? GRPC? MQTT?
tfx airflow 使用体验
windbg
CSDN TOP1“一个处女座的程序猿“如何通过写作成为百万粉丝博主?
欢迎使用CSDN-markdown编辑器阿萨德
【英雄哥七月集训】第 27天:图
MySQL blocking monitoring script
Introduction to the reduce() function in JS
A 64 bit 8-stage pipelined adder based on FPGA
【TA-霜狼_may-《百人计划》】图形3.5 Early-z 和 Z-prepass