国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ROS入門-第 1 章 ROS概述與環(huán)境搭建

這篇具有很好參考價(jià)值的文章主要介紹了ROS入門-第 1 章 ROS概述與環(huán)境搭建。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

第 1 章 ROS概述與環(huán)境搭建

1.1 ROS簡(jiǎn)介

1.1.1 ROS概念

1.1.2 ROS設(shè)計(jì)目標(biāo)

1.1.3 ROS發(fā)展歷程

1.3 ROS快速體驗(yàn)

1.3.1 HelloWorld實(shí)現(xiàn)簡(jiǎn)介

1.3.2 HelloWorld(C++版)

步驟 1:創(chuàng)建工作空間

步驟 2:創(chuàng)建發(fā)布者節(jié)點(diǎn)

步驟 3:創(chuàng)建訂閱者節(jié)點(diǎn)

步驟4:C++版CMakeLists.txt配置

步驟 5:編譯和運(yùn)行

1.3.3 HelloWorld(Python版)

步驟 1:創(chuàng)建工作空間

步驟 2:創(chuàng)建發(fā)布者節(jié)點(diǎn)

步驟 3:創(chuàng)建訂閱者節(jié)點(diǎn)

步驟4:Python版CMakeLists.txt配置

步驟 5:編譯和運(yùn)行


第 1 章 ROS概述與環(huán)境搭建

1.1 ROS簡(jiǎn)介

ROS(Robot Operating System)是一個(gè)開源的機(jī)器人操作系統(tǒng),旨在為機(jī)器人開發(fā)提供一套強(qiáng)大的工具和框架。它采用分布式計(jì)算模型,允許開發(fā)者構(gòu)建復(fù)雜的機(jī)器人應(yīng)用程序。ROS提供了一系列的庫(kù)、工具和約定,用于簡(jiǎn)化機(jī)器人軟件的開發(fā)、測(cè)試和部署。

1.1.1 ROS概念
  • 節(jié)點(diǎn)(Nodes):ROS中的基本執(zhí)行單元,每個(gè)節(jié)點(diǎn)都是一個(gè)獨(dú)立的進(jìn)程,可以執(zhí)行特定的任務(wù)。
  • 話題(Topics):節(jié)點(diǎn)通過話題進(jìn)行異步通信,一個(gè)節(jié)點(diǎn)可以發(fā)布消息到話題,其他節(jié)點(diǎn)可以訂閱來(lái)接收消息。
  • 服務(wù)(Services):節(jié)點(diǎn)可以提供服務(wù),并在其他節(jié)點(diǎn)請(qǐng)求時(shí)響應(yīng)特定的任務(wù)。
  • 參數(shù)(Parameters):ROS節(jié)點(diǎn)可以使用參數(shù)來(lái)存儲(chǔ)配置信息,這些參數(shù)可以在運(yùn)行時(shí)進(jìn)行修改。
1.1.2 ROS設(shè)計(jì)目標(biāo)

ROS的設(shè)計(jì)目標(biāo)著重于以下幾點(diǎn):

  • 模塊化:ROS鼓勵(lì)開發(fā)者將系統(tǒng)拆分為多個(gè)模塊,每個(gè)模塊都是一個(gè)獨(dú)立的節(jié)點(diǎn),可以并行開發(fā)和測(cè)試。
  • 重用性:ROS支持代碼和功能的重用,這有助于加快開發(fā)速度。
  • 工具豐富:ROS提供了一系列的工具,包括可視化工具、調(diào)試工具、仿真工具等,用于開發(fā)和調(diào)試機(jī)器人應(yīng)用程序。
  • 分布式計(jì)算:ROS采用分布式計(jì)算模型,允許節(jié)點(diǎn)在不同的計(jì)算機(jī)上運(yùn)行,通過網(wǎng)絡(luò)通信進(jìn)行交互。
1.1.3 ROS發(fā)展歷程

