虚拟机工具和镜像链接: 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_msgs
cd "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 rospy
if __name__ == "__main__":
rospy.init_node("Hello")
rospy.loginfo("Hello World!!!!")
编写完成后,strl+s保存文件,并关闭文件
打开工程
功能包添加所需依赖项
catkin_install_python(PROGRAMS scripts/ros_py.py
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
跳转到工作空间内编译工程
catkin_make
#刷新环境
source ./devel/setup.bash
执行节点
#开启节点
roscore
#运行节点
rosrun ros_pkg ros_py.py