导航

    蓝鲸ROS机器人论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 热门
    1. 主页
    2. weijiz
    3. 主题
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision
    • 资料
    • 关注 0
    • 粉丝 11
    • 主题 248
    • 帖子 705
    • 最佳 11
    • 群组 1

    weijiz 创建的主题

    • weijiz

      python 读取和写入yaml配置文件
      技术交流 • • weijiz

      4
      0
      赞同
      4
      帖子
      1682
      浏览

      小助理

      说:

      继续

      好的,接下来我补充一些内容:

      如果你的yaml文件中有很多注释,你可以使用FullLoader来读取文件。像这样:

      import yaml with open('config.yml', 'r') as f: config = yaml.load(f, Loader=yaml.FullLoader) print(config['database'])

      yaml.load函数的Loader参数指定了解释器,而yaml.FullLoader解释器支持注释和其他所有的YAML标准功能。更多关于不同解释器的信息可以在PyYAML的文档中找到。

      如果你的yaml文件比较复杂,你可以使用ruamel.yaml模块,它提供了更多的功能,例如支持多文档和修改文件等。下面是一个读取示例:

      import ruamel.yaml with open('config.yml', 'r') as f: config = ruamel.yaml.YAML().load(f) print(config['database'])

      ruamel.yaml.YAML实例提供了一些额外的方法,例如.dump方法可以将一个字典写入到YAML文件中。

      至于写入yaml文件,你需要使用yaml.dump函数。在dump函数中使用默认参数即可,它将优雅地将一个字典转化为yaml文件格式:

      import yaml config = { 'database': { 'host': 'localhost', 'port': 3306, 'username': 'root', 'password': 'password' } } with open('config.yml', 'w') as f: yaml.dump(config, f)

      上述代码将会将字典config写入到config.yml文件中,生成以下内容:

      database: host: localhost password: password port: 3306 username: root

      希望能够帮到你。

    • weijiz

      ros2 在win11 上的安装方法
      ROS教程 • • weijiz

      6
      0
      赞同
      6
      帖子
      3077
      浏览

      小助理

      以下是在 Windows 11 上安装 ROS 2 Galactic 相关步骤:

      安装系统必备组件

      在 Windows 11 上安装 ROS 2 Galactic 前,需要先安装以下系统必备组件:

      Visual Studio 2019 version 16.8 或更高版本,带有 C++ 工作负载。请注意,ROS 2 Galactic 只支持 Visual Studio 2019。

      Python 3.7 或更高版本。建议从官方网站下载,选择适合您操作系统的安装包版本。

      Git。安装 Git 时,请确保执行下面的命令,以在安装过程中选择“使用 Windows 命令提示符作为 Git Bash 终端”。

      注:以下是不同命令提示符的说法,请看情况下载:

      适用于 PowerShell 的 Git

      适用于 command prompt 和 PowerShell 的 Git

      还可以使用 Git for Windows

      安装 ROS 2 Galactic

      在 Windows 11 上安装 ROS 2 Galactic 有两种方式,一种是使用二进制安装包,另一种是从源代码构建 ROS 2 Galactic。

      (1)二进制安装包

      您可以从官方网站下载 ROS 2 Galactic 的安装包(ros2-galactic-windows.zip)。

      下载完毕后,解压文件到任意文件夹。步骤如下:

      右键单击压缩文件。 选择“全部解压缩”。 选择目标文件夹。 单击“确定”。

      最后,将解压文件夹添加到 PATH 环境变量中。

      如图所示,在系统属性->高级设置->环境变量->系统变量中的 PATH 中添加解压后 bin 文件地址。

      (2)从源代码构建 ROS 2 Galactic

      您可以使用 vcpkg,在 Windows 11 上从源代码构建 ROS 2 Galactic。

      vcpkg 是一个适用于多个 C++ 项目的包管理器,可在 Windows 平台上使用。有关如何在 Windows 上使用 vcpkg 的详细信息,请参见官方网站。下面仅提供基本步骤:

      第一步、安装 vcpkg

      创建一个文件夹,例如:C:\vcpkg。使用 Git 克隆 vcpkg 仓库。如下:

      git clone https://github.com/microsoft/vcpkg.git

      进入此文件夹,运行以下命令以在低权限管理员下设置自动三倍截取:

      .\bootstrap-vcpkg.bat

      运行以下命令以下载并构建 ROS 2 Galactic:

      .\vcpkg.exe install --triplet x64-windows-static --recurse system winpthread argparse yaml-cpp poco tinyxml2 openssl fastcdr fastrtps poco tinyxml2 openssl ament_cmake

      第二步、设置环境变量

      添加以下路径到系统的 PATH 环境变量中:

      C:\vcpkg C:\vcpkg\installed\x64-windows-static\bin

      第三步、下载 ROS 2 Galactic 的源代码

      从 ROS 2 Galactic 的 GitHub 代码库中下载源代码。您需要使用 Git 工具,执行以下命令:

      git clone --branch galactic https://github.com/ros2/ros2.git

      第四步、构建 ROS 2 Galactic

      使用 CMake 构建 ROS 2 Galactic。例如:

      mkdir build && cd build
      cmake -DCMAKE_BUILD_TYPE=Release …
      cmake --build . --parallel 8

      测试 ROS 2 Galactic

      在 Windows 11 上,可以使用 Windows 命令提示符或 PowerShell 运行 ROS 2 Galactic 发布器和订阅器。测试步骤如下:

      (1)在命令提示符或 PowerShell 中运行 ROS 2 Galactic 名称的节点。

      ros2 run demo_nodes_cpp talker

      (2)然后,运行一个订阅器。在不同的命令提示符或 PowerShell 窗口中,执行以下命令:

      ros2 run demo_nodes_cpp listener

      您应该会看到控制台输出中发布和订阅器的消息。这表明 ROS 2 Galactic 正在运行。

      至此,ROS 2 Galactic 已经在 Windows 11 上成功安装和运行。

    • weijiz

      ROS2如何设置和获取其他节点的参数
      ROS教程 • ros2 设置参数 • • weijiz

      11
      0
      赞同
      11
      帖子
      4257
      浏览

      小助理

      weijiz说:

      ROS2如何设置和获取其他节点的参数

      对于Python,可以使用rclpy库来设置和获取其他节点的参数。以下是其中一个示例:

      import rclpy from rclpy.parameter import ParameterValue from rcl_interfaces.msg import ParameterDescriptor, ParameterType # 创建参数并设置值 value = ParameterValue(value="my_value",type=ParameterType.PARAMETER_STRING) desc = ParameterDescriptor(description="my_description") param = rclpy.parameter.Parameter(name="my_parameter", value=value, descriptor=desc) # 创建节点并添加参数 node = rclpy.create_node("my_node") node.declare_parameter(param.name, param.value, param.descriptor) # 获取参数值 my_param = node.get_parameter(param.name) print(my_param.value) # 设置参数值 new_value = ParameterValue(value="new_value",type=ParameterType.PARAMETER_STRING) node.set_parameters([rclpy.parameter.Parameter(name=param.name, value=new_value)])

      对于C++,可以使用rclcpp库来设置和获取其他节点的参数。以下是其中一个示例:

      #include #include int main(int argc, char **argv) { // 创建节点 rclcpp::init(argc, argv); auto node = std::make_shared("my_node"); // 创建参数并设置值 auto param = std::make_shared("my_parameter", "my_value"); // 添加参数到节点中 node->declare_parameter(param->get_name(), param->get_value()); // 获取参数值 auto my_param = node->get_parameter("my_parameter"); RCLCPP_INFO(node->get_logger(), "Parameter value: %s", my_param.value_to_string().c_str()); // 设置参数值 node->set_parameter(rclcpp::Parameter("my_parameter", "new_value")); // 关闭节点 rclcpp::shutdown(); return 0; }

      需要注意的是,配置文件和启动文件也会影响节点的参数。可以使用yaml文件来设置节点的参数,然后通过启动文件加载该yaml文件以设置节点参数。

    • weijiz

      Python setup.py 和 entry_points 详解
      技术交流 • entey point setuptools • • weijiz

      5
      0
      赞同
      5
      帖子
      4213
      浏览

      小助理

      说:

      关于python setup.py和setup.cfg的使用方法你能介绍一下吗

      当我们写一个Python项目时,我们需要打包并发布我们的代码。这里主要介绍两个与打包相关的文件:setup.py和setup.cfg。

      setup.py

      setup.py 是用来定义 Python 项目的配置文件。通常情况下它包含了以下几个部分:

      项目的名称和版本 项目描述 项目的作者和作者邮箱 项目的依赖

      setup.py 中最重要的部分是 setup() 函数,它需要接受多个参数来定义这个项目。下面是两个比较常用的参数:

      setup(name="my-package", version="0.0.1", packages=['mypackage'])

      这里的 name 和 version 表示你的项目的名称和版本,packages 表示哪些文件夹应该被打包。例如,这里的 mypackage 表示只打包 mypackage 这个文件夹。

      setup(name='my-package', version='0.0.1', packages=['mypackage'], install_requires=[ 'numpy', 'scipy' ] )

      这里的 install_requires 表示项目需要的依赖,它也可以写在另一个文件 requirements.txt 中。

      setup.py 还有很多其他的参数,你可以参考 官方文档 来了解它们的作用。

      setup.cfg

      setup.cfg 是 setup.py 的一个扩展文件。它可以被用来管理 setup.py 的一些常用的参数设置。使用 setup.cfg 可以让 setup.py 更清晰易读,setup.cfg 中的参数也比 setup.py 更容易被重用。下面是一个例子:

      [metadata] name = my-package version = 0.0.1 author = John Doe author-email = john.doe@example.com [options] packages = find: install_requires = numpy scipy

      这里的 [metadata] 部分和 setup.py 中的 setup() 函数所需要提供的参数是一样的,只是写法不一样。

      [options] 部分和 setup.py 中的 install_requires 参数也是一样的。

      总的来说,setup.py 和 setup.cfg 可以让我们更方便地定义和管理 Python 项目的打包和发布。

    • weijiz

      ros2 中的 time消息类型
      ROS教程 • ros2 message time • • weijiz

      1
      0
      赞同
      1
      帖子
      743
      浏览

      尚无回复

    • weijiz

      Ubuntu 22.04 ROS2 humble安装
      ROS教程 • ros humble ros2 ros2 安装 • • weijiz

      1
      0
      赞同
      1
      帖子
      996
      浏览

      尚无回复

    • weijiz

      22.04使能远程桌面,替代VNC
      技术交流 • ubuntu22.04 vnc remote desktop • • weijiz

      1
      0
      赞同
      1
      帖子
      1123
      浏览

      尚无回复

    • weijiz

      ubuntu录音开启噪声抑制
      技术交流 • 噪声抑制 电流声 • • weijiz

      1
      0
      赞同
      1
      帖子
      780
      浏览

      尚无回复

    • weijiz

      modelscope环境安装
      技术交流 • modelscope paraformer asr • • weijiz

      1
      0
      赞同
      1
      帖子
      1239
      浏览

      尚无回复

    • weijiz

      ROS中的声音设置 audio_play
      技术交流 • audioplay pcm gstreamer • • weijiz

      1
      0
      赞同
      1
      帖子
      1076
      浏览

      尚无回复

    • weijiz

      Linux 的常见声音问题
      技术交流 • alsa aplay pulseaudio pacmd • • weijiz

      1
      0
      赞同
      1
      帖子
      1341
      浏览

      尚无回复

    • weijiz

      Ubuntu 共享打印机
      技术交流 • cups ubuntu • • weijiz

      1
      0
      赞同
      1
      帖子
      1478
      浏览

      尚无回复

    • weijiz

      Galileo API 日志过大导致系统错误的解决方法
      产品服务 • • weijiz

      1
      0
      赞同
      1
      帖子
      1140
      浏览

      尚无回复

    • weijiz

      ROS 中 TF的方向性
      技术交流 • tf变换 • • weijiz

      1
      0
      赞同
      1
      帖子
      1086
      浏览

      尚无回复

    • weijiz

      重定向时没有cookie的问题
      技术交流 • cookie 重定向 samesite • • weijiz

      1
      0
      赞同
      1
      帖子
      1197
      浏览

      尚无回复

    • weijiz

      rust使用中的坑
      技术交流 • tcpstream regex rust memory leak • • weijiz

      1
      0
      赞同
      1
      帖子
      1104
      浏览

      尚无回复

    • weijiz

      pip sys.stderr.write(f"ERROR: {exc}") 错误
      技术交流 • python pip • • weijiz

      1
      0
      赞同
      1
      帖子
      1100
      浏览

      尚无回复

    • 1
    • 2
    • 3
    • 4
    • 5
    • 12
    • 13
    • 2 / 13