ROS安装配置与语法介绍

1. 安装配置
1.1 ROS安装(以ROS Noetic为例)
  1. 设置软件源 首先设置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'
  2. 设置密钥 添加ROS的GPG密钥:

    bash
    复制代码
    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  3. 更新软件包索引

    bash
    复制代码
    sudo apt update
  4. 安装ROS 这里选择安装ros-noetic-desktop-full,它包含了ROS的核心组件和常用工具:

    bash
    复制代码
    sudo apt install ros-noetic-desktop-full
  5. 初始化rosdep rosdep是一个ROS的命令行工具,用于安装ROS包的依赖:

    bash
    复制代码
    sudo rosdep init
    rosdep update
  6. 设置ROS环境变量 每次打开新的终端时,都需要配置ROS环境变量。可以将以下命令添加到~/.bashrc文件中:

    bash
    复制代码
    echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
    source ~/.bashrc
  7. 安装rosinstall rosinstall是一个常用的命令行工具,用于轻松下载多个ROS包的源代码树:

    bash
    复制代码
    sudo apt install python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
1.2 创建和初始化工作空间
  1. 创建一个catkin工作空间:

    bash
    复制代码
    mkdir -p ~/catkin_ws/src
    cd ~/catkin_ws/
    catkin_make
  2. 添加工作空间到ROS环境中:

    bash
    复制代码
    echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
    source ~/.bashrc
2. ROS基本语法介绍
2.1 ROS文件结构
  • src/:存放源代码和包的目录。

  • CMakeLists.txt:构建系统配置文件。

  • package.xml:包的描述文件,包含依赖信息。

2.2 创建ROS包
  1. 使用catkin_create_pkg命令创建一个新的ROS包,例如beginner_tutorials

    bash
    复制代码
    cd ~/catkin_ws/src
    catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
  2. 查看生成的文件:

    • CMakeLists.txt

    • package.xml

2.3 编写简单的发布者(Publisher)和订阅者(Subscriber)
2.3.1 创建发布者节点
  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;
    }
  2. CMakeLists.txt中添加对talker.cpp的编译支持:

    cmake
    复制代码
    add_executable(talker src/talker.cpp)
    target_link_libraries(talker ${catkin_LIBRARIES})
2.3.2 创建订阅者节点
  1. 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;
    }
  2. CMakeLists.txt中添加对listener.cpp的编译支持:

    cmake
    复制代码
    add_executable(listener src/listener.cpp)
    target_link_libraries(listener ${catkin_LIBRARIES})
2.4 编译和运行
  1. 编译代码:

    bash
    复制代码
    cd ~/catkin_ws
    catkin_make
  2. 运行ROS master节点:

    bash
    复制代码
    roscore
  3. 在一个新的终端中,运行发布者节点:

    bash
    复制代码
    rosrun beginner_tutorials talker
  4. 在另一个新的终端中,运行订阅者节点:

    bash
    复制代码
    rosrun beginner_tutorials listener
3. 总结

以上介绍了在Linux系统中安装和配置ROS,以及如何创建一个简单的ROS包并编写基本的发布者和订阅者节点。这是学习ROS的起点,后续可以深入学习更多的ROS功能和高级应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值