導航:首頁 > 源碼編譯 > 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編譯加速相關的資料

熱點內容
程序員那麼可愛陸漓和姜逸城吻戲 瀏覽:800
android獲取窗口大小 瀏覽:178
程序員為世界帶來的貢獻 瀏覽:214
程序員招聘自薦信 瀏覽:693
魔獸鍵位設置命令宏 瀏覽:645
程序員沒有目標了 瀏覽:828
搶答器c程序編程 瀏覽:703
什麼app可以自己玩 瀏覽:76
刨客app是什麼 瀏覽:963
cad輸入命令欄不見了 瀏覽:834
做故事集可以用什麼app 瀏覽:692
qq郵箱發送壓縮包 瀏覽:672
程序員桌面機器人 瀏覽:589
xjr快速開發平台源碼 瀏覽:159
java介面runnable 瀏覽:31
python怎麼運行web伺服器 瀏覽:349
notepad編程代碼 瀏覽:740
什麼安卓的毛病最少 瀏覽:611
hp的pjl設備訪問命令 瀏覽:635
googlewebp圖片壓縮技術 瀏覽:215