导航:首页 > 源码编译 > ros编译加速

ros编译加速

发布时间:2023-10-03 10:21:42

Ⅰ GDB ROS调试

ROS中用到第三方库,在编译第三方库的时候,加上 -g 选项,以供调用该库时调试。

在编译ROS包的时候,使用如下命令编译:

catkin_make -DCMAKE_BUILD_TYPE=Debug  

GDB启动应用

rosrun --prefix 'gdb -ex run --args'  package   node  

之后就可以正常使用GDB命令来调试了,因为第三方库编译加了 -g 选项,所以可以进入调用库中的函数进行调试。

Ⅱ ROS_安装一个第三方仿真软件包——机器人模拟世界




安装依赖:

过程图:

注意:以上命令非常重要,缺少依赖将导致软件包无法正常编译和运行。
在开始编译之前,需要确保Gazebo在7.0版本以上

接着回到catkin_ws下编译:

过程图:

过程图:

首先需要解决一个问题,不然待会儿运行时会闪退:

下面是运行过程图(是的,一开始可能会遇到一个报错 [robot_spawn.launch] is neither a launch file in package [robot_sim_demo] nor is [robot_sim_demo] a launch file name The traceback for the exception was written to the log file ,然而下面的过程图已经是从报错到解决报错成功运行的过程了):

再打开一个终端,输入以下命令,用键盘控制机器人移动,聚焦控制程序窗口,按下i、j、l等按键,控制机器人移动:

过程图如下,记得运行前要刷新环境,或者用上面的方法把刷新命令添加到脚本:

呐,对比上图,我把它移到了简介牌的右边:

Ⅲ 如何使用 sdk交叉编译ros

使用ros_qtc_plugin插件新建项目

使用插件新建项目Import ROS
Workspace选项仅新建工作空间导入现工作空间新建文件ROS面Package、Basic
Node等选项创建package节点、launch文件、urdf文件等
现我创建新catkin工作空间,并且面创建package

1、新建项目

文件——新建文件或项目选择Import ROS Workspace——choose图

填写catkin工作空间名字位置图

我Namecatkin工作空间文件夹名字相同(同)名catkin_new选择浏览——创建文件夹创建名catkin_new文件夹图按车再选择打

现框询问新建工作空间未初始化否执行初始化我选择yes
相于执行catkin_init_workspace命令使工作空间初始化

点击Generate Project File再点击步
项目管理步骤配置版本控制系统我选择完图

建工作空间catkin_new空图

2、创建package

接我工作空间创建新package
catkin_new面src右键单击选择添加新文件图

选择ROS——package——choose

填写package名字test1
填写作者(Authors)维护者(Maintainers)Qt环境部没配置文支持请要用文否则新建package或者新建package面package.xml空文件
DependenciesCatkin栏填写依赖通用C++写节点需要添加roscpp依赖


点击完

3、添加新节点

目前package空没任何节点
我test1src文件夹右键单击选择添加新文件

选择ROS——Basic Node——choose创建节点新建.cpp文件

节点名称写node1则名node1.cpp源文件

用ROS模板新建node1.cpp源文件图自Hello World程序

4、编译节点

让编译执行文件我需要编辑test1makefile图
test1CMakeLists.txt加面几行意思node1.cpp编译名node1节点
add_executable(node1 src/node1.cpp)
target_link_libraries(node1
${catkin_LIBRARIES}
)

Ⅳ c++的程序在ros下怎么运行

1 先建立工作空间~/catkin_ws
2 在工作空间~/catkin_ws下创建包pkg目录second
好处是通过创建包自动生成package.xml和CMakeLists.txt
3 在second目录下创建hello.cpp源代码文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~
eagle:~/catkin_ws$ cd src
eagle:~/catkin_ws/src$ tree second/
second/
├── CMakeLists.txt
├── package.xml
└── src
└── hello.cpp
1 directory, 3 files