ROS從最初的構(gòu)想逐步發(fā)展為一個(gè)廣泛應(yīng)用的機(jī)器人操作系統(tǒng):

  • 初期階段:ROS最早由斯坦福大學(xué)的人工智能實(shí)驗(yàn)室開發(fā),作為一個(gè)實(shí)驗(yàn)性項(xiàng)目。
  • 開源發(fā)布:2007年,ROS作為開源項(xiàng)目發(fā)布,逐漸吸引了全球的機(jī)器人開發(fā)者和研究人員。
  • 發(fā)展壯大:隨著時(shí)間的推移,ROS不斷增加了新的功能、庫(kù)和工具,廣泛應(yīng)用于各種機(jī)器人領(lǐng)域,如工業(yè)、服務(wù)、農(nóng)業(yè)等。
  • 版本迭代:ROS的不同版本(如Kinetic、Melodic、Noetic等)推出,不斷引入新特性,改進(jìn)性能,提高穩(wěn)定性。

1.3 ROS快速體驗(yàn)

在本章中,我們將通過一個(gè)簡(jiǎn)單的HelloWorld例子來(lái)體驗(yàn)ROS的基本功能和流程。我們將分別使用C++和Python來(lái)實(shí)現(xiàn)HelloWorld示例,以展示ROS在不同編程語(yǔ)言下的使用方法。

1.3.1 HelloWorld實(shí)現(xiàn)簡(jiǎn)介

HelloWorld示例是一個(gè)經(jīng)典的起始點(diǎn),它幫助我們了解如何創(chuàng)建ROS節(jié)點(diǎn)、發(fā)布消息到話題以及訂閱話題來(lái)接收消息。我們將創(chuàng)建兩個(gè)節(jié)點(diǎn),一個(gè)發(fā)布者節(jié)點(diǎn)負(fù)責(zé)發(fā)布消息,一個(gè)訂閱者節(jié)點(diǎn)負(fù)責(zé)接收消息。

1.3.2 HelloWorld(C++版)

步驟 1:創(chuàng)建工作空間

首先,在您的工作目錄中創(chuàng)建一個(gè)新的ROS工作空間:

mkdir -p ~/ros_hello_world_ws/src
cd ~/ros_hello_world_ws/src
catkin_init_workspace
cd ..
catkin_make
步驟 2:創(chuàng)建發(fā)布者節(jié)點(diǎn)

src文件夾下創(chuàng)建一個(gè)新的包并切換到該包:

cd ~/ros_hello_world_ws/src
catkin_create_pkg hello_world_cpp roscpp std_msgs

src文件夾中創(chuàng)建一個(gè)新的C++文件,例如publisher.cpp,并編寫發(fā)布者節(jié)點(diǎn)的代碼:

#include <ros/ros.h>
#include <std_msgs/String.h>

int main(int argc, char **argv) {
    ros::init(argc, argv, "hello_world_cpp_publisher");
    ros::NodeHandle nh;
    ros::Publisher pub = nh.advertise<std_msgs::String>("hello_topic", 10);

    ros::Rate rate(1);

    while (ros::ok()) {
        std_msgs::String msg;
        msg.data = "Hello, ROS from C++!";
        pub.publish(msg);

        ros::spinOnce();
        rate.sleep();
    }

    return 0;
}
步驟 3:創(chuàng)建訂閱者節(jié)點(diǎn)

在同一包中創(chuàng)建另一個(gè)C++文件,例如subscriber.cpp,并編寫訂閱者節(jié)點(diǎn)的代碼:

#include <ros/ros.h>
#include <std_msgs/String.h>

void messageCallback(const std_msgs::String::ConstPtr &msg) {
    ROS_INFO("Received: %s", msg->data.c_str());
}

int main(int argc, char **argv) {
    ros::init(argc, argv, "hello_world_cpp_subscriber");
    ros::NodeHandle nh;
    ros::Subscriber sub = nh.subscribe("hello_topic", 10, messageCallback);

    ros::spin();

    return 0;
}
步驟4:C++版CMakeLists.txt配置

