1. 安装配置
1.1 ROS安装(以ROS Noetic为例)
-
设置软件源 首先设置Ubuntu软件源,以确保能够安装来自各个源的软件包:
bash 复制代码
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' -
设置密钥 添加ROS的GPG密钥:
bash 复制代码
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 -
更新软件包索引
bash 复制代码
sudo apt update -
安装ROS 这里选择安装
ros-noetic-desktop-full,它包含了ROS的核心组件和常用工具:bash 复制代码
sudo apt install ros-noetic-desktop-full -
初始化rosdep
rosdep是一个ROS的命令行工具,用于安装ROS包的依赖:bash 复制代码
sudo rosdep initrosdep update -
设置ROS环境变量 每次打开新的终端时,都需要配置ROS环境变量。可以将以下命令添加到
~/.bashrc文件中:bash 复制代码
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrcsource ~/.bashrc -
安装rosinstall
rosinstall是一个常用的命令行工具,用于轻松下载多个ROS包的源代码树:bash 复制代码
sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
1.2 创建和初始化工作空间
-
创建一个catkin工作空间:
bash 复制代码
mkdir -p ~/catkin_ws/srccd ~/catkin_ws/catkin_make -
添加工作空间到ROS环境中:
bash 复制代码
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrcsource ~/.bashrc
2. ROS基本语法介绍
2.1 ROS文件结构
-
src/:存放源代码和包的目录。 -
CMakeLists.txt:构建系统配置文件。 -
package.xml:包的描述文件,包含依赖信息。
2.2 创建ROS包
-
使用
catkin_create_pkg命令创建一个新的ROS包,例如beginner_tutorials:bash 复制代码
cd ~/catkin_ws/srccatkin_create_pkg beginner_tutorials std_msgs rospy roscpp -
查看生成的文件:
-
CMakeLists.txt -
package.xml
-
2.3 编写简单的发布者(Publisher)和订阅者(Subscriber)
2.3.1 创建发布者节点
-
在
beginner_tutorials包的src目录下创建一个名为talker.cpp的文件:cpp 复制代码
#include "ros/ros.h"#include "std_msgs/String.h"#include <sstream>int main(int argc, char **argv){ros::init(argc, argv, "talker");ros::NodeHandle n;ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000);ros::Rate loop_rate(10);int count = 0;while (ros::ok()){std_msgs::String msg;std::stringstream ss;ss << "hello world " << count;msg.data = ss.str();ROS_INFO("%s", msg.data.c_str());chatter_pub.publish(msg);ros::spinOnce();loop_rate.sleep();++count;}return 0;} -
在
CMakeLists.txt中添加对talker.cpp的编译支持:cmake 复制代码
add_executable(talker src/talker.cpp)target_link_libraries(talker ${catkin_LIBRARIES})
2.3.2 创建订阅者节点
-
在
beginner_tutorials包的src目录下创建一个名为listener.cpp的文件:cpp 复制代码
#include "ros/ros.h"#include "std_msgs/String.h"void chatterCallback(const std_msgs::String::ConstPtr& msg){ROS_INFO("I heard: [%s]", msg->data.c_str());}int main(int argc, char **argv){ros::init(argc, argv, "listener");ros::NodeHandle n;ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback);ros::spin();return 0;} -
在
CMakeLists.txt中添加对listener.cpp的编译支持:cmake 复制代码
add_executable(listener src/listener.cpp)target_link_libraries(listener ${catkin_LIBRARIES})
2.4 编译和运行
-
编译代码:
bash 复制代码
cd ~/catkin_wscatkin_make -
运行ROS master节点:
bash 复制代码
roscore -
在一个新的终端中,运行发布者节点:
bash 复制代码
rosrun beginner_tutorials talker -
在另一个新的终端中,运行订阅者节点:
bash 复制代码
rosrun beginner_tutorials listener
3. 总结
以上介绍了在Linux系统中安装和配置ROS,以及如何创建一个简单的ROS包并编写基本的发布者和订阅者节点。这是学习ROS的起点,后续可以深入学习更多的ROS功能和高级应用。



6993

被折叠的 条评论
为什么被折叠?



