虛擬機工具和鏡像鏈接: https://pan.baidu.com/s/1HDmpbMESiUA2nj3qFVyFcw?pwd=8686
提取碼: 8686
ROS工作空間是一個用于組織和管理ROS(機器人操作系統)包的目錄結構,它通常包含多個子目錄,用于存放源碼、構建文件和安裝文件。工作空間的典型結構包括 src、build、devel 和 install 目錄,通過這些目錄,用戶可以方便地進行代碼開發、編譯和部署。
ROS功能包是ROS工作空間中的基本構建單元,每個功能包包含一組相關的ROS節點、庫、配置文件、啟動文件和其他資源,用于實現特定的功能或任務。功能包之間可以相互依賴和協作,用戶可以通過定義包的依賴關系和接口來構建復雜的機器人系統
(1)c++
#!/bin/bash#工作空間創建
sudo mkdir -p "ros_workspace_test/src"
sudo chmod -R 777 "ros_workspace_test"#編譯和架構ROS工作空間
cd "ros_workspace_test"
#編譯工作空間構建
catkin_make
#添加到系統環境變量
echo " source ~/ros_workspace_test/devel/setup.bash" >> ~/.bashrc#創建ROS功能包
cd "src"
#創建包名為“ros_pkg”的ROS功能包
catkin_create_pkg ros_pkg roscpp rospy std_msgscd "ros_pkg/src"
#創建源文件
gedit "ros_cpp.cpp"#刷新環境
source ./devel/setup.bash# 返回上級目錄
cd ..# 輸出成功消息
echo "文件夾 '已成功創建,并在其中創建了文件,并設置了文件權限為777。"
#文件加權
sudo chmod 777 ros_workspace_test_cpp.sh
#執行腳本
./ros_workspace_test_cpp.sh
編寫c++源文件并ctrl+s保存編輯
#include "ros/ros.h" //包含ros頭文件
int main(int argc, char *argv[]) //編寫ros的main函數
{
ros::init(argc, argv, "node_name_demo1"); //初始化ros節點
ROS_INFO("hello world!"); //輸出日志
return 0;
}
打開工作空間在構建過程中正確鏈接所需的依賴項
#添加編譯規則
add_executable(ros_cpp_node src/ros_cpp.cpp)
#添加目標鏈接庫
target_link_libraries(ros_cpp_node ${catkin_LIBRARIES})
終端跳轉到工作空間內編譯腳本
catkin_make#刷新環境
source ./devel/setup.bash
執行節點,右鍵鼠標垂直分割打開另一個終端
roscore:ROS 系統的中央節點
#開啟節點
roscore
#查看功能節點#跳轉到工作空間
cd ros_workspace_test
#運行節點
rosrun ros_pkg ros_cpp_node
(2)python
#!/bin/bash#工作空間創建
sudo mkdir -p "ros_workspace_test_py/src"
sudo chmod -R 777 "ros_workspace_test_py"#編譯和架構ROS工作空間
cd "ros_workspace_test_py"
#編譯工作空間構建
catkin_make
#添加到系統環境變量
echo " source ~/ros_workspace_test_py/devel/setup.bash" >> ~/.bashrc#創建ROS功能包
cd "src"
#創建包名為“ros_pkg”的ROS功能包
catkin_create_pkg ros_pkg1 roscpp rospy std_msgs#創建py腳本
cd "ros_pkg1"
sudo mkdir "scripts"
sudo chmod -R 777 "scripts"
cd "scripts"
#創建源文件
gedit "ros_py.py"
sudo chmod 777 "ros_py.py"
#刷新環境
source ./devel/setup.bash# 返回上級目錄
cd ..# 輸出成功消息
echo "文件夾 '已成功創建,并在其中創建了文件,并設置了文件權限為777。"
ctrl+s保存shell文件
打開終端加權shell腳本,并運行腳本
#加權
sudo chmod 777 ros_workspace_test_py.sh
#運行腳本
./ros_workspace_test_py.sh
編寫python腳本文件
#! /usr/bin/env python
# -*- coding: utf-8 -*-"""Python 版 HelloWorld"""
import rospyif __name__ == "__main__":rospy.init_node("Hello")rospy.loginfo("Hello World!!!!")
編寫完成后,strl+s保存文件,并關閉文件
打開工程
功能包添加所需依賴項
catkin_install_python(PROGRAMS scripts/ros_py.pyDESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
跳轉到工作空間內編譯工程
catkin_make#刷新環境
source ./devel/setup.bash
執行節點
#開啟節點
roscore
#運行節點
rosrun ros_pkg ros_py.py