4 编写hello.cpp文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#include <ros/ros.h>
int main(int argc, char **argv) {
ros::init(argc, argv, "helloros1234444");
ros::NodeHandle n;
ROS_INFO("Hello, ROS!");
ros::spinOnce();
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5 修改编译makefile文件 CMakeLists.txt
~~~~~~~~~~~~~~~~~~
cmake_minimum_required(VERSION 2.8.3)
project(simple_examples)
find_package(catkin REQUIRED COMPONENTS roscpp)
catkin_package()
include_directories(include $catkin_INCLUDE_DIRS)
add_executable(hello hello.cpp)
target_link_libraries(hello ${catkin_LIBRARIES})
~~~~~~~~~~~~~~~~~~

6 回到~/catkin_ws编译程序
liao@liao-eagle:~/catkin_ws$ catkin_make
Base path: /home/liao/catkin_ws
Source space: /home/liao/catkin_ws/src
Build space: /home/liao/catkin_ws/build
Devel space: /home/liao/catkin_ws/devel
Install space: /home/liao/catkin_ws/install
####
#### Running command: "make cmake_check_build_system" in "/home/liao/catkin_ws/build"
####
####
#### Running command: "make -j2 -l2" in "/home/liao/catkin_ws/build"
####
Scanning dependencies of target hello
[100%] Building CXX object second/CMakeFiles/hello.dir/src/hello.cpp.o
Linking CXX executable /home/liao/catkin_ws/devel/lib/second/hello
[100%] Built target hello
liao@liao-eagle:~/catkin_ws$

7 测试c++程序
7.1一个终端里运行roscore
7.2 另外一个终端里运行 rosrun second hello
liao@liao-eagle:~/catkin_ws$ rosrun second hello
[ INFO] [1442208641.400826666]: Hello, ROS!
liao@liao-eagle:~/catkin_ws$ rospack find second
/home/liao/catkin_ws/src/second
liao@liao-eagle:~/catkin_ws$

Ⅳ 机器人操作系统ROS--简介(一)

网址: http://www.ros.org/

ROS (机器人操作系统,Robot Operating System),是专为机器人软件开发所设计出来的一套电脑[操作系统]架构。它是一个开源的元级操作系统(后操作系统),提供类似于操作系统的服务,包括硬件抽象描述、底层驱动程序管理、共用功能的执行、程序间消息传递、程序发行包管理,它也提供一些工具和库用于获取、建立、编写和执行多机融合的程序。
ROS究竟为何物?
2007年Morgan Quigley,Eric Berger和Andrew Ng发布了一纸有关STAIR的论文,讲述了用Switchyard可以在各软件程序之间传递信息,可以帮助机器人有效的完成一芦兄些复杂的任务。这个项目是斯坦福大学和机器人技术公司Willow Garage的个人机器人项目Personal Robots Program合作进行的,2008年后完全由这家公司推广,相关发布文件称Switchyard可以让机器人编译模块化,而且不需要重新设计框架,ROS操作系统也就随之问世了,2012年ROS团队成立了一个非盈利组织(OSRF),经过这几年的发展ROS从最初的无人问津的小众操作系统,到现在已是主流的机器人操作系统之一铅哗凯。

ROS的运行架构是一种使用ROS通信模块实现模块间P2P的松耦合的网络连接的处理架构,它执行若干种类型的通讯,包括基于服务的同步RPC(远程过程调用)通讯、基于Topic的异步数据流通讯,还有参数服务器上的数据存储。但是ROS本身并没有实时性。
ROS的主要特点可以归纳为以下几条槐唤:
(1)点对点设计

Ⅵ 如何使用Qt插件在Qt中进行ROS开发

、前言
本文介绍一种Qt下进行ROS开发的完美方案,使用的是ros-instrial的Levi-Armstrong在2015年12月开发的一个Qt插件ros_qtc_plugin,这个插件使得Qt“新建项目”和“新建文件”选项中出现ROS的相关选项,让我们可以直接在Qt下创建、编译、调试ROS项目,也可以直接在Qt项目中添加ROS的package、urdf、launch,感谢Levi-Armstrong。目前这个插件还在不断完善,有问题或者其他功能建议可以在ros_qtc_plugin的项目主页的讨论区提出。
本文是用的操作系统是ubuntu kylin 14.04中文版,ROS版本是indigo,Qt版本是Qt5.5.1(Qt Creator 4.0.3)
本文地址:http://blog.csdn.net/u013453604/article/details/52186375
视频教程:ros_qtc_plugin插件作者Levi-Armstrong录制的插件使用教程
参考:

Ⅶ ROS 工作空间、package 及 catkin 编译系统

本文内容都可以在 ROS 官网 wiki ( http://wiki.ros.org/ROS/Tutorials )中找到,作者只是根据自己的理解重新阐述了其中的某些内容,或许能帮助读者更好的理解 ROS 系统中的一些概念。首先保证 ROS 已经正确安装了。安装方式可以参考 本博客的另一篇文章 。

简单地说,ROS workspace (工作空间)就是统一存放 ROS 文件的地方,比如一个项目的所有 ROS 文件最好都放在一个 workspace 中,便于统一管理、编译和调用。

catkin 是目前 ROS 的编译系统,自 ROS Groovy 版本开始使用,取代了之前的 rosbuild 编译系统。

ROS workspace 中可以包含若干 ROS package,每个 package 内部包含实现某些特定功能的文件。

其中,~ 表示当前用户的 home 目录, -p (parent)参数可以创建某个文件夹和它的父文件夹,也就是两层的路径。这里 workspace 的名字是 catkin_ws,这个名字可以按照自己项目的内容设定,但是 src 这个文件夹的名字是固定的。

初始化工作空间。这里 src 就是以后存放 ROS 源文件的地方。上述命令之后,会在 src 目录下产生 CMakeLists.txt 文件,这实际上是一个链接到ROS 安装目录下的 /opt/ros/kinetic/share/catkin/cmake/toplevel.cmake 一个超链接文件,对工作空间做了一些初始设置。不用去管它,也不要随便修改它。

会一次性编译 src 文件夹中的所有源文件,同时生成 devel 和 build 两个文件夹。

实际上,catkin_make 这个命令并没有特别神奇的地方,它只是把一系列基本的编译命令整合在了一起,一个 catkin_make 命令相当于如下的一系列命令:

如果要深入研究 catkin_make 编译方式,可以参考 这篇文章 。

将 workspace 的信息载入系统环境变量。
这种方法载入的信息只对当前 terminal 有效。新开一个 terminal 就无效了。如果要对每个 terminal 都有效,可以将上述命令写入用户 home 路径下的 .bashrc 文件中:

注意,.bashrc 文件是隐藏文件,在 home 路径下通过命令

命令可以看到。

还要注意, >> 是将 echo 后边的内容写入文件的尾部,如果用 > 则要覆盖原文件,一定不要搞错。

编译之后,由于我们只是一个空的 workspace,还没有任何 package,所以没有什么实质性的东西,只是告诉系统这里有个 ROS workspace,算是在系统中注册了一下。

package 是组织 ROS 文件的基本单元,一般来说,每个 package 完成一些特定功能。

package 中至少包含两个文件: package.xml 和 CMakeLists.txt.

package 在 workspace 中的存放结构一般如下:

也可采用其他的结构,但是要注意 package 之间不能嵌套,也就是在一个 package 中,不能再创建另一个 package ,所有 package 都必须是相对独立的目录。

用 catkin 创建 package 的过程很简单,用如下命令:

其中 depend 为依赖的其他 package。这样创建之后,package 中的 CMakeLists.txt 和 package.xml 中会体现出这种依赖关系。创建时也可以不指明依赖关系,在后续编译 package 的时候再补上。

创建好了 package,就可以使用 rospack 相关的命令进行查找、进入等操作了。不过,有时会有延迟,可以用命令

或者

查找、更新一下。

上述方式创建了 ROS package,然后就可以在其中编写 源文件了,可用的语言主要是 c++, python,我们现在的项目中还用到了 Julia。这里就不再细述具体的源文件编写过程了。

创建好了源文件,如果是 c++ 编写的,要编译一下。这里要设置好 package.xml 和 CMakeLists.txt 中的信息。如果依赖的 package 已经设置好了,就不需要修改 package.xml 了,只需要在 CMakeLists.txt 中添加源文件对应的编译信息如下:

实际上在 CMakeLists.txt 中有非常全面的模板,很容易找到在哪里添加这些编译文件信息。

设置好了编译信息,就可以回到 workspace 的 src 所在文件夹中,用如下命令编译:

该命令可以一次性编译 src 中的所有 package。如果只想编译指定的 package,可以用如下命令:

但是,这个命令似乎有时不太管用,根据我们的实际经验,最有效的方法是用如下的 whitelist 命令:

这样就是只编译 package1 和 package2。但是要注意,该命令中的 whitelist 具有记忆功能。用完该命令之后,下次如果要编译 src 中所有的 package,如果只用 catkin_make,则还是只编译 whitelist 中的 package,需要用如下命令清除一下 whitelist

以上就是我们使用 ROS 中的一些基本操作,希望其中的一些内容对读者有帮助。

Written by SH

Revised by QP

Ⅷ 如何编写ros的python程序

ROS Indigobeginner_Tutorials-10编写ROS话题版的Hello World程序(Python版)

我使用的虚拟机软件:VMware Workstation 11
使用的Ubuntu系统:Ubuntu 14.04.4 LTS
ROS版本:ROS Indigo

1. 前言 :

Hello world程序,在我们编程界,代表学习某种语言编写的第一个程序。对于ROS机器人操作系统来说,这个Hello World程序就是 : 写一个简单的消息发布器(发送) 和 订阅器(接收)。

2. 准备工作 :

C++的程序都会存放在每个程序包的src文件夹里。Python不同,Python程序都存放在scripts文件夹中, 反正意思都是源文件包。
Step 1 .所以,先在beginner_tutorials软件包中创建一个scripts文件夹:

$ roscd beginner_tutorials$ mkdir scripts$ cd scripts123

3. 编写消息发布器节点程序:

如果你懒得去写的话,你可以使用wget命令, 在github上获取一个talker.py源代码。如何获取呢 ?
Step 2 .开一个终端,输入下面的命令就可以获取talker.py:

$ wget

-devel/rospy_tutorials/001_talker_listener/talker.py$ ls
talker.py123

但是我建议你亲自动手,写一写:手动创建一个talker.py文件在/scripys文件夹里:

$ roscd beginner_tutorials/scripts$ gedit talker.py12

将这上面链接里的代码手动输入到talker.py文件中。(我就不将代码贴上来了)

下面我来讲解一下代码:

这些足以说明,hello_world_topic.launch启动脚本文件,启动成功。

总结:发布器和订阅器是很简单的, 就是简单的发布一个 自定义的话题。

我之前使用说过:节点之间通讯的方式有两种 : 话题(rostopic) 和 服务(rosservice)

所以,接下来,我们会讲:使用ROS服务来完成ROS版Hello World程序的例子。但是在这之前,我们需要学一学:如何创建自定义的ROS消息和ROS服务,以便ROS服务版的Hello World程序的编写。
所以下一讲,我们来学习:如何创建自定义的ROS消息和ROS服务。

阅读全文

与ros编译加速相关的资料

热点内容
安卓快手下载怎么没有下载到本地 浏览:228
怎么在安卓手机登绘旅人 浏览:404
桌面文件全部加密 浏览:401
6s怎么外接u盘需要什么app 浏览:131
linux查看文件权限命令 浏览:685
安卓手游存档怎么用 浏览:761
linuxyum安装ftp 浏览:690
村委会主任可以推行政命令吗 浏览:102
电脑文件夹封面多张图片 浏览:263
网吧总服务器叫什么 浏览:922
多个算法解决同一个问题 浏览:455
小车解压后我的购车发票呢 浏览:977
做app开发用什么云服务器 浏览:177
linux网卡子接口 浏览:985
21岁职高毕业学程序员怎么学 浏览:321
vs如何对单个文件编译 浏览:6
为什么有的电脑不能安装python 浏览:75
金蝶迷你版加密狗检测到过期 浏览:186
硬件描述语言编译结果 浏览:655
程序员逆天改命 浏览:19