ROS 学习(一)

本文介绍如何使用roscreate-pkg命令在ROS环境中创建一个名为beginner_tutorials的package,并解决了创建过程中遇到的警告问题,涉及ROS_PACKAGE_PATH环境变量的设置。

   在ROS 里面利用 roscreate-pkg 创建 package,在这里我直接引用官网里面的例子创建beginner_tutorialspackage

    $ roscreate-pkg beginner_tutorials std_msgs rospy roscpp  (1)

  但结果运行的时候经常有提示:WARNING: current working directory is not on ROS_PACKAGE_PATH!

                                                    Please update your ROS_PACKAGE_PATH environment variable.

   这里就涉及到修改ROS 里面的变量ROS_PACKAGE_PATH.

   具体实现时,参照官网http://www.ros.org/wiki/ROS/EnvironmentVariables#ROS_PACKAGE_PATH

   我用到:$export ROS_PACKAGE_PATH=/opt/ros/diamondback/stacks:/home/user/ros_workspace(注意:冒号的   使用)使用$ echo $ROS_PACKAGE_PATH,查看到ROS_PACKAGE_PATH已作了修改。然后修改路径:$ cd  ~/ ros_workspace再运行命令(1),则得到结果中没有WARNING。

     最后,用$ rospack find beginner_tutorials检查结果生成的路径, 我的电脑里得到:/home/user/ros_workspace  /beginner_tutorials

        此方法的缺陷也很明显,每次要想将所建的pakeage建在ros_workspace文件夹下,我都必须先将路径改了,这不可谓是件麻烦的事情。。。嗯,姑且只想到了这个方法,后面再优化吧。

 

### ROS 学习教程入门指南 对于初学者来说,ROS(Robot Operating System)是个功能强大且复杂的工具集,用于开发机器人应用。以下是关于如何通过现有资源学习 ROS 的详细介绍。 #### 资源推荐 古月居提供了套全面的 ROS 入门课程,涵盖了从基础知识到实际操作的内容[^1]。这套视频教程适合希望快速掌握 ROS 基本概念的学习者。它不仅讲解理论知识,还提供了丰富的实践案例来帮助理解。 针对 ROS2 用户,有份详尽的《ROS2 零基础入门到实战》指南可供参考[^2]。这份文档特别强调了节点重映射等功能的实际运用方法,例如 `ros2 run demo_nodes_cpp talker --ros-args --remap __node:=my_talker` 这样的命令行技巧可以有效提升工作效率并加深对系统的认识。 另外,《ROS1/ROS2 机器人编程光速入门指南》也是篇值得阅读的文章[^3]。尽管其中部分内容涉及历史背景介绍如罗马城建设比喻说明复杂工程需时间积累外,更多聚焦于技术层面指导新用户熟悉两种版本间差异以及共同之处。 #### 实践建议 为了更好地巩固所学知识,在学习过程中应注重动手能力培养。尝试编写简单的发布订阅程序就是个很好的起点: ```cpp #include "rclcpp/rclcpp.hpp" using namespace std::chrono_literals; class MinimalPublisher : public rclcpp::Node { public: MinimalPublisher() : Node("minimal_publisher") { publisher_ = this->create_publisher<std_msgs::msg::String>("topic", 10); timer_ = this->create_wall_timer(500ms, std::bind(&MinimalPublisher::timer_callback, this)); } private: void timer_callback(){ auto message = std_msgs::msg::String(); static uint8_t count=0; message.data="Hello World "+std::to_string(count++); RCLCPP_INFO(this->get_logger(), "Publishing: '%s'", message.data.c_str()); publisher_->publish(message); } rclcpp::TimerBase::SharedPtr timer_; rclcpp::Publisher<std_msgs::msg::String>::SharedPtr publisher_; }; int main(int argc, char * argv[]) { rclcpp::init(argc, argv); auto node = std::make_shared<MinimalPublisher>(); rclcpp::spin(node); rclcpp::shutdown(); } ``` 上述 C++ 示例展示了创建个定时发送字符串消息至指定主题的 Publisher 方法。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值