使用kdbg或nemiver调试ROS
Kdbg
Kdbg是KDE环境下的一个gdb的前端GUI,使用起来比较友好,速度也很快,安装和使用请参考:
在UBUNTU下可以直接使用APT安装:
sudo apt-get install kdbg
安装运行后会遇到类似“MNG error 11: Function is invalid at this point; chunk MHDR; subcode 0:0”的错误
将/usr/share/kde4/apps/kdbg/icons/hicolor/22x22/actions/pulse.mng删除即可
Nemiver
nemiver是基于GNOME的gdb前端,非常强大,但是速度有点慢
在UBUNTU下直接使用apt安装:
sudo apt-get install nemiver
在ROS中使用调试器(gdb前端)必须使用DEBUG模式编译待运行的包,具体方式是:
catkin_make -DCMAKE_BUILD_TYPE=Debug
使用调试器的方式有两种:
一种是在启动节点(Node)后,使用ATTACH的方式进行调试。这种方式KDBG与nemiver都支持,这里不多做介绍,只需要知道node的执行文件一般在
<CATKIN_WORKSPACE>/devel/lib/<PKG_NAME>下,如:~/code/ros/catkin_ws/devel/lib/robot_localization
另一种方式是在launch文件中指定node启动的命令前缀,即node的launch-prefix属性,请参考如下链接:
Roslaunch Nodes in Valgrind or GDB
我们也可以指定launch-prefix为其他工具,比如我刚刚介绍的nemiver和kdbg
例如:
#localization_starter.launch
<launch>
<arg name="debugger" default="" /> <node pkg="robot_localization"
type="ekf_localization_node"
name="ekf_localization"
clear_params="true"
launch-prefix="$(arg debugger)" />
</launch>
运行localization_starter.launch的时候就可以使用这样的方式制定debugger为nemiver:
roslaunch <MY_PKG_NAME> localization_starter.launch debugger:=nemiver
nemiver可以直接指定为launch-prefix,但是kdbg的使用稍微麻烦一点,因为kdbg的命令行格式与该方式不兼容
使用prefix方式需要工具支持如下形式的命令行格式:
<TOOL_NAME> <EXEC_NAME> <EXEC_ARGS...>,如:nemiver git status
但kdbg的命令行格式为:kdbg -a "<EXEC_ARGS...>" <EXEC_NAME>
因此必须使用脚本进行格式转换,我使用的脚本如下:
#!/bin/bash KDBG=kdbg PROGRAM=$
shift
ARGS="$@" if [ "${ARGS}" != "" ] && [ "${PROGRAM}" != "" ]; then
${KDBG} -a "${ARGS}" "${PROGRAM}"
else
if [ "${PROGRAM}" != "" ]; then
${KDBG} -a " " "${PROGRAM}"
else
${KDBG}
fi
fi
将其命名为:kdbg-ros并添加到环境变量PATH中即可在ROS的launch文件中使用,仍以前面的localization_starter.launch为例:
roslaunch <MY_PKG_NAME> localization_starter.launch debugger:=kdbg-ros
在KDBG启动后设置断点,之后点Run即可启动节点进行调试
使用kdbg或nemiver调试ROS的更多相关文章
- visual studio code 调试ROS的插件
ctrl+p搜索: ext install ros https://marketplace.visualstudio.com/items?itemName=ajshort.ros 进行安装 其他可以调 ...
- Clion调试ROS包
1. 安装 从官网下载最新版本的Clion https://www.jetbrains.com/clion/ 并解压到指定的目录,例如: /home/xkc/software/clion-2017.2 ...
- linux内核调试指南
linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...
- 快速了解 Robot Operating System(ROS) 机器人操作系统
http://www.ros.org/ 关于ROS About ROS http://www.ros.org/about-ros/ 机器人操作系统(ROS)是用于编写机器人软件的灵活框架.目的在简化 ...
- ROS机器人程序设计(原书第2版)补充资料 (叁) 第三章 可视化和调试工具
ROS机器人程序设计(原书第2版)补充资料 (叁) 第三章 可视化和调试工具 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. ~$ rosl ...
- ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门
ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 第一章主要包括R ...
- SLAM+语音机器人DIY系列:(二)ROS入门——9.熟练使用rviz
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- ROS使用小知识点
输入 rosrun rqt_graph rqt_graph 可以打开一个界面观察节点与话题的关系 绿色和蓝色的是节点 红色的是话题 查看ros中额的tf转换信息 rosrun rqt_tf_tree ...
- ubuntu16.04使用Qt开发ROS
本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-industrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Qt“新建项 ...
随机推荐
- shell管道和重定向
看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了.这次我们看下管道命令了.shell管道,可以说用法就简单多了. 管道命令 ...
- leetcode—Same Tree
1.题目描述 Given two binary trees, write a function to check if they are equal or not. Two binary tree ...
- 【创建本地仓库】【for Centos】CentOS下创建本地repository
[日期]2014年4月24日 [平台]Centos 6.5 [工具]httpd yum-utils createrepo [步骤] 1)安装httpd. yum install httpd 2)安装y ...
- SGU-495 Kids and Prizes 概率DP
题目链接:http://acm.sgu.ru/problem.php?contest=0&problem=495 题意:有n个盒子,每个盒子里面放了一个奖品,m个人轮流去选择盒子,如果盒子里面 ...
- Delphi- 操作EXCEL
因工作需要,需要到操作EXCEL,先了解一下怎么读取EXCEL这个,做了一个DEMO,备注在这里 一.读取EXCEL unit Unit1; interface uses Windows, Messa ...
- jQuery插件- Autocomplete应用详解
项目中有时会用到自动补全查询,就像Google搜索框.淘宝商品搜索功能,输入汉字或字母,则以该汉字或字母开头的相关条目会显示出来供用户选择, autocomplete插件就是完成这样的功能. auto ...
- 海量Office文档搜索
知识管理系统Data Solution研发日记之十 海量Office文档搜索 经过前面两篇文章的介绍,<分享制作精良的知识管理系统 博客备份程序 Site Rebuild>和<分 ...
- JavaScript要点(九)HTML DOM
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素. HTML DOM (文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object M ...
- 手把手教你入门mac idea
一.前沿 去年入职后, 公司有很多人使用的是idea , 而不是eclipse. 之前就想转向idea, 但一直没转过来~~原因是团队的人提倡用开源eclipse.现在下定决心转向idea. 虽然, ...
- android studio 更改背景和设置字体大小
1,设置字体大小 2,设置背景主题