在C++版的示例中,假設(shè)您的工作空間位于~/ros_hello_world_ws,ROS軟件包的名稱是hello_world_cpp。以下是CMakeLists.txt文件的配置:

cmake_minimum_required(VERSION 2.8.3)
project(hello_world_cpp)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  std_msgs
)

catkin_package(
  CATKIN_DEPENDS roscpp std_msgs
)

include_directories(
  include
  ${catkin_INCLUDE_DIRS}
)

add_executable(publisher_node src/publisher.cpp)
target_link_libraries(publisher_node ${catkin_LIBRARIES})

add_executable(subscriber_node src/subscriber.cpp)
target_link_libraries(subscriber_node ${catkin_LIBRARIES})
步驟 5:編譯和運(yùn)行

回到工作空間的根目錄,編譯工作空間并運(yùn)行發(fā)布者和訂閱者節(jié)點(diǎn):

cd ~/ros_hello_world_ws
catkin_make
source devel/setup.bash

# 啟動(dòng)發(fā)布者節(jié)點(diǎn)
rosrun hello_world_cpp publisher

# 在新的終端中啟動(dòng)訂閱者節(jié)點(diǎn)
rosrun hello_world_cpp subscriber

1.3.3 HelloWorld(Python版)

步驟 1:創(chuàng)建工作空間

同樣,在您的工作目錄中創(chuàng)建一個(gè)新的ROS工作空間(如果您之前沒有創(chuàng)建):

mkdir -p ~/ros_hello_world_ws/src
cd ~/ros_hello_world_ws/src
catkin_init_workspace
cd ..
catkin_make
步驟 2:創(chuàng)建發(fā)布者節(jié)點(diǎn)

src文件夾下創(chuàng)建一個(gè)新的包并切換到該包:

cd ~/ros_hello_world_ws/src
catkin_create_pkg hello_world_py rospy std_msgs

src文件夾中創(chuàng)建一個(gè)新的Python文件,例如publisher.py,并編寫發(fā)布者節(jié)點(diǎn)的代碼:

#!/usr/bin/env python

import rospy
from std_msgs.msg import String

def publisher():
    pub = rospy.Publisher('hello_topic', String, queue_size=10)
    rospy.init_node('hello_world_py_publisher', anonymous=True)
    rate = rospy.Rate(1)

    while not rospy.is_shutdown():
        msg = "Hello, ROS from Python!"
        rospy.loginfo(msg)
        pub.publish(msg)
        rate.sleep()

if __name__ == '__main__':
    try:
        publisher()
    except rospy.ROSInterruptException:
        pass
步驟 3:創(chuàng)建訂閱者節(jié)點(diǎn)

在同一包中創(chuàng)建另一個(gè)Python文件,例如subscriber.py,并編寫訂閱者節(jié)點(diǎn)的代碼:

#!/usr/bin/env python

import rospy
from std_msgs.msg import String

def callback(data):
    rospy.loginfo("Received: %s", data.data)

def subscriber():
    rospy.init_node('hello_world_py_subscriber', anonymous=True)
    rospy.Subscriber('hello_topic', String, callback)
    rospy.spin()

if __name__ == '__main__':
    subscriber()
步驟4:Python版CMakeLists.txt配置

在Python版的示例中,假設(shè)您的工作空間位于~/ros_hello_world_ws,ROS軟件包的名稱是hello_world_py。以下是CMakeLists.txt文件的配置:

cmake_minimum_required(VERSION 2.8.3)
project(hello_world_py)

find_package(catkin REQUIRED COMPONENTS
  rospy
  std_msgs
)

catkin_package(
  CATKIN_DEPENDS rospy std_msgs
)

include_directories(
  include
  ${catkin_INCLUDE_DIRS}
)

