ros学习

错误1 -- 在编译工作空间的时候,没有关闭conda环境

https://cloud.tencent.com/developer/ask/sof/128041https://cloud.tencent.com/developer/ask/sof/128041

ImportError: "from catkin_pkg.package import parse_package" failed: No module named 'catkin_pkg'
Make sure that you have installed "catkin_pkg", it is up to date and on the PYTHONPATH.
CMake Error at /opt/ros/noetic/share/catkin/cmake/safe_execute_process.cmake:11 (message):
  execute_process(/home/admin1/anaconda3/bin/python3
  "/opt/ros/noetic/share/catkin/cmake/parse_package_xml.py"
  "/opt/ros/noetic/share/catkin/cmake/../package.xml"
  "/home/admin1/catkin_ws/build/catkin/catkin_generated/version/package.cmake")
  returned error code 1
Call Stack (most recent call first):
  /opt/ros/noetic/share/catkin/cmake/catkin_package_xml.cmake:74 (safe_execute_process)
  /opt/ros/noetic/share/catkin/cmake/all.cmake:168 (_catkin_package_xml)
  /opt/ros/noetic/share/catkin/cmake/catkinConfig.cmake:20 (include)
  CMakeLists.txt:58 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/admin1/catkin_ws/build/CMakeFiles/CMakeOutput.log".
See also "/home/admin1/catkin_ws/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed

错误2 -- 使用vscode编写代码时出现无法打开源文件ros/ros.h的错误,是因为没有配置包含路径

https://blog.youkuaiyun.com/qq_51701200/article/details/124574538?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%97%A0%E6%B3%95%E6%89%93%E5%BC%80%E6%BA%90%E6%96%87%E4%BB%B6ros/ros.h&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-124574538.nonecase&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/qq_51701200/article/details/124574538?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%97%A0%E6%B3%95%E6%89%93%E5%BC%80%E6%BA%90%E6%96%87%E4%BB%B6ros/ros.h&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-124574538.nonecase&spm=1018.2226.3001.4187

#include<sstream>
#include"ros/ros.h"
#include"std_msgs/String.h"

将下面这行include路径添加到包含路径中

/opt/ros/noetic/include/**

然后会生成.vscode里的一个配置文件

 错误3 -- 无法用rosrun启动Publisher

admin1@admin1-System-Product-Name:~/catkin_ws$ rosrun learning_communication talker
[rospack] Error: package 'learning_communication' not found

在这之前先在终端中cd到工作空间,再设置环境变量(这种设置是当前终端的)

source ./devel/setup.bash

错误4 -- 添加消息生成依赖的功能包

错误示范:

  <run_depend>message_runtime</run_depend>

运行:

rosmsg show Person

结果:

Error(s):
- The manifest of package "learning_communication" (with format version 2) must not contain the following tags: run_depend
- Please replace <run_depend> tags with <exec_depend> tags.

根据提示更改package.xml中相应的消息:

  <exec_depend>message_runtime</exec_depend>

错误5 -- 学习到自定义话题时碰到了使用catkin_make命令编译的报错

CMake Error at /opt/ros/noetic/share/catkin/cmake/catkin_package.cmake:196 (message):
  catkin_package() the catkin package 'geometry_msgs' has been
  find_package()-ed but is not listed as a build dependency in the
  package.xml


CMake Error at /opt/ros/noetic/share/genmsg/cmake/genmsg-extras.cmake:197 (message):
  generate_messages() must be called before catkin_package() in project
  'learning_communication'


CMake Error at learning_communication/CMakeLists.txt:178 (add_dependencies):
  The dependency target "learning_communication_generate_messagess_cpp" of
  target "listener" does not exist.


CMake Error at learning_communication/CMakeLists.txt:173 (add_dependencies):
  The dependency target "learning_communication_generate_messagess_cpp" of
  target "talker" does not exist.

第一个错误参考

https://blog.youkuaiyun.com/baidu_39537609/article/details/114054029?ops_request_misc=&request_id=&biz_id=102&utm_term=catkin_package()%20the%20catkin%20pa&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-114054029.142^v59^js_top,201^v3^control_1&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/baidu_39537609/article/details/114054029?ops_request_misc=&request_id=&biz_id=102&utm_term=catkin_package()%20the%20catkin%20pa&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-114054029.142%5Ev59%5Ejs_top,201%5Ev3%5Econtrol_1&spm=1018.2226.3001.4187

按照提示package.xml中没有geometry_msgs,添加上就行了:

  <build_depend>geometry_msgs</build_depend>
  <exec_depend>geometry_msgs</exec_depend>

第二个错误参考

https://blog.youkuaiyun.com/weixin_45729043/article/details/108415588?ops_request_misc=&request_id=&biz_id=102&utm_term=%20%20generate_messages()%20must%20be%20&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-108415588.142^v59^js_top,201^v3^control_1&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/weixin_45729043/article/details/108415588?ops_request_misc=&request_id=&biz_id=102&utm_term=%20%20generate_messages()%20must%20be%20&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-108415588.142%5Ev59%5Ejs_top,201%5Ev3%5Econtrol_1&spm=1018.2226.3001.4187

按照提示将这两个函数的顺序颠倒一下(书上这几个函数的顺序并不对)

后面两个错误参考(这个错误还没有具体搞懂,直接往下搞!)

https://blog.youkuaiyun.com/weixin_47539430/article/details/125111836?ops_request_misc=&request_id=&biz_id=102&utm_term=at%20learning_communication/CMak&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-125111836.142^v59^js_top,201^v3^control_1&spm=1018.2226.3001.4187https://blog.youkuaiyun.com/weixin_47539430/article/details/125111836?ops_request_misc=&request_id=&biz_id=102&utm_term=at%20learning_communication/CMak&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-125111836.142%5Ev59%5Ejs_top,201%5Ev3%5Econtrol_1&spm=1018.2226.3001.4187

### 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 方法。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值