catkin_install_python(PROGRAMS
  scripts/publisher.py
  scripts/subscriber.py
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
步驟 5:編譯和運(yùn)行

回到工作空間的根目錄,編譯工作空間并運(yùn)行發(fā)布者和訂閱者節(jié)點(diǎn):

cd ~/ros_hello_world_ws
catkin_make
source devel/setup.bash

# 啟動(dòng)發(fā)布者節(jié)點(diǎn)
rosrun hello_world_py publisher.py

# 在新的終端中啟動(dòng)訂閱者節(jié)點(diǎn)
rosrun hello_world_py subscriber.py

ROS入門-第 1 章 ROS概述與環(huán)境搭建,ROS入門,c++,ros,python

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-641107.html

到了這里,關(guān)于ROS入門-第 1 章 ROS概述與環(huán)境搭建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ROS第 2 課 ROS 系統(tǒng)安裝和環(huán)境搭建

    ROS第 2 課 ROS 系統(tǒng)安裝和環(huán)境搭建

    ??本節(jié)課適用于Jetson Nano 官方鏡像下從0 開始搭建ROS 環(huán)境,這里提供兩種ROS 系 統(tǒng)的安裝方式,“方法一”為一鍵安裝,只需要一條指令即可自動(dòng)安裝整個(gè)ROS 系統(tǒng);“方 法二”則需要設(shè)置下載源配置、設(shè)置環(huán)境變量等步驟。 ??如果你是初次接觸ROS 的用戶,建議選擇“方

    2024年01月17日
    瀏覽(18)
  • 【ros2】ros2環(huán)境安裝與基礎(chǔ)入門

    【ros2】ros2環(huán)境安裝與基礎(chǔ)入門

    ?? ★,° :.☆( ̄▽ ̄)/$: .°★ ?? 這篇文章主要介紹ros2環(huán)境安裝與基礎(chǔ)入門。 學(xué)其所用,用其所學(xué)?!?jiǎn)⒊?歡迎來(lái)到我的博客,一起學(xué)習(xí),共同進(jìn)步。 喜歡的朋友可以關(guān)注一下,下次更新不迷路?? ROS 2 (Robot Operating System 2)是一個(gè)開源的機(jī)器人操作系統(tǒng),它是ROS(Robot

    2024年02月09日
    瀏覽(23)
  • 【ROS機(jī)器人入門】1.1 ROS概念及環(huán)境配置

    【ROS機(jī)器人入門】1.1 ROS概念及環(huán)境配置

    ROS=Plumbing+Tools+Capabilities+Ecosystem 代碼復(fù)用 :ROS的目標(biāo)不是成為具有最多功能的框架,ROS的主要目標(biāo)是支持機(jī)器人技術(shù)研發(fā)中的代碼 重用。 分布式 :ROS是進(jìn)程(也稱為Nodes)的分布式框架,ROS中的進(jìn)程可分布于不同主機(jī),不同主機(jī)協(xié)同工 作,從而分散計(jì)算壓力 。 松耦合 :ROS中功

    2023年04月22日
    瀏覽(20)
  • MATLAB與ROS聯(lián)合仿真——ROS環(huán)境搭建及相關(guān)準(zhǔn)備工作(下)

    MATLAB與ROS聯(lián)合仿真——ROS環(huán)境搭建及相關(guān)準(zhǔn)備工作(下)

    ?? 本篇文章主要介紹在安裝完ROS后,在進(jìn)行MATLAB與ROS聯(lián)合仿真之前,需要進(jìn)行的一些環(huán)境搭建以及準(zhǔn)備工作,主要分為 創(chuàng)建ROS工作空間及功能包、必備功能包安裝、安裝Gazebo11、導(dǎo)入實(shí)驗(yàn)功能包至工作空間、安裝Visual_Studio_Code(選做)、常用便捷工具安裝(選做) 六部分。

    2024年02月16日
    瀏覽(26)
  • vscode+ros開發(fā)環(huán)境搭建

    vscode+ros開發(fā)環(huán)境搭建

    目錄 介紹?? 前提 vscode安裝 ?vscode插件安裝 ? 工作空間準(zhǔn)備 ? ?打開vscode ? ?創(chuàng)建catkin包? 編寫cpp代碼 編譯 運(yùn)行 ? ? 啟動(dòng)ros服務(wù) ? ? 監(jiān)聽話題 ? ? 啟動(dòng)ros測(cè)試 ? ros開發(fā)是機(jī)器人開發(fā)中必不可少的工作,語(yǔ)言選擇可以是c++,也可以是python。工具的話,不能像windows系統(tǒng)那樣豐

    2024年02月11日
    瀏覽(20)
  • Qt + ROS 開發(fā)環(huán)境搭建

    安裝配置 本文是用的操作系統(tǒng)是 ubuntu 16.04 中文版, ROS 版本是 kinetic, Qt 版本是 Qt5.9.0(Qt Creator4.3.1) 1、 下載.run 安裝包 操作系統(tǒng): Ubuntu16.04 軟件 QT5.9.1 下載地址: http://download.qt.io/official_releases/qt/5.9/5.9.1/qt-opensource-linux-x64-5.9.1.run 2、 安裝過程 3、 安裝 ros_qtc_plugin(apt-get 安裝

    2023年04月08日
    瀏覽(18)
  • window10環(huán)境下搭建ros

    window10環(huán)境下搭建ros

    vs2022下載地址 chocolatey是windows下的一個(gè)包管理工具,下載ros相關(guān)的包都采用這個(gè)工具。 安裝過程:在菜單欄中搜索 x64 Native Tools Command Prompt for VS 2022 (2),然后右擊選擇管理員運(yùn)行,輸入: 確保您在C盤中有10GB的可用空間,用于安裝ROS系統(tǒng)。 還是以管理員方式打開 x64 Native T

    2024年02月05日
    瀏覽(32)
  • ROS2入門與實(shí)踐--1(ROS2的安裝與環(huán)境測(cè)試)

    ROS2入門與實(shí)踐--1(ROS2的安裝與環(huán)境測(cè)試)

    對(duì)于VMware虛擬機(jī)的安裝教程請(qǐng)看這篇文章:VMware虛擬機(jī)安裝 對(duì)于20.04版本的Ubuntu操作系統(tǒng)安裝教程請(qǐng)看這篇文章:Ubuntu-20.04系統(tǒng)安裝 對(duì)于22.04版本的Ubuntu操作系統(tǒng)安裝教程請(qǐng)看這篇文章:Ubuntu-22.04系統(tǒng)安裝 1.在ROS2官方的文檔中,安裝ROS2之前需要首先檢查操作系統(tǒng)語(yǔ)言環(huán)境 官

    2024年02月15日
    瀏覽(45)
  • ubuntu環(huán)境上搭建ros2

    ubuntu環(huán)境上搭建ros2

    首先需要確保安裝環(huán)境支持 UTF-8 格式 設(shè)置你的sources.list,讓您的計(jì)算機(jī)以接受來(lái)自 packages.ros.org 的軟件 設(shè)置您的密鑰 如果密鑰設(shè)置失敗,提示gdp:找不到有效的OpenPGP數(shù)據(jù),那就從另一個(gè)網(wǎng)址獲取密鑰,直接執(zhí)行下面的指令就可以了 更新列表: 安裝 ROS2 桌面版,包括 ROS, R

    2024年02月13日
    瀏覽(18)
  • 【ROS2 入門】虛擬機(jī)環(huán)境 ubuntu 18.04 ROS2 安裝

    【ROS2 入門】虛擬機(jī)環(huán)境 ubuntu 18.04 ROS2 安裝

    ?????????大家好,我是虎哥,從今天開始,我將花一段時(shí)間,開始將自己從ROS1切換到ROS2,做為有別于ROS1的版本,做了很多更新和改變,我還是很期待自己逐步去探索ROS2中的驚喜。在安裝過程中我也遇到的一些坑,我自己也嘗試填了一部分,未必是全部,但是相信集合大

    2024年01月17